/******/ (function(modules) { // webpackBootstrap
/******/ 	// install a JSONP callback for chunk loading
/******/ 	function webpackJsonpCallback(data) {
/******/ 		var chunkIds = data[0];
/******/ 		var moreModules = data[1];
/******/ 		var executeModules = data[2];
/******/
/******/ 		// 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(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && 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()();
/******/ 		}
/******/
/******/ 		// add entry modules from loaded chunk to deferred list
/******/ 		deferredModules.push.apply(deferredModules, executeModules || []);
/******/
/******/ 		// run deferred modules when all chunks ready
/******/ 		return checkDeferredModules();
/******/ 	};
/******/ 	function checkDeferredModules() {
/******/ 		var result;
/******/ 		for(var i = 0; i < deferredModules.length; i++) {
/******/ 			var deferredModule = deferredModules[i];
/******/ 			var fulfilled = true;
/******/ 			for(var j = 1; j < deferredModule.length; j++) {
/******/ 				var depId = deferredModule[j];
/******/ 				if(installedChunks[depId] !== 0) fulfilled = false;
/******/ 			}
/******/ 			if(fulfilled) {
/******/ 				deferredModules.splice(i--, 1);
/******/ 				result = __webpack_require__(__webpack_require__.s = deferredModule[0]);
/******/ 			}
/******/ 		}
/******/
/******/ 		return result;
/******/ 	}
/******/
/******/ 	// The module cache
/******/ 	var installedModules = {};
/******/
/******/ 	// object to store loaded CSS chunks
/******/ 	var installedCssChunks = {
/******/ 		"app": 0
/******/ 	}
/******/
/******/ 	// object to store loaded and loading chunks
/******/ 	// undefined = chunk not loaded, null = chunk preloaded/prefetched
/******/ 	// Promise = chunk loading, 0 = chunk loaded
/******/ 	var installedChunks = {
/******/ 		"app": 0
/******/ 	};
/******/
/******/ 	var deferredModules = [];
/******/
/******/ 	// script path function
/******/ 	function jsonpScriptSrc(chunkId) {
/******/ 		return __webpack_require__.p + "./js/" + chunkId + ".bundle.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 = [];
/******/
/******/
/******/ 		// mini-css-extract-plugin CSS loading
/******/ 		var cssChunks = {"1":1};
/******/ 		if(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);
/******/ 		else if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {
/******/ 			promises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {
/******/ 				var href = "css/" + ({"photos":"photos"}[chunkId]||chunkId) + ".css";
/******/ 				var fullhref = __webpack_require__.p + href;
/******/ 				var existingLinkTags = document.getElementsByTagName("link");
/******/ 				for(var i = 0; i < existingLinkTags.length; i++) {
/******/ 					var tag = existingLinkTags[i];
/******/ 					var dataHref = tag.getAttribute("data-href") || tag.getAttribute("href");
/******/ 					if(tag.rel === "stylesheet" && (dataHref === href || dataHref === fullhref)) return resolve();
/******/ 				}
/******/ 				var existingStyleTags = document.getElementsByTagName("style");
/******/ 				for(var i = 0; i < existingStyleTags.length; i++) {
/******/ 					var tag = existingStyleTags[i];
/******/ 					var dataHref = tag.getAttribute("data-href");
/******/ 					if(dataHref === href || dataHref === fullhref) return resolve();
/******/ 				}
/******/ 				var linkTag = document.createElement("link");
/******/ 				linkTag.rel = "stylesheet";
/******/ 				linkTag.type = "text/css";
/******/ 				linkTag.onload = resolve;
/******/ 				linkTag.onerror = function(event) {
/******/ 					var request = event && event.target && event.target.src || fullhref;
/******/ 					var err = new Error("Loading CSS chunk " + chunkId + " failed.\n(" + request + ")");
/******/ 					err.request = request;
/******/ 					delete installedCssChunks[chunkId]
/******/ 					linkTag.parentNode.removeChild(linkTag)
/******/ 					reject(err);
/******/ 				};
/******/ 				linkTag.href = fullhref;
/******/
/******/ 				var head = document.getElementsByTagName("head")[0];
/******/ 				head.appendChild(linkTag);
/******/ 			}).then(function() {
/******/ 				installedCssChunks[chunkId] = 0;
/******/ 			}));
/******/ 		}
/******/
/******/ 		// 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"] = window["webpackJsonp"] || [];
/******/ 	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;
/******/
/******/
/******/ 	// add entry module to deferred list
/******/ 	deferredModules.push([0,"styles"]);
/******/ 	// run deferred modules when ready
/******/ 	return checkDeferredModules();
/******/ })
/************************************************************************/
/******/ ({

/***/ "+++t":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("path", {
  d: "M24 4.1A19.9 19.9 0 1 0 43.9 24 19.9 19.9 0 0 0 24 4.1zm-.3 6.2a2.718 2.718 0 0 1 2.864 2.824 2.665 2.665 0 0 1-2.864 2.863 2.706 2.706 0 0 1-2.864-2.864A2.717 2.717 0 0 1 23.7 10.3zM28 35a1 1 0 0 1-1 1h-6a1 1 0 0 1-1-1v-2a1 1 0 0 1 1-1h1v-8h-1a1 1 0 0 1-1-1v-2a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v11h1a1 1 0 0 1 1 1z"
}));

/***/ }),

/***/ "+6XX":
/***/ (function(module, exports, __webpack_require__) {

var assocIndexOf = __webpack_require__("y1pI");
/**
 * Checks if a list cache value for `key` exists.
 *
 * @private
 * @name has
 * @memberOf ListCache
 * @param {string} key The key of the entry to check.
 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
 */


function listCacheHas(key) {
  return assocIndexOf(this.__data__, key) > -1;
}

module.exports = listCacheHas;

/***/ }),

/***/ "+924":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* unused harmony export escapeStringForRegex */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return isMatchingPattern; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return safeJoin; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return snipLine; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return truncate; });
/* harmony import */ var _is_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("9AQC");

/**
 * Truncates given string to the maximum characters count
 *
 * @param str An object that contains serializable values
 * @param max Maximum number of characters in truncated string (0 = unlimited)
 * @returns string Encoded
 */

function truncate(str, max = 0) {
  if (typeof str !== 'string' || max === 0) {
    return str;
  }

  return str.length <= max ? str : `${str.substr(0, max)}...`;
}
/**
 * This is basically just `trim_line` from
 * https://github.com/getsentry/sentry/blob/master/src/sentry/lang/javascript/processor.py#L67
 *
 * @param str An object that contains serializable values
 * @param max Maximum number of characters in truncated string
 * @returns string Encoded
 */


function snipLine(line, colno) {
  let newLine = line;
  const lineLength = newLine.length;

  if (lineLength <= 150) {
    return newLine;
  }

  if (colno > lineLength) {
    // eslint-disable-next-line no-param-reassign
    colno = lineLength;
  }

  let start = Math.max(colno - 60, 0);

  if (start < 5) {
    start = 0;
  }

  let end = Math.min(start + 140, lineLength);

  if (end > lineLength - 5) {
    end = lineLength;
  }

  if (end === lineLength) {
    start = Math.max(end - 140, 0);
  }

  newLine = newLine.slice(start, end);

  if (start > 0) {
    newLine = `'{snip} ${newLine}`;
  }

  if (end < lineLength) {
    newLine += ' {snip}';
  }

  return newLine;
}
/**
 * Join values in array
 * @param input array of values to be joined together
 * @param delimiter string to be placed in-between values
 * @returns Joined values
 */
// eslint-disable-next-line @typescript-eslint/no-explicit-any


function safeJoin(input, delimiter) {
  if (!Array.isArray(input)) {
    return '';
  }

  const output = []; // eslint-disable-next-line @typescript-eslint/prefer-for-of

  for (let i = 0; i < input.length; i++) {
    const value = input[i];

    try {
      output.push(String(value));
    } catch (e) {
      output.push('[value cannot be serialized]');
    }
  }

  return output.join(delimiter);
}
/**
 * Checks if the value matches a regex or includes the string
 * @param value The string value to be checked against
 * @param pattern Either a regex or a string that must be contained in value
 */


function isMatchingPattern(value, pattern) {
  if (!Object(_is_js__WEBPACK_IMPORTED_MODULE_0__[/* isString */ "l"])(value)) {
    return false;
  }

  if (Object(_is_js__WEBPACK_IMPORTED_MODULE_0__[/* isRegExp */ "k"])(pattern)) {
    return pattern.test(value);
  }

  if (typeof pattern === 'string') {
    return value.indexOf(pattern) !== -1;
  }

  return false;
}
/**
 * Given a string, escape characters which have meaning in the regex grammar, such that the result is safe to feed to
 * `new RegExp()`.
 *
 * Based on https://github.com/sindresorhus/escape-string-regexp. Vendored to a) reduce the size by skipping the runtime
 * type-checking, and b) ensure it gets down-compiled for old versions of Node (the published package only supports Node
 * 12+).
 *
 * @param regexString The string to escape
 * @returns An version of the string with all special regex characters escaped
 */


function escapeStringForRegex(regexString) {
  // escape the hyphen separately so we can also replace it with a unicode literal hyphen, to avoid the problems
  // discussed in https://github.com/sindresorhus/escape-string-regexp/issues/20.
  return regexString.replace(/[|\\{}()[\]^$+*?.]/g, '\\$&').replace(/-/g, '\\x2d');
}



/***/ }),

/***/ "+97j":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _autobindDecorator = _interopRequireDefault(__webpack_require__("gKdT"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

var _reactDom = _interopRequireDefault(__webpack_require__("i8i4"));

var _SubMenu = _interopRequireDefault(__webpack_require__("oyGX"));

var _class;

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

let UxpSubMenu = (0, _autobindDecorator.default)(_class = class UxpSubMenu extends _SubMenu.default {
  constructor(props) {
    super(props);
  }

  componentDidUpdate() {
    this.hideScrollBarOnParent(this.state.opened);
  } // Workaround for PS as scrollbar of Menu appears on top of SubMenu


  hideScrollBarOnParent(opened) {
    let parentNodes = this.getScrollParents(_reactDom.default.findDOMNode(this));

    for (const node of parentNodes) {
      // set on all scrollable parent nodes that show a scrollbar since SubMenu position can vary
      node.setAttribute('uxpscrollbarhidden', opened);
    }
  }
  /**
   * Find all of the scrollable parents of a DOM node
   */


  getScrollParents(node) {
    let nodes = [];

    while (node.parentNode) {
      var style = window.getComputedStyle(node); // Look for scrollable nodes, both real and fake.

      if (/auto|scroll/.test(style.overflow + style.overflowY) || node.hasAttribute('data-scrollable')) {
        nodes.push(node);
      }

      node = node.parentNode;
    }

    return nodes;
  }

}) || _class;

exports.default = UxpSubMenu;

/***/ }),

/***/ "+A1k":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(process, module) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return dynamicRequire; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return isNodeEnv; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return loadModule; });
/* harmony import */ var _env_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("RQwI");

/**
 * NOTE: In order to avoid circular dependencies, if you add a function to this module and it needs to print something,
 * you must either a) use `console.log` rather than the logger, or b) put your function elsewhere.
 */

/**
 * Checks whether we're in the Node.js or Browser environment
 *
 * @returns Answer to given question
 */

function isNodeEnv() {
  // explicitly check for browser bundles as those can be optimized statically
  // by terser/rollup.
  return !Object(_env_js__WEBPACK_IMPORTED_MODULE_0__[/* isBrowserBundle */ "a"])() && Object.prototype.toString.call(typeof process !== 'undefined' ? process : 0) === '[object process]';
}
/**
 * Requires a module which is protected against bundler minification.
 *
 * @param request The module path to resolve
 */
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any


function dynamicRequire(mod, request) {
  // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
  return mod.require(request);
}
/**
 * Helper for dynamically loading module that should work with linked dependencies.
 * The problem is that we _should_ be using `require(require.resolve(moduleName, { paths: [cwd()] }))`
 * However it's _not possible_ to do that with Webpack, as it has to know all the dependencies during
 * build time. `require.resolve` is also not available in any other way, so we cannot create,
 * a fake helper like we do with `dynamicRequire`.
 *
 * We always prefer to use local package, thus the value is not returned early from each `try/catch` block.
 * That is to mimic the behavior of `require.resolve` exactly.
 *
 * @param moduleName module name to require
 * @returns possibly required module
 */


function loadModule(moduleName) {
  let mod;

  try {
    mod = dynamicRequire(module, moduleName);
  } catch (e) {// no-empty
  }

  try {
    const {
      cwd
    } = dynamicRequire(module, 'process');
    mod = dynamicRequire(module, `${cwd()}/node_modules/${moduleName}`);
  } catch (e) {// no-empty
  }

  return mod;
}


/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("8oxB"), __webpack_require__("3UD+")(module)))

/***/ }),

/***/ "+B6w":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}


/* harmony default export */ __webpack_exports__["a"] = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("svg", _extends({
  id: "Layer_1",
  xmlns: "http://www.w3.org/2000/svg",
  xmlnsXlink: "http://www.w3.org/1999/xlink",
  x: "0",
  y: "0",
  viewBox: "0 0 200 200",
  xmlSpace: "preserve"
}, props), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("defs", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  id: "SVGID_1_",
  d: "M0 0h200v200H0z"
})), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("clipPath", {
  id: "SVGID_00000125561718209813805130000014761174352201056930_"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("use", {
  xlinkHref: "#SVGID_1_",
  overflow: "visible"
})), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("g", {
  id: "Error_loading_200x200",
  clipPath: "url(#SVGID_00000125561718209813805130000014761174352201056930_)"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("g", {
  id: "Group_42",
  transform: "translate(-30 -23.687)"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("g", {
  id: "Group_13"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["st2"] || "st2",
  d: "M0 29.6c-.4 0-.9-.2-1.2-.5-.7-.7-.7-1.8 0-2.5L26.6-1.2c.7-.7 1.8-.7 2.5 0s.7 1.8 0 2.5L1.2 29.1c-.3.3-.8.5-1.2.5z",
  transform: "translate(45.489 152.493)"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["st2"] || "st2",
  d: "M27.8 29.6c-.4 0-.9-.2-1.2-.5L-1.2 1.2c-.7-.7-.7-1.8 0-2.5s1.8-.7 2.5 0l27.8 27.8c.7.7.7 1.8 0 2.5-.4.4-.8.6-1.3.6z",
  transform: "translate(45.489 152.493)"
})), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("g", {
  transform: "translate(30 44)",
  id: "Group_40"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("defs", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  id: "SVGID_00000021827800692888476580000013447511645752223646_",
  d: "M0 0h200v148.5H0z"
})), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("clipPath", {
  id: "SVGID_00000160150575292078384160000001626175805231947651_"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("use", {
  xlinkHref: "#SVGID_00000021827800692888476580000013447511645752223646_",
  overflow: "visible"
})), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("g", {
  id: "Group_38",
  clipPath: "url(#SVGID_00000160150575292078384160000001626175805231947651_)"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  id: "Path_206",
  className: styles["st4"] || "st4",
  d: "M8.9 40l16.8 22.5c.4.6.6 1.4.6 2.2v26.6c0 1.5-.3 2.7-2 2.7-1.4.1-2.2-1-2.2-2.8V73.4c0-8.5 0-8.5-5.1-15.3-5.4-7.2-10.7-14.5-16-21.8-.7-.9-1.2-1.9-.3-3.1s2-1 3.2-.5c17.8 7.4 35.7 14.8 53.5 22.2 7.3 3 14.6 6.1 21.8 9.1 1 .4 1.8 1.1 2.5 2 6.1 8 12.2 16.1 18.2 24.2.6 1.2 2 1.6 3.2 1 .1 0 .1-.1.2-.1 21.1-8.7 42.2-17.4 63.4-26 1.4-.6 2.8-1.2 4.4-1.9-1.6-1-3.3-1.7-5.1-2.3-16.8-7.1-33.7-14.1-50.6-21.1-4.4-1.8-8.9-3.7-13.3-5.6-.8-.4-1.7-.4-2.5 0C86.2 39.7 73 45.3 59.8 50.8c-2.2.9-3.6.8-4.2-.5-.7-1.4.1-2.5 2.5-3.5 13.3-5.6 26.7-11.2 40-16.8.8-.3 1.4-.8 1.9-1.5 6.2-8.5 12.5-17 18.7-25.5C120.6.3 123-.7 126.5.7c5.8 2.4 11.5 4.8 17.3 7.1 12.3 5.1 24.5 10.2 36.8 15.3l15.3 6.3c4.3 1.8 5.3 5.1 2.5 8.8-6.1 8.1-12.2 16.2-18.4 24.3-.6.8-.9 1.8-.9 2.8v46.5c0 3.5-1 4.8-4.2 6.1l-49.8 20.7-22.5 9.3c-1.5.7-3.2.7-4.8.1-9.7-3.7-19.2-7.9-28.8-11.8-3.2-1.3-6.4-2.7-9.7-4-1.3-.5-2.2-1.4-1.7-2.8.5-1.4 1.7-1.6 3-1.2 4.7 1.6 9.3 3.4 13.9 5.4 8.3 3.5 16.6 6.9 24.9 10.4.5.2 1 .1 1.5-.2 21.3-8.8 42.6-17.6 64-26.5 2.8-1.2 5.6-2.3 8.4-3.5 1.1-.3 1.8-1.3 1.6-2.3-.1-14.4 0-28.9 0-43.3 0-2 0-2-1.8-1.2-23.6 9.7-47.2 19.3-70.8 29-2.2.9-2.7.7-4.2-1.2-6.4-8.5-12.8-16.9-19.3-25.4-.7-.9-1.6-1.6-2.6-2C58 60 39.9 52.5 21.7 45c-4.2-1.7-8.4-3.5-12.6-5.3l-.2.3M123.8 4.3c-.7-.1-1 .4-1.3.9-1.8 2.5-3.6 5-5.5 7.5-4 5.5-8 11-12.1 16.5-.7 1-.7 1.4.5 1.8 1.7.6 3.4 1.4 5.1 2.1 11.3 4.7 22.6 9.3 33.8 14l30 12.6c1.6.6 1.7.5 3-.7 5.8-7.8 11.7-15.6 17.6-23.3.9-1.2.7-1.7-.6-2.2-5.2-2.1-10.4-4.3-15.6-6.5-16.5-6.8-33-13.7-49.5-20.5-1.8-.7-3.6-1.5-5.4-2.2"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  id: "Path_207",
  className: styles["st4"] || "st4",
  d: "M36.1 67.8c1.3.6 3.2 1.3 4.9 2 14.8 6.3 29.5 12.6 44.3 18.9.9.4 1.8.9 1.3 2.1-.5 1.1-1.4 1.2-2.5.7C68.2 84.7 52.2 77.8 36.2 71c-.5-.2-1.1-.5-1.6-.8-.6-.3-.8-1.1-.5-1.7.3-.6.8-1 2-.7"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  id: "Path_208",
  d: "M102.2 119.3v15.3c0 .5 0 .9-.1 1.4-.1.8-.9.9-1.5 1.1-.7.1-1-.4-1.1-.9-.1-.5-.2-1-.2-1.6v-30.5-1.1c.1-.9.5-1.6 1.6-1.6 1.2 0 1.3.8 1.3 1.7v16.2",
  fill: "#b2b2b2"
})))))));

/***/ }),

/***/ "+BsC":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ListGridToggleButton; });
/* harmony import */ var _react_react_spectrum_Button__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("Cn9g");
/* harmony import */ var _react_react_spectrum_Button__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Button__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _react_react_spectrum_Icon_ClassicGridView__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("VZJT");
/* harmony import */ var _react_react_spectrum_Icon_ClassicGridView__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Icon_ClassicGridView__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _react_react_spectrum_Icon_ViewList__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("EpQn");
/* harmony import */ var _react_react_spectrum_Icon_ViewList__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Icon_ViewList__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _react_react_spectrum_OverlayTrigger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("uYrR");
/* harmony import */ var _react_react_spectrum_OverlayTrigger__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_OverlayTrigger__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _react_react_spectrum_Tooltip__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("DUuf");
/* harmony import */ var _react_react_spectrum_Tooltip__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Tooltip__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_5__);
/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("VIzJ");
/* harmony import */ var _utils_constants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("YVc3");
/* harmony import */ var _ListGridToggleButton_css__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("aWGM");
/* harmony import */ var _ListGridToggleButton_css__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_ListGridToggleButton_css__WEBPACK_IMPORTED_MODULE_8__);
/* harmony import */ var _hooks_useIntl__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__("BuN4");










function ListGridToggleButton({ viewMode, onViewModeChange }) {
    const intl = Object(_hooks_useIntl__WEBPACK_IMPORTED_MODULE_9__[/* default */ "a"])();
    const toggledView = viewMode === 'grid' ? 'list' : 'grid';
    return (react__WEBPACK_IMPORTED_MODULE_5___default.a.createElement(_react_react_spectrum_OverlayTrigger__WEBPACK_IMPORTED_MODULE_3___default.a, { placement: "bottom", trigger: ['hover'], delayShow: _utils_constants__WEBPACK_IMPORTED_MODULE_7__[/* DEFAULT_TOOLTIP_DELAY */ "f"], boundariesElement: "container" },
        react__WEBPACK_IMPORTED_MODULE_5___default.a.createElement(_react_react_spectrum_Button__WEBPACK_IMPORTED_MODULE_0___default.a, { "aria-label": intl.formatMessage({ id: 'a11y.button.listGridToggle' }, { toggledView }), "aria-hidden": false, className: _ListGridToggleButton_css__WEBPACK_IMPORTED_MODULE_8___default.a.listGridToggleButton, variant: "tool", icon: viewMode === 'list' ? react__WEBPACK_IMPORTED_MODULE_5___default.a.createElement(_react_react_spectrum_Icon_ClassicGridView__WEBPACK_IMPORTED_MODULE_1___default.a, null) : react__WEBPACK_IMPORTED_MODULE_5___default.a.createElement(_react_react_spectrum_Icon_ViewList__WEBPACK_IMPORTED_MODULE_2___default.a, null), onClick: () => onViewModeChange(toggledView), "data-test-id": `HeaderAction__listGridToggle__${viewMode}`, role: "button" }),
        react__WEBPACK_IMPORTED_MODULE_5___default.a.createElement(_react_react_spectrum_Tooltip__WEBPACK_IMPORTED_MODULE_4___default.a, null,
            react__WEBPACK_IMPORTED_MODULE_5___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_6__[/* FormattedMessage */ "c"], { id: viewMode === 'grid' ? 'toggle.listView' : 'toggle.gridView' }))));
}


/***/ }),

/***/ "+CSc":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _createClass = function () {
  function defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i];
      descriptor.enumerable = descriptor.enumerable || false;
      descriptor.configurable = true;
      if ("value" in descriptor) descriptor.writable = true;
      Object.defineProperty(target, descriptor.key, descriptor);
    }
  }

  return function (Constructor, protoProps, staticProps) {
    if (protoProps) defineProperties(Constructor.prototype, protoProps);
    if (staticProps) defineProperties(Constructor, staticProps);
    return Constructor;
  };
}();
/**
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe Inc. and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe Inc.
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Inc.
 */


var _Client = __webpack_require__("aETk");

var _Client2 = _interopRequireDefault(_Client);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _classCallCheck(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}
/**
 * The Resources class handles listing Resources data (i.e. resources shared with a user) for a specific user.
 */


var Resources = function () {
  function Resources() {
    _classCallCheck(this, Resources);
  }

  _createClass(Resources, [{
    key: 'get',

    /**
     * Get the resources shared with the user.
     * @param {Object} options - (optional) Sorting and filtering options, as listed below
     *
     *        {String} orderBy - (optional, default = "+sharedate") Field to sort on, and direction. E.g. "+sharedate"
     *                           for sorting by date shared ascending. Prefix with "-" for descending.
     *        {String[]} types - (optional) A list of mime-types to filter by. If none provided, all mimetypes will be
     *                           returned.
     * @returns {Promise}
     */
    value: function get() {
      var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
          _ref$orderBy = _ref.orderBy,
          orderBy = _ref$orderBy === undefined ? '+sharedate' : _ref$orderBy,
          _ref$types = _ref.types,
          types = _ref$types === undefined ? [] : _ref$types,
          _ref$limit = _ref.limit,
          limit = _ref$limit === undefined ? 10 : _ref$limit; // NOTE: /resources/ will redirect to /resources, which messes up UXP clients.


      return _Client2.default.instance.fetch({
        type: 'resources.get',
        urlPath: '/resources?orderBy=' + encodeURIComponent(orderBy) + '&type=' + encodeURIComponent(types.join(',')) + '&limit=' + limit
      });
    }
    /**
     * Get the next page of resources results, using the URL from Resources.get().
     * @param urlPath {String} URL from Resources.get(), from the _links.next property of the response.
     * @returns {Promise|*|Promise<Response>}
     */

  }, {
    key: 'getNextPage',
    value: function getNextPage(urlPath) {
      return _Client2.default.instance.fetch({
        type: 'resources.get',
        urlPath: urlPath
      });
    }
  }]);

  return Resources;
}();
/**
 * Exports the Resources class.
 */


exports.default = Resources;
module.exports = exports['default'];

/***/ }),

/***/ "+Hsl":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return CDOStore; });
/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("2vnA");
/* harmony import */ var _utils_storage__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("OB0k");
/* harmony import */ var _utils_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("a375");
/* harmony import */ var _utils_FileCapabilities__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("Vj/U");
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
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;
};
var __metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var _a, _b, _c, _d, _e;




class CDOStore {
    constructor(config) {
        /**
         * Returns true if the feature flag is explicitly set to `true`, returns false otherwise.
         * @param flag The name of the feature flag
         */
        this.isFeatureFlagEnabled = (flag) => this.hostProductData.featureFlags[flag] === true;
        this.setViewState = (state) => {
            this.view = state;
            Object(_utils_storage__WEBPACK_IMPORTED_MODULE_1__["setStorage"])('cdo:view-state', state);
        };
        Object.assign(this, config);
    }
    static create(config) {
        return new CDOStore(config);
    }
    get isOrganizer() {
        return this.mode === _utils_constants__WEBPACK_IMPORTED_MODULE_2__[/* ModeType */ "p"].organizer;
    }
    get isTabViewPicker() {
        return (this.mode === _utils_constants__WEBPACK_IMPORTED_MODULE_2__[/* ModeType */ "p"].open ||
            this.mode === _utils_constants__WEBPACK_IMPORTED_MODULE_2__[/* ModeType */ "p"].relink ||
            this.mode === _utils_constants__WEBPACK_IMPORTED_MODULE_2__[/* ModeType */ "p"].linkAssets ||
            this.mode === _utils_constants__WEBPACK_IMPORTED_MODULE_2__[/* ModeType */ "p"].place ||
            this.mode === _utils_constants__WEBPACK_IMPORTED_MODULE_2__[/* ModeType */ "p"].placeLinkOrEmbed);
    }
    get isSaveAsPicker() {
        return this.mode === _utils_constants__WEBPACK_IMPORTED_MODULE_2__[/* ModeType */ "p"].saveAs;
    }
    get isSaveToFolderPicker() {
        return this.mode === _utils_constants__WEBPACK_IMPORTED_MODULE_2__[/* ModeType */ "p"].saveToFolder;
    }
    get isPlaceOrPlaceLinkOrEmbedPicker() {
        return this.mode === _utils_constants__WEBPACK_IMPORTED_MODULE_2__[/* ModeType */ "p"].place || this.mode === _utils_constants__WEBPACK_IMPORTED_MODULE_2__[/* ModeType */ "p"].placeLinkOrEmbed;
    }
    get isPlaceLinkOrEmbedPicker() {
        return this.mode === _utils_constants__WEBPACK_IMPORTED_MODULE_2__[/* ModeType */ "p"].placeLinkOrEmbed;
    }
    get isOpenItemPicker() {
        return this.mode === _utils_constants__WEBPACK_IMPORTED_MODULE_2__[/* ModeType */ "p"].open;
    }
    setFileCapabilites(fileCapabilites) {
        this.fileCapabilities = new _utils_FileCapabilities__WEBPACK_IMPORTED_MODULE_3__[/* default */ "c"](fileCapabilites);
    }
    updateModeState(mode) {
        this.mode = mode;
    }
}
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", typeof (_a = typeof _utils_constants__WEBPACK_IMPORTED_MODULE_2__[/* ModeType */ "p"] !== "undefined" && _utils_constants__WEBPACK_IMPORTED_MODULE_2__[/* ModeType */ "p"]) === "function" ? _a : Object)
], CDOStore.prototype, "mode", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", typeof (_b = typeof _utils_constants__WEBPACK_IMPORTED_MODULE_2__[/* ViewMode */ "v"] !== "undefined" && _utils_constants__WEBPACK_IMPORTED_MODULE_2__[/* ViewMode */ "v"]) === "function" ? _b : Object)
], CDOStore.prototype, "view", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", typeof (_c = typeof _utils_FileCapabilities__WEBPACK_IMPORTED_MODULE_3__[/* default */ "c"] !== "undefined" && _utils_FileCapabilities__WEBPACK_IMPORTED_MODULE_3__[/* default */ "c"]) === "function" ? _c : Object)
], CDOStore.prototype, "fileCapabilities", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], CDOStore.prototype, "isOrganizer", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], CDOStore.prototype, "isTabViewPicker", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], CDOStore.prototype, "isSaveAsPicker", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], CDOStore.prototype, "isSaveToFolderPicker", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], CDOStore.prototype, "isPlaceOrPlaceLinkOrEmbedPicker", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], CDOStore.prototype, "isPlaceLinkOrEmbedPicker", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], CDOStore.prototype, "isOpenItemPicker", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [typeof (_d = typeof _utils_FileCapabilities__WEBPACK_IMPORTED_MODULE_3__["IFileCapabilitiesConfig"] !== "undefined" && _utils_FileCapabilities__WEBPACK_IMPORTED_MODULE_3__["IFileCapabilitiesConfig"]) === "function" ? _d : Object]),
    __metadata("design:returntype", void 0)
], CDOStore.prototype, "setFileCapabilites", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* action */ "j"],
    __metadata("design:type", Object)
], CDOStore.prototype, "setViewState", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [typeof (_e = typeof _utils_constants__WEBPACK_IMPORTED_MODULE_2__[/* ModeType */ "p"] !== "undefined" && _utils_constants__WEBPACK_IMPORTED_MODULE_2__[/* ModeType */ "p"]) === "function" ? _e : Object]),
    __metadata("design:returntype", void 0)
], CDOStore.prototype, "updateModeState", null);



/***/ }),

/***/ "+JPL":
/***/ (function(module, exports, __webpack_require__) {

module.exports = {
  "default": __webpack_require__("+SFK"),
  __esModule: true
};

/***/ }),

/***/ "+K+b":
/***/ (function(module, exports, __webpack_require__) {

var Uint8Array = __webpack_require__("JHRd");
/**
 * Creates a clone of `arrayBuffer`.
 *
 * @private
 * @param {ArrayBuffer} arrayBuffer The array buffer to clone.
 * @returns {ArrayBuffer} Returns the cloned array buffer.
 */


function cloneArrayBuffer(arrayBuffer) {
  var result = new arrayBuffer.constructor(arrayBuffer.byteLength);
  new Uint8Array(result).set(new Uint8Array(arrayBuffer));
  return result;
}

module.exports = cloneArrayBuffer;

/***/ }),

/***/ "+K6B":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return SortDropdownButton; });
/* harmony import */ var _react_react_spectrum_DropdownButton__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("6y7h");
/* harmony import */ var _react_react_spectrum_DropdownButton__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_DropdownButton__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _react_react_spectrum_Icon_SortOrderDown__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("gvlE");
/* harmony import */ var _react_react_spectrum_Icon_SortOrderDown__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Icon_SortOrderDown__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _react_react_spectrum_Icon_SortOrderUp__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("+Xin");
/* harmony import */ var _react_react_spectrum_Icon_SortOrderUp__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Icon_SortOrderUp__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _react_react_spectrum_Menu__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("kzNO");
/* harmony import */ var _react_react_spectrum_Menu__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Menu__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _react_react_spectrum_OverlayTrigger__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("uYrR");
/* harmony import */ var _react_react_spectrum_OverlayTrigger__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_OverlayTrigger__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var _react_react_spectrum_Tooltip__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("DUuf");
/* harmony import */ var _react_react_spectrum_Tooltip__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Tooltip__WEBPACK_IMPORTED_MODULE_5__);
/* harmony import */ var _utils_constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("YVc3");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_7__);
/* harmony import */ var _hooks_useIntl__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("BuN4");
/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__("VIzJ");
/* harmony import */ var _packages_CDOView_stores_constants__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__("q0hk");
/* harmony import */ var _SortDropdownButton_css__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__("lZFf");
/* harmony import */ var _SortDropdownButton_css__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(_SortDropdownButton_css__WEBPACK_IMPORTED_MODULE_11__);












function SortDropdownButton({ disabled, activeSortDirection, activeSort, sortOptions, onSortBy, tooltipId = 'header.sort.label', }) {
    const intl = Object(_hooks_useIntl__WEBPACK_IMPORTED_MODULE_8__[/* default */ "a"])();
    return (react__WEBPACK_IMPORTED_MODULE_7___default.a.createElement(_react_react_spectrum_OverlayTrigger__WEBPACK_IMPORTED_MODULE_4___default.a, { placement: "bottom", trigger: ['hover'], delayShow: _utils_constants__WEBPACK_IMPORTED_MODULE_6__[/* DEFAULT_TOOLTIP_DELAY */ "f"], boundariesElement: "container" },
        react__WEBPACK_IMPORTED_MODULE_7___default.a.createElement("div", { className: disabled ? _SortDropdownButton_css__WEBPACK_IMPORTED_MODULE_11___default.a.buttonContainer : '' },
            react__WEBPACK_IMPORTED_MODULE_7___default.a.createElement(_react_react_spectrum_DropdownButton__WEBPACK_IMPORTED_MODULE_0___default.a, { disabled: disabled, alignRight: true, "aria-label": intl.formatMessage({ id: 'header.sort.label' }), icon: activeSortDirection === _packages_CDOView_stores_constants__WEBPACK_IMPORTED_MODULE_10__[/* UXSortDir */ "h"].asc ? react__WEBPACK_IMPORTED_MODULE_7___default.a.createElement(_react_react_spectrum_Icon_SortOrderUp__WEBPACK_IMPORTED_MODULE_2___default.a, null) : react__WEBPACK_IMPORTED_MODULE_7___default.a.createElement(_react_react_spectrum_Icon_SortOrderDown__WEBPACK_IMPORTED_MODULE_1___default.a, null), "data-test-id": "HeaderAction_sort", role: 'button' },
                sortOptions.map(sort => (react__WEBPACK_IMPORTED_MODULE_7___default.a.createElement(_react_react_spectrum_Menu__WEBPACK_IMPORTED_MODULE_3__["MenuItem"], { key: sort, value: sort, label: react__WEBPACK_IMPORTED_MODULE_7___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_9__[/* FormattedMessage */ "c"], { id: `header.${_packages_CDOView_stores_constants__WEBPACK_IMPORTED_MODULE_10__[/* SORTBY_TO_COL_ID */ "e"][sort]}` }), selected: sort === activeSort, onClick: () => onSortBy === null || onSortBy === void 0 ? void 0 : onSortBy(sort) }))),
                react__WEBPACK_IMPORTED_MODULE_7___default.a.createElement(_react_react_spectrum_Menu__WEBPACK_IMPORTED_MODULE_3__["MenuDivider"], null),
                react__WEBPACK_IMPORTED_MODULE_7___default.a.createElement(_react_react_spectrum_Menu__WEBPACK_IMPORTED_MODULE_3__["MenuItem"], { key: "reverse", label: react__WEBPACK_IMPORTED_MODULE_7___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_9__[/* FormattedMessage */ "c"], { id: "header.reverseOrder" }), icon: activeSortDirection === _packages_CDOView_stores_constants__WEBPACK_IMPORTED_MODULE_10__[/* UXSortDir */ "h"].desc ? (react__WEBPACK_IMPORTED_MODULE_7___default.a.createElement(_react_react_spectrum_Icon_SortOrderUp__WEBPACK_IMPORTED_MODULE_2___default.a, null)) : (react__WEBPACK_IMPORTED_MODULE_7___default.a.createElement(_react_react_spectrum_Icon_SortOrderDown__WEBPACK_IMPORTED_MODULE_1___default.a, null)), onClick: () => onSortBy === null || onSortBy === void 0 ? void 0 : onSortBy(activeSort) }))),
        react__WEBPACK_IMPORTED_MODULE_7___default.a.createElement(_react_react_spectrum_Tooltip__WEBPACK_IMPORTED_MODULE_5___default.a, null,
            react__WEBPACK_IMPORTED_MODULE_7___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_9__[/* FormattedMessage */ "c"], { id: tooltipId }))));
}


/***/ }),

/***/ "+KVS":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return SDK_VERSION; });
const SDK_VERSION = '7.17.1';


/***/ }),

/***/ "+Ots":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(global) {/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("a375");
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/

const platform = global && global.process && global.process.platform;
/**
 * Simple utility container.
 */
class Utils {
    /**
     * Function to return the correct file path separator based on OS.
     *
     * @returns {String} value of the query param
     */
    static getPlatformPathSeparator() {
        return platform === 'win32' ? '\\' : '/';
    }
    /**
     * Function to return the value of a requested query param.
     *
     * @param {String} name      containing the name of the query param
     * @returns {String} value of the query param
     */
    static getParameterByName(name) {
        if (!window.location) {
            return null;
        }
        const url = window.location.href;
        const curName = name.replace(/[\[\]]/g, '\\$&'); // eslint-disable-line no-useless-escape
        const regex = new RegExp(`[?&]${curName}(=([^&#]*)|&|#|$)`);
        const results = regex.exec(url);
        if (!results) {
            return null;
        }
        // eslint-disable-next-line @typescript-eslint/no-magic-numbers
        return results[2] ? decodeURIComponent(results[2].replace(/\+/g, ' ')) : '';
    }
    /**
     * Replace specified occurances of a pattern in a templated string.
     *
     * @param {String} template 	templated format string
     * @param {Object} replaceMap 	key/val map of replacements
     * @return {String} representing the formatted string
     */
    static replaceInTemplateString(template, replaceMap) {
        const regex = new RegExp(Object.keys(replaceMap).join('|'), 'gi');
        return template.replace(regex, matched => replaceMap[matched]);
    }
    /**
     * Convert the file size into a formatted size object.
     *
     * @param {Number} isize  integer value of file size
     * @return {object} the formatted size and MB/GB/KB etc. specifier
     */
    static formatFileSize(isize, intl) {
        /* eslint-disable @typescript-eslint/no-magic-numbers */
        const sizeAbbrev = [
            'abbreviations.fileSize.byte',
            'abbreviations.fileSize.kilobyte',
            'abbreviations.fileSize.megabyte',
            'abbreviations.fileSize.gigabyte',
            'abbreviations.fileSize.terabyte',
        ];
        // Round B, KB, MB, GB, TB size numbers to 0, 0, 1, 2, 3 decimal place(s) respectively.
        const precision = [0, 0, 1, 2, 3];
        if (isize === undefined) {
            return { displayValue: 'NaN', value: NaN, abbrev: '--' };
        }
        const index = isize > 0 ? Math.floor(Math.log(isize) / Math.log(_constants__WEBPACK_IMPORTED_MODULE_0__[/* BYTE_CONVERSION_BASE */ "b"])) : 0;
        const multiplier = 10 ** (precision[index] || 0);
        const value = Math.round((isize / _constants__WEBPACK_IMPORTED_MODULE_0__[/* BYTE_CONVERSION_BASE */ "b"] ** index) * multiplier) / multiplier;
        const abbrev = intl.formatMessage({ id: `${sizeAbbrev[index]}` });
        const displayValue = intl.formatNumber(value);
        return { displayValue, value, abbrev };
        /* eslint-enable */
    }
    static formatFileSizeDisplay(elementSize, intl) {
        const { displayValue, abbrev } = this.formatFileSize(elementSize, intl);
        return elementSize !== undefined ? `${displayValue} ${abbrev}` : `${abbrev}`;
    }
    /**
     * Create a new url by appending a string to the current path.
     *
     * @param  {string} path       current path
     * @param  {string} addString  appended string
     * @returns string
     */
    static createUrlString(path, addString) {
        return path.endsWith('/') ? `${path}${addString}` : `${path}/${addString}`;
    }
    /**
     * Determine if we're currently running on UXP
     * @returns {boolean}
     */
    static usingUXP() {
        return Boolean(window.navigator.userAgent.indexOf('UXP') > -1);
    }
    static getResizeElement() {
        // UXP currently does not bubble up the resize event to the window but
        // it does dispatch the event to every DOM node up to document.
        return Utils.usingUXP() ? document : window;
    }
    static formatLongDateTime(date, intl) {
        return intl.formatDate(date, {
            month: 'numeric',
            day: 'numeric',
            year: 'numeric',
            hour: 'numeric',
            minute: 'numeric',
        });
    }
    /**
     * Used to sanitize urls to get rid of the protocol and decode it
     * @param path Path that XD gives us from recents search.
     * @param protocolToRemove The protocol to remove from the URL for example xdcloud:///
     */
    static sanitizeCloudDocPath(path, protocolToRemove) {
        return decodeURIComponent(path.replace(protocolToRemove, ''));
    }
    static extractUrn(url) {
        if (!url) {
            return '';
        }
        try {
            const { pathname: path } = new URL(url);
            const urnPosition = path.indexOf('urn');
            return urnPosition === -1 ? '' : path.slice(urnPosition);
        }
        catch (e) {
            return '';
        }
    }
}
/* harmony default export */ __webpack_exports__["a"] = (Utils);

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("yLpj")))

/***/ }),

/***/ "+QRC":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var deselectCurrent = __webpack_require__("E9nw");

var clipboardToIE11Formatting = {
  "text/plain": "Text",
  "text/html": "Url",
  "default": "Text"
};
var defaultMessage = "Copy to clipboard: #{key}, Enter";

function format(message) {
  var copyKey = (/mac os x/i.test(navigator.userAgent) ? "⌘" : "Ctrl") + "+C";
  return message.replace(/#{\s*key\s*}/g, copyKey);
}

function copy(text, options) {
  var debug,
      message,
      reselectPrevious,
      range,
      selection,
      mark,
      success = false;

  if (!options) {
    options = {};
  }

  debug = options.debug || false;

  try {
    reselectPrevious = deselectCurrent();
    range = document.createRange();
    selection = document.getSelection();
    mark = document.createElement("span");
    mark.textContent = text; // reset user styles for span element

    mark.style.all = "unset"; // prevents scrolling to the end of the page

    mark.style.position = "fixed";
    mark.style.top = 0;
    mark.style.clip = "rect(0, 0, 0, 0)"; // used to preserve spaces and line breaks

    mark.style.whiteSpace = "pre"; // do not inherit user-select (it may be `none`)

    mark.style.webkitUserSelect = "text";
    mark.style.MozUserSelect = "text";
    mark.style.msUserSelect = "text";
    mark.style.userSelect = "text";
    mark.addEventListener("copy", function (e) {
      e.stopPropagation();

      if (options.format) {
        e.preventDefault();

        if (typeof e.clipboardData === "undefined") {
          // IE 11
          debug && console.warn("unable to use e.clipboardData");
          debug && console.warn("trying IE specific stuff");
          window.clipboardData.clearData();
          var format = clipboardToIE11Formatting[options.format] || clipboardToIE11Formatting["default"];
          window.clipboardData.setData(format, text);
        } else {
          // all other browsers
          e.clipboardData.clearData();
          e.clipboardData.setData(options.format, text);
        }
      }

      if (options.onCopy) {
        e.preventDefault();
        options.onCopy(e.clipboardData);
      }
    });
    document.body.appendChild(mark);
    range.selectNodeContents(mark);
    selection.addRange(range);
    var successful = document.execCommand("copy");

    if (!successful) {
      throw new Error("copy command was unsuccessful");
    }

    success = true;
  } catch (err) {
    debug && console.error("unable to copy using execCommand: ", err);
    debug && console.warn("trying IE specific stuff");

    try {
      window.clipboardData.setData(options.format || "text", text);
      options.onCopy && options.onCopy(window.clipboardData);
      success = true;
    } catch (err) {
      debug && console.error("unable to copy using clipboardData: ", err);
      debug && console.error("falling back to prompt");
      message = format("message" in options ? options.message : defaultMessage);
      window.prompt(message, text);
    }
  } finally {
    if (selection) {
      if (typeof selection.removeRange == "function") {
        selection.removeRange(range);
      } else {
        selection.removeAllRanges();
      }
    }

    if (mark) {
      document.body.removeChild(mark);
    }

    reselectPrevious();
  }

  return success;
}

module.exports = copy;

/***/ }),

/***/ "+Qka":
/***/ (function(module, exports, __webpack_require__) {

var Stack = __webpack_require__("fmRc"),
    assignMergeValue = __webpack_require__("t2Dn"),
    baseFor = __webpack_require__("cq/+"),
    baseMergeDeep = __webpack_require__("T1AV"),
    isObject = __webpack_require__("GoyQ"),
    keysIn = __webpack_require__("mTTR"),
    safeGet = __webpack_require__("itsj");
/**
 * The base implementation of `_.merge` without support for multiple sources.
 *
 * @private
 * @param {Object} object The destination object.
 * @param {Object} source The source object.
 * @param {number} srcIndex The index of `source`.
 * @param {Function} [customizer] The function to customize merged values.
 * @param {Object} [stack] Tracks traversed source values and their merged
 *  counterparts.
 */


function baseMerge(object, source, srcIndex, customizer, stack) {
  if (object === source) {
    return;
  }

  baseFor(source, function (srcValue, key) {
    stack || (stack = new Stack());

    if (isObject(srcValue)) {
      baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);
    } else {
      var newValue = customizer ? customizer(safeGet(object, key), srcValue, key + '', object, source, stack) : undefined;

      if (newValue === undefined) {
        newValue = srcValue;
      }

      assignMergeValue(object, key, newValue);
    }
  }, keysIn);
}

module.exports = baseMerge;

/***/ }),

/***/ "+SFK":
/***/ (function(module, exports, __webpack_require__) {

__webpack_require__("AUvm");

__webpack_require__("wgeU");

__webpack_require__("adOz");

__webpack_require__("dl0q");

module.exports = __webpack_require__("WEpk").Symbol;

/***/ }),

/***/ "+UvZ":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var mobx_react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("okNM");
/* harmony import */ var _react_react_spectrum_Tooltip__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("DUuf");
/* harmony import */ var _react_react_spectrum_Tooltip__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Tooltip__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _react_react_spectrum_OverlayTrigger_js_Overlay__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("eS3o");
/* harmony import */ var _react_react_spectrum_OverlayTrigger_js_Overlay__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_OverlayTrigger_js_Overlay__WEBPACK_IMPORTED_MODULE_3__);
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2019 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
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;
};




const timeUntilTooltipDismisses = 5000;
const getScrollParent = node => {
    if (node == null) {
        return null;
    }
    if (node.scrollHeight > node.clientHeight) {
        return node;
    }
    return getScrollParent(node.parentNode);
};
let UnableToOpenItemWarning = class UnableToOpenItemWarning extends react__WEBPACK_IMPORTED_MODULE_0___default.a.Component {
    constructor() {
        super(...arguments);
        this.state = {
            unableToOpenItemMessage: undefined,
        };
        this.overlayTargetRef = react__WEBPACK_IMPORTED_MODULE_0___default.a.createRef();
        this.targetScrollParent = null;
        this.dismissTooltip = () => {
            if (this.targetScrollParent) {
                // removes listener from the scroll parent after the tooltip has been dismissed.
                this.targetScrollParent.removeEventListener('scroll', this.dismissTooltip);
            }
            this.setState({ unableToOpenItemMessage: undefined });
        };
        this.listenToScrollForTooltipDismissal = () => {
            this.targetScrollParent = getScrollParent(this.overlayTargetRef.current);
            if (this.targetScrollParent) {
                // adds a scroll listener to first scrollable parent so we can dismiss the tooltip
                // when the user scrolls.
                this.targetScrollParent.addEventListener('scroll', this.dismissTooltip);
            }
        };
        this.onItemClickedHandler = (element) => {
            const { onItemClickedHandler } = this.props;
            if (!this.disabled) {
                onItemClickedHandler === null || onItemClickedHandler === void 0 ? void 0 : onItemClickedHandler(element);
                return;
            }
            // get the error message returned from the passed in click handler if it exists
            const unableToOpenItemMessage = typeof this.disabled === 'string' ? this.disabled : undefined;
            this.setState({ unableToOpenItemMessage });
            if (unableToOpenItemMessage !== undefined) {
                this.listenToScrollForTooltipDismissal();
                // dismiss the tooltip after a configured amount of time
                setTimeout(this.dismissTooltip, timeUntilTooltipDismisses);
            }
        };
    }
    get disabled() {
        const { element, shouldRenderItemAsDisabled } = this.props;
        return shouldRenderItemAsDisabled === null || shouldRenderItemAsDisabled === void 0 ? void 0 : shouldRenderItemAsDisabled(element);
    }
    /**
     * We are using `Overlay` instead of `OverlayTrigger` to display the Tooltip for the
     * following reasons:
     *   - We need to hide the tooltip after a few seconds
     *   - OverlayTrigger was only showing the overlay for a split second in list view
     *   - OverlayTrigger shows the Overlay even when clicking on the multi select icon or the action menu
     *   - OverlayTrigger would not show when using the keyboard to open a file
     */
    render() {
        const { children } = this.props;
        const { unableToOpenItemMessage } = this.state;
        const showUnableToOpenWarning = unableToOpenItemMessage !== undefined;
        return (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null,
            react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", { ref: this.overlayTargetRef, className: "unable-to-open-overlay" }, react__WEBPACK_IMPORTED_MODULE_0___default.a.cloneElement(children, {
                disabled: this.disabled,
                onItemClickedHandler: this.onItemClickedHandler,
            })),
            this.overlayTargetRef !== null && (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_react_react_spectrum_OverlayTrigger_js_Overlay__WEBPACK_IMPORTED_MODULE_3___default.a, { flip: true, placement: "top", show: showUnableToOpenWarning, rootClose: this.dismissTooltip, onHide: this.dismissTooltip, onExiting: this.dismissTooltip, target: this.overlayTargetRef.current },
                react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_react_react_spectrum_Tooltip__WEBPACK_IMPORTED_MODULE_2___default.a, null, unableToOpenItemMessage)))));
    }
};
UnableToOpenItemWarning.defaultProps = {
    onItemClickedHandler: () => { },
    shouldRenderItemAsDisabled: () => false,
};
UnableToOpenItemWarning = __decorate([
    mobx_react__WEBPACK_IMPORTED_MODULE_1__[/* observer */ "e"]
], UnableToOpenItemWarning);
/* harmony default export */ __webpack_exports__["a"] = (UnableToOpenItemWarning);


/***/ }),

/***/ "+VcW":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("circle", {
  cx: "24",
  cy: "24",
  r: "6"
}), React.createElement("circle", {
  cx: "42",
  cy: "24",
  r: "6"
}), React.createElement("circle", {
  cx: "6",
  cy: "24",
  r: "6"
}));

/***/ }),

/***/ "+Wds":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var indexOf = String.prototype.indexOf;

module.exports = function (searchString
/*, position*/
) {
  return indexOf.call(this, searchString, arguments[1]) > -1;
};

/***/ }),

/***/ "+XMV":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = __webpack_require__("GOzd")() ? String.prototype.contains : __webpack_require__("+Wds");

/***/ }),

/***/ "+Xin":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("c2D/"),
      24: __webpack_require__("WYLd")
    }
  }));
};

WrappedIcon.displayName = 'SortOrderUp';
exports.default = WrappedIcon;

/***/ }),

/***/ "+c4p":
/***/ (function(module) {

module.exports = JSON.parse("{\"steps\":\"{currentStep} af {totalSteps}\"}");

/***/ }),

/***/ "+dgH":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _packages_CDOView_ACPAssetModel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("prkh");
/* harmony import */ var _utils_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("YVc3");
/* harmony import */ var _getAssetRef__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("NIJf");



/* harmony default export */ __webpack_exports__["a"] = ((projects) => {
    return projects.map(doc => new _packages_CDOView_ACPAssetModel__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"]({
        id: doc.id,
        href: doc.href,
        path: doc.path,
        title: doc.name,
        name: doc.name,
        displayName: doc.name,
        color: doc.color,
        modifiedDate: new Date(doc.modifiedDate),
        createDate: new Date(doc.createDate),
        hasSize: false,
        isCached: false,
        // SAM.js doesn't support isAvailableOffline for projects
        // instead check to see if the project's working folder is available offline
        isAvailableOffline: doc.rootFolder.isAvailableOffline,
        // Projects are always visible, SAM.JS takes care of hiding projects.
        isHidden: false,
        isDisabled: doc.isDisabled,
        size: undefined,
        role: doc.role,
        renditionTemplate: '',
        repositoryId: doc.repositoryId || '',
        type: _utils_constants__WEBPACK_IMPORTED_MODULE_1__[/* PROJECT_MIMETYPE */ "v"],
        stableUri: '',
        externalData: doc,
        assetRef: Object(_getAssetRef__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"])({
            cloudId: doc.id,
            name: doc.name,
            path: doc.path,
            repositoryId: doc.repositoryId,
        }),
        version: doc.version,
        contributorCount: doc.contributorCount,
        bookmarked: doc.bookmarked,
    }));
});


/***/ }),

/***/ "+i7v":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var _interopRequireDefault = __webpack_require__("TqRt");

exports.__esModule = true;
exports.default = scrollTop;

var _isWindow = _interopRequireDefault(__webpack_require__("8Y+z"));

function scrollTop(node, val) {
  var win = (0, _isWindow.default)(node);
  if (val === undefined) return win ? 'pageXOffset' in win ? win.pageXOffset : win.document.documentElement.scrollLeft : node.scrollLeft;
  if (win) win.scrollTo(val, 'pageYOffset' in win ? win.pageYOffset : win.document.documentElement.scrollTop);else node.scrollLeft = val;
}

module.exports = exports["default"];

/***/ }),

/***/ "+iFO":
/***/ (function(module, exports, __webpack_require__) {

var baseCreate = __webpack_require__("dTAl"),
    getPrototype = __webpack_require__("LcsW"),
    isPrototype = __webpack_require__("6sVZ");
/**
 * Initializes an object clone.
 *
 * @private
 * @param {Object} object The object to clone.
 * @returns {Object} Returns the initialized clone.
 */


function initCloneObject(object) {
  return typeof object.constructor == 'function' && !isPrototype(object) ? baseCreate(getPrototype(object)) : {};
}

module.exports = initCloneObject;

/***/ }),

/***/ "+juC":
/***/ (function(module, exports) {

/* eslint-disable max-len */
module.exports = {
  'confirmationDialog.dontShowAgain': 'Vis ikke igen',
  'confirmationDialog.confirm.default': 'Fortsæt',
  'confirmationDialog.cancel.default': 'Annuller',
  'confirmationDialog.learnMore': 'Få mere at vide',
  'toast.warning.place': 'Kan endnu ikke placere sammenkædede clouddoumenter. Fortsæt for at integrere i stedet.',
  'toast.warning.placeLinkOrEmbed': 'Aktiver, du placerer, er nu knyttet til originalen som standard. Det betyder, at hvis du redigerer ét sted, afspejles disse ændringer overalt.',
  'toast.warning.saveAs.invalidFormat': 'Beklager, men du kan ikke gemme {genericFormat}-filer her. Din fil gemmes som {adobeFormat}.',
  'pickerView.recent': 'Seneste',
  'pickerView.cloud_docs': 'Dine filer',
  'pickerView.shared_with_you': 'Delt med dig',
  'pickerView.projects': 'Projekter',
  'pickerView.files': 'Filer',
  'pickerView.computer': 'Din computer...',
  'pickerView.saveAsInput': 'Gem som',
  'pickerView.exportInput': 'Eksportér som',
  'pickerView.sketch_library': 'Konverter Sketch bibliotek...',
  'pickerView.error.saveAsOrExport.default': 'Filnavnet er ugyldigt.',
  'pickerView.error.saveAsOrExport.invalidName': 'Beklager, men navnet indeholder ugyldige tegn.',
  'pickerView.error.saveAsOrExport.invalidEnd': 'Navnet må ikke slutte med "." eller tomt mellemrum.',
  'pickerView.error.saveAsOrExport.invalidChar': 'Navnet må ikke indeholde følgende tegn: {characters}',
  'pickerView.error.saveAsOrExport.charRestriction': 'Navne må ikke indeholde mere end 200 tegn.',
  'pickerView.error.saveAsOrExport.duplicateName': 'Du har allerede et cloud-dokument her med dette navn.',
  'pickerView.error.addALibrary.permission': 'Du har ikke tilladelse til at tilføje dette bibliotek',
  'pickerViewFooter.button.add': 'Tilføj',
  'pickerViewFooter.button.cancel': 'Annuller',
  'pickerViewFooter.button.copy': 'Kopiér her',
  'pickerViewFooter.button.move': 'Flyt hertil',
  'pickerViewFooter.button.moveToProject': 'Flyt hertil',
  'pickerViewFooter.button.copyToProject': 'Kopiér her',
  'pickerViewFooter.button.choose': 'Vælg',
  'pickerViewFooter.button.save': 'Gem',
  'pickerViewFooter.button.switchToOSPicker': 'På computeren',
  'pickerViewFooter.button.save.offline': 'Internetforbindelse er påkrævet',
  'pickerViewFooter.button.saveAsCopy': 'Gem',
  'pickerViewFooter.button.export': 'Eksportér',
  'pickerViewFooter.button.placeLinkOrEmbed': 'Placer',
  'pickerViewFooter.button.import': 'Importér',
  'pickerViewFooter.checkbox.placeLink': 'Linket',
  'pickerViewFooter.tooltip.placeLink': 'Du kan kun placere dette element som et sammenkædet aktiv.',
  'pickerViewFooter.tooltip.placeEmbed': 'Du kan kun placere dette element som integreret.',
  'pickerViewFooter.saveAs.format.label': 'Format',
  'pickerViewFooter.button.selectProject': 'Gem',
  'onboardingCdp.title': 'Du kan gøre meget mere, hvis du gemmer som et cloud-dokument',
  'onboardingCdp.tooltip': 'Hvis du gemmer på din computer, kan du ikke bruge cloud-funktioner.',
  'onboardingCdp.tooltip.link': 'Få mere at vide',
  'onboardingCdp.table.header.saveToCloud': 'Creative Cloud',
  'onboardingCdp.table.header.saveToLocal': 'På computeren',
  'onboardingCdp.button.saveToCloud': 'Gem i Creative Cloud',
  'onboardingCdp.feature.offline': 'Offline-adgang',
  'onboardingCdp.feature.syncing': 'Cloud-synkroniserer til alle dine enheder',
  'onboardingCdp.feature.autosave': 'Gemmer alle ændringer automatisk',
  'onboardingCdp.feature.versionHistory': 'Versionshistorik',
  'onboardingCdp.feature.inviteToEdit': 'Inviter til at redigere',
  'onboardingCdp.button.saveToLocal': 'Gem på computeren',
  'onboardingCdp.checkbox.doNotShowAgain': 'Vis ikke igen',
  'uap.title.place': 'Placer fra Creative Cloud',
  'uap.title.import': 'Importér fra Creative Cloud',
  'uap.title.placeLinkOrEmbed': 'Placer fra Creative Cloud',
  'uap.title.linkAssets': 'Sammenkæd fra Creative Cloud',
  'uap.title.open': 'Åbn fra Creative Cloud',
  'uap.title.relink': 'Sammenkæd fra Creative Cloud',
  'uap.title.saveAs': 'Gem i Creative Cloud',
  'uap.title.saveAsCopy': 'Gem i Creative Cloud',
  'uap.title.saveToFolder': 'Gem i Creative Cloud',
  'uap.title.export': 'Eksportér til Creative Cloud',
  'uap.title.copy': 'Kopiér til Creative Cloud',
  'uap.title.move': 'Flyt i Creative Cloud',
  'uap.title.moveToProject': 'Flyt i Creative Cloud',
  'uap.title.copyToProject': 'Kopiér til Creative Cloud',
  'uap.title.reference': 'Føj til Creative Cloud',
  'uap.title.selectProject': 'Gem i Creative Cloud',
  'move.toSpace.confirm.title': 'Versionshistorikken vil blive slettet',
  'move.toSpace.confirm.message': 'Hvis denne fil flyttes, vil det medføre, at versionshistorikken slettes. Hvis du vil beholde versionshistorikken, skal du i stedet lave en kopi.'
};

/***/ }),

/***/ "+n3g":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("Ha/K"),
      24: __webpack_require__("drBI")
    }
  }));
};

WrappedIcon.displayName = 'ChevronRight';
exports.default = WrappedIcon;

/***/ }),

/***/ "+plK":
/***/ (function(module, exports, __webpack_require__) {

__webpack_require__("ApPD");

module.exports = __webpack_require__("WEpk").Object.getPrototypeOf;

/***/ }),

/***/ "+qE3":
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright Joyent, Inc. and other Node contributors.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to permit
// persons to whom the Software is furnished to do so, subject to the
// following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
// USE OR OTHER DEALINGS IN THE SOFTWARE.


var R = typeof Reflect === 'object' ? Reflect : null;
var ReflectApply = R && typeof R.apply === 'function' ? R.apply : function ReflectApply(target, receiver, args) {
  return Function.prototype.apply.call(target, receiver, args);
};
var ReflectOwnKeys;

if (R && typeof R.ownKeys === 'function') {
  ReflectOwnKeys = R.ownKeys;
} else if (Object.getOwnPropertySymbols) {
  ReflectOwnKeys = function ReflectOwnKeys(target) {
    return Object.getOwnPropertyNames(target).concat(Object.getOwnPropertySymbols(target));
  };
} else {
  ReflectOwnKeys = function ReflectOwnKeys(target) {
    return Object.getOwnPropertyNames(target);
  };
}

function ProcessEmitWarning(warning) {
  if (console && console.warn) console.warn(warning);
}

var NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {
  return value !== value;
};

function EventEmitter() {
  EventEmitter.init.call(this);
}

module.exports = EventEmitter;
module.exports.once = once; // Backwards-compat with node 0.10.x

EventEmitter.EventEmitter = EventEmitter;
EventEmitter.prototype._events = undefined;
EventEmitter.prototype._eventsCount = 0;
EventEmitter.prototype._maxListeners = undefined; // By default EventEmitters will print a warning if more than 10 listeners are
// added to it. This is a useful default which helps finding memory leaks.

var defaultMaxListeners = 10;

function checkListener(listener) {
  if (typeof listener !== 'function') {
    throw new TypeError('The "listener" argument must be of type Function. Received type ' + typeof listener);
  }
}

Object.defineProperty(EventEmitter, 'defaultMaxListeners', {
  enumerable: true,
  get: function () {
    return defaultMaxListeners;
  },
  set: function (arg) {
    if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {
      throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received ' + arg + '.');
    }

    defaultMaxListeners = arg;
  }
});

EventEmitter.init = function () {
  if (this._events === undefined || this._events === Object.getPrototypeOf(this)._events) {
    this._events = Object.create(null);
    this._eventsCount = 0;
  }

  this._maxListeners = this._maxListeners || undefined;
}; // Obviously not all Emitters should be limited to 10. This function allows
// that to be increased. Set to zero for unlimited.


EventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {
  if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {
    throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received ' + n + '.');
  }

  this._maxListeners = n;
  return this;
};

function _getMaxListeners(that) {
  if (that._maxListeners === undefined) return EventEmitter.defaultMaxListeners;
  return that._maxListeners;
}

EventEmitter.prototype.getMaxListeners = function getMaxListeners() {
  return _getMaxListeners(this);
};

EventEmitter.prototype.emit = function emit(type) {
  var args = [];

  for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);

  var doError = type === 'error';
  var events = this._events;
  if (events !== undefined) doError = doError && events.error === undefined;else if (!doError) return false; // If there is no 'error' event listener then throw.

  if (doError) {
    var er;
    if (args.length > 0) er = args[0];

    if (er instanceof Error) {
      // Note: The comments on the `throw` lines are intentional, they show
      // up in Node's output if this results in an unhandled exception.
      throw er; // Unhandled 'error' event
    } // At least give some kind of context to the user


    var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));
    err.context = er;
    throw err; // Unhandled 'error' event
  }

  var handler = events[type];
  if (handler === undefined) return false;

  if (typeof handler === 'function') {
    ReflectApply(handler, this, args);
  } else {
    var len = handler.length;
    var listeners = arrayClone(handler, len);

    for (var i = 0; i < len; ++i) ReflectApply(listeners[i], this, args);
  }

  return true;
};

function _addListener(target, type, listener, prepend) {
  var m;
  var events;
  var existing;
  checkListener(listener);
  events = target._events;

  if (events === undefined) {
    events = target._events = Object.create(null);
    target._eventsCount = 0;
  } else {
    // To avoid recursion in the case that type === "newListener"! Before
    // adding it to the listeners, first emit "newListener".
    if (events.newListener !== undefined) {
      target.emit('newListener', type, listener.listener ? listener.listener : listener); // Re-assign `events` because a newListener handler could have caused the
      // this._events to be assigned to a new object

      events = target._events;
    }

    existing = events[type];
  }

  if (existing === undefined) {
    // Optimize the case of one listener. Don't need the extra array object.
    existing = events[type] = listener;
    ++target._eventsCount;
  } else {
    if (typeof existing === 'function') {
      // Adding the second element, need to change to array.
      existing = events[type] = prepend ? [listener, existing] : [existing, listener]; // If we've already got an array, just append.
    } else if (prepend) {
      existing.unshift(listener);
    } else {
      existing.push(listener);
    } // Check for listener leak


    m = _getMaxListeners(target);

    if (m > 0 && existing.length > m && !existing.warned) {
      existing.warned = true; // No error code for this since it is a Warning
      // eslint-disable-next-line no-restricted-syntax

      var w = new Error('Possible EventEmitter memory leak detected. ' + existing.length + ' ' + String(type) + ' listeners ' + 'added. Use emitter.setMaxListeners() to ' + 'increase limit');
      w.name = 'MaxListenersExceededWarning';
      w.emitter = target;
      w.type = type;
      w.count = existing.length;
      ProcessEmitWarning(w);
    }
  }

  return target;
}

EventEmitter.prototype.addListener = function addListener(type, listener) {
  return _addListener(this, type, listener, false);
};

EventEmitter.prototype.on = EventEmitter.prototype.addListener;

EventEmitter.prototype.prependListener = function prependListener(type, listener) {
  return _addListener(this, type, listener, true);
};

function onceWrapper() {
  if (!this.fired) {
    this.target.removeListener(this.type, this.wrapFn);
    this.fired = true;
    if (arguments.length === 0) return this.listener.call(this.target);
    return this.listener.apply(this.target, arguments);
  }
}

function _onceWrap(target, type, listener) {
  var state = {
    fired: false,
    wrapFn: undefined,
    target: target,
    type: type,
    listener: listener
  };
  var wrapped = onceWrapper.bind(state);
  wrapped.listener = listener;
  state.wrapFn = wrapped;
  return wrapped;
}

EventEmitter.prototype.once = function once(type, listener) {
  checkListener(listener);
  this.on(type, _onceWrap(this, type, listener));
  return this;
};

EventEmitter.prototype.prependOnceListener = function prependOnceListener(type, listener) {
  checkListener(listener);
  this.prependListener(type, _onceWrap(this, type, listener));
  return this;
}; // Emits a 'removeListener' event if and only if the listener was removed.


EventEmitter.prototype.removeListener = function removeListener(type, listener) {
  var list, events, position, i, originalListener;
  checkListener(listener);
  events = this._events;
  if (events === undefined) return this;
  list = events[type];
  if (list === undefined) return this;

  if (list === listener || list.listener === listener) {
    if (--this._eventsCount === 0) this._events = Object.create(null);else {
      delete events[type];
      if (events.removeListener) this.emit('removeListener', type, list.listener || listener);
    }
  } else if (typeof list !== 'function') {
    position = -1;

    for (i = list.length - 1; i >= 0; i--) {
      if (list[i] === listener || list[i].listener === listener) {
        originalListener = list[i].listener;
        position = i;
        break;
      }
    }

    if (position < 0) return this;
    if (position === 0) list.shift();else {
      spliceOne(list, position);
    }
    if (list.length === 1) events[type] = list[0];
    if (events.removeListener !== undefined) this.emit('removeListener', type, originalListener || listener);
  }

  return this;
};

EventEmitter.prototype.off = EventEmitter.prototype.removeListener;

EventEmitter.prototype.removeAllListeners = function removeAllListeners(type) {
  var listeners, events, i;
  events = this._events;
  if (events === undefined) return this; // not listening for removeListener, no need to emit

  if (events.removeListener === undefined) {
    if (arguments.length === 0) {
      this._events = Object.create(null);
      this._eventsCount = 0;
    } else if (events[type] !== undefined) {
      if (--this._eventsCount === 0) this._events = Object.create(null);else delete events[type];
    }

    return this;
  } // emit removeListener for all listeners on all events


  if (arguments.length === 0) {
    var keys = Object.keys(events);
    var key;

    for (i = 0; i < keys.length; ++i) {
      key = keys[i];
      if (key === 'removeListener') continue;
      this.removeAllListeners(key);
    }

    this.removeAllListeners('removeListener');
    this._events = Object.create(null);
    this._eventsCount = 0;
    return this;
  }

  listeners = events[type];

  if (typeof listeners === 'function') {
    this.removeListener(type, listeners);
  } else if (listeners !== undefined) {
    // LIFO order
    for (i = listeners.length - 1; i >= 0; i--) {
      this.removeListener(type, listeners[i]);
    }
  }

  return this;
};

function _listeners(target, type, unwrap) {
  var events = target._events;
  if (events === undefined) return [];
  var evlistener = events[type];
  if (evlistener === undefined) return [];
  if (typeof evlistener === 'function') return unwrap ? [evlistener.listener || evlistener] : [evlistener];
  return unwrap ? unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);
}

EventEmitter.prototype.listeners = function listeners(type) {
  return _listeners(this, type, true);
};

EventEmitter.prototype.rawListeners = function rawListeners(type) {
  return _listeners(this, type, false);
};

EventEmitter.listenerCount = function (emitter, type) {
  if (typeof emitter.listenerCount === 'function') {
    return emitter.listenerCount(type);
  } else {
    return listenerCount.call(emitter, type);
  }
};

EventEmitter.prototype.listenerCount = listenerCount;

function listenerCount(type) {
  var events = this._events;

  if (events !== undefined) {
    var evlistener = events[type];

    if (typeof evlistener === 'function') {
      return 1;
    } else if (evlistener !== undefined) {
      return evlistener.length;
    }
  }

  return 0;
}

EventEmitter.prototype.eventNames = function eventNames() {
  return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];
};

function arrayClone(arr, n) {
  var copy = new Array(n);

  for (var i = 0; i < n; ++i) copy[i] = arr[i];

  return copy;
}

function spliceOne(list, index) {
  for (; index + 1 < list.length; index++) list[index] = list[index + 1];

  list.pop();
}

function unwrapListeners(arr) {
  var ret = new Array(arr.length);

  for (var i = 0; i < ret.length; ++i) {
    ret[i] = arr[i].listener || arr[i];
  }

  return ret;
}

function once(emitter, name) {
  return new Promise(function (resolve, reject) {
    function errorListener(err) {
      emitter.removeListener(name, resolver);
      reject(err);
    }

    function resolver() {
      if (typeof emitter.removeListener === 'function') {
        emitter.removeListener('error', errorListener);
      }

      resolve([].slice.call(arguments));
    }

    ;
    eventTargetAgnosticAddListener(emitter, name, resolver, {
      once: true
    });

    if (name !== 'error') {
      addErrorHandlerIfEventEmitter(emitter, errorListener, {
        once: true
      });
    }
  });
}

function addErrorHandlerIfEventEmitter(emitter, handler, flags) {
  if (typeof emitter.on === 'function') {
    eventTargetAgnosticAddListener(emitter, 'error', handler, flags);
  }
}

function eventTargetAgnosticAddListener(emitter, name, listener, flags) {
  if (typeof emitter.on === 'function') {
    if (flags.once) {
      emitter.once(name, listener);
    } else {
      emitter.on(name, listener);
    }
  } else if (typeof emitter.addEventListener === 'function') {
    // EventTarget does not have `error` event semantics like Node
    // EventEmitters, we do not listen for `error` events here.
    emitter.addEventListener(name, function wrapListener(arg) {
      // IE does not have builtin `{ once: true }` support so we
      // have to do it manually.
      if (flags.once) {
        emitter.removeEventListener(name, wrapListener);
      }

      listener(arg);
    });
  } else {
    throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type ' + typeof emitter);
  }
}

/***/ }),

/***/ "+wdc":
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/** @license React v0.18.0
 * scheduler.production.min.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.
 */


Object.defineProperty(exports, "__esModule", {
  value: !0
});
var f, g, h, k, l;

if ("undefined" === typeof window || "function" !== typeof MessageChannel) {
  var p = null,
      q = null,
      t = function () {
    if (null !== p) try {
      var a = exports.unstable_now();
      p(!0, a);
      p = null;
    } catch (b) {
      throw setTimeout(t, 0), b;
    }
  },
      u = Date.now();

  exports.unstable_now = function () {
    return Date.now() - u;
  };

  f = function (a) {
    null !== p ? setTimeout(f, 0, a) : (p = a, setTimeout(t, 0));
  };

  g = function (a, b) {
    q = setTimeout(a, b);
  };

  h = function () {
    clearTimeout(q);
  };

  k = function () {
    return !1;
  };

  l = exports.unstable_forceFrameRate = function () {};
} else {
  var w = window.performance,
      x = window.Date,
      y = window.setTimeout,
      z = window.clearTimeout;

  if ("undefined" !== typeof console) {
    var A = window.cancelAnimationFrame;
    "function" !== typeof window.requestAnimationFrame && console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills");
    "function" !== typeof A && console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills");
  }

  if ("object" === typeof w && "function" === typeof w.now) exports.unstable_now = function () {
    return w.now();
  };else {
    var B = x.now();

    exports.unstable_now = function () {
      return x.now() - B;
    };
  }
  var C = !1,
      D = null,
      E = -1,
      F = 5,
      G = 0;

  k = function () {
    return exports.unstable_now() >= G;
  };

  l = function () {};

  exports.unstable_forceFrameRate = function (a) {
    0 > a || 125 < a ? console.error("forceFrameRate takes a positive int between 0 and 125, forcing framerates higher than 125 fps is not unsupported") : F = 0 < a ? Math.floor(1E3 / a) : 5;
  };

  var H = new MessageChannel(),
      I = H.port2;

  H.port1.onmessage = function () {
    if (null !== D) {
      var a = exports.unstable_now();
      G = a + F;

      try {
        D(!0, a) ? I.postMessage(null) : (C = !1, D = null);
      } catch (b) {
        throw I.postMessage(null), b;
      }
    } else C = !1;
  };

  f = function (a) {
    D = a;
    C || (C = !0, I.postMessage(null));
  };

  g = function (a, b) {
    E = y(function () {
      a(exports.unstable_now());
    }, b);
  };

  h = function () {
    z(E);
    E = -1;
  };
}

function J(a, b) {
  var c = a.length;
  a.push(b);

  a: for (;;) {
    var d = Math.floor((c - 1) / 2),
        e = a[d];
    if (void 0 !== e && 0 < K(e, b)) a[d] = b, a[c] = e, c = d;else break a;
  }
}

function L(a) {
  a = a[0];
  return void 0 === a ? null : a;
}

function M(a) {
  var b = a[0];

  if (void 0 !== b) {
    var c = a.pop();

    if (c !== b) {
      a[0] = c;

      a: for (var d = 0, e = a.length; d < e;) {
        var m = 2 * (d + 1) - 1,
            n = a[m],
            v = m + 1,
            r = a[v];
        if (void 0 !== n && 0 > K(n, c)) void 0 !== r && 0 > K(r, n) ? (a[d] = r, a[v] = c, d = v) : (a[d] = n, a[m] = c, d = m);else if (void 0 !== r && 0 > K(r, c)) a[d] = r, a[v] = c, d = v;else break a;
      }
    }

    return b;
  }

  return null;
}

function K(a, b) {
  var c = a.sortIndex - b.sortIndex;
  return 0 !== c ? c : a.id - b.id;
}

var N = [],
    O = [],
    P = 1,
    Q = null,
    R = 3,
    S = !1,
    T = !1,
    U = !1;

function V(a) {
  for (var b = L(O); null !== b;) {
    if (null === b.callback) M(O);else if (b.startTime <= a) M(O), b.sortIndex = b.expirationTime, J(N, b);else break;
    b = L(O);
  }
}

function W(a) {
  U = !1;
  V(a);
  if (!T) if (null !== L(N)) T = !0, f(X);else {
    var b = L(O);
    null !== b && g(W, b.startTime - a);
  }
}

function X(a, b) {
  T = !1;
  U && (U = !1, h());
  S = !0;
  var c = R;

  try {
    V(b);

    for (Q = L(N); null !== Q && (!(Q.expirationTime > b) || a && !k());) {
      var d = Q.callback;

      if (null !== d) {
        Q.callback = null;
        R = Q.priorityLevel;
        var e = d(Q.expirationTime <= b);
        b = exports.unstable_now();
        "function" === typeof e ? Q.callback = e : Q === L(N) && M(N);
        V(b);
      } else M(N);

      Q = L(N);
    }

    if (null !== Q) var m = !0;else {
      var n = L(O);
      null !== n && g(W, n.startTime - b);
      m = !1;
    }
    return m;
  } finally {
    Q = null, R = c, S = !1;
  }
}

function Y(a) {
  switch (a) {
    case 1:
      return -1;

    case 2:
      return 250;

    case 5:
      return 1073741823;

    case 4:
      return 1E4;

    default:
      return 5E3;
  }
}

var Z = l;
exports.unstable_ImmediatePriority = 1;
exports.unstable_UserBlockingPriority = 2;
exports.unstable_NormalPriority = 3;
exports.unstable_IdlePriority = 5;
exports.unstable_LowPriority = 4;

exports.unstable_runWithPriority = function (a, b) {
  switch (a) {
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
      break;

    default:
      a = 3;
  }

  var c = R;
  R = a;

  try {
    return b();
  } finally {
    R = c;
  }
};

exports.unstable_next = function (a) {
  switch (R) {
    case 1:
    case 2:
    case 3:
      var b = 3;
      break;

    default:
      b = R;
  }

  var c = R;
  R = b;

  try {
    return a();
  } finally {
    R = c;
  }
};

exports.unstable_scheduleCallback = function (a, b, c) {
  var d = exports.unstable_now();

  if ("object" === typeof c && null !== c) {
    var e = c.delay;
    e = "number" === typeof e && 0 < e ? d + e : d;
    c = "number" === typeof c.timeout ? c.timeout : Y(a);
  } else c = Y(a), e = d;

  c = e + c;
  a = {
    id: P++,
    callback: b,
    priorityLevel: a,
    startTime: e,
    expirationTime: c,
    sortIndex: -1
  };
  e > d ? (a.sortIndex = e, J(O, a), null === L(N) && a === L(O) && (U ? h() : U = !0, g(W, e - d))) : (a.sortIndex = c, J(N, a), T || S || (T = !0, f(X)));
  return a;
};

exports.unstable_cancelCallback = function (a) {
  a.callback = null;
};

exports.unstable_wrapCallback = function (a) {
  var b = R;
  return function () {
    var c = R;
    R = b;

    try {
      return a.apply(this, arguments);
    } finally {
      R = c;
    }
  };
};

exports.unstable_getCurrentPriorityLevel = function () {
  return R;
};

exports.unstable_shouldYield = function () {
  var a = exports.unstable_now();
  V(a);
  var b = L(N);
  return b !== Q && null !== Q && null !== b && null !== b.callback && b.startTime <= a && b.expirationTime < Q.expirationTime || k();
};

exports.unstable_requestPaint = Z;

exports.unstable_continueExecution = function () {
  T || S || (T = !0, f(X));
};

exports.unstable_pauseExecution = function () {};

exports.unstable_getFirstCallbackNode = function () {
  return L(N);
};

exports.unstable_Profiling = null;

/***/ }),

/***/ "/+cc":
/***/ (function(module, exports, __webpack_require__) {

/*!
 * Fuse.js v3.4.6 - Lightweight fuzzy-search (http://fusejs.io)
 * 
 * Copyright (c) 2012-2017 Kirollos Risk (http://kiro.me)
 * All Rights Reserved. Apache Software License 2.0
 * 
 * http://www.apache.org/licenses/LICENSE-2.0
 */
!function (e, t) {
   true ? module.exports = t() : undefined;
}(this, function () {
  return function (e) {
    var t = {};

    function n(r) {
      if (t[r]) return t[r].exports;
      var o = t[r] = {
        i: r,
        l: !1,
        exports: {}
      };
      return e[r].call(o.exports, o, o.exports, n), o.l = !0, o.exports;
    }

    return n.m = e, n.c = t, n.d = function (e, t, r) {
      n.o(e, t) || Object.defineProperty(e, t, {
        enumerable: !0,
        get: r
      });
    }, n.r = function (e) {
      "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, {
        value: "Module"
      }), Object.defineProperty(e, "__esModule", {
        value: !0
      });
    }, n.t = function (e, t) {
      if (1 & t && (e = n(e)), 8 & t) return e;
      if (4 & t && "object" == typeof e && e && e.__esModule) return e;
      var r = Object.create(null);
      if (n.r(r), Object.defineProperty(r, "default", {
        enumerable: !0,
        value: e
      }), 2 & t && "string" != typeof e) for (var o in e) n.d(r, o, function (t) {
        return e[t];
      }.bind(null, o));
      return r;
    }, n.n = function (e) {
      var t = e && e.__esModule ? function () {
        return e.default;
      } : function () {
        return e;
      };
      return n.d(t, "a", t), t;
    }, n.o = function (e, t) {
      return Object.prototype.hasOwnProperty.call(e, t);
    }, n.p = "", n(n.s = 1);
  }([function (e, t) {
    e.exports = function (e) {
      return Array.isArray ? Array.isArray(e) : "[object Array]" === Object.prototype.toString.call(e);
    };
  }, function (e, t, n) {
    function r(e) {
      return (r = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (e) {
        return typeof e;
      } : function (e) {
        return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e;
      })(e);
    }

    function o(e, t) {
      for (var n = 0; n < t.length; n++) {
        var r = t[n];
        r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(e, r.key, r);
      }
    }

    var i = n(2),
        a = n(8),
        s = n(0),
        c = function () {
      function e(t, n) {
        var r = n.location,
            o = void 0 === r ? 0 : r,
            i = n.distance,
            s = void 0 === i ? 100 : i,
            c = n.threshold,
            h = void 0 === c ? .6 : c,
            l = n.maxPatternLength,
            u = void 0 === l ? 32 : l,
            f = n.caseSensitive,
            d = void 0 !== f && f,
            v = n.tokenSeparator,
            p = void 0 === v ? / +/g : v,
            g = n.findAllMatches,
            y = void 0 !== g && g,
            m = n.minMatchCharLength,
            k = void 0 === m ? 1 : m,
            S = n.id,
            x = void 0 === S ? null : S,
            b = n.keys,
            M = void 0 === b ? [] : b,
            _ = n.shouldSort,
            L = void 0 === _ || _,
            w = n.getFn,
            A = void 0 === w ? a : w,
            C = n.sortFn,
            I = void 0 === C ? function (e, t) {
          return e.score - t.score;
        } : C,
            O = n.tokenize,
            j = void 0 !== O && O,
            P = n.matchAllTokens,
            F = void 0 !== P && P,
            T = n.includeMatches,
            z = void 0 !== T && T,
            E = n.includeScore,
            K = void 0 !== E && E,
            $ = n.verbose,
            J = void 0 !== $ && $;
        !function (e, t) {
          if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");
        }(this, e), this.options = {
          location: o,
          distance: s,
          threshold: h,
          maxPatternLength: u,
          isCaseSensitive: d,
          tokenSeparator: p,
          findAllMatches: y,
          minMatchCharLength: k,
          id: x,
          keys: M,
          includeMatches: z,
          includeScore: K,
          shouldSort: L,
          getFn: A,
          sortFn: I,
          verbose: J,
          tokenize: j,
          matchAllTokens: F
        }, this.setCollection(t);
      }

      var t, n, c;
      return t = e, (n = [{
        key: "setCollection",
        value: function (e) {
          return this.list = e, e;
        }
      }, {
        key: "search",
        value: function (e) {
          var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {
            limit: !1
          };

          this._log('---------\nSearch pattern: "'.concat(e, '"'));

          var n = this._prepareSearchers(e),
              r = n.tokenSearchers,
              o = n.fullSearcher,
              i = this._search(r, o),
              a = i.weights,
              s = i.results;

          return this._computeScore(a, s), this.options.shouldSort && this._sort(s), t.limit && "number" == typeof t.limit && (s = s.slice(0, t.limit)), this._format(s);
        }
      }, {
        key: "_prepareSearchers",
        value: function () {
          var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "",
              t = [];
          if (this.options.tokenize) for (var n = e.split(this.options.tokenSeparator), r = 0, o = n.length; r < o; r += 1) t.push(new i(n[r], this.options));
          return {
            tokenSearchers: t,
            fullSearcher: new i(e, this.options)
          };
        }
      }, {
        key: "_search",
        value: function () {
          var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [],
              t = arguments.length > 1 ? arguments[1] : void 0,
              n = this.list,
              r = {},
              o = [];

          if ("string" == typeof n[0]) {
            for (var i = 0, a = n.length; i < a; i += 1) this._analyze({
              key: "",
              value: n[i],
              record: i,
              index: i
            }, {
              resultMap: r,
              results: o,
              tokenSearchers: e,
              fullSearcher: t
            });

            return {
              weights: null,
              results: o
            };
          }

          for (var s = {}, c = 0, h = n.length; c < h; c += 1) for (var l = n[c], u = 0, f = this.options.keys.length; u < f; u += 1) {
            var d = this.options.keys[u];

            if ("string" != typeof d) {
              if (s[d.name] = {
                weight: 1 - d.weight || 1
              }, d.weight <= 0 || d.weight > 1) throw new Error("Key weight has to be > 0 and <= 1");
              d = d.name;
            } else s[d] = {
              weight: 1
            };

            this._analyze({
              key: d,
              value: this.options.getFn(l, d),
              record: l,
              index: c
            }, {
              resultMap: r,
              results: o,
              tokenSearchers: e,
              fullSearcher: t
            });
          }

          return {
            weights: s,
            results: o
          };
        }
      }, {
        key: "_analyze",
        value: function (e, t) {
          var n = e.key,
              r = e.arrayIndex,
              o = void 0 === r ? -1 : r,
              i = e.value,
              a = e.record,
              c = e.index,
              h = t.tokenSearchers,
              l = void 0 === h ? [] : h,
              u = t.fullSearcher,
              f = void 0 === u ? [] : u,
              d = t.resultMap,
              v = void 0 === d ? {} : d,
              p = t.results,
              g = void 0 === p ? [] : p;

          if (null != i) {
            var y = !1,
                m = -1,
                k = 0;

            if ("string" == typeof i) {
              this._log("\nKey: ".concat("" === n ? "-" : n));

              var S = f.search(i);

              if (this._log('Full text: "'.concat(i, '", score: ').concat(S.score)), this.options.tokenize) {
                for (var x = i.split(this.options.tokenSeparator), b = [], M = 0; M < l.length; M += 1) {
                  var _ = l[M];

                  this._log('\nPattern: "'.concat(_.pattern, '"'));

                  for (var L = !1, w = 0; w < x.length; w += 1) {
                    var A = x[w],
                        C = _.search(A),
                        I = {};

                    C.isMatch ? (I[A] = C.score, y = !0, L = !0, b.push(C.score)) : (I[A] = 1, this.options.matchAllTokens || b.push(1)), this._log('Token: "'.concat(A, '", score: ').concat(I[A]));
                  }

                  L && (k += 1);
                }

                m = b[0];

                for (var O = b.length, j = 1; j < O; j += 1) m += b[j];

                m /= O, this._log("Token score average:", m);
              }

              var P = S.score;
              m > -1 && (P = (P + m) / 2), this._log("Score average:", P);
              var F = !this.options.tokenize || !this.options.matchAllTokens || k >= l.length;

              if (this._log("\nCheck Matches: ".concat(F)), (y || S.isMatch) && F) {
                var T = v[c];
                T ? T.output.push({
                  key: n,
                  arrayIndex: o,
                  value: i,
                  score: P,
                  matchedIndices: S.matchedIndices
                }) : (v[c] = {
                  item: a,
                  output: [{
                    key: n,
                    arrayIndex: o,
                    value: i,
                    score: P,
                    matchedIndices: S.matchedIndices
                  }]
                }, g.push(v[c]));
              }
            } else if (s(i)) for (var z = 0, E = i.length; z < E; z += 1) this._analyze({
              key: n,
              arrayIndex: z,
              value: i[z],
              record: a,
              index: c
            }, {
              resultMap: v,
              results: g,
              tokenSearchers: l,
              fullSearcher: f
            });
          }
        }
      }, {
        key: "_computeScore",
        value: function (e, t) {
          this._log("\n\nComputing score:\n");

          for (var n = 0, r = t.length; n < r; n += 1) {
            for (var o = t[n].output, i = o.length, a = 1, s = 1, c = 0; c < i; c += 1) {
              var h = e ? e[o[c].key].weight : 1,
                  l = (1 === h ? o[c].score : o[c].score || .001) * h;
              1 !== h ? s = Math.min(s, l) : (o[c].nScore = l, a *= l);
            }

            t[n].score = 1 === s ? a : s, this._log(t[n]);
          }
        }
      }, {
        key: "_sort",
        value: function (e) {
          this._log("\n\nSorting...."), e.sort(this.options.sortFn);
        }
      }, {
        key: "_format",
        value: function (e) {
          var t = [];

          if (this.options.verbose) {
            var n = [];
            this._log("\n\nOutput:\n\n", JSON.stringify(e, function (e, t) {
              if ("object" === r(t) && null !== t) {
                if (-1 !== n.indexOf(t)) return;
                n.push(t);
              }

              return t;
            })), n = null;
          }

          var o = [];
          this.options.includeMatches && o.push(function (e, t) {
            var n = e.output;
            t.matches = [];

            for (var r = 0, o = n.length; r < o; r += 1) {
              var i = n[r];

              if (0 !== i.matchedIndices.length) {
                var a = {
                  indices: i.matchedIndices,
                  value: i.value
                };
                i.key && (a.key = i.key), i.hasOwnProperty("arrayIndex") && i.arrayIndex > -1 && (a.arrayIndex = i.arrayIndex), t.matches.push(a);
              }
            }
          }), this.options.includeScore && o.push(function (e, t) {
            t.score = e.score;
          });

          for (var i = 0, a = e.length; i < a; i += 1) {
            var s = e[i];

            if (this.options.id && (s.item = this.options.getFn(s.item, this.options.id)[0]), o.length) {
              for (var c = {
                item: s.item
              }, h = 0, l = o.length; h < l; h += 1) o[h](s, c);

              t.push(c);
            } else t.push(s.item);
          }

          return t;
        }
      }, {
        key: "_log",
        value: function () {
          var e;
          this.options.verbose && (e = console).log.apply(e, arguments);
        }
      }]) && o(t.prototype, n), c && o(t, c), e;
    }();

    e.exports = c;
  }, function (e, t, n) {
    function r(e, t) {
      for (var n = 0; n < t.length; n++) {
        var r = t[n];
        r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(e, r.key, r);
      }
    }

    var o = n(3),
        i = n(4),
        a = n(7),
        s = function () {
      function e(t, n) {
        var r = n.location,
            o = void 0 === r ? 0 : r,
            i = n.distance,
            s = void 0 === i ? 100 : i,
            c = n.threshold,
            h = void 0 === c ? .6 : c,
            l = n.maxPatternLength,
            u = void 0 === l ? 32 : l,
            f = n.isCaseSensitive,
            d = void 0 !== f && f,
            v = n.tokenSeparator,
            p = void 0 === v ? / +/g : v,
            g = n.findAllMatches,
            y = void 0 !== g && g,
            m = n.minMatchCharLength,
            k = void 0 === m ? 1 : m;
        !function (e, t) {
          if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function");
        }(this, e), this.options = {
          location: o,
          distance: s,
          threshold: h,
          maxPatternLength: u,
          isCaseSensitive: d,
          tokenSeparator: p,
          findAllMatches: y,
          minMatchCharLength: k
        }, this.pattern = this.options.isCaseSensitive ? t : t.toLowerCase(), this.pattern.length <= u && (this.patternAlphabet = a(this.pattern));
      }

      var t, n, s;
      return t = e, (n = [{
        key: "search",
        value: function (e) {
          if (this.options.isCaseSensitive || (e = e.toLowerCase()), this.pattern === e) return {
            isMatch: !0,
            score: 0,
            matchedIndices: [[0, e.length - 1]]
          };
          var t = this.options,
              n = t.maxPatternLength,
              r = t.tokenSeparator;
          if (this.pattern.length > n) return o(e, this.pattern, r);
          var a = this.options,
              s = a.location,
              c = a.distance,
              h = a.threshold,
              l = a.findAllMatches,
              u = a.minMatchCharLength;
          return i(e, this.pattern, this.patternAlphabet, {
            location: s,
            distance: c,
            threshold: h,
            findAllMatches: l,
            minMatchCharLength: u
          });
        }
      }]) && r(t.prototype, n), s && r(t, s), e;
    }();

    e.exports = s;
  }, function (e, t) {
    var n = /[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g;

    e.exports = function (e, t) {
      var r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : / +/g,
          o = new RegExp(t.replace(n, "\\$&").replace(r, "|")),
          i = e.match(o),
          a = !!i,
          s = [];
      if (a) for (var c = 0, h = i.length; c < h; c += 1) {
        var l = i[c];
        s.push([e.indexOf(l), l.length - 1]);
      }
      return {
        score: a ? .5 : 1,
        isMatch: a,
        matchedIndices: s
      };
    };
  }, function (e, t, n) {
    var r = n(5),
        o = n(6);

    e.exports = function (e, t, n, i) {
      for (var a = i.location, s = void 0 === a ? 0 : a, c = i.distance, h = void 0 === c ? 100 : c, l = i.threshold, u = void 0 === l ? .6 : l, f = i.findAllMatches, d = void 0 !== f && f, v = i.minMatchCharLength, p = void 0 === v ? 1 : v, g = s, y = e.length, m = u, k = e.indexOf(t, g), S = t.length, x = [], b = 0; b < y; b += 1) x[b] = 0;

      if (-1 !== k) {
        var M = r(t, {
          errors: 0,
          currentLocation: k,
          expectedLocation: g,
          distance: h
        });

        if (m = Math.min(M, m), -1 !== (k = e.lastIndexOf(t, g + S))) {
          var _ = r(t, {
            errors: 0,
            currentLocation: k,
            expectedLocation: g,
            distance: h
          });

          m = Math.min(_, m);
        }
      }

      k = -1;

      for (var L = [], w = 1, A = S + y, C = 1 << (S <= 31 ? S - 1 : 30), I = 0; I < S; I += 1) {
        for (var O = 0, j = A; O < j;) {
          r(t, {
            errors: I,
            currentLocation: g + j,
            expectedLocation: g,
            distance: h
          }) <= m ? O = j : A = j, j = Math.floor((A - O) / 2 + O);
        }

        A = j;
        var P = Math.max(1, g - j + 1),
            F = d ? y : Math.min(g + j, y) + S,
            T = Array(F + 2);
        T[F + 1] = (1 << I) - 1;

        for (var z = F; z >= P; z -= 1) {
          var E = z - 1,
              K = n[e.charAt(E)];

          if (K && (x[E] = 1), T[z] = (T[z + 1] << 1 | 1) & K, 0 !== I && (T[z] |= (L[z + 1] | L[z]) << 1 | 1 | L[z + 1]), T[z] & C && (w = r(t, {
            errors: I,
            currentLocation: E,
            expectedLocation: g,
            distance: h
          })) <= m) {
            if (m = w, (k = E) <= g) break;
            P = Math.max(1, 2 * g - k);
          }
        }

        if (r(t, {
          errors: I + 1,
          currentLocation: g,
          expectedLocation: g,
          distance: h
        }) > m) break;
        L = T;
      }

      return {
        isMatch: k >= 0,
        score: 0 === w ? .001 : w,
        matchedIndices: o(x, p)
      };
    };
  }, function (e, t) {
    e.exports = function (e, t) {
      var n = t.errors,
          r = void 0 === n ? 0 : n,
          o = t.currentLocation,
          i = void 0 === o ? 0 : o,
          a = t.expectedLocation,
          s = void 0 === a ? 0 : a,
          c = t.distance,
          h = void 0 === c ? 100 : c,
          l = r / e.length,
          u = Math.abs(s - i);
      return h ? l + u / h : u ? 1 : l;
    };
  }, function (e, t) {
    e.exports = function () {
      for (var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [], t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 1, n = [], r = -1, o = -1, i = 0, a = e.length; i < a; i += 1) {
        var s = e[i];
        s && -1 === r ? r = i : s || -1 === r || ((o = i - 1) - r + 1 >= t && n.push([r, o]), r = -1);
      }

      return e[i - 1] && i - r >= t && n.push([r, i - 1]), n;
    };
  }, function (e, t) {
    e.exports = function (e) {
      for (var t = {}, n = e.length, r = 0; r < n; r += 1) t[e.charAt(r)] = 0;

      for (var o = 0; o < n; o += 1) t[e.charAt(o)] |= 1 << n - o - 1;

      return t;
    };
  }, function (e, t, n) {
    var r = n(0);

    e.exports = function (e, t) {
      return function e(t, n, o) {
        if (n) {
          var i = n.indexOf("."),
              a = n,
              s = null;
          -1 !== i && (a = n.slice(0, i), s = n.slice(i + 1));
          var c = t[a];
          if (null != c) if (s || "string" != typeof c && "number" != typeof c) {
            if (r(c)) for (var h = 0, l = c.length; h < l; h += 1) e(c[h], s, o);else s && e(c, s, o);
          } else o.push(c.toString());
        } else o.push(t);

        return o;
      }(e, t, []);
    };
  }]);
});

/***/ }),

/***/ "/0Ih":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return CDO_TABS; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ASSET_TRANSFER_STATE; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "j", function() { return WHATS_NEW_COMPONENT_KEY; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return USER_INTENT_DIALOG_COMPONENT_KEY; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "i", function() { return USER_INTENT_DIALOG_ERROR_KEY; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return DYNAMIC_RECOMMENDATIONS_CAROUSEL; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return UNSUPPORTED_LOCAL_XMP_FORMATS; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "l", function() { return recommendationsCtaEvents; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return RECOMMENDATION_TYPE; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return CONTAINER_LABELS; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return CAMPAIGN_TARGETING_ERRORS; });
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
/* harmony default export */ __webpack_exports__["k"] = ({
    DEBOUNCE: {
        WAIT: 2000,
        OPTIONS: {
            leading: true,
            trailing: false,
        },
    },
    events: {
        SCROLLFROMTOP: 'scrollfromtop',
        SCROLLTOTOP: 'scrolltotop',
        VIDEO_CARD_CLICKED: 'videoCardClicked',
        MODAL_OPENED: 'model opened',
        MODAL_CLOSED: 'model closed',
    },
    DEFAULT_ITEM_VIEW: 'grid',
    ITEM_VIEW_TYPES: {
        GRID: 'grid',
        LIST: 'list',
    },
    LOCALSTORE_KEYS: {
        MRU_PREFS: 'start.mruPrefs',
        MAIN_PREFS: 'start.mainPrefs',
        SIDEKICK_PREFS: 'start.sidekickPrefs',
        MRU_LIST: 'start.mruList',
        LOCALE_CACHE_PREFIX: 'start.localeCache',
        PHOTOSHOP_VISIBLITY_ID: 'ps.visibilityId',
        SUBSCRIPTION_STATUS: 'start.formerSubscriptionStatus',
    },
    LEARN_PLATFORMS: {
        WEB: ['helpx', 'cc-learn', 'ccx'],
        IN_APP: ['in-app', 'in_app'],
    },
    SURFACES: {
        TUTORIALS: 'CCX_Start_3.1_Tutorials',
        LEARN: 'CCX_Start_3.1_Learn',
        HOME: 'CCX_Start_4.0_Home',
        TOAST: 'CCX_Start_4.0_Toast',
        WHATS_NEW: 'CCX_Start_4.0_Whats_New',
    },
    NF_CONTAINER: 'neuralFilterModelId',
    NF_VULCAN_REQUEST: 'ccxprocess.SenseiModelsOnDemandRequest',
    TRIAL_CARD: {
        ERROR_BEGIN: 86400,
        WARNING_BEGIN: 86400 * 3,
    },
    ANALYTICS: {
        INGEST_PRODUCTKEY: 'CCXInAppWelcomeUXP3',
    },
    CTA_EVENTS: {
        DOWNLOAD_FILE: 'FirstMileEvent.DownloadFile',
        DOWNLOAD_FILE_ON_DEMAND: 'FirstMileEvent.DownloadFileOnDemand',
        IN_APP_TUTORIAL: 'com.adobe.ccx.start.openInAppTutorial',
        NAVIGATE: 'navigateToPanel',
        PRESET: 'FirstMileEvent.PresetClicked',
        CCD_DEEPLINK: 'FirstMileEvent.CCDDeepLink',
        OPEN_LINK: 'FirstMileEvent.OpenLink',
        VIDEO_OVERLAY: 'FirstMileEvent.VideoOverlay',
        WHATS_NEW_OVERLAY: 'FirstMileEvent.WhatsNewOverlay',
        USER_INTENT_DIALOG_OVERLAY: 'FirstMileEvent.UserIntentDialogOverlay',
        NF_DEEPLINK: 'FirstMileEvent.NeuralFilterDeeplink',
        ENABLE_PREFERENCE: 'FirstMileEvent.EnablePreference',
        LAUNCH_CMDN_WITH_DEEPLINK_PATH: 'FirstMileEvent.CmdnDeeplinkPath',
    },
    TOASTAL_INGEST_EVENTS: {
        'WhatsNew': 'sidebar-whats-new',
        'UserIntentDialog': 'sidebar-user-intent-dialog'
    },
    TOASTAL_INGEST_SUBTYPE: {
        'WhatsNew': "What's New Link Modal",
        'UserIntentDialog': "User Intent Link Modal"
    },
    TOASTAL_CTA_EVENTS: {
        'WhatsNew': 'FirstMileEvent.WhatsNewOverlay',
        'UserIntentDialog': 'FirstMileEvent.UserIntentDialogOverlay'
    },
    DEEPLINK_TYPES: {
        UPDATE_APPLICATION: 'accc.apps.installApp',
        REQUEST_ACCESS: 'accc.app.deepLink.request',
    },
    SERVICE_URL: {
        ACCOUNT: 'https://account.adobe.com/',
    },
    SORT: {
        ASCENDING: 'asc',
        DESCENDING: 'desc',
    },
    LIGHTROOM_CLIENT_ID: 'CCXInAppWelcomeUXP3',
    TOOLTIP_DELAY: 500,
    KEYS: {
        TAB: 9,
        ENTER: 13,
        ESC: 27,
        SPACE: 32,
        PAGEUP: 33,
        PAGEDOWN: 34,
        END: 35,
        HOME: 36,
        LEFT: 37,
        UP: 38,
        RIGHT: 39,
        DOWN: 40,
    },
    FILETYPE_KIND: {
        fla: 'Animate',
        psd: 'Photoshop',
        psb: 'Photoshop',
        ai: 'Illustrator',
        ait: 'Illustrator Template',
        pdf: 'PDF',
        indd: 'InDesign Document',
        indt: 'InDesign Template',
        indl: 'InDesign Asset Library',
        indb: 'InDesign Book',
        prproj: 'Premiere Pro Project',
        muse: 'Muse',
        png: 'PNG',
        jpeg: 'JPEG',
        jpg: 'JPEG',
        tiff: 'TIFF',
        tif: 'TIFF',
        gif: 'GIF',
        bmp: 'BMP',
        eps: 'Encapsulated PostScript',
    },
    OS: {
        windows: 'Windows',
        mac: 'MacOS',
    },
    USER_DATA_NOT_POPULATED: 'userdata: NULL',
    CMDN_STOCK_EVENTS: {
        INITIALIZATION_START: 'cmdn-stock-initialization-start',
        INITIALIZATION_END: 'cmdn-stock-initialization-end',
    },
    TOASTAL_EVENTS: {
        SHOW_TOASTAL_TOOLTIP: 'ShowToastalTooltip',
        HIDE_TOASTAL_TOOLTIP: 'HideToastalTooltip',
    }
});
const CDO_TABS = {
    CDO: 'cdo',
    SHARED_WITH_YOU: 'cdo_shared_with_you',
    DELETED: 'cdo_deleted',
};
const ASSET_TRANSFER_STATE = {
    NONE: 0,
    PROGRESS: 1,
    COMPLETED: 2
};
const WHATS_NEW_COMPONENT_KEY = 'whatsNew';
const USER_INTENT_DIALOG_COMPONENT_KEY = 'userIntentDialog';
/*  This is used in logErrorEvent and calls in UserIntentDialog + CallToActionHandler,
    matching the case value expected in StartIngestErrorHandler: 'UserIntentDialog'
    See IAW-11788 for a little more details. We add this instead of changing USER_INTENT_DIALOG_COMPONENT_KEY
    in order to keep things backwards compatible. */
const USER_INTENT_DIALOG_ERROR_KEY = 'UserIntentDialog';
const DYNAMIC_RECOMMENDATIONS_CAROUSEL = {
    RIGHT: "right",
    LEFT: "left",
    FULL: "full"
};
const UNSUPPORTED_LOCAL_XMP_FORMATS = {
    JPEG_EXTENSIONS: ['jfif', 'jpe', 'jpg', 'jpeg'],
    HEIF_EXTENSIONS: ['heif', 'heic'],
    PNG_EXTENSIONS: ['png'],
    PSD_EXTENSIONS: ['psd', 'psb'],
    TIFF_EXTENSIONS: ['tif', 'tiff']
};
const recommendationsCtaEvents = {
    helpUsing: 'helpUsing',
    helpKb: 'helpKb',
    helpLearn: 'helpLearn',
    inApp: 'inApp',
    quickAction: 'quickAction',
    playlist: 'playlist',
};
var RECOMMENDATION_TYPE;
(function (RECOMMENDATION_TYPE) {
    RECOMMENDATION_TYPE["customContent"] = "customContent";
})(RECOMMENDATION_TYPE || (RECOMMENDATION_TYPE = {}));
const CONTAINER_LABELS = {
    HOME: "CCX Start Screen (v4.0) - Home",
    DYNAMIC_RECOMMENDATIONS: "Dynamic Recommendations",
    CUSTOM_CONTENT_CONFIGURATION_CARDS: "Custom Content Configuration Cards",
    USER_INTENT: "User Intent",
    USER_INTENT_DIALOG: 'User Intent Dialog',
};
const CAMPAIGN_TARGETING_ERRORS = {
    NO_TARGETING_CAMPAIGN: {
        ERROR_MESSAGE: "NO_TARGETING_CAMPAIGN",
        ERROR_CODE: 30002
    }
};


/***/ }),

/***/ "/1Vs":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = function () {
  if (typeof globalThis !== "object") return false;
  if (!globalThis) return false;
  return globalThis.Array === Array;
};

/***/ }),

/***/ "/3On":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("rect", {
  height: "4",
  rx: "1",
  ry: "1",
  width: "4",
  x: "10",
  y: "18"
}), React.createElement("rect", {
  height: "4",
  rx: "1",
  ry: "1",
  width: "4",
  x: "18",
  y: "18"
}), React.createElement("rect", {
  height: "4",
  rx: "1",
  ry: "1",
  width: "4",
  x: "26",
  y: "18"
}), React.createElement("rect", {
  height: "4",
  rx: "1",
  ry: "1",
  width: "4",
  x: "34",
  y: "18"
}), React.createElement("rect", {
  height: "4",
  rx: "1",
  ry: "1",
  width: "4",
  x: "10",
  y: "24"
}), React.createElement("rect", {
  height: "4",
  rx: "1",
  ry: "1",
  width: "4",
  x: "18",
  y: "24"
}), React.createElement("rect", {
  height: "4",
  rx: "1",
  ry: "1",
  width: "4",
  x: "26",
  y: "24"
}), React.createElement("rect", {
  height: "4",
  rx: "1",
  ry: "1",
  width: "4",
  x: "34",
  y: "24"
}), React.createElement("rect", {
  height: "4",
  rx: "1",
  ry: "1",
  width: "4",
  x: "10",
  y: "30"
}), React.createElement("rect", {
  height: "4",
  rx: "1",
  ry: "1",
  width: "4",
  x: "18",
  y: "30"
}), React.createElement("rect", {
  height: "4",
  rx: "1",
  ry: "1",
  width: "4",
  x: "26",
  y: "30"
}), React.createElement("rect", {
  height: "4",
  rx: "1",
  ry: "1",
  width: "4",
  x: "34",
  y: "30"
}), React.createElement("path", {
  d: "M45 8h-7V5a1 1 0 0 0-1-1h-2a1 1 0 0 0-1 1v3H14V5a1 1 0 0 0-1-1h-2a1 1 0 0 0-1 1v3H3a1 1 0 0 0-1 1v32a1 1 0 0 0 1 1h42a1 1 0 0 0 1-1V9a1 1 0 0 0-1-1zm-3 30H6V12h4v1a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1v-1h20v1a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1v-1h4z"
}));

/***/ }),

/***/ "/5Cs":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return openRushDoc; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return openTPDoc; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return newTPDoc; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Drover; });
/* harmony import */ var _ApplicationBase__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("r6Pq");
/* harmony import */ var _ccx_ccx_cdo__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("t+6E");
/* harmony import */ var src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("cCFZ");
/* harmony import */ var src_js_start_CommonUtils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("5ndN");
/* harmony import */ var src_components_start_performance__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("r1jx");
/* harmony import */ var _LoggerWrapper_Logger__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("43WE");
/* harmony import */ var _js_iaw_analytics__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("RGcl");
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2020 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/







const openRushDoc = 'OpenRushDocument';
const openTPDoc = 'OpenTPDocument';
const newTPDoc = 'NewTPDocument';
class Drover extends _ApplicationBase__WEBPACK_IMPORTED_MODULE_0__[/* default */ "c"] {
    constructor() {
        super(...arguments);
        this._logger = _LoggerWrapper_Logger__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"].get('Drover');
    }
    ///////////////////////////////////////////////////////////////////
    // Static Overrides/Configuration
    ///////////////////////////////////////////////////////////////////
    /**
     * Checks if app has support to hide the home screen on pressing the escape key.
     */
    get hidesHomeScreenOnEscape() {
        return true;
    }
    /**
     *  Enable search in homescreen
     */
    get isSearchSupported() {
        return window.cdoHost.isSearchSupported();
    }
    /**
     * Checks if autocomplete is available for this host
     *
     */
    get isSearchAutocompleteEnabled() {
        return window.cdoHost && window.cdoHost.featureEnabled('UxpSearchAutocompleteEnabled');
    }
    /**
     * Launch Search modal
     */
    launchSearch() {
        src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_2__["mainStore"].searchStore.setShowSearch(true);
    }
    get homeScreenDisplayOptions() {
        return {
            ...super.homeScreenDisplayOptions,
            showRecentsGridListViewButtons: false,
        };
    }
    get isThumbnailsDisabled() {
        return true;
    }
    /**
     * Checks if CDO features should be loaded.
     */
    get isCloudDocumentsEnabled() {
        return window.cdoHost.isCloudDocsEnabled();
    }
    /**
     * Enable grid/thumbnail view in Recents
     */
    get isThumbnailViewEnabled() {
        return window.cdoHost.isThumbnailViewEnabled();
    }
    /**
     * Gets the list of buttons to show in the sidebar.
     */
    get buttons() {
        const buttonContent = window.cdoHost.buttons();
        return buttonContent ? JSON.parse(buttonContent) : super.buttons;
    }
    ///////////////////////////////////////////////////////////////////
    // TODO: APIs to be implemented an exposed from C++
    ///////////////////////////////////////////////////////////////////
    async init() {
        await super.init();
        this._isBackButtonVisible = false;
        Object(src_components_start_performance__WEBPACK_IMPORTED_MODULE_4__[/* LogPerformance */ "a"])(`Fetching Recent Files. Awaiting Response.`);
        const start = new Date();
        this._recentFiles = await this.getRecentFiles();
        Object(src_components_start_performance__WEBPACK_IMPORTED_MODULE_4__[/* LogPerformance */ "a"])(`Received Recent Files.`, start.toISOString());
        this._isHomeScreenVisible = false;
        // @ts-ignore
        src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_2__["mainStore"].recentFilesStore.setMaxAllowedDocuments(await this.getMaxAllowedDocuments());
        window.cdoHost.on('homeScreenVisibilitychanged', this.updateHomeScreenVisibility.bind(this));
        window.cdoHost.on('MRUFileListChanged', async () => {
            this._recentFiles = await this.getRecentFiles();
            this._logger.log(`CCX-Start-Drover: Recent list changed from MRUFileListChanged. No of items = ${this._recentFiles.length}`);
        });
        await Promise.all([
            (async () => {
                this._isBackButtonVisible = await this.isAnyDocumentOpen();
            })(),
            (async () => {
                // Get the current home screen visibility.
                this._isHomeScreenVisible = await this.checkIsHomeScreenVisible();
                if (this._isHomeScreenVisible) {
                    _js_iaw_analytics__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"].logSubscribedRenderedEvents(true);
                    !document.activeElement &&
                        window.requestAnimationFrame(() => {
                            document.querySelector('#main').click();
                        });
                }
                this._logger.log(`CCX-Start-Drover : Home screen visibility set to ${this._isHomeScreenVisible ? '' : 'in'} visible with${this._isBackButtonVisible ? '' : 'out'} back button.`);
            })(),
        ]);
    }
    ///////////////////////////////////////////////////////////////////
    // Data Access
    ///////////////////////////////////////////////////////////////////
    async isAnyDocumentOpen() {
        return window.cdoHost.isAnyDocumentOpenAsync
            ? await window.cdoHost.isAnyDocumentOpenAsync()
            : window.cdoHost.isAnyDocumentOpen();
    }
    async checkIsHomeScreenVisible() {
        return window.cdoHost.isHomeScreenVisibleAsync
            ? await window.cdoHost.isHomeScreenVisibleAsync()
            : window.cdoHost.isHomeScreenVisible();
    }
    async updateHomeScreenVisibility() {
        this._isHomeScreenVisible = await this.checkIsHomeScreenVisible();
        this._isBackButtonVisible = await this.isAnyDocumentOpen();
        if (this._isHomeScreenVisible === true) {
            // if HS is visible trigger a click on #main to have focus on Homescreen
            !document.activeElement &&
                window.requestAnimationFrame(() => {
                    document.querySelector('#main').click();
                });
            this._recentFiles = await this.getRecentFiles();
            _js_iaw_analytics__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"].logSubscribedRenderedEvents();
            this._logger.log(`CCX-Start-Drover: Recent list changed. No of items = ${this._recentFiles.length}`);
        }
    }
    /**
     * Returns the Guid of the application's session for tracking purposes
     */
    async getSessionId() {
        const id = window.cdoHost.getSessionIdAsync
            ? await window.cdoHost.getSessionIdAsync()
            : window.cdoHost.getSessionId();
        if (typeof id === 'string') {
            return Promise.resolve(id);
        }
        else {
            return await id;
        }
    }
    ///////////////////////////////////////////////////////////////////
    // Actions in the product
    ///////////////////////////////////////////////////////////////////
    /**
     * Hides the home screen from the user.
     */
    async hideHomeScreen() {
        window.cdoHost.hideHomeScreen();
    }
    async reportInteractiveReady() {
        await window.cdoHost.reportInteractiveReady();
    }
    /**
     * Enable newCommand N
     */
    get isNewCmdNSupported() {
        return !!(window.cdoHost && window.cdoHost.featureEnabled && window.cdoHost.featureEnabled('UxpCmdNExtension'));
    }
    /**
     * Triggers a new document dialog.
     */
    async launchNewDocumentDialog() {
        window.cdoHost.launchNewDocumentDialog();
    }
    /**
     * Triggers the open document dialog.
     */
    async launchOpenDocumentDialog() {
        window.cdoHost.launchOpenDocumentDialog();
    }
    /**
     * Triggers the select file dialog for After Effects. No-op in other hosts.
     */
    launchSelectFileDialog() {
        if (this.id === 'AEFT') {
            window.cdoHost.launchSelectFileDialog();
        }
        else {
            throw new Error('launchSelectFileDialog is only supported in After Effects. Calling it in other hosts is a no-op.');
        }
    }
    /**
     * Triggers an alternative dialog Open/New dialog
     */
    async launchAlternativeDialog(specifier) {
        window.cdoHost.launchAlternativeDialog(specifier);
    }
    /**
     * Open a local document from disk
     * @param path Path to the document on disk
     * @param title Title of the document (unused in Illustrator)
     * @param template Determines if we should force open as template behavior even
     * if we don't have a template file type for some reason
     */
    async openLocalDocument({ path, template = false }) {
        window.cdoHost.openLocalDocument(path, template);
    }
    /**
     * Launches an in-app tutorial
     * @param tutorialId Id of the tutorial to launch
     */
    launchTutorial(tutorialId) {
        window.cdoHost.launchTutorial(tutorialId);
    }
    /**
     * Launches a preset (For the Illustrator Preset Component)
     * @param data Preset configuration
     */
    openPreset(data) {
        window.cdoHost.openPreset(JSON.stringify(data));
    }
    ///////////////////////////////////////////////////////////////////
    // CDO host wrapper methods
    ///////////////////////////////////////////////////////////////////
    /**
     * Get the IMS token from the host (dont use HS's one)
     */
    async fetchCDOToken(currentToken) {
        return window.cdoHost.getUserAccessTokenSync();
    }
    /**
     * Check CDO host if feature is enabled
     */
    isCDOFeatureEnabled(featureFlag) {
        return window.cdoHost.featureEnabled(featureFlag);
    }
    /**
     * Gets the list of recent files from the CDO host.
     */
    async getCDOLocalRecents() {
        return window.cdoHost.getLocalRecentsAsync
            ? await window.cdoHost.getLocalRecentsAsync()
            : window.cdoHost.getLocalRecents();
    }
    /**
     * Utility method to provide the clamp on maximum allowed documents in the
     * recent list.
     */
    async getMaxAllowedDocuments() {
        return window.cdoHost.getMaxAllowedDocumentsAsync
            ? await window.cdoHost.getMaxAllowedDocumentsAsync()
            : window.cdoHost.getMaxAllowedDocuments();
    }
    /**
     * Gets the recent files to sync the this.recentFiles property
     */
    async getRecentFiles() {
        const recents = window.cdoHost.getRecentFilesAsync
            ? await window.cdoHost.getRecentFilesAsync()
            : window.cdoHost.getRecentFiles(); // ID is moving to async
        const recentFiles = recents ? JSON.parse(recents) : [];
        const files = recentFiles && Object.keys(recentFiles).length ? recentFiles : [];
        const newList = [];
        await Promise.all(files.map(async (item) => {
            const isCloudFile = JSON.parse(item.isCloudDoc);
            let title;
            let id;
            let cloudUri;
            let localUri;
            let stableUri;
            let assetRef;
            id = item.path;
            if (item && item.title) {
                title = item.title;
            }
            else {
                title = item && item.path && item.path.replace(/^.*[\\\/]/, '');
            }
            cloudUri = '';
            localUri = item.path;
            stableUri = item.stableID;
            assetRef = item.assetRef;
            const dateLastOpened = new Date(item.lastOpened).getTime();
            const document = _ccx_ccx_cdo__WEBPACK_IMPORTED_MODULE_1__[/* Document */ "l"].create({
                id,
                externalData: {
                    isCloudDoc: isCloudFile,
                    canOpen: isCloudFile ? item.canOpen : true,
                    kind: item.kind,
                    tip: item.tip,
                },
                path: item.path || '',
                cloudUri,
                localUri,
                title,
                assetName: '',
                accessDate: dateLastOpened,
                modifiedDate: dateLastOpened,
                repoModifiedDate: dateLastOpened,
                createDate: dateLastOpened,
                recoveredDate: '',
                hasSize: false,
                isCached: false,
                isConflicted: false,
                isUserPinned: false,
                size: `${item.size}`,
                renditionTemplate: '',
                rendition: item.thumb,
                type: 'local',
                stableUri,
                assetRef,
            });
            if (!isCloudFile) {
                // IAW-6741 network files contain a blank data URI.
                // we need to set to empty string '' so the defaultRendition image shows up
                if (src_js_start_CommonUtils__WEBPACK_IMPORTED_MODULE_3__[/* UXPHelpers */ "a"].isEmptyDataURIImage(document.rendition)) {
                    document.setRendition('');
                }
            }
            newList.push(document);
        }));
        this.convertRenditionsToBlobURLs(newList);
        return newList;
    }
    /**
     * Provide CDO configuration settings for host application
     */
    get CDOProductData() {
        const productName = this.name;
        return {
            productId: this.id,
            dcxId: window.cdoHost.dcxAppId,
            productVersion: this.version,
            productName: productName,
            productLocation: 'com.adobe.ccx.start',
            platform: navigator.platform,
            documentFilter: window.cdoHost.documentFilter,
            apiKey: 'AdobeSearchService1',
            featureFlags: {
                themingSupport: true,
                enableCloudDocFolders: window.cdoHost.featureEnabled('CloudDocFolders'),
                enableCloudDocMultiSelectOpen: true,
            },
            sessionGuid: src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_2__["mainStore"].prefs.sessionGUID,
            theme: _ccx_ccx_cdo__WEBPACK_IMPORTED_MODULE_1__[/* Themes */ "x"].dark,
            uiLocale: window.cdoHost.locale || 'en_US',
            platformVersion: src_js_start_CommonUtils__WEBPACK_IMPORTED_MODULE_3__[/* UXPHelpers */ "a"].osVersion,
        };
    }
    get presetData() {
        return [];
    }
}


/***/ }),

/***/ "/7zY":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__("q1tI");

// EXTERNAL MODULE: ./node_modules/@ccx/acp-fetch/dist/index.js
var dist = __webpack_require__("iMIL");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/stores/AssetSelectionStore.ts
var AssetSelectionStore = __webpack_require__("54FZ");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/CDOView.tsx + 6 modules
var CDOView = __webpack_require__("S+vr");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/action.ts
var action = __webpack_require__("zPGX");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/stores/constants.ts
var constants = __webpack_require__("C0qj");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/EmptyView.tsx
var EmptyView = __webpack_require__("SZIB");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/urls.ts
var urls = __webpack_require__("RIxR");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/CDOHeader.tsx + 3 modules
var CDOHeader = __webpack_require__("GXLr");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/GridView.tsx + 1 modules
var GridView = __webpack_require__("q/Z0");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/ListView.tsx + 1 modules
var ListView = __webpack_require__("JRZE");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/ListItem.tsx
var ListItem = __webpack_require__("SvrS");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/GridItem.tsx
var GridItem = __webpack_require__("wxeS");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/launch-item.ts
var launch_item = __webpack_require__("Kko5");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/CloudStatusIcon.tsx + 4 modules
var CloudStatusIcon = __webpack_require__("sqWI");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/ViewItem.tsx
var ViewItem = __webpack_require__("0gRt");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/utils.ts
var utils = __webpack_require__("+Ots");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/types/CDOReactIntlTyped.ts
var CDOReactIntlTyped = __webpack_require__("dSAe");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/components/viewItems/ProjectViewItem.tsx




const renderProjectMetadata = () => react["createElement"](CDOReactIntlTyped["a" /* FormattedMessage */], { className: "itemType", id: "project.subtitle" });
class ProjectViewItem_ProjectGridItem extends GridItem["a" /* default */] {
    renderMetadata() {
        return renderProjectMetadata();
    }
}
class ProjectViewItem_ProjectListItem extends ListItem["a" /* default */] {
    renderMetadata() {
        return renderProjectMetadata();
    }
}

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/components/viewItems/LibraryViewItem.tsx




const renderLibraryMetadata = () => react["createElement"](CDOReactIntlTyped["a" /* FormattedMessage */], { className: "itemType", id: "library.subtitle" });
class LibraryViewItem_LibraryGridItem extends GridItem["a" /* default */] {
    renderMetadata() {
        return renderLibraryMetadata();
    }
}
class LibraryViewItem_LibraryListItem extends ListItem["a" /* default */] {
    renderMetadata() {
        return renderLibraryMetadata();
    }
}

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/components/viewItems/ReviewViewItem.tsx




const renderReviewMetadata = () => react["createElement"](CDOReactIntlTyped["a" /* FormattedMessage */], { className: "itemType", id: "review.subtitle" });
class ReviewViewItem_ReviewGridItem extends GridItem["a" /* default */] {
    renderMetadata() {
        return renderReviewMetadata();
    }
}
class ReviewViewItem_ReviewListItem extends ListItem["a" /* default */] {
    renderMetadata() {
        return renderReviewMetadata();
    }
}

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/components/viewItems/WebLinkViewItem.tsx




const renderWebLinkMetadata = () => react["createElement"](CDOReactIntlTyped["a" /* FormattedMessage */], { className: "itemType", id: "webLink.subtitle" });
class WebLinkViewItem_WebLinkGridItem extends GridItem["a" /* default */] {
    renderMetadata() {
        return renderWebLinkMetadata();
    }
}
class WebLinkViewItem_WebLinkListItem extends ListItem["a" /* default */] {
    renderMetadata() {
        return renderWebLinkMetadata();
    }
}

// EXTERNAL MODULE: ./node_modules/@ccx-public/shared-asset-model-js/dist/mjs/src/index.js
var src = __webpack_require__("m4Z2");

// EXTERNAL MODULE: ./node_modules/mobx/lib/mobx.module.js
var mobx_module = __webpack_require__("2vnA");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/components/viewItems/XdArtifactViewItem.tsx
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;
};
var __metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var _a, _b;






const renderXdMetadata = (doc) => {
    const itemId = (doc === null || doc === void 0 ? void 0 : doc.includesDevelopmentData) ? 'designspecs.subtitle' : 'prototype.subtitle';
    return react["createElement"](CDOReactIntlTyped["a" /* FormattedMessage */], { className: "itemType", id: itemId });
};
class XdArtifactViewItem_XdArtifactGridItem extends GridItem["a" /* default */] {
    constructor() {
        super(...arguments);
        this._xdartifactType = undefined;
    }
    async componentDidMount() {
        super.componentDidMount();
        const { element, samJSHostAssetContext } = this.props;
        samJSHostAssetContext
            .getXDCEData(element.id)
            .then(data => (this._xdartifactType = data))
            .catch(err => console.error(err));
    }
    renderMetadata() {
        if (this._xdartifactType) {
            return renderXdMetadata(this._xdartifactType);
        }
        return super.renderMetadata();
    }
}
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", typeof (_a = typeof src["IXDCEDocument"] !== "undefined" && src["IXDCEDocument"]) === "function" ? _a : Object)
], XdArtifactViewItem_XdArtifactGridItem.prototype, "_xdartifactType", void 0);
class XdArtifactViewItem_XdArtifactListItem extends ListItem["a" /* default */] {
    async componentDidMount() {
        super.componentDidMount();
        const { element, samJSHostAssetContext } = this.props;
        samJSHostAssetContext
            .getXDCEData(element.id)
            .then(data => (this._xdartifactType = data))
            .catch(err => console.error(err));
    }
    renderMetadata() {
        if (this._xdartifactType) {
            return renderXdMetadata(this._xdartifactType);
        }
        return super.renderMetadata();
    }
}
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", typeof (_b = typeof src["IXDCEDocument"] !== "undefined" && src["IXDCEDocument"]) === "function" ? _b : Object)
], XdArtifactViewItem_XdArtifactListItem.prototype, "_xdartifactType", void 0);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/view-item-utils.ts
// List of mimetypes that are Library elements. Reference:
// https://git.corp.adobe.com/CCX/assets/blob/kodiak/src/utils/manifest/mimeTypeMap.ts
const libraryElementType = [
    'application/vnd.adobe.indesign-idms',
    'application/vnd.adobe.muse-collection',
    'application/vnd.adobe.charts+zip',
    'application/vnd.adobe.element.animation+dcx',
    'application/vnd.adobe.animate-xfl+zip',
    'application/vnd.adobe.element.audio+dcx',
    'application/vnd.adobe.element.brush+dcx',
    'application/vnd.adobe.element.xbrush+dcx',
    'application/vnd.adobe.element.capsule+dcx',
    'application/vnd.adobe.element.characterstyle+dcx',
    'application/vnd.adobe.element.colortheme+dcx',
    'application/vnd.adobe.element.color+dcx',
    'application/vnd.adobe.element.component+dcx',
    'application/vnd.adobe.element.graphic+dcx',
    'application/vnd.adobe.element.gradient+dcx',
    'application/vnd.adobe.element.image+dcx',
    'application/vnd.adobe.element.layerstyle+dcx',
    'application/vnd.adobe.element.light+dcx',
    'application/vnd.adobe.element.look+dcx',
    'application/vnd.adobe.element.material+dcx',
    'application/vnd.adobe.element.3d+dcx',
    'application/vnd.adobe.element.paragraphstyle+dcx',
    'application/vnd.adobe.element.pattern+dcx',
    'application/vnd.adobe.element.template+dcx',
    'application/vnd.adobe.element.text+dcx',
    'application/vnd.adobe.element.video+dcx',
    'application/vnd.adobe.library+dcx',
    'image/photoshop',
    'image/vnd.adobe.photoshop',
    'image/vnd.adobe.shape+svg',
];
function isProject(element) {
    // TODO: See https://creativecloud.slack.com/archives/CKK9HD5V2/p1669762224428819
    return false;
}
function isLibrary(element) {
    return libraryElementType.includes(element.type);
}
function isReview(element) {
    return element.isArtifact;
}
function isXdArtifact(element) {
    return element.type === 'application/vnd.adobe.xd.sharedartifact+dcx';
}
function isWebLink(element) {
    return element.type === 'application/vnd.adobe.weblink+dcx';
}

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/components/CDOTab.tsx
/*************************************************************************
 *   ADOBE CONFIDENTIAL
 *
 *   Copyright 2022 Adobe
 *   All Rights Reserved.
 *
 *   NOTICE:  All information contained herein is, and remains
 *   the property of Adobe and its suppliers, if any. The intellectual
 *   and technical concepts contained herein are proprietary to Adobe
 *   and its suppliers and are protected by all applicable intellectual
 *   property laws, including trade secret and copyright laws.
 *   Dissemination of this information or reproduction of this material
 *   is strictly forbidden unless prior written permission is obtained
 *   from Adobe.
 **************************************************************************/























const SYNC_SUSPENDED_NO_ACTION_ERROR_TOOLTIP = 'tooltip.syncSuspended.noAction';
class CDOTab_CDOTab extends react["Component"] {
    constructor(props) {
        super(props);
        // TODO: DELETE (https://jira.corp.adobe.com/browse/CCXCD-10752)
        this._cdoViewRef = react["createRef"]();
        this.cdoStore = this.props.cdoStore;
        this.docStore = this.cdoStore.docStore;
        this.assetSyncStateStore = this.props.assetSyncStateStore;
        this.callbacks = this.props.callbacks;
        this.cdoMetrics = this.props.metrics;
        /**
         * Return tooltip if Action is disabled because selection only contains online items
         * while offline.
         *
         * This must come before the Actions, or it doesn't work
         */
        // eslint-disable-next-line react/sort-comp
        this.getDisabledTooltipMsgId = (selectionStore) => {
            const { isOnline, coreSyncNotUsedOrOK } = this.docStore;
            const isOnlineAndCoreSyncNotUsedOrOK = isOnline && coreSyncNotUsedOrOK;
            if (selectionStore.hasOnlyActionableItemsWhileOffline(isOnlineAndCoreSyncNotUsedOrOK)) {
                return '';
            }
            if (isOnline && !coreSyncNotUsedOrOK) {
                return action["b" /* DEFAULT_CORESYNCDOWN_DISABLED_TOOLTIP_MSG_ID */];
            }
            return action["c" /* DEFAULT_DISABLED_TOOLTIP_MSG_ID */];
        };
        /**
         * Returns tooltip for an Action that is disabled because the selection
         *   a) it's syncing (via getDisabledTooltipMsgIdWhileSyncing)
         *   b) offline, not cached (via getDisabledTooltipMsgId)*
         *
         * This must come before the Actions, or it doesn't work
         */
        // eslint-disable-next-line react/sort-comp
        this.getDisabledTooltipMsgIdWhileSyncing = (selectionStore) => {
            if (selectionStore.hasSyncingElements(this.assetSyncStateStore) ||
                selectionStore.hasPendingOperations) {
                return 'tooltip.syncing.disabled';
            }
            return this.getDisabledTooltipMsgId(selectionStore);
        };
        /**
         * Returns tooltip for an Action that is disabled because the selection
         *   a) has an item that is sync suspended
         *   b) it's syncing (via getDisabledTooltipMsgIdWhileSyncing)
         *   c) offline, not cached (via getDisabledTooltipMsgId)
         *
         * This must come before the Actions, or it doesn't work
         */
        // eslint-disable-next-line react/sort-comp
        this.getDisabledTooltipMsgIdSyncSuspended = (selectionStore) => {
            if (selectionStore.hasAnySyncSuspended) {
                return SYNC_SUSPENDED_NO_ACTION_ERROR_TOOLTIP;
            }
            return this.getDisabledTooltipMsgIdWhileSyncing(selectionStore);
        };
        /**
         * This must come before the Actions, or it doesn't work
         */
        // eslint-disable-next-line react/sort-comp
        this.getDisabledTooltipMsgIdOnlineOnly = () => {
            const { isOnline, coreSyncNotUsedOrOK } = this.docStore;
            if (isOnline) {
                return coreSyncNotUsedOrOK ? '' : action["b" /* DEFAULT_CORESYNCDOWN_DISABLED_TOOLTIP_MSG_ID */];
            }
            return action["c" /* DEFAULT_DISABLED_TOOLTIP_MSG_ID */];
        };
        this.shouldRenderItemAsDisabled = (element) => false;
        this.commonShouldRenderItemAsDisabled = (collectionElement) => {
            var _a;
            const element = collectionElement;
            const { intl } = this.props;
            const { isOnline, coreSyncNotUsedOrOK } = this.docStore;
            const isOnlineAndCoreSyncNotUsedOrOK = isOnline && coreSyncNotUsedOrOK;
            const isOfflineOpenDisabled = this.cdoStore.isOrganizer || this.cdoStore.isOpenItemPicker;
            const isOpenDisabled = !isOnlineAndCoreSyncNotUsedOrOK &&
                isOfflineOpenDisabled &&
                !element.isFolder &&
                !element.isCached;
            const isPlaceOrPlaceLinkDisabled = !isOnlineAndCoreSyncNotUsedOrOK &&
                (this.cdoStore.isPlaceOrPlaceLinkOrEmbedPicker || this.cdoStore.isOrganizer) &&
                !element.isFolder &&
                !element.isCached;
            if (isOpenDisabled || isPlaceOrPlaceLinkDisabled) {
                return intl.formatMessage({
                    id: isOnline ? 'item.coresyncdown.cloudonly' : 'item.disconnected.cloudonly',
                });
            }
            return (_a = this.shouldRenderItemAsDisabled) === null || _a === void 0 ? void 0 : _a.call(this, element);
        };
        this.getErrorViewProps = () => {
            const { coreSyncNotReachable, quotaStore, hasNonCoreSyncCloudNotificationErrorStatus, isUserLoggedOut, didSAMInitFail, } = this.docStore;
            const { intl } = this.props;
            const { elements, fetchState } = this.getDataProps();
            const isWebClient = this.cdoStore.isFeatureFlagEnabled('isWebClient');
            const EMPTYVIEW_PROPS_FOR_UNKNOWN_ERROR = isWebClient
                ? EmptyView["d" /* EMPTYVIEW_PROPS_FOR_ERROR_WEB */]
                : EmptyView["c" /* EMPTYVIEW_PROPS_FOR_ERROR */];
            if (this.cdoStore.isFeatureFlagEnabled('emptyViewLoggedOutMessage') && isUserLoggedOut) {
                return EmptyView["e" /* LOGGED_OUT_EMPTYVIEW_PROPS */];
            }
            if (hasNonCoreSyncCloudNotificationErrorStatus) {
                // still take over is SAMInitFail?  Should there be different strings?
                if (didSAMInitFail) {
                    return Object(EmptyView["f" /* coreSyncDownEmptyViewProps */])(intl.locale);
                }
                if ((quotaStore === null || quotaStore === void 0 ? void 0 : quotaStore.quotaState) === dist["NotificationStatus"].CLOUD_STORAGE_DISABLED) {
                    return EmptyView["a" /* CLOUD_STORAGE_DISABLED_EMPTYVIEW_PROPS */];
                }
                return EMPTYVIEW_PROPS_FOR_UNKNOWN_ERROR;
            }
            // don't return error props if ProcessingState.Error because CORESYNC_NOT_REACHABLE
            if (elements.length === 0 &&
                !coreSyncNotReachable &&
                fetchState === constants["n" /* ProcessingState */].Error) {
                return EMPTYVIEW_PROPS_FOR_UNKNOWN_ERROR;
            }
        };
        this.getEmptyViewProps = () => {
            const { isOnline, coreSyncNotReachable, coreSyncIncompatible } = this.docStore;
            const { hostProductData } = this.cdoStore;
            const { elements } = this.getDataProps();
            const { productName } = hostProductData;
            const { intl } = this.props;
            const errorViewProps = this.getErrorViewProps();
            if (errorViewProps) {
                return {
                    // overrideable props
                    helpLink: this.knownIssuesLink,
                    ingestSubcategory: this.tabConfig.ingestSubcategory,
                    buttons: undefined,
                    ...errorViewProps,
                    productName,
                };
            }
            if (elements.length) {
                return;
            }
            if (isOnline) {
                if (coreSyncNotReachable) {
                    return Object(EmptyView["f" /* coreSyncDownEmptyViewProps */])(intl.locale);
                }
                if (coreSyncIncompatible) {
                    return EmptyView["b" /* CORESYNC_INCOMPATIBLE_EMPTYVIEW_PROPS */];
                }
            }
            return this.getNonErrorEmptyViewProps();
        };
        this.isLoading = () => {
            const { fetchState } = this.getDataProps();
            const { hasNonCoreSyncCloudNotificationErrorStatus } = this.docStore;
            return (!hasNonCoreSyncCloudNotificationErrorStatus &&
                (!fetchState ||
                    fetchState === constants["n" /* ProcessingState */].Fetching ||
                    fetchState === constants["n" /* ProcessingState */].Pending));
        };
        // TODO: https://jira.corp.adobe.com/browse/CCXCD-9867
        this.onDialogStateChange = (newState) => {
            const { onDialogStateChange } = this.props;
            this.setState({ modalIsOpen: newState });
            onDialogStateChange === null || onDialogStateChange === void 0 ? void 0 : onDialogStateChange(newState);
        };
        this.onSortSelected = (sortBy) => {
            const { activeSort, activeSortDirection } = this.docStore;
            let sortDir = activeSortDirection === constants["w" /* UXSortDir */].asc ? constants["w" /* UXSortDir */].desc : constants["w" /* UXSortDir */].asc;
            if (sortBy !== activeSort) {
                this.docStore.setActiveSort(sortBy);
                sortDir = constants["w" /* UXSortDir */].asc;
            }
            this.docStore.setActiveSortDirection(sortDir);
        };
        this.state = {
            modalIsOpen: false,
        };
    }
    componentDidUpdate() {
        // check to see if activeCollection was not set and set it
        // to our collection.  Now that SWY and some other collections
        // are created after SAMAssetContext, the CDOTab and CDOView
        // can be mounted before there is a collection and the
        // docStore won't be told what the active collection is
        const { collection, fetchMethod } = this.getDataProps();
        if (collection && !this.docStore.activeCollection) {
            this.docStore.setActiveCollection(collection, fetchMethod);
        }
    }
    get gridMetadataFormat() {
        return this.gridMetadataFormatFunction;
    }
    get listMetadataFormat() {
        return;
    }
    get knownIssuesLink() {
        const { intl } = this.props;
        return Object(urls["g" /* knownIssuesUrl */])(intl.locale, this.cdoStore.hostProductData);
    }
    get itemBadgeRenderer() {
        return element => (react["createElement"](CloudStatusIcon["a" /* default */], { isOffline: !this.docStore.isOnline, element: element }));
    }
    renderSpaceMetadata(idBase, element) {
        return react["createElement"]("span", { id: `${idBase}_Team` }, element.space.spaceName);
    }
    get gridMetadataFormatFunction() {
        return collectionElement => {
            const element = collectionElement;
            const { intl } = this.props;
            const idBase = 'CDOGridItem';
            switch (this.docStore.activeSort) {
                case constants["t" /* UXSortBy */].createDate:
                    return react["createElement"](ViewItem["a" /* DateMetadata */], { date: element.createDate, id: `${idBase}_DateCreated` });
                case constants["t" /* UXSortBy */].size:
                    return (react["createElement"]("span", { id: `${idBase}_Size` }, utils["a" /* default */].formatFileSizeDisplay(element.size, intl)));
                case constants["t" /* UXSortBy */].modifiedDate:
                default:
                    return (react["createElement"](ViewItem["a" /* DateMetadata */], { date: element.modifiedDate, id: `${idBase}_DateModified` }));
            }
        };
    }
    /**
     * Creates the file size element
     *
     * @param {Number} size	byte size of the file
     * @return {Component} for the formatted file size.
     */
    formatFileSize(size) {
        const { intl } = this.props;
        let content;
        if (!size) {
            content = react["createElement"](react["Fragment"], null, "\u2013");
        }
        else {
            // TODO: ensure all models force `size` to be number
            const { displayValue, abbrev } = utils["a" /* default */].formatFileSize(parseInt(size.toString(), 10), intl);
            content = react["createElement"](react["Fragment"], null, `${displayValue} ${abbrev}`);
        }
        return react["createElement"]("div", { id: "CDOListItem_Size" }, content);
    }
    get CDOColumnTypes() {
        const { activeSortDirection, activeSort } = this.docStore;
        const { intl } = this.props;
        const createColumn = (id, render, columnType = ListView["b" /* ColumnType */].Default, isSortDisabled = false) => ({
            id,
            uxSortColumn: id,
            activeSortDirection,
            isActiveSort: activeSort === id,
            label: intl.formatMessage({ id: `header.${id}` }).toUpperCase(),
            isSortDisabled,
            cellContentRender: render,
            columnType,
        });
        return {
            Size: createColumn(constants["t" /* UXSortBy */].size, e => (react["createElement"]("div", { key: "size", className: "size column" }, this.formatFileSize(e.size))), ListView["b" /* ColumnType */].Default, true),
            Modified: createColumn(constants["t" /* UXSortBy */].modifiedDate, e => Object(ListItem["b" /* renderDateColumn */])(e.modifiedDate, constants["t" /* UXSortBy */].modifiedDate), ListView["b" /* ColumnType */].Date),
            Created: createColumn(constants["t" /* UXSortBy */].createDate, e => Object(ListItem["b" /* renderDateColumn */])(e.createDate, constants["t" /* UXSortBy */].createDate), ListView["b" /* ColumnType */].Date),
        };
    }
    get listColumns() {
        const dateColumn = this.docStore.activeSort === constants["t" /* UXSortBy */].createDate
            ? this.CDOColumnTypes.Created
            : this.CDOColumnTypes.Modified;
        const hideSizeColumn = this.cdoStore.isFeatureFlagEnabled('hideSizeColumn');
        return [dateColumn, !hideSizeColumn && this.CDOColumnTypes.Size].filter(Boolean);
    }
    get gridItemProps() {
        return {
            renderBadge: this.itemBadgeRenderer,
            metadataFormat: this.gridMetadataFormat,
        };
    }
    get listItemProps() {
        return {
            renderBadge: this.itemBadgeRenderer,
            metadataFormat: this.listMetadataFormat,
        };
    }
    getViewItem(element) {
        if (isProject(element)) {
            return {
                grid: react["createElement"](ProjectViewItem_ProjectGridItem, Object.assign({}, {}, this.gridItemProps)),
                list: react["createElement"](ProjectViewItem_ProjectListItem, Object.assign({}, {}, this.listItemProps)),
            };
        }
        if (isWebLink(element)) {
            return {
                grid: react["createElement"](WebLinkViewItem_WebLinkGridItem, Object.assign({}, {}, this.gridItemProps)),
                list: react["createElement"](WebLinkViewItem_WebLinkListItem, Object.assign({}, {}, this.listItemProps)),
            };
        }
        if (isReview(element)) {
            return {
                grid: react["createElement"](ReviewViewItem_ReviewGridItem, Object.assign({}, {}, this.gridItemProps)),
                list: react["createElement"](ReviewViewItem_ReviewListItem, Object.assign({}, {}, this.listItemProps)),
            };
        }
        if (isLibrary(element)) {
            return {
                grid: react["createElement"](LibraryViewItem_LibraryGridItem, Object.assign({}, {}, this.gridItemProps)),
                list: react["createElement"](LibraryViewItem_LibraryListItem, Object.assign({}, {}, this.listItemProps)),
            };
        }
        if (isXdArtifact(element)) {
            return {
                grid: (react["createElement"](XdArtifactViewItem_XdArtifactGridItem, Object.assign({ samJSHostAssetContext: this.docStore.samJSHostAssetContext }, {}, this.gridItemProps))),
                list: (react["createElement"](XdArtifactViewItem_XdArtifactListItem, Object.assign({ samJSHostAssetContext: this.docStore.samJSHostAssetContext }, {}, this.listItemProps))),
            };
        }
        return {
            grid: react["createElement"](GridItem["a" /* default */], Object.assign({}, {}, this.gridItemProps)),
            list: react["createElement"](ListItem["a" /* default */], Object.assign({}, {}, this.listItemProps)),
        };
    }
    get collectionViews() {
        return [
            react["createElement"](GridView["b" /* default */], Object.assign({}, {}), element => this.getViewItem(element)
                .grid),
            react["createElement"](ListView["c" /* default */], Object.assign({}, {}, { columns: this.listColumns, unsortableColumns: [this.CDOColumnTypes.Size] }), element => this.getViewItem(element)
                .list),
        ];
    }
    get cdoViewConfig() {
        return {};
    }
    get cdoPassthroughProps() {
        const { hideActionMenu, hideActionToolbar, onItemContextMenu, onSelectionChange, allowClickEventOnDisabled, onBeforeItemClicked, } = this.props;
        return {
            hideActionMenu,
            hideActionToolbar,
            onItemContextMenu,
            onSelectionChange,
            allowClickEventOnDisabled,
            onBeforeItemClicked,
        };
    }
    get additionalChangeProps() {
        return [];
    }
    get headerActions() {
        return this.allAvailableActions;
    }
    renderBanner() {
        return react["createElement"](react["Fragment"], null);
    }
    renderHeader() {
        return react["createElement"](CDOHeader["a" /* default */], Object.assign({}, {}));
    }
    renderSubheader() {
        return react["createElement"](react["Fragment"], null);
    }
    onDocMounted(element) {
        if (element.isSpaceAsset) {
            element.getSpaceInfo();
        }
    }
    render() {
        const { selectionStore } = this.props;
        const { collection, elements, fetchMethod, fetchState, viewRootPath } = this.getDataProps();
        const emptyFolderProps = this.getEmptyViewProps();
        const emptyViewContent = emptyFolderProps && react["createElement"](EmptyView["g" /* default */], Object.assign({}, emptyFolderProps));
        const header = this.renderHeader();
        return (react["createElement"](CDOView["a" /* default */], Object.assign({ ref: this._cdoViewRef, intl: this.props.intl, viewRootPath: viewRootPath, selectionStore: selectionStore, metrics: this.cdoMetrics, callbacks: this.callbacks, hostProductData: this.cdoStore.hostProductData, mode: this.cdoStore.mode, isFeatureFlagEnabled: this.cdoStore.isFeatureFlagEnabled, view: this.cdoStore.view, setViewMode: this.cdoStore.setViewState, className: this.tabConfig.tabName, collection: collection, elements: elements, fetchMethod: fetchMethod, fetchState: fetchState, isLoading: this.isLoading, setActiveCollection: (_collection, _fetchMethod) => this.docStore.setActiveCollection(_collection, _fetchMethod), actionMenuItems: this.allAvailableActions, hideActionColumn: !this.cdoStore.isOrganizer, selectionDisabled: !this.cdoStore.isOrganizer && !this.cdoStore.isPlaceLinkOrEmbedPicker, dragDisabled: !this.cdoStore.isOrganizer, closeToast: () => this.docStore.closeToast(), fetchRendition: doc => this.docStore.fetchRendition(doc), cancelFetchRendition: doc => this.docStore.cancelFetchRendition(doc), activeSort: this.docStore.activeSort, activeSortDirection: this.docStore.activeSortDirection, onSortSelected: this.onSortSelected, currentPath: this.docStore.currentPath, isFoldersEnabled: this.docStore.isFoldersEnabled, isOnline: this.docStore.isOnline, isUserLoggedIn: this.docStore.isUserLoggedIn, cardSize: this.docStore.cardSize, toastConfig: this.docStore.toast, getProgressProps: () => this.docStore.batchState.progressData, mapItemsForLaunch: doc => Object(launch_item["c" /* getLaunchDocInfo */])(doc), launchItems: (documents, onOpenDocuments) => Object(launch_item["b" /* default */])(documents, onOpenDocuments), getOperationState: () => this.docStore.assetOpState, setOperationState: state => this.docStore.setAssetOpState(state), onDialogStateChange: this.onDialogStateChange, modalIsOpen: this.state.modalIsOpen }, this.cdoPassthroughProps, this.cdoViewConfig, { 
            // Non-overridable props below
            // eslint-disable-next-line react/jsx-props-no-multi-spaces
            ingestSubcategory: this.tabConfig.ingestSubcategory, shouldRenderItemAsDisabled: this.commonShouldRenderItemAsDisabled, getSelectionStore: items => new AssetSelectionStore["a" /* default */](items), onItemMounted: this.onDocMounted }),
            this.renderBanner(),
            (header === null || header === void 0 ? void 0 : header.type) === CDOHeader["a" /* default */]
                ? react["cloneElement"](header, {
                    headingMsgId: `header.${this.tabConfig.tabName}`,
                    toolbarItems: this.headerActions,
                    onBetaFeedbackTextClick: this.callbacks.onBetaFeedbackTextClick,
                })
                : header,
            this.renderSubheader(),
            emptyViewContent ||
                this.collectionViews.map(collectionView => react["cloneElement"](collectionView, {
                    ingestSubcategory: this.tabConfig.ingestSubcategory,
                    additionalChangeProps: this.additionalChangeProps,
                }))));
    }
}
/* harmony default export */ var components_CDOTab = __webpack_exports__["a"] = (CDOTab_CDOTab);


/***/ }),

/***/ "/8BR":
/***/ (function(module, exports) {

/* eslint-disable max-len */
module.exports = {
  'confirmationDialog.dontShowAgain': 'Ne mutassa újra',
  'confirmationDialog.confirm.default': 'Tovább',
  'confirmationDialog.cancel.default': 'Mégse',
  'confirmationDialog.learnMore': 'Bővebben',
  'toast.warning.place': 'Még nem lehet hivatkozott felhőalapú dokumentumokat elhelyezni. Helyette folytassa beágyazással.',
  'toast.warning.placeLinkOrEmbed': 'Az elhelyezett eszközök most alapértelmezés szerint az eredetihez vannak kapcsolva. Ez azt jelenti, hogy ha egy helyen szerkeszti, akkor ezek a változások mindenhol jelen lesznek.',
  'toast.warning.saveAs.invalidFormat': 'Sajnos nem tud {genericFormat}-fájlokat itt elmenteni. A fájlt {adobeFormat}-formátumban menti a rendszer.',
  'pickerView.recent': 'Legutóbbi',
  'pickerView.cloud_docs': 'Saját fájlok',
  'pickerView.shared_with_you': 'Önnel megosztva',
  'pickerView.projects': 'Projektek',
  'pickerView.files': 'Fájlok',
  'pickerView.computer': 'Saját számítógép...',
  'pickerView.saveAsInput': 'Mentés másként',
  'pickerView.exportInput': 'Exportálás mint',
  'pickerView.sketch_library': 'A Sketch könyvtárának konvertálása...',
  'pickerView.error.saveAsOrExport.default': 'A fájlnév érvénytelen.',
  'pickerView.error.saveAsOrExport.invalidName': 'Sajnos ez a név érvénytelen karakter(eke)t tartalmaz.',
  'pickerView.error.saveAsOrExport.invalidEnd': 'A név végén nem állhat „.” vagy üres szóköz.',
  'pickerView.error.saveAsOrExport.invalidChar': 'A név nem tartalmazhatja a következő karaktereket: {characters}',
  'pickerView.error.saveAsOrExport.charRestriction': 'A nevek nem lehetnek 200 karakternél hosszabbak.',
  'pickerView.error.saveAsOrExport.duplicateName': 'Itt már létezik egy felhőalapú dokumentum ezzel a névvel.',
  'pickerView.error.addALibrary.permission': 'Nincs jogosultsága ahhoz, hogy ehhez a könyvtárhoz hozzáadjon elemet',
  'pickerViewFooter.button.add': 'Hozzáadás',
  'pickerViewFooter.button.cancel': 'Mégse',
  'pickerViewFooter.button.copy': 'Másolás ide',
  'pickerViewFooter.button.move': 'Mozgatás ide',
  'pickerViewFooter.button.moveToProject': 'Mozgatás ide',
  'pickerViewFooter.button.copyToProject': 'Másolás ide',
  'pickerViewFooter.button.choose': 'Kiválasztás',
  'pickerViewFooter.button.save': 'Mentés',
  'pickerViewFooter.button.switchToOSPicker': 'A számítógépén',
  'pickerViewFooter.button.save.offline': 'Internetkapcsolat szükséges',
  'pickerViewFooter.button.saveAsCopy': 'Mentés',
  'pickerViewFooter.button.export': 'Exportálás',
  'pickerViewFooter.button.placeLinkOrEmbed': 'Elhelyezés',
  'pickerViewFooter.button.import': 'Importálás',
  'pickerViewFooter.checkbox.placeLink': 'Kapcsolt',
  'pickerViewFooter.tooltip.placeLink': 'Ezt az elemet csak kapcsolódó eszközként helyezheti el.',
  'pickerViewFooter.tooltip.placeEmbed': 'Ezt az elemet csak beágyazottként helyezheti el.',
  'pickerViewFooter.saveAs.format.label': 'Formátum',
  'pickerViewFooter.button.selectProject': 'Mentés',
  'onboardingCdp.title': 'Ha felhőalapú dokumentumként menti a fájlt, sokkal több műveletet elvégezhet rajta.',
  'onboardingCdp.tooltip': 'Ha a számítógépére menti a fájlt, nem tudja használni a felhőalapú funkciókat.',
  'onboardingCdp.tooltip.link': 'Bővebben',
  'onboardingCdp.table.header.saveToCloud': 'Creative Cloud',
  'onboardingCdp.table.header.saveToLocal': 'A számítógépén',
  'onboardingCdp.button.saveToCloud': 'Mentés a Creative Cloud alkalmazásba',
  'onboardingCdp.feature.offline': 'Offline hozzáférés',
  'onboardingCdp.feature.syncing': 'Felhőbeli tartalmak szinkronizálása az összes eszközre',
  'onboardingCdp.feature.autosave': 'Minden módosítás automatikus mentése',
  'onboardingCdp.feature.versionHistory': 'Verzióelőzmények',
  'onboardingCdp.feature.inviteToEdit': 'Meghívás szerkesztésre',
  'onboardingCdp.button.saveToLocal': 'Mentés a számítógépen',
  'onboardingCdp.checkbox.doNotShowAgain': 'Ne mutassa újra',
  'uap.title.place': 'Elhelyezés a Creative Cloud szolgáltatásból',
  'uap.title.import': 'Importálás a Creative Cloud szolgáltatásból',
  'uap.title.placeLinkOrEmbed': 'Elhelyezés a Creative Cloud szolgáltatásból',
  'uap.title.linkAssets': 'Összekapcsolás a Creative Cloud szolgáltatásból',
  'uap.title.open': 'Megnyitás a Creative Cloud szolgáltatásból',
  'uap.title.relink': 'Összekapcsolás a Creative Cloud szolgáltatásból',
  'uap.title.saveAs': 'Mentés a Creative Cloud alkalmazásba',
  'uap.title.saveAsCopy': 'Mentés a Creative Cloud alkalmazásba',
  'uap.title.saveToFolder': 'Mentés a Creative Cloud alkalmazásba',
  'uap.title.export': 'Exportálás a Creative Cloud alkalmazásba',
  'uap.title.copy': 'Másolás a Creative Cloud alkalmazásba',
  'uap.title.move': 'Mozgatás a Creative Cloud szolgáltatásban',
  'uap.title.moveToProject': 'Mozgatás a Creative Cloud szolgáltatásban',
  'uap.title.copyToProject': 'Másolás a Creative Cloud alkalmazásba',
  'uap.title.reference': 'Hozzáadás a Creative Cloud alkalmazáshoz',
  'uap.title.selectProject': 'Mentés a Creative Cloud alkalmazásba',
  'move.toSpace.confirm.title': 'A verzióelőzmények törlődnek',
  'move.toSpace.confirm.message': 'A fájl áthelyezésével a verzióelőzmények törlődnek. Ha meg szeretné őrizni verzióelőzményeit, készítsen másolatot.'
};

/***/ }),

/***/ "/8IZ":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _autobindDecorator = _interopRequireDefault(__webpack_require__("gKdT"));

var _CheckmarkMedium = _interopRequireDefault(__webpack_require__("vJuj"));

var _ChevronRightMedium = _interopRequireDefault(__webpack_require__("aaYb"));

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _icon = __webpack_require__("vo16");

var _filterDOMProps = _interopRequireDefault(__webpack_require__("Cv/Q"));

var _events = __webpack_require__("mdZ3");

var _propTypes = _interopRequireDefault(__webpack_require__("17x9"));

var _react = _interopRequireWildcard(__webpack_require__("q1tI"));

const _excluded = ["icon", "label", "className", "children", "selected", "disabled", "focused", "hasNestedMenu", "tabIndex", "role"];

var _class, _class2, _temp;

function _getRequireWildcardCache(nodeInterop) {
  if (typeof WeakMap !== "function") return null;
  var cacheBabelInterop = new WeakMap();
  var cacheNodeInterop = new WeakMap();
  return (_getRequireWildcardCache = function (nodeInterop) {
    return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
  })(nodeInterop);
}

function _interopRequireWildcard(obj, nodeInterop) {
  if (!nodeInterop && obj && obj.__esModule) {
    return obj;
  }

  if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
    return {
      default: obj
    };
  }

  var cache = _getRequireWildcardCache(nodeInterop);

  if (cache && cache.has(obj)) {
    return cache.get(obj);
  }

  var newObj = {};
  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;

  for (var key in obj) {
    if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
      var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;

      if (desc && (desc.get || desc.set)) {
        Object.defineProperty(newObj, key, desc);
      } else {
        newObj[key] = obj[key];
      }
    }
  }

  newObj.default = obj;

  if (cache) {
    cache.set(obj, newObj);
  }

  return newObj;
}

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

let ListItem =
/**
 * An item in a list
 */
(0, _autobindDecorator.default)(_class = (_temp = _class2 = class ListItem extends _react.Component {
  handleMouseEnter(e) {
    if (this.props.onMouseEnter) {
      this.props.onMouseEnter(e);
    } else {
      e.currentTarget.focus();
    }
  }

  handleFocus(e) {
    if (this.props.onFocus) {
      this.props.onFocus(e);
    }
  }

  handleBlur(e) {
    if (this.props.onBlur) {
      this.props.onBlur(e);
    }
  }

  onSelectFocused(e) {
    e.preventDefault();

    if (this.props.onClick) {
      this.props.onClick(e);
    }

    if (this.props.onSelect && !e.isPropagationStopped()) {
      this.props.onSelect(this.props.value, e);
    }
  }

  onKeyDown(e) {
    const {
      onKeyDown,
      disabled
    } = this.props;

    if (onKeyDown) {
      onKeyDown(e);
    }

    if (!disabled) {
      _events.interpretKeyboardEvent.call(this, e);
    }
  }

  onTab(e) {
    if (this.props.onTab) {
      this.props.onTab(e);
    }
  }

  render() {
    const _this$props = this.props,
          {
      icon,
      label,
      className,
      children,
      selected,
      disabled,
      focused,
      hasNestedMenu,
      tabIndex = 0,
      role = 'option'
    } = _this$props,
          otherProps = _objectWithoutProperties(_this$props, _excluded);

    delete otherProps.value;
    return (
      /*#__PURE__*/

      /* eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions */
      _react.default.createElement("li", _extends({}, (0, _filterDOMProps.default)(otherProps), {
        className: (0, _classnames.default)('spectrum-Menu-item', {
          'is-selected': selected,
          'is-disabled': disabled,
          'is-focused': focused
        }, className),
        onKeyDown: this.onKeyDown,
        onMouseEnter: disabled ? null : this.handleMouseEnter,
        onFocus: disabled ? null : this.handleFocus,
        onClick: disabled ? null : this.onSelectFocused,
        onBlur: this.handleBlur
        /* eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex */
        ,
        tabIndex: !disabled ? tabIndex : null,
        role: role,
        "aria-checked": role === 'menuitemcheckbox' || role === 'menuitemradio' ? !!selected : null,
        "aria-selected": role === 'option' ? !!selected || !!focused : null,
        "aria-disabled": disabled || null
      }), (0, _icon.cloneIcon)(icon, {
        size: 'S'
      }), /*#__PURE__*/_react.default.createElement("span", {
        className: "spectrum-Menu-itemLabel"
      }, label || children), selected && /*#__PURE__*/_react.default.createElement(_CheckmarkMedium.default, {
        size: null,
        className: "spectrum-Menu-checkmark"
      }), hasNestedMenu && /*#__PURE__*/_react.default.createElement(_ChevronRightMedium.default, {
        className: "spectrum-Menu-chevron"
      }))
    );
  }

}, _class2.propTypes = {
  /**
   * Whether or not the list item is selected
   */
  selected: _propTypes.default.bool,

  /**
   * Whether or not  the list item is disabled
   */
  disabled: _propTypes.default.bool,

  /**
   * Callback for when the list item is clicked
   */
  onClick: _propTypes.default.func,

  /**
   * Callback for when the list item is selected
   */
  onSelect: _propTypes.default.func,

  /**
   * The WAI-ARIA role for the list item. Defaults to "option", but could be "menuitem", "menuitemcheckbox", or "menuitemradio" depending on context.
   */
  role: _propTypes.default.oneOf(['option', 'menuitem', 'menuitemcheckbox', 'menuitemradio'])
}, _class2.defaultProps = {
  selected: false,
  disabled: false,
  onSelect: function () {},
  role: 'option'
}, _temp)) || _class;

exports.default = ListItem;

/***/ }),

/***/ "/9aa":
/***/ (function(module, exports, __webpack_require__) {

var baseGetTag = __webpack_require__("NykK"),
    isObjectLike = __webpack_require__("ExA7");
/** `Object#toString` result references. */


var symbolTag = '[object Symbol]';
/**
 * Checks if `value` is classified as a `Symbol` primitive or object.
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.
 * @example
 *
 * _.isSymbol(Symbol.iterator);
 * // => true
 *
 * _.isSymbol('abc');
 * // => false
 */

function isSymbol(value) {
  return typeof value == 'symbol' || isObjectLike(value) && baseGetTag(value) == symbolTag;
}

module.exports = isSymbol;

/***/ }),

/***/ "/COt":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _react_react_spectrum_Icon_Share__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("iUn+");
/* harmony import */ var _react_react_spectrum_Icon_Share__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Icon_Share__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _interfaces_ShareSheetInterface__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("GXpm");
/* harmony import */ var _packages_CDOView_utils_action__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("duTG");
/* harmony import */ var _addMember__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("1+hv");





/* harmony default export */ __webpack_exports__["a"] = (({ isVisible, openShareSheet, project, app }) => new _packages_CDOView_utils_action__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"]({
    execute: async (documents) => {
        const doc = documents[0];
        let roles = ['EDIT_SHARE'];
        let shareSheetType = _interfaces_ShareSheetInterface__WEBPACK_IMPORTED_MODULE_2__[/* ShareSheetType */ "b"].spaceDocument;
        const data = await Object(_addMember__WEBPACK_IMPORTED_MODULE_4__[/* formatShareSheetAssetData */ "b"])({
            assetId: doc.id,
            projectId: project.id,
            projectName: project.name,
            name: doc.name,
            type: doc.type,
            color: project.color,
            roles,
            role: 'editor',
            teamName: project.teamName,
            isSharedToTeam: project.isSharedToTeam,
            shareSheetType,
        });
        openShareSheet === null || openShareSheet === void 0 ? void 0 : openShareSheet(data);
        return false;
    },
    icon: react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_react_react_spectrum_Icon_Share__WEBPACK_IMPORTED_MODULE_1___default.a, null),
    isVisible: isVisible,
    getIsButtonDisabled: () => app.showOfflineWithFeatureFlag,
    getDisabledTooltipMsgId: () => 'tooltip.offline.general',
    label: 'button.share',
    value: 'shareDocument',
}));


/***/ }),

/***/ "/EZv":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("hG/T"),
      24: __webpack_require__("SFQz")
    }
  }));
};

WrappedIcon.displayName = 'Download';
exports.default = WrappedIcon;

/***/ }),

/***/ "/GVU":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

var _Tooltip = _interopRequireDefault(__webpack_require__("K0XK"));

__webpack_require__("QSQC");

const _excluded = ["variant", "children", "className", "placement", "open", "id"];

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
} // maps from our variant names to Spectrum UXP variant names


const SpUxpVariantMap = {
  inspect: 'neutral',
  info: 'info',
  error: 'negative',
  success: 'positive'
};

class SpUxpTooltip extends _Tooltip.default {
  render() {
    const _this$props = this.props,
          {
      variant,
      children,
      className,
      placement = 'right',
      open,
      id = this.tooltipId
    } = _this$props,
          otherProps = _objectWithoutProperties(_this$props, _excluded); // Unlike Spectrum UXP, Spectrum CSS tooltip has a spacing b/w anchor element and tooltip.
    // `sp-tooltip-translate-${placement}` classes simulate existing RS tooltip by adding the same transform on top of Spectrum UXP tooltip.


    return /*#__PURE__*/_react.default.createElement("sp-tooltip", _extends({
      ref: r => this.tooltipRef = r,
      class: (0, _classnames.default)(`sp-tooltip-translate-${placement}`, className),
      id: id,
      variant: SpUxpVariantMap[variant],
      placement: placement,
      open: open
    }, otherProps), children);
  }

}

exports.default = SpUxpTooltip;

/***/ }),

/***/ "/Iqz":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.SelectMenu = SelectMenu;
exports.default = void 0;

var _Alert = _interopRequireDefault(__webpack_require__("VQdv"));

var _autobindDecorator = _interopRequireDefault(__webpack_require__("gKdT"));

var _Button = _interopRequireDefault(__webpack_require__("Cn9g"));

var _ChevronDownMedium = _interopRequireDefault(__webpack_require__("o1jT"));

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _convertUnsafeMethod = _interopRequireDefault(__webpack_require__("8nyd"));

var _createId = _interopRequireDefault(__webpack_require__("b7KY"));

var _Dropdown = _interopRequireDefault(__webpack_require__("T1rY"));

var _filterDOMProps = _interopRequireDefault(__webpack_require__("Cv/Q"));

var _Popover = _interopRequireDefault(__webpack_require__("pyUw"));

var _propTypes = _interopRequireDefault(__webpack_require__("17x9"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

var _reactDom = _interopRequireDefault(__webpack_require__("i8i4"));

var _SelectList = _interopRequireDefault(__webpack_require__("z8hX"));

var _class, _class2, _temp;

const _excluded = ["onClose", "onOpen", "onSelect", "className", "open", "placement", "style", "closeOnSelect", "quiet"],
      _excluded2 = ["options", "quiet", "onClose", "closeOnSelect", "menuClassName", "disabled", "invalid", "multiple", "required", "flexible", "placeholder", "className", "flip", "alignRight", "labelId", "id", "icon", "renderItem", "aria-label", "aria-labelledby"];

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

if (false) {} else if (false) {} else {
  __webpack_require__("sxri");
}

if (true) __webpack_require__("KM0J");
if (true) __webpack_require__("qbMb");
if (true) __webpack_require__("4isJ");
if (true) __webpack_require__("DYFV");

__webpack_require__("B3RL");

let POPOVER_MAX_WIDTH = null;
let QUIET_MARGIN = 24;

let Select = (0, _convertUnsafeMethod.default)(_class = (0, _autobindDecorator.default)(_class = (_temp = _class2 = class Select extends _react.default.Component {
  constructor(props) {
    super(props);
    let value = null;

    if ('value' in props) {
      value = props.value;
    } else if ('defaultValue' in props) {
      value = props.defaultValue;
    } else if (props.multiple) {
      value = [];
    } else {
      const opt = props.options && props.options[0];
      value = opt && !props.placeholder ? opt.value : null;
    }

    this.state = {
      value
    };
    this.selectId = (0, _createId.default)();
  }

  UNSAFE_componentWillReceiveProps(props) {
    if ('value' in props && props.value !== this.state.value) {
      this.setState({
        value: props.value
      });
    }
  }

  componentDidMount() {
    if (POPOVER_MAX_WIDTH == null) {
      // Render a fake popover we can measure the styles of, place it inside ourselves
      // so it gets styles dictated by the current scale
      let dummyPopover = document.createElement('div');
      dummyPopover.className = 'spectrum-Dropdown-popover';
      document.body.appendChild(dummyPopover);
      POPOVER_MAX_WIDTH = parseInt(window.getComputedStyle(dummyPopover).maxWidth, 10);
      document.body.removeChild(dummyPopover);
    }

    window.addEventListener('resize', this.updateSize);
    this.updateSize();
  }

  componentWillUnmount() {
    window.removeEventListener('resize', this.updateSize);
  }

  componentDidUpdate() {
    this.updateSize();
  }

  updateSize() {
    if (this.button) {
      let width = _reactDom.default.findDOMNode(this.button).offsetWidth;

      if (width !== this.state.width) {
        this.setState({
          width
        });
      }
    }
  }

  onSelect(value) {
    if (!('value' in this.props)) {
      this.setState({
        value
      });
    }

    if (this.props.onChange) {
      this.props.onChange(value);
    }
  }

  onOpen(e) {
    this.updateSize();

    if (typeof this.props.onOpen === 'function') {
      this.props.onOpen(e);
    }
  }

  render() {
    let _this$props = this.props,
        {
      options = [],
      quiet,
      onClose,
      closeOnSelect,
      menuClassName,
      disabled = false,
      invalid = false,
      multiple = false,
      required = false,
      flexible = false,
      placeholder = 'Select an option',
      className,
      flip = true,
      alignRight,
      labelId,
      id = this.selectId,
      icon,
      renderItem,
      'aria-label': ariaLabel,
      'aria-labelledby': ariaLabelledby
    } = _this$props,
        otherProps = _objectWithoutProperties(_this$props, _excluded2);

    let {
      value
    } = this.state;
    const valueId = `${id}-value`;

    if (ariaLabelledby) {
      ariaLabelledby += ` ${valueId}`;
    } else if (ariaLabel) {
      ariaLabelledby = id + ' ' + valueId;
    } else if (labelId) {
      ariaLabelledby = labelId + ' ' + valueId;
    } else {
      ariaLabelledby = valueId;
    }

    let label = placeholder;

    if (!multiple) {
      const selectedOption = options.find(o => o.value === value);
      label = selectedOption ? selectedOption.label : placeholder;
      icon = selectedOption && selectedOption.icon;
    }

    closeOnSelect = typeof closeOnSelect === 'boolean' ? closeOnSelect : !multiple; // Pass ARIA props to the button, and others to the Dropdown.

    let domProps = Object.entries((0, _filterDOMProps.default)(otherProps));
    let buttonProps = domProps.filter(x => /^aria-.*$/.test(x[0])).reduce((o, i) => (o[i[0]] = i[1], o), {});
    let dropdownProps = domProps.filter(x => !/^aria-.*$/.test(x[0])).reduce((o, i) => (o[i[0]] = i[1], o), {});
    let minWidth = this.state.width;

    if (quiet) {
      minWidth = this.state.width + QUIET_MARGIN;
    }

    if (quiet && flexible) {
      minWidth = null;
    }

    return /*#__PURE__*/_react.default.createElement(_Dropdown.default, _extends({
      className: (0, _classnames.default)('spectrum-Dropdown', {
        'spectrum-Dropdown--quiet': quiet,
        'react-spectrum-Dropdown-fixed': quiet && !flexible,
        'react-spectrum-Dropdown-flexible': flexible,
        'is-disabled': disabled,
        'is-invalid': invalid
      }, className),
      closeOnSelect: closeOnSelect,
      onSelect: this.onSelect,
      onOpen: this.onOpen,
      onClose: onClose,
      "aria-required": required,
      "aria-multiselectable": multiple,
      "aria-disabled": disabled,
      "aria-invalid": invalid,
      alignRight: alignRight,
      flip: flip
    }, dropdownProps), /*#__PURE__*/_react.default.createElement(_Button.default, _extends({
      className: "spectrum-Dropdown-trigger",
      type: "button",
      variant: "field",
      "aria-haspopup": "listbox",
      quiet: quiet,
      disabled: disabled,
      invalid: invalid,
      ref: b => this.button = b,
      "aria-label": ariaLabel,
      "aria-labelledby": ariaLabelledby,
      id: id,
      icon: icon
    }, buttonProps), /*#__PURE__*/_react.default.createElement("span", {
      id: valueId,
      className: (0, _classnames.default)('spectrum-Dropdown-label', {
        'is-placeholder': label === placeholder
      })
    }, label), invalid && /*#__PURE__*/_react.default.createElement(_Alert.default, {
      size: "S"
    }), /*#__PURE__*/_react.default.createElement(_ChevronDownMedium.default, {
      size: null,
      className: "spectrum-Dropdown-icon"
    })), /*#__PURE__*/_react.default.createElement(SelectMenu, {
      dropdownMenu: true,
      className: menuClassName,
      options: options,
      value: value,
      multiple: multiple,
      disabled: disabled,
      invalid: invalid,
      required: required,
      quiet: quiet,
      style: {
        overflowY: 'auto',
        minWidth: minWidth,
        maxWidth: this.state.width > POPOVER_MAX_WIDTH ? this.state.width : null,
        marginRight: quiet && alignRight ? -1 * (QUIET_MARGIN / 2) : null
      },
      autoFocus: true,
      renderItem: renderItem
    }));
  }

}, _class2.propTypes = {
  /**
   * If true, the select list will close on selection of an item
   */
  closeOnSelect: _propTypes.default.bool,

  /**
   * String for extra class names to add to the select list
   */
  menuClassName: _propTypes.default.string,

  /**
   * A function that returns a wrapper component to render a list item label.
   * Useful in providing custom html to the rendered label.
   */
  renderItem: _propTypes.default.func,

  /** Sets the selected item (controlled) for the component. */
  value: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number, _propTypes.default.arrayOf(_propTypes.default.string), _propTypes.default.arrayOf(_propTypes.default.number)]),

  /** Sets the initial selected item (uncontrolled) for the component. */
  defaultValue: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number, _propTypes.default.arrayOf(_propTypes.default.string), _propTypes.default.arrayOf(_propTypes.default.number)]),

  /** Whether to allow multiple item selection. */
  multiple: _propTypes.default.bool,

  /** Array of strings of options in list */
  options: _propTypes.default.arrayOf(_propTypes.default.object),

  /** Function to call when the selected value changes. */
  onChange: _propTypes.default.func,

  /** Function to call when the dropdown menu is opened. */
  onOpen: _propTypes.default.func,

  /** Function to call when the dropdown menu is closed. */
  onClose: _propTypes.default.func,

  /** Whether to render the quiet variant of the component. */
  quiet: _propTypes.default.bool,

  /** Whether to render the invalid appearance of the component. */
  invalid: _propTypes.default.bool,

  /** Whether to enforce that at least one option from the list is selected by the user. */
  required: _propTypes.default.bool,

  /** Whether the component width should adjust to match the width of the selected value's text. */
  flexible: _propTypes.default.bool,

  /** Placeholder text to display if no items have been selected. */
  placeholder: _propTypes.default.string,

  /** Sets whether the overlay is flippable. Shift the overlay to the opposite position if out of view. */
  flip: _propTypes.default.bool,

  /** Sets the positioning of the dropdown to align to the right. */
  alignRight: _propTypes.default.bool,

  /** Sets the icon displayed in the select bar if multiple items are selectable. */
  icon: _propTypes.default.node
}, _temp)) || _class) || _class;

exports.default = Select;

function SelectMenu(_ref) {
  let {
    onClose,
    onOpen,
    onSelect,
    className,
    open,
    placement,
    style,
    closeOnSelect,
    quiet
  } = _ref,
      props = _objectWithoutProperties(_ref, _excluded);

  return /*#__PURE__*/_react.default.createElement(_Popover.default, {
    isDialog: false,
    placement: placement,
    open: open,
    onClose: onClose,
    onOpen: onOpen,
    style: style,
    className: (0, _classnames.default)('spectrum-Dropdown-popover', {
      'spectrum-Dropdown-popover--quiet': quiet
    }),
    closeOnSelect: closeOnSelect
  }, /*#__PURE__*/_react.default.createElement(_SelectList.default, _extends({}, props, {
    className: className,
    onClose: onClose,
    onChange: onSelect,
    onTab: e => e.preventDefault()
  })));
}

/***/ }),

/***/ "/T2e":
/***/ (function(module, exports) {

/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
module.exports = {
  'ccd.infoPanel.detail.created': 'Létrehozva',
  'ccd.infoPanel.detail.modified': 'Módosítva',
  'ccd.infoPanel.detail.size': 'Méret',
  'ccd.infoPanel.detail.shared': 'Megosztva',
  'ccd.header.renameFolder': 'Mappa átnevezése',
  'ccd.menu.addToFavourites': 'Hozzáadás a gyorsbillentyűkhöz',
  'ccd.menu.removeFromFavourites': 'Gyorsbillentyű eltávolítása',
  'ccd.menu.viewonweb': 'Webes nézet',
  'ccd.menu.share': 'Megosztás',
  'ccd.menu.openWith': 'Megnyitás itt:',
  'ccd.menu.changeDefaultApp': 'Alapértelmezett alkalmazás módosítása...',
  'ccd.menu.default': '(Alapértelmezett)',
  'ccd.menu.export': 'Exportálás helyi másolatként',
  'ccd.menu.download': 'Letöltés',
  'ccd.menu.createNew': 'Új létrehozása...',
  'ccd.menu.launch': 'MEGNYITÁS',
  'actionMenuItem.permdelete': 'Végleges törlés',
  'tab.Cloud Documents': 'Saját fájlok',
  'tab.Home': 'Kezdőlap',
  'header.CloudDocuments': 'Saját fájlok',
  'header.SharedWithYou': 'Önnel megosztva',
  'header.Deleted': 'Törölve',
  'header.Deleted.AssetsWebLink': 'A törölt elemek megtekintéséhez lépjen a Kellékek weboldalára',
  'header.SelectedDocuments': '{numSelected, plural, =1 {#} other {#}} kijelölve',
  'header.size': 'Méret',
  'header.title': 'Név',
  'header.modifiedDate': 'Dátum módosítva',
  'header.createDate': 'Dátum létrehozva',
  'header.shareDate': 'Dátum megosztva',
  'header.SortBy': 'Rendezési szempont',
  'header.infoPopover.body': 'Itt csak a kompatibilis fájlok jelennek meg. Az összes fájl megtekintéséhez látogasson el a Creative Cloud weboldalára.',
  'header.infoPopover.link': 'Ugrás a Creative Cloud weboldalára',
  'header.dragImport': 'Feltöltés ide: {displayName}',
  'collaborators.onlyYou': 'Csak Ön',
  'collaborators.Owner': '{displayName} (tulajdonos)',
  'collaborators.More': '{numItems, plural, other {+# további}}',
  'empty.offline.root.title': 'Nincs kapcsolat',
  'empty.offline.root.subtitle': 'Az online állapotban látható elemek itt fognak megjelenni az újracsatlakozást követően',
  'empty.offline.folder.title': 'Nem sikerült betölteni a mappát',
  'empty.offline.folder.subtitle': 'Nincs internetkapcsolat. Csatlakozzon újra, hogy láthasson mindent.',
  'empty.online.cdp.saveas.root.title': 'Nincs megjeleníthető felhődokumentum',
  'empty.online.cdp.saveas.root.subtitle': 'A felhőalapú dokumentumok azt jelentik, hogy a munka mindig frissül minden eszközön, bárhol is van – csak csatlakozzon az internethez és induljon útnak.',
  'empty.online.cdp.saveas.root.subtitle.sprk': 'Az XD összes felhődokumentuma itt lesz. Dolgozzon bárhol, akár offline is. A felhődokumentumok módosításait a rendszer automatikusan menti, és megtekintheti őket a dokumentumelőzményekben.',
  'empty.online.cdp.saveas.root.subtitle.phxs': 'A Mac-, Windows- és iPad-eszközökön használt Photoshop összes felhődokumentuma megtalálható lesz itt.',
  'empty.online.cdp.saveas.root.subtitle.ilst': 'A Mac- és Windows-eszközökön használt Illustrator összes felhődokumentuma megtalálható lesz itt.',
  'empty.online.cdp.saveas.root.subtitle.idsn': 'A Mac- és Windows-eszközökön használt InDesign összes felhőalapú dokumentuma megtalálható lesz itt.',
  'empty.online.cdp.saveas.folder.title': 'Nincs megjeleníthető felhődokumentum',
  'empty.online.cdp.saveas.folder.subtitle': 'Amikor egy kompatibilis felhődokumentumot tesz ebbe a mappába, itt fog megjelenni.',
  'empty.online.cdp.open.root.title': 'Nincs megjeleníthető felhődokumentum',
  'empty.online.cdp.open.root.subtitle': 'Amikor egy kompatibilis felhődokumentumot tesz ebbe a mappába, itt fog megjelenni.',
  'empty.online.cdp.open.root.subtitle.sprk': 'Az XD összes felhődokumentuma itt lesz. Dolgozzon bárhol, akár offline is. A felhődokumentumok módosításait a rendszer automatikusan menti, és megtekintheti őket a dokumentumelőzményekben.',
  'empty.online.cdp.open.root.subtitle.phxs': 'A Mac-, Windows- és iPad-eszközökön használt Photoshop összes felhődokumentuma megtalálható lesz itt.',
  'empty.online.cdp.open.root.subtitle.ilst': 'A Mac- és Windows-eszközökön használt Illustrator összes felhődokumentuma megtalálható lesz itt.',
  'empty.online.cdp.open.root.subtitle.idsn': 'A Mac- és Windows-eszközökön használt InDesign összes felhőalapú dokumentuma megtalálható lesz itt.',
  'empty.online.cdp.open.folder.title': 'Nincs megjeleníthető felhődokumentum',
  'empty.online.cdp.open.folder.subtitle': 'Amikor egy kompatibilis felhődokumentumot tesz ebbe a mappába, itt fog megjelenni.',
  'empty.online.cdo.root.title': 'Nincsenek felhődokumentumai',
  'empty.online.cdo.root.subtitle': 'Zökkenőmentes együttműködés másokkal és munkavégzés bárhol, akár offline is. A módosításokat a rendszer automatikusan menti, a dokumentumelőzményekben pedig megtekintheti őket.',
  'empty.online.cdo.root.subtitle.sprk': 'Zökkenőmentes együttműködés valós időben másokkal és munkavégzés bárhol, akár offline is. A módosításokat a rendszer automatikusan menti, a dokumentumelőzményekben pedig megtekintheti őket.',
  'empty.online.cdo.root.subtitle.phxs': 'Zökkenőmentes együttműködés másokkal és munkavégzés bárhol, ahol a Photoshopba bejelentkezik, akár offline is. A módosításokat a rendszer automatikusan menti, a dokumentumelőzményekben pedig megtekintheti őket.',
  'empty.online.cdo.root.subtitle.ilst': 'Zökkenőmentes együttműködés másokkal és munkavégzés bárhol, ahol az Illustratorba bejelentkezik, akár offline is. A módosításokat a rendszer automatikusan menti, a dokumentumelőzményekben pedig megtekintheti őket.',
  'empty.online.cdo.root.subtitle.idsn': 'A dokumentumokhoz bárhonnan hozzáférhet, ahol bejelentkezik az InDesign alkalmazásba. A módosításokat a rendszer automatikusan menti.',
  'empty.online.cdo.folder.title': 'Nincs megjeleníthető felhődokumentum',
  'empty.online.cdo.folder.subtitle': 'Amikor egy kompatibilis felhődokumentumot tesz ebbe a mappába, itt fog megjelenni.',
  'empty.title.deleted': 'Nincsenek törölt fájljai',
  'empty.title.deleted_offline': 'Nincs kapcsolat',
  'empty.title.recent': 'Nincsenek legutóbbi fájlok',
  'empty.subtext.deleted_offline': 'Az online állapotban törölt elemek itt fognak megjelenni az újracsatlakozást követően',
  'empty.title.shared_with_you': 'Nincsenek megosztott felhődokumentumai',
  'empty.subtext.shared_with_you': 'Itt fognak megjelenni az Önnel megosztott felhődokumentumok.',
  'empty.title.shared_with_you_offline': 'Nincs kapcsolat',
  'empty.subtext.shared_with_you_offline': 'A megosztott dokumentumok a kapcsolat visszaállása után válnak megtekinthetővé és szerkeszthetővé.',
  'empty.title.error': 'Hiba történt',
  'empty.subtext.error': 'Indítsa újra az alkalmazást, és próbálja újra.',
  'empty.subtext.error.web': 'Frissítse a böngészőt, és próbálja újra.',
  'empty.title.coresync.down': 'Nem tölthető be',
  'empty.subtext.coresync.down': 'A felhő nem szinkronizál. Győződjön meg arról, hogy a Creative Cloud asztali alkalmazás frissítése megtörtént, vagy próbálja meg újraindítani az alkalmazást.',
  'empty.title.coresync.incompatible': 'A felhődokumentumok nem tölthetőek be',
  'empty.subtext.coresync.incompatible': 'Az elemeket nem lehet megjeleníteni. Kérjük, frissítse a Creative Cloud-alkalmazás verzióját, és próbálja meg újra.',
  'empty.title.cloudStorageDisabled': 'Nem érhetők el felhődokumentumok',
  'empty.subtext.cloudStorageDisabled': 'A(z) {productName} segítségével csak az eszközén található fájlokon dolgozhat. További információkért lépjen kapcsolatba az informatikai rendszergazdával.',
  'empty.title.logout': 'Jelentkezzen be, hogy hozzáférjen a Cloud-dokumentumokhoz.',
  'empty.learnMore.link': 'Bővebben',
  'trueEmpty.online.cdo.folder.title': 'Ebben a mappában nincs semmi',
  'trueEmpty.online.cdo.folder.subtitle': 'Adjon hozzá dolgokat itt a kitöltéshez.',
  'trueEmpty.online.cdp.saveas.folder.title': 'Nincsenek felhődokumentumok – még',
  'trueEmpty.online.cdp.saveas.folder.subtitle': 'A felhőalapú dokumentumok azt jelentik, hogy a munka mindig frissül minden eszközön, bárhol is van – csak csatlakozzon az internethez és induljon útnak.',
  'trueEmpty.online.cdp.open.folder.title': 'Nincsenek felhődokumentumok – még',
  'trueEmpty.online.cdp.open.folder.subtitle': 'A felhőalapú dokumentumok azt jelentik, hogy a munka mindig frissül minden eszközön, bárhol is van – csak csatlakozzon az internethez és induljon útnak.',
  'filter.prompt': 'Írja be a kulcsszót',
  'filter.title': 'Szűrő',
  'empty.filter.title': 'Nincs találat a (z) "{filterString}" kifejezésre',
  'empty.filter.subtitle': 'Ellenőrizze a helyesírást, próbáljon ki egy szélesebb kulcsszót, vagy szűrjön egy másik helyet.',
  'beta.title': 'Szinkronizálja munkáját az eszközök között',
  'beta.subtitle': 'Dolgozzon zökkenőmentesen a Photoshop-ban az iPad-en és az asztali gépen a felhőalapú dokumentumokkal. A funkció azonban Béta fázisban van, így előfordulhat, hogy nem mindig működik a várt módon. Kapcsolja be és ki a beállításokban.',
  'beta.button': 'Bekapcsolás a Beállításokban',
  'beta.tag': 'BETA',
  'beta.feedback.link': 'Adjon visszajelzést a Betáról',
  'button.add-folder': 'Új mappa létrehozása',
  'button.upload': 'Feltöltés...',
  'button.createnew': 'Új létrehozása',
  'button.reportAbuse': 'Visszaélés jelentése',
  'button.open': 'Megnyitás',
  'button.select': 'Választ',
  'button.rename': 'Átnevezés',
  'button.pin.header': 'Offline állapotban elérhetővé tétel mindig',
  'button.pin': 'Offline állapotban elérhetővé tétel mindig',
  'button.unpin.header': 'Csak online elérhetővé tétel',
  'button.unpin': 'Csak online elérhetővé tétel',
  'button.duplicate': 'Duplikálás',
  'button.download': 'Letöltés',
  'button.move': 'Áthelyezés',
  'button.delete': 'Törlés',
  'button.restore': 'Visszaállítás',
  'button.permdelete': 'Végleges törlés',
  'button.listview': 'Lista megtekintése',
  'button.gridview': 'Rács megtekintése',
  'button.sharesheetinvite': 'Meghívás szerkesztésre',
  'button.sharesheetLink': 'Hivatkozás kérése',
  'button.shareSheetAction': 'Megosztás',
  'button.preview': 'Előnézet',
  'button.schedule': 'Ütemezés',
  'action.duplicate.suffix': '(Duplikálás)',
  'action.resolve_sync_error.suffix': 'másolata',
  'statusIcon.conflicted': 'Szinkronizálási ütközés',
  'statusIcon.onlineOnly': 'Csak online',
  'statusIcon.availableOffline': 'Elérhető offline állapotban',
  'statusIcon.syncing': 'Szinkronizálás...',
  'statusIcon.waitingToSync': 'Várakozás a szinkronizálásra',
  'tooltip.error': 'A mentési ütközés megtekintéséhez nyissa meg a dokumentumot.',
  'toast.error.documentIsOpen': '{count, plural, =1 {Dokumentum} other {Dokumentumok}} bezárása a művelet végrehajtásához.',
  'toast.error.exceedsQuota.personal': 'Fiókjában elfogyott a tárhely',
  'toast.error.exceedsQuota.enterprise': 'Elfogyott a tárhely, további információért forduljon a rendszergazdához',
  'toast.operation.duplicate.error': 'Nem sikerült duplikálni {count, plural, =1 {elemet} other {{count} elemet}}.',
  'toast.operation.duplicate.success': '{count, plural, =1 {elem} other {{count} elem}} duplikálva.',
  'toast.operation.archive.error': 'Nem sikerült törölni {count, plural, =1 {elemet} other {{count} elemet}}.',
  'toast.operation.archive.error.otherAppUncommittedChanges': 'Nem törölheti a más alkalmazásokban megnyitott fájlokat. Zárja be őket, majd próbálja újra.',
  'toast.operation.archive.undo.error': 'Nem sikerült törölni {count, plural, =1 {elemet} other {{count} elemet}}.',
  'toast.operation.archive.success': '{count, plural, =1 {elem} other {{count} elem}} törölve.',
  'toast.operation.archive.undo.success': 'Visszaállítás visszavonva.',
  'toast.operation.permdelete.error': 'Nem sikerült véglegesen törölni {count, plural, =1 {elemet} other {{count} elemet}}.',
  'toast.operation.permdelete.success': '{count, plural, =1 {elem} other {{count} Elem}} sikeresen törölve.',
  'toast.operation.rename.error': 'Nem sikerült átnevezni az elemet.',
  'toast.operation.rename.undo.error': 'Nem sikerült átnevezni az elemet.',
  'toast.operation.rename.error.duplicateName': 'Már van itt egy elem ezzel a névvel.',
  'toast.operation.rename.undo.error.duplicateName': 'Már van itt egy elem ezzel a névvel.',
  'toast.operation.rename.success': 'Az elemet átnevezte.',
  'toast.operation.rename.undo.success': 'Átnevezés visszavonva.',
  'toast.operation.move.error': 'Nem sikerült áthelyezni {count, plural, =1 {elemet} other {{count} elemet}}.',
  'toast.operation.move.undo.error': 'Nem sikerült áthelyezni {count, plural, =1 {elemet} other {{count} elemet}}.',
  'toast.operation.move.error.duplicateFolderName': 'Már van itt egy mappa ezzel a névvel.',
  'toast.operation.move.undo.error.duplicateFolderName': 'Már van itt egy mappa ezzel a névvel.',
  'toast.operation.move.error.duplicateDocName': '{count, plural, =1 {Már van a mappában dokumentum ezzel a névvel. Nevezze át és próbálja meg újból.} other {A dokumentumokat nem lehet áthelyezni, mert vannak azonos nevű dokumentumok.}}',
  'toast.operation.move.undo.error.duplicateDocName': '{count, plural, =1 {Már van a mappában dokumentum ezzel a névvel. Nevezze át és próbálja meg újból.} other {A dokumentumokat nem lehet áthelyezni, mert vannak azonos nevű dokumentumok.}}',
  'toast.operation.move.success': '{count, plural, =1 {elem} other {{count} elem}} áthelyezve.',
  'toast.operation.move.undo.success': 'Mozgatás visszavonva.',
  'toast.operation.unarchive.error': 'Nem sikerült helyreállítani {count, plural, =1 {elemet} other {{count} elemet}}.',
  'toast.operation.unarchive.undo.error': 'Nem sikerült helyreállítani {count, plural, =1 {elemet} other {{count} elemet}}.',
  'toast.operation.unarchive.success': '{count, plural, =1 {elem} other {{count} elem}} visszaállítva.',
  'toast.operation.unarchive.undo.success': 'Törlés visszavonva.',
  'toast.operation.create_new_folder.success': 'A mappa létrehozva',
  'toast.operation.create_new_folder.error': 'Nem tudtunk új mappát létrehozni.',
  'toast.operation.create_new_folder.error.duplicateName': 'Már van itt egy mappa ezzel a névvel.',
  'toast.operation.user_pin.success': '{count, plural, =1 {Az elem} other {{count} elem}} offline elérhetővé vált.',
  'toast.operation.user_pin.error': 'Nem sikerült {count, plural, =1 {elemet} other {{count} elemet}} offline elérhetővé tenni.',
  'toast.operation.user_unpin.success': '{count, plural, =1 {Elem} other {{count} elem}} kizárólag online elérhető.',
  'toast.operation.user_unpin.error': 'Nem sikerült az elemet kizárólag online elérhetővé tenni.',
  'toast.operation.resolve_sync_error.success': 'A(z) „{name}” másolatát sikeresen létrehozta. Hasonlítsa össze a két verziót, és egyeztesse a különbségeket.',
  'toast.ccd.scroll_to_item.fetching': 'Fájl letöltése...',
  'toast.ccd.scroll_to_item.error': 'Nem található a fájl',
  'toast.info.disabled_rename_to_open_item': 'A régi XD-dokumentumokat először meg kell nyitni, mielőtt itt átnevezheti őket itt.',
  'toast.action.disabled_rename_to_open_item': 'Dokumentum megnyitása',
  'toast.error.rename.invalidName': 'Sajnos ez a név érvénytelen karakter(eke)t tartalmaz.',
  'toast.error.rename.invalidChar': 'A név nem tartalmazhatja a következő karaktereket: {characters}',
  'toast.error.rename.invalidEnd': 'A név végén nem állhat „.” vagy üres szóköz.',
  'toast.error.rename.charRestriction': 'A nevek nem lehetnek 200 karakternél hosszabbak.',
  'toast.error.rename.duplicateName': 'Már van itt egy felhődokumentuma ezzel a névvel.',
  'toast.success.reportAbuse': 'Sikeresen jelentett visszaélés',
  'toast.error.reportAbuse': 'Nem sikerült bejelenteni a visszaélést',
  'toast.operation.undoLabel': 'Visszavonás',
  'dialog.permdelete.heading': 'Végleges törlés',
  'dialog.permdelete.warning': 'Ez a művelet nem visszavonható. A következők örökre elvesznek:',
  'dialog.permdelete.cancelButton': 'Mégse',
  'dialog.permdelete.confirmButton': 'Végleges törlés',
  'dialog.permdelete.countItems': '{count, plural, =1 {# elem} other {# elem}}',
  'dialog.nonemptyfolder.heading': 'Biztosan törölni szeretné {count, plural, =1 {ezt a mappát} other {ezeket a mappákat}}?',
  'dialog.nonemptyfolder.warning': '{count, plural, =1 {Ez a mappa} other {Ezek a mappák}} nem üres(ek), és olyan fájlokat tartalmazhat(nak), amelyek nem jelennek meg a(z) {appName} alkalmazásban. Folytathatja a törlést, vagy megtekintheti a {count, plural, =1 {mappát} other {mappákat}} és {count, plural, =1 {annak} other {azok}} tartalmát az interneten.  {viewOnWebLink}',
  'dialog.nonemptyfolder.cancelButton': 'Mégse',
  'dialog.nonemptyfolder.confirmButton': 'Törlés',
  'dialog.nonemptyfolder.viewOnWebButton': 'Megtekintés az interneten',
  'dialog.addfolder.heading': 'Új mappa létrehozása',
  'dialog.addfolder.cancelButton': 'Mégse',
  'dialog.addfolder.confirmButton': 'Mentés',
  'dialog.addfolder.placeholder': 'Új mappa',
  'dialog.addfolder.invalidChar': 'A nevek nem tartalmazhatják a következő karaktereket: {characters}',
  'dialog.addfolder.invalidName': 'Sajnos ez a mappa érvénytelen karakter(eke)t tartalmaz.',
  'dialog.addfolder.invalidEnd': 'A név végén nem állhat „.” vagy üres szóköz.',
  'dialog.addfolder.duplicateName': 'Már van itt egy mappa ezzel a névvel.',
  'dialog.addfolder.charRestriction': 'A nevek nem lehetnek 200 karakternél hosszabbak.',
  'dialog.moveFolder.heading': 'Áthelyezés ide...',
  'dialog.moveFolder.cancelButton': 'Mégse',
  'dialog.moveFolder.moveButton': 'Áthelyezés',
  'dialog.moveFolder.createNewFolderButton': 'Mappa hozzáadása',
  'dialog.reportAbuse.cancelButton': 'Mégse',
  'dialog.reportAbuse.reportAbuseButton': 'Visszaélés jelentése',
  'dialog.reportAbuse.heading': 'Visszaélés jelentése',
  'dialog.reportAbuse.emailInput': 'Saját e-mail',
  'dialog.reportAbuse.nameInput': 'Saját név',
  'dialog.reportAbuse.radioButtonText': 'Miért jelenti ezt a tartalmat?',
  'dialog.reportAbuse.defamation': 'Rágalmazás',
  'dialog.reportAbuse.hate': 'Rasszista vagy gyűlöletre ösztönző tartalom',
  'dialog.reportAbuse.trademark': 'Védjeggyel való visszaélés',
  'dialog.reportAbuse.pornography': 'Szexuálisan szókimondó tartalom',
  'dialog.reportAbuse.vulgar': 'Sértő tartalom',
  'dialog.reportAbuse.other': 'Egyéb',
  'dialog.reportAbuse.inappropriate': 'Nem megfelelő',
  'dialog.reportAbuse.age': 'Nem megfelelő kor',
  'dialog.reportAbuse.gender': 'Nem megfelelő nem',
  'dialog.reportAbuse.description': 'Ha úgy gondolja, hogy ez a Creative Cloud-tartalom megsérti az Adobe Használati feltételeit, a tartalmat ennek a gyorslapnak a kitöltésével tudod jelenteni.',
  'dialog.reportAbuse.describeConcern': 'Ismertesse a problémát',
  'dialog.reportAbuse.success': 'Sikeresen jelentett visszaélés',
  'dialog.reportAbuse.failure': 'Nem sikerült bejelenteni a visszaélést',
  'dialog.reportAbuse.textAreaTitle': 'Kérjük, írja le a problémát',
  'dialog.reportAbuse.required': 'Szükséges',
  'dialog.cachefull.title': 'Nem áll rendelkezésre offline',
  'dialog.cachefull.message': 'Az eszközön nincs hely. Készítsen csak online dokumentumokat hely felszabadításához.',
  'dialog.cachefull.confirm': 'OK',
  'dialog.syncError.heading': 'A dokumentum szinkronizálása a felhővel leállt',
  'dialog.syncError.body1': 'Azt javasoljuk, hogy a legújabb verziót mentse el másolatként, és állítsa vissza a dokumentumot a felhőben elmentett utolsó verzióra.',
  'dialog.syncError.body2': 'A dokumentumot megnyithatja és szerkesztheti, de a módosításokat a felhő nem fogja elmenteni.',
  'dialog.syncError.offline': 'A másolat mentéséhez és az eredeti visszaállításához csatlakoznia kell az internethez.',
  'dialog.syncError.learnMore': 'Bővebben',
  'dialog.syncError.resolveButton': 'Másolat mentése és visszaállítás',
  'dialog.syncError.openButton': 'Megnyitás',
  'dialog.syncErrorCopyFail.heading': 'A másolatot nem sikerült elmenteni',
  'dialog.syncErrorCopyFail.body1': 'A dokumentumot továbbra is megnyithatja és szerkesztheti, de a módosításokat a felhő nem fogja elmenteni.',
  'dialog.syncErrorCopyFail.body2': 'További segítségért forduljon az Adobe ügyfélszolgálatához. (Hiba: LocalContentSyncSuspended)',
  'dialog.syncErrorCopyFail.closeButton': 'Bezárás',
  'dialog.syncErrorCopyFail.contactUs': 'Kapcsolatfelvétel',
  'dialog.syncErrorPurgeFail.heading': 'Nem sikerült visszaállítani a felhőben elmentett utolsó verziót',
  'dialog.syncErrorPurgeFail.body1': 'A dokumentum egy másolatát sikeresen létrehozta, de a dokumentumot nem sikerült visszaállítani a felhőben elmentett utolsó verzióra.',
  'dialog.syncErrorPurgeFail.body2': 'További segítségért forduljon az Adobe ügyfélszolgálatához. (Hiba: LocalContentSyncSuspended)',
  'dialog.syncErrorPurgeFail.closeButton': 'Bezárás',
  'dialog.syncErrorPurgeFail.contactUs': 'Kapcsolatfelvétel',
  'onboardingCdo.banner.title.sprk': 'Jobb módszer a munkára',
  'onboardingCdo.banner.title.phxs': 'A Photoshopot használja az iPaden? Próbálja ki a felhődokumentumokat',
  'onboardingCdo.banner.title.ilst': 'Most már használhatja a felhőalapú dokumentumokat az Illustrator alkalmazásban',
  'onboardingCdo.banner.title.idsn': 'Most már használhatja a felhőalapú dokumentumokat az InDesign alkalmazásban',
  'onboardingCdo.banner.message.sprk': 'Szerkessze a felhődokumentumait bárhol, akár offline is. A módosításokat a rendszer automatikusan menti, és megtekinthetők a dokumentumelőzményekben. Ossza meg őket másokkal, és dolgozzon velük együtt valós időben.',
  'onboardingCdo.banner.message.phxs': 'A felhődokumentumokat a rendszer automatikusan menti az Adobe-felhőbe, miközben Ön dolgozik, így hozzáférhet a fájlokhoz az asztalon és az iPaden is.',
  'onboardingCdo.banner.message.ilst': 'A felhőalapú dokumentumokat az Illustrator alkalmazásban a munka során a rendszer automatikusan menti az Adobe-felhőbe. A verzióelőzményeket is megtekintheti, hogy lássa hogyan haladt a munka.',
  'onboardingCdo.banner.message.idsn': 'Az InDesign felhőalapú dokumentumait munka közben a rendszer automatikusan elmenti az Adobe felhőrendszerébe.',
  'onboardingCdo.banner.linkTitle': 'Bővebben',
  'onboardingCdo.banner.confirm': 'OK',
  'operation.progress.archive': '{batchSize, plural, =1 {1 elem} other {{inProgressNum} törlése ennyiből: {batchSize} elem}}...',
  'operation.progress.unarchive': '{batchSize, plural, =1 {1 elem} other {{inProgressNum} visszaállítása ennyiből: {batchSize} elem}}...',
  'operation.progress.move': '{batchSize, plural, =1 {1 elem} other {{inProgressNum} mozgatása ennyiből: {batchSize} elem}}...',
  'operation.progress.permdelete': '{batchSize, plural, =1 {1 elem} other {{inProgressNum} végleges törlése ennyiből: {batchSize} elem}}...',
  'operation.progress.rename': '{batchSize, plural, =1 {1 elem} other {{inProgressNum} átnevezése ennyiből: {batchSize} elem}}...',
  'operation.progress.create_new_folder': 'Új mappa létrehozása...',
  'operation.progress.duplicate': '{batchSize, plural, =1 {1 elem} other {{inProgressNum} duplikálása ennyiből: {batchSize} elem}}...',
  'operation.progress.user_pin': '{batchSize, plural, =1 {1 elem} other {{inProgressNum} ennyiből: {batchSize} elem}} offline elérhetővé tétele...',
  'operation.progress.user_unpin': '{batchSize, plural, =1 {1 elem} other {{inProgressNum} ennyiből: {batchSize} elem}} kizárólag online elérhetővé tétele...',
  'operation.progress.resolve_sync_error': 'A felhőben elmentett utolsó verzió másolása és visszaállítása...',
  'tooltip.offline.general': 'Internetkapcsolat szükséges.',
  'tooltip.offline.create-new-folder': 'Internetkapcsolat szükséges a mappák létrehozásához.',
  'tooltip.offline.move': 'Internetkapcsolat szükséges az elemek áthelyezéséhez.',
  'tooltip.syncing.disabled': 'Folyamatban lévő szinkronizálás befejezése',
  'tooltip.rename.disabled': 'A kiválasztott dokumentumot nem lehet átnevezni. Kérjük, nyissa meg egy hosztalkalmazásban az átnevezés engedélyezéséhez.',
  'tooltip.rename.disabled.sprk': 'Ezt a fájlt nem lehet átnevezni, amíg meg nem nyitja az XD alkalmazásban.',
  'tooltip.syncSuspended.needsAction': 'A szinkronizálás leállt. A következő lépéshez nyissa meg.',
  'tooltip.syncSuspended.noAction': 'A szinkronizálás leállt. Ez a művelet jelenleg nem engedélyezett.',
  'Recents.title': 'Legutóbbi',
  'Recents.cloudDocTitle': 'CLOUD-DOKUMENTUM',
  'Recents.error.subtext.coreSync': 'A legutóbbi jelenleg nem érhető el, mert a Creative Cloud szinkronizálása nem működik megfelelően.',
  'item.saveForOfflineIconToolTip': 'Ez a dokumentum le lett töltve, és teljes mértékben elérhető offline állapotban.',
  'item.disconnected.cloudonly': 'Nincs kapcsolat. Csatlakozzon újra a dokumentum megnyitásához.',
  'item.coresyncdown.cloudonly': 'Nem lehet betölteni a fájlt. A Creative Cloud frissítése vagy újraindítása esetleg megoldja a problémát.',
  'folder.subtitle': 'MAPPA',
  'review.subtitle': 'VÉLEMÉNYEZÉS',
  'prototype.subtitle': 'PROTOTÍPUS',
  'designspecs.subtitle': 'TERVEZÉSI SPECIFIKÁCIÓK',
  'project.subtitle': 'PROJEKT',
  'library.subtitle': 'KÖNYVTÁR',
  'webLink.subtitle': 'INTERNETES HIVATKOZÁS',
  'abbreviations.fileSize.byte': 'B',
  'abbreviations.fileSize.kilobyte': 'KB',
  'abbreviations.fileSize.megabyte': 'MB',
  'abbreviations.fileSize.gigabyte': 'GB',
  'abbreviations.fileSize.terabyte': 'TB',
  'sam.copyNameFormat': '%@ másolata',
  'cloudsync.quota.title': 'FELHŐALAPÚ TÁRHELY',
  'cloudsync.quota.percentage': '{percentageUsed}%',
  'cloudsync.quota.usage': '{usedCloudQuotaString}/{maxCloudQuotaString} felhasználva',
  'cloudsync.quota.warning': 'A felhőalapú tárhely megtelt. Bővítse a tárhelyet a szinkronizálás folytatásához.',
  'cloudsync.quota.error': 'Tárhely-információ nem áll rendelkezésre...',
  'cloudsync.quota.upgrade': 'Frissítés',
  'cloudsync.status.complete.title': 'Szinkronizálva, biztonsági másolat kész',
  'cloudsync.status.syncing.title': 'A felhőalapú dokumentumok szinkronizálása folyamatban van',
  'cloudsync.status.syncing.descr': '{progress}/{total}',
  'cloudsync.status.offline.title': 'Offline munka',
  'cloudsync.status.offline.descr': 'A mentés helyileg történik. A dokumentumok felhőbe történő szinkronizálása az újbóli csatlakozáskor történik majd meg.',
  'cloudsync.status.disabled.title': 'Szinkronizálás letiltva',
  'cloudsync.status.disabled.descr': 'A mentés helyileg történik. A dokumentumok felhőbe történő szinkronizálása akkor történik meg, amikor tárhely szabadul fel.',
  'cloudsync.item.progress.determinate': '{progress}/{total}',
  'cloudsync.item.progress.indeterminate': 'Szinkronizálás...',
  'cloudsync.item.complete': 'Befejezve',
  'cloudsync.items.header': 'Hálózati tevékenység',
  'cloudsync.alert.title.coresync.down': 'Nem tölthető be',
  'cloudsync.alert.subtext.coresync.down': 'A felhő nem szinkronizál. Győződjön meg arról, hogy a Creative Cloud asztali alkalmazás frissítése megtörtént, vagy próbálja meg újraindítani az alkalmazást.',
  'cloudsync.alert.subtext.coresync.down.learnmore': 'Bővebben',
  'cloudsync.tooltip.offline': 'Kapcsolat megszakítva',
  'cloudsync.tooltip.error': 'Hiba',
  'cloudsync.tooltip.syncing': 'Mentés...',
  'cloudsync.tooltip.default': 'Mentve',
  'cloudsync.singleDoc.offline.title': 'Kapcsolat megszakítva',
  'cloudsync.singleDoc.offline.descr': 'Próbál újracsatlakozni...',
  'cloudsync.singleDoc.offline.timestamp': 'Utolsó szinkronizálás: {time}',
  'cloudsync.singleDoc.error.samInitFail.title': 'A felhő szinkronizálása leállt',
  'cloudsync.singleDoc.error.samInitFail.descr': 'A munka szinkronizálásának folytatásához, kérjük, indítsa újra ezt az alkalmazást.',
  'cloudsync.singleDoc.error.syncSuspended.title': 'A felhő szinkronizálása leállt',
  'cloudsync.singleDoc.error.syncSuspended.descr': 'A munka szinkronizálásának folytatásához, kérjük, indítsa újra ezt az alkalmazást.',
  'cloudsync.singleDoc.error.title': 'Nem tölthető be',
  'cloudsync.singleDoc.error.descr': 'A felhő nem szinkronizál. Győződjön meg arról, hogy a Creative Cloud asztali alkalmazás frissítése megtörtént, vagy próbálja meg újraindítani az alkalmazást.',
  'cloudsync.singleDoc.error.learnMore': 'Bővebben',
  'cloudsync.singleDoc.disabled.quotaExceeded.title': 'A felhőalapú tárhely megtelt',
  'cloudsync.singleDoc.disabled.quotaExceeded.descr': 'A munka szinkronizálásának folytatásához, kérjük, frissítse a Creative Cloud alkalmazást.',
  'cloudsync.singleDoc.syncing.title': 'Mentés...',
  'cloudsync.singleDoc.syncing.descr': 'Folyamatban',
  'cloudsync.singleDoc.disabled.title': 'Nem lehet menteni',
  'cloudsync.singleDoc.disabled.descr': 'Fiókjában elfogyott a tárhely.',
  'cloudsync.singleDoc.complete.title': 'Fájl mentve',
  'cloudsync.singleDoc.complete.timestamp': 'Utolsó szinkronizálás: {time}'
};

/***/ }),

/***/ "/XAQ":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return EventEmitter; });
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
class EventEmitter {
    constructor() {
        this.callbacks = new Map();
    }
    addCallback(type, callback) {
        var _a, _b;
        // Adding new events should create a new array.
        let callbacks = (_b = (_a = this.callbacks.get(type)) === null || _a === void 0 ? void 0 : _a.slice()) !== null && _b !== void 0 ? _b : [];
        callbacks.push(callback);
        this.callbacks.set(type, callbacks);
    }
    emit(type, ...args) {
        // Note that all mutations create new arrays, so all mutations are only going to be handled by the next emit.
        // This behavior matches the `events` module in NodeJS.
        const callbacks = this.callbacks.get(type);
        if (callbacks) {
            callbacks.forEach(fn => {
                fn(...args);
            });
        }
    }
    removeCallback(type, callback) {
        if (!callback) {
            // Just remove the entire array from the map.
            this.callbacks.delete(type);
            return;
        }
        const callbacks = this.callbacks.get(type);
        if (!callbacks) {
            // We don't have an array for this event type.
            return;
        }
        // Always create a new array to avoid calling these methods when the emitting is already in progress.
        const newCallbacks = callbacks.filter(fn => fn !== callback);
        if (newCallbacks.length) {
            this.callbacks.set(type, newCallbacks);
        }
        else {
            this.callbacks.delete(type);
        }
    }
    on(eventType, cb) {
        if (cb) {
            this.addCallback(eventType, cb);
        }
    }
    off(eventType, cb) {
        if (cb) {
            this.removeCallback(eventType, cb);
        }
        else {
            this.removeCallback(eventType);
        }
    }
}


/***/ }),

/***/ "/YLX":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return LEARN_MORE_COLLAB_BETA; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return LEARN_MORE_PUBLISHED_GOURL_TOKEN; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return LEARN_MORE_SPACES; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return LEARN_MORE_CANVAS; });
/* unused harmony export SPACE_UPGRADE_QUOTA */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return SPACE_DELETE_VIEW; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "j", function() { return localizedGoUrl; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "l", function() { return openExternalLinkInNewTab; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "k", function() { return openExternalLink; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return getProjectsUrl; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "i", function() { return getUrlWithProtocol; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return getAsciiUrl; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return getUnicodeUrl; });
/* harmony import */ var _intl_adobe_locales__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("zSDY");
/* harmony import */ var _intl_adobe_locales__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_intl_adobe_locales__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _utils_UXPUtils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("LbGp");
/* harmony import */ var _stores_Settings__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("5u1M");
/* harmony import */ var _utils_stringifyQueries__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("GfC9");
/* harmony import */ var punycode__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("GYWy");
/* harmony import */ var punycode__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(punycode__WEBPACK_IMPORTED_MODULE_4__);





const GOURL_BASE = 'https://www.adobe.com/go';
const LEARN_MORE_COLLAB_BETA = 'collab-beta';
const LEARN_MORE_PUBLISHED_GOURL_TOKEN = 'learn_more_published';
const LEARN_MORE_SPACES = 'learn_more_spaces';
const LEARN_MORE_CANVAS = 'learn_more_canvas';
const SPACE_UPGRADE_QUOTA = 'space_upgrade_quota';
const SPACE_DELETE_VIEW = 'space_delete_view';
const APP_CODE = 'adobedotcom';
function localizedGoUrl(baseToken, locale) {
    let url = `${GOURL_BASE}/${baseToken}`;
    // [CCPROJ-2574] We use the _{countrycode} for goURLs except English, e.g. ko -> kr, zh_hans > cn.
    // Should use adobe-locales library instead of mapping our own.
    // Should not call getAppLocale on 'en', as it will return 'us'.
    let countryCode = '';
    if (!(locale === null || locale === void 0 ? void 0 : locale.includes('en'))) {
        if (locale === null || locale === void 0 ? void 0 : locale.includes('pt')) {
            // getAppLocale incorrectly maps 'pt' > 'pt', but expectation is 'br'
            countryCode = 'br';
        }
        else {
            countryCode = Object(_intl_adobe_locales__WEBPACK_IMPORTED_MODULE_0__["getAppLocale"])(APP_CODE, locale);
        }
    }
    if (countryCode) {
        url = `${url}_${countryCode}`;
    }
    return url;
}
function uxpOpenExternalLink(url) {
    window.require && window.require('uxp').shell.openExternal(url);
}
async function openExternalLinkInNewTab(getUrl) {
    if (_utils_UXPUtils__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].usingUXP()) {
        const url = await getUrl();
        uxpOpenExternalLink(url);
    }
    else {
        // NOTE: safari only allows windows to be opened within the
        // actual click event handler; any async calls to window.open
        // will be blocked by its default pop-up blocker configuration.
        // The workaround is to open the window and hold a reference
        // to it, then set its location once known.
        const handle = window.open('', '_blank');
        if (!handle) {
            throw new Error('Window was not opened; unable to navigate to URL.');
        }
        const url = await getUrl();
        if (url) {
            handle.location.href = url;
        }
        else {
            handle.close();
            throw new Error('Unable to get location for new window.');
        }
    }
}
function openExternalLink(url, inNewTab) {
    if (_utils_UXPUtils__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].usingUXP()) {
        uxpOpenExternalLink(url);
    }
    else {
        const target = inNewTab ? '_blank' : '_self';
        window.open(url, target);
    }
}
function getProjectsUrl(projectUrn, path, query) {
    const url = [_stores_Settings__WEBPACK_IMPORTED_MODULE_2__[/* settings */ "b"].config.ASSETS_WEB, path !== null && path !== void 0 ? path : 'projects', projectUrn].join('/');
    return `${url}${Object(_utils_stringifyQueries__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"])(query)}`;
}
const getUrlWithProtocol = (url) => {
    // URL has HTTP protocol, make it HTTPS
    if (/^http:\/\//i.test(url)) {
        return url.replace('http://', 'https://');
    }
    // URL lacks a protocol, add HTTPS - checking for existence of '://' in string
    else if (!/:\/\//i.test(url)) {
        return `https://${url}`;
    }
    // URL is either already HTTPS or has some unsupported protocol
    // If protocol isn't HTTPS, API will reject it on save
    else {
        return url;
    }
};
const deconstructUrl = (url) => {
    const delimiter = '://';
    const [protocol, domain] = url.split(delimiter);
    return {
        protocol,
        delimiter,
        domain,
    };
};
// Used when taking a URL (safely assumed to be Unicode) from the user/view and transforms it to ASCII/punycode that the backend API supports
// Ex: https://háčkyčárky.cz -> https://xn--hkyrky-ptac70bc.cz
const getAsciiUrl = (unicodeUrl) => {
    const { protocol, delimiter, domain } = deconstructUrl(unicodeUrl);
    return protocol + delimiter + Object(punycode__WEBPACK_IMPORTED_MODULE_4__["toASCII"])(domain);
};
// Used when taking a URL (ASCII/punycode) from the backend API and transforms it to back to the original user provided Unicode representation
// Ex: https://xn--i-7iq.ws/ -> https://i❤.ws
const getUnicodeUrl = (asciiUrl) => {
    const { protocol, delimiter, domain } = deconstructUrl(asciiUrl);
    return protocol + delimiter + Object(punycode__WEBPACK_IMPORTED_MODULE_4__["toUnicode"])(domain);
};


/***/ }),

/***/ "/YfY":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("rect", {
  height: "10",
  rx: "2",
  ry: "2",
  width: "10",
  x: "4",
  y: "6"
}), React.createElement("rect", {
  height: "10",
  rx: "2",
  ry: "2",
  width: "10",
  x: "4",
  y: "20"
}), React.createElement("rect", {
  height: "10",
  rx: "2",
  ry: "2",
  width: "10",
  x: "4",
  y: "34"
}), React.createElement("rect", {
  height: "6",
  rx: "1",
  ry: "1",
  width: "24",
  x: "18",
  y: "8"
}), React.createElement("rect", {
  height: "6",
  rx: "1",
  ry: "1",
  width: "24",
  x: "18",
  y: "22"
}), React.createElement("rect", {
  height: "6",
  rx: "1",
  ry: "1",
  width: "24",
  x: "18",
  y: "36"
}));

/***/ }),

/***/ "/ab2":
/***/ (function(module, exports, __webpack_require__) {

var ciphers = __webpack_require__("iUdu");

var deciphers = __webpack_require__("QihY");

var modes = __webpack_require__("6F8h");

function getCiphers() {
  return Object.keys(modes);
}

exports.createCipher = exports.Cipher = ciphers.createCipher;
exports.createCipheriv = exports.Cipheriv = ciphers.createCipheriv;
exports.createDecipher = exports.Decipher = deciphers.createDecipher;
exports.createDecipheriv = exports.Decipheriv = deciphers.createDecipheriv;
exports.listCiphers = exports.getCiphers = getCiphers;

/***/ }),

/***/ "/ayr":
/***/ (function(module, exports, __webpack_require__) {

var r;

module.exports = function rand(len) {
  if (!r) r = new Rand(null);
  return r.generate(len);
};

function Rand(rand) {
  this.rand = rand;
}

module.exports.Rand = Rand;

Rand.prototype.generate = function generate(len) {
  return this._rand(len);
}; // Emulate crypto API using randy


Rand.prototype._rand = function _rand(n) {
  if (this.rand.getBytes) return this.rand.getBytes(n);
  var res = new Uint8Array(n);

  for (var i = 0; i < res.length; i++) res[i] = this.rand.getByte();

  return res;
};

if (typeof self === 'object') {
  if (self.crypto && self.crypto.getRandomValues) {
    // Modern browsers
    Rand.prototype._rand = function _rand(n) {
      var arr = new Uint8Array(n);
      self.crypto.getRandomValues(arr);
      return arr;
    };
  } else if (self.msCrypto && self.msCrypto.getRandomValues) {
    // IE
    Rand.prototype._rand = function _rand(n) {
      var arr = new Uint8Array(n);
      self.msCrypto.getRandomValues(arr);
      return arr;
    }; // Safari's WebWorkers do not have `crypto`

  } else if (typeof window === 'object') {
    // Old junk
    Rand.prototype._rand = function () {
      throw new Error('Not implemented yet');
    };
  }
} else {
  // Node.js or Web worker with no crypto support
  try {
    var crypto = __webpack_require__(7);

    if (typeof crypto.randomBytes !== 'function') throw new Error('Not supported');

    Rand.prototype._rand = function _rand(n) {
      return crypto.randomBytes(n);
    };
  } catch (e) {}
}

/***/ }),

/***/ "/eQG":
/***/ (function(module, exports, __webpack_require__) {

__webpack_require__("v5Dd");

var $Object = __webpack_require__("WEpk").Object;

module.exports = function getOwnPropertyDescriptor(it, key) {
  return $Object.getOwnPropertyDescriptor(it, key);
};

/***/ }),

/***/ "/h46":
/***/ (function(module, exports, __webpack_require__) {

// https://tc39.github.io/proposal-setmap-offrom/#sec-map.of
__webpack_require__("cHUd")('Map');

/***/ }),

/***/ "/jqd":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2020 Adobe Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Incorporated.
 **************************************************************************/

class ScrollToElementContext {
    static create(value = undefined) {
        ScrollToElementContext._context = react__WEBPACK_IMPORTED_MODULE_0___default.a.createContext(value);
    }
    static getContext(value = undefined) {
        if (!ScrollToElementContext._context) {
            ScrollToElementContext.create(value);
        }
        return ScrollToElementContext._context;
    }
}
ScrollToElementContext._context = undefined;
/* harmony default export */ __webpack_exports__["a"] = (ScrollToElementContext);


/***/ }),

/***/ "/sUK":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("CrhT"),
      24: __webpack_require__("S+N7")
    }
  }));
};

WrappedIcon.displayName = 'Folder';
exports.default = WrappedIcon;

/***/ }),

/***/ "/uzt":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = FieldLabel;

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _LabelBase = _interopRequireDefault(__webpack_require__("7YZ5"));

var _propTypes = _interopRequireDefault(__webpack_require__("17x9"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

const _excluded = ["label", "position", "children", "className", "labelFor", "necessity", "necessityIndicator"];

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

if (false) {} else if (false) {} else {
  __webpack_require__("7Eik");
}

if (true) __webpack_require__("q3FZ");
if (true) __webpack_require__("xsEJ");
if (true) __webpack_require__("SxSS");
if (true) __webpack_require__("krvP");

function FieldLabel(_ref) {
  let {
    label,
    position,
    children,
    className,
    labelFor,
    necessity,
    necessityIndicator
  } = _ref,
      otherProps = _objectWithoutProperties(_ref, _excluded);

  return /*#__PURE__*/_react.default.createElement(_LabelBase.default, _extends({
    label: label,
    className: className,
    necessity: necessity,
    necessityIndicator: necessityIndicator,
    componentName: "FieldLabel",
    labelClassName: (0, _classnames.default)('spectrum-FieldLabel', {
      'spectrum-FieldLabel--left': position === 'left',
      'spectrum-FieldLabel--right': position === 'right'
    }),
    labelFor: labelFor
  }, otherProps), children);
}

FieldLabel.displayName = 'FieldLabel';
FieldLabel.propTypes = {
  /**
   * String to display
   */
  label: _propTypes.default.string.isRequired,

  /**
   * Justification of the label text within its container. Setting this property
   * will situate the label container to the left of the form field, regardless
   * of the property value.
   */
  position: _propTypes.default.oneOf(['left', 'right']),

  /**
   * Custom classname to apply to the label
   */
  className: _propTypes.default.string,

  /**
   * Like in a form, with what input should the label be associated
   */
  labelFor: _propTypes.default.string,

  /**
   * Style for communicating whether the associated input is required or optional.
   */
  necessity: _propTypes.default.oneOf(['required', 'optional']),

  /**
   * 'icon' adds an asterix to the field label if necessity is required.
   * 'label' adds a '(required)' or '(optional)' string to the label depending on the necessity.
   */
  necessityIndicator: _propTypes.default.oneOf(['icon', 'label'])
};
FieldLabel.defaultProps = {
  necessityIndicator: 'icon'
};

/***/ }),

/***/ "/xJe":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return UXPDeeplinkCommandSource; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return ctaEventsMap; });
/* unused harmony export DiscoverPanelCommunication */
/* harmony import */ var src_applications__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("3UBC");
/* harmony import */ var _components_start_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("/0Ih");
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2021 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/


var UXPDeeplinkCommandSource;
(function (UXPDeeplinkCommandSource) {
    UXPDeeplinkCommandSource["inBrowser"] = "helpx-welcome";
    UXPDeeplinkCommandSource["inApp"] = "in-app-welcome";
    UXPDeeplinkCommandSource["discoverView"] = "homeScreenOpenDiscover";
    UXPDeeplinkCommandSource["playlistBrowse"] = "helpx-playlist-browse";
    UXPDeeplinkCommandSource["browseTutorial"] = "helpx-tutorial-browse";
    UXPDeeplinkCommandSource["quickAction"] = "quickAction";
})(UXPDeeplinkCommandSource || (UXPDeeplinkCommandSource = {}));
const ctaEventsMap = {
    [_components_start_constants__WEBPACK_IMPORTED_MODULE_1__[/* recommendationsCtaEvents */ "l"].helpUsing]: UXPDeeplinkCommandSource.inBrowser,
    [_components_start_constants__WEBPACK_IMPORTED_MODULE_1__[/* recommendationsCtaEvents */ "l"].helpKb]: UXPDeeplinkCommandSource.inBrowser,
    [_components_start_constants__WEBPACK_IMPORTED_MODULE_1__[/* recommendationsCtaEvents */ "l"].helpLearn]: UXPDeeplinkCommandSource.inBrowser,
    [_components_start_constants__WEBPACK_IMPORTED_MODULE_1__[/* recommendationsCtaEvents */ "l"].inApp]: UXPDeeplinkCommandSource.inApp,
    [_components_start_constants__WEBPACK_IMPORTED_MODULE_1__[/* recommendationsCtaEvents */ "l"].quickAction]: UXPDeeplinkCommandSource.quickAction,
    [_components_start_constants__WEBPACK_IMPORTED_MODULE_1__[/* recommendationsCtaEvents */ "l"].playlist]: UXPDeeplinkCommandSource.inApp
};
var DiscoverPanelCommunication;
(function (DiscoverPanelCommunication) {
    DiscoverPanelCommunication["HS"] = "discover-panel-in-app-deeplink";
    DiscoverPanelCommunication["RTT"] = "RichToolTips";
})(DiscoverPanelCommunication || (DiscoverPanelCommunication = {}));
class DeeplinkLaunch {
    async launchDiscoverPanelWithDeeplink(tutorial, type, campaignId, variationId) {
        var _a, _b, _c, _d;
        const isQuickAction = type === UXPDeeplinkCommandSource.quickAction;
        const data = (tutorial === null || tutorial === void 0 ? void 0 : tutorial.ctaDeeplinkData) ? {
            source: tutorial.ctaDeeplinkData.source ? tutorial.ctaDeeplinkData.source : type,
            data: {},
        }
            : {
                source: type,
                data: {
                    locale: tutorial.metadata.locale,
                    uuid: tutorial.tutorialUUID,
                    metadata: tutorial.metadata,
                    'content.id': tutorial.aem_id,
                    'content.name': tutorial.metadata.title,
                    ...(isQuickAction && { sampleFile: (_b = (_a = tutorial.metadata) === null || _a === void 0 ? void 0 : _a.assetUrls) === null || _b === void 0 ? void 0 : _b.sampleFile })
                },
            };
        if ((_c = tutorial === null || tutorial === void 0 ? void 0 : tutorial.ctaDeeplinkData) === null || _c === void 0 ? void 0 : _c.data) {
            const { aemID, title, contentModuleType, anchor_ID, anchor_title, metadata, ...rest } = tutorial.ctaDeeplinkData.data;
            data.data = Object.assign({ ...rest }, { metadata }, aemID && { 'content.id': aemID }, title && { 'content.name': title }, contentModuleType && { 'content.type': contentModuleType }, anchor_ID && { anchorId: anchor_ID }, anchor_title && { anchorTitle: anchor_title }, isQuickAction && { sampleFile: (_d = metadata === null || metadata === void 0 ? void 0 : metadata.assetUrls) === null || _d === void 0 ? void 0 : _d.sampleFile });
        }
        const command = {
            type: DiscoverPanelCommunication.HS,
            target: src_applications__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].id,
            data: data,
        };
        // Analytics fields
        command.data.data['exp.campaign_id'] = campaignId;
        command.data.data['exp.variation_id'] = variationId;
        return src_applications__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].openUnifiedPanelDeepLink(command);
    }
    // Generates a command for unified panel to open tutorials with tutorial id only
    // This tutorial can usually be found in the collapsible banner when no recents files are present
    generateDeeplinkSimpleCommand(tutorialId, containerAnalyticsData) {
        var _a;
        const containerAnalyticsParams = ((_a = containerAnalyticsData === null || containerAnalyticsData === void 0 ? void 0 : containerAnalyticsData.eventData) === null || _a === void 0 ? void 0 : _a.containerAnalyticsParams) || containerAnalyticsData;
        const variationId = containerAnalyticsParams === null || containerAnalyticsParams === void 0 ? void 0 : containerAnalyticsParams.variationId;
        const campaignId = containerAnalyticsParams === null || containerAnalyticsParams === void 0 ? void 0 : containerAnalyticsParams.campaignId;
        const command = {
            type: DiscoverPanelCommunication.HS,
            target: src_applications__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].id,
            data: {
                source: UXPDeeplinkCommandSource.inApp,
                data: {
                    'content.id': tutorialId,
                    'exp.campaign_id': campaignId,
                    'exp.variation_id': variationId,
                },
            },
        };
        return command;
    }
}
const deeplinkLaunch = new DeeplinkLaunch();
/* harmony default export */ __webpack_exports__["c"] = (deeplinkLaunch);


/***/ }),

/***/ "/xY8":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXPORTS
__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ upload; });

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__("q1tI");
var react_default = /*#__PURE__*/__webpack_require__.n(react);

// EXTERNAL MODULE: ./node_modules/react-intl-cdo/lib/index.es.js + 1 modules
var index_es = __webpack_require__("VIzJ");

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Icon/js/Icon.js
var Icon = __webpack_require__("trqI");
var Icon_default = /*#__PURE__*/__webpack_require__.n(Icon);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/hosts/Host.ts + 9 modules
var Host = __webpack_require__("Dy/p");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/UXPUtils.ts
var UXPUtils = __webpack_require__("LbGp");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/stores/Settings.ts
var Settings = __webpack_require__("5u1M");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/stores/SharedStore.ts + 6 modules
var SharedStore = __webpack_require__("jmEq");

// EXTERNAL MODULE: ./node_modules/@ccxi/ccac-utilities/dist/index.js
var dist = __webpack_require__("8Ef9");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/JobMonitor/index.ts + 3 modules
var JobMonitor = __webpack_require__("zTWf");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/components/ToastManager.tsx + 1 modules
var ToastManager = __webpack_require__("oSyz");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/api/adobe-content-platform/suggestNames.ts + 1 modules
var suggestNames = __webpack_require__("IvMV");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/api/adobe-content-platform/resolve.ts + 1 modules
var resolve = __webpack_require__("Ove7");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/mimeTypes.tsx
var utils_mimeTypes = __webpack_require__("sYeI");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/mimeTypeMap.ts
var mimeTypeMap = __webpack_require__("k8te");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/getDisplayName.tsx
var getDisplayName = __webpack_require__("500B");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/performance.ts
var performance = __webpack_require__("P5RH");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/images/onboarding/S_Illu_UploadFile.svg
function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}


/* harmony default export */ var S_Illu_UploadFile = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", _extends({
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 72 72"
}, props), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["spaces_svg_icon_gray"] || "spaces_svg_icon_gray",
  d: "M56.58 52.48h-8.24a.75.75 0 0 1 0-1.5h8.24C60.18 51 67 48.76 67 40.36c0-6.47-6.58-10.9-11.33-11.62a.75.75 0 0 1-.5-.31.72.72 0 0 1-.12-.57 10.31 10.31 0 0 0 .18-1.86A12.89 12.89 0 0 0 42.4 13h-.08a14.4 14.4 0 0 0-14.08 10.64.81.81 0 0 1-.35.46.76.76 0 0 1-.57.07 14.25 14.25 0 0 0-3.72-.5c-6.17 0-11.19 4.56-11.19 10.15a8 8 0 0 0 .46 2.6.75.75 0 0 1-.76 1H11.66C7.8 37.38 5 41.51 5 44.29 5 46.77 6.55 51 12.31 51h11.55a.75.75 0 1 1 0 1.5H12.31c-6 0-8.8-4.24-8.8-8.18 0-3.23 3-8.06 7.63-8.39a10.36 10.36 0 0 1-.24-2.08c0-6.42 5.7-11.65 12.69-11.65a15.61 15.61 0 0 1 3.4.38 15.85 15.85 0 0 1 15.32-11h.09A14.37 14.37 0 0 1 56.73 26a10 10 0 0 1-.1 1.44c5.2 1.13 11.86 6 11.86 13 0 8.81-7.12 12.04-11.91 12.04z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["spaces_svg_icon_tint"] || "spaces_svg_icon_tint",
  d: "M37.28 59.73a.74.74 0 0 1-.75-.75V35.56a.75.75 0 0 1 1.5 0V59a.75.75 0 0 1-.75.73z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["spaces_svg_icon_tint"] || "spaces_svg_icon_tint",
  d: "M31 42.2a.74.74 0 0 1-.53-.22.75.75 0 0 1 0-1.06l5.88-5.85a1.36 1.36 0 0 1 1.92 0l5.87 5.85a.75.75 0 0 1 0 1.06.77.77 0 0 1-1.07 0l-5.77-5.75L31.5 42a.74.74 0 0 1-.5.2z"
})));
// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/ProjectAnalytics.ts
var ProjectAnalytics = __webpack_require__("mm/P");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/stores/User.ts
var User = __webpack_require__("CJr9");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/components/ConfirmationDialog.tsx
var ConfirmationDialog = __webpack_require__("FzwA");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/SpacesError.ts
var SpacesError = __webpack_require__("R5sx");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/constants.ts
var constants = __webpack_require__("YVc3");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/actions/upload.tsx






















// Convert File(s) to ccac-utilities' IImportFile(s)
const formattedImportFile = item => ({ data: item });
const formattedImportFiles = items => items.map(item => formattedImportFile(item));
const getSuggestedName = (suggestedNames, name, extension) => {
    let originalNameWithExtension = extension ? `${name}.${extension}` : name;
    return suggestedNames.get(originalNameWithExtension) || originalNameWithExtension;
};
/**
 * Verify if at least one cloud document selected is uploaded successfully
 * @param cloudDocuments: selected items that are cloud documents.
 * @param failedItems: selected items that are eligible but failed to upload
 * @param snapshots: `snapshots` are selected items that are not eligible to upload
 * @returns true if at least one cloud document selected is uploaded successfully
 */
const hasSomeCloudDocumentsUploadedSuccesfully = (cloudDocuments, failedItems, snapshots) => {
    const failedItemNames = failedItems.map(({ name }) => name);
    const snapshotNames = snapshots.map(({ name }) => name);
    return cloudDocuments.some(({ name }) => !failedItemNames.includes(name) && !snapshotNames.includes(name));
};
/**
 * [CCPROJ-5239] A snapshot is a cloud document with essentially the same mimetype as cloud files but the first few
 * bytes of file content of snapshots contain the mimetype embedded in it. File should be uploaded to Spaces only if it
 * is not a snapshot otherwise further use of uploaded snapshot in other workflows (example, copy to `Cloud Documents`)
 * could lead to erroneous behavior.
 *
 * This method is to find out all snapshots from selected items
 *
 * @param items: all selected items
 * @param checkIsSnapshot: ccac-utilities method to check if a file is snapshot
 * @returns array containing snapshots
 */
const findSnapshots = async (items, checkIsSnapshot) => {
    const snapshots = [];
    const maybeSnapshots = items.filter(item => {
        const extension = Object(utils_mimeTypes["a" /* getExtension */])(item.name);
        return constants["e" /* CLOUD_DOCUMENT_EXTENSIONS */].includes(extension);
    });
    if (maybeSnapshots.length) {
        await Promise.all(maybeSnapshots.map(async (item) => {
            const importFilesData = formattedImportFile(item);
            try {
                const isSnapshot = await checkIsSnapshot(importFilesData);
                if (isSnapshot) {
                    snapshots.push(item);
                }
            }
            catch (error) {
                Settings["b" /* settings */].logger.error(`Error calling importStore.isSnapshot ${error}`);
                // Do nothing
            }
        }));
    }
    return snapshots;
};
function upload({ app, urn, onUploadAfter }) {
    const { projectsClient: { jobMonitor }, intl, currentProject, } = app;
    function getIngestData(type, item, timeTaken) {
        var _a, _b, _c, _d, _e, _f;
        let ingestData = {
            env: {
                api: {
                    name: ProjectAnalytics["b" /* EnvApiName */].FILE_ADD.replace(ProjectAnalytics["b" /* EnvApiName */].CONST_FOLDER_URN, (_b = (_a = app.currentFolder) === null || _a === void 0 ? void 0 : _a.id) !== null && _b !== void 0 ? _b : '').replace(ProjectAnalytics["b" /* EnvApiName */].CONST_FILE_NAME, item.name),
                },
            },
            content: {
                id: (_c = currentProject === null || currentProject === void 0 ? void 0 : currentProject.id) !== null && _c !== void 0 ? _c : '',
                author: (_d = currentProject === null || currentProject === void 0 ? void 0 : currentProject.role) !== null && _d !== void 0 ? _d : '',
                type: ProjectAnalytics["a" /* ContentType */].File,
                mimetype: item.name !== undefined ? Object(utils_mimeTypes["a" /* getExtension */])(item.name) : '',
            },
            event: {
                subcategory: ProjectAnalytics["c" /* Subcategory */].Resource,
                subtype: ProjectAnalytics["d" /* Subtype */].add,
                workflow: ProjectAnalytics["f" /* Workflow */].Spaces,
                value: timeTaken,
                org_guid: (_e = User["a" /* default */].getTeamFromId(currentProject === null || currentProject === void 0 ? void 0 : currentProject.teamId)) === null || _e === void 0 ? void 0 : _e.repositoryID,
                type: type,
                cloud_id: item.id,
                context_guid: item.id,
            },
            custom: {
                team_id: (_f = currentProject === null || currentProject === void 0 ? void 0 : currentProject.teamId) !== null && _f !== void 0 ? _f : '',
            },
        };
        if (type === ProjectAnalytics["e" /* Type */].error) {
            // Later on add error data here.
        }
        return ingestData;
    }
    const handleUpload = async (items) => {
        let suggestedNames;
        let startTime = performance["a" /* default */].now();
        const importStore = new dist["b" /* ImportStore */]();
        let platform;
        if (UXPUtils["a" /* default */].usingUXP()) {
            platform = 'UXP';
        }
        importStore.init({
            environment: Settings["b" /* settings */].imsData.environment,
            getAccessToken: SharedStore["d" /* sharedStore */].imsData.fetchToken,
            clientId: Settings["b" /* settings */].config.CLIENT_ID,
            platform,
        });
        const supportedExtensions = importStore.getSupportedConversions();
        // Suggest new name if any of the items' names conflict with existing files
        const path = await Object(resolve["b" /* resolvePathFromId */])(urn);
        if (!path) {
            throw new SpacesError["b" /* SpacesError */]('NO_LINK_PATH_ERROR', `Could not fetch space folder/subfolder path for ${urn}`);
        }
        /**
         *  Put files into categories
         *   - convertAndUploadFiles: supported cloud documents require conversion before upload
         *   - uploadFiles: regular files
         *   - snapshots: non supported cloud documents for upload.
         */
        const snapshots = await findSnapshots(items, async (file) => await importStore.isSnapshot(file));
        const snapshotNames = snapshots.map(({ name }) => name);
        const nonSnapshots = items.filter(({ name }) => !snapshotNames.includes(name));
        const failedItems = [];
        let convertAndUploadFiles = [];
        let uploadFiles = [];
        if (nonSnapshots.length > 0) {
            try {
                suggestedNames = await Object(suggestNames["a" /* default */])(nonSnapshots.map(item => {
                    // `item.name` often includes the extension, e.g. doc1.jpg
                    let [name, extension] = Object(getDisplayName["a" /* default */])(item.name, item.type);
                    // Convert local doc extension to cloud doc equivalent.
                    if (extension && supportedExtensions.includes(extension)) {
                        extension = mimeTypeMap["b" /* localToCloudDocExtensionMap */][extension] || extension;
                    }
                    name = extension ? `${name}.${extension}` : name;
                    return {
                        name,
                        type: item.type,
                    };
                }), path);
            }
            catch (error) {
                return Promise.reject([nonSnapshots, snapshots]);
            }
            ({ convertAndUploadFiles, uploadFiles } = nonSnapshots.reduce((result, item) => {
                const extension = Object(utils_mimeTypes["a" /* getExtension */])(item.name);
                if (supportedExtensions.includes(extension)) {
                    result.convertAndUploadFiles.push(item);
                }
                else {
                    result.uploadFiles.push(item);
                }
                return result;
            }, { convertAndUploadFiles: [], uploadFiles: [] }));
            let uploadFilesPromise = undefined;
            let convertAndUploadFilesPromise = undefined;
            if (uploadFiles.length > 0) {
                try {
                    let data = await importStore.uploadFiles({
                        files: formattedImportFiles(uploadFiles),
                        urn,
                        fetchSuitableName: (name, extension) => getSuggestedName(suggestedNames, name, extension),
                        logAnalytics: () => { },
                    }, {});
                    uploadFilesPromise = data.onComplete;
                }
                catch (error) {
                    failedItems.push(...uploadFiles);
                }
            }
            if (convertAndUploadFiles.length > 0) {
                try {
                    let data = await importStore.convertAndUploadFiles({
                        files: formattedImportFiles(convertAndUploadFiles),
                        urn,
                        fetchSuitableName: (name, extension) => getSuggestedName(suggestedNames, name, extension),
                        logAnalytics: () => { },
                    }, {});
                    convertAndUploadFilesPromise = data.onComplete;
                }
                catch (error) {
                    failedItems.push(...convertAndUploadFiles);
                }
            }
            let promises = [uploadFilesPromise, convertAndUploadFilesPromise].filter(Boolean);
            // ccac-utilities library always returns the response. Failed item response data has an 'error' property.
            await Promise.all(promises).then(responses => {
                responses.forEach(files => {
                    const responseFailedItems = files.filter(file => file.error);
                    failedItems.push(...responseFailedItems);
                });
            });
        }
        const nonUploadedItems = [...failedItems, ...snapshots];
        const somethingSucceeded = items.length - nonUploadedItems.length > 0;
        const everythingSucceeded = nonUploadedItems.length === 0;
        if (somethingSucceeded) {
            const succeededItems = items.filter(n => !nonUploadedItems.includes(n));
            onUploadAfter === null || onUploadAfter === void 0 ? void 0 : onUploadAfter(succeededItems);
            SharedStore["d" /* sharedStore */].updateActionStatus({
                actionType: SharedStore["b" /* ActionType */].upload,
                items: succeededItems.map(({ name, size }) => {
                    const statusItem = { name };
                    // Only assign size to statusItem on hosts that support it
                    if (size) {
                        statusItem.size = size.toString();
                    }
                    return statusItem;
                }),
                state: everythingSucceeded ? SharedStore["a" /* ActionState */].succeeded : SharedStore["a" /* ActionState */].partiallySucceeded,
            });
            if (hasSomeCloudDocumentsUploadedSuccesfully(convertAndUploadFiles, failedItems, snapshots) &&
                !(app === null || app === void 0 ? void 0 : app.disableSaveToCloudNotification)) {
                app.projectsClient.showModal(react_default.a.createElement(ConfirmationDialog["a" /* default */], { onConfirm: () => {
                        app === null || app === void 0 ? void 0 : app.setDisableSaveToCloudNotification(true);
                    }, actionType: "saveToCloud", cancellable: false, confirmLabel: "button.okay", variant: "information" }));
            }
        }
        if (everythingSucceeded) {
            Object(ProjectAnalytics["j" /* trackForEach */])(items, (item, idx, arr) => getIngestData(ProjectAnalytics["e" /* Type */].success, item, performance["a" /* default */].now() - startTime));
            return Promise.resolve(items);
        }
        else {
            Object(ProjectAnalytics["j" /* trackForEach */])(nonUploadedItems, (item, idx, arr) => getIngestData(ProjectAnalytics["e" /* Type */].error, item, performance["a" /* default */].now() - startTime));
            SharedStore["d" /* sharedStore */].updateActionStatus({
                actionType: SharedStore["b" /* ActionType */].upload,
                items: [],
                state: SharedStore["a" /* ActionState */].failed,
            });
            return Promise.reject([failedItems, snapshots]);
        }
    };
    const doUpload = async (items) => {
        if (!(items === null || items === void 0 ? void 0 : items.length)) {
            return;
        }
        try {
            await (currentProject === null || currentProject === void 0 ? void 0 : currentProject.refreshFolderState(app));
            const promise = handleUpload(items);
            const job = new JobMonitor["a" /* Job */](promise, items);
            const queue = new JobMonitor["c" /* JobQueue */]({
                completed: (completedItems) => {
                    return {
                        message: intl.formatMessage({ id: 'upload.success' }, { count: completedItems.length }),
                        options: {
                            closable: true,
                            variant: 'success',
                        },
                    };
                },
                error: (allItems, nonUploadedItems) => {
                    const [failedItems, snapshots] = nonUploadedItems;
                    const nonUploadedItemsCount = failedItems.length + (snapshots === undefined ? 0 : snapshots.length);
                    if (snapshots !== undefined) {
                        if (items.length === 1 && snapshots.length === 1) {
                            // [CCPROJ-5239] If the only file is a snapshot > Show message: `This item is not supported`
                            return {
                                message: intl.formatMessage({ id: 'upload.failure.snapshot' }),
                                options: {
                                    closable: true,
                                    variant: 'error',
                                },
                            };
                        }
                    }
                    if (nonUploadedItemsCount === items.length) {
                        // All failed
                        return {
                            message: intl.formatMessage({ id: 'upload.failure' }, { count: nonUploadedItemsCount }),
                            options: {
                                closable: true,
                                variant: 'error',
                            },
                        };
                    }
                    else {
                        // Partial failure
                        return {
                            message: intl.formatMessage({
                                id: 'upload.failure.partial',
                            }),
                            options: {
                                closable: true,
                                variant: 'error',
                            },
                        };
                    }
                },
                pending: (pendingItems) => {
                    return {
                        message: (react_default.a.createElement(ToastManager["a" /* LoadingMessage */], null, intl.formatMessage({ id: 'upload.start' }, { count: pendingItems.length }))),
                        options: {
                            closable: true,
                            timeout: 0,
                            variant: undefined,
                        },
                    };
                },
            });
            queue.add(job);
            jobMonitor.add('upload', queue);
        }
        catch (err) {
            console.error(err);
        }
    };
    return {
        id: 'upload',
        icon: (react_default.a.createElement(Icon_default.a, { size: "M" },
            react_default.a.createElement(S_Illu_UploadFile, null))),
        emptyStateIcon: react_default.a.createElement(S_Illu_UploadFile, null),
        iconOnly: false,
        name: react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "button.upload" }),
        quiet: true,
        supportsMultiple: false,
        variant: 'action',
        onClick: async () => {
            let importFiles;
            if (Host["a" /* default */].showFilePicker) {
                importFiles = await Host["a" /* default */].showFilePicker();
                doUpload(importFiles);
            }
            SharedStore["d" /* sharedStore */].updateActionStatus({
                actionType: SharedStore["b" /* ActionType */].upload,
                items: importFiles,
                state: SharedStore["a" /* ActionState */].start,
            });
        },
    };
}


/***/ }),

/***/ 0:
/***/ (function(module, exports, __webpack_require__) {

module.exports = __webpack_require__("HvWA");


/***/ }),

/***/ "01TH":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("path", {
  d: "M37 16.941a8.657 8.657 0 0 0 .14-1.483c0-5.253-3.624-9.936-9.422-9.936-4.906 0-8.2 3.993-9.348 8.113a9.015 9.015 0 0 0-2.583-.379 7.91 7.91 0 0 0-7.876 7.906 6.815 6.815 0 0 0 .327 2.068c-.11-.008-.215-.03-.327-.03-2.83 0-5.357 2.057-5.357 4.689 0 2.842 2.5 4.111 4.984 4.111H22V21a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v11h11.535l1.5-.086c3.423-.63 6.386-1.385 6.386-5.914 0-4.875-4.93-8.478-8.421-9.059zM31.586 38H26v-6h-4v6h-5.586a1 1 0 0 0-.707 1.707L24 48l8.293-8.293A1 1 0 0 0 31.586 38z"
}));

/***/ }),

/***/ "03+3":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("path", {
  d: "M16 2a16 16 0 1 0 16 16A16 16 0 0 0 16 2zm10 17a1 1 0 0 1-1 1h-7v7a1 1 0 0 1-1 1h-2a1 1 0 0 1-1-1v-7H7a1 1 0 0 1-1-1v-2a1 1 0 0 1 1-1h7V9a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v7h7a1 1 0 0 1 1 1z"
}));

/***/ }),

/***/ "03A+":
/***/ (function(module, exports, __webpack_require__) {

var baseIsArguments = __webpack_require__("JTzB"),
    isObjectLike = __webpack_require__("ExA7");
/** Used for built-in method references. */


var objectProto = Object.prototype;
/** Used to check objects for own properties. */

var hasOwnProperty = objectProto.hasOwnProperty;
/** Built-in value references. */

var propertyIsEnumerable = objectProto.propertyIsEnumerable;
/**
 * Checks if `value` is likely an `arguments` object.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is an `arguments` object,
 *  else `false`.
 * @example
 *
 * _.isArguments(function() { return arguments; }());
 * // => true
 *
 * _.isArguments([1, 2, 3]);
 * // => false
 */

var isArguments = baseIsArguments(function () {
  return arguments;
}()) ? baseIsArguments : function (value) {
  return isObjectLike(value) && hasOwnProperty.call(value, 'callee') && !propertyIsEnumerable.call(value, 'callee');
};
module.exports = isArguments;

/***/ }),

/***/ "06Vj":
/***/ (function(module) {

module.exports = JSON.parse("{\"(optional)\":\"（オプション）\",\"(required)\":\"（必須）\"}");

/***/ }),

/***/ "07nh":
/***/ (function(module) {

module.exports = JSON.parse("{\"(optional)\":\"(необов’язково)\",\"(required)\":\"(обов’язково)\"}");

/***/ }),

/***/ "0Cz8":
/***/ (function(module, exports, __webpack_require__) {

var ListCache = __webpack_require__("Xi7e"),
    Map = __webpack_require__("ebwN"),
    MapCache = __webpack_require__("e4Nc");
/** Used as the size to enable large array optimizations. */


var LARGE_ARRAY_SIZE = 200;
/**
 * Sets the stack `key` to `value`.
 *
 * @private
 * @name set
 * @memberOf Stack
 * @param {string} key The key of the value to set.
 * @param {*} value The value to set.
 * @returns {Object} Returns the stack cache instance.
 */

function stackSet(key, value) {
  var data = this.__data__;

  if (data instanceof ListCache) {
    var pairs = data.__data__;

    if (!Map || pairs.length < LARGE_ARRAY_SIZE - 1) {
      pairs.push([key, value]);
      this.size = ++data.size;
      return this;
    }

    data = this.__data__ = new MapCache(pairs);
  }

  data.set(key, value);
  this.size = data.size;
  return this;
}

module.exports = stackSet;

/***/ }),

/***/ "0GNN":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("path", {
  d: "M32.1 24.1A11.9 11.9 0 1 0 44 36a11.9 11.9 0 0 0-11.9-11.9zM41.025 36a8.859 8.859 0 0 1-1.663 5.158l-12.42-12.42A8.9 8.9 0 0 1 41.025 36zm-17.85 0a8.858 8.858 0 0 1 1.663-5.158l12.42 12.42A8.9 8.9 0 0 1 23.175 36zm-6.975.1A15.777 15.777 0 0 1 22 23.746V7.155a.931.931 0 0 0-1.542-.762l-9.8 9.154a2.013 2.013 0 0 1-1.283.46L2 16.013A1.994 1.994 0 0 0 0 18v12.013A1.994 1.994 0 0 0 2 32h7.375a2 2 0 0 1 1.279.455l5.634 5.313A15.949 15.949 0 0 1 16.2 36.1z"
}));

/***/ }),

/***/ "0SeZ":
/***/ (function(module) {

module.exports = JSON.parse("{\"close\":\"Fechar\",\"error\":\"Erro\",\"info\":\"Informação\",\"success\":\"Sucesso\",\"warning\":\"Aviso\"}");

/***/ }),

/***/ "0XuU":
/***/ (function(module, exports, __webpack_require__) {

module.exports = __webpack_require__("43KI").Transform;

/***/ }),

/***/ "0Y3e":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _autobindDecorator = _interopRequireDefault(__webpack_require__("gKdT"));

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _createId = _interopRequireDefault(__webpack_require__("b7KY"));

var _DialogHeader = _interopRequireDefault(__webpack_require__("O6rX"));

var _filterDOMProps = _interopRequireDefault(__webpack_require__("Cv/Q"));

var _propTypes = _interopRequireDefault(__webpack_require__("17x9"));

var _react = _interopRequireWildcard(__webpack_require__("q1tI"));

var _FocusManager = __webpack_require__("3C4i");

__webpack_require__("lr4x");

const _excluded = ["variant", "placement", "open", "title", "children", "className", "isDialog", "trapFocus", "tabIndex", "id", "aria-label", "aria-labelledby", "aria-describedby"];

var _class, _class2, _temp;

function _getRequireWildcardCache(nodeInterop) {
  if (typeof WeakMap !== "function") return null;
  var cacheBabelInterop = new WeakMap();
  var cacheNodeInterop = new WeakMap();
  return (_getRequireWildcardCache = function (nodeInterop) {
    return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
  })(nodeInterop);
}

function _interopRequireWildcard(obj, nodeInterop) {
  if (!nodeInterop && obj && obj.__esModule) {
    return obj;
  }

  if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
    return {
      default: obj
    };
  }

  var cache = _getRequireWildcardCache(nodeInterop);

  if (cache && cache.has(obj)) {
    return cache.get(obj);
  }

  var newObj = {};
  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;

  for (var key in obj) {
    if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
      var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;

      if (desc && (desc.get || desc.set)) {
        Object.defineProperty(newObj, key, desc);
      } else {
        newObj[key] = obj[key];
      }
    }
  }

  newObj.default = obj;

  if (cache) {
    cache.set(obj, newObj);
  }

  return newObj;
}

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

if (false) {} else if (false) {} else {
  __webpack_require__("EyVO");
}

if (true) __webpack_require__("zEGS");
if (true) __webpack_require__("jhXl");
if (true) __webpack_require__("Pbsi");
if (true) __webpack_require__("5Azs");

if (false) {} else if (false) {} else {
  __webpack_require__("3Bdy");
}

if (true) __webpack_require__("0YIG");
if (true) __webpack_require__("+Jno");
if (true) __webpack_require__("XPLw");
if (true) __webpack_require__("xEce");

let Popover = (0, _autobindDecorator.default)(_class = (_temp = _class2 = class Popover extends _react.Component {
  constructor(props, context) {
    super(props, context);
    this.defaultId = (0, _createId.default)();
  }

  componentDidMount() {
    if (this.props.trapFocus) {
      this._trapFocusTimeout = requestAnimationFrame(() => {
        if (this.popoverRef && !this.popoverRef.contains(document.activeElement)) {
          this.popoverRef.focus();
        }
      });
    }
  }

  componentWillUnmount() {
    if (this._trapFocusTimeout) {
      cancelAnimationFrame(this._trapFocusTimeout);
    }
  }

  onFocus(e) {
    if (this.props.onFocus) {
      this.props.onFocus(e);
    }

    if (this.props.trapFocus && e.target === this.popoverRef && !this.popoverRef.contains(e.relatedTarget)) {
      (0, _FocusManager.trapFocus)(this, e);
    }
  }

  onKeyDown(e) {
    if (this.props.onKeyDown) {
      this.props.onKeyDown(e); // Do nothing if stopPropagation has been called on event after onKeyDown prop executes.

      if (e.isPropagationStopped && e.isPropagationStopped()) {
        return;
      }
    }

    if (this.props.trapFocus) {
      (0, _FocusManager.trapFocus)(this, e);
    }
  }

  render() {
    const _this$props = this.props,
          {
      variant,
      placement,
      open,
      title,
      children,
      className,
      isDialog = true,
      // private. for use only by Menu.
      trapFocus,
      tabIndex = null,
      id = this.defaultId,
      'aria-label': ariaLabel,
      'aria-labelledby': ariaLabelledby,
      'aria-describedby': ariaDescribedby
    } = _this$props,
          otherProps = _objectWithoutProperties(_this$props, _excluded);

    delete otherProps.target;
    let content = isDialog ? /*#__PURE__*/_react.default.createElement("div", {
      className: "spectrum-Dialog-content",
      role: "presentation",
      id: `${id}-content`
    }, children) : children;
    return (
      /*#__PURE__*/
      // eslint-disable-next-line jsx-a11y/no-static-element-interactions
      _react.default.createElement("div", _extends({
        ref: p => this.popoverRef = p,
        className: (0, _classnames.default)('spectrum-Popover', // 'react-spectrum-Popover', //animations not yet supported in UXP, causing the drop down to move
        `spectrum-Popover--${placement.split(' ')[0]}`, {
          'spectrum-Popover--withTip': isDialog,
          'spectrum-Popover--dialog': isDialog,
          [`spectrum-Dialog--${variant}`]: isDialog,
          'is-open': open
        }, className),
        role: isDialog ? 'dialog' : 'presentation',
        id: id,
        "aria-label": ariaLabel,
        "aria-labelledby": ariaLabelledby || (isDialog && title && !ariaLabel ? `${id}-heading` : null),
        "aria-describedby": ariaDescribedby || (isDialog && title && children ? `${id}-content` : null),
        "data-testid": "popover"
      }, (0, _filterDOMProps.default)(otherProps), {
        onFocus: this.onFocus,
        onKeyDown: this.onKeyDown,
        tabIndex: trapFocus && tabIndex === null ? 1 : tabIndex
      }), isDialog && title && /*#__PURE__*/_react.default.createElement(_DialogHeader.default, {
        id: `${id}-heading`,
        title: title,
        variant: variant
      }), content, isDialog && this.renderTip())
    );
  }

  renderTip() {
    return /*#__PURE__*/_react.default.createElement("div", {
      className: "spectrum-Popover-tip",
      style: this.props.arrowStyle,
      "aria-hidden": "true",
      "data-testid": "tip"
    });
  }

}, _class2.propTypes = {
  /**
   * The variant will affect color and add an icon.
   */
  variant: _propTypes.default.oneOf(['default', 'error']),

  /**
   * The position of the popover. If used with overlay trigger and there isn't enough room
   * for the tooltip in that position, it will make a limited attempt to find a new position.
   */
  placement: _propTypes.default.oneOf(['bottom', 'bottom left', 'bottom right', 'top', 'top left', 'top right', 'left', 'left top', 'left bottom', 'right', 'right top', 'right bottom']),

  /**
   * Whether the popover is opened.
   */
  open: _propTypes.default.bool,

  /**
   * The title of the popover.
   */
  title: _propTypes.default.node,

  /**
   * The css class name of the popover.
   */
  className: _propTypes.default.string,

  /**
   * Whether the focus should be trapped.
   */
  trapFocus: _propTypes.default.bool
}, _class2.defaultProps = {
  variant: 'default',
  placement: 'bottom',
  open: true,
  trapFocus: true
}, _temp)) || _class;

exports.default = Popover;
Popover.displayName = 'Popover';

/***/ }),

/***/ "0YXm":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2019 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/

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 __());
  };
}();

var __importDefault = this && this.__importDefault || function (mod) {
  return mod && mod.__esModule ? mod : {
    "default": mod
  };
};

Object.defineProperty(exports, "__esModule", {
  value: true
});

__webpack_require__("cnSC");

var RequestProcessor_1 = __importDefault(__webpack_require__("HyxP"));
/**
 * Handles service-specific response processing for cloud service and acp.local interaction
 */


var PutAssetRequestProcessor =
/** @class */
function (_super) {
  __extends(PutAssetRequestProcessor, _super);

  function PutAssetRequestProcessor() {
    return _super !== null && _super.apply(this, arguments) || this;
  }

  PutAssetRequestProcessor.urlRegex = new RegExp("/cloud-content|/files|/id/");
  PutAssetRequestProcessor.method = ['PUT'];
  return PutAssetRequestProcessor;
}(RequestProcessor_1.default);

exports.default = PutAssetRequestProcessor;

/***/ }),

/***/ "0cit":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


const inherits = __webpack_require__("P7XM");

function Reporter(options) {
  this._reporterState = {
    obj: null,
    path: [],
    options: options || {},
    errors: []
  };
}

exports.Reporter = Reporter;

Reporter.prototype.isError = function isError(obj) {
  return obj instanceof ReporterError;
};

Reporter.prototype.save = function save() {
  const state = this._reporterState;
  return {
    obj: state.obj,
    pathLen: state.path.length
  };
};

Reporter.prototype.restore = function restore(data) {
  const state = this._reporterState;
  state.obj = data.obj;
  state.path = state.path.slice(0, data.pathLen);
};

Reporter.prototype.enterKey = function enterKey(key) {
  return this._reporterState.path.push(key);
};

Reporter.prototype.exitKey = function exitKey(index) {
  const state = this._reporterState;
  state.path = state.path.slice(0, index - 1);
};

Reporter.prototype.leaveKey = function leaveKey(index, key, value) {
  const state = this._reporterState;
  this.exitKey(index);
  if (state.obj !== null) state.obj[key] = value;
};

Reporter.prototype.path = function path() {
  return this._reporterState.path.join('/');
};

Reporter.prototype.enterObject = function enterObject() {
  const state = this._reporterState;
  const prev = state.obj;
  state.obj = {};
  return prev;
};

Reporter.prototype.leaveObject = function leaveObject(prev) {
  const state = this._reporterState;
  const now = state.obj;
  state.obj = prev;
  return now;
};

Reporter.prototype.error = function error(msg) {
  let err;
  const state = this._reporterState;
  const inherited = msg instanceof ReporterError;

  if (inherited) {
    err = msg;
  } else {
    err = new ReporterError(state.path.map(function (elem) {
      return '[' + JSON.stringify(elem) + ']';
    }).join(''), msg.message || msg, msg.stack);
  }

  if (!state.options.partial) throw err;
  if (!inherited) state.errors.push(err);
  return err;
};

Reporter.prototype.wrapResult = function wrapResult(result) {
  const state = this._reporterState;
  if (!state.options.partial) return result;
  return {
    result: this.isError(result) ? null : result,
    errors: state.errors
  };
};

function ReporterError(path, msg) {
  this.path = path;
  this.rethrow(msg);
}

inherits(ReporterError, Error);

ReporterError.prototype.rethrow = function rethrow(msg) {
  this.message = msg + ' at: ' + (this.path || '(shallow)');
  if (Error.captureStackTrace) Error.captureStackTrace(this, ReporterError);

  if (!this.stack) {
    try {
      // IE only adds stack when thrown
      throw new Error(this.message);
    } catch (e) {
      this.stack = e.stack;
    }
  }

  return this;
};

/***/ }),

/***/ "0cst":
/***/ (function(module) {

module.exports = JSON.parse("{\"a11y.button.canvases\":\"[H5] _ĆČPrõj_{name}\",\"a11y.button.libraries\":\"[H6] _ĆČPrõj_{name}, library\",\"a11y.button.listGridToggle\":\"[H7] _ĆČPrõj_view toggle, {toggledView, select, grid {grid} list {list}} view\",\"a11y.button.project\":\"[H8] _ĆČPrõj_{name}, project\",\"a11y.button.published\":\"[H9] _ĆČPrõj_{name}, {extension}\",\"a11y.button.selectFolder\":\"[H+] _ĆČPrõj_Select folder\",\"a11y.button.working\":\"[H/] _ĆČPrõj_{name}, {extension}, modified {modified}\",\"a11y.strings.folder\":\"[IA] _ĆČPrõj_folder\",\"header.action.newProject\":\"[H] _ĆČPrõj_New project\",\"header.action.newLibrary\":\"[Fa] _ĆČPrõj_New library\",\"header.action.browseAll\":\"[Cd] _ĆČPrõj_Browse all\",\"header.Name\":\"[E] _ĆČPrõj_Name\",\"header.Size\":\"Size\",\"header.Sharing\":\"[BD] _ĆČPrõj_Members\",\"header.Team\":\"[HI] _ĆČPrõj_Workspace\",\"header.DateModified\":\"[D] _ĆČPrõj_Modified\",\"header.DateCreated\":\"[C] _ĆČPrõj_Created\",\"header.Status\":\"[C4] _ĆČPrõj_Favorited\",\"header.SortBy\":\"[G] _ĆČPrõj_Sort by\",\"header.sort.label\":\"[Hu] _ĆČPrõj_Sort\",\"header.ChangeSortDirection\":\"[Cx] _ĆČPrõj_Change sort direction to\",\"header.SortBy.asc\":\"[Cy] _ĆČPrõj_Ascending\",\"header.SortBy.desc\":\"[Cz] _ĆČPrõj_Descending\",\"header.selectAll\":\"[BL] _ĆČPrõj_Select all\",\"header.reverseOrder\":\"[FA] _ĆČPrõj_Reverse order\",\"header.showCompatible\":\"[FV] _ĆČPrõj_Compatible files\",\"header.showEverything\":\"[FW] _ĆČPrõj_Everything\",\"product.illustrator.web\":\"[F6] _ĆČPrõj_Illustrator Web (Beta)\",\"product.photoshop.web\":\"[F7] _ĆČPrõj_Photoshop Web (Beta)\",\"status.followed\":\"[C6] _ĆČPrõj_Yes\",\"status.unfollowed\":\"[ED] _ĆČPrõj_No\",\"team.usm.defaultName\":\"[FK] _ĆČPrõj_Workspace {name}\",\"space.access.private.description\":\"[FP] _ĆČPrõj_Only invited people\",\"space.access.private.tooltip\":\"[Hn] _ĆČPrõj_Only people who have been invited have access to this project\",\"space.access.team.description\":\"[FQ] _ĆČPrõj_Anyone in the workspace and those invited\",\"space.access.team.tooltip\":\"[Ho] _ĆČPrõj_Anyone within \\\"{team}\\\" has access to this project\",\"yourProjects.title\":\"[X] _ĆČPrõj_Projects\",\"yourProjects.librariesTab.title\":\"[Fe] _ĆČPrõj_Team libraries\",\"yourProjects.empty.spaces\":\"[HC] _ĆČPrõj_Create more projects and invite more workspace members\",\"browseAll.title\":\"[C1] _ĆČPrõj_Browse all\",\"yourFiles.title\":\"[g] _ĆČPrõj_Your documents\",\"yourLibraries.title\":\"[q] _ĆČPrõj_Libraries\",\"yourLibraries.metadata\":\"[B/] _ĆČPrõj_LIBRARY\",\"canvas.metadata\":\"[G7] _ĆČPrõj_CANVAS\",\"projectInfo.action.view\":\"[Hh] _ĆČPrõj_View info\",\"projectInfo.action.edit\":\"[Hm] _ĆČPrõj_Edit project\",\"projectInfo.empty.cta\":\"[v] _ĆČPrõj_Create new project\",\"projectInfo.empty.description\":\"[w] _ĆČPrõj_Creative Cloud Projects simplify finding, organizing, sharing, and decision-making, putting everything you need for your creative projects all in one place.\",\"projectInfo.empty.heading\":\"[x] _ĆČPrõj_More creating, less catching up.\",\"projectInfo.error.description\":\"[Bm] _ĆČPrõj_Please try again later\",\"projectInfo.error.heading\":\"[Bl] _ĆČPrõj_Can’t load {section}\",\"projectInfo.new.error.title\":\"[B1] _ĆČPrõj_Can’t create new project\",\"projectInfo.new.noPermission.description\":\"[R] _ĆČPrõj_Contact your admin for more info.\",\"projectInfo.title.create\":\"[Hi] _ĆČPrõj_NEW PROJECT\",\"projectInfo.title.edit\":\"[Hj] _ĆČPrõj_EDIT PROJECT\",\"projectInfo.title.view\":\"[Hk] _ĆČPrõj_PROJECT INFO\",\"projectInfo.access.title\":\"[FO] _ĆČPrõj_Who can edit this project\",\"projectInfo.access.warning\":\"[Hl] _ĆČPrõj_Some members may lose access to the project if you change the permission to \\\"Only invited people\\\".\",\"projectInfo.organization\":\"[Cp] _ĆČPrõj_Organization\",\"projectInfo.organization.placeholder\":\"[Cq] _ĆČPrõj_Select one\",\"projectInfo.description\":\"[P] _ĆČPrõj_Description\",\"textField.invalid.characters\":\"[IO] _ĆČPrõj_Names can’t contain the following characters: \\\\\\\\ / * ? \\\" | : < >\",\"textField.invalid.duplicateName\":\"[IP] _ĆČPrõj_There’s already a project with this name in this organization.\",\"textField.invalid.duplicateName.space\":\"[I7] _ĆČPrõj_There’s already a project with this name in this workspace.\",\"textField.invalid.duplicateName.team\":\"[I8] _ĆČPrõj_There’s already a workspace with this name in this organization.\",\"textField.invalid.empty\":\"[IQ] _ĆČPrõj_Name must not be blank\",\"textField.invalid.generic\":\"[IR] _ĆČPrõj_Invalid name\",\"textField.invalid.length\":\"[IS] _ĆČPrõj_Names can’t be longer than 50 characters\",\"textField.invalid.nameEndsWithDot\":\"[IT] _ĆČPrõj_Names can’t end with a period\",\"textField.invalid.offline\":\"[IU] _ĆČPrõj_Reconnect to access all of your workspaces and projects. To view local files from your projects, go to Home.\",\"projectInfo.textField.placeholder\":\"[V] _ĆČPrõj_Name this project\",\"projectInfo.team\":\"[U] _ĆČPrõj_Workspace\",\"projectInfo.description.placeholder\":\"[Q] _ĆČPrõj_Ex: Files, feedback, and reference materials for the client project\",\"projectInfo.description.invalidLength\":\"[JG] _ĆČPrõj_Description can’t be longer than 1000 characters\",\"projectInfo.toast.success.new\":\"[i] _ĆČPrõj_Successfully created project: {name}\",\"projectInfo.toast.success.update\":\"[h] _ĆČPrõj_Successfully updated project: {name}\",\"projectInfo.toast.error.generic\":\"[d] _ĆČPrõj_Failed to {create, select, true {create} other {edit}} project\",\"team.empty.heading\":\"[Gq] _ĆČPrõj_Projects keep everyone on the same page\",\"team.empty.description\":\"[Gp] _ĆČPrõj_Tired of getting locked out of files, managing confusion about versions, and emailing screenshots for review? Use spaces to organize projects, collect resources and feedback, and share files the whole team needs to work on.\",\"team.empty.createSpace\":\"[Go] _ĆČPrõj_Create a project\",\"team.empty.inviteMembers\":\"[Gr] _ĆČPrõj_Invite members\",\"team.empty.startHere\":\"[Gs] _ĆČPrõj_START HERE\",\"team.create.success\":\"[Ib] _ĆČPrõj_Successfully created workspace: {name}\",\"team.create.error.generic\":\"[Ia] _ĆČPrõj_Failed to create workspace\",\"team.edit.success\":\"[Id] _ĆČPrõj_Successfully updated workspace: {name}\",\"team.edit.error.generic\":\"[Ic] _ĆČPrõj_Failed to update workspace\",\"team.archive.success\":\"[IZ] _ĆČPrõj_{count, plural, =1 {# workspace} other {# workspaces}} deleted\",\"team.archive.error.generic\":\"[IY] _ĆČPrõj_Can’t delete {count, plural, =1 {# workspace} other {# workspaces}}\",\"team.error.generic\":\"[IH] _ĆČPrõj_Sorry, something went wrong.\",\"project1Up.action.projectInfo\":\"[I] _ĆČPrõj_View info\",\"project1up.region.space.ariaLabel\":\"[ID] _ĆČPrõj_{projectName}, project\",\"project1Up.section.libraries\":\"[BM] _ĆČPrõj_Libraries\",\"project1Up.section.libraries.empty.cta\":\"[BN] _ĆČPrõj_Add Creative Cloud Libraries\",\"project1Up.section.libraries.empty.description\":\"[BO] _ĆČPrõj_Add links to libraries that you need for your work.\",\"project1Up.section.libraries.empty.heading\":\"[BP] _ĆČPrõj_Bring everything together in one place\",\"project1Up.section.filter\":\"[E6] _ĆČPrõj_Filter\",\"project1Up.section.filter.label\":\"[Hv] _ĆČPrõj_Filter by keyword\",\"project1Up.section.filter.enterKeyword\":\"[FY] _ĆČPrõj_Enter keyword\",\"project1Up.section.filterFiles.empty.heading\":\"[E8] _ĆČPrõj_No results match the selected Filter\",\"project1Up.section.compatibleFiles.empty.heading\":\"[HA] _ĆČPrõj_No compatible files in this project\",\"project1Up.section.workingFiles\":\"[K] _ĆČPrõj_Working files\",\"project1Up.section.workingFiles.empty.addFiles\":\"[EF] _ĆČPrõj_Add files\",\"project1Up.section.workingFiles.empty.createFolder\":\"[EE] _ĆČPrõj_Create new folder\",\"project1Up.section.workingFiles.empty.description\":\"[t] _ĆČPrõj_Iterate on projects and collaborate with other members.\",\"project1Up.section.workingFiles.empty.heading\":\"[u] _ĆČPrõj_Work on what you want when you need to\",\"project1Up.section.published\":\"[J] _ĆČPrõj_Published\",\"project1Up.section.published.empty.cta\":\"[BQ] _ĆČPrõj_How to publish links\",\"project1Up.section.published.empty.description\":\"[BR] _ĆČPrõj_Send view-only links to get feedback from the right people at the right time.\",\"project1Up.section.published.empty.description.readonly\":\"[FL] _ĆČPrõj_When someone needs feedback or review, they’ll add a link here.\",\"project1Up.section.published.empty.heading\":\"[BS] _ĆČPrõj_Share with purpose\",\"project1Up.section.published.empty.heading.readonly\":\"[FJ] _ĆČPrõj_No published items in this project\",\"project1Up.section.canvases\":\"[Em] _ĆČPrõj_Canvases\",\"project1Up.section.canvases.empty.cta\":\"[En] _ĆČPrõj_Add Creative Cloud Canvases\",\"project1Up.section.canvases.empty.description\":\"[Ep] _ĆČPrõj_Add links to stuff you need to do your work.\",\"project1Up.section.canvases.empty.heading\":\"[Eq] _ĆČPrõj_Bring everything together in one place\",\"project1Up.section.files\":\"[FX] _ĆČPrõj_Files\",\"project1Up.error.accessDenied.heading\":\"[JL] _ĆČPrõj_You don’t have access\",\"project1Up.error.accessDenied.description\":\"[JK] _ĆČPrõj_You were removed from this project. Contact your admin if you think this is a mistake.\",\"project1Up.header.seeAll\":\"[Eo] _ĆČPrõj_View All\",\"project1up.subheader.selected\":\"[BY] _ĆČPrõj_{count, plural, =1 {# item} other {# items}} selected\",\"project1up.subheader.emptyDescription\":\"[BT] _ĆČPrõj_Add a description to your project\",\"project1up.subheader.canvases.title\":\"[Es] _ĆČPrõj_Canvases\",\"project1up.subheader.canvases.subtitle\":\"[Er] _ĆČPrõj_TODO: CANVASES SUBTITLE\",\"project1up.subheader.libraries.title\":\"[BV] _ĆČPrõj_Libraries\",\"project1up.subheader.libraries.subtitle\":\"[BU] _ĆČPrõj_Members can add links to Creative Cloud Libraries here.\",\"project1up.subheader.working.title\":\"[Ba] _ĆČPrõj_Working files\",\"project1up.subheader.working.subtitle\":\"[BZ] _ĆČPrõj_Members of this project can edit these files.\",\"project1up.subheader.output.title\":\"[BX] _ĆČPrõj_Published\",\"project1up.subheader.output.subtitle\":\"[BW] _ĆČPrõj_{contributor, select, true {Share read-only versions of work with people outside your project.} other {View and comment on these read-only items}}\",\"project.subtitle\":\"[BF] _ĆČPrõj_PROJECT\",\"project.countContributors\":\"[BE] _ĆČPrõj_{count, plural, =1 {# member} other {# members}}\",\"project.versionError.reload.description\":\"[D/] _ĆČPrõj_Try refreshing your browser.\",\"project.versionError.reload.title\":\"[EA] _ĆČPrõj_Can’t access project\",\"project.versionError.update.description\":\"[EB] _ĆČPrõj_You can’t access the project until you update the app.\",\"project.versionError.update.title\":\"[EC] _ĆČPrõj_Update {appName} to open\",\"project.alreadyDiscarded.title\":\"[CV] _ĆČPrõj_This project was deleted\",\"project.alreadyDiscarded.description\":\"[Cc] _ĆČPrõj_Contact your admin if you think this is a mistake or browse other content.\",\"project.deleted.title\":\"[JJ] _ĆČPrõj_This project was deleted permanently\",\"project.deleted.description\":\"[JI] _ĆČPrõj_You can’t access this project because it isn’t available any longer.\",\"project.metadataError.backLabel\":\"[Dc] _ĆČPrõj_Back to projects\",\"project.metadataError.description\":\"[De] _ĆČPrõj_Either we can’t find the project you’re looking for, or you don’t have access.\",\"project.metadataError.title\":\"[Df] _ĆČPrõj_Sorry, something went wrong.\",\"folder.subtitle\":\"[B] _ĆČPrõj_FOLDER\",\"libraries.toast.add.start\":\"[By] _ĆČPrõj_Adding {count, plural, =1 {# library} other {# libraries}}\",\"libraries.toast.add.success\":\"[Bp] _ĆČPrõj_{count, plural, =1 {# library} other {# libraries}} added\",\"libraries.toast.add.error\":\"[Bo] _ĆČPrõj_Failed to add {count, plural, =1 {# library} other {# libraries}}.  Try again.\",\"libraries.toast.add.duplicate\":\"[Bn] _ĆČPrõj_This library already exists\",\"libraries.toast.add.onlyDuplicates\":\"[Hf] _ĆČPrõj_Can’t add {count, plural, =1 {# library because the library already exists} other {# libraries because the libraries already exist}}.\",\"libraries.toast.delete.success\":\"[Br] _ĆČPrõj_Successfully removed {count, plural, =1 {# library} other {# libraries}}\",\"libraries.toast.delete.error\":\"[Bq] _ĆČPrõj_Failed to remove {count, plural, =1 {# library} other {# libraries}}\",\"libraries.toast.follow.inProgress\":\"[G9] _ĆČPrõj_Following {count, plural, =1 {# library} other {# libraries}}\",\"libraries.toast.follow.success\":\"[G1] _ĆČPrõj_Followed {count, plural, =1 {# library} other {# libraries}}\",\"libraries.toast.follow.error\":\"[G0] _ĆČPrõj_Failed to follow {count, plural, =1 {# library} other {# libraries}}\",\"libraries.toast.unfollow.inProgress\":\"[G+] _ĆČPrõj_Unfollowing {count, plural, =1 {# library} other {# libraries}}\",\"libraries.toast.unfollow.success\":\"[G3] _ĆČPrõj_Unfollowed {count, plural, =1 {# library} other {# libraries}}\",\"libraries.toast.unfollow.error\":\"[G2] _ĆČPrõj_Failed to unfollow {count, plural, =1 {# library} other {# libraries}}\",\"libraries.modal.empty.heading\":\"[CU] _ĆČPrõj_No libraries\",\"libraries.modal.empty.description\":\"[CT] _ĆČPrõj_Your organization hasn’t shared any libraries\",\"libraries.modal.error.limitExceeded\":\"[DR] _ĆČPrõj_Can’t add library\",\"libraries.modal.error.limitExceeded.detail\":\"[DS] _ĆČPrõj_You can add up to 100 libraries to a project. Remove some to add more.\",\"libraries.brokenResources\":\"[Dd] _ĆČPrõj_Some libraries aren’t shown because you don’t have access. Contact other members for more info.\",\"copy.start\":\"[Bw] _ĆČPrõj_Copying {count, plural, =1 {# item} other {# items}}\",\"copy.failure\":\"[Bv] _ĆČPrõj_Can’t copy {count, plural, =1 {# item} other {# items}}\",\"copy.failure.partial\":\"[Cs] _ĆČPrõj_Can’t copy some items\",\"copy.success\":\"[Bx] _ĆČPrõj_{count, plural, =1 {# item} other {# items}} copied\",\"copy.conflictSuffix\":\"[D9] _ĆČPrõj_copy\",\"move.start\":\"[Cv] _ĆČPrõj_Moving {count, plural, =1 {# item} other {# items}}\",\"move.failure\":\"[Ct] _ĆČPrõj_Can’t move {count, plural, =1 {# item} other {# items}}\",\"move.failure.partial\":\"[Cu] _ĆČPrõj_Can’t move some items\",\"move.success\":\"[Cw] _ĆČPrõj_{count, plural, =1 {# item} other {# items}} moved\",\"upload.start\":\"[Fj] _ĆČPrõj_Uploading {count, plural, =1 {# item} other {# items}}\",\"upload.failure\":\"[Fh] _ĆČPrõj_Can’t upload {count, plural, =1 {# item} other {# items}}\",\"upload.failure.partial\":\"[Fi] _ĆČPrõj_Can’t upload some items\",\"upload.failure.snapshot\":\"[Hg] _ĆČPrõj_This item is not supported\",\"upload.success\":\"[Fk] _ĆČPrõj_{count, plural, =1 {# item} other {# items}} uploaded\",\"download.start\":\"[F9] _ĆČPrõj_Downloading {count, plural, =1 {# item} other {# items}}\",\"download.failure\":\"[F/] _ĆČPrõj_Can’t download {count, plural, =1 {# item} other {# items}}\",\"download.failure.partial\":\"[F8] _ĆČPrõj_Can’t download some items\",\"download.success\":\"[F+] _ĆČPrõj_{count, plural, =1 {# item} other {# items}} downloaded\",\"delete.failure\":\"[CJ] _ĆČPrõj_Can’t delete {count, plural, =1 {# item} other {# items}}\",\"delete.failure.partial\":\"[CK] _ĆČPrõj_Can’t delete some items\",\"delete.success\":\"[CL] _ĆČPrõj_{count, plural, =1 {# item} other {# items}} deleted\",\"jobs.failure\":\"[ET] _ĆČPrõj_{count, plural, =1 {# item} other {# items}} failed\",\"jobs.inProgress\":\"[EU] _ĆČPrõj_Working...\",\"jobs.success\":\"[EV] _ĆČPrõj_{count, plural, =1 {# item} other {# items}} completed\",\"restore.failure\":\"[CM] _ĆČPrõj_Can’t restore {count, plural, =1 {# item} other {# items}}\",\"restore.failure.partial\":\"[CN] _ĆČPrõj_Can’t restore some items\",\"restore.success\":\"[CO] _ĆČPrõj_{count, plural, =1 {# item} other {# items}} restored\",\"rename.start\":\"[EX] _ĆČPrõj_Renaming\",\"rename.success\":\"[Dv] _ĆČPrõj_{count, plural, =1 {# item} other {# items}} renamed\",\"rename.failure\":\"[Dt] _ĆČPrõj_Server error, couldn’t rename item\",\"rename.failure.conflict\":\"[Du] _ĆČPrõj_You already have an item here with this name\",\"rename.offline.heading\":\"[Jz] _ĆČPrõj_Can't rename\",\"rename.offline\":\"[Jy] _ĆČPrõj_You're offline and can't rename the item. Go back online to take this action.\",\"bookmark.follow.error\":\"[Dh] _ĆČPrõj_Can’t favorite this project\",\"bookmark.unfollow.error\":\"[Dg] _ĆČPrõj_Can’t unfavorite this project\",\"bookmark.follow.success\":\"[EG] _ĆČPrõj_Successfully favorited {projectName}\",\"bookmark.unfollow.success\":\"[EH] _ĆČPrõj_Successfully unfavorited {projectName}\",\"bookmark.bulk.follow.success\":\"[HW] _ĆČPrõj_Successfully favorited {count, plural, =1 {# item} other {# items}}\",\"bookmark.bulk.follow.partial\":\"[HV] _ĆČPrõj_Can’t favorite some items\",\"bookmark.bulk.follow.error\":\"[HU] _ĆČPrõj_Can’t favorite {count, plural, =1 {# item} other {# items}}\",\"bookmark.bulk.unfollow.success\":\"[HZ] _ĆČPrõj_Successfully unfavorited {count, plural, =1 {# item} other {# items}}\",\"bookmark.bulk.unfollow.partial\":\"[HY] _ĆČPrõj_Can’t unfavorite some items\",\"bookmark.bulk.unfollow.error\":\"[HX] _ĆČPrõj_Can’t unfavorite {count, plural, =1 {# item} other {# items}}\",\"copyLink.success\":\"[ES] _ĆČPrõj_Link copied to clipboard\",\"copyLink.failure\":\"[EQ] _ĆČPrõj_Can’t copy link\",\"starterUser.project1upNavigation\":\"[G5] _ĆČPrõj_Your Starter plan doesn’t include opening documents in projects\",\"starterUser.project1upNavigationCDPSave\":\"[HB] _ĆČPrõj_Your Starter plan doesn’t include saving documents in projects\",\"invite.failure\":\"[EW] _ĆČPrõj_Couldn’t send invitations, please try again\",\"accessibility.backButton\":\"[DT] _ĆČPrõj_Go back\",\"button.role\":\"[Hs] _ĆČPrõj_Button\",\"button.actions\":\"[DA] _ĆČPrõj_Actions\",\"button.add\":\"[Ew] _ĆČPrõj_Add\",\"button.addFiles\":\"[BJ] _ĆČPrõj_Add files\",\"button.addLibrary\":\"[4] _ĆČPrõj_Add library\",\"button.createDocument\":\"[GV] _ĆČPrõj_New {appName} file\",\"button.library\":\"[E4] _ĆČPrõj_Library\",\"button.back\":\"[DB] _ĆČPrõj_Back\",\"button.browse\":\"[BI] _ĆČPrõj_Browse all\",\"button.cancel\":\"Cancel\",\"button.okay\":\"[HR] _ĆČPrõj_Okay\",\"button.canvas\":\"[FM] _ĆČPrõj_Canvas\",\"button.addCanvas\":\"[HG] _ĆČPrõj_New canvas\",\"button.changeDefaultApp\":\"[F2] _ĆČPrõj_Change default application...\",\"button.close\":\"[DD] _ĆČPrõj_Close\",\"button.continue\":\"[DE] _ĆČPrõj_Continue\",\"button.copy\":\"[p] _ĆČPrõj_Copy to...\",\"button.copyLink\":\"[ER] _ĆČPrõj_Copy link\",\"button.create\":\"[DF] _ĆČPrõj_Create\",\"button.createNewFolder\":\"[Ee] _ĆČPrõj_Create new folder\",\"button.newFile\":\"[IE] _ĆČPrõj_New file\",\"button.newFolder\":\"[Fx] _ĆČPrõj_New folder\",\"button.delete\":\"[j] _ĆČPrõj_Delete\",\"button.deleteResource\":\"[5] _ĆČPrõj_Remove\",\"button.done\":\"[D+] _ĆČPrõj_Done\",\"button.download\":\"Download\",\"button.favorite\":\"[Gx] _ĆČPrõj_Favorite\",\"button.follow\":\"[C2] _ĆČPrõj_Follow\",\"button.invite\":\"Invite\",\"button.inviteLabel\":\"[H0] _ĆČPrõj_Invite people\",\"button.leave\":\"[E9] _ĆČPrõj_Leave\",\"button.leaveProject\":\"[Bz] _ĆČPrõj_Leave workspace\",\"button.move\":\"[Cr] _ĆČPrõj_Move to...\",\"button.next\":\"[GW] _ĆČPrõj_Next\",\"button.ok\":\"[5626916] OK\",\"button.open\":\"[Fo] _ĆČPrõj_Open\",\"button.openWith\":\"[HH] _ĆČPrõj_Open with\",\"button.open.appName\":\"[F3] _ĆČPrõj_{appName} {isDefault, select, true {(Default)} other {}}\",\"button.redo\":\"[Dn] _ĆČPrõj_Try again\",\"button.reload\":\"[B2] _ĆČPrõj_Reload\",\"button.rename\":\"[BK] _ĆČPrõj_Rename\",\"button.restore\":\"[CS] _ĆČPrõj_Restore\",\"button.retry\":\"[DJ] _ĆČPrõj_Retry\",\"button.save\":\"[DK] _ĆČPrõj_Save\",\"button.select\":\"[r] _ĆČPrõj_Select\",\"button.share\":\"[HF] _ĆČPrõj_Share\",\"button.skipTour\":\"[GX] _ĆČPrõj_Skip tour\",\"button.undo\":\"[Do] _ĆČPrõj_Undo\",\"button.unfavorite\":\"[Gy] _ĆČPrõj_Unfavorite\",\"button.unfollow\":\"[C3] _ĆČPrõj_Unfollow\",\"button.update\":\"[B3] _ĆČPrõj_Update\",\"button.upgrade\":\"[Hd] _ĆČPrõj_Upgrade\",\"button.view\":\"[Dp] _ĆČPrõj_View all\",\"button.viewProject\":\"[CR] _ĆČPrõj_View project\",\"button.viewTarget\":\"[Ie] _ĆČPrõj_View\",\"button.createWeblink\":\"[Et] _ĆČPrõj_Add web link\",\"button.leaveTeam\":\"[E+] _ĆČPrõj_Leave workspace\",\"button.renameTeam\":\"[E/] _ĆČPrõj_Rename workspace\",\"button.editTeam\":\"[IG] _ĆČPrõj_Edit workspace info\",\"button.archiveTeam\":\"[IX] _ĆČPrõj_Delete workspace\",\"button.upload\":\"[Fg] _ĆČPrõj_Upload files\",\"button.goToDeleted\":\"[I3] _ĆČPrõj_View in deleted\",\"button.viewEverything\":\"[G/] _ĆČPrõj_View everything\",\"button.viewInWeb\":\"[JB] _ĆČPrõj_View in web\",\"abbreviations.fileSize.byte\":\"[Y] _ĆČPrõj_B\",\"abbreviations.fileSize.kilobyte\":\"[a] _ĆČPrõj_KB\",\"abbreviations.fileSize.megabyte\":\"[b] _ĆČPrõj_MB\",\"abbreviations.fileSize.gigabyte\":\"[Z] _ĆČPrõj_GB\",\"abbreviations.fileSize.terabyte\":\"[c] _ĆČPrõj_TB\",\"statusIcon.conflicted\":\"[l] _ĆČPrõj_Sync conflict\",\"statusIcon.onlineOnly\":\"[m] _ĆČPrõj_Online-only\",\"statusIcon.availableOffline\":\"[k] _ĆČPrõj_Available offline\",\"statusIcon.syncing\":\"[n] _ĆČPrõj_Syncing...\",\"statusIcon.waitingToSync\":\"[o] _ĆČPrõj_Waiting to sync\",\"statusMessage.offline.description\":\"[y] _ĆČPrõj_Reconnect to access all of your workspaces and projects. To view local files from your projects, go to Home.\",\"statusMessage.offline.heading\":\"[z] _ĆČPrõj_You’re disconnected\",\"statusMessage.offline.toast\":\"[0] _ĆČPrõj_You’re disconnected, so some features and files might be unavailable.\",\"toggle.listView\":\"[3] _ĆČPrõj_List view\",\"toggle.gridView\":\"[1] _ĆČPrõj_Thumbnail view\",\"color.fuchsia\":\"[9] _ĆČPrõj_Fuchsia\",\"color.indigo\":\"[+] _ĆČPrõj_Indigo\",\"color.celery\":\"[6] _ĆČPrõj_Celery\",\"color.magenta\":\"[/] _ĆČPrõj_Magenta\",\"color.yellow\":\"[BC] _ĆČPrõj_Yellow\",\"color.seafoam\":\"[BB] _ĆČPrõj_Seafoam\",\"color.chartreuse\":\"[8] _ĆČPrõj_Chartreuse\",\"color.purple\":\"[BA] _ĆČPrõj_Purple\",\"color.blue\":\"[D1] _ĆČPrõj_Blue\",\"color.red\":\"[D3] _ĆČPrõj_Red\",\"color.orange\":\"[D2] _ĆČPrõj_Orange\",\"color.green\":\"[D0] _ĆČPrõj_Green\",\"color.label\":\"[Ht] _ĆČPrõj_Project color\",\"tooltip.offline.general\":\"[JY] _ĆČPrõj_Go back online to take this action\",\"tooltip.moreFaces\":\"[Bu] _ĆČPrõj_+ {number} more\",\"action.leave.space.success\":\"[EL] _ĆČPrõj_You left {count, plural, =1 {# project} other {# projects}}\",\"action.leave.prototype.success\":\"[EJ] _ĆČPrõj_Access to {count, plural, =1 {# prototype} other {# prototypes}} removed\",\"action.leave.file.success\":\"[JQ] _ĆČPrõj_Access to {count, plural, =1 {# file} other {# files}} removed\",\"action.leave.canvas.success\":\"[JN] _ĆČPrõj_Access to {count, plural, =1 {# canvas} other {# canvases}} removed\",\"action.leave.team.success\":\"[FH] _ĆČPrõj_You left 1 workspace\",\"action.leave.space.error\":\"[EK] _ĆČPrõj_Can’t leave this project\",\"action.leave.prototype.error\":\"[EI] _ĆČPrõj_Can’t leave this prototype\",\"action.leave.file.error\":\"[JO] _ĆČPrõj_Can’t leave this file\",\"action.leave.team.error\":\"[FG] _ĆČPrõj_Can’t leave this workspace\",\"action.leave.canvas.error\":\"[F0] _ĆČPrõj_Can’t leave this canvas\",\"action.leave.space.partial.error\":\"[JS] _ĆČPrõj_Can’t leave all projects\",\"action.leave.prototype.partial.error\":\"[JR] _ĆČPrõj_Can’t leave all prototypes\",\"action.leave.file.partial.error\":\"[JP] _ĆČPrõj_Can’t leave all files\",\"action.leave.canvas.partial.error\":\"[JM] _ĆČPrõj_Can’t leave all canvases\",\"action.leave.error.onlyContributor\":\"[Dk] _ĆČPrõj_You’re the only member. Add another before leaving.\",\"action.leave.error.addressBookGroupMember\":\"[Dj] _ĆČPrõj_Leave the group and try again.\",\"action.leave.error.admin\":\"[Dw] _ĆČPrõj_You can’t leave because you’re an admin.\",\"action.leave.error.generic\":\"[Dx] _ĆČPrõj_You can’t leave because something went wrong.\",\"action.reportAbuse\":\"[GA] _ĆČPrõj_Report abuse\",\"action.reportAbuse.required\":\"[GN] _ĆČPrõj_Required\",\"action.reportAbuse.titleText\":\"[GQ] _ĆČPrõj_If you feel that this Creative Cloud content violates the Adobe Terms of Use, you may report this content by filling out this quick form.\",\"action.reportAbuse.emailInput\":\"[GE] _ĆČPrõj_Your Email\",\"action.reportAbuse.nameInput\":\"[GJ] _ĆČPrõj_Your Name\",\"action.reportAbuse.radioButtonText\":\"[GM] _ĆČPrõj_Why are you reporting this content?\",\"action.reportAbuse.defamation\":\"[GC] _ĆČPrõj_Defamation\",\"action.reportAbuse.hate\":\"[GH] _ĆČPrõj_Racist or Hate content\",\"action.reportAbuse.trademark\":\"[GR] _ĆČPrõj_Trademark Infringment\",\"action.reportAbuse.pornography\":\"[GL] _ĆČPrõj_Sexually Explicit Content\",\"action.reportAbuse.vulgar\":\"[GS] _ĆČPrõj_Offensive Content\",\"action.reportAbuse.other\":\"[GK] _ĆČPrõj_Other\",\"action.reportAbuse.inappropriate\":\"[GI] _ĆČPrõj_Inappropriate\",\"action.reportAbuse.age\":\"[GB] _ĆČPrõj_Age inaccuracy\",\"action.reportAbuse.gender\":\"[GG] _ĆČPrõj_Gender inaccuracy\",\"action.reportAbuse.textAreaTitle\":\"[GP] _ĆČPrõj_Please provide a description of your concern\",\"action.reportAbuse.describeConcern\":\"[GD] _ĆČPrõj_Describe Concern\",\"action.reportAbuse.success\":\"[GO] _ĆČPrõj_Successfully reported abuse\",\"action.reportAbuse.failure\":\"[GF] _ĆČPrõj_Failed to report abuse\",\"action.menu.label\":\"[Hr] _ĆČPrõj_Action Menu\",\"action.label\":\"[Hq] _ĆČPrõj_Action\",\"dialog.genericError.description\":\"[EY] _ĆČPrõj_Sorry, something went wrong.\",\"dialog.genericError.title\":\"[EZ] _ĆČPrõj_Unexpected error\",\"dialog.leave.space.title\":\"[EP] _ĆČPrõj_Leave {count, plural, =1 {{name}} other {projects}}\",\"dialog.leave.prototype.title\":\"[EN] _ĆČPrõj_Leave {count, plural, =1 {this prototype} other {prototypes}}\",\"dialog.leave.file.title\":\"[JX] _ĆČPrõj_Leave {count, plural, =1 {this file} other {files}}\",\"dialog.leave.canvas.title\":\"[JV] _ĆČPrõj_Leave {count, plural, =1 {this canvas} other {canvases}}\",\"dialog.leave.team.title\":\"[FI] _ĆČPrõj_Saying goodbye?\",\"dialog.leave.team.detail\":\"[Gz] _ĆČPrõj_You won’t be able to undo this if you remove yourself. Contact an admin if you want to be added back to this workspace.\",\"dialog.leave.space.detail\":\"[EO] _ĆČPrõj_You’ll lose access to items you don’t own that are in this project. Leaving \\\"{projectName}\\\" can’t be undone.\",\"dialog.leave.prototype.detail\":\"[EM] _ĆČPrõj_You won’t be able to access this again without another invitation.\",\"dialog.leave.file.detail\":\"[JW] _ĆČPrõj_You won’t be able to access this again without another invitation.\",\"dialog.leave.canvas.detail\":\"[JU] _ĆČPrõj_You won’t be able to access this again without another invitation.\",\"dialog.leave.detail\":\"[CH] _ĆČPrõj_{type, select, space {You’ll lose access to items you don’t own that are in {count, plural, =1 {this project} other {these projects}}. Leaving {count, plural, =1 {\\\"{name}\\\"} other {these projects}} can’t be undone.} other {You won’t be able to access {count, plural, =1 {this} other {these}} again without another invitation{count, plural, =1 {.} other {:}}}}\",\"dialog.deleteFailed.title\":\"[Cm] _ĆČPrõj_Can’t delete all items\",\"dialog.deleteWarning.description\":\"[Cn] _ĆČPrõj_{type, select, spaces {This action will delete the contents for all members of these projects:} other {This action will delete the following for all members of this project:}}\",\"dialog.deleteWarning.title\":\"[Co] _ĆČPrõj_{type, select, space {Delete {count} {count, plural, =1 {project} other {projects}}} other {Delete {count} {count, plural, =1 {item} other {items}}}}\",\"dialog.deleteFailed.description.unauthorized\":\"[Ck] _ĆČPrõj_Can’t delete because you were removed from the project:\",\"dialog.deleteFailed.description.alreadyDeleted\":\"[Cj] _ĆČPrõj_Can’t delete because someone else already deleted this item:\",\"dialog.deleteFailed.description.unknown\":\"[Cl] _ĆČPrõj_Can’t delete because something went wrong:\",\"dialog.cantCopyAllItems\":\"[C8] _ĆČPrõj_Can’t copy all items\",\"dialog.cantCopyBecauseSomethingWentWrong\":\"[C9] _ĆČPrõj_Can’t copy because something went wrong:\",\"dialog.cantCopyBecauseYouWereSignedOut\":\"[DX] _ĆČPrõj_Can’t copy because you were signed out:\",\"dialog.cantCopyBecauseYouWereRemoved\":\"[DW] _ĆČPrõj_Can’t copy because you were removed from this project:\",\"dialog.cantCopyBecauseItemWasDeleted\":\"[DU] _ĆČPrõj_Can’t copy because someone else deleted this item:\",\"dialog.cantCopyBecauseItemExists\":\"[DV] _ĆČPrõj_Can’t copy because this already exists where you tried to copy:\",\"dialog.cantMoveAllItems\":\"[C+] _ĆČPrõj_Can’t move all items\",\"dialog.cantMoveBecauseSomethingWentWrong\":\"[C/] _ĆČPrõj_Can’t move because something went wrong:\",\"dialog.cantMoveBecauseYouWereSignedOut\":\"[Db] _ĆČPrõj_Can’t move because you were signed out:\",\"dialog.cantMoveBecauseYouWereRemoved\":\"[Da] _ĆČPrõj_Can’t move because you were removed from this project:\",\"dialog.cantMoveBecauseItemWasDeleted\":\"[DZ] _ĆČPrõj_Can’t move because someone else deleted this item:\",\"dialog.cantMoveBecauseItemExists\":\"[DY] _ĆČPrõj_Can’t move because this already exists where you tried to move:\",\"dialog.createFolder.error\":\"[DL] _ĆČPrõj_Server error, couldn’t save folder\",\"dialog.createFolder.nameConflict\":\"[DN] _ĆČPrõj_You already have a folder with this name.\",\"dialog.createFolder.placeholder\":\"[DO] _ĆČPrõj_Folder Name\",\"dialog.createFolder.title\":\"[DP] _ĆČPrõj_Create Folder\",\"dialog.createFolder.success\":\"[JT] _ĆČPrõj_Successfully created Folder\",\"dialog.createWeblink.error\":\"[Eu] _ĆČPrõj_Unsupported url\",\"dialog.createWeblink.tooManyRequests\":\"[I5] _ĆČPrõj_Unexpected network error. Please try again.\",\"dialog.createWeblink.success\":\"[Ha] _ĆČPrõj_1 item added\",\"dialog.createWeblink.nameConflict\":\"[E1] _ĆČPrõj_This title already exists\",\"dialog.createWeblink.name.placeholder\":\"[E0] _ĆČPrõj_Enter name for this link\",\"dialog.createWeblink.link.placeholder\":\"[Ey] _ĆČPrõj_https://\",\"dialog.createWeblink.name\":\"[Ez] _ĆČPrõj_Custom title\",\"dialog.createWeblink.link\":\"[Ex] _ĆČPrõj_Link\",\"dialog.createWeblink.title\":\"[E2] _ĆČPrõj_Create a web link\",\"app.type.webLink\":\"[E3] _ĆČPrõj_WEB LINK\",\"dialog.createCanvas.error\":\"[FN] _ĆČPrõj_Can’t create a canvas\",\"dialog.move.title\":\"[El] _ĆČPrõj_Move to project {projectName}\",\"dialog.move.detail\":\"[Ek] _ĆČPrõj_Moving this item will change who can access it.\",\"moveToTeam.confirm.title\":\"[Ig] _ĆČPrõj_Move to {name} workspace\",\"moveToTeam.confirm.message\":\"[If] _ĆČPrõj_Moving your projects here will change who can access them. Your projects will be accessible to anyone who has access to your workspace.\",\"moveToTeam.disabled.differentOrg.tooltip.message\":\"[Ih] _ĆČPrõj_You cannot move projects to a workspace in a different organization.\",\"moveToSpace.disabled.differentOrg.tooltip.message\":\"[I4] _ĆČPrõj_You cannot move items to a project in a different organization.\",\"moveToTeam.success\":\"[Ii] _ĆČPrõj_You moved {count, plural, =1 {# project} other {# projects}} to the {name} workspace\",\"confirmationDialog.dontShowAgain\":\"[I6] _ĆČPrõj_Don't show again\",\"dialog.open.title\":\"[Fm] _ĆČPrõj_Open on the web\",\"dialog.open.detail\":\"[Fl] _ĆČPrõj_You can’t open this file in {appName}, but you can access it in a browser.\",\"dialog.renameTeam.title\":\"[FT] _ĆČPrõj_Rename workspace\",\"dialog.renameTeam.placeholder\":\"[FS] _ĆČPrõj_Enter a name for this workspace\",\"dialog.renameTeam.error\":\"[FU] _ĆČPrõj_Sorry, something went wrong.\",\"dialog.renameTeam.nameConflict\":\"[FR] _ĆČPrõj_This name already exists\",\"dialog.archiveTeam.title\":\"[Ik] _ĆČPrõj_Deleting this workspace?\",\"dialog.archiveTeam.detail\":\"[Ij] _ĆČPrõj_You can’t undo this if you remove yourself. Contact an admin if you want to join this workspace again.\",\"dialog.saveToCloud.title\":\"[HT] _ĆČPrõj_File(s) saved to Creative Cloud\",\"dialog.saveToCloud.detail\":\"[HS] _ĆČPrõj_Your cloud document now offers version history, inviting and co-editing, instant access on other devices and more. You can find it here and in your Creative Cloud apps.\",\"input.invalidCharInput\":\"[Fy] _ĆČPrõj_Name cannot contain the following characters: \\\\\\\\ / * ? \\\" | :\",\"input.invalidEmptyInput\":\"[FB] _ĆČPrõj_{names, select, true {Names} other {Titles}} must not be blank\",\"input.nameTooLong\":\"[FE] _ĆČPrõj_{names, select, true {Names} other {Titles}} can’t be more than {maxLength} characters\",\"input.nameEndsWithDot\":\"[FD] _ĆČPrõj_{names, select, true {Names} other {Titles}} can’t end with a period\",\"input.weblink.nameRestricted\":\"[GU] _ĆČPrõj_Web links cannot have the following titles: \\\"con\\\", \\\"prn\\\", \\\"aux\\\", \\\"nul\\\", \\\"com#\\\", \\\"lpt#\\\"\",\"input.nameRestricted\":\"[GT] _ĆČPrõj_Assets cannot have the following names: con/prn/aux/nul/com#/lpt#\",\"input.weblink.invalidCharInput\":\"[FF] _ĆČPrõj_Titles can’t contain only spaces or contain the following characters: \\\\\\\\ / * ? \\\" | : < > \",\"input.name.invalidCharInput\":\"[FC] _ĆČPrõj_Names can’t contain only spaces or contain the following characters: \\\\\\\\ / * ? \\\" | : < > \",\"cdpFooter.orphanedArtifactsWarning\":\"[D4] _ĆČPrõj_Published links connected to items you are moving will remain in the original project\",\"cdpFooter.libraryPrivacyWarning\":\"[Eg] _ĆČPrõj_If you have reshare permissions to a library that you add, members of the project will be able to view it\",\"toast.beforeOp.error.documentIsOpen\":\"[Fn] _ĆČPrõj_Close the {count, plural, =1 {document} other {documents}} to perform this action.\",\"app.type.designSpecs\":\"[Ed] _ĆČPrõj_DESIGN SPECS\",\"app.type.prototype\":\"[Ec] _ĆČPrõj_PROTOTYPE\",\"app.type.publishedLink\":\"[Ef] _ĆČPrõj_PUBLISHED LINK\",\"popover.header\":\"[Ej] _ĆČPrõj_Collaborate on a project with others, and share your work for feedback.\",\"popover.linkout\":\"[Ei] _ĆČPrõj_Learn more\",\"team.libraries.filter.all\":\"[Fc] _ĆČPrõj_All\",\"team.libraries.filter.addedToYourLibraries\":\"[Fb] _ĆČPrõj_Added to Your libraries\",\"team.libraries.filter.notAdded\":\"[Fd] _ĆČPrõj_Not added\",\"team.spaces.filter.all\":\"[Fs] _ĆČPrõj_Everything\",\"team.spaces.filter.favorited\":\"[Ft] _ĆČPrõj_Favorited\",\"team.filter.empty.heading\":\"[Fq] _ĆČPrõj_No Projects match the selected Filter\",\"team.filter.empty.description1\":\"[Iz] _ĆČPrõj_We couldn’t find results for \",\"team.filter.empty.description2\":\"[I0] _ĆČPrõj_ in this list. Check your spelling or try using different keywords.\",\"team.filter.no.match.description\":\"[J0] _ĆČPrõj_We couldn’t find results in this list. Check your spelling or try using different filter criteria.\",\"team.filter.filterText\":\"[I1] _ĆČPrõj_{filter}\",\"team.header.other.teams\":\"[Fr] _ĆČPrõj_Other workspaces\",\"space.empty.heading\":\"[Gf] _ĆČPrõj_Everything in one place, everyone in the loop\",\"space.empty.description\":\"[Ge] _ĆČPrõj_Fill this project with working files and related materials. Invite collaborators to join and add what they’re working on, too.\",\"space.empty.canvasHeading\":\"[Ga] _ĆČPrõj_CREATIVE CLOUD CANVAS\",\"space.empty.actionsHeading\":\"[GZ] _ĆČPrõj_ADD CONTENT TO YOUR PROJECT\",\"space.empty.createCanvas\":\"[Gd] _ĆČPrõj_New canvas\",\"space.empty.upload\":\"[Hz] _ĆČPrõj_Add files\",\"space.empty.createFolder\":\"[Hx] _ĆČPrõj_New folder\",\"space.empty.createWeblink\":\"[Hy] _ĆČPrõj_Web links\",\"space.empty.addResource\":\"[Hw] _ĆČPrõj_Library\",\"folder.empty.heading\":\"[Iy] _ĆČPrõj_This folder is empty.\",\"folder.empty.description\":\"[Ix] _ĆČPrõj_Start adding files to fill it.\",\"folder.discard.heading\":\"[Jd] _ĆČPrõj_This folder was deleted.\",\"folder.discard.description\":\"[Jc] _ĆČPrõj_Contact your admin if you think this is a mistake or browse other content.\",\"folder.error.description\":\"[JH] _ĆČPrõj_There was a problem loading content from this folder.\",\"space.empty.section.createACanvas\":\"[G6] _ĆČPrõj_Create a canvas\",\"tooltip.opensInBrowser\":\"[Gw] _ĆČPrõj_Opens in browser\",\"space.empty.workingFiles\":\"[G4] _ĆČPrõj_Keep adding to this project\",\"space.empty.canvasPopoverTitle\":\"[Gc] _ĆČPrõj_Try Creative Cloud Canvas (Beta)\",\"space.empty.canvasPopoverContent\":\"[Gb] _ĆČPrõj_Use canvases to lay out, visualize, and review creative work.\",\"space.error.heading\":\"[I+] _ĆČPrõj_Can’t load project\",\"space.error.description\":\"[I9] _ĆČPrõj_There was a problem loading content from this project.\",\"createTeamWizard.createTeam.sidebarHeading\":\"[Jk] _ĆČPrõj_Create a workspace\",\"createTeamWizard.createTeam.sidebarCopy\":\"[Ji] _ĆČPrõj_Create a workspace to keep everyone on the same page and organized.\",\"createTeamWizard.createTeam.sidebarCopy.adminconsole\":\"[Jj] _ĆČPrõj_Set up a place where your team can collaborate and share files.\",\"createTeamWizard.createTeam.sidebarLink\":\"[Jl] _ĆČPrõj_Learn more\",\"createTeamWizard.createTeam.contentHeading\":\"[Js] _ĆČPrõj_New workspace\",\"createTeamWizard.createTeam.loading\":\"[Jh] _ĆČPrõj_Creating the “{name}” workspace\",\"createTeamWizard.inviteMembers.sidebarHeading\":\"[Jp] _ĆČPrõj_Invite members to the “{name}” workspace\",\"createTeamWizard.inviteMembers.sidebarCopy\":\"[Jo] _ĆČPrõj_Start typing a name or email to invite members now, or skip this step and invite them later.\",\"createTeamWizard.inviteMembers.loading\":\"[Jn] _ĆČPrõj_Inviting members to the “{name}” workspace\",\"createTeamWizard.inviteMembers.contentHeading\":\"[Jm] _ĆČPrõj_Invite members\",\"createTeamWizard.inviteMembers.successToast\":\"[Jq] _ĆČPrõj_Members have been added to new workspace\",\"createTeamWizard.progress\":\"[Jr] _ĆČPrõj_Step {current} of {total}\",\"createTeamWizard.skipStep\":\"[Jt] _ĆČPrõj_Skip\",\"teamDialog.createTeam.label\":\"[IJ] _ĆČPrõj_Create a workspace\",\"teamDialog.createTeam.infoBox.description\":\"[II] _ĆČPrõj_The workspace you create is invite only and everyone added has edit access by default.\",\"teamDialog.editTeam.label\":\"[IK] _ĆČPrõj_Edit workspace\",\"teamDialog.nameSection.placeholder\":\"[IM] _ĆČPrõj_Give your new workspace a name\",\"teamDialog.nameSection.label\":\"[IL] _ĆČPrõj_Workspace name\",\"teamDialog.permissionsSection.label\":\"[Jw] _ĆČPrõj_Who can edit this workspace\",\"teamDialog.permissionsSection.option.onlyInvited\":\"[Jx] _ĆČPrõj_Only invited people\",\"teamDialog.descriptionSection.label\":\"[Ju] _ĆČPrõj_Workspace description (optional)\",\"teamDialog.descriptionSection.placeholder\":\"[Jv] _ĆČPrõj_Add a few words about your workspace\",\"teamsSidebar.noTeams\":\"[Fu] _ĆČPrõj_No workspaces\",\"teamsSidebar.newTeamButton\":\"[IN] _ĆČPrõj_Create a workspace\",\"teamsSidebar.adminTour.title\":\"[IV] _ĆČPrõj_New! Create workspaces\",\"teamsSidebar.adminTour.content\":\"[IW] _ĆČPrõj_Now admins can create workspaces in Creative Cloud on the web, making it easier to organize around shared work.\",\"teamsSidebarTeam.newSpaceButton\":\"[Fw] _ĆČPrõj_New project\",\"teamsSidebarTeam.header.newBadge\":\"[Gt] _ĆČPrõj_NEW\",\"teamsSidebarTeam.header.otherTeams\":\"[Fv] _ĆČPrõj_From other workspaces\",\"teamsSidebarTeam.header.teams\":\"[G8] _ĆČPrõj_WORKSPACES\",\"teamsSidebarTeam.header.previewLabel\":\"[HK] _ĆČPrõj_(Preview)\",\"teamsSidebarTeam.header.previewCopy\":\"[HJ] _ĆČPrõj_Workspaces and projects are available in a private beta.\",\"teamsSidebarTeam.header.previewLearnMoreText\":\"[HL] _ĆČPrõj_Learn more\",\"teamsSidebarTeam.message.loading\":\"[HM] _ĆČPrõj_Loading...\",\"teamsSidebarTeam.message.noSpaces\":\"[HN] _ĆČPrõj_You have no workspaces or projects.\",\"teamsSidebarTeam.message.offline\":\"[HO] _ĆČPrõj_You’re disconnected. Reconnect to view your workspaces and projects.\",\"teamsSidebarTeam.message.error\":\"[HQ] _ĆČPrõj_There was a problem loading your workspaces and projects.\",\"teams1up.error.description\":\"[I/] _ĆČPrõj_There was a problem loading your projects.\",\"teams1up.error.heading\":\"[JA] _ĆČPrõj_Couldn’t load projects\",\"otherTeams.emptyMessage.header\":\"[JD] _ĆČPrõj_Can’t view workspace page\",\"otherTeams.emptyMessage.description1\":\"[JE] _ĆČPrõj_You were removed or left the last project using the \",\"otherTeams.emptyMessage.description2\":\"[JC] _ĆČPrõj_ section. Contact your admin if you think this is a mistake.\",\"spaceTour.step0.title\":\"[Gh] _ĆČPrõj_Your projects are here\",\"spaceTour.step0.content\":\"[Gg] _ĆČPrõj_Projects help teams collaborate and collect, organize, and share files and resources.\",\"spaceTour.step1.title\":\"[Gj] _ĆČPrõj_Add everything you need for a project\",\"spaceTour.step1.content\":\"[Gi] _ĆČPrõj_Bring working files, reference images, resources, and more together under one roof.\",\"spaceTour.step2.title\":\"[Gl] _ĆČPrõj_Set (and forget) permissions\",\"spaceTour.step2.content\":\"[Gk] _ĆČPrõj_Assign the right access to  collaborators when you invite them to save time and hassle. Send view-only packages to stakeholders for review and feedback.\",\"error.cantCreateSpace\":\"[Hb] _ĆČPrõj_Workspace storage is full\",\"error.exceedQuota.create.detail.description1\":\"[Jf] _ĆČPrõj_You can’t create anything new right now. Select \",\"error.exceedQuota.description2\":\"[Jg] _ĆČPrõj_ to free up storage.\",\"error.exceedQuota.add.detail.description1\":\"[Je] _ĆČPrõj_You can’t add anything new right now. Select \",\"error.move.generic\":\"[Is] _ĆČPrõj_Can’t move because something went wrong\",\"error.move.signedOut\":\"[Iu] _ĆČPrõj_Can’t move because you were signed out\",\"error.move.permissionRevoked\":\"[It] _ĆČPrõj_Can’t move because you were removed from this project\",\"error.move.deleted\":\"[Iq] _ĆČPrõj_Can’t move because someone else deleted this item\",\"error.move.duplicate\":\"[Ir] _ĆČPrõj_Can’t move because this already exists where you tried to move\",\"error.copy.generic\":\"[In] _ĆČPrõj_Can’t copy because something went wrong\",\"error.copy.signedOut\":\"[Ip] _ĆČPrõj_Can’t copy because you were signed out\",\"error.copy.permissionRevoked\":\"[Io] _ĆČPrõj_Can’t copy because you were removed from this project\",\"error.copy.deleted\":\"[Il] _ĆČPrõj_Can’t copy because someone else deleted this item\",\"error.copy.duplicate\":\"[Im] _ĆČPrõj_Can’t copy because this already exists where you tried to copy\",\"checkbox.select\":\"[IB] _ĆČPrõj_Select\",\"listItem.fileSize\":\"[IC] _ĆČPrõj_File size\",\"facepile.additionalMembers\":\"[H2] _ĆČPrõj_Additional members +{count}\",\"facepile.memberName\":\"[H3] _ĆČPrõj_{name}, member\",\"coachmark.information\":\"[H1] _ĆČPrõj_information\",\"toolbar.tools\":\"[H4] _ĆČPrõj_tools\",\"griditem.error.message\":\"[Iw] _ĆČPrõj_Unable to fetch\",\"griditem.error.button\":\"[Iv] _ĆČPrõj_Retry\",\"ats.move.extendedNotification\":\"[I2] _ĆČPrõj_You’ll receive a notification when your Move is complete.\",\"file.deleted.error.heading\":\"[Ja] _ĆČPrõj_Can’t {operation} file\",\"file.deleted.error.description\":\"[JZ] _ĆČPrõj_You can’t {operation} this file because it was deleted. Restore from deleted and try again or pick a different location.\",\"file.deleted.rename.error.description\":\"[Jb] _ĆČPrõj_You can’t rename this file because it was deleted. Select Go to deleted to restore the file.\"}");

/***/ }),

/***/ "0ee7":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);

const DEFAULT_SIZE = {
    width: 120,
    height: 120,
};
const UserLoggedOut = ({ height = DEFAULT_SIZE.height, width = DEFAULT_SIZE.width, className = '', }) => (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", height: height, id: "S_IlluDocNotVisible_120", viewBox: `0 0 ${height} ${width}`, width: width },
    react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", { style: { fill: 'none' }, d: "M82.35,18.435A8.271,8.271,0,0,0,76.465,16H32.435A7.443,7.443,0,0,0,25,23.435v76.13A7.443,7.443,0,0,0,32.435,107h58.13A7.443,7.443,0,0,0,98,99.565V37.515a8.273,8.273,0,0,0-2.444-5.894ZM44.989,80.983a1.5,1.5,0,0,1-2.118-2.125l5.143-5.143c-4.728-2.443-8.307-5.9-8.307-8.217,0-3.725,9.886-13.3,20.793-13.3a21.631,21.631,0,0,1,7.6,1.433L76.6,45.126a1.5,1.5,0,0,1,2.118,2.124L69.51,56.461l-.005.006L44.992,80.979ZM67.174,61.97a1,1,0,1,1,1.995-.151q.024.318.024.644a8.406,8.406,0,0,1-8.4,8.4c-.217,0-.433-.008-.646-.024a1,1,0,0,1,.156-1.994c.162.013.325.018.49.018a6.4,6.4,0,0,0,6.4-6.4h0C67.193,62.3,67.187,62.133,67.174,61.97ZM60.5,76.867a24.824,24.824,0,0,1-3.071-.191A1.5,1.5,0,0,1,57.8,73.7a21.775,21.775,0,0,0,2.7.168c9.973,0,17.492-6.733,17.8-8.418-.089-.548-1.762-3.141-5.38-5.8a1.5,1.5,0,1,1,1.776-2.418c3.28,2.41,6.6,6.023,6.6,8.266C81.293,69.145,71.456,76.867,60.5,76.867Z" }),
    react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", { style: { fill: '#1373e6' }, d: "M69.51,56.461l9.211-9.211A1.5,1.5,0,0,0,76.6,45.126L68.1,53.633A21.631,21.631,0,0,0,60.5,52.2c-10.907,0-20.793,9.573-20.793,13.3,0,2.315,3.579,5.774,8.307,8.217l-5.143,5.143a1.5,1.5,0,0,0,2.118,2.125l0,0L69.505,56.467ZM50.252,71.477c-4.661-2.2-7.392-5.16-7.547-5.942.2-1.465,5.5-7.512,12.83-9.607a8.37,8.37,0,0,0-1.387,11.653Zm5.324-5.325a6.391,6.391,0,0,1,8.91-8.909Z" }),
    react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", { style: { fill: '#b3b3b3' }, d: "M97.676,29.5,84.469,16.312a11.253,11.253,0,0,0-8-3.312H32.435A10.445,10.445,0,0,0,22,23.435v76.13A10.446,10.446,0,0,0,32.435,110h58.13A10.446,10.446,0,0,0,101,99.565V37.515A11.258,11.258,0,0,0,97.676,29.5ZM98,99.565A7.443,7.443,0,0,1,90.565,107H32.435A7.443,7.443,0,0,1,25,99.565V23.435A7.443,7.443,0,0,1,32.435,16h44.03a8.271,8.271,0,0,1,5.885,2.435L95.556,31.621A8.273,8.273,0,0,1,98,37.515Z" }),
    react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", { style: { fill: '#1373e6' }, d: "M74.692,57.232a1.5,1.5,0,1,0-1.776,2.418c3.618,2.658,5.291,5.251,5.38,5.8-.3,1.685-7.823,8.418-17.8,8.418a21.775,21.775,0,0,1-2.7-.168,1.5,1.5,0,0,0-.37,2.977,24.824,24.824,0,0,0,3.071.191c10.956,0,20.793-7.722,20.793-11.369C81.293,63.255,77.972,59.642,74.692,57.232Z" }),
    react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", { style: { fill: '#1373e6' }, d: "M60.8,68.859c-.165,0-.328,0-.49-.018a1,1,0,0,0-.156,1.994c.213.016.429.024.646.024a8.406,8.406,0,0,0,8.4-8.4q0-.325-.024-.644a1,1,0,1,0-1.995.151c.013.163.019.327.019.493h0A6.4,6.4,0,0,1,60.8,68.859Z" })));
/* harmony default export */ __webpack_exports__["a"] = (UserLoggedOut);


/***/ }),

/***/ "0gRt":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return DateMetadata; });
/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("2vnA");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("i8i4");
/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _utils_get_extend_selection_mode__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("seVz");
/* harmony import */ var _utils_drag_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("RQ+a");
/* harmony import */ var _types_CDOReactIntlTyped__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("dSAe");
/* harmony import */ var _types_CollectionViewMetrics__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("b/7Q");
/* harmony import */ var _styles_ViewItem_css__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("FYk4");
/* harmony import */ var _styles_ViewItem_css__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_styles_ViewItem_css__WEBPACK_IMPORTED_MODULE_7__);
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2020 Adobe Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Incorporated and its
 * suppliers and are by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Incorporated.
 **************************************************************************/
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;
};
var __metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var _a;








const DRAG_TIMER_DURATION_MS = 1500; // ms
const DateMetadata = ({ date, id }) => (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_types_CDOReactIntlTyped__WEBPACK_IMPORTED_MODULE_5__[/* FormattedRelative */ "b"], { value: date }, (msg) => (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("span", { id: id, className: "dateMetadata" }, msg))));
// eslint-disable-next-line react/prefer-stateless-function
class ViewItem extends react__WEBPACK_IMPORTED_MODULE_1__["Component"] {
    constructor() {
        super(...arguments);
        this.metrics = this.props.metrics;
        /**
         * onDragEnter/Leave is fired for each child element, but we only want to react when the count is > 0 or == 0.
         * @type {number}
         */
        this.dragEnterCount = mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"].box(0);
        this.onClick = (e) => {
            const { element, selectOnClick, onItemClickedHandler } = this.props;
            if (onItemClickedHandler && !selectOnClick) {
                // onItemClickedHandler also fires ingest event so log our
                // click first
                this.fireIngestEvent(_types_CollectionViewMetrics__WEBPACK_IMPORTED_MODULE_6__[/* ItemViewEventType */ "b"].Click);
                onItemClickedHandler(element);
            }
            else {
                this._updateSelection(e);
                this.fireIngestEvent(_types_CollectionViewMetrics__WEBPACK_IMPORTED_MODULE_6__[/* ItemViewEventType */ "b"].Click);
            }
            try {
                // eslint-disable-next-line react/no-find-dom-node
                react_dom__WEBPACK_IMPORTED_MODULE_2___default.a.findDOMNode(this).focus();
            }
            catch (err) {
                // not mounted in unit tests
            }
        };
        this.onDoubleClick = () => {
            const { element, onItemClickedHandler, doubleClickToOpen, doubleClickToPreview } = this.props;
            if (doubleClickToOpen || doubleClickToPreview) {
                onItemClickedHandler && onItemClickedHandler(element);
            }
        };
        this.onCheckboxSelection = (e) => {
            this._updateSelection(e);
            this.fireIngestEvent(_types_CollectionViewMetrics__WEBPACK_IMPORTED_MODULE_6__[/* ItemViewEventType */ "b"].Click);
            try {
                // eslint-disable-next-line react/no-find-dom-node
                react_dom__WEBPACK_IMPORTED_MODULE_2___default.a.findDOMNode(this).focus();
            }
            catch (err) {
                // not mounted in unit tests
            }
        };
        this.onKeyDown = (e) => {
            const { focusManagementEnabled, doubleClickToOpen, doubleClickToPreview } = this.props;
            if (focusManagementEnabled) {
                switch (e.key) {
                    case ' ':
                        this._updateSelection(e);
                        e.preventDefault(); // prevent scrolling down
                        break;
                    case 'Enter':
                        if (doubleClickToOpen || doubleClickToPreview) {
                            this.onDoubleClick();
                        }
                        else {
                            this.onClick(e);
                        }
                        break;
                    default:
                        break;
                }
            }
        };
        this.onContextMenu = (e) => {
            const { disabled, element, onItemContextMenu, actionMenuItems = [], } = this.props;
            if (onItemContextMenu && !disabled) {
                onItemContextMenu(e, element, actionMenuItems);
            }
        };
        this.onDragStart = (e) => {
            const { element, onItemDragStart, disabled, dragDisabled } = this.props;
            if (onItemDragStart && !disabled && !dragDisabled) {
                onItemDragStart(element, e);
            }
        };
        this.onDragEnter = (e) => {
            const { element, onItemDragEnter, disabled } = this.props;
            if (onItemDragEnter && !disabled) {
                onItemDragEnter(element, e);
                // If the handler calls preventDefault, then this target is a valid drop target
                if (e.defaultPrevented) {
                    this.incrDragEnterCount();
                }
            }
        };
        this.onDragLeave = (e) => {
            e.preventDefault();
            this.decrDragEnterCount();
            const { element, onItemDragLeave } = this.props;
            const isExitingViewItem = Object(_utils_drag_utils__WEBPACK_IMPORTED_MODULE_4__[/* isLastDragLeave */ "j"])(e);
            if (isExitingViewItem && onItemDragLeave) {
                onItemDragLeave(element, e);
            }
        };
        this.onDragTimerEnd = () => {
            const { element, onDragTimerEnd } = this.props;
            if (onDragTimerEnd) {
                onDragTimerEnd(element);
            }
        };
        this.onDrop = (e) => {
            const { onItemDrop, element, disabled } = this.props;
            if (onItemDrop && !disabled) {
                onItemDrop(element, e);
                this.clearDragEnterCount();
            }
        };
    }
    componentDidMount() {
        const { element, onDocMounted } = this.props;
        if (onDocMounted) {
            onDocMounted(element);
        }
        // Use isValidDropTarget reaction on a delay. The reaction will occur when it transitions from
        // false to true and vice versa. Only call onDragTimerEnd when it transitions to true.
        this.disposer = Object(mobx__WEBPACK_IMPORTED_MODULE_0__[/* reaction */ "B"])(() => this.isValidDropTarget, () => {
            if (this.isValidDropTarget) {
                this.onDragTimerEnd();
            }
        }, {
            delay: DRAG_TIMER_DURATION_MS,
        });
    }
    componentWillUnmount() {
        const { element, onDocUnmounted } = this.props;
        onDocUnmounted && onDocUnmounted(element);
        this.disposer();
    }
    get isValidDropTarget() {
        return this.dragEnterCount.get() > 0;
    }
    incrDragEnterCount() {
        this.dragEnterCount.set(this.dragEnterCount.get() + 1);
    }
    decrDragEnterCount() {
        const current = this.dragEnterCount.get();
        if (current > 0) {
            this.dragEnterCount.set(current - 1);
        }
    }
    clearDragEnterCount() {
        this.dragEnterCount.set(0);
    }
    get isRenaming() {
        const { element, renaming } = this.props;
        return (renaming === null || renaming === void 0 ? void 0 : renaming.id) === element.id;
    }
    get isDragDisabled() {
        const { disabled, dragDisabled } = this.props;
        return !!(disabled || this.isRenaming || dragDisabled); // explicit convert to boolean
    }
    _updateSelection(e) {
        const { element, onItemSelected } = this.props;
        if (onItemSelected) {
            const extendSelectionMode = Object(_utils_get_extend_selection_mode__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"])(e);
            onItemSelected(element, extendSelectionMode);
        }
    }
    /**
     * Fires an ingest event for grid/list item
     */
    fireIngestEvent(itemViewEventType) {
        var _a, _b;
        const { ingestSubcategory, element } = this.props;
        (_b = (_a = this.metrics) === null || _a === void 0 ? void 0 : _a.logItemViewMetric) === null || _b === void 0 ? void 0 : _b.call(_a, {
            ingestSubcategory,
            element,
            itemViewEventType,
        });
    }
    renderMetadata() {
        var _a;
        const { element, metadataFormat } = this.props;
        const fileExt = (_a = element.fileExtension) === null || _a === void 0 ? void 0 : _a.trim().toUpperCase();
        const fileExtContent = fileExt && react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("span", { className: "itemType" }, fileExt);
        const metadataContent = metadataFormat === null || metadataFormat === void 0 ? void 0 : metadataFormat(element);
        return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](react__WEBPACK_IMPORTED_MODULE_1__["Fragment"], null,
            fileExtContent,
            fileExtContent && metadataContent && react__WEBPACK_IMPORTED_MODULE_1__["createElement"](react__WEBPACK_IMPORTED_MODULE_1__["Fragment"], null, "\u00A0\u2022\u00A0"),
            metadataContent));
    }
}
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", typeof (_a = typeof mobx__WEBPACK_IMPORTED_MODULE_0__["IObservableValue"] !== "undefined" && mobx__WEBPACK_IMPORTED_MODULE_0__["IObservableValue"]) === "function" ? _a : Object)
], ViewItem.prototype, "dragEnterCount", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], ViewItem.prototype, "isValidDropTarget", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", []),
    __metadata("design:returntype", void 0)
], ViewItem.prototype, "incrDragEnterCount", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", []),
    __metadata("design:returntype", void 0)
], ViewItem.prototype, "decrDragEnterCount", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", []),
    __metadata("design:returntype", void 0)
], ViewItem.prototype, "clearDragEnterCount", null);
/* harmony default export */ __webpack_exports__["b"] = (ViewItem);



/***/ }),

/***/ "0iqa":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("Fojr"),
      24: __webpack_require__("Tkqu")
    }
  }));
};

WrappedIcon.displayName = 'Building';
exports.default = WrappedIcon;

/***/ }),

/***/ "0l7b":
/***/ (function(module) {

module.exports = JSON.parse("{\"Breadcrumbs\":\"탐색 표시\"}");

/***/ }),

/***/ "0l93":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, props, _react2.default.createElement("svg", {
    className: "spectrum-UIIcon-Magnifier"
  }, _react2.default.createElement("path", {
    d: "M15.77 14.709l-4.534-4.534a6.013 6.013 0 1 0-1.061 1.061l4.534 4.534a.75.75 0 1 0 1.061-1.061zM6.5 11A4.5 4.5 0 1 1 11 6.5 4.505 4.505 0 0 1 6.5 11z",
    className: "spectrum-UIIcon--medium"
  }), _react2.default.createElement("path", {
    d: "M19.77 18.709l-5.464-5.463a7.5 7.5 0 1 0-1.06 1.06l5.463 5.464a.75.75 0 1 0 1.061-1.061zM2.5 8.5a6 6 0 1 1 6 6 6.007 6.007 0 0 1-6-6z",
    className: "spectrum-UIIcon--large"
  })));
};

WrappedIcon.displayName = 'Magnifier';
exports.default = WrappedIcon;

/***/ }),

/***/ "0sQS":
/***/ (function(module) {

module.exports = JSON.parse("{\"Breadcrumbs\":\"Навигация\"}");

/***/ }),

/***/ "0tVQ":
/***/ (function(module, exports, __webpack_require__) {

__webpack_require__("FlQf");

__webpack_require__("VJsP");

module.exports = __webpack_require__("WEpk").Array.from;

/***/ }),

/***/ "0ubR":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* unused harmony export Platform */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return isWindows; });
/* unused harmony export normalizePlatform */
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
var Platform;
(function (Platform) {
    Platform["mac"] = "mac";
    Platform["win"] = "win";
    Platform["web"] = "web";
    Platform["unset"] = "unset";
})(Platform || (Platform = {}));
/**
 * Utility for checking if windows
 */
function isWindows() {
    return normalizePlatform(navigator.platform) === Platform.win;
}
/**
 * Get the normalized platform enum based on a provided platform string.
 *
 * @param platformString        platform string to check
 * @return normalized Platform enum.
 */
function normalizePlatform(platformString) {
    if (!platformString) {
        // '' is falsey
        return Platform.unset;
    }
    const platform = platformString.toLowerCase();
    // UXP can return `darwin` when platform is queried by accessing
    // the .navigator property; or global.process.platform however,
    // host data will usually return 'mac' for the platform - so we
    // need to normalize it for use so we dont have multiple checks
    if (platform.indexOf('darwin') > -1 || platform.indexOf('mac') > -1) {
        return Platform.mac;
    }
    if (platform.indexOf('win') > -1) {
        return Platform.win;
    }
    return Platform.web;
}


/***/ }),

/***/ "0zmA":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return CDOMetrics; });
/* harmony import */ var lodash_merge__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("QkVN");
/* harmony import */ var lodash_merge__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash_merge__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _metrics__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("jaHz");
/* harmony import */ var _types_CollectionViewMetrics__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("b/7Q");



/**
 * An interface to Metrics that React views can inject to simplify logging of metrics
 */
class CDOMetrics {
    constructor(ccxIngest, hostProductData) {
        // Attach enums here so they do not need to be imported in order to log a metric
        this.AssetType = _metrics__WEBPACK_IMPORTED_MODULE_1__[/* AssetType */ "b"];
        this.EventType = _metrics__WEBPACK_IMPORTED_MODULE_1__[/* EventType */ "c"];
        this.MenuType = _metrics__WEBPACK_IMPORTED_MODULE_1__[/* MenuType */ "e"];
        this.Workflow = _metrics__WEBPACK_IMPORTED_MODULE_1__[/* Workflow */ "h"];
        this.ItemViewEventType = _types_CollectionViewMetrics__WEBPACK_IMPORTED_MODULE_2__[/* ItemViewEventType */ "b"];
        this.ccxIngest = ccxIngest;
        this.hostProductData = hostProductData;
    }
    static createCorrelationId() {
        return _metrics__WEBPACK_IMPORTED_MODULE_1__[/* default */ "i"].createCorrelationId();
    }
    // eslint-disable-next-line class-methods-use-this
    createCorrelationId() {
        return CDOMetrics.createCorrelationId();
    }
    setIsOffline(isOfflineStatusFunction) {
        this.isOffline = isOfflineStatusFunction;
    }
    setGetView(setViewFunction) {
        this.getView = setViewFunction;
    }
    /**
     * Generic logging of Ingest events.
     *
     * NOTE: Before using this method to log an event, consider creating a new method to log that *type*
     *       of metric. Metrics often need to be consistent across components, which can only be achieved
     *       by reducing as much repetition as possible.
     *
     * @param data {IAnalyticsData} the metric payload
     */
    fireEvent(data) {
        _metrics__WEBPACK_IMPORTED_MODULE_1__[/* default */ "i"].fireEvent(this.ccxIngest, data, this.isOffline(), this.hostProductData);
    }
    static getCancelledSubtype(actionAnalyticsValue) {
        return _metrics__WEBPACK_IMPORTED_MODULE_1__[/* default */ "i"].getCancelledSubtype(actionAnalyticsValue);
    }
    /**
     * Logs metrics for GridItem and ListItem
     *
     * @param {string} ingestSubcategory
     * @param {ICDOAssetModel} element
     * @param {ItemViewEventType} itemViewEventType
     */
    logItemViewMetric({ ingestSubcategory, element, itemViewEventType }) {
        const data = {
            event: {
                subcategory: ingestSubcategory,
                subtype: 'document',
                type: itemViewEventType,
                workflow: 'Gallery',
            },
            ui: {
                view_type: this.getView(),
            },
            content: {
                size: element.size,
            },
        };
        lodash_merge__WEBPACK_IMPORTED_MODULE_0___default()(data, _metrics__WEBPACK_IMPORTED_MODULE_1__[/* default */ "i"].getAssetData(element));
        // As type is variable itemViewEventType, avoiding only clicks to get logged.
        if (itemViewEventType !== 'click') {
            this.fireEvent(data);
        }
    }
    /**
     * Formats metric data for use in operational metrics
     *
     * @param {string} actionAnalyticsValue
     * @param {string} correlationId
     * @param {ICDOAssetModel} element
     * @param {string} eventType
     * @param {Date} dtsStart
     * @param {number} errorCode
     * @param {string} errorDesc
     * @returns operational metric data
     */
    // eslint-disable-next-line class-methods-use-this
    getOperationalMetricData(actionAnalyticsValue, { correlationId, element, eventType, dtsStart, errorCode, errorDesc, }) {
        return _metrics__WEBPACK_IMPORTED_MODULE_1__[/* default */ "i"].getOperationalMetricData(actionAnalyticsValue, {
            correlationId,
            element,
            eventType,
            dtsStart,
            errorCode,
            errorDesc,
        });
    }
    /**
     * Factory that returns a function which logs SDM analytics for operations
     */
    getOperationalMetricLogger(actionAnalyticsValue) {
        return (data) => {
            this.fireEvent(this.getOperationalMetricData(actionAnalyticsValue, data));
        };
    }
    /**
     * Factory that returns an object to manage metrics for Actions. Usage example:
     *
     *  const usageMetricLogger = cdoMetrics.getUsageMetricLogger(this.someAction, INGEST_SUBCATEGORY);
     *  if (filteredElements.length) {
     *      usageMetricLogger.start(filteredElements, cdoMetrics.EventType.Click, cdoMetrics.MenuType.Context);
     *      await action.execute(...);
     *      usageMetricLogger.success();
     *  } else {
     *      // log cancel metric with elements that were selected at time of cancellation
     *      usageMetricLogger.cancelled(elements);
     *  }
     *
     * @param {Action} action
     * @param {string} ingestSubcategory
     * @returns usageMetricLogger, see usage above
     */
    getUsageMetricLogger(action, ingestSubcategory) {
        const { analyticsValue } = action;
        const logger = {
            correlationId: this.createCorrelationId(),
            dtsStart: undefined,
            elements: undefined,
            type: undefined,
            menu: undefined,
            /**
             * Call before the action is performed
             *
             * @param {ICDOAssetModel[]} elements -- only the elements for which the action will be performed
             * @param {EventType} type
             * @param {MenuType} menu
             */
            start: (elements = [], type = _metrics__WEBPACK_IMPORTED_MODULE_1__[/* EventType */ "c"].Click, menu) => {
                logger.dtsStart = new Date(Date.now());
                logger.elements = elements;
                logger.type = type;
                logger.menu = menu;
                elements.forEach(element => this.logUsageMetric({
                    correlationId: logger.correlationId,
                    element,
                    ingestSubcategory,
                    type,
                    subtype: analyticsValue,
                    menu,
                }, action.getAnalyticsOverrides(element, _metrics__WEBPACK_IMPORTED_MODULE_1__[/* UsageMetricPhase */ "g"].ActionStart)));
            },
            /**
             * Call after the action completes, even if some items didn't complete successfully
             */
            success: () => {
                // Only include the element if exactly 1 element was acted upon
                const element = logger.elements.length === 1 ? logger.elements[0] : undefined;
                this.logUsageMetric({
                    correlationId: logger.correlationId,
                    ingestSubcategory,
                    type: _metrics__WEBPACK_IMPORTED_MODULE_1__[/* EventType */ "c"].Success,
                    subtype: analyticsValue,
                    menu: logger.menu,
                    count: logger.elements.length,
                    element,
                    dtsStart: logger.dtsStart,
                    workflow: _metrics__WEBPACK_IMPORTED_MODULE_1__[/* Workflow */ "h"].Asset,
                }, action.getAnalyticsOverrides(element, _metrics__WEBPACK_IMPORTED_MODULE_1__[/* UsageMetricPhase */ "g"].ActionComplete));
            },
            /**
             * Call with all elements that were selected before the user chose to cancel.
             * @param {ICDOAssetModel[]} elements
             */
            cancel: (elements) => {
                // Only include the element if exactly 1 element was selected
                const element = elements.length === 1 ? elements[0] : undefined;
                this.logUsageMetric({
                    correlationId: logger.correlationId,
                    ingestSubcategory,
                    type: logger.type,
                    subtype: CDOMetrics.getCancelledSubtype(analyticsValue),
                    menu: logger.menu,
                    count: elements.length,
                    element,
                    workflow: _metrics__WEBPACK_IMPORTED_MODULE_1__[/* Workflow */ "h"].Asset,
                }, action.getAnalyticsOverrides(element, _metrics__WEBPACK_IMPORTED_MODULE_1__[/* UsageMetricPhase */ "g"].ActionCancelled));
            },
        };
        return logger;
    }
    /**
     * Same as getOperationalMetricLogger, but for undo operations.
     *
     * @param {string} actionAnalyticsValue -- NOTE: this should match the original operation, not the
     *          operation done to perform the undo. E.g., use 'archive' for the undo operation, even though
     *          it will perform a restore.
     * @returns {IOpMetricLogger}
     */
    getUndoOperationalMetricLogger(actionAnalyticsValue) {
        return this.getOperationalMetricLogger(`${actionAnalyticsValue}-undo`);
    }
    logUsageMetric({ ingestSubcategory, element, count = 1, type = _metrics__WEBPACK_IMPORTED_MODULE_1__[/* EventType */ "c"].Click, subtype, menu, view = this.getView(), dtsStart, workflow = _metrics__WEBPACK_IMPORTED_MODULE_1__[/* default */ "i"].determineUsageSDMWorkflow(element), correlationId, }, analyticsOverrides) {
        const offline = this.isOffline();
        const data = {
            event: {
                workflow: workflow || _metrics__WEBPACK_IMPORTED_MODULE_1__[/* default */ "i"].determineUsageSDMWorkflow(element),
                subcategory: ingestSubcategory,
                type,
                subtype,
                count,
                offline,
            },
            ui: {
                sequence: menu,
                view_type: view,
            },
            context: {},
        };
        if (element) {
            lodash_merge__WEBPACK_IMPORTED_MODULE_0___default()(data, _metrics__WEBPACK_IMPORTED_MODULE_1__[/* default */ "i"].getAssetData(element));
        }
        if (dtsStart) {
            lodash_merge__WEBPACK_IMPORTED_MODULE_0___default()(data, _metrics__WEBPACK_IMPORTED_MODULE_1__[/* default */ "i"].getDurationData(dtsStart));
        }
        if (correlationId) {
            data.context.guid = correlationId;
        }
        if (analyticsOverrides) {
            lodash_merge__WEBPACK_IMPORTED_MODULE_0___default()(data, analyticsOverrides);
        }
        _metrics__WEBPACK_IMPORTED_MODULE_1__[/* default */ "i"].fireEvent(this.ccxIngest, data, offline);
    }
    static parseErrorResponse(response) {
        return {
            errorCode: response.isFakeStatus ? undefined : response.status,
            errorDesc: `${response.source || ''} ${response.statusText}`.trim(),
        };
    }
}
CDOMetrics.AssetType = _metrics__WEBPACK_IMPORTED_MODULE_1__[/* AssetType */ "b"];
CDOMetrics.EventType = _metrics__WEBPACK_IMPORTED_MODULE_1__[/* EventType */ "c"];
CDOMetrics.MenuType = _metrics__WEBPACK_IMPORTED_MODULE_1__[/* MenuType */ "e"];
CDOMetrics.Workflow = _metrics__WEBPACK_IMPORTED_MODULE_1__[/* Workflow */ "h"];
CDOMetrics.ItemViewEventType = _types_CollectionViewMetrics__WEBPACK_IMPORTED_MODULE_2__[/* ItemViewEventType */ "b"];


/***/ }),

/***/ 1:
/***/ (function(module, exports) {

/* (ignored) */

/***/ }),

/***/ "1+hv":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* unused harmony export onEvent */
/* unused harmony export formatShareSheetAssetDataArtifact */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return formatShareSheetTeamsData; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return formatShareSheetAssetData; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return collaboratorAction; });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _react_react_spectrum_Icon__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("trqI");
/* harmony import */ var _react_react_spectrum_Icon__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Icon__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _api_adobe_content_platform_ACPRequest__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("r9Sp");
/* harmony import */ var _interfaces_ShareSheetInterface__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("GXpm");
/* harmony import */ var _utils_parseAcpLinks__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("Cgfd");
/* harmony import */ var _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("mm/P");
/* harmony import */ var _packages_CDOView_utils_action__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("duTG");
/* harmony import */ var _images_Invite_svg__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("DnpN");
/* harmony import */ var _stores_Settings__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("5u1M");
/* harmony import */ var _utils_constants__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__("YVc3");
/* harmony import */ var _utils_formatNameWithNonBreakingSpace__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__("LYaz");
/* harmony import */ var _utils_urls__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__("/YLX");
/* harmony import */ var _utils_SpacesError__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__("R5sx");
/* harmony import */ var _api_adobe_content_platform_resolve__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__("Ove7");














async function onEvent(project, team, selectedDocument, role, event, onLeaveAfter) {
    var _a, _b;
    // Refetch the list since those data from ShareSheet might be inconsistent with
    // Invitation Service GET collaborators response
    // (see https://jira.corp.adobe.com/browse/CCPROJ-2008)
    switch (event.type) {
        case _interfaces_ShareSheetInterface__WEBPACK_IMPORTED_MODULE_3__[/* ShareSheetCallbackType */ "a"].ON_CLOSE:
        case _interfaces_ShareSheetInterface__WEBPACK_IMPORTED_MODULE_3__[/* ShareSheetCallbackType */ "a"].COLLABORATOR_COUNT:
            if (project) {
                project.setNeedsCollaboratorsRefresh();
            }
            if (team) {
                // Refresh the members of the team if needed.
                (_b = (_a = team.collaborators).setNeedsRefresh) === null || _b === void 0 ? void 0 : _b.call(_a);
            }
            if (selectedDocument) {
                selectedDocument.loadShareInfo();
            }
            break;
        case _interfaces_ShareSheetInterface__WEBPACK_IMPORTED_MODULE_3__[/* ShareSheetCallbackType */ "a"].PERMISSION_REVOKED:
            if (project) {
                // If permission is revoked via ShareSheet, we removeProject from list
                // and navigate back to root view
                onLeaveAfter === null || onLeaveAfter === void 0 ? void 0 : onLeaveAfter({ id: project.id });
            }
            if (team) {
                onLeaveAfter === null || onLeaveAfter === void 0 ? void 0 : onLeaveAfter({ id: team.id });
            }
            if (selectedDocument) {
                onLeaveAfter === null || onLeaveAfter === void 0 ? void 0 : onLeaveAfter({ id: selectedDocument.id });
            }
            break;
        default:
            break;
    }
}
// Shared ShareSheet email config for all asset types besides spaceDocument.
const sharedNotificationConfig = {
    acceptance: {
        viewer: 'cc_collab_invite_v2_viewer',
        editor: 'cc_collab_invite_v2_editor',
    },
};
async function formatShareSheetAssetDataArtifact(data, shareData) {
    var _a, _b, _c;
    // Trim off the breaking spaces if artifact. See https://jira.corp.adobe.com/browse/CCPROJ-3036.
    shareData.name = Object(_utils_formatNameWithNonBreakingSpace__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"])((_a = data.name) !== null && _a !== void 0 ? _a : '');
    const res = await Object(_api_adobe_content_platform_resolve__WEBPACK_IMPORTED_MODULE_13__[/* resolveById */ "a"])(data.assetId);
    shareData.resourceId = (_b = res.links.find(ref => ref.rel === _api_adobe_content_platform_ACPRequest__WEBPACK_IMPORTED_MODULE_2__[/* ACPLinks */ "a"].PRIMARY)) === null || _b === void 0 ? void 0 : _b.uri;
    if (_utils_constants__WEBPACK_IMPORTED_MODULE_9__[/* SUPPORTED_PUBLISHED_LINKS */ "D"].includes((_c = data.type) !== null && _c !== void 0 ? _c : '')) {
        try {
            const xdceItem = await data.xdceItem;
            shareData.targetUrl = xdceItem === null || xdceItem === void 0 ? void 0 : xdceItem.href;
            shareData.canComment = xdceItem === null || xdceItem === void 0 ? void 0 : xdceItem.accessInfo.allowComments;
        }
        catch (error) {
            throw 'Failed to get XD url';
        }
    }
    else {
        // TODO: Handling for published items other than XD artifacts
        shareData.targetUrl = `${_stores_Settings__WEBPACK_IMPORTED_MODULE_8__[/* settings */ "b"].config.ASSETS_WEB}/id/${data.assetId}?view=spaces`;
    }
    shareData.emailNotification = {
        ...sharedNotificationConfig,
        sharing: {
            viewer: 'cc_collab_spaces_artifact_invite_notification',
            editor: 'cc_collab_spaces_artifact_invite_notification',
        },
    };
}
function formatShareSheetTeamsData(team) {
    return {
        name: team.name,
        assetId: team.id,
        type: 'team',
        mimeType: '',
        roles: ['EDIT_SHARE'],
        isAncestorShared: false,
        isFolder: true,
        resourceId: Object(_utils_parseAcpLinks__WEBPACK_IMPORTED_MODULE_4__[/* parseAcpBodyLink */ "a"])(team._links, _api_adobe_content_platform_ACPRequest__WEBPACK_IMPORTED_MODULE_2__[/* ACPLinks */ "a"].PRIMARY),
        targetUrl: `${_stores_Settings__WEBPACK_IMPORTED_MODULE_8__[/* settings */ "b"].config.ASSETS_WEB}/teams/${team.id}`,
        emailNotification: {
            ...sharedNotificationConfig,
            sharing: {
                viewer: 'cc_collab_team_invite_notification',
                editor: 'cc_collab_team_invite_notification',
            },
        },
    };
}
/**
 * Construct the appropriate IShareSheetItem config given a particular ShareSheetType and related data.
 *
 * @param data {ISelectedShareSheetData}
 * @returns {Promise<IShareSheetItem>}
 */
async function formatShareSheetAssetData(data) {
    var _a, _b;
    // Setup shared or default config for IShareSheetItem.
    const { role = 'viewer', roles, name = '' } = data;
    const shareData = {
        name,
        assetId: data.assetId,
        type: data.shareSheetType,
        mimeType: (_a = data.type) !== null && _a !== void 0 ? _a : '',
        roles: roles ||
            (role === 'viewer'
                ? ['VIEW', { role: 'VIEW_SHARE', label: 'SHARE', preselected: true }]
                : ['EDIT_SHARE']),
        isFolder: false,
        isAncestorShared: false,
    };
    switch (data.shareSheetType) {
        case _interfaces_ShareSheetInterface__WEBPACK_IMPORTED_MODULE_3__[/* ShareSheetType */ "b"].team:
            shareData.isFolder = true;
            shareData.resourceId = Object(_utils_parseAcpLinks__WEBPACK_IMPORTED_MODULE_4__[/* parseAcpBodyLink */ "a"])(data._links, _api_adobe_content_platform_ACPRequest__WEBPACK_IMPORTED_MODULE_2__[/* ACPLinks */ "a"].PRIMARY);
            shareData.targetUrl = `${_stores_Settings__WEBPACK_IMPORTED_MODULE_8__[/* settings */ "b"].config.ASSETS_WEB}/teams/${data.assetId}`;
            shareData.emailNotification = {
                ...sharedNotificationConfig,
                sharing: {
                    viewer: 'cc_collab_team_invite_notification',
                    editor: 'cc_collab_team_invite_notification',
                },
            };
            break;
        case _interfaces_ShareSheetInterface__WEBPACK_IMPORTED_MODULE_3__[/* ShareSheetType */ "b"].space:
            shareData.isFolder = true;
            shareData.resourceId = Object(_utils_parseAcpLinks__WEBPACK_IMPORTED_MODULE_4__[/* parseAcpBodyLink */ "a"])(data._links, _api_adobe_content_platform_ACPRequest__WEBPACK_IMPORTED_MODULE_2__[/* ACPLinks */ "a"].PRIMARY);
            shareData.targetUrl = Object(_utils_urls__WEBPACK_IMPORTED_MODULE_11__[/* getProjectsUrl */ "g"])(data.assetId);
            shareData.emailNotification = {
                ...sharedNotificationConfig,
                sharing: {
                    viewer: 'cc_collab_projects_document_invite_notification',
                    editor: 'cc_collab_projects_document_invite_notification',
                },
            };
            break;
        case _interfaces_ShareSheetInterface__WEBPACK_IMPORTED_MODULE_3__[/* ShareSheetType */ "b"].spaceDocument:
        case _interfaces_ShareSheetInterface__WEBPACK_IMPORTED_MODULE_3__[/* ShareSheetType */ "b"].canvas:
            // The spaceDocument is from Working Files section so it is of type AdobeAsset. SAM currently fakes the link
            // object for AdobeAsset but it is not usable because the link is not region specific and GET request will
            // fail it.
            // TODO: [SAM-1842] Revisit once SAM js returns the real links object from SAM cpp
            // Spaces cannot tell whether a user will choose to invite to doc directly or invite to space
            // Therefore, Spaces should not set targetURL and instead rely on ShareSheet default location for pending users
            const res = await Object(_api_adobe_content_platform_resolve__WEBPACK_IMPORTED_MODULE_13__[/* resolveById */ "a"])(data.assetId);
            if (_utils_constants__WEBPACK_IMPORTED_MODULE_9__[/* PHOTOSHOP_CLOUD_DOCUMENT_MIMETYPES */ "r"].includes((data === null || data === void 0 ? void 0 : data.type) || '')) {
                shareData.targetUrl = `${_stores_Settings__WEBPACK_IMPORTED_MODULE_8__[/* settings */ "b"].config.PSWEB_ENDPOINT}/id/${data.assetId}`;
            }
            const primaryLink = (_b = res.links.find(ref => ref.rel === _api_adobe_content_platform_ACPRequest__WEBPACK_IMPORTED_MODULE_2__[/* ACPLinks */ "a"]['PRIMARY'])) === null || _b === void 0 ? void 0 : _b.uri;
            shareData.resourceId = primaryLink;
            shareData.emailNotification = {
                ...sharedNotificationConfig,
                sharing: {
                    viewer: 'cc_collab_projects_document_invite_notification',
                    editor: 'cc_collab_projects_document_invite_notification',
                },
            };
            break;
        case _interfaces_ShareSheetInterface__WEBPACK_IMPORTED_MODULE_3__[/* ShareSheetType */ "b"].spaceArtifact:
            await formatShareSheetAssetDataArtifact(data, shareData);
            break;
        default:
            throw new _utils_SpacesError__WEBPACK_IMPORTED_MODULE_12__[/* SpacesError */ "b"]('INVALID_PARAMETER', `formatShareSheetAssetData - Unsupported shareSheetType: ${data.shareSheetType}`);
    }
    if (data.shareSheetType !== _interfaces_ShareSheetInterface__WEBPACK_IMPORTED_MODULE_3__[/* ShareSheetType */ "b"].team) {
        shareData.space = {
            assetId: data.projectId,
            color: data.color,
            name: data.projectName,
        };
    }
    if (data.shareSheetType !== _interfaces_ShareSheetInterface__WEBPACK_IMPORTED_MODULE_3__[/* ShareSheetType */ "b"].team && data.isSharedToTeam) {
        // If has team data, Share Sheet will filter out the team members from directly invited members
        // and show a synthetic card to represent them. Provide this when `invite to space` that are
        // shared to the team or `invite to artifact` in those spaces. Do not provide this when `invite to team`.
        shareData.team = {
            name: data.teamName,
        };
    }
    return shareData;
}
const collaboratorAction = ({ app, getIsButtonDisabled, project, role, openShareSheet, getSpace, getPublishedFile, isVisible = () => true, onLeaveAfter, team, }) => {
    const id = role === 'viewer' ? 'addReviewer' : 'addContributor';
    const label = 'button.invite';
    const icon = (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_react_react_spectrum_Icon__WEBPACK_IMPORTED_MODULE_1___default.a, { size: "S" },
        react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_images_Invite_svg__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"], null)));
    return new _packages_CDOView_utils_action__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"]({
        value: id,
        label,
        icon,
        getIsButtonDisabled,
        getDisabledTooltipMsgId: () => 'tooltip.offline.general',
        supportsMultiple: false,
        buttonVariant: 'tool',
        buttonQuiet: false,
        execute: async (documents) => {
            var _a, _b, _c, _d, _e, _f;
            let selectedDocument;
            const showErrorToast = (closable = false) => app === null || app === void 0 ? void 0 : app.projectsClient.toastManager.addToast(app.intl.formatMessage({ id: 'invite.failure' }), { variant: 'error', closable });
            let selectedProject = project;
            let shareSheetType = project
                ? _interfaces_ShareSheetInterface__WEBPACK_IMPORTED_MODULE_3__[/* ShareSheetType */ "b"].space
                : undefined;
            if (team) {
                shareSheetType = _interfaces_ShareSheetInterface__WEBPACK_IMPORTED_MODULE_3__[/* ShareSheetType */ "b"].team;
            }
            const spaceDocument = getSpace === null || getSpace === void 0 ? void 0 : getSpace(documents[0]);
            if (spaceDocument) {
                selectedProject = spaceDocument;
                shareSheetType = _interfaces_ShareSheetInterface__WEBPACK_IMPORTED_MODULE_3__[/* ShareSheetType */ "b"].space;
            }
            const publishedDocument = getPublishedFile === null || getPublishedFile === void 0 ? void 0 : getPublishedFile(documents[0]);
            if (publishedDocument) {
                selectedDocument = publishedDocument;
                shareSheetType = _interfaces_ShareSheetInterface__WEBPACK_IMPORTED_MODULE_3__[/* ShareSheetType */ "b"].spaceArtifact;
                await publishedDocument.getXDCEItem();
            }
            if (!shareSheetType) {
                showErrorToast();
                return;
            }
            if (selectedProject) {
                const data = {
                    ..._utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_5__[/* default */ "g"].scaffoldEvent(_utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_5__[/* Subcategory */ "c"].AddContributors, _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_5__[/* Subtype */ "d"].modal, _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_5__[/* Type */ "e"].click, _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_5__[/* Workflow */ "f"].Contributors),
                    content: {
                        id: selectedProject.id,
                        name: selectedProject.name,
                        type: selectedProject.type,
                    },
                };
                _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_5__[/* default */ "g"].fireEvent(data);
            }
            try {
                const config = {
                    assetId: (_b = (_a = selectedDocument === null || selectedDocument === void 0 ? void 0 : selectedDocument.id) !== null && _a !== void 0 ? _a : selectedProject === null || selectedProject === void 0 ? void 0 : selectedProject.id) !== null && _b !== void 0 ? _b : team === null || team === void 0 ? void 0 : team.id,
                    projectId: selectedProject === null || selectedProject === void 0 ? void 0 : selectedProject.id,
                    projectName: selectedProject === null || selectedProject === void 0 ? void 0 : selectedProject.name,
                    shareSheetType,
                    role,
                    name: (_d = (_c = selectedDocument === null || selectedDocument === void 0 ? void 0 : selectedDocument.name) !== null && _c !== void 0 ? _c : selectedProject === null || selectedProject === void 0 ? void 0 : selectedProject.name) !== null && _d !== void 0 ? _d : team === null || team === void 0 ? void 0 : team.name,
                    type: (_e = selectedDocument === null || selectedDocument === void 0 ? void 0 : selectedDocument.type) !== null && _e !== void 0 ? _e : selectedProject === null || selectedProject === void 0 ? void 0 : selectedProject.type,
                    color: selectedProject === null || selectedProject === void 0 ? void 0 : selectedProject.color,
                    _links: (_f = selectedProject === null || selectedProject === void 0 ? void 0 : selectedProject._links) !== null && _f !== void 0 ? _f : team === null || team === void 0 ? void 0 : team._links,
                    externalData: selectedDocument === null || selectedDocument === void 0 ? void 0 : selectedDocument.externalData,
                    teamName: selectedProject === null || selectedProject === void 0 ? void 0 : selectedProject.teamName,
                    isSharedToTeam: selectedProject === null || selectedProject === void 0 ? void 0 : selectedProject.isSharedToTeam,
                    xdceItem: selectedDocument === null || selectedDocument === void 0 ? void 0 : selectedDocument.xdceItem,
                };
                openShareSheet === null || openShareSheet === void 0 ? void 0 : openShareSheet(await formatShareSheetAssetData(config), (event) => onEvent(selectedProject, team, publishedDocument, role, event, onLeaveAfter));
            }
            catch (e) {
                showErrorToast(true);
            }
        },
        isVisible: isVisible,
    });
};


/***/ }),

/***/ "16Al":
/***/ (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 = __webpack_require__("WbBG");

function emptyFunction() {}

function emptyFunctionWithReset() {}

emptyFunctionWithReset.resetWarningCache = emptyFunction;

module.exports = function () {
  function shim(props, propName, componentName, location, propFullName, secret) {
    if (secret === ReactPropTypesSecret) {
      // It is still safe when called from React.
      return;
    }

    var err = new Error('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');
    err.name = 'Invariant Violation';
    throw err;
  }

  ;
  shim.isRequired = shim;

  function getShim() {
    return shim;
  }

  ; // Important!
  // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.

  var ReactPropTypes = {
    array: shim,
    bool: shim,
    func: shim,
    number: shim,
    object: shim,
    string: shim,
    symbol: shim,
    any: shim,
    arrayOf: getShim,
    element: shim,
    elementType: shim,
    instanceOf: getShim,
    node: shim,
    objectOf: getShim,
    oneOf: getShim,
    oneOfType: getShim,
    shape: getShim,
    exact: getShim,
    checkPropTypes: emptyFunctionWithReset,
    resetWarningCache: emptyFunction
  };
  ReactPropTypes.PropTypes = ReactPropTypes;
  return ReactPropTypes;
};

/***/ }),

/***/ "17x9":
/***/ (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 (false) { var throwOnDirectAccess, ReactIs; } else {
  // By explicitly using `prop-types` you are opting into new production behavior.
  // http://fb.me/prop-types-in-prod
  module.exports = __webpack_require__("16Al")();
}

/***/ }),

/***/ "1CSz":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var inherits = __webpack_require__("P7XM");

var Buffer = __webpack_require__("hwdV").Buffer;

var Base = __webpack_require__("ZDAU");

var ZEROS = Buffer.alloc(128);
var blocksize = 64;

function Hmac(alg, key) {
  Base.call(this, 'digest');

  if (typeof key === 'string') {
    key = Buffer.from(key);
  }

  this._alg = alg;
  this._key = key;

  if (key.length > blocksize) {
    key = alg(key);
  } else if (key.length < blocksize) {
    key = Buffer.concat([key, ZEROS], blocksize);
  }

  var ipad = this._ipad = Buffer.allocUnsafe(blocksize);
  var opad = this._opad = Buffer.allocUnsafe(blocksize);

  for (var i = 0; i < blocksize; i++) {
    ipad[i] = key[i] ^ 0x36;
    opad[i] = key[i] ^ 0x5C;
  }

  this._hash = [ipad];
}

inherits(Hmac, Base);

Hmac.prototype._update = function (data) {
  this._hash.push(data);
};

Hmac.prototype._final = function () {
  var h = this._alg(Buffer.concat(this._hash));

  return this._alg(Buffer.concat([this._opad, h]));
};

module.exports = Hmac;

/***/ }),

/***/ "1E+m":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Subscribable; });
/*************************************************************************
 *   ADOBE CONFIDENTIAL
 *
 *   Copyright 2022 Adobe
 *   All Rights Reserved.
 *
 *   NOTICE:  All information contained herein is, and remains
 *   the property of Adobe and its suppliers, if any. The intellectual
 *   and technical concepts contained herein are proprietary to Adobe
 *   and its suppliers and are protected by all applicable intellectual
 *   property laws, including trade secret and copyright laws.
 *   Dissemination of this information or reproduction of this material
 *   is strictly forbidden unless prior written permission is obtained
 *   from Adobe.
 **************************************************************************/
/**
 * Extend this class to support multiple clients providing separate callbacks for the same events.
 *
 * @see AssetSyncStateStore for example usage
 * @see CloudStatusStore for example usage
 */
class Subscribable {
    constructor() {
        this.subscriptions = {};
    }
    notifySubscribers(name, ...values) {
        this.initSubscriptionMap(name);
        // eslint-disable-next-line no-restricted-syntax
        for (const fn of this.subscriptions[name].values()) {
            // @ts-ignore TS doesn't know which particular callback fn is here,
            // but it does enforce it correctly when fireCallbackForSubscribers is called
            fn(...values);
        }
    }
    subscribe(name, key, fn) {
        this.initSubscriptionMap(name);
        // @ts-ignore TS doesn't know which particular callback fn is here,
        // but it does enforce it correctly when subscribe is called
        this.subscriptions[name].set(key, fn);
    }
    unsubscribe(name, key) {
        this.initSubscriptionMap(name);
        this.subscriptions[name].delete(key);
    }
    initSubscriptionMap(name) {
        if (!this.subscriptions[name]) {
            this.subscriptions[name] = new Map();
        }
    }
}


/***/ }),

/***/ "1IWx":
/***/ (function(module, exports, __webpack_require__) {

// Copyright Joyent, Inc. and other Node contributors.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to permit
// persons to whom the Software is furnished to do so, subject to the
// following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
// USE OR OTHER DEALINGS IN THE SOFTWARE.
module.exports = Stream;

var EE = __webpack_require__("+qE3").EventEmitter;

var inherits = __webpack_require__("P7XM");

inherits(Stream, EE);
Stream.Readable = __webpack_require__("43KI");
Stream.Writable = __webpack_require__("LGOv");
Stream.Duplex = __webpack_require__("CWBI");
Stream.Transform = __webpack_require__("0XuU");
Stream.PassThrough = __webpack_require__("wq4j"); // Backwards-compat with node 0.4.x

Stream.Stream = Stream; // old-style streams.  Note that the pipe method (the only relevant
// part of this class) is overridden in the Readable class.

function Stream() {
  EE.call(this);
}

Stream.prototype.pipe = function (dest, options) {
  var source = this;

  function ondata(chunk) {
    if (dest.writable) {
      if (false === dest.write(chunk) && source.pause) {
        source.pause();
      }
    }
  }

  source.on('data', ondata);

  function ondrain() {
    if (source.readable && source.resume) {
      source.resume();
    }
  }

  dest.on('drain', ondrain); // If the 'end' option is not supplied, dest.end() will be called when
  // source gets the 'end' or 'close' events.  Only dest.end() once.

  if (!dest._isStdio && (!options || options.end !== false)) {
    source.on('end', onend);
    source.on('close', onclose);
  }

  var didOnEnd = false;

  function onend() {
    if (didOnEnd) return;
    didOnEnd = true;
    dest.end();
  }

  function onclose() {
    if (didOnEnd) return;
    didOnEnd = true;
    if (typeof dest.destroy === 'function') dest.destroy();
  } // don't leave dangling pipes when there are errors.


  function onerror(er) {
    cleanup();

    if (EE.listenerCount(this, 'error') === 0) {
      throw er; // Unhandled stream error in pipe.
    }
  }

  source.on('error', onerror);
  dest.on('error', onerror); // remove all the event listeners that were added.

  function cleanup() {
    source.removeListener('data', ondata);
    dest.removeListener('drain', ondrain);
    source.removeListener('end', onend);
    source.removeListener('close', onclose);
    source.removeListener('error', onerror);
    dest.removeListener('error', onerror);
    source.removeListener('end', cleanup);
    source.removeListener('close', cleanup);
    dest.removeListener('close', cleanup);
  }

  source.on('end', cleanup);
  source.on('close', cleanup);
  dest.on('close', cleanup);
  dest.emit('pipe', source); // Allow for unix-like usage: A.pipe(B).pipe(C)

  return dest;
};

/***/ }),

/***/ "1YGp":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2019 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/

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 __());
  };
}();

var __importDefault = this && this.__importDefault || function (mod) {
  return mod && mod.__esModule ? mod : {
    "default": mod
  };
};

Object.defineProperty(exports, "__esModule", {
  value: true
});

__webpack_require__("cnSC");

var RequestProcessor_1 = __importDefault(__webpack_require__("HyxP"));
/**
 * Handles service-specific response processing for cloud service and acp.local interaction
 */


var PostAssetRequestProcessor =
/** @class */
function (_super) {
  __extends(PostAssetRequestProcessor, _super);

  function PostAssetRequestProcessor() {
    return _super !== null && _super.apply(this, arguments) || this;
  }

  PostAssetRequestProcessor.urlRegex = new RegExp("/cloud-content|/files|/id/");
  PostAssetRequestProcessor.method = ['POST'];
  return PostAssetRequestProcessor;
}(RequestProcessor_1.default);

exports.default = PostAssetRequestProcessor;

/***/ }),

/***/ "1a54":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _InvitationsServiceRequest__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("Xtod");

/* harmony default export */ __webpack_exports__["a"] = (async (urn) => {
    const { parsedBody } = await new _InvitationsServiceRequest__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"](`api/v4/invitations/urn/${urn}`)
        .method('POST')
        .fetch()
        .then(_InvitationsServiceRequest__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].verifyStatus)
        .then(_InvitationsServiceRequest__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].parseJSONResponse);
    return parsedBody;
});


/***/ }),

/***/ "1btc":
/***/ (function(module) {

module.exports = JSON.parse("{\"File\":\"文件\",\"Folder\":\"文件夹\"}");

/***/ }),

/***/ "1gqn":
/***/ (function(module, exports) {

module.exports = function isBuffer(arg) {
  return arg && typeof arg === 'object' && typeof arg.copy === 'function' && typeof arg.fill === 'function' && typeof arg.readUInt8 === 'function';
};

/***/ }),

/***/ "1jQa":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("path", {
  d: "M21.879 20.344a1 1 0 0 1-1.414 0l-4.809-4.809a1 1 0 0 1 0-1.414L23.777 6H3a1 1 0 0 0-1 1v26a1 1 0 0 0 1 1h26a1 1 0 0 0 1-1V12.223z"
}), React.createElement("path", {
  d: "M23.707 2a.5.5 0 0 0-.354.854l3.482 3.482-8.135 8.139a.5.5 0 0 0 0 .707l2.118 2.118a.5.5 0 0 0 .707 0l8.139-8.139 3.482 3.482a.5.5 0 0 0 .854-.35V2z"
}));

/***/ }),

/***/ "1k/2":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var _UxpOptions = _interopRequireDefault(__webpack_require__("zvwv"));

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}
/*************************************************************************
* ADOBE CONFIDENTIAL
* ___________________
*
* Copyright 2019 Adobe
* All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains
* the property of Adobe and its suppliers, if any. The intellectual
* and technical concepts contained herein are proprietary to Adobe
* and its suppliers and are protected by all applicable intellectual
* property laws, including trade secret and copyright laws.
* Dissemination of this information or reproduction of this material
* is strictly forbidden unless prior written permission is obtained
* from Adobe.
**************************************************************************/


module.exports = _UxpOptions.default.select('Radio', () => __webpack_require__("C6Uc"), () => __webpack_require__("C6Uc"), () => __webpack_require__("A1cl"));

/***/ }),

/***/ "1lnv":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("cCFZ");
/* harmony import */ var src_js_iaw_imsBridge__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Mqyo");
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/


/**
 * Only for generic (browser-compatible) network utilities
 */
/**
 * Send authenticated request.
 * @param requestOptions  {Object} request options
 * @param cancelPreviousRequest   {Boolean}
 */
const requestWithAccessToken = (function () {
    let lastRequest = {};
    return function requestWithAccessToken(requestOptions = {}, cancelPreviousRequest = false) {
        return new Promise(async (resolve, reject) => {
            if (src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_0__["mainStore"].online && !src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_0__["mainStore"].user.isFRL && !src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_0__["mainStore"].user.accessToken) {
                await src_js_iaw_imsBridge__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].updateAccessToken();
            }
            const accessToken = src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_0__["mainStore"].user.accessToken;
            if (!accessToken) {
                return reject(new Error('No access token'));
            }
            const newRequestOptions = Object.assign({}, {
                retries: 1,
                retryInterval: 500,
                requestNewToken: null,
            }, requestOptions);
            newRequestOptions.headers = Object.assign({}, newRequestOptions.headers || {}, {
                Authorization: 'Bearer ' + accessToken,
            });
            newRequestOptions.body = JSON.stringify(requestOptions.body);
            if (cancelPreviousRequest && lastRequest.abort) {
                lastRequest.abort();
            }
            lastRequest = fetch(newRequestOptions.url, newRequestOptions)
                .then(resp => {
                if (!resp.ok || resp.status < 200 || resp.status >= 300) {
                    newRequestOptions.retries = newRequestOptions.retries - 1;
                    if (newRequestOptions.retries <= 0) {
                        reject();
                    }
                    else {
                        setTimeout(() => {
                            resolve(requestWithAccessToken(newRequestOptions));
                        }, newRequestOptions.retryInterval);
                    }
                }
                else {
                    resolve(resp);
                }
            })
                .catch(reject);
        });
    };
})();
/**
 * Public API
 */
/* harmony default export */ __webpack_exports__["a"] = ({
    /**
     * Send authenticated request.
     *
     * @param requestOptions  {Object} request options
     * @param cancelPreviousRequest   {Boolean}
     */
    requestWithAccessToken: requestWithAccessToken,
});


/***/ }),

/***/ "1ocO":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = Rule;

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _filterDOMProps = _interopRequireDefault(__webpack_require__("Cv/Q"));

var _propTypes = _interopRequireDefault(__webpack_require__("17x9"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

const _excluded = ["className", "variant"];

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

if (false) {} else if (false) {} else {
  __webpack_require__("gDcu");
}

if (true) __webpack_require__("KPSQ");
if (true) __webpack_require__("8DDb");
if (true) __webpack_require__("2qYJ");
if (true) __webpack_require__("kPc8");

function Rule(_ref) {
  let {
    className,
    variant = 'large'
  } = _ref,
      otherProps = _objectWithoutProperties(_ref, _excluded);

  return /*#__PURE__*/_react.default.createElement("hr", _extends({}, (0, _filterDOMProps.default)(otherProps), {
    className: (0, _classnames.default)('spectrum-Rule', `spectrum-Rule--${variant}`, className)
  }));
}

Rule.propTypes = {
  /** Which Rule variant to render. */
  variant: _propTypes.default.oneOf(['large', 'medium', 'small'])
};

/***/ }),

/***/ "1uYB":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("path", {
  d: "M9.275 16.1H2a1.994 1.994 0 0 0-2 1.987v11.921A1.994 1.994 0 0 0 2 32h7.275a2 2 0 0 1 1.279.46l9.8 9.245A1 1 0 0 0 22 40.938V7.155a1 1 0 0 0-1.642-.762l-9.8 9.245a2.012 2.012 0 0 1-1.283.462zM28.05 24a5.936 5.936 0 0 1-1.142 3.5 1.959 1.959 0 0 0-.382 1.142 1.684 1.684 0 0 0 .407 1.11l.186.217a1.845 1.845 0 0 0 1.24.635 1.677 1.677 0 0 0 1.493-.635 9.725 9.725 0 0 0 0-11.944 1.665 1.665 0 0 0-1.35-.641 1.847 1.847 0 0 0-1.383.642l-.186.217a1.68 1.68 0 0 0-.405 1.038 1.949 1.949 0 0 0 .381 1.214A5.936 5.936 0 0 1 28.05 24z"
}));

/***/ }),

/***/ "1w4i":
/***/ (function(module) {

module.exports = JSON.parse("{\"2.16.840.1.101.3.4.1.1\":\"aes-128-ecb\",\"2.16.840.1.101.3.4.1.2\":\"aes-128-cbc\",\"2.16.840.1.101.3.4.1.3\":\"aes-128-ofb\",\"2.16.840.1.101.3.4.1.4\":\"aes-128-cfb\",\"2.16.840.1.101.3.4.1.21\":\"aes-192-ecb\",\"2.16.840.1.101.3.4.1.22\":\"aes-192-cbc\",\"2.16.840.1.101.3.4.1.23\":\"aes-192-ofb\",\"2.16.840.1.101.3.4.1.24\":\"aes-192-cfb\",\"2.16.840.1.101.3.4.1.41\":\"aes-256-ecb\",\"2.16.840.1.101.3.4.1.42\":\"aes-256-cbc\",\"2.16.840.1.101.3.4.1.43\":\"aes-256-ofb\",\"2.16.840.1.101.3.4.1.44\":\"aes-256-cfb\"}");

/***/ }),

/***/ 2:
/***/ (function(module, exports) {

/* (ignored) */

/***/ }),

/***/ "21yx":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("hO8q"),
      24: __webpack_require__("TeVw")
    }
  }));
};

WrappedIcon.displayName = 'CheckmarkCircle';
exports.default = WrappedIcon;

/***/ }),

/***/ "227d":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* unused harmony export FULL_INVALID_REGEX */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return RESTRICTED_CHARACTERS; });
/* unused harmony export RESTRICTED_FILENAMES */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return flagInvalidName; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return ValidationStatus; });
/* harmony import */ var _utils_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("YVc3");
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2020 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/

// See: https://acpcs.corp.adobe.com/guides/services/service_documentation/servicecontainer/concepts/naming_restrictions_assets_collections.html#further-information
// See also: https://git.corp.adobe.com/pages/caf/api-spec/chapters/syntax.html
/*
Full Regex
^((?:CON|PRN|AUX|NUL|COM[1-9]|LPT[1-9])(?:\.[^.]*)?$)|[\\\:\*\?"\/\|\x00-\x1F]+|[\ \.]$

Restricted File Names
^((?:CON|PRN|AUX|NUL|COM[1-9]|LPT[1-9])(?:\.[^.]*)?$)

Restricted Characters
The restricted characters are: \ / : * ? " | < > and ASCII x00 - x1F
[\\\:\*\?"\/\|<>\x00-\x1F]+

Trailing dot or Space
[\ .]$
*/
const FULL_INVALID_REGEX = /^((?:CON|PRN|AUX|NUL|COM[1-9]|LPT[1-9])(?:\.[^.]*)?$)|[\\\:\*\?"\/\|<>\x00-\x1F]+|[\ \.]$/;
const RESTRICTED_CHARACTERS = /[\\\:\*\?"\/\|<>\x00-\x1F]+|[\ \.]$/;
const RESTRICTED_FILENAMES = /^((?:CON|PRN|AUX|NUL|COM[1-9]|LPT[1-9])(?:\.[^.]*)?$)/;
function flagInvalidName(label, isWeblink, maxLength = _utils_constants__WEBPACK_IMPORTED_MODULE_0__[/* maxNameLength */ "Q"]) {
    let error;
    if (!label.length) {
        error = 'input.invalidEmptyInput';
    }
    else if (label.length > maxLength) {
        error = 'input.nameTooLong';
    }
    else if (label.slice(-1) === '.') {
        error = 'input.nameEndsWithDot';
    }
    else if (RESTRICTED_CHARACTERS.test(label.toUpperCase())) {
        // ToUpperCase because the Regex is case-insensitive.
        error = isWeblink ? 'input.weblink.invalidCharInput' : 'input.name.invalidCharInput';
    }
    else if (RESTRICTED_FILENAMES.test(label.toUpperCase())) {
        error = isWeblink ? 'input.weblink.nameRestricted' : 'input.nameRestricted';
    }
    return error;
}
var ValidationStatus;
(function (ValidationStatus) {
    ValidationStatus["valid"] = "valid";
    ValidationStatus["invalidChar"] = "invalidChar";
    ValidationStatus["invalidName"] = "invalidName";
    // 'charRestriction' means 'too many characters'
    // TODO: maybe rename to `invalidLength` and fix string ids to match
    // Jira: https://jira.corp.adobe.com/browse/CCXCD-2978
    ValidationStatus["charRestriction"] = "charRestriction";
    ValidationStatus["duplicateName"] = "duplicateName";
})(ValidationStatus || (ValidationStatus = {}));


/***/ }),

/***/ "24zS":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(React) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return CCXToastInterface; });
/* harmony import */ var _react_react_spectrum_Toast_js_ToastContainer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("hgTI");
/* harmony import */ var _react_react_spectrum_Toast_js_ToastContainer__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Toast_js_ToastContainer__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _react_react_spectrum_Toast__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("bNpM");
/* harmony import */ var _react_react_spectrum_Toast__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Toast__WEBPACK_IMPORTED_MODULE_1__);
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2022 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/


const styles = __webpack_require__("CCig");
class CCXToastInterface {
    constructor(getContainer) {
        this.toasts = new Map();
        this.toastKey = 0;
        this.getContainer = getContainer;
        this.addToast = this.addToast.bind(this);
        this.removeToast = this.removeToast.bind(this);
    }
    addToast(message, options) {
        const newEvent = type => {
            const event = new Event(type);
            // Set nativeEvent because it might get handled as a React event
            return Object.defineProperty(event, 'nativeEvent', { value: event });
        };
        const key = ++this.toastKey;
        // Stall the toast while we are hovering a toast that has an action button (leverage Toast's onFocus/onBlur handlers)
        const toast = (React.createElement(_react_react_spectrum_Toast__WEBPACK_IMPORTED_MODULE_1__["Toast"], Object.assign({ className: styles.ccxToast }, options, ((options === null || options === void 0 ? void 0 : options.onAction) && {
            onMouseEnter: e => e.currentTarget.dispatchEvent(newEvent('focus')),
            onMouseLeave: e => e.currentTarget.dispatchEvent(newEvent('blur')),
        }), { onClose: data => {
                var _a;
                // Remove toast on timeout from the map.
                this.toasts.delete(key);
                (_a = options === null || options === void 0 ? void 0 : options.onClose) === null || _a === void 0 ? void 0 : _a.call(options, data);
            } }), message));
        const container = this.getContainer();
        this.toasts.set(key, [toast, container]);
        Object(_react_react_spectrum_Toast_js_ToastContainer__WEBPACK_IMPORTED_MODULE_0__["addToast"])(toast, options === null || options === void 0 ? void 0 : options.timeout, container);
        return key;
    }
    removeToast(key) {
        const toastContainerObj = this.toasts.get(key);
        this.toasts.delete(key);
        Object(_react_react_spectrum_Toast_js_ToastContainer__WEBPACK_IMPORTED_MODULE_0__["removeToast"])(toastContainerObj[0], toastContainerObj[1]);
    }
}

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("q1tI")))

/***/ }),

/***/ "27s/":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, props, _react2.default.createElement("svg", {
    className: "spectrum-UIIcon-SuccessMedium"
  }, _react2.default.createElement("path", {
    d: "M9 1a8 8 0 1 0 8 8 8 8 0 0 0-8-8zm5.333 4.54l-6.324 8.13a.6.6 0 0 1-.437.23h-.037a.6.6 0 0 1-.425-.176l-3.893-3.9a.6.6 0 0 1 0-.849l.663-.663a.6.6 0 0 1 .848 0L7.4 10.991l5.256-6.754a.6.6 0 0 1 .843-.1l.728.566a.6.6 0 0 1 .106.837z",
    className: "spectrum-UIIcon--medium"
  }), _react2.default.createElement("path", {
    d: "M11 2a9 9 0 1 0 9 9 9 9 0 0 0-9-9zm5.638 5.609L10.1 15.652a.5.5 0 0 1-.7.073.44.44 0 0 1-.039-.035L5.086 11.5a.5.5 0 0 1 0-.707l.707-.707a.5.5 0 0 1 .707 0L9.6 13.1l5.486-6.751a.5.5 0 0 1 .7-.073l.776.631a.5.5 0 0 1 .076.702z",
    className: "spectrum-UIIcon--large"
  })));
};

WrappedIcon.displayName = 'SuccessMedium';
exports.default = WrappedIcon;

/***/ }),

/***/ "29s/":
/***/ (function(module, exports, __webpack_require__) {

var core = __webpack_require__("WEpk");

var global = __webpack_require__("5T2Y");

var SHARED = '__core-js_shared__';
var store = global[SHARED] || (global[SHARED] = {});
(module.exports = function (key, value) {
  return store[key] || (store[key] = value !== undefined ? value : {});
})('versions', []).push({
  version: core.version,
  mode: __webpack_require__("uOPS") ? 'pure' : 'global',
  copyright: '© 2020 Denis Pushkarev (zloirock.ru)'
});

/***/ }),

/***/ "2B4m":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = setOverlayOnProvider;

var _closest = _interopRequireDefault(__webpack_require__("U6dR"));

var _reactDom = _interopRequireDefault(__webpack_require__("i8i4"));

var _ScrollManager = _interopRequireDefault(__webpack_require__("fIF1"));

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function setOverlayOnProvider(overlayRef, overlayVisibility = false, overlayCallback = undefined, boundingRect = null, hideScollbars = true) {
  if (!overlayRef) {
    return;
  }

  if (boundingRect == null && overlayVisibility) {
    boundingRect = overlayRef.getBoundingClientRect();
  }

  if (hideScollbars) {
    _ScrollManager.default.getInstance().toggleScrollBarsVisibility(overlayVisibility, true, overlayRef, boundingRect);
  }

  const closestContainer = (0, _closest.default)(_reactDom.default.findDOMNode(overlayRef), '.react-spectrum-provider');
  const provider = closestContainer || document.querySelector('.react-spectrum-provider');

  if (provider) {
    let setOverlay = provider.getAttribute('setOverlay');
    let data = {
      visible: overlayVisibility,
      callback: overlayCallback,
      boundingRect: boundingRect
    };

    if (setOverlay) {
      setOverlay(overlayRef, data);
    }
  }
}

/***/ }),

/***/ "2DY1":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


exports.__esModule = true;
exports.default = hyphenate;
var rUpper = /([A-Z])/g;

function hyphenate(string) {
  return string.replace(rUpper, '-$1').toLowerCase();
}

module.exports = exports["default"];

/***/ }),

/***/ "2FJC":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

const _excluded = ["styles"];

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }

function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

var _default = _ref => {
  let {
    styles = {}
  } = _ref,
      props = _objectWithoutProperties(_ref, _excluded);

  return /*#__PURE__*/_react.default.createElement("svg", _extends({
    xmlns: "http://www.w3.org/2000/svg",
    width: "96",
    height: "96",
    viewBox: "0 0 96 96"
  }, props), /*#__PURE__*/_react.default.createElement("defs", null), /*#__PURE__*/_react.default.createElement("g", {
    id: "ICONS_96",
    "data-name": "ICONS 96"
  }, /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M48 33c8.3 0 15 6.7 15 15s-6.7 15-15 15-15-6.7-15-15 6.7-15 15-15zm0-2c-9.4 0-17 7.6-17 17s7.6 17 17 17 17-7.6 17-17-7.6-17-17-17z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M48 45c-1.7 0-3 1.3-3 3s1.3 3 3 3 3-1.3 3-3-1.3-3-3-3z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M40 45c-1.7 0-3 1.3-3 3s1.3 3 3 3 3-1.3 3-3-1.3-3-3-3z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M56 45c-1.7 0-3 1.3-3 3s1.3 3 3 3 3-1.3 3-3-1.3-3-3-3z"
  })));
};

exports.default = _default;

/***/ }),

/***/ "2FbO":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(setImmediate) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return registerCoachMarkToursWithHost; });
/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("2vnA");
/* harmony import */ var _utils_urls__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("/YLX");
/* harmony import */ var _Settings__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("5u1M");
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/



function toExternalStepInfo(intl, step, availableSteps, index) {
    const hasMoreSteps = index + 1 < availableSteps.length;
    const isOneStepTour = availableSteps.length === 1;
    const { link } = step;
    return {
        type: 'coachMark',
        id: `step-${step.id}`,
        stepNumber: step.index,
        target: `#${step.selectorId}`,
        placement: step.placement,
        mandatory: true,
        title: intl.formatMessage({ id: step.titleId }),
        description: intl.formatMessage({ id: step.titleId }),
        cancelLabel: hasMoreSteps ? () => intl.formatMessage({ id: 'button.skipTour' }) : undefined,
        confirmLabel: () => intl.formatMessage({
            id: isOneStepTour ? 'button.ok' : hasMoreSteps ? 'button.next' : 'button.done',
        }),
        linkLabel: link ? () => intl.formatMessage({ id: 'popover.linkout' }) : undefined,
        linkHref: link ? () => Object(_utils_urls__WEBPACK_IMPORTED_MODULE_1__[/* localizedGoUrl */ "j"])(link, intl.appLanguage) : undefined,
    };
}
function toExternalTourInfo(intl, tour) {
    const availableSteps = tour.availableSteps;
    return {
        tourId: tour.id,
        version: tour.version,
        tourContent: availableSteps.map((step, index) => toExternalStepInfo(intl, step, availableSteps, index)),
        onTourEnd: () => tour.markTourCompletedByHost(),
    };
}
function registerCoachMarkToursWithHost(intl, coachMarks, registerHostTour) {
    const registeredTours = new Map();
    Object(mobx__WEBPACK_IMPORTED_MODULE_0__[/* autorun */ "k"])(() => {
        const tours = coachMarks.sortedTours;
        for (const tour of tours) {
            if (!tour.readyToRegisterWithHost) {
                _Settings__WEBPACK_IMPORTED_MODULE_2__[/* settings */ "b"].logger.log(`Tour '${tour.id}' is not available to register yet`);
                // Make sure we will send this tour again in the future once the coachmark steps are visible again.
                registeredTours.delete(tour);
                continue;
            }
            const { registeredStepsHash } = tour;
            if (registeredTours.get(tour) === registeredStepsHash) {
                // If we've already sent this tour before, then there's no need to send it again.
                // Note that we still want to register again when the injection points change in the DOM,
                // so that the host has a chance to move the coachmarks to the correct positions.
                continue;
            }
            // Register the tour with the host app.
            registeredTours.set(tour, registeredStepsHash);
            registerHostTour(toExternalTourInfo(intl, tour));
            _Settings__WEBPACK_IMPORTED_MODULE_2__[/* settings */ "b"].logger.log(`Registered workspaces tour '${tour.id}' with host`);
        }
    }, {
        // Avoid running this too often, by waiting until the DOM is stable again.
        scheduler: setImmediate,
    });
}

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("URgk").setImmediate))

/***/ }),

/***/ "2GTP":
/***/ (function(module, exports, __webpack_require__) {

// optional / simple context binding
var aFunction = __webpack_require__("eaoh");

module.exports = function (fn, that, length) {
  aFunction(fn);
  if (that === undefined) return fn;

  switch (length) {
    case 1:
      return function (a) {
        return fn.call(that, a);
      };

    case 2:
      return function (a, b) {
        return fn.call(that, a, b);
      };

    case 3:
      return function (a, b, c) {
        return fn.call(that, a, b, c);
      };
  }

  return function
    /* ...args */
  () {
    return fn.apply(that, arguments);
  };
};

/***/ }),

/***/ "2Hh/":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("path", {
  d: "M35.087 20.17S29.206 7.832 28.442 5.813c-.729-1.926-1.669-3.729-3.729-3.729-2.31 0-3.511 1.674-3.729 3.729-.063.59-.2 2.474-.361 4.23h-5.249c-.2-2.131-.349-4.134-.358-4.23-.181-2.093-1.016-3.73-3.729-3.73-2.06 0-2.91 1.84-3.729 3.729C6.9 7.322.764 20.447.764 20.447h.014a8.2 8.2 0 1 0 15.73 3.263c0-.252-.015-1.466-.038-1.712h3.058c-.022.246-.038 1.461-.038 1.712a8.2 8.2 0 1 0 15.6-3.542zM8.3 29.082a5.37 5.37 0 1 1 5.37-5.37 5.37 5.37 0 0 1-5.37 5.37zm19.392 0a5.37 5.37 0 1 1 5.37-5.37 5.37 5.37 0 0 1-5.362 5.37z"
}));

/***/ }),

/***/ "2Jql":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _react = _interopRequireWildcard(__webpack_require__("q1tI"));

function _getRequireWildcardCache(nodeInterop) {
  if (typeof WeakMap !== "function") return null;
  var cacheBabelInterop = new WeakMap();
  var cacheNodeInterop = new WeakMap();
  return (_getRequireWildcardCache = function (nodeInterop) {
    return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
  })(nodeInterop);
}

function _interopRequireWildcard(obj, nodeInterop) {
  if (!nodeInterop && obj && obj.__esModule) {
    return obj;
  }

  if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
    return {
      default: obj
    };
  }

  var cache = _getRequireWildcardCache(nodeInterop);

  if (cache && cache.has(obj)) {
    return cache.get(obj);
  }

  var newObj = {};
  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;

  for (var key in obj) {
    if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
      var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;

      if (desc && (desc.get || desc.set)) {
        Object.defineProperty(newObj, key, desc);
      } else {
        newObj[key] = obj[key];
      }
    }
  }

  newObj.default = obj;

  if (cache) {
    cache.set(obj, newObj);
  }

  return newObj;
}
/*************************************************************************
* ADOBE CONFIDENTIAL
* ___________________
*
* Copyright 2019 Adobe
* All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains
* the property of Adobe and its suppliers, if any. The intellectual
* and technical concepts contained herein are proprietary to Adobe
* and its suppliers and are protected by all applicable intellectual
* property laws, including trade secret and copyright laws.
* Dissemination of this information or reproduction of this material
* is strictly forbidden unless prior written permission is obtained
* from Adobe.
**************************************************************************/


class MenuDivider extends _react.Component {
  render() {
    return /*#__PURE__*/_react.default.createElement("li", {
      className: "spectrum-Menu-divider",
      role: "separator"
    });
  }

}

exports.default = MenuDivider;
MenuDivider.displayName = 'MenuDivider';

/***/ }),

/***/ "2KdU":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("path", {
  d: "M18.477.593L22.8 12.029l12.212.578a.51.51 0 0 1 .295.907l-9.54 7.646 3.224 11.793a.51.51 0 0 1-.772.561L18 26.8 7.78 33.515a.51.51 0 0 1-.772-.561l3.224-11.793-9.54-7.646a.51.51 0 0 1 .295-.907l12.213-.579L17.523.593a.51.51 0 0 1 .954 0z"
}));

/***/ }),

/***/ "2Kj/":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("path", {
  d: "M33.191 32.143L28.646 27.6a9.066 9.066 0 1 0-3.046 3.046l4.545 4.545a2.044 2.044 0 0 0 3.048 0A2.131 2.131 0 0 0 33.781 34a2.163 2.163 0 0 0-.59-1.857zM15.412 22.98a5.568 5.568 0 1 1 5.568 5.567 5.568 5.568 0 0 1-5.568-5.567z"
}), React.createElement("path", {
  d: "M33 4H3a1 1 0 0 0-1 1v26a1 1 0 0 0 1 1h11.232a11.312 11.312 0 0 1-2.068-2H4V10h28v17.777l2 1.989V5a1 1 0 0 0-1-1z"
}));

/***/ }),

/***/ "2N20":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("path", {
  d: "M43.4 24.669L23.318 4.586A2 2 0 0 0 21.9 4H6a2 2 0 0 0-2 2v15.9a2 2 0 0 0 .586 1.414L24.68 43.413a2 2 0 0 0 2.829 0L43.4 27.5a2 2 0 0 0 0-2.831zM12 15.5a3.5 3.5 0 1 1 3.5-3.5 3.5 3.5 0 0 1-3.5 3.5z"
}));

/***/ }),

/***/ "2Nb0":
/***/ (function(module, exports, __webpack_require__) {

__webpack_require__("FlQf");

__webpack_require__("bBy9");

module.exports = __webpack_require__("zLkG").f('iterator');

/***/ }),

/***/ "2NdP":
/***/ (function(module, exports) {



/***/ }),

/***/ "2OFw":
/***/ (function(module, exports, __webpack_require__) {

module.exports = __webpack_require__.p + "assets/cdo/default-file-icon.png";

/***/ }),

/***/ "2UD4":
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/* jshint node:true */


var IntlMessageFormat = __webpack_require__("lVBX")['default']; // Add all locale data to `IntlMessageFormat`. This module will be ignored when
// bundling for the browser with Browserify/Webpack.


__webpack_require__(2); // Re-export `IntlMessageFormat` as the CommonJS default exports with all the
// locale data registered, and with English set as the default locale. Define
// the `default` prop for use with other compiled ES6 Modules.


exports = module.exports = IntlMessageFormat;
exports['default'] = exports;

/***/ }),

/***/ "2VgK":
/***/ (function(module) {

module.exports = JSON.parse("{\"Clear search\":\"Keresés törlése\"}");

/***/ }),

/***/ "2au5":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var _UxpOptions = _interopRequireDefault(__webpack_require__("zvwv"));

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}
/*************************************************************************
* ADOBE CONFIDENTIAL
* ___________________
*
* Copyright 2019 Adobe
* All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains
* the property of Adobe and its suppliers, if any. The intellectual
* and technical concepts contained herein are proprietary to Adobe
* and its suppliers and are protected by all applicable intellectual
* property laws, including trade secret and copyright laws.
* Dissemination of this information or reproduction of this material
* is strictly forbidden unless prior written permission is obtained
* from Adobe.
**************************************************************************/


module.exports = _UxpOptions.default.select('Autocomplete', () => __webpack_require__("L4OO"), () => __webpack_require__("KkQt"));

/***/ }),

/***/ "2bdC":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return registerErrorInstrumentation; });
/* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("6hSO");
/* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("8LbN");
/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("FGHR");


/**
 * Configures global error listeners
 */

function registerErrorInstrumentation() {
  Object(_sentry_utils__WEBPACK_IMPORTED_MODULE_0__[/* addInstrumentationHandler */ "a"])('error', errorCallback);
  Object(_sentry_utils__WEBPACK_IMPORTED_MODULE_0__[/* addInstrumentationHandler */ "a"])('unhandledrejection', errorCallback);
}
/**
 * If an error or unhandled promise occurs, we mark the active transaction as failed
 */


function errorCallback() {
  const activeTransaction = Object(_utils_js__WEBPACK_IMPORTED_MODULE_2__[/* getActiveTransaction */ "a"])();

  if (activeTransaction) {
    const status = 'internal_error';
    (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && _sentry_utils__WEBPACK_IMPORTED_MODULE_1__[/* logger */ "c"].log(`[Tracing] Transaction: ${status} -> Global error occured`);
    activeTransaction.setStatus(status);
  }
}



/***/ }),

/***/ "2bk+":
/***/ (function(module, exports, __webpack_require__) {

module.exports = __webpack_require__.p + "assets/start/Banner_Default@2x.png";

/***/ }),

/***/ "2faE":
/***/ (function(module, exports, __webpack_require__) {

var anObject = __webpack_require__("5K7Z");

var IE8_DOM_DEFINE = __webpack_require__("eUtF");

var toPrimitive = __webpack_require__("G8Mo");

var dP = Object.defineProperty;
exports.f = __webpack_require__("jmDH") ? Object.defineProperty : function defineProperty(O, P, Attributes) {
  anObject(O);
  P = toPrimitive(P, true);
  anObject(Attributes);
  if (IE8_DOM_DEFINE) try {
    return dP(O, P, Attributes);
  } catch (e) {
    /* empty */
  }
  if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');
  if ('value' in Attributes) O[P] = Attributes.value;
  return O;
};

/***/ }),

/***/ "2g3H":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _react_react_spectrum_Icon_Copy__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("6twZ");
/* harmony import */ var _react_react_spectrum_Icon_Copy__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Icon_Copy__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var copy_to_clipboard__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("+QRC");
/* harmony import */ var copy_to_clipboard__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(copy_to_clipboard__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _packages_CDOView_utils_action__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("duTG");
/* harmony import */ var _utils_UXPUtils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("LbGp");





/**
 * Ability to copy the durable link of an asset to the clipboard
 * @param ICopyLinkAction
 * @returns Action
 */
const copyLinkAction = ({ app, getSelectedDocument, isVisible }) => new _packages_CDOView_utils_action__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"]({
    value: 'copy-link',
    label: 'button.copyLink',
    icon: react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_react_react_spectrum_Icon_Copy__WEBPACK_IMPORTED_MODULE_1___default.a, null),
    supportsMultiple: false,
    getDisabledTooltipMsgId: () => 'tooltip.offline.general',
    execute: async (documents) => {
        // Bulk selection is not supported for this action
        const document = getSelectedDocument(documents[0]);
        const addErrorToast = () => app.projectsClient.toastManager.addToast(app.intl.formatMessage({ id: 'copyLink.failure' }), {
            closable: true,
            variant: 'error',
        });
        const addSuccessToast = () => app.projectsClient.toastManager.addToast(app.intl.formatMessage({ id: 'copyLink.success' }), {
            closable: true,
            variant: 'success',
        });
        if (!document) {
            addErrorToast();
            return;
        }
        let link = await document.getWeblink();
        if (!link) {
            addErrorToast();
            return;
        }
        if (_utils_UXPUtils__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].usingUXP()) {
            // UXP navigator.clipboard.writeText() does not accept string
            // https://jira.corp.adobe.com/browse/UXP-16649
            // This `object` is to follow UXP demo app setup at:
            // https://git.corp.adobe.com/torq/torq-native/blob/develop/js/app/demos/platform/ClipboardDemo.jsx#L52
            // Force as string to bypass ts check.
            var dataTransferProviders = { 'text/plain': link };
            const acceptedLink = dataTransferProviders;
            navigator.clipboard.writeText(acceptedLink).then(result => {
                addSuccessToast();
            }, error => {
                addErrorToast();
            });
        }
        else {
            copy_to_clipboard__WEBPACK_IMPORTED_MODULE_2___default()(link);
            addSuccessToast();
        }
    },
    isVisible: isVisible,
});
/* harmony default export */ __webpack_exports__["a"] = (copyLinkAction);


/***/ }),

/***/ "2gN3":
/***/ (function(module, exports, __webpack_require__) {

var root = __webpack_require__("Kz5y");
/** Used to detect overreaching core-js shims. */


var coreJsData = root['__core-js_shared__'];
module.exports = coreJsData;

/***/ }),

/***/ "2j6C":
/***/ (function(module, exports) {

module.exports = assert;

function assert(val, msg) {
  if (!val) throw new Error(msg || 'Assertion failed');
}

assert.equal = function assertEqual(l, r, msg) {
  if (l != r) throw new Error(msg || 'Assertion failed: ' + l + ' != ' + r);
};

/***/ }),

/***/ "2mql":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var reactIs = __webpack_require__("TOwV");
/**
 * Copyright 2015, Yahoo! Inc.
 * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
 */


var REACT_STATICS = {
  childContextTypes: true,
  contextType: true,
  contextTypes: true,
  defaultProps: true,
  displayName: true,
  getDefaultProps: true,
  getDerivedStateFromError: true,
  getDerivedStateFromProps: true,
  mixins: true,
  propTypes: true,
  type: true
};
var KNOWN_STATICS = {
  name: true,
  length: true,
  prototype: true,
  caller: true,
  callee: true,
  arguments: true,
  arity: true
};
var FORWARD_REF_STATICS = {
  '$$typeof': true,
  render: true,
  defaultProps: true,
  displayName: true,
  propTypes: true
};
var MEMO_STATICS = {
  '$$typeof': true,
  compare: true,
  defaultProps: true,
  displayName: true,
  propTypes: true,
  type: true
};
var TYPE_STATICS = {};
TYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;
TYPE_STATICS[reactIs.Memo] = MEMO_STATICS;

function getStatics(component) {
  // React v16.11 and below
  if (reactIs.isMemo(component)) {
    return MEMO_STATICS;
  } // React v16.12 and above


  return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;
}

var defineProperty = Object.defineProperty;
var getOwnPropertyNames = Object.getOwnPropertyNames;
var getOwnPropertySymbols = Object.getOwnPropertySymbols;
var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
var getPrototypeOf = Object.getPrototypeOf;
var objectPrototype = Object.prototype;

function hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {
  if (typeof sourceComponent !== 'string') {
    // don't hoist over string (html) components
    if (objectPrototype) {
      var inheritedComponent = getPrototypeOf(sourceComponent);

      if (inheritedComponent && inheritedComponent !== objectPrototype) {
        hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);
      }
    }

    var keys = getOwnPropertyNames(sourceComponent);

    if (getOwnPropertySymbols) {
      keys = keys.concat(getOwnPropertySymbols(sourceComponent));
    }

    var targetStatics = getStatics(targetComponent);
    var sourceStatics = getStatics(sourceComponent);

    for (var i = 0; i < keys.length; ++i) {
      var key = keys[i];

      if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {
        var descriptor = getOwnPropertyDescriptor(sourceComponent, key);

        try {
          // Avoid failures from read-only properties
          defineProperty(targetComponent, key, descriptor);
        } catch (e) {}
      }
    }
  }

  return targetComponent;
}

module.exports = hoistNonReactStatics;

/***/ }),

/***/ "2oH+":
/***/ (function(module, exports, __webpack_require__) {

/* WEBPACK VAR INJECTION */(function(global, module) {/**
 * Lodash (Custom Build) <https://lodash.com/>
 * Build: `lodash modularize exports="npm" -o ./`
 * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
 * Released under MIT license <https://lodash.com/license>
 * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
 * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
 */

/** Used as the size to enable large array optimizations. */
var LARGE_ARRAY_SIZE = 200;
/** Used to stand-in for `undefined` hash values. */

var HASH_UNDEFINED = '__lodash_hash_undefined__';
/** Used to detect hot functions by number of calls within a span of milliseconds. */

var HOT_COUNT = 800,
    HOT_SPAN = 16;
/** Used as references for various `Number` constants. */

var MAX_SAFE_INTEGER = 9007199254740991;
/** `Object#toString` result references. */

var 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]',
    proxyTag = '[object Proxy]',
    regexpTag = '[object RegExp]',
    setTag = '[object Set]',
    stringTag = '[object String]',
    undefinedTag = '[object Undefined]',
    weakMapTag = '[object WeakMap]';
var 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]';
/**
 * Used to match `RegExp`
 * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).
 */

var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
/** Used to detect host constructors (Safari). */

var reIsHostCtor = /^\[object .+?Constructor\]$/;
/** Used to detect unsigned integer values. */

var reIsUint = /^(?:0|[1-9]\d*)$/;
/** Used to identify `toStringTag` values of typed arrays. */

var typedArrayTags = {};
typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = typedArrayTags[uint32Tag] = true;
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] = false;
/** Detect free variable `global` from Node.js. */

var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;
/** Detect free variable `self`. */

var freeSelf = typeof self == 'object' && self && self.Object === Object && self;
/** Used as a reference to the global object. */

var root = freeGlobal || freeSelf || Function('return this')();
/** Detect free variable `exports`. */

var freeExports =  true && exports && !exports.nodeType && exports;
/** Detect free variable `module`. */

var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;
/** Detect the popular CommonJS extension `module.exports`. */

var moduleExports = freeModule && freeModule.exports === freeExports;
/** Detect free variable `process` from Node.js. */

var freeProcess = moduleExports && freeGlobal.process;
/** Used to access faster Node.js helpers. */

var nodeUtil = function () {
  try {
    // Use `util.types` for Node.js 10+.
    var types = freeModule && freeModule.require && freeModule.require('util').types;

    if (types) {
      return types;
    } // Legacy `process.binding('util')` for Node.js < 10.


    return freeProcess && freeProcess.binding && freeProcess.binding('util');
  } catch (e) {}
}();
/* Node.js helper references. */


var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;
/**
 * A faster alternative to `Function#apply`, this function invokes `func`
 * with the `this` binding of `thisArg` and the arguments of `args`.
 *
 * @private
 * @param {Function} func The function to invoke.
 * @param {*} thisArg The `this` binding of `func`.
 * @param {Array} args The arguments to invoke `func` with.
 * @returns {*} Returns the result of `func`.
 */

function apply(func, thisArg, args) {
  switch (args.length) {
    case 0:
      return func.call(thisArg);

    case 1:
      return func.call(thisArg, args[0]);

    case 2:
      return func.call(thisArg, args[0], args[1]);

    case 3:
      return func.call(thisArg, args[0], args[1], args[2]);
  }

  return func.apply(thisArg, args);
}
/**
 * The base implementation of `_.times` without support for iteratee shorthands
 * or max array length checks.
 *
 * @private
 * @param {number} n The number of times to invoke `iteratee`.
 * @param {Function} iteratee The function invoked per iteration.
 * @returns {Array} Returns the array of results.
 */


function baseTimes(n, iteratee) {
  var index = -1,
      result = Array(n);

  while (++index < n) {
    result[index] = iteratee(index);
  }

  return result;
}
/**
 * The base implementation of `_.unary` without support for storing metadata.
 *
 * @private
 * @param {Function} func The function to cap arguments for.
 * @returns {Function} Returns the new capped function.
 */


function baseUnary(func) {
  return function (value) {
    return func(value);
  };
}
/**
 * Gets the value at `key` of `object`.
 *
 * @private
 * @param {Object} [object] The object to query.
 * @param {string} key The key of the property to get.
 * @returns {*} Returns the property value.
 */


function getValue(object, key) {
  return object == null ? undefined : object[key];
}
/**
 * Creates a unary function that invokes `func` with its argument transformed.
 *
 * @private
 * @param {Function} func The function to wrap.
 * @param {Function} transform The argument transform.
 * @returns {Function} Returns the new function.
 */


function overArg(func, transform) {
  return function (arg) {
    return func(transform(arg));
  };
}
/** Used for built-in method references. */


var arrayProto = Array.prototype,
    funcProto = Function.prototype,
    objectProto = Object.prototype;
/** Used to detect overreaching core-js shims. */

var coreJsData = root['__core-js_shared__'];
/** Used to resolve the decompiled source of functions. */

var funcToString = funcProto.toString;
/** Used to check objects for own properties. */

var hasOwnProperty = objectProto.hasOwnProperty;
/** Used to detect methods masquerading as native. */

var maskSrcKey = function () {
  var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');
  return uid ? 'Symbol(src)_1.' + uid : '';
}();
/**
 * Used to resolve the
 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
 * of values.
 */


var nativeObjectToString = objectProto.toString;
/** Used to infer the `Object` constructor. */

var objectCtorString = funcToString.call(Object);
/** Used to detect if a method is native. */

var reIsNative = RegExp('^' + funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&').replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$');
/** Built-in value references. */

var 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,
    symToStringTag = Symbol ? Symbol.toStringTag : undefined;

var defineProperty = function () {
  try {
    var func = getNative(Object, 'defineProperty');
    func({}, '', {});
    return func;
  } catch (e) {}
}();
/* Built-in method references for those with the same name as other `lodash` methods. */


var nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,
    nativeMax = Math.max,
    nativeNow = Date.now;
/* Built-in method references that are verified to be native. */

var Map = getNative(root, 'Map'),
    nativeCreate = getNative(Object, 'create');
/**
 * The base implementation of `_.create` without support for assigning
 * properties to the created object.
 *
 * @private
 * @param {Object} proto The object to inherit from.
 * @returns {Object} Returns the new object.
 */

var baseCreate = function () {
  function object() {}

  return function (proto) {
    if (!isObject(proto)) {
      return {};
    }

    if (objectCreate) {
      return objectCreate(proto);
    }

    object.prototype = proto;
    var result = new object();
    object.prototype = undefined;
    return result;
  };
}();
/**
 * Creates a hash object.
 *
 * @private
 * @constructor
 * @param {Array} [entries] The key-value pairs to cache.
 */


function Hash(entries) {
  var index = -1,
      length = entries == null ? 0 : entries.length;
  this.clear();

  while (++index < length) {
    var entry = entries[index];
    this.set(entry[0], entry[1]);
  }
}
/**
 * Removes all key-value entries from the hash.
 *
 * @private
 * @name clear
 * @memberOf Hash
 */


function hashClear() {
  this.__data__ = nativeCreate ? nativeCreate(null) : {};
  this.size = 0;
}
/**
 * Removes `key` and its value from the hash.
 *
 * @private
 * @name delete
 * @memberOf Hash
 * @param {Object} hash The hash to modify.
 * @param {string} key The key of the value to remove.
 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
 */


function hashDelete(key) {
  var result = this.has(key) && delete this.__data__[key];
  this.size -= result ? 1 : 0;
  return result;
}
/**
 * Gets the hash value for `key`.
 *
 * @private
 * @name get
 * @memberOf Hash
 * @param {string} key The key of the value to get.
 * @returns {*} Returns the entry value.
 */


function hashGet(key) {
  var data = this.__data__;

  if (nativeCreate) {
    var result = data[key];
    return result === HASH_UNDEFINED ? undefined : result;
  }

  return hasOwnProperty.call(data, key) ? data[key] : undefined;
}
/**
 * Checks if a hash value for `key` exists.
 *
 * @private
 * @name has
 * @memberOf Hash
 * @param {string} key The key of the entry to check.
 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
 */


function hashHas(key) {
  var data = this.__data__;
  return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);
}
/**
 * Sets the hash `key` to `value`.
 *
 * @private
 * @name set
 * @memberOf Hash
 * @param {string} key The key of the value to set.
 * @param {*} value The value to set.
 * @returns {Object} Returns the hash instance.
 */


function hashSet(key, value) {
  var data = this.__data__;
  this.size += this.has(key) ? 0 : 1;
  data[key] = nativeCreate && value === undefined ? HASH_UNDEFINED : value;
  return this;
} // Add methods to `Hash`.


Hash.prototype.clear = hashClear;
Hash.prototype['delete'] = hashDelete;
Hash.prototype.get = hashGet;
Hash.prototype.has = hashHas;
Hash.prototype.set = hashSet;
/**
 * Creates an list cache object.
 *
 * @private
 * @constructor
 * @param {Array} [entries] The key-value pairs to cache.
 */

function ListCache(entries) {
  var index = -1,
      length = entries == null ? 0 : entries.length;
  this.clear();

  while (++index < length) {
    var entry = entries[index];
    this.set(entry[0], entry[1]);
  }
}
/**
 * Removes all key-value entries from the list cache.
 *
 * @private
 * @name clear
 * @memberOf ListCache
 */


function listCacheClear() {
  this.__data__ = [];
  this.size = 0;
}
/**
 * Removes `key` and its value from the list cache.
 *
 * @private
 * @name delete
 * @memberOf ListCache
 * @param {string} key The key of the value to remove.
 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
 */


function listCacheDelete(key) {
  var data = this.__data__,
      index = assocIndexOf(data, key);

  if (index < 0) {
    return false;
  }

  var lastIndex = data.length - 1;

  if (index == lastIndex) {
    data.pop();
  } else {
    splice.call(data, index, 1);
  }

  --this.size;
  return true;
}
/**
 * Gets the list cache value for `key`.
 *
 * @private
 * @name get
 * @memberOf ListCache
 * @param {string} key The key of the value to get.
 * @returns {*} Returns the entry value.
 */


function listCacheGet(key) {
  var data = this.__data__,
      index = assocIndexOf(data, key);
  return index < 0 ? undefined : data[index][1];
}
/**
 * Checks if a list cache value for `key` exists.
 *
 * @private
 * @name has
 * @memberOf ListCache
 * @param {string} key The key of the entry to check.
 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
 */


function listCacheHas(key) {
  return assocIndexOf(this.__data__, key) > -1;
}
/**
 * Sets the list cache `key` to `value`.
 *
 * @private
 * @name set
 * @memberOf ListCache
 * @param {string} key The key of the value to set.
 * @param {*} value The value to set.
 * @returns {Object} Returns the list cache instance.
 */


function listCacheSet(key, value) {
  var data = this.__data__,
      index = assocIndexOf(data, key);

  if (index < 0) {
    ++this.size;
    data.push([key, value]);
  } else {
    data[index][1] = value;
  }

  return this;
} // Add methods to `ListCache`.


ListCache.prototype.clear = listCacheClear;
ListCache.prototype['delete'] = listCacheDelete;
ListCache.prototype.get = listCacheGet;
ListCache.prototype.has = listCacheHas;
ListCache.prototype.set = listCacheSet;
/**
 * Creates a map cache object to store key-value pairs.
 *
 * @private
 * @constructor
 * @param {Array} [entries] The key-value pairs to cache.
 */

function MapCache(entries) {
  var index = -1,
      length = entries == null ? 0 : entries.length;
  this.clear();

  while (++index < length) {
    var entry = entries[index];
    this.set(entry[0], entry[1]);
  }
}
/**
 * Removes all key-value entries from the map.
 *
 * @private
 * @name clear
 * @memberOf MapCache
 */


function mapCacheClear() {
  this.size = 0;
  this.__data__ = {
    'hash': new Hash(),
    'map': new (Map || ListCache)(),
    'string': new Hash()
  };
}
/**
 * Removes `key` and its value from the map.
 *
 * @private
 * @name delete
 * @memberOf MapCache
 * @param {string} key The key of the value to remove.
 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
 */


function mapCacheDelete(key) {
  var result = getMapData(this, key)['delete'](key);
  this.size -= result ? 1 : 0;
  return result;
}
/**
 * Gets the map value for `key`.
 *
 * @private
 * @name get
 * @memberOf MapCache
 * @param {string} key The key of the value to get.
 * @returns {*} Returns the entry value.
 */


function mapCacheGet(key) {
  return getMapData(this, key).get(key);
}
/**
 * Checks if a map value for `key` exists.
 *
 * @private
 * @name has
 * @memberOf MapCache
 * @param {string} key The key of the entry to check.
 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
 */


function mapCacheHas(key) {
  return getMapData(this, key).has(key);
}
/**
 * Sets the map `key` to `value`.
 *
 * @private
 * @name set
 * @memberOf MapCache
 * @param {string} key The key of the value to set.
 * @param {*} value The value to set.
 * @returns {Object} Returns the map cache instance.
 */


function mapCacheSet(key, value) {
  var data = getMapData(this, key),
      size = data.size;
  data.set(key, value);
  this.size += data.size == size ? 0 : 1;
  return this;
} // Add methods to `MapCache`.


MapCache.prototype.clear = mapCacheClear;
MapCache.prototype['delete'] = mapCacheDelete;
MapCache.prototype.get = mapCacheGet;
MapCache.prototype.has = mapCacheHas;
MapCache.prototype.set = mapCacheSet;
/**
 * Creates a stack cache object to store key-value pairs.
 *
 * @private
 * @constructor
 * @param {Array} [entries] The key-value pairs to cache.
 */

function Stack(entries) {
  var data = this.__data__ = new ListCache(entries);
  this.size = data.size;
}
/**
 * Removes all key-value entries from the stack.
 *
 * @private
 * @name clear
 * @memberOf Stack
 */


function stackClear() {
  this.__data__ = new ListCache();
  this.size = 0;
}
/**
 * Removes `key` and its value from the stack.
 *
 * @private
 * @name delete
 * @memberOf Stack
 * @param {string} key The key of the value to remove.
 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
 */


function stackDelete(key) {
  var data = this.__data__,
      result = data['delete'](key);
  this.size = data.size;
  return result;
}
/**
 * Gets the stack value for `key`.
 *
 * @private
 * @name get
 * @memberOf Stack
 * @param {string} key The key of the value to get.
 * @returns {*} Returns the entry value.
 */


function stackGet(key) {
  return this.__data__.get(key);
}
/**
 * Checks if a stack value for `key` exists.
 *
 * @private
 * @name has
 * @memberOf Stack
 * @param {string} key The key of the entry to check.
 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
 */


function stackHas(key) {
  return this.__data__.has(key);
}
/**
 * Sets the stack `key` to `value`.
 *
 * @private
 * @name set
 * @memberOf Stack
 * @param {string} key The key of the value to set.
 * @param {*} value The value to set.
 * @returns {Object} Returns the stack cache instance.
 */


function stackSet(key, value) {
  var data = this.__data__;

  if (data instanceof ListCache) {
    var pairs = data.__data__;

    if (!Map || pairs.length < LARGE_ARRAY_SIZE - 1) {
      pairs.push([key, value]);
      this.size = ++data.size;
      return this;
    }

    data = this.__data__ = new MapCache(pairs);
  }

  data.set(key, value);
  this.size = data.size;
  return this;
} // Add methods to `Stack`.


Stack.prototype.clear = stackClear;
Stack.prototype['delete'] = stackDelete;
Stack.prototype.get = stackGet;
Stack.prototype.has = stackHas;
Stack.prototype.set = stackSet;
/**
 * Creates an array of the enumerable property names of the array-like `value`.
 *
 * @private
 * @param {*} value The value to query.
 * @param {boolean} inherited Specify returning inherited property names.
 * @returns {Array} Returns the array of property names.
 */

function arrayLikeKeys(value, inherited) {
  var isArr = isArray(value),
      isArg = !isArr && isArguments(value),
      isBuff = !isArr && !isArg && isBuffer(value),
      isType = !isArr && !isArg && !isBuff && isTypedArray(value),
      skipIndexes = isArr || isArg || isBuff || isType,
      result = skipIndexes ? baseTimes(value.length, String) : [],
      length = result.length;

  for (var key in value) {
    if ((inherited || hasOwnProperty.call(value, key)) && !(skipIndexes && ( // Safari 9 has enumerable `arguments.length` in strict mode.
    key == 'length' || // Node.js 0.10 has enumerable non-index properties on buffers.
    isBuff && (key == 'offset' || key == 'parent') || // PhantomJS 2 has enumerable non-index properties on typed arrays.
    isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset') || // Skip index properties.
    isIndex(key, length)))) {
      result.push(key);
    }
  }

  return result;
}
/**
 * This function is like `assignValue` except that it doesn't assign
 * `undefined` values.
 *
 * @private
 * @param {Object} object The object to modify.
 * @param {string} key The key of the property to assign.
 * @param {*} value The value to assign.
 */


function assignMergeValue(object, key, value) {
  if (value !== undefined && !eq(object[key], value) || value === undefined && !(key in object)) {
    baseAssignValue(object, key, value);
  }
}
/**
 * Assigns `value` to `key` of `object` if the existing value is not equivalent
 * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
 * for equality comparisons.
 *
 * @private
 * @param {Object} object The object to modify.
 * @param {string} key The key of the property to assign.
 * @param {*} value The value to assign.
 */


function assignValue(object, key, value) {
  var objValue = object[key];

  if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || value === undefined && !(key in object)) {
    baseAssignValue(object, key, value);
  }
}
/**
 * Gets the index at which the `key` is found in `array` of key-value pairs.
 *
 * @private
 * @param {Array} array The array to inspect.
 * @param {*} key The key to search for.
 * @returns {number} Returns the index of the matched value, else `-1`.
 */


function assocIndexOf(array, key) {
  var length = array.length;

  while (length--) {
    if (eq(array[length][0], key)) {
      return length;
    }
  }

  return -1;
}
/**
 * The base implementation of `assignValue` and `assignMergeValue` without
 * value checks.
 *
 * @private
 * @param {Object} object The object to modify.
 * @param {string} key The key of the property to assign.
 * @param {*} value The value to assign.
 */


function baseAssignValue(object, key, value) {
  if (key == '__proto__' && defineProperty) {
    defineProperty(object, key, {
      'configurable': true,
      'enumerable': true,
      'value': value,
      'writable': true
    });
  } else {
    object[key] = value;
  }
}
/**
 * The base implementation of `baseForOwn` which iterates over `object`
 * properties returned by `keysFunc` and invokes `iteratee` for each property.
 * Iteratee functions may exit iteration early by explicitly returning `false`.
 *
 * @private
 * @param {Object} object The object to iterate over.
 * @param {Function} iteratee The function invoked per iteration.
 * @param {Function} keysFunc The function to get the keys of `object`.
 * @returns {Object} Returns `object`.
 */


var baseFor = createBaseFor();
/**
 * The base implementation of `getTag` without fallbacks for buggy environments.
 *
 * @private
 * @param {*} value The value to query.
 * @returns {string} Returns the `toStringTag`.
 */

function baseGetTag(value) {
  if (value == null) {
    return value === undefined ? undefinedTag : nullTag;
  }

  return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString(value);
}
/**
 * The base implementation of `_.isArguments`.
 *
 * @private
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is an `arguments` object,
 */


function baseIsArguments(value) {
  return isObjectLike(value) && baseGetTag(value) == argsTag;
}
/**
 * The base implementation of `_.isNative` without bad shim checks.
 *
 * @private
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a native function,
 *  else `false`.
 */


function baseIsNative(value) {
  if (!isObject(value) || isMasked(value)) {
    return false;
  }

  var pattern = isFunction(value) ? reIsNative : reIsHostCtor;
  return pattern.test(toSource(value));
}
/**
 * The base implementation of `_.isTypedArray` without Node.js optimizations.
 *
 * @private
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.
 */


function baseIsTypedArray(value) {
  return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[baseGetTag(value)];
}
/**
 * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.
 *
 * @private
 * @param {Object} object The object to query.
 * @returns {Array} Returns the array of property names.
 */


function baseKeysIn(object) {
  if (!isObject(object)) {
    return nativeKeysIn(object);
  }

  var isProto = isPrototype(object),
      result = [];

  for (var key in object) {
    if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {
      result.push(key);
    }
  }

  return result;
}
/**
 * The base implementation of `_.merge` without support for multiple sources.
 *
 * @private
 * @param {Object} object The destination object.
 * @param {Object} source The source object.
 * @param {number} srcIndex The index of `source`.
 * @param {Function} [customizer] The function to customize merged values.
 * @param {Object} [stack] Tracks traversed source values and their merged
 *  counterparts.
 */


function baseMerge(object, source, srcIndex, customizer, stack) {
  if (object === source) {
    return;
  }

  baseFor(source, function (srcValue, key) {
    stack || (stack = new Stack());

    if (isObject(srcValue)) {
      baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);
    } else {
      var newValue = customizer ? customizer(safeGet(object, key), srcValue, key + '', object, source, stack) : undefined;

      if (newValue === undefined) {
        newValue = srcValue;
      }

      assignMergeValue(object, key, newValue);
    }
  }, keysIn);
}
/**
 * A specialized version of `baseMerge` for arrays and objects which performs
 * deep merges and tracks traversed objects enabling objects with circular
 * references to be merged.
 *
 * @private
 * @param {Object} object The destination object.
 * @param {Object} source The source object.
 * @param {string} key The key of the value to merge.
 * @param {number} srcIndex The index of `source`.
 * @param {Function} mergeFunc The function to merge values.
 * @param {Function} [customizer] The function to customize assigned values.
 * @param {Object} [stack] Tracks traversed source values and their merged
 *  counterparts.
 */


function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {
  var objValue = safeGet(object, key),
      srcValue = safeGet(source, key),
      stacked = stack.get(srcValue);

  if (stacked) {
    assignMergeValue(object, key, stacked);
    return;
  }

  var newValue = customizer ? customizer(objValue, srcValue, key + '', object, source, stack) : undefined;
  var isCommon = newValue === undefined;

  if (isCommon) {
    var isArr = isArray(srcValue),
        isBuff = !isArr && isBuffer(srcValue),
        isTyped = !isArr && !isBuff && isTypedArray(srcValue);
    newValue = srcValue;

    if (isArr || isBuff || isTyped) {
      if (isArray(objValue)) {
        newValue = objValue;
      } else if (isArrayLikeObject(objValue)) {
        newValue = copyArray(objValue);
      } else if (isBuff) {
        isCommon = false;
        newValue = cloneBuffer(srcValue, true);
      } else if (isTyped) {
        isCommon = false;
        newValue = cloneTypedArray(srcValue, true);
      } else {
        newValue = [];
      }
    } else if (isPlainObject(srcValue) || isArguments(srcValue)) {
      newValue = objValue;

      if (isArguments(objValue)) {
        newValue = toPlainObject(objValue);
      } else if (!isObject(objValue) || isFunction(objValue)) {
        newValue = initCloneObject(srcValue);
      }
    } else {
      isCommon = false;
    }
  }

  if (isCommon) {
    // Recursively merge objects and arrays (susceptible to call stack limits).
    stack.set(srcValue, newValue);
    mergeFunc(newValue, srcValue, srcIndex, customizer, stack);
    stack['delete'](srcValue);
  }

  assignMergeValue(object, key, newValue);
}
/**
 * The base implementation of `_.rest` which doesn't validate or coerce arguments.
 *
 * @private
 * @param {Function} func The function to apply a rest parameter to.
 * @param {number} [start=func.length-1] The start position of the rest parameter.
 * @returns {Function} Returns the new function.
 */


function baseRest(func, start) {
  return setToString(overRest(func, start, identity), func + '');
}
/**
 * The base implementation of `setToString` without support for hot loop shorting.
 *
 * @private
 * @param {Function} func The function to modify.
 * @param {Function} string The `toString` result.
 * @returns {Function} Returns `func`.
 */


var baseSetToString = !defineProperty ? identity : function (func, string) {
  return defineProperty(func, 'toString', {
    'configurable': true,
    'enumerable': false,
    'value': constant(string),
    'writable': true
  });
};
/**
 * Creates a clone of  `buffer`.
 *
 * @private
 * @param {Buffer} buffer The buffer to clone.
 * @param {boolean} [isDeep] Specify a deep clone.
 * @returns {Buffer} Returns the cloned buffer.
 */

function cloneBuffer(buffer, isDeep) {
  if (isDeep) {
    return buffer.slice();
  }

  var length = buffer.length,
      result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);
  buffer.copy(result);
  return result;
}
/**
 * Creates a clone of `arrayBuffer`.
 *
 * @private
 * @param {ArrayBuffer} arrayBuffer The array buffer to clone.
 * @returns {ArrayBuffer} Returns the cloned array buffer.
 */


function cloneArrayBuffer(arrayBuffer) {
  var result = new arrayBuffer.constructor(arrayBuffer.byteLength);
  new Uint8Array(result).set(new Uint8Array(arrayBuffer));
  return result;
}
/**
 * Creates a clone of `typedArray`.
 *
 * @private
 * @param {Object} typedArray The typed array to clone.
 * @param {boolean} [isDeep] Specify a deep clone.
 * @returns {Object} Returns the cloned typed array.
 */


function cloneTypedArray(typedArray, isDeep) {
  var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;
  return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);
}
/**
 * Copies the values of `source` to `array`.
 *
 * @private
 * @param {Array} source The array to copy values from.
 * @param {Array} [array=[]] The array to copy values to.
 * @returns {Array} Returns `array`.
 */


function copyArray(source, array) {
  var index = -1,
      length = source.length;
  array || (array = Array(length));

  while (++index < length) {
    array[index] = source[index];
  }

  return array;
}
/**
 * Copies properties of `source` to `object`.
 *
 * @private
 * @param {Object} source The object to copy properties from.
 * @param {Array} props The property identifiers to copy.
 * @param {Object} [object={}] The object to copy properties to.
 * @param {Function} [customizer] The function to customize copied values.
 * @returns {Object} Returns `object`.
 */


function copyObject(source, props, object, customizer) {
  var isNew = !object;
  object || (object = {});
  var index = -1,
      length = props.length;

  while (++index < length) {
    var key = props[index];
    var newValue = customizer ? customizer(object[key], source[key], key, object, source) : undefined;

    if (newValue === undefined) {
      newValue = source[key];
    }

    if (isNew) {
      baseAssignValue(object, key, newValue);
    } else {
      assignValue(object, key, newValue);
    }
  }

  return object;
}
/**
 * Creates a function like `_.assign`.
 *
 * @private
 * @param {Function} assigner The function to assign values.
 * @returns {Function} Returns the new assigner function.
 */


function createAssigner(assigner) {
  return baseRest(function (object, sources) {
    var index = -1,
        length = sources.length,
        customizer = length > 1 ? sources[length - 1] : undefined,
        guard = length > 2 ? sources[2] : undefined;
    customizer = assigner.length > 3 && typeof customizer == 'function' ? (length--, customizer) : undefined;

    if (guard && isIterateeCall(sources[0], sources[1], guard)) {
      customizer = length < 3 ? undefined : customizer;
      length = 1;
    }

    object = Object(object);

    while (++index < length) {
      var source = sources[index];

      if (source) {
        assigner(object, source, index, customizer);
      }
    }

    return object;
  });
}
/**
 * Creates a base function for methods like `_.forIn` and `_.forOwn`.
 *
 * @private
 * @param {boolean} [fromRight] Specify iterating from right to left.
 * @returns {Function} Returns the new base function.
 */


function createBaseFor(fromRight) {
  return function (object, iteratee, keysFunc) {
    var index = -1,
        iterable = Object(object),
        props = keysFunc(object),
        length = props.length;

    while (length--) {
      var key = props[fromRight ? length : ++index];

      if (iteratee(iterable[key], key, iterable) === false) {
        break;
      }
    }

    return object;
  };
}
/**
 * Gets the data for `map`.
 *
 * @private
 * @param {Object} map The map to query.
 * @param {string} key The reference key.
 * @returns {*} Returns the map data.
 */


function getMapData(map, key) {
  var data = map.__data__;
  return isKeyable(key) ? data[typeof key == 'string' ? 'string' : 'hash'] : data.map;
}
/**
 * Gets the native function at `key` of `object`.
 *
 * @private
 * @param {Object} object The object to query.
 * @param {string} key The key of the method to get.
 * @returns {*} Returns the function if it's native, else `undefined`.
 */


function getNative(object, key) {
  var value = getValue(object, key);
  return baseIsNative(value) ? value : undefined;
}
/**
 * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.
 *
 * @private
 * @param {*} value The value to query.
 * @returns {string} Returns the raw `toStringTag`.
 */


function getRawTag(value) {
  var isOwn = hasOwnProperty.call(value, symToStringTag),
      tag = value[symToStringTag];

  try {
    value[symToStringTag] = undefined;
    var unmasked = true;
  } catch (e) {}

  var result = nativeObjectToString.call(value);

  if (unmasked) {
    if (isOwn) {
      value[symToStringTag] = tag;
    } else {
      delete value[symToStringTag];
    }
  }

  return result;
}
/**
 * Initializes an object clone.
 *
 * @private
 * @param {Object} object The object to clone.
 * @returns {Object} Returns the initialized clone.
 */


function initCloneObject(object) {
  return typeof object.constructor == 'function' && !isPrototype(object) ? baseCreate(getPrototype(object)) : {};
}
/**
 * Checks if `value` is a valid array-like index.
 *
 * @private
 * @param {*} value The value to check.
 * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.
 * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.
 */


function isIndex(value, length) {
  var type = typeof value;
  length = length == null ? MAX_SAFE_INTEGER : length;
  return !!length && (type == 'number' || type != 'symbol' && reIsUint.test(value)) && value > -1 && value % 1 == 0 && value < length;
}
/**
 * Checks if the given arguments are from an iteratee call.
 *
 * @private
 * @param {*} value The potential iteratee value argument.
 * @param {*} index The potential iteratee index or key argument.
 * @param {*} object The potential iteratee object argument.
 * @returns {boolean} Returns `true` if the arguments are from an iteratee call,
 *  else `false`.
 */


function isIterateeCall(value, index, object) {
  if (!isObject(object)) {
    return false;
  }

  var type = typeof index;

  if (type == 'number' ? isArrayLike(object) && isIndex(index, object.length) : type == 'string' && index in object) {
    return eq(object[index], value);
  }

  return false;
}
/**
 * Checks if `value` is suitable for use as unique object key.
 *
 * @private
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is suitable, else `false`.
 */


function isKeyable(value) {
  var type = typeof value;
  return type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean' ? value !== '__proto__' : value === null;
}
/**
 * Checks if `func` has its source masked.
 *
 * @private
 * @param {Function} func The function to check.
 * @returns {boolean} Returns `true` if `func` is masked, else `false`.
 */


function isMasked(func) {
  return !!maskSrcKey && maskSrcKey in func;
}
/**
 * Checks if `value` is likely a prototype object.
 *
 * @private
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.
 */


function isPrototype(value) {
  var Ctor = value && value.constructor,
      proto = typeof Ctor == 'function' && Ctor.prototype || objectProto;
  return value === proto;
}
/**
 * This function is like
 * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)
 * except that it includes inherited enumerable properties.
 *
 * @private
 * @param {Object} object The object to query.
 * @returns {Array} Returns the array of property names.
 */


function nativeKeysIn(object) {
  var result = [];

  if (object != null) {
    for (var key in Object(object)) {
      result.push(key);
    }
  }

  return result;
}
/**
 * Converts `value` to a string using `Object.prototype.toString`.
 *
 * @private
 * @param {*} value The value to convert.
 * @returns {string} Returns the converted string.
 */


function objectToString(value) {
  return nativeObjectToString.call(value);
}
/**
 * A specialized version of `baseRest` which transforms the rest array.
 *
 * @private
 * @param {Function} func The function to apply a rest parameter to.
 * @param {number} [start=func.length-1] The start position of the rest parameter.
 * @param {Function} transform The rest array transform.
 * @returns {Function} Returns the new function.
 */


function overRest(func, start, transform) {
  start = nativeMax(start === undefined ? func.length - 1 : start, 0);
  return function () {
    var args = arguments,
        index = -1,
        length = nativeMax(args.length - start, 0),
        array = Array(length);

    while (++index < length) {
      array[index] = args[start + index];
    }

    index = -1;
    var otherArgs = Array(start + 1);

    while (++index < start) {
      otherArgs[index] = args[index];
    }

    otherArgs[start] = transform(array);
    return apply(func, this, otherArgs);
  };
}
/**
 * Gets the value at `key`, unless `key` is "__proto__" or "constructor".
 *
 * @private
 * @param {Object} object The object to query.
 * @param {string} key The key of the property to get.
 * @returns {*} Returns the property value.
 */


function safeGet(object, key) {
  if (key === 'constructor' && typeof object[key] === 'function') {
    return;
  }

  if (key == '__proto__') {
    return;
  }

  return object[key];
}
/**
 * Sets the `toString` method of `func` to return `string`.
 *
 * @private
 * @param {Function} func The function to modify.
 * @param {Function} string The `toString` result.
 * @returns {Function} Returns `func`.
 */


var setToString = shortOut(baseSetToString);
/**
 * Creates a function that'll short out and invoke `identity` instead
 * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`
 * milliseconds.
 *
 * @private
 * @param {Function} func The function to restrict.
 * @returns {Function} Returns the new shortable function.
 */

function shortOut(func) {
  var count = 0,
      lastCalled = 0;
  return function () {
    var stamp = nativeNow(),
        remaining = HOT_SPAN - (stamp - lastCalled);
    lastCalled = stamp;

    if (remaining > 0) {
      if (++count >= HOT_COUNT) {
        return arguments[0];
      }
    } else {
      count = 0;
    }

    return func.apply(undefined, arguments);
  };
}
/**
 * Converts `func` to its source code.
 *
 * @private
 * @param {Function} func The function to convert.
 * @returns {string} Returns the source code.
 */


function toSource(func) {
  if (func != null) {
    try {
      return funcToString.call(func);
    } catch (e) {}

    try {
      return func + '';
    } catch (e) {}
  }

  return '';
}
/**
 * Performs a
 * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
 * comparison between two values to determine if they are equivalent.
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to compare.
 * @param {*} other The other value to compare.
 * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
 * @example
 *
 * var object = { 'a': 1 };
 * var other = { 'a': 1 };
 *
 * _.eq(object, object);
 * // => true
 *
 * _.eq(object, other);
 * // => false
 *
 * _.eq('a', 'a');
 * // => true
 *
 * _.eq('a', Object('a'));
 * // => false
 *
 * _.eq(NaN, NaN);
 * // => true
 */


function eq(value, other) {
  return value === other || value !== value && other !== other;
}
/**
 * Checks if `value` is likely an `arguments` object.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is an `arguments` object,
 *  else `false`.
 * @example
 *
 * _.isArguments(function() { return arguments; }());
 * // => true
 *
 * _.isArguments([1, 2, 3]);
 * // => false
 */


var isArguments = baseIsArguments(function () {
  return arguments;
}()) ? baseIsArguments : function (value) {
  return isObjectLike(value) && hasOwnProperty.call(value, 'callee') && !propertyIsEnumerable.call(value, 'callee');
};
/**
 * Checks if `value` is classified as an `Array` object.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is an array, else `false`.
 * @example
 *
 * _.isArray([1, 2, 3]);
 * // => true
 *
 * _.isArray(document.body.children);
 * // => false
 *
 * _.isArray('abc');
 * // => false
 *
 * _.isArray(_.noop);
 * // => false
 */

var isArray = Array.isArray;
/**
 * Checks if `value` is array-like. A value is considered array-like if it's
 * not a function and has a `value.length` that's an integer greater than or
 * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is array-like, else `false`.
 * @example
 *
 * _.isArrayLike([1, 2, 3]);
 * // => true
 *
 * _.isArrayLike(document.body.children);
 * // => true
 *
 * _.isArrayLike('abc');
 * // => true
 *
 * _.isArrayLike(_.noop);
 * // => false
 */

function isArrayLike(value) {
  return value != null && isLength(value.length) && !isFunction(value);
}
/**
 * This method is like `_.isArrayLike` except that it also checks if `value`
 * is an object.
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is an array-like object,
 *  else `false`.
 * @example
 *
 * _.isArrayLikeObject([1, 2, 3]);
 * // => true
 *
 * _.isArrayLikeObject(document.body.children);
 * // => true
 *
 * _.isArrayLikeObject('abc');
 * // => false
 *
 * _.isArrayLikeObject(_.noop);
 * // => false
 */


function isArrayLikeObject(value) {
  return isObjectLike(value) && isArrayLike(value);
}
/**
 * Checks if `value` is a buffer.
 *
 * @static
 * @memberOf _
 * @since 4.3.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.
 * @example
 *
 * _.isBuffer(new Buffer(2));
 * // => true
 *
 * _.isBuffer(new Uint8Array(2));
 * // => false
 */


var isBuffer = nativeIsBuffer || stubFalse;
/**
 * Checks if `value` is classified as a `Function` object.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a function, else `false`.
 * @example
 *
 * _.isFunction(_);
 * // => true
 *
 * _.isFunction(/abc/);
 * // => false
 */

function isFunction(value) {
  if (!isObject(value)) {
    return false;
  } // The use of `Object#toString` avoids issues with the `typeof` operator
  // in Safari 9 which returns 'object' for typed arrays and other constructors.


  var tag = baseGetTag(value);
  return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;
}
/**
 * Checks if `value` is a valid array-like length.
 *
 * **Note:** This method is loosely based on
 * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
 * @example
 *
 * _.isLength(3);
 * // => true
 *
 * _.isLength(Number.MIN_VALUE);
 * // => false
 *
 * _.isLength(Infinity);
 * // => false
 *
 * _.isLength('3');
 * // => false
 */


function isLength(value) {
  return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
}
/**
 * Checks if `value` is the
 * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
 * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is an object, else `false`.
 * @example
 *
 * _.isObject({});
 * // => true
 *
 * _.isObject([1, 2, 3]);
 * // => true
 *
 * _.isObject(_.noop);
 * // => true
 *
 * _.isObject(null);
 * // => false
 */


function isObject(value) {
  var type = typeof value;
  return value != null && (type == 'object' || type == 'function');
}
/**
 * Checks if `value` is object-like. A value is object-like if it's not `null`
 * and has a `typeof` result of "object".
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
 * @example
 *
 * _.isObjectLike({});
 * // => true
 *
 * _.isObjectLike([1, 2, 3]);
 * // => true
 *
 * _.isObjectLike(_.noop);
 * // => false
 *
 * _.isObjectLike(null);
 * // => false
 */


function isObjectLike(value) {
  return value != null && typeof value == 'object';
}
/**
 * Checks if `value` is a plain object, that is, an object created by the
 * `Object` constructor or one with a `[[Prototype]]` of `null`.
 *
 * @static
 * @memberOf _
 * @since 0.8.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.
 * @example
 *
 * function Foo() {
 *   this.a = 1;
 * }
 *
 * _.isPlainObject(new Foo);
 * // => false
 *
 * _.isPlainObject([1, 2, 3]);
 * // => false
 *
 * _.isPlainObject({ 'x': 0, 'y': 0 });
 * // => true
 *
 * _.isPlainObject(Object.create(null));
 * // => true
 */


function isPlainObject(value) {
  if (!isObjectLike(value) || baseGetTag(value) != objectTag) {
    return false;
  }

  var proto = getPrototype(value);

  if (proto === null) {
    return true;
  }

  var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;
  return typeof Ctor == 'function' && Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString;
}
/**
 * Checks if `value` is classified as a typed array.
 *
 * @static
 * @memberOf _
 * @since 3.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.
 * @example
 *
 * _.isTypedArray(new Uint8Array);
 * // => true
 *
 * _.isTypedArray([]);
 * // => false
 */


var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;
/**
 * Converts `value` to a plain object flattening inherited enumerable string
 * keyed properties of `value` to own properties of the plain object.
 *
 * @static
 * @memberOf _
 * @since 3.0.0
 * @category Lang
 * @param {*} value The value to convert.
 * @returns {Object} Returns the converted plain object.
 * @example
 *
 * function Foo() {
 *   this.b = 2;
 * }
 *
 * Foo.prototype.c = 3;
 *
 * _.assign({ 'a': 1 }, new Foo);
 * // => { 'a': 1, 'b': 2 }
 *
 * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));
 * // => { 'a': 1, 'b': 2, 'c': 3 }
 */

function toPlainObject(value) {
  return copyObject(value, keysIn(value));
}
/**
 * Creates an array of the own and inherited enumerable property names of `object`.
 *
 * **Note:** Non-object values are coerced to objects.
 *
 * @static
 * @memberOf _
 * @since 3.0.0
 * @category Object
 * @param {Object} object The object to query.
 * @returns {Array} Returns the array of property names.
 * @example
 *
 * function Foo() {
 *   this.a = 1;
 *   this.b = 2;
 * }
 *
 * Foo.prototype.c = 3;
 *
 * _.keysIn(new Foo);
 * // => ['a', 'b', 'c'] (iteration order is not guaranteed)
 */


function keysIn(object) {
  return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);
}
/**
 * This method is like `_.assign` except that it recursively merges own and
 * inherited enumerable string keyed properties of source objects into the
 * destination object. Source properties that resolve to `undefined` are
 * skipped if a destination value exists. Array and plain object properties
 * are merged recursively. Other objects and value types are overridden by
 * assignment. Source objects are applied from left to right. Subsequent
 * sources overwrite property assignments of previous sources.
 *
 * **Note:** This method mutates `object`.
 *
 * @static
 * @memberOf _
 * @since 0.5.0
 * @category Object
 * @param {Object} object The destination object.
 * @param {...Object} [sources] The source objects.
 * @returns {Object} Returns `object`.
 * @example
 *
 * var object = {
 *   'a': [{ 'b': 2 }, { 'd': 4 }]
 * };
 *
 * var other = {
 *   'a': [{ 'c': 3 }, { 'e': 5 }]
 * };
 *
 * _.merge(object, other);
 * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }
 */


var merge = createAssigner(function (object, source, srcIndex) {
  baseMerge(object, source, srcIndex);
});
/**
 * Creates a function that returns `value`.
 *
 * @static
 * @memberOf _
 * @since 2.4.0
 * @category Util
 * @param {*} value The value to return from the new function.
 * @returns {Function} Returns the new constant function.
 * @example
 *
 * var objects = _.times(2, _.constant({ 'a': 1 }));
 *
 * console.log(objects);
 * // => [{ 'a': 1 }, { 'a': 1 }]
 *
 * console.log(objects[0] === objects[1]);
 * // => true
 */

function constant(value) {
  return function () {
    return value;
  };
}
/**
 * This method returns the first argument it receives.
 *
 * @static
 * @since 0.1.0
 * @memberOf _
 * @category Util
 * @param {*} value Any value.
 * @returns {*} Returns `value`.
 * @example
 *
 * var object = { 'a': 1 };
 *
 * console.log(_.identity(object) === object);
 * // => true
 */


function identity(value) {
  return value;
}
/**
 * This method returns `false`.
 *
 * @static
 * @memberOf _
 * @since 4.13.0
 * @category Util
 * @returns {boolean} Returns `false`.
 * @example
 *
 * _.times(2, _.stubFalse);
 * // => [false, false]
 */


function stubFalse() {
  return false;
}

module.exports = merge;
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("yLpj"), __webpack_require__("YuTi")(module)))

/***/ }),

/***/ "2pmi":
/***/ (function(module, exports) {

/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2020 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/


/***/ }),

/***/ "2pph":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(global) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return createDetectElementResize; });
/**
 * Detect Element Resize.
 * https://github.com/sdecima/javascript-detect-element-resize
 * Sebastian Decima
 *
 * Forked from version 0.5.3; includes the following modifications:
 * 1) Guard against unsafe 'window' and 'document' references (to support SSR).
 * 2) Defer initialization code via a top-level function wrapper (to support SSR).
 * 3) Avoid unnecessary reflows by not measuring size for scroll events bubbling from children.
 * 4) Add nonce for style element.
 **/
function createDetectElementResize(nonce) {
  // Check `document` and `window` in case of server-side rendering
  var _window;

  if (typeof window !== 'undefined') {
    _window = window;
  } else if (typeof self !== 'undefined') {
    _window = self;
  } else {
    _window = global;
  }

  var attachEvent = typeof document !== 'undefined' && document.attachEvent;

  if (!attachEvent) {
    var requestFrame = function () {
      var raf = _window.requestAnimationFrame || _window.mozRequestAnimationFrame || _window.webkitRequestAnimationFrame || function (fn) {
        return _window.setTimeout(fn, 20);
      };

      return function (fn) {
        return raf(fn);
      };
    }();

    var cancelFrame = function () {
      var cancel = _window.cancelAnimationFrame || _window.mozCancelAnimationFrame || _window.webkitCancelAnimationFrame || _window.clearTimeout;
      return function (id) {
        return cancel(id);
      };
    }();

    var resetTriggers = function resetTriggers(element) {
      var triggers = element.__resizeTriggers__,
          expand = triggers.firstElementChild,
          contract = triggers.lastElementChild,
          expandChild = expand.firstElementChild;
      contract.scrollLeft = contract.scrollWidth;
      contract.scrollTop = contract.scrollHeight;
      expandChild.style.width = expand.offsetWidth + 1 + 'px';
      expandChild.style.height = expand.offsetHeight + 1 + 'px';
      expand.scrollLeft = expand.scrollWidth;
      expand.scrollTop = expand.scrollHeight;
    };

    var checkTriggers = function checkTriggers(element) {
      return element.offsetWidth != element.__resizeLast__.width || element.offsetHeight != element.__resizeLast__.height;
    };

    var scrollListener = function scrollListener(e) {
      // Don't measure (which forces) reflow for scrolls that happen inside of children!
      if (e.target.className && typeof e.target.className.indexOf === 'function' && e.target.className.indexOf('contract-trigger') < 0 && e.target.className.indexOf('expand-trigger') < 0) {
        return;
      }

      var element = this;
      resetTriggers(this);

      if (this.__resizeRAF__) {
        cancelFrame(this.__resizeRAF__);
      }

      this.__resizeRAF__ = requestFrame(function () {
        if (checkTriggers(element)) {
          element.__resizeLast__.width = element.offsetWidth;
          element.__resizeLast__.height = element.offsetHeight;

          element.__resizeListeners__.forEach(function (fn) {
            fn.call(element, e);
          });
        }
      });
    };
    /* Detect CSS Animations support to detect element display/re-attach */


    var animation = false,
        keyframeprefix = '',
        animationstartevent = 'animationstart',
        domPrefixes = 'Webkit Moz O ms'.split(' '),
        startEvents = 'webkitAnimationStart animationstart oAnimationStart MSAnimationStart'.split(' '),
        pfx = '';
    {
      var elm = document.createElement('fakeelement');

      if (elm.style.animationName !== undefined) {
        animation = true;
      }

      if (animation === false) {
        for (var i = 0; i < domPrefixes.length; i++) {
          if (elm.style[domPrefixes[i] + 'AnimationName'] !== undefined) {
            pfx = domPrefixes[i];
            keyframeprefix = '-' + pfx.toLowerCase() + '-';
            animationstartevent = startEvents[i];
            animation = true;
            break;
          }
        }
      }
    }
    var animationName = 'resizeanim';
    var animationKeyframes = '@' + keyframeprefix + 'keyframes ' + animationName + ' { from { opacity: 0; } to { opacity: 0; } } ';
    var animationStyle = keyframeprefix + 'animation: 1ms ' + animationName + '; ';
  }

  var createStyles = function createStyles(doc) {
    if (!doc.getElementById('detectElementResize')) {
      //opacity:0 works around a chrome bug https://code.google.com/p/chromium/issues/detail?id=286360
      var css = (animationKeyframes ? animationKeyframes : '') + '.resize-triggers { ' + (animationStyle ? animationStyle : '') + 'visibility: hidden; opacity: 0; } ' + '.resize-triggers, .resize-triggers > div, .contract-trigger:before { content: " "; display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; z-index: -1; } .resize-triggers > div { background: #eee; overflow: auto; } .contract-trigger:before { width: 200%; height: 200%; }',
          head = doc.head || doc.getElementsByTagName('head')[0],
          style = doc.createElement('style');
      style.id = 'detectElementResize';
      style.type = 'text/css';

      if (nonce != null) {
        style.setAttribute('nonce', nonce);
      }

      if (style.styleSheet) {
        style.styleSheet.cssText = css;
      } else {
        style.appendChild(doc.createTextNode(css));
      }

      head.appendChild(style);
    }
  };

  var addResizeListener = function addResizeListener(element, fn) {
    if (attachEvent) {
      element.attachEvent('onresize', fn);
    } else {
      if (!element.__resizeTriggers__) {
        var doc = element.ownerDocument;

        var elementStyle = _window.getComputedStyle(element);

        if (elementStyle && elementStyle.position == 'static') {
          element.style.position = 'relative';
        }

        createStyles(doc);
        element.__resizeLast__ = {};
        element.__resizeListeners__ = [];
        (element.__resizeTriggers__ = doc.createElement('div')).className = 'resize-triggers';
        element.__resizeTriggers__.innerHTML = '<div class="expand-trigger"><div></div></div>' + '<div class="contract-trigger"></div>';
        element.appendChild(element.__resizeTriggers__);
        resetTriggers(element);
        element.addEventListener('scroll', scrollListener, true);
        /* Listen for a css animation to detect element display/re-attach */

        if (animationstartevent) {
          element.__resizeTriggers__.__animationListener__ = function animationListener(e) {
            if (e.animationName == animationName) {
              resetTriggers(element);
            }
          };

          element.__resizeTriggers__.addEventListener(animationstartevent, element.__resizeTriggers__.__animationListener__);
        }
      }

      element.__resizeListeners__.push(fn);
    }
  };

  var removeResizeListener = function removeResizeListener(element, fn) {
    if (attachEvent) {
      element.detachEvent('onresize', fn);
    } else {
      element.__resizeListeners__.splice(element.__resizeListeners__.indexOf(fn), 1);

      if (!element.__resizeListeners__.length) {
        element.removeEventListener('scroll', scrollListener, true);

        if (element.__resizeTriggers__.__animationListener__) {
          element.__resizeTriggers__.removeEventListener(animationstartevent, element.__resizeTriggers__.__animationListener__);

          element.__resizeTriggers__.__animationListener__ = null;
        }

        try {
          element.__resizeTriggers__ = !element.removeChild(element.__resizeTriggers__);
        } catch (e) {// Preact compat; see developit/preact-compat/issues/228
        }
      }
    }
  };

  return {
    addResizeListener: addResizeListener,
    removeResizeListener: removeResizeListener
  };
}
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("yLpj")))

/***/ }),

/***/ "2vnA":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(process, global) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return $mobx; });
/* unused harmony export FlowCancellationError */
/* unused harmony export IDerivationState */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return ObservableMap; });
/* unused harmony export ObservableSet */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return Reaction; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return allowStateChanges; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return allowStateChangesInsideComputed; });
/* unused harmony export _allowStateReadsEnd */
/* unused harmony export _allowStateReadsStart */
/* unused harmony export _endAction */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return getAdministration; });
/* unused harmony export _getGlobalState */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "i", function() { return interceptReads; });
/* unused harmony export _isComputingDerivation */
/* unused harmony export _resetGlobalState */
/* unused harmony export _startAction */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "j", function() { return action; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "k", function() { return autorun; });
/* unused harmony export comparer */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "l", function() { return computed; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "m", function() { return configure; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "n", function() { return createAtom; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "o", function() { return decorate; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "p", function() { return entries; });
/* unused harmony export extendObservable */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "q", function() { return flow; });
/* unused harmony export get */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "r", function() { return getAtom; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "s", function() { return getDebugName; });
/* unused harmony export getDependencyTree */
/* unused harmony export getObserverTree */
/* unused harmony export has */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "t", function() { return intercept; });
/* unused harmony export isAction */
/* unused harmony export isArrayLike */
/* unused harmony export isBoxedObservable */
/* unused harmony export isComputed */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "u", function() { return isComputedProp; });
/* unused harmony export isFlowCancellationError */
/* unused harmony export isObservable */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "v", function() { return isObservableArray; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "w", function() { return isObservableMap; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "x", function() { return isObservableObject; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "y", function() { return isObservableProp; });
/* unused harmony export isObservableSet */
/* unused harmony export keys */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "z", function() { return observable; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "A", function() { return observe; });
/* unused harmony export onBecomeObserved */
/* unused harmony export onBecomeUnobserved */
/* unused harmony export onReactionError */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "B", function() { return reaction; });
/* unused harmony export remove */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "C", function() { return runInAction; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "D", function() { return set; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "E", function() { return spy; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "F", function() { return toJS; });
/* unused harmony export trace */
/* unused harmony export transaction */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "G", function() { return untracked; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "H", function() { return values; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "I", function() { return when; });
/** MobX - (c) Michel Weststrate 2015 - 2020 - MIT Licensed */

/*! *****************************************************************************
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 __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;
}

var OBFUSCATED_ERROR = "An invariant failed, however the error is obfuscated because this is a production build.";
var EMPTY_ARRAY = [];
Object.freeze(EMPTY_ARRAY);
var EMPTY_OBJECT = {};
Object.freeze(EMPTY_OBJECT);

function getNextId() {
  return ++globalState.mobxGuid;
}

function fail(message) {
  invariant(false, message);
  throw "X"; // unreachable
}

function invariant(check, message) {
  if (!check) throw new Error("[mobx] " + (message || OBFUSCATED_ERROR));
}
/**
 * Prints a deprecation message, but only one time.
 * Returns false if the deprecated message was already printed before
 */


var deprecatedMessages = [];

function deprecated(msg, thing) {
  if (true) return false;

  if (thing) {
    return deprecated("'" + msg + "', use '" + thing + "' instead.");
  }

  if (deprecatedMessages.indexOf(msg) !== -1) return false;
  deprecatedMessages.push(msg);
  console.error("[mobx] Deprecated: " + msg);
  return true;
}
/**
 * Makes sure that the provided function is invoked at most once.
 */


function once(func) {
  var invoked = false;
  return function () {
    if (invoked) return;
    invoked = true;
    return func.apply(this, arguments);
  };
}

var noop = function () {};

function unique(list) {
  var res = [];
  list.forEach(function (item) {
    if (res.indexOf(item) === -1) res.push(item);
  });
  return res;
}

function isObject(value) {
  return value !== null && typeof value === "object";
}

function isPlainObject(value) {
  if (value === null || typeof value !== "object") return false;
  var proto = Object.getPrototypeOf(value);
  return proto === Object.prototype || proto === null;
}

function addHiddenProp(object, propName, value) {
  Object.defineProperty(object, propName, {
    enumerable: false,
    writable: true,
    configurable: true,
    value: value
  });
}

function addHiddenFinalProp(object, propName, value) {
  Object.defineProperty(object, propName, {
    enumerable: false,
    writable: false,
    configurable: true,
    value: value
  });
}

function isPropertyConfigurable(object, prop) {
  var descriptor = Object.getOwnPropertyDescriptor(object, prop);
  return !descriptor || descriptor.configurable !== false && descriptor.writable !== false;
}

function assertPropertyConfigurable(object, prop) {
  if (false) {}
}

function createInstanceofPredicate(name, clazz) {
  var propName = "isMobX" + name;
  clazz.prototype[propName] = true;
  return function (x) {
    return isObject(x) && x[propName] === true;
  };
}
/**
 * Returns whether the argument is an array, disregarding observability.
 */


function isArrayLike(x) {
  return Array.isArray(x) || isObservableArray(x);
}

function isES6Map(thing) {
  return thing instanceof Map;
}

function isES6Set(thing) {
  return thing instanceof Set;
}
/**
 * Returns the following: own keys, prototype keys & own symbol keys, if they are enumerable.
 */


function getPlainObjectKeys(object) {
  var enumerables = new Set();

  for (var key in object) enumerables.add(key); // *all* enumerables


  Object.getOwnPropertySymbols(object).forEach(function (k) {
    if (Object.getOwnPropertyDescriptor(object, k).enumerable) enumerables.add(k);
  }); // *own* symbols
  // Note: this implementation is missing enumerable, inherited, symbolic property names! That would however pretty expensive to add,
  // as there is no efficient iterator that returns *all* properties

  return Array.from(enumerables);
}

function stringifyKey(key) {
  if (key && key.toString) return key.toString();else return new String(key).toString();
}

function getMapLikeKeys(map) {
  if (isPlainObject(map)) return Object.keys(map);
  if (Array.isArray(map)) return map.map(function (_a) {
    var _b = __read(_a, 1),
        key = _b[0];

    return key;
  });
  if (isES6Map(map) || isObservableMap(map)) return Array.from(map.keys());
  return fail("Cannot get keys from '" + map + "'");
}

function toPrimitive(value) {
  return value === null ? null : typeof value === "object" ? "" + value : value;
}

var $mobx = Symbol("mobx administration");

var Atom =
/** @class */
function () {
  /**
   * Create a new atom. For debugging purposes it is recommended to give it a name.
   * The onBecomeObserved and onBecomeUnobserved callbacks can be used for resource management.
   */
  function Atom(name) {
    if (name === void 0) {
      name = "Atom@" + getNextId();
    }

    this.name = name;
    this.isPendingUnobservation = false; // for effective unobserving. BaseAtom has true, for extra optimization, so its onBecomeUnobserved never gets called, because it's not needed

    this.isBeingObserved = false;
    this.observers = new Set();
    this.diffValue = 0;
    this.lastAccessedBy = 0;
    this.lowestObserverState = IDerivationState.NOT_TRACKING;
  }

  Atom.prototype.onBecomeObserved = function () {
    if (this.onBecomeObservedListeners) {
      this.onBecomeObservedListeners.forEach(function (listener) {
        return listener();
      });
    }
  };

  Atom.prototype.onBecomeUnobserved = function () {
    if (this.onBecomeUnobservedListeners) {
      this.onBecomeUnobservedListeners.forEach(function (listener) {
        return listener();
      });
    }
  };
  /**
   * Invoke this method to notify mobx that your atom has been used somehow.
   * Returns true if there is currently a reactive context.
   */


  Atom.prototype.reportObserved = function () {
    return reportObserved(this);
  };
  /**
   * Invoke this method _after_ this method has changed to signal mobx that all its observers should invalidate.
   */


  Atom.prototype.reportChanged = function () {
    startBatch();
    propagateChanged(this);
    endBatch();
  };

  Atom.prototype.toString = function () {
    return this.name;
  };

  return Atom;
}();

var isAtom = createInstanceofPredicate("Atom", Atom);

function createAtom(name, onBecomeObservedHandler, onBecomeUnobservedHandler) {
  if (onBecomeObservedHandler === void 0) {
    onBecomeObservedHandler = noop;
  }

  if (onBecomeUnobservedHandler === void 0) {
    onBecomeUnobservedHandler = noop;
  }

  var atom = new Atom(name); // default `noop` listener will not initialize the hook Set

  if (onBecomeObservedHandler !== noop) {
    onBecomeObserved(atom, onBecomeObservedHandler);
  }

  if (onBecomeUnobservedHandler !== noop) {
    onBecomeUnobserved(atom, onBecomeUnobservedHandler);
  }

  return atom;
}

function identityComparer(a, b) {
  return a === b;
}

function structuralComparer(a, b) {
  return deepEqual(a, b);
}

function shallowComparer(a, b) {
  return deepEqual(a, b, 1);
}

function defaultComparer(a, b) {
  return Object.is(a, b);
}

var comparer = {
  identity: identityComparer,
  structural: structuralComparer,
  default: defaultComparer,
  shallow: shallowComparer
};
var mobxDidRunLazyInitializersSymbol = Symbol("mobx did run lazy initializers");
var mobxPendingDecorators = Symbol("mobx pending decorators");
var enumerableDescriptorCache = {};
var nonEnumerableDescriptorCache = {};

function createPropertyInitializerDescriptor(prop, enumerable) {
  var cache = enumerable ? enumerableDescriptorCache : nonEnumerableDescriptorCache;
  return cache[prop] || (cache[prop] = {
    configurable: true,
    enumerable: enumerable,
    get: function () {
      initializeInstance(this);
      return this[prop];
    },
    set: function (value) {
      initializeInstance(this);
      this[prop] = value;
    }
  });
}

function initializeInstance(target) {
  var e_1, _a;

  if (target[mobxDidRunLazyInitializersSymbol] === true) return;
  var decorators = target[mobxPendingDecorators];

  if (decorators) {
    addHiddenProp(target, mobxDidRunLazyInitializersSymbol, true); // Build property key array from both strings and symbols

    var keys = __spread(Object.getOwnPropertySymbols(decorators), Object.keys(decorators));

    try {
      for (var keys_1 = __values(keys), keys_1_1 = keys_1.next(); !keys_1_1.done; keys_1_1 = keys_1.next()) {
        var key = keys_1_1.value;
        var d = decorators[key];
        d.propertyCreator(target, d.prop, d.descriptor, d.decoratorTarget, d.decoratorArguments);
      }
    } catch (e_1_1) {
      e_1 = {
        error: e_1_1
      };
    } finally {
      try {
        if (keys_1_1 && !keys_1_1.done && (_a = keys_1.return)) _a.call(keys_1);
      } finally {
        if (e_1) throw e_1.error;
      }
    }
  }
}

function createPropDecorator(propertyInitiallyEnumerable, propertyCreator) {
  return function decoratorFactory() {
    var decoratorArguments;

    var decorator = function decorate(target, prop, descriptor, applyImmediately // This is a special parameter to signal the direct application of a decorator, allow extendObservable to skip the entire type decoration part,
    // as the instance to apply the decorator to equals the target
    ) {
      if (applyImmediately === true) {
        propertyCreator(target, prop, descriptor, target, decoratorArguments);
        return null;
      }

      if (false) {}

      if (!Object.prototype.hasOwnProperty.call(target, mobxPendingDecorators)) {
        var inheritedDecorators = target[mobxPendingDecorators];
        addHiddenProp(target, mobxPendingDecorators, __assign({}, inheritedDecorators));
      }

      target[mobxPendingDecorators][prop] = {
        prop: prop,
        propertyCreator: propertyCreator,
        descriptor: descriptor,
        decoratorTarget: target,
        decoratorArguments: decoratorArguments
      };
      return createPropertyInitializerDescriptor(prop, propertyInitiallyEnumerable);
    };

    if (quacksLikeADecorator(arguments)) {
      // @decorator
      decoratorArguments = EMPTY_ARRAY;
      return decorator.apply(null, arguments);
    } else {
      // @decorator(args)
      decoratorArguments = Array.prototype.slice.call(arguments);
      return decorator;
    }
  };
}

function quacksLikeADecorator(args) {
  return (args.length === 2 || args.length === 3) && (typeof args[1] === "string" || typeof args[1] === "symbol") || args.length === 4 && args[3] === true;
}

function deepEnhancer(v, _, name) {
  // it is an observable already, done
  if (isObservable(v)) return v; // something that can be converted and mutated?

  if (Array.isArray(v)) return observable.array(v, {
    name: name
  });
  if (isPlainObject(v)) return observable.object(v, undefined, {
    name: name
  });
  if (isES6Map(v)) return observable.map(v, {
    name: name
  });
  if (isES6Set(v)) return observable.set(v, {
    name: name
  });
  return v;
}

function shallowEnhancer(v, _, name) {
  if (v === undefined || v === null) return v;
  if (isObservableObject(v) || isObservableArray(v) || isObservableMap(v) || isObservableSet(v)) return v;
  if (Array.isArray(v)) return observable.array(v, {
    name: name,
    deep: false
  });
  if (isPlainObject(v)) return observable.object(v, undefined, {
    name: name,
    deep: false
  });
  if (isES6Map(v)) return observable.map(v, {
    name: name,
    deep: false
  });
  if (isES6Set(v)) return observable.set(v, {
    name: name,
    deep: false
  });
  return fail( false && false);
}

function referenceEnhancer(newValue) {
  // never turn into an observable
  return newValue;
}

function refStructEnhancer(v, oldValue, name) {
  if (false) {}
  if (deepEqual(v, oldValue)) return oldValue;
  return v;
}

function createDecoratorForEnhancer(enhancer) {
  invariant(enhancer);
  var decorator = createPropDecorator(true, function (target, propertyName, descriptor, _decoratorTarget, decoratorArgs) {
    if (false) {}

    var initialValue = descriptor ? descriptor.initializer ? descriptor.initializer.call(target) : descriptor.value : undefined;
    asObservableObject(target).addObservableProp(propertyName, initialValue, enhancer);
  });
  var res = // Extra process checks, as this happens during module initialization
  typeof process !== "undefined" && process.env && "production" !== "production" ? function observableDecorator() {
    // This wrapper function is just to detect illegal decorator invocations, deprecate in a next version
    // and simply return the created prop decorator
    if (arguments.length < 2) return fail("Incorrect decorator invocation. @observable decorator doesn't expect any arguments");
    return decorator.apply(null, arguments);
  } : decorator;
  res.enhancer = enhancer;
  return res;
} // Predefined bags of create observable options, to avoid allocating temporarily option objects
// in the majority of cases


var defaultCreateObservableOptions = {
  deep: true,
  name: undefined,
  defaultDecorator: undefined,
  proxy: true
};
Object.freeze(defaultCreateObservableOptions);

function assertValidOption(key) {
  if (!/^(deep|name|equals|defaultDecorator|proxy)$/.test(key)) fail("invalid option for (extend)observable: " + key);
}

function asCreateObservableOptions(thing) {
  if (thing === null || thing === undefined) return defaultCreateObservableOptions;
  if (typeof thing === "string") return {
    name: thing,
    deep: true,
    proxy: true
  };

  if (false) {}

  return thing;
}

var deepDecorator = createDecoratorForEnhancer(deepEnhancer);
var shallowDecorator = createDecoratorForEnhancer(shallowEnhancer);
var refDecorator = createDecoratorForEnhancer(referenceEnhancer);
var refStructDecorator = createDecoratorForEnhancer(refStructEnhancer);

function getEnhancerFromOptions(options) {
  return options.defaultDecorator ? options.defaultDecorator.enhancer : options.deep === false ? referenceEnhancer : deepEnhancer;
}
/**
 * Turns an object, array or function into a reactive structure.
 * @param v the value which should become observable.
 */


function createObservable(v, arg2, arg3) {
  // @observable someProp;
  if (typeof arguments[1] === "string" || typeof arguments[1] === "symbol") {
    return deepDecorator.apply(null, arguments);
  } // it is an observable already, done


  if (isObservable(v)) return v; // something that can be converted and mutated?

  var res = isPlainObject(v) ? observable.object(v, arg2, arg3) : Array.isArray(v) ? observable.array(v, arg2) : isES6Map(v) ? observable.map(v, arg2) : isES6Set(v) ? observable.set(v, arg2) : v; // this value could be converted to a new observable data structure, return it

  if (res !== v) return res; // otherwise, just box it

  fail( false && false);
}

var observableFactories = {
  box: function (value, options) {
    if (arguments.length > 2) incorrectlyUsedAsDecorator("box");
    var o = asCreateObservableOptions(options);
    return new ObservableValue(value, getEnhancerFromOptions(o), o.name, true, o.equals);
  },
  array: function (initialValues, options) {
    if (arguments.length > 2) incorrectlyUsedAsDecorator("array");
    var o = asCreateObservableOptions(options);
    return createObservableArray(initialValues, getEnhancerFromOptions(o), o.name);
  },
  map: function (initialValues, options) {
    if (arguments.length > 2) incorrectlyUsedAsDecorator("map");
    var o = asCreateObservableOptions(options);
    return new ObservableMap(initialValues, getEnhancerFromOptions(o), o.name);
  },
  set: function (initialValues, options) {
    if (arguments.length > 2) incorrectlyUsedAsDecorator("set");
    var o = asCreateObservableOptions(options);
    return new ObservableSet(initialValues, getEnhancerFromOptions(o), o.name);
  },
  object: function (props, decorators, options) {
    if (typeof arguments[1] === "string") incorrectlyUsedAsDecorator("object");
    var o = asCreateObservableOptions(options);

    if (o.proxy === false) {
      return extendObservable({}, props, decorators, o);
    } else {
      var defaultDecorator = getDefaultDecoratorFromObjectOptions(o);
      var base = extendObservable({}, undefined, undefined, o);
      var proxy = createDynamicObservableObject(base);
      extendObservableObjectWithProperties(proxy, props, decorators, defaultDecorator);
      return proxy;
    }
  },
  ref: refDecorator,
  shallow: shallowDecorator,
  deep: deepDecorator,
  struct: refStructDecorator
};
var observable = createObservable; // weird trick to keep our typings nicely with our funcs, and still extend the observable function

Object.keys(observableFactories).forEach(function (name) {
  return observable[name] = observableFactories[name];
});

function incorrectlyUsedAsDecorator(methodName) {
  fail( // process.env.NODE_ENV !== "production" &&
  "Expected one or two arguments to observable." + methodName + ". Did you accidentally try to use observable." + methodName + " as decorator?");
}

var computedDecorator = createPropDecorator(false, function (instance, propertyName, descriptor, decoratorTarget, decoratorArgs) {
  var get = descriptor.get,
      set = descriptor.set; // initialValue is the descriptor for get / set props
  // Optimization: faster on decorator target or instance? Assuming target
  // Optimization: find out if declaring on instance isn't just faster. (also makes the property descriptor simpler). But, more memory usage..
  // Forcing instance now, fixes hot reloadig issues on React Native:

  var options = decoratorArgs[0] || {};
  asObservableObject(instance).addComputedProp(instance, propertyName, __assign({
    get: get,
    set: set,
    context: instance
  }, options));
});
var computedStructDecorator = computedDecorator({
  equals: comparer.structural
});
/**
 * Decorator for class properties: @computed get value() { return expr; }.
 * For legacy purposes also invokable as ES5 observable created: `computed(() => expr)`;
 */

var computed = function computed(arg1, arg2, arg3) {
  if (typeof arg2 === "string") {
    // @computed
    return computedDecorator.apply(null, arguments);
  }

  if (arg1 !== null && typeof arg1 === "object" && arguments.length === 1) {
    // @computed({ options })
    return computedDecorator.apply(null, arguments);
  } // computed(expr, options?)


  if (false) {}

  var opts = typeof arg2 === "object" ? arg2 : {};
  opts.get = arg1;
  opts.set = typeof arg2 === "function" ? arg2 : opts.set;
  opts.name = opts.name || arg1.name || "";
  /* for generated name */

  return new ComputedValue(opts);
};

computed.struct = computedStructDecorator;
var IDerivationState;

(function (IDerivationState) {
  // before being run or (outside batch and not being observed)
  // at this point derivation is not holding any data about dependency tree
  IDerivationState[IDerivationState["NOT_TRACKING"] = -1] = "NOT_TRACKING"; // no shallow dependency changed since last computation
  // won't recalculate derivation
  // this is what makes mobx fast

  IDerivationState[IDerivationState["UP_TO_DATE"] = 0] = "UP_TO_DATE"; // some deep dependency changed, but don't know if shallow dependency changed
  // will require to check first if UP_TO_DATE or POSSIBLY_STALE
  // currently only ComputedValue will propagate POSSIBLY_STALE
  //
  // having this state is second big optimization:
  // don't have to recompute on every dependency change, but only when it's needed

  IDerivationState[IDerivationState["POSSIBLY_STALE"] = 1] = "POSSIBLY_STALE"; // A shallow dependency has changed since last computation and the derivation
  // will need to recompute when it's needed next.

  IDerivationState[IDerivationState["STALE"] = 2] = "STALE";
})(IDerivationState || (IDerivationState = {}));

var TraceMode;

(function (TraceMode) {
  TraceMode[TraceMode["NONE"] = 0] = "NONE";
  TraceMode[TraceMode["LOG"] = 1] = "LOG";
  TraceMode[TraceMode["BREAK"] = 2] = "BREAK";
})(TraceMode || (TraceMode = {}));

var CaughtException =
/** @class */
function () {
  function CaughtException(cause) {
    this.cause = cause; // Empty
  }

  return CaughtException;
}();

function isCaughtException(e) {
  return e instanceof CaughtException;
}
/**
 * Finds out whether any dependency of the derivation has actually changed.
 * If dependenciesState is 1 then it will recalculate dependencies,
 * if any dependency changed it will propagate it by changing dependenciesState to 2.
 *
 * By iterating over the dependencies in the same order that they were reported and
 * stopping on the first change, all the recalculations are only called for ComputedValues
 * that will be tracked by derivation. That is because we assume that if the first x
 * dependencies of the derivation doesn't change then the derivation should run the same way
 * up until accessing x-th dependency.
 */


function shouldCompute(derivation) {
  switch (derivation.dependenciesState) {
    case IDerivationState.UP_TO_DATE:
      return false;

    case IDerivationState.NOT_TRACKING:
    case IDerivationState.STALE:
      return true;

    case IDerivationState.POSSIBLY_STALE:
      {
        // state propagation can occur outside of action/reactive context #2195
        var prevAllowStateReads = allowStateReadsStart(true);
        var prevUntracked = untrackedStart(); // no need for those computeds to be reported, they will be picked up in trackDerivedFunction.

        var obs = derivation.observing,
            l = obs.length;

        for (var i = 0; i < l; i++) {
          var obj = obs[i];

          if (isComputedValue(obj)) {
            if (globalState.disableErrorBoundaries) {
              obj.get();
            } else {
              try {
                obj.get();
              } catch (e) {
                // we are not interested in the value *or* exception at this moment, but if there is one, notify all
                untrackedEnd(prevUntracked);
                allowStateReadsEnd(prevAllowStateReads);
                return true;
              }
            } // if ComputedValue `obj` actually changed it will be computed and propagated to its observers.
            // and `derivation` is an observer of `obj`
            // invariantShouldCompute(derivation)


            if (derivation.dependenciesState === IDerivationState.STALE) {
              untrackedEnd(prevUntracked);
              allowStateReadsEnd(prevAllowStateReads);
              return true;
            }
          }
        }

        changeDependenciesStateTo0(derivation);
        untrackedEnd(prevUntracked);
        allowStateReadsEnd(prevAllowStateReads);
        return false;
      }
  }
} // function invariantShouldCompute(derivation: IDerivation) {
//     const newDepState = (derivation as any).dependenciesState
//     if (
//         process.env.NODE_ENV === "production" &&
//         (newDepState === IDerivationState.POSSIBLY_STALE ||
//             newDepState === IDerivationState.NOT_TRACKING)
//     )
//         fail("Illegal dependency state")
// }


function isComputingDerivation() {
  return globalState.trackingDerivation !== null; // filter out actions inside computations
}

function checkIfStateModificationsAreAllowed(atom) {
  var hasObservers = atom.observers.size > 0; // Should never be possible to change an observed observable from inside computed, see #798

  if (globalState.computationDepth > 0 && hasObservers) fail( false && false); // Should not be possible to change observed state outside strict mode, except during initialization, see #563

  if (!globalState.allowStateChanges && (hasObservers || globalState.enforceActions === "strict")) fail( false && false);
}

function checkIfStateReadsAreAllowed(observable) {
  if (false) {}
}
/**
 * Executes the provided function `f` and tracks which observables are being accessed.
 * The tracking information is stored on the `derivation` object and the derivation is registered
 * as observer of any of the accessed observables.
 */


function trackDerivedFunction(derivation, f, context) {
  var prevAllowStateReads = allowStateReadsStart(true); // pre allocate array allocation + room for variation in deps
  // array will be trimmed by bindDependencies

  changeDependenciesStateTo0(derivation);
  derivation.newObserving = new Array(derivation.observing.length + 100);
  derivation.unboundDepsCount = 0;
  derivation.runId = ++globalState.runId;
  var prevTracking = globalState.trackingDerivation;
  globalState.trackingDerivation = derivation;
  var result;

  if (globalState.disableErrorBoundaries === true) {
    result = f.call(context);
  } else {
    try {
      result = f.call(context);
    } catch (e) {
      result = new CaughtException(e);
    }
  }

  globalState.trackingDerivation = prevTracking;
  bindDependencies(derivation);
  warnAboutDerivationWithoutDependencies(derivation);
  allowStateReadsEnd(prevAllowStateReads);
  return result;
}

function warnAboutDerivationWithoutDependencies(derivation) {
  if (true) return;
  if (derivation.observing.length !== 0) return;

  if (globalState.reactionRequiresObservable || derivation.requiresObservable) {
    console.warn("[mobx] Derivation " + derivation.name + " is created/updated without reading any observable value");
  }
}
/**
 * diffs newObserving with observing.
 * update observing to be newObserving with unique observables
 * notify observers that become observed/unobserved
 */


function bindDependencies(derivation) {
  // invariant(derivation.dependenciesState !== IDerivationState.NOT_TRACKING, "INTERNAL ERROR bindDependencies expects derivation.dependenciesState !== -1");
  var prevObserving = derivation.observing;
  var observing = derivation.observing = derivation.newObserving;
  var lowestNewObservingDerivationState = IDerivationState.UP_TO_DATE; // Go through all new observables and check diffValue: (this list can contain duplicates):
  //   0: first occurrence, change to 1 and keep it
  //   1: extra occurrence, drop it

  var i0 = 0,
      l = derivation.unboundDepsCount;

  for (var i = 0; i < l; i++) {
    var dep = observing[i];

    if (dep.diffValue === 0) {
      dep.diffValue = 1;
      if (i0 !== i) observing[i0] = dep;
      i0++;
    } // Upcast is 'safe' here, because if dep is IObservable, `dependenciesState` will be undefined,
    // not hitting the condition


    if (dep.dependenciesState > lowestNewObservingDerivationState) {
      lowestNewObservingDerivationState = dep.dependenciesState;
    }
  }

  observing.length = i0;
  derivation.newObserving = null; // newObserving shouldn't be needed outside tracking (statement moved down to work around FF bug, see #614)
  // Go through all old observables and check diffValue: (it is unique after last bindDependencies)
  //   0: it's not in new observables, unobserve it
  //   1: it keeps being observed, don't want to notify it. change to 0

  l = prevObserving.length;

  while (l--) {
    var dep = prevObserving[l];

    if (dep.diffValue === 0) {
      removeObserver(dep, derivation);
    }

    dep.diffValue = 0;
  } // Go through all new observables and check diffValue: (now it should be unique)
  //   0: it was set to 0 in last loop. don't need to do anything.
  //   1: it wasn't observed, let's observe it. set back to 0


  while (i0--) {
    var dep = observing[i0];

    if (dep.diffValue === 1) {
      dep.diffValue = 0;
      addObserver(dep, derivation);
    }
  } // Some new observed derivations may become stale during this derivation computation
  // so they have had no chance to propagate staleness (#916)


  if (lowestNewObservingDerivationState !== IDerivationState.UP_TO_DATE) {
    derivation.dependenciesState = lowestNewObservingDerivationState;
    derivation.onBecomeStale();
  }
}

function clearObserving(derivation) {
  // invariant(globalState.inBatch > 0, "INTERNAL ERROR clearObserving should be called only inside batch");
  var obs = derivation.observing;
  derivation.observing = [];
  var i = obs.length;

  while (i--) removeObserver(obs[i], derivation);

  derivation.dependenciesState = IDerivationState.NOT_TRACKING;
}

function untracked(action) {
  var prev = untrackedStart();

  try {
    return action();
  } finally {
    untrackedEnd(prev);
  }
}

function untrackedStart() {
  var prev = globalState.trackingDerivation;
  globalState.trackingDerivation = null;
  return prev;
}

function untrackedEnd(prev) {
  globalState.trackingDerivation = prev;
}

function allowStateReadsStart(allowStateReads) {
  var prev = globalState.allowStateReads;
  globalState.allowStateReads = allowStateReads;
  return prev;
}

function allowStateReadsEnd(prev) {
  globalState.allowStateReads = prev;
}
/**
 * needed to keep `lowestObserverState` correct. when changing from (2 or 1) to 0
 *
 */


function changeDependenciesStateTo0(derivation) {
  if (derivation.dependenciesState === IDerivationState.UP_TO_DATE) return;
  derivation.dependenciesState = IDerivationState.UP_TO_DATE;
  var obs = derivation.observing;
  var i = obs.length;

  while (i--) obs[i].lowestObserverState = IDerivationState.UP_TO_DATE;
} // we don't use globalState for these in order to avoid possible issues with multiple
// mobx versions


var currentActionId = 0;
var nextActionId = 1;
var functionNameDescriptor = Object.getOwnPropertyDescriptor(function () {}, "name");
var isFunctionNameConfigurable = functionNameDescriptor && functionNameDescriptor.configurable;

function createAction(actionName, fn, ref) {
  if (false) {}

  var res = function () {
    return executeAction(actionName, fn, ref || this, arguments);
  };

  res.isMobxAction = true;

  if (false) {}

  return res;
}

function executeAction(actionName, fn, scope, args) {
  var runInfo = _startAction(actionName, scope, args);

  try {
    return fn.apply(scope, args);
  } catch (err) {
    runInfo.error = err;
    throw err;
  } finally {
    _endAction(runInfo);
  }
}

function _startAction(actionName, scope, args) {
  var notifySpy = isSpyEnabled() && !!actionName;
  var startTime = 0;

  if (notifySpy && "production" !== "production") {
    startTime = Date.now();
    var l = args && args.length || 0;
    var flattendArgs = new Array(l);
    if (l > 0) for (var i = 0; i < l; i++) flattendArgs[i] = args[i];
    spyReportStart({
      type: "action",
      name: actionName,
      object: scope,
      arguments: flattendArgs
    });
  }

  var prevDerivation = untrackedStart();
  startBatch();
  var prevAllowStateChanges = allowStateChangesStart(true);
  var prevAllowStateReads = allowStateReadsStart(true);
  var runInfo = {
    prevDerivation: prevDerivation,
    prevAllowStateChanges: prevAllowStateChanges,
    prevAllowStateReads: prevAllowStateReads,
    notifySpy: notifySpy,
    startTime: startTime,
    actionId: nextActionId++,
    parentActionId: currentActionId
  };
  currentActionId = runInfo.actionId;
  return runInfo;
}

function _endAction(runInfo) {
  if (currentActionId !== runInfo.actionId) {
    fail("invalid action stack. did you forget to finish an action?");
  }

  currentActionId = runInfo.parentActionId;

  if (runInfo.error !== undefined) {
    globalState.suppressReactionErrors = true;
  }

  allowStateChangesEnd(runInfo.prevAllowStateChanges);
  allowStateReadsEnd(runInfo.prevAllowStateReads);
  endBatch();
  untrackedEnd(runInfo.prevDerivation);

  if (runInfo.notifySpy && "production" !== "production") {
    spyReportEnd({
      time: Date.now() - runInfo.startTime
    });
  }

  globalState.suppressReactionErrors = false;
}

function allowStateChanges(allowStateChanges, func) {
  var prev = allowStateChangesStart(allowStateChanges);
  var res;

  try {
    res = func();
  } finally {
    allowStateChangesEnd(prev);
  }

  return res;
}

function allowStateChangesStart(allowStateChanges) {
  var prev = globalState.allowStateChanges;
  globalState.allowStateChanges = allowStateChanges;
  return prev;
}

function allowStateChangesEnd(prev) {
  globalState.allowStateChanges = prev;
}

function allowStateChangesInsideComputed(func) {
  var prev = globalState.computationDepth;
  globalState.computationDepth = 0;
  var res;

  try {
    res = func();
  } finally {
    globalState.computationDepth = prev;
  }

  return res;
}

var ObservableValue =
/** @class */
function (_super) {
  __extends(ObservableValue, _super);

  function ObservableValue(value, enhancer, name, notifySpy, equals) {
    if (name === void 0) {
      name = "ObservableValue@" + getNextId();
    }

    if (notifySpy === void 0) {
      notifySpy = true;
    }

    if (equals === void 0) {
      equals = comparer.default;
    }

    var _this = _super.call(this, name) || this;

    _this.enhancer = enhancer;
    _this.name = name;
    _this.equals = equals;
    _this.hasUnreportedChange = false;
    _this.value = enhancer(value, undefined, name);

    if (notifySpy && isSpyEnabled() && "production" !== "production") {
      // only notify spy if this is a stand-alone observable
      spyReport({
        type: "create",
        name: _this.name,
        newValue: "" + _this.value
      });
    }

    return _this;
  }

  ObservableValue.prototype.dehanceValue = function (value) {
    if (this.dehancer !== undefined) return this.dehancer(value);
    return value;
  };

  ObservableValue.prototype.set = function (newValue) {
    var oldValue = this.value;
    newValue = this.prepareNewValue(newValue);

    if (newValue !== globalState.UNCHANGED) {
      var notifySpy = isSpyEnabled();

      if (notifySpy && "production" !== "production") {
        spyReportStart({
          type: "update",
          name: this.name,
          newValue: newValue,
          oldValue: oldValue
        });
      }

      this.setNewValue(newValue);
      if (notifySpy && "production" !== "production") spyReportEnd();
    }
  };

  ObservableValue.prototype.prepareNewValue = function (newValue) {
    checkIfStateModificationsAreAllowed(this);

    if (hasInterceptors(this)) {
      var change = interceptChange(this, {
        object: this,
        type: "update",
        newValue: newValue
      });
      if (!change) return globalState.UNCHANGED;
      newValue = change.newValue;
    } // apply modifier


    newValue = this.enhancer(newValue, this.value, this.name);
    return this.equals(this.value, newValue) ? globalState.UNCHANGED : newValue;
  };

  ObservableValue.prototype.setNewValue = function (newValue) {
    var oldValue = this.value;
    this.value = newValue;
    this.reportChanged();

    if (hasListeners(this)) {
      notifyListeners(this, {
        type: "update",
        object: this,
        newValue: newValue,
        oldValue: oldValue
      });
    }
  };

  ObservableValue.prototype.get = function () {
    this.reportObserved();
    return this.dehanceValue(this.value);
  };

  ObservableValue.prototype.intercept = function (handler) {
    return registerInterceptor(this, handler);
  };

  ObservableValue.prototype.observe = function (listener, fireImmediately) {
    if (fireImmediately) listener({
      object: this,
      type: "update",
      newValue: this.value,
      oldValue: undefined
    });
    return registerListener(this, listener);
  };

  ObservableValue.prototype.toJSON = function () {
    return this.get();
  };

  ObservableValue.prototype.toString = function () {
    return this.name + "[" + this.value + "]";
  };

  ObservableValue.prototype.valueOf = function () {
    return toPrimitive(this.get());
  };

  ObservableValue.prototype[Symbol.toPrimitive] = function () {
    return this.valueOf();
  };

  return ObservableValue;
}(Atom);

var isObservableValue = createInstanceofPredicate("ObservableValue", ObservableValue);
/**
 * A node in the state dependency root that observes other nodes, and can be observed itself.
 *
 * ComputedValue will remember the result of the computation for the duration of the batch, or
 * while being observed.
 *
 * During this time it will recompute only when one of its direct dependencies changed,
 * but only when it is being accessed with `ComputedValue.get()`.
 *
 * Implementation description:
 * 1. First time it's being accessed it will compute and remember result
 *    give back remembered result until 2. happens
 * 2. First time any deep dependency change, propagate POSSIBLY_STALE to all observers, wait for 3.
 * 3. When it's being accessed, recompute if any shallow dependency changed.
 *    if result changed: propagate STALE to all observers, that were POSSIBLY_STALE from the last step.
 *    go to step 2. either way
 *
 * If at any point it's outside batch and it isn't observed: reset everything and go to 1.
 */

var ComputedValue =
/** @class */
function () {
  /**
   * Create a new computed value based on a function expression.
   *
   * The `name` property is for debug purposes only.
   *
   * The `equals` property specifies the comparer function to use to determine if a newly produced
   * value differs from the previous value. Two comparers are provided in the library; `defaultComparer`
   * compares based on identity comparison (===), and `structualComparer` deeply compares the structure.
   * Structural comparison can be convenient if you always produce a new aggregated object and
   * don't want to notify observers if it is structurally the same.
   * This is useful for working with vectors, mouse coordinates etc.
   */
  function ComputedValue(options) {
    this.dependenciesState = IDerivationState.NOT_TRACKING;
    this.observing = []; // nodes we are looking at. Our value depends on these nodes

    this.newObserving = null; // during tracking it's an array with new observed observers

    this.isBeingObserved = false;
    this.isPendingUnobservation = false;
    this.observers = new Set();
    this.diffValue = 0;
    this.runId = 0;
    this.lastAccessedBy = 0;
    this.lowestObserverState = IDerivationState.UP_TO_DATE;
    this.unboundDepsCount = 0;
    this.__mapid = "#" + getNextId();
    this.value = new CaughtException(null);
    this.isComputing = false; // to check for cycles

    this.isRunningSetter = false;
    this.isTracing = TraceMode.NONE;
    invariant(options.get, "missing option for computed: get");
    this.derivation = options.get;
    this.name = options.name || "ComputedValue@" + getNextId();
    if (options.set) this.setter = createAction(this.name + "-setter", options.set);
    this.equals = options.equals || (options.compareStructural || options.struct ? comparer.structural : comparer.default);
    this.scope = options.context;
    this.requiresReaction = !!options.requiresReaction;
    this.keepAlive = !!options.keepAlive;
  }

  ComputedValue.prototype.onBecomeStale = function () {
    propagateMaybeChanged(this);
  };

  ComputedValue.prototype.onBecomeObserved = function () {
    if (this.onBecomeObservedListeners) {
      this.onBecomeObservedListeners.forEach(function (listener) {
        return listener();
      });
    }
  };

  ComputedValue.prototype.onBecomeUnobserved = function () {
    if (this.onBecomeUnobservedListeners) {
      this.onBecomeUnobservedListeners.forEach(function (listener) {
        return listener();
      });
    }
  };
  /**
   * Returns the current value of this computed value.
   * Will evaluate its computation first if needed.
   */


  ComputedValue.prototype.get = function () {
    if (this.isComputing) fail("Cycle detected in computation " + this.name + ": " + this.derivation);

    if (globalState.inBatch === 0 && this.observers.size === 0 && !this.keepAlive) {
      if (shouldCompute(this)) {
        this.warnAboutUntrackedRead();
        startBatch(); // See perf test 'computed memoization'

        this.value = this.computeValue(false);
        endBatch();
      }
    } else {
      reportObserved(this);
      if (shouldCompute(this)) if (this.trackAndCompute()) propagateChangeConfirmed(this);
    }

    var result = this.value;
    if (isCaughtException(result)) throw result.cause;
    return result;
  };

  ComputedValue.prototype.peek = function () {
    var res = this.computeValue(false);
    if (isCaughtException(res)) throw res.cause;
    return res;
  };

  ComputedValue.prototype.set = function (value) {
    if (this.setter) {
      invariant(!this.isRunningSetter, "The setter of computed value '" + this.name + "' is trying to update itself. Did you intend to update an _observable_ value, instead of the computed property?");
      this.isRunningSetter = true;

      try {
        this.setter.call(this.scope, value);
      } finally {
        this.isRunningSetter = false;
      }
    } else invariant(false,  false && false);
  };

  ComputedValue.prototype.trackAndCompute = function () {
    if (isSpyEnabled() && "production" !== "production") {
      spyReport({
        object: this.scope,
        type: "compute",
        name: this.name
      });
    }

    var oldValue = this.value;
    var wasSuspended =
    /* see #1208 */
    this.dependenciesState === IDerivationState.NOT_TRACKING;
    var newValue = this.computeValue(true);
    var changed = wasSuspended || isCaughtException(oldValue) || isCaughtException(newValue) || !this.equals(oldValue, newValue);

    if (changed) {
      this.value = newValue;
    }

    return changed;
  };

  ComputedValue.prototype.computeValue = function (track) {
    this.isComputing = true;
    globalState.computationDepth++;
    var res;

    if (track) {
      res = trackDerivedFunction(this, this.derivation, this.scope);
    } else {
      if (globalState.disableErrorBoundaries === true) {
        res = this.derivation.call(this.scope);
      } else {
        try {
          res = this.derivation.call(this.scope);
        } catch (e) {
          res = new CaughtException(e);
        }
      }
    }

    globalState.computationDepth--;
    this.isComputing = false;
    return res;
  };

  ComputedValue.prototype.suspend = function () {
    if (!this.keepAlive) {
      clearObserving(this);
      this.value = undefined; // don't hold on to computed value!
    }
  };

  ComputedValue.prototype.observe = function (listener, fireImmediately) {
    var _this = this;

    var firstTime = true;
    var prevValue = undefined;
    return autorun(function () {
      var newValue = _this.get();

      if (!firstTime || fireImmediately) {
        var prevU = untrackedStart();
        listener({
          type: "update",
          object: _this,
          newValue: newValue,
          oldValue: prevValue
        });
        untrackedEnd(prevU);
      }

      firstTime = false;
      prevValue = newValue;
    });
  };

  ComputedValue.prototype.warnAboutUntrackedRead = function () {
    if (true) return;

    if (this.requiresReaction === true) {
      fail("[mobx] Computed value " + this.name + " is read outside a reactive context");
    }

    if (this.isTracing !== TraceMode.NONE) {
      console.log("[mobx.trace] '" + this.name + "' is being read outside a reactive context. Doing a full recompute");
    }

    if (globalState.computedRequiresReaction) {
      console.warn("[mobx] Computed value " + this.name + " is being read outside a reactive context. Doing a full recompute");
    }
  };

  ComputedValue.prototype.toJSON = function () {
    return this.get();
  };

  ComputedValue.prototype.toString = function () {
    return this.name + "[" + this.derivation.toString() + "]";
  };

  ComputedValue.prototype.valueOf = function () {
    return toPrimitive(this.get());
  };

  ComputedValue.prototype[Symbol.toPrimitive] = function () {
    return this.valueOf();
  };

  return ComputedValue;
}();

var isComputedValue = createInstanceofPredicate("ComputedValue", ComputedValue);
/**
 * These values will persist if global state is reset
 */

var persistentKeys = ["mobxGuid", "spyListeners", "enforceActions", "computedRequiresReaction", "reactionRequiresObservable", "observableRequiresReaction", "allowStateReads", "disableErrorBoundaries", "runId", "UNCHANGED"];

var MobXGlobals =
/** @class */
function () {
  function MobXGlobals() {
    /**
     * MobXGlobals version.
     * MobX compatiblity with other versions loaded in memory as long as this version matches.
     * It indicates that the global state still stores similar information
     *
     * N.B: this version is unrelated to the package version of MobX, and is only the version of the
     * internal state storage of MobX, and can be the same across many different package versions
     */
    this.version = 5;
    /**
     * globally unique token to signal unchanged
     */

    this.UNCHANGED = {};
    /**
     * Currently running derivation
     */

    this.trackingDerivation = null;
    /**
     * Are we running a computation currently? (not a reaction)
     */

    this.computationDepth = 0;
    /**
     * Each time a derivation is tracked, it is assigned a unique run-id
     */

    this.runId = 0;
    /**
     * 'guid' for general purpose. Will be persisted amongst resets.
     */

    this.mobxGuid = 0;
    /**
     * Are we in a batch block? (and how many of them)
     */

    this.inBatch = 0;
    /**
     * Observables that don't have observers anymore, and are about to be
     * suspended, unless somebody else accesses it in the same batch
     *
     * @type {IObservable[]}
     */

    this.pendingUnobservations = [];
    /**
     * List of scheduled, not yet executed, reactions.
     */

    this.pendingReactions = [];
    /**
     * Are we currently processing reactions?
     */

    this.isRunningReactions = false;
    /**
     * Is it allowed to change observables at this point?
     * In general, MobX doesn't allow that when running computations and React.render.
     * To ensure that those functions stay pure.
     */

    this.allowStateChanges = true;
    /**
     * Is it allowed to read observables at this point?
     * Used to hold the state needed for `observableRequiresReaction`
     */

    this.allowStateReads = true;
    /**
     * If strict mode is enabled, state changes are by default not allowed
     */

    this.enforceActions = false;
    /**
     * Spy callbacks
     */

    this.spyListeners = [];
    /**
     * Globally attached error handlers that react specifically to errors in reactions
     */

    this.globalReactionErrorHandlers = [];
    /**
     * Warn if computed values are accessed outside a reactive context
     */

    this.computedRequiresReaction = false;
    /**
     * (Experimental)
     * Warn if you try to create to derivation / reactive context without accessing any observable.
     */

    this.reactionRequiresObservable = false;
    /**
     * (Experimental)
     * Warn if observables are accessed outside a reactive context
     */

    this.observableRequiresReaction = false;
    /**
     * Allows overwriting of computed properties, useful in tests but not prod as it can cause
     * memory leaks. See https://github.com/mobxjs/mobx/issues/1867
     */

    this.computedConfigurable = false;
    /*
     * Don't catch and rethrow exceptions. This is useful for inspecting the state of
     * the stack when an exception occurs while debugging.
     */

    this.disableErrorBoundaries = false;
    /*
     * If true, we are already handling an exception in an action. Any errors in reactions should be suppressed, as
     * they are not the cause, see: https://github.com/mobxjs/mobx/issues/1836
     */

    this.suppressReactionErrors = false;
  }

  return MobXGlobals;
}();

var mockGlobal = {};

function getGlobal() {
  if (typeof window !== "undefined") {
    return window;
  }

  if (typeof global !== "undefined") {
    return global;
  }

  if (typeof self !== "undefined") {
    return self;
  }

  return mockGlobal;
}

var canMergeGlobalState = true;
var isolateCalled = false;

var globalState = function () {
  var global = getGlobal();
  if (global.__mobxInstanceCount > 0 && !global.__mobxGlobals) canMergeGlobalState = false;
  if (global.__mobxGlobals && global.__mobxGlobals.version !== new MobXGlobals().version) canMergeGlobalState = false;

  if (!canMergeGlobalState) {
    setTimeout(function () {
      if (!isolateCalled) {
        fail("There are multiple, different versions of MobX active. Make sure MobX is loaded only once or use `configure({ isolateGlobalState: true })`");
      }
    }, 1);
    return new MobXGlobals();
  } else if (global.__mobxGlobals) {
    global.__mobxInstanceCount += 1;
    if (!global.__mobxGlobals.UNCHANGED) global.__mobxGlobals.UNCHANGED = {}; // make merge backward compatible

    return global.__mobxGlobals;
  } else {
    global.__mobxInstanceCount = 1;
    return global.__mobxGlobals = new MobXGlobals();
  }
}();

function isolateGlobalState() {
  if (globalState.pendingReactions.length || globalState.inBatch || globalState.isRunningReactions) fail("isolateGlobalState should be called before MobX is running any reactions");
  isolateCalled = true;

  if (canMergeGlobalState) {
    if (--getGlobal().__mobxInstanceCount === 0) getGlobal().__mobxGlobals = undefined;
    globalState = new MobXGlobals();
  }
}

function getGlobalState() {
  return globalState;
}
/**
 * For testing purposes only; this will break the internal state of existing observables,
 * but can be used to get back at a stable state after throwing errors
 */


function resetGlobalState() {
  var defaultGlobals = new MobXGlobals();

  for (var key in defaultGlobals) if (persistentKeys.indexOf(key) === -1) globalState[key] = defaultGlobals[key];

  globalState.allowStateChanges = !globalState.enforceActions;
}

function hasObservers(observable) {
  return observable.observers && observable.observers.size > 0;
}

function getObservers(observable) {
  return observable.observers;
} // function invariantObservers(observable: IObservable) {
//     const list = observable.observers
//     const map = observable.observersIndexes
//     const l = list.length
//     for (let i = 0; i < l; i++) {
//         const id = list[i].__mapid
//         if (i) {
//             invariant(map[id] === i, "INTERNAL ERROR maps derivation.__mapid to index in list") // for performance
//         } else {
//             invariant(!(id in map), "INTERNAL ERROR observer on index 0 shouldn't be held in map.") // for performance
//         }
//     }
//     invariant(
//         list.length === 0 || Object.keys(map).length === list.length - 1,
//         "INTERNAL ERROR there is no junk in map"
//     )
// }


function addObserver(observable, node) {
  // invariant(node.dependenciesState !== -1, "INTERNAL ERROR, can add only dependenciesState !== -1");
  // invariant(observable._observers.indexOf(node) === -1, "INTERNAL ERROR add already added node");
  // invariantObservers(observable);
  observable.observers.add(node);
  if (observable.lowestObserverState > node.dependenciesState) observable.lowestObserverState = node.dependenciesState; // invariantObservers(observable);
  // invariant(observable._observers.indexOf(node) !== -1, "INTERNAL ERROR didn't add node");
}

function removeObserver(observable, node) {
  // invariant(globalState.inBatch > 0, "INTERNAL ERROR, remove should be called only inside batch");
  // invariant(observable._observers.indexOf(node) !== -1, "INTERNAL ERROR remove already removed node");
  // invariantObservers(observable);
  observable.observers.delete(node);

  if (observable.observers.size === 0) {
    // deleting last observer
    queueForUnobservation(observable);
  } // invariantObservers(observable);
  // invariant(observable._observers.indexOf(node) === -1, "INTERNAL ERROR remove already removed node2");

}

function queueForUnobservation(observable) {
  if (observable.isPendingUnobservation === false) {
    // invariant(observable._observers.length === 0, "INTERNAL ERROR, should only queue for unobservation unobserved observables");
    observable.isPendingUnobservation = true;
    globalState.pendingUnobservations.push(observable);
  }
}
/**
 * Batch starts a transaction, at least for purposes of memoizing ComputedValues when nothing else does.
 * During a batch `onBecomeUnobserved` will be called at most once per observable.
 * Avoids unnecessary recalculations.
 */


function startBatch() {
  globalState.inBatch++;
}

function endBatch() {
  if (--globalState.inBatch === 0) {
    runReactions(); // the batch is actually about to finish, all unobserving should happen here.

    var list = globalState.pendingUnobservations;

    for (var i = 0; i < list.length; i++) {
      var observable = list[i];
      observable.isPendingUnobservation = false;

      if (observable.observers.size === 0) {
        if (observable.isBeingObserved) {
          // if this observable had reactive observers, trigger the hooks
          observable.isBeingObserved = false;
          observable.onBecomeUnobserved();
        }

        if (observable instanceof ComputedValue) {
          // computed values are automatically teared down when the last observer leaves
          // this process happens recursively, this computed might be the last observabe of another, etc..
          observable.suspend();
        }
      }
    }

    globalState.pendingUnobservations = [];
  }
}

function reportObserved(observable) {
  checkIfStateReadsAreAllowed(observable);
  var derivation = globalState.trackingDerivation;

  if (derivation !== null) {
    /**
     * Simple optimization, give each derivation run an unique id (runId)
     * Check if last time this observable was accessed the same runId is used
     * if this is the case, the relation is already known
     */
    if (derivation.runId !== observable.lastAccessedBy) {
      observable.lastAccessedBy = derivation.runId; // Tried storing newObserving, or observing, or both as Set, but performance didn't come close...

      derivation.newObserving[derivation.unboundDepsCount++] = observable;

      if (!observable.isBeingObserved) {
        observable.isBeingObserved = true;
        observable.onBecomeObserved();
      }
    }

    return true;
  } else if (observable.observers.size === 0 && globalState.inBatch > 0) {
    queueForUnobservation(observable);
  }

  return false;
} // function invariantLOS(observable: IObservable, msg: string) {
//     // it's expensive so better not run it in produciton. but temporarily helpful for testing
//     const min = getObservers(observable).reduce((a, b) => Math.min(a, b.dependenciesState), 2)
//     if (min >= observable.lowestObserverState) return // <- the only assumption about `lowestObserverState`
//     throw new Error(
//         "lowestObserverState is wrong for " +
//             msg +
//             " because " +
//             min +
//             " < " +
//             observable.lowestObserverState
//     )
// }

/**
 * NOTE: current propagation mechanism will in case of self reruning autoruns behave unexpectedly
 * It will propagate changes to observers from previous run
 * It's hard or maybe impossible (with reasonable perf) to get it right with current approach
 * Hopefully self reruning autoruns aren't a feature people should depend on
 * Also most basic use cases should be ok
 */
// Called by Atom when its value changes


function propagateChanged(observable) {
  // invariantLOS(observable, "changed start");
  if (observable.lowestObserverState === IDerivationState.STALE) return;
  observable.lowestObserverState = IDerivationState.STALE; // Ideally we use for..of here, but the downcompiled version is really slow...

  observable.observers.forEach(function (d) {
    if (d.dependenciesState === IDerivationState.UP_TO_DATE) {
      if (d.isTracing !== TraceMode.NONE) {
        logTraceInfo(d, observable);
      }

      d.onBecomeStale();
    }

    d.dependenciesState = IDerivationState.STALE;
  }); // invariantLOS(observable, "changed end");
} // Called by ComputedValue when it recalculate and its value changed


function propagateChangeConfirmed(observable) {
  // invariantLOS(observable, "confirmed start");
  if (observable.lowestObserverState === IDerivationState.STALE) return;
  observable.lowestObserverState = IDerivationState.STALE;
  observable.observers.forEach(function (d) {
    if (d.dependenciesState === IDerivationState.POSSIBLY_STALE) d.dependenciesState = IDerivationState.STALE;else if (d.dependenciesState === IDerivationState.UP_TO_DATE // this happens during computing of `d`, just keep lowestObserverState up to date.
    ) observable.lowestObserverState = IDerivationState.UP_TO_DATE;
  }); // invariantLOS(observable, "confirmed end");
} // Used by computed when its dependency changed, but we don't wan't to immediately recompute.


function propagateMaybeChanged(observable) {
  // invariantLOS(observable, "maybe start");
  if (observable.lowestObserverState !== IDerivationState.UP_TO_DATE) return;
  observable.lowestObserverState = IDerivationState.POSSIBLY_STALE;
  observable.observers.forEach(function (d) {
    if (d.dependenciesState === IDerivationState.UP_TO_DATE) {
      d.dependenciesState = IDerivationState.POSSIBLY_STALE;

      if (d.isTracing !== TraceMode.NONE) {
        logTraceInfo(d, observable);
      }

      d.onBecomeStale();
    }
  }); // invariantLOS(observable, "maybe end");
}

function logTraceInfo(derivation, observable) {
  console.log("[mobx.trace] '" + derivation.name + "' is invalidated due to a change in: '" + observable.name + "'");

  if (derivation.isTracing === TraceMode.BREAK) {
    var lines = [];
    printDepTree(getDependencyTree(derivation), lines, 1); // prettier-ignore

    new Function("debugger;\n/*\nTracing '" + derivation.name + "'\n\nYou are entering this break point because derivation '" + derivation.name + "' is being traced and '" + observable.name + "' is now forcing it to update.\nJust follow the stacktrace you should now see in the devtools to see precisely what piece of your code is causing this update\nThe stackframe you are looking for is at least ~6-8 stack-frames up.\n\n" + (derivation instanceof ComputedValue ? derivation.derivation.toString().replace(/[*]\//g, "/") : "") + "\n\nThe dependencies for this derivation are:\n\n" + lines.join("\n") + "\n*/\n    ")();
  }
}

function printDepTree(tree, lines, depth) {
  if (lines.length >= 1000) {
    lines.push("(and many more)");
    return;
  }

  lines.push("" + new Array(depth).join("\t") + tree.name); // MWE: not the fastest, but the easiest way :)

  if (tree.dependencies) tree.dependencies.forEach(function (child) {
    return printDepTree(child, lines, depth + 1);
  });
}

var Reaction =
/** @class */
function () {
  function Reaction(name, onInvalidate, errorHandler, requiresObservable) {
    if (name === void 0) {
      name = "Reaction@" + getNextId();
    }

    if (requiresObservable === void 0) {
      requiresObservable = false;
    }

    this.name = name;
    this.onInvalidate = onInvalidate;
    this.errorHandler = errorHandler;
    this.requiresObservable = requiresObservable;
    this.observing = []; // nodes we are looking at. Our value depends on these nodes

    this.newObserving = [];
    this.dependenciesState = IDerivationState.NOT_TRACKING;
    this.diffValue = 0;
    this.runId = 0;
    this.unboundDepsCount = 0;
    this.__mapid = "#" + getNextId();
    this.isDisposed = false;
    this._isScheduled = false;
    this._isTrackPending = false;
    this._isRunning = false;
    this.isTracing = TraceMode.NONE;
  }

  Reaction.prototype.onBecomeStale = function () {
    this.schedule();
  };

  Reaction.prototype.schedule = function () {
    if (!this._isScheduled) {
      this._isScheduled = true;
      globalState.pendingReactions.push(this);
      runReactions();
    }
  };

  Reaction.prototype.isScheduled = function () {
    return this._isScheduled;
  };
  /**
   * internal, use schedule() if you intend to kick off a reaction
   */


  Reaction.prototype.runReaction = function () {
    if (!this.isDisposed) {
      startBatch();
      this._isScheduled = false;

      if (shouldCompute(this)) {
        this._isTrackPending = true;

        try {
          this.onInvalidate();

          if (this._isTrackPending && isSpyEnabled() && "production" !== "production") {
            // onInvalidate didn't trigger track right away..
            spyReport({
              name: this.name,
              type: "scheduled-reaction"
            });
          }
        } catch (e) {
          this.reportExceptionInDerivation(e);
        }
      }

      endBatch();
    }
  };

  Reaction.prototype.track = function (fn) {
    if (this.isDisposed) {
      return; // console.warn("Reaction already disposed") // Note: Not a warning / error in mobx 4 either
    }

    startBatch();
    var notify = isSpyEnabled();
    var startTime;

    if (notify && "production" !== "production") {
      startTime = Date.now();
      spyReportStart({
        name: this.name,
        type: "reaction"
      });
    }

    this._isRunning = true;
    var result = trackDerivedFunction(this, fn, undefined);
    this._isRunning = false;
    this._isTrackPending = false;

    if (this.isDisposed) {
      // disposed during last run. Clean up everything that was bound after the dispose call.
      clearObserving(this);
    }

    if (isCaughtException(result)) this.reportExceptionInDerivation(result.cause);

    if (notify && "production" !== "production") {
      spyReportEnd({
        time: Date.now() - startTime
      });
    }

    endBatch();
  };

  Reaction.prototype.reportExceptionInDerivation = function (error) {
    var _this = this;

    if (this.errorHandler) {
      this.errorHandler(error, this);
      return;
    }

    if (globalState.disableErrorBoundaries) throw error;
    var message = "[mobx] Encountered an uncaught exception that was thrown by a reaction or observer component, in: '" + this + "'";

    if (globalState.suppressReactionErrors) {
      console.warn("[mobx] (error in reaction '" + this.name + "' suppressed, fix error of causing action below)"); // prettier-ignore
    } else {
      console.error(message, error);
      /** If debugging brought you here, please, read the above message :-). Tnx! */
    }

    if (isSpyEnabled()) {
      spyReport({
        type: "error",
        name: this.name,
        message: message,
        error: "" + error
      });
    }

    globalState.globalReactionErrorHandlers.forEach(function (f) {
      return f(error, _this);
    });
  };

  Reaction.prototype.dispose = function () {
    if (!this.isDisposed) {
      this.isDisposed = true;

      if (!this._isRunning) {
        // if disposed while running, clean up later. Maybe not optimal, but rare case
        startBatch();
        clearObserving(this);
        endBatch();
      }
    }
  };

  Reaction.prototype.getDisposer = function () {
    var r = this.dispose.bind(this);
    r[$mobx] = this;
    return r;
  };

  Reaction.prototype.toString = function () {
    return "Reaction[" + this.name + "]";
  };

  Reaction.prototype.trace = function (enterBreakPoint) {
    if (enterBreakPoint === void 0) {
      enterBreakPoint = false;
    }

    trace(this, enterBreakPoint);
  };

  return Reaction;
}();

function onReactionError(handler) {
  globalState.globalReactionErrorHandlers.push(handler);
  return function () {
    var idx = globalState.globalReactionErrorHandlers.indexOf(handler);
    if (idx >= 0) globalState.globalReactionErrorHandlers.splice(idx, 1);
  };
}
/**
 * Magic number alert!
 * Defines within how many times a reaction is allowed to re-trigger itself
 * until it is assumed that this is gonna be a never ending loop...
 */


var MAX_REACTION_ITERATIONS = 100;

var reactionScheduler = function (f) {
  return f();
};

function runReactions() {
  // Trampolining, if runReactions are already running, new reactions will be picked up
  if (globalState.inBatch > 0 || globalState.isRunningReactions) return;
  reactionScheduler(runReactionsHelper);
}

function runReactionsHelper() {
  globalState.isRunningReactions = true;
  var allReactions = globalState.pendingReactions;
  var iterations = 0; // While running reactions, new reactions might be triggered.
  // Hence we work with two variables and check whether
  // we converge to no remaining reactions after a while.

  while (allReactions.length > 0) {
    if (++iterations === MAX_REACTION_ITERATIONS) {
      console.error("Reaction doesn't converge to a stable state after " + MAX_REACTION_ITERATIONS + " iterations." + (" Probably there is a cycle in the reactive function: " + allReactions[0]));
      allReactions.splice(0); // clear reactions
    }

    var remainingReactions = allReactions.splice(0);

    for (var i = 0, l = remainingReactions.length; i < l; i++) remainingReactions[i].runReaction();
  }

  globalState.isRunningReactions = false;
}

var isReaction = createInstanceofPredicate("Reaction", Reaction);

function setReactionScheduler(fn) {
  var baseScheduler = reactionScheduler;

  reactionScheduler = function (f) {
    return fn(function () {
      return baseScheduler(f);
    });
  };
}

function isSpyEnabled() {
  return  false && false;
}

function spyReport(event) {
  if (true) return; // dead code elimination can do the rest

  if (!globalState.spyListeners.length) return;
  var listeners = globalState.spyListeners;

  for (var i = 0, l = listeners.length; i < l; i++) listeners[i](event);
}

function spyReportStart(event) {
  if (true) return;

  var change = __assign(__assign({}, event), {
    spyReportStart: true
  });

  spyReport(change);
}

var END_EVENT = {
  spyReportEnd: true
};

function spyReportEnd(change) {
  if (true) return;
  if (change) spyReport(__assign(__assign({}, change), {
    spyReportEnd: true
  }));else spyReport(END_EVENT);
}

function spy(listener) {
  if (true) {
    console.warn("[mobx.spy] Is a no-op in production builds");
    return function () {};
  } else {}
}

function dontReassignFields() {
  fail( false && false);
}

function namedActionDecorator(name) {
  return function (target, prop, descriptor) {
    if (descriptor) {
      if (false) {} // babel / typescript
      // @action method() { }


      if (descriptor.value) {
        // typescript
        return {
          value: createAction(name, descriptor.value),
          enumerable: false,
          configurable: true,
          writable: true // for typescript, this must be writable, otherwise it cannot inherit :/ (see inheritable actions test)

        };
      } // babel only: @action method = () => {}


      var initializer_1 = descriptor.initializer;
      return {
        enumerable: false,
        configurable: true,
        writable: true,
        initializer: function () {
          // N.B: we can't immediately invoke initializer; this would be wrong
          return createAction(name, initializer_1.call(this));
        }
      };
    } // bound instance methods


    return actionFieldDecorator(name).apply(this, arguments);
  };
}

function actionFieldDecorator(name) {
  // Simple property that writes on first invocation to the current instance
  return function (target, prop, descriptor) {
    Object.defineProperty(target, prop, {
      configurable: true,
      enumerable: false,
      get: function () {
        return undefined;
      },
      set: function (value) {
        addHiddenProp(this, prop, action(name, value));
      }
    });
  };
}

function boundActionDecorator(target, propertyName, descriptor, applyToInstance) {
  if (applyToInstance === true) {
    defineBoundAction(target, propertyName, descriptor.value);
    return null;
  }

  if (descriptor) {
    // if (descriptor.value)
    // Typescript / Babel: @action.bound method() { }
    // also: babel @action.bound method = () => {}
    return {
      configurable: true,
      enumerable: false,
      get: function () {
        defineBoundAction(this, propertyName, descriptor.value || descriptor.initializer.call(this));
        return this[propertyName];
      },
      set: dontReassignFields
    };
  } // field decorator Typescript @action.bound method = () => {}


  return {
    enumerable: false,
    configurable: true,
    set: function (v) {
      defineBoundAction(this, propertyName, v);
    },
    get: function () {
      return undefined;
    }
  };
}

var action = function action(arg1, arg2, arg3, arg4) {
  // action(fn() {})
  if (arguments.length === 1 && typeof arg1 === "function") return createAction(arg1.name || "<unnamed action>", arg1); // action("name", fn() {})

  if (arguments.length === 2 && typeof arg2 === "function") return createAction(arg1, arg2); // @action("name") fn() {}

  if (arguments.length === 1 && typeof arg1 === "string") return namedActionDecorator(arg1); // @action fn() {}

  if (arg4 === true) {
    // apply to instance immediately
    addHiddenProp(arg1, arg2, createAction(arg1.name || arg2, arg3.value, this));
  } else {
    return namedActionDecorator(arg2).apply(null, arguments);
  }
};

action.bound = boundActionDecorator;

function runInAction(arg1, arg2) {
  var actionName = typeof arg1 === "string" ? arg1 : arg1.name || "<unnamed action>";
  var fn = typeof arg1 === "function" ? arg1 : arg2;

  if (false) {}

  return executeAction(actionName, fn, this, undefined);
}

function isAction(thing) {
  return typeof thing === "function" && thing.isMobxAction === true;
}

function defineBoundAction(target, propertyName, fn) {
  addHiddenProp(target, propertyName, createAction(propertyName, fn.bind(target)));
}
/**
 * Creates a named reactive view and keeps it alive, so that the view is always
 * updated if one of the dependencies changes, even when the view is not further used by something else.
 * @param view The reactive view
 * @returns disposer function, which can be used to stop the view from being updated in the future.
 */


function autorun(view, opts) {
  if (opts === void 0) {
    opts = EMPTY_OBJECT;
  }

  if (false) {}

  var name = opts && opts.name || view.name || "Autorun@" + getNextId();
  var runSync = !opts.scheduler && !opts.delay;
  var reaction;

  if (runSync) {
    // normal autorun
    reaction = new Reaction(name, function () {
      this.track(reactionRunner);
    }, opts.onError, opts.requiresObservable);
  } else {
    var scheduler_1 = createSchedulerFromOptions(opts); // debounced autorun

    var isScheduled_1 = false;
    reaction = new Reaction(name, function () {
      if (!isScheduled_1) {
        isScheduled_1 = true;
        scheduler_1(function () {
          isScheduled_1 = false;
          if (!reaction.isDisposed) reaction.track(reactionRunner);
        });
      }
    }, opts.onError, opts.requiresObservable);
  }

  function reactionRunner() {
    view(reaction);
  }

  reaction.schedule();
  return reaction.getDisposer();
}

var run = function (f) {
  return f();
};

function createSchedulerFromOptions(opts) {
  return opts.scheduler ? opts.scheduler : opts.delay ? function (f) {
    return setTimeout(f, opts.delay);
  } : run;
}

function reaction(expression, effect, opts) {
  if (opts === void 0) {
    opts = EMPTY_OBJECT;
  }

  if (false) {}

  var name = opts.name || "Reaction@" + getNextId();
  var effectAction = action(name, opts.onError ? wrapErrorHandler(opts.onError, effect) : effect);
  var runSync = !opts.scheduler && !opts.delay;
  var scheduler = createSchedulerFromOptions(opts);
  var firstTime = true;
  var isScheduled = false;
  var value;
  var equals = opts.compareStructural ? comparer.structural : opts.equals || comparer.default;
  var r = new Reaction(name, function () {
    if (firstTime || runSync) {
      reactionRunner();
    } else if (!isScheduled) {
      isScheduled = true;
      scheduler(reactionRunner);
    }
  }, opts.onError, opts.requiresObservable);

  function reactionRunner() {
    isScheduled = false; // Q: move into reaction runner?

    if (r.isDisposed) return;
    var changed = false;
    r.track(function () {
      var nextValue = expression(r);
      changed = firstTime || !equals(value, nextValue);
      value = nextValue;
    });
    if (firstTime && opts.fireImmediately) effectAction(value, r);
    if (!firstTime && changed === true) effectAction(value, r);
    if (firstTime) firstTime = false;
  }

  r.schedule();
  return r.getDisposer();
}

function wrapErrorHandler(errorHandler, baseFn) {
  return function () {
    try {
      return baseFn.apply(this, arguments);
    } catch (e) {
      errorHandler.call(this, e);
    }
  };
}

function onBecomeObserved(thing, arg2, arg3) {
  return interceptHook("onBecomeObserved", thing, arg2, arg3);
}

function onBecomeUnobserved(thing, arg2, arg3) {
  return interceptHook("onBecomeUnobserved", thing, arg2, arg3);
}

function interceptHook(hook, thing, arg2, arg3) {
  var atom = typeof arg3 === "function" ? getAtom(thing, arg2) : getAtom(thing);
  var cb = typeof arg3 === "function" ? arg3 : arg2;
  var listenersKey = hook + "Listeners";

  if (atom[listenersKey]) {
    atom[listenersKey].add(cb);
  } else {
    atom[listenersKey] = new Set([cb]);
  }

  var orig = atom[hook];
  if (typeof orig !== "function") return fail( false && false);
  return function () {
    var hookListeners = atom[listenersKey];

    if (hookListeners) {
      hookListeners.delete(cb);

      if (hookListeners.size === 0) {
        delete atom[listenersKey];
      }
    }
  };
}

function configure(options) {
  var enforceActions = options.enforceActions,
      computedRequiresReaction = options.computedRequiresReaction,
      computedConfigurable = options.computedConfigurable,
      disableErrorBoundaries = options.disableErrorBoundaries,
      reactionScheduler = options.reactionScheduler,
      reactionRequiresObservable = options.reactionRequiresObservable,
      observableRequiresReaction = options.observableRequiresReaction;

  if (options.isolateGlobalState === true) {
    isolateGlobalState();
  }

  if (enforceActions !== undefined) {
    if (typeof enforceActions === "boolean" || enforceActions === "strict") deprecated("Deprecated value for 'enforceActions', use 'false' => '\"never\"', 'true' => '\"observed\"', '\"strict\"' => \"'always'\" instead");
    var ea = void 0;

    switch (enforceActions) {
      case true:
      case "observed":
        ea = true;
        break;

      case false:
      case "never":
        ea = false;
        break;

      case "strict":
      case "always":
        ea = "strict";
        break;

      default:
        fail("Invalid value for 'enforceActions': '" + enforceActions + "', expected 'never', 'always' or 'observed'");
    }

    globalState.enforceActions = ea;
    globalState.allowStateChanges = ea === true || ea === "strict" ? false : true;
  }

  if (computedRequiresReaction !== undefined) {
    globalState.computedRequiresReaction = !!computedRequiresReaction;
  }

  if (reactionRequiresObservable !== undefined) {
    globalState.reactionRequiresObservable = !!reactionRequiresObservable;
  }

  if (observableRequiresReaction !== undefined) {
    globalState.observableRequiresReaction = !!observableRequiresReaction;
    globalState.allowStateReads = !globalState.observableRequiresReaction;
  }

  if (computedConfigurable !== undefined) {
    globalState.computedConfigurable = !!computedConfigurable;
  }

  if (disableErrorBoundaries !== undefined) {
    if (disableErrorBoundaries === true) console.warn("WARNING: Debug feature only. MobX will NOT recover from errors when `disableErrorBoundaries` is enabled.");
    globalState.disableErrorBoundaries = !!disableErrorBoundaries;
  }

  if (reactionScheduler) {
    setReactionScheduler(reactionScheduler);
  }
}

function decorate(thing, decorators) {
   false && false;
  var target = typeof thing === "function" ? thing.prototype : thing;

  var _loop_1 = function (prop) {
    var propertyDecorators = decorators[prop];

    if (!Array.isArray(propertyDecorators)) {
      propertyDecorators = [propertyDecorators];
    }

     false && false;
    var descriptor = Object.getOwnPropertyDescriptor(target, prop);
    var newDescriptor = propertyDecorators.reduce(function (accDescriptor, decorator) {
      return decorator(target, prop, accDescriptor);
    }, descriptor);
    if (newDescriptor) Object.defineProperty(target, prop, newDescriptor);
  };

  for (var prop in decorators) {
    _loop_1(prop);
  }

  return thing;
}

function extendObservable(target, properties, decorators, options) {
  if (false) {}

  options = asCreateObservableOptions(options);
  var defaultDecorator = getDefaultDecoratorFromObjectOptions(options);
  initializeInstance(target); // Fixes #1740

  asObservableObject(target, options.name, defaultDecorator.enhancer); // make sure object is observable, even without initial props

  if (properties) extendObservableObjectWithProperties(target, properties, decorators, defaultDecorator);
  return target;
}

function getDefaultDecoratorFromObjectOptions(options) {
  return options.defaultDecorator || (options.deep === false ? refDecorator : deepDecorator);
}

function extendObservableObjectWithProperties(target, properties, decorators, defaultDecorator) {
  var e_1, _a, e_2, _b;

  if (false) { var key, keys_1, keys_1_1, keys; }

  startBatch();

  try {
    var keys = getPlainObjectKeys(properties);

    try {
      for (var keys_2 = __values(keys), keys_2_1 = keys_2.next(); !keys_2_1.done; keys_2_1 = keys_2.next()) {
        var key = keys_2_1.value;
        var descriptor = Object.getOwnPropertyDescriptor(properties, key);

        if (false) {}

        var decorator = decorators && key in decorators ? decorators[key] : descriptor.get ? computedDecorator : defaultDecorator;
        if (false) {}
        var resultDescriptor = decorator(target, key, descriptor, true);
        if (resultDescriptor // otherwise, assume already applied, due to `applyToInstance`
        ) Object.defineProperty(target, key, resultDescriptor);
      }
    } catch (e_2_1) {
      e_2 = {
        error: e_2_1
      };
    } finally {
      try {
        if (keys_2_1 && !keys_2_1.done && (_b = keys_2.return)) _b.call(keys_2);
      } finally {
        if (e_2) throw e_2.error;
      }
    }
  } finally {
    endBatch();
  }
}

function getDependencyTree(thing, property) {
  return nodeToDependencyTree(getAtom(thing, property));
}

function nodeToDependencyTree(node) {
  var result = {
    name: node.name
  };
  if (node.observing && node.observing.length > 0) result.dependencies = unique(node.observing).map(nodeToDependencyTree);
  return result;
}

function getObserverTree(thing, property) {
  return nodeToObserverTree(getAtom(thing, property));
}

function nodeToObserverTree(node) {
  var result = {
    name: node.name
  };
  if (hasObservers(node)) result.observers = Array.from(getObservers(node)).map(nodeToObserverTree);
  return result;
}

var generatorId = 0;

function FlowCancellationError() {
  this.message = "FLOW_CANCELLED";
}

FlowCancellationError.prototype = Object.create(Error.prototype);

function isFlowCancellationError(error) {
  return error instanceof FlowCancellationError;
}

function flow(generator) {
  if (arguments.length !== 1) fail( true && "Flow expects 1 argument and cannot be used as decorator");
  var name = generator.name || "<unnamed flow>"; // Implementation based on https://github.com/tj/co/blob/master/index.js

  return function () {
    var ctx = this;
    var args = arguments;
    var runId = ++generatorId;
    var gen = action(name + " - runid: " + runId + " - init", generator).apply(ctx, args);
    var rejector;
    var pendingPromise = undefined;
    var promise = new Promise(function (resolve, reject) {
      var stepId = 0;
      rejector = reject;

      function onFulfilled(res) {
        pendingPromise = undefined;
        var ret;

        try {
          ret = action(name + " - runid: " + runId + " - yield " + stepId++, gen.next).call(gen, res);
        } catch (e) {
          return reject(e);
        }

        next(ret);
      }

      function onRejected(err) {
        pendingPromise = undefined;
        var ret;

        try {
          ret = action(name + " - runid: " + runId + " - yield " + stepId++, gen.throw).call(gen, err);
        } catch (e) {
          return reject(e);
        }

        next(ret);
      }

      function next(ret) {
        if (ret && typeof ret.then === "function") {
          // an async iterator
          ret.then(next, reject);
          return;
        }

        if (ret.done) return resolve(ret.value);
        pendingPromise = Promise.resolve(ret.value);
        return pendingPromise.then(onFulfilled, onRejected);
      }

      onFulfilled(undefined); // kick off the process
    });
    promise.cancel = action(name + " - runid: " + runId + " - cancel", function () {
      try {
        if (pendingPromise) cancelPromise(pendingPromise); // Finally block can return (or yield) stuff..

        var res = gen.return(undefined); // eat anything that promise would do, it's cancelled!

        var yieldedPromise = Promise.resolve(res.value);
        yieldedPromise.then(noop, noop);
        cancelPromise(yieldedPromise); // maybe it can be cancelled :)
        // reject our original promise

        rejector(new FlowCancellationError());
      } catch (e) {
        rejector(e); // there could be a throwing finally block
      }
    });
    return promise;
  };
}

function cancelPromise(promise) {
  if (typeof promise.cancel === "function") promise.cancel();
}

function interceptReads(thing, propOrHandler, handler) {
  var target;

  if (isObservableMap(thing) || isObservableArray(thing) || isObservableValue(thing)) {
    target = getAdministration(thing);
  } else if (isObservableObject(thing)) {
    if (typeof propOrHandler !== "string") return fail( false && false);
    target = getAdministration(thing, propOrHandler);
  } else {
    return fail( false && false);
  }

  if (target.dehancer !== undefined) return fail( false && false);
  target.dehancer = typeof propOrHandler === "function" ? propOrHandler : handler;
  return function () {
    target.dehancer = undefined;
  };
}

function intercept(thing, propOrHandler, handler) {
  if (typeof handler === "function") return interceptProperty(thing, propOrHandler, handler);else return interceptInterceptable(thing, propOrHandler);
}

function interceptInterceptable(thing, handler) {
  return getAdministration(thing).intercept(handler);
}

function interceptProperty(thing, property, handler) {
  return getAdministration(thing, property).intercept(handler);
}

function _isComputed(value, property) {
  if (value === null || value === undefined) return false;

  if (property !== undefined) {
    if (isObservableObject(value) === false) return false;
    if (!value[$mobx].values.has(property)) return false;
    var atom = getAtom(value, property);
    return isComputedValue(atom);
  }

  return isComputedValue(value);
}

function isComputed(value) {
  if (arguments.length > 1) return fail( false && false);
  return _isComputed(value);
}

function isComputedProp(value, propName) {
  if (typeof propName !== "string") return fail( false && false);
  return _isComputed(value, propName);
}

function _isObservable(value, property) {
  if (value === null || value === undefined) return false;

  if (property !== undefined) {
    if (false) {}

    if (isObservableObject(value)) {
      return value[$mobx].values.has(property);
    }

    return false;
  } // For first check, see #701


  return isObservableObject(value) || !!value[$mobx] || isAtom(value) || isReaction(value) || isComputedValue(value);
}

function isObservable(value) {
  if (arguments.length !== 1) fail( false && false);
  return _isObservable(value);
}

function isObservableProp(value, propName) {
  if (typeof propName !== "string") return fail( false && false);
  return _isObservable(value, propName);
}

function keys(obj) {
  if (isObservableObject(obj)) {
    return obj[$mobx].getKeys();
  }

  if (isObservableMap(obj)) {
    return Array.from(obj.keys());
  }

  if (isObservableSet(obj)) {
    return Array.from(obj.keys());
  }

  if (isObservableArray(obj)) {
    return obj.map(function (_, index) {
      return index;
    });
  }

  return fail( false && false);
}

function values(obj) {
  if (isObservableObject(obj)) {
    return keys(obj).map(function (key) {
      return obj[key];
    });
  }

  if (isObservableMap(obj)) {
    return keys(obj).map(function (key) {
      return obj.get(key);
    });
  }

  if (isObservableSet(obj)) {
    return Array.from(obj.values());
  }

  if (isObservableArray(obj)) {
    return obj.slice();
  }

  return fail( false && false);
}

function entries(obj) {
  if (isObservableObject(obj)) {
    return keys(obj).map(function (key) {
      return [key, obj[key]];
    });
  }

  if (isObservableMap(obj)) {
    return keys(obj).map(function (key) {
      return [key, obj.get(key)];
    });
  }

  if (isObservableSet(obj)) {
    return Array.from(obj.entries());
  }

  if (isObservableArray(obj)) {
    return obj.map(function (key, index) {
      return [index, key];
    });
  }

  return fail( false && false);
}

function set(obj, key, value) {
  if (arguments.length === 2 && !isObservableSet(obj)) {
    startBatch();
    var values_1 = key;

    try {
      for (var key_1 in values_1) set(obj, key_1, values_1[key_1]);
    } finally {
      endBatch();
    }

    return;
  }

  if (isObservableObject(obj)) {
    var adm = obj[$mobx];
    var existingObservable = adm.values.get(key);

    if (existingObservable) {
      adm.write(key, value);
    } else {
      adm.addObservableProp(key, value, adm.defaultEnhancer);
    }
  } else if (isObservableMap(obj)) {
    obj.set(key, value);
  } else if (isObservableSet(obj)) {
    obj.add(key);
  } else if (isObservableArray(obj)) {
    if (typeof key !== "number") key = parseInt(key, 10);
    invariant(key >= 0, "Not a valid index: '" + key + "'");
    startBatch();
    if (key >= obj.length) obj.length = key + 1;
    obj[key] = value;
    endBatch();
  } else {
    return fail( false && false);
  }
}

function remove(obj, key) {
  if (isObservableObject(obj)) {
    obj[$mobx].remove(key);
  } else if (isObservableMap(obj)) {
    obj.delete(key);
  } else if (isObservableSet(obj)) {
    obj.delete(key);
  } else if (isObservableArray(obj)) {
    if (typeof key !== "number") key = parseInt(key, 10);
    invariant(key >= 0, "Not a valid index: '" + key + "'");
    obj.splice(key, 1);
  } else {
    return fail( false && false);
  }
}

function has(obj, key) {
  if (isObservableObject(obj)) {
    // return keys(obj).indexOf(key) >= 0
    var adm = getAdministration(obj);
    return adm.has(key);
  } else if (isObservableMap(obj)) {
    return obj.has(key);
  } else if (isObservableSet(obj)) {
    return obj.has(key);
  } else if (isObservableArray(obj)) {
    return key >= 0 && key < obj.length;
  } else {
    return fail( false && false);
  }
}

function get(obj, key) {
  if (!has(obj, key)) return undefined;

  if (isObservableObject(obj)) {
    return obj[key];
  } else if (isObservableMap(obj)) {
    return obj.get(key);
  } else if (isObservableArray(obj)) {
    return obj[key];
  } else {
    return fail( false && false);
  }
}

function observe(thing, propOrCb, cbOrFire, fireImmediately) {
  if (typeof cbOrFire === "function") return observeObservableProperty(thing, propOrCb, cbOrFire, fireImmediately);else return observeObservable(thing, propOrCb, cbOrFire);
}

function observeObservable(thing, listener, fireImmediately) {
  return getAdministration(thing).observe(listener, fireImmediately);
}

function observeObservableProperty(thing, property, listener, fireImmediately) {
  return getAdministration(thing, property).observe(listener, fireImmediately);
}

var defaultOptions = {
  detectCycles: true,
  exportMapsAsObjects: true,
  recurseEverything: false
};

function cache(map, key, value, options) {
  if (options.detectCycles) map.set(key, value);
  return value;
}

function toJSHelper(source, options, __alreadySeen) {
  if (!options.recurseEverything && !isObservable(source)) return source;
  if (typeof source !== "object") return source; // Directly return null if source is null

  if (source === null) return null; // Directly return the Date object itself if contained in the observable

  if (source instanceof Date) return source;
  if (isObservableValue(source)) return toJSHelper(source.get(), options, __alreadySeen); // make sure we track the keys of the object

  if (isObservable(source)) keys(source);
  var detectCycles = options.detectCycles === true;

  if (detectCycles && source !== null && __alreadySeen.has(source)) {
    return __alreadySeen.get(source);
  }

  if (isObservableArray(source) || Array.isArray(source)) {
    var res_1 = cache(__alreadySeen, source, [], options);
    var toAdd = source.map(function (value) {
      return toJSHelper(value, options, __alreadySeen);
    });
    res_1.length = toAdd.length;

    for (var i = 0, l = toAdd.length; i < l; i++) res_1[i] = toAdd[i];

    return res_1;
  }

  if (isObservableSet(source) || Object.getPrototypeOf(source) === Set.prototype) {
    if (options.exportMapsAsObjects === false) {
      var res_2 = cache(__alreadySeen, source, new Set(), options);
      source.forEach(function (value) {
        res_2.add(toJSHelper(value, options, __alreadySeen));
      });
      return res_2;
    } else {
      var res_3 = cache(__alreadySeen, source, [], options);
      source.forEach(function (value) {
        res_3.push(toJSHelper(value, options, __alreadySeen));
      });
      return res_3;
    }
  }

  if (isObservableMap(source) || Object.getPrototypeOf(source) === Map.prototype) {
    if (options.exportMapsAsObjects === false) {
      var res_4 = cache(__alreadySeen, source, new Map(), options);
      source.forEach(function (value, key) {
        res_4.set(key, toJSHelper(value, options, __alreadySeen));
      });
      return res_4;
    } else {
      var res_5 = cache(__alreadySeen, source, {}, options);
      source.forEach(function (value, key) {
        res_5[key] = toJSHelper(value, options, __alreadySeen);
      });
      return res_5;
    }
  } // Fallback to the situation that source is an ObservableObject or a plain object


  var res = cache(__alreadySeen, source, {}, options);
  getPlainObjectKeys(source).forEach(function (key) {
    res[key] = toJSHelper(source[key], options, __alreadySeen);
  });
  return res;
}

function toJS(source, options) {
  // backward compatibility
  if (typeof options === "boolean") options = {
    detectCycles: options
  };
  if (!options) options = defaultOptions;
  options.detectCycles = options.detectCycles === undefined ? options.recurseEverything === true : options.detectCycles === true;

  var __alreadySeen;

  if (options.detectCycles) __alreadySeen = new Map();
  return toJSHelper(source, options, __alreadySeen);
}

function trace() {
  var args = [];

  for (var _i = 0; _i < arguments.length; _i++) {
    args[_i] = arguments[_i];
  }

  var enterBreakPoint = false;
  if (typeof args[args.length - 1] === "boolean") enterBreakPoint = args.pop();
  var derivation = getAtomFromArgs(args);

  if (!derivation) {
    return fail( false && false);
  }

  if (derivation.isTracing === TraceMode.NONE) {
    console.log("[mobx.trace] '" + derivation.name + "' tracing enabled");
  }

  derivation.isTracing = enterBreakPoint ? TraceMode.BREAK : TraceMode.LOG;
}

function getAtomFromArgs(args) {
  switch (args.length) {
    case 0:
      return globalState.trackingDerivation;

    case 1:
      return getAtom(args[0]);

    case 2:
      return getAtom(args[0], args[1]);
  }
}
/**
 * During a transaction no views are updated until the end of the transaction.
 * The transaction will be run synchronously nonetheless.
 *
 * @param action a function that updates some reactive state
 * @returns any value that was returned by the 'action' parameter.
 */


function transaction(action, thisArg) {
  if (thisArg === void 0) {
    thisArg = undefined;
  }

  startBatch();

  try {
    return action.apply(thisArg);
  } finally {
    endBatch();
  }
}

function when(predicate, arg1, arg2) {
  if (arguments.length === 1 || arg1 && typeof arg1 === "object") return whenPromise(predicate, arg1);
  return _when(predicate, arg1, arg2 || {});
}

function _when(predicate, effect, opts) {
  var timeoutHandle;

  if (typeof opts.timeout === "number") {
    timeoutHandle = setTimeout(function () {
      if (!disposer[$mobx].isDisposed) {
        disposer();
        var error = new Error("WHEN_TIMEOUT");
        if (opts.onError) opts.onError(error);else throw error;
      }
    }, opts.timeout);
  }

  opts.name = opts.name || "When@" + getNextId();
  var effectAction = createAction(opts.name + "-effect", effect);
  var disposer = autorun(function (r) {
    if (predicate()) {
      r.dispose();
      if (timeoutHandle) clearTimeout(timeoutHandle);
      effectAction();
    }
  }, opts);
  return disposer;
}

function whenPromise(predicate, opts) {
  if (false) {}
  var cancel;
  var res = new Promise(function (resolve, reject) {
    var disposer = _when(predicate, resolve, __assign(__assign({}, opts), {
      onError: reject
    }));

    cancel = function () {
      disposer();
      reject("WHEN_CANCELLED");
    };
  });
  res.cancel = cancel;
  return res;
}

function getAdm(target) {
  return target[$mobx];
}

function isPropertyKey(val) {
  return typeof val === "string" || typeof val === "number" || typeof val === "symbol";
} // Optimization: we don't need the intermediate objects and could have a completely custom administration for DynamicObjects,
// and skip either the internal values map, or the base object with its property descriptors!


var objectProxyTraps = {
  has: function (target, name) {
    if (name === $mobx || name === "constructor" || name === mobxDidRunLazyInitializersSymbol) return true;
    var adm = getAdm(target); // MWE: should `in` operator be reactive? If not, below code path will be faster / more memory efficient
    // TODO: check performance stats!
    // if (adm.values.get(name as string)) return true

    if (isPropertyKey(name)) return adm.has(name);
    return name in target;
  },
  get: function (target, name) {
    if (name === $mobx || name === "constructor" || name === mobxDidRunLazyInitializersSymbol) return target[name];
    var adm = getAdm(target);
    var observable = adm.values.get(name);

    if (observable instanceof Atom) {
      var result = observable.get();

      if (result === undefined) {
        // This fixes #1796, because deleting a prop that has an
        // undefined value won't retrigger a observer (no visible effect),
        // the autorun wouldn't subscribe to future key changes (see also next comment)
        adm.has(name);
      }

      return result;
    } // make sure we start listening to future keys
    // note that we only do this here for optimization


    if (isPropertyKey(name)) adm.has(name);
    return target[name];
  },
  set: function (target, name, value) {
    if (!isPropertyKey(name)) return false;
    set(target, name, value);
    return true;
  },
  deleteProperty: function (target, name) {
    if (!isPropertyKey(name)) return false;
    var adm = getAdm(target);
    adm.remove(name);
    return true;
  },
  ownKeys: function (target) {
    var adm = getAdm(target);
    adm.keysAtom.reportObserved();
    return Reflect.ownKeys(target);
  },
  preventExtensions: function (target) {
    fail("Dynamic observable objects cannot be frozen");
    return false;
  }
};

function createDynamicObservableObject(base) {
  var proxy = new Proxy(base, objectProxyTraps);
  base[$mobx].proxy = proxy;
  return proxy;
}

function hasInterceptors(interceptable) {
  return interceptable.interceptors !== undefined && interceptable.interceptors.length > 0;
}

function registerInterceptor(interceptable, handler) {
  var interceptors = interceptable.interceptors || (interceptable.interceptors = []);
  interceptors.push(handler);
  return once(function () {
    var idx = interceptors.indexOf(handler);
    if (idx !== -1) interceptors.splice(idx, 1);
  });
}

function interceptChange(interceptable, change) {
  var prevU = untrackedStart();

  try {
    // Interceptor can modify the array, copy it to avoid concurrent modification, see #1950
    var interceptors = __spread(interceptable.interceptors || []);

    for (var i = 0, l = interceptors.length; i < l; i++) {
      change = interceptors[i](change);
      invariant(!change || change.type, "Intercept handlers should return nothing or a change object");
      if (!change) break;
    }

    return change;
  } finally {
    untrackedEnd(prevU);
  }
}

function hasListeners(listenable) {
  return listenable.changeListeners !== undefined && listenable.changeListeners.length > 0;
}

function registerListener(listenable, handler) {
  var listeners = listenable.changeListeners || (listenable.changeListeners = []);
  listeners.push(handler);
  return once(function () {
    var idx = listeners.indexOf(handler);
    if (idx !== -1) listeners.splice(idx, 1);
  });
}

function notifyListeners(listenable, change) {
  var prevU = untrackedStart();
  var listeners = listenable.changeListeners;
  if (!listeners) return;
  listeners = listeners.slice();

  for (var i = 0, l = listeners.length; i < l; i++) {
    listeners[i](change);
  }

  untrackedEnd(prevU);
}

var MAX_SPLICE_SIZE = 10000; // See e.g. https://github.com/mobxjs/mobx/issues/859

var arrayTraps = {
  get: function (target, name) {
    if (name === $mobx) return target[$mobx];
    if (name === "length") return target[$mobx].getArrayLength();

    if (typeof name === "number") {
      return arrayExtensions.get.call(target, name);
    }

    if (typeof name === "string" && !isNaN(name)) {
      return arrayExtensions.get.call(target, parseInt(name));
    }

    if (arrayExtensions.hasOwnProperty(name)) {
      return arrayExtensions[name];
    }

    return target[name];
  },
  set: function (target, name, value) {
    if (name === "length") {
      target[$mobx].setArrayLength(value);
    }

    if (typeof name === "number") {
      arrayExtensions.set.call(target, name, value);
    }

    if (typeof name === "symbol" || isNaN(name)) {
      target[name] = value;
    } else {
      // numeric string
      arrayExtensions.set.call(target, parseInt(name), value);
    }

    return true;
  },
  preventExtensions: function (target) {
    fail("Observable arrays cannot be frozen");
    return false;
  }
};

function createObservableArray(initialValues, enhancer, name, owned) {
  if (name === void 0) {
    name = "ObservableArray@" + getNextId();
  }

  if (owned === void 0) {
    owned = false;
  }

  var adm = new ObservableArrayAdministration(name, enhancer, owned);
  addHiddenFinalProp(adm.values, $mobx, adm);
  var proxy = new Proxy(adm.values, arrayTraps);
  adm.proxy = proxy;

  if (initialValues && initialValues.length) {
    var prev = allowStateChangesStart(true);
    adm.spliceWithArray(0, 0, initialValues);
    allowStateChangesEnd(prev);
  }

  return proxy;
}

var ObservableArrayAdministration =
/** @class */
function () {
  function ObservableArrayAdministration(name, enhancer, owned) {
    this.owned = owned;
    this.values = [];
    this.proxy = undefined;
    this.lastKnownLength = 0;
    this.atom = new Atom(name || "ObservableArray@" + getNextId());

    this.enhancer = function (newV, oldV) {
      return enhancer(newV, oldV, name + "[..]");
    };
  }

  ObservableArrayAdministration.prototype.dehanceValue = function (value) {
    if (this.dehancer !== undefined) return this.dehancer(value);
    return value;
  };

  ObservableArrayAdministration.prototype.dehanceValues = function (values) {
    if (this.dehancer !== undefined && values.length > 0) return values.map(this.dehancer);
    return values;
  };

  ObservableArrayAdministration.prototype.intercept = function (handler) {
    return registerInterceptor(this, handler);
  };

  ObservableArrayAdministration.prototype.observe = function (listener, fireImmediately) {
    if (fireImmediately === void 0) {
      fireImmediately = false;
    }

    if (fireImmediately) {
      listener({
        object: this.proxy,
        type: "splice",
        index: 0,
        added: this.values.slice(),
        addedCount: this.values.length,
        removed: [],
        removedCount: 0
      });
    }

    return registerListener(this, listener);
  };

  ObservableArrayAdministration.prototype.getArrayLength = function () {
    this.atom.reportObserved();
    return this.values.length;
  };

  ObservableArrayAdministration.prototype.setArrayLength = function (newLength) {
    if (typeof newLength !== "number" || newLength < 0) throw new Error("[mobx.array] Out of range: " + newLength);
    var currentLength = this.values.length;
    if (newLength === currentLength) return;else if (newLength > currentLength) {
      var newItems = new Array(newLength - currentLength);

      for (var i = 0; i < newLength - currentLength; i++) newItems[i] = undefined; // No Array.fill everywhere...


      this.spliceWithArray(currentLength, 0, newItems);
    } else this.spliceWithArray(newLength, currentLength - newLength);
  };

  ObservableArrayAdministration.prototype.updateArrayLength = function (oldLength, delta) {
    if (oldLength !== this.lastKnownLength) throw new Error("[mobx] Modification exception: the internal structure of an observable array was changed.");
    this.lastKnownLength += delta;
  };

  ObservableArrayAdministration.prototype.spliceWithArray = function (index, deleteCount, newItems) {
    var _this = this;

    checkIfStateModificationsAreAllowed(this.atom);
    var length = this.values.length;
    if (index === undefined) index = 0;else if (index > length) index = length;else if (index < 0) index = Math.max(0, length + index);
    if (arguments.length === 1) deleteCount = length - index;else if (deleteCount === undefined || deleteCount === null) deleteCount = 0;else deleteCount = Math.max(0, Math.min(deleteCount, length - index));
    if (newItems === undefined) newItems = EMPTY_ARRAY;

    if (hasInterceptors(this)) {
      var change = interceptChange(this, {
        object: this.proxy,
        type: "splice",
        index: index,
        removedCount: deleteCount,
        added: newItems
      });
      if (!change) return EMPTY_ARRAY;
      deleteCount = change.removedCount;
      newItems = change.added;
    }

    newItems = newItems.length === 0 ? newItems : newItems.map(function (v) {
      return _this.enhancer(v, undefined);
    });

    if (false) { var lengthDelta; }

    var res = this.spliceItemsIntoValues(index, deleteCount, newItems);
    if (deleteCount !== 0 || newItems.length !== 0) this.notifyArraySplice(index, newItems, res);
    return this.dehanceValues(res);
  };

  ObservableArrayAdministration.prototype.spliceItemsIntoValues = function (index, deleteCount, newItems) {
    var _a;

    if (newItems.length < MAX_SPLICE_SIZE) {
      return (_a = this.values).splice.apply(_a, __spread([index, deleteCount], newItems));
    } else {
      var res = this.values.slice(index, index + deleteCount);
      this.values = this.values.slice(0, index).concat(newItems, this.values.slice(index + deleteCount));
      return res;
    }
  };

  ObservableArrayAdministration.prototype.notifyArrayChildUpdate = function (index, newValue, oldValue) {
    var notifySpy = !this.owned && isSpyEnabled();
    var notify = hasListeners(this);
    var change = notify || notifySpy ? {
      object: this.proxy,
      type: "update",
      index: index,
      newValue: newValue,
      oldValue: oldValue
    } : null; // The reason why this is on right hand side here (and not above), is this way the uglifier will drop it, but it won't
    // cause any runtime overhead in development mode without NODE_ENV set, unless spying is enabled

    if (notifySpy && "production" !== "production") spyReportStart(__assign(__assign({}, change), {
      name: this.atom.name
    }));
    this.atom.reportChanged();
    if (notify) notifyListeners(this, change);
    if (notifySpy && "production" !== "production") spyReportEnd();
  };

  ObservableArrayAdministration.prototype.notifyArraySplice = function (index, added, removed) {
    var notifySpy = !this.owned && isSpyEnabled();
    var notify = hasListeners(this);
    var change = notify || notifySpy ? {
      object: this.proxy,
      type: "splice",
      index: index,
      removed: removed,
      added: added,
      removedCount: removed.length,
      addedCount: added.length
    } : null;
    if (notifySpy && "production" !== "production") spyReportStart(__assign(__assign({}, change), {
      name: this.atom.name
    }));
    this.atom.reportChanged(); // conform: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/observe

    if (notify) notifyListeners(this, change);
    if (notifySpy && "production" !== "production") spyReportEnd();
  };

  return ObservableArrayAdministration;
}();

var arrayExtensions = {
  intercept: function (handler) {
    return this[$mobx].intercept(handler);
  },
  observe: function (listener, fireImmediately) {
    if (fireImmediately === void 0) {
      fireImmediately = false;
    }

    var adm = this[$mobx];
    return adm.observe(listener, fireImmediately);
  },
  clear: function () {
    return this.splice(0);
  },
  replace: function (newItems) {
    var adm = this[$mobx];
    return adm.spliceWithArray(0, adm.values.length, newItems);
  },

  /**
   * Converts this array back to a (shallow) javascript structure.
   * For a deep clone use mobx.toJS
   */
  toJS: function () {
    return this.slice();
  },
  toJSON: function () {
    // Used by JSON.stringify
    return this.toJS();
  },

  /*
   * functions that do alter the internal structure of the array, (based on lib.es6.d.ts)
   * since these functions alter the inner structure of the array, the have side effects.
   * Because the have side effects, they should not be used in computed function,
   * and for that reason the do not call dependencyState.notifyObserved
   */
  splice: function (index, deleteCount) {
    var newItems = [];

    for (var _i = 2; _i < arguments.length; _i++) {
      newItems[_i - 2] = arguments[_i];
    }

    var adm = this[$mobx];

    switch (arguments.length) {
      case 0:
        return [];

      case 1:
        return adm.spliceWithArray(index);

      case 2:
        return adm.spliceWithArray(index, deleteCount);
    }

    return adm.spliceWithArray(index, deleteCount, newItems);
  },
  spliceWithArray: function (index, deleteCount, newItems) {
    var adm = this[$mobx];
    return adm.spliceWithArray(index, deleteCount, newItems);
  },
  push: function () {
    var items = [];

    for (var _i = 0; _i < arguments.length; _i++) {
      items[_i] = arguments[_i];
    }

    var adm = this[$mobx];
    adm.spliceWithArray(adm.values.length, 0, items);
    return adm.values.length;
  },
  pop: function () {
    return this.splice(Math.max(this[$mobx].values.length - 1, 0), 1)[0];
  },
  shift: function () {
    return this.splice(0, 1)[0];
  },
  unshift: function () {
    var items = [];

    for (var _i = 0; _i < arguments.length; _i++) {
      items[_i] = arguments[_i];
    }

    var adm = this[$mobx];
    adm.spliceWithArray(0, 0, items);
    return adm.values.length;
  },
  reverse: function () {
    // reverse by default mutates in place before returning the result
    // which makes it both a 'derivation' and a 'mutation'.
    // so we deviate from the default and just make it an dervitation
    if (false) {}

    var clone = this.slice();
    return clone.reverse.apply(clone, arguments);
  },
  sort: function (compareFn) {
    // sort by default mutates in place before returning the result
    // which goes against all good practices. Let's not change the array in place!
    if (false) {}

    var clone = this.slice();
    return clone.sort.apply(clone, arguments);
  },
  remove: function (value) {
    var adm = this[$mobx];
    var idx = adm.dehanceValues(adm.values).indexOf(value);

    if (idx > -1) {
      this.splice(idx, 1);
      return true;
    }

    return false;
  },
  get: function (index) {
    var adm = this[$mobx];

    if (adm) {
      if (index < adm.values.length) {
        adm.atom.reportObserved();
        return adm.dehanceValue(adm.values[index]);
      }

      console.warn("[mobx.array] Attempt to read an array index (" + index + ") that is out of bounds (" + adm.values.length + "). Please check length first. Out of bound indices will not be tracked by MobX");
    }

    return undefined;
  },
  set: function (index, newValue) {
    var adm = this[$mobx];
    var values = adm.values;

    if (index < values.length) {
      // update at index in range
      checkIfStateModificationsAreAllowed(adm.atom);
      var oldValue = values[index];

      if (hasInterceptors(adm)) {
        var change = interceptChange(adm, {
          type: "update",
          object: adm.proxy,
          index: index,
          newValue: newValue
        });
        if (!change) return;
        newValue = change.newValue;
      }

      newValue = adm.enhancer(newValue, oldValue);
      var changed = newValue !== oldValue;

      if (changed) {
        values[index] = newValue;
        adm.notifyArrayChildUpdate(index, newValue, oldValue);
      }
    } else if (index === values.length) {
      // add a new item
      adm.spliceWithArray(index, 0, [newValue]);
    } else {
      // out of bounds
      throw new Error("[mobx.array] Index out of bounds, " + index + " is larger than " + values.length);
    }
  }
};
["concat", "every", "filter", "forEach", "indexOf", "join", "lastIndexOf", "map", "reduce", "reduceRight", "slice", "some", "toString", "toLocaleString"].forEach(function (funcName) {
  arrayExtensions[funcName] = function () {
    var adm = this[$mobx];
    adm.atom.reportObserved();
    var res = adm.dehanceValues(adm.values);
    return res[funcName].apply(res, arguments);
  };
});
var isObservableArrayAdministration = createInstanceofPredicate("ObservableArrayAdministration", ObservableArrayAdministration);

function isObservableArray(thing) {
  return isObject(thing) && isObservableArrayAdministration(thing[$mobx]);
}

var _a;

var ObservableMapMarker = {}; // just extend Map? See also https://gist.github.com/nestharus/13b4d74f2ef4a2f4357dbd3fc23c1e54
// But: https://github.com/mobxjs/mobx/issues/1556

var ObservableMap =
/** @class */
function () {
  function ObservableMap(initialData, enhancer, name) {
    if (enhancer === void 0) {
      enhancer = deepEnhancer;
    }

    if (name === void 0) {
      name = "ObservableMap@" + getNextId();
    }

    this.enhancer = enhancer;
    this.name = name;
    this[_a] = ObservableMapMarker;
    this._keysAtom = createAtom(this.name + ".keys()");
    this[Symbol.toStringTag] = "Map";

    if (typeof Map !== "function") {
      throw new Error("mobx.map requires Map polyfill for the current browser. Check babel-polyfill or core-js/es6/map.js");
    }

    this._data = new Map();
    this._hasMap = new Map();
    this.merge(initialData);
  }

  ObservableMap.prototype._has = function (key) {
    return this._data.has(key);
  };

  ObservableMap.prototype.has = function (key) {
    var _this = this;

    if (!globalState.trackingDerivation) return this._has(key);

    var entry = this._hasMap.get(key);

    if (!entry) {
      // todo: replace with atom (breaking change)
      var newEntry = entry = new ObservableValue(this._has(key), referenceEnhancer, this.name + "." + stringifyKey(key) + "?", false);

      this._hasMap.set(key, newEntry);

      onBecomeUnobserved(newEntry, function () {
        return _this._hasMap.delete(key);
      });
    }

    return entry.get();
  };

  ObservableMap.prototype.set = function (key, value) {
    var hasKey = this._has(key);

    if (hasInterceptors(this)) {
      var change = interceptChange(this, {
        type: hasKey ? "update" : "add",
        object: this,
        newValue: value,
        name: key
      });
      if (!change) return this;
      value = change.newValue;
    }

    if (hasKey) {
      this._updateValue(key, value);
    } else {
      this._addValue(key, value);
    }

    return this;
  };

  ObservableMap.prototype.delete = function (key) {
    var _this = this;

    if (hasInterceptors(this)) {
      var change = interceptChange(this, {
        type: "delete",
        object: this,
        name: key
      });
      if (!change) return false;
    }

    if (this._has(key)) {
      var notifySpy = isSpyEnabled();
      var notify = hasListeners(this);
      var change = notify || notifySpy ? {
        type: "delete",
        object: this,
        oldValue: this._data.get(key).value,
        name: key
      } : null;
      if (notifySpy && "production" !== "production") spyReportStart(__assign(__assign({}, change), {
        name: this.name,
        key: key
      }));
      transaction(function () {
        _this._keysAtom.reportChanged();

        _this._updateHasMapEntry(key, false);

        var observable = _this._data.get(key);

        observable.setNewValue(undefined);

        _this._data.delete(key);
      });
      if (notify) notifyListeners(this, change);
      if (notifySpy && "production" !== "production") spyReportEnd();
      return true;
    }

    return false;
  };

  ObservableMap.prototype._updateHasMapEntry = function (key, value) {
    var entry = this._hasMap.get(key);

    if (entry) {
      entry.setNewValue(value);
    }
  };

  ObservableMap.prototype._updateValue = function (key, newValue) {
    var observable = this._data.get(key);

    newValue = observable.prepareNewValue(newValue);

    if (newValue !== globalState.UNCHANGED) {
      var notifySpy = isSpyEnabled();
      var notify = hasListeners(this);
      var change = notify || notifySpy ? {
        type: "update",
        object: this,
        oldValue: observable.value,
        name: key,
        newValue: newValue
      } : null;
      if (notifySpy && "production" !== "production") spyReportStart(__assign(__assign({}, change), {
        name: this.name,
        key: key
      }));
      observable.setNewValue(newValue);
      if (notify) notifyListeners(this, change);
      if (notifySpy && "production" !== "production") spyReportEnd();
    }
  };

  ObservableMap.prototype._addValue = function (key, newValue) {
    var _this = this;

    checkIfStateModificationsAreAllowed(this._keysAtom);
    transaction(function () {
      var observable = new ObservableValue(newValue, _this.enhancer, _this.name + "." + stringifyKey(key), false);

      _this._data.set(key, observable);

      newValue = observable.value; // value might have been changed

      _this._updateHasMapEntry(key, true);

      _this._keysAtom.reportChanged();
    });
    var notifySpy = isSpyEnabled();
    var notify = hasListeners(this);
    var change = notify || notifySpy ? {
      type: "add",
      object: this,
      name: key,
      newValue: newValue
    } : null;
    if (notifySpy && "production" !== "production") spyReportStart(__assign(__assign({}, change), {
      name: this.name,
      key: key
    }));
    if (notify) notifyListeners(this, change);
    if (notifySpy && "production" !== "production") spyReportEnd();
  };

  ObservableMap.prototype.get = function (key) {
    if (this.has(key)) return this.dehanceValue(this._data.get(key).get());
    return this.dehanceValue(undefined);
  };

  ObservableMap.prototype.dehanceValue = function (value) {
    if (this.dehancer !== undefined) {
      return this.dehancer(value);
    }

    return value;
  };

  ObservableMap.prototype.keys = function () {
    this._keysAtom.reportObserved();

    return this._data.keys();
  };

  ObservableMap.prototype.values = function () {
    var self = this;
    var nextIndex = 0;
    var keys = Array.from(this.keys());
    return makeIterable({
      next: function () {
        return nextIndex < keys.length ? {
          value: self.get(keys[nextIndex++]),
          done: false
        } : {
          done: true
        };
      }
    });
  };

  ObservableMap.prototype.entries = function () {
    var self = this;
    var nextIndex = 0;
    var keys = Array.from(this.keys());
    return makeIterable({
      next: function () {
        if (nextIndex < keys.length) {
          var key = keys[nextIndex++];
          return {
            value: [key, self.get(key)],
            done: false
          };
        }

        return {
          done: true
        };
      }
    });
  };

  ObservableMap.prototype[(_a = $mobx, Symbol.iterator)] = function () {
    return this.entries();
  };

  ObservableMap.prototype.forEach = function (callback, thisArg) {
    var e_1, _b;

    try {
      for (var _c = __values(this), _d = _c.next(); !_d.done; _d = _c.next()) {
        var _e = __read(_d.value, 2),
            key = _e[0],
            value = _e[1];

        callback.call(thisArg, value, key, this);
      }
    } catch (e_1_1) {
      e_1 = {
        error: e_1_1
      };
    } finally {
      try {
        if (_d && !_d.done && (_b = _c.return)) _b.call(_c);
      } finally {
        if (e_1) throw e_1.error;
      }
    }
  };
  /** Merge another object into this object, returns this. */


  ObservableMap.prototype.merge = function (other) {
    var _this = this;

    if (isObservableMap(other)) {
      other = other.toJS();
    }

    transaction(function () {
      if (isPlainObject(other)) getPlainObjectKeys(other).forEach(function (key) {
        return _this.set(key, other[key]);
      });else if (Array.isArray(other)) other.forEach(function (_b) {
        var _c = __read(_b, 2),
            key = _c[0],
            value = _c[1];

        return _this.set(key, value);
      });else if (isES6Map(other)) {
        if (other.constructor !== Map) fail("Cannot initialize from classes that inherit from Map: " + other.constructor.name); // prettier-ignore

        other.forEach(function (value, key) {
          return _this.set(key, value);
        });
      } else if (other !== null && other !== undefined) fail("Cannot initialize map from " + other);
    });
    return this;
  };

  ObservableMap.prototype.clear = function () {
    var _this = this;

    transaction(function () {
      untracked(function () {
        var e_2, _b;

        try {
          for (var _c = __values(_this.keys()), _d = _c.next(); !_d.done; _d = _c.next()) {
            var key = _d.value;

            _this.delete(key);
          }
        } catch (e_2_1) {
          e_2 = {
            error: e_2_1
          };
        } finally {
          try {
            if (_d && !_d.done && (_b = _c.return)) _b.call(_c);
          } finally {
            if (e_2) throw e_2.error;
          }
        }
      });
    });
  };

  ObservableMap.prototype.replace = function (values) {
    var _this = this;

    transaction(function () {
      // grab all the keys that are present in the new map but not present in the current map
      // and delete them from the map, then merge the new map
      // this will cause reactions only on changed values
      var newKeys = getMapLikeKeys(values);
      var oldKeys = Array.from(_this.keys());
      var missingKeys = oldKeys.filter(function (k) {
        return newKeys.indexOf(k) === -1;
      });
      missingKeys.forEach(function (k) {
        return _this.delete(k);
      });

      _this.merge(values);
    });
    return this;
  };

  Object.defineProperty(ObservableMap.prototype, "size", {
    get: function () {
      this._keysAtom.reportObserved();

      return this._data.size;
    },
    enumerable: true,
    configurable: true
  });
  /**
   * Returns a plain object that represents this map.
   * Note that all the keys being stringified.
   * If there are duplicating keys after converting them to strings, behaviour is undetermined.
   */

  ObservableMap.prototype.toPOJO = function () {
    var e_3, _b;

    var res = {};

    try {
      for (var _c = __values(this), _d = _c.next(); !_d.done; _d = _c.next()) {
        var _e = __read(_d.value, 2),
            key = _e[0],
            value = _e[1]; // We lie about symbol key types due to https://github.com/Microsoft/TypeScript/issues/1863


        res[typeof key === "symbol" ? key : stringifyKey(key)] = value;
      }
    } catch (e_3_1) {
      e_3 = {
        error: e_3_1
      };
    } finally {
      try {
        if (_d && !_d.done && (_b = _c.return)) _b.call(_c);
      } finally {
        if (e_3) throw e_3.error;
      }
    }

    return res;
  };
  /**
   * Returns a shallow non observable object clone of this map.
   * Note that the values migth still be observable. For a deep clone use mobx.toJS.
   */


  ObservableMap.prototype.toJS = function () {
    return new Map(this);
  };

  ObservableMap.prototype.toJSON = function () {
    // Used by JSON.stringify
    return this.toPOJO();
  };

  ObservableMap.prototype.toString = function () {
    var _this = this;

    return this.name + "[{ " + Array.from(this.keys()).map(function (key) {
      return stringifyKey(key) + ": " + ("" + _this.get(key));
    }).join(", ") + " }]";
  };
  /**
   * Observes this object. Triggers for the events 'add', 'update' and 'delete'.
   * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/observe
   * for callback details
   */


  ObservableMap.prototype.observe = function (listener, fireImmediately) {
     false && false;
    return registerListener(this, listener);
  };

  ObservableMap.prototype.intercept = function (handler) {
    return registerInterceptor(this, handler);
  };

  return ObservableMap;
}();
/* 'var' fixes small-build issue */


var isObservableMap = createInstanceofPredicate("ObservableMap", ObservableMap);

var _a$1;

var ObservableSetMarker = {};

var ObservableSet =
/** @class */
function () {
  function ObservableSet(initialData, enhancer, name) {
    if (enhancer === void 0) {
      enhancer = deepEnhancer;
    }

    if (name === void 0) {
      name = "ObservableSet@" + getNextId();
    }

    this.name = name;
    this[_a$1] = ObservableSetMarker;
    this._data = new Set();
    this._atom = createAtom(this.name);
    this[Symbol.toStringTag] = "Set";

    if (typeof Set !== "function") {
      throw new Error("mobx.set requires Set polyfill for the current browser. Check babel-polyfill or core-js/es6/set.js");
    }

    this.enhancer = function (newV, oldV) {
      return enhancer(newV, oldV, name);
    };

    if (initialData) {
      this.replace(initialData);
    }
  }

  ObservableSet.prototype.dehanceValue = function (value) {
    if (this.dehancer !== undefined) {
      return this.dehancer(value);
    }

    return value;
  };

  ObservableSet.prototype.clear = function () {
    var _this = this;

    transaction(function () {
      untracked(function () {
        var e_1, _b;

        try {
          for (var _c = __values(_this._data.values()), _d = _c.next(); !_d.done; _d = _c.next()) {
            var value = _d.value;

            _this.delete(value);
          }
        } catch (e_1_1) {
          e_1 = {
            error: e_1_1
          };
        } finally {
          try {
            if (_d && !_d.done && (_b = _c.return)) _b.call(_c);
          } finally {
            if (e_1) throw e_1.error;
          }
        }
      });
    });
  };

  ObservableSet.prototype.forEach = function (callbackFn, thisArg) {
    var e_2, _b;

    try {
      for (var _c = __values(this), _d = _c.next(); !_d.done; _d = _c.next()) {
        var value = _d.value;
        callbackFn.call(thisArg, value, value, this);
      }
    } catch (e_2_1) {
      e_2 = {
        error: e_2_1
      };
    } finally {
      try {
        if (_d && !_d.done && (_b = _c.return)) _b.call(_c);
      } finally {
        if (e_2) throw e_2.error;
      }
    }
  };

  Object.defineProperty(ObservableSet.prototype, "size", {
    get: function () {
      this._atom.reportObserved();

      return this._data.size;
    },
    enumerable: true,
    configurable: true
  });

  ObservableSet.prototype.add = function (value) {
    var _this = this;

    checkIfStateModificationsAreAllowed(this._atom);

    if (hasInterceptors(this)) {
      var change = interceptChange(this, {
        type: "add",
        object: this,
        newValue: value
      });
      if (!change) return this; // TODO: ideally, value = change.value would be done here, so that values can be
      // changed by interceptor. Same applies for other Set and Map api's.
    }

    if (!this.has(value)) {
      transaction(function () {
        _this._data.add(_this.enhancer(value, undefined));

        _this._atom.reportChanged();
      });
      var notifySpy = isSpyEnabled();
      var notify = hasListeners(this);
      var change = notify || notifySpy ? {
        type: "add",
        object: this,
        newValue: value
      } : null;
      if (notifySpy && "production" !== "production") spyReportStart(change);
      if (notify) notifyListeners(this, change);
      if (notifySpy && "production" !== "production") spyReportEnd();
    }

    return this;
  };

  ObservableSet.prototype.delete = function (value) {
    var _this = this;

    if (hasInterceptors(this)) {
      var change = interceptChange(this, {
        type: "delete",
        object: this,
        oldValue: value
      });
      if (!change) return false;
    }

    if (this.has(value)) {
      var notifySpy = isSpyEnabled();
      var notify = hasListeners(this);
      var change = notify || notifySpy ? {
        type: "delete",
        object: this,
        oldValue: value
      } : null;
      if (notifySpy && "production" !== "production") spyReportStart(__assign(__assign({}, change), {
        name: this.name
      }));
      transaction(function () {
        _this._atom.reportChanged();

        _this._data.delete(value);
      });
      if (notify) notifyListeners(this, change);
      if (notifySpy && "production" !== "production") spyReportEnd();
      return true;
    }

    return false;
  };

  ObservableSet.prototype.has = function (value) {
    this._atom.reportObserved();

    return this._data.has(this.dehanceValue(value));
  };

  ObservableSet.prototype.entries = function () {
    var nextIndex = 0;
    var keys = Array.from(this.keys());
    var values = Array.from(this.values());
    return makeIterable({
      next: function () {
        var index = nextIndex;
        nextIndex += 1;
        return index < values.length ? {
          value: [keys[index], values[index]],
          done: false
        } : {
          done: true
        };
      }
    });
  };

  ObservableSet.prototype.keys = function () {
    return this.values();
  };

  ObservableSet.prototype.values = function () {
    this._atom.reportObserved();

    var self = this;
    var nextIndex = 0;
    var observableValues = Array.from(this._data.values());
    return makeIterable({
      next: function () {
        return nextIndex < observableValues.length ? {
          value: self.dehanceValue(observableValues[nextIndex++]),
          done: false
        } : {
          done: true
        };
      }
    });
  };

  ObservableSet.prototype.replace = function (other) {
    var _this = this;

    if (isObservableSet(other)) {
      other = other.toJS();
    }

    transaction(function () {
      if (Array.isArray(other)) {
        _this.clear();

        other.forEach(function (value) {
          return _this.add(value);
        });
      } else if (isES6Set(other)) {
        _this.clear();

        other.forEach(function (value) {
          return _this.add(value);
        });
      } else if (other !== null && other !== undefined) {
        fail("Cannot initialize set from " + other);
      }
    });
    return this;
  };

  ObservableSet.prototype.observe = function (listener, fireImmediately) {
    // TODO 'fireImmediately' can be true?
     false && false;
    return registerListener(this, listener);
  };

  ObservableSet.prototype.intercept = function (handler) {
    return registerInterceptor(this, handler);
  };

  ObservableSet.prototype.toJS = function () {
    return new Set(this);
  };

  ObservableSet.prototype.toString = function () {
    return this.name + "[ " + Array.from(this).join(", ") + " ]";
  };

  ObservableSet.prototype[(_a$1 = $mobx, Symbol.iterator)] = function () {
    return this.values();
  };

  return ObservableSet;
}();

var isObservableSet = createInstanceofPredicate("ObservableSet", ObservableSet);

var ObservableObjectAdministration =
/** @class */
function () {
  function ObservableObjectAdministration(target, values, name, defaultEnhancer) {
    if (values === void 0) {
      values = new Map();
    }

    this.target = target;
    this.values = values;
    this.name = name;
    this.defaultEnhancer = defaultEnhancer;
    this.keysAtom = new Atom(name + ".keys");
  }

  ObservableObjectAdministration.prototype.read = function (key) {
    return this.values.get(key).get();
  };

  ObservableObjectAdministration.prototype.write = function (key, newValue) {
    var instance = this.target;
    var observable = this.values.get(key);

    if (observable instanceof ComputedValue) {
      observable.set(newValue);
      return;
    } // intercept


    if (hasInterceptors(this)) {
      var change = interceptChange(this, {
        type: "update",
        object: this.proxy || instance,
        name: key,
        newValue: newValue
      });
      if (!change) return;
      newValue = change.newValue;
    }

    newValue = observable.prepareNewValue(newValue); // notify spy & observers

    if (newValue !== globalState.UNCHANGED) {
      var notify = hasListeners(this);
      var notifySpy = isSpyEnabled();
      var change = notify || notifySpy ? {
        type: "update",
        object: this.proxy || instance,
        oldValue: observable.value,
        name: key,
        newValue: newValue
      } : null;
      if (notifySpy && "production" !== "production") spyReportStart(__assign(__assign({}, change), {
        name: this.name,
        key: key
      }));
      observable.setNewValue(newValue);
      if (notify) notifyListeners(this, change);
      if (notifySpy && "production" !== "production") spyReportEnd();
    }
  };

  ObservableObjectAdministration.prototype.has = function (key) {
    var map = this.pendingKeys || (this.pendingKeys = new Map());
    var entry = map.get(key);
    if (entry) return entry.get();else {
      var exists = !!this.values.get(key); // Possible optimization: Don't have a separate map for non existing keys,
      // but store them in the values map instead, using a special symbol to denote "not existing"

      entry = new ObservableValue(exists, referenceEnhancer, this.name + "." + stringifyKey(key) + "?", false);
      map.set(key, entry);
      return entry.get(); // read to subscribe
    }
  };

  ObservableObjectAdministration.prototype.addObservableProp = function (propName, newValue, enhancer) {
    if (enhancer === void 0) {
      enhancer = this.defaultEnhancer;
    }

    var target = this.target;
    assertPropertyConfigurable(target, propName);

    if (hasInterceptors(this)) {
      var change = interceptChange(this, {
        object: this.proxy || target,
        name: propName,
        type: "add",
        newValue: newValue
      });
      if (!change) return;
      newValue = change.newValue;
    }

    var observable = new ObservableValue(newValue, enhancer, this.name + "." + stringifyKey(propName), false);
    this.values.set(propName, observable);
    newValue = observable.value; // observableValue might have changed it

    Object.defineProperty(target, propName, generateObservablePropConfig(propName));
    this.notifyPropertyAddition(propName, newValue);
  };

  ObservableObjectAdministration.prototype.addComputedProp = function (propertyOwner, // where is the property declared?
  propName, options) {
    var target = this.target;
    options.name = options.name || this.name + "." + stringifyKey(propName);
    this.values.set(propName, new ComputedValue(options));
    if (propertyOwner === target || isPropertyConfigurable(propertyOwner, propName)) Object.defineProperty(propertyOwner, propName, generateComputedPropConfig(propName));
  };

  ObservableObjectAdministration.prototype.remove = function (key) {
    if (!this.values.has(key)) return;
    var target = this.target;

    if (hasInterceptors(this)) {
      var change = interceptChange(this, {
        object: this.proxy || target,
        name: key,
        type: "remove"
      });
      if (!change) return;
    }

    try {
      startBatch();
      var notify = hasListeners(this);
      var notifySpy = isSpyEnabled();
      var oldObservable = this.values.get(key);
      var oldValue = oldObservable && oldObservable.get();
      oldObservable && oldObservable.set(undefined); // notify key and keyset listeners

      this.keysAtom.reportChanged();
      this.values.delete(key);

      if (this.pendingKeys) {
        var entry = this.pendingKeys.get(key);
        if (entry) entry.set(false);
      } // delete the prop


      delete this.target[key];
      var change = notify || notifySpy ? {
        type: "remove",
        object: this.proxy || target,
        oldValue: oldValue,
        name: key
      } : null;
      if (notifySpy && "production" !== "production") spyReportStart(__assign(__assign({}, change), {
        name: this.name,
        key: key
      }));
      if (notify) notifyListeners(this, change);
      if (notifySpy && "production" !== "production") spyReportEnd();
    } finally {
      endBatch();
    }
  };

  ObservableObjectAdministration.prototype.illegalAccess = function (owner, propName) {
    /**
     * This happens if a property is accessed through the prototype chain, but the property was
     * declared directly as own property on the prototype.
     *
     * E.g.:
     * class A {
     * }
     * extendObservable(A.prototype, { x: 1 })
     *
     * classB extens A {
     * }
     * console.log(new B().x)
     *
     * It is unclear whether the property should be considered 'static' or inherited.
     * Either use `console.log(A.x)`
     * or: decorate(A, { x: observable })
     *
     * When using decorate, the property will always be redeclared as own property on the actual instance
     */
    console.warn("Property '" + propName + "' of '" + owner + "' was accessed through the prototype chain. Use 'decorate' instead to declare the prop or access it statically through it's owner");
  };
  /**
   * Observes this object. Triggers for the events 'add', 'update' and 'delete'.
   * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/observe
   * for callback details
   */


  ObservableObjectAdministration.prototype.observe = function (callback, fireImmediately) {
     false && false;
    return registerListener(this, callback);
  };

  ObservableObjectAdministration.prototype.intercept = function (handler) {
    return registerInterceptor(this, handler);
  };

  ObservableObjectAdministration.prototype.notifyPropertyAddition = function (key, newValue) {
    var notify = hasListeners(this);
    var notifySpy = isSpyEnabled();
    var change = notify || notifySpy ? {
      type: "add",
      object: this.proxy || this.target,
      name: key,
      newValue: newValue
    } : null;
    if (notifySpy && "production" !== "production") spyReportStart(__assign(__assign({}, change), {
      name: this.name,
      key: key
    }));
    if (notify) notifyListeners(this, change);
    if (notifySpy && "production" !== "production") spyReportEnd();

    if (this.pendingKeys) {
      var entry = this.pendingKeys.get(key);
      if (entry) entry.set(true);
    }

    this.keysAtom.reportChanged();
  };

  ObservableObjectAdministration.prototype.getKeys = function () {
    var e_1, _a;

    this.keysAtom.reportObserved(); // return Reflect.ownKeys(this.values) as any

    var res = [];

    try {
      for (var _b = __values(this.values), _c = _b.next(); !_c.done; _c = _b.next()) {
        var _d = __read(_c.value, 2),
            key = _d[0],
            value = _d[1];

        if (value instanceof ObservableValue) res.push(key);
      }
    } catch (e_1_1) {
      e_1 = {
        error: e_1_1
      };
    } finally {
      try {
        if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
      } finally {
        if (e_1) throw e_1.error;
      }
    }

    return res;
  };

  return ObservableObjectAdministration;
}();

function asObservableObject(target, name, defaultEnhancer) {
  if (name === void 0) {
    name = "";
  }

  if (defaultEnhancer === void 0) {
    defaultEnhancer = deepEnhancer;
  }

  if (Object.prototype.hasOwnProperty.call(target, $mobx)) return target[$mobx];
   false && false;
  if (!isPlainObject(target)) name = (target.constructor.name || "ObservableObject") + "@" + getNextId();
  if (!name) name = "ObservableObject@" + getNextId();
  var adm = new ObservableObjectAdministration(target, new Map(), stringifyKey(name), defaultEnhancer);
  addHiddenProp(target, $mobx, adm);
  return adm;
}

var observablePropertyConfigs = Object.create(null);
var computedPropertyConfigs = Object.create(null);

function generateObservablePropConfig(propName) {
  return observablePropertyConfigs[propName] || (observablePropertyConfigs[propName] = {
    configurable: true,
    enumerable: true,
    get: function () {
      return this[$mobx].read(propName);
    },
    set: function (v) {
      this[$mobx].write(propName, v);
    }
  });
}

function getAdministrationForComputedPropOwner(owner) {
  var adm = owner[$mobx];

  if (!adm) {
    // because computed props are declared on proty,
    // the current instance might not have been initialized yet
    initializeInstance(owner);
    return owner[$mobx];
  }

  return adm;
}

function generateComputedPropConfig(propName) {
  return computedPropertyConfigs[propName] || (computedPropertyConfigs[propName] = {
    configurable: globalState.computedConfigurable,
    enumerable: false,
    get: function () {
      return getAdministrationForComputedPropOwner(this).read(propName);
    },
    set: function (v) {
      getAdministrationForComputedPropOwner(this).write(propName, v);
    }
  });
}

var isObservableObjectAdministration = createInstanceofPredicate("ObservableObjectAdministration", ObservableObjectAdministration);

function isObservableObject(thing) {
  if (isObject(thing)) {
    // Initializers run lazily when transpiling to babel, so make sure they are run...
    initializeInstance(thing);
    return isObservableObjectAdministration(thing[$mobx]);
  }

  return false;
}

function getAtom(thing, property) {
  if (typeof thing === "object" && thing !== null) {
    if (isObservableArray(thing)) {
      if (property !== undefined) fail( false && false);
      return thing[$mobx].atom;
    }

    if (isObservableSet(thing)) {
      return thing[$mobx];
    }

    if (isObservableMap(thing)) {
      var anyThing = thing;
      if (property === undefined) return anyThing._keysAtom;

      var observable = anyThing._data.get(property) || anyThing._hasMap.get(property);

      if (!observable) fail( false && false);
      return observable;
    } // Initializers run lazily when transpiling to babel, so make sure they are run...


    initializeInstance(thing);
    if (property && !thing[$mobx]) thing[property]; // See #1072

    if (isObservableObject(thing)) {
      if (!property) return fail( false && false);
      var observable = thing[$mobx].values.get(property);
      if (!observable) fail( false && false);
      return observable;
    }

    if (isAtom(thing) || isComputedValue(thing) || isReaction(thing)) {
      return thing;
    }
  } else if (typeof thing === "function") {
    if (isReaction(thing[$mobx])) {
      // disposer function
      return thing[$mobx];
    }
  }

  return fail( false && false);
}

function getAdministration(thing, property) {
  if (!thing) fail("Expecting some object");
  if (property !== undefined) return getAdministration(getAtom(thing, property));
  if (isAtom(thing) || isComputedValue(thing) || isReaction(thing)) return thing;
  if (isObservableMap(thing) || isObservableSet(thing)) return thing; // Initializers run lazily when transpiling to babel, so make sure they are run...

  initializeInstance(thing);
  if (thing[$mobx]) return thing[$mobx];
  fail( false && false);
}

function getDebugName(thing, property) {
  var named;
  if (property !== undefined) named = getAtom(thing, property);else if (isObservableObject(thing) || isObservableMap(thing) || isObservableSet(thing)) named = getAdministration(thing);else named = getAtom(thing); // valid for arrays as well

  return named.name;
}

var toString = Object.prototype.toString;

function deepEqual(a, b, depth) {
  if (depth === void 0) {
    depth = -1;
  }

  return eq(a, b, depth);
} // Copied from https://github.com/jashkenas/underscore/blob/5c237a7c682fb68fd5378203f0bf22dce1624854/underscore.js#L1186-L1289
// Internal recursive comparison function for `isEqual`.


function eq(a, b, depth, aStack, bStack) {
  // Identical objects are equal. `0 === -0`, but they aren't identical.
  // See the [Harmony `egal` proposal](http://wiki.ecmascript.org/doku.php?id=harmony:egal).
  if (a === b) return a !== 0 || 1 / a === 1 / b; // `null` or `undefined` only equal to itself (strict comparison).

  if (a == null || b == null) return false; // `NaN`s are equivalent, but non-reflexive.

  if (a !== a) return b !== b; // Exhaust primitive checks

  var type = typeof a;
  if (type !== "function" && type !== "object" && typeof b != "object") return false; // Compare `[[Class]]` names.

  var className = toString.call(a);
  if (className !== toString.call(b)) return false;

  switch (className) {
    // Strings, numbers, regular expressions, dates, and booleans are compared by value.
    case "[object RegExp]": // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i')

    case "[object String]":
      // Primitives and their corresponding object wrappers are equivalent; thus, `"5"` is
      // equivalent to `new String("5")`.
      return "" + a === "" + b;

    case "[object Number]":
      // `NaN`s are equivalent, but non-reflexive.
      // Object(NaN) is equivalent to NaN.
      if (+a !== +a) return +b !== +b; // An `egal` comparison is performed for other numeric values.

      return +a === 0 ? 1 / +a === 1 / b : +a === +b;

    case "[object Date]":
    case "[object Boolean]":
      // Coerce dates and booleans to numeric primitive values. Dates are compared by their
      // millisecond representations. Note that invalid dates with millisecond representations
      // of `NaN` are not equivalent.
      return +a === +b;

    case "[object Symbol]":
      return typeof Symbol !== "undefined" && Symbol.valueOf.call(a) === Symbol.valueOf.call(b);

    case "[object Map]":
    case "[object Set]":
      // Maps and Sets are unwrapped to arrays of entry-pairs, adding an incidental level.
      // Hide this extra level by increasing the depth.
      if (depth >= 0) {
        depth++;
      }

      break;
  } // Unwrap any wrapped objects.


  a = unwrap(a);
  b = unwrap(b);
  var areArrays = className === "[object Array]";

  if (!areArrays) {
    if (typeof a != "object" || typeof b != "object") return false; // Objects with different constructors are not equivalent, but `Object`s or `Array`s
    // from different frames are.

    var aCtor = a.constructor,
        bCtor = b.constructor;

    if (aCtor !== bCtor && !(typeof aCtor === "function" && aCtor instanceof aCtor && typeof bCtor === "function" && bCtor instanceof bCtor) && "constructor" in a && "constructor" in b) {
      return false;
    }
  }

  if (depth === 0) {
    return false;
  } else if (depth < 0) {
    depth = -1;
  } // Assume equality for cyclic structures. The algorithm for detecting cyclic
  // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.
  // Initializing stack of traversed objects.
  // It's done here since we only need them for objects and arrays comparison.


  aStack = aStack || [];
  bStack = bStack || [];
  var length = aStack.length;

  while (length--) {
    // Linear search. Performance is inversely proportional to the number of
    // unique nested structures.
    if (aStack[length] === a) return bStack[length] === b;
  } // Add the first object to the stack of traversed objects.


  aStack.push(a);
  bStack.push(b); // Recursively compare objects and arrays.

  if (areArrays) {
    // Compare array lengths to determine if a deep comparison is necessary.
    length = a.length;
    if (length !== b.length) return false; // Deep compare the contents, ignoring non-numeric properties.

    while (length--) {
      if (!eq(a[length], b[length], depth - 1, aStack, bStack)) return false;
    }
  } else {
    // Deep compare objects.
    var keys = Object.keys(a);
    var key = void 0;
    length = keys.length; // Ensure that both objects contain the same number of properties before comparing deep equality.

    if (Object.keys(b).length !== length) return false;

    while (length--) {
      // Deep compare each member
      key = keys[length];
      if (!(has$1(b, key) && eq(a[key], b[key], depth - 1, aStack, bStack))) return false;
    }
  } // Remove the first object from the stack of traversed objects.


  aStack.pop();
  bStack.pop();
  return true;
}

function unwrap(a) {
  if (isObservableArray(a)) return a.slice();
  if (isES6Map(a) || isObservableMap(a)) return Array.from(a.entries());
  if (isES6Set(a) || isObservableSet(a)) return Array.from(a.entries());
  return a;
}

function has$1(a, key) {
  return Object.prototype.hasOwnProperty.call(a, key);
}

function makeIterable(iterator) {
  iterator[Symbol.iterator] = getSelf;
  return iterator;
}

function getSelf() {
  return this;
}
/*
The only reason for this file to exist is pure horror:
Without it rollup can make the bundling fail at any point in time; when it rolls up the files in the wrong order
it will cause undefined errors (for example because super classes or local variables not being hoisted).
With this file that will still happen,
but at least in this file we can magically reorder the imports with trial and error until the build succeeds again.
*/

/**
 * (c) Michel Weststrate 2015 - 2018
 * MIT Licensed
 *
 * Welcome to the mobx sources! To get an global overview of how MobX internally works,
 * this is a good place to start:
 * https://medium.com/@mweststrate/becoming-fully-reactive-an-in-depth-explanation-of-mobservable-55995262a254#.xvbh6qd74
 *
 * Source folders:
 * ===============
 *
 * - api/     Most of the public static methods exposed by the module can be found here.
 * - core/    Implementation of the MobX algorithm; atoms, derivations, reactions, dependency trees, optimizations. Cool stuff can be found here.
 * - types/   All the magic that is need to have observable objects, arrays and values is in this folder. Including the modifiers like `asFlat`.
 * - utils/   Utility stuff.
 *
 */


if (typeof Proxy === "undefined" || typeof Symbol === "undefined") {
  throw new Error("[mobx] MobX 5+ requires Proxy and Symbol objects. If your environment doesn't support Symbol or Proxy objects, please downgrade to MobX 4. For React Native Android, consider upgrading JSCore.");
}

try {
  // define process.env if needed
  // if this is not a production build in the first place
  // (in which case the expression below would be substituted with 'production')
  "production";
} catch (e) {
  var g = getGlobal();
  if (typeof process === "undefined") g.process = {};
  g.process.env = {};
}

(function () {
  function testCodeMinification() {}

  if (testCodeMinification.name !== "testCodeMinification" && "production" !== "production" && typeof process !== 'undefined' && process.env.IGNORE_MOBX_MINIFY_WARNING !== "true") {
    // trick so it doesn't get replaced
    var varName = ["process", "env", "NODE_ENV"].join(".");
    console.warn("[mobx] you are running a minified build, but '" + varName + "' was not set to 'production' in your bundler. This results in an unnecessarily large and slow bundle");
  }
})();

if (typeof __MOBX_DEVTOOLS_GLOBAL_HOOK__ === "object") {
  // See: https://github.com/andykog/mobx-devtools/
  __MOBX_DEVTOOLS_GLOBAL_HOOK__.injectMobx({
    spy: spy,
    extras: {
      getDebugName: getDebugName
    },
    $mobx: $mobx
  });
}


/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("8oxB"), __webpack_require__("yLpj")))

/***/ }),

/***/ "2zgN":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("aHM1"),
      24: __webpack_require__("68Iv")
    }
  }));
};

WrappedIcon.displayName = 'Asterisk';
exports.default = WrappedIcon;

/***/ }),

/***/ 3:
/***/ (function(module, exports) {

/* (ignored) */

/***/ }),

/***/ "3/MH":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("path", {
  d: "M6 2.5V8H.5a.5.5 0 0 0-.5.5v1a.5.5 0 0 0 .5.5H8V2.5a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5zM30 8V2.5a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5V10h7.5a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5zM0 26.5v1a.5.5 0 0 0 .5.5H6v5.5a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5V26H.5a.5.5 0 0 0-.5.5zM30 28h5.5a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5H28v7.5a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5z"
}), React.createElement("rect", {
  height: "16",
  rx: ".5",
  ry: ".5",
  width: "20",
  x: "8",
  y: "10"
}));

/***/ }),

/***/ "33yf":
/***/ (function(module, exports, __webpack_require__) {

/* WEBPACK VAR INJECTION */(function(process) {// .dirname, .basename, and .extname methods are extracted from Node.js v8.11.1,
// backported and transplited with Babel, with backwards-compat fixes
// Copyright Joyent, Inc. and other Node contributors.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to permit
// persons to whom the Software is furnished to do so, subject to the
// following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
// USE OR OTHER DEALINGS IN THE SOFTWARE.
// resolves . and .. elements in a path array with directory names there
// must be no slashes, empty elements, or device names (c:\) in the array
// (so also no leading and trailing slashes - it does not distinguish
// relative and absolute paths)
function normalizeArray(parts, allowAboveRoot) {
  // if the path tries to go above the root, `up` ends up > 0
  var up = 0;

  for (var i = parts.length - 1; i >= 0; i--) {
    var last = parts[i];

    if (last === '.') {
      parts.splice(i, 1);
    } else if (last === '..') {
      parts.splice(i, 1);
      up++;
    } else if (up) {
      parts.splice(i, 1);
      up--;
    }
  } // if the path is allowed to go above the root, restore leading ..s


  if (allowAboveRoot) {
    for (; up--; up) {
      parts.unshift('..');
    }
  }

  return parts;
} // path.resolve([from ...], to)
// posix version


exports.resolve = function () {
  var resolvedPath = '',
      resolvedAbsolute = false;

  for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {
    var path = i >= 0 ? arguments[i] : process.cwd(); // Skip empty and invalid entries

    if (typeof path !== 'string') {
      throw new TypeError('Arguments to path.resolve must be strings');
    } else if (!path) {
      continue;
    }

    resolvedPath = path + '/' + resolvedPath;
    resolvedAbsolute = path.charAt(0) === '/';
  } // At this point the path should be resolved to a full absolute path, but
  // handle relative paths to be safe (might happen when process.cwd() fails)
  // Normalize the path


  resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function (p) {
    return !!p;
  }), !resolvedAbsolute).join('/');
  return (resolvedAbsolute ? '/' : '') + resolvedPath || '.';
}; // path.normalize(path)
// posix version


exports.normalize = function (path) {
  var isAbsolute = exports.isAbsolute(path),
      trailingSlash = substr(path, -1) === '/'; // Normalize the path

  path = normalizeArray(filter(path.split('/'), function (p) {
    return !!p;
  }), !isAbsolute).join('/');

  if (!path && !isAbsolute) {
    path = '.';
  }

  if (path && trailingSlash) {
    path += '/';
  }

  return (isAbsolute ? '/' : '') + path;
}; // posix version


exports.isAbsolute = function (path) {
  return path.charAt(0) === '/';
}; // posix version


exports.join = function () {
  var paths = Array.prototype.slice.call(arguments, 0);
  return exports.normalize(filter(paths, function (p, index) {
    if (typeof p !== 'string') {
      throw new TypeError('Arguments to path.join must be strings');
    }

    return p;
  }).join('/'));
}; // path.relative(from, to)
// posix version


exports.relative = function (from, to) {
  from = exports.resolve(from).substr(1);
  to = exports.resolve(to).substr(1);

  function trim(arr) {
    var start = 0;

    for (; start < arr.length; start++) {
      if (arr[start] !== '') break;
    }

    var end = arr.length - 1;

    for (; end >= 0; end--) {
      if (arr[end] !== '') break;
    }

    if (start > end) return [];
    return arr.slice(start, end - start + 1);
  }

  var fromParts = trim(from.split('/'));
  var toParts = trim(to.split('/'));
  var length = Math.min(fromParts.length, toParts.length);
  var samePartsLength = length;

  for (var i = 0; i < length; i++) {
    if (fromParts[i] !== toParts[i]) {
      samePartsLength = i;
      break;
    }
  }

  var outputParts = [];

  for (var i = samePartsLength; i < fromParts.length; i++) {
    outputParts.push('..');
  }

  outputParts = outputParts.concat(toParts.slice(samePartsLength));
  return outputParts.join('/');
};

exports.sep = '/';
exports.delimiter = ':';

exports.dirname = function (path) {
  if (typeof path !== 'string') path = path + '';
  if (path.length === 0) return '.';
  var code = path.charCodeAt(0);
  var hasRoot = code === 47
  /*/*/
  ;
  var end = -1;
  var matchedSlash = true;

  for (var i = path.length - 1; i >= 1; --i) {
    code = path.charCodeAt(i);

    if (code === 47
    /*/*/
    ) {
      if (!matchedSlash) {
        end = i;
        break;
      }
    } else {
      // We saw the first non-path separator
      matchedSlash = false;
    }
  }

  if (end === -1) return hasRoot ? '/' : '.';

  if (hasRoot && end === 1) {
    // return '//';
    // Backwards-compat fix:
    return '/';
  }

  return path.slice(0, end);
};

function basename(path) {
  if (typeof path !== 'string') path = path + '';
  var start = 0;
  var end = -1;
  var matchedSlash = true;
  var i;

  for (i = path.length - 1; i >= 0; --i) {
    if (path.charCodeAt(i) === 47
    /*/*/
    ) {
      // If we reached a path separator that was not part of a set of path
      // separators at the end of the string, stop now
      if (!matchedSlash) {
        start = i + 1;
        break;
      }
    } else if (end === -1) {
      // We saw the first non-path separator, mark this as the end of our
      // path component
      matchedSlash = false;
      end = i + 1;
    }
  }

  if (end === -1) return '';
  return path.slice(start, end);
} // Uses a mixed approach for backwards-compatibility, as ext behavior changed
// in new Node.js versions, so only basename() above is backported here


exports.basename = function (path, ext) {
  var f = basename(path);

  if (ext && f.substr(-1 * ext.length) === ext) {
    f = f.substr(0, f.length - ext.length);
  }

  return f;
};

exports.extname = function (path) {
  if (typeof path !== 'string') path = path + '';
  var startDot = -1;
  var startPart = 0;
  var end = -1;
  var matchedSlash = true; // Track the state of characters (if any) we see before our first dot and
  // after any path separator we find

  var preDotState = 0;

  for (var i = path.length - 1; i >= 0; --i) {
    var code = path.charCodeAt(i);

    if (code === 47
    /*/*/
    ) {
      // If we reached a path separator that was not part of a set of path
      // separators at the end of the string, stop now
      if (!matchedSlash) {
        startPart = i + 1;
        break;
      }

      continue;
    }

    if (end === -1) {
      // We saw the first non-path separator, mark this as the end of our
      // extension
      matchedSlash = false;
      end = i + 1;
    }

    if (code === 46
    /*.*/
    ) {
      // If this is our first dot, mark it as the start of our extension
      if (startDot === -1) startDot = i;else if (preDotState !== 1) preDotState = 1;
    } else if (startDot !== -1) {
      // We saw a non-dot and non-path separator before our dot, so we should
      // have a good chance at having a non-empty extension
      preDotState = -1;
    }
  }

  if (startDot === -1 || end === -1 || // We saw a non-dot character immediately before the dot
  preDotState === 0 || // The (right-most) trimmed path component is exactly '..'
  preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {
    return '';
  }

  return path.slice(startDot, end);
};

function filter(xs, f) {
  if (xs.filter) return xs.filter(f);
  var res = [];

  for (var i = 0; i < xs.length; i++) {
    if (f(xs[i], i, xs)) res.push(xs[i]);
  }

  return res;
} // String.prototype.substr - negative index don't work in IE8


var substr = 'ab'.substr(-1) === 'b' ? function (str, start, len) {
  return str.substr(start, len);
} : function (str, start, len) {
  if (start < 0) start = str.length + start;
  return str.substr(start, len);
};
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("8oxB")))

/***/ }),

/***/ "35Lt":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = Toast;
exports.DEFAULT_ROLE = exports.ICONS = exports.formatMessage = void 0;

var _AlertMedium = _interopRequireDefault(__webpack_require__("hr23"));

var _Button = _interopRequireDefault(__webpack_require__("Cn9g"));

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _CrossMedium = _interopRequireDefault(__webpack_require__("5/fI"));

var _filterDOMProps = _interopRequireDefault(__webpack_require__("Cv/Q"));

var _InfoMedium = _interopRequireDefault(__webpack_require__("utc6"));

var _intl = __webpack_require__("Lpon");

var _propTypes = _interopRequireDefault(__webpack_require__("17x9"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

var _SuccessMedium = _interopRequireDefault(__webpack_require__("27s/"));

const _excluded = ["variant", "children", "closable", "onClose", "onAction", "className", "timeout", "actionLabel", "closeOnAction"];

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

const intlMessages = {
  "cs-CZ": _interopRequireDefault(__webpack_require__("x1O6")).default,
  "da-DK": _interopRequireDefault(__webpack_require__("xAJe")).default,
  "de-DE": _interopRequireDefault(__webpack_require__("yPr8")).default,
  "en-US": _interopRequireDefault(__webpack_require__("EtQ4")).default,
  "es-ES": _interopRequireDefault(__webpack_require__("9vDZ")).default,
  "fi-FI": _interopRequireDefault(__webpack_require__("R/Fj")).default,
  "fr-FR": _interopRequireDefault(__webpack_require__("BjJ0")).default,
  "hu-HU": _interopRequireDefault(__webpack_require__("8+dQ")).default,
  "it-IT": _interopRequireDefault(__webpack_require__("5NVr")).default,
  "ja-JP": _interopRequireDefault(__webpack_require__("l6wF")).default,
  "ko-KR": _interopRequireDefault(__webpack_require__("96jg")).default,
  "nb-NO": _interopRequireDefault(__webpack_require__("kM6X")).default,
  "nl-NL": _interopRequireDefault(__webpack_require__("feQ5")).default,
  "pl-PL": _interopRequireDefault(__webpack_require__("PRdV")).default,
  "pt-BR": _interopRequireDefault(__webpack_require__("0SeZ")).default,
  "ru-RU": _interopRequireDefault(__webpack_require__("8ezX")).default,
  "sv-SE": _interopRequireDefault(__webpack_require__("GPKx")).default,
  "tr-TR": _interopRequireDefault(__webpack_require__("ynEm")).default,
  "uk-UA": _interopRequireDefault(__webpack_require__("Szud")).default,
  "zh-CN": _interopRequireDefault(__webpack_require__("ZgEJ")).default,
  "zh-TW": _interopRequireDefault(__webpack_require__("RVjX")).default
};

if (false) {} else if (false) {} else {
  __webpack_require__("fWm2");
}

if (true) __webpack_require__("iKiM");
if (true) __webpack_require__("bIgR");
if (true) __webpack_require__("S3/z");
if (true) __webpack_require__("RHF0");
const formatMessage = (0, _intl.messageFormatter)(intlMessages);
exports.formatMessage = formatMessage;
const ICONS = {
  error: _AlertMedium.default,
  warning: _AlertMedium.default,
  info: _InfoMedium.default,
  success: _SuccessMedium.default
};
exports.ICONS = ICONS;
const DEFAULT_ROLE = 'alert';
exports.DEFAULT_ROLE = DEFAULT_ROLE;

function Toast(_ref) {
  let {
    variant,
    children,
    closable,
    onClose,
    onAction,
    className,
    timeout,
    actionLabel,
    closeOnAction
  } = _ref,
      otherProps = _objectWithoutProperties(_ref, _excluded);

  let Icon = ICONS[variant];
  let role = otherProps.role || DEFAULT_ROLE;

  const handleAction = (...args) => {
    if (onAction) {
      onAction(...args);
    }

    if (closeOnAction && onClose) {
      onClose(...args);
    }
  };

  return /*#__PURE__*/_react.default.createElement("div", _extends({
    role: role,
    className: (0, _classnames.default)('spectrum-Toast', {
      ['spectrum-Toast--' + variant]: variant
    }, className)
  }, (0, _filterDOMProps.default)(otherProps)), Icon && /*#__PURE__*/_react.default.createElement(Icon, {
    size: null,
    className: "spectrum-Toast-typeIcon",
    alt: formatMessage(variant)
  }), /*#__PURE__*/_react.default.createElement("div", {
    className: "spectrum-Toast-body"
  }, /*#__PURE__*/_react.default.createElement("div", {
    className: "spectrum-Toast-content"
  }, children), actionLabel && /*#__PURE__*/_react.default.createElement(_Button.default, {
    label: actionLabel,
    quiet: true,
    variant: "overBackground",
    onClick: handleAction
  })), closable && /*#__PURE__*/_react.default.createElement("div", {
    className: "spectrum-Toast-buttons"
  }, /*#__PURE__*/_react.default.createElement("button", {
    "aria-label": formatMessage('close'),
    className: "spectrum-ClearButton spectrum-ClearButton--medium spectrum-ClearButton--overBackground",
    onClick: onClose
  }, /*#__PURE__*/_react.default.createElement(_CrossMedium.default, {
    size: null
  }))));
}

Toast.propTypes = {
  /** Contents to be displayed in the Toast. */
  children: _propTypes.default.node,

  /** Variant of toast to use. */
  variant: _propTypes.default.oneOf(['error', 'warning', 'info', 'success']),

  /** Whether to show close button on toast. */
  closable: _propTypes.default.bool,

  /** Label for action button. */
  actionLabel: _propTypes.default.string,

  /** Should the action button close the toast? */
  closeOnAction: _propTypes.default.bool,

  /** Function called when toast is closed. */
  onClose: _propTypes.default.func,

  /** Function called when action button is clicked. */
  onAction: _propTypes.default.func,

  /**
   * Set the amount of time in milliseconds that the toast should persist.
   * If set to 0, the toast will remain until closed manually.
  */
  timeout: _propTypes.default.number
};

/***/ }),

/***/ "36IM":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/

Object.defineProperty(exports, "__esModule", {
  value: true
});
/**
 * Static class to stringify JS objects recursively, including properties defined on prototypes
 */

var Stringify =
/** @class */
function () {
  function Stringify() {}
  /**
   * Remove trailing comma if there is one
   * @param inStr
   */


  Stringify.removeTrailingComma = function (inStr) {
    var outStr = inStr;

    if (inStr[inStr.length - 1] === ',') {
      outStr = inStr.slice(0, -1); // remove trailing comma
    }

    return outStr;
  };
  /**
   * Serialize an object field
   * @param key
   * @param acpObj
   */


  Stringify.serializeField = function (key, acpObj) {
    var jsonLog = '';
    var memberType = typeof acpObj[key]; // console.log(`key: ${key}, val: ${acpObj[key]}, type: ${typeof acpObj[key]}`);

    if (memberType !== 'function' && key !== '__proto__') {
      var valStr = void 0;

      if (memberType === 'object') {
        if (acpObj[key] instanceof Array) {
          valStr = Stringify.serializeArray(acpObj[key]);
        } else {
          valStr = Stringify.stringify(acpObj[key]);
        }
      } else {
        valStr = JSON.stringify(acpObj[key]);
      }

      jsonLog += "\"" + key + "\":" + valStr + ",";
    }

    return jsonLog;
  };
  /**
   * Serialize an array
   * @param acpObj
   */


  Stringify.serializeArray = function (acpObj) {
    var jsonLog = '[';
    acpObj.forEach(function (item) {
      if (typeof item !== 'function') {
        if (typeof item === 'object') {
          jsonLog += Stringify.stringify(item);
        } else {
          jsonLog += JSON.stringify(item);
        }

        jsonLog += ',';
      }
    });
    jsonLog = Stringify.removeTrailingComma(jsonLog);
    jsonLog += ']';
    return jsonLog;
  };
  /**
   * Serialize javascript object to a JSON-parsable string
   * @param acpObj
   */


  Stringify.stringify = function (acpObj) {
    if (!acpObj) {
      return acpObj;
    }

    if (acpObj instanceof Array) {
      return Stringify.serializeArray(acpObj);
    } else {
      // get any regular members
      var jsonLog_1 = JSON.stringify(acpObj);

      if (jsonLog_1.length > 1) {
        jsonLog_1 = jsonLog_1.slice(0, -1); // remove closing curly brace
      }

      var proto = Object.getPrototypeOf(acpObj);

      while (proto) {
        Object.keys(Object.getOwnPropertyDescriptors(proto)).forEach(function (key) {
          jsonLog_1 += Stringify.serializeField(key, acpObj);
        });
        proto = Object.getPrototypeOf(proto);
      }

      jsonLog_1 = Stringify.removeTrailingComma(jsonLog_1);
      jsonLog_1 += '}';
      return jsonLog_1;
    }
  };

  return Stringify;
}();

exports.default = Stringify;

/***/ }),

/***/ "38DI":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("rect", {
  height: "8",
  rx: "1",
  ry: "1",
  width: "8",
  x: "2",
  y: "2"
}), React.createElement("rect", {
  height: "4",
  rx: ".5",
  ry: ".5",
  width: "22",
  x: "12",
  y: "4"
}), React.createElement("rect", {
  height: "4",
  rx: ".5",
  ry: ".5",
  width: "22",
  x: "12",
  y: "16"
}), React.createElement("rect", {
  height: "4",
  rx: ".5",
  ry: ".5",
  width: "22",
  x: "12",
  y: "28"
}), React.createElement("rect", {
  height: "8",
  rx: "1",
  ry: "1",
  width: "8",
  x: "2",
  y: "14"
}), React.createElement("rect", {
  height: "8",
  rx: "1",
  ry: "1",
  width: "8",
  x: "2",
  y: "26"
}));

/***/ }),

/***/ "3ATF":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var iaw_jsUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("KTUt");
/* harmony import */ var start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Db/q");
/* harmony import */ var _LoggerWrapper_Logger__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("43WE");
/* harmony import */ var src_components_start_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("/0Ih");
/* harmony import */ var _Sophia__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("nm0P");
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/



const _logger = _LoggerWrapper_Logger__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].get('StartIngestMiscHandler');

// TO DO: see why this crashing the unit tests

/**
 * Property key constants
 */
const PROPERTY_KEYS = start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].KEYS;
/**
 * Setup the Start related miscelleaneous events.
 *
 * @param eventID 				{String} containing the event identifier
 * @param eventData				{Object} or {String} data associated with the event
 * @param payload 				{Object} cloned payload to fill out
 */
/* harmony default export */ __webpack_exports__["a"] = (function (eventID, eventData, payload) {
    var _a, _b, _c;
    if (!eventID) {
        payload = null;
        return;
    }
    // handle the event
    switch (eventID) {
        case 'start-ui':
            payload['event.type'] = PROPERTY_KEYS.EVENT_TYPE_INIT;
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_INITIALIZE;
            payload['event.subtype'] = PROPERTY_KEYS.SUBTYPE_COMPONENT;
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_INIT;
            break;
        case 'home-default':
            payload['event.type'] = PROPERTY_KEYS.EVENT_TYPE_RENDER;
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_DEFAULT;
            payload['event.subtype'] = PROPERTY_KEYS.SUBTYPE_FALLBACK;
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_DEFAULT_LAYOUT;
            payload['event.value'] = eventData.value;
            break;
        case 'video-watched':
            payload['event.type'] = PROPERTY_KEYS.EVENT_TYPE_VIDEO;
            payload['event.workflow'] = PROPERTY_KEYS.PAGE_FIRSTRUN;
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_CARD;
            payload['event.subtype'] = PROPERTY_KEYS.SUBTYPE_VIDEO;
            payload['content.id'] = eventData.cardID;
            payload['content.name'] = eventData.bodyCopy;
            payload['content.type'] = eventData.cardType;
            payload['content.status'] = eventData.watched;
            payload['content.action'] = eventData.actionURL;
            payload['ui.sequence'] = eventData.position;
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].addSophiaAnalytics(payload, eventData.containerAnalyticsParams);
            break;
        case 'lightroom':
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_WORK;
            payload['event.type'] = eventData.eventType;
            payload['event.subcategory'] = 'Lightroom';
            if (eventData.subtype) {
                payload['event.subtype'] = eventData.subtype;
            }
            if (typeof eventData.content === 'object') {
                ['id', 'extension', 'mimetype', 'original_file_size', 'category', 'open_with_xmp'].forEach(key => {
                    if (eventData.content[key]) {
                        payload[`content.${key}`] = eventData.content[key];
                    }
                });
            }
            if (eventData.errorDesc) {
                payload['event.error_desc'] = eventData.errorDesc;
            }
            break;
        case 'drag-drop':
            payload['event.type'] = PROPERTY_KEYS.EVENT_TYPE_DROP;
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_HOME;
            payload['event.subtype'] = PROPERTY_KEYS.SUBTYPE_DRAGDROP;
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_DRAGDROP;
            payload['event.count'] = eventData.numfiles;
            break;
        // TODO - fill this out when we get analytics spec for the "content-refreshed" event
        // case 'collapsible-container':
        // 	break;
        case 'fallback':
            payload['event.type'] = eventData.type || PROPERTY_KEYS.EVENT_TYPE_ERROR;
            payload['event.workflow'] = eventData.workflow || PROPERTY_KEYS.WORKFLOW_FALLBACK;
            payload['event.subtype'] = eventData.subtype
                ? eventData.subtype.toLowerCase()
                : PROPERTY_KEYS.SUBTYPE_FALLBACK;
            payload['event.subcategory'] = eventData.subcategory || PROPERTY_KEYS.SUBCATEGORY_FALLBACK;
            if (eventData.error) {
                start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].parseError(payload, eventData.error);
            }
            break;
        case 'nuj-user-signals':
            const subcatVal = eventData.value === 'category'
                ? PROPERTY_KEYS.SUBCATEGORY_US_CREATIVE_CAT
                : PROPERTY_KEYS.SUBCATEGORY_US_CREATIVE_SUBCAT;
            payload['event.type'] = eventData.type || PROPERTY_KEYS.EVENT_TYPE_RENDER;
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_HOME;
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_USER_SIGNALS + ':' + subcatVal;
            payload['event.subtype'] = PROPERTY_KEYS.SUBTYPE_PREFERENCE;
            // We currently get a string, not an array. When this changes, this will need to be updated.
            payload['event.value'] = `[${JSON.stringify(eventData.selectedCreativeValue)}]`;
            payload['ui.view_type'] = eventData.stage + ':' + eventData.layout;
            payload['content.id'] = eventData.id;
            payload['content.status'] =
                eventData.workflow && eventData.workflow === PROPERTY_KEYS.WORKFLOW_DEFAULT
                    ? PROPERTY_KEYS.STATUS_LOCAL
                    : PROPERTY_KEYS.STATUS_CACHED;
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].addSophiaAnalytics(payload, eventData.containerAnalyticsParams);
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].mapStageConditions(payload, eventData.stage);
            break;
        case 'offline-icon-hover':
            payload['event.workflow'] = eventData;
            payload['event.type'] = PROPERTY_KEYS.EVENT_TYPE_HOVER;
            payload['event.subtype'] = PROPERTY_KEYS.SUBTYPE_OFFLINE_ICON;
            break;
        case 'storage-indicator':
            payload['event.workflow'] = eventData;
            payload['event.type'] = PROPERTY_KEYS.EVENT_TYPE_HOVER;
            payload['event.subtype'] = PROPERTY_KEYS.SUBTYPE_STORAGE_INDICATOR;
            break;
        case 'toastal-button':
            payload['event.workflow'] = eventData.workflow;
            payload['event.value'] = eventData.value;
            payload['event.subcategory'] = eventData.subcategory;
            payload['event.type'] = PROPERTY_KEYS.EVENT_TYPE_HOVER;
            payload['event.subtype'] = PROPERTY_KEYS.SUBTYPE_TOASTAL_BUTTON;
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].addSophiaAnalytics(payload, eventData.containerAnalyticsParams);
            break;
        case 'component--carousel':
            payload['event.workflow'] = iaw_jsUtil__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].capitalize(eventData.workflow);
            payload['event.type'] = PROPERTY_KEYS.EVENT_TYPE_HOVER;
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_CAROUSEL;
            payload['event.subtype'] = PROPERTY_KEYS.SUBTYPE_SMALLTOUT;
            payload['content.content'] = eventData.content;
            payload['content.name'] = (eventData.fieldData && eventData.fieldData.name) || null;
            break;
        case 'component--standard-tout':
            const toutData = eventData.fieldData;
            const primaryCTA = toutData === null || toutData === void 0 ? void 0 : toutData.primaryCTA;
            payload['event.workflow'] = iaw_jsUtil__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].capitalize(eventData.workflow); // Will return null if string doesn't exist
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_TOUT;
            payload['event.subtype'] = ((_a = eventData.subtype) === null || _a === void 0 ? void 0 : _a.toLowerCase()) || ((_b = primaryCTA === null || primaryCTA === void 0 ? void 0 : primaryCTA.ctaText) === null || _b === void 0 ? void 0 : _b.toLowerCase()) || PROPERTY_KEYS.SUBTYPE_TOUT;
            payload['event.value'] = iaw_jsUtil__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].capitalize(eventData.value);
            payload['ui.view_type'] = eventData.stage + ':' + eventData.layout;
            payload['content.status'] =
                eventData.workflow && eventData.workflow === PROPERTY_KEYS.WORKFLOW_DEFAULT
                    ? PROPERTY_KEYS.STATUS_LOCAL
                    : PROPERTY_KEYS.STATUS_CACHED;
            payload['content.name'] = toutData === null || toutData === void 0 ? void 0 : toutData.headerText;
            payload['content.action'] = eventData.ctaURL || start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].getContentIdFromCTAData(eventData.ctaData);
            payload['ccx.signals'] = start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].parseUserSignals(eventData);
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].addSophiaAnalytics(payload, eventData.containerAnalyticsParams);
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].mapStageConditions(payload, eventData.stage);
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].parseError(payload, eventData.error);
            break;
        case start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* INGEST_EVENT_IDS */ "a"].SIGNALS:
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_HOME;
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_SUGGESTIONS;
            payload['event.subtype'] = eventData.subtype;
            payload['event.value'] = eventData.value;
            payload['ui.view_type'] = eventData.stage + ':' + eventData.layout;
            payload['ui.sequence'] = eventData.uiSequence;
            eventData.contentId && (payload['content.id'] = eventData.contentId);
            eventData.contentName && (payload['content.name'] = eventData.contentName);
            eventData.contentType && (payload['content.type'] = eventData.contentType);
            eventData.contentAuthor && (payload['content.author'] = eventData.contentAuthor);
            eventData.count && (payload['event.count'] = eventData.count);
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].addDynamicRecommendationsModelData(payload, eventData.cardAnalyticsData);
            payload['ccx.signals'] = eventData.recommendationsJson;
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].addSophiaAnalytics(payload, eventData.containerAnalyticsParams);
            payload['exp.surface_id'] = src_components_start_constants__WEBPACK_IMPORTED_MODULE_3__[/* default */ "k"].SURFACES.HOME;
            payload['exp.response_guid'] = (_c = _Sophia__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].data.analyticsData) === null || _c === void 0 ? void 0 : _c.responseGUID;
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].mapStageConditions(payload, eventData.stage);
            break;
        default:
            _logger.error(PROPERTY_KEYS.DEFAULT_MISC + iaw_jsUtil__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].capitalize(eventID) + JSON.stringify(eventData), true);
            break;
    }
});


/***/ }),

/***/ "3BRs":
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(process, setImmediate, global) {// Copyright Joyent, Inc. and other Node contributors.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to permit
// persons to whom the Software is furnished to do so, subject to the
// following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
// USE OR OTHER DEALINGS IN THE SOFTWARE.
// A bit simpler than readable streams.
// Implement an async ._write(chunk, encoding, cb), and it'll handle all
// the drain event emission and buffering.

/*<replacement>*/

var pna = __webpack_require__("lm0R");
/*</replacement>*/


module.exports = Writable;
/* <replacement> */

function WriteReq(chunk, encoding, cb) {
  this.chunk = chunk;
  this.encoding = encoding;
  this.callback = cb;
  this.next = null;
} // It seems a linked list but it is not
// there will be only 2 of these for each stream


function CorkedRequest(state) {
  var _this = this;

  this.next = null;
  this.entry = null;

  this.finish = function () {
    onCorkedFinish(_this, state);
  };
}
/* </replacement> */

/*<replacement>*/


var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick;
/*</replacement>*/

/*<replacement>*/

var Duplex;
/*</replacement>*/

Writable.WritableState = WritableState;
/*<replacement>*/

var util = Object.create(__webpack_require__("Onz0"));
util.inherits = __webpack_require__("P7XM");
/*</replacement>*/

/*<replacement>*/

var internalUtil = {
  deprecate: __webpack_require__("t9FE")
};
/*</replacement>*/

/*<replacement>*/

var Stream = __webpack_require__("QpuX");
/*</replacement>*/

/*<replacement>*/


var Buffer = __webpack_require__("hwdV").Buffer;

var OurUint8Array = global.Uint8Array || function () {};

function _uint8ArrayToBuffer(chunk) {
  return Buffer.from(chunk);
}

function _isUint8Array(obj) {
  return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;
}
/*</replacement>*/


var destroyImpl = __webpack_require__("RoFp");

util.inherits(Writable, Stream);

function nop() {}

function WritableState(options, stream) {
  Duplex = Duplex || __webpack_require__("sZro");
  options = options || {}; // Duplex streams are both readable and writable, but share
  // the same options object.
  // However, some cases require setting options to different
  // values for the readable and the writable sides of the duplex stream.
  // These options can be provided separately as readableXXX and writableXXX.

  var isDuplex = stream instanceof Duplex; // object stream flag to indicate whether or not this stream
  // contains buffers or objects.

  this.objectMode = !!options.objectMode;
  if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; // the point at which write() starts returning false
  // Note: 0 is a valid value, means that we always return false if
  // the entire buffer is not flushed immediately on write()

  var hwm = options.highWaterMark;
  var writableHwm = options.writableHighWaterMark;
  var defaultHwm = this.objectMode ? 16 : 16 * 1024;
  if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm; // cast to ints.

  this.highWaterMark = Math.floor(this.highWaterMark); // if _final has been called

  this.finalCalled = false; // drain event flag.

  this.needDrain = false; // at the start of calling end()

  this.ending = false; // when end() has been called, and returned

  this.ended = false; // when 'finish' is emitted

  this.finished = false; // has it been destroyed

  this.destroyed = false; // should we decode strings into buffers before passing to _write?
  // this is here so that some node-core streams can optimize string
  // handling at a lower level.

  var noDecode = options.decodeStrings === false;
  this.decodeStrings = !noDecode; // Crypto is kind of old and crusty.  Historically, its default string
  // encoding is 'binary' so we have to make this configurable.
  // Everything else in the universe uses 'utf8', though.

  this.defaultEncoding = options.defaultEncoding || 'utf8'; // not an actual buffer we keep track of, but a measurement
  // of how much we're waiting to get pushed to some underlying
  // socket or file.

  this.length = 0; // a flag to see when we're in the middle of a write.

  this.writing = false; // when true all writes will be buffered until .uncork() call

  this.corked = 0; // a flag to be able to tell if the onwrite cb is called immediately,
  // or on a later tick.  We set this to true at first, because any
  // actions that shouldn't happen until "later" should generally also
  // not happen before the first write call.

  this.sync = true; // a flag to know if we're processing previously buffered items, which
  // may call the _write() callback in the same tick, so that we don't
  // end up in an overlapped onwrite situation.

  this.bufferProcessing = false; // the callback that's passed to _write(chunk,cb)

  this.onwrite = function (er) {
    onwrite(stream, er);
  }; // the callback that the user supplies to write(chunk,encoding,cb)


  this.writecb = null; // the amount that is being written when _write is called.

  this.writelen = 0;
  this.bufferedRequest = null;
  this.lastBufferedRequest = null; // number of pending user-supplied write callbacks
  // this must be 0 before 'finish' can be emitted

  this.pendingcb = 0; // emit prefinish if the only thing we're waiting for is _write cbs
  // This is relevant for synchronous Transform streams

  this.prefinished = false; // True if the error was already emitted and should not be thrown again

  this.errorEmitted = false; // count buffered requests

  this.bufferedRequestCount = 0; // allocate the first CorkedRequest, there is always
  // one allocated and free to use, and we maintain at most two

  this.corkedRequestsFree = new CorkedRequest(this);
}

WritableState.prototype.getBuffer = function getBuffer() {
  var current = this.bufferedRequest;
  var out = [];

  while (current) {
    out.push(current);
    current = current.next;
  }

  return out;
};

(function () {
  try {
    Object.defineProperty(WritableState.prototype, 'buffer', {
      get: internalUtil.deprecate(function () {
        return this.getBuffer();
      }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')
    });
  } catch (_) {}
})(); // Test _writableState for inheritance to account for Duplex streams,
// whose prototype chain only points to Readable.


var realHasInstance;

if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {
  realHasInstance = Function.prototype[Symbol.hasInstance];
  Object.defineProperty(Writable, Symbol.hasInstance, {
    value: function (object) {
      if (realHasInstance.call(this, object)) return true;
      if (this !== Writable) return false;
      return object && object._writableState instanceof WritableState;
    }
  });
} else {
  realHasInstance = function (object) {
    return object instanceof this;
  };
}

function Writable(options) {
  Duplex = Duplex || __webpack_require__("sZro"); // Writable ctor is applied to Duplexes, too.
  // `realHasInstance` is necessary because using plain `instanceof`
  // would return false, as no `_writableState` property is attached.
  // Trying to use the custom `instanceof` for Writable here will also break the
  // Node.js LazyTransform implementation, which has a non-trivial getter for
  // `_writableState` that would lead to infinite recursion.

  if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {
    return new Writable(options);
  }

  this._writableState = new WritableState(options, this); // legacy.

  this.writable = true;

  if (options) {
    if (typeof options.write === 'function') this._write = options.write;
    if (typeof options.writev === 'function') this._writev = options.writev;
    if (typeof options.destroy === 'function') this._destroy = options.destroy;
    if (typeof options.final === 'function') this._final = options.final;
  }

  Stream.call(this);
} // Otherwise people can pipe Writable streams, which is just wrong.


Writable.prototype.pipe = function () {
  this.emit('error', new Error('Cannot pipe, not readable'));
};

function writeAfterEnd(stream, cb) {
  var er = new Error('write after end'); // TODO: defer error events consistently everywhere, not just the cb

  stream.emit('error', er);
  pna.nextTick(cb, er);
} // Checks that a user-supplied chunk is valid, especially for the particular
// mode the stream is in. Currently this means that `null` is never accepted
// and undefined/non-string values are only allowed in object mode.


function validChunk(stream, state, chunk, cb) {
  var valid = true;
  var er = false;

  if (chunk === null) {
    er = new TypeError('May not write null values to stream');
  } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {
    er = new TypeError('Invalid non-string/buffer chunk');
  }

  if (er) {
    stream.emit('error', er);
    pna.nextTick(cb, er);
    valid = false;
  }

  return valid;
}

Writable.prototype.write = function (chunk, encoding, cb) {
  var state = this._writableState;
  var ret = false;

  var isBuf = !state.objectMode && _isUint8Array(chunk);

  if (isBuf && !Buffer.isBuffer(chunk)) {
    chunk = _uint8ArrayToBuffer(chunk);
  }

  if (typeof encoding === 'function') {
    cb = encoding;
    encoding = null;
  }

  if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;
  if (typeof cb !== 'function') cb = nop;
  if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {
    state.pendingcb++;
    ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);
  }
  return ret;
};

Writable.prototype.cork = function () {
  var state = this._writableState;
  state.corked++;
};

Writable.prototype.uncork = function () {
  var state = this._writableState;

  if (state.corked) {
    state.corked--;
    if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);
  }
};

Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {
  // node::ParseEncoding() requires lower case.
  if (typeof encoding === 'string') encoding = encoding.toLowerCase();
  if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);
  this._writableState.defaultEncoding = encoding;
  return this;
};

function decodeChunk(state, chunk, encoding) {
  if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {
    chunk = Buffer.from(chunk, encoding);
  }

  return chunk;
}

Object.defineProperty(Writable.prototype, 'writableHighWaterMark', {
  // making it explicit this property is not enumerable
  // because otherwise some prototype manipulation in
  // userland will fail
  enumerable: false,
  get: function () {
    return this._writableState.highWaterMark;
  }
}); // if we're already writing something, then just put this
// in the queue, and wait our turn.  Otherwise, call _write
// If we return false, then we need a drain event, so set that flag.

function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {
  if (!isBuf) {
    var newChunk = decodeChunk(state, chunk, encoding);

    if (chunk !== newChunk) {
      isBuf = true;
      encoding = 'buffer';
      chunk = newChunk;
    }
  }

  var len = state.objectMode ? 1 : chunk.length;
  state.length += len;
  var ret = state.length < state.highWaterMark; // we must ensure that previous needDrain will not be reset to false.

  if (!ret) state.needDrain = true;

  if (state.writing || state.corked) {
    var last = state.lastBufferedRequest;
    state.lastBufferedRequest = {
      chunk: chunk,
      encoding: encoding,
      isBuf: isBuf,
      callback: cb,
      next: null
    };

    if (last) {
      last.next = state.lastBufferedRequest;
    } else {
      state.bufferedRequest = state.lastBufferedRequest;
    }

    state.bufferedRequestCount += 1;
  } else {
    doWrite(stream, state, false, len, chunk, encoding, cb);
  }

  return ret;
}

function doWrite(stream, state, writev, len, chunk, encoding, cb) {
  state.writelen = len;
  state.writecb = cb;
  state.writing = true;
  state.sync = true;
  if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);
  state.sync = false;
}

function onwriteError(stream, state, sync, er, cb) {
  --state.pendingcb;

  if (sync) {
    // defer the callback if we are being called synchronously
    // to avoid piling up things on the stack
    pna.nextTick(cb, er); // this can emit finish, and it will always happen
    // after error

    pna.nextTick(finishMaybe, stream, state);
    stream._writableState.errorEmitted = true;
    stream.emit('error', er);
  } else {
    // the caller expect this to happen before if
    // it is async
    cb(er);
    stream._writableState.errorEmitted = true;
    stream.emit('error', er); // this can emit finish, but finish must
    // always follow error

    finishMaybe(stream, state);
  }
}

function onwriteStateUpdate(state) {
  state.writing = false;
  state.writecb = null;
  state.length -= state.writelen;
  state.writelen = 0;
}

function onwrite(stream, er) {
  var state = stream._writableState;
  var sync = state.sync;
  var cb = state.writecb;
  onwriteStateUpdate(state);
  if (er) onwriteError(stream, state, sync, er, cb);else {
    // Check if we're actually ready to finish, but don't emit yet
    var finished = needFinish(state);

    if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {
      clearBuffer(stream, state);
    }

    if (sync) {
      /*<replacement>*/
      asyncWrite(afterWrite, stream, state, finished, cb);
      /*</replacement>*/
    } else {
      afterWrite(stream, state, finished, cb);
    }
  }
}

function afterWrite(stream, state, finished, cb) {
  if (!finished) onwriteDrain(stream, state);
  state.pendingcb--;
  cb();
  finishMaybe(stream, state);
} // Must force callback to be called on nextTick, so that we don't
// emit 'drain' before the write() consumer gets the 'false' return
// value, and has a chance to attach a 'drain' listener.


function onwriteDrain(stream, state) {
  if (state.length === 0 && state.needDrain) {
    state.needDrain = false;
    stream.emit('drain');
  }
} // if there's something in the buffer waiting, then process it


function clearBuffer(stream, state) {
  state.bufferProcessing = true;
  var entry = state.bufferedRequest;

  if (stream._writev && entry && entry.next) {
    // Fast case, write everything using _writev()
    var l = state.bufferedRequestCount;
    var buffer = new Array(l);
    var holder = state.corkedRequestsFree;
    holder.entry = entry;
    var count = 0;
    var allBuffers = true;

    while (entry) {
      buffer[count] = entry;
      if (!entry.isBuf) allBuffers = false;
      entry = entry.next;
      count += 1;
    }

    buffer.allBuffers = allBuffers;
    doWrite(stream, state, true, state.length, buffer, '', holder.finish); // doWrite is almost always async, defer these to save a bit of time
    // as the hot path ends with doWrite

    state.pendingcb++;
    state.lastBufferedRequest = null;

    if (holder.next) {
      state.corkedRequestsFree = holder.next;
      holder.next = null;
    } else {
      state.corkedRequestsFree = new CorkedRequest(state);
    }

    state.bufferedRequestCount = 0;
  } else {
    // Slow case, write chunks one-by-one
    while (entry) {
      var chunk = entry.chunk;
      var encoding = entry.encoding;
      var cb = entry.callback;
      var len = state.objectMode ? 1 : chunk.length;
      doWrite(stream, state, false, len, chunk, encoding, cb);
      entry = entry.next;
      state.bufferedRequestCount--; // if we didn't call the onwrite immediately, then
      // it means that we need to wait until it does.
      // also, that means that the chunk and cb are currently
      // being processed, so move the buffer counter past them.

      if (state.writing) {
        break;
      }
    }

    if (entry === null) state.lastBufferedRequest = null;
  }

  state.bufferedRequest = entry;
  state.bufferProcessing = false;
}

Writable.prototype._write = function (chunk, encoding, cb) {
  cb(new Error('_write() is not implemented'));
};

Writable.prototype._writev = null;

Writable.prototype.end = function (chunk, encoding, cb) {
  var state = this._writableState;

  if (typeof chunk === 'function') {
    cb = chunk;
    chunk = null;
    encoding = null;
  } else if (typeof encoding === 'function') {
    cb = encoding;
    encoding = null;
  }

  if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); // .end() fully uncorks

  if (state.corked) {
    state.corked = 1;
    this.uncork();
  } // ignore unnecessary end() calls.


  if (!state.ending && !state.finished) endWritable(this, state, cb);
};

function needFinish(state) {
  return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;
}

function callFinal(stream, state) {
  stream._final(function (err) {
    state.pendingcb--;

    if (err) {
      stream.emit('error', err);
    }

    state.prefinished = true;
    stream.emit('prefinish');
    finishMaybe(stream, state);
  });
}

function prefinish(stream, state) {
  if (!state.prefinished && !state.finalCalled) {
    if (typeof stream._final === 'function') {
      state.pendingcb++;
      state.finalCalled = true;
      pna.nextTick(callFinal, stream, state);
    } else {
      state.prefinished = true;
      stream.emit('prefinish');
    }
  }
}

function finishMaybe(stream, state) {
  var need = needFinish(state);

  if (need) {
    prefinish(stream, state);

    if (state.pendingcb === 0) {
      state.finished = true;
      stream.emit('finish');
    }
  }

  return need;
}

function endWritable(stream, state, cb) {
  state.ending = true;
  finishMaybe(stream, state);

  if (cb) {
    if (state.finished) pna.nextTick(cb);else stream.once('finish', cb);
  }

  state.ended = true;
  stream.writable = false;
}

function onCorkedFinish(corkReq, state, err) {
  var entry = corkReq.entry;
  corkReq.entry = null;

  while (entry) {
    var cb = entry.callback;
    state.pendingcb--;
    cb(err);
    entry = entry.next;
  }

  if (state.corkedRequestsFree) {
    state.corkedRequestsFree.next = corkReq;
  } else {
    state.corkedRequestsFree = corkReq;
  }
}

Object.defineProperty(Writable.prototype, 'destroyed', {
  get: function () {
    if (this._writableState === undefined) {
      return false;
    }

    return this._writableState.destroyed;
  },
  set: function (value) {
    // we ignore the value if the stream
    // has not been initialized yet
    if (!this._writableState) {
      return;
    } // backward compatibility, the user is explicitly
    // managing destroyed


    this._writableState.destroyed = value;
  }
});
Writable.prototype.destroy = destroyImpl.destroy;
Writable.prototype._undestroy = destroyImpl.undestroy;

Writable.prototype._destroy = function (err, cb) {
  this.end();
  cb(err);
};
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("8oxB"), __webpack_require__("URgk").setImmediate, __webpack_require__("yLpj")))

/***/ }),

/***/ "3C4i":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.trapFocus = trapFocus;
exports.TABBABLE_ELEMENT_SELECTOR = exports.FOCUSABLE_ELEMENT_SELECTOR = exports.default = void 0;

var _autobindDecorator = _interopRequireDefault(__webpack_require__("gKdT"));

var _events = __webpack_require__("mdZ3");

var _propTypes = _interopRequireDefault(__webpack_require__("17x9"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

var _reactDom = _interopRequireDefault(__webpack_require__("i8i4"));

var _string = __webpack_require__("SJ2Q");

var _scrollToDOMNode = _interopRequireDefault(__webpack_require__("crf9"));

var _class, _class2, _temp2;

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

const WHITESPACE_REGEXP = /[\n\r]+|[\s]{1,}/g;
const DELAY_BEFORE_AUTOFOCUS = 175;

let FocusManager = (0, _autobindDecorator.default)(_class = (_temp2 = _class2 = class FocusManager extends _react.default.Component {
  constructor(...args) {
    var _temp;

    return _temp = super(...args), this.keysSoFar = '', this.keyClearTimeout = null, _temp;
  }

  getItems(selected = false) {
    const {
      itemSelector,
      selectedItemSelector,
      includeSelf
    } = this.props;
    const selector = selected && selectedItemSelector ? selectedItemSelector : itemSelector;

    const node = _reactDom.default.findDOMNode(this);

    const array = [];

    if (includeSelf && node.matches(selector)) {
      array.push(node);
    }

    let items = array.concat(Array.from(node.querySelectorAll(selector)));
    /* When items have data-order defined, we use the attribute to sort the items.
     * The sort order based on data-order attribute defines the next focus element.
     */

    if (items.length > 0 && items[0].getAttribute('data-order') !== undefined) {
      items.sort(function (a, b) {
        let p1 = a.getAttribute('data-order');
        let p2 = b.getAttribute('data-order');
        return parseInt(p1, 10) - parseInt(p2, 10);
      });
    }

    return items;
  }

  onFocusFirst(e) {
    const items = this.getItems();

    if (items.length && (!e || items.indexOf(e.target) !== -1)) {
      if (e) {
        e.preventDefault();
      }

      items[0].focus();
    }
  }

  onFocusLast(e) {
    const items = this.getItems();

    if (items.length && (!e || items.indexOf(e.target) !== -1)) {
      if (e) {
        e.preventDefault();
      }

      items[items.length - 1].focus();
    }
  }

  onFocusPrevious(e, offset = 1) {
    const items = this.getItems();

    if (items.length && e && items.indexOf(e.target) !== -1) {
      e.preventDefault();
      let index = items.indexOf(e.target) - offset;

      if (index < 0) {
        if (this.props.disableCyclicFocus) {
          return;
        }

        index = items.length - 1;
      }

      items[index].focus();
    }
  }

  onFocusNext(e, offset = 1) {
    const items = this.getItems();

    if (items.length && e && items.indexOf(e.target) !== -1) {
      e.preventDefault();
      let index = items.indexOf(e.target) + offset;

      if (index >= items.length) {
        if (this.props.disableCyclicFocus) {
          return;
        }

        index = 0;
      }

      items[index].focus();
    }
  }

  onPageUp(e) {
    if (this.props.ignorePageUpPageDown) {
      return;
    }

    const items = this.getItems();

    if (items.length && e && items.indexOf(e.target) !== -1) {
      e.preventDefault();

      const listNode = _reactDom.default.findDOMNode(this);

      const nextPage = Math.max(e.target.offsetTop + e.target.offsetHeight - listNode.clientHeight, 0);
      const index = items.indexOf(e.target);
      const item = items.slice(0, index).reverse().find(item => item.offsetTop < nextPage);

      if (item) {
        item.focus();
        (0, _scrollToDOMNode.default)(item, listNode, true);
      } else {
        this.onFocusFirst(e);
      }
    }
  }

  onPageDown(e) {
    if (this.props.ignorePageUpPageDown) {
      return;
    }

    const items = this.getItems();

    if (items.length && e && items.indexOf(e.target) !== -1) {
      e.preventDefault();

      const listNode = _reactDom.default.findDOMNode(this);

      const nextPage = Math.min(e.target.offsetTop + listNode.clientHeight, listNode.scrollHeight + listNode.clientHeight);
      const index = items.indexOf(e.target) + 1;
      const item = items.slice(index).find(item => item.offsetTop + item.offsetHeight > nextPage);

      if (item) {
        item.focus();
        (0, _scrollToDOMNode.default)(item, listNode, true);
      } else {
        this.onFocusLast(e);
      }
    }
  }

  findItemToFocus(e) {
    const {
      target,
      shiftKey,
      charCode
    } = e;
    const character = (0, _string.removeDiacritics)(String.fromCharCode(charCode)).toUpperCase();
    let items = this.getItems();

    if (this.keysSoFar === '' || character === this.keysSoFar || shiftKey) {
      // reverse order if shiftKey is pressed
      if (shiftKey) {
        items = items.reverse();
      }

      this.searchIndex = items.indexOf(target);
    }

    if (character !== this.keysSoFar) {
      this.keysSoFar += character;
    }

    this.clearKeysSoFarAfterDelay();
    let item = this.findMatchInRange(items, this.searchIndex + 1, items.length);

    if (!item) {
      item = this.findMatchInRange(items, 0, this.searchIndex);
    }

    if (item) {
      item.focus();
    }
  }

  clearKeysSoFarAfterDelay() {
    if (this.keyClearTimeout) {
      clearTimeout(this.keyClearTimeout);
    }

    this.keyClearTimeout = setTimeout(() => this.keysSoFar = '', 500);
  }

  findMatchInRange(items, startIndex, endIndex) {
    // Find the first item starting with the keysSoFar substring, searching in the specified range of items
    for (let i = startIndex; i < endIndex; i++) {
      const label = items[i].innerText || items[i].textContent;

      if (label && (0, _string.removeDiacritics)(label).replace(WHITESPACE_REGEXP, '').toUpperCase().indexOf(this.keysSoFar) === 0) {
        return items[i];
      }
    }

    return null;
  }
  /**
   * Handle keydown event
   * @param {Event} e Event object
   */


  onKeyDown(e) {
    if (e.isPropagationStopped()) {
      return;
    }

    _events.interpretKeyboardEvent.call(this, e, this.props.orientation);
  }
  /**
   * Handle keypress event
   * @param {Event} e Event object
   */


  onKeyPress(e) {
    if (e.isPropagationStopped()) {
      return;
    }

    this.findItemToFocus(e);
  }
  /**
   * When an item receives focus, it should have tabIndex === 0 and all other items should have tabIndex === -1
   * @param {Event} e Event object
   */


  onFocus(e) {
    if (e.isPropagationStopped()) {
      return;
    }

    this.getItems().forEach(item => item.tabIndex = item === e.target ? 0 : -1);
  }
  /**
   * When an item loses focus, set the appropriate tabIndex on each item based on its selected state.
   * If the item losing focus is selected,
   * it should be the only item to receive focus on shift+tab or tab back to the control,
   * However, if the item losing focus is not selected,
   * any of the selected items should receive focus on shift+tab or tab.
   * @param {Event} e Event object
   */


  onBlur(e) {
    if (e.isPropagationStopped()) {
      return;
    }

    const selectedItems = this.getItems(true); // If there are selected items,

    if (selectedItems.length) {
      // store whether item losing focus is selected.
      const targetSelected = selectedItems.indexOf(e.target) !== -1;
      this.getItems().forEach(item => {
        // store whether the current item is selected.
        const selected = selectedItems.indexOf(item) !== -1; // If the current item is the item losing focus and it is selected,
        // or the current item is selected and the item losing focus is not selected,
        // set tabIndex === 0, otherwise set tabIndex === -1.

        item.tabIndex = item === e.target && targetSelected || !targetSelected && selected ? 0 : -1;
      });
    }
  }

  componentDidMount() {
    const {
      autoFocus,
      selectedItemSelector
    } = this.props;

    if (autoFocus) {
      const selectedItem = selectedItemSelector ? _reactDom.default.findDOMNode(this).querySelector(selectedItemSelector) : null; // wait a frame before trying to shift focus

      this.focusTimer = setTimeout(() => {
        if (selectedItem) {
          selectedItem.focus();
        } else {
          this.onFocusFirst();
        }
      }, DELAY_BEFORE_AUTOFOCUS);
    }
  }

  componentWillUnmount() {
    clearTimeout(this.focusTimer);
  }

  render() {
    const {
      children,
      disabled,
      manageTabIndex,
      typeToSelect
    } = this.props;

    const child = _react.default.Children.only(children);

    const {
      onKeyDown,
      onKeyPress,
      onFocus,
      onBlur
    } = child.props;
    return /*#__PURE__*/_react.default.cloneElement(child, {
      onKeyDown: !disabled ? (0, _events.chain)(onKeyDown, this.onKeyDown) : onKeyDown,
      onKeyPress: typeToSelect && !disabled ? (0, _events.chain)(onKeyPress, this.onKeyPress) : onKeyPress,
      onFocus: manageTabIndex && !disabled ? (0, _events.chain)(onFocus, this.onFocus) : onFocus,
      onBlur: manageTabIndex && !disabled ? (0, _events.chain)(onBlur, this.onBlur) : onBlur
    });
  }

}, _class2.propTypes = {
  /**
   * A selector of focusable elements to manage focus between
   */
  itemSelector: _propTypes.default.string.isRequired,

  /**
   * Whether to use roving tabIndex so that only one element within the group can receive focus with tab key at a time.
   */
  manageTabIndex: _propTypes.default.bool,

  /**
   * Orientation of items; "horizontal" orientation ignores up/down arrow keys, "vertical" orientation ignores left/right arrow keys, "both" handles up/left and down/right.
   */
  orientation: _propTypes.default.oneOf(['horizontal', 'vertical', 'both']),

  /**
   * A selector of selected elements
   */
  selectedItemSelector: _propTypes.default.string,

  /**
   * Whether to disable focus management
   */
  disabled: _propTypes.default.bool,

  /**
   * Whether to include alphanumeric typing as a way to move focus to items in a list.
   */
  typeToSelect: _propTypes.default.bool,

  /**
   * Whether to include the child wrapper element in the group of elements that can receive focus.
   */
  includeSelf: _propTypes.default.bool,

  /**
   * Whether to ignore PageUp and PageDown events to move focus between items.
   */
  ignorePageUpPageDown: _propTypes.default.bool,

  /**
   * Whether to autoFocus first selected item or first item.
   */
  autoFocus: _propTypes.default.bool
}, _class2.defaultProps = {
  manageTabIndex: true,
  orientation: 'vertical',
  typeToSelect: false,
  includeSelf: false,
  ignorePageUpPageDown: false
}, _temp2)) || _class;

exports.default = FocusManager;
const focusableElements = ['input:not([disabled]):not([type=hidden])', 'select:not([disabled])', 'textarea:not([disabled])', 'button:not([disabled])', 'a[href]', 'area[href]', 'summary', 'iframe', 'object', 'embed', 'audio[controls]', 'video[controls]', '[contenteditable]'];
const spFocusableElements = ['sp-action-button:not([disabled])', 'sp-button:not([disabled])', 'sp-checkbox:not([disabled])', 'sp-link:not([disabled])', 'sp-radio:not([disabled])', 'sp-radio-group:not([disabled])', 'sp-slider:not([disabled])'];
focusableElements.push(spFocusableElements);
const FOCUSABLE_ELEMENT_SELECTOR = focusableElements.join(',') + ',[tabindex]';
exports.FOCUSABLE_ELEMENT_SELECTOR = FOCUSABLE_ELEMENT_SELECTOR;
focusableElements.push('[tabindex]:not([tabindex="-1"])');
const TABBABLE_ELEMENT_SELECTOR = focusableElements.join(':not([tabindex="-1"]),');
exports.TABBABLE_ELEMENT_SELECTOR = TABBABLE_ELEMENT_SELECTOR;

function trapFocus(componentOrElement, event) {
  const {
    type,
    key,
    shiftKey,
    target
  } = event;
  let node;
  let tabbables;
  let tabbable;
  let first;
  let last;

  if (type === 'keydown' || type === 'focus') {
    node = _reactDom.default.findDOMNode(componentOrElement);

    if (node) {
      // find tabbable elements within container element
      tabbables = Array.from(node.querySelectorAll(TABBABLE_ELEMENT_SELECTOR)).filter(el => el !== node);
      first = tabbables[0] || node;
      last = tabbables[tabbables.length - 1] || node;
    }
  } // If navigating using the tab key,


  if (type === 'keydown' && key === 'Tab') {
    if (node) {
      if (shiftKey) {
        // with focus on first tabbable element, navigating backwards,
        if (target === first || target === node) {
          // focus the last tabbable element
          tabbable = last;
        } // otherwise, with focus on last tabbable element, navigating forwards,

      } else if (target === last || target === node) {
        // focus the first tabbable element.
        tabbable = first;
      }
    }
  } else if (type === 'focus' && target === node) {
    tabbable = first;
  }

  if (tabbable) {
    event.preventDefault();
    event.stopPropagation();

    if (tabbable !== document.activeElement) {
      tabbable.focus();
    }
  }
}

/***/ }),

/***/ "3Fdi":
/***/ (function(module, exports) {

/** Used for built-in method references. */
var funcProto = Function.prototype;
/** Used to resolve the decompiled source of functions. */

var funcToString = funcProto.toString;
/**
 * Converts `func` to its source code.
 *
 * @private
 * @param {Function} func The function to convert.
 * @returns {string} Returns the source code.
 */

function toSource(func) {
  if (func != null) {
    try {
      return funcToString.call(func);
    } catch (e) {}

    try {
      return func + '';
    } catch (e) {}
  }

  return '';
}

module.exports = toSource;

/***/ }),

/***/ "3GJH":
/***/ (function(module, exports, __webpack_require__) {

__webpack_require__("lCc8");

var $Object = __webpack_require__("WEpk").Object;

module.exports = function create(P, D) {
  return $Object.create(P, D);
};

/***/ }),

/***/ "3Irx":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("TSYQ");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_1__);
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/


class ImageView extends react__WEBPACK_IMPORTED_MODULE_0__["Component"] {
    constructor() {
        super(...arguments);
        this._imageRef = react__WEBPACK_IMPORTED_MODULE_0__["createRef"]();
        this._previousImageValue = null;
        this.state = {
            isImageLoaded: false,
        };
        this.onImageLoad = () => {
            this.setState({
                isImageLoaded: true,
            });
        };
    }
    componentDidMount() {
        this.updateImageSrc();
    }
    componentDidUpdate() {
        this.updateImageSrc();
    }
    /**
     * Prevent image UXP flicker issue caused by setting src to the same URL it had before, and bypass React's slow
     * copy of string data.
     */
    updateImageSrc() {
        const { image } = this.props;
        if (image &&
            this._imageRef &&
            this._imageRef.current &&
            image !== this._previousImageValue) {
            this.setState({
                isImageLoaded: false,
            });
            this._previousImageValue = image;
            this._imageRef.current.setAttribute('src', image);
        }
    }
    /**
     * Component renderer.
     * @return {ReactElement} markup
     */
    render() {
        const { image, className, ...passThroughProps } = this.props;
        const { isImageLoaded } = this.state;
        return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("img", Object.assign({ alt: "", ref: this._imageRef, onLoad: this.onImageLoad, className: classnames__WEBPACK_IMPORTED_MODULE_1___default()(isImageLoaded && 'image-loaded', className) }, passThroughProps)));
    }
}
/* harmony default export */ __webpack_exports__["a"] = (ImageView);


/***/ }),

/***/ "3L66":
/***/ (function(module, exports, __webpack_require__) {

var isArrayLike = __webpack_require__("MMmD"),
    isObjectLike = __webpack_require__("ExA7");
/**
 * This method is like `_.isArrayLike` except that it also checks if `value`
 * is an object.
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is an array-like object,
 *  else `false`.
 * @example
 *
 * _.isArrayLikeObject([1, 2, 3]);
 * // => true
 *
 * _.isArrayLikeObject(document.body.children);
 * // => true
 *
 * _.isArrayLikeObject('abc');
 * // => false
 *
 * _.isArrayLikeObject(_.noop);
 * // => false
 */


function isArrayLikeObject(value) {
  return isObjectLike(value) && isArrayLike(value);
}

module.exports = isArrayLikeObject;

/***/ }),

/***/ "3MsT":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return getEnvelopeEndpointWithUrlEncodedAuth; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return getReportDialogEndpoint; });
/* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("6PXS");
/* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("UJ/E");

const SENTRY_API_VERSION = '7';
/** Returns the prefix to construct Sentry ingestion API endpoints. */

function getBaseApiEndpoint(dsn) {
  const protocol = dsn.protocol ? `${dsn.protocol}:` : '';
  const port = dsn.port ? `:${dsn.port}` : '';
  return `${protocol}//${dsn.host}${port}${dsn.path ? `/${dsn.path}` : ''}/api/`;
}
/** Returns the ingest API endpoint for target. */


function _getIngestEndpoint(dsn) {
  return `${getBaseApiEndpoint(dsn)}${dsn.projectId}/envelope/`;
}
/** Returns a URL-encoded string with auth config suitable for a query string. */


function _encodedAuth(dsn, sdkInfo) {
  return Object(_sentry_utils__WEBPACK_IMPORTED_MODULE_0__[/* urlEncode */ "h"])({
    // We send only the minimum set of required information. See
    // https://github.com/getsentry/sentry-javascript/issues/2572.
    sentry_key: dsn.publicKey,
    sentry_version: SENTRY_API_VERSION,
    ...(sdkInfo && {
      sentry_client: `${sdkInfo.name}/${sdkInfo.version}`
    })
  });
}
/**
 * Returns the envelope endpoint URL with auth in the query string.
 *
 * Sending auth as part of the query string and not as custom HTTP headers avoids CORS preflight requests.
 */


function getEnvelopeEndpointWithUrlEncodedAuth(dsn, // TODO (v8): Remove `tunnelOrOptions` in favor of `options`, and use the substitute code below
// options: ClientOptions = {} as ClientOptions,
tunnelOrOptions = {}) {
  // TODO (v8): Use this code instead
  // const { tunnel, _metadata = {} } = options;
  // return tunnel ? tunnel : `${_getIngestEndpoint(dsn)}?${_encodedAuth(dsn, _metadata.sdk)}`;
  const tunnel = typeof tunnelOrOptions === 'string' ? tunnelOrOptions : tunnelOrOptions.tunnel;
  const sdkInfo = typeof tunnelOrOptions === 'string' || !tunnelOrOptions._metadata ? undefined : tunnelOrOptions._metadata.sdk;
  return tunnel ? tunnel : `${_getIngestEndpoint(dsn)}?${_encodedAuth(dsn, sdkInfo)}`;
}
/** Returns the url to the report dialog endpoint. */


function getReportDialogEndpoint(dsnLike, dialogOptions) {
  const dsn = Object(_sentry_utils__WEBPACK_IMPORTED_MODULE_1__[/* makeDsn */ "b"])(dsnLike);
  const endpoint = `${getBaseApiEndpoint(dsn)}embed/error-page/`;
  let encodedOptions = `dsn=${Object(_sentry_utils__WEBPACK_IMPORTED_MODULE_1__[/* dsnToString */ "a"])(dsn)}`;

  for (const key in dialogOptions) {
    if (key === 'dsn') {
      continue;
    }

    if (key === 'user') {
      const user = dialogOptions.user;

      if (!user) {
        continue;
      }

      if (user.name) {
        encodedOptions += `&name=${encodeURIComponent(user.name)}`;
      }

      if (user.email) {
        encodedOptions += `&email=${encodeURIComponent(user.email)}`;
      }
    } else {
      encodedOptions += `&${encodeURIComponent(key)}=${encodeURIComponent(dialogOptions[key])}`;
    }
  }

  return `${endpoint}?${encodedOptions}`;
}



/***/ }),

/***/ "3PIf":
/***/ (function(module, exports, __webpack_require__) {

module.exports = __webpack_require__.p + "assets/start/Banner_Editors@2x.png";

/***/ }),

/***/ "3UBC":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// UNUSED EXPORTS: Apps, getAppName

// EXTERNAL MODULE: ./src/applications/ApplicationBase.tsx
var ApplicationBase = __webpack_require__("r6Pq");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/index.tsx + 12 modules
var ccx_cdo = __webpack_require__("t+6E");

// EXTERNAL MODULE: ./src/js/iaw/i18n.tsx + 1 modules
var i18n = __webpack_require__("VZGw");

// EXTERNAL MODULE: ./src/components-start/performance.tsx
var performance = __webpack_require__("r1jx");

// EXTERNAL MODULE: ./src/js/start/stores/MainStore.tsx + 3 modules
var MainStore = __webpack_require__("cCFZ");

// EXTERNAL MODULE: ./src/js/start/Sophia.tsx + 1 modules
var Sophia = __webpack_require__("nm0P");

// EXTERNAL MODULE: ./src/components-start/constants.tsx
var constants = __webpack_require__("/0Ih");

// EXTERNAL MODULE: ./src/LoggerWrapper/Logger.tsx
var Logger = __webpack_require__("43WE");

// EXTERNAL MODULE: ./src/applications/DeeplinkLaunch.ts
var DeeplinkLaunch = __webpack_require__("/xJe");

// EXTERNAL MODULE: ./src/js/iaw/VulcanAPI.ts
var VulcanAPI = __webpack_require__("9PyL");

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/UserGroup/index.js
var UserGroup = __webpack_require__("FykI");
var UserGroup_default = /*#__PURE__*/__webpack_require__.n(UserGroup);

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/DocumentOutline/index.js
var DocumentOutline = __webpack_require__("zTix");
var DocumentOutline_default = /*#__PURE__*/__webpack_require__.n(DocumentOutline);

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/DeleteOutline/index.js
var DeleteOutline = __webpack_require__("bI7j");
var DeleteOutline_default = /*#__PURE__*/__webpack_require__.n(DeleteOutline);

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__("q1tI");
var react_default = /*#__PURE__*/__webpack_require__.n(react);

// EXTERNAL MODULE: ./node_modules/mobx/lib/mobx.module.js
var mobx_module = __webpack_require__("2vnA");

// EXTERNAL MODULE: ./src/components/RefreshProjectsController.tsx
var RefreshProjectsController = __webpack_require__("9J+8");

// EXTERNAL MODULE: ./src/js/iaw/analytics.tsx
var analytics = __webpack_require__("RGcl");

// EXTERNAL MODULE: ./src/components/pieces/Icons.tsx
var Icons = __webpack_require__("NdnS");

// EXTERNAL MODULE: ./src/js/start/CommonUtils.tsx
var CommonUtils = __webpack_require__("5ndN");

// CONCATENATED MODULE: ./src/applications/Photoshop.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
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;
};
var __metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var Photoshop_a, Photoshop_b, _c, _d, _e, _f, _g, _h;




















const DEFAULT_CDO_FEATURE_FLAGS = {
    themingSupport: true,
    focusManagementEnabled: true,
    emptyViewLoggedOutMessage: true,
    enableCloudDocRename: true,
    enableCloudDocPinning: true,
    enableOnboarding: true,
    renameTooltips: true,
    enableCloudDocMultiSelectOpen: true,
    enableCloudDocFolders: (Photoshop_a = window.cdoHost) === null || Photoshop_a === void 0 ? void 0 : Photoshop_a.featureEnabled('CloudDocFolders'),
    enableAssetRef: (Photoshop_b = window.cdoHost) === null || Photoshop_b === void 0 ? void 0 : Photoshop_b.featureEnabled('CDOAssetRef'),
    enableSAM: (_c = window.cdoHost) === null || _c === void 0 ? void 0 : _c.featureEnabled('CloudDocUseSAM'),
    cdpTabs: (_d = window.cdoHost) === null || _d === void 0 ? void 0 : _d.featureEnabled('CloudDocUseCDPTabs'),
    enableFilter: (_e = window.cdoHost) === null || _e === void 0 ? void 0 : _e.featureEnabled('CloudDocFilter'),
    useAdobeReactVirtualized: (_f = window.cdoHost) === null || _f === void 0 ? void 0 : _f.featureEnabled('CloudDocUseARVS'),
    disableCloudDocumentsTab: (_g = window.cdoHost) === null || _g === void 0 ? void 0 : _g.featureEnabled('disableCloudDocumentsTab'),
    showSWYCloudStatusIcon: (_h = window.cdoHost) === null || _h === void 0 ? void 0 : _h.featureEnabled('showSWYCloudStatusIcon'),
};
class Photoshop_Photoshop extends ApplicationBase["c" /* default */] {
    constructor() {
        super();
        this._vmStatus = 0xffff;
        this._logger = Logger["a" /* default */].get('Photoshop');
        this.photoshopAction = window.require('photoshopAction');
        this.photoshopCore = window.require('photoshopCore');
        this.checkIfUnifiedPanelEnabled().then(enabled => (this.isUnifiedPanelEnabled = enabled));
        this.isTutorialsDeepLinkingEnabled = true;
    }
    initializeProjectsHostBindings(sharedStore) {
        this.photoshopAction.addNotificationListener([{ event: 'hostFocusChanged', universal: true }], async (event, description) => {
            if (description === null || description === void 0 ? void 0 : description.active) {
                await sharedStore.refreshContent({ refreshTimeout: RefreshProjectsController["a" /* PROJECTS_REFRESH_TIMEOUT */] });
            }
        });
        const onFileModified = async (event, description) => {
            var _a;
            const { files } = await this.getRawRecentFiles();
            if (files === null || files === void 0 ? void 0 : files.length) {
                const { isCloudDoc, assetRef } = files[0];
                let assetRefObj;
                try {
                    assetRefObj = isCloudDoc ? JSON.parse(assetRef) : undefined;
                }
                catch (e) {
                    this._logger.log(e);
                }
                const { local_id, cloud_id, path, display_name, repository_id } = assetRefObj !== null && assetRefObj !== void 0 ? assetRefObj : {};
                const lastModifiedFile = {
                    local_id,
                    cloud_id,
                    path,
                    display_name,
                    repository_id,
                };
                (_a = sharedStore.notifyAssetEvent) === null || _a === void 0 ? void 0 : _a.call(sharedStore, lastModifiedFile, 'modified');
            }
        };
        const event = { event: 'MRUFileListChanged', universal: true };
        this.photoshopAction.addNotificationListener([event], onFileModified);
        return () => this.photoshopAction.removeNotificationListener([event], onFileModified);
    }
    ////////////////////////////////////////////////////////////////////
    // Configuration of the home screen.
    ///////////////////////////////////////////////////////////////////
    /**
     * Returns the SAP ID of the product.
     */
    get id() {
        return 'PHXS';
    }
    /**
     * Additional product specific tabs to be shown to the end user.
     */
    get tabs() {
        const basicTabs = {
            ccphotos: {
                order: 2,
                type: 'ccphotos',
                label: 'listview_ccphotos_tab_label',
                icon: react_default.a.createElement(Icons["a" /* LightroomIcon */], { className: "spectrum-SideNav-itemIcon" }),
            },
        };
        const cloudDocsTabs = {
            cdo: {
                order: 0,
                type: constants["c" /* CDO_TABS */].CDO,
                label: 'listview_cdo_tab_label',
                icon: react_default.a.createElement(DocumentOutline_default.a, null),
            },
            cdo_deleted: {
                order: 4,
                type: constants["c" /* CDO_TABS */].DELETED,
                label: 'listview_cdo_deleted_tab_label',
                icon: react_default.a.createElement(DeleteOutline_default.a, null),
            },
        };
        if (this.isSharedWithYouEnabled) {
            cloudDocsTabs[constants["c" /* CDO_TABS */].SHARED_WITH_YOU] = {
                order: 1,
                type: constants["c" /* CDO_TABS */].SHARED_WITH_YOU,
                label: 'listview_cdo_shared_with_you_tab_label',
                icon: react_default.a.createElement(UserGroup_default.a, null),
            };
        }
        if (this.isCloudProjectsVisible) {
            cloudDocsTabs['projects'] = {
                order: 3,
                type: 'projects',
                label: 'listview_projects_tab_label',
            };
        }
        return {
            ...(this.isCloudDocumentsEnabled && cloudDocsTabs),
            ...(this.userQuota > 0 && basicTabs),
        };
    }
    /**
     * Checks if app has support to hide the home screen on pressing the escape key.
     */
    get hidesHomeScreenOnEscape() {
        return true;
    }
    get isCloudDocumentsEnabled() {
        return this.photoshopCore.cloudDocumentsEnabled && !MainStore["mainStore"].user.isFRL;
    }
    /**
     * Check if CC Projects features should be loaded
     */
    get isCloudProjectsEnabled() {
        return this.photoshopCore.ccProjects;
    }
    /**
     * Check if CC Projects features should be visible. We need to separate the host FF check from the visibility check to optimize loading.
     * If the FF is on, the Projects code should load regardless of the other conditions. The UI should only be visible if all the conditions below are satified.
     */
    get isCloudProjectsVisible() {
        return this.isCloudProjectsEnabled && !MainStore["mainStore"].user.cloudDocsDisabled && !MainStore["mainStore"].user.isFRL;
    }
    /**
     * Checks if "Shared with you" features should be loaded.
     */
    get isSharedWithYouEnabled() {
        return this.isCDOFeatureEnabled('InviteIn') && !MainStore["mainStore"].user.isFRL && !MainStore["mainStore"].user.cloudDocsDisabled;
    }
    /**
     * Enable newCommand N
     */
    get isNewCmdNSupported() {
        return true;
    }
    /**
     * Enable search in homescreen
     */
    get isSearchSupported() {
        return true;
    }
    get vmStatus() {
        return this._vmStatus;
    }
    ////////////////////////////////////////////////////////////////////
    // Life-cycle methods
    ///////////////////////////////////////////////////////////////////
    /**
     * Initialize the observables available
     * from the host app. Good place to add event listeners.
     */
    async init() {
        await super.init();
        this._isBackButtonVisible = false;
        this._recentFiles = await this.getRecentFiles();
        this._logger.log(`PS: Recent files provided. No. of items = ${this._recentFiles.length}`);
        // @ts-ignore
        MainStore["mainStore"].recentFilesStore.setMaxAllowedDocuments(await this.getMaxAllowedDocuments());
        if (window.cdoHost.getServiceCode && typeof window.cdoHost.getServiceCode === 'function') {
            MainStore["mainStore"].user.setServiceCode(window.cdoHost.getServiceCode());
        }
    }
    /**
     * Initialize the observables that can be delayed
     * and do not impact the initial rendering of start.
     */
    async lateLoad() {
        await super.lateLoad();
        // Listen for PS app events
        this.photoshopAction.addNotificationListener([
            {
                event: 'homeScreenVisibilityChanged',
                universal: true,
            },
            {
                event: 'MRUFileListChanged',
                universal: true,
            },
            {
                event: 'VMStatusChanged',
                universal: true,
            },
        ], async (event, description) => {
            switch (event) {
                case 'homeScreenVisibilityChanged':
                    if (description.visible === this._isHomeScreenVisible) {
                        break;
                    }
                    if (description.visible) {
                        RefreshProjectsController["b" /* default */].refreshContent();
                    }
                    this._isHomeScreenVisible = description.visible;
                    this._isHomeScreenVisible && analytics["a" /* default */].logSubscribedRenderedEvents();
                    this._isBackButtonVisible = await this.checkIfBackButtonIsVisible();
                    this._logger.log(`PS: Home screen visibility changed to ${this._isHomeScreenVisible ? '' : 'in'}visible with${this.isBackButtonVisible ? '' : 'out'} back button.`);
                    break;
                case 'MRUFileListChanged':
                    MainStore["mainStore"].recentFilesStore.setMaxAllowedDocuments(await this.getMaxAllowedDocuments());
                    if (description.reset) {
                        MainStore["mainStore"].recentFilesStore.prefs.resetRecents();
                    }
                    this._recentFiles = await this.getRecentFiles();
                    this._logger.log(`PS: Recent list changed. No of items = ${this._recentFiles.length}`);
                    break;
                case 'VMStatusChanged':
                    if (description.additionalVMStatusInfo) {
                        try {
                            this._additionalVMStatusInfo = JSON.parse(description.additionalVMStatusInfo);
                            this._logger.log('PS: VM Status Information = ', this._additionalVMStatusInfo);
                            const { contentLocalised, contentEnglish, ctaTextEnglish, ctaTextLocalised, ctaUrl, ackFailureStr, ackSuccessStr, } = this._additionalVMStatusInfo;
                            if ((!contentLocalised && !contentEnglish) ||
                                (!ctaTextLocalised && !ctaTextEnglish) ||
                                !ctaUrl) {
                                this.sendGenuineBannerMessage(ackFailureStr);
                            }
                            else {
                                this.sendGenuineBannerMessage(ackSuccessStr);
                            }
                            MainStore["mainStore"].setGenuine(false);
                            MainStore["mainStore"].setNonGenuineContent(this._additionalVMStatusInfo);
                        }
                        catch (e) {
                            this._logger.error(`PS: VM Status Information ${e}`);
                            this._logger.log(`PS: VM Status description received: ${description}`);
                        }
                    }
                    break;
            }
        });
        // Using IFFE for invoking methods in parallel.
        await Promise.all([
            (async () => {
                this._isBackButtonVisible = await this.checkIfBackButtonIsVisible();
            })(),
            (async () => {
                // Get the current home screen visibility.
                const target = { _ref: [{ _property: 'homeScreenVisibility' }, { _ref: 'application' }] };
                const command = { _obj: 'get', _target: target };
                const visibility = await this.photoshopAction.batchPlay([command], {});
                this._isHomeScreenVisible = visibility[0].homeScreenVisibility;
                this._isHomeScreenVisible && analytics["a" /* default */].logSubscribedRenderedEvents(true);
                this._logger.log(`PS: Home screen visibility set to ${this._isHomeScreenVisible ? '' : 'in'}visible with${this.isBackButtonVisible ? '' : 'out'} back button.`);
            })(),
            (async () => {
                this._vmStatus = await this.getVmStatus();
                await Sophia["a" /* default */].fetch();
            })(),
        ]);
    }
    ////////////////////////////////////////////////////////////////////
    // Fetching data from the product
    ///////////////////////////////////////////////////////////////////
    /**
     * Sends an event to the product to record the time to interactive
     * ready for the product.
     */
    async reportPerformance() {
        await window.cdoHost.reportCloudDocumentsReady();
    }
    /**
     * Sends an event to the product to inform that the home screen is read
     * to be used/interacted with.
     */
    async reportInteractiveReady() {
        await window.cdoHost.reportInteractiveReady();
    }
    /**
     * Returns the guid of the application's session for tracking purposes
     */
    async getSessionId() {
        const target = { _ref: [{ _property: '$wlcm' }, { _ref: 'application' }] };
        const command = { _obj: 'get', _target: target };
        const data = await this.photoshopAction.batchPlay([command], {});
        return data[0]['$wlcm'].sessionID;
    }
    async hideHomeScreen() {
        const target = { _ref: [{ _ref: 'application' }] };
        const command = { _obj: 'hideHomeScreen', _target: target };
        return await this.photoshopAction.batchPlay([command], {});
    }
    ////////////////////////////////////////////////////////////////////
    // Actions on the product
    ///////////////////////////////////////////////////////////////////
    /**
     * Triggers a new document dialog.
     */
    async launchNewDocumentDialog() {
        this.photoshopCore.performMenuCommand({ commandID: 10 });
    }
    /**
     * Launch Search modal
     */
    launchSearch() {
        // TODO we could add logic to check feature flag use Cmd+F window or our Search panel
        // Cmd+F dialog: this.photoshopCore.performMenuCommand({ commandID: 5957 });
        MainStore["mainStore"].searchStore.setShowSearch(true);
    }
    /**
     * Open a local document from disk
     * @param path Path to the document on disk
     * @param title Title of the document (used to avoid prefix on LR photos)
     * @param skipMRU Skips MRU list after opening
     * @param template Determines if we should force open as template behavior even if we don't have a template file type for some reason
     * @param smartObject Open as smart object
     */
    async openLocalDocument({ path, title, skipMRU = false, template = false, smartObject = false, runWithPriority = false, }) {
        const command = {
            descriptor: {
                _obj: 'open',
                null: { _path: path },
                template,
                method: 'ccx.start open.dialog ACR',
                title,
                overrideOpen: true,
                forceMRU: !skipMRU,
                failOnMissingFile: true,
                smartObject,
                ...(runWithPriority
                    ? {
                        eventLevel: 1,
                        timeOut: 1,
                    }
                    : {}),
            },
            options: { dialogOptions: 'display', suppressPlayLevelIncrease: true },
        };
        const result = await this.photoshopAction.batchPlay([command], { propagateErrorToDefaultHandler: true }, (err, descriptors, errors) => {
            // Note: err would be the proper check here but the current implementation only provides descriptors.message error scenario
            if (descriptors && descriptors.message) {
                const errorMessage = i18n["a" /* default */].getLocalizedString('error_opening_missing_file');
                this.photoshopCore.showAlert({
                    message: errorMessage,
                });
                return false;
            }
            return true;
        });
        return result.length && result[0];
    }
    /**
     * Open multiple local documents from disk
     * @param paths Paths to the documents on disk
     * @param skipMRU Skips MRU list after opening
     * @param template Determines if we should force open as template behavior even if we don't have a template file type for some reason
     * @param smartObject Open as smart objects
     * @returns an array containing details about the images that were opened
     */
    async openMultipleLocalDocuments({ paths, skipMRU = false, template = false, smartObject = false, runWithPriority = false, fileOpenContext = null, }) {
        var _a;
        const command = {
            descriptor: {
                _obj: 'open',
                null: paths,
                template,
                method: 'ccx.start open.dialog ACR',
                overrideOpen: true,
                forceMRU: !skipMRU,
                failOnMissingFile: true,
                smartObject,
                fileOpenContext,
                ...(runWithPriority
                    ? {
                        eventLevel: 1,
                        timeOut: 1,
                    }
                    : {}),
            },
            options: {
                dialogOptions: 'display',
                suppressPlayLevelIncrease: true,
                resultType: 'alwaysList',
            },
        };
        const results = await this.photoshopAction.batchPlay([command], { propagateErrorToDefaultHandler: true }, (err, descriptors, errors) => {
            // Note: err would be the proper check here but the current implementation only provides descriptors.message error scenario
            if (descriptors && descriptors.message) {
                const errorMessage = i18n["a" /* default */].getLocalizedString('error_opening_missing_file');
                this.photoshopCore.showAlert({
                    message: errorMessage,
                });
                return false;
            }
            return true;
        });
        return (_a = results === null || results === void 0 ? void 0 : results[0]) === null || _a === void 0 ? void 0 : _a.list;
    }
    async getVmStatus() {
        let availableValue = 0xffff;
        const setTimeoutAsync = time => new Promise(resolve => setTimeout(resolve, time));
        let count = 0;
        do {
            const target = {
                _ref: [
                    {
                        _property: 'VMStatus',
                    },
                    {
                        _ref: 'application',
                    },
                ],
            };
            const command = {
                _obj: 'get',
                _target: target,
            };
            const vmStatus = await this.photoshopAction.batchPlay([command], {});
            availableValue = vmStatus[0].available;
            if (!(availableValue & 0x0100))
                return vmStatus[0].available;
            await setTimeoutAsync(100);
        } while (++count < 1000); //Up to 100 seconds of retries.
        return availableValue;
    }
    /**
     * Open a document from disk with XMP Data.
     *
     * @param path Path of the document on disk
     * @param title Title of document since LR importer prefixes asset ID
     * @param xmpData The XMP data
     * @param orientation The orientation
     * @param smartObject Open as smart object
     * @param runWithPriority Execute with eventLevel: 1, timeout: 1 as per Jesper's recommendation here: https://jira.corp.adobe.com/browse/IAW-8387?focusedCommentId=21646932&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-21646932
     */
    async openPathWithXMP(path, title, xmpData, orientation, smartObject = false, runWithPriority = false, localXMP = false) {
        const descriptor = {
            _obj: 'open',
            null: { _path: path },
            overrideOpen: true,
            forceRecording: false,
            delayAutoVacuumHack: true,
            title,
            method: 'ccx.start open.dialog ACR',
            smartObject,
        };
        if (xmpData || localXMP) {
            descriptor['as'] = {
                _obj: 'Adobe Camera Raw',
                ...(!localXMP && { $XMPp: xmpData }),
            };
        }
        const command = {
            descriptor: descriptor,
            options: { dialogOptions: 'display' },
        };
        let result = [];
        try {
            // batchPlay will throw if open action fails for any reason
            result = await this.photoshopAction.batchPlay([command], runWithPriority
                ? {
                    eventLevel: 1,
                    timeOut: 1,
                }
                : {});
        }
        catch (_a) {
            return false;
        }
        return result.length && result[0];
    }
    /**
     * Releases a file reference
     */
    async releaseFileReference(newTitle, id) {
        const target = { _ref: [{ _ref: 'document', _id: id }, { _ref: 'application' }] };
        const command = { _obj: 'releaseFileReference', _target: target, title: newTitle };
        return await this.photoshopAction.batchPlay([command], {});
    }
    /**
     * Triggers the open document dialog.
     */
    async launchOpenDocumentDialog() {
        this.photoshopCore.performMenuCommand({ commandID: 20, postEvent: true });
    }
    /**
     * Launch preferences dialog in the app to enable cloud documents
     */
    async launchPreferences() {
        await this.photoshopCore.performMenuCommand({ commandID: 2327 });
    }
    /**
     * Enables preference
     * @param name Name of the preference action to send
     */
    async enablePreference(name) {
        return await this.photoshopAction.batchPlay([{ _obj: name, _target: { _ref: 'application' } }], {});
    }
    /**
     * Launches an in-app tutorial
     * @param tutorialId Id of the tutorial to launch
     */
    async launchTutorial(aemID, containerAnalytics) {
        const containerAnalyticsData = containerAnalytics
            ? containerAnalytics
            : Sophia["a" /* default */].getAnalyticsData(constants["k" /* default */].SURFACES.LEARN);
        const command = DeeplinkLaunch["c" /* default */].generateDeeplinkSimpleCommand(aemID, containerAnalyticsData);
        return this.openUnifiedPanelDeepLink(command);
    }
    /**
     * Launches a tutorial with Deeplink
     * @param tutorial Data of the tutorial to launch
     * @param type Tutorial type
     * @param containerAnalytics Tutorial Analytics
     */
    async launchDiscoverPanelWithDeeplink(tutorial, type, containerAnalytics) {
        var _a;
        const containerAnalyticsData = containerAnalytics
            ? containerAnalytics
            : Sophia["a" /* default */].getAnalyticsData(constants["k" /* default */].SURFACES.LEARN);
        const containerAnalyticsParams = (_a = containerAnalytics === null || containerAnalytics === void 0 ? void 0 : containerAnalytics.eventData) === null || _a === void 0 ? void 0 : _a.containerAnalyticsParams;
        const variationId = containerAnalyticsParams
            ? containerAnalyticsParams.variationId
            : containerAnalyticsData === null || containerAnalyticsData === void 0 ? void 0 : containerAnalyticsData.variationId;
        const campaignId = containerAnalyticsParams
            ? containerAnalyticsParams.campaignId
            : containerAnalyticsData === null || containerAnalyticsData === void 0 ? void 0 : containerAnalyticsData.campaignId;
        return DeeplinkLaunch["c" /* default */].launchDiscoverPanelWithDeeplink(tutorial, type, campaignId, variationId);
    }
    ///////////////////////////////////////////////////////////////////
    // CDO host wrapper methods
    ///////////////////////////////////////////////////////////////////
    /**
     * Get the IMS token from the host (dont use HS's one)
     */
    async fetchCDOToken(currentToken) {
        const token = await window.cdoHost.getUserAccessToken(currentToken);
        return token;
    }
    /**
     * Check CDO host if feature is enabled
     */
    isCDOFeatureEnabled(featureFlag) {
        return window.cdoHost.featureEnabled(featureFlag);
    }
    /**
     * Gets the list of recent files from the CDO host.
     */
    async getCDOLocalRecents() {
        return window.cdoHost.getLocalRecents();
    }
    /**
     * Returns the Application's cloud file extension name for the provided document type (i.e. 'PSDC')
     * An application may support multiple cloud document types.
     */
    getCloudExtensionName(document) {
        return 'PSDC';
    }
    /**
     * Provide CDO configuration settings for host application
     */
    get CDOProductData() {
        var _a, _b;
        const productName = this.name || 'Photoshop';
        const hostFeatureFlags = ((_b = (_a = window.cdoHost) === null || _a === void 0 ? void 0 : _a.getCdoFeatureFlags) === null || _b === void 0 ? void 0 : _b.call(_a)) || {};
        const cdoFeatureFlags = {
            ...DEFAULT_CDO_FEATURE_FLAGS,
            // the host FFs have higher priority and should override the defaults
            ...hostFeatureFlags,
            // use the visible flag because it also checks for FRL and geo-blocked users
            enableProjects: this.isCloudProjectsVisible,
        };
        return {
            productId: this.id,
            allowedToSendAnalyticsEvents: window.cdoHost.allowedToSendAnalyticsEvents,
            dcxId: window.cdoHost.dcxAppId,
            productVersion: this.version,
            productBuildNumber: this.buildNumber,
            productLocation: 'com.adobe.ccx.start',
            productName: productName,
            platform: window.cdoHost.platform,
            documentFilter: window.cdoHost.documentFilter,
            apiKey: this.cdoApiKey,
            featureFlags: cdoFeatureFlags,
            sessionGuid: MainStore["mainStore"].prefs.sessionGUID,
            theme: ccx_cdo["x" /* Themes */].darkest,
            uiLocale: window.cdoHost.locale || 'en_US',
            analyticsProjectKey: window.cdoHost.analyticsProjectKey,
            platformVersion: CommonUtils["a" /* UXPHelpers */].osVersion,
            onboardingHelpJumpToken: window.cdoHost.onboardingHelpJumpToken,
            linkableTypes: window.cdoHost.linkableTypes,
            embeddableTypes: window.cdoHost.embeddableTypes,
        };
    }
    /**
     * CDO op handler for pre/post unpin action
     */
    async cdoBeforeUnpin(storageUrlArray) {
        var _a, _b;
        return (_b = (_a = window.cdoHost).beforeUnpin) === null || _b === void 0 ? void 0 : _b.call(_a, storageUrlArray);
    }
    async cdoAfterUnpin(storageUrlArray) {
        var _a, _b;
        return (_b = (_a = window.cdoHost).afterUnpin) === null || _b === void 0 ? void 0 : _b.call(_a, storageUrlArray);
    }
    /**
     * CDO op handler for pre/post delete action
     */
    async cdoBeforeDelete(storageUrlArray) {
        var _a, _b;
        return (_b = (_a = window.cdoHost).beforeDelete) === null || _b === void 0 ? void 0 : _b.call(_a, storageUrlArray);
    }
    async cdoAfterDelete(storageUrlArray) {
        var _a, _b;
        return (_b = (_a = window.cdoHost).afterDelete) === null || _b === void 0 ? void 0 : _b.call(_a, storageUrlArray);
    }
    /**
     * CDO op handler for pre/post permanent delete action
     */
    async cdoBeforePermanentDelete(storageUrlArray) {
        var _a, _b;
        return (_b = (_a = window.cdoHost).beforePermanentDelete) === null || _b === void 0 ? void 0 : _b.call(_a, storageUrlArray);
    }
    async cdoAfterPermanentDelete(storageUrlArray) {
        var _a, _b;
        return (_b = (_a = window.cdoHost).afterPermanentDelete) === null || _b === void 0 ? void 0 : _b.call(_a, storageUrlArray);
    }
    /**
     * CDO op handler for pre/post restore action
     */
    async cdoBeforeRestore(storageUrlArray) {
        var _a, _b;
        return (_b = (_a = window.cdoHost).beforeRestore) === null || _b === void 0 ? void 0 : _b.call(_a, storageUrlArray);
    }
    async cdoAfterRestore(storageUrlArray) {
        var _a, _b;
        return (_b = (_a = window.cdoHost).afterRestore) === null || _b === void 0 ? void 0 : _b.call(_a, storageUrlArray);
    }
    /**
     * CDO op handler for pre/post rename action
     */
    async cdoBeforeRename(storageUrlArray) {
        var _a, _b;
        return (_b = (_a = window.cdoHost).beforeRename) === null || _b === void 0 ? void 0 : _b.call(_a, storageUrlArray);
    }
    async cdoAfterRename(storageUrlArray) {
        var _a, _b;
        return (_b = (_a = window.cdoHost).afterRename) === null || _b === void 0 ? void 0 : _b.call(_a, storageUrlArray);
    }
    /**
     * CDO op handler for pre/post rename action
     */
    async cdoBeforeMove(storageUrlArray) {
        var _a, _b;
        return (_b = (_a = window.cdoHost).beforeMove) === null || _b === void 0 ? void 0 : _b.call(_a, storageUrlArray);
    }
    async cdoAfterMove(storageUrlArray) {
        var _a, _b;
        return (_b = (_a = window.cdoHost).afterMove) === null || _b === void 0 ? void 0 : _b.call(_a, storageUrlArray);
    }
    /**
     * Returns the current logged in user's quota or
     * 1 if quota method via cdoHost is not available.
     *
     * @returns user's quota.
     */
    get userQuota() {
        var _a, _b, _c;
        return (_c = (_b = (_a = window === null || window === void 0 ? void 0 : window.cdoHost) === null || _a === void 0 ? void 0 : _a.getUserQuota) === null || _b === void 0 ? void 0 : _b.call(_a)) !== null && _c !== void 0 ? _c : 1;
    }
    async openNeuralFilterDeeplink(imagePath, imageTitle, nfJson) {
        const openAndApplyNFGalleryCommand = {
            descriptor: {
                NF_HOMESCREEN_DEEPLINK: 1,
                ...nfJson[0],
            },
            options: {
                dialogOptions: 'display',
            },
        };
        const status = await this.openLocalDocument({
            path: imagePath,
            title: imageTitle,
            skipMRU: true,
            template: false,
            smartObject: true,
            runWithPriority: true,
        });
        await this.releaseFileReference(imageTitle, status.documentID);
        this.photoshopAction.batchPlay([openAndApplyNFGalleryCommand], {}, () => { });
    }
    /**
     * Sends success / fail messages regarding NonGenuineBanner back
     * to host or tells the host to open the ctaURL
     * @param messageForApp
     */
    sendGenuineBannerMessage(messageForApp) {
        var _a, _b;
        (_b = (_a = window.cdoHost) === null || _a === void 0 ? void 0 : _a.handleActionFromHomescreen) === null || _b === void 0 ? void 0 : _b.call(_a, messageForApp);
    }
    ////////////////////////////////////////////////////////////////////
    // Support methods.
    ///////////////////////////////////////////////////////////////////
    /**
     * Utility method to provide the clamp on maximum allowed documents in the
     * recent list.
     */
    async getMaxAllowedDocuments() {
        const target = { _ref: [{ _property: 'fileSavePrefs' }, { _ref: 'application' }] };
        const command = { _obj: 'get', _target: target };
        const result = await this.photoshopAction.batchPlay([command], {});
        return result[0].fileSavePrefs.recentFiles;
    }
    async getRawRecentFiles() {
        const target = {
            _ref: [{ _property: 'recentFileEntries' }, { _ref: 'application' }],
        };
        const command = { _obj: 'get', _target: target, version: 2 };
        const recents = await this.photoshopAction.batchPlay([command], {});
        const files = recents[0].recentFileEntries || [];
        return {
            files,
            userHasCloudDoc: !!recents[0].userHasCloudDoc,
        };
    }
    /**
     * Gets the recent files to sync the this.recentFiles property
     */
    async getRecentFiles() {
        const { files, userHasCloudDoc } = await this.getRawRecentFiles();
        this._userHasCloudDoc = userHasCloudDoc;
        const newList = [];
        await Promise.all(files.map(async (item, index) => {
            const isCloudFile = item.isCloudDoc;
            let title;
            let id;
            let cloudUri;
            let localUri;
            let path;
            let assetRef;
            let document;
            let assetRefObj;
            assetRef = item.assetRef;
            if (isCloudFile) {
                assetRefObj = item.assetRef ? JSON.parse(item.assetRef) : {};
                id = item.assetRef;
                title = item.titleName;
                cloudUri = assetRefObj && assetRefObj.cloud_id ? assetRefObj.cloud_id : '';
                localUri = '';
                path = assetRefObj && assetRefObj.path ? assetRefObj.path : '';
            }
            else {
                id = item.path;
                title = item && item.path && item.path.replace(/^.*[\\\/]/, '');
                cloudUri = '';
                localUri = item.path;
                path = item.path;
            }
            // Photoshop reports dates in seconds, which leads to sorting discrepancies when multiple files are opened at once
            // Here, we fudge the timestamps a little bit to ensure that the "Sort by Last Opened" order always matches
            // what's shown in the Photoshop "Open Recent" menu.
            const dateLastOpened = new Date(item.last * 1000 - index);
            document = ccx_cdo["l" /* Document */].create({
                id: id,
                externalData: { isCloudDoc: isCloudFile, canOpen: isCloudFile ? item.canOpen : true },
                path: path || '',
                cloudUri: cloudUri,
                localUri: localUri,
                title: title,
                assetName: '',
                accessDate: dateLastOpened,
                modifiedDate: dateLastOpened,
                repoModifiedDate: dateLastOpened,
                createDate: dateLastOpened,
                recoveredDate: '',
                hasSize: false,
                isCached: !!item.isCached,
                isConflicted: !!item.isConflicted,
                isUserPinned: !!item.isUserPinned,
                size: item.size,
                renditionTemplate: '',
                rendition: item.thumbnail || (item.thumbnailURI ? 'file://' + item.thumbnailURI : ''),
                type: 'local',
                assetRef,
            });
            document && newList.push(document);
        }));
        this.convertRenditionsToBlobURLs(newList);
        return newList;
    }
    /**
     * Checks if the back button is visible.
     */
    async checkIfBackButtonIsVisible() {
        const target = { _ref: [{ _property: 'numberOfDocuments' }, { _ref: 'application' }] };
        const command = { _obj: 'get', _target: target };
        const response = await this.photoshopAction.batchPlay([command], {});
        return response[0].numberOfDocuments > 0;
    }
    async getOpenCloudDocuments() {
        return window.cdoHost.getOpenCloudDocuments();
    }
    /**
     * Unified Panel feature flags
     */
    async getUnifiedPanelFeatureFlags() {
        const isUnifiedPanelEnabled = await this.checkIfUnifiedPanelEnabled();
        return {
            isDeepLinkingEnabled: isUnifiedPanelEnabled,
        };
    }
    async checkIfUnifiedPanelEnabled() {
        return await this.isPSFeatureEnabled('UXPLearnAndSearch');
    }
    /**
     * check if a PS feature is enabled or not
     * copied from https://git.corp.adobe.com/torq/appsdk/pull/104
     *    true: enabled
     *    false: disabled
     * @param feature string feature name
     * @returns boolean
     */
    async isPSFeatureEnabled(feature) {
        const desc = {
            _obj: 'featureInfo',
            _target: { _ref: 'application' },
            command: 'getFeatureActive',
            feature,
        };
        const result = (await this.photoshopAction.batchPlay([desc], {}));
        return result[0].active;
    }
    /**
     * Send event to host to handle Unified Panel deeplink
     */
    async openUnifiedPanelDeepLink(deepLinkCommand) {
        try {
            await Object(VulcanAPI["a" /* vulcanAPI */])().dispatch(deepLinkCommand);
            this.hideHomeScreen();
        }
        catch (error) {
            this._logger.error(`Failed to start tutorial for ${deepLinkCommand}.`, error);
            return error;
        }
    }
    /**
     * Returns the host analytics project key
     */
    get analyticsProjectKey() {
        return window.cdoHost.analyticsProjectKey;
    }
    /**
     * Returns true if the environment is production, false if it's not or undefined if we can't determine the environment.
     *
     */
    isProductionEnv() {
        var _a, _b;
        return ((_a = window.cdoHost) === null || _a === void 0 ? void 0 : _a.environment) ? ((_b = window.cdoHost) === null || _b === void 0 ? void 0 : _b.environment) === this.PRODUCTION_TOKEN : undefined;
    }
}
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [])
], Photoshop_Photoshop.prototype, "isCloudProjectsVisible", null);
__decorate([
    Object(performance["b" /* Time */])('Photoshop Init'),
    __metadata("design:type", Function),
    __metadata("design:paramtypes", []),
    __metadata("design:returntype", Promise)
], Photoshop_Photoshop.prototype, "init", null);

// CONCATENATED MODULE: ./src/applications/Browser.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/


class Browser_Browser extends ApplicationBase["c" /* default */] {
    async init() {
        const response = await fetch('./placeholder/recents.json');
        const data = await response.json();
        this._recentFiles = data.map(item => ccx_cdo["l" /* Document */].create(item));
    }
    get id() {
        return 'PHXS';
    }
    /**
     * Application Name
     */
    get name() {
        return 'Browser';
    }
    /**
     * Additional product specific tabs to be shown to the end user.
     */
    get tabs() {
        return {
            ccphotos: {
                type: 'ccphotos',
                label: 'listview_ccphotos_tab_label',
            },
        };
    }
    /**
     * Application Version
     */
    get version() {
        return '0.0.1';
    }
    get language() {
        return 'en_US';
    }
    async isAnalyticsEnabled() {
        return true;
    }
}

// EXTERNAL MODULE: ./src/assets/presets/S_IlluMoreCircle_96.svg
var S_IlluMoreCircle_96 = __webpack_require__("2FJC");
var S_IlluMoreCircle_96_default = /*#__PURE__*/__webpack_require__.n(S_IlluMoreCircle_96);

// EXTERNAL MODULE: ./src/assets/presets/S_IlluPrintLetter_96.svg
var S_IlluPrintLetter_96 = __webpack_require__("UeGx");
var S_IlluPrintLetter_96_default = /*#__PURE__*/__webpack_require__.n(S_IlluPrintLetter_96);

// EXTERNAL MODULE: ./src/assets/presets/S_IlluPrintA4_96.svg
var S_IlluPrintA4_96 = __webpack_require__("iaGj");
var S_IlluPrintA4_96_default = /*#__PURE__*/__webpack_require__.n(S_IlluPrintA4_96);

// EXTERNAL MODULE: ./src/assets/presets/S_IlluWebCommon_96.svg
var S_IlluWebCommon_96 = __webpack_require__("YABZ");
var S_IlluWebCommon_96_default = /*#__PURE__*/__webpack_require__.n(S_IlluWebCommon_96);

// EXTERNAL MODULE: ./src/assets/presets/S_IlluArtAndIlluPostcard_96.svg
var S_IlluArtAndIlluPostcard_96 = __webpack_require__("EkPG");
var S_IlluArtAndIlluPostcard_96_default = /*#__PURE__*/__webpack_require__.n(S_IlluArtAndIlluPostcard_96);

// EXTERNAL MODULE: ./src/assets/presets/S_VideoHDTV1080_96.svg
var S_VideoHDTV1080_96 = __webpack_require__("CczM");
var S_VideoHDTV1080_96_default = /*#__PURE__*/__webpack_require__.n(S_VideoHDTV1080_96);

// CONCATENATED MODULE: ./src/applications/presets/IllustratorPresets.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2020 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/








/* harmony default export */ var IllustratorPresets = (locale => {
    const isCckLocale = ['ko_KR', 'zh_CN', 'zh_TW', 'ja_JP'].includes(locale);
    const a4 = {
        name: 'ILST_default_preset_name_a4',
        description: isCckLocale ? 'ILST_default_preset_description_a4_mm' : 'ILST_default_preset_description_a4',
        image: react_default.a.createElement(S_IlluPrintA4_96_default.a, null),
        presetType: 'Print',
        ctaEvent: constants["k" /* default */].CTA_EVENTS.PRESET,
        ctaData: {
            id: '',
            tip: isCckLocale ? 'ILST_default_preset_tip_a4_mm' : 'ILST_default_preset_tip_a4',
            mode: 'CMYK',
            size: 0,
            title: 'A4',
            units: isCckLocale ? 'millimetersUnit' : 'pointsUnit',
            width: 595.276,
            height: 841.89,
            isPreset: 'true',
            previews: [],
            mime_type: 'image/illustrator',
            resolution: 300,
            description: '595.28 x 841.89 pt',
            numArtboards: 1,
            price_prompt: '',
            thumbnail_url: 'SP_PrintDoc.png',
            appSpecificKey: {
                ppi: 72,
                mode: 'CMYK',
                width: 612,
                height: 792,
                isATPG: 'false',
                lockBleed: true,
                customFile: '',
                gridColor1: [65535, 65535, 65535],
                gridColor2: [52428, 52428, 52428],
                bleedOffset: [0, 0, 0, 0],
                previewMode: 128,
                documentType: 1,
                numArtboards: 1,
                artboardLayout: 0,
                artboardSpacing: 20,
                pixelAspectRatio: 1,
                transparencyGrid: false,
                artboardRowsOrCols: 1,
                rasterEffectSettings: 300,
                isArtboardLayoutLeftToRight: 'true',
            },
            artboardSpacing: 20,
            template_category: 'print',
        },
    };
    const letter = {
        name: 'ILST_default_preset_name_letter',
        description: 'ILST_default_preset_description_letter',
        image: react_default.a.createElement(S_IlluPrintLetter_96_default.a, null),
        presetType: 'Print',
        ctaEvent: constants["k" /* default */].CTA_EVENTS.PRESET,
        ctaData: {
            id: '',
            tip: 'Start a new Letter document - 612 x 792 pt',
            mode: 'CMYK',
            size: 0,
            title: 'Letter',
            units: 'pointsUnit',
            width: 612,
            height: 792,
            isPreset: 'true',
            previews: [],
            mime_type: 'image/illustrator',
            resolution: 300,
            description: '612 x 792 pt',
            numArtboards: 1,
            price_prompt: '',
            thumbnail_url: 'SP_PrintDoc.png',
            appSpecificKey: {
                ppi: 72,
                mode: 'CMYK',
                width: 612,
                height: 792,
                isATPG: 'false',
                lockBleed: true,
                customFile: '',
                gridColor1: [65535, 65535, 65535],
                gridColor2: [52428, 52428, 52428],
                bleedOffset: [0, 0, 0, 0],
                previewMode: 2,
                documentType: 1,
                numArtboards: 1,
                artboardLayout: 0,
                artboardSpacing: 20,
                pixelAspectRatio: 1,
                transparencyGrid: false,
                artboardRowsOrCols: 1,
                rasterEffectSettings: 300,
                isArtboardLayoutLeftToRight: 'true',
            },
            artboardSpacing: 20,
            template_category: 'print',
        },
    };
    const hagaki = {
        name: 'ILST_default_preset_name_hagaki',
        description: 'ILST_default_preset_description_hagaki',
        image: react_default.a.createElement(S_IlluArtAndIlluPostcard_96_default.a, null),
        presetType: 'Art & Illustration',
        ctaEvent: constants["k" /* default */].CTA_EVENTS.PRESET,
        ctaData: {
            id: '',
            tip: 'æ–°ã—ã„ ãƒã‚¹ãƒˆã‚«ãƒ¼ãƒ‰ ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã‚’é–‹å§‹ - 100 x 148 mm',
            mode: 'CMYK',
            size: 0,
            title: 'ãƒã‚¹ãƒˆã‚«ãƒ¼ãƒ‰',
            units: 'millimetersUnit',
            width: 283.4645690917968,
            height: 419.5275573730468,
            isPreset: 'true',
            previews: [],
            mime_type: 'image/illustrator',
            resolution: 72,
            description: '100 x 148 mm',
            numArtboards: 1,
            price_prompt: '',
            thumbnail_url: 'SP_PresetArt.png',
            appSpecificKey: {
                ppi: 72,
                mode: 'CMYK',
                width: 338.66666666666663,
                height: 197.55555555555557,
                isATPG: 'false',
                lockBleed: true,
                customFile: '',
                gridColor1: [65535, 65535, 65535],
                gridColor2: [52428, 52428, 52428],
                bleedOffset: [0, 0, 0, 0],
                maxDocScale: 10,
                previewMode: 2,
                documentType: 5,
                numArtboards: 1,
                artboardLayout: 0,
                maxBleedPixels: 1728,
                minBleedPixels: 0,
                artboardSpacing: 20,
                pixelAspectRatio: 1,
                transparencyGrid: false,
                artboardRowsOrCols: 1,
                rasterEffectSettings: 72,
                isArtboardLayoutLeftToRight: 'true',
            },
            artboardSpacing: 20,
            template_category: 'art',
        },
    };
    const postcard = {
        name: 'ILST_default_preset_name_postcard',
        description: 'ILST_default_preset_description_postcard',
        image: react_default.a.createElement(S_IlluArtAndIlluPostcard_96_default.a, null),
        presetType: 'Art & Illustration',
        ctaEvent: constants["k" /* default */].CTA_EVENTS.PRESET,
        ctaData: {
            id: '',
            tip: 'Start a new Postcard document - 288 x 560 pt',
            mode: isCckLocale ? 'CMYK' : 'RGB',
            size: 0,
            title: 'Postcard',
            units: 'pointsUnit',
            width: 288,
            height: 560,
            isPreset: 'true',
            previews: [],
            mime_type: 'image/illustrator',
            resolution: 72,
            description: '288 x 560 pt',
            numArtboards: 1,
            price_prompt: '',
            thumbnail_url: 'SP_PresetArt.png',
            appSpecificKey: {
                ppi: 72,
                mode: 'RGB',
                width: 960,
                height: 560,
                isATPG: 'false',
                lockBleed: true,
                customFile: '',
                gridColor1: [65535, 65535, 65535],
                gridColor2: [52428, 52428, 52428],
                bleedOffset: [0, 0, 0, 0],
                previewMode: 2,
                documentType: 5,
                numArtboards: 1,
                artboardLayout: 0,
                artboardSpacing: 20,
                pixelAspectRatio: 1,
                transparencyGrid: false,
                artboardRowsOrCols: 1,
                rasterEffectSettings: 72,
                isArtboardLayoutLeftToRight: 'true',
            },
            artboardSpacing: 20,
            template_category: 'art',
        },
    };
    const firstPreset = locale === 'en_US' ? letter : a4;
    const secondPreset = locale === 'ja_JP' ? hagaki : postcard;
    return [
        firstPreset,
        secondPreset,
        {
            name: 'ILST_default_preset_name_common',
            description: 'ILST_default_preset_description_common',
            image: react_default.a.createElement(S_IlluWebCommon_96_default.a, null),
            presetType: 'Web',
            ctaEvent: constants["k" /* default */].CTA_EVENTS.PRESET,
            ctaData: {
                id: '',
                tip: 'Start a new Common document - 1366 x 768 px',
                mode: 'RGB',
                size: 0,
                title: 'Common',
                units: 'pixelsUnit',
                width: 1366,
                height: 768,
                isPreset: 'true',
                previews: [],
                mime_type: 'image/illustrator',
                resolution: 72,
                description: '1366 x 768 px',
                numArtboards: 1,
                price_prompt: '',
                thumbnail_url: 'SP_PresetWebDoc.png',
                appSpecificKey: {
                    ppi: 72,
                    mode: 'RGB',
                    width: 960,
                    height: 560,
                    isATPG: 'false',
                    lockBleed: true,
                    customFile: '',
                    gridColor1: [65535, 65535, 65535],
                    gridColor2: [52428, 52428, 52428],
                    bleedOffset: [0, 0, 0, 0],
                    previewMode: 2,
                    documentType: 2,
                    numArtboards: 1,
                    artboardLayout: 0,
                    artboardSpacing: 20,
                    pixelAspectRatio: 1,
                    transparencyGrid: false,
                    artboardRowsOrCols: 1,
                    rasterEffectSettings: 72,
                    isArtboardLayoutLeftToRight: 'true',
                },
                artboardSpacing: 20,
                template_category: 'web',
            },
        },
        {
            name: 'ILST_default_preset_name_hdtv',
            description: 'ILST_default_preset_description_hdtv',
            image: react_default.a.createElement(S_VideoHDTV1080_96_default.a, null),
            presetType: 'Film & Studio',
            ctaEvent: constants["k" /* default */].CTA_EVENTS.PRESET,
            ctaData: {
                id: '',
                tip: 'Start a new HDV/HDTV 1080 document - 1920 x 1080 px',
                mode: 'RGB',
                size: 0,
                title: 'HDV/HDTV 1080',
                units: 'pixelsUnit',
                width: 1920,
                height: 1080,
                isPreset: 'true',
                previews: [],
                mime_type: 'image/illustrator',
                resolution: 72,
                description: '1920 x 1080 px',
                numArtboards: 1,
                price_prompt: '',
                thumbnail_url: 'SP_PresetFilmVideo.png',
                appSpecificKey: {
                    ppi: 72,
                    mode: 'RGB',
                    width: 873,
                    height: 480,
                    isATPG: 'false',
                    lockBleed: true,
                    customFile: '',
                    gridColor1: [39321, 39321, 39321],
                    gridColor2: [26214, 26214, 26214],
                    bleedOffset: [0, 0, 0, 0],
                    previewMode: 2,
                    documentType: 3,
                    numArtboards: 1,
                    artboardLayout: 0,
                    artboardSpacing: 20,
                    pixelAspectRatio: 1.2121,
                    transparencyGrid: true,
                    artboardRowsOrCols: 1,
                    rasterEffectSettings: 72,
                    isArtboardLayoutLeftToRight: 'true',
                },
                artboardSpacing: 20,
                template_category: 'film',
            },
        },
        {
            name: 'ILST_default_preset_name_more',
            image: react_default.a.createElement(S_IlluMoreCircle_96_default.a, null),
            presetType: 'Custom',
            ctaEvent: constants["k" /* default */].CTA_EVENTS.PRESET,
            ctaData: {
                template_category: 'CmdN',
            },
        },
    ];
});

// CONCATENATED MODULE: ./src/applications/Illustrator.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var Illustrator_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;
};
var Illustrator_metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var Illustrator_a;



















const Illustrator_DEFAULT_CDO_FEATURE_FLAGS = {
    themingSupport: true,
    focusManagementEnabled: true,
    emptyViewLoggedOutMessage: true,
    enableCloudDocRename: true,
    enableCloudDocPinning: true,
    enableOnboarding: true,
    enableCloudDocMultiSelectOpen: true,
    enableCloudDocFolders: true,
    enableAssetRef: true,
    enableSAM: true,
    cdpTabs: true,
    enableFilter: true,
    refreshOnViewChange: true,
    showSWYCloudStatusIcon: (Illustrator_a = window.cdoHost) === null || Illustrator_a === void 0 ? void 0 : Illustrator_a.featureEnabled('showSWYCloudStatusIcon'),
};
class Illustrator_Illustrator extends ApplicationBase["c" /* default */] {
    ///////////////////////////////////////////////////////////////////
    // Static Overrides/Configuration
    ///////////////////////////////////////////////////////////////////
    constructor() {
        super();
        this._logger = Logger["a" /* default */].get('Illustrator');
        this.isTutorialsDeepLinkingEnabled = true;
    }
    /**
     * Checks if app has support to hide the home screen on pressing the escape key.
     */
    get hidesHomeScreenOnEscape() {
        return true;
    }
    /**
     * Additional product specific tabs to be shown to the end user.
     */
    get tabs() {
        if (!this.isCloudDocumentsEnabled) {
            return {};
        }
        const tabs = {
            cdo: {
                order: 1,
                type: constants["c" /* CDO_TABS */].CDO,
                label: 'listview_cdo_tab_label',
                icon: react_default.a.createElement(DocumentOutline_default.a, null),
            },
            cdo_deleted: {
                order: 4,
                type: constants["c" /* CDO_TABS */].DELETED,
                label: 'listview_cdo_deleted_tab_label',
                icon: react_default.a.createElement(DeleteOutline_default.a, null),
            },
        };
        if (this.isSharedWithYouEnabled) {
            tabs[constants["c" /* CDO_TABS */].SHARED_WITH_YOU] = {
                order: 2,
                type: constants["c" /* CDO_TABS */].SHARED_WITH_YOU,
                label: 'listview_cdo_shared_with_you_tab_label',
                icon: react_default.a.createElement(UserGroup_default.a, null),
            };
        }
        if (this.isCloudProjectsVisible) {
            tabs['projects'] = {
                order: 3,
                type: 'projects',
                label: 'listview_projects_tab_label',
            };
        }
        return tabs;
    }
    /**
     *  Enable search in homescreen
     */
    get isSearchSupported() {
        return true;
    }
    /**
     * Checks if CDO features should be loaded.
     */
    get isCloudDocumentsEnabled() {
        var _a, _b;
        return (!!((_b = (_a = window.cdoHost) === null || _a === void 0 ? void 0 : _a.isCDOFeatureEnabled) === null || _b === void 0 ? void 0 : _b.call(_a)) &&
            !MainStore["mainStore"].user.isFRL &&
            !MainStore["mainStore"].user.cloudDocsDisabled);
    }
    /**
     * Check if CC Projects features should be loaded
     */
    get isCloudProjectsEnabled() {
        var _a, _b;
        return (_b = (_a = window.cdoHost) === null || _a === void 0 ? void 0 : _a.featureEnabled) === null || _b === void 0 ? void 0 : _b.call(_a, 'ccProjects');
    }
    /**
     * Check if CC Projects features should be visible. We need to separate the host FF check from the visibility check to optimize loading.
     * If the FF is on, the Projects code should load regardless of the other conditions. The UI should only be visible if all the conditions below are satified.
     */
    get isCloudProjectsVisible() {
        return this.isCloudProjectsEnabled && !MainStore["mainStore"].user.cloudDocsDisabled && !MainStore["mainStore"].user.isFRL;
    }
    /**
     * Checks if "Shared with you" features should be loaded.
     */
    get isSharedWithYouEnabled() {
        var _a, _b;
        return (!!((_b = (_a = window.cdoHost) === null || _a === void 0 ? void 0 : _a.isSharedWithYouFeatureEnabled) === null || _b === void 0 ? void 0 : _b.call(_a)) &&
            !MainStore["mainStore"].user.isFRL &&
            !MainStore["mainStore"].user.cloudDocsDisabled);
    }
    /**
     * Sends an event to the product to inform that the home screen is read
     * to be used/interacted with.
     */
    async reportInteractiveReady() {
        await window.cdoHost.reportInteractiveReady();
    }
    ///////////////////////////////////////////////////////////////////
    // TODO: APIs to be implemented an exposed from C++
    ///////////////////////////////////////////////////////////////////
    async init() {
        await super.init();
        this._isBackButtonVisible = false;
        Object(performance["a" /* LogPerformance */])(`Fetching Recent Files. Awaiting Response.`);
        const start = new Date();
        this._recentFiles = await this.getRecentFiles();
        Object(performance["a" /* LogPerformance */])(`Received Recent Files.`, start.toISOString());
        // @ts-ignore
        MainStore["mainStore"].recentFilesStore.setMaxAllowedDocuments(await this.getMaxAllowedDocuments());
        // Illustrator sends the event too early and the listener has to be initialised in the init function.
        window.cdoHost.on('VMStatusChanged', description => {
            if (description) {
                try {
                    this._additionalVMStatusInfo = JSON.parse(description);
                    this._logger.log('ILST: VM Status Information = ', this._additionalVMStatusInfo);
                    const { contentLocalised, contentEnglish, ctaTextEnglish, ctaTextLocalised, ctaUrl, ackFailureStr, ackSuccessStr, } = this._additionalVMStatusInfo;
                    if ((!contentLocalised && !contentEnglish) || (!ctaTextLocalised && !ctaTextEnglish) || !ctaUrl) {
                        this.sendGenuineBannerMessage(ackFailureStr);
                    }
                    else {
                        this.sendGenuineBannerMessage(ackSuccessStr);
                    }
                    MainStore["mainStore"].setGenuine(false);
                    MainStore["mainStore"].setNonGenuineContent(this._additionalVMStatusInfo);
                }
                catch (e) {
                    this._logger.error(`ILST: VM Status Information ${e}`);
                    this._logger.log(`ILST: VM Status description received: ${description}`);
                }
            }
        });
    }
    async lateLoad() {
        await super.lateLoad();
        let sharedStore;
        if (this.isCloudProjectsEnabled) {
            ({ sharedStore } = await __webpack_require__("BuQ2"));
        }
        // Add visibility listener
        window.cdoHost.on('homeScreenVisibilitychanged', this.updateHomeScreenVisibility.bind(this));
        window.cdoHost.on('MRUFileListChanged', async () => {
            /**
             * There are 2 separate functions for getting the recent files, because ccProjects needs them
             * raw, while Homescreen needs them modified for displaying the Recents section. getRawRecentFiles
             * will fetch the data from the host, while getRecentFiles will process that data for Homescreen use
             * if files are given as an argument. This workaround has been done in order to avoid IAW-10406
             */
            const { files, userHasCloudDoc } = await this.getRawRecentFiles();
            this._recentFiles = await this.getRecentFiles(files, userHasCloudDoc);
            this._logger.log(`ILST: Recent list changed from MRUFileListChanged. No of items = ${this._recentFiles.length}`);
            if (this.isCloudProjectsEnabled && (sharedStore === null || sharedStore === void 0 ? void 0 : sharedStore.status) !== 'loading' && (sharedStore === null || sharedStore === void 0 ? void 0 : sharedStore.status) !== 'pending') {
                this.notifyProjectsLastFile(files, sharedStore);
            }
        });
        await Promise.all([
            (async () => {
                this._isBackButtonVisible = await window.cdoHost.isAnyDocumentOpen();
            })(),
            (async () => {
                // Get the current home screen visibility.
                this._isHomeScreenVisible = await window.cdoHost.isHomeScreenVisible();
                this._isHomeScreenVisible && analytics["a" /* default */].logSubscribedRenderedEvents(true);
                this._logger.log(`AI: Home screen visibility set to ${this._isHomeScreenVisible ? '' : 'in'} visible with${this._isBackButtonVisible ? '' : 'out'} back button.`);
            })(),
        ]);
    }
    initializeProjectsHostBindings(sharedStore) {
        // Only MRUFileListChanged listener has been moved to lateLoad in order to try not to
        // break things. If hostFocusChanged causes problems, consider moving this to lateLoad also
        window.cdoHost.on('hostFocusChanged', async (active) => {
            if (active === true || active === 'true') {
                await sharedStore.refreshContent({ refreshTimeout: RefreshProjectsController["a" /* PROJECTS_REFRESH_TIMEOUT */] });
            }
        });
    }
    ///////////////////////////////////////////////////////////////////
    // Data Access
    ///////////////////////////////////////////////////////////////////
    async updateHomeScreenVisibility() {
        MainStore["mainStore"].recentFilesStore.setMaxAllowedDocuments(await this.getMaxAllowedDocuments());
        this._isHomeScreenVisible = await window.cdoHost.isHomeScreenVisible();
        this._isBackButtonVisible = await window.cdoHost.isAnyDocumentOpen();
        if (this._isHomeScreenVisible === true) {
            this._recentFiles = await this.getRecentFiles();
            RefreshProjectsController["b" /* default */].refreshContent();
            analytics["a" /* default */].logSubscribedRenderedEvents();
            this._logger.log(`ILST: Recent list changed. No of items = ${this._recentFiles.length}`);
        }
    }
    /**
     * Returns the Guid of the application's session for tracking purposes
     */
    async getSessionId() {
        const id = window.cdoHost.getSessionId();
        if (typeof id === 'string') {
            return Promise.resolve(id);
        }
        else {
            return await id;
        }
    }
    ///////////////////////////////////////////////////////////////////
    // Actions in the product
    ///////////////////////////////////////////////////////////////////
    /**
     * Hides the home screen from the user.
     */
    async hideHomeScreen() {
        window.cdoHost.hideHomeScreen();
    }
    /**
     * Triggers a new document dialog.
     */
    async launchNewDocumentDialog() {
        window.cdoHost && window.cdoHost.launchNewDocumentDialog && window.cdoHost.launchNewDocumentDialog();
    }
    /**
     * Enable newCommand N
     */
    get isNewCmdNSupported() {
        return true;
    }
    /**
     * Triggers the open document dialog.
     */
    async launchOpenDocumentDialog() {
        window.cdoHost.launchOpenDocumentDialog();
    }
    /**
     * Launch Search modal
     */
    launchSearch() {
        MainStore["mainStore"].searchStore.setShowSearch(true);
    }
    /**
     * Open a local document from disk
     * @param path Path to the document on disk
     * @param title Title of the document (unused in Illustrator)
     * @param template Determines if we should force open as template behavior even
     * if we don't have a template file type for some reason
     */
    async openLocalDocument({ path, template = false }) {
        window.cdoHost.openLocalDocument(path, template);
    }
    /**
     * 	Launch preferences dialog in the app to enable cloud documents
     */
    async launchPreferences() {
        await window.cdoHost.launchPreferences();
    }
    /**
     * Launches an in-app tutorial
     * @param tutorialId Id of the tutorial to launch
     */
    async launchTutorial(tutorialId, containerAnalytics) {
        const containerAnalyticsData = containerAnalytics
            ? containerAnalytics
            : Sophia["a" /* default */].getAnalyticsData(constants["k" /* default */].SURFACES.LEARN);
        const command = DeeplinkLaunch["c" /* default */].generateDeeplinkSimpleCommand(tutorialId, containerAnalyticsData);
        return this.openUnifiedPanelDeepLink(command);
    }
    /**
     * Launches a tutorial with Deeplink
     * @param data Data of the tutorial to launch
     * @param containerAnalytics Tutorial Analytics
     */
    async launchDiscoverPanelWithDeeplink(tutorial, type, containerAnalytics) {
        var _a;
        const containerAnalyticsData = containerAnalytics
            ? containerAnalytics
            : Sophia["a" /* default */].getAnalyticsData(constants["k" /* default */].SURFACES.LEARN);
        const containerAnalyticsParams = (_a = containerAnalytics === null || containerAnalytics === void 0 ? void 0 : containerAnalytics.eventData) === null || _a === void 0 ? void 0 : _a.containerAnalyticsParams;
        const variationId = containerAnalyticsParams
            ? containerAnalyticsParams.variationId
            : containerAnalyticsData === null || containerAnalyticsData === void 0 ? void 0 : containerAnalyticsData.variationId;
        const campaignId = containerAnalyticsParams
            ? containerAnalyticsParams.campaignId
            : containerAnalyticsData === null || containerAnalyticsData === void 0 ? void 0 : containerAnalyticsData.campaignId;
        return DeeplinkLaunch["c" /* default */].launchDiscoverPanelWithDeeplink(tutorial, type, campaignId, variationId);
    }
    /**
     * Send event to host to handle Unified Panel deeplink
     */
    async openUnifiedPanelDeepLink(deepLinkCommand) {
        try {
            await Object(VulcanAPI["a" /* vulcanAPI */])().dispatch(deepLinkCommand);
            window.cdoHost.hideHomeScreen();
        }
        catch (error) {
            this._logger.error(`Failed to start tutorial for ${'tutorialId'}.`, error);
        }
    }
    /**
     * Launches a preset (For the Illustrator Preset Component)
     * @param data Preset configuration
     */
    openPreset(data) {
        window.cdoHost.openPreset(JSON.stringify(data));
    }
    ///////////////////////////////////////////////////////////////////
    // CDO host wrapper methods
    ///////////////////////////////////////////////////////////////////
    /**
     * Returns the SAP ID of the product.
     */
    get id() {
        return 'ILST';
    }
    /**
     * Get the IMS token from the host (dont use HS's one)
     */
    async fetchCDOToken(currentToken) {
        // TODO: Illustrator will need to implement the async version on the host API...
        return window.cdoHost.getUserAccessTokenSync();
    }
    /**
     * Check CDO host if feature is enabled
     */
    isCDOFeatureEnabled(featureFlag) {
        return window.cdoHost.featureEnabled(featureFlag);
    }
    /**
     * Gets the list of recent files from the CDO host.
     */
    async getCDOLocalRecents() {
        return window.cdoHost.getLocalRecents();
    }
    /**
     * CDO op handler for pre/post unpin action
     */
    async cdoBeforeUnpin(storageUrlArray) {
        var _a, _b;
        // TODO: update to cdoHost.beforeUnpin once host app adds
        // a beforeUnpin callback on open documents
        // https://jira.corp.adobe.com/browse/AI-4239586
        return (_b = (_a = window.cdoHost).beforeDelete) === null || _b === void 0 ? void 0 : _b.call(_a, storageUrlArray);
    }
    async cdoAfterUnpin(storageUrlArray) {
        var _a, _b;
        // TODO: update to cdoHost.afterUnpin once host app adds
        // a afterUnpin callback on open documents
        // https://jira.corp.adobe.com/browse/AI-4239586
        return (_b = (_a = window.cdoHost).afterDelete) === null || _b === void 0 ? void 0 : _b.call(_a, storageUrlArray);
    }
    /**
     * CDO op handler for pre/post delete action
     */
    async cdoBeforeDelete(storageUrlArray) {
        var _a, _b;
        return (_b = (_a = window.cdoHost).beforeDelete) === null || _b === void 0 ? void 0 : _b.call(_a, storageUrlArray);
    }
    async cdoAfterDelete(storageUrlArray) {
        var _a, _b;
        return (_b = (_a = window.cdoHost).afterDelete) === null || _b === void 0 ? void 0 : _b.call(_a, storageUrlArray);
    }
    /**
     * CDO op handler for pre/post permanent delete action
     */
    async cdoBeforePermanentDelete(storageUrlArray) {
        var _a, _b;
        return (_b = (_a = window.cdoHost).beforePermanentDelete) === null || _b === void 0 ? void 0 : _b.call(_a, storageUrlArray);
    }
    async cdoAfterPermanentDelete(storageUrlArray) {
        var _a, _b;
        return (_b = (_a = window.cdoHost).afterPermanentDelete) === null || _b === void 0 ? void 0 : _b.call(_a, storageUrlArray);
    }
    /**
     * CDO op handler for pre/post restore action
     */
    async cdoBeforeRestore(storageUrlArray) {
        var _a, _b;
        return (_b = (_a = window.cdoHost).beforeRestore) === null || _b === void 0 ? void 0 : _b.call(_a, storageUrlArray);
    }
    async cdoAfterRestore(storageUrlArray) {
        var _a, _b;
        return (_b = (_a = window.cdoHost).afterRestore) === null || _b === void 0 ? void 0 : _b.call(_a, storageUrlArray);
    }
    /**
     * CDO op handler for pre/post rename action
     */
    async cdoBeforeRename(storageUrlArray) {
        var _a, _b;
        return (_b = (_a = window.cdoHost).beforeRename) === null || _b === void 0 ? void 0 : _b.call(_a, storageUrlArray);
    }
    async cdoAfterRename(storageUrlArray) {
        var _a, _b;
        return (_b = (_a = window.cdoHost).afterRename) === null || _b === void 0 ? void 0 : _b.call(_a, storageUrlArray);
    }
    /**
     * CDO op handler for pre/post rename action
     */
    async cdoBeforeMove(storageUrlArray) {
        var _a, _b;
        return (_b = (_a = window.cdoHost).beforeMove) === null || _b === void 0 ? void 0 : _b.call(_a, storageUrlArray);
    }
    async cdoAfterMove(storageUrlArray) {
        var _a, _b;
        return (_b = (_a = window.cdoHost).afterMove) === null || _b === void 0 ? void 0 : _b.call(_a, storageUrlArray);
    }
    /**
     * Returns the Application's cloud file extension name for the provided document type (i.e. 'PSDC')
     * An application may support multiple cloud document types.
     */
    getCloudExtensionName(document) {
        return 'AIC';
    }
    /**
     * Utility method to provide the clamp on maximum allowed documents in the
     * recent list.
     */
    async getMaxAllowedDocuments() {
        return window.cdoHost.getMaxAllowedDocuments();
    }
    async getRawRecentFiles() {
        const recentsString = window.cdoHost.getRecentFilesAsync
            ? await window.cdoHost.getRecentFilesAsync()
            : window.cdoHost.getRecentFiles();
        const recents = recentsString ? JSON.parse(recentsString) : { recentFileEntries: [] };
        // Previous versions of getRecentFiles() returned an stringified array. Newer
        // versions stringified dictionary with additional information.
        const files = (recents && recents.recentFileEntries) || recents || [];
        return {
            files,
            userHasCloudDoc: !!recents.userHasCloudDoc,
        };
    }
    /**
     * Gets the recent files to sync the this.recentFiles property
     */
    async getRecentFiles(files = null, userHasCloudDoc = false) {
        // if files are not provided as a parameter, fetch them from the host
        if (!files) {
            ({ files, userHasCloudDoc } = await this.getRawRecentFiles());
        }
        this._userHasCloudDoc = userHasCloudDoc;
        const newList = [];
        // Check to make sure document id's are not duplicated
        const idExists = {
        // [document.id] -> boolean
        };
        await Promise.all(files.map(async (item) => {
            var _a;
            const isCloudFile = item.isCloudDoc;
            let title;
            let id;
            let cloudUri;
            let localUri;
            let path;
            let stableUri;
            let assetRef;
            let assetRefObj;
            if (isCloudFile) {
                assetRefObj = JSON.parse(((_a = item.assetRef) === null || _a === void 0 ? void 0 : _a.trim()) || "{}");
                id = item.identifier;
                title = item.name;
                cloudUri = item.stableID;
                localUri = '';
                path = (assetRefObj === null || assetRefObj === void 0 ? void 0 : assetRefObj.path) || item.name;
                stableUri = item.stableID;
                assetRef = item.assetRef;
            }
            else {
                id = item.path;
                title = item && item.path && item.path.replace(/^.*[\\\/]/, '');
                cloudUri = '';
                localUri = item.path;
                path = item.path;
                stableUri = item.stableID;
                assetRef = item.assetRef;
            }
            // IAW-6916
            // Handle duplicate id/paths
            // If path already exist, skip it
            if (idExists[id]) {
                return;
            }
            idExists[id] = true;
            const dateLastOpened = new Date(item.lastOpened).getTime();
            const document = ccx_cdo["l" /* Document */].create({
                id: id,
                externalData: { isCloudDoc: isCloudFile, canOpen: isCloudFile ? item.canOpen : true },
                path: path || '',
                cloudUri,
                localUri,
                title,
                assetName: '',
                accessDate: dateLastOpened,
                modifiedDate: dateLastOpened,
                repoModifiedDate: dateLastOpened,
                createDate: dateLastOpened,
                recoveredDate: '',
                hasSize: false,
                isCached: !!item.isCached,
                isConflicted: !!item.isConflicted,
                isUserPinned: !!item.isUserPinned,
                size: `${item.size}`,
                renditionTemplate: '',
                rendition: item.thumb,
                type: 'local',
                stableUri,
                assetRef,
            });
            if (!isCloudFile) {
                // IAW-6741 network files contain a blank data URI.
                // we need to set to empty string '' so the defaultRendition image shows up
                if (CommonUtils["a" /* UXPHelpers */].isEmptyDataURIImage(document.rendition)) {
                    document.setRendition('');
                }
                // TODO re-enable if CDO provides dimmed or deleted UI
                // document.setDocState(isFileAvailableLocally ? DocumentState.active : DocumentState.deleted);
            }
            newList.push(document);
        }));
        this.convertRenditionsToBlobURLs(newList);
        return newList;
    }
    /**
     * Provide CDO configuration settings for host application
     */
    get CDOProductData() {
        var _a, _b;
        const productName = this.name || 'Illustrator';
        const hostFeatureFlags = ((_b = (_a = window.cdoHost) === null || _a === void 0 ? void 0 : _a.getCdoFeatureFlags) === null || _b === void 0 ? void 0 : _b.call(_a)) || {};
        const cdoFeatureFlags = {
            ...Illustrator_DEFAULT_CDO_FEATURE_FLAGS,
            // the host FFs have higher priority and should override the defaults
            ...hostFeatureFlags,
            // use the visible flag because it also checks for FRL and geo-blocked users
            enableProjects: this.isCloudProjectsVisible,
        };
        return {
            productId: this.id,
            dcxId: window.cdoHost.dcxAppId,
            productVersion: this.version,
            productName: productName,
            productLocation: 'com.adobe.ccx.start',
            platform: navigator.platform,
            documentFilter: window.cdoHost.documentFilter,
            apiKey: this.cdoApiKey,
            featureFlags: cdoFeatureFlags,
            sessionGuid: MainStore["mainStore"].prefs.sessionGUID,
            theme: ccx_cdo["x" /* Themes */].darkest,
            uiLocale: window.cdoHost.locale || 'en_US',
            analyticsProjectKey: window.cdoHost.analyticsProjectKey,
            platformVersion: CommonUtils["a" /* UXPHelpers */].osVersion,
            onboardingHelpJumpToken: window.cdoHost.onboardingHelpJumpToken,
            linkableTypes: window.cdoHost.linkableTypes,
            embeddableTypes: window.cdoHost.embeddableTypes,
        };
    }
    get presetData() {
        return IllustratorPresets(window.cdoHost.locale);
    }
    /**
     * Sends success / fail messages regarding NonGenuineBanner back
     * to host or tells the host to open the ctaURL
     * @param messageForApp
     */
    sendGenuineBannerMessage(messageForApp) {
        var _a, _b;
        (_b = (_a = window.cdoHost) === null || _a === void 0 ? void 0 : _a.handleActionFromHomescreen) === null || _b === void 0 ? void 0 : _b.call(_a, messageForApp);
    }
    /**
     * Returns the host analytics project key
     */
    get analyticsProjectKey() {
        return window.cdoHost.analyticsProjectKey;
    }
    /**
     * Returns true if the environment is production, false if it's not or undefined if we can't determine the environment.
     *
     */
    isProductionEnv() {
        var _a, _b;
        return ((_a = window.cdoHost) === null || _a === void 0 ? void 0 : _a.environment) ? ((_b = window.cdoHost) === null || _b === void 0 ? void 0 : _b.environment) === this.PRODUCTION_TOKEN : undefined;
    }
    /**
     * Notifies ccProjects with the last modified file when MRUFileListChanged is triggered
     * @param files
     * @param sharedStore
     */
    notifyProjectsLastFile(files, sharedStore) {
        var _a;
        if (files === null || files === void 0 ? void 0 : files.length) {
            const { isCloudDoc, assetRef } = files[0];
            let assetRefObj;
            try {
                assetRefObj = isCloudDoc ? JSON.parse(assetRef) : undefined;
            }
            catch (e) {
                this._logger.log(e);
            }
            const { local_id, cloud_id, path, display_name, repository_id } = assetRefObj !== null && assetRefObj !== void 0 ? assetRefObj : {};
            const lastModifiedFile = {
                local_id,
                cloud_id,
                path,
                display_name,
                repository_id,
            };
            (_a = sharedStore.notifyAssetEvent) === null || _a === void 0 ? void 0 : _a.call(sharedStore, lastModifiedFile, 'modified');
        }
    }
    /**
     * Tells if we have the user intent dialog enabled.
     */
    get isUserIntentDialogEnabled() {
        return true;
    }
}
Illustrator_decorate([
    mobx_module["l" /* computed */],
    Illustrator_metadata("design:type", Boolean),
    Illustrator_metadata("design:paramtypes", [])
], Illustrator_Illustrator.prototype, "isCloudProjectsVisible", null);

// EXTERNAL MODULE: ./src/applications/XD.tsx
var XD = __webpack_require__("kgL9");

// EXTERNAL MODULE: ./src/js/iaw/fs.tsx
var fs = __webpack_require__("xZA7");

// EXTERNAL MODULE: ./src/assets/presets/S_IlluMobileGames_96.svg
var S_IlluMobileGames_96 = __webpack_require__("IU7p");
var S_IlluMobileGames_96_default = /*#__PURE__*/__webpack_require__.n(S_IlluMobileGames_96);

// EXTERNAL MODULE: ./src/assets/presets/S_IlluAds_96.svg
var S_IlluAds_96 = __webpack_require__("Hqub");
var S_IlluAds_96_default = /*#__PURE__*/__webpack_require__.n(S_IlluAds_96);

// EXTERNAL MODULE: ./src/assets/presets/S_IlluEducation_96.svg
var S_IlluEducation_96 = __webpack_require__("wuU2");
var S_IlluEducation_96_default = /*#__PURE__*/__webpack_require__.n(S_IlluEducation_96);

// CONCATENATED MODULE: ./src/applications/Animate.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2020 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/














class Animate_Animate extends ApplicationBase["c" /* default */] {
    constructor() {
        super(...arguments);
        this._logger = Logger["a" /* default */].get('Animate');
    }
    ///////////////////////////////////////////////////////////////////
    // Static Overrides/Configuration
    ///////////////////////////////////////////////////////////////////
    /**
     * Checks if app has support to hide the home screen on pressing the escape key.
     */
    get hidesHomeScreenOnEscape() {
        return true;
    }
    /**
     *  Enable search in homescreen
     */
    get isSearchSupported() {
        return false;
    }
    /**
     * Checks if CDO features should be loaded.
     */
    get isCloudDocumentsEnabled() {
        return false;
    }
    ///////////////////////////////////////////////////////////////////
    // TODO: APIs to be implemented an exposed from C++
    ///////////////////////////////////////////////////////////////////
    async init() {
        await super.init();
        this._isBackButtonVisible = false;
        this._recentFiles = await this.getRecentFiles();
        window.cdoHost.on('homeScreenVisibilitychanged', this.updateHomeScreenVisibility.bind(this));
        this._isHomeScreenVisible = false;
        const panel = await window.cdoHost.showPanel;
        // @ts-ignore
        MainStore["mainStore"].recentFilesStore.setMaxAllowedDocuments(await this.getMaxAllowedDocuments());
        MainStore["mainStore"].navigate(panel);
    }
    ///////////////////////////////////////////////////////////////////
    // Data Access
    ///////////////////////////////////////////////////////////////////
    async updateHomeScreenVisibility() {
        this._isHomeScreenVisible = await window.cdoHost.isHomeScreenVisible();
        this._isBackButtonVisible = await window.cdoHost.isAnyDocumentOpen();
        if (this._isHomeScreenVisible === true) {
            this._recentFiles = await this.getRecentFiles();
            this._logger.log(`FLPR: Recent list changed. No of items = ${this._recentFiles.length}`);
        }
    }
    /**
     * Returns the Guid of the application's session for tracking purposes
     */
    async getSessionId() {
        const id = window.cdoHost.getSessionId();
        if (typeof id === 'string') {
            return Promise.resolve(id);
        }
        else {
            return await id;
        }
    }
    ///////////////////////////////////////////////////////////////////
    // Actions in the product
    ///////////////////////////////////////////////////////////////////
    /**
     * Hides the home screen from the user.
     */
    async hideHomeScreen() {
        window.cdoHost.hideHomeScreen();
    }
    /**
     * Triggers a new document dialog.
     */
    async launchNewDocumentDialog() {
        window.cdoHost.launchNewDocumentDialog();
    }
    /**
     * Triggers the open document dialog.
     */
    async launchOpenDocumentDialog() {
        window.cdoHost.launchOpenDocumentDialog();
    }
    /**
     * Open a local document from disk
     * @param path Path to the document on disk
     * @param title Title of the document (unused in Illustrator)
     * @param template Determines if we should force open as template behavior even
     * if we don't have a template file type for some reason
     */
    async openLocalDocument({ path, template = false }) {
        window.cdoHost.openLocalDocument(path, template);
    }
    /**
     * Launches an in-app tutorial
     * @param tutorialId Id of the tutorial to launch
     */
    launchTutorial(tutorialId) {
        window.cdoHost.launchTutorial(tutorialId);
    }
    /**
     * Launches a preset (For the Illustrator Preset Component)
     * @param data Preset configuration
     */
    openPreset(data) {
        window.cdoHost.openPreset(JSON.stringify(data));
    }
    ///////////////////////////////////////////////////////////////////
    // CDO host wrapper methods
    ///////////////////////////////////////////////////////////////////
    /**
     * Get the IMS token from the host (dont use HS's one)
     */
    /* eslint-disable */
    async fetchCDOToken(currentToken) {
        return window.cdoHost.getUserAccessTokenSync();
    }
    /**
     * Check CDO host if feature is enabled
     */
    isCDOFeatureEnabled(featureFlag) {
        return window.cdoHost.featureEnabled(featureFlag);
    }
    /**
     * Gets the list of recent files from the CDO host.
     */
    async getCDOLocalRecents() {
        return window.cdoHost.getLocalRecents();
    }
    /**
     * Use CDO host API to create new document
     */
    openCDODocument(docInfoArray) {
        const doc = docInfoArray[0];
        if (doc === null || doc === void 0 ? void 0 : doc.uri) {
            window.cdoHost.openDocuments(docInfoArray);
        }
        else {
            window.cdoHost.openOsDialog('open');
        }
    }
    get isThumbnailViewEnabled() {
        return false;
    }
    /**
     * Utility method to provide the clamp on maximum allowed documents in the
     * recent list.
     */
    async getMaxAllowedDocuments() {
        return window.cdoHost.getMaxAllowedDocuments();
    }
    /**
     * Gets the recent files to sync the this.recentFiles property
     */
    async getRecentFiles() {
        const recents = await window.cdoHost.getRecentFiles();
        const recentFiles = recents || [];
        const files = JSON.parse(recentFiles);
        const newList = [];
        await Promise.all(files.map(async (item) => {
            const isCloudFile = item.isCloudDoc;
            let title;
            let id;
            let cloudUri;
            let localUri;
            let stableUri;
            let assetRef;
            id = item.path;
            title = item && item.path && item.path.replace(/^.*[\\\/]/, '');
            cloudUri = '';
            localUri = item.path;
            stableUri = item.stableID;
            assetRef = item.assetRef;
            const dateLastOpened = new Date(item.lastOpened).getTime();
            const document = ccx_cdo["l" /* Document */].create({
                id,
                externalData: { isCloudDoc: isCloudFile, canOpen: isCloudFile ? item.canOpen : true },
                path: item.path || '',
                cloudUri,
                localUri,
                title,
                assetName: '',
                accessDate: dateLastOpened,
                modifiedDate: dateLastOpened,
                repoModifiedDate: dateLastOpened,
                createDate: dateLastOpened,
                recoveredDate: '',
                hasSize: false,
                isCached: false,
                isConflicted: false,
                isUserPinned: false,
                size: `${item.size}`,
                renditionTemplate: '',
                rendition: item.thumb,
                type: 'local',
                stableUri,
                assetRef,
            });
            // check if non-cloud files were deleted (some apps report recent files that were deleted - this makes sure they are available)
            if (!isCloudFile) {
                // IAW-6741 Skip file check for win UNC/network paths
                const isFileAvailableLocally = CommonUtils["a" /* UXPHelpers */].isWinUNCFilePath(item.path)
                    ? true
                    : await fs["a" /* default */].pathExists(`file://{item.path}`);
                if (isFileAvailableLocally) {
                    // IAW-6741 network files contain a blank data URI.
                    // we need to set to empty string '' so the defaultRendition image shows up
                    if (CommonUtils["a" /* UXPHelpers */].isEmptyDataURIImage(document.rendition)) {
                        document.setRendition('');
                    }
                    newList.push(document);
                }
                // TODO re-enable if CDO provides dimmed or deleted UI
                // document.setDocState(isFileAvailableLocally ? DocumentState.active : DocumentState.deleted);
            }
            else {
                newList.push(document);
            }
        }));
        this.convertRenditionsToBlobURLs(newList);
        return newList;
    }
    /**
     * Provide CDO configuration settings for host application
     */
    get CDOProductData() {
        const productName = this.name || 'Animate';
        return {
            productId: this.id,
            dcxId: window.cdoHost.dcxAppId,
            productVersion: this.version,
            productName: productName,
            productLocation: 'com.adobe.ccx.start',
            platform: navigator.platform,
            documentFilter: window.cdoHost.documentFilter,
            apiKey: this.cdoApiKey,
            featureFlags: {
                themingSupport: true,
                enableCloudDocFolders: window.cdoHost.featureEnabled('CloudDocFolders'),
                enableCloudDocMultiSelectOpen: true,
            },
            sessionGuid: MainStore["mainStore"].prefs.sessionGUID,
            theme: ccx_cdo["x" /* Themes */].dark,
            uiLocale: window.cdoHost.locale || 'en_US',
            platformVersion: CommonUtils["a" /* UXPHelpers */].osVersion,
        };
    }
    get presetData() {
        return [
            {
                name: 'FLPR_default_preset_name_hdtv',
                description: '',
                image: react_default.a.createElement(S_VideoHDTV1080_96_default.a, null),
                presetType: 'Character Animation',
                ctaEvent: constants["k" /* default */].CTA_EVENTS.PRESET,
                ctaData: {
                    isPreset: 'true',
                    appSpecificKey: {
                        analyticId: 'video_full_hd_video_1920_1080',
                        documentType: 0,
                        framerate: 30,
                        width: 1920,
                        intentID: 0,
                        units: 5,
                        height: 1080,
                    },
                },
            },
            {
                name: 'FLPR_default_preset_name_weblarge',
                description: '',
                image: react_default.a.createElement(S_IlluMobileGames_96_default.a, null),
                presetType: 'Games',
                ctaEvent: constants["k" /* default */].CTA_EVENTS.PRESET,
                ctaData: {
                    isPreset: 'true',
                    appSpecificKey: {
                        analyticId: 'game_android_16_9_1280_720',
                        documentType: 1,
                        framerate: 30,
                        width: 1280,
                        intentID: 2,
                        units: 5,
                        height: 720,
                    },
                },
            },
            {
                name: 'FLPR_default_preset_name_letter',
                description: '',
                image: react_default.a.createElement(S_IlluAds_96_default.a, null),
                presetType: 'Ads',
                ctaEvent: constants["k" /* default */].CTA_EVENTS.PRESET,
                ctaData: {
                    isPreset: 'true',
                    appSpecificKey: {
                        analyticId: 'ads_banner_468_60',
                        documentType: 0,
                        framerate: 24,
                        width: 468,
                        intentID: 4,
                        units: 5,
                        height: 60,
                    },
                },
            },
            {
                name: 'FLPR_default_preset_name_iphone',
                description: '',
                image: react_default.a.createElement(S_IlluEducation_96_default.a, null),
                presetType: 'Education',
                ctaEvent: constants["k" /* default */].CTA_EVENTS.PRESET,
                ctaData: {
                    isPreset: 'true',
                    appSpecificKey: {
                        analyticId: 'education_iPad_3_4_gen_2048_1536',
                        documentType: 1,
                        framerate: 24,
                        width: 2048,
                        intentID: 3,
                        units: 5,
                        height: 1536,
                    },
                },
            },
            {
                name: 'FLPR_default_preset_name_postcard',
                description: '',
                image: react_default.a.createElement(S_IlluPrintLetter_96_default.a, null),
                presetType: 'Advanced',
                ctaEvent: constants["k" /* default */].CTA_EVENTS.PRESET,
                ctaData: {
                    isPreset: 'true',
                    appSpecificKey: {
                        analyticId: 'advanced_html_canvas_550_400',
                        documentType: 9,
                        framerate: 24,
                        width: 550,
                        intentID: 6,
                        units: 5,
                        height: 400,
                    },
                },
            },
            {
                name: 'FLPR_default_preset_name_more',
                image: react_default.a.createElement(S_IlluMoreCircle_96_default.a, null),
                presetType: 'Custom',
                ctaEvent: constants["k" /* default */].CTA_EVENTS.PRESET,
                ctaData: {
                    template_category: 'CmdN',
                },
            },
        ];
    }
}

// EXTERNAL MODULE: ./src/applications/Drover.tsx
var Drover = __webpack_require__("/5Cs");

// EXTERNAL MODULE: ./src/assets/presets/S_IlluMobileIPadPro12_96.svg
var S_IlluMobileIPadPro12_96 = __webpack_require__("n6ED");
var S_IlluMobileIPadPro12_96_default = /*#__PURE__*/__webpack_require__.n(S_IlluMobileIPadPro12_96);

// EXTERNAL MODULE: ./src/assets/presets/S_IlluWeb1920_96.svg
var S_IlluWeb1920_96 = __webpack_require__("A2gr");
var S_IlluWeb1920_96_default = /*#__PURE__*/__webpack_require__.n(S_IlluWeb1920_96);

// CONCATENATED MODULE: ./src/applications/presets/IndesignPresets.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2020 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/







/* harmony default export */ var IndesignPresets = (locale => {
    // A4 will be available for all lang except en_US
    const a4 = {
        name: 'IDSN_preset_a4_name',
        description: 'IDSN_preset_a4_description',
        image: react_default.a.createElement(S_IlluPrintA4_96_default.a, null),
        presetType: 'Print',
        ctaEvent: constants["k" /* default */].CTA_EVENTS.PRESET,
        ctaData: {
            size: 0,
            bTall: true,
            units: 'millimetersUnit',
            width: 595.27559055,
            gutter: 12,
            height: 841.88976377,
            intent: 'print',
            columns: 1,
            margins: {
                top: 36,
                left: 36,
                right: 36,
                bottom: 36,
            },
            mime_type: 'image/indesign',
            num_pages: 1,
            isModified: true,
            slug_offset: {
                top: 0,
                left: 0,
                right: 0,
                bottom: 0,
            },
            spreadScale: [1, 1],
            bleed_offset: {
                top: 0,
                left: 0,
                right: 0,
                bottom: 0,
            },
            facing_pages: true,
            page_binding: 0,
            uniform_slug: false,
            actionTrigger: 'actionButton',
            uniform_bleed: true,
            start_page_num: 1,
            auto_text_frame: false,
            uniform_margins: true,
            isPresetDropdown: true,
            pages_per_spread: 2,
            restart_page_num: false,
            column_orientation: 0,
            previewModeEnabled: false,
        },
    };
    // Letter will be available only for en_US
    const letter = {
        name: 'IDSN_preset_letter_name',
        description: 'IDSN_preset_letter_description',
        image: react_default.a.createElement(S_IlluPrintLetter_96_default.a, null),
        presetType: 'Print',
        ctaEvent: constants["k" /* default */].CTA_EVENTS.PRESET,
        ctaData: {
            size: 0,
            bTall: true,
            units: 'inchesUnit',
            width: 612,
            gutter: 12,
            height: 792,
            intent: 'print',
            columns: 1,
            margins: {
                top: 36,
                left: 36,
                right: 36,
                bottom: 36,
            },
            mime_type: 'image/indesign',
            num_pages: 1,
            isModified: true,
            slug_offset: {
                top: 0,
                left: 0,
                right: 0,
                bottom: 0,
            },
            spreadScale: [1, 1],
            bleed_offset: {
                top: 0,
                left: 0,
                right: 0,
                bottom: 0,
            },
            facing_pages: true,
            page_binding: 0,
            uniform_slug: false,
            actionTrigger: 'actionButton',
            uniform_bleed: true,
            start_page_num: 1,
            auto_text_frame: false,
            uniform_margins: true,
            isPresetDropdown: true,
            pages_per_spread: 2,
            restart_page_num: false,
            column_orientation: 0,
            previewModeEnabled: false,
        },
    };
    const firstPreset = locale === 'en_US' ? letter : a4;
    return [
        firstPreset,
        {
            name: 'IDSN_preset_ipad_pro_name',
            description: 'IDSN_preset_ipad_pro_description',
            image: react_default.a.createElement(S_IlluMobileIPadPro12_96_default.a, null),
            presetType: 'Mobile',
            ctaEvent: constants["k" /* default */].CTA_EVENTS.PRESET,
            ctaData: {
                size: 0,
                bTall: true,
                units: 'pixelsUnit',
                width: 2732,
                gutter: 12,
                height: 2048,
                intent: 'mobile',
                columns: 1,
                margins: {
                    top: 36,
                    left: 36,
                    right: 36,
                    bottom: 36,
                },
                mime_type: 'image/indesign',
                num_pages: 1,
                isModified: true,
                slug_offset: {
                    top: 0,
                    left: 0,
                    right: 0,
                    bottom: 0,
                },
                spreadScale: [1, 1],
                bleed_offset: {
                    top: 0,
                    left: 0,
                    right: 0,
                    bottom: 0,
                },
                facing_pages: false,
                page_binding: 0,
                uniform_slug: false,
                actionTrigger: 'actionButton',
                uniform_bleed: true,
                start_page_num: 1,
                auto_text_frame: true,
                uniform_margins: true,
                isPresetDropdown: true,
                pages_per_spread: 1,
                restart_page_num: false,
                column_orientation: 0,
                previewModeEnabled: false,
            },
        },
        {
            name: 'IDSN_preset_web_name',
            description: 'IDSN_preset_web_description',
            image: react_default.a.createElement(S_IlluWeb1920_96_default.a, null),
            presetType: 'Web',
            ctaEvent: constants["k" /* default */].CTA_EVENTS.PRESET,
            ctaData: {
                size: 0,
                bTall: false,
                units: 'pixelsUnit',
                width: 1920,
                gutter: 12,
                height: 1080,
                intent: 'web',
                columns: 1,
                margins: {
                    top: 36,
                    left: 36,
                    right: 36,
                    bottom: 36,
                },
                mime_type: 'image/indesign',
                num_pages: 1,
                isModified: true,
                slug_offset: {
                    top: 0,
                    left: 0,
                    right: 0,
                    bottom: 0,
                },
                spreadScale: [1, 1],
                bleed_offset: {
                    top: 0,
                    left: 0,
                    right: 0,
                    bottom: 0,
                },
                facing_pages: false,
                page_binding: 0,
                uniform_slug: false,
                actionTrigger: 'actionButton',
                uniform_bleed: true,
                start_page_num: 1,
                auto_text_frame: false,
                uniform_margins: true,
                isPresetDropdown: true,
                pages_per_spread: 1,
                restart_page_num: false,
                column_orientation: 0,
                previewModeEnabled: false,
            },
        },
        {
            name: 'IDSN_preset_more_name',
            image: react_default.a.createElement(S_IlluMoreCircle_96_default.a, null),
            presetType: 'Custom',
            ctaEvent: constants["k" /* default */].CTA_EVENTS.PRESET,
            ctaData: {
                template_category: 'CmdN',
            },
        },
    ];
});

// CONCATENATED MODULE: ./src/applications/InDesign.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2021 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var InDesign_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;
};
var InDesign_metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var InDesign_a, InDesign_b, InDesign_c, InDesign_d, InDesign_e, InDesign_f, InDesign_g, InDesign_h;











const InDesign_DEFAULT_CDO_FEATURE_FLAGS = {
    themingSupport: true,
    focusManagementEnabled: true,
    emptyViewLoggedOutMessage: true,
    enableCloudDocRename: true,
    enableCloudDocPinning: true,
    enableOnboarding: (InDesign_a = window.cdoHost) === null || InDesign_a === void 0 ? void 0 : InDesign_a.featureEnabled('enableOnboarding'),
    enableCloudDocMultiSelectOpen: true,
    enableCloudDocFolders: (InDesign_b = window.cdoHost) === null || InDesign_b === void 0 ? void 0 : InDesign_b.featureEnabled('CloudDocFolders'),
    enableAssetRef: true,
    enableSAM: (InDesign_c = window.cdoHost) === null || InDesign_c === void 0 ? void 0 : InDesign_c.featureEnabled('CloudDocUseSAM'),
    cdpTabs: (InDesign_d = window.cdoHost) === null || InDesign_d === void 0 ? void 0 : InDesign_d.featureEnabled('CloudDocUseCDPTabs'),
    enableFilter: (InDesign_e = window.cdoHost) === null || InDesign_e === void 0 ? void 0 : InDesign_e.featureEnabled('CloudDocFilter'),
    refreshOnViewChange: true,
    showSWYCloudStatusIcon: (InDesign_f = window.cdoHost) === null || InDesign_f === void 0 ? void 0 : InDesign_f.featureEnabled('showSWYCloudStatusIcon'),
    // Should be removed after public launch
    disableCloudDocumentsTab: (InDesign_g = window.cdoHost) === null || InDesign_g === void 0 ? void 0 : InDesign_g.featureEnabled('disableCloudDocumentsTab'),
    // Explicit testing of FF before implementation of `getCdoFeatureFlags` is done
    // Needed for CDO 1.133.0 and UAP 1.157.0
    useDiscardedSource: (InDesign_h = window.cdoHost) === null || InDesign_h === void 0 ? void 0 : InDesign_h.featureEnabled('useDiscardedSource')
};
class InDesign_InDesign extends Drover["a" /* default */] {
    get homeScreenDisplayOptions() {
        return {
            ...super.homeScreenDisplayOptions,
            showRecentsGridListViewButtons: true,
        };
    }
    get isThumbnailsDisabled() {
        return false;
    }
    /**
     * Checks if CDO features should be loaded.
     */
    get isCloudDocumentsEnabled() {
        var _a, _b;
        return (!!((_b = (_a = window.cdoHost) === null || _a === void 0 ? void 0 : _a.isCloudDocsEnabled) === null || _b === void 0 ? void 0 : _b.call(_a)) &&
            !MainStore["mainStore"].user.isFRL &&
            !MainStore["mainStore"].user.cloudDocsDisabled);
    }
    /**
     * Check if CC Projects features should be loaded
     */
    get isCloudProjectsEnabled() {
        var _a, _b;
        return (_b = (_a = window.cdoHost) === null || _a === void 0 ? void 0 : _a.featureEnabled) === null || _b === void 0 ? void 0 : _b.call(_a, 'ccProjects');
    }
    /**
     * Check if CC Projects features should be visible. We need to separate the host FF check from the visibility check to optimize loading.
     * If the FF is on, the Projects code should load regardless of the other conditions. The UI should only be visible if all the conditions below are satified.
     */
    get isCloudProjectsVisible() {
        return this.isCloudProjectsEnabled && !MainStore["mainStore"].user.cloudDocsDisabled && !MainStore["mainStore"].user.isFRL;
    }
    /**
     * Additional product specific tabs to be shown to the end user.
     */
    get tabs() {
        if (!this.isCloudDocumentsEnabled) {
            return {};
        }
        const tabs = {
            cdo: {
                order: 1,
                type: constants["c" /* CDO_TABS */].CDO,
                label: 'listview_cdo_tab_label',
                icon: react_default.a.createElement(DocumentOutline_default.a, null),
            },
            cdo_deleted: {
                order: 4,
                type: constants["c" /* CDO_TABS */].DELETED,
                label: 'listview_cdo_deleted_tab_label',
                icon: react_default.a.createElement(DeleteOutline_default.a, null),
            },
        };
        if (this.isSharedWithYouEnabled) {
            tabs[constants["c" /* CDO_TABS */].SHARED_WITH_YOU] = {
                order: 2,
                type: constants["c" /* CDO_TABS */].SHARED_WITH_YOU,
                label: 'listview_cdo_shared_with_you_tab_label',
                icon: react_default.a.createElement(UserGroup_default.a, null),
            };
        }
        if (this.isCloudProjectsVisible) {
            tabs['projects'] = {
                order: 3,
                type: 'projects',
                label: 'listview_projects_tab_label',
            };
        }
        return tabs;
    }
    /**
     * Checks if "Shared with you" features should be loaded.
     */
    get isSharedWithYouEnabled() {
        var _a, _b;
        return (!!((_b = (_a = window.cdoHost) === null || _a === void 0 ? void 0 : _a.isSharedWithYouFeatureEnabled) === null || _b === void 0 ? void 0 : _b.call(_a)) &&
            !MainStore["mainStore"].user.isFRL &&
            !MainStore["mainStore"].user.cloudDocsDisabled);
    }
    /**
     * Get the IMS token from the host (dont use HS's one)
     */
    async fetchCDOToken(currentToken) {
        const token = await window.cdoHost.getUserAccessToken(currentToken);
        return token;
    }
    /**
     * CDO op handler for pre/post unpin action
     */
    async cdoBeforeUnpin(storageUrlArray) {
        var _a, _b;
        return (_b = (_a = window.cdoHost).beforeUnpin) === null || _b === void 0 ? void 0 : _b.call(_a, storageUrlArray);
    }
    async cdoAfterUnpin(storageUrlArray) {
        var _a, _b;
        return (_b = (_a = window.cdoHost).afterUnpin) === null || _b === void 0 ? void 0 : _b.call(_a, storageUrlArray);
    }
    /**
     * CDO op handler for pre/post delete action
     */
    async cdoBeforeDelete(storageUrlArray) {
        var _a, _b;
        return (_b = (_a = window.cdoHost).beforeDelete) === null || _b === void 0 ? void 0 : _b.call(_a, storageUrlArray);
    }
    async cdoAfterDelete(storageUrlArray) {
        var _a, _b;
        return (_b = (_a = window.cdoHost).afterDelete) === null || _b === void 0 ? void 0 : _b.call(_a, storageUrlArray);
    }
    /**
     * CDO op handler for pre/post permanent delete action
     */
    async cdoBeforePermanentDelete(storageUrlArray) {
        var _a, _b;
        return (_b = (_a = window.cdoHost).beforePermanentDelete) === null || _b === void 0 ? void 0 : _b.call(_a, storageUrlArray);
    }
    async cdoAfterPermanentDelete(storageUrlArray) {
        var _a, _b;
        return (_b = (_a = window.cdoHost).afterPermanentDelete) === null || _b === void 0 ? void 0 : _b.call(_a, storageUrlArray);
    }
    /**
     * CDO op handler for pre/post restore action
     */
    async cdoBeforeRestore(storageUrlArray) {
        var _a, _b;
        return (_b = (_a = window.cdoHost).beforeRestore) === null || _b === void 0 ? void 0 : _b.call(_a, storageUrlArray);
    }
    async cdoAfterRestore(storageUrlArray) {
        var _a, _b;
        return (_b = (_a = window.cdoHost).afterRestore) === null || _b === void 0 ? void 0 : _b.call(_a, storageUrlArray);
    }
    /**
     * CDO op handler for pre/post rename action
     */
    async cdoBeforeRename(storageUrlArray) {
        var _a, _b;
        return (_b = (_a = window.cdoHost).beforeRename) === null || _b === void 0 ? void 0 : _b.call(_a, storageUrlArray);
    }
    async cdoAfterRename(storageUrlArray) {
        var _a, _b;
        return (_b = (_a = window.cdoHost).afterRename) === null || _b === void 0 ? void 0 : _b.call(_a, storageUrlArray);
    }
    /**
     * CDO op handler for pre/post rename action
     */
    async cdoBeforeMove(storageUrlArray) {
        var _a, _b;
        return (_b = (_a = window.cdoHost).beforeMove) === null || _b === void 0 ? void 0 : _b.call(_a, storageUrlArray);
    }
    async cdoAfterMove(storageUrlArray) {
        var _a, _b;
        return (_b = (_a = window.cdoHost).afterMove) === null || _b === void 0 ? void 0 : _b.call(_a, storageUrlArray);
    }
    /**
     * Returns the Application's cloud file extension name for the provided document type (i.e. 'PSDC')
     * An application may support multiple cloud document types.
     */
    getCloudExtensionName(document) {
        return 'INDDC';
    }
    /**
     * Returns stableUris of currently open documents
     */
    async getOpenCloudDocuments() {
        return window.cdoHost.getOpenCloudDocuments();
    }
    /**
     * Gets the recent files to sync the this.recentFiles property
     */
    async getRecentFiles() {
        const recents = window.cdoHost.getRecentFilesAsync
            ? await window.cdoHost.getRecentFilesAsync()
            : window.cdoHost.getRecentFiles(); // ID is moving to async
        const recentsData = recents ? JSON.parse(recents) : { userHasCloudDoc: false, recentFileEntries: [] };
        let files = [];
        const isRecentsInterfaceObject = "userHasCloudDoc" in recentsData && "recentFileEntries" in recentsData;
        // Check if the function returns an object in the form of { userHasCloudDoc: boolean, recentFileEntries: Array }
        if (isRecentsInterfaceObject && Array.isArray(recentsData.recentFileEntries)) {
            this._userHasCloudDoc = recentsData.userHasCloudDoc;
            files = recentsData.recentFileEntries;
        }
        else if (Array.isArray(recentsData)) {
            // If the return is from the old function which returns an array of documents
            files = recentsData;
        }
        const newList = [];
        await Promise.all(files.map(async (item) => {
            const isCloudFile = JSON.parse(item.isCloudDoc);
            let title;
            let id;
            let cloudUri;
            let localUri;
            let path;
            let stableUri;
            let assetRef;
            let assetRefObj;
            stableUri = item.stableID;
            assetRef = item.assetRef;
            if (isCloudFile) {
                assetRefObj = assetRef ? JSON.parse(assetRef) : {};
                id = assetRef;
                title = item.title;
                cloudUri = assetRefObj && assetRefObj.cloud_id ? assetRefObj.cloud_id : '';
                localUri = '';
                path = assetRefObj && assetRefObj.path ? assetRefObj.path : '';
            }
            else {
                id = item.path;
                title = item && item.path && item.path.replace(/^.*[\\\/]/, '');
                cloudUri = '';
                localUri = item.path;
                path = item.path;
            }
            const dateLastOpened = new Date(item.lastOpened).getTime();
            const document = ccx_cdo["l" /* Document */].create({
                id,
                externalData: {
                    isCloudDoc: isCloudFile,
                    canOpen: isCloudFile ? item.canOpen : true,
                    kind: item.kind,
                    tip: item.tip,
                },
                path: path || '',
                cloudUri,
                localUri,
                title,
                assetName: '',
                accessDate: dateLastOpened,
                modifiedDate: dateLastOpened,
                repoModifiedDate: dateLastOpened,
                createDate: dateLastOpened,
                recoveredDate: '',
                hasSize: false,
                isCached: !!item.isCached,
                isConflicted: !!item.isConflicted,
                isUserPinned: !!item.isUserPinned,
                size: `${item.size}`,
                renditionTemplate: '',
                rendition: item.thumb,
                type: 'local',
                stableUri,
                assetRef,
            });
            if (!isCloudFile) {
                // IAW-6741 network files contain a blank data URI.
                // we need to set to empty string '' so the defaultRendition image shows up
                if (CommonUtils["a" /* UXPHelpers */].isEmptyDataURIImage(document.rendition)) {
                    document.setRendition('');
                }
            }
            newList.push(document);
        }));
        this.convertRenditionsToBlobURLs(newList);
        return newList;
    }
    /**
     * Provide CDO configuration settings for host application
     */
    get CDOProductData() {
        var _a, _b;
        const productName = this.name;
        let hostCdoFeatureFlags = (_b = (_a = window.cdoHost) === null || _a === void 0 ? void 0 : _a.getCdoFeatureFlags) === null || _b === void 0 ? void 0 : _b.call(_a);
        if (hostCdoFeatureFlags !== undefined && typeof hostCdoFeatureFlags === "string") {
            const parsedCdoFeatureFlags = JSON.parse(hostCdoFeatureFlags);
            hostCdoFeatureFlags = typeof parsedCdoFeatureFlags === "object" ? parsedCdoFeatureFlags : {};
        }
        const hostFeatureFlags = hostCdoFeatureFlags || {};
        const cdoFeatureFlags = {
            ...InDesign_DEFAULT_CDO_FEATURE_FLAGS,
            // the host FFs have higher priority and should override the defaults
            ...hostFeatureFlags,
            // use the visible flag because it also checks for FRL and geo-blocked users
            enableProjects: this.isCloudProjectsVisible,
        };
        return {
            productId: this.id,
            dcxId: window.cdoHost.dcxAppId,
            productVersion: this.version,
            productName: productName,
            productLocation: 'com.adobe.ccx.start',
            platform: navigator.platform,
            documentFilter: window.cdoHost.documentFilter,
            apiKey: this.cdoApiKey,
            featureFlags: cdoFeatureFlags,
            sessionGuid: MainStore["mainStore"].prefs.sessionGUID,
            theme: ccx_cdo["x" /* Themes */].dark,
            uiLocale: window.cdoHost.locale || 'en_US',
            analyticsProjectKey: window.cdoHost.analyticsProjectKey,
            platformVersion: CommonUtils["a" /* UXPHelpers */].osVersion,
            onboardingHelpJumpToken: window.cdoHost.onboardingHelpJumpToken,
            linkableTypes: window.cdoHost.linkableTypes,
            embeddableTypes: window.cdoHost.embeddableTypes,
        };
    }
    get presetData() {
        return IndesignPresets(window.require('uxp').host.locale);
    }
}
InDesign_decorate([
    mobx_module["l" /* computed */],
    InDesign_metadata("design:type", Boolean),
    InDesign_metadata("design:paramtypes", [])
], InDesign_InDesign.prototype, "isCloudProjectsVisible", null);

// CONCATENATED MODULE: ./src/applications/index.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var applications_a, applications_b, applications_c;







const Apps = {
    Photoshop: Photoshop_Photoshop,
    Browser: Browser_Browser,
    Illustrator: Illustrator_Illustrator,
    XD: XD["a" /* default */],
    Animate: Animate_Animate,
    Drover: Drover["a" /* default */],
    InDesign: InDesign_InDesign,
};
const getAppName = (hostname, isDrover) => {
    let appName = Object.keys(Apps).find(app => [app, app.toLowerCase()].includes(hostname)) || '';
    // skip for any host not supporting uxp.host.isDrover
    const skipDroverBase = { Photoshop: true, Illustrator: true, Animate: true, Browser: true, InDesign: true };
    if (!skipDroverBase[appName] && !!isDrover) {
        appName = 'Drover';
    }
    return appName;
};
const uxp = (applications_a = window === null || window === void 0 ? void 0 : window.require) === null || applications_a === void 0 ? void 0 : applications_a.call(window, 'uxp');
const hostname = ((applications_b = uxp === null || uxp === void 0 ? void 0 : uxp.host) === null || applications_b === void 0 ? void 0 : applications_b.name) || 'Browser';
const isDrover = (applications_c = uxp === null || uxp === void 0 ? void 0 : uxp.host) === null || applications_c === void 0 ? void 0 : applications_c.isDrover;
const appName = getAppName(hostname, isDrover);
const host = new Apps[appName]();
/* harmony default export */ var applications = __webpack_exports__["a"] = (host);


/***/ }),

/***/ "3UD+":
/***/ (function(module, exports) {

module.exports = function (originalModule) {
  if (!originalModule.webpackPolyfill) {
    var module = Object.create(originalModule); // module.parent = undefined by default

    if (!module.children) module.children = [];
    Object.defineProperty(module, "loaded", {
      enumerable: true,
      get: function () {
        return module.l;
      }
    });
    Object.defineProperty(module, "id", {
      enumerable: true,
      get: function () {
        return module.i;
      }
    });
    Object.defineProperty(module, "exports", {
      enumerable: true
    });
    module.webpackPolyfill = 1;
  }

  return module;
};

/***/ }),

/***/ "3Vk1":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);

// EXPORTS
__webpack_require__.d(__webpack_exports__, "cdoImsData", function() { return /* binding */ cdoImsData; });

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__("q1tI");
var react_default = /*#__PURE__*/__webpack_require__.n(react);

// EXTERNAL MODULE: ./src/js/start/stores/MainStore.tsx + 3 modules
var MainStore = __webpack_require__("cCFZ");

// EXTERNAL MODULE: ./node_modules/mobx/lib/mobx.module.js
var mobx_module = __webpack_require__("2vnA");

// EXTERNAL MODULE: ./node_modules/mobx-react/index.module.js
var index_module = __webpack_require__("okNM");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/index.tsx + 12 modules
var ccx_cdo = __webpack_require__("t+6E");

// EXTERNAL MODULE: ./src/applications/index.tsx + 7 modules
var applications = __webpack_require__("3UBC");

// EXTERNAL MODULE: ./src/LoggerWrapper/Logger.tsx
var Logger = __webpack_require__("43WE");

// CONCATENATED MODULE: ./src/ProjectsWrapper/onCopyItemsToProject.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2021 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/


const _logger = Logger["a" /* default */].get('onCopyItemsToProject');
/**
 * An action invoked from CDO to copy cloud documents to a project.
 * Invoked as a callback on CDO.
 */
async function onCopyItemsToProject(elements, onViewProject) {
    if (applications["a" /* default */].isCloudProjectsEnabled && applications["a" /* default */].isCloudDocumentsEnabled) {
        try {
            const { showPicker } = await __webpack_require__("jsAP");
            const { ProjectsClient } = await __webpack_require__("BuQ2");
            if (ProjectsClient) {
                const client = new ProjectsClient({
                    showPicker,
                });
                await client.copyItemsToProject({
                    items: elements.map(item => ({
                        id: item.id,
                        name: item.repoName,
                        type: item.type,
                    })),
                    onViewProject,
                });
            }
        }
        catch (error) {
            _logger.warn('Could not initialize ProjectsClient', error);
        }
    }
}

// EXTERNAL MODULE: ./src/CDOWrapper/CDOImsDataBuilder.ts
var CDOImsDataBuilder = __webpack_require__("K0Sv");

// EXTERNAL MODULE: ./src/components-start/constants.tsx
var constants = __webpack_require__("/0Ih");

// EXTERNAL MODULE: ./src/CDOWrapper/CDOSpectrumProvider.tsx
var CDOSpectrumProvider = __webpack_require__("Lo92");

// EXTERNAL MODULE: ./src/components/helpers/DisposerManager.ts
var DisposerManager = __webpack_require__("JdbT");

// CONCATENATED MODULE: ./src/CDOWrapper/index.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
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;
};
var __metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};











const styles = __webpack_require__("Njvi");
const sharedStyles = __webpack_require__("IXZT");
function cdoImsData() {
    return Object(CDOImsDataBuilder["a" /* default */])(MainStore["mainStore"].user, applications["a" /* default */].fetchCDOToken);
}
let CDOWrapper_CDOWrapper = class CDOWrapper extends react_default.a.Component {
    /**
     * ctor
     *
     */
    constructor(props) {
        super(props);
        this._disposerManager = new DisposerManager["a" /* default */]();
        this.onDialogStateChange = (newState) => {
            MainStore["mainStore"].setDisableNativeControls(newState);
        };
        this._cdoProviderRef = react_default.a.createRef();
        this._imsData = cdoImsData();
        this._callbacks = {
            onFeatureEnabled: featureFlag => applications["a" /* default */].isCDOFeatureEnabled(featureFlag),
            onGetLocalRecents: async () => applications["a" /* default */].getCDOLocalRecents(),
            onNewDocument: (type) => applications["a" /* default */].launchNewDocumentDialog(type),
            onOpenDocuments: docInfoArray => applications["a" /* default */].openCDODocument(docInfoArray),
            onStatusChange: (status) => {
                MainStore["mainStore"].setCdoStatus(status);
            },
            // @ts-ignore
            onBeforeUnpin: async (storageUrlArray) => applications["a" /* default */].cdoBeforeUnpin(storageUrlArray),
            onAfterUnpin: async (storageUrlArray) => applications["a" /* default */].cdoAfterUnpin(storageUrlArray),
            // @ts-ignore
            onBeforeDelete: async (storageUrlArray) => applications["a" /* default */].cdoBeforeDelete(storageUrlArray),
            onAfterDelete: async (storageUrlArray) => applications["a" /* default */].cdoAfterDelete(storageUrlArray),
            // @ts-ignore
            onBeforePermanentDelete: async (storageUrlArray) => applications["a" /* default */].cdoBeforePermanentDelete(storageUrlArray),
            onAfterPermanentDelete: async (storageUrlArray) => applications["a" /* default */].cdoAfterPermanentDelete(storageUrlArray),
            // @ts-ignore
            onBeforeRestore: async (storageUrlArray) => applications["a" /* default */].cdoBeforeRestore(storageUrlArray),
            onAfterRestore: async (storageUrlArray) => applications["a" /* default */].cdoAfterRestore(storageUrlArray),
            // @ts-ignore
            onBeforeRename: async (storageUrlArray) => applications["a" /* default */].cdoBeforeRename(storageUrlArray),
            onAfterRename: async (storageUrlArray) => applications["a" /* default */].cdoAfterRename(storageUrlArray),
            // @ts-ignore
            onBeforeMove: async (storageUrlArray) => applications["a" /* default */].cdoBeforeMove(storageUrlArray),
            onAfterMove: async (storageUrlArray) => applications["a" /* default */].cdoAfterMove(storageUrlArray),
            onCopyItemsToProject: elements => onCopyItemsToProject(elements, this.props.onViewProjectHandler),
            getOpenCloudDocuments: async () => applications["a" /* default */].getOpenCloudDocuments(),
        };
    }
    /**
     * Invoked immediately after a component is mounted (inserted into the tree).
     * Initialization that requires DOM nodes should go here. If you need to load
     * data from a remote endpoint, this is a good place to instantiate the
     * network request.
     */
    componentDidMount() {
        const { user } = MainStore["mainStore"];
        this._disposerManager.register(Object(mobx_module["t" /* intercept */])(MainStore["mainStore"].prefs, 'currentRoute', change => {
            if (MainStore["mainStore"].prefs.currentRoute === change.newValue.value) {
                switch (change.newValue.value) {
                    case 'cdo':
                        this._cdoProviderRef &&
                            this._cdoProviderRef.current &&
                            this._cdoProviderRef.current.navigateToRoot();
                        break;
                    default:
                        break;
                }
            }
            return change;
        }));
        this._disposerManager.register(Object(mobx_module["B" /* reaction */])(() => user.accessToken, ignore => {
            if (user.UserProfile.userId === '') {
                this._cdoProviderRef &&
                    this._cdoProviderRef.current &&
                    this._cdoProviderRef.current.onUserLoggedOut();
            }
            else {
                this._cdoProviderRef &&
                    this._cdoProviderRef.current &&
                    this._cdoProviderRef.current.onUserLoggedIn();
            }
        }, { fireImmediately: true }));
    }
    componentWillUnmount() {
        this._disposerManager.disposeAll();
    }
    get providerAnalyticsData() {
        return {
            event: {
                category: 'DESKTOP',
            },
        };
    }
    renderRoute() {
        switch (MainStore["mainStore"].prefs.currentRoute) {
            case constants["c" /* CDO_TABS */].CDO:
                // @ts-ignore
                return this.wrapComponentInSpectrumProvider(react_default.a.createElement(ccx_cdo["f" /* CloudDocuments */], { onDialogStateChange: this.onDialogStateChange }));
            case constants["c" /* CDO_TABS */].SHARED_WITH_YOU:
                return this.wrapComponentInSpectrumProvider(react_default.a.createElement(ccx_cdo["v" /* SharedWithYou */], { onDialogStateChange: this.onDialogStateChange }));
            case constants["c" /* CDO_TABS */].DELETED:
                return this.wrapComponentInSpectrumProvider(react_default.a.createElement(ccx_cdo["k" /* Deleted */], { onDialogStateChange: this.onDialogStateChange }));
            default:
                return null;
        }
    }
    wrapComponentInSpectrumProvider(component) {
        return react_default.a.createElement(CDOSpectrumProvider["a" /* default */], null, component);
    }
    /**
     * Component renderer.
     *
     * @return {ReactElement} markup
     */
    render() {
        const cdoTheme = Object(CDOImsDataBuilder["b" /* getSupportedCDOTheme */])(MainStore["mainStore"].colorTheme);
        return this._imsData ? (react_default.a.createElement("div", { className: sharedStyles.mainContentWrapper },
            react_default.a.createElement("div", { className: sharedStyles.root },
                react_default.a.createElement("div", { className: styles.innerContainer }, applications["a" /* default */].shouldRenderCDOProvider() ? (react_default.a.createElement(ccx_cdo["d" /* CDOProvider */], { analyticsData: this.providerAnalyticsData, imsData: this._imsData, hostProductData: applications["a" /* default */].CDOProductData, locale: MainStore["mainStore"].cdoLocale, callbacks: this._callbacks, ref: this._cdoProviderRef, messages: Object.assign({}, MainStore["mainStore"].messages), theme: cdoTheme },
                    this.renderRoute(),
                    this.props.children)) : (this.props.children))))) : (react_default.a.createElement("div", null));
    }
};
CDOWrapper_CDOWrapper = __decorate([
    index_module["e" /* observer */],
    __metadata("design:paramtypes", [Object])
], CDOWrapper_CDOWrapper);
/* harmony default export */ var src_CDOWrapper = __webpack_exports__["default"] = (CDOWrapper_CDOWrapper);


/***/ }),

/***/ "3WX0":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return CDOAssetType; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return CDO_SAM_ASSETTYPE_MAP; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return getAssetType; });
/* harmony import */ var _ccx_public_acpl_model_uxp_types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("XQlG");
/* harmony import */ var content_type__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("tA+R");
/* harmony import */ var content_type__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(content_type__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var media_typer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("Zrr/");
/* harmony import */ var media_typer__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(media_typer__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _utils_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("a375");
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Inc
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Inc and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Inc and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Inc.
 **************************************************************************/




/**
 * TODO: Use SAM's AssetType enum instead when we replace acp-fetch with sam-js.
 * Then we can remove the mapping below
 */
var CDOAssetType;
(function (CDOAssetType) {
    CDOAssetType["Composite"] = "composite";
    CDOAssetType["Folder"] = "folder";
    CDOAssetType["File"] = "file";
})(CDOAssetType || (CDOAssetType = {}));
// CDO => SAM
const CDO_SAM_ASSETTYPE_MAP = {
    [CDOAssetType.Composite]: _ccx_public_acpl_model_uxp_types__WEBPACK_IMPORTED_MODULE_0__[/* AssetType */ "c"].Composite,
    [CDOAssetType.Folder]: _ccx_public_acpl_model_uxp_types__WEBPACK_IMPORTED_MODULE_0__[/* AssetType */ "c"].Folder,
    [CDOAssetType.File]: _ccx_public_acpl_model_uxp_types__WEBPACK_IMPORTED_MODULE_0__[/* AssetType */ "c"].File,
};
/**
 * Using the same logic as SAM to determine asset type based on media type:
 * https://git.corp.adobe.com/torq/acpl-model/blob/cfd347d6b74d0353a93c2952cce85388115b399c/modules/acpl-model/src/cpp/acpl/assets_v2/impl/CCAssetPrivate.cpp#L55-L66
 *
 * Relevant documentation:
 * https://git.corp.adobe.com/acp-cs/aepcs-api-reference/tree/b318f2bfc5af0a8e0f6e3a5c2867a1b8f80112b4/assets
 * https://wiki.corp.adobe.com/display/dma/Hypermedia
 * https://wiki.corp.adobe.com/display/dma/Working+with+DCX+Composites
 * https://wiki.corp.adobe.com/display/CAF/Cloud-Aware+Formats+in+Content+Platform
 */
function getAssetType(mimetype = '') {
    if (_utils_constants__WEBPACK_IMPORTED_MODULE_3__[/* FOLDER_MIMETYPES */ "j"].includes(mimetype)) {
        return CDOAssetType.Folder;
    }
    try {
        const { type } = content_type__WEBPACK_IMPORTED_MODULE_1___default.a.parse(mimetype); // parse out only the type (no optional parameters)
        const { suffix } = media_typer__WEBPACK_IMPORTED_MODULE_2___default.a.parse(type); // parse out the +suffix
        const COMPOSITE_SUFFIX = 'dcx'; // 'document/vnd.adobe.cpsd+dcx'
        if (suffix === COMPOSITE_SUFFIX) {
            return CDOAssetType.Composite;
        }
    }
    catch (e) {
        // badly-formed mimetype, fallback to File
    }
    return CDOAssetType.File;
}



/***/ }),

/***/ "3XTm":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = UxpDialogHeader;

var _AlertMedium = _interopRequireDefault(__webpack_require__("hr23"));

var _Button = _interopRequireDefault(__webpack_require__("Cn9g"));

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _CrossLarge = _interopRequireDefault(__webpack_require__("oT/9"));

var _filterDOMProps = _interopRequireDefault(__webpack_require__("Cv/Q"));

var _Heading = _interopRequireDefault(__webpack_require__("8bOP"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

var _UxpDialogButtons = _interopRequireDefault(__webpack_require__("FWm0"));

__webpack_require__("eWyx");

const _excluded = ["children", "title", "variant", "fullscreen", "confirmDisabled", "confirmLabel", "secondaryLabel", "cancelLabel", "onConfirm", "onCancel", "onClose", "className", "autoFocusButton", "id", "isDismissible"];

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

const VARIANT_ICONS = {
  error: _AlertMedium.default
};

function UxpDialogHeader(_ref) {
  let {
    children = [],
    title,
    variant,
    fullscreen,
    confirmDisabled,
    confirmLabel,
    secondaryLabel,
    cancelLabel,
    onConfirm,
    onCancel,
    onClose,
    className,
    autoFocusButton,
    id,
    isDismissible
  } = _ref,
      otherProps = _objectWithoutProperties(_ref, _excluded);

  let Icon = VARIANT_ICONS[variant];
  return /*#__PURE__*/_react.default.createElement("div", _extends({}, (0, _filterDOMProps.default)(otherProps), {
    className: (0, _classnames.default)('spectrum-Dialog-header', `spectrum-Dialog-header--${variant}`, 'spectrum-Dialog-header-Override', className)
  }), /*#__PURE__*/_react.default.createElement(_Heading.default, {
    size: 3,
    className: "spectrum-Dialog-title",
    id: id
  }, title), Icon && /*#__PURE__*/_react.default.createElement(Icon, {
    size: null,
    className: "spectrum-Dialog-typeIcon"
  }), isDismissible && !fullscreen && /*#__PURE__*/_react.default.createElement(_Button.default, {
    className: "spectrum-Dialog-closeButton",
    variant: "action",
    onClick: onClose,
    quiet: true,
    icon: /*#__PURE__*/_react.default.createElement(_CrossLarge.default, {
      size: "L"
    })
  }), fullscreen && confirmLabel && /*#__PURE__*/_react.default.createElement(_UxpDialogButtons.default, {
    autoFocusButton: autoFocusButton,
    variant: variant,
    cancelLabel: cancelLabel,
    confirmLabel: confirmLabel,
    confirmDisabled: confirmDisabled,
    onConfirm: onConfirm,
    onCancel: onCancel
  }), children);
}

/***/ }),

/***/ "3aoA":
/***/ (function(module) {

module.exports = JSON.parse("{\"steps\":\"{currentStep} із {totalSteps}\"}");

/***/ }),

/***/ "3d2t":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("TSYQ");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var mobx_react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("okNM");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _types_CDOReactIntlTyped__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("dSAe");
/* harmony import */ var _styles_CCDDialogWrapper_css__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("NDal");
/* harmony import */ var _styles_CCDDialogWrapper_css__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_styles_CCDDialogWrapper_css__WEBPACK_IMPORTED_MODULE_4__);
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2020 Adobe Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Incorporated.
 **************************************************************************/





/**
 * Necessary wrapper for injecting CDO dialogs into CCD, because CCD
 * injects props (notably `onClose()`) into the top-level element provided,
 * which is a wrapper div due to the wrapperClass the CCD build system adds.
 */
class CCDDialogWrapper extends react__WEBPACK_IMPORTED_MODULE_2___default.a.PureComponent {
    render() {
        const { dialog, onDismissDialog, intl, wrapperClass, filesStore, cdoMetrics, callbacks, onClose, theme, } = this.props;
        const Dialog = (props) => react__WEBPACK_IMPORTED_MODULE_2___default.a.cloneElement(dialog, props);
        // TODO: Remove once https://jira.corp.adobe.com/browse/CCXCD-9026 is implemented
        const className = `theme-${theme}`;
        return (react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement("div", { className: wrapperClass },
            react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement("div", { className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('cdoCCDDialogs', className) },
                react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(_types_CDOReactIntlTyped__WEBPACK_IMPORTED_MODULE_3__[/* IntlProvider */ "c"], { locale: intl.locale, messages: intl.messages },
                    react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(mobx_react__WEBPACK_IMPORTED_MODULE_1__[/* Provider */ "b"], { cdoStore: filesStore.cdoStore, cdoMetrics: cdoMetrics, callbacks: callbacks }, Dialog({
                        onDismissModalDialog: ([elements, ...rest]) => {
                            // NOTE: onCancel returns [[]]
                            // call the parent-provided callback which should resolve
                            onDismissDialog([elements, ...rest]);
                            // call the CCD-provided callback to close the dialog
                            onClose && onClose();
                        },
                    }))))));
    }
}
/* harmony default export */ __webpack_exports__["a"] = (CCDDialogWrapper);


/***/ }),

/***/ "3g3H":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _react_react_spectrum_Dialog__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("bLbN");
/* harmony import */ var _react_react_spectrum_Dialog__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Dialog__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _react_react_spectrum_Link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("v7z/");
/* harmony import */ var _react_react_spectrum_Link__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Link__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("VIzJ");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("TSYQ");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_4__);
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2022 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/





const styles = __webpack_require__("Ub70");
// goURL constants
const CLOUD_DOCS_INIT_FAILURE_GOURL = 'https://www.adobe.com/go/adobexddesktop_collab_coresyncoff';
class CloudDocsInitErrorDialog extends react__WEBPACK_IMPORTED_MODULE_2__["Component"] {
    render() {
        const { intl, onClose, appName } = this.props;
        return (react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(_react_react_spectrum_Dialog__WEBPACK_IMPORTED_MODULE_0___default.a, { className: classnames__WEBPACK_IMPORTED_MODULE_4___default()(styles.cloudDocsInitErrorDialog), variant: 'error', title: intl.formatMessage({ id: 'cloud_docs_hs_error_title' }), onClose: onClose, confirmLabel: intl.formatMessage({ id: 'cloud_docs_hs_error_confirm' }), autoFocusButton: "confirm" },
            react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_3__[/* FormattedMessage */ "c"], { id: 'cloud_docs_hs_error_message', values: { appName } }),
            react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement("span", null, "\u00A0"),
            react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(_react_react_spectrum_Link__WEBPACK_IMPORTED_MODULE_1___default.a, { href: CLOUD_DOCS_INIT_FAILURE_GOURL },
                react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_3__[/* FormattedMessage */ "c"], { id: 'cloud_docs_hs_error_learn_more' }))));
    }
}
/* harmony default export */ __webpack_exports__["a"] = (Object(react_intl__WEBPACK_IMPORTED_MODULE_3__[/* injectIntl */ "g"])(CloudDocsInitErrorDialog));


/***/ }),

/***/ "3hUS":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return waitUntil; });
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
const waitUntil = condition => {
    return new Promise(resolve => {
        let interval = setInterval(() => {
            if (!condition) {
                return;
            }
            clearInterval(interval);
            resolve(true);
        }, 50);
        setTimeout(() => {
            clearInterval(interval);
            resolve(false);
        }, 100);
    });
};


/***/ }),

/***/ "3otC":
/***/ (function(module, exports) {

// generated by genversion
module.exports = '1.160.2';

/***/ }),

/***/ "3y+x":
/***/ (function(module) {

module.exports = JSON.parse("{\"Breadcrumbs\":\"Struktura nawigacyjna\"}");

/***/ }),

/***/ 4:
/***/ (function(module, exports) {

/* (ignored) */

/***/ }),

/***/ "4/95":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _filterDOMProps = _interopRequireDefault(__webpack_require__("Cv/Q"));

var _react = _interopRequireWildcard(__webpack_require__("q1tI"));

__webpack_require__("y5dl");

const _excluded = ["className", "children"];

function _getRequireWildcardCache(nodeInterop) {
  if (typeof WeakMap !== "function") return null;
  var cacheBabelInterop = new WeakMap();
  var cacheNodeInterop = new WeakMap();
  return (_getRequireWildcardCache = function (nodeInterop) {
    return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
  })(nodeInterop);
}

function _interopRequireWildcard(obj, nodeInterop) {
  if (!nodeInterop && obj && obj.__esModule) {
    return obj;
  }

  if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
    return {
      default: obj
    };
  }

  var cache = _getRequireWildcardCache(nodeInterop);

  if (cache && cache.has(obj)) {
    return cache.get(obj);
  }

  var newObj = {};
  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;

  for (var key in obj) {
    if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
      var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;

      if (desc && (desc.get || desc.set)) {
        Object.defineProperty(newObj, key, desc);
      } else {
        newObj[key] = obj[key];
      }
    }
  }

  newObj.default = obj;

  if (cache) {
    cache.set(obj, newObj);
  }

  return newObj;
}

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

class UxpTR extends _react.Component {
  constructor(props) {
    super(props);
  }

  render() {
    const _this$props = this.props,
          {
      className,
      children
    } = _this$props,
          otherProps = _objectWithoutProperties(_this$props, _excluded);

    return /*#__PURE__*/_react.default.createElement("tr", _extends({
      className: (0, _classnames.default)('spectrum-Table-row', 'spectrum-Table-row-Override', className)
    }, (0, _filterDOMProps.default)(otherProps)), children);
  }

}

exports.default = UxpTR;

/***/ }),

/***/ "43KI":
/***/ (function(module, exports, __webpack_require__) {

exports = module.exports = __webpack_require__("rXFu");
exports.Stream = exports;
exports.Readable = exports;
exports.Writable = __webpack_require__("3BRs");
exports.Duplex = __webpack_require__("sZro");
exports.Transform = __webpack_require__("J78i");
exports.PassThrough = __webpack_require__("eA/Y");

/***/ }),

/***/ "43Oz":
/***/ (function(module) {

module.exports = JSON.parse("{\"Clear search\":\"Cancella ricerca\"}");

/***/ }),

/***/ "43WE":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Logger; });
/* harmony import */ var _js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("cCFZ");
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2021 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/

class Logger {
    constructor(context) {
        this.fullContext = `[HS]`;
        this.logToSidekick = false;
        this.productionMode = "production" === 'production';
        this.fullContext += `[${context}]`;
    }
    static get(context) {
        return new Logger(context);
    }
    isString(argument) {
        return typeof argument === 'string' || argument instanceof String;
    }
    logWarningsForEmptyLogs(args) {
        return args.reduce((filteredLogs, log) => {
            if (log) {
                // error objects are logged as they are, since JSON.stringify() doesn't handle error objects well
                if (this.isString(log) || (log instanceof Error) || (log.stack && log.message)) {
                    filteredLogs.push(log);
                }
                else {
                    filteredLogs.push(JSON.stringify(log));
                }
            }
            else {
                console.warn(this.fullContext, log);
            }
            return filteredLogs;
        }, []);
    }
    formatLog(args) {
        const logComponents = this.logWarningsForEmptyLogs(args);
        logComponents.length && logComponents.unshift(`${this.fullContext}`);
        return logComponents;
    }
    toggleLogToSidekick() {
        this.logToSidekick = !this.logToSidekick;
    }
    log(...args) {
        console.log(...this.formatLog(args));
        this.logToSidekick && _js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_0__["mainStore"].sidekickStore.setLogs(args.join('\r\n'));
    }
    warn(...args) {
        console.warn(...this.formatLog(args));
    }
    error(...args) {
        console.error(...this.formatLog(args));
    }
    info(...args) {
        // do not log this type of logs if we are on production mode
        if (this.productionMode)
            return;
        console.info(...this.formatLog(args));
    }
}


/***/ }),

/***/ "456K":
/***/ (function(module, exports, __webpack_require__) {

!function (e, a) {
   true ? module.exports = a() : undefined;
}(this, function () {
  "use strict";

  return [{
    locale: "ru",
    pluralRuleFunction: function (e, a) {
      var t = String(e).split("."),
          r = t[0],
          o = !t[1],
          n = r.slice(-1),
          l = r.slice(-2);
      return a ? "other" : o && 1 == n && 11 != l ? "one" : o && n >= 2 && n <= 4 && (l < 12 || l > 14) ? "few" : o && 0 == n || o && n >= 5 && n <= 9 || o && l >= 11 && l <= 14 ? "many" : "other";
    },
    fields: {
      year: {
        displayName: "год",
        relative: {
          0: "в этом году",
          1: "в следующем году",
          "-1": "в прошлом году"
        },
        relativeTime: {
          future: {
            one: "через {0} год",
            few: "через {0} года",
            many: "через {0} лет",
            other: "через {0} года"
          },
          past: {
            one: "{0} год назад",
            few: "{0} года назад",
            many: "{0} лет назад",
            other: "{0} года назад"
          }
        }
      },
      "year-short": {
        displayName: "г.",
        relative: {
          0: "в этом г.",
          1: "в след. г.",
          "-1": "в прошлом г."
        },
        relativeTime: {
          future: {
            one: "через {0} г.",
            few: "через {0} г.",
            many: "через {0} л.",
            other: "через {0} г."
          },
          past: {
            one: "{0} г. назад",
            few: "{0} г. назад",
            many: "{0} л. назад",
            other: "{0} г. назад"
          }
        }
      },
      month: {
        displayName: "месяц",
        relative: {
          0: "в этом месяце",
          1: "в следующем месяце",
          "-1": "в прошлом месяце"
        },
        relativeTime: {
          future: {
            one: "через {0} месяц",
            few: "через {0} месяца",
            many: "через {0} месяцев",
            other: "через {0} месяца"
          },
          past: {
            one: "{0} месяц назад",
            few: "{0} месяца назад",
            many: "{0} месяцев назад",
            other: "{0} месяца назад"
          }
        }
      },
      "month-short": {
        displayName: "мес.",
        relative: {
          0: "в этом мес.",
          1: "в следующем мес.",
          "-1": "в прошлом мес."
        },
        relativeTime: {
          future: {
            one: "через {0} мес.",
            few: "через {0} мес.",
            many: "через {0} мес.",
            other: "через {0} мес."
          },
          past: {
            one: "{0} мес. назад",
            few: "{0} мес. назад",
            many: "{0} мес. назад",
            other: "{0} мес. назад"
          }
        }
      },
      day: {
        displayName: "день",
        relative: {
          0: "сегодня",
          1: "завтра",
          2: "послезавтра",
          "-2": "позавчера",
          "-1": "вчера"
        },
        relativeTime: {
          future: {
            one: "через {0} день",
            few: "через {0} дня",
            many: "через {0} дней",
            other: "через {0} дня"
          },
          past: {
            one: "{0} день назад",
            few: "{0} дня назад",
            many: "{0} дней назад",
            other: "{0} дня назад"
          }
        }
      },
      "day-short": {
        displayName: "дн.",
        relative: {
          0: "сегодня",
          1: "завтра",
          2: "послезавтра",
          "-2": "позавчера",
          "-1": "вчера"
        },
        relativeTime: {
          future: {
            one: "через {0} дн.",
            few: "через {0} дн.",
            many: "через {0} дн.",
            other: "через {0} дн."
          },
          past: {
            one: "{0} дн. назад",
            few: "{0} дн. назад",
            many: "{0} дн. назад",
            other: "{0} дн. назад"
          }
        }
      },
      hour: {
        displayName: "час",
        relative: {
          0: "в этот час"
        },
        relativeTime: {
          future: {
            one: "через {0} час",
            few: "через {0} часа",
            many: "через {0} часов",
            other: "через {0} часа"
          },
          past: {
            one: "{0} час назад",
            few: "{0} часа назад",
            many: "{0} часов назад",
            other: "{0} часа назад"
          }
        }
      },
      "hour-short": {
        displayName: "ч",
        relative: {
          0: "в этот час"
        },
        relativeTime: {
          future: {
            one: "через {0} ч.",
            few: "через {0} ч.",
            many: "через {0} ч.",
            other: "через {0} ч."
          },
          past: {
            one: "{0} ч. назад",
            few: "{0} ч. назад",
            many: "{0} ч. назад",
            other: "{0} ч. назад"
          }
        }
      },
      minute: {
        displayName: "минута",
        relative: {
          0: "в эту минуту"
        },
        relativeTime: {
          future: {
            one: "через {0} минуту",
            few: "через {0} минуты",
            many: "через {0} минут",
            other: "через {0} минуты"
          },
          past: {
            one: "{0} минуту назад",
            few: "{0} минуты назад",
            many: "{0} минут назад",
            other: "{0} минуты назад"
          }
        }
      },
      "minute-short": {
        displayName: "мин.",
        relative: {
          0: "в эту минуту"
        },
        relativeTime: {
          future: {
            one: "через {0} мин.",
            few: "через {0} мин.",
            many: "через {0} мин.",
            other: "через {0} мин."
          },
          past: {
            one: "{0} мин. назад",
            few: "{0} мин. назад",
            many: "{0} мин. назад",
            other: "{0} мин. назад"
          }
        }
      },
      second: {
        displayName: "секунда",
        relative: {
          0: "сейчас"
        },
        relativeTime: {
          future: {
            one: "через {0} секунду",
            few: "через {0} секунды",
            many: "через {0} секунд",
            other: "через {0} секунды"
          },
          past: {
            one: "{0} секунду назад",
            few: "{0} секунды назад",
            many: "{0} секунд назад",
            other: "{0} секунды назад"
          }
        }
      },
      "second-short": {
        displayName: "сек.",
        relative: {
          0: "сейчас"
        },
        relativeTime: {
          future: {
            one: "через {0} сек.",
            few: "через {0} сек.",
            many: "через {0} сек.",
            other: "через {0} сек."
          },
          past: {
            one: "{0} сек. назад",
            few: "{0} сек. назад",
            many: "{0} сек. назад",
            other: "{0} сек. назад"
          }
        }
      }
    }
  }, {
    locale: "ru-BY",
    parentLocale: "ru"
  }, {
    locale: "ru-KG",
    parentLocale: "ru"
  }, {
    locale: "ru-KZ",
    parentLocale: "ru"
  }, {
    locale: "ru-MD",
    parentLocale: "ru"
  }, {
    locale: "ru-UA",
    parentLocale: "ru"
  }];
});

/***/ }),

/***/ "45JA":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/

Object.defineProperty(exports, "__esModule", {
  value: true
});

var Stringify_1 = __webpack_require__("36IM");

exports.Stringify = Stringify_1.default;

/***/ }),

/***/ "46AA":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("path", {
  d: "M46.967 17.635L30.7 16.868l-5.654-15.12a1 1 0 0 0-1.869-.012l-5.883 15.132-16.262.781a1 1 0 0 0-.578 1.779l12.7 10.189-4.308 15.727a1 1 0 0 0 1.513 1.1L24 37.5l13.582 8.86a1 1 0 0 0 1.511-1.1l-4.252-15.643 12.7-10.2a1 1 0 0 0-.574-1.782zM14.492 39.176l3-10.968L8.618 21.1l11.358-.538L24 9.922l4.022 10.636 11.358.538-8.88 7.112 3 10.968-9.5-6.241z"
}));

/***/ }),

/***/ "49sm":
/***/ (function(module, exports) {

var toString = {}.toString;

module.exports = Array.isArray || function (arr) {
  return toString.call(arr) == '[object Array]';
};

/***/ }),

/***/ "4BOe":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXPORTS
__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ bookmark; });
__webpack_require__.d(__webpack_exports__, "b", function() { return /* binding */ unbookmark; });

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__("q1tI");
var react_default = /*#__PURE__*/__webpack_require__.n(react);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/components/ToastManager.tsx + 1 modules
var ToastManager = __webpack_require__("oSyz");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/images/Smock_BookmarkSingle_18_N.svg
function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}


/* harmony default export */ var Smock_BookmarkSingle_18_N = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", _extends({
  xmlns: "http://www.w3.org/2000/svg",
  height: "18",
  viewBox: "0 0 18 18",
  width: "18"
}, props), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M9.031 13.197l4.688 4.688c.155.158.28.1.28-.126V1.5a.5.5 0 0 0-.5-.5H4.506a.5.5 0 0 0-.5.5L4 17.776c0 .228.131.289.293.14z",
  fill: "#6e6e6e"
})));
// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/images/Smock_BookmarkSingleOutline_18_N.svg
function Smock_BookmarkSingleOutline_18_N_extends() {
  Smock_BookmarkSingleOutline_18_N_extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return Smock_BookmarkSingleOutline_18_N_extends.apply(this, arguments);
}


/* harmony default export */ var Smock_BookmarkSingleOutline_18_N = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", Smock_BookmarkSingleOutline_18_N_extends({
  xmlns: "http://www.w3.org/2000/svg",
  height: "18",
  viewBox: "0 0 18 18",
  width: "18"
}, props), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M13 2v13.75l-3.261-3.261-.706-.706-.708.706L5 15.8 5.005 2zm.5-1H4.506a.5.5 0 0 0-.5.5L4 17.776c0 .144.05.221.132.221a.259.259 0 0 0 .161-.081l4.738-4.719 4.688 4.688a.244.244 0 0 0 .159.088c.073 0 .121-.076.121-.214V1.5A.5.5 0 0 0 13.5 1z",
  fill: "#6e6e6e"
})));
// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/utils/action.ts
var utils_action = __webpack_require__("duTG");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/api/libraries-service/LibrariesServiceRequest.ts
var LibrariesServiceRequest = __webpack_require__("Faxu");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/JobMonitor/index.ts + 3 modules
var JobMonitor = __webpack_require__("zTWf");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/constants.ts
var constants = __webpack_require__("YVc3");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/actions/bookmarkLibrary.tsx








const execBookmark = (libraries, refreshLibraries) => {
    const bookmarks = libraries.map(({ id, href, ownership, urn }) => ownership === 'public' ? { id, type: 'public', url: href } : { id, type: 'collab', urn });
    const op = new LibrariesServiceRequest["a" /* default */]('api/v1/libraries/bookmarks')
        .method('POST')
        .content('application/json')
        .json({ bookmarks });
    return op.fetchAndVerify().then(refreshLibraries);
};
const execUnbookmark = (libraries, refreshLibraries) => {
    return Promise.all(libraries.map(({ id }) => new LibrariesServiceRequest["a" /* default */](`/api/v1/libraries/bookmarks/${id}`)
        .method('DELETE')
        .fetchAndVerify())).then(refreshLibraries);
};
const getQueue = (op, intl, count) => {
    const action = op === 'bookmark' ? 'follow' : 'unfollow';
    return new JobMonitor["c" /* JobQueue */]({
        completed: () => ({
            message: intl.formatMessage({ id: `libraries.toast.${action}.success` }, { count }),
            options: {
                variant: 'success',
            },
        }),
        error: () => ({
            message: intl.formatMessage({ id: `libraries.toast.${action}.error` }, { count }),
            options: {
                variant: 'error',
            },
        }),
        pending: () => ({
            message: (react_default.a.createElement(ToastManager["a" /* LoadingMessage */], null, intl.formatMessage({ id: `libraries.toast.${action}.inProgress` }, { count }))),
            options: { variant: undefined, timeout: 0 },
        }),
    });
};
const bookmark = ({ intl, project, projectsClient, uiConfig }) => new utils_action["a" /* default */]({
    label: 'button.follow',
    value: 'bookmark',
    icon: react_default.a.createElement(Smock_BookmarkSingle_18_N, null),
    supportsMultiple: true,
    isVisible: selectionStore => selectionStore.selectedElements.every(element => element.type === constants["n" /* LIBRARY_MIMETYPE */]) &&
        // CCXB-9236: Bookmarks are not allowed for user's private libraries
        selectionStore.selectedElements.some(element => element.externalData.data.ownership !== 'private') &&
        selectionStore.selectedElements.some(element => !element.externalData.data.isFollowing),
    execute: async (elements) => {
        const { jobMonitor } = projectsClient;
        // TODO: This seems possibly incorrect -- I think `lib.externalData` is ResourceExternalData,
        // but there is no "href" anywhere on that field to reference. See this slack thread:
        // https://creativecloud.slack.com/archives/C023Z759UMD/p1629503038273300
        const libraries = elements
            .map(lib => ({ ...lib.externalData.data, urn: lib.id }))
            .filter(lib => lib.ownership !== 'private');
        const promise = execBookmark(libraries, async () => {
            await (project === null || project === void 0 ? void 0 : project.resources.load());
        });
        const job = new JobMonitor["a" /* Job */](promise);
        const queue = getQueue('bookmark', intl, elements.length);
        queue.add(job);
        jobMonitor.add('bookmarkLibrary', queue);
    },
});
const unbookmark = ({ intl, project, projectsClient, uiConfig }) => new utils_action["a" /* default */]({
    label: 'button.unfollow',
    value: 'unbookmark',
    icon: react_default.a.createElement(Smock_BookmarkSingleOutline_18_N, null),
    supportsMultiple: true,
    isVisible: selectionStore => selectionStore.selectedElements.every(element => element.type === constants["n" /* LIBRARY_MIMETYPE */]) &&
        selectionStore.selectedElements.some(element => element.externalData.data.isFollowing),
    execute: async (elements) => {
        const { jobMonitor } = projectsClient;
        const libraries = elements.map(lib => lib.externalData.data);
        const promise = execUnbookmark(libraries, async () => await (project === null || project === void 0 ? void 0 : project.resources.load()));
        const job = new JobMonitor["a" /* Job */](promise);
        const queue = getQueue('unbookmark', intl, elements.length);
        queue.add(job);
        jobMonitor.add('unbookmarkLibrary', queue);
    },
});


/***/ }),

/***/ "4CRX":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2019 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
/**
 * Simple utility to use in async functions in place of using setTimeout. E.g., instead of
 *
 * function checkStatus(httpResponse, retries = 0) {
 *     if (httpResponse.status === 202 && retries < 5) {
 *         setTimeout(() => {
 *              makeRequest().then(response => checkStatus(response, retries + 1));
 *         }, 1000);
 *     }
 *     return Promise.resolve(httpResponse);
 * }
 *
 * Do this
 *
 * async function checkStatus(httpResponse) {
 *     let retries = 0;
 *     while (httpResponse === 202 && retries < 5) {
 *          await sleep(1000);
 *          retries++;
 *          httpResponse = await makeRequest();
 *     }
 *     return httpResponse;
 * }
 *
 * @param milliseconds
 */
const sleep = async (milliseconds = 0) => new Promise(resolve => setTimeout(resolve, milliseconds));
/* harmony default export */ __webpack_exports__["a"] = (sleep);


/***/ }),

/***/ "4Cys":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXTERNAL MODULE: ./node_modules/@ccx-public/acpl-model-uxp-types/src/index.ts
var src = __webpack_require__("XQlG");

// EXTERNAL MODULE: ./node_modules/mobx/lib/mobx.module.js
var mobx_module = __webpack_require__("2vnA");

// EXTERNAL MODULE: ./node_modules/@ccx/acp-fetch/dist/index.js
var dist = __webpack_require__("iMIL");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/types/IAssetModel.ts
var IAssetModel = __webpack_require__("avlf");
var IAssetModel_default = /*#__PURE__*/__webpack_require__.n(IAssetModel);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/date.ts
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2019 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
// TODO CCXCD-10192 consolidate with duplicate function in packages/spaces/src/utils/dateUtils.tsx
function epochToISODate(maybeDate) {
    return maybeDate instanceof Date ? maybeDate : new Date(maybeDate * 1000);
}

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/stores/AssetModel/ACPLAssetPlaceholder.ts
var ACPLAssetPlaceholder = __webpack_require__("RHgb");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/sam-utils.ts
var sam_utils = __webpack_require__("O7FO");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/types/AssetType.ts
var AssetType = __webpack_require__("3WX0");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/types/SyncSuspensionReason.ts
/*************************************************************************
 *   ADOBE CONFIDENTIAL
 *
 *   Copyright 2022 Adobe
 *   All Rights Reserved.
 *
 *   NOTICE:  All information contained herein is, and remains
 *   the property of Adobe and its suppliers, if any. The intellectual
 *   and technical concepts contained herein are proprietary to Adobe
 *   and its suppliers and are protected by all applicable intellectual
 *   property laws, including trade secret and copyright laws.
 *   Dissemination of this information or reproduction of this material
 *   is strictly forbidden unless prior written permission is obtained
 *   from Adobe.
 **************************************************************************/


/**
 * Unidirectional, SAM => ACPFetch
 */
const SAM_ACPF_SYNCSUSPENSIONREASON_MAP = {
    [src["b" /* AssetSyncSuspensionReason */].CloudContentCorrupted]: dist["SyncSuspensionReason"].contentCorrupted,
    [src["b" /* AssetSyncSuspensionReason */].LocalContentCorrupted]: dist["SyncSuspensionReason"].localContentCorrupted,
    [src["b" /* AssetSyncSuspensionReason */].HasTooManyComponents]: dist["SyncSuspensionReason"].hasTooManyComponents,
    [src["b" /* AssetSyncSuspensionReason */].Unknown]: dist["SyncSuspensionReason"].unknown,
    // acp-fetch SyncSuspensionReason doesn't include these
    [src["b" /* AssetSyncSuspensionReason */].HasTooManyChildren]: dist["SyncSuspensionReason"].unknown,
    [src["b" /* AssetSyncSuspensionReason */].MaximumSizeExceeded]: dist["SyncSuspensionReason"].unknown,
    [src["b" /* AssetSyncSuspensionReason */].None]: dist["SyncSuspensionReason"].none,
};

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/types/ISpace.ts
var ISpace = __webpack_require__("j9B6");
var ISpace_default = /*#__PURE__*/__webpack_require__.n(ISpace);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/stores/AssetModel/CDOAssetModel.ts
var CDOAssetModel = __webpack_require__("s8Eg");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/stores/AssetModel/SAMAssetModel.ts
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2020 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
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;
};
var __metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var SAMAssetModel_a, _b, _c, _d, _e, _f, _g, _h;











class SAMAssetModel_SAMAssetModel extends CDOAssetModel["a" /* default */] {
    // NOTE: outside of tests, and this file, client code should only use `fromSamAsset`
    constructor(config) {
        super(config);
        // @deprecated
        this.recoveredDate = '';
        // @deprecated
        this.docState = '';
        // NOTE: clients of SAM must use assetRefString
        this.stableUri = '';
    }
    get id() {
        return this.samAsset.cloudID || this.samAsset.localID;
    }
    get cloudUri() {
        // TODO: for ACPF, this is a URI, but for SAM, this is an URN.
        // https://jira.corp.adobe.com/browse/CCXCD-4294
        return this.samAsset.cloudID;
    }
    get localUri() {
        // TODO: for ACPF, this is a URI, but for SAM, this is an URN.
        // https://jira.corp.adobe.com/browse/CCXCD-4294
        return this.samAsset.localID;
    }
    get cloudID() {
        return this.samAsset.cloudID;
    }
    get localID() {
        return this.samAsset.localID;
    }
    /*
     * @deprecated
     * Use `cloudID` instead
     */
    get urn() {
        return this.samAsset.cloudID;
    }
    /*
     * @deprecated
     * Use `localID` instead
     */
    get localUrn() {
        return this.samAsset.localID;
    }
    get path() {
        return this.samAsset.repoPath;
    }
    get title() {
        // TODO: need nameWithoutExtension field in SAM
        // https://jira.corp.adobe.com/browse/CCXCD-4297
        const { name = '', isNameDCTitle } = this.samAsset;
        return !this.isFolder && !isNameDCTitle && name.includes('.')
            ? name.split('.').slice(0, -1).join('.')
            : name;
    }
    get repoName() {
        // Derive from `repoPath`, as `name` can be dc:title
        return this.samAsset.repoPath.split('/').pop();
    }
    get fileExtension() {
        return this.samAsset.extension;
    }
    get accessDate() {
        // TODO: can this field be deprecated?
        return epochToISODate(this.samAsset.modified);
    }
    get modifiedDate() {
        return epochToISODate(this.samAsset.modified);
    }
    get repoModifiedDate() {
        // TODO: can this field be deprecated?
        return epochToISODate(this.samAsset.modified);
    }
    get createDate() {
        return epochToISODate(this.samAsset.created);
    }
    get shareDate() {
        return epochToISODate(this.samAsset.shared);
    }
    get isShared() {
        return this.samAsset.isSharedWithYouAsset === true;
    }
    get isRenameDisabled() {
        // if the `name` field came from dc:title, it is a legacy document that must be opened for migration before
        // it an be renamed
        return this.samAsset.isNameDCTitle;
    }
    get isCached() {
        // TODO: is this equivalent to (appCached || userPinned) ?
        return this.samAsset.isAvailableOffline;
    }
    get isArtifact() {
        return this.samAsset.isArtifact;
    }
    get isSpaceAsset() {
        return this.samAsset.isSpaceAsset || this.spaceInfo !== undefined;
    }
    get space() {
        return this.spaceInfo;
    }
    get isFile() {
        return this.samAsset.isFile;
    }
    get isComposite() {
        return this.samAsset.isComposite;
    }
    get isFolder() {
        return this.samAsset.isFolder;
    }
    get isConflicted() {
        return this.samAsset.syncStatus === src["a" /* ACPLModel */].AssetSyncStatus.SyncConflict;
    }
    get downloadStatus() {
        return this.samAsset.downloadStatus;
    }
    get uploadStatus() {
        return this.samAsset.uploadStatus;
    }
    get isPendingSync() {
        return this.samAsset.syncStatus === src["a" /* ACPLModel */].AssetSyncStatus.OutOfSync;
    }
    get isSyncing() {
        return this.samAsset.syncStatus === src["a" /* ACPLModel */].AssetSyncStatus.Syncing;
    }
    get isSyncSuspended() {
        return this.syncSuspensionReason !== dist["SyncSuspensionReason"].none;
    }
    get syncSuspensionReason() {
        var _a;
        return ((_a = SAM_ACPF_SYNCSUSPENSIONREASON_MAP[this.samAsset.syncSuspensionReason]) !== null && _a !== void 0 ? _a : dist["SyncSuspensionReason"].none);
    }
    async waitForSync() {
        await Object(mobx_module["I" /* when */])(() => !this.isSyncing);
    }
    get isUserPinned() {
        return this.samAsset.isUserPinned;
    }
    get size() {
        return this.samAsset.sizeInBytes;
    }
    get type() {
        return this.samAsset.mediaType;
    }
    get assetType() {
        if (this.samAsset.isFile) {
            return AssetType["a" /* CDOAssetType */].File;
        }
        if (this.samAsset.isFolder) {
            return AssetType["a" /* CDOAssetType */].Folder;
        }
        if (this.samAsset.isComposite) {
            return AssetType["a" /* CDOAssetType */].Composite;
        }
        return AssetType["a" /* CDOAssetType */].File;
    }
    get assetRef() {
        return this.samAsset.assetRefString;
    }
    // Backward compatibility for code expecting MST models, such as tests. Outside of unit tests,
    // clients should be using ACPFetchAssetModel, or use SAMAssetModel.fromSamAsset()
    static create(config) {
        const model = new SAMAssetModel_SAMAssetModel({});
        const { repoName, type, path, isCached, createDate, modifiedDate, shareDate, size = 0, localUri, cloudUri, assetRef, isUserPinned, } = config;
        const assetType = Object(AssetType["c" /* getAssetType */])(type);
        const samAssetType = AssetType["b" /* CDO_SAM_ASSETTYPE_MAP */][assetType];
        let extension = '';
        if (repoName.includes('.') && samAssetType !== src["a" /* ACPLModel */].AssetType.Folder) {
            const parts = repoName.split('.');
            extension = parts.pop();
        }
        const fixDate = (date) => date ? date.getTime() / 1000 : undefined;
        model.samAsset = new ACPLAssetPlaceholder["a" /* default */]({
            repoPath: path,
            assetType: samAssetType,
            extension,
            isAvailableOffline: isCached,
            created: fixDate(createDate),
            modified: fixDate(modifiedDate),
            shared: fixDate(shareDate),
            mediaType: type,
            sizeInBytes: size,
            localID: localUri,
            cloudID: cloudUri,
            assetRefString: assetRef,
            isUserPinned,
        });
        return model;
    }
    static fromSamAsset(samAsset) {
        const model = new SAMAssetModel_SAMAssetModel({});
        model.samAsset = samAsset;
        return model;
    }
    // SAM manages getting renditions
    // eslint-disable-next-line no-empty-function,class-methods-use-this
    async getRendition() { }
    get rendition() {
        const { thumbnail } = this.samAsset;
        let url;
        if (thumbnail) {
            // [CCXCD-4733] encode `#` only, new URL will take care of the rest.
            // [CCXCD-7106] '^' needs to be encoded for UXP
            const encoded = thumbnail.file.replace('#', '%23').replace('^', '%5E');
            const isRelative = thumbnail.file.charAt(0) === '.';
            url = new URL(isRelative ? encoded : `file://${encoded}`, window.location.href);
            url.searchParams.append('force', thumbnail.hash);
        }
        if (url) {
            return url.href;
        }
        // views will substitute default thumbnail
        return '';
    }
    // eslint-disable-next-line class-methods-use-this
    setRepoName(name) {
        console.error('[SAMAssetModel] setRepoName should not be implemented');
    }
    // eslint-disable-next-line class-methods-use-this
    setTitle(title) {
        console.error('[SAMAssetModel] setTitle should not be implemented');
    }
    // @deprecated
    // eslint-disable-next-line class-methods-use-this
    async getLocalRendition() {
        // TODO: only used by RecentStore, which is only used by Xd, which is switching to
        //       using Homescreen's recents.
        console.error('[SAMAssetModel] getLocalRendition is not implemented');
    }
    async rename(correlationId, newName) {
        try {
            await this.waitForSync();
            return await this.samAsset.rename(newName);
        }
        catch (e) {
            throw Object(sam_utils["b" /* convertSamPromiseErrorToResponse */])(e, this.constructor.name);
        }
    }
    async archive(correlationId) {
        try {
            await this.waitForSync();
            return await this.samAsset.archive();
        }
        catch (e) {
            throw Object(sam_utils["b" /* convertSamPromiseErrorToResponse */])(e, this.constructor.name);
        }
    }
    async restore(correlationId) {
        try {
            await this.waitForSync();
            return await this.samAsset.restore();
        }
        catch (e) {
            throw Object(sam_utils["b" /* convertSamPromiseErrorToResponse */])(e, this.constructor.name);
        }
    }
    async delete(correlationId) {
        try {
            await this.waitForSync();
            return await this.samAsset.permanentlyDelete();
        }
        catch (e) {
            throw Object(sam_utils["b" /* convertSamPromiseErrorToResponse */])(e, this.constructor.name);
        }
    }
    // TODO: use proper type for newParentFolder
    // https://jira.corp.adobe.com/browse/CCXCD-3984
    async move(correlationId, newParentFolder) {
        // NOTE: newParentFolder *must* be a plain SAM model, not a CDO-wrapped SAM model
        //       and not a string
        try {
            await this.waitForSync();
            return await this.samAsset.move(newParentFolder);
        }
        catch (e) {
            throw Object(sam_utils["b" /* convertSamPromiseErrorToResponse */])(e, this.constructor.name);
        }
    }
    async duplicate(correlationId) {
        try {
            await this.waitForSync();
            return await this.samAsset.duplicate(false);
        }
        catch (e) {
            throw Object(sam_utils["b" /* convertSamPromiseErrorToResponse */])(e, this.constructor.name);
        }
    }
    async pin(correlationId) {
        try {
            await this.waitForSync();
            return await this.samAsset.pin();
        }
        catch (e) {
            throw Object(sam_utils["b" /* convertSamPromiseErrorToResponse */])(e, this.constructor.name);
        }
    }
    async unpin(correlationId) {
        try {
            await this.waitForSync();
            return await this.samAsset.unpin();
        }
        catch (e) {
            throw Object(sam_utils["b" /* convertSamPromiseErrorToResponse */])(e, this.constructor.name);
        }
    }
    // eslint-disable-next-line class-methods-use-this
    async export() {
        console.error('[SAMAssetModel] export not implemented');
    }
    async createFolder(correlationId, newName) {
        try {
            return await this.samAsset.createFolder(newName);
        }
        catch (e) {
            throw Object(sam_utils["b" /* convertSamPromiseErrorToResponse */])(e, this.constructor.name);
        }
    }
    async purge(correlationId) {
        // TODO: CCXCD-6892
        this.logger.error('purge not implemented');
        throw new Error('purge not implemented');
    }
    updateFrom(otherModel) { } // eslint-disable-line class-methods-use-this
    async getSpaceInfo() {
        // this is a low-level hack to get spaces info in SAM.cpp.   Eventually
        // we'll move to SAM.js and not need this.
        const untypedSAMAsset = this.samAsset;
        const spaceData = await untypedSAMAsset._asset.getSpace();
        const spaceInfo = {
            spaceId: spaceData.spaceID,
            spaceName: spaceData.name,
            spaceColor: spaceData.color,
            repoId: spaceData.repositoryID,
            outputFolder: undefined,
        };
        this.spaceInfo = spaceInfo;
    }
    setSpace(spaceInfo) {
        this.spaceInfo = spaceInfo;
    }
}
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", typeof (SAMAssetModel_a = typeof ISpace_default.a !== "undefined" && ISpace_default.a) === "function" ? SAMAssetModel_a : Object)
], SAMAssetModel_SAMAssetModel.prototype, "spaceInfo", void 0);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], SAMAssetModel_SAMAssetModel.prototype, "id", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], SAMAssetModel_SAMAssetModel.prototype, "cloudUri", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], SAMAssetModel_SAMAssetModel.prototype, "localUri", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], SAMAssetModel_SAMAssetModel.prototype, "cloudID", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], SAMAssetModel_SAMAssetModel.prototype, "localID", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], SAMAssetModel_SAMAssetModel.prototype, "urn", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], SAMAssetModel_SAMAssetModel.prototype, "localUrn", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], SAMAssetModel_SAMAssetModel.prototype, "path", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], SAMAssetModel_SAMAssetModel.prototype, "title", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], SAMAssetModel_SAMAssetModel.prototype, "repoName", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], SAMAssetModel_SAMAssetModel.prototype, "fileExtension", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], SAMAssetModel_SAMAssetModel.prototype, "accessDate", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], SAMAssetModel_SAMAssetModel.prototype, "modifiedDate", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], SAMAssetModel_SAMAssetModel.prototype, "repoModifiedDate", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], SAMAssetModel_SAMAssetModel.prototype, "createDate", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], SAMAssetModel_SAMAssetModel.prototype, "shareDate", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], SAMAssetModel_SAMAssetModel.prototype, "isShared", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], SAMAssetModel_SAMAssetModel.prototype, "isRenameDisabled", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], SAMAssetModel_SAMAssetModel.prototype, "isCached", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], SAMAssetModel_SAMAssetModel.prototype, "isArtifact", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [])
], SAMAssetModel_SAMAssetModel.prototype, "isSpaceAsset", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", typeof (_b = typeof ISpace_default.a !== "undefined" && ISpace_default.a) === "function" ? _b : Object),
    __metadata("design:paramtypes", [])
], SAMAssetModel_SAMAssetModel.prototype, "space", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [])
], SAMAssetModel_SAMAssetModel.prototype, "isFile", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [])
], SAMAssetModel_SAMAssetModel.prototype, "isComposite", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [])
], SAMAssetModel_SAMAssetModel.prototype, "isFolder", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [])
], SAMAssetModel_SAMAssetModel.prototype, "isConflicted", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", typeof (_c = typeof src["ITransferStatus"] !== "undefined" && src["ITransferStatus"]) === "function" ? _c : Object),
    __metadata("design:paramtypes", [])
], SAMAssetModel_SAMAssetModel.prototype, "downloadStatus", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", typeof (_d = typeof src["ITransferStatus"] !== "undefined" && src["ITransferStatus"]) === "function" ? _d : Object),
    __metadata("design:paramtypes", [])
], SAMAssetModel_SAMAssetModel.prototype, "uploadStatus", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [])
], SAMAssetModel_SAMAssetModel.prototype, "isPendingSync", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [])
], SAMAssetModel_SAMAssetModel.prototype, "isSyncing", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [])
], SAMAssetModel_SAMAssetModel.prototype, "isSyncSuspended", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", typeof (_e = typeof dist["SyncSuspensionReason"] !== "undefined" && dist["SyncSuspensionReason"]) === "function" ? _e : Object),
    __metadata("design:paramtypes", [])
], SAMAssetModel_SAMAssetModel.prototype, "syncSuspensionReason", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], SAMAssetModel_SAMAssetModel.prototype, "isUserPinned", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], SAMAssetModel_SAMAssetModel.prototype, "size", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], SAMAssetModel_SAMAssetModel.prototype, "type", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", typeof (_f = typeof AssetType["a" /* CDOAssetType */] !== "undefined" && AssetType["a" /* CDOAssetType */]) === "function" ? _f : Object),
    __metadata("design:paramtypes", [])
], SAMAssetModel_SAMAssetModel.prototype, "assetType", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], SAMAssetModel_SAMAssetModel.prototype, "assetRef", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], SAMAssetModel_SAMAssetModel.prototype, "rendition", null);
__decorate([
    mobx_module["j" /* action */],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [typeof (_g = typeof IAssetModel_default.a !== "undefined" && IAssetModel_default.a) === "function" ? _g : Object]),
    __metadata("design:returntype", void 0)
], SAMAssetModel_SAMAssetModel.prototype, "updateFrom", null);
__decorate([
    mobx_module["j" /* action */],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", []),
    __metadata("design:returntype", Promise)
], SAMAssetModel_SAMAssetModel.prototype, "getSpaceInfo", null);
__decorate([
    mobx_module["j" /* action */],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [typeof (_h = typeof ISpace_default.a !== "undefined" && ISpace_default.a) === "function" ? _h : Object]),
    __metadata("design:returntype", void 0)
], SAMAssetModel_SAMAssetModel.prototype, "setSpace", null);
/* harmony default export */ var AssetModel_SAMAssetModel = __webpack_exports__["a"] = (SAMAssetModel_SAMAssetModel);


/***/ }),

/***/ "4D8k":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var d = __webpack_require__("9Qh4"),
    NativeSymbol = __webpack_require__("fEpb").Symbol;

module.exports = function (SymbolPolyfill) {
  return Object.defineProperties(SymbolPolyfill, {
    // To ensure proper interoperability with other native functions (e.g. Array.from)
    // fallback to eventual native implementation of given symbol
    hasInstance: d("", NativeSymbol && NativeSymbol.hasInstance || SymbolPolyfill("hasInstance")),
    isConcatSpreadable: d("", NativeSymbol && NativeSymbol.isConcatSpreadable || SymbolPolyfill("isConcatSpreadable")),
    iterator: d("", NativeSymbol && NativeSymbol.iterator || SymbolPolyfill("iterator")),
    match: d("", NativeSymbol && NativeSymbol.match || SymbolPolyfill("match")),
    replace: d("", NativeSymbol && NativeSymbol.replace || SymbolPolyfill("replace")),
    search: d("", NativeSymbol && NativeSymbol.search || SymbolPolyfill("search")),
    species: d("", NativeSymbol && NativeSymbol.species || SymbolPolyfill("species")),
    split: d("", NativeSymbol && NativeSymbol.split || SymbolPolyfill("split")),
    toPrimitive: d("", NativeSymbol && NativeSymbol.toPrimitive || SymbolPolyfill("toPrimitive")),
    toStringTag: d("", NativeSymbol && NativeSymbol.toStringTag || SymbolPolyfill("toStringTag")),
    unscopables: d("", NativeSymbol && NativeSymbol.unscopables || SymbolPolyfill("unscopables"))
  });
};

/***/ }),

/***/ "4Dm8":
/***/ (function(module, exports, __webpack_require__) {

/* WEBPACK VAR INJECTION */(function(global) {/**
 * lodash (Custom Build) <https://lodash.com/>
 * Build: `lodash modularize exports="npm" -o ./`
 * Copyright jQuery Foundation and other contributors <https://jquery.org/>
 * Released under MIT license <https://lodash.com/license>
 * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
 * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
 */

/** Used as references for various `Number` constants. */
var MAX_SAFE_INTEGER = 9007199254740991;
/** `Object#toString` result references. */

var funcTag = '[object Function]',
    genTag = '[object GeneratorFunction]',
    mapTag = '[object Map]',
    objectTag = '[object Object]',
    promiseTag = '[object Promise]',
    setTag = '[object Set]',
    stringTag = '[object String]',
    weakMapTag = '[object WeakMap]';
var dataViewTag = '[object DataView]';
/**
 * Used to match `RegExp`
 * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).
 */

var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
/** Used to detect host constructors (Safari). */

var reIsHostCtor = /^\[object .+?Constructor\]$/;
/** Used to compose unicode character classes. */

var rsAstralRange = '\\ud800-\\udfff',
    rsComboMarksRange = '\\u0300-\\u036f\\ufe20-\\ufe23',
    rsComboSymbolsRange = '\\u20d0-\\u20f0',
    rsVarRange = '\\ufe0e\\ufe0f';
/** Used to compose unicode capture groups. */

var rsAstral = '[' + rsAstralRange + ']',
    rsCombo = '[' + rsComboMarksRange + rsComboSymbolsRange + ']',
    rsFitz = '\\ud83c[\\udffb-\\udfff]',
    rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',
    rsNonAstral = '[^' + rsAstralRange + ']',
    rsRegional = '(?:\\ud83c[\\udde6-\\uddff]){2}',
    rsSurrPair = '[\\ud800-\\udbff][\\udc00-\\udfff]',
    rsZWJ = '\\u200d';
/** Used to compose unicode regexes. */

var reOptMod = rsModifier + '?',
    rsOptVar = '[' + rsVarRange + ']?',
    rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',
    rsSeq = rsOptVar + reOptMod + rsOptJoin,
    rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';
/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */

var reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');
/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */

var reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboMarksRange + rsComboSymbolsRange + rsVarRange + ']');
/** Detect free variable `global` from Node.js. */

var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;
/** Detect free variable `self`. */

var freeSelf = typeof self == 'object' && self && self.Object === Object && self;
/** Used as a reference to the global object. */

var root = freeGlobal || freeSelf || Function('return this')();
/**
 * Gets the size of an ASCII `string`.
 *
 * @private
 * @param {string} string The string inspect.
 * @returns {number} Returns the string size.
 */

var asciiSize = baseProperty('length');
/**
 * The base implementation of `_.property` without support for deep paths.
 *
 * @private
 * @param {string} key The key of the property to get.
 * @returns {Function} Returns the new accessor function.
 */

function baseProperty(key) {
  return function (object) {
    return object == null ? undefined : object[key];
  };
}
/**
 * Gets the value at `key` of `object`.
 *
 * @private
 * @param {Object} [object] The object to query.
 * @param {string} key The key of the property to get.
 * @returns {*} Returns the property value.
 */


function getValue(object, key) {
  return object == null ? undefined : object[key];
}
/**
 * Checks if `string` contains Unicode symbols.
 *
 * @private
 * @param {string} string The string to inspect.
 * @returns {boolean} Returns `true` if a symbol is found, else `false`.
 */


function hasUnicode(string) {
  return reHasUnicode.test(string);
}
/**
 * Checks if `value` is a host object in IE < 9.
 *
 * @private
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a host object, else `false`.
 */


function isHostObject(value) {
  // Many host objects are `Object` objects that can coerce to strings
  // despite having improperly defined `toString` methods.
  var result = false;

  if (value != null && typeof value.toString != 'function') {
    try {
      result = !!(value + '');
    } catch (e) {}
  }

  return result;
}
/**
 * Creates a unary function that invokes `func` with its argument transformed.
 *
 * @private
 * @param {Function} func The function to wrap.
 * @param {Function} transform The argument transform.
 * @returns {Function} Returns the new function.
 */


function overArg(func, transform) {
  return function (arg) {
    return func(transform(arg));
  };
}
/**
 * Gets the number of symbols in `string`.
 *
 * @private
 * @param {string} string The string to inspect.
 * @returns {number} Returns the string size.
 */


function stringSize(string) {
  return hasUnicode(string) ? unicodeSize(string) : asciiSize(string);
}
/**
 * Gets the size of a Unicode `string`.
 *
 * @private
 * @param {string} string The string inspect.
 * @returns {number} Returns the string size.
 */


function unicodeSize(string) {
  var result = reUnicode.lastIndex = 0;

  while (reUnicode.test(string)) {
    result++;
  }

  return result;
}
/** Used for built-in method references. */


var funcProto = Function.prototype,
    objectProto = Object.prototype;
/** Used to detect overreaching core-js shims. */

var coreJsData = root['__core-js_shared__'];
/** Used to detect methods masquerading as native. */

var maskSrcKey = function () {
  var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');
  return uid ? 'Symbol(src)_1.' + uid : '';
}();
/** Used to resolve the decompiled source of functions. */


var funcToString = funcProto.toString;
/** Used to check objects for own properties. */

var hasOwnProperty = objectProto.hasOwnProperty;
/**
 * Used to resolve the
 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
 * of values.
 */

var objectToString = objectProto.toString;
/** Used to detect if a method is native. */

var reIsNative = RegExp('^' + funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&').replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$');
/* Built-in method references for those with the same name as other `lodash` methods. */

var nativeKeys = overArg(Object.keys, Object);
/* Built-in method references that are verified to be native. */

var DataView = getNative(root, 'DataView'),
    Map = getNative(root, 'Map'),
    Promise = getNative(root, 'Promise'),
    Set = getNative(root, 'Set'),
    WeakMap = getNative(root, 'WeakMap');
/** Used to detect maps, sets, and weakmaps. */

var dataViewCtorString = toSource(DataView),
    mapCtorString = toSource(Map),
    promiseCtorString = toSource(Promise),
    setCtorString = toSource(Set),
    weakMapCtorString = toSource(WeakMap);
/**
 * The base implementation of `getTag`.
 *
 * @private
 * @param {*} value The value to query.
 * @returns {string} Returns the `toStringTag`.
 */

function baseGetTag(value) {
  return objectToString.call(value);
}
/**
 * The base implementation of `_.isNative` without bad shim checks.
 *
 * @private
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a native function,
 *  else `false`.
 */


function baseIsNative(value) {
  if (!isObject(value) || isMasked(value)) {
    return false;
  }

  var pattern = isFunction(value) || isHostObject(value) ? reIsNative : reIsHostCtor;
  return pattern.test(toSource(value));
}
/**
 * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.
 *
 * @private
 * @param {Object} object The object to query.
 * @returns {Array} Returns the array of property names.
 */


function baseKeys(object) {
  if (!isPrototype(object)) {
    return nativeKeys(object);
  }

  var result = [];

  for (var key in Object(object)) {
    if (hasOwnProperty.call(object, key) && key != 'constructor') {
      result.push(key);
    }
  }

  return result;
}
/**
 * Gets the native function at `key` of `object`.
 *
 * @private
 * @param {Object} object The object to query.
 * @param {string} key The key of the method to get.
 * @returns {*} Returns the function if it's native, else `undefined`.
 */


function getNative(object, key) {
  var value = getValue(object, key);
  return baseIsNative(value) ? value : undefined;
}
/**
 * Gets the `toStringTag` of `value`.
 *
 * @private
 * @param {*} value The value to query.
 * @returns {string} Returns the `toStringTag`.
 */


var getTag = baseGetTag; // Fallback for data views, maps, sets, and weak maps in IE 11,
// for data views in Edge < 14, and promises in Node.js.

if (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 (value) {
    var result = objectToString.call(value),
        Ctor = result == objectTag ? value.constructor : undefined,
        ctorString = Ctor ? toSource(Ctor) : undefined;

    if (ctorString) {
      switch (ctorString) {
        case dataViewCtorString:
          return dataViewTag;

        case mapCtorString:
          return mapTag;

        case promiseCtorString:
          return promiseTag;

        case setCtorString:
          return setTag;

        case weakMapCtorString:
          return weakMapTag;
      }
    }

    return result;
  };
}
/**
 * Checks if `func` has its source masked.
 *
 * @private
 * @param {Function} func The function to check.
 * @returns {boolean} Returns `true` if `func` is masked, else `false`.
 */


function isMasked(func) {
  return !!maskSrcKey && maskSrcKey in func;
}
/**
 * Checks if `value` is likely a prototype object.
 *
 * @private
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.
 */


function isPrototype(value) {
  var Ctor = value && value.constructor,
      proto = typeof Ctor == 'function' && Ctor.prototype || objectProto;
  return value === proto;
}
/**
 * Converts `func` to its source code.
 *
 * @private
 * @param {Function} func The function to process.
 * @returns {string} Returns the source code.
 */


function toSource(func) {
  if (func != null) {
    try {
      return funcToString.call(func);
    } catch (e) {}

    try {
      return func + '';
    } catch (e) {}
  }

  return '';
}
/**
 * Gets the size of `collection` by returning its length for array-like
 * values or the number of own enumerable string keyed properties for objects.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Collection
 * @param {Array|Object|string} collection The collection to inspect.
 * @returns {number} Returns the collection size.
 * @example
 *
 * _.size([1, 2, 3]);
 * // => 3
 *
 * _.size({ 'a': 1, 'b': 2 });
 * // => 2
 *
 * _.size('pebbles');
 * // => 7
 */


function size(collection) {
  if (collection == null) {
    return 0;
  }

  if (isArrayLike(collection)) {
    return isString(collection) ? stringSize(collection) : collection.length;
  }

  var tag = getTag(collection);

  if (tag == mapTag || tag == setTag) {
    return collection.size;
  }

  return baseKeys(collection).length;
}
/**
 * Checks if `value` is classified as an `Array` object.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is an array, else `false`.
 * @example
 *
 * _.isArray([1, 2, 3]);
 * // => true
 *
 * _.isArray(document.body.children);
 * // => false
 *
 * _.isArray('abc');
 * // => false
 *
 * _.isArray(_.noop);
 * // => false
 */


var isArray = Array.isArray;
/**
 * Checks if `value` is array-like. A value is considered array-like if it's
 * not a function and has a `value.length` that's an integer greater than or
 * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is array-like, else `false`.
 * @example
 *
 * _.isArrayLike([1, 2, 3]);
 * // => true
 *
 * _.isArrayLike(document.body.children);
 * // => true
 *
 * _.isArrayLike('abc');
 * // => true
 *
 * _.isArrayLike(_.noop);
 * // => false
 */

function isArrayLike(value) {
  return value != null && isLength(value.length) && !isFunction(value);
}
/**
 * Checks if `value` is classified as a `Function` object.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a function, else `false`.
 * @example
 *
 * _.isFunction(_);
 * // => true
 *
 * _.isFunction(/abc/);
 * // => false
 */


function isFunction(value) {
  // The use of `Object#toString` avoids issues with the `typeof` operator
  // in Safari 8-9 which returns 'object' for typed array and other constructors.
  var tag = isObject(value) ? objectToString.call(value) : '';
  return tag == funcTag || tag == genTag;
}
/**
 * Checks if `value` is a valid array-like length.
 *
 * **Note:** This method is loosely based on
 * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
 * @example
 *
 * _.isLength(3);
 * // => true
 *
 * _.isLength(Number.MIN_VALUE);
 * // => false
 *
 * _.isLength(Infinity);
 * // => false
 *
 * _.isLength('3');
 * // => false
 */


function isLength(value) {
  return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
}
/**
 * Checks if `value` is the
 * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
 * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is an object, else `false`.
 * @example
 *
 * _.isObject({});
 * // => true
 *
 * _.isObject([1, 2, 3]);
 * // => true
 *
 * _.isObject(_.noop);
 * // => true
 *
 * _.isObject(null);
 * // => false
 */


function isObject(value) {
  var type = typeof value;
  return !!value && (type == 'object' || type == 'function');
}
/**
 * Checks if `value` is object-like. A value is object-like if it's not `null`
 * and has a `typeof` result of "object".
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
 * @example
 *
 * _.isObjectLike({});
 * // => true
 *
 * _.isObjectLike([1, 2, 3]);
 * // => true
 *
 * _.isObjectLike(_.noop);
 * // => false
 *
 * _.isObjectLike(null);
 * // => false
 */


function isObjectLike(value) {
  return !!value && typeof value == 'object';
}
/**
 * Checks if `value` is classified as a `String` primitive or object.
 *
 * @static
 * @since 0.1.0
 * @memberOf _
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a string, else `false`.
 * @example
 *
 * _.isString('abc');
 * // => true
 *
 * _.isString(1);
 * // => false
 */


function isString(value) {
  return typeof value == 'string' || !isArray(value) && isObjectLike(value) && objectToString.call(value) == stringTag;
}

module.exports = size;
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("yLpj")))

/***/ }),

/***/ "4FB6":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
Object.defineProperty(exports, "Table", {
  enumerable: true,
  get: function () {
    return _Table.default;
  }
});
Object.defineProperty(exports, "THead", {
  enumerable: true,
  get: function () {
    return _THead.default;
  }
});
Object.defineProperty(exports, "TBody", {
  enumerable: true,
  get: function () {
    return _TBody.default;
  }
});
Object.defineProperty(exports, "TR", {
  enumerable: true,
  get: function () {
    return _MaybeUxpTR.default;
  }
});
Object.defineProperty(exports, "TD", {
  enumerable: true,
  get: function () {
    return _TD.default;
  }
});
Object.defineProperty(exports, "TH", {
  enumerable: true,
  get: function () {
    return _TH.default;
  }
});

var _Table = _interopRequireDefault(__webpack_require__("O4R7"));

var _THead = _interopRequireDefault(__webpack_require__("bu2Z"));

var _TBody = _interopRequireDefault(__webpack_require__("K0X4"));

var _MaybeUxpTR = _interopRequireDefault(__webpack_require__("yMj6"));

var _TD = _interopRequireDefault(__webpack_require__("m7JM"));

var _TH = _interopRequireDefault(__webpack_require__("wkSR"));

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

/***/ }),

/***/ "4Hv8":
/***/ (function(module, exports, __webpack_require__) {

var md5 = __webpack_require__("WnY+");

var RIPEMD160 = __webpack_require__("tcrS");

var sha = __webpack_require__("afKu");

var Buffer = __webpack_require__("hwdV").Buffer;

var checkParameters = __webpack_require__("fSpj");

var defaultEncoding = __webpack_require__("n53Y");

var toBuffer = __webpack_require__("i+bA");

var ZEROS = Buffer.alloc(128);
var sizes = {
  md5: 16,
  sha1: 20,
  sha224: 28,
  sha256: 32,
  sha384: 48,
  sha512: 64,
  rmd160: 20,
  ripemd160: 20
};

function Hmac(alg, key, saltLen) {
  var hash = getDigest(alg);
  var blocksize = alg === 'sha512' || alg === 'sha384' ? 128 : 64;

  if (key.length > blocksize) {
    key = hash(key);
  } else if (key.length < blocksize) {
    key = Buffer.concat([key, ZEROS], blocksize);
  }

  var ipad = Buffer.allocUnsafe(blocksize + sizes[alg]);
  var opad = Buffer.allocUnsafe(blocksize + sizes[alg]);

  for (var i = 0; i < blocksize; i++) {
    ipad[i] = key[i] ^ 0x36;
    opad[i] = key[i] ^ 0x5C;
  }

  var ipad1 = Buffer.allocUnsafe(blocksize + saltLen + 4);
  ipad.copy(ipad1, 0, 0, blocksize);
  this.ipad1 = ipad1;
  this.ipad2 = ipad;
  this.opad = opad;
  this.alg = alg;
  this.blocksize = blocksize;
  this.hash = hash;
  this.size = sizes[alg];
}

Hmac.prototype.run = function (data, ipad) {
  data.copy(ipad, this.blocksize);
  var h = this.hash(ipad);
  h.copy(this.opad, this.blocksize);
  return this.hash(this.opad);
};

function getDigest(alg) {
  function shaFunc(data) {
    return sha(alg).update(data).digest();
  }

  function rmd160Func(data) {
    return new RIPEMD160().update(data).digest();
  }

  if (alg === 'rmd160' || alg === 'ripemd160') return rmd160Func;
  if (alg === 'md5') return md5;
  return shaFunc;
}

function pbkdf2(password, salt, iterations, keylen, digest) {
  checkParameters(iterations, keylen);
  password = toBuffer(password, defaultEncoding, 'Password');
  salt = toBuffer(salt, defaultEncoding, 'Salt');
  digest = digest || 'sha1';
  var hmac = new Hmac(digest, password, salt.length);
  var DK = Buffer.allocUnsafe(keylen);
  var block1 = Buffer.allocUnsafe(salt.length + 4);
  salt.copy(block1, 0, 0, salt.length);
  var destPos = 0;
  var hLen = sizes[digest];
  var l = Math.ceil(keylen / hLen);

  for (var i = 1; i <= l; i++) {
    block1.writeUInt32BE(i, salt.length);
    var T = hmac.run(block1, hmac.ipad1);
    var U = T;

    for (var j = 1; j < iterations; j++) {
      U = hmac.run(U, hmac.ipad2);

      for (var k = 0; k < hLen; k++) T[k] ^= U[k];
    }

    T.copy(DK, destPos);
    destPos += hLen;
  }

  return DK;
}

module.exports = pbkdf2;

/***/ }),

/***/ "4JXv":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXTERNAL MODULE: ./node_modules/classnames/index.js
var classnames = __webpack_require__("TSYQ");
var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);

// EXTERNAL MODULE: ./node_modules/mobx-react/index.module.js
var index_module = __webpack_require__("okNM");

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__("q1tI");
var react_default = /*#__PURE__*/__webpack_require__.n(react);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/constants.ts
var constants = __webpack_require__("a375");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/assets/document-icons/filetype_generic_darkUI_128.svg
function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}


/* harmony default export */ var filetype_generic_darkUI_128 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", _extends({
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 128 128"
}, props), /*#__PURE__*/react_default.a.createElement("path", {
  "data-name": "White Bg",
  d: "M24 126.01a10.011 10.011 0 0 1-10-10v-104a10.011 10.011 0 0 1 10-10h61.52a7.946 7.946 0 0 1 5.647 2.334l20.48 20.407A7.948 7.948 0 0 1 114 30.418v85.593a10.012 10.012 0 0 1-10 10z",
  fill: "#252525"
}), /*#__PURE__*/react_default.a.createElement("path", {
  "data-name": "Gray Outline",
  d: "M113.06 23.33L92.58 2.93A9.958 9.958 0 0 0 85.52.01H24a12.01 12.01 0 0 0-12 12v104a12.01 12.01 0 0 0 12 12h80a12.01 12.01 0 0 0 12-12V30.42a10.09 10.09 0 0 0-2.94-7.09zM90 6l20.06 19.99H92a2 2 0 0 1-2-2zm22 110.01a7.998 7.998 0 0 1-8 8H24a7.998 7.998 0 0 1-8-8v-104a7.998 7.998 0 0 1 8-8h61.52c.16 0 .32.01.48.02v19.96a6.005 6.005 0 0 0 6 6h19.98c.01.14.02.29.02.43z",
  fill: "#6e6e6e"
})));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/assets/document-icons/filetype_generic_lightUI_128.svg
function filetype_generic_lightUI_128_extends() {
  filetype_generic_lightUI_128_extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return filetype_generic_lightUI_128_extends.apply(this, arguments);
}


/* harmony default export */ var filetype_generic_lightUI_128 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", filetype_generic_lightUI_128_extends({
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 128 128"
}, props), /*#__PURE__*/react_default.a.createElement("path", {
  "data-name": "White Bg",
  d: "M24 126.01a10.011 10.011 0 0 1-10-10v-104a10.011 10.011 0 0 1 10-10h61.52a7.946 7.946 0 0 1 5.647 2.334l20.48 20.407A7.948 7.948 0 0 1 114 30.418v85.593a10.012 10.012 0 0 1-10 10z",
  fill: "#fff"
}), /*#__PURE__*/react_default.a.createElement("path", {
  "data-name": "Gray Outline",
  d: "M113.06 23.33L92.58 2.93A9.958 9.958 0 0 0 85.52.01H24a12.01 12.01 0 0 0-12 12v104a12.01 12.01 0 0 0 12 12h80a12.01 12.01 0 0 0 12-12V30.42a10.09 10.09 0 0 0-2.94-7.09zM90 6l20.06 19.99H92a2 2 0 0 1-2-2zm22 110.01a7.998 7.998 0 0 1-8 8H24a7.998 7.998 0 0 1-8-8v-104a7.998 7.998 0 0 1 8-8h61.52c.16 0 .32.01.48.02v19.96a6.005 6.005 0 0 0 6 6h19.98c.01.14.02.29.02.43z",
  fill: "#b3b3b3"
})));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/assets/document-icons/acrobat_Audio_Generic_darkUI_128.svg
function acrobat_Audio_Generic_darkUI_128_extends() {
  acrobat_Audio_Generic_darkUI_128_extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return acrobat_Audio_Generic_darkUI_128_extends.apply(this, arguments);
}


/* harmony default export */ var acrobat_Audio_Generic_darkUI_128 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", acrobat_Audio_Generic_darkUI_128_extends({
  "data-name": "Layer 1",
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 128 128"
}, props), /*#__PURE__*/react_default.a.createElement("path", {
  "data-name": "White Bg",
  d: "M24 126a10.011 10.011 0 0 1-10-10V12A10.011 10.011 0 0 1 24 2h61.52a7.946 7.946 0 0 1 5.647 2.333l20.48 20.408A8.053 8.053 0 0 1 114 30.408V116a10.012 10.012 0 0 1-10 10z",
  fill: "#252525"
}), /*#__PURE__*/react_default.a.createElement("path", {
  "data-name": "Gray Outline",
  d: "M85.52 4a6 6 0 0 1 4.235 1.75l20.48 20.408a6 6 0 0 1 1.765 4.25V116a8 8 0 0 1-8 8H24a8 8 0 0 1-8-8V12a8 8 0 0 1 8-8h61.52m0-4H24a12.014 12.014 0 0 0-12 12v104a12.014 12.014 0 0 0 12 12h80a12.014 12.014 0 0 0 12-12V30.408a10.068 10.068 0 0 0-2.941-7.084L92.579 2.916A9.936 9.936 0 0 0 85.52 0z",
  fill: "#6e6e6e"
}), /*#__PURE__*/react_default.a.createElement("g", {
  fill: "#e3e3e3"
}, /*#__PURE__*/react_default.a.createElement("path", {
  d: "M63.976 71a1.975 1.975 0 0 1-1.938-2.031v-33a1.98 1.98 0 0 1 3.958-.065v33A2.102 2.102 0 0 1 63.976 71z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M55 64a2.203 2.203 0 0 1-1.969-2.25l.027-18.87a1.91 1.91 0 0 1 2.067-1.818 1.855 1.855 0 0 1 1.87 1.955l-.026 18.87A2.073 2.073 0 0 1 55 64z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M72.996 75.958a2.106 2.106 0 0 1-1.86-2.24l.066-43.958a1.693 1.693 0 0 1 1.86-1.76 1.89 1.89 0 0 1 1.921 1.948l-.066 43.958a1.98 1.98 0 0 1-1.921 2.052z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M45.936 73.783A1.754 1.754 0 0 1 44.02 72V33.6a2.127 2.127 0 0 1 1.915-2.217 1.974 1.974 0 0 1 2.002 1.967v38.4a2.03 2.03 0 0 1-2.002 2.033z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M81.992 61.82a1.975 1.975 0 0 1-1.93-2.039v-14.4a1.907 1.907 0 0 1 1.93-1.96 1.969 1.969 0 0 1 1.945 2.017v14.4a1.94 1.94 0 0 1-1.945 1.983z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M36.938 64A2.03 2.03 0 0 1 35 61.906V42.97a1.87 1.87 0 0 1 1.938-1.907 1.982 1.982 0 0 1 2.034 1.944v18.938A2.078 2.078 0 0 1 36.937 64z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M90.919 68.938A1.97 1.97 0 0 1 89 66.894v-28.8a1.82 1.82 0 0 1 1.873-1.91 2.016 2.016 0 0 1 2.002 2.016V67a1.91 1.91 0 0 1-1.956 1.938z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/assets/document-icons/acrobat_Audio_Generic_lightUI_128.svg
function acrobat_Audio_Generic_lightUI_128_extends() {
  acrobat_Audio_Generic_lightUI_128_extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return acrobat_Audio_Generic_lightUI_128_extends.apply(this, arguments);
}


/* harmony default export */ var acrobat_Audio_Generic_lightUI_128 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", acrobat_Audio_Generic_lightUI_128_extends({
  "data-name": "Layer 1",
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 128 128"
}, props), /*#__PURE__*/react_default.a.createElement("path", {
  "data-name": "White Bg",
  d: "M24 126a10.011 10.011 0 0 1-10-10V12A10.011 10.011 0 0 1 24 2h61.52a7.946 7.946 0 0 1 5.647 2.333l20.48 20.408A8.053 8.053 0 0 1 114 30.408V116a10.012 10.012 0 0 1-10 10z",
  fill: "#fff"
}), /*#__PURE__*/react_default.a.createElement("path", {
  "data-name": "Gray Outline",
  d: "M85.52 4a6 6 0 0 1 4.235 1.75l20.48 20.408a6 6 0 0 1 1.765 4.25V116a8 8 0 0 1-8 8H24a8 8 0 0 1-8-8V12a8 8 0 0 1 8-8h61.52m0-4H24a12.014 12.014 0 0 0-12 12v104a12.014 12.014 0 0 0 12 12h80a12.014 12.014 0 0 0 12-12V30.408a10.068 10.068 0 0 0-2.941-7.084L92.579 2.916A9.936 9.936 0 0 0 85.52 0z",
  fill: "#b3b3b3"
}), /*#__PURE__*/react_default.a.createElement("g", {
  fill: "#4b4b4b"
}, /*#__PURE__*/react_default.a.createElement("path", {
  d: "M63.976 71a1.975 1.975 0 0 1-1.938-2.031v-33a1.98 1.98 0 0 1 3.958-.065v33A2.102 2.102 0 0 1 63.976 71z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M55 64a2.203 2.203 0 0 1-1.969-2.25l.027-18.87a1.91 1.91 0 0 1 2.067-1.818 1.855 1.855 0 0 1 1.87 1.955l-.026 18.87A2.073 2.073 0 0 1 55 64z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M72.996 75.958a2.106 2.106 0 0 1-1.86-2.24l.066-43.958a1.693 1.693 0 0 1 1.86-1.76 1.89 1.89 0 0 1 1.921 1.948l-.066 43.958a1.98 1.98 0 0 1-1.921 2.052z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M45.936 73.783A1.754 1.754 0 0 1 44.02 72V33.6a2.127 2.127 0 0 1 1.915-2.217 1.974 1.974 0 0 1 2.002 1.967v38.4a2.03 2.03 0 0 1-2.002 2.033z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M81.992 61.82a1.975 1.975 0 0 1-1.93-2.039v-14.4a1.907 1.907 0 0 1 1.93-1.96 1.969 1.969 0 0 1 1.945 2.017v14.4a1.94 1.94 0 0 1-1.945 1.983z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M36.938 64A2.03 2.03 0 0 1 35 61.906V42.97a1.87 1.87 0 0 1 1.938-1.907 1.982 1.982 0 0 1 2.034 1.944v18.938A2.078 2.078 0 0 1 36.937 64z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M90.919 68.938A1.97 1.97 0 0 1 89 66.894v-28.8a1.82 1.82 0 0 1 1.873-1.91 2.016 2.016 0 0 1 2.002 2.016V67a1.91 1.91 0 0 1-1.956 1.938z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/assets/document-icons/acrobat_Image_Generic_darkUI_128.svg
function acrobat_Image_Generic_darkUI_128_extends() {
  acrobat_Image_Generic_darkUI_128_extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return acrobat_Image_Generic_darkUI_128_extends.apply(this, arguments);
}


/* harmony default export */ var acrobat_Image_Generic_darkUI_128 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", acrobat_Image_Generic_darkUI_128_extends({
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 128 128"
}, props), /*#__PURE__*/react_default.a.createElement("path", {
  "data-name": "White Bg",
  d: "M24 126a10.011 10.011 0 0 1-10-10V12A10.011 10.011 0 0 1 24 2h61.52a7.946 7.946 0 0 1 5.647 2.333l20.48 20.408A8.053 8.053 0 0 1 114 30.408V116a10.012 10.012 0 0 1-10 10z",
  fill: "#252525"
}), /*#__PURE__*/react_default.a.createElement("path", {
  "data-name": "Gray Outline",
  d: "M85.52 4a6 6 0 0 1 4.235 1.75l20.48 20.408a6 6 0 0 1 1.765 4.25V116a8 8 0 0 1-8 8H24a8 8 0 0 1-8-8V12a8 8 0 0 1 8-8h61.52m0-4H24a12.014 12.014 0 0 0-12 12v104a12.014 12.014 0 0 0 12 12h80a12.014 12.014 0 0 0 12-12V30.408a10.068 10.068 0 0 0-2.941-7.084L92.579 2.916A9.936 9.936 0 0 0 85.52 0z",
  fill: "#6e6e6e"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M86.692 45.031H71.97l-.015-14.987a2.202 2.202 0 0 0-1.482-1.786 1.964 1.964 0 0 0-2.112.461L37.64 61.36a2.844 2.844 0 0 0-.365 2.572 1.833 1.833 0 0 0 1.766 1.026h13.917A11.978 11.978 0 0 0 64.962 76a12.809 12.809 0 0 0 11.52-8h10.092A3.402 3.402 0 0 0 90 64.296V49.244c0-2.111-1.195-4.213-3.308-4.213zM43.476 61L68 34.854V45a4.087 4.087 0 0 0-3.998 3.952v2.006c-5.453.423-9.946 4.857-11.175 10.042zm21.486 11.285c-4.436 0-7.548-3.36-8.028-7.68a7.513 7.513 0 0 1-.059-.96 8.4 8.4 0 0 1 .499-2.88c1.095-3.072 3.306-5.338 6.628-5.702a7.75 7.75 0 0 1 .96-.058 5.545 5.545 0 0 1 2.32.52 8.621 8.621 0 0 1 3.84 2.727 8.61 8.61 0 0 1 .46 10.215 7.667 7.667 0 0 1-6.62 3.818z",
  fill: "#e3e3e3"
})));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/assets/document-icons/acrobat_Image_Generic_lightUI_128.svg
function acrobat_Image_Generic_lightUI_128_extends() {
  acrobat_Image_Generic_lightUI_128_extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return acrobat_Image_Generic_lightUI_128_extends.apply(this, arguments);
}


/* harmony default export */ var acrobat_Image_Generic_lightUI_128 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", acrobat_Image_Generic_lightUI_128_extends({
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 128 128"
}, props), /*#__PURE__*/react_default.a.createElement("path", {
  "data-name": "White Bg",
  d: "M24 126a10.011 10.011 0 0 1-10-10V12A10.011 10.011 0 0 1 24 2h61.52a7.946 7.946 0 0 1 5.647 2.333l20.48 20.408A8.053 8.053 0 0 1 114 30.408V116a10.012 10.012 0 0 1-10 10z",
  fill: "#fff"
}), /*#__PURE__*/react_default.a.createElement("path", {
  "data-name": "Gray Outline",
  d: "M85.52 4a6 6 0 0 1 4.235 1.75l20.48 20.408a6 6 0 0 1 1.765 4.25V116a8 8 0 0 1-8 8H24a8 8 0 0 1-8-8V12a8 8 0 0 1 8-8h61.52m0-4H24a12.014 12.014 0 0 0-12 12v104a12.014 12.014 0 0 0 12 12h80a12.014 12.014 0 0 0 12-12V30.408a10.068 10.068 0 0 0-2.941-7.084L92.579 2.916A9.936 9.936 0 0 0 85.52 0z",
  fill: "#b3b3b3"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M86.692 45.031H71.97l-.015-14.987a2.202 2.202 0 0 0-1.482-1.786 1.964 1.964 0 0 0-2.112.461L37.64 61.36a2.844 2.844 0 0 0-.365 2.572 1.833 1.833 0 0 0 1.766 1.026h13.917A11.978 11.978 0 0 0 64.962 76a12.809 12.809 0 0 0 11.52-8h10.092A3.402 3.402 0 0 0 90 64.296V49.244c0-2.111-1.195-4.213-3.308-4.213zM43.476 61L68 34.854V45a4.087 4.087 0 0 0-3.998 3.952v2.006c-5.453.423-9.946 4.857-11.175 10.042zm21.486 11.285c-4.436 0-7.548-3.36-8.028-7.68a7.513 7.513 0 0 1-.059-.96 8.4 8.4 0 0 1 .499-2.88c1.095-3.072 3.306-5.338 6.628-5.702a7.75 7.75 0 0 1 .96-.058 5.545 5.545 0 0 1 2.32.52 8.621 8.621 0 0 1 3.84 2.727 8.61 8.61 0 0 1 .46 10.215 7.667 7.667 0 0 1-6.62 3.818z",
  fill: "#4b4b4b"
})));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/assets/document-icons/acrobat_Text_Generic_darkUI_128.svg
function acrobat_Text_Generic_darkUI_128_extends() {
  acrobat_Text_Generic_darkUI_128_extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return acrobat_Text_Generic_darkUI_128_extends.apply(this, arguments);
}


/* harmony default export */ var acrobat_Text_Generic_darkUI_128 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", acrobat_Text_Generic_darkUI_128_extends({
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 128 128"
}, props), /*#__PURE__*/react_default.a.createElement("path", {
  "data-name": "White Bg",
  d: "M24 126a10.011 10.011 0 0 1-10-10V12A10.011 10.011 0 0 1 24 2h61.52a7.946 7.946 0 0 1 5.647 2.333l20.48 20.408A8.053 8.053 0 0 1 114 30.408V116a10.012 10.012 0 0 1-10 10z",
  fill: "#252525"
}), /*#__PURE__*/react_default.a.createElement("path", {
  "data-name": "Gray Outline",
  d: "M85.52 4a6 6 0 0 1 4.235 1.75l20.48 20.408a6 6 0 0 1 1.765 4.25V116a8 8 0 0 1-8 8H24a8 8 0 0 1-8-8V12a8 8 0 0 1 8-8h61.52m0-4H24a12.014 12.014 0 0 0-12 12v104a12.014 12.014 0 0 0 12 12h80a12.014 12.014 0 0 0 12-12V30.408a10.068 10.068 0 0 0-2.941-7.084L92.579 2.916A9.936 9.936 0 0 0 85.52 0z",
  fill: "#6e6e6e"
}), /*#__PURE__*/react_default.a.createElement("g", {
  fill: "#e3e3e3"
}, /*#__PURE__*/react_default.a.createElement("path", {
  d: "M30.561 28.238a1.264 1.264 0 0 0-1.293 1.207v7.263a1.229 1.229 0 0 0 1.233 1.228l2.937-.011a1.233 1.233 0 0 0 1.233-1.233l-.044-4.228 9.887.034-.017 26.117-4.117.005a1.339 1.339 0 0 0-1.31 1.277l.003 1.804a1.284 1.284 0 0 0 1.333 1.188h12.496a1.3 1.3 0 0 0 1.284-1.26v-1.827a1.258 1.258 0 0 0-1.309-1.182l-4.09.003V32.481l9.82-.017-.01 4.24a1.082 1.082 0 0 0 1.061 1.215l3.07.006a1.186 1.186 0 0 0 1.198-1.211l.006-7.29a1.16 1.16 0 0 0-1.192-1.186z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M96.214 62.889H65.152a2.136 2.136 0 0 1-2.14-2.018c0-1.622.97-2.256 2.458-2.256h31.08a2.094 2.094 0 0 1 2.17 2.112 2.327 2.327 0 0 1-2.506 2.162z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M96.282 74.828H41.204a2.147 2.147 0 0 1-2.168-2.06 2.251 2.251 0 0 1 2.52-2.197h55.056a2.05 2.05 0 0 1 2.097 1.876c.147 1.528-.98 2.38-2.427 2.38z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M96.562 50.95H65.164a2.147 2.147 0 0 1-2.148-2.155v-.013a2.17 2.17 0 0 1 2.417-2.113l30.908-.022a2.155 2.155 0 0 1 2.391 2.125 2.17 2.17 0 0 1-2.17 2.178z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/assets/document-icons/acrobat_Text_Generic_lightUI_128.svg
function acrobat_Text_Generic_lightUI_128_extends() {
  acrobat_Text_Generic_lightUI_128_extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return acrobat_Text_Generic_lightUI_128_extends.apply(this, arguments);
}


/* harmony default export */ var acrobat_Text_Generic_lightUI_128 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", acrobat_Text_Generic_lightUI_128_extends({
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 128 128"
}, props), /*#__PURE__*/react_default.a.createElement("path", {
  "data-name": "White Bg",
  d: "M24 126a10.011 10.011 0 0 1-10-10V12A10.011 10.011 0 0 1 24 2h61.52a7.946 7.946 0 0 1 5.647 2.333l20.48 20.408A8.053 8.053 0 0 1 114 30.408V116a10.012 10.012 0 0 1-10 10z",
  fill: "#fff"
}), /*#__PURE__*/react_default.a.createElement("path", {
  "data-name": "Gray Outline",
  d: "M85.52 4a6 6 0 0 1 4.235 1.75l20.48 20.408a6 6 0 0 1 1.765 4.25V116a8 8 0 0 1-8 8H24a8 8 0 0 1-8-8V12a8 8 0 0 1 8-8h61.52m0-4H24a12.014 12.014 0 0 0-12 12v104a12.014 12.014 0 0 0 12 12h80a12.014 12.014 0 0 0 12-12V30.408a10.068 10.068 0 0 0-2.941-7.084L92.579 2.916A9.936 9.936 0 0 0 85.52 0z",
  fill: "#b3b3b3"
}), /*#__PURE__*/react_default.a.createElement("g", {
  fill: "#4b4b4b"
}, /*#__PURE__*/react_default.a.createElement("path", {
  d: "M30.561 28.238a1.264 1.264 0 0 0-1.293 1.207v7.263a1.229 1.229 0 0 0 1.233 1.228l2.937-.011a1.233 1.233 0 0 0 1.233-1.233l-.044-4.228 9.887.034-.017 26.117-4.117.005a1.339 1.339 0 0 0-1.31 1.277l.003 1.804a1.284 1.284 0 0 0 1.333 1.188h12.496a1.3 1.3 0 0 0 1.284-1.26v-1.827a1.258 1.258 0 0 0-1.309-1.182l-4.09.003V32.481l9.82-.017-.01 4.24a1.082 1.082 0 0 0 1.061 1.215l3.07.006a1.186 1.186 0 0 0 1.198-1.211l.006-7.29a1.16 1.16 0 0 0-1.192-1.186z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M96.214 62.889H65.152a2.136 2.136 0 0 1-2.14-2.018c0-1.622.97-2.256 2.458-2.256h31.08a2.094 2.094 0 0 1 2.17 2.112 2.327 2.327 0 0 1-2.506 2.162z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M96.282 74.828H41.204a2.147 2.147 0 0 1-2.168-2.06 2.251 2.251 0 0 1 2.52-2.197h55.056a2.05 2.05 0 0 1 2.097 1.876c.147 1.528-.98 2.38-2.427 2.38z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M96.562 50.95H65.164a2.147 2.147 0 0 1-2.148-2.155v-.013a2.17 2.17 0 0 1 2.417-2.113l30.908-.022a2.155 2.155 0 0 1 2.391 2.125 2.17 2.17 0 0 1-2.17 2.178z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/assets/document-icons/acrobat_PDF_darkUI_128.svg
function acrobat_PDF_darkUI_128_extends() {
  acrobat_PDF_darkUI_128_extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return acrobat_PDF_darkUI_128_extends.apply(this, arguments);
}


/* harmony default export */ var acrobat_PDF_darkUI_128 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", acrobat_PDF_darkUI_128_extends({
  "data-name": "Layer 1",
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 128 128"
}, props), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M24 126a10.03 10.03 0 0 1-10-10V12A10.03 10.03 0 0 1 24 2h61.5a7.865 7.865 0 0 1 5.6 2.3l20.5 20.4a8.196 8.196 0 0 1 2.4 5.7V116a10.03 10.03 0 0 1-10 10z",
  fill: "#080808"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M85.5 4a5.598 5.598 0 0 1 4.2 1.8l20.5 20.4a6.174 6.174 0 0 1 1.8 4.2V116a8.024 8.024 0 0 1-8 8H24a8.024 8.024 0 0 1-8-8V12a8.024 8.024 0 0 1 8-8h61.5m0-4H24a12.035 12.035 0 0 0-12 12v104a12.035 12.035 0 0 0 12 12h80a12.035 12.035 0 0 0 12-12V30.4a10.515 10.515 0 0 0-2.9-7.1L92.6 2.9A9.898 9.898 0 0 0 85.5 0z",
  fill: "#fa0f00"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M43.62 91.734a.249.249 0 0 1 .031-.14.152.152 0 0 1 .137-.056 62.595 62.595 0 0 1 1.961-.063c.745-.014 1.563-.021 2.402-.021a7.151 7.151 0 0 1 5.133 1.699 5.617 5.617 0 0 1 1.609 4.175 5.682 5.682 0 0 1-2.032 4.693 7.81 7.81 0 0 1-4.905 1.462c-.322 0-.539-.007-.731-.014s-.36-.014-.584-.014v6.517a.207.207 0 0 1-.045.151.2.2 0 0 1-.15.045h-2.631a.204.204 0 0 1-.15-.045.208.208 0 0 1-.045-.151V91.734zm3.02 9.007c.196.014.371.021.581.025s.455.004.79.004a4.558 4.558 0 0 0 2.661-.685 3.655 3.655 0 0 0 .231-5.13 3.885 3.885 0 0 0-2.64-.815c-.336 0-.665.007-.948.018s-.521.024-.675.038v6.545zm11.274-8.979a.24.24 0 0 1 .035-.154.247.247 0 0 1 .161-.07 118.376 118.376 0 0 1 4.391-.084 8.166 8.166 0 0 1 6.381 2.504 9.604 9.604 0 0 1 2.122 6.532c0 3.734-1.224 6.168-2.919 7.668a8.692 8.692 0 0 1-5.751 2.066c-.713 0-1.588-.007-2.378-.017s-1.497-.024-1.874-.038a.148.148 0 0 1-.126-.059.276.276 0 0 1-.042-.164V91.762zm3.049 15.72c.238.014.462.028.692.038s.468.017.734.017a4.94 4.94 0 0 0 3.906-1.699 8.022 8.022 0 0 0 1.576-5.266 6.907 6.907 0 0 0-1.552-4.957 5.082 5.082 0 0 0-3.818-1.475c-.294 0-.559.007-.811.018s-.489.024-.727.038v13.286zm16.446 2.462a.26.26 0 0 1-.045.175.189.189 0 0 1-.15.049h-2.658a.193.193 0 0 1-.151-.049.253.253 0 0 1-.046-.175V91.706a.168.168 0 0 1 .197-.196h9.314a.216.216 0 0 1 .164.046.292.292 0 0 1 .059.15l.14 1.175.14 1.175a.182.182 0 0 1-.038.175.274.274 0 0 1-.186.049h-6.74v5.316h6.042a.224.224 0 0 1 .151.035.203.203 0 0 1 .045.16v2.35a.208.208 0 0 1-.045.161.224.224 0 0 1-.151.035h-6.042v7.607z",
  fill: "#fff"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M50.253 66.389a39.275 39.275 0 0 1-2.412 3.21c-.389.46-.77.882-1.137 1.261-1.476 1.519-2.775 2.365-3.733 2.365a1.2 1.2 0 0 1-.855-.306 1.72 1.72 0 0 1-.245-.275 1.173 1.173 0 0 1-.217-.608 1.353 1.353 0 0 1 .024-.341 2.061 2.061 0 0 1 .108-.37 5.069 5.069 0 0 1 1.19-1.648q.222-.22.477-.446a33.108 33.108 0 0 1 8.044-4.76q-.623 1.008-1.244 1.918zm28.023-8.453a19.068 19.068 0 0 1 3.563.275 2.375 2.375 0 0 1 1.95 1.37 1.694 1.694 0 0 1 .075.457 2.269 2.269 0 0 1-.045.538c-.185.955-1.173 1.573-2.524 1.573a5.09 5.09 0 0 1-.532-.066 4.547 4.547 0 0 1-.608-.077 18.55 18.55 0 0 1-7.228-3.659c.556-.084 1.09-.151 1.598-.206a35.467 35.467 0 0 1 3.75-.205zM67.51 56.8a88.88 88.88 0 0 0-7.67 1.975 63.49 63.49 0 0 0 1.578-3.485 111.57 111.57 0 0 0 1.716-4.404c.465.729.945 1.437 1.435 2.118q.73 1.01 1.487 1.945.757.935 1.538 1.786l-.126.029zm-7.397-25.526a1.587 1.587 0 0 1 .115-.157 1.323 1.323 0 0 1 1.037-.589 1.201 1.201 0 0 1 .772.257 3.374 3.374 0 0 1 .764 2.537 18.087 18.087 0 0 1-.241 2.742 44.629 44.629 0 0 1-1.038 4.768q-.175.651-.374 1.323a27.942 27.942 0 0 1-1.165-3.877 19.421 19.421 0 0 1-.441-3.162 11.412 11.412 0 0 1 .104-2.363 4.384 4.384 0 0 1 .467-1.48zM88.426 60.39a4.26 4.26 0 0 0-.255-1.083 3.856 3.856 0 0 0-.762-1.261 5.83 5.83 0 0 0-1.453-1.114c-1.72-.958-4.239-1.44-7.523-1.44a39.77 39.77 0 0 0-3.434.156q-1.815.156-3.814.471a35.961 35.961 0 0 1-4.177-4.873 44.41 44.41 0 0 1-2.613-4.06q.58-1.82 1.014-3.466c.17-.646.32-1.266.458-1.871q.29-1.287.484-2.448c.089-.535.165-1.053.22-1.546a20.918 20.918 0 0 0 .147-2.38c0-2.557-.727-5.23-2.589-6.56a4.325 4.325 0 0 0-.838-.48 5.029 5.029 0 0 0-1.979-.377 3.781 3.781 0 0 0-1.902.543 4.028 4.028 0 0 0-1.434 1.426 8.793 8.793 0 0 0-.927 4.43 18.828 18.828 0 0 0 .164 2.175 30.687 30.687 0 0 0 2.458 8.436 127.641 127.641 0 0 1-3.237 8.575 76.786 76.786 0 0 1-3.66 7.598c-3.302 1.328-9.627 4.199-12.324 7.582a5.6 5.6 0 0 0-1.206 2.412 3.997 3.997 0 0 0-.06.969 3.636 3.636 0 0 0 .598 1.768 4.125 4.125 0 0 0 .644.757 4.292 4.292 0 0 0 .98.667c.089.045.18.087.28.13a5.157 5.157 0 0 0 .902.305 5.842 5.842 0 0 0 1.36.156 6.857 6.857 0 0 0 2.915-.707 11.44 11.44 0 0 0 1.91-1.155 22.012 22.012 0 0 0 3.646-3.518 44.333 44.333 0 0 0 3.286-4.49 67.712 67.712 0 0 0 2.133-3.54q1.49-.508 3.003-.965a85.947 85.947 0 0 1 3.026-.857c.218-.058.426-.101.642-.157 1.98-.51 3.907-.946 5.726-1.269q.516.451 1.026.854 1.017.81 1.997 1.443.49.318.968.598a17.682 17.682 0 0 0 8.875 2.643 6.532 6.532 0 0 0 3.64-.885 3.932 3.932 0 0 0 .53-.416 3.603 3.603 0 0 0 .925-1.391 3.86 3.86 0 0 0 .246-1.2 4.203 4.203 0 0 0-.016-.585z",
  fill: "#fa0f00"
})));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/assets/document-icons/acrobat_PDF_lightUI_128.svg
function acrobat_PDF_lightUI_128_extends() {
  acrobat_PDF_lightUI_128_extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return acrobat_PDF_lightUI_128_extends.apply(this, arguments);
}


/* harmony default export */ var acrobat_PDF_lightUI_128 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", acrobat_PDF_lightUI_128_extends({
  "data-name": "Layer 1",
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 128 128"
}, props), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M24 126a10.03 10.03 0 0 1-10-10V12A10.03 10.03 0 0 1 24 2h61.5a7.865 7.865 0 0 1 5.6 2.3l20.5 20.4a8.196 8.196 0 0 1 2.4 5.7V116a10.03 10.03 0 0 1-10 10z",
  fill: "#fff"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M85.5 4a5.598 5.598 0 0 1 4.2 1.8l20.5 20.4a6.174 6.174 0 0 1 1.8 4.2V116a8.024 8.024 0 0 1-8 8H24a8.024 8.024 0 0 1-8-8V12a8.024 8.024 0 0 1 8-8h61.5m0-4H24a12.035 12.035 0 0 0-12 12v104a12.035 12.035 0 0 0 12 12h80a12.035 12.035 0 0 0 12-12V30.4a10.515 10.515 0 0 0-2.9-7.1L92.6 2.9A9.898 9.898 0 0 0 85.5 0z",
  fill: "#fa0f00"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M43.62 91.734a.249.249 0 0 1 .031-.14.152.152 0 0 1 .137-.056 62.595 62.595 0 0 1 1.961-.063c.745-.014 1.563-.021 2.402-.021a7.151 7.151 0 0 1 5.133 1.699 5.617 5.617 0 0 1 1.609 4.175 5.682 5.682 0 0 1-2.032 4.693 7.81 7.81 0 0 1-4.905 1.462c-.322 0-.539-.007-.731-.014s-.36-.014-.584-.014v6.517a.207.207 0 0 1-.045.151.2.2 0 0 1-.15.045h-2.631a.204.204 0 0 1-.15-.045.208.208 0 0 1-.045-.151V91.734zm3.02 9.007c.196.014.371.021.581.025s.455.004.79.004a4.558 4.558 0 0 0 2.661-.685 3.655 3.655 0 0 0 .231-5.13 3.885 3.885 0 0 0-2.64-.815c-.336 0-.665.007-.948.018s-.521.024-.675.038v6.545zm11.274-8.979a.24.24 0 0 1 .035-.154.247.247 0 0 1 .161-.07 118.376 118.376 0 0 1 4.391-.084 8.166 8.166 0 0 1 6.381 2.504 9.604 9.604 0 0 1 2.122 6.532c0 3.734-1.224 6.168-2.919 7.668a8.692 8.692 0 0 1-5.751 2.066c-.713 0-1.588-.007-2.378-.017s-1.497-.024-1.874-.038a.148.148 0 0 1-.126-.059.276.276 0 0 1-.042-.164V91.762zm3.049 15.72c.238.014.462.028.692.038s.468.017.734.017a4.94 4.94 0 0 0 3.906-1.699 8.022 8.022 0 0 0 1.576-5.266 6.907 6.907 0 0 0-1.552-4.957 5.082 5.082 0 0 0-3.818-1.475c-.294 0-.559.007-.811.018s-.489.024-.727.038v13.286zm16.446 2.462a.26.26 0 0 1-.045.175.189.189 0 0 1-.15.049h-2.658a.193.193 0 0 1-.151-.049.253.253 0 0 1-.046-.175V91.706a.168.168 0 0 1 .197-.196h9.314a.216.216 0 0 1 .164.046.292.292 0 0 1 .059.15l.14 1.175.14 1.175a.182.182 0 0 1-.038.175.274.274 0 0 1-.186.049h-6.74v5.316h6.042a.224.224 0 0 1 .151.035.203.203 0 0 1 .045.16v2.35a.208.208 0 0 1-.045.161.224.224 0 0 1-.151.035h-6.042v7.607z",
  fill: "#2c2c2c"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M50.253 66.389a39.275 39.275 0 0 1-2.412 3.21c-.389.46-.77.882-1.137 1.261-1.476 1.519-2.775 2.365-3.733 2.365a1.2 1.2 0 0 1-.855-.306 1.72 1.72 0 0 1-.245-.275 1.173 1.173 0 0 1-.217-.608 1.353 1.353 0 0 1 .024-.341 2.061 2.061 0 0 1 .108-.37 5.069 5.069 0 0 1 1.19-1.648q.222-.22.477-.446a33.108 33.108 0 0 1 8.044-4.76q-.623 1.008-1.244 1.918zm28.023-8.453a19.068 19.068 0 0 1 3.563.275 2.375 2.375 0 0 1 1.95 1.37 1.694 1.694 0 0 1 .075.457 2.269 2.269 0 0 1-.045.538c-.185.955-1.173 1.573-2.524 1.573a5.09 5.09 0 0 1-.532-.066 4.547 4.547 0 0 1-.608-.077 18.55 18.55 0 0 1-7.228-3.659c.556-.084 1.09-.151 1.598-.206a35.467 35.467 0 0 1 3.75-.205zM67.51 56.8a88.88 88.88 0 0 0-7.67 1.975 63.49 63.49 0 0 0 1.578-3.485 111.57 111.57 0 0 0 1.716-4.404c.465.729.945 1.437 1.435 2.118q.73 1.01 1.487 1.945.757.935 1.538 1.786l-.126.029zm-7.397-25.526a1.587 1.587 0 0 1 .115-.157 1.323 1.323 0 0 1 1.037-.589 1.201 1.201 0 0 1 .772.257 3.374 3.374 0 0 1 .764 2.537 18.087 18.087 0 0 1-.241 2.742 44.629 44.629 0 0 1-1.038 4.768q-.175.651-.374 1.323a27.942 27.942 0 0 1-1.165-3.877 19.421 19.421 0 0 1-.441-3.162 11.412 11.412 0 0 1 .104-2.363 4.384 4.384 0 0 1 .467-1.48zM88.426 60.39a4.26 4.26 0 0 0-.255-1.083 3.856 3.856 0 0 0-.762-1.261 5.83 5.83 0 0 0-1.453-1.114c-1.72-.958-4.239-1.44-7.523-1.44a39.77 39.77 0 0 0-3.434.156q-1.815.156-3.814.471a35.961 35.961 0 0 1-4.177-4.873 44.41 44.41 0 0 1-2.613-4.06q.58-1.82 1.014-3.466c.17-.646.32-1.266.458-1.871q.29-1.287.484-2.448c.089-.535.165-1.053.22-1.546a20.918 20.918 0 0 0 .147-2.38c0-2.557-.727-5.23-2.589-6.56a4.325 4.325 0 0 0-.838-.48 5.029 5.029 0 0 0-1.979-.377 3.781 3.781 0 0 0-1.902.543 4.028 4.028 0 0 0-1.434 1.426 8.793 8.793 0 0 0-.927 4.43 18.828 18.828 0 0 0 .164 2.175 30.687 30.687 0 0 0 2.458 8.436 127.641 127.641 0 0 1-3.237 8.575 76.786 76.786 0 0 1-3.66 7.598c-3.302 1.328-9.627 4.199-12.324 7.582a5.6 5.6 0 0 0-1.206 2.412 3.997 3.997 0 0 0-.06.969 3.636 3.636 0 0 0 .598 1.768 4.125 4.125 0 0 0 .644.757 4.292 4.292 0 0 0 .98.667c.089.045.18.087.28.13a5.157 5.157 0 0 0 .902.305 5.842 5.842 0 0 0 1.36.156 6.857 6.857 0 0 0 2.915-.707 11.44 11.44 0 0 0 1.91-1.155 22.012 22.012 0 0 0 3.646-3.518 44.333 44.333 0 0 0 3.286-4.49 67.712 67.712 0 0 0 2.133-3.54q1.49-.508 3.003-.965a85.947 85.947 0 0 1 3.026-.857c.218-.058.426-.101.642-.157 1.98-.51 3.907-.946 5.726-1.269q.516.451 1.026.854 1.017.81 1.997 1.443.49.318.968.598a17.682 17.682 0 0 0 8.875 2.643 6.532 6.532 0 0 0 3.64-.885 3.932 3.932 0 0 0 .53-.416 3.603 3.603 0 0 0 .925-1.391 3.86 3.86 0 0 0 .246-1.2 4.203 4.203 0 0 0-.016-.585z",
  fill: "#fa0f00"
})));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/assets/document-icons/xd_XD_128.svg
function xd_XD_128_extends() {
  xd_XD_128_extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return xd_XD_128_extends.apply(this, arguments);
}


/* harmony default export */ var xd_XD_128 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", xd_XD_128_extends({
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 128 128"
}, props), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M24 126c-5.5 0-10-4.5-10-10V12c0-5.5 4.5-10 10-10h61.5c2.1 0 4.2.8 5.6 2.3l20.5 20.4c1.5 1.5 2.3 3.5 2.4 5.7V116c0 5.5-4.5 10-10 10H24z",
  fill: "#470137"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M85.5 4c1.6 0 3.1.6 4.2 1.8l20.5 20.4c1.1 1.1 1.8 2.7 1.8 4.2V116c0 4.4-3.6 8-8 8H24c-4.4 0-8-3.6-8-8V12c0-4.4 3.6-8 8-8h61.5m0-4H24c-6.6 0-12 5.4-12 12v104c0 6.6 5.4 12 12 12h80c6.6 0 12-5.4 12-12V30.4c0-2.7-1.1-5.2-2.9-7.1L92.6 2.9C90.7 1 88.2 0 85.5 0z",
  fill: "#ff61f6"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M57.5 100l4.9 9.4c.1.1 0 .3-.1.3h-3c-.2 0-.3-.1-.4-.2-1.1-2.3-2.3-4.6-3.4-7.1-1 2.3-2.2 4.8-3.3 7.1-.1.1-.2.2-.3.2H49c-.2 0-.2-.1-.1-.3l4.8-9.1-4.6-9.2c-.1-.1 0-.3.1-.3h3c.2 0 .3 0 .3.2l3.3 6.9c1-2.3 2.1-4.6 3.2-6.9.1-.1.1-.2.3-.2H62c.1 0 .2.1.1.3l-4.6 8.9z",
  fill: "#fff"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M64.8 91.1c0-.1 0-.2.2-.2.6 0 2.5-.1 4.4-.1 5.7 0 8.6 3.7 8.6 9.1 0 7.5-4.9 9.8-8.7 9.8-1.4 0-3.5 0-4.3-.1-.1 0-.2-.1-.2-.2V91.1zm3.1 15.9c.5 0 .9.1 1.4.1 3.2 0 5.5-2.2 5.5-7 0-4.7-2.4-6.5-5.4-6.5-.6 0-1.1 0-1.6.1V107z",
  fill: "#fff"
}), /*#__PURE__*/react_default.a.createElement("g", {
  fill: "#ff61f6"
}, /*#__PURE__*/react_default.a.createElement("path", {
  d: "M65.2 27.7l-12.1 20 13 21.2c.1.1.1.3.1.5s-.2.3-.5.3h-9.2c-.5.1-1.1-.2-1.4-.7-.9-1.7-1.7-3.4-2.6-5-.9-1.7-1.8-3.4-2.8-5.1-1-1.7-1.9-3.5-2.9-5.3h-.1c-.9 1.7-1.8 3.5-2.7 5.2-.9 1.7-1.9 3.5-2.8 5.2-.9 1.7-1.8 3.4-2.8 5.1-.1.4-.5.6-.9.6h-8.9c-.1 0-.3-.1-.3-.2 0-.2 0-.3.1-.5L41 48.3 28.8 27.7c-.1-.2-.2-.3-.1-.4.1-.1.2-.2.4-.2h9.2c.2 0 .4 0 .6.1.2.1.3.2.4.4.8 1.7 1.6 3.4 2.6 5.1 1 1.7 1.9 3.5 2.9 5.1 1 1.7 1.9 3.4 2.7 5.1h.1c.9-1.8 1.7-3.5 2.6-5.2l2.7-5.1 2.7-5.1c0-.1.1-.2.3-.3.2-.1.3-.1.5-.1h8.5c.2 0 .3.1.4.2.1.2.1.2-.1.4z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M82.6 70.3c-3 0-6-.6-8.7-1.8-2.5-1.2-4.7-3.1-6.1-5.5-1.6-2.8-2.3-6-2.2-9.2 0-3 .7-5.9 2.2-8.5 1.5-2.6 3.8-4.8 6.4-6.3 3.2-1.6 6.7-2.4 10.2-2.3h.8c.3 0 .7.1 1.2.2V24.1c0-.3.1-.5.4-.5h8.1c.2 0 .4.1.4.3v38.5c0 .7 0 1.5.1 2.4.1.9.1 1.7.2 2.3 0 .3-.1.5-.4.7-2.1.9-4.2 1.5-6.4 2-2 .3-4.1.5-6.2.5zm3.9-8.1V44.5c-.3-.1-.7-.2-1-.2-.4 0-.9-.1-1.3-.1-1.6 0-3.1.3-4.6 1-3.1 1.5-5 4.7-4.8 8.1 0 1.4.3 2.8.8 4.2.4 1.1 1 2.1 1.8 2.9.8.7 1.7 1.3 2.7 1.6 1.1.4 2.2.5 3.4.5.6 0 1.1 0 1.6-.1.5.1 1 0 1.4-.2z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/assets/document-icons/xd_XDC_128.svg
function xd_XDC_128_extends() {
  xd_XDC_128_extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return xd_XDC_128_extends.apply(this, arguments);
}


/* harmony default export */ var xd_XDC_128 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", xd_XDC_128_extends({
  "data-name": "Layer 1",
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 128 128"
}, props), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M24 126a10.03 10.03 0 0 1-10-10V12A10.03 10.03 0 0 1 24 2h61.5a7.698 7.698 0 0 1 5.6 2.3l20.5 20.4a8.455 8.455 0 0 1 2.4 5.7V116a10.03 10.03 0 0 1-10 10z",
  fill: "#470137"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M85.5 4a5.598 5.598 0 0 1 4.2 1.8l20.5 20.4a6.174 6.174 0 0 1 1.8 4.2V116a8.024 8.024 0 0 1-8 8H24a8.024 8.024 0 0 1-8-8V12a8.024 8.024 0 0 1 8-8h61.5m0-4H24a12.035 12.035 0 0 0-12 12v104a12.035 12.035 0 0 0 12 12h80a12.035 12.035 0 0 0 12-12V30.4a10.327 10.327 0 0 0-2.9-7.1L92.6 2.9A9.898 9.898 0 0 0 85.5 0z",
  fill: "#ff61f6"
}), /*#__PURE__*/react_default.a.createElement("g", {
  "data-name": "512-2",
  fill: "#ff61f6"
}, /*#__PURE__*/react_default.a.createElement("path", {
  d: "M65.2 27.7l-12.1 20 13 21.2a.75.75 0 0 1 .1.5c0 .2-.2.3-.5.3h-9.2a1.42 1.42 0 0 1-1.4-.7c-.9-1.7-1.7-3.4-2.6-5-.9-1.7-1.8-3.4-2.8-5.1s-1.9-3.5-2.9-5.3h-.1c-.9 1.7-1.8 3.5-2.7 5.2s-1.9 3.5-2.8 5.2-1.8 3.4-2.8 5.1a.875.875 0 0 1-.9.6h-8.9c-.1 0-.3-.1-.3-.2a.901.901 0 0 1 .1-.5L41 48.3 28.8 27.7c-.1-.2-.2-.3-.1-.4a.52.52 0 0 1 .4-.2h9.2a1.268 1.268 0 0 1 .6.1.78.78 0 0 1 .4.4c.8 1.7 1.6 3.4 2.6 5.1s1.9 3.5 2.9 5.1q1.5 2.55 2.7 5.1h.1c.9-1.8 1.7-3.5 2.6-5.2l2.7-5.1 2.7-5.1q0-.15.3-.3a.902.902 0 0 1 .5-.1h8.5a.52.52 0 0 1 .4.2c.1.2.1.2-.1.4z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M82.6 70.3a21.52 21.52 0 0 1-8.7-1.8 14.12 14.12 0 0 1-6.1-5.5 17.406 17.406 0 0 1-2.2-9.2 16.844 16.844 0 0 1 2.2-8.5 17.574 17.574 0 0 1 6.4-6.3 21.457 21.457 0 0 1 10.2-2.3h.8a7.384 7.384 0 0 1 1.2.2V24.1c0-.3.1-.5.4-.5h8.1c.2 0 .4.1.4.3v38.5a20.932 20.932 0 0 0 .1 2.4c.1.9.1 1.7.2 2.3a.755.755 0 0 1-.4.7 36.486 36.486 0 0 1-6.4 2 42.054 42.054 0 0 1-6.2.5zm3.9-8.1V44.5a3.553 3.553 0 0 0-1-.2c-.4 0-.9-.1-1.3-.1a10.605 10.605 0 0 0-4.6 1 8.475 8.475 0 0 0-4.8 8.1 12.495 12.495 0 0 0 .8 4.2 7.89 7.89 0 0 0 1.8 2.9 7.444 7.444 0 0 0 2.7 1.6 9.67 9.67 0 0 0 3.4.5 8.084 8.084 0 0 0 1.6-.1 2.2 2.2 0 0 0 1.4-.2z"
})), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M51.508 96.404l4.524 8.685c.078.13.026.26-.104.26H53.12a.315.315 0 0 1-.338-.208c-1.04-2.132-2.08-4.264-3.172-6.552h-.026a215.399 215.399 0 0 1-3.068 6.578.303.303 0 0 1-.286.182h-2.678c-.156 0-.182-.13-.104-.234l4.42-8.425-4.264-8.45a.136.136 0 0 1 .104-.234h2.782c.156 0 .234.026.286.182 1.014 2.132 2.054 4.238 3.016 6.396h.026c.936-2.132 1.976-4.264 2.964-6.37.078-.13.13-.208.286-.208h2.6c.13 0 .182.104.104.234z",
  fill: "#fff"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M58.268 88.24c0-.13.025-.181.182-.208.598-.026 2.314-.078 4.082-.078 5.279 0 7.904 3.406 7.904 8.399 0 6.942-4.55 9.047-8.06 9.047-1.326 0-3.25-.025-3.952-.051-.105 0-.156-.078-.156-.208zm2.834 14.613c.442.026.832.051 1.326.051 2.912 0 5.07-2.053 5.095-6.473.027-4.317-2.209-5.98-4.991-5.98-.546 0-.988.026-1.43.051z",
  fill: "#fff"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M83.617 104.906a.264.264 0 0 1-.181.287 8.25 8.25 0 0 1-2.887.39c-4.056 0-7.644-2.652-7.644-8.893 0-5.356 3.172-8.944 8.008-8.944a7.138 7.138 0 0 1 2.704.364c.131.052.156.13.156.286v2.237c0 .207-.103.207-.181.181a6.177 6.177 0 0 0-2.653-.494c-3.042 0-5.07 2.315-5.07 6.292 0 4.915 2.782 6.37 5.07 6.37a7.167 7.167 0 0 0 2.497-.337c.103-.052.181-.052.181.13z",
  fill: "#fff"
})));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/assets/document-icons/acrobat_Presentation_Generic_darkUI_128.svg
function acrobat_Presentation_Generic_darkUI_128_extends() {
  acrobat_Presentation_Generic_darkUI_128_extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return acrobat_Presentation_Generic_darkUI_128_extends.apply(this, arguments);
}


/* harmony default export */ var acrobat_Presentation_Generic_darkUI_128 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", acrobat_Presentation_Generic_darkUI_128_extends({
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 128 128"
}, props), /*#__PURE__*/react_default.a.createElement("path", {
  "data-name": "White Bg",
  d: "M24 126a10.011 10.011 0 0 1-10-10V12A10.011 10.011 0 0 1 24 2h61.52a7.946 7.946 0 0 1 5.647 2.333l20.48 20.408A8.053 8.053 0 0 1 114 30.408V116a10.012 10.012 0 0 1-10 10z",
  fill: "#252525"
}), /*#__PURE__*/react_default.a.createElement("path", {
  "data-name": "Gray Outline",
  d: "M85.52 4a6 6 0 0 1 4.235 1.75l20.48 20.408a6 6 0 0 1 1.765 4.25V116a8 8 0 0 1-8 8H24a8 8 0 0 1-8-8V12a8 8 0 0 1 8-8h61.52m0-4H24a12.014 12.014 0 0 0-12 12v104a12.014 12.014 0 0 0 12 12h80a12.014 12.014 0 0 0 12-12V30.408a10.068 10.068 0 0 0-2.941-7.084L92.579 2.916A9.936 9.936 0 0 0 85.52 0z",
  fill: "#6e6e6e"
}), /*#__PURE__*/react_default.a.createElement("g", {
  fill: "#e3e3e3"
}, /*#__PURE__*/react_default.a.createElement("path", {
  d: "M92.2 26.1H44.5a4.268 4.268 0 0 0-4.3 4.3v4.3h-4.3a4.268 4.268 0 0 0-4.3 4.3v34.7a4.268 4.268 0 0 0 4.3 4.3h47.8a4.268 4.268 0 0 0 4.3-4.3v-4.4h4.3a4.268 4.268 0 0 0 4.3-4.3V30.4a4.354 4.354 0 0 0-4.4-4.3zm-8.7 47.7H35.8V39h47.8v26.1l-.1 8.7zm4.4-8.7v-26a4.268 4.268 0 0 0-4.3-4.3H44.4v-4.4h47.8v34.8l-4.3-.1z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M68.2 57.4L52.8 65c-.7.3-1.8-.2-1.8-1V48.9c0-.8 1.1-1.3 1.8-1l15.5 7.5a1.104 1.104 0 0 1-.1 2z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/assets/document-icons/acrobat_Presentation_Generic_lightUI_128.svg
function acrobat_Presentation_Generic_lightUI_128_extends() {
  acrobat_Presentation_Generic_lightUI_128_extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return acrobat_Presentation_Generic_lightUI_128_extends.apply(this, arguments);
}


/* harmony default export */ var acrobat_Presentation_Generic_lightUI_128 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", acrobat_Presentation_Generic_lightUI_128_extends({
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 128 128"
}, props), /*#__PURE__*/react_default.a.createElement("path", {
  "data-name": "White Bg",
  d: "M24 126a10.011 10.011 0 0 1-10-10V12A10.011 10.011 0 0 1 24 2h61.52a7.946 7.946 0 0 1 5.647 2.333l20.48 20.408A8.053 8.053 0 0 1 114 30.408V116a10.012 10.012 0 0 1-10 10z",
  fill: "#fff"
}), /*#__PURE__*/react_default.a.createElement("path", {
  "data-name": "Gray Outline",
  d: "M85.52 4a6 6 0 0 1 4.235 1.75l20.48 20.408a6 6 0 0 1 1.765 4.25V116a8 8 0 0 1-8 8H24a8 8 0 0 1-8-8V12a8 8 0 0 1 8-8h61.52m0-4H24a12.014 12.014 0 0 0-12 12v104a12.014 12.014 0 0 0 12 12h80a12.014 12.014 0 0 0 12-12V30.408a10.068 10.068 0 0 0-2.941-7.084L92.579 2.916A9.936 9.936 0 0 0 85.52 0z",
  fill: "#b3b3b3"
}), /*#__PURE__*/react_default.a.createElement("g", {
  fill: "#4b4b4b"
}, /*#__PURE__*/react_default.a.createElement("path", {
  d: "M92.2 26.1H44.5a4.268 4.268 0 0 0-4.3 4.3v4.3h-4.3a4.268 4.268 0 0 0-4.3 4.3v34.7a4.268 4.268 0 0 0 4.3 4.3h47.8a4.268 4.268 0 0 0 4.3-4.3v-4.4h4.3a4.268 4.268 0 0 0 4.3-4.3V30.4a4.354 4.354 0 0 0-4.4-4.3zm-8.7 47.7H35.8V39h47.8v26.1l-.1 8.7zm4.4-8.7v-26a4.268 4.268 0 0 0-4.3-4.3H44.4v-4.4h47.8v34.8l-4.3-.1z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M68.2 57.4L52.8 65c-.7.3-1.8-.2-1.8-1V48.9c0-.8 1.1-1.3 1.8-1l15.5 7.5a1.104 1.104 0 0 1-.1 2z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/assets/document-icons/acrobat_Spreadsheet_Generic_darkUI_128.svg
function acrobat_Spreadsheet_Generic_darkUI_128_extends() {
  acrobat_Spreadsheet_Generic_darkUI_128_extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return acrobat_Spreadsheet_Generic_darkUI_128_extends.apply(this, arguments);
}


/* harmony default export */ var acrobat_Spreadsheet_Generic_darkUI_128 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", acrobat_Spreadsheet_Generic_darkUI_128_extends({
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 128 128"
}, props), /*#__PURE__*/react_default.a.createElement("path", {
  "data-name": "White Bg",
  d: "M24 126a10.011 10.011 0 0 1-10-10V12A10.011 10.011 0 0 1 24 2h61.52a7.946 7.946 0 0 1 5.647 2.333l20.48 20.408A8.053 8.053 0 0 1 114 30.408V116a10.012 10.012 0 0 1-10 10z",
  fill: "#252525"
}), /*#__PURE__*/react_default.a.createElement("path", {
  "data-name": "Gray Outline",
  d: "M85.52 4a6 6 0 0 1 4.235 1.75l20.48 20.408a6 6 0 0 1 1.765 4.25V116a8 8 0 0 1-8 8H24a8 8 0 0 1-8-8V12a8 8 0 0 1 8-8h61.52m0-4H24a12.014 12.014 0 0 0-12 12v104a12.014 12.014 0 0 0 12 12h80a12.014 12.014 0 0 0 12-12V30.408a10.068 10.068 0 0 0-2.941-7.084L92.579 2.916A9.936 9.936 0 0 0 85.52 0z",
  fill: "#6e6e6e"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M94.39 27.15H33.61a4.342 4.342 0 0 0-4.342 4.342v34.646a6.402 6.402 0 0 0 6.071 6.485h57.205a6.501 6.501 0 0 0 6.188-6.485V31.492a4.342 4.342 0 0 0-4.341-4.342zm-30.435 9.724H94.47l.011 7.688H63.938zm.029 11.939l30.497-.046-.09 7.689-30.527.09zm-19.52 19.672h-8.865a2.32 2.32 0 0 1-2.03-2.351v-5.439l10.941.004zm.044-11.984l-10.944-.013.002-7.688 10.945.013zm-.045-11.985H33.52l.004-7.688h10.944zm15.27 23.856H48.805l-.008-7.674 10.93.03zm0-11.916H48.76l.045-7.643h10.882zm0-11.94H48.805l-.002-7.688H59.73zM94.47 66.145a2.233 2.233 0 0 1-2.07 2.227l-28.507.113.103-7.798 30.474.02z",
  fill: "#e3e3e3"
})));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/assets/document-icons/acrobat_Spreadsheet_Generic_lightUI_128.svg
function acrobat_Spreadsheet_Generic_lightUI_128_extends() {
  acrobat_Spreadsheet_Generic_lightUI_128_extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return acrobat_Spreadsheet_Generic_lightUI_128_extends.apply(this, arguments);
}


/* harmony default export */ var acrobat_Spreadsheet_Generic_lightUI_128 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", acrobat_Spreadsheet_Generic_lightUI_128_extends({
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 128 128"
}, props), /*#__PURE__*/react_default.a.createElement("path", {
  "data-name": "White Bg",
  d: "M24 126a10.011 10.011 0 0 1-10-10V12A10.011 10.011 0 0 1 24 2h61.52a7.946 7.946 0 0 1 5.647 2.333l20.48 20.408A8.053 8.053 0 0 1 114 30.408V116a10.012 10.012 0 0 1-10 10z",
  fill: "#fff"
}), /*#__PURE__*/react_default.a.createElement("path", {
  "data-name": "Gray Outline",
  d: "M85.52 4a6 6 0 0 1 4.235 1.75l20.48 20.408a6 6 0 0 1 1.765 4.25V116a8 8 0 0 1-8 8H24a8 8 0 0 1-8-8V12a8 8 0 0 1 8-8h61.52m0-4H24a12.014 12.014 0 0 0-12 12v104a12.014 12.014 0 0 0 12 12h80a12.014 12.014 0 0 0 12-12V30.408a10.068 10.068 0 0 0-2.941-7.084L92.579 2.916A9.936 9.936 0 0 0 85.52 0z",
  fill: "#b3b3b3"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M94.39 27.15H33.61a4.342 4.342 0 0 0-4.342 4.342v34.646a6.402 6.402 0 0 0 6.071 6.485h57.205a6.501 6.501 0 0 0 6.188-6.485V31.492a4.342 4.342 0 0 0-4.341-4.342zm-30.435 9.724H94.47l.011 7.688H63.938zm.029 11.939l30.497-.046-.09 7.689-30.527.09zm-19.52 19.672h-8.865a2.32 2.32 0 0 1-2.03-2.351v-5.439l10.941.004zm.044-11.984l-10.944-.013.002-7.688 10.945.013zm-.045-11.985H33.52l.004-7.688h10.944zm15.27 23.856H48.805l-.008-7.674 10.93.03zm0-11.916H48.76l.045-7.643h10.882zm0-11.94H48.805l-.002-7.688H59.73zM94.47 66.145a2.233 2.233 0 0 1-2.07 2.227l-28.507.113.103-7.798 30.474.02z",
  fill: "#4b4b4b"
})));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/assets/document-icons/acrobat_Video_Generic_darkUI_128.svg
function acrobat_Video_Generic_darkUI_128_extends() {
  acrobat_Video_Generic_darkUI_128_extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return acrobat_Video_Generic_darkUI_128_extends.apply(this, arguments);
}


/* harmony default export */ var acrobat_Video_Generic_darkUI_128 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", acrobat_Video_Generic_darkUI_128_extends({
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 128 128"
}, props), /*#__PURE__*/react_default.a.createElement("path", {
  "data-name": "White Bg",
  d: "M24 126a10.011 10.011 0 0 1-10-10V12A10.011 10.011 0 0 1 24 2h61.52a7.946 7.946 0 0 1 5.647 2.333l20.48 20.408A8.053 8.053 0 0 1 114 30.408V116a10.012 10.012 0 0 1-10 10z",
  fill: "#252525"
}), /*#__PURE__*/react_default.a.createElement("path", {
  "data-name": "Gray Outine",
  d: "M85.52 4a6 6 0 0 1 4.235 1.75l20.48 20.408a6 6 0 0 1 1.765 4.25V116a8 8 0 0 1-8 8H24a8 8 0 0 1-8-8V12a8 8 0 0 1 8-8h61.52m0-4H24a12.014 12.014 0 0 0-12 12v104a12.014 12.014 0 0 0 12 12h80a12.014 12.014 0 0 0 12-12V30.408a10.068 10.068 0 0 0-2.941-7.084L92.579 2.916A9.936 9.936 0 0 0 85.52 0z",
  fill: "#6e6e6e"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M63.98 28a23.98 23.98 0 1 0 24 23.875A23.923 23.923 0 0 0 63.98 28zm11.378 24.439a1.773 1.773 0 0 1-.42.44L60.343 61.23a1.293 1.293 0 0 1-.62.16h-1.2c-.66 0-1.605-.713-1.605-1.373V43.476c0-.66.96-1.117 1.62-1.117h1.2a1.118 1.118 0 0 1 .602.23l14.596 8.21a1.205 1.205 0 0 1 .421 1.64z",
  fill: "#e3e3e3"
})));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/assets/document-icons/acrobat_Video_Generic_lightUI_128.svg
function acrobat_Video_Generic_lightUI_128_extends() {
  acrobat_Video_Generic_lightUI_128_extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return acrobat_Video_Generic_lightUI_128_extends.apply(this, arguments);
}


/* harmony default export */ var acrobat_Video_Generic_lightUI_128 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", acrobat_Video_Generic_lightUI_128_extends({
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 128 128"
}, props), /*#__PURE__*/react_default.a.createElement("path", {
  "data-name": "White Bg",
  d: "M24 126a10.011 10.011 0 0 1-10-10V12A10.011 10.011 0 0 1 24 2h61.52a7.946 7.946 0 0 1 5.647 2.333l20.48 20.408A8.053 8.053 0 0 1 114 30.408V116a10.012 10.012 0 0 1-10 10z",
  fill: "#fff"
}), /*#__PURE__*/react_default.a.createElement("path", {
  "data-name": "Gray Outine",
  d: "M85.52 4a6 6 0 0 1 4.235 1.75l20.48 20.408a6 6 0 0 1 1.765 4.25V116a8 8 0 0 1-8 8H24a8 8 0 0 1-8-8V12a8 8 0 0 1 8-8h61.52m0-4H24a12.014 12.014 0 0 0-12 12v104a12.014 12.014 0 0 0 12 12h80a12.014 12.014 0 0 0 12-12V30.408a10.068 10.068 0 0 0-2.941-7.084L92.579 2.916A9.936 9.936 0 0 0 85.52 0z",
  fill: "#b3b3b3"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M63.98 28a23.98 23.98 0 1 0 24 23.875A23.923 23.923 0 0 0 63.98 28zm11.378 24.439a1.773 1.773 0 0 1-.42.44L60.343 61.23a1.293 1.293 0 0 1-.62.16h-1.2c-.66 0-1.605-.713-1.605-1.373V43.476c0-.66.96-1.117 1.62-1.117h1.2a1.118 1.118 0 0 1 .602.23l14.596 8.21a1.205 1.205 0 0 1 .421 1.64z",
  fill: "#4b4b4b"
})));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/assets/document-icons/Ae_AEP_128.svg
function Ae_AEP_128_extends() {
  Ae_AEP_128_extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return Ae_AEP_128_extends.apply(this, arguments);
}


/* harmony default export */ var Ae_AEP_128 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", Ae_AEP_128_extends({
  "data-name": "Layer 1",
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 128 128"
}, props), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M24 126a10.011 10.011 0 0 1-10-10V12A10.011 10.011 0 0 1 24 2h61.521a7.947 7.947 0 0 1 5.646 2.333l20.48 20.408A8.055 8.055 0 0 1 114 30.408V116a10.011 10.011 0 0 1-10 10z",
  fill: "#00005b"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M85.52 4a5.997 5.997 0 0 1 4.235 1.75l20.48 20.408a6 6 0 0 1 1.765 4.25V116a8 8 0 0 1-8 8H24a8 8 0 0 1-8-8V12a8 8 0 0 1 8-8h61.52m0-4H24a12.013 12.013 0 0 0-12 12v104a12.013 12.013 0 0 0 12 12h80a12.013 12.013 0 0 0 12-12V30.408a10.07 10.07 0 0 0-2.941-7.084L92.579 2.917A9.937 9.937 0 0 0 85.52 0z",
  fill: "#99f"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M47.256 104.912l-.672 2.534-.672 2.534a.25.25 0 0 1-.073.151.271.271 0 0 1-.179.045h-2.492c-.084 0-.133-.014-.157-.052a.324.324 0 0 1-.011-.2l2.408-8.428 2.408-8.428a3.555 3.555 0 0 0 .105-.5c.028-.206.049-.479.063-.899a.184.184 0 0 1 .039-.126.131.131 0 0 1 .102-.042h3.556a.198.198 0 0 1 .129.032.222.222 0 0 1 .066.136l2.702 9.142 2.702 9.142a.25.25 0 0 1-.007.164.137.137 0 0 1-.133.059h-2.8a.299.299 0 0 1-.168-.042.204.204 0 0 1-.084-.126l-.7-2.548-.7-2.548h-5.432zm4.732-2.772c-.238-.938-.637-2.429-1.029-3.934s-.777-3.024-.987-4.018h-.028c-.182.994-.497 2.324-.854 3.735s-.756 2.901-1.106 4.217h4.004z",
  fill: "#fafafa"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M69.907 109.952a.294.294 0 0 1-.073.175.254.254 0 0 1-.179.049H60.08a.185.185 0 0 1-.224-.224V91.724a.185.185 0 0 1 .224-.224h9.24a.306.306 0 0 1 .179.035.225.225 0 0 1 .073.161l.126 1.176.126 1.176a.205.205 0 0 1-.021.164.172.172 0 0 1-.147.059h-6.748v4.984h6.076a.208.208 0 0 1 .151.045.203.203 0 0 1 .046.151v2.38a.18.18 0 0 1-.06.15.261.261 0 0 1-.165.045h-6.048v5.376h7.196c.084 0 .133.014.158.046a.183.183 0 0 1 .01.151l-.182 1.176z",
  fill: "#fafafa"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M73.127 91.724a.237.237 0 0 1 .032-.139.153.153 0 0 1 .136-.056c.546-.028 1.218-.049 1.964-.063s1.565-.021 2.405-.021a7.159 7.159 0 0 1 5.138 1.701 5.623 5.623 0 0 1 1.61 4.179 5.682 5.682 0 0 1-2.034 4.696 7.827 7.827 0 0 1-4.911 1.463c-.322 0-.539-.007-.731-.014s-.36-.014-.584-.014v6.524a.167.167 0 0 1-.197.196h-2.632a.208.208 0 0 1-.151-.045.202.202 0 0 1-.045-.151V91.724zm3.024 9.016c.196.014.371.021.581.024s.455.003.792.003a4.555 4.555 0 0 0 2.663-.686 3.658 3.658 0 0 0 .231-5.135 3.887 3.887 0 0 0-2.642-.815c-.336 0-.666.007-.949.018s-.521.024-.675.038v6.553z",
  fill: "#fafafa"
}), /*#__PURE__*/react_default.a.createElement("g", {
  "data-name": "128",
  fill: "#99f"
}, /*#__PURE__*/react_default.a.createElement("path", {
  d: "M55.556 59.576H40.513l-3.061 9.272a.765.765 0 0 1-.781.586h-7.62q-.652 0-.456-.716l13.025-37.51q.195-.587.39-1.336a9.568 9.568 0 0 0 .261-2.275.403.403 0 0 1 .456-.456h10.355q.454 0 .52.326l14.783 41.316q.196.652-.39.651h-8.466a.602.602 0 0 1-.652-.455zm-12.7-8.441h10.29q-.39-1.302-.911-2.93-.522-1.627-1.107-3.485l-1.173-3.712q-.586-1.856-1.074-3.581-.489-1.725-.88-3.159h-.064a52.556 52.556 0 0 1-1.368 5.21q-.913 2.93-1.856 5.991-.945 3.062-1.856 5.666z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M90.117 55.121l-12.344.08a11.307 11.307 0 0 0 1.238 4.027 7.596 7.596 0 0 0 2.944 2.918 12.489 12.489 0 0 0 5.177.912 23.618 23.618 0 0 0 4.2-.358 17.72 17.72 0 0 0 3.666-1.616c.217-.173.326-.065.326.326v6.186a.971.971 0 0 1-.098.489.94.94 0 0 1-.293.293 16.912 16.912 0 0 1-4.07 1.4 28.615 28.615 0 0 1-5.73.489 18.584 18.584 0 0 1-7.75-1.433 13.81 13.81 0 0 1-5.08-3.842 14.851 14.851 0 0 1-2.911-5.198 20.891 20.891 0 0 1-.847-5.894 20.529 20.529 0 0 1 1.01-6.414 17.55 17.55 0 0 1 3.14-5.646 13.552 13.552 0 0 1 4.815-3.566 15.273 15.273 0 0 1 6.773-1.4 14.696 14.696 0 0 1 6.284 1.237 9.223 9.223 0 0 1 3.848 2.998 14.803 14.803 0 0 1 2.41 4.591 16.346 16.346 0 0 1 .78 4.95q0 1.432-.097 2.604a8.775 8.775 0 0 1-.162 1.086.59.59 0 0 1-.586.521q-.392 0-1.335.098-.946.097-2.345.13-1.402.033-2.963.032zm-12.344-5.223h8.532q1.563 0 2.312-.033a4.59 4.59 0 0 0 .944-.097v-.797a5.193 5.193 0 0 0-.26-1.497 5.32 5.32 0 0 0-5.276-3.712 5.657 5.657 0 0 0-5.372 3.06 10.568 10.568 0 0 0-.88 3.076z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/assets/document-icons/ai_AI_128.svg
function ai_AI_128_extends() {
  ai_AI_128_extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return ai_AI_128_extends.apply(this, arguments);
}


/* harmony default export */ var ai_AI_128 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", ai_AI_128_extends({
  "data-name": "Layer 1",
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 128 128"
}, props), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M24 126a10.011 10.011 0 0 1-10-10V12A10.011 10.011 0 0 1 24 2h61.521a7.947 7.947 0 0 1 5.646 2.333l20.48 20.408A8.055 8.055 0 0 1 114 30.408V116a10.011 10.011 0 0 1-10 10z",
  fill: "#300"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M85.52 4a5.997 5.997 0 0 1 4.235 1.75l20.48 20.408a6 6 0 0 1 1.765 4.25V116a8 8 0 0 1-8 8H24a8 8 0 0 1-8-8V12a8 8 0 0 1 8-8h61.52m0-4H24a12.013 12.013 0 0 0-12 12v104a12.013 12.013 0 0 0 12 12h80a12.013 12.013 0 0 0 12-12V30.408a10.07 10.07 0 0 0-2.941-7.084L92.579 2.917A9.937 9.937 0 0 0 85.52 0z",
  fill: "#ff9a00"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M57.434 104.912l-.672 2.534-.672 2.534a.25.25 0 0 1-.073.151.271.271 0 0 1-.179.045h-2.492c-.084 0-.133-.014-.157-.052a.324.324 0 0 1-.011-.2l2.408-8.428 2.408-8.428a3.555 3.555 0 0 0 .105-.5c.028-.206.049-.479.063-.899a.184.184 0 0 1 .039-.126.131.131 0 0 1 .102-.042h3.556a.198.198 0 0 1 .129.032.222.222 0 0 1 .066.136l2.702 9.142 2.702 9.142a.25.25 0 0 1-.007.164.137.137 0 0 1-.133.059h-2.8a.299.299 0 0 1-.168-.042.204.204 0 0 1-.084-.126l-.7-2.548-.7-2.548h-5.432zm4.732-2.772c-.238-.938-.637-2.429-1.029-3.934s-.777-3.024-.987-4.018h-.028c-.182.994-.497 2.324-.854 3.735s-.756 2.901-1.106 4.217h4.004z",
  fill: "#fafafa"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M73.086 109.952a.257.257 0 0 1-.039.175c-.032.035-.088.049-.186.049h-2.603a.226.226 0 0 1-.175-.059.235.235 0 0 1-.049-.164V91.725a.226.226 0 0 1 .059-.175.235.235 0 0 1 .164-.049h2.632a.208.208 0 0 1 .151.045.203.203 0 0 1 .046.151v18.255z",
  fill: "#fafafa"
}), /*#__PURE__*/react_default.a.createElement("g", {
  "data-name": "512",
  fill: "#ff9a00"
}, /*#__PURE__*/react_default.a.createElement("path", {
  d: "M63.15 59.499H48.107l-3.061 9.508a.766.766 0 0 1-.781.586h-7.62q-.652 0-.456-.716l13.025-37.511q.195-.586.39-1.335a13.93 13.93 0 0 0 .261-2.638.403.403 0 0 1 .456-.455h10.354q.455 0 .521.325L75.98 68.942q.196.651-.39.65h-8.466a.602.602 0 0 1-.652-.455zm-12.699-8.206h10.29q-.391-1.301-.912-2.93-.522-1.627-1.107-3.484l-1.172-3.712q-.587-1.856-1.075-3.582-.488-1.725-.88-3.158h-.064a52.515 52.515 0 0 1-1.368 5.21q-.913 2.93-1.856 5.99-.945 3.063-1.856 5.666z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M83.467 33.84a4.724 4.724 0 0 1-3.581-1.432 5.152 5.152 0 0 1-1.368-3.712 4.779 4.779 0 0 1 1.465-3.614 5.033 5.033 0 0 1 3.615-1.4 4.843 4.843 0 0 1 3.68 1.4 5.027 5.027 0 0 1 1.334 3.614 5.085 5.085 0 0 1-1.4 3.712 4.997 4.997 0 0 1-3.745 1.433zm-4.493 35.102V37.813q0-.586.521-.586h8.01q.52 0 .521.586v31.129q0 .651-.52.65H79.56q-.586 0-.586-.65z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/assets/document-icons/ai_AIC_128.svg
function ai_AIC_128_extends() {
  ai_AIC_128_extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return ai_AIC_128_extends.apply(this, arguments);
}


/* harmony default export */ var ai_AIC_128 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", ai_AIC_128_extends({
  "data-name": "Layer 1",
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 128 128"
}, props), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M24 126a10.011 10.011 0 0 1-10-10V12A10.011 10.011 0 0 1 24 2h61.521a7.947 7.947 0 0 1 5.646 2.333l20.48 20.408A8.054 8.054 0 0 1 114 30.408V116a10.011 10.011 0 0 1-10 10z",
  fill: "#300"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M85.52 4a5.997 5.997 0 0 1 4.235 1.75l20.48 20.408a6 6 0 0 1 1.765 4.25V116a8 8 0 0 1-8 8H24a8 8 0 0 1-8-8V12a8 8 0 0 1 8-8h61.52m0-4H24a12.013 12.013 0 0 0-12 12v104a12.013 12.013 0 0 0 12 12h80a12.013 12.013 0 0 0 12-12V30.408a10.07 10.07 0 0 0-2.941-7.084L92.579 2.917A9.937 9.937 0 0 0 85.52 0z",
  fill: "#ff9a00"
}), /*#__PURE__*/react_default.a.createElement("g", {
  "data-name": "512",
  fill: "#ff9a00"
}, /*#__PURE__*/react_default.a.createElement("path", {
  d: "M63.15 59.499H48.107l-3.061 9.508a.766.766 0 0 1-.781.586h-7.62q-.652 0-.456-.716l13.025-37.511q.195-.586.39-1.335a13.93 13.93 0 0 0 .261-2.638.403.403 0 0 1 .456-.455h10.354q.455 0 .521.325L75.98 68.942q.196.651-.39.65h-8.466a.602.602 0 0 1-.652-.455zm-12.699-8.206h10.29q-.391-1.301-.912-2.93-.522-1.627-1.107-3.484l-1.172-3.712q-.587-1.856-1.075-3.582-.488-1.725-.88-3.158h-.064a52.517 52.517 0 0 1-1.368 5.21q-.913 2.93-1.856 5.99-.945 3.063-1.856 5.666z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M83.467 33.84a4.724 4.724 0 0 1-3.581-1.432 5.152 5.152 0 0 1-1.368-3.712 4.779 4.779 0 0 1 1.465-3.614 5.033 5.033 0 0 1 3.615-1.4 4.843 4.843 0 0 1 3.68 1.4 5.027 5.027 0 0 1 1.334 3.614 5.085 5.085 0 0 1-1.4 3.712 4.997 4.997 0 0 1-3.745 1.433zm-4.493 35.102V37.813q0-.586.521-.586h8.01q.52 0 .521.586v31.129q0 .651-.52.65H79.56q-.586 0-.586-.65z"
})), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M51.521 100.46l-1.248 4.707c-.026.13-.078.182-.234.182h-2.314c-.156 0-.182-.052-.156-.234l4.472-15.652a4.805 4.805 0 0 0 .156-1.3c0-.104.052-.157.13-.157h3.302c.104 0 .156.026.182.156l5.018 16.979c.026.13 0 .208-.13.208h-2.6a.209.209 0 0 1-.234-.156l-1.3-4.732zm4.394-2.573c-.442-1.742-1.482-5.538-1.872-7.385h-.026c-.338 1.847-1.17 4.94-1.82 7.385z",
  fill: "#fff"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M66.055 105.14c0 .157-.026.209-.208.209h-2.418c-.157 0-.208-.078-.208-.208V88.215c0-.156.078-.21.208-.21h2.444c.13 0 .182.054.182.183z",
  fill: "#fff"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M79.887 104.906a.264.264 0 0 1-.182.287 8.25 8.25 0 0 1-2.887.39c-4.055 0-7.643-2.652-7.643-8.893 0-5.356 3.172-8.944 8.008-8.944a7.138 7.138 0 0 1 2.704.364c.13.052.156.13.156.286v2.237c0 .207-.104.207-.182.181a6.177 6.177 0 0 0-2.652-.494c-3.042 0-5.07 2.315-5.07 6.292 0 4.915 2.782 6.37 5.07 6.37a7.167 7.167 0 0 0 2.496-.337c.104-.052.182-.052.182.13z",
  fill: "#fff"
})));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/assets/document-icons/an_FLA_128.svg
function an_FLA_128_extends() {
  an_FLA_128_extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return an_FLA_128_extends.apply(this, arguments);
}


/* harmony default export */ var an_FLA_128 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", an_FLA_128_extends({
  "data-name": "Layer 1",
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 128 128"
}, props), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M24 126a10.011 10.011 0 0 1-10-10V12A10.011 10.011 0 0 1 24 2h61.521a7.947 7.947 0 0 1 5.646 2.333l20.48 20.408A8.055 8.055 0 0 1 114 30.408V116a10.011 10.011 0 0 1-10 10z",
  fill: "#00005b"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M85.52 4a5.997 5.997 0 0 1 4.235 1.75l20.48 20.408a6 6 0 0 1 1.765 4.25V116a8 8 0 0 1-8 8H24a8 8 0 0 1-8-8V12a8 8 0 0 1 8-8h61.52m0-4H24a12.013 12.013 0 0 0-12 12v104a12.013 12.013 0 0 0 12 12h80a12.013 12.013 0 0 0 12-12V30.408a10.07 10.07 0 0 0-2.941-7.084L92.579 2.917A9.937 9.937 0 0 0 85.52 0z",
  fill: "#99f"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M48.334 109.952a.253.253 0 0 1-.046.175.193.193 0 0 1-.151.049h-2.66a.193.193 0 0 1-.151-.049.253.253 0 0 1-.046-.175V91.696a.167.167 0 0 1 .197-.196h9.324a.22.22 0 0 1 .164.045.292.292 0 0 1 .06.151l.14 1.176.14 1.176a.182.182 0 0 1-.038.175.274.274 0 0 1-.186.049h-6.748v5.32h6.048a.22.22 0 0 1 .15.035.208.208 0 0 1 .045.161v2.352a.208.208 0 0 1-.045.161.22.22 0 0 1-.15.035h-6.048v7.616z",
  fill: "#fafafa"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M58.358 110.176a.255.255 0 0 1-.199-.063.274.274 0 0 1-.053-.189v-18.2a.25.25 0 0 1 .046-.164.186.186 0 0 1 .151-.059h2.688a.16.16 0 0 1 .136.045.251.251 0 0 1 .032.151v15.708h7a.188.188 0 0 1 .147.046.17.17 0 0 1 .021.151l-.21 1.19-.21 1.19a.238.238 0 0 1-.084.151.27.27 0 0 1-.168.045h-9.297z",
  fill: "#fafafa"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M74.401 104.912l-.672 2.534-.672 2.534a.246.246 0 0 1-.074.151.27.27 0 0 1-.178.045h-2.491c-.084 0-.133-.014-.158-.052a.305.305 0 0 1-.01-.2l2.408-8.428 2.408-8.428a3.555 3.555 0 0 0 .105-.5c.028-.206.049-.479.063-.899a.19.19 0 0 1 .038-.126.13.13 0 0 1 .102-.043h3.556a.203.203 0 0 1 .13.032.222.222 0 0 1 .067.136l2.702 9.142 2.702 9.142a.25.25 0 0 1-.007.164.137.137 0 0 1-.133.059h-2.8a.299.299 0 0 1-.168-.042.204.204 0 0 1-.084-.126l-.7-2.548-.7-2.548h-5.434zm4.733-2.772c-.238-.938-.637-2.429-1.03-3.934s-.777-3.024-.987-4.018h-.027c-.182.994-.497 2.324-.854 3.735s-.756 2.901-1.106 4.217h4.004z",
  fill: "#fafafa"
}), /*#__PURE__*/react_default.a.createElement("g", {
  "data-name": "512",
  fill: "#99f"
}, /*#__PURE__*/react_default.a.createElement("path", {
  d: "M53.363 59.344H38.319l-2.963 9.742a.766.766 0 0 1-.781.586h-7.62q-.651 0-.456-.716l12.979-37.59q.195-.586.39-1.335a15.113 15.113 0 0 0 .26-2.724.403.403 0 0 1 .457-.456h10.354q.455 0 .521.325l14.83 41.845q.195.652-.391.651h-8.466a.602.602 0 0 1-.651-.456zm-12.648-8.05h10.29q-.391-1.302-.912-2.931-.522-1.627-1.107-3.484l-1.173-3.712q-.586-1.856-1.074-3.582-.489-1.725-.88-3.158h-.064a52.629 52.629 0 0 1-1.368 5.21q-.913 2.93-1.856 5.99-.945 3.063-1.856 5.666z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M69.173 69.103V44.781q0-1.106-.032-2.474-.034-1.368-.098-2.605a64.507 64.507 0 0 0-.13-2.036.387.387 0 0 1 .065-.39.532.532 0 0 1 .39-.131h6.773a1.456 1.456 0 0 1 .652.13.613.613 0 0 1 .325.456c.087.26.184.636.293.961a5.48 5.48 0 0 1 .228 1.205 13.08 13.08 0 0 1 4.298-2.507 14.793 14.793 0 0 1 4.884-.814 11.557 11.557 0 0 1 3.674.618 9.624 9.624 0 0 1 6.154 5.992 18.105 18.105 0 0 1 .976 6.48V69.12q0 .586-.52.586H89.36a.575.575 0 0 1-.651-.651V50.447a8.136 8.136 0 0 0-.586-3.321 4.656 4.656 0 0 0-1.66-2.02 4.901 4.901 0 0 0-2.768-.715 8.104 8.104 0 0 0-3.061.553 8.382 8.382 0 0 0-2.546 1.53v22.63q0 .585-.521.585h-7.809a.518.518 0 0 1-.586-.586z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/assets/document-icons/ar_REAL_128.svg
function ar_REAL_128_extends() {
  ar_REAL_128_extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return ar_REAL_128_extends.apply(this, arguments);
}


/* harmony default export */ var ar_REAL_128 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", ar_REAL_128_extends({
  "data-name": "Layer 1",
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 128 128"
}, props), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M24 126a10.011 10.011 0 0 1-10-10V12A10.011 10.011 0 0 1 24 2h61.521a7.947 7.947 0 0 1 5.646 2.333l20.48 20.408A8.054 8.054 0 0 1 114 30.408V116a10.011 10.011 0 0 1-10 10z",
  fill: "#013301"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M85.52 4a5.997 5.997 0 0 1 4.235 1.75l20.48 20.408a6 6 0 0 1 1.765 4.25V116a8 8 0 0 1-8 8H24a8 8 0 0 1-8-8V12a8 8 0 0 1 8-8h61.52m0-4H24a12.013 12.013 0 0 0-12 12v104a12.013 12.013 0 0 0 12 12h80a12.013 12.013 0 0 0 12-12V30.408a10.07 10.07 0 0 0-2.941-7.084L92.579 2.917A9.937 9.937 0 0 0 85.52 0z",
  fill: "#3f6"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M40.522 109.775c0 .141-.056.197-.197.197h-2.597c-.17 0-.225-.056-.225-.226V91.431c0-.14.056-.254.17-.254 1.382-.056 2.68-.084 4.768-.084 4.036 0 6.463 1.92 6.463 5.418a5.297 5.297 0 0 1-3.528 5.08c.819 1.411 3.585 6.434 4.488 8.128.084.14.084.253-.114.253h-2.935c-.197 0-.282-.056-.338-.14-.65-1.13-2.681-5.024-3.98-7.395h-1.975zm1.722-10.047c2.06 0 3.556-.818 3.556-2.934 0-2.06-1.355-2.992-3.443-2.992-.734 0-1.44.028-1.835.056v5.87z",
  fill: "#fff"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M62.703 109.746c-.028.17-.085.226-.254.226h-9.651c-.17 0-.226-.056-.226-.226v-18.37c0-.17.056-.227.226-.227h9.312c.17 0 .226.028.255.198l.253 2.37c.028.141-.028.226-.169.226h-6.801v5.024h6.124c.141 0 .197.056.197.197v2.399c0 .14-.085.198-.226.198h-6.095v5.418H62.9c.169 0 .197.055.169.197z",
  fill: "#fff"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M69.306 104.667l-1.355 5.108c-.028.141-.084.197-.254.197h-2.512c-.17 0-.197-.056-.17-.253L69.87 92.73a5.23 5.23 0 0 0 .17-1.412c0-.112.056-.17.14-.17h3.584c.113 0 .17.03.197.17l5.447 18.428c.029.142 0 .226-.14.226h-2.822q-.213 0-.255-.168l-1.411-5.137zm4.769-2.794c-.48-1.89-1.608-6.01-2.032-8.015h-.028c-.368 2.004-1.27 5.362-1.975 8.015z",
  fill: "#fff"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M82.258 109.972c-.198 0-.254-.084-.254-.253V91.376c0-.142.056-.227.197-.227h2.71c.141 0 .169.057.169.198v15.832h7.055c.142 0 .198.055.17.197l-.423 2.4a.225.225 0 0 1-.255.196z",
  fill: "#fff"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M59.8 59.228H44.756l-3.061 9.507a.766.766 0 0 1-.781.586h-7.62q-.652 0-.456-.715l13.024-37.511q.196-.587.392-1.335a13.985 13.985 0 0 0 .26-2.638.403.403 0 0 1 .456-.456h10.355c.303 0 .477.11.52.326L72.629 68.67q.196.652-.391.65h-8.466a.601.601 0 0 1-.65-.455zm-12.7-8.206h10.29q-.39-1.301-.911-2.93-.522-1.627-1.108-3.484l-1.172-3.712q-.585-1.857-1.074-3.582-.49-1.724-.88-3.158h-.064a52.581 52.581 0 0 1-1.368 5.21q-.914 2.93-1.856 5.99-.946 3.062-1.857 5.666z",
  fill: "#3f6"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M75.624 36.956h7.099a.886.886 0 0 1 .847.651 3.162 3.162 0 0 1 .325.912 10.423 10.423 0 0 1 .195 1.27q.065.683.066 1.465a15.213 15.213 0 0 1 4.33-3.484 12.196 12.196 0 0 1 6.024-1.466.518.518 0 0 1 .586.587v7.88c0 .304-.218.455-.651.455a16.437 16.437 0 0 0-7.652 1.368 6.869 6.869 0 0 0-2.181 1.498v20.643q0 .587-.522.586h-7.88a.575.575 0 0 1-.65-.65V46.268q0-1.431-.033-3.028-.034-1.595-.098-3.158a20.749 20.749 0 0 0-.26-2.67.374.374 0 0 1 .455-.456z",
  fill: "#3f6"
})));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/assets/document-icons/dn_DN_128.svg
function dn_DN_128_extends() {
  dn_DN_128_extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return dn_DN_128_extends.apply(this, arguments);
}


/* harmony default export */ var dn_DN_128 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", dn_DN_128_extends({
  "data-name": "Layer 1",
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 128 128"
}, props), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M24 126a10.011 10.011 0 0 1-10-10V12A10.011 10.011 0 0 1 24 2h61.521a7.947 7.947 0 0 1 5.646 2.333l20.48 20.408A8.055 8.055 0 0 1 114 30.408V116a10.011 10.011 0 0 1-10 10z",
  fill: "#013301"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M85.52 4a5.997 5.997 0 0 1 4.235 1.75l20.48 20.408a6 6 0 0 1 1.765 4.25V116a8 8 0 0 1-8 8H24a8 8 0 0 1-8-8V12a8 8 0 0 1 8-8h61.52m0-4H24a12.013 12.013 0 0 0-12 12v104a12.013 12.013 0 0 0 12 12h80a12.013 12.013 0 0 0 12-12V30.408a10.07 10.07 0 0 0-2.941-7.084L92.579 2.917A9.937 9.937 0 0 0 85.52 0z",
  fill: "#3f6"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M49.251 91.129c0-.14.028-.197.198-.226.649-.028 2.51-.085 4.429-.085 5.727 0 8.577 3.697 8.577 9.114 0 7.533-4.937 9.818-8.746 9.818-1.439 0-3.527-.028-4.289-.057-.112 0-.169-.085-.169-.225zm3.076 15.855c.48.029.903.057 1.438.057 3.16 0 5.502-2.228 5.53-7.024.028-4.684-2.398-6.49-5.417-6.49-.592 0-1.072.029-1.551.056z",
  fill: "#fff"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M66.07 109.693c-.17 0-.226-.056-.226-.225V91.072a.178.178 0 0 1 .197-.197h3.499c.169 0 .226.028.282.169 1.664 3.527 5.389 12.273 6.122 14.136h.029a66.576 66.576 0 0 1-.142-4.572v-9.536c0-.112.057-.197.227-.197h2.454c.169 0 .225.057.225.226v18.338c0 .198-.084.254-.282.254h-3.132c-.197 0-.281-.056-.338-.197-1.298-3.047-5.473-12.329-6.377-15.01h-.027c.084 1.27.14 2.935.14 5.22v9.762c0 .14-.056.225-.197.225z",
  fill: "#fff"
}), /*#__PURE__*/react_default.a.createElement("g", {
  "data-name": "512",
  fill: "#3f6"
}, /*#__PURE__*/react_default.a.createElement("path", {
  d: "M29.449 68.942V27.524a.475.475 0 0 1 .456-.521q.977-.064 2.865-.098 1.888-.032 4.429-.065 2.54-.032 5.405-.033 7.815 0 12.96 2.67a18.036 18.036 0 0 1 7.716 7.327 21.792 21.792 0 0 1 2.573 10.712 23.898 23.898 0 0 1-1.335 8.303 19.373 19.373 0 0 1-3.647 6.22 21.687 21.687 0 0 1-5.243 4.33 23.062 23.062 0 0 1-6.251 2.54 27.522 27.522 0 0 1-6.578.814h-4.851q-2.574 0-4.787-.032-2.215-.034-3.321-.098-.39 0-.391-.651zm8.987-34.125v26.961q.716 0 1.302.033.587.033 1.205.065.618.034 1.4.032a17.442 17.442 0 0 0 5.796-.911 11.854 11.854 0 0 0 4.461-2.735 12.286 12.286 0 0 0 2.865-4.494 17.039 17.039 0 0 0 1.01-6.056 15.28 15.28 0 0 0-.977-5.698 10.79 10.79 0 0 0-2.833-4.103 11.598 11.598 0 0 0-4.428-2.442 19.314 19.314 0 0 0-5.633-.782q-1.304 0-2.182.033-.879.033-1.986.097z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M70.736 69.007V44.78q0-1.106-.033-2.474t-.097-2.605q-.066-1.237-.13-1.954a.387.387 0 0 1 .064-.39.531.531 0 0 1 .391-.131h6.773a1.455 1.455 0 0 1 .651.13.613.613 0 0 1 .326.456l.293.88a5.474 5.474 0 0 1 .228 1.204A13.082 13.082 0 0 1 83.5 37.39a14.793 14.793 0 0 1 4.884-.814 12.386 12.386 0 0 1 3.81.618 9.624 9.624 0 0 1 6.154 5.992 18.105 18.105 0 0 1 .977 6.48v19.34q0 .587-.521.587h-7.88a.575.575 0 0 1-.651-.651V50.447a8.134 8.134 0 0 0-.586-3.321 4.655 4.655 0 0 0-1.661-2.02 4.902 4.902 0 0 0-2.768-.715 8.104 8.104 0 0 0-3.06.553 7.724 7.724 0 0 0-2.41 1.53v22.533q0 .586-.521.586h-7.945a.518.518 0 0 1-.586-.586z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/assets/document-icons/filetype_zip_darkUI_128.svg
function filetype_zip_darkUI_128_extends() {
  filetype_zip_darkUI_128_extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return filetype_zip_darkUI_128_extends.apply(this, arguments);
}


/* harmony default export */ var filetype_zip_darkUI_128 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", filetype_zip_darkUI_128_extends({
  "data-name": "Layer 1",
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 128 128"
}, props), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M24 126a10.011 10.011 0 0 1-10-10V12A10.011 10.011 0 0 1 24 2h61.521a7.947 7.947 0 0 1 5.646 2.333l20.48 20.408A8.055 8.055 0 0 1 114 30.408V116a10.011 10.011 0 0 1-10 10z",
  fill: "#252525"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M85.52 4a5.997 5.997 0 0 1 4.235 1.75l20.48 20.408a6 6 0 0 1 1.765 4.25V116a8 8 0 0 1-8 8H24a8 8 0 0 1-8-8V12a8 8 0 0 1 8-8h61.52m0-4H24a12.013 12.013 0 0 0-12 12v104a12.013 12.013 0 0 0 12 12h80a12.013 12.013 0 0 0 12-12V30.408a10.07 10.07 0 0 0-2.941-7.084L92.579 2.917A9.937 9.937 0 0 0 85.52 0z",
  fill: "#6e6e6e"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M47.13 110.176a.24.24 0 0 1-.165-.049.222.222 0 0 1-.06-.175v-1.596a.578.578 0 0 1 .021-.168c.014-.049.035-.098.063-.168l4.13-6.874 4.13-6.874h-7.924a.178.178 0 0 1-.147-.049.22.22 0 0 1-.021-.175l.182-1.176.182-1.176a.267.267 0 0 1 .07-.151.217.217 0 0 1 .154-.045h11.06a.148.148 0 0 1 .168.168v1.736a.546.546 0 0 1-.039.199 2.49 2.49 0 0 1-.102.221l-4.046 6.79-4.046 6.79h8.344a.16.16 0 0 1 .144.06.177.177 0 0 1-.004.165l-.196 1.176-.196 1.176a.238.238 0 0 1-.084.151.27.27 0 0 1-.168.045H47.13z",
  fill: "#fff"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M65.05 109.952a.257.257 0 0 1-.039.175c-.032.035-.088.049-.185.049h-2.604a.226.226 0 0 1-.175-.059.235.235 0 0 1-.049-.164V91.725a.222.222 0 0 1 .06-.175.24.24 0 0 1 .165-.049h2.632a.208.208 0 0 1 .151.045.203.203 0 0 1 .046.151v18.255z",
  fill: "#fff"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M69.361 91.724a.237.237 0 0 1 .032-.139.153.153 0 0 1 .136-.056c.546-.028 1.218-.049 1.964-.063s1.565-.021 2.405-.021a7.159 7.159 0 0 1 5.138 1.701 5.623 5.623 0 0 1 1.61 4.179 5.682 5.682 0 0 1-2.034 4.696 7.827 7.827 0 0 1-4.911 1.463c-.322 0-.539-.007-.731-.014s-.36-.014-.584-.014v6.524a.167.167 0 0 1-.197.196h-2.632a.208.208 0 0 1-.151-.045.202.202 0 0 1-.045-.151V91.724zm3.025 9.016c.196.014.371.021.581.024s.455.003.792.003a4.555 4.555 0 0 0 2.663-.686 3.658 3.658 0 0 0 .231-5.135 3.887 3.887 0 0 0-2.642-.815c-.336 0-.666.007-.949.018s-.521.024-.675.038v6.553z",
  fill: "#fff"
}), /*#__PURE__*/react_default.a.createElement("path", {
  "data-name": "64",
  d: "M76 29.069v-2a1 1 0 0 0-1-1H53a1.007 1.007 0 0 0-1 1.008v5.992a1 1 0 0 0 1 1h9v4h-9a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h9v4h-9a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h9v8h-3a1.019 1.019 0 0 0-1 1.021v13.979a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1v-14a1 1 0 0 0-1-1h-3v-8h9a1 1 0 0 0 1-1v-6a1 1 0 0 0-1-1h-9v-4h9a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1h-9v-4h9a1 1 0 0 0 1-1zm-10 41h-4v-6h4z",
  fill: "#e3e3e3"
})));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/assets/document-icons/filetype_zip_lightUI_128.svg
function filetype_zip_lightUI_128_extends() {
  filetype_zip_lightUI_128_extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return filetype_zip_lightUI_128_extends.apply(this, arguments);
}


/* harmony default export */ var filetype_zip_lightUI_128 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", filetype_zip_lightUI_128_extends({
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 128 128"
}, props), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M24 126c-5.514 0-10-4.486-10-10V12c0-5.514 4.486-10 10-10h61.521c2.132 0 4.137.829 5.646 2.333l20.48 20.408A8.055 8.055 0 0 1 114 30.408V116c0 5.514-4.486 10-10 10H24z",
  fill: "#fff"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M85.52 4c1.588 0 3.111.629 4.235 1.75l20.48 20.408a6 6 0 0 1 1.765 4.25V116a8 8 0 0 1-8 8H24a8 8 0 0 1-8-8V12a8 8 0 0 1 8-8h61.52m0-4H24c-6.617 0-12 5.383-12 12v104c0 6.617 5.383 12 12 12h80c6.617 0 12-5.383 12-12V30.408a10.07 10.07 0 0 0-2.941-7.084L92.579 2.917A9.937 9.937 0 0 0 85.52 0z",
  fill: "#b3b3b3"
}), /*#__PURE__*/react_default.a.createElement("g", {
  fill: "#2c2c2c"
}, /*#__PURE__*/react_default.a.createElement("path", {
  d: "M47.13 110.176c-.07 0-.126-.014-.165-.049s-.06-.091-.06-.175v-1.596c0-.07.007-.119.021-.168s.035-.098.063-.168l4.13-6.874 4.13-6.874h-7.924c-.07 0-.119-.014-.147-.049s-.035-.091-.021-.175l.182-1.176.182-1.176c.014-.07.035-.119.07-.151s.084-.045.154-.045h11.06c.056 0 .098.014.126.042s.042.07.042.126v1.736c0 .07-.014.133-.039.199s-.06.137-.102.221l-4.046 6.79-4.046 6.79h8.344c.07 0 .119.021.144.06s.025.095-.004.165l-.196 1.176-.196 1.176c-.014.07-.042.119-.084.151s-.098.045-.168.045H47.13z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M65.05 109.952c0 .084-.007.14-.039.175s-.088.049-.185.049h-2.604c-.084 0-.14-.021-.175-.059s-.049-.094-.049-.164V91.725c0-.084.021-.14.06-.175s.095-.049.165-.049h2.632c.07 0 .119.014.151.045s.046.081.046.151V109.952z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M69.361 91.724c0-.056.007-.104.032-.139s.067-.056.136-.056c.546-.028 1.218-.049 1.964-.063s1.565-.021 2.405-.021c2.352 0 4.039.644 5.138 1.701s1.61 2.527 1.61 4.179c0 2.156-.777 3.696-2.034 4.696s-2.993 1.463-4.911 1.463c-.322 0-.539-.007-.731-.014s-.36-.014-.584-.014v6.524c0 .07-.014.119-.046.151s-.081.045-.151.045h-2.632c-.07 0-.119-.014-.151-.045s-.045-.081-.045-.151V91.724zm3.025 9.016c.196.014.371.021.581.024s.455.003.792.003c.994 0 1.953-.175 2.663-.686s1.173-1.358 1.173-2.702c0-1.078-.329-1.89-.942-2.433s-1.509-.815-2.642-.815c-.336 0-.666.007-.949.018s-.521.024-.675.038v6.553z"
})), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M76 29.069v-2a1 1 0 0 0-1-1H53c-.552 0-1 .456-1 1.008v5.992a1 1 0 0 0 1 1h9v4h-9a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h9v4h-9a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h9v8h-3c-.552 0-1 .469-1 1.021v13.979a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1v-14a1 1 0 0 0-1-1h-3v-8h9a1 1 0 0 0 1-1v-6a1 1 0 0 0-1-1h-9v-4h9a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1h-9v-4h9a1 1 0 0 0 1-1zm-10 41h-4v-6h4v6z",
  fill: "#4b4b4b"
})));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/assets/document-icons/GLB_1024.svg
function GLB_1024_extends() {
  GLB_1024_extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return GLB_1024_extends.apply(this, arguments);
}


/* harmony default export */ var GLB_1024 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", GLB_1024_extends({
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 1024 1024"
}, props), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M223.8 963c-44.1 0-80-35.2-80-78.4V129.4c0-43.2 35.9-78.4 80-78.4H664c21.2 0 41.5 8.3 56.7 23.1l135.8 133.5c14.9 14.5 23.4 34.5 23.3 55.3v621.7c0 43.2-35.9 78.4-80 78.4h-576z",
  fill: "#f5f5f5"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M664.4 66.9c16.9.1 33.2 6.8 45.2 18.7L845.4 219c11.9 11.5 18.7 27.4 18.8 44v621.7c0 34.4-28.9 62.3-64.2 62.3H224c-35.3 0-64.1-28.4-64.1-62.8V129c0-34.4 29-62.2 64.3-62.2h440.2m-.2-31.7H224c-53 0-95.8 42.2-95.8 94.3v755.2c0 52.1 42.5 94.4 95.5 94.4h576c53 0 96.1-42.1 96.1-94.2V263.1c0-25.1-10-49.2-28-66.8L732.1 62.7C714 45 689.6 35 664.2 35.1z",
  fill: "#b3b3b3"
}), /*#__PURE__*/react_default.a.createElement("g", {
  fill: "#4b4b4b"
}, /*#__PURE__*/react_default.a.createElement("path", {
  d: "M711.8 315c0-.3-.2-.6-.2-1.1 0-.7-.2-1.4-.5-2.1-.2-.7-.5-1.4-.8-2.1-.2-.7-.5-1.4-1-1.9-.5-.6-1-1.1-1.4-1.8-.4-.6-.9-1-1.4-1.4-1.2-1-2.4-1.8-3.8-2.4-.5-.3-1-.5-1.6-.6l-182.7-76.1-.6-.3c-3.9-1.7-8.3-1.5-12.1.3l-182.4 76.1c-.6.1-1.1.4-1.6.6-1.4.6-2.7 1.4-3.8 2.4-1.1 1-2 2-2.9 3.2-1.2 1.8-2.1 3.8-2.6 5.9-.3.7-.4 1.4-.3 2.1v200.4c.1 6.2 3.9 11.8 9.6 14.1l183.9 76.2c2 1 4.2 1.5 6.4 1.4 2 0 3.9-.4 5.7-1.1l.6-.3 184.1-76.2c5.7-2.3 9.5-7.8 9.6-14V316c0-.3 0-.7-.2-1zM512 376.3l-143.8-59.7 143-59.3L654.8 317 512 376.3zm168 128.2l-159.2 65.9V407L680 340.8v163.7z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M312.3 313.8c.5-2.1 1.4-4.1 2.6-5.9-1.4 1.7-2.3 3.7-2.6 5.9zm6.8-10.3c-.5.3-.9.7-1.3 1.1 1.2-1 2.4-1.8 3.8-2.4-.9.3-1.8.7-2.5 1.3z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M705.3 303.5c-.7-.6-1.6-1.1-2.6-1.3 1.4.6 2.7 1.4 3.8 2.4-.3-.4-.7-.8-1.2-1.1z"
})), /*#__PURE__*/react_default.a.createElement("g", null, /*#__PURE__*/react_default.a.createElement("path", {
  d: "M414.1 786.2c-1.2-.2-1.5-.6-1.5-1.9v-16.6c0-1 .4-1.5 1.2-1.5h41c1.2 0 1.5.4 1.5 1.5V837c.2 1-.2 1.5-1.2 1.9-12.3 4.6-23.7 5.8-34.1 5.8-42.8 0-62.8-31.6-62.8-70.3 0-44.9 27.2-72.2 67.2-72.2 11 0 20.6 1.2 26.8 4.2 1 .4 1.2 1.2 1.2 2.3V727c0 1-.6 1.5-1.7 1-7.3-3.7-16-5.2-26.4-5.2-28.9-.2-43.7 18.9-43.7 51 0 30.4 14.1 50.8 40.4 50.8 5 0 8.3-.4 11.6-1.7v-36l-19.5-.7z",
  fill: "#2c2c2c"
}), /*#__PURE__*/react_default.a.createElement("g", {
  fill: "#2c2c2c"
}, /*#__PURE__*/react_default.a.createElement("path", {
  d: "M486.9 842.7c-1.5 0-1.9-.6-1.9-1.9V705.7c0-1 .4-1.7 1.5-1.7h20c1 0 1.2.4 1.2 1.5v116.7h52c1 0 1.5.4 1.2 1.5l-3.1 17.7c-.2 1-.8 1.5-1.9 1.5h-69z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M579.3 705.9c0-1 .2-1.5 1-1.7 5.8-.2 21.6-.6 34.3-.6 38.5 0 45.3 22.5 45.3 36.2 0 15.4-7.5 23.9-12.9 28.1 7.5 4 19.1 13.5 19.1 33.3 0 26.2-21 42.2-53 42-13.5 0-25.8-.2-32.4-.4-1-.2-1.5-.8-1.5-1.7V705.9zm22.2 54.1h12.7c6 0 12.7.4 15.8 1 4.2-3.7 7.9-9.2 7.9-18.3 0-12.7-8.5-19.3-23.3-19.3-5 0-9.8.2-13.1.4V760zm0 63.2c3.7.2 7.3.4 11.9.4 16.4 0 29.5-6.2 29.5-22 0-9.8-5-17.1-15.2-20.2-3.5-1-7.7-1.7-12.3-1.7h-13.9v43.5z"
})))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/assets/document-icons/GLTF_1024.svg
function GLTF_1024_extends() {
  GLTF_1024_extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return GLTF_1024_extends.apply(this, arguments);
}


/* harmony default export */ var GLTF_1024 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", GLTF_1024_extends({
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 1024 1024"
}, props), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M223.8 963c-44.1 0-80-35.2-80-78.4V129.4c0-43.2 35.9-78.4 80-78.4H664c21.2 0 41.5 8.3 56.7 23.1l135.8 133.5c14.9 14.5 23.4 34.5 23.3 55.3v621.7c0 43.2-35.9 78.4-80 78.4h-576z",
  fill: "#f5f5f5"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M664.4 66.9c16.9.1 33.2 6.8 45.2 18.7L845.4 219c11.9 11.5 18.7 27.4 18.8 44v621.7c0 34.4-28.9 62.3-64.2 62.3H224c-35.3 0-64.1-28.4-64.1-62.8V129c0-34.4 29-62.2 64.3-62.2h440.2m-.2-31.7H224c-53 0-95.8 42.2-95.8 94.3v755.2c0 52.1 42.5 94.4 95.5 94.4h576c53 0 96.1-42.1 96.1-94.2V263.1c0-25.1-10-49.2-28-66.8L732.1 62.7C714 45 689.6 35 664.2 35.1z",
  fill: "#b3b3b3"
}), /*#__PURE__*/react_default.a.createElement("g", {
  fill: "#4b4b4b"
}, /*#__PURE__*/react_default.a.createElement("path", {
  d: "M711.8 315c0-.3-.2-.6-.2-1.1 0-.7-.2-1.4-.5-2.1-.2-.7-.5-1.4-.8-2.1-.2-.7-.5-1.4-1-1.9-.5-.6-1-1.1-1.4-1.8-.4-.6-.9-1-1.4-1.4-1.2-1-2.4-1.8-3.8-2.4-.5-.3-1-.5-1.6-.6l-182.7-76.1-.6-.3c-3.9-1.7-8.3-1.5-12.1.3l-182.4 76.1c-.6.1-1.1.4-1.6.6-1.4.6-2.7 1.4-3.8 2.4-1.1 1-2 2-2.9 3.2-1.2 1.8-2.1 3.8-2.6 5.9-.3.7-.4 1.4-.3 2.1v200.4c.1 6.2 3.9 11.8 9.6 14.1l183.9 76.2c2 1 4.2 1.5 6.4 1.4 2 0 3.9-.4 5.7-1.1l.6-.3 184.1-76.2c5.7-2.3 9.5-7.8 9.6-14V316c0-.3 0-.7-.2-1zM512 376.3l-143.8-59.7 143-59.3L654.8 317 512 376.3zm168 128.2l-159.2 65.9V407L680 340.8v163.7z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M312.3 313.8c.5-2.1 1.4-4.1 2.6-5.9-1.4 1.7-2.3 3.7-2.6 5.9zm6.8-10.3c-.5.3-.9.7-1.3 1.1 1.2-1 2.4-1.8 3.8-2.4-.9.3-1.8.7-2.5 1.3z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M705.3 303.5c-.7-.6-1.6-1.1-2.6-1.3 1.4.6 2.7 1.4 3.8 2.4-.3-.4-.7-.8-1.2-1.1z"
})), /*#__PURE__*/react_default.a.createElement("g", null, /*#__PURE__*/react_default.a.createElement("path", {
  d: "M380.4 786.2c-1.2-.2-1.5-.6-1.5-1.9v-16.6c0-1 .4-1.5 1.2-1.5h41c1.2 0 1.5.4 1.5 1.5V837c.2 1-.2 1.5-1.2 1.9-12.3 4.6-23.7 5.8-34.1 5.8-42.8 0-62.8-31.6-62.8-70.3 0-44.9 27.2-72.2 67.2-72.2 11 0 20.6 1.2 26.8 4.2 1 .4 1.2 1.2 1.2 2.3V727c0 1-.6 1.5-1.7 1-7.3-3.7-16-5.2-26.4-5.2-28.9-.2-43.7 18.9-43.7 51 0 30.4 14.1 50.8 40.4 50.8 5 0 8.3-.4 11.6-1.7v-36l-19.5-.7z",
  fill: "#2c2c2c"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M453.2 842.7c-1.5 0-1.9-.6-1.9-1.9V705.7c0-1 .4-1.7 1.5-1.7h20c1 0 1.2.4 1.2 1.5v116.7h52c1 0 1.5.4 1.2 1.5l-3.1 17.7c-.2 1-.8 1.5-1.9 1.5h-69z",
  fill: "#2c2c2c"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M551 724.6h-34.9c-1 0-1.5-.4-1.2-1.7l2.5-17.5c.2-1 .6-1.5 1.7-1.5h87.4c1.2 0 1.7.4 1.9 1.7l1.7 17.3c.2 1.2-.4 1.7-1.5 1.7h-34.7v116.5c0 1-.4 1.7-1.7 1.7h-19.3c-1.2 0-1.7-.4-1.7-1.7V724.6z",
  fill: "#2c2c2c"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M651.3 841.1c0 1.2-.4 1.7-1.5 1.7H630c-1 0-1.5-.4-1.5-1.7V705.5c0-1 .4-1.5 1.5-1.5h69.3c1.2 0 1.5.4 1.7 1.5l2.1 17.5c.2 1.2-.4 1.7-1.7 1.7h-50.1v39.5h44.9c1 0 1.5.2 1.5 1.5V783c0 1.2-.4 1.5-1.5 1.5h-44.9v56.6z",
  fill: "#2c2c2c"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/assets/document-icons/id_INDD_128.svg
function id_INDD_128_extends() {
  id_INDD_128_extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return id_INDD_128_extends.apply(this, arguments);
}


/* harmony default export */ var id_INDD_128 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", id_INDD_128_extends({
  "data-name": "Layer 1",
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 128 128"
}, props), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M24 126a10.011 10.011 0 0 1-10-10V12A10.011 10.011 0 0 1 24 2h61.521a7.947 7.947 0 0 1 5.646 2.333l20.48 20.408A8.055 8.055 0 0 1 114 30.408V116a10.011 10.011 0 0 1-10 10z",
  fill: "#49021f"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M85.52 4a5.997 5.997 0 0 1 4.235 1.75l20.48 20.408a6 6 0 0 1 1.765 4.25V116a8 8 0 0 1-8 8H24a8 8 0 0 1-8-8V12a8 8 0 0 1 8-8h61.52m0-4H24a12.013 12.013 0 0 0-12 12v104a12.013 12.013 0 0 0 12 12h80a12.013 12.013 0 0 0 12-12V30.408a10.07 10.07 0 0 0-2.941-7.084L92.579 2.917A9.937 9.937 0 0 0 85.52 0z",
  fill: "#f36"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M40.509 109.952a.257.257 0 0 1-.039.175c-.032.035-.088.049-.185.049h-2.604a.226.226 0 0 1-.175-.059.235.235 0 0 1-.049-.164V91.725a.222.222 0 0 1 .06-.175.24.24 0 0 1 .165-.049h2.632a.208.208 0 0 1 .151.045.203.203 0 0 1 .046.151v18.255z",
  fill: "#fafafa"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M45.044 110.176a.185.185 0 0 1-.224-.224V91.696a.194.194 0 0 1 .056-.151.202.202 0 0 1 .14-.045h3.472a.355.355 0 0 1 .182.032.256.256 0 0 1 .098.136c.826 1.75 2.163 4.795 3.384 7.633s2.327 5.47 2.691 6.394h.028c-.028-.434-.063-1.008-.091-1.753s-.049-1.662-.049-2.782v-9.464a.19.19 0 0 1 .049-.14.238.238 0 0 1 .175-.056h2.436a.185.185 0 0 1 .224.224v18.2a.248.248 0 0 1-.066.2.32.32 0 0 1-.213.052h-3.108a.432.432 0 0 1-.221-.045.283.283 0 0 1-.115-.151c-.644-1.512-2.002-4.571-3.311-7.584s-2.569-5.981-3.017-7.312h-.028c.042.63.077 1.358.102 2.212s.039 1.834.039 2.968v9.688a.25.25 0 0 1-.046.164.183.183 0 0 1-.15.059h-2.437z",
  fill: "#fafafa"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M61.9 91.752a.24.24 0 0 1 .035-.154.247.247 0 0 1 .161-.07 118.677 118.677 0 0 1 4.396-.084 8.174 8.174 0 0 1 6.387 2.506 9.615 9.615 0 0 1 2.125 6.538c0 3.738-1.225 6.174-2.923 7.675a8.706 8.706 0 0 1-5.757 2.068c-.714 0-1.589-.007-2.38-.017s-1.498-.024-1.876-.038a.148.148 0 0 1-.126-.059.276.276 0 0 1-.042-.164V91.752zm3.052 15.736c.238.014.462.028.693.038s.469.018.735.018a4.94 4.94 0 0 0 3.909-1.701 8.041 8.041 0 0 0 1.579-5.271 6.918 6.918 0 0 0-1.554-4.963 5.084 5.084 0 0 0-3.822-1.477c-.294 0-.56.007-.812.018s-.49.024-.728.038v13.3z",
  fill: "#fafafa"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M78.363 91.752a.24.24 0 0 1 .035-.154.247.247 0 0 1 .161-.07 118.656 118.656 0 0 1 4.395-.084 8.178 8.178 0 0 1 6.388 2.506 9.61 9.61 0 0 1 2.124 6.538c0 3.738-1.225 6.174-2.922 7.675a8.704 8.704 0 0 1-5.757 2.068c-.714 0-1.589-.007-2.38-.017s-1.498-.024-1.876-.038a.148.148 0 0 1-.126-.059.276.276 0 0 1-.042-.164V91.752zm3.052 15.736c.238.014.462.028.693.038s.469.018.735.018a4.94 4.94 0 0 0 3.909-1.701 8.041 8.041 0 0 0 1.578-5.271 6.918 6.918 0 0 0-1.554-4.963 5.084 5.084 0 0 0-3.822-1.477c-.294 0-.56.007-.812.018s-.49.024-.728.038v13.3z",
  fill: "#fafafa"
}), /*#__PURE__*/react_default.a.createElement("g", {
  "data-name": "512",
  fill: "#f36"
}, /*#__PURE__*/react_default.a.createElement("path", {
  d: "M51.362 27.459v41.483q0 .651-.586.65h-7.88q-.521 0-.52-.65V27.459q0-.52.586-.521h7.88a.46.46 0 0 1 .52.52z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M73.374 70.244a20.177 20.177 0 0 1-8.694-1.823 13.823 13.823 0 0 1-6.089-5.503 17.602 17.602 0 0 1-2.214-9.215 17.006 17.006 0 0 1 2.214-8.531 16.256 16.256 0 0 1 6.447-6.252 20.81 20.81 0 0 1 10.224-2.344q.326 0 .847.032.52.034 1.237.098v-12.83c0-.302.13-.455.391-.455h8.206a.345.345 0 0 1 .39.39V62.3q0 1.108.098 2.41.098 1.303.163 2.344a.673.673 0 0 1-.39.651 32.305 32.305 0 0 1-6.578 1.954 35.313 35.313 0 0 1-6.252.586zm3.972-8.075V44.39a6.465 6.465 0 0 0-1.074-.196 12.996 12.996 0 0 0-1.335-.065 10.055 10.055 0 0 0-4.559 1.042 8.38 8.38 0 0 0-4.753 8.14 11.486 11.486 0 0 0 .683 4.168 7.926 7.926 0 0 0 1.824 2.866 6.944 6.944 0 0 0 2.735 1.628 10.714 10.714 0 0 0 3.354.52q.91 0 1.693-.064a6.968 6.968 0 0 0 1.432-.261z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/assets/document-icons/ps_PSD_128.svg
function ps_PSD_128_extends() {
  ps_PSD_128_extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return ps_PSD_128_extends.apply(this, arguments);
}


/* harmony default export */ var ps_PSD_128 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", ps_PSD_128_extends({
  "data-name": "Layer 1",
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 128 128"
}, props), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M24 126a10.03 10.03 0 0 1-10-10V12A10.03 10.03 0 0 1 24 2h61.5a7.865 7.865 0 0 1 5.6 2.3l20.5 20.4a8.196 8.196 0 0 1 2.4 5.7V116a10.03 10.03 0 0 1-10 10z",
  fill: "#001e36"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M85.5 4a5.598 5.598 0 0 1 4.2 1.8l20.5 20.4a6.174 6.174 0 0 1 1.8 4.2V116a8.024 8.024 0 0 1-8 8H24a8.024 8.024 0 0 1-8-8V12a8.024 8.024 0 0 1 8-8h61.5m0-4H24a12.035 12.035 0 0 0-12 12v104a12.035 12.035 0 0 0 12 12h80a12.035 12.035 0 0 0 12-12V30.4a10.515 10.515 0 0 0-2.9-7.1L92.6 2.9A9.898 9.898 0 0 0 85.5 0z",
  fill: "#31a8ff"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M43.974 91.1c0-.112.028-.197.17-.197 1.1-.056 2.708-.085 4.4-.085 4.74 0 6.8 2.596 6.8 5.925 0 4.345-3.132 6.207-6.997 6.207-.649 0-.875-.028-1.326-.028v6.574c0 .14-.057.197-.198.197h-2.652c-.14 0-.197-.056-.197-.197zm3.047 9.086c.395.028.705.028 1.382.028 2.003 0 3.866-.706 3.866-3.414 0-2.173-1.327-3.273-3.612-3.273-.677 0-1.326.029-1.636.056z",
  fill: "#fff"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M58.281 109.045a.42.42 0 0 1-.17-.367v-2.71a.134.134 0 0 1 .226-.083 7.4 7.4 0 0 0 4.176 1.27c2.06 0 2.906-1.073 2.906-2.286 0-1.072-.536-1.947-2.51-3.103l-1.016-.537c-2.907-1.636-3.753-3.3-3.753-5.417 0-2.877 2.003-5.191 5.784-5.191a7.762 7.762 0 0 1 3.583.648c.14.057.169.142.169.311v2.54a.136.136 0 0 1-.226.112 6.584 6.584 0 0 0-3.47-.846c-2.172 0-2.877 1.241-2.877 2.23 0 1.07.535 1.86 2.482 2.933l.903.48c3.216 1.777 4.034 3.498 4.034 5.615 0 3.13-2.285 5.303-6.009 5.303a8.884 8.884 0 0 1-4.232-.902z",
  fill: "#fff"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M71.742 91.129c0-.14.029-.197.197-.226.649-.028 2.511-.085 4.43-.085 5.728 0 8.576 3.697 8.576 9.114 0 7.533-4.936 9.818-8.746 9.818-1.438 0-3.526-.028-4.288-.057-.113 0-.169-.085-.169-.225zm3.075 15.855c.48.029.903.057 1.439.057 3.16 0 5.502-2.228 5.53-7.024.028-4.684-2.398-6.49-5.417-6.49-.593 0-1.072.029-1.552.056z",
  fill: "#fff"
}), /*#__PURE__*/react_default.a.createElement("g", {
  "data-name": "512",
  fill: "#31a8ff"
}, /*#__PURE__*/react_default.a.createElement("path", {
  d: "M36.395 69.072V27.459c0-.304.13-.456.391-.456q1.041 0 2.475-.033 1.431-.032 3.093-.065 1.66-.032 3.517-.065 1.856-.032 3.68-.033a24.476 24.476 0 0 1 8.335 1.238 14.462 14.462 0 0 1 5.438 3.321 12.736 12.736 0 0 1 2.963 4.591 15.23 15.23 0 0 1 .911 5.243 14.472 14.472 0 0 1-2.41 8.596 13.614 13.614 0 0 1-6.511 4.916 25.91 25.91 0 0 1-9.118 1.53q-1.433 0-2.018-.032-.586-.032-1.759-.032v12.829a.518.518 0 0 1-.586.586h-7.945c-.304 0-.456-.173-.456-.521zm8.987-34.254v13.48q.846.065 1.563.065h2.15a15.364 15.364 0 0 0 4.656-.651 7.02 7.02 0 0 0 3.32-2.15 6.248 6.248 0 0 0 1.27-4.167 6.586 6.586 0 0 0-.943-3.582 6.074 6.074 0 0 0-2.833-2.312 12.07 12.07 0 0 0-4.754-.814q-1.563 0-2.768.033-1.206.033-1.66.097z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M91.097 45.693a15.23 15.23 0 0 0-3.874-1.368 20.581 20.581 0 0 0-4.526-.52 8.421 8.421 0 0 0-2.442.292 2.194 2.194 0 0 0-1.27.814 2.05 2.05 0 0 0-.326 1.108 1.73 1.73 0 0 0 .39 1.041 4.432 4.432 0 0 0 1.368 1.075 27.304 27.304 0 0 0 2.866 1.335 28.396 28.396 0 0 1 6.219 2.963 9.458 9.458 0 0 1 3.19 3.354 8.942 8.942 0 0 1 .945 4.168 9.36 9.36 0 0 1-1.563 5.372 10.28 10.28 0 0 1-4.526 3.615 18.221 18.221 0 0 1-7.326 1.302 26.498 26.498 0 0 1-5.503-.52 15.734 15.734 0 0 1-3.94-1.303.843.843 0 0 1-.456-.782v-7.033a.383.383 0 0 1 .163-.358.316.316 0 0 1 .358.032 16.232 16.232 0 0 0 4.82 1.987 20.683 20.683 0 0 0 4.753.618 7.303 7.303 0 0 0 3.354-.586 1.841 1.841 0 0 0 1.075-1.693 2.153 2.153 0 0 0-.977-1.628 16.166 16.166 0 0 0-3.973-1.889 23.94 23.94 0 0 1-5.763-2.93 9.939 9.939 0 0 1-3.06-3.42 8.98 8.98 0 0 1-.945-4.134 9.335 9.335 0 0 1 1.367-4.885 9.938 9.938 0 0 1 4.233-3.712 15.956 15.956 0 0 1 7.164-1.432 31.712 31.712 0 0 1 5.014.358 12.234 12.234 0 0 1 3.387.944.594.594 0 0 1 .39.358 1.802 1.802 0 0 1 .066.489v6.577a.437.437 0 0 1-.196.39.427.427 0 0 1-.456 0z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/assets/document-icons/ps_PSDC_128.svg
function ps_PSDC_128_extends() {
  ps_PSDC_128_extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return ps_PSDC_128_extends.apply(this, arguments);
}


/* harmony default export */ var ps_PSDC_128 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", ps_PSDC_128_extends({
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 128 128"
}, props), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M24 126a10.011 10.011 0 0 1-10-10V12A10.011 10.011 0 0 1 24 2h61.52a7.946 7.946 0 0 1 5.647 2.333l20.48 20.408A8.053 8.053 0 0 1 114 30.408V116a10.012 10.012 0 0 1-10 10z",
  fill: "#001e36"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M85.52 4a6 6 0 0 1 4.235 1.75l20.48 20.408a6 6 0 0 1 1.765 4.25V116a8 8 0 0 1-8 8H24a8 8 0 0 1-8-8V12a8 8 0 0 1 8-8h61.52m0-4H24a12.014 12.014 0 0 0-12 12v104a12.014 12.014 0 0 0 12 12h80a12.014 12.014 0 0 0 12-12V30.408a10.068 10.068 0 0 0-2.941-7.084L92.579 2.916A9.936 9.936 0 0 0 85.52 0z",
  fill: "#31a8ff"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M36.919 91.1c0-.112.028-.197.17-.197 1.1-.056 2.708-.085 4.4-.085 4.74 0 6.8 2.596 6.8 5.925 0 4.345-3.132 6.207-6.997 6.207-.648 0-.874-.028-1.326-.028v6.574c0 .14-.056.197-.197.197h-2.652c-.141 0-.198-.056-.198-.197zm3.047 9.086c.395.028.705.028 1.383.028 2.003 0 3.865-.706 3.865-3.414 0-2.173-1.326-3.273-3.611-3.273-.678 0-1.327.029-1.637.056z",
  fill: "#fff"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M51.227 109.045a.42.42 0 0 1-.17-.367v-2.71a.134.134 0 0 1 .226-.083 7.4 7.4 0 0 0 4.176 1.27c2.06 0 2.905-1.073 2.905-2.286 0-1.072-.536-1.947-2.51-3.103l-1.016-.537c-2.906-1.636-3.753-3.3-3.753-5.417 0-2.877 2.003-5.191 5.784-5.191a7.762 7.762 0 0 1 3.583.648c.141.057.17.142.17.311v2.54a.136.136 0 0 1-.227.112 6.586 6.586 0 0 0-3.47-.846c-2.172 0-2.877 1.24-2.877 2.23 0 1.07.535 1.86 2.482 2.933l.903.48c3.216 1.777 4.035 3.498 4.035 5.614 0 3.131-2.285 5.304-6.01 5.304a8.884 8.884 0 0 1-4.231-.902z",
  fill: "#fff"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M64.688 91.129c0-.14.028-.197.197-.226.648-.028 2.51-.085 4.43-.085 5.727 0 8.576 3.697 8.576 9.114 0 7.533-4.937 9.818-8.746 9.818-1.439 0-3.527-.028-4.289-.057-.113 0-.168-.085-.168-.225zm3.075 15.855c.48.029.902.057 1.438.057 3.16 0 5.502-2.228 5.53-7.024.029-4.684-2.398-6.49-5.417-6.49-.592 0-1.072.029-1.551.056z",
  fill: "#fff"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M92.198 109.214a.284.284 0 0 1-.197.31 8.947 8.947 0 0 1-3.132.423c-4.401 0-8.295-2.878-8.295-9.65 0-5.81 3.443-9.704 8.69-9.704a7.752 7.752 0 0 1 2.934.395c.142.056.17.14.17.31v2.427c0 .225-.113.225-.198.197a6.697 6.697 0 0 0-2.877-.536c-3.302 0-5.502 2.51-5.502 6.828 0 5.332 3.019 6.912 5.502 6.912a7.767 7.767 0 0 0 2.708-.367c.113-.056.197-.056.197.141z",
  fill: "#fff"
}), /*#__PURE__*/react_default.a.createElement("g", {
  "data-name": "512",
  fill: "#31a8ff"
}, /*#__PURE__*/react_default.a.createElement("path", {
  d: "M36.395 69.072V27.459c0-.304.13-.456.391-.456q1.041 0 2.475-.033 1.431-.032 3.093-.065 1.66-.032 3.517-.065 1.856-.032 3.68-.033a24.476 24.476 0 0 1 8.335 1.238 14.462 14.462 0 0 1 5.438 3.321 12.736 12.736 0 0 1 2.963 4.591 15.23 15.23 0 0 1 .911 5.243 14.472 14.472 0 0 1-2.41 8.596 13.614 13.614 0 0 1-6.511 4.916 25.91 25.91 0 0 1-9.118 1.53q-1.433 0-2.018-.032-.586-.032-1.759-.032v12.829a.518.518 0 0 1-.586.586h-7.945c-.304 0-.456-.173-.456-.521zm8.987-34.254v13.48q.846.065 1.563.065h2.15a15.364 15.364 0 0 0 4.656-.651 7.02 7.02 0 0 0 3.32-2.15 6.248 6.248 0 0 0 1.27-4.167 6.586 6.586 0 0 0-.943-3.582 6.074 6.074 0 0 0-2.833-2.312 12.07 12.07 0 0 0-4.754-.814q-1.563 0-2.768.033-1.206.033-1.66.097z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M91.097 45.693a15.23 15.23 0 0 0-3.874-1.368 20.581 20.581 0 0 0-4.526-.52 8.421 8.421 0 0 0-2.442.292 2.194 2.194 0 0 0-1.27.814 2.05 2.05 0 0 0-.326 1.108 1.73 1.73 0 0 0 .39 1.041 4.432 4.432 0 0 0 1.368 1.075 27.304 27.304 0 0 0 2.866 1.335 28.396 28.396 0 0 1 6.219 2.963 9.458 9.458 0 0 1 3.19 3.354 8.942 8.942 0 0 1 .945 4.168 9.36 9.36 0 0 1-1.563 5.372 10.28 10.28 0 0 1-4.526 3.615 18.221 18.221 0 0 1-7.326 1.302 26.498 26.498 0 0 1-5.503-.52 15.734 15.734 0 0 1-3.94-1.303.843.843 0 0 1-.456-.782v-7.033a.383.383 0 0 1 .163-.358.316.316 0 0 1 .358.032 16.232 16.232 0 0 0 4.82 1.987 20.683 20.683 0 0 0 4.753.618 7.303 7.303 0 0 0 3.354-.586 1.841 1.841 0 0 0 1.075-1.693 2.153 2.153 0 0 0-.977-1.628 16.166 16.166 0 0 0-3.973-1.889 23.94 23.94 0 0 1-5.763-2.93 9.939 9.939 0 0 1-3.06-3.42 8.98 8.98 0 0 1-.945-4.134 9.335 9.335 0 0 1 1.367-4.885 9.938 9.938 0 0 1 4.233-3.712 15.956 15.956 0 0 1 7.164-1.432 31.712 31.712 0 0 1 5.014.358 12.234 12.234 0 0 1 3.387.944.594.594 0 0 1 .39.358 1.802 1.802 0 0 1 .066.489v6.577a.437.437 0 0 1-.196.39.427.427 0 0 1-.456 0z"
}))));
// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/ImageView.tsx
var ImageView = __webpack_require__("3Irx");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/components/ViewItemIcon.tsx
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;
};




































const getThemedIcon = (iconLight, iconDark) => ({
    [constants["u" /* Themes */].lightest]: iconLight,
    [constants["u" /* Themes */].light]: iconLight,
    [constants["u" /* Themes */].dark]: iconDark || iconLight,
    [constants["u" /* Themes */].darkest]: iconDark || iconLight,
});
const documentIcons = {
    default: getThemedIcon(filetype_generic_lightUI_128, filetype_generic_darkUI_128),
    'application/vnd.adobe.aftereffects.project': getThemedIcon(Ae_AEP_128),
    'application/illustrator': getThemedIcon(ai_AI_128),
    'application/postscript': getThemedIcon(ai_AI_128),
    'application/vnd.adobe.illustrator': getThemedIcon(ai_AI_128),
    'document/vnd.adobe.illustrator+dcx': getThemedIcon(ai_AIC_128),
    'application/vnd.adobe.animate-xfl+zip': getThemedIcon(an_FLA_128),
    'application/vnd.adobe.real': getThemedIcon(ar_REAL_128),
    'application/vnd.adobe.real+dcx': getThemedIcon(ar_REAL_128),
    '3d/vnd.adobe.dn+dcx': getThemedIcon(dn_DN_128),
    '3d/vnd.adobe.asd+dcx': getThemedIcon(dn_DN_128),
    'model/vnd.adobe.dn+dcx': getThemedIcon(dn_DN_128),
    'application/indesign': getThemedIcon(id_INDD_128),
    'application/vnd.adobe.file+json': getThemedIcon(id_INDD_128),
    'application/x-indesign': getThemedIcon(id_INDD_128),
    'application/psd': getThemedIcon(ps_PSD_128),
    'application/x-photoshop': getThemedIcon(ps_PSD_128),
    'image/photoshop': getThemedIcon(ps_PSD_128),
    'document/vnd.adobe.cpsd+dcx': getThemedIcon(ps_PSDC_128),
    'application/vnd.adobe.element.agc+json': getThemedIcon(xd_XD_128),
    'application/vnd.adobe.sparkler.project+dcx': getThemedIcon(xd_XD_128),
    'application/vnd.adobe.sparkler.project+dcxucf': getThemedIcon(xd_XD_128),
    'application/vnd.adobe.xd.cloudproject+dcx': getThemedIcon(xd_XDC_128),
    'application/pdf': getThemedIcon(acrobat_PDF_lightUI_128, acrobat_PDF_darkUI_128),
    'application/vnd.adobe.element.audio+dcx': getThemedIcon(acrobat_Audio_Generic_lightUI_128, acrobat_Audio_Generic_darkUI_128),
    'application/vnd.adobe.element.image+dcx': getThemedIcon(acrobat_Image_Generic_lightUI_128, acrobat_Image_Generic_darkUI_128),
    'application/vnd.adobe.element.text+dcx': getThemedIcon(acrobat_Text_Generic_lightUI_128, acrobat_Text_Generic_darkUI_128),
    'application/vnd.adobe.element.video+dcx': getThemedIcon(acrobat_Video_Generic_lightUI_128, acrobat_Video_Generic_darkUI_128),
    'application/vnd.apple.keynote.13': getThemedIcon(acrobat_Presentation_Generic_lightUI_128, acrobat_Presentation_Generic_darkUI_128),
    'application/vnd.openxmlformats-officedocument.presentationml.presentation': getThemedIcon(acrobat_Presentation_Generic_lightUI_128, acrobat_Presentation_Generic_darkUI_128),
    'application/vnd.openxmlformats-officedocument.presentationml.slideshow': getThemedIcon(acrobat_Presentation_Generic_lightUI_128, acrobat_Presentation_Generic_darkUI_128),
    'application/msexcel': getThemedIcon(acrobat_Spreadsheet_Generic_lightUI_128, acrobat_Spreadsheet_Generic_darkUI_128),
    'application/vnd.ms-excel': getThemedIcon(acrobat_Spreadsheet_Generic_lightUI_128, acrobat_Spreadsheet_Generic_darkUI_128),
    'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet': getThemedIcon(acrobat_Spreadsheet_Generic_lightUI_128, acrobat_Spreadsheet_Generic_darkUI_128),
    'application/zip': getThemedIcon(filetype_zip_lightUI_128, filetype_zip_darkUI_128),
    'model/gltf-binary': getThemedIcon(GLB_1024),
    'model/gltf+json': getThemedIcon(GLTF_1024),
};
const documentIconGenerics = {
    'audio/': getThemedIcon(acrobat_Audio_Generic_lightUI_128, acrobat_Audio_Generic_darkUI_128),
    'image/': getThemedIcon(acrobat_Image_Generic_lightUI_128, acrobat_Image_Generic_darkUI_128),
    'text/': getThemedIcon(acrobat_Text_Generic_lightUI_128, acrobat_Text_Generic_darkUI_128),
    'video/': getThemedIcon(acrobat_Video_Generic_lightUI_128, acrobat_Video_Generic_darkUI_128),
};
const getIconForType = (type, theme) => {
    var _a, _b;
    // first do an O(1) check for a full mimetype,
    // then do the O(n) wildcard lookup,
    return (_b = (documentIcons[type] || ((_a = Object.entries(documentIconGenerics).find(([prefix]) => type.indexOf(prefix) === 0)) === null || _a === void 0 ? void 0 : _a[1]))) === null || _b === void 0 ? void 0 : _b[theme];
};
let ViewItemIcon_ViewItemIcon = class ViewItemIcon extends react["Component"] {
    get hostIcon() {
        const { element, defaultDocumentIcons } = this.props;
        return defaultDocumentIcons === null || defaultDocumentIcons === void 0 ? void 0 : defaultDocumentIcons[element.type];
    }
    get isDefaultIcon() {
        const { element } = this.props;
        return !element.rendition;
    }
    get isSVG() {
        const { element } = this.props;
        return !element.rendition && !this.hostIcon;
    }
    get commonProps() {
        const { defaultDocumentIcons, element, theme, ...passThroughProps } = this.props;
        return {
            className: classnames_default()(['rendition', ...(this.isDefaultIcon ? ['defaultIcon'] : [])]),
            ...passThroughProps,
        };
    }
    renderImage(image) {
        return react["createElement"](ImageView["a" /* default */], Object.assign({ image: image }, this.commonProps));
    }
    renderSVG(Svg) {
        return react["createElement"](Svg, Object.assign({}, this.commonProps));
    }
    render() {
        const { element, theme = constants["u" /* Themes */].light } = this.props;
        if (element.rendition) {
            return this.renderImage(element.rendition);
        }
        const iconForType = getIconForType(element.type, theme);
        if (iconForType) {
            return this.renderSVG(iconForType);
        }
        if (this.hostIcon) {
            return this.renderImage(this.hostIcon);
        }
        return this.renderSVG(documentIcons.default[theme] || documentIcons.default[constants["u" /* Themes */].light]);
    }
};
ViewItemIcon_ViewItemIcon = __decorate([
    index_module["e" /* observer */]
], ViewItemIcon_ViewItemIcon);
/* harmony default export */ var components_ViewItemIcon = __webpack_exports__["a"] = (ViewItemIcon_ViewItemIcon);


/***/ }),

/***/ "4LMb":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("rect", {
  height: "14",
  rx: "1",
  ry: "1",
  width: "14",
  x: "2",
  y: "2"
}), React.createElement("rect", {
  height: "14",
  rx: "1",
  ry: "1",
  width: "14",
  x: "20",
  y: "2"
}), React.createElement("rect", {
  height: "14",
  rx: "1",
  ry: "1",
  width: "14",
  x: "2",
  y: "20"
}), React.createElement("rect", {
  height: "14",
  rx: "1",
  ry: "1",
  width: "14",
  x: "20",
  y: "20"
}));

/***/ }),

/***/ "4R/7":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("path", {
  d: "M8 10a2 2 0 0 1 2-2h26V6a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v28a2 2 0 0 0 2 2h2z"
}), React.createElement("path", {
  d: "M42 12H14a2 2 0 0 0-2 2v28a2 2 0 0 0 2 2h28a2 2 0 0 0 2-2V14a2 2 0 0 0-2-2zm-5 18h-7v7a1 1 0 0 1-1 1h-2a1 1 0 0 1-1-1v-7h-7a1 1 0 0 1-1-1v-2a1 1 0 0 1 1-1h7v-7a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v7h7a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1z"
}));

/***/ }),

/***/ "4Ssk":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return isNativeFetch; });
/* unused harmony export supportsDOMError */
/* unused harmony export supportsDOMException */
/* unused harmony export supportsErrorEvent */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return supportsFetch; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return supportsHistory; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return supportsNativeFetch; });
/* unused harmony export supportsReferrerPolicy */
/* unused harmony export supportsReportingObserver */
/* harmony import */ var _logger_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("8LbN");
/* harmony import */ var _worldwide_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("rbyU");

 // eslint-disable-next-line deprecation/deprecation

const WINDOW = Object(_worldwide_js__WEBPACK_IMPORTED_MODULE_1__[/* getGlobalObject */ "b"])();
/**
 * Tells whether current environment supports ErrorEvent objects
 * {@link supportsErrorEvent}.
 *
 * @returns Answer to the given question.
 */

function supportsErrorEvent() {
  try {
    new ErrorEvent('');
    return true;
  } catch (e) {
    return false;
  }
}
/**
 * Tells whether current environment supports DOMError objects
 * {@link supportsDOMError}.
 *
 * @returns Answer to the given question.
 */


function supportsDOMError() {
  try {
    // Chrome: VM89:1 Uncaught TypeError: Failed to construct 'DOMError':
    // 1 argument required, but only 0 present.
    // @ts-ignore It really needs 1 argument, not 0.
    new DOMError('');
    return true;
  } catch (e) {
    return false;
  }
}
/**
 * Tells whether current environment supports DOMException objects
 * {@link supportsDOMException}.
 *
 * @returns Answer to the given question.
 */


function supportsDOMException() {
  try {
    new DOMException('');
    return true;
  } catch (e) {
    return false;
  }
}
/**
 * Tells whether current environment supports Fetch API
 * {@link supportsFetch}.
 *
 * @returns Answer to the given question.
 */


function supportsFetch() {
  if (!('fetch' in WINDOW)) {
    return false;
  }

  try {
    new Headers();
    new Request('http://www.example.com');
    new Response();
    return true;
  } catch (e) {
    return false;
  }
}
/**
 * isNativeFetch checks if the given function is a native implementation of fetch()
 */
// eslint-disable-next-line @typescript-eslint/ban-types


function isNativeFetch(func) {
  return func && /^function fetch\(\)\s+\{\s+\[native code\]\s+\}$/.test(func.toString());
}
/**
 * Tells whether current environment supports Fetch API natively
 * {@link supportsNativeFetch}.
 *
 * @returns true if `window.fetch` is natively implemented, false otherwise
 */


function supportsNativeFetch() {
  if (!supportsFetch()) {
    return false;
  } // Fast path to avoid DOM I/O
  // eslint-disable-next-line @typescript-eslint/unbound-method


  if (isNativeFetch(WINDOW.fetch)) {
    return true;
  } // window.fetch is implemented, but is polyfilled or already wrapped (e.g: by a chrome extension)
  // so create a "pure" iframe to see if that has native fetch


  let result = false;
  const doc = WINDOW.document; // eslint-disable-next-line deprecation/deprecation

  if (doc && typeof doc.createElement === 'function') {
    try {
      const sandbox = doc.createElement('iframe');
      sandbox.hidden = true;
      doc.head.appendChild(sandbox);

      if (sandbox.contentWindow && sandbox.contentWindow.fetch) {
        // eslint-disable-next-line @typescript-eslint/unbound-method
        result = isNativeFetch(sandbox.contentWindow.fetch);
      }

      doc.head.removeChild(sandbox);
    } catch (err) {
      (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && _logger_js__WEBPACK_IMPORTED_MODULE_0__[/* logger */ "c"].warn('Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ', err);
    }
  }

  return result;
}
/**
 * Tells whether current environment supports ReportingObserver API
 * {@link supportsReportingObserver}.
 *
 * @returns Answer to the given question.
 */


function supportsReportingObserver() {
  return 'ReportingObserver' in WINDOW;
}
/**
 * Tells whether current environment supports Referrer Policy API
 * {@link supportsReferrerPolicy}.
 *
 * @returns Answer to the given question.
 */


function supportsReferrerPolicy() {
  // Despite all stars in the sky saying that Edge supports old draft syntax, aka 'never', 'always', 'origin' and 'default'
  // (see https://caniuse.com/#feat=referrer-policy),
  // it doesn't. And it throws an exception instead of ignoring this parameter...
  // REF: https://github.com/getsentry/raven-js/issues/1233
  if (!supportsFetch()) {
    return false;
  }

  try {
    new Request('_', {
      referrerPolicy: 'origin'
    });
    return true;
  } catch (e) {
    return false;
  }
}
/**
 * Tells whether current environment supports History API
 * {@link supportsHistory}.
 *
 * @returns Answer to the given question.
 */


function supportsHistory() {
  // NOTE: in Chrome App environment, touching history.pushState, *even inside
  //       a try/catch block*, will cause Chrome to output an error to console.error
  // borrowed from: https://github.com/angular/angular.js/pull/13945/files

  /* eslint-disable @typescript-eslint/no-unsafe-member-access */
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
  const chrome = WINDOW.chrome;
  const isChromePackagedApp = chrome && chrome.app && chrome.app.runtime;
  /* eslint-enable @typescript-eslint/no-unsafe-member-access */

  const hasHistoryApi = 'history' in WINDOW && !!WINDOW.history.pushState && !!WINDOW.history.replaceState;
  return !isChromePackagedApp && hasHistoryApi;
}



/***/ }),

/***/ "4U/7":
/***/ (function(module) {

module.exports = JSON.parse("{\"(optional)\":\"(valfritt)\",\"(required)\":\"(krävs)\"}");

/***/ }),

/***/ "4d7F":
/***/ (function(module, exports, __webpack_require__) {

module.exports = {
  "default": __webpack_require__("aW7e"),
  __esModule: true
};

/***/ }),

/***/ "4dMO":
/***/ (function(module, exports, __webpack_require__) {

/* WEBPACK VAR INJECTION */(function(Buffer) {var elliptic = __webpack_require__("MzeL");

var BN = __webpack_require__("OZ/i");

module.exports = function createECDH(curve) {
  return new ECDH(curve);
};

var aliases = {
  secp256k1: {
    name: 'secp256k1',
    byteLength: 32
  },
  secp224r1: {
    name: 'p224',
    byteLength: 28
  },
  prime256v1: {
    name: 'p256',
    byteLength: 32
  },
  prime192v1: {
    name: 'p192',
    byteLength: 24
  },
  ed25519: {
    name: 'ed25519',
    byteLength: 32
  },
  secp384r1: {
    name: 'p384',
    byteLength: 48
  },
  secp521r1: {
    name: 'p521',
    byteLength: 66
  }
};
aliases.p224 = aliases.secp224r1;
aliases.p256 = aliases.secp256r1 = aliases.prime256v1;
aliases.p192 = aliases.secp192r1 = aliases.prime192v1;
aliases.p384 = aliases.secp384r1;
aliases.p521 = aliases.secp521r1;

function ECDH(curve) {
  this.curveType = aliases[curve];

  if (!this.curveType) {
    this.curveType = {
      name: curve
    };
  }

  this.curve = new elliptic.ec(this.curveType.name); // eslint-disable-line new-cap

  this.keys = void 0;
}

ECDH.prototype.generateKeys = function (enc, format) {
  this.keys = this.curve.genKeyPair();
  return this.getPublicKey(enc, format);
};

ECDH.prototype.computeSecret = function (other, inenc, enc) {
  inenc = inenc || 'utf8';

  if (!Buffer.isBuffer(other)) {
    other = new Buffer(other, inenc);
  }

  var otherPub = this.curve.keyFromPublic(other).getPublic();
  var out = otherPub.mul(this.keys.getPrivate()).getX();
  return formatReturnValue(out, enc, this.curveType.byteLength);
};

ECDH.prototype.getPublicKey = function (enc, format) {
  var key = this.keys.getPublic(format === 'compressed', true);

  if (format === 'hybrid') {
    if (key[key.length - 1] % 2) {
      key[0] = 7;
    } else {
      key[0] = 6;
    }
  }

  return formatReturnValue(key, enc);
};

ECDH.prototype.getPrivateKey = function (enc) {
  return formatReturnValue(this.keys.getPrivate(), enc);
};

ECDH.prototype.setPublicKey = function (pub, enc) {
  enc = enc || 'utf8';

  if (!Buffer.isBuffer(pub)) {
    pub = new Buffer(pub, enc);
  }

  this.keys._importPublic(pub);

  return this;
};

ECDH.prototype.setPrivateKey = function (priv, enc) {
  enc = enc || 'utf8';

  if (!Buffer.isBuffer(priv)) {
    priv = new Buffer(priv, enc);
  }

  var _priv = new BN(priv);

  _priv = _priv.toString(16);
  this.keys = this.curve.genKeyPair();

  this.keys._importPrivate(_priv);

  return this;
};

function formatReturnValue(bn, enc, len) {
  if (!Array.isArray(bn)) {
    bn = bn.toArray();
  }

  var buf = new Buffer(bn);

  if (len && buf.length < len) {
    var zeros = new Buffer(len - buf.length);
    zeros.fill(0);
    buf = Buffer.concat([zeros, buf]);
  }

  if (!enc) {
    return buf;
  } else {
    return buf.toString(enc);
  }
}
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("HDXh").Buffer))

/***/ }),

/***/ "4e1N":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("path", {
  d: "M6 16.5V6h24v24H19.5a.5.5 0 0 0-.5.5v3a.5.5 0 0 0 .5.5H33a1 1 0 0 0 1-1V3a1 1 0 0 0-1-1H3a1 1 0 0 0-1 1v13.5a.5.5 0 0 0 .5.5h3a.5.5 0 0 0 .5-.5z"
}), React.createElement("path", {
  d: "M5.54 20.853l3.389 3.389-7.546 7.547a.5.5 0 0 0 0 .707L3.5 34.617a.5.5 0 0 0 .707 0l7.546-7.546 3.389 3.389a.5.5 0 0 0 .858-.353V20H5.893a.5.5 0 0 0-.353.853z"
}));

/***/ }),

/***/ "4fRq":
/***/ (function(module, exports) {

// Unique ID creation requires a high quality random # generator.  In the
// browser this is a little complicated due to unknown quality of Math.random()
// and inconsistent support for the `crypto` API.  We do the best we can via
// feature-detection
// getRandomValues needs to be invoked in a context where "this" is a Crypto
// implementation. Also, find the complete implementation of crypto on IE11.
var getRandomValues = typeof crypto != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto != 'undefined' && typeof window.msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto);

if (getRandomValues) {
  // WHATWG crypto RNG - http://wiki.whatwg.org/wiki/Crypto
  var rnds8 = new Uint8Array(16); // eslint-disable-line no-undef

  module.exports = function whatwgRNG() {
    getRandomValues(rnds8);
    return rnds8;
  };
} else {
  // Math.random()-based (RNG)
  //
  // If all else fails, use Math.random().  It's fast, but is of unspecified
  // quality.
  var rnds = new Array(16);

  module.exports = function mathRNG() {
    for (var i = 0, r; i < 16; i++) {
      if ((i & 0x03) === 0) r = Math.random() * 0x100000000;
      rnds[i] = r >>> ((i & 0x03) << 3) & 0xff;
    }

    return rnds;
  };
}

/***/ }),

/***/ "4hGt":
/***/ (function(module, exports) {

/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
module.exports = {
  'ccd.infoPanel.detail.created': 'Créé',
  'ccd.infoPanel.detail.modified': 'Modifié',
  'ccd.infoPanel.detail.size': 'Taille',
  'ccd.infoPanel.detail.shared': 'Partagé',
  'ccd.header.renameFolder': 'Renommer le dossier',
  'ccd.menu.addToFavourites': 'Ajouter aux raccourcis',
  'ccd.menu.removeFromFavourites': 'Supprimer le raccourci',
  'ccd.menu.viewonweb': 'Afficher sur le Web',
  'ccd.menu.share': 'Partager',
  'ccd.menu.openWith': 'Ouvrir dans',
  'ccd.menu.changeDefaultApp': 'Changer d’application par défaut…',
  'ccd.menu.default': '(Par défaut)',
  'ccd.menu.export': 'Exporter en tant que copie locale',
  'ccd.menu.download': 'Télécharger',
  'ccd.menu.createNew': 'Créer...',
  'ccd.menu.launch': 'LANCER',
  'actionMenuItem.permdelete': 'Supprimer définitivement',
  'tab.Cloud Documents': 'Vos fichiers',
  'tab.Home': 'Accueil',
  'header.CloudDocuments': 'Vos fichiers',
  'header.SharedWithYou': 'Partagé(s) avec vous',
  'header.Deleted': 'Éléments supprimés',
  'header.Deleted.AssetsWebLink': 'Pour afficher tous les éléments supprimés, accédez à Assets Web',
  'header.SelectedDocuments': '{numSelected, plural, =1 {#} other {#}} sélectionné(s)',
  'header.size': 'Taille',
  'header.title': 'Nom',
  'header.modifiedDate': 'Date de modification',
  'header.createDate': 'Date de création',
  'header.shareDate': 'Date de partage',
  'header.SortBy': 'Trier par',
  'header.infoPopover.body': 'Seuls les fichiers compatibles sont affichés. Pour voir tous les fichiers, visitez la page Creative Cloud sur le web.',
  'header.infoPopover.link': 'Aller sur Creative Cloud',
  'header.dragImport': 'Charger dans : {displayName}',
  'collaborators.onlyYou': 'Vous uniquement',
  'collaborators.Owner': '{displayName} (propriétaire)',
  'collaborators.More': '{numItems, plural, other {et # de plus}}',
  'empty.offline.root.title': 'Vous êtes déconnecté',
  'empty.offline.root.subtitle': 'Les éléments qui étaient visibles lorsque vous étiez en ligne apparaissent ici lorsque vous vous reconnectez.',
  'empty.offline.folder.title': 'Impossible de charger le dossier',
  'empty.offline.folder.subtitle': 'Pas de connexion Internet. Reconnectez-vous pour voir tous les éléments.',
  'empty.online.cdp.saveas.root.title': 'Aucun document en ligne à afficher',
  'empty.online.cdp.saveas.root.subtitle': 'Les documents en ligne vous permettent de garder votre travail à jour sur tous vos appareils, où que vous soyez. Connectez-vous tout simplement à Internet, le reste se fait automatiquement.',
  'empty.online.cdp.saveas.root.subtitle.sprk': 'Tous vos documents Cloud de XD se trouveront ici. Travaillez n’importe où, même hors ligne. Les modifications apportées aux documents cloud sont automatiquement enregistrées et consultables dans l’historique du document.',
  'empty.online.cdp.saveas.root.subtitle.phxs': 'Tous vos documents en ligne issus de Photoshop sur Mac, Windows et iPad seront ici.',
  'empty.online.cdp.saveas.root.subtitle.ilst': 'Tous vos documents en ligne issus d’Illustrator sur Mac et Windows seront ici.',
  'empty.online.cdp.saveas.root.subtitle.idsn': 'Tous vos documents en ligne issus d’InDesign sur Mac et Windows seront ici.',
  'empty.online.cdp.saveas.folder.title': 'Aucun document en ligne à afficher',
  'empty.online.cdp.saveas.folder.subtitle': 'Lorsque vous placez un document en ligne compatible dans ce dossier, il apparaît ici.',
  'empty.online.cdp.open.root.title': 'Aucun document en ligne à afficher',
  'empty.online.cdp.open.root.subtitle': 'Lorsque vous placez un document en ligne compatible dans ce dossier, il apparaît ici.',
  'empty.online.cdp.open.root.subtitle.sprk': 'Tous vos documents Cloud de XD se trouveront ici. Travaillez n’importe où, même hors ligne. Les modifications apportées aux documents cloud sont automatiquement enregistrées et consultables dans l’historique du document.',
  'empty.online.cdp.open.root.subtitle.phxs': 'Tous vos documents en ligne issus de Photoshop sur Mac, Windows et iPad seront ici.',
  'empty.online.cdp.open.root.subtitle.ilst': 'Tous vos documents en ligne issus d’Illustrator sur Mac et Windows seront ici.',
  'empty.online.cdp.open.root.subtitle.idsn': 'Tous vos documents en ligne issus d’InDesign sur Mac et Windows seront ici.',
  'empty.online.cdp.open.folder.title': 'Aucun document en ligne à afficher',
  'empty.online.cdp.open.folder.subtitle': 'Lorsque vous placez un document en ligne compatible dans ce dossier, il apparaît ici.',
  'empty.online.cdo.root.title': 'Vous n’avez pas de documents en ligne',
  'empty.online.cdo.root.subtitle': 'Collaborez de manière transparente avec d’autres utilisateurs et travaillez n’importe où, même hors ligne. Les modifications sont enregistrées automatiquement et consultables dans l’historique du fichier.',
  'empty.online.cdo.root.subtitle.sprk': 'Collaborez de manière transparente en temps réel avec d’autres utilisateurs et travaillez n’importe où, même hors ligne. Les modifications sont enregistrées automatiquement et consultables dans l’historique du fichier.',
  'empty.online.cdo.root.subtitle.phxs': 'Collaborez de manière transparente avec d’autres utilisateurs et profitez de Photoshop où que vous soyez, même hors ligne. Les modifications sont enregistrées automatiquement et consultables dans l’historique du fichier.',
  'empty.online.cdo.root.subtitle.ilst': 'Collaborez de manière transparente avec d’autres utilisateurs et profitez d’Illustrator où que vous soyez, même hors ligne. Les modifications sont enregistrées automatiquement et consultables dans l’historique du fichier.',
  'empty.online.cdo.root.subtitle.idsn': 'Accédez à vos documents partout où vous vous connectez à InDesign. Les modifications sont enregistrées automatiquement.',
  'empty.online.cdo.folder.title': 'Aucun document en ligne à afficher',
  'empty.online.cdo.folder.subtitle': 'Lorsque vous placez un document en ligne compatible dans ce dossier, il apparaît ici.',
  'empty.title.deleted': 'Aucun fichier n’a été supprimé',
  'empty.title.deleted_offline': 'Vous êtes déconnecté',
  'empty.title.recent': 'Vous n’avez pas de fichiers récents',
  'empty.subtext.deleted_offline': 'Les éléments supprimés lorsque vous étiez en ligne apparaissent ici lorsque vous vous reconnectez.',
  'empty.title.shared_with_you': 'Vous n’avez pas de document en ligne partagés',
  'empty.subtext.shared_with_you': 'Lorsque quelqu’un partage des documents en ligne avec vous, ils apparaissent ici.',
  'empty.title.shared_with_you_offline': 'Vous êtes déconnecté',
  'empty.subtext.shared_with_you_offline': 'Vous pourrez afficher et modifier des documents partagés lorsque votre connexion sera rétablie.',
  'empty.title.error': 'Une erreur s’est produite',
  'empty.subtext.error': 'Redémarrez l’application, puis réessayez.',
  'empty.subtext.error.web': 'Actualisez votre navigateur et réessayez.',
  'empty.title.coresync.down': 'Chargement impossible',
  'empty.subtext.coresync.down': 'Le cloud ne se synchronise pas. Assurez-vous que l’application de bureau Creative Cloud est à jour ou essayez de relancer l’application.',
  'empty.title.coresync.incompatible': 'Impossible de charger des documents en ligne',
  'empty.subtext.coresync.incompatible': 'Impossible d’afficher les éléments. Veuillez mettre à jour la version de votre application Creative Cloud et réessayer.',
  'empty.title.cloudStorageDisabled': 'Les documents en ligne ne sont pas disponibles',
  'empty.subtext.cloudStorageDisabled': 'Vous pouvez utiliser {productName} pour travailler avec des fichiers sur votre appareil uniquement. Contactez votre administrateur informatique pour plus d’informations.',
  'empty.title.logout': 'Connectez-vous pour accéder aux documents en ligne.',
  'empty.learnMore.link': 'En savoir plus',
  'trueEmpty.online.cdo.folder.title': 'Ce dossier est vide.',
  'trueEmpty.online.cdo.folder.subtitle': 'Ajoutez des éléments ici pour commencer à le remplir.',
  'trueEmpty.online.cdp.saveas.folder.title': 'Aucun document en ligne pour l’instant',
  'trueEmpty.online.cdp.saveas.folder.subtitle': 'Les documents en ligne vous permettent de garder votre travail à jour sur tous vos appareils, où que vous soyez. Connectez-vous tout simplement à Internet, le reste se fait automatiquement.',
  'trueEmpty.online.cdp.open.folder.title': 'Aucun document en ligne pour l’instant',
  'trueEmpty.online.cdp.open.folder.subtitle': 'Les documents en ligne vous permettent de garder votre travail à jour sur tous vos appareils, où que vous soyez. Connectez-vous tout simplement à Internet, le reste se fait automatiquement.',
  'filter.prompt': 'Entrer un mot-clé',
  'filter.title': 'Filtre',
  'empty.filter.title': 'Aucun résultat pour « {filterString} »',
  'empty.filter.subtitle': 'Vérifiez votre orthographe, essayez un mot-clé plus large ou filtrez un autre emplacement.',
  'beta.title': 'Synchroniser votre travail entre vos appareils',
  'beta.subtitle': 'Travaillez de manière transparente dans Photoshop sur votre iPad et votre ordinateur de bureau avec des documents en ligne. La fonctionnalité étant en version Bêta, elle est toutefois susceptible de ne pas toujours fonctionner comme prévu. Activez-la et désactivez-la dans les préférences.',
  'beta.button': 'Activer dans les préférences',
  'beta.tag': 'BETA',
  'beta.feedback.link': 'Faire des commentaires sur la version bêta',
  'button.add-folder': 'Créer un dossier',
  'button.upload': 'Charger...',
  'button.createnew': 'Créer',
  'button.reportAbuse': 'Signaler un abus',
  'button.open': 'Ouvrir',
  'button.select': 'Sélectionner',
  'button.rename': 'Renommer',
  'button.pin.header': 'Toujours rendre disponible hors ligne',
  'button.pin': 'Toujours rendre disponible hors ligne',
  'button.unpin.header': 'Rendre accessible en ligne uniquement',
  'button.unpin': 'Rendre accessible en ligne uniquement',
  'button.duplicate': 'Dupliquer',
  'button.download': 'Télécharger',
  'button.move': 'Déplacer',
  'button.delete': 'Supprimer',
  'button.restore': 'Restaurer',
  'button.permdelete': 'Supprimer définitivement',
  'button.listview': 'Affichage par liste',
  'button.gridview': 'Affichage par grille',
  'button.sharesheetinvite': 'Inviter à modifier',
  'button.sharesheetLink': 'Obtenir le lien',
  'button.shareSheetAction': 'Partager',
  'button.preview': 'Aperçu',
  'button.schedule': 'Calendrier',
  'action.duplicate.suffix': '(Dupliquer)',
  'action.resolve_sync_error.suffix': 'copie',
  'statusIcon.conflicted': 'Conflit de synchronisation',
  'statusIcon.onlineOnly': 'En ligne seulement',
  'statusIcon.availableOffline': 'Disponible hors ligne',
  'statusIcon.syncing': 'Synchronisation...',
  'statusIcon.waitingToSync': 'En attente de synchronisation',
  'tooltip.error': 'Ouvrir le document pour gérer le conflit d’enregistrement',
  'toast.error.documentIsOpen': 'Fermez {count, plural, =1 {le document} other {les documents}} pour effectuer cette action.',
  'toast.error.exceedsQuota.personal': 'Stockage du compte saturé',
  'toast.error.exceedsQuota.enterprise': 'Stockage saturé, contactez votre administrateur pour en savoir plus.',
  'toast.operation.duplicate.error': 'Impossible de dupliquer {count, plural, =1 {l’élément} other {{count} éléments}}.',
  'toast.operation.duplicate.success': '{count, plural, =1 {Élément dupliqué} other {{count} éléments dupliqués}}.',
  'toast.operation.archive.error': 'Impossible de supprimer {count, plural, =1 {élément} other {{count} éléments}}.',
  'toast.operation.archive.error.otherAppUncommittedChanges': 'Vous ne pouvez pas supprimer les fichiers ouverts dans d’autres applications. Fermez-les, puis réessayez.',
  'toast.operation.archive.undo.error': 'Impossible de supprimer {count, plural, =1 {élément} other {{count} éléments}}.',
  'toast.operation.archive.success': '{count, plural, =1 {Élément supprimé} other {{count} éléments supprimés}}.',
  'toast.operation.archive.undo.success': 'Restauration annulée.',
  'toast.operation.permdelete.error': 'Impossible de supprimer définitivement {count, plural, =1 {élément} other {{count} éléments}}.',
  'toast.operation.permdelete.success': '{count, plural, =1 {Élément supprimé} other {{count} éléments supprimés}} définitivement.',
  'toast.operation.rename.error': 'Impossible de renommer l’élément.',
  'toast.operation.rename.undo.error': 'Impossible de renommer l’élément.',
  'toast.operation.rename.error.duplicateName': 'Vous avez déjà un élément portant le même nom.',
  'toast.operation.rename.undo.error.duplicateName': 'Vous avez déjà un élément portant le même nom.',
  'toast.operation.rename.success': 'Élément renommé.',
  'toast.operation.rename.undo.success': 'Nouveau nom annulé.',
  'toast.operation.move.error': 'Impossible de déplacer {count, plural, =1 {élément} other {{count} éléments}}.',
  'toast.operation.move.undo.error': 'Impossible de déplacer {count, plural, =1 {élément} other {{count} éléments}}.',
  'toast.operation.move.error.duplicateFolderName': 'Vous avez déjà un dossier portant le même nom.',
  'toast.operation.move.undo.error.duplicateFolderName': 'Vous avez déjà un document portant le même nom.',
  'toast.operation.move.error.duplicateDocName': '{count, plural, =1 {Ce dossier contient déjà un document portant ce nom. Renommez et réessayez.} other {Les documents ne peuvent pas être déplacés, car des documents portant le même nom existent.}}',
  'toast.operation.move.undo.error.duplicateDocName': '{count, plural, =1 {Ce dossier contient déjà un document portant ce nom. Renommez et réessayez.} other {Les documents ne peuvent pas être déplacés, car des documents portant le même nom existent.}}',
  'toast.operation.move.success': '{count, plural, =1 {Élément déplacé} other {{count} éléments déplacés}}.',
  'toast.operation.move.undo.success': 'Déplacement annulé.',
  'toast.operation.unarchive.error': 'Impossible de restaurer {count, plural, =1 {élément} other {{count} éléments}}.',
  'toast.operation.unarchive.undo.error': 'Impossible de restaurer {count, plural, =1 {élément} other {{count} éléments}}.',
  'toast.operation.unarchive.success': '{count, plural, =1 {Élément restauré} other {{count} éléments restaurés}}.',
  'toast.operation.unarchive.undo.success': 'Suppression annulée.',
  'toast.operation.create_new_folder.success': 'Dossier créé.',
  'toast.operation.create_new_folder.error': 'Impossible de créer le dossier.',
  'toast.operation.create_new_folder.error.duplicateName': 'Vous avez déjà un document portant le même nom.',
  'toast.operation.user_pin.success': '{count, plural, =1 {Élément} other {{count} éléments}} mis à disposition hors ligne.',
  'toast.operation.user_pin.error': 'Impossible de mettre {count, plural, =1 {élément} other {{count} éléments}} à disposition hors ligne.',
  'toast.operation.user_unpin.success': '{count, plural, =1 {Élément} other {{count} éléments}} disponible en ligne uniquement.',
  'toast.operation.user_unpin.error': 'Impossible de mettre {count, plural, =1 {l’élément} other {{count} éléments}} à disposition en ligne uniquement.',
  'toast.operation.resolve_sync_error.success': 'Une copie du fichier « {name} » a été créée. Vous pouvez comparer les deux documents et corriger les différences éventuelles.',
  'toast.ccd.scroll_to_item.fetching': 'Récupération du fichier…',
  'toast.ccd.scroll_to_item.error': 'Fichier introuvable',
  'toast.info.disabled_rename_to_open_item': 'Les documents XD hérités doivent d’abord être ouverts avant de pouvoir être renommés ici.',
  'toast.action.disabled_rename_to_open_item': 'Ouvrir un document',
  'toast.error.rename.invalidName': 'Désolé, le nom de ce dossier contient un ou plusieurs caractères non valides.',
  'toast.error.rename.invalidChar': 'Un nom ne doit pas contenir les caractères suivants : {characters}',
  'toast.error.rename.invalidEnd': 'Un nom ne doit pas se terminer par "." ni par un espace.',
  'toast.error.rename.charRestriction': 'Les noms de dossier ne peuvent pas dépasser 200 caractères.',
  'toast.error.rename.duplicateName': 'Vous avez déjà un document en ligne ici portant le même nom.',
  'toast.success.reportAbuse': 'Abus signalé avec succès',
  'toast.error.reportAbuse': 'Abus non signalé',
  'toast.operation.undoLabel': 'Annuler',
  'dialog.permdelete.heading': 'Supprimer définitivement',
  'dialog.permdelete.warning': 'Vous ne pouvez pas annuler cette action. Voici les éléments qui seront supprimés définitivement :',
  'dialog.permdelete.cancelButton': 'Annuler',
  'dialog.permdelete.confirmButton': 'Supprimer définitivement',
  'dialog.permdelete.countItems': '{count, plural, =1 {# élément} other {# éléments}}',
  'dialog.nonemptyfolder.heading': 'Voulez-vous vraiment supprimer {count, plural, =1 {ce dossier} other {ces dossiers}} ?',
  'dialog.nonemptyfolder.warning': '{count, plural, =1 {Ce dossier n’est pas vide et peut} other {Ces dossiers ne sont pas vides et peuvent}} contenir des fichiers non visibles dans {appName}. Vous pouvez confirmer la suppression ou vérifier de {count, plural, =1 {quel dossier} other {quels dossiers}} il s’agit sur le web et, éventuellement, extraire {count, plural, =1 {son} other {leur}} contenu.  {viewOnWebLink}',
  'dialog.nonemptyfolder.cancelButton': 'Annuler',
  'dialog.nonemptyfolder.confirmButton': 'Supprimer',
  'dialog.nonemptyfolder.viewOnWebButton': 'Voir sur le web',
  'dialog.addfolder.heading': 'Créer un dossier',
  'dialog.addfolder.cancelButton': 'Annuler',
  'dialog.addfolder.confirmButton': 'Enregistrer',
  'dialog.addfolder.placeholder': 'Nouveau dossier',
  'dialog.addfolder.invalidChar': 'Un nom ne doit pas contenir les caractères suivants : {characters}',
  'dialog.addfolder.invalidName': 'Désolé, le nom de ce dossier contient un ou plusieurs caractères non valides.',
  'dialog.addfolder.invalidEnd': 'Un nom ne doit pas se terminer par "." ni par un espace.',
  'dialog.addfolder.duplicateName': 'Vous avez déjà un dossier portant le même nom.',
  'dialog.addfolder.charRestriction': 'Les noms de dossier ne peuvent pas dépasser 200 caractères.',
  'dialog.moveFolder.heading': 'Déplacer vers...',
  'dialog.moveFolder.cancelButton': 'Annuler',
  'dialog.moveFolder.moveButton': 'Déplacer',
  'dialog.moveFolder.createNewFolderButton': 'Ajouter un dossier',
  'dialog.reportAbuse.cancelButton': 'Annuler',
  'dialog.reportAbuse.reportAbuseButton': 'Signaler un abus',
  'dialog.reportAbuse.heading': 'Signaler un abus',
  'dialog.reportAbuse.emailInput': 'Votre e-mail',
  'dialog.reportAbuse.nameInput': 'Votre nom',
  'dialog.reportAbuse.radioButtonText': 'Pour quel motif effectuez-vous un signalement de ce contenu ?',
  'dialog.reportAbuse.defamation': 'Diffamation',
  'dialog.reportAbuse.hate': 'Contenu raciste ou incitant à la haine',
  'dialog.reportAbuse.trademark': 'Atteinte à une marque commerciale',
  'dialog.reportAbuse.pornography': 'Contenu sexuellement explicite',
  'dialog.reportAbuse.vulgar': 'Contenu injurieux',
  'dialog.reportAbuse.other': 'Autre',
  'dialog.reportAbuse.inappropriate': 'Inapproprié',
  'dialog.reportAbuse.age': 'Âge incorrect',
  'dialog.reportAbuse.gender': 'Genre incorrect',
  'dialog.reportAbuse.description': 'Si vous estimez que ce contenu Creative Cloud enfreint les Conditions d’utilisation d’Adobe, vous pouvez le signaler en complétant ce formulaire.',
  'dialog.reportAbuse.describeConcern': 'Décrire le problème',
  'dialog.reportAbuse.success': 'Abus signalé avec succès',
  'dialog.reportAbuse.failure': 'Abus non signalé',
  'dialog.reportAbuse.textAreaTitle': 'Merci de décrire le problème rencontré',
  'dialog.reportAbuse.required': 'Obligatoire',
  'dialog.cachefull.title': 'Impossible de rendre le document disponible hors ligne',
  'dialog.cachefull.message': 'Vous êtes à court d’espace de stockage sur votre appareil. Créez des documents accessibles uniquement en ligne pour libérer de l’espace.',
  'dialog.cachefull.confirm': 'OK',
  'dialog.syncError.heading': 'Ce document a cessé de se synchroniser avec le cloud.',
  'dialog.syncError.body1': 'Nous vous recommandons d’enregistrer votre dernière version en tant que copie et de restaurer le document à la dernière version enregistrée dans le cloud.',
  'dialog.syncError.body2': 'Vous pouvez ouvrir ce document et le modifier, mais vos modifications ne seront pas enregistrées dans le cloud.',
  'dialog.syncError.offline': 'Vous devez être en ligne pour enregistrer une copie et restaurer l’original.',
  'dialog.syncError.learnMore': 'En savoir plus',
  'dialog.syncError.resolveButton': 'Enregistrer une copie et restaurer',
  'dialog.syncError.openButton': 'Ouvrir',
  'dialog.syncErrorCopyFail.heading': 'Impossible d’enregistrer une copie',
  'dialog.syncErrorCopyFail.body1': 'Vous pouvez toujours ouvrir ce document et le modifier, mais vos modifications ne seront pas enregistrées dans le cloud.',
  'dialog.syncErrorCopyFail.body2': 'Pour obtenir de l’aide, contactez l’Assistance clientèle Adobe. (Erreur : LocalContentSyncSuspended)',
  'dialog.syncErrorCopyFail.closeButton': 'Fermer',
  'dialog.syncErrorCopyFail.contactUs': 'Nous contacter',
  'dialog.syncErrorPurgeFail.heading': 'Impossible de restaurer la version enregistrée dans le cloud',
  'dialog.syncErrorPurgeFail.body1': 'Une copie de votre document a été créée, mais nous n’avons pas pu restaurer votre document à la dernière version enregistrée dans le cloud.',
  'dialog.syncErrorPurgeFail.body2': 'Pour obtenir de l’aide, contactez l’Assistance clientèle Adobe. (Erreur : LocalContentSyncSuspended)',
  'dialog.syncErrorPurgeFail.closeButton': 'Fermer',
  'dialog.syncErrorPurgeFail.contactUs': 'Nous contacter',
  'onboardingCdo.banner.title.sprk': 'Une meilleure façon de travailler',
  'onboardingCdo.banner.title.phxs': 'Vous utilisez Photoshop sur iPad ? Essayez les documents en ligne',
  'onboardingCdo.banner.title.ilst': 'Vous pouvez désormais utiliser des documents en ligne dans Illustrator',
  'onboardingCdo.banner.title.idsn': 'Vous pouvez désormais utiliser des documents en ligne dans InDesign',
  'onboardingCdo.banner.message.sprk': 'Modifiez vos documents Cloud n’importe où, même hors ligne. Les modifications sont enregistrées automatiquement et consultables dans l’historique du document. Partagez-les avec les autres pour collaborer de manière transparente en temps réel.',
  'onboardingCdo.banner.message.phxs': 'Les documents en ligne sont automatiquement enregistrés dans le Cloud d’Adobe pour vous permettre d’y accéder depuis votre poste de travail ou votre iPad.',
  'onboardingCdo.banner.message.ilst': 'Les documents en ligne dans Illustrator s’enregistrent automatiquement en cours de travail dans le cloud d’Adobe. Vous pouvez également afficher l’historique des versions pour suivre l’évolution de votre travail.',
  'onboardingCdo.banner.message.idsn': 'Les documents en ligne dans InDesign s’enregistrent automatiquement dans le cloud d’Adobe pendant que vous travaillez.',
  'onboardingCdo.banner.linkTitle': 'En savoir plus',
  'onboardingCdo.banner.confirm': 'OK',
  'operation.progress.archive': 'Suppression de {batchSize, plural, =1 {1 élément} other {{inProgressNum} sur {batchSize} éléments}}...',
  'operation.progress.unarchive': 'Restauration de {batchSize, plural, =1 {1 élément} other {{inProgressNum} sur {batchSize} éléments}}...',
  'operation.progress.move': 'Déplacement de {batchSize, plural, =1 {1 élément} other {{inProgressNum} sur {batchSize} éléments}}...',
  'operation.progress.permdelete': 'Suppression définitive de {batchSize, plural, =1 {1 élément} other {{inProgressNum} sur {batchSize} éléments}}...',
  'operation.progress.rename': 'Renommage de {batchSize, plural, =1 {1 élément} other {{inProgressNum} sur {batchSize} éléments}}...',
  'operation.progress.create_new_folder': 'Création du nouveau dossier...',
  'operation.progress.duplicate': 'Duplication de {batchSize, plural, =1 {1 élément} other {{inProgressNum} sur {batchSize} éléments}}...',
  'operation.progress.user_pin': 'Mise à disposition de {batchSize, plural, =1 {1 élément} other {{inProgressNum} sur {batchSize} éléments}} hors ligne...',
  'operation.progress.user_unpin': 'Mise à disposition de {batchSize, plural, =1 {1 élément} other {{inProgressNum} sur {batchSize} éléments}} en ligne uniquement...',
  'operation.progress.resolve_sync_error': 'Copie et restauration de la dernière version enregistrée dans le cloud...',
  'tooltip.offline.general': 'Une connexion Internet est requise.',
  'tooltip.offline.create-new-folder': 'Une connexion Internet est requise pour créer des dossiers.',
  'tooltip.offline.move': 'Une connexion Internet est requise pour déplacer des éléments.',
  'tooltip.syncing.disabled': 'En attente de finalisation de synchronisation',
  'tooltip.rename.disabled': 'Impossible de renommer un document sélectionné. Veuillez ouvrir l’application hôte pour autoriser le renommage.',
  'tooltip.rename.disabled.sprk': 'Ce fichier ne peut pas être renommé tant que vous ne l’ouvrez pas dans XD.',
  'tooltip.syncSuspended.needsAction': 'La synchronisation s’est arrêtée. Ouvrez le document pour intervenir.',
  'tooltip.syncSuspended.noAction': 'La synchronisation s’est arrêtée. Cette action n’est pas autorisée pour le moment.',
  'Recents.title': 'Récent',
  'Recents.cloudDocTitle': 'DOCUMENT EN LIGNE',
  'Recents.error.subtext.coreSync': 'Les éléments récents ne sont pas disponibles pour le moment car la synchronisation de Creative Cloud ne fonctionne pas correctement.',
  'item.saveForOfflineIconToolTip': 'Ce document a été téléchargé et est entièrement disponible hors ligne.',
  'item.disconnected.cloudonly': 'Vous êtes déconnecté. Reconnectez-vous pour ouvrir le document.',
  'item.coresyncdown.cloudonly': 'Impossible de charger le fichier. Essayez de mettre à jour ou de redémarrer Creative Cloud pour résoudre ce problème.',
  'folder.subtitle': 'DOSSIER',
  'review.subtitle': 'RÉVISION',
  'prototype.subtitle': 'PROTOTYPE',
  'designspecs.subtitle': 'SPÉCIFICATION TECHNIQUE',
  'project.subtitle': 'PROJET',
  'library.subtitle': 'BIBLIOTHÈQUE',
  'webLink.subtitle': 'LIEN WEB',
  'abbreviations.fileSize.byte': 'o',
  'abbreviations.fileSize.kilobyte': 'Ko',
  'abbreviations.fileSize.megabyte': 'Mo',
  'abbreviations.fileSize.gigabyte': 'Go',
  'abbreviations.fileSize.terabyte': 'To',
  'sam.copyNameFormat': '%@ copie',
  'cloudsync.quota.title': 'ESPACE DE STOCKAGE',
  'cloudsync.quota.percentage': '{percentageUsed}%',
  'cloudsync.quota.usage': '{usedCloudQuotaString} utilisé(s) sur {maxCloudQuotaString}',
  'cloudsync.quota.warning': 'Votre espace de stockage est plein. Pour continuer à synchroniser vos travaux, effectuez une mise à niveau.',
  'cloudsync.quota.error': 'Aucune information de stockage disponible...',
  'cloudsync.quota.upgrade': 'Mettre à niveau',
  'cloudsync.status.complete.title': 'Synchronisé et sauvegardé',
  'cloudsync.status.syncing.title': 'Synchronisation des documents en ligne',
  'cloudsync.status.syncing.descr': '{progress}/{total}',
  'cloudsync.status.offline.title': 'Vous travaillez hors ligne',
  'cloudsync.status.offline.descr': 'Nous enregistrons les documents en local. Ils seront synchronisés dans le cloud lorsque votre connexion sera rétablie.',
  'cloudsync.status.disabled.title': 'Synchronisation désactivée',
  'cloudsync.status.disabled.descr': 'Nous enregistrons les documents en local. Ils seront synchronisés dans le cloud lorsque le stockage sera disponible.',
  'cloudsync.item.progress.determinate': '{progress}/{total}',
  'cloudsync.item.progress.indeterminate': 'Synchronisation en cours...',
  'cloudsync.item.complete': 'Terminé',
  'cloudsync.items.header': 'Activité du réseau',
  'cloudsync.alert.title.coresync.down': 'Chargement impossible',
  'cloudsync.alert.subtext.coresync.down': 'Le cloud ne se synchronise pas. Assurez-vous que l’application de bureau Creative Cloud est à jour ou essayez de relancer l’application.',
  'cloudsync.alert.subtext.coresync.down.learnmore': 'En savoir plus',
  'cloudsync.tooltip.offline': 'Déconnecté',
  'cloudsync.tooltip.error': 'Erreur',
  'cloudsync.tooltip.syncing': 'Enregistrement...',
  'cloudsync.tooltip.default': 'Enregistrés',
  'cloudsync.singleDoc.offline.title': 'Déconnecté',
  'cloudsync.singleDoc.offline.descr': 'Tentative de reconnexion…',
  'cloudsync.singleDoc.offline.timestamp': 'Dernière synchronisation {time}',
  'cloudsync.singleDoc.error.samInitFail.title': 'Le cloud a cessé de se synchroniser',
  'cloudsync.singleDoc.error.samInitFail.descr': 'Veuillez redémarrer cette application pour continuer à synchroniser votre travail.',
  'cloudsync.singleDoc.error.syncSuspended.title': 'Le cloud a cessé de se synchroniser',
  'cloudsync.singleDoc.error.syncSuspended.descr': 'Veuillez redémarrer cette application pour continuer à synchroniser votre travail.',
  'cloudsync.singleDoc.error.title': 'Chargement impossible',
  'cloudsync.singleDoc.error.descr': 'Le cloud ne se synchronise pas. Assurez-vous que l’application de bureau Creative Cloud est à jour ou essayez de relancer l’application.',
  'cloudsync.singleDoc.error.learnMore': 'En savoir plus',
  'cloudsync.singleDoc.disabled.quotaExceeded.title': 'Votre espace de stockage dans le cloud est plein',
  'cloudsync.singleDoc.disabled.quotaExceeded.descr': 'Veuillez mettre à jour Creative Cloud pour continuer à synchroniser votre travail.',
  'cloudsync.singleDoc.syncing.title': 'Enregistrement...',
  'cloudsync.singleDoc.syncing.descr': 'En cours',
  'cloudsync.singleDoc.disabled.title': 'Impossible d’enregistrer',
  'cloudsync.singleDoc.disabled.descr': 'Stockage du compte saturé.',
  'cloudsync.singleDoc.complete.title': 'Fichier enregistré',
  'cloudsync.singleDoc.complete.timestamp': 'Dernière synchronisation {time}'
};

/***/ }),

/***/ "4jPS":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("J/gU"),
      24: __webpack_require__("c4wt")
    }
  }));
};

WrappedIcon.displayName = 'VolumeTwo';
exports.default = WrappedIcon;

/***/ }),

/***/ "4kuk":
/***/ (function(module, exports, __webpack_require__) {

var hashClear = __webpack_require__("SfRM"),
    hashDelete = __webpack_require__("Hvzi"),
    hashGet = __webpack_require__("u8Dt"),
    hashHas = __webpack_require__("ekgI"),
    hashSet = __webpack_require__("JSQU");
/**
 * Creates a hash object.
 *
 * @private
 * @constructor
 * @param {Array} [entries] The key-value pairs to cache.
 */


function Hash(entries) {
  var index = -1,
      length = entries == null ? 0 : entries.length;
  this.clear();

  while (++index < length) {
    var entry = entries[index];
    this.set(entry[0], entry[1]);
  }
} // Add methods to `Hash`.


Hash.prototype.clear = hashClear;
Hash.prototype['delete'] = hashDelete;
Hash.prototype.get = hashGet;
Hash.prototype.has = hashHas;
Hash.prototype.set = hashSet;
module.exports = Hash;

/***/ }),

/***/ "4lx0":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__("q1tI");
var react_default = /*#__PURE__*/__webpack_require__.n(react);

// EXTERNAL MODULE: ./node_modules/react-intl-cdo/lib/index.es.js + 1 modules
var index_es = __webpack_require__("VIzJ");

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Icon/js/Icon.js
var Icon = __webpack_require__("trqI");
var Icon_default = /*#__PURE__*/__webpack_require__.n(Icon);

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/images/onboarding/S_Illu_AddALibrary.svg
function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}


/* harmony default export */ var S_Illu_AddALibrary = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", _extends({
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 72 72"
}, props), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["spaces_svg_icon_gray"] || "spaces_svg_icon_gray",
  d: "M11.07 32.83a.75.75 0 0 1-.75-.75V10.53a2.14 2.14 0 0 1 2.14-2.14h43.41A2.14 2.14 0 0 1 58 10.53v5.37a.75.75 0 0 1-1.5 0v-5.37a.64.64 0 0 0-.64-.64h-43.4a.64.64 0 0 0-.64.64v21.55a.76.76 0 0 1-.75.75z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["spaces_svg_icon_gray"] || "spaces_svg_icon_gray",
  d: "M17.6 56.09h-5.14a2.15 2.15 0 0 1-2.14-2.15v-8.72a.75.75 0 0 1 1.5 0v8.72a.65.65 0 0 0 .64.65h5.14a.75.75 0 0 1 0 1.5z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["spaces_svg_icon_gray"] || "spaces_svg_icon_gray",
  d: "M63.8 31.48a.76.76 0 0 1-.75-.75V17.29a.64.64 0 0 0-.64-.64H19a.65.65 0 0 0-.65.64v6.54a.75.75 0 0 1-1.5 0v-6.54A2.15 2.15 0 0 1 19 15.15h43.41a2.14 2.14 0 0 1 2.14 2.14v13.44a.76.76 0 0 1-.75.75z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["spaces_svg_icon_gray"] || "spaces_svg_icon_gray",
  d: "M62.41 62.84H19a2.15 2.15 0 0 1-2.15-2.14v-8.63a.75.75 0 0 1 1.5 0v8.63a.65.65 0 0 0 .65.64h43.41a.64.64 0 0 0 .64-.64v-30a.75.75 0 0 1 1.5 0v30a2.14 2.14 0 0 1-2.14 2.14z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["spaces_svg_icon_gray"] || "spaces_svg_icon_gray",
  d: "M44.22 36.93a.8.8 0 0 1-.33-.08.75.75 0 0 1-.42-.67V15.9a.75.75 0 0 1 .75-.75h13a.74.74 0 0 1 .75.75v20.28a.73.73 0 0 1-.38.65.72.72 0 0 1-.75 0l-6.81-4.08-5.4 4a.74.74 0 0 1-.41.18zM50 31.08a.79.79 0 0 1 .39.11l6.1 3.67V16.65H45v18l4.6-3.45a.74.74 0 0 1 .4-.12z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["spaces_svg_icon_tint"] || "spaces_svg_icon_tint",
  d: "M17.6 48.34a.76.76 0 0 1-.75-.75V29.46a.75.75 0 0 1 1.5 0v18.13a.75.75 0 0 1-.75.75z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["spaces_svg_icon_tint"] || "spaces_svg_icon_tint",
  d: "M27 38.94H8.2a.75.75 0 1 1 0-1.5H27a.75.75 0 1 1 0 1.5z"
})));
// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/ProjectAnalytics.ts
var ProjectAnalytics = __webpack_require__("mm/P");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/SpacesError.ts
var SpacesError = __webpack_require__("R5sx");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/components/ErrorDialog.tsx
var ErrorDialog = __webpack_require__("vQKl");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/actions/addResource.tsx







const addLibrary = (app, project, label = react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: 'button.addLibrary' })) => {
    return {
        id: 'addResource',
        ariaLabelID: 'button.addLibrary',
        name: label,
        variant: 'action',
        icon: (react_default.a.createElement(Icon_default.a, { size: "M" },
            react_default.a.createElement(S_Illu_AddALibrary, null))),
        emptyStateIcon: react_default.a.createElement(S_Illu_AddALibrary, null),
        quiet: false,
        supportsMultiple: true,
        onClick: async () => {
            var _a, _b, _c;
            const ui = app.projectList.uiConfig.cdoUISettings;
            ProjectAnalytics["g" /* default */].fireEvent({
                ...ProjectAnalytics["g" /* default */].scaffoldEvent(ProjectAnalytics["c" /* Subcategory */].Libraries, ProjectAnalytics["d" /* Subtype */].addLibraries, ProjectAnalytics["e" /* Type */].click, ProjectAnalytics["f" /* Workflow */].Libraries),
                ui,
            });
            try {
                const libraries = await app.projectsClient.copyResourcesToProject({
                    targetProject: project,
                });
                if (libraries.length) {
                    libraries.map(library => {
                        ProjectAnalytics["g" /* default */].fireEvent({
                            ...ProjectAnalytics["g" /* default */].scaffoldEvent(ProjectAnalytics["c" /* Subcategory */].AddResourceModal, ProjectAnalytics["d" /* Subtype */].cancel, ProjectAnalytics["e" /* Type */].click, ProjectAnalytics["f" /* Workflow */].Libraries),
                            ui,
                            content: {
                                id: library.library_urn,
                                name: library.name,
                                type: 'Reference',
                            },
                        });
                    });
                }
                else {
                    ProjectAnalytics["g" /* default */].fireEvent({
                        ...ProjectAnalytics["g" /* default */].scaffoldEvent(ProjectAnalytics["c" /* Subcategory */].AddResourceModal, ProjectAnalytics["d" /* Subtype */].add, ProjectAnalytics["e" /* Type */].click, ProjectAnalytics["f" /* Workflow */].Libraries),
                        ui,
                    });
                }
                (_a = app.currentProject) === null || _a === void 0 ? void 0 : _a.resources.load();
            }
            catch (error) {
                if (((_b = Object(SpacesError["i" /* maybeSpacesError */])(error)) === null || _b === void 0 ? void 0 : _b.code) === 'LIMIT_EXCEEDED') {
                    app.projectsClient.showModal(react_default.a.createElement(ErrorDialog["a" /* default */], { errorTitleId: "libraries.modal.error.limitExceeded", errorMessageId: "libraries.modal.error.limitExceeded.detail", onClose: () => {
                            ProjectAnalytics["g" /* default */].fireEvent({
                                ...ProjectAnalytics["g" /* default */].scaffoldEvent(ProjectAnalytics["c" /* Subcategory */].CantAddLibraryModal, ProjectAnalytics["d" /* Subtype */].ok, ProjectAnalytics["e" /* Type */].click, ProjectAnalytics["f" /* Workflow */].AddLibrary),
                                ui,
                            });
                        } }));
                    ProjectAnalytics["g" /* default */].fireEvent({
                        ...ProjectAnalytics["g" /* default */].scaffoldEvent(ProjectAnalytics["c" /* Subcategory */].CantAddLibraryModal, ProjectAnalytics["d" /* Subtype */].cantAddLibraryModal, ProjectAnalytics["e" /* Type */].render, ProjectAnalytics["f" /* Workflow */].AddLibrary),
                        ui,
                    });
                }
                else if (((_c = Object(SpacesError["i" /* maybeSpacesError */])(error)) === null || _c === void 0 ? void 0 : _c.code) === 'NOT_FOUND') {
                    project.refreshFolderState(app);
                }
            }
        },
    };
};
/* harmony default export */ var addResource = __webpack_exports__["a"] = (addLibrary);


/***/ }),

/***/ "4mgg":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/

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 __());
  };
}();

var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {
  function adopt(value) {
    return value instanceof P ? value : new P(function (resolve) {
      resolve(value);
    });
  }

  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) : adopt(result.value).then(fulfilled, rejected);
    }

    step((generator = generator.apply(thisArg, _arguments || [])).next());
  });
};

var __generator = this && this.__generator || function (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
    };
  }
};

var __importDefault = this && this.__importDefault || function (mod) {
  return mod && mod.__esModule ? mod : {
    "default": mod
  };
};

Object.defineProperty(exports, "__esModule", {
  value: true
});

__webpack_require__("cnSC");

__webpack_require__("T1qB"); // For IE11


var RequestProcessor_1 = __importDefault(__webpack_require__("HyxP"));

var constants_1 = __webpack_require__("uBoz");
/**
 * Handles service-specific response processing for cloud service and acp.local interaction
 */


var GetAssetRequestProcessor =
/** @class */
function (_super) {
  __extends(GetAssetRequestProcessor, _super);

  function GetAssetRequestProcessor() {
    return _super !== null && _super.apply(this, arguments) || this;
  }
  /**
   * Transforms the response for direct interaction with services, if needed
   * @param response
   * @param additionalParams
   */


  GetAssetRequestProcessor.prototype.responseTransformWeb = function (response, additionalParams) {
    return __awaiter(this, void 0, void 0, function () {
      var listing, baseUrl, result, nextStart, nextStartUrl;
      return __generator(this, function (_a) {
        switch (_a.label) {
          case 0:
            return [4
            /*yield*/
            , response.json()];

          case 1:
            listing = _a.sent();
            baseUrl = new URL(response.url).origin;
            result = {
              total_children: listing.total_children,
              nextPageLink: undefined,
              local_uri: undefined,
              children: []
            };

            if (listing.children) {
              listing.children.forEach(function (child) {
                var item = {
                  urn: child.urn,
                  name: child.name,
                  dcx_name: child.dcx_name,
                  derivation_type: child.derivation_type,
                  renderable: child.renderable,
                  size: child.size,
                  path: child.path,
                  type: child.type,
                  created: child.created,
                  modified: child.modified,
                  accessed: null,
                  display_name: '',
                  user_pinned: false,
                  app_pinned: false,
                  cached: false,
                  conflicted: false
                };

                if (child._links) {
                  Object.entries(child._links).forEach(function (_a) {
                    var rel = _a[0],
                        link = _a[1]; // Full cloud URI

                    if (rel === constants_1.CLOUD_URI_RELTYPE) {
                      item.cloud_uri = baseUrl + link.href;
                    } // Rendition template


                    if (rel === constants_1.RENDITION_RELTYPE) {
                      item.rendition_template = baseUrl + link.href;
                    }
                  });
                }

                result.children.push(item);
              });
            }

            nextStart = response.headers.get(constants_1.STORAGE_NEXT_START_HEADER);

            if (nextStart) {
              nextStartUrl = new URL(response.url);
              nextStartUrl.searchParams.set('start', nextStart);
              result.nextPageLink = nextStartUrl.toString();
            }

            return [2
            /*return*/
            , RequestProcessor_1.default.createResponse(response.status, response.statusText, result)];
        }
      });
    });
  };
  /**
   * Transforms the response for ACP.local, if needed
   * @param acplResponse
   * @param additionalParams
   */


  GetAssetRequestProcessor.prototype.responseTransformAcpLocal = function (acplResponse, additionalParams) {
    return __awaiter(this, void 0, void 0, function () {
      var acplElementResponse, listing, nextPageLink, localUri, result, response;
      return __generator(this, function (_a) {
        if (!RequestProcessor_1.default.isAcplStatusSuccessful(acplResponse.statusCode)) {
          return [2
          /*return*/
          , _super.prototype.responseTransformAcpLocal.call(this, acplResponse, additionalParams)];
        }

        acplElementResponse = acplResponse;
        listing = acplElementResponse.element;

        if (listing.links) {
          listing.links.forEach(function (link) {
            if (link.params) {
              if (link.params.rel === constants_1.NEXT_PAGE_RELTYPE) {
                // get next page link. It will be present if there are more results to get
                nextPageLink = link.target;
              }

              if (link.params.rel === constants_1.LOCAL_URI_RELTYPE) {
                // we need to know if the local_uri exists to know if the folder's metadata is cached
                localUri = link.target;
              }
            }
          });
        }

        result = {
          total_children: listing.totalChildren,
          nextPageLink: nextPageLink,
          local_uri: localUri,
          children: []
        };

        if (listing.children) {
          listing.children.forEach(function (child) {
            var item = {
              urn: child.id,
              name: child.repoName,
              path: child.repoPath,
              type: child.type,
              created: child.createDate,
              modified: child.modifyDate,
              accessed: child.accessDate,
              display_name: child.displayName,
              user_pinned: child.isUserPinned,
              app_pinned: child.isAppPinned,
              cached: child.isInLocalStore,
              sync_suspended: child.isSyncSuspended,
              sync_suspension_reason: child.syncSuspensionReason
            };

            if (child.assetRef && child.assetRef.toString) {
              item.assetRef = child.assetRef.toString();
            }

            var compositeItem;

            if (child.itemType === 'CompositeItem') {
              compositeItem = child;
              item.dcx_name = compositeItem.title;
              item.renderable = compositeItem.isRenderable;
              item.size = compositeItem.size;
              item.conflicted = compositeItem.isConflicted;
              item.user_pinned = compositeItem.isUserPinned;
            }

            if (child.links) {
              child.links.forEach(function (link) {
                if (link.params) {
                  // Path URI
                  if (link.params.rel === constants_1.PATH_RELTYPE) {
                    item.path_uri = link.target;
                  } // Stable URI


                  if (link.params.rel === constants_1.STABLE_URI_RELTYPE) {
                    item.stable_uri = link.target;
                  } // Full cloud URI


                  if (link.params.rel === constants_1.CLOUD_URI_RELTYPE) {
                    item.cloud_uri = link.target;
                  } // We might need this, for archived docs that haven't been synced to the cloud


                  if (link.params.rel === constants_1.LOCAL_URI_RELTYPE) {
                    item.local_uri = link.target;
                  } // We're going to need the rendition template, so make it readily available


                  if (link.params.rel === constants_1.RENDITION_RELTYPE) {
                    item.rendition_template = link.target;
                  }
                }
              });
            }

            result.children.push(item);
          });
        }

        response = RequestProcessor_1.default.createResponse(RequestProcessor_1.default.getWebStatusCode(acplResponse.statusCode), acplResponse.statusMessage, result);
        return [2
        /*return*/
        , Promise.resolve(response)];
      });
    });
  };

  GetAssetRequestProcessor.urlRegex = new RegExp("/cloud-content|/files|/id/");
  GetAssetRequestProcessor.method = ['GET'];
  return GetAssetRequestProcessor;
}(RequestProcessor_1.default);

exports.default = GetAssetRequestProcessor;

/***/ }),

/***/ "4pLN":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

const _excluded = ["styles"];

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }

function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

var _default = _ref => {
  let {
    styles = {}
  } = _ref,
      props = _objectWithoutProperties(_ref, _excluded);

  return /*#__PURE__*/_react.default.createElement("svg", _extends({
    xmlns: "http://www.w3.org/2000/svg",
    height: "200",
    id: "S_Illu_PremiereFirstMile_520x200",
    viewBox: "0 0 520 200",
    width: "520"
  }, props), /*#__PURE__*/_react.default.createElement("defs", null), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M89.262 74.481a2.171 2.171 0 0 0-1.395-.925L83 72.6v-2.932a2.63 2.63 0 0 0-.782-1.878 2.661 2.661 0 0 0-1.888-.777l-26.359-.005a.975.975 0 0 0-.367-.152l-28.563-5.585A2.184 2.184 0 0 0 22.476 63l-.784 4h-5.013a2.665 2.665 0 0 0-2.671 2.653v10.9L14 110.335a2.665 2.665 0 0 0 2.67 2.653L52.2 113l26.93 5.266a2.228 2.228 0 0 0 .419.041 2.19 2.19 0 0 0 2.145-1.766l.962-4.916a2.619 2.619 0 0 0 .34-1.273v-.469l6.6-33.757a2.168 2.168 0 0 0-.334-1.645zM24.438 63.38a.208.208 0 0 1 .219-.146l19.291 3.772L23.73 67zm-7.447 6.584l63.026.012-.008 40.061-63.026-.013zM79.509 116.3L62.628 113H80.34l-.616 3.154a.186.186 0 0 1-.215.146zm3.485-16.853v-24.8l4.484.877a.209.209 0 0 1 .147.218z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M23.686 107.913a1.694 1.694 0 0 1-1.677-1.692v-2.075a1.692 1.692 0 0 1 1.694-1.69h2.071a1.57 1.57 0 0 1 1.2.5 1.68 1.68 0 0 1 .495 1.2v2.073a1.7 1.7 0 0 1-1.691 1.691h-2.092zm.324-3.457v1.457h1.457v-1.457zm1.766-1z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M35.44 107.921a1.694 1.694 0 0 1-1.677-1.693v-2.075a1.69 1.69 0 0 1 1.694-1.69h2.071a1.854 1.854 0 0 1 1.2.494 1.686 1.686 0 0 1 .5 1.2v2.074a1.7 1.7 0 0 1-1.692 1.691H35.44zm.324-3.458v1.458h1.456v-1.457zm1.766-1z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M47.88 107.927a1.69 1.69 0 0 1-1.673-1.692v-2.074a1.7 1.7 0 0 1 1.693-1.691h2.076a.033.033 0 0 1 .014 0 1.693 1.693 0 0 1 1.676 1.692v2.075a1.692 1.692 0 0 1-1.694 1.69h-2.073zm.019-2zm.31-1.457v1.457h1.458v-1.458z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M59.634 107.934a1.69 1.69 0 0 1-1.673-1.692v-2.074a1.7 1.7 0 0 1 1.691-1.691h2.076c.005.006.009 0 .014 0a1.693 1.693 0 0 1 1.676 1.693v2.074a1.692 1.692 0 0 1-1.693 1.69h-2.091zm.328-3.457v1.458h1.457v-1.457z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M71.392 107.942a1.694 1.694 0 0 1-1.677-1.693v-2.075a1.7 1.7 0 0 1 1.691-1.69H73.496a1.693 1.693 0 0 1 1.676 1.692v2.075a1.692 1.692 0 0 1-1.694 1.69h-2.086zm.324-3.457v1.457h1.457v-1.457z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M23.4 77.693A1.694 1.694 0 0 1 21.721 76v-2.071a1.694 1.694 0 0 1 1.69-1.693H25.5a1.7 1.7 0 0 1 1.678 1.691V76a1.69 1.69 0 0 1-1.691 1.692H23.4zm.016-2zm.308-1.458v1.457h1.457v-1.457z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M35.15 77.686A1.69 1.69 0 0 1 33.475 76v-2.078a1.7 1.7 0 0 1 1.689-1.693h2.076c0 .007.009 0 .014 0a1.7 1.7 0 0 1 1.678 1.691v2.074a1.69 1.69 0 0 1-1.692 1.692h-2.09zm.324-3.457v1.457h1.456v-1.458z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M47.6 77.68a1.7 1.7 0 0 1-1.679-1.691v-2.074a1.69 1.69 0 0 1 1.691-1.692h2.072a1.69 1.69 0 0 1 1.694 1.691v2.073a1.7 1.7 0 0 1-1.689 1.693H47.6zm.32-3.457v1.457h1.457v-1.458zm1.765-1z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M59.353 77.674a1.7 1.7 0 0 1-1.68-1.691v-2.074a1.688 1.688 0 0 1 1.692-1.692h2.071a1.856 1.856 0 0 1 1.2.494 1.678 1.678 0 0 1 .5 1.2v2.074a1.7 1.7 0 0 1-1.69 1.693h-2.093zm.32-3.458v1.457h1.457v-1.457zm1.764-1z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M71.1 77.666a1.69 1.69 0 0 1-1.674-1.69V73.9a1.69 1.69 0 0 1 1.691-1.692h2.072a1.619 1.619 0 0 1 1.2.493 1.681 1.681 0 0 1 .5 1.2v2.074a1.694 1.694 0 0 1-1.689 1.693h-2.1zm.325-3.456v1.456h1.457v-1.457zm1.765-1z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M48 99.561a1 1 0 0 1-1-1v-17a1 1 0 0 1 2 0v17a1 1 0 0 1-1 1z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M172.866 114.838a1.5 1.5 0 0 1-1.444-1.911c2.759-9.688-7.716-21.863-7.823-21.985a1.5 1.5 0 0 1 2.263-1.971c.476.548 11.644 13.542 8.446 24.778a1.5 1.5 0 0 1-1.442 1.089z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M176.46 117.338a1.5 1.5 0 0 1-.731-2.81c8.721-4.856 9.062-16.005 9.064-16.117a1.5 1.5 0 0 1 1.5-1.469h.03a1.5 1.5 0 0 1 1.47 1.525c-.009.527-.353 12.974-10.6 18.681a1.484 1.484 0 0 1-.733.19z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M185.937 122.882a33.233 33.233 0 0 1-9.115-1.292 1.5 1.5 0 0 1 .821-2.885c9.88 2.81 17.212-.357 17.285-.388a1.5 1.5 0 0 1 1.227 2.738 26.716 26.716 0 0 1-10.218 1.827z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M178.367 131.207a1.5 1.5 0 0 1-1.254-.674c-1.36-2.064-2.6-4.1-3.692-6.061a1.5 1.5 0 0 1 2.621-1.459 93.468 93.468 0 0 0 3.576 5.869 1.5 1.5 0 0 1-1.251 2.325z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M187.056 143.8a1.5 1.5 0 0 1-1.125-.507c-.052-.058-1.288-1.462-3.127-3.81a1.5 1.5 0 1 1 2.362-1.85c1.779 2.273 3 3.66 3.014 3.674a1.5 1.5 0 0 1-1.124 2.493z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M165.811 152c-.052 0-.1 0-.157-.007a1.5 1.5 0 0 1-1.337-1.648c.066-.634 1.649-15.648 4.662-26.235a1.5 1.5 0 0 1 2.886.822c-2.943 10.337-4.548 25.57-4.564 25.724a1.5 1.5 0 0 1-1.49 1.344z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M144.247 143.511a1.5 1.5 0 0 1-1.123-2.494c.537-.606 13.249-14.9 22.974-20.313a1.5 1.5 0 0 1 1.46 2.622c-9.277 5.166-22.06 19.535-22.188 19.679a1.5 1.5 0 0 1-1.123.506z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M135 122.265a1.5 1.5 0 0 1-.427-2.938c.854-.253 21.014-6.163 31.893-3.064a1.5 1.5 0 1 1-.821 2.885c-10.042-2.855-30.018 3-30.219 3.055a1.5 1.5 0 0 1-.426.062z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M168.557 115.612a1.5 1.5 0 0 1-1.312-.771c-4.981-8.945-23.959-14.138-24.15-14.189a1.5 1.5 0 1 1 .779-2.9c.83.223 20.4 5.573 25.992 15.627a1.5 1.5 0 0 1-1.309 2.23z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M182.715 165.512a1.5 1.5 0 0 1-1.352-2.147s.238-.5.681-1.371a1.5 1.5 0 1 1 2.675 1.359c-.419.825-.646 1.3-.65 1.308a1.5 1.5 0 0 1-1.354.851z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M186.063 159.163a1.485 1.485 0 0 1-.733-.192 1.5 1.5 0 0 1-.574-2.042c.441-.785.919-1.621 1.432-2.493a1.5 1.5 0 1 1 2.586 1.519c-.5.855-.969 1.673-1.4 2.443a1.5 1.5 0 0 1-1.311.765zm4.4-7.311a1.5 1.5 0 0 1-1.259-2.314q.769-1.191 1.592-2.4a1.5 1.5 0 0 1 2.48 1.69c-.535.784-1.052 1.567-1.551 2.339a1.5 1.5 0 0 1-1.264.685zm4.908-6.979a1.5 1.5 0 0 1-1.186-2.417 79.41 79.41 0 0 1 1.815-2.262 1.5 1.5 0 1 1 2.3 1.924q-.889 1.064-1.744 2.172a1.5 1.5 0 0 1-1.187.583zm5.63-6.4a1.5 1.5 0 0 1-1.046-2.575 39.992 39.992 0 0 1 2.191-1.984 1.5 1.5 0 0 1 1.925 2.3 37.003 37.003 0 0 0-2.024 1.833 1.5 1.5 0 0 1-1.047.424z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M207.818 133.406a1.5 1.5 0 0 1-.662-2.847c.51-.25 1.017-.47 1.51-.654a1.5 1.5 0 1 1 1.053 2.808c-.4.152-.82.332-1.241.539a1.487 1.487 0 0 1-.66.154z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M180.862 136.54a1.5 1.5 0 0 1-1.056-2.565s.413-.409 1.163-1.071a1.5 1.5 0 0 1 1.986 2.248c-.656.579-1.024.941-1.04.957a1.5 1.5 0 0 1-1.053.431z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M186 132.327a1.5 1.5 0 0 1-.874-2.721 51.635 51.635 0 0 1 2.2-1.487 1.5 1.5 0 0 1 1.61 2.531c-.685.435-1.382.906-2.07 1.4a1.493 1.493 0 0 1-.866.277zm6.643-3.936a1.5 1.5 0 0 1-.638-2.858 33.1 33.1 0 0 1 2.485-1.048 1.5 1.5 0 0 1 1.051 2.81c-.743.278-1.5.6-2.262.954a1.489 1.489 0 0 1-.636.142zm7.344-2.317a1.5 1.5 0 0 1-.216-2.985 20.587 20.587 0 0 1 2.77-.22h.015a1.5 1.5 0 0 1 .015 3 17.346 17.346 0 0 0-2.363.189 1.513 1.513 0 0 1-.221.016z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M209.03 127.2a1.5 1.5 0 0 1-.616-.133 13.033 13.033 0 0 0-1.253-.493 1.5 1.5 0 1 1 .949-2.846 16.37 16.37 0 0 1 1.539.6 1.5 1.5 0 0 1-.619 2.868z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M200.042 114.739a1.5 1.5 0 0 1-.789-2.776 7.773 7.773 0 0 1 1.745-.727 1.5 1.5 0 1 1 .837 2.881 4.99 4.99 0 0 0-1.03.415 1.51 1.51 0 0 1-.763.207z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M209.28 116.762a1.5 1.5 0 0 1-1.113-.494 8.255 8.255 0 0 0-1.884-1.579 1.5 1.5 0 1 1 1.528-2.582 11.187 11.187 0 0 1 2.581 2.149 1.5 1.5 0 0 1-1.112 2.506z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M212.882 123.123a1.5 1.5 0 0 1-1.4-.972q-.263-.7-.535-1.325a1.5 1.5 0 0 1 2.752-1.194c.2.464.4.95.591 1.464a1.5 1.5 0 0 1-1.4 2.027z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M229 112.889a1.489 1.489 0 0 1-.7-.177 1.5 1.5 0 0 0-.632-.066 1.5 1.5 0 1 1-.243-2.99 4.053 4.053 0 0 1 2.343.441 1.5 1.5 0 0 1-.763 2.792z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M221.673 117.192a1.5 1.5 0 0 1-1.229-2.358 19.936 19.936 0 0 1 1.716-2.153 1.5 1.5 0 1 1 2.2 2.039 17.065 17.065 0 0 0-1.454 1.829 1.5 1.5 0 0 1-1.233.643z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M218.488 122.962a1.5 1.5 0 0 1-1.365-2.12q.332-.732.66-1.4a1.5 1.5 0 0 1 2.694 1.32q-.309.63-.622 1.32a1.5 1.5 0 0 1-1.367.88z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M240.948 127.341a1.49 1.49 0 0 1-.48-.079c-.449-.151-.908-.3-1.378-.438a1.5 1.5 0 0 1 .859-2.875q.756.227 1.479.471a1.5 1.5 0 0 1-.48 2.921z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M233.359 125.618a1.484 1.484 0 0 1-.163-.009 26.089 26.089 0 0 0-2.806-.155h-.177a1.5 1.5 0 0 1-.025-3h.2a29.237 29.237 0 0 1 3.128.172 1.5 1.5 0 0 1-.159 2.992z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M222.567 126.813a1.5 1.5 0 0 1-.527-2.9q.761-.287 1.529-.511a1.5 1.5 0 1 1 .844 2.879q-.661.194-1.318.44a1.482 1.482 0 0 1-.528.092z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M252.658 161.034a1.5 1.5 0 0 1-1.2-.6c0-.007-.322-.428-.9-1.168a1.5 1.5 0 1 1 2.367-1.842c.6.771.928 1.208.928 1.208a1.5 1.5 0 0 1-1.2 2.4z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M248.279 155.543a1.493 1.493 0 0 1-1.154-.542c-.55-.66-1.141-1.364-1.77-2.1a1.5 1.5 0 1 1 2.281-1.95c.638.748 1.239 1.461 1.8 2.133a1.5 1.5 0 0 1-1.153 2.458zm-5.44-6.267a1.492 1.492 0 0 1-1.11-.491q-.906-1-1.862-2.012a1.5 1.5 0 0 1 2.185-2.057q.972 1.035 1.9 2.051a1.5 1.5 0 0 1-1.109 2.509zm-5.751-5.983a1.5 1.5 0 0 1-1.048-.427c-.651-.636-1.31-1.266-1.975-1.883a1.5 1.5 0 1 1 2.04-2.2c.685.634 1.362 1.282 2.032 1.937a1.5 1.5 0 0 1-1.049 2.572zm-6.174-5.544a1.49 1.49 0 0 1-.944-.335 56.97 56.97 0 0 0-2.131-1.648 1.5 1.5 0 0 1 1.775-2.418 59.92 59.92 0 0 1 2.245 1.736 1.5 1.5 0 0 1-.945 2.665z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M224.071 133.082a1.488 1.488 0 0 1-.7-.174q-.638-.339-1.261-.622a1.5 1.5 0 0 1 1.239-2.733q.706.321 1.428.7a1.5 1.5 0 0 1-.705 2.825z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M233.483 182.83a1.5 1.5 0 0 1-1.44-1.08l-.419-1.433a1.5 1.5 0 1 1 2.879-.844l.42 1.438a1.5 1.5 0 0 1-1.02 1.86 1.526 1.526 0 0 1-.42.059z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M231.216 175.155a1.5 1.5 0 0 1-1.437-1.073l-.933-3.12a1.5 1.5 0 0 1 2.874-.861l.934 3.126a1.5 1.5 0 0 1-1.438 1.928zM228.4 165.8a1.5 1.5 0 0 1-1.434-1.063l-.951-3.112a1.5 1.5 0 1 1 2.868-.88l.953 3.119a1.5 1.5 0 0 1-1 1.871 1.47 1.47 0 0 1-.436.065zm-2.878-9.341a1.5 1.5 0 0 1-1.432-1.051l-.976-3.1a1.5 1.5 0 1 1 2.861-.9l.979 3.111a1.5 1.5 0 0 1-1.432 1.948zm-2.972-9.311a1.5 1.5 0 0 1-1.425-1.034 493.92 493.92 0 0 0-1.019-3.083 1.5 1.5 0 1 1 2.844-.953c.336 1 .679 2.04 1.027 3.1a1.5 1.5 0 0 1-.96 1.892 1.518 1.518 0 0 1-.469.073z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M219.4 137.905a1.5 1.5 0 0 1-1.41-.988q-.264-.728-.513-1.39a1.5 1.5 0 1 1 2.808-1.057c.17.451.344.927.525 1.422a1.5 1.5 0 0 1-1.41 2.013z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M204.514 184.686h-.126a1.5 1.5 0 0 1-1.37-1.62s.044-.537.134-1.5a1.5 1.5 0 1 1 2.987.275c-.087.946-.131 1.474-.132 1.478a1.5 1.5 0 0 1-1.493 1.367z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M205.313 176.666c-.055 0-.111 0-.167-.008A1.5 1.5 0 0 1 203.82 175c.113-1.023.238-2.12.375-3.275a1.5 1.5 0 1 1 2.979.351 511.906 511.906 0 0 0-.372 3.254 1.5 1.5 0 0 1-1.489 1.336zm1.2-9.782a1.4 1.4 0 0 1-.2-.014 1.5 1.5 0 0 1-1.285-1.688c.146-1.071.3-2.163.462-3.269a1.5 1.5 0 0 1 2.969.436 317.533 317.533 0 0 0-.458 3.237 1.5 1.5 0 0 1-1.485 1.298zm1.487-9.743a1.472 1.472 0 0 1-.255-.022 1.5 1.5 0 0 1-1.226-1.731c.187-1.091.382-2.179.583-3.256a1.5 1.5 0 0 1 2.949.553c-.2 1.061-.39 2.134-.574 3.209a1.5 1.5 0 0 1-1.477 1.247zm1.912-9.666a1.529 1.529 0 0 1-.34-.039 1.5 1.5 0 0 1-1.123-1.8c.258-1.113.524-2.194.8-3.235a1.5 1.5 0 1 1 2.9.767 103.456 103.456 0 0 0-.777 3.144 1.5 1.5 0 0 1-1.458 1.163z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M212.688 138.04a1.5 1.5 0 0 1-1.4-2.049q.3-.764.613-1.452a1.5 1.5 0 1 1 2.732 1.241q-.282.62-.554 1.31a1.5 1.5 0 0 1-1.391.95z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M167.386 168.571a1 1 0 0 1-1-1v-5.936a1 1 0 0 1 2 0v5.936a1 1 0 0 1-1 1z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M167.386 180.934a1 1 0 0 1-1-1V174a1 1 0 0 1 2 0v5.936a1 1 0 0 1-1 .998z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M164.172 171.785h-5.935a1 1 0 0 1 0-2h5.935a1 1 0 0 1 0 2z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M176.535 171.785H170.6a1 1 0 0 1 0-2h5.935a1 1 0 0 1 0 2z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M164.284 168.682a1 1 0 0 1-.707-.293l-1.874-1.874a1 1 0 0 1 1.414-1.414l1.874 1.874a1 1 0 0 1-.707 1.707z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M172.363 176.761a1 1 0 0 1-.707-.293l-1.875-1.875a1 1 0 0 1 1.414-1.414l1.875 1.875a1 1 0 0 1-.707 1.707z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M162.41 176.761a1 1 0 0 1-.707-1.707l1.874-1.875a1 1 0 0 1 1.414 1.414l-1.874 1.875a1 1 0 0 1-.707.293z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M170.488 168.682a1 1 0 0 1-.707-1.707l1.875-1.874a1 1 0 0 1 1.414 1.414l-1.875 1.874a1 1 0 0 1-.707.293z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M252.6 131.831a1 1 0 0 1-1-1V124.9a1 1 0 0 1 2 0v5.935a1 1 0 0 1-1 .996z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M252.6 144.194a1 1 0 0 1-1-1v-5.935a1 1 0 0 1 2 0v5.935a1 1 0 0 1-1 1z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M249.387 135.045h-5.935a1 1 0 0 1 0-2h5.935a1 1 0 0 1 0 2z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M261.75 135.045h-5.935a1 1 0 0 1 0-2h5.935a1 1 0 0 1 0 2z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M249.5 131.943a1 1 0 0 1-.707-.293l-1.875-1.874a1 1 0 0 1 1.415-1.414l1.874 1.874a1 1 0 0 1-.707 1.707z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M257.577 140.021a1 1 0 0 1-.707-.293l-1.87-1.874a1 1 0 0 1 1.414-1.414l1.874 1.874a1 1 0 0 1-.707 1.707z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M247.625 140.021a1 1 0 0 1-.708-1.707l1.875-1.874a1 1 0 1 1 1.414 1.414l-1.874 1.874a1 1 0 0 1-.707.293z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M255.7 131.943a1 1 0 0 1-.707-1.707l1.874-1.874a1 1 0 0 1 1.414 1.414l-1.874 1.874a1 1 0 0 1-.707.293z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M215.837 93.058a1 1 0 0 1-1-1v-5.936a1 1 0 0 1 2 0v5.936a1 1 0 0 1-1 1z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M215.837 105.421a1 1 0 0 1-1-1v-5.935a1 1 0 1 1 2 0v5.935a1 1 0 0 1-1 1z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M212.624 96.272h-5.936a1 1 0 0 1 0-2h5.936a1 1 0 0 1 0 2z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M224.986 96.272h-5.935a1 1 0 0 1 0-2h5.935a1 1 0 0 1 0 2z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M212.735 93.169a1 1 0 0 1-.707-.293L210.154 91a1 1 0 1 1 1.414-1.414l1.874 1.874a1 1 0 0 1-.707 1.707z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M220.813 101.248a1 1 0 0 1-.707-.293l-1.874-1.874a1 1 0 1 1 1.414-1.414l1.875 1.874a1 1 0 0 1-.708 1.707z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M210.861 101.248a1 1 0 0 1-.707-1.707l1.874-1.874a1 1 0 1 1 1.414 1.414l-1.874 1.874a.993.993 0 0 1-.707.293z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M218.939 93.169a1 1 0 0 1-.707-1.707l1.874-1.874A1 1 0 0 1 221.521 91l-1.875 1.874a.993.993 0 0 1-.707.295z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M240.617 105.406h-2.636a1 1 0 0 1 0-2h2.636a1 1 0 1 1 0 2z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M248.138 105.406H245.5a1 1 0 0 1 0-2h2.636a1 1 0 0 1 0 2z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M243.06 110.5a1 1 0 0 1-1-1v-2.644a1 1 0 0 1 2 0v2.644a1 1 0 0 1-1 1z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M243.06 102.955a1 1 0 0 1-1-1v-2.644a1 1 0 1 1 2 0v2.644a1 1 0 0 1-1 1z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M146.883 156.59h-2.636a1 1 0 0 1 0-2h2.636a1 1 0 0 1 0 2z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M154.4 156.59h-2.636a1 1 0 0 1 0-2h2.636a1 1 0 0 1 0 2z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M149.326 161.684a1 1 0 0 1-1-1v-2.644a1 1 0 0 1 2 0v2.644a1 1 0 0 1-1 1z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M149.326 154.14a1 1 0 0 1-1-1v-2.64a1 1 0 0 1 2 0v2.645a1 1 0 0 1-1 .995z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M197.5 103.076h-2.636a1 1 0 0 1 0-2h2.636a1 1 0 0 1 0 2z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M205.024 103.076h-2.636a1 1 0 0 1 0-2h2.636a1 1 0 0 1 0 2z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M199.946 108.169a1 1 0 0 1-1-1v-2.643a1 1 0 1 1 2 0v2.643a1 1 0 0 1-1 1z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M199.946 100.625a1 1 0 0 1-1-1v-2.644a1 1 0 0 1 2 0v2.644a1 1 0 0 1-1 1z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M258.231 33.327a1.5 1.5 0 0 0-1.946-.845 391.3 391.3 0 0 1-46.272 15c-1.727.441-2.925.386-3.284-.157-.475-.712.582-2.17 1.876-3.167a104.1 104.1 0 0 1 9.528-6.274c5.655-3.435 11.5-6.985 15.868-12.216a1.5 1.5 0 0 0-2.3-1.922 31.849 31.849 0 0 1-2.9 3.016 19.339 19.339 0 0 0-6.413-1.33l-1-.092c-3.315-.323-6.081-.242-8.93 3.966q-.167.246-.327.495a.932.932 0 0 0-.057.1l-7.709 14.144a1.484 1.484 0 0 0-.176.721 4.947 4.947 0 0 0-.556 1.983c-.03.036-.064.068-.091.107a8.816 8.816 0 0 0-.754 1.84c-.154.434-.408 1.151-.51 1.37l-.028.048c-.894 1.541-2.362 1.959-3.077 1.669-.927-.376-.579-2.08-.45-2.593 1.617-6.442 3.545-12.881 6.25-20.879a33.98 33.98 0 0 1 4.072-8.28c.755-1.031 3.055-4.176 5.555-5.584 2.361-1.334 9.7-2.647 13.233-2.8 2.237-.094 4.547-.061 6.779-.025 4.719.071 9.6.146 14.351-.962a1.5 1.5 0 0 0-.683-2.921c-4.388 1.026-8.872.958-13.622.883-2.275-.034-4.628-.07-6.951.027-3.285.139-11.41 1.388-14.584 3.182-3.051 1.725-5.643 5.258-6.5 6.419a36.638 36.638 0 0 0-4.5 9.095c-2.732 8.076-4.68 14.587-6.317 21.109-.874 3.478.58 5.433 2.231 6.1a4.247 4.247 0 0 0 1.6.3 6.264 6.264 0 0 0 5.168-3.2 8.049 8.049 0 0 0 .646-1.541 4.921 4.921 0 0 0 2.577.654 11.07 11.07 0 0 0 2.721-.387 394.516 394.516 0 0 0 46.629-15.118 1.5 1.5 0 0 0 .853-1.935zm-43.553-1.942l.262-.4c2.074-3.062 3.7-2.9 6.151-2.661.338.034.681.064 1.028.094a25.046 25.046 0 0 1 4.029.577 101.287 101.287 0 0 1-9.572 6.323c-2.044 1.241-4.124 2.519-6.156 3.875z"
  }), /*#__PURE__*/_react.default.createElement("circle", {
    className: styles["cls-1"] || "cls-1",
    cx: "206.326",
    cy: "57.279",
    r: "1.645"
  }), /*#__PURE__*/_react.default.createElement("circle", {
    className: styles["cls-1"] || "cls-1",
    cx: "206.326",
    cy: "64.279",
    r: "1.645"
  }), /*#__PURE__*/_react.default.createElement("circle", {
    className: styles["cls-1"] || "cls-1",
    cx: "206.326",
    cy: "71.279",
    r: "1.645"
  }), /*#__PURE__*/_react.default.createElement("circle", {
    className: styles["cls-1"] || "cls-1",
    cx: "206.326",
    cy: "78.279",
    r: "1.645"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M506.96 114H389.04a4.053 4.053 0 0 1-4.04-4.058V36.059A4.054 4.054 0 0 1 389.04 32h117.92a4.054 4.054 0 0 1 4.04 4.059v73.883a4.053 4.053 0 0 1-4.04 4.058zM389.04 35.022a1.036 1.036 0 0 0-1.032 1.037v73.883a1.036 1.036 0 0 0 1.032 1.037h117.92a1.036 1.036 0 0 0 1.032-1.037V36.059a1.036 1.036 0 0 0-1.032-1.037z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M509.826 127.962h-75.774a1 1 0 1 1 0-2h75.774a1 1 0 1 1 0 2z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M408.693 127.962h-22.071a1 1 0 1 1 0-2h22.071a1 1 0 1 1 0 2z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M421.255 133.029a6.676 6.676 0 0 1-.5-13.336l.108-.014a2.828 2.828 0 0 1 .393-.032 6.691 6.691 0 1 1 0 13.382zm-.35-11.342a4.391 4.391 0 1 0 .35-.04.943.943 0 0 0-.119.014c-.077.01-.153.02-.231.026z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M437.469 92.408A3.473 3.473 0 0 1 434 88.944V57.249a3.471 3.471 0 0 1 4.849-3.177c.039.017.077.036.115.055l28.7 15.39a4.06 4.06 0 0 1 0 7.159l-28.7 15.39c-.038.019-.076.038-.115.055a3.47 3.47 0 0 1-1.38.287zm0-35.622a.464.464 0 0 0-.252.077.451.451 0 0 0-.209.386v31.7a.462.462 0 0 0 .606.439l28.622-15.349a1.063 1.063 0 0 0 0-1.874L437.614 56.81a.431.431 0 0 0-.145-.024z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M329.324 137.353a1.5 1.5 0 0 0-2.121 2.121l6.653 6.653a1.5 1.5 0 0 0 2.122 0l24.476-24.475a1.5 1.5 0 1 0-2.121-2.121l-7.732 7.731a18.341 18.341 0 0 0-20.559-4.888 17.159 17.159 0 0 0-10.4 11.827 20.348 20.348 0 0 0 .3 11.96 18.274 18.274 0 0 0 32.45 2.824 1.5 1.5 0 0 0-2.546-1.588 15.273 15.273 0 0 1-27.123-2.36 17.4 17.4 0 0 1-.188-10.051 14.252 14.252 0 0 1 8.631-9.83 15.322 15.322 0 0 1 17.307 4.234l-13.556 13.556z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M453.829 147.2a1.5 1.5 0 0 0-1.5-1.479h-.006l-11.658.046a1.5 1.5 0 0 0 .006 3h.006l7.464-.029c-8.152 11.325-21.245 18.867-36.11 20.729-19.385 2.429-40.157-5.069-58.492-21.108a1.5 1.5 0 0 0-1.976 2.258c16.629 14.546 35.263 22.3 53.235 22.3a61.209 61.209 0 0 0 7.606-.471c15.869-1.987 29.85-10.131 38.466-22.358l.13 8.934a1.5 1.5 0 0 0 1.5 1.478h.022a1.5 1.5 0 0 0 1.478-1.521z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M166 38.238l-8.671-7.1a1.5 1.5 0 1 0-1.9 2.32l5.662 4.636c-30.338 2.1-58.951 10-80.7 22.3a1.5 1.5 0 1 0 1.477 2.611c21.478-12.151 49.82-19.928 79.891-21.953l-4.594 5.611a1.5 1.5 0 1 0 2.321 1.9l6.726-8.216a1.5 1.5 0 0 0-.212-2.109z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M102.5 171.777a5.569 5.569 0 0 0-10.831-.894l-20.008-8.335v-2.658a3.5 3.5 0 0 0-3.5-3.5h-4.213a3.467 3.467 0 0 0-1.013.167C49.571 144.53 42.5 130.7 42.5 116.5a1.5 1.5 0 0 0-3 0c0 14.663 7.025 28.885 20.312 41.263l-36.32-16.909a5.542 5.542 0 1 0-.968 2.076c.059-.079.1-.168.153-.25l37.756 17.577a.116.116 0 0 0 .018 0v3.849a3.5 3.5 0 0 0 3.5 3.5h4.219a3.5 3.5 0 0 0 3.439-2.917l19.827 8.259c.009.124.015.247.032.371a5.581 5.581 0 0 0 5.515 4.8 5.572 5.572 0 0 0 5.524-6.344zm-82.37-30.655a2.55 2.55 0 0 1-1.7 1 2.573 2.573 0 1 1-.35-5.122 2.573 2.573 0 0 1 2.048 4.124zm48.535 22.988a.5.5 0 0 1-.5.5h-4.217a.5.5 0 0 1-.5-.5v-4.22a.5.5 0 0 1 .5-.5h4.219a.5.5 0 0 1 .5.5zm30.374 9.99a2.554 2.554 0 0 1-1.7 1 2.573 2.573 0 1 1-.713-5.1 2.776 2.776 0 0 1 .362-.025 2.574 2.574 0 0 1 2.049 4.124z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M302.114 101.98l6.86-6.824c2.791-2.777 3.766-6.349.458-9.674a11.777 11.777 0 0 0-4.585-2.959.286.286 0 0 0-.257.086l-1.024 1.018c-.114.113-.056.226.055.228a10.214 10.214 0 0 1 4.362 2.673c3.024 3.041 1.057 5.9-.054 7.008l-1 .991a29.414 29.414 0 0 0-2.063-2.245c-3.308-3.326-7.36-5.062-10.405-2.032-2.788 2.773-2.233 6.294.65 9.192a13.518 13.518 0 0 0 5.889 3.584c.084.029.113 0 .171-.057.288-.338.602-.65.943-.989zm-1.729-.94a10.314 10.314 0 0 1-3.735-2.446c-2.968-2.984-2.334-5.537-.856-7.008 1.966-1.956 4.715-1.412 7.967 1.856a19.737 19.737 0 0 1 1.976 2.274z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M288.382 91.76l11.887-25.341c.058-.112.056-.169-.056-.282l-1.471-1.478c-.113-.113-.169-.115-.282-.058l-25.4 11.755 1.384 1.507 9.234-4.266 7.52 7.559-4.315 9.212a.219.219 0 0 0 .056.283l1.159 1.166c.085.085.155.09.221.027a.438.438 0 0 0 .063-.084zm-3.028-19.041l13.02-6.223-6.292 12.987z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M311.8 123.47a1.494 1.494 0 0 1-1.113-.494c-.525-.58-52.632-58.1-65.795-62.8a1.5 1.5 0 1 1 1.008-2.826c13.868 4.951 64.849 61.22 67.012 63.612a1.5 1.5 0 0 1-1.112 2.506z"
  }));
};

exports.default = _default;

/***/ }),

/***/ "4vm+":
/***/ (function(module, exports, __webpack_require__) {

module.exports = __webpack_require__.p + "assets/projects/S_Illu_EmptyCanvasFile_Color06.png";

/***/ }),

/***/ "4wef":
/***/ (function(module) {

module.exports = JSON.parse("{\"a11y.button.canvases\":\"{name}\",\"a11y.button.libraries\":\"{name}, biblioteca\",\"a11y.button.listGridToggle\":\"alternância de exibição, exibição em {toggledView, select, grid {grade} list {lista}}\",\"a11y.button.project\":\"{name}, projeto\",\"a11y.button.published\":\"{name}, {extension}\",\"a11y.button.selectFolder\":\"Selecionar pasta\",\"a11y.button.working\":\"{name}, {extension}, modificado {modified}\",\"a11y.strings.folder\":\"pasta\",\"header.action.newProject\":\"Novo projeto\",\"header.action.newLibrary\":\"Nova biblioteca\",\"header.action.browseAll\":\"Pesquisar tudo\",\"header.Name\":\"Nome\",\"header.Size\":\"Tamanho\",\"header.Sharing\":\"Membros\",\"header.Team\":\"Área de Trabalho\",\"header.DateModified\":\"Modificado em\",\"header.DateCreated\":\"Criado em\",\"header.Status\":\"Marcado como favorito\",\"header.SortBy\":\"Classificar por\",\"header.sort.label\":\"Classificar\",\"header.ChangeSortDirection\":\"Alterar direção de classificação para\",\"header.SortBy.asc\":\"Crescente\",\"header.SortBy.desc\":\"Decrescente\",\"header.selectAll\":\"Selecionar tudo\",\"header.reverseOrder\":\"Ordem inversa\",\"header.showCompatible\":\"Arquivos compatíveis\",\"header.showEverything\":\"Tudo\",\"product.illustrator.web\":\"Illustrator Web (Beta)\",\"product.photoshop.web\":\"Photoshop Web (Beta)\",\"status.followed\":\"Sim\",\"status.unfollowed\":\"Não\",\"team.usm.defaultName\":\"Espaço de trabalho {name}\",\"space.access.private.description\":\"Somente pessoas convidadas\",\"space.access.private.tooltip\":\"Apenas as pessoas que foram convidadas têm acesso a este projeto\",\"space.access.team.description\":\"Todos no espaço de trabalho, incluindo convidados\",\"space.access.team.tooltip\":\"Qualquer pessoa em “{team}” tem acesso a este projeto\",\"yourProjects.title\":\"Projetos\",\"yourProjects.librariesTab.title\":\"Bibliotecas de equipe\",\"yourProjects.empty.spaces\":\"Crie mais projetos e convide mais membros do espaço de trabalho\",\"browseAll.title\":\"Pesquisar tudo\",\"yourFiles.title\":\"Seus documentos\",\"yourLibraries.title\":\"Bibliotecas\",\"yourLibraries.metadata\":\"BIBLIOTECA\",\"canvas.metadata\":\"TELA\",\"projectInfo.action.view\":\"Exibir informações\",\"projectInfo.action.edit\":\"Editar projeto\",\"projectInfo.empty.cta\":\"Criar projeto\",\"projectInfo.empty.description\":\"A Creative Cloud Projects simplifica a localização, a organização, o compartilhamento e a tomada de decisões, colocando tudo de que você precisa para seus projetos criativos em um só lugar.\",\"projectInfo.empty.heading\":\"Mais criação, menos atualização.\",\"projectInfo.error.description\":\"Tente novamente mais tarde\",\"projectInfo.error.heading\":\"Não foi possível carregar a seção {section}\",\"projectInfo.new.error.title\":\"Não é possível criar um projeto\",\"projectInfo.new.noPermission.description\":\"Entre em contato com o administrador para obter mais detalhes.\",\"projectInfo.title.create\":\"NOVO PROJETO\",\"projectInfo.title.edit\":\"EDITAR PROJETO\",\"projectInfo.title.view\":\"INFORMAÇÕES DO PROJETO\",\"projectInfo.access.title\":\"Quem pode editar este projeto\",\"projectInfo.access.warning\":\"Alguns membros podem perder acesso ao projeto se você alterar a permissão para “Somente pessoas convidadas.”\",\"projectInfo.organization\":\"Organização\",\"projectInfo.organization.placeholder\":\"Faça uma seleção\",\"projectInfo.description\":\"Descrição\",\"textField.invalid.characters\":\"Os nomes não podem conter os seguintes caracteres: \\\\\\\\ / * ? \\\" | : < >\",\"textField.invalid.duplicateName\":\"Já existe um projeto com este nome nesta organização.\",\"textField.invalid.duplicateName.space\":\"Já existe um projeto com este nome neste espaço de trabalho.\",\"textField.invalid.duplicateName.team\":\"Já existe um espaço de trabalho com este nome nesta organização.\",\"textField.invalid.empty\":\"O campo Nome não pode ficar vazio\",\"textField.invalid.generic\":\"Nome inválido\",\"textField.invalid.length\":\"Os nomes não podem exceder 50 caracteres\",\"textField.invalid.nameEndsWithDot\":\"Nomes não podem terminar com ponto final\",\"textField.invalid.offline\":\"Reconecte-se para acessar todos os espaços de trabalho e projetos. Para exibir os arquivos locais de seus projetos, acesse a Página inicial.\",\"projectInfo.textField.placeholder\":\"Nomear este projeto\",\"projectInfo.team\":\"Área de Trabalho\",\"projectInfo.description.placeholder\":\"Por exemplo: arquivos, feedback e materiais de referência para o projeto do cliente\",\"projectInfo.description.invalidLength\":\"A descrição não pode exceder 1000 caracteres\",\"projectInfo.toast.success.new\":\"Projeto: {name} criado com êxito\",\"projectInfo.toast.success.update\":\"Projeto: {name} atualizado com êxito\",\"projectInfo.toast.error.generic\":\"Falha ao {create, select, true {criar} other {editar}} projeto\",\"team.empty.heading\":\"Os projetos mantêm todos na mesma página\",\"team.empty.description\":\"Cansado de ficar sem arquivos, lidar com confusões relacionadas a versões e enviar capturas de tela por email para revisão? Use os espaços para organizar projetos, coletar recursos e feedback e compartilhar arquivos nos quais toda a equipe precisa trabalhar.\",\"team.empty.createSpace\":\"Criar um projeto\",\"team.empty.inviteMembers\":\"Convidar membros\",\"team.empty.startHere\":\"COMEÇAR AQUI\",\"team.create.success\":\"Espaço de trabalho {name} criado com sucesso\",\"team.create.error.generic\":\"Falha ao criar espaço de trabalho\",\"team.edit.success\":\"Espaço de trabalho {name} atualizado com sucesso\",\"team.edit.error.generic\":\"Falha ao atualizar espaço de trabalho\",\"team.archive.success\":\"{count, plural, =1 {# espaço de trabalho excluído} other {# espaço de trabalhos excluídos}}\",\"team.archive.error.generic\":\"Não é possível excluir {count, plural, =1 {# espaço de trabalho} other {# espaços de trabalho}}\",\"team.error.generic\":\"Ocorreu um erro.\",\"project1Up.action.projectInfo\":\"Exibir informações\",\"project1up.region.space.ariaLabel\":\"{projectName}, projeto\",\"project1Up.section.libraries\":\"Bibliotecas\",\"project1Up.section.libraries.empty.cta\":\"Adicionar Bibliotecas da Creative Cloud\",\"project1Up.section.libraries.empty.description\":\"Adicione links para as bibliotecas necessárias para seu trabalho.\",\"project1Up.section.libraries.empty.heading\":\"Reúna tudo em um só lugar\",\"project1Up.section.filter\":\"Filtro\",\"project1Up.section.filter.label\":\"Filtrar por palavra-chave\",\"project1Up.section.filter.enterKeyword\":\"Inserir palavra-chave\",\"project1Up.section.filterFiles.empty.heading\":\"Nenhum resultado corresponde ao filtro selecionado\",\"project1Up.section.compatibleFiles.empty.heading\":\"Nenhum arquivo compatível neste projeto\",\"project1Up.section.workingFiles\":\"Arquivos de trabalho\",\"project1Up.section.workingFiles.empty.addFiles\":\"Adicionar arquivos\",\"project1Up.section.workingFiles.empty.createFolder\":\"Criar nova pasta\",\"project1Up.section.workingFiles.empty.description\":\"Itere em projetos e colabore com outros membros.\",\"project1Up.section.workingFiles.empty.heading\":\"Trabalhe no que quiser, quando precisar\",\"project1Up.section.published\":\"Publicado\",\"project1Up.section.published.empty.cta\":\"Como publicar links\",\"project1Up.section.published.empty.description\":\"Envie links somente exibição para receber feedback das pessoas certas no momento certo.\",\"project1Up.section.published.empty.description.readonly\":\"Quando uma pessoa precisa de feedback ou revisão, ela adiciona um link aqui.\",\"project1Up.section.published.empty.heading\":\"Compartilhar com propósito\",\"project1Up.section.published.empty.heading.readonly\":\"Nenhum item publicado neste projeto\",\"project1Up.section.canvases\":\"Telas\",\"project1Up.section.canvases.empty.cta\":\"Adicionar telas à Creative Cloud\",\"project1Up.section.canvases.empty.description\":\"Adicione links para os itens necessários para você fazer seu trabalho.\",\"project1Up.section.canvases.empty.heading\":\"Reúna tudo em um só lugar\",\"project1Up.section.files\":\"Arquivos\",\"project1Up.error.accessDenied.heading\":\"Você não tem acesso\",\"project1Up.error.accessDenied.description\":\"Você foi removido deste projeto. Entre em contato com seu administrador caso acredite se tratar de um erro.\",\"project1Up.header.seeAll\":\"Exibir tudo\",\"project1up.subheader.selected\":\"{count, plural, =1 {# item selecionado} other {# itens selecionados}}\",\"project1up.subheader.emptyDescription\":\"Adicione uma descrição ao seu projeto\",\"project1up.subheader.canvases.title\":\"Telas\",\"project1up.subheader.canvases.subtitle\":\"PENDÊNCIA: SUBTÍTULO DAS TELAS\",\"project1up.subheader.libraries.title\":\"Bibliotecas\",\"project1up.subheader.libraries.subtitle\":\"Os membros podem adicionar links para as Bibliotecas da Creative Cloud aqui.\",\"project1up.subheader.working.title\":\"Arquivos de trabalho\",\"project1up.subheader.working.subtitle\":\"Os membros deste projeto podem editar esses arquivos.\",\"project1up.subheader.output.title\":\"Publicado\",\"project1up.subheader.output.subtitle\":\"{contributor, select, true {Compartilhe versões somente leitura do trabalho com pessoas de fora do projeto.} other {Exiba e comente nestes itens somente leitura}}\",\"project.subtitle\":\"PROJETO\",\"project.countContributors\":\"{count, plural, =1 {# membro} other {# membros}}\",\"project.versionError.reload.description\":\"Tente atualizar seu navegador.\",\"project.versionError.reload.title\":\"Não consigo acessar o projeto\",\"project.versionError.update.description\":\"Para acessar o projeto, atualize o aplicativo.\",\"project.versionError.update.title\":\"Atualizar {appName} para abrir\",\"project.alreadyDiscarded.title\":\"Este projeto foi excluído\",\"project.alreadyDiscarded.description\":\"Entre em contato com o administrador caso acredite se tratar de um erro ou procure outro conteúdo.\",\"project.deleted.title\":\"Este projeto foi excluído permanentemente\",\"project.deleted.description\":\"Não é possível acessar este projeto porque ele não está mais disponível.\",\"project.metadataError.backLabel\":\"Voltar aos projetos\",\"project.metadataError.description\":\"Não encontramos o projeto que você está procurando ou você não tem acesso.\",\"project.metadataError.title\":\"Ocorreu um erro.\",\"folder.subtitle\":\"PASTA\",\"libraries.toast.add.start\":\"Adicionando {count, plural, =1 {# biblioteca} other {# bibliotecas}}\",\"libraries.toast.add.success\":\"{count, plural, =1 {# biblioteca adicionada} other {# bibliotecas adicionadas}}\",\"libraries.toast.add.error\":\"Falha ao adicionar {count, plural, =1 {# biblioteca} other {# bibliotecas}}. Tente novamente.\",\"libraries.toast.add.duplicate\":\"Este biblioteca já existe\",\"libraries.toast.add.onlyDuplicates\":\"Não é possível adicionar {count, plural, =1 {# biblioteca, pois ela já existe} other {# bibliotecas, pois elas já existem}}.\",\"libraries.toast.delete.success\":\"{count, plural, =1 {# biblioteca removida} other {# bibliotecas removidas}} com êxito\",\"libraries.toast.delete.error\":\"Falha ao remover {count, plural, =1 {# biblioteca} other {# bibliotecas}}\",\"libraries.toast.follow.inProgress\":\"Seguindo {count, plural, =1 {# biblioteca} other {# bibliotecas}}\",\"libraries.toast.follow.success\":\"{count, plural, =1 {# biblioteca} other {# bibliotecas}} seguida(s)\",\"libraries.toast.follow.error\":\"Falha ao seguir {count, plural, =1 {# biblioteca} other {# bibliotecas}}\",\"libraries.toast.unfollow.inProgress\":\"Deixando de seguir {count, plural, =1 {# biblioteca} other {# bibliotecas}}\",\"libraries.toast.unfollow.success\":\"Deixou de seguir {count, plural, =1 {# biblioteca} other {# bibliotecas}}\",\"libraries.toast.unfollow.error\":\"Falha ao deixar de seguir {count, plural, =1 {# biblioteca} other {# bibliotecas}}\",\"libraries.modal.empty.heading\":\"Não há bibliotecas\",\"libraries.modal.empty.description\":\"Sua organização não compartilhou nenhuma biblioteca\",\"libraries.modal.error.limitExceeded\":\"Não é possível adicionar uma biblioteca\",\"libraries.modal.error.limitExceeded.detail\":\"Você pode adicionar até 100 bibliotecas a um projeto. Remova algumas bibliotecas para adicionar mais.\",\"libraries.brokenResources\":\"Algumas bibliotecas não são mostradas porque você não tem acesso. Entre em contato com outros membros para obter mais informações.\",\"copy.start\":\"Copiando {count, plural, =1 {# item} other {# itens}}\",\"copy.failure\":\"Não é possível copiar {count, plural, =1 {# item} other {# itens}}\",\"copy.failure.partial\":\"Não é possível copiar alguns itens\",\"copy.success\":\"{count, plural, =1 {# item copiado} other {# itens copiados}}\",\"copy.conflictSuffix\":\"- cópia\",\"move.start\":\"Movendo {count, plural, =1 {# item} other {# itens}}\",\"move.failure\":\"Não é possível mover {count, plural, =1 {# item} other {# itens}}\",\"move.failure.partial\":\"Não é possível mover alguns itens\",\"move.success\":\"{count, plural, =1 {# item movido} other {# itens movidos}}\",\"upload.start\":\"Fazendo upload de {count, plural, =1 {# item} other {# itens}}\",\"upload.failure\":\"Não foi possível fazer upload de {count, plural, =1 {# item} other {# itens}}\",\"upload.failure.partial\":\"Não foi possível fazer upload de alguns itens\",\"upload.failure.snapshot\":\"Este item não é compatível\",\"upload.success\":\"Upload de {count, plural, =1 {# item} other {# itens}} concluído\",\"download.start\":\"Baixando {count, plural, =1 {# item} other {# itens}}\",\"download.failure\":\"Não é possível baixar {count, plural, =1 {# item} other {# itens}}\",\"download.failure.partial\":\"Não é possível baixar alguns itens\",\"download.success\":\"{count, plural, =1 {# item} other {# itens}} baixado(s)\",\"delete.failure\":\"Não é possível excluir {count, plural, =1 {# item} other {# itens}}\",\"delete.failure.partial\":\"Não é possível excluir alguns itens\",\"delete.success\":\"{count, plural, =1 {# item} other {# itens}} excluído(s)\",\"jobs.failure\":\"{count, plural, =1 {# item falhou} other {# itens falharam}}\",\"jobs.inProgress\":\"Trabalhando...\",\"jobs.success\":\"{count, plural, =1 {# item concluído} other {# itens concluídos}}\",\"restore.failure\":\"Não é possível restaurar {count, plural, =1 {# item} other {# itens}}\",\"restore.failure.partial\":\"Não é possível restaurar alguns itens\",\"restore.success\":\"{count, plural, =1 {# item restaurado} other {# itens restaurados}}\",\"rename.start\":\"Renomeando\",\"rename.success\":\"{count, plural, =1 {# item renomeado} other {# itens renomeados}}\",\"rename.failure\":\"Erro do servidor. Não foi possível renomear o item\",\"rename.failure.conflict\":\"Você já tem um item com esse nome\",\"rename.offline.heading\":\"Não é possível renomear\",\"rename.offline\":\"Você está offline e não pode renomear o item. Volte a ficar online para realizar esta ação.\",\"bookmark.follow.error\":\"Não é possível favoritar este projeto\",\"bookmark.unfollow.error\":\"Não é possível deixar de favoritar este projeto\",\"bookmark.follow.success\":\"{projectName} favoritado com sucesso\",\"bookmark.unfollow.success\":\"{projectName} deixou de ser favoritado com sucesso\",\"bookmark.bulk.follow.success\":\"{count, plural, =1 {# item adicionado} other {# itens adicionados}} aos favoritos com sucesso\",\"bookmark.bulk.follow.partial\":\"Não é possível adicionar alguns itens aos favoritos\",\"bookmark.bulk.follow.error\":\"Não é possível adicionar aos favoritos {count, plural, =1 {# item} other {# itens}}\",\"bookmark.bulk.unfollow.success\":\"{count, plural, =1 {# item removido} other {# itens removidos}} dos favoritos com sucesso\",\"bookmark.bulk.unfollow.partial\":\"Não é possível remover alguns itens dos favoritos\",\"bookmark.bulk.unfollow.error\":\"Não é possível remover dos favoritos {count, plural, =1 {# item} other {# itens}}\",\"copyLink.success\":\"Link copiado para a área de transferência\",\"copyLink.failure\":\"Não é possível copiar o link\",\"starterUser.project1upNavigation\":\"Seu plano inicial não inclui a abertura de documentos em projetos\",\"starterUser.project1upNavigationCDPSave\":\"Seu plano inicial não inclui salvar documentos em projetos\",\"invite.failure\":\"Não foi possível enviar convites. Tente novamente\",\"accessibility.backButton\":\"Voltar\",\"button.role\":\"Botão\",\"button.actions\":\"Ações\",\"button.add\":\"Adicionar\",\"button.addFiles\":\"Adicionar arquivos\",\"button.addLibrary\":\"Adicionar biblioteca\",\"button.createDocument\":\"Novo arquivo do {appName}\",\"button.library\":\"Biblioteca\",\"button.back\":\"Voltar\",\"button.browse\":\"Pesquisar tudo\",\"button.cancel\":\"Cancelar\",\"button.okay\":\"OK\",\"button.canvas\":\"Tela\",\"button.addCanvas\":\"Nova tela\",\"button.changeDefaultApp\":\"Alterar aplicativo padrão...\",\"button.close\":\"Fechar\",\"button.continue\":\"Continuar\",\"button.copy\":\"Copiar para...\",\"button.copyLink\":\"Copiar link\",\"button.create\":\"Criar\",\"button.createNewFolder\":\"Criar pasta\",\"button.newFile\":\"Novo arquivo\",\"button.newFolder\":\"Nova pasta\",\"button.delete\":\"Excluir\",\"button.deleteResource\":\"Remover\",\"button.done\":\"Concluído\",\"button.download\":\"Baixar\",\"button.favorite\":\"Favoritos\",\"button.follow\":\"Seguir\",\"button.invite\":\"Convidar\",\"button.inviteLabel\":\"Convidar pessoas\",\"button.leave\":\"Sair\",\"button.leaveProject\":\"Sair do espaço de trabalho\",\"button.move\":\"Mover para...\",\"button.next\":\"Próximo\",\"button.ok\":\"OK\",\"button.open\":\"Abrir\",\"button.openWith\":\"Abrir com\",\"button.open.appName\":\"{appName} {isDefault, select, true {(Padrão)} other {}}\",\"button.redo\":\"Tentar novamente\",\"button.reload\":\"Recarregar\",\"button.rename\":\"Renomear\",\"button.restore\":\"Restaurar\",\"button.retry\":\"Tentar novamente\",\"button.save\":\"Salvar\",\"button.select\":\"Selecionar\",\"button.share\":\"Compartilhar\",\"button.skipTour\":\"Ignorar o tour\",\"button.undo\":\"Desfazer\",\"button.unfavorite\":\"Remover dos favoritos\",\"button.unfollow\":\"Deixar de seguir\",\"button.update\":\"Atualizar\",\"button.upgrade\":\"Atualize\",\"button.view\":\"Exibir tudo\",\"button.viewProject\":\"Exibir projeto\",\"button.viewTarget\":\"Exibir\",\"button.createWeblink\":\"Adicionar link da Web\",\"button.leaveTeam\":\"Sair do espaço de trabalho\",\"button.renameTeam\":\"Renomear espaço de trabalho\",\"button.editTeam\":\"Editar informações do espaço de trabalho\",\"button.archiveTeam\":\"Excluir espaço de trabalho\",\"button.upload\":\"Fazer upload de arquivos\",\"button.goToDeleted\":\"Exibir em excluídos\",\"button.viewEverything\":\"Exibir tudo\",\"button.viewInWeb\":\"Exibir na Web\",\"abbreviations.fileSize.byte\":\"B\",\"abbreviations.fileSize.kilobyte\":\"KB\",\"abbreviations.fileSize.megabyte\":\"MB\",\"abbreviations.fileSize.gigabyte\":\"GB\",\"abbreviations.fileSize.terabyte\":\"TB\",\"statusIcon.conflicted\":\"Conflito de sincronização\",\"statusIcon.onlineOnly\":\"Somente online\",\"statusIcon.availableOffline\":\"Disponível offline\",\"statusIcon.syncing\":\"Sincronizando…\",\"statusIcon.waitingToSync\":\"Aguardando sincronização\",\"statusMessage.offline.description\":\"Reconecte-se para acessar todos os espaços de trabalho e projetos. Para exibir os arquivos locais de seus projetos, acesse a Página inicial.\",\"statusMessage.offline.heading\":\"Você está desconectado\",\"statusMessage.offline.toast\":\"Você está desconectado, então alguns recursos e arquivos podem estar indisponíveis.\",\"toggle.listView\":\"Exibição em lista\",\"toggle.gridView\":\"Exibição em miniaturas\",\"color.fuchsia\":\"Fúcsia\",\"color.indigo\":\"Índigo\",\"color.celery\":\"Celery\",\"color.magenta\":\"Magenta\",\"color.yellow\":\"Amarelo\",\"color.seafoam\":\"Espuma do mar\",\"color.chartreuse\":\"Chartreuse\",\"color.purple\":\"Violeta\",\"color.blue\":\"Azul\",\"color.red\":\"Vermelho\",\"color.orange\":\"Laranja\",\"color.green\":\"Verde\",\"color.label\":\"Cor do projeto\",\"tooltip.offline.general\":\"Volte a ficar online para realizar esta ação\",\"tooltip.moreFaces\":\"e mais {number}\",\"action.leave.space.success\":\"Você saiu de {count, plural, =1 {# projeto} other {# projetos}}\",\"action.leave.prototype.success\":\"Acesso a {count, plural, =1 {# protótipo} other {# protótipos}} removido\",\"action.leave.file.success\":\"Acesso a {count, plural, =1 {# arquivo} other {# arquivos}} removido\",\"action.leave.canvas.success\":\"Acesso a {count, plural, =1 {# tela} other {# telas}} removido\",\"action.leave.team.success\":\"Você saiu de 1 espaço de trabalho\",\"action.leave.space.error\":\"Não é possível sair deste projeto\",\"action.leave.prototype.error\":\"Não é possível sair deste protótipo\",\"action.leave.file.error\":\"Não é possível sair deste arquivo\",\"action.leave.team.error\":\"Não é possível sair deste espaço de trabalho\",\"action.leave.canvas.error\":\"Não é possível sair desta tela\",\"action.leave.space.partial.error\":\"Não é possível sair de todos os projetos\",\"action.leave.prototype.partial.error\":\"Não é possível sair de todos os protótipos\",\"action.leave.file.partial.error\":\"Não é possível deixar todos os arquivos\",\"action.leave.canvas.partial.error\":\"Não é possível sair de todas as telas\",\"action.leave.error.onlyContributor\":\"Você é o único membro. Adicione outro antes de sair.\",\"action.leave.error.addressBookGroupMember\":\"Saia do grupo e tente novamente.\",\"action.leave.error.admin\":\"Você não pode sair porque é administrador.\",\"action.leave.error.generic\":\"Não é possível sair porque ocorreu um erro.\",\"action.reportAbuse\":\"Denunciar abuso\",\"action.reportAbuse.required\":\"Obrigatório\",\"action.reportAbuse.titleText\":\"Se acredita que este conteúdo da Creative Cloud viola os Termos de uso da Adobe, você pode denunciá-lo preenchendo este rápido formulário.\",\"action.reportAbuse.emailInput\":\"Seu email\",\"action.reportAbuse.nameInput\":\"Seu nome\",\"action.reportAbuse.radioButtonText\":\"Por que você está denunciando este conteúdo?\",\"action.reportAbuse.defamation\":\"Difamação\",\"action.reportAbuse.hate\":\"Conteúdo racista ou de ódio\",\"action.reportAbuse.trademark\":\"Violação de marca comercial\",\"action.reportAbuse.pornography\":\"Conteúdo sexualmente explícito\",\"action.reportAbuse.vulgar\":\"Conteúdo ofensivo\",\"action.reportAbuse.other\":\"Outros\",\"action.reportAbuse.inappropriate\":\"Inadequado\",\"action.reportAbuse.age\":\"Idade incorreta\",\"action.reportAbuse.gender\":\"Gênero incorreto\",\"action.reportAbuse.textAreaTitle\":\"Descreva a sua preocupação\",\"action.reportAbuse.describeConcern\":\"Descreva a sua preocupação\",\"action.reportAbuse.success\":\"Abuso denunciado com êxito\",\"action.reportAbuse.failure\":\"Falha ao denunciar abuso\",\"action.menu.label\":\"Menu de ação\",\"action.label\":\"Ação\",\"dialog.genericError.description\":\"Ocorreu um erro.\",\"dialog.genericError.title\":\"Erro inesperado\",\"dialog.leave.space.title\":\"Deixar {count, plural, =1 {{name}} other {projetos}}\",\"dialog.leave.prototype.title\":\"Deixar {count, plural, =1 {este protótipo} other {protótipos}}\",\"dialog.leave.file.title\":\"Deixar {count, plural, =1 {este arquivo} other {arquivos}}\",\"dialog.leave.canvas.title\":\"Deixar {count, plural, =1 {esta tela} other {telas}}\",\"dialog.leave.team.title\":\"Deseja sair?\",\"dialog.leave.team.detail\":\"Não será possível desfazer essa ação se você for excluído. Entre em contato com um administrador se quiser ser adicionado novamente a este espaço de trabalho.\",\"dialog.leave.space.detail\":\"Você perderá o acesso aos itens que não são seus e que estão neste projeto. Se você sair de “{projectName}”, a ação não poderá ser desfeita.\",\"dialog.leave.prototype.detail\":\"Você não poderá acessá-lo novamente sem outro convite.\",\"dialog.leave.file.detail\":\"Você não poderá acessá-lo novamente sem outro convite.\",\"dialog.leave.canvas.detail\":\"Você não poderá acessá-lo novamente sem outro convite.\",\"dialog.leave.detail\":\"{type, select, space {Você perderá o acesso aos itens que não são seus e que estão {count, plural, =1 {neste projeto} other {nestes projetos}}. Se você sair {count, plural, =1 {\\\"{name}\\\"} other {destes projetos}} não poderá mais voltar.} other {Não será mais possível {count, plural, =1 {acessá-lo} other {acessá-los}} novamente sem um convite{count, plural, =1 {.} other {:}}}}\",\"dialog.deleteFailed.title\":\"Não é possível excluir todos os itens\",\"dialog.deleteWarning.description\":\"{type, select, spaces {Esta ação excluirá o conteúdo de todos os membros destes projetos:} other {Esta ação excluirá o seguinte de todos os membros deste projeto:}}\",\"dialog.deleteWarning.title\":\"{type, select, space {Excluir {count} {count, plural, =1 {projeto} other {projetos}}} other {Excluir {count} {count, plural, =1 {item} other {itens}}}}\",\"dialog.deleteFailed.description.unauthorized\":\"Não é possível excluir porque você foi removido do projeto:\",\"dialog.deleteFailed.description.alreadyDeleted\":\"Não é possível excluir este item porque outra pessoa já o excluiu:\",\"dialog.deleteFailed.description.unknown\":\"Não é possível excluir porque ocorreu um erro:\",\"dialog.cantCopyAllItems\":\"Não é possível copiar todos os itens\",\"dialog.cantCopyBecauseSomethingWentWrong\":\"Não é possível copiar porque ocorreu um erro:\",\"dialog.cantCopyBecauseYouWereSignedOut\":\"Não é possível copiar porque você foi desconectado:\",\"dialog.cantCopyBecauseYouWereRemoved\":\"Não é possível copiar porque você foi removido deste projeto:\",\"dialog.cantCopyBecauseItemWasDeleted\":\"Não é possível copiar este item porque outra pessoa o excluiu:\",\"dialog.cantCopyBecauseItemExists\":\"Não é possível copiar este item porque ele já existe onde você tentou copiá-lo:\",\"dialog.cantMoveAllItems\":\"Não é possível mover todos os itens\",\"dialog.cantMoveBecauseSomethingWentWrong\":\"Não é possível mover porque ocorreu um erro:\",\"dialog.cantMoveBecauseYouWereSignedOut\":\"Não é possível mover porque você foi desconectado:\",\"dialog.cantMoveBecauseYouWereRemoved\":\"Não é possível mover porque você foi removido deste projeto:\",\"dialog.cantMoveBecauseItemWasDeleted\":\"Não é possível mover este item porque outra pessoa o excluiu:\",\"dialog.cantMoveBecauseItemExists\":\"Não é possível mover este item porque ele já existe onde você tentou movê-lo:\",\"dialog.createFolder.error\":\"Erro de servidor. Não foi possível salvar a pasta\",\"dialog.createFolder.nameConflict\":\"Você já tem uma pasta com esse nome.\",\"dialog.createFolder.placeholder\":\"Nome da pasta\",\"dialog.createFolder.title\":\"Criar pasta\",\"dialog.createFolder.success\":\"Pasta criada com êxito\",\"dialog.createWeblink.error\":\"URL não compatível\",\"dialog.createWeblink.tooManyRequests\":\"Erro de rede inesperado. Tente novamente.\",\"dialog.createWeblink.success\":\"1 item adicionado\",\"dialog.createWeblink.nameConflict\":\"Este título já existe\",\"dialog.createWeblink.name.placeholder\":\"Insira um nome para este link\",\"dialog.createWeblink.link.placeholder\":\"https://\",\"dialog.createWeblink.name\":\"Título personalizado\",\"dialog.createWeblink.link\":\"Link\",\"dialog.createWeblink.title\":\"Criar um link da Web\",\"app.type.webLink\":\"LINK DA WEB\",\"dialog.createCanvas.error\":\"Não é possível criar uma tela\",\"dialog.move.title\":\"Mover para o projeto {projectName}\",\"dialog.move.detail\":\"Mover este item mudará quem pode acessá-lo.\",\"moveToTeam.confirm.title\":\"Mover para o espaço de trabalho {name}\",\"moveToTeam.confirm.message\":\"Mover seus projetos para cá mudará quem pode acessá-los. Seus projetos serão acessíveis para qualquer pessoa que tenha acesso a seu espaço de trabalho.\",\"moveToTeam.disabled.differentOrg.tooltip.message\":\"Você não pode mover projetos para um espaço de trabalho em uma organização diferente.\",\"moveToSpace.disabled.differentOrg.tooltip.message\":\"Você não pode mover itens para um projeto em uma organização diferente.\",\"moveToTeam.success\":\"Você moveu {count, plural, =1 {# projeto} other {# projetos}} para o espaço de trabalho {name}\",\"confirmationDialog.dontShowAgain\":\"Não mostrar novamente\",\"dialog.open.title\":\"Abrir na Web\",\"dialog.open.detail\":\"Não é possível abrir este arquivo em {appName}, mas você pode acessá-lo em seu navegador.\",\"dialog.renameTeam.title\":\"Renomear espaço de trabalho\",\"dialog.renameTeam.placeholder\":\"Insira um nome para este espaço de trabalho\",\"dialog.renameTeam.error\":\"Ocorreu um erro.\",\"dialog.renameTeam.nameConflict\":\"Este nome já existe\",\"dialog.archiveTeam.title\":\"Deseja excluir este espaço de trabalho?\",\"dialog.archiveTeam.detail\":\"Não será possível desfazer essa ação se você for excluído. Entre em contato com um administrador se quiser participar deste espaço de trabalho novamente.\",\"dialog.saveToCloud.title\":\"Arquivo(s) salvo(s) na Creative Cloud\",\"dialog.saveToCloud.detail\":\"Os documentos na nuvem agora oferecem histórico de versões, convites e coedição, acesso imediato em outros dispositivos e muito mais. Encontre tudo isso aqui e nos seus aplicativos da Creative Cloud.\",\"input.invalidCharInput\":\"O nome não pode conter os seguintes caracteres: \\\\\\\\ / * ? \\\" | :\",\"input.invalidEmptyInput\":\"{names, select, true {Nomes} other {Títulos}} não podem ficam em branco\",\"input.nameTooLong\":\"{names, select, true {Nomes} other {Títulos}} não podem ter mais de {maxLength} caracteres\",\"input.nameEndsWithDot\":\"{names, select, true {Nomes} other {Títulos}} não podem terminar com ponto final\",\"input.weblink.nameRestricted\":\"Os links da Web não podem ter os seguintes títulos: “con”, “prn”, “aux”, “nul”, “com#”, “lpt#”\",\"input.nameRestricted\":\"Os ativos não podem ter os seguintes nomes: con/prn/aux/nul/com#/lpt#\",\"input.weblink.invalidCharInput\":\"Os títulos não podem conter somente espaços ou os seguintes caracteres: \\\\\\\\ / * ? \\\" | : < > \",\"input.name.invalidCharInput\":\"Os nomes não podem conter somente espaços ou os seguintes caracteres: \\\\\\\\ / * ? \\\" | : < > \",\"cdpFooter.orphanedArtifactsWarning\":\"Os links publicados conectados aos itens que você está movendo permanecerão no projeto original\",\"cdpFooter.libraryPrivacyWarning\":\"Se você tiver permissão para compartilhar novamente uma biblioteca que você adicionou, os membros do projeto poderão exibi-la\",\"toast.beforeOp.error.documentIsOpen\":\"Feche {count, plural, =1 {o documento} other {os documentos}} para executar esta ação.\",\"app.type.designSpecs\":\"ESPECIFICAÇÕES DE DESIGN\",\"app.type.prototype\":\"PROTÓTIPO\",\"app.type.publishedLink\":\"LINK PUBLICADO\",\"popover.header\":\"Colabore em um projeto com outras pessoas e compartilhe seu trabalho para receber feedback.\",\"popover.linkout\":\"Saiba mais\",\"team.libraries.filter.all\":\"Tudo\",\"team.libraries.filter.addedToYourLibraries\":\"Adicionado às suas bibliotecas\",\"team.libraries.filter.notAdded\":\"Não adicionado\",\"team.spaces.filter.all\":\"Tudo\",\"team.spaces.filter.favorited\":\"Favorito\",\"team.filter.empty.heading\":\"Nenhum projeto corresponde ao filtro selecionado\",\"team.filter.empty.description1\":\"Não foi possível encontrar resultados para \",\"team.filter.empty.description2\":\" nesta lista. Verifique a ortografia ou tente usar outras palavras-chave.\",\"team.filter.no.match.description\":\"Não foi possível encontrar resultados nesta lista. Verifique a ortografia ou tente usar critérios de filtro diferentes.\",\"team.filter.filterText\":\"{filter}\",\"team.header.other.teams\":\"Outros espaços de trabalho\",\"space.empty.heading\":\"Tudo em um só lugar, todos atualizados\",\"space.empty.description\":\"Preencha este projeto com arquivos de trabalho e materiais relacionados. Convide colaboradores para participar e adicionar também no que estão trabalhando.\",\"space.empty.canvasHeading\":\"CREATIVE CLOUD CANVAS\",\"space.empty.actionsHeading\":\"ADICIONAR CONTEÚDO AO SEU PROJETO\",\"space.empty.createCanvas\":\"Nova tela\",\"space.empty.upload\":\"Adicionar arquivos\",\"space.empty.createFolder\":\"Nova pasta\",\"space.empty.createWeblink\":\"Links da Web\",\"space.empty.addResource\":\"Biblioteca\",\"folder.empty.heading\":\"Esta pasta está vazia.\",\"folder.empty.description\":\"Comece a adicionar arquivos para preenchê-la.\",\"folder.discard.heading\":\"Esta pasta foi excluída.\",\"folder.discard.description\":\"Entre em contato com o administrador caso acredite se tratar de um erro ou procure outro conteúdo.\",\"folder.error.description\":\"Ocorreu um problema ao carregar o conteúdo desta pasta..\",\"space.empty.section.createACanvas\":\"Criar uma tela\",\"tooltip.opensInBrowser\":\"Abre no navegador\",\"space.empty.workingFiles\":\"Continuar adicionando a este projeto\",\"space.empty.canvasPopoverTitle\":\"Experimente a Creative Cloud Canvas (Beta)\",\"space.empty.canvasPopoverContent\":\"Use telas para criar layouts, visualizar e revisar trabalhos criativos.\",\"space.error.heading\":\"Não é possível carregar o projeto\",\"space.error.description\":\"Ocorreu um problema ao carregar o conteúdo deste projeto.\",\"createTeamWizard.createTeam.sidebarHeading\":\"Criar espaço\",\"createTeamWizard.createTeam.sidebarCopy\":\"Crie um espaço de trabalho para manter a equipe informada e organizada.\",\"createTeamWizard.createTeam.sidebarCopy.adminconsole\":\"Configure um local onde sua equipe possa colaborar e compartilhar arquivos.\",\"createTeamWizard.createTeam.sidebarLink\":\"Saiba mais\",\"createTeamWizard.createTeam.contentHeading\":\"Novo espaço de trabalho\",\"createTeamWizard.createTeam.loading\":\"Criar o espaço de trabalho “{name}”\",\"createTeamWizard.inviteMembers.sidebarHeading\":\"Convidar membros para o espaço de trabalho “{name}”\",\"createTeamWizard.inviteMembers.sidebarCopy\":\"Comece a digitar um nome ou email para convidar membros agora ou pule esta etapa e convide-os mais tarde.\",\"createTeamWizard.inviteMembers.loading\":\"Convidar membros para o espaço de trabalho “{name}”\",\"createTeamWizard.inviteMembers.contentHeading\":\"Convidar membros\",\"createTeamWizard.inviteMembers.successToast\":\"Os membros foram adicionados ao novo workspace\",\"createTeamWizard.progress\":\"Etapa {current} de {total}\",\"createTeamWizard.skipStep\":\"Pular\",\"teamDialog.createTeam.label\":\"Criar espaço\",\"teamDialog.createTeam.infoBox.description\":\"O espaço de trabalho que você criou é apenas para convidados e todos os usuários adicionados têm acesso de edição por padrão.\",\"teamDialog.editTeam.label\":\"Editar espaço de trabalho\",\"teamDialog.nameSection.placeholder\":\"Dê um nome a seu novo espaço de trabalho\",\"teamDialog.nameSection.label\":\"Nome do espaço de trabalho\",\"teamDialog.permissionsSection.label\":\"Quem pode editar este espaço de trabalho\",\"teamDialog.permissionsSection.option.onlyInvited\":\"Somente pessoas convidadas\",\"teamDialog.descriptionSection.label\":\"Descrição do espaço de trabalho (optional)\",\"teamDialog.descriptionSection.placeholder\":\"Adicione algumas palavras sobre seu espaço de trabalho\",\"teamsSidebar.noTeams\":\"Nenhum espaço de trabalho\",\"teamsSidebar.newTeamButton\":\"Criar espaço\",\"teamsSidebar.adminTour.title\":\"Novo! Crie espaços de trabalho\",\"teamsSidebar.adminTour.content\":\"Agora os administradores podem criar espaços de trabalho na Creative Cloud na Web, facilitando a organização do trabalho compartilhado.\",\"teamsSidebarTeam.newSpaceButton\":\"Novo projeto\",\"teamsSidebarTeam.header.newBadge\":\"NOVO\",\"teamsSidebarTeam.header.otherTeams\":\"De outros espaços de trabalho\",\"teamsSidebarTeam.header.teams\":\"ESPAÇOS DE TRABALHO\",\"teamsSidebarTeam.header.previewLabel\":\"(Versão Prévia)\",\"teamsSidebarTeam.header.previewCopy\":\"Espaços de trabalho e projetos estão disponíveis em uma versão beta privada.\",\"teamsSidebarTeam.header.previewLearnMoreText\":\"Saiba mais\",\"teamsSidebarTeam.message.loading\":\"Carregando...\",\"teamsSidebarTeam.message.noSpaces\":\"Você não tem espaços de trabalho ou projetos.\",\"teamsSidebarTeam.message.offline\":\"Você está desconectado. Reconecte-se para exibir os espaços de trabalho e os projetos.\",\"teamsSidebarTeam.message.error\":\"Ocorreu um problema ao carregar seus espaços de trabalho e projetos.\",\"teams1up.error.description\":\"Ocorreu um erro ao carregar seus projetos.\",\"teams1up.error.heading\":\"Não foi possível carregar projetos\",\"otherTeams.emptyMessage.header\":\"Não é possível exibir a página do espaço de trabalho\",\"otherTeams.emptyMessage.description1\":\"Você foi removido ou saiu do último projeto usando a seção\",\"otherTeams.emptyMessage.description2\":\". Entre em contato com o administrador caso acredite se tratar de um erro.\",\"spaceTour.step0.title\":\"Seus projetos estão aqui\",\"spaceTour.step0.content\":\"Os projetos ajudam as equipes a colaborar e coletar, organizar e compartilhar arquivos e recursos.\",\"spaceTour.step1.title\":\"Adicionar tudo que você precisa para um projeto\",\"spaceTour.step1.content\":\"Reúna arquivos de trabalho, imagens de referência, recursos e muito mais em um só lugar.\",\"spaceTour.step2.title\":\"Definir (e esquecer) as permissões\",\"spaceTour.step2.content\":\"Atribua o acesso certo aos colaboradores ao convidá-los para economizar tempo e evitar aborrecimentos. Envie pacotes somente exibição às partes interessadas para revisão e feedback.\",\"error.cantCreateSpace\":\"O armazenamento do espaço de trabalho está cheio\",\"error.exceedQuota.create.detail.description1\":\"Não é possível fazer criações no momento. Selecione \",\"error.exceedQuota.description2\":\" para liberar armazenamento.\",\"error.exceedQuota.add.detail.description1\":\"Não é possível fazer adições no momento. Selecione \",\"error.move.generic\":\"Não é possível mover porque ocorreu um erro\",\"error.move.signedOut\":\"Não é possível mover porque você foi desconectado\",\"error.move.permissionRevoked\":\"Não é possível mover porque você foi removido deste projeto\",\"error.move.deleted\":\"Não é possível mover este item porque outra pessoa o excluiu\",\"error.move.duplicate\":\"Não é possível mover este item porque ele já existe onde você tentou movê-lo\",\"error.copy.generic\":\"Não é possível copiar porque ocorreu um erro\",\"error.copy.signedOut\":\"Não é possível copiar porque você foi desconectado\",\"error.copy.permissionRevoked\":\"Não é possível copiar porque você foi removido deste projeto\",\"error.copy.deleted\":\"Não é possível copiar este item porque outra pessoa o excluiu\",\"error.copy.duplicate\":\"Não é possível copiar este item porque ele já existe onde você tentou copiá-lo\",\"checkbox.select\":\"Selecionar\",\"listItem.fileSize\":\"Tamanho do arquivo\",\"facepile.additionalMembers\":\"Membros adicionais +{count}\",\"facepile.memberName\":\"{name}, membro\",\"coachmark.information\":\"informações\",\"toolbar.tools\":\"ferramentas\",\"griditem.error.message\":\"Não é possível buscar\",\"griditem.error.button\":\"Tentar novamente\",\"ats.move.extendedNotification\":\"Você receberá uma notificação quando seu movimento for concluído.\",\"file.deleted.error.heading\":\"Não é possível arquivo {operation}\",\"file.deleted.error.description\":\"Você não pode {operation} este arquivo porque ele foi excluído. Restaure dos Excluídos e tente novamente ou escolha um local diferente.\",\"file.deleted.rename.error.description\":\"Você não pode renomear este arquivo porque ele foi excluído. Selecione Ir para Excluídos para restaurar o arquivo.\"}");

/***/ }),

/***/ "4yWb":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

const _excluded = ["styles"];

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }

function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

var _default = _ref => {
  let {
    styles = {}
  } = _ref,
      props = _objectWithoutProperties(_ref, _excluded);

  return /*#__PURE__*/_react.default.createElement("svg", _extends({
    xmlns: "http://www.w3.org/2000/svg",
    height: "200",
    id: "S_Illu_DreamweaverFirstMile_520x200",
    viewBox: "0 0 520 200",
    width: "520"
  }, props), /*#__PURE__*/_react.default.createElement("defs", null), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M451.136 41.684A36.272 36.272 0 1 0 457 61.457a36.3 36.3 0 0 0-5.864-19.773zm-2.014 37.08a41.187 41.187 0 0 0-10.292-4.042 43.152 43.152 0 0 0 2.051-12.265h13.083a33.068 33.068 0 0 1-4.842 16.307zm-56.744 0a33.068 33.068 0 0 1-4.842-16.307h13.083a43.152 43.152 0 0 0 2.051 12.265 41.187 41.187 0 0 0-10.292 4.042zm0-34.612a41.226 41.226 0 0 0 10.292 4.042 43.139 43.139 0 0 0-2.051 12.263h-13.083a33.064 33.064 0 0 1 4.842-16.305zm56.2-.894c.014.022.031.043.045.065a33.076 33.076 0 0 1 5.341 17.134h-13.226a43.082 43.082 0 0 0-2.251-12.7 36.934 36.934 0 0 0 10.013-4.422c.032-.021.049-.053.078-.077zm-9.84 17.2H421.75V50.311a71.333 71.333 0 0 0 14.8-2.03 41.13 41.13 0 0 1 2.188 12.176zM421.75 48.31V37.475a19.692 19.692 0 0 0 7.578-1.959 39.145 39.145 0 0 1 6.541 10.884 69.452 69.452 0 0 1-14.119 1.91zm0-12.836v-6.7a36.566 36.566 0 0 1 6.192 5.2 17.643 17.643 0 0 1-6.192 1.5zm2.989-7.024a32.829 32.829 0 0 1 8.434 2.158 22.312 22.312 0 0 1-3.388 2.425 38.761 38.761 0 0 0-5.046-4.583zm-13.2 4.473a22.414 22.414 0 0 1-3.215-2.315 32.815 32.815 0 0 1 8.019-2.1 38.81 38.81 0 0 0-4.801 4.415zm8.208-4.39v6.941a17.686 17.686 0 0 1-6.385-1.591 36.444 36.444 0 0 1 6.388-5.35zm0 8.942v10.882a72.271 72.271 0 0 1-14.447-1.583 39.185 39.185 0 0 1 6.688-11.352 19.75 19.75 0 0 0 7.762 2.053zm-1.075 12.867a.951.951 0 0 0 .141.028c.313 0 .622-.009.934-.012v10.1h-17.128a41.134 41.134 0 0 1 2-11.793 73.292 73.292 0 0 0 14.056 1.677zm-16.053 12.115h17.131v10.1a74.013 74.013 0 0 0-15.133 1.693 41.169 41.169 0 0 1-1.998-11.793zm17.131 12.1v10.884a19.716 19.716 0 0 0-7.763 2.053 39.19 39.19 0 0 1-6.687-11.353 72.2 72.2 0 0 1 14.45-1.583zm0 12.883v6.941a36.482 36.482 0 0 1-6.385-5.349 17.7 17.7 0 0 1 6.385-1.591zm-3.4 6.968a32.743 32.743 0 0 1-8.02-2.1 22.274 22.274 0 0 1 3.215-2.314 38.811 38.811 0 0 0 4.802 4.415zm13.611-4.416a22.274 22.274 0 0 1 3.215 2.314 32.743 32.743 0 0 1-8.02 2.1 38.811 38.811 0 0 0 4.802-4.413zm-8.208 4.389v-6.94a17.713 17.713 0 0 1 6.386 1.592 36.525 36.525 0 0 1-6.389 5.349zm0-8.941V74.558a72.2 72.2 0 0 1 14.447 1.583 39.19 39.19 0 0 1-6.688 11.353 19.716 19.716 0 0 0-7.762-2.053zm0-12.883v-10.1h17.131a41.169 41.169 0 0 1-2 11.794 74.013 74.013 0 0 0-15.134-1.693zm25.7-30.909c-.017.01-.038.011-.055.022a35.027 35.027 0 0 1-9.582 4.2 41.239 41.239 0 0 0-6.68-11.331 24.877 24.877 0 0 0 4.023-3.051 33.271 33.271 0 0 1 12.287 10.161zm-41.1-10.155a24.916 24.916 0 0 0 3.853 2.942 41.293 41.293 0 0 0-6.858 11.874 39.466 39.466 0 0 1-9.87-3.835 33.278 33.278 0 0 1 12.87-10.98zm-12.88 48.948a39.389 39.389 0 0 1 9.87-3.835 41.254 41.254 0 0 0 6.857 11.873 24.953 24.953 0 0 0-3.854 2.942 33.286 33.286 0 0 1-12.873-10.98zm41.679 10.98a24.953 24.953 0 0 0-3.854-2.942 41.254 41.254 0 0 0 6.859-11.873 39.389 39.389 0 0 1 9.87 3.835 33.286 33.286 0 0 1-12.875 10.98z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M232 167.915a2.533 2.533 0 0 1-.856-.148 2.493 2.493 0 0 1-1.679-2.376v-33.629a2.521 2.521 0 0 1 4.32-1.766l23.991 24.465a2.52 2.52 0 0 1-2.157 4.26l-13.419-1.935-8.256 10.192a2.493 2.493 0 0 1-1.944.937zm.465-34.98v31.1l7.94-9.8a1.5 1.5 0 0 1 1.379-.54l12.859 1.854z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M148.926 86.583H140.3a1 1 0 0 1 0-2h8.626a1 1 0 0 1 0 2z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M205.575 148.587a10.632 10.632 0 0 1-10.506-9.178l-.032-.236a10.885 10.885 0 0 1 9.317-12.321c5.227-.7 15.85-2.177 24.972-3.441 5.167-.716 9.852-1.367 12.8-1.772a10.851 10.851 0 0 1 12.207 9.263 10.7 10.7 0 0 1-5.092 10.648 1.5 1.5 0 0 1-1.547-2.57 7.71 7.71 0 0 0 3.668-7.668 7.842 7.842 0 0 0-8.828-6.7c-2.951.405-7.635 1.054-12.8 1.77a8449.949 8449.949 0 0 1-24.985 3.443 7.8 7.8 0 0 0-5.207 3.029 7.909 7.909 0 0 0-1.538 5.908l.033.235a7.628 7.628 0 0 0 8.644 6.511l19.284-2.763a1.5 1.5 0 1 1 .426 2.969l-19.284 2.763a10.765 10.765 0 0 1-1.532.11z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M167.236 166.473l-50.358-63.528a2.023 2.023 0 0 0-2.839-.327l-10.362 8.213a2.024 2.024 0 0 0-.328 2.839l50.357 63.53a2.015 2.015 0 0 0 1.352.754 2.349 2.349 0 0 0 .236.013 2 2 0 0 0 1.251-.438l10.363-8.214a2.024 2.024 0 0 0 .328-2.842zm-11.948 9.49a.02.02 0 0 1-.014-.007L104.919 112.4l10.392-8.21 3.134 3.956a.983.983 0 0 0-.72.21l-1.329 1.054a1 1 0 1 0 1.242 1.566l1.329-1.054a1 1 0 0 0 .368-.654l4.375 5.523a.986.986 0 0 0-.717.21l-3.988 3.162a1 1 0 1 0 1.242 1.566l3.988-3.161a1 1 0 0 0 .367-.652l4.374 5.521a.99.99 0 0 0-.715.209l-1.33 1.054a1 1 0 0 0 1.242 1.568l1.33-1.054a1 1 0 0 0 .366-.649l4.372 5.518a.986.986 0 0 0-.713.209l-3.987 3.162a1 1 0 1 0 1.242 1.566l3.988-3.161a1 1 0 0 0 .365-.646l4.371 5.517a1 1 0 0 0-.711.208l-1.329 1.053a1 1 0 0 0 1.242 1.568l1.33-1.053a.992.992 0 0 0 .364-.645l4.369 5.514a1 1 0 0 0-.708.208l-3.987 3.161a1 1 0 0 0 1.242 1.568l3.988-3.16a1 1 0 0 0 .363-.642l4.367 5.511a.981.981 0 0 0-.7.209L148 149.282a1 1 0 1 0 1.243 1.566l1.329-1.054a.992.992 0 0 0 .363-.638l4.364 5.509a.982.982 0 0 0-.7.208l-3.988 3.162a1 1 0 1 0 1.242 1.566l3.988-3.161a.993.993 0 0 0 .362-.636l4.362 5.506a.984.984 0 0 0-.7.209l-1.329 1.054a1 1 0 0 0 .622 1.783.987.987 0 0 0 .62-.217l1.329-1.054a.986.986 0 0 0 .362-.633l4.194 5.293z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M239.952 78.629H135.269A4.38 4.38 0 0 0 130.894 83v32.475a1.5 1.5 0 0 0 3 0V92.333h26.688v62.156a1 1 0 1 0 2 0v-1.273h33.16a1 1 0 0 0 0-2h-33.16V92.333h78.746v23.146a1.5 1.5 0 1 0 3 0V83a4.381 4.381 0 0 0-4.376-4.371zm1.376 11.7H133.894V83a1.377 1.377 0 0 1 1.375-1.375h104.683A1.378 1.378 0 0 1 241.328 83z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M132.748 172.95a1.5 1.5 0 0 1-1.5-1.5v-15.265a1.5 1.5 0 0 1 3 0v15.265a1.5 1.5 0 0 1-1.5 1.5z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M242.6 56.866a1 1 0 0 0-1 1v5.423l-5.487-5.489a1 1 0 0 0-1.414 1.414l4.435 4.436H165.28l4.435-4.436A1 1 0 0 0 168.3 57.8l-5.719 5.72v-5.654a1 1 0 1 0-2 0v13.568a1 1 0 0 0 2 0v-5.655L168.3 71.5a1 1 0 0 0 1.414-1.414l-4.434-4.436h73.854l-4.434 4.434a1 1 0 1 0 1.414 1.414l5.486-5.488v5.424a1 1 0 0 0 2 0V57.866a1 1 0 0 0-1-1z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M48.113 119.213a1.5 1.5 0 0 1-1.5-1.419 80.49 80.49 0 0 1-.116-4.31A76.952 76.952 0 0 1 61.307 67.7a1.5 1.5 0 1 1 2.421 1.771A73.976 73.976 0 0 0 49.5 113.484c0 1.377.038 2.772.112 4.148a1.5 1.5 0 0 1-1.417 1.579z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M94.9 141.433L75.969 111.01a2.6 2.6 0 0 0-3.485-.874l-20.9 11.754-31.335 9a2.586 2.586 0 0 0-1.559 1.249 2.469 2.469 0 0 0-.179 1.924L29.264 167.9a2.6 2.6 0 0 0 3.183 1.669l5.881-1.689 2.546 4.091a2.573 2.573 0 0 0 2.192 1.213 2.625 2.625 0 0 0 1.289-.339l24.329-13.682 18.962-5.445a2.573 2.573 0 0 0 1.554-1.248 2.465 2.465 0 0 0 .18-1.924l-.815-2.563 5.418-3.047a2.544 2.544 0 0 0 1.217-1.576 2.459 2.459 0 0 0-.3-1.927zm-21.269-28.5l1.387 2.228-10.927 3.139zM43.21 170.048l-1.884-3.028 14.851-4.264zm-11.218-3.469l-10.467-32.936L75.9 118.028l9.436 29.694v.016l1.025 3.227zm55.647-21.517l-6.246-19.657 10.681 17.164z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M68.693 135.4a6.025 6.025 0 0 1-5.769-4.124 5.573 5.573 0 0 1 .414-4.352 5.867 5.867 0 0 1 3.6-2.865 6.075 6.075 0 0 1 7.455 3.89 5.57 5.57 0 0 1-.413 4.351 5.869 5.869 0 0 1-3.6 2.864 6.182 6.182 0 0 1-1.687.236zm-.061-9.578a4.142 4.142 0 0 0-1.148.161 3.883 3.883 0 0 0-2.385 1.889 3.592 3.592 0 0 0-.268 2.8 4.059 4.059 0 0 0 5 2.566 3.874 3.874 0 0 0 2.384-1.888 3.589 3.589 0 0 0 .268-2.8 4.012 4.012 0 0 0-3.851-2.724z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M83.964 144.019a1 1 0 0 0-1.237-.685c-.736.212-1.568.425-2.449.63h-.018c-4.605 1.068-10.718 1.875-13.535.667l-11.977-6.221a2.638 2.638 0 0 0-3.46 1.024l-2.236 4.25-10.216-5.292a2.3 2.3 0 0 0-3.053.889l-2.249 4a1 1 0 0 0 1.743.98l2.25-4a.3.3 0 0 1 .39-.092l15.766 8.168a1 1 0 0 0 .92-1.775l-3.775-1.962 2.218-4.218a.632.632 0 0 1 .78-.2l12.043 6.257a10.73 10.73 0 0 0 3.287.715l-12.871 3.7c-1.222.35-4.1 1.334-4.493 2.889a1.381 1.381 0 0 0 .389 1.357c.361.348 1.462 1.412 8.339-.563a45.684 45.684 0 0 1 4.755-1.139 40.54 40.54 0 0 1-4.544 1.554l-1.9.58a3.794 3.794 0 0 0-2.376 1.531 1.554 1.554 0 0 0-.112 1.213 1 1 0 0 0 1.953-.334 3.78 3.78 0 0 1 1.118-.5l1.888-.575c8.62-2.475 8.167-4.055 8-4.649-.212-.738-.605-2.109-9.326.394a23.88 23.88 0 0 1-5.452 1.081 11.264 11.264 0 0 1 2.321-.92l23.988-6.889c.007 0 .012-.008.019-.01 1.377-.32 2.3-.582 2.435-.62a1 1 0 0 0 .677-1.235z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M39.581 146.69a1 1 0 1 0 .4-1.959 6.571 6.571 0 0 0-6.054 2.368 6.362 6.362 0 0 0-7.011-1.395 1 1 0 1 0 .8 1.832 3.982 3.982 0 0 1 3.5.092 6.626 6.626 0 0 0-3.8 2.556 1 1 0 1 0 1.6 1.195 4.784 4.784 0 0 1 3.744-1.962 18.317 18.317 0 0 0-.209 11.3 1 1 0 1 0 1.912-.584 16.339 16.339 0 0 1 .344-10.5 5.15 5.15 0 0 1 4.136 1.695 1 1 0 1 0 1.572-1.237 6.559 6.559 0 0 0-4.328-2.367 4.225 4.225 0 0 1 3.394-1.034z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M339.266 95.761a1.5 1.5 0 0 0 .272.243l8.58 5.969a933.55 933.55 0 0 0 1.432.7h16.3v24.889h-43.565v-25.637a1.5 1.5 0 0 0-3 0V128.3a2.259 2.259 0 0 0 2.256 2.256h45.052a2.259 2.259 0 0 0 2.256-2.256v-26.375a2.259 2.259 0 0 0-2.256-2.256h-16.482l-4.563-8.915a1.5 1.5 0 0 0-.207-.3l-3.921-4.48a4.779 4.779 0 0 0 3.321-1.667c1.108-1.395 1.412-3.813-1.06-6.412-4.634-4.87-9.535-9.579-15.888-15.267a36.637 36.637 0 0 0-8.388-5.7 17.766 17.766 0 0 0-4.455-1.306c-.037-.006-.072 0-.108-.007l-11.573-13.229a4.036 4.036 0 0 0-6.077 5.312l7.318 8.359a34.119 34.119 0 0 0-8.181 2.878c-2.071 1.059-4.1 2.248-6.067 3.4-4.1 2.4-7.967 4.665-12.291 5.933a1.5 1.5 0 0 0 .844 2.879c4.678-1.371 8.89-3.838 12.963-6.224 1.928-1.129 3.922-2.3 5.916-3.315a31.282 31.282 0 0 1 9.113-2.926l8.353 9.542a9.363 9.363 0 0 0-5.118 2.132l-.829.574a19.305 19.305 0 0 0-4.922 4.311 32.055 32.055 0 0 1-4.011-1.2 1.5 1.5 0 0 0-1.059 2.807c6.374 2.4 13.211 2.617 19.823 2.824a103.791 103.791 0 0 1 11.383.772c1.618.232 3.255.982 3.193 1.836-.039.548-.776 1.087-2.039 1.522l-.026.01c-.224.076-.46.15-.716.22a391.339 391.339 0 0 1-47.665 9.71 1.5 1.5 0 0 0 .205 2.986 1.48 1.48 0 0 0 .209-.015 394.051 394.051 0 0 0 47.963-9.767zm3.695-3.475l1.944 3.8-3.5-2.436-6.92-7.906a4.9 4.9 0 0 0 1.5-1.429zm-23.823-15.611a101.05 101.05 0 0 1-11.442-.793 25.085 25.085 0 0 1 3.218-2.481c.288-.2.573-.395.854-.591 2.017-1.42 3.35-2.358 6.666-.71.073.036.145.074.217.111l4.019 4.589a443.281 443.281 0 0 0-3.532-.125zm7.741.38l-6.106-6.974c-.016-.021-.033-.039-.05-.058l-12.205-13.942-.006-.007-9.061-10.351a1.035 1.035 0 1 1 1.559-1.361l28.89 33q-1.506-.185-3.021-.307zm-8.333-17.216a34.983 34.983 0 0 1 7.246 5.02c6.291 5.633 11.139 10.29 15.715 15.1.365.383 1.507 1.7.884 2.48-.478.6-1.962.964-3.5.059a1.455 1.455 0 0 0-.167-.085c-.237-.1-.469-.213-.7-.323z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M390.5 145.188h-10.883a1.478 1.478 0 0 0 .154-.65v-5.669a1.4 1.4 0 0 1 0-.567 1.5 1.5 0 0 0-1.5-1.5h-33.082v-4.735a1.5 1.5 0 0 0-3 0v4.733H308.54a1.5 1.5 0 0 0-1.5 1.5 1.4 1.4 0 0 1 0 .567v5.669a1.478 1.478 0 0 0 .154.65H296.5a2 2 0 0 0-2 2V161.7a2 2 0 0 0 2 2h23.272a2 2 0 0 0 2-2v-14.511a2 2 0 0 0-2-2h-9.886a1.478 1.478 0 0 0 .154-.65V139.8h32.149v4.736a1.478 1.478 0 0 0 .154.65h-10.127a2 2 0 0 0-2 2V161.7a2 2 0 0 0 2 2h23.272a2 2 0 0 0 2-2v-14.511a2 2 0 0 0-2-2h-10.453a1.478 1.478 0 0 0 .154-.65V139.8h31.582v4.736a1.478 1.478 0 0 0 .154.65h-9.7a2 2 0 0 0-2 2V161.7a2 2 0 0 0 2 2H390.5a2 2 0 0 0 2-2v-14.511a2 2 0 0 0-2-2.001zm-71.727 3V160.7H297.5v-12.512zm35.716 0V160.7h-21.273v-12.512zM389.5 160.7h-21.273v-12.512H389.5z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M285 54.371a1.5 1.5 0 0 1-.955-.343c-.1-.079-9.808-8.031-29.563-18.072-18.874-9.591-44.24-14.456-75.395-14.456-26.34 0-51.983 4.823-74.157 13.946a1.5 1.5 0 1 1-1.141-2.774c22.532-9.271 48.57-14.172 75.3-14.172 31.632 0 57.455 4.974 76.754 14.783 20.088 10.21 29.715 18.1 30.115 18.433a1.5 1.5 0 0 1-.958 2.655z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M99 81H80a1 1 0 0 1-1-1v-7a1 1 0 0 1 1-1h5V52h-5v5a1 1 0 0 1-1 1h-7a1 1 0 0 1-1-1V44a1 1 0 0 1 1-1h35a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6.982a1 1 0 0 1-1-1v-5H94v20h5a1 1 0 0 1 1 1v7a1 1 0 0 1-1 1zm-17-3h15.088v-3.052H92a1 1 0 0 1-1-1V50a1 1 0 0 1 1-1h9a1 1 0 0 1 1 1v5h3v-9H74v9h3v-5a1 1 0 0 1 1-1h9a1 1 0 0 1 1 1v23.948a1 1 0 0 1-1 1h-5z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M513.876 108.4a5.05 5.05 0 1 0-8.179 5.688l-15.432 25.052a3.074 3.074 0 0 0-.387-.039h-.854c5.957-11.006 8.509-22.93 7.081-34.246-1.9-15.072-11.533-28.061-27.246-36.882l6.715-1.95a1.5 1.5 0 0 0-.837-2.881l-10.211 2.966a1.5 1.5 0 0 0-1 1.913l3.213 9.667a1.5 1.5 0 0 0 2.847-.945l-2.011-6.051c14.754 8.341 23.787 20.5 25.559 34.538 1.413 11.2-1.311 23.068-7.562 33.935a3.246 3.246 0 0 0-2.607 3.177v.992a71.083 71.083 0 0 1-5.557 7.192C462.29 167.669 440 177.5 416.242 177.5a82.218 82.218 0 0 1-36.035-7.911 1.5 1.5 0 1 0-1.3 2.7 85.2 85.2 0 0 0 37.338 8.208c24.615 0 47.728-10.2 63.411-27.987a74.835 74.835 0 0 0 3.833-4.733 3.285 3.285 0 0 0 .458.56L469.9 169.758c-.011 0-.02-.011-.03-.014a5.091 5.091 0 1 0 1.743 1.05l14.148-21.576a3.183 3.183 0 0 0 .44.044h3.677a3.244 3.244 0 0 0 3.241-3.24v-3.677a3.224 3.224 0 0 0-1.027-2.353l15.253-24.763a5.089 5.089 0 0 0 1.988.41 5.032 5.032 0 0 0 2.179-.5 5.056 5.056 0 0 0 2.364-6.739zm-43.744 66.784a2.05 2.05 0 1 1-.087-1.567 2.035 2.035 0 0 1 .087 1.57zm19.987-29.165a.24.24 0 0 1-.241.24H486.2a.24.24 0 0 1-.241-.24v-3.677a.241.241 0 0 1 .241-.241h3.677a.241.241 0 0 1 .241.241zm20.093-33.584a2.05 2.05 0 0 1-1.775-3.7 2.024 2.024 0 0 1 .884-.2 2.05 2.05 0 0 1 .891 3.9z"
  }));
};

exports.default = _default;

/***/ }),

/***/ 5:
/***/ (function(module, exports) {

/* (ignored) */

/***/ }),

/***/ "5/H/":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("V7tf"),
      24: __webpack_require__("dEIx")
    }
  }));
};

WrappedIcon.displayName = 'Delete';
exports.default = WrappedIcon;

/***/ }),

/***/ "5/fI":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, props, _react2.default.createElement("svg", {
    className: "spectrum-UIIcon-CrossMedium"
  }, _react2.default.createElement("path", {
    d: "M7.77 6.709L5.061 4 7.77 1.291A.75.75 0 1 0 6.709.23L4 2.939 1.291.23A.75.75 0 1 0 .23 1.291L2.939 4 .23 6.709A.75.75 0 1 0 1.291 7.77L4 5.061 6.709 7.77A.75.75 0 1 0 7.77 6.709z",
    className: "spectrum-UIIcon--medium"
  }), _react2.default.createElement("path", {
    d: "M9.77 8.709L6.061 5 9.77 1.291A.75.75 0 1 0 8.709.23L5 3.939 1.291.23A.75.75 0 1 0 .23 1.291L3.939 5 .23 8.709A.75.75 0 1 0 1.291 9.77L5 6.061 8.709 9.77A.75.75 0 1 0 9.77 8.709z",
    className: "spectrum-UIIcon--large"
  })));
};

WrappedIcon.displayName = 'CrossMedium';
exports.default = WrappedIcon;

/***/ }),

/***/ "500B":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return getDisplayName; });
/* harmony import */ var _mimeTypes__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("sYeI");
/* harmony import */ var _libraryUtils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("5L/2");


/**
 * Attempts to remove the file extension from the file name.
 * Skip if its a folder or no extensions are available.
 *
 * Always remove the extension even if it's not known.
 * Third party plugins could create their own extensiond,
 * and Platform might not recognize them (will default to octet-stream).
 *
 * @param {string} name - The item's name.
 * @param {string} mimeType - The item's mimetype.
 * @returns {IDisplayName} - If extension is available, return the name without the extension and the extension separately. Otherwise return the provided name and no extension.
 */
function getDisplayName(name, mimeType) {
    if (!_libraryUtils__WEBPACK_IMPORTED_MODULE_1__[/* FOLDERS */ "b"].includes(mimeType)) {
        const possibleExt = Object(_mimeTypes__WEBPACK_IMPORTED_MODULE_0__[/* getExtension */ "a"])(name).toLowerCase();
        if (possibleExt) {
            return [name.substr(0, name.lastIndexOf('.')), possibleExt];
        }
    }
    return [name, undefined];
}


/***/ }),

/***/ "52x2":
/***/ (function(module, exports, __webpack_require__) {

"use strict";
 // eslint-disable-next-line no-empty-function

module.exports = function () {};

/***/ }),

/***/ "53oI":
/***/ (function(module) {

module.exports = JSON.parse("{\"Breadcrumbs\":\"İçerik haritaları\"}");

/***/ }),

/***/ "54FZ":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return AssetSelectionStore; });
/* unused harmony export needsSyncErrorResolution */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return syncErrorResolutionDisabled; });
/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("2vnA");
/* harmony import */ var _SelectionStore__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("7XYX");
/* harmony import */ var _utils_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("a375");
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;
};
var __metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
/*************************************************************************
 *   ADOBE CONFIDENTIAL
 *
 *   Copyright 2022 Adobe
 *   All Rights Reserved.
 *
 *   NOTICE:  All information contained herein is, and remains
 *   the property of Adobe and its suppliers, if any. The intellectual
 *   and technical concepts contained herein are proprietary to Adobe
 *   and its suppliers and are protected by all applicable intellectual
 *   property laws, including trade secret and copyright laws.
 *   Dissemination of this information or reproduction of this material
 *   is strictly forbidden unless prior written permission is obtained
 *   from Adobe.
 **************************************************************************/



class AssetSelectionStore extends _SelectionStore__WEBPACK_IMPORTED_MODULE_1__[/* default */ "b"] {
    hasSyncingElements(assetSyncStateStore) {
        return this.selectedElements.some(element => assetSyncStateStore.isSyncing(element).get());
    }
    get canMakeAvailableOffline() {
        return (this.onlyOneOrMultipleAndNoSyncErrors &&
            !this.hasOnlyUserPinnedItems &&
            this.hasOnlyComposites &&
            !this.hasAnyCloudOnlyAssets);
    }
    get canMakeOnlineOnly() {
        return (this.onlyOneOrMultipleAndNoSyncErrors &&
            this.hasOnlyUserPinnedItems &&
            this.hasOnlyComposites);
    }
    get needsSyncErrorResolution() {
        return needsSyncErrorResolution(this);
    }
    get hasAnySyncSuspended() {
        return this.selectedElements.some(el => el.isSyncSuspended);
    }
    /**
     * Some Actions are visible if there is exactly 1 selection and it has sync errors in order
     * to show the Action as disabled with an explanatory tooltip. All actions should be hidden
     * if the selection contains a mix of healthy and sync error assets, as the sync error
     * resolution workflow is not designed to handle multiple files at once.
     * @returns {boolean}
     */
    get onlyOneOrMultipleAndNotSyncSuspended() {
        return this.hasOnlyOne || (this.hasMultiple && !this.hasAnySyncSuspended);
    }
    /**
     * Some Actions are visible if there is exactly 1 selection and it has sync errors in order
     * to show the Action as disabled with an explanatory tooltip. All actions should be hidden
     * if the selection contains a mix of healthy and sync error assets, as the sync error
     * resolution workflow is not designed to handle multiple files at once.
     * @returns {boolean}
     */
    get onlyOneOrMultipleAndNoSyncErrors() {
        return this.hasOnlyOne || (this.hasMultiple && !this.needsSyncErrorResolution);
    }
    /**
     * Some Actions are disabled if the selection has sync errors because resolving the sync error
     * could make the Action available again. Sync error resolution workflow is designed for
     * only one asset at a time.
     * @returns {boolean}
     */
    get syncErrorResolutionDisabled() {
        return syncErrorResolutionDisabled(this);
    }
    get hasOnlyUserPinnedItems() {
        return this.hasAny && this.selectedElements.every(el => el.isUserPinned);
    }
    get hasAnyOnlineOnlyItems() {
        return this.hasAny && this.selectedElements.some(el => !el.isUserPinned || !el.isCached);
    }
    get hasAnyLocalItemsToBeSynced() {
        return this.hasAny && this.selectedElements.some((el) => !el.cloudID);
    }
    get hasRenameDisabled() {
        return this.selectedElements.some(el => el.isRenameDisabled);
    }
    get hasOnlyOfflineItems() {
        return this.hasAny && this.selectedElements.every(el => el.isUserPinned || el.isCached);
    }
    get hasPendingOperations() {
        return this.hasAny && this.selectedElements.some(el => el.hasPendingOperation);
    }
    get hasOnlyComposites() {
        return this.hasAny && this.selectedElements.every(el => el.isComposite);
    }
    get hasAnyFiles() {
        return this.selectedElements.some(el => el.isFile);
    }
    get hasOnlyFiles() {
        return this.selectedElements.every(el => el.isFile);
    }
    get hasAnyCloudOnlyAssets() {
        return this.selectedElements.some((el) => el.type === _utils_constants__WEBPACK_IMPORTED_MODULE_2__[/* CANVAS_MIMETYPE */ "c"]);
    }
    get hasAnyFolders() {
        return Object(_SelectionStore__WEBPACK_IMPORTED_MODULE_1__[/* hasAnyFolders */ "d"])(this);
    }
    get hasOnlyNonFolders() {
        return Object(_SelectionStore__WEBPACK_IMPORTED_MODULE_1__[/* hasOnlyNonFolders */ "f"])(this);
    }
    get selectedFolders() {
        return this.selectedElements.filter(el => el.isFolder);
    }
    hasOnlyActionableItemsWhileOffline(isOnline) {
        if (this.hasAnyFolders) {
            // all actions on folders require the user to be online
            return isOnline;
        }
        return isOnline || this.hasOnlyOfflineItems;
    }
}
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [])
], AssetSelectionStore.prototype, "needsSyncErrorResolution", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [])
], AssetSelectionStore.prototype, "hasAnySyncSuspended", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [])
], AssetSelectionStore.prototype, "onlyOneOrMultipleAndNotSyncSuspended", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [])
], AssetSelectionStore.prototype, "onlyOneOrMultipleAndNoSyncErrors", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [])
], AssetSelectionStore.prototype, "syncErrorResolutionDisabled", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [])
], AssetSelectionStore.prototype, "hasOnlyUserPinnedItems", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [])
], AssetSelectionStore.prototype, "hasAnyOnlineOnlyItems", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [])
], AssetSelectionStore.prototype, "hasAnyLocalItemsToBeSynced", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [])
], AssetSelectionStore.prototype, "hasRenameDisabled", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [])
], AssetSelectionStore.prototype, "hasOnlyOfflineItems", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [])
], AssetSelectionStore.prototype, "hasPendingOperations", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [])
], AssetSelectionStore.prototype, "hasOnlyComposites", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [])
], AssetSelectionStore.prototype, "hasAnyFiles", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [])
], AssetSelectionStore.prototype, "hasOnlyFiles", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [])
], AssetSelectionStore.prototype, "hasAnyCloudOnlyAssets", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [])
], AssetSelectionStore.prototype, "hasAnyFolders", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [])
], AssetSelectionStore.prototype, "hasOnlyNonFolders", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], AssetSelectionStore.prototype, "selectedFolders", null);
function needsSyncErrorResolution(store) {
    return store.selectedElements.some(el => el.needsSyncErrorResolution);
}
function syncErrorResolutionDisabled(store) {
    return Object(_SelectionStore__WEBPACK_IMPORTED_MODULE_1__[/* hasOnlyOne */ "g"])(store) && needsSyncErrorResolution(store);
}


/***/ }),

/***/ "56Hx":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return useMeasureElementWidth; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return useMeasureRootWidth; });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _utils_UXPUtils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("LbGp");


/**
 * Get the element's width, updating it when the window resizes. NOTE: This
 * isn't guaranteed to update when the element resizes (it's not a
 * ResizeObserver), but it's better than nothing.
 */
function useMeasureWidth(getCurrentWidth) {
    const [width, setWidth] = Object(react__WEBPACK_IMPORTED_MODULE_0__["useState"])(0);
    Object(react__WEBPACK_IMPORTED_MODULE_0__["useEffect"])(() => {
        const resizeEl = _utils_UXPUtils__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].getResizeElement();
        resizeEl.addEventListener('resize', handleResize);
        function handleResize() {
            const newWidth = getCurrentWidth();
            if (newWidth > 0) {
                setWidth(oldWidth => oldWidth === 0 || newWidth !== oldWidth ? newWidth : oldWidth);
            }
        }
        handleResize();
        return () => {
            resizeEl.removeEventListener('resize', handleResize);
        };
    }, []);
    return width;
}
function useMeasureElementWidth(elementRef) {
    return useMeasureWidth(() => { var _a, _b; return (_b = (_a = elementRef.current) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect().width) !== null && _b !== void 0 ? _b : 0; });
}
function useMeasureRootWidth(elementRef) {
    return useMeasureWidth(() => { var _a, _b, _c; return (_c = (_b = (_a = elementRef.current) === null || _a === void 0 ? void 0 : _a.closest('.CCProjectsRoot')) === null || _b === void 0 ? void 0 : _b.getBoundingClientRect().width) !== null && _c !== void 0 ? _c : 0; });
}


/***/ }),

/***/ "592x":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("path", {
  d: "M33.567 8.2L27.8 2.432a1.214 1.214 0 0 0-.866-.353H26.9a1.371 1.371 0 0 0-.927.406L5.084 23.372a1 1 0 0 0-.251.421L2.055 33.1c-.114.376.459.851.783.851a.274.274 0 0 0 .061-.006c.276-.064 7.867-2.344 9.312-2.779a.981.981 0 0 0 .414-.249l20.888-20.889a1.374 1.374 0 0 0 .4-.883 1.222 1.222 0 0 0-.346-.945zM11.4 29.316c-2.161.649-4.862 1.465-6.729 2.022l2.009-6.73z"
}));

/***/ }),

/***/ "5J2P":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("path", {
  d: "M29.314 6.686a16 16 0 1 0 0 22.627 16 16 0 0 0 0-22.627zm-2.687 18.527l-1.414 1.414a1.2 1.2 0 0 1-1.7 0L18 21.111l-5.516 5.516a1.2 1.2 0 0 1-1.7 0l-1.409-1.415a1.2 1.2 0 0 1 0-1.7L14.889 18l-5.514-5.516a1.2 1.2 0 0 1 0-1.7l1.414-1.414a1.2 1.2 0 0 1 1.7 0L18 14.888l5.516-5.515a1.2 1.2 0 0 1 1.7 0l1.414 1.414a1.2 1.2 0 0 1 0 1.7L21.111 18l5.516 5.516a1.2 1.2 0 0 1 0 1.7z"
}));

/***/ }),

/***/ "5K7Z":
/***/ (function(module, exports, __webpack_require__) {

var isObject = __webpack_require__("93I4");

module.exports = function (it) {
  if (!isObject(it)) throw TypeError(it + ' is not an object!');
  return it;
};

/***/ }),

/***/ "5L/2":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return getRGBData; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return MIMETYPE; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return CLOUD_DOCUMENTS; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return FOLDERS; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return roundDownColor; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return getColorThemeSwatches; });
/* unused harmony export round */
/* unused harmony export colorDataToRGBA */
/* unused harmony export linearInterpolateColor */
/* unused harmony export addMidpointStops */
/* unused harmony export mergeGradientStops */
/* unused harmony export addFauxStops */
/* unused harmony export flattenGradientStops */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return getGradientCSS; });
/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("2vnA");

function getRGBData(representations) {
    var _a;
    const rawColorData = Object(mobx__WEBPACK_IMPORTED_MODULE_0__[/* toJS */ "F"])(representations);
    let rgbData = rawColorData === null || rawColorData === void 0 ? void 0 : rawColorData.value;
    // if there are additional formats for color data in the thumbnail, only get the RGB type
    if (rawColorData.swatches) {
        const theSwatchWeWant = Array.isArray(rawColorData.swatches[0])
            ? rawColorData.swatches[0]
            : rawColorData.swatches;
        const rgbRepresentation = theSwatchWeWant.find(swatch => swatch.colordata ? swatch.colordata.mode === 'RGB' : swatch.mode === 'RGB');
        rgbData = ((_a = rgbRepresentation === null || rgbRepresentation === void 0 ? void 0 : rgbRepresentation.colordata) === null || _a === void 0 ? void 0 : _a.value) || (rgbRepresentation === null || rgbRepresentation === void 0 ? void 0 : rgbRepresentation.value);
    }
    return rgbData;
}
const MIMETYPE = {
    COLLABORATED_FOLDER: 'application/x-sharedcloud-mount+json',
    SHARED_CLOUD_COLLECTION: 'application/x-sharedcloud-collection+json',
    FOLDER: 'application/vnd.adobe.directory+json',
    ACP_FOLDER: 'application/vnd.adobecloud.directory+json',
    FR_CLOUD_DOCUMENT: 'application/vnd.adobe.gemini+dcx',
    ILLUSTRATOR_DOCUMENT: 'application/illustrator',
    ILLUSTRATOR_CLOUD_DOCUMENT: 'document/vnd.adobe.illustrator+dcx',
    LIBRARIES: 'application/vnd.adobe.library+dcx',
    LIBRARY_ELEMENT_AUDIO: 'application/vnd.adobe.element.audio+dcx',
    LIBRARY_ELEMENT_ANIMATION: 'application/vnd.adobe.element.animation+dcx',
    LIBRARY_ELEMENT_BRUSH: 'application/vnd.adobe.element.brush+dcx',
    LIBRARY_ELEMENT_CHARACTERSTYLE: 'application/vnd.adobe.element.characterstyle+dcx',
    LIBRARY_ELEMENT_COLOR: 'application/vnd.adobe.element.color+dcx',
    LIBRARY_ELEMENT_COMPONENT: 'application/vnd.adobe.element.component+dcx',
    LIBRARY_ELEMENT_COLORTHEME: 'application/vnd.adobe.element.colortheme+dcx',
    LIBRARY_ELEMENT_GRADIENT: 'application/vnd.adobe.element.gradient+dcx',
    LIBRARY_ELEMENT_IMAGE: 'application/vnd.adobe.element.image+dcx',
    LIBRARY_ELEMENT_LAYER: 'application/vnd.adobe.element.layerstyle+dcx',
    LIBRARY_ELEMENT_LIGHT: 'application/vnd.adobe.element.light+dcx',
    LIBRARY_ELEMENT_LOOK: 'application/vnd.adobe.element.look+dcx',
    LIBRARY_ELEMENT_MATERIAL: 'application/vnd.adobe.element.material+dcx',
    LIBRARY_ELEMENT_MODEL: 'application/vnd.adobe.element.3d+dcx',
    LIBRARY_ELEMENT_MOGRT: 'application/vnd.adobe.element.graphic+dcx',
    LIBRARY_ELEMENT_PARAGRAPHSTYLE: 'application/vnd.adobe.element.paragraphstyle+dcx',
    LIBRARY_ELEMENT_PATTERN: 'application/vnd.adobe.element.pattern+dcx',
    LIBRARY_ELEMENT_TEMPLATE: 'application/vnd.adobe.element.template+dcx',
    LIBRARY_ELEMENT_TEXT: 'application/vnd.adobe.element.text+dcx',
    LIBRARY_ELEMENT_VIDEO: 'application/vnd.adobe.element.video+dcx',
    MIGRATED_GEMINI: 'document/vnd.adobe.gemini+dcx',
    PS_DOCUMENT: 'application/photoshop',
    PS_DOCUMENT_LARGE: 'application/photoshop.large',
    PS_CLOUD_DOCUMENT: 'document/vnd.adobe.cpsd+dcx',
    THREEDSCENE: 'model/gltf-binary',
    XD_DOCUMENT: 'application/vnd.adobe.sparkler.project+dcx',
    XD_CLOUD_DOCUMENT: 'application/vnd.adobe.xd.cloudproject+dcx',
    XD_DESIGN_SPECS: 'application/vnd.adobe.uxdesign.designspec+dcx',
    XD_PROTOTYPE: 'application/vnd.adobe.uxdesign.prototype+dcx',
    XD_SHAREDARTIFACT: 'application/vnd.adobe.xd.sharedartifact+dcx',
    PRESIGNED_URL: 'application/vnd.adobe.s3presignedurl+json',
    INDESIGN_ARTIFACT: 'application/pdf',
    AERO: 'application/vnd.adobe.real+dcx',
    TRANSFER_DOCUMENT: 'application/vnd.adobecloud.bulk-transfer+json',
    DRAW_PROJECT: 'application/vnd.adobe.draw.project+dcx',
    SKETCH_PROJECT: 'application/vnd.adobe.sketch.project+dcx',
    INDESIGN_DOCUMENT: 'document/vnd.adobe.indesign',
    INDESIGN_CLOUD_DOCUMENT: 'document/vnd.adobe.indesign+dcx',
};
const CLOUD_DOCUMENTS = [
    MIMETYPE.XD_CLOUD_DOCUMENT,
    MIMETYPE.ILLUSTRATOR_CLOUD_DOCUMENT,
    MIMETYPE.PS_CLOUD_DOCUMENT,
    MIMETYPE.INDESIGN_CLOUD_DOCUMENT,
];
const FOLDERS = [
    MIMETYPE.ACP_FOLDER,
    MIMETYPE.COLLABORATED_FOLDER,
    MIMETYPE.FOLDER,
    MIMETYPE.SHARED_CLOUD_COLLECTION,
];
/*
 * Color utility function to round down colors to browser readable values
 * @param takes in color object
 * returns original color object with each number rounded to the nearest whole number
 */
function roundDownColor(colorObject) {
    const newColorObject = {};
    Object.entries(colorObject).forEach(entry => {
        const key = entry[0];
        const value = entry[1];
        newColorObject[key] = Math.round(value);
    });
    return newColorObject;
}
function getColorThemeSwatches(swatches) {
    // if data is in Manfiest format, without 'colordata' then just return all swatches.
    if (!swatches[0].colordata) {
        return swatches;
    }
    // if data is in USS format, which includes 'colordata'
    // first get rid of any CMYK or non-RGB color formats
    const rgbOnly = swatches.filter(swatch => swatch.colordata && swatch.colordata.mode === 'RGB');
    // then you have just the rgb, but theres still 'colordata' so remove that and return as array
    return rgbOnly.map(swatch => new Array(swatch.colordata));
}
const PRECISION = 100; // 2 decimal points
const round = x => Math.round(x * PRECISION) / PRECISION;
// Relativize `offset` to fall between `a` and `b`.
const normalize = (a, b, offset) => (offset - a.offset) / (b.offset - a.offset);
const colorDataToRGBA = (data, opacity = 1) => {
    if (!data) {
        return;
    }
    const red = round(data.value.r);
    const green = round(data.value.g);
    const blue = round(data.value.b);
    const alpha = round(opacity);
    return `rgba(${red},${green},${blue},${alpha})`;
};
/**
 * Given two known values `v1` and `v2`, approximates the value of a point `x`.
 * @param {number} x
 * @param {number} v1
 * @param {number} v2
 */
function linearInterpolate(x, v1, v2) {
    const y = v1 + (v2 - v1) * x;
    return round(y);
}
/**
 * Using linear interpolation, approximate the color of the point at `targetOffset` found between known colors `colorDataA` and `colorDataB`.
 * @param {number} targetOffset
 * @param {Array} colorDataA
 * @param {Array} colorDataB
 */
function linearInterpolateColor(targetOffset, colorDataA, colorDataB) {
    const colorA = colorDataA.find(color => color.mode === 'RGB');
    const colorB = colorDataB.find(color => color.mode === 'RGB');
    // An RGB representation is required.
    if (!colorA || !colorB) {
        return;
    }
    const newColor = {
        mode: 'RGB',
        value: {
            r: linearInterpolate(targetOffset, colorA.value.r, colorB.value.r),
            g: linearInterpolate(targetOffset, colorA.value.g, colorB.value.g),
            b: linearInterpolate(targetOffset, colorA.value.b, colorB.value.b),
        },
    };
    // We put the value in a list since this is just one of the representations of the color (RGB)
    return [newColor];
}
/**
 * Add explicit stops representing the midpoints between each stop, as needed.
 * Gradient Stop value will be read and stored using `valueKey`.
 * @param {string} valueKey
 * @param {Array} stops
 */
function addMidpointStops(valueKey, stops) {
    // The midpoint of two stops is the point where the value is exactly half-way between the value of the two stops.
    // For stops A and B where the former precedes the latter, the midpoint is stored in B and is expressed as the offset B towards A.
    // Note that the above implies the first stop in a gradient stores no meaningful midpoint value so we can skip it.
    const newStops = [];
    for (let i = 0; i < stops.length; i++) {
        const stopA = stops[i];
        const stopB = stops[i + 1];
        // Add each stop to the list.
        newStops.push(stopA);
        if (stopB && stopB.midpoint && round(stopB.midpoint) !== 0.5) {
            // If the midpoint is not exactly in the middle of the two stops, we need to add an explicit stop there.
            const interpolate = valueKey === 'color' ? linearInterpolateColor : linearInterpolate;
            newStops.push({
                offset: linearInterpolate(stopB.midpoint, stopA.offset, stopB.offset),
                [valueKey]: interpolate(0.5, stopA[valueKey], stopB[valueKey]),
            });
        }
    }
    return newStops;
}
/**
 * Interpolate either a color or an opacity value at `offset` using the closest value from `stops` and `prevStop`
 * @param {Array} valueKey
 * @param {Array} offset
 * @param {Array} stops
 * @param {Array} prevStop
 */
function getFauxValue(valueKey, offset, stops, prevStop) {
    const nextStop = stops.find(stop => stop.offset > offset);
    if (!nextStop) {
        // Undefined stop at the end of the gradient, value should be equal to that of the last defined stop.
        return prevStop[valueKey];
    }
    if (!prevStop) {
        // Undefined stop at the start of the gradient, value should be equal to that of the first defined stop.
        return nextStop[valueKey];
    }
    const interpolate = valueKey === 'color' ? linearInterpolateColor : linearInterpolate;
    // To ease the interpolation, we normalize the offset of the stop to be a relative position between `prevStop` and `nextStop`.
    return interpolate(normalize(prevStop, nextStop, offset), prevStop[valueKey], nextStop[valueKey]);
}
/**
 * Create an array of stops containing all stops form both `colorStops` and `opacityStops`.
 * Each value will contain either both color and opacity or be missing one of the two.
 * @param {Array} colorStops
 * @param {Array} opacityStops
 */
function mergeGradientStops(colorStops, opacityStops) {
    let colors = colorStops.slice(0);
    const offsetMap = {};
    if (!opacityStops || !opacityStops.length) {
        colors.forEach(stop => (stop.opacity = 1));
        return colors;
    }
    let opacities = opacityStops.slice(0);
    // Invalidate non-standard opacity that is directly specified in the color stops.
    colors.forEach(stop => (stop.opacity = undefined));
    // Create a map of all stop positions in both colorStops and opacityStops.
    // When a stop position exists in both arrays the data of both stops will be merged.
    const addToMap = stops => stops.forEach(stop => {
        // Round to avoid not merging because of decimal points.
        stop.offset = round(stop.offset);
        offsetMap[stop.offset] = offsetMap[stop.offset] || {};
        Object.assign(offsetMap[stop.offset], stop);
    });
    // Create a map of all stop positions in both colorStops and opacityStops.
    // When a stop position exists in both arrays the data of both stops will be merged.
    addToMap(colors);
    addToMap(opacities);
    return Object.keys(offsetMap)
        .sort()
        .map(offset => offsetMap[offset]);
}
/**
 * Create an array of stops containing all stops form both `colorStops` and `opacityStops` with approximated values for non-matching locations.
 * @param {Array} colorStops
 * @param {Array} opacityStops
 */
function addFauxStops(colorStops, opacityStops) {
    // After mergin, for each location we either have both color and opacity data or we're missing one of the two,
    // in which case we will approximate a value for that stop by interpolation, using the two nearest stops.
    const merged = mergeGradientStops(colorStops, opacityStops);
    let prevStop;
    return merged.map(stop => {
        // Opacity without a color stop, needs a faux color
        stop.color = stop.color || getFauxValue('color', stop.offset, colorStops, prevStop);
        // Color stop without an opacity, needs a faux opacity
        if (stop.opacity === undefined) {
            stop.opacity = getFauxValue('opacity', stop.offset, opacityStops, prevStop);
        }
        prevStop = stop;
        return stop;
    });
}
/**
 * Return all color stops needed to draw a gradient.
 * @param {Array} colorStops
 * @param {Array} opacityStops
 */
function flattenGradientStops(colorStops, opacityStops) {
    let colors = colorStops.slice(0);
    // The standard is to specify opacity in the opacity gradient.
    // Invalidate opacity that is directly specified in the color stops.
    colors.forEach(stop => (stop.opacity = undefined));
    colors = addMidpointStops('color', colorStops);
    // Account for opacity in the gradient.
    if (!opacityStops || opacityStops.length === 0) {
        // Default case, just set the opacities all to 1 to express full opacity accross the gradient.
        colors.forEach(stop => (stop.opacity = 1));
    }
    else {
        // In the case where an Opacity gradient is specified, it should be overlaid with the Color gradient.
        // However, it is possible that the positions of the Color and Opacity stops do not match.
        // In that case we will create extra, "faux" stops that will approximate the value of the missing stops.
        const opacities = addMidpointStops('opacity', opacityStops);
        colors = addFauxStops(colors, opacities);
    }
    return colors;
}
/**
 * Get the CSS backgroundImage for gradient data.
 * Ex. linear-gradient(90deg,rgba(109,101,90,1),rgba(191,188,181,1),rgba(170,152,128,1),rgba(34,34,32,1).
 * Ex. radial-gradient(ellipse 100% 100% at 50% 50%,rgba(109,101,90,1),rgba(191,188,181,1),rgba(170,152,128,1),rgba(34,34,32,1)
 * @param {Object} data
 * @param {boolean} [disabled]
 */
function getGradientCSS(data) {
    // A Gradient Library Element expresses a transition of colors along a figure.
    // It stores a collection of specified position-color pairs called "stops" to specify that at a point X% away from the start of the figure, the color should be exactly Y.
    // The creator of a Gradient can fine-tune the rate of the color transitions by specifying "midpoint" values to the stops, which
    // represent the position of the point between two stops where the color value is exactly half-way between the value of the other two.
    // With the structure above, the consumer of a Gradient Element can draw it by assigning each point between two stops, color values gradually closer to the value of the next stop.
    // Optionally, a Gradient Element can store a second array of stops representing Opacity along the figure.
    let { type, stops, opacities, angle, aspectRatio, scale, centerPoint } = data;
    // Catching missing or corrupted data:
    // 1) Only certain gradient types are supported.
    if (!['linear', 'radial'].includes(type) || !stops) {
        return;
    }
    // 2) The default angle is 0.
    angle = angle || 0;
    // 3) The default aspect ratio and scale for a radial gradient is 1.
    aspectRatio = aspectRatio || 1;
    scale = scale || 1;
    // 4) The default centerPoint of a radial gradient is at the center of the container (50% 50%).
    const centerX = centerPoint && centerPoint.x !== undefined ? centerPoint.x : 0.5;
    const centerY = centerPoint && centerPoint.y !== undefined ? centerPoint.y : 0.5;
    stops = flattenGradientStops(stops, opacities);
    // These are the CSS properties needed to accurately render the gradient.
    let backgroundImage, transform;
    const gradient = [];
    // We visit each stop, extract the color and opacity data and convert them to an RGBA value we can use for styling.
    for (let i = 0; i < stops.length; i++) {
        const stop = stops[i];
        // A stop can be represented in any color space but it should always include an RGB representation.
        const rgbColorData = stop.color && stop.color.length && stop.color.find(color => color.mode === 'RGB');
        if (!rgbColorData) {
            return;
        }
        // A stop can have a particular opacity level.
        const rgba = colorDataToRGBA(rgbColorData, stop.opacity);
        // A stop's 'offset' is its position relative to the start of the gradient line.
        const offset = stop.offset && `${Math.round(stop.offset * 100)}%`;
        gradient.push(`${rgba} ${offset || ''}`);
    }
    if (type === 'linear') {
        // A Library Gradient's angle is measured anti-clockwise from the positive x-axis (0deg points to the right)
        // A CSS Gradient's angle is measured clockwise from the positive y-axis (0deg points up). So we adjust by 90deg.
        gradient.unshift(`${90 - angle}deg`);
    }
    else {
        // For radial gradients, we will take care of respecting the angle, aspectRatio, scale and center point using the CSS `transform` property
        // Note that while in a CC Gradient, scale refers to the entire width (diameter), in CSS the dimensions are based on the radius, so we need to multiply by .5
        const scaleX = 0.5 * scale;
        const SCALE = Math.ceil(2 *
            Math.max(Math.max(1, Math.abs(centerX)) / scaleX, Math.max(1, Math.abs(centerY)) / (scaleX * aspectRatio)));
        // Place a small circle in the center.
        gradient.unshift(`ellipse ${50 / SCALE}% ${50 / SCALE}% at 50% 50%`);
        // Leave default transformOrigin in th the center of the container.
        // Scale the radial gradient to respect the scale and aspect ratio, rotate to repect the angle and translate to respect the center point (offset from 0.5 since we render the ellipsis at the center).
        // CCS `rotate` values are measured clockwise from the x-axis (0deg points right, progresses downward),
        // while Library Gradient's angle is measured anti-clockwise from the positive x-axis (0deg points right, progresses upward), so flip sign to convert.
        transform = `translate(${round((centerX - 0.5) * 100)}%, ${round((centerY - 0.5) * 100)}%) rotate(${-1 * angle}deg) scale(${scale * SCALE},${scale * SCALE * aspectRatio})`;
    }
    // Finally, set the actual CSS gradient string.
    backgroundImage = `${type}-gradient(${gradient.join(',')})`;
    return { backgroundImage, transform };
}


/***/ }),

/***/ "5NVr":
/***/ (function(module) {

module.exports = JSON.parse("{\"close\":\"Chiudi\",\"error\":\"Errore\",\"info\":\"Informazioni\",\"success\":\"Operazione riuscita\",\"warning\":\"Avvertenza\"}");

/***/ }),

/***/ "5PXy":
/***/ (function(module, exports) {

/* eslint-disable max-len */
module.exports = {
  'confirmationDialog.dontShowAgain': 'Não mostrar novamente',
  'confirmationDialog.confirm.default': 'Continuar',
  'confirmationDialog.cancel.default': 'Cancelar',
  'confirmationDialog.learnMore': 'Saiba mais',
  'toast.warning.place': 'Ainda não é possível inserir documentos na nuvem vinculados. Em vez disso, incorpore-os para continuar.',
  'toast.warning.placeLinkOrEmbed': 'Os ativos que você insere agora estão vinculados ao original por padrão. Isso significa que se você editá-lo em um lugar, essas alterações serão refletidas em todos os lugares.',
  'toast.warning.saveAs.invalidFormat': 'Não é possível salvar {genericFormat} arquivos aqui. Seus arquivos serão salvos como {adobeFormat}.',
  'pickerView.recent': 'Recente',
  'pickerView.cloud_docs': 'Seus arquivos',
  'pickerView.shared_with_you': 'Compartilhado com você',
  'pickerView.projects': 'Projetos',
  'pickerView.files': 'Arquivos',
  'pickerView.computer': 'Seu computador...',
  'pickerView.saveAsInput': 'Salvar como',
  'pickerView.exportInput': 'Exportar como',
  'pickerView.sketch_library': 'Converter biblioteca do Sketch...',
  'pickerView.error.saveAsOrExport.default': 'Nome de arquivo inválido.',
  'pickerView.error.saveAsOrExport.invalidName': 'O nome contém caracteres inválidos.',
  'pickerView.error.saveAsOrExport.invalidEnd': 'O nome não pode terminar com “.” ou espaço vazio.',
  'pickerView.error.saveAsOrExport.invalidChar': 'O nome não pode conter os seguintes caracteres: {characters}',
  'pickerView.error.saveAsOrExport.charRestriction': 'Os nomes não podem exceder 200 caracteres.',
  'pickerView.error.saveAsOrExport.duplicateName': 'Você já tem um documento na nuvem com esse nome.',
  'pickerView.error.addALibrary.permission': 'Você não tem permissão para adicionar a esta biblioteca',
  'pickerViewFooter.button.add': 'Adicionar',
  'pickerViewFooter.button.cancel': 'Cancelar',
  'pickerViewFooter.button.copy': 'Copiar aqui',
  'pickerViewFooter.button.move': 'Mover aqui',
  'pickerViewFooter.button.moveToProject': 'Mover aqui',
  'pickerViewFooter.button.copyToProject': 'Copiar aqui',
  'pickerViewFooter.button.choose': 'Escolher',
  'pickerViewFooter.button.save': 'Salvar',
  'pickerViewFooter.button.switchToOSPicker': 'Em seu computador',
  'pickerViewFooter.button.save.offline': 'É necessária conexão com a Internet',
  'pickerViewFooter.button.saveAsCopy': 'Salvar',
  'pickerViewFooter.button.export': 'Exportar',
  'pickerViewFooter.button.placeLinkOrEmbed': 'Inserir',
  'pickerViewFooter.button.import': 'Importar',
  'pickerViewFooter.checkbox.placeLink': 'Vinculado',
  'pickerViewFooter.tooltip.placeLink': 'Você só pode inserir este item como um ativo vinculado.',
  'pickerViewFooter.tooltip.placeEmbed': 'Você só pode inserir este item como incorporado.',
  'pickerViewFooter.saveAs.format.label': 'Formato',
  'pickerViewFooter.button.selectProject': 'Salvar',
  'onboardingCdp.title': 'Você pode fazer muito mais se salvar como um documento na nuvem',
  'onboardingCdp.tooltip': 'Se você salvar em seu computador, não poderá usar os recursos da nuvem.',
  'onboardingCdp.tooltip.link': 'Saiba mais',
  'onboardingCdp.table.header.saveToCloud': 'Creative Cloud',
  'onboardingCdp.table.header.saveToLocal': 'Em seu computador',
  'onboardingCdp.button.saveToCloud': 'Salvar na Creative Cloud',
  'onboardingCdp.feature.offline': 'Acesso off-line',
  'onboardingCdp.feature.syncing': 'Sincronização na nuvem para todos os seus dispositivos',
  'onboardingCdp.feature.autosave': 'Salvando automaticamente todas as alterações',
  'onboardingCdp.feature.versionHistory': 'Histórico da versão',
  'onboardingCdp.feature.inviteToEdit': 'Convidar para editar',
  'onboardingCdp.button.saveToLocal': 'Salvar no computador',
  'onboardingCdp.checkbox.doNotShowAgain': 'Não mostrar novamente',
  'uap.title.place': 'Inserir a partir da Creative Cloud',
  'uap.title.import': 'Inserir a partir da Creative Cloud',
  'uap.title.placeLinkOrEmbed': 'Inserir a partir da Creative Cloud',
  'uap.title.linkAssets': 'Vincular a partir da Creative Cloud',
  'uap.title.open': 'Abrir a partir da Creative Cloud',
  'uap.title.relink': 'Vincular a partir da Creative Cloud',
  'uap.title.saveAs': 'Salvar na Creative Cloud',
  'uap.title.saveAsCopy': 'Salvar na Creative Cloud',
  'uap.title.saveToFolder': 'Salvar na Creative Cloud',
  'uap.title.export': 'Exportar para a Creative Cloud',
  'uap.title.copy': 'Copiar na Creative Cloud',
  'uap.title.move': 'Mover na Creative Cloud',
  'uap.title.moveToProject': 'Mover na Creative Cloud',
  'uap.title.copyToProject': 'Copiar na Creative Cloud',
  'uap.title.reference': 'Adicionar à Creative Cloud',
  'uap.title.selectProject': 'Salvar na Creative Cloud',
  'move.toSpace.confirm.title': 'O histórico da versão será excluído',
  'move.toSpace.confirm.message': 'Mover este arquivo fará com que o histórico de versões seja excluído. Se desejar manter seu histórico de versões, faça uma cópia.'
};

/***/ }),

/***/ "5T2Y":
/***/ (function(module, exports) {

// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
var global = module.exports = typeof window != 'undefined' && window.Math == Math ? window : typeof self != 'undefined' && self.Math == Math ? self // eslint-disable-next-line no-new-func
: Function('return this')();
if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef

/***/ }),

/***/ "5Tg0":
/***/ (function(module, exports, __webpack_require__) {

/* WEBPACK VAR INJECTION */(function(module) {var root = __webpack_require__("Kz5y");
/** Detect free variable `exports`. */


var freeExports =  true && exports && !exports.nodeType && exports;
/** Detect free variable `module`. */

var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;
/** Detect the popular CommonJS extension `module.exports`. */

var moduleExports = freeModule && freeModule.exports === freeExports;
/** Built-in value references. */

var Buffer = moduleExports ? root.Buffer : undefined,
    allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;
/**
 * Creates a clone of  `buffer`.
 *
 * @private
 * @param {Buffer} buffer The buffer to clone.
 * @param {boolean} [isDeep] Specify a deep clone.
 * @returns {Buffer} Returns the cloned buffer.
 */

function cloneBuffer(buffer, isDeep) {
  if (isDeep) {
    return buffer.slice();
  }

  var length = buffer.length,
      result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);
  buffer.copy(result);
  return result;
}

module.exports = cloneBuffer;
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("YuTi")(module)))

/***/ }),

/***/ "5VEf":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = TabLine;

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function TabLine({
  orientation,
  selectedTab,
  lineStyle
}) {
  return /*#__PURE__*/_react.default.createElement("div", {
    className: "spectrum-Tabs-selectionIndicator",
    role: "presentation",
    style: lineStyle
  });
}

/***/ }),

/***/ "5ZOl":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return redirectDomainForFile; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return open; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return openWith; });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _react_react_spectrum_Icon__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("trqI");
/* harmony import */ var _react_react_spectrum_Icon__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Icon__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _react_react_spectrum_Icon_OpenIn__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("yhrW");
/* harmony import */ var _react_react_spectrum_Icon_OpenIn__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Icon_OpenIn__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _react_react_spectrum_Icon_Illustrator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("Q1Ew");
/* harmony import */ var _react_react_spectrum_Icon_Illustrator__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Icon_Illustrator__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _react_react_spectrum_Icon_Photoshop__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("jVwZ");
/* harmony import */ var _react_react_spectrum_Icon_Photoshop__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Icon_Photoshop__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var _hosts_Host__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("Dy/p");
/* harmony import */ var _hosts_HostId__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("m3S7");
/* harmony import */ var _hosts_UXPHost__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("QBvS");
/* harmony import */ var _stores_Settings__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("5u1M");
/* harmony import */ var _utils_launchDocInfo__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__("5hQx");
/* harmony import */ var _utils_urls__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__("/YLX");
/* harmony import */ var _utils_libraryUtils__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__("5L/2");



// Monochrome icons, looking for full-color variants in RS2 (TBD)









const DCXMimeTypes = {
    [_hosts_HostId__WEBPACK_IMPORTED_MODULE_6__[/* HostId */ "a"].PS]: _utils_libraryUtils__WEBPACK_IMPORTED_MODULE_11__[/* MIMETYPE */ "c"].PS_CLOUD_DOCUMENT,
};
const getMimetypeObjects = (elements) => elements.map(element => ({ mimetype: element.type }));
/**
 * Determine the web app that will render the content.
 * This is used when the host app doesn't natively support the content.
 * - Ps Web (Charlotte) will render Ps cloud docs
 * - Ai web (Venus) will render Ai cloud docs (post-MAX?)
 * - Assets web will render all other file types
 *
 * @param {string} type - The mimetype for the file
 * @returns {string} The domain to open the file in.
 */
function redirectDomainForFile(type) {
    let endpoint = _stores_Settings__WEBPACK_IMPORTED_MODULE_8__[/* settings */ "b"].config.ASSETS_WEB;
    if (type === DCXMimeTypes[_hosts_HostId__WEBPACK_IMPORTED_MODULE_6__[/* HostId */ "a"].PS]) {
        endpoint = _stores_Settings__WEBPACK_IMPORTED_MODULE_8__[/* settings */ "b"].config.PSWEB_ENDPOINT;
    }
    else if (type === DCXMimeTypes[_hosts_HostId__WEBPACK_IMPORTED_MODULE_6__[/* HostId */ "a"].AI]) {
        endpoint = _stores_Settings__WEBPACK_IMPORTED_MODULE_8__[/* settings */ "b"].config.AIWEB_ENDPOINT;
    }
    return endpoint;
}
async function handleOpenInCCWebApp(elements) {
    const { id, type } = elements[0];
    const endpoint = redirectDomainForFile(type);
    if (endpoint && id) {
        const url = `${endpoint}/id/${id}`;
        Object(_utils_urls__WEBPACK_IMPORTED_MODULE_10__[/* openExternalLink */ "k"])(url, true);
    }
}
const checkCCWebActionVisibility = appCode => ({ selectedElements }) => selectedElements.every(element => element.type === DCXMimeTypes[appCode]);
const checkOpenVisibility = (selectionStore, filter) => {
    if (_hosts_Host__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"].isOpenAvailable) {
        const files = getMimetypeObjects(selectionStore.selectedElements);
        return _hosts_Host__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"].isOpenAvailable(files);
    }
    else if (_hosts_Host__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"] instanceof _hosts_UXPHost__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"]) {
        const files = selectionStore.selectedElements;
        return files.every(({ fileExtension, type }) => (filter === null || filter === void 0 ? void 0 : filter.includes(type)) || (filter === null || filter === void 0 ? void 0 : filter.includes(fileExtension)));
    }
    return false;
};
const checkOpenWithVisibility = selectionStore => {
    if (_hosts_Host__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"].isOpenWithAvailable) {
        const files = getMimetypeObjects(selectionStore.selectedElements);
        return _hosts_Host__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"].isOpenWithAvailable(files);
    }
    else {
        return (checkCCWebActionVisibility(_hosts_HostId__WEBPACK_IMPORTED_MODULE_6__[/* HostId */ "a"].PS)(selectionStore) ||
            checkCCWebActionVisibility(_hosts_HostId__WEBPACK_IMPORTED_MODULE_6__[/* HostId */ "a"].AI)(selectionStore));
    }
};
const openPSWeb = (app) => {
    return {
        icon: react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_react_react_spectrum_Icon_Photoshop__WEBPACK_IMPORTED_MODULE_4___default.a, null),
        value: 'openPSWeb',
        label: 'product.photoshop.web',
        isVisible: checkCCWebActionVisibility(_hosts_HostId__WEBPACK_IMPORTED_MODULE_6__[/* HostId */ "a"].PS),
        execute: handleOpenInCCWebApp,
        getIsButtonDisabled: () => app.showOfflineWithFeatureFlag,
    };
};
const openAIWeb = (app) => {
    return {
        icon: react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_react_react_spectrum_Icon_Illustrator__WEBPACK_IMPORTED_MODULE_3___default.a, null),
        value: 'openAIWeb',
        label: 'product.illustrator.web',
        isVisible: checkCCWebActionVisibility(_hosts_HostId__WEBPACK_IMPORTED_MODULE_6__[/* HostId */ "a"].AI),
        execute: handleOpenInCCWebApp,
        getIsButtonDisabled: () => app.showOfflineWithFeatureFlag,
    };
};
const handleOpenDocuments = (elements, sapcode) => {
    const artifacts = elements.filter(element => element.isArtifact);
    const nonArtifacts = elements.filter(element => !element.isArtifact);
    const documents = nonArtifacts.reduce((docs, element) => {
        const doc = Object(_utils_launchDocInfo__WEBPACK_IMPORTED_MODULE_9__[/* default */ "a"])(element);
        return doc ? [...docs, doc] : docs;
    }, []);
    if (documents.length) {
        _hosts_Host__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"].openDocuments(documents, sapcode);
    }
    if (artifacts.length) {
        artifacts.forEach(async (element) => {
            const getArtifactUrl = async () => {
                await element.getXDCEItem();
                const artifactUrl = await element.getWeblink();
                if (!artifactUrl) {
                    throw new Error('Unable to open link');
                }
                return artifactUrl;
            };
            Object(_utils_urls__WEBPACK_IMPORTED_MODULE_10__[/* openExternalLinkInNewTab */ "l"])(getArtifactUrl);
        });
    }
};
const getOpenActions = (app, selectionStore) => {
    var _a;
    const openOptions = [];
    const element = selectionStore.selectedElements[0];
    const mimetype = element.type;
    if (mimetype) {
        const availableApps = (_a = _hosts_Host__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"].getAppsByMimeType) === null || _a === void 0 ? void 0 : _a.call(_hosts_Host__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"], mimetype);
        if (availableApps === null || availableApps === void 0 ? void 0 : availableApps.length) {
            for (const availableApp of availableApps) {
                const id = `openWithApp${availableApp.sapcode}`;
                const enabled = element.isAvailableOffline || !app.showOfflineWithFeatureFlag;
                openOptions.push({
                    execute: async (elements) => handleOpenDocuments(elements, availableApp.sapcode),
                    icon: (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_react_react_spectrum_Icon__WEBPACK_IMPORTED_MODULE_1___default.a, { size: "S" },
                        react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("img", { src: availableApp.icon }))),
                    isVisible: () => true,
                    label: availableApp.name,
                    supportsMultiple: true,
                    getIsButtonDisabled: () => !enabled,
                    value: id,
                });
            }
        }
    }
    return openOptions;
};
const open = (app, filter) => (selectionStore) => {
    const selectionIsAvailableOffline = selectionStore &&
        selectionStore.selectedElements &&
        selectionStore.selectedElements.every(element => element.isAvailableOffline);
    const enabled = selectionIsAvailableOffline || !app.showOfflineWithFeatureFlag;
    return {
        execute: async (elements) => handleOpenDocuments(elements),
        icon: react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_react_react_spectrum_Icon_OpenIn__WEBPACK_IMPORTED_MODULE_2___default.a, null),
        isVisible: ss => checkOpenVisibility(ss, filter),
        label: 'button.open',
        value: 'open',
        supportsMultiple: true,
        getIsButtonDisabled: () => !enabled,
    };
};
const openWith = (app) => (selectionStore) => {
    const children = _hosts_Host__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"].getAppsByMimeType
        ? getOpenActions(app, selectionStore)
        : [openPSWeb(app), openAIWeb(app)];
    return {
        children,
        execute: async () => {
            /* No-op, just here to prevent errors */
        },
        icon: react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_react_react_spectrum_Icon_OpenIn__WEBPACK_IMPORTED_MODULE_2___default.a, null),
        isVisible: checkOpenWithVisibility,
        label: 'button.openWith',
        value: 'openWith',
    };
};


/***/ }),

/***/ "5cqT":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("fwSh"),
      24: __webpack_require__("qr5y")
    }
  }));
};

WrappedIcon.displayName = 'UsersLock';
exports.default = WrappedIcon;

/***/ }),

/***/ "5e5i":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _AlertMedium = _interopRequireDefault(__webpack_require__("hr23"));

var _autobindDecorator = _interopRequireDefault(__webpack_require__("gKdT"));

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _Dialog = _interopRequireDefault(__webpack_require__("PxaR"));

var _propTypes = _interopRequireDefault(__webpack_require__("17x9"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

var _UxpDialogButtons = _interopRequireDefault(__webpack_require__("FWm0"));

var _UxpNativeDialog = _interopRequireDefault(__webpack_require__("QXXi"));

__webpack_require__("qkxD");

var _SpEventUtils = __webpack_require__("XU6Z");

const _excluded = ["children", "className", "confirmLabel", "title", "id"];

var _class, _class2, _temp;

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function ownKeys(object, enumerableOnly) {
  var keys = Object.keys(object);

  if (Object.getOwnPropertySymbols) {
    var symbols = Object.getOwnPropertySymbols(object);

    if (enumerableOnly) {
      symbols = symbols.filter(function (sym) {
        return Object.getOwnPropertyDescriptor(object, sym).enumerable;
      });
    }

    keys.push.apply(keys, symbols);
  }

  return keys;
}

function _objectSpread(target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i] != null ? arguments[i] : {};

    if (i % 2) {
      ownKeys(Object(source), true).forEach(function (key) {
        _defineProperty(target, key, source[key]);
      });
    } else if (Object.getOwnPropertyDescriptors) {
      Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
    } else {
      ownKeys(Object(source)).forEach(function (key) {
        Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
      });
    }
  }

  return target;
}

function _defineProperty(obj, key, value) {
  if (key in obj) {
    Object.defineProperty(obj, key, {
      value: value,
      enumerable: true,
      configurable: true,
      writable: true
    });
  } else {
    obj[key] = value;
  }

  return obj;
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

const VARIANT_ICONS = {
  error: _AlertMedium.default
};
let shouldUseSpDialog = null;
let spDialogHeight = null;
let spDialogWidth = null;
let derivedVariant = null;
let fullscreen = null;

let SpUxpNativeDialog = (0, _autobindDecorator.default)(_class = (_temp = _class2 = class SpUxpNativeDialog extends _Dialog.default {
  constructor(props) {
    super(props);
    fullscreen = this.props.mode === 'fullscreen' || this.props.mode === 'fullscreenTakeover';
    shouldUseSpDialog = !(fullscreen || this.props.isDismissible);
  }

  handleEvent(event) {
    const eventName = Object.keys(this.props).filter(propName => propName.substr(2).toLowerCase() === event.type);

    if (this.props[eventName]) {
      this.props[eventName].call(event.target, event);
    }
  }

  componentDidMount() {
    const {
      size
    } = this.props;

    if (this.spdialogElementRef && shouldUseSpDialog) {
      (0, _SpEventUtils.addEventListeners)(this.spdialogElementRef, this.props, this.handleEvent);

      if (size && size.width && size.height) {
        spDialogHeight = size.height;
        spDialogWidth = size.width;
      }

      this.spdialogElementRef.addEventListener('close', this.onDialogCloseEvent);
      this.spdialogElementRef.addEventListener('cancel', this.onDialogCancelEvent);
      this.spdialogElementRef.addEventListener('load', this.onDialogLoadEvent);
    }
  }

  componentWillUnmount() {
    if (this.spdialogElementRef && shouldUseSpDialog) {
      spDialogHeight = null;
      spDialogWidth = null;
      (0, _SpEventUtils.removeEventListeners)(this.spdialogElementRef, this.props, this.handleEvent);
      this.spdialogElementRef.removeEventListener('close', this.onDialogCloseEvent);
      this.spdialogElementRef.removeEventListener('cancel', this.onDialogCancelEvent);
      this.spdialogElementRef.removeEventListener('load', this.onDialogLoadEvent);
    }
  }

  onDialogCloseEvent() {
    this.spdialogElementRef = null;
  }

  onDialogCancelEvent() {
    this.spdialogElementRef = null;
  }

  onDialogLoadEvent() {
    if (this.props.onLoad) {
      this.props.onLoad();
    }
  }

  onConfirm(...args) {
    this._onAction(this.props.onConfirm, ...args);

    this.closeDialog();
  }

  onCancel() {
    this._onAction(this.props.onCancel);

    this.closeDialog();
  }

  closeDialog() {
    if (this.spdialogElementRef && shouldUseSpDialog) {
      this.spdialogElementRef.open = null;
    }
  }

  render() {
    const _this$props = this.props,
          {
      children,
      className = '',
      confirmLabel,
      title,
      id = this.dialogId
    } = _this$props,
          otherProps = _objectWithoutProperties(_this$props, _excluded);

    delete otherProps.onLoad;
    derivedVariant = this.props.variant || (this.props.cancelLabel && this.props.confirmLabel ? 'confirmation' : 'information');
    let Icon = VARIANT_ICONS[derivedVariant];

    if (shouldUseSpDialog) {
      return /*#__PURE__*/_react.default.createElement("sp-dialog", _extends({
        id: id,
        ref: el => this.spdialogElementRef = el,
        defaultpreventedkeys: ['Escape'],
        "size-height": spDialogHeight,
        "size-width": spDialogWidth,
        open: this.props.open ? true : null,
        onConfirm: this.onConfirm,
        onCancel: this.onCancel,
        class: className
      }, this.otherProps), title && /*#__PURE__*/_react.default.createElement("div", {
        slot: "title"
      }, title), Icon && /*#__PURE__*/_react.default.createElement("div", {
        slot: "icon"
      }, /*#__PURE__*/_react.default.createElement(Icon, {
        className: (0, _classnames.default)('spectrum-error-icon'),
        size: null
      })), /*#__PURE__*/_react.default.createElement("div", {
        slot: "description",
        id: `${id}-content`
      }, children), /*#__PURE__*/_react.default.createElement("div", {
        slot: "buttongroup"
      }, confirmLabel && /*#__PURE__*/_react.default.createElement(_UxpDialogButtons.default, _extends({}, this.props, {
        variant: derivedVariant,
        onConfirm: this.onConfirm,
        onCancel: this.onCancel
      }))));
    }

    return /*#__PURE__*/_react.default.createElement(_UxpNativeDialog.default, this.props);
  }

}, _class2.propTypes = _objectSpread(_objectSpread({}, _Dialog.default.propTypes), {}, {
  /**
   * When custom size for modal is required to render long-content
   */
  size: _propTypes.default.objectOf({
    width: _propTypes.default.number,
    height: _propTypes.default.number
  })
}), _temp)) || _class;

exports.default = SpUxpNativeDialog;

/***/ }),

/***/ "5hQx":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return getLaunchDocInfo; });
function getLaunchDocInfo(element, spaceInfo) {
    const assetRef = element.assetRef;
    if (assetRef) {
        return {
            assetRefStr: assetRef,
            uri: assetRef,
            isBundled: false,
            cloudUri: element.id,
            localID: undefined,
            cloudID: element.id,
            path: element.path,
            mimetype: element.type,
            confirmAccess: false,
            displayName: element.name,
            spaceInfo,
            renditionUrl: element.rendition,
        };
    }
}


/***/ }),

/***/ "5ltv":
/***/ (function(module) {

module.exports = JSON.parse("{\"steps\":\"第 {currentStep} 步（共 {totalSteps} 步）\"}");

/***/ }),

/***/ "5ndN":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return getResponseArrayBuffer; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return getBaseDirForPath; });
/* unused harmony export ensureWindowsCorrectedPath */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return UXPHelpers; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return getId; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return getFileURIForPath; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return allSettled; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return logUnhandledErrors; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "i", function() { return timeout; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return getSupportedTheme; });
/* harmony import */ var _LoggerWrapper_Logger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("43WE");
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
/*
 * Set of testable utility methods for UXP that are not coupled to any application code
 */

const _logger = _LoggerWrapper_Logger__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].get('CommonUtils');
/**
 * UXP polyfill for response.arrayBuffer() https://developer.mozilla.org/en-US/docs/Web/API/Body/arrayBuffer
 */
function getResponseArrayBuffer(url, authorizationParams) {
    return new Promise((resolve, reject) => {
        const xhr = new XMLHttpRequest();
        xhr.open('get', url);
        if (authorizationParams) {
            const { clientId, getAccessToken } = authorizationParams;
            xhr.setRequestHeader('x-api-key', clientId);
            xhr.setRequestHeader('Authorization', `Bearer ${getAccessToken()}`);
        }
        xhr.responseType = 'arraybuffer';
        xhr.onreadystatechange = function () {
            if (xhr.readyState === 4 && xhr.status !== 200) {
                reject(xhr.statusText);
            }
        };
        xhr.onloadend = () => {
            resolve(xhr.response);
        };
        xhr.send();
    });
}
function getBaseDirForPath(fullPath) {
    if (!fullPath) {
        return '';
    }
    // In the future this should be replaced by window.require('path).dirname(fullPath)
    // or similar API once UXP exposes it
    const pathSeparator = UXPHelpers.isWindows ? '\\' : '/';
    // [HOTFIX] Handle reversed paths for windows
    fullPath = ensureWindowsCorrectedPath(fullPath);
    return `${fullPath.substring(0, fullPath.lastIndexOf(pathSeparator))}${pathSeparator}`;
}
function ensureWindowsCorrectedPath(fullPath) {
    if (UXPHelpers.isWindows && UXPHelpers.isWinPathWithReversedFileSeparator(fullPath)) {
        return fullPath.replace(/\//g, '\\');
    }
    else {
        return fullPath;
    }
}
const isWinPlatform = RegExp(/^win/);
const isWinPathWithReversedFileSeparator = RegExp(/(^C:\/|^[a-zA-Z]:\/)/); // handle alternative win drive letters
const isWinUNCFilePath = RegExp(/^(\\\\)/);
const isEmptyDataURIImage = RegExp(/data:image\/(\w+);base64,$/);
const UXPHelpers = {
    get isUXP() {
        return navigator.userAgent.indexOf('UXP') > -1;
    },
    get osVersion() {
        return this.isUXP ? window.require('os').release() : 'Unknown';
    },
    get isWindows() {
        return isWinPlatform.test(navigator.platform);
    },
    isWinPathWithReversedFileSeparator(path) {
        return this.isWindows && isWinPathWithReversedFileSeparator.test(path);
    },
    isWinUNCFilePath(path) {
        return this.isWindows && isWinUNCFilePath.test(path);
    },
    isEmptyDataURIImage(uri) {
        return isEmptyDataURIImage.test(uri);
    },
};
// Extract a model id from the _model._path entry of an AEM model
const getId = str => { var _a; return str && ((_a = /[^/]*$/.exec(str)) !== null && _a !== void 0 ? _a : [])[0]; };
/**
 * Return cross-platform URI for local file paths
 * @param filePath
 */
function getFileURIForPath(filePath) {
    try {
        return new URL('file://' + ensureWindowsCorrectedPath(filePath)).href;
    }
    catch (e) {
        _logger.error(`getFileURIForPath: error trying to create URL for ${filePath}`, e);
    }
    return '';
}
/**
 * Lightweight polyfill for Promise.allSettled that waits for all
 * tasks to complete despite errors.
 * @param tasks List of tasks to run
 */
function allSettled(tasks, onError) {
    return Promise.all(tasks.map((task, index) => task.catch(e => {
        _logger.error(e);
        if (onError) {
            onError(index, e);
        }
    })));
}
/**
 * Log rejections and errors on disk.
 */
function logUnhandledErrors() {
    // TODO: send them to ingest
    window.addEventListener('error', e => {
        _logger.log('Unhandled Event', JSON.stringify(e, null, 2));
    });
}
/**
 * Async version of setTimeout.
 * @param time time in milliseconds
 */
async function timeout(time) {
    return new Promise(resolve => setTimeout(resolve, time));
}
function getSupportedTheme(theme) {
    return ['light', 'lightest'].some(el => el === theme) ? 'light' : 'dark';
}


/***/ }),

/***/ "5r/s":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
Object.defineProperty(exports, "List", {
  enumerable: true,
  get: function () {
    return _List.default;
  }
});
exports.ListItem = void 0;

var _UxpOptions = _interopRequireDefault(__webpack_require__("zvwv"));

var _List = _interopRequireDefault(__webpack_require__("xqFA"));

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}
/*************************************************************************
* ADOBE CONFIDENTIAL
* ___________________
*
* Copyright 2020 Adobe
* All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains
* the property of Adobe and its suppliers, if any. The intellectual
* and technical concepts contained herein are proprietary to Adobe
* and its suppliers and are protected by all applicable intellectual
* property laws, including trade secret and copyright laws.
* Dissemination of this information or reproduction of this material
* is strictly forbidden unless prior written permission is obtained
* from Adobe.
**************************************************************************/


const ListItem = _UxpOptions.default.select('ListItem', () => __webpack_require__("sPAq"), () => __webpack_require__("/8IZ"));

exports.ListItem = ListItem;

/***/ }),

/***/ "5rC4":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return RECENT_DOCUMENT_UPDATED; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return FILE_POSSIBLY_CHANGED; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return RecentsRefreshManager; });
/* harmony import */ var _EventEmitter__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("/XAQ");
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/

const RECENT_DOCUMENT_UPDATED = 'recentDocumentUpdated';
const FILE_POSSIBLY_CHANGED = 'filePossiblyChanged';
class RecentsRefreshManager extends _EventEmitter__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"] {
    constructor() {
        super();
        this.recentDocuments = [];
        this.dispatchPending = false;
        this.recentFilesUpdated = (doc, eventName) => {
            if (eventName === 'modified') {
                if (!doc.repository_id || !doc.path) {
                    // we are only looking at spaces documents.
                    return;
                }
                if (!this.recentDocuments.some(item => doc.cloud_id ? doc.cloud_id === item.cloud_id : doc.path === item.path)) {
                    this.recentDocuments.push(doc);
                }
                this.dispatchEventsIfNeeded();
            }
            else if (eventName === 'accessed') {
                // Recents are based on access date, rather than modified date.
                // This means if the recents list has changed it does not mean the file is actually
                // modified. Also, XD is not providing enough information to us to detect what is the file to be updated.
                // For now, we will only update the currently visible folder with a 5s debounce.
                if (!doc.cloud_id) {
                    return;
                }
                if (this.dispatchPending) {
                    return;
                }
                // Send the event immediately, Spaces will at most update the folder once per minute
                this.emit(FILE_POSSIBLY_CHANGED);
            }
        };
    }
    dispatchEventsIfNeeded() {
        if (this.dispatchPending) {
            return;
        }
        // Debouncing events for 2 seconds, to send as few events as possible to spaces.
        const TWO_SECONDS = 2000;
        this.dispatchPending = true;
        setTimeout(() => {
            this.dispatchPending = false;
            const elements = this.recentDocuments;
            this.recentDocuments = [];
            elements.forEach(element => this.emit(RECENT_DOCUMENT_UPDATED, element));
        }, TWO_SECONDS);
    }
}


/***/ }),

/***/ "5sgQ":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("2vnA");
/* harmony import */ var _ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("iMIL");
/* harmony import */ var _ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _ccx_public_acpl_model_mobx_ACPLTypes__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("x2z8");
/* harmony import */ var _ccx_public_acpl_model_mobx_ACPLTypes__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_ccx_public_acpl_model_mobx_ACPLTypes__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("C0qj");
/* harmony import */ var _types_IAssetModel__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("avlf");
/* harmony import */ var _types_IAssetModel__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_types_IAssetModel__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var _AssetModel_ACPFetchAssetModel__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("lnG/");
/* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("+Ots");
/* harmony import */ var _utils_Logger__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("lmMR");
/* harmony import */ var _AssetModel_LocalAssetModel__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("UApw");
/* harmony import */ var _utils_sam_utils__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__("O7FO");
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;
};
var __metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2019 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/










class RecentStore {
    constructor(config) {
        this.logger = new _utils_Logger__WEBPACK_IMPORTED_MODULE_7__[/* Logger */ "a"](this.constructor.name);
        this.cloudURLProtocol = '';
        this.fetchRecentsState = _constants__WEBPACK_IMPORTED_MODULE_3__[/* ProcessingState */ "n"].Pending;
        this.firstFetch = true;
        this.recents = [];
        this.shouldRestartFetch = false;
        this.cloudDocumentsClient = undefined;
        Object.assign(this, config);
    }
    static create(config) {
        return new RecentStore(config);
    }
    /**
     * Components that use React-virtualized should use `recentDocs` instead of `recents`, because React-virtualized
     * does shallow comparison of props when deciding when to re-render. This `recentDocs` view creates a new array
     * whenever `recents` changes, which React-virtualized detects as a change and triggers a re-render.
     */
    get recentDocs() {
        return this.recents.concat();
    }
    initSAMAssetContext(assetContext) {
        this.SAMAssetContext = assetContext;
    }
    initClients(cloudDocumentsClient) {
        this.cloudDocumentsClient = cloudDocumentsClient;
    }
    setFetchRecentsState(newState) {
        this.fetchRecentsState = newState;
    }
    setShouldRestartFetch(shouldRestartFetch) {
        this.shouldRestartFetch = shouldRestartFetch;
    }
    addRecentDocument(newDoc) {
        this.recents.push(newDoc);
    }
    shouldUpdateRecents(newRecents) {
        if (!this.recents || this.recents.length !== newRecents.length) {
            return true;
        }
        const curIds = this.recents.map((doc) => doc.path || doc.cloudUri || doc.localUri || doc.id);
        const newIds = newRecents.map((doc) => doc.path || doc.cloudUri || doc.localUri || doc.id);
        return JSON.stringify(curIds) !== JSON.stringify(newIds);
    }
    // @ts-ignore -- https://jira.corp.adobe.com/browse/CCXCD-9019
    fetchRecentsSuccess(recents, getPreviewRenditionCallback) {
        if (recents) {
            if (this.shouldUpdateRecents(recents)) {
                this.recents = [];
                recents.forEach(doc => {
                    this.addRecentDocument(doc);
                    const { type } = doc;
                    if (type === 'local' || type === 'recovered') {
                        doc.getLocalRendition && doc.getLocalRendition(getPreviewRenditionCallback);
                    }
                    else {
                        doc.getRendition && doc.getRendition();
                    }
                });
            }
            else {
                // Update the latest, if it changed
                const oldLatest = this.recents.length && this.recents[0];
                const newLatest = recents[0];
                if (oldLatest &&
                    newLatest &&
                    oldLatest.modifiedDate.getTime() !== newLatest.modifiedDate.getTime()) {
                    this.recents[0] = newLatest;
                    const latest = this.recents[0];
                    if (latest.type === 'local' || latest.type === 'recovered') {
                        latest.getLocalRendition &&
                            latest.getLocalRendition(getPreviewRenditionCallback);
                    }
                    else {
                        latest.getRendition && latest.getRendition();
                    }
                }
            }
        }
        this.setFetchRecentsState(_constants__WEBPACK_IMPORTED_MODULE_3__[/* ProcessingState */ "n"].Done);
    }
    fetchRecentsError(error) {
        this.logger.error('Failed to fetch recents', error);
        this.setShouldRestartFetch(false);
        this.setFetchRecentsState(_constants__WEBPACK_IMPORTED_MODULE_3__[/* ProcessingState */ "n"].Error);
    }
    async waitForInitialization() {
        await Object(mobx__WEBPACK_IMPORTED_MODULE_0__[/* when */ "I"])(() => this.isClientInitialized);
    }
    get isClientInitialized() {
        const samReadyIfNeeded = !this.enableSAM || Boolean(this.SAMAssetContext);
        return samReadyIfNeeded;
    }
    async fetchRecents(options) {
        if (this.fetchRecentsState === _constants__WEBPACK_IMPORTED_MODULE_3__[/* ProcessingState */ "n"].Fetching) {
            // Already fetching. Set flag to restart when done.
            // See CCXCD-1023. Multiple back-to-back calls can occur, particularly on Win, which may mean
            // we're still fetching when the MRU has settled. Set a flag to refetch so we don't miss the updated
            // MRU list.
            this.setShouldRestartFetch(true);
            return Promise.resolve();
        }
        this.setFetchRecentsState(_constants__WEBPACK_IMPORTED_MODULE_3__[/* ProcessingState */ "n"].Fetching);
        await this.waitForInitialization();
        try {
            const results = await this.getRecents(options, this.cloudURLProtocol);
            this.fetchRecentsSuccess(results, options.getPreviewRenditionCallback);
            if (this.shouldRestartFetch) {
                this.setShouldRestartFetch(false);
                this.fetchRecents(options);
            }
        }
        catch (e) {
            this.fetchRecentsError(e);
        }
        this.firstFetch = false;
    }
    /**
     * Gets a list of recent cloud & local documents
     * @param {IRecentsQueryOptions} options
     * @param cloudURLProtocol
     * @returns {Promise<DocumentElement[]>}
     */
    async getRecents(options, cloudURLProtocol, analyticsData) {
        try {
            const sanitizeProtocol = cloudURLProtocol !== 'https://' ? cloudURLProtocol : '';
            let includesCloudDocs = false;
            const recents = (await options.getLocalRecents());
            const now = new Date(Date.now()); // Explicit constructor with Date.now() is easier to mock
            // TODO: fix type checking https://jira.corp.adobe.com/browse/CCXCD-9019
            const docKey = (doc) => doc.isCloudDoc ? _utils_utils__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"].sanitizeCloudDocPath(doc.url, sanitizeProtocol) : doc.url;
            // TODO: fix type checking https://jira.corp.adobe.com/browse/CCXCD-9019
            const spaceInfo = (doc) => {
                try {
                    // UXP URL().searchParams is broken (UXP-19246), so generate them manually
                    const params = new URLSearchParams(new URL(doc.url).search);
                    return params && params.has('spaceName')
                        ? {
                            spaceName: params.get('spaceName'),
                            repoId: params.get('repoID'),
                            spaceId: params.get('spaceId'),
                            spaceColor: params.get('spaceColor'),
                            outputFolder: params.get('outputFolder'),
                        }
                        : undefined;
                }
                catch (_a) {
                    return undefined;
                }
            };
            const docsMap = {};
            recents.forEach(doc => {
                const localDoctype = doc.recoveredDate ? 'recovered' : 'local';
                // default to local doc
                const defaultOptions = {
                    id: doc.url,
                    localUri: doc.url,
                    stableUri: doc.url,
                    path: doc.path || doc.url,
                    title: decodeURIComponent(doc.title).normalize('NFC'),
                    modifiedDate: now,
                    // TODO replace with lastAccessed once XD pipes it back to us
                    // https://jira.corp.adobe.com/browse/CCX-3366
                    repoModifiedDate: now,
                    accessDate: now,
                    createDate: now,
                    recoveredDate: doc.recoveredDate,
                    type: localDoctype,
                    docState: _ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_1__["DocumentState"].active,
                    space: spaceInfo(doc),
                };
                const key = docKey(doc);
                if (doc.isCloudDoc) {
                    // add metadata to non-local docs that works for SWY docs
                    includesCloudDocs = true;
                    // @ts-ignore -- TODO https://jira.corp.adobe.com/browse/CCXCD-9019
                    docsMap[key] = {
                        ...defaultOptions,
                        cloudUri: key,
                        localUri: key,
                        stableUri: key,
                        // [mm] this renditionTemplate will break if the `key`
                        // returned is acutally a stable ID....
                        renditionTemplate: `${key}/:rendition{?page,size.version}`,
                        type: '',
                    };
                }
                else {
                    // @ts-ignore
                    docsMap[key] = new _AssetModel_LocalAssetModel__WEBPACK_IMPORTED_MODULE_8__[/* default */ "a"](defaultOptions);
                }
            });
            if (includesCloudDocs && this.isUsingACPL) {
                if (this.enableSAM) {
                    // fetch individual matching sam docs
                    // eslint-disable-next-line no-restricted-syntax
                    for (const doc of recents) {
                        if (!doc.isCloudDoc) {
                            // eslint-disable-next-line no-continue
                            continue;
                        }
                        const key = docKey(doc);
                        const urn = _utils_utils__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"].extractUrn(doc.url);
                        // @ts-ignore -- TODO https://jira.corp.adobe.com/browse/CCXCD-9019
                        const isSpaceAsset = docsMap[key].space !== undefined;
                        try {
                            const asset = await Object(_utils_sam_utils__WEBPACK_IMPORTED_MODULE_9__[/* getAssetModelWithUnknownAssetID */ "d"])(this.SAMAssetContext, urn);
                            if (isSpaceAsset) {
                                // @ts-ignore -- TODO https://jira.corp.adobe.com/browse/CCXCD-9019
                                asset.setSpace(docsMap[key].space);
                            }
                            // @ts-ignore
                            docsMap[key] = asset;
                        }
                        catch (e) {
                            this.logger.error(`Failed to fetch asset with urn: ${urn}`, e);
                        }
                    }
                }
                else {
                    // fetch from acp-fetch & match
                    const results = await this.cloudDocumentsClient.getDocuments({
                        acplMode: _ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_1__["AcplSearchMode"].OFFLINE_ONLY,
                    }, analyticsData);
                    const docsMapKeys = Object.keys(docsMap);
                    const acpf = new _ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_1__["ACPFetch"]();
                    results.docs.forEach(doc => {
                        // TODO: make acplCompareUriStrings static
                        const matchingKey = docsMapKeys.find(key => acpf.acplCompareUriStrings(doc.stableUri, key));
                        if (matchingKey) {
                            // @ts-ignore -- TODO: https://jira.corp.adobe.com/browse/CCXCD-9019
                            doc.space = docsMap[matchingKey].space;
                            // @ts-ignore -- TODO: https://jira.corp.adobe.com/browse/CCXCD-9019
                            docsMap[matchingKey] = doc;
                            // @ts-ignore -- TODO: https://jira.corp.adobe.com/browse/CCXCD-9019
                        }
                        else if (docsMap[doc.cloudUri]) {
                            // Might this be a cloudUri, in the SWY case?
                            // @ts-ignore -- TODO: https://jira.corp.adobe.com/browse/CCXCD-9019
                            doc.space = docsMap[doc.cloudUri].space;
                            // @ts-ignore -- TODO: https://jira.corp.adobe.com/browse/CCXCD-9019
                            docsMap[doc.cloudUri] = doc;
                        }
                    });
                    // eslint-disable-next-line no-restricted-syntax
                    for (const [k, v] of Object.entries(docsMap)) {
                        if (!(v instanceof _AssetModel_LocalAssetModel__WEBPACK_IMPORTED_MODULE_8__[/* default */ "a"])) {
                            // @ts-ignore -- TODO: https://jira.corp.adobe.com/browse/CCXCD-9019
                            docsMap[k] = new _AssetModel_ACPFetchAssetModel__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"](v, this.cloudDocumentsClient, () => { });
                        }
                    }
                }
            }
            // @ts-ignore -- TODO: https://jira.corp.adobe.com/browse/CCXCD-9019
            const finalRecents = [];
            recents.forEach(doc => {
                const key = docKey(doc);
                // @ts-ignore
                if (docsMap[key] && !docsMap[key].isArchived) {
                    // @ts-ignore -- TODO: https://jira.corp.adobe.com/browse/CCXCD-9019
                    finalRecents.push(docsMap[key]);
                }
            });
            // @ts-ignore -- TODO: https://jira.corp.adobe.com/browse/CCXCD-9019
            return finalRecents;
        }
        catch (error) {
            this.logger.error('[getRecents] Error trying to retrieve recents', error);
            return [];
        }
    }
}
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", String)
], RecentStore.prototype, "cloudURLProtocol", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", typeof (_a = typeof _constants__WEBPACK_IMPORTED_MODULE_3__[/* ProcessingState */ "n"] !== "undefined" && _constants__WEBPACK_IMPORTED_MODULE_3__[/* ProcessingState */ "n"]) === "function" ? _a : Object)
], RecentStore.prototype, "fetchRecentsState", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", Boolean)
], RecentStore.prototype, "firstFetch", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", Array)
], RecentStore.prototype, "recents", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", Boolean)
], RecentStore.prototype, "shouldRestartFetch", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", typeof (_b = typeof _ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_1__["CloudDocumentsClient"] !== "undefined" && _ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_1__["CloudDocumentsClient"]) === "function" ? _b : Object)
], RecentStore.prototype, "cloudDocumentsClient", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", typeof (_c = typeof _ccx_public_acpl_model_mobx_ACPLTypes__WEBPACK_IMPORTED_MODULE_2__["IACPLAssetContext"] !== "undefined" && _ccx_public_acpl_model_mobx_ACPLTypes__WEBPACK_IMPORTED_MODULE_2__["IACPLAssetContext"]) === "function" ? _c : Object)
], RecentStore.prototype, "SAMAssetContext", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Array),
    __metadata("design:paramtypes", [])
], RecentStore.prototype, "recentDocs", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [typeof (_d = typeof _ccx_public_acpl_model_mobx_ACPLTypes__WEBPACK_IMPORTED_MODULE_2__["IACPLAssetContext"] !== "undefined" && _ccx_public_acpl_model_mobx_ACPLTypes__WEBPACK_IMPORTED_MODULE_2__["IACPLAssetContext"]) === "function" ? _d : Object]),
    __metadata("design:returntype", void 0)
], RecentStore.prototype, "initSAMAssetContext", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [typeof (_e = typeof _ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_1__["CloudDocumentsClient"] !== "undefined" && _ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_1__["CloudDocumentsClient"]) === "function" ? _e : Object]),
    __metadata("design:returntype", void 0)
], RecentStore.prototype, "initClients", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [typeof (_f = typeof _constants__WEBPACK_IMPORTED_MODULE_3__[/* ProcessingState */ "n"] !== "undefined" && _constants__WEBPACK_IMPORTED_MODULE_3__[/* ProcessingState */ "n"]) === "function" ? _f : Object]),
    __metadata("design:returntype", void 0)
], RecentStore.prototype, "setFetchRecentsState", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [Boolean]),
    __metadata("design:returntype", void 0)
], RecentStore.prototype, "setShouldRestartFetch", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [typeof (_g = typeof _types_IAssetModel__WEBPACK_IMPORTED_MODULE_4___default.a !== "undefined" && _types_IAssetModel__WEBPACK_IMPORTED_MODULE_4___default.a) === "function" ? _g : Object]),
    __metadata("design:returntype", void 0)
], RecentStore.prototype, "addRecentDocument", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [Array]),
    __metadata("design:returntype", Boolean)
], RecentStore.prototype, "shouldUpdateRecents", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [Array, Object]),
    __metadata("design:returntype", void 0)
], RecentStore.prototype, "fetchRecentsSuccess", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [typeof (_h = typeof Error !== "undefined" && Error) === "function" ? _h : Object]),
    __metadata("design:returntype", void 0)
], RecentStore.prototype, "fetchRecentsError", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", []),
    __metadata("design:returntype", Promise)
], RecentStore.prototype, "waitForInitialization", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [])
], RecentStore.prototype, "isClientInitialized", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [typeof (_j = typeof _ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_1__["IRecentsQueryOptions"] !== "undefined" && _ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_1__["IRecentsQueryOptions"]) === "function" ? _j : Object]),
    __metadata("design:returntype", Promise)
], RecentStore.prototype, "fetchRecents", null);
/* harmony default export */ __webpack_exports__["a"] = (RecentStore);


/***/ }),

/***/ "5u1M":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return LogLevels; });
/* unused harmony export default */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return settings; });
/* harmony import */ var _SharedStore__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("jmEq");
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2020 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/

var LogLevels;
(function (LogLevels) {
    LogLevels["error"] = "error";
    LogLevels["group"] = "group";
    LogLevels["groupCollapsed"] = "groupCollapsed";
    LogLevels["groupEnd"] = "groupEnd";
    LogLevels["info"] = "info";
    LogLevels["log"] = "log";
    LogLevels["warn"] = "warn";
})(LogLevels || (LogLevels = {}));
class Settings {
    constructor() {
        // Routing all console logs so that we can silence it on prod,
        // we'll move away from console logging and use ingest instead (TBD)
        this.logger = console;
    }
    // stores will share data between Projects component instances,
    // even when they're nested inside CDP.
    get config() {
        return _SharedStore__WEBPACK_IMPORTED_MODULE_0__[/* sharedStore */ "d"].config;
    }
    get imsData() {
        return _SharedStore__WEBPACK_IMPORTED_MODULE_0__[/* sharedStore */ "d"].imsData;
    }
}
/**
 * Settings will be a singleton instance, where the static values could be references anywhere.
 * There values were originally static and was intended to be overridden on run time.
 * Having a singleton instance this will alleviate issues of importing certain classes before others.
 * i.e. App.ts would've needed to be imported first before all API services.
 */
const settings = new Settings();


/***/ }),

/***/ "5u51":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return debounce; });
/* harmony import */ var src_components_start_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("/0Ih");
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
/**
 * The following license applies to the debounce function below (from Lodash):
 *
 * Copyright JS Foundation and other contributors <https://js.foundation/>
 *
 * Based on Underscore.js, copyright Jeremy Ashkenas,
 * DocumentCloud and Investigative Reporters & Editors <http://underscorejs.org/>
 *
 * This software consists of voluntary contributions made by many
 * individuals. For exact contribution history, see the revision history
 * available at <https://github.com/lodash/lodash>.
 *
 * Permission is hereby granted, free of charge, to any person obtaining
 * a copy of this software and associated documentation files (the
 * "Software"), to deal in the Software without restriction, including
 * without limitation the rights to use, copy, modify, merge, publish,
 * distribute, sublicense, and/or sell copies of the Software, and to
 * permit persons to whom the Software is furnished to do so, subject to
 * the following conditions:
 *
 * The above copyright notice and this permission notice shall be
 * included in all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
 * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
 * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 */
/**
 * Creates a debounced function that delays invoking `func` until after `wait`
 * milliseconds have elapsed since the last time the debounced function was
 * invoked. The debounced function comes with a `cancel` method to cancel
 * delayed `func` invocations and a `flush` method to immediately invoke them.
 * Provide `options` to indicate whether `func` should be invoked on the
 * leading and/or trailing edge of the `wait` timeout. The `func` is invoked
 * with the last arguments provided to the debounced function. Subsequent
 * calls to the debounced function return the result of the last `func`
 * invocation.
 *
 * **Note:** If `leading` and `trailing` options are `true`, `func` is
 * invoked on the trailing edge of the timeout only if the debounced function
 * is invoked more than once during the `wait` timeout.
 *
 * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred
 * until the next tick, similar to `setTimeout` with a timeout of `0`.
 *
 * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)
 * for details over the differences between `debounce` and `throttle`.
 *
 * @since 0.1.0
 * @category Function
 * @param {Function} func The function to debounce.
 * @param {number} [wait=0] The number of milliseconds to delay.
 * @param {Object} [options={}] The options object.
 * @param {boolean} [options.leading=false]
 *  Specify invoking on the leading edge of the timeout.
 * @param {number} [options.maxWait]
 *  The maximum time `func` is allowed to be delayed before it's invoked.
 * @param {boolean} [options.trailing=true]
 *  Specify invoking on the trailing edge of the timeout.
 * @returns {Function} Returns the new debounced function.
 * @example
 *
 * // Avoid costly calculations while the window size is in flux.
 * jQuery(window).on('resize', debounce(calculateLayout, 150))
 *
 * // Invoke `sendMail` when clicked, debouncing subsequent calls.
 * jQuery(element).on('click', debounce(sendMail, 300, {
 *   'leading': true,
 *   'trailing': false
 * }))
 *
 * // Ensure `batchLog` is invoked once after 1 second of debounced calls.
 * const debounced = debounce(batchLog, 250, { 'maxWait': 1000 })
 * const source = new EventSource('/stream')
 * jQuery(source).on('message', debounced)
 *
 * // Cancel the trailing debounced invocation.
 * jQuery(window).on('popstate', debounced.cancel)
 */

function debounce(func, wait = src_components_start_constants__WEBPACK_IMPORTED_MODULE_0__[/* default */ "k"].DEBOUNCE.WAIT, options = src_components_start_constants__WEBPACK_IMPORTED_MODULE_0__[/* default */ "k"].DEBOUNCE.OPTIONS) {
    let lastArgs, lastThis, maxWait, result, timerId, lastCallTime, lastInvokeTime = 0;
    let leading = false;
    let maxing = false;
    let trailing = true;
    if (typeof func !== 'function') {
        throw new TypeError('Expected a function');
    }
    wait = +wait || 0;
    if (typeof options === 'object') {
        leading = !!options.leading;
        maxing = 'maxWait' in options;
        maxWait = maxing ? Math.max(+options.maxWait || 0, wait) : maxWait;
        trailing = 'trailing' in options ? !!options.trailing : trailing;
    }
    function invokeFunc(time) {
        const args = lastArgs;
        const thisArg = lastThis;
        lastArgs = lastThis = undefined;
        lastInvokeTime = time;
        result = func.apply(thisArg, args);
        return result;
    }
    function leadingEdge(time) {
        // Reset any `maxWait` timer.
        lastInvokeTime = time;
        // Start the timer for the trailing edge.
        timerId = setTimeout(timerExpired, wait);
        // Invoke the leading edge.
        return leading ? invokeFunc(time) : result;
    }
    function remainingWait(time) {
        const timeSinceLastCall = time - lastCallTime;
        const timeSinceLastInvoke = time - lastInvokeTime;
        const result = wait - timeSinceLastCall;
        return maxing ? Math.min(result, maxWait - timeSinceLastInvoke) : result;
    }
    function shouldInvoke(time) {
        const timeSinceLastCall = time - lastCallTime;
        const timeSinceLastInvoke = time - lastInvokeTime;
        // Either this is the first call, activity has stopped and we're at the
        // trailing edge, the system time has gone backwards and we're treating
        // it as the trailing edge, or we've hit the `maxWait` limit.
        return (lastCallTime === undefined ||
            timeSinceLastCall >= wait ||
            timeSinceLastCall < 0 ||
            (maxing && timeSinceLastInvoke >= maxWait));
    }
    function timerExpired() {
        const time = Date.now();
        if (shouldInvoke(time)) {
            return trailingEdge(time);
        }
        // Restart the timer.
        timerId = setTimeout(timerExpired, remainingWait(time));
    }
    function trailingEdge(time) {
        timerId = undefined;
        // Only invoke if we have `lastArgs` which means `func` has been
        // debounced at least once.
        if (trailing && lastArgs) {
            return invokeFunc(time);
        }
        lastArgs = lastThis = undefined;
        return result;
    }
    function cancel() {
        if (timerId !== undefined) {
            clearTimeout(timerId);
        }
        lastInvokeTime = 0;
        lastArgs = lastCallTime = lastThis = timerId = undefined;
    }
    function flush() {
        return timerId === undefined ? result : trailingEdge(Date.now());
    }
    const debounced = function (...args) {
        const time = Date.now();
        const isInvoking = shouldInvoke(time);
        lastArgs = args;
        lastThis = this;
        lastCallTime = time;
        if (isInvoking) {
            if (timerId === undefined) {
                return leadingEdge(lastCallTime);
            }
            if (maxing) {
                // Handle invocations in a tight loop.
                timerId = setTimeout(timerExpired, wait);
                return invokeFunc(lastCallTime);
            }
        }
        if (timerId === undefined) {
            timerId = setTimeout(timerExpired, wait);
        }
        return result;
    };
    debounced.cancel = cancel;
    debounced.flush = flush;
    return debounced;
}


/***/ }),

/***/ "5vMV":
/***/ (function(module, exports, __webpack_require__) {

var has = __webpack_require__("B+OT");

var toIObject = __webpack_require__("NsO/");

var arrayIndexOf = __webpack_require__("W070")(false);

var IE_PROTO = __webpack_require__("VVlx")('IE_PROTO');

module.exports = function (object, names) {
  var O = toIObject(object);
  var i = 0;
  var result = [];
  var key;

  for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key); // Don't enum bug & hidden keys


  while (names.length > i) if (has(O, key = names[i++])) {
    ~arrayIndexOf(result, key) || result.push(key);
  }

  return result;
};

/***/ }),

/***/ "5xHT":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* unused harmony export CLOUD_SYNC_STATUS_INGEST_SUBCATEGORY */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return CloudSyncType; });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("2vnA");
/* harmony import */ var mobx_react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("okNM");
/* harmony import */ var _react_react_spectrum_Provider__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("bUsb");
/* harmony import */ var _react_react_spectrum_Provider__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Provider__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _polyfills_react_intl__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("dAeb");
/* harmony import */ var _Tile__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("SDFJ");
/* harmony import */ var _stores_CDCGlobalStore__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("Z4Cq");
/* harmony import */ var _styles_CloudSyncStatus_css__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("ImBD");
/* harmony import */ var _styles_CloudSyncStatus_css__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_styles_CloudSyncStatus_css__WEBPACK_IMPORTED_MODULE_7__);
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;
};
var __metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
/*************************************************************************
 *   ADOBE CONFIDENTIAL
 *
 *   Copyright 2022 Adobe
 *   All Rights Reserved.
 *
 *   NOTICE:  All information contained herein is, and remains
 *   the property of Adobe and its suppliers, if any. The intellectual
 *   and technical concepts contained herein are proprietary to Adobe
 *   and its suppliers and are protected by all applicable intellectual
 *   property laws, including trade secret and copyright laws.
 *   Dissemination of this information or reproduction of this material
 *   is strictly forbidden unless prior written permission is obtained
 *   from Adobe.
 **************************************************************************/








const CLOUD_SYNC_STATUS_INGEST_SUBCATEGORY = 'Cloud Sync Status';
var CloudSyncType;
(function (CloudSyncType) {
    CloudSyncType["GLOBAL"] = "global";
    CloudSyncType["SINGLE"] = "single";
})(CloudSyncType || (CloudSyncType = {}));
let CloudSyncStatusPopdown = class CloudSyncStatusPopdown extends react__WEBPACK_IMPORTED_MODULE_0__["Component"] {
    constructor() {
        super(...arguments);
        this.state = {
            currentTileId: '',
        };
        this.handleToggle = (tileId) => {
            this.setState({ currentTileId: tileId }, this.logViewMetric);
        };
        this.onHide = () => {
            var _a, _b;
            const { onDialogStateChange } = this.props;
            (_b = (_a = this.currentTile) === null || _a === void 0 ? void 0 : _a.onExit) === null || _b === void 0 ? void 0 : _b.call(_a);
            this.allTiles.forEach(tile => { var _a; return (_a = tile.onHide) === null || _a === void 0 ? void 0 : _a.call(tile); });
            onDialogStateChange === null || onDialogStateChange === void 0 ? void 0 : onDialogStateChange(false);
        };
        this.onShow = () => {
            const { onDialogStateChange } = this.props;
            onDialogStateChange === null || onDialogStateChange === void 0 ? void 0 : onDialogStateChange(true);
            this.allTiles.forEach(tile => { var _a; return (_a = tile.onShow) === null || _a === void 0 ? void 0 : _a.call(tile); });
            this.globalStore.cdoMetrics.fireEvent({
                event: {
                    subcategory: CLOUD_SYNC_STATUS_INGEST_SUBCATEGORY,
                    type: 'open',
                },
            });
            this.logViewMetric();
        };
    }
    componentDidMount() {
        const { tiles } = this.props;
        const { assetId } = this.props;
        this.globalStore.cloudStore.setExternalTiles(assetId, tiles);
        this.onShow();
    }
    componentDidUpdate(prevProps) {
        const { tiles: prevTiles } = prevProps;
        const { tiles } = this.props;
        // Watch for prop updates to make sure we reset our monitoring to no longer monitor
        // tiles that don't exist anymore and start monitoring new tiles passed to us
        // new tiles that weren't previously passed to us
        const newTiles = tiles.filter(tile => !prevTiles.find(t => t.id === tile.id));
        // tiles which we used to have passed to us but no longer do
        const goneTiles = prevTiles.filter(tile => !tiles.find(t => t.id === tile.id));
        if (!newTiles.length && !goneTiles.length) {
            // if our tiles are the same as before, do nothing. we're already monitoring
            return;
        }
        const { assetId } = this.props;
        this.globalStore.cloudStore.setExternalTiles(assetId, tiles);
    }
    componentWillUnmount() {
        this.onHide();
    }
    get globalStore() {
        const { hostProductData, imsData } = this.props;
        return Object(_stores_CDCGlobalStore__WEBPACK_IMPORTED_MODULE_6__[/* getCDCGlobalStore */ "a"])({ hostProductData, imsData });
    }
    get allTiles() {
        const { callbacks } = this.props;
        const { assetId } = this.props;
        return this.globalStore.cloudStore.getAllTiles(assetId, {
            callbacks,
            onClickTile: this.handleToggle,
            getCurrentTile: () => this.currentTile,
        });
    }
    get currentTile() {
        const { currentTileId } = this.state;
        return this.allTiles.find(tile => tile.id === currentTileId);
    }
    logViewMetric() {
        const { currentTileId } = this.state;
        this.globalStore.cdoMetrics.fireEvent({
            event: {
                subcategory: CLOUD_SYNC_STATUS_INGEST_SUBCATEGORY,
                type: 'view',
                subtype: currentTileId || 'main',
            },
        });
    }
    render() {
        // TODO: https://jira.corp.adobe.com/browse/CCXCD-6188
        // CloudSyncStatus messaging/icon does not match doc when a document is pending sync
        const { theme } = this.props;
        const tiles = this.currentTile
            ? Object(_Tile__WEBPACK_IMPORTED_MODULE_5__[/* renderSubtiles */ "e"])(this.currentTile, this.handleToggle)
            : Object(_Tile__WEBPACK_IMPORTED_MODULE_5__[/* renderTiles */ "f"])(this.allTiles, this.handleToggle);
        return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: "CloudSyncStatus_popdown" },
            react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_polyfills_react_intl__WEBPACK_IMPORTED_MODULE_4__[/* RawIntlProvider */ "b"], { value: this.globalStore.cloudStore.intl }, theme ? (react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_react_react_spectrum_Provider__WEBPACK_IMPORTED_MODULE_3___default.a, { theme: theme, scale: "medium" }, tiles)) : (tiles))));
    }
};
CloudSyncStatusPopdown.defaultProps = {
    tiles: [],
    callbacks: {},
    type: CloudSyncType.GLOBAL,
    onDialogStateChange: () => { },
};
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* computed */ "l"],
    __metadata("design:type", Array),
    __metadata("design:paramtypes", [])
], CloudSyncStatusPopdown.prototype, "allTiles", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* computed */ "l"],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], CloudSyncStatusPopdown.prototype, "currentTile", null);
CloudSyncStatusPopdown = __decorate([
    mobx_react__WEBPACK_IMPORTED_MODULE_2__[/* observer */ "e"]
], CloudSyncStatusPopdown);
/* harmony default export */ __webpack_exports__["b"] = (CloudSyncStatusPopdown);


/***/ }),

/***/ 6:
/***/ (function(module, exports) {

/* (ignored) */

/***/ }),

/***/ "6/1s":
/***/ (function(module, exports, __webpack_require__) {

var META = __webpack_require__("YqAc")('meta');

var isObject = __webpack_require__("93I4");

var has = __webpack_require__("B+OT");

var setDesc = __webpack_require__("2faE").f;

var id = 0;

var isExtensible = Object.isExtensible || function () {
  return true;
};

var FREEZE = !__webpack_require__("KUxP")(function () {
  return isExtensible(Object.preventExtensions({}));
});

var setMeta = function (it) {
  setDesc(it, META, {
    value: {
      i: 'O' + ++id,
      // object ID
      w: {} // weak collections IDs

    }
  });
};

var fastKey = function (it, create) {
  // return primitive with prefix
  if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;

  if (!has(it, META)) {
    // can't set metadata to uncaught frozen object
    if (!isExtensible(it)) return 'F'; // not necessary to add metadata

    if (!create) return 'E'; // add missing metadata

    setMeta(it); // return object ID
  }

  return it[META].i;
};

var getWeak = function (it, create) {
  if (!has(it, META)) {
    // can't set metadata to uncaught frozen object
    if (!isExtensible(it)) return true; // not necessary to add metadata

    if (!create) return false; // add missing metadata

    setMeta(it); // return hash weak collections IDs
  }

  return it[META].w;
}; // add metadata on freeze-family methods calling


var onFreeze = function (it) {
  if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);
  return it;
};

var meta = module.exports = {
  KEY: META,
  NEED: false,
  fastKey: fastKey,
  getWeak: getWeak,
  onFreeze: onFreeze
};

/***/ }),

/***/ "61LE":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _AssetFile = _interopRequireDefault(__webpack_require__("dcWq"));

var _AssetFolder = _interopRequireDefault(__webpack_require__("heC6"));

var _AssetImage = _interopRequireDefault(__webpack_require__("7SRV"));

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _filterDOMProps = _interopRequireDefault(__webpack_require__("Cv/Q"));

var _propTypes = _interopRequireDefault(__webpack_require__("17x9"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

const _excluded = ["type", "src", "placeholder", "cache", "headers", "smartness", "alt", "className", "onLoad", "decorative"];

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

if (false) {} else if (false) {} else {
  __webpack_require__("ZeFm");
}

if (true) __webpack_require__("Dket");
if (true) __webpack_require__("hwZj");
if (true) __webpack_require__("XQub");
if (true) __webpack_require__("kMD0");

class Asset extends _react.default.Component {
  render(props) {
    let _this$props = this.props,
        {
      type,
      src,
      placeholder,
      cache,
      headers,
      smartness,
      alt,
      className,
      onLoad,
      decorative
    } = _this$props,
        otherProps = _objectWithoutProperties(_this$props, _excluded);

    let content;

    if (type === 'image') {
      content = /*#__PURE__*/_react.default.createElement(_AssetImage.default, {
        src: src,
        placeholder: placeholder,
        smartness: smartness,
        onLoad: onLoad,
        cache: cache,
        headers: headers,
        alt: alt,
        decorative: decorative
      });
    } else if (type === 'folder') {
      content = /*#__PURE__*/_react.default.createElement(_AssetFolder.default, {
        alt: alt,
        decorative: decorative
      });
    } else {
      content = /*#__PURE__*/_react.default.createElement(_AssetFile.default, {
        alt: alt,
        decorative: decorative
      });
    }

    return /*#__PURE__*/_react.default.createElement("div", _extends({}, (0, _filterDOMProps.default)(otherProps), {
      className: (0, _classnames.default)('spectrum-Asset', className)
    }), content);
  }

}

exports.default = Asset;
Asset.propTypes = {
  /** Asset can be an image, folder or file type */
  type: _propTypes.default.oneOf(['image', 'folder', 'file']),

  /** Source of the Asset if it is an image */
  src: _propTypes.default.string,

  /** Whether to use the image cache for the asset image */
  cache: _propTypes.default.bool,

  /** HTTP headers to add to the request for the asset image */
  headers: _propTypes.default.object,

  /** Placeholder image to display while the fullsize one is loading, if cached. */
  placeholder: _propTypes.default.string,

  /** A factor between 0 and 1 that controls how the preview is scaled. When 0 ("dumb") the assets fits all the space available. */
  smartness: _propTypes.default.number,

  /** Alternate content for screen readers */
  alt: _propTypes.default.string,

  /** Whether the image is being used for decoration and should not be announced by screen readers */
  decorative: _propTypes.default.bool,

  /** Load callback triggered when images load */
  onLoad: _propTypes.default.func
};
Asset.defaultProps = {
  type: 'file',
  smartness: 1
};

/***/ }),

/***/ "61Rg":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var _interopRequireDefault = __webpack_require__("TqRt");

exports.__esModule = true;
exports.default = void 0;

var _inDOM = _interopRequireDefault(__webpack_require__("Bp9Y"));

var _default = function () {
  // HTML DOM and SVG DOM may have different support levels,
  // so we need to check on context instead of a document root element.
  return _inDOM.default ? function (context, node) {
    if (context.contains) {
      return context.contains(node);
    } else if (context.compareDocumentPosition) {
      return context === node || !!(context.compareDocumentPosition(node) & 16);
    } else {
      return fallback(context, node);
    }
  } : fallback;
}();

exports.default = _default;

function fallback(context, node) {
  if (node) do {
    if (node === context) return true;
  } while (node = node.parentNode);
  return false;
}

module.exports = exports["default"];

/***/ }),

/***/ "63WY":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("cW9B"),
      24: __webpack_require__("t9HZ")
    }
  }));
};

WrappedIcon.displayName = 'Add';
exports.default = WrappedIcon;

/***/ }),

/***/ "645C":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


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 __());
  };
}();

var __assign = this && this.__assign || function () {
  __assign = Object.assign || function (t) {
    for (var s, i = 1, n = arguments.length; i < n; i++) {
      s = arguments[i];

      for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
    }

    return t;
  };

  return __assign.apply(this, arguments);
};

var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {
  function adopt(value) {
    return value instanceof P ? value : new P(function (resolve) {
      resolve(value);
    });
  }

  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) : adopt(result.value).then(fulfilled, rejected);
    }

    step((generator = generator.apply(thisArg, _arguments || [])).next());
  });
};

var __generator = this && this.__generator || function (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
    };
  }
};

var __importDefault = this && this.__importDefault || function (mod) {
  return mod && mod.__esModule ? mod : {
    "default": mod
  };
};

Object.defineProperty(exports, "__esModule", {
  value: true
});
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2019 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/

var stringify_props_1 = __webpack_require__("45JA");

var constants_1 = __webpack_require__("uBoz");

var RequestProcessor_1 = __importDefault(__webpack_require__("HyxP"));

var ONE_SECOND = 1000;

var MonitorOpRequestProcessor =
/** @class */
function (_super) {
  __extends(MonitorOpRequestProcessor, _super);

  function MonitorOpRequestProcessor() {
    return _super !== null && _super.apply(this, arguments) || this;
  }
  /**
   * When the operation completes, the real operation result is an HTTP response nested in the body of a 200 response.
   * This parses that text into a Response
   *
   * @param body {string} the body of the HTTP response
   * @returns Response
   */


  MonitorOpRequestProcessor.prototype.parseMonitorResponseBody = function (body) {
    var _a = body.split(/\r?\n/),
        statusLine = _a[0],
        rest = _a.slice(1);

    var _b = statusLine.split(' '),
        protocol = _b[0],
        statusCode = _b[1],
        statusWords = _b.slice(2);

    var status = parseInt(statusCode, 10); // Response JSON contained in the last line, if there is any. Default to {} if there's none.

    var jsonString = rest.pop().trim() || '{}';
    var statusText = statusWords.join(' ');

    try {
      var parsedJson = JSON.parse(jsonString);

      if (parsedJson.error) {
        statusText = parsedJson.error.reason;
      }
    } catch (e) {// jsonString doesn't exist or is invalid JSON
    }

    return RequestProcessor_1.default.createResponse(status, statusText, jsonString);
  };
  /**
   * Transform web monitor response
   * https://acpcs.corp.adobe.com/docs/sdks/storage/v1/monitor/get_monitor
   * @param response
   * @param additionalParams
   */


  MonitorOpRequestProcessor.prototype.responseTransformWeb = function (response, additionalParams) {
    return __awaiter(this, void 0, void 0, function () {
      var result, text;
      return __generator(this, function (_a) {
        switch (_a.label) {
          case 0:
            if (!(response.status === constants_1.HTTP_STATUS_ACCEPTED)) return [3
            /*break*/
            , 1];
            result = {
              // NOTE: There's no documentation as to what the units are for this. Presumably, it's
              // number of seconds to wait.
              retryAfter: (parseInt(response.headers.get('retry-after'), 10) || 1) * ONE_SECOND,
              monitorLink: response.url
            };
            return [2
            /*return*/
            , RequestProcessor_1.default.createResponse(response.status, response.statusText, result)];

          case 1:
            if (!response.ok) return [3
            /*break*/
            , 3];
            return [4
            /*yield*/
            , response.text()];

          case 2:
            text = _a.sent();
            return [2
            /*return*/
            , this.parseMonitorResponseBody(text)];

          case 3:
            // Unable to get monitor status...may need to have retry logic here
            return [2
            /*return*/
            , response];
        }
      });
    });
  };
  /**
   * Transform ACPL monitor response
   * https://wiki.corp.adobe.com/pages/viewpage.action?spaceKey=CFS&title=Resource+API+Specification
   * @param acplResponse
   * @param additionalParams
   */


  MonitorOpRequestProcessor.prototype.responseTransformAcpLocal = function (acplResponse, additionalParams) {
    return __awaiter(this, void 0, void 0, function () {
      var acplElementResponse, monitorResult, monitorLink, found, result, response;
      return __generator(this, function (_a) {
        if (!RequestProcessor_1.default.isAcplStatusSuccessful(acplResponse.statusCode)) {
          return [2
          /*return*/
          , _super.prototype.responseTransformAcpLocal.call(this, acplResponse, additionalParams)];
        }

        acplElementResponse = acplResponse; // Multiple ACPL codes could be mapped to 202, so convert to HTTP status.

        if (RequestProcessor_1.default.getWebStatusCode(acplElementResponse.statusCode) === constants_1.HTTP_STATUS_ACCEPTED) {
          monitorResult = JSON.parse(stringify_props_1.Stringify.stringify(acplElementResponse.element));
          monitorLink = '';

          if (monitorResult.links && monitorResult.links.length) {
            found = monitorResult.links.find(function (link) {
              return link.params && link.params.rel === constants_1.MONITOR_RELTYPE;
            });
            monitorLink = found && found.target;
          }

          result = __assign(__assign({}, monitorResult), {
            // ACPL doesn't return retry-after, so default to 1 second
            retryAfter: ONE_SECOND,
            monitorLink: monitorLink
          });
          response = RequestProcessor_1.default.createResponse(RequestProcessor_1.default.getWebStatusCode(acplResponse.statusCode), acplResponse.statusMessage, result);
          return [2
          /*return*/
          , response];
        } else {
          return [2
          /*return*/
          , this.parseMonitorResponseBody(acplElementResponse.element.message)];
        }

        return [2
        /*return*/
        ];
      });
    });
  };

  MonitorOpRequestProcessor.urlRegex = /\/ops\/monitor\//;
  MonitorOpRequestProcessor.method = ['GET'];
  return MonitorOpRequestProcessor;
}(RequestProcessor_1.default);

exports.default = MonitorOpRequestProcessor;

/***/ }),

/***/ "66Ol":
/***/ (function(module) {

module.exports = JSON.parse("{\"steps\":\"{currentStep} z {totalSteps}\"}");

/***/ }),

/***/ "683I":
/***/ (function(module, exports) {

/* eslint-disable max-len */
module.exports = {
  'confirmationDialog.dontShowAgain': 'Ikke vis igjen',
  'confirmationDialog.confirm.default': 'Fortsett',
  'confirmationDialog.cancel.default': 'Avbryt',
  'confirmationDialog.learnMore': 'Finn ut mer',
  'toast.warning.place': 'Kan ikke plassere koblede nettsky-dokumenter ennå. Fortsett å bygge dem inn i stedet.',
  'toast.warning.placeLinkOrEmbed': 'Ressurser du plasserer, vil nå som standard være koblet til originalen. Dette betyr at endringer du gjør på ett sted, oppdateres overalt.',
  'toast.warning.saveAs.invalidFormat': 'Beklager, du kan ikke lagre {genericFormat}-filer her. Filen din blir lagret som {adobeFormat}.',
  'pickerView.recent': 'Siste',
  'pickerView.cloud_docs': 'Dine filer',
  'pickerView.shared_with_you': 'Delt med deg',
  'pickerView.projects': 'Prosjekter',
  'pickerView.files': 'Filer',
  'pickerView.computer': 'Datamaskinen ...',
  'pickerView.saveAsInput': 'Lagre som',
  'pickerView.exportInput': 'Eksporter som',
  'pickerView.sketch_library': 'Konverter Sketch bibliotek ...',
  'pickerView.error.saveAsOrExport.default': 'Filnavnet er ugyldig.',
  'pickerView.error.saveAsOrExport.invalidName': 'Beklager, dette navnet inneholder ugyldige tegn.',
  'pickerView.error.saveAsOrExport.invalidEnd': 'Navnet kan ikke slutte på "." eller et mellomrom.',
  'pickerView.error.saveAsOrExport.invalidChar': 'Navnet kan ikke inneholde følgende tegn: {characters}',
  'pickerView.error.saveAsOrExport.charRestriction': 'Navn kan ikke være lengre enn 200 tegn.',
  'pickerView.error.saveAsOrExport.duplicateName': 'Du har allerede et nettsky-dokument med dette navnet.',
  'pickerView.error.addALibrary.permission': 'Du har ikke tillatelse til å legge til dette biblioteket',
  'pickerViewFooter.button.add': 'Legg til',
  'pickerViewFooter.button.cancel': 'Avbryt',
  'pickerViewFooter.button.copy': 'Kopier her',
  'pickerViewFooter.button.move': 'Flytt hit',
  'pickerViewFooter.button.moveToProject': 'Flytt hit',
  'pickerViewFooter.button.copyToProject': 'Kopier her',
  'pickerViewFooter.button.choose': 'Velg',
  'pickerViewFooter.button.save': 'Lagre',
  'pickerViewFooter.button.switchToOSPicker': 'På datamaskinen',
  'pickerViewFooter.button.save.offline': 'Internett-tilkobling kreves',
  'pickerViewFooter.button.saveAsCopy': 'Lagre',
  'pickerViewFooter.button.export': 'Eksporter',
  'pickerViewFooter.button.placeLinkOrEmbed': 'Sett inn',
  'pickerViewFooter.button.import': 'Importer',
  'pickerViewFooter.checkbox.placeLink': 'Koblet',
  'pickerViewFooter.tooltip.placeLink': 'Du kan bare plassere dette elementet som en koblet ressurs.',
  'pickerViewFooter.tooltip.placeEmbed': 'Du kan bare plassere dette elementet som innebygd.',
  'pickerViewFooter.saveAs.format.label': 'Format',
  'pickerViewFooter.button.selectProject': 'Lagre',
  'onboardingCdp.title': 'Du kan gjøre mye mer hvis du lagrer som et nettsky-dokument',
  'onboardingCdp.tooltip': 'Hvis du lagrer til datamaskinen, vil du ikke kunne bruke nettskyfunksjoner.',
  'onboardingCdp.tooltip.link': 'Finn ut mer',
  'onboardingCdp.table.header.saveToCloud': 'Creative Cloud',
  'onboardingCdp.table.header.saveToLocal': 'På datamaskinen',
  'onboardingCdp.button.saveToCloud': 'Lagre i Creative Cloud',
  'onboardingCdp.feature.offline': 'Tilgang uten nett',
  'onboardingCdp.feature.syncing': 'Nettskysynkronisering til alle enhetene dine',
  'onboardingCdp.feature.autosave': 'Hver endring lagres automatisk',
  'onboardingCdp.feature.versionHistory': 'Versjonshistorikk',
  'onboardingCdp.feature.inviteToEdit': 'Inviter andre til å redigere',
  'onboardingCdp.button.saveToLocal': 'Lagre på datamaskinen',
  'onboardingCdp.checkbox.doNotShowAgain': 'Ikke vis igjen',
  'uap.title.place': 'Sett inn fra Creative Cloud',
  'uap.title.import': 'Importer fra Creative Cloud',
  'uap.title.placeLinkOrEmbed': 'Sett inn fra Creative Cloud',
  'uap.title.linkAssets': 'Bruk en kobling fra Creative Cloud',
  'uap.title.open': 'Åpne fra Creative Cloud',
  'uap.title.relink': 'Bruk en kobling fra Creative Cloud',
  'uap.title.saveAs': 'Lagre i Creative Cloud',
  'uap.title.saveAsCopy': 'Lagre i Creative Cloud',
  'uap.title.saveToFolder': 'Lagre i Creative Cloud',
  'uap.title.export': 'Eksporter til Creative Cloud',
  'uap.title.copy': 'Kopier til Creative Cloud',
  'uap.title.move': 'Flytt i Creative Cloud',
  'uap.title.moveToProject': 'Flytt i Creative Cloud',
  'uap.title.copyToProject': 'Kopier til Creative Cloud',
  'uap.title.reference': 'Legg til i Creative Cloud',
  'uap.title.selectProject': 'Lagre i Creative Cloud',
  'move.toSpace.confirm.title': 'Versjonshistorikken vil bli slettet',
  'move.toSpace.confirm.message': 'Hvis denne filen flyttes, blir versjonshistorikken slettet. Hvis du vil beholde versjonshistorikken, må du lage en kopi i stedet.'
};

/***/ }),

/***/ "68Iv":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("path", {
  d: "M37.9 37.8c.3.3.5.7 0 1.1l-6.2 4c-.5.3-.7.1-.9-.4l-7.7-13.4L13 40.2c-.1.2-.4.4-.7 0l-4.8-5c-.5-.3-.4-.6 0-.9l11.4-9.5-13-4.9c-.2 0-.5-.4-.3-.9L9 12.2a.526.526 0 0 1 .9-.2l11.4 7.4.7-14.6a.526.526 0 0 1 .6-.6l8.3 1.1c.5 0 .6.2.5.7l-3.9 14.3 13.2-4c.3-.2.6-.2.8.4l1.3 7.4c.1.5 0 .7-.4.7l-13.8 1.1z"
}));

/***/ }),

/***/ "68KS":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("teks"),
      24: __webpack_require__("46AA")
    }
  }));
};

WrappedIcon.displayName = 'StarOutline';
exports.default = WrappedIcon;

/***/ }),

/***/ "6Aa0":
/***/ (function(module, exports, __webpack_require__) {

module.exports = __webpack_require__.p + "assets/projects/S_Illu_EmptyCanvasFile_Color07.png";

/***/ }),

/***/ "6DQo":
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/**
 * Copyright 2014-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 */

/**
 * 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 = function () {};

if (false) {}

module.exports = warning;

/***/ }),

/***/ "6E2w":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("path", {
  d: "M40 24.5V40H8V8h15.5a.5.5 0 0 0 .5-.5v-3a.5.5 0 0 0-.5-.5H5a1 1 0 0 0-1 1v38a1 1 0 0 0 1 1h38a1 1 0 0 0 1-1V24.5a.5.5 0 0 0-.5-.5h-3a.5.5 0 0 0-.5.5z"
}), React.createElement("path", {
  d: "M30.241 4a1.008 1.008 0 0 0-.655 1.716l4.228 4.228-9.842 9.842a.5.5 0 0 0 0 .707l3.536 3.535a.5.5 0 0 0 .707 0l9.842-9.842 4.217 4.214a1 1 0 0 0 1.706-.655V4z"
}));

/***/ }),

/***/ "6F8h":
/***/ (function(module) {

module.exports = JSON.parse("{\"aes-128-ecb\":{\"cipher\":\"AES\",\"key\":128,\"iv\":0,\"mode\":\"ECB\",\"type\":\"block\"},\"aes-192-ecb\":{\"cipher\":\"AES\",\"key\":192,\"iv\":0,\"mode\":\"ECB\",\"type\":\"block\"},\"aes-256-ecb\":{\"cipher\":\"AES\",\"key\":256,\"iv\":0,\"mode\":\"ECB\",\"type\":\"block\"},\"aes-128-cbc\":{\"cipher\":\"AES\",\"key\":128,\"iv\":16,\"mode\":\"CBC\",\"type\":\"block\"},\"aes-192-cbc\":{\"cipher\":\"AES\",\"key\":192,\"iv\":16,\"mode\":\"CBC\",\"type\":\"block\"},\"aes-256-cbc\":{\"cipher\":\"AES\",\"key\":256,\"iv\":16,\"mode\":\"CBC\",\"type\":\"block\"},\"aes128\":{\"cipher\":\"AES\",\"key\":128,\"iv\":16,\"mode\":\"CBC\",\"type\":\"block\"},\"aes192\":{\"cipher\":\"AES\",\"key\":192,\"iv\":16,\"mode\":\"CBC\",\"type\":\"block\"},\"aes256\":{\"cipher\":\"AES\",\"key\":256,\"iv\":16,\"mode\":\"CBC\",\"type\":\"block\"},\"aes-128-cfb\":{\"cipher\":\"AES\",\"key\":128,\"iv\":16,\"mode\":\"CFB\",\"type\":\"stream\"},\"aes-192-cfb\":{\"cipher\":\"AES\",\"key\":192,\"iv\":16,\"mode\":\"CFB\",\"type\":\"stream\"},\"aes-256-cfb\":{\"cipher\":\"AES\",\"key\":256,\"iv\":16,\"mode\":\"CFB\",\"type\":\"stream\"},\"aes-128-cfb8\":{\"cipher\":\"AES\",\"key\":128,\"iv\":16,\"mode\":\"CFB8\",\"type\":\"stream\"},\"aes-192-cfb8\":{\"cipher\":\"AES\",\"key\":192,\"iv\":16,\"mode\":\"CFB8\",\"type\":\"stream\"},\"aes-256-cfb8\":{\"cipher\":\"AES\",\"key\":256,\"iv\":16,\"mode\":\"CFB8\",\"type\":\"stream\"},\"aes-128-cfb1\":{\"cipher\":\"AES\",\"key\":128,\"iv\":16,\"mode\":\"CFB1\",\"type\":\"stream\"},\"aes-192-cfb1\":{\"cipher\":\"AES\",\"key\":192,\"iv\":16,\"mode\":\"CFB1\",\"type\":\"stream\"},\"aes-256-cfb1\":{\"cipher\":\"AES\",\"key\":256,\"iv\":16,\"mode\":\"CFB1\",\"type\":\"stream\"},\"aes-128-ofb\":{\"cipher\":\"AES\",\"key\":128,\"iv\":16,\"mode\":\"OFB\",\"type\":\"stream\"},\"aes-192-ofb\":{\"cipher\":\"AES\",\"key\":192,\"iv\":16,\"mode\":\"OFB\",\"type\":\"stream\"},\"aes-256-ofb\":{\"cipher\":\"AES\",\"key\":256,\"iv\":16,\"mode\":\"OFB\",\"type\":\"stream\"},\"aes-128-ctr\":{\"cipher\":\"AES\",\"key\":128,\"iv\":16,\"mode\":\"CTR\",\"type\":\"stream\"},\"aes-192-ctr\":{\"cipher\":\"AES\",\"key\":192,\"iv\":16,\"mode\":\"CTR\",\"type\":\"stream\"},\"aes-256-ctr\":{\"cipher\":\"AES\",\"key\":256,\"iv\":16,\"mode\":\"CTR\",\"type\":\"stream\"},\"aes-128-gcm\":{\"cipher\":\"AES\",\"key\":128,\"iv\":12,\"mode\":\"GCM\",\"type\":\"auth\"},\"aes-192-gcm\":{\"cipher\":\"AES\",\"key\":192,\"iv\":12,\"mode\":\"GCM\",\"type\":\"auth\"},\"aes-256-gcm\":{\"cipher\":\"AES\",\"key\":256,\"iv\":12,\"mode\":\"GCM\",\"type\":\"auth\"}}");

/***/ }),

/***/ "6PXS":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return addNonEnumerableProperty; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return convertToPlainObject; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return dropUndefinedKeys; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return extractExceptionKeysForMessage; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return fill; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return getOriginalFunction; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return markFunctionWrapped; });
/* unused harmony export objectify */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return urlEncode; });
/* harmony import */ var _browser_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("vFt6");
/* harmony import */ var _is_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("9AQC");
/* harmony import */ var _string_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("+924");



/**
 * Replace a method in an object with a wrapped version of itself.
 *
 * @param source An object that contains a method to be wrapped.
 * @param name The name of the method to be wrapped.
 * @param replacementFactory A higher-order function that takes the original version of the given method and returns a
 * wrapped version. Note: The function returned by `replacementFactory` needs to be a non-arrow function, in order to
 * preserve the correct value of `this`, and the original method must be called using `origMethod.call(this, <other
 * args>)` or `origMethod.apply(this, [<other args>])` (rather than being called directly), again to preserve `this`.
 * @returns void
 */

function fill(source, name, replacementFactory) {
  if (!(name in source)) {
    return;
  }

  const original = source[name];
  const wrapped = replacementFactory(original); // Make sure it's a function first, as we need to attach an empty prototype for `defineProperties` to work
  // otherwise it'll throw "TypeError: Object.defineProperties called on non-object"

  if (typeof wrapped === 'function') {
    try {
      markFunctionWrapped(wrapped, original);
    } catch (_Oo) {// This can throw if multiple fill happens on a global object like XMLHttpRequest
      // Fixes https://github.com/getsentry/sentry-javascript/issues/2043
    }
  }

  source[name] = wrapped;
}
/**
 * Defines a non-enumerable property on the given object.
 *
 * @param obj The object on which to set the property
 * @param name The name of the property to be set
 * @param value The value to which to set the property
 */


function addNonEnumerableProperty(obj, name, value) {
  Object.defineProperty(obj, name, {
    // enumerable: false, // the default, so we can save on bundle size by not explicitly setting it
    value: value,
    writable: true,
    configurable: true
  });
}
/**
 * Remembers the original function on the wrapped function and
 * patches up the prototype.
 *
 * @param wrapped the wrapper function
 * @param original the original function that gets wrapped
 */


function markFunctionWrapped(wrapped, original) {
  const proto = original.prototype || {};
  wrapped.prototype = original.prototype = proto;
  addNonEnumerableProperty(wrapped, '__sentry_original__', original);
}
/**
 * This extracts the original function if available.  See
 * `markFunctionWrapped` for more information.
 *
 * @param func the function to unwrap
 * @returns the unwrapped version of the function if available.
 */


function getOriginalFunction(func) {
  return func.__sentry_original__;
}
/**
 * Encodes given object into url-friendly format
 *
 * @param object An object that contains serializable values
 * @returns string Encoded
 */


function urlEncode(object) {
  return Object.keys(object).map(key => `${encodeURIComponent(key)}=${encodeURIComponent(object[key])}`).join('&');
}
/**
 * Transforms any `Error` or `Event` into a plain object with all of their enumerable properties, and some of their
 * non-enumerable properties attached.
 *
 * @param value Initial source that we have to transform in order for it to be usable by the serializer
 * @returns An Event or Error turned into an object - or the value argurment itself, when value is neither an Event nor
 *  an Error.
 */


function convertToPlainObject(value) {
  if (Object(_is_js__WEBPACK_IMPORTED_MODULE_1__[/* isError */ "d"])(value)) {
    return {
      message: value.message,
      name: value.name,
      stack: value.stack,
      ...getOwnProperties(value)
    };
  } else if (Object(_is_js__WEBPACK_IMPORTED_MODULE_1__[/* isEvent */ "f"])(value)) {
    const newObj = {
      type: value.type,
      target: serializeEventTarget(value.target),
      currentTarget: serializeEventTarget(value.currentTarget),
      ...getOwnProperties(value)
    };

    if (typeof CustomEvent !== 'undefined' && Object(_is_js__WEBPACK_IMPORTED_MODULE_1__[/* isInstanceOf */ "g"])(value, CustomEvent)) {
      newObj.detail = value.detail;
    }

    return newObj;
  } else {
    return value;
  }
}
/** Creates a string representation of the target of an `Event` object */


function serializeEventTarget(target) {
  try {
    return Object(_is_js__WEBPACK_IMPORTED_MODULE_1__[/* isElement */ "c"])(target) ? Object(_browser_js__WEBPACK_IMPORTED_MODULE_0__[/* htmlTreeAsString */ "c"])(target) : Object.prototype.toString.call(target);
  } catch (_oO) {
    return '<unknown>';
  }
}
/** Filters out all but an object's own properties */


function getOwnProperties(obj) {
  if (typeof obj === 'object' && obj !== null) {
    const extractedProps = {};

    for (const property in obj) {
      if (Object.prototype.hasOwnProperty.call(obj, property)) {
        extractedProps[property] = obj[property];
      }
    }

    return extractedProps;
  } else {
    return {};
  }
}
/**
 * Given any captured exception, extract its keys and create a sorted
 * and truncated list that will be used inside the event message.
 * eg. `Non-error exception captured with keys: foo, bar, baz`
 */


function extractExceptionKeysForMessage(exception, maxLength = 40) {
  const keys = Object.keys(convertToPlainObject(exception));
  keys.sort();

  if (!keys.length) {
    return '[object has no keys]';
  }

  if (keys[0].length >= maxLength) {
    return Object(_string_js__WEBPACK_IMPORTED_MODULE_2__[/* truncate */ "d"])(keys[0], maxLength);
  }

  for (let includedKeys = keys.length; includedKeys > 0; includedKeys--) {
    const serialized = keys.slice(0, includedKeys).join(', ');

    if (serialized.length > maxLength) {
      continue;
    }

    if (includedKeys === keys.length) {
      return serialized;
    }

    return Object(_string_js__WEBPACK_IMPORTED_MODULE_2__[/* truncate */ "d"])(serialized, maxLength);
  }

  return '';
}
/**
 * Given any object, return a new object having removed all fields whose value was `undefined`.
 * Works recursively on objects and arrays.
 *
 * Attention: This function keeps circular references in the returned object.
 */


function dropUndefinedKeys(inputValue) {
  // This map keeps track of what already visited nodes map to.
  // Our Set - based memoBuilder doesn't work here because we want to the output object to have the same circular
  // references as the input object.
  const memoizationMap = new Map(); // This function just proxies `_dropUndefinedKeys` to keep the `memoBuilder` out of this function's API

  return _dropUndefinedKeys(inputValue, memoizationMap);
}

function _dropUndefinedKeys(inputValue, memoizationMap) {
  if (Object(_is_js__WEBPACK_IMPORTED_MODULE_1__[/* isPlainObject */ "i"])(inputValue)) {
    // If this node has already been visited due to a circular reference, return the object it was mapped to in the new object
    const memoVal = memoizationMap.get(inputValue);

    if (memoVal !== undefined) {
      return memoVal;
    }

    const returnValue = {}; // Store the mapping of this value in case we visit it again, in case of circular data

    memoizationMap.set(inputValue, returnValue);

    for (const key of Object.keys(inputValue)) {
      if (typeof inputValue[key] !== 'undefined') {
        returnValue[key] = _dropUndefinedKeys(inputValue[key], memoizationMap);
      }
    }

    return returnValue;
  }

  if (Array.isArray(inputValue)) {
    // If this node has already been visited due to a circular reference, return the array it was mapped to in the new object
    const memoVal = memoizationMap.get(inputValue);

    if (memoVal !== undefined) {
      return memoVal;
    }

    const returnValue = []; // Store the mapping of this value in case we visit it again, in case of circular data

    memoizationMap.set(inputValue, returnValue);
    inputValue.forEach(item => {
      returnValue.push(_dropUndefinedKeys(item, memoizationMap));
    });
    return returnValue;
  }

  return inputValue;
}
/**
 * Ensure that something is an object.
 *
 * Turns `undefined` and `null` into `String`s and all other primitives into instances of their respective wrapper
 * classes (String, Boolean, Number, etc.). Acts as the identity function on non-primitives.
 *
 * @param wat The subject of the objectification
 * @returns A version of `wat` which can safely be used with `Object` class methods
 */


function objectify(wat) {
  let objectified;

  switch (true) {
    case wat === undefined || wat === null:
      objectified = new String(wat);
      break;
    // Though symbols and bigints do have wrapper classes (`Symbol` and `BigInt`, respectively), for whatever reason
    // those classes don't have constructors which can be used with the `new` keyword. We therefore need to cast each as
    // an object in order to wrap it.

    case typeof wat === 'symbol' || typeof wat === 'bigint':
      objectified = Object(wat);
      break;
    // this will catch the remaining primitives: `String`, `Number`, and `Boolean`

    case Object(_is_js__WEBPACK_IMPORTED_MODULE_1__[/* isPrimitive */ "j"])(wat):
      // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
      objectified = new wat.constructor(wat);
      break;
    // by process of elimination, at this point we know that `wat` must already be an object

    default:
      objectified = wat;
      break;
  }

  return objectified;
}



/***/ }),

/***/ "6Tdt":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = convertUnsafeMethod;

var _semverCompare = _interopRequireDefault(__webpack_require__("ycmj"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}
/*************************************************************************
* ADOBE CONFIDENTIAL
* ___________________
*
* Copyright 2019 Adobe
* All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains
* the property of Adobe and its suppliers, if any. The intellectual
* and technical concepts contained herein are proprietary to Adobe
* and its suppliers and are protected by all applicable intellectual
* property laws, including trade secret and copyright laws.
* Dissemination of this information or reproduction of this material
* is strictly forbidden unless prior written permission is obtained
* from Adobe.
**************************************************************************/

/**
 * This is a decorator that converts UNSAFE React lifecycle methods to their pre-React 16.3.0 variant
*/


function convertUnsafeMethod(WrappedComponent) {
  const proto = WrappedComponent.prototype;
  const UNSAFE_componentWillUpdate = proto.UNSAFE_componentWillUpdate;
  const UNSAFE_componentWillMount = proto.UNSAFE_componentWillMount;
  const UNSAFE_componentWillReceiveProps = proto.UNSAFE_componentWillReceiveProps;

  if ((0, _semverCompare.default)(_react.default.version, '16.3.0') === -1) {
    if (UNSAFE_componentWillUpdate) {
      proto.componentWillUpdate = function (props, state) {
        UNSAFE_componentWillUpdate.apply(this, arguments);
      };
    }

    if (UNSAFE_componentWillMount) {
      proto.componentWillMount = function () {
        UNSAFE_componentWillMount.apply(this, arguments);
      };
    }

    if (UNSAFE_componentWillReceiveProps) {
      proto.componentWillReceiveProps = function (props) {
        UNSAFE_componentWillReceiveProps.apply(this, arguments);
      };
    }
  }
}

/***/ }),

/***/ "6UQh":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("path", {
  d: "M26 22.086V11a1 1 0 0 0-1-1h-2a1 1 0 0 0-1 1v12.586a1 1 0 0 0 .293.707l6.3 6.3a1 1 0 0 0 1.414 0l1.336-1.336a1 1 0 0 0 0-1.414l-5.054-5.054a1 1 0 0 1-.289-.703z"
}), React.createElement("path", {
  d: "M24 7.8A16.2 16.2 0 1 1 7.8 24 16.219 16.219 0 0 1 24 7.8zM24 4a20 20 0 1 0 20 20A20 20 0 0 0 24 4z"
}));

/***/ }),

/***/ "6VA5":
/***/ (function(module, exports) {

/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
module.exports = {
  'ccd.infoPanel.detail.created': '[65] _cdo_Created',
  'ccd.infoPanel.detail.modified': '[66] _cdo_Modified',
  'ccd.infoPanel.detail.size': 'Size',
  'ccd.infoPanel.detail.shared': '[67] _cdo_Shared',
  'ccd.header.renameFolder': '[64] _cdo_Rename folder',
  'ccd.menu.addToFavourites': '[69] _cdo_Add to Shortcuts',
  'ccd.menu.removeFromFavourites': '[7E] _cdo_Remove shortcut',
  'ccd.menu.viewonweb': '[7G] _cdo_View on web',
  'ccd.menu.share': '[7F] _cdo_Share',
  'ccd.menu.openWith': '[7D] _cdo_Open in',
  'ccd.menu.changeDefaultApp': '[6+] _cdo_Change default application...',
  'ccd.menu.default': '[7A] _cdo_(Default)',
  'ccd.menu.export': '[7B] _cdo_Export as local copy',
  'ccd.menu.download': '[+J] _cdo_Download',
  'ccd.menu.createNew': '[6/] _cdo_Create new...',
  'ccd.menu.launch': '[7C] _cdo_LAUNCH',
  'actionMenuItem.permdelete': '[6d] _cdo_Delete permanently',
  'tab.Cloud Documents': '[9F] _cdo_Your files',
  'tab.Home': '[Rj] ãšsęt_Home',
  'header.CloudDocuments': '[8a] _cdo_Your files',
  'header.SharedWithYou': '[8i] _cdo_Shared with you',
  'header.Deleted': '[8e] _cdo_Deleted',
  'header.Deleted.AssetsWebLink': '[8f] _cdo_To view all deleted items, go to Assets Web',
  'header.SelectedDocuments': '[8h] _cdo_{numSelected, plural, =1 {#} other {#}} selected',
  'header.size': '[BAD] _cdo_Size',
  'header.title': '[BAE] _cdo_Name',
  'header.modifiedDate': '[BAB] _cdo_Date modified',
  'header.createDate': '[BAA] _cdo_Date created',
  'header.shareDate': '[BAC] _cdo_Date shared',
  'header.SortBy': '[8l] _cdo_Sort by',
  'header.infoPopover.body': '[8n] _cdo_Only compatible files are shown. To view all files, visit Creative Cloud on the web.',
  'header.infoPopover.link': '[8q] _cdo_Go to Creative Cloud',
  'header.dragImport': '[8m] _cdo_Upload to: {displayName}',
  'collaborators.onlyYou': '[7Z] _cdo_Only you',
  'collaborators.Owner': '[7Y] _cdo_{displayName} (owner)',
  'collaborators.More': '[7X] _cdo_{numItems, plural, other {+# more}}',
  'empty.offline.root.title': '[7z] _cdo_You\'re disconnected',
  'empty.offline.root.subtitle': '[7y] _cdo_Items visible while you were online will appear here when you reconnect.',
  'empty.offline.folder.title': '[7x] _cdo_Couldn\'t load folder',
  'empty.offline.folder.subtitle': '[7w] _cdo_No internet connection. Reconnect to view everything.',
  'empty.online.cdp.saveas.root.title': '[8I] _cdo_No cloud documents to show',
  'empty.online.cdp.saveas.root.subtitle': '[8E] _cdo_Cloud documents mean your work is always updated, across every device, wherever you are – just connect to the internet and go.',
  'empty.online.cdp.saveas.root.subtitle.sprk': '[8H] _cdo_All your cloud documents from XD will be right here. Work anywhere, even offline. Changes on cloud documents are auto saved and viewable in document history.',
  'empty.online.cdp.saveas.root.subtitle.phxs': '[8G] _cdo_All your cloud documents from Photoshop on Mac, Windows, and iPad will be right here.',
  'empty.online.cdp.saveas.root.subtitle.ilst': '[8F] _cdo_All your cloud documents from Illustrator on Mac and Windows will be right here.',
  'empty.online.cdp.saveas.root.subtitle.idsn': '[+e] _cdo_All your cloud documents from InDesign on Mac and Windows will be right here.',
  'empty.online.cdp.saveas.folder.title': '[8D] _cdo_No cloud documents to show',
  'empty.online.cdp.saveas.folder.subtitle': '[8C] _cdo_When you put a compatible cloud document in this folder, it will show up here.',
  'empty.online.cdp.open.root.title': '[8B] _cdo_No cloud documents to show',
  'empty.online.cdp.open.root.subtitle': '[79] _cdo_When you put a compatible cloud document in this folder, it will show up here.',
  'empty.online.cdp.open.root.subtitle.sprk': '[8A] _cdo_All your cloud documents from XD will be right here. Work anywhere, even offline. Changes on cloud documents are auto saved and viewable in document history.',
  'empty.online.cdp.open.root.subtitle.phxs': '[7/] _cdo_All your cloud documents from Photoshop on Mac, Windows, and iPad will be right here.',
  'empty.online.cdp.open.root.subtitle.ilst': '[7+] _cdo_All your cloud documents from Illustrator on Mac and Windows will be right here.',
  'empty.online.cdp.open.root.subtitle.idsn': '[+d] _cdo_All your cloud documents from InDesign on Mac and Windows will be right here.',
  'empty.online.cdp.open.folder.title': '[78] _cdo_No cloud documents to show',
  'empty.online.cdp.open.folder.subtitle': '[77] _cdo_When you put a compatible cloud document in this folder, it will show up here.',
  'empty.online.cdo.root.title': '[Xj] ãšsęt_You have no cloud documents',
  'empty.online.cdo.root.subtitle': '[72] _cdo_Collaborate seamlessly with others and work anywhere, even when you’re offline. Changes are autosaved and viewable in file history.',
  'empty.online.cdo.root.subtitle.sprk': '[75] _cdo_Collaborate seamlessly in real time with others and work anywhere, even offline. Changes are autosaved and viewable in file history.',
  'empty.online.cdo.root.subtitle.phxs': '[74] _cdo_Collaborate seamlessly with others and work anywhere you sign in to Photoshop, even when you’re offline. Changes are autosaved and viewable in file history.',
  'empty.online.cdo.root.subtitle.ilst': '[73] _cdo_Collaborate seamlessly with others and work anywhere you sign in to Illustrator, even when you’re offline. Changes are autosaved and viewable in file history.',
  'empty.online.cdo.root.subtitle.idsn': '[+c] _cdo_Access your documents from anywhere you sign in to InDesign. Changes are autosaved.',
  'empty.online.cdo.folder.title': '[71] _cdo_No cloud documents to show',
  'empty.online.cdo.folder.subtitle': '[70] _cdo_When you put a compatible cloud document in this folder, it will show up here.',
  'empty.title.deleted': '[8T] _cdo_You don\'t have any deleted files',
  'empty.title.deleted_offline': '[8U] _cdo_You\'re disconnected',
  'empty.title.recent': '[Ge] _cdo_You have no recent files',
  'empty.subtext.deleted_offline': '[8M] _cdo_Items deleted while you were online will appear here when you reconnect.',
  'empty.title.shared_with_you': '[8X] _cdo_You have no shared cloud documents',
  'empty.subtext.shared_with_you': '[8O] _cdo_When someone shares cloud documents with you, they will show up here.',
  'empty.title.shared_with_you_offline': '[8Y] _cdo_You\'re disconnected',
  'empty.subtext.shared_with_you_offline': '[8P] _cdo_You can view and edit shared documents when your connection is back.',
  'empty.title.error': '[Yl] ãšsęt_Something went wrong',
  'empty.subtext.error': '[8N] _cdo_Please restart the app and try again.',
  'empty.subtext.error.web': '[+b] _cdo_Refresh your browser and try again.',
  'empty.title.coresync.down': '[8R] _cdo_Unable to load',
  'empty.subtext.coresync.down': '[8K] _cdo_The cloud isn\’t syncing. Make sure Creative Cloud desktop is updated or try restarting the app.',
  'empty.title.coresync.incompatible': '[8S] _cdo_Can\'t load cloud documents',
  'empty.subtext.coresync.incompatible': '[8L] _cdo_We can\'t show items right now. Please update your version of the Creative Cloud application and try again.',
  'empty.title.cloudStorageDisabled': '[8Q] _cdo_Cloud documents are not available',
  'empty.subtext.cloudStorageDisabled': '[8J] _cdo_You can use {productName} to work on files on your device only. Contact your IT administrator for more info.',
  'empty.title.logout': '[8W] _cdo_Sign in to access cloud documents.',
  'empty.learnMore.link': '[7v] _cdo_Learn more',
  'trueEmpty.online.cdo.folder.title': '[97] _cdo_There\'s nothing in this folder',
  'trueEmpty.online.cdo.folder.subtitle': '[96] _cdo_Add things here to start filling it.',
  'trueEmpty.online.cdp.saveas.folder.title': '[9/] _cdo_No cloud documents—yet',
  'trueEmpty.online.cdp.saveas.folder.subtitle': '[9+] _cdo_Cloud documents mean your work is always updated, across every device, wherever you are—just connect to the internet and go.',
  'trueEmpty.online.cdp.open.folder.title': '[99] _cdo_No cloud documents—yet',
  'trueEmpty.online.cdp.open.folder.subtitle': '[98] _cdo_Cloud documents mean your work is always updated, across every device, wherever you are—just connect to the internet and go.',
  'filter.prompt': '[Gf] _cdo_Enter keyword',
  'filter.title': '[Gg] _cdo_Filter',
  'empty.filter.title': '[+B] _cdo_No results for "{filterString}"',
  'empty.filter.subtitle': '[+A] _cdo_Check your spelling, try a broader keyword, or filter a different location.',
  'beta.title': '[6i] _cdo_Sync your work across your devices',
  'beta.subtitle': '[6g] _cdo_Work seamlessly in Photoshop on your iPad and desktop with cloud documents. But the feature is in beta, so it might not always work as expected. Turn it on and off in preferences.',
  'beta.button': '[6e] _cdo_Turn On In Preferences',
  'beta.tag': '[6h] _cdo_BETA',
  'beta.feedback.link': '[6f] _cdo_Give Feedback On The Beta',
  'button.add-folder': '[PG] ãšsęt_Create new folder',
  'button.upload': '[63] _cdo_Upload...',
  'button.createnew': '[6l] _cdo_Create New',
  'button.reportAbuse': '[+0] _cdo_Report Abuse',
  'button.open': '[VF] ãšsęt_Open',
  'button.select': '[6y] _cdo_Select',
  'button.rename': '[VI] ãšsęt_Rename',
  'button.pin.header': '[6v] _cdo_Make available offline always',
  'button.pin': '[6u] _cdo_Make available offline always',
  'button.unpin.header': '[62] _cdo_Make available online-only',
  'button.unpin': '[61] _cdo_Make available online-only',
  'button.duplicate': '[6o] _cdo_Duplicate',
  'button.download': 'Download',
  'button.move': '[6r] _cdo_Move',
  'button.delete': '[6m] _cdo_Delete',
  'button.restore': '[6x] _cdo_Restore',
  'button.permdelete': '[Wn] ãšsęt_Delete Permanently',
  'button.listview': '[6q] _cdo_View List',
  'button.gridview': '[6p] _cdo_View Grid',
  'button.sharesheetinvite': '[aw] ãšsęt_Invite to edit',
  'button.sharesheetLink': '[PT] ãšsęt_Get link',
  'button.shareSheetAction': '[+K] _cdo_Share',
  'button.preview': '[VH] ãšsęt_Preview',
  'button.schedule': '[/f] _cdo_Schedule',
  'action.duplicate.suffix': '[6c] _cdo_(Duplicate)',
  'action.resolve_sync_error.suffix': '[Xh] ãšsęt_copy',
  'statusIcon.conflicted': '[9B] _cdo_Sync conflict',
  'statusIcon.onlineOnly': '[9C] _cdo_Online-only',
  'statusIcon.availableOffline': '[9A] _cdo_Available offline',
  'statusIcon.syncing': '[9D] _cdo_Syncing...',
  'statusIcon.waitingToSync': '[9E] _cdo_Waiting to sync',
  'tooltip.error': '[9z] _cdo_Open document to review save conflict',
  'toast.error.documentIsOpen': '[9K] _cdo_Close the {count, plural, =1 {document} other {documents}} to perform this action.',
  'toast.error.exceedsQuota.personal': '[/S] _cdo_Your account is out of storage',
  'toast.error.exceedsQuota.enterprise': '[/R] _cdo_Out of storage, contact your admin for more info',
  'toast.operation.duplicate.error': '[9Y] _cdo_Couldn\'t duplicate {count, plural, =1 {item} other {{count} items}}.',
  'toast.operation.duplicate.success': '[9Z] _cdo_{count, plural, =1 {Item} other {{count} items}} duplicated.',
  'toast.operation.archive.error': '[9R] _cdo_Couldn\'t delete {count, plural, =1 {item} other {{count} items}}.',
  'toast.operation.archive.error.otherAppUncommittedChanges': '[/h] _cdo_You can\'t delete files open in other apps. Close them and then try again.',
  'toast.operation.archive.undo.error': '[9T] _cdo_Couldn\'t delete {count, plural, =1 {item} other {{count} items}}.',
  'toast.operation.archive.success': '[9S] _cdo_{count, plural, =1 {Item} other {{count} items}} deleted.',
  'toast.operation.archive.undo.success': '[9U] _cdo_Restore undone.',
  'toast.operation.permdelete.error': '[9i] _cdo_Couldn\'t permanently delete {count, plural, =1 {item} other {{count} items}}.',
  'toast.operation.permdelete.success': '[9j] _cdo_{count, plural, =1 {Item} other {{count} items}} permanently deleted.',
  'toast.operation.rename.error': '[9k] _cdo_Couldn\'t rename item.',
  'toast.operation.rename.undo.error': '[9n] _cdo_Couldn\'t rename item.',
  'toast.operation.rename.error.duplicateName': '[9l] _cdo_You already have an item here with this name.',
  'toast.operation.rename.undo.error.duplicateName': '[9o] _cdo_You already have an item here with this name.',
  'toast.operation.rename.success': '[9m] _cdo_Item renamed.',
  'toast.operation.rename.undo.success': '[9p] _cdo_Rename undone.',
  'toast.operation.move.error': '[9a] _cdo_Couldn\'t move {count, plural, =1 {item} other {{count} items}}.',
  'toast.operation.move.undo.error': '[9e] _cdo_Couldn\'t move {count, plural, =1 {item} other {{count} items}}.',
  'toast.operation.move.error.duplicateFolderName': '[9c] _cdo_You already have a folder here with this name.',
  'toast.operation.move.undo.error.duplicateFolderName': '[9g] _cdo_You already have a folder here with this name.',
  'toast.operation.move.error.duplicateDocName': '[9b] _cdo_{count, plural, =1 {There’s already a document with this name in that folder. Rename and try again.} other {Documents can’t be moved because there are documents with the same name.}}',
  'toast.operation.move.undo.error.duplicateDocName': '[9f] _cdo_{count, plural, =1 {There’s already a document with this name in that folder. Rename and try again.} other {Documents can’t be moved because there are documents with the same name.}}',
  'toast.operation.move.success': '[9d] _cdo_{count, plural, =1 {Item} other {{count} items}} moved.',
  'toast.operation.move.undo.success': '[9h] _cdo_Move undone.',
  'toast.operation.unarchive.error': '[9q] _cdo_Couldn\'t restore {count, plural, =1 {item} other {{count} items}}.',
  'toast.operation.unarchive.undo.error': '[9s] _cdo_Couldn\'t restore {count, plural, =1 {item} other {{count} items}}.',
  'toast.operation.unarchive.success': '[9r] _cdo_{count, plural, =1 {Item} other {{count} items}} restored.',
  'toast.operation.unarchive.undo.success': '[9t] _cdo_Delete undone.',
  'toast.operation.create_new_folder.success': '[9X] _cdo_Folder created.',
  'toast.operation.create_new_folder.error': '[9V] _cdo_Couldn\'t create new folder.',
  'toast.operation.create_new_folder.error.duplicateName': '[9W] _cdo_You already have a folder here with this name.',
  'toast.operation.user_pin.success': '[9w] _cdo_{count, plural, =1 {Item} other {{count} items}} available offline.',
  'toast.operation.user_pin.error': '[9v] _cdo_Couldn\'t make {count, plural, =1 {item} other {{count} items}} available offline.',
  'toast.operation.user_unpin.success': '[9y] _cdo_{count, plural, =1 {Item} other {{count} items}} available online-only.',
  'toast.operation.user_unpin.error': '[9x] _cdo_Couldn\'t make {count, plural, =1 {item} other {{count} items}} available online-only.',
  'toast.operation.resolve_sync_error.success': '[Ga] _cdo_Copy of "{name}" created. You can compare both documents and reconcile any differences.',
  'toast.ccd.scroll_to_item.fetching': '[9J] _cdo_Fetching file…',
  'toast.ccd.scroll_to_item.error': '[9I] _cdo_File not found',
  'toast.info.disabled_rename_to_open_item': '[9Q] _cdo_Legacy XD documents must first be opened before they can be renamed here.',
  'toast.action.disabled_rename_to_open_item': '[9H] _cdo_Open Document',
  'toast.error.rename.invalidName': '[9P] _cdo_Sorry, this name contains invalid character(s).',
  'toast.error.rename.invalidChar': '[9N] _cdo_Name cannot contain the following characters: {characters}',
  'toast.error.rename.invalidEnd': '[9O] _cdo_Name cannot end with "." or empty space.',
  'toast.error.rename.charRestriction': '[9L] _cdo_Names can\'t be longer than 200 characters.',
  'toast.error.rename.duplicateName': '[9M] _cdo_You already have a cloud document here with this name.',
  'toast.success.reportAbuse': '[/L] _cdo_Successfully reported abuse',
  'toast.error.reportAbuse': '[/K] _cdo_Failed to report abuse',
  'toast.operation.undoLabel': '[SJ] ãšsęt_Undo',
  'dialog.permdelete.heading': '[7t] _cdo_Delete permanently',
  'dialog.permdelete.warning': '[7u] _cdo_You cannot undo this action. Here\'s what will be gone for good:',
  'dialog.permdelete.cancelButton': 'Cancel',
  'dialog.permdelete.confirmButton': '[7r] _cdo_Delete permanently',
  'dialog.permdelete.countItems': '[7s] _cdo_{count, plural, =1 {# item} other {# items}}',
  'dialog.nonemptyfolder.heading': '[/O] _cdo_Are you sure you want to delete {count, plural, =1 {this folder} other {these folders}}?',
  'dialog.nonemptyfolder.warning': '[/Q] _cdo_{count, plural, =1 {This folder is} other {These folders are}} not empty, and may contain files that are not visible in {appName}. You can continue deleting, or view the {count, plural, =1 {folder} other {folders}} on the web to check out {count, plural, =1 {its} other {their}} contents.  {viewOnWebLink}',
  'dialog.nonemptyfolder.cancelButton': '[/T] _cdo_Cancel',
  'dialog.nonemptyfolder.confirmButton': '[/N] _cdo_Delete',
  'dialog.nonemptyfolder.viewOnWebButton': '[/P] _cdo_View on the web',
  'dialog.addfolder.heading': '[PG] ãšsęt_Create new folder',
  'dialog.addfolder.cancelButton': 'Cancel',
  'dialog.addfolder.confirmButton': '[XS] ãšsęt_Save',
  'dialog.addfolder.placeholder': '[7i] _cdo_New Folder',
  'dialog.addfolder.invalidChar': '[7f] _cdo_Names can\'t contain the following characters: {characters}',
  'dialog.addfolder.invalidName': '[7h] _cdo_Sorry, this folder contains invalid character(s).',
  'dialog.addfolder.invalidEnd': '[7g] _cdo_Name cannot end with "." or empty space.',
  'dialog.addfolder.duplicateName': '[7d] _cdo_You already have a folder here with this name.',
  'dialog.addfolder.charRestriction': '[7b] _cdo_Names can\'t be longer than 200 characters.',
  'dialog.moveFolder.heading': '[7o] _cdo_Move to...',
  'dialog.moveFolder.cancelButton': 'Cancel',
  'dialog.moveFolder.moveButton': '[Pi] ãšsęt_Move',
  'dialog.moveFolder.createNewFolderButton': '[7n] _cdo_Add folder',
  'dialog.reportAbuse.cancelButton': '[+2] _cdo_Cancel',
  'dialog.reportAbuse.reportAbuseButton': '[/E] _cdo_Report Abuse',
  'dialog.reportAbuse.heading': '[++] _cdo_Report Abuse',
  'dialog.reportAbuse.emailInput': '[+6] _cdo_Your Email',
  'dialog.reportAbuse.nameInput': '[/A] _cdo_Your Name',
  'dialog.reportAbuse.radioButtonText': '[/D] _cdo_Why are you reporting this content?',
  'dialog.reportAbuse.defamation': '[+3] _cdo_Defamation',
  'dialog.reportAbuse.hate': '[+9] _cdo_Racist or Hate content',
  'dialog.reportAbuse.trademark': '[/I] _cdo_Trademark Infringment',
  'dialog.reportAbuse.pornography': '[/C] _cdo_Sexually Explicit Content',
  'dialog.reportAbuse.vulgar': '[/J] _cdo_Offensive Content',
  'dialog.reportAbuse.other': '[/B] _cdo_Other',
  'dialog.reportAbuse.inappropriate': '[+/] _cdo_Inappropriate',
  'dialog.reportAbuse.age': '[+1] _cdo_Age inaccuracy',
  'dialog.reportAbuse.gender': '[+8] _cdo_Gender inaccuracy',
  'dialog.reportAbuse.description': '[+5] _cdo_If you feel that this Creative Cloud content violates the Adobe Terms of Use, you may report this content by filling out this quick form.',
  'dialog.reportAbuse.describeConcern': '[+4] _cdo_Describe Concern',
  'dialog.reportAbuse.success': '[/G] _cdo_Successfully reported abuse',
  'dialog.reportAbuse.failure': '[+7] _cdo_Failed to report abuse',
  'dialog.reportAbuse.textAreaTitle': '[/H] _cdo_Please provide a description of your concern',
  'dialog.reportAbuse.required': '[/F] _cdo_Required',
  'dialog.cachefull.title': '[7l] _cdo_Can\'t make available offline',
  'dialog.cachefull.message': '[7k] _cdo_You\'re out of space on your device. Make documents online-only to free up space.',
  'dialog.cachefull.confirm': '[7j] _cdo_Ok',
  'dialog.syncError.heading': '[GL] _cdo_This document has stopped syncing to the cloud',
  'dialog.syncError.body1': '[GJ] _cdo_We recommend you save your latest version as a copy and restore the document to the last version saved in the cloud.',
  'dialog.syncError.body2': '[GK] _cdo_You can open this document and make edits, but your changes will not be saved to the cloud.',
  'dialog.syncError.offline': '[Gc] _cdo_You must be online to save a copy and restore the original.',
  'dialog.syncError.learnMore': '[GM] _cdo_Learn more',
  'dialog.syncError.resolveButton': '[GO] _cdo_Save a copy and restore',
  'dialog.syncError.openButton': '[VF] ãšsęt_Open',
  'dialog.syncErrorCopyFail.heading': '[GT] _cdo_Could not save a copy',
  'dialog.syncErrorCopyFail.body1': '[GP] _cdo_You can still open this document and make edits, but your changes will not be saved to the cloud.',
  'dialog.syncErrorCopyFail.body2': '[GQ] _cdo_Please contact Adobe Customer Care for further assistance. (Error: LocalContentSyncSuspended)',
  'dialog.syncErrorCopyFail.closeButton': '[GR] _cdo_Close',
  'dialog.syncErrorCopyFail.contactUs': '[GS] _cdo_Contact us',
  'dialog.syncErrorPurgeFail.heading': '[GY] _cdo_Could not restore to last version saved in cloud',
  'dialog.syncErrorPurgeFail.body1': '[GU] _cdo_A copy of your document has been created, but we could not restore your document to the last saved version in the cloud.',
  'dialog.syncErrorPurgeFail.body2': '[GV] _cdo_Please contact Adobe Customer Care for further assistance. (Error: LocalContentSyncSuspended)',
  'dialog.syncErrorPurgeFail.closeButton': '[GW] _cdo_Close',
  'dialog.syncErrorPurgeFail.contactUs': '[GX] _cdo_Contact us',
  'onboardingCdo.banner.title.sprk': '[80] _cdo_A better way to work',
  'onboardingCdo.banner.title.phxs': '[8z] _cdo_Using Photoshop on iPad? Try cloud documents',
  'onboardingCdo.banner.title.ilst': '[8y] _cdo_Now you can use cloud documents in Illustrator',
  'onboardingCdo.banner.title.idsn': '[+g] _cdo_Now you can use cloud documents in InDesign',
  'onboardingCdo.banner.message.sprk': '[8x] _cdo_Edit your cloud documents anywhere, even offline. Changes are auto saved and viewable in document history. Share them with others to collaborate seamlessly in real time.',
  'onboardingCdo.banner.message.phxs': '[8w] _cdo_Cloud documents save automatically to Adobe\’s cloud as you work, so you can access your files on desktop or iPad.',
  'onboardingCdo.banner.message.ilst': '[8v] _cdo_Cloud documents in Illustrator automatically save to Adobe\’s cloud as you work. You can also view the version history to see how your work has evolved.',
  'onboardingCdo.banner.message.idsn': '[+f] _cdo_Cloud documents in InDesign automatically save to Adobe\'s cloud as you work.',
  'onboardingCdo.banner.linkTitle': '[8u] _cdo_Learn more',
  'onboardingCdo.banner.confirm': '[5626916] OK',
  'operation.progress.archive': '[81] _cdo_Deleting {batchSize, plural, =1 {1 item} other {{inProgressNum} of {batchSize} items}}...',
  'operation.progress.unarchive': '[87] _cdo_Restoring {batchSize, plural, =1 {1 item} other {{inProgressNum} of {batchSize} items}}...',
  'operation.progress.move': '[84] _cdo_Moving {batchSize, plural, =1 {1 item} other {{inProgressNum} of {batchSize} items}}...',
  'operation.progress.permdelete': '[85] _cdo_Permanently deleting {batchSize, plural, =1 {1 item} other {{inProgressNum} of {batchSize} items}}...',
  'operation.progress.rename': '[86] _cdo_Renaming {batchSize, plural, =1 {1 item} other {{inProgressNum} of {batchSize} items}}...',
  'operation.progress.create_new_folder': '[82] _cdo_Creating new folder...',
  'operation.progress.duplicate': '[83] _cdo_Duplicating {batchSize, plural, =1 {1 item} other {{inProgressNum} of {batchSize} items}}...',
  'operation.progress.user_pin': '[88] _cdo_Making {batchSize, plural, =1 {1 item} other {{inProgressNum} of {batchSize} items}} available offline...',
  'operation.progress.user_unpin': '[89] _cdo_Making {batchSize, plural, =1 {1 item} other {{inProgressNum} of {batchSize} items}} available online-only...',
  'operation.progress.resolve_sync_error': '[GZ] _cdo_Copying and restoring to last saved version in the cloud...',
  'tooltip.offline.general': '[91] _cdo_Internet connection is required.',
  'tooltip.offline.create-new-folder': '[90] _cdo_Internet connection is required to create folders.',
  'tooltip.offline.move': '[92] _cdo_Internet connection is required to move items.',
  'tooltip.syncing.disabled': '[95] _cdo_Pending sync completion',
  'tooltip.rename.disabled': '[93] _cdo_A selected document cannot be renamed. Please open in host application to enable renaming.',
  'tooltip.rename.disabled.sprk': '[94] _cdo_This file can’t be renamed until you open it in XD.',
  'tooltip.syncSuspended.needsAction': '[Gb] _cdo_Syncing has stopped. Open to take action.',
  'tooltip.syncSuspended.noAction': '[/d] _cdo_Syncing has stopped.  This action is not allowed at this time.',
  'Recents.title': '[Qy] ãšsęt_Recent',
  'Recents.cloudDocTitle': '[6X] _cdo_CLOUD DOCUMENT',
  'Recents.error.subtext.coreSync': '[6U] _cdo_Recents are unavailable right now because Creative Cloud Sync is not running properly.',
  'item.saveForOfflineIconToolTip': '[8s] _cdo_This document has been downloaded and is fully available offline.',
  'item.disconnected.cloudonly': '[8r] _cdo_You\'re disconnected. Please reconnect to open the document.',
  'item.coresyncdown.cloudonly': '[/e] _cdo_Can\'t load file. Updating or restarting Creative Cloud may fix this.',
  'folder.subtitle': '[8Z] _cdo_FOLDER',
  'review.subtitle': '[BAI] _cdo_REVIEW',
  'prototype.subtitle': '[BAH] _cdo_PROTOTYPE',
  'designspecs.subtitle': '[BAK] _cdo_DESIGN SPECS',
  'project.subtitle': '[BAG] _cdo_PROJECT',
  'library.subtitle': '[BAF] _cdo_LIBRARY',
  'webLink.subtitle': '[BAJ] _cdo_WEB LINK',
  'abbreviations.fileSize.byte': '[6W] _cdo_B',
  'abbreviations.fileSize.kilobyte': '[6Z] _cdo_KB',
  'abbreviations.fileSize.megabyte': '[6a] _cdo_MB',
  'abbreviations.fileSize.gigabyte': '[6Y] _cdo_GB',
  'abbreviations.fileSize.terabyte': '[6b] _cdo_TB',
  'sam.copyNameFormat': '[8/] _cdo_%@ copy',
  'cloudsync.quota.title': '[7N] _cdo_CLOUD STORAGE',
  'cloudsync.quota.percentage': '[7M] _cdo_{percentageUsed}%',
  'cloudsync.quota.usage': '[7O] _cdo_{usedCloudQuotaString} of {maxCloudQuotaString} used',
  'cloudsync.quota.warning': '[7P] _cdo_Your cloud storage is full. Upgrade to continue syncing your work.',
  'cloudsync.quota.error': '[7L] _cdo_No storage information available...',
  'cloudsync.quota.upgrade': '[/M] _cdo_Upgrade',
  'cloudsync.status.complete.title': '[7Q] _cdo_Synced and backed up',
  'cloudsync.status.syncing.title': '[7W] _cdo_Syncing cloud documents',
  'cloudsync.status.syncing.descr': '[7V] _cdo_{progress}/{total}',
  'cloudsync.status.offline.title': '[7U] _cdo_Working offline',
  'cloudsync.status.offline.descr': '[7T] _cdo_We\'re saving locally. Documents will sync to the cloud when you\'re connected again.',
  'cloudsync.status.disabled.title': '[7S] _cdo_Sync disabled',
  'cloudsync.status.disabled.descr': '[7R] _cdo_We\'re saving locally. Documents will sync to the cloud when storage is available.',
  'cloudsync.item.progress.determinate': '[7I] _cdo_{progress}/{total}',
  'cloudsync.item.progress.indeterminate': '[7J] _cdo_Syncing...',
  'cloudsync.item.complete': '[7H] _cdo_Complete',
  'cloudsync.items.header': '[7K] _cdo_Network activity',
  'cloudsync.alert.title.coresync.down': '[/V] _cdo_Unable to load',
  'cloudsync.alert.subtext.coresync.down': '[/U] _cdo_The cloud isn\’t syncing. Make sure Creative Cloud desktop is updated or try restarting the app.',
  'cloudsync.alert.subtext.coresync.down.learnmore': '[/Y] _cdo_Learn more',
  'cloudsync.tooltip.offline': '[/k] _cdo_Disconnected',
  'cloudsync.tooltip.error': '[/j] _cdo_Error',
  'cloudsync.tooltip.syncing': '[/l] _cdo_Saving...',
  'cloudsync.tooltip.default': '[/i] _cdo_Saved',
  'cloudsync.singleDoc.offline.title': '[/q] _cdo_Disconnected',
  'cloudsync.singleDoc.offline.descr': '[/p] _cdo_Trying to reconnect...',
  'cloudsync.singleDoc.offline.timestamp': '[/+] _cdo_Last synced {time}',
  'cloudsync.singleDoc.error.samInitFail.title': '[/2] _cdo_The cloud stopped syncing',
  'cloudsync.singleDoc.error.samInitFail.descr': '[/1] _cdo_Please restart this app to continue syncing your work.',
  'cloudsync.singleDoc.error.syncSuspended.title': '[/4] _cdo_The cloud stopped syncing',
  'cloudsync.singleDoc.error.syncSuspended.descr': '[/3] _cdo_Please restart this app to continue syncing your work.',
  'cloudsync.singleDoc.error.title': '[/o] _cdo_Unable to load',
  'cloudsync.singleDoc.error.descr': '[/n] _cdo_The cloud isn\’t syncing. Make sure Creative Cloud desktop is updated or try restarting the app.',
  'cloudsync.singleDoc.error.learnMore': '[/8] _cdo_Learn more',
  'cloudsync.singleDoc.disabled.quotaExceeded.title': '[/6] _cdo_Your cloud storage is full',
  'cloudsync.singleDoc.disabled.quotaExceeded.descr': '[/5] _cdo_Please upgrade Creative Cloud to continue syncing your work.',
  'cloudsync.singleDoc.syncing.title': '[/s] _cdo_Saving...',
  'cloudsync.singleDoc.syncing.descr': '[/r] _cdo_In progress',
  'cloudsync.singleDoc.disabled.title': '[/7] _cdo_Can\'t save',
  'cloudsync.singleDoc.disabled.descr': '[/9] _cdo_Your account is out of storage.',
  'cloudsync.singleDoc.complete.title': '[/m] _cdo_File Saved',
  'cloudsync.singleDoc.complete.timestamp': '[//] _cdo_Last synced {time}'
};

/***/ }),

/***/ "6X9h":
/***/ (function(module) {

module.exports = JSON.parse("{\"Breadcrumbs\":\"Caminho detalhado\"}");

/***/ }),

/***/ "6hSO":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return addInstrumentationHandler; });
/* harmony import */ var _is_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("9AQC");
/* harmony import */ var _logger_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("8LbN");
/* harmony import */ var _object_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("6PXS");
/* harmony import */ var _stacktrace_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("pRiV");
/* harmony import */ var _supports_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("4Ssk");
/* harmony import */ var _worldwide_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("rbyU");





 // eslint-disable-next-line deprecation/deprecation

const WINDOW = Object(_worldwide_js__WEBPACK_IMPORTED_MODULE_5__[/* getGlobalObject */ "b"])();
/**
 * Instrument native APIs to call handlers that can be used to create breadcrumbs, APM spans etc.
 *  - Console API
 *  - Fetch API
 *  - XHR API
 *  - History API
 *  - DOM API (click/typing)
 *  - Error API
 *  - UnhandledRejection API
 */

const handlers = {};
const instrumented = {};
/** Instruments given API */

function instrument(type) {
  if (instrumented[type]) {
    return;
  }

  instrumented[type] = true;

  switch (type) {
    case 'console':
      instrumentConsole();
      break;

    case 'dom':
      instrumentDOM();
      break;

    case 'xhr':
      instrumentXHR();
      break;

    case 'fetch':
      instrumentFetch();
      break;

    case 'history':
      instrumentHistory();
      break;

    case 'error':
      instrumentError();
      break;

    case 'unhandledrejection':
      instrumentUnhandledRejection();
      break;

    default:
      (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && _logger_js__WEBPACK_IMPORTED_MODULE_1__[/* logger */ "c"].warn('unknown instrumentation type:', type);
      return;
  }
}
/**
 * Add handler that will be called when given type of instrumentation triggers.
 * Use at your own risk, this might break without changelog notice, only used internally.
 * @hidden
 */


function addInstrumentationHandler(type, callback) {
  handlers[type] = handlers[type] || [];
  handlers[type].push(callback);
  instrument(type);
}
/** JSDoc */


function triggerHandlers(type, data) {
  if (!type || !handlers[type]) {
    return;
  }

  for (const handler of handlers[type] || []) {
    try {
      handler(data);
    } catch (e) {
      (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && _logger_js__WEBPACK_IMPORTED_MODULE_1__[/* logger */ "c"].error(`Error while triggering instrumentation handler.\nType: ${type}\nName: ${Object(_stacktrace_js__WEBPACK_IMPORTED_MODULE_3__[/* getFunctionName */ "b"])(handler)}\nError:`, e);
    }
  }
}
/** JSDoc */


function instrumentConsole() {
  if (!('console' in WINDOW)) {
    return;
  }

  _logger_js__WEBPACK_IMPORTED_MODULE_1__[/* CONSOLE_LEVELS */ "a"].forEach(function (level) {
    if (!(level in WINDOW.console)) {
      return;
    }

    Object(_object_js__WEBPACK_IMPORTED_MODULE_2__[/* fill */ "e"])(WINDOW.console, level, function (originalConsoleMethod) {
      return function (...args) {
        triggerHandlers('console', {
          args,
          level
        }); // this fails for some browsers. :(

        if (originalConsoleMethod) {
          originalConsoleMethod.apply(WINDOW.console, args);
        }
      };
    });
  });
}
/** JSDoc */


function instrumentFetch() {
  if (!Object(_supports_js__WEBPACK_IMPORTED_MODULE_4__[/* supportsNativeFetch */ "d"])()) {
    return;
  }

  Object(_object_js__WEBPACK_IMPORTED_MODULE_2__[/* fill */ "e"])(WINDOW, 'fetch', function (originalFetch) {
    return function (...args) {
      const handlerData = {
        args,
        fetchData: {
          method: getFetchMethod(args),
          url: getFetchUrl(args)
        },
        startTimestamp: Date.now()
      };
      triggerHandlers('fetch', { ...handlerData
      }); // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access

      return originalFetch.apply(WINDOW, args).then(response => {
        triggerHandlers('fetch', { ...handlerData,
          endTimestamp: Date.now(),
          response
        });
        return response;
      }, error => {
        triggerHandlers('fetch', { ...handlerData,
          endTimestamp: Date.now(),
          error
        }); // NOTE: If you are a Sentry user, and you are seeing this stack frame,
        //       it means the sentry.javascript SDK caught an error invoking your application code.
        //       This is expected behavior and NOT indicative of a bug with sentry.javascript.

        throw error;
      });
    };
  });
}
/* eslint-disable @typescript-eslint/no-unsafe-member-access */

/** Extract `method` from fetch call arguments */


function getFetchMethod(fetchArgs = []) {
  if ('Request' in WINDOW && Object(_is_js__WEBPACK_IMPORTED_MODULE_0__[/* isInstanceOf */ "g"])(fetchArgs[0], Request) && fetchArgs[0].method) {
    return String(fetchArgs[0].method).toUpperCase();
  }

  if (fetchArgs[1] && fetchArgs[1].method) {
    return String(fetchArgs[1].method).toUpperCase();
  }

  return 'GET';
}
/** Extract `url` from fetch call arguments */


function getFetchUrl(fetchArgs = []) {
  if (typeof fetchArgs[0] === 'string') {
    return fetchArgs[0];
  }

  if ('Request' in WINDOW && Object(_is_js__WEBPACK_IMPORTED_MODULE_0__[/* isInstanceOf */ "g"])(fetchArgs[0], Request)) {
    return fetchArgs[0].url;
  }

  return String(fetchArgs[0]);
}
/* eslint-enable @typescript-eslint/no-unsafe-member-access */

/** JSDoc */


function instrumentXHR() {
  if (!('XMLHttpRequest' in WINDOW)) {
    return;
  }

  const xhrproto = XMLHttpRequest.prototype;
  Object(_object_js__WEBPACK_IMPORTED_MODULE_2__[/* fill */ "e"])(xhrproto, 'open', function (originalOpen) {
    return function (...args) {
      // eslint-disable-next-line @typescript-eslint/no-this-alias
      const xhr = this;
      const url = args[1];
      const xhrInfo = xhr.__sentry_xhr__ = {
        // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
        method: Object(_is_js__WEBPACK_IMPORTED_MODULE_0__[/* isString */ "l"])(args[0]) ? args[0].toUpperCase() : args[0],
        url: args[1]
      }; // if Sentry key appears in URL, don't capture it as a request
      // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access

      if (Object(_is_js__WEBPACK_IMPORTED_MODULE_0__[/* isString */ "l"])(url) && xhrInfo.method === 'POST' && url.match(/sentry_key/)) {
        xhr.__sentry_own_request__ = true;
      }

      const onreadystatechangeHandler = function () {
        if (xhr.readyState === 4) {
          try {
            // touching statusCode in some platforms throws
            // an exception
            xhrInfo.status_code = xhr.status;
          } catch (e) {
            /* do nothing */
          }

          triggerHandlers('xhr', {
            args,
            endTimestamp: Date.now(),
            startTimestamp: Date.now(),
            xhr
          });
        }
      };

      if ('onreadystatechange' in xhr && typeof xhr.onreadystatechange === 'function') {
        Object(_object_js__WEBPACK_IMPORTED_MODULE_2__[/* fill */ "e"])(xhr, 'onreadystatechange', function (original) {
          return function (...readyStateArgs) {
            onreadystatechangeHandler();
            return original.apply(xhr, readyStateArgs);
          };
        });
      } else {
        xhr.addEventListener('readystatechange', onreadystatechangeHandler);
      }

      return originalOpen.apply(xhr, args);
    };
  });
  Object(_object_js__WEBPACK_IMPORTED_MODULE_2__[/* fill */ "e"])(xhrproto, 'send', function (originalSend) {
    return function (...args) {
      if (this.__sentry_xhr__ && args[0] !== undefined) {
        this.__sentry_xhr__.body = args[0];
      }

      triggerHandlers('xhr', {
        args,
        startTimestamp: Date.now(),
        xhr: this
      });
      return originalSend.apply(this, args);
    };
  });
}

let lastHref;
/** JSDoc */

function instrumentHistory() {
  if (!Object(_supports_js__WEBPACK_IMPORTED_MODULE_4__[/* supportsHistory */ "c"])()) {
    return;
  }

  const oldOnPopState = WINDOW.onpopstate;

  WINDOW.onpopstate = function (...args) {
    const to = WINDOW.location.href; // keep track of the current URL state, as we always receive only the updated state

    const from = lastHref;
    lastHref = to;
    triggerHandlers('history', {
      from,
      to
    });

    if (oldOnPopState) {
      // Apparently this can throw in Firefox when incorrectly implemented plugin is installed.
      // https://github.com/getsentry/sentry-javascript/issues/3344
      // https://github.com/bugsnag/bugsnag-js/issues/469
      try {
        return oldOnPopState.apply(this, args);
      } catch (_oO) {// no-empty
      }
    }
  };
  /** @hidden */


  function historyReplacementFunction(originalHistoryFunction) {
    return function (...args) {
      const url = args.length > 2 ? args[2] : undefined;

      if (url) {
        // coerce to string (this is what pushState does)
        const from = lastHref;
        const to = String(url); // keep track of the current URL state, as we always receive only the updated state

        lastHref = to;
        triggerHandlers('history', {
          from,
          to
        });
      }

      return originalHistoryFunction.apply(this, args);
    };
  }

  Object(_object_js__WEBPACK_IMPORTED_MODULE_2__[/* fill */ "e"])(WINDOW.history, 'pushState', historyReplacementFunction);
  Object(_object_js__WEBPACK_IMPORTED_MODULE_2__[/* fill */ "e"])(WINDOW.history, 'replaceState', historyReplacementFunction);
}

const debounceDuration = 1000;
let debounceTimerID;
let lastCapturedEvent;
/**
 * Decide whether the current event should finish the debounce of previously captured one.
 * @param previous previously captured event
 * @param current event to be captured
 */

function shouldShortcircuitPreviousDebounce(previous, current) {
  // If there was no previous event, it should always be swapped for the new one.
  if (!previous) {
    return true;
  } // If both events have different type, then user definitely performed two separate actions. e.g. click + keypress.


  if (previous.type !== current.type) {
    return true;
  }

  try {
    // If both events have the same type, it's still possible that actions were performed on different targets.
    // e.g. 2 clicks on different buttons.
    if (previous.target !== current.target) {
      return true;
    }
  } catch (e) {// just accessing `target` property can throw an exception in some rare circumstances
    // see: https://github.com/getsentry/sentry-javascript/issues/838
  } // If both events have the same type _and_ same `target` (an element which triggered an event, _not necessarily_
  // to which an event listener was attached), we treat them as the same action, as we want to capture
  // only one breadcrumb. e.g. multiple clicks on the same button, or typing inside a user input box.


  return false;
}
/**
 * Decide whether an event should be captured.
 * @param event event to be captured
 */


function shouldSkipDOMEvent(event) {
  // We are only interested in filtering `keypress` events for now.
  if (event.type !== 'keypress') {
    return false;
  }

  try {
    const target = event.target;

    if (!target || !target.tagName) {
      return true;
    } // Only consider keypress events on actual input elements. This will disregard keypresses targeting body
    // e.g.tabbing through elements, hotkeys, etc.


    if (target.tagName === 'INPUT' || target.tagName === 'TEXTAREA' || target.isContentEditable) {
      return false;
    }
  } catch (e) {// just accessing `target` property can throw an exception in some rare circumstances
    // see: https://github.com/getsentry/sentry-javascript/issues/838
  }

  return true;
}
/**
 * Wraps addEventListener to capture UI breadcrumbs
 * @param handler function that will be triggered
 * @param globalListener indicates whether event was captured by the global event listener
 * @returns wrapped breadcrumb events handler
 * @hidden
 */


function makeDOMEventHandler(handler, globalListener = false) {
  return event => {
    // It's possible this handler might trigger multiple times for the same
    // event (e.g. event propagation through node ancestors).
    // Ignore if we've already captured that event.
    if (!event || lastCapturedEvent === event) {
      return;
    } // We always want to skip _some_ events.


    if (shouldSkipDOMEvent(event)) {
      return;
    }

    const name = event.type === 'keypress' ? 'input' : event.type; // If there is no debounce timer, it means that we can safely capture the new event and store it for future comparisons.

    if (debounceTimerID === undefined) {
      handler({
        event: event,
        name,
        global: globalListener
      });
      lastCapturedEvent = event;
    } // If there is a debounce awaiting, see if the new event is different enough to treat it as a unique one.
    // If that's the case, emit the previous event and store locally the newly-captured DOM event.
    else if (shouldShortcircuitPreviousDebounce(lastCapturedEvent, event)) {
      handler({
        event: event,
        name,
        global: globalListener
      });
      lastCapturedEvent = event;
    } // Start a new debounce timer that will prevent us from capturing multiple events that should be grouped together.


    clearTimeout(debounceTimerID);
    debounceTimerID = WINDOW.setTimeout(() => {
      debounceTimerID = undefined;
    }, debounceDuration);
  };
}
/** JSDoc */


function instrumentDOM() {
  if (!('document' in WINDOW)) {
    return;
  } // Make it so that any click or keypress that is unhandled / bubbled up all the way to the document triggers our dom
  // handlers. (Normally we have only one, which captures a breadcrumb for each click or keypress.) Do this before
  // we instrument `addEventListener` so that we don't end up attaching this handler twice.


  const triggerDOMHandler = triggerHandlers.bind(null, 'dom');
  const globalDOMEventHandler = makeDOMEventHandler(triggerDOMHandler, true);
  WINDOW.document.addEventListener('click', globalDOMEventHandler, false);
  WINDOW.document.addEventListener('keypress', globalDOMEventHandler, false); // After hooking into click and keypress events bubbled up to `document`, we also hook into user-handled
  // clicks & keypresses, by adding an event listener of our own to any element to which they add a listener. That
  // way, whenever one of their handlers is triggered, ours will be, too. (This is needed because their handler
  // could potentially prevent the event from bubbling up to our global listeners. This way, our handler are still
  // guaranteed to fire at least once.)

  ['EventTarget', 'Node'].forEach(target => {
    // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
    const proto = WINDOW[target] && WINDOW[target].prototype; // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, no-prototype-builtins

    if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {
      return;
    }

    Object(_object_js__WEBPACK_IMPORTED_MODULE_2__[/* fill */ "e"])(proto, 'addEventListener', function (originalAddEventListener) {
      return function (type, listener, options) {
        if (type === 'click' || type == 'keypress') {
          try {
            const el = this;
            const handlers = el.__sentry_instrumentation_handlers__ = el.__sentry_instrumentation_handlers__ || {};
            const handlerForType = handlers[type] = handlers[type] || {
              refCount: 0
            };

            if (!handlerForType.handler) {
              const handler = makeDOMEventHandler(triggerDOMHandler);
              handlerForType.handler = handler;
              originalAddEventListener.call(this, type, handler, options);
            }

            handlerForType.refCount += 1;
          } catch (e) {// Accessing dom properties is always fragile.
            // Also allows us to skip `addEventListenrs` calls with no proper `this` context.
          }
        }

        return originalAddEventListener.call(this, type, listener, options);
      };
    });
    Object(_object_js__WEBPACK_IMPORTED_MODULE_2__[/* fill */ "e"])(proto, 'removeEventListener', function (originalRemoveEventListener) {
      return function (type, listener, options) {
        if (type === 'click' || type == 'keypress') {
          try {
            const el = this;
            const handlers = el.__sentry_instrumentation_handlers__ || {};
            const handlerForType = handlers[type];

            if (handlerForType) {
              handlerForType.refCount -= 1; // If there are no longer any custom handlers of the current type on this element, we can remove ours, too.

              if (handlerForType.refCount <= 0) {
                originalRemoveEventListener.call(this, type, handlerForType.handler, options);
                handlerForType.handler = undefined;
                delete handlers[type]; // eslint-disable-line @typescript-eslint/no-dynamic-delete
              } // If there are no longer any custom handlers of any type on this element, cleanup everything.


              if (Object.keys(handlers).length === 0) {
                delete el.__sentry_instrumentation_handlers__;
              }
            }
          } catch (e) {// Accessing dom properties is always fragile.
            // Also allows us to skip `addEventListenrs` calls with no proper `this` context.
          }
        }

        return originalRemoveEventListener.call(this, type, listener, options);
      };
    });
  });
}

let _oldOnErrorHandler = null;
/** JSDoc */

function instrumentError() {
  _oldOnErrorHandler = WINDOW.onerror;

  WINDOW.onerror = function (msg, url, line, column, error) {
    triggerHandlers('error', {
      column,
      error,
      line,
      msg,
      url
    });

    if (_oldOnErrorHandler) {
      // eslint-disable-next-line prefer-rest-params
      return _oldOnErrorHandler.apply(this, arguments);
    }

    return false;
  };
}

let _oldOnUnhandledRejectionHandler = null;
/** JSDoc */

function instrumentUnhandledRejection() {
  _oldOnUnhandledRejectionHandler = WINDOW.onunhandledrejection;

  WINDOW.onunhandledrejection = function (e) {
    triggerHandlers('unhandledrejection', e);

    if (_oldOnUnhandledRejectionHandler) {
      // eslint-disable-next-line prefer-rest-params
      return _oldOnUnhandledRejectionHandler.apply(this, arguments);
    }

    return true;
  };
}



/***/ }),

/***/ "6jSH":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("2Hh/"),
      24: __webpack_require__("Do2H")
    }
  }));
};

WrappedIcon.displayName = 'Browse';
exports.default = WrappedIcon;

/***/ }),

/***/ "6lN/":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var BN = __webpack_require__("OZ/i");

var utils = __webpack_require__("86MQ");

var getNAF = utils.getNAF;
var getJSF = utils.getJSF;
var assert = utils.assert;

function BaseCurve(type, conf) {
  this.type = type;
  this.p = new BN(conf.p, 16); // Use Montgomery, when there is no fast reduction for the prime

  this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p); // Useful for many curves

  this.zero = new BN(0).toRed(this.red);
  this.one = new BN(1).toRed(this.red);
  this.two = new BN(2).toRed(this.red); // Curve configuration, optional

  this.n = conf.n && new BN(conf.n, 16);
  this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed); // Temporary arrays

  this._wnafT1 = new Array(4);
  this._wnafT2 = new Array(4);
  this._wnafT3 = new Array(4);
  this._wnafT4 = new Array(4);
  this._bitLength = this.n ? this.n.bitLength() : 0; // Generalized Greg Maxwell's trick

  var adjustCount = this.n && this.p.div(this.n);

  if (!adjustCount || adjustCount.cmpn(100) > 0) {
    this.redN = null;
  } else {
    this._maxwellTrick = true;
    this.redN = this.n.toRed(this.red);
  }
}

module.exports = BaseCurve;

BaseCurve.prototype.point = function point() {
  throw new Error('Not implemented');
};

BaseCurve.prototype.validate = function validate() {
  throw new Error('Not implemented');
};

BaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {
  assert(p.precomputed);

  var doubles = p._getDoubles();

  var naf = getNAF(k, 1, this._bitLength);
  var I = (1 << doubles.step + 1) - (doubles.step % 2 === 0 ? 2 : 1);
  I /= 3; // Translate into more windowed form

  var repr = [];
  var j;
  var nafW;

  for (j = 0; j < naf.length; j += doubles.step) {
    nafW = 0;

    for (var l = j + doubles.step - 1; l >= j; l--) nafW = (nafW << 1) + naf[l];

    repr.push(nafW);
  }

  var a = this.jpoint(null, null, null);
  var b = this.jpoint(null, null, null);

  for (var i = I; i > 0; i--) {
    for (j = 0; j < repr.length; j++) {
      nafW = repr[j];
      if (nafW === i) b = b.mixedAdd(doubles.points[j]);else if (nafW === -i) b = b.mixedAdd(doubles.points[j].neg());
    }

    a = a.add(b);
  }

  return a.toP();
};

BaseCurve.prototype._wnafMul = function _wnafMul(p, k) {
  var w = 4; // Precompute window

  var nafPoints = p._getNAFPoints(w);

  w = nafPoints.wnd;
  var wnd = nafPoints.points; // Get NAF form

  var naf = getNAF(k, w, this._bitLength); // Add `this`*(N+1) for every w-NAF index

  var acc = this.jpoint(null, null, null);

  for (var i = naf.length - 1; i >= 0; i--) {
    // Count zeroes
    for (var l = 0; i >= 0 && naf[i] === 0; i--) l++;

    if (i >= 0) l++;
    acc = acc.dblp(l);
    if (i < 0) break;
    var z = naf[i];
    assert(z !== 0);

    if (p.type === 'affine') {
      // J +- P
      if (z > 0) acc = acc.mixedAdd(wnd[z - 1 >> 1]);else acc = acc.mixedAdd(wnd[-z - 1 >> 1].neg());
    } else {
      // J +- J
      if (z > 0) acc = acc.add(wnd[z - 1 >> 1]);else acc = acc.add(wnd[-z - 1 >> 1].neg());
    }
  }

  return p.type === 'affine' ? acc.toP() : acc;
};

BaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW, points, coeffs, len, jacobianResult) {
  var wndWidth = this._wnafT1;
  var wnd = this._wnafT2;
  var naf = this._wnafT3; // Fill all arrays

  var max = 0;
  var i;
  var j;
  var p;

  for (i = 0; i < len; i++) {
    p = points[i];

    var nafPoints = p._getNAFPoints(defW);

    wndWidth[i] = nafPoints.wnd;
    wnd[i] = nafPoints.points;
  } // Comb small window NAFs


  for (i = len - 1; i >= 1; i -= 2) {
    var a = i - 1;
    var b = i;

    if (wndWidth[a] !== 1 || wndWidth[b] !== 1) {
      naf[a] = getNAF(coeffs[a], wndWidth[a], this._bitLength);
      naf[b] = getNAF(coeffs[b], wndWidth[b], this._bitLength);
      max = Math.max(naf[a].length, max);
      max = Math.max(naf[b].length, max);
      continue;
    }

    var comb = [points[a],
    /* 1 */
    null,
    /* 3 */
    null,
    /* 5 */
    points[b]
    /* 7 */
    ]; // Try to avoid Projective points, if possible

    if (points[a].y.cmp(points[b].y) === 0) {
      comb[1] = points[a].add(points[b]);
      comb[2] = points[a].toJ().mixedAdd(points[b].neg());
    } else if (points[a].y.cmp(points[b].y.redNeg()) === 0) {
      comb[1] = points[a].toJ().mixedAdd(points[b]);
      comb[2] = points[a].add(points[b].neg());
    } else {
      comb[1] = points[a].toJ().mixedAdd(points[b]);
      comb[2] = points[a].toJ().mixedAdd(points[b].neg());
    }

    var index = [-3,
    /* -1 -1 */
    -1,
    /* -1 0 */
    -5,
    /* -1 1 */
    -7,
    /* 0 -1 */
    0,
    /* 0 0 */
    7,
    /* 0 1 */
    5,
    /* 1 -1 */
    1,
    /* 1 0 */
    3
    /* 1 1 */
    ];
    var jsf = getJSF(coeffs[a], coeffs[b]);
    max = Math.max(jsf[0].length, max);
    naf[a] = new Array(max);
    naf[b] = new Array(max);

    for (j = 0; j < max; j++) {
      var ja = jsf[0][j] | 0;
      var jb = jsf[1][j] | 0;
      naf[a][j] = index[(ja + 1) * 3 + (jb + 1)];
      naf[b][j] = 0;
      wnd[a] = comb;
    }
  }

  var acc = this.jpoint(null, null, null);
  var tmp = this._wnafT4;

  for (i = max; i >= 0; i--) {
    var k = 0;

    while (i >= 0) {
      var zero = true;

      for (j = 0; j < len; j++) {
        tmp[j] = naf[j][i] | 0;
        if (tmp[j] !== 0) zero = false;
      }

      if (!zero) break;
      k++;
      i--;
    }

    if (i >= 0) k++;
    acc = acc.dblp(k);
    if (i < 0) break;

    for (j = 0; j < len; j++) {
      var z = tmp[j];
      p;
      if (z === 0) continue;else if (z > 0) p = wnd[j][z - 1 >> 1];else if (z < 0) p = wnd[j][-z - 1 >> 1].neg();
      if (p.type === 'affine') acc = acc.mixedAdd(p);else acc = acc.add(p);
    }
  } // Zeroify references


  for (i = 0; i < len; i++) wnd[i] = null;

  if (jacobianResult) return acc;else return acc.toP();
};

function BasePoint(curve, type) {
  this.curve = curve;
  this.type = type;
  this.precomputed = null;
}

BaseCurve.BasePoint = BasePoint;

BasePoint.prototype.eq = function
  /*other*/
eq() {
  throw new Error('Not implemented');
};

BasePoint.prototype.validate = function validate() {
  return this.curve.validate(this);
};

BaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {
  bytes = utils.toArray(bytes, enc);
  var len = this.p.byteLength(); // uncompressed, hybrid-odd, hybrid-even

  if ((bytes[0] === 0x04 || bytes[0] === 0x06 || bytes[0] === 0x07) && bytes.length - 1 === 2 * len) {
    if (bytes[0] === 0x06) assert(bytes[bytes.length - 1] % 2 === 0);else if (bytes[0] === 0x07) assert(bytes[bytes.length - 1] % 2 === 1);
    var res = this.point(bytes.slice(1, 1 + len), bytes.slice(1 + len, 1 + 2 * len));
    return res;
  } else if ((bytes[0] === 0x02 || bytes[0] === 0x03) && bytes.length - 1 === len) {
    return this.pointFromX(bytes.slice(1, 1 + len), bytes[0] === 0x03);
  }

  throw new Error('Unknown point format');
};

BasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {
  return this.encode(enc, true);
};

BasePoint.prototype._encode = function _encode(compact) {
  var len = this.curve.p.byteLength();
  var x = this.getX().toArray('be', len);
  if (compact) return [this.getY().isEven() ? 0x02 : 0x03].concat(x);
  return [0x04].concat(x, this.getY().toArray('be', len));
};

BasePoint.prototype.encode = function encode(enc, compact) {
  return utils.encode(this._encode(compact), enc);
};

BasePoint.prototype.precompute = function precompute(power) {
  if (this.precomputed) return this;
  var precomputed = {
    doubles: null,
    naf: null,
    beta: null
  };
  precomputed.naf = this._getNAFPoints(8);
  precomputed.doubles = this._getDoubles(4, power);
  precomputed.beta = this._getBeta();
  this.precomputed = precomputed;
  return this;
};

BasePoint.prototype._hasDoubles = function _hasDoubles(k) {
  if (!this.precomputed) return false;
  var doubles = this.precomputed.doubles;
  if (!doubles) return false;
  return doubles.points.length >= Math.ceil((k.bitLength() + 1) / doubles.step);
};

BasePoint.prototype._getDoubles = function _getDoubles(step, power) {
  if (this.precomputed && this.precomputed.doubles) return this.precomputed.doubles;
  var doubles = [this];
  var acc = this;

  for (var i = 0; i < power; i += step) {
    for (var j = 0; j < step; j++) acc = acc.dbl();

    doubles.push(acc);
  }

  return {
    step: step,
    points: doubles
  };
};

BasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {
  if (this.precomputed && this.precomputed.naf) return this.precomputed.naf;
  var res = [this];
  var max = (1 << wnd) - 1;
  var dbl = max === 1 ? null : this.dbl();

  for (var i = 1; i < max; i++) res[i] = res[i - 1].add(dbl);

  return {
    wnd: wnd,
    points: res
  };
};

BasePoint.prototype._getBeta = function _getBeta() {
  return null;
};

BasePoint.prototype.dblp = function dblp(k) {
  var r = this;

  for (var i = 0; i < k; i++) r = r.dbl();

  return r;
};

/***/ }),

/***/ "6sVZ":
/***/ (function(module, exports) {

/** Used for built-in method references. */
var objectProto = Object.prototype;
/**
 * Checks if `value` is likely a prototype object.
 *
 * @private
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.
 */

function isPrototype(value) {
  var Ctor = value && value.constructor,
      proto = typeof Ctor == 'function' && Ctor.prototype || objectProto;
  return value === proto;
}

module.exports = isPrototype;

/***/ }),

/***/ "6som":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ensureFocusOnItems; });
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
/**
 * Utility that searched for all items that match the CSS selector and then
 * checks if any of the found items have a tabindex of 0, if not then this utility
 * will set tabindex 0 on the first item found in the array of all the items.
 * @param focusClassSelector CSS Class selector for items that you want to check.
 * @param searchNode The base element containing all the items you are searching for.
 */
function ensureFocusOnItems(focusClassSelector, searchNode) {
    // Grab all focusable grid items.
    const items = [...searchNode.querySelectorAll(`.${focusClassSelector}`)];
    const hasTabbableElement = items.length && items.some(el => (el === null || el === void 0 ? void 0 : el.getAttribute('tabindex')) === '0');
    if (!hasTabbableElement && items.length) {
        items[0].setAttribute('tabindex', '0');
    }
}


/***/ }),

/***/ "6tYh":
/***/ (function(module, exports, __webpack_require__) {

// Works with __proto__ only. Old v8 can't work with null proto objects.

/* eslint-disable no-proto */
var isObject = __webpack_require__("93I4");

var anObject = __webpack_require__("5K7Z");

var check = function (O, proto) {
  anObject(O);
  if (!isObject(proto) && proto !== null) throw TypeError(proto + ": can't set as prototype!");
};

module.exports = {
  set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line
  function (test, buggy, set) {
    try {
      set = __webpack_require__("2GTP")(Function.call, __webpack_require__("vwuL").f(Object.prototype, '__proto__').set, 2);
      set(test, []);
      buggy = !(test instanceof Array);
    } catch (e) {
      buggy = true;
    }

    return function setPrototypeOf(O, proto) {
      check(O, proto);
      if (buggy) O.__proto__ = proto;else set(O, proto);
      return O;
    };
  }({}, false) : undefined),
  check: check
};

/***/ }),

/***/ "6twZ":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("vS7r"),
      24: __webpack_require__("yiVd")
    }
  }));
};

WrappedIcon.displayName = 'Copy';
exports.default = WrappedIcon;

/***/ }),

/***/ "6y7h":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

/*************************************************************************
* ADOBE CONFIDENTIAL
* ___________________
*
* Copyright 2019 Adobe
* All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains
* the property of Adobe and its suppliers, if any. The intellectual
* and technical concepts contained herein are proprietary to Adobe
* and its suppliers and are protected by all applicable intellectual
* property laws, including trade secret and copyright laws.
* Dissemination of this information or reproduction of this material
* is strictly forbidden unless prior written permission is obtained
* from Adobe.
**************************************************************************/

module.exports = __webpack_require__("tqTu");

/***/ }),

/***/ "6zSq":
/***/ (function(module, exports) {

/* eslint-disable max-len */
module.exports = {
  'confirmationDialog.dontShowAgain': 'Не показывать снова',
  'confirmationDialog.confirm.default': 'Продолжить',
  'confirmationDialog.cancel.default': 'Отмена',
  'confirmationDialog.learnMore': 'Подробнее',
  'toast.warning.place': 'Не удается разместить связанные облачные документы. Продолжайте встраивание.',
  'toast.warning.placeLinkOrEmbed': 'Теперь размещаемые вами ресурсы по умолчанию связаны с оригиналом. Это означает, что при его изменении в одном месте эти изменения отражаются повсюду.',
  'toast.warning.saveAs.invalidFormat': 'К сожалению, вы не можете сохранять файлы {genericFormat} здесь. Ваш файл будет сохранен в формате {adobeFormat}.',
  'pickerView.recent': 'Недавние',
  'pickerView.cloud_docs': 'Ваши файлы',
  'pickerView.shared_with_you': 'Открыто для вас',
  'pickerView.projects': 'Проекты',
  'pickerView.files': 'Файлы',
  'pickerView.computer': 'Мой компьютер...',
  'pickerView.saveAsInput': 'Сохранить как',
  'pickerView.exportInput': 'Экспортировать как',
  'pickerView.sketch_library': 'Преобразовать библиотеку Sketch...',
  'pickerView.error.saveAsOrExport.default': 'Недопустимое название файла.',
  'pickerView.error.saveAsOrExport.invalidName': 'Название папки содержит недопустимые символы.',
  'pickerView.error.saveAsOrExport.invalidEnd': 'Название не может заканчиваться точкой или пробелом.',
  'pickerView.error.saveAsOrExport.invalidChar': 'В названии нельзя использовать следующие символы: {characters}',
  'pickerView.error.saveAsOrExport.charRestriction': 'Название не может содержать больше 200 символов.',
  'pickerView.error.saveAsOrExport.duplicateName': 'Облачный документ с таким названием уже существует.',
  'pickerView.error.addALibrary.permission': 'У вас нет разрешения на добавление этой библиотеки',
  'pickerViewFooter.button.add': 'Добавление',
  'pickerViewFooter.button.cancel': 'Отмена',
  'pickerViewFooter.button.copy': 'Скопировать сюда',
  'pickerViewFooter.button.move': 'Переместить сюда',
  'pickerViewFooter.button.moveToProject': 'Переместить сюда',
  'pickerViewFooter.button.copyToProject': 'Скопировать сюда',
  'pickerViewFooter.button.choose': 'Выбрать',
  'pickerViewFooter.button.save': 'Сохранить',
  'pickerViewFooter.button.switchToOSPicker': 'На компьютере',
  'pickerViewFooter.button.save.offline': 'Требуется подключение к Интернету',
  'pickerViewFooter.button.saveAsCopy': 'Сохранить',
  'pickerViewFooter.button.export': 'Экспортировать',
  'pickerViewFooter.button.placeLinkOrEmbed': 'Поместить',
  'pickerViewFooter.button.import': 'Импорт',
  'pickerViewFooter.checkbox.placeLink': 'Связанный',
  'pickerViewFooter.tooltip.placeLink': 'Этот элемент можно разместить только как связанный ресурс.',
  'pickerViewFooter.tooltip.placeEmbed': 'Этот элемент можно разместить только как встроенный.',
  'pickerViewFooter.saveAs.format.label': 'Формат',
  'pickerViewFooter.button.selectProject': 'Сохранить',
  'onboardingCdp.title': 'У вас будет гораздо больше возможностей, если вы сохраните проект как облачный документ',
  'onboardingCdp.tooltip': 'Если проект будет сохранен на компьютере, вы не сможете пользоваться облачными функциями.',
  'onboardingCdp.tooltip.link': 'Подробнее',
  'onboardingCdp.table.header.saveToCloud': 'Creative Cloud',
  'onboardingCdp.table.header.saveToLocal': 'На компьютере',
  'onboardingCdp.button.saveToCloud': 'Сохранить в Creative Cloud',
  'onboardingCdp.feature.offline': 'Автономный доступ',
  'onboardingCdp.feature.syncing': 'Облачная синхронизация на все устройства',
  'onboardingCdp.feature.autosave': 'Автосохранение каждого изменения',
  'onboardingCdp.feature.versionHistory': 'Журнал версий',
  'onboardingCdp.feature.inviteToEdit': 'Пригласить к редактированию',
  'onboardingCdp.button.saveToLocal': 'Сохранить на компьютере',
  'onboardingCdp.checkbox.doNotShowAgain': 'Не показывать снова',
  'uap.title.place': 'Разместить из Creative Cloud',
  'uap.title.import': 'Импортировать из Creative Cloud',
  'uap.title.placeLinkOrEmbed': 'Разместить из Creative Cloud',
  'uap.title.linkAssets': 'Ссылка из Creative Cloud',
  'uap.title.open': 'Открыть из Creative Cloud',
  'uap.title.relink': 'Ссылка из Creative Cloud',
  'uap.title.saveAs': 'Сохранить в Creative Cloud',
  'uap.title.saveAsCopy': 'Сохранить в Creative Cloud',
  'uap.title.saveToFolder': 'Сохранить в Creative Cloud',
  'uap.title.export': 'Экспорт в Creative Cloud',
  'uap.title.copy': 'Копировать в Creative Cloud',
  'uap.title.move': 'Переместить в Creative Cloud',
  'uap.title.moveToProject': 'Переместить в Creative Cloud',
  'uap.title.copyToProject': 'Копировать в Creative Cloud',
  'uap.title.reference': 'Добавить в Creative Cloud',
  'uap.title.selectProject': 'Сохранить в Creative Cloud',
  'move.toSpace.confirm.title': 'История версий будет удалена',
  'move.toSpace.confirm.message': 'Перемещение этого файла приведет к удалению истории версий. Если вы хотите сохранить историю версий, сделайте копию.'
};

/***/ }),

/***/ 7:
/***/ (function(module, exports) {

/* (ignored) */

/***/ }),

/***/ "75XX":
/***/ (function(module, exports, __webpack_require__) {

// extracted by mini-css-extract-plugin

/***/ }),

/***/ "76nN":
/***/ (function(module) {

module.exports = JSON.parse("{\"File\":\"Файл\",\"Folder\":\"Папка\"}");

/***/ }),

/***/ "77Zs":
/***/ (function(module, exports, __webpack_require__) {

var ListCache = __webpack_require__("Xi7e");
/**
 * Removes all key-value entries from the stack.
 *
 * @private
 * @name clear
 * @memberOf Stack
 */


function stackClear() {
  this.__data__ = new ListCache();
  this.size = 0;
}

module.exports = stackClear;

/***/ }),

/***/ "79ho":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("path", {
  d: "M28.583 5.854a19.006 19.006 0 0 0-4.113.454 1.093 1.093 0 0 1-1.3-1.085V3.609a1.086 1.086 0 0 0-.814-1.061A19.5 19.5 0 0 0 17.75 2 19.154 19.154 0 0 0 8 4.648v15.165a19.1 19.1 0 0 1 9.76-2.646 1.1 1.1 0 0 1 1.073 1.1v3.739a.99.99 0 0 0 1.406.907 19.291 19.291 0 0 1 12.515-1.435A1.006 1.006 0 0 0 34 20.511V7.4a1 1 0 0 0-.751-.98 19.489 19.489 0 0 0-4.666-.566z"
}), React.createElement("rect", {
  height: "34",
  rx: ".5",
  ry: ".5",
  width: "4",
  x: "2",
  y: "2"
}));

/***/ }),

/***/ "7AVC":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _propTypes = _interopRequireDefault(__webpack_require__("17x9"));

var _react = _interopRequireWildcard(__webpack_require__("q1tI"));

const _excluded = ["variant", "className"];

function _getRequireWildcardCache(nodeInterop) {
  if (typeof WeakMap !== "function") return null;
  var cacheBabelInterop = new WeakMap();
  var cacheNodeInterop = new WeakMap();
  return (_getRequireWildcardCache = function (nodeInterop) {
    return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
  })(nodeInterop);
}

function _interopRequireWildcard(obj, nodeInterop) {
  if (!nodeInterop && obj && obj.__esModule) {
    return obj;
  }

  if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
    return {
      default: obj
    };
  }

  var cache = _getRequireWildcardCache(nodeInterop);

  if (cache && cache.has(obj)) {
    return cache.get(obj);
  }

  var newObj = {};
  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;

  for (var key in obj) {
    if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
      var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;

      if (desc && (desc.get || desc.set)) {
        Object.defineProperty(newObj, key, desc);
      } else {
        newObj[key] = obj[key];
      }
    }
  }

  newObj.default = obj;

  if (cache) {
    cache.set(obj, newObj);
  }

  return newObj;
}

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

const SPUXP_SIZE = {
  small: 's',
  medium: 'm',
  large: 'l'
};

class UxpRule extends _react.Component {
  render() {
    let _this$props = this.props,
        {
      variant,
      className
    } = _this$props,
        otherProps = _objectWithoutProperties(_this$props, _excluded);

    return /*#__PURE__*/_react.default.createElement("sp-divider", _extends({
      size: variant === undefined ? 'l' : SPUXP_SIZE[variant] // large is the default variant. 
      ,
      class: className
    }, otherProps), " // eslint-disable-line no-eval");
  }

}

exports.default = UxpRule;
UxpRule.propTypes = {
  /** Class to add to the Rule */
  className: _propTypes.default.string,

  /** Rule variant */
  variant: _propTypes.default.oneOf(['large', 'medium', 'small'])
};

/***/ }),

/***/ "7B5B":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return getScrollbarMeasurer; });
/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("2vnA");
/* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("+Ots");
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/


let measureDiv;
let innerDiv;
const Measurer = Object(mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"])({
    scrollbarWidth: 16,
});
function measureScrollbar() {
    if (!measureDiv) {
        measureDiv = document.createElement('div');
        measureDiv.setAttribute('style', 
        // use position 'fixed' instead of 'absolute'
        // changing position context fixes bug CCXCD-5551 & still works for this util
        'position: fixed; top: -999px; height: 100px; width: 100px; overflow: scroll;');
        innerDiv = document.createElement('div');
        measureDiv.appendChild(innerDiv);
        innerDiv.style.height = '200px';
        document.body.appendChild(measureDiv);
        // Changing OS scrollbar settings will trigger resize event
        _utils_utils__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].getResizeElement().addEventListener('resize', measureScrollbar);
    }
    const ms = 10; // UXP seems to take 30-80ms to update sizes
    setTimeout(() => {
        Object(mobx__WEBPACK_IMPORTED_MODULE_0__[/* runInAction */ "C"])(() => {
            Measurer.scrollbarWidth = measureDiv.offsetWidth - innerDiv.offsetWidth;
        });
    }, ms);
}
function getScrollbarMeasurer() {
    measureScrollbar();
    return Measurer;
}


/***/ }),

/***/ "7Fyl":
/***/ (function(module) {

module.exports = JSON.parse("{\"File\":\"Dosya\",\"Folder\":\"Klasör\"}");

/***/ }),

/***/ "7GSu":
/***/ (function(module) {

module.exports = JSON.parse("{\"Breadcrumbs\":\"Navigointilinkit\"}");

/***/ }),

/***/ "7Inb":
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/* jshint node:true */


var IntlRelativeFormat = __webpack_require__("W6Rk")['default']; // Add all locale data to `IntlRelativeFormat`. This module will be ignored when
// bundling for the browser with Browserify/Webpack.


__webpack_require__(3); // Re-export `IntlRelativeFormat` as the CommonJS default exports with all the
// locale data registered, and with English set as the default locale. Define
// the `default` prop for use with other compiled ES6 Modules.


exports = module.exports = IntlRelativeFormat;
exports['default'] = exports;

/***/ }),

/***/ "7Ix3":
/***/ (function(module, exports) {

/**
 * This function is like
 * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)
 * except that it includes inherited enumerable properties.
 *
 * @private
 * @param {Object} object The object to query.
 * @returns {Array} Returns the array of property names.
 */
function nativeKeysIn(object) {
  var result = [];

  if (object != null) {
    for (var key in Object(object)) {
      result.push(key);
    }
  }

  return result;
}

module.exports = nativeKeysIn;

/***/ }),

/***/ "7L8R":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _utils_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("a375");
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2019 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/

function normalizePath(path, root = _utils_constants__WEBPACK_IMPORTED_MODULE_0__[/* ROOT_FOLDER_PATH */ "q"]) {
    // remove leading and trailing slash, if any
    const trimmed = path
        .split('/')
        .filter(s => s)
        .join('/');
    return trimmed || root;
}
/* harmony default export */ __webpack_exports__["a"] = (normalizePath);


/***/ }),

/***/ "7N/v":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("2vnA");
/* harmony import */ var _utils_create_placeholder_folder__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("brtb");
/* harmony import */ var _utils_metrics__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("jaHz");
/* harmony import */ var _AssetModel_ACPFetchAssetModel__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("lnG/");
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("C0qj");
/* harmony import */ var _FolderCollection__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("YkWA");
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2020 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
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;
};
var __metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};






var StorageSortByEnum;
(function (StorageSortByEnum) {
    StorageSortByEnum["title"] = "name";
    StorageSortByEnum["modifyDate"] = "modified";
})(StorageSortByEnum || (StorageSortByEnum = {}));
let assetModelWarning = false;
// Map UXSortBy to supported StorageSortByEnum
const SORT_BY_TO_STORAGE_SORT = {
    [_constants__WEBPACK_IMPORTED_MODULE_4__[/* UXSortBy */ "t"].accessDate]: StorageSortByEnum.modifyDate,
    [_constants__WEBPACK_IMPORTED_MODULE_4__[/* UXSortBy */ "t"].createDate]: StorageSortByEnum.modifyDate,
    [_constants__WEBPACK_IMPORTED_MODULE_4__[/* UXSortBy */ "t"].modifiedDate]: StorageSortByEnum.modifyDate,
    [_constants__WEBPACK_IMPORTED_MODULE_4__[/* UXSortBy */ "t"].shareDate]: StorageSortByEnum.modifyDate,
    [_constants__WEBPACK_IMPORTED_MODULE_4__[/* UXSortBy */ "t"].title]: StorageSortByEnum.title,
};
class ACPFetchFolderCollection extends _FolderCollection__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"] {
    constructor({ path, cloudUri, types, ...config }, context) {
        super(config, context);
        this.AssetModelClass = _AssetModel_ACPFetchAssetModel__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"];
        this.lastFetchMetadata = { isCached: false };
        this.path = path;
        this.cloudUri = cloudUri;
        this.setTypes(types);
        // For testing CCD features that do not work in UXP, CDOH is run in web mode with
        // ACPFetch, but expects an assetModel on FolderCollection.
        this.assetModelPlaceholder = Object(_utils_create_placeholder_folder__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(path, '', cloudUri);
        // createPlaceholderFolder doesn't properly handle root folder
        // Assuming `path` is normalized
        this.assetModelPlaceholder.path = path;
        const [title] = path.split('/').slice(-1);
        this.assetModelPlaceholder.title = title;
    }
    async performFetch({ sortBy, sortDir, nextPageOptions }, localOnly, correlationId) {
        const client = this.context.cloudDocumentsClient;
        const correlationData = _utils_metrics__WEBPACK_IMPORTED_MODULE_2__[/* default */ "i"].getCorrelationData(correlationId);
        if (!nextPageOptions) {
            try {
                // TODO: acp-fetch should return no results when requesting localOnly results
                //       for clients w/o ACPL. Otherwise, it ends up fetching twice.
                return await client.getFolderListing({
                    path: this.path,
                    cloudUri: this.cloudUri || '',
                    orderby: SORT_BY_TO_STORAGE_SORT[sortBy],
                    order: sortDir,
                    localOnly,
                }, correlationData);
            }
            catch (e) {
                // ACPL throws an exception if you try to list folder contents with localOnly = true if it is
                // not cached. For now, ignore the error, as the folder might exist in the cloud.
                if (localOnly) {
                    return {};
                }
                throw e;
            }
        }
        else {
            return client.getFolderListingNextPage(nextPageOptions, localOnly, correlationData);
        }
    }
    updateLastFetchMetadataFromResults({ isCached }, localOnly) {
        // Only local folder listing will indicate whether it is cached. The cloud listing for the same folder
        // does not since ACPL no longer merges the cloud listing with the local listing.
        if (localOnly && isCached !== this.lastFetchMetadata.isCached) {
            this.setLastFetchMetadata({ isCached });
        }
    }
    // eslint-disable-next-line class-methods-use-this
    extractElements(result) {
        if (result.docs) {
            return result.docs.map((elementJSON) => new _AssetModel_ACPFetchAssetModel__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"](elementJSON, this.context.cloudDocumentsClient, this.context.onAnalyticsEvent));
        }
        return [];
    }
    // eslint-disable-next-line class-methods-use-this
    getNextPageCriteria(results) {
        if (results.nextPageOptions) {
            return {
                nextPageOptions: results.nextPageOptions,
            };
        }
    }
    // When offline, CDP will only allow saving to a folder if the folder is cached.
    get hasOfflineContent() {
        return this.lastFetchMetadata.isCached;
    }
    get assetModel() {
        if (!assetModelWarning) {
            assetModelWarning = true;
            this.logger.warn('ACPFetchFolderCollection.assetModel is for testing in CDO harness only');
        }
        return this.assetModelPlaceholder;
    }
}
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", Object)
], ACPFetchFolderCollection.prototype, "lastFetchMetadata", void 0);
/* harmony default export */ __webpack_exports__["a"] = (ACPFetchFolderCollection);


/***/ }),

/***/ "7PmA":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = function () {
  try {
    Object.keys("primitive");
    return true;
  } catch (e) {
    return false;
  }
};

/***/ }),

/***/ "7SRV":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _number = __webpack_require__("x1bj");

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _Image = _interopRequireDefault(__webpack_require__("o49s"));

var _propTypes = _interopRequireDefault(__webpack_require__("17x9"));

var _react = _interopRequireWildcard(__webpack_require__("q1tI"));

const _excluded = ["src", "className"];

function _getRequireWildcardCache(nodeInterop) {
  if (typeof WeakMap !== "function") return null;
  var cacheBabelInterop = new WeakMap();
  var cacheNodeInterop = new WeakMap();
  return (_getRequireWildcardCache = function (nodeInterop) {
    return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
  })(nodeInterop);
}

function _interopRequireWildcard(obj, nodeInterop) {
  if (!nodeInterop && obj && obj.__esModule) {
    return obj;
  }

  if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
    return {
      default: obj
    };
  }

  var cache = _getRequireWildcardCache(nodeInterop);

  if (cache && cache.has(obj)) {
    return cache.get(obj);
  }

  var newObj = {};
  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;

  for (var key in obj) {
    if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
      var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;

      if (desc && (desc.get || desc.set)) {
        Object.defineProperty(newObj, key, desc);
      } else {
        newObj[key] = obj[key];
      }
    }
  }

  newObj.default = obj;

  if (cache) {
    cache.set(obj, newObj);
  }

  return newObj;
}

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

const PERCENTAGE_CACHE = new Map();
/*
 * An AssetImage displays an image preview within an Asset component
 */

class AssetImage extends _react.Component {
  constructor(...args) {
    var _temp;

    return _temp = super(...args), this.state = {
      previewPercentage: PERCENTAGE_CACHE.get(this.props.src) || 0
    }, _temp;
  }

  componentWillUnmount() {
    PERCENTAGE_CACHE.delete(this.props.src);
  }

  calculateSize(width, height) {
    if (width === 0 || height === 0) {
      return 0;
    } // smartness should be a value between 0 and 1


    let smartness = (0, _number.clamp)(this.props.smartness, 0, 1); // Any asset with an aspect ratio smaller than "smallestAspectRatio" would fit the space fully (on one side).
    // Any asset with an aspect ratio bigger than "smallestAspectRatio" would fit a percentage of the space.

    let smallestAspectRatio = 0.25; // An asset with an aspect ratio of 1 (a square) would be displayed at the "minimumPercentage" of the space.

    let minimumPercentage = 1 - smartness * 0.25; // Aspect ratio of the asset (from 0 to 1) if longest side is 1.

    let aspectRatio = width / Math.max(width, height) * height / Math.max(width, height); // Ratio (from 0 to 1) between "smallestAspectRatio" and 1 (a square).

    let ratio = Math.max(0, aspectRatio - smallestAspectRatio) / (1 - smallestAspectRatio); // Percentage of the space that the asset will fit in.

    return (1 - ratio * (1 - minimumPercentage)) * 100;
  }

  onLoad(img) {
    let percentage = this.calculateSize(img.naturalWidth, img.naturalHeight);
    PERCENTAGE_CACHE.set(this.props.src, percentage);

    if (percentage !== this.state.previewPercentage) {
      this.setState({
        previewPercentage: percentage
      });
    }

    if (this.props.onLoad) {
      this.props.onLoad();
    }
  }

  render(props) {
    let _this$props = this.props,
        {
      src,
      className
    } = _this$props,
        otherProps = _objectWithoutProperties(_this$props, _excluded);

    let percentage = this.state.previewPercentage;
    let style = {
      maxWidth: percentage + '%',
      maxHeight: percentage + '%'
    };
    return /*#__PURE__*/_react.default.createElement(_Image.default, _extends({}, otherProps, {
      className: (0, _classnames.default)('spectrum-Asset-image', className),
      onLoad: this.onLoad.bind(this),
      src: src,
      style: style
    }));
  }

}

exports.default = AssetImage;
AssetImage.propTypes = {
  /** The image url */
  src: _propTypes.default.string.isRequired,

  /** A factor between 0 and 1 that controls how the preview is scaled. When 0 ("dumb") the assets fits all the space available. */
  smartness: _propTypes.default.number
};
AssetImage.defaultProps = {
  smartness: 1
};

/***/ }),

/***/ "7Tov":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, props, _react2.default.createElement("svg", {
    className: "spectrum-UIIcon-ChevronRightSmall"
  }, _react2.default.createElement("path", {
    d: "M5.5 4a.749.749 0 0 0-.22-.531C4.7 2.863 3.242 1.5 2.041.23A.75.75 0 1 0 .98 1.291L3.689 4 .98 6.709A.75.75 0 1 0 2.041 7.77L5.28 4.531A.749.749 0 0 0 5.5 4z",
    className: "spectrum-UIIcon--medium"
  }), _react2.default.createElement("path", {
    d: "M7 5a.749.749 0 0 0-.22-.531L2.541.23A.75.75 0 1 0 1.48 1.291L5.189 5 1.48 8.709A.75.75 0 1 0 2.541 9.77L6.78 5.531A.749.749 0 0 0 7 5z",
    className: "spectrum-UIIcon--large"
  })));
};

WrappedIcon.displayName = 'ChevronRightSmall';
exports.default = WrappedIcon;

/***/ }),

/***/ "7W2i":
/***/ (function(module, exports, __webpack_require__) {

var setPrototypeOf = __webpack_require__("SksO");

function _inherits(subClass, superClass) {
  if (typeof superClass !== "function" && superClass !== null) {
    throw new TypeError("Super expression must either be null or a function");
  }

  subClass.prototype = Object.create(superClass && superClass.prototype, {
    constructor: {
      value: subClass,
      writable: true,
      configurable: true
    }
  });
  if (superClass) setPrototypeOf(subClass, superClass);
}

module.exports = _inherits;
module.exports["default"] = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "7XYX":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return hasAny; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return hasOnlyOne; });
/* unused harmony export hasMultiple */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return hasOnlyFolders; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return hasAnyFolders; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return hasOnlyNonFolders; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return selectedFolders; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ExtendSelectionMode; });
/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("2vnA");
/* harmony import */ var _types_ISelectionBehavior__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("KNr8");
/* harmony import */ var _types_ISelectionBehavior__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_types_ISelectionBehavior__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Collection_ICollectionItem__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("crLv");
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2019 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
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;
};
var __metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var _a, _b, _c;



var ExtendSelectionMode;
(function (ExtendSelectionMode) {
    /**
     * only one item selected at a time
     */
    ExtendSelectionMode[ExtendSelectionMode["Single"] = 0] = "Single";
    /**
     * additive/subtractive selection
     */
    ExtendSelectionMode[ExtendSelectionMode["Toggle"] = 1] = "Toggle";
    /**
     * override selection with a range between 2 points
     */
    ExtendSelectionMode[ExtendSelectionMode["Range"] = 2] = "Range";
})(ExtendSelectionMode || (ExtendSelectionMode = {}));
const defaultSelectionBehavior = {
    single: false,
    hideFolderCheckbox: false,
    hideFileCheckbox: false,
};
class SelectionStore {
    constructor(elements = []) {
        this.pivotElement = undefined;
        this.selectionBehavior = defaultSelectionBehavior;
        this.selections = new Map(elements.map((e) => [e.id, e]));
    }
    setSelectionBehavior(newSelectionBehavior = defaultSelectionBehavior) {
        this.selectionBehavior = newSelectionBehavior;
    }
    setSelection(elements) {
        this.clear();
        this.addSelections(elements);
    }
    addSelections(elements) {
        elements.forEach(e => this.selections.set(e.id, e));
    }
    toggleSelection(element) {
        if (this.selections.has(element.id)) {
            this.selections.delete(element.id);
        }
        else {
            this.selections.set(element.id, element);
        }
    }
    clear() {
        this.selections.clear();
        this.pivotElement = undefined;
    }
    /**
     * User-initiated gestures for modifying selection should be handled solely by this method.
     */
    extendSelection(
    /**
     * All items in the current view that are potential candidates for extending selection
     */
    elements, 
    /**
     * The item that the user clicked (or click-equivalent keyboard event)
     */
    targetElement, 
    /**
     * Determines how the selection should be extended:
     *  - single: targetElement replaces the current selection
     *  - toggle: targetElement is added or removed from selection
     *  - range: selection is extended from the "pivot" to the targetElement
     */
    extendSelectionMode, 
    /**
     * When true, single select acts like toggle. Only CCD sets this to false.
     */
    singleSelectTogglesSelection) {
        let extendMode = extendSelectionMode;
        // Global single-select mode overrides any user gesture
        if (this.selectionBehavior.single) {
            extendMode = ExtendSelectionMode.Single;
        }
        // act as 'toggle' if singleSelectTogglesSelection is true,
        // otherwise only allow a single selected element a at a time.
        if (singleSelectTogglesSelection && extendMode === ExtendSelectionMode.Single) {
            extendMode = ExtendSelectionMode.Toggle;
        }
        else if (extendMode === ExtendSelectionMode.Range) {
            // possible for the pivotElement to not be in elements, because it
            // can be deleted from the collection but will still be in SelectionStore
            if ((this.selections.has(targetElement.id) && this.hasOnlyOne) || !this.hasAny) {
                extendMode = ExtendSelectionMode.Single;
            }
        }
        const { pivotElement, lastSelectedElement } = this;
        switch (extendMode) {
            case ExtendSelectionMode.Single: {
                // only a single item is selected at a time
                this.clear();
                this.toggleSelection(targetElement);
                this.pivotElement = targetElement;
                return;
            }
            case ExtendSelectionMode.Range: {
                // all items between the pivot and the clicked item (inclusively) are selected
                // possible for pivotElement to not be in elements if the element is deleted,
                // so fallback to last selected element then clicked element
                const pivotExistsInElements = elements.includes(pivotElement);
                const pivot = (pivotExistsInElements && pivotElement) || lastSelectedElement || targetElement;
                this.pivotElement = pivot; // if the pivotElement was removed from elements, update it to fallback
                const pivotIndex = elements.indexOf(pivot);
                const clearContiguous = (start, dir) => {
                    let i = start + dir; // don't unselect pivot
                    let current = elements[i];
                    while (i >= 0 && i < elements.length && this.selections.has(current.id)) {
                        this.selections.delete(current.id);
                        i += dir;
                        current = elements[i];
                    }
                };
                const clickedIndex = elements.indexOf(targetElement);
                if (pivotIndex > clickedIndex) {
                    // If pivot index > clicked index,
                    // then all contiguous selections at index > pivot and index < clickedIndex are cleared.
                    clearContiguous(pivotIndex, 1);
                    clearContiguous(clickedIndex, -1);
                }
                else if (pivotIndex < clickedIndex) {
                    // If pivot index < clicked index,
                    // then all contiguous selections at index < pivot and index > clickedIndex are cleared.
                    clearContiguous(pivotIndex, -1);
                    clearContiguous(clickedIndex, 1);
                }
                else if (pivotIndex === clickedIndex) {
                    // If pivot index = clicked index,
                    // then all contiguous selections at index < pivot and index > pivot are cleared.
                    clearContiguous(pivotIndex, 1);
                    clearContiguous(pivotIndex, -1);
                }
                // select new range
                const start = Math.min(clickedIndex, pivotIndex);
                const end = Math.max(clickedIndex, pivotIndex);
                this.addSelections(elements.slice(start, end + 1));
                return;
            }
            default:
            case ExtendSelectionMode.Toggle: {
                let updatePivot = false;
                if (this.selections.has(targetElement.id)) {
                    // unselecting
                    // When the pivot is unselected, make the next/last selected item the new pivot
                    if (targetElement.id === (pivotElement && pivotElement.id)) {
                        updatePivot = true;
                    }
                    const nextElement = elements.indexOf(targetElement) + 1;
                    if (nextElement < elements.length &&
                        this.selections.has(elements[nextElement].id)) {
                        this.pivotElement = elements[nextElement];
                    }
                }
                else {
                    // selecting
                    // When selecting a new item, make it the new pivot
                    this.pivotElement = targetElement;
                }
                this.toggleSelection(targetElement);
                if (updatePivot) {
                    let curIndex = -1;
                    if (pivotElement) {
                        // Find the next selected element after pivotElement
                        curIndex = elements.indexOf(pivotElement) + 1;
                        while (curIndex < elements.length &&
                            !this.selections.has(elements[curIndex].id)) {
                            curIndex++;
                        }
                    }
                    this.pivotElement = elements[curIndex] || lastSelectedElement;
                }
            }
        }
    }
    isSelected(element) {
        return this.selections.has(element.id);
    }
    get size() {
        return this.selections.size;
    }
    get hasAny() {
        return hasAny(this);
    }
    get hasOnlyOne() {
        return hasOnlyOne(this);
    }
    get hasMultiple() {
        return hasMultiple(this);
    }
    get hasOnlyFolders() {
        return hasOnlyFolders(this);
    }
    get selectedElements() {
        return [...this.selections.values()];
    }
    get selectedIds() {
        return [...this.selections.keys()];
    }
    get lastSelectedElement() {
        return this.selectedElements.slice(-1)[0];
    }
}
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", Object)
], SelectionStore.prototype, "pivotElement", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", typeof (_a = typeof Map !== "undefined" && Map) === "function" ? _a : Object)
], SelectionStore.prototype, "selections", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", typeof (_b = typeof _types_ISelectionBehavior__WEBPACK_IMPORTED_MODULE_1___default.a !== "undefined" && _types_ISelectionBehavior__WEBPACK_IMPORTED_MODULE_1___default.a) === "function" ? _b : Object)
], SelectionStore.prototype, "selectionBehavior", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [typeof (_c = typeof _types_ISelectionBehavior__WEBPACK_IMPORTED_MODULE_1___default.a !== "undefined" && _types_ISelectionBehavior__WEBPACK_IMPORTED_MODULE_1___default.a) === "function" ? _c : Object]),
    __metadata("design:returntype", void 0)
], SelectionStore.prototype, "setSelectionBehavior", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [Array]),
    __metadata("design:returntype", void 0)
], SelectionStore.prototype, "setSelection", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [Array]),
    __metadata("design:returntype", void 0)
], SelectionStore.prototype, "addSelections", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [Boolean]),
    __metadata("design:returntype", void 0)
], SelectionStore.prototype, "toggleSelection", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", []),
    __metadata("design:returntype", void 0)
], SelectionStore.prototype, "clear", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [Array, Boolean, Number, Boolean]),
    __metadata("design:returntype", void 0)
], SelectionStore.prototype, "extendSelection", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Number),
    __metadata("design:paramtypes", [])
], SelectionStore.prototype, "size", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [])
], SelectionStore.prototype, "hasAny", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [])
], SelectionStore.prototype, "hasOnlyOne", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [])
], SelectionStore.prototype, "hasMultiple", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [])
], SelectionStore.prototype, "hasOnlyFolders", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Array),
    __metadata("design:paramtypes", [])
], SelectionStore.prototype, "selectedElements", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Array),
    __metadata("design:paramtypes", [])
], SelectionStore.prototype, "selectedIds", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], SelectionStore.prototype, "lastSelectedElement", null);
function hasAny(store) {
    return store.selectedElements.length > 0;
}
function hasOnlyOne(store) {
    return store.selectedElements.length === 1;
}
function hasMultiple(store) {
    return store.selectedElements.length > 1;
}
function hasOnlyFolders(store) {
    return hasAny(store) && store.selectedElements.every(e => Object(_Collection_ICollectionItem__WEBPACK_IMPORTED_MODULE_2__[/* isFolder */ "b"])(e));
}
function hasAnyFolders(store) {
    return store.selectedElements.some(e => Object(_Collection_ICollectionItem__WEBPACK_IMPORTED_MODULE_2__[/* isFolder */ "b"])(e));
}
function hasOnlyNonFolders(store) {
    return hasAny(store) && !hasAnyFolders(store);
}
function selectedFolders(store) {
    return store.selectedElements.filter(e => Object(_Collection_ICollectionItem__WEBPACK_IMPORTED_MODULE_2__[/* isFolder */ "b"])(e));
}
/* harmony default export */ __webpack_exports__["b"] = (SelectionStore);



/***/ }),

/***/ "7YZ5":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = LabelBase;

var _Asterisk = _interopRequireDefault(__webpack_require__("2zgN"));

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _createId = _interopRequireDefault(__webpack_require__("b7KY"));

var _filterDOMProps = _interopRequireDefault(__webpack_require__("Cv/Q"));

var _intl = __webpack_require__("Lpon");

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

const _excluded = ["label", "children", "className", "labelClassName", "wrapperClassName", "labelFor", "componentName", "necessity", "necessityIndicator"];

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

const intlMessages = {
  "cs-CZ": _interopRequireDefault(__webpack_require__("QId7")).default,
  "da-DK": _interopRequireDefault(__webpack_require__("Q4OO")).default,
  "de-DE": _interopRequireDefault(__webpack_require__("GXib")).default,
  "en-US": _interopRequireDefault(__webpack_require__("KXRi")).default,
  "es-ES": _interopRequireDefault(__webpack_require__("s96J")).default,
  "fi-FI": _interopRequireDefault(__webpack_require__("dFVR")).default,
  "fr-FR": _interopRequireDefault(__webpack_require__("RT55")).default,
  "hu-HU": _interopRequireDefault(__webpack_require__("7vz5")).default,
  "it-IT": _interopRequireDefault(__webpack_require__("Ynvm")).default,
  "ja-JP": _interopRequireDefault(__webpack_require__("06Vj")).default,
  "ko-KR": _interopRequireDefault(__webpack_require__("Vmve")).default,
  "nb-NO": _interopRequireDefault(__webpack_require__("Smhd")).default,
  "nl-NL": _interopRequireDefault(__webpack_require__("mNJ6")).default,
  "pl-PL": _interopRequireDefault(__webpack_require__("jQ0c")).default,
  "pt-BR": _interopRequireDefault(__webpack_require__("OWNY")).default,
  "ru-RU": _interopRequireDefault(__webpack_require__("f6DC")).default,
  "sv-SE": _interopRequireDefault(__webpack_require__("4U/7")).default,
  "tr-TR": _interopRequireDefault(__webpack_require__("sQW/")).default,
  "uk-UA": _interopRequireDefault(__webpack_require__("07nh")).default,
  "zh-CN": _interopRequireDefault(__webpack_require__("untp")).default,
  "zh-TW": _interopRequireDefault(__webpack_require__("FE3C")).default
};
let formatMessage = (0, _intl.messageFormatter)(intlMessages);

function LabelBase(_ref) {
  let {
    label,
    children,
    className,
    labelClassName,
    wrapperClassName,
    labelFor,
    componentName,
    necessity,
    necessityIndicator
  } = _ref,
      otherProps = _objectWithoutProperties(_ref, _excluded);

  let necessityMap = {
    required: `${label} ${formatMessage('(required)')}`,
    optional: `${label} ${formatMessage('(optional)')}`
  };
  let icon = null;

  if (necessityIndicator === 'icon' && necessity === 'required') {
    icon = /*#__PURE__*/_react.default.createElement(_Asterisk.default, {
      role: "presentation",
      className: "spectrum-UIIcon-Asterisk spectrum-fieldLabel-requiredIcon",
      size: "S",
      alt: formatMessage('(required)')
    });
  } // There are 3 cases:
  // 1. No children - only render the <label>, no wrapping div. `labelFor` required.
  // 2. 1 child - render wrapping <div>. Automatically generate child `id` and label `for` attributes.
  // 3. > 1 children - render wrapping <div>. `labelFor` required, along with `id` on child.


  let childArray = _react.default.Children.toArray(children);

  let id;
  let labelId = otherProps.id || (0, _createId.default)();
  delete otherProps.id;

  if (childArray.length === 1) {
    // Use the existing id prop, or generate one.
    id = childArray[0].props.id || (0, _createId.default)();
    let ariaLabelledby = childArray[0].props['aria-labelledby'] || (label ? labelId : null);
    childArray[0] = /*#__PURE__*/_react.default.cloneElement(childArray[0], {
      id,
      'aria-labelledby': ariaLabelledby
    });
  }

  if (id && !labelFor) {
    labelFor = id;
  }

  if (!labelFor) {
    console.warn(`Missing labelFor attribute on ${componentName} with label "${label}"`);
  }

  let fieldLabelClassName = (0, _classnames.default)(labelClassName, childArray.length === 0 ? className : null);
  let fieldLabel = label ? /*#__PURE__*/_react.default.createElement("label", _extends({
    className: fieldLabelClassName,
    id: labelId,
    htmlFor: labelFor
  }, (0, _filterDOMProps.default)(otherProps)), necessity && necessityIndicator === 'label' ? necessityMap[necessity] : label, icon && ' ', icon && icon) : /*#__PURE__*/_react.default.createElement("div", _extends({
    className: fieldLabelClassName
  }, (0, _filterDOMProps.default)(otherProps)));

  if (childArray.length > 0) {
    if (wrapperClassName) {
      childArray = /*#__PURE__*/_react.default.createElement("div", {
        "data-testid": "wrapperId",
        className: wrapperClassName
      }, childArray);
    }

    return /*#__PURE__*/_react.default.createElement("div", {
      className: className
    }, fieldLabel, childArray);
  }

  return fieldLabel;
}

LabelBase.defaultProps = {
  necessityIndicator: 'icon'
};

/***/ }),

/***/ "7ckf":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var utils = __webpack_require__("w8CP");

var assert = __webpack_require__("2j6C");

function BlockHash() {
  this.pending = null;
  this.pendingTotal = 0;
  this.blockSize = this.constructor.blockSize;
  this.outSize = this.constructor.outSize;
  this.hmacStrength = this.constructor.hmacStrength;
  this.padLength = this.constructor.padLength / 8;
  this.endian = 'big';
  this._delta8 = this.blockSize / 8;
  this._delta32 = this.blockSize / 32;
}

exports.BlockHash = BlockHash;

BlockHash.prototype.update = function update(msg, enc) {
  // Convert message to array, pad it, and join into 32bit blocks
  msg = utils.toArray(msg, enc);
  if (!this.pending) this.pending = msg;else this.pending = this.pending.concat(msg);
  this.pendingTotal += msg.length; // Enough data, try updating

  if (this.pending.length >= this._delta8) {
    msg = this.pending; // Process pending data in blocks

    var r = msg.length % this._delta8;
    this.pending = msg.slice(msg.length - r, msg.length);
    if (this.pending.length === 0) this.pending = null;
    msg = utils.join32(msg, 0, msg.length - r, this.endian);

    for (var i = 0; i < msg.length; i += this._delta32) this._update(msg, i, i + this._delta32);
  }

  return this;
};

BlockHash.prototype.digest = function digest(enc) {
  this.update(this._pad());
  assert(this.pending === null);
  return this._digest(enc);
};

BlockHash.prototype._pad = function pad() {
  var len = this.pendingTotal;
  var bytes = this._delta8;
  var k = bytes - (len + this.padLength) % bytes;
  var res = new Array(k + this.padLength);
  res[0] = 0x80;

  for (var i = 1; i < k; i++) res[i] = 0; // Append length


  len <<= 3;

  if (this.endian === 'big') {
    for (var t = 8; t < this.padLength; t++) res[i++] = 0;

    res[i++] = 0;
    res[i++] = 0;
    res[i++] = 0;
    res[i++] = 0;
    res[i++] = len >>> 24 & 0xff;
    res[i++] = len >>> 16 & 0xff;
    res[i++] = len >>> 8 & 0xff;
    res[i++] = len & 0xff;
  } else {
    res[i++] = len & 0xff;
    res[i++] = len >>> 8 & 0xff;
    res[i++] = len >>> 16 & 0xff;
    res[i++] = len >>> 24 & 0xff;
    res[i++] = 0;
    res[i++] = 0;
    res[i++] = 0;
    res[i++] = 0;

    for (t = 8; t < this.padLength; t++) res[i++] = 0;
  }

  return res;
};

/***/ }),

/***/ "7eMN":
/***/ (function(module, exports) {

/*************************************************************************
*
* ADOBE CONFIDENTIAL
* ___________________
*
* Copyright 2017 Adobe Systems Incorporated
* All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains
* the property of Adobe Systems Incorporated and its suppliers,
* if any. The intellectual and technical concepts contained
* herein are proprietary to Adobe Systems Incorporated and its
* suppliers and are protected by trade secret or copyright law.
* Dissemination of this information or reproduction of this material
* is strictly forbidden unless prior written permission is obtained
* from Adobe Systems Incorporated.
**************************************************************************/

/*global module, require, console, window */

/**
    Utility functions
**/
function generateGUID() {
  var s4 = function () {
    return Math.floor((1 + Math.random()) * 0x10000).toString(16).substring(1);
  };

  return s4() + s4() + '-' + s4() + '-' + s4() + '-' + s4() + '-' + s4() + s4() + s4();
}

function truncateEventQueue(queue, maxLength) {
  var truncatedQueue = queue;

  if (queue && queue.length > maxLength && maxLength > 0) {
    var startIndex = queue.length - maxLength;
    truncatedQueue = queue.slice(startIndex, queue.length);
  }

  return truncatedQueue;
}

function pad(n, length) {
  var str = n.toString();

  if (str.length < length) {
    var padding = [];
    padding.length = length - str.length + 1;
    str = padding.join('0') + str;
  }

  return str;
}

function extend(dest, from) {
  var props = Object.getOwnPropertyNames(from);
  props.forEach(function (name) {
    if (typeof from[name] === 'object') {
      if (typeof dest[name] !== 'object') {
        dest[name] = {};
      }

      extend(dest[name], from[name]);
    } else {
      var destination = Object.getOwnPropertyDescriptor(from, name);
      Object.defineProperty(dest, name, destination);
    }
  });
  return dest;
}

function notifyCallbacks(callbacks, err, numSentEvents) {
  callbacks.forEach(function (callback) {
    // Call each callback in a timeout, so if there's an exception in one callback it doesn't affect any others
    setTimeout(function () {
      callback(err, numSentEvents);
    });
  });
}
/**
		Constants
**/


var LOG_PREFIX = 'Ingest :: ';
var ANALYTICS_HOST = {
  prod: 'cc-api-data.adobe.io',
  stage: 'cc-api-data-stage.adobe.io',
  dev: 'cc-api-data-dev.adobe.io'
};
var INGEST_PATH = '/ingest';
var RETRY_RANDOM_SECONDS = 10; // Settable options, with their default values

var DEFAULT_OPTIONS = {
  ENVIRONMENT: 'prod',
  ALLOW_NO_TOKEN: false,
  ANALYTICS_INGEST_TYPE: 'dunamis',
  ANALYTICS_MAX_QUEUED_EVENTS: 50,
  ANALYTICS_DEBOUNCE: 10000,
  ANALYTICS_API_KEY: null,
  ANALYTICS_X_PRODUCT: null,
  ANALYTICS_X_PRODUCT_LOCATION: undefined,
  ANALYTICS_PROJECT: null,
  ANALYTICS_USER_REGION: 'UNKNOWN',
  TIMESTAMP_PROPERTY_NAME: 'event.dts_end'
};
var REQUIRED_OPTIONS = ['ANALYTICS_API_KEY', 'ANALYTICS_X_PRODUCT', 'ANALYTICS_PROJECT'];
/**
		Ingest Class
**/
// Constructor

function Ingest(dependencies, options) {
  dependencies = dependencies || {};
  options = options || {};

  var throwError = message => {
    this._log(message);

    throw new Error('ERROR: ' + message);
  }; // Internal state


  this._queuedEvents = [];
  this._queuedCallbacks = [];
  this._lastSendTime = 0;
  this._isEnabled = false; // Sending analytics is disabled by default
  // Configure dependencies

  this._dependencies = extend({}, dependencies);

  if (!dependencies.getAccessToken || typeof dependencies.getAccessToken !== 'function') {
    throwError('Missing dependency: getAccessToken');
  } // Configure options


  this._options = {};
  Object.keys(DEFAULT_OPTIONS).forEach(key => {
    this._options[key] = options[key] || DEFAULT_OPTIONS[key];
  }); // Make sure required options have been passed in

  REQUIRED_OPTIONS.forEach(option => {
    if (!this._options[option]) {
      throwError('Missing option: ' + option);
    }
  }); // Make sure we have fetch

  if (typeof fetch === 'undefined') {
    throwError(`Ingest requires fetch - if in a node environment, set 'global.fetch = require('node-fetch');'`);
  }
}

Ingest.prototype._log = function (message) {
  var doLog = this._dependencies.log;

  if (doLog) {
    doLog(LOG_PREFIX + message);
  }
};

Ingest.prototype._getAgent = function (url, callback) {
  if (this._dependencies.getAgent) {
    this._dependencies.getAgent(url, callback);

    return;
  }

  callback(null, {});
};

Ingest.prototype._getAccessToken = function (callback) {
  this._dependencies.getAccessToken(callback);
};

Ingest.prototype._clearAccessToken = function () {
  if (this._dependencies.clearAccessToken) {
    this._dependencies.clearAccessToken();
  }
};

Ingest.prototype._getEnvironment = function () {
  return ANALYTICS_HOST[this._options.ENVIRONMENT] ? this._options.ENVIRONMENT : 'prod';
};

Ingest.prototype._getAnalyticsHost = function () {
  return ANALYTICS_HOST[this._getEnvironment()];
};

Ingest.prototype._formatTimestamp = function (date) {
  // Corresponds to moment format string 'YYYY-MM-DDTHH:mm:ss.SSSZZ'
  var YYYY = date.getFullYear();
  var MM = pad(date.getMonth() + 1, 2); // Month is 0-11

  var DD = pad(date.getDate(), 2);
  var HH = pad(date.getHours(), 2);
  var mm = pad(date.getMinutes(), 2);
  var ss = pad(date.getSeconds(), 2);
  var SSS = pad(date.getMilliseconds(), 3);
  var offset = date.getTimezoneOffset();
  var sign = offset < 0 ? '+' : '-'; // Sign is inverted

  var hours = Math.floor(Math.abs(offset) / 60);
  var mins = Math.abs(offset) % 60;
  var ZZ = sign + pad(hours, 2) + pad(mins, 2);
  return YYYY + '-' + MM + '-' + DD + 'T' + HH + ':' + mm + ':' + ss + '.' + SSS + ZZ;
};

Ingest.prototype._updateDebounce = function (headers) {
  var retryAfterHeader = headers && (headers['retry-after'] || headers['Retry-After']);
  var retryAfter = 0;

  if (retryAfterHeader) {
    var retryTime;

    try {
      // First, try to parse it as a number (retry time in seconds)
      retryTime = parseInt(retryAfterHeader, 10);
    } catch (ignore) {// ignore
    }

    if (retryTime) {
      retryAfter = Math.max(0, retryTime);
    } else {
      // If that fails, try to parse it as a date
      var retryDate = Date.parse(retryAfterHeader);

      if (retryDate) {
        // Need to add a randomised element to ensure requests don't all come back at the same time
        var now = new Date().valueOf();
        var retrySeconds = Math.max(0, retryDate - now) / 1000;
        var retryRandom = Math.floor(Math.random() * RETRY_RANDOM_SECONDS);
        retryAfter = retrySeconds + retryRandom;
      }
    }
  }

  this._options.ANALYTICS_DEBOUNCE = Math.max(retryAfter * 1000, this._options.ANALYTICS_DEBOUNCE);
};

Ingest.prototype._queueEvent = function (event) {
  if (this._queuedEvents.length >= this._options.ANALYTICS_MAX_QUEUED_EVENTS) {
    this._queuedEvents.shift();
  }

  this._queuedEvents.push(event);
};

Ingest.prototype._requeueEvents = function (failedEvents) {
  // If we failed sending events, add them back to the beginning of the queue - but make sure it doesn't go over the maximum length
  this._queuedEvents = failedEvents.concat(this._queuedEvents);
  this._queuedEvents = truncateEventQueue(this._queuedEvents, this._options.ANALYTICS_MAX_QUEUED_EVENTS);
};

Ingest.prototype._sendAnalytics = function (sendImmediately, callback, retryAttemps) {
  retryAttemps = retryAttemps || 0;

  if (callback) {
    this._queuedCallbacks.push(callback);
  }

  if (!this._isEnabled || this._queuedEvents.length === 0) {
    var callbacks = this._queuedCallbacks;
    this._queuedCallbacks = [];

    if (!this._isEnabled) {
      notifyCallbacks(callbacks, new Error('Analytics Disabled'));
    } else {
      notifyCallbacks(callbacks, null, 0);
    }

    return;
  }

  var debounce = this._options.ANALYTICS_DEBOUNCE;

  if (sendImmediately) {
    // Clear any timeout, and set the debounce to zero, to force an immediate send
    debounce = 0;
    clearTimeout(this._pendingSendAnalyticsTimeout);
    this._pendingSendAnalyticsTimeout = undefined;
  }

  if (this._sendingEvents || this._pendingSendAnalyticsTimeout) {
    // We're in the middle of sending analytics already
    // This will automatically kick off another send afterwards, so no need to do anything
    // However, we'd want to store if we need to kick off another send with `sendImmediately = true` afterwards.
    if (sendImmediately) {
      this._fastFollow = true;
    }

    return;
  }

  var currentTime = new Date().valueOf();

  if (currentTime - this._lastSendTime < debounce) {
    // Throttle analytics, so we don't send too often - this allows us to batch up analytics
    this._pendingSendAnalyticsTimeout = setTimeout(() => {
      this._pendingSendAnalyticsTimeout = undefined;

      this._sendAnalytics();
    }, debounce);
    return;
  }

  this._lastSendTime = currentTime; // The queued events are now going to be sent

  this._sendingEvents = this._queuedEvents;
  this._sendingCallbacks = this._queuedCallbacks;
  this._queuedEvents = [];
  this._queuedCallbacks = [];
  var requestId = generateGUID();
  var logPrefix = '[' + requestId + '] ';
  var ingestData = {
    events: this._sendingEvents
  }; // This gets called when finished, whether we got a response or failed with an error

  var onFinished = err => {
    var numNewEvents = this._queuedEvents ? this._queuedEvents.length : 0;

    if (this._sendingEvents) {
      var numSentEvents = this._sendingEvents.length;

      if (err) {
        this._requeueEvents(this._sendingEvents);

        this._log(logPrefix + 'Error sending ' + numSentEvents + ' events: ' + err);
      } else {
        this._log(logPrefix + 'Success sending ' + numSentEvents + ' events: ' + JSON.stringify(this._sendingEvents));
      }

      delete this._sendingEvents;
      var sendingCallbacks = this._sendingCallbacks;
      delete this._sendingCallbacks;

      if (err) {
        notifyCallbacks(sendingCallbacks, err);
      } else {
        notifyCallbacks(sendingCallbacks, null, numSentEvents);
      }
    } // If there were any new events while sending the last batch, trigger another send.
    // Note: This doesn't auto-trigger a retry if we failed, and there were no new events.


    if (numNewEvents > 0) {
      // fastFollow stores whether a client has called us with sendImmediately = true when we were busy
      this._sendAnalytics(this._fastFollow);
    }

    this._fastFollow = false;
  }; // This gets called when we get an actual response from the server


  var handleResponse = (statusCode, headers) => {
    this._updateDebounce(headers);

    if (statusCode === 401 && retryAttemps === 0) {
      this._clearAccessToken();

      this._requeueEvents(this._sendingEvents);

      delete this._sendingEvents;
      this._queuedCallbacks = this._sendingCallbacks.concat(this._queuedCallbacks);
      delete this._sendingCallbacks; // Retry one more time

      this._log(logPrefix + 'Access token is expired. Retry one more time.');

      this._sendAnalytics(true, undefined, retryAttemps + 1);

      return;
    }

    if (statusCode !== 200) {
      onFinished(new Error('Unexpected Response: ' + statusCode));
      return;
    }

    onFinished();
  };

  this._getAccessToken((err, token) => {
    if (err && !this._options.ALLOW_NO_TOKEN) {
      onFinished(err);
      return;
    }

    if ((!token || token.length === 0) && !this._options.ALLOW_NO_TOKEN) {
      onFinished(new Error('No access token'));
      return;
    }

    var urlBase = 'https://' + this._getAnalyticsHost();

    this._log(logPrefix + 'Sending analytics to ' + urlBase + INGEST_PATH);

    const headers = {
      'x-api-key': this._options.ANALYTICS_API_KEY,
      'X-Product': this._options.ANALYTICS_X_PRODUCT,
      'User-Agent': this._options.ANALYTICS_USER_AGENT || this._options.ANALYTICS_API_KEY,
      'X-Request-Id': requestId,
      'Content-Type': 'application/json'
    };

    if (token) {
      headers.Authorization = 'Bearer ' + token;
    }

    if (this._options.ANALYTICS_X_PRODUCT_LOCATION) {
      headers['X-Product-Location'] = this._options.ANALYTICS_X_PRODUCT_LOCATION;
    }

    this._getAgent(urlBase, (err, proxyOptions) => {
      const options = {
        method: 'POST',
        headers,
        body: JSON.stringify(ingestData)
      };

      if (proxyOptions && proxyOptions.agent) {
        options.agent = proxyOptions && proxyOptions.agent;
      } else {
        extend(options, proxyOptions || {});
      }

      fetch(urlBase + INGEST_PATH, options).then(response => {
        handleResponse(response.status, response.headers);
      }, onFinished);
    });
  });
};
/**
		Public APIs
**/

/**
 * Configure whether analytics is enabled or not. Note: By default, analytics are disabled, so you need to
 * explicitly call `ingest.enable(true)` to enable sending analytics.
 *
 * When sending analytics is disabled, events are still queued up, so they can be sent when it's reenabled.
 *
 * @param {Boolean} isEnabled Whether to enable or disable sending analytics.
 *
 * @memberof Ingest
 */


Ingest.prototype.enable = function (isEnabled) {
  this._isEnabled = isEnabled;

  if (isEnabled) {
    // If we enable analytics, trigger flushing any queued events
    this._sendAnalytics(true);
  }
};
/**
 * Post an analytics event to ingest.
 *
 * @param {Object} payload Ingest payload to be sent
 * @param {Function} [callback] If supplied, called when the event has been posted (or failed)
 *
 * @memberof Ingest
 */


Ingest.prototype.postEvent = function (payload, callback, options) {
  var overrideOptions = options || {};
  var dtsStart = 'event.dts_start';
  var collDts = 'event.coll_dts';
  var dtsEnd = overrideOptions.TIMESTAMP_PROPERTY_NAME || this._options.TIMESTAMP_PROPERTY_NAME;
  var ingestProject = overrideOptions.ANALYTICS_PROJECT || this._options.ANALYTICS_PROJECT;
  var ingestType = overrideOptions.ANALYTICS_INGEST_TYPE || this._options.ANALYTICS_INGEST_TYPE;

  if (payload[collDts] && payload[collDts] instanceof Date) {
    payload[collDts] = this._formatTimestamp(payload[collDts]);
  }

  if (payload[dtsStart] && payload[dtsStart] instanceof Date) {
    payload[dtsStart] = this._formatTimestamp(payload[dtsStart]);
  } // Set to current time, if it's not supplied


  if (!payload[dtsEnd]) {
    payload[dtsEnd] = this._formatTimestamp(new Date());
  }

  if (payload[dtsEnd] instanceof Date) {
    payload[dtsEnd] = this._formatTimestamp(payload[dtsEnd]);
  }

  var event = {
    time: payload[dtsEnd],
    project: ingestProject,
    environment: this._getEnvironment(),
    ingesttype: ingestType,
    data: payload
  };
  /**
  * Payload's 'simulate' property triggers the option to not
  * actually post the event but dump all relevant data to a log
  */

  if (!payload.simulate) {
    this._queueEvent(event);

    this._sendAnalytics(false, callback);
  } else {
    this._log('event sim:' + JSON.stringify(event));

    if (callback) {
      notifyCallbacks([callback], null, 0);
    }
  }
};
/**
 * Flush the analytics (trigger sending any queued analytics to the server)
 *
 * @param {Boolean} immediate Flush event immediately or not
 * @param {Function} [callback] If supplied, called when the flush has finished (or failed)
 *
 * @memberof Ingest
 */


Ingest.prototype.flush = function (sendImmediately, callback) {
  this._sendAnalytics(sendImmediately, callback);
};

module.exports = Ingest;

/***/ }),

/***/ "7evs":
/***/ (function(module, exports, __webpack_require__) {

var map = {
	"./cs.json": "oby6",
	"./da.json": "c3AU",
	"./de.json": "QUI0",
	"./en.json": "o8MM",
	"./es.json": "xrVZ",
	"./fi.json": "iv+e",
	"./fr.json": "tBM1",
	"./hu.json": "PM2r",
	"./it.json": "btsv",
	"./ja.json": "pxpC",
	"./ko.json": "eIzu",
	"./nb.json": "pE5b",
	"./nl.json": "P6av",
	"./pl.json": "T8Wu",
	"./pt.json": "4wef",
	"./ru.json": "PUkj",
	"./sv.json": "yI+v",
	"./tr.json": "nXEi",
	"./uk.json": "UJi9",
	"./zh-Hans.json": "JXTK",
	"./zh-Hant.json": "nOLB",
	"./zh_CN.json": "b+sl",
	"./zh_TW.json": "GCyE",
	"./zz.json": "0cst"
};


function webpackContext(req) {
	var id = webpackContextResolve(req);
	return __webpack_require__(id);
}
function webpackContextResolve(req) {
	if(!__webpack_require__.o(map, req)) {
		var e = new Error("Cannot find module '" + req + "'");
		e.code = 'MODULE_NOT_FOUND';
		throw e;
	}
	return map[req];
}
webpackContext.keys = function webpackContextKeys() {
	return Object.keys(map);
};
webpackContext.resolve = webpackContextResolve;
module.exports = webpackContext;
webpackContext.id = "7evs";

/***/ }),

/***/ "7j2M":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("path", {
  d: "M40 4H14.3a.5.5 0 0 0-.35.858l7.9 7.728a54.183 54.183 0 0 0-9.379 13.55c-4.786 10.29-3.125 20.382-2.169 20.341 2.752-.12 1.569-3.44 3.365-7.179 4.771-9.931 13.266-15.555 17.29-17.806l8.184 8a.5.5 0 0 0 .85-.358z"
}));

/***/ }),

/***/ "7oBp":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = UxpLabelBase;

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _createId = _interopRequireDefault(__webpack_require__("b7KY"));

var _filterDOMProps = _interopRequireDefault(__webpack_require__("Cv/Q"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

__webpack_require__("zImf");

const _excluded = ["label", "children", "className", "labelClassName", "wrapperClassName", "labelFor", "componentName", "icon", "position"];

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

function UxpLabelBase(_ref) {
  let {
    label,
    children,
    className,
    labelClassName,
    wrapperClassName,
    labelFor,
    componentName,
    icon,
    position
  } = _ref,
      otherProps = _objectWithoutProperties(_ref, _excluded); // There are 3 cases:
  // 1. No children - only render the <label>, no wrapping div. `labelFor` required.
  // 2. 1 child - render wrapping <div>. Automatically generate child `id` and label `for` attributes.
  // 3. > 1 children - render wrapping <div>. `labelFor` required, along with `id` on child.


  let childArray = _react.default.Children.toArray(children);

  let id;
  let labelId = otherProps.id || (0, _createId.default)();
  delete otherProps.id;

  if (childArray.length === 1) {
    // Use the existing id prop, or generate one.
    id = childArray[0].props.id || (0, _createId.default)();
    let ariaLabelledby = childArray[0].props['aria-labelledby'] || (label ? labelId : null);
    childArray[0] = /*#__PURE__*/_react.default.cloneElement(childArray[0], {
      id,
      labelId,
      'aria-labelledby': ariaLabelledby
    });
  }

  if (id && !labelFor) {
    labelFor = id;
  }

  if (!labelFor) {
    console.warn(`Missing labelFor attribute on ${componentName} with label "${label}"`);
  }

  let fieldLabelClassName = (0, _classnames.default)(labelClassName, childArray.length === 0 ? className : null);
  let fieldLabel = label ? /*#__PURE__*/_react.default.createElement("label", _extends({
    className: fieldLabelClassName,
    id: labelId,
    htmlFor: labelFor
  }, (0, _filterDOMProps.default)(otherProps)), label, icon && ' ', icon && icon) : /*#__PURE__*/_react.default.createElement("div", _extends({
    className: fieldLabelClassName
  }, (0, _filterDOMProps.default)(otherProps)));

  if (childArray.length > 0) {
    if (wrapperClassName) {
      childArray = /*#__PURE__*/_react.default.createElement("div", {
        className: wrapperClassName
      }, childArray);
    }

    return /*#__PURE__*/_react.default.createElement("div", {
      className: (0, _classnames.default)(className, 'fieldLabelBase-Override', {
        'fieldLabelBase-Override--row': position === 'left' || position === 'right',
        'fieldLabelBase-Override--column': position !== 'left' && position !== 'right'
      })
    }, fieldLabel, childArray);
  }

  return fieldLabel;
}

/***/ }),

/***/ "7rzC":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

const _excluded = ["styles"];

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }

function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

var _default = _ref => {
  let {
    styles = {}
  } = _ref,
      props = _objectWithoutProperties(_ref, _excluded);

  return /*#__PURE__*/_react.default.createElement("svg", _extends({
    xmlns: "http://www.w3.org/2000/svg",
    height: "18",
    viewBox: "0 0 18 18",
    width: "18"
  }, props), /*#__PURE__*/_react.default.createElement("path", {
    d: "M9 1a8 8 0 1 0 8 8 8 8 0 0 0-8-8zM7.7 3.388a.356.356 0 0 1 .168-.338 3.123 3.123 0 0 1 1.113-.229 3.43 3.43 0 0 1 1.116.172.388.388 0 0 1 .2.344v1.225c0 1.442-.289 5.445-.342 5.973a.264.264 0 0 1-.265.262l-.028-.002H8.3a.284.284 0 0 1-.289-.236c-.05-.682-.311-4.55-.311-5.946zM9 14.425a1.287 1.287 0 0 1-1.4-1.315 1.33 1.33 0 0 1 1.308-1.352L9 11.76a1.316 1.316 0 0 1 1.398 1.228q.004.06.002.122A1.287 1.287 0 0 1 9 14.425z",
    fill: "#6e6e6e"
  }));
};

exports.default = _default;

/***/ }),

/***/ "7vz5":
/***/ (function(module) {

module.exports = JSON.parse("{\"(optional)\":\"(opcionális)\",\"(required)\":\"(kötelező)\"}");

/***/ }),

/***/ "7x5w":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var _UxpOptions = _interopRequireDefault(__webpack_require__("zvwv"));

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}
/*************************************************************************
* ADOBE CONFIDENTIAL
* ___________________
*
* Copyright 2019 Adobe
* All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains
* the property of Adobe and its suppliers, if any. The intellectual
* and technical concepts contained herein are proprietary to Adobe
* and its suppliers and are protected by all applicable intellectual
* property laws, including trade secret and copyright laws.
* Dissemination of this information or reproduction of this material
* is strictly forbidden unless prior written permission is obtained
* from Adobe.
**************************************************************************/


module.exports = _UxpOptions.default.select('CoachMark', () => __webpack_require__("pdqd"), () => __webpack_require__("zLtB"));

/***/ }),

/***/ "7zOy":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.calculatePositionInternal = calculatePositionInternal;
exports.default = calculatePosition;

var _style = _interopRequireDefault(__webpack_require__("sKrG"));

var _offset = _interopRequireDefault(__webpack_require__("A63a"));

var _position = _interopRequireDefault(__webpack_require__("fpU1"));

var _scrollLeft = _interopRequireDefault(__webpack_require__("+i7v"));

var _scrollTop = _interopRequireDefault(__webpack_require__("ZfQF"));

var _ownerDocument = _interopRequireDefault(__webpack_require__("o43f"));

var _reactDom = _interopRequireDefault(__webpack_require__("i8i4"));

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}
/*************************************************************************
* ADOBE CONFIDENTIAL
* ___________________
*
* Copyright 2019 Adobe
* All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains
* the property of Adobe and its suppliers, if any. The intellectual
* and technical concepts contained herein are proprietary to Adobe
* and its suppliers and are protected by all applicable intellectual
* property laws, including trade secret and copyright laws.
* Dissemination of this information or reproduction of this material
* is strictly forbidden unless prior written permission is obtained
* from Adobe.
**************************************************************************/


const AXIS = {
  top: 'top',
  bottom: 'top',
  left: 'left',
  right: 'left',
  center: 'left'
};
const FLIPPED_DIRECTION = {
  top: 'bottom',
  bottom: 'top',
  left: 'right',
  right: 'left'
};
const CROSS_AXIS = {
  top: 'left',
  left: 'top'
};
const AXIS_SIZE = {
  top: 'height',
  left: 'width'
};
const PARSED_PLACEMENT_CACHE = {};

function getContainerDimensions(containerNode) {
  let width,
      height,
      top = 0,
      left = 0;
  let scroll = {};

  const containerDOMNode = _reactDom.default.findDOMNode(containerNode);

  if (containerDOMNode.tagName === 'BODY') {
    width = window.innerWidth || containerNode.clientWidth;
    height = window.innerHeight || containerNode.clientHeight;
    scroll.top = (0, _scrollTop.default)((0, _ownerDocument.default)(containerDOMNode).documentElement) || (0, _scrollTop.default)(containerDOMNode);
    scroll.left = (0, _scrollLeft.default)((0, _ownerDocument.default)(containerDOMNode).documentElement) || (0, _scrollLeft.default)(containerDOMNode);
  } else {
    ({
      width,
      height,
      top,
      left
    } = (0, _offset.default)(containerDOMNode));
    scroll.top = (0, _scrollTop.default)(containerDOMNode);
    scroll.left = (0, _scrollLeft.default)(containerDOMNode);
  }

  return {
    width,
    height,
    scroll,
    top,
    left
  };
}

function getDelta(axis, offset, size, containerDimensions, padding) {
  const containerScroll = containerDimensions.scroll[axis];
  const containerHeight = containerDimensions[AXIS_SIZE[axis]];
  const startEdgeOffset = offset - padding - containerScroll;
  const endEdgeOffset = offset + padding - containerScroll + size;

  if (startEdgeOffset < 0) {
    return -startEdgeOffset;
  } else if (endEdgeOffset > containerHeight) {
    return Math.max(containerHeight - endEdgeOffset, -startEdgeOffset);
  } else {
    return 0;
  }
}

function shouldFlip(axis, offset, size, padding, placement, flipContainerDimensions, containerOffsetWithBoundary) {
  const containerScroll = flipContainerDimensions.scroll[axis];
  const containerHeight = flipContainerDimensions[AXIS_SIZE[axis]];
  const startEdgeOffset = containerOffsetWithBoundary[axis] + offset - padding - containerScroll;
  const endEdgeOffset = containerOffsetWithBoundary[axis] + offset + padding - containerScroll + size;

  if (startEdgeOffset < 0 && (placement === 'top' || placement === 'left')) {
    return true;
  } else if (endEdgeOffset > containerHeight && (placement === 'bottom' || placement === 'right')) {
    return true;
  } else {
    return false;
  }
}

function getMargins(node) {
  const style = window.getComputedStyle(node);
  return {
    top: parseInt(style.marginTop, 10) || 0,
    bottom: parseInt(style.marginBottom, 10) || 0,
    left: parseInt(style.marginLeft, 10) || 0,
    right: parseInt(style.marginRight, 10) || 0
  };
}

function parsePlacement(input) {
  if (PARSED_PLACEMENT_CACHE[input]) {
    return PARSED_PLACEMENT_CACHE[input];
  }

  let [placement, crossPlacement] = input.split(' ');
  let axis = AXIS[placement] || 'right';
  let crossAxis = CROSS_AXIS[axis];

  if (!AXIS[crossPlacement]) {
    crossPlacement = 'center';
  }

  let size = AXIS_SIZE[axis];
  let crossSize = AXIS_SIZE[crossAxis];
  PARSED_PLACEMENT_CACHE[input] = {
    placement,
    crossPlacement,
    axis,
    crossAxis,
    size,
    crossSize
  };
  return PARSED_PLACEMENT_CACHE[input];
}

function computePosition(childOffset, containerDimensions, overlaySize, placementInfo, offset, crossOffset) {
  const {
    placement,
    crossPlacement,
    axis,
    crossAxis,
    size,
    crossSize
  } = placementInfo;
  let position = {};
  position[crossAxis] = childOffset[crossAxis] + crossOffset;

  if (crossPlacement === 'center') {
    position[crossAxis] += (childOffset[crossSize] - overlaySize[crossSize]) / 2;
  } else if (crossPlacement !== crossAxis) {
    position[crossAxis] += childOffset[crossSize] - overlaySize[crossSize];
  } // Ensure overlay sticks to target(ignore for overlays smaller than target)


  if (childOffset[crossSize] < overlaySize[crossSize]) {
    const positionForPositiveSideOverflow = Math.min(position[crossAxis], childOffset[crossAxis]);
    position[crossAxis] = Math.max(positionForPositiveSideOverflow, childOffset[crossAxis] - overlaySize[crossSize] + childOffset[crossSize]);
  }

  if (placement === axis) {
    position[axis] = childOffset[axis] - overlaySize[size] + offset;
  } else {
    position[axis] = childOffset[axis] + childOffset[size] + offset;
  }

  return position;
}

function calculatePositionInternal(placementInput, containerDimensions, childOffset, overlaySize, margins, padding, flip, boundaryDimensions, containerOffsetWithBoundary, offset, crossOffset) {
  let placementInfo = parsePlacement(placementInput);
  const {
    axis,
    size,
    crossAxis,
    crossSize,
    placement,
    crossPlacement
  } = placementInfo;
  let position = computePosition(childOffset, containerDimensions, overlaySize, placementInfo, offset, crossOffset);
  let normalizedOffset = offset; // First check if placement should be flipped

  if (flip && shouldFlip(axis, position[axis], overlaySize[size], padding, placement, boundaryDimensions, containerOffsetWithBoundary)) {
    const flippedPlacementInfo = parsePlacement(`${FLIPPED_DIRECTION[placement]} ${crossPlacement}`);
    const {
      axis,
      size
    } = flippedPlacementInfo;
    const flippedPosition = computePosition(childOffset, containerDimensions, overlaySize, flippedPlacementInfo, -1 * offset, crossOffset); // Check if flipped placement has enough space otherwise flip is not possible

    if (!shouldFlip(axis, flippedPosition[axis], overlaySize[size], padding, FLIPPED_DIRECTION[placement], boundaryDimensions, containerOffsetWithBoundary)) {
      placementInfo = flippedPlacementInfo;
      position = flippedPosition;
      normalizedOffset = -1 * offset;
    }
  }

  let delta = getDelta(crossAxis, position[crossAxis], overlaySize[crossSize], boundaryDimensions, padding);
  position[crossAxis] += delta;
  let maxHeight = Math.max(0, boundaryDimensions.height + boundaryDimensions.top + boundaryDimensions.scroll.top - containerOffsetWithBoundary.top - position.top - margins.top - margins.bottom - padding);
  overlaySize.height = Math.min(overlaySize.height, maxHeight);
  position = computePosition(childOffset, containerDimensions, overlaySize, placementInfo, normalizedOffset, crossOffset);
  delta = delta = getDelta(crossAxis, position[crossAxis], overlaySize[crossSize], boundaryDimensions, padding);
  position[crossAxis] += delta;
  const arrowPosition = {};
  arrowPosition[crossAxis] = childOffset[crossSize] > overlaySize[crossSize] ? null : childOffset[crossAxis] - position[crossAxis] + childOffset[crossSize] / 2;
  return {
    positionLeft: position.left,
    positionTop: position.top,
    maxHeight: maxHeight,
    arrowOffsetLeft: arrowPosition.left,
    arrowOffsetTop: arrowPosition.top,
    placement: placementInfo.placement
  };
}

function calculatePosition(placementInput, overlayNode, target, container, padding, flip, boundariesElement, offset, crossOffset) {
  const isBodyContainer = container.tagName === 'BODY';
  const childOffset = isBodyContainer ? (0, _offset.default)(target) : (0, _position.default)(target, container);

  if (!isBodyContainer) {
    childOffset.top += parseInt((0, _style.default)(target, 'marginTop'), 10) || 0;
    childOffset.left += parseInt((0, _style.default)(target, 'marginLeft'), 10) || 0;
  }

  const overlaySize = (0, _offset.default)(overlayNode);
  const margins = getMargins(overlayNode);
  overlaySize.width += margins.left + margins.right;
  overlaySize.height += margins.top + margins.bottom;
  const containerDimensions = getContainerDimensions(container);
  const boundaryContainer = boundariesElement === 'container' ? container : boundariesElement();
  const boundaryDimensions = getContainerDimensions(boundaryContainer);
  const containerOffsetWithBoundary = boundaryContainer.tagName === 'BODY' ? (0, _offset.default)(container) : (0, _position.default)(container, boundaryContainer);
  return calculatePositionInternal(placementInput, containerDimensions, childOffset, overlaySize, margins, padding, flip, boundaryDimensions, containerOffsetWithBoundary, offset, crossOffset);
}

/***/ }),

/***/ "7zrB":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


const encoders = __webpack_require__("ND7S");

const decoders = __webpack_require__("IPZY");

const inherits = __webpack_require__("P7XM");

const api = exports;

api.define = function define(name, body) {
  return new Entity(name, body);
};

function Entity(name, body) {
  this.name = name;
  this.body = body;
  this.decoders = {};
  this.encoders = {};
}

Entity.prototype._createNamed = function createNamed(Base) {
  const name = this.name;

  function Generated(entity) {
    this._initNamed(entity, name);
  }

  inherits(Generated, Base);

  Generated.prototype._initNamed = function _initNamed(entity, name) {
    Base.call(this, entity, name);
  };

  return new Generated(this);
};

Entity.prototype._getDecoder = function _getDecoder(enc) {
  enc = enc || 'der'; // Lazily create decoder

  if (!this.decoders.hasOwnProperty(enc)) this.decoders[enc] = this._createNamed(decoders[enc]);
  return this.decoders[enc];
};

Entity.prototype.decode = function decode(data, enc, options) {
  return this._getDecoder(enc).decode(data, options);
};

Entity.prototype._getEncoder = function _getEncoder(enc) {
  enc = enc || 'der'; // Lazily create encoder

  if (!this.encoders.hasOwnProperty(enc)) this.encoders[enc] = this._createNamed(encoders[enc]);
  return this.encoders[enc];
};

Entity.prototype.encode = function encode(data, enc,
/* internal */
reporter) {
  return this._getEncoder(enc).encode(data, reporter);
};

/***/ }),

/***/ "8+dQ":
/***/ (function(module) {

module.exports = JSON.parse("{\"close\":\"Bezárás\",\"error\":\"Hiba\",\"info\":\"Információ\",\"success\":\"Siker\",\"warning\":\"Figyelmeztetés\"}");

/***/ }),

/***/ "86MQ":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var utils = exports;

var BN = __webpack_require__("OZ/i");

var minAssert = __webpack_require__("2j6C");

var minUtils = __webpack_require__("dlgc");

utils.assert = minAssert;
utils.toArray = minUtils.toArray;
utils.zero2 = minUtils.zero2;
utils.toHex = minUtils.toHex;
utils.encode = minUtils.encode; // Represent num in a w-NAF form

function getNAF(num, w, bits) {
  var naf = new Array(Math.max(num.bitLength(), bits) + 1);
  naf.fill(0);
  var ws = 1 << w + 1;
  var k = num.clone();

  for (var i = 0; i < naf.length; i++) {
    var z;
    var mod = k.andln(ws - 1);

    if (k.isOdd()) {
      if (mod > (ws >> 1) - 1) z = (ws >> 1) - mod;else z = mod;
      k.isubn(z);
    } else {
      z = 0;
    }

    naf[i] = z;
    k.iushrn(1);
  }

  return naf;
}

utils.getNAF = getNAF; // Represent k1, k2 in a Joint Sparse Form

function getJSF(k1, k2) {
  var jsf = [[], []];
  k1 = k1.clone();
  k2 = k2.clone();
  var d1 = 0;
  var d2 = 0;
  var m8;

  while (k1.cmpn(-d1) > 0 || k2.cmpn(-d2) > 0) {
    // First phase
    var m14 = k1.andln(3) + d1 & 3;
    var m24 = k2.andln(3) + d2 & 3;
    if (m14 === 3) m14 = -1;
    if (m24 === 3) m24 = -1;
    var u1;

    if ((m14 & 1) === 0) {
      u1 = 0;
    } else {
      m8 = k1.andln(7) + d1 & 7;
      if ((m8 === 3 || m8 === 5) && m24 === 2) u1 = -m14;else u1 = m14;
    }

    jsf[0].push(u1);
    var u2;

    if ((m24 & 1) === 0) {
      u2 = 0;
    } else {
      m8 = k2.andln(7) + d2 & 7;
      if ((m8 === 3 || m8 === 5) && m14 === 2) u2 = -m24;else u2 = m24;
    }

    jsf[1].push(u2); // Second phase

    if (2 * d1 === u1 + 1) d1 = 1 - d1;
    if (2 * d2 === u2 + 1) d2 = 1 - d2;
    k1.iushrn(1);
    k2.iushrn(1);
  }

  return jsf;
}

utils.getJSF = getJSF;

function cachedProperty(obj, name, computer) {
  var key = '_' + name;

  obj.prototype[name] = function cachedProperty() {
    return this[key] !== undefined ? this[key] : this[key] = computer.call(this);
  };
}

utils.cachedProperty = cachedProperty;

function parseBytes(bytes) {
  return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') : bytes;
}

utils.parseBytes = parseBytes;

function intFromLE(bytes) {
  return new BN(bytes, 'hex', 'le');
}

utils.intFromLE = intFromLE;

/***/ }),

/***/ "86OP":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__("q1tI");
var react_default = /*#__PURE__*/__webpack_require__.n(react);

// EXTERNAL MODULE: ./node_modules/react-intl-cdo/lib/index.es.js + 1 modules
var index_es = __webpack_require__("VIzJ");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/ProjectAnalytics.ts
var ProjectAnalytics = __webpack_require__("mm/P");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/images/S_Illu_YouAreDisconnected_160x160.svg
function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}


/* harmony default export */ var S_Illu_YouAreDisconnected_160x160 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", _extends({
  id: "Layer_1",
  "data-name": "Layer 1",
  xmlns: "http://www.w3.org/2000/svg",
  width: "160",
  height: "160",
  viewBox: "0 0 160 160"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("g", {
  id: "cloud_no_connection_lg",
  "data-name": "cloud no connection lg"
}, /*#__PURE__*/react_default.a.createElement("g", {
  id: "cloud_no_connection_lg-2",
  "data-name": "cloud no connection lg"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M116.048 111.935l-73.478-.003c-6.034 0-9.519-2.489-11.379-4.576a1.5 1.5 0 1 1 2.24-1.996c2.112 2.37 5.187 3.572 9.14 3.572l73.477.003c6.107 0 17.017-5.805 17.017-17.37 0-7.891-5.696-19.004-18.359-19.004a1.5 1.5 0 0 1-1.47-1.796 16.638 16.638 0 0 0 .324-3.112 21.144 21.144 0 0 0-21.047-21.235h-.136c-14.556 0-21.383 10.968-23.126 17.469a1.499 1.499 0 0 1-1.842 1.058 23.318 23.318 0 0 0-6.11-.814 18.754 18.754 0 0 0-14.612 6.651 1.5 1.5 0 0 1-2.316-1.906A21.742 21.742 0 0 1 61.3 61.131a26.273 26.273 0 0 1 5.48.577c2.514-7.396 10.23-18.29 25.594-18.29h.152a24.145 24.145 0 0 1 24.034 24.256c-.006.659-.046 1.317-.118 1.97 8.675.82 19.623 7.71 19.623 21.921 0 13.563-12.833 20.37-20.017 20.37z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M25.274 97.846a1.5 1.5 0 0 1-1.06-2.56l17.955-17.957a1.5 1.5 0 1 1 2.121 2.121L26.334 97.406a1.495 1.495 0 0 1-1.06.44z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M43.23 97.846a1.495 1.495 0 0 1-1.06-.44L24.212 79.45a1.5 1.5 0 1 1 2.121-2.12l17.957 17.955a1.5 1.5 0 0 1-1.061 2.56z"
})))));
// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/components/EmptyState.tsx
var EmptyState = __webpack_require__("EkhW");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/styles/EmptyStates.css
var EmptyStates = __webpack_require__("i+ue");
var EmptyStates_default = /*#__PURE__*/__webpack_require__.n(EmptyStates);

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/components/Offline.tsx







class Offline_Offline extends react_default.a.Component {
    render() {
        const { cdoUISettings, intl, browseSession } = this.props;
        // Close any dialog if open on offline state.
        browseSession === null || browseSession === void 0 ? void 0 : browseSession.projectsClient._hideModal();
        ProjectAnalytics["g" /* default */].fireEvent({
            event: {
                offline: true,
                subcategory: ProjectAnalytics["c" /* Subcategory */].MyProjects,
                subtype: ProjectAnalytics["d" /* Subtype */].myProjectsPageOffline,
                type: ProjectAnalytics["e" /* Type */].render,
                workflow: ProjectAnalytics["f" /* Workflow */].Projects,
            },
            ui: cdoUISettings,
        });
        return (react_default.a.createElement(EmptyState["a" /* default */], { className: "offline", description: intl.formatMessage({ id: 'statusMessage.offline.description' }), heading: intl.formatMessage({ id: 'statusMessage.offline.heading' }), illustration: react_default.a.createElement(S_Illu_YouAreDisconnected_160x160, { className: EmptyStates_default.a.illustration }) }));
    }
}
/* harmony default export */ var components_Offline = __webpack_exports__["a"] = (Object(index_es["g" /* injectIntl */])(Offline_Offline));


/***/ }),

/***/ "86bp":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var isValue = __webpack_require__("YsTz");

var forEach = Array.prototype.forEach,
    create = Object.create;

var process = function (src, obj) {
  var key;

  for (key in src) obj[key] = src[key];
}; // eslint-disable-next-line no-unused-vars


module.exports = function (opts1
/*, …options*/
) {
  var result = create(null);
  forEach.call(arguments, function (options) {
    if (!isValue(options)) return;
    process(Object(options), result);
  });
  return result;
};

/***/ }),

/***/ "87G+":
/***/ (function(module) {

module.exports = JSON.parse("{\"File\":\"File\",\"Folder\":\"Cartella\"}");

/***/ }),

/***/ "88Gu":
/***/ (function(module, exports) {

/** Used to detect hot functions by number of calls within a span of milliseconds. */
var HOT_COUNT = 800,
    HOT_SPAN = 16;
/* Built-in method references for those with the same name as other `lodash` methods. */

var nativeNow = Date.now;
/**
 * Creates a function that'll short out and invoke `identity` instead
 * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`
 * milliseconds.
 *
 * @private
 * @param {Function} func The function to restrict.
 * @returns {Function} Returns the new shortable function.
 */

function shortOut(func) {
  var count = 0,
      lastCalled = 0;
  return function () {
    var stamp = nativeNow(),
        remaining = HOT_SPAN - (stamp - lastCalled);
    lastCalled = stamp;

    if (remaining > 0) {
      if (++count >= HOT_COUNT) {
        return arguments[0];
      }
    } else {
      count = 0;
    }

    return func.apply(undefined, arguments);
  };
}

module.exports = shortOut;

/***/ }),

/***/ "88qO":
/***/ (function(module) {

module.exports = JSON.parse("{\"Clear search\":\"Wyczyść zawartość wyszukiwania\"}");

/***/ }),

/***/ "88uX":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("path", {
  d: "M30.946 2H3.054a1 1 0 0 0-.787 1.617L14 18.589V33.9a.992.992 0 0 0 1.68.825l3.98-4.153a1.221 1.221 0 0 0 .34-.845V18.589L31.733 3.617A1 1 0 0 0 30.946 2z"
}));

/***/ }),

/***/ "8A/5":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _ccx_public_acpl_model_mobx_ACPLTypes__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("x2z8");
/* harmony import */ var _ccx_public_acpl_model_mobx_ACPLTypes__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_ccx_public_acpl_model_mobx_ACPLTypes__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _ccx_public_acpl_model_uxp_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("XQlG");
/* harmony import */ var _ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("iMIL");
/* harmony import */ var _ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var lodash_throttle__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("DzJC");
/* harmony import */ var lodash_throttle__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(lodash_throttle__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("2vnA");
/* harmony import */ var _types_IIMSData__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("9oP/");
/* harmony import */ var _utils_constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("a375");
/* harmony import */ var _utils_Logger__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("lmMR");
/* harmony import */ var _utils_metrics__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("jaHz");
/* harmony import */ var _utils_normalize_path__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__("7L8R");
/* harmony import */ var _utils_retry__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__("ABvp");
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__("C0qj");
/* harmony import */ var _DocumentStore__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__("xjsA");
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2020 Adobe Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Incorporated.
 **************************************************************************/
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;
};
var __metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var _a, _b, _c, _d, _e;













/**
 * Global var for more aggressive fetch retrying the first time any of
 * CDO/UAP/Sync Status fetches quota to compensate for ACPL initialization.
 *
 * @info
 * ACPL's StorageMetadata API "is an expensive operation as it makes system calls
 * to fetch the size of each file in the rendition cache to calculate the rendition
 * cache size. Depending on the number of renditions in the cache, fetching the
 * rendition folder size could be an I/O intensive operation and multiple parallel
 * requests can lead to higher CPU usage."
 */
let isFirstGlobalQuotaFetch = true;
// eslint-disable-next-line @typescript-eslint/no-magic-numbers
const FETCH_THROTTLE = 1000 * 60 * 3; // 3 minutes
/**
 * MobX store that maintains user quota state
 */
class QuotaStore {
    constructor(docStore, cdoMetrics, refreshEnabled = false, imsData = undefined, openToast = undefined) {
        this.docStore = docStore;
        this.cdoMetrics = cdoMetrics;
        this.refreshEnabled = refreshEnabled;
        this.imsData = imsData;
        this.openToast = openToast;
        this.usedCloudQuota = undefined;
        this.maxCloudQuota = undefined;
        this.fetchState = _constants__WEBPACK_IMPORTED_MODULE_11__[/* ProcessingState */ "n"].Pending;
        this.quotaState = undefined;
        this._defaultGetStorageMetadata = () => Promise.reject(new Error('getStorageMetadata not supplied'));
        this.getStorageMetadata = this._defaultGetStorageMetadata;
        this.logger = new _utils_Logger__WEBPACK_IMPORTED_MODULE_7__[/* Logger */ "a"](this.constructor.name);
        this.displayQuotaExceededToast = () => {
            const quotaErrorMsgId = this.imsData.accountType === _types_IIMSData__WEBPACK_IMPORTED_MODULE_5__[/* AccountType */ "a"].Personal
                ? 'exceedsQuota.personal'
                : 'exceedsQuota.enterprise';
            setTimeout(() => {
                var _a;
                (_a = this.openToast) === null || _a === void 0 ? void 0 : _a.call(this, {
                    message: `error.${quotaErrorMsgId}`,
                    variant: 'error',
                });
                // while we solely relying on notifications for the timing of our
                // toast UI, adding a delay to the 'EXCEEDS_QUOTA' toast ends up
                // being the most consistent display of OPs toast + QUOTA toast
            }, _constants__WEBPACK_IMPORTED_MODULE_11__[/* TOAST_EXCEEDED_QUOTA_DELAY */ "s"]);
        };
        this.fetch = lodash_throttle__WEBPACK_IMPORTED_MODULE_3___default()(Object(mobx__WEBPACK_IMPORTED_MODULE_4__[/* flow */ "q"])(this._fetch), FETCH_THROTTLE); // throttle to every 3 minutes at most
        this.docStore = docStore;
        this.cdoMetrics = cdoMetrics;
        this.refreshEnabled = refreshEnabled;
        this.imsData = imsData;
        this.openToast = openToast;
        Object(mobx__WEBPACK_IMPORTED_MODULE_4__[/* reaction */ "B"])(() => this.docStore.connectionState, state => {
            if (state === _ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_2__["NotificationStatus"].HAS_INTERNET_ACCESS) {
                this.fetch();
            }
        });
    }
    initSAMAssetContext(assetContext) {
        this.SAMAssetContext = assetContext;
        this.logger.debug('initSAMAssetContext');
        Object(mobx__WEBPACK_IMPORTED_MODULE_4__[/* autorun */ "k"])(() => {
            this.onSAMCloudSyncStatusChange(this.SAMAssetContext.cloudSyncStatus);
        });
    }
    /**
     * @info
     * This should cover the same cases as onAssetSyncComplete, which
     * is fired for everything except Permanent Delete. Will need to
     * either file a SAM bug to update cloudSyncStatus for Perm Delete
     * or cover Perm Delete with some other SAM API, like we already do
     * with onAssetChange for ACPFetch.
     */
    onSAMCloudSyncStatusChange(status) {
        const { Synchronized, ErrorQuotaExceeded } = _ccx_public_acpl_model_uxp_types__WEBPACK_IMPORTED_MODULE_1__[/* ACPLModel */ "a"].CloudSyncStatus;
        this.logger.debug('onSAMCloudSyncStatusChange status=%s', status);
        if (status === ErrorQuotaExceeded) {
            // SAM sets this when it encounters an "over quota" error, so we can
            // eagerly assume cloud storage is exceeded without needing to fetch
            // quota data first, which is a throttled process
            this.onNotificationStatusChange(_ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_2__["NotificationStatus"].QUOTA_EXCEEDED);
            this.displayQuotaExceededToast();
        }
        if (
        // SAM sets this when it encounters an "over quota" error, not by checking quota
        // so it should be a prompt to get actual used/max quota
        status === ErrorQuotaExceeded ||
            // SAM finished transitioning from InProgress/etc to Synchronized, refetch
            status === Synchronized) {
            this.fetch();
        }
    }
    /**
     * @info
     * To be used for notifications or error handling
     * on individual asset sync errors
     */
    onAssetSyncFail(status) {
        this.logger.debug('onAssetSyncFail status=%s', status);
    }
    /**
     * @info
     * This shouldn't be called manually, initCDOStores() hooks this up to
     * AssetSyncStateStore's onAssetSyncComplete() callback
     */
    onAssetSyncComplete() {
        this.fetch();
    }
    /**
     * @info
     * This shouldn't be called manually, initCDOStores() hooks this up to
     * CloudDocumentsClient's onAssetChange() callback
     */
    onAssetChange(op) {
        const path = Object(_utils_normalize_path__WEBPACK_IMPORTED_MODULE_9__[/* default */ "a"])(op.assetPath);
        if (op.changeOperation === _DocumentStore__WEBPACK_IMPORTED_MODULE_12__[/* AssetChangeOperation */ "a"].DELETE &&
            path.startsWith(_utils_constants__WEBPACK_IMPORTED_MODULE_6__[/* ARCHIVE_FOLDER_PATH */ "a"]) // only want perm delete, not archive delete
        ) {
            // Permanently Delete doesn't trigger asset sync notifications,
            // so we rely on onAssetChange to refetch quota.
            // However, all operations besides permanently delete trigger
            // onAssetChange before the operation is finished syncing, so
            // we rely on onAssetSyncComplete for everything else.
            this.fetch();
        }
    }
    waitForInitialization(reason) {
        return this.docStore.waitForInitialization(reason);
    }
    // using a function to mock in tests
    // eslint-disable-next-line class-methods-use-this
    isFirstGlobalQuotaFetch() {
        return isFirstGlobalQuotaFetch;
    }
    *_fetch() {
        // Quota isn't supported on web yet.
        if (!this.docStore.enableSAM && !this.docStore['isUsingACPL']) {
            return;
        }
        if (!this.refreshEnabled && this.maxCloudQuota !== undefined) {
            // CDO/UAP shouldn't need to fetch after the first time, which is only used to establish
            // if the account is cloud-disabled or not. SyncStatus will fetch continuously as needed
            // when assets change
            return;
        }
        // Assume that any in-flight request will return results that are fresh enough, so no
        // need to queue another fetch, regardless of what prompted it.
        if (this.fetchState === _constants__WEBPACK_IMPORTED_MODULE_11__[/* ProcessingState */ "n"].Fetching) {
            return;
        }
        this.fetchState = _constants__WEBPACK_IMPORTED_MODULE_11__[/* ProcessingState */ "n"].Fetching;
        yield this.waitForInitialization('QuotaStore.fetch');
        try {
            this.logger.debug('fetching quota');
            const fetchMethod = this.docStore.enableSAM
                ? () => this.SAMAssetContext.getCloudQuotaUsedAndMax()
                : () => { var _a; return (_a = this.getStorageMetadata) === null || _a === void 0 ? void 0 : _a.call(this); };
            // initial fetch needs to be more aggressive to compensate for ACPL initialization
            const retryPolicy = this.isFirstGlobalQuotaFetch()
                ? { delay: 1000, maxTries: 10 }
                : { delay: 1000, maxTries: 5, exponentialBackoff: true };
            isFirstGlobalQuotaFetch = false;
            const quotaData = yield Object(_utils_retry__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"])(fetchMethod, retryPolicy, this.logger);
            this.usedCloudQuota = quotaData.used;
            this.maxCloudQuota = quotaData.total;
            this.updateQuotaState();
            this.fetchState = _constants__WEBPACK_IMPORTED_MODULE_11__[/* ProcessingState */ "n"].Done;
            this.logger.debug('fetching quota succeeded');
        }
        catch (error) {
            let msg = 'Failed to fetch user quota data -- ';
            if (this.usedCloudQuota !== undefined && this.maxCloudQuota !== undefined) {
                // if any previous fetch succeeded, just show existing quota data
                msg += 'showing last successfully fetched quota';
                this.fetchState = _constants__WEBPACK_IMPORTED_MODULE_11__[/* ProcessingState */ "n"].Done;
            }
            else {
                // show 'No storage information' UI
                this.fetchState = _constants__WEBPACK_IMPORTED_MODULE_11__[/* ProcessingState */ "n"].Error;
                msg += 'no previous quota to show';
            }
            this.logger.warn(msg, error);
        }
    }
    updateQuotaState() {
        if (this.maxCloudQuota === 0) {
            // Assuming when max is 0GB user is enterprise with cloud storage disabled. There aren't
            // any ACPL notifications for this state, so this is the only way to determine it
            this.logger.log('max quota 0, cloud storage disabled');
            this.onNotificationStatusChange(_ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_2__["NotificationStatus"].CLOUD_STORAGE_DISABLED);
        }
        else if (this.usedCloudQuota < this.maxCloudQuota) {
            this.logger.log('quota available');
            this.onNotificationStatusChange(_ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_2__["NotificationStatus"].QUOTA_AVAILABLE);
        }
        else if (this.usedCloudQuota >= this.maxCloudQuota) {
            this.logger.log('quota exceeded');
            this.onNotificationStatusChange(_ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_2__["NotificationStatus"].QUOTA_EXCEEDED);
        }
    }
    onNotificationStatusChange(status) {
        var _a, _b;
        this.logger.debug('onNotificationStatusChange', status);
        if (!_constants__WEBPACK_IMPORTED_MODULE_11__[/* QUOTA_STATES */ "o"].includes(status) || this.quotaState === status) {
            return;
        }
        this.quotaState = status;
        // TODO: Adjust this metric once https://jira.corp.adobe.com/browse/ECOINT-4884 is approved
        (_b = (_a = this.cdoMetrics) === null || _a === void 0 ? void 0 : _a.fireEvent) === null || _b === void 0 ? void 0 : _b.call(_a, {
            event: {
                workflow: _utils_metrics__WEBPACK_IMPORTED_MODULE_8__[/* Workflow */ "h"].CloudDocuments,
                subcategory: _utils_metrics__WEBPACK_IMPORTED_MODULE_8__[/* NOTIFICATIONS_SUBCATEGORY */ "f"],
                type: _utils_metrics__WEBPACK_IMPORTED_MODULE_8__[/* EventType */ "c"].Info,
                error_desc: status.toString(),
            },
        });
    }
    get isSyncDisabled() {
        return (this.quotaState === _ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_2__["NotificationStatus"].QUOTA_EXCEEDED ||
            this.quotaState === _ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_2__["NotificationStatus"].CLOUD_STORAGE_DISABLED);
    }
}
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_4__[/* observable */ "z"],
    __metadata("design:type", Number)
], QuotaStore.prototype, "usedCloudQuota", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_4__[/* observable */ "z"],
    __metadata("design:type", Number)
], QuotaStore.prototype, "maxCloudQuota", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_4__[/* observable */ "z"],
    __metadata("design:type", typeof (_a = typeof _constants__WEBPACK_IMPORTED_MODULE_11__[/* ProcessingState */ "n"] !== "undefined" && _constants__WEBPACK_IMPORTED_MODULE_11__[/* ProcessingState */ "n"]) === "function" ? _a : Object)
], QuotaStore.prototype, "fetchState", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_4__[/* observable */ "z"],
    __metadata("design:type", typeof (_b = typeof _constants__WEBPACK_IMPORTED_MODULE_11__["QuotaState"] !== "undefined" && _constants__WEBPACK_IMPORTED_MODULE_11__["QuotaState"]) === "function" ? _b : Object)
], QuotaStore.prototype, "quotaState", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_4__[/* observable */ "z"],
    __metadata("design:type", typeof (_c = typeof _ccx_public_acpl_model_mobx_ACPLTypes__WEBPACK_IMPORTED_MODULE_0__["IACPLAssetContext"] !== "undefined" && _ccx_public_acpl_model_mobx_ACPLTypes__WEBPACK_IMPORTED_MODULE_0__["IACPLAssetContext"]) === "function" ? _c : Object)
], QuotaStore.prototype, "SAMAssetContext", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_4__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [typeof (_d = typeof _ccx_public_acpl_model_mobx_ACPLTypes__WEBPACK_IMPORTED_MODULE_0__["IACPLAssetContext"] !== "undefined" && _ccx_public_acpl_model_mobx_ACPLTypes__WEBPACK_IMPORTED_MODULE_0__["IACPLAssetContext"]) === "function" ? _d : Object]),
    __metadata("design:returntype", void 0)
], QuotaStore.prototype, "initSAMAssetContext", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_4__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", []),
    __metadata("design:returntype", void 0)
], QuotaStore.prototype, "_fetch", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_4__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [typeof (_e = typeof _ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_2__["NotificationStatus"] !== "undefined" && _ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_2__["NotificationStatus"]) === "function" ? _e : Object]),
    __metadata("design:returntype", void 0)
], QuotaStore.prototype, "onNotificationStatusChange", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_4__[/* computed */ "l"],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], QuotaStore.prototype, "isSyncDisabled", null);
/* harmony default export */ __webpack_exports__["a"] = (QuotaStore);


/***/ }),

/***/ "8Ef9":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(global, Buffer, process) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ExportStore; });
/* unused harmony export FILE_TRANSFER_STATUS */
/* unused harmony export FILE_TYPE_MAP */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return ImportStore; });
/* unused harmony export constructErrorData */
/* unused harmony export isSupportedFileTypes */
/* harmony import */ var crypto__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("HEbw");
/* harmony import */ var crypto__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(crypto__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("33yf");
/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_1__);
/*! *****************************************************************************
Copyright (c) Microsoft Corporation.

Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */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 __awaiter(thisArg,_arguments,P,generator){function adopt(value){return value instanceof P?value:new P(function(resolve){resolve(value);});}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):adopt(result.value).then(fulfilled,rejected);}step((generator=generator.apply(thisArg,_arguments||[])).next());});}let counter=0;function uuid(){counter++;if(counter===Number.MAX_SAFE_INTEGER){counter=0;}return'id-'+counter+'-'+Date.now().toString(36)+'-'+Math.random().toString(36).substr(2);}var commonjsGlobal=typeof globalThis!=='undefined'?globalThis:typeof window!=='undefined'?window:typeof global!=='undefined'?global:typeof self!=='undefined'?self:{};var dist={};var v1$1={};var rng$1={};Object.defineProperty(rng$1,"__esModule",{value:true});rng$1.default=rng;var _crypto$2=_interopRequireDefault$b(crypto__WEBPACK_IMPORTED_MODULE_0___default.a);function _interopRequireDefault$b(obj){return obj&&obj.__esModule?obj:{default:obj};}const rnds8Pool=new Uint8Array(256);// # of random values to pre-allocate
let poolPtr=rnds8Pool.length;function rng(){if(poolPtr>rnds8Pool.length-16){_crypto$2.default.randomFillSync(rnds8Pool);poolPtr=0;}return rnds8Pool.slice(poolPtr,poolPtr+=16);}var stringify$1={};var validate$1={};var regex={};Object.defineProperty(regex,"__esModule",{value:true});regex.default=void 0;var _default$c=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;regex.default=_default$c;Object.defineProperty(validate$1,"__esModule",{value:true});validate$1.default=void 0;var _regex=_interopRequireDefault$a(regex);function _interopRequireDefault$a(obj){return obj&&obj.__esModule?obj:{default:obj};}function validate(uuid){return typeof uuid==='string'&&_regex.default.test(uuid);}var _default$b=validate;validate$1.default=_default$b;Object.defineProperty(stringify$1,"__esModule",{value:true});stringify$1.default=void 0;var _validate$2=_interopRequireDefault$9(validate$1);function _interopRequireDefault$9(obj){return obj&&obj.__esModule?obj:{default:obj};}/**
 * Convert array of 16 byte values to UUID string format of the form:
 * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
 */const byteToHex=[];for(let i=0;i<256;++i){byteToHex.push((i+0x100).toString(16).substr(1));}function stringify(arr,offset=0){// Note: Be careful editing this code!  It's been tuned for performance
// and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434
const uuid=(byteToHex[arr[offset+0]]+byteToHex[arr[offset+1]]+byteToHex[arr[offset+2]]+byteToHex[arr[offset+3]]+'-'+byteToHex[arr[offset+4]]+byteToHex[arr[offset+5]]+'-'+byteToHex[arr[offset+6]]+byteToHex[arr[offset+7]]+'-'+byteToHex[arr[offset+8]]+byteToHex[arr[offset+9]]+'-'+byteToHex[arr[offset+10]]+byteToHex[arr[offset+11]]+byteToHex[arr[offset+12]]+byteToHex[arr[offset+13]]+byteToHex[arr[offset+14]]+byteToHex[arr[offset+15]]).toLowerCase();// Consistency check for valid UUID.  If this throws, it's likely due to one
// of the following:
// - One or more input array values don't map to a hex octet (leading to
// "undefined" in the uuid)
// - Invalid input values for the RFC `version` or `variant` fields
if(!(0,_validate$2.default)(uuid)){throw TypeError('Stringified UUID is invalid');}return uuid;}var _default$a=stringify;stringify$1.default=_default$a;Object.defineProperty(v1$1,"__esModule",{value:true});v1$1.default=void 0;var _rng$1=_interopRequireDefault$8(rng$1);var _stringify$2=_interopRequireDefault$8(stringify$1);function _interopRequireDefault$8(obj){return obj&&obj.__esModule?obj:{default:obj};}// **`v1()` - Generate time-based UUID**
//
// Inspired by https://github.com/LiosK/UUID.js
// and http://docs.python.org/library/uuid.html
let _nodeId;let _clockseq;// Previous uuid creation time
let _lastMSecs=0;let _lastNSecs=0;// See https://github.com/uuidjs/uuid for API details
function v1(options,buf,offset){let i=buf&&offset||0;const b=buf||new Array(16);options=options||{};let node=options.node||_nodeId;let clockseq=options.clockseq!==undefined?options.clockseq:_clockseq;// node and clockseq need to be initialized to random values if they're not
// specified.  We do this lazily to minimize issues related to insufficient
// system entropy.  See #189
if(node==null||clockseq==null){const seedBytes=options.random||(options.rng||_rng$1.default)();if(node==null){// Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)
node=_nodeId=[seedBytes[0]|0x01,seedBytes[1],seedBytes[2],seedBytes[3],seedBytes[4],seedBytes[5]];}if(clockseq==null){// Per 4.2.2, randomize (14 bit) clockseq
clockseq=_clockseq=(seedBytes[6]<<8|seedBytes[7])&0x3fff;}}// UUID timestamps are 100 nano-second units since the Gregorian epoch,
// (1582-10-15 00:00).  JSNumbers aren't precise enough for this, so
// time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'
// (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.
let msecs=options.msecs!==undefined?options.msecs:Date.now();// Per 4.2.1.2, use count of uuid's generated during the current clock
// cycle to simulate higher resolution clock
let nsecs=options.nsecs!==undefined?options.nsecs:_lastNSecs+1;// Time since last uuid creation (in msecs)
const dt=msecs-_lastMSecs+(nsecs-_lastNSecs)/10000;// Per 4.2.1.2, Bump clockseq on clock regression
if(dt<0&&options.clockseq===undefined){clockseq=clockseq+1&0x3fff;}// Reset nsecs if clock regresses (new clockseq) or we've moved onto a new
// time interval
if((dt<0||msecs>_lastMSecs)&&options.nsecs===undefined){nsecs=0;}// Per 4.2.1.2 Throw error if too many uuids are requested
if(nsecs>=10000){throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");}_lastMSecs=msecs;_lastNSecs=nsecs;_clockseq=clockseq;// Per 4.1.4 - Convert from unix epoch to Gregorian epoch
msecs+=12219292800000;// `time_low`
const tl=((msecs&0xfffffff)*10000+nsecs)%0x100000000;b[i++]=tl>>>24&0xff;b[i++]=tl>>>16&0xff;b[i++]=tl>>>8&0xff;b[i++]=tl&0xff;// `time_mid`
const tmh=msecs/0x100000000*10000&0xfffffff;b[i++]=tmh>>>8&0xff;b[i++]=tmh&0xff;// `time_high_and_version`
b[i++]=tmh>>>24&0xf|0x10;// include version
b[i++]=tmh>>>16&0xff;// `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)
b[i++]=clockseq>>>8|0x80;// `clock_seq_low`
b[i++]=clockseq&0xff;// `node`
for(let n=0;n<6;++n){b[i+n]=node[n];}return buf||(0,_stringify$2.default)(b);}var _default$9=v1;v1$1.default=_default$9;var v3$1={};var v35={};var parse$1={};Object.defineProperty(parse$1,"__esModule",{value:true});parse$1.default=void 0;var _validate$1=_interopRequireDefault$7(validate$1);function _interopRequireDefault$7(obj){return obj&&obj.__esModule?obj:{default:obj};}function parse(uuid){if(!(0,_validate$1.default)(uuid)){throw TypeError('Invalid UUID');}let v;const arr=new Uint8Array(16);// Parse ########-....-....-....-............
arr[0]=(v=parseInt(uuid.slice(0,8),16))>>>24;arr[1]=v>>>16&0xff;arr[2]=v>>>8&0xff;arr[3]=v&0xff;// Parse ........-####-....-....-............
arr[4]=(v=parseInt(uuid.slice(9,13),16))>>>8;arr[5]=v&0xff;// Parse ........-....-####-....-............
arr[6]=(v=parseInt(uuid.slice(14,18),16))>>>8;arr[7]=v&0xff;// Parse ........-....-....-####-............
arr[8]=(v=parseInt(uuid.slice(19,23),16))>>>8;arr[9]=v&0xff;// Parse ........-....-....-....-############
// (Use "/" to avoid 32-bit truncation when bit-shifting high-order bytes)
arr[10]=(v=parseInt(uuid.slice(24,36),16))/0x10000000000&0xff;arr[11]=v/0x100000000&0xff;arr[12]=v>>>24&0xff;arr[13]=v>>>16&0xff;arr[14]=v>>>8&0xff;arr[15]=v&0xff;return arr;}var _default$8=parse;parse$1.default=_default$8;Object.defineProperty(v35,"__esModule",{value:true});v35.default=_default$7;v35.URL=v35.DNS=void 0;var _stringify$1=_interopRequireDefault$6(stringify$1);var _parse=_interopRequireDefault$6(parse$1);function _interopRequireDefault$6(obj){return obj&&obj.__esModule?obj:{default:obj};}function stringToBytes(str){str=unescape(encodeURIComponent(str));// UTF8 escape
const bytes=[];for(let i=0;i<str.length;++i){bytes.push(str.charCodeAt(i));}return bytes;}const DNS='6ba7b810-9dad-11d1-80b4-00c04fd430c8';v35.DNS=DNS;const URL='6ba7b811-9dad-11d1-80b4-00c04fd430c8';v35.URL=URL;function _default$7(name,version,hashfunc){function generateUUID(value,namespace,buf,offset){if(typeof value==='string'){value=stringToBytes(value);}if(typeof namespace==='string'){namespace=(0,_parse.default)(namespace);}if(namespace.length!==16){throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');}// Compute hash of namespace and value, Per 4.3
// Future: Use spread syntax when supported on all platforms, e.g. `bytes =
// hashfunc([...namespace, ... value])`
let bytes=new Uint8Array(16+value.length);bytes.set(namespace);bytes.set(value,namespace.length);bytes=hashfunc(bytes);bytes[6]=bytes[6]&0x0f|version;bytes[8]=bytes[8]&0x3f|0x80;if(buf){offset=offset||0;for(let i=0;i<16;++i){buf[offset+i]=bytes[i];}return buf;}return(0,_stringify$1.default)(bytes);}// Function#name is not settable on some platforms (#270)
try{generateUUID.name=name;// eslint-disable-next-line no-empty
}catch(err){}// For CommonJS default export support
generateUUID.DNS=DNS;generateUUID.URL=URL;return generateUUID;}var md5$1={};Object.defineProperty(md5$1,"__esModule",{value:true});md5$1.default=void 0;var _crypto$1=_interopRequireDefault$5(crypto__WEBPACK_IMPORTED_MODULE_0___default.a);function _interopRequireDefault$5(obj){return obj&&obj.__esModule?obj:{default:obj};}function md5(bytes){if(Array.isArray(bytes)){bytes=Buffer.from(bytes);}else if(typeof bytes==='string'){bytes=Buffer.from(bytes,'utf8');}return _crypto$1.default.createHash('md5').update(bytes).digest();}var _default$6=md5;md5$1.default=_default$6;Object.defineProperty(v3$1,"__esModule",{value:true});v3$1.default=void 0;var _v$1=_interopRequireDefault$4(v35);var _md=_interopRequireDefault$4(md5$1);function _interopRequireDefault$4(obj){return obj&&obj.__esModule?obj:{default:obj};}const v3=(0,_v$1.default)('v3',0x30,_md.default);var _default$5=v3;v3$1.default=_default$5;var v4$1={};Object.defineProperty(v4$1,"__esModule",{value:true});v4$1.default=void 0;var _rng=_interopRequireDefault$3(rng$1);var _stringify=_interopRequireDefault$3(stringify$1);function _interopRequireDefault$3(obj){return obj&&obj.__esModule?obj:{default:obj};}function v4(options,buf,offset){options=options||{};const rnds=options.random||(options.rng||_rng.default)();// Per 4.4, set bits for version and `clock_seq_hi_and_reserved`
rnds[6]=rnds[6]&0x0f|0x40;rnds[8]=rnds[8]&0x3f|0x80;// Copy bytes to buffer, if provided
if(buf){offset=offset||0;for(let i=0;i<16;++i){buf[offset+i]=rnds[i];}return buf;}return(0,_stringify.default)(rnds);}var _default$4=v4;v4$1.default=_default$4;var v5$1={};var sha1$1={};Object.defineProperty(sha1$1,"__esModule",{value:true});sha1$1.default=void 0;var _crypto=_interopRequireDefault$2(crypto__WEBPACK_IMPORTED_MODULE_0___default.a);function _interopRequireDefault$2(obj){return obj&&obj.__esModule?obj:{default:obj};}function sha1(bytes){if(Array.isArray(bytes)){bytes=Buffer.from(bytes);}else if(typeof bytes==='string'){bytes=Buffer.from(bytes,'utf8');}return _crypto.default.createHash('sha1').update(bytes).digest();}var _default$3=sha1;sha1$1.default=_default$3;Object.defineProperty(v5$1,"__esModule",{value:true});v5$1.default=void 0;var _v=_interopRequireDefault$1(v35);var _sha=_interopRequireDefault$1(sha1$1);function _interopRequireDefault$1(obj){return obj&&obj.__esModule?obj:{default:obj};}const v5=(0,_v.default)('v5',0x50,_sha.default);var _default$2=v5;v5$1.default=_default$2;var nil={};Object.defineProperty(nil,"__esModule",{value:true});nil.default=void 0;var _default$1='00000000-0000-0000-0000-000000000000';nil.default=_default$1;var version$1={};Object.defineProperty(version$1,"__esModule",{value:true});version$1.default=void 0;var _validate=_interopRequireDefault(validate$1);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}function version(uuid){if(!(0,_validate.default)(uuid)){throw TypeError('Invalid UUID');}return parseInt(uuid.substr(14,1),16);}var _default=version;version$1.default=_default;(function(exports){Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"v1",{enumerable:true,get:function(){return _v.default;}});Object.defineProperty(exports,"v3",{enumerable:true,get:function(){return _v2.default;}});Object.defineProperty(exports,"v4",{enumerable:true,get:function(){return _v3.default;}});Object.defineProperty(exports,"v5",{enumerable:true,get:function(){return _v4.default;}});Object.defineProperty(exports,"NIL",{enumerable:true,get:function(){return _nil.default;}});Object.defineProperty(exports,"version",{enumerable:true,get:function(){return _version.default;}});Object.defineProperty(exports,"validate",{enumerable:true,get:function(){return _validate.default;}});Object.defineProperty(exports,"stringify",{enumerable:true,get:function(){return _stringify.default;}});Object.defineProperty(exports,"parse",{enumerable:true,get:function(){return _parse.default;}});var _v=_interopRequireDefault(v1$1);var _v2=_interopRequireDefault(v3$1);var _v3=_interopRequireDefault(v4$1);var _v4=_interopRequireDefault(v5$1);var _nil=_interopRequireDefault(nil);var _version=_interopRequireDefault(version$1);var _validate=_interopRequireDefault(validate$1);var _stringify=_interopRequireDefault(stringify$1);var _parse=_interopRequireDefault(parse$1);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}})(dist);/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * @license
 * Copyright 2020 Adobe Inc.
 * All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Inc. and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Inc. and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Inc.
 **************************************************************************/ /** @private */const _unreservedChars='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_.~';/** @private */const _reservedChars=_unreservedChars+":/?#[]@!$&'()*+,;=";/** @private */const _bitmapFor=chars=>{const bitmap=[];for(let i=0;i<128;++i){bitmap.push(chars.indexOf(String.fromCharCode(i))!==-1);}return bitmap;};/** @private */_bitmapFor(_reservedChars);/** @private */_bitmapFor(_unreservedChars);/** @private */_bitmapFor(_unreservedChars+'/');// eslint-disable-next-line @typescript-eslint/no-namespace
// export namespace DCXUtil {
//     export const isBrowser = _isBrowser;
// }
const getSuffixIdxOfMimeType=(type,suffix)=>{if(!type||!suffix){return-1;}return type.indexOf(suffix);};const getStartIdxOfMimeType=type=>{if(!type){return-1;}return type.search('(text|image|audio|video|ingredient|document|model|application|font)\\/');};const E={SERVICE_IS_INACTIVE:!0,ABORTED:!0,INSECURE_REDIRECT:!0,TOO_MANY_REDIRECTS:!0,NOT_IMPLEMENTED:!0,EXCEEDS_QUOTA:!0,RETRYABLE_SERVER_ERROR:!0,TIMED_OUT:!0,TERMINATED_INPUTSTREAM:!0,WRONG_ENDPOINT:!0,ENOSPC:!0,"":!0,INVALID_STATE:!0};class O extends Error{constructor(E,_,T,R,t){if(super(),this.code=E,this.underlyingError=T,this.response=R,this.name="AdobeDCXError",this._additionalData={},this._additionalData=t,this._message=_,this.message=""+("string"==typeof E&&""!==E?"["+E+"] ":"")+(this._message||""),Object.setPrototypeOf(this,O.prototype),Error.captureStackTrace)Error.captureStackTrace(this,O);else try{const E=new Error();if(E.name=this.name,E.stack){const O=E.stack.split("\n");O.length>0&&O.splice(1,1),this.stack=O.join("\n");}}catch(E){}}get additionalData(){return this._additionalData;}set additionalData(E){this._additionalData=E;}get failedComponents(){return this._additionalData.failedComponents;}static wrapError(_,T,R,t){if(R&&E[R.code])return R;if(t&&"object"==typeof t){const E=t.statusCode;if(E>=500&&E<600)501===E?(_="NOT_IMPLEMENTED",T="Unimplemented request"):507===E?(_="EXCEEDS_QUOTA",T="Quota exceeded"):(_="RETRYABLE_SERVER_ERROR",T="Server error");else if(R instanceof O&&_===R.code&&R.code===this.UNEXPECTED_RESPONSE)return R;}return new O(_,T,R,t);}toString(){return`${this.name}: ${this.message}`;}static networkError(E,_,T){return O.wrapError("NETWORK_ERROR",E,_,T);}static unexpectedResponse(E,_,T){return O.wrapError("UNEXPECTED_RESPONSE",E,_,T);}}O.ABORTED="ABORTED",O.INSECURE_REDIRECT="INSECURE_REDIRECT",O.TOO_MANY_REDIRECTS="TOO_MANY_REDIRECTS",O.INVALID_JSON="INVALID_JSON",O.READ_ONLY="READ_ONLY",O.INVALID_PARAMS="",O.INVALID_DATA="INVALID_DATA",O.DUPLICATE_VALUE="DUPLICATE_VALUE",O.NO_BASE_BRANCH_DATA="NO_BASE_BRANCH_DATA",O.INVALID_STATE="INVALID_STATE",O.DELETED_COMPOSITE="DELETED_COMPOSITE",O.UNEXPECTED_RESPONSE="UNEXPECTED_RESPONSE",O.NETWORK_ERROR="NETWORK_ERROR",O.COMPONENT_DOWNLOAD_ERROR="COMPONENT_DOWNLOAD_ERROR",O.COMPONENT_UPLOAD_ERROR="COMPONENT_UPLOAD_ERROR",O.COMPONENT_MODIFIED_ERROR="COMPONENT_MODIFIED_ERROR",O.UPDATE_CONFLICT="UPDATE_CONFLICT",O.NO_COMPOSITE="NO_COMPOSITE",O.ALREADY_EXISTS="ALREADY_EXISTS",O.SERVICE_IS_INACTIVE="SERVICE_IS_INACTIVE",O.EXCEEDS_QUOTA="EXCEEDS_QUOTA",O.NOT_IMPLEMENTED="NOT_IMPLEMENTED",O.RETRYABLE_SERVER_ERROR="RETRYABLE_SERVER_ERROR",O.TIMED_OUT="TIMED_OUT",O.UNEXPECTED="UNEXPECTED",O.TERMINATED_INPUTSTREAM="TERMINATED_INPUTSTREAM",O.WRONG_ENDPOINT="WRONG_ENDPOINT",O.OUT_OF_SPACE="ENOSPC",O.FILE_EXISTS_IN_CLOUD="FILE_EXISTS_IN_CLOUD",O.ASSET_NOT_FOUND="ASSET_NOT_FOUND",O.COMPOSITE_NOT_FOUND="COMPOSITE_NOT_FOUND",O.NOT_FOUND="NOT_FOUND",O.UNAUTHORIZED="UNAUTHORIZED",O.FORBIDDEN="FORBIDDEN",O.PRECONDITION_FAILED="PRECONDITION_FAILED";/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * @license
 * Copyright 2021 Adobe Inc.
 * All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Inc. and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Inc. and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Inc.
 **************************************************************************/function arrayBufferToString(buff,numOfBytes){if(!buff){return'';}if(numOfBytes!=null){buff=buff.slice(0,numOfBytes);}if(process.env.APP_ENV==='browser'){const dec=new TextDecoder();return dec.decode(buff);}if(buff instanceof Buffer){return buff.toString('utf8');}try{return Buffer.from(buff).toString('utf8');}catch(e){throw new O(O.INVALID_DATA,e.message);}}/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * @license
 * Copyright 2020 Adobe Inc.
 * All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Inc. and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Inc. and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Inc.
 **************************************************************************/const COMPOSITE_SNAPSHOT_TYPE_SUFFIX='+dcxucf';const verifyandGetSnapshotMimetype=buff=>{const mimtypeWithSuffix=arrayBufferToString(buff,100);const idxOfSuffix=getSuffixIdxOfMimeType(mimtypeWithSuffix,COMPOSITE_SNAPSHOT_TYPE_SUFFIX);const startIdxOfMimeType=getStartIdxOfMimeType(mimtypeWithSuffix);if(idxOfSuffix>-1&&startIdxOfMimeType>-1){return mimtypeWithSuffix.substring(startIdxOfMimeType,idxOfSuffix+COMPOSITE_SNAPSHOT_TYPE_SUFFIX.length);}return'';};const MIMETYPES={LIBRARIES:'application/vnd.adobe.library+dcx',AERO:'application/vnd.adobe.real+dcx',ILLUSTRATOR_CLOUD_DOCUMENT:'document/vnd.adobe.illustrator+dcx',FR_CLOUD_DOCUMENT:'application/vnd.adobe.gemini+dcx',PS_CLOUD_DOCUMENT:'document/vnd.adobe.psdc+dcx',PS_CLOUD_DOCUMENT_DEP:'document/vnd.adobe.cpsd+dcx',XD_CLOUD_DOCUMENT:'application/vnd.adobe.xd.cloudproject+dcx',MIGRATED_GEMINI:'document/vnd.adobe.gemini+dcx',PS_LOCAL:'application/vnd.adobe.photoshop',ILLUSTRATOR_LOCAL:'application/vnd.adobe.illustrator',FOLDER:'application/vnd.adobe.directory+json',XD_LOCAL:'application/vnd.adobe.sparkler.project+dcxucf',JPG:'image/jpg',PNG:'image/png'};const MimeTypesToExtensions={[MIMETYPES.PNG]:'png',[MIMETYPES.JPG]:'jpg'};const FILE_TRANSFER_STATUS={INPROGRESS:'inProgress',DONE:'done',FAILED:'failed',WAITING:'waiting',CANCELLED:'cancelled',START:'start'};// http status codes
const HTTP_STATUS={OK:200,CREATED:201,ACCEPTED:202,BAD_REQUEST:400,UNAUTHORIZED:401,NOT_FOUND:404,TOO_LARGE:413};const SERVICE_ENDPOINTS={hosts:{prod:{storage:'https://cc-api-storage.adobe.io',shareSheetUrl:'https://assets.adobe.com/files?dialog=notifications',assetsUrl:'https://assets.adobe.com',platform:'https://platform-cs-va6.adobe.io',sensei:'https://sensei-ue1.adobe.io',imageService:'https://cc-api-image.adobe.io',platformStorage:'https://platform-cs.adobe.io'},stage:{storage:'https://cc-api-storage-stage.adobe.io',shareSheetUrl:'https://assets-stage.adobecc.com/files?dialog=notifications',assetsUrl:'https://assets-stage.adobecc.com',platform:'https://platform-cs-stage-va6.adobe.io',sensei:'https://sensei-stage-ue1.adobe.io',imageService:'https://cc-api-image-stage.adobe.io',platformStorage:'https://platform-cs-stage.adobe.io'}}};const TRANSFER_TYPES={DOWNLOAD:'download',UPLOAD:'upload',CONVERT:'convert'};class Constants{}Constants.BLOCKS_UPLOAD_WAIT=0.1;Constants.BLOCKS_READ_WAIT=10;Constants.MB=1024*1024;const ACPLinks={APPLICATION:'http://ns.adobe.com/adobecloud/rel/metadata/application',BLOCK_INIT:'http://ns.adobe.com/adobecloud/rel/block/init',BLOCK_TRANSFER:'http://ns.adobe.com/adobecloud/rel/block/transfer',BLOCK_FINALIZE:'http://ns.adobe.com/adobecloud/rel/block/finalize',CREATE:'http://ns.adobe.com/adobecloud/rel/create',DIRECTORY:'http://ns.adobe.com/adobecloud/rel/directory',DISCARD:'http://ns.adobe.com/adobecloud/rel/discard',DOWNLOAD:'http://ns.adobe.com/adobecloud/rel/download',HOME:'http://ns.adobe.com/adobecloud/rel/home',MANIFEST:'http://ns.adobe.com/adobecloud/rel/manifest',OPS:'http://ns.adobe.com/adobecloud/rel/ops',PAGE:'http://ns.adobe.com/adobecloud/rel/page',PATH:'http://ns.adobe.com/adobecloud/rel/path',PRIMARY:'http://ns.adobe.com/adobecloud/rel/primary',RENDITION:'http://ns.adobe.com/adobecloud/rel/rendition',REPOSITORY:'http://ns.adobe.com/adobecloud/rel/repository',REPOSITORY_METADATA:'http://ns.adobe.com/adobecloud/rel/metadata/repository',RESOLVE_PATH:'http://ns.adobe.com/adobecloud/rel/resolve/path',RESOLVE_ID:'http://ns.adobe.com/adobecloud/rel/resolve/id',RESTORE:'http://ns.adobe.com/adobecloud/rel/restore',POLICY:'http://ns.adobe.com/adobecloud/rel/ac/policy',ALTERNATE:'http://ns.adobe.com/adobecloud/rel/alternate'};// Minimum block size over which REPO API will function 10MB for Now
const BLOCK_DOWNLOAD_MIN_SIZE=10485760;const Platform={UXP:'UXP'};// this error will be thrown when file is large and when we
// do regular download using R-API's
const RESPONSE_TOO_LARGE_ERROR='http://ns.adobe.com/adobecloud/problem/responsetoolarge';/**
 * Sends an XHR request and returns the request once it's completed.
 * This is taken from https://git.corp.adobe.com/CCX/projects/blob/main/src/utils/getResponseArrayBuffer.ts
 */function sendXhrRequest(url,headers){return new Promise((resolve,reject)=>{const xhr=new XMLHttpRequest();xhr.open('get',url);// eslint-disable-next-line no-restricted-syntax
for(const[key,value]of Object.entries(headers)){xhr.setRequestHeader(key,value);}xhr.responseType='arraybuffer';xhr.onreadystatechange=function(){// we don't want to reject here. let clients handle the status.
// if (xhr.readyState === 4 && xhr.status !== 200) {
//     reject(xhr.statusText);
// }
};xhr.onloadend=()=>{resolve(xhr);};xhr.send();});}// Parses the XHR headers and creates a Header object
// that can be used in Response
// written similar to whatwg-fetch polyfill's https://github.com/github/fetch/blob/master/fetch.js#L423
function parseHeadersFromXhr(headerString){const headers=new Headers();// Replace instances of \r\n and \n followed by
// at least one space or horizontal tab with a space
// https://tools.ietf.org/html/rfc7230#section-3.2
const preProcessedHeaders=headerString.replace(/\r?\n[\t ]+/g,' ');preProcessedHeaders.split(/\r?\n/).forEach(headerLine=>{const parts=headerLine.split(':');const key=parts.shift().trim();if(key){const value=parts.join(':').trim();headers.append(key,value);}});return headers;}// creates a response object from XMLHttpRequest
// Adding this to fix download issues in UXP Apps CCD-25824
function createResponseFromXhrForUXP(xhrRequest){const options={status:xhrRequest.status,statusText:xhrRequest.statusText,headers:parseHeadersFromXhr(xhrRequest.getAllResponseHeaders()||''),url:xhrRequest.responseURL};const body=xhrRequest.response;const response=new Response(body,options);// providing Array Buffer on Response as it not available in UXP Apps.
// this was required to fix CCD-25824
response.arrayBuffer=()=>new Promise(resolve=>{resolve(body);});return response;}/** ***********************************************************************
 *
 * Copyright 2020 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/ /**
 * used for sending fetch requests
 */class FetchRequest{constructor(urlPath,context,options={},isAuthRequired=true){this.options={headers:[],method:'GET',body:''};this.urlPath='';this.context=context;this.isAuthRequired=isAuthRequired;this.urlPath=urlPath;const{headers,method,body}=options;this.options.headers=Object.assign({},this.options.headers,headers);this.options.body=body;// Default method will be 'GET'
if(method){this.options.method=method;}}/**
   * Calls the fetch method with object's url and the options.
   * signal is used for aborting fetch request.
   */fetch(signal=null,arrayBufferResponse=false){return __awaiter(this,void 0,void 0,function*(){// Only send auth token when isAuthRequired is true
if(this.context&&this.isAuthRequired){const{clientId:CLIENT_ID}=this.context;const accessToken=yield this.context.getAccessToken();this.options.headers=Object.assign({},this.options.headers,{Authorization:`Bearer ${accessToken}`,'X-Api-Key':CLIENT_ID});}// This was required to fix CCD-25824
// global response object is not having arrayBuffer method in HomeScreen.(i.e. UXP Apps)
// so instead of fetch, we are using xhr request to get the arrayBuffer
// and after getting arrayBuffer, we create a new Response and return it to caller.
// This workflow is triggered only in UXP Apps
// and when clients call this fetch API with arrayBufferResponse as true
const isXHRRequestReq=arrayBufferResponse&&this.context.platform===Platform.UXP;if(isXHRRequestReq){const response=yield sendXhrRequest(this.urlPath,this.options.headers);return createResponseFromXhrForUXP(response);}return fetch(this.urlPath,Object.assign({},this.options,{signal}));});}/**
   *
   * @param response : checks if response status is valid or not
   * fetch won't reject on HTTP error codes.
   * So we check the status explicitly and throw
   * on HTTP error codes.
   */static verifyStatus(response){const{status}=response;if(!(status>=HTTP_STATUS.OK&&status<HTTP_STATUS.BAD_REQUEST)){throw response;}}}/** ***********************************************************************
 *
 * Copyright 2021 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 ************************************************************************* */const FILE_TYPE_MAP={psd:{localMimeType:MIMETYPES.PS_LOCAL,cloudMimeType:MIMETYPES.PS_CLOUD_DOCUMENT_DEP,cloudExtension:'psdc',localExtension:'psd'},ai:{localMimeType:MIMETYPES.ILLUSTRATOR_LOCAL,cloudMimeType:MIMETYPES.ILLUSTRATOR_CLOUD_DOCUMENT,cloudExtension:'aic',localExtension:'ai'},xd:{localMimeType:MIMETYPES.XD_LOCAL,cloudMimeType:MIMETYPES.XD_CLOUD_DOCUMENT,cloudExtension:'xdc',localExtension:'xd'}};var Status;(function(Status){Status["InProgress"]="inProgess";Status["Failed"]="failed";Status["Success"]="success";})(Status||(Status={}));var PhotoshopConversion;(function(PhotoshopConversion){PhotoshopConversion["inputName"]="image_in";PhotoshopConversion["outputName"]="image_out";PhotoshopConversion["mutliPartFileName"]="inFile";PhotoshopConversion["senseiEngine"]="Feature:sensei-demo:Service-66484d87ede04702af063315a7de4094";})(PhotoshopConversion||(PhotoshopConversion={}));var IllustratorConversion;(function(IllustratorConversion){IllustratorConversion["inputName"]="contentIn";IllustratorConversion["outputName"]="contentOut";IllustratorConversion["mutliPartFileName"]="inFile";IllustratorConversion["senseiEngine"]="Feature:sensei-demo:Service-efcddebf2b4141e9ae7252091c6a2398";})(IllustratorConversion||(IllustratorConversion={}));var FileTypes;(function(FileTypes){FileTypes["ai"]="ai";FileTypes["psd"]="psd";})(FileTypes||(FileTypes={}));var RequestMethod;(function(RequestMethod){RequestMethod["POST"]="POST";RequestMethod["GET"]="GET";RequestMethod["PUT"]="PUT";})(RequestMethod||(RequestMethod={}));var Headers$1;(function(Headers){Headers["LOCATION"]="location";Headers["RETRY"]="Retry-After";Headers["X_RESOURCE_URN"]="x-resource-urn";Headers["X_REQUEST_ID"]="x-request-id";})(Headers$1||(Headers$1={}));/** ***********************************************************************
 *
 * Copyright 2021 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 ************************************************************************* */class ConversionRequest{constructor(params,context,signal,clientCallbacks){this.location='';this.startTime=0;this.requestId='';this.params=params;this.context=context;this.signal=signal;this.clientCallbacks=clientCallbacks;}getFieldNames(fileType){switch(fileType){case FileTypes.psd:return PhotoshopConversion;case FileTypes.ai:return IllustratorConversion;default:throw Status.Failed;}}getDCFormat(mimeType){// for dcx snapshot, we need to add ucf suffix.
const supportedCloudDocs=[MIMETYPES.PS_CLOUD_DOCUMENT_DEP,MIMETYPES.ILLUSTRATOR_CLOUD_DOCUMENT];if(supportedCloudDocs.includes(mimeType))return`${mimeType}ucf`;return mimeType;}createInput(mimeType,repo,repoId){const senseiConversion=this.getFieldNames(this.params.fileType);const{inputName:InputName,mutliPartFileName:MutliPartFileName}=senseiConversion;const senseiInput={};const obj={'dc:format':this.getDCFormat(mimeType)};if(repoId){obj['repo:id']=repoId;obj['sensei:repoType']=repo;}else{obj['sensei:multipart_field_name']=MutliPartFileName;}senseiInput[InputName]=obj;return senseiInput;}createOutput(mimeType,fileName,repo,parentId){const senseiConversion=this.getFieldNames(this.params.fileType);const{outputName:OutputName}=senseiConversion;const obj={'sensei:repoType':repo,'repo:id':parentId,'dc:format':this.getDCFormat(mimeType),'repo:resource':{reltype:'http://ns.adobe.com/adobecloud/rel/create',path:fileName},'sensei:additionalProperties':{op_type:'post','x-composite-name':fileName,'x-parent-urn':parentId}};const senseiOutput={};senseiOutput[OutputName]=obj;return senseiOutput;}createSenseiParams(outputMimeType,inputMimeType){const obj={format:outputMimeType,inFormat:inputMimeType};return obj;}send(){return __awaiter(this,void 0,void 0,function*(){const{fileType,inputMimeType,inputRepo,inputRepoId,inputFile,outputMimeType,outputFileName,outPutRepo,outputParentId}=this.params;this.startTime=Date.now();const senseiConversion=this.getFieldNames(fileType);const{senseiEngine:SenseiEngine,mutliPartFileName:MutliPartFileName}=senseiConversion;const senseiInput=this.createInput(inputMimeType,inputRepo,inputRepoId);const senseiOutput=this.createOutput(outputMimeType,outputFileName,outPutRepo,outputParentId);const senseiParams=this.createSenseiParams(outputMimeType,inputMimeType);const formdata=new FormData();const baseSenseiEnginePara={'sensei:execution_info':{'sensei:engine':SenseiEngine},'sensei:inputs':senseiInput,'sensei:outputs':senseiOutput};let senseiEngineParam;if(senseiParams){senseiEngineParam=Object.assign({},baseSenseiEnginePara,{'sensei:params':senseiParams});}else senseiEngineParam=baseSenseiEnginePara;formdata.append('contentAnalyzerRequests',JSON.stringify({'sensei:invocation_mode':'asynchronous','sensei:invocation_batch':false,'sensei:in_response':false,'sensei:engines':[senseiEngineParam]}));try{if(inputFile){const file=inputFile.getFileObj();formdata.append(MutliPartFileName,file,outputFileName);}const requestOptions={method:RequestMethod.POST,body:formdata};let url=SERVICE_ENDPOINTS.hosts[this.context.environment].sensei;url=`${url}/services/v2/predict`;const request=new FetchRequest(url,this.context,requestOptions);const response=yield request.fetch(this.signal);FetchRequest.verifyStatus(response);this.location=response.headers.get(Headers$1.LOCATION);this.requestId=response.headers.get(Headers$1.X_REQUEST_ID);}catch(err){throw new Error(err);}});}checkProgress(){return __awaiter(this,void 0,void 0,function*(){try{const retryRequest=new FetchRequest(this.location,this.context);const response=yield retryRequest.fetch(this.signal);const{status}=response;if(status===HTTP_STATUS.OK){const jsonResponse=yield response.json();const{invocations}=jsonResponse.statuses[0];const jsonStatus=invocations[0].status;const{message}=invocations[0];if(this.clientCallbacks&&this.clientCallbacks.progressCallback){this.clientCallbacks.progressCallback({filesInfo:[{id:this.params.fileId,status:FILE_TRANSFER_STATUS.INPROGRESS,fileName:this.params.displayFileName,transferType:TRANSFER_TYPES.CONVERT,startTime:this.startTime,message}]});}if(jsonStatus!==HTTP_STATUS.OK.toString()){console.error(`conversion: failed for ${this.requestId}
                        with message: ${message}`);throw new Error(message);}console.info(`conversion: success with message: ${message}`);return{status:Status.Success,delay:0,jsonResponse};}if(status===HTTP_STATUS.ACCEPTED){const delay=parseInt(response.headers.get(Headers$1.RETRY),10);return{status:Status.InProgress,delay};}console.error('conversion: failed unexpected response');throw new Error('Conversion failed unexpected response from server');}catch(error){console.error(`conversion: ${error}}`);throw new Error(error);}});}getConvertedDocUrn(jsonResponse){// Once conversion is complete, we check for assetId of converted local doc
let convertedAssetUrn;if(jsonResponse){const senseiResponse=jsonResponse;const conversionFields=this.getFieldNames(FileTypes[this.params.fileType]);const{outputName}=conversionFields;convertedAssetUrn=senseiResponse.statuses[0].invocations[0]['sensei:outputs'][outputName]['repo:id'];if(!convertedAssetUrn){console.error(`conversion: ${this.params.fileId} convertedAssetUrn not found in sensei response`);throw new Error('convertedAssetUrn not found in sensei response');}return convertedAssetUrn;}}}/** ***********************************************************************
 *
 * Copyright 2020 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/function getFileExtension(fileName){const index=fileName.lastIndexOf('.')+1;if(index>0){return index!==fileName.length?fileName.substr(index).toLowerCase().trim():'';}return'';}function fileNameWithoutExtension(name){return name.includes('.')?name.split('.').slice(0,-1).join('.'):name;}function isSupportedFileTypes(filePaths,supportedFileTypes=[]){let result=false;const unSupportedFile=path=>{const extension=getFileExtension(path);const isSupported=supportedFileTypes.includes(extension);return!isSupported;};result=filePaths&&!filePaths.some(unSupportedFile);return result;}var punycode$1={exports:{}};/*! https://mths.be/punycode v1.4.1 by @mathias */(function(module,exports){(function(root){/** Detect free variables */var freeExports=exports&&!exports.nodeType&&exports;var freeModule=module&&!module.nodeType&&module;var freeGlobal=typeof commonjsGlobal=='object'&&commonjsGlobal;if(freeGlobal.global===freeGlobal||freeGlobal.window===freeGlobal||freeGlobal.self===freeGlobal){root=freeGlobal;}/**
	 * The `punycode` object.
	 * @name punycode
	 * @type Object
	 */var punycode,/** Highest positive signed 32-bit float value */maxInt=2147483647,// aka. 0x7FFFFFFF or 2^31-1
/** Bootstring parameters */base=36,tMin=1,tMax=26,skew=38,damp=700,initialBias=72,initialN=128,// 0x80
delimiter='-',// '\x2D'
/** Regular expressions */regexPunycode=/^xn--/,regexNonASCII=/[^\x20-\x7E]/,// unprintable ASCII chars + non-ASCII chars
regexSeparators=/[\x2E\u3002\uFF0E\uFF61]/g,// RFC 3490 separators
/** Error messages */errors={'overflow':'Overflow: input needs wider integers to process','not-basic':'Illegal input >= 0x80 (not a basic code point)','invalid-input':'Invalid input'},/** Convenience shortcuts */baseMinusTMin=base-tMin,floor=Math.floor,stringFromCharCode=String.fromCharCode,/** Temporary variable */key;/*--------------------------------------------------------------------------*/ /**
	 * A generic error utility function.
	 * @private
	 * @param {String} type The error type.
	 * @returns {Error} Throws a `RangeError` with the applicable error message.
	 */function error(type){throw new RangeError(errors[type]);}/**
	 * A generic `Array#map` utility function.
	 * @private
	 * @param {Array} array The array to iterate over.
	 * @param {Function} callback The function that gets called for every array
	 * item.
	 * @returns {Array} A new array of values returned by the callback function.
	 */function map(array,fn){var length=array.length;var result=[];while(length--){result[length]=fn(array[length]);}return result;}/**
	 * A simple `Array#map`-like wrapper to work with domain name strings or email
	 * addresses.
	 * @private
	 * @param {String} domain The domain name or email address.
	 * @param {Function} callback The function that gets called for every
	 * character.
	 * @returns {Array} A new string of characters returned by the callback
	 * function.
	 */function mapDomain(string,fn){var parts=string.split('@');var result='';if(parts.length>1){// In email addresses, only the domain name should be punycoded. Leave
// the local part (i.e. everything up to `@`) intact.
result=parts[0]+'@';string=parts[1];}// Avoid `split(regex)` for IE8 compatibility. See #17.
string=string.replace(regexSeparators,'\x2E');var labels=string.split('.');var encoded=map(labels,fn).join('.');return result+encoded;}/**
	 * Creates an array containing the numeric code points of each Unicode
	 * character in the string. While JavaScript uses UCS-2 internally,
	 * this function will convert a pair of surrogate halves (each of which
	 * UCS-2 exposes as separate characters) into a single code point,
	 * matching UTF-16.
	 * @see `punycode.ucs2.encode`
	 * @see <https://mathiasbynens.be/notes/javascript-encoding>
	 * @memberOf punycode.ucs2
	 * @name decode
	 * @param {String} string The Unicode input string (UCS-2).
	 * @returns {Array} The new array of code points.
	 */function ucs2decode(string){var output=[],counter=0,length=string.length,value,extra;while(counter<length){value=string.charCodeAt(counter++);if(value>=0xD800&&value<=0xDBFF&&counter<length){// high surrogate, and there is a next character
extra=string.charCodeAt(counter++);if((extra&0xFC00)==0xDC00){// low surrogate
output.push(((value&0x3FF)<<10)+(extra&0x3FF)+0x10000);}else{// unmatched surrogate; only append this code unit, in case the next
// code unit is the high surrogate of a surrogate pair
output.push(value);counter--;}}else{output.push(value);}}return output;}/**
	 * Creates a string based on an array of numeric code points.
	 * @see `punycode.ucs2.decode`
	 * @memberOf punycode.ucs2
	 * @name encode
	 * @param {Array} codePoints The array of numeric code points.
	 * @returns {String} The new Unicode string (UCS-2).
	 */function ucs2encode(array){return map(array,function(value){var output='';if(value>0xFFFF){value-=0x10000;output+=stringFromCharCode(value>>>10&0x3FF|0xD800);value=0xDC00|value&0x3FF;}output+=stringFromCharCode(value);return output;}).join('');}/**
	 * Converts a basic code point into a digit/integer.
	 * @see `digitToBasic()`
	 * @private
	 * @param {Number} codePoint The basic numeric code point value.
	 * @returns {Number} The numeric value of a basic code point (for use in
	 * representing integers) in the range `0` to `base - 1`, or `base` if
	 * the code point does not represent a value.
	 */function basicToDigit(codePoint){if(codePoint-48<10){return codePoint-22;}if(codePoint-65<26){return codePoint-65;}if(codePoint-97<26){return codePoint-97;}return base;}/**
	 * Converts a digit/integer into a basic code point.
	 * @see `basicToDigit()`
	 * @private
	 * @param {Number} digit The numeric value of a basic code point.
	 * @returns {Number} The basic code point whose value (when used for
	 * representing integers) is `digit`, which needs to be in the range
	 * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is
	 * used; else, the lowercase form is used. The behavior is undefined
	 * if `flag` is non-zero and `digit` has no uppercase form.
	 */function digitToBasic(digit,flag){//  0..25 map to ASCII a..z or A..Z
// 26..35 map to ASCII 0..9
return digit+22+75*(digit<26)-((flag!=0)<<5);}/**
	 * Bias adaptation function as per section 3.4 of RFC 3492.
	 * https://tools.ietf.org/html/rfc3492#section-3.4
	 * @private
	 */function adapt(delta,numPoints,firstTime){var k=0;delta=firstTime?floor(delta/damp):delta>>1;delta+=floor(delta/numPoints);for(;delta>baseMinusTMin*tMax>>1;k+=base){delta=floor(delta/baseMinusTMin);}return floor(k+(baseMinusTMin+1)*delta/(delta+skew));}/**
	 * Converts a Punycode string of ASCII-only symbols to a string of Unicode
	 * symbols.
	 * @memberOf punycode
	 * @param {String} input The Punycode string of ASCII-only symbols.
	 * @returns {String} The resulting string of Unicode symbols.
	 */function decode(input){// Don't use UCS-2
var output=[],inputLength=input.length,out,i=0,n=initialN,bias=initialBias,basic,j,index,oldi,w,k,digit,t,/** Cached calculation results */baseMinusT;// Handle the basic code points: let `basic` be the number of input code
// points before the last delimiter, or `0` if there is none, then copy
// the first basic code points to the output.
basic=input.lastIndexOf(delimiter);if(basic<0){basic=0;}for(j=0;j<basic;++j){// if it's not a basic code point
if(input.charCodeAt(j)>=0x80){error('not-basic');}output.push(input.charCodeAt(j));}// Main decoding loop: start just after the last delimiter if any basic code
// points were copied; start at the beginning otherwise.
for(index=basic>0?basic+1:0;index<inputLength;){// `index` is the index of the next character to be consumed.
// Decode a generalized variable-length integer into `delta`,
// which gets added to `i`. The overflow checking is easier
// if we increase `i` as we go, then subtract off its starting
// value at the end to obtain `delta`.
for(oldi=i,w=1,k=base;;k+=base){if(index>=inputLength){error('invalid-input');}digit=basicToDigit(input.charCodeAt(index++));if(digit>=base||digit>floor((maxInt-i)/w)){error('overflow');}i+=digit*w;t=k<=bias?tMin:k>=bias+tMax?tMax:k-bias;if(digit<t){break;}baseMinusT=base-t;if(w>floor(maxInt/baseMinusT)){error('overflow');}w*=baseMinusT;}out=output.length+1;bias=adapt(i-oldi,out,oldi==0);// `i` was supposed to wrap around from `out` to `0`,
// incrementing `n` each time, so we'll fix that now:
if(floor(i/out)>maxInt-n){error('overflow');}n+=floor(i/out);i%=out;// Insert `n` at position `i` of the output
output.splice(i++,0,n);}return ucs2encode(output);}/**
	 * Converts a string of Unicode symbols (e.g. a domain name label) to a
	 * Punycode string of ASCII-only symbols.
	 * @memberOf punycode
	 * @param {String} input The string of Unicode symbols.
	 * @returns {String} The resulting Punycode string of ASCII-only symbols.
	 */function encode(input){var n,delta,handledCPCount,basicLength,bias,j,m,q,k,t,currentValue,output=[],/** `inputLength` will hold the number of code points in `input`. */inputLength,/** Cached calculation results */handledCPCountPlusOne,baseMinusT,qMinusT;// Convert the input in UCS-2 to Unicode
input=ucs2decode(input);// Cache the length
inputLength=input.length;// Initialize the state
n=initialN;delta=0;bias=initialBias;// Handle the basic code points
for(j=0;j<inputLength;++j){currentValue=input[j];if(currentValue<0x80){output.push(stringFromCharCode(currentValue));}}handledCPCount=basicLength=output.length;// `handledCPCount` is the number of code points that have been handled;
// `basicLength` is the number of basic code points.
// Finish the basic string - if it is not empty - with a delimiter
if(basicLength){output.push(delimiter);}// Main encoding loop:
while(handledCPCount<inputLength){// All non-basic code points < n have been handled already. Find the next
// larger one:
for(m=maxInt,j=0;j<inputLength;++j){currentValue=input[j];if(currentValue>=n&&currentValue<m){m=currentValue;}}// Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,
// but guard against overflow
handledCPCountPlusOne=handledCPCount+1;if(m-n>floor((maxInt-delta)/handledCPCountPlusOne)){error('overflow');}delta+=(m-n)*handledCPCountPlusOne;n=m;for(j=0;j<inputLength;++j){currentValue=input[j];if(currentValue<n&&++delta>maxInt){error('overflow');}if(currentValue==n){// Represent delta as a generalized variable-length integer
for(q=delta,k=base;;k+=base){t=k<=bias?tMin:k>=bias+tMax?tMax:k-bias;if(q<t){break;}qMinusT=q-t;baseMinusT=base-t;output.push(stringFromCharCode(digitToBasic(t+qMinusT%baseMinusT,0)));q=floor(qMinusT/baseMinusT);}output.push(stringFromCharCode(digitToBasic(q,0)));bias=adapt(delta,handledCPCountPlusOne,handledCPCount==basicLength);delta=0;++handledCPCount;}}++delta;++n;}return output.join('');}/**
	 * Converts a Punycode string representing a domain name or an email address
	 * to Unicode. Only the Punycoded parts of the input will be converted, i.e.
	 * it doesn't matter if you call it on a string that has already been
	 * converted to Unicode.
	 * @memberOf punycode
	 * @param {String} input The Punycoded domain name or email address to
	 * convert to Unicode.
	 * @returns {String} The Unicode representation of the given Punycode
	 * string.
	 */function toUnicode(input){return mapDomain(input,function(string){return regexPunycode.test(string)?decode(string.slice(4).toLowerCase()):string;});}/**
	 * Converts a Unicode string representing a domain name or an email address to
	 * Punycode. Only the non-ASCII parts of the domain name will be converted,
	 * i.e. it doesn't matter if you call it with a domain that's already in
	 * ASCII.
	 * @memberOf punycode
	 * @param {String} input The domain name or email address to convert, as a
	 * Unicode string.
	 * @returns {String} The Punycode representation of the given domain name or
	 * email address.
	 */function toASCII(input){return mapDomain(input,function(string){return regexNonASCII.test(string)?'xn--'+encode(string):string;});}/*--------------------------------------------------------------------------*/ /** Define the public API */punycode={/**
		 * A string representing the current Punycode.js version number.
		 * @memberOf punycode
		 * @type String
		 */'version':'1.4.1',/**
		 * An object of methods to convert from JavaScript's internal character
		 * representation (UCS-2) to Unicode code points, and back.
		 * @see <https://mathiasbynens.be/notes/javascript-encoding>
		 * @memberOf punycode
		 * @type Object
		 */'ucs2':{'decode':ucs2decode,'encode':ucs2encode},'decode':decode,'encode':encode,'toASCII':toASCII,'toUnicode':toUnicode};/** Expose `punycode` */ // Some AMD build optimizers, like r.js, check for specific condition patterns
// like the following:
if(freeExports&&freeModule){if(module.exports==freeExports){// in Node.js, io.js, or RingoJS v0.8.0+
freeModule.exports=punycode;}else{// in Narwhal or RingoJS v0.7.0-
for(key in punycode){punycode.hasOwnProperty(key)&&(freeExports[key]=punycode[key]);}}}else{// in Rhino or a web browser
root.punycode=punycode;}})(commonjsGlobal);})(punycode$1,punycode$1.exports);var punycode=punycode$1.exports;/**
 * Truncate a string to a certain number of characters (ending in ellipsis).
 * This is unicode-safe, so it won't split multi-byte characters.
 *
 * @param {string} str - String to truncate
 * @param {number} maxLength - Maximum number of characters.
 * @param {boolean} [ellipses=true]
 * @returns {string} The truncated name.
 */const truncateString=(str,maxLength,ellipses=true)=>{const trailingChars=ellipses?'...':'';// Javascript string.length, string.slice does not work correctly for certain unicode characters
// See https://mathiasbynens.be/notes/javascript-unicode
return str.length<=maxLength?str:punycode.ucs2.encode(punycode.ucs2.decode(str).slice(0,maxLength))+trailingChars;};/** ***********************************************************************
 *
 * Copyright 2020 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/const MAX_FILENAME_LENGTH_DISPLAY=100;const MAX_FILENAME_LENGTH_CONVERSION=195;const FILE_TRANSFER_ERROR_TYPES={ABORT_ERROR:'AbortError',SENSEI_CONVERSION_ERROR:'sensei-conversion-error',DOWNLOAD_ERROR:'download-error',FILE_WRITE_ERROR:'write-error',UNSUPPORTED_FILE_FORMAT:'unsupported-file-format'};const CLOUD_DOC_DOWNLOAD_EXTENSIONS={psdc:'psd',aic:'ai',xdc:'xd',xd:'xd',ai:'ai',psd:'psd'};/**
 * @param time in seconds
 * returns a promise which resolves after the time
 */function sleep(time){return new Promise(resolve=>setTimeout(resolve,time*1000));}var uriTemplates$1={exports:{}};(function(module){(function(global,factory){if(module.exports){module.exports=factory();}else{global.UriTemplate=factory();}})(commonjsGlobal,function(){var uriTemplateGlobalModifiers={"+":true,"#":true,".":true,"/":true,";":true,"?":true,"&":true};var uriTemplateSuffices={"*":true};function notReallyPercentEncode(string){return encodeURI(string).replace(/%25[0-9][0-9]/g,function(doubleEncoded){return"%"+doubleEncoded.substring(3);});}function isPercentEncoded(string){string=string.replace(/%../g,'');return encodeURIComponent(string)===string;}function uriTemplateSubstitution(spec){var modifier="";if(uriTemplateGlobalModifiers[spec.charAt(0)]){modifier=spec.charAt(0);spec=spec.substring(1);}var separator="";var prefix="";var shouldEscape=true;var showVariables=false;var trimEmptyString=false;if(modifier=='+'){shouldEscape=false;}else if(modifier=="."){prefix=".";separator=".";}else if(modifier=="/"){prefix="/";separator="/";}else if(modifier=='#'){prefix="#";shouldEscape=false;}else if(modifier==';'){prefix=";";separator=";",showVariables=true;trimEmptyString=true;}else if(modifier=='?'){prefix="?";separator="&",showVariables=true;}else if(modifier=='&'){prefix="&";separator="&",showVariables=true;}var varNames=[];var varList=spec.split(",");var varSpecs=[];var varSpecMap={};for(var i=0;i<varList.length;i++){var varName=varList[i];var truncate=null;if(varName.indexOf(":")!=-1){var parts=varName.split(":");varName=parts[0];truncate=parseInt(parts[1]);}var suffices={};while(uriTemplateSuffices[varName.charAt(varName.length-1)]){suffices[varName.charAt(varName.length-1)]=true;varName=varName.substring(0,varName.length-1);}var varSpec={truncate:truncate,name:varName,suffices:suffices};varSpecs.push(varSpec);varSpecMap[varName]=varSpec;varNames.push(varName);}var subFunction=function(valueFunction){var result="";var startIndex=0;for(var i=0;i<varSpecs.length;i++){var varSpec=varSpecs[i];var value=valueFunction(varSpec.name);if(value==null||Array.isArray(value)&&value.length==0||typeof value=='object'&&Object.keys(value).length==0){startIndex++;continue;}if(i==startIndex){result+=prefix;}else{result+=separator||",";}if(Array.isArray(value)){if(showVariables){result+=varSpec.name+"=";}for(var j=0;j<value.length;j++){if(j>0){result+=varSpec.suffices['*']?separator||",":",";if(varSpec.suffices['*']&&showVariables){result+=varSpec.name+"=";}}result+=shouldEscape?encodeURIComponent(value[j]).replace(/!/g,"%21"):notReallyPercentEncode(value[j]);}}else if(typeof value=="object"){if(showVariables&&!varSpec.suffices['*']){result+=varSpec.name+"=";}var first=true;for(var key in value){if(!first){result+=varSpec.suffices['*']?separator||",":",";}first=false;result+=shouldEscape?encodeURIComponent(key).replace(/!/g,"%21"):notReallyPercentEncode(key);result+=varSpec.suffices['*']?'=':",";result+=shouldEscape?encodeURIComponent(value[key]).replace(/!/g,"%21"):notReallyPercentEncode(value[key]);}}else{if(showVariables){result+=varSpec.name;if(!trimEmptyString||value!=""){result+="=";}}if(varSpec.truncate!=null){value=value.substring(0,varSpec.truncate);}result+=shouldEscape?encodeURIComponent(value).replace(/!/g,"%21"):notReallyPercentEncode(value);}}return result;};var guessFunction=function(stringValue,resultObj,strict){if(prefix){stringValue=stringValue.substring(prefix.length);}if(varSpecs.length==1&&varSpecs[0].suffices['*']){var varSpec=varSpecs[0];var varName=varSpec.name;var arrayValue=varSpec.suffices['*']?stringValue.split(separator||","):[stringValue];var hasEquals=shouldEscape&&stringValue.indexOf('=')!=-1;// There's otherwise no way to distinguish between "{value*}" for arrays and objects
for(var i=1;i<arrayValue.length;i++){var stringValue=arrayValue[i];if(hasEquals&&stringValue.indexOf('=')==-1){// Bit of a hack - if we're expecting "=" for key/value pairs, and values can't contain "=", then assume a value has been accidentally split
arrayValue[i-1]+=(separator||",")+stringValue;arrayValue.splice(i,1);i--;}}for(var i=0;i<arrayValue.length;i++){var stringValue=arrayValue[i];if(shouldEscape&&stringValue.indexOf('=')!=-1){hasEquals=true;}var innerArrayValue=stringValue.split(",");if(innerArrayValue.length==1){arrayValue[i]=innerArrayValue[0];}else{arrayValue[i]=innerArrayValue;}}if(showVariables||hasEquals){var objectValue=resultObj[varName]||{};for(var j=0;j<arrayValue.length;j++){var innerValue=stringValue;if(showVariables&&!innerValue){// The empty string isn't a valid variable, so if our value is zero-length we have nothing
continue;}if(typeof arrayValue[j]=="string"){var stringValue=arrayValue[j];var innerVarName=stringValue.split("=",1)[0];var stringValue=stringValue.substring(innerVarName.length+1);if(shouldEscape){if(strict&&!isPercentEncoded(stringValue)){return;}stringValue=decodeURIComponent(stringValue);}innerValue=stringValue;}else{var stringValue=arrayValue[j][0];var innerVarName=stringValue.split("=",1)[0];var stringValue=stringValue.substring(innerVarName.length+1);if(shouldEscape){if(strict&&!isPercentEncoded(stringValue)){return;}stringValue=decodeURIComponent(stringValue);}arrayValue[j][0]=stringValue;innerValue=arrayValue[j];}if(shouldEscape){if(strict&&!isPercentEncoded(innerVarName)){return;}innerVarName=decodeURIComponent(innerVarName);}if(objectValue[innerVarName]!==undefined){if(Array.isArray(objectValue[innerVarName])){objectValue[innerVarName].push(innerValue);}else{objectValue[innerVarName]=[objectValue[innerVarName],innerValue];}}else{objectValue[innerVarName]=innerValue;}}if(Object.keys(objectValue).length==1&&objectValue[varName]!==undefined){resultObj[varName]=objectValue[varName];}else{resultObj[varName]=objectValue;}}else{if(shouldEscape){for(var j=0;j<arrayValue.length;j++){var innerArrayValue=arrayValue[j];if(Array.isArray(innerArrayValue)){for(var k=0;k<innerArrayValue.length;k++){if(strict&&!isPercentEncoded(innerArrayValue[k])){return;}innerArrayValue[k]=decodeURIComponent(innerArrayValue[k]);}}else{if(strict&&!isPercentEncoded(innerArrayValue)){return;}arrayValue[j]=decodeURIComponent(innerArrayValue);}}}if(resultObj[varName]!==undefined){if(Array.isArray(resultObj[varName])){resultObj[varName]=resultObj[varName].concat(arrayValue);}else{resultObj[varName]=[resultObj[varName]].concat(arrayValue);}}else{if(arrayValue.length==1&&!varSpec.suffices['*']){resultObj[varName]=arrayValue[0];}else{resultObj[varName]=arrayValue;}}}}else{var arrayValue=varSpecs.length==1?[stringValue]:stringValue.split(separator||",");var specIndexMap={};for(var i=0;i<arrayValue.length;i++){// Try from beginning
var firstStarred=0;for(;firstStarred<varSpecs.length-1&&firstStarred<i;firstStarred++){if(varSpecs[firstStarred].suffices['*']){break;}}if(firstStarred==i){// The first [i] of them have no "*" suffix
specIndexMap[i]=i;continue;}else{// Try from the end
for(var lastStarred=varSpecs.length-1;lastStarred>0&&varSpecs.length-lastStarred<arrayValue.length-i;lastStarred--){if(varSpecs[lastStarred].suffices['*']){break;}}if(varSpecs.length-lastStarred==arrayValue.length-i){// The last [length - i] of them have no "*" suffix
specIndexMap[i]=lastStarred;continue;}}// Just give up and use the first one
specIndexMap[i]=firstStarred;}for(var i=0;i<arrayValue.length;i++){var stringValue=arrayValue[i];if(!stringValue&&showVariables){// The empty string isn't a valid variable, so if our value is zero-length we have nothing
continue;}var innerArrayValue=stringValue.split(",");var hasEquals=false;if(showVariables){var stringValue=innerArrayValue[0];// using innerArrayValue
var varName=stringValue.split("=",1)[0];var stringValue=stringValue.substring(varName.length+1);innerArrayValue[0]=stringValue;var varSpec=varSpecMap[varName]||varSpecs[0];}else{var varSpec=varSpecs[specIndexMap[i]];var varName=varSpec.name;}for(var j=0;j<innerArrayValue.length;j++){if(shouldEscape){if(strict&&!isPercentEncoded(innerArrayValue[j])){return;}innerArrayValue[j]=decodeURIComponent(innerArrayValue[j]);}}if((showVariables||varSpec.suffices['*'])&&resultObj[varName]!==undefined){if(Array.isArray(resultObj[varName])){resultObj[varName]=resultObj[varName].concat(innerArrayValue);}else{resultObj[varName]=[resultObj[varName]].concat(innerArrayValue);}}else{if(innerArrayValue.length==1&&!varSpec.suffices['*']){resultObj[varName]=innerArrayValue[0];}else{resultObj[varName]=innerArrayValue;}}}}return 1;};return{varNames:varNames,prefix:prefix,substitution:subFunction,unSubstitution:guessFunction};}function UriTemplate(template){if(!(this instanceof UriTemplate)){return new UriTemplate(template);}var parts=template.split("{");var textParts=[parts.shift()];var prefixes=[];var substitutions=[];var unSubstitutions=[];var varNames=[];while(parts.length>0){var part=parts.shift();var spec=part.split("}")[0];var remainder=part.substring(spec.length+1);var funcs=uriTemplateSubstitution(spec);substitutions.push(funcs.substitution);unSubstitutions.push(funcs.unSubstitution);prefixes.push(funcs.prefix);textParts.push(remainder);varNames=varNames.concat(funcs.varNames);}this.fill=function(valueFunction){if(valueFunction&&typeof valueFunction!=='function'){var value=valueFunction;valueFunction=function(varName){return value[varName];};}var result=textParts[0];for(var i=0;i<substitutions.length;i++){var substitution=substitutions[i];result+=substitution(valueFunction);result+=textParts[i+1];}return result;};this.fromUri=function(substituted,options){options=options||{};var result={};for(var i=0;i<textParts.length;i++){var part=textParts[i];if(substituted.substring(0,part.length)!==part){return;}substituted=substituted.substring(part.length);if(i>=textParts.length-1){// We've run out of input - is there any template left?
if(substituted==""){break;}else{return;}}var prefix=prefixes[i];if(prefix&&substituted.substring(0,prefix.length)!==prefix){// All values are optional - if we have a prefix and it doesn't match, move along
continue;}// Find the next part to un-substitute
var nextPart=textParts[i+1];var offset=i;while(true){if(offset==textParts.length-2){var endPart=substituted.substring(substituted.length-nextPart.length);if(endPart!==nextPart){return;}var stringValue=substituted.substring(0,substituted.length-nextPart.length);substituted=endPart;}else if(nextPart){var nextPartPos=substituted.indexOf(nextPart);var stringValue=substituted.substring(0,nextPartPos);substituted=substituted.substring(nextPartPos);}else if(prefixes[offset+1]){var nextPartPos=substituted.indexOf(prefixes[offset+1]);if(nextPartPos===-1)nextPartPos=substituted.length;var stringValue=substituted.substring(0,nextPartPos);substituted=substituted.substring(nextPartPos);}else if(textParts.length>offset+2){// If the separator between this variable and the next is blank (with no prefix), continue onwards
offset++;nextPart=textParts[offset+1];continue;}else{var stringValue=substituted;substituted="";}break;}if(!unSubstitutions[i](stringValue,result,options.strict)){return;}}return result;};this.varNames=varNames;this.template=template;}UriTemplate.prototype={toString:function(){return this.template;},fillFromObject:function(obj){return this.fill(obj);},test:function(uri,options){return!!this.fromUri(uri,options);}};return UriTemplate;});})(uriTemplates$1);var uriTemplates=uriTemplates$1.exports;var COMPATIBLE_ENCODING_PATTERN=/^utf-?8|ascii|utf-?16-?le|ucs-?2|base-?64|latin-?1$/i;var WS_TRIM_PATTERN=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;var WS_CHAR_PATTERN=/\s|\uFEFF|\xA0/;var WS_FOLD_PATTERN=/\r?\n[\x20\x09]+/g;var DELIMITER_PATTERN=/[;,"]/;var WS_DELIMITER_PATTERN=/[;,"]|\s/;/**
 * Token character pattern
 * @type {RegExp}
 * @see https://tools.ietf.org/html/rfc7230#section-3.2.6
 */var TOKEN_PATTERN=/^[!#$%&'*+\-\.^_`|~\da-zA-Z]+$/;var STATE={IDLE:1<<0,URI:1<<1,ATTR:1<<2};function trim(value){return value.replace(WS_TRIM_PATTERN,'');}function hasWhitespace(value){return WS_CHAR_PATTERN.test(value);}function skipWhitespace(value,offset){while(hasWhitespace(value[offset])){offset++;}return offset;}function needsQuotes(value){return WS_DELIMITER_PATTERN.test(value)||!TOKEN_PATTERN.test(value);}class Link{/**
   * Link
   * @constructor
   * @param {String} [value]
   * @returns {Link}
   */constructor(value){/** @type {Array} URI references */this.refs=[];if(value){this.parse(value);}}/**
   * Get refs with given relation type
   * @param {String} value
   * @returns {Array<Object>}
   */rel(value){var links=[];var type=value.toLowerCase();for(var i=0;i<this.refs.length;i++){if(this.refs[i].rel.toLowerCase()===type){links.push(this.refs[i]);}}return links;}/**
   * Get refs where given attribute has a given value
   * @param {String} attr
   * @param {String} value
   * @returns {Array<Object>}
   */get(attr,value){attr=attr.toLowerCase();var links=[];for(var i=0;i<this.refs.length;i++){if(this.refs[i][attr]===value){links.push(this.refs[i]);}}return links;}set(link){this.refs.push(link);return this;}has(attr,value){attr=attr.toLowerCase();for(var i=0;i<this.refs.length;i++){if(this.refs[i][attr]===value){return true;}}return false;}parse(value,offset){offset=offset||0;value=offset?value.slice(offset):value;// Trim & unfold folded lines
value=trim(value).replace(WS_FOLD_PATTERN,'');var state=STATE.IDLE;var length=value.length;var offset=0;var ref=null;while(offset<length){if(state===STATE.IDLE){if(hasWhitespace(value[offset])){offset++;continue;}else if(value[offset]==='<'){if(ref!=null){ref.rel!=null?this.refs.push(...Link.expandRelations(ref)):this.refs.push(ref);}var end=value.indexOf('>',offset);if(end===-1)throw new Error('Expected end of URI delimiter at offset '+offset);ref={uri:value.slice(offset+1,end)};// this.refs.push( ref )
offset=end;state=STATE.URI;}else{throw new Error('Unexpected character "'+value[offset]+'" at offset '+offset);}offset++;}else if(state===STATE.URI){if(hasWhitespace(value[offset])){offset++;continue;}else if(value[offset]===';'){state=STATE.ATTR;offset++;}else if(value[offset]===','){state=STATE.IDLE;offset++;}else{throw new Error('Unexpected character "'+value[offset]+'" at offset '+offset);}}else if(state===STATE.ATTR){if(value[offset]===';'||hasWhitespace(value[offset])){offset++;continue;}var end=value.indexOf('=',offset);if(end===-1)throw new Error('Expected attribute delimiter at offset '+offset);var attr=trim(value.slice(offset,end)).toLowerCase();var attrValue='';offset=end+1;offset=skipWhitespace(value,offset);if(value[offset]==='"'){offset++;while(offset<length){if(value[offset]==='"'){offset++;break;}if(value[offset]==='\\'){offset++;}attrValue+=value[offset];offset++;}}else{var end=offset+1;while(!DELIMITER_PATTERN.test(value[end])&&end<length){end++;}attrValue=value.slice(offset,end);offset=end;}if(ref[attr]&&Link.isSingleOccurenceAttr(attr));else if(attr[attr.length-1]==='*'){ref[attr]=Link.parseExtendedValue(attrValue);}else{attrValue=attr==='type'?attrValue.toLowerCase():attrValue;if(ref[attr]!=null){if(Array.isArray(ref[attr])){ref[attr].push(attrValue);}else{ref[attr]=[ref[attr],attrValue];}}else{ref[attr]=attrValue;}}switch(value[offset]){case',':state=STATE.IDLE;break;case';':state=STATE.ATTR;break;}offset++;}else{throw new Error('Unknown parser state "'+state+'"');}}if(ref!=null){ref.rel!=null?this.refs.push(...Link.expandRelations(ref)):this.refs.push(ref);}ref=null;return this;}toString(){var refs=[];var link='';var ref=null;for(var i=0;i<this.refs.length;i++){ref=this.refs[i];link=Object.keys(this.refs[i]).reduce(function(link,attr){if(attr==='uri')return link;return link+'; '+Link.formatAttribute(attr,ref[attr]);},'<'+ref.uri+'>');refs.push(link);}return refs.join(', ');}}/**
 * Determines whether an encoding can be
 * natively handled with a `Buffer`
 * @param {String} value
 * @returns {Boolean}
 */Link.isCompatibleEncoding=function(value){return COMPATIBLE_ENCODING_PATTERN.test(value);};Link.parse=function(value,offset){return new Link().parse(value,offset);};Link.isSingleOccurenceAttr=function(attr){return attr==='rel'||attr==='type'||attr==='media'||attr==='title'||attr==='title*';};Link.isTokenAttr=function(attr){return attr==='rel'||attr==='type'||attr==='anchor';};Link.escapeQuotes=function(value){return value.replace(/"/g,'\\"');};Link.expandRelations=function(ref){var rels=ref.rel.split(' ');return rels.map(function(rel){var value=Object.assign({},ref);value.rel=rel;return value;});};/**
 * Parses an extended value and attempts to decode it
 * @internal
 * @param {String} value
 * @return {Object}
 */Link.parseExtendedValue=function(value){var parts=/([^']+)?(?:'([^']+)')?(.+)/.exec(value);return{language:parts[2].toLowerCase(),encoding:Link.isCompatibleEncoding(parts[1])?null:parts[1].toLowerCase(),value:Link.isCompatibleEncoding(parts[1])?decodeURIComponent(parts[3]):parts[3]};};/**
 * Format a given extended attribute and it's value
 * @param {String} attr
 * @param {Object} data
 * @return {String}
 */Link.formatExtendedAttribute=function(attr,data){var encoding=(data.encoding||'utf-8').toUpperCase();var language=data.language||'en';var encodedValue='';if(Buffer.isBuffer(data.value)&&Link.isCompatibleEncoding(encoding)){encodedValue=data.value.toString(encoding);}else if(Buffer.isBuffer(data.value)){encodedValue=data.value.toString('hex').replace(/[0-9a-f]{2}/gi,'%$1');}else{encodedValue=encodeURIComponent(data.value);}return attr+'='+encoding+'\''+language+'\''+encodedValue;};/**
 * Format a given attribute and it's value
 * @param {String} attr
 * @param {String|Object} value
 * @return {String}
 */Link.formatAttribute=function(attr,value){if(Array.isArray(value)){return value.map(item=>{return Link.formatAttribute(attr,item);}).join('; ');}if(attr[attr.length-1]==='*'||typeof value!=='string'){return Link.formatExtendedAttribute(attr,value);}if(Link.isTokenAttr(attr)){value=needsQuotes(value)?'"'+Link.escapeQuotes(value)+'"':Link.escapeQuotes(value);}else if(needsQuotes(value)){value=encodeURIComponent(value);// We don't need to escape <SP> <,> <;> within quotes
value=value.replace(/%20/g,' ').replace(/%2C/g,',').replace(/%3B/g,';');value='"'+value+'"';}return attr+'='+value;};var link=Link;const DEFAULT_MAX_RETRY=5;const DEFAULT_START_WAIT_TIME=0;const DEFAULT_WAIT_TIME_MULTIPLIER=1;function tryUntilNTimes(callback,startwaitTime=DEFAULT_START_WAIT_TIME,retryTimes=DEFAULT_MAX_RETRY,waitTimeMultiplier=DEFAULT_WAIT_TIME_MULTIPLIER){return __awaiter(this,void 0,void 0,function*(){let result;let waitTime=startwaitTime;if(typeof callback==='function'){let retryNo;for(retryNo=1;retryNo<=retryTimes;retryNo+=1){try{result=callback();result=yield Promise.resolve(result);return result;}catch(error){console.error(`RetryUtils : ${error}`);console.info(`RetryUtils : retrying again after ${waitTime} retry no ${retryNo}`);if(retryNo===retryTimes){throw error;}if(waitTime)yield sleep(waitTime);waitTime*=waitTimeMultiplier;}}return result;}throw new Error('Retry is only available for function calls');});}class Queue{constructor(){this.items=[];}enqueue(element){this.items.push(element);}dequeue(){if(this.isEmpty())return undefined;return this.items.shift();}isEmpty(){return this.items.length===0;}get length(){return this.items.length;}}/** ***********************************************************************
 *
 * Copyright 2021 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/const STR_LOGGING_TAG$8='uploadUtils';const STR_ERROR='Error occured in reading block';class Blockify{constructor(file,blockSize,maxReadMemory){this.mBlockCount=0;this.errorOccured=false;this.strErrorReadingBlock=STR_ERROR;console.info(`${STR_LOGGING_TAG$8} : block size to upload ${blockSize/Constants.MB}`);console.info(`${STR_LOGGING_TAG$8} : file Size to upload  ${file.size/Constants.MB}`);this.mFile=file;this.mBlockSize=blockSize;this.blocks=new Queue();this.mBlockCount=Math.ceil(this.mFile.size/this.mBlockSize);this.mMaxQueueItem=Math.floor(maxReadMemory/this.mBlockSize);}get blockCount(){this.throwExceptionOnError();return this.mBlockCount;}inMem(){this.throwExceptionOnError();return!this.blocks.isEmpty();}throwExceptionOnError(){if(this.errorOccured){throw new Error(this.strErrorReadingBlock);}}cleanOnError(){this.mBlockCount=0;this.blocks=null;this.mMaxQueueItem=0;this.errorOccured=true;}/**
   * Dequeue block from front
   */getBlock(){this.throwExceptionOnError();return this.blocks&&this.blocks.dequeue();}sliceFile(start,end){return __awaiter(this,void 0,void 0,function*(){try{const arrayBuffer=this.mFile&&(yield this.mFile.slice(start,end));return arrayBuffer;}catch(error){this.strErrorReadingBlock=error;throw error;}});}blockify(){setTimeout(()=>__awaiter(this,void 0,void 0,function*(){try{let blockIter=0;/* eslint-disable no-await-in-loop */while(blockIter<this.blockCount){if(this.blocks&&this.blocks.length<this.mMaxQueueItem){const start=blockIter*this.mBlockSize;const end=Math.min(start+this.mBlockSize,this.mFile.size);const readCallback=()=>this.sliceFile(start,end);const block=yield tryUntilNTimes(readCallback);if(!this.errorOccured){if(this.blocks)this.blocks.enqueue(block);}blockIter+=1;}else{yield sleep(Constants.BLOCKS_READ_WAIT);}}}catch(error){this.cleanOnError();}}),0);}}/** ***********************************************************************
 *
 * Copyright 2021 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/const STR_LOGGING_TAG$7='File Transfer :: parseACP';function parseAcpHeaderLink(links,rel){try{const headerLink=links.find(link=>link.rel===rel);if(Array.isArray(headerLink)){return headerLink;}return headerLink.uri;}catch(e){console.error(`${STR_LOGGING_TAG$7}: parseAcpHeaderLink err: ${e}`);throw e;}}/**
 * Get the link from ACP link structure.
 * Templatize the link If it is templated and template data is provided,
 * otherwise remove the templated fields.
 * This will prevent failures if an ACP link get templated in the future.
 * https://git.corp.adobe.com/pages/caf/api-spec/chapters/linking/hypermedia.html
 *
 * @param {Object} links - ACP links (usually found in `_links`)
 * @param {string} rel - The link relation name
 * @param {Object | false} templateData - Optional template data, will be used
 * if the link is templated. Set to `false` to return the raw templated link
 * (i.e. image rendition). Will remove the templated fields if the link is
 * templated by default.
 * @param {string} mode - ACP links usually have ID and path based version
 * of the same link. Will default to ID based.
 */function parseAcpBodyLink(links,rel,templateData={},mode='id'){try{let bodyLink=links[rel];if(Array.isArray(bodyLink)){bodyLink=bodyLink.find(link=>link.mode===mode);}const{templated,href}=bodyLink;if(templated&&templateData!==false){return decodeURIComponent(uriTemplates(href).fill(templateData));}return href;}catch(e){console.error(`${STR_LOGGING_TAG$7}: parseAcpBodyLink err: ${e}`);throw e;}}class ACPUtilsBase{constructor(context,signal){this.context=null;this.signal=null;this.context=context;this.signal=signal;}/**
   * Get the user's root directory (~/).
   * This should be the entry point for any ACP Requests.
   * It is one of the only endpoints that clients are allowed to query directly.
   */getRoot(){return __awaiter(this,void 0,void 0,function*(){const{environment}=this.context;const url=SERVICE_ENDPOINTS.hosts[environment].platform;// Cache for a month as this doesn't change often
const requestOptions={headers:{'Cache-Control':'max-age=2592000'}};const request=new FetchRequest(url,this.context,requestOptions);const response=yield request.fetch(this.signal);FetchRequest.verifyStatus(response);const jsonResponse=yield response.json();return jsonResponse;});}/**
   * Get the user's root directory (~/index).
   * It contains the resolve by API and root repositories that the user have access to.
   */getIndex(){return __awaiter(this,void 0,void 0,function*(){// const { children } = await this.getRoot();
// const indexData = children.find(child => child['repo:name'] === 'Index.json');
// const indexUrl = parseAcpBodyLink(indexData._links, ACPLinks.PRIMARY);
// index url is well known url so directly hitting it
const{environment}=this.context;const url=SERVICE_ENDPOINTS.hosts[environment].platform;const indexUrl=`${url}/index`;// Cache for a month as this doesn't change often
// to confirm if this will work fine in UXP
// const requestOptions = {
//     headers: {
//         'Cache-Control': 'max-age=2592000',
//     },
// };
// const request = new FetchRequest(indexUrl, this.context, requestOptions);
const request=new FetchRequest(indexUrl,this.context);const response=yield request.fetch(this.signal);FetchRequest.verifyStatus(response);const jsonResponse=yield response.json();return jsonResponse;});}/**
   * Return a resolver url for the user's home directory.
   * Both resolve by path and resolve by id are available.
   */getResolveUrl(scheme,value){return __awaiter(this,void 0,void 0,function*(){const indexResponse=yield this.getIndex();const rel=ACPLinks[`RESOLVE_${scheme}`];// eslint-disable-next-line no-underscore-dangle
const templatedResolveURL=indexResponse._links[rel].href;const resolveURL=decodeURIComponent(uriTemplates(templatedResolveURL).fill({[scheme.toLowerCase()]:value}));return resolveURL;});}/**
   *
   * @param urn AssetID
   * @returns returns response and also adds the links field
   * to response containing all the header links
   */resolveById(urn){return __awaiter(this,void 0,void 0,function*(){const resolvedUrl=yield this.getResolveUrl('ID',urn);const request=new FetchRequest(resolvedUrl,this.context,{method:'HEAD'});const response=yield request.fetch(this.signal);FetchRequest.verifyStatus(response);const{refs}=link.parse(response.headers.get('link')||'');response.links=refs;return response;});}/**
   * * Extract link from the headerLinks._links for getting the the download JSON Object.
   * * This will be templated URl and will be updated using proper params (currently blank)
   * @param headerLinks
   * @param rel
   * @param templateData
   * @returns
   */extractLink(headerLinks,rel,templateData={}){const headerLink=headerLinks.find(link=>link.rel===rel);const url=headerLink?headerLink.uri:'';return url&&decodeURIComponent(uriTemplates(url).fill(templateData));}}// this function parses the http response payloads and is implemented similar to
// https://git.corp.adobe.com/odin/assetsweb/blob/kodiak/src/utils/http.ts
function parseHTTPMessage(rawHTTPMessage){let token='protocol';const parseBody=(()=>{let parsedBody;return(rawBody,contentType)=>{if(parsedBody)return parsedBody;switch(contentType){case'application/vnd.adobe.asset-operation+json':case'application/vnd.adobecloud.download+json':parsedBody=JSON.parse(rawBody);return parsedBody;default:return rawBody;}};})();const parsedMessage={status:undefined,statusText:undefined,headers:new Headers(),body:undefined};// parses protocol to get status code and status text
const parserProtocol=protocol=>{// status line has three parts: protocol status statusText
// EX: HTTP/1.1 200 Status text
const statusRegex=/^[^\s]+\s+(\d+)\s*(.*)$/;const statusMatch=protocol.match(statusRegex);if(!statusMatch){throw new Error('Invalid Response');}// status code is the second element
const status=parseInt(statusMatch[1],10);if(!status){throw new Error('Status Code is not present');}// status text is third element
const statusText=statusMatch[2];parsedMessage.status=status;parsedMessage.statusText=statusText;};rawHTTPMessage.split('\n').forEach(part=>{if(part.endsWith('\r')){// If we have the '\r just before the '\n', then we want to skip it too.
part=part.slice(0,-1);}if(token==='protocol'){parserProtocol(part);token='header';return;}if(token==='header'){if(part===''){token='body';return;}const headerSplit=part.split(': ');parsedMessage.headers.append(headerSplit[0],headerSplit[1]);return;}if(token==='body'&&part.length){parsedMessage.body=parseBody(part,parsedMessage.headers.get('content-type'));}});return parsedMessage;}/** ***********************************************************************
 *
 * Copyright 2021 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/const TRANSFER_DOCUMENT='application/vnd.adobecloud.bulk-transfer+json';// Sets how many times the monitor should be pinged to determine the status of
// a block upload operation.
const MAX_MONITOR_RETRY=16;const RETRY_WAIT_TIME_UPLOAD=3;const STR_LOGGING_TAG$6='upload';var UPLOAD_TYPE;(function(UPLOAD_TYPE){UPLOAD_TYPE["SIMPLE"]="simple";UPLOAD_TYPE["BLOCK"]="block";})(UPLOAD_TYPE||(UPLOAD_TYPE={}));class UploadRequest{constructor(){this.fileType='';this.tries=0;}simpleUpload(etag,links,file,context,signal){return __awaiter(this,void 0,void 0,function*(){this.uploadType=UPLOAD_TYPE.SIMPLE;let uploadPrimaryLink=links.rel(ACPLinks.PRIMARY)[0].uri;let fileBody=yield file.getFileBuffer();const requestOptions={method:RequestMethod.PUT,headers:{'Content-Length':`${file.size}`,'Content-Type':this.fileType,'If-Match':etag},body:fileBody};const response=yield new FetchRequest(uploadPrimaryLink,context,requestOptions).fetch(signal);FetchRequest.verifyStatus(response);return response;});}initBlockUpload(etag,links,file,blockSize,context,signal){return __awaiter(this,void 0,void 0,function*(){const initBlockUploadUrl=parseAcpHeaderLink(links.refs,ACPLinks.BLOCK_INIT);const requestOptions={method:RequestMethod.POST,headers:{'Content-Length':`${file.size}`,'Content-Type':TRANSFER_DOCUMENT,'If-Match':etag},body:JSON.stringify({'repo:size':`${file.size}`,'repo:blocksize':`${blockSize}`,'repo:reltype':this.retType,'dc:format':this.fileType,'repo:md5':null,'repo:expires':null,'repo:if-match':`${etag}`,'repo:if-none-match':null,_links:null})};const response=yield new FetchRequest(initBlockUploadUrl,context,requestOptions).fetch(signal);const jsonResponse=yield response.json();return jsonResponse;});}uploadBlock(blockUploadUrl,block){return __awaiter(this,void 0,void 0,function*(){const requestOptions={method:RequestMethod.PUT,headers:{'Content-Length':`${block.byteLength}`},body:block};const response=yield fetch(blockUploadUrl,requestOptions);// AWS gives status as OK while Azure gives status as Create
if(response.status!==HTTP_STATUS.OK&&response.status!==HTTP_STATUS.CREATED)throw new Error('Error uploading Block');});}finalizeBlockUpload(etag,links,blockSize,file,context){return __awaiter(this,void 0,void 0,function*(){const finalizeUploadUrl=parseAcpBodyLink(links,ACPLinks.BLOCK_FINALIZE);const requestOptions={method:RequestMethod.POST,headers:{'Content-Type':TRANSFER_DOCUMENT,'Access-Control-Expose-Headers':'*'},body:JSON.stringify({'repo:size':file.size,'repo:blocksize':blockSize,'repo:reltype':this.retType,'dc:format':this.fileType,'repo:md5':null,'repo:expires':null,'repo:if-match':`${etag}`,'repo:if-none-match':null,_links:links})};return new FetchRequest(finalizeUploadUrl,context,requestOptions).fetch();});}monitorBlockUpload(monitorUrl,context,signal){return __awaiter(this,void 0,void 0,function*(){const monitor=()=>new FetchRequest(monitorUrl,context,{method:RequestMethod.GET}).fetch(signal);let check;let delay=1;let numTries=0;do{yield sleep(delay);check=yield monitor();numTries+=1;if(numTries===MAX_MONITOR_RETRY){numTries=0;delay*=2;}}while(check.status===HTTP_STATUS.ACCEPTED);if(check.status!==HTTP_STATUS.OK)throw new Error('Unable to monitor upload');let parsedMessage;try{// parse the http payload from the async response.
const body=yield check.text();parsedMessage=parseHTTPMessage(body);}catch(error){console.error(`${STR_LOGGING_TAG$6}: Error while parsing error response: ${error}`);return;}const parsedMessageStatus=parsedMessage&&parsedMessage.status?parsedMessage.status:undefined;// check status only state exists in parsedMessage
if(parsedMessageStatus&&!(parsedMessageStatus>=HTTP_STATUS.OK&&parsedMessageStatus<HTTP_STATUS.BAD_REQUEST)){throw new Error(`Upload failed, error: ${parsedMessage.statusText}`);}});}blockUpload(etag,links,file,blockSize,maxUploadQueue,maxReadMemory,context,signal){return __awaiter(this,void 0,void 0,function*(){let blocks=null;try{this.uploadType=UPLOAD_TYPE.BLOCK;// Initialize the block upload operation and fetch the session links.
const blockUploadRequest=yield this.initBlockUpload(etag,links,file,blockSize,context,signal);const bodyLinks=blockUploadRequest._links;// We split the file in chunks and upload each to its corresponding location.
const uploadBlockUrls=bodyLinks[ACPLinks.BLOCK_TRANSFER];blocks=new Blockify(file,blockSize,maxReadMemory);blocks.blockify();let blockIter=0;/* eslint-disable no-await-in-loop */while(blockIter<blocks.blockCount){let blocksToUploadIter=0;const uploadResults=[];/**
           * In one go max 6 blocks (CEF limit) can be uploaded, We will put 12 blocks max
           * in one go so that upload queue needs to wait on blocks as less as possible. Once any
           * block uploaded it will pick next from queue of 12. Once all 12 blocks will be
           * uploaded it will again enqueue 12 blocks to upload.
           */const maxBlocksToUpload=Math.min(maxUploadQueue,blocks.blockCount-blockIter);while(blocksToUploadIter<maxBlocksToUpload){if(blocks.inMem()){const blockUrl=uploadBlockUrls[blockIter].href;const blockMem=blocks.getBlock();const uploadCallback=()=>this.uploadBlock(blockUrl,blockMem);uploadResults.push(tryUntilNTimes(uploadCallback,RETRY_WAIT_TIME_UPLOAD));blocksToUploadIter+=1;blockIter+=1;}else{yield sleep(Constants.BLOCKS_UPLOAD_WAIT);}}yield Promise.all(uploadResults);}const finalResponse=yield this.finalizeBlockUpload(etag,bodyLinks,blockSize,file,context);FetchRequest.verifyStatus(finalResponse);console.info(`${STR_LOGGING_TAG$6} : File upload to conversion completed`);const monitorUrl=finalResponse.headers.get('Location');if(monitorUrl){// Finally, monitor the job to know when the asset is done and ready for the user.
yield this.monitorBlockUpload(monitorUrl,context,signal);}}catch(e){if(blocks){blocks.cleanOnError();}throw new Error(e);}return etag;});}transfer(file,etag,headerLinks,blockSize,maxUploadQueue,maxReadMemory,context,signal){return __awaiter(this,void 0,void 0,function*(){const blockUploadInitLink=headerLinks.refs.find(link=>link.rel===ACPLinks.BLOCK_INIT);// const blockUploadInitLink = parseAcpHeaderLink(headerLinks.refs, ACPLinks.BLOCK_INIT);
if(!blockUploadInitLink){// A missing block-init link in the response should be
// interpreted as block-upload being unsupported/unavailable for the asset.
return this.simpleUpload(etag,headerLinks,file,context,signal);}const maxSingleTransferSize=blockUploadInitLink['repo:maxsingletransfersize'];const minBlockTransferSize=blockUploadInitLink['repo:minblocktransfersize'];console.info(`${STR_LOGGING_TAG$6} : maxSingleTransferSize = ${maxSingleTransferSize} , minBlockTransferSize = ${minBlockTransferSize}`);// `maxSingleTransferSize` is the maximum size of a "small" file (in bytes),
//  anything greater should be sent via Block Transfer.
// `minBlockTransferSize` is the minimum size of a "large" file (in bytes),
//  anything smaller should be sent via Single Transfer.
// These properties are optional and the server can provide one, both or none.
// - If maxSingleTransferSize is present and the resource is greater than file
//  size, clients MUST use block transfer.
// - If minBlockTransferSize is present and the resource is smaller than file size,
//  clients MUST use single request transfer.
// - If both are present and the resource size is between those values
// (inclusive) then either transfer mechanism may be used.
if(this.uploadType===UPLOAD_TYPE.BLOCK||maxSingleTransferSize&&file.size>maxSingleTransferSize){// File is too large for simple upload, use block upload
return this.blockUpload(etag,headerLinks,file,blockSize,maxUploadQueue,maxReadMemory,context,signal);}if(minBlockTransferSize&&file.size<minBlockTransferSize){// File is too small for block upload, use simple upload.
return this.simpleUpload(etag,headerLinks,file,context,signal);}// If we haven't started an upload at this point, either:
// - Both `maxSingleTransferSize` and `minBlockTransferSize` are undefined, or
// - The file size qualifies for either of the upload schemes.
// In these cases it is up to the client to choose how to upload the file.
// It only makes sense to go through a block upload operation if the file size
// is greater than a single block upload `block`.
const mustBlockUpload=file.size>blockSize;if(mustBlockUpload){return this.blockUpload(etag,headerLinks,file,blockSize,maxUploadQueue,maxReadMemory,context,signal);}return this.simpleUpload(etag,headerLinks,file,context,signal);});}create(path,type,templatedCreateUrl,context){return __awaiter(this,void 0,void 0,function*(){// Remove leading slash from path.
let sanitizePath=path.replace(/^\/+/,'');sanitizePath=encodeURIComponent(sanitizePath);// Get the directory's 'create' url.
let createUrl=decodeURIComponent(uriTemplates(templatedCreateUrl).fill({path:sanitizePath}));const convertCloudFileType=this.getConvertCloudFileType();if(convertCloudFileType!=''){createUrl=`${createUrl}&type=${encodeURIComponent(convertCloudFileType)}`;}// Post the request to create the file at `path`.
const requestOptions={method:RequestMethod.POST,headers:{'Content-Type':type}};const response=yield new FetchRequest(createUrl,context,requestOptions).fetch();return response;});}getConvertCloudFileType(){if(this.convert&&this.extension===FILE_TYPE_MAP.xd.localExtension)return MIMETYPES.XD_CLOUD_DOCUMENT;return'';}getFileType(type,extension){if(extension===FILE_TYPE_MAP.xd.localExtension&&this.convert)return MIMETYPES.XD_LOCAL;if(!type)return'application/octet-stream';return type;}getRelTyle(extension){if(extension===FILE_TYPE_MAP.xd.localExtension&&this.convert)return ACPLinks.ALTERNATE;return ACPLinks.PRIMARY;}upload({path,file,blockSize,maxUploadQueue,maxReadMemory,context,templatedCreateUrl,signal,fileType,convert,forceBlock}){return __awaiter(this,void 0,void 0,function*(){let etag,headerLinks,urn;try{// TODO: implement this.
// await isValidUpload(file, false);
// First we create an empty file bucket.
this.convert=convert;this.fileType=this.getFileType(file.type,fileType);this.extension=fileType;this.retType=this.getRelTyle(this.extension);this.tries++;if(this.tries>2){throw new Error('Exceeded number of re-tries');}const res=yield this.create(path,this.fileType,templatedCreateUrl,context);this.uploadType=forceBlock?UPLOAD_TYPE.BLOCK:undefined;// Now we need to fill it up with the actual content and there are two ways to do that:
// - Single Transfer: is allowed for "small" files, we send the payload directly to ACP in a single HTTP request.
// - Block Transfer: is required for "large" files, we need to split the payload in chunks and send them separately, directly to AWS/Azure.
// The response to the `create` request above will tell us what the server considers "large".
etag=res.headers.get('etag');urn=res.headers.get('x-resource-id');headerLinks=link.parse(res.headers.get('link')||'');yield this.transfer(file,etag,headerLinks,blockSize,maxUploadQueue,maxReadMemory,context,signal);return urn;}catch(error){if(etag&&headerLinks){// If we fail in the middle of an upload, remove the incomplete file from the directory.
const discardLink=parseAcpHeaderLink(headerLinks.refs,ACPLinks.DISCARD);yield this.discard(urn,false,context,discardLink,etag);}const prevUploadType=this.uploadType;if(this.tries<2&&error&&error.status===HTTP_STATUS.TOO_LARGE&&prevUploadType===UPLOAD_TYPE.SIMPLE){return this.upload({path,file,blockSize,maxUploadQueue,maxReadMemory,context,templatedCreateUrl,signal,fileType,convert,forceBlock:true});}throw error;}});}discard(urn,isFolder,context,discardLink,etag){return __awaiter(this,void 0,void 0,function*(){let link=discardLink;if(!link){return;// TODO: fix this
// const res = await resolveById(urn);
// link = res.links.find(link => link.rel === ACPLinks.DISCARD)?.uri;
// ifMatch = res.headers.get('etag');
}const requestOptions={method:'POST'};const response=yield new FetchRequest(link,context,requestOptions).fetch();FetchRequest.verifyStatus(response);return response;});}}function getMetaData(urn,signal,context){return __awaiter(this,void 0,void 0,function*(){const acpUtils=new ACPUtilsBase(context,signal);const{links:headerLinks}=yield acpUtils.resolveById(urn);const url=acpUtils.extractLink(headerLinks,ACPLinks.PRIMARY);const metaData=yield(yield new FetchRequest(url,context).fetch(signal)).json();return metaData;});}// Fetches Import specific URL's
function getImportInfo(urn,signal,context){return __awaiter(this,void 0,void 0,function*(){const metaData=yield getMetaData(urn,signal,context);const templatedCreateUrl=parseAcpBodyLink(metaData._links,ACPLinks.CREATE,false);return{templatedCreateUrl,directoryPath:metaData['repo:path']};});}/** MobX - (c) Michel Weststrate 2015 - 2019 - MIT Licensed */ /*! *****************************************************************************
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 __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;}var OBFUSCATED_ERROR="An invariant failed, however the error is obfuscated because this is an production build.";var EMPTY_ARRAY=[];Object.freeze(EMPTY_ARRAY);var EMPTY_OBJECT={};Object.freeze(EMPTY_OBJECT);function getNextId(){return++globalState.mobxGuid;}function fail(message){invariant(false,message);throw"X";// unreachable
}function invariant(check,message){if(!check)throw new Error("[mobx] "+(message||OBFUSCATED_ERROR));}/**
 * Makes sure that the provided function is invoked at most once.
 */function once(func){var invoked=false;return function(){if(invoked)return;invoked=true;return func.apply(this,arguments);};}var noop=function(){};function unique(list){var res=[];list.forEach(function(item){if(res.indexOf(item)===-1)res.push(item);});return res;}function isObject(value){return value!==null&&typeof value==="object";}function isPlainObject(value){if(value===null||typeof value!=="object")return false;var proto=Object.getPrototypeOf(value);return proto===Object.prototype||proto===null;}function addHiddenProp(object,propName,value){Object.defineProperty(object,propName,{enumerable:false,writable:true,configurable:true,value:value});}function addHiddenFinalProp(object,propName,value){Object.defineProperty(object,propName,{enumerable:false,writable:false,configurable:true,value:value});}function isPropertyConfigurable(object,prop){var descriptor=Object.getOwnPropertyDescriptor(object,prop);return!descriptor||descriptor.configurable!==false&&descriptor.writable!==false;}function createInstanceofPredicate(name,clazz){var propName="isMobX"+name;clazz.prototype[propName]=true;return function(x){return isObject(x)&&x[propName]===true;};}function isES6Map(thing){return thing instanceof Map;}function isES6Set(thing){return thing instanceof Set;}/**
 * Returns the following: own keys, prototype keys & own symbol keys, if they are enumerable.
 */function getPlainObjectKeys(object){var enumerables=new Set();for(var key in object)enumerables.add(key);// *all* enumerables
Object.getOwnPropertySymbols(object).forEach(function(k){if(Object.getOwnPropertyDescriptor(object,k).enumerable)enumerables.add(k);});// *own* symbols
// Note: this implementation is missing enumerable, inherited, symbolic property names! That would however pretty expensive to add,
// as there is no efficient iterator that returns *all* properties
return Array.from(enumerables);}function stringifyKey(key){if(key&&key.toString)return key.toString();else return new String(key).toString();}function getMapLikeKeys(map){if(isPlainObject(map))return Object.keys(map);if(Array.isArray(map))return map.map(function(_a){var _b=__read(_a,1),key=_b[0];return key;});if(isES6Map(map)||isObservableMap(map))return Array.from(map.keys());return fail("Cannot get keys from '"+map+"'");}function toPrimitive(value){return value===null?null:typeof value==="object"?""+value:value;}var $mobx=Symbol("mobx administration");var Atom=/** @class */function(){/**
     * Create a new atom. For debugging purposes it is recommended to give it a name.
     * The onBecomeObserved and onBecomeUnobserved callbacks can be used for resource management.
     */function Atom(name){if(name===void 0){name="Atom@"+getNextId();}this.name=name;this.isPendingUnobservation=false;// for effective unobserving. BaseAtom has true, for extra optimization, so its onBecomeUnobserved never gets called, because it's not needed
this.isBeingObserved=false;this.observers=new Set();this.diffValue=0;this.lastAccessedBy=0;this.lowestObserverState=IDerivationState.NOT_TRACKING;}Atom.prototype.onBecomeObserved=function(){if(this.onBecomeObservedListeners){this.onBecomeObservedListeners.forEach(function(listener){return listener();});}};Atom.prototype.onBecomeUnobserved=function(){if(this.onBecomeUnobservedListeners){this.onBecomeUnobservedListeners.forEach(function(listener){return listener();});}};/**
     * Invoke this method to notify mobx that your atom has been used somehow.
     * Returns true if there is currently a reactive context.
     */Atom.prototype.reportObserved=function(){return reportObserved(this);};/**
     * Invoke this method _after_ this method has changed to signal mobx that all its observers should invalidate.
     */Atom.prototype.reportChanged=function(){startBatch();propagateChanged(this);endBatch();};Atom.prototype.toString=function(){return this.name;};return Atom;}();var isAtom=createInstanceofPredicate("Atom",Atom);function createAtom(name,onBecomeObservedHandler,onBecomeUnobservedHandler){if(onBecomeObservedHandler===void 0){onBecomeObservedHandler=noop;}if(onBecomeUnobservedHandler===void 0){onBecomeUnobservedHandler=noop;}var atom=new Atom(name);// default `noop` listener will not initialize the hook Set
if(onBecomeObservedHandler!==noop){onBecomeObserved(atom,onBecomeObservedHandler);}if(onBecomeUnobservedHandler!==noop){onBecomeUnobserved(atom,onBecomeUnobservedHandler);}return atom;}function identityComparer(a,b){return a===b;}function structuralComparer(a,b){return deepEqual(a,b);}function defaultComparer(a,b){return Object.is(a,b);}var comparer={identity:identityComparer,structural:structuralComparer,default:defaultComparer};var mobxDidRunLazyInitializersSymbol=Symbol("mobx did run lazy initializers");var mobxPendingDecorators=Symbol("mobx pending decorators");var enumerableDescriptorCache={};var nonEnumerableDescriptorCache={};function createPropertyInitializerDescriptor(prop,enumerable){var cache=enumerable?enumerableDescriptorCache:nonEnumerableDescriptorCache;return cache[prop]||(cache[prop]={configurable:true,enumerable:enumerable,get:function(){initializeInstance(this);return this[prop];},set:function(value){initializeInstance(this);this[prop]=value;}});}function initializeInstance(target){if(target[mobxDidRunLazyInitializersSymbol]===true)return;var decorators=target[mobxPendingDecorators];if(decorators){addHiddenProp(target,mobxDidRunLazyInitializersSymbol,true);for(var key in decorators){var d=decorators[key];d.propertyCreator(target,d.prop,d.descriptor,d.decoratorTarget,d.decoratorArguments);}}}function createPropDecorator(propertyInitiallyEnumerable,propertyCreator){return function decoratorFactory(){var decoratorArguments;var decorator=function decorate(target,prop,descriptor,applyImmediately// This is a special parameter to signal the direct application of a decorator, allow extendObservable to skip the entire type decoration part,
// as the instance to apply the decorator to equals the target
){if(applyImmediately===true){propertyCreator(target,prop,descriptor,target,decoratorArguments);return null;}if(!Object.prototype.hasOwnProperty.call(target,mobxPendingDecorators)){var inheritedDecorators=target[mobxPendingDecorators];addHiddenProp(target,mobxPendingDecorators,__assign({},inheritedDecorators));}target[mobxPendingDecorators][prop]={prop:prop,propertyCreator:propertyCreator,descriptor:descriptor,decoratorTarget:target,decoratorArguments:decoratorArguments};return createPropertyInitializerDescriptor(prop,propertyInitiallyEnumerable);};if(quacksLikeADecorator(arguments)){// @decorator
decoratorArguments=EMPTY_ARRAY;return decorator.apply(null,arguments);}else{// @decorator(args)
decoratorArguments=Array.prototype.slice.call(arguments);return decorator;}};}function quacksLikeADecorator(args){return(args.length===2||args.length===3)&&typeof args[1]==="string"||args.length===4&&args[3]===true;}function deepEnhancer(v,_,name){// it is an observable already, done
if(isObservable(v))return v;// something that can be converted and mutated?
if(Array.isArray(v))return observable.array(v,{name:name});if(isPlainObject(v))return observable.object(v,undefined,{name:name});if(isES6Map(v))return observable.map(v,{name:name});if(isES6Set(v))return observable.set(v,{name:name});return v;}function shallowEnhancer(v,_,name){if(v===undefined||v===null)return v;if(isObservableObject(v)||isObservableArray(v)||isObservableMap(v)||isObservableSet(v))return v;if(Array.isArray(v))return observable.array(v,{name:name,deep:false});if(isPlainObject(v))return observable.object(v,undefined,{name:name,deep:false});if(isES6Map(v))return observable.map(v,{name:name,deep:false});if(isES6Set(v))return observable.set(v,{name:name,deep:false});return fail("production"!=="production");}function referenceEnhancer(newValue){// never turn into an observable
return newValue;}function refStructEnhancer(v,oldValue,name){if(deepEqual(v,oldValue))return oldValue;return v;}function createDecoratorForEnhancer(enhancer){invariant(enhancer);var decorator=createPropDecorator(true,function(target,propertyName,descriptor,_decoratorTarget,decoratorArgs){var initialValue=descriptor?descriptor.initializer?descriptor.initializer.call(target):descriptor.value:undefined;asObservableObject(target).addObservableProp(propertyName,initialValue,enhancer);});var res=// Extra process checks, as this happens during module initialization
typeof process!=="undefined"&&process.env&&"production"!=="production"?function observableDecorator(){// This wrapper function is just to detect illegal decorator invocations, deprecate in a next version
// and simply return the created prop decorator
if(arguments.length<2)return fail("Incorrect decorator invocation. @observable decorator doesn't expect any arguments");return decorator.apply(null,arguments);}:decorator;res.enhancer=enhancer;return res;}// Predefined bags of create observable options, to avoid allocating temporarily option objects
// in the majority of cases
var defaultCreateObservableOptions={deep:true,name:undefined,defaultDecorator:undefined,proxy:true};Object.freeze(defaultCreateObservableOptions);function asCreateObservableOptions(thing){if(thing===null||thing===undefined)return defaultCreateObservableOptions;if(typeof thing==="string")return{name:thing,deep:true,proxy:true};return thing;}var deepDecorator=createDecoratorForEnhancer(deepEnhancer);var shallowDecorator=createDecoratorForEnhancer(shallowEnhancer);var refDecorator=createDecoratorForEnhancer(referenceEnhancer);var refStructDecorator=createDecoratorForEnhancer(refStructEnhancer);function getEnhancerFromOptions(options){return options.defaultDecorator?options.defaultDecorator.enhancer:options.deep===false?referenceEnhancer:deepEnhancer;}/**
 * Turns an object, array or function into a reactive structure.
 * @param v the value which should become observable.
 */function createObservable(v,arg2,arg3){// @observable someProp;
if(typeof arguments[1]==="string"){return deepDecorator.apply(null,arguments);}// it is an observable already, done
if(isObservable(v))return v;// something that can be converted and mutated?
var res=isPlainObject(v)?observable.object(v,arg2,arg3):Array.isArray(v)?observable.array(v,arg2):isES6Map(v)?observable.map(v,arg2):isES6Set(v)?observable.set(v,arg2):v;// this value could be converted to a new observable data structure, return it
if(res!==v)return res;// otherwise, just box it
fail("production"!=="production");}var observableFactories={box:function(value,options){if(arguments.length>2)incorrectlyUsedAsDecorator("box");var o=asCreateObservableOptions(options);return new ObservableValue(value,getEnhancerFromOptions(o),o.name,true,o.equals);},array:function(initialValues,options){if(arguments.length>2)incorrectlyUsedAsDecorator("array");var o=asCreateObservableOptions(options);return createObservableArray(initialValues,getEnhancerFromOptions(o),o.name);},map:function(initialValues,options){if(arguments.length>2)incorrectlyUsedAsDecorator("map");var o=asCreateObservableOptions(options);return new ObservableMap(initialValues,getEnhancerFromOptions(o),o.name);},set:function(initialValues,options){if(arguments.length>2)incorrectlyUsedAsDecorator("set");var o=asCreateObservableOptions(options);return new ObservableSet(initialValues,getEnhancerFromOptions(o),o.name);},object:function(props,decorators,options){if(typeof arguments[1]==="string")incorrectlyUsedAsDecorator("object");var o=asCreateObservableOptions(options);if(o.proxy===false){return extendObservable({},props,decorators,o);}else{var defaultDecorator=getDefaultDecoratorFromObjectOptions(o);var base=extendObservable({},undefined,undefined,o);var proxy=createDynamicObservableObject(base);extendObservableObjectWithProperties(proxy,props,decorators,defaultDecorator);return proxy;}},ref:refDecorator,shallow:shallowDecorator,deep:deepDecorator,struct:refStructDecorator};var observable=createObservable;// weird trick to keep our typings nicely with our funcs, and still extend the observable function
Object.keys(observableFactories).forEach(function(name){return observable[name]=observableFactories[name];});function incorrectlyUsedAsDecorator(methodName){fail(// "production" !== "production" &&
"Expected one or two arguments to observable."+methodName+". Did you accidentally try to use observable."+methodName+" as decorator?");}var computedDecorator=createPropDecorator(false,function(instance,propertyName,descriptor,decoratorTarget,decoratorArgs){var get=descriptor.get,set=descriptor.set;// initialValue is the descriptor for get / set props
// Optimization: faster on decorator target or instance? Assuming target
// Optimization: find out if declaring on instance isn't just faster. (also makes the property descriptor simpler). But, more memory usage..
// Forcing instance now, fixes hot reloadig issues on React Native:
var options=decoratorArgs[0]||{};asObservableObject(instance).addComputedProp(instance,propertyName,__assign({get:get,set:set,context:instance},options));});computedDecorator({equals:comparer.structural});function createAction(actionName,fn,ref){var res=function(){return executeAction(actionName,fn,ref||this,arguments);};res.isMobxAction=true;return res;}function executeAction(actionName,fn,scope,args){var runInfo=startAction();var shouldSupressReactionError=true;try{var res=fn.apply(scope,args);shouldSupressReactionError=false;return res;}finally{if(shouldSupressReactionError){globalState.suppressReactionErrors=shouldSupressReactionError;endAction(runInfo);globalState.suppressReactionErrors=false;}else{endAction(runInfo);}}}function startAction(actionName,fn,scope,args){var notifySpy=isSpyEnabled();var startTime=0;var prevDerivation=untrackedStart();startBatch();var prevAllowStateChanges=allowStateChangesStart(true);return{prevDerivation:prevDerivation,prevAllowStateChanges:prevAllowStateChanges,notifySpy:notifySpy,startTime:startTime};}function endAction(runInfo){allowStateChangesEnd(runInfo.prevAllowStateChanges);endBatch();untrackedEnd(runInfo.prevDerivation);if(runInfo.notifySpy&&"production"!=="production")spyReportEnd({time:Date.now()-runInfo.startTime});}function allowStateChangesStart(allowStateChanges){var prev=globalState.allowStateChanges;globalState.allowStateChanges=allowStateChanges;return prev;}function allowStateChangesEnd(prev){globalState.allowStateChanges=prev;}var ObservableValue=/** @class */function(_super){__extends(ObservableValue,_super);function ObservableValue(value,enhancer,name,notifySpy,equals){if(name===void 0){name="ObservableValue@"+getNextId();}if(notifySpy===void 0){notifySpy=true;}if(equals===void 0){equals=comparer.default;}var _this=_super.call(this,name)||this;_this.enhancer=enhancer;_this.name=name;_this.equals=equals;_this.hasUnreportedChange=false;_this.value=enhancer(value,undefined,name);if(notifySpy&&isSpyEnabled()&&"production"!=="production"){// only notify spy if this is a stand-alone observable
spyReport({type:"create",name:_this.name,newValue:""+_this.value});}return _this;}ObservableValue.prototype.dehanceValue=function(value){if(this.dehancer!==undefined)return this.dehancer(value);return value;};ObservableValue.prototype.set=function(newValue){var oldValue=this.value;newValue=this.prepareNewValue(newValue);if(newValue!==globalState.UNCHANGED){var notifySpy=isSpyEnabled();if(notifySpy&&"production"!=="production"){spyReportStart({type:"update",name:this.name,newValue:newValue,oldValue:oldValue});}this.setNewValue(newValue);}};ObservableValue.prototype.prepareNewValue=function(newValue){checkIfStateModificationsAreAllowed(this);if(hasInterceptors(this)){var change=interceptChange(this,{object:this,type:"update",newValue:newValue});if(!change)return globalState.UNCHANGED;newValue=change.newValue;}// apply modifier
newValue=this.enhancer(newValue,this.value,this.name);return this.equals(this.value,newValue)?globalState.UNCHANGED:newValue;};ObservableValue.prototype.setNewValue=function(newValue){var oldValue=this.value;this.value=newValue;this.reportChanged();if(hasListeners(this)){notifyListeners(this,{type:"update",object:this,newValue:newValue,oldValue:oldValue});}};ObservableValue.prototype.get=function(){this.reportObserved();return this.dehanceValue(this.value);};ObservableValue.prototype.intercept=function(handler){return registerInterceptor(this,handler);};ObservableValue.prototype.observe=function(listener,fireImmediately){if(fireImmediately)listener({object:this,type:"update",newValue:this.value,oldValue:undefined});return registerListener(this,listener);};ObservableValue.prototype.toJSON=function(){return this.get();};ObservableValue.prototype.toString=function(){return this.name+"["+this.value+"]";};ObservableValue.prototype.valueOf=function(){return toPrimitive(this.get());};ObservableValue.prototype[Symbol.toPrimitive]=function(){return this.valueOf();};return ObservableValue;}(Atom);createInstanceofPredicate("ObservableValue",ObservableValue);/**
 * A node in the state dependency root that observes other nodes, and can be observed itself.
 *
 * ComputedValue will remember the result of the computation for the duration of the batch, or
 * while being observed.
 *
 * During this time it will recompute only when one of its direct dependencies changed,
 * but only when it is being accessed with `ComputedValue.get()`.
 *
 * Implementation description:
 * 1. First time it's being accessed it will compute and remember result
 *    give back remembered result until 2. happens
 * 2. First time any deep dependency change, propagate POSSIBLY_STALE to all observers, wait for 3.
 * 3. When it's being accessed, recompute if any shallow dependency changed.
 *    if result changed: propagate STALE to all observers, that were POSSIBLY_STALE from the last step.
 *    go to step 2. either way
 *
 * If at any point it's outside batch and it isn't observed: reset everything and go to 1.
 */var ComputedValue=/** @class */function(){/**
     * Create a new computed value based on a function expression.
     *
     * The `name` property is for debug purposes only.
     *
     * The `equals` property specifies the comparer function to use to determine if a newly produced
     * value differs from the previous value. Two comparers are provided in the library; `defaultComparer`
     * compares based on identity comparison (===), and `structualComparer` deeply compares the structure.
     * Structural comparison can be convenient if you always produce a new aggregated object and
     * don't want to notify observers if it is structurally the same.
     * This is useful for working with vectors, mouse coordinates etc.
     */function ComputedValue(options){this.dependenciesState=IDerivationState.NOT_TRACKING;this.observing=[];// nodes we are looking at. Our value depends on these nodes
this.newObserving=null;// during tracking it's an array with new observed observers
this.isBeingObserved=false;this.isPendingUnobservation=false;this.observers=new Set();this.diffValue=0;this.runId=0;this.lastAccessedBy=0;this.lowestObserverState=IDerivationState.UP_TO_DATE;this.unboundDepsCount=0;this.__mapid="#"+getNextId();this.value=new CaughtException(null);this.isComputing=false;// to check for cycles
this.isRunningSetter=false;this.isTracing=TraceMode.NONE;this.derivation=options.get;this.name=options.name||"ComputedValue@"+getNextId();if(options.set)this.setter=createAction(this.name+"-setter",options.set);this.equals=options.equals||(options.compareStructural||options.struct?comparer.structural:comparer.default);this.scope=options.context;this.requiresReaction=!!options.requiresReaction;this.keepAlive=!!options.keepAlive;}ComputedValue.prototype.onBecomeStale=function(){propagateMaybeChanged(this);};ComputedValue.prototype.onBecomeObserved=function(){if(this.onBecomeObservedListeners){this.onBecomeObservedListeners.forEach(function(listener){return listener();});}};ComputedValue.prototype.onBecomeUnobserved=function(){if(this.onBecomeUnobservedListeners){this.onBecomeUnobservedListeners.forEach(function(listener){return listener();});}};/**
     * Returns the current value of this computed value.
     * Will evaluate its computation first if needed.
     */ComputedValue.prototype.get=function(){if(this.isComputing)fail("Cycle detected in computation "+this.name+": "+this.derivation);if(globalState.inBatch===0&&this.observers.size===0&&!this.keepAlive){if(shouldCompute(this)){this.warnAboutUntrackedRead();startBatch();// See perf test 'computed memoization'
this.value=this.computeValue(false);endBatch();}}else{reportObserved(this);if(shouldCompute(this))if(this.trackAndCompute())propagateChangeConfirmed(this);}var result=this.value;if(isCaughtException(result))throw result.cause;return result;};ComputedValue.prototype.peek=function(){var res=this.computeValue(false);if(isCaughtException(res))throw res.cause;return res;};ComputedValue.prototype.set=function(value){if(this.setter){invariant(!this.isRunningSetter,"The setter of computed value '"+this.name+"' is trying to update itself. Did you intend to update an _observable_ value, instead of the computed property?");this.isRunningSetter=true;try{this.setter.call(this.scope,value);}finally{this.isRunningSetter=false;}}else invariant(false,"production"!=="production");};ComputedValue.prototype.trackAndCompute=function(){var oldValue=this.value;var wasSuspended=/* see #1208 */this.dependenciesState===IDerivationState.NOT_TRACKING;var newValue=this.computeValue(true);var changed=wasSuspended||isCaughtException(oldValue)||isCaughtException(newValue)||!this.equals(oldValue,newValue);if(changed){this.value=newValue;}return changed;};ComputedValue.prototype.computeValue=function(track){this.isComputing=true;globalState.computationDepth++;var res;if(track){res=trackDerivedFunction(this,this.derivation,this.scope);}else{if(globalState.disableErrorBoundaries===true){res=this.derivation.call(this.scope);}else{try{res=this.derivation.call(this.scope);}catch(e){res=new CaughtException(e);}}}globalState.computationDepth--;this.isComputing=false;return res;};ComputedValue.prototype.suspend=function(){if(!this.keepAlive){clearObserving(this);this.value=undefined;// don't hold on to computed value!
}};ComputedValue.prototype.observe=function(listener,fireImmediately){var _this=this;var firstTime=true;var prevValue=undefined;return autorun(function(){var newValue=_this.get();if(!firstTime||fireImmediately){var prevU=untrackedStart();listener({type:"update",object:_this,newValue:newValue,oldValue:prevValue});untrackedEnd(prevU);}firstTime=false;prevValue=newValue;});};ComputedValue.prototype.warnAboutUntrackedRead=function(){return;};ComputedValue.prototype.toJSON=function(){return this.get();};ComputedValue.prototype.toString=function(){return this.name+"["+this.derivation.toString()+"]";};ComputedValue.prototype.valueOf=function(){return toPrimitive(this.get());};ComputedValue.prototype[Symbol.toPrimitive]=function(){return this.valueOf();};return ComputedValue;}();var isComputedValue=createInstanceofPredicate("ComputedValue",ComputedValue);var IDerivationState;(function(IDerivationState){// before being run or (outside batch and not being observed)
// at this point derivation is not holding any data about dependency tree
IDerivationState[IDerivationState["NOT_TRACKING"]=-1]="NOT_TRACKING";// no shallow dependency changed since last computation
// won't recalculate derivation
// this is what makes mobx fast
IDerivationState[IDerivationState["UP_TO_DATE"]=0]="UP_TO_DATE";// some deep dependency changed, but don't know if shallow dependency changed
// will require to check first if UP_TO_DATE or POSSIBLY_STALE
// currently only ComputedValue will propagate POSSIBLY_STALE
//
// having this state is second big optimization:
// don't have to recompute on every dependency change, but only when it's needed
IDerivationState[IDerivationState["POSSIBLY_STALE"]=1]="POSSIBLY_STALE";// A shallow dependency has changed since last computation and the derivation
// will need to recompute when it's needed next.
IDerivationState[IDerivationState["STALE"]=2]="STALE";})(IDerivationState||(IDerivationState={}));var TraceMode;(function(TraceMode){TraceMode[TraceMode["NONE"]=0]="NONE";TraceMode[TraceMode["LOG"]=1]="LOG";TraceMode[TraceMode["BREAK"]=2]="BREAK";})(TraceMode||(TraceMode={}));var CaughtException=/** @class */function(){function CaughtException(cause){this.cause=cause;// Empty
}return CaughtException;}();function isCaughtException(e){return e instanceof CaughtException;}/**
 * Finds out whether any dependency of the derivation has actually changed.
 * If dependenciesState is 1 then it will recalculate dependencies,
 * if any dependency changed it will propagate it by changing dependenciesState to 2.
 *
 * By iterating over the dependencies in the same order that they were reported and
 * stopping on the first change, all the recalculations are only called for ComputedValues
 * that will be tracked by derivation. That is because we assume that if the first x
 * dependencies of the derivation doesn't change then the derivation should run the same way
 * up until accessing x-th dependency.
 */function shouldCompute(derivation){switch(derivation.dependenciesState){case IDerivationState.UP_TO_DATE:return false;case IDerivationState.NOT_TRACKING:case IDerivationState.STALE:return true;case IDerivationState.POSSIBLY_STALE:{var prevUntracked=untrackedStart();// no need for those computeds to be reported, they will be picked up in trackDerivedFunction.
var obs=derivation.observing,l=obs.length;for(var i=0;i<l;i++){var obj=obs[i];if(isComputedValue(obj)){if(globalState.disableErrorBoundaries){obj.get();}else{try{obj.get();}catch(e){// we are not interested in the value *or* exception at this moment, but if there is one, notify all
untrackedEnd(prevUntracked);return true;}}// if ComputedValue `obj` actually changed it will be computed and propagated to its observers.
// and `derivation` is an observer of `obj`
// invariantShouldCompute(derivation)
if(derivation.dependenciesState===IDerivationState.STALE){untrackedEnd(prevUntracked);return true;}}}changeDependenciesStateTo0(derivation);untrackedEnd(prevUntracked);return false;}}}function checkIfStateModificationsAreAllowed(atom){var hasObservers=atom.observers.size>0;// Should never be possible to change an observed observable from inside computed, see #798
if(globalState.computationDepth>0&&hasObservers)fail("production"!=="production");// Should not be possible to change observed state outside strict mode, except during initialization, see #563
if(!globalState.allowStateChanges&&(hasObservers||globalState.enforceActions==="strict"))fail("production"!=="production");}/**
 * Executes the provided function `f` and tracks which observables are being accessed.
 * The tracking information is stored on the `derivation` object and the derivation is registered
 * as observer of any of the accessed observables.
 */function trackDerivedFunction(derivation,f,context){// pre allocate array allocation + room for variation in deps
// array will be trimmed by bindDependencies
changeDependenciesStateTo0(derivation);derivation.newObserving=new Array(derivation.observing.length+100);derivation.unboundDepsCount=0;derivation.runId=++globalState.runId;var prevTracking=globalState.trackingDerivation;globalState.trackingDerivation=derivation;var result;if(globalState.disableErrorBoundaries===true){result=f.call(context);}else{try{result=f.call(context);}catch(e){result=new CaughtException(e);}}globalState.trackingDerivation=prevTracking;bindDependencies(derivation);return result;}/**
 * diffs newObserving with observing.
 * update observing to be newObserving with unique observables
 * notify observers that become observed/unobserved
 */function bindDependencies(derivation){// invariant(derivation.dependenciesState !== IDerivationState.NOT_TRACKING, "INTERNAL ERROR bindDependencies expects derivation.dependenciesState !== -1");
var prevObserving=derivation.observing;var observing=derivation.observing=derivation.newObserving;var lowestNewObservingDerivationState=IDerivationState.UP_TO_DATE;// Go through all new observables and check diffValue: (this list can contain duplicates):
//   0: first occurrence, change to 1 and keep it
//   1: extra occurrence, drop it
var i0=0,l=derivation.unboundDepsCount;for(var i=0;i<l;i++){var dep=observing[i];if(dep.diffValue===0){dep.diffValue=1;if(i0!==i)observing[i0]=dep;i0++;}// Upcast is 'safe' here, because if dep is IObservable, `dependenciesState` will be undefined,
// not hitting the condition
if(dep.dependenciesState>lowestNewObservingDerivationState){lowestNewObservingDerivationState=dep.dependenciesState;}}observing.length=i0;derivation.newObserving=null;// newObserving shouldn't be needed outside tracking (statement moved down to work around FF bug, see #614)
// Go through all old observables and check diffValue: (it is unique after last bindDependencies)
//   0: it's not in new observables, unobserve it
//   1: it keeps being observed, don't want to notify it. change to 0
l=prevObserving.length;while(l--){var dep=prevObserving[l];if(dep.diffValue===0){removeObserver(dep,derivation);}dep.diffValue=0;}// Go through all new observables and check diffValue: (now it should be unique)
//   0: it was set to 0 in last loop. don't need to do anything.
//   1: it wasn't observed, let's observe it. set back to 0
while(i0--){var dep=observing[i0];if(dep.diffValue===1){dep.diffValue=0;addObserver(dep,derivation);}}// Some new observed derivations may become stale during this derivation computation
// so they have had no chance to propagate staleness (#916)
if(lowestNewObservingDerivationState!==IDerivationState.UP_TO_DATE){derivation.dependenciesState=lowestNewObservingDerivationState;derivation.onBecomeStale();}}function clearObserving(derivation){// invariant(globalState.inBatch > 0, "INTERNAL ERROR clearObserving should be called only inside batch");
var obs=derivation.observing;derivation.observing=[];var i=obs.length;while(i--)removeObserver(obs[i],derivation);derivation.dependenciesState=IDerivationState.NOT_TRACKING;}function untracked(action){var prev=untrackedStart();try{return action();}finally{untrackedEnd(prev);}}function untrackedStart(){var prev=globalState.trackingDerivation;globalState.trackingDerivation=null;return prev;}function untrackedEnd(prev){globalState.trackingDerivation=prev;}/**
 * needed to keep `lowestObserverState` correct. when changing from (2 or 1) to 0
 *
 */function changeDependenciesStateTo0(derivation){if(derivation.dependenciesState===IDerivationState.UP_TO_DATE)return;derivation.dependenciesState=IDerivationState.UP_TO_DATE;var obs=derivation.observing;var i=obs.length;while(i--)obs[i].lowestObserverState=IDerivationState.UP_TO_DATE;}var MobXGlobals=/** @class */function(){function MobXGlobals(){/**
         * MobXGlobals version.
         * MobX compatiblity with other versions loaded in memory as long as this version matches.
         * It indicates that the global state still stores similar information
         *
         * N.B: this version is unrelated to the package version of MobX, and is only the version of the
         * internal state storage of MobX, and can be the same across many different package versions
         */this.version=5;/**
         * globally unique token to signal unchanged
         */this.UNCHANGED={};/**
         * Currently running derivation
         */this.trackingDerivation=null;/**
         * Are we running a computation currently? (not a reaction)
         */this.computationDepth=0;/**
         * Each time a derivation is tracked, it is assigned a unique run-id
         */this.runId=0;/**
         * 'guid' for general purpose. Will be persisted amongst resets.
         */this.mobxGuid=0;/**
         * Are we in a batch block? (and how many of them)
         */this.inBatch=0;/**
         * Observables that don't have observers anymore, and are about to be
         * suspended, unless somebody else accesses it in the same batch
         *
         * @type {IObservable[]}
         */this.pendingUnobservations=[];/**
         * List of scheduled, not yet executed, reactions.
         */this.pendingReactions=[];/**
         * Are we currently processing reactions?
         */this.isRunningReactions=false;/**
         * Is it allowed to change observables at this point?
         * In general, MobX doesn't allow that when running computations and React.render.
         * To ensure that those functions stay pure.
         */this.allowStateChanges=true;/**
         * If strict mode is enabled, state changes are by default not allowed
         */this.enforceActions=false;/**
         * Spy callbacks
         */this.spyListeners=[];/**
         * Globally attached error handlers that react specifically to errors in reactions
         */this.globalReactionErrorHandlers=[];/**
         * Warn if computed values are accessed outside a reactive context
         */this.computedRequiresReaction=false;/*
         * Don't catch and rethrow exceptions. This is useful for inspecting the state of
         * the stack when an exception occurs while debugging.
         */this.disableErrorBoundaries=false;/*
         * If true, we are already handling an exception in an action. Any errors in reactions should be supressed, as
         * they are not the cause, see: https://github.com/mobxjs/mobx/issues/1836
         */this.suppressReactionErrors=false;}return MobXGlobals;}();var canMergeGlobalState=true;var globalState=function(){var global=getGlobal();if(global.__mobxInstanceCount>0&&!global.__mobxGlobals)canMergeGlobalState=false;if(global.__mobxGlobals&&global.__mobxGlobals.version!==new MobXGlobals().version)canMergeGlobalState=false;if(!canMergeGlobalState){setTimeout(function(){{fail("There are multiple, different versions of MobX active. Make sure MobX is loaded only once or use `configure({ isolateGlobalState: true })`");}},1);return new MobXGlobals();}else if(global.__mobxGlobals){global.__mobxInstanceCount+=1;if(!global.__mobxGlobals.UNCHANGED)global.__mobxGlobals.UNCHANGED={};// make merge backward compatible
return global.__mobxGlobals;}else{global.__mobxInstanceCount=1;return global.__mobxGlobals=new MobXGlobals();}}();function getGlobal(){return typeof window!=="undefined"?window:global;}// function invariantObservers(observable: IObservable) {
//     const list = observable.observers
//     const map = observable.observersIndexes
//     const l = list.length
//     for (let i = 0; i < l; i++) {
//         const id = list[i].__mapid
//         if (i) {
//             invariant(map[id] === i, "INTERNAL ERROR maps derivation.__mapid to index in list") // for performance
//         } else {
//             invariant(!(id in map), "INTERNAL ERROR observer on index 0 shouldn't be held in map.") // for performance
//         }
//     }
//     invariant(
//         list.length === 0 || Object.keys(map).length === list.length - 1,
//         "INTERNAL ERROR there is no junk in map"
//     )
// }
function addObserver(observable,node){// invariant(node.dependenciesState !== -1, "INTERNAL ERROR, can add only dependenciesState !== -1");
// invariant(observable._observers.indexOf(node) === -1, "INTERNAL ERROR add already added node");
// invariantObservers(observable);
observable.observers.add(node);if(observable.lowestObserverState>node.dependenciesState)observable.lowestObserverState=node.dependenciesState;// invariantObservers(observable);
// invariant(observable._observers.indexOf(node) !== -1, "INTERNAL ERROR didn't add node");
}function removeObserver(observable,node){// invariant(globalState.inBatch > 0, "INTERNAL ERROR, remove should be called only inside batch");
// invariant(observable._observers.indexOf(node) !== -1, "INTERNAL ERROR remove already removed node");
// invariantObservers(observable);
observable.observers.delete(node);if(observable.observers.size===0){// deleting last observer
queueForUnobservation(observable);}// invariantObservers(observable);
// invariant(observable._observers.indexOf(node) === -1, "INTERNAL ERROR remove already removed node2");
}function queueForUnobservation(observable){if(observable.isPendingUnobservation===false){// invariant(observable._observers.length === 0, "INTERNAL ERROR, should only queue for unobservation unobserved observables");
observable.isPendingUnobservation=true;globalState.pendingUnobservations.push(observable);}}/**
 * Batch starts a transaction, at least for purposes of memoizing ComputedValues when nothing else does.
 * During a batch `onBecomeUnobserved` will be called at most once per observable.
 * Avoids unnecessary recalculations.
 */function startBatch(){globalState.inBatch++;}function endBatch(){if(--globalState.inBatch===0){runReactions();// the batch is actually about to finish, all unobserving should happen here.
var list=globalState.pendingUnobservations;for(var i=0;i<list.length;i++){var observable=list[i];observable.isPendingUnobservation=false;if(observable.observers.size===0){if(observable.isBeingObserved){// if this observable had reactive observers, trigger the hooks
observable.isBeingObserved=false;observable.onBecomeUnobserved();}if(observable instanceof ComputedValue){// computed values are automatically teared down when the last observer leaves
// this process happens recursively, this computed might be the last observabe of another, etc..
observable.suspend();}}}globalState.pendingUnobservations=[];}}function reportObserved(observable){var derivation=globalState.trackingDerivation;if(derivation!==null){/**
         * Simple optimization, give each derivation run an unique id (runId)
         * Check if last time this observable was accessed the same runId is used
         * if this is the case, the relation is already known
         */if(derivation.runId!==observable.lastAccessedBy){observable.lastAccessedBy=derivation.runId;// Tried storing newObserving, or observing, or both as Set, but performance didn't come close...
derivation.newObserving[derivation.unboundDepsCount++]=observable;if(!observable.isBeingObserved){observable.isBeingObserved=true;observable.onBecomeObserved();}}return true;}else if(observable.observers.size===0&&globalState.inBatch>0){queueForUnobservation(observable);}return false;}// function invariantLOS(observable: IObservable, msg: string) {
//     // it's expensive so better not run it in produciton. but temporarily helpful for testing
//     const min = getObservers(observable).reduce((a, b) => Math.min(a, b.dependenciesState), 2)
//     if (min >= observable.lowestObserverState) return // <- the only assumption about `lowestObserverState`
//     throw new Error(
//         "lowestObserverState is wrong for " +
//             msg +
//             " because " +
//             min +
//             " < " +
//             observable.lowestObserverState
//     )
// }
/**
 * NOTE: current propagation mechanism will in case of self reruning autoruns behave unexpectedly
 * It will propagate changes to observers from previous run
 * It's hard or maybe impossible (with reasonable perf) to get it right with current approach
 * Hopefully self reruning autoruns aren't a feature people should depend on
 * Also most basic use cases should be ok
 */ // Called by Atom when its value changes
function propagateChanged(observable){// invariantLOS(observable, "changed start");
if(observable.lowestObserverState===IDerivationState.STALE)return;observable.lowestObserverState=IDerivationState.STALE;// Ideally we use for..of here, but the downcompiled version is really slow...
observable.observers.forEach(function(d){if(d.dependenciesState===IDerivationState.UP_TO_DATE){if(d.isTracing!==TraceMode.NONE){logTraceInfo(d,observable);}d.onBecomeStale();}d.dependenciesState=IDerivationState.STALE;});// invariantLOS(observable, "changed end");
}// Called by ComputedValue when it recalculate and its value changed
function propagateChangeConfirmed(observable){// invariantLOS(observable, "confirmed start");
if(observable.lowestObserverState===IDerivationState.STALE)return;observable.lowestObserverState=IDerivationState.STALE;observable.observers.forEach(function(d){if(d.dependenciesState===IDerivationState.POSSIBLY_STALE)d.dependenciesState=IDerivationState.STALE;else if(d.dependenciesState===IDerivationState.UP_TO_DATE// this happens during computing of `d`, just keep lowestObserverState up to date.
)observable.lowestObserverState=IDerivationState.UP_TO_DATE;});// invariantLOS(observable, "confirmed end");
}// Used by computed when its dependency changed, but we don't wan't to immediately recompute.
function propagateMaybeChanged(observable){// invariantLOS(observable, "maybe start");
if(observable.lowestObserverState!==IDerivationState.UP_TO_DATE)return;observable.lowestObserverState=IDerivationState.POSSIBLY_STALE;observable.observers.forEach(function(d){if(d.dependenciesState===IDerivationState.UP_TO_DATE){d.dependenciesState=IDerivationState.POSSIBLY_STALE;if(d.isTracing!==TraceMode.NONE){logTraceInfo(d,observable);}d.onBecomeStale();}});// invariantLOS(observable, "maybe end");
}function logTraceInfo(derivation,observable){console.log("[mobx.trace] '"+derivation.name+"' is invalidated due to a change in: '"+observable.name+"'");if(derivation.isTracing===TraceMode.BREAK){var lines=[];printDepTree(getDependencyTree(derivation),lines,1);// prettier-ignore
new Function("debugger;\n/*\nTracing '"+derivation.name+"'\n\nYou are entering this break point because derivation '"+derivation.name+"' is being traced and '"+observable.name+"' is now forcing it to update.\nJust follow the stacktrace you should now see in the devtools to see precisely what piece of your code is causing this update\nThe stackframe you are looking for is at least ~6-8 stack-frames up.\n\n"+(derivation instanceof ComputedValue?derivation.derivation.toString().replace(/[*]\//g,"/"):"")+"\n\nThe dependencies for this derivation are:\n\n"+lines.join("\n")+"\n*/\n    ")();}}function printDepTree(tree,lines,depth){if(lines.length>=1000){lines.push("(and many more)");return;}lines.push(""+new Array(depth).join("\t")+tree.name);// MWE: not the fastest, but the easiest way :)
if(tree.dependencies)tree.dependencies.forEach(function(child){return printDepTree(child,lines,depth+1);});}var Reaction=/** @class */function(){function Reaction(name,onInvalidate,errorHandler){if(name===void 0){name="Reaction@"+getNextId();}this.name=name;this.onInvalidate=onInvalidate;this.errorHandler=errorHandler;this.observing=[];// nodes we are looking at. Our value depends on these nodes
this.newObserving=[];this.dependenciesState=IDerivationState.NOT_TRACKING;this.diffValue=0;this.runId=0;this.unboundDepsCount=0;this.__mapid="#"+getNextId();this.isDisposed=false;this._isScheduled=false;this._isTrackPending=false;this._isRunning=false;this.isTracing=TraceMode.NONE;}Reaction.prototype.onBecomeStale=function(){this.schedule();};Reaction.prototype.schedule=function(){if(!this._isScheduled){this._isScheduled=true;globalState.pendingReactions.push(this);runReactions();}};Reaction.prototype.isScheduled=function(){return this._isScheduled;};/**
     * internal, use schedule() if you intend to kick off a reaction
     */Reaction.prototype.runReaction=function(){if(!this.isDisposed){startBatch();this._isScheduled=false;if(shouldCompute(this)){this._isTrackPending=true;try{this.onInvalidate();if(this._isTrackPending&&isSpyEnabled()&&"production"!=="production"){// onInvalidate didn't trigger track right away..
spyReport({name:this.name,type:"scheduled-reaction"});}}catch(e){this.reportExceptionInDerivation(e);}}endBatch();}};Reaction.prototype.track=function(fn){if(this.isDisposed){return;// console.warn("Reaction already disposed") // Note: Not a warning / error in mobx 4 either
}startBatch();this._isRunning=true;var result=trackDerivedFunction(this,fn,undefined);this._isRunning=false;this._isTrackPending=false;if(this.isDisposed){// disposed during last run. Clean up everything that was bound after the dispose call.
clearObserving(this);}if(isCaughtException(result))this.reportExceptionInDerivation(result.cause);endBatch();};Reaction.prototype.reportExceptionInDerivation=function(error){var _this=this;if(this.errorHandler){this.errorHandler(error,this);return;}if(globalState.disableErrorBoundaries)throw error;var message="[mobx] Encountered an uncaught exception that was thrown by a reaction or observer component, in: '"+this+"'";if(globalState.suppressReactionErrors){console.warn("[mobx] (error in reaction '"+this.name+"' suppressed, fix error of causing action below)");// prettier-ignore
}else{console.error(message,error);/** If debugging brought you here, please, read the above message :-). Tnx! */}globalState.globalReactionErrorHandlers.forEach(function(f){return f(error,_this);});};Reaction.prototype.dispose=function(){if(!this.isDisposed){this.isDisposed=true;if(!this._isRunning){// if disposed while running, clean up later. Maybe not optimal, but rare case
startBatch();clearObserving(this);endBatch();}}};Reaction.prototype.getDisposer=function(){var r=this.dispose.bind(this);r[$mobx]=this;return r;};Reaction.prototype.toString=function(){return"Reaction["+this.name+"]";};Reaction.prototype.trace=function(enterBreakPoint){if(enterBreakPoint===void 0){enterBreakPoint=false;}trace(this,enterBreakPoint);};return Reaction;}();/**
 * Magic number alert!
 * Defines within how many times a reaction is allowed to re-trigger itself
 * until it is assumed that this is gonna be a never ending loop...
 */var MAX_REACTION_ITERATIONS=100;var reactionScheduler=function(f){return f();};function runReactions(){// Trampolining, if runReactions are already running, new reactions will be picked up
if(globalState.inBatch>0||globalState.isRunningReactions)return;reactionScheduler(runReactionsHelper);}function runReactionsHelper(){globalState.isRunningReactions=true;var allReactions=globalState.pendingReactions;var iterations=0;// While running reactions, new reactions might be triggered.
// Hence we work with two variables and check whether
// we converge to no remaining reactions after a while.
while(allReactions.length>0){if(++iterations===MAX_REACTION_ITERATIONS){console.error("Reaction doesn't converge to a stable state after "+MAX_REACTION_ITERATIONS+" iterations."+(" Probably there is a cycle in the reactive function: "+allReactions[0]));allReactions.splice(0);// clear reactions
}var remainingReactions=allReactions.splice(0);for(var i=0,l=remainingReactions.length;i<l;i++)remainingReactions[i].runReaction();}globalState.isRunningReactions=false;}var isReaction=createInstanceofPredicate("Reaction",Reaction);function isSpyEnabled(){return"production"!=="production";}function spyReport(event){return;// dead code elimination can do the rest
}function spyReportStart(event){return;}function spyReportEnd(change){return;}function spy(listener){{console.warn("[mobx.spy] Is a no-op in production builds");return function(){};}}function dontReassignFields(){fail("production"!=="production");}function namedActionDecorator(name){return function(target,prop,descriptor){if(descriptor){// babel / typescript
// @action method() { }
if(descriptor.value){// typescript
return{value:createAction(name,descriptor.value),enumerable:false,configurable:true,writable:true// for typescript, this must be writable, otherwise it cannot inherit :/ (see inheritable actions test)
};}// babel only: @action method = () => {}
var initializer_1=descriptor.initializer;return{enumerable:false,configurable:true,writable:true,initializer:function(){// N.B: we can't immediately invoke initializer; this would be wrong
return createAction(name,initializer_1.call(this));}};}// bound instance methods
return actionFieldDecorator(name).apply(this,arguments);};}function actionFieldDecorator(name){// Simple property that writes on first invocation to the current instance
return function(target,prop,descriptor){Object.defineProperty(target,prop,{configurable:true,enumerable:false,get:function(){return undefined;},set:function(value){addHiddenProp(this,prop,action(name,value));}});};}function boundActionDecorator(target,propertyName,descriptor,applyToInstance){if(applyToInstance===true){defineBoundAction(target,propertyName,descriptor.value);return null;}if(descriptor){// if (descriptor.value)
// Typescript / Babel: @action.bound method() { }
// also: babel @action.bound method = () => {}
return{configurable:true,enumerable:false,get:function(){defineBoundAction(this,propertyName,descriptor.value||descriptor.initializer.call(this));return this[propertyName];},set:dontReassignFields};}// field decorator Typescript @action.bound method = () => {}
return{enumerable:false,configurable:true,set:function(v){defineBoundAction(this,propertyName,v);},get:function(){return undefined;}};}var action=function action(arg1,arg2,arg3,arg4){// action(fn() {})
if(arguments.length===1&&typeof arg1==="function")return createAction(arg1.name||"<unnamed action>",arg1);// action("name", fn() {})
if(arguments.length===2&&typeof arg2==="function")return createAction(arg1,arg2);// @action("name") fn() {}
if(arguments.length===1&&typeof arg1==="string")return namedActionDecorator(arg1);// @action fn() {}
if(arg4===true){// apply to instance immediately
addHiddenProp(arg1,arg2,createAction(arg1.name||arg2,arg3.value,this));}else{return namedActionDecorator(arg2).apply(null,arguments);}};action.bound=boundActionDecorator;function defineBoundAction(target,propertyName,fn){addHiddenProp(target,propertyName,createAction(propertyName,fn.bind(target)));}/**
 * Creates a named reactive view and keeps it alive, so that the view is always
 * updated if one of the dependencies changes, even when the view is not further used by something else.
 * @param view The reactive view
 * @returns disposer function, which can be used to stop the view from being updated in the future.
 */function autorun(view,opts){if(opts===void 0){opts=EMPTY_OBJECT;}var name=opts&&opts.name||view.name||"Autorun@"+getNextId();var runSync=!opts.scheduler&&!opts.delay;var reaction;if(runSync){// normal autorun
reaction=new Reaction(name,function(){this.track(reactionRunner);},opts.onError);}else{var scheduler_1=createSchedulerFromOptions(opts);// debounced autorun
var isScheduled_1=false;reaction=new Reaction(name,function(){if(!isScheduled_1){isScheduled_1=true;scheduler_1(function(){isScheduled_1=false;if(!reaction.isDisposed)reaction.track(reactionRunner);});}},opts.onError);}function reactionRunner(){view(reaction);}reaction.schedule();return reaction.getDisposer();}var run=function(f){return f();};function createSchedulerFromOptions(opts){return opts.scheduler?opts.scheduler:opts.delay?function(f){return setTimeout(f,opts.delay);}:run;}function onBecomeObserved(thing,arg2,arg3){return interceptHook("onBecomeObserved",thing,arg2,arg3);}function onBecomeUnobserved(thing,arg2,arg3){return interceptHook("onBecomeUnobserved",thing,arg2,arg3);}function interceptHook(hook,thing,arg2,arg3){var atom=typeof arg2==="string"?getAtom(thing,arg2):getAtom(thing);var cb=typeof arg2==="string"?arg3:arg2;var listenersKey=hook+"Listeners";if(atom[listenersKey]){atom[listenersKey].add(cb);}else{atom[listenersKey]=new Set([cb]);}var orig=atom[hook];if(typeof orig!=="function")return fail("production"!=="production");return function(){var hookListeners=atom[listenersKey];if(hookListeners){hookListeners.delete(cb);if(hookListeners.size===0){delete atom[listenersKey];}}};}function extendObservable(target,properties,decorators,options){options=asCreateObservableOptions(options);var defaultDecorator=getDefaultDecoratorFromObjectOptions(options);initializeInstance(target);// Fixes #1740
asObservableObject(target,options.name,defaultDecorator.enhancer);// make sure object is observable, even without initial props
if(properties)extendObservableObjectWithProperties(target,properties,decorators,defaultDecorator);return target;}function getDefaultDecoratorFromObjectOptions(options){return options.defaultDecorator||(options.deep===false?refDecorator:deepDecorator);}function extendObservableObjectWithProperties(target,properties,decorators,defaultDecorator){var keys,i,key;startBatch();try{var keys=getPlainObjectKeys(properties);for(var i in keys){var key=keys[i];var descriptor=Object.getOwnPropertyDescriptor(properties,key);if(false){}var decorator=decorators&&key in decorators?decorators[key]:descriptor.get?computedDecorator:defaultDecorator;if(false){}var resultDescriptor=decorator(target,key,descriptor,true);if(resultDescriptor// otherwise, assume already applied, due to `applyToInstance`
)Object.defineProperty(target,key,resultDescriptor);}}finally{endBatch();}}function getDependencyTree(thing,property){return nodeToDependencyTree(getAtom(thing,property));}function nodeToDependencyTree(node){var result={name:node.name};if(node.observing&&node.observing.length>0)result.dependencies=unique(node.observing).map(nodeToDependencyTree);return result;}function _isComputed(value,property){if(value===null||value===undefined)return false;if(property!==undefined){if(isObservableObject(value)===false)return false;if(!value[$mobx].values.has(property))return false;var atom=getAtom(value,property);return isComputedValue(atom);}return isComputedValue(value);}function isComputed(value){if(arguments.length>1)return fail("production"!=="production");return _isComputed(value);}function _isObservable(value,property){if(value===null||value===undefined)return false;if(property!==undefined){if(isObservableObject(value)){return value[$mobx].values.has(property);}return false;}// For first check, see #701
return isObservableObject(value)||!!value[$mobx]||isAtom(value)||isReaction(value)||isComputedValue(value);}function isObservable(value){if(arguments.length!==1)fail("production"!=="production");return _isObservable(value);}function set(obj,key,value){if(arguments.length===2&&!isObservableSet(obj)){startBatch();var values_1=key;try{for(var key_1 in values_1)set(obj,key_1,values_1[key_1]);}finally{endBatch();}return;}if(isObservableObject(obj)){var adm=obj[$mobx];var existingObservable=adm.values.get(key);if(existingObservable){adm.write(key,value);}else{adm.addObservableProp(key,value,adm.defaultEnhancer);}}else if(isObservableMap(obj)){obj.set(key,value);}else if(isObservableSet(obj)){obj.add(key);}else if(isObservableArray(obj)){if(typeof key!=="number")key=parseInt(key,10);invariant(key>=0,"Not a valid index: '"+key+"'");startBatch();if(key>=obj.length)obj.length=key+1;obj[key]=value;endBatch();}else{return fail("production"!=="production");}}function trace(){var args=[];for(var _i=0;_i<arguments.length;_i++){args[_i]=arguments[_i];}var enterBreakPoint=false;if(typeof args[args.length-1]==="boolean")enterBreakPoint=args.pop();var derivation=getAtomFromArgs(args);if(!derivation){return fail("production"!=="production");}if(derivation.isTracing===TraceMode.NONE){console.log("[mobx.trace] '"+derivation.name+"' tracing enabled");}derivation.isTracing=enterBreakPoint?TraceMode.BREAK:TraceMode.LOG;}function getAtomFromArgs(args){switch(args.length){case 0:return globalState.trackingDerivation;case 1:return getAtom(args[0]);case 2:return getAtom(args[0],args[1]);}}/**
 * During a transaction no views are updated until the end of the transaction.
 * The transaction will be run synchronously nonetheless.
 *
 * @param action a function that updates some reactive state
 * @returns any value that was returned by the 'action' parameter.
 */function transaction(action,thisArg){if(thisArg===void 0){thisArg=undefined;}startBatch();try{return action.apply(thisArg);}finally{endBatch();}}function when(predicate,arg1,arg2){if(arguments.length===1||arg1&&typeof arg1==="object")return whenPromise(predicate,arg1);return _when(predicate,arg1,arg2||{});}function _when(predicate,effect,opts){var timeoutHandle;if(typeof opts.timeout==="number"){timeoutHandle=setTimeout(function(){if(!disposer[$mobx].isDisposed){disposer();var error=new Error("WHEN_TIMEOUT");if(opts.onError)opts.onError(error);else throw error;}},opts.timeout);}opts.name=opts.name||"When@"+getNextId();var effectAction=createAction(opts.name+"-effect",effect);var disposer=autorun(function(r){if(predicate()){r.dispose();if(timeoutHandle)clearTimeout(timeoutHandle);effectAction();}},opts);return disposer;}function whenPromise(predicate,opts){var cancel;var res=new Promise(function(resolve,reject){var disposer=_when(predicate,resolve,__assign({},opts,{onError:reject}));cancel=function(){disposer();reject("WHEN_CANCELLED");};});res.cancel=cancel;return res;}function getAdm(target){return target[$mobx];}function isPropertyKey(val){return typeof val==="string"||typeof val==="number"||typeof val==="symbol";}// Optimization: we don't need the intermediate objects and could have a completely custom administration for DynamicObjects,
// and skip either the internal values map, or the base object with its property descriptors!
var objectProxyTraps={has:function(target,name){if(name===$mobx||name==="constructor"||name===mobxDidRunLazyInitializersSymbol)return true;var adm=getAdm(target);// MWE: should `in` operator be reactive? If not, below code path will be faster / more memory efficient
// TODO: check performance stats!
// if (adm.values.get(name as string)) return true
if(isPropertyKey(name))return adm.has(name);return name in target;},get:function(target,name){if(name===$mobx||name==="constructor"||name===mobxDidRunLazyInitializersSymbol)return target[name];var adm=getAdm(target);var observable=adm.values.get(name);if(observable instanceof Atom){var result=observable.get();if(result===undefined){// This fixes #1796, because deleting a prop that has an
// undefined value won't retrigger a observer (no visible effect),
// the autorun wouldn't subscribe to future key changes (see also next comment)
adm.has(name);}return result;}// make sure we start listening to future keys
// note that we only do this here for optimization
if(isPropertyKey(name))adm.has(name);return target[name];},set:function(target,name,value){if(!isPropertyKey(name))return false;set(target,name,value);return true;},deleteProperty:function(target,name){if(!isPropertyKey(name))return false;var adm=getAdm(target);adm.remove(name);return true;},ownKeys:function(target){var adm=getAdm(target);adm.keysAtom.reportObserved();return Reflect.ownKeys(target);},preventExtensions:function(target){fail("Dynamic observable objects cannot be frozen");return false;}};function createDynamicObservableObject(base){var proxy=new Proxy(base,objectProxyTraps);base[$mobx].proxy=proxy;return proxy;}function hasInterceptors(interceptable){return interceptable.interceptors!==undefined&&interceptable.interceptors.length>0;}function registerInterceptor(interceptable,handler){var interceptors=interceptable.interceptors||(interceptable.interceptors=[]);interceptors.push(handler);return once(function(){var idx=interceptors.indexOf(handler);if(idx!==-1)interceptors.splice(idx,1);});}function interceptChange(interceptable,change){var prevU=untrackedStart();try{var interceptors=interceptable.interceptors;if(interceptors)for(var i=0,l=interceptors.length;i<l;i++){change=interceptors[i](change);invariant(!change||change.type,"Intercept handlers should return nothing or a change object");if(!change)break;}return change;}finally{untrackedEnd(prevU);}}function hasListeners(listenable){return listenable.changeListeners!==undefined&&listenable.changeListeners.length>0;}function registerListener(listenable,handler){var listeners=listenable.changeListeners||(listenable.changeListeners=[]);listeners.push(handler);return once(function(){var idx=listeners.indexOf(handler);if(idx!==-1)listeners.splice(idx,1);});}function notifyListeners(listenable,change){var prevU=untrackedStart();var listeners=listenable.changeListeners;if(!listeners)return;listeners=listeners.slice();for(var i=0,l=listeners.length;i<l;i++){listeners[i](change);}untrackedEnd(prevU);}var MAX_SPLICE_SIZE=10000;// See e.g. https://github.com/mobxjs/mobx/issues/859
var arrayTraps={get:function(target,name){if(name===$mobx)return target[$mobx];if(name==="length")return target[$mobx].getArrayLength();if(typeof name==="number"){return arrayExtensions.get.call(target,name);}if(typeof name==="string"&&!isNaN(name)){return arrayExtensions.get.call(target,parseInt(name));}if(arrayExtensions.hasOwnProperty(name)){return arrayExtensions[name];}return target[name];},set:function(target,name,value){if(name==="length"){target[$mobx].setArrayLength(value);return true;}if(typeof name==="number"){arrayExtensions.set.call(target,name,value);return true;}if(!isNaN(name)){arrayExtensions.set.call(target,parseInt(name),value);return true;}return false;},preventExtensions:function(target){fail("Observable arrays cannot be frozen");return false;}};function createObservableArray(initialValues,enhancer,name,owned){if(name===void 0){name="ObservableArray@"+getNextId();}if(owned===void 0){owned=false;}var adm=new ObservableArrayAdministration(name,enhancer,owned);addHiddenFinalProp(adm.values,$mobx,adm);var proxy=new Proxy(adm.values,arrayTraps);adm.proxy=proxy;if(initialValues&&initialValues.length){var prev=allowStateChangesStart(true);adm.spliceWithArray(0,0,initialValues);allowStateChangesEnd(prev);}return proxy;}var ObservableArrayAdministration=/** @class */function(){function ObservableArrayAdministration(name,enhancer,owned){this.owned=owned;this.values=[];this.proxy=undefined;this.lastKnownLength=0;this.atom=new Atom(name||"ObservableArray@"+getNextId());this.enhancer=function(newV,oldV){return enhancer(newV,oldV,name+"[..]");};}ObservableArrayAdministration.prototype.dehanceValue=function(value){if(this.dehancer!==undefined)return this.dehancer(value);return value;};ObservableArrayAdministration.prototype.dehanceValues=function(values){if(this.dehancer!==undefined&&values.length>0)return values.map(this.dehancer);return values;};ObservableArrayAdministration.prototype.intercept=function(handler){return registerInterceptor(this,handler);};ObservableArrayAdministration.prototype.observe=function(listener,fireImmediately){if(fireImmediately===void 0){fireImmediately=false;}if(fireImmediately){listener({object:this.proxy,type:"splice",index:0,added:this.values.slice(),addedCount:this.values.length,removed:[],removedCount:0});}return registerListener(this,listener);};ObservableArrayAdministration.prototype.getArrayLength=function(){this.atom.reportObserved();return this.values.length;};ObservableArrayAdministration.prototype.setArrayLength=function(newLength){if(typeof newLength!=="number"||newLength<0)throw new Error("[mobx.array] Out of range: "+newLength);var currentLength=this.values.length;if(newLength===currentLength)return;else if(newLength>currentLength){var newItems=new Array(newLength-currentLength);for(var i=0;i<newLength-currentLength;i++)newItems[i]=undefined;// No Array.fill everywhere...
this.spliceWithArray(currentLength,0,newItems);}else this.spliceWithArray(newLength,currentLength-newLength);};ObservableArrayAdministration.prototype.updateArrayLength=function(oldLength,delta){if(oldLength!==this.lastKnownLength)throw new Error("[mobx] Modification exception: the internal structure of an observable array was changed.");this.lastKnownLength+=delta;};ObservableArrayAdministration.prototype.spliceWithArray=function(index,deleteCount,newItems){var _this=this;checkIfStateModificationsAreAllowed(this.atom);var length=this.values.length;if(index===undefined)index=0;else if(index>length)index=length;else if(index<0)index=Math.max(0,length+index);if(arguments.length===1)deleteCount=length-index;else if(deleteCount===undefined||deleteCount===null)deleteCount=0;else deleteCount=Math.max(0,Math.min(deleteCount,length-index));if(newItems===undefined)newItems=EMPTY_ARRAY;if(hasInterceptors(this)){var change=interceptChange(this,{object:this.proxy,type:"splice",index:index,removedCount:deleteCount,added:newItems});if(!change)return EMPTY_ARRAY;deleteCount=change.removedCount;newItems=change.added;}newItems=newItems.length===0?newItems:newItems.map(function(v){return _this.enhancer(v,undefined);});var res=this.spliceItemsIntoValues(index,deleteCount,newItems);if(deleteCount!==0||newItems.length!==0)this.notifyArraySplice(index,newItems,res);return this.dehanceValues(res);};ObservableArrayAdministration.prototype.spliceItemsIntoValues=function(index,deleteCount,newItems){var _a;if(newItems.length<MAX_SPLICE_SIZE){return(_a=this.values).splice.apply(_a,__spread([index,deleteCount],newItems));}else{var res=this.values.slice(index,index+deleteCount);this.values=this.values.slice(0,index).concat(newItems,this.values.slice(index+deleteCount));return res;}};ObservableArrayAdministration.prototype.notifyArrayChildUpdate=function(index,newValue,oldValue){var notifySpy=!this.owned&&isSpyEnabled();var notify=hasListeners(this);var change=notify||notifySpy?{object:this.proxy,type:"update",index:index,newValue:newValue,oldValue:oldValue}:null;// The reason why this is on right hand side here (and not above), is this way the uglifier will drop it, but it won't
// cause any runtime overhead in development mode without NODE_ENV set, unless spying is enabled
if(notifySpy&&"production"!=="production")spyReportStart(__assign({},change,{name:this.atom.name}));this.atom.reportChanged();if(notify)notifyListeners(this,change);};ObservableArrayAdministration.prototype.notifyArraySplice=function(index,added,removed){var notifySpy=!this.owned&&isSpyEnabled();var notify=hasListeners(this);var change=notify||notifySpy?{object:this.proxy,type:"splice",index:index,removed:removed,added:added,removedCount:removed.length,addedCount:added.length}:null;if(notifySpy&&"production"!=="production")spyReportStart(__assign({},change,{name:this.atom.name}));this.atom.reportChanged();// conform: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/observe
if(notify)notifyListeners(this,change);};return ObservableArrayAdministration;}();var arrayExtensions={intercept:function(handler){return this[$mobx].intercept(handler);},observe:function(listener,fireImmediately){if(fireImmediately===void 0){fireImmediately=false;}var adm=this[$mobx];return adm.observe(listener,fireImmediately);},clear:function(){return this.splice(0);},replace:function(newItems){var adm=this[$mobx];return adm.spliceWithArray(0,adm.values.length,newItems);},/**
     * Converts this array back to a (shallow) javascript structure.
     * For a deep clone use mobx.toJS
     */toJS:function(){return this.slice();},toJSON:function(){// Used by JSON.stringify
return this.toJS();},/*
     * functions that do alter the internal structure of the array, (based on lib.es6.d.ts)
     * since these functions alter the inner structure of the array, the have side effects.
     * Because the have side effects, they should not be used in computed function,
     * and for that reason the do not call dependencyState.notifyObserved
     */splice:function(index,deleteCount){var newItems=[];for(var _i=2;_i<arguments.length;_i++){newItems[_i-2]=arguments[_i];}var adm=this[$mobx];switch(arguments.length){case 0:return[];case 1:return adm.spliceWithArray(index);case 2:return adm.spliceWithArray(index,deleteCount);}return adm.spliceWithArray(index,deleteCount,newItems);},spliceWithArray:function(index,deleteCount,newItems){var adm=this[$mobx];return adm.spliceWithArray(index,deleteCount,newItems);},push:function(){var items=[];for(var _i=0;_i<arguments.length;_i++){items[_i]=arguments[_i];}var adm=this[$mobx];adm.spliceWithArray(adm.values.length,0,items);return adm.values.length;},pop:function(){return this.splice(Math.max(this[$mobx].values.length-1,0),1)[0];},shift:function(){return this.splice(0,1)[0];},unshift:function(){var items=[];for(var _i=0;_i<arguments.length;_i++){items[_i]=arguments[_i];}var adm=this[$mobx];adm.spliceWithArray(0,0,items);return adm.values.length;},reverse:function(){var clone=this.slice();return clone.reverse.apply(clone,arguments);},sort:function(compareFn){var clone=this.slice();return clone.sort.apply(clone,arguments);},remove:function(value){var adm=this[$mobx];var idx=adm.dehanceValues(adm.values).indexOf(value);if(idx>-1){this.splice(idx,1);return true;}return false;},get:function(index){var adm=this[$mobx];if(adm){if(index<adm.values.length){adm.atom.reportObserved();return adm.dehanceValue(adm.values[index]);}console.warn("[mobx.array] Attempt to read an array index ("+index+") that is out of bounds ("+adm.values.length+"). Please check length first. Out of bound indices will not be tracked by MobX");}return undefined;},set:function(index,newValue){var adm=this[$mobx];var values=adm.values;if(index<values.length){// update at index in range
checkIfStateModificationsAreAllowed(adm.atom);var oldValue=values[index];if(hasInterceptors(adm)){var change=interceptChange(adm,{type:"update",object:adm.proxy,index:index,newValue:newValue});if(!change)return;newValue=change.newValue;}newValue=adm.enhancer(newValue,oldValue);var changed=newValue!==oldValue;if(changed){values[index]=newValue;adm.notifyArrayChildUpdate(index,newValue,oldValue);}}else if(index===values.length){// add a new item
adm.spliceWithArray(index,0,[newValue]);}else{// out of bounds
throw new Error("[mobx.array] Index out of bounds, "+index+" is larger than "+values.length);}}};["concat","every","filter","forEach","indexOf","join","lastIndexOf","map","reduce","reduceRight","slice","some","toString","toLocaleString"].forEach(function(funcName){arrayExtensions[funcName]=function(){var adm=this[$mobx];adm.atom.reportObserved();var res=adm.dehanceValues(adm.values);return res[funcName].apply(res,arguments);};});var isObservableArrayAdministration=createInstanceofPredicate("ObservableArrayAdministration",ObservableArrayAdministration);function isObservableArray(thing){return isObject(thing)&&isObservableArrayAdministration(thing[$mobx]);}var _a;var ObservableMapMarker={};// just extend Map? See also https://gist.github.com/nestharus/13b4d74f2ef4a2f4357dbd3fc23c1e54
// But: https://github.com/mobxjs/mobx/issues/1556
var ObservableMap=/** @class */function(){function ObservableMap(initialData,enhancer,name){if(enhancer===void 0){enhancer=deepEnhancer;}if(name===void 0){name="ObservableMap@"+getNextId();}this.enhancer=enhancer;this.name=name;this[_a]=ObservableMapMarker;this._keysAtom=createAtom(this.name+".keys()");this[Symbol.toStringTag]="Map";if(typeof Map!=="function"){throw new Error("mobx.map requires Map polyfill for the current browser. Check babel-polyfill or core-js/es6/map.js");}this._data=new Map();this._hasMap=new Map();this.merge(initialData);}ObservableMap.prototype._has=function(key){return this._data.has(key);};ObservableMap.prototype.has=function(key){if(this._hasMap.has(key))return this._hasMap.get(key).get();return this._updateHasMapEntry(key,false).get();};ObservableMap.prototype.set=function(key,value){var hasKey=this._has(key);if(hasInterceptors(this)){var change=interceptChange(this,{type:hasKey?"update":"add",object:this,newValue:value,name:key});if(!change)return this;value=change.newValue;}if(hasKey){this._updateValue(key,value);}else{this._addValue(key,value);}return this;};ObservableMap.prototype.delete=function(key){var _this=this;if(hasInterceptors(this)){var change=interceptChange(this,{type:"delete",object:this,name:key});if(!change)return false;}if(this._has(key)){var notifySpy=isSpyEnabled();var notify=hasListeners(this);var change=notify||notifySpy?{type:"delete",object:this,oldValue:this._data.get(key).value,name:key}:null;if(notifySpy&&"production"!=="production")spyReportStart(__assign({},change,{name:this.name,key:key}));transaction(function(){_this._keysAtom.reportChanged();_this._updateHasMapEntry(key,false);var observable=_this._data.get(key);observable.setNewValue(undefined);_this._data.delete(key);});if(notify)notifyListeners(this,change);return true;}return false;};ObservableMap.prototype._updateHasMapEntry=function(key,value){// optimization; don't fill the hasMap if we are not observing, or remove entry if there are no observers anymore
var entry=this._hasMap.get(key);if(entry){entry.setNewValue(value);}else{entry=new ObservableValue(value,referenceEnhancer,this.name+"."+stringifyKey(key)+"?",false);this._hasMap.set(key,entry);}return entry;};ObservableMap.prototype._updateValue=function(key,newValue){var observable=this._data.get(key);newValue=observable.prepareNewValue(newValue);if(newValue!==globalState.UNCHANGED){var notifySpy=isSpyEnabled();var notify=hasListeners(this);var change=notify||notifySpy?{type:"update",object:this,oldValue:observable.value,name:key,newValue:newValue}:null;if(notifySpy&&"production"!=="production")spyReportStart(__assign({},change,{name:this.name,key:key}));observable.setNewValue(newValue);if(notify)notifyListeners(this,change);}};ObservableMap.prototype._addValue=function(key,newValue){var _this=this;checkIfStateModificationsAreAllowed(this._keysAtom);transaction(function(){var observable=new ObservableValue(newValue,_this.enhancer,_this.name+"."+stringifyKey(key),false);_this._data.set(key,observable);newValue=observable.value;// value might have been changed
_this._updateHasMapEntry(key,true);_this._keysAtom.reportChanged();});var notifySpy=isSpyEnabled();var notify=hasListeners(this);var change=notify||notifySpy?{type:"add",object:this,name:key,newValue:newValue}:null;if(notify)notifyListeners(this,change);};ObservableMap.prototype.get=function(key){if(this.has(key))return this.dehanceValue(this._data.get(key).get());return this.dehanceValue(undefined);};ObservableMap.prototype.dehanceValue=function(value){if(this.dehancer!==undefined){return this.dehancer(value);}return value;};ObservableMap.prototype.keys=function(){this._keysAtom.reportObserved();return this._data.keys();};ObservableMap.prototype.values=function(){var self=this;var nextIndex=0;var keys=Array.from(this.keys());return makeIterable({next:function(){return nextIndex<keys.length?{value:self.get(keys[nextIndex++]),done:false}:{done:true};}});};ObservableMap.prototype.entries=function(){var self=this;var nextIndex=0;var keys=Array.from(this.keys());return makeIterable({next:function(){if(nextIndex<keys.length){var key=keys[nextIndex++];return{value:[key,self.get(key)],done:false};}return{done:true};}});};ObservableMap.prototype[(_a=$mobx,Symbol.iterator)]=function(){return this.entries();};ObservableMap.prototype.forEach=function(callback,thisArg){var e_1,_a;try{for(var _b=__values(this),_c=_b.next();!_c.done;_c=_b.next()){var _d=__read(_c.value,2),key=_d[0],value=_d[1];callback.call(thisArg,value,key,this);}}catch(e_1_1){e_1={error:e_1_1};}finally{try{if(_c&&!_c.done&&(_a=_b.return))_a.call(_b);}finally{if(e_1)throw e_1.error;}}};/** Merge another object into this object, returns this. */ObservableMap.prototype.merge=function(other){var _this=this;if(isObservableMap(other)){other=other.toJS();}transaction(function(){if(isPlainObject(other))getPlainObjectKeys(other).forEach(function(key){return _this.set(key,other[key]);});else if(Array.isArray(other))other.forEach(function(_a){var _b=__read(_a,2),key=_b[0],value=_b[1];return _this.set(key,value);});else if(isES6Map(other)){if(other.constructor!==Map)fail("Cannot initialize from classes that inherit from Map: "+other.constructor.name);// prettier-ignore
other.forEach(function(value,key){return _this.set(key,value);});}else if(other!==null&&other!==undefined)fail("Cannot initialize map from "+other);});return this;};ObservableMap.prototype.clear=function(){var _this=this;transaction(function(){untracked(function(){var e_2,_a;try{for(var _b=__values(_this.keys()),_c=_b.next();!_c.done;_c=_b.next()){var key=_c.value;_this.delete(key);}}catch(e_2_1){e_2={error:e_2_1};}finally{try{if(_c&&!_c.done&&(_a=_b.return))_a.call(_b);}finally{if(e_2)throw e_2.error;}}});});};ObservableMap.prototype.replace=function(values){var _this=this;transaction(function(){// grab all the keys that are present in the new map but not present in the current map
// and delete them from the map, then merge the new map
// this will cause reactions only on changed values
var newKeys=getMapLikeKeys(values);var oldKeys=Array.from(_this.keys());var missingKeys=oldKeys.filter(function(k){return newKeys.indexOf(k)===-1;});missingKeys.forEach(function(k){return _this.delete(k);});_this.merge(values);});return this;};Object.defineProperty(ObservableMap.prototype,"size",{get:function(){this._keysAtom.reportObserved();return this._data.size;},enumerable:true,configurable:true});/**
     * Returns a plain object that represents this map.
     * Note that all the keys being stringified.
     * If there are duplicating keys after converting them to strings, behaviour is undetermined.
     */ObservableMap.prototype.toPOJO=function(){var e_3,_a;var res={};try{for(var _b=__values(this),_c=_b.next();!_c.done;_c=_b.next()){var _d=__read(_c.value,2),key=_d[0],value=_d[1];// We lie about symbol key types due to https://github.com/Microsoft/TypeScript/issues/1863
res[typeof key==="symbol"?key:stringifyKey(key)]=value;}}catch(e_3_1){e_3={error:e_3_1};}finally{try{if(_c&&!_c.done&&(_a=_b.return))_a.call(_b);}finally{if(e_3)throw e_3.error;}}return res;};/**
     * Returns a shallow non observable object clone of this map.
     * Note that the values migth still be observable. For a deep clone use mobx.toJS.
     */ObservableMap.prototype.toJS=function(){return new Map(this);};ObservableMap.prototype.toJSON=function(){// Used by JSON.stringify
return this.toPOJO();};ObservableMap.prototype.toString=function(){var _this=this;return this.name+"[{ "+Array.from(this.keys()).map(function(key){return stringifyKey(key)+": "+(""+_this.get(key));}).join(", ")+" }]";};/**
     * Observes this object. Triggers for the events 'add', 'update' and 'delete'.
     * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/observe
     * for callback details
     */ObservableMap.prototype.observe=function(listener,fireImmediately){return registerListener(this,listener);};ObservableMap.prototype.intercept=function(handler){return registerInterceptor(this,handler);};return ObservableMap;}();/* 'var' fixes small-build issue */var isObservableMap=createInstanceofPredicate("ObservableMap",ObservableMap);var _a$1;var ObservableSetMarker={};var ObservableSet=/** @class */function(){function ObservableSet(initialData,enhancer,name){if(enhancer===void 0){enhancer=deepEnhancer;}if(name===void 0){name="ObservableSet@"+getNextId();}this.name=name;this[_a$1]=ObservableSetMarker;this._data=new Set();this._atom=createAtom(this.name);this[Symbol.toStringTag]="Set";if(typeof Set!=="function"){throw new Error("mobx.set requires Set polyfill for the current browser. Check babel-polyfill or core-js/es6/set.js");}this.enhancer=function(newV,oldV){return enhancer(newV,oldV,name);};if(initialData){this.replace(initialData);}}ObservableSet.prototype.dehanceValue=function(value){if(this.dehancer!==undefined){return this.dehancer(value);}return value;};ObservableSet.prototype.clear=function(){var _this=this;transaction(function(){untracked(function(){var e_1,_a;try{for(var _b=__values(_this._data.values()),_c=_b.next();!_c.done;_c=_b.next()){var value=_c.value;_this.delete(value);}}catch(e_1_1){e_1={error:e_1_1};}finally{try{if(_c&&!_c.done&&(_a=_b.return))_a.call(_b);}finally{if(e_1)throw e_1.error;}}});});};ObservableSet.prototype.forEach=function(callbackFn,thisArg){var e_2,_a;try{for(var _b=__values(this),_c=_b.next();!_c.done;_c=_b.next()){var value=_c.value;callbackFn.call(thisArg,value,value,this);}}catch(e_2_1){e_2={error:e_2_1};}finally{try{if(_c&&!_c.done&&(_a=_b.return))_a.call(_b);}finally{if(e_2)throw e_2.error;}}};Object.defineProperty(ObservableSet.prototype,"size",{get:function(){this._atom.reportObserved();return this._data.size;},enumerable:true,configurable:true});ObservableSet.prototype.add=function(value){var _this=this;checkIfStateModificationsAreAllowed(this._atom);if(hasInterceptors(this)){var change=interceptChange(this,{type:"add",object:this,newValue:value});if(!change)return this;// TODO: ideally, value = change.value would be done here, so that values can be
// changed by interceptor. Same applies for other Set and Map api's.
}if(!this.has(value)){transaction(function(){_this._data.add(_this.enhancer(value,undefined));_this._atom.reportChanged();});var notifySpy=isSpyEnabled();var notify=hasListeners(this);var change=notify||notifySpy?{type:"add",object:this,newValue:value}:null;if(notify)notifyListeners(this,change);}return this;};ObservableSet.prototype.delete=function(value){var _this=this;if(hasInterceptors(this)){var change=interceptChange(this,{type:"delete",object:this,oldValue:value});if(!change)return false;}if(this.has(value)){var notifySpy=isSpyEnabled();var notify=hasListeners(this);var change=notify||notifySpy?{type:"delete",object:this,oldValue:value}:null;if(notifySpy&&"production"!=="production")spyReportStart(__assign({},change,{name:this.name}));transaction(function(){_this._atom.reportChanged();_this._data.delete(value);});if(notify)notifyListeners(this,change);return true;}return false;};ObservableSet.prototype.has=function(value){this._atom.reportObserved();return this._data.has(this.dehanceValue(value));};ObservableSet.prototype.entries=function(){var nextIndex=0;var keys=Array.from(this.keys());var values=Array.from(this.values());return makeIterable({next:function(){var index=nextIndex;nextIndex+=1;return index<values.length?{value:[keys[index],values[index]],done:false}:{done:true};}});};ObservableSet.prototype.keys=function(){return this.values();};ObservableSet.prototype.values=function(){this._atom.reportObserved();var self=this;var nextIndex=0;var observableValues=Array.from(this._data.values());return makeIterable({next:function(){return nextIndex<observableValues.length?{value:self.dehanceValue(observableValues[nextIndex++]),done:false}:{done:true};}});};ObservableSet.prototype.replace=function(other){var _this=this;if(isObservableSet(other)){other=other.toJS();}transaction(function(){if(Array.isArray(other)){_this.clear();other.forEach(function(value){return _this.add(value);});}else if(isES6Set(other)){_this.clear();other.forEach(function(value){return _this.add(value);});}else if(other!==null&&other!==undefined){fail("Cannot initialize set from "+other);}});return this;};ObservableSet.prototype.observe=function(listener,fireImmediately){return registerListener(this,listener);};ObservableSet.prototype.intercept=function(handler){return registerInterceptor(this,handler);};ObservableSet.prototype.toJS=function(){return new Set(this);};ObservableSet.prototype.toString=function(){return this.name+"[ "+Array.from(this).join(", ")+" ]";};ObservableSet.prototype[(_a$1=$mobx,Symbol.iterator)]=function(){return this.values();};return ObservableSet;}();var isObservableSet=createInstanceofPredicate("ObservableSet",ObservableSet);var ObservableObjectAdministration=/** @class */function(){function ObservableObjectAdministration(target,values,name,defaultEnhancer){if(values===void 0){values=new Map();}this.target=target;this.values=values;this.name=name;this.defaultEnhancer=defaultEnhancer;this.keysAtom=new Atom(name+".keys");}ObservableObjectAdministration.prototype.read=function(key){return this.values.get(key).get();};ObservableObjectAdministration.prototype.write=function(key,newValue){var instance=this.target;var observable=this.values.get(key);if(observable instanceof ComputedValue){observable.set(newValue);return;}// intercept
if(hasInterceptors(this)){var change=interceptChange(this,{type:"update",object:this.proxy||instance,name:key,newValue:newValue});if(!change)return;newValue=change.newValue;}newValue=observable.prepareNewValue(newValue);// notify spy & observers
if(newValue!==globalState.UNCHANGED){var notify=hasListeners(this);var notifySpy=isSpyEnabled();var change=notify||notifySpy?{type:"update",object:this.proxy||instance,oldValue:observable.value,name:key,newValue:newValue}:null;if(notifySpy&&"production"!=="production")spyReportStart(__assign({},change,{name:this.name,key:key}));observable.setNewValue(newValue);if(notify)notifyListeners(this,change);}};ObservableObjectAdministration.prototype.has=function(key){var map=this.pendingKeys||(this.pendingKeys=new Map());var entry=map.get(key);if(entry)return entry.get();else{var exists=!!this.values.get(key);// Possible optimization: Don't have a separate map for non existing keys,
// but store them in the values map instead, using a special symbol to denote "not existing"
entry=new ObservableValue(exists,referenceEnhancer,this.name+"."+stringifyKey(key)+"?",false);map.set(key,entry);return entry.get();// read to subscribe
}};ObservableObjectAdministration.prototype.addObservableProp=function(propName,newValue,enhancer){if(enhancer===void 0){enhancer=this.defaultEnhancer;}var target=this.target;if(hasInterceptors(this)){var change=interceptChange(this,{object:this.proxy||target,name:propName,type:"add",newValue:newValue});if(!change)return;newValue=change.newValue;}var observable=new ObservableValue(newValue,enhancer,this.name+"."+stringifyKey(propName),false);this.values.set(propName,observable);newValue=observable.value;// observableValue might have changed it
Object.defineProperty(target,propName,generateObservablePropConfig(propName));this.notifyPropertyAddition(propName,newValue);};ObservableObjectAdministration.prototype.addComputedProp=function(propertyOwner,// where is the property declared?
propName,options){var target=this.target;options.name=options.name||this.name+"."+stringifyKey(propName);this.values.set(propName,new ComputedValue(options));if(propertyOwner===target||isPropertyConfigurable(propertyOwner,propName))Object.defineProperty(propertyOwner,propName,generateComputedPropConfig(propName));};ObservableObjectAdministration.prototype.remove=function(key){if(!this.values.has(key))return;var target=this.target;if(hasInterceptors(this)){var change=interceptChange(this,{object:this.proxy||target,name:key,type:"remove"});if(!change)return;}try{startBatch();var notify=hasListeners(this);var notifySpy=isSpyEnabled();var oldObservable=this.values.get(key);var oldValue=oldObservable&&oldObservable.get();oldObservable&&oldObservable.set(undefined);// notify key and keyset listeners
this.keysAtom.reportChanged();this.values.delete(key);if(this.pendingKeys){var entry=this.pendingKeys.get(key);if(entry)entry.set(false);}// delete the prop
delete this.target[key];var change=notify||notifySpy?{type:"remove",object:this.proxy||target,oldValue:oldValue,name:key}:null;if(notifySpy&&"production"!=="production")spyReportStart(__assign({},change,{name:this.name,key:key}));if(notify)notifyListeners(this,change);if(notifySpy&&"production"!=="production")spyReportEnd();}finally{endBatch();}};ObservableObjectAdministration.prototype.illegalAccess=function(owner,propName){/**
         * This happens if a property is accessed through the prototype chain, but the property was
         * declared directly as own property on the prototype.
         *
         * E.g.:
         * class A {
         * }
         * extendObservable(A.prototype, { x: 1 })
         *
         * classB extens A {
         * }
         * console.log(new B().x)
         *
         * It is unclear whether the property should be considered 'static' or inherited.
         * Either use `console.log(A.x)`
         * or: decorate(A, { x: observable })
         *
         * When using decorate, the property will always be redeclared as own property on the actual instance
         */console.warn("Property '"+propName+"' of '"+owner+"' was accessed through the prototype chain. Use 'decorate' instead to declare the prop or access it statically through it's owner");};/**
     * Observes this object. Triggers for the events 'add', 'update' and 'delete'.
     * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/observe
     * for callback details
     */ObservableObjectAdministration.prototype.observe=function(callback,fireImmediately){return registerListener(this,callback);};ObservableObjectAdministration.prototype.intercept=function(handler){return registerInterceptor(this,handler);};ObservableObjectAdministration.prototype.notifyPropertyAddition=function(key,newValue){var notify=hasListeners(this);var notifySpy=isSpyEnabled();var change=notify||notifySpy?{type:"add",object:this.proxy||this.target,name:key,newValue:newValue}:null;if(notify)notifyListeners(this,change);if(this.pendingKeys){var entry=this.pendingKeys.get(key);if(entry)entry.set(true);}this.keysAtom.reportChanged();};ObservableObjectAdministration.prototype.getKeys=function(){var e_1,_a;this.keysAtom.reportObserved();// return Reflect.ownKeys(this.values) as any
var res=[];try{for(var _b=__values(this.values),_c=_b.next();!_c.done;_c=_b.next()){var _d=__read(_c.value,2),key=_d[0],value=_d[1];if(value instanceof ObservableValue)res.push(key);}}catch(e_1_1){e_1={error:e_1_1};}finally{try{if(_c&&!_c.done&&(_a=_b.return))_a.call(_b);}finally{if(e_1)throw e_1.error;}}return res;};return ObservableObjectAdministration;}();function asObservableObject(target,name,defaultEnhancer){if(name===void 0){name="";}if(defaultEnhancer===void 0){defaultEnhancer=deepEnhancer;}if(Object.prototype.hasOwnProperty.call(target,$mobx))return target[$mobx];if(!isPlainObject(target))name=(target.constructor.name||"ObservableObject")+"@"+getNextId();if(!name)name="ObservableObject@"+getNextId();var adm=new ObservableObjectAdministration(target,new Map(),stringifyKey(name),defaultEnhancer);addHiddenProp(target,$mobx,adm);return adm;}var observablePropertyConfigs=Object.create(null);var computedPropertyConfigs=Object.create(null);function generateObservablePropConfig(propName){return observablePropertyConfigs[propName]||(observablePropertyConfigs[propName]={configurable:true,enumerable:true,get:function(){return this[$mobx].read(propName);},set:function(v){this[$mobx].write(propName,v);}});}function getAdministrationForComputedPropOwner(owner){var adm=owner[$mobx];if(!adm){// because computed props are declared on proty,
// the current instance might not have been initialized yet
initializeInstance(owner);return owner[$mobx];}return adm;}function generateComputedPropConfig(propName){return computedPropertyConfigs[propName]||(computedPropertyConfigs[propName]={configurable:false,enumerable:false,get:function(){return getAdministrationForComputedPropOwner(this).read(propName);},set:function(v){getAdministrationForComputedPropOwner(this).write(propName,v);}});}var isObservableObjectAdministration=createInstanceofPredicate("ObservableObjectAdministration",ObservableObjectAdministration);function isObservableObject(thing){if(isObject(thing)){// Initializers run lazily when transpiling to babel, so make sure they are run...
initializeInstance(thing);return isObservableObjectAdministration(thing[$mobx]);}return false;}function getAtom(thing,property){if(typeof thing==="object"&&thing!==null){if(isObservableArray(thing)){if(property!==undefined)fail("production"!=="production");return thing[$mobx].atom;}if(isObservableSet(thing)){return thing[$mobx];}if(isObservableMap(thing)){var anyThing=thing;if(property===undefined)return anyThing._keysAtom;var observable=anyThing._data.get(property)||anyThing._hasMap.get(property);if(!observable)fail("production"!=="production");return observable;}// Initializers run lazily when transpiling to babel, so make sure they are run...
initializeInstance(thing);if(property&&!thing[$mobx])thing[property];// See #1072
if(isObservableObject(thing)){if(!property)return fail("production"!=="production");var observable=thing[$mobx].values.get(property);if(!observable)fail("production"!=="production");return observable;}if(isAtom(thing)||isComputedValue(thing)||isReaction(thing)){return thing;}}else if(typeof thing==="function"){if(isReaction(thing[$mobx])){// disposer function
return thing[$mobx];}}return fail("production"!=="production");}function getAdministration(thing,property){if(!thing)fail("Expecting some object");if(property!==undefined)return getAdministration(getAtom(thing,property));if(isAtom(thing)||isComputedValue(thing)||isReaction(thing))return thing;if(isObservableMap(thing)||isObservableSet(thing))return thing;// Initializers run lazily when transpiling to babel, so make sure they are run...
initializeInstance(thing);if(thing[$mobx])return thing[$mobx];fail("production"!=="production");}function getDebugName(thing,property){var named;if(property!==undefined)named=getAtom(thing,property);else if(isObservableObject(thing)||isObservableMap(thing)||isObservableSet(thing))named=getAdministration(thing);else named=getAtom(thing);// valid for arrays as well
return named.name;}var toString=Object.prototype.toString;function deepEqual(a,b){return eq(a,b);}// Copied from https://github.com/jashkenas/underscore/blob/5c237a7c682fb68fd5378203f0bf22dce1624854/underscore.js#L1186-L1289
// Internal recursive comparison function for `isEqual`.
function eq(a,b,aStack,bStack){// Identical objects are equal. `0 === -0`, but they aren't identical.
// See the [Harmony `egal` proposal](http://wiki.ecmascript.org/doku.php?id=harmony:egal).
if(a===b)return a!==0||1/a===1/b;// `null` or `undefined` only equal to itself (strict comparison).
if(a==null||b==null)return false;// `NaN`s are equivalent, but non-reflexive.
if(a!==a)return b!==b;// Exhaust primitive checks
var type=typeof a;if(type!=="function"&&type!=="object"&&typeof b!="object")return false;return deepEq(a,b,aStack,bStack);}// Internal recursive comparison function for `isEqual`.
function deepEq(a,b,aStack,bStack){// Unwrap any wrapped objects.
a=unwrap(a);b=unwrap(b);// Compare `[[Class]]` names.
var className=toString.call(a);if(className!==toString.call(b))return false;switch(className){// Strings, numbers, regular expressions, dates, and booleans are compared by value.
case"[object RegExp]":// RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i')
case"[object String]":// Primitives and their corresponding object wrappers are equivalent; thus, `"5"` is
// equivalent to `new String("5")`.
return""+a===""+b;case"[object Number]":// `NaN`s are equivalent, but non-reflexive.
// Object(NaN) is equivalent to NaN.
if(+a!==+a)return+b!==+b;// An `egal` comparison is performed for other numeric values.
return+a===0?1/+a===1/b:+a===+b;case"[object Date]":case"[object Boolean]":// Coerce dates and booleans to numeric primitive values. Dates are compared by their
// millisecond representations. Note that invalid dates with millisecond representations
// of `NaN` are not equivalent.
return+a===+b;case"[object Symbol]":return typeof Symbol!=="undefined"&&Symbol.valueOf.call(a)===Symbol.valueOf.call(b);}var areArrays=className==="[object Array]";if(!areArrays){if(typeof a!="object"||typeof b!="object")return false;// Objects with different constructors are not equivalent, but `Object`s or `Array`s
// from different frames are.
var aCtor=a.constructor,bCtor=b.constructor;if(aCtor!==bCtor&&!(typeof aCtor==="function"&&aCtor instanceof aCtor&&typeof bCtor==="function"&&bCtor instanceof bCtor)&&"constructor"in a&&"constructor"in b){return false;}}// Assume equality for cyclic structures. The algorithm for detecting cyclic
// structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.
// Initializing stack of traversed objects.
// It's done here since we only need them for objects and arrays comparison.
aStack=aStack||[];bStack=bStack||[];var length=aStack.length;while(length--){// Linear search. Performance is inversely proportional to the number of
// unique nested structures.
if(aStack[length]===a)return bStack[length]===b;}// Add the first object to the stack of traversed objects.
aStack.push(a);bStack.push(b);// Recursively compare objects and arrays.
if(areArrays){// Compare array lengths to determine if a deep comparison is necessary.
length=a.length;if(length!==b.length)return false;// Deep compare the contents, ignoring non-numeric properties.
while(length--){if(!eq(a[length],b[length],aStack,bStack))return false;}}else{// Deep compare objects.
var keys=Object.keys(a);var key=void 0;length=keys.length;// Ensure that both objects contain the same number of properties before comparing deep equality.
if(Object.keys(b).length!==length)return false;while(length--){// Deep compare each member
key=keys[length];if(!(has$1(b,key)&&eq(a[key],b[key],aStack,bStack)))return false;}}// Remove the first object from the stack of traversed objects.
aStack.pop();bStack.pop();return true;}function unwrap(a){if(isObservableArray(a))return a.slice();if(isES6Map(a)||isObservableMap(a))return Array.from(a.entries());if(isES6Set(a)||isObservableSet(a))return Array.from(a.entries());return a;}function has$1(a,key){return Object.prototype.hasOwnProperty.call(a,key);}function makeIterable(iterator){iterator[Symbol.iterator]=self$1;return iterator;}function self$1(){return this;}/*
The only reason for this file to exist is pure horror:
Without it rollup can make the bundling fail at any point in time; when it rolls up the files in the wrong order
it will cause undefined errors (for example because super classes or local variables not being hosted).
With this file that will still happen,
but at least in this file we can magically reorder the imports with trial and error until the build succeeds again.
*/ /**
 * (c) Michel Weststrate 2015 - 2018
 * MIT Licensed
 *
 * Welcome to the mobx sources! To get an global overview of how MobX internally works,
 * this is a good place to start:
 * https://medium.com/@mweststrate/becoming-fully-reactive-an-in-depth-explanation-of-mobservable-55995262a254#.xvbh6qd74
 *
 * Source folders:
 * ===============
 *
 * - api/     Most of the public static methods exposed by the module can be found here.
 * - core/    Implementation of the MobX algorithm; atoms, derivations, reactions, dependency trees, optimizations. Cool stuff can be found here.
 * - types/   All the magic that is need to have observable objects, arrays and values is in this folder. Including the modifiers like `asFlat`.
 * - utils/   Utility stuff.
 *
 */if(typeof Proxy==="undefined"||typeof Symbol==="undefined"){throw new Error("[mobx] MobX 5+ requires Proxy and Symbol objects. If your environment doesn't support Symbol or Proxy objects, please downgrade to MobX 4. For React Native Android, consider upgrading JSCore.");}try{// define process.env if needed
// if this is not a production build in the first place
// (in which case the expression below would be substituted with 'production')
"production";}catch(e){var g=typeof window!=="undefined"?window:global;if(typeof process==="undefined")g.process={};g.process.env={};}(function(){function testCodeMinification(){}if(testCodeMinification.name!=="testCodeMinification"&&"production"!=="production"&&process.env.IGNORE_MOBX_MINIFY_WARNING!=="true"){// trick so it doesn't get replaced
var varName=["process","env","NODE_ENV"].join(".");console.warn("[mobx] you are running a minified build, but '"+varName+"' was not set to 'production' in your bundler. This results in an unnecessarily large and slow bundle");}})();if(typeof __MOBX_DEVTOOLS_GLOBAL_HOOK__==="object"){// See: https://github.com/andykog/mobx-devtools/
__MOBX_DEVTOOLS_GLOBAL_HOOK__.injectMobx({spy:spy,extras:{getDebugName:getDebugName},$mobx:$mobx});}/** ***********************************************************************
 *
 * Copyright 2021 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/const IDEAL_INTERVAL_TIME=1000;class TaskScheduler{constructor(maxInProcess=1,interval=IDEAL_INTERVAL_TIME){this.tasks=new Queue();this.interval=interval;this.timerId=null;this.maxInProcess=maxInProcess;this.processMap=new Map();this.resultMap=new Map();this.inProcess=0;}setProgressMap(key,value){this.processMap.set(key,value);}stopWorking(){clearInterval(this.timerId);this.resultMap.clear();this.processMap.clear();this.timerId=null;}startWorking(){this.timerId=setInterval(()=>__awaiter(this,void 0,void 0,function*(){if(this.inProcess>=this.maxInProcess)return;if(this.tasks.isEmpty()){this.stopWorking();}else{this.inProcess+=1;const{task,key}=this.tasks.dequeue();let result;try{const res=yield task();result=()=>res;}catch(err){result=()=>{throw err;};}this.resultMap.set(key,result);this.setProgressMap(key,true);this.inProcess-=1;}}),this.interval);}doWork(task){return __awaiter(this,void 0,void 0,function*(){const key=uuid();this.setProgressMap(key,false);this.tasks.enqueue({task,key});if(!this.timerId){this.startWorking();}yield when(()=>this.processMap.get(key)||false);return this.resultMap.get(key);});}}__decorate([observable],TaskScheduler.prototype,"processMap",void 0);__decorate([action],TaskScheduler.prototype,"setProgressMap",null);/* eslint-disable-next-line spaced-comment */ /*************************************************************************
 *
 * Copyright 2020 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/function normalizePath(path){// remove leading and trailing slash, if any
const trimmed=path.split('/').filter(segment=>segment).join('/');return trimmed;}/** ***********************************************************************
 *
 * Copyright 2021 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/function fetchUrn(path,context){return __awaiter(this,void 0,void 0,function*(){const storageUrl=SERVICE_ENDPOINTS.hosts[context.environment].storage;const url=`${storageUrl}/${path}`;const request=new FetchRequest(url,context,{method:'HEAD'});const response=yield request.fetch();if(response.status===HTTP_STATUS.NOT_FOUND)return null;const urn=response.headers.get('x-resource-urn');return urn;});}function createFolder(path,context){return __awaiter(this,void 0,void 0,function*(){const storageUrl=SERVICE_ENDPOINTS.hosts[context.environment].storage;const urlPath=`${storageUrl}/${path}`;const requestOptions={method:RequestMethod.PUT,headers:{'Content-Type':MIMETYPES.FOLDER}};const response=yield new FetchRequest(urlPath,context,requestOptions).fetch();const jsonRespone=yield response.json();return jsonRespone.urn;});}function getTempFolderUrn(context){return __awaiter(this,void 0,void 0,function*(){// TODO currently we can only use /temp of CC Storage API as /temp of Repo
// doesn't delete files after 12hrs.
// There is bug logged with acp team SHS-1283 to fix this
const tempRepo='temp';let ccStorageTempFolderUrn=yield fetchUrn(tempRepo,context);if(!ccStorageTempFolderUrn)ccStorageTempFolderUrn=yield createFolder(tempRepo,context);return ccStorageTempFolderUrn;});}var mimeTypes={};var require$$0={"application/1d-interleaved-parityfec":{source:"iana"},"application/3gpdash-qoe-report+xml":{source:"iana",charset:"UTF-8",compressible:true},"application/3gpp-ims+xml":{source:"iana",compressible:true},"application/3gpphal+json":{source:"iana",compressible:true},"application/3gpphalforms+json":{source:"iana",compressible:true},"application/a2l":{source:"iana"},"application/activemessage":{source:"iana"},"application/activity+json":{source:"iana",compressible:true},"application/alto-costmap+json":{source:"iana",compressible:true},"application/alto-costmapfilter+json":{source:"iana",compressible:true},"application/alto-directory+json":{source:"iana",compressible:true},"application/alto-endpointcost+json":{source:"iana",compressible:true},"application/alto-endpointcostparams+json":{source:"iana",compressible:true},"application/alto-endpointprop+json":{source:"iana",compressible:true},"application/alto-endpointpropparams+json":{source:"iana",compressible:true},"application/alto-error+json":{source:"iana",compressible:true},"application/alto-networkmap+json":{source:"iana",compressible:true},"application/alto-networkmapfilter+json":{source:"iana",compressible:true},"application/alto-updatestreamcontrol+json":{source:"iana",compressible:true},"application/alto-updatestreamparams+json":{source:"iana",compressible:true},"application/aml":{source:"iana"},"application/andrew-inset":{source:"iana",extensions:["ez"]},"application/applefile":{source:"iana"},"application/applixware":{source:"apache",extensions:["aw"]},"application/atf":{source:"iana"},"application/atfx":{source:"iana"},"application/atom+xml":{source:"iana",compressible:true,extensions:["atom"]},"application/atomcat+xml":{source:"iana",compressible:true,extensions:["atomcat"]},"application/atomdeleted+xml":{source:"iana",compressible:true,extensions:["atomdeleted"]},"application/atomicmail":{source:"iana"},"application/atomsvc+xml":{source:"iana",compressible:true,extensions:["atomsvc"]},"application/atsc-dwd+xml":{source:"iana",compressible:true,extensions:["dwd"]},"application/atsc-dynamic-event-message":{source:"iana"},"application/atsc-held+xml":{source:"iana",compressible:true,extensions:["held"]},"application/atsc-rdt+json":{source:"iana",compressible:true},"application/atsc-rsat+xml":{source:"iana",compressible:true,extensions:["rsat"]},"application/atxml":{source:"iana"},"application/auth-policy+xml":{source:"iana",compressible:true},"application/bacnet-xdd+zip":{source:"iana",compressible:false},"application/batch-smtp":{source:"iana"},"application/bdoc":{compressible:false,extensions:["bdoc"]},"application/beep+xml":{source:"iana",charset:"UTF-8",compressible:true},"application/calendar+json":{source:"iana",compressible:true},"application/calendar+xml":{source:"iana",compressible:true,extensions:["xcs"]},"application/call-completion":{source:"iana"},"application/cals-1840":{source:"iana"},"application/captive+json":{source:"iana",compressible:true},"application/cbor":{source:"iana"},"application/cbor-seq":{source:"iana"},"application/cccex":{source:"iana"},"application/ccmp+xml":{source:"iana",compressible:true},"application/ccxml+xml":{source:"iana",compressible:true,extensions:["ccxml"]},"application/cdfx+xml":{source:"iana",compressible:true,extensions:["cdfx"]},"application/cdmi-capability":{source:"iana",extensions:["cdmia"]},"application/cdmi-container":{source:"iana",extensions:["cdmic"]},"application/cdmi-domain":{source:"iana",extensions:["cdmid"]},"application/cdmi-object":{source:"iana",extensions:["cdmio"]},"application/cdmi-queue":{source:"iana",extensions:["cdmiq"]},"application/cdni":{source:"iana"},"application/cea":{source:"iana"},"application/cea-2018+xml":{source:"iana",compressible:true},"application/cellml+xml":{source:"iana",compressible:true},"application/cfw":{source:"iana"},"application/clr":{source:"iana"},"application/clue+xml":{source:"iana",compressible:true},"application/clue_info+xml":{source:"iana",compressible:true},"application/cms":{source:"iana"},"application/cnrp+xml":{source:"iana",compressible:true},"application/coap-group+json":{source:"iana",compressible:true},"application/coap-payload":{source:"iana"},"application/commonground":{source:"iana"},"application/conference-info+xml":{source:"iana",compressible:true},"application/cose":{source:"iana"},"application/cose-key":{source:"iana"},"application/cose-key-set":{source:"iana"},"application/cpl+xml":{source:"iana",compressible:true},"application/csrattrs":{source:"iana"},"application/csta+xml":{source:"iana",compressible:true},"application/cstadata+xml":{source:"iana",compressible:true},"application/csvm+json":{source:"iana",compressible:true},"application/cu-seeme":{source:"apache",extensions:["cu"]},"application/cwt":{source:"iana"},"application/cybercash":{source:"iana"},"application/dart":{compressible:true},"application/dash+xml":{source:"iana",compressible:true,extensions:["mpd"]},"application/dashdelta":{source:"iana"},"application/davmount+xml":{source:"iana",compressible:true,extensions:["davmount"]},"application/dca-rft":{source:"iana"},"application/dcd":{source:"iana"},"application/dec-dx":{source:"iana"},"application/dialog-info+xml":{source:"iana",compressible:true},"application/dicom":{source:"iana"},"application/dicom+json":{source:"iana",compressible:true},"application/dicom+xml":{source:"iana",compressible:true},"application/dii":{source:"iana"},"application/dit":{source:"iana"},"application/dns":{source:"iana"},"application/dns+json":{source:"iana",compressible:true},"application/dns-message":{source:"iana"},"application/docbook+xml":{source:"apache",compressible:true,extensions:["dbk"]},"application/dots+cbor":{source:"iana"},"application/dskpp+xml":{source:"iana",compressible:true},"application/dssc+der":{source:"iana",extensions:["dssc"]},"application/dssc+xml":{source:"iana",compressible:true,extensions:["xdssc"]},"application/dvcs":{source:"iana"},"application/ecmascript":{source:"iana",compressible:true,extensions:["es","ecma"]},"application/edi-consent":{source:"iana"},"application/edi-x12":{source:"iana",compressible:false},"application/edifact":{source:"iana",compressible:false},"application/efi":{source:"iana"},"application/elm+json":{source:"iana",charset:"UTF-8",compressible:true},"application/elm+xml":{source:"iana",compressible:true},"application/emergencycalldata.cap+xml":{source:"iana",charset:"UTF-8",compressible:true},"application/emergencycalldata.comment+xml":{source:"iana",compressible:true},"application/emergencycalldata.control+xml":{source:"iana",compressible:true},"application/emergencycalldata.deviceinfo+xml":{source:"iana",compressible:true},"application/emergencycalldata.ecall.msd":{source:"iana"},"application/emergencycalldata.providerinfo+xml":{source:"iana",compressible:true},"application/emergencycalldata.serviceinfo+xml":{source:"iana",compressible:true},"application/emergencycalldata.subscriberinfo+xml":{source:"iana",compressible:true},"application/emergencycalldata.veds+xml":{source:"iana",compressible:true},"application/emma+xml":{source:"iana",compressible:true,extensions:["emma"]},"application/emotionml+xml":{source:"iana",compressible:true,extensions:["emotionml"]},"application/encaprtp":{source:"iana"},"application/epp+xml":{source:"iana",compressible:true},"application/epub+zip":{source:"iana",compressible:false,extensions:["epub"]},"application/eshop":{source:"iana"},"application/exi":{source:"iana",extensions:["exi"]},"application/expect-ct-report+json":{source:"iana",compressible:true},"application/fastinfoset":{source:"iana"},"application/fastsoap":{source:"iana"},"application/fdt+xml":{source:"iana",compressible:true,extensions:["fdt"]},"application/fhir+json":{source:"iana",charset:"UTF-8",compressible:true},"application/fhir+xml":{source:"iana",charset:"UTF-8",compressible:true},"application/fido.trusted-apps+json":{compressible:true},"application/fits":{source:"iana"},"application/flexfec":{source:"iana"},"application/font-sfnt":{source:"iana"},"application/font-tdpfr":{source:"iana",extensions:["pfr"]},"application/font-woff":{source:"iana",compressible:false},"application/framework-attributes+xml":{source:"iana",compressible:true},"application/geo+json":{source:"iana",compressible:true,extensions:["geojson"]},"application/geo+json-seq":{source:"iana"},"application/geopackage+sqlite3":{source:"iana"},"application/geoxacml+xml":{source:"iana",compressible:true},"application/gltf-buffer":{source:"iana"},"application/gml+xml":{source:"iana",compressible:true,extensions:["gml"]},"application/gpx+xml":{source:"apache",compressible:true,extensions:["gpx"]},"application/gxf":{source:"apache",extensions:["gxf"]},"application/gzip":{source:"iana",compressible:false,extensions:["gz"]},"application/h224":{source:"iana"},"application/held+xml":{source:"iana",compressible:true},"application/hjson":{extensions:["hjson"]},"application/http":{source:"iana"},"application/hyperstudio":{source:"iana",extensions:["stk"]},"application/ibe-key-request+xml":{source:"iana",compressible:true},"application/ibe-pkg-reply+xml":{source:"iana",compressible:true},"application/ibe-pp-data":{source:"iana"},"application/iges":{source:"iana"},"application/im-iscomposing+xml":{source:"iana",charset:"UTF-8",compressible:true},"application/index":{source:"iana"},"application/index.cmd":{source:"iana"},"application/index.obj":{source:"iana"},"application/index.response":{source:"iana"},"application/index.vnd":{source:"iana"},"application/inkml+xml":{source:"iana",compressible:true,extensions:["ink","inkml"]},"application/iotp":{source:"iana"},"application/ipfix":{source:"iana",extensions:["ipfix"]},"application/ipp":{source:"iana"},"application/isup":{source:"iana"},"application/its+xml":{source:"iana",compressible:true,extensions:["its"]},"application/java-archive":{source:"apache",compressible:false,extensions:["jar","war","ear"]},"application/java-serialized-object":{source:"apache",compressible:false,extensions:["ser"]},"application/java-vm":{source:"apache",compressible:false,extensions:["class"]},"application/javascript":{source:"iana",charset:"UTF-8",compressible:true,extensions:["js","mjs"]},"application/jf2feed+json":{source:"iana",compressible:true},"application/jose":{source:"iana"},"application/jose+json":{source:"iana",compressible:true},"application/jrd+json":{source:"iana",compressible:true},"application/jscalendar+json":{source:"iana",compressible:true},"application/json":{source:"iana",charset:"UTF-8",compressible:true,extensions:["json","map"]},"application/json-patch+json":{source:"iana",compressible:true},"application/json-seq":{source:"iana"},"application/json5":{extensions:["json5"]},"application/jsonml+json":{source:"apache",compressible:true,extensions:["jsonml"]},"application/jwk+json":{source:"iana",compressible:true},"application/jwk-set+json":{source:"iana",compressible:true},"application/jwt":{source:"iana"},"application/kpml-request+xml":{source:"iana",compressible:true},"application/kpml-response+xml":{source:"iana",compressible:true},"application/ld+json":{source:"iana",compressible:true,extensions:["jsonld"]},"application/lgr+xml":{source:"iana",compressible:true,extensions:["lgr"]},"application/link-format":{source:"iana"},"application/load-control+xml":{source:"iana",compressible:true},"application/lost+xml":{source:"iana",compressible:true,extensions:["lostxml"]},"application/lostsync+xml":{source:"iana",compressible:true},"application/lpf+zip":{source:"iana",compressible:false},"application/lxf":{source:"iana"},"application/mac-binhex40":{source:"iana",extensions:["hqx"]},"application/mac-compactpro":{source:"apache",extensions:["cpt"]},"application/macwriteii":{source:"iana"},"application/mads+xml":{source:"iana",compressible:true,extensions:["mads"]},"application/manifest+json":{charset:"UTF-8",compressible:true,extensions:["webmanifest"]},"application/marc":{source:"iana",extensions:["mrc"]},"application/marcxml+xml":{source:"iana",compressible:true,extensions:["mrcx"]},"application/mathematica":{source:"iana",extensions:["ma","nb","mb"]},"application/mathml+xml":{source:"iana",compressible:true,extensions:["mathml"]},"application/mathml-content+xml":{source:"iana",compressible:true},"application/mathml-presentation+xml":{source:"iana",compressible:true},"application/mbms-associated-procedure-description+xml":{source:"iana",compressible:true},"application/mbms-deregister+xml":{source:"iana",compressible:true},"application/mbms-envelope+xml":{source:"iana",compressible:true},"application/mbms-msk+xml":{source:"iana",compressible:true},"application/mbms-msk-response+xml":{source:"iana",compressible:true},"application/mbms-protection-description+xml":{source:"iana",compressible:true},"application/mbms-reception-report+xml":{source:"iana",compressible:true},"application/mbms-register+xml":{source:"iana",compressible:true},"application/mbms-register-response+xml":{source:"iana",compressible:true},"application/mbms-schedule+xml":{source:"iana",compressible:true},"application/mbms-user-service-description+xml":{source:"iana",compressible:true},"application/mbox":{source:"iana",extensions:["mbox"]},"application/media-policy-dataset+xml":{source:"iana",compressible:true},"application/media_control+xml":{source:"iana",compressible:true},"application/mediaservercontrol+xml":{source:"iana",compressible:true,extensions:["mscml"]},"application/merge-patch+json":{source:"iana",compressible:true},"application/metalink+xml":{source:"apache",compressible:true,extensions:["metalink"]},"application/metalink4+xml":{source:"iana",compressible:true,extensions:["meta4"]},"application/mets+xml":{source:"iana",compressible:true,extensions:["mets"]},"application/mf4":{source:"iana"},"application/mikey":{source:"iana"},"application/mipc":{source:"iana"},"application/mmt-aei+xml":{source:"iana",compressible:true,extensions:["maei"]},"application/mmt-usd+xml":{source:"iana",compressible:true,extensions:["musd"]},"application/mods+xml":{source:"iana",compressible:true,extensions:["mods"]},"application/moss-keys":{source:"iana"},"application/moss-signature":{source:"iana"},"application/mosskey-data":{source:"iana"},"application/mosskey-request":{source:"iana"},"application/mp21":{source:"iana",extensions:["m21","mp21"]},"application/mp4":{source:"iana",extensions:["mp4s","m4p"]},"application/mpeg4-generic":{source:"iana"},"application/mpeg4-iod":{source:"iana"},"application/mpeg4-iod-xmt":{source:"iana"},"application/mrb-consumer+xml":{source:"iana",compressible:true},"application/mrb-publish+xml":{source:"iana",compressible:true},"application/msc-ivr+xml":{source:"iana",charset:"UTF-8",compressible:true},"application/msc-mixer+xml":{source:"iana",charset:"UTF-8",compressible:true},"application/msword":{source:"iana",compressible:false,extensions:["doc","dot"]},"application/mud+json":{source:"iana",compressible:true},"application/multipart-core":{source:"iana"},"application/mxf":{source:"iana",extensions:["mxf"]},"application/n-quads":{source:"iana",extensions:["nq"]},"application/n-triples":{source:"iana",extensions:["nt"]},"application/nasdata":{source:"iana"},"application/news-checkgroups":{source:"iana",charset:"US-ASCII"},"application/news-groupinfo":{source:"iana",charset:"US-ASCII"},"application/news-transmission":{source:"iana"},"application/nlsml+xml":{source:"iana",compressible:true},"application/node":{source:"iana",extensions:["cjs"]},"application/nss":{source:"iana"},"application/oauth-authz-req+jwt":{source:"iana"},"application/ocsp-request":{source:"iana"},"application/ocsp-response":{source:"iana"},"application/octet-stream":{source:"iana",compressible:false,extensions:["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy","exe","dll","deb","dmg","iso","img","msi","msp","msm","buffer"]},"application/oda":{source:"iana",extensions:["oda"]},"application/odm+xml":{source:"iana",compressible:true},"application/odx":{source:"iana"},"application/oebps-package+xml":{source:"iana",compressible:true,extensions:["opf"]},"application/ogg":{source:"iana",compressible:false,extensions:["ogx"]},"application/omdoc+xml":{source:"apache",compressible:true,extensions:["omdoc"]},"application/onenote":{source:"apache",extensions:["onetoc","onetoc2","onetmp","onepkg"]},"application/opc-nodeset+xml":{source:"iana",compressible:true},"application/oscore":{source:"iana"},"application/oxps":{source:"iana",extensions:["oxps"]},"application/p2p-overlay+xml":{source:"iana",compressible:true,extensions:["relo"]},"application/parityfec":{source:"iana"},"application/passport":{source:"iana"},"application/patch-ops-error+xml":{source:"iana",compressible:true,extensions:["xer"]},"application/pdf":{source:"iana",compressible:false,extensions:["pdf"]},"application/pdx":{source:"iana"},"application/pem-certificate-chain":{source:"iana"},"application/pgp-encrypted":{source:"iana",compressible:false,extensions:["pgp"]},"application/pgp-keys":{source:"iana"},"application/pgp-signature":{source:"iana",extensions:["asc","sig"]},"application/pics-rules":{source:"apache",extensions:["prf"]},"application/pidf+xml":{source:"iana",charset:"UTF-8",compressible:true},"application/pidf-diff+xml":{source:"iana",charset:"UTF-8",compressible:true},"application/pkcs10":{source:"iana",extensions:["p10"]},"application/pkcs12":{source:"iana"},"application/pkcs7-mime":{source:"iana",extensions:["p7m","p7c"]},"application/pkcs7-signature":{source:"iana",extensions:["p7s"]},"application/pkcs8":{source:"iana",extensions:["p8"]},"application/pkcs8-encrypted":{source:"iana"},"application/pkix-attr-cert":{source:"iana",extensions:["ac"]},"application/pkix-cert":{source:"iana",extensions:["cer"]},"application/pkix-crl":{source:"iana",extensions:["crl"]},"application/pkix-pkipath":{source:"iana",extensions:["pkipath"]},"application/pkixcmp":{source:"iana",extensions:["pki"]},"application/pls+xml":{source:"iana",compressible:true,extensions:["pls"]},"application/poc-settings+xml":{source:"iana",charset:"UTF-8",compressible:true},"application/postscript":{source:"iana",compressible:true,extensions:["ai","eps","ps"]},"application/ppsp-tracker+json":{source:"iana",compressible:true},"application/problem+json":{source:"iana",compressible:true},"application/problem+xml":{source:"iana",compressible:true},"application/provenance+xml":{source:"iana",compressible:true,extensions:["provx"]},"application/prs.alvestrand.titrax-sheet":{source:"iana"},"application/prs.cww":{source:"iana",extensions:["cww"]},"application/prs.cyn":{source:"iana",charset:"7-BIT"},"application/prs.hpub+zip":{source:"iana",compressible:false},"application/prs.nprend":{source:"iana"},"application/prs.plucker":{source:"iana"},"application/prs.rdf-xml-crypt":{source:"iana"},"application/prs.xsf+xml":{source:"iana",compressible:true},"application/pskc+xml":{source:"iana",compressible:true,extensions:["pskcxml"]},"application/pvd+json":{source:"iana",compressible:true},"application/qsig":{source:"iana"},"application/raml+yaml":{compressible:true,extensions:["raml"]},"application/raptorfec":{source:"iana"},"application/rdap+json":{source:"iana",compressible:true},"application/rdf+xml":{source:"iana",compressible:true,extensions:["rdf","owl"]},"application/reginfo+xml":{source:"iana",compressible:true,extensions:["rif"]},"application/relax-ng-compact-syntax":{source:"iana",extensions:["rnc"]},"application/remote-printing":{source:"iana"},"application/reputon+json":{source:"iana",compressible:true},"application/resource-lists+xml":{source:"iana",compressible:true,extensions:["rl"]},"application/resource-lists-diff+xml":{source:"iana",compressible:true,extensions:["rld"]},"application/rfc+xml":{source:"iana",compressible:true},"application/riscos":{source:"iana"},"application/rlmi+xml":{source:"iana",compressible:true},"application/rls-services+xml":{source:"iana",compressible:true,extensions:["rs"]},"application/route-apd+xml":{source:"iana",compressible:true,extensions:["rapd"]},"application/route-s-tsid+xml":{source:"iana",compressible:true,extensions:["sls"]},"application/route-usd+xml":{source:"iana",compressible:true,extensions:["rusd"]},"application/rpki-ghostbusters":{source:"iana",extensions:["gbr"]},"application/rpki-manifest":{source:"iana",extensions:["mft"]},"application/rpki-publication":{source:"iana"},"application/rpki-roa":{source:"iana",extensions:["roa"]},"application/rpki-updown":{source:"iana"},"application/rsd+xml":{source:"apache",compressible:true,extensions:["rsd"]},"application/rss+xml":{source:"apache",compressible:true,extensions:["rss"]},"application/rtf":{source:"iana",compressible:true,extensions:["rtf"]},"application/rtploopback":{source:"iana"},"application/rtx":{source:"iana"},"application/samlassertion+xml":{source:"iana",compressible:true},"application/samlmetadata+xml":{source:"iana",compressible:true},"application/sarif+json":{source:"iana",compressible:true},"application/sarif-external-properties+json":{source:"iana",compressible:true},"application/sbe":{source:"iana"},"application/sbml+xml":{source:"iana",compressible:true,extensions:["sbml"]},"application/scaip+xml":{source:"iana",compressible:true},"application/scim+json":{source:"iana",compressible:true},"application/scvp-cv-request":{source:"iana",extensions:["scq"]},"application/scvp-cv-response":{source:"iana",extensions:["scs"]},"application/scvp-vp-request":{source:"iana",extensions:["spq"]},"application/scvp-vp-response":{source:"iana",extensions:["spp"]},"application/sdp":{source:"iana",extensions:["sdp"]},"application/secevent+jwt":{source:"iana"},"application/senml+cbor":{source:"iana"},"application/senml+json":{source:"iana",compressible:true},"application/senml+xml":{source:"iana",compressible:true,extensions:["senmlx"]},"application/senml-etch+cbor":{source:"iana"},"application/senml-etch+json":{source:"iana",compressible:true},"application/senml-exi":{source:"iana"},"application/sensml+cbor":{source:"iana"},"application/sensml+json":{source:"iana",compressible:true},"application/sensml+xml":{source:"iana",compressible:true,extensions:["sensmlx"]},"application/sensml-exi":{source:"iana"},"application/sep+xml":{source:"iana",compressible:true},"application/sep-exi":{source:"iana"},"application/session-info":{source:"iana"},"application/set-payment":{source:"iana"},"application/set-payment-initiation":{source:"iana",extensions:["setpay"]},"application/set-registration":{source:"iana"},"application/set-registration-initiation":{source:"iana",extensions:["setreg"]},"application/sgml":{source:"iana"},"application/sgml-open-catalog":{source:"iana"},"application/shf+xml":{source:"iana",compressible:true,extensions:["shf"]},"application/sieve":{source:"iana",extensions:["siv","sieve"]},"application/simple-filter+xml":{source:"iana",compressible:true},"application/simple-message-summary":{source:"iana"},"application/simplesymbolcontainer":{source:"iana"},"application/sipc":{source:"iana"},"application/slate":{source:"iana"},"application/smil":{source:"iana"},"application/smil+xml":{source:"iana",compressible:true,extensions:["smi","smil"]},"application/smpte336m":{source:"iana"},"application/soap+fastinfoset":{source:"iana"},"application/soap+xml":{source:"iana",compressible:true},"application/sparql-query":{source:"iana",extensions:["rq"]},"application/sparql-results+xml":{source:"iana",compressible:true,extensions:["srx"]},"application/spirits-event+xml":{source:"iana",compressible:true},"application/sql":{source:"iana"},"application/srgs":{source:"iana",extensions:["gram"]},"application/srgs+xml":{source:"iana",compressible:true,extensions:["grxml"]},"application/sru+xml":{source:"iana",compressible:true,extensions:["sru"]},"application/ssdl+xml":{source:"apache",compressible:true,extensions:["ssdl"]},"application/ssml+xml":{source:"iana",compressible:true,extensions:["ssml"]},"application/stix+json":{source:"iana",compressible:true},"application/swid+xml":{source:"iana",compressible:true,extensions:["swidtag"]},"application/tamp-apex-update":{source:"iana"},"application/tamp-apex-update-confirm":{source:"iana"},"application/tamp-community-update":{source:"iana"},"application/tamp-community-update-confirm":{source:"iana"},"application/tamp-error":{source:"iana"},"application/tamp-sequence-adjust":{source:"iana"},"application/tamp-sequence-adjust-confirm":{source:"iana"},"application/tamp-status-query":{source:"iana"},"application/tamp-status-response":{source:"iana"},"application/tamp-update":{source:"iana"},"application/tamp-update-confirm":{source:"iana"},"application/tar":{compressible:true},"application/taxii+json":{source:"iana",compressible:true},"application/td+json":{source:"iana",compressible:true},"application/tei+xml":{source:"iana",compressible:true,extensions:["tei","teicorpus"]},"application/tetra_isi":{source:"iana"},"application/thraud+xml":{source:"iana",compressible:true,extensions:["tfi"]},"application/timestamp-query":{source:"iana"},"application/timestamp-reply":{source:"iana"},"application/timestamped-data":{source:"iana",extensions:["tsd"]},"application/tlsrpt+gzip":{source:"iana"},"application/tlsrpt+json":{source:"iana",compressible:true},"application/tnauthlist":{source:"iana"},"application/toml":{compressible:true,extensions:["toml"]},"application/trickle-ice-sdpfrag":{source:"iana"},"application/trig":{source:"iana"},"application/ttml+xml":{source:"iana",compressible:true,extensions:["ttml"]},"application/tve-trigger":{source:"iana"},"application/tzif":{source:"iana"},"application/tzif-leap":{source:"iana"},"application/ubjson":{compressible:false,extensions:["ubj"]},"application/ulpfec":{source:"iana"},"application/urc-grpsheet+xml":{source:"iana",compressible:true},"application/urc-ressheet+xml":{source:"iana",compressible:true,extensions:["rsheet"]},"application/urc-targetdesc+xml":{source:"iana",compressible:true,extensions:["td"]},"application/urc-uisocketdesc+xml":{source:"iana",compressible:true},"application/vcard+json":{source:"iana",compressible:true},"application/vcard+xml":{source:"iana",compressible:true},"application/vemmi":{source:"iana"},"application/vividence.scriptfile":{source:"apache"},"application/vnd.1000minds.decision-model+xml":{source:"iana",compressible:true,extensions:["1km"]},"application/vnd.3gpp-prose+xml":{source:"iana",compressible:true},"application/vnd.3gpp-prose-pc3ch+xml":{source:"iana",compressible:true},"application/vnd.3gpp-v2x-local-service-information":{source:"iana"},"application/vnd.3gpp.5gnas":{source:"iana"},"application/vnd.3gpp.access-transfer-events+xml":{source:"iana",compressible:true},"application/vnd.3gpp.bsf+xml":{source:"iana",compressible:true},"application/vnd.3gpp.gmop+xml":{source:"iana",compressible:true},"application/vnd.3gpp.gtpc":{source:"iana"},"application/vnd.3gpp.interworking-data":{source:"iana"},"application/vnd.3gpp.lpp":{source:"iana"},"application/vnd.3gpp.mc-signalling-ear":{source:"iana"},"application/vnd.3gpp.mcdata-affiliation-command+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mcdata-info+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mcdata-payload":{source:"iana"},"application/vnd.3gpp.mcdata-service-config+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mcdata-signalling":{source:"iana"},"application/vnd.3gpp.mcdata-ue-config+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mcdata-user-profile+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mcptt-affiliation-command+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mcptt-floor-request+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mcptt-info+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mcptt-location-info+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mcptt-mbms-usage-info+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mcptt-service-config+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mcptt-signed+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mcptt-ue-config+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mcptt-ue-init-config+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mcptt-user-profile+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mcvideo-affiliation-command+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mcvideo-affiliation-info+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mcvideo-info+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mcvideo-location-info+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mcvideo-mbms-usage-info+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mcvideo-service-config+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mcvideo-transmission-request+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mcvideo-ue-config+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mcvideo-user-profile+xml":{source:"iana",compressible:true},"application/vnd.3gpp.mid-call+xml":{source:"iana",compressible:true},"application/vnd.3gpp.ngap":{source:"iana"},"application/vnd.3gpp.pfcp":{source:"iana"},"application/vnd.3gpp.pic-bw-large":{source:"iana",extensions:["plb"]},"application/vnd.3gpp.pic-bw-small":{source:"iana",extensions:["psb"]},"application/vnd.3gpp.pic-bw-var":{source:"iana",extensions:["pvb"]},"application/vnd.3gpp.s1ap":{source:"iana"},"application/vnd.3gpp.sms":{source:"iana"},"application/vnd.3gpp.sms+xml":{source:"iana",compressible:true},"application/vnd.3gpp.srvcc-ext+xml":{source:"iana",compressible:true},"application/vnd.3gpp.srvcc-info+xml":{source:"iana",compressible:true},"application/vnd.3gpp.state-and-event-info+xml":{source:"iana",compressible:true},"application/vnd.3gpp.ussd+xml":{source:"iana",compressible:true},"application/vnd.3gpp2.bcmcsinfo+xml":{source:"iana",compressible:true},"application/vnd.3gpp2.sms":{source:"iana"},"application/vnd.3gpp2.tcap":{source:"iana",extensions:["tcap"]},"application/vnd.3lightssoftware.imagescal":{source:"iana"},"application/vnd.3m.post-it-notes":{source:"iana",extensions:["pwn"]},"application/vnd.accpac.simply.aso":{source:"iana",extensions:["aso"]},"application/vnd.accpac.simply.imp":{source:"iana",extensions:["imp"]},"application/vnd.acucobol":{source:"iana",extensions:["acu"]},"application/vnd.acucorp":{source:"iana",extensions:["atc","acutc"]},"application/vnd.adobe.air-application-installer-package+zip":{source:"apache",compressible:false,extensions:["air"]},"application/vnd.adobe.flash.movie":{source:"iana"},"application/vnd.adobe.formscentral.fcdt":{source:"iana",extensions:["fcdt"]},"application/vnd.adobe.fxp":{source:"iana",extensions:["fxp","fxpl"]},"application/vnd.adobe.partial-upload":{source:"iana"},"application/vnd.adobe.xdp+xml":{source:"iana",compressible:true,extensions:["xdp"]},"application/vnd.adobe.xfdf":{source:"iana",extensions:["xfdf"]},"application/vnd.aether.imp":{source:"iana"},"application/vnd.afpc.afplinedata":{source:"iana"},"application/vnd.afpc.afplinedata-pagedef":{source:"iana"},"application/vnd.afpc.cmoca-cmresource":{source:"iana"},"application/vnd.afpc.foca-charset":{source:"iana"},"application/vnd.afpc.foca-codedfont":{source:"iana"},"application/vnd.afpc.foca-codepage":{source:"iana"},"application/vnd.afpc.modca":{source:"iana"},"application/vnd.afpc.modca-cmtable":{source:"iana"},"application/vnd.afpc.modca-formdef":{source:"iana"},"application/vnd.afpc.modca-mediummap":{source:"iana"},"application/vnd.afpc.modca-objectcontainer":{source:"iana"},"application/vnd.afpc.modca-overlay":{source:"iana"},"application/vnd.afpc.modca-pagesegment":{source:"iana"},"application/vnd.ah-barcode":{source:"iana"},"application/vnd.ahead.space":{source:"iana",extensions:["ahead"]},"application/vnd.airzip.filesecure.azf":{source:"iana",extensions:["azf"]},"application/vnd.airzip.filesecure.azs":{source:"iana",extensions:["azs"]},"application/vnd.amadeus+json":{source:"iana",compressible:true},"application/vnd.amazon.ebook":{source:"apache",extensions:["azw"]},"application/vnd.amazon.mobi8-ebook":{source:"iana"},"application/vnd.americandynamics.acc":{source:"iana",extensions:["acc"]},"application/vnd.amiga.ami":{source:"iana",extensions:["ami"]},"application/vnd.amundsen.maze+xml":{source:"iana",compressible:true},"application/vnd.android.ota":{source:"iana"},"application/vnd.android.package-archive":{source:"apache",compressible:false,extensions:["apk"]},"application/vnd.anki":{source:"iana"},"application/vnd.anser-web-certificate-issue-initiation":{source:"iana",extensions:["cii"]},"application/vnd.anser-web-funds-transfer-initiation":{source:"apache",extensions:["fti"]},"application/vnd.antix.game-component":{source:"iana",extensions:["atx"]},"application/vnd.apache.thrift.binary":{source:"iana"},"application/vnd.apache.thrift.compact":{source:"iana"},"application/vnd.apache.thrift.json":{source:"iana"},"application/vnd.api+json":{source:"iana",compressible:true},"application/vnd.aplextor.warrp+json":{source:"iana",compressible:true},"application/vnd.apothekende.reservation+json":{source:"iana",compressible:true},"application/vnd.apple.installer+xml":{source:"iana",compressible:true,extensions:["mpkg"]},"application/vnd.apple.keynote":{source:"iana",extensions:["key"]},"application/vnd.apple.mpegurl":{source:"iana",extensions:["m3u8"]},"application/vnd.apple.numbers":{source:"iana",extensions:["numbers"]},"application/vnd.apple.pages":{source:"iana",extensions:["pages"]},"application/vnd.apple.pkpass":{compressible:false,extensions:["pkpass"]},"application/vnd.arastra.swi":{source:"iana"},"application/vnd.aristanetworks.swi":{source:"iana",extensions:["swi"]},"application/vnd.artisan+json":{source:"iana",compressible:true},"application/vnd.artsquare":{source:"iana"},"application/vnd.astraea-software.iota":{source:"iana",extensions:["iota"]},"application/vnd.audiograph":{source:"iana",extensions:["aep"]},"application/vnd.autopackage":{source:"iana"},"application/vnd.avalon+json":{source:"iana",compressible:true},"application/vnd.avistar+xml":{source:"iana",compressible:true},"application/vnd.balsamiq.bmml+xml":{source:"iana",compressible:true,extensions:["bmml"]},"application/vnd.balsamiq.bmpr":{source:"iana"},"application/vnd.banana-accounting":{source:"iana"},"application/vnd.bbf.usp.error":{source:"iana"},"application/vnd.bbf.usp.msg":{source:"iana"},"application/vnd.bbf.usp.msg+json":{source:"iana",compressible:true},"application/vnd.bekitzur-stech+json":{source:"iana",compressible:true},"application/vnd.bint.med-content":{source:"iana"},"application/vnd.biopax.rdf+xml":{source:"iana",compressible:true},"application/vnd.blink-idb-value-wrapper":{source:"iana"},"application/vnd.blueice.multipass":{source:"iana",extensions:["mpm"]},"application/vnd.bluetooth.ep.oob":{source:"iana"},"application/vnd.bluetooth.le.oob":{source:"iana"},"application/vnd.bmi":{source:"iana",extensions:["bmi"]},"application/vnd.bpf":{source:"iana"},"application/vnd.bpf3":{source:"iana"},"application/vnd.businessobjects":{source:"iana",extensions:["rep"]},"application/vnd.byu.uapi+json":{source:"iana",compressible:true},"application/vnd.cab-jscript":{source:"iana"},"application/vnd.canon-cpdl":{source:"iana"},"application/vnd.canon-lips":{source:"iana"},"application/vnd.capasystems-pg+json":{source:"iana",compressible:true},"application/vnd.cendio.thinlinc.clientconf":{source:"iana"},"application/vnd.century-systems.tcp_stream":{source:"iana"},"application/vnd.chemdraw+xml":{source:"iana",compressible:true,extensions:["cdxml"]},"application/vnd.chess-pgn":{source:"iana"},"application/vnd.chipnuts.karaoke-mmd":{source:"iana",extensions:["mmd"]},"application/vnd.ciedi":{source:"iana"},"application/vnd.cinderella":{source:"iana",extensions:["cdy"]},"application/vnd.cirpack.isdn-ext":{source:"iana"},"application/vnd.citationstyles.style+xml":{source:"iana",compressible:true,extensions:["csl"]},"application/vnd.claymore":{source:"iana",extensions:["cla"]},"application/vnd.cloanto.rp9":{source:"iana",extensions:["rp9"]},"application/vnd.clonk.c4group":{source:"iana",extensions:["c4g","c4d","c4f","c4p","c4u"]},"application/vnd.cluetrust.cartomobile-config":{source:"iana",extensions:["c11amc"]},"application/vnd.cluetrust.cartomobile-config-pkg":{source:"iana",extensions:["c11amz"]},"application/vnd.coffeescript":{source:"iana"},"application/vnd.collabio.xodocuments.document":{source:"iana"},"application/vnd.collabio.xodocuments.document-template":{source:"iana"},"application/vnd.collabio.xodocuments.presentation":{source:"iana"},"application/vnd.collabio.xodocuments.presentation-template":{source:"iana"},"application/vnd.collabio.xodocuments.spreadsheet":{source:"iana"},"application/vnd.collabio.xodocuments.spreadsheet-template":{source:"iana"},"application/vnd.collection+json":{source:"iana",compressible:true},"application/vnd.collection.doc+json":{source:"iana",compressible:true},"application/vnd.collection.next+json":{source:"iana",compressible:true},"application/vnd.comicbook+zip":{source:"iana",compressible:false},"application/vnd.comicbook-rar":{source:"iana"},"application/vnd.commerce-battelle":{source:"iana"},"application/vnd.commonspace":{source:"iana",extensions:["csp"]},"application/vnd.contact.cmsg":{source:"iana",extensions:["cdbcmsg"]},"application/vnd.coreos.ignition+json":{source:"iana",compressible:true},"application/vnd.cosmocaller":{source:"iana",extensions:["cmc"]},"application/vnd.crick.clicker":{source:"iana",extensions:["clkx"]},"application/vnd.crick.clicker.keyboard":{source:"iana",extensions:["clkk"]},"application/vnd.crick.clicker.palette":{source:"iana",extensions:["clkp"]},"application/vnd.crick.clicker.template":{source:"iana",extensions:["clkt"]},"application/vnd.crick.clicker.wordbank":{source:"iana",extensions:["clkw"]},"application/vnd.criticaltools.wbs+xml":{source:"iana",compressible:true,extensions:["wbs"]},"application/vnd.cryptii.pipe+json":{source:"iana",compressible:true},"application/vnd.crypto-shade-file":{source:"iana"},"application/vnd.cryptomator.encrypted":{source:"iana"},"application/vnd.cryptomator.vault":{source:"iana"},"application/vnd.ctc-posml":{source:"iana",extensions:["pml"]},"application/vnd.ctct.ws+xml":{source:"iana",compressible:true},"application/vnd.cups-pdf":{source:"iana"},"application/vnd.cups-postscript":{source:"iana"},"application/vnd.cups-ppd":{source:"iana",extensions:["ppd"]},"application/vnd.cups-raster":{source:"iana"},"application/vnd.cups-raw":{source:"iana"},"application/vnd.curl":{source:"iana"},"application/vnd.curl.car":{source:"apache",extensions:["car"]},"application/vnd.curl.pcurl":{source:"apache",extensions:["pcurl"]},"application/vnd.cyan.dean.root+xml":{source:"iana",compressible:true},"application/vnd.cybank":{source:"iana"},"application/vnd.cyclonedx+json":{source:"iana",compressible:true},"application/vnd.cyclonedx+xml":{source:"iana",compressible:true},"application/vnd.d2l.coursepackage1p0+zip":{source:"iana",compressible:false},"application/vnd.d3m-dataset":{source:"iana"},"application/vnd.d3m-problem":{source:"iana"},"application/vnd.dart":{source:"iana",compressible:true,extensions:["dart"]},"application/vnd.data-vision.rdz":{source:"iana",extensions:["rdz"]},"application/vnd.datapackage+json":{source:"iana",compressible:true},"application/vnd.dataresource+json":{source:"iana",compressible:true},"application/vnd.dbf":{source:"iana",extensions:["dbf"]},"application/vnd.debian.binary-package":{source:"iana"},"application/vnd.dece.data":{source:"iana",extensions:["uvf","uvvf","uvd","uvvd"]},"application/vnd.dece.ttml+xml":{source:"iana",compressible:true,extensions:["uvt","uvvt"]},"application/vnd.dece.unspecified":{source:"iana",extensions:["uvx","uvvx"]},"application/vnd.dece.zip":{source:"iana",extensions:["uvz","uvvz"]},"application/vnd.denovo.fcselayout-link":{source:"iana",extensions:["fe_launch"]},"application/vnd.desmume.movie":{source:"iana"},"application/vnd.dir-bi.plate-dl-nosuffix":{source:"iana"},"application/vnd.dm.delegation+xml":{source:"iana",compressible:true},"application/vnd.dna":{source:"iana",extensions:["dna"]},"application/vnd.document+json":{source:"iana",compressible:true},"application/vnd.dolby.mlp":{source:"apache",extensions:["mlp"]},"application/vnd.dolby.mobile.1":{source:"iana"},"application/vnd.dolby.mobile.2":{source:"iana"},"application/vnd.doremir.scorecloud-binary-document":{source:"iana"},"application/vnd.dpgraph":{source:"iana",extensions:["dpg"]},"application/vnd.dreamfactory":{source:"iana",extensions:["dfac"]},"application/vnd.drive+json":{source:"iana",compressible:true},"application/vnd.ds-keypoint":{source:"apache",extensions:["kpxx"]},"application/vnd.dtg.local":{source:"iana"},"application/vnd.dtg.local.flash":{source:"iana"},"application/vnd.dtg.local.html":{source:"iana"},"application/vnd.dvb.ait":{source:"iana",extensions:["ait"]},"application/vnd.dvb.dvbisl+xml":{source:"iana",compressible:true},"application/vnd.dvb.dvbj":{source:"iana"},"application/vnd.dvb.esgcontainer":{source:"iana"},"application/vnd.dvb.ipdcdftnotifaccess":{source:"iana"},"application/vnd.dvb.ipdcesgaccess":{source:"iana"},"application/vnd.dvb.ipdcesgaccess2":{source:"iana"},"application/vnd.dvb.ipdcesgpdd":{source:"iana"},"application/vnd.dvb.ipdcroaming":{source:"iana"},"application/vnd.dvb.iptv.alfec-base":{source:"iana"},"application/vnd.dvb.iptv.alfec-enhancement":{source:"iana"},"application/vnd.dvb.notif-aggregate-root+xml":{source:"iana",compressible:true},"application/vnd.dvb.notif-container+xml":{source:"iana",compressible:true},"application/vnd.dvb.notif-generic+xml":{source:"iana",compressible:true},"application/vnd.dvb.notif-ia-msglist+xml":{source:"iana",compressible:true},"application/vnd.dvb.notif-ia-registration-request+xml":{source:"iana",compressible:true},"application/vnd.dvb.notif-ia-registration-response+xml":{source:"iana",compressible:true},"application/vnd.dvb.notif-init+xml":{source:"iana",compressible:true},"application/vnd.dvb.pfr":{source:"iana"},"application/vnd.dvb.service":{source:"iana",extensions:["svc"]},"application/vnd.dxr":{source:"iana"},"application/vnd.dynageo":{source:"iana",extensions:["geo"]},"application/vnd.dzr":{source:"iana"},"application/vnd.easykaraoke.cdgdownload":{source:"iana"},"application/vnd.ecdis-update":{source:"iana"},"application/vnd.ecip.rlp":{source:"iana"},"application/vnd.ecowin.chart":{source:"iana",extensions:["mag"]},"application/vnd.ecowin.filerequest":{source:"iana"},"application/vnd.ecowin.fileupdate":{source:"iana"},"application/vnd.ecowin.series":{source:"iana"},"application/vnd.ecowin.seriesrequest":{source:"iana"},"application/vnd.ecowin.seriesupdate":{source:"iana"},"application/vnd.efi.img":{source:"iana"},"application/vnd.efi.iso":{source:"iana"},"application/vnd.emclient.accessrequest+xml":{source:"iana",compressible:true},"application/vnd.enliven":{source:"iana",extensions:["nml"]},"application/vnd.enphase.envoy":{source:"iana"},"application/vnd.eprints.data+xml":{source:"iana",compressible:true},"application/vnd.epson.esf":{source:"iana",extensions:["esf"]},"application/vnd.epson.msf":{source:"iana",extensions:["msf"]},"application/vnd.epson.quickanime":{source:"iana",extensions:["qam"]},"application/vnd.epson.salt":{source:"iana",extensions:["slt"]},"application/vnd.epson.ssf":{source:"iana",extensions:["ssf"]},"application/vnd.ericsson.quickcall":{source:"iana"},"application/vnd.espass-espass+zip":{source:"iana",compressible:false},"application/vnd.eszigno3+xml":{source:"iana",compressible:true,extensions:["es3","et3"]},"application/vnd.etsi.aoc+xml":{source:"iana",compressible:true},"application/vnd.etsi.asic-e+zip":{source:"iana",compressible:false},"application/vnd.etsi.asic-s+zip":{source:"iana",compressible:false},"application/vnd.etsi.cug+xml":{source:"iana",compressible:true},"application/vnd.etsi.iptvcommand+xml":{source:"iana",compressible:true},"application/vnd.etsi.iptvdiscovery+xml":{source:"iana",compressible:true},"application/vnd.etsi.iptvprofile+xml":{source:"iana",compressible:true},"application/vnd.etsi.iptvsad-bc+xml":{source:"iana",compressible:true},"application/vnd.etsi.iptvsad-cod+xml":{source:"iana",compressible:true},"application/vnd.etsi.iptvsad-npvr+xml":{source:"iana",compressible:true},"application/vnd.etsi.iptvservice+xml":{source:"iana",compressible:true},"application/vnd.etsi.iptvsync+xml":{source:"iana",compressible:true},"application/vnd.etsi.iptvueprofile+xml":{source:"iana",compressible:true},"application/vnd.etsi.mcid+xml":{source:"iana",compressible:true},"application/vnd.etsi.mheg5":{source:"iana"},"application/vnd.etsi.overload-control-policy-dataset+xml":{source:"iana",compressible:true},"application/vnd.etsi.pstn+xml":{source:"iana",compressible:true},"application/vnd.etsi.sci+xml":{source:"iana",compressible:true},"application/vnd.etsi.simservs+xml":{source:"iana",compressible:true},"application/vnd.etsi.timestamp-token":{source:"iana"},"application/vnd.etsi.tsl+xml":{source:"iana",compressible:true},"application/vnd.etsi.tsl.der":{source:"iana"},"application/vnd.eudora.data":{source:"iana"},"application/vnd.evolv.ecig.profile":{source:"iana"},"application/vnd.evolv.ecig.settings":{source:"iana"},"application/vnd.evolv.ecig.theme":{source:"iana"},"application/vnd.exstream-empower+zip":{source:"iana",compressible:false},"application/vnd.exstream-package":{source:"iana"},"application/vnd.ezpix-album":{source:"iana",extensions:["ez2"]},"application/vnd.ezpix-package":{source:"iana",extensions:["ez3"]},"application/vnd.f-secure.mobile":{source:"iana"},"application/vnd.fastcopy-disk-image":{source:"iana"},"application/vnd.fdf":{source:"iana",extensions:["fdf"]},"application/vnd.fdsn.mseed":{source:"iana",extensions:["mseed"]},"application/vnd.fdsn.seed":{source:"iana",extensions:["seed","dataless"]},"application/vnd.ffsns":{source:"iana"},"application/vnd.ficlab.flb+zip":{source:"iana",compressible:false},"application/vnd.filmit.zfc":{source:"iana"},"application/vnd.fints":{source:"iana"},"application/vnd.firemonkeys.cloudcell":{source:"iana"},"application/vnd.flographit":{source:"iana",extensions:["gph"]},"application/vnd.fluxtime.clip":{source:"iana",extensions:["ftc"]},"application/vnd.font-fontforge-sfd":{source:"iana"},"application/vnd.framemaker":{source:"iana",extensions:["fm","frame","maker","book"]},"application/vnd.frogans.fnc":{source:"iana",extensions:["fnc"]},"application/vnd.frogans.ltf":{source:"iana",extensions:["ltf"]},"application/vnd.fsc.weblaunch":{source:"iana",extensions:["fsc"]},"application/vnd.fujifilm.fb.docuworks":{source:"iana"},"application/vnd.fujifilm.fb.docuworks.binder":{source:"iana"},"application/vnd.fujifilm.fb.docuworks.container":{source:"iana"},"application/vnd.fujifilm.fb.jfi+xml":{source:"iana",compressible:true},"application/vnd.fujitsu.oasys":{source:"iana",extensions:["oas"]},"application/vnd.fujitsu.oasys2":{source:"iana",extensions:["oa2"]},"application/vnd.fujitsu.oasys3":{source:"iana",extensions:["oa3"]},"application/vnd.fujitsu.oasysgp":{source:"iana",extensions:["fg5"]},"application/vnd.fujitsu.oasysprs":{source:"iana",extensions:["bh2"]},"application/vnd.fujixerox.art-ex":{source:"iana"},"application/vnd.fujixerox.art4":{source:"iana"},"application/vnd.fujixerox.ddd":{source:"iana",extensions:["ddd"]},"application/vnd.fujixerox.docuworks":{source:"iana",extensions:["xdw"]},"application/vnd.fujixerox.docuworks.binder":{source:"iana",extensions:["xbd"]},"application/vnd.fujixerox.docuworks.container":{source:"iana"},"application/vnd.fujixerox.hbpl":{source:"iana"},"application/vnd.fut-misnet":{source:"iana"},"application/vnd.futoin+cbor":{source:"iana"},"application/vnd.futoin+json":{source:"iana",compressible:true},"application/vnd.fuzzysheet":{source:"iana",extensions:["fzs"]},"application/vnd.genomatix.tuxedo":{source:"iana",extensions:["txd"]},"application/vnd.gentics.grd+json":{source:"iana",compressible:true},"application/vnd.geo+json":{source:"iana",compressible:true},"application/vnd.geocube+xml":{source:"iana",compressible:true},"application/vnd.geogebra.file":{source:"iana",extensions:["ggb"]},"application/vnd.geogebra.slides":{source:"iana"},"application/vnd.geogebra.tool":{source:"iana",extensions:["ggt"]},"application/vnd.geometry-explorer":{source:"iana",extensions:["gex","gre"]},"application/vnd.geonext":{source:"iana",extensions:["gxt"]},"application/vnd.geoplan":{source:"iana",extensions:["g2w"]},"application/vnd.geospace":{source:"iana",extensions:["g3w"]},"application/vnd.gerber":{source:"iana"},"application/vnd.globalplatform.card-content-mgt":{source:"iana"},"application/vnd.globalplatform.card-content-mgt-response":{source:"iana"},"application/vnd.gmx":{source:"iana",extensions:["gmx"]},"application/vnd.google-apps.document":{compressible:false,extensions:["gdoc"]},"application/vnd.google-apps.presentation":{compressible:false,extensions:["gslides"]},"application/vnd.google-apps.spreadsheet":{compressible:false,extensions:["gsheet"]},"application/vnd.google-earth.kml+xml":{source:"iana",compressible:true,extensions:["kml"]},"application/vnd.google-earth.kmz":{source:"iana",compressible:false,extensions:["kmz"]},"application/vnd.gov.sk.e-form+xml":{source:"iana",compressible:true},"application/vnd.gov.sk.e-form+zip":{source:"iana",compressible:false},"application/vnd.gov.sk.xmldatacontainer+xml":{source:"iana",compressible:true},"application/vnd.grafeq":{source:"iana",extensions:["gqf","gqs"]},"application/vnd.gridmp":{source:"iana"},"application/vnd.groove-account":{source:"iana",extensions:["gac"]},"application/vnd.groove-help":{source:"iana",extensions:["ghf"]},"application/vnd.groove-identity-message":{source:"iana",extensions:["gim"]},"application/vnd.groove-injector":{source:"iana",extensions:["grv"]},"application/vnd.groove-tool-message":{source:"iana",extensions:["gtm"]},"application/vnd.groove-tool-template":{source:"iana",extensions:["tpl"]},"application/vnd.groove-vcard":{source:"iana",extensions:["vcg"]},"application/vnd.hal+json":{source:"iana",compressible:true},"application/vnd.hal+xml":{source:"iana",compressible:true,extensions:["hal"]},"application/vnd.handheld-entertainment+xml":{source:"iana",compressible:true,extensions:["zmm"]},"application/vnd.hbci":{source:"iana",extensions:["hbci"]},"application/vnd.hc+json":{source:"iana",compressible:true},"application/vnd.hcl-bireports":{source:"iana"},"application/vnd.hdt":{source:"iana"},"application/vnd.heroku+json":{source:"iana",compressible:true},"application/vnd.hhe.lesson-player":{source:"iana",extensions:["les"]},"application/vnd.hp-hpgl":{source:"iana",extensions:["hpgl"]},"application/vnd.hp-hpid":{source:"iana",extensions:["hpid"]},"application/vnd.hp-hps":{source:"iana",extensions:["hps"]},"application/vnd.hp-jlyt":{source:"iana",extensions:["jlt"]},"application/vnd.hp-pcl":{source:"iana",extensions:["pcl"]},"application/vnd.hp-pclxl":{source:"iana",extensions:["pclxl"]},"application/vnd.httphone":{source:"iana"},"application/vnd.hydrostatix.sof-data":{source:"iana",extensions:["sfd-hdstx"]},"application/vnd.hyper+json":{source:"iana",compressible:true},"application/vnd.hyper-item+json":{source:"iana",compressible:true},"application/vnd.hyperdrive+json":{source:"iana",compressible:true},"application/vnd.hzn-3d-crossword":{source:"iana"},"application/vnd.ibm.afplinedata":{source:"iana"},"application/vnd.ibm.electronic-media":{source:"iana"},"application/vnd.ibm.minipay":{source:"iana",extensions:["mpy"]},"application/vnd.ibm.modcap":{source:"iana",extensions:["afp","listafp","list3820"]},"application/vnd.ibm.rights-management":{source:"iana",extensions:["irm"]},"application/vnd.ibm.secure-container":{source:"iana",extensions:["sc"]},"application/vnd.iccprofile":{source:"iana",extensions:["icc","icm"]},"application/vnd.ieee.1905":{source:"iana"},"application/vnd.igloader":{source:"iana",extensions:["igl"]},"application/vnd.imagemeter.folder+zip":{source:"iana",compressible:false},"application/vnd.imagemeter.image+zip":{source:"iana",compressible:false},"application/vnd.immervision-ivp":{source:"iana",extensions:["ivp"]},"application/vnd.immervision-ivu":{source:"iana",extensions:["ivu"]},"application/vnd.ims.imsccv1p1":{source:"iana"},"application/vnd.ims.imsccv1p2":{source:"iana"},"application/vnd.ims.imsccv1p3":{source:"iana"},"application/vnd.ims.lis.v2.result+json":{source:"iana",compressible:true},"application/vnd.ims.lti.v2.toolconsumerprofile+json":{source:"iana",compressible:true},"application/vnd.ims.lti.v2.toolproxy+json":{source:"iana",compressible:true},"application/vnd.ims.lti.v2.toolproxy.id+json":{source:"iana",compressible:true},"application/vnd.ims.lti.v2.toolsettings+json":{source:"iana",compressible:true},"application/vnd.ims.lti.v2.toolsettings.simple+json":{source:"iana",compressible:true},"application/vnd.informedcontrol.rms+xml":{source:"iana",compressible:true},"application/vnd.informix-visionary":{source:"iana"},"application/vnd.infotech.project":{source:"iana"},"application/vnd.infotech.project+xml":{source:"iana",compressible:true},"application/vnd.innopath.wamp.notification":{source:"iana"},"application/vnd.insors.igm":{source:"iana",extensions:["igm"]},"application/vnd.intercon.formnet":{source:"iana",extensions:["xpw","xpx"]},"application/vnd.intergeo":{source:"iana",extensions:["i2g"]},"application/vnd.intertrust.digibox":{source:"iana"},"application/vnd.intertrust.nncp":{source:"iana"},"application/vnd.intu.qbo":{source:"iana",extensions:["qbo"]},"application/vnd.intu.qfx":{source:"iana",extensions:["qfx"]},"application/vnd.iptc.g2.catalogitem+xml":{source:"iana",compressible:true},"application/vnd.iptc.g2.conceptitem+xml":{source:"iana",compressible:true},"application/vnd.iptc.g2.knowledgeitem+xml":{source:"iana",compressible:true},"application/vnd.iptc.g2.newsitem+xml":{source:"iana",compressible:true},"application/vnd.iptc.g2.newsmessage+xml":{source:"iana",compressible:true},"application/vnd.iptc.g2.packageitem+xml":{source:"iana",compressible:true},"application/vnd.iptc.g2.planningitem+xml":{source:"iana",compressible:true},"application/vnd.ipunplugged.rcprofile":{source:"iana",extensions:["rcprofile"]},"application/vnd.irepository.package+xml":{source:"iana",compressible:true,extensions:["irp"]},"application/vnd.is-xpr":{source:"iana",extensions:["xpr"]},"application/vnd.isac.fcs":{source:"iana",extensions:["fcs"]},"application/vnd.iso11783-10+zip":{source:"iana",compressible:false},"application/vnd.jam":{source:"iana",extensions:["jam"]},"application/vnd.japannet-directory-service":{source:"iana"},"application/vnd.japannet-jpnstore-wakeup":{source:"iana"},"application/vnd.japannet-payment-wakeup":{source:"iana"},"application/vnd.japannet-registration":{source:"iana"},"application/vnd.japannet-registration-wakeup":{source:"iana"},"application/vnd.japannet-setstore-wakeup":{source:"iana"},"application/vnd.japannet-verification":{source:"iana"},"application/vnd.japannet-verification-wakeup":{source:"iana"},"application/vnd.jcp.javame.midlet-rms":{source:"iana",extensions:["rms"]},"application/vnd.jisp":{source:"iana",extensions:["jisp"]},"application/vnd.joost.joda-archive":{source:"iana",extensions:["joda"]},"application/vnd.jsk.isdn-ngn":{source:"iana"},"application/vnd.kahootz":{source:"iana",extensions:["ktz","ktr"]},"application/vnd.kde.karbon":{source:"iana",extensions:["karbon"]},"application/vnd.kde.kchart":{source:"iana",extensions:["chrt"]},"application/vnd.kde.kformula":{source:"iana",extensions:["kfo"]},"application/vnd.kde.kivio":{source:"iana",extensions:["flw"]},"application/vnd.kde.kontour":{source:"iana",extensions:["kon"]},"application/vnd.kde.kpresenter":{source:"iana",extensions:["kpr","kpt"]},"application/vnd.kde.kspread":{source:"iana",extensions:["ksp"]},"application/vnd.kde.kword":{source:"iana",extensions:["kwd","kwt"]},"application/vnd.kenameaapp":{source:"iana",extensions:["htke"]},"application/vnd.kidspiration":{source:"iana",extensions:["kia"]},"application/vnd.kinar":{source:"iana",extensions:["kne","knp"]},"application/vnd.koan":{source:"iana",extensions:["skp","skd","skt","skm"]},"application/vnd.kodak-descriptor":{source:"iana",extensions:["sse"]},"application/vnd.las":{source:"iana"},"application/vnd.las.las+json":{source:"iana",compressible:true},"application/vnd.las.las+xml":{source:"iana",compressible:true,extensions:["lasxml"]},"application/vnd.laszip":{source:"iana"},"application/vnd.leap+json":{source:"iana",compressible:true},"application/vnd.liberty-request+xml":{source:"iana",compressible:true},"application/vnd.llamagraphics.life-balance.desktop":{source:"iana",extensions:["lbd"]},"application/vnd.llamagraphics.life-balance.exchange+xml":{source:"iana",compressible:true,extensions:["lbe"]},"application/vnd.logipipe.circuit+zip":{source:"iana",compressible:false},"application/vnd.loom":{source:"iana"},"application/vnd.lotus-1-2-3":{source:"iana",extensions:["123"]},"application/vnd.lotus-approach":{source:"iana",extensions:["apr"]},"application/vnd.lotus-freelance":{source:"iana",extensions:["pre"]},"application/vnd.lotus-notes":{source:"iana",extensions:["nsf"]},"application/vnd.lotus-organizer":{source:"iana",extensions:["org"]},"application/vnd.lotus-screencam":{source:"iana",extensions:["scm"]},"application/vnd.lotus-wordpro":{source:"iana",extensions:["lwp"]},"application/vnd.macports.portpkg":{source:"iana",extensions:["portpkg"]},"application/vnd.mapbox-vector-tile":{source:"iana",extensions:["mvt"]},"application/vnd.marlin.drm.actiontoken+xml":{source:"iana",compressible:true},"application/vnd.marlin.drm.conftoken+xml":{source:"iana",compressible:true},"application/vnd.marlin.drm.license+xml":{source:"iana",compressible:true},"application/vnd.marlin.drm.mdcf":{source:"iana"},"application/vnd.mason+json":{source:"iana",compressible:true},"application/vnd.maxmind.maxmind-db":{source:"iana"},"application/vnd.mcd":{source:"iana",extensions:["mcd"]},"application/vnd.medcalcdata":{source:"iana",extensions:["mc1"]},"application/vnd.mediastation.cdkey":{source:"iana",extensions:["cdkey"]},"application/vnd.meridian-slingshot":{source:"iana"},"application/vnd.mfer":{source:"iana",extensions:["mwf"]},"application/vnd.mfmp":{source:"iana",extensions:["mfm"]},"application/vnd.micro+json":{source:"iana",compressible:true},"application/vnd.micrografx.flo":{source:"iana",extensions:["flo"]},"application/vnd.micrografx.igx":{source:"iana",extensions:["igx"]},"application/vnd.microsoft.portable-executable":{source:"iana"},"application/vnd.microsoft.windows.thumbnail-cache":{source:"iana"},"application/vnd.miele+json":{source:"iana",compressible:true},"application/vnd.mif":{source:"iana",extensions:["mif"]},"application/vnd.minisoft-hp3000-save":{source:"iana"},"application/vnd.mitsubishi.misty-guard.trustweb":{source:"iana"},"application/vnd.mobius.daf":{source:"iana",extensions:["daf"]},"application/vnd.mobius.dis":{source:"iana",extensions:["dis"]},"application/vnd.mobius.mbk":{source:"iana",extensions:["mbk"]},"application/vnd.mobius.mqy":{source:"iana",extensions:["mqy"]},"application/vnd.mobius.msl":{source:"iana",extensions:["msl"]},"application/vnd.mobius.plc":{source:"iana",extensions:["plc"]},"application/vnd.mobius.txf":{source:"iana",extensions:["txf"]},"application/vnd.mophun.application":{source:"iana",extensions:["mpn"]},"application/vnd.mophun.certificate":{source:"iana",extensions:["mpc"]},"application/vnd.motorola.flexsuite":{source:"iana"},"application/vnd.motorola.flexsuite.adsi":{source:"iana"},"application/vnd.motorola.flexsuite.fis":{source:"iana"},"application/vnd.motorola.flexsuite.gotap":{source:"iana"},"application/vnd.motorola.flexsuite.kmr":{source:"iana"},"application/vnd.motorola.flexsuite.ttc":{source:"iana"},"application/vnd.motorola.flexsuite.wem":{source:"iana"},"application/vnd.motorola.iprm":{source:"iana"},"application/vnd.mozilla.xul+xml":{source:"iana",compressible:true,extensions:["xul"]},"application/vnd.ms-3mfdocument":{source:"iana"},"application/vnd.ms-artgalry":{source:"iana",extensions:["cil"]},"application/vnd.ms-asf":{source:"iana"},"application/vnd.ms-cab-compressed":{source:"iana",extensions:["cab"]},"application/vnd.ms-color.iccprofile":{source:"apache"},"application/vnd.ms-excel":{source:"iana",compressible:false,extensions:["xls","xlm","xla","xlc","xlt","xlw"]},"application/vnd.ms-excel.addin.macroenabled.12":{source:"iana",extensions:["xlam"]},"application/vnd.ms-excel.sheet.binary.macroenabled.12":{source:"iana",extensions:["xlsb"]},"application/vnd.ms-excel.sheet.macroenabled.12":{source:"iana",extensions:["xlsm"]},"application/vnd.ms-excel.template.macroenabled.12":{source:"iana",extensions:["xltm"]},"application/vnd.ms-fontobject":{source:"iana",compressible:true,extensions:["eot"]},"application/vnd.ms-htmlhelp":{source:"iana",extensions:["chm"]},"application/vnd.ms-ims":{source:"iana",extensions:["ims"]},"application/vnd.ms-lrm":{source:"iana",extensions:["lrm"]},"application/vnd.ms-office.activex+xml":{source:"iana",compressible:true},"application/vnd.ms-officetheme":{source:"iana",extensions:["thmx"]},"application/vnd.ms-opentype":{source:"apache",compressible:true},"application/vnd.ms-outlook":{compressible:false,extensions:["msg"]},"application/vnd.ms-package.obfuscated-opentype":{source:"apache"},"application/vnd.ms-pki.seccat":{source:"apache",extensions:["cat"]},"application/vnd.ms-pki.stl":{source:"apache",extensions:["stl"]},"application/vnd.ms-playready.initiator+xml":{source:"iana",compressible:true},"application/vnd.ms-powerpoint":{source:"iana",compressible:false,extensions:["ppt","pps","pot"]},"application/vnd.ms-powerpoint.addin.macroenabled.12":{source:"iana",extensions:["ppam"]},"application/vnd.ms-powerpoint.presentation.macroenabled.12":{source:"iana",extensions:["pptm"]},"application/vnd.ms-powerpoint.slide.macroenabled.12":{source:"iana",extensions:["sldm"]},"application/vnd.ms-powerpoint.slideshow.macroenabled.12":{source:"iana",extensions:["ppsm"]},"application/vnd.ms-powerpoint.template.macroenabled.12":{source:"iana",extensions:["potm"]},"application/vnd.ms-printdevicecapabilities+xml":{source:"iana",compressible:true},"application/vnd.ms-printing.printticket+xml":{source:"apache",compressible:true},"application/vnd.ms-printschematicket+xml":{source:"iana",compressible:true},"application/vnd.ms-project":{source:"iana",extensions:["mpp","mpt"]},"application/vnd.ms-tnef":{source:"iana"},"application/vnd.ms-windows.devicepairing":{source:"iana"},"application/vnd.ms-windows.nwprinting.oob":{source:"iana"},"application/vnd.ms-windows.printerpairing":{source:"iana"},"application/vnd.ms-windows.wsd.oob":{source:"iana"},"application/vnd.ms-wmdrm.lic-chlg-req":{source:"iana"},"application/vnd.ms-wmdrm.lic-resp":{source:"iana"},"application/vnd.ms-wmdrm.meter-chlg-req":{source:"iana"},"application/vnd.ms-wmdrm.meter-resp":{source:"iana"},"application/vnd.ms-word.document.macroenabled.12":{source:"iana",extensions:["docm"]},"application/vnd.ms-word.template.macroenabled.12":{source:"iana",extensions:["dotm"]},"application/vnd.ms-works":{source:"iana",extensions:["wps","wks","wcm","wdb"]},"application/vnd.ms-wpl":{source:"iana",extensions:["wpl"]},"application/vnd.ms-xpsdocument":{source:"iana",compressible:false,extensions:["xps"]},"application/vnd.msa-disk-image":{source:"iana"},"application/vnd.mseq":{source:"iana",extensions:["mseq"]},"application/vnd.msign":{source:"iana"},"application/vnd.multiad.creator":{source:"iana"},"application/vnd.multiad.creator.cif":{source:"iana"},"application/vnd.music-niff":{source:"iana"},"application/vnd.musician":{source:"iana",extensions:["mus"]},"application/vnd.muvee.style":{source:"iana",extensions:["msty"]},"application/vnd.mynfc":{source:"iana",extensions:["taglet"]},"application/vnd.ncd.control":{source:"iana"},"application/vnd.ncd.reference":{source:"iana"},"application/vnd.nearst.inv+json":{source:"iana",compressible:true},"application/vnd.nebumind.line":{source:"iana"},"application/vnd.nervana":{source:"iana"},"application/vnd.netfpx":{source:"iana"},"application/vnd.neurolanguage.nlu":{source:"iana",extensions:["nlu"]},"application/vnd.nimn":{source:"iana"},"application/vnd.nintendo.nitro.rom":{source:"iana"},"application/vnd.nintendo.snes.rom":{source:"iana"},"application/vnd.nitf":{source:"iana",extensions:["ntf","nitf"]},"application/vnd.noblenet-directory":{source:"iana",extensions:["nnd"]},"application/vnd.noblenet-sealer":{source:"iana",extensions:["nns"]},"application/vnd.noblenet-web":{source:"iana",extensions:["nnw"]},"application/vnd.nokia.catalogs":{source:"iana"},"application/vnd.nokia.conml+wbxml":{source:"iana"},"application/vnd.nokia.conml+xml":{source:"iana",compressible:true},"application/vnd.nokia.iptv.config+xml":{source:"iana",compressible:true},"application/vnd.nokia.isds-radio-presets":{source:"iana"},"application/vnd.nokia.landmark+wbxml":{source:"iana"},"application/vnd.nokia.landmark+xml":{source:"iana",compressible:true},"application/vnd.nokia.landmarkcollection+xml":{source:"iana",compressible:true},"application/vnd.nokia.n-gage.ac+xml":{source:"iana",compressible:true,extensions:["ac"]},"application/vnd.nokia.n-gage.data":{source:"iana",extensions:["ngdat"]},"application/vnd.nokia.n-gage.symbian.install":{source:"iana",extensions:["n-gage"]},"application/vnd.nokia.ncd":{source:"iana"},"application/vnd.nokia.pcd+wbxml":{source:"iana"},"application/vnd.nokia.pcd+xml":{source:"iana",compressible:true},"application/vnd.nokia.radio-preset":{source:"iana",extensions:["rpst"]},"application/vnd.nokia.radio-presets":{source:"iana",extensions:["rpss"]},"application/vnd.novadigm.edm":{source:"iana",extensions:["edm"]},"application/vnd.novadigm.edx":{source:"iana",extensions:["edx"]},"application/vnd.novadigm.ext":{source:"iana",extensions:["ext"]},"application/vnd.ntt-local.content-share":{source:"iana"},"application/vnd.ntt-local.file-transfer":{source:"iana"},"application/vnd.ntt-local.ogw_remote-access":{source:"iana"},"application/vnd.ntt-local.sip-ta_remote":{source:"iana"},"application/vnd.ntt-local.sip-ta_tcp_stream":{source:"iana"},"application/vnd.oasis.opendocument.chart":{source:"iana",extensions:["odc"]},"application/vnd.oasis.opendocument.chart-template":{source:"iana",extensions:["otc"]},"application/vnd.oasis.opendocument.database":{source:"iana",extensions:["odb"]},"application/vnd.oasis.opendocument.formula":{source:"iana",extensions:["odf"]},"application/vnd.oasis.opendocument.formula-template":{source:"iana",extensions:["odft"]},"application/vnd.oasis.opendocument.graphics":{source:"iana",compressible:false,extensions:["odg"]},"application/vnd.oasis.opendocument.graphics-template":{source:"iana",extensions:["otg"]},"application/vnd.oasis.opendocument.image":{source:"iana",extensions:["odi"]},"application/vnd.oasis.opendocument.image-template":{source:"iana",extensions:["oti"]},"application/vnd.oasis.opendocument.presentation":{source:"iana",compressible:false,extensions:["odp"]},"application/vnd.oasis.opendocument.presentation-template":{source:"iana",extensions:["otp"]},"application/vnd.oasis.opendocument.spreadsheet":{source:"iana",compressible:false,extensions:["ods"]},"application/vnd.oasis.opendocument.spreadsheet-template":{source:"iana",extensions:["ots"]},"application/vnd.oasis.opendocument.text":{source:"iana",compressible:false,extensions:["odt"]},"application/vnd.oasis.opendocument.text-master":{source:"iana",extensions:["odm"]},"application/vnd.oasis.opendocument.text-template":{source:"iana",extensions:["ott"]},"application/vnd.oasis.opendocument.text-web":{source:"iana",extensions:["oth"]},"application/vnd.obn":{source:"iana"},"application/vnd.ocf+cbor":{source:"iana"},"application/vnd.oci.image.manifest.v1+json":{source:"iana",compressible:true},"application/vnd.oftn.l10n+json":{source:"iana",compressible:true},"application/vnd.oipf.contentaccessdownload+xml":{source:"iana",compressible:true},"application/vnd.oipf.contentaccessstreaming+xml":{source:"iana",compressible:true},"application/vnd.oipf.cspg-hexbinary":{source:"iana"},"application/vnd.oipf.dae.svg+xml":{source:"iana",compressible:true},"application/vnd.oipf.dae.xhtml+xml":{source:"iana",compressible:true},"application/vnd.oipf.mippvcontrolmessage+xml":{source:"iana",compressible:true},"application/vnd.oipf.pae.gem":{source:"iana"},"application/vnd.oipf.spdiscovery+xml":{source:"iana",compressible:true},"application/vnd.oipf.spdlist+xml":{source:"iana",compressible:true},"application/vnd.oipf.ueprofile+xml":{source:"iana",compressible:true},"application/vnd.oipf.userprofile+xml":{source:"iana",compressible:true},"application/vnd.olpc-sugar":{source:"iana",extensions:["xo"]},"application/vnd.oma-scws-config":{source:"iana"},"application/vnd.oma-scws-http-request":{source:"iana"},"application/vnd.oma-scws-http-response":{source:"iana"},"application/vnd.oma.bcast.associated-procedure-parameter+xml":{source:"iana",compressible:true},"application/vnd.oma.bcast.drm-trigger+xml":{source:"iana",compressible:true},"application/vnd.oma.bcast.imd+xml":{source:"iana",compressible:true},"application/vnd.oma.bcast.ltkm":{source:"iana"},"application/vnd.oma.bcast.notification+xml":{source:"iana",compressible:true},"application/vnd.oma.bcast.provisioningtrigger":{source:"iana"},"application/vnd.oma.bcast.sgboot":{source:"iana"},"application/vnd.oma.bcast.sgdd+xml":{source:"iana",compressible:true},"application/vnd.oma.bcast.sgdu":{source:"iana"},"application/vnd.oma.bcast.simple-symbol-container":{source:"iana"},"application/vnd.oma.bcast.smartcard-trigger+xml":{source:"iana",compressible:true},"application/vnd.oma.bcast.sprov+xml":{source:"iana",compressible:true},"application/vnd.oma.bcast.stkm":{source:"iana"},"application/vnd.oma.cab-address-book+xml":{source:"iana",compressible:true},"application/vnd.oma.cab-feature-handler+xml":{source:"iana",compressible:true},"application/vnd.oma.cab-pcc+xml":{source:"iana",compressible:true},"application/vnd.oma.cab-subs-invite+xml":{source:"iana",compressible:true},"application/vnd.oma.cab-user-prefs+xml":{source:"iana",compressible:true},"application/vnd.oma.dcd":{source:"iana"},"application/vnd.oma.dcdc":{source:"iana"},"application/vnd.oma.dd2+xml":{source:"iana",compressible:true,extensions:["dd2"]},"application/vnd.oma.drm.risd+xml":{source:"iana",compressible:true},"application/vnd.oma.group-usage-list+xml":{source:"iana",compressible:true},"application/vnd.oma.lwm2m+cbor":{source:"iana"},"application/vnd.oma.lwm2m+json":{source:"iana",compressible:true},"application/vnd.oma.lwm2m+tlv":{source:"iana"},"application/vnd.oma.pal+xml":{source:"iana",compressible:true},"application/vnd.oma.poc.detailed-progress-report+xml":{source:"iana",compressible:true},"application/vnd.oma.poc.final-report+xml":{source:"iana",compressible:true},"application/vnd.oma.poc.groups+xml":{source:"iana",compressible:true},"application/vnd.oma.poc.invocation-descriptor+xml":{source:"iana",compressible:true},"application/vnd.oma.poc.optimized-progress-report+xml":{source:"iana",compressible:true},"application/vnd.oma.push":{source:"iana"},"application/vnd.oma.scidm.messages+xml":{source:"iana",compressible:true},"application/vnd.oma.xcap-directory+xml":{source:"iana",compressible:true},"application/vnd.omads-email+xml":{source:"iana",charset:"UTF-8",compressible:true},"application/vnd.omads-file+xml":{source:"iana",charset:"UTF-8",compressible:true},"application/vnd.omads-folder+xml":{source:"iana",charset:"UTF-8",compressible:true},"application/vnd.omaloc-supl-init":{source:"iana"},"application/vnd.onepager":{source:"iana"},"application/vnd.onepagertamp":{source:"iana"},"application/vnd.onepagertamx":{source:"iana"},"application/vnd.onepagertat":{source:"iana"},"application/vnd.onepagertatp":{source:"iana"},"application/vnd.onepagertatx":{source:"iana"},"application/vnd.openblox.game+xml":{source:"iana",compressible:true,extensions:["obgx"]},"application/vnd.openblox.game-binary":{source:"iana"},"application/vnd.openeye.oeb":{source:"iana"},"application/vnd.openofficeorg.extension":{source:"apache",extensions:["oxt"]},"application/vnd.openstreetmap.data+xml":{source:"iana",compressible:true,extensions:["osm"]},"application/vnd.openxmlformats-officedocument.custom-properties+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.customxmlproperties+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.drawing+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.drawingml.chart+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.extended-properties+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.presentationml.comments+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.presentationml.presentation":{source:"iana",compressible:false,extensions:["pptx"]},"application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.presentationml.presprops+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.presentationml.slide":{source:"iana",extensions:["sldx"]},"application/vnd.openxmlformats-officedocument.presentationml.slide+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.presentationml.slideshow":{source:"iana",extensions:["ppsx"]},"application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.presentationml.tags+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.presentationml.template":{source:"iana",extensions:["potx"]},"application/vnd.openxmlformats-officedocument.presentationml.template.main+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":{source:"iana",compressible:false,extensions:["xlsx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.spreadsheetml.template":{source:"iana",extensions:["xltx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.theme+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.themeoverride+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.vmldrawing":{source:"iana"},"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.wordprocessingml.document":{source:"iana",compressible:false,extensions:["docx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.wordprocessingml.template":{source:"iana",extensions:["dotx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-package.core-properties+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml":{source:"iana",compressible:true},"application/vnd.openxmlformats-package.relationships+xml":{source:"iana",compressible:true},"application/vnd.oracle.resource+json":{source:"iana",compressible:true},"application/vnd.orange.indata":{source:"iana"},"application/vnd.osa.netdeploy":{source:"iana"},"application/vnd.osgeo.mapguide.package":{source:"iana",extensions:["mgp"]},"application/vnd.osgi.bundle":{source:"iana"},"application/vnd.osgi.dp":{source:"iana",extensions:["dp"]},"application/vnd.osgi.subsystem":{source:"iana",extensions:["esa"]},"application/vnd.otps.ct-kip+xml":{source:"iana",compressible:true},"application/vnd.oxli.countgraph":{source:"iana"},"application/vnd.pagerduty+json":{source:"iana",compressible:true},"application/vnd.palm":{source:"iana",extensions:["pdb","pqa","oprc"]},"application/vnd.panoply":{source:"iana"},"application/vnd.paos.xml":{source:"iana"},"application/vnd.patentdive":{source:"iana"},"application/vnd.patientecommsdoc":{source:"iana"},"application/vnd.pawaafile":{source:"iana",extensions:["paw"]},"application/vnd.pcos":{source:"iana"},"application/vnd.pg.format":{source:"iana",extensions:["str"]},"application/vnd.pg.osasli":{source:"iana",extensions:["ei6"]},"application/vnd.piaccess.application-licence":{source:"iana"},"application/vnd.picsel":{source:"iana",extensions:["efif"]},"application/vnd.pmi.widget":{source:"iana",extensions:["wg"]},"application/vnd.poc.group-advertisement+xml":{source:"iana",compressible:true},"application/vnd.pocketlearn":{source:"iana",extensions:["plf"]},"application/vnd.powerbuilder6":{source:"iana",extensions:["pbd"]},"application/vnd.powerbuilder6-s":{source:"iana"},"application/vnd.powerbuilder7":{source:"iana"},"application/vnd.powerbuilder7-s":{source:"iana"},"application/vnd.powerbuilder75":{source:"iana"},"application/vnd.powerbuilder75-s":{source:"iana"},"application/vnd.preminet":{source:"iana"},"application/vnd.previewsystems.box":{source:"iana",extensions:["box"]},"application/vnd.proteus.magazine":{source:"iana",extensions:["mgz"]},"application/vnd.psfs":{source:"iana"},"application/vnd.publishare-delta-tree":{source:"iana",extensions:["qps"]},"application/vnd.pvi.ptid1":{source:"iana",extensions:["ptid"]},"application/vnd.pwg-multiplexed":{source:"iana"},"application/vnd.pwg-xhtml-print+xml":{source:"iana",compressible:true},"application/vnd.qualcomm.brew-app-res":{source:"iana"},"application/vnd.quarantainenet":{source:"iana"},"application/vnd.quark.quarkxpress":{source:"iana",extensions:["qxd","qxt","qwd","qwt","qxl","qxb"]},"application/vnd.quobject-quoxdocument":{source:"iana"},"application/vnd.radisys.moml+xml":{source:"iana",compressible:true},"application/vnd.radisys.msml+xml":{source:"iana",compressible:true},"application/vnd.radisys.msml-audit+xml":{source:"iana",compressible:true},"application/vnd.radisys.msml-audit-conf+xml":{source:"iana",compressible:true},"application/vnd.radisys.msml-audit-conn+xml":{source:"iana",compressible:true},"application/vnd.radisys.msml-audit-dialog+xml":{source:"iana",compressible:true},"application/vnd.radisys.msml-audit-stream+xml":{source:"iana",compressible:true},"application/vnd.radisys.msml-conf+xml":{source:"iana",compressible:true},"application/vnd.radisys.msml-dialog+xml":{source:"iana",compressible:true},"application/vnd.radisys.msml-dialog-base+xml":{source:"iana",compressible:true},"application/vnd.radisys.msml-dialog-fax-detect+xml":{source:"iana",compressible:true},"application/vnd.radisys.msml-dialog-fax-sendrecv+xml":{source:"iana",compressible:true},"application/vnd.radisys.msml-dialog-group+xml":{source:"iana",compressible:true},"application/vnd.radisys.msml-dialog-speech+xml":{source:"iana",compressible:true},"application/vnd.radisys.msml-dialog-transform+xml":{source:"iana",compressible:true},"application/vnd.rainstor.data":{source:"iana"},"application/vnd.rapid":{source:"iana"},"application/vnd.rar":{source:"iana",extensions:["rar"]},"application/vnd.realvnc.bed":{source:"iana",extensions:["bed"]},"application/vnd.recordare.musicxml":{source:"iana",extensions:["mxl"]},"application/vnd.recordare.musicxml+xml":{source:"iana",compressible:true,extensions:["musicxml"]},"application/vnd.renlearn.rlprint":{source:"iana"},"application/vnd.restful+json":{source:"iana",compressible:true},"application/vnd.rig.cryptonote":{source:"iana",extensions:["cryptonote"]},"application/vnd.rim.cod":{source:"apache",extensions:["cod"]},"application/vnd.rn-realmedia":{source:"apache",extensions:["rm"]},"application/vnd.rn-realmedia-vbr":{source:"apache",extensions:["rmvb"]},"application/vnd.route66.link66+xml":{source:"iana",compressible:true,extensions:["link66"]},"application/vnd.rs-274x":{source:"iana"},"application/vnd.ruckus.download":{source:"iana"},"application/vnd.s3sms":{source:"iana"},"application/vnd.sailingtracker.track":{source:"iana",extensions:["st"]},"application/vnd.sar":{source:"iana"},"application/vnd.sbm.cid":{source:"iana"},"application/vnd.sbm.mid2":{source:"iana"},"application/vnd.scribus":{source:"iana"},"application/vnd.sealed.3df":{source:"iana"},"application/vnd.sealed.csf":{source:"iana"},"application/vnd.sealed.doc":{source:"iana"},"application/vnd.sealed.eml":{source:"iana"},"application/vnd.sealed.mht":{source:"iana"},"application/vnd.sealed.net":{source:"iana"},"application/vnd.sealed.ppt":{source:"iana"},"application/vnd.sealed.tiff":{source:"iana"},"application/vnd.sealed.xls":{source:"iana"},"application/vnd.sealedmedia.softseal.html":{source:"iana"},"application/vnd.sealedmedia.softseal.pdf":{source:"iana"},"application/vnd.seemail":{source:"iana",extensions:["see"]},"application/vnd.seis+json":{source:"iana",compressible:true},"application/vnd.sema":{source:"iana",extensions:["sema"]},"application/vnd.semd":{source:"iana",extensions:["semd"]},"application/vnd.semf":{source:"iana",extensions:["semf"]},"application/vnd.shade-save-file":{source:"iana"},"application/vnd.shana.informed.formdata":{source:"iana",extensions:["ifm"]},"application/vnd.shana.informed.formtemplate":{source:"iana",extensions:["itp"]},"application/vnd.shana.informed.interchange":{source:"iana",extensions:["iif"]},"application/vnd.shana.informed.package":{source:"iana",extensions:["ipk"]},"application/vnd.shootproof+json":{source:"iana",compressible:true},"application/vnd.shopkick+json":{source:"iana",compressible:true},"application/vnd.shp":{source:"iana"},"application/vnd.shx":{source:"iana"},"application/vnd.sigrok.session":{source:"iana"},"application/vnd.simtech-mindmapper":{source:"iana",extensions:["twd","twds"]},"application/vnd.siren+json":{source:"iana",compressible:true},"application/vnd.smaf":{source:"iana",extensions:["mmf"]},"application/vnd.smart.notebook":{source:"iana"},"application/vnd.smart.teacher":{source:"iana",extensions:["teacher"]},"application/vnd.snesdev-page-table":{source:"iana"},"application/vnd.software602.filler.form+xml":{source:"iana",compressible:true,extensions:["fo"]},"application/vnd.software602.filler.form-xml-zip":{source:"iana"},"application/vnd.solent.sdkm+xml":{source:"iana",compressible:true,extensions:["sdkm","sdkd"]},"application/vnd.spotfire.dxp":{source:"iana",extensions:["dxp"]},"application/vnd.spotfire.sfs":{source:"iana",extensions:["sfs"]},"application/vnd.sqlite3":{source:"iana"},"application/vnd.sss-cod":{source:"iana"},"application/vnd.sss-dtf":{source:"iana"},"application/vnd.sss-ntf":{source:"iana"},"application/vnd.stardivision.calc":{source:"apache",extensions:["sdc"]},"application/vnd.stardivision.draw":{source:"apache",extensions:["sda"]},"application/vnd.stardivision.impress":{source:"apache",extensions:["sdd"]},"application/vnd.stardivision.math":{source:"apache",extensions:["smf"]},"application/vnd.stardivision.writer":{source:"apache",extensions:["sdw","vor"]},"application/vnd.stardivision.writer-global":{source:"apache",extensions:["sgl"]},"application/vnd.stepmania.package":{source:"iana",extensions:["smzip"]},"application/vnd.stepmania.stepchart":{source:"iana",extensions:["sm"]},"application/vnd.street-stream":{source:"iana"},"application/vnd.sun.wadl+xml":{source:"iana",compressible:true,extensions:["wadl"]},"application/vnd.sun.xml.calc":{source:"apache",extensions:["sxc"]},"application/vnd.sun.xml.calc.template":{source:"apache",extensions:["stc"]},"application/vnd.sun.xml.draw":{source:"apache",extensions:["sxd"]},"application/vnd.sun.xml.draw.template":{source:"apache",extensions:["std"]},"application/vnd.sun.xml.impress":{source:"apache",extensions:["sxi"]},"application/vnd.sun.xml.impress.template":{source:"apache",extensions:["sti"]},"application/vnd.sun.xml.math":{source:"apache",extensions:["sxm"]},"application/vnd.sun.xml.writer":{source:"apache",extensions:["sxw"]},"application/vnd.sun.xml.writer.global":{source:"apache",extensions:["sxg"]},"application/vnd.sun.xml.writer.template":{source:"apache",extensions:["stw"]},"application/vnd.sus-calendar":{source:"iana",extensions:["sus","susp"]},"application/vnd.svd":{source:"iana",extensions:["svd"]},"application/vnd.swiftview-ics":{source:"iana"},"application/vnd.sycle+xml":{source:"iana",compressible:true},"application/vnd.symbian.install":{source:"apache",extensions:["sis","sisx"]},"application/vnd.syncml+xml":{source:"iana",charset:"UTF-8",compressible:true,extensions:["xsm"]},"application/vnd.syncml.dm+wbxml":{source:"iana",charset:"UTF-8",extensions:["bdm"]},"application/vnd.syncml.dm+xml":{source:"iana",charset:"UTF-8",compressible:true,extensions:["xdm"]},"application/vnd.syncml.dm.notification":{source:"iana"},"application/vnd.syncml.dmddf+wbxml":{source:"iana"},"application/vnd.syncml.dmddf+xml":{source:"iana",charset:"UTF-8",compressible:true,extensions:["ddf"]},"application/vnd.syncml.dmtnds+wbxml":{source:"iana"},"application/vnd.syncml.dmtnds+xml":{source:"iana",charset:"UTF-8",compressible:true},"application/vnd.syncml.ds.notification":{source:"iana"},"application/vnd.tableschema+json":{source:"iana",compressible:true},"application/vnd.tao.intent-module-archive":{source:"iana",extensions:["tao"]},"application/vnd.tcpdump.pcap":{source:"iana",extensions:["pcap","cap","dmp"]},"application/vnd.think-cell.ppttc+json":{source:"iana",compressible:true},"application/vnd.tmd.mediaflex.api+xml":{source:"iana",compressible:true},"application/vnd.tml":{source:"iana"},"application/vnd.tmobile-livetv":{source:"iana",extensions:["tmo"]},"application/vnd.tri.onesource":{source:"iana"},"application/vnd.trid.tpt":{source:"iana",extensions:["tpt"]},"application/vnd.triscape.mxs":{source:"iana",extensions:["mxs"]},"application/vnd.trueapp":{source:"iana",extensions:["tra"]},"application/vnd.truedoc":{source:"iana"},"application/vnd.ubisoft.webplayer":{source:"iana"},"application/vnd.ufdl":{source:"iana",extensions:["ufd","ufdl"]},"application/vnd.uiq.theme":{source:"iana",extensions:["utz"]},"application/vnd.umajin":{source:"iana",extensions:["umj"]},"application/vnd.unity":{source:"iana",extensions:["unityweb"]},"application/vnd.uoml+xml":{source:"iana",compressible:true,extensions:["uoml"]},"application/vnd.uplanet.alert":{source:"iana"},"application/vnd.uplanet.alert-wbxml":{source:"iana"},"application/vnd.uplanet.bearer-choice":{source:"iana"},"application/vnd.uplanet.bearer-choice-wbxml":{source:"iana"},"application/vnd.uplanet.cacheop":{source:"iana"},"application/vnd.uplanet.cacheop-wbxml":{source:"iana"},"application/vnd.uplanet.channel":{source:"iana"},"application/vnd.uplanet.channel-wbxml":{source:"iana"},"application/vnd.uplanet.list":{source:"iana"},"application/vnd.uplanet.list-wbxml":{source:"iana"},"application/vnd.uplanet.listcmd":{source:"iana"},"application/vnd.uplanet.listcmd-wbxml":{source:"iana"},"application/vnd.uplanet.signal":{source:"iana"},"application/vnd.uri-map":{source:"iana"},"application/vnd.valve.source.material":{source:"iana"},"application/vnd.vcx":{source:"iana",extensions:["vcx"]},"application/vnd.vd-study":{source:"iana"},"application/vnd.vectorworks":{source:"iana"},"application/vnd.vel+json":{source:"iana",compressible:true},"application/vnd.verimatrix.vcas":{source:"iana"},"application/vnd.veryant.thin":{source:"iana"},"application/vnd.ves.encrypted":{source:"iana"},"application/vnd.vidsoft.vidconference":{source:"iana"},"application/vnd.visio":{source:"iana",extensions:["vsd","vst","vss","vsw"]},"application/vnd.visionary":{source:"iana",extensions:["vis"]},"application/vnd.vividence.scriptfile":{source:"iana"},"application/vnd.vsf":{source:"iana",extensions:["vsf"]},"application/vnd.wap.sic":{source:"iana"},"application/vnd.wap.slc":{source:"iana"},"application/vnd.wap.wbxml":{source:"iana",charset:"UTF-8",extensions:["wbxml"]},"application/vnd.wap.wmlc":{source:"iana",extensions:["wmlc"]},"application/vnd.wap.wmlscriptc":{source:"iana",extensions:["wmlsc"]},"application/vnd.webturbo":{source:"iana",extensions:["wtb"]},"application/vnd.wfa.dpp":{source:"iana"},"application/vnd.wfa.p2p":{source:"iana"},"application/vnd.wfa.wsc":{source:"iana"},"application/vnd.windows.devicepairing":{source:"iana"},"application/vnd.wmc":{source:"iana"},"application/vnd.wmf.bootstrap":{source:"iana"},"application/vnd.wolfram.mathematica":{source:"iana"},"application/vnd.wolfram.mathematica.package":{source:"iana"},"application/vnd.wolfram.player":{source:"iana",extensions:["nbp"]},"application/vnd.wordperfect":{source:"iana",extensions:["wpd"]},"application/vnd.wqd":{source:"iana",extensions:["wqd"]},"application/vnd.wrq-hp3000-labelled":{source:"iana"},"application/vnd.wt.stf":{source:"iana",extensions:["stf"]},"application/vnd.wv.csp+wbxml":{source:"iana"},"application/vnd.wv.csp+xml":{source:"iana",compressible:true},"application/vnd.wv.ssp+xml":{source:"iana",compressible:true},"application/vnd.xacml+json":{source:"iana",compressible:true},"application/vnd.xara":{source:"iana",extensions:["xar"]},"application/vnd.xfdl":{source:"iana",extensions:["xfdl"]},"application/vnd.xfdl.webform":{source:"iana"},"application/vnd.xmi+xml":{source:"iana",compressible:true},"application/vnd.xmpie.cpkg":{source:"iana"},"application/vnd.xmpie.dpkg":{source:"iana"},"application/vnd.xmpie.plan":{source:"iana"},"application/vnd.xmpie.ppkg":{source:"iana"},"application/vnd.xmpie.xlim":{source:"iana"},"application/vnd.yamaha.hv-dic":{source:"iana",extensions:["hvd"]},"application/vnd.yamaha.hv-script":{source:"iana",extensions:["hvs"]},"application/vnd.yamaha.hv-voice":{source:"iana",extensions:["hvp"]},"application/vnd.yamaha.openscoreformat":{source:"iana",extensions:["osf"]},"application/vnd.yamaha.openscoreformat.osfpvg+xml":{source:"iana",compressible:true,extensions:["osfpvg"]},"application/vnd.yamaha.remote-setup":{source:"iana"},"application/vnd.yamaha.smaf-audio":{source:"iana",extensions:["saf"]},"application/vnd.yamaha.smaf-phrase":{source:"iana",extensions:["spf"]},"application/vnd.yamaha.through-ngn":{source:"iana"},"application/vnd.yamaha.tunnel-udpencap":{source:"iana"},"application/vnd.yaoweme":{source:"iana"},"application/vnd.yellowriver-custom-menu":{source:"iana",extensions:["cmp"]},"application/vnd.youtube.yt":{source:"iana"},"application/vnd.zul":{source:"iana",extensions:["zir","zirz"]},"application/vnd.zzazz.deck+xml":{source:"iana",compressible:true,extensions:["zaz"]},"application/voicexml+xml":{source:"iana",compressible:true,extensions:["vxml"]},"application/voucher-cms+json":{source:"iana",compressible:true},"application/vq-rtcpxr":{source:"iana"},"application/wasm":{source:"iana",compressible:true,extensions:["wasm"]},"application/watcherinfo+xml":{source:"iana",compressible:true},"application/webpush-options+json":{source:"iana",compressible:true},"application/whoispp-query":{source:"iana"},"application/whoispp-response":{source:"iana"},"application/widget":{source:"iana",extensions:["wgt"]},"application/winhlp":{source:"apache",extensions:["hlp"]},"application/wita":{source:"iana"},"application/wordperfect5.1":{source:"iana"},"application/wsdl+xml":{source:"iana",compressible:true,extensions:["wsdl"]},"application/wspolicy+xml":{source:"iana",compressible:true,extensions:["wspolicy"]},"application/x-7z-compressed":{source:"apache",compressible:false,extensions:["7z"]},"application/x-abiword":{source:"apache",extensions:["abw"]},"application/x-ace-compressed":{source:"apache",extensions:["ace"]},"application/x-amf":{source:"apache"},"application/x-apple-diskimage":{source:"apache",extensions:["dmg"]},"application/x-arj":{compressible:false,extensions:["arj"]},"application/x-authorware-bin":{source:"apache",extensions:["aab","x32","u32","vox"]},"application/x-authorware-map":{source:"apache",extensions:["aam"]},"application/x-authorware-seg":{source:"apache",extensions:["aas"]},"application/x-bcpio":{source:"apache",extensions:["bcpio"]},"application/x-bdoc":{compressible:false,extensions:["bdoc"]},"application/x-bittorrent":{source:"apache",extensions:["torrent"]},"application/x-blorb":{source:"apache",extensions:["blb","blorb"]},"application/x-bzip":{source:"apache",compressible:false,extensions:["bz"]},"application/x-bzip2":{source:"apache",compressible:false,extensions:["bz2","boz"]},"application/x-cbr":{source:"apache",extensions:["cbr","cba","cbt","cbz","cb7"]},"application/x-cdlink":{source:"apache",extensions:["vcd"]},"application/x-cfs-compressed":{source:"apache",extensions:["cfs"]},"application/x-chat":{source:"apache",extensions:["chat"]},"application/x-chess-pgn":{source:"apache",extensions:["pgn"]},"application/x-chrome-extension":{extensions:["crx"]},"application/x-cocoa":{source:"nginx",extensions:["cco"]},"application/x-compress":{source:"apache"},"application/x-conference":{source:"apache",extensions:["nsc"]},"application/x-cpio":{source:"apache",extensions:["cpio"]},"application/x-csh":{source:"apache",extensions:["csh"]},"application/x-deb":{compressible:false},"application/x-debian-package":{source:"apache",extensions:["deb","udeb"]},"application/x-dgc-compressed":{source:"apache",extensions:["dgc"]},"application/x-director":{source:"apache",extensions:["dir","dcr","dxr","cst","cct","cxt","w3d","fgd","swa"]},"application/x-doom":{source:"apache",extensions:["wad"]},"application/x-dtbncx+xml":{source:"apache",compressible:true,extensions:["ncx"]},"application/x-dtbook+xml":{source:"apache",compressible:true,extensions:["dtb"]},"application/x-dtbresource+xml":{source:"apache",compressible:true,extensions:["res"]},"application/x-dvi":{source:"apache",compressible:false,extensions:["dvi"]},"application/x-envoy":{source:"apache",extensions:["evy"]},"application/x-eva":{source:"apache",extensions:["eva"]},"application/x-font-bdf":{source:"apache",extensions:["bdf"]},"application/x-font-dos":{source:"apache"},"application/x-font-framemaker":{source:"apache"},"application/x-font-ghostscript":{source:"apache",extensions:["gsf"]},"application/x-font-libgrx":{source:"apache"},"application/x-font-linux-psf":{source:"apache",extensions:["psf"]},"application/x-font-pcf":{source:"apache",extensions:["pcf"]},"application/x-font-snf":{source:"apache",extensions:["snf"]},"application/x-font-speedo":{source:"apache"},"application/x-font-sunos-news":{source:"apache"},"application/x-font-type1":{source:"apache",extensions:["pfa","pfb","pfm","afm"]},"application/x-font-vfont":{source:"apache"},"application/x-freearc":{source:"apache",extensions:["arc"]},"application/x-futuresplash":{source:"apache",extensions:["spl"]},"application/x-gca-compressed":{source:"apache",extensions:["gca"]},"application/x-glulx":{source:"apache",extensions:["ulx"]},"application/x-gnumeric":{source:"apache",extensions:["gnumeric"]},"application/x-gramps-xml":{source:"apache",extensions:["gramps"]},"application/x-gtar":{source:"apache",extensions:["gtar"]},"application/x-gzip":{source:"apache"},"application/x-hdf":{source:"apache",extensions:["hdf"]},"application/x-httpd-php":{compressible:true,extensions:["php"]},"application/x-install-instructions":{source:"apache",extensions:["install"]},"application/x-iso9660-image":{source:"apache",extensions:["iso"]},"application/x-java-archive-diff":{source:"nginx",extensions:["jardiff"]},"application/x-java-jnlp-file":{source:"apache",compressible:false,extensions:["jnlp"]},"application/x-javascript":{compressible:true},"application/x-keepass2":{extensions:["kdbx"]},"application/x-latex":{source:"apache",compressible:false,extensions:["latex"]},"application/x-lua-bytecode":{extensions:["luac"]},"application/x-lzh-compressed":{source:"apache",extensions:["lzh","lha"]},"application/x-makeself":{source:"nginx",extensions:["run"]},"application/x-mie":{source:"apache",extensions:["mie"]},"application/x-mobipocket-ebook":{source:"apache",extensions:["prc","mobi"]},"application/x-mpegurl":{compressible:false},"application/x-ms-application":{source:"apache",extensions:["application"]},"application/x-ms-shortcut":{source:"apache",extensions:["lnk"]},"application/x-ms-wmd":{source:"apache",extensions:["wmd"]},"application/x-ms-wmz":{source:"apache",extensions:["wmz"]},"application/x-ms-xbap":{source:"apache",extensions:["xbap"]},"application/x-msaccess":{source:"apache",extensions:["mdb"]},"application/x-msbinder":{source:"apache",extensions:["obd"]},"application/x-mscardfile":{source:"apache",extensions:["crd"]},"application/x-msclip":{source:"apache",extensions:["clp"]},"application/x-msdos-program":{extensions:["exe"]},"application/x-msdownload":{source:"apache",extensions:["exe","dll","com","bat","msi"]},"application/x-msmediaview":{source:"apache",extensions:["mvb","m13","m14"]},"application/x-msmetafile":{source:"apache",extensions:["wmf","wmz","emf","emz"]},"application/x-msmoney":{source:"apache",extensions:["mny"]},"application/x-mspublisher":{source:"apache",extensions:["pub"]},"application/x-msschedule":{source:"apache",extensions:["scd"]},"application/x-msterminal":{source:"apache",extensions:["trm"]},"application/x-mswrite":{source:"apache",extensions:["wri"]},"application/x-netcdf":{source:"apache",extensions:["nc","cdf"]},"application/x-ns-proxy-autoconfig":{compressible:true,extensions:["pac"]},"application/x-nzb":{source:"apache",extensions:["nzb"]},"application/x-perl":{source:"nginx",extensions:["pl","pm"]},"application/x-pilot":{source:"nginx",extensions:["prc","pdb"]},"application/x-pkcs12":{source:"apache",compressible:false,extensions:["p12","pfx"]},"application/x-pkcs7-certificates":{source:"apache",extensions:["p7b","spc"]},"application/x-pkcs7-certreqresp":{source:"apache",extensions:["p7r"]},"application/x-pki-message":{source:"iana"},"application/x-rar-compressed":{source:"apache",compressible:false,extensions:["rar"]},"application/x-redhat-package-manager":{source:"nginx",extensions:["rpm"]},"application/x-research-info-systems":{source:"apache",extensions:["ris"]},"application/x-sea":{source:"nginx",extensions:["sea"]},"application/x-sh":{source:"apache",compressible:true,extensions:["sh"]},"application/x-shar":{source:"apache",extensions:["shar"]},"application/x-shockwave-flash":{source:"apache",compressible:false,extensions:["swf"]},"application/x-silverlight-app":{source:"apache",extensions:["xap"]},"application/x-sql":{source:"apache",extensions:["sql"]},"application/x-stuffit":{source:"apache",compressible:false,extensions:["sit"]},"application/x-stuffitx":{source:"apache",extensions:["sitx"]},"application/x-subrip":{source:"apache",extensions:["srt"]},"application/x-sv4cpio":{source:"apache",extensions:["sv4cpio"]},"application/x-sv4crc":{source:"apache",extensions:["sv4crc"]},"application/x-t3vm-image":{source:"apache",extensions:["t3"]},"application/x-tads":{source:"apache",extensions:["gam"]},"application/x-tar":{source:"apache",compressible:true,extensions:["tar"]},"application/x-tcl":{source:"apache",extensions:["tcl","tk"]},"application/x-tex":{source:"apache",extensions:["tex"]},"application/x-tex-tfm":{source:"apache",extensions:["tfm"]},"application/x-texinfo":{source:"apache",extensions:["texinfo","texi"]},"application/x-tgif":{source:"apache",extensions:["obj"]},"application/x-ustar":{source:"apache",extensions:["ustar"]},"application/x-virtualbox-hdd":{compressible:true,extensions:["hdd"]},"application/x-virtualbox-ova":{compressible:true,extensions:["ova"]},"application/x-virtualbox-ovf":{compressible:true,extensions:["ovf"]},"application/x-virtualbox-vbox":{compressible:true,extensions:["vbox"]},"application/x-virtualbox-vbox-extpack":{compressible:false,extensions:["vbox-extpack"]},"application/x-virtualbox-vdi":{compressible:true,extensions:["vdi"]},"application/x-virtualbox-vhd":{compressible:true,extensions:["vhd"]},"application/x-virtualbox-vmdk":{compressible:true,extensions:["vmdk"]},"application/x-wais-source":{source:"apache",extensions:["src"]},"application/x-web-app-manifest+json":{compressible:true,extensions:["webapp"]},"application/x-www-form-urlencoded":{source:"iana",compressible:true},"application/x-x509-ca-cert":{source:"iana",extensions:["der","crt","pem"]},"application/x-x509-ca-ra-cert":{source:"iana"},"application/x-x509-next-ca-cert":{source:"iana"},"application/x-xfig":{source:"apache",extensions:["fig"]},"application/x-xliff+xml":{source:"apache",compressible:true,extensions:["xlf"]},"application/x-xpinstall":{source:"apache",compressible:false,extensions:["xpi"]},"application/x-xz":{source:"apache",extensions:["xz"]},"application/x-zmachine":{source:"apache",extensions:["z1","z2","z3","z4","z5","z6","z7","z8"]},"application/x400-bp":{source:"iana"},"application/xacml+xml":{source:"iana",compressible:true},"application/xaml+xml":{source:"apache",compressible:true,extensions:["xaml"]},"application/xcap-att+xml":{source:"iana",compressible:true,extensions:["xav"]},"application/xcap-caps+xml":{source:"iana",compressible:true,extensions:["xca"]},"application/xcap-diff+xml":{source:"iana",compressible:true,extensions:["xdf"]},"application/xcap-el+xml":{source:"iana",compressible:true,extensions:["xel"]},"application/xcap-error+xml":{source:"iana",compressible:true},"application/xcap-ns+xml":{source:"iana",compressible:true,extensions:["xns"]},"application/xcon-conference-info+xml":{source:"iana",compressible:true},"application/xcon-conference-info-diff+xml":{source:"iana",compressible:true},"application/xenc+xml":{source:"iana",compressible:true,extensions:["xenc"]},"application/xhtml+xml":{source:"iana",compressible:true,extensions:["xhtml","xht"]},"application/xhtml-voice+xml":{source:"apache",compressible:true},"application/xliff+xml":{source:"iana",compressible:true,extensions:["xlf"]},"application/xml":{source:"iana",compressible:true,extensions:["xml","xsl","xsd","rng"]},"application/xml-dtd":{source:"iana",compressible:true,extensions:["dtd"]},"application/xml-external-parsed-entity":{source:"iana"},"application/xml-patch+xml":{source:"iana",compressible:true},"application/xmpp+xml":{source:"iana",compressible:true},"application/xop+xml":{source:"iana",compressible:true,extensions:["xop"]},"application/xproc+xml":{source:"apache",compressible:true,extensions:["xpl"]},"application/xslt+xml":{source:"iana",compressible:true,extensions:["xsl","xslt"]},"application/xspf+xml":{source:"apache",compressible:true,extensions:["xspf"]},"application/xv+xml":{source:"iana",compressible:true,extensions:["mxml","xhvml","xvml","xvm"]},"application/yang":{source:"iana",extensions:["yang"]},"application/yang-data+json":{source:"iana",compressible:true},"application/yang-data+xml":{source:"iana",compressible:true},"application/yang-patch+json":{source:"iana",compressible:true},"application/yang-patch+xml":{source:"iana",compressible:true},"application/yin+xml":{source:"iana",compressible:true,extensions:["yin"]},"application/zip":{source:"iana",compressible:false,extensions:["zip"]},"application/zlib":{source:"iana"},"application/zstd":{source:"iana"},"audio/1d-interleaved-parityfec":{source:"iana"},"audio/32kadpcm":{source:"iana"},"audio/3gpp":{source:"iana",compressible:false,extensions:["3gpp"]},"audio/3gpp2":{source:"iana"},"audio/aac":{source:"iana"},"audio/ac3":{source:"iana"},"audio/adpcm":{source:"apache",extensions:["adp"]},"audio/amr":{source:"iana",extensions:["amr"]},"audio/amr-wb":{source:"iana"},"audio/amr-wb+":{source:"iana"},"audio/aptx":{source:"iana"},"audio/asc":{source:"iana"},"audio/atrac-advanced-lossless":{source:"iana"},"audio/atrac-x":{source:"iana"},"audio/atrac3":{source:"iana"},"audio/basic":{source:"iana",compressible:false,extensions:["au","snd"]},"audio/bv16":{source:"iana"},"audio/bv32":{source:"iana"},"audio/clearmode":{source:"iana"},"audio/cn":{source:"iana"},"audio/dat12":{source:"iana"},"audio/dls":{source:"iana"},"audio/dsr-es201108":{source:"iana"},"audio/dsr-es202050":{source:"iana"},"audio/dsr-es202211":{source:"iana"},"audio/dsr-es202212":{source:"iana"},"audio/dv":{source:"iana"},"audio/dvi4":{source:"iana"},"audio/eac3":{source:"iana"},"audio/encaprtp":{source:"iana"},"audio/evrc":{source:"iana"},"audio/evrc-qcp":{source:"iana"},"audio/evrc0":{source:"iana"},"audio/evrc1":{source:"iana"},"audio/evrcb":{source:"iana"},"audio/evrcb0":{source:"iana"},"audio/evrcb1":{source:"iana"},"audio/evrcnw":{source:"iana"},"audio/evrcnw0":{source:"iana"},"audio/evrcnw1":{source:"iana"},"audio/evrcwb":{source:"iana"},"audio/evrcwb0":{source:"iana"},"audio/evrcwb1":{source:"iana"},"audio/evs":{source:"iana"},"audio/flexfec":{source:"iana"},"audio/fwdred":{source:"iana"},"audio/g711-0":{source:"iana"},"audio/g719":{source:"iana"},"audio/g722":{source:"iana"},"audio/g7221":{source:"iana"},"audio/g723":{source:"iana"},"audio/g726-16":{source:"iana"},"audio/g726-24":{source:"iana"},"audio/g726-32":{source:"iana"},"audio/g726-40":{source:"iana"},"audio/g728":{source:"iana"},"audio/g729":{source:"iana"},"audio/g7291":{source:"iana"},"audio/g729d":{source:"iana"},"audio/g729e":{source:"iana"},"audio/gsm":{source:"iana"},"audio/gsm-efr":{source:"iana"},"audio/gsm-hr-08":{source:"iana"},"audio/ilbc":{source:"iana"},"audio/ip-mr_v2.5":{source:"iana"},"audio/isac":{source:"apache"},"audio/l16":{source:"iana"},"audio/l20":{source:"iana"},"audio/l24":{source:"iana",compressible:false},"audio/l8":{source:"iana"},"audio/lpc":{source:"iana"},"audio/melp":{source:"iana"},"audio/melp1200":{source:"iana"},"audio/melp2400":{source:"iana"},"audio/melp600":{source:"iana"},"audio/mhas":{source:"iana"},"audio/midi":{source:"apache",extensions:["mid","midi","kar","rmi"]},"audio/mobile-xmf":{source:"iana",extensions:["mxmf"]},"audio/mp3":{compressible:false,extensions:["mp3"]},"audio/mp4":{source:"iana",compressible:false,extensions:["m4a","mp4a"]},"audio/mp4a-latm":{source:"iana"},"audio/mpa":{source:"iana"},"audio/mpa-robust":{source:"iana"},"audio/mpeg":{source:"iana",compressible:false,extensions:["mpga","mp2","mp2a","mp3","m2a","m3a"]},"audio/mpeg4-generic":{source:"iana"},"audio/musepack":{source:"apache"},"audio/ogg":{source:"iana",compressible:false,extensions:["oga","ogg","spx","opus"]},"audio/opus":{source:"iana"},"audio/parityfec":{source:"iana"},"audio/pcma":{source:"iana"},"audio/pcma-wb":{source:"iana"},"audio/pcmu":{source:"iana"},"audio/pcmu-wb":{source:"iana"},"audio/prs.sid":{source:"iana"},"audio/qcelp":{source:"iana"},"audio/raptorfec":{source:"iana"},"audio/red":{source:"iana"},"audio/rtp-enc-aescm128":{source:"iana"},"audio/rtp-midi":{source:"iana"},"audio/rtploopback":{source:"iana"},"audio/rtx":{source:"iana"},"audio/s3m":{source:"apache",extensions:["s3m"]},"audio/scip":{source:"iana"},"audio/silk":{source:"apache",extensions:["sil"]},"audio/smv":{source:"iana"},"audio/smv-qcp":{source:"iana"},"audio/smv0":{source:"iana"},"audio/sofa":{source:"iana"},"audio/sp-midi":{source:"iana"},"audio/speex":{source:"iana"},"audio/t140c":{source:"iana"},"audio/t38":{source:"iana"},"audio/telephone-event":{source:"iana"},"audio/tetra_acelp":{source:"iana"},"audio/tetra_acelp_bb":{source:"iana"},"audio/tone":{source:"iana"},"audio/tsvcis":{source:"iana"},"audio/uemclip":{source:"iana"},"audio/ulpfec":{source:"iana"},"audio/usac":{source:"iana"},"audio/vdvi":{source:"iana"},"audio/vmr-wb":{source:"iana"},"audio/vnd.3gpp.iufp":{source:"iana"},"audio/vnd.4sb":{source:"iana"},"audio/vnd.audiokoz":{source:"iana"},"audio/vnd.celp":{source:"iana"},"audio/vnd.cisco.nse":{source:"iana"},"audio/vnd.cmles.radio-events":{source:"iana"},"audio/vnd.cns.anp1":{source:"iana"},"audio/vnd.cns.inf1":{source:"iana"},"audio/vnd.dece.audio":{source:"iana",extensions:["uva","uvva"]},"audio/vnd.digital-winds":{source:"iana",extensions:["eol"]},"audio/vnd.dlna.adts":{source:"iana"},"audio/vnd.dolby.heaac.1":{source:"iana"},"audio/vnd.dolby.heaac.2":{source:"iana"},"audio/vnd.dolby.mlp":{source:"iana"},"audio/vnd.dolby.mps":{source:"iana"},"audio/vnd.dolby.pl2":{source:"iana"},"audio/vnd.dolby.pl2x":{source:"iana"},"audio/vnd.dolby.pl2z":{source:"iana"},"audio/vnd.dolby.pulse.1":{source:"iana"},"audio/vnd.dra":{source:"iana",extensions:["dra"]},"audio/vnd.dts":{source:"iana",extensions:["dts"]},"audio/vnd.dts.hd":{source:"iana",extensions:["dtshd"]},"audio/vnd.dts.uhd":{source:"iana"},"audio/vnd.dvb.file":{source:"iana"},"audio/vnd.everad.plj":{source:"iana"},"audio/vnd.hns.audio":{source:"iana"},"audio/vnd.lucent.voice":{source:"iana",extensions:["lvp"]},"audio/vnd.ms-playready.media.pya":{source:"iana",extensions:["pya"]},"audio/vnd.nokia.mobile-xmf":{source:"iana"},"audio/vnd.nortel.vbk":{source:"iana"},"audio/vnd.nuera.ecelp4800":{source:"iana",extensions:["ecelp4800"]},"audio/vnd.nuera.ecelp7470":{source:"iana",extensions:["ecelp7470"]},"audio/vnd.nuera.ecelp9600":{source:"iana",extensions:["ecelp9600"]},"audio/vnd.octel.sbc":{source:"iana"},"audio/vnd.presonus.multitrack":{source:"iana"},"audio/vnd.qcelp":{source:"iana"},"audio/vnd.rhetorex.32kadpcm":{source:"iana"},"audio/vnd.rip":{source:"iana",extensions:["rip"]},"audio/vnd.rn-realaudio":{compressible:false},"audio/vnd.sealedmedia.softseal.mpeg":{source:"iana"},"audio/vnd.vmx.cvsd":{source:"iana"},"audio/vnd.wave":{compressible:false},"audio/vorbis":{source:"iana",compressible:false},"audio/vorbis-config":{source:"iana"},"audio/wav":{compressible:false,extensions:["wav"]},"audio/wave":{compressible:false,extensions:["wav"]},"audio/webm":{source:"apache",compressible:false,extensions:["weba"]},"audio/x-aac":{source:"apache",compressible:false,extensions:["aac"]},"audio/x-aiff":{source:"apache",extensions:["aif","aiff","aifc"]},"audio/x-caf":{source:"apache",compressible:false,extensions:["caf"]},"audio/x-flac":{source:"apache",extensions:["flac"]},"audio/x-m4a":{source:"nginx",extensions:["m4a"]},"audio/x-matroska":{source:"apache",extensions:["mka"]},"audio/x-mpegurl":{source:"apache",extensions:["m3u"]},"audio/x-ms-wax":{source:"apache",extensions:["wax"]},"audio/x-ms-wma":{source:"apache",extensions:["wma"]},"audio/x-pn-realaudio":{source:"apache",extensions:["ram","ra"]},"audio/x-pn-realaudio-plugin":{source:"apache",extensions:["rmp"]},"audio/x-realaudio":{source:"nginx",extensions:["ra"]},"audio/x-tta":{source:"apache"},"audio/x-wav":{source:"apache",extensions:["wav"]},"audio/xm":{source:"apache",extensions:["xm"]},"chemical/x-cdx":{source:"apache",extensions:["cdx"]},"chemical/x-cif":{source:"apache",extensions:["cif"]},"chemical/x-cmdf":{source:"apache",extensions:["cmdf"]},"chemical/x-cml":{source:"apache",extensions:["cml"]},"chemical/x-csml":{source:"apache",extensions:["csml"]},"chemical/x-pdb":{source:"apache"},"chemical/x-xyz":{source:"apache",extensions:["xyz"]},"font/collection":{source:"iana",extensions:["ttc"]},"font/otf":{source:"iana",compressible:true,extensions:["otf"]},"font/sfnt":{source:"iana"},"font/ttf":{source:"iana",compressible:true,extensions:["ttf"]},"font/woff":{source:"iana",extensions:["woff"]},"font/woff2":{source:"iana",extensions:["woff2"]},"image/aces":{source:"iana",extensions:["exr"]},"image/apng":{compressible:false,extensions:["apng"]},"image/avci":{source:"iana"},"image/avcs":{source:"iana"},"image/avif":{source:"iana",compressible:false,extensions:["avif"]},"image/bmp":{source:"iana",compressible:true,extensions:["bmp"]},"image/cgm":{source:"iana",extensions:["cgm"]},"image/dicom-rle":{source:"iana",extensions:["drle"]},"image/emf":{source:"iana",extensions:["emf"]},"image/fits":{source:"iana",extensions:["fits"]},"image/g3fax":{source:"iana",extensions:["g3"]},"image/gif":{source:"iana",compressible:false,extensions:["gif"]},"image/heic":{source:"iana",extensions:["heic"]},"image/heic-sequence":{source:"iana",extensions:["heics"]},"image/heif":{source:"iana",extensions:["heif"]},"image/heif-sequence":{source:"iana",extensions:["heifs"]},"image/hej2k":{source:"iana",extensions:["hej2"]},"image/hsj2":{source:"iana",extensions:["hsj2"]},"image/ief":{source:"iana",extensions:["ief"]},"image/jls":{source:"iana",extensions:["jls"]},"image/jp2":{source:"iana",compressible:false,extensions:["jp2","jpg2"]},"image/jpeg":{source:"iana",compressible:false,extensions:["jpeg","jpg","jpe"]},"image/jph":{source:"iana",extensions:["jph"]},"image/jphc":{source:"iana",extensions:["jhc"]},"image/jpm":{source:"iana",compressible:false,extensions:["jpm"]},"image/jpx":{source:"iana",compressible:false,extensions:["jpx","jpf"]},"image/jxr":{source:"iana",extensions:["jxr"]},"image/jxra":{source:"iana",extensions:["jxra"]},"image/jxrs":{source:"iana",extensions:["jxrs"]},"image/jxs":{source:"iana",extensions:["jxs"]},"image/jxsc":{source:"iana",extensions:["jxsc"]},"image/jxsi":{source:"iana",extensions:["jxsi"]},"image/jxss":{source:"iana",extensions:["jxss"]},"image/ktx":{source:"iana",extensions:["ktx"]},"image/ktx2":{source:"iana",extensions:["ktx2"]},"image/naplps":{source:"iana"},"image/pjpeg":{compressible:false},"image/png":{source:"iana",compressible:false,extensions:["png"]},"image/prs.btif":{source:"iana",extensions:["btif"]},"image/prs.pti":{source:"iana",extensions:["pti"]},"image/pwg-raster":{source:"iana"},"image/sgi":{source:"apache",extensions:["sgi"]},"image/svg+xml":{source:"iana",compressible:true,extensions:["svg","svgz"]},"image/t38":{source:"iana",extensions:["t38"]},"image/tiff":{source:"iana",compressible:false,extensions:["tif","tiff"]},"image/tiff-fx":{source:"iana",extensions:["tfx"]},"image/vnd.adobe.photoshop":{source:"iana",compressible:true,extensions:["psd"]},"image/vnd.airzip.accelerator.azv":{source:"iana",extensions:["azv"]},"image/vnd.cns.inf2":{source:"iana"},"image/vnd.dece.graphic":{source:"iana",extensions:["uvi","uvvi","uvg","uvvg"]},"image/vnd.djvu":{source:"iana",extensions:["djvu","djv"]},"image/vnd.dvb.subtitle":{source:"iana",extensions:["sub"]},"image/vnd.dwg":{source:"iana",extensions:["dwg"]},"image/vnd.dxf":{source:"iana",extensions:["dxf"]},"image/vnd.fastbidsheet":{source:"iana",extensions:["fbs"]},"image/vnd.fpx":{source:"iana",extensions:["fpx"]},"image/vnd.fst":{source:"iana",extensions:["fst"]},"image/vnd.fujixerox.edmics-mmr":{source:"iana",extensions:["mmr"]},"image/vnd.fujixerox.edmics-rlc":{source:"iana",extensions:["rlc"]},"image/vnd.globalgraphics.pgb":{source:"iana"},"image/vnd.microsoft.icon":{source:"iana",extensions:["ico"]},"image/vnd.mix":{source:"iana"},"image/vnd.mozilla.apng":{source:"iana"},"image/vnd.ms-dds":{extensions:["dds"]},"image/vnd.ms-modi":{source:"iana",extensions:["mdi"]},"image/vnd.ms-photo":{source:"apache",extensions:["wdp"]},"image/vnd.net-fpx":{source:"iana",extensions:["npx"]},"image/vnd.pco.b16":{source:"iana",extensions:["b16"]},"image/vnd.radiance":{source:"iana"},"image/vnd.sealed.png":{source:"iana"},"image/vnd.sealedmedia.softseal.gif":{source:"iana"},"image/vnd.sealedmedia.softseal.jpg":{source:"iana"},"image/vnd.svf":{source:"iana"},"image/vnd.tencent.tap":{source:"iana",extensions:["tap"]},"image/vnd.valve.source.texture":{source:"iana",extensions:["vtf"]},"image/vnd.wap.wbmp":{source:"iana",extensions:["wbmp"]},"image/vnd.xiff":{source:"iana",extensions:["xif"]},"image/vnd.zbrush.pcx":{source:"iana",extensions:["pcx"]},"image/webp":{source:"apache",extensions:["webp"]},"image/wmf":{source:"iana",extensions:["wmf"]},"image/x-3ds":{source:"apache",extensions:["3ds"]},"image/x-cmu-raster":{source:"apache",extensions:["ras"]},"image/x-cmx":{source:"apache",extensions:["cmx"]},"image/x-freehand":{source:"apache",extensions:["fh","fhc","fh4","fh5","fh7"]},"image/x-icon":{source:"apache",compressible:true,extensions:["ico"]},"image/x-jng":{source:"nginx",extensions:["jng"]},"image/x-mrsid-image":{source:"apache",extensions:["sid"]},"image/x-ms-bmp":{source:"nginx",compressible:true,extensions:["bmp"]},"image/x-pcx":{source:"apache",extensions:["pcx"]},"image/x-pict":{source:"apache",extensions:["pic","pct"]},"image/x-portable-anymap":{source:"apache",extensions:["pnm"]},"image/x-portable-bitmap":{source:"apache",extensions:["pbm"]},"image/x-portable-graymap":{source:"apache",extensions:["pgm"]},"image/x-portable-pixmap":{source:"apache",extensions:["ppm"]},"image/x-rgb":{source:"apache",extensions:["rgb"]},"image/x-tga":{source:"apache",extensions:["tga"]},"image/x-xbitmap":{source:"apache",extensions:["xbm"]},"image/x-xcf":{compressible:false},"image/x-xpixmap":{source:"apache",extensions:["xpm"]},"image/x-xwindowdump":{source:"apache",extensions:["xwd"]},"message/cpim":{source:"iana"},"message/delivery-status":{source:"iana"},"message/disposition-notification":{source:"iana",extensions:["disposition-notification"]},"message/external-body":{source:"iana"},"message/feedback-report":{source:"iana"},"message/global":{source:"iana",extensions:["u8msg"]},"message/global-delivery-status":{source:"iana",extensions:["u8dsn"]},"message/global-disposition-notification":{source:"iana",extensions:["u8mdn"]},"message/global-headers":{source:"iana",extensions:["u8hdr"]},"message/http":{source:"iana",compressible:false},"message/imdn+xml":{source:"iana",compressible:true},"message/news":{source:"iana"},"message/partial":{source:"iana",compressible:false},"message/rfc822":{source:"iana",compressible:true,extensions:["eml","mime"]},"message/s-http":{source:"iana"},"message/sip":{source:"iana"},"message/sipfrag":{source:"iana"},"message/tracking-status":{source:"iana"},"message/vnd.si.simp":{source:"iana"},"message/vnd.wfa.wsc":{source:"iana",extensions:["wsc"]},"model/3mf":{source:"iana",extensions:["3mf"]},"model/e57":{source:"iana"},"model/gltf+json":{source:"iana",compressible:true,extensions:["gltf"]},"model/gltf-binary":{source:"iana",compressible:true,extensions:["glb"]},"model/iges":{source:"iana",compressible:false,extensions:["igs","iges"]},"model/mesh":{source:"iana",compressible:false,extensions:["msh","mesh","silo"]},"model/mtl":{source:"iana",extensions:["mtl"]},"model/obj":{source:"iana",extensions:["obj"]},"model/stl":{source:"iana",extensions:["stl"]},"model/vnd.collada+xml":{source:"iana",compressible:true,extensions:["dae"]},"model/vnd.dwf":{source:"iana",extensions:["dwf"]},"model/vnd.flatland.3dml":{source:"iana"},"model/vnd.gdl":{source:"iana",extensions:["gdl"]},"model/vnd.gs-gdl":{source:"apache"},"model/vnd.gs.gdl":{source:"iana"},"model/vnd.gtw":{source:"iana",extensions:["gtw"]},"model/vnd.moml+xml":{source:"iana",compressible:true},"model/vnd.mts":{source:"iana",extensions:["mts"]},"model/vnd.opengex":{source:"iana",extensions:["ogex"]},"model/vnd.parasolid.transmit.binary":{source:"iana",extensions:["x_b"]},"model/vnd.parasolid.transmit.text":{source:"iana",extensions:["x_t"]},"model/vnd.pytha.pyox":{source:"iana"},"model/vnd.rosette.annotated-data-model":{source:"iana"},"model/vnd.sap.vds":{source:"iana",extensions:["vds"]},"model/vnd.usdz+zip":{source:"iana",compressible:false,extensions:["usdz"]},"model/vnd.valve.source.compiled-map":{source:"iana",extensions:["bsp"]},"model/vnd.vtu":{source:"iana",extensions:["vtu"]},"model/vrml":{source:"iana",compressible:false,extensions:["wrl","vrml"]},"model/x3d+binary":{source:"apache",compressible:false,extensions:["x3db","x3dbz"]},"model/x3d+fastinfoset":{source:"iana",extensions:["x3db"]},"model/x3d+vrml":{source:"apache",compressible:false,extensions:["x3dv","x3dvz"]},"model/x3d+xml":{source:"iana",compressible:true,extensions:["x3d","x3dz"]},"model/x3d-vrml":{source:"iana",extensions:["x3dv"]},"multipart/alternative":{source:"iana",compressible:false},"multipart/appledouble":{source:"iana"},"multipart/byteranges":{source:"iana"},"multipart/digest":{source:"iana"},"multipart/encrypted":{source:"iana",compressible:false},"multipart/form-data":{source:"iana",compressible:false},"multipart/header-set":{source:"iana"},"multipart/mixed":{source:"iana"},"multipart/multilingual":{source:"iana"},"multipart/parallel":{source:"iana"},"multipart/related":{source:"iana",compressible:false},"multipart/report":{source:"iana"},"multipart/signed":{source:"iana",compressible:false},"multipart/vnd.bint.med-plus":{source:"iana"},"multipart/voice-message":{source:"iana"},"multipart/x-mixed-replace":{source:"iana"},"text/1d-interleaved-parityfec":{source:"iana"},"text/cache-manifest":{source:"iana",compressible:true,extensions:["appcache","manifest"]},"text/calendar":{source:"iana",extensions:["ics","ifb"]},"text/calender":{compressible:true},"text/cmd":{compressible:true},"text/coffeescript":{extensions:["coffee","litcoffee"]},"text/cql":{source:"iana"},"text/cql-expression":{source:"iana"},"text/cql-identifier":{source:"iana"},"text/css":{source:"iana",charset:"UTF-8",compressible:true,extensions:["css"]},"text/csv":{source:"iana",compressible:true,extensions:["csv"]},"text/csv-schema":{source:"iana"},"text/directory":{source:"iana"},"text/dns":{source:"iana"},"text/ecmascript":{source:"iana"},"text/encaprtp":{source:"iana"},"text/enriched":{source:"iana"},"text/fhirpath":{source:"iana"},"text/flexfec":{source:"iana"},"text/fwdred":{source:"iana"},"text/gff3":{source:"iana"},"text/grammar-ref-list":{source:"iana"},"text/html":{source:"iana",compressible:true,extensions:["html","htm","shtml"]},"text/jade":{extensions:["jade"]},"text/javascript":{source:"iana",compressible:true},"text/jcr-cnd":{source:"iana"},"text/jsx":{compressible:true,extensions:["jsx"]},"text/less":{compressible:true,extensions:["less"]},"text/markdown":{source:"iana",compressible:true,extensions:["markdown","md"]},"text/mathml":{source:"nginx",extensions:["mml"]},"text/mdx":{compressible:true,extensions:["mdx"]},"text/mizar":{source:"iana"},"text/n3":{source:"iana",charset:"UTF-8",compressible:true,extensions:["n3"]},"text/parameters":{source:"iana",charset:"UTF-8"},"text/parityfec":{source:"iana"},"text/plain":{source:"iana",compressible:true,extensions:["txt","text","conf","def","list","log","in","ini"]},"text/provenance-notation":{source:"iana",charset:"UTF-8"},"text/prs.fallenstein.rst":{source:"iana"},"text/prs.lines.tag":{source:"iana",extensions:["dsc"]},"text/prs.prop.logic":{source:"iana"},"text/raptorfec":{source:"iana"},"text/red":{source:"iana"},"text/rfc822-headers":{source:"iana"},"text/richtext":{source:"iana",compressible:true,extensions:["rtx"]},"text/rtf":{source:"iana",compressible:true,extensions:["rtf"]},"text/rtp-enc-aescm128":{source:"iana"},"text/rtploopback":{source:"iana"},"text/rtx":{source:"iana"},"text/sgml":{source:"iana",extensions:["sgml","sgm"]},"text/shaclc":{source:"iana"},"text/shex":{source:"iana",extensions:["shex"]},"text/slim":{extensions:["slim","slm"]},"text/spdx":{source:"iana",extensions:["spdx"]},"text/strings":{source:"iana"},"text/stylus":{extensions:["stylus","styl"]},"text/t140":{source:"iana"},"text/tab-separated-values":{source:"iana",compressible:true,extensions:["tsv"]},"text/troff":{source:"iana",extensions:["t","tr","roff","man","me","ms"]},"text/turtle":{source:"iana",charset:"UTF-8",extensions:["ttl"]},"text/ulpfec":{source:"iana"},"text/uri-list":{source:"iana",compressible:true,extensions:["uri","uris","urls"]},"text/vcard":{source:"iana",compressible:true,extensions:["vcard"]},"text/vnd.a":{source:"iana"},"text/vnd.abc":{source:"iana"},"text/vnd.ascii-art":{source:"iana"},"text/vnd.curl":{source:"iana",extensions:["curl"]},"text/vnd.curl.dcurl":{source:"apache",extensions:["dcurl"]},"text/vnd.curl.mcurl":{source:"apache",extensions:["mcurl"]},"text/vnd.curl.scurl":{source:"apache",extensions:["scurl"]},"text/vnd.debian.copyright":{source:"iana",charset:"UTF-8"},"text/vnd.dmclientscript":{source:"iana"},"text/vnd.dvb.subtitle":{source:"iana",extensions:["sub"]},"text/vnd.esmertec.theme-descriptor":{source:"iana",charset:"UTF-8"},"text/vnd.ficlab.flt":{source:"iana"},"text/vnd.fly":{source:"iana",extensions:["fly"]},"text/vnd.fmi.flexstor":{source:"iana",extensions:["flx"]},"text/vnd.gml":{source:"iana"},"text/vnd.graphviz":{source:"iana",extensions:["gv"]},"text/vnd.hans":{source:"iana"},"text/vnd.hgl":{source:"iana"},"text/vnd.in3d.3dml":{source:"iana",extensions:["3dml"]},"text/vnd.in3d.spot":{source:"iana",extensions:["spot"]},"text/vnd.iptc.newsml":{source:"iana"},"text/vnd.iptc.nitf":{source:"iana"},"text/vnd.latex-z":{source:"iana"},"text/vnd.motorola.reflex":{source:"iana"},"text/vnd.ms-mediapackage":{source:"iana"},"text/vnd.net2phone.commcenter.command":{source:"iana"},"text/vnd.radisys.msml-basic-layout":{source:"iana"},"text/vnd.senx.warpscript":{source:"iana"},"text/vnd.si.uricatalogue":{source:"iana"},"text/vnd.sosi":{source:"iana"},"text/vnd.sun.j2me.app-descriptor":{source:"iana",charset:"UTF-8",extensions:["jad"]},"text/vnd.trolltech.linguist":{source:"iana",charset:"UTF-8"},"text/vnd.wap.si":{source:"iana"},"text/vnd.wap.sl":{source:"iana"},"text/vnd.wap.wml":{source:"iana",extensions:["wml"]},"text/vnd.wap.wmlscript":{source:"iana",extensions:["wmls"]},"text/vtt":{source:"iana",charset:"UTF-8",compressible:true,extensions:["vtt"]},"text/x-asm":{source:"apache",extensions:["s","asm"]},"text/x-c":{source:"apache",extensions:["c","cc","cxx","cpp","h","hh","dic"]},"text/x-component":{source:"nginx",extensions:["htc"]},"text/x-fortran":{source:"apache",extensions:["f","for","f77","f90"]},"text/x-gwt-rpc":{compressible:true},"text/x-handlebars-template":{extensions:["hbs"]},"text/x-java-source":{source:"apache",extensions:["java"]},"text/x-jquery-tmpl":{compressible:true},"text/x-lua":{extensions:["lua"]},"text/x-markdown":{compressible:true,extensions:["mkd"]},"text/x-nfo":{source:"apache",extensions:["nfo"]},"text/x-opml":{source:"apache",extensions:["opml"]},"text/x-org":{compressible:true,extensions:["org"]},"text/x-pascal":{source:"apache",extensions:["p","pas"]},"text/x-processing":{compressible:true,extensions:["pde"]},"text/x-sass":{extensions:["sass"]},"text/x-scss":{extensions:["scss"]},"text/x-setext":{source:"apache",extensions:["etx"]},"text/x-sfv":{source:"apache",extensions:["sfv"]},"text/x-suse-ymp":{compressible:true,extensions:["ymp"]},"text/x-uuencode":{source:"apache",extensions:["uu"]},"text/x-vcalendar":{source:"apache",extensions:["vcs"]},"text/x-vcard":{source:"apache",extensions:["vcf"]},"text/xml":{source:"iana",compressible:true,extensions:["xml"]},"text/xml-external-parsed-entity":{source:"iana"},"text/yaml":{compressible:true,extensions:["yaml","yml"]},"video/1d-interleaved-parityfec":{source:"iana"},"video/3gpp":{source:"iana",extensions:["3gp","3gpp"]},"video/3gpp-tt":{source:"iana"},"video/3gpp2":{source:"iana",extensions:["3g2"]},"video/av1":{source:"iana"},"video/bmpeg":{source:"iana"},"video/bt656":{source:"iana"},"video/celb":{source:"iana"},"video/dv":{source:"iana"},"video/encaprtp":{source:"iana"},"video/ffv1":{source:"iana"},"video/flexfec":{source:"iana"},"video/h261":{source:"iana",extensions:["h261"]},"video/h263":{source:"iana",extensions:["h263"]},"video/h263-1998":{source:"iana"},"video/h263-2000":{source:"iana"},"video/h264":{source:"iana",extensions:["h264"]},"video/h264-rcdo":{source:"iana"},"video/h264-svc":{source:"iana"},"video/h265":{source:"iana"},"video/iso.segment":{source:"iana",extensions:["m4s"]},"video/jpeg":{source:"iana",extensions:["jpgv"]},"video/jpeg2000":{source:"iana"},"video/jpm":{source:"apache",extensions:["jpm","jpgm"]},"video/mj2":{source:"iana",extensions:["mj2","mjp2"]},"video/mp1s":{source:"iana"},"video/mp2p":{source:"iana"},"video/mp2t":{source:"iana",extensions:["ts"]},"video/mp4":{source:"iana",compressible:false,extensions:["mp4","mp4v","mpg4"]},"video/mp4v-es":{source:"iana"},"video/mpeg":{source:"iana",compressible:false,extensions:["mpeg","mpg","mpe","m1v","m2v"]},"video/mpeg4-generic":{source:"iana"},"video/mpv":{source:"iana"},"video/nv":{source:"iana"},"video/ogg":{source:"iana",compressible:false,extensions:["ogv"]},"video/parityfec":{source:"iana"},"video/pointer":{source:"iana"},"video/quicktime":{source:"iana",compressible:false,extensions:["qt","mov"]},"video/raptorfec":{source:"iana"},"video/raw":{source:"iana"},"video/rtp-enc-aescm128":{source:"iana"},"video/rtploopback":{source:"iana"},"video/rtx":{source:"iana"},"video/scip":{source:"iana"},"video/smpte291":{source:"iana"},"video/smpte292m":{source:"iana"},"video/ulpfec":{source:"iana"},"video/vc1":{source:"iana"},"video/vc2":{source:"iana"},"video/vnd.cctv":{source:"iana"},"video/vnd.dece.hd":{source:"iana",extensions:["uvh","uvvh"]},"video/vnd.dece.mobile":{source:"iana",extensions:["uvm","uvvm"]},"video/vnd.dece.mp4":{source:"iana"},"video/vnd.dece.pd":{source:"iana",extensions:["uvp","uvvp"]},"video/vnd.dece.sd":{source:"iana",extensions:["uvs","uvvs"]},"video/vnd.dece.video":{source:"iana",extensions:["uvv","uvvv"]},"video/vnd.directv.mpeg":{source:"iana"},"video/vnd.directv.mpeg-tts":{source:"iana"},"video/vnd.dlna.mpeg-tts":{source:"iana"},"video/vnd.dvb.file":{source:"iana",extensions:["dvb"]},"video/vnd.fvt":{source:"iana",extensions:["fvt"]},"video/vnd.hns.video":{source:"iana"},"video/vnd.iptvforum.1dparityfec-1010":{source:"iana"},"video/vnd.iptvforum.1dparityfec-2005":{source:"iana"},"video/vnd.iptvforum.2dparityfec-1010":{source:"iana"},"video/vnd.iptvforum.2dparityfec-2005":{source:"iana"},"video/vnd.iptvforum.ttsavc":{source:"iana"},"video/vnd.iptvforum.ttsmpeg2":{source:"iana"},"video/vnd.motorola.video":{source:"iana"},"video/vnd.motorola.videop":{source:"iana"},"video/vnd.mpegurl":{source:"iana",extensions:["mxu","m4u"]},"video/vnd.ms-playready.media.pyv":{source:"iana",extensions:["pyv"]},"video/vnd.nokia.interleaved-multimedia":{source:"iana"},"video/vnd.nokia.mp4vr":{source:"iana"},"video/vnd.nokia.videovoip":{source:"iana"},"video/vnd.objectvideo":{source:"iana"},"video/vnd.radgamettools.bink":{source:"iana"},"video/vnd.radgamettools.smacker":{source:"iana"},"video/vnd.sealed.mpeg1":{source:"iana"},"video/vnd.sealed.mpeg4":{source:"iana"},"video/vnd.sealed.swf":{source:"iana"},"video/vnd.sealedmedia.softseal.mov":{source:"iana"},"video/vnd.uvvu.mp4":{source:"iana",extensions:["uvu","uvvu"]},"video/vnd.vivo":{source:"iana",extensions:["viv"]},"video/vnd.youtube.yt":{source:"iana"},"video/vp8":{source:"iana"},"video/webm":{source:"apache",compressible:false,extensions:["webm"]},"video/x-f4v":{source:"apache",extensions:["f4v"]},"video/x-fli":{source:"apache",extensions:["fli"]},"video/x-flv":{source:"apache",compressible:false,extensions:["flv"]},"video/x-m4v":{source:"apache",extensions:["m4v"]},"video/x-matroska":{source:"apache",compressible:false,extensions:["mkv","mk3d","mks"]},"video/x-mng":{source:"apache",extensions:["mng"]},"video/x-ms-asf":{source:"apache",extensions:["asf","asx"]},"video/x-ms-vob":{source:"apache",extensions:["vob"]},"video/x-ms-wm":{source:"apache",extensions:["wm"]},"video/x-ms-wmv":{source:"apache",compressible:false,extensions:["wmv"]},"video/x-ms-wmx":{source:"apache",extensions:["wmx"]},"video/x-ms-wvx":{source:"apache",extensions:["wvx"]},"video/x-msvideo":{source:"apache",extensions:["avi"]},"video/x-sgi-movie":{source:"apache",extensions:["movie"]},"video/x-smv":{source:"apache",extensions:["smv"]},"x-conference/x-cooltalk":{source:"apache",extensions:["ice"]},"x-shader/x-fragment":{compressible:true},"x-shader/x-vertex":{compressible:true}};/*!
 * mime-db
 * Copyright(c) 2014 Jonathan Ong
 * MIT Licensed
 */ /**
 * Module exports.
 */var mimeDb=require$$0;/*!
 * mime-types
 * Copyright(c) 2014 Jonathan Ong
 * Copyright(c) 2015 Douglas Christopher Wilson
 * MIT Licensed
 */(function(exports){/**
 * Module dependencies.
 * @private
 */var db=mimeDb;var extname=path__WEBPACK_IMPORTED_MODULE_1___default.a.extname;/**
 * Module variables.
 * @private
 */var EXTRACT_TYPE_REGEXP=/^\s*([^;\s]*)(?:;|\s|$)/;var TEXT_TYPE_REGEXP=/^text\//i;/**
 * Module exports.
 * @public
 */exports.charset=charset;exports.charsets={lookup:charset};exports.contentType=contentType;exports.extension=extension;exports.extensions=Object.create(null);exports.lookup=lookup;exports.types=Object.create(null);// Populate the extensions/types maps
populateMaps(exports.extensions,exports.types);/**
 * Get the default charset for a MIME type.
 *
 * @param {string} type
 * @return {boolean|string}
 */function charset(type){if(!type||typeof type!=='string'){return false;}// TODO: use media-typer
var match=EXTRACT_TYPE_REGEXP.exec(type);var mime=match&&db[match[1].toLowerCase()];if(mime&&mime.charset){return mime.charset;}// default text/* to utf-8
if(match&&TEXT_TYPE_REGEXP.test(match[1])){return'UTF-8';}return false;}/**
 * Create a full Content-Type header given a MIME type or extension.
 *
 * @param {string} str
 * @return {boolean|string}
 */function contentType(str){// TODO: should this even be in this module?
if(!str||typeof str!=='string'){return false;}var mime=str.indexOf('/')===-1?exports.lookup(str):str;if(!mime){return false;}// TODO: use content-type or other module
if(mime.indexOf('charset')===-1){var charset=exports.charset(mime);if(charset)mime+='; charset='+charset.toLowerCase();}return mime;}/**
 * Get the default extension for a MIME type.
 *
 * @param {string} type
 * @return {boolean|string}
 */function extension(type){if(!type||typeof type!=='string'){return false;}// TODO: use media-typer
var match=EXTRACT_TYPE_REGEXP.exec(type);// get extensions
var exts=match&&exports.extensions[match[1].toLowerCase()];if(!exts||!exts.length){return false;}return exts[0];}/**
 * Lookup the MIME type for a file path/extension.
 *
 * @param {string} path
 * @return {boolean|string}
 */function lookup(path){if(!path||typeof path!=='string'){return false;}// get the extension ("ext" or ".ext" or full path)
var extension=extname('x.'+path).toLowerCase().substr(1);if(!extension){return false;}return exports.types[extension]||false;}/**
 * Populate the extensions and types maps.
 * @private
 */function populateMaps(extensions,types){// source preference (least -> most)
var preference=['nginx','apache',undefined,'iana'];Object.keys(db).forEach(function forEachMimeType(type){var mime=db[type];var exts=mime.extensions;if(!exts||!exts.length){return;}// mime -> extensions
extensions[type]=exts;// extension -> mime
for(var i=0;i<exts.length;i++){var extension=exts[i];if(types[extension]){var from=preference.indexOf(db[types[extension]].source);var to=preference.indexOf(mime.source);if(types[extension]!=='application/octet-stream'&&(from>to||from===to&&types[extension].substr(0,12)==='application/')){// skip the remapping
continue;}}// set the extension -> mime
types[extension]=type;}});}})(mimeTypes);const overrideMimeType=['video/avi'];function getMimeType(fileName){const extension=getFileExtension(fileName);// adding adobe specific mimetypes
switch(extension){case FILE_TYPE_MAP.psd.localExtension:return FILE_TYPE_MAP.psd.localMimeType;case FILE_TYPE_MAP.xd.localExtension:return FILE_TYPE_MAP.xd.localMimeType;case FILE_TYPE_MAP.ai.localExtension:return FILE_TYPE_MAP.ai.localMimeType;default:return mimeTypes.lookup(fileName)||undefined;}}/**
 *
 * @param fileName Name of the file
 * @param mimeType Type of the file given by the platform
 * @returns recognizable mimetypes
 */function sanitizeMimeTypeOnWeb(fileName,mimeType){// Ideally ACP should recognize all mimetypes and clients should just pass */* for all files while uploading,
// waiting on https://jira.corp.adobe.com/browse/CSMT-4621
if(overrideMimeType.includes(mimeType)){return mimeTypes.lookup(fileName);}const extension=getFileExtension(fileName);switch(extension){case FILE_TYPE_MAP.ai.localExtension:return'application/illustrator';}return mimeType;}class FileData{constructor(file,platform){// required for error handling in case of slice
this.strErrorReadingBlock='Error occurred in reading block';this.file=file;this.platform=platform;}init(){return __awaiter(this,void 0,void 0,function*(){this.fileName=this.file.name;this.fileSize=this.file.size;this.fileType=sanitizeMimeTypeOnWeb(this.fileName,this.file.type);});}get name(){return this.fileName;}get size(){return this.fileSize;}get type(){return this.fileType;}slice(start,end){return __awaiter(this,void 0,void 0,function*(){// this workflow runs in AW/CCD
const slice=this.file.slice(start,end);return new Promise((resolve,reject)=>{const fr=new FileReader();fr.onloadend=event=>{if(event.target){if(event.target.result){resolve(event.target.result);}else if(event.target.error){this.strErrorReadingBlock=event.target.error.message;reject(this.strErrorReadingBlock);}else{reject(this.strErrorReadingBlock);}}else{reject(this.strErrorReadingBlock);}};fr.readAsArrayBuffer(slice);});});}// returns an file object/array buffer
// that can be used as an body for fetch request
getFileBuffer(){return __awaiter(this,void 0,void 0,function*(){// in case of browser/CCD, fetch take file as an body
return this.file;});}// returns the file object that can be used
// as a Form Data Value
getFileObj(){return this.file;}// returns the original file object
getFile(){return this.file;}}class FileDataUXP extends FileData{constructor(file,platform){super(file,platform);}init(){return __awaiter(this,void 0,void 0,function*(){this.fileName=this.file.name;this.fileType=this.file.type;const{size}=yield this.file.getMetadata();this.fileSize=size;this.fd=null;if(!this.fileType){// this is a temporary fix, till services fixes the https://jira.corp.adobe.com/browse/CSMT-4621
this.fileType=getMimeType(this.fileName);}});}// read's a file in UXP's environment
readFileInUXP(){return __awaiter(this,void 0,void 0,function*(){try{const{formats}=window.require('uxp').storage;const fileData=yield this.file.read({format:formats.binary});return fileData;}catch(error){// UXP throws errors of type Error.
throw error.message;}});}get fs(){return window.require('fs');}openFile(){return __awaiter(this,void 0,void 0,function*(){const path=this.file.url;const fd=yield this.fs.open(path,"r");return fd;});}closeFile(){return __awaiter(this,void 0,void 0,function*(){try{yield this.fs.close(this.fd);}catch(e){console.error(`failed to close the file: ${e}`);}finally{this.fd=null;}});}readChunkInUXP(start,end){return __awaiter(this,void 0,void 0,function*(){try{if(!this.fd){this.fd=yield this.openFile();}const chunk=end-start;const buffer=new ArrayBuffer(chunk);const{bytesRead}=yield this.fs.read(this.fd,buffer,0,chunk,start);if(bytesRead!==chunk){throw new Error("bytesRead should be equal to chunk size");}if(end===this.size){yield this.closeFile();}return buffer;}catch(error){// UXP throws errors
throw error.message;}});}slice(start,end){return __awaiter(this,void 0,void 0,function*(){const block=yield this.readChunkInUXP(start,end);return block;});}// returns an file object/array buffer
getFileBuffer(){return __awaiter(this,void 0,void 0,function*(){const fileData=yield this.readFileInUXP();return fileData;});}}function fileDataFactory(file,platform){return __awaiter(this,void 0,void 0,function*(){switch(platform){case Platform.UXP:const uxpObj=new FileDataUXP(file,platform);yield uxpObj.init();return uxpObj;default:const obj=new FileData(file,platform);yield obj.init();return obj;}});}/** ***********************************************************************
 *
 * Copyright 2021 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 ************************************************************************* */const STR_LOGGING_TAG$5='Import: ImportManager';const SENSI_UPLOAD_SIZE_LIMIT=100*Constants.MB;const BLOCK_SIZE=10*Constants.MB;const MAX_UPLOAD_QUEUE=12;const MAX_PARALLEL_FILE_UPLOAD=1;const MAX_READ_MEMORY=128*Constants.MB;// This limit is per file
class ImportManager{constructor(){this.context={environment:'',getAccessToken:()=>{},clientId:'',osName:''};// represent size in MB
this.mBlockSize=0;// number of upload request will be queued in one go
this.mMaxUploadQueue=0;// represent size in MB
this.mSensiUploadLimit=0;// number of file will be parrallel upload
this.mParallelFileUpload=0;this.mMaxReadMemory=0;this.uploadScheduler=new TaskScheduler(this.mParallelFileUpload);this.jobs=new Map();}init(context){return __awaiter(this,void 0,void 0,function*(){console.info(`${STR_LOGGING_TAG$5}: init start`);this.context=context;try{const parsedData=context.config;this.mBlockSize=BLOCK_SIZE;if(parsedData&&parsedData.blockSize&&!Number.isNaN(Number(parsedData.blockSize))){this.mBlockSize=parsedData.blockSize*Constants.MB;}this.mSensiUploadLimit=SENSI_UPLOAD_SIZE_LIMIT;if(parsedData&&parsedData.sensiUploadLimit!==undefined&&!Number.isNaN(Number(parsedData.sensiUploadLimit))){this.mSensiUploadLimit=parsedData.sensiUploadLimit*Constants.MB;}this.mMaxUploadQueue=MAX_UPLOAD_QUEUE;if(parsedData&&parsedData.maxUploadQueue&&!Number.isNaN(Number(parsedData.maxUploadQueue))){this.mMaxUploadQueue=parsedData.maxUploadQueue;}this.mParallelFileUpload=MAX_PARALLEL_FILE_UPLOAD;if(parsedData&&parsedData.parallelFileUpload&&!Number.isNaN(Number(parsedData.parallelFileUpload))){this.mParallelFileUpload=parsedData.parallelFileUpload;}this.mMaxReadMemory=MAX_READ_MEMORY;if(parsedData&&parsedData.maxReadMemory&&!Number.isNaN(Number(parsedData.maxReadMemory))){this.mMaxReadMemory=parsedData.maxReadMemory*Constants.MB;}this.uploadScheduler=new TaskScheduler(this.mParallelFileUpload);}catch(error){console.error(`${STR_LOGGING_TAG$5}: init err: ${error}`);}});}getFileName(file){if(file.data){return file.data.name;}throw new Error('file.data should never be null');}// We create a callback for aborting the operation.
cancelOperationOnFile(fileId){const fileJobInfo=this.jobs.get(fileId);if(!fileJobInfo||!fileJobInfo.abortFetchController)return false;fileJobInfo.abortFetchController.abort();return true;}isSnapshot(file){return __awaiter(this,void 0,void 0,function*(){try{let fileData=null;if(file.data){fileData=file.data;fileData=yield fileDataFactory(fileData,this.context.platform);}if(!fileData){throw new Error("isSnapshot failed to find fileData");}const arrayBuffer=yield fileData.slice(0,150);const ret=verifyandGetSnapshotMimetype(arrayBuffer);if(ret==='')return false;return true;}catch(e){throw e;}});}startUpload({cloudUrn,importCallbacks,cloudPath,fileId,displayFileName,fileType,fileData,signal,cloudFileName,fetchSuitableName,convert=false}){return __awaiter(this,void 0,void 0,function*(){try{const uploadManager=new UploadRequest();const acpArgs=yield getImportInfo(cloudUrn,signal,this.context);if(cloudFileName==''){cloudFileName=yield fetchSuitableName(fileNameWithoutExtension(displayFileName),fileType,acpArgs.directoryPath,fileData.fileType);}// Upload only 1 file at a time because CEF can upload 6 blocks
// at a time so there is no benefit to load multi file data in memory
const doUpload=()=>{return uploadManager.upload({path:cloudFileName,file:fileData,blockSize:this.mBlockSize,maxUploadQueue:this.mMaxUploadQueue,maxReadMemory:this.mMaxReadMemory,context:this.context,templatedCreateUrl:acpArgs.templatedCreateUrl,signal,fileType,convert});};const uploadResultCallback=yield this.uploadScheduler.doWork(doUpload);const tempUrn=uploadResultCallback();return{tempUrn,cloudFileName};}catch(e){throw new Error(e);}});}uploadFile(fileImportData,importCallbacks){return __awaiter(this,void 0,void 0,function*(){const{file,urn='',cloudPath,fetchSuitableName,logAnalytics,fileId,displayFileName}=fileImportData;const startTime=Date.now();let abortFetchController;let signal;// UXP does not support AbortController
if(this.context.platform!==Platform.UXP){abortFetchController=new AbortController();const{signal:abortSignal}=abortFetchController;signal=abortSignal;}this.jobs.set(fileId,Object.assign({},fileImportData,{abortFetchController,startTime}));let fileData=null;if(importCallbacks.progressCallback){importCallbacks.progressCallback({filesInfo:[{id:fileId,status:FILE_TRANSFER_STATUS.WAITING,fileName:displayFileName,transferType:TRANSFER_TYPES.UPLOAD}]});}if(file.data){fileData=file.data;fileData=yield fileDataFactory(fileData,this.context.platform);}// } else {
//     const arrayBuffer = exportStore.fs.readFileSync(file.path);
//     const fileName = getFileName(file.path);
//     fileData = new File([arrayBuffer.slice()], fileName);
// }
if(!fileData){const retVal={id:fileId,status:FILE_TRANSFER_STATUS.FAILED,fileName:displayFileName,transferType:TRANSFER_TYPES.UPLOAD};if(importCallbacks.progressCallback){importCallbacks.progressCallback({filesInfo:[Object.assign({},retVal)]});}this.jobs.delete(fileId);return Object.assign({},retVal);}let fileName=fileData.name;let cloudUrn=urn;const fileType=getFileExtension(fileName);fileName=truncateString(fileName,MAX_FILENAME_LENGTH_CONVERSION,false);try{if(importCallbacks.progressCallback){importCallbacks.progressCallback({filesInfo:[{id:fileId,status:FILE_TRANSFER_STATUS.START,fileName:displayFileName,transferType:TRANSFER_TYPES.UPLOAD}]});importCallbacks.progressCallback({filesInfo:[{id:fileId,status:FILE_TRANSFER_STATUS.INPROGRESS,fileName:displayFileName,transferType:TRANSFER_TYPES.UPLOAD}]});}const{tempUrn,cloudFileName}=yield this.startUpload({cloudUrn,importCallbacks,cloudPath,fileId,displayFileName,fileType,fileData,signal,cloudFileName:'',fetchSuitableName});const retValue={id:fileId,status:FILE_TRANSFER_STATUS.DONE,fileName,transferType:TRANSFER_TYPES.UPLOAD,file,startTime,cloudPath,cloudFileName,displayFileName,fileType,fileData,cloudUrn,urnId:tempUrn};if(importCallbacks.progressCallback){importCallbacks.progressCallback({filesInfo:[Object.assign({},retValue)]});}this.jobs.delete(fileId);logAnalytics({eventType:'success',element:{fileExtension:fileType}});return Object.assign({},retValue);}catch(error){console.error(`${STR_LOGGING_TAG$5}: uploadFile: ${error}`);this.jobs.delete(fileId);const errorCode=0;// TODO: check if this is required
logAnalytics({eventType:'error',errorCode,errorDesc:error,element:{fileExtension:fileType}});const retValue={id:fileId,status:FILE_TRANSFER_STATUS.FAILED,fileName,transferType:TRANSFER_TYPES.UPLOAD,error,fileType,fileData,startTime};if(importCallbacks.progressCallback){importCallbacks.progressCallback({filesInfo:[Object.assign({},retValue)]});}return Object.assign({},retValue);}});}convertAndUploadFile(fileImportData,importCallbacks){return __awaiter(this,void 0,void 0,function*(){const{file,urn='',cloudPath,fetchSuitableName,logAnalytics,fileId,displayFileName}=fileImportData;const startTime=Date.now();let abortFetchController;let signal;// UXP does not support AbortController
if(this.context.platform!==Platform.UXP){abortFetchController=new AbortController();const{signal:abortSignal}=abortFetchController;signal=abortSignal;}this.jobs.set(fileId,Object.assign({},fileImportData,{abortFetchController,startTime}));let fileData=null;if(importCallbacks.progressCallback){importCallbacks.progressCallback({filesInfo:[{id:fileId,status:FILE_TRANSFER_STATUS.WAITING,fileName:displayFileName,transferType:TRANSFER_TYPES.CONVERT}]});}if(file.data){fileData=file.data;fileData=yield fileDataFactory(fileData,this.context.platform);}// } else {
//     const arrayBuffer = exportStore.fs.readFileSync(file.path);
//     const fileName = getFileName(file.path);
//     fileData = new File([arrayBuffer.slice()], fileName);
// }
if(!fileData){const retVal={id:fileId,status:FILE_TRANSFER_STATUS.FAILED,fileName:displayFileName,transferType:TRANSFER_TYPES.CONVERT};if(importCallbacks.progressCallback){importCallbacks.progressCallback({filesInfo:[Object.assign({},retVal)]});}this.jobs.delete(fileId);return Object.assign({},retVal);}let fileName=fileData.name;let cloudUrn=urn;const fileType=getFileExtension(fileName);fileName=truncateString(fileName,MAX_FILENAME_LENGTH_CONVERSION,false);const cloudFileName=yield fetchSuitableName(fileNameWithoutExtension(fileName),FILE_TYPE_MAP[fileType].cloudExtension,cloudPath,fileData.fileType);try{let doFileConvertViaSensei=true;if(fileType==='xd'){doFileConvertViaSensei=false;}if(!cloudUrn&&!cloudPath){throw new Error('urn and cloudPath both are empty');}// fetch cloudUrn if empty
if(cloudUrn===''&&cloudPath){cloudUrn=yield this.getUrnFromPath(cloudPath);}if(importCallbacks.progressCallback){importCallbacks.progressCallback({filesInfo:[{id:fileId,status:FILE_TRANSFER_STATUS.START,fileName:displayFileName,transferType:TRANSFER_TYPES.CONVERT}]});}const doUpload=(tempFolderUrn,tempFile,convert=false)=>__awaiter(this,void 0,void 0,function*(){const{tempUrn}=yield this.startUpload({cloudUrn:tempFolderUrn,importCallbacks,cloudPath,fileId,displayFileName,fileType,fileData,signal,cloudFileName:tempFile,fetchSuitableName,convert});return tempUrn;});const doConvert=()=>__awaiter(this,void 0,void 0,function*(){let params={fileType:FileTypes[fileType],inputMimeType:FILE_TYPE_MAP[fileType].localMimeType,outputMimeType:FILE_TYPE_MAP[fileType].cloudMimeType,outputFileName:cloudFileName,outPutRepo:'RAPI',outputParentId:cloudUrn,fileId,displayFileName};if(fileData.size>this.mSensiUploadLimit){if(importCallbacks.progressCallback){importCallbacks.progressCallback({filesInfo:[{id:fileId,status:FILE_TRANSFER_STATUS.INPROGRESS,fileName:displayFileName,transferType:TRANSFER_TYPES.CONVERT}]});}const tempFile=`${fileId}-${Date.now()}.${fileType}`;const tempFolderUrn=yield getTempFolderUrn(this.context);const tempUrn=yield doUpload(tempFolderUrn,tempFile);params=Object.assign({},params,{inputRepo:'RAPI',inputRepoId:tempUrn});}else{params=Object.assign({},params,{inputFile:fileData});}const conversionRequest=new ConversionRequest(params,this.context,signal,importCallbacks);if(importCallbacks.progressCallback){importCallbacks.progressCallback({filesInfo:[{id:fileId,status:FILE_TRANSFER_STATUS.INPROGRESS,fileName:displayFileName,transferType:TRANSFER_TYPES.CONVERT}]});}yield conversionRequest.send();let wait=0;let result;// https://eslint.org/docs/rules/no-await-in-loop#when-not-to-use-it
/* eslint-disable no-await-in-loop */do{yield sleep(wait);result=yield conversionRequest.checkProgress();wait=result.delay;}while(result.status!==Status.Success);return conversionRequest.getConvertedDocUrn(result.jsonResponse);});let convertedDocUrn=null;if(doFileConvertViaSensei){convertedDocUrn=yield doConvert();}else{const doUploadAndConvert=urn=>__awaiter(this,void 0,void 0,function*(){convertedDocUrn=yield doUpload(urn,cloudFileName,true);});yield doUploadAndConvert(cloudUrn);}const retValue={id:fileId,status:FILE_TRANSFER_STATUS.DONE,fileName,transferType:TRANSFER_TYPES.CONVERT,file,startTime,cloudPath,cloudFileName,displayFileName,fileType,fileData,cloudUrn,urnId:convertedDocUrn};if(importCallbacks.progressCallback){importCallbacks.progressCallback({filesInfo:[Object.assign({},retValue)]});}this.jobs.delete(fileId);logAnalytics({eventType:'success',element:{type:FILE_TYPE_MAP[fileType].localMimeType,fileExtension:fileType}});return Object.assign({},retValue);}catch(error){console.error(`${STR_LOGGING_TAG$5}: convertAndUploadFile: ${error}`);this.jobs.delete(fileId);const errorCode=0;// TODO: check if this is required
logAnalytics({eventType:'error',errorCode,errorDesc:error,element:{type:FILE_TYPE_MAP[fileType].localMimeType,fileExtension:fileType}});const retValue={id:fileId,status:FILE_TRANSFER_STATUS.FAILED,fileName,transferType:TRANSFER_TYPES.CONVERT,error,fileType,fileData,startTime};if(importCallbacks.progressCallback){importCallbacks.progressCallback({filesInfo:[Object.assign({},retValue)]});}return Object.assign({},retValue);}});}uploadFiles({files,urn,cloudPath,fetchSuitableName,logAnalytics},importCallbacks){return __awaiter(this,void 0,void 0,function*(){let fileList=[];files.forEach(file=>{const fileId=uuid();const displayFileName=truncateString(this.getFileName(file),MAX_FILENAME_LENGTH_DISPLAY,true);fileList.push({file,fileId,displayFileName});});let promiseResolver,promiseRejector;const onComplete=new Promise((resolve,reject)=>{promiseResolver=resolve;promiseRejector=reject;});const uploadCallBack=()=>__awaiter(this,void 0,void 0,function*(){try{let fetchedCloudPath=cloudPath;if(!fetchedCloudPath){const info=yield getImportInfo(urn,null,this.context);fetchedCloudPath=info.directoryPath;}let filesInfo=yield Promise.all(fileList.map(({file,fileId,displayFileName})=>__awaiter(this,void 0,void 0,function*(){return this.uploadFile({file,urn,cloudPath:fetchedCloudPath,fetchSuitableName,logAnalytics,fileId,displayFileName},importCallbacks);})));filesInfo=filesInfo.filter(data=>!!data);if(promiseResolver){promiseResolver([...filesInfo]);}if(importCallbacks.progressCallback){importCallbacks.progressCallback({batch:true,filesInfo:[...filesInfo]});}}catch(error){console.error(`${STR_LOGGING_TAG$5}: uploadFile: ${error}`);if(promiseRejector){promiseRejector(error);}}});uploadCallBack();return{files:fileList,onComplete};});}convertAndUploadFiles({files,urn,cloudPath,fetchSuitableName,logAnalytics},importCallbacks){return __awaiter(this,void 0,void 0,function*(){let fileList=[];files.forEach(file=>{const isSupported=isSupportedFileTypes([file].map(({data})=>data&&data.name),this.getSupportedConversions());if(!isSupported){throw new Error('All files are not supported');}const fileId=uuid();const displayFileName=truncateString(this.getFileName(file),MAX_FILENAME_LENGTH_DISPLAY,true);fileList.push({file,fileId,displayFileName});});let promiseResolver,promiseRejector;const onComplete=new Promise((resolve,reject)=>{promiseResolver=resolve;promiseRejector=reject;});const conversionCallBack=()=>__awaiter(this,void 0,void 0,function*(){try{let fetchedCloudPath=cloudPath;if(!fetchedCloudPath){const info=yield getImportInfo(urn,null,this.context);fetchedCloudPath=info.directoryPath;}let filesInfo=yield Promise.all(fileList.map(({file,fileId,displayFileName})=>__awaiter(this,void 0,void 0,function*(){return this.convertAndUploadFile({file,urn,cloudPath:fetchedCloudPath,fetchSuitableName,logAnalytics,fileId,displayFileName},importCallbacks);})));filesInfo=filesInfo.filter(data=>!!data);if(promiseResolver){promiseResolver([...filesInfo]);}if(importCallbacks.progressCallback){importCallbacks.progressCallback({batch:true,filesInfo:[...filesInfo]});}}catch(error){console.error(`${STR_LOGGING_TAG$5}: convertAndUploadFiles: ${error}`);if(promiseRejector){promiseRejector(error);}}});conversionCallBack();return{files:fileList,onComplete};});}getUrnFromPath(path){return __awaiter(this,void 0,void 0,function*(){const normalizedpath=normalizePath(path);const{environment}=this.context;const storageUrl=SERVICE_ENDPOINTS.hosts[environment].storage;const url=`${storageUrl}/${normalizedpath}`;const request=new FetchRequest(url,this.context);const response=yield request.fetch();const urn=response.headers.get(Headers$1.X_RESOURCE_URN);return urn;});}reset(){console.info(`${STR_LOGGING_TAG$5}: feature flag has been updated, re-initalizing stores`);this.init(this.context);}getSupportedConversions(mimetypes=false){if(mimetypes){return[MIMETYPES.PS_LOCAL,MIMETYPES.ILLUSTRATOR_LOCAL,MIMETYPES.XD_LOCAL];}return['psd','ai','xd'];}}class ImportStore{constructor(){this.importManager=new ImportManager();}init(context){return __awaiter(this,void 0,void 0,function*(){yield this.importManager.init(context);});}getSupportedConversions(mimetypes=false){return this.importManager.getSupportedConversions(mimetypes);}convertAndUploadFiles(params,callbacks){return this.importManager.convertAndUploadFiles(params,callbacks);}// This will not work in UXP
cancelOperationOnFile(fileId){return this.importManager.cancelOperationOnFile(fileId);}uploadFiles(params,callbacks){return __awaiter(this,void 0,void 0,function*(){return this.importManager.uploadFiles(params,callbacks);});}isSnapshot(file){return __awaiter(this,void 0,void 0,function*(){const ret=yield this.importManager.isSnapshot(file);return ret;});}}var download$1={exports:{}};(function(module,exports){//download.js v4.2, by dandavis; 2008-2016. [MIT] see http://danml.com/download.html for tests/usage
// v1 landed a FF+Chrome compat way of downloading strings to local un-named files, upgraded to use a hidden frame and optional mime
// v2 added named files via a[download], msSaveBlob, IE (10+) support, and window.URL support for larger+faster saves than dataURLs
// v3 added dataURL and Blob Input, bind-toggle arity, and legacy dataURL fallback was improved with force-download mime and base64 support. 3.1 improved safari handling.
// v4 adds AMD/UMD, commonJS, and plain browser support
// v4.1 adds url download capability via solo URL argument (same domain/CORS only)
// v4.2 adds semantic variable names, long (over 2MB) dataURL support, and hidden by default temp anchors
// https://github.com/rndme/download
(function(root,factory){{// Node. Does not work with strict CommonJS, but
// only CommonJS-like environments that support module.exports,
// like Node.
module.exports=factory();}})(commonjsGlobal,function(){return function download(data,strFileName,strMimeType){var self=window,// this script is only for browsers anyway...
defaultMime="application/octet-stream",// this default mime also triggers iframe downloads
mimeType=strMimeType||defaultMime,payload=data,url=!strFileName&&!strMimeType&&payload,anchor=document.createElement("a"),toString=function(a){return String(a);},myBlob=self.Blob||self.MozBlob||self.WebKitBlob||toString,fileName=strFileName||"download",blob,reader;myBlob=myBlob.call?myBlob.bind(self):Blob;if(String(this)==="true"){//reverse arguments, allowing download.bind(true, "text/xml", "export.xml") to act as a callback
payload=[payload,mimeType];mimeType=payload[0];payload=payload[1];}if(url&&url.length<2048){// if no filename and no mime, assume a url was passed as the only argument
fileName=url.split("/").pop().split("?")[0];anchor.href=url;// assign href prop to temp anchor
if(anchor.href.indexOf(url)!==-1){// if the browser determines that it's a potentially valid url path:
var ajax=new XMLHttpRequest();ajax.open("GET",url,true);ajax.responseType='blob';ajax.onload=function(e){download(e.target.response,fileName,defaultMime);};setTimeout(function(){ajax.send();},0);// allows setting custom ajax headers using the return:
return ajax;}// end if valid url?
}// end if url?
//go ahead and download dataURLs right away
if(/^data:([\w+-]+\/[\w+.-]+)?[,;]/.test(payload)){if(payload.length>1024*1024*1.999&&myBlob!==toString){payload=dataUrlToBlob(payload);mimeType=payload.type||defaultMime;}else{return navigator.msSaveBlob?// IE10 can't do a[download], only Blobs:
navigator.msSaveBlob(dataUrlToBlob(payload),fileName):saver(payload);// everyone else can save dataURLs un-processed
}}else{//not data url, is it a string with special needs?
if(/([\x80-\xff])/.test(payload)){var i=0,tempUiArr=new Uint8Array(payload.length),mx=tempUiArr.length;for(i;i<mx;++i)tempUiArr[i]=payload.charCodeAt(i);payload=new myBlob([tempUiArr],{type:mimeType});}}blob=payload instanceof myBlob?payload:new myBlob([payload],{type:mimeType});function dataUrlToBlob(strUrl){var parts=strUrl.split(/[:;,]/),type=parts[1],decoder=parts[2]=="base64"?atob:decodeURIComponent,binData=decoder(parts.pop()),mx=binData.length,i=0,uiArr=new Uint8Array(mx);for(i;i<mx;++i)uiArr[i]=binData.charCodeAt(i);return new myBlob([uiArr],{type:type});}function saver(url,winMode){if('download'in anchor){//html5 A[download]
anchor.href=url;anchor.setAttribute("download",fileName);anchor.className="download-js-link";anchor.innerHTML="downloading...";anchor.style.display="none";document.body.appendChild(anchor);setTimeout(function(){anchor.click();document.body.removeChild(anchor);if(winMode===true){setTimeout(function(){self.URL.revokeObjectURL(anchor.href);},250);}},66);return true;}// handle non-a[download] safari as best we can:
if(/(Version)\/(\d+)\.(\d+)(?:\.(\d+))?.*Safari\//.test(navigator.userAgent)){if(/^data:/.test(url))url="data:"+url.replace(/^data:([\w\/\-\+]+)/,defaultMime);if(!window.open(url)){// popup blocked, offer direct download:
if(confirm("Displaying New Document\n\nUse Save As... to download, then click back to return to this page.")){location.href=url;}}return true;}//do iframe dataURL download (old ch+FF):
var f=document.createElement("iframe");document.body.appendChild(f);if(!winMode&&/^data:/.test(url)){// force a mime that will download:
url="data:"+url.replace(/^data:([\w\/\-\+]+)/,defaultMime);}f.src=url;setTimeout(function(){document.body.removeChild(f);},333);}//end saver
if(navigator.msSaveBlob){// IE10+ : (has Blob, but not a[download] or URL)
return navigator.msSaveBlob(blob,fileName);}if(self.URL){// simple fast and modern way using Blob and URL:
saver(self.URL.createObjectURL(blob),true);}else{// handle non-Blob()+non-URL browsers:
if(typeof blob==="string"||blob.constructor===toString){try{return saver("data:"+mimeType+";base64,"+self.btoa(blob));}catch(y){return saver("data:"+mimeType+","+encodeURIComponent(blob));}}// Blob but not URL support:
reader=new FileReader();reader.onload=function(e){saver(this.result);};reader.readAsDataURL(blob);}return true;};/* end download() */});})(download$1);var download=download$1.exports;const RETRY_DELAY=1;function handleAsyncResponse(monitorUrl,context,signal){return __awaiter(this,void 0,void 0,function*(){const retryRequest=new FetchRequest(monitorUrl,context);let checkResponse;let delay=0;do{if(delay){yield sleep(delay);}checkResponse=yield retryRequest.fetch(signal);delay=parseInt(checkResponse.headers.get('retry-after'),10)||RETRY_DELAY;}while(checkResponse.status==HTTP_STATUS.ACCEPTED);FetchRequest.verifyStatus(checkResponse);return checkResponse;});}const STR_LOGGING_TAG$4='Export: ACPUtils:';// Utility class for working with Repo API's
class ACPUtils extends ACPUtilsBase{constructor(context,signal){super(context,signal);}/**
   * Calls the repo metadata link to get the metadata of asset.
   * @param links the header links returned when an asset is resolved
   * @returns the size of asset
   */getSizeOfAsset(links){return __awaiter(this,void 0,void 0,function*(){const metaDataUrl=this.extractLink(links,ACPLinks.REPOSITORY_METADATA);const request=new FetchRequest(metaDataUrl,this.context);const response=yield request.fetch(this.signal);FetchRequest.verifyStatus(response);const metadata=yield response.json();const size=metadata['repo:size'];return size;});}// handles the async response for api:download link
// and returns the final download json response
// https://git.corp.adobe.com/pages/caf/api-spec/chapters/advanced/asynchronous_invocation.html
monitorBlockDownload(monitorUrl){return __awaiter(this,void 0,void 0,function*(){const finalResponse=yield handleAsyncResponse(monitorUrl,this.context,this.signal);// parse the http payload from the async response.
const body=yield finalResponse.text();const parsedMessage=parseHTTPMessage(body);if(!(parsedMessage.status>=HTTP_STATUS.OK&&parsedMessage.status<HTTP_STATUS.BAD_REQUEST)){throw new Error(JSON.stringify(parsedMessage.body));}return parsedMessage.body;});}/**
   * @param downloadLink repo api:download link of asset
   * @returns the presigned url for direct download and size of asset
   */directDownload(downloadLink){return __awaiter(this,void 0,void 0,function*(){const request=new FetchRequest(downloadLink,this.context);const response=yield request.fetch(this.signal);FetchRequest.verifyStatus(response);let jsonResponse;// currently for Files, the response is sent immediately (i.e 200)
// adding this checks for composites download(i.e XDC -> XD)
if(response.status===HTTP_STATUS.ACCEPTED){const monitorUrl=response.headers.get('location');jsonResponse=yield this.monitorBlockDownload(monitorUrl);}else{jsonResponse=yield response.json();}const{size,href}=jsonResponse;return{presignedUrl:href,size};});}// constructs and returns the direct download api link
getDirectDownloadLink(links){const blockDownloadURl=this.extractLink(links,ACPLinks.DOWNLOAD,{resource:ACPLinks.PRIMARY});return blockDownloadURl;}/**
   * @param primaryLink repo api:primary link of asset
   * Downloads the asset
   * if size is less than 10MB, api:primary links returns the asset
   * else, returns too-large-error and sends the location response
   * header. Using the location header, we can directly download
   * the asset
   * @returns the response of download request in case of regular download
   * else returns presigned urls for direct download.
   */regularDownload(links){return __awaiter(this,void 0,void 0,function*(){const primaryLink=this.extractLink(links,ACPLinks.PRIMARY);const request=new FetchRequest(primaryLink,this.context);const response=yield request.fetch(this.signal,true);if(response.status===HTTP_STATUS.BAD_REQUEST){const responseJson=yield response.json();// When we receive 400 error and response too large type,
// we get a location header which
// is the presigned url for direct downloading file.
if(responseJson&&responseJson.type===RESPONSE_TOO_LARGE_ERROR){const location=response.headers.get('location');// location always exists for files
if(location){return{presignedUrl:location};}// if location is not present, trying to use api:download.
const downloadUrl=this.getDirectDownloadLink(links);if(downloadUrl){return this.directDownload(downloadUrl);}}}FetchRequest.verifyStatus(response);return{response};});}/**
   *
   * @param links the header links returned when an asset is resolved
   * @param size Size of asset
   * @returns Downloads the asset and returns the response
   * or presigned url for direct download
   * NOTE: This download approach only works for Files. Additional handling
   * will be required for supporting composites as the file size of snapshots will be
   * different from composites.
   */downloadAsset(links,size){return __awaiter(this,void 0,void 0,function*(){// if size is greater than 10MB, try to go for direct download
if(size&&size>BLOCK_DOWNLOAD_MIN_SIZE){const blockDownloadURl=this.getDirectDownloadLink(links);// if api:download link is present, go for direct downloading.
if(blockDownloadURl){return this.directDownload(blockDownloadURl);}}// if file size is less than 10MB or if api:download link is not present
// we try downloading using the primary link
return this.regularDownload(links);});}/**
   *
   * @param links the header links returned when an asset is resolved
   * @param outputMimeType output rendition of the file
   * @returns Downloads the asset and returns the response
   */downloadRendition(links,outputMimeType,fileName){return __awaiter(this,void 0,void 0,function*(){// create the rendition URL
let renditionUrl=this.extractLink(links,ACPLinks.RENDITION);renditionUrl=`${renditionUrl}?accept=${outputMimeType}`;const request=new FetchRequest(renditionUrl,this.context,{headers:{"Content-Disposition":`attachment; filename="${encodeURIComponent(fileName)}"`}});const response=yield request.fetch(this.signal,true);FetchRequest.verifyStatus(response);return{response};});}/**
   *
   * @param assetData AssetData
   * urn: specifies the asset to be downloaded
   * size: size of asset
   * outputMimeType: specifies, if we want to download a rendition(png, jpg)
   * If no outputMimeType, we download the original asset
   * version: specifies the version to be downloaded.
   * Currently, this method only supports downloading
   * the asset itself (no rendition/version).
   * This method can be developed incrementally
   * to support downloading renditions/versions
   * @returns the response and size
   * In case of presigned url's, returns the url's
   * NOTE: This download approach only works for Files. Additional handling
   * will be required for supporting composites as the file size of snapshots will be
   * different from composites.
   */getSizeAndDownloadAsset(assetData){return __awaiter(this,void 0,void 0,function*(){const{size,urn,outputMimeType,fileName}=assetData;let fileSize=size;try{// first resolve the asset to get the links for metadata and download
const{links:headerLinks}=yield this.resolveById(urn);// if size is not present, call the repo API's to get the asset metadata
if(!fileSize){fileSize=yield this.getSizeOfAsset(headerLinks);}if(outputMimeType){// download specified rendition
const downloadResponse=yield this.downloadRendition(headerLinks,outputMimeType,fileName);return Object.assign({},downloadResponse,{size:fileSize});}const downloadResponse=yield this.downloadAsset(headerLinks,fileSize);return Object.assign({},downloadResponse,{size:fileSize});}catch(error){console.error(`${STR_LOGGING_TAG$4} getSizeAndDownloadAsset: download failed, error: ${error}`);const errorMessage=constructErrorData(FILE_TRANSFER_ERROR_TYPES.DOWNLOAD_ERROR,error);throw errorMessage;}});}}/**
 *
 * @param file : contains the asset data required for exporting XDC to XD.
 * @param signal: signal for cancelling export operation
 * @param fileId: fileId for logging each export operation uniquely
 * @param context: For providing config info for fetch calls
 * calls the Composite services using R-API's and it returns a snapshot.
 */function exportXDC(fileId,file,signal,context){return __awaiter(this,void 0,void 0,function*(){const{urn}=file;// Adding params for converting the XDC's mime-type to XD's mime type
const requestOptions={headers:{Accept:`${MIMETYPES.XD_LOCAL}`,directive:'dcx-primary-block'}};try{// resolving asset Links
const acpUtils=new ACPUtils(context,signal);const{links}=yield acpUtils.resolveById(urn);const url=acpUtils.extractLink(links,ACPLinks.PRIMARY);const request=new FetchRequest(url,context,requestOptions);const response=yield request.fetch(signal,true);// in case of big files, the sync download API returns 400
// and response too large error
// this logic is kept separately from ACPUtils download logic
// since the ACPUtils download logic only supports File type Assets download
if(response.status===HTTP_STATUS.BAD_REQUEST){const responseJson=yield response.json();// When we receive 400 error and response too large type,
// we need to direct download using alternate links
if(responseJson&&responseJson.type===RESPONSE_TOO_LARGE_ERROR){// get the api:download alternate links for asset
// alternate link is needed for downloading XD file from XDC
const downloadLink=acpUtils.extractLink(links,ACPLinks.DOWNLOAD,{resource:ACPLinks.ALTERNATE});const downloadResponse=yield acpUtils.directDownload(downloadLink);return downloadResponse;}}// DCXService has removed the support for content-length
// and changed their implementation to support transfer encoding
// we don't have a way to find size of xd file
// const decimalBase = 10;
// const size = parseInt(response.headers.get('Content-Length'), decimalBase);
FetchRequest.verifyStatus(response);return{response,size:undefined};}catch(err){// err can be response obj if its status is not valid(>=400)
// or can be Error Obj if fetch fails
const error=constructErrorData(FILE_TRANSFER_ERROR_TYPES.DOWNLOAD_ERROR,err);console.error(`Export: ExportXDC: ${fileId}: error: ${JSON.stringify(error)}`);throw error;}});}/** ***********************************************************************
 *
 * Copyright 2020 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/const STR_LOGGING_TAG$3='Export: Conversion:';/**
 * Converts the cloud doc to local doc and returns converted asset id.
 * @param conversionData AssetData needed for conversion
 * @returns converted Asset Id
 */function conversion(conversionData){return __awaiter(this,void 0,void 0,function*(){const{fileType,fileId,fileName,outputFileName,outputParentUrn,urn,context,signal}=conversionData;const params={fileType:FileTypes[fileType],inputMimeType:FILE_TYPE_MAP[fileType].cloudMimeType,outputMimeType:FILE_TYPE_MAP[fileType].localMimeType,outputFileName,outPutRepo:'RAPI',outputParentId:outputParentUrn,fileId,displayFileName:fileName,inputRepo:'RAPI',inputRepoId:urn};try{const conversionRequest=new ConversionRequest(params,context,signal);yield conversionRequest.send();let wait=0;let result;// https://eslint.org/docs/rules/no-await-in-loop#when-not-to-use-it
/* eslint-disable no-await-in-loop */do{yield sleep(wait);result=yield conversionRequest.checkProgress();wait=result.delay;}while(result.status!==Status.Success);// Once conversion is complete, we check for assetId of converted local doc
let convertedAssetUrn;if(result.jsonResponse){const senseiResponse=result.jsonResponse;const conversionFields=conversionRequest.getFieldNames(FileTypes[fileType]);const{outputName}=conversionFields;convertedAssetUrn=senseiResponse.statuses[0].invocations[0]['sensei:outputs'][outputName]['repo:id'];if(!convertedAssetUrn){console.error(`${STR_LOGGING_TAG$3} conversion: ${fileId} convertedAssetUrn not found in sensei response`);throw new Error('convertedAssetUrn not found in sensei response');}return convertedAssetUrn;}console.error(`${STR_LOGGING_TAG$3} conversion: ${fileId} sensei response not found`);throw new Error('sensei response not found');}catch(error){console.error(`${STR_LOGGING_TAG$3} conversion: conversion failed ${fileId} error: ${error}`);let errorMessage;// to capture errors when user has aborted the export op.
// signal.aborted will be true after abort is called on abort controller
if(signal.aborted){errorMessage=constructErrorData(FILE_TRANSFER_ERROR_TYPES.ABORT_ERROR,error);}else{errorMessage=constructErrorData(FILE_TRANSFER_ERROR_TYPES.SENSEI_CONVERSION_ERROR,error);}throw errorMessage;}});}/** ***********************************************************************
 *
 * Copyright 2020 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/const STR_LOGGING_TAG$2='Export: ExportCloudDocs: ';/**
 * @param file : contains the asset data required for exporting asset.
 * @param signal: signal for cancelling export operation
 * @param fileId: fileId for logging each export operation uniquely
 * @param context: For providing config info for fetch calls
 * calls the CPF engine to convert the cloud doc to local docs
 * After converting, calls R-API's to download the converted local doc.
 */function exportCloudDocs(fileId,file,signal,context){return __awaiter(this,void 0,void 0,function*(){const{urn,fileName,modifiedDate}=file;// to remove the region specifier and get the ID part.
const assetId=urn.split(':').pop();const fileType=getFileExtension(fileName);try{// output File Name indicates the name of converted file to be stored in /temp folder
const tempFolderName=`${assetId}-${modifiedDate?modifiedDate.getTime():''}`;const outputFileName=`${tempFolderName}/${fileName}`;// TODO: Start using /temp of Repo once SHS-1283 is resolved.
// currently using /temp of CC-Storage.
// fetchUrn will return the urn if asset is present else returns null.
const tempFolderUrn=yield getTempFolderUrn(context);let convertedAssetUrn=yield fetchUrn(`temp/${tempFolderName}/${encodeURIComponent(fileName)}`,context);// acpUtils provides functionality to download files using Repo API's
const acpUtils=new ACPUtils(context,signal);const conversionData={fileType,fileId,fileName,outputFileName,outputParentUrn:tempFolderUrn,urn,context,signal};//  if converted asset urn is not found, attempt conversion
if(!convertedAssetUrn){convertedAssetUrn=yield conversion(conversionData);}const response=yield acpUtils.getSizeAndDownloadAsset({urn:convertedAssetUrn});return response;}catch(error){console.error(`${STR_LOGGING_TAG$2}: exportCloudDocs: ${fileId} export failed error: ${JSON.stringify(error)}`);throw error;}});}const STR_LOGGING_TAG$1='Export: Utils: ';/**
 * @param errorCode: string
 * @param error : can be Error Object if fetch request fails
 * or Response object if its status is not valid one
 * or just a string value
 * When its AbortError, we also re-write the errorCode to AbortError type
 * as When user Aborts, it doesn't matter at which step the download failed.
 * Constructs error description
 * We first give preference to statusText,
 * if it's not there we see if status prop exists
 * else we check for message prop.
 * else we return error.
 */function constructErrorData(errorCode,error){let errorDesc=null;let errorCodeString=errorCode;if(error.statusText&&error.statusText!==''){errorDesc=error.statusText;}else if(error.status){errorDesc=error.status;}else if(error.message){errorDesc=error.message;}else{errorDesc=error;}// the error code is capturing the place where error happened
// but when user cancels the operation, the code should be AbortError
// irrespective of the position where failure happened
if(error.name&&error.name==='AbortError'){errorCodeString=FILE_TRANSFER_ERROR_TYPES.ABORT_ERROR;}return{errorCode:errorCodeString,errorDesc};}/**
 *
 * Creates a writable stream
 * InOrder to monitor progress, progressCallback is specified.
 */function createWriteStream(writeStreamData){const{size,fileId,processChunk,progress,fileName,transferType}=writeStreamData;let soFar=0;let soFarWrittenToDisk=0;// TODO need to tweak and see its impact on memory and performance
const queuingStrategy=new CountQueuingStrategy({highWaterMark:10});return new WritableStream({write(chunk){return __awaiter(this,void 0,void 0,function*(){const prom=new Promise((resolve,reject)=>{processChunk(fileId,chunk.buffer,soFar).then(len=>{soFarWrittenToDisk+=len;if(progress){progress({filesInfo:[{id:fileId,status:FILE_TRANSFER_STATUS.INPROGRESS,fileName,transferType,bytesProcessed:soFarWrittenToDisk,fileSize:size}]});}resolve();}).catch(error=>{console.error(`${STR_LOGGING_TAG$1}: createWritableStream: Write:  Error while writing to file: "${fileId}": ${error}`);reject(new Error(`writing error: ${error}`));});});soFar+=chunk.length;return prom;});},close(){return __awaiter(this,void 0,void 0,function*(){console.debug(`${STR_LOGGING_TAG$1}: createWritableStream: Close: file writing is completed`);});}},queuingStrategy);}/**
 *
 * @param fileName Original file name passed by clients
 * @returns filename of downladed file
 */function trimCloudDocFileName(fileName){const extension=getFileExtension(fileName);const fileType=CLOUD_DOC_DOWNLOAD_EXTENSIONS[extension];if(!fileType){throw new Error(`${extension} is not yet supported for cloud docs`);}return`${fileNameWithoutExtension(fileName)}.${fileType}`;}/**
 *
 * @param fileName Original file name passed by clients
 * @returns filename of downladed rendition file
 */function fetchDownloadRenditionFileName(fileName,outputMimeType){// Create output file name
if(!fileName){throw new Error("downloadRendition: fileName name is empty");}return`${fileNameWithoutExtension(fileName)}.${MimeTypesToExtensions[outputMimeType]}`;}/**
 * Calls the corresponding services and returns the response and size of file
 * @param file file to be exported
 * @param signal Signal for cancelling the export operation
 * @param fileId uniquely logging each export operation
 * @param context Contains the config info for making network requests
 */function downloadCloudDocs(fileId,file,signal,context){switch(file.mimeType){case MIMETYPES.XD_CLOUD_DOCUMENT:return exportXDC(fileId,file,signal,context);case MIMETYPES.PS_CLOUD_DOCUMENT_DEP:case MIMETYPES.ILLUSTRATOR_CLOUD_DOCUMENT:return exportCloudDocs(fileId,file,signal,context);default:return Promise.reject(new Error(`${file.mimeType} not supported for Export`));}}const STR_LOGGING_TAG='Export: ExportManager:';class ExportManager{constructor(){this.context={environment:'',getAccessToken:()=>{},clientId:''};this.jobs=new Map();}init(context){console.info(`${STR_LOGGING_TAG} init start`);this.context=context;console.info(`${STR_LOGGING_TAG} init done`);}// returns a list of supported mimetypes for conversion
getSupportedConversions(){return[MIMETYPES.PS_CLOUD_DOCUMENT_DEP,MIMETYPES.XD_CLOUD_DOCUMENT,MIMETYPES.ILLUSTRATOR_CLOUD_DOCUMENT];}getSupportedOutputMimeTypes(){return[MIMETYPES.JPG,MIMETYPES.PNG];}downloadUrl(url,signal){return __awaiter(this,void 0,void 0,function*(){try{// auth headers should not be passed for preSigned URL's
const request=new FetchRequest(url,this.context,{},false);const fileResponse=yield request.fetch(signal,true);FetchRequest.verifyStatus(fileResponse);return fileResponse;}catch(error){console.error(`${STR_LOGGING_TAG} downloadUrl: Error ocurred during download, error: ${error} `);throw error;}});}/**
   * Uses browser download support for downloading files
   * @param presignedUrl Presigned Url's
   * @param response Response
   * @param fileName file name displayed in file picker
   */browserDownload(presignedUrl,response,fileName){return __awaiter(this,void 0,void 0,function*(){try{if(presignedUrl){// if presigned url is available, then
// we assign to url to window so that browser
// will take care of both downloading and saving
window.location.assign(presignedUrl);}else{// using downloadJs for downloading file.
// we provide the entire blob to downloadJs.
// downloadJs provides the blob to browser and browser saves it.
download(yield response.blob(),fileName);}}catch(error){console.error(`${STR_LOGGING_TAG} browserDownload: Error ocurred during download, error: ${error} `);throw error;}});}writeToFile(params){return __awaiter(this,void 0,void 0,function*(){const{response:fileResponse,presignedUrl,fileName,size,fileId,callbacks,transferType,signal}=params;try{// if no callback is provided by clients for writing
// we use the browser's download mechanism
if(!callbacks.processChunk&&!callbacks.handleArrayBuffer){if(callbacks.progress){callbacks.progress({filesInfo:[{id:fileId,status:FILE_TRANSFER_STATUS.INPROGRESS,fileName,transferType}]});}yield this.browserDownload(presignedUrl,fileResponse,fileName);}else{let response;if(presignedUrl){response=yield this.downloadUrl(presignedUrl,signal);}else{response=fileResponse;}if(callbacks.handleArrayBuffer){// Download the entire file into memory
// provides the entire buffer to clients
const arrayBuffer=yield response.arrayBuffer();yield callbacks.handleArrayBuffer(fileId,arrayBuffer);}else{// Download the response chunk by chunk and
// provides the chunk to clients for writing to file system
const readableFileStream=response.body;const writableFileStream=createWriteStream({fileName,size,fileId,progress:callbacks.progress,processChunk:callbacks.processChunk,transferType});// pipeTo make sure that the writes are performed one after one
// and also provides back pressure
// i.e maintains the network speed  wrt writing speed
yield readableFileStream.pipeTo(writableFileStream);}}}catch(error){const errorMessage=constructErrorData(FILE_TRANSFER_ERROR_TYPES.DOWNLOAD_ERROR,error);console.error(`${STR_LOGGING_TAG} writeResponseToFile: Error ocurred during write, ${fileId}, error: ${JSON.stringify(errorMessage)} `);throw errorMessage;}});}convertAndDownloadFile(fileId,file,callbacks){return __awaiter(this,void 0,void 0,function*(){const startTime=Date.now();const abortFetchController=new AbortController();const{signal}=abortFetchController;// abortController and signal are for cancelling the download
this.jobs.set(fileId,{file,abortFetchController,startTime});try{// trim cloud doc file name
file.fileName=trimCloudDocFileName(file.fileName);const{fileName}=file;// Sends Waiting till the conversion is completed
if(callbacks.progress){callbacks.progress({filesInfo:[{id:fileId,status:FILE_TRANSFER_STATUS.WAITING,fileName,transferType:TRANSFER_TYPES.CONVERT}]});}console.info(`${STR_LOGGING_TAG} convertAndDownloadFile: ${fileId} Starting conversion process`);// Calls the corresponding service api's and get the response as a ReadableStream.
const{response,size,presignedUrl}=yield downloadCloudDocs(fileId,file,signal,this.context);console.info(`${STR_LOGGING_TAG} convertAndDownloadFile: ${fileId} Network Request was Successful. Now Downloading File`);// Once conversion is complete, we send start and then progress events
if(callbacks.progress){callbacks.progress({filesInfo:[{id:fileId,status:FILE_TRANSFER_STATUS.START,fileName,transferType:TRANSFER_TYPES.CONVERT}]});}// downloading the file
yield this.writeToFile({response,presignedUrl,fileName,size,fileId,callbacks,transferType:TRANSFER_TYPES.CONVERT,signal});const retValue={id:fileId,status:FILE_TRANSFER_STATUS.DONE,fileName,transferType:TRANSFER_TYPES.CONVERT,file,startTime};if(callbacks.progress){callbacks.progress({filesInfo:[Object.assign({},retValue)]});}this.jobs.delete(fileId);console.info(`${STR_LOGGING_TAG} downloadFile: ${fileId} Downloading File Complete`);return Object.assign({},retValue);}catch(error){console.error(`${STR_LOGGING_TAG} convertAndDownloadFile: Not able to export file: ${fileId}: ${JSON.stringify(error)}`);this.jobs.delete(fileId);const{fileName}=file;const retValue={id:fileId,status:FILE_TRANSFER_STATUS.FAILED,fileName,transferType:TRANSFER_TYPES.CONVERT,file,startTime,errorCode:error.errorCode,error:error.errorDesc};if(callbacks.progress){callbacks.progress({filesInfo:[Object.assign({},retValue)]});}return Object.assign({},retValue);}});}convertAndDownloadFiles(files,callbacks){const isSupported=this.isSupportedFileTypes(files);if(!isSupported){// returning empty list here (can also throw error)
return{files:[],onComplete:undefined};}const fileList=[];files.forEach(file=>{const fileId=uuid();fileList.push({file,fileId});});// adding promise which will resolve once bulk export is completed
let promiseResolver;const onComplete=new Promise(resolve=>{promiseResolver=resolve;});const convertAndDownloadCallback=()=>__awaiter(this,void 0,void 0,function*(){// adding sleep so that list of files
// is first returned back to caller before conversion starts.
yield sleep(0);const jobsPromise=Promise.all(fileList.map(({file,fileId})=>__awaiter(this,void 0,void 0,function*(){return this.convertAndDownloadFile(fileId,file,callbacks);})));jobsPromise.then(resultArray=>{if(callbacks.progress){callbacks.progress({batch:true,filesInfo:[...resultArray]});}promiseResolver([...resultArray]);});});convertAndDownloadCallback();return{files:fileList,onComplete};}isSupportedFileTypes(files){const mimeTypes=this.getSupportedConversions();const isSupported=files.every(({mimeType})=>mimeTypes.includes(mimeType));return isSupported;}downloadFile(fileId,file,callbacks){return __awaiter(this,void 0,void 0,function*(){const{size,urn,mimeType,outputMimeType}=file;const startTime=Date.now();const abortFetchController=new AbortController();const{signal}=abortFetchController;// abortController and signal are for cancelling the download
this.jobs.set(fileId,{file,abortFetchController,startTime});try{// sends error in case export is not supported for input mimetype
if(!this.isExportAvailable(mimeType,outputMimeType)){const errorDesc=`Download of Mimetype: ${mimeType} is not supported`;console.error(`${STR_LOGGING_TAG} downloadFile: ${fileId} error: ${errorDesc}`);const error=constructErrorData(FILE_TRANSFER_ERROR_TYPES.UNSUPPORTED_FILE_FORMAT,errorDesc);throw error;}// If only rendition is expected, fetch the desired name
if(outputMimeType){file.fileName=fetchDownloadRenditionFileName(file.fileName,outputMimeType);}const{fileName}=file;// Sends Waiting till download is not started
if(callbacks.progress){callbacks.progress({filesInfo:[{id:fileId,status:FILE_TRANSFER_STATUS.WAITING,fileName,transferType:TRANSFER_TYPES.DOWNLOAD}]});}console.info(`${STR_LOGGING_TAG} downloadFile: ${fileId} Starting to download`);// Calls the repo api's and get the response as a ReadableStream.
const acpUtils=new ACPUtils(this.context,signal);const downloadResponse=yield acpUtils.getSizeAndDownloadAsset({urn,size,outputMimeType,fileName});const{response,size:fileSize,presignedUrl}=downloadResponse;console.info(`${STR_LOGGING_TAG} downloadFile: ${fileId} Network Request was Successful. Now Downloading File`);// Once download starts, we send start and then progress events
if(callbacks.progress){callbacks.progress({filesInfo:[{id:fileId,status:FILE_TRANSFER_STATUS.START,fileName,transferType:TRANSFER_TYPES.DOWNLOAD}]});}// downloading the file
yield this.writeToFile({response,presignedUrl,fileName,size:fileSize,fileId,callbacks,transferType:TRANSFER_TYPES.DOWNLOAD,signal});const retValue={id:fileId,status:FILE_TRANSFER_STATUS.DONE,fileName,transferType:TRANSFER_TYPES.DOWNLOAD,file,startTime,outputMimeType};if(callbacks.progress){callbacks.progress({filesInfo:[Object.assign({},retValue)]});}this.jobs.delete(fileId);console.info(`${STR_LOGGING_TAG} downloadFile: ${fileId} Downloading File Complete`);return Object.assign({},retValue);}catch(error){console.error(`${STR_LOGGING_TAG} downloadFile: Not able to export file: ${fileId}: ${JSON.stringify(error)}`);this.jobs.delete(fileId);const{fileName}=file;const retValue={id:fileId,status:FILE_TRANSFER_STATUS.FAILED,fileName,transferType:TRANSFER_TYPES.DOWNLOAD,file,startTime,errorCode:error.errorCode,error:error.errorDesc,outputMimeType};if(callbacks.progress){callbacks.progress({filesInfo:[Object.assign({},retValue)]});}return Object.assign({},retValue);}});}downloadFiles(files,callbacks){const fileList=[];files.forEach(file=>{const fileId=uuid();fileList.push({file,fileId});});// adding promise which will resolve once bulk export is completed
let promiseResolver;const onComplete=new Promise(resolve=>{promiseResolver=resolve;});const downloadCallback=()=>__awaiter(this,void 0,void 0,function*(){// adding sleep so that list of files
// is first returned back to caller before conversion starts.
yield sleep(0);const jobsPromise=Promise.all(fileList.map(({file,fileId})=>__awaiter(this,void 0,void 0,function*(){return this.downloadFile(fileId,file,callbacks);})));jobsPromise.then(filesInfo=>{if(callbacks.progress){callbacks.progress({batch:true,filesInfo:[...filesInfo]});}promiseResolver([...filesInfo]);});});downloadCallback();return{files:fileList,onComplete};}// cancels the export op for given fileId
cancelExportOp(fileId){const job=this.jobs.get(fileId);if(!job||!job.abortFetchController){return false;}job.abortFetchController.abort();return true;}// takes a mimetype and returns boolean indicating
// whether export action is available or not
isExportAvailable(mimeType,outputMimeType){if(outputMimeType){// validate outputMimeType if present
if(!this.getSupportedOutputMimeTypes().includes(outputMimeType)){return false;}}const supportedCloudDocs=this.getSupportedConversions();// In CloudDocs, we only support export for PSDC/XDC/AIC
if(mimeType&&mimeType.endsWith('+dcx')&&!supportedCloudDocs.includes(mimeType)){return false;}return true;}}class ExportStore{constructor(){this.exportManager=new ExportManager();}init(context){this.exportManager.init(context);}convertAndDownloadFiles(files,callbacks){return this.exportManager.convertAndDownloadFiles(files,callbacks);}downloadFiles(files,callbacks){return this.exportManager.downloadFiles(files,callbacks);}getSupportedConversions(){return this.exportManager.getSupportedConversions();}// cancels the ongoing export/download op.
cancelExportOp(fileId){return this.exportManager.cancelExportOp(fileId);}isExportAvailable(mimeType){return this.exportManager.isExportAvailable(mimeType);}}
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("yLpj"), __webpack_require__("HDXh").Buffer, __webpack_require__("8oxB")))

/***/ }),

/***/ "8EpC":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _createClass = function () {
  function defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i];
      descriptor.enumerable = descriptor.enumerable || false;
      descriptor.configurable = true;
      if ("value" in descriptor) descriptor.writable = true;
      Object.defineProperty(target, descriptor.key, descriptor);
    }
  }

  return function (Constructor, protoProps, staticProps) {
    if (protoProps) defineProperties(Constructor.prototype, protoProps);
    if (staticProps) defineProperties(Constructor, staticProps);
    return Constructor;
  };
}();

var _DAO2 = __webpack_require__("io2S");

var _DAO3 = _interopRequireDefault(_DAO2);

var _utils = __webpack_require__("VKd2");

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _classCallCheck(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}

function _possibleConstructorReturn(self, call) {
  if (!self) {
    throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
  }

  return call && (typeof call === "object" || typeof call === "function") ? call : self;
}

function _inherits(subClass, superClass) {
  if (typeof superClass !== "function" && superClass !== null) {
    throw new TypeError("Super expression must either be null or a function, not " + typeof superClass);
  }

  subClass.prototype = Object.create(superClass && superClass.prototype, {
    constructor: {
      value: subClass,
      enumerable: false,
      writable: true,
      configurable: true
    }
  });
  if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;
}
/**
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 */


var InstanceConfig = {};

var CapabilitiesService = function (_DAO) {
  _inherits(CapabilitiesService, _DAO);

  function CapabilitiesService() {
    _classCallCheck(this, CapabilitiesService);

    return _possibleConstructorReturn(this, (CapabilitiesService.__proto__ || Object.getPrototypeOf(CapabilitiesService)).apply(this, arguments));
  }

  _createClass(CapabilitiesService, [{
    key: 'get',

    /**
    * Get collaborations for the user.
    * @param {String} path - CC Storage path (path based or ID-based)
    * @returns {Promise}
    */
    value: function get() {
      var path = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';

      if (!path) {
        throw new Error('Missing Resource Path');
      }

      var url = this.endpoint + '/capabilities/' + (0, _utils.getUrlPath)(path);
      return this.getRequest({
        url: url
      });
    }
  }]);

  return CapabilitiesService;
}(_DAO3.default);

exports.default = (0, _utils.InstanceCreator)(CapabilitiesService, InstanceConfig);
module.exports = exports['default'];

/***/ }),

/***/ "8Esu":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXPORTS
__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ GRID_TILE_HMARGIN; });
__webpack_require__.d(__webpack_exports__, "b", function() { return /* binding */ GridView_GridViewPlaceholder; });

// UNUSED EXPORTS: CANVAS_WIDTH, CANVAS_HEIGHT, GridViewForTests, GRID_TILE_FOOTER_HEIGHT, GRID_TILE_VMARGIN, SORTBY_TO_COL_ID

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__("q1tI");
var react_default = /*#__PURE__*/__webpack_require__.n(react);

// EXTERNAL MODULE: ./node_modules/mobx-react/index.module.js
var index_module = __webpack_require__("okNM");

// EXTERNAL MODULE: ./node_modules/react-intl-cdo/lib/index.es.js + 1 modules
var index_es = __webpack_require__("VIzJ");

// EXTERNAL MODULE: ./node_modules/lodash/throttle.js
var throttle = __webpack_require__("DzJC");
var throttle_default = /*#__PURE__*/__webpack_require__.n(throttle);

// EXTERNAL MODULE: ./node_modules/classnames/index.js
var classnames = __webpack_require__("TSYQ");
var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);

// EXTERNAL MODULE: ./node_modules/react-virtualized/dist/es/index.js + 67 modules
var es = __webpack_require__("c7k8");

// EXTERNAL MODULE: ./node_modules/@adobe/react-virtualized/dist/es/index.js + 65 modules
var dist_es = __webpack_require__("UaZ8");

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Checkbox/index.js
var Checkbox = __webpack_require__("L+OI");
var Checkbox_default = /*#__PURE__*/__webpack_require__.n(Checkbox);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Button/index.js
var Button = __webpack_require__("Cn9g");
var Button_default = /*#__PURE__*/__webpack_require__.n(Button);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/DropdownButton/index.js
var DropdownButton = __webpack_require__("6y7h");
var DropdownButton_default = /*#__PURE__*/__webpack_require__.n(DropdownButton);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Menu/index.js
var Menu = __webpack_require__("kzNO");

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/ChevronDown/index.js
var ChevronDown = __webpack_require__("uXGE");
var ChevronDown_default = /*#__PURE__*/__webpack_require__.n(ChevronDown);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/FocusManager/FocusManager.tsx + 3 modules
var FocusManager = __webpack_require__("QuN5");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/stores/SelectionStore.ts
var SelectionStore = __webpack_require__("fr3g");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/SortDropdown.tsx
var SortDropdown = __webpack_require__("qv4D");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/utils/metrics.ts
var metrics = __webpack_require__("rjSc");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/utils/utils.ts
var utils = __webpack_require__("FdDf");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/utils/react-virtualized-change-props.ts
var react_virtualized_change_props = __webpack_require__("Lg+r");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/utils/ensure-focus-on-items.ts
var ensure_focus_on_items = __webpack_require__("6som");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/utils/constants.ts
var constants = __webpack_require__("bXP0");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/ErrorBoundary.tsx
var ErrorBoundary = __webpack_require__("jSb8");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/stores/constants.ts
var stores_constants = __webpack_require__("q0hk");

// EXTERNAL MODULE: ./node_modules/mobx/lib/mobx.module.js
var mobx_module = __webpack_require__("2vnA");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/utils/scrollbar-measurer.ts
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/


let measureDiv;
const Measurer = Object(mobx_module["z" /* observable */])({
    scrollbarWidth: 16,
});
function measureScrollbar() {
    if (!measureDiv) {
        measureDiv = document.createElement('div');
        measureDiv.setAttribute('style', 'position: absolute; top: -999px; height: 100px; width: 100px; overflow: scroll;');
        measureDiv.appendChild(document.createElement('div'));
        measureDiv.firstChild.style.height = '200px';
        document.body.appendChild(measureDiv);
        // Changing OS scrollbar settings will trigger resize event
        utils["a" /* default */].getResizeElement().addEventListener('resize', measureScrollbar);
    }
    const ms = 10; // UXP seems to take 30-80ms to update sizes
    setTimeout(() => {
        Object(mobx_module["C" /* runInAction */])(() => {
            Measurer.scrollbarWidth = measureDiv.offsetWidth - measureDiv.firstChild.offsetWidth;
        });
    }, ms);
}
function getScrollbarMeasurer() {
    measureScrollbar();
    return Measurer;
}

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/UnableToOpenItemWarning.tsx
var UnableToOpenItemWarning = __webpack_require__("+UvZ");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/GridItem.tsx + 1 modules
var CDOView_GridItem = __webpack_require__("mwpz");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/styles/GridView.css
var styles_GridView = __webpack_require__("Uqbb");
var GridView_default = /*#__PURE__*/__webpack_require__.n(styles_GridView);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/styles/Accessibility.css
var Accessibility = __webpack_require__("qXl4");
var Accessibility_default = /*#__PURE__*/__webpack_require__.n(Accessibility);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/components/oneup/ScrollContainer.tsx
var ScrollContainer = __webpack_require__("xKtb");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/ProjectAnalytics.ts
var ProjectAnalytics = __webpack_require__("mm/P");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/GridView.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
/* eslint-disable max-classes-per-file, react/no-find-dom-node */
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;
};






























const GRID_TILE_FOOTER_HEIGHT = 44; // content + top margin
const GRID_TILE_VMARGIN = 36;
const GRID_TILE_HMARGIN = 24;
const PROJECTS_PADDING_RIGHT = 32; // if you change this, change --ccac-projects-padding-right too!
const GRID_RIGHT_MARGIN = PROJECTS_PADDING_RIGHT - GRID_TILE_HMARGIN;
// Size of the Library "Mosaic Mini" card style (used in the OneUp overview):
const MOSAIC_MINI_WIDTH = 232;
const MOSAIC_MINI_HEIGHT = 56;
// Canvas card styles for OneUp view
const CANVAS_WIDTH = 232;
const CANVAS_HEIGHT = 131;
const CANVAS_FOOTER_HEIGHT = 55;
// =====================================
// DO NOT CHANGE THESE MIN/MAX RANGES without checking
// all widths in _computeColumns to make no white space errors thrown
const GRID_TILE_WH_MAX = 212;
const GRID_TILE_WH_MIN = 150;
const GRID_TILE_WH_MIN_SMALLER = 120;
// =====================================
/**
 * Simple unordered grid view bound to data store.
 */
let GridView_GridView = class GridView extends react_default.a.Component {
    constructor() {
        super(...arguments);
        this.state = {
            columnCount: 0,
            columnWidth: 0,
            elementsSeen: [],
            height: 0,
            lastColumnWidth: 0,
            rowHeight: 0,
            tileHeight: 0,
            tileWidth: 0,
            width: 0,
        };
        this._gridRef = react_default.a.createRef();
        this.onRowsRendered = options => { };
        // Methods like getBoundingClientRect in this._computeLayout below, when requested/called in JavaScript,
        // will trigger the browser to synchronously calculate the style and layout. This
        // is also called reflow or layout thrashing, and is a common performance bottleneck.
        // https://gist.github.com/paulirish/5d52fb081b3570c81e3a
        //
        // Use lodash throttle to fire resizeHandler at most once per MINIMUM_ACCEPTED_TIMEOUT ms
        this.handleResize = throttle_default()(() => {
            if (this._gridRef && this._gridRef.current) {
                // UXP dispatches the resize event every 'frame' rendered on the screen
                // even if the user has not resized the screen. To resolve this
                // We need to compare the current dimensions of the screen against
                // the values saved in this.state
                const dimensions = this._gridRef.current.getBoundingClientRect();
                if (utils["a" /* default */].usingUXP()) {
                    if ((dimensions.width === this.state.width &&
                        dimensions.height === this.state.height) ||
                        // Hack for [CCPROJ-4800]: Ignore resize if width change is equal to scrollbar width
                        // Otherwise tileWidth changes in GridView and ColumnSizer re-renders the Grid which causes infinite flickering
                        Math.abs(dimensions.width - this.state.width) ===
                            getScrollbarMeasurer().scrollbarWidth) {
                        return;
                    }
                }
                this._computeLayout(dimensions);
            }
        }, constants["h" /* MINIMUM_ACCEPTED_TIMEOUT */]);
        this.onUpdatePosition = () => {
            if (this.windowScrollerRef.current) {
                this.windowScrollerRef.current.updatePosition();
            }
        };
        this.changeSort = (sortBy) => {
            const { onSortSelected } = this.props;
            onSortSelected === null || onSortSelected === void 0 ? void 0 : onSortSelected(sortBy);
        };
        this._getFocusOffset = () => this.state.columnCount;
        /**
         * Cell Renderer
         * The function called for each cell rendered on the Grid
         * more information https://github.com/bvaughn/react-virtualized/blob/master/docs/Grid.md
         */
        this.onCellRender = ({ columnIndex, // Horizontal (column) index of cell
        isScrolling, // The Grid is currently being scrolled
        isVisible, // This cell is visible within the grid (eg it is not an overscanned cell)
        key, // Unique key within array of cells
        parent, // Reference to the parent Grid (instance)
        rowIndex, // Vertical (row) index of cell
        style, }) => {
            const { selectionStore, elements, ingestSubcategory, children, useAdobeReactVirtualized, renditionType, } = this.props;
            const { tileWidth, tileHeight, columnCount } = this.state;
            const curIndex = rowIndex * columnCount + columnIndex;
            if (curIndex >= elements.length) {
                const { renderOnboardingItem, renderOnboardingOnFirstRow } = this.props;
                if (renderOnboardingItem) {
                    // If the onboarding renders on the first row, then it must be the last cell on the first row.
                    // Otherwise, this is the first cell on the second row.
                    const isOnboardingCell = renderOnboardingOnFirstRow
                        ? rowIndex === 0 && curIndex === elements.length
                        : rowIndex === 1 && columnIndex === 0;
                    if (isOnboardingCell) {
                        // Render the bottom row instead.
                        return renderOnboardingItem(style);
                    }
                }
                return;
            }
            const element = elements[curIndex];
            const isSelected = selectionStore === null || selectionStore === void 0 ? void 0 : selectionStore.isSelected(element);
            const { type: ItemComponent, props: passedThroughProps } = children;
            const GridItem = ItemComponent === CDOView_GridItem["a" /* GridItemPlaceholder */] ? CDOView_GridItem["b" /* default */] : ItemComponent;
            // Set tabIndex as -1 and let FocusManager handle tabIndex for focusable items
            const itemTabIndex = -1;
            return (react_default.a.createElement("div", { key: key, style: style },
                react_default.a.createElement(ErrorBoundary["a" /* default */], { message: "GridView.GridItem failed to render" },
                    react_default.a.createElement(UnableToOpenItemWarning["a" /* default */], Object.assign({}, passedThroughProps, { element: element }),
                        react_default.a.createElement(GridItem, Object.assign({ element: element, isSelected: isSelected, tileWidth: tileWidth, tileHeight: tileHeight, ingestSubcategory: ingestSubcategory, tabIndex: itemTabIndex, renditionType: renditionType, dataTestId: `GridItem__cell__${rowIndex}__${columnIndex}` }, passedThroughProps))))));
        };
        this.onSectionRendered = ({ columnStartIndex, columnStopIndex, rowStartIndex, rowStopIndex, }) => {
            const { columnCount } = this.state;
            const visibleCellCount = (columnStopIndex + 1) * (rowStopIndex - rowStartIndex + 1);
            const startIdx = (rowStopIndex + 1) * columnCount - visibleCellCount;
            this._trackVisibleElements(startIdx, visibleCellCount);
            Object(ensure_focus_on_items["a" /* default */])(constants["e" /* FOCUS_ITEM_CLASS */], this._gridRef.current);
            const startIndex = rowStartIndex * columnCount + columnStartIndex;
            const stopIndex = rowStopIndex * columnCount + columnStopIndex;
            this.onRowsRendered({ startIndex, stopIndex });
        };
        this.onClickSortDir = () => {
            const { activeSort } = this.props;
            this.changeSort(activeSort);
        };
        this.isRowLoaded = ({ index }) => {
            const elementCount = this.props.elements.length;
            const columnCount = this.state.columnCount || 1;
            return elementCount >= columnCount * index;
        };
        this.loadMoreRows = options => {
            var _a, _b;
            return (_b = (_a = this.props).loadMore) === null || _b === void 0 ? void 0 : _b.call(_a, options);
        };
        this.windowScrollerRef = react_default.a.createRef();
    }
    componentDidMount() {
        const resizeEl = utils["a" /* default */].getResizeElement();
        resizeEl.addEventListener('resize', this.handleResize);
        resizeEl.addEventListener('spacesUpdatePosition', this.onUpdatePosition);
        this.handleResize();
    }
    componentDidUpdate(prevProps) {
        const { elements } = this.props;
        const dimensions = this._gridRef.current.getBoundingClientRect();
        // If the grid has resized since the last time we rendered, recompute the layout.
        // Similarly, if the number of elements has changed, recompute.
        if (dimensions.width !== this.state.width ||
            dimensions.height !== this.state.height ||
            prevProps.elements.length !== elements.length) {
            this._computeLayout(dimensions);
        }
        Object(ensure_focus_on_items["a" /* default */])(constants["e" /* FOCUS_ITEM_CLASS */], this._gridRef.current);
    }
    componentWillUnmount() {
        // Cancel any pending throttled resizeHandler events
        this.handleResize.cancel();
        const resizeEl = utils["a" /* default */].getResizeElement();
        resizeEl.removeEventListener('resize', this.handleResize);
        resizeEl.removeEventListener('spacesUpdatePosition', this.onUpdatePosition);
    }
    _computeColumns(totalWidth) {
        const { disableScrollbarInset, preferSmallerGridSizes, renditionType } = this.props;
        const scrollbarWidth = disableScrollbarInset ? 0 : getScrollbarMeasurer().scrollbarWidth;
        const width = totalWidth - scrollbarWidth;
        let minCardSize;
        let maxCardSize;
        switch (renditionType) {
            case 'canvas':
                minCardSize = CANVAS_WIDTH;
                maxCardSize = CANVAS_WIDTH;
                break;
            case 'mosaicMini':
                minCardSize = MOSAIC_MINI_WIDTH;
                maxCardSize = MOSAIC_MINI_WIDTH;
                break;
            default:
                minCardSize = preferSmallerGridSizes ? GRID_TILE_WH_MIN_SMALLER : GRID_TILE_WH_MIN;
                maxCardSize = GRID_TILE_WH_MAX;
                break;
        }
        // Minimum card size gives the maximum column count
        const columnCount = Math.floor(width / (minCardSize + GRID_TILE_HMARGIN));
        // Maximum column width that still fits `columnCount` columns in `width`
        const optimalColumnWidth = Math.floor(width / columnCount);
        // Corresponding tileWidth, capped by `maxCardSize`
        const optimalTileWidth = Math.min(maxCardSize, optimalColumnWidth - GRID_TILE_HMARGIN);
        return {
            columnCount,
            columnWidth: optimalTileWidth + GRID_TILE_HMARGIN,
            tileWidth: optimalTileWidth,
        };
    }
    _computeLayout({ width, height }) {
        const { elements = [], tileVMargin = GRID_TILE_VMARGIN, renditionType } = this.props;
        if (elements.length === 0) {
            return;
        }
        const { columnWidth, tileWidth, columnCount } = this._computeColumns(width - GRID_RIGHT_MARGIN);
        let tileHeight;
        let rowHeight;
        switch (renditionType) {
            case 'canvas':
                tileHeight = CANVAS_HEIGHT;
                rowHeight = CANVAS_HEIGHT + CANVAS_FOOTER_HEIGHT + tileVMargin;
                break;
            case 'mosaicMini':
                tileHeight = MOSAIC_MINI_HEIGHT;
                rowHeight = MOSAIC_MINI_HEIGHT + tileVMargin;
                break;
            default:
                tileHeight = tileWidth;
                rowHeight = columnWidth + GRID_TILE_FOOTER_HEIGHT + tileVMargin;
                break;
        }
        this.setState({
            columnCount,
            columnWidth,
            height,
            lastColumnWidth: tileWidth,
            rowHeight,
            tileHeight,
            tileWidth,
            width,
        });
        // When the grid/list has potentially resized, notify any grid/lists in
        // the same scroll container that they should call WindowScroller.updatePosition()
        // so that they know where their scroll offsets are.
        const resizeEl = utils["a" /* default */].getResizeElement();
        resizeEl.dispatchEvent(new CustomEvent('spacesUpdatePosition'));
    }
    _trackVisibleElements(startIdx, visibleCells) {
        const { activeSort, activeSortDirection, ccxIngest, elements, itemViewEvent } = this.props;
        const { elementsSeen } = this.state;
        const newIds = elements
            .slice(startIdx, startIdx + visibleCells)
            .filter(element => !elementsSeen.includes(element.id))
            .map(element => {
            if (itemViewEvent && ProjectAnalytics["g" /* default */].globalAnalyticsEnabled) {
                ccxIngest === null || ccxIngest === void 0 ? void 0 : ccxIngest.fireEvent({
                    ...metrics["a" /* default */].getProjectData(element),
                    event: itemViewEvent,
                    ui: {
                        view_type: 'grid',
                        sort_order: activeSortDirection,
                        sequence: activeSort,
                    },
                });
            }
            return element.id;
        });
        this.setState({
            elementsSeen: elementsSeen.concat(newIds),
        });
    }
    renderInfiniteLoader(children) {
        const { useAdobeReactVirtualized, elements, total } = this.props;
        const { columnCount } = this.state;
        const infiniteLoaderProps = {
            isRowLoaded: this.isRowLoaded,
            loadMoreRows: this.loadMoreRows,
            rowCount: total || Math.ceil(elements.length / (columnCount || 1)),
        };
        return useAdobeReactVirtualized ? (react_default.a.createElement(dist_es["c" /* InfiniteLoader */], Object.assign({}, infiniteLoaderProps), children)) : (react_default.a.createElement(es["c" /* InfiniteLoader */], Object.assign({}, infiniteLoaderProps), children));
    }
    renderColumnSizer(children) {
        const { useAdobeReactVirtualized } = this.props;
        const { width, columnCount, columnWidth } = this.state;
        const columSizerProps = {
            columnMaxWidth: columnWidth,
            columnCount,
            width: width - GRID_RIGHT_MARGIN,
        };
        if (useAdobeReactVirtualized) {
            return react_default.a.createElement(dist_es["a" /* ColumnSizer */], Object.assign({}, columSizerProps), children);
        }
        return react_default.a.createElement(es["a" /* ColumnSizer */], Object.assign({}, columSizerProps), children);
    }
    get rowCount() {
        const { elements } = this.props;
        const { columnCount } = this.state;
        return Math.ceil(elements.length / (columnCount || 1));
    }
    renderGrid() {
        const { width, height, columnCount, rowHeight } = this.state;
        const { elements, autoHeight, selectionStore, overscanRowCount = 10, additionalChangeProps, useAdobeReactVirtualized, renderOnboardingOnFirstRow, renderOnboardingItem, onboardingRowHeight, limitRowCount, } = this.props;
        let adjustedRowHeight = rowHeight;
        let { rowCount } = this;
        if (limitRowCount) {
            // Limit to just the first row.
            rowCount = Math.min(1, rowCount);
        }
        if (renderOnboardingItem && rowCount <= 1 && !renderOnboardingOnFirstRow) {
            // If we only have one row and we have an onboarding, then we can
            // add one more row render the onboarding experience.
            ++rowCount;
            if (onboardingRowHeight !== undefined) {
                adjustedRowHeight = onboardingRowHeight;
            }
        }
        const commonGridProps = {
            // Workaround for overlapping scrollbars: https://git.corp.adobe.com/torq/react-spectrum/pull/460
            className: 'ReactScrollViewNode',
            cellRenderer: this.onCellRender,
            columnCount,
            containerRole: 'row',
            rowCount,
            rowHeight: adjustedRowHeight,
            height,
            overscanRowCount,
            overscanColumnCount: 1,
            autoHeight,
            tabIndex: -1,
            // Trigger re-render when these values change
            // NOTE: elements must come from a mobx-state-tree view that returns a new array
            // so that React-virtualized can do simple === check on these props to detect changes
            // Pass selectionStore.storeUpdateId, which is mobx @computed, so it only changes when
            // the underlying selections change.
            ...Object(react_virtualized_change_props["a" /* default */])(elements, selectionStore.storeUpdateId, ...additionalChangeProps),
            overscanIndicesGetter: es["f" /* accessibilityOverscanIndicesGetter */],
            onSectionRendered: this.onSectionRendered,
        };
        const GridComponent = useAdobeReactVirtualized ? dist_es["b" /* Grid */] : es["b" /* Grid */];
        return (react_default.a.createElement("div", { className: GridView_default.a.itemsContainer, ref: this._gridRef },
            react_default.a.createElement(ErrorBoundary["a" /* default */], { message: "GridView.ReactVirtualized.InfiniteLoader failed to render" }, this.renderInfiniteLoader(({ onRowsRendered }) => {
                this.onRowsRendered = onRowsRendered;
                return (react_default.a.createElement(ErrorBoundary["a" /* default */], { message: "GridView.ReactVirtualized.ColumnSizer failed to render" }, this.renderColumnSizer(({ getColumnWidth, registerChild }) => (react_default.a.createElement(ScrollContainer["a" /* ScrollContainerContext */].Consumer, null, scrollContainer => (react_default.a.createElement(ErrorBoundary["a" /* default */], { message: "GridView.ReactVirtualized.Grid failed to render" }, 
                // FocusManager has to be wrapped
                // Directly around Grid
                this.renderFocusElement(scrollContainer ? (react_default.a.createElement(es["e" /* WindowScroller */], { ref: this.windowScrollerRef, scrollElement: scrollContainer }, ({ height, isScrolling, onChildScroll, scrollTop, }) => {
                    return (react_default.a.createElement(GridComponent, Object.assign({ ref: registerChild, columnWidth: getColumnWidth, width: this.state.width }, commonGridProps, { autoHeight: true, height: height, isScrolling: isScrolling, onScroll: onChildScroll, scrollTop: scrollTop })));
                })) : (react_default.a.createElement(GridComponent, Object.assign({ ref: registerChild, columnWidth: getColumnWidth, width: this.state.width }, commonGridProps)))))))))));
            }))));
    }
    renderFocusElement(children) {
        const { focusManagementEnabled } = this.props;
        if (focusManagementEnabled) {
            return (react_default.a.createElement(FocusManager["a" /* default */], { itemSelector: `.${constants["e" /* FOCUS_ITEM_CLASS */]}`, orientation: "both", manageTabIndex: true, prevFocusOffset: this._getFocusOffset, nextFocusOffset: this._getFocusOffset, disableCyclicFocus: true },
                react_default.a.createElement("div", { tabIndex: -1 }, children)));
        }
        return children;
    }
    renderGridHeader() {
        const { onSelectAllItems, activeSort, activeSortDirection, selectionStore, elements, sortOptions, intl, isSelectAllDisabled, contentBelowHeader, } = this.props;
        const selectAllEnabled = !isSelectAllDisabled;
        const selectionCount = selectionStore.size;
        const hasSelections = selectionCount > 0;
        const allItemsAreSelected = selectionCount === elements.length;
        return (react_default.a.createElement(ErrorBoundary["a" /* default */], { message: "GridView.header failed to render" },
            react_default.a.createElement("div", { className: GridView_default.a.headerWrapper },
                react_default.a.createElement("div", { className: GridView_default.a.header },
                    selectAllEnabled && (react_default.a.createElement("div", { id: `CDOGridView_SelectAll_Selected_${hasSelections}`, className: GridView_default.a.checkBoxContainer },
                        react_default.a.createElement(Checkbox_default.a
                        // marstewa 5/18/20
                        // TODO: remove tabIndex={0} once UXP is fixed
                        // https://jira.corp.adobe.com/browse/UXP-13813
                        , Object.assign({ 
                            // marstewa 5/18/20
                            // TODO: remove tabIndex={0} once UXP is fixed
                            // https://jira.corp.adobe.com/browse/UXP-13813
                            tabIndex: 0, id: "CDOGridView_SelectAllCheckbox", className: GridView_default.a.focusItem, checked: allItemsAreSelected, indeterminate: !allItemsAreSelected && hasSelections, onChange: onSelectAllItems, label: intl.formatMessage({ id: 'header.selectAll' }) }, (isSelectAllDisabled ? { disabled: true } : {}))))),
                    react_default.a.createElement(ErrorBoundary["a" /* default */], { message: "GridView.sortByDropDownContainer failed to render" },
                        react_default.a.createElement("div", { id: `CDOGridView_SortOrder_${activeSortDirection}`, className: GridView_default.a.sortByDropdownContainer },
                            react_default.a.createElement("div", { id: "CDOGridView_SortBy_Label", className: classnames_default()(GridView_default.a.sortByLabel, {
                                    [GridView_default.a.firstOnLeft]: !selectAllEnabled,
                                }) }, intl.formatMessage({ id: 'header.SortBy' })),
                            react_default.a.createElement("span", { className: Accessibility_default.a.visuallyHidden, id: "CDOGridView_SortByDropDown_arialabel" },
                                intl.formatMessage({ id: 'header.SortBy' }),
                                intl.formatMessage({
                                    id: `header.${stores_constants["e" /* SORTBY_TO_COL_ID */][activeSort]}`,
                                }),
                                intl.formatMessage({
                                    id: `header.SortBy.${activeSortDirection}`,
                                })),
                            react_default.a.createElement(DropdownButton_default.a, { id: "CDOGridView_SortByDropDown", className: GridView_default.a.dropdownButton, label: intl.formatMessage({
                                    id: `header.${stores_constants["e" /* SORTBY_TO_COL_ID */][activeSort]}`,
                                }), icon: react_default.a.createElement(ChevronDown_default.a, null), onSelect: this.changeSort, "aria-labelledby": 'CDOGridView_SortByDropDown_arialabel' }, sortOptions.map(option => (react_default.a.createElement(Menu["MenuItem"], { key: option, id: `SortByDropDown_${stores_constants["e" /* SORTBY_TO_COL_ID */][option]}`, value: option, selected: option === activeSort }, intl.formatMessage({
                                id: `header.${stores_constants["e" /* SORTBY_TO_COL_ID */][option]}`,
                            }))))),
                            react_default.a.createElement("div", { className: GridView_default.a.sortSeperator }),
                            react_default.a.createElement("span", { className: Accessibility_default.a.visuallyHidden, id: "CDOGridView_SortByDirection_arialabel" },
                                intl.formatMessage({ id: 'header.ChangeSortDirection' }),
                                intl.formatMessage({
                                    id: `header.SortBy.${activeSortDirection === 'asc' ? 'desc' : 'asc'}`,
                                })),
                            react_default.a.createElement(Button_default.a, { className: GridView_default.a.sortByArrow, variant: "tool", "aria-labelledby": 'CDOGridView_SortByDirection_arialabel', icon: react_default.a.createElement(SortDropdown["a" /* SortArrow */], { activeSortDirection: activeSortDirection }), onClick: this.onClickSortDir })))),
                contentBelowHeader)));
    }
    /**
     * Component renderer.
     * @return {ReactElement} markup
     */
    render() {
        const { className, isHeaderVisible } = this.props;
        return (react_default.a.createElement("div", { className: classnames_default()(GridView_default.a.GridView, className && GridView_default.a[className]) },
            isHeaderVisible && this.renderGridHeader(),
            this.renderGrid()));
    }
};
GridView_GridView.defaultProps = {
    additionalChangeProps: [],
    onSortSelected: () => { },
    isHeaderVisible: true,
    selectionStore: new SelectionStore["a" /* default */](),
    disableScrollbarInset: true,
};
GridView_GridView = __decorate([
    index_module["e" /* observer */]
], GridView_GridView);
/**
 * In views that render GridView as a child of CDOView, use this component to ensure any props that are passed are
 * validated, invalid props are flagged, but all props are optional. It does not provide any functionality other than
 * signalling to CDOView that it should render GridView when appropriate and ensure type-checking.
 */
class GridView_GridViewPlaceholder extends react_default.a.PureComponent {
}
/* harmony default export */ var CDOView_GridView = __webpack_exports__["c"] = (Object(index_es["g" /* injectIntl */])(GridView_GridView));



/***/ }),

/***/ "8LZn":
/***/ (function(module, exports, __webpack_require__) {

// extracted by mini-css-extract-plugin

/***/ }),

/***/ "8LbN":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return CONSOLE_LEVELS; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return consoleSandbox; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return logger; });
/* harmony import */ var _worldwide_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("rbyU");

/** Prefix for logging strings */

const PREFIX = 'Sentry Logger ';
const CONSOLE_LEVELS = ['debug', 'info', 'warn', 'error', 'log', 'assert', 'trace'];
/**
 * Temporarily disable sentry console instrumentations.
 *
 * @param callback The function to run against the original `console` messages
 * @returns The results of the callback
 */

function consoleSandbox(callback) {
  if (!('console' in _worldwide_js__WEBPACK_IMPORTED_MODULE_0__[/* GLOBAL_OBJ */ "a"])) {
    return callback();
  }

  const originalConsole = _worldwide_js__WEBPACK_IMPORTED_MODULE_0__[/* GLOBAL_OBJ */ "a"].console;
  const wrappedLevels = {}; // Restore all wrapped console methods

  CONSOLE_LEVELS.forEach(level => {
    // TODO(v7): Remove this check as it's only needed for Node 6
    const originalWrappedFunc = originalConsole[level] && originalConsole[level].__sentry_original__;

    if (level in originalConsole && originalWrappedFunc) {
      wrappedLevels[level] = originalConsole[level];
      originalConsole[level] = originalWrappedFunc;
    }
  });

  try {
    return callback();
  } finally {
    // Revert restoration to wrapped state
    Object.keys(wrappedLevels).forEach(level => {
      originalConsole[level] = wrappedLevels[level];
    });
  }
}

function makeLogger() {
  let enabled = false;
  const logger = {
    enable: () => {
      enabled = true;
    },
    disable: () => {
      enabled = false;
    }
  };

  if (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) {
    CONSOLE_LEVELS.forEach(name => {
      // eslint-disable-next-line @typescript-eslint/no-explicit-any
      logger[name] = (...args) => {
        if (enabled) {
          consoleSandbox(() => {
            _worldwide_js__WEBPACK_IMPORTED_MODULE_0__[/* GLOBAL_OBJ */ "a"].console[name](`${PREFIX}[${name}]:`, ...args);
          });
        }
      };
    });
  } else {
    CONSOLE_LEVELS.forEach(name => {
      logger[name] = () => undefined;
    });
  }

  return logger;
} // Ensure we only have a single logger instance, even if multiple versions of @sentry/utils are being used


let logger;

if (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) {
  logger = Object(_worldwide_js__WEBPACK_IMPORTED_MODULE_0__[/* getGlobalSingleton */ "c"])('logger', makeLogger);
} else {
  logger = makeLogger();
}



/***/ }),

/***/ "8OQS":
/***/ (function(module, exports) {

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

module.exports = _objectWithoutPropertiesLoose;
module.exports["default"] = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "8PcY":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


exports.__esModule = true;
exports.getChildMapping = getChildMapping;
exports.mergeChildMappings = mergeChildMappings;
exports.getInitialChildMapping = getInitialChildMapping;
exports.getNextChildMapping = getNextChildMapping;

var _react = __webpack_require__("q1tI");
/**
 * Given `this.props.children`, return an object mapping key to child.
 *
 * @param {*} children `this.props.children`
 * @return {object} Mapping of key to child
 */


function getChildMapping(children, mapFn) {
  var mapper = function mapper(child) {
    return mapFn && (0, _react.isValidElement)(child) ? mapFn(child) : child;
  };

  var result = Object.create(null);
  if (children) _react.Children.map(children, function (c) {
    return c;
  }).forEach(function (child) {
    // run the map function here instead so that the key is the computed one
    result[child.key] = mapper(child);
  });
  return result;
}
/**
 * When you're adding or removing children some may be added or removed in the
 * same render pass. We want to show *both* since we want to simultaneously
 * animate elements in and out. This function takes a previous set of keys
 * and a new set of keys and merges them with its best guess of the correct
 * ordering. In the future we may expose some of the utilities in
 * ReactMultiChild to make this easy, but for now React itself does not
 * directly have this concept of the union of prevChildren and nextChildren
 * so we implement it here.
 *
 * @param {object} prev prev children as returned from
 * `ReactTransitionChildMapping.getChildMapping()`.
 * @param {object} next next children as returned from
 * `ReactTransitionChildMapping.getChildMapping()`.
 * @return {object} a key set that contains all keys in `prev` and all keys
 * in `next` in a reasonable order.
 */


function mergeChildMappings(prev, next) {
  prev = prev || {};
  next = next || {};

  function getValueForKey(key) {
    return key in next ? next[key] : prev[key];
  } // For each key of `next`, the list of keys to insert before that key in
  // the combined list


  var nextKeysPending = Object.create(null);
  var pendingKeys = [];

  for (var prevKey in prev) {
    if (prevKey in next) {
      if (pendingKeys.length) {
        nextKeysPending[prevKey] = pendingKeys;
        pendingKeys = [];
      }
    } else {
      pendingKeys.push(prevKey);
    }
  }

  var i;
  var childMapping = {};

  for (var nextKey in next) {
    if (nextKeysPending[nextKey]) {
      for (i = 0; i < nextKeysPending[nextKey].length; i++) {
        var pendingNextKey = nextKeysPending[nextKey][i];
        childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey);
      }
    }

    childMapping[nextKey] = getValueForKey(nextKey);
  } // Finally, add the keys which didn't appear before any key in `next`


  for (i = 0; i < pendingKeys.length; i++) {
    childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]);
  }

  return childMapping;
}

function getProp(child, prop, props) {
  return props[prop] != null ? props[prop] : child.props[prop];
}

function getInitialChildMapping(props, onExited) {
  return getChildMapping(props.children, function (child) {
    return (0, _react.cloneElement)(child, {
      onExited: onExited.bind(null, child),
      in: true,
      appear: getProp(child, 'appear', props),
      enter: getProp(child, 'enter', props),
      exit: getProp(child, 'exit', props)
    });
  });
}

function getNextChildMapping(nextProps, prevChildMapping, onExited) {
  var nextChildMapping = getChildMapping(nextProps.children);
  var children = mergeChildMappings(prevChildMapping, nextChildMapping);
  Object.keys(children).forEach(function (key) {
    var child = children[key];
    if (!(0, _react.isValidElement)(child)) return;
    var hasPrev = (key in prevChildMapping);
    var hasNext = (key in nextChildMapping);
    var prevChild = prevChildMapping[key];
    var isLeaving = (0, _react.isValidElement)(prevChild) && !prevChild.props.in; // item is new (entering)

    if (hasNext && (!hasPrev || isLeaving)) {
      // console.log('entering', key)
      children[key] = (0, _react.cloneElement)(child, {
        onExited: onExited.bind(null, child),
        in: true,
        exit: getProp(child, 'exit', nextProps),
        enter: getProp(child, 'enter', nextProps)
      });
    } else if (!hasNext && hasPrev && !isLeaving) {
      // item is old (exiting)
      // console.log('leaving', key)
      children[key] = (0, _react.cloneElement)(child, {
        in: false
      });
    } else if (hasNext && hasPrev && (0, _react.isValidElement)(prevChild)) {
      // item hasn't changed transition states
      // copy over the last transition props;
      // console.log('unchanged', key)
      children[key] = (0, _react.cloneElement)(child, {
        onExited: onExited.bind(null, child),
        in: prevChild.props.in,
        exit: getProp(child, 'exit', nextProps),
        enter: getProp(child, 'enter', nextProps)
      });
    }
  });
  return children;
}

/***/ }),

/***/ "8RO3":
/***/ (function(module) {

module.exports = JSON.parse("{\"File\":\"Файл\",\"Folder\":\"Папка\"}");

/***/ }),

/***/ "8T8T":
/***/ (function(module, exports) {

/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
module.exports = {
  'ccd.infoPanel.detail.created': 'Создано',
  'ccd.infoPanel.detail.modified': 'Изменено',
  'ccd.infoPanel.detail.size': 'Размер',
  'ccd.infoPanel.detail.shared': 'Общий',
  'ccd.header.renameFolder': 'Переименовать папку',
  'ccd.menu.addToFavourites': 'Добавить к сочетаниям клавиш',
  'ccd.menu.removeFromFavourites': 'Удалить из быстрого доступа',
  'ccd.menu.viewonweb': 'Просмотр на веб-сайте',
  'ccd.menu.share': 'Поделиться',
  'ccd.menu.openWith': 'Открыть в',
  'ccd.menu.changeDefaultApp': 'Изменить приложение, заданное по умолчанию...',
  'ccd.menu.default': '(По умолчанию)',
  'ccd.menu.export': 'Экспортировать как локальную копию',
  'ccd.menu.download': 'Загрузить',
  'ccd.menu.createNew': 'Создать...',
  'ccd.menu.launch': 'ЗАПУСК',
  'actionMenuItem.permdelete': 'Удалить окончательно',
  'tab.Cloud Documents': 'Ваши файлы',
  'tab.Home': 'Главная',
  'header.CloudDocuments': 'Ваши файлы',
  'header.SharedWithYou': 'Доступные мне',
  'header.Deleted': 'Удаленные',
  'header.Deleted.AssetsWebLink': 'Чтобы просмотреть все удаленные элементы, перейдите на веб-сайт Assets',
  'header.SelectedDocuments': 'Выбрано: {numSelected, plural, =1 {#} other {#}}',
  'header.size': 'Размер',
  'header.title': 'Название',
  'header.modifiedDate': 'Дата изменения',
  'header.createDate': 'Дата создания',
  'header.shareDate': 'Дата публикации',
  'header.SortBy': 'Сортировать по',
  'header.infoPopover.body': 'Отображаются только совместимые файлы. Чтобы просмотреть все файлы, посетите Creative Cloud в Интернете.',
  'header.infoPopover.link': 'Перейти на сайт Creative Cloud',
  'header.dragImport': 'Отправить в: {displayName}',
  'collaborators.onlyYou': 'Только вы',
  'collaborators.Owner': '{displayName} (владелец)',
  'collaborators.More': '{numItems, plural, other {еще +#}}',
  'empty.offline.root.title': 'Вы отключены',
  'empty.offline.root.subtitle': 'Элементы, видимые во время пребывания в сети, появятся здесь, когда вы снова подключитесь.',
  'empty.offline.folder.title': 'Не удалось загрузить содержимое папки',
  'empty.offline.folder.subtitle': 'Нет подключения к Интернету. Подключитесь снова, чтобы видеть содержимое папки.',
  'empty.online.cdp.saveas.root.title': 'Нет облачных документов для отображения',
  'empty.online.cdp.saveas.root.subtitle': 'Облачные документы позволяют синхронизировать вашу работу на всех устройствах, где бы вы ни находились. Просто подключитесь к Интернету и продолжайте работать.',
  'empty.online.cdp.saveas.root.subtitle.sprk': 'Все ваши облачные документы из XD будут находиться здесь. Работайте с ними в любом месте, даже без подключения к Интернету. Изменения автоматически сохраняются и отображаются в истории документа.',
  'empty.online.cdp.saveas.root.subtitle.phxs': 'Здесь будут представлены все облачные документы из Photoshop на Mac, Windows и iPad.',
  'empty.online.cdp.saveas.root.subtitle.ilst': 'Здесь будут представлены все облачные документы из Illustrator на Mac и Windows.',
  'empty.online.cdp.saveas.root.subtitle.idsn': 'Здесь будут представлены все облачные документы из InDesign на Mac и Windows.',
  'empty.online.cdp.saveas.folder.title': 'Нет облачных документов для отображения',
  'empty.online.cdp.saveas.folder.subtitle': 'Когда вы поместите совместимый облачный документ в эту папку, он появится здесь.',
  'empty.online.cdp.open.root.title': 'Нет облачных документов для отображения',
  'empty.online.cdp.open.root.subtitle': 'Когда вы поместите совместимый облачный документ в эту папку, он появится здесь.',
  'empty.online.cdp.open.root.subtitle.sprk': 'Все ваши облачные документы из XD будут находиться здесь. Работайте с ними в любом месте, даже без подключения к Интернету. Изменения автоматически сохраняются и отображаются в истории документа.',
  'empty.online.cdp.open.root.subtitle.phxs': 'Здесь будут представлены все облачные документы из Photoshop на Mac, Windows и iPad.',
  'empty.online.cdp.open.root.subtitle.ilst': 'Здесь будут представлены все облачные документы из Illustrator на Mac и Windows.',
  'empty.online.cdp.open.root.subtitle.idsn': 'Здесь будут представлены все облачные документы из InDesign на Mac и Windows.',
  'empty.online.cdp.open.folder.title': 'Нет облачных документов для отображения',
  'empty.online.cdp.open.folder.subtitle': 'Когда вы поместите совместимый облачный документ в эту папку, он появится здесь.',
  'empty.online.cdo.root.title': 'У вас нет облачных документов',
  'empty.online.cdo.root.subtitle': 'Работайте совместно и в любом месте даже без подключения к Интернету. Изменения автоматически сохраняются и отображаются в истории файла.',
  'empty.online.cdo.root.subtitle.sprk': 'Работайте совместно в реальном времени и в любом месте даже без подключения к Интернету. Изменения автоматически сохраняются и отображаются в истории файла.',
  'empty.online.cdo.root.subtitle.phxs': 'Работайте беспрепятственно совместно с другими пользователями, везде, где вы выполнили вход в Photoshop, даже если вы не подключены к Интернету. Изменения автоматически сохраняются и отображаются в истории файла.',
  'empty.online.cdo.root.subtitle.ilst': 'Работайте беспрепятственно совместно с другими пользователями, везде, где вы выполнили вход в Illustrator, даже если вы не подключены к Интернету. Изменения автоматически сохраняются и отображаются в истории файла.',
  'empty.online.cdo.root.subtitle.idsn': 'Получайте доступ к документам при входе в InDesign в любом месте. Изменения сохраняются автоматически.',
  'empty.online.cdo.folder.title': 'Нет облачных документов для отображения',
  'empty.online.cdo.folder.subtitle': 'Когда вы поместите совместимый облачный документ в эту папку, он появится здесь.',
  'empty.title.deleted': 'Удаленные файлы отсутствуют',
  'empty.title.deleted_offline': 'Вы отключены.',
  'empty.title.recent': 'Недавно просмотренные файлы отсутствуют',
  'empty.subtext.deleted_offline': 'Элементы, удаленные во время пребывания в сети, появятся здесь, когда вы снова подключитесь.',
  'empty.title.shared_with_you': 'У вас нет общих облачных документов',
  'empty.subtext.shared_with_you': 'Если кто-то поделится с вами облачными документами, они появятся здесь.',
  'empty.title.shared_with_you_offline': 'Вы отключены.',
  'empty.subtext.shared_with_you_offline': 'Вы сможете просматривать и редактировать общие документы, когда подключитесь к Интернету.',
  'empty.title.error': 'Произошла ошибка',
  'empty.subtext.error': 'Перезагрузите приложение и повторите попытку.',
  'empty.subtext.error.web': 'Обновите браузер и повторите попытку.',
  'empty.title.coresync.down': 'Не удалось загрузить',
  'empty.subtext.coresync.down': 'Синхронизация с данными облака не выполняется. Убедитесь, что выполнены обновления Creative Cloud для настольных ПК или попробуйте перезапустить приложение.',
  'empty.title.coresync.incompatible': 'Не удалось загрузить облачные документы',
  'empty.subtext.coresync.incompatible': 'Мы не можем показать элементы прямо сейчас. Обновите текущую версию приложения Creative Cloud до актуальной и повторите попытку.',
  'empty.title.cloudStorageDisabled': 'Облачные документы недоступны',
  'empty.subtext.cloudStorageDisabled': 'Вы можете использовать {productName} для работы с файлами только на вашем устройстве. Обратитесь к ИТ-администратору за дополнительной информацией.',
  'empty.title.logout': 'Войдите в систему, чтобы получить доступ к облачным документам.',
  'empty.learnMore.link': 'Подробнее',
  'trueEmpty.online.cdo.folder.title': 'В этой папке ничего нет',
  'trueEmpty.online.cdo.folder.subtitle': 'Для наполнения добавьте сюда что-либо.',
  'trueEmpty.online.cdp.saveas.folder.title': 'Еще нет облачных документов',
  'trueEmpty.online.cdp.saveas.folder.subtitle': 'Облачные документы позволяют синхронизировать вашу работу на всех устройствах, где бы вы ни находились. Просто подключитесь к Интернету и продолжайте работать.',
  'trueEmpty.online.cdp.open.folder.title': 'Еще нет облачных документов',
  'trueEmpty.online.cdp.open.folder.subtitle': 'Облачные документы позволяют синхронизировать вашу работу на всех устройствах, где бы вы ни находились. Просто подключитесь к Интернету и продолжайте работать.',
  'filter.prompt': 'Введите ключевое слово',
  'filter.title': 'Фильтр',
  'empty.filter.title': 'Не найдено результатов по запросу «{filterString}»',
  'empty.filter.subtitle': 'Проверьте на отсутствие ошибок, попробуйте использовать более емкое ключевое слово или отфильтруйте, выбрав другое местоположение.',
  'beta.title': 'Синхронизируйте ваши работы на всех устройствах',
  'beta.subtitle': 'С легкостью работайте с облачными документами в Photoshop на вашем iPad и настольном ПК. Эта функция доступна в формате бета-тестирования, поэтому может не всегда работать должным образом. Включить и выключить ее можно в настройках.',
  'beta.button': 'Включить в настройках',
  'beta.tag': 'BETA',
  'beta.feedback.link': 'Оставить отзыв о бета-версии',
  'button.add-folder': 'Создать папку',
  'button.upload': 'Отправка...',
  'button.createnew': 'Создать',
  'button.reportAbuse': 'Сообщить о нарушениях',
  'button.open': 'Открыть',
  'button.select': 'Выбрать',
  'button.rename': 'Переименовать',
  'button.pin.header': 'Работать автономно всегда',
  'button.pin': 'Работать автономно всегда',
  'button.unpin.header': 'Работать только онлайн',
  'button.unpin': 'Работать только онлайн',
  'button.duplicate': 'Дублировать',
  'button.download': 'Загрузить',
  'button.move': 'Переместить',
  'button.delete': 'Удалить',
  'button.restore': 'Восстановить',
  'button.permdelete': 'Удалить окончательно',
  'button.listview': 'Просмотр списка',
  'button.gridview': 'Просмотр сетки',
  'button.sharesheetinvite': 'Пригласить для редактирования',
  'button.sharesheetLink': 'Получить ссылку',
  'button.shareSheetAction': 'Поделиться',
  'button.preview': 'Посмотреть',
  'button.schedule': 'Расписание',
  'action.duplicate.suffix': '(Дублировать)',
  'action.resolve_sync_error.suffix': 'копия',
  'statusIcon.conflicted': 'Конфликт синхронизации',
  'statusIcon.onlineOnly': 'Только при подключении к Интернету',
  'statusIcon.availableOffline': 'Доступно в автономном режиме',
  'statusIcon.syncing': 'Синхронизация...',
  'statusIcon.waitingToSync': 'Ожидание синхронизации',
  'tooltip.error': 'Открыть документ для просмотра конфликта сохранения',
  'toast.error.documentIsOpen': 'Чтобы выполнить это действие, закройте {count, plural, =1 {документ} other {документы}}.',
  'toast.error.exceedsQuota.personal': 'У вашей учетной записи закончилось место в хранилище',
  'toast.error.exceedsQuota.enterprise': 'Недостаточно места в хранилище, обратитесь к администратору за дополнительными сведениями',
  'toast.operation.duplicate.error': 'Не удалось создать дубликат {count, plural, =1 {элемента} few {{count} элементов} many {{count} элементов} other {{count} элемента}}.',
  'toast.operation.duplicate.success': '{count, plural, =1 {Элемент продублирован} few {Продублировано {count} элемента} many {Продублировано {count} элементов} other {Продублировано {count} элемента}}.',
  'toast.operation.archive.error': 'Не удалось удалить: {count, plural, =1 {элемент} few {{count} элемента} other {{count} элементов}}.',
  'toast.operation.archive.error.otherAppUncommittedChanges': 'Нельзя удалить файлы, открытые в других приложениях. Закройте их и повторите попытку.',
  'toast.operation.archive.undo.error': 'Не удалось удалить: {count, plural, =1 {элемент} few {{count} элемента} many {{count} элементов} other {{count} элемента}}.',
  'toast.operation.archive.success': 'Удалено: {count, plural, =1 {элемент} few {{count} элемента} other {{count} элементов}}.',
  'toast.operation.archive.undo.success': 'Восстановление отменено.',
  'toast.operation.permdelete.error': 'Не удалось окончательно удалить: {count, plural, =1 {элемент} few {{count} элемента} other {{count} элементов}}.',
  'toast.operation.permdelete.success': 'Окончательно удалено: {count, plural, =1 {элемент} few {{count} элемента} other {{count} элементов}}.',
  'toast.operation.rename.error': 'Не удалось переименовать элемент.',
  'toast.operation.rename.undo.error': 'Не удалось переименовать элемент.',
  'toast.operation.rename.error.duplicateName': 'Элемент с таким названием уже существует.',
  'toast.operation.rename.undo.error.duplicateName': 'Элемент с таким названием уже существует.',
  'toast.operation.rename.success': 'Элемент переименован.',
  'toast.operation.rename.undo.success': 'Переименование отменено.',
  'toast.operation.move.error': 'Не удалось переместить: {count, plural, =1 {элемент} few {{count} элемента} other {{count} элементов}}.',
  'toast.operation.move.undo.error': 'Не удалось переместить: {count, plural, =1 {элемент} few {{count} элемента} many {{count} элементов} other {{count} элемента}}.',
  'toast.operation.move.error.duplicateFolderName': 'Папка с таким названием уже существует.',
  'toast.operation.move.undo.error.duplicateFolderName': 'Папка с таким названием уже существует.',
  'toast.operation.move.error.duplicateDocName': '{count, plural, =1 {Документ с таким названием уже есть в папке. Измените название и попробуйте снова.} other {Не удалось переместить документы, так как существуют другие документы с такими же названиями.}}',
  'toast.operation.move.undo.error.duplicateDocName': '{count, plural, =1 {Документ с таким названием уже есть в папке. Измените название и попробуйте снова.} other {Не удалось переместить документы, так как существуют другие документы с такими же названиями.}}',
  'toast.operation.move.success': 'Перемещено: {count, plural, =1 {элемент} few {{count} элемента} other {{count} элементов}}.',
  'toast.operation.move.undo.success': 'Перемещение отменено.',
  'toast.operation.unarchive.error': 'Не удалось восстановить: {count, plural, =1 {элемент} few {{count} элемента} other {{count} элементов}}.',
  'toast.operation.unarchive.undo.error': 'Не удалось восстановить: {count, plural, =1 {элемент} few {{count} элемента} many {{count} элементов} other {{count} элемента}}.',
  'toast.operation.unarchive.success': 'Восстановлено: {count, plural, =1 {элемент} few {{count} элементов} other {{count} элементов}}.',
  'toast.operation.unarchive.undo.success': 'Удаление отменено.',
  'toast.operation.create_new_folder.success': 'Папка создана.',
  'toast.operation.create_new_folder.error': 'Не удалось создать папку.',
  'toast.operation.create_new_folder.error.duplicateName': 'Папка с таким названием уже существует.',
  'toast.operation.user_pin.success': '{count, plural, =1 {Доступен элемент} few {Доступно {count} элемента} many {Доступно {count} элементов} other {Доступно {count} элемента}} для автономной работы.',
  'toast.operation.user_pin.error': 'Не удалось настроить {count, plural, =1 {элемент} few {{count} элемента} many {{count} элементов} other {{count} элемента}} для автономной работы.',
  'toast.operation.user_unpin.success': '{count, plural, =1 {Доступен элемент} few {Доступно {count} элемента} many {Доступно {count} элементов} other {Доступно {count} элементов}} для работы только онлайн.',
  'toast.operation.user_unpin.error': 'Не удалось настроить {count, plural, =1 {элемент} few {{count} элемента} many {{count} элементов} other {{count} элементов}} для работы только онлайн.',
  'toast.operation.resolve_sync_error.success': 'Создана копия «{name}». Вы можете сравнить оба документа и согласовать любые различия.',
  'toast.ccd.scroll_to_item.fetching': 'Извлечение файла…',
  'toast.ccd.scroll_to_item.error': 'Файл не найден',
  'toast.info.disabled_rename_to_open_item': 'Устаревшие документы XD необходимо открыть прежде, чем переименовывать здесь.',
  'toast.action.disabled_rename_to_open_item': 'Открыть документ',
  'toast.error.rename.invalidName': 'Название папки содержит недопустимые символы.',
  'toast.error.rename.invalidChar': 'В названии нельзя использовать следующие символы: {characters}',
  'toast.error.rename.invalidEnd': 'Название не может заканчиваться точкой или пробелом.',
  'toast.error.rename.charRestriction': 'Название не может содержать больше 200 символов. ',
  'toast.error.rename.duplicateName': 'Облачный документ с таким названием уже существует.',
  'toast.success.reportAbuse': 'Сообщение о нарушении успешно отправлено',
  'toast.error.reportAbuse': 'Не удалось отправить сообщение о нарушениях',
  'toast.operation.undoLabel': 'Отмена',
  'dialog.permdelete.heading': 'Удалить окончательно',
  'dialog.permdelete.warning': 'Это действие невозможно отменить. Навсегда будет утрачено следующее:',
  'dialog.permdelete.cancelButton': 'Отмена',
  'dialog.permdelete.confirmButton': 'Удалить окончательно',
  'dialog.permdelete.countItems': '{count, plural, =1 {# элемент} few {# элемента} other {# элементов}}',
  'dialog.nonemptyfolder.heading': 'Действительно удалить {count, plural, =1 {эту папку} other {эти папки}}?',
  'dialog.nonemptyfolder.warning': '{count, plural, =1 {В этой папке} other {В этих папках}} есть содержимое и могут быть файлы, невидимые для {appName}. Вы можете продолжить удаление или сначала просмотреть {count, plural, =1 {другую папку} other {другие папки}} в Интернете и проверить {count, plural, =1 {ее} other {их}} содержимое. {viewOnWebLink}',
  'dialog.nonemptyfolder.cancelButton': 'Отмена',
  'dialog.nonemptyfolder.confirmButton': 'Удалить',
  'dialog.nonemptyfolder.viewOnWebButton': 'Просмотр на веб-сайте',
  'dialog.addfolder.heading': 'Создать папку',
  'dialog.addfolder.cancelButton': 'Отмена',
  'dialog.addfolder.confirmButton': 'Сохранить',
  'dialog.addfolder.placeholder': 'Введите название папки',
  'dialog.addfolder.invalidChar': 'В названиях нельзя использовать следующие символы: {characters}',
  'dialog.addfolder.invalidName': 'Название папки содержит недопустимые символы.',
  'dialog.addfolder.invalidEnd': 'Название не может заканчиваться точкой или пробелом.',
  'dialog.addfolder.duplicateName': 'Папка с таким названием уже существует.',
  'dialog.addfolder.charRestriction': 'Название не может содержать больше 200 символов.',
  'dialog.moveFolder.heading': 'Переместить',
  'dialog.moveFolder.cancelButton': 'Отмена',
  'dialog.moveFolder.moveButton': 'Переместить',
  'dialog.moveFolder.createNewFolderButton': 'Добавить папку',
  'dialog.reportAbuse.cancelButton': 'Отмена',
  'dialog.reportAbuse.reportAbuseButton': 'Сообщить о нарушениях',
  'dialog.reportAbuse.heading': 'Сообщить о нарушениях',
  'dialog.reportAbuse.emailInput': 'Ваш адрес электронной почты',
  'dialog.reportAbuse.nameInput': 'Ваше имя',
  'dialog.reportAbuse.radioButtonText': 'Почему вы жалуетесь на это содержимое?',
  'dialog.reportAbuse.defamation': 'Клевета',
  'dialog.reportAbuse.hate': 'Расистское или разжигающее ненависть содержимое',
  'dialog.reportAbuse.trademark': 'Посягательство на товарный знак',
  'dialog.reportAbuse.pornography': 'Содержимое сексуального характера',
  'dialog.reportAbuse.vulgar': 'Оскорбительное содержимое',
  'dialog.reportAbuse.other': 'Другое',
  'dialog.reportAbuse.inappropriate': 'Неприемлемо',
  'dialog.reportAbuse.age': 'Неточность в возрасте',
  'dialog.reportAbuse.gender': 'Гендерная неточность',
  'dialog.reportAbuse.description': 'Если вы считаете, что это содержимое Creative Cloud нарушает условия использования Adobe, вы можете сообщить о нарушении, заполнив эту краткую форму.',
  'dialog.reportAbuse.describeConcern': 'Опишите причину жалобы',
  'dialog.reportAbuse.success': 'Сообщение о нарушении успешно отправлено',
  'dialog.reportAbuse.failure': 'Не удалось отправить сообщение о нарушениях',
  'dialog.reportAbuse.textAreaTitle': 'Опишите причину вашей жалобы',
  'dialog.reportAbuse.required': 'Обязательное для заполнения',
  'dialog.cachefull.title': 'Невозможно сделать доступным автономно',
  'dialog.cachefull.message': 'На вашем устройстве недостаточно места. Чтобы освободить место, создавайте документы только для работы онлайн.',
  'dialog.cachefull.confirm': 'Ok',
  'dialog.syncError.heading': 'Этот документ прекратил синхронизацию с облаком',
  'dialog.syncError.body1': 'Рекомендуется сохранить последнюю версию как копию и восстановить документ до последней версии, сохраненной в облаке.',
  'dialog.syncError.body2': 'Вы по-прежнему можете открыть этот документ и внести изменения, но изменения не будут сохранены в облаке.',
  'dialog.syncError.offline': 'Чтобы сохранить копию и восстановить оригинал, вы должны быть в сети.',
  'dialog.syncError.learnMore': 'Подробнее',
  'dialog.syncError.resolveButton': 'Сохранить копию и восстановить',
  'dialog.syncError.openButton': 'Открыть',
  'dialog.syncErrorCopyFail.heading': 'Не удалось сохранить копию',
  'dialog.syncErrorCopyFail.body1': 'Вы по-прежнему можете открыть этот документ и внести изменения, но изменения не будут сохранены в облаке.',
  'dialog.syncErrorCopyFail.body2': 'Обратитесь в службу поддержки клиентов Adobe для получения дополнительной помощи. (Ошибка: LocalContentSyncSuspended).',
  'dialog.syncErrorCopyFail.closeButton': 'Закрыть',
  'dialog.syncErrorCopyFail.contactUs': 'Обратиться за помощью',
  'dialog.syncErrorPurgeFail.heading': 'Не удалось восстановить последнюю версию, сохраненную в облаке',
  'dialog.syncErrorPurgeFail.body1': 'Копия вашего документа была создана, но нам не удалось восстановить ваш документ до последней сохраненной версии в облаке.',
  'dialog.syncErrorPurgeFail.body2': 'Обратитесь в службу поддержки клиентов Adobe для получения дополнительной помощи. (Ошибка: LocalContentSyncSuspended).',
  'dialog.syncErrorPurgeFail.closeButton': 'Закрыть',
  'dialog.syncErrorPurgeFail.contactUs': 'Обратиться за помощью',
  'onboardingCdo.banner.title.sprk': 'Лучший способ работы',
  'onboardingCdo.banner.title.phxs': 'Используете Photoshop на iPad? Опробуйте облачные документы',
  'onboardingCdo.banner.title.ilst': 'Теперь вы можете использовать облачные документы в Illustrator',
  'onboardingCdo.banner.title.idsn': 'Теперь вы можете использовать облачные документы в InDesign',
  'onboardingCdo.banner.message.sprk': 'Редактируйте облачные документы в любом месте, даже без подключения к Интернету. Изменения автоматически сохраняются и отображаются в истории документа. Делитесь документами, чтобы без проблем совместно работать с ними в реальном времени.',
  'onboardingCdo.banner.message.phxs': 'Облачные документы автоматически сохраняются в облаке Adobe в процессе работы, так что вы можете получить доступ к файлам как на настольном ПК, так и на iPad.',
  'onboardingCdo.banner.message.ilst': 'Облачные документы в Illustrator автоматически сохраняются в облаке Adobe во время работы. Вы также можете просмотреть историю версий, чтобы увидеть, как развивалась ваша работа.',
  'onboardingCdo.banner.message.idsn': 'Облачные документы в InDesign автоматически сохраняются в облаке Adobe во время работы.',
  'onboardingCdo.banner.linkTitle': 'Подробнее',
  'onboardingCdo.banner.confirm': 'ОК',
  'operation.progress.archive': 'Удаление: {batchSize, plural, =1 {1 элемент} other {{inProgressNum} из {batchSize} элементов}}...',
  'operation.progress.unarchive': 'Восстановление: {batchSize, plural, =1 {1 элемент} other {{inProgressNum} из {batchSize} элементов}}...',
  'operation.progress.move': 'Перемещение: {batchSize, plural, =1 {1 элемент} other {{inProgressNum} из {batchSize} элементов}}...',
  'operation.progress.permdelete': 'Окончательное удаление: {batchSize, plural, =1 {1 элемент} other {{inProgressNum} из {batchSize} элементов}}...',
  'operation.progress.rename': 'Переименование: {batchSize, plural, =1 {1 элемент} other {{inProgressNum} из {batchSize} элем.}}...',
  'operation.progress.create_new_folder': 'Создание папки...',
  'operation.progress.duplicate': 'Создание дубликата {batchSize, plural, =1 {1 элемента} other {{inProgressNum} из {batchSize} элементов}}...',
  'operation.progress.user_pin': 'Настройка {batchSize, plural, =1 {элемента} other {{inProgressNum} из {batchSize} элементов}} для автономной работы...',
  'operation.progress.user_unpin': 'Настройка {batchSize, plural, =1 {элемента} other {{inProgressNum} из {batchSize} элементов}} для работы только онлайн...',
  'operation.progress.resolve_sync_error': 'Копирование и восстановление до последней сохраненной версии в облаке...',
  'tooltip.offline.general': 'Требуется подключение к Интернету.',
  'tooltip.offline.create-new-folder': 'Для создания папок требуется подключение к Интернету.',
  'tooltip.offline.move': 'Для перемещения элементов требуется подключение к Интернету.',
  'tooltip.syncing.disabled': 'Ожидание завершения синхронизации',
  'tooltip.rename.disabled': 'Невозможно переименовать выбранный документ. Откройте в основном приложении, чтобы разрешить переименование.',
  'tooltip.rename.disabled.sprk': 'Этот файл нельзя переименовать, пока вы не откроете его в XD.',
  'tooltip.syncSuspended.needsAction': 'Синхронизация остановлена. Возможно внесение изменений.',
  'tooltip.syncSuspended.noAction': 'Синхронизация остановлена. В настоящее время это действие не разрешено.',
  'Recents.title': 'Недавние',
  'Recents.cloudDocTitle': 'ОБЛАЧНЫЙ ДОКУМЕНТ',
  'Recents.error.subtext.coreSync': 'Недавние данные недоступны из-за неполадок в работе синхронизации Creative Cloud.',
  'item.saveForOfflineIconToolTip': 'Этот документ загружен и полностью доступен в автономном режиме.',
  'item.disconnected.cloudonly': 'Вы отключены. Подключитесь повторно, чтобы открыть документ.',
  'item.coresyncdown.cloudonly': 'Не удается загрузить файл. Проблему может исправить обновление или перезапуск Creative Cloud.',
  'folder.subtitle': 'ПАПКА',
  'review.subtitle': 'ОБЗОР',
  'prototype.subtitle': 'ПРОТОТИП',
  'designspecs.subtitle': 'СПЕЦИФИКАЦИЯ ПРОЕКТА',
  'project.subtitle': 'ПРОЕКТ',
  'library.subtitle': 'БИБЛИОТЕКА',
  'webLink.subtitle': 'ВЕБ-ССЫЛКА',
  'abbreviations.fileSize.byte': 'B',
  'abbreviations.fileSize.kilobyte': 'КБ',
  'abbreviations.fileSize.megabyte': 'МБ',
  'abbreviations.fileSize.gigabyte': 'ГБ',
  'abbreviations.fileSize.terabyte': 'ТБ',
  'sam.copyNameFormat': 'Копия %@',
  'cloudsync.quota.title': 'ОБЛАЧНОЕ ХРАНИЛИЩЕ',
  'cloudsync.quota.percentage': '{percentageUsed}%',
  'cloudsync.quota.usage': 'Используется {usedCloudQuotaString} из {maxCloudQuotaString}',
  'cloudsync.quota.warning': 'Ваше облачное хранилище заполнено. Выполните обновление, чтобы продолжить синхронизацию ваших материалов.',
  'cloudsync.quota.error': 'Информация о хранилище отсутствует...',
  'cloudsync.quota.upgrade': 'Обновить',
  'cloudsync.status.complete.title': 'Синхронизировано и сохранено в резервной копии',
  'cloudsync.status.syncing.title': 'Синхронизация облачных документов',
  'cloudsync.status.syncing.descr': '{progress}/{total}',
  'cloudsync.status.offline.title': 'Работа в автономном режиме',
  'cloudsync.status.offline.descr': 'Данные сохраняются локально. Документы синхронизируются с облаком, когда возобновится подключение к сети.',
  'cloudsync.status.disabled.title': 'Синхронизация отключена',
  'cloudsync.status.disabled.descr': 'Данные сохраняются локально. Документы синхронизируются с облаком, когда хранилище будет доступно.',
  'cloudsync.item.progress.determinate': '{progress}/{total}',
  'cloudsync.item.progress.indeterminate': 'Выполняется синхронизация...',
  'cloudsync.item.complete': 'Завершено',
  'cloudsync.items.header': 'Сетевая активность',
  'cloudsync.alert.title.coresync.down': 'Не удалось загрузить',
  'cloudsync.alert.subtext.coresync.down': 'Синхронизация с данными облака не выполняется. Убедитесь, что выполнены обновления Creative Cloud для настольных ПК или попробуйте перезапустить приложение.',
  'cloudsync.alert.subtext.coresync.down.learnmore': 'Подробнее',
  'cloudsync.tooltip.offline': 'Нет подключения',
  'cloudsync.tooltip.error': 'Ошибка',
  'cloudsync.tooltip.syncing': 'Сохранение...',
  'cloudsync.tooltip.default': 'Сохранено',
  'cloudsync.singleDoc.offline.title': 'Нет подключения',
  'cloudsync.singleDoc.offline.descr': 'Попытка переподключения...',
  'cloudsync.singleDoc.offline.timestamp': 'Последняя синхронизация {time}',
  'cloudsync.singleDoc.error.samInitFail.title': 'Синхронизация с облаком остановлена',
  'cloudsync.singleDoc.error.samInitFail.descr': 'Перезапустите это приложение, чтобы продолжить синхронизацию своей работы.',
  'cloudsync.singleDoc.error.syncSuspended.title': 'Синхронизация с облаком остановлена',
  'cloudsync.singleDoc.error.syncSuspended.descr': 'Перезапустите это приложение, чтобы продолжить синхронизацию своей работы.',
  'cloudsync.singleDoc.error.title': 'Не удалось загрузить',
  'cloudsync.singleDoc.error.descr': 'Синхронизация с данными облака не выполняется. Убедитесь, что выполнены обновления Creative Cloud для настольных ПК или попробуйте перезапустить приложение.',
  'cloudsync.singleDoc.error.learnMore': 'Подробнее',
  'cloudsync.singleDoc.disabled.quotaExceeded.title': 'Ваше облачное хранилище заполнено',
  'cloudsync.singleDoc.disabled.quotaExceeded.descr': 'Обновите Creative Cloud, чтобы продолжить синхронизацию своей работы.',
  'cloudsync.singleDoc.syncing.title': 'Сохранение...',
  'cloudsync.singleDoc.syncing.descr': 'Выполняется',
  'cloudsync.singleDoc.disabled.title': 'Невозможно сохранить',
  'cloudsync.singleDoc.disabled.descr': 'У вашей учетной записи закончилось место в хранилище.',
  'cloudsync.singleDoc.complete.title': 'Файл сохранен',
  'cloudsync.singleDoc.complete.timestamp': 'Последняя синхронизация {time}'
};

/***/ }),

/***/ "8VRs":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

/*************************************************************************
* ADOBE CONFIDENTIAL
* ___________________
*
* Copyright 2021 Adobe
* All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains
* the property of Adobe and its suppliers, if any. The intellectual
* and technical concepts contained herein are proprietary to Adobe
* and its suppliers and are protected by all applicable intellectual
* property laws, including trade secret and copyright laws.
* Dissemination of this information or reproduction of this material
* is strictly forbidden unless prior written permission is obtained
* from Adobe.
**************************************************************************/

module.exports = __webpack_require__("Ew0+");

/***/ }),

/***/ "8VlV":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXPORTS
__webpack_require__.d(__webpack_exports__, "b", function() { return /* binding */ useHost; });
__webpack_require__.d(__webpack_exports__, "c", function() { return /* binding */ useHostTheme; });
__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ HostProvider; });

// UNUSED EXPORTS: HostContext

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__("q1tI");
var react_default = /*#__PURE__*/__webpack_require__.n(react);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/assets/default-file-icon.png
var default_file_icon = __webpack_require__("2OFw");
var default_file_icon_default = /*#__PURE__*/__webpack_require__.n(default_file_icon);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/types/IIMSData.ts
var IIMSData = __webpack_require__("9oP/");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/i18n.ts
var i18n = __webpack_require__("oSp+");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/utils.ts
var utils = __webpack_require__("+Ots");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/constants.ts
var constants = __webpack_require__("a375");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/UXPPluginConstants.ts
/*************************************************************************
 *   ADOBE CONFIDENTIAL
 *
 *   Copyright 2022 Adobe
 *   All Rights Reserved.
 *
 *   NOTICE:  All information contained herein is, and remains
 *   the property of Adobe and its suppliers, if any. The intellectual
 *   and technical concepts contained herein are proprietary to Adobe
 *   and its suppliers and are protected by all applicable intellectual
 *   property laws, including trade secret and copyright laws.
 *   Dissemination of this information or reproduction of this material
 *   is strictly forbidden unless prior written permission is obtained
 *   from Adobe.
 **************************************************************************/

const DIALOG_DEFAULT_THEME = constants["u" /* Themes */].dark;
const UXPEventTypes = {
    THEME: 'themechanged',
};

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/platform.ts
var platform = __webpack_require__("acin");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/contexts/HostProvider.tsx
/*************************************************************************
 *   ADOBE CONFIDENTIAL
 *
 *   Copyright 2022 Adobe
 *   All Rights Reserved.
 *
 *   NOTICE:  All information contained herein is, and remains
 *   the property of Adobe and its suppliers, if any. The intellectual
 *   and technical concepts contained herein are proprietary to Adobe
 *   and its suppliers and are protected by all applicable intellectual
 *   property laws, including trade secret and copyright laws.
 *   Dissemination of this information or reproduction of this material
 *   is strictly forbidden unless prior written permission is obtained
 *   from Adobe.
 **************************************************************************/








const HostContext = Object(react["createContext"])({});
let hostApp;
let uxpHost;
let changeEventDispatcher;
const wdow = window;
// eslint-disable-next-line
let cdoHostProductData;
// eslint-disable-next-line
let cdoHostImsData;
/**
 * Document icons mapping
 */
const docTypeIcons = {
    default: default_file_icon_default.a,
};
let osVer;
if (typeof cdoHost !== 'undefined') {
    hostApp = cdoHost;
    uxpHost = wdow.require('uxp').host;
    osVer = wdow.require('os').release();
}
else {
    // not Ps
    // import host application interface
    osVer = 'Unknown';
    try {
        // tslint:disable-next-line
        hostApp = wdow.require('cdoHost');
    }
    catch (error) {
        // no injected cdoHost, so we're in a web environemnt
    }
}
if (utils["a" /* default */].usingUXP()) {
    const globalAny = window;
    hostApp = globalAny.cdoHost || globalAny.require('cdoHost');
}
function useHost() {
    return Object(react["useContext"])(HostContext);
}
function useHostTheme() {
    const [theme, setTheme] = Object(react["useState"])(DIALOG_DEFAULT_THEME);
    Object(react["useEffect"])(() => {
        var _a;
        const handleThemeChange = async () => {
            let newTheme;
            switch (await wdow.cdoHost.getTheme()) {
                case 'light':
                    newTheme = constants["u" /* Themes */].light;
                    break;
                case 'lightest':
                    newTheme = constants["u" /* Themes */].lightest;
                    break;
                case 'darkest':
                    newTheme = constants["u" /* Themes */].darkest;
                    break;
                case 'dark':
                default:
                    newTheme = constants["u" /* Themes */].dark;
                    break;
            }
            setTheme(newTheme);
            return newTheme;
        };
        handleThemeChange();
        (_a = window.require) === null || _a === void 0 ? void 0 : _a.call(window, 'uxp').host.addEventListener(UXPEventTypes.THEME, handleThemeChange);
        return () => {
            var _a;
            (_a = window
                .require) === null || _a === void 0 ? void 0 : _a.call(window, 'uxp').host.removeEventListener(UXPEventTypes.THEME, handleThemeChange);
        };
    }, []);
    return theme;
}
function HostProvider({ children }) {
    const appConfig = {
        allowedToSendAnalyticsEvents: hostApp === null || hostApp === void 0 ? void 0 : hostApp.allowedToSendAnalyticsEvents,
        analyticsProjectKey: hostApp === null || hostApp === void 0 ? void 0 : hostApp.analyticsProjectKey,
        apiKey: hostApp === null || hostApp === void 0 ? void 0 : hostApp.apiKey,
        callbacks: {
            onFeatureEnabled: (featureFlag) => hostApp === null || hostApp === void 0 ? void 0 : hostApp.featureEnabled(featureFlag),
            onGetLocalRecents: async () => hostApp === null || hostApp === void 0 ? void 0 : hostApp.getLocalRecents(),
            onGetPreviewRendition: async (path) => {
                const renditionData = await (hostApp === null || hostApp === void 0 ? void 0 : hostApp.getUxpPreviewRendition(path));
                return Promise.resolve(renditionData);
            },
            getTheme: (hostApp === null || hostApp === void 0 ? void 0 : hostApp.getTheme) ? async () => {
                switch (await (hostApp === null || hostApp === void 0 ? void 0 : hostApp.getTheme())) {
                    case 'dark':
                        return constants["u" /* Themes */].dark;
                    case 'darkest':
                        return constants["u" /* Themes */].darkest;
                    case 'light':
                        return constants["u" /* Themes */].light;
                    case 'lightest':
                        return constants["u" /* Themes */].lightest;
                    default:
                        return constants["u" /* Themes */].light;
                }
            }
                : undefined,
        },
        cloudStorageEnabled: () => true,
        dcxId: hostApp === null || hostApp === void 0 ? void 0 : hostApp.dcxAppId,
        defaultDocumentIcons: docTypeIcons,
        /**
         * defaultTab may be a string (id) or a number (index). Providing a tab number is
         * discouraged because it assumes that the tabs will be in a certain order.
         */
        defaultTab: (hostApp === null || hostApp === void 0 ? void 0 : hostApp.defaultTab) || 0,
        documentFilter: hostApp === null || hostApp === void 0 ? void 0 : hostApp.documentFilter,
        environment: hostApp === null || hostApp === void 0 ? void 0 : hostApp.environment,
        featureFlags: {},
        fetchToken: async (currentToken) => {
            try {
                const token = await (hostApp === null || hostApp === void 0 ? void 0 : hostApp.getUserAccessToken(currentToken));
                return token;
            }
            catch (error) {
                console.error('fetchToken failed', error);
                return '';
            }
        },
        fetchUserEmail: () => hostApp === null || hostApp === void 0 ? void 0 : hostApp.getUserEmail(),
        fetchUserId: () => hostApp === null || hostApp === void 0 ? void 0 : hostApp.getUserId(),
        linkableTypes: hostApp === null || hostApp === void 0 ? void 0 : hostApp.linkableTypes,
        embeddableTypes: hostApp === null || hostApp === void 0 ? void 0 : hostApp.embeddableTypes,
        locale: (hostApp === null || hostApp === void 0 ? void 0 : hostApp.locale) || (hostApp === null || hostApp === void 0 ? void 0 : hostApp.appLanguage),
        platform: hostApp === null || hostApp === void 0 ? void 0 : hostApp.platform,
        productBuildNumber: (uxpHost && uxpHost.buildNumber) || '',
        productId: hostApp === null || hostApp === void 0 ? void 0 : hostApp.sapCode,
        productName: hostApp === null || hostApp === void 0 ? void 0 : hostApp.name,
        productVersion: hostApp === null || hostApp === void 0 ? void 0 : hostApp.version,
        platformVersion: (hostApp === null || hostApp === void 0 ? void 0 : hostApp.platformVersion) || osVer,
        // TODO: need to pull real subscriptionType/accountType
        // Jira: https://jira.corp.adobe.com/browse/CCXCD-2930
        subscriptionType: () => 'paid',
        accountType: () => IIMSData["a" /* AccountType */].Personal,
        uiLocale: i18n["a" /* default */].normalizeLocale((hostApp === null || hostApp === void 0 ? void 0 : hostApp.locale) || (hostApp === null || hostApp === void 0 ? void 0 : hostApp.appLanguage) || 'en'),
        changeEventDispatcher: changeEventDispatcher || hostApp,
        onboardingHelpJumpToken: hostApp === null || hostApp === void 0 ? void 0 : hostApp.onboardingHelpJumpToken,
    };
    /**
     * IMS DATA
     */
    cdoHostImsData = {
        environment: appConfig.environment,
        fetchToken: appConfig.fetchToken,
        fetchUserEmail: appConfig.fetchUserEmail,
        fetchUserId: appConfig.fetchUserId,
        subscriptionType: appConfig.subscriptionType(),
        accountType: appConfig.accountType(),
    };
    /**
     * HOST PRODUCT DATA
     */
    cdoHostProductData = {
        allowedToSendAnalyticsEvents: appConfig.allowedToSendAnalyticsEvents,
        analyticsProjectKey: appConfig.analyticsProjectKey,
        apiKey: appConfig.apiKey,
        dcxId: appConfig.dcxId,
        defaultDocumentIcons: appConfig.defaultDocumentIcons,
        documentFilter: appConfig.documentFilter,
        featureFlags: appConfig.featureFlags,
        platform: appConfig.platform || Object(platform["c" /* normalizePlatform */])(navigator.platform),
        platformVersion: appConfig.platformVersion,
        productBuildNumber: appConfig.productBuildNumber,
        productId: appConfig.productId,
        productLocation: 'com.adobe.ccx.cloud-sync-status',
        productName: appConfig.productName,
        productVersion: appConfig.productVersion,
        uiLocale: appConfig.uiLocale,
        onboardingHelpJumpToken: appConfig.onboardingHelpJumpToken,
        linkableTypes: appConfig.linkableTypes,
        embeddableTypes: appConfig.embeddableTypes,
    };
    const value = Object(react["useMemo"])(() => ({ cdoHostImsData, cdoHostProductData }), [appConfig, cdoHostImsData, cdoHostProductData]);
    return react_default.a.createElement(HostContext.Provider, { value: value }, children);
}


/***/ }),

/***/ "8X25":
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(global) {/*globals require, self, window */


const ac = __webpack_require__("z0Ak");
/*eslint-disable @mysticatea/prettier */


const g = typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global :
/* otherwise */
undefined;
/*eslint-enable @mysticatea/prettier */

if (g) {
  if (typeof g.AbortController === "undefined") {
    g.AbortController = ac.AbortController;
  }

  if (typeof g.AbortSignal === "undefined") {
    g.AbortSignal = ac.AbortSignal;
  }
}
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("yLpj")))

/***/ }),

/***/ "8Y+z":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


exports.__esModule = true;
exports.default = getWindow;

function getWindow(node) {
  return node === node.window ? node : node.nodeType === 9 ? node.defaultView || node.parentWindow : false;
}

module.exports = exports["default"];

/***/ }),

/***/ "8YL7":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("path", {
  d: "M27.491 8l-2.308 24H8.817L6.509 8zM22 2H12a2 2 0 0 0-2 2v2H2.5a.5.5 0 0 0-.5.5v1a.5.5 0 0 0 .5.5h2l2.413 25.1a1 1 0 0 0 1 .9h18.179a1 1 0 0 0 1-.9L29.5 8h2a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5H24V4a2 2 0 0 0-2-2zM12 6V4h10v2z"
}), React.createElement("rect", {
  height: "18.08",
  rx: ".5",
  ry: ".5",
  width: "2",
  x: "16",
  y: "10.9"
}), React.createElement("path", {
  d: "M13.542 28.944l-1 .06a.5.5 0 0 1-.529-.469L10.87 11.49a.5.5 0 0 1 .469-.529l1-.06a.5.5 0 0 1 .529.469l1.145 17.045a.5.5 0 0 1-.471.529zm6.916 0l1 .06a.5.5 0 0 0 .529-.469L23.13 11.49a.5.5 0 0 0-.469-.529l-1-.06a.5.5 0 0 0-.529.469l-1.143 17.045a.5.5 0 0 0 .469.529z"
}));

/***/ }),

/***/ "8bOP":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

/*************************************************************************
* ADOBE CONFIDENTIAL
* ___________________
*
* Copyright 2019 Adobe
* All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains
* the property of Adobe and its suppliers, if any. The intellectual
* and technical concepts contained herein are proprietary to Adobe
* and its suppliers and are protected by all applicable intellectual
* property laws, including trade secret and copyright laws.
* Dissemination of this information or reproduction of this material
* is strictly forbidden unless prior written permission is obtained
* from Adobe.
**************************************************************************/

module.exports = __webpack_require__("hR+R");

/***/ }),

/***/ "8eA+":
/***/ (function(module) {

module.exports = JSON.parse("{\"File\":\"파일\",\"Folder\":\"폴더\"}");

/***/ }),

/***/ "8ezX":
/***/ (function(module) {

module.exports = JSON.parse("{\"close\":\"Закрыть\",\"error\":\"Ошибка\",\"info\":\"Информация\",\"success\":\"Успешно\",\"warning\":\"Предупреждение\"}");

/***/ }),

/***/ "8gHz":
/***/ (function(module, exports, __webpack_require__) {

// 7.3.20 SpeciesConstructor(O, defaultConstructor)
var anObject = __webpack_require__("5K7Z");

var aFunction = __webpack_require__("eaoh");

var SPECIES = __webpack_require__("UWiX")('species');

module.exports = function (O, D) {
  var C = anObject(O).constructor;
  var S;
  return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);
};

/***/ }),

/***/ "8iia":
/***/ (function(module, exports, __webpack_require__) {

// https://github.com/DavidBruant/Map-Set.prototype.toJSON
var classof = __webpack_require__("QMMT");

var from = __webpack_require__("RRc/");

module.exports = function (NAME) {
  return function toJSON() {
    if (classof(this) != NAME) throw TypeError(NAME + "#toJSON isn't generic");
    return from(this);
  };
};

/***/ }),

/***/ "8nA0":
/***/ (function(module) {

module.exports = JSON.parse("{\"File\":\"Fichier\",\"Folder\":\"Dossier\"}");

/***/ }),

/***/ "8nyd":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = convertUnsafeMethod;

var _semverCompare = _interopRequireDefault(__webpack_require__("ycmj"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}
/*************************************************************************
* ADOBE CONFIDENTIAL
* ___________________
*
* Copyright 2019 Adobe
* All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains
* the property of Adobe and its suppliers, if any. The intellectual
* and technical concepts contained herein are proprietary to Adobe
* and its suppliers and are protected by all applicable intellectual
* property laws, including trade secret and copyright laws.
* Dissemination of this information or reproduction of this material
* is strictly forbidden unless prior written permission is obtained
* from Adobe.
**************************************************************************/

/**
 * This is a decorator that converts UNSAFE React lifecycle methods to their pre-React 16.3.0 variant
*/


function convertUnsafeMethod(WrappedComponent) {
  const proto = WrappedComponent.prototype;
  const UNSAFE_componentWillUpdate = proto.UNSAFE_componentWillUpdate;
  const UNSAFE_componentWillMount = proto.UNSAFE_componentWillMount;
  const UNSAFE_componentWillReceiveProps = proto.UNSAFE_componentWillReceiveProps;

  if ((0, _semverCompare.default)(_react.default.version, '16.3.0') === -1) {
    if (UNSAFE_componentWillUpdate) {
      proto.componentWillUpdate = function (props, state) {
        UNSAFE_componentWillUpdate.apply(this, arguments);
      };
    }

    if (UNSAFE_componentWillMount) {
      proto.componentWillMount = function () {
        UNSAFE_componentWillMount.apply(this, arguments);
      };
    }

    if (UNSAFE_componentWillReceiveProps) {
      proto.componentWillReceiveProps = function (props) {
        UNSAFE_componentWillReceiveProps.apply(this, arguments);
      };
    }
  }
}

/***/ }),

/***/ "8oxB":
/***/ (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;
};

/***/ }),

/***/ "8pff":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("pmLQ"),
      24: __webpack_require__("sViV")
    }
  }));
};

WrappedIcon.displayName = 'ArrowDown';
exports.default = WrappedIcon;

/***/ }),

/***/ "8uZ+":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return SAMApplicationBase; });
/* harmony import */ var _ApplicationBase__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("r6Pq");
/* harmony import */ var _ccx_ccx_cdo__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("t+6E");
/* harmony import */ var _ccx_public_acpl_model_uxp_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("XQlG");
/* harmony import */ var _ccx_public_acpl_model_mobx_ACPLUtils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("9Hzb");
/* harmony import */ var _LoggerWrapper_Logger__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("43WE");
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2021 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/





class SAMApplicationBase extends _ApplicationBase__WEBPACK_IMPORTED_MODULE_0__[/* default */ "c"] {
    constructor() {
        super(...arguments);
        this._logger = _LoggerWrapper_Logger__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].get('SAMApplication');
        this._samDocumentsPromises = [];
    }
    async samAssetContext() {
        if (!this._samAssetContext) {
            if (!this._samContextPromise) {
                this._samContextPromise = _ccx_public_acpl_model_uxp_types__WEBPACK_IMPORTED_MODULE_2__[/* ACPLModel */ "a"].getHostAssetContext()
                    .then(acplAssetContext => {
                    this._logger.log('SAMAssetContext succeeded');
                    this._samAssetContext = Object(_ccx_public_acpl_model_mobx_ACPLUtils__WEBPACK_IMPORTED_MODULE_3__[/* wrapAssetContext */ "b"])(acplAssetContext);
                    return this._samAssetContext;
                })
                    .catch(error => {
                    this._logger.error('SAMAssetContext failed', error);
                    this._samContextPromise = null;
                });
            }
            return this._samContextPromise;
        }
        return this._samAssetContext;
    }
    get enableSAM() {
        return window.cdoHost.featureEnabled('CloudDocUseSAM');
    }
    async getSAMAssetFromAssetRef(context, assetRef, canOpen) {
        try {
            const acplAsset = await context.getAssetWithAssetRefString(assetRef, false);
            const document = _ccx_ccx_cdo__WEBPACK_IMPORTED_MODULE_1__[/* SAMAssetModel */ "u"].fromSamAsset(acplAsset);
            document.setExternalData({
                isCloudDoc: true,
                canOpen: canOpen,
            });
            return document;
        }
        catch (e) {
            this._logger.error(`Failed to fetch asset with assetRef: ${assetRef}`, e);
        }
    }
    // SAM context retrieval using newer API's, can be merged to main branch
    async _getSamAssetContext() {
        let unwrapped = _ccx_public_acpl_model_uxp_types__WEBPACK_IMPORTED_MODULE_2__[/* ACPLModel */ "a"].applicationAssetContext;
        if (unwrapped) {
            this._logger.info('ACPLModel.applicationAssetContext is already present');
        }
        else {
            this._logger.info('ACPLModel.waitForApplicationContextReady()');
            await _ccx_public_acpl_model_uxp_types__WEBPACK_IMPORTED_MODULE_2__[/* ACPLModel */ "a"].waitForApplicationContextReady();
            unwrapped = _ccx_public_acpl_model_uxp_types__WEBPACK_IMPORTED_MODULE_2__[/* ACPLModel */ "a"].applicationAssetContext;
            this._logger.info('...received response from waitForApplicationContextReady');
        }
        return Object(_ccx_public_acpl_model_mobx_ACPLUtils__WEBPACK_IMPORTED_MODULE_3__[/* wrapAssetContext */ "b"])(unwrapped);
    }
    async samAssetContextPromise() {
        if (this._samContextPromise) {
            return this._samContextPromise;
        }
        try {
            this._samContextPromise = this._getSamAssetContext();
            return this._samContextPromise;
        }
        catch (e) {
            this._logger.error('SAM context retrival failed');
            this._samContextPromise = null;
        }
    }
    async getSAMAssetFromDocumentUrl(docUrl, canOpen) {
        try {
            let acplAsset;
            const context = await this.samAssetContextPromise();
            if (!context) {
                throw 'SAM Asset context not available';
            }
            const assetUrn = _ccx_ccx_cdo__WEBPACK_IMPORTED_MODULE_1__[/* Utils */ "A"].extractUrn(docUrl);
            const isCloudUrn = assetUrn.includes('urn:aaid:sc');
            acplAsset = isCloudUrn
                ? await context.getAssetWithCloudID(assetUrn, false)
                : await context.getAssetWithLocalID(assetUrn);
            const document = _ccx_ccx_cdo__WEBPACK_IMPORTED_MODULE_1__[/* SAMAssetModel */ "u"].fromSamAsset(acplAsset);
            // make a call getSpaceInfo only incase of space document.
            if (document.isSpaceAsset) {
                await document.getSpaceInfo();
            }
            document.stableUri = docUrl;
            document.setExternalData({
                isCloudDoc: true,
                canOpen: canOpen,
            });
            return document;
        }
        catch (e) {
            this._logger.error(`Failed to fetch sam asset with assetUrl: ${docUrl}`, e);
        }
    }
    async addSAMAssetPromise(item) {
        this.samAssetContext().then(async (lateContext) => {
            if (lateContext) {
                let document = await this.getSAMAssetFromAssetRef(lateContext, item.assetRef, item.canOpen);
                document && this._recentFiles.push(document);
            }
        });
    }
}


/***/ }),

/***/ "8yT3":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* unused harmony export TRACEPARENT_REGEXP */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return extractTraceparentData; });
const TRACEPARENT_REGEXP = new RegExp('^[ \\t]*' + // whitespace
'([0-9a-f]{32})?' + // trace_id
'-?([0-9a-f]{16})?' + // span_id
'-?([01])?' + // sampled
'[ \\t]*$');
/**
 * Extract transaction context data from a `sentry-trace` header.
 *
 * @param traceparent Traceparent string
 *
 * @returns Object containing data from the header, or undefined if traceparent string is malformed
 */

function extractTraceparentData(traceparent) {
  const matches = traceparent.match(TRACEPARENT_REGEXP);

  if (!traceparent || !matches) {
    // empty string or no matches is invalid traceparent data
    return undefined;
  }

  let parentSampled;

  if (matches[3] === '1') {
    parentSampled = true;
  } else if (matches[3] === '0') {
    parentSampled = false;
  }

  return {
    traceId: matches[1],
    parentSampled,
    parentSpanId: matches[2]
  };
}



/***/ }),

/***/ "9/TN":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return RequestController; });
/* harmony import */ var _api_monitor_sleep__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("Up8U");
/* harmony import */ var _Deferred__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("c6RX");
/* harmony import */ var _SpacesError__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("R5sx");
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/



class RequestController extends AbortController {
    constructor() {
        super();
    }
    // This sessions should be created whenever a retry is needed,
    // then allowRetry should be called to check if a retry is allowed.
    createRetrySession(options) {
        var _a, _b;
        return {
            attempts: 0,
            maxAttempts: (_a = options === null || options === void 0 ? void 0 : options.maxAttempts) !== null && _a !== void 0 ? _a : 10,
            delay: (_b = options === null || options === void 0 ? void 0 : options.delay) !== null && _b !== void 0 ? _b : 1000,
        };
    }
    async allowRetry(session) {
        const { attempts, maxAttempts, delay } = session;
        const { signal } = this;
        if (attempts === maxAttempts) {
            return false;
        }
        await this.sleepWithAbort(delay);
        session.attempts = attempts + 1;
        return !signal.aborted;
    }
    async sleepWithAbort(delay) {
        const { signal } = this;
        if (signal.aborted) {
            return;
        }
        let resolveDeferred;
        const deferred = new _Deferred__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"]();
        resolveDeferred = (ev) => deferred.resolve();
        signal.addEventListener('abort', resolveDeferred);
        await Promise.race([Object(_api_monitor_sleep__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(delay), deferred === null || deferred === void 0 ? void 0 : deferred.promise]);
        signal.removeEventListener('abort', resolveDeferred);
    }
    async runWithRetrySession(callback, prevErr, session) {
        const allow = await this.allowRetry(session);
        if (!allow) {
            throw prevErr;
        }
        try {
            const result = await callback();
            return result;
        }
        catch (e) {
            if (!Object(_SpacesError__WEBPACK_IMPORTED_MODULE_2__[/* isNetworkError */ "e"])(e)) {
                throw e;
            }
            return await this.runWithRetrySession(callback, e, session);
        }
    }
    async runWithRetry(callback, options) {
        try {
            const result = await callback();
            return result;
        }
        catch (e) {
            if (!Object(_SpacesError__WEBPACK_IMPORTED_MODULE_2__[/* isNetworkError */ "e"])(e)) {
                throw e;
            }
            const session = this.createRetrySession(options);
            return await this.runWithRetrySession(callback, e, session);
        }
    }
    async runUntilWithRetrySession(callback, predicate, session) {
        const allow = await this.allowRetry(session);
        if (!allow) {
            return;
        }
        const result = await callback();
        if (await predicate(result)) {
            return result;
        }
        await this.runUntilWithRetrySession(callback, predicate, session);
    }
    async runUntil(callback, predicate, options) {
        const result = await callback();
        if (await predicate(result)) {
            return result;
        }
        const session = this.createRetrySession(options);
        return await this.runUntilWithRetrySession(callback, predicate, session);
    }
}


/***/ }),

/***/ "9/Zf":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* unused harmony export addContextToFrame */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return addExceptionMechanism; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return addExceptionTypeValue; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return arrayify; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return checkOrSetAlreadyCaught; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return getEventDescription; });
/* unused harmony export parseSemver */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return uuid4; });
/* harmony import */ var _object_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("6PXS");
/* harmony import */ var _string_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("+924");
/* harmony import */ var _worldwide_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("rbyU");



/**
 * UUID4 generator
 *
 * @returns string Generated UUID4.
 */

function uuid4() {
  const gbl = _worldwide_js__WEBPACK_IMPORTED_MODULE_2__[/* GLOBAL_OBJ */ "a"];
  const crypto = gbl.crypto || gbl.msCrypto;

  if (crypto && crypto.randomUUID) {
    return crypto.randomUUID().replace(/-/g, '');
  }

  const getRandomByte = crypto && crypto.getRandomValues ? () => crypto.getRandomValues(new Uint8Array(1))[0] : () => Math.random() * 16; // http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/2117523#2117523
  // Concatenating the following numbers as strings results in '10000000100040008000100000000000'

  return ([1e7] + 1e3 + 4e3 + 8e3 + 1e11).replace(/[018]/g, c => // eslint-disable-next-line no-bitwise
  (c ^ (getRandomByte() & 15) >> c / 4).toString(16));
}

function getFirstException(event) {
  return event.exception && event.exception.values ? event.exception.values[0] : undefined;
}
/**
 * Extracts either message or type+value from an event that can be used for user-facing logs
 * @returns event's description
 */


function getEventDescription(event) {
  const {
    message,
    event_id: eventId
  } = event;

  if (message) {
    return message;
  }

  const firstException = getFirstException(event);

  if (firstException) {
    if (firstException.type && firstException.value) {
      return `${firstException.type}: ${firstException.value}`;
    }

    return firstException.type || firstException.value || eventId || '<unknown>';
  }

  return eventId || '<unknown>';
}
/**
 * Adds exception values, type and value to an synthetic Exception.
 * @param event The event to modify.
 * @param value Value of the exception.
 * @param type Type of the exception.
 * @hidden
 */


function addExceptionTypeValue(event, value, type) {
  const exception = event.exception = event.exception || {};
  const values = exception.values = exception.values || [];
  const firstException = values[0] = values[0] || {};

  if (!firstException.value) {
    firstException.value = value || '';
  }

  if (!firstException.type) {
    firstException.type = type || 'Error';
  }
}
/**
 * Adds exception mechanism data to a given event. Uses defaults if the second parameter is not passed.
 *
 * @param event The event to modify.
 * @param newMechanism Mechanism data to add to the event.
 * @hidden
 */


function addExceptionMechanism(event, newMechanism) {
  const firstException = getFirstException(event);

  if (!firstException) {
    return;
  }

  const defaultMechanism = {
    type: 'generic',
    handled: true
  };
  const currentMechanism = firstException.mechanism;
  firstException.mechanism = { ...defaultMechanism,
    ...currentMechanism,
    ...newMechanism
  };

  if (newMechanism && 'data' in newMechanism) {
    const mergedData = { ...(currentMechanism && currentMechanism.data),
      ...newMechanism.data
    };
    firstException.mechanism.data = mergedData;
  }
} // https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string


const SEMVER_REGEXP = /^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/;
/**
 * Represents Semantic Versioning object
 */

/**
 * Parses input into a SemVer interface
 * @param input string representation of a semver version
 */

function parseSemver(input) {
  const match = input.match(SEMVER_REGEXP) || [];
  const major = parseInt(match[1], 10);
  const minor = parseInt(match[2], 10);
  const patch = parseInt(match[3], 10);
  return {
    buildmetadata: match[5],
    major: isNaN(major) ? undefined : major,
    minor: isNaN(minor) ? undefined : minor,
    patch: isNaN(patch) ? undefined : patch,
    prerelease: match[4]
  };
}
/**
 * This function adds context (pre/post/line) lines to the provided frame
 *
 * @param lines string[] containing all lines
 * @param frame StackFrame that will be mutated
 * @param linesOfContext number of context lines we want to add pre/post
 */


function addContextToFrame(lines, frame, linesOfContext = 5) {
  const lineno = frame.lineno || 0;
  const maxLines = lines.length;
  const sourceLine = Math.max(Math.min(maxLines, lineno - 1), 0);
  frame.pre_context = lines.slice(Math.max(0, sourceLine - linesOfContext), sourceLine).map(line => Object(_string_js__WEBPACK_IMPORTED_MODULE_1__[/* snipLine */ "c"])(line, 0));
  frame.context_line = Object(_string_js__WEBPACK_IMPORTED_MODULE_1__[/* snipLine */ "c"])(lines[Math.min(maxLines - 1, sourceLine)], frame.colno || 0);
  frame.post_context = lines.slice(Math.min(sourceLine + 1, maxLines), sourceLine + 1 + linesOfContext).map(line => Object(_string_js__WEBPACK_IMPORTED_MODULE_1__[/* snipLine */ "c"])(line, 0));
}
/**
 * Checks whether or not we've already captured the given exception (note: not an identical exception - the very object
 * in question), and marks it captured if not.
 *
 * This is useful because it's possible for an error to get captured by more than one mechanism. After we intercept and
 * record an error, we rethrow it (assuming we've intercepted it before it's reached the top-level global handlers), so
 * that we don't interfere with whatever effects the error might have had were the SDK not there. At that point, because
 * the error has been rethrown, it's possible for it to bubble up to some other code we've instrumented. If it's not
 * caught after that, it will bubble all the way up to the global handlers (which of course we also instrument). This
 * function helps us ensure that even if we encounter the same error more than once, we only record it the first time we
 * see it.
 *
 * Note: It will ignore primitives (always return `false` and not mark them as seen), as properties can't be set on
 * them. {@link: Object.objectify} can be used on exceptions to convert any that are primitives into their equivalent
 * object wrapper forms so that this check will always work. However, because we need to flag the exact object which
 * will get rethrown, and because that rethrowing happens outside of the event processing pipeline, the objectification
 * must be done before the exception captured.
 *
 * @param A thrown exception to check or flag as having been seen
 * @returns `true` if the exception has already been captured, `false` if not (with the side effect of marking it seen)
 */


function checkOrSetAlreadyCaught(exception) {
  // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
  if (exception && exception.__sentry_captured__) {
    return true;
  }

  try {
    // set it this way rather than by assignment so that it's not ennumerable and therefore isn't recorded by the
    // `ExtraErrorData` integration
    Object(_object_js__WEBPACK_IMPORTED_MODULE_0__[/* addNonEnumerableProperty */ "a"])(exception, '__sentry_captured__', true);
  } catch (err) {// `exception` is a primitive, so we can't mark it seen
  }

  return false;
}
/**
 * Checks whether the given input is already an array, and if it isn't, wraps it in one.
 *
 * @param maybeArray Input to turn into an array, if necessary
 * @returns The input, if already an array, or an array with the input as the only element, if not
 */


function arrayify(maybeArray) {
  return Array.isArray(maybeArray) ? maybeArray : [maybeArray];
}



/***/ }),

/***/ "93I4":
/***/ (function(module, exports) {

module.exports = function (it) {
  return typeof it === 'object' ? it !== null : typeof it === 'function';
};

/***/ }),

/***/ "96jg":
/***/ (function(module) {

module.exports = JSON.parse("{\"close\":\"닫기\",\"error\":\"오류\",\"info\":\"정보\",\"success\":\"성공\",\"warning\":\"경고\"}");

/***/ }),

/***/ "96ti":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = StatusLight;

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _filterDOMProps = _interopRequireDefault(__webpack_require__("Cv/Q"));

var _propTypes = _interopRequireDefault(__webpack_require__("17x9"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

const _excluded = ["variant", "children", "disabled", "className"];

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

if (false) {} else if (false) {} else {
  __webpack_require__("/wZh");
}

if (true) __webpack_require__("dKDc");
if (true) __webpack_require__("kxSU");
if (true) __webpack_require__("kQeN");
if (true) __webpack_require__("0Kk6");
const VARIANTS = ['celery', 'yellow', 'fuchsia', 'indigo', 'seafoam', 'chartreuse', 'magenta', 'purple', 'neutral', 'positive', 'notice', 'negative', 'info']; // For backward compatibility

const DEPRECATED_VARIANTS = {
  archived: 'neutral',
  active: 'info'
};

function StatusLight(_ref) {
  let {
    variant = VARIANTS[0],
    children,
    disabled,
    className
  } = _ref,
      otherProps = _objectWithoutProperties(_ref, _excluded);

  if (DEPRECATED_VARIANTS[variant]) {
    console.warn(`The "${variant}" variant of StatusLight is deprecated. Please use "${DEPRECATED_VARIANTS[variant]}" instead.`);
    variant = DEPRECATED_VARIANTS[variant];
  }

  return /*#__PURE__*/_react.default.createElement("div", _extends({
    className: (0, _classnames.default)('spectrum-StatusLight', `spectrum-StatusLight--${variant}`, {
      'is-disabled': disabled
    }, className)
  }, (0, _filterDOMProps.default)(otherProps)), children);
}

StatusLight.displayName = 'StatusLight';
StatusLight.propTypes = {
  /**
   * The css class for the status light, it's applied to the top level div.
   */
  className: _propTypes.default.string,

  /**
   * The variant changes the color of the status light.
   */
  variant: _propTypes.default.oneOf(VARIANTS),

  /**
   * Greys out the light and label
   */
  disabled: _propTypes.default.bool
};

/***/ }),

/***/ "98hM":
/***/ (function(module, exports, __webpack_require__) {

module.exports = __webpack_require__.p + "assets/start/XD_Preset_Social@2X.png";

/***/ }),

/***/ "99Ma":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(process, setImmediate) {/* unused harmony export addDisposer */
/* unused harmony export addMiddleware */
/* unused harmony export applyAction */
/* unused harmony export applyPatch */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return applySnapshot; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return cast; });
/* unused harmony export castFlowReturn */
/* unused harmony export castToReferenceSnapshot */
/* unused harmony export castToSnapshot */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return clone; });
/* unused harmony export createActionTrackingMiddleware */
/* unused harmony export createActionTrackingMiddleware2 */
/* unused harmony export decorate */
/* unused harmony export destroy */
/* unused harmony export detach */
/* unused harmony export escapeJsonPath */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return flow; });
/* unused harmony export getChildType */
/* unused harmony export getEnv */
/* unused harmony export getIdentifier */
/* unused harmony export getLivelinessChecking */
/* unused harmony export getMembers */
/* unused harmony export getNodeId */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return getParent; });
/* unused harmony export getParentOfType */
/* unused harmony export getPath */
/* unused harmony export getPathParts */
/* unused harmony export getPropertyMembers */
/* unused harmony export getRelativePath */
/* unused harmony export getRoot */
/* unused harmony export getRunningActionContext */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return getSnapshot; });
/* unused harmony export getType */
/* unused harmony export hasParent */
/* unused harmony export hasParentOfType */
/* unused harmony export isActionContextChildOf */
/* unused harmony export isActionContextThisOrChildOf */
/* unused harmony export isAlive */
/* unused harmony export isArrayType */
/* unused harmony export isFrozenType */
/* unused harmony export isIdentifierType */
/* unused harmony export isLateType */
/* unused harmony export isLiteralType */
/* unused harmony export isMapType */
/* unused harmony export isModelType */
/* unused harmony export isOptionalType */
/* unused harmony export isPrimitiveType */
/* unused harmony export isProtected */
/* unused harmony export isReferenceType */
/* unused harmony export isRefinementType */
/* unused harmony export isRoot */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return isStateTreeNode; });
/* unused harmony export isType */
/* unused harmony export isUnionType */
/* unused harmony export isValidReference */
/* unused harmony export joinJsonPath */
/* unused harmony export onAction */
/* unused harmony export onPatch */
/* unused harmony export onSnapshot */
/* unused harmony export process */
/* unused harmony export protect */
/* unused harmony export recordActions */
/* unused harmony export recordPatches */
/* unused harmony export resolveIdentifier */
/* unused harmony export resolvePath */
/* unused harmony export setLivelinessChecking */
/* unused harmony export setLivelynessChecking */
/* unused harmony export splitJsonPath */
/* unused harmony export tryReference */
/* unused harmony export tryResolve */
/* unused harmony export typecheck */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return types; });
/* unused harmony export unescapeJsonPath */
/* unused harmony export unprotect */
/* unused harmony export walk */
/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("2vnA");

var livelinessChecking = "warn";
/**
 * Defines what MST should do when running into reads / writes to objects that have died.
 * By default it will print a warning.
 * Use the `"error"` option to easy debugging to see where the error was thrown and when the offending read / write took place
 *
 * @param mode `"warn"`, `"error"` or `"ignore"`
 */

function setLivelinessChecking(mode) {
  livelinessChecking = mode;
}
/**
 * Returns the current liveliness checking mode.
 *
 * @returns `"warn"`, `"error"` or `"ignore"`
 */


function getLivelinessChecking() {
  return livelinessChecking;
}
/**
 * @deprecated use setLivelinessChecking instead
 * @hidden
 *
 * Defines what MST should do when running into reads / writes to objects that have died.
 * By default it will print a warning.
 * Use the `"error"` option to easy debugging to see where the error was thrown and when the offending read / write took place
 *
 * @param mode `"warn"`, `"error"` or `"ignore"`
 */


function setLivelynessChecking(mode) {
  setLivelinessChecking(mode);
}
/**
 * @hidden
 */


var Hook;

(function (Hook) {
  Hook["afterCreate"] = "afterCreate";
  Hook["afterAttach"] = "afterAttach";
  Hook["afterCreationFinalization"] = "afterCreationFinalization";
  Hook["beforeDetach"] = "beforeDetach";
  Hook["beforeDestroy"] = "beforeDestroy";
})(Hook || (Hook = {}));
/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0

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

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

/* global Reflect, Promise */


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

  return extendStatics(d, b);
};

function __extends(d, b) {
  extendStatics(d, b);

  function __() {
    this.constructor = d;
  }

  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
}

var __assign = function () {
  __assign = Object.assign || function __assign(t) {
    for (var s, i = 1, n = arguments.length; i < n; i++) {
      s = arguments[i];

      for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
    }

    return t;
  };

  return __assign.apply(this, arguments);
};

function __rest(s, e) {
  var t = {};

  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];

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

function __decorate(decorators, target, key, desc) {
  var c = arguments.length,
      r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
      d;
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  return c > 3 && r && Object.defineProperty(target, key, r), r;
}

function __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;
}
/**
 * Returns the _actual_ type of the given tree node. (Or throws)
 *
 * @param object
 * @returns
 */


function getType(object) {
  assertIsStateTreeNode(object, 1);
  return getStateTreeNode(object).type;
}
/**
 * Returns the _declared_ type of the given sub property of an object, array or map.
 * In the case of arrays and maps the property name is optional and will be ignored.
 *
 * Example:
 * ```ts
 * const Box = types.model({ x: 0, y: 0 })
 * const box = Box.create()
 *
 * console.log(getChildType(box, "x").name) // 'number'
 * ```
 *
 * @param object
 * @param propertyName
 * @returns
 */


function getChildType(object, propertyName) {
  assertIsStateTreeNode(object, 1);
  return getStateTreeNode(object).getChildType(propertyName);
}
/**
 * Registers a function that will be invoked for each mutation that is applied to the provided model instance, or to any of its children.
 * See [patches](https://github.com/mobxjs/mobx-state-tree#patches) for more details. onPatch events are emitted immediately and will not await the end of a transaction.
 * Patches can be used to deep observe a model tree.
 *
 * @param target the model instance from which to receive patches
 * @param callback the callback that is invoked for each patch. The reversePatch is a patch that would actually undo the emitted patch
 * @returns function to remove the listener
 */


function onPatch(target, callback) {
  // check all arguments
  assertIsStateTreeNode(target, 1);
  assertIsFunction(callback, 2);
  return getStateTreeNode(target).onPatch(callback);
}
/**
 * Registers a function that is invoked whenever a new snapshot for the given model instance is available.
 * The listener will only be fire at the end of the current MobX (trans)action.
 * See [snapshots](https://github.com/mobxjs/mobx-state-tree#snapshots) for more details.
 *
 * @param target
 * @param callback
 * @returns
 */


function onSnapshot(target, callback) {
  // check all arguments
  assertIsStateTreeNode(target, 1);
  assertIsFunction(callback, 2);
  return getStateTreeNode(target).onSnapshot(callback);
}
/**
 * Applies a JSON-patch to the given model instance or bails out if the patch couldn't be applied
 * See [patches](https://github.com/mobxjs/mobx-state-tree#patches) for more details.
 *
 * Can apply a single past, or an array of patches.
 *
 * @param target
 * @param patch
 * @returns
 */


function applyPatch(target, patch) {
  // check all arguments
  assertIsStateTreeNode(target, 1);
  assertArg(patch, function (p) {
    return typeof p === "object";
  }, "object or array", 2);
  getStateTreeNode(target).applyPatches(asArray(patch));
}
/**
 * Small abstraction around `onPatch` and `applyPatch`, attaches a patch listener to a tree and records all the patches.
 * Returns an recorder object with the following signature:
 *
 * Example:
 * ```ts
 * export interface IPatchRecorder {
 *      // the recorded patches
 *      patches: IJsonPatch[]
 *      // the inverse of the recorded patches
 *      inversePatches: IJsonPatch[]
 *      // true if currently recording
 *      recording: boolean
 *      // stop recording patches
 *      stop(): void
 *      // resume recording patches
 *      resume(): void
 *      // apply all the recorded patches on the given target (the original subject if omitted)
 *      replay(target?: IAnyStateTreeNode): void
 *      // reverse apply the recorded patches on the given target  (the original subject if omitted)
 *      // stops the recorder if not already stopped
 *      undo(): void
 * }
 * ```
 *
 * The optional filter function allows to skip recording certain patches.
 *
 * @param subject
 * @param filter
 * @returns
 */


function recordPatches(subject, filter) {
  // check all arguments
  assertIsStateTreeNode(subject, 1);
  var data = {
    patches: [],
    reversedInversePatches: []
  }; // we will generate the immutable copy of patches on demand for public consumption

  var publicData = {};
  var disposer;
  var recorder = {
    get recording() {
      return !!disposer;
    },

    get patches() {
      if (!publicData.patches) {
        publicData.patches = data.patches.slice();
      }

      return publicData.patches;
    },

    get reversedInversePatches() {
      if (!publicData.reversedInversePatches) {
        publicData.reversedInversePatches = data.reversedInversePatches.slice();
      }

      return publicData.reversedInversePatches;
    },

    get inversePatches() {
      if (!publicData.inversePatches) {
        publicData.inversePatches = data.reversedInversePatches.slice().reverse();
      }

      return publicData.inversePatches;
    },

    stop: function () {
      if (disposer) {
        disposer();
        disposer = undefined;
      }
    },
    resume: function () {
      if (disposer) return;
      disposer = onPatch(subject, function (patch, inversePatch) {
        // skip patches that are asked to be filtered if there's a filter in place
        if (filter && !filter(patch, inversePatch, getRunningActionContext())) {
          return;
        }

        data.patches.push(patch);
        data.reversedInversePatches.unshift(inversePatch); // mark immutable public patches as dirty

        publicData.patches = undefined;
        publicData.inversePatches = undefined;
        publicData.reversedInversePatches = undefined;
      });
    },
    replay: function (target) {
      applyPatch(target || subject, data.patches);
    },
    undo: function (target) {
      applyPatch(target || subject, data.reversedInversePatches);
    }
  };
  recorder.resume();
  return recorder;
}
/**
 * The inverse of `unprotect`.
 *
 * @param target
 */


function protect(target) {
  // check all arguments
  assertIsStateTreeNode(target, 1);
  var node = getStateTreeNode(target);
  if (!node.isRoot) throw fail$1("`protect` can only be invoked on root nodes");
  node.isProtectionEnabled = true;
}
/**
 * By default it is not allowed to directly modify a model. Models can only be modified through actions.
 * However, in some cases you don't care about the advantages (like replayability, traceability, etc) this yields.
 * For example because you are building a PoC or don't have any middleware attached to your tree.
 *
 * In that case you can disable this protection by calling `unprotect` on the root of your tree.
 *
 * Example:
 * ```ts
 * const Todo = types.model({
 *     done: false
 * }).actions(self => ({
 *     toggle() {
 *         self.done = !self.done
 *     }
 * }))
 *
 * const todo = Todo.create()
 * todo.done = true // throws!
 * todo.toggle() // OK
 * unprotect(todo)
 * todo.done = false // OK
 * ```
 */


function unprotect(target) {
  // check all arguments
  assertIsStateTreeNode(target, 1);
  var node = getStateTreeNode(target);
  if (!node.isRoot) throw fail$1("`unprotect` can only be invoked on root nodes");
  node.isProtectionEnabled = false;
}
/**
 * Returns true if the object is in protected mode, @see protect
 */


function isProtected(target) {
  return getStateTreeNode(target).isProtected;
}
/**
 * Applies a snapshot to a given model instances. Patch and snapshot listeners will be invoked as usual.
 *
 * @param target
 * @param snapshot
 * @returns
 */


function applySnapshot(target, snapshot) {
  // check all arguments
  assertIsStateTreeNode(target, 1);
  return getStateTreeNode(target).applySnapshot(snapshot);
}
/**
 * Calculates a snapshot from the given model instance. The snapshot will always reflect the latest state but use
 * structural sharing where possible. Doesn't require MobX transactions to be completed.
 *
 * @param target
 * @param applyPostProcess If true (the default) then postProcessSnapshot gets applied.
 * @returns
 */


function getSnapshot(target, applyPostProcess) {
  if (applyPostProcess === void 0) {
    applyPostProcess = true;
  } // check all arguments


  assertIsStateTreeNode(target, 1);
  var node = getStateTreeNode(target);
  if (applyPostProcess) return node.snapshot;
  return freeze(node.type.getSnapshot(node, false));
}
/**
 * Given a model instance, returns `true` if the object has a parent, that is, is part of another object, map or array.
 *
 * @param target
 * @param depth How far should we look upward? 1 by default.
 * @returns
 */


function hasParent(target, depth) {
  if (depth === void 0) {
    depth = 1;
  } // check all arguments


  assertIsStateTreeNode(target, 1);
  assertIsNumber(depth, 2, 0);
  var parent = getStateTreeNode(target).parent;

  while (parent) {
    if (--depth === 0) return true;
    parent = parent.parent;
  }

  return false;
}
/**
 * Returns the immediate parent of this object, or throws.
 *
 * Note that the immediate parent can be either an object, map or array, and
 * doesn't necessarily refer to the parent model.
 *
 * Please note that in child nodes access to the root is only possible
 * once the `afterAttach` hook has fired.
 *
 * @param target
 * @param depth How far should we look upward? 1 by default.
 * @returns
 */


function getParent(target, depth) {
  if (depth === void 0) {
    depth = 1;
  } // check all arguments


  assertIsStateTreeNode(target, 1);
  assertIsNumber(depth, 2, 0);
  var d = depth;
  var parent = getStateTreeNode(target).parent;

  while (parent) {
    if (--d === 0) return parent.storedValue;
    parent = parent.parent;
  }

  throw fail$1("Failed to find the parent of " + getStateTreeNode(target) + " at depth " + depth);
}
/**
 * Given a model instance, returns `true` if the object has a parent of given type, that is, is part of another object, map or array
 *
 * @param target
 * @param type
 * @returns
 */


function hasParentOfType(target, type) {
  // check all arguments
  assertIsStateTreeNode(target, 1);
  assertIsType(type, 2);
  var parent = getStateTreeNode(target).parent;

  while (parent) {
    if (type.is(parent.storedValue)) return true;
    parent = parent.parent;
  }

  return false;
}
/**
 * Returns the target's parent of a given type, or throws.
 *
 * @param target
 * @param type
 * @returns
 */


function getParentOfType(target, type) {
  // check all arguments
  assertIsStateTreeNode(target, 1);
  assertIsType(type, 2);
  var parent = getStateTreeNode(target).parent;

  while (parent) {
    if (type.is(parent.storedValue)) return parent.storedValue;
    parent = parent.parent;
  }

  throw fail$1("Failed to find the parent of " + getStateTreeNode(target) + " of a given type");
}
/**
 * Given an object in a model tree, returns the root object of that tree.
 *
 * Please note that in child nodes access to the root is only possible
 * once the `afterAttach` hook has fired.
 *
 * @param target
 * @returns
 */


function getRoot(target) {
  // check all arguments
  assertIsStateTreeNode(target, 1);
  return getStateTreeNode(target).root.storedValue;
}
/**
 * Returns the path of the given object in the model tree
 *
 * @param target
 * @returns
 */


function getPath(target) {
  // check all arguments
  assertIsStateTreeNode(target, 1);
  return getStateTreeNode(target).path;
}
/**
 * Returns the path of the given object as unescaped string array.
 *
 * @param target
 * @returns
 */


function getPathParts(target) {
  // check all arguments
  assertIsStateTreeNode(target, 1);
  return splitJsonPath(getStateTreeNode(target).path);
}
/**
 * Returns true if the given object is the root of a model tree.
 *
 * @param target
 * @returns
 */


function isRoot(target) {
  // check all arguments
  assertIsStateTreeNode(target, 1);
  return getStateTreeNode(target).isRoot;
}
/**
 * Resolves a path relatively to a given object.
 * Returns undefined if no value can be found.
 *
 * @param target
 * @param path escaped json path
 * @returns
 */


function resolvePath(target, path) {
  // check all arguments
  assertIsStateTreeNode(target, 1);
  assertIsString(path, 2);
  var node = resolveNodeByPath(getStateTreeNode(target), path);
  return node ? node.value : undefined;
}
/**
 * Resolves a model instance given a root target, the type and the identifier you are searching for.
 * Returns undefined if no value can be found.
 *
 * @param type
 * @param target
 * @param identifier
 * @returns
 */


function resolveIdentifier(type, target, identifier) {
  // check all arguments
  assertIsType(type, 1);
  assertIsStateTreeNode(target, 2);
  assertIsValidIdentifier(identifier, 3);
  var node = getStateTreeNode(target).root.identifierCache.resolve(type, normalizeIdentifier(identifier));
  return node ? node.value : undefined;
}
/**
 * Returns the identifier of the target node.
 * This is the *string normalized* identifier, which might not match the type of the identifier attribute
 *
 * @param target
 * @returns
 */


function getIdentifier(target) {
  // check all arguments
  assertIsStateTreeNode(target, 1);
  return getStateTreeNode(target).identifier;
}
/**
 * Tests if a reference is valid (pointing to an existing node and optionally if alive) and returns such reference if it the check passes,
 * else it returns undefined.
 *
 * @param getter Function to access the reference.
 * @param checkIfAlive true to also make sure the referenced node is alive (default), false to skip this check.
 * @returns
 */


function tryReference(getter, checkIfAlive) {
  if (checkIfAlive === void 0) {
    checkIfAlive = true;
  }

  try {
    var node = getter();

    if (node === undefined || node === null) {
      return undefined;
    } else if (isStateTreeNode(node)) {
      if (!checkIfAlive) {
        return node;
      } else {
        return isAlive(node) ? node : undefined;
      }
    } else {
      throw fail$1("The reference to be checked is not one of node, null or undefined");
    }
  } catch (e) {
    if (e instanceof InvalidReferenceError) {
      return undefined;
    }

    throw e;
  }
}
/**
 * Tests if a reference is valid (pointing to an existing node and optionally if alive) and returns if the check passes or not.
 *
 * @param getter Function to access the reference.
 * @param checkIfAlive true to also make sure the referenced node is alive (default), false to skip this check.
 * @returns
 */


function isValidReference(getter, checkIfAlive) {
  if (checkIfAlive === void 0) {
    checkIfAlive = true;
  }

  try {
    var node = getter();

    if (node === undefined || node === null) {
      return false;
    } else if (isStateTreeNode(node)) {
      return checkIfAlive ? isAlive(node) : true;
    } else {
      throw fail$1("The reference to be checked is not one of node, null or undefined");
    }
  } catch (e) {
    if (e instanceof InvalidReferenceError) {
      return false;
    }

    throw e;
  }
}
/**
 * Try to resolve a given path relative to a given node.
 *
 * @param target
 * @param path
 * @returns
 */


function tryResolve(target, path) {
  // check all arguments
  assertIsStateTreeNode(target, 1);
  assertIsString(path, 2);
  var node = resolveNodeByPath(getStateTreeNode(target), path, false);
  if (node === undefined) return undefined;

  try {
    return node.value;
  } catch (e) {
    // For what ever reason not resolvable (e.g. totally not existing path, or value that cannot be fetched)
    // see test / issue: 'try resolve doesn't work #686'
    return undefined;
  }
}
/**
 * Given two state tree nodes that are part of the same tree,
 * returns the shortest jsonpath needed to navigate from the one to the other
 *
 * @param base
 * @param target
 * @returns
 */


function getRelativePath(base, target) {
  // check all arguments
  assertIsStateTreeNode(base, 1);
  assertIsStateTreeNode(target, 2);
  return getRelativePathBetweenNodes(getStateTreeNode(base), getStateTreeNode(target));
}
/**
 * Returns a deep copy of the given state tree node as new tree.
 * Short hand for `snapshot(x) = getType(x).create(getSnapshot(x))`
 *
 * _Tip: clone will create a literal copy, including the same identifiers. To modify identifiers etc during cloning, don't use clone but take a snapshot of the tree, modify it, and create new instance_
 *
 * @param source
 * @param keepEnvironment indicates whether the clone should inherit the same environment (`true`, the default), or not have an environment (`false`). If an object is passed in as second argument, that will act as the environment for the cloned tree.
 * @returns
 */


function clone(source, keepEnvironment) {
  if (keepEnvironment === void 0) {
    keepEnvironment = true;
  } // check all arguments


  assertIsStateTreeNode(source, 1);
  var node = getStateTreeNode(source);
  return node.type.create(node.snapshot, keepEnvironment === true ? node.root.environment : keepEnvironment === false ? undefined : keepEnvironment); // it's an object or something else
}
/**
 * Removes a model element from the state tree, and let it live on as a new state tree
 */


function detach(target) {
  // check all arguments
  assertIsStateTreeNode(target, 1);
  getStateTreeNode(target).detach();
  return target;
}
/**
 * Removes a model element from the state tree, and mark it as end-of-life; the element should not be used anymore
 */


function destroy(target) {
  // check all arguments
  assertIsStateTreeNode(target, 1);
  var node = getStateTreeNode(target);
  if (node.isRoot) node.die();else node.parent.removeChild(node.subpath);
}
/**
 * Returns true if the given state tree node is not killed yet.
 * This means that the node is still a part of a tree, and that `destroy`
 * has not been called. If a node is not alive anymore, the only thing one can do with it
 * is requesting it's last path and snapshot
 *
 * @param target
 * @returns
 */


function isAlive(target) {
  // check all arguments
  assertIsStateTreeNode(target, 1);
  return getStateTreeNode(target).observableIsAlive;
}
/**
 * Use this utility to register a function that should be called whenever the
 * targeted state tree node is destroyed. This is a useful alternative to managing
 * cleanup methods yourself using the `beforeDestroy` hook.
 *
 * This methods returns the same disposer that was passed as argument.
 *
 * Example:
 * ```ts
 * const Todo = types.model({
 *   title: types.string
 * }).actions(self => ({
 *   afterCreate() {
 *     const autoSaveDisposer = reaction(
 *       () => getSnapshot(self),
 *       snapshot => sendSnapshotToServerSomehow(snapshot)
 *     )
 *     // stop sending updates to server if this
 *     // instance is destroyed
 *     addDisposer(self, autoSaveDisposer)
 *   }
 * }))
 * ```
 *
 * @param target
 * @param disposer
 * @returns The same disposer that was passed as argument
 */


function addDisposer(target, disposer) {
  // check all arguments
  assertIsStateTreeNode(target, 1);
  assertIsFunction(disposer, 2);
  var node = getStateTreeNode(target);
  node.addDisposer(disposer);
  return disposer;
}
/**
 * Returns the environment of the current state tree. For more info on environments,
 * see [Dependency injection](https://github.com/mobxjs/mobx-state-tree#dependency-injection)
 *
 * Please note that in child nodes access to the root is only possible
 * once the `afterAttach` hook has fired
 *
 * Returns an empty environment if the tree wasn't initialized with an environment
 *
 * @param target
 * @returns
 */


function getEnv(target) {
  // check all arguments
  assertIsStateTreeNode(target, 1);
  var node = getStateTreeNode(target);
  var env = node.root.environment;
  if (!env) return EMPTY_OBJECT;
  return env;
}
/**
 * Performs a depth first walk through a tree.
 */


function walk(target, processor) {
  // check all arguments
  assertIsStateTreeNode(target, 1);
  assertIsFunction(processor, 2);
  var node = getStateTreeNode(target); // tslint:disable-next-line:no_unused-variable

  node.getChildren().forEach(function (child) {
    if (isStateTreeNode(child.storedValue)) walk(child.storedValue, processor);
  });
  processor(node.storedValue);
}
/**
 * Returns a reflection of the model type properties and name for either a model type or model node.
 *
 * @param typeOrNode
 * @returns
 */


function getPropertyMembers(typeOrNode) {
  var type;

  if (isStateTreeNode(typeOrNode)) {
    type = getType(typeOrNode);
  } else {
    type = typeOrNode;
  }

  assertArg(type, function (t) {
    return isModelType(t);
  }, "model type or model instance", 1);
  return {
    name: type.name,
    properties: __assign({}, type.properties)
  };
}
/**
 * Returns a reflection of the model node, including name, properties, views, volatile and actions.
 *
 * @param target
 * @returns
 */


function getMembers(target) {
  var type = getStateTreeNode(target).type;

  var reflected = __assign(__assign({}, getPropertyMembers(type)), {
    actions: [],
    volatile: [],
    views: []
  });

  var props = Object.getOwnPropertyNames(target);
  props.forEach(function (key) {
    if (key in reflected.properties) return;
    var descriptor = Object.getOwnPropertyDescriptor(target, key);

    if (descriptor.get) {
      if (Object(mobx__WEBPACK_IMPORTED_MODULE_0__[/* isComputedProp */ "u"])(target, key)) reflected.views.push(key);else reflected.volatile.push(key);
      return;
    }

    if (descriptor.value._isMSTAction === true) reflected.actions.push(key);else if (Object(mobx__WEBPACK_IMPORTED_MODULE_0__[/* isObservableProp */ "y"])(target, key)) reflected.volatile.push(key);else reflected.views.push(key);
  });
  return reflected;
}
/**
 * Casts a node snapshot or instance type to an instance type so it can be assigned to a type instance.
 * Note that this is just a cast for the type system, this is, it won't actually convert a snapshot to an instance,
 * but just fool typescript into thinking so.
 * Either way, casting when outside an assignation operation won't compile.
 *
 * Example:
 * ```ts
 * const ModelA = types.model({
 *   n: types.number
 * }).actions(self => ({
 *   setN(aNumber: number) {
 *     self.n = aNumber
 *   }
 * }))
 *
 * const ModelB = types.model({
 *   innerModel: ModelA
 * }).actions(self => ({
 *   someAction() {
 *     // this will allow the compiler to assign a snapshot to the property
 *     self.innerModel = cast({ a: 5 })
 *   }
 * }))
 * ```
 *
 * @param snapshotOrInstance Snapshot or instance
 * @returns The same object casted as an instance
 */


function cast(snapshotOrInstance) {
  return snapshotOrInstance;
}
/**
 * Casts a node instance type to an snapshot type so it can be assigned to a type snapshot (e.g. to be used inside a create call).
 * Note that this is just a cast for the type system, this is, it won't actually convert an instance to a snapshot,
 * but just fool typescript into thinking so.
 *
 * Example:
 * ```ts
 * const ModelA = types.model({
 *   n: types.number
 * }).actions(self => ({
 *   setN(aNumber: number) {
 *     self.n = aNumber
 *   }
 * }))
 *
 * const ModelB = types.model({
 *   innerModel: ModelA
 * })
 *
 * const a = ModelA.create({ n: 5 });
 * // this will allow the compiler to use a model as if it were a snapshot
 * const b = ModelB.create({ innerModel: castToSnapshot(a)})
 * ```
 *
 * @param snapshotOrInstance Snapshot or instance
 * @returns The same object casted as an input (creation) snapshot
 */


function castToSnapshot(snapshotOrInstance) {
  return snapshotOrInstance;
}
/**
 * Casts a node instance type to a reference snapshot type so it can be assigned to a refernence snapshot (e.g. to be used inside a create call).
 * Note that this is just a cast for the type system, this is, it won't actually convert an instance to a refererence snapshot,
 * but just fool typescript into thinking so.
 *
 * Example:
 * ```ts
 * const ModelA = types.model({
 *   id: types.identifier,
 *   n: types.number
 * }).actions(self => ({
 *   setN(aNumber: number) {
 *     self.n = aNumber
 *   }
 * }))
 *
 * const ModelB = types.model({
 *   refA: types.reference(ModelA)
 * })
 *
 * const a = ModelA.create({ id: 'someId', n: 5 });
 * // this will allow the compiler to use a model as if it were a reference snapshot
 * const b = ModelB.create({ refA: castToReference(a)})
 * ```
 *
 * @param instance Instance
 * @returns The same object casted as an reference snapshot (string or number)
 */


function castToReferenceSnapshot(instance) {
  return instance;
}
/**
 * Returns the unique node id (not to be confused with the instance identifier) for a
 * given instance.
 * This id is a number that is unique for each instance.
 *
 * @export
 * @param target
 * @returns
 */


function getNodeId(target) {
  assertIsStateTreeNode(target, 1);
  return getStateTreeNode(target).nodeId;
}
/**
 * @internal
 * @hidden
 */


var BaseNode =
/** @class */
function () {
  function BaseNode(type, parent, subpath, environment) {
    this.type = type;
    this.environment = environment;
    this._state = NodeLifeCycle.INITIALIZING;
    this.environment = environment;
    this.baseSetParent(parent, subpath);
  }

  Object.defineProperty(BaseNode.prototype, "subpath", {
    get: function () {
      return this._subpath;
    },
    enumerable: true,
    configurable: true
  });
  Object.defineProperty(BaseNode.prototype, "subpathUponDeath", {
    get: function () {
      return this._subpathUponDeath;
    },
    enumerable: true,
    configurable: true
  });
  Object.defineProperty(BaseNode.prototype, "pathUponDeath", {
    get: function () {
      return this._pathUponDeath;
    },
    enumerable: true,
    configurable: true
  });
  Object.defineProperty(BaseNode.prototype, "value", {
    get: function () {
      return this.type.getValue(this);
    },
    enumerable: true,
    configurable: true
  });
  Object.defineProperty(BaseNode.prototype, "state", {
    get: function () {
      return this._state;
    },
    set: function (val) {
      var wasAlive = this.isAlive;
      this._state = val;
      var isAlive = this.isAlive;

      if (this.aliveAtom && wasAlive !== isAlive) {
        this.aliveAtom.reportChanged();
      }
    },
    enumerable: true,
    configurable: true
  });

  BaseNode.prototype.fireInternalHook = function (name) {
    if (this._hookSubscribers) {
      this._hookSubscribers.emit(name, this, name);
    }
  };

  BaseNode.prototype.registerHook = function (hook, hookHandler) {
    if (!this._hookSubscribers) {
      this._hookSubscribers = new EventHandlers();
    }

    return this._hookSubscribers.register(hook, hookHandler);
  };

  Object.defineProperty(BaseNode.prototype, "parent", {
    get: function () {
      return this._parent;
    },
    enumerable: true,
    configurable: true
  });

  BaseNode.prototype.baseSetParent = function (parent, subpath) {
    this._parent = parent;
    this._subpath = subpath;
    this._escapedSubpath = undefined; // regenerate when needed

    if (this.pathAtom) {
      this.pathAtom.reportChanged();
    }
  };

  Object.defineProperty(BaseNode.prototype, "path", {
    /*
     * Returns (escaped) path representation as string
     */
    get: function () {
      return this.getEscapedPath(true);
    },
    enumerable: true,
    configurable: true
  });

  BaseNode.prototype.getEscapedPath = function (reportObserved) {
    if (reportObserved) {
      if (!this.pathAtom) {
        this.pathAtom = Object(mobx__WEBPACK_IMPORTED_MODULE_0__[/* createAtom */ "n"])("path");
      }

      this.pathAtom.reportObserved();
    }

    if (!this.parent) return ""; // regenerate escaped subpath if needed

    if (this._escapedSubpath === undefined) {
      this._escapedSubpath = !this._subpath ? "" : escapeJsonPath(this._subpath);
    }

    return this.parent.getEscapedPath(reportObserved) + "/" + this._escapedSubpath;
  };

  Object.defineProperty(BaseNode.prototype, "isRoot", {
    get: function () {
      return this.parent === null;
    },
    enumerable: true,
    configurable: true
  });
  Object.defineProperty(BaseNode.prototype, "isAlive", {
    get: function () {
      return this.state !== NodeLifeCycle.DEAD;
    },
    enumerable: true,
    configurable: true
  });
  Object.defineProperty(BaseNode.prototype, "isDetaching", {
    get: function () {
      return this.state === NodeLifeCycle.DETACHING;
    },
    enumerable: true,
    configurable: true
  });
  Object.defineProperty(BaseNode.prototype, "observableIsAlive", {
    get: function () {
      if (!this.aliveAtom) {
        this.aliveAtom = Object(mobx__WEBPACK_IMPORTED_MODULE_0__[/* createAtom */ "n"])("alive");
      }

      this.aliveAtom.reportObserved();
      return this.isAlive;
    },
    enumerable: true,
    configurable: true
  });

  BaseNode.prototype.baseFinalizeCreation = function (whenFinalized) {
    if (devMode()) {
      if (!this.isAlive) {
        // istanbul ignore next
        throw fail("assertion failed: cannot finalize the creation of a node that is already dead");
      }
    } // goal: afterCreate hooks runs depth-first. After attach runs parent first, so on afterAttach the parent has completed already


    if (this.state === NodeLifeCycle.CREATED) {
      if (this.parent) {
        if (this.parent.state !== NodeLifeCycle.FINALIZED) {
          // parent not ready yet, postpone
          return;
        }

        this.fireHook(Hook.afterAttach);
      }

      this.state = NodeLifeCycle.FINALIZED;

      if (whenFinalized) {
        whenFinalized();
      }
    }
  };

  BaseNode.prototype.baseFinalizeDeath = function () {
    if (this._hookSubscribers) {
      this._hookSubscribers.clearAll();
    }

    this._subpathUponDeath = this._subpath;
    this._pathUponDeath = this.getEscapedPath(false);
    this.baseSetParent(null, "");
    this.state = NodeLifeCycle.DEAD;
  };

  BaseNode.prototype.baseAboutToDie = function () {
    this.fireHook(Hook.beforeDestroy);
  };

  return BaseNode;
}();
/**
 * @internal
 * @hidden
 */


var ScalarNode =
/** @class */
function (_super) {
  __extends(ScalarNode, _super);

  function ScalarNode(simpleType, parent, subpath, environment, initialSnapshot) {
    var _this = _super.call(this, simpleType, parent, subpath, environment) || this;

    try {
      _this.storedValue = simpleType.createNewInstance(initialSnapshot);
    } catch (e) {
      // short-cut to die the instance, to avoid the snapshot computed starting to throw...
      _this.state = NodeLifeCycle.DEAD;
      throw e;
    }

    _this.state = NodeLifeCycle.CREATED; // for scalar nodes there's no point in firing this event since it would fire on the constructor, before
    // anybody can actually register for/listen to it
    // this.fireHook(Hook.AfterCreate)

    _this.finalizeCreation();

    return _this;
  }

  Object.defineProperty(ScalarNode.prototype, "root", {
    get: function () {
      // future optimization: store root ref in the node and maintain it
      if (!this.parent) throw fail$1("This scalar node is not part of a tree");
      return this.parent.root;
    },
    enumerable: true,
    configurable: true
  });

  ScalarNode.prototype.setParent = function (newParent, subpath) {
    var parentChanged = this.parent !== newParent;
    var subpathChanged = this.subpath !== subpath;

    if (!parentChanged && !subpathChanged) {
      return;
    }

    if (devMode()) {
      if (!subpath) {
        // istanbul ignore next
        throw fail$1("assertion failed: subpath expected");
      }

      if (!newParent) {
        // istanbul ignore next
        throw fail$1("assertion failed: parent expected");
      }

      if (parentChanged) {
        // istanbul ignore next
        throw fail$1("assertion failed: scalar nodes cannot change their parent");
      }
    }

    this.environment = undefined; // use parent's

    this.baseSetParent(this.parent, subpath);
  };

  Object.defineProperty(ScalarNode.prototype, "snapshot", {
    get: function () {
      return freeze(this.getSnapshot());
    },
    enumerable: true,
    configurable: true
  });

  ScalarNode.prototype.getSnapshot = function () {
    return this.type.getSnapshot(this);
  };

  ScalarNode.prototype.toString = function () {
    var path = (this.isAlive ? this.path : this.pathUponDeath) || "<root>";
    return this.type.name + "@" + path + (this.isAlive ? "" : " [dead]");
  };

  ScalarNode.prototype.die = function () {
    if (!this.isAlive || this.state === NodeLifeCycle.DETACHING) return;
    this.aboutToDie();
    this.finalizeDeath();
  };

  ScalarNode.prototype.finalizeCreation = function () {
    this.baseFinalizeCreation();
  };

  ScalarNode.prototype.aboutToDie = function () {
    this.baseAboutToDie();
  };

  ScalarNode.prototype.finalizeDeath = function () {
    this.baseFinalizeDeath();
  };

  ScalarNode.prototype.fireHook = function (name) {
    this.fireInternalHook(name);
  };

  __decorate([mobx__WEBPACK_IMPORTED_MODULE_0__[/* action */ "j"]], ScalarNode.prototype, "die", null);

  return ScalarNode;
}(BaseNode);

var nextNodeId = 1;
var snapshotReactionOptions = {
  onError: function (e) {
    throw e;
  }
};
/**
 * @internal
 * @hidden
 */

var ObjectNode =
/** @class */
function (_super) {
  __extends(ObjectNode, _super);

  function ObjectNode(complexType, parent, subpath, environment, initialValue) {
    var _this = _super.call(this, complexType, parent, subpath, environment) || this;

    _this.nodeId = ++nextNodeId;
    _this.isProtectionEnabled = true;
    _this._autoUnbox = true; // unboxing is disabled when reading child nodes

    _this._isRunningAction = false; // only relevant for root

    _this._hasSnapshotReaction = false;
    _this._observableInstanceState = 0
    /* UNINITIALIZED */
    ;
    _this._cachedInitialSnapshotCreated = false;
    _this.unbox = _this.unbox.bind(_this);
    _this._initialSnapshot = freeze(initialValue);
    _this.identifierAttribute = complexType.identifierAttribute;

    if (!parent) {
      _this.identifierCache = new IdentifierCache();
    }

    _this._childNodes = complexType.initializeChildNodes(_this, _this._initialSnapshot); // identifier can not be changed during lifecycle of a node
    // so we safely can read it from initial snapshot

    _this.identifier = null;
    _this.unnormalizedIdentifier = null;

    if (_this.identifierAttribute && _this._initialSnapshot) {
      var id = _this._initialSnapshot[_this.identifierAttribute];

      if (id === undefined) {
        // try with the actual node if not (for optional identifiers)
        var childNode = _this._childNodes[_this.identifierAttribute];

        if (childNode) {
          id = childNode.value;
        }
      }

      if (typeof id !== "string" && typeof id !== "number") {
        throw fail$1("Instance identifier '" + _this.identifierAttribute + "' for type '" + _this.type.name + "' must be a string or a number");
      } // normalize internal identifier to string


      _this.identifier = normalizeIdentifier(id);
      _this.unnormalizedIdentifier = id;
    }

    if (!parent) {
      _this.identifierCache.addNodeToCache(_this);
    } else {
      parent.root.identifierCache.addNodeToCache(_this);
    }

    return _this;
  }

  ObjectNode.prototype.applyPatches = function (patches) {
    this.createObservableInstanceIfNeeded();

    this._applyPatches(patches);
  };

  ObjectNode.prototype.applySnapshot = function (snapshot) {
    this.createObservableInstanceIfNeeded();

    this._applySnapshot(snapshot);
  };

  ObjectNode.prototype.createObservableInstanceIfNeeded = function () {
    var e_1, _a;

    if (this._observableInstanceState !== 0
    /* UNINITIALIZED */
    ) {
      return;
    }

    if (devMode()) {
      if (this.state !== NodeLifeCycle.INITIALIZING) {
        // istanbul ignore next
        throw fail$1("assertion failed: the creation of the observable instance must be done on the initializing phase");
      }
    }

    this._observableInstanceState = 1
    /* CREATING */
    ; // make sure the parent chain is created as well
    // array with parent chain from parent to child

    var parentChain = [];
    var parent = this.parent; // for performance reasons we never go back further than the most direct
    // uninitialized parent
    // this is done to avoid traversing the whole tree to the root when using
    // the same reference again

    while (parent && parent._observableInstanceState === 0
    /* UNINITIALIZED */
    ) {
      parentChain.unshift(parent);
      parent = parent.parent;
    }

    try {
      // initialize the uninitialized parent chain from parent to child
      for (var parentChain_1 = __values(parentChain), parentChain_1_1 = parentChain_1.next(); !parentChain_1_1.done; parentChain_1_1 = parentChain_1.next()) {
        var p = parentChain_1_1.value;
        p.createObservableInstanceIfNeeded();
      }
    } catch (e_1_1) {
      e_1 = {
        error: e_1_1
      };
    } finally {
      try {
        if (parentChain_1_1 && !parentChain_1_1.done && (_a = parentChain_1.return)) _a.call(parentChain_1);
      } finally {
        if (e_1) throw e_1.error;
      }
    }

    var type = this.type;

    try {
      this.storedValue = type.createNewInstance(this._childNodes);
      this.preboot();
      this._isRunningAction = true;
      type.finalizeNewInstance(this, this.storedValue);
    } catch (e) {
      // short-cut to die the instance, to avoid the snapshot computed starting to throw...
      this.state = NodeLifeCycle.DEAD;
      throw e;
    } finally {
      this._isRunningAction = false;
    }

    this._observableInstanceState = 2
    /* CREATED */
    ; // NOTE: we need to touch snapshot, because non-observable
    // "_observableInstanceState" field was touched

    invalidateComputed(this, "snapshot");
    if (this.isRoot) this._addSnapshotReaction();
    this._childNodes = EMPTY_OBJECT;
    this.state = NodeLifeCycle.CREATED;
    this.fireHook(Hook.afterCreate);
    this.finalizeCreation();
  };

  Object.defineProperty(ObjectNode.prototype, "root", {
    get: function () {
      var parent = this.parent;
      return parent ? parent.root : this;
    },
    enumerable: true,
    configurable: true
  });

  ObjectNode.prototype.clearParent = function () {
    if (!this.parent) return; // detach if attached

    this.fireHook(Hook.beforeDetach);
    var previousState = this.state;
    this.state = NodeLifeCycle.DETACHING;
    var root = this.root;
    var newEnv = root.environment;
    var newIdCache = root.identifierCache.splitCache(this);

    try {
      this.parent.removeChild(this.subpath);
      this.baseSetParent(null, "");
      this.environment = newEnv;
      this.identifierCache = newIdCache;
    } finally {
      this.state = previousState;
    }
  };

  ObjectNode.prototype.setParent = function (newParent, subpath) {
    var parentChanged = newParent !== this.parent;
    var subpathChanged = subpath !== this.subpath;

    if (!parentChanged && !subpathChanged) {
      return;
    }

    if (devMode()) {
      if (!subpath) {
        // istanbul ignore next
        throw fail$1("assertion failed: subpath expected");
      }

      if (!newParent) {
        // istanbul ignore next
        throw fail$1("assertion failed: new parent expected");
      }

      if (this.parent && parentChanged) {
        throw fail$1("A node cannot exists twice in the state tree. Failed to add " + this + " to path '" + newParent.path + "/" + subpath + "'.");
      }

      if (!this.parent && newParent.root === this) {
        throw fail$1("A state tree is not allowed to contain itself. Cannot assign " + this + " to path '" + newParent.path + "/" + subpath + "'");
      }

      if (!this.parent && !!this.environment && this.environment !== newParent.root.environment) {
        throw fail$1("A state tree cannot be made part of another state tree as long as their environments are different.");
      }
    }

    if (parentChanged) {
      // attach to new parent
      this.environment = undefined; // will use root's

      newParent.root.identifierCache.mergeCache(this);
      this.baseSetParent(newParent, subpath);
      this.fireHook(Hook.afterAttach);
    } else if (subpathChanged) {
      // moving to a new subpath on the same parent
      this.baseSetParent(this.parent, subpath);
    }
  };

  ObjectNode.prototype.fireHook = function (name) {
    var _this = this;

    this.fireInternalHook(name);
    var fn = this.storedValue && typeof this.storedValue === "object" && this.storedValue[name];

    if (typeof fn === "function") {
      // we check for it to allow old mobx peer dependencies that don't have the method to work (even when still bugged)
      if (mobx__WEBPACK_IMPORTED_MODULE_0__[/* _allowStateChangesInsideComputed */ "g"]) {
        Object(mobx__WEBPACK_IMPORTED_MODULE_0__[/* _allowStateChangesInsideComputed */ "g"])(function () {
          fn.apply(_this.storedValue);
        });
      } else {
        fn.apply(this.storedValue);
      }
    }
  };

  Object.defineProperty(ObjectNode.prototype, "snapshot", {
    // advantage of using computed for a snapshot is that nicely respects transactions etc.
    get: function () {
      return freeze(this.getSnapshot());
    },
    enumerable: true,
    configurable: true
  }); // NOTE: we use this method to get snapshot without creating @computed overhead

  ObjectNode.prototype.getSnapshot = function () {
    if (!this.isAlive) return this._snapshotUponDeath;
    return this._observableInstanceState === 2
    /* CREATED */
    ? this._getActualSnapshot() : this._getCachedInitialSnapshot();
  };

  ObjectNode.prototype._getActualSnapshot = function () {
    return this.type.getSnapshot(this);
  };

  ObjectNode.prototype._getCachedInitialSnapshot = function () {
    if (!this._cachedInitialSnapshotCreated) {
      var type = this.type;
      var childNodes = this._childNodes;
      var snapshot = this._initialSnapshot;
      this._cachedInitialSnapshot = type.processInitialSnapshot(childNodes, snapshot);
      this._cachedInitialSnapshotCreated = true;
    }

    return this._cachedInitialSnapshot;
  };

  ObjectNode.prototype.isRunningAction = function () {
    if (this._isRunningAction) return true;
    if (this.isRoot) return false;
    return this.parent.isRunningAction();
  };

  ObjectNode.prototype.assertAlive = function (context) {
    var livelinessChecking = getLivelinessChecking();

    if (!this.isAlive && livelinessChecking !== "ignore") {
      var error = this._getAssertAliveError(context);

      switch (livelinessChecking) {
        case "error":
          throw fail$1(error);

        case "warn":
          warnError(error);
      }
    }
  };

  ObjectNode.prototype._getAssertAliveError = function (context) {
    var escapedPath = this.getEscapedPath(false) || this.pathUponDeath || "";
    var subpath = context.subpath && escapeJsonPath(context.subpath) || "";
    var actionContext = context.actionContext || getCurrentActionContext(); // try to use a real action context if possible since it includes the action name

    if (actionContext && actionContext.type !== "action" && actionContext.parentActionEvent) {
      actionContext = actionContext.parentActionEvent;
    }

    var actionFullPath = "";

    if (actionContext && actionContext.name != null) {
      // try to use the context, and if it not available use the node one
      var actionPath = actionContext && actionContext.context && getPath(actionContext.context) || escapedPath;
      actionFullPath = actionPath + "." + actionContext.name + "()";
    }

    return "You are trying to read or write to an object that is no longer part of a state tree. (Object type: '" + this.type.name + "', Path upon death: '" + escapedPath + "', Subpath: '" + subpath + "', Action: '" + actionFullPath + "'). Either detach nodes first, or don't use objects after removing / replacing them in the tree.";
  };

  ObjectNode.prototype.getChildNode = function (subpath) {
    this.assertAlive({
      subpath: subpath
    });
    this._autoUnbox = false;

    try {
      return this._observableInstanceState === 2
      /* CREATED */
      ? this.type.getChildNode(this, subpath) : this._childNodes[subpath];
    } finally {
      this._autoUnbox = true;
    }
  };

  ObjectNode.prototype.getChildren = function () {
    this.assertAlive(EMPTY_OBJECT);
    this._autoUnbox = false;

    try {
      return this._observableInstanceState === 2
      /* CREATED */
      ? this.type.getChildren(this) : convertChildNodesToArray(this._childNodes);
    } finally {
      this._autoUnbox = true;
    }
  };

  ObjectNode.prototype.getChildType = function (propertyName) {
    return this.type.getChildType(propertyName);
  };

  Object.defineProperty(ObjectNode.prototype, "isProtected", {
    get: function () {
      return this.root.isProtectionEnabled;
    },
    enumerable: true,
    configurable: true
  });

  ObjectNode.prototype.assertWritable = function (context) {
    this.assertAlive(context);

    if (!this.isRunningAction() && this.isProtected) {
      throw fail$1("Cannot modify '" + this + "', the object is protected and can only be modified by using an action.");
    }
  };

  ObjectNode.prototype.removeChild = function (subpath) {
    this.type.removeChild(this, subpath);
  }; // bound on the constructor


  ObjectNode.prototype.unbox = function (childNode) {
    if (!childNode) return childNode;
    this.assertAlive({
      subpath: childNode.subpath || childNode.subpathUponDeath
    });
    return this._autoUnbox ? childNode.value : childNode;
  };

  ObjectNode.prototype.toString = function () {
    var path = (this.isAlive ? this.path : this.pathUponDeath) || "<root>";
    var identifier = this.identifier ? "(id: " + this.identifier + ")" : "";
    return this.type.name + "@" + path + identifier + (this.isAlive ? "" : " [dead]");
  };

  ObjectNode.prototype.finalizeCreation = function () {
    var _this = this;

    this.baseFinalizeCreation(function () {
      var e_2, _a;

      try {
        for (var _b = __values(_this.getChildren()), _c = _b.next(); !_c.done; _c = _b.next()) {
          var child = _c.value;
          child.finalizeCreation();
        }
      } catch (e_2_1) {
        e_2 = {
          error: e_2_1
        };
      } finally {
        try {
          if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
        } finally {
          if (e_2) throw e_2.error;
        }
      }

      _this.fireInternalHook(Hook.afterCreationFinalization);
    });
  };

  ObjectNode.prototype.detach = function () {
    if (!this.isAlive) throw fail$1("Error while detaching, node is not alive.");
    this.clearParent();
  };

  ObjectNode.prototype.preboot = function () {
    var self = this;
    this._applyPatches = createActionInvoker(this.storedValue, "@APPLY_PATCHES", function (patches) {
      patches.forEach(function (patch) {
        var parts = splitJsonPath(patch.path);
        var node = resolveNodeByPathParts(self, parts.slice(0, -1));
        node.applyPatchLocally(parts[parts.length - 1], patch);
      });
    });
    this._applySnapshot = createActionInvoker(this.storedValue, "@APPLY_SNAPSHOT", function (snapshot) {
      // if the snapshot is the same as the current one, avoid performing a reconcile
      if (snapshot === self.snapshot) return; // else, apply it by calling the type logic

      return self.type.applySnapshot(self, snapshot);
    });
    addHiddenFinalProp(this.storedValue, "$treenode", this);
    addHiddenFinalProp(this.storedValue, "toJSON", toJSON);
  };

  ObjectNode.prototype.die = function () {
    if (!this.isAlive || this.state === NodeLifeCycle.DETACHING) return;
    this.aboutToDie();
    this.finalizeDeath();
  };

  ObjectNode.prototype.aboutToDie = function () {
    if (this._observableInstanceState === 0
    /* UNINITIALIZED */
    ) {
      return;
    }

    this.getChildren().forEach(function (node) {
      node.aboutToDie();
    }); // beforeDestroy should run before the disposers since else we could end up in a situation where
    // a disposer added with addDisposer at this stage (beforeDestroy) is actually never released

    this.baseAboutToDie();

    this._internalEventsEmit("dispose"
    /* Dispose */
    );

    this._internalEventsClear("dispose"
    /* Dispose */
    );
  };

  ObjectNode.prototype.finalizeDeath = function () {
    // invariant: not called directly but from "die"
    this.getChildren().forEach(function (node) {
      node.finalizeDeath();
    });
    this.root.identifierCache.notifyDied(this); // "kill" the computed prop and just store the last snapshot

    var snapshot = this.snapshot;
    this._snapshotUponDeath = snapshot;

    this._internalEventsClearAll();

    this.baseFinalizeDeath();
  };

  ObjectNode.prototype.onSnapshot = function (onChange) {
    this._addSnapshotReaction();

    return this._internalEventsRegister("snapshot"
    /* Snapshot */
    , onChange);
  };

  ObjectNode.prototype.emitSnapshot = function (snapshot) {
    this._internalEventsEmit("snapshot"
    /* Snapshot */
    , snapshot);
  };

  ObjectNode.prototype.onPatch = function (handler) {
    return this._internalEventsRegister("patch"
    /* Patch */
    , handler);
  };

  ObjectNode.prototype.emitPatch = function (basePatch, source) {
    if (this._internalEventsHasSubscribers("patch"
    /* Patch */
    )) {
      var localizedPatch = extend({}, basePatch, {
        path: source.path.substr(this.path.length) + "/" + basePatch.path // calculate the relative path of the patch

      });

      var _a = __read(splitPatch(localizedPatch), 2),
          patch = _a[0],
          reversePatch = _a[1];

      this._internalEventsEmit("patch"
      /* Patch */
      , patch, reversePatch);
    }

    if (this.parent) this.parent.emitPatch(basePatch, source);
  };

  ObjectNode.prototype.hasDisposer = function (disposer) {
    return this._internalEventsHas("dispose"
    /* Dispose */
    , disposer);
  };

  ObjectNode.prototype.addDisposer = function (disposer) {
    if (!this.hasDisposer(disposer)) {
      this._internalEventsRegister("dispose"
      /* Dispose */
      , disposer, true);

      return;
    }

    throw fail$1("cannot add a disposer when it is already registered for execution");
  };

  ObjectNode.prototype.removeDisposer = function (disposer) {
    if (!this._internalEventsHas("dispose"
    /* Dispose */
    , disposer)) {
      throw fail$1("cannot remove a disposer which was never registered for execution");
    }

    this._internalEventsUnregister("dispose"
    /* Dispose */
    , disposer);
  };

  ObjectNode.prototype.removeMiddleware = function (middleware) {
    if (this.middlewares) {
      var index = this.middlewares.indexOf(middleware);

      if (index >= 0) {
        this.middlewares.splice(index, 1);
      }
    }
  };

  ObjectNode.prototype.addMiddleWare = function (handler, includeHooks) {
    var _this = this;

    if (includeHooks === void 0) {
      includeHooks = true;
    }

    var middleware = {
      handler: handler,
      includeHooks: includeHooks
    };
    if (!this.middlewares) this.middlewares = [middleware];else this.middlewares.push(middleware);
    return function () {
      _this.removeMiddleware(middleware);
    };
  };

  ObjectNode.prototype.applyPatchLocally = function (subpath, patch) {
    this.assertWritable({
      subpath: subpath
    });
    this.createObservableInstanceIfNeeded();
    this.type.applyPatchLocally(this, subpath, patch);
  };

  ObjectNode.prototype._addSnapshotReaction = function () {
    var _this = this;

    if (!this._hasSnapshotReaction) {
      var snapshotDisposer = Object(mobx__WEBPACK_IMPORTED_MODULE_0__[/* reaction */ "B"])(function () {
        return _this.snapshot;
      }, function (snapshot) {
        return _this.emitSnapshot(snapshot);
      }, snapshotReactionOptions);
      this.addDisposer(snapshotDisposer);
      this._hasSnapshotReaction = true;
    }
  }; // we proxy the methods to avoid creating an EventHandlers instance when it is not needed


  ObjectNode.prototype._internalEventsHasSubscribers = function (event) {
    return !!this._internalEvents && this._internalEvents.hasSubscribers(event);
  };

  ObjectNode.prototype._internalEventsRegister = function (event, eventHandler, atTheBeginning) {
    if (atTheBeginning === void 0) {
      atTheBeginning = false;
    }

    if (!this._internalEvents) {
      this._internalEvents = new EventHandlers();
    }

    return this._internalEvents.register(event, eventHandler, atTheBeginning);
  };

  ObjectNode.prototype._internalEventsHas = function (event, eventHandler) {
    return !!this._internalEvents && this._internalEvents.has(event, eventHandler);
  };

  ObjectNode.prototype._internalEventsUnregister = function (event, eventHandler) {
    if (this._internalEvents) {
      this._internalEvents.unregister(event, eventHandler);
    }
  };

  ObjectNode.prototype._internalEventsEmit = function (event) {
    var _a;

    var args = [];

    for (var _i = 1; _i < arguments.length; _i++) {
      args[_i - 1] = arguments[_i];
    }

    if (this._internalEvents) {
      (_a = this._internalEvents).emit.apply(_a, __spread([event], args));
    }
  };

  ObjectNode.prototype._internalEventsClear = function (event) {
    if (this._internalEvents) {
      this._internalEvents.clear(event);
    }
  };

  ObjectNode.prototype._internalEventsClearAll = function () {
    if (this._internalEvents) {
      this._internalEvents.clearAll();
    }
  };

  __decorate([mobx__WEBPACK_IMPORTED_MODULE_0__[/* action */ "j"]], ObjectNode.prototype, "createObservableInstanceIfNeeded", null);

  __decorate([mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"]], ObjectNode.prototype, "snapshot", null);

  __decorate([mobx__WEBPACK_IMPORTED_MODULE_0__[/* action */ "j"]], ObjectNode.prototype, "detach", null);

  __decorate([mobx__WEBPACK_IMPORTED_MODULE_0__[/* action */ "j"]], ObjectNode.prototype, "die", null);

  return ObjectNode;
}(BaseNode);
/**
 * @internal
 * @hidden
 */


var TypeFlags;

(function (TypeFlags) {
  TypeFlags[TypeFlags["String"] = 1] = "String";
  TypeFlags[TypeFlags["Number"] = 2] = "Number";
  TypeFlags[TypeFlags["Boolean"] = 4] = "Boolean";
  TypeFlags[TypeFlags["Date"] = 8] = "Date";
  TypeFlags[TypeFlags["Literal"] = 16] = "Literal";
  TypeFlags[TypeFlags["Array"] = 32] = "Array";
  TypeFlags[TypeFlags["Map"] = 64] = "Map";
  TypeFlags[TypeFlags["Object"] = 128] = "Object";
  TypeFlags[TypeFlags["Frozen"] = 256] = "Frozen";
  TypeFlags[TypeFlags["Optional"] = 512] = "Optional";
  TypeFlags[TypeFlags["Reference"] = 1024] = "Reference";
  TypeFlags[TypeFlags["Identifier"] = 2048] = "Identifier";
  TypeFlags[TypeFlags["Late"] = 4096] = "Late";
  TypeFlags[TypeFlags["Refinement"] = 8192] = "Refinement";
  TypeFlags[TypeFlags["Union"] = 16384] = "Union";
  TypeFlags[TypeFlags["Null"] = 32768] = "Null";
  TypeFlags[TypeFlags["Undefined"] = 65536] = "Undefined";
  TypeFlags[TypeFlags["Integer"] = 131072] = "Integer";
  TypeFlags[TypeFlags["Custom"] = 262144] = "Custom";
  TypeFlags[TypeFlags["SnapshotProcessor"] = 524288] = "SnapshotProcessor";
})(TypeFlags || (TypeFlags = {}));
/**
 * @internal
 * @hidden
 */


var cannotDetermineSubtype = "cannotDetermine";
/**
 * A base type produces a MST node (Node in the state tree)
 *
 * @internal
 * @hidden
 */

var BaseType =
/** @class */
function () {
  function BaseType(name) {
    this.isType = true;
    this.name = name;
  }

  BaseType.prototype.create = function (snapshot, environment) {
    typecheckInternal(this, snapshot);
    return this.instantiate(null, "", environment, snapshot).value;
  };

  BaseType.prototype.getSnapshot = function (node, applyPostProcess) {
    // istanbul ignore next
    throw fail$1("unimplemented method");
  };

  BaseType.prototype.isAssignableFrom = function (type) {
    return type === this;
  };

  BaseType.prototype.validate = function (value, context) {
    var node = getStateTreeNodeSafe(value);

    if (node) {
      var valueType = getType(value);
      return this.isAssignableFrom(valueType) ? typeCheckSuccess() : typeCheckFailure(context, value); // it is tempting to compare snapshots, but in that case we should always clone on assignments...
    }

    return this.isValidSnapshot(value, context);
  };

  BaseType.prototype.is = function (thing) {
    return this.validate(thing, [{
      path: "",
      type: this
    }]).length === 0;
  };

  Object.defineProperty(BaseType.prototype, "Type", {
    get: function () {
      // istanbul ignore next
      throw fail$1("Factory.Type should not be actually called. It is just a Type signature that can be used at compile time with Typescript, by using `typeof type.Type`");
    },
    enumerable: true,
    configurable: true
  });
  Object.defineProperty(BaseType.prototype, "TypeWithoutSTN", {
    get: function () {
      // istanbul ignore next
      throw fail$1("Factory.TypeWithoutSTN should not be actually called. It is just a Type signature that can be used at compile time with Typescript, by using `typeof type.TypeWithoutSTN`");
    },
    enumerable: true,
    configurable: true
  });
  Object.defineProperty(BaseType.prototype, "SnapshotType", {
    get: function () {
      // istanbul ignore next
      throw fail$1("Factory.SnapshotType should not be actually called. It is just a Type signature that can be used at compile time with Typescript, by using `typeof type.SnapshotType`");
    },
    enumerable: true,
    configurable: true
  });
  Object.defineProperty(BaseType.prototype, "CreationType", {
    get: function () {
      // istanbul ignore next
      throw fail$1("Factory.CreationType should not be actually called. It is just a Type signature that can be used at compile time with Typescript, by using `typeof type.CreationType`");
    },
    enumerable: true,
    configurable: true
  });

  __decorate([mobx__WEBPACK_IMPORTED_MODULE_0__[/* action */ "j"]], BaseType.prototype, "create", null);

  return BaseType;
}();
/**
 * A complex type produces a MST node (Node in the state tree)
 *
 * @internal
 * @hidden
 */


var ComplexType =
/** @class */
function (_super) {
  __extends(ComplexType, _super);

  function ComplexType(name) {
    return _super.call(this, name) || this;
  }

  ComplexType.prototype.create = function (snapshot, environment) {
    if (snapshot === void 0) {
      snapshot = this.getDefaultSnapshot();
    }

    return _super.prototype.create.call(this, snapshot, environment);
  };

  ComplexType.prototype.getValue = function (node) {
    node.createObservableInstanceIfNeeded();
    return node.storedValue;
  };

  ComplexType.prototype.tryToReconcileNode = function (current, newValue) {
    if (current.isDetaching) return false;

    if (current.snapshot === newValue) {
      // newValue is the current snapshot of the node, noop
      return true;
    }

    if (isStateTreeNode(newValue) && getStateTreeNode(newValue) === current) {
      // the current node is the same as the new one
      return true;
    }

    if (current.type === this && isMutable(newValue) && !isStateTreeNode(newValue) && (!current.identifierAttribute || current.identifier === normalizeIdentifier(newValue[current.identifierAttribute]))) {
      // the newValue has no node, so can be treated like a snapshot
      // we can reconcile
      current.applySnapshot(newValue);
      return true;
    }

    return false;
  };

  ComplexType.prototype.reconcile = function (current, newValue, parent, subpath) {
    var nodeReconciled = this.tryToReconcileNode(current, newValue);

    if (nodeReconciled) {
      current.setParent(parent, subpath);
      return current;
    } // current node cannot be recycled in any way


    current.die(); // noop if detaching
    // attempt to reuse the new one

    if (isStateTreeNode(newValue) && this.isAssignableFrom(getType(newValue))) {
      // newValue is a Node as well, move it here..
      var newNode = getStateTreeNode(newValue);
      newNode.setParent(parent, subpath);
      return newNode;
    } // nothing to do, we have to create a new node


    return this.instantiate(parent, subpath, undefined, newValue);
  };

  ComplexType.prototype.getSubTypes = function () {
    return null;
  };

  __decorate([mobx__WEBPACK_IMPORTED_MODULE_0__[/* action */ "j"]], ComplexType.prototype, "create", null);

  return ComplexType;
}(BaseType);
/**
 * @internal
 * @hidden
 */


var SimpleType =
/** @class */
function (_super) {
  __extends(SimpleType, _super);

  function SimpleType() {
    return _super !== null && _super.apply(this, arguments) || this;
  }

  SimpleType.prototype.createNewInstance = function (snapshot) {
    return snapshot;
  };

  SimpleType.prototype.getValue = function (node) {
    // if we ever find a case where scalar nodes can be accessed without iterating through its parent
    // uncomment this to make sure the parent chain is created when this is accessed
    // if (node.parent) {
    //     node.parent.createObservableInstanceIfNeeded()
    // }
    return node.storedValue;
  };

  SimpleType.prototype.getSnapshot = function (node) {
    return node.storedValue;
  };

  SimpleType.prototype.reconcile = function (current, newValue, parent, subpath) {
    // reconcile only if type and value are still the same, and only if the node is not detaching
    if (!current.isDetaching && current.type === this && current.storedValue === newValue) {
      return current;
    }

    var res = this.instantiate(parent, subpath, undefined, newValue);
    current.die(); // noop if detaching

    return res;
  };

  SimpleType.prototype.getSubTypes = function () {
    return null;
  };

  return SimpleType;
}(BaseType);
/**
 * Returns if a given value represents a type.
 *
 * @param value Value to check.
 * @returns `true` if the value is a type.
 */


function isType(value) {
  return typeof value === "object" && value && value.isType === true;
}
/**
 * @internal
 * @hidden
 */


function assertIsType(type, argNumber) {
  assertArg(type, isType, "mobx-state-tree type", argNumber);
}

var runningActions = new Map();
/**
 * Note: Consider migrating to `createActionTrackingMiddleware2`, it is easier to use.
 *
 * Convenience utility to create action based middleware that supports async processes more easily.
 * All hooks are called for both synchronous and asynchronous actions. Except that either `onSuccess` or `onFail` is called
 *
 * The create middleware tracks the process of an action (assuming it passes the `filter`).
 * `onResume` can return any value, which will be passed as second argument to any other hook. This makes it possible to keep state during a process.
 *
 * See the `atomic` middleware for an example
 *
 * @param hooks
 * @returns
 */

function createActionTrackingMiddleware(hooks) {
  return function actionTrackingMiddleware(call, next, abort) {
    switch (call.type) {
      case "action":
        {
          if (!hooks.filter || hooks.filter(call) === true) {
            var context = hooks.onStart(call);
            hooks.onResume(call, context);
            runningActions.set(call.id, {
              call: call,
              context: context,
              async: false
            });

            try {
              var res = next(call);
              hooks.onSuspend(call, context);

              if (runningActions.get(call.id).async === false) {
                runningActions.delete(call.id);
                hooks.onSuccess(call, context, res);
              }

              return res;
            } catch (e) {
              runningActions.delete(call.id);
              hooks.onFail(call, context, e);
              throw e;
            }
          } else {
            return next(call);
          }
        }

      case "flow_spawn":
        {
          var root = runningActions.get(call.rootId);
          root.async = true;
          return next(call);
        }

      case "flow_resume":
      case "flow_resume_error":
        {
          var root = runningActions.get(call.rootId);
          hooks.onResume(call, root.context);

          try {
            return next(call);
          } finally {
            hooks.onSuspend(call, root.context);
          }
        }

      case "flow_throw":
        {
          var root = runningActions.get(call.rootId);
          runningActions.delete(call.rootId);
          hooks.onFail(call, root.context, call.args[0]);
          return next(call);
        }

      case "flow_return":
        {
          var root = runningActions.get(call.rootId);
          runningActions.delete(call.rootId);
          hooks.onSuccess(call, root.context, call.args[0]);
          return next(call);
        }
    }
  };
}

var RunningAction =
/** @class */
function () {
  function RunningAction(hooks, call) {
    this.hooks = hooks;
    this.call = call;
    this.flowsPending = 0;
    this.running = true;

    if (hooks) {
      hooks.onStart(call);
    }
  }

  RunningAction.prototype.finish = function (error) {
    if (this.running) {
      this.running = false;

      if (this.hooks) {
        this.hooks.onFinish(this.call, error);
      }
    }
  };

  RunningAction.prototype.incFlowsPending = function () {
    this.flowsPending++;
  };

  RunningAction.prototype.decFlowsPending = function () {
    this.flowsPending--;
  };

  Object.defineProperty(RunningAction.prototype, "hasFlowsPending", {
    get: function () {
      return this.flowsPending > 0;
    },
    enumerable: true,
    configurable: true
  });
  return RunningAction;
}();
/**
 * Convenience utility to create action based middleware that supports async processes more easily.
 * The flow is like this:
 * - for each action: if filter passes -> `onStart` -> (inner actions recursively) -> `onFinish`
 *
 * Example: if we had an action `a` that called inside an action `b1`, then `b2` the flow would be:
 * - `filter(a)`
 * - `onStart(a)`
 *   - `filter(b1)`
 *   - `onStart(b1)`
 *   - `onFinish(b1)`
 *   - `filter(b2)`
 *   - `onStart(b2)`
 *   - `onFinish(b2)`
 * - `onFinish(a)`
 *
 * The flow is the same no matter if the actions are sync or async.
 *
 * See the `atomic` middleware for an example
 *
 * @param hooks
 * @returns
 */


function createActionTrackingMiddleware2(middlewareHooks) {
  var runningActions = new WeakMap();
  return function actionTrackingMiddleware(call, next) {
    // find parentRunningAction
    var parentRunningAction = call.parentActionEvent ? runningActions.get(call.parentActionEvent) : undefined;

    if (call.type === "action") {
      var newCall = __assign(__assign({}, call), {
        // make a shallow copy of the parent action env
        env: parentRunningAction && parentRunningAction.call.env,
        parentCall: parentRunningAction && parentRunningAction.call
      });

      var passesFilter = !middlewareHooks.filter || middlewareHooks.filter(newCall);
      var hooks = passesFilter ? middlewareHooks : undefined;
      var runningAction = new RunningAction(hooks, newCall);
      runningActions.set(call, runningAction);
      var res = void 0;

      try {
        res = next(call);
      } catch (e) {
        runningAction.finish(e);
        throw e;
      }

      if (!runningAction.hasFlowsPending) {
        // sync action finished
        runningAction.finish();
      }

      return res;
    } else {
      if (!parentRunningAction) {
        return next(call);
      }

      switch (call.type) {
        case "flow_spawn":
          {
            parentRunningAction.incFlowsPending();
            return next(call);
          }

        case "flow_resume":
        case "flow_resume_error":
          {
            return next(call);
          }

        case "flow_throw":
          {
            var error = call.args[0];

            try {
              return next(call);
            } finally {
              parentRunningAction.decFlowsPending();

              if (!parentRunningAction.hasFlowsPending) {
                parentRunningAction.finish(error);
              }
            }
          }

        case "flow_return":
          {
            try {
              return next(call);
            } finally {
              parentRunningAction.decFlowsPending();

              if (!parentRunningAction.hasFlowsPending) {
                parentRunningAction.finish();
              }
            }
          }
      }
    }
  };
}

function serializeArgument(node, actionName, index, arg) {
  if (arg instanceof Date) return {
    $MST_DATE: arg.getTime()
  };
  if (isPrimitive(arg)) return arg; // We should not serialize MST nodes, even if we can, because we don't know if the receiving party can handle a raw snapshot instead of an
  // MST type instance. So if one wants to serialize a MST node that was pass in, either explitly pass: 1: an id, 2: a (relative) path, 3: a snapshot

  if (isStateTreeNode(arg)) return serializeTheUnserializable("[MSTNode: " + getType(arg).name + "]");
  if (typeof arg === "function") return serializeTheUnserializable("[function]");
  if (typeof arg === "object" && !isPlainObject(arg) && !isArray(arg)) return serializeTheUnserializable("[object " + (arg && arg.constructor && arg.constructor.name || "Complex Object") + "]");

  try {
    // Check if serializable, cycle free etc...
    // MWE: there must be a better way....
    JSON.stringify(arg); // or throws

    return arg;
  } catch (e) {
    return serializeTheUnserializable("" + e);
  }
}

function deserializeArgument(adm, value) {
  if (value && typeof value === "object" && "$MST_DATE" in value) return new Date(value["$MST_DATE"]);
  return value;
}

function serializeTheUnserializable(baseType) {
  return {
    $MST_UNSERIALIZABLE: true,
    type: baseType
  };
}
/**
 * Applies an action or a series of actions in a single MobX transaction.
 * Does not return any value
 * Takes an action description as produced by the `onAction` middleware.
 *
 * @param target
 * @param actions
 */


function applyAction(target, actions) {
  // check all arguments
  assertIsStateTreeNode(target, 1);
  assertArg(actions, function (a) {
    return typeof a === "object";
  }, "object or array", 2);
  Object(mobx__WEBPACK_IMPORTED_MODULE_0__[/* runInAction */ "C"])(function () {
    asArray(actions).forEach(function (action) {
      return baseApplyAction(target, action);
    });
  });
}

function baseApplyAction(target, action) {
  var resolvedTarget = tryResolve(target, action.path || "");
  if (!resolvedTarget) throw fail$1("Invalid action path: " + (action.path || ""));
  var node = getStateTreeNode(resolvedTarget); // Reserved functions

  if (action.name === "@APPLY_PATCHES") {
    return applyPatch.call(null, resolvedTarget, action.args[0]);
  }

  if (action.name === "@APPLY_SNAPSHOT") {
    return applySnapshot.call(null, resolvedTarget, action.args[0]);
  }

  if (!(typeof resolvedTarget[action.name] === "function")) throw fail$1("Action '" + action.name + "' does not exist in '" + node.path + "'");
  return resolvedTarget[action.name].apply(resolvedTarget, action.args ? action.args.map(function (v) {
    return deserializeArgument(node, v);
  }) : []);
}
/**
 * Small abstraction around `onAction` and `applyAction`, attaches an action listener to a tree and records all the actions emitted.
 * Returns an recorder object with the following signature:
 *
 * Example:
 * ```ts
 * export interface IActionRecorder {
 *      // the recorded actions
 *      actions: ISerializedActionCall[]
 *      // true if currently recording
 *      recording: boolean
 *      // stop recording actions
 *      stop(): void
 *      // resume recording actions
 *      resume(): void
 *      // apply all the recorded actions on the given object
 *      replay(target: IAnyStateTreeNode): void
 * }
 * ```
 *
 * The optional filter function allows to skip recording certain actions.
 *
 * @param subject
 * @returns
 */


function recordActions(subject, filter) {
  // check all arguments
  assertIsStateTreeNode(subject, 1);
  var actions = [];

  var listener = function (call) {
    var recordThis = filter ? filter(call, getRunningActionContext()) : true;

    if (recordThis) {
      actions.push(call);
    }
  };

  var disposer;
  var recorder = {
    actions: actions,

    get recording() {
      return !!disposer;
    },

    stop: function () {
      if (disposer) {
        disposer();
        disposer = undefined;
      }
    },
    resume: function () {
      if (disposer) return;
      disposer = onAction(subject, listener);
    },
    replay: function (target) {
      applyAction(target, actions);
    }
  };
  recorder.resume();
  return recorder;
}
/**
 * Registers a function that will be invoked for each action that is called on the provided model instance, or to any of its children.
 * See [actions](https://github.com/mobxjs/mobx-state-tree#actions) for more details. onAction events are emitted only for the outermost called action in the stack.
 * Action can also be intercepted by middleware using addMiddleware to change the function call before it will be run.
 *
 * Not all action arguments might be serializable. For unserializable arguments, a struct like `{ $MST_UNSERIALIZABLE: true, type: "someType" }` will be generated.
 * MST Nodes are considered non-serializable as well (they could be serialized as there snapshot, but it is uncertain whether an replaying party will be able to handle such a non-instantiated snapshot).
 * Rather, when using `onAction` middleware, one should consider in passing arguments which are 1: an id, 2: a (relative) path, or 3: a snapshot. Instead of a real MST node.
 *
 * Example:
 * ```ts
 * const Todo = types.model({
 *   task: types.string
 * })
 *
 * const TodoStore = types.model({
 *   todos: types.array(Todo)
 * }).actions(self => ({
 *   add(todo) {
 *     self.todos.push(todo);
 *   }
 * }))
 *
 * const s = TodoStore.create({ todos: [] })
 *
 * let disposer = onAction(s, (call) => {
 *   console.log(call);
 * })
 *
 * s.add({ task: "Grab a coffee" })
 * // Logs: { name: "add", path: "", args: [{ task: "Grab a coffee" }] }
 * ```
 *
 * @param target
 * @param listener
 * @param attachAfter (default false) fires the listener *after* the action has executed instead of before.
 * @returns
 */


function onAction(target, listener, attachAfter) {
  if (attachAfter === void 0) {
    attachAfter = false;
  } // check all arguments


  assertIsStateTreeNode(target, 1);

  if (devMode()) {
    if (!isRoot(target)) warnError("Warning: Attaching onAction listeners to non root nodes is dangerous: No events will be emitted for actions initiated higher up in the tree.");
    if (!isProtected(target)) warnError("Warning: Attaching onAction listeners to non protected nodes is dangerous: No events will be emitted for direct modifications without action.");
  }

  return addMiddleware(target, function handler(rawCall, next) {
    if (rawCall.type === "action" && rawCall.id === rawCall.rootId) {
      var sourceNode_1 = getStateTreeNode(rawCall.context);
      var info = {
        name: rawCall.name,
        path: getRelativePathBetweenNodes(getStateTreeNode(target), sourceNode_1),
        args: rawCall.args.map(function (arg, index) {
          return serializeArgument(sourceNode_1, rawCall.name, index, arg);
        })
      };

      if (attachAfter) {
        var res = next(rawCall);
        listener(info);
        return res;
      } else {
        listener(info);
        return next(rawCall);
      }
    } else {
      return next(rawCall);
    }
  });
}

var nextActionId = 1;
var currentActionContext;
/**
 * @internal
 * @hidden
 */

function getCurrentActionContext() {
  return currentActionContext;
}
/**
 * @internal
 * @hidden
 */


function getNextActionId() {
  return nextActionId++;
} // TODO: optimize away entire action context if there is no middleware in tree?

/**
 * @internal
 * @hidden
 */


function runWithActionContext(context, fn) {
  var node = getStateTreeNode(context.context);

  if (context.type === "action") {
    node.assertAlive({
      actionContext: context
    });
  }

  var baseIsRunningAction = node._isRunningAction;
  node._isRunningAction = true;
  var previousContext = currentActionContext;
  currentActionContext = context;

  try {
    return runMiddleWares(node, context, fn);
  } finally {
    currentActionContext = previousContext;
    node._isRunningAction = baseIsRunningAction;
  }
}
/**
 * @internal
 * @hidden
 */


function getParentActionContext(parentContext) {
  if (!parentContext) return undefined;
  if (parentContext.type === "action") return parentContext;
  return parentContext.parentActionEvent;
}
/**
 * @internal
 * @hidden
 */


function createActionInvoker(target, name, fn) {
  var res = function () {
    var id = getNextActionId();
    var parentContext = currentActionContext;
    var parentActionContext = getParentActionContext(parentContext);
    return runWithActionContext({
      type: "action",
      name: name,
      id: id,
      args: argsToArray(arguments),
      context: target,
      tree: getRoot(target),
      rootId: parentContext ? parentContext.rootId : id,
      parentId: parentContext ? parentContext.id : 0,
      allParentIds: parentContext ? __spread(parentContext.allParentIds, [parentContext.id]) : [],
      parentEvent: parentContext,
      parentActionEvent: parentActionContext
    }, fn);
  };

  res._isMSTAction = true;
  return res;
}
/**
 * Middleware can be used to intercept any action is invoked on the subtree where it is attached.
 * If a tree is protected (by default), this means that any mutation of the tree will pass through your middleware.
 *
 * For more details, see the [middleware docs](../middleware.md)
 *
 * @param target Node to apply the middleware to.
 * @param middleware Middleware to apply.
 * @returns A callable function to dispose the middleware.
 */


function addMiddleware(target, handler, includeHooks) {
  if (includeHooks === void 0) {
    includeHooks = true;
  }

  var node = getStateTreeNode(target);

  if (devMode()) {
    if (!node.isProtectionEnabled) {
      warnError("It is recommended to protect the state tree before attaching action middleware, as otherwise it cannot be guaranteed that all changes are passed through middleware. See `protect`");
    }
  }

  return node.addMiddleWare(handler, includeHooks);
}
/**
 * Binds middleware to a specific action.
 *
 * Example:
 * ```ts
 * type.actions(self => {
 *   function takeA____() {
 *       self.toilet.donate()
 *       self.wipe()
 *       self.wipe()
 *       self.toilet.flush()
 *   }
 *   return {
 *     takeA____: decorate(atomic, takeA____)
 *   }
 * })
 * ```
 *
 * @param handler
 * @param fn
 * @param includeHooks
 * @returns The original function
 */


function decorate(handler, fn, includeHooks) {
  if (includeHooks === void 0) {
    includeHooks = true;
  }

  var middleware = {
    handler: handler,
    includeHooks: includeHooks
  };
  fn.$mst_middleware = fn.$mst_middleware || [];
  fn.$mst_middleware.push(middleware);
  return fn;
}

var CollectedMiddlewares =
/** @class */
function () {
  function CollectedMiddlewares(node, fn) {
    this.arrayIndex = 0;
    this.inArrayIndex = 0;
    this.middlewares = []; // we just push middleware arrays into an array of arrays to avoid making copies

    if (fn.$mst_middleware) {
      this.middlewares.push(fn.$mst_middleware);
    }

    var n = node; // Find all middlewares. Optimization: cache this?

    while (n) {
      if (n.middlewares) this.middlewares.push(n.middlewares);
      n = n.parent;
    }
  }

  Object.defineProperty(CollectedMiddlewares.prototype, "isEmpty", {
    get: function () {
      return this.middlewares.length <= 0;
    },
    enumerable: true,
    configurable: true
  });

  CollectedMiddlewares.prototype.getNextMiddleware = function () {
    var array = this.middlewares[this.arrayIndex];
    if (!array) return undefined;
    var item = array[this.inArrayIndex++];

    if (!item) {
      this.arrayIndex++;
      this.inArrayIndex = 0;
      return this.getNextMiddleware();
    }

    return item;
  };

  return CollectedMiddlewares;
}();

function runMiddleWares(node, baseCall, originalFn) {
  var middlewares = new CollectedMiddlewares(node, originalFn); // Short circuit

  if (middlewares.isEmpty) return Object(mobx__WEBPACK_IMPORTED_MODULE_0__[/* action */ "j"])(originalFn).apply(null, baseCall.args);
  var result = null;

  function runNextMiddleware(call) {
    var middleware = middlewares.getNextMiddleware();
    var handler = middleware && middleware.handler;

    if (!handler) {
      return Object(mobx__WEBPACK_IMPORTED_MODULE_0__[/* action */ "j"])(originalFn).apply(null, call.args);
    } // skip hooks if asked to


    if (!middleware.includeHooks && Hook[call.name]) {
      return runNextMiddleware(call);
    }

    var nextInvoked = false;

    function next(call2, callback) {
      nextInvoked = true; // the result can contain
      // - the non manipulated return value from an action
      // - the non manipulated abort value
      // - one of the above but manipulated through the callback function

      result = runNextMiddleware(call2);

      if (callback) {
        result = callback(result);
      }
    }

    var abortInvoked = false;

    function abort(value) {
      abortInvoked = true; // overwrite the result
      // can be manipulated through middlewares earlier in the queue using the callback fn

      result = value;
    }

    handler(call, next, abort);

    if (devMode()) {
      if (!nextInvoked && !abortInvoked) {
        var node2 = getStateTreeNode(call.tree);
        throw fail$1("Neither the next() nor the abort() callback within the middleware " + handler.name + " for the action: \"" + call.name + "\" on the node: " + node2.type.name + " was invoked.");
      } else if (nextInvoked && abortInvoked) {
        var node2 = getStateTreeNode(call.tree);
        throw fail$1("The next() and abort() callback within the middleware " + handler.name + " for the action: \"" + call.name + "\" on the node: " + node2.type.name + " were invoked.");
      }
    }

    return result;
  }

  return runNextMiddleware(baseCall);
}
/**
 * Returns the currently executing MST action context, or undefined if none.
 */


function getRunningActionContext() {
  var current = getCurrentActionContext();

  while (current && current.type !== "action") {
    current = current.parentActionEvent;
  }

  return current;
}

function _isActionContextThisOrChildOf(actionContext, sameOrParent, includeSame) {
  var parentId = typeof sameOrParent === "number" ? sameOrParent : sameOrParent.id;
  var current = includeSame ? actionContext : actionContext.parentActionEvent;

  while (current) {
    if (current.id === parentId) {
      return true;
    }

    current = current.parentActionEvent;
  }

  return false;
}
/**
 * Returns if the given action context is a parent of this action context.
 */


function isActionContextChildOf(actionContext, parent) {
  return _isActionContextThisOrChildOf(actionContext, parent, false);
}
/**
 * Returns if the given action context is this or a parent of this action context.
 */


function isActionContextThisOrChildOf(actionContext, parentOrThis) {
  return _isActionContextThisOrChildOf(actionContext, parentOrThis, true);
}

function safeStringify(value) {
  try {
    return JSON.stringify(value);
  } catch (e) {
    // istanbul ignore next
    return "<Unserializable: " + e + ">";
  }
}
/**
 * @internal
 * @hidden
 */


function prettyPrintValue(value) {
  return typeof value === "function" ? "<function" + (value.name ? " " + value.name : "") + ">" : isStateTreeNode(value) ? "<" + value + ">" : "`" + safeStringify(value) + "`";
}

function shortenPrintValue(valueInString) {
  return valueInString.length < 280 ? valueInString : valueInString.substring(0, 272) + "......" + valueInString.substring(valueInString.length - 8);
}

function toErrorString(error) {
  var value = error.value;
  var type = error.context[error.context.length - 1].type;
  var fullPath = error.context.map(function (_a) {
    var path = _a.path;
    return path;
  }).filter(function (path) {
    return path.length > 0;
  }).join("/");
  var pathPrefix = fullPath.length > 0 ? "at path \"/" + fullPath + "\" " : "";
  var currentTypename = isStateTreeNode(value) ? "value of type " + getStateTreeNode(value).type.name + ":" : isPrimitive(value) ? "value" : "snapshot";
  var isSnapshotCompatible = type && isStateTreeNode(value) && type.is(getStateTreeNode(value).snapshot);
  return "" + pathPrefix + currentTypename + " " + prettyPrintValue(value) + " is not assignable " + (type ? "to type: `" + type.name + "`" : "") + (error.message ? " (" + error.message + ")" : "") + (type ? isPrimitiveType(type) || isPrimitive(value) ? "." : ", expected an instance of `" + type.name + "` or a snapshot like `" + type.describe() + "` instead." + (isSnapshotCompatible ? " (Note that a snapshot of the provided value is compatible with the targeted type)" : "") : ".");
}
/**
 * @internal
 * @hidden
 */


function getContextForPath(context, path, type) {
  return context.concat([{
    path: path,
    type: type
  }]);
}
/**
 * @internal
 * @hidden
 */


function typeCheckSuccess() {
  return EMPTY_ARRAY;
}
/**
 * @internal
 * @hidden
 */


function typeCheckFailure(context, value, message) {
  return [{
    context: context,
    value: value,
    message: message
  }];
}
/**
 * @internal
 * @hidden
 */


function flattenTypeErrors(errors) {
  return errors.reduce(function (a, i) {
    return a.concat(i);
  }, []);
} // TODO; doublecheck: typecheck should only needed to be invoked from: type.create and array / map / value.property will change

/**
 * @internal
 * @hidden
 */


function typecheckInternal(type, value) {
  // runs typeChecking if it is in dev-mode or through a process.env.ENABLE_TYPE_CHECK flag
  if (isTypeCheckingEnabled()) {
    typecheck(type, value);
  }
}
/**
 * Run's the typechecker for the given type on the given value, which can be a snapshot or an instance.
 * Throws if the given value is not according the provided type specification.
 * Use this if you need typechecks even in a production build (by default all automatic runtime type checks will be skipped in production builds)
 *
 * @param type Type to check against.
 * @param value Value to be checked, either a snapshot or an instance.
 */


function typecheck(type, value) {
  var errors = type.validate(value, [{
    path: "",
    type: type
  }]);

  if (errors.length > 0) {
    throw fail$1(validationErrorsToString(type, value, errors));
  }
}

function validationErrorsToString(type, value, errors) {
  if (errors.length === 0) {
    return undefined;
  }

  return "Error while converting " + shortenPrintValue(prettyPrintValue(value)) + " to `" + type.name + "`:\n\n    " + errors.map(toErrorString).join("\n    ");
}

var identifierCacheId = 0;
/**
 * @internal
 * @hidden
 */

var IdentifierCache =
/** @class */
function () {
  function IdentifierCache() {
    this.cacheId = identifierCacheId++; // n.b. in cache all identifiers are normalized to strings

    this.cache = mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"].map(); // last time the cache (array) for a given time changed
    // n.b. it is not really the time, but just an integer that gets increased after each modification to the array

    this.lastCacheModificationPerId = mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"].map();
  }

  IdentifierCache.prototype.updateLastCacheModificationPerId = function (identifier) {
    var lcm = this.lastCacheModificationPerId.get(identifier); // we start at 1 since 0 means no update since cache creation

    this.lastCacheModificationPerId.set(identifier, lcm === undefined ? 1 : lcm + 1);
  };

  IdentifierCache.prototype.getLastCacheModificationPerId = function (identifier) {
    var modificationId = this.lastCacheModificationPerId.get(identifier) || 0;
    return this.cacheId + "-" + modificationId;
  };

  IdentifierCache.prototype.addNodeToCache = function (node, lastCacheUpdate) {
    if (lastCacheUpdate === void 0) {
      lastCacheUpdate = true;
    }

    if (node.identifierAttribute) {
      var identifier = node.identifier;

      if (!this.cache.has(identifier)) {
        this.cache.set(identifier, mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"].array([], mobxShallow));
      }

      var set = this.cache.get(identifier);
      if (set.indexOf(node) !== -1) throw fail$1("Already registered");
      set.push(node);

      if (lastCacheUpdate) {
        this.updateLastCacheModificationPerId(identifier);
      }
    }
  };

  IdentifierCache.prototype.mergeCache = function (node) {
    var _this = this;

    Object(mobx__WEBPACK_IMPORTED_MODULE_0__[/* values */ "H"])(node.identifierCache.cache).forEach(function (nodes) {
      return nodes.forEach(function (child) {
        _this.addNodeToCache(child);
      });
    });
  };

  IdentifierCache.prototype.notifyDied = function (node) {
    if (node.identifierAttribute) {
      var id = node.identifier;
      var set = this.cache.get(id);

      if (set) {
        set.remove(node); // remove empty sets from cache

        if (!set.length) {
          this.cache.delete(id);
        }

        this.updateLastCacheModificationPerId(node.identifier);
      }
    }
  };

  IdentifierCache.prototype.splitCache = function (node) {
    var _this = this;

    var res = new IdentifierCache();
    var basePath = node.path;
    Object(mobx__WEBPACK_IMPORTED_MODULE_0__[/* entries */ "p"])(this.cache).forEach(function (_a) {
      var _b = __read(_a, 2),
          id = _b[0],
          nodes = _b[1];

      var modified = false;

      for (var i = nodes.length - 1; i >= 0; i--) {
        if (nodes[i].path.indexOf(basePath) === 0) {
          res.addNodeToCache(nodes[i], false); // no need to update lastUpdated since it is a whole new cache

          nodes.splice(i, 1);
          modified = true;
        }
      }

      if (modified) {
        _this.updateLastCacheModificationPerId(id);
      }
    });
    return res;
  };

  IdentifierCache.prototype.has = function (type, identifier) {
    var set = this.cache.get(identifier);
    if (!set) return false;
    return set.some(function (candidate) {
      return type.isAssignableFrom(candidate.type);
    });
  };

  IdentifierCache.prototype.resolve = function (type, identifier) {
    var set = this.cache.get(identifier);
    if (!set) return null;
    var matches = set.filter(function (candidate) {
      return type.isAssignableFrom(candidate.type);
    });

    switch (matches.length) {
      case 0:
        return null;

      case 1:
        return matches[0];

      default:
        throw fail$1("Cannot resolve a reference to type '" + type.name + "' with id: '" + identifier + "' unambigously, there are multiple candidates: " + matches.map(function (n) {
          return n.path;
        }).join(", "));
    }
  };

  return IdentifierCache;
}();
/**
 * @internal
 * @hidden
 */


function createObjectNode(type, parent, subpath, environment, initialValue) {
  var existingNode = getStateTreeNodeSafe(initialValue);

  if (existingNode) {
    if (existingNode.parent) {
      // istanbul ignore next
      throw fail$1("Cannot add an object to a state tree if it is already part of the same or another state tree. Tried to assign an object to '" + (parent ? parent.path : "") + "/" + subpath + "', but it lives already at '" + existingNode.path + "'");
    }

    if (parent) {
      existingNode.setParent(parent, subpath);
    } // else it already has no parent since it is a pre-requisite


    return existingNode;
  } // not a node, a snapshot


  return new ObjectNode(type, parent, subpath, environment, initialValue);
}
/**
 * @internal
 * @hidden
 */


function createScalarNode(type, parent, subpath, environment, initialValue) {
  return new ScalarNode(type, parent, subpath, environment, initialValue);
}
/**
 * @internal
 * @hidden
 */


function isNode(value) {
  return value instanceof ScalarNode || value instanceof ObjectNode;
}
/**
 * @internal
 * @hidden
 */


var NodeLifeCycle;

(function (NodeLifeCycle) {
  NodeLifeCycle[NodeLifeCycle["INITIALIZING"] = 0] = "INITIALIZING";
  NodeLifeCycle[NodeLifeCycle["CREATED"] = 1] = "CREATED";
  NodeLifeCycle[NodeLifeCycle["FINALIZED"] = 2] = "FINALIZED";
  NodeLifeCycle[NodeLifeCycle["DETACHING"] = 3] = "DETACHING";
  NodeLifeCycle[NodeLifeCycle["DEAD"] = 4] = "DEAD"; // no coming back from this one
})(NodeLifeCycle || (NodeLifeCycle = {}));
/**
 * Returns true if the given value is a node in a state tree.
 * More precisely, that is, if the value is an instance of a
 * `types.model`, `types.array` or `types.map`.
 *
 * @param value
 * @returns true if the value is a state tree node.
 */


function isStateTreeNode(value) {
  return !!(value && value.$treenode);
}
/**
 * @internal
 * @hidden
 */


function assertIsStateTreeNode(value, argNumber) {
  assertArg(value, isStateTreeNode, "mobx-state-tree node", argNumber);
}
/**
 * @internal
 * @hidden
 */


function getStateTreeNode(value) {
  if (!isStateTreeNode(value)) {
    // istanbul ignore next
    throw fail$1("Value " + value + " is no MST Node");
  }

  return value.$treenode;
}
/**
 * @internal
 * @hidden
 */


function getStateTreeNodeSafe(value) {
  return value && value.$treenode || null;
}
/**
 * @internal
 * @hidden
 */


function toJSON() {
  return getStateTreeNode(this).snapshot;
}

var doubleDot = function (_) {
  return "..";
};
/**
 * @internal
 * @hidden
 */


function getRelativePathBetweenNodes(base, target) {
  // PRE condition target is (a child of) base!
  if (base.root !== target.root) {
    throw fail$1("Cannot calculate relative path: objects '" + base + "' and '" + target + "' are not part of the same object tree");
  }

  var baseParts = splitJsonPath(base.path);
  var targetParts = splitJsonPath(target.path);
  var common = 0;

  for (; common < baseParts.length; common++) {
    if (baseParts[common] !== targetParts[common]) break;
  } // TODO: assert that no targetParts paths are "..", "." or ""!


  return baseParts.slice(common).map(doubleDot).join("/") + joinJsonPath(targetParts.slice(common));
}
/**
 * @internal
 * @hidden
 */


function resolveNodeByPath(base, path, failIfResolveFails) {
  if (failIfResolveFails === void 0) {
    failIfResolveFails = true;
  }

  return resolveNodeByPathParts(base, splitJsonPath(path), failIfResolveFails);
}
/**
 * @internal
 * @hidden
 */


function resolveNodeByPathParts(base, pathParts, failIfResolveFails) {
  if (failIfResolveFails === void 0) {
    failIfResolveFails = true;
  }

  var current = base;

  for (var i = 0; i < pathParts.length; i++) {
    var part = pathParts[i];

    if (part === "..") {
      current = current.parent;
      if (current) continue; // not everything has a parent
    } else if (part === ".") {
      continue;
    } else if (current) {
      if (current instanceof ScalarNode) {
        // check if the value of a scalar resolves to a state tree node (e.g. references)
        // then we can continue resolving...
        try {
          var value = current.value;

          if (isStateTreeNode(value)) {
            current = getStateTreeNode(value); // fall through
          }
        } catch (e) {
          if (!failIfResolveFails) {
            return undefined;
          }

          throw e;
        }
      }

      if (current instanceof ObjectNode) {
        var subType = current.getChildType(part);

        if (subType) {
          current = current.getChildNode(part);
          if (current) continue;
        }
      }
    }

    if (failIfResolveFails) throw fail$1("Could not resolve '" + part + "' in path '" + (joinJsonPath(pathParts.slice(0, i)) || "/") + "' while resolving '" + joinJsonPath(pathParts) + "'");else return undefined;
  }

  return current;
}
/**
 * @internal
 * @hidden
 */


function convertChildNodesToArray(childNodes) {
  if (!childNodes) return EMPTY_ARRAY;
  var keys = Object.keys(childNodes);
  if (!keys.length) return EMPTY_ARRAY;
  var result = new Array(keys.length);
  keys.forEach(function (key, index) {
    result[index] = childNodes[key];
  });
  return result;
} // based on: https://github.com/mobxjs/mobx-utils/blob/master/src/async-action.ts

/*
    All contents of this file are deprecated.

    The term `process` has been replaced with `flow` to avoid conflicts with the
    global `process` object.

    Refer to `flow.ts` for any further changes to this implementation.
*/


var DEPRECATION_MESSAGE = "See https://github.com/mobxjs/mobx-state-tree/issues/399 for more information. " + "Note that the middleware event types starting with `process` now start with `flow`.";
/**
 * @hidden
 *
 * @deprecated has been renamed to `flow()`.
 * See https://github.com/mobxjs/mobx-state-tree/issues/399 for more information.
 * Note that the middleware event types starting with `process` now start with `flow`.
 *
 * @returns {Promise}
 */

function process$1(asyncAction) {
  deprecated("process", "`process()` has been renamed to `flow()`. " + DEPRECATION_MESSAGE);
  return flow(asyncAction);
}
/**
 * @internal
 * @hidden
 */


var EMPTY_ARRAY = Object.freeze([]);
/**
 * @internal
 * @hidden
 */

var EMPTY_OBJECT = Object.freeze({});
/**
 * @internal
 * @hidden
 */

var mobxShallow = typeof mobx__WEBPACK_IMPORTED_MODULE_0__[/* $mobx */ "a"] === "string" ? {
  deep: false
} : {
  deep: false,
  proxy: false
};
Object.freeze(mobxShallow);
/**
 * @internal
 * @hidden
 */

function fail$1(message) {
  if (message === void 0) {
    message = "Illegal state";
  }

  return new Error("[mobx-state-tree] " + message);
}
/**
 * @internal
 * @hidden
 */


function identity(_) {
  return _;
}
/**
 * pollyfill (for IE) suggested in MDN:
 * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isInteger
 * @internal
 * @hidden
 */


var isInteger = Number.isInteger || function (value) {
  return typeof value === "number" && isFinite(value) && Math.floor(value) === value;
};
/**
 * @internal
 * @hidden
 */


function isArray(val) {
  return Array.isArray(val) || Object(mobx__WEBPACK_IMPORTED_MODULE_0__[/* isObservableArray */ "v"])(val);
}
/**
 * @internal
 * @hidden
 */


function asArray(val) {
  if (!val) return EMPTY_ARRAY;
  if (isArray(val)) return val;
  return [val];
}
/**
 * @internal
 * @hidden
 */


function extend(a) {
  var b = [];

  for (var _i = 1; _i < arguments.length; _i++) {
    b[_i - 1] = arguments[_i];
  }

  for (var i = 0; i < b.length; i++) {
    var current = b[i];

    for (var key in current) a[key] = current[key];
  }

  return a;
}
/**
 * @internal
 * @hidden
 */


function isPlainObject(value) {
  if (value === null || typeof value !== "object") return false;
  var proto = Object.getPrototypeOf(value);
  return proto === Object.prototype || proto === null;
}
/**
 * @internal
 * @hidden
 */


function isMutable(value) {
  return value !== null && typeof value === "object" && !(value instanceof Date) && !(value instanceof RegExp);
}
/**
 * @internal
 * @hidden
 */


function isPrimitive(value, includeDate) {
  if (includeDate === void 0) {
    includeDate = true;
  }

  if (value === null || value === undefined) return true;
  if (typeof value === "string" || typeof value === "number" || typeof value === "boolean" || includeDate && value instanceof Date) return true;
  return false;
}
/**
 * @internal
 * @hidden
 * Freeze a value and return it (if not in production)
 */


function freeze(value) {
  if (!devMode()) return value;
  return isPrimitive(value) || Object(mobx__WEBPACK_IMPORTED_MODULE_0__[/* isObservableArray */ "v"])(value) ? value : Object.freeze(value);
}
/**
 * @internal
 * @hidden
 * Recursively freeze a value (if not in production)
 */


function deepFreeze(value) {
  if (!devMode()) return value;
  freeze(value);

  if (isPlainObject(value)) {
    Object.keys(value).forEach(function (propKey) {
      if (!isPrimitive(value[propKey]) && !Object.isFrozen(value[propKey])) {
        deepFreeze(value[propKey]);
      }
    });
  }

  return value;
}
/**
 * @internal
 * @hidden
 */


function isSerializable(value) {
  return typeof value !== "function";
}
/**
 * @internal
 * @hidden
 */


function addHiddenFinalProp(object, propName, value) {
  Object.defineProperty(object, propName, {
    enumerable: false,
    writable: false,
    configurable: true,
    value: value
  });
}
/**
 * @internal
 * @hidden
 */


function addHiddenWritableProp(object, propName, value) {
  Object.defineProperty(object, propName, {
    enumerable: false,
    writable: true,
    configurable: true,
    value: value
  });
}
/**
 * @internal
 * @hidden
 */


var EventHandler =
/** @class */
function () {
  function EventHandler() {
    this.handlers = [];
  }

  Object.defineProperty(EventHandler.prototype, "hasSubscribers", {
    get: function () {
      return this.handlers.length > 0;
    },
    enumerable: true,
    configurable: true
  });

  EventHandler.prototype.register = function (fn, atTheBeginning) {
    var _this = this;

    if (atTheBeginning === void 0) {
      atTheBeginning = false;
    }

    if (atTheBeginning) {
      this.handlers.unshift(fn);
    } else {
      this.handlers.push(fn);
    }

    return function () {
      _this.unregister(fn);
    };
  };

  EventHandler.prototype.has = function (fn) {
    return this.handlers.indexOf(fn) >= 0;
  };

  EventHandler.prototype.unregister = function (fn) {
    var index = this.handlers.indexOf(fn);

    if (index >= 0) {
      this.handlers.splice(index, 1);
    }
  };

  EventHandler.prototype.clear = function () {
    this.handlers.length = 0;
  };

  EventHandler.prototype.emit = function () {
    var args = [];

    for (var _i = 0; _i < arguments.length; _i++) {
      args[_i] = arguments[_i];
    } // make a copy just in case it changes


    var handlers = this.handlers.slice();
    handlers.forEach(function (f) {
      return f.apply(void 0, __spread(args));
    });
  };

  return EventHandler;
}();
/**
 * @internal
 * @hidden
 */


var EventHandlers =
/** @class */
function () {
  function EventHandlers() {}

  EventHandlers.prototype.hasSubscribers = function (event) {
    var handler = this.eventHandlers && this.eventHandlers[event];
    return !!handler && handler.hasSubscribers;
  };

  EventHandlers.prototype.register = function (event, fn, atTheBeginning) {
    if (atTheBeginning === void 0) {
      atTheBeginning = false;
    }

    if (!this.eventHandlers) {
      this.eventHandlers = {};
    }

    var handler = this.eventHandlers[event];

    if (!handler) {
      handler = this.eventHandlers[event] = new EventHandler();
    }

    return handler.register(fn, atTheBeginning);
  };

  EventHandlers.prototype.has = function (event, fn) {
    var handler = this.eventHandlers && this.eventHandlers[event];
    return !!handler && handler.has(fn);
  };

  EventHandlers.prototype.unregister = function (event, fn) {
    var handler = this.eventHandlers && this.eventHandlers[event];

    if (handler) {
      handler.unregister(fn);
    }
  };

  EventHandlers.prototype.clear = function (event) {
    if (this.eventHandlers) {
      delete this.eventHandlers[event];
    }
  };

  EventHandlers.prototype.clearAll = function () {
    this.eventHandlers = undefined;
  };

  EventHandlers.prototype.emit = function (event) {
    var _a;

    var args = [];

    for (var _i = 1; _i < arguments.length; _i++) {
      args[_i - 1] = arguments[_i];
    }

    var handler = this.eventHandlers && this.eventHandlers[event];

    if (handler) {
      (_a = handler).emit.apply(_a, __spread(args));
    }
  };

  return EventHandlers;
}();
/**
 * @internal
 * @hidden
 */


function argsToArray(args) {
  var res = new Array(args.length);

  for (var i = 0; i < args.length; i++) res[i] = args[i];

  return res;
}
/**
 * @internal
 * @hidden
 */


function invalidateComputed(target, propName) {
  var atom = Object(mobx__WEBPACK_IMPORTED_MODULE_0__[/* getAtom */ "r"])(target, propName);
  atom.trackAndCompute();
}
/**
 * @internal
 * @hidden
 */


function stringStartsWith(str, beginning) {
  return str.indexOf(beginning) === 0;
}
/**
 * @internal
 * @hidden
 */


var deprecated = function (id, message) {
  // skip if running production
  if (!devMode()) return; // warn if hasn't been warned before

  if (deprecated.ids && !deprecated.ids.hasOwnProperty(id)) {
    warnError("Deprecation warning: " + message);
  } // mark as warned to avoid duplicate warn message


  if (deprecated.ids) deprecated.ids[id] = true;
};

deprecated.ids = {};
/**
 * @internal
 * @hidden
 */

function warnError(msg) {
  console.warn(new Error("[mobx-state-tree] " + msg));
}
/**
 * @internal
 * @hidden
 */


function isTypeCheckingEnabled() {
  return devMode() || typeof process !== "undefined" && process.env && process.env.ENABLE_TYPE_CHECK === "true";
}
/**
 * @internal
 * @hidden
 */


function devMode() {
  return "production" !== "production";
}
/**
 * @internal
 * @hidden
 */


function assertArg(value, fn, typeName, argNumber) {
  if (devMode()) {
    if (!fn(value)) {
      // istanbul ignore next
      throw fail$1("expected " + typeName + " as argument " + asArray(argNumber).join(" or ") + ", got " + value + " instead");
    }
  }
}
/**
 * @internal
 * @hidden
 */


function assertIsFunction(value, argNumber) {
  assertArg(value, function (fn) {
    return typeof fn === "function";
  }, "function", argNumber);
}
/**
 * @internal
 * @hidden
 */


function assertIsNumber(value, argNumber, min, max) {
  assertArg(value, function (n) {
    return typeof n === "number";
  }, "number", argNumber);

  if (min !== undefined) {
    assertArg(value, function (n) {
      return n >= min;
    }, "number greater than " + min, argNumber);
  }

  if (max !== undefined) {
    assertArg(value, function (n) {
      return n <= max;
    }, "number lesser than " + max, argNumber);
  }
}
/**
 * @internal
 * @hidden
 */


function assertIsString(value, argNumber, canBeEmpty) {
  if (canBeEmpty === void 0) {
    canBeEmpty = true;
  }

  assertArg(value, function (s) {
    return typeof s === "string";
  }, "string", argNumber);

  if (!canBeEmpty) {
    assertArg(value, function (s) {
      return s !== "";
    }, "not empty string", argNumber);
  }
}
/**
 * See [asynchronous actions](https://github.com/mobxjs/mobx-state-tree/blob/master/docs/async-actions.md).
 *
 * @returns The flow as a promise.
 */


function flow(generator) {
  return createFlowSpawner(generator.name, generator);
}
/**
 * @deprecated Not needed since TS3.6.
 * Used for TypeScript to make flows that return a promise return the actual promise result.
 *
 * @param val
 * @returns
 */


function castFlowReturn(val) {
  return val;
}
/**
 * @internal
 * @hidden
 */


function createFlowSpawner(name, generator) {
  var spawner = function flowSpawner() {
    // Implementation based on https://github.com/tj/co/blob/master/index.js
    var runId = getNextActionId();
    var parentContext = getCurrentActionContext();

    if (!parentContext) {
      throw fail$1("a mst flow must always have a parent context");
    }

    var parentActionContext = getParentActionContext(parentContext);

    if (!parentActionContext) {
      throw fail$1("a mst flow must always have a parent action context");
    }

    var contextBase = {
      name: name,
      id: runId,
      tree: parentContext.tree,
      context: parentContext.context,
      parentId: parentContext.id,
      allParentIds: __spread(parentContext.allParentIds, [parentContext.id]),
      rootId: parentContext.rootId,
      parentEvent: parentContext,
      parentActionEvent: parentActionContext
    };
    var args = arguments;

    function wrap(fn, type, arg) {
      fn.$mst_middleware = spawner.$mst_middleware; // pick up any middleware attached to the flow

      runWithActionContext(__assign(__assign({}, contextBase), {
        type: type,
        args: [arg]
      }), fn);
    }

    return new Promise(function (resolve, reject) {
      var gen;

      var init = function asyncActionInit() {
        gen = generator.apply(null, arguments);
        onFulfilled(undefined); // kick off the flow
      };

      init.$mst_middleware = spawner.$mst_middleware;
      runWithActionContext(__assign(__assign({}, contextBase), {
        type: "flow_spawn",
        args: argsToArray(args)
      }), init);

      function onFulfilled(res) {
        var ret;

        try {
          // prettier-ignore
          wrap(function (r) {
            ret = gen.next(r);
          }, "flow_resume", res);
        } catch (e) {
          // prettier-ignore
          setImmediate(function () {
            wrap(function (r) {
              reject(e);
            }, "flow_throw", e);
          });
          return;
        }

        next(ret);
        return;
      }

      function onRejected(err) {
        var ret;

        try {
          // prettier-ignore
          wrap(function (r) {
            ret = gen.throw(r);
          }, "flow_resume_error", err); // or yieldError?
        } catch (e) {
          // prettier-ignore
          setImmediate(function () {
            wrap(function (r) {
              reject(e);
            }, "flow_throw", e);
          });
          return;
        }

        next(ret);
      }

      function next(ret) {
        if (ret.done) {
          // prettier-ignore
          setImmediate(function () {
            wrap(function (r) {
              resolve(r);
            }, "flow_return", ret.value);
          });
          return;
        } // TODO: support more type of values? See https://github.com/tj/co/blob/249bbdc72da24ae44076afd716349d2089b31c4c/index.js#L100


        if (!ret.value || typeof ret.value.then !== "function") {
          // istanbul ignore next
          throw fail$1("Only promises can be yielded to `async`, got: " + ret);
        }

        return ret.value.then(onFulfilled, onRejected);
      }
    });
  };

  return spawner;
}
/**
 * @internal
 * @hidden
 */


function splitPatch(patch) {
  if (!("oldValue" in patch)) throw fail$1("Patches without `oldValue` field cannot be inversed");
  return [stripPatch(patch), invertPatch(patch)];
}
/**
 * @internal
 * @hidden
 */


function stripPatch(patch) {
  // strips `oldvalue` information from the patch, so that it becomes a patch conform the json-patch spec
  // this removes the ability to undo the patch
  switch (patch.op) {
    case "add":
      return {
        op: "add",
        path: patch.path,
        value: patch.value
      };

    case "remove":
      return {
        op: "remove",
        path: patch.path
      };

    case "replace":
      return {
        op: "replace",
        path: patch.path,
        value: patch.value
      };
  }
}

function invertPatch(patch) {
  switch (patch.op) {
    case "add":
      return {
        op: "remove",
        path: patch.path
      };

    case "remove":
      return {
        op: "add",
        path: patch.path,
        value: patch.oldValue
      };

    case "replace":
      return {
        op: "replace",
        path: patch.path,
        value: patch.oldValue
      };
  }
}
/**
 * Simple simple check to check it is a number.
 */


function isNumber(x) {
  return typeof x === "number";
}
/**
 * Escape slashes and backslashes.
 *
 * http://tools.ietf.org/html/rfc6901
 */


function escapeJsonPath(path) {
  if (isNumber(path) === true) {
    return "" + path;
  }

  if (path.indexOf("/") === -1 && path.indexOf("~") === -1) return path;
  return path.replace(/~/g, "~0").replace(/\//g, "~1");
}
/**
 * Unescape slashes and backslashes.
 */


function unescapeJsonPath(path) {
  return path.replace(/~1/g, "/").replace(/~0/g, "~");
}
/**
 * Generates a json-path compliant json path from path parts.
 *
 * @param path
 * @returns
 */


function joinJsonPath(path) {
  // `/` refers to property with an empty name, while `` refers to root itself!
  if (path.length === 0) return "";

  var getPathStr = function (p) {
    return p.map(escapeJsonPath).join("/");
  };

  if (path[0] === "." || path[0] === "..") {
    // relative
    return getPathStr(path);
  } else {
    // absolute
    return "/" + getPathStr(path);
  }
}
/**
 * Splits and decodes a json path into several parts.
 *
 * @param path
 * @returns
 */


function splitJsonPath(path) {
  // `/` refers to property with an empty name, while `` refers to root itself!
  var parts = path.split("/").map(unescapeJsonPath);
  var valid = path === "" || path === "." || path === ".." || stringStartsWith(path, "/") || stringStartsWith(path, "./") || stringStartsWith(path, "../");

  if (!valid) {
    throw fail$1("a json path must be either rooted, empty or relative, but got '" + path + "'");
  } // '/a/b/c' -> ["a", "b", "c"]
  // '../../b/c' -> ["..", "..", "b", "c"]
  // '' -> []
  // '/' -> ['']
  // './a' -> [".", "a"]
  // /./a' -> [".", "a"] equivalent to './a'


  if (parts[0] === "") {
    parts.shift();
  }

  return parts;
}

var SnapshotProcessor =
/** @class */
function (_super) {
  __extends(SnapshotProcessor, _super);

  function SnapshotProcessor(_subtype, _processors, name) {
    var _this = _super.call(this, name || _subtype.name) || this;

    _this._subtype = _subtype;
    _this._processors = _processors;
    return _this;
  }

  Object.defineProperty(SnapshotProcessor.prototype, "flags", {
    get: function () {
      return this._subtype.flags | TypeFlags.SnapshotProcessor;
    },
    enumerable: true,
    configurable: true
  });

  SnapshotProcessor.prototype.describe = function () {
    return "snapshotProcessor(" + this._subtype.describe() + ")";
  };

  SnapshotProcessor.prototype.preProcessSnapshot = function (sn) {
    if (this._processors.preProcessor) {
      return this._processors.preProcessor.call(null, sn);
    }

    return sn;
  };

  SnapshotProcessor.prototype.postProcessSnapshot = function (sn) {
    if (this._processors.postProcessor) {
      return this._processors.postProcessor.call(null, sn);
    }

    return sn;
  };

  SnapshotProcessor.prototype._fixNode = function (node) {
    var _this = this; // the node has to use these methods rather than the original type ones


    proxyNodeTypeMethods(node.type, this, "isAssignableFrom", "create");
    var oldGetSnapshot = node.getSnapshot;

    node.getSnapshot = function () {
      return _this.postProcessSnapshot(oldGetSnapshot.call(node));
    };
  };

  SnapshotProcessor.prototype.instantiate = function (parent, subpath, environment, initialValue) {
    var processedInitialValue = isStateTreeNode(initialValue) ? initialValue : this.preProcessSnapshot(initialValue);

    var node = this._subtype.instantiate(parent, subpath, environment, processedInitialValue);

    this._fixNode(node);

    return node;
  };

  SnapshotProcessor.prototype.reconcile = function (current, newValue, parent, subpath) {
    var node = this._subtype.reconcile(current, isStateTreeNode(newValue) ? newValue : this.preProcessSnapshot(newValue), parent, subpath);

    if (node !== current) {
      this._fixNode(node);
    }

    return node;
  };

  SnapshotProcessor.prototype.getSnapshot = function (node, applyPostProcess) {
    if (applyPostProcess === void 0) {
      applyPostProcess = true;
    }

    var sn = this._subtype.getSnapshot(node);

    return applyPostProcess ? this.postProcessSnapshot(sn) : sn;
  };

  SnapshotProcessor.prototype.isValidSnapshot = function (value, context) {
    var processedSn = this.preProcessSnapshot(value);
    return this._subtype.validate(processedSn, context);
  };

  SnapshotProcessor.prototype.getSubTypes = function () {
    return this._subtype;
  };

  SnapshotProcessor.prototype.is = function (thing) {
    return this._subtype.validate(isType(thing) ? this._subtype : this.preProcessSnapshot(thing), [{
      path: "",
      type: this._subtype
    }]).length === 0;
  };

  return SnapshotProcessor;
}(BaseType);

function proxyNodeTypeMethods(nodeType, snapshotProcessorType) {
  var e_1, _a;

  var methods = [];

  for (var _i = 2; _i < arguments.length; _i++) {
    methods[_i - 2] = arguments[_i];
  }

  try {
    for (var methods_1 = __values(methods), methods_1_1 = methods_1.next(); !methods_1_1.done; methods_1_1 = methods_1.next()) {
      var method = methods_1_1.value;
      nodeType[method] = snapshotProcessorType[method].bind(snapshotProcessorType);
    }
  } catch (e_1_1) {
    e_1 = {
      error: e_1_1
    };
  } finally {
    try {
      if (methods_1_1 && !methods_1_1.done && (_a = methods_1.return)) _a.call(methods_1);
    } finally {
      if (e_1) throw e_1.error;
    }
  }
}
/**
 * `types.snapshotProcessor` - Runs a pre/post snapshot processor before/after serializing a given type.
 *
 * Example:
 * ```ts
 * const Todo1 = types.model({ text: types.string })
 * // in the backend the text type must be null when empty
 * interface BackendTodo {
 *     text: string | null
 * }
 * const Todo2 = types.snapshotProcessor(Todo1, {
 *     // from snapshot to instance
 *     preProcessor(sn: BackendTodo) {
 *         return {
 *             text: sn.text || "";
 *         }
 *     },
 *     // from instance to snapshot
 *     postProcessor(sn): BackendTodo {
 *         return {
 *             text: !sn.text ? null : sn.text
 *         }
 *     }
 * })
 * ```
 *
 * @param type Type to run the processors over.
 * @param processors Processors to run.
 * @param name Type name, or undefined to inherit the inner type one.
 * @returns
 */


function snapshotProcessor(type, processors, name) {
  assertIsType(type, 1);

  if (devMode()) {
    if (processors.postProcessor && typeof processors.postProcessor !== "function") {
      // istanbul ignore next
      throw fail("postSnapshotProcessor must be a function");
    }

    if (processors.preProcessor && typeof processors.preProcessor !== "function") {
      // istanbul ignore next
      throw fail("preSnapshotProcessor must be a function");
    }
  }

  return new SnapshotProcessor(type, processors, name);
}

var needsIdentifierError = "Map.put can only be used to store complex values that have an identifier type attribute";

function tryCollectModelTypes(type, modelTypes) {
  var e_1, _a;

  var subtypes = type.getSubTypes();

  if (subtypes === cannotDetermineSubtype) {
    return false;
  }

  if (subtypes) {
    var subtypesArray = asArray(subtypes);

    try {
      for (var subtypesArray_1 = __values(subtypesArray), subtypesArray_1_1 = subtypesArray_1.next(); !subtypesArray_1_1.done; subtypesArray_1_1 = subtypesArray_1.next()) {
        var subtype = subtypesArray_1_1.value;
        if (!tryCollectModelTypes(subtype, modelTypes)) return false;
      }
    } catch (e_1_1) {
      e_1 = {
        error: e_1_1
      };
    } finally {
      try {
        if (subtypesArray_1_1 && !subtypesArray_1_1.done && (_a = subtypesArray_1.return)) _a.call(subtypesArray_1);
      } finally {
        if (e_1) throw e_1.error;
      }
    }
  }

  if (type instanceof ModelType) {
    modelTypes.push(type);
  }

  return true;
}
/**
 * @internal
 * @hidden
 */


var MapIdentifierMode;

(function (MapIdentifierMode) {
  MapIdentifierMode[MapIdentifierMode["UNKNOWN"] = 0] = "UNKNOWN";
  MapIdentifierMode[MapIdentifierMode["YES"] = 1] = "YES";
  MapIdentifierMode[MapIdentifierMode["NO"] = 2] = "NO";
})(MapIdentifierMode || (MapIdentifierMode = {}));

var MSTMap =
/** @class */
function (_super) {
  __extends(MSTMap, _super);

  function MSTMap(initialData) {
    return _super.call(this, initialData, mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"].ref.enhancer) || this;
  }

  MSTMap.prototype.get = function (key) {
    // maybe this is over-enthousiastic? normalize numeric keys to strings
    return _super.prototype.get.call(this, "" + key);
  };

  MSTMap.prototype.has = function (key) {
    return _super.prototype.has.call(this, "" + key);
  };

  MSTMap.prototype.delete = function (key) {
    return _super.prototype.delete.call(this, "" + key);
  };

  MSTMap.prototype.set = function (key, value) {
    return _super.prototype.set.call(this, "" + key, value);
  };

  MSTMap.prototype.put = function (value) {
    if (!value) throw fail$1("Map.put cannot be used to set empty values");

    if (isStateTreeNode(value)) {
      var node = getStateTreeNode(value);

      if (devMode()) {
        if (!node.identifierAttribute) {
          throw fail$1(needsIdentifierError);
        }
      }

      if (node.identifier === null) {
        throw fail$1(needsIdentifierError);
      }

      this.set(node.identifier, value);
      return value;
    } else if (!isMutable(value)) {
      throw fail$1("Map.put can only be used to store complex values");
    } else {
      var mapNode = getStateTreeNode(this);
      var mapType = mapNode.type;

      if (mapType.identifierMode !== MapIdentifierMode.YES) {
        throw fail$1(needsIdentifierError);
      }

      var idAttr = mapType.mapIdentifierAttribute;
      var id = value[idAttr];

      if (!isValidIdentifier(id)) {
        // try again but this time after creating a node for the value
        // since it might be an optional identifier
        var newNode = this.put(mapType.getChildType().create(value, mapNode.environment));
        return this.put(getSnapshot(newNode));
      }

      var key = normalizeIdentifier(id);
      this.set(key, value);
      return this.get(key);
    }
  };

  return MSTMap;
}(mobx__WEBPACK_IMPORTED_MODULE_0__[/* ObservableMap */ "d"]);
/**
 * @internal
 * @hidden
 */


var MapType =
/** @class */
function (_super) {
  __extends(MapType, _super);

  function MapType(name, _subType, hookInitializers) {
    if (hookInitializers === void 0) {
      hookInitializers = [];
    }

    var _this = _super.call(this, name) || this;

    _this._subType = _subType;
    _this.identifierMode = MapIdentifierMode.UNKNOWN;
    _this.mapIdentifierAttribute = undefined;
    _this.flags = TypeFlags.Map;
    _this.hookInitializers = [];

    _this._determineIdentifierMode();

    _this.hookInitializers = hookInitializers;
    return _this;
  }

  MapType.prototype.hooks = function (hooks) {
    var hookInitializers = this.hookInitializers.length > 0 ? this.hookInitializers.concat(hooks) : [hooks];
    return new MapType(this.name, this._subType, hookInitializers);
  };

  MapType.prototype.instantiate = function (parent, subpath, environment, initialValue) {
    this._determineIdentifierMode();

    return createObjectNode(this, parent, subpath, environment, initialValue);
  };

  MapType.prototype._determineIdentifierMode = function () {
    if (this.identifierMode !== MapIdentifierMode.UNKNOWN) {
      return;
    }

    var modelTypes = [];

    if (tryCollectModelTypes(this._subType, modelTypes)) {
      var identifierAttribute_1 = undefined;
      modelTypes.forEach(function (type) {
        if (type.identifierAttribute) {
          if (identifierAttribute_1 && identifierAttribute_1 !== type.identifierAttribute) {
            throw fail$1("The objects in a map should all have the same identifier attribute, expected '" + identifierAttribute_1 + "', but child of type '" + type.name + "' declared attribute '" + type.identifierAttribute + "' as identifier");
          }

          identifierAttribute_1 = type.identifierAttribute;
        }
      });

      if (identifierAttribute_1) {
        this.identifierMode = MapIdentifierMode.YES;
        this.mapIdentifierAttribute = identifierAttribute_1;
      } else {
        this.identifierMode = MapIdentifierMode.NO;
      }
    }
  };

  MapType.prototype.initializeChildNodes = function (objNode, initialSnapshot) {
    if (initialSnapshot === void 0) {
      initialSnapshot = {};
    }

    var subType = objNode.type._subType;
    var result = {};
    Object.keys(initialSnapshot).forEach(function (name) {
      result[name] = subType.instantiate(objNode, name, undefined, initialSnapshot[name]);
    });
    return result;
  };

  MapType.prototype.createNewInstance = function (childNodes) {
    return new MSTMap(childNodes);
  };

  MapType.prototype.finalizeNewInstance = function (node, instance) {
    Object(mobx__WEBPACK_IMPORTED_MODULE_0__[/* _interceptReads */ "i"])(instance, node.unbox);

    var type = node.type;
    type.hookInitializers.forEach(function (initializer) {
      var hooks = initializer(instance);
      Object.keys(hooks).forEach(function (name) {
        var hook = hooks[name];
        var actionInvoker = createActionInvoker(instance, name, hook);
        (!devMode() ? addHiddenFinalProp : addHiddenWritableProp)(instance, name, actionInvoker);
      });
    });
    Object(mobx__WEBPACK_IMPORTED_MODULE_0__[/* intercept */ "t"])(instance, this.willChange);
    Object(mobx__WEBPACK_IMPORTED_MODULE_0__[/* observe */ "A"])(instance, this.didChange);
  };

  MapType.prototype.describe = function () {
    return "Map<string, " + this._subType.describe() + ">";
  };

  MapType.prototype.getChildren = function (node) {
    // return (node.storedValue as ObservableMap<any>).values()
    return Object(mobx__WEBPACK_IMPORTED_MODULE_0__[/* values */ "H"])(node.storedValue);
  };

  MapType.prototype.getChildNode = function (node, key) {
    var childNode = node.storedValue.get("" + key);
    if (!childNode) throw fail$1("Not a child " + key);
    return childNode;
  };

  MapType.prototype.willChange = function (change) {
    var node = getStateTreeNode(change.object);
    var key = change.name;
    node.assertWritable({
      subpath: key
    });
    var mapType = node.type;
    var subType = mapType._subType;

    switch (change.type) {
      case "update":
        {
          var newValue = change.newValue;
          var oldValue = change.object.get(key);
          if (newValue === oldValue) return null;
          typecheckInternal(subType, newValue);
          change.newValue = subType.reconcile(node.getChildNode(key), change.newValue, node, key);
          mapType.processIdentifier(key, change.newValue);
        }
        break;

      case "add":
        {
          typecheckInternal(subType, change.newValue);
          change.newValue = subType.instantiate(node, key, undefined, change.newValue);
          mapType.processIdentifier(key, change.newValue);
        }
        break;
    }

    return change;
  };

  MapType.prototype.processIdentifier = function (expected, node) {
    if (this.identifierMode === MapIdentifierMode.YES && node instanceof ObjectNode) {
      var identifier = node.identifier;
      if (identifier !== expected) throw fail$1("A map of objects containing an identifier should always store the object under their own identifier. Trying to store key '" + identifier + "', but expected: '" + expected + "'");
    }
  };

  MapType.prototype.getSnapshot = function (node) {
    var res = {};
    node.getChildren().forEach(function (childNode) {
      res[childNode.subpath] = childNode.snapshot;
    });
    return res;
  };

  MapType.prototype.processInitialSnapshot = function (childNodes) {
    var processed = {};
    Object.keys(childNodes).forEach(function (key) {
      processed[key] = childNodes[key].getSnapshot();
    });
    return processed;
  };

  MapType.prototype.didChange = function (change) {
    var node = getStateTreeNode(change.object);

    switch (change.type) {
      case "update":
        return void node.emitPatch({
          op: "replace",
          path: escapeJsonPath(change.name),
          value: change.newValue.snapshot,
          oldValue: change.oldValue ? change.oldValue.snapshot : undefined
        }, node);

      case "add":
        return void node.emitPatch({
          op: "add",
          path: escapeJsonPath(change.name),
          value: change.newValue.snapshot,
          oldValue: undefined
        }, node);

      case "delete":
        // a node got deleted, get the old snapshot and make the node die
        var oldSnapshot = change.oldValue.snapshot;
        change.oldValue.die(); // emit the patch

        return void node.emitPatch({
          op: "remove",
          path: escapeJsonPath(change.name),
          oldValue: oldSnapshot
        }, node);
    }
  };

  MapType.prototype.applyPatchLocally = function (node, subpath, patch) {
    var target = node.storedValue;

    switch (patch.op) {
      case "add":
      case "replace":
        target.set(subpath, patch.value);
        break;

      case "remove":
        target.delete(subpath);
        break;
    }
  };

  MapType.prototype.applySnapshot = function (node, snapshot) {
    typecheckInternal(this, snapshot);
    var target = node.storedValue;
    var currentKeys = {};
    Array.from(target.keys()).forEach(function (key) {
      currentKeys[key] = false;
    });

    if (snapshot) {
      // Don't use target.replace, as it will throw away all existing items first
      for (var key in snapshot) {
        target.set(key, snapshot[key]);
        currentKeys["" + key] = true;
      }
    }

    Object.keys(currentKeys).forEach(function (key) {
      if (currentKeys[key] === false) target.delete(key);
    });
  };

  MapType.prototype.getChildType = function () {
    return this._subType;
  };

  MapType.prototype.isValidSnapshot = function (value, context) {
    var _this = this;

    if (!isPlainObject(value)) {
      return typeCheckFailure(context, value, "Value is not a plain object");
    }

    return flattenTypeErrors(Object.keys(value).map(function (path) {
      return _this._subType.validate(value[path], getContextForPath(context, path, _this._subType));
    }));
  };

  MapType.prototype.getDefaultSnapshot = function () {
    return EMPTY_OBJECT;
  };

  MapType.prototype.removeChild = function (node, subpath) {
    node.storedValue.delete(subpath);
  };

  __decorate([mobx__WEBPACK_IMPORTED_MODULE_0__[/* action */ "j"]], MapType.prototype, "applySnapshot", null);

  return MapType;
}(ComplexType);
/**
 * `types.map` - Creates a key based collection type who's children are all of a uniform declared type.
 * If the type stored in a map has an identifier, it is mandatory to store the child under that identifier in the map.
 *
 * This type will always produce [observable maps](https://mobx.js.org/refguide/map.html)
 *
 * Example:
 * ```ts
 * const Todo = types.model({
 *   id: types.identifier,
 *   task: types.string
 * })
 *
 * const TodoStore = types.model({
 *   todos: types.map(Todo)
 * })
 *
 * const s = TodoStore.create({ todos: {} })
 * unprotect(s)
 * s.todos.set(17, { task: "Grab coffee", id: 17 })
 * s.todos.put({ task: "Grab cookie", id: 18 }) // put will infer key from the identifier
 * console.log(s.todos.get(17).task) // prints: "Grab coffee"
 * ```
 *
 * @param subtype
 * @returns
 */


function map(subtype) {
  return new MapType("map<string, " + subtype.name + ">", subtype);
}
/**
 * Returns if a given value represents a map type.
 *
 * @param type
 * @returns `true` if it is a map type.
 */


function isMapType(type) {
  return isType(type) && (type.flags & TypeFlags.Map) > 0;
}
/**
 * @internal
 * @hidden
 */


var ArrayType =
/** @class */
function (_super) {
  __extends(ArrayType, _super);

  function ArrayType(name, _subType, hookInitializers) {
    if (hookInitializers === void 0) {
      hookInitializers = [];
    }

    var _this = _super.call(this, name) || this;

    _this._subType = _subType;
    _this.flags = TypeFlags.Array;
    _this.hookInitializers = [];
    _this.hookInitializers = hookInitializers;
    return _this;
  }

  ArrayType.prototype.hooks = function (hooks) {
    var hookInitializers = this.hookInitializers.length > 0 ? this.hookInitializers.concat(hooks) : [hooks];
    return new ArrayType(this.name, this._subType, hookInitializers);
  };

  ArrayType.prototype.instantiate = function (parent, subpath, environment, initialValue) {
    return createObjectNode(this, parent, subpath, environment, initialValue);
  };

  ArrayType.prototype.initializeChildNodes = function (objNode, snapshot) {
    if (snapshot === void 0) {
      snapshot = [];
    }

    var subType = objNode.type._subType;
    var result = {};
    snapshot.forEach(function (item, index) {
      var subpath = "" + index;
      result[subpath] = subType.instantiate(objNode, subpath, undefined, item);
    });
    return result;
  };

  ArrayType.prototype.createNewInstance = function (childNodes) {
    return mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"].array(convertChildNodesToArray(childNodes), mobxShallow);
  };

  ArrayType.prototype.finalizeNewInstance = function (node, instance) {
    Object(mobx__WEBPACK_IMPORTED_MODULE_0__[/* _getAdministration */ "h"])(instance).dehancer = node.unbox;
    var type = node.type;
    type.hookInitializers.forEach(function (initializer) {
      var hooks = initializer(instance);
      Object.keys(hooks).forEach(function (name) {
        var hook = hooks[name];
        var actionInvoker = createActionInvoker(instance, name, hook);
        (!devMode() ? addHiddenFinalProp : addHiddenWritableProp)(instance, name, actionInvoker);
      });
    });
    Object(mobx__WEBPACK_IMPORTED_MODULE_0__[/* intercept */ "t"])(instance, this.willChange);
    Object(mobx__WEBPACK_IMPORTED_MODULE_0__[/* observe */ "A"])(instance, this.didChange);
  };

  ArrayType.prototype.describe = function () {
    return this._subType.describe() + "[]";
  };

  ArrayType.prototype.getChildren = function (node) {
    return node.storedValue.slice();
  };

  ArrayType.prototype.getChildNode = function (node, key) {
    var index = Number(key);
    if (index < node.storedValue.length) return node.storedValue[index];
    throw fail$1("Not a child: " + key);
  };

  ArrayType.prototype.willChange = function (change) {
    var node = getStateTreeNode(change.object);
    node.assertWritable({
      subpath: "" + change.index
    });
    var subType = node.type._subType;
    var childNodes = node.getChildren();

    switch (change.type) {
      case "update":
        {
          if (change.newValue === change.object[change.index]) return null;
          var updatedNodes = reconcileArrayChildren(node, subType, [childNodes[change.index]], [change.newValue], [change.index]);

          if (!updatedNodes) {
            return null;
          }

          change.newValue = updatedNodes[0];
        }
        break;

      case "splice":
        {
          var index_1 = change.index,
              removedCount = change.removedCount,
              added = change.added;
          var addedNodes = reconcileArrayChildren(node, subType, childNodes.slice(index_1, index_1 + removedCount), added, added.map(function (_, i) {
            return index_1 + i;
          }));

          if (!addedNodes) {
            return null;
          }

          change.added = addedNodes; // update paths of remaining items

          for (var i = index_1 + removedCount; i < childNodes.length; i++) {
            childNodes[i].setParent(node, "" + (i + added.length - removedCount));
          }
        }
        break;
    }

    return change;
  };

  ArrayType.prototype.getSnapshot = function (node) {
    return node.getChildren().map(function (childNode) {
      return childNode.snapshot;
    });
  };

  ArrayType.prototype.processInitialSnapshot = function (childNodes) {
    var processed = [];
    Object.keys(childNodes).forEach(function (key) {
      processed.push(childNodes[key].getSnapshot());
    });
    return processed;
  };

  ArrayType.prototype.didChange = function (change) {
    var node = getStateTreeNode(change.object);

    switch (change.type) {
      case "update":
        return void node.emitPatch({
          op: "replace",
          path: "" + change.index,
          value: change.newValue.snapshot,
          oldValue: change.oldValue ? change.oldValue.snapshot : undefined
        }, node);

      case "splice":
        for (var i = change.removedCount - 1; i >= 0; i--) node.emitPatch({
          op: "remove",
          path: "" + (change.index + i),
          oldValue: change.removed[i].snapshot
        }, node);

        for (var i = 0; i < change.addedCount; i++) node.emitPatch({
          op: "add",
          path: "" + (change.index + i),
          value: node.getChildNode("" + (change.index + i)).snapshot,
          oldValue: undefined
        }, node);

        return;
    }
  };

  ArrayType.prototype.applyPatchLocally = function (node, subpath, patch) {
    var target = node.storedValue;
    var index = subpath === "-" ? target.length : Number(subpath);

    switch (patch.op) {
      case "replace":
        target[index] = patch.value;
        break;

      case "add":
        target.splice(index, 0, patch.value);
        break;

      case "remove":
        target.splice(index, 1);
        break;
    }
  };

  ArrayType.prototype.applySnapshot = function (node, snapshot) {
    typecheckInternal(this, snapshot);
    var target = node.storedValue;
    target.replace(snapshot);
  };

  ArrayType.prototype.getChildType = function () {
    return this._subType;
  };

  ArrayType.prototype.isValidSnapshot = function (value, context) {
    var _this = this;

    if (!isArray(value)) {
      return typeCheckFailure(context, value, "Value is not an array");
    }

    return flattenTypeErrors(value.map(function (item, index) {
      return _this._subType.validate(item, getContextForPath(context, "" + index, _this._subType));
    }));
  };

  ArrayType.prototype.getDefaultSnapshot = function () {
    return EMPTY_ARRAY;
  };

  ArrayType.prototype.removeChild = function (node, subpath) {
    node.storedValue.splice(Number(subpath), 1);
  };

  __decorate([mobx__WEBPACK_IMPORTED_MODULE_0__[/* action */ "j"]], ArrayType.prototype, "applySnapshot", null);

  return ArrayType;
}(ComplexType);
/**
 * `types.array` - Creates an index based collection type who's children are all of a uniform declared type.
 *
 * This type will always produce [observable arrays](https://mobx.js.org/refguide/array.html)
 *
 * Example:
 * ```ts
 * const Todo = types.model({
 *   task: types.string
 * })
 *
 * const TodoStore = types.model({
 *   todos: types.array(Todo)
 * })
 *
 * const s = TodoStore.create({ todos: [] })
 * unprotect(s) // needed to allow modifying outside of an action
 * s.todos.push({ task: "Grab coffee" })
 * console.log(s.todos[0]) // prints: "Grab coffee"
 * ```
 *
 * @param subtype
 * @returns
 */


function array(subtype) {
  assertIsType(subtype, 1);
  return new ArrayType(subtype.name + "[]", subtype);
}

function reconcileArrayChildren(parent, childType, oldNodes, newValues, newPaths) {
  var nothingChanged = true;

  for (var i = 0;; i++) {
    var hasNewNode = i <= newValues.length - 1;
    var oldNode = oldNodes[i];
    var newValue = hasNewNode ? newValues[i] : undefined;
    var newPath = "" + newPaths[i]; // for some reason, instead of newValue we got a node, fallback to the storedValue
    // TODO: https://github.com/mobxjs/mobx-state-tree/issues/340#issuecomment-325581681

    if (isNode(newValue)) newValue = newValue.storedValue;

    if (!oldNode && !hasNewNode) {
      // both are empty, end
      break;
    } else if (!hasNewNode) {
      // new one does not exists
      nothingChanged = false;
      oldNodes.splice(i, 1);

      if (oldNode instanceof ObjectNode) {
        // since it is going to be returned by pop/splice/shift better create it before killing it
        // so it doesn't end up in an undead state
        oldNode.createObservableInstanceIfNeeded();
      }

      oldNode.die();
      i--;
    } else if (!oldNode) {
      // there is no old node, create it
      // check if already belongs to the same parent. if so, avoid pushing item in. only swapping can occur.
      if (isStateTreeNode(newValue) && getStateTreeNode(newValue).parent === parent) {
        // this node is owned by this parent, but not in the reconcilable set, so it must be double
        throw fail$1("Cannot add an object to a state tree if it is already part of the same or another state tree. Tried to assign an object to '" + parent.path + "/" + newPath + "', but it lives already at '" + getStateTreeNode(newValue).path + "'");
      }

      nothingChanged = false;
      var newNode = valueAsNode(childType, parent, newPath, newValue);
      oldNodes.splice(i, 0, newNode);
    } else if (areSame(oldNode, newValue)) {
      // both are the same, reconcile
      oldNodes[i] = valueAsNode(childType, parent, newPath, newValue, oldNode);
    } else {
      // nothing to do, try to reorder
      var oldMatch = undefined; // find a possible candidate to reuse

      for (var j = i; j < oldNodes.length; j++) {
        if (areSame(oldNodes[j], newValue)) {
          oldMatch = oldNodes.splice(j, 1)[0];
          break;
        }
      }

      nothingChanged = false;
      var newNode = valueAsNode(childType, parent, newPath, newValue, oldMatch);
      oldNodes.splice(i, 0, newNode);
    }
  }

  return nothingChanged ? null : oldNodes;
}
/**
 * Convert a value to a node at given parent and subpath. Attempts to reuse old node if possible and given.
 */


function valueAsNode(childType, parent, subpath, newValue, oldNode) {
  // ensure the value is valid-ish
  typecheckInternal(childType, newValue);

  function getNewNode() {
    // the new value has a MST node
    if (isStateTreeNode(newValue)) {
      var childNode = getStateTreeNode(newValue);
      childNode.assertAlive(EMPTY_OBJECT); // the node lives here

      if (childNode.parent !== null && childNode.parent === parent) {
        childNode.setParent(parent, subpath);
        return childNode;
      }
    } // there is old node and new one is a value/snapshot


    if (oldNode) {
      return childType.reconcile(oldNode, newValue, parent, subpath);
    } // nothing to do, create from scratch


    return childType.instantiate(parent, subpath, undefined, newValue);
  }

  var newNode = getNewNode();

  if (oldNode && oldNode !== newNode) {
    if (oldNode instanceof ObjectNode) {
      // since it is going to be returned by pop/splice/shift better create it before killing it
      // so it doesn't end up in an undead state
      oldNode.createObservableInstanceIfNeeded();
    }

    oldNode.die();
  }

  return newNode;
}
/**
 * Check if a node holds a value.
 */


function areSame(oldNode, newValue) {
  // never consider dead old nodes for reconciliation
  if (!oldNode.isAlive) {
    return false;
  } // the new value has the same node


  if (isStateTreeNode(newValue)) {
    var newNode = getStateTreeNode(newValue);
    return newNode.isAlive && newNode === oldNode;
  } // the provided value is the snapshot of the old node


  if (oldNode.snapshot === newValue) {
    return true;
  } // new value is a snapshot with the correct identifier


  return oldNode instanceof ObjectNode && oldNode.identifier !== null && oldNode.identifierAttribute && isPlainObject(newValue) && oldNode.identifier === normalizeIdentifier(newValue[oldNode.identifierAttribute]) && oldNode.type.is(newValue);
}
/**
 * Returns if a given value represents an array type.
 *
 * @param type
 * @returns `true` if the type is an array type.
 */


function isArrayType(type) {
  return isType(type) && (type.flags & TypeFlags.Array) > 0;
}

var PRE_PROCESS_SNAPSHOT = "preProcessSnapshot";
var POST_PROCESS_SNAPSHOT = "postProcessSnapshot";

function objectTypeToString() {
  return getStateTreeNode(this).toString();
}

var defaultObjectOptions = {
  name: "AnonymousModel",
  properties: {},
  initializers: EMPTY_ARRAY
};

function toPropertiesObject(declaredProps) {
  // loop through properties and ensures that all items are types
  return Object.keys(declaredProps).reduce(function (props, key) {
    var _a, _b, _c; // warn if user intended a HOOK


    if (key in Hook) throw fail$1("Hook '" + key + "' was defined as property. Hooks should be defined as part of the actions"); // the user intended to use a view

    var descriptor = Object.getOwnPropertyDescriptor(props, key);

    if ("get" in descriptor) {
      throw fail$1("Getters are not supported as properties. Please use views instead");
    } // undefined and null are not valid


    var value = descriptor.value;

    if (value === null || value === undefined) {
      throw fail$1("The default value of an attribute cannot be null or undefined as the type cannot be inferred. Did you mean `types.maybe(someType)`?"); // its a primitive, convert to its type
    } else if (isPrimitive(value)) {
      return Object.assign({}, props, (_a = {}, _a[key] = optional(getPrimitiveFactoryFromValue(value), value), _a)); // map defaults to empty object automatically for models
    } else if (value instanceof MapType) {
      return Object.assign({}, props, (_b = {}, _b[key] = optional(value, {}), _b));
    } else if (value instanceof ArrayType) {
      return Object.assign({}, props, (_c = {}, _c[key] = optional(value, []), _c)); // its already a type
    } else if (isType(value)) {
      return props; // its a function, maybe the user wanted a view?
    } else if (devMode() && typeof value === "function") {
      throw fail$1("Invalid type definition for property '" + key + "', it looks like you passed a function. Did you forget to invoke it, or did you intend to declare a view / action?"); // no other complex values
    } else if (devMode() && typeof value === "object") {
      throw fail$1("Invalid type definition for property '" + key + "', it looks like you passed an object. Try passing another model type or a types.frozen."); // WTF did you pass in mate?
    } else {
      throw fail$1("Invalid type definition for property '" + key + "', cannot infer a type from a value like '" + value + "' (" + typeof value + ")");
    }
  }, declaredProps);
}
/**
 * @internal
 * @hidden
 */


var ModelType =
/** @class */
function (_super) {
  __extends(ModelType, _super);

  function ModelType(opts) {
    var _this = _super.call(this, opts.name || defaultObjectOptions.name) || this;

    _this.flags = TypeFlags.Object;

    _this.named = function (name) {
      return _this.cloneAndEnhance({
        name: name
      });
    };

    _this.props = function (properties) {
      return _this.cloneAndEnhance({
        properties: properties
      });
    };

    _this.preProcessSnapshot = function (preProcessor) {
      var currentPreprocessor = _this.preProcessor;
      if (!currentPreprocessor) return _this.cloneAndEnhance({
        preProcessor: preProcessor
      });else return _this.cloneAndEnhance({
        preProcessor: function (snapshot) {
          return currentPreprocessor(preProcessor(snapshot));
        }
      });
    };

    _this.postProcessSnapshot = function (postProcessor) {
      var currentPostprocessor = _this.postProcessor;
      if (!currentPostprocessor) return _this.cloneAndEnhance({
        postProcessor: postProcessor
      });else return _this.cloneAndEnhance({
        postProcessor: function (snapshot) {
          return postProcessor(currentPostprocessor(snapshot));
        }
      });
    };

    Object.assign(_this, defaultObjectOptions, opts); // ensures that any default value gets converted to its related type

    _this.properties = toPropertiesObject(_this.properties);
    freeze(_this.properties); // make sure nobody messes with it

    _this.propertyNames = Object.keys(_this.properties);
    _this.identifierAttribute = _this._getIdentifierAttribute();
    return _this;
  }

  ModelType.prototype._getIdentifierAttribute = function () {
    var identifierAttribute = undefined;
    this.forAllProps(function (propName, propType) {
      if (propType.flags & TypeFlags.Identifier) {
        if (identifierAttribute) throw fail$1("Cannot define property '" + propName + "' as object identifier, property '" + identifierAttribute + "' is already defined as identifier property");
        identifierAttribute = propName;
      }
    });
    return identifierAttribute;
  };

  ModelType.prototype.cloneAndEnhance = function (opts) {
    return new ModelType({
      name: opts.name || this.name,
      properties: Object.assign({}, this.properties, opts.properties),
      initializers: this.initializers.concat(opts.initializers || []),
      preProcessor: opts.preProcessor || this.preProcessor,
      postProcessor: opts.postProcessor || this.postProcessor
    });
  };

  ModelType.prototype.actions = function (fn) {
    var _this = this;

    var actionInitializer = function (self) {
      _this.instantiateActions(self, fn(self));

      return self;
    };

    return this.cloneAndEnhance({
      initializers: [actionInitializer]
    });
  };

  ModelType.prototype.instantiateActions = function (self, actions) {
    // check if return is correct
    if (!isPlainObject(actions)) throw fail$1("actions initializer should return a plain object containing actions"); // bind actions to the object created

    Object.keys(actions).forEach(function (name) {
      // warn if preprocessor was given
      if (name === PRE_PROCESS_SNAPSHOT) throw fail$1("Cannot define action '" + PRE_PROCESS_SNAPSHOT + "', it should be defined using 'type.preProcessSnapshot(fn)' instead"); // warn if postprocessor was given

      if (name === POST_PROCESS_SNAPSHOT) throw fail$1("Cannot define action '" + POST_PROCESS_SNAPSHOT + "', it should be defined using 'type.postProcessSnapshot(fn)' instead");
      var action2 = actions[name]; // apply hook composition

      var baseAction = self[name];

      if (name in Hook && baseAction) {
        var specializedAction_1 = action2;

        action2 = function () {
          baseAction.apply(null, arguments);
          specializedAction_1.apply(null, arguments);
        };
      } // the goal of this is to make sure actions using "this" can call themselves,
      // while still allowing the middlewares to register them


      var middlewares = action2.$mst_middleware; // make sure middlewares are not lost

      var boundAction = action2.bind(actions);
      boundAction.$mst_middleware = middlewares;
      var actionInvoker = createActionInvoker(self, name, boundAction);
      actions[name] = actionInvoker;
      (!devMode() ? addHiddenFinalProp : addHiddenWritableProp)(self, name, actionInvoker);
    });
  };

  ModelType.prototype.volatile = function (fn) {
    var _this = this;

    var stateInitializer = function (self) {
      _this.instantiateVolatileState(self, fn(self));

      return self;
    };

    return this.cloneAndEnhance({
      initializers: [stateInitializer]
    });
  };

  ModelType.prototype.instantiateVolatileState = function (self, state) {
    // check views return
    if (!isPlainObject(state)) throw fail$1("volatile state initializer should return a plain object containing state");
    Object(mobx__WEBPACK_IMPORTED_MODULE_0__[/* set */ "D"])(self, state);
  };

  ModelType.prototype.extend = function (fn) {
    var _this = this;

    var initializer = function (self) {
      var _a = fn(self),
          actions = _a.actions,
          views = _a.views,
          state = _a.state,
          rest = __rest(_a, ["actions", "views", "state"]);

      for (var key in rest) throw fail$1("The `extend` function should return an object with a subset of the fields 'actions', 'views' and 'state'. Found invalid key '" + key + "'");

      if (state) _this.instantiateVolatileState(self, state);
      if (views) _this.instantiateViews(self, views);
      if (actions) _this.instantiateActions(self, actions);
      return self;
    };

    return this.cloneAndEnhance({
      initializers: [initializer]
    });
  };

  ModelType.prototype.views = function (fn) {
    var _this = this;

    var viewInitializer = function (self) {
      _this.instantiateViews(self, fn(self));

      return self;
    };

    return this.cloneAndEnhance({
      initializers: [viewInitializer]
    });
  };

  ModelType.prototype.instantiateViews = function (self, views) {
    // check views return
    if (!isPlainObject(views)) throw fail$1("views initializer should return a plain object containing views");
    Object.keys(views).forEach(function (key) {
      // is this a computed property?
      var descriptor = Object.getOwnPropertyDescriptor(views, key);

      if ("get" in descriptor) {
        if (Object(mobx__WEBPACK_IMPORTED_MODULE_0__[/* isComputedProp */ "u"])(self, key)) {
          var computedValue = Object(mobx__WEBPACK_IMPORTED_MODULE_0__[/* _getAdministration */ "h"])(self, key); // TODO: mobx currently does not allow redefining computes yet, pending #1121
          // FIXME: this binds to the internals of mobx!


          computedValue.derivation = descriptor.get;
          computedValue.scope = self;
          if (descriptor.set) computedValue.setter = Object(mobx__WEBPACK_IMPORTED_MODULE_0__[/* action */ "j"])(computedValue.name + "-setter", descriptor.set);
        } else {
          Object(mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"])(self, key, descriptor, true);
        }
      } else if (typeof descriptor.value === "function") {
        (!devMode() ? addHiddenFinalProp : addHiddenWritableProp)(self, key, descriptor.value);
      } else {
        throw fail$1("A view member should either be a function or getter based property");
      }
    });
  };

  ModelType.prototype.instantiate = function (parent, subpath, environment, initialValue) {
    var value = isStateTreeNode(initialValue) ? initialValue : this.applySnapshotPreProcessor(initialValue);
    return createObjectNode(this, parent, subpath, environment, value); // Optimization: record all prop- view- and action names after first construction, and generate an optimal base class
    // that pre-reserves all these fields for fast object-member lookups
  };

  ModelType.prototype.initializeChildNodes = function (objNode, initialSnapshot) {
    if (initialSnapshot === void 0) {
      initialSnapshot = {};
    }

    var type = objNode.type;
    var result = {};
    type.forAllProps(function (name, childType) {
      result[name] = childType.instantiate(objNode, name, undefined, initialSnapshot[name]);
    });
    return result;
  };

  ModelType.prototype.createNewInstance = function (childNodes) {
    return mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"].object(childNodes, EMPTY_OBJECT, mobxShallow);
  };

  ModelType.prototype.finalizeNewInstance = function (node, instance) {
    addHiddenFinalProp(instance, "toString", objectTypeToString);
    this.forAllProps(function (name) {
      Object(mobx__WEBPACK_IMPORTED_MODULE_0__[/* _interceptReads */ "i"])(instance, name, node.unbox);
    });
    this.initializers.reduce(function (self, fn) {
      return fn(self);
    }, instance);
    Object(mobx__WEBPACK_IMPORTED_MODULE_0__[/* intercept */ "t"])(instance, this.willChange);
    Object(mobx__WEBPACK_IMPORTED_MODULE_0__[/* observe */ "A"])(instance, this.didChange);
  };

  ModelType.prototype.willChange = function (chg) {
    // TODO: mobx typings don't seem to take into account that newValue can be set even when removing a prop
    var change = chg;
    var node = getStateTreeNode(change.object);
    var subpath = change.name;
    node.assertWritable({
      subpath: subpath
    });
    var childType = node.type.properties[subpath]; // only properties are typed, state are stored as-is references

    if (childType) {
      typecheckInternal(childType, change.newValue);
      change.newValue = childType.reconcile(node.getChildNode(subpath), change.newValue, node, subpath);
    }

    return change;
  };

  ModelType.prototype.didChange = function (chg) {
    // TODO: mobx typings don't seem to take into account that newValue can be set even when removing a prop
    var change = chg;
    var childNode = getStateTreeNode(change.object);
    var childType = childNode.type.properties[change.name];

    if (!childType) {
      // don't emit patches for volatile state
      return;
    }

    var oldChildValue = change.oldValue ? change.oldValue.snapshot : undefined;
    childNode.emitPatch({
      op: "replace",
      path: escapeJsonPath(change.name),
      value: change.newValue.snapshot,
      oldValue: oldChildValue
    }, childNode);
  };

  ModelType.prototype.getChildren = function (node) {
    var _this = this;

    var res = [];
    this.forAllProps(function (name) {
      res.push(_this.getChildNode(node, name));
    });
    return res;
  };

  ModelType.prototype.getChildNode = function (node, key) {
    if (!(key in this.properties)) throw fail$1("Not a value property: " + key);

    var childNode = Object(mobx__WEBPACK_IMPORTED_MODULE_0__[/* _getAdministration */ "h"])(node.storedValue, key).value; // TODO: blegh!


    if (!childNode) throw fail$1("Node not available for property " + key);
    return childNode;
  };

  ModelType.prototype.getSnapshot = function (node, applyPostProcess) {
    var _this = this;

    if (applyPostProcess === void 0) {
      applyPostProcess = true;
    }

    var res = {};
    this.forAllProps(function (name, type) {
      Object(mobx__WEBPACK_IMPORTED_MODULE_0__[/* getAtom */ "r"])(node.storedValue, name).reportObserved();
      res[name] = _this.getChildNode(node, name).snapshot;
    });

    if (applyPostProcess) {
      return this.applySnapshotPostProcessor(res);
    }

    return res;
  };

  ModelType.prototype.processInitialSnapshot = function (childNodes) {
    var processed = {};
    Object.keys(childNodes).forEach(function (key) {
      processed[key] = childNodes[key].getSnapshot();
    });
    return this.applySnapshotPostProcessor(processed);
  };

  ModelType.prototype.applyPatchLocally = function (node, subpath, patch) {
    if (!(patch.op === "replace" || patch.op === "add")) {
      throw fail$1("object does not support operation " + patch.op);
    }

    node.storedValue[subpath] = patch.value;
  };

  ModelType.prototype.applySnapshot = function (node, snapshot) {
    var preProcessedSnapshot = this.applySnapshotPreProcessor(snapshot);
    typecheckInternal(this, preProcessedSnapshot);
    this.forAllProps(function (name) {
      node.storedValue[name] = preProcessedSnapshot[name];
    });
  };

  ModelType.prototype.applySnapshotPreProcessor = function (snapshot) {
    var processor = this.preProcessor;
    return processor ? processor.call(null, snapshot) : snapshot;
  };

  ModelType.prototype.applySnapshotPostProcessor = function (snapshot) {
    var postProcessor = this.postProcessor;
    if (postProcessor) return postProcessor.call(null, snapshot);
    return snapshot;
  };

  ModelType.prototype.getChildType = function (propertyName) {
    assertIsString(propertyName, 1);
    return this.properties[propertyName];
  };

  ModelType.prototype.isValidSnapshot = function (value, context) {
    var _this = this;

    var snapshot = this.applySnapshotPreProcessor(value);

    if (!isPlainObject(snapshot)) {
      return typeCheckFailure(context, snapshot, "Value is not a plain object");
    }

    return flattenTypeErrors(this.propertyNames.map(function (key) {
      return _this.properties[key].validate(snapshot[key], getContextForPath(context, key, _this.properties[key]));
    }));
  };

  ModelType.prototype.forAllProps = function (fn) {
    var _this = this;

    this.propertyNames.forEach(function (key) {
      return fn(key, _this.properties[key]);
    });
  };

  ModelType.prototype.describe = function () {
    var _this = this; // optimization: cache


    return "{ " + this.propertyNames.map(function (key) {
      return key + ": " + _this.properties[key].describe();
    }).join("; ") + " }";
  };

  ModelType.prototype.getDefaultSnapshot = function () {
    return EMPTY_OBJECT;
  };

  ModelType.prototype.removeChild = function (node, subpath) {
    node.storedValue[subpath] = undefined;
  };

  __decorate([mobx__WEBPACK_IMPORTED_MODULE_0__[/* action */ "j"]], ModelType.prototype, "applySnapshot", null);

  return ModelType;
}(ComplexType);
/**
 * `types.model` - Creates a new model type by providing a name, properties, volatile state and actions.
 *
 * See the [model type](https://github.com/mobxjs/mobx-state-tree#creating-models) description or the [getting started](https://github.com/mobxjs/mobx-state-tree/blob/master/docs/getting-started.md#getting-started-1) tutorial.
 */


function model() {
  var args = [];

  for (var _i = 0; _i < arguments.length; _i++) {
    args[_i] = arguments[_i];
  }

  var name = typeof args[0] === "string" ? args.shift() : "AnonymousModel";
  var properties = args.shift() || {};
  return new ModelType({
    name: name,
    properties: properties
  });
}
/**
 * `types.compose` - Composes a new model from one or more existing model types.
 * This method can be invoked in two forms:
 * Given 2 or more model types, the types are composed into a new Type.
 * Given first parameter as a string and 2 or more model types,
 * the types are composed into a new Type with the given name
 */


function compose() {
  var args = [];

  for (var _i = 0; _i < arguments.length; _i++) {
    args[_i] = arguments[_i];
  } // TODO: just join the base type names if no name is provided


  var hasTypename = typeof args[0] === "string";
  var typeName = hasTypename ? args[0] : "AnonymousModel";

  if (hasTypename) {
    args.shift();
  } // check all parameters


  if (devMode()) {
    args.forEach(function (type, i) {
      assertArg(type, isModelType, "mobx-state-tree model type", hasTypename ? i + 2 : i + 1);
    });
  }

  return args.reduce(function (prev, cur) {
    return prev.cloneAndEnhance({
      name: prev.name + "_" + cur.name,
      properties: cur.properties,
      initializers: cur.initializers,
      preProcessor: function (snapshot) {
        return cur.applySnapshotPreProcessor(prev.applySnapshotPreProcessor(snapshot));
      },
      postProcessor: function (snapshot) {
        return cur.applySnapshotPostProcessor(prev.applySnapshotPostProcessor(snapshot));
      }
    });
  }).named(typeName);
}
/**
 * Returns if a given value represents a model type.
 *
 * @param type
 * @returns
 */


function isModelType(type) {
  return isType(type) && (type.flags & TypeFlags.Object) > 0;
} // TODO: implement CoreType using types.custom ?

/**
 * @internal
 * @hidden
 */


var CoreType =
/** @class */
function (_super) {
  __extends(CoreType, _super);

  function CoreType(name, flags, checker, initializer) {
    if (initializer === void 0) {
      initializer = identity;
    }

    var _this = _super.call(this, name) || this;

    _this.flags = flags;
    _this.checker = checker;
    _this.initializer = initializer;
    _this.flags = flags;
    return _this;
  }

  CoreType.prototype.describe = function () {
    return this.name;
  };

  CoreType.prototype.instantiate = function (parent, subpath, environment, initialValue) {
    return createScalarNode(this, parent, subpath, environment, initialValue);
  };

  CoreType.prototype.createNewInstance = function (snapshot) {
    return this.initializer(snapshot);
  };

  CoreType.prototype.isValidSnapshot = function (value, context) {
    if (isPrimitive(value) && this.checker(value)) {
      return typeCheckSuccess();
    }

    var typeName = this.name === "Date" ? "Date or a unix milliseconds timestamp" : this.name;
    return typeCheckFailure(context, value, "Value is not a " + typeName);
  };

  return CoreType;
}(SimpleType);
/**
 * `types.string` - Creates a type that can only contain a string value.
 * This type is used for string values by default
 *
 * Example:
 * ```ts
 * const Person = types.model({
 *   firstName: types.string,
 *   lastName: "Doe"
 * })
 * ```
 */
// tslint:disable-next-line:variable-name


var string = new CoreType("string", TypeFlags.String, function (v) {
  return typeof v === "string";
});
/**
 * `types.number` - Creates a type that can only contain a numeric value.
 * This type is used for numeric values by default
 *
 * Example:
 * ```ts
 * const Vector = types.model({
 *   x: types.number,
 *   y: 1.5
 * })
 * ```
 */
// tslint:disable-next-line:variable-name

var number = new CoreType("number", TypeFlags.Number, function (v) {
  return typeof v === "number";
});
/**
 * `types.integer` - Creates a type that can only contain an integer value.
 * This type is used for integer values by default
 *
 * Example:
 * ```ts
 * const Size = types.model({
 *   width: types.integer,
 *   height: 10
 * })
 * ```
 */
// tslint:disable-next-line:variable-name

var integer = new CoreType("integer", TypeFlags.Integer, function (v) {
  return isInteger(v);
});
/**
 * `types.boolean` - Creates a type that can only contain a boolean value.
 * This type is used for boolean values by default
 *
 * Example:
 * ```ts
 * const Thing = types.model({
 *   isCool: types.boolean,
 *   isAwesome: false
 * })
 * ```
 */
// tslint:disable-next-line:variable-name

var boolean = new CoreType("boolean", TypeFlags.Boolean, function (v) {
  return typeof v === "boolean";
});
/**
 * `types.null` - The type of the value `null`
 */

var nullType = new CoreType("null", TypeFlags.Null, function (v) {
  return v === null;
});
/**
 * `types.undefined` - The type of the value `undefined`
 */

var undefinedType = new CoreType("undefined", TypeFlags.Undefined, function (v) {
  return v === undefined;
});

var _DatePrimitive = new CoreType("Date", TypeFlags.Date, function (v) {
  return typeof v === "number" || v instanceof Date;
}, function (v) {
  return v instanceof Date ? v : new Date(v);
});

_DatePrimitive.getSnapshot = function (node) {
  return node.storedValue.getTime();
};
/**
 * `types.Date` - Creates a type that can only contain a javascript Date value.
 *
 * Example:
 * ```ts
 * const LogLine = types.model({
 *   timestamp: types.Date,
 * })
 *
 * LogLine.create({ timestamp: new Date() })
 * ```
 */


var DatePrimitive = _DatePrimitive;
/**
 * @internal
 * @hidden
 */

function getPrimitiveFactoryFromValue(value) {
  switch (typeof value) {
    case "string":
      return string;

    case "number":
      return number;
    // In the future, isInteger(value) ? integer : number would be interesting, but would be too breaking for now

    case "boolean":
      return boolean;

    case "object":
      if (value instanceof Date) return DatePrimitive;
  }

  throw fail$1("Cannot determine primitive type from value " + value);
}
/**
 * Returns if a given value represents a primitive type.
 *
 * @param type
 * @returns
 */


function isPrimitiveType(type) {
  return isType(type) && (type.flags & (TypeFlags.String | TypeFlags.Number | TypeFlags.Integer | TypeFlags.Boolean | TypeFlags.Date)) > 0;
}
/**
 * @internal
 * @hidden
 */


var Literal =
/** @class */
function (_super) {
  __extends(Literal, _super);

  function Literal(value) {
    var _this = _super.call(this, JSON.stringify(value)) || this;

    _this.flags = TypeFlags.Literal;
    _this.value = value;
    return _this;
  }

  Literal.prototype.instantiate = function (parent, subpath, environment, initialValue) {
    return createScalarNode(this, parent, subpath, environment, initialValue);
  };

  Literal.prototype.describe = function () {
    return JSON.stringify(this.value);
  };

  Literal.prototype.isValidSnapshot = function (value, context) {
    if (isPrimitive(value) && value === this.value) {
      return typeCheckSuccess();
    }

    return typeCheckFailure(context, value, "Value is not a literal " + JSON.stringify(this.value));
  };

  return Literal;
}(SimpleType);
/**
 * `types.literal` - The literal type will return a type that will match only the exact given type.
 * The given value must be a primitive, in order to be serialized to a snapshot correctly.
 * You can use literal to match exact strings for example the exact male or female string.
 *
 * Example:
 * ```ts
 * const Person = types.model({
 *     name: types.string,
 *     gender: types.union(types.literal('male'), types.literal('female'))
 * })
 * ```
 *
 * @param value The value to use in the strict equal check
 * @returns
 */


function literal(value) {
  // check that the given value is a primitive
  assertArg(value, isPrimitive, "primitive", 1);
  return new Literal(value);
}
/**
 * Returns if a given value represents a literal type.
 *
 * @param type
 * @returns
 */


function isLiteralType(type) {
  return isType(type) && (type.flags & TypeFlags.Literal) > 0;
}

var Refinement =
/** @class */
function (_super) {
  __extends(Refinement, _super);

  function Refinement(name, _subtype, _predicate, _message) {
    var _this = _super.call(this, name) || this;

    _this._subtype = _subtype;
    _this._predicate = _predicate;
    _this._message = _message;
    return _this;
  }

  Object.defineProperty(Refinement.prototype, "flags", {
    get: function () {
      return this._subtype.flags | TypeFlags.Refinement;
    },
    enumerable: true,
    configurable: true
  });

  Refinement.prototype.describe = function () {
    return this.name;
  };

  Refinement.prototype.instantiate = function (parent, subpath, environment, initialValue) {
    // create the child type
    return this._subtype.instantiate(parent, subpath, environment, initialValue);
  };

  Refinement.prototype.isAssignableFrom = function (type) {
    return this._subtype.isAssignableFrom(type);
  };

  Refinement.prototype.isValidSnapshot = function (value, context) {
    var subtypeErrors = this._subtype.validate(value, context);

    if (subtypeErrors.length > 0) return subtypeErrors;
    var snapshot = isStateTreeNode(value) ? getStateTreeNode(value).snapshot : value;

    if (!this._predicate(snapshot)) {
      return typeCheckFailure(context, value, this._message(value));
    }

    return typeCheckSuccess();
  };

  Refinement.prototype.reconcile = function (current, newValue, parent, subpath) {
    return this._subtype.reconcile(current, newValue, parent, subpath);
  };

  Refinement.prototype.getSubTypes = function () {
    return this._subtype;
  };

  return Refinement;
}(BaseType);
/**
 * `types.refinement` - Creates a type that is more specific than the base type, e.g. `types.refinement(types.string, value => value.length > 5)` to create a type of strings that can only be longer then 5.
 *
 * @param name
 * @param type
 * @param predicate
 * @returns
 */


function refinement() {
  var args = [];

  for (var _i = 0; _i < arguments.length; _i++) {
    args[_i] = arguments[_i];
  }

  var name = typeof args[0] === "string" ? args.shift() : isType(args[0]) ? args[0].name : null;
  var type = args[0];
  var predicate = args[1];
  var message = args[2] ? args[2] : function (v) {
    return "Value does not respect the refinement predicate";
  }; // ensures all parameters are correct

  assertIsType(type, [1, 2]);
  assertIsString(name, 1);
  assertIsFunction(predicate, [2, 3]);
  assertIsFunction(message, [3, 4]);
  return new Refinement(name, type, predicate, message);
}
/**
 * Returns if a given value is a refinement type.
 *
 * @param type
 * @returns
 */


function isRefinementType(type) {
  return (type.flags & TypeFlags.Refinement) > 0;
}
/**
 * `types.enumeration` - Can be used to create an string based enumeration.
 * (note: this methods is just sugar for a union of string literals)
 *
 * Example:
 * ```ts
 * const TrafficLight = types.model({
 *   color: types.enumeration("Color", ["Red", "Orange", "Green"])
 * })
 * ```
 *
 * @param name descriptive name of the enumeration (optional)
 * @param options possible values this enumeration can have
 * @returns
 */


function enumeration(name, options) {
  var realOptions = typeof name === "string" ? options : name; // check all options

  if (devMode()) {
    realOptions.forEach(function (option, i) {
      assertIsString(option, i + 1);
    });
  }

  var type = union.apply(void 0, __spread(realOptions.map(function (option) {
    return literal("" + option);
  })));
  if (typeof name === "string") type.name = name;
  return type;
}
/**
 * @internal
 * @hidden
 */


var Union =
/** @class */
function (_super) {
  __extends(Union, _super);

  function Union(name, _types, options) {
    var _this = _super.call(this, name) || this;

    _this._types = _types;
    _this._eager = true;
    options = __assign({
      eager: true,
      dispatcher: undefined
    }, options);
    _this._dispatcher = options.dispatcher;
    if (!options.eager) _this._eager = false;
    return _this;
  }

  Object.defineProperty(Union.prototype, "flags", {
    get: function () {
      var result = TypeFlags.Union;

      this._types.forEach(function (type) {
        result |= type.flags;
      });

      return result;
    },
    enumerable: true,
    configurable: true
  });

  Union.prototype.isAssignableFrom = function (type) {
    return this._types.some(function (subType) {
      return subType.isAssignableFrom(type);
    });
  };

  Union.prototype.describe = function () {
    return "(" + this._types.map(function (factory) {
      return factory.describe();
    }).join(" | ") + ")";
  };

  Union.prototype.instantiate = function (parent, subpath, environment, initialValue) {
    var type = this.determineType(initialValue, undefined);
    if (!type) throw fail$1("No matching type for union " + this.describe()); // can happen in prod builds

    return type.instantiate(parent, subpath, environment, initialValue);
  };

  Union.prototype.reconcile = function (current, newValue, parent, subpath) {
    var type = this.determineType(newValue, current.type);
    if (!type) throw fail$1("No matching type for union " + this.describe()); // can happen in prod builds

    return type.reconcile(current, newValue, parent, subpath);
  };

  Union.prototype.determineType = function (value, reconcileCurrentType) {
    // try the dispatcher, if defined
    if (this._dispatcher) {
      return this._dispatcher(value);
    } // find the most accomodating type
    // if we are using reconciliation try the current node type first (fix for #1045)


    if (reconcileCurrentType) {
      if (reconcileCurrentType.is(value)) {
        return reconcileCurrentType;
      }

      return this._types.filter(function (t) {
        return t !== reconcileCurrentType;
      }).find(function (type) {
        return type.is(value);
      });
    } else {
      return this._types.find(function (type) {
        return type.is(value);
      });
    }
  };

  Union.prototype.isValidSnapshot = function (value, context) {
    if (this._dispatcher) {
      return this._dispatcher(value).validate(value, context);
    }

    var allErrors = [];
    var applicableTypes = 0;

    for (var i = 0; i < this._types.length; i++) {
      var type = this._types[i];
      var errors = type.validate(value, context);

      if (errors.length === 0) {
        if (this._eager) return typeCheckSuccess();else applicableTypes++;
      } else {
        allErrors.push(errors);
      }
    }

    if (applicableTypes === 1) return typeCheckSuccess();
    return typeCheckFailure(context, value, "No type is applicable for the union").concat(flattenTypeErrors(allErrors));
  };

  Union.prototype.getSubTypes = function () {
    return this._types;
  };

  return Union;
}(BaseType);
/**
 * `types.union` - Create a union of multiple types. If the correct type cannot be inferred unambiguously from a snapshot, provide a dispatcher function of the form `(snapshot) => Type`.
 *
 * @param optionsOrType
 * @param otherTypes
 * @returns
 */


function union(optionsOrType) {
  var otherTypes = [];

  for (var _i = 1; _i < arguments.length; _i++) {
    otherTypes[_i - 1] = arguments[_i];
  }

  var options = isType(optionsOrType) ? undefined : optionsOrType;
  var types = isType(optionsOrType) ? __spread([optionsOrType], otherTypes) : otherTypes;
  var name = "(" + types.map(function (type) {
    return type.name;
  }).join(" | ") + ")"; // check all options

  if (devMode()) {
    if (options) {
      assertArg(options, function (o) {
        return isPlainObject(o);
      }, "object { eager?: boolean, dispatcher?: Function }", 1);
    }

    types.forEach(function (type, i) {
      assertIsType(type, options ? i + 2 : i + 1);
    });
  }

  return new Union(name, types, options);
}
/**
 * Returns if a given value represents a union type.
 *
 * @param type
 * @returns
 */


function isUnionType(type) {
  return (type.flags & TypeFlags.Union) > 0;
}
/**
 * @hidden
 * @internal
 */


var OptionalValue =
/** @class */
function (_super) {
  __extends(OptionalValue, _super);

  function OptionalValue(_subtype, _defaultValue, optionalValues) {
    var _this = _super.call(this, _subtype.name) || this;

    _this._subtype = _subtype;
    _this._defaultValue = _defaultValue;
    _this.optionalValues = optionalValues;
    return _this;
  }

  Object.defineProperty(OptionalValue.prototype, "flags", {
    get: function () {
      return this._subtype.flags | TypeFlags.Optional;
    },
    enumerable: true,
    configurable: true
  });

  OptionalValue.prototype.describe = function () {
    return this._subtype.describe() + "?";
  };

  OptionalValue.prototype.instantiate = function (parent, subpath, environment, initialValue) {
    if (this.optionalValues.indexOf(initialValue) >= 0) {
      var defaultInstanceOrSnapshot = this.getDefaultInstanceOrSnapshot();
      return this._subtype.instantiate(parent, subpath, environment, defaultInstanceOrSnapshot);
    }

    return this._subtype.instantiate(parent, subpath, environment, initialValue);
  };

  OptionalValue.prototype.reconcile = function (current, newValue, parent, subpath) {
    return this._subtype.reconcile(current, this.optionalValues.indexOf(newValue) < 0 && this._subtype.is(newValue) ? newValue : this.getDefaultInstanceOrSnapshot(), parent, subpath);
  };

  OptionalValue.prototype.getDefaultInstanceOrSnapshot = function () {
    var defaultInstanceOrSnapshot = typeof this._defaultValue === "function" ? this._defaultValue() : this._defaultValue; // while static values are already snapshots and checked on types.optional
    // generator functions must always be rechecked just in case

    if (typeof this._defaultValue === "function") {
      typecheckInternal(this, defaultInstanceOrSnapshot);
    }

    return defaultInstanceOrSnapshot;
  };

  OptionalValue.prototype.isValidSnapshot = function (value, context) {
    // defaulted values can be skipped
    if (this.optionalValues.indexOf(value) >= 0) {
      return typeCheckSuccess();
    } // bounce validation to the sub-type


    return this._subtype.validate(value, context);
  };

  OptionalValue.prototype.isAssignableFrom = function (type) {
    return this._subtype.isAssignableFrom(type);
  };

  OptionalValue.prototype.getSubTypes = function () {
    return this._subtype;
  };

  return OptionalValue;
}(BaseType);

function checkOptionalPreconditions(type, defaultValueOrFunction) {
  // make sure we never pass direct instances
  if (typeof defaultValueOrFunction !== "function" && isStateTreeNode(defaultValueOrFunction)) {
    throw fail$1("default value cannot be an instance, pass a snapshot or a function that creates an instance/snapshot instead");
  }

  assertIsType(type, 1);

  if (devMode()) {
    // we only check default values if they are passed directly
    // if they are generator functions they will be checked once they are generated
    // we don't check generator function results here to avoid generating a node just for type-checking purposes
    // which might generate side-effects
    if (typeof defaultValueOrFunction !== "function") {
      typecheckInternal(type, defaultValueOrFunction);
    }
  }
}
/**
 * `types.optional` - Can be used to create a property with a default value.
 *
 * Depending on the third argument (`optionalValues`) there are two ways of operation:
 * - If the argument is not provided, then if a value is not provided in the snapshot (`undefined` or missing),
 *   it will default to the provided `defaultValue`
 * - If the argument is provided, then if the value in the snapshot matches one of the optional values inside the array then it will
 *   default to the provided `defaultValue`. Additionally, if one of the optional values inside the array is `undefined` then a missing
 *   property is also valid.
 *
 *   Note that it is also possible to include values of the same type as the intended subtype as optional values,
 *   in this case the optional value will be transformed into the `defaultValue` (e.g. `types.optional(types.string, "unnamed", [undefined, ""])`
 *   will transform the snapshot values `undefined` (and therefore missing) and empty strings into the string `"unnamed"` when it gets
 *   instantiated).
 *
 * If `defaultValue` is a function, the function will be invoked for every new instance.
 * Applying a snapshot in which the optional value is one of the optional values (or `undefined`/_not_ present if none are provided) causes the
 * value to be reset.
 *
 * Example:
 * ```ts
 * const Todo = types.model({
 *   title: types.string,
 *   subtitle1: types.optional(types.string, "", [null]),
 *   subtitle2: types.optional(types.string, "", [null, undefined]),
 *   done: types.optional(types.boolean, false),
 *   created: types.optional(types.Date, () => new Date()),
 * })
 *
 * // if done is missing / undefined it will become false
 * // if created is missing / undefined it will get a freshly generated timestamp
 * // if subtitle1 is null it will default to "", but it cannot be missing or undefined
 * // if subtitle2 is null or undefined it will default to ""; since it can be undefined it can also be missing
 * const todo = Todo.create({ title: "Get coffee", subtitle1: null })
 * ```
 *
 * @param type
 * @param defaultValueOrFunction
 * @param optionalValues an optional array with zero or more primitive values (string, number, boolean, null or undefined)
 *                       that will be converted into the default. `[ undefined ]` is assumed when none is provided
 * @returns
 */


function optional(type, defaultValueOrFunction, optionalValues) {
  checkOptionalPreconditions(type, defaultValueOrFunction);
  return new OptionalValue(type, defaultValueOrFunction, optionalValues ? optionalValues : undefinedAsOptionalValues);
}

var undefinedAsOptionalValues = [undefined];
/**
 * Returns if a value represents an optional type.
 *
 * @template IT
 * @param type
 * @returns
 */

function isOptionalType(type) {
  return isType(type) && (type.flags & TypeFlags.Optional) > 0;
}

var optionalUndefinedType = optional(undefinedType, undefined);
var optionalNullType = optional(nullType, null);
/**
 * `types.maybe` - Maybe will make a type nullable, and also optional.
 * The value `undefined` will be used to represent nullability.
 *
 * @param type
 * @returns
 */

function maybe(type) {
  assertIsType(type, 1);
  return union(type, optionalUndefinedType);
}
/**
 * `types.maybeNull` - Maybe will make a type nullable, and also optional.
 * The value `null` will be used to represent no value.
 *
 * @param type
 * @returns
 */


function maybeNull(type) {
  assertIsType(type, 1);
  return union(type, optionalNullType);
}

var Late =
/** @class */
function (_super) {
  __extends(Late, _super);

  function Late(name, _definition) {
    var _this = _super.call(this, name) || this;

    _this._definition = _definition;
    return _this;
  }

  Object.defineProperty(Late.prototype, "flags", {
    get: function () {
      return (this._subType ? this._subType.flags : 0) | TypeFlags.Late;
    },
    enumerable: true,
    configurable: true
  });

  Late.prototype.getSubType = function (mustSucceed) {
    if (!this._subType) {
      var t = undefined;

      try {
        t = this._definition();
      } catch (e) {
        if (e instanceof ReferenceError) // can happen in strict ES5 code when a definition is self refering
          t = undefined;else throw e;
      }

      if (mustSucceed && t === undefined) throw fail$1("Late type seems to be used too early, the definition (still) returns undefined");

      if (t) {
        if (devMode() && !isType(t)) throw fail$1("Failed to determine subtype, make sure types.late returns a type definition.");
        this._subType = t;
      }
    }

    return this._subType;
  };

  Late.prototype.instantiate = function (parent, subpath, environment, initialValue) {
    return this.getSubType(true).instantiate(parent, subpath, environment, initialValue);
  };

  Late.prototype.reconcile = function (current, newValue, parent, subpath) {
    return this.getSubType(true).reconcile(current, newValue, parent, subpath);
  };

  Late.prototype.describe = function () {
    var t = this.getSubType(false);
    return t ? t.name : "<uknown late type>";
  };

  Late.prototype.isValidSnapshot = function (value, context) {
    var t = this.getSubType(false);

    if (!t) {
      // See #916; the variable the definition closure is pointing to wasn't defined yet, so can't be evaluted yet here
      return typeCheckSuccess();
    }

    return t.validate(value, context);
  };

  Late.prototype.isAssignableFrom = function (type) {
    var t = this.getSubType(false);
    return t ? t.isAssignableFrom(type) : false;
  };

  Late.prototype.getSubTypes = function () {
    var subtype = this.getSubType(false);
    return subtype ? subtype : cannotDetermineSubtype;
  };

  return Late;
}(BaseType);
/**
 * `types.late` - Defines a type that gets implemented later. This is useful when you have to deal with circular dependencies.
 * Please notice that when defining circular dependencies TypeScript isn't smart enough to inference them.
 *
 * Example:
 * ```ts
 *   // TypeScript isn't smart enough to infer self referencing types.
 *  const Node = types.model({
 *       children: types.array(types.late((): IAnyModelType => Node)) // then typecast each array element to Instance<typeof Node>
 *  })
 * ```
 *
 * @param name The name to use for the type that will be returned.
 * @param type A function that returns the type that will be defined.
 * @returns
 */


function late(nameOrType, maybeType) {
  var name = typeof nameOrType === "string" ? nameOrType : "late(" + nameOrType.toString() + ")";
  var type = typeof nameOrType === "string" ? maybeType : nameOrType; // checks that the type is actually a late type

  if (devMode()) {
    if (!(typeof type === "function" && type.length === 0)) throw fail$1("Invalid late type, expected a function with zero arguments that returns a type, got: " + type);
  }

  return new Late(name, type);
}
/**
 * Returns if a given value represents a late type.
 *
 * @param type
 * @returns
 */


function isLateType(type) {
  return isType(type) && (type.flags & TypeFlags.Late) > 0;
}
/**
 * @internal
 * @hidden
 */


var Frozen =
/** @class */
function (_super) {
  __extends(Frozen, _super);

  function Frozen(subType) {
    var _this = _super.call(this, subType ? "frozen(" + subType.name + ")" : "frozen") || this;

    _this.subType = subType;
    _this.flags = TypeFlags.Frozen;
    return _this;
  }

  Frozen.prototype.describe = function () {
    return "<any immutable value>";
  };

  Frozen.prototype.instantiate = function (parent, subpath, environment, value) {
    // create the node
    return createScalarNode(this, parent, subpath, environment, deepFreeze(value));
  };

  Frozen.prototype.isValidSnapshot = function (value, context) {
    if (!isSerializable(value)) {
      return typeCheckFailure(context, value, "Value is not serializable and cannot be frozen");
    }

    if (this.subType) return this.subType.validate(value, context);
    return typeCheckSuccess();
  };

  return Frozen;
}(SimpleType);

var untypedFrozenInstance = new Frozen();
/**
 * `types.frozen` - Frozen can be used to store any value that is serializable in itself (that is valid JSON).
 * Frozen values need to be immutable or treated as if immutable. They need be serializable as well.
 * Values stored in frozen will snapshotted as-is by MST, and internal changes will not be tracked.
 *
 * This is useful to store complex, but immutable values like vectors etc. It can form a powerful bridge to parts of your application that should be immutable, or that assume data to be immutable.
 *
 * Note: if you want to store free-form state that is mutable, or not serializeable, consider using volatile state instead.
 *
 * Frozen properties can be defined in three different ways
 * 1. `types.frozen(SubType)` - provide a valid MST type and frozen will check if the provided data conforms the snapshot for that type
 * 2. `types.frozen({ someDefaultValue: true})` - provide a primitive value, object or array, and MST will infer the type from that object, and also make it the default value for the field
 * 3. `types.frozen<TypeScriptType>()` - provide a typescript type, to help in strongly typing the field (design time only)
 *
 * Example:
 * ```ts
 * const GameCharacter = types.model({
 *   name: string,
 *   location: types.frozen({ x: 0, y: 0})
 * })
 *
 * const hero = GameCharacter.create({
 *   name: "Mario",
 *   location: { x: 7, y: 4 }
 * })
 *
 * hero.location = { x: 10, y: 2 } // OK
 * hero.location.x = 7 // Not ok!
 * ```
 *
 * ```ts
 * type Point = { x: number, y: number }
 *    const Mouse = types.model({
 *         loc: types.frozen<Point>()
 *    })
 * ```
 *
 * @param defaultValueOrType
 * @returns
 */

function frozen(arg) {
  if (arguments.length === 0) return untypedFrozenInstance;else if (isType(arg)) return new Frozen(arg);else return optional(untypedFrozenInstance, arg);
}
/**
 * Returns if a given value represents a frozen type.
 *
 * @param type
 * @returns
 */


function isFrozenType(type) {
  return isType(type) && (type.flags & TypeFlags.Frozen) > 0;
}

function getInvalidationCause(hook) {
  switch (hook) {
    case Hook.beforeDestroy:
      return "destroy";

    case Hook.beforeDetach:
      return "detach";

    default:
      return undefined;
  }
}

var StoredReference =
/** @class */
function () {
  function StoredReference(value, targetType) {
    this.targetType = targetType;

    if (isValidIdentifier(value)) {
      this.identifier = value;
    } else if (isStateTreeNode(value)) {
      var targetNode = getStateTreeNode(value);
      if (!targetNode.identifierAttribute) throw fail$1("Can only store references with a defined identifier attribute.");
      var id = targetNode.unnormalizedIdentifier;

      if (id === null || id === undefined) {
        throw fail$1("Can only store references to tree nodes with a defined identifier.");
      }

      this.identifier = id;
    } else {
      throw fail$1("Can only store references to tree nodes or identifiers, got: '" + value + "'");
    }
  }

  StoredReference.prototype.updateResolvedReference = function (node) {
    var normalizedId = normalizeIdentifier(this.identifier);
    var root = node.root;
    var lastCacheModification = root.identifierCache.getLastCacheModificationPerId(normalizedId);

    if (!this.resolvedReference || this.resolvedReference.lastCacheModification !== lastCacheModification) {
      var targetType = this.targetType; // reference was initialized with the identifier of the target

      var target = root.identifierCache.resolve(targetType, normalizedId);

      if (!target) {
        throw new InvalidReferenceError("[mobx-state-tree] Failed to resolve reference '" + this.identifier + "' to type '" + this.targetType.name + "' (from node: " + node.path + ")");
      }

      this.resolvedReference = {
        node: target,
        lastCacheModification: lastCacheModification
      };
    }
  };

  Object.defineProperty(StoredReference.prototype, "resolvedValue", {
    get: function () {
      this.updateResolvedReference(this.node);
      return this.resolvedReference.node.value;
    },
    enumerable: true,
    configurable: true
  });
  return StoredReference;
}();
/**
 * @internal
 * @hidden
 */


var InvalidReferenceError =
/** @class */
function (_super) {
  __extends(InvalidReferenceError, _super);

  function InvalidReferenceError(m) {
    var _this = _super.call(this, m) || this;

    Object.setPrototypeOf(_this, InvalidReferenceError.prototype);
    return _this;
  }

  return InvalidReferenceError;
}(Error);
/**
 * @internal
 * @hidden
 */


var BaseReferenceType =
/** @class */
function (_super) {
  __extends(BaseReferenceType, _super);

  function BaseReferenceType(targetType, onInvalidated) {
    var _this = _super.call(this, "reference(" + targetType.name + ")") || this;

    _this.targetType = targetType;
    _this.onInvalidated = onInvalidated;
    _this.flags = TypeFlags.Reference;
    return _this;
  }

  BaseReferenceType.prototype.describe = function () {
    return this.name;
  };

  BaseReferenceType.prototype.isAssignableFrom = function (type) {
    return this.targetType.isAssignableFrom(type);
  };

  BaseReferenceType.prototype.isValidSnapshot = function (value, context) {
    return isValidIdentifier(value) ? typeCheckSuccess() : typeCheckFailure(context, value, "Value is not a valid identifier, which is a string or a number");
  };

  BaseReferenceType.prototype.fireInvalidated = function (cause, storedRefNode, referenceId, refTargetNode) {
    // to actually invalidate a reference we need an alive parent,
    // since it is a scalar value (immutable-ish) and we need to change it
    // from the parent
    var storedRefParentNode = storedRefNode.parent;

    if (!storedRefParentNode || !storedRefParentNode.isAlive) {
      return;
    }

    var storedRefParentValue = storedRefParentNode.storedValue;

    if (!storedRefParentValue) {
      return;
    }

    this.onInvalidated({
      cause: cause,
      parent: storedRefParentValue,
      invalidTarget: refTargetNode ? refTargetNode.storedValue : undefined,
      invalidId: referenceId,
      replaceRef: function (newRef) {
        applyPatch(storedRefNode.root.storedValue, {
          op: "replace",
          value: newRef,
          path: storedRefNode.path
        });
      },
      removeRef: function () {
        if (isModelType(storedRefParentNode.type)) {
          this.replaceRef(undefined);
        } else {
          applyPatch(storedRefNode.root.storedValue, {
            op: "remove",
            path: storedRefNode.path
          });
        }
      }
    });
  };

  BaseReferenceType.prototype.addTargetNodeWatcher = function (storedRefNode, referenceId) {
    var _this = this; // this will make sure the target node becomes created


    var refTargetValue = this.getValue(storedRefNode);

    if (!refTargetValue) {
      return undefined;
    }

    var refTargetNode = getStateTreeNode(refTargetValue);

    var hookHandler = function (_, refTargetNodeHook) {
      var cause = getInvalidationCause(refTargetNodeHook);

      if (!cause) {
        return;
      }

      _this.fireInvalidated(cause, storedRefNode, referenceId, refTargetNode);
    };

    var refTargetDetachHookDisposer = refTargetNode.registerHook(Hook.beforeDetach, hookHandler);
    var refTargetDestroyHookDisposer = refTargetNode.registerHook(Hook.beforeDestroy, hookHandler);
    return function () {
      refTargetDetachHookDisposer();
      refTargetDestroyHookDisposer();
    };
  };

  BaseReferenceType.prototype.watchTargetNodeForInvalidations = function (storedRefNode, identifier, customGetSet) {
    var _this = this;

    if (!this.onInvalidated) {
      return;
    }

    var onRefTargetDestroyedHookDisposer; // get rid of the watcher hook when the stored ref node is destroyed
    // detached is ignored since scalar nodes (where the reference resides) cannot be detached

    storedRefNode.registerHook(Hook.beforeDestroy, function () {
      if (onRefTargetDestroyedHookDisposer) {
        onRefTargetDestroyedHookDisposer();
      }
    });

    var startWatching = function (sync) {
      // re-create hook in case the stored ref gets reattached
      if (onRefTargetDestroyedHookDisposer) {
        onRefTargetDestroyedHookDisposer();
      } // make sure the target node is actually there and initialized


      var storedRefParentNode = storedRefNode.parent;
      var storedRefParentValue = storedRefParentNode && storedRefParentNode.storedValue;

      if (storedRefParentNode && storedRefParentNode.isAlive && storedRefParentValue) {
        var refTargetNodeExists = void 0;

        if (customGetSet) {
          refTargetNodeExists = !!customGetSet.get(identifier, storedRefParentValue);
        } else {
          refTargetNodeExists = storedRefNode.root.identifierCache.has(_this.targetType, normalizeIdentifier(identifier));
        }

        if (!refTargetNodeExists) {
          // we cannot change the reference in sync mode
          // since we are in the middle of a reconciliation/instantiation and the change would be overwritten
          // for those cases just let the wrong reference be assigned and fail upon usage
          // (like current references do)
          // this means that effectively this code will only run when it is created from a snapshot
          if (!sync) {
            _this.fireInvalidated("invalidSnapshotReference", storedRefNode, identifier, null);
          }
        } else {
          onRefTargetDestroyedHookDisposer = _this.addTargetNodeWatcher(storedRefNode, identifier);
        }
      }
    };

    if (storedRefNode.state === NodeLifeCycle.FINALIZED) {
      // already attached, so the whole tree is ready
      startWatching(true);
    } else {
      if (!storedRefNode.isRoot) {
        // start watching once the whole tree is ready
        storedRefNode.root.registerHook(Hook.afterCreationFinalization, function () {
          // make sure to attach it so it can start listening
          if (storedRefNode.parent) {
            storedRefNode.parent.createObservableInstanceIfNeeded();
          }
        });
      } // start watching once the node is attached somewhere / parent changes


      storedRefNode.registerHook(Hook.afterAttach, function () {
        startWatching(false);
      });
    }
  };

  return BaseReferenceType;
}(SimpleType);
/**
 * @internal
 * @hidden
 */


var IdentifierReferenceType =
/** @class */
function (_super) {
  __extends(IdentifierReferenceType, _super);

  function IdentifierReferenceType(targetType, onInvalidated) {
    return _super.call(this, targetType, onInvalidated) || this;
  }

  IdentifierReferenceType.prototype.getValue = function (storedRefNode) {
    if (!storedRefNode.isAlive) return undefined;
    var storedRef = storedRefNode.storedValue;
    return storedRef.resolvedValue;
  };

  IdentifierReferenceType.prototype.getSnapshot = function (storedRefNode) {
    var ref = storedRefNode.storedValue;
    return ref.identifier;
  };

  IdentifierReferenceType.prototype.instantiate = function (parent, subpath, environment, initialValue) {
    var identifier = isStateTreeNode(initialValue) ? getIdentifier(initialValue) : initialValue;
    var storedRef = new StoredReference(initialValue, this.targetType);
    var storedRefNode = createScalarNode(this, parent, subpath, environment, storedRef);
    storedRef.node = storedRefNode;
    this.watchTargetNodeForInvalidations(storedRefNode, identifier, undefined);
    return storedRefNode;
  };

  IdentifierReferenceType.prototype.reconcile = function (current, newValue, parent, subpath) {
    if (!current.isDetaching && current.type === this) {
      var compareByValue = isStateTreeNode(newValue);
      var ref = current.storedValue;

      if (!compareByValue && ref.identifier === newValue || compareByValue && ref.resolvedValue === newValue) {
        current.setParent(parent, subpath);
        return current;
      }
    }

    var newNode = this.instantiate(parent, subpath, undefined, newValue);
    current.die(); // noop if detaching

    return newNode;
  };

  return IdentifierReferenceType;
}(BaseReferenceType);
/**
 * @internal
 * @hidden
 */


var CustomReferenceType =
/** @class */
function (_super) {
  __extends(CustomReferenceType, _super);

  function CustomReferenceType(targetType, options, onInvalidated) {
    var _this = _super.call(this, targetType, onInvalidated) || this;

    _this.options = options;
    return _this;
  }

  CustomReferenceType.prototype.getValue = function (storedRefNode) {
    if (!storedRefNode.isAlive) return undefined;
    var referencedNode = this.options.get(storedRefNode.storedValue, storedRefNode.parent ? storedRefNode.parent.storedValue : null);
    return referencedNode;
  };

  CustomReferenceType.prototype.getSnapshot = function (storedRefNode) {
    return storedRefNode.storedValue;
  };

  CustomReferenceType.prototype.instantiate = function (parent, subpath, environment, newValue) {
    var identifier = isStateTreeNode(newValue) ? this.options.set(newValue, parent ? parent.storedValue : null) : newValue;
    var storedRefNode = createScalarNode(this, parent, subpath, environment, identifier);
    this.watchTargetNodeForInvalidations(storedRefNode, identifier, this.options);
    return storedRefNode;
  };

  CustomReferenceType.prototype.reconcile = function (current, newValue, parent, subpath) {
    var newIdentifier = isStateTreeNode(newValue) ? this.options.set(newValue, current ? current.storedValue : null) : newValue;

    if (!current.isDetaching && current.type === this && current.storedValue === newIdentifier) {
      current.setParent(parent, subpath);
      return current;
    }

    var newNode = this.instantiate(parent, subpath, undefined, newIdentifier);
    current.die(); // noop if detaching

    return newNode;
  };

  return CustomReferenceType;
}(BaseReferenceType);
/**
 * `types.reference` - Creates a reference to another type, which should have defined an identifier.
 * See also the [reference and identifiers](https://github.com/mobxjs/mobx-state-tree#references-and-identifiers) section.
 */


function reference(subType, options) {
  assertIsType(subType, 1);

  if (devMode()) {
    if (arguments.length === 2 && typeof arguments[1] === "string") {
      // istanbul ignore next
      throw fail$1("References with base path are no longer supported. Please remove the base path.");
    }
  }

  var getSetOptions = options ? options : undefined;
  var onInvalidated = options ? options.onInvalidated : undefined;

  if (getSetOptions && (getSetOptions.get || getSetOptions.set)) {
    if (devMode()) {
      if (!getSetOptions.get || !getSetOptions.set) {
        throw fail$1("reference options must either contain both a 'get' and a 'set' method or none of them");
      }
    }

    return new CustomReferenceType(subType, {
      get: getSetOptions.get,
      set: getSetOptions.set
    }, onInvalidated);
  } else {
    return new IdentifierReferenceType(subType, onInvalidated);
  }
}
/**
 * Returns if a given value represents a reference type.
 *
 * @param type
 * @returns
 */


function isReferenceType(type) {
  return (type.flags & TypeFlags.Reference) > 0;
}
/**
 * `types.safeReference` - A safe reference is like a standard reference, except that it accepts the undefined value by default
 * and automatically sets itself to undefined (when the parent is a model) / removes itself from arrays and maps
 * when the reference it is pointing to gets detached/destroyed.
 *
 * The optional options parameter object accepts a parameter named `acceptsUndefined`, which is set to true by default, so it is suitable
 * for model properties.
 * When used inside collections (arrays/maps), it is recommended to set this option to false so it can't take undefined as value,
 * which is usually the desired in those cases.
 *
 * Strictly speaking it is a `types.maybe(types.reference(X))` (when `acceptsUndefined` is set to true, the default) and
 * `types.reference(X)` (when `acceptsUndefined` is set to false), both of them with a customized `onInvalidated` option.
 *
 * @param subType
 * @param options
 * @returns
 */


function safeReference(subType, options) {
  var refType = reference(subType, __assign(__assign({}, options), {
    onInvalidated: function (ev) {
      ev.removeRef();
    }
  }));

  if (options && options.acceptsUndefined === false) {
    return refType;
  } else {
    return maybe(refType);
  }
}

var BaseIdentifierType =
/** @class */
function (_super) {
  __extends(BaseIdentifierType, _super);

  function BaseIdentifierType(name, validType) {
    var _this = _super.call(this, name) || this;

    _this.validType = validType;
    _this.flags = TypeFlags.Identifier;
    return _this;
  }

  BaseIdentifierType.prototype.instantiate = function (parent, subpath, environment, initialValue) {
    if (!parent || !(parent.type instanceof ModelType)) throw fail$1("Identifier types can only be instantiated as direct child of a model type");
    return createScalarNode(this, parent, subpath, environment, initialValue);
  };

  BaseIdentifierType.prototype.reconcile = function (current, newValue, parent, subpath) {
    // we don't consider detaching here since identifier are scalar nodes, and scalar nodes cannot be detached
    if (current.storedValue !== newValue) throw fail$1("Tried to change identifier from '" + current.storedValue + "' to '" + newValue + "'. Changing identifiers is not allowed.");
    current.setParent(parent, subpath);
    return current;
  };

  BaseIdentifierType.prototype.isValidSnapshot = function (value, context) {
    if (typeof value !== this.validType) {
      return typeCheckFailure(context, value, "Value is not a valid " + this.describe() + ", expected a " + this.validType);
    }

    return typeCheckSuccess();
  };

  return BaseIdentifierType;
}(SimpleType);
/**
 * @internal
 * @hidden
 */


var IdentifierType =
/** @class */
function (_super) {
  __extends(IdentifierType, _super);

  function IdentifierType() {
    var _this = _super.call(this, "identifier", "string") || this;

    _this.flags = TypeFlags.Identifier;
    return _this;
  }

  IdentifierType.prototype.describe = function () {
    return "identifier";
  };

  return IdentifierType;
}(BaseIdentifierType);
/**
 * @internal
 * @hidden
 */


var IdentifierNumberType =
/** @class */
function (_super) {
  __extends(IdentifierNumberType, _super);

  function IdentifierNumberType() {
    return _super.call(this, "identifierNumber", "number") || this;
  }

  IdentifierNumberType.prototype.getSnapshot = function (node) {
    return node.storedValue;
  };

  IdentifierNumberType.prototype.describe = function () {
    return "identifierNumber";
  };

  return IdentifierNumberType;
}(BaseIdentifierType);
/**
 * `types.identifier` - Identifiers are used to make references, lifecycle events and reconciling works.
 * Inside a state tree, for each type can exist only one instance for each given identifier.
 * For example there couldn't be 2 instances of user with id 1. If you need more, consider using references.
 * Identifier can be used only as type property of a model.
 * This type accepts as parameter the value type of the identifier field that can be either string or number.
 *
 * Example:
 * ```ts
 *  const Todo = types.model("Todo", {
 *      id: types.identifier,
 *      title: types.string
 *  })
 * ```
 *
 * @returns
 */


var identifier = new IdentifierType();
/**
 * `types.identifierNumber` - Similar to `types.identifier`. This one will serialize from / to a number when applying snapshots
 *
 * Example:
 * ```ts
 *  const Todo = types.model("Todo", {
 *      id: types.identifierNumber,
 *      title: types.string
 *  })
 * ```
 *
 * @returns
 */

var identifierNumber = new IdentifierNumberType();
/**
 * Returns if a given value represents an identifier type.
 *
 * @param type
 * @returns
 */

function isIdentifierType(type) {
  return isType(type) && (type.flags & TypeFlags.Identifier) > 0;
}
/**
 * @internal
 * @hidden
 */


function normalizeIdentifier(id) {
  return "" + id;
}
/**
 * @internal
 * @hidden
 */


function isValidIdentifier(id) {
  return typeof id === "string" || typeof id === "number";
}
/**
 * @internal
 * @hidden
 */


function assertIsValidIdentifier(id, argNumber) {
  assertArg(id, isValidIdentifier, "string or number (identifier)", argNumber);
}
/**
 * `types.custom` - Creates a custom type. Custom types can be used for arbitrary immutable values, that have a serializable representation. For example, to create your own Date representation, Decimal type etc.
 *
 * The signature of the options is:
 * ```ts
 * export interface CustomTypeOptions<S, T> {
 *     // Friendly name
 *     name: string
 *     // given a serialized value, how to turn it into the target type
 *     fromSnapshot(snapshot: S): T
 *     // return the serialization of the current value
 *     toSnapshot(value: T): S
 *     // if true, this is a converted value, if false, it's a snapshot
 *     isTargetType(value: T | S): value is T
 *     // a non empty string is assumed to be a validation error
 *     getValidationMessage?(snapshot: S): string
 * }
 * ```
 *
 * Example:
 * ```ts
 * const DecimalPrimitive = types.custom<string, Decimal>({
 *     name: "Decimal",
 *     fromSnapshot(value: string) {
 *         return new Decimal(value)
 *     },
 *     toSnapshot(value: Decimal) {
 *         return value.toString()
 *     },
 *     isTargetType(value: string | Decimal): boolean {
 *         return value instanceof Decimal
 *     },
 *     getValidationMessage(value: string): string {
 *         if (/^-?\d+\.\d+$/.test(value)) return "" // OK
 *         return `'${value}' doesn't look like a valid decimal number`
 *     }
 * })
 *
 * const Wallet = types.model({
 *     balance: DecimalPrimitive
 * })
 * ```
 *
 * @param options
 * @returns
 */


function custom(options) {
  return new CustomType(options);
}
/**
 * @internal
 * @hidden
 */


var CustomType =
/** @class */
function (_super) {
  __extends(CustomType, _super);

  function CustomType(options) {
    var _this = _super.call(this, options.name) || this;

    _this.options = options;
    _this.flags = TypeFlags.Custom;
    return _this;
  }

  CustomType.prototype.describe = function () {
    return this.name;
  };

  CustomType.prototype.isValidSnapshot = function (value, context) {
    if (this.options.isTargetType(value)) return typeCheckSuccess();
    var typeError = this.options.getValidationMessage(value);

    if (typeError) {
      return typeCheckFailure(context, value, "Invalid value for type '" + this.name + "': " + typeError);
    }

    return typeCheckSuccess();
  };

  CustomType.prototype.getSnapshot = function (node) {
    return this.options.toSnapshot(node.storedValue);
  };

  CustomType.prototype.instantiate = function (parent, subpath, environment, initialValue) {
    var valueToStore = this.options.isTargetType(initialValue) ? initialValue : this.options.fromSnapshot(initialValue);
    return createScalarNode(this, parent, subpath, environment, valueToStore);
  };

  CustomType.prototype.reconcile = function (current, value, parent, subpath) {
    var isSnapshot = !this.options.isTargetType(value); // in theory customs use scalar nodes which cannot be detached, but still...

    if (!current.isDetaching) {
      var unchanged = current.type === this && (isSnapshot ? value === current.snapshot : value === current.storedValue);

      if (unchanged) {
        current.setParent(parent, subpath);
        return current;
      }
    }

    var valueToStore = isSnapshot ? this.options.fromSnapshot(value) : value;
    var newNode = this.instantiate(parent, subpath, undefined, valueToStore);
    current.die(); // noop if detaching

    return newNode;
  };

  return CustomType;
}(SimpleType); // we import the types to re-export them inside types.


var types = {
  enumeration: enumeration,
  model: model,
  compose: compose,
  custom: custom,
  reference: reference,
  safeReference: safeReference,
  union: union,
  optional: optional,
  literal: literal,
  maybe: maybe,
  maybeNull: maybeNull,
  refinement: refinement,
  string: string,
  boolean: boolean,
  number: number,
  integer: integer,
  Date: DatePrimitive,
  map: map,
  array: array,
  frozen: frozen,
  identifier: identifier,
  identifierNumber: identifierNumber,
  late: late,
  undefined: undefinedType,
  null: nullType,
  snapshotProcessor: snapshotProcessor
};

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("8oxB"), __webpack_require__("URgk").setImmediate))

/***/ }),

/***/ "9AQC":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return isDOMError; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return isDOMException; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return isElement; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return isError; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return isErrorEvent; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return isEvent; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return isInstanceOf; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return isNaN; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "i", function() { return isPlainObject; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "j", function() { return isPrimitive; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "k", function() { return isRegExp; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "l", function() { return isString; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "m", function() { return isSyntheticEvent; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "n", function() { return isThenable; });
// eslint-disable-next-line @typescript-eslint/unbound-method
const objectToString = Object.prototype.toString;
/**
 * Checks whether given value's type is one of a few Error or Error-like
 * {@link isError}.
 *
 * @param wat A value to be checked.
 * @returns A boolean representing the result.
 */

function isError(wat) {
  switch (objectToString.call(wat)) {
    case '[object Error]':
    case '[object Exception]':
    case '[object DOMException]':
      return true;

    default:
      return isInstanceOf(wat, Error);
  }
}
/**
 * Checks whether given value is an instance of the given built-in class.
 *
 * @param wat The value to be checked
 * @param className
 * @returns A boolean representing the result.
 */


function isBuiltin(wat, className) {
  return objectToString.call(wat) === `[object ${className}]`;
}
/**
 * Checks whether given value's type is ErrorEvent
 * {@link isErrorEvent}.
 *
 * @param wat A value to be checked.
 * @returns A boolean representing the result.
 */


function isErrorEvent(wat) {
  return isBuiltin(wat, 'ErrorEvent');
}
/**
 * Checks whether given value's type is DOMError
 * {@link isDOMError}.
 *
 * @param wat A value to be checked.
 * @returns A boolean representing the result.
 */


function isDOMError(wat) {
  return isBuiltin(wat, 'DOMError');
}
/**
 * Checks whether given value's type is DOMException
 * {@link isDOMException}.
 *
 * @param wat A value to be checked.
 * @returns A boolean representing the result.
 */


function isDOMException(wat) {
  return isBuiltin(wat, 'DOMException');
}
/**
 * Checks whether given value's type is a string
 * {@link isString}.
 *
 * @param wat A value to be checked.
 * @returns A boolean representing the result.
 */


function isString(wat) {
  return isBuiltin(wat, 'String');
}
/**
 * Checks whether given value is a primitive (undefined, null, number, boolean, string, bigint, symbol)
 * {@link isPrimitive}.
 *
 * @param wat A value to be checked.
 * @returns A boolean representing the result.
 */


function isPrimitive(wat) {
  return wat === null || typeof wat !== 'object' && typeof wat !== 'function';
}
/**
 * Checks whether given value's type is an object literal
 * {@link isPlainObject}.
 *
 * @param wat A value to be checked.
 * @returns A boolean representing the result.
 */


function isPlainObject(wat) {
  return isBuiltin(wat, 'Object');
}
/**
 * Checks whether given value's type is an Event instance
 * {@link isEvent}.
 *
 * @param wat A value to be checked.
 * @returns A boolean representing the result.
 */


function isEvent(wat) {
  return typeof Event !== 'undefined' && isInstanceOf(wat, Event);
}
/**
 * Checks whether given value's type is an Element instance
 * {@link isElement}.
 *
 * @param wat A value to be checked.
 * @returns A boolean representing the result.
 */


function isElement(wat) {
  return typeof Element !== 'undefined' && isInstanceOf(wat, Element);
}
/**
 * Checks whether given value's type is an regexp
 * {@link isRegExp}.
 *
 * @param wat A value to be checked.
 * @returns A boolean representing the result.
 */


function isRegExp(wat) {
  return isBuiltin(wat, 'RegExp');
}
/**
 * Checks whether given value has a then function.
 * @param wat A value to be checked.
 */


function isThenable(wat) {
  // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
  return Boolean(wat && wat.then && typeof wat.then === 'function');
}
/**
 * Checks whether given value's type is a SyntheticEvent
 * {@link isSyntheticEvent}.
 *
 * @param wat A value to be checked.
 * @returns A boolean representing the result.
 */


function isSyntheticEvent(wat) {
  return isPlainObject(wat) && 'nativeEvent' in wat && 'preventDefault' in wat && 'stopPropagation' in wat;
}
/**
 * Checks whether given value is NaN
 * {@link isNaN}.
 *
 * @param wat A value to be checked.
 * @returns A boolean representing the result.
 */


function isNaN(wat) {
  return typeof wat === 'number' && wat !== wat;
}
/**
 * Checks whether given value's type is an instance of provided constructor.
 * {@link isInstanceOf}.
 *
 * @param wat A value to be checked.
 * @param base A constructor to be used in a check.
 * @returns A boolean representing the result.
 */


function isInstanceOf(wat, base) {
  try {
    return wat instanceof base;
  } catch (_e) {
    return false;
  }
}



/***/ }),

/***/ "9BkY":
/***/ (function(module) {

module.exports = JSON.parse("{\"Clear search\":\"Vymazat hledání\"}");

/***/ }),

/***/ "9GDS":
/***/ (function(module, exports, __webpack_require__) {

var createHash = __webpack_require__("mObS");

var Buffer = __webpack_require__("hwdV").Buffer;

module.exports = function (seed, len) {
  var t = Buffer.alloc(0);
  var i = 0;
  var c;

  while (t.length < len) {
    c = i2ops(i++);
    t = Buffer.concat([t, createHash('sha1').update(seed).update(c).digest()]);
  }

  return t.slice(0, len);
};

function i2ops(c) {
  var out = Buffer.allocUnsafe(4);
  out.writeUInt32BE(c, 0);
  return out;
}

/***/ }),

/***/ "9Hzb":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXPORTS
__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ wrapAsset; });
__webpack_require__.d(__webpack_exports__, "c", function() { return /* binding */ wrapAssetList; });
__webpack_require__.d(__webpack_exports__, "d", function() { return /* binding */ wrapAssetSource; });
__webpack_require__.d(__webpack_exports__, "b", function() { return /* binding */ wrapAssetContext; });

// EXTERNAL MODULE: ./node_modules/@ccx-public/acpl-model-uxp-types/src/index.ts
var src = __webpack_require__("XQlG");

// EXTERNAL MODULE: ./node_modules/mobx/lib/mobx.module.js
var mobx_module = __webpack_require__("2vnA");

// CONCATENATED MODULE: ./node_modules/@ccx-public/acpl-model-mobx/src/ACPLAsset.ts
//
//  ADOBE CONFIDENTIAL
//  __________________
//
//  Copyright 2020 Adobe
//  All Rights Reserved.
//
//  NOTICE:  All information contained herein is, and remains
//  the property of Adobe and its suppliers, if any. The intellectual
//  and technical concepts contained herein are proprietary to Adobe
//  and its suppliers and are protected by all applicable intellectual
//  property laws, including trade secret and copyright laws.
//  Dissemination of this information or reproduction of this material
//  is strictly forbidden unless prior written permission is obtained
//  from Adobe.
//



class ACPLAsset_ACPLAsset {
    constructor(asset) {
        this._thumbnailValue = null;
        this._previewValue = null;
        this._forceThumbnailRequest = false;
        this._forcePreviewRequest = false;
        this._asset = asset;
        this._changeAtom = Object(mobx_module["n" /* createAtom */])('Asset.change');
        this._statusAtom = Object(mobx_module["n" /* createAtom */])('Asset.status');
        this._thumbnailAtom = Object(mobx_module["n" /* createAtom */])('Asset.thumbnail', () => this._requestThumbnail());
        this._previewAtom = Object(mobx_module["n" /* createAtom */])('Asset.preview', () => this._requestPreview());
    }
    // This is called by the ACPLAssetContext using ANY.
    _reportChanged() {
        this._changeAtom.reportChanged();
    }
    // This is called by the ACPLAssetContext using ANY.
    _reportPreviewChanged() {
        this._forceThumbnailRequest = true;
        this._forcePreviewRequest = true;
        this._thumbnailAtom.reportChanged();
        this._previewAtom.reportChanged();
    }
    _reportStatusChanged() {
        this._statusAtom.reportChanged();
    }
    _requestThumbnail() {
        const { AssetType } = src["a" /* ACPLModel */];
        // No need to get thumbnail if asset is a folder.
        if (this._asset.assetType === AssetType.Folder) {
            return;
        }
        // No need to request the thumbnail again. We already have the value.
        if (!this._forceThumbnailRequest && this._thumbnailValue) {
            return;
        }
        this._forceThumbnailRequest = false;
        const promise = this._asset.getThumbnailRendition();
        if (!promise) {
            return;
        }
        promise.then((rendition) => {
            if (this._thumbnailValue === rendition) {
                return;
            }
            this._thumbnailValue = rendition;
            this._thumbnailAtom.reportChanged();
        });
    }
    _requestPreview() {
        const { AssetType } = src["a" /* ACPLModel */];
        // No need to get preview if asset is a folder.
        if (this._asset.assetType === AssetType.Folder) {
            return;
        }
        // No need to request the thumbnail again. We already have the value.
        if (!this._forcePreviewRequest && this._previewValue) {
            return;
        }
        this._forcePreviewRequest = false;
        const promise = this._asset.getPreviewRendition();
        if (!promise) {
            return;
        }
        promise.then((rendition) => {
            if (this._previewValue === rendition) {
                return;
            }
            this._previewValue = rendition;
            this._previewAtom.reportChanged();
        });
    }
    get isAvailableOffline() {
        this._changeAtom.reportObserved();
        return this._asset.isAvailableOffline;
    }
    get assetType() {
        this._changeAtom.reportObserved();
        return this._asset.assetType;
    }
    get spaceID() {
        this._changeAtom.reportObserved();
        return this._asset.spaceID;
    }
    get isFile() {
        this._changeAtom.reportObserved();
        return this._asset.isFile;
    }
    get isFolder() {
        this._changeAtom.reportObserved();
        return this._asset.isFolder;
    }
    get isComposite() {
        this._changeAtom.reportObserved();
        return this._asset.isComposite;
    }
    get isUserPinned() {
        this._changeAtom.reportObserved();
        return this._asset.isUserPinned;
    }
    get hasOwnership() {
        this._changeAtom.reportObserved();
        return this._asset.hasOwnership;
    }
    get isSpaceAsset() {
        this._changeAtom.reportObserved();
        return this._asset.isSpaceAsset;
    }
    get isSharedWithYouAsset() {
        this._changeAtom.reportObserved();
        return this._asset.isSharedWithYouAsset;
    }
    get isStandardOwnedAsset() {
        this._changeAtom.reportObserved();
        return this._asset.isStandardOwnedAsset;
    }
    get isDiscarded() {
        this._changeAtom.reportObserved();
        return this._asset.isDiscarded;
    }
    get isArtifact() {
        this._changeAtom.reportObserved();
        return this._asset.isArtifact;
    }
    get created() {
        this._changeAtom.reportObserved();
        return this._asset.created;
    }
    get modified() {
        this._changeAtom.reportObserved();
        return this._asset.modified;
    }
    get shared() {
        this._changeAtom.reportObserved();
        return this._asset.shared;
    }
    get name() {
        this._changeAtom.reportObserved();
        return this._asset.name;
    }
    get isNameDCTitle() {
        this._changeAtom.reportObserved();
        return this._asset.isNameDCTitle;
    }
    get extension() {
        this._changeAtom.reportObserved();
        return this._asset.extension;
    }
    get mediaType() {
        this._changeAtom.reportObserved();
        return this._asset.mediaType;
    }
    get sizeInBytes() {
        this._changeAtom.reportObserved();
        return this._asset.sizeInBytes;
    }
    get localID() {
        this._changeAtom.reportObserved();
        return this._asset.localID;
    }
    get assetRefString() {
        this._changeAtom.reportObserved();
        return this._asset.assetRefString;
    }
    get cloudID() {
        this._changeAtom.reportObserved();
        return this._asset.cloudID;
    }
    get repoPath() {
        this._changeAtom.reportObserved();
        return this._asset.repoPath;
    }
    get downloadStatus() {
        this._statusAtom.reportObserved();
        return this._asset.downloadStatus;
    }
    get uploadStatus() {
        this._statusAtom.reportObserved();
        return this._asset.uploadStatus;
    }
    get syncStatus() {
        this._statusAtom.reportObserved();
        return this._asset.syncStatus;
    }
    get syncSuspensionReason() {
        this._statusAtom.reportObserved();
        return this._asset.syncSuspensionReason;
    }
    get localSnapshotPath() {
        this._changeAtom.reportObserved();
        return this._asset.localSnapshotPath;
    }
    get requestCount() {
        this._statusAtom.reportObserved();
        return this._asset.requestCount;
    }
    getParentFolder() {
        this._changeAtom.reportObserved();
        return this._asset.getParentFolder().then(wrapAsset);
    }
    get children() {
        const childrenSource = this._asset.children;
        if (!childrenSource) {
            return null;
        }
        return wrapAssetSource(childrenSource);
    }
    downloadComposite() {
        return this._asset.downloadComposite();
    }
    get thumbnail() {
        this._thumbnailAtom.reportObserved();
        if (this._forceThumbnailRequest) {
            this._requestThumbnail();
        }
        return this._thumbnailValue;
    }
    get preview() {
        this._previewAtom.reportObserved();
        if (this._forcePreviewRequest) {
            this._requestPreview();
        }
        return this._previewValue;
    }
    hasUncommittedChanges() {
        return this._asset.hasUncommittedChanges();
    }
    commitDCXChanges() {
        return this._asset.commitDCXChanges();
    }
    createComposite(newName, mediaType) {
        return this._asset.createComposite(newName, mediaType).then(wrapAsset);
    }
    createFolder(newName) {
        return this._asset.createFolder(newName).then(wrapAsset);
    }
    rename(newName) {
        return this._asset.rename(newName);
    }
    copy(destFolder, overWriteExisting) {
        return this._asset.copy(destFolder._asset, overWriteExisting).then(wrapAsset);
    }
    purge(ignoreUncommittedChanges) {
        return this._asset.purge(ignoreUncommittedChanges);
    }
    move(destFolder) {
        return this._asset.move(destFolder._asset);
    }
    duplicate(overWriteExisting) {
        return this._asset.duplicate(overWriteExisting).then(wrapAsset);
    }
    pin() {
        return this._asset.pin();
    }
    unpin() {
        return this._asset.unpin();
    }
    archive() {
        return this._asset.archive();
    }
    restore() {
        return this._asset.restore();
    }
    permanentlyDelete() {
        return this._asset.permanentlyDelete();
    }
    resolveConflict(resolution) {
        return this._asset.resolveConflict(resolution).then(wrapAsset);
    }
    copyIntoSnapshot(snapshotPath) {
        return this._asset.copyIntoSnapshot(snapshotPath).then(wrapAsset);
    }
    importAssetFromSnapshot(snapshotPath, preferredPath = '') {
        return this._asset.importAssetFromSnapshot(snapshotPath, preferredPath).then(wrapAsset);
    }
    ownerId() {
        return this._asset.ownerId();
    }
    metadata() {
        return this._asset.metadata();
    }
    getSpace() {
        return this._asset.getSpace();
    }
    getArtifactSessionContext() {
        return this._asset.getArtifactSessionContext();
    }
}

// CONCATENATED MODULE: ./node_modules/@ccx-public/acpl-model-mobx/src/ACPLAssetList.ts
//
//  ADOBE CONFIDENTIAL
//  __________________
//
//  Copyright 2020 Adobe
//  All Rights Reserved.
//
//  NOTICE:  All information contained herein is, and remains
//  the property of Adobe and its suppliers, if any. The intellectual
//  and technical concepts contained herein are proprietary to Adobe
//  and its suppliers and are protected by all applicable intellectual
//  property laws, including trade secret and copyright laws.
//  Dissemination of this information or reproduction of this material
//  is strictly forbidden unless prior written permission is obtained
//  from Adobe.
//



const reportListChangeIntervalInMs = 120;
class ACPLAssetList_ACPLAssetList {
    constructor(assetList) {
        this._items = null;
        this._listStatus = null;
        this._assetList = assetList;
        const onStatusChanged = this.onStatusChanged.bind(this);
        this._statusAtom = Object(mobx_module["n" /* createAtom */])('AssetList.status', () => assetList.on('statusChanged', onStatusChanged), () => assetList.off('statusChanged', onStatusChanged));
        const onListRefreshed = this.queueListNotification.bind(this);
        const onMovedAsset = this.queueListNotification.bind(this);
        const onAddedAsset = this.queueListNotification.bind(this);
        const onRemovedAsset = this.queueListNotification.bind(this);
        this._listAtom = Object(mobx_module["n" /* createAtom */])('AssetList.items', () => {
            assetList.on('refreshed', onListRefreshed);
            assetList.on('movedAsset', onMovedAsset);
            assetList.on('addedAsset', onAddedAsset);
            assetList.on('removedAsset', onRemovedAsset);
        }, () => {
            assetList.off('refreshed', onListRefreshed);
            assetList.off('movedAsset', onMovedAsset);
            assetList.off('addedAsset', onAddedAsset);
            assetList.off('removedAsset', onRemovedAsset);
        });
        this._assetList.on('error', this._onError.bind(this));
        this._errorsAtom = Object(mobx_module["n" /* createAtom */])('AssetList.errors');
    }
    load() {
        this._errors = undefined;
        this._errorsAtom.reportChanged();
        this._assetList.load();
        this._listStatus = this._assetList.status;
        this._statusAtom.reportChanged();
    }
    loadMoreItems() {
        this._assetList.loadMoreItems();
        this._listStatus = this._assetList.status;
        this._statusAtom.reportChanged();
    }
    get errors() {
        this._errorsAtom.reportObserved();
        return this._errors;
    }
    get items() {
        this._listAtom.reportObserved();
        if (!this._items) {
            this._items = this._assetList.items.map(wrapAsset);
        }
        return this._items;
    }
    get status() {
        this._statusAtom.reportObserved();
        if (this._listStatus === null) {
            this._listStatus = this._assetList.status;
        }
        return this._listStatus;
    }
    get orderDirection() {
        this._orderAtom.reportObserved();
        return this._assetList.orderDirection;
    }
    get orderField() {
        this._orderAtom.reportObserved();
        return this._assetList.orderField;
    }
    onStatusChanged() {
        // Do not queue a status change notification for `AssetListStatus.Loading`. Some clients
        // depend on `ACPLAssetList.status()` to return `AssetListStatus.Loading` immediately after
        // calling `AssetSource.getList()`.
        if (this._assetList.status === src["a" /* ACPLModel */].AssetListStatus.Loading) {
            this._listStatus = this._assetList.status;
            this._statusAtom.reportChanged();
        }
        else {
            // Since list-related events are throttled before processing, status-related events must
            // be too, or else the order of the events is undesirable. E.g., status can be 'done' before
            // the list is processed.
            this.queueListNotification();
        }
    }
    queueListNotification() {
        if (this._queuedListNotification !== undefined) {
            return;
        }
        this._queuedListNotification = window.setTimeout(() => {
            this._queuedListNotification = undefined;
            this._items = this._assetList.items.map(wrapAsset);
            this._listAtom.reportChanged();
            this._listStatus = this._assetList.status;
            this._statusAtom.reportChanged();
        }, reportListChangeIntervalInMs);
    }
    _onError(error) {
        if (!this._errors) {
            this._errors = [error];
        }
        else {
            this._errors.push(error);
        }
        this._errorsAtom.reportChanged();
    }
    get source() {
        return wrapAssetSource(this._assetList.source);
    }
}


// CONCATENATED MODULE: ./node_modules/@ccx-public/acpl-model-mobx/src/ACPLAssetContext.ts
//
//  ADOBE CONFIDENTIAL
//  __________________
//
//  Copyright 2020 Adobe
//  All Rights Reserved.
//
//  NOTICE:  All information contained herein is, and remains
//  the property of Adobe and its suppliers, if any. The intellectual
//  and technical concepts contained herein are proprietary to Adobe
//  and its suppliers and are protected by all applicable intellectual
//  property laws, including trade secret and copyright laws.
//  Dissemination of this information or reproduction of this material
//  is strictly forbidden unless prior written permission is obtained
//  from Adobe.
//



const wrappedAssetFromPromise = (promise) => promise.then((asset) => wrapAsset(asset));
class ACPLAssetContext_ACPLAssetContext {
    constructor(assetContext) {
        this._assetContext = assetContext;
        assetContext.on('changedAssets', ACPLAssetContext_ACPLAssetContext._onChangedAssets.bind(this));
        // use cloud sync status to determine initial state
        this._networkStatus = (assetContext.cloudSyncStatus === src["a" /* ACPLModel */].CloudSyncStatus.Offline)
            ? src["a" /* ACPLModel */].NetworkStatus.Offline : src["a" /* ACPLModel */].NetworkStatus.Wan;
        const onNetworkChanged = this._onNetworkChanged.bind(this);
        assetContext.on('networkChanged', onNetworkChanged);
        const onStateChanged = this._onStateChanged.bind(this);
        this._stateAtom = Object(mobx_module["n" /* createAtom */])('AssetContext.state', () => assetContext.on('stateChanged', onStateChanged), () => assetContext.off('stateChanged', onStateChanged));
    }
    get rootFolder() {
        return wrapAsset(this._assetContext.rootFolder);
    }
    get archivedFolder() {
        return wrapAsset(this._assetContext.archivedFolder);
    }
    get recentsSource() {
        return wrapAssetSource(this._assetContext.recentsSource);
    }
    get sharedSource() {
        return wrapAssetSource(this._assetContext.sharedSource);
    }
    get syncingSource() {
        return wrapAssetSource(this._assetContext.syncingSource);
    }
    get discardedSource() {
        return wrapAssetSource(this._assetContext.discardedSource);
    }
    get acplSyncState() {
        this._stateAtom.reportObserved();
        return this._assetContext.acplSyncState;
    }
    get cloudSyncStatus() {
        this._stateAtom.reportObserved();
        return this._assetContext.cloudSyncStatus;
    }
    get networkStatus() {
        this._stateAtom.reportObserved();
        return this._networkStatus;
    }
    getAssetWithLocalID(localID) {
        return wrappedAssetFromPromise(this._assetContext.getAssetWithLocalID(localID));
    }
    getAssetWithCloudID(cloudID, confirmAccess) {
        return wrappedAssetFromPromise(this._assetContext.getAssetWithCloudID(cloudID, confirmAccess));
    }
    getAssetWithRepoPath(repoPath, repoId) {
        // Only passes repoId argument if it was provided by caller. This makes it easier for the
        // seal bindings to determine if a second argument was passed to the seal binding's getAssetWithRepoPath
        // method.
        const promise = repoId ? this._assetContext.getAssetWithRepoPath(repoPath, repoId)
            : this._assetContext.getAssetWithRepoPath(repoPath);
        return wrappedAssetFromPromise(promise);
    }
    getAssetWithAssetRefString(assetRefStr, confirmAccess) {
        return wrappedAssetFromPromise(this._assetContext.getAssetWithAssetRefString(assetRefStr, confirmAccess));
    }
    getCloudQuotaUsedAndMax() {
        return this._assetContext.getCloudQuotaUsedAndMax();
    }
    shutdown() {
        return this._assetContext.shutdown();
    }
    release() {
        return this._assetContext.release();
    }
    appDidEnterBackground() {
        return this._assetContext.appDidEnterBackground();
    }
    appWillEnterForeground() {
        return this._assetContext.appWillEnterForeground();
    }
    appWillTerminate() {
        this._assetContext.appWillTerminate();
    }
    purgeCache() {
        return this._assetContext.purgeCache();
    }
    pauseSyncing(pause) {
        return this._assetContext.pauseSyncing(pause);
    }
    _onStateChanged() {
        this._stateAtom.reportChanged();
    }
    static _onChangedAssets(changes) {
        for (const asset of changes.properties) {
            const acplAsset = wrapAsset(asset);
            acplAsset._reportChanged();
        }
        for (const asset of changes.previews) {
            const acplAsset = wrapAsset(asset);
            acplAsset._reportPreviewChanged();
        }
        for (const asset of changes.status) {
            const acplAsset = wrapAsset(asset);
            acplAsset._reportStatusChanged();
        }
    }
    _onNetworkChanged(status) {
        this._networkStatus = status;
        this._stateAtom.reportChanged();
    }
}

// CONCATENATED MODULE: ./node_modules/@ccx-public/acpl-model-mobx/src/ACPLAssetSource.ts
//
//  ADOBE CONFIDENTIAL
//  __________________
//
//  Copyright 2020 Adobe
//  All Rights Reserved.
//
//  NOTICE:  All information contained herein is, and remains
//  the property of Adobe and its suppliers, if any. The intellectual
//  and technical concepts contained herein are proprietary to Adobe
//  and its suppliers and are protected by all applicable intellectual
//  property laws, including trade secret and copyright laws.
//  Dissemination of this information or reproduction of this material
//  is strictly forbidden unless prior written permission is obtained
//  from Adobe.
//

class ACPLAssetSource_ACPLAssetSource {
    constructor(assetSource) {
        this._assetSource = assetSource;
    }
    getList(orderDirection, orderField) {
        return wrapAssetList(this._assetSource.getList(orderDirection, orderField));
    }
    getListWithTypes(orderDirection, orderField, assetTypes) {
        return wrapAssetList(this._assetSource.getListWithTypes(orderDirection, orderField, assetTypes));
    }
}

// CONCATENATED MODULE: ./node_modules/@ccx-public/acpl-model-mobx/src/ACPLUtils.ts
//
//  ADOBE CONFIDENTIAL
//  __________________
//
//  Copyright 2020 Adobe
//  All Rights Reserved.
//
//  NOTICE:  All information contained herein is, and remains
//  the property of Adobe and its suppliers, if any. The intellectual
//  and technical concepts contained herein are proprietary to Adobe
//  and its suppliers and are protected by all applicable intellectual
//  property laws, including trade secret and copyright laws.
//  Dissemination of this information or reproduction of this material
//  is strictly forbidden unless prior written permission is obtained
//  from Adobe.
//




const MobxInstance = Symbol('mobxInstance');
function wrapAsset(asset) {
    let mobxInstance = asset[MobxInstance];
    if (!mobxInstance) {
        mobxInstance = new ACPLAsset_ACPLAsset(asset);
        asset[MobxInstance] = mobxInstance;
    }
    return mobxInstance;
}
function wrapAssetList(assetList) {
    let mobxInstance = assetList[MobxInstance];
    if (!mobxInstance) {
        mobxInstance = new ACPLAssetList_ACPLAssetList(assetList);
        assetList[MobxInstance] = mobxInstance;
    }
    return mobxInstance;
}
function wrapAssetSource(assetSource) {
    let mobxInstance = assetSource[MobxInstance];
    if (!mobxInstance) {
        mobxInstance = new ACPLAssetSource_ACPLAssetSource(assetSource);
        assetSource[MobxInstance] = mobxInstance;
    }
    return mobxInstance;
}
function wrapAssetContext(assetContext) {
    let mobxInstance = assetContext[MobxInstance];
    if (!mobxInstance) {
        mobxInstance = new ACPLAssetContext_ACPLAssetContext(assetContext);
        assetContext[MobxInstance] = mobxInstance;
    }
    return mobxInstance;
}


/***/ }),

/***/ "9I8b":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = deprecated;

var _warning = __webpack_require__("6DQo");

var _warning2 = _interopRequireDefault(_warning);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var warned = {};

function deprecated(validator, reason) {
  return function validate(props, propName, componentName, location, propFullName) {
    var componentNameSafe = componentName || '<<anonymous>>';
    var propFullNameSafe = propFullName || propName;

    if (props[propName] != null) {
      var messageKey = componentName + '.' + propName;
      (0, _warning2.default)(warned[messageKey], 'The ' + location + ' `' + propFullNameSafe + '` of ' + ('`' + componentNameSafe + '` is deprecated. ' + reason + '.'));
      warned[messageKey] = true;
    }

    for (var _len = arguments.length, args = Array(_len > 5 ? _len - 5 : 0), _key = 5; _key < _len; _key++) {
      args[_key - 5] = arguments[_key];
    }

    return validator.apply(undefined, [props, propName, componentName, location, propFullName].concat(args));
  };
}
/* eslint-disable no-underscore-dangle */


function _resetWarned() {
  warned = {};
}

deprecated._resetWarned = _resetWarned;
/* eslint-enable no-underscore-dangle */

module.exports = exports['default'];

/***/ }),

/***/ "9J+8":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return PROJECTS_REFRESH_TIMEOUT; });
/* harmony import */ var _applications__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("3UBC");
/* harmony import */ var _LoggerWrapper_Logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("43WE");
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2021 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/


const PROJECTS_REFRESH_TIMEOUT = 60 * 1000;
class RefreshProjectsController {
    constructor() {
        this._logger = _LoggerWrapper_Logger__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].get('RefreshProjectsController');
    }
    /*
        Refresh the whole Projects, including sidebar
    */
    async refreshContent() {
        if (_applications__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].isCloudProjectsVisible) {
            try {
                const { sharedStore } = await __webpack_require__("BuQ2");
                sharedStore.refreshContent && sharedStore.refreshContent({ refreshTimeout: PROJECTS_REFRESH_TIMEOUT });
            }
            catch (error) {
                this._logger.error(`Failed to refresh Projects content: ${error}`);
            }
        }
    }
}
/* harmony default export */ __webpack_exports__["b"] = (new RefreshProjectsController());


/***/ }),

/***/ "9O11":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("path", {
  d: "M8 21.5V8h32v32H26.5a.5.5 0 0 0-.5.5v3a.5.5 0 0 0 .5.5H43a1 1 0 0 0 1-1V5a1 1 0 0 0-1-1H5a1 1 0 0 0-1 1v16.5a.5.5 0 0 0 .5.5h3a.5.5 0 0 0 .5-.5z"
}), React.createElement("path", {
  d: "M10.241 24a1.008 1.008 0 0 0-.655 1.716l4.228 4.228-9.842 9.842a.5.5 0 0 0 0 .707l3.536 3.535a.5.5 0 0 0 .707 0l9.842-9.842 4.217 4.214a1 1 0 0 0 1.706-.655V24z"
}));

/***/ }),

/***/ "9OqH":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("UPFO"),
      24: __webpack_require__("WLpg")
    }
  }));
};

WrappedIcon.displayName = 'UserAdd';
exports.default = WrappedIcon;

/***/ }),

/***/ "9PyL":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(__webpack_provided_window_dot_vulcan) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return vulcanAPI; });
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2021 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
const vulcanAPI = () => __webpack_provided_window_dot_vulcan;

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("tQvA")["default"]))

/***/ }),

/***/ "9Pyj":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return SentryError; });
/** An error emitted by Sentry SDKs and related utilities. */
class SentryError extends Error {
  /** Display name of this error instance. */
  constructor(message, logLevel = 'warn') {
    super(message);
    this.message = message;
    ;
    this.name = new.target.prototype.constructor.name; // This sets the prototype to be `Error`, not `SentryError`. It's unclear why we do this, but commenting this line
    // out causes various (seemingly totally unrelated) playwright tests consistently time out. FYI, this makes
    // instances of `SentryError` fail `obj instanceof SentryError` checks.

    Object.setPrototypeOf(this, new.target.prototype);
    this.logLevel = logLevel;
  }

}



/***/ }),

/***/ "9Qh4":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var isValue = __webpack_require__("k2qM"),
    isPlainFunction = __webpack_require__("F5Mc"),
    assign = __webpack_require__("IDEf"),
    normalizeOpts = __webpack_require__("86bp"),
    contains = __webpack_require__("+XMV");

var d = module.exports = function (dscr, value
/*, options*/
) {
  var c, e, w, options, desc;

  if (arguments.length < 2 || typeof dscr !== "string") {
    options = value;
    value = dscr;
    dscr = null;
  } else {
    options = arguments[2];
  }

  if (isValue(dscr)) {
    c = contains.call(dscr, "c");
    e = contains.call(dscr, "e");
    w = contains.call(dscr, "w");
  } else {
    c = w = true;
    e = false;
  }

  desc = {
    value: value,
    configurable: c,
    enumerable: e,
    writable: w
  };
  return !options ? desc : assign(normalizeOpts(options), desc);
};

d.gs = function (dscr, get, set
/*, options*/
) {
  var c, e, options, desc;

  if (typeof dscr !== "string") {
    options = set;
    set = get;
    get = dscr;
    dscr = null;
  } else {
    options = arguments[3];
  }

  if (!isValue(get)) {
    get = undefined;
  } else if (!isPlainFunction(get)) {
    options = get;
    get = set = undefined;
  } else if (!isValue(set)) {
    set = undefined;
  } else if (!isPlainFunction(set)) {
    options = set;
    set = undefined;
  }

  if (isValue(dscr)) {
    c = contains.call(dscr, "c");
    e = contains.call(dscr, "e");
  } else {
    c = true;
    e = false;
  }

  desc = {
    get: get,
    set: set,
    configurable: c,
    enumerable: e
  };
  return !options ? desc : assign(normalizeOpts(options), desc);
};

/***/ }),

/***/ "9SKx":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var _interopRequireDefault = __webpack_require__("TqRt");

exports.__esModule = true;
exports.default = camelizeStyleName;

var _camelize = _interopRequireDefault(__webpack_require__("DZ0b"));
/**
 * Copyright 2014-2015, Facebook, Inc.
 * All rights reserved.
 * https://github.com/facebook/react/blob/2aeb8a2a6beb00617a4217f7f8284924fa2ad819/src/vendor/core/camelizeStyleName.js
 */


var msPattern = /^-ms-/;

function camelizeStyleName(string) {
  return (0, _camelize.default)(string.replace(msPattern, 'ms-'));
}

module.exports = exports["default"];

/***/ }),

/***/ "9Thz":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _autobindDecorator = _interopRequireDefault(__webpack_require__("gKdT"));

var _Button = _interopRequireDefault(__webpack_require__("Cn9g"));

var _createId = _interopRequireDefault(__webpack_require__("b7KY"));

var _filterDOMProps = _interopRequireDefault(__webpack_require__("Cv/Q"));

var _intl = __webpack_require__("Lpon");

var _propTypes = _interopRequireDefault(__webpack_require__("17x9"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

var _setOverlayOnProvider = _interopRequireDefault(__webpack_require__("l0xv"));

var _FocusManager = __webpack_require__("3C4i");

__webpack_require__("MGeu");

const _excluded = ["title", "confirmLabel", "onConfirm", "cancelLabel", "onCancel", "disableProgress", "currentStep", "totalSteps", "image", "children", "id", "tabIndex", "imageAlt", "autoFocus", "trapFocus"];

var _class, _class2, _temp;

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

const intlMessages = {
  "cs-CZ": _interopRequireDefault(__webpack_require__("66Ol")).default,
  "da-DK": _interopRequireDefault(__webpack_require__("+c4p")).default,
  "de-DE": _interopRequireDefault(__webpack_require__("fja1")).default,
  "en-US": _interopRequireDefault(__webpack_require__("UxHR")).default,
  "es-ES": _interopRequireDefault(__webpack_require__("TBbR")).default,
  "fi-FI": _interopRequireDefault(__webpack_require__("iKaH")).default,
  "fr-FR": _interopRequireDefault(__webpack_require__("XtrC")).default,
  "hu-HU": _interopRequireDefault(__webpack_require__("ADsP")).default,
  "it-IT": _interopRequireDefault(__webpack_require__("KYEX")).default,
  "ja-JP": _interopRequireDefault(__webpack_require__("LIQA")).default,
  "ko-KR": _interopRequireDefault(__webpack_require__("Cs9C")).default,
  "nb-NO": _interopRequireDefault(__webpack_require__("oZ20")).default,
  "nl-NL": _interopRequireDefault(__webpack_require__("tI1w")).default,
  "pl-PL": _interopRequireDefault(__webpack_require__("jwcI")).default,
  "pt-BR": _interopRequireDefault(__webpack_require__("Yb34")).default,
  "ru-RU": _interopRequireDefault(__webpack_require__("Ji/Z")).default,
  "sv-SE": _interopRequireDefault(__webpack_require__("pajr")).default,
  "tr-TR": _interopRequireDefault(__webpack_require__("q4jM")).default,
  "uk-UA": _interopRequireDefault(__webpack_require__("3aoA")).default,
  "zh-CN": _interopRequireDefault(__webpack_require__("5ltv")).default,
  "zh-TW": _interopRequireDefault(__webpack_require__("lAYD")).default
};
const formatMessage = (0, _intl.messageFormatter)(intlMessages);

let CoachMarkPopover = (0, _autobindDecorator.default)(_class = (_temp = _class2 = class CoachMarkPopover extends _react.default.Component {
  constructor(props) {
    super(props);

    this.coachMarkPopoverHandler = () => {
      (0, _setOverlayOnProvider.default)(this.coachMarkPopoverRef, true, undefined, undefined, false);
    };

    this.coachmarkId = (0, _createId.default)();
    this.tourInProgress = false;
  }

  componentDidMount() {
    if (this.props.trapFocus) {
      this._trapFocusTimeout = requestAnimationFrame(() => {
        if (this.coachMarkPopoverRef && !this.coachMarkPopoverRef.contains(document.activeElement)) {
          this.coachMarkPopoverRef.focus();
        }
      });
    }

    if (this.coachMarkPopoverRef) {
      window.addEventListener('resize', this.coachMarkPopoverHandler);
    }
  }

  componentWillUnmount() {
    if (this._trapFocusTimeout) {
      cancelAnimationFrame(this._trapFocusTimeout);
    }

    (0, _setOverlayOnProvider.default)(this.coachMarkPopoverRef, false, undefined, undefined, false);
    window.removeEventListener('resize', this.coachMarkPopoverHandler);
  }

  onFocus(e) {
    if (this.props.onFocus) {
      this.props.onFocus(e);
    }

    if (this.props.trapFocus) {
      (0, _FocusManager.trapFocus)(this, e);
    }
  }

  onKeyDown(e) {
    if (this.props.onKeyDown) {
      this.props.onKeyDown(e); // Do nothing if stopPropagation has been called on event after onKeyDown prop executes.

      if (e.isPropagationStopped && e.isPropagationStopped()) {
        return;
      }
    }

    if (this.props.trapFocus) {
      (0, _FocusManager.trapFocus)(this, e);
    }
  }

  render() {
    let _this$props = this.props,
        {
      title,
      confirmLabel,
      onConfirm,
      cancelLabel,
      onCancel,
      disableProgress,
      currentStep,
      totalSteps,
      image,
      children,
      id = this.coachmarkId,
      tabIndex,
      imageAlt = '',
      autoFocus,
      trapFocus
    } = _this$props,
        otherProps = _objectWithoutProperties(_this$props, _excluded);

    disableProgress = disableProgress || typeof currentStep !== 'number' || typeof totalSteps !== 'number'; // eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions

    return /*#__PURE__*/_react.default.createElement("div", _extends({}, (0, _filterDOMProps.default)(otherProps), {
      className: "spectrum-CoachMarkPopover",
      role: "dialog",
      "aria-labelledby": `${id}-header`,
      "aria-describedby": `${id}-content`,
      id: id,
      ref: r => this.coachMarkPopoverRef = r,
      onFocus: this.onFocus,
      onKeyDown: this.onKeyDown,
      tabIndex: trapFocus && tabIndex == null ? 1 : tabIndex
    }), image && /*#__PURE__*/_react.default.createElement("img", {
      src: image,
      alt: imageAlt,
      className: "spectrum-CoachMarkPopover-image"
    }), /*#__PURE__*/_react.default.createElement("div", {
      className: "spectrum-CoachMarkPopover-header",
      id: `${id}-header`
    }, /*#__PURE__*/_react.default.createElement("div", {
      className: "spectrum-CoachMarkPopover-title"
    }, title), !disableProgress && /*#__PURE__*/_react.default.createElement("div", {
      className: "spectrum-CoachMarkPopover-step"
    }, formatMessage('steps', {
      currentStep,
      totalSteps
    }))), /*#__PURE__*/_react.default.createElement("div", {
      className: "spectrum-CoachMarkPopover-content",
      id: `${id}-content`
    }, children), /*#__PURE__*/_react.default.createElement("div", {
      className: "spectrum-CoachMarkPopover-footer"
    }, cancelLabel && /*#__PURE__*/_react.default.createElement(_Button.default, {
      quiet: true,
      onClick: onCancel,
      autoFocus: !confirmLabel ? autoFocus : null
    }, cancelLabel), confirmLabel && /*#__PURE__*/_react.default.createElement(_Button.default, {
      variant: "primary",
      onClick: onConfirm,
      autoFocus: autoFocus
    }, confirmLabel)));
  }

}, _class2.propTypes = {
  /** Title */
  title: _propTypes.default.string.isRequired,

  /**
   * Text of the primary button.
   * Required if using Coachmarks on their own. Can't use `.required`
   * though because Tour can provide a default.
   **/
  confirmLabel: _propTypes.default.string,

  /** Event Handler for the confirm button */
  onConfirm: _propTypes.default.func,

  /** Text of the secondary button */
  cancelLabel: _propTypes.default.string,

  /** Event Handler for the cancel button */
  onCancel: _propTypes.default.func,

  /** Hide progress */
  disableProgress: _propTypes.default.bool,

  /** Url to an image to display */
  image: _propTypes.default.string,

  /** Text alternative for image */
  imageAlt: _propTypes.default.string,

  /** Current step */
  currentStep: _propTypes.default.number,

  /** Total amount of steps */
  totalSteps: _propTypes.default.number,

  /** Whether to autofocus on mount */
  autoFocus: _propTypes.default.bool,

  /** Whether to trapFocus within coachmark */
  trapFocus: _propTypes.default.bool,

  /** tabIndex property to manage how coachmark popover is included in the keyboard navigation order */
  tabIndex: _propTypes.default.number,

  /** String that will override the default id generated by the instance */
  id: _propTypes.default.string
}, _class2.defaultProps = {
  autoFocus: true,
  imageAlt: '',
  trapFocus: true
}, _temp)) || _class;

exports.default = CoachMarkPopover;

/***/ }),

/***/ "9Vp7":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("9tHd"),
      24: __webpack_require__("/3On")
    }
  }));
};

WrappedIcon.displayName = 'Calendar';
exports.default = WrappedIcon;

/***/ }),

/***/ "9XT/":
/***/ (function(module, exports) {

/* eslint-disable max-len */
module.exports = {
  'confirmationDialog.dontShowAgain': '不要再顯示',
  'confirmationDialog.confirm.default': '繼續',
  'confirmationDialog.cancel.default': '取消',
  'confirmationDialog.learnMore': '了解更多',
  'toast.warning.place': '尚無法置入連結的雲端文件。請繼續內嵌。',
  'toast.warning.placeLinkOrEmbed': '依據預設，您置入的資產現在會連結到原始資產。這表示如果您在某個地方編輯該資產，這些變更將會反映在所有地方。',
  'toast.warning.saveAs.invalidFormat': '抱歉，您無法在這裡儲存 {genericFormat} 檔案。您的檔案將儲存為 {adobeFormat}。',
  'pickerView.recent': '最近使用',
  'pickerView.cloud_docs': '您的檔案',
  'pickerView.shared_with_you': '與您共用',
  'pickerView.projects': '專案',
  'pickerView.files': '檔案',
  'pickerView.computer': '您的電腦...',
  'pickerView.saveAsInput': '另存新檔',
  'pickerView.exportInput': '匯出為',
  'pickerView.sketch_library': '轉換 Sketch 資料庫...',
  'pickerView.error.saveAsOrExport.default': '檔案名稱無效。',
  'pickerView.error.saveAsOrExport.invalidName': '抱歉，此名稱包含無效的字元。',
  'pickerView.error.saveAsOrExport.invalidEnd': '名稱不能以「.」或空格結尾。',
  'pickerView.error.saveAsOrExport.invalidChar': '名稱不能包含下列字元：{characters}',
  'pickerView.error.saveAsOrExport.charRestriction': '名稱不能超過 200 個字元。',
  'pickerView.error.saveAsOrExport.duplicateName': '這裡已有使用此名稱的雲端文件。',
  'pickerView.error.addALibrary.permission': '您沒有新增此資料庫的權限',
  'pickerViewFooter.button.add': '新增',
  'pickerViewFooter.button.cancel': '取消',
  'pickerViewFooter.button.copy': '在此複製',
  'pickerViewFooter.button.move': '移動到這裡',
  'pickerViewFooter.button.moveToProject': '移動到這裡',
  'pickerViewFooter.button.copyToProject': '在此複製',
  'pickerViewFooter.button.choose': '選擇',
  'pickerViewFooter.button.save': '儲存',
  'pickerViewFooter.button.switchToOSPicker': '您的電腦上',
  'pickerViewFooter.button.save.offline': '需要網際網路連線',
  'pickerViewFooter.button.saveAsCopy': '儲存',
  'pickerViewFooter.button.export': '匯出',
  'pickerViewFooter.button.placeLinkOrEmbed': '置入',
  'pickerViewFooter.button.import': '匯入',
  'pickerViewFooter.checkbox.placeLink': '已連結',
  'pickerViewFooter.tooltip.placeLink': '您只能將此項目以已連結資產的形式置入。',
  'pickerViewFooter.tooltip.placeEmbed': '您只能將此項目以嵌入的形式置入。',
  'pickerViewFooter.saveAs.format.label': '格式',
  'pickerViewFooter.button.selectProject': '儲存',
  'onboardingCdp.title': '如果儲存為雲端文件，您就能享有更多功能',
  'onboardingCdp.tooltip': '如果儲存至電腦，您將無法使用雲端功能。',
  'onboardingCdp.tooltip.link': '了解更多',
  'onboardingCdp.table.header.saveToCloud': 'Creative Cloud',
  'onboardingCdp.table.header.saveToLocal': '在您的電腦上',
  'onboardingCdp.button.saveToCloud': '儲存至 Creative Cloud',
  'onboardingCdp.feature.offline': '離線存取',
  'onboardingCdp.feature.syncing': '雲端同步至您的所有裝置',
  'onboardingCdp.feature.autosave': '自動儲存所有變更',
  'onboardingCdp.feature.versionHistory': '版本記錄',
  'onboardingCdp.feature.inviteToEdit': '邀請參與編輯',
  'onboardingCdp.button.saveToLocal': '儲存在您的電腦',
  'onboardingCdp.checkbox.doNotShowAgain': '不要再顯示',
  'uap.title.place': '從 Creative Cloud 置入',
  'uap.title.import': '從 Creative Cloud 匯入',
  'uap.title.placeLinkOrEmbed': '從 Creative Cloud 置入',
  'uap.title.linkAssets': '從 Creative Cloud 連結',
  'uap.title.open': '從 Creative Cloud 開啟',
  'uap.title.relink': '從 Creative Cloud 連結',
  'uap.title.saveAs': '儲存到 Creative Cloud',
  'uap.title.saveAsCopy': '儲存到 Creative Cloud',
  'uap.title.saveToFolder': '儲存到 Creative Cloud',
  'uap.title.export': '匯出至 Creative Cloud',
  'uap.title.copy': '複製到 Creative Cloud',
  'uap.title.move': '在 Creative Cloud 中移動',
  'uap.title.moveToProject': '在 Creative Cloud 中移動',
  'uap.title.copyToProject': '複製到 Creative Cloud',
  'uap.title.reference': '新增至 Creative Cloud',
  'uap.title.selectProject': '儲存到 Creative Cloud',
  'move.toSpace.confirm.title': '版本記錄將會刪除',
  'move.toSpace.confirm.message': '移動此檔案將導致版本記錄遭到刪除。如果您想要保留版本記錄，請改為製作副本。'
};

/***/ }),

/***/ "9XZ3":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var inherits = __webpack_require__("P7XM");

var HashBase = __webpack_require__("k+aG");

var Buffer = __webpack_require__("hwdV").Buffer;

var ARRAY16 = new Array(16);

function MD5() {
  HashBase.call(this, 64); // state

  this._a = 0x67452301;
  this._b = 0xefcdab89;
  this._c = 0x98badcfe;
  this._d = 0x10325476;
}

inherits(MD5, HashBase);

MD5.prototype._update = function () {
  var M = ARRAY16;

  for (var i = 0; i < 16; ++i) M[i] = this._block.readInt32LE(i * 4);

  var a = this._a;
  var b = this._b;
  var c = this._c;
  var d = this._d;
  a = fnF(a, b, c, d, M[0], 0xd76aa478, 7);
  d = fnF(d, a, b, c, M[1], 0xe8c7b756, 12);
  c = fnF(c, d, a, b, M[2], 0x242070db, 17);
  b = fnF(b, c, d, a, M[3], 0xc1bdceee, 22);
  a = fnF(a, b, c, d, M[4], 0xf57c0faf, 7);
  d = fnF(d, a, b, c, M[5], 0x4787c62a, 12);
  c = fnF(c, d, a, b, M[6], 0xa8304613, 17);
  b = fnF(b, c, d, a, M[7], 0xfd469501, 22);
  a = fnF(a, b, c, d, M[8], 0x698098d8, 7);
  d = fnF(d, a, b, c, M[9], 0x8b44f7af, 12);
  c = fnF(c, d, a, b, M[10], 0xffff5bb1, 17);
  b = fnF(b, c, d, a, M[11], 0x895cd7be, 22);
  a = fnF(a, b, c, d, M[12], 0x6b901122, 7);
  d = fnF(d, a, b, c, M[13], 0xfd987193, 12);
  c = fnF(c, d, a, b, M[14], 0xa679438e, 17);
  b = fnF(b, c, d, a, M[15], 0x49b40821, 22);
  a = fnG(a, b, c, d, M[1], 0xf61e2562, 5);
  d = fnG(d, a, b, c, M[6], 0xc040b340, 9);
  c = fnG(c, d, a, b, M[11], 0x265e5a51, 14);
  b = fnG(b, c, d, a, M[0], 0xe9b6c7aa, 20);
  a = fnG(a, b, c, d, M[5], 0xd62f105d, 5);
  d = fnG(d, a, b, c, M[10], 0x02441453, 9);
  c = fnG(c, d, a, b, M[15], 0xd8a1e681, 14);
  b = fnG(b, c, d, a, M[4], 0xe7d3fbc8, 20);
  a = fnG(a, b, c, d, M[9], 0x21e1cde6, 5);
  d = fnG(d, a, b, c, M[14], 0xc33707d6, 9);
  c = fnG(c, d, a, b, M[3], 0xf4d50d87, 14);
  b = fnG(b, c, d, a, M[8], 0x455a14ed, 20);
  a = fnG(a, b, c, d, M[13], 0xa9e3e905, 5);
  d = fnG(d, a, b, c, M[2], 0xfcefa3f8, 9);
  c = fnG(c, d, a, b, M[7], 0x676f02d9, 14);
  b = fnG(b, c, d, a, M[12], 0x8d2a4c8a, 20);
  a = fnH(a, b, c, d, M[5], 0xfffa3942, 4);
  d = fnH(d, a, b, c, M[8], 0x8771f681, 11);
  c = fnH(c, d, a, b, M[11], 0x6d9d6122, 16);
  b = fnH(b, c, d, a, M[14], 0xfde5380c, 23);
  a = fnH(a, b, c, d, M[1], 0xa4beea44, 4);
  d = fnH(d, a, b, c, M[4], 0x4bdecfa9, 11);
  c = fnH(c, d, a, b, M[7], 0xf6bb4b60, 16);
  b = fnH(b, c, d, a, M[10], 0xbebfbc70, 23);
  a = fnH(a, b, c, d, M[13], 0x289b7ec6, 4);
  d = fnH(d, a, b, c, M[0], 0xeaa127fa, 11);
  c = fnH(c, d, a, b, M[3], 0xd4ef3085, 16);
  b = fnH(b, c, d, a, M[6], 0x04881d05, 23);
  a = fnH(a, b, c, d, M[9], 0xd9d4d039, 4);
  d = fnH(d, a, b, c, M[12], 0xe6db99e5, 11);
  c = fnH(c, d, a, b, M[15], 0x1fa27cf8, 16);
  b = fnH(b, c, d, a, M[2], 0xc4ac5665, 23);
  a = fnI(a, b, c, d, M[0], 0xf4292244, 6);
  d = fnI(d, a, b, c, M[7], 0x432aff97, 10);
  c = fnI(c, d, a, b, M[14], 0xab9423a7, 15);
  b = fnI(b, c, d, a, M[5], 0xfc93a039, 21);
  a = fnI(a, b, c, d, M[12], 0x655b59c3, 6);
  d = fnI(d, a, b, c, M[3], 0x8f0ccc92, 10);
  c = fnI(c, d, a, b, M[10], 0xffeff47d, 15);
  b = fnI(b, c, d, a, M[1], 0x85845dd1, 21);
  a = fnI(a, b, c, d, M[8], 0x6fa87e4f, 6);
  d = fnI(d, a, b, c, M[15], 0xfe2ce6e0, 10);
  c = fnI(c, d, a, b, M[6], 0xa3014314, 15);
  b = fnI(b, c, d, a, M[13], 0x4e0811a1, 21);
  a = fnI(a, b, c, d, M[4], 0xf7537e82, 6);
  d = fnI(d, a, b, c, M[11], 0xbd3af235, 10);
  c = fnI(c, d, a, b, M[2], 0x2ad7d2bb, 15);
  b = fnI(b, c, d, a, M[9], 0xeb86d391, 21);
  this._a = this._a + a | 0;
  this._b = this._b + b | 0;
  this._c = this._c + c | 0;
  this._d = this._d + d | 0;
};

MD5.prototype._digest = function () {
  // create padding and handle blocks
  this._block[this._blockOffset++] = 0x80;

  if (this._blockOffset > 56) {
    this._block.fill(0, this._blockOffset, 64);

    this._update();

    this._blockOffset = 0;
  }

  this._block.fill(0, this._blockOffset, 56);

  this._block.writeUInt32LE(this._length[0], 56);

  this._block.writeUInt32LE(this._length[1], 60);

  this._update(); // produce result


  var buffer = Buffer.allocUnsafe(16);
  buffer.writeInt32LE(this._a, 0);
  buffer.writeInt32LE(this._b, 4);
  buffer.writeInt32LE(this._c, 8);
  buffer.writeInt32LE(this._d, 12);
  return buffer;
};

function rotl(x, n) {
  return x << n | x >>> 32 - n;
}

function fnF(a, b, c, d, m, k, s) {
  return rotl(a + (b & c | ~b & d) + m + k | 0, s) + b | 0;
}

function fnG(a, b, c, d, m, k, s) {
  return rotl(a + (b & d | c & ~d) + m + k | 0, s) + b | 0;
}

function fnH(a, b, c, d, m, k, s) {
  return rotl(a + (b ^ c ^ d) + m + k | 0, s) + b | 0;
}

function fnI(a, b, c, d, m, k, s) {
  return rotl(a + (c ^ (b | ~d)) + m + k | 0, s) + b | 0;
}

module.exports = MD5;

/***/ }),

/***/ "9dg4":
/***/ (function(module) {

module.exports = JSON.parse("{\"Breadcrumbs\":\"Migas de pan\"}");

/***/ }),

/***/ "9g66":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var keys = __webpack_require__("e989"),
    value = __webpack_require__("lq5y"),
    max = Math.max;

module.exports = function (dest, src
/*, …srcn*/
) {
  var error,
      i,
      length = max(arguments.length, 2),
      assign;
  dest = Object(value(dest));

  assign = function (key) {
    try {
      dest[key] = src[key];
    } catch (e) {
      if (!error) error = e;
    }
  };

  for (i = 1; i < length; ++i) {
    src = arguments[i];
    keys(src).forEach(assign);
  }

  if (error !== undefined) throw error;
  return dest;
};

/***/ }),

/***/ "9oP/":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return AccountType; });
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
var AccountType;
(function (AccountType) {
    AccountType["Personal"] = "type1";
    AccountType["Enterprise"] = "type2";
    AccountType["Business"] = "type3";
    AccountType["Federated"] = "type2e";
})(AccountType || (AccountType = {}));


/***/ }),

/***/ "9pE+":
/***/ (function(module, exports, __webpack_require__) {

module.exports = __webpack_require__.p + "assets/start/xd-file-icon.png";

/***/ }),

/***/ "9psB":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return LibraryFilterValues; });
const LibraryFilterValues = {
    All: 'all',
    AddeedToYourLibraries: 'addedToYourLibraries',
    NotAdded: 'notAdded',
};


/***/ }),

/***/ "9rbx":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Dimmer; });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _styles_Dimmer_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("KRZ8");
/* harmony import */ var _styles_Dimmer_css__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_styles_Dimmer_css__WEBPACK_IMPORTED_MODULE_1__);
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2019 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/


/**
 * A utility component which adds a transparent overlay its children.
 *
 * @param children - content which will be dimmed
 * @param dim - whether or not to dim the content. Defaults to `true`
 *
 * @note
 * A better way to implement an overlay is with an inset box-shadow, but
 * UXP doesn't support box-shadow currently
 */
const Dimmer = ({ children, dim }) => !dim ? (children) : (react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null,
    children,
    react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: "cdo-dimmer-overlay" })));
Dimmer.defaultProps = {
    dim: true,
};


/***/ }),

/***/ "9tHd":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("path", {
  d: "M33 6h-5V3a1 1 0 0 0-1-1h-2a1 1 0 0 0-1 1v3H10V3a1 1 0 0 0-1-1H7a1 1 0 0 0-1 1v3H1a1 1 0 0 0-1 1v26a1 1 0 0 0 1 1h32a1 1 0 0 0 1-1V7a1 1 0 0 0-1-1zm-1 26H2V8h4v1a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1V8h14v1a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1V8h4z"
}), React.createElement("path", {
  d: "M6 12h4v4H6zm6 0h4v4h-4zm6 0h4v4h-4zm6 0h4v4h-4zM6 18h4v4H6zm6 0h4v4h-4zm6 0h4v4h-4zm6 0h4v4h-4zM6 24h4v4H6zm6 0h4v4h-4zm6 0h4v4h-4zm6 0h4v4h-4z"
}));

/***/ }),

/***/ "9vDZ":
/***/ (function(module) {

module.exports = JSON.parse("{\"close\":\"Cerrar\",\"error\":\"Error\",\"info\":\"Información\",\"success\":\"Éxito\",\"warning\":\"Advertencia\"}");

/***/ }),

/***/ "A1cl":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _SpEventUtils = __webpack_require__("XU6Z");

var _autobindDecorator = _interopRequireDefault(__webpack_require__("gKdT"));

var _convertUnsafeMethod = _interopRequireDefault(__webpack_require__("8nyd"));

var _propTypes = _interopRequireDefault(__webpack_require__("17x9"));

var _Radio = _interopRequireDefault(__webpack_require__("C6Uc"));

var _react = _interopRequireWildcard(__webpack_require__("q1tI"));

const _excluded = ["className", "invalid", "label", "labelBelow", "quiet", "renderLabel"];

var _class, _class2, _temp;

function _getRequireWildcardCache(nodeInterop) {
  if (typeof WeakMap !== "function") return null;
  var cacheBabelInterop = new WeakMap();
  var cacheNodeInterop = new WeakMap();
  return (_getRequireWildcardCache = function (nodeInterop) {
    return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
  })(nodeInterop);
}

function _interopRequireWildcard(obj, nodeInterop) {
  if (!nodeInterop && obj && obj.__esModule) {
    return obj;
  }

  if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
    return {
      default: obj
    };
  }

  var cache = _getRequireWildcardCache(nodeInterop);

  if (cache && cache.has(obj)) {
    return cache.get(obj);
  }

  var newObj = {};
  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;

  for (var key in obj) {
    if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
      var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;

      if (desc && (desc.get || desc.set)) {
        Object.defineProperty(newObj, key, desc);
      } else {
        newObj[key] = obj[key];
      }
    }
  }

  newObj.default = obj;

  if (cache) {
    cache.set(obj, newObj);
  }

  return newObj;
}

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

let SpUxpRadio = (0, _convertUnsafeMethod.default)(_class = (0, _autobindDecorator.default)(_class = (_temp = _class2 = class SpUxpRadio extends _react.Component {
  constructor(props) {
    super(props);
    const {
      checked,
      defaultChecked
    } = props;
    this.state = {
      checked: checked !== undefined ? checked : defaultChecked || false
    };
    this.spRadioRef = /*#__PURE__*/_react.default.createRef();
  }

  UNSAFE_componentWillReceiveProps(nextProps) {
    if ('checked' in nextProps) {
      this.setState({
        checked: nextProps.checked
      });
    }
  }

  componentDidMount() {
    (0, _SpEventUtils.attachEventListeners)(this.spRadioRef.current, this.props, this.handleEvent);
  }

  componentWillUnmount() {
    (0, _SpEventUtils.removeEventListeners)(this.spRadioRef.current, this.props, this.handleEvent);
  }

  componentDidUpdate(prevProps) {
    this.updateAllEventListeners = !(0, _SpEventUtils.updateEventListeners)(this.spRadioRef.current, prevProps, this.props, this.handleEvent, this.updateAllEventListeners);
  }

  setChecked(checked) {
    if (!('checked' in this.props)) {
      this.setState({
        checked
      });
    }
  }

  handleEvent(event) {
    if (event.type === 'change') {
      const {
        checked
      } = event.target;
      this.setChecked({
        checked
      });
    }

    const eventName = Object.keys(this.props).filter(propName => propName.substr(2).toLowerCase() === event.type);

    if (this.props[eventName]) {
      this.props[eventName].call(event.target, event);
    }
  }

  render() {
    const _this$props = this.props,
          {
      className,
      invalid,
      label,
      labelBelow,
      quiet,
      renderLabel
    } = _this$props,
          otherProps = _objectWithoutProperties(_this$props, _excluded); // sp-radio supports only side label


    if (labelBelow) {
      return /*#__PURE__*/_react.default.createElement(_Radio.default, this.props);
    }

    delete otherProps.checked; // Show label when label is defined and renderLabel is not false.

    const showLabel = !!label && (renderLabel === undefined || renderLabel);
    return /*#__PURE__*/_react.default.createElement("sp-radio", _extends({
      ref: this.spRadioRef,
      class: className,
      checked: this.state.checked ? true : null,
      emphasized: !quiet ? true : null,
      invalid: invalid ? true : null
    }, (0, _SpEventUtils.removeEventProps)(otherProps)), showLabel && label);
  }

}, _class2.propTypes = {
  /**
   * Whether the radio should start off checked (controlled state)
   */
  checked: _propTypes.default.bool,

  /**
   * Class given to radio
   */
  className: _propTypes.default.string,

  /**
   * Whether the radio should be checked on mount
   */
  defaultChecked: _propTypes.default.bool,

  /**
   * Displays the invalid state of this component
   */
  invalid: _propTypes.default.bool,

  /**
   * Label for radio
   */
  label: _propTypes.default.string,

  /**
   * Whether label is below radio
   */
  labelBelow: _propTypes.default.bool,

  /**
   * Whether radio is a quiet variation
   */
  quiet: _propTypes.default.bool,

  /**
   * Whether label is rendered
   */
  renderLabel: _propTypes.default.bool
}, _temp)) || _class) || _class;

exports.default = SpUxpRadio;
SpUxpRadio.displayName = 'Radio';

/***/ }),

/***/ "A2gr":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

const _excluded = ["styles"];

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }

function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

var _default = _ref => {
  let {
    styles = {}
  } = _ref,
      props = _objectWithoutProperties(_ref, _excluded);

  return /*#__PURE__*/_react.default.createElement("svg", _extends({
    xmlns: "http://www.w3.org/2000/svg",
    width: "96",
    height: "96",
    viewBox: "0 0 96 96"
  }, props), /*#__PURE__*/_react.default.createElement("defs", null), /*#__PURE__*/_react.default.createElement("g", {
    id: "ICONS_96",
    "data-name": "ICONS 96"
  }, /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M85 72H11a3 3 0 0 1-3-3V29a3 3 0 0 1 3-3h74a3 3 0 0 1 3 3v40a3 3 0 0 1-3 3zM11 28a1 1 0 0 0-1 1v40a1 1 0 0 0 1 1h74a1 1 0 0 0 1-1V29a1 1 0 0 0-1-1z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M84 35.331H12a.75.75 0 0 1 0-1.5h72a.75.75 0 0 1 0 1.5z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M16.538 32.051h-2a.75.75 0 0 1 0-1.5h2a.75.75 0 0 1 0 1.5z"
  })));
};

exports.default = _default;

/***/ }),

/***/ "A5Xg":
/***/ (function(module, exports, __webpack_require__) {

// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window
var toIObject = __webpack_require__("NsO/");

var gOPN = __webpack_require__("ar/p").f;

var toString = {}.toString;
var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames ? Object.getOwnPropertyNames(window) : [];

var getWindowNames = function (it) {
  try {
    return gOPN(it);
  } catch (e) {
    return windowNames.slice();
  }
};

module.exports.f = function getOwnPropertyNames(it) {
  return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));
};

/***/ }),

/***/ "A63a":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var _interopRequireDefault = __webpack_require__("TqRt");

exports.__esModule = true;
exports.default = offset;

var _contains = _interopRequireDefault(__webpack_require__("61Rg"));

var _isWindow = _interopRequireDefault(__webpack_require__("8Y+z"));

var _ownerDocument = _interopRequireDefault(__webpack_require__("o43f"));

function offset(node) {
  var doc = (0, _ownerDocument.default)(node),
      win = (0, _isWindow.default)(doc),
      docElem = doc && doc.documentElement,
      box = {
    top: 0,
    left: 0,
    height: 0,
    width: 0
  };
  if (!doc) return; // Make sure it's not a disconnected DOM node

  if (!(0, _contains.default)(docElem, node)) return box;
  if (node.getBoundingClientRect !== undefined) box = node.getBoundingClientRect(); // IE8 getBoundingClientRect doesn't support width & height

  box = {
    top: box.top + (win.pageYOffset || docElem.scrollTop) - (docElem.clientTop || 0),
    left: box.left + (win.pageXOffset || docElem.scrollLeft) - (docElem.clientLeft || 0),
    width: (box.width == null ? node.offsetWidth : box.width) || 0,
    height: (box.height == null ? node.offsetHeight : box.height) || 0
  };
  return box;
}

module.exports = exports["default"];

/***/ }),

/***/ "AA2I":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("path", {
  d: "M42.885 4H5.119a1.464 1.464 0 0 0-1.136 2.388l16.1 19.671v18.417a1.464 1.464 0 0 0 2.46 1.073l4.93-5.445a1.464 1.464 0 0 0 .49-1.093V26.027L44.021 6.388A1.464 1.464 0 0 0 42.885 4z"
}));

/***/ }),

/***/ "AAv5":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return UserIdentityType; });
const UserIdentityType = {
    type1: 'type1',
    type2: 'type2',
    type3: 'type3',
    type2e: 'type2e',
};


/***/ }),

/***/ "ABvp":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _sleep__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("4CRX");
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/

/**
 * Retries the provided function fn until it no longer throws/rejects or maxTries is reached. Returns fn's returned
 * value, or rejects with the last error if fn never returns successfully
 *
 * @param fn Function to attempt retries on
 */
async function retry(fn, { delay, maxTries, exponentialBackoff }, logger) {
    let tryCount = 0;
    let value;
    let lastError;
    let currentDelay = delay;
    do {
        // nodejs (but not browser/uxp) throws UnhandledPromiseRejection if promise rejections aren't caught immediately
        // after they're returned, so unit tests break if this `&& delay` isn't here or if delay > 0
        if (tryCount > 0 && delay) {
            await Object(_sleep__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(currentDelay);
            if (exponentialBackoff) {
                // eslint-disable-next-line @typescript-eslint/no-magic-numbers
                currentDelay *= 2;
            }
        }
        tryCount++;
        try {
            value = await fn();
            return value;
        }
        catch (error) {
            logger && logger.warn(`attempt ${tryCount} failed`, error, fn);
            lastError = error;
        }
    } while (tryCount < maxTries);
    logger && logger.error(`all ${maxTries} attempts failed`, fn);
    throw lastError;
}
/* harmony default export */ __webpack_exports__["a"] = (retry);


/***/ }),

/***/ "ADsP":
/***/ (function(module) {

module.exports = JSON.parse("{\"steps\":\"{currentStep} / {totalSteps}\"}");

/***/ }),

/***/ "AFlv":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _stores_Settings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("5u1M");

/**
 * @param  {IAssetModel} element - the selected document of type IAssetModel which has the docUriForHost / assetRef
 * that hosts require.
 * @param  {IOnAfterOperation} afterOpCallback? - the post-operation callback. Some hosts provide an `after*`
 * callback to do some cleanups post operation, which the component will call once the operation succeeds.
 */
/* harmony default export */ __webpack_exports__["a"] = ((assetRef, afterOpCallback) => {
    try {
        if (afterOpCallback && assetRef) {
            afterOpCallback(assetRef);
        }
    }
    catch (error) {
        _stores_Settings__WEBPACK_IMPORTED_MODULE_0__[/* settings */ "b"].logger.error(`Error calling after-operation callback ${error}`);
    }
});


/***/ }),

/***/ "AMe2":
/***/ (function(module, exports, __webpack_require__) {

module.exports = __webpack_require__.p + "assets/start/XD_Jump_Start_Designs_With_UI_Kits@2x.jpg";

/***/ }),

/***/ "AN/Y":
/***/ (function(module, exports, __webpack_require__) {

!function (e, a) {
   true ? module.exports = a() : undefined;
}(this, function () {
  "use strict";

  return [{
    locale: "tr",
    pluralRuleFunction: function (e, a) {
      return a ? "other" : 1 == e ? "one" : "other";
    },
    fields: {
      year: {
        displayName: "yıl",
        relative: {
          0: "bu yıl",
          1: "gelecek yıl",
          "-1": "geçen yıl"
        },
        relativeTime: {
          future: {
            one: "{0} yıl sonra",
            other: "{0} yıl sonra"
          },
          past: {
            one: "{0} yıl önce",
            other: "{0} yıl önce"
          }
        }
      },
      "year-short": {
        displayName: "yıl",
        relative: {
          0: "bu yıl",
          1: "gelecek yıl",
          "-1": "geçen yıl"
        },
        relativeTime: {
          future: {
            one: "{0} yıl sonra",
            other: "{0} yıl sonra"
          },
          past: {
            one: "{0} yıl önce",
            other: "{0} yıl önce"
          }
        }
      },
      month: {
        displayName: "ay",
        relative: {
          0: "bu ay",
          1: "gelecek ay",
          "-1": "geçen ay"
        },
        relativeTime: {
          future: {
            one: "{0} ay sonra",
            other: "{0} ay sonra"
          },
          past: {
            one: "{0} ay önce",
            other: "{0} ay önce"
          }
        }
      },
      "month-short": {
        displayName: "ay",
        relative: {
          0: "bu ay",
          1: "gelecek ay",
          "-1": "geçen ay"
        },
        relativeTime: {
          future: {
            one: "{0} ay sonra",
            other: "{0} ay sonra"
          },
          past: {
            one: "{0} ay önce",
            other: "{0} ay önce"
          }
        }
      },
      day: {
        displayName: "gün",
        relative: {
          0: "bugün",
          1: "yarın",
          2: "öbür gün",
          "-2": "evvelsi gün",
          "-1": "dün"
        },
        relativeTime: {
          future: {
            one: "{0} gün sonra",
            other: "{0} gün sonra"
          },
          past: {
            one: "{0} gün önce",
            other: "{0} gün önce"
          }
        }
      },
      "day-short": {
        displayName: "gün",
        relative: {
          0: "bugün",
          1: "yarın",
          2: "öbür gün",
          "-2": "evvelsi gün",
          "-1": "dün"
        },
        relativeTime: {
          future: {
            one: "{0} gün sonra",
            other: "{0} gün sonra"
          },
          past: {
            one: "{0} gün önce",
            other: "{0} gün önce"
          }
        }
      },
      hour: {
        displayName: "saat",
        relative: {
          0: "bu saat"
        },
        relativeTime: {
          future: {
            one: "{0} saat sonra",
            other: "{0} saat sonra"
          },
          past: {
            one: "{0} saat önce",
            other: "{0} saat önce"
          }
        }
      },
      "hour-short": {
        displayName: "sa.",
        relative: {
          0: "bu saat"
        },
        relativeTime: {
          future: {
            one: "{0} sa. sonra",
            other: "{0} sa. sonra"
          },
          past: {
            one: "{0} sa. önce",
            other: "{0} sa. önce"
          }
        }
      },
      minute: {
        displayName: "dakika",
        relative: {
          0: "bu dakika"
        },
        relativeTime: {
          future: {
            one: "{0} dakika sonra",
            other: "{0} dakika sonra"
          },
          past: {
            one: "{0} dakika önce",
            other: "{0} dakika önce"
          }
        }
      },
      "minute-short": {
        displayName: "dk.",
        relative: {
          0: "bu dakika"
        },
        relativeTime: {
          future: {
            one: "{0} dk. sonra",
            other: "{0} dk. sonra"
          },
          past: {
            one: "{0} dk. önce",
            other: "{0} dk. önce"
          }
        }
      },
      second: {
        displayName: "saniye",
        relative: {
          0: "şimdi"
        },
        relativeTime: {
          future: {
            one: "{0} saniye sonra",
            other: "{0} saniye sonra"
          },
          past: {
            one: "{0} saniye önce",
            other: "{0} saniye önce"
          }
        }
      },
      "second-short": {
        displayName: "sn.",
        relative: {
          0: "şimdi"
        },
        relativeTime: {
          future: {
            one: "{0} sn. sonra",
            other: "{0} sn. sonra"
          },
          past: {
            one: "{0} sn. önce",
            other: "{0} sn. önce"
          }
        }
      }
    }
  }, {
    locale: "tr-CY",
    parentLocale: "tr"
  }];
});

/***/ }),

/***/ "ANxK":
/***/ (function(module, exports, __webpack_require__) {

/* WEBPACK VAR INJECTION */(function(Buffer) {var generatePrime = __webpack_require__("WKKt");

var primes = __webpack_require__("wk3p");

var DH = __webpack_require__("Vh22");

function getDiffieHellman(mod) {
  var prime = new Buffer(primes[mod].prime, 'hex');
  var gen = new Buffer(primes[mod].gen, 'hex');
  return new DH(prime, gen);
}

var ENCODINGS = {
  'binary': true,
  'hex': true,
  'base64': true
};

function createDiffieHellman(prime, enc, generator, genc) {
  if (Buffer.isBuffer(enc) || ENCODINGS[enc] === undefined) {
    return createDiffieHellman(prime, 'binary', enc, generator);
  }

  enc = enc || 'binary';
  genc = genc || 'binary';
  generator = generator || new Buffer([2]);

  if (!Buffer.isBuffer(generator)) {
    generator = new Buffer(generator, genc);
  }

  if (typeof prime === 'number') {
    return new DH(generatePrime(prime, generator), generator, true);
  }

  if (!Buffer.isBuffer(prime)) {
    prime = new Buffer(prime, enc);
  }

  return new DH(prime, generator, true);
}

exports.DiffieHellmanGroup = exports.createDiffieHellmanGroup = exports.getDiffieHellman = getDiffieHellman;
exports.createDiffieHellman = exports.DiffieHellman = createDiffieHellman;
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("HDXh").Buffer))

/***/ }),

/***/ "AP2z":
/***/ (function(module, exports, __webpack_require__) {

var Symbol = __webpack_require__("nmnc");
/** Used for built-in method references. */


var objectProto = Object.prototype;
/** Used to check objects for own properties. */

var hasOwnProperty = objectProto.hasOwnProperty;
/**
 * Used to resolve the
 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
 * of values.
 */

var nativeObjectToString = objectProto.toString;
/** Built-in value references. */

var symToStringTag = Symbol ? Symbol.toStringTag : undefined;
/**
 * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.
 *
 * @private
 * @param {*} value The value to query.
 * @returns {string} Returns the raw `toStringTag`.
 */

function getRawTag(value) {
  var isOwn = hasOwnProperty.call(value, symToStringTag),
      tag = value[symToStringTag];

  try {
    value[symToStringTag] = undefined;
    var unmasked = true;
  } catch (e) {}

  var result = nativeObjectToString.call(value);

  if (unmasked) {
    if (isOwn) {
      value[symToStringTag] = tag;
    } else {
      delete value[symToStringTag];
    }
  }

  return result;
}

module.exports = getRawTag;

/***/ }),

/***/ "AQj1":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return changeProps; });
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
/**
 * React Virtualized uses simple comparison of props to determine whether or not it should rerender its contents.
 * This often means it doesn't re-render when we think it should. For example, if we don't pass the array of items to
 * render, it won't re-render if the array is replaced with new data. Even if we do pass the elements,
 * it won't re-render if the array is sorted.
 *
 * To fix this, we can pass additional props that trigger a change...but we don't want to pass props that could collide
 * with React Virtualized props. Also it's tedious to type out all the props that could change. Enter this utility!
 *
 *    <Grid
 *        width={width}
 *        height={height}
 *        {...changeProps(activeSort, activeSortDir, elements.length, selectedItems)}
 *    />
 *
 * @param args
 * @returns {*|{}}
 */
function changeProps(...args) {
    return args.reduce((result, arg, i) => {
        result[`_dummy${i}`] = arg;
        return result;
    }, {});
}


/***/ }),

/***/ "AUX7":
/***/ (function(module, exports) {

exports.encrypt = function (self, block) {
  return self._cipher.encryptBlock(block);
};

exports.decrypt = function (self, block) {
  return self._cipher.decryptBlock(block);
};

/***/ }),

/***/ "AUvm":
/***/ (function(module, exports, __webpack_require__) {

"use strict";
 // ECMAScript 6 symbols shim

var global = __webpack_require__("5T2Y");

var has = __webpack_require__("B+OT");

var DESCRIPTORS = __webpack_require__("jmDH");

var $export = __webpack_require__("Y7ZC");

var redefine = __webpack_require__("kTiW");

var META = __webpack_require__("6/1s").KEY;

var $fails = __webpack_require__("KUxP");

var shared = __webpack_require__("29s/");

var setToStringTag = __webpack_require__("RfKB");

var uid = __webpack_require__("YqAc");

var wks = __webpack_require__("UWiX");

var wksExt = __webpack_require__("zLkG");

var wksDefine = __webpack_require__("Zxgi");

var enumKeys = __webpack_require__("R+7+");

var isArray = __webpack_require__("kAMH");

var anObject = __webpack_require__("5K7Z");

var isObject = __webpack_require__("93I4");

var toObject = __webpack_require__("JB68");

var toIObject = __webpack_require__("NsO/");

var toPrimitive = __webpack_require__("G8Mo");

var createDesc = __webpack_require__("rr1i");

var _create = __webpack_require__("oVml");

var gOPNExt = __webpack_require__("A5Xg");

var $GOPD = __webpack_require__("vwuL");

var $GOPS = __webpack_require__("mqlF");

var $DP = __webpack_require__("2faE");

var $keys = __webpack_require__("w6GO");

var gOPD = $GOPD.f;
var dP = $DP.f;
var gOPN = gOPNExt.f;
var $Symbol = global.Symbol;
var $JSON = global.JSON;

var _stringify = $JSON && $JSON.stringify;

var PROTOTYPE = 'prototype';
var HIDDEN = wks('_hidden');
var TO_PRIMITIVE = wks('toPrimitive');
var isEnum = {}.propertyIsEnumerable;
var SymbolRegistry = shared('symbol-registry');
var AllSymbols = shared('symbols');
var OPSymbols = shared('op-symbols');
var ObjectProto = Object[PROTOTYPE];
var USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f;
var QObject = global.QObject; // Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173

var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild; // fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687

var setSymbolDesc = DESCRIPTORS && $fails(function () {
  return _create(dP({}, 'a', {
    get: function () {
      return dP(this, 'a', {
        value: 7
      }).a;
    }
  })).a != 7;
}) ? function (it, key, D) {
  var protoDesc = gOPD(ObjectProto, key);
  if (protoDesc) delete ObjectProto[key];
  dP(it, key, D);
  if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);
} : dP;

var wrap = function (tag) {
  var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);

  sym._k = tag;
  return sym;
};

var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {
  return typeof it == 'symbol';
} : function (it) {
  return it instanceof $Symbol;
};

var $defineProperty = function defineProperty(it, key, D) {
  if (it === ObjectProto) $defineProperty(OPSymbols, key, D);
  anObject(it);
  key = toPrimitive(key, true);
  anObject(D);

  if (has(AllSymbols, key)) {
    if (!D.enumerable) {
      if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));
      it[HIDDEN][key] = true;
    } else {
      if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;
      D = _create(D, {
        enumerable: createDesc(0, false)
      });
    }

    return setSymbolDesc(it, key, D);
  }

  return dP(it, key, D);
};

var $defineProperties = function defineProperties(it, P) {
  anObject(it);
  var keys = enumKeys(P = toIObject(P));
  var i = 0;
  var l = keys.length;
  var key;

  while (l > i) $defineProperty(it, key = keys[i++], P[key]);

  return it;
};

var $create = function create(it, P) {
  return P === undefined ? _create(it) : $defineProperties(_create(it), P);
};

var $propertyIsEnumerable = function propertyIsEnumerable(key) {
  var E = isEnum.call(this, key = toPrimitive(key, true));
  if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;
  return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;
};

var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {
  it = toIObject(it);
  key = toPrimitive(key, true);
  if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;
  var D = gOPD(it, key);
  if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;
  return D;
};

var $getOwnPropertyNames = function getOwnPropertyNames(it) {
  var names = gOPN(toIObject(it));
  var result = [];
  var i = 0;
  var key;

  while (names.length > i) {
    if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);
  }

  return result;
};

var $getOwnPropertySymbols = function getOwnPropertySymbols(it) {
  var IS_OP = it === ObjectProto;
  var names = gOPN(IS_OP ? OPSymbols : toIObject(it));
  var result = [];
  var i = 0;
  var key;

  while (names.length > i) {
    if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);
  }

  return result;
}; // 19.4.1.1 Symbol([description])


if (!USE_NATIVE) {
  $Symbol = function Symbol() {
    if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');
    var tag = uid(arguments.length > 0 ? arguments[0] : undefined);

    var $set = function (value) {
      if (this === ObjectProto) $set.call(OPSymbols, value);
      if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;
      setSymbolDesc(this, tag, createDesc(1, value));
    };

    if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, {
      configurable: true,
      set: $set
    });
    return wrap(tag);
  };

  redefine($Symbol[PROTOTYPE], 'toString', function toString() {
    return this._k;
  });
  $GOPD.f = $getOwnPropertyDescriptor;
  $DP.f = $defineProperty;
  __webpack_require__("ar/p").f = gOPNExt.f = $getOwnPropertyNames;
  __webpack_require__("NV0k").f = $propertyIsEnumerable;
  $GOPS.f = $getOwnPropertySymbols;

  if (DESCRIPTORS && !__webpack_require__("uOPS")) {
    redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);
  }

  wksExt.f = function (name) {
    return wrap(wks(name));
  };
}

$export($export.G + $export.W + $export.F * !USE_NATIVE, {
  Symbol: $Symbol
});

for (var es6Symbols = // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14
'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'.split(','), j = 0; es6Symbols.length > j;) wks(es6Symbols[j++]);

for (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);

$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {
  // 19.4.2.1 Symbol.for(key)
  'for': function (key) {
    return has(SymbolRegistry, key += '') ? SymbolRegistry[key] : SymbolRegistry[key] = $Symbol(key);
  },
  // 19.4.2.5 Symbol.keyFor(sym)
  keyFor: function keyFor(sym) {
    if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');

    for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;
  },
  useSetter: function () {
    setter = true;
  },
  useSimple: function () {
    setter = false;
  }
});
$export($export.S + $export.F * !USE_NATIVE, 'Object', {
  // 19.1.2.2 Object.create(O [, Properties])
  create: $create,
  // 19.1.2.4 Object.defineProperty(O, P, Attributes)
  defineProperty: $defineProperty,
  // 19.1.2.3 Object.defineProperties(O, Properties)
  defineProperties: $defineProperties,
  // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
  getOwnPropertyDescriptor: $getOwnPropertyDescriptor,
  // 19.1.2.7 Object.getOwnPropertyNames(O)
  getOwnPropertyNames: $getOwnPropertyNames,
  // 19.1.2.8 Object.getOwnPropertySymbols(O)
  getOwnPropertySymbols: $getOwnPropertySymbols
}); // Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives
// https://bugs.chromium.org/p/v8/issues/detail?id=3443

var FAILS_ON_PRIMITIVES = $fails(function () {
  $GOPS.f(1);
});
$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', {
  getOwnPropertySymbols: function getOwnPropertySymbols(it) {
    return $GOPS.f(toObject(it));
  }
}); // 24.3.2 JSON.stringify(value [, replacer [, space]])

$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {
  var S = $Symbol(); // MS Edge converts symbol values to JSON as {}
  // WebKit converts symbol values to JSON as null
  // V8 throws on boxed symbols

  return _stringify([S]) != '[null]' || _stringify({
    a: S
  }) != '{}' || _stringify(Object(S)) != '{}';
})), 'JSON', {
  stringify: function stringify(it) {
    var args = [it];
    var i = 1;
    var replacer, $replacer;

    while (arguments.length > i) args.push(arguments[i++]);

    $replacer = replacer = args[1];
    if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined

    if (!isArray(replacer)) replacer = function (key, value) {
      if (typeof $replacer == 'function') value = $replacer.call(this, key, value);
      if (!isSymbol(value)) return value;
    };
    args[1] = replacer;
    return _stringify.apply($JSON, args);
  }
}); // 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)

$Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__("NegM")($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf); // 19.4.3.5 Symbol.prototype[@@toStringTag]

setToStringTag($Symbol, 'Symbol'); // 20.2.1.9 Math[@@toStringTag]

setToStringTag(Math, 'Math', true); // 24.3.3 JSON[@@toStringTag]

setToStringTag(global.JSON, 'JSON', true);

/***/ }),

/***/ "AXVi":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* unused harmony export INVALID_REGEX */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return VALIDATION_INVALID_CHARS; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ReactSpectrumValidationState; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return ValidationStatus; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return fileNameValidator; });
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
const MAX_NAME_LENGTH = 200;
const INVALID_REGEX = {
    //   \ : * ? " / | < >
    badPrintableCharacters: /[\\:*?"/|<>]/,
    // ASCII character codes 0 - 31
    badUnprintableCharacters: /[\x00-\x1F]/,
    // Files cannot be one of these names, with or without an extension
    // CON PRN AUX NUL COM1 COM2 ... COM9 LPT1 ... LPT9
    restrictedFileNames: /^((?:CON|PRN|AUX|NUL|COM[1-9]|LPT[1-9])(?:\.[^.]*)?$)/i,
    // Files cannot end with space or period
    badFileEnding: /[\s.]$/,
};
const VALIDATION_INVALID_CHARS = '\\ / * ? " | : < >';
var ReactSpectrumValidationState;
(function (ReactSpectrumValidationState) {
    ReactSpectrumValidationState["invalid"] = "invalid";
    ReactSpectrumValidationState["valid"] = "valid";
    ReactSpectrumValidationState["indeterminate"] = "";
})(ReactSpectrumValidationState || (ReactSpectrumValidationState = {}));
var ValidationStatus;
(function (ValidationStatus) {
    ValidationStatus["valid"] = "valid";
    ValidationStatus["invalidChar"] = "invalidChar";
    ValidationStatus["invalidName"] = "invalidName";
    ValidationStatus["invalidEnd"] = "invalidEnd";
    // 'charRestriction' means 'too many characters'
    // TODO: maybe rename to `invalidLength` and fix string ids to match
    // Jira: https://jira.corp.adobe.com/browse/CCXCD-2978
    ValidationStatus["charRestriction"] = "charRestriction";
    ValidationStatus["duplicateName"] = "duplicateName";
})(ValidationStatus || (ValidationStatus = {}));
function fileNameValidator(newName) {
    if (newName.length > MAX_NAME_LENGTH) {
        return ValidationStatus.charRestriction;
    }
    // We can show these characters in an error message, so there's a specific ValidationStatus for this case
    if (INVALID_REGEX.badPrintableCharacters.test(newName)) {
        return ValidationStatus.invalidChar;
    }
    // It would be too confusing to describe "bad characters" as an ASCII range. It's also too confusing to
    // explain that not every file name works on all OSes. So these two cases get lumped into a generic "invalid"
    // case.
    if (INVALID_REGEX.badUnprintableCharacters.test(newName) ||
        INVALID_REGEX.restrictedFileNames.test(newName)) {
        return ValidationStatus.invalidName;
    }
    // Currently, we don't have a separate error message to show about invalid filename endings, so it's
    // also grouped with the generic "invalid" category
    if (INVALID_REGEX.badFileEnding.test(newName)) {
        return ValidationStatus.invalidEnd;
    }
    // None of the above applies, so it's good
    return ValidationStatus.valid;
}


/***/ }),

/***/ "AXb1":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}


/* harmony default export */ __webpack_exports__["a"] = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("svg", _extends({
  id: "outlined",
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 160 100"
}, props), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("defs", null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M41.968 28.618a1.5 1.5 0 0 1-1.06-2.56L61.758 5.206a1.5 1.5 0 0 1 2.121 2.12L43.028 28.18a1.495 1.495 0 0 1-1.06.44z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M62.82 28.618a1.495 1.495 0 0 1-1.06-.44L40.906 7.328a1.5 1.5 0 0 1 2.121-2.121L63.88 26.058a1.5 1.5 0 0 1-1.06 2.56z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("g", {
  id: "filter_lg",
  "data-name": "filter lg"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M75.563 95.232a3.825 3.825 0 0 1-1.409-.27 3.774 3.774 0 0 1-2.393-3.525V58.589L53.634 36.004a1.5 1.5 0 1 1 2.34-1.878L74.43 57.123a1.499 1.499 0 0 1 .33.939v33.375a.793.793 0 0 0 1.37.543l8.369-8.87a4.645 4.645 0 0 0 1.271-3.2V58.061a1.496 1.496 0 0 1 .3-.899l30.14-40.265a1.582 1.582 0 0 0-1.267-2.53H72.78a1.5 1.5 0 0 1 0-3h42.165a4.583 4.583 0 0 1 3.67 7.328L88.77 58.561v21.348a7.634 7.634 0 0 1-2.09 5.26l-8.368 8.87a3.772 3.772 0 0 1-2.75 1.193z"
}))));

/***/ }),

/***/ "AXck":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var _interopRequireDefault = __webpack_require__("TqRt");

exports.__esModule = true;
exports.default = offsetParent;

var _ownerDocument = _interopRequireDefault(__webpack_require__("o43f"));

var _style = _interopRequireDefault(__webpack_require__("sKrG"));

function nodeName(node) {
  return node.nodeName && node.nodeName.toLowerCase();
}

function offsetParent(node) {
  var doc = (0, _ownerDocument.default)(node),
      offsetParent = node && node.offsetParent;

  while (offsetParent && nodeName(node) !== 'html' && (0, _style.default)(offsetParent, 'position') === 'static') {
    offsetParent = offsetParent.offsetParent;
  }

  return offsetParent || doc.documentElement;
}

module.exports = exports["default"];

/***/ }),

/***/ "AYSA":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var assert = __webpack_require__("2j6C");

function Cipher(options) {
  this.options = options;
  this.type = this.options.type;
  this.blockSize = 8;

  this._init();

  this.buffer = new Array(this.blockSize);
  this.bufferOff = 0;
}

module.exports = Cipher;

Cipher.prototype._init = function _init() {// Might be overrided
};

Cipher.prototype.update = function update(data) {
  if (data.length === 0) return [];
  if (this.type === 'decrypt') return this._updateDecrypt(data);else return this._updateEncrypt(data);
};

Cipher.prototype._buffer = function _buffer(data, off) {
  // Append data to buffer
  var min = Math.min(this.buffer.length - this.bufferOff, data.length - off);

  for (var i = 0; i < min; i++) this.buffer[this.bufferOff + i] = data[off + i];

  this.bufferOff += min; // Shift next

  return min;
};

Cipher.prototype._flushBuffer = function _flushBuffer(out, off) {
  this._update(this.buffer, 0, out, off);

  this.bufferOff = 0;
  return this.blockSize;
};

Cipher.prototype._updateEncrypt = function _updateEncrypt(data) {
  var inputOff = 0;
  var outputOff = 0;
  var count = (this.bufferOff + data.length) / this.blockSize | 0;
  var out = new Array(count * this.blockSize);

  if (this.bufferOff !== 0) {
    inputOff += this._buffer(data, inputOff);
    if (this.bufferOff === this.buffer.length) outputOff += this._flushBuffer(out, outputOff);
  } // Write blocks


  var max = data.length - (data.length - inputOff) % this.blockSize;

  for (; inputOff < max; inputOff += this.blockSize) {
    this._update(data, inputOff, out, outputOff);

    outputOff += this.blockSize;
  } // Queue rest


  for (; inputOff < data.length; inputOff++, this.bufferOff++) this.buffer[this.bufferOff] = data[inputOff];

  return out;
};

Cipher.prototype._updateDecrypt = function _updateDecrypt(data) {
  var inputOff = 0;
  var outputOff = 0;
  var count = Math.ceil((this.bufferOff + data.length) / this.blockSize) - 1;
  var out = new Array(count * this.blockSize); // TODO(indutny): optimize it, this is far from optimal

  for (; count > 0; count--) {
    inputOff += this._buffer(data, inputOff);
    outputOff += this._flushBuffer(out, outputOff);
  } // Buffer rest of the input


  inputOff += this._buffer(data, inputOff);
  return out;
};

Cipher.prototype.final = function final(buffer) {
  var first;
  if (buffer) first = this.update(buffer);
  var last;
  if (this.type === 'encrypt') last = this._finalEncrypt();else last = this._finalDecrypt();
  if (first) return first.concat(last);else return last;
};

Cipher.prototype._pad = function _pad(buffer, off) {
  if (off === 0) return false;

  while (off < buffer.length) buffer[off++] = 0;

  return true;
};

Cipher.prototype._finalEncrypt = function _finalEncrypt() {
  if (!this._pad(this.buffer, this.bufferOff)) return [];
  var out = new Array(this.blockSize);

  this._update(this.buffer, 0, out, 0);

  return out;
};

Cipher.prototype._unpad = function _unpad(buffer) {
  return buffer;
};

Cipher.prototype._finalDecrypt = function _finalDecrypt() {
  assert.equal(this.bufferOff, this.blockSize, 'Not enough data to decrypt');
  var out = new Array(this.blockSize);

  this._flushBuffer(out, 0);

  return this._unpad(out);
};

/***/ }),

/***/ "AYz0":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, props, _react2.default.createElement("svg", {
    className: "spectrum-UIIcon-DashSmall"
  }, _react2.default.createElement("path", {
    d: "M8 4H2a1 1 0 0 0 0 2h6a1 1 0 0 0 0-2z",
    className: "spectrum-UIIcon--medium"
  }), _react2.default.createElement("path", {
    d: "M10.99 5H1.01a1 1 0 0 0 0 2h9.98a1 1 0 1 0 0-2z",
    className: "spectrum-UIIcon--large"
  })));
};

WrappedIcon.displayName = 'DashSmall';
exports.default = WrappedIcon;

/***/ }),

/***/ "Aa4J":
/***/ (function(module, exports, __webpack_require__) {

module.exports = __webpack_require__.p + "assets/start/Banner_Video@2x.png";

/***/ }),

/***/ "AhHn":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


const constants = exports; // Helper

constants._reverse = function reverse(map) {
  const res = {};
  Object.keys(map).forEach(function (key) {
    // Convert key to integer if it is stringified
    if ((key | 0) == key) key = key | 0;
    const value = map[key];
    res[value] = key;
  });
  return res;
};

constants.der = __webpack_require__("i3FT");

/***/ }),

/***/ "AiiT":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("o1r7"),
      24: __webpack_require__("PZGr")
    }
  }));
};

WrappedIcon.displayName = 'InfoOutline';
exports.default = WrappedIcon;

/***/ }),

/***/ "AnWb":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0; // ////////////////////////////////////////////////////////////////////
//  DO NOT modify this file by hand.
//  contents generated by extract-dna.js
// ////////////////////////////////////////////////////////////////////

var _default = {
  'elements': {
    'lightest': {
      'medium': {
        'circleloader': {
          'large': {
            'states': {
              'default': {
                'text-color': 'rgb(80, 80, 80)',
                'track-color': 'rgb(234, 234, 234)',
                'track-fill-color': 'rgb(38, 128, 235)'
              }
            },
            'dimensions': {
              'height': '64px',
              'width': '64px',
              'border-size': '4px'
            }
          },
          'large-over-background': {
            'states': {
              'default': {
                'text-color': 'rgb(255, 255, 255)',
                'track-color': 'rgba(255,255,255,0.2)',
                'track-fill-color': 'rgb(255, 255, 255)'
              }
            },
            'dimensions': {
              'height': '64px',
              'width': '64px',
              'border-size': '4px'
            }
          },
          'medium': {
            'states': {
              'default': {
                'text-color': 'rgb(80, 80, 80)',
                'track-color': 'rgb(234, 234, 234)',
                'track-fill-color': 'rgb(38, 128, 235)'
              }
            },
            'dimensions': {
              'height': '32px',
              'width': '32px',
              'border-size': '3px'
            }
          },
          'medium-over-background': {
            'states': {
              'default': {
                'text-color': 'rgb(255, 255, 255)',
                'track-color': 'rgba(255,255,255,0.2)',
                'track-fill-color': 'rgb(255, 255, 255)'
              }
            },
            'dimensions': {
              'height': '32px',
              'width': '32px',
              'border-size': '3px'
            }
          },
          'small': {
            'states': {
              'default': {
                'text-color': 'rgb(80, 80, 80)',
                'track-color': 'rgb(234, 234, 234)',
                'track-fill-color': 'rgb(38, 128, 235)'
              }
            },
            'dimensions': {
              'height': '16px',
              'width': '16px',
              'border-size': '2px'
            }
          },
          'small-over-background': {
            'states': {
              'default': {
                'text-color': 'rgb(255, 255, 255)',
                'track-color': 'rgba(255,255,255,0.2)',
                'track-fill-color': 'rgb(255, 255, 255)'
              }
            },
            'dimensions': {
              'height': '16px',
              'width': '16px',
              'border-size': '2px'
            }
          }
        },
        'coachmark': {
          'default': {
            'dimensions': {
              'indicator-ring-border-size': '2px',
              'animation-indicator-ring-duration': '3000ms',
              'animation-indicator-keyframe-50-opacity': '0.6',
              'indicator-ring-diameter': '16px'
            },
            'states': {
              'default': {
                'indicator-ring-default-color': 'rgb(55, 142, 240)'
              }
            }
          },
          'quiet': {
            'dimensions': {
              'indicator-ring-border-size': '2px',
              'animation-indicator-ring-duration': '3000ms',
              'animation-indicator-keyframe-50-opacity': '0.6',
              'indicator-ring-diameter': '8px'
            },
            'states': {
              'default': {
                'indicator-ring-default-color': 'rgb(55, 142, 240)'
              }
            }
          }
        },
        'popover': {
          'default': {
            'states': {
              'default': {
                'background-color': 'rgb(255, 255, 255)',
                'border-color': 'rgb(211, 211, 211)'
              }
            }
          }
        },
        'sidenav': {
          'default': {
            'states': {
              'key-focus': {
                'item-border-color': 'rgb(55, 142, 240)'
              }
            }
          },
          'multilevel': {
            'states': {
              'key-focus': {
                'item-border-color': 'rgb(55, 142, 240)'
              }
            }
          }
        },
        'textfield': {
          'default': {
            'states': {
              'default': {
                'background-color': 'rgb(255, 255, 255)',
                'border-color': 'rgb(234, 234, 234)'
              },
              'disabled': {
                'background-color': 'rgb(244, 244, 244)',
                'border-color': 'transparent'
              },
              'mouse-focus': {
                'background-color': 'rgb(255, 255, 255)',
                'border-color': 'rgb(38, 128, 235)'
              }
            }
          },
          'quiet': {
            'states': {
              'default': {
                'background-color': 'transparent',
                'border-color': 'rgb(234, 234, 234)'
              },
              'disabled': {
                'background-color': 'transparent',
                'border-color': 'rgb(234, 234, 234)'
              },
              'mouse-focus': {
                'background-color': 'transparent',
                'border-color': 'rgb(38, 128, 235)'
              }
            }
          }
        },
        'tooltip': {
          'default': {
            'states': {
              'default': {
                'tip-color': 'rgb(116, 116, 116)'
              }
            }
          },
          'info': {
            'states': {
              'default': {
                'tip-color': 'rgb(13, 102, 208)'
              }
            }
          },
          'negative': {
            'states': {
              'default': {
                'tip-color': 'rgb(201, 37, 45)'
              }
            }
          },
          'positive': {
            'states': {
              'default': {
                'tip-color': 'rgb(18, 128, 92)'
              }
            }
          }
        }
      },
      'large': {
        'circleloader': {
          'large': {
            'states': {
              'default': {
                'text-color': 'rgb(80, 80, 80)',
                'track-color': 'rgb(234, 234, 234)',
                'track-fill-color': 'rgb(38, 128, 235)'
              }
            },
            'dimensions': {
              'height': '80px',
              'width': '80px',
              'border-size': '5px'
            }
          },
          'large-over-background': {
            'states': {
              'default': {
                'text-color': 'rgb(255, 255, 255)',
                'track-color': 'rgba(255,255,255,0.2)',
                'track-fill-color': 'rgb(255, 255, 255)'
              }
            },
            'dimensions': {
              'height': '80px',
              'width': '80px',
              'border-size': '5px'
            }
          },
          'medium': {
            'states': {
              'default': {
                'text-color': 'rgb(80, 80, 80)',
                'track-color': 'rgb(234, 234, 234)',
                'track-fill-color': 'rgb(38, 128, 235)'
              }
            },
            'dimensions': {
              'height': '40px',
              'width': '40px',
              'border-size': '4px'
            }
          },
          'medium-over-background': {
            'states': {
              'default': {
                'text-color': 'rgb(255, 255, 255)',
                'track-color': 'rgba(255,255,255,0.2)',
                'track-fill-color': 'rgb(255, 255, 255)'
              }
            },
            'dimensions': {
              'height': '40px',
              'width': '40px',
              'border-size': '4px'
            }
          },
          'small': {
            'states': {
              'default': {
                'text-color': 'rgb(80, 80, 80)',
                'track-color': 'rgb(234, 234, 234)',
                'track-fill-color': 'rgb(38, 128, 235)'
              }
            },
            'dimensions': {
              'height': '20px',
              'width': '20px',
              'border-size': '3px'
            }
          },
          'small-over-background': {
            'states': {
              'default': {
                'text-color': 'rgb(255, 255, 255)',
                'track-color': 'rgba(255,255,255,0.2)',
                'track-fill-color': 'rgb(255, 255, 255)'
              }
            },
            'dimensions': {
              'height': '20px',
              'width': '20px',
              'border-size': '3px'
            }
          }
        },
        'coachmark': {
          'default': {
            'dimensions': {
              'indicator-ring-border-size': '2px',
              'animation-indicator-ring-duration': '3000ms',
              'animation-indicator-keyframe-50-opacity': '0.6',
              'indicator-ring-diameter': '20px'
            },
            'states': {
              'default': {
                'indicator-ring-default-color': 'rgb(55, 142, 240)'
              }
            }
          },
          'quiet': {
            'dimensions': {
              'indicator-ring-border-size': '2px',
              'animation-indicator-ring-duration': '3000ms',
              'animation-indicator-keyframe-50-opacity': '0.6',
              'indicator-ring-diameter': '10px'
            },
            'states': {
              'default': {
                'indicator-ring-default-color': 'rgb(55, 142, 240)'
              }
            }
          }
        },
        'popover': {
          'default': {
            'states': {
              'default': {
                'background-color': 'rgb(255, 255, 255)',
                'border-color': 'rgb(211, 211, 211)'
              }
            }
          }
        },
        'sidenav': {
          'default': {
            'states': {
              'key-focus': {
                'item-border-color': 'rgb(55, 142, 240)'
              }
            }
          },
          'multilevel': {
            'states': {
              'key-focus': {
                'item-border-color': 'rgb(55, 142, 240)'
              }
            }
          }
        },
        'textfield': {
          'default': {
            'states': {
              'default': {
                'background-color': 'rgb(255, 255, 255)',
                'border-color': 'rgb(234, 234, 234)'
              },
              'disabled': {
                'background-color': 'rgb(244, 244, 244)',
                'border-color': 'transparent'
              },
              'mouse-focus': {
                'background-color': 'rgb(255, 255, 255)',
                'border-color': 'rgb(38, 128, 235)'
              }
            }
          },
          'quiet': {
            'states': {
              'default': {
                'background-color': 'transparent',
                'border-color': 'rgb(234, 234, 234)'
              },
              'disabled': {
                'background-color': 'transparent',
                'border-color': 'rgb(234, 234, 234)'
              },
              'mouse-focus': {
                'background-color': 'transparent',
                'border-color': 'rgb(38, 128, 235)'
              }
            }
          }
        },
        'tooltip': {
          'default': {
            'states': {
              'default': {
                'tip-color': 'rgb(116, 116, 116)'
              }
            }
          },
          'info': {
            'states': {
              'default': {
                'tip-color': 'rgb(13, 102, 208)'
              }
            }
          },
          'negative': {
            'states': {
              'default': {
                'tip-color': 'rgb(201, 37, 45)'
              }
            }
          },
          'positive': {
            'states': {
              'default': {
                'tip-color': 'rgb(18, 128, 92)'
              }
            }
          }
        }
      }
    },
    'light': {
      'medium': {
        'circleloader': {
          'large': {
            'states': {
              'default': {
                'text-color': 'rgb(75, 75, 75)',
                'track-color': 'rgb(225, 225, 225)',
                'track-fill-color': 'rgb(20, 115, 230)'
              }
            },
            'dimensions': {
              'height': '64px',
              'width': '64px',
              'border-size': '4px'
            }
          },
          'large-over-background': {
            'states': {
              'default': {
                'text-color': 'rgb(255, 255, 255)',
                'track-color': 'rgba(255,255,255,0.2)',
                'track-fill-color': 'rgb(255, 255, 255)'
              }
            },
            'dimensions': {
              'height': '64px',
              'width': '64px',
              'border-size': '4px'
            }
          },
          'medium': {
            'states': {
              'default': {
                'text-color': 'rgb(75, 75, 75)',
                'track-color': 'rgb(225, 225, 225)',
                'track-fill-color': 'rgb(20, 115, 230)'
              }
            },
            'dimensions': {
              'height': '32px',
              'width': '32px',
              'border-size': '3px'
            }
          },
          'medium-over-background': {
            'states': {
              'default': {
                'text-color': 'rgb(255, 255, 255)',
                'track-color': 'rgba(255,255,255,0.2)',
                'track-fill-color': 'rgb(255, 255, 255)'
              }
            },
            'dimensions': {
              'height': '32px',
              'width': '32px',
              'border-size': '3px'
            }
          },
          'small': {
            'states': {
              'default': {
                'text-color': 'rgb(75, 75, 75)',
                'track-color': 'rgb(225, 225, 225)',
                'track-fill-color': 'rgb(20, 115, 230)'
              }
            },
            'dimensions': {
              'height': '16px',
              'width': '16px',
              'border-size': '2px'
            }
          },
          'small-over-background': {
            'states': {
              'default': {
                'text-color': 'rgb(255, 255, 255)',
                'track-color': 'rgba(255,255,255,0.2)',
                'track-fill-color': 'rgb(255, 255, 255)'
              }
            },
            'dimensions': {
              'height': '16px',
              'width': '16px',
              'border-size': '2px'
            }
          }
        },
        'coachmark': {
          'default': {
            'dimensions': {
              'indicator-ring-border-size': '2px',
              'animation-indicator-ring-duration': '3000ms',
              'animation-indicator-keyframe-50-opacity': '0.6',
              'indicator-ring-diameter': '16px'
            },
            'states': {
              'default': {
                'indicator-ring-default-color': 'rgb(38, 128, 235)'
              }
            }
          },
          'quiet': {
            'dimensions': {
              'indicator-ring-border-size': '2px',
              'animation-indicator-ring-duration': '3000ms',
              'animation-indicator-keyframe-50-opacity': '0.6',
              'indicator-ring-diameter': '8px'
            },
            'states': {
              'default': {
                'indicator-ring-default-color': 'rgb(38, 128, 235)'
              }
            }
          }
        },
        'popover': {
          'default': {
            'states': {
              'default': {
                'background-color': 'rgb(255, 255, 255)',
                'border-color': 'rgb(202, 202, 202)'
              }
            }
          }
        },
        'sidenav': {
          'default': {
            'states': {
              'key-focus': {
                'item-border-color': 'rgb(38, 128, 235)'
              }
            }
          },
          'multilevel': {
            'states': {
              'key-focus': {
                'item-border-color': 'rgb(38, 128, 235)'
              }
            }
          }
        },
        'textfield': {
          'default': {
            'states': {
              'default': {
                'background-color': 'rgb(255, 255, 255)',
                'border-color': 'rgb(225, 225, 225)'
              },
              'disabled': {
                'background-color': 'rgb(234, 234, 234)',
                'border-color': 'transparent'
              },
              'mouse-focus': {
                'background-color': 'rgb(255, 255, 255)',
                'border-color': 'rgb(20, 115, 230)'
              }
            }
          },
          'quiet': {
            'states': {
              'default': {
                'background-color': 'transparent',
                'border-color': 'rgb(225, 225, 225)'
              },
              'disabled': {
                'background-color': 'transparent',
                'border-color': 'rgb(225, 225, 225)'
              },
              'mouse-focus': {
                'background-color': 'transparent',
                'border-color': 'rgb(20, 115, 230)'
              }
            }
          }
        },
        'tooltip': {
          'default': {
            'states': {
              'default': {
                'tip-color': 'rgb(116, 116, 116)'
              }
            }
          },
          'info': {
            'states': {
              'default': {
                'tip-color': 'rgb(13, 102, 208)'
              }
            }
          },
          'negative': {
            'states': {
              'default': {
                'tip-color': 'rgb(201, 37, 45)'
              }
            }
          },
          'positive': {
            'states': {
              'default': {
                'tip-color': 'rgb(18, 128, 92)'
              }
            }
          }
        }
      },
      'large': {
        'circleloader': {
          'large': {
            'states': {
              'default': {
                'text-color': 'rgb(75, 75, 75)',
                'track-color': 'rgb(225, 225, 225)',
                'track-fill-color': 'rgb(20, 115, 230)'
              }
            },
            'dimensions': {
              'height': '80px',
              'width': '80px',
              'border-size': '5px'
            }
          },
          'large-over-background': {
            'states': {
              'default': {
                'text-color': 'rgb(255, 255, 255)',
                'track-color': 'rgba(255,255,255,0.2)',
                'track-fill-color': 'rgb(255, 255, 255)'
              }
            },
            'dimensions': {
              'height': '80px',
              'width': '80px',
              'border-size': '5px'
            }
          },
          'medium': {
            'states': {
              'default': {
                'text-color': 'rgb(75, 75, 75)',
                'track-color': 'rgb(225, 225, 225)',
                'track-fill-color': 'rgb(20, 115, 230)'
              }
            },
            'dimensions': {
              'height': '40px',
              'width': '40px',
              'border-size': '4px'
            }
          },
          'medium-over-background': {
            'states': {
              'default': {
                'text-color': 'rgb(255, 255, 255)',
                'track-color': 'rgba(255,255,255,0.2)',
                'track-fill-color': 'rgb(255, 255, 255)'
              }
            },
            'dimensions': {
              'height': '40px',
              'width': '40px',
              'border-size': '4px'
            }
          },
          'small': {
            'states': {
              'default': {
                'text-color': 'rgb(75, 75, 75)',
                'track-color': 'rgb(225, 225, 225)',
                'track-fill-color': 'rgb(20, 115, 230)'
              }
            },
            'dimensions': {
              'height': '20px',
              'width': '20px',
              'border-size': '3px'
            }
          },
          'small-over-background': {
            'states': {
              'default': {
                'text-color': 'rgb(255, 255, 255)',
                'track-color': 'rgba(255,255,255,0.2)',
                'track-fill-color': 'rgb(255, 255, 255)'
              }
            },
            'dimensions': {
              'height': '20px',
              'width': '20px',
              'border-size': '3px'
            }
          }
        },
        'coachmark': {
          'default': {
            'dimensions': {
              'indicator-ring-border-size': '2px',
              'animation-indicator-ring-duration': '3000ms',
              'animation-indicator-keyframe-50-opacity': '0.6',
              'indicator-ring-diameter': '20px'
            },
            'states': {
              'default': {
                'indicator-ring-default-color': 'rgb(38, 128, 235)'
              }
            }
          },
          'quiet': {
            'dimensions': {
              'indicator-ring-border-size': '2px',
              'animation-indicator-ring-duration': '3000ms',
              'animation-indicator-keyframe-50-opacity': '0.6',
              'indicator-ring-diameter': '10px'
            },
            'states': {
              'default': {
                'indicator-ring-default-color': 'rgb(38, 128, 235)'
              }
            }
          }
        },
        'popover': {
          'default': {
            'states': {
              'default': {
                'background-color': 'rgb(255, 255, 255)',
                'border-color': 'rgb(202, 202, 202)'
              }
            }
          }
        },
        'sidenav': {
          'default': {
            'states': {
              'key-focus': {
                'item-border-color': 'rgb(38, 128, 235)'
              }
            }
          },
          'multilevel': {
            'states': {
              'key-focus': {
                'item-border-color': 'rgb(38, 128, 235)'
              }
            }
          }
        },
        'textfield': {
          'default': {
            'states': {
              'default': {
                'background-color': 'rgb(255, 255, 255)',
                'border-color': 'rgb(225, 225, 225)'
              },
              'disabled': {
                'background-color': 'rgb(234, 234, 234)',
                'border-color': 'transparent'
              },
              'mouse-focus': {
                'background-color': 'rgb(255, 255, 255)',
                'border-color': 'rgb(20, 115, 230)'
              }
            }
          },
          'quiet': {
            'states': {
              'default': {
                'background-color': 'transparent',
                'border-color': 'rgb(225, 225, 225)'
              },
              'disabled': {
                'background-color': 'transparent',
                'border-color': 'rgb(225, 225, 225)'
              },
              'mouse-focus': {
                'background-color': 'transparent',
                'border-color': 'rgb(20, 115, 230)'
              }
            }
          }
        },
        'tooltip': {
          'default': {
            'states': {
              'default': {
                'tip-color': 'rgb(116, 116, 116)'
              }
            }
          },
          'info': {
            'states': {
              'default': {
                'tip-color': 'rgb(13, 102, 208)'
              }
            }
          },
          'negative': {
            'states': {
              'default': {
                'tip-color': 'rgb(201, 37, 45)'
              }
            }
          },
          'positive': {
            'states': {
              'default': {
                'tip-color': 'rgb(18, 128, 92)'
              }
            }
          }
        }
      }
    },
    'dark': {
      'medium': {
        'circleloader': {
          'large': {
            'states': {
              'default': {
                'text-color': 'rgb(227, 227, 227)',
                'track-color': 'rgb(74, 74, 74)',
                'track-fill-color': 'rgb(55, 142, 240)'
              }
            },
            'dimensions': {
              'height': '64px',
              'width': '64px',
              'border-size': '4px'
            }
          },
          'large-over-background': {
            'states': {
              'default': {
                'text-color': 'rgb(255, 255, 255)',
                'track-color': 'rgba(255,255,255,0.2)',
                'track-fill-color': 'rgb(255, 255, 255)'
              }
            },
            'dimensions': {
              'height': '64px',
              'width': '64px',
              'border-size': '4px'
            }
          },
          'medium': {
            'states': {
              'default': {
                'text-color': 'rgb(227, 227, 227)',
                'track-color': 'rgb(74, 74, 74)',
                'track-fill-color': 'rgb(55, 142, 240)'
              }
            },
            'dimensions': {
              'height': '32px',
              'width': '32px',
              'border-size': '3px'
            }
          },
          'medium-over-background': {
            'states': {
              'default': {
                'text-color': 'rgb(255, 255, 255)',
                'track-color': 'rgba(255,255,255,0.2)',
                'track-fill-color': 'rgb(255, 255, 255)'
              }
            },
            'dimensions': {
              'height': '32px',
              'width': '32px',
              'border-size': '3px'
            }
          },
          'small': {
            'states': {
              'default': {
                'text-color': 'rgb(227, 227, 227)',
                'track-color': 'rgb(74, 74, 74)',
                'track-fill-color': 'rgb(55, 142, 240)'
              }
            },
            'dimensions': {
              'height': '16px',
              'width': '16px',
              'border-size': '2px'
            }
          },
          'small-over-background': {
            'states': {
              'default': {
                'text-color': 'rgb(255, 255, 255)',
                'track-color': 'rgba(255,255,255,0.2)',
                'track-fill-color': 'rgb(255, 255, 255)'
              }
            },
            'dimensions': {
              'height': '16px',
              'width': '16px',
              'border-size': '2px'
            }
          }
        },
        'coachmark': {
          'default': {
            'dimensions': {
              'indicator-ring-border-size': '2px',
              'animation-indicator-ring-duration': '3000ms',
              'animation-indicator-keyframe-50-opacity': '0.6',
              'indicator-ring-diameter': '16px'
            },
            'states': {
              'default': {
                'indicator-ring-default-color': 'rgb(38, 128, 235)'
              }
            }
          },
          'quiet': {
            'dimensions': {
              'indicator-ring-border-size': '2px',
              'animation-indicator-ring-duration': '3000ms',
              'animation-indicator-keyframe-50-opacity': '0.6',
              'indicator-ring-diameter': '8px'
            },
            'states': {
              'default': {
                'indicator-ring-default-color': 'rgb(38, 128, 235)'
              }
            }
          }
        },
        'popover': {
          'default': {
            'states': {
              'default': {
                'background-color': 'rgb(37, 37, 37)',
                'border-color': 'rgb(90, 90, 90)'
              }
            }
          }
        },
        'sidenav': {
          'default': {
            'states': {
              'key-focus': {
                'item-border-color': 'rgb(38, 128, 235)'
              }
            }
          },
          'multilevel': {
            'states': {
              'key-focus': {
                'item-border-color': 'rgb(38, 128, 235)'
              }
            }
          }
        },
        'textfield': {
          'default': {
            'states': {
              'default': {
                'background-color': 'rgb(37, 37, 37)',
                'border-color': 'rgb(74, 74, 74)'
              },
              'disabled': {
                'background-color': 'rgb(62, 62, 62)',
                'border-color': 'transparent'
              },
              'mouse-focus': {
                'background-color': 'rgb(37, 37, 37)',
                'border-color': 'rgb(55, 142, 240)'
              }
            }
          },
          'quiet': {
            'states': {
              'default': {
                'background-color': 'transparent',
                'border-color': 'rgb(74, 74, 74)'
              },
              'disabled': {
                'background-color': 'transparent',
                'border-color': 'rgb(74, 74, 74)'
              },
              'mouse-focus': {
                'background-color': 'transparent',
                'border-color': 'rgb(55, 142, 240)'
              }
            }
          }
        },
        'tooltip': {
          'default': {
            'states': {
              'default': {
                'tip-color': 'rgb(116, 116, 116)'
              }
            }
          },
          'info': {
            'states': {
              'default': {
                'tip-color': 'rgb(13, 102, 208)'
              }
            }
          },
          'negative': {
            'states': {
              'default': {
                'tip-color': 'rgb(201, 37, 45)'
              }
            }
          },
          'positive': {
            'states': {
              'default': {
                'tip-color': 'rgb(18, 128, 92)'
              }
            }
          }
        }
      },
      'large': {
        'circleloader': {
          'large': {
            'states': {
              'default': {
                'text-color': 'rgb(227, 227, 227)',
                'track-color': 'rgb(74, 74, 74)',
                'track-fill-color': 'rgb(55, 142, 240)'
              }
            },
            'dimensions': {
              'height': '80px',
              'width': '80px',
              'border-size': '5px'
            }
          },
          'large-over-background': {
            'states': {
              'default': {
                'text-color': 'rgb(255, 255, 255)',
                'track-color': 'rgba(255,255,255,0.2)',
                'track-fill-color': 'rgb(255, 255, 255)'
              }
            },
            'dimensions': {
              'height': '80px',
              'width': '80px',
              'border-size': '5px'
            }
          },
          'medium': {
            'states': {
              'default': {
                'text-color': 'rgb(227, 227, 227)',
                'track-color': 'rgb(74, 74, 74)',
                'track-fill-color': 'rgb(55, 142, 240)'
              }
            },
            'dimensions': {
              'height': '40px',
              'width': '40px',
              'border-size': '4px'
            }
          },
          'medium-over-background': {
            'states': {
              'default': {
                'text-color': 'rgb(255, 255, 255)',
                'track-color': 'rgba(255,255,255,0.2)',
                'track-fill-color': 'rgb(255, 255, 255)'
              }
            },
            'dimensions': {
              'height': '40px',
              'width': '40px',
              'border-size': '4px'
            }
          },
          'small': {
            'states': {
              'default': {
                'text-color': 'rgb(227, 227, 227)',
                'track-color': 'rgb(74, 74, 74)',
                'track-fill-color': 'rgb(55, 142, 240)'
              }
            },
            'dimensions': {
              'height': '20px',
              'width': '20px',
              'border-size': '3px'
            }
          },
          'small-over-background': {
            'states': {
              'default': {
                'text-color': 'rgb(255, 255, 255)',
                'track-color': 'rgba(255,255,255,0.2)',
                'track-fill-color': 'rgb(255, 255, 255)'
              }
            },
            'dimensions': {
              'height': '20px',
              'width': '20px',
              'border-size': '3px'
            }
          }
        },
        'coachmark': {
          'default': {
            'dimensions': {
              'indicator-ring-border-size': '2px',
              'animation-indicator-ring-duration': '3000ms',
              'animation-indicator-keyframe-50-opacity': '0.6',
              'indicator-ring-diameter': '20px'
            },
            'states': {
              'default': {
                'indicator-ring-default-color': 'rgb(38, 128, 235)'
              }
            }
          },
          'quiet': {
            'dimensions': {
              'indicator-ring-border-size': '2px',
              'animation-indicator-ring-duration': '3000ms',
              'animation-indicator-keyframe-50-opacity': '0.6',
              'indicator-ring-diameter': '10px'
            },
            'states': {
              'default': {
                'indicator-ring-default-color': 'rgb(38, 128, 235)'
              }
            }
          }
        },
        'popover': {
          'default': {
            'states': {
              'default': {
                'background-color': 'rgb(37, 37, 37)',
                'border-color': 'rgb(90, 90, 90)'
              }
            }
          }
        },
        'sidenav': {
          'default': {
            'states': {
              'key-focus': {
                'item-border-color': 'rgb(38, 128, 235)'
              }
            }
          },
          'multilevel': {
            'states': {
              'key-focus': {
                'item-border-color': 'rgb(38, 128, 235)'
              }
            }
          }
        },
        'textfield': {
          'default': {
            'states': {
              'default': {
                'background-color': 'rgb(37, 37, 37)',
                'border-color': 'rgb(74, 74, 74)'
              },
              'disabled': {
                'background-color': 'rgb(62, 62, 62)',
                'border-color': 'transparent'
              },
              'mouse-focus': {
                'background-color': 'rgb(37, 37, 37)',
                'border-color': 'rgb(55, 142, 240)'
              }
            }
          },
          'quiet': {
            'states': {
              'default': {
                'background-color': 'transparent',
                'border-color': 'rgb(74, 74, 74)'
              },
              'disabled': {
                'background-color': 'transparent',
                'border-color': 'rgb(74, 74, 74)'
              },
              'mouse-focus': {
                'background-color': 'transparent',
                'border-color': 'rgb(55, 142, 240)'
              }
            }
          }
        },
        'tooltip': {
          'default': {
            'states': {
              'default': {
                'tip-color': 'rgb(116, 116, 116)'
              }
            }
          },
          'info': {
            'states': {
              'default': {
                'tip-color': 'rgb(13, 102, 208)'
              }
            }
          },
          'negative': {
            'states': {
              'default': {
                'tip-color': 'rgb(201, 37, 45)'
              }
            }
          },
          'positive': {
            'states': {
              'default': {
                'tip-color': 'rgb(18, 128, 92)'
              }
            }
          }
        }
      }
    },
    'darkest': {
      'medium': {
        'circleloader': {
          'large': {
            'states': {
              'default': {
                'text-color': 'rgb(200, 200, 200)',
                'track-color': 'rgb(57, 57, 57)',
                'track-fill-color': 'rgb(38, 128, 235)'
              }
            },
            'dimensions': {
              'height': '64px',
              'width': '64px',
              'border-size': '4px'
            }
          },
          'large-over-background': {
            'states': {
              'default': {
                'text-color': 'rgb(255, 255, 255)',
                'track-color': 'rgba(255,255,255,0.2)',
                'track-fill-color': 'rgb(255, 255, 255)'
              }
            },
            'dimensions': {
              'height': '64px',
              'width': '64px',
              'border-size': '4px'
            }
          },
          'medium': {
            'states': {
              'default': {
                'text-color': 'rgb(200, 200, 200)',
                'track-color': 'rgb(57, 57, 57)',
                'track-fill-color': 'rgb(38, 128, 235)'
              }
            },
            'dimensions': {
              'height': '32px',
              'width': '32px',
              'border-size': '3px'
            }
          },
          'medium-over-background': {
            'states': {
              'default': {
                'text-color': 'rgb(255, 255, 255)',
                'track-color': 'rgba(255,255,255,0.2)',
                'track-fill-color': 'rgb(255, 255, 255)'
              }
            },
            'dimensions': {
              'height': '32px',
              'width': '32px',
              'border-size': '3px'
            }
          },
          'small': {
            'states': {
              'default': {
                'text-color': 'rgb(200, 200, 200)',
                'track-color': 'rgb(57, 57, 57)',
                'track-fill-color': 'rgb(38, 128, 235)'
              }
            },
            'dimensions': {
              'height': '16px',
              'width': '16px',
              'border-size': '2px'
            }
          },
          'small-over-background': {
            'states': {
              'default': {
                'text-color': 'rgb(255, 255, 255)',
                'track-color': 'rgba(255,255,255,0.2)',
                'track-fill-color': 'rgb(255, 255, 255)'
              }
            },
            'dimensions': {
              'height': '16px',
              'width': '16px',
              'border-size': '2px'
            }
          }
        },
        'coachmark': {
          'default': {
            'dimensions': {
              'indicator-ring-border-size': '2px',
              'animation-indicator-ring-duration': '3000ms',
              'animation-indicator-keyframe-50-opacity': '0.6',
              'indicator-ring-diameter': '16px'
            },
            'states': {
              'default': {
                'indicator-ring-default-color': 'rgb(20, 115, 230)'
              }
            }
          },
          'quiet': {
            'dimensions': {
              'indicator-ring-border-size': '2px',
              'animation-indicator-ring-duration': '3000ms',
              'animation-indicator-keyframe-50-opacity': '0.6',
              'indicator-ring-diameter': '8px'
            },
            'states': {
              'default': {
                'indicator-ring-default-color': 'rgb(20, 115, 230)'
              }
            }
          }
        },
        'popover': {
          'default': {
            'states': {
              'default': {
                'background-color': 'rgb(8, 8, 8)',
                'border-color': 'rgb(73, 73, 73)'
              }
            }
          }
        },
        'sidenav': {
          'default': {
            'states': {
              'key-focus': {
                'item-border-color': 'rgb(20, 115, 230)'
              }
            }
          },
          'multilevel': {
            'states': {
              'key-focus': {
                'item-border-color': 'rgb(20, 115, 230)'
              }
            }
          }
        },
        'textfield': {
          'default': {
            'states': {
              'default': {
                'background-color': 'rgb(8, 8, 8)',
                'border-color': 'rgb(57, 57, 57)'
              },
              'disabled': {
                'background-color': 'rgb(44, 44, 44)',
                'border-color': 'transparent'
              },
              'mouse-focus': {
                'background-color': 'rgb(8, 8, 8)',
                'border-color': 'rgb(38, 128, 235)'
              }
            }
          },
          'quiet': {
            'states': {
              'default': {
                'background-color': 'transparent',
                'border-color': 'rgb(57, 57, 57)'
              },
              'disabled': {
                'background-color': 'transparent',
                'border-color': 'rgb(57, 57, 57)'
              },
              'mouse-focus': {
                'background-color': 'transparent',
                'border-color': 'rgb(38, 128, 235)'
              }
            }
          }
        },
        'tooltip': {
          'default': {
            'states': {
              'default': {
                'tip-color': 'rgb(116, 116, 116)'
              }
            }
          },
          'info': {
            'states': {
              'default': {
                'tip-color': 'rgb(13, 102, 208)'
              }
            }
          },
          'negative': {
            'states': {
              'default': {
                'tip-color': 'rgb(201, 37, 45)'
              }
            }
          },
          'positive': {
            'states': {
              'default': {
                'tip-color': 'rgb(18, 128, 92)'
              }
            }
          }
        }
      },
      'large': {
        'circleloader': {
          'large': {
            'states': {
              'default': {
                'text-color': 'rgb(200, 200, 200)',
                'track-color': 'rgb(57, 57, 57)',
                'track-fill-color': 'rgb(38, 128, 235)'
              }
            },
            'dimensions': {
              'height': '80px',
              'width': '80px',
              'border-size': '5px'
            }
          },
          'large-over-background': {
            'states': {
              'default': {
                'text-color': 'rgb(255, 255, 255)',
                'track-color': 'rgba(255,255,255,0.2)',
                'track-fill-color': 'rgb(255, 255, 255)'
              }
            },
            'dimensions': {
              'height': '80px',
              'width': '80px',
              'border-size': '5px'
            }
          },
          'medium': {
            'states': {
              'default': {
                'text-color': 'rgb(200, 200, 200)',
                'track-color': 'rgb(57, 57, 57)',
                'track-fill-color': 'rgb(38, 128, 235)'
              }
            },
            'dimensions': {
              'height': '40px',
              'width': '40px',
              'border-size': '4px'
            }
          },
          'medium-over-background': {
            'states': {
              'default': {
                'text-color': 'rgb(255, 255, 255)',
                'track-color': 'rgba(255,255,255,0.2)',
                'track-fill-color': 'rgb(255, 255, 255)'
              }
            },
            'dimensions': {
              'height': '40px',
              'width': '40px',
              'border-size': '4px'
            }
          },
          'small': {
            'states': {
              'default': {
                'text-color': 'rgb(200, 200, 200)',
                'track-color': 'rgb(57, 57, 57)',
                'track-fill-color': 'rgb(38, 128, 235)'
              }
            },
            'dimensions': {
              'height': '20px',
              'width': '20px',
              'border-size': '3px'
            }
          },
          'small-over-background': {
            'states': {
              'default': {
                'text-color': 'rgb(255, 255, 255)',
                'track-color': 'rgba(255,255,255,0.2)',
                'track-fill-color': 'rgb(255, 255, 255)'
              }
            },
            'dimensions': {
              'height': '20px',
              'width': '20px',
              'border-size': '3px'
            }
          }
        },
        'coachmark': {
          'default': {
            'dimensions': {
              'indicator-ring-border-size': '2px',
              'animation-indicator-ring-duration': '3000ms',
              'animation-indicator-keyframe-50-opacity': '0.6',
              'indicator-ring-diameter': '20px'
            },
            'states': {
              'default': {
                'indicator-ring-default-color': 'rgb(20, 115, 230)'
              }
            }
          },
          'quiet': {
            'dimensions': {
              'indicator-ring-border-size': '2px',
              'animation-indicator-ring-duration': '3000ms',
              'animation-indicator-keyframe-50-opacity': '0.6',
              'indicator-ring-diameter': '10px'
            },
            'states': {
              'default': {
                'indicator-ring-default-color': 'rgb(20, 115, 230)'
              }
            }
          }
        },
        'popover': {
          'default': {
            'states': {
              'default': {
                'background-color': 'rgb(8, 8, 8)',
                'border-color': 'rgb(73, 73, 73)'
              }
            }
          }
        },
        'sidenav': {
          'default': {
            'states': {
              'key-focus': {
                'item-border-color': 'rgb(20, 115, 230)'
              }
            }
          },
          'multilevel': {
            'states': {
              'key-focus': {
                'item-border-color': 'rgb(20, 115, 230)'
              }
            }
          }
        },
        'textfield': {
          'default': {
            'states': {
              'default': {
                'background-color': 'rgb(8, 8, 8)',
                'border-color': 'rgb(57, 57, 57)'
              },
              'disabled': {
                'background-color': 'rgb(44, 44, 44)',
                'border-color': 'transparent'
              },
              'mouse-focus': {
                'background-color': 'rgb(8, 8, 8)',
                'border-color': 'rgb(38, 128, 235)'
              }
            }
          },
          'quiet': {
            'states': {
              'default': {
                'background-color': 'transparent',
                'border-color': 'rgb(57, 57, 57)'
              },
              'disabled': {
                'background-color': 'transparent',
                'border-color': 'rgb(57, 57, 57)'
              },
              'mouse-focus': {
                'background-color': 'transparent',
                'border-color': 'rgb(38, 128, 235)'
              }
            }
          }
        },
        'tooltip': {
          'default': {
            'states': {
              'default': {
                'tip-color': 'rgb(116, 116, 116)'
              }
            }
          },
          'info': {
            'states': {
              'default': {
                'tip-color': 'rgb(13, 102, 208)'
              }
            }
          },
          'negative': {
            'states': {
              'default': {
                'tip-color': 'rgb(201, 37, 45)'
              }
            }
          },
          'positive': {
            'states': {
              'default': {
                'tip-color': 'rgb(18, 128, 92)'
              }
            }
          }
        }
      }
    }
  }
};
exports.default = _default;

/***/ }),

/***/ "ApPD":
/***/ (function(module, exports, __webpack_require__) {

// 19.1.2.9 Object.getPrototypeOf(O)
var toObject = __webpack_require__("JB68");

var $getPrototypeOf = __webpack_require__("U+KD");

__webpack_require__("zn7N")('getPrototypeOf', function () {
  return function getPrototypeOf(it) {
    return $getPrototypeOf(toObject(it));
  };
});

/***/ }),

/***/ "AsUd":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return addBreadcrumb; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return captureEvent; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return captureException; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return captureMessage; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return configureScope; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return setContext; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return setExtra; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return setExtras; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "i", function() { return setTag; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "j", function() { return setTags; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "k", function() { return setUser; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "l", function() { return startTransaction; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "m", function() { return withScope; });
/* harmony import */ var _hub_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GIgW");
 // Note: All functions in this file are typed with a return value of `ReturnType<Hub[HUB_FUNCTION]>`,
// where HUB_FUNCTION is some method on the Hub class.
//
// This is done to make sure the top level SDK methods stay in sync with the hub methods.
// Although every method here has an explicit return type, some of them (that map to void returns) do not
// contain `return` keywords. This is done to save on bundle size, as `return` is not minifiable.

/**
 * Captures an exception event and sends it to Sentry.
 *
 * @param exception An exception-like object.
 * @param captureContext Additional scope data to apply to exception event.
 * @returns The generated eventId.
 */
// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types

function captureException(exception, captureContext) {
  return Object(_hub_js__WEBPACK_IMPORTED_MODULE_0__[/* getCurrentHub */ "b"])().captureException(exception, {
    captureContext
  });
}
/**
 * Captures a message event and sends it to Sentry.
 *
 * @param message The message to send to Sentry.
 * @param Severity Define the level of the message.
 * @returns The generated eventId.
 */


function captureMessage(message, // eslint-disable-next-line deprecation/deprecation
captureContext) {
  // This is necessary to provide explicit scopes upgrade, without changing the original
  // arity of the `captureMessage(message, level)` method.
  const level = typeof captureContext === 'string' ? captureContext : undefined;
  const context = typeof captureContext !== 'string' ? {
    captureContext
  } : undefined;
  return Object(_hub_js__WEBPACK_IMPORTED_MODULE_0__[/* getCurrentHub */ "b"])().captureMessage(message, level, context);
}
/**
 * Captures a manually created event and sends it to Sentry.
 *
 * @param event The event to send to Sentry.
 * @returns The generated eventId.
 */


function captureEvent(event, hint) {
  return Object(_hub_js__WEBPACK_IMPORTED_MODULE_0__[/* getCurrentHub */ "b"])().captureEvent(event, hint);
}
/**
 * Callback to set context information onto the scope.
 * @param callback Callback function that receives Scope.
 */


function configureScope(callback) {
  Object(_hub_js__WEBPACK_IMPORTED_MODULE_0__[/* getCurrentHub */ "b"])().configureScope(callback);
}
/**
 * Records a new breadcrumb which will be attached to future events.
 *
 * Breadcrumbs will be added to subsequent events to provide more context on
 * user's actions prior to an error or crash.
 *
 * @param breadcrumb The breadcrumb to record.
 */


function addBreadcrumb(breadcrumb) {
  Object(_hub_js__WEBPACK_IMPORTED_MODULE_0__[/* getCurrentHub */ "b"])().addBreadcrumb(breadcrumb);
}
/**
 * Sets context data with the given name.
 * @param name of the context
 * @param context Any kind of data. This data will be normalized.
 */
// eslint-disable-next-line @typescript-eslint/no-explicit-any


function setContext(name, context) {
  Object(_hub_js__WEBPACK_IMPORTED_MODULE_0__[/* getCurrentHub */ "b"])().setContext(name, context);
}
/**
 * Set an object that will be merged sent as extra data with the event.
 * @param extras Extras object to merge into current context.
 */


function setExtras(extras) {
  Object(_hub_js__WEBPACK_IMPORTED_MODULE_0__[/* getCurrentHub */ "b"])().setExtras(extras);
}
/**
 * Set key:value that will be sent as extra data with the event.
 * @param key String of extra
 * @param extra Any kind of data. This data will be normalized.
 */


function setExtra(key, extra) {
  Object(_hub_js__WEBPACK_IMPORTED_MODULE_0__[/* getCurrentHub */ "b"])().setExtra(key, extra);
}
/**
 * Set an object that will be merged sent as tags data with the event.
 * @param tags Tags context object to merge into current context.
 */


function setTags(tags) {
  Object(_hub_js__WEBPACK_IMPORTED_MODULE_0__[/* getCurrentHub */ "b"])().setTags(tags);
}
/**
 * Set key:value that will be sent as tags data with the event.
 *
 * Can also be used to unset a tag, by passing `undefined`.
 *
 * @param key String key of tag
 * @param value Value of tag
 */


function setTag(key, value) {
  Object(_hub_js__WEBPACK_IMPORTED_MODULE_0__[/* getCurrentHub */ "b"])().setTag(key, value);
}
/**
 * Updates user context information for future events.
 *
 * @param user User context object to be set in the current context. Pass `null` to unset the user.
 */


function setUser(user) {
  Object(_hub_js__WEBPACK_IMPORTED_MODULE_0__[/* getCurrentHub */ "b"])().setUser(user);
}
/**
 * Creates a new scope with and executes the given operation within.
 * The scope is automatically removed once the operation
 * finishes or throws.
 *
 * This is essentially a convenience function for:
 *
 *     pushScope();
 *     callback();
 *     popScope();
 *
 * @param callback that will be enclosed into push/popScope.
 */


function withScope(callback) {
  Object(_hub_js__WEBPACK_IMPORTED_MODULE_0__[/* getCurrentHub */ "b"])().withScope(callback);
}
/**
 * Starts a new `Transaction` and returns it. This is the entry point to manual tracing instrumentation.
 *
 * A tree structure can be built by adding child spans to the transaction, and child spans to other spans. To start a
 * new child span within the transaction or any span, call the respective `.startChild()` method.
 *
 * Every child span must be finished before the transaction is finished, otherwise the unfinished spans are discarded.
 *
 * The transaction must be finished with a call to its `.finish()` method, at which point the transaction with all its
 * finished child spans will be sent to Sentry.
 *
 * NOTE: This function should only be used for *manual* instrumentation. Auto-instrumentation should call
 * `startTransaction` directly on the hub.
 *
 * @param context Properties of the new `Transaction`.
 * @param customSamplingContext Information given to the transaction sampling function (along with context-dependent
 * default values). See {@link Options.tracesSampler}.
 *
 * @returns The transaction which was just started
 */


function startTransaction(context, customSamplingContext) {
  return Object(_hub_js__WEBPACK_IMPORTED_MODULE_0__[/* getCurrentHub */ "b"])().startTransaction({ ...context
  }, customSamplingContext);
}



/***/ }),

/***/ "AttQ":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("hGjE"),
      24: __webpack_require__("WYcM")
    }
  }));
};

WrappedIcon.displayName = 'Pause';
exports.default = WrappedIcon;

/***/ }),

/***/ "AyUB":
/***/ (function(module, exports, __webpack_require__) {

module.exports = {
  "default": __webpack_require__("3GJH"),
  __esModule: true
};

/***/ }),

/***/ "B+OT":
/***/ (function(module, exports) {

var hasOwnProperty = {}.hasOwnProperty;

module.exports = function (it, key) {
  return hasOwnProperty.call(it, key);
};

/***/ }),

/***/ "B/J0":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var utils = __webpack_require__("w8CP");

var SHA256 = __webpack_require__("bu2F");

function SHA224() {
  if (!(this instanceof SHA224)) return new SHA224();
  SHA256.call(this);
  this.h = [0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939, 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4];
}

utils.inherits(SHA224, SHA256);
module.exports = SHA224;
SHA224.blockSize = 512;
SHA224.outSize = 224;
SHA224.hmacStrength = 192;
SHA224.padLength = 64;

SHA224.prototype._digest = function digest(enc) {
  // Just truncate output
  if (enc === 'hex') return utils.toHex32(this.h.slice(0, 7), 'big');else return utils.split32(this.h.slice(0, 7), 'big');
};

/***/ }),

/***/ "B3RL":
/***/ (function(module, exports, __webpack_require__) {

// extracted by mini-css-extract-plugin

/***/ }),

/***/ "B4ni":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _FocusManager = _interopRequireDefault(__webpack_require__("3C4i"));

var _focusRing = _interopRequireDefault(__webpack_require__("PBY+"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

var _TabListBase = _interopRequireDefault(__webpack_require__("TOmJ"));

var _class;

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

const TAB_ITEM_SELECTOR = '[role=tab]:not([aria-disabled])';
const TAB_ITEM_SELECTED_SELECTOR = TAB_ITEM_SELECTOR + '[aria-selected=true]';
/**
 * selectedIndex: The index of the StepList that should be selected. When selectedIndex is
 * specified, the component is in a controlled state and a Step can only be selected by changing the
 * selectedIndex prop value. By default, the first Step will be selected.
 *
 * defaultSelectedIndex: The same as selectedIndex except that the component is in an uncontrolled
 * state.
 *
 * onChange: A function that will be called when an Step is selected or deselected.
 * It will be passed the updated selected index.
 *
 * childMappingFunction: allows you to map additional properties for each tab child
 * @private
 */

let UxpTabListBase = (0, _focusRing.default)(_class = class UxpTabListBase extends _TabListBase.default {
  onFocus(selectedIndex, e) {
    // UXP-14868. See base class `onFocus`. Not using `this.isNavigationKeyDown` because
    // for tablist navigation to work correctly the order of events should be
    // onKeyDown -> onFocus -> onKeyUp. The issue happens when onKeyUp gets called before onFocus. i.e.
    // if we get: onKeyDown -> onKeyUp -> onFocus. In UXP, the order is not guaranteed.
    if (this.props.keyboardActivation === 'automatic' && !this.isMouseDown) {
      this.setSelectedIndex(selectedIndex, e);
    }
  }

  render() {
    return /*#__PURE__*/_react.default.createElement(_FocusManager.default, {
      autoFocus: this.props.autoFocus,
      disabled: this.props.disabled,
      itemSelector: TAB_ITEM_SELECTOR,
      selectedItemSelector: TAB_ITEM_SELECTED_SELECTOR,
      orientation: this.props.orientation === 'vertical' ? 'both' : 'horizontal'
    }, /*#__PURE__*/_react.default.createElement("div", _extends({}, this.cleanProps(), {
      role: "tablist",
      ref: el => this.tabBaseRef = el
    }), this.getItems()));
  }

}) || _class;

exports.default = UxpTabListBase;

/***/ }),

/***/ "B8du":
/***/ (function(module, exports) {

/**
 * This method returns `false`.
 *
 * @static
 * @memberOf _
 * @since 4.13.0
 * @category Util
 * @returns {boolean} Returns `false`.
 * @example
 *
 * _.times(2, _.stubFalse);
 * // => [false, false]
 */
function stubFalse() {
  return false;
}

module.exports = stubFalse;

/***/ }),

/***/ "BGCk":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("path", {
  d: "M40 24.5V38H8V8h15.5a.5.5 0 0 0 .5-.5v-3a.5.5 0 0 0-.5-.5H5a1 1 0 0 0-1 1v36a1 1 0 0 0 1 1h38a1 1 0 0 0 1-1V24.5a.5.5 0 0 0-.5-.5h-3a.5.5 0 0 0-.5.5z"
}), React.createElement("path", {
  d: "M30.241 4a1.008 1.008 0 0 0-.655 1.716l4.228 4.228-9.842 9.842a.5.5 0 0 0 0 .707l3.536 3.535a.5.5 0 0 0 .707 0l9.842-9.842 4.217 4.214a1 1 0 0 0 1.706-.655V4z"
}));

/***/ }),

/***/ "BGxO":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("VIzJ");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("TSYQ");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _react_react_spectrum_Button__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("Cn9g");
/* harmony import */ var _react_react_spectrum_Button__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Button__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _react_react_spectrum_Menu__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("kzNO");
/* harmony import */ var _react_react_spectrum_Menu__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Menu__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var _react_react_spectrum_OverlayTrigger__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("uYrR");
/* harmony import */ var _react_react_spectrum_OverlayTrigger__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_OverlayTrigger__WEBPACK_IMPORTED_MODULE_5__);
/* harmony import */ var _react_react_spectrum_Tooltip__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("DUuf");
/* harmony import */ var _react_react_spectrum_Tooltip__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Tooltip__WEBPACK_IMPORTED_MODULE_6__);
/* harmony import */ var _utils_constants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("YVc3");
/* harmony import */ var _styles_HeaderAction_css__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("pRdk");
/* harmony import */ var _styles_HeaderAction_css__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_styles_HeaderAction_css__WEBPACK_IMPORTED_MODULE_8__);
/* harmony import */ var _hooks_useIntl__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__("BuN4");
/* harmony import */ var _hooks_AppContext__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__("m/KA");











const HeaderAction = ({ ariaLabelID, children, className = '', 'data-test-id': dataTestId, getDisabledTooltipMsgId, getIsButtonDisabled, icon, iconOnly, id, name = null, selected = false, selectionStore, tooltipPosition = 'bottom', value = 'action.label', variant = 'action', quiet = true, ingest = (...args) => { }, itemRenderer, onClick = (event, ingest) => undefined, }) => {
    var _a, _b;
    const intl = Object(_hooks_useIntl__WEBPACK_IMPORTED_MODULE_9__[/* default */ "a"])();
    let app = Object(react__WEBPACK_IMPORTED_MODULE_0__["useContext"])(_hooks_AppContext__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"]);
    if (itemRenderer) {
        return itemRenderer;
    }
    const hasSingleSelection = ((_a = selectionStore === null || selectionStore === void 0 ? void 0 : selectionStore.selectedElements) === null || _a === void 0 ? void 0 : _a.length) === 1;
    const conditionalProps = {};
    const handleClick = event => {
        onClick(event, ingest.bind(null, {
            event: {
                context_sequence: '1',
                subcategory: id,
                subtype: 'start',
                workflow: 'General Operations',
            },
        }));
    };
    if (iconOnly) {
        // Only set aria-label if button is icon-only, otherwise use button text
        conditionalProps['aria-label'] = intl.formatMessage({ id: ariaLabelID || value });
    }
    const button = (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", { className: classnames__WEBPACK_IMPORTED_MODULE_2___default()(_styles_HeaderAction_css__WEBPACK_IMPORTED_MODULE_8___default.a.buttonContainer, className) },
        react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_react_react_spectrum_Button__WEBPACK_IMPORTED_MODULE_3___default.a, Object.assign({ "aria-label": intl.formatMessage({ id: ariaLabelID || value }), "data-test-id": dataTestId, icon: icon, disabled: (_b = getIsButtonDisabled === null || getIsButtonDisabled === void 0 ? void 0 : getIsButtonDisabled(hasSingleSelection ? selectionStore === null || selectionStore === void 0 ? void 0 : selectionStore.selectedElements[0] : undefined)) !== null && _b !== void 0 ? _b : false, quiet: quiet, selected: selected, value: value, variant: variant, onClick: handleClick }, conditionalProps, { className: _styles_HeaderAction_css__WEBPACK_IMPORTED_MODULE_8___default.a.headerActionButton }), !iconOnly && (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", { className: classnames__WEBPACK_IMPORTED_MODULE_2___default()({ [_styles_HeaderAction_css__WEBPACK_IMPORTED_MODULE_8___default.a.iconPadding]: !!icon }) }, name)))));
    if (children === null || children === void 0 ? void 0 : children.length) {
        return (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_react_react_spectrum_OverlayTrigger__WEBPACK_IMPORTED_MODULE_5___default.a, { placement: "bottom", trigger: ['hover', 'click'] },
            button,
            react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_react_react_spectrum_Menu__WEBPACK_IMPORTED_MODULE_4__["Menu"], null, children.map(action => (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_react_react_spectrum_Menu__WEBPACK_IMPORTED_MODULE_4__["MenuItem"], null,
                react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_hooks_AppContext__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"].Provider, { value: app },
                    react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(HeaderAction, Object.assign({}, action, { name: react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_1__[/* FormattedMessage */ "c"], { id: action.label }), iconOnly: iconOnly, "data-test-id": `HeaderAction__${action.value}`, onClick: async () => {
                            var _a;
                            await action.execute(selectionStore === null || selectionStore === void 0 ? void 0 : selectionStore.selectedElements);
                            // Don't clear selection if there's a subMenu
                            if (!((_a = action === null || action === void 0 ? void 0 : action.children) === null || _a === void 0 ? void 0 : _a.length)) {
                                selectionStore === null || selectionStore === void 0 ? void 0 : selectionStore.clear();
                            }
                        }, value: action.id })))))))));
    }
    return (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_react_react_spectrum_OverlayTrigger__WEBPACK_IMPORTED_MODULE_5___default.a, { placement: tooltipPosition, trigger: ['hover'], delayShow: _utils_constants__WEBPACK_IMPORTED_MODULE_7__[/* DEFAULT_TOOLTIP_DELAY */ "f"] },
        button,
        react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_react_react_spectrum_Tooltip__WEBPACK_IMPORTED_MODULE_6___default.a, null, (getIsButtonDisabled === null || getIsButtonDisabled === void 0 ? void 0 : getIsButtonDisabled(undefined)) && getDisabledTooltipMsgId ? (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_1__[/* FormattedMessage */ "c"], { id: getDisabledTooltipMsgId(selectionStore) })) : (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null, name)))));
};
/* harmony default export */ __webpack_exports__["a"] = (HeaderAction);


/***/ }),

/***/ "BGzO":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

var _reactIs = __webpack_require__("TOwV");

var _createChainableTypeChecker = __webpack_require__("pvIh");

var _createChainableTypeChecker2 = _interopRequireDefault(_createChainableTypeChecker);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function elementType(props, propName, componentName, location, propFullName) {
  var propValue = props[propName];

  if (_react2.default.isValidElement(propValue)) {
    return new Error('Invalid ' + location + ' `' + propFullName + '` of type ReactElement ' + ('supplied to `' + componentName + '`,expected an element type (a string ') + ', component class, or function component).');
  }

  if (!(0, _reactIs.isValidElementType)(propValue)) {
    return new Error('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected an element type (a string ') + ', component class, or function component).');
  }

  return null;
}

exports.default = (0, _createChainableTypeChecker2.default)(elementType);
module.exports = exports['default'];

/***/ }),

/***/ "BOzh":
/***/ (function(module) {

module.exports = JSON.parse("{\"Breadcrumbs\":\"Breadcrumb\"}");

/***/ }),

/***/ "BUMI":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("x956"),
      24: __webpack_require__("b+eW")
    }
  }));
};

WrappedIcon.displayName = 'CloseCaptions';
exports.default = WrappedIcon;

/***/ }),

/***/ "BUva":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var _UxpOptions = _interopRequireDefault(__webpack_require__("zvwv"));

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}
/*************************************************************************
* ADOBE CONFIDENTIAL
* ___________________
*
* Copyright 2019 Adobe
* All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains
* the property of Adobe and its suppliers, if any. The intellectual
* and technical concepts contained herein are proprietary to Adobe
* and its suppliers and are protected by all applicable intellectual
* property laws, including trade secret and copyright laws.
* Dissemination of this information or reproduction of this material
* is strictly forbidden unless prior written permission is obtained
* from Adobe.
**************************************************************************/


module.exports = _UxpOptions.default.select('Rule', () => __webpack_require__("1ocO"), () => __webpack_require__("1ocO"), () => __webpack_require__("7AVC"));

/***/ }),

/***/ "BUyd":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/

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 __());
  };
}();

var __importDefault = this && this.__importDefault || function (mod) {
  return mod && mod.__esModule ? mod : {
    "default": mod
  };
};

Object.defineProperty(exports, "__esModule", {
  value: true
});

__webpack_require__("cnSC");

var RequestProcessor_1 = __importDefault(__webpack_require__("HyxP"));
/**
 * Handles service-specific response processing for cloud service and acp.local interaction
 */


var DeleteRequestProcessor =
/** @class */
function (_super) {
  __extends(DeleteRequestProcessor, _super);

  function DeleteRequestProcessor() {
    return _super !== null && _super.apply(this, arguments) || this;
  }

  DeleteRequestProcessor.urlRegex = new RegExp("/cloud-content/|/files/|/id/");
  DeleteRequestProcessor.method = ['DELETE'];
  return DeleteRequestProcessor;
}(RequestProcessor_1.default);

exports.default = DeleteRequestProcessor;

/***/ }),

/***/ "BWox":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _createClass = function () {
  function defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i];
      descriptor.enumerable = descriptor.enumerable || false;
      descriptor.configurable = true;
      if ("value" in descriptor) descriptor.writable = true;
      Object.defineProperty(target, descriptor.key, descriptor);
    }
  }

  return function (Constructor, protoProps, staticProps) {
    if (protoProps) defineProperties(Constructor.prototype, protoProps);
    if (staticProps) defineProperties(Constructor, staticProps);
    return Constructor;
  };
}();
/**
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe Inc. and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe Inc.
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Inc.
 */


var _Client = __webpack_require__("aETk");

var _Client2 = _interopRequireDefault(_Client);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _classCallCheck(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}
/**
 * The AccessRequests class handles listing AccessRequests data (i.e. AccessRequests shared with a user) for a specific user.
 */


var AccessRequests = function () {
  function AccessRequests() {
    _classCallCheck(this, AccessRequests);
  }

  _createClass(AccessRequests, [{
    key: 'get',

    /**
     * Get pending access requests that the user can grant or reject
     * @param {Object} options - (optional) Sorting and filtering options, as listed below
     *
     *        {String} orderBy - (optional, default = '-requesttime') Field to sort on, and direction. E.g. '-requesttime'
     *                           for sorting by ascending request create date. Prefix with "-" for descending.
     *        {String[]} types - (optional) Comma Separated List, types of resource to return. If omitted, all types are returned.
     *        {String} limit - (optional, default = 10, max = 30) maximum number of requests to return.
     *                           for sorting by ascending request create date. Prefix with "-" for descending.
     *        {String} resourceUrn - (optional) if set, api returns access requests on a particular resource.
     * @returns {Promise}
     */
    value: function get() {
      var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
      var _options$orderBy = options.orderBy,
          orderBy = _options$orderBy === undefined ? '-requesttime' : _options$orderBy,
          _options$types = options.types,
          types = _options$types === undefined ? [] : _options$types,
          _options$limit = options.limit,
          limit = _options$limit === undefined ? 10 : _options$limit,
          resourceUrn = options.resourceUrn;
      var suffix = '?orderBy=' + encodeURIComponent(orderBy) + '&limit=' + limit;

      if (types.length > 0) {
        suffix = suffix.concat('&type=' + encodeURIComponent(types.join(',')));
      }

      if (resourceUrn) {
        suffix = suffix.concat('&resourceUrn=' + encodeURIComponent(resourceUrn));
      }

      return _Client2.default.instance.fetch({
        type: 'accessrequests.get',
        urlPath: '/accessrequests' + suffix,
        returnRaw: true
      });
    }
    /**
     * Get the next page of AccessRequests results, using the URL from AccessRequests.get().
     * @param urlPath {String} URL from AccessRequests.get(), from the _links.next property of the response.
     * @returns {Promise|*|Promise<Response>}
     */

  }, {
    key: 'getNextPage',
    value: function getNextPage(urlPath) {
      return _Client2.default.instance.fetch({
        type: 'accessrequests.get',
        urlPath: urlPath,
        returnRaw: true
      });
    }
    /**
     * Request access to a resource
     * {@link https://wiki.corp.adobe.com/pages/viewpage.action?spaceKey=collaboration&title=Invitations+Service+V2#InvitationsServiceV2-POST/api/v2/accessrequests-requestaccesstoaresource}
     *
     * @param {Object} options - (required) options, as listed below
     *        {String} resourceUrn - (required) URN of the resource to request access.
     *        {String} templateName - (required) Name of template registered with APO (Adobe Post Office) with the 'cc_collab_' prefix.
     *        {String} locale - (optional, default = 'EN_US') Specifies the locale to be used to select the appropriate template. It is provided in the form of a language code and country code.
     *        {String} targetUrl - (optional, default = '') the url to view the request, typically a web url. The maximum length of the value is 300 characters. 
     *                   If specified, it will be sent in the ANS/email notification as the request's URL. Must be a valid URL. The host of the url must be whitelisted by the service. 
     *        {String} message - (optional, default = '') A custom message for the inviter to add to the invite notification. The maximum length of the value is 300 characters. 
     *                   The following special characters in the message are removed: &, >, <, /, :, \n, \r. The corresponding email param is Param_Custom_Message.
     * @returns {Promise}
     */

  }, {
    key: 'request',
    value: function request() {
      var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
      var _options$locale = options.locale,
          locale = _options$locale === undefined ? 'EN_US' : _options$locale,
          message = options.message,
          resourceUrn = options.resourceUrn,
          targetUrl = options.targetUrl,
          templateName = options.templateName;

      if (resourceUrn && resourceUrn !== '' && templateName && templateName !== '') {
        var notification = {
          email: {
            templateName: templateName,
            locale: locale
          },
          parameters: {
            targetUrl: targetUrl,
            message: message
          }
        };
        var body = {
          resourceUrn: resourceUrn,
          notification: notification
        };
        return _Client2.default.instance.fetch({
          type: 'accessrequests.request',
          urlPath: '/accessrequests',
          method: 'POST',
          returnRaw: true,
          body: body
        });
      }

      throw new Error('accessrequests.request failed');
    }
    /**
     * Respond to request access to a resource
     * {@link https://wiki.corp.adobe.com/pages/viewpage.action?spaceKey=collaboration&title=Invitations+Service+V2#InvitationsServiceV2-POST/api/v2/accessrequests-requestaccesstoaresource}
     *
     * @param {Object} options - (required) options, as listed below
     *        {String} resourceUrn - (required) URN of the requested resource.
     *        {String} requesterId - (required) userID of the requester.
     *        {String} role - (required when action is 'grant').
     *        {String} action - (required) Either 'grant' or 'reject'.
     *        {String} templateName - (required) Name of template registered with APO (Adobe Post Office) with the 'cc_collab_' prefix.
     *        {String} locale - (optional, default = 'EN_US') Specifies the locale to be used to select the appropriate template. It is provided in the form of a language code and country code.
     *        {String} targetUrl - (optional, default = '') the url to view the request, typically a web url. The maximum length of the value is 300 characters. 
     *                   If specified, it will be sent in the ANS/email notification as the request's URL. Must be a valid URL. The host of the url must be whitelisted by the service. 
     *        {String} message - (optional, default = '') A custom message for the inviter to add to the invite notification. The maximum length of the value is 300 characters. 
     *                   The following special characters in the message are removed: &, >, <, /, :, \n, \r. The corresponding email param is Param_Custom_Message.
     * @returns {Promise}
     */

  }, {
    key: 'respond',
    value: function respond() {
      var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
      var action = options.action,
          _options$locale2 = options.locale,
          locale = _options$locale2 === undefined ? 'EN_US' : _options$locale2,
          message = options.message,
          requesterId = options.requesterId,
          targetUrl = options.targetUrl,
          resourceUrn = options.resourceUrn,
          role = options.role,
          templateName = options.templateName;

      if (resourceUrn && resourceUrn !== '' && requesterId && requesterId !== '' && action && action !== '' && templateName && templateName !== '') {
        if (action === 'grant' && role && role !== '' || action === 'reject') {
          var notification = {
            email: {
              templateName: templateName,
              locale: locale
            },
            parameters: {
              targetUrl: targetUrl,
              message: message
            }
          };
          var body = {
            action: action,
            role: role,
            requesterId: requesterId,
            resourceUrn: resourceUrn,
            notification: notification
          };
          var encodedRequestURI = '/accessrequests/ops';
          return _Client2.default.instance.fetch({
            type: 'accessrequests.respond',
            urlPath: '/accessrequests/ops',
            method: 'POST',
            returnRaw: true,
            body: body
          });
        }
      }

      throw new Error('accessrequests.respond failed');
    }
    /**
     * Grant request access to a resource
     * {@link https://wiki.corp.adobe.com/pages/viewpage.action?spaceKey=collaboration&title=Invitations+Service+V2#InvitationsServiceV2-POST/api/v2/accessrequests-requestaccesstoaresource}
     *
     * @param {Object} options - (required) options, as listed below
     *        {String} resourceUrn - (required) URN of the requested resource.
     *        {String} requesterId - (required) userID of the requester.
     *        {String} role - (required).
     *        {String} templateName - (required) Name of template registered with APO (Adobe Post Office) with the 'cc_collab_' prefix.
     *        {String} locale - (optional, default = 'EN_US') Specifies the locale to be used to select the appropriate template. It is provided in the form of a language code and country code.
     *        {String} requestViewUrl - (optional, default = '') the url to view the request, typically a web url. The maximum length of the value is 300 characters. 
     *                   If specified, it will be sent in the ANS/email notification as the request's URL. Must be a valid URL. The host of the url must be whitelisted by the service. 
     *        {String} message - (optional, default = '') A custom message for the inviter to add to the invite notification. The maximum length of the value is 300 characters. 
     *                   The following special characters in the message are removed: &, >, <, /, :, \n, \r. The corresponding email param is Param_Custom_Message.
     * @returns {Promise}
     */

  }, {
    key: 'grant',
    value: function grant() {
      var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
      return this.respond(Object.assign({}, options, {
        action: 'grant'
      }));
    }
    /**
     * Reject request access to a resource
     * {@link https://wiki.corp.adobe.com/pages/viewpage.action?spaceKey=collaboration&title=Invitations+Service+V2#InvitationsServiceV2-POST/api/v2/accessrequests-requestaccesstoaresource}
     *
     * @param {Object} options - (required) options, as listed below
     *        {String} resourceUrn - (required) URN of the requested resource.
     *        {String} requesterId - (required) userID of the requester.
     *        {String} role - (required).
     *        {String} templateName - (required) Name of template registered with APO (Adobe Post Office) with the 'cc_collab_' prefix.
     *        {String} locale - (optional, default = 'EN_US') Specifies the locale to be used to select the appropriate template. It is provided in the form of a language code and country code.
     *        {String} requestViewUrl - (optional, default = '') the url to view the request, typically a web url. The maximum length of the value is 300 characters. 
     *                   If specified, it will be sent in the ANS/email notification as the request's URL. Must be a valid URL. The host of the url must be whitelisted by the service. 
     *        {String} message - (optional, default = '') A custom message for the inviter to add to the invite notification. The maximum length of the value is 300 characters. 
     *                   The following special characters in the message are removed: &, >, <, /, :, \n, \r. The corresponding email param is Param_Custom_Message.
     * @returns {Promise}
     */

  }, {
    key: 'reject',
    value: function reject() {
      var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
      return this.respond(Object.assign({}, options, {
        action: 'reject'
      }));
    }
  }]);

  return AccessRequests;
}();
/**
 * Exports the AccessRequests class.
 */


exports.default = AccessRequests;
module.exports = exports['default'];

/***/ }),

/***/ "BXEU":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.isNodeFullyVisible = isNodeFullyVisible;
exports.getScrollParent = getScrollParent;
exports.getScrollParents = getScrollParents;
exports.default = void 0;

var _boundingRectOverlapping = _interopRequireDefault(__webpack_require__("Np16"));

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}
/*************************************************************************
* ADOBE CONFIDENTIAL
* ___________________
*
* Copyright 2021 Adobe
* All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains
* the property of Adobe and its suppliers, if any. The intellectual
* and technical concepts contained herein are proprietary to Adobe
* and its suppliers and are protected by all applicable intellectual
* property laws, including trade secret and copyright laws.
* Dissemination of this information or reproduction of this material
* is strictly forbidden unless prior written permission is obtained
* from Adobe.
**************************************************************************/


class ScrollManager {
  constructor() {
    this.currentScrollViewNodesMap = new Map();
  }

  static getInstance() {
    if (!ScrollManager.instance) {
      ScrollManager.instance = new ScrollManager();
    }

    return ScrollManager.instance;
  }

  toggleScrollBarsVisibility(overlayVisible, hideOverlappingScrollBar, overlayRef, overlayRect = null, coachmarkTourInProgress = false) {
    let scrollViewNodes = document.querySelectorAll('.ReactScrollViewNode');

    for (const scrollView of scrollViewNodes) {
      var hideScrollbar = (overlayVisible && hideOverlappingScrollBar ? (0, _boundingRectOverlapping.default)(overlayRect, scrollView.getBoundingClientRect()) : overlayVisible) && overlayRef !== scrollView;
      this.handleScrollBarVisibility(hideScrollbar, scrollView, overlayRef, coachmarkTourInProgress);
    }
  }

  toggleScrollBarsVisibilityForScrollView(hide, ScrollView, overlayRef) {
    if (!ScrollView || !overlayRef) {
      return;
    }

    this.handleScrollBarVisibility(hide, ScrollView, overlayRef);
  }

  handleScrollBarVisibility(hideScrollbar, ScrollView, overlayRef, coachmarkTourInProgress = false) {
    var overlayset = this.currentScrollViewNodesMap.get(ScrollView) ? this.currentScrollViewNodesMap.get(ScrollView) : new Set();

    if (hideScrollbar) {
      ScrollView.setAttribute('uxpscrollbarhidden', true);
      overlayset.add(overlayRef);
      this.currentScrollViewNodesMap.set(ScrollView, overlayset);
    } else {
      overlayset.delete(overlayRef);

      if (overlayset.size === 0 && !coachmarkTourInProgress) {
        ScrollView.removeAttribute('uxpscrollbarhidden');
      }
    }
  }

}

exports.default = ScrollManager;

function isNodeFullyVisible(node) {
  if (!node) {
    return false;
  }

  var boundingRect = node.getBoundingClientRect();

  if (boundingRect.height === 0 && boundingRect.width === 0 && boundingRect.left === 0 && boundingRect.top === 0) {
    return false;
  }

  var parentNode = getScrollParent(node);

  if (!parentNode) {
    return true;
  }

  var parentBoundingRect = parentNode.getBoundingClientRect();
  return parentBoundingRect._y <= boundingRect._y && parentBoundingRect._y + parentBoundingRect.height >= boundingRect._y + boundingRect.height && parentBoundingRect._x <= boundingRect._x && parentBoundingRect._x + parentBoundingRect.width >= boundingRect._x + boundingRect.width;
}

function getScrollParent(node) {
  if (!node) {
    return;
  }

  while (node.parentNode) {
    var style = window.getComputedStyle(node);

    if (/auto|scroll/.test(style.overflow + style.overflowY) || node.hasAttribute('data-scrollable')) {
      return node;
    }

    node = node.parentNode;
  }

  return null;
}

function getScrollParents(node) {
  if (!node) {
    return;
  }

  let nodes = [];

  while (node.parentNode) {
    var style = window.getComputedStyle(node);

    if (/auto|scroll/.test(style.overflow + style.overflowY) || node.hasAttribute('data-scrollable')) {
      nodes.push(node);
    }

    node = node.parentNode;
  }

  return nodes;
}

/***/ }),

/***/ "Bc4O":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("path", {
  d: "M18 2a16 16 0 1 0 16 16A16 16 0 0 0 18 2zm0 30a14 14 0 1 1 14-14 14 14 0 0 1-14 14z"
}), React.createElement("path", {
  d: "M20 16.086V7a1 1 0 0 0-1-1h-2a1 1 0 0 0-1 1v10.586a1 1 0 0 0 .293.707L21.9 23.9a1 1 0 0 0 1.414 0l1.336-1.336a1 1 0 0 0 0-1.414l-4.357-4.357a1 1 0 0 1-.293-.707z"
}));

/***/ }),

/***/ "BfYw":
/***/ (function(module, exports) {

/* eslint-disable max-len */
module.exports = {
  'confirmationDialog.dontShowAgain': 'Visa inte igen',
  'confirmationDialog.confirm.default': 'Fortsätt',
  'confirmationDialog.cancel.default': 'Avbryt',
  'confirmationDialog.learnMore': 'Läs mer',
  'toast.warning.place': 'Det går inte att montera länkade molndokument än. Fortsätt och bädda in i stället.',
  'toast.warning.placeLinkOrEmbed': 'Resurser som du monterar länkas nu till originalet som standard. Det betyder att om du redigerar den på ett ställe återspeglas dessa ändringar överallt.',
  'toast.warning.saveAs.invalidFormat': 'Du kan tyvärr inte spara {genericFormat}-filer här. Din fil sparas som {adobeFormat}.',
  'pickerView.recent': 'Senaste',
  'pickerView.cloud_docs': 'Dina filer',
  'pickerView.shared_with_you': 'Delas med dig',
  'pickerView.projects': 'Projekt',
  'pickerView.files': 'Filer',
  'pickerView.computer': 'Din dator...',
  'pickerView.saveAsInput': 'Spara som',
  'pickerView.exportInput': 'Exportera som',
  'pickerView.sketch_library': 'Konvertera Sketch-bibliotek...',
  'pickerView.error.saveAsOrExport.default': 'Ogiltigt filnamn.',
  'pickerView.error.saveAsOrExport.invalidName': 'Namnet innehåller ogiltiga tecken.',
  'pickerView.error.saveAsOrExport.invalidEnd': 'Namn får inte sluta med ”.” eller blanksteg.',
  'pickerView.error.saveAsOrExport.invalidChar': 'Namn får inte innehålla följande tecken: {characters}',
  'pickerView.error.saveAsOrExport.charRestriction': 'Namn får innehålla högst 200 tecken.',
  'pickerView.error.saveAsOrExport.duplicateName': 'Du har redan ett molndokument med detta namn.',
  'pickerView.error.addALibrary.permission': 'Du har inte behörighet att lägga till det här biblioteket',
  'pickerViewFooter.button.add': 'Lägg till',
  'pickerViewFooter.button.cancel': 'Avbryt',
  'pickerViewFooter.button.copy': 'Kopiera hit',
  'pickerViewFooter.button.move': 'Flytta hit',
  'pickerViewFooter.button.moveToProject': 'Flytta hit',
  'pickerViewFooter.button.copyToProject': 'Kopiera hit',
  'pickerViewFooter.button.choose': 'Välj',
  'pickerViewFooter.button.save': 'Spara',
  'pickerViewFooter.button.switchToOSPicker': 'På din dator',
  'pickerViewFooter.button.save.offline': 'Internetanslutning krävs',
  'pickerViewFooter.button.saveAsCopy': 'Spara',
  'pickerViewFooter.button.export': 'Exportera',
  'pickerViewFooter.button.placeLinkOrEmbed': 'Montera',
  'pickerViewFooter.button.import': 'Importera',
  'pickerViewFooter.checkbox.placeLink': 'Länkat',
  'pickerViewFooter.tooltip.placeLink': 'Du kan bara montera det här objektet som en länkad resurs.',
  'pickerViewFooter.tooltip.placeEmbed': 'Du kan bara placera det här objektet som inbäddat.',
  'pickerViewFooter.saveAs.format.label': 'Format',
  'pickerViewFooter.button.selectProject': 'Spara',
  'onboardingCdp.title': 'Du kan göra mycket mer om du sparar som molndokument',
  'onboardingCdp.tooltip': 'Om du sparar på datorn kan du inte använda molnfunktionerna.',
  'onboardingCdp.tooltip.link': 'Läs mer',
  'onboardingCdp.table.header.saveToCloud': 'Creative Cloud',
  'onboardingCdp.table.header.saveToLocal': 'På din dator',
  'onboardingCdp.button.saveToCloud': 'Spara i Creative Cloud',
  'onboardingCdp.feature.offline': 'Åtkomst offline',
  'onboardingCdp.feature.syncing': 'Molnet synkas med alla dina enheter',
  'onboardingCdp.feature.autosave': 'Alla ändringar sparas automatiskt',
  'onboardingCdp.feature.versionHistory': 'Versionshistorik',
  'onboardingCdp.feature.inviteToEdit': 'Bjud in att redigera',
  'onboardingCdp.button.saveToLocal': 'Spara på din dator',
  'onboardingCdp.checkbox.doNotShowAgain': 'Visa inte igen',
  'uap.title.place': 'Montera från Creative Cloud',
  'uap.title.import': 'Importera från Creative Cloud',
  'uap.title.placeLinkOrEmbed': 'Montera från Creative Cloud',
  'uap.title.linkAssets': 'Länka från Creative Cloud',
  'uap.title.open': 'Öppna från Creative Cloud',
  'uap.title.relink': 'Länka från Creative Cloud',
  'uap.title.saveAs': 'Spara i Creative Cloud',
  'uap.title.saveAsCopy': 'Spara i Creative Cloud',
  'uap.title.saveToFolder': 'Spara i Creative Cloud',
  'uap.title.export': 'Exportera till Creative Cloud',
  'uap.title.copy': 'Kopiera till Creative Cloud',
  'uap.title.move': 'Flytta i Creative Cloud',
  'uap.title.moveToProject': 'Flytta i Creative Cloud',
  'uap.title.copyToProject': 'Kopiera till Creative Cloud',
  'uap.title.reference': 'Lägg till i Creative Cloud',
  'uap.title.selectProject': 'Spara i Creative Cloud',
  'move.toSpace.confirm.title': 'Versionshistoriken raderas',
  'move.toSpace.confirm.message': 'Om du flyttar den här filen kommer versionshistoriken att raderas. Vill du behålla versionshistoriken gör du en kopia i stället.'
};

/***/ }),

/***/ "Bg70":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* unused harmony export BetaTagForTests */
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("TSYQ");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _types_CDOReactIntlTyped__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("dSAe");
/* harmony import */ var _styles_BetaTag_css__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("+jHI");
/* harmony import */ var _styles_BetaTag_css__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_styles_BetaTag_css__WEBPACK_IMPORTED_MODULE_3__);
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2019 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/




const BetaTag = ({ id = 'CDOBetaTag', className = 'BetaTag', ...props }) => (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", Object.assign({ className: classnames__WEBPACK_IMPORTED_MODULE_1___default()('betaTag', className) }, props, { id: id }),
    react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_types_CDOReactIntlTyped__WEBPACK_IMPORTED_MODULE_2__[/* FormattedMessage */ "a"], { id: "beta.tag" })));
/* harmony default export */ __webpack_exports__["a"] = (Object(_types_CDOReactIntlTyped__WEBPACK_IMPORTED_MODULE_2__[/* injectIntl */ "e"])(BetaTag));



/***/ }),

/***/ "BhVr":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/

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 __());
  };
}();

var __importDefault = this && this.__importDefault || function (mod) {
  return mod && mod.__esModule ? mod : {
    "default": mod
  };
};

Object.defineProperty(exports, "__esModule", {
  value: true
});

var RequestProcessor_1 = __importDefault(__webpack_require__("HyxP"));
/**
 * Handles service-specific response processing for cloud service (non-acp.local) interaction
 */


var GetMetadataRequestProcessor =
/** @class */
function (_super) {
  __extends(GetMetadataRequestProcessor, _super);

  function GetMetadataRequestProcessor() {
    return _super !== null && _super.apply(this, arguments) || this;
  }

  GetMetadataRequestProcessor.urlRegex = new RegExp("/.*/:metadata");
  GetMetadataRequestProcessor.method = ['GET'];
  return GetMetadataRequestProcessor;
}(RequestProcessor_1.default);

exports.default = GetMetadataRequestProcessor;

/***/ }),

/***/ "Bj/G":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var _UxpOptions = _interopRequireDefault(__webpack_require__("zvwv"));

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}
/*************************************************************************
* ADOBE CONFIDENTIAL
* ___________________
*
* Copyright 2019 Adobe
* All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains
* the property of Adobe and its suppliers, if any. The intellectual
* and technical concepts contained herein are proprietary to Adobe
* and its suppliers and are protected by all applicable intellectual
* property laws, including trade secret and copyright laws.
* Dissemination of this information or reproduction of this material
* is strictly forbidden unless prior written permission is obtained
* from Adobe.
**************************************************************************/


module.exports = _UxpOptions.default.select('RadioGroup', () => __webpack_require__("H6XU"), () => __webpack_require__("H6XU"), () => __webpack_require__("tT6x"));

/***/ }),

/***/ "BjJ0":
/***/ (function(module) {

module.exports = JSON.parse("{\"close\":\"Fermer\",\"error\":\"Erreur\",\"info\":\"Informations\",\"success\":\"Succès\",\"warning\":\"Avertissement\"}");

/***/ }),

/***/ "Bnag":
/***/ (function(module, exports) {

function _nonIterableSpread() {
  throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}

module.exports = _nonIterableSpread;
module.exports["default"] = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "Bp9Y":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


exports.__esModule = true;
exports.default = void 0;

var _default = !!(typeof window !== 'undefined' && window.document && window.document.createElement);

exports.default = _default;
module.exports = exports["default"];

/***/ }),

/***/ "Brgg":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.getBoundingClientRect = getBoundingClientRect;
/*************************************************************************
* ADOBE CONFIDENTIAL
* ___________________
*
* Copyright 2019 Adobe
* All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains
* the property of Adobe and its suppliers, if any. The intellectual
* and technical concepts contained herein are proprietary to Adobe
* and its suppliers and are protected by all applicable intellectual
* property laws, including trade secret and copyright laws.
* Dissemination of this information or reproduction of this material
* is strictly forbidden unless prior written permission is obtained
* from Adobe.
**************************************************************************/

/* this is purely so that we can mock before instantiating */

function getBoundingClientRect(elem) {
  return elem.getBoundingClientRect();
}

/***/ }),

/***/ "BtiA":
/***/ (function(module, exports, __webpack_require__) {

// extracted by mini-css-extract-plugin

/***/ }),

/***/ "Btp7":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, props, _react2.default.createElement("svg", {
    className: "spectrum-UIIcon-CornerTriangle"
  }, _react2.default.createElement("path", {
    d: "M4.74.01a.25.25 0 0 0-.177.073l-4.48 4.48a.25.25 0 0 0 .177.427h4.48a.25.25 0 0 0 .25-.25V.26a.25.25 0 0 0-.25-.25z",
    className: "spectrum-UIIcon--medium"
  }), _react2.default.createElement("path", {
    d: "M5.74.01a.25.25 0 0 0-.177.073l-5.48 5.48a.25.25 0 0 0 .177.427h5.48a.25.25 0 0 0 .25-.25V.26a.25.25 0 0 0-.25-.25z",
    className: "spectrum-UIIcon--large"
  })));
};

WrappedIcon.displayName = 'CornerTriangle';
exports.default = WrappedIcon;

/***/ }),

/***/ "BuN4":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return useIntl; });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _AppContext__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("m/KA");


function useIntl() {
    let app = Object(react__WEBPACK_IMPORTED_MODULE_0__["useContext"])(_AppContext__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"]);
    return app.intl;
}


/***/ }),

/***/ "BuQ2":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);

// EXPORTS
__webpack_require__.d(__webpack_exports__, "configure", function() { return /* binding */ configure; });
__webpack_require__.d(__webpack_exports__, "ProjectsClient", function() { return /* reexport */ ProjectsClient_ProjectsClient; });
__webpack_require__.d(__webpack_exports__, "OneUpTabs", function() { return /* reexport */ utils_constants["q" /* OneUpTabs */]; });
__webpack_require__.d(__webpack_exports__, "Route", function() { return /* reexport */ Route["d" /* Route */]; });
__webpack_require__.d(__webpack_exports__, "SpaceRoute", function() { return /* reexport */ Route["e" /* SpaceRoute */]; });
__webpack_require__.d(__webpack_exports__, "TeamRoute", function() { return /* reexport */ Route["f" /* TeamRoute */]; });
__webpack_require__.d(__webpack_exports__, "TeamsSidebar", function() { return /* reexport */ components_TeamsSidebar; });
__webpack_require__.d(__webpack_exports__, "BrowseSession", function() { return /* binding */ main_BrowseSession; });
__webpack_require__.d(__webpack_exports__, "ViewMode", function() { return /* reexport */ utils_constants["L" /* ViewMode */]; });
__webpack_require__.d(__webpack_exports__, "sharedStore", function() { return /* binding */ sharedStore; });
__webpack_require__.d(__webpack_exports__, "SharesheetProjectsWrapper", function() { return /* reexport */ SharesheetProjectsWrapper; });
__webpack_require__.d(__webpack_exports__, "version", function() { return /* reexport */ version_default.a; });

// EXTERNAL MODULE: ./node_modules/regenerator-runtime/runtime.js
var runtime = __webpack_require__("ls82");

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__("q1tI");
var react_default = /*#__PURE__*/__webpack_require__.n(react);

// EXTERNAL MODULE: ./node_modules/react-intl-cdo/lib/index.es.js + 1 modules
var index_es = __webpack_require__("VIzJ");

// EXTERNAL MODULE: ./node_modules/mobx-react/index.module.js
var index_module = __webpack_require__("okNM");

// EXTERNAL MODULE: ./node_modules/classnames/index.js
var classnames = __webpack_require__("TSYQ");
var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/stores/SharedStore.ts + 6 modules
var SharedStore = __webpack_require__("jmEq");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/components/Project1Up.tsx
var Project1Up = __webpack_require__("Db7c");

// EXTERNAL MODULE: ./node_modules/mobx/lib/mobx.module.js
var mobx_module = __webpack_require__("2vnA");

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Button/index.js
var Button = __webpack_require__("Cn9g");
var Button_default = /*#__PURE__*/__webpack_require__.n(Button);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Heading/index.js
var Heading = __webpack_require__("8bOP");
var Heading_default = /*#__PURE__*/__webpack_require__.n(Heading);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Icon/js/Icon.js
var Icon = __webpack_require__("trqI");
var Icon_default = /*#__PURE__*/__webpack_require__.n(Icon);

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/AddCircle/index.js
var AddCircle = __webpack_require__("hVSB");
var AddCircle_default = /*#__PURE__*/__webpack_require__.n(AddCircle);

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/Browse/index.js
var Browse = __webpack_require__("6jSH");
var Browse_default = /*#__PURE__*/__webpack_require__.n(Browse);

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/Star/index.js
var Star = __webpack_require__("tBqN");
var Star_default = /*#__PURE__*/__webpack_require__.n(Star);

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/StarOutline/index.js
var StarOutline = __webpack_require__("68KS");
var StarOutline_default = /*#__PURE__*/__webpack_require__.n(StarOutline);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/OverlayTrigger/index.js
var OverlayTrigger = __webpack_require__("uYrR");
var OverlayTrigger_default = /*#__PURE__*/__webpack_require__.n(OverlayTrigger);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Tooltip/index.js
var Tooltip = __webpack_require__("DUuf");
var Tooltip_default = /*#__PURE__*/__webpack_require__.n(Tooltip);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/TabList/index.js
var TabList = __webpack_require__("OQA9");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/components/SubHeader.tsx + 2 modules
var SubHeader = __webpack_require__("SXLS");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/images/ErrorLoading.svg
var ErrorLoading = __webpack_require__("+B6w");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/index.tsx + 7 modules
var CDOView = __webpack_require__("te/g");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/actions/leaveResource.tsx
var leaveResource = __webpack_require__("Eu0X");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/ProjectAnalytics.ts
var ProjectAnalytics = __webpack_require__("mm/P");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/projectToDocument.ts
var projectToDocument = __webpack_require__("+dgH");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/stores/constants.ts
var constants = __webpack_require__("q0hk");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/stores/SelectionStore.ts
var SelectionStore = __webpack_require__("fr3g");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/stores/Project.ts + 18 modules
var Project = __webpack_require__("sHM2");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/components/EmptyState.tsx
var EmptyState = __webpack_require__("EkhW");

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Wait/index.js
var Wait = __webpack_require__("czhh");
var Wait_default = /*#__PURE__*/__webpack_require__.n(Wait);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/styles/Header.css
var styles_Header = __webpack_require__("DUOt");
var Header_default = /*#__PURE__*/__webpack_require__.n(styles_Header);

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/ChevronDown/index.js
var ChevronDown = __webpack_require__("uXGE");
var ChevronDown_default = /*#__PURE__*/__webpack_require__.n(ChevronDown);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Popover/index.js
var Popover = __webpack_require__("pyUw");
var Popover_default = /*#__PURE__*/__webpack_require__.n(Popover);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/stores/User.ts
var User = __webpack_require__("CJr9");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/stores/UIConfig.ts
var UIConfig = __webpack_require__("u7n1");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/constants.ts
var utils_constants = __webpack_require__("YVc3");

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/Add/index.js
var Add = __webpack_require__("63WY");
var Add_default = /*#__PURE__*/__webpack_require__.n(Add);

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/ChevronRight/index.js
var ChevronRight = __webpack_require__("+n3g");
var ChevronRight_default = /*#__PURE__*/__webpack_require__.n(ChevronRight);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/List/index.js
var List = __webpack_require__("5r/s");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/styles/TeamsSidebarTeam.css
var styles_TeamsSidebarTeam = __webpack_require__("rkKX");
var TeamsSidebarTeam_default = /*#__PURE__*/__webpack_require__.n(styles_TeamsSidebarTeam);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/Route.ts
var Route = __webpack_require__("ynUZ");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/components/CoachMarks.tsx
var CoachMarks = __webpack_require__("Yo2G");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/UXPUtils.ts
var UXPUtils = __webpack_require__("LbGp");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/components/Dialog.tsx
var Dialog = __webpack_require__("dKUG");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/hosts/Host.ts + 9 modules
var Host = __webpack_require__("Dy/p");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/components/UpdateDialog.tsx




/* harmony default export */ var UpdateDialog = (Object(index_es["g" /* injectIntl */])(({ intl, onCancel, onConfirm, onClose, variant }) => {
    let confirmLabel;
    let cancelLabel;
    const onConfirmClick = variant === 'update' ? onConfirm : null;
    if (onConfirmClick) {
        confirmLabel = intl.formatMessage({ id: 'button.continue' });
        cancelLabel = intl.formatMessage({ id: 'button.cancel' });
    }
    else {
        confirmLabel = intl.formatMessage({ id: 'button.ok' });
    }
    return (react_default.a.createElement(Dialog["a" /* default */], { onCancel: onCancel, onClose: onClose, confirmLabel: confirmLabel, cancelLabel: cancelLabel, onConfirm: onConfirmClick, title: intl.formatMessage({ id: `project.versionError.${variant}.title` }, { appName: Host["a" /* default */].appName }) },
        react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: `project.versionError.${variant}.description` })));
}));

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/ccdRoutes.ts
var ccdRoutes = __webpack_require__("UnS2");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/utils/showUpgradeDialog.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/





function showUpgradeDialog(browseSession) {
    const { projectsClient } = browseSession;
    let value = 'update required';
    const variant = browseSession.inNativeHost ? 'update' : 'reload';
    const data = ProjectAnalytics["g" /* default */].scaffoldEvent(ProjectAnalytics["c" /* Subcategory */].CantOpenModal, ProjectAnalytics["d" /* Subtype */].modal, ProjectAnalytics["e" /* Type */].render, ProjectAnalytics["f" /* Workflow */].Projects);
    Object.assign(data.event, { value });
    ProjectAnalytics["g" /* default */].fireEvent(data);
    projectsClient.showModal(react_default.a.createElement(UpdateDialog, { onCancel: () => {
            const cancelData = ProjectAnalytics["g" /* default */].scaffoldEvent(ProjectAnalytics["c" /* Subcategory */].CantOpenModal, ProjectAnalytics["d" /* Subtype */].cancel, ProjectAnalytics["e" /* Type */].click, ProjectAnalytics["f" /* Workflow */].Projects);
            Object.assign(cancelData.event, { value });
            ProjectAnalytics["g" /* default */].fireEvent(cancelData);
        }, variant: variant, onConfirm: () => {
            const confirmData = ProjectAnalytics["g" /* default */].scaffoldEvent(ProjectAnalytics["c" /* Subcategory */].CantOpenModal, ProjectAnalytics["d" /* Subtype */].update, ProjectAnalytics["e" /* Type */].click, ProjectAnalytics["f" /* Workflow */].Projects);
            Object.assign(confirmData.event, { value });
            ProjectAnalytics["g" /* default */].fireEvent(confirmData);
            Host["a" /* default */].launchCCD(ccdRoutes["a" /* CCD_ROUTES */].Update);
        } }));
}

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/components/TeamsSidebarTeam.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2020 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
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;
};






















let TeamsSidebarTeam_TeamsSidebarTeam = class TeamsSidebarTeam extends react["Component"] {
    constructor() {
        super(...arguments);
        this.isSpaceSelected = (space) => {
            const { browseSession } = this.props;
            return browseSession.currentSpaceId === space.spaceID;
        };
        this.isTeamSelected = (team) => {
            const { browseSession, isDisabled } = this.props;
            const { currentProject, currentTeamId, currentTeamIsOtherTeams } = browseSession;
            if (isDisabled) {
                return false;
            }
            // Show the team as selected when user is in the team's view
            else if (!currentProject &&
                ((!team && currentTeamIsOtherTeams) || (team && team.teamID === currentTeamId))) {
                return true;
            }
            // Show a selected space's team as selected only if the space itself is not visible (is not bookmarked).
            return (currentProject &&
                team &&
                currentProject.teamId === team.teamID &&
                !currentProject.bookmarked);
        };
        this.handleToggleButtonClick = (ev, team) => {
            // Do not select the team, we just want to toggle the item.
            ev.stopPropagation();
            this.props.onToggleExpand(team === null || team === void 0 ? void 0 : team.teamID);
        };
        this._handleCreateSpaceClick = async (teamID) => {
            const { browseSession } = this.props;
            ProjectAnalytics["g" /* default */].fireEvent({
                ...ProjectAnalytics["g" /* default */].scaffoldEvent(ProjectAnalytics["c" /* Subcategory */].TeamsSidebar, ProjectAnalytics["d" /* Subtype */].newProject, ProjectAnalytics["e" /* Type */].click, ProjectAnalytics["f" /* Workflow */].TeamsSidebar),
            });
            // Switch to the team first.
            await browseSession.navigateAndNotify(new Route["f" /* TeamRoute */](teamID, { view: Route["g" /* TeamsOneUpTabs */].Spaces }));
            // Then open the space dialog.
            await browseSession.spaceDialogs.createSpace(teamID);
        };
    }
    // In UAP, some spaces should be disabled. For src/components/YourProjects view,
    // the logic is handled by 'shouldRenderItemAsDisabled' method. We should do the same for the sidebar.
    shouldRenderItemAsDisabled({ repositoryID, role, exclusiveTask, teamID }) {
        var _a, _b;
        if (exclusiveTask && exclusiveTask.name !== 'bookmark') {
            // If the item is running an exclusive task, then it must be shown as disabled.
            // Note that we don't want to show the items disabled while the bookmarking is still executing,
            // to avoid flashing it as disabled when the user favorites it. This is also consistent with the content view.
            return true;
        }
        const { browseSession } = this.props;
        if (browseSession.launchedFromCDP) {
            if (role !== Project["c" /* Role */].CONTRIBUTOR && !((_a = browseSession.cdpContext) === null || _a === void 0 ? void 0 : _a.isOpen)) {
                return true;
            }
            return (_b = browseSession.cdpContext) === null || _b === void 0 ? void 0 : _b.shouldSpaceBeDisabledForMove(repositoryID);
        }
    }
    render() {
        var _a;
        const { className, team, browseSession, isExpanded, isDisabled, testId } = this.props;
        const { cdpContext } = browseSession;
        const name = (_a = team === null || team === void 0 ? void 0 : team.name) !== null && _a !== void 0 ? _a : browseSession.intl.formatMessage({ id: 'teamsSidebarTeam.header.otherTeams' });
        const organization = ((team === null || team === void 0 ? void 0 : team.repositoryName) || '').toLocaleUpperCase();
        let headerTooltip;
        // Show the disabled team tooltip if the team is disabled -- either for moving a Space
        // to a team in a different repository, or moving items to a team in a different repository.
        if (isDisabled && (cdpContext === null || cdpContext === void 0 ? void 0 : cdpContext.isMoveToTeam) && team && !cdpContext.isSourceTeam(team.id)) {
            headerTooltip = browseSession.intl.formatMessage({
                id: 'moveToTeam.disabled.differentOrg.tooltip.message',
            });
        }
        else if (isDisabled && (cdpContext === null || cdpContext === void 0 ? void 0 : cdpContext.isMoveToSpace) && team) {
            headerTooltip = browseSession.intl.formatMessage({
                id: 'moveToSpace.disabled.differentOrg.tooltip.message',
            });
        }
        // When using the UAP, we can only create spaces in a specific modes.
        const canCreateSpaces = !cdpContext || (!isDisabled && cdpContext.allowsCreatingItems);
        const isUxp = UXPUtils["a" /* default */].usingUXP();
        // Explicitly handle keyDown events on the header for UXP
        const keyDownHandler = !isUxp
            ? undefined
            : event => {
                if (['Enter', 'Spacebar', ' '].indexOf(event.key) >= 0) {
                    this.handleTeamClick(team);
                }
            };
        return (react_default.a.createElement("div", { className: classnames_default()(TeamsSidebarTeam_default.a.TeamsSidebarTeam, className, {
                [TeamsSidebarTeam_default.a.TeamsSidebarTeamSelected]: this.isTeamSelected(team),
                [TeamsSidebarTeam_default.a.UXP]: isUxp,
            }), "data-test-id": `TeamsSidebar__Team__${testId}` },
            react_default.a.createElement(OverlayTrigger_default.a, { delayShow: utils_constants["f" /* DEFAULT_TOOLTIP_DELAY */], trigger: "hover", placement: 'right', disabled: !headerTooltip },
                react_default.a.createElement("div", { className: TeamsSidebarTeam_default.a.TeamsSidebarTeamHeader, role: "button", tabIndex: 0, "aria-label": name, onClick: () => this.handleTeamClick(team), onKeyDown: keyDownHandler, "data-test-id": "TeamsSidebar__Team__Header" },
                    react_default.a.createElement(Button_default.a, { "aria-label": isExpanded ? 'Collapse' : 'Expand', className: TeamsSidebarTeam_default.a.TeamsSidebarTeamToggleButton, icon: isExpanded ? react_default.a.createElement(ChevronDown_default.a, null) : react_default.a.createElement(ChevronRight_default.a, null), onClick: ev => this.handleToggleButtonClick(ev, team), variant: "tool", "data-test-id": "TeamsSidebar__Team__Header__Toggle" }),
                    react_default.a.createElement(Heading_default.a, { className: classnames_default()(TeamsSidebarTeam_default.a.TeamsSidebarTeamHeading, {
                            [TeamsSidebarTeam_default.a.TeamsSidebarTeamHeadingDisabled]: isDisabled,
                        }), variant: "subtitle2", "data-test-id": "TeamsSidebar__Team__Header__Heading", role: "button", "aria-label": name, "aria-expanded": isExpanded },
                        react_default.a.createElement(OverlayTrigger_default.a, { delayShow: utils_constants["f" /* DEFAULT_TOOLTIP_DELAY */], trigger: ['hover'], placement: 'right', disabled: isDisabled },
                            react_default.a.createElement("div", { className: TeamsSidebarTeam_default.a.TeamsSidebarTeamHeadingName, "data-test-id": "TeamsSidebar__Team__Header__Heading__Name" }, name),
                            react_default.a.createElement(Tooltip_default.a, null, name)),
                        react_default.a.createElement(OverlayTrigger_default.a, { delayShow: utils_constants["f" /* DEFAULT_TOOLTIP_DELAY */], trigger: ['hover'], placement: 'right', disabled: isDisabled },
                            react_default.a.createElement("div", { className: TeamsSidebarTeam_default.a.TeamsSidebarOrg, "data-test-id": "TeamsSidebar__Team__Header__Heading__Org" }, organization),
                            react_default.a.createElement(Tooltip_default.a, null, organization)))),
                react_default.a.createElement(Tooltip_default.a, null, headerTooltip)),
            isExpanded && this.renderSpaceList(canCreateSpaces)));
    }
    renderSpaceList(canCreateSpaces) {
        const { team, isDisabled, browseSession } = this.props;
        const { intl } = browseSession;
        const spacesForTeam = this.spacesForTeam();
        return (react_default.a.createElement(react_default.a.Fragment, null,
            spacesForTeam && spacesForTeam.length > 0 && (react_default.a.createElement(List["List"], { className: TeamsSidebarTeam_default.a.TeamsSidebarSpaceList, "data-test-id": "TeamsSidebar__Team__Spaces" }, spacesForTeam.map((space, index) => this.renderSpace(space, index)))),
            team && !isDisabled && Object(User["b" /* userHasEditorRoleOnTeam */])(team) && canCreateSpaces && (react_default.a.createElement("div", { className: classnames_default()(TeamsSidebarTeam_default.a.TeamsSidebarCreateSpaceButtonContainer, {
                    [TeamsSidebarTeam_default.a.noSpaces]: !(spacesForTeam && spacesForTeam.length > 0),
                }) },
                react_default.a.createElement(OverlayTrigger_default.a, { delayShow: utils_constants["f" /* DEFAULT_TOOLTIP_DELAY */], placement: "right", trigger: "hover", boundariesElement: "container", disabled: !browseSession.showOffline },
                    react_default.a.createElement("div", { className: TeamsSidebarTeam_default.a.TeamsSidebarCreateSpaceButtonOverlayContainer },
                        react_default.a.createElement(Button_default.a, { className: TeamsSidebarTeam_default.a.TeamsSidebarCreateSpaceButton, icon: react_default.a.createElement(Add_default.a, null), onClick: () => this._handleCreateSpaceClick(team.teamID), quiet: true, variant: "secondary", disabled: browseSession.showOffline, "data-test-id": "TeamsSidebar__Team__action.newSpace", role: 'button', "aria-label": intl.formatMessage({
                                id: 'teamsSidebarTeam.newSpaceButton',
                            }) },
                            react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "teamsSidebarTeam.newSpaceButton" }))),
                    react_default.a.createElement(Tooltip_default.a, null,
                        react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "tooltip.offline.general" })))))));
    }
    renderSpace(space, index) {
        const { browseSession } = this.props;
        return (react_default.a.createElement(List["ListItem"], { className: classnames_default()(TeamsSidebarTeam_default.a.TeamsSidebarSpaceItem, {
                [TeamsSidebarTeam_default.a.TeamsSidebarSpaceItemSelected]: this.isSpaceSelected(space),
            }), key: `space-${index}`, onClick: () => this.handleSpaceClick(space), disabled: this.shouldRenderItemAsDisabled(space), tabIndex: 0, "data-test-id": `TeamsSidebar__Space__${index}`, role: 'link', "aria-label": space.name },
            react_default.a.createElement("div", { role: "presentation", className: TeamsSidebarTeam_default.a.TeamsSidebarSpaceItemColorIndicator, style: { borderColor: space.color, backgroundColor: space.color }, "data-test-id": "TeamsSidebar__Space__Color" }),
            react_default.a.createElement("span", { className: TeamsSidebarTeam_default.a.TeamsSidebarSpaceItemTitle, "data-test-id": "TeamsSidebar__Space__Name", title: space.name }, space.name),
            browseSession.currentSpaceId === space.id && (react_default.a.createElement(CoachMarks["b" /* SpacesCoachMark */], { tourId: "spaces", step: 0, browseSession: browseSession, className: TeamsSidebarTeam_default.a.TeamsSidebarSpaceCoachMarkAnchor }))));
    }
    handleSpaceClick(space) {
        const { team, onItemSelected, browseSession } = this.props;
        onItemSelected === null || onItemSelected === void 0 ? void 0 : onItemSelected(space);
        // We dont want to display the project oneup for a project version higher
        // than we support. Display a dialog instead with required information
        if (Project["f" /* default */].checkProjectVersionIsSupported(space.version)) {
            browseSession.navigateAndNotify(new Route["e" /* SpaceRoute */](space.spaceID, { teamId: team === null || team === void 0 ? void 0 : team.teamID, hideBackButton: true }));
        }
        else {
            browseSession.navigateAndNotify(new Route["f" /* TeamRoute */](space.teamID)).then(() => {
                showUpgradeDialog(browseSession);
            });
        }
    }
    async handleTeamClick(team) {
        var _a, _b;
        const { onItemSelected, browseSession, isDisabled } = this.props;
        if (!isDisabled) {
            const teamID = team === null || team === void 0 ? void 0 : team.teamID;
            onItemSelected && onItemSelected(teamID);
            let route = teamID ? new Route["f" /* TeamRoute */](teamID) : new Route["c" /* OtherTeamsRoute */]();
            await browseSession.navigateAndNotify(route);
            // Because UAP resets the `selectedItems` (`onItemsSelected([])`) after navigateAndNotify via
            // `spacesWillNavigate` (PickerView.tsx), make sure to wait for this navigation to finish before update
            // the `selectedItems` via onTargetTeamSelected below.
            if (team && browseSession.launchedFromCDP && ((_a = browseSession.cdpContext) === null || _a === void 0 ? void 0 : _a.isMoveToTeam)) {
                await ((_b = browseSession.cdpContext) === null || _b === void 0 ? void 0 : _b.onTargetTeamSelected(team));
            }
        }
    }
    spacesForTeam() {
        const { bookmarkedSpaces } = SharedStore["d" /* sharedStore */];
        const { team } = this.props;
        if (team && team.teamID) {
            return bookmarkedSpaces === null || bookmarkedSpaces === void 0 ? void 0 : bookmarkedSpaces.items.filter(space => space.teamID && space.teamID === team.teamID);
        }
        if (!team) {
            // Other teams.
            const { teams } = SharedStore["d" /* sharedStore */];
            const teamIDs = teams === null || teams === void 0 ? void 0 : teams.items.map(item => item.teamID);
            return (teamIDs && (bookmarkedSpaces === null || bookmarkedSpaces === void 0 ? void 0 : bookmarkedSpaces.items.filter(space => !teamIDs.includes(space.teamID))));
        }
    }
};
TeamsSidebarTeam_TeamsSidebarTeam = __decorate([
    index_module["e" /* observer */]
], TeamsSidebarTeam_TeamsSidebarTeam);
/* harmony default export */ var components_TeamsSidebarTeam = (TeamsSidebarTeam_TeamsSidebarTeam);

// EXTERNAL MODULE: ./node_modules/uuid/index.js
var uuid = __webpack_require__("EcEN");
var uuid_default = /*#__PURE__*/__webpack_require__.n(uuid);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/interfaces/IBrowseSession.ts
var IBrowseSession = __webpack_require__("gkEg");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/viewport.ts
var viewport = __webpack_require__("I7EI");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/stores/InternalPreferencesStore.ts
var InternalPreferencesStore = __webpack_require__("bitV");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/components/ListDialog.tsx
var ListDialog = __webpack_require__("OJK8");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/api/invitations-service/InvitationsServiceRequest.tsx
var InvitationsServiceRequest = __webpack_require__("Xtod");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/api/invitations-service/leaveResource.tsx

/* harmony default export */ var invitations_service_leaveResource = (async ({ id, userId }) => {
    if (!userId) {
        return { collaborators: [{ statusCode: 404 }] };
    }
    const { parsedBody } = await new InvitationsServiceRequest["a" /* default */](`api/v4/share/${id}`)
        .method('PATCH')
        .header('Content-Type', 'application/json')
        .body(JSON.stringify({
        collaborators: [
            {
                action: 'remove',
                id: userId,
            },
        ],
    }))
        .fetch()
        .then(InvitationsServiceRequest["a" /* default */].verifyStatus)
        .then(InvitationsServiceRequest["a" /* default */].parseJSONResponse);
    // Response lacks info for the resource id.
    // Includes it here makes it easier to filter failed items in bulk operation.
    parsedBody.id = id;
    return parsedBody;
});

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/api/adobe-content-platform/suggestNames.ts + 1 modules
var suggestNames = __webpack_require__("IvMV");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/actions/afterOp.ts
var afterOp = __webpack_require__("AFlv");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/SentryUtils.ts + 37 modules
var SentryUtils = __webpack_require__("mk41");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/SpacesError.ts
var SpacesError = __webpack_require__("R5sx");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/stores/DocumentStoreBase.tsx
var DocumentStoreBase_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;
};
var __metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var DocumentStoreBase_a, DocumentStoreBase_b, DocumentStoreBase_c, DocumentStoreBase_d;













var NGLAuthenticationState;
(function (NGLAuthenticationState) {
    NGLAuthenticationState["LoggedIn"] = "logged_in";
    NGLAuthenticationState["LoggedOut"] = "logged_out";
})(NGLAuthenticationState || (NGLAuthenticationState = {}));
/**
 * List of notification status sent to clients.
 */
var NotificationStatus;
(function (NotificationStatus) {
    NotificationStatus["ACPL_USER_REGISTERED"] = "acplUserRegistered";
    NotificationStatus["ACPL_USER_NOT_REGISTERED"] = "acplUserNotRegistered";
    /**
     * @deprecated
     */
    NotificationStatus["ACPL_AUTHENTICATED"] = "acplAuthenticated";
    /**
     * @deprecated
     */
    NotificationStatus["ACPL_NOT_AUTHENTICATED"] = "acplNotAuthenticated";
    NotificationStatus["CORESYNC_REACHABLE_AND_COMPATIBLE"] = "coreSyncReachableAndCompatible";
    NotificationStatus["CORESYNC_REACHABLE_NOT_COMPATIBLE"] = "coreSyncReachableNotCompatible";
    NotificationStatus["CORESYNC_NOT_REACHABLE"] = "coreSyncNotReachable";
    NotificationStatus["HAS_INTERNET_ACCESS"] = "online";
    NotificationStatus["NO_INTERNET_ACCESS"] = "offline";
    NotificationStatus["QUOTA_AVAILABLE"] = "quotaAvailable";
    NotificationStatus["QUOTA_EXCEEDED"] = "quotaExceeded";
    NotificationStatus["CLOUD_STORAGE_DISABLED"] = "cloudStorageDisabled";
})(NotificationStatus || (NotificationStatus = {}));
var ModeType;
(function (ModeType) {
    ModeType["organizer"] = "organizer";
    ModeType["open"] = "open";
    ModeType["relink"] = "relink";
    ModeType["saveAs"] = "saveAs";
    ModeType["saveToFolder"] = "saveToFolder";
})(ModeType || (ModeType = {}));
class DocumentStoreBase_DocumentStoreBase {
    constructor() {
        this.enableCollaboratorsIcon = false;
        this.toast = {};
        // TODO fill with real product data
        this.hostProductData = {};
        this.enableCloudFolders = false;
    }
    filterList(list, items) {
        const flatItems = items.map(item => item.asset.id);
        return list.filter(({ id }) => flatItems.includes(id));
    }
    /**
     * Handles operation messaging for project, working file & output deletion functions
     */
    postDelete({ elements, failed, onClose, retry, succeeded, undo, project, }) {
        const { intl } = this.app;
        let message;
        let toastProps;
        // failed to delete all items
        if (succeeded.length === 0) {
            message = intl.formatMessage({ id: 'delete.failure' }, { count: failed.length });
            toastProps = {
                actionLabel: intl.formatMessage({ id: 'button.redo' }),
                // Retry
                onAction: async () => {
                    await retry(this.filterList(elements, failed), project);
                },
                variant: 'error',
            };
        }
        else if (succeeded.length === elements.length) {
            message = intl.formatMessage({ id: 'delete.success' }, { count: succeeded.length });
            toastProps = {
                actionLabel: intl.formatMessage({ id: 'button.undo' }),
                onAction: () => undo(this.filterList(elements, succeeded)),
                onClose,
                variant: 'success',
                closable: true,
                // Can't restore multiple times, close toast once Undo is clicked
                closeOnAction: true,
            };
        }
        // failed to delete some items
        else {
            const group = failed.reduce((accumulator, current) => {
                const knownErrorCodes = [401, 403, 4041];
                const errorCode = knownErrorCodes.includes(current.errorCode)
                    ? current.errorCode
                    : 500;
                if (accumulator[errorCode]) {
                    accumulator[errorCode].list.push(current.asset.name);
                }
                else {
                    let id;
                    switch (errorCode) {
                        case 401:
                            id = 'dialog.deleteFailed.description.unauthorized';
                            break;
                        case 403:
                        case 4041:
                            id = 'dialog.deleteFailed.description.alreadyDeleted';
                            break;
                        default:
                            id = 'dialog.deleteFailed.description.unknown';
                    }
                    accumulator[errorCode] = {
                        header: intl.formatMessage({ id }),
                        list: [current.asset.name],
                    };
                }
                return accumulator;
            }, {});
            message = intl.formatMessage({ id: 'delete.failure.partial' }, { count: elements.length - succeeded.length });
            toastProps = {
                actionLabel: intl.formatMessage({
                    id: 'button.view',
                }),
                onAction: () => this.app.projectsClient.showModal(react_default.a.createElement(ListDialog["a" /* default */], { variant: "error", cancelLabel: intl.formatMessage({
                        id: 'button.close',
                    }), confirmLabel: intl.formatMessage({
                        id: 'button.retry',
                    }), groups: Object.values(group), title: intl.formatMessage({
                        id: 'dialog.deleteFailed.title',
                    }), onConfirm: async () => await retry(this.filterList(elements, failed), project) })),
            };
        }
        this.app.projectsClient.toastManager.addToast(message, toastProps);
    }
    get hasCloudNotificationErrorStatus() {
        // NOTE: not including acplRegistrationState here, as ACPL de-registration can happen seconds before NGL
        // sign-out. Rather than showing "something went wrong" during this period, wait for some request to fail
        // to show it.
        return (this.nglAuthenticationState === NGLAuthenticationState.LoggedOut ||
            this.coreSyncState === NotificationStatus.CORESYNC_REACHABLE_NOT_COMPATIBLE ||
            this.coreSyncState === NotificationStatus.CORESYNC_NOT_REACHABLE ||
            this.quotaState === NotificationStatus.CLOUD_STORAGE_DISABLED);
    }
    get isOnline() {
        let isOnline = false;
        // if (self._isUsingACPL) {
        //     isOnline = this.connectionState === NotificationStatus.HAS_INTERNET_ACCESS &&
        //         this.coreSyncState === NotificationStatus.CORESYNC_REACHABLE_AND_COMPATIBLE;
        // } else {
        isOnline = this.connectionState === NotificationStatus.HAS_INTERNET_ACCESS;
        // }
        return isOnline;
    }
    get isOrganizer() {
        return this.mode === ModeType.organizer;
    }
    get isOpenItemPicker() {
        return this.mode === ModeType.open;
    }
    get isFoldersEnabled() {
        return this.enableCloudFolders;
    }
    get isUserLoggedIn() {
        return true;
    }
    async refreshCurrentSpaceIfUseSamCpp() {
        // T2-3 accounts don't get SAM.cpp notifications for listings, so would require a refresh to
        // see the action happen and we want to get closer to what is on the server.
        if (Host["a" /* default */].useSamCpp) {
            return await this.app.refreshCurrentSpace({ skipSpaceRefresh: true });
        }
    }
    /**
     * Generic delete action for any item.
     * Use the api:op to handle bulk delete.
     *
     * @param {any[]} list The list where the selected items originated from, used to remove the selected items from the list upon success.
     * @param {IAssetModel[]} items The selected items to delete.
     */
    async _delete(assets) {
        let succeededItems = [];
        let failedItems = [];
        // Disable delete-in-progress items
        assets.forEach(item => item.setIsDisabled(true));
        await Promise.all(assets.map(async (asset) => {
            var _a;
            try {
                await asset.archive();
                succeededItems.push({ asset });
            }
            catch (error) {
                const errorCode = SpacesError["a" /* SAMErrorCodeToHTTPNumberCode */].get(Object(SpacesError["j" /* normalizeSamError */])(error)) || 500;
                failedItems.push({
                    asset: asset,
                    errorCode,
                    errorMessage: (_a = Object(SpacesError["g" /* maybeSamError */])(error)) === null || _a === void 0 ? void 0 : _a.message,
                });
            }
        }));
        succeededItems.forEach(itemToRemove => {
            Object(afterOp["a" /* default */])(itemToRemove.asset.docUriForHost, Host["a" /* default */].onAfterDelete);
        });
        // Reset the delete items' disable state
        assets.forEach(asset => asset.setIsDisabled(false));
        const someAssetsDeletedSuccessfully = Boolean(succeededItems.length);
        if (someAssetsDeletedSuccessfully) {
            await this.refreshCurrentSpaceIfUseSamCpp();
        }
        return [succeededItems, failedItems];
    }
    /**
     * Generic restore action for any item.
     * It'll work as long as `item.id` exists.
     *
     * @param {IAssetModel[]} items The selected items to restore.
     * @param {any[]} list The list where the selected items originated from, used to re-enable the selected items from the list upon success.
     */
    async _restore(assets) {
        let succeededItems = [];
        let failedItems = [];
        // Disable restore-in-progress items
        assets.forEach(asset => asset.setIsDisabled(true));
        const start = performance.now();
        await Promise.all(assets.map(async (asset) => {
            var _a;
            try {
                // SAM's restore method has naming conflict resolution enabled by default.
                await asset.restore();
                succeededItems.push({ asset });
            }
            catch (error) {
                SentryUtils["a" /* sentryUtils */].captureException(error, {
                    tags: {
                        'action.error': 'restore-item',
                    },
                });
                const errorCode = SpacesError["a" /* SAMErrorCodeToHTTPNumberCode */].get(Object(SpacesError["j" /* normalizeSamError */])(error)) || 500;
                failedItems.push({
                    asset,
                    errorCode,
                    errorMessage: (_a = Object(SpacesError["g" /* maybeSamError */])(error)) === null || _a === void 0 ? void 0 : _a.message,
                });
            }
        }));
        const elapsedTime = performance.now() - start;
        const allSucceeded = succeededItems.length === assets.length;
        if (allSucceeded) {
            this.app.projectsClient.toastManager.addToast(this.app.intl.formatMessage({ id: 'restore.success' }, { count: succeededItems.length }), {
                closable: true,
                variant: 'success',
            });
        }
        else {
            const numFailed = assets.length - succeededItems.length;
            this.app.projectsClient.toastManager.addToast(this.app.intl.formatMessage({
                id: numFailed === assets.length
                    ? 'restore.failure'
                    : 'restore.failure.partial',
            }, { count: numFailed }));
        }
        // Reset the restore items' disable state
        assets.forEach(asset => asset.setIsDisabled(false));
        const someAssetsDeletedSuccessfully = Boolean(succeededItems.length);
        if (someAssetsDeletedSuccessfully) {
            await this.refreshCurrentSpaceIfUseSamCpp();
        }
        return allSucceeded;
    }
    async deleteProjects(projects, project, onDeleteAfter) {
        var _a, _b, _c, _d, _e;
        const ui = this.uiConfig.cdoUISettings;
        const onClose = () => {
            ProjectAnalytics["g" /* default */].fireEvent({
                ...ProjectAnalytics["g" /* default */].scaffoldEvent(ProjectAnalytics["c" /* Subcategory */].SuccessToast, ProjectAnalytics["d" /* Subtype */].dismiss, ProjectAnalytics["e" /* Type */].click, ProjectAnalytics["f" /* Workflow */].DeleteProject),
                ui,
            });
        };
        const undo = (projectList) => {
            ProjectAnalytics["g" /* default */].fireEvent({
                ...ProjectAnalytics["g" /* default */].scaffoldEvent(ProjectAnalytics["c" /* Subcategory */].SuccessToast, ProjectAnalytics["d" /* Subtype */].undo, ProjectAnalytics["e" /* Type */].click, ProjectAnalytics["f" /* Workflow */].DeleteProject),
                ui,
            });
            return this.restoreProjects(projectList);
        };
        const promises = [];
        const succeeded = [];
        const failed = [];
        const start = performance.now();
        for (const asset of projects) {
            const project = asset.externalData;
            promises.push(project.space.archive().then(() => {
                succeeded.push({ asset });
                Object(afterOp["a" /* default */])(asset.docUriForHost, Host["a" /* default */].onAfterDelete);
            }, err => {
                var _a, _b;
                failed.push({
                    asset,
                    errorCode: (_b = (_a = Object(SpacesError["h" /* maybeSamHttpError */])(err)) === null || _a === void 0 ? void 0 : _a.response.status) !== null && _b !== void 0 ? _b : 0,
                });
                SentryUtils["a" /* sentryUtils */].captureException(err, {
                    tags: {
                        'action.error': 'archive-projects',
                    },
                });
            }));
        }
        await Promise.all(promises);
        const elapsedTime = performance.now() - start;
        // Dunamis Analytics
        let evtType = ProjectAnalytics["e" /* Type */].success, evtError;
        if (failed.length > 0) {
            evtType = ProjectAnalytics["e" /* Type */].error;
            evtError = { event: {} };
            Object(ProjectAnalytics["h" /* fillError */])(evtError, { statusCode: failed[0].errorCode });
        }
        const firstSpaceId = ((_a = failed[0]) === null || _a === void 0 ? void 0 : _a.asset.id) || ((_b = succeeded[0]) === null || _b === void 0 ? void 0 : _b.asset.id);
        const space = (_c = projects.find(proj => proj.id === firstSpaceId)) === null || _c === void 0 ? void 0 : _c.externalData;
        const teamId = space.teamId;
        const scaffoldEvent = ProjectAnalytics["g" /* default */].scaffoldEvent(ProjectAnalytics["c" /* Subcategory */].Space, ProjectAnalytics["d" /* Subtype */].delete, evtType, ProjectAnalytics["f" /* Workflow */].Spaces);
        // Dunamis Analytics
        ProjectAnalytics["g" /* default */].fireEvent({
            event: {
                ...scaffoldEvent.event,
                ...evtError === null || evtError === void 0 ? void 0 : evtError.event,
                value: elapsedTime,
                org_guid: (_d = User["a" /* default */].getTeamFromId(teamId)) === null || _d === void 0 ? void 0 : _d.repositoryID,
                context_guid: null,
            },
            content: {
                // user first ID/name
                id: space.id,
                name: space.name,
                author: (_e = User["a" /* default */].getTeamFromId(teamId)) === null || _e === void 0 ? void 0 : _e.collaboratorRole,
            },
            ui: {
                view_type: ProjectAnalytics["f" /* Workflow */].DeleteProject,
            },
            custom: {
                team_id: teamId,
            },
        });
        if (succeeded.length === projects.length) {
            // If archive space via Space 1-up, upon success, navigate back to Your Spaces view.
            if (projects.length === 1) {
                await (onDeleteAfter === null || onDeleteAfter === void 0 ? void 0 : onDeleteAfter());
            }
        }
        this.postDelete({
            elements: projects,
            failed,
            onClose,
            project,
            retry: this.deleteProjects.bind(this),
            succeeded,
            undo,
        });
    }
    async restoreProjects(projects, onRestoreAfter) {
        var _a, _b, _c, _d, _e;
        const promises = [];
        const succeeded = [];
        const failed = [];
        const start = performance.now();
        for (const asset of projects) {
            const project = asset.externalData;
            promises.push(this._restoreSpace(project.space).then(() => {
                succeeded.push({ asset });
                Object(afterOp["a" /* default */])(asset.docUriForHost, Host["a" /* default */].onAfterDelete);
            }, err => {
                var _a, _b;
                failed.push({
                    asset,
                    errorCode: (_b = (_a = Object(SpacesError["h" /* maybeSamHttpError */])(err)) === null || _a === void 0 ? void 0 : _a.response.status) !== null && _b !== void 0 ? _b : 0,
                });
                SentryUtils["a" /* sentryUtils */].captureException(err, {
                    tags: {
                        'action.error': 'restore-projects',
                    },
                });
            }));
        }
        await Promise.all(promises);
        const elapsedTime = performance.now() - start;
        // Dunamis Analytics
        let evtType = ProjectAnalytics["e" /* Type */].success, evtError;
        if (failed.length > 0) {
            evtType = ProjectAnalytics["e" /* Type */].error;
            evtError = { event: {} };
            Object(ProjectAnalytics["h" /* fillError */])(evtError, { statusCode: failed[0].errorCode });
        }
        const firstSpaceId = ((_a = failed[0]) === null || _a === void 0 ? void 0 : _a.asset.id) || ((_b = succeeded[0]) === null || _b === void 0 ? void 0 : _b.asset.id);
        const space = (_c = projects.find(proj => proj.id === firstSpaceId)) === null || _c === void 0 ? void 0 : _c.externalData;
        const teamId = space.teamId;
        const scaffoldEvent = ProjectAnalytics["g" /* default */].scaffoldEvent(ProjectAnalytics["c" /* Subcategory */].Space, ProjectAnalytics["d" /* Subtype */].restore, evtType, ProjectAnalytics["f" /* Workflow */].Spaces);
        // Dunamis Analytics
        ProjectAnalytics["g" /* default */].fireEvent({
            event: {
                ...scaffoldEvent.event,
                ...evtError === null || evtError === void 0 ? void 0 : evtError.event,
                value: elapsedTime,
                org_guid: (_d = User["a" /* default */].getTeamFromId(teamId)) === null || _d === void 0 ? void 0 : _d.repositoryID,
                context_guid: null,
            },
            content: {
                // user first ID/name
                id: space.id,
                name: space.name,
                author: (_e = User["a" /* default */].getTeamFromId(teamId)) === null || _e === void 0 ? void 0 : _e.collaboratorRole,
            },
            ui: {
                view_type: ProjectAnalytics["f" /* Workflow */].RestoreSpace,
            },
            custom: {
                team_id: teamId,
            },
        });
        if (succeeded.length > 0) {
            this.app.projectsClient.toastManager.addToast(this.app.intl.formatMessage({ id: 'restore.success' }, { count: succeeded.length }), {
                closable: true,
                variant: 'success',
            });
            onRestoreAfter === null || onRestoreAfter === void 0 ? void 0 : onRestoreAfter();
        }
    }
    async _restoreSpace(space, newName) {
        // We first try to restore using its own name.
        try {
            await space.restore(newName);
        }
        catch (error) {
            if (Object(SpacesError["j" /* normalizeSamError */])(error) === 'CONFLICT') {
                // Try to resolve the conflict by changing the name.
                const resolvedName = Object(suggestNames["c" /* duplicateNameFormat */])(newName !== null && newName !== void 0 ? newName : space.name, 0, utils_constants["v" /* PROJECT_MIMETYPE */]);
                return this._restoreSpace(space, resolvedName);
            }
            // Otherwise, surface the error.
            throw error;
        }
    }
    async leaveResources(resources) {
        return await Promise.all(resources.map(resource => invitations_service_leaveResource(resource)));
    }
}
DocumentStoreBase_decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", Object)
], DocumentStoreBase_DocumentStoreBase.prototype, "nglAuthenticationState", void 0);
DocumentStoreBase_decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", Boolean)
], DocumentStoreBase_DocumentStoreBase.prototype, "enableCollaboratorsIcon", void 0);
DocumentStoreBase_decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", Object)
], DocumentStoreBase_DocumentStoreBase.prototype, "toast", void 0);
DocumentStoreBase_decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", Object)
], DocumentStoreBase_DocumentStoreBase.prototype, "hostProductData", void 0);
DocumentStoreBase_decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", Boolean)
], DocumentStoreBase_DocumentStoreBase.prototype, "enableCloudFolders", void 0);
DocumentStoreBase_decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", Object)
], DocumentStoreBase_DocumentStoreBase.prototype, "coreSyncState", void 0);
DocumentStoreBase_decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", Object)
], DocumentStoreBase_DocumentStoreBase.prototype, "quotaState", void 0);
DocumentStoreBase_decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", Object)
], DocumentStoreBase_DocumentStoreBase.prototype, "connectionState", void 0);
DocumentStoreBase_decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", Object)
], DocumentStoreBase_DocumentStoreBase.prototype, "mode", void 0);
DocumentStoreBase_decorate([
    mobx_module["j" /* action */].bound,
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [Array]),
    __metadata("design:returntype", typeof (DocumentStoreBase_a = typeof Promise !== "undefined" && Promise) === "function" ? DocumentStoreBase_a : Object)
], DocumentStoreBase_DocumentStoreBase.prototype, "_delete", null);
DocumentStoreBase_decorate([
    mobx_module["j" /* action */].bound,
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [Array, typeof (DocumentStoreBase_b = typeof Project["f" /* default */] !== "undefined" && Project["f" /* default */]) === "function" ? DocumentStoreBase_b : Object, typeof (DocumentStoreBase_c = typeof Function !== "undefined" && Function) === "function" ? DocumentStoreBase_c : Object]),
    __metadata("design:returntype", Promise)
], DocumentStoreBase_DocumentStoreBase.prototype, "deleteProjects", null);
DocumentStoreBase_decorate([
    mobx_module["j" /* action */].bound,
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [Array, typeof (DocumentStoreBase_d = typeof Function !== "undefined" && Function) === "function" ? DocumentStoreBase_d : Object]),
    __metadata("design:returntype", Promise)
], DocumentStoreBase_DocumentStoreBase.prototype, "restoreProjects", null);
DocumentStoreBase_decorate([
    mobx_module["j" /* action */].bound,
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [Array]),
    __metadata("design:returntype", Promise)
], DocumentStoreBase_DocumentStoreBase.prototype, "leaveResources", null);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/api/projects-service/ProjectsServiceRequest.ts
var ProjectsServiceRequest = __webpack_require__("TxkD");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/api/projects-service/batchLibrariesOperation.ts

async function batchLibrariesOperation(href, operation) {
    const { parsedBody } = await new ProjectsServiceRequest["b" /* ProjectsServiceRequest */](href)
        .method('POST')
        .content('application/vnd.adobe.asset-operation+json')
        .body(JSON.stringify(operation))
        .fetch()
        .then(ProjectsServiceRequest["b" /* ProjectsServiceRequest */].verifyStatus)
        .then(ProjectsServiceRequest["b" /* ProjectsServiceRequest */].parseJSONResponse);
    return parsedBody;
}

// EXTERNAL MODULE: ./node_modules/@ccx-public/shared-asset-model-js/dist/mjs/src/index.js
var src = __webpack_require__("m4Z2");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/api/invitations-service/confirmAccess.ts
var confirmAccess = __webpack_require__("1a54");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/stores/ProjectPool.ts




/**
 * ProjectPool stores instances of a Project, keyed on their ID. Meant as a
 * stopgap to convert SAM.js `Space` instances to our `Project` models, without
 * creating new `Project` instances every time we sync the list from SAM.js.
 */
class ProjectPool_ProjectPool {
    constructor() {
        this._privateRef = new WeakMap();
    }
    async loadProjectById(id) {
        const spaceContext = SharedStore["d" /* sharedStore */].spaceContext;
        let space;
        if (!spaceContext) {
            throw new SpacesError["b" /* SpacesError */]('NOT_INITIALIZED', 'Space context is not ready. Call updateStore with imsData.');
        }
        try {
            space = await spaceContext.lookupSpaceById(id);
        }
        catch (e) {
            if (Object(SpacesError["j" /* normalizeSamError */])(e) === 'NOT_FOUND') {
                // Retry with Invitations service Confirm Access API
                // because the user might have pending invite to this space.
                try {
                    await Object(confirmAccess["a" /* default */])(id);
                }
                catch (err) {
                    // it's okay if this fails
                }
                space = await spaceContext.lookupSpaceById(id);
            }
            else {
                // Let the caller know about this error.
                throw e;
            }
        }
        return this.fromSamSpace(space);
    }
    fromSamSpace(space) {
        let project = this._privateRef.get(space);
        if (!project) {
            project = new Project["f" /* default */](space);
            this._privateRef.set(space, project);
        }
        return project;
    }
}
/* harmony default export */ var stores_ProjectPool = (new ProjectPool_ProjectPool());

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/stores/Settings.ts
var Settings = __webpack_require__("5u1M");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/performance.ts
var utils_performance = __webpack_require__("P5RH");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/mimeTypes.tsx
var utils_mimeTypes = __webpack_require__("sYeI");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/SAMUtils.ts
var SAMUtils = __webpack_require__("x7p6");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/stores/ProjectList.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2020 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
var ProjectList_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;
};
var ProjectList_metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var ProjectList_a, ProjectList_b, ProjectList_c;

















class ProjectList_ProjectList extends DocumentStoreBase_DocumentStoreBase {
    constructor(app) {
        super();
        this.app = app;
        this._yourProjects = [];
        // Used to track resetAndFetchProjects calls
        this._projectsFetchId = 0;
        // Additional flag to track if confirmAccess or subsequent teams/ fetch is in progress
        this._isConfirmingTeamAccess = false;
        // Flattened arrays of lowercase space names by team to check against for duplicates
        this._uniqueNamesByTeam = {};
        this.uiConfig = UIConfig["a" /* default */].getConfigByNamespace(this.app, utils_constants["J" /* UiConfigNamespaces */].YourProjects);
        this.hasError = () => {
            var _a;
            return ((_a = this.samList) === null || _a === void 0 ? void 0 : _a.status) === src["e" /* AssetListStatus */].HadLoaderErrors;
        };
        this.empty = () => {
            var _a;
            return (((_a = this.samList) === null || _a === void 0 ? void 0 : _a.status) === src["e" /* AssetListStatus */].ReadyFullyLoaded && !this.yourProjects.length);
        };
        this.isInitializing = () => {
            var _a, _b;
            return (this._isConfirmingTeamAccess ||
                ((_b = (((_a = this.samList) === null || _a === void 0 ? void 0 : _a.status) === src["e" /* AssetListStatus */].Loading && !this.yourProjects.length)) !== null && _b !== void 0 ? _b : true));
        };
        this._yourProjectsAtom = this._observeSamList();
    }
    _observeSamList() {
        // We are using a reaction instead of a @computed, due to a bug in MobX that doesn't
        // allow `untracked` inside a computed property. We only want to observe the list of items
        // not the actual contents.
        let destroyReaction;
        let atom = Object(mobx_module["n" /* createAtom */])('projectList', () => {
            destroyReaction = Object(mobx_module["B" /* reaction */])(() => { var _a, _b; return (_b = (_a = this.samList) === null || _a === void 0 ? void 0 : _a.items) !== null && _b !== void 0 ? _b : []; }, items => {
                this._yourProjects = items.map(space => stores_ProjectPool.fromSamSpace(space));
                this._uniqueNamesByTeam = {};
                items.forEach(space => this.cacheUniqueName(space.name.toLowerCase(), space.teamID));
                atom.reportChanged();
            }, { fireImmediately: true });
        }, () => {
            destroyReaction === null || destroyReaction === void 0 ? void 0 : destroyReaction();
            destroyReaction = undefined;
            this._yourProjects = [];
            atom.reportChanged();
        });
        return atom;
    }
    get projects() {
        return this.yourProjects;
    }
    get yourProjects() {
        this._yourProjectsAtom.reportObserved();
        return this._yourProjects;
    }
    onUserLeftProject({ id }) {
        var _a, _b;
        if (!id) {
            return;
        }
        const space = (_a = SharedStore["d" /* sharedStore */].spaceContext) === null || _a === void 0 ? void 0 : _a.spacePool.getLocalItemById(id);
        if (!space) {
            // Already removed.
            return;
        }
        const session = (_b = SharedStore["d" /* sharedStore */].spaceContext) === null || _b === void 0 ? void 0 : _b.spacePool.createUpdateSession();
        session === null || session === void 0 ? void 0 : session.queueDiscardedItem(space);
        session === null || session === void 0 ? void 0 : session.commit();
    }
    onUserLeftProjects(items) {
        var _a, _b;
        const session = (_a = SharedStore["d" /* sharedStore */].spaceContext) === null || _a === void 0 ? void 0 : _a.spacePool.createUpdateSession();
        for (const { id } of items) {
            if (!id) {
                continue;
            }
            const space = (_b = SharedStore["d" /* sharedStore */].spaceContext) === null || _b === void 0 ? void 0 : _b.spacePool.getLocalItemById(id);
            if (!space) {
                // Already removed.
                continue;
            }
            session === null || session === void 0 ? void 0 : session.queueDiscardedItem(space);
        }
        session === null || session === void 0 ? void 0 : session.commit();
    }
    get isFullyLoaded() {
        var _a;
        return ((_a = this.samList) === null || _a === void 0 ? void 0 : _a.status) === src["e" /* AssetListStatus */].ReadyFullyLoaded;
    }
    get isLoading() {
        var _a;
        return ((_a = this.samList) === null || _a === void 0 ? void 0 : _a.status) === src["e" /* AssetListStatus */].Loading;
    }
    get loadingMore() {
        return !this.isInitializing() && !this.isFullyLoaded && this.isLoading;
    }
    get loadNotStarted() {
        var _a;
        return ((_a = this.samList) === null || _a === void 0 ? void 0 : _a.status) === src["e" /* AssetListStatus */].NotStarted;
    }
    getUniqueNamesByTeam(teamId) {
        return this._uniqueNamesByTeam[teamId];
    }
    cacheUniqueName(name, teamId) {
        const lowercase = name.toLowerCase();
        if (this._uniqueNamesByTeam[teamId] === undefined) {
            this._uniqueNamesByTeam[teamId] = [];
        }
        if (!this._uniqueNamesByTeam[teamId].includes(lowercase)) {
            this._uniqueNamesByTeam[teamId].push(lowercase);
        }
    }
    async confirmTeamAccessIfPending(teamId) {
        try {
            const teams = await User["a" /* default */].getTeams();
            const teamBelongsToTeams = (teams) => teams === null || teams === void 0 ? void 0 : teams.items.some(element => element.id === teamId);
            if (!teamBelongsToTeams(teams)) {
                const TEAM_REFRESH_AFTER_CONFIRM_DELAY = 5000;
                const TEAM_REFRESH_TIMEOUT = 3000;
                const TEAM_REFRESH_RETRIES = 10;
                await Object(confirmAccess["a" /* default */])(teamId);
                /*
                 If confirmAccess is successful, refresh Teams from SAM after small delay
                 Initial delay is required for confirmed team to reflect in projects service.
                 If new team is not reflected, retry a few times, in case Projects service takes time.
                 Awaiting here is okay because the UI shows a loader (see isInitializing) until team is updated.
                */
                await User["a" /* default */].getTeamsUntil(teamBelongsToTeams, {
                    retryDelay: TEAM_REFRESH_TIMEOUT,
                    maxRetries: TEAM_REFRESH_RETRIES,
                    initialDelay: TEAM_REFRESH_AFTER_CONFIRM_DELAY,
                }).then(async (teams) => {
                    if (!teamBelongsToTeams(teams)) {
                        Settings["b" /* settings */].logger.error('confirmTeamAccessIfPending: Retry limit exceeded');
                    }
                });
            }
        }
        catch (error) {
            Settings["b" /* settings */].logger.error('confirmTeamAccessIfPending: ', error);
        }
    }
    async resetAndFetchProjects(teamId, bookmarked, loadAllPages, isOffline) {
        var _a, _b;
        const projectsFetchId = ++this._projectsFetchId;
        this._isConfirmingTeamAccess = true;
        // CCPROJ-5191: Confirm access for the team if access is pending for this user.
        if (!isOffline) {
            teamId && (await this.confirmTeamAccessIfPending(teamId));
        }
        else {
            Settings["b" /* settings */].logger.warn('skipped confirm team access while offline');
        }
        // Load projects for team only if resetAndFetchProjects hasn't been called again. If
        // confirmTeamAccessIfPending takes time and user opens another team in the meanwhile, load call
        // will reset the projects back to older team's projects, for which confirmAccess was called
        if (projectsFetchId === this._projectsFetchId) {
            this._isConfirmingTeamAccess = false;
            let start, elapsedTime, evtType, evtError;
            try {
                start = utils_performance["a" /* default */].now();
                await this.load({ teamId, bookmarked, loadAllPages });
                elapsedTime = utils_performance["a" /* default */].now() - start;
                evtType = ProjectAnalytics["e" /* Type */].success;
            }
            catch (error) {
                elapsedTime = utils_performance["a" /* default */].now() - start;
                evtType = ProjectAnalytics["e" /* Type */].error;
                evtError = { event: {} };
                Object(ProjectAnalytics["h" /* fillError */])(evtError, error);
            }
            finally {
                const scaffoldEvent = ProjectAnalytics["g" /* default */].scaffoldEvent(ProjectAnalytics["c" /* Subcategory */].Space, ProjectAnalytics["d" /* Subtype */].list, evtType, ProjectAnalytics["f" /* Workflow */].Spaces);
                // Dunamis Analytics
                ProjectAnalytics["g" /* default */].fireEvent({
                    event: {
                        ...scaffoldEvent.event,
                        ...evtError === null || evtError === void 0 ? void 0 : evtError.event,
                        value: elapsedTime,
                        org_guid: (_a = User["a" /* default */].getTeamFromId(teamId)) === null || _a === void 0 ? void 0 : _a.repositoryID,
                        context_guid: null,
                    },
                    content: {
                        author: (_b = User["a" /* default */].getTeamFromId(teamId)) === null || _b === void 0 ? void 0 : _b.collaboratorRole,
                    },
                    ui: {
                        view_type: ProjectAnalytics["f" /* Workflow */].Teams,
                    },
                    custom: {
                        team_id: teamId,
                    },
                });
            }
        }
    }
    async load(options) {
        options = Object.assign({
            bookmarked: false,
        }, options);
        const { teamId, bookmarked, loadAllPages } = options;
        if (!SharedStore["d" /* sharedStore */].spaceContext) {
            this.samList = undefined;
            return;
        }
        // By default use SAM to load all pages
        // If configured to `loadAllPages`, the maximum number of projects is requested
        // If we're loading all pages at once, we probably want the largest amount of results possible.
        const limit = loadAllPages ? utils_constants["t" /* PROJECTS_MAX_PAGE_SIZE */] : utils_constants["u" /* PROJECTS_PAGE_SIZE */];
        // This initial SAM.js integration just uses SAM.js to maintain the list
        // of Spaces while we sync the data to corresponding Project models.
        // In the future, we'll use SAM's models directly.
        this.samList = SharedStore["d" /* sharedStore */].spaceContext.getSpaces().getList(this.uiConfig.toSpaceOrder(), new src["v" /* SpaceFilter */]({
            bookmarked,
            teamID: teamId,
            teamRole: !teamId ? 'NONE' : undefined,
            state: 'active',
        }), {
            // Make sure we don't load twice if we happen to call `load` in the same call.
            refreshTimeout: 50,
            loadAllPages: true,
            limit,
        });
        await Object(SAMUtils["c" /* waitForListLoad */])(this.samList);
    }
    async createProject(teamId, name, description, color, access) {
        const { spaceContext } = SharedStore["d" /* sharedStore */];
        if (!spaceContext) {
            return Promise.reject(new SpacesError["b" /* SpacesError */]('NOT_INITIALIZED', 'Cannot create a new project'));
        }
        const team = teamId && User["a" /* default */].getTeamFromId(teamId);
        if (!team) {
            return Promise.reject(new SpacesError["b" /* SpacesError */]('NOT_FOUND', 'Cannot create a new project'));
        }
        const space = await spaceContext.createSpace(team, {
            name,
            description,
            color,
            access,
        });
        return stores_ProjectPool.fromSamSpace(space);
    }
    async deleteWorkingFiles(files, project) {
        const ui = this.uiConfig.cdoUISettings;
        const onClose = () => {
            ProjectAnalytics["g" /* default */].fireEvent({
                event: {
                    subcategory: ProjectAnalytics["c" /* Subcategory */].SuccessToast,
                    subtype: ProjectAnalytics["d" /* Subtype */].dismiss,
                    type: ProjectAnalytics["e" /* Type */].click,
                    workflow: ProjectAnalytics["f" /* Workflow */].DeleteFiles,
                },
                ui,
            });
        };
        const undo = deletedFiles => {
            ProjectAnalytics["g" /* default */].fireEvent({
                ...ProjectAnalytics["g" /* default */].scaffoldEvent(ProjectAnalytics["c" /* Subcategory */].SuccessToast, ProjectAnalytics["d" /* Subtype */].undo, ProjectAnalytics["e" /* Type */].click, ProjectAnalytics["f" /* Workflow */].DeleteFiles),
                ui,
            });
            this.restoreWorkingFiles(deletedFiles);
        };
        let startTime = utils_performance["a" /* default */].now();
        const [succeeded, failed] = await this._delete(files);
        let endTime = utils_performance["a" /* default */].now();
        this.instrumentDocumentDeletion(endTime - startTime, files, project, succeeded, failed);
        this.postDelete({
            elements: files,
            failed,
            project,
            onClose,
            retry: this.deleteWorkingFiles,
            succeeded,
            undo,
        });
    }
    getDocumentMap(docs) {
        let map = new Map();
        docs.forEach(function (doc) {
            map.set(doc.id, doc);
        });
        return map;
    }
    getCommonFileData(file) {
        return {
            mimetype: (file === null || file === void 0 ? void 0 : file.name) !== undefined ? Object(utils_mimeTypes["a" /* getExtension */])(file === null || file === void 0 ? void 0 : file.name) : '',
            name: file === null || file === void 0 ? void 0 : file.title,
            size: file === null || file === void 0 ? void 0 : file.size,
            type: this.getContentType(file === null || file === void 0 ? void 0 : file.type),
        };
    }
    getContentType(type) {
        switch (type) {
            case 'application/vnd.adobe.weblink+dcx':
                return ProjectAnalytics["a" /* ContentType */].WebLink;
            case 'application/vnd.adobe.hz.canvas+dcx':
                return ProjectAnalytics["a" /* ContentType */].Canvas;
            default:
                return ProjectAnalytics["a" /* ContentType */].File;
        }
    }
    async deletePublishedFiles(outputs, project) {
        const undo = deletedOutputs => {
            // TODO: Analytics tracking
            this.restorePublished(deletedOutputs);
        };
        const [succeeded, failed] = await this._delete(outputs);
        this.postDelete({
            elements: outputs,
            failed,
            onClose: () => {
                /* TODO: close click analytics */
            },
            project,
            retry: this.deletePublishedFiles,
            succeeded,
            undo,
        });
    }
    instrumentDocumentDeletion(timeTaken, files, project, succeeded, failed) {
        let documentMap = this.getDocumentMap(files);
        for (let i = 0; i < succeeded.length; i++) {
            ProjectAnalytics["g" /* default */].fireEvent(this.getIngestDataForDelete(timeTaken, documentMap.get(succeeded[i].asset.id), project, succeeded[i], null));
        }
        for (let i = 0; i < failed.length; i++) {
            ProjectAnalytics["g" /* default */].fireEvent(this.getIngestDataForDelete(timeTaken, documentMap.get(failed[i].asset.id), project, null, failed[i]));
        }
    }
    getIngestDataForDelete(timeTaken, file, project, successResponse, errorResponse) {
        var _a, _b, _c, _d;
        const ui = this.uiConfig.cdoUISettings;
        let ingestData = {
            env: {
                api: {
                    name: ProjectAnalytics["b" /* EnvApiName */].RESOURCE_DELETE,
                },
            },
            content: {
                id: (_a = project === null || project === void 0 ? void 0 : project.id) !== null && _a !== void 0 ? _a : '',
                author: (_b = project === null || project === void 0 ? void 0 : project.role) !== null && _b !== void 0 ? _b : '',
                ...this.getCommonFileData(file),
            },
            event: {
                subcategory: ProjectAnalytics["c" /* Subcategory */].Resource,
                subtype: ProjectAnalytics["d" /* Subtype */].delete,
                type: successResponse !== undefined ? ProjectAnalytics["e" /* Type */].success : ProjectAnalytics["e" /* Type */].error,
                workflow: ProjectAnalytics["f" /* Workflow */].Spaces,
                value: timeTaken,
                cloud_id: file === null || file === void 0 ? void 0 : file.id,
                context_guid: file === null || file === void 0 ? void 0 : file.id,
                org_guid: (_c = User["a" /* default */].getTeamFromId(project === null || project === void 0 ? void 0 : project.teamId)) === null || _c === void 0 ? void 0 : _c.repositoryID,
            },
            custom: {
                team_id: (_d = project === null || project === void 0 ? void 0 : project.teamId) !== null && _d !== void 0 ? _d : '',
            },
            ui,
        };
        if (errorResponse !== null) {
            let errorResponseData = {
                status: errorResponse.errorCode,
                body: {
                    detail: errorResponse.errorMessage,
                },
            };
            Object(ProjectAnalytics["i" /* fillErrorData */])(ingestData, errorResponseData);
        }
        return ingestData;
    }
    async deleteResources(resources, project) {
        var _a, _b;
        const list = project.resources.items;
        let errorCodes = [];
        let succeededItemIds = [];
        try {
            const librariesBatchLink = await project.getPageLink('libraries', ProjectsServiceRequest["a" /* ProjectLinks */].LIBRARIES_BATCH);
            if (!librariesBatchLink) {
                throw new SpacesError["b" /* SpacesError */]('INVALID_LINK', 'Expected a librariesBatchLink');
            }
            let startTime = utils_performance["a" /* default */].now();
            let responses = (await batchLibrariesOperation(librariesBatchLink.href, {
                op: 'remove',
                items: resources.map(resource => ({
                    id: resource.id,
                })),
            })).responses;
            let endTime = utils_performance["a" /* default */].now();
            for (let i = 0; i < responses.length; i++) {
                let ingestData = {
                    env: {
                        api: {
                            name: ProjectAnalytics["b" /* EnvApiName */].LIBRARY_DELETE.replace(ProjectAnalytics["b" /* EnvApiName */].CONST_SPACE_ID, project.id),
                        },
                    },
                    content: {
                        id: project.id,
                        type: ProjectAnalytics["a" /* ContentType */].Library,
                        author: project.role,
                    },
                    event: {
                        subcategory: ProjectAnalytics["c" /* Subcategory */].Resource,
                        subtype: ProjectAnalytics["d" /* Subtype */].delete,
                        type: ProjectAnalytics["e" /* Type */].success,
                        workflow: ProjectAnalytics["f" /* Workflow */].Spaces,
                        value: endTime - startTime,
                        org_guid: (_a = User["a" /* default */].getTeamFromId(project.teamId)) === null || _a === void 0 ? void 0 : _a.repositoryID,
                    },
                    custom: {
                        team_id: project.teamId,
                    },
                };
                const status = responses[i].status;
                ingestData.event['cloud_id'] = resources[i].id;
                ingestData.event['context_guid'] = resources[i].id;
                if (status && (status < 200 || status >= 400)) {
                    Object(ProjectAnalytics["i" /* fillErrorData */])(ingestData, responses[i]);
                    errorCodes.push(status);
                }
                else {
                    ingestData.event['type'] = ProjectAnalytics["e" /* Type */].success;
                    succeededItemIds.push(resources[i].id);
                }
                ProjectAnalytics["g" /* default */].fireEvent(ingestData);
            }
        }
        catch (error) {
            errorCodes = resources.map(_ => { var _a, _b; return (_b = (_a = Object(SpacesError["h" /* maybeSamHttpError */])(error)) === null || _a === void 0 ? void 0 : _a.response.status) !== null && _b !== void 0 ? _b : 0; });
        }
        (_b = list.filter(source => succeededItemIds.includes(source.id))) === null || _b === void 0 ? void 0 : _b.map(source => source.setIsHidden(true));
        const errorCount = errorCodes.length;
        const successCount = succeededItemIds.length;
        const everythingSucceeded = errorCount === 0;
        if (everythingSucceeded) {
            this.app.projectsClient.toastManager.addToast(this.app.intl.formatMessage({ id: 'libraries.toast.delete.success' }, { count: successCount }), { closable: true, variant: 'success' });
        }
        else {
            this.app.projectsClient.toastManager.addToast(this.app.intl.formatMessage({ id: 'libraries.toast.delete.error' }, { count: errorCount }), { closable: true, variant: 'error' });
        }
    }
    async restorePublished(assets) {
        await this._restore(assets);
    }
    async restoreWorkingFiles(assets) {
        await this._restore(assets);
    }
}
ProjectList_decorate([
    mobx_module["z" /* observable */],
    ProjectList_metadata("design:type", typeof (ProjectList_a = typeof src["IItemList"] !== "undefined" && src["IItemList"]) === "function" ? ProjectList_a : Object)
], ProjectList_ProjectList.prototype, "samList", void 0);
ProjectList_decorate([
    mobx_module["z" /* observable */],
    ProjectList_metadata("design:type", Object)
], ProjectList_ProjectList.prototype, "_isConfirmingTeamAccess", void 0);
ProjectList_decorate([
    mobx_module["z" /* observable */],
    ProjectList_metadata("design:type", Object)
], ProjectList_ProjectList.prototype, "_uniqueNamesByTeam", void 0);
ProjectList_decorate([
    mobx_module["j" /* action */],
    ProjectList_metadata("design:type", Function),
    ProjectList_metadata("design:paramtypes", [String, String, String, String, Object]),
    ProjectList_metadata("design:returntype", Promise)
], ProjectList_ProjectList.prototype, "createProject", null);
ProjectList_decorate([
    mobx_module["j" /* action */].bound,
    ProjectList_metadata("design:type", Function),
    ProjectList_metadata("design:paramtypes", [Array, Object]),
    ProjectList_metadata("design:returntype", Promise)
], ProjectList_ProjectList.prototype, "deleteWorkingFiles", null);
ProjectList_decorate([
    mobx_module["j" /* action */].bound,
    ProjectList_metadata("design:type", Function),
    ProjectList_metadata("design:paramtypes", [Array, Object]),
    ProjectList_metadata("design:returntype", Promise)
], ProjectList_ProjectList.prototype, "deletePublishedFiles", null);
ProjectList_decorate([
    mobx_module["j" /* action */].bound,
    ProjectList_metadata("design:type", Function),
    ProjectList_metadata("design:paramtypes", [Array]),
    ProjectList_metadata("design:returntype", Promise)
], ProjectList_ProjectList.prototype, "restoreWorkingFiles", null);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/sort.ts
var utils_sort = __webpack_require__("XctL");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/api/libraries-service/LibrariesServiceRequest.ts
var LibrariesServiceRequest = __webpack_require__("Faxu");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/api/libraries-service/getLibraries.ts



async function* getLibraries({ owner = 'private,incoming&featureSet=tlga', orderBy = constants["f" /* UXSortBy */].name, sortDir = constants["h" /* UXSortDir */].asc, }) {
    // API Docs: https://git.corp.adobe.com/pages/Stormcloud/apidocs/?urls.primaryName=melville#/Library%20Service/getLibraries
    let url = `api/v1/libraries?selector=default,collaboration,rendition_grid&owner=${owner}&limit=10&orderBy=${sortDir === 'desc' ? '-' : ''}${uxSortToMelvilleSort(orderBy)}`;
    let next = () => new LibrariesServiceRequest["a" /* default */](url).pagedFetch();
    do {
        let { next: newNext, parsedBody } = await next();
        yield parsedBody;
        next = newNext;
    } while (next);
}
function uxSortToMelvilleSort(sort = constants["f" /* UXSortBy */].name) {
    if (sort === constants["f" /* UXSortBy */].modifiedDate) {
        return 'modified_date';
    }
    else if (sort === constants["f" /* UXSortBy */].name) {
        return 'name';
    }
    else {
        Settings["b" /* settings */].logger.error(`Sort order "${sort}" is not valid for Melville.`);
        return 'name'; // Fall back to a sane default.
    }
}

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/stores/Library.ts
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2020 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
var Library_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;
};
var Library_metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};







class Library_Library {
    constructor(app) {
        this.app = app;
        // Using observable.shallow because we do not want MobX to watch for changes to these objects.
        // (otherwise, it would complain whenever we serialize the object into a Document.)
        this.libraries = [];
        this.isLoadingFirstPage = false;
        this.isLoadingMorePages = false;
        this.uiConfig = UIConfig["a" /* default */].getConfigByNamespace(this.app, utils_constants["J" /* UiConfigNamespaces */].Libraries);
    }
    async fetchLibraries() {
        try {
            this.isLoadingFirstPage = true;
            this.isLoadingMorePages = false;
            let loadingLibraries = [];
            for await (let { libraries } of getLibraries({
                orderBy: this.uiConfig.sortBy,
                sortDir: this.uiConfig.sortDirection,
            })) {
                if (libraries.length) {
                    loadingLibraries.push(...libraries);
                    // It can take several seconds per request, so after the first page loads,
                    // let the user interact even though we're loading more in the background.
                    this.libraries = loadingLibraries;
                    // Ensure the sort gets updated too, in case they changed the sort.
                    this.sortLibraries();
                    this.isLoadingFirstPage = false;
                    this.isLoadingMorePages = true;
                }
            }
        }
        catch (error) {
            throw SpacesError["c" /* SpacesGenericError */].wrapErrorIfNeeded('LIBRARIES_ERROR', 'Error fetching libraries', error);
        }
        finally {
            this.isLoadingFirstPage = false;
            this.isLoadingMorePages = false;
        }
    }
    sortLibraries() {
        if (this.uiConfig.sortBy === constants["f" /* UXSortBy */].name) {
            this.libraries = Object(utils_sort["b" /* sortByName */])(this.libraries, lib => lib.name, this.uiConfig.sortDirection);
        }
        else {
            this.libraries = Object(utils_sort["a" /* sortByModifiedDate */])(this.libraries, lib => lib.modified_date, this.uiConfig.sortDirection);
        }
    }
}
Library_decorate([
    mobx_module["z" /* observable */].shallow,
    Library_metadata("design:type", Array)
], Library_Library.prototype, "libraries", void 0);
Library_decorate([
    mobx_module["z" /* observable */],
    Library_metadata("design:type", Object)
], Library_Library.prototype, "isLoadingFirstPage", void 0);
Library_decorate([
    mobx_module["z" /* observable */],
    Library_metadata("design:type", Object)
], Library_Library.prototype, "isLoadingMorePages", void 0);

// EXTERNAL MODULE: ./node_modules/react-dom/index.js
var react_dom = __webpack_require__("i8i4");
var react_dom_default = /*#__PURE__*/__webpack_require__.n(react_dom);

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/utils/getRootComponent.tsx
/* istanbul ignore file */
/**
 * Return the top-level react-spectrum Provider's DOM node, to be used
 * as modals' root. For instance, on Assets Web, CDP should pop up across
 * the whole screen, not just inside the <Projects> component.
 */
function getRootComponent() {
    return document.body.querySelector('.react-spectrum-provider');
}

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/Alert/index.js
var Alert = __webpack_require__("VQdv");
var Alert_default = /*#__PURE__*/__webpack_require__.n(Alert);

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/Info/index.js
var Info = __webpack_require__("O/GH");
var Info_default = /*#__PURE__*/__webpack_require__.n(Info);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/styles/PickerWarning.css
var PickerWarning = __webpack_require__("VjNd");
var PickerWarning_default = /*#__PURE__*/__webpack_require__.n(PickerWarning);

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/components/PickerWarning.tsx





/**
 * The warning message shown in the footer of CDP, when moving items to other spaces.
 */
const OrphanedArtifactsWarning = () => {
    return (react_default.a.createElement("div", { className: PickerWarning_default.a.root },
        react_default.a.createElement(Alert_default.a, { size: "S", className: PickerWarning_default.a.icon }),
        react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "cdpFooter.orphanedArtifactsWarning" })));
};
/**
 * The default libraries privacy warning shown in the footer of CDP.
 */
const LibraryPrivacyWarning = () => {
    return (react_default.a.createElement("div", { className: PickerWarning_default.a.root },
        react_default.a.createElement(Info_default.a, { size: "S", className: PickerWarning_default.a.icon }),
        react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "cdpFooter.libraryPrivacyWarning" })));
};

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/utils/launchPicker.tsx
/* istanbul ignore file */








/**
 * Launch CDP. Returns the items that were selected (if any).
 */
function launchPicker({ projectsClient, cdpContext, defaultTab = 'projects', defaultProjectsRoute, disableCloudDocumentsTab = false, getConfirmationDialog, isRouteEnabled, }) {
    const showCoachMarks = SharedStore["d" /* sharedStore */].hideCoachMarks();
    const promise = new Promise((resolve, reject) => {
        const { intl, showPicker } = projectsClient;
        if (!showPicker) {
            return reject(new SpacesError["b" /* SpacesError */]('INVALID_PARAMETER', 'Missing showPicker function'));
        }
        const privateSharedStore = SharedStore["d" /* sharedStore */];
        privateSharedStore.currentPickerContext = cdpContext;
        try {
            const close = showPicker({
                mode: cdpContext.mode,
                featureFlags: {
                    ...utils_constants["d" /* CDO_FEATURE_FLAGS */],
                    cdpTabs: true,
                    disableACPL: Host["a" /* default */].shouldDisableACPL,
                    enableSAM: Host["a" /* default */].supportsNativeSAM,
                    disableOnYourComputerButton: true,
                    disableCloudDocumentsTab,
                },
                hideYourComputerButton: true,
                defaultTab,
                defaultProjectsRoute,
                getConfirmationDialog,
                isRouteEnabled,
            }, projectsClient.cdoHostProductData, {
                getFooterMessage: () => {
                    if (cdpContext.showOrphanedArtifactWarning) {
                        return (react_default.a.createElement(index_es["e" /* IntlProvider */], { locale: intl.locale, messages: intl.messages },
                            react_default.a.createElement(OrphanedArtifactsWarning, null)));
                    }
                    if (cdpContext.showLibraryPrivacyWarning) {
                        return (react_default.a.createElement(index_es["e" /* IntlProvider */], { locale: intl.locale, messages: intl.messages },
                            react_default.a.createElement(LibraryPrivacyWarning, null)));
                    }
                },
                onExecutePickerAction: event => {
                    var _a;
                    const supportedActions = [
                        'add',
                        'move',
                        'moveToProject',
                        'copy',
                        'copyToProject',
                        'cancel',
                        'selectProject',
                    ];
                    let selectedItems = (_a = event.selectedItems) !== null && _a !== void 0 ? _a : [];
                    privateSharedStore.currentPickerContext = undefined;
                    // Ignore any unsupported actions.
                    if (!supportedActions.includes(event.action)) {
                        return;
                    }
                    // If the user canceled CDP, act as though they didn't select anything.
                    if (event.action === 'cancel') {
                        selectedItems = [];
                    }
                    // Check if Your Files tab is selected.
                    // [CCXCD-9086, CCXCD-8823] UAP nav view enum for Your Files tab was updated from
                    // `Cloud Documents` to `cloud` to `Your Files` and selectedTabId was added. This check is
                    // to backward compatible support different UAP versions.
                    const cloudTabSelected = event.selectedTabId === 'cloud' ||
                        ['Cloud Documents', 'cloud', 'Your files'].includes(event.selectedTab);
                    if (
                    // The event for a cloud documents folder is different;
                    // here, we normalize it to our SelectedItem type.
                    cloudTabSelected &&
                        ['copy', 'copyToProject'].includes(event.action)) {
                        selectedItems = [
                            {
                                type: 'Folder',
                                data: {
                                    folder: event.folder,
                                },
                            },
                        ];
                    }
                    resolve({ selectedItems });
                    close();
                },
            }, SharedStore["d" /* sharedStore */].imsData.createCDOCompatibleData(), SharedStore["d" /* sharedStore */].theme, getRootComponent());
        }
        catch (err) {
            privateSharedStore.currentPickerContext = undefined;
            reject(SpacesError["c" /* SpacesGenericError */].wrapErrorIfNeeded('INVALID_PARAMETER', 'Error in showPicker', err));
        }
    });
    // Re-enable the coachmarks at the end.
    return promise.finally(showCoachMarks);
}

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/SAMAssetModel.ts + 1 modules
var SAMAssetModel = __webpack_require__("cU50");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/api/ServiceRequest.ts
var ServiceRequest = __webpack_require__("Cc7P");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/stringifyQueries.ts
var stringifyQueries = __webpack_require__("GfC9");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/api/storage-service/StorageServiceRequest.tsx



/**
 * Generalized CC Storage Service Request Utility Class
 *
 * @export
 * @class StorageServiceRequest
 * @extends {ServiceRequest}
 */
class StorageServiceRequest_StorageServiceRequest extends ServiceRequest["a" /* default */] {
    /**
     * Creates an instance of StorageServiceRequest.
     *
     * @param {string} apiPath
     * @memberof StorageServiceRequest
     */
    constructor(apiPath) {
        super();
        this._limit = 100;
        this._orderBy = 'modified';
        this._sortOrder = 'desc';
        this.headers({
            Authorization: '',
            'X-Api-Key': Settings["b" /* settings */].config.CLIENT_ID,
        });
        this.url(apiPath);
    }
    /**
     * Set url on XHR request.
     *
     * Override ServiceRequest's set url method so it plays well with
     * how the assets site will use the API.
     *
     * @param {string} [apiPath='/']
     * @returns {StorageServiceRequest}
     * @memberof StorageServiceRequest
     */
    url(apiPath = '/') {
        let resolvedPath = apiPath;
        const storageUri = Settings["b" /* settings */].config.STORAGE_SERVICE_ENDPOINT;
        if (resolvedPath.startsWith(storageUri)) {
            this._rawUrl = resolvedPath;
            return this;
        }
        if (!apiPath.startsWith('/')) {
            resolvedPath = `/${apiPath}`;
        }
        this._rawUrl = `${storageUri}${resolvedPath}`;
        return this;
    }
    async fetch() {
        this._url = this._rawUrl;
        return super.fetch();
    }
    paginatedFetch() {
        const query = {
            order: this._sortOrder,
            orderby: this._orderBy,
            limit: this._limit,
            start: this._start,
        };
        this._url = `${this._rawUrl}${Object(stringifyQueries["a" /* default */])(query)}`;
        return this.fetch()
            .then(StorageServiceRequest_StorageServiceRequest.verifyStatus)
            .then(StorageServiceRequest_StorageServiceRequest.parseJSONResponse)
            .then((response) => {
            response.next = this.next(response.parsedBody._page.next ||
                response.response.headers.get('x-children-next-start'));
            return response;
        });
    }
    orderBy(orderBy) {
        this._orderBy = orderBy;
        return this;
    }
    sortOrder(sortOrder) {
        this._sortOrder = sortOrder;
        return this;
    }
    limit(limit) {
        this._limit = limit;
        return this;
    }
    start(start) {
        this._start = start;
        return this;
    }
    next(start) {
        if (start) {
            this.start(start);
            return this.paginatedFetch.bind(this);
        }
        return undefined;
    }
}

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/utils/encodePath.ts
// CDP targets can be returned with unencoded names in the data of the event
// To forward data to APIs correctly, assets named with valid spaces in the
// name need to be encoded to look up id's correctly.
const encodePath = (url) => url.split('/').map(encodeURIComponent).join('/');

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/api/storage-service/getIdFromStoragePath.tsx



/**
 * Given a path to storage like "/cloud-content/SomeFolder", fetch its URN from storage.
 */
async function getIdFromStoragePath(storagePath) {
    const response = await new StorageServiceRequest_StorageServiceRequest(encodePath(storagePath))
        .method('HEAD')
        .fetch()
        .then(StorageServiceRequest_StorageServiceRequest.verifyStatus);
    const id = response.headers.get('x-resource-urn');
    if (!id) {
        throw new SpacesError["b" /* SpacesError */]('INVALID_DATA', `No "x-resource-urn" header found for path ${storagePath}`);
    }
    return id;
}

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/components/ToastManager.tsx + 1 modules
var ToastManager = __webpack_require__("oSyz");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/components/ConfirmationDialog.tsx
var ConfirmationDialog = __webpack_require__("FzwA");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/JobMonitor/index.ts + 3 modules
var JobMonitor = __webpack_require__("zTWf");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/stores/ProjectsCDPContext.ts
var ProjectsCDPContext_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;
};
var ProjectsCDPContext_metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};




/**
 * This context is passed between Projects and CDP, so that Projects can pass
 * data between the outer and inner <Projects> instances without modifying CDP directly.
 */
class ProjectsCDPContext_ProjectsCDPContext {
    constructor({ sourceTeam, sourceProject, sourceItems, mode, onItemsSelected, hostBrowseSession, }) {
        this.showOrphanedArtifactWarning = false;
        this.showLibraryPrivacyWarning = false;
        this.shouldReloadContent = false;
        this.shouldTeamBeDisabledForMove = (team) => {
            var _a;
            if (this.isMoveToSpace) {
                return !this.allowedMoveRepositoryIds.includes(team.repositoryID);
            }
            else if (this.isMoveToTeam) {
                return (this.isSourceTeam(team.id) || team.repositoryID !== ((_a = this.sourceTeam) === null || _a === void 0 ? void 0 : _a.repositoryID));
            }
            return false;
        };
        this.shouldSpaceBeDisabledForMove = repositoryId => {
            if (this.isMoveToSpace) {
                return !this.allowedMoveRepositoryIds.includes(repositoryId);
            }
            else if (this.isMoveToTeam) {
                // All spaces are disabled in `move to team`
                return true;
            }
            return false;
        };
        this.alreadyInitStartingFolder = false;
        this.sourceTeam = sourceTeam;
        this.sourceProject = sourceProject;
        this.mode = mode;
        this.sourceItems = sourceItems !== null && sourceItems !== void 0 ? sourceItems : [];
        this.hostBrowseSession = hostBrowseSession;
        // This callback may be assigned a real value by the BrowseSession,
        // so that we can directly trigger this CDP callback from anywhere inside here.
        this.onItemsSelected = onItemsSelected || (items => { });
        // This is a privacy requirement where we're warning the user that added libraries will
        // invite project members as viewers of the libraries if they have re-share permissions
        // TODO: Hiding the disclaimer until the issue explained in the comment below is fixed
        // https://jira.corp.adobe.com/browse/CCPROJ-2343?focusedCommentId=25164709&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-25164709
        // this.showLibraryPrivacyWarning = this.mode === 'reference';
    }
    get isImport() {
        return this.mode === utils_constants["w" /* PickerMode */].import;
    }
    get isCopy() {
        return this.mode === utils_constants["w" /* PickerMode */].copy || this.mode === utils_constants["w" /* PickerMode */].copyToProject;
    }
    get isExport() {
        return this.mode === utils_constants["w" /* PickerMode */].export;
    }
    get isMove() {
        return [utils_constants["w" /* PickerMode */].moveToProject, utils_constants["w" /* PickerMode */].move].includes(this.mode);
    }
    get isMoveToTeam() {
        return this.isMove && !!this.sourceTeam;
    }
    get isMoveToSpace() {
        // PickerMode.moveToProject is only for legacy workflows (non-ATS) moving only to Spaces,
        // while PickerMode.move is the new move that allows moving from personal storage to spaces.
        return ((this.mode === utils_constants["w" /* PickerMode */].moveToProject || this.mode === utils_constants["w" /* PickerMode */].move) &&
            !this.sourceTeam);
    }
    get isOpen() {
        return this.mode === utils_constants["w" /* PickerMode */].open;
    }
    get isPlace() {
        return this.mode === utils_constants["w" /* PickerMode */].placeLinkOrEmbed;
    }
    get isSave() {
        return this.mode === utils_constants["w" /* PickerMode */].saveAs || this.mode === utils_constants["w" /* PickerMode */].saveAsCopy;
    }
    get isSelectProject() {
        return this.mode === utils_constants["w" /* PickerMode */].selectProject;
    }
    get supportSelection() {
        return this.isImport || this.isPlace;
    }
    get isSingleSelection() {
        return this.isPlace;
    }
    get allowsCreatingItems() {
        return (this.isExport ||
            this.isCopy ||
            this.isMoveToSpace ||
            this.isSave ||
            this.isSelectProject);
    }
    get isCopyMoveSave() {
        return this.isCopy || this.isMove || this.isSave;
    }
    /**
     * Whether or not a mode needs to select a Project/Folder as a destination,
     * as opposed to a user selecting individual items.
     */
    get requiresProjectOrFolderSelection() {
        return (this.isExport ||
            this.isMoveToSpace ||
            this.isCopy ||
            this.isSave ||
            this.isSelectProject);
    }
    hasSourceItemWithId(id) {
        return this.sourceItems.some(item => item.id === id);
    }
    /**
     * Check if the target item is the parent of a source item to `setProjectSelection` which enable/disable
     * the CDP primary footer button. e.g. on move, we want to enable the parent folder for navigation but disable
     * the primary button at this folder level (only).
     */
    isSourceParentFolder(path) {
        if (!path) {
            return false;
        }
        return this.sourceItems.some(item => {
            try {
                if (item.assetRef) {
                    const sourceItemRefObj = JSON.parse(item.assetRef);
                    const sourceItemParentPathArray = sourceItemRefObj.path.split('/');
                    sourceItemParentPathArray.pop();
                    const sourceItemParentPath = sourceItemParentPathArray.join('/');
                    return path === sourceItemParentPath;
                }
                else {
                    return false;
                }
            }
            catch (e) {
                return false;
            }
        });
    }
    isSourceItemCanvas() {
        return this.sourceItems.some(item => item.type === utils_constants["b" /* CANVAS_MIMETYPE */]);
    }
    // Standard disabling logic for files and folders in each CDP modes.
    disabledTargetItems(mode) {
        let config;
        switch (mode) {
            case utils_constants["w" /* PickerMode */].copy:
            case utils_constants["w" /* PickerMode */].copyToProject:
            case utils_constants["w" /* PickerMode */].moveToProject:
                config = {
                    // Disable non-folders; only folders can be selected as a target.
                    disableFolder: false,
                    disableFolderSelection: true,
                    disableFile: true,
                };
                break;
            case utils_constants["w" /* PickerMode */].move:
                if (this.isMoveToTeam) {
                    config = {
                        disableFolder: true,
                        disableFolderSelection: true,
                        disableFile: true,
                    };
                }
                else {
                    config = {
                        // Disable non-folders; only folders can be selected as a target.
                        disableFolder: false,
                        disableFolderSelection: true,
                        disableFile: true,
                    };
                }
                break;
            case utils_constants["w" /* PickerMode */].saveAs:
            case utils_constants["w" /* PickerMode */].saveAsCopy:
                config = {
                    disableFolder: false,
                    disableFolderSelection: true,
                    disableFile: true,
                };
                break;
            case utils_constants["w" /* PickerMode */].place:
            case utils_constants["w" /* PickerMode */].placeLinkOrEmbed:
            case utils_constants["w" /* PickerMode */].import:
                config = {
                    disableFolder: false,
                    disableFolderSelection: true,
                    disableFile: false,
                };
                break;
            case utils_constants["w" /* PickerMode */].selectProject:
                config = {
                    disableFolder: false,
                    disableFolderSelection: true,
                    disableFile: true,
                };
                break;
            case utils_constants["w" /* PickerMode */].reference:
                config = {
                    disableFolder: true,
                    disableFolderSelection: true,
                    disableFile: false,
                };
                break;
            default:
                config = {
                    disableFolder: false,
                    disableFolderSelection: true,
                    disableFile: false,
                };
                break;
        }
        return config;
    }
    isSourceTeam(teamID) {
        var _a;
        return ((_a = this.sourceTeam) === null || _a === void 0 ? void 0 : _a.id) === teamID;
    }
    get allowedMoveRepositoryIds() {
        // Currently, even with the Asset Transfer Service, we only support moving across the same repositoryID.
        // See https://creativecloud.slack.com/archives/CEU9454H2/p1654646291999429
        var _a, _b;
        // There are two types of moves: from one space to another, and from user storage to a Space.
        // All moves _from_ a Space are handled via the Spaces Component.
        // Thus, we can assume that if we don't have a sourceProject, we're starting from within cloud-content.
        // Ideally, we would compare the repositoryID of the source assets directly.
        // However, Assets Web and CDO both use the (deprecated) CCStorage APIs,
        // which don't return a repositoryID. Additionally, we don't have access to sourceItems
        // when UAP is invoked through non-Spaces APIs (such as launchUAPMoveDialog).
        // For both of these reasons, we take a different approach:
        // Per @avinger, all items in cloud-content share the same repositoryID,
        // so we can use that repositoryID here.
        // CCPROJ-8828: Temporary measure to allow Adobe pilot users, who are in a uniquely-configured org,
        // to move items to this destination even if the source and target are in different repositories.
        return [
            utils_constants["a" /* ADOBE_PILOT_REPOSITORY_ID */],
            (_b = (_a = this.sourceProject) === null || _a === void 0 ? void 0 : _a.repositoryId) !== null && _b !== void 0 ? _b : SharedStore["d" /* sharedStore */].userStorageRepositoryId,
        ];
    }
    /**
     * Determine if the target item (folder, file, ...) should be disabled for navigation or selection or both.
     * Folders can be navigated into for some UAP modes, but always not selectable for all UAP modes.
     * e.g. in UAP `import` or `placeLinkOrEmbed`  modes, the folder is enabled for navigation, but not selectable.
     */
    shouldItemBeDisabled(id, isFolder, selectionMode = false, type = 'self') {
        // If is self, disable myself
        if (id && this.hasSourceItemWithId(id)) {
            return true;
        }
        // Special case when we want to enable folder for navigation but disable for selection when in selection mode.
        // e.g. in UAP `placeLinkOrEmbed` mode, folder can be clicked to drill into but during bulk selection,
        // folders are temporarily disabled.
        if (selectionMode && isFolder && this.supportSelection) {
            return true;
        }
        const { disableFolder, disableFile, disableFolderSelection } = this.disabledTargetItems(this.mode);
        if (isFolder) {
            if (type === 'self') {
                return disableFolder;
            }
            else {
                return disableFolderSelection;
            }
        }
        return disableFile;
    }
    get sourceParentFolderId() {
        var _a, _b;
        return (_b = (_a = this.hostBrowseSession) === null || _a === void 0 ? void 0 : _a.currentFolder) === null || _b === void 0 ? void 0 : _b.id;
    }
    /**
     * Load a specific subfolder inside the space folder.
     */
    getStartingFolder() {
        if (this.isMove) {
            // When moving, default to the Projects root.
            return undefined;
        }
        if (this.sourceProject) {
            // Prevent multiple inits, otherwise it'll load that subfolder when
            // user navigate in and out of that space folder...
            if (this.sourceParentFolderId && !this.alreadyInitStartingFolder) {
                this.alreadyInitStartingFolder = true;
                return this.sourceParentFolderId;
            }
        }
        return undefined;
    }
    onFolderCreate(folderId) {
        if (this.sourceProject) {
            if (!this.shouldReloadContent && folderId === this.sourceParentFolderId) {
                this.shouldReloadContent = true;
            }
        }
    }
    async onProjectSelected(project, selectedFolder) {
        var _a, _b, _c, _d;
        // If we're moving something to a different Space, we should show a
        // warning that existing artifacts may be orphaned.
        this.showOrphanedArtifactWarning =
            this.isMove && !!project && project.id !== ((_a = this.sourceProject) === null || _a === void 0 ? void 0 : _a.id);
        if (!project) {
            (_b = this.onItemsSelected) === null || _b === void 0 ? void 0 : _b.call(this, []);
            return;
        }
        const spaceInfo = await project.getSpaceInfo();
        const selectedItem = {
            type: 'Project',
            data: {
                spaceInfo: spaceInfo,
                // IPartialProjectData
                id: (selectedFolder === null || selectedFolder === void 0 ? void 0 : selectedFolder.id) || project.id,
                assetRef: (selectedFolder === null || selectedFolder === void 0 ? void 0 : selectedFolder.assetRef) || ((_c = project.rootFolder) === null || _c === void 0 ? void 0 : _c.assetRef),
                name: (selectedFolder === null || selectedFolder === void 0 ? void 0 : selectedFolder.name) || project.name,
                type: selectedFolder ? 'folder' : 'project',
            },
        };
        (_d = this.onItemsSelected) === null || _d === void 0 ? void 0 : _d.call(this, [selectedItem]);
    }
    async onTargetTeamSelected(team) {
        var _a;
        (_a = this.onItemsSelected) === null || _a === void 0 ? void 0 : _a.call(this, [
            {
                type: 'Team',
                data: team,
            },
        ]);
    }
}
ProjectsCDPContext_decorate([
    mobx_module["z" /* observable */],
    ProjectsCDPContext_metadata("design:type", Object)
], ProjectsCDPContext_ProjectsCDPContext.prototype, "showOrphanedArtifactWarning", void 0);
ProjectsCDPContext_decorate([
    mobx_module["z" /* observable */],
    ProjectsCDPContext_metadata("design:type", Object)
], ProjectsCDPContext_ProjectsCDPContext.prototype, "showLibraryPrivacyWarning", void 0);
ProjectsCDPContext_decorate([
    mobx_module["z" /* observable */],
    ProjectsCDPContext_metadata("design:type", Object)
], ProjectsCDPContext_ProjectsCDPContext.prototype, "shouldReloadContent", void 0);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/libraryUtils.ts
var libraryUtils = __webpack_require__("5L/2");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/api/monitor/sleep.ts
var sleep = __webpack_require__("Up8U");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/stores/ToastKey.ts
let ToastKey_toastKey;
function getToastKey() {
    return ToastKey_toastKey;
}
function setToastKey(key) {
    ToastKey_toastKey = key;
}

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/FileDeletedWarningDialog.tsx
var FileDeletedWarningDialog = __webpack_require__("xiyt");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/actions/internal/performCopyOrMove.tsx























async function performTransfer(projectsClient, args) {
    const { items, mode, sourceTeam, sourceProject, onProjectFolderModified, hostBrowseSession } = args;
    const cdpContext = new ProjectsCDPContext_ProjectsCDPContext({
        mode,
        sourceTeam,
        sourceProject,
        hostBrowseSession,
        sourceItems: items,
    });
    const isMove = cdpContext.isMove;
    const options = {
        cdpContext,
        isMove,
        projectsClient,
    };
    const targetItem = args.targetItem;
    if (!targetItem) {
        SharedStore["d" /* sharedStore */].updateActionStatus({
            actionType: SharedStore["b" /* ActionType */].move,
            items: items,
            state: SharedStore["a" /* ActionState */].failed,
        });
        return false;
    }
    await execCopyOrMove(targetItem, args, options, true);
    return true;
}
/**
 * Implementation of copy and/or move actions, in three steps:
 *
 *   1. Select the target
 *   2. Perform the copy/moves
 *   3. Notifications and Toasts
 */
async function performCopyOrMove(projectsClient, args) {
    var _a;
    const { items, mode, sourceTeam, sourceProject, onProjectFolderModified, hostBrowseSession } = args;
    // *************************************************************************
    // Select the target.
    const cdpContext = new ProjectsCDPContext_ProjectsCDPContext({
        mode,
        sourceTeam,
        sourceProject,
        hostBrowseSession,
        sourceItems: items,
    });
    const isMove = cdpContext.isMove;
    let getConfirmationDialog;
    let isRouteEnabled;
    if (cdpContext.isMoveToTeam) {
        getConfirmationDialog = (route, selectedItems) => {
            let name = selectedItems[0].data.name;
            return {
                id: 'moveToTeamConfirmationDialog',
                variant: 'confirmation',
                title: projectsClient.intl.formatMessage({ id: 'moveToTeam.confirm.title' }, { name }),
                body: projectsClient.intl.formatHTMLMessage({
                    id: 'moveToTeam.confirm.message',
                }),
            };
        };
        isRouteEnabled = (route) => {
            var _a;
            const [EMPTY, root, id] = route.split('/');
            // See isRouteEnabled handling in UAP launchUAPModeDialog.tsx for reference.
            // isRouteEnabled is used for both enabling tabs as well as the footer CTA. For now, UAP tabs are sent in
            // by their id instead of a real route so we can use that to distinguish whether the route is for a
            // tab or the navigated route. Therefore, isRouteEnabled has to be true for the tabs (SideNavViews.projects).
            // Tab id for spaces component is /projects
            // Route is /projects/spaceId for space 1up and /teams/teamId for team 1up
            if (root === 'projects' && !id) {
                return true;
            }
            // Enable `clickable` teams that are not source team. Note that we have other logics in the view that
            // disable teams and spaces, for example from different orgs, so these are not clickable.
            if (root === 'teams' && id !== ((_a = cdpContext.sourceTeam) === null || _a === void 0 ? void 0 : _a.id)) {
                return true;
            }
            return false;
        };
    }
    const isCopyCanvasSupported = items.some(item => item.type === utils_constants["b" /* CANVAS_MIMETYPE */] && Host["a" /* default */].InAssetsWeb);
    // Disable CloudDocs tab in UAP if any of the selected items in not a cloud doc.
    const disableCloudDocumentsTab = items.some(item => !libraryUtils["a" /* CLOUD_DOCUMENTS */].includes(item.type) && !isCopyCanvasSupported);
    const targetItem = (_a = args.targetItem) !== null && _a !== void 0 ? _a : (await launchPicker({
        projectsClient,
        cdpContext,
        disableCloudDocumentsTab,
        defaultProjectsRoute: hostBrowseSession === null || hostBrowseSession === void 0 ? void 0 : hostBrowseSession.route,
        getConfirmationDialog,
        isRouteEnabled,
    })).selectedItems[0];
    if (cdpContext.shouldReloadContent) {
        onProjectFolderModified === null || onProjectFolderModified === void 0 ? void 0 : onProjectFolderModified();
    }
    // Copy / Cancel button events
    ProjectAnalytics["g" /* default */].fireEvent({
        ...ProjectAnalytics["g" /* default */].scaffoldEvent(ProjectAnalytics["c" /* Subcategory */].CopyToModal, targetItem ? (isMove ? ProjectAnalytics["d" /* Subtype */].move : ProjectAnalytics["d" /* Subtype */].copy) : ProjectAnalytics["d" /* Subtype */].cancel, ProjectAnalytics["e" /* Type */].click, ProjectAnalytics["f" /* Workflow */].CopyFiles),
    });
    // If the user canceled CDP, nothing left to do.
    if (!targetItem) {
        SharedStore["d" /* sharedStore */].updateActionStatus({
            actionType: isMove ? SharedStore["b" /* ActionType */].move : SharedStore["b" /* ActionType */].copy,
            items: items,
            state: SharedStore["a" /* ActionState */].canceled,
        });
        return false;
    }
    const options = {
        cdpContext,
        isMove,
        projectsClient,
    };
    // Show confirmation dialog if move items from space to a different space.
    if (mode === utils_constants["w" /* PickerMode */].moveToProject && sourceProject && targetItem.type === 'Project') {
        const targetProject = JSON.parse(targetItem.data.spaceInfo);
        if (sourceProject.id === (targetProject === null || targetProject === void 0 ? void 0 : targetProject.spaceId)) {
            await execCopyOrMove(targetItem, args, options);
        }
        else {
            /**
             * For XD Win, focus gets lost somewhere if ConfirmationDialog is immediately shown when UAP closes.
             * A delay of around 30ms before showing ConfirmationDialog works, but using 50ms for safety here.
             * Issue not seen on PS Win though, so likely related to native UXP dialog (used by UAP in showPicker) impl on UWP.
             */
            const DIALOG_SHOW_DELAY = UXPUtils["a" /* default */].usingUXP() ? 50 : 0;
            await Object(sleep["a" /* default */])(DIALOG_SHOW_DELAY);
            projectsClient.showModal(react_default.a.createElement(ConfirmationDialog["a" /* default */], { onConfirm: async () => await execCopyOrMove(targetItem, args, options), actionType: "move", projectName: targetProject.spaceName }));
        }
    }
    else {
        await execCopyOrMove(targetItem, args, options);
    }
    return true;
}
async function execCopyOrMove(targetItem, args, options, isATSMove = false) {
    const { items, mode, onProjectUpdated, onViewProject, sourceProject, hostBrowseSession } = args;
    const { cdpContext, isMove, projectsClient } = options;
    const { intl, jobMonitor } = projectsClient;
    const actionType = isMove ? SharedStore["b" /* ActionType */].move : SharedStore["b" /* ActionType */].copy;
    const failedItems = [];
    let start;
    let showErrorDialog = false;
    const promise = new Promise(async (resolve, reject) => {
        var _a, _b, _c, _d, _e;
        if (targetItem.type === 'Team') {
            start = performance.now();
            const team = targetItem.data;
            try {
                if (!SharedStore["d" /* sharedStore */].spaceContext) {
                    failedItems.push(...items);
                }
                else {
                    // Call SAM js `moveSpaces` API to move spaces.
                    const spaces = items.map(({ id }) => { var _a; return (_a = SharedStore["d" /* sharedStore */].spaceContext) === null || _a === void 0 ? void 0 : _a.spacePool.getLocalItemById(id); });
                    const sourceTeamId = spaces[0].teamID;
                    const responseItems = await ((_a = SharedStore["d" /* sharedStore */].spaceContext) === null || _a === void 0 ? void 0 : _a.moveSpaces(spaces, team));
                    spaces.forEach(({ id, name }) => {
                        // If this was a single operation request, then sometimes the service will fail the entire
                        // request (e.g. 503 Service Unavailable, 413 Payload Too Large) instead of returning the array
                        // for the item. In `runOperation`, SAM js will try to normalize the reply to avoid bugs in the
                        // callers by returning the error and the first item only.
                        const failedResults = responseItems.failedResults;
                        const response = (failedResults === null || failedResults === void 0 ? void 0 : failedResults.length) === 1
                            ? failedResults[0]
                            : failedResults.find(responseItem => { var _a; return ((_a = responseItem.space) === null || _a === void 0 ? void 0 : _a.id) === id; });
                        if (response === null || response === void 0 ? void 0 : response.error) {
                            const samErrorCode = Object(SpacesError["j" /* normalizeSamError */])(response === null || response === void 0 ? void 0 : response.error);
                            const statusCode = samErrorCode
                                ? SpacesError["a" /* SAMErrorCodeToHTTPNumberCode */].get(samErrorCode)
                                : 0;
                            if (statusCode === 403 || statusCode === 404) {
                                throw new SpacesError["b" /* SpacesError */]('NO_LINK_PATH_ERROR', `Could not fetch space folder/subfolder path for ${id}`);
                            }
                            failedItems.push({
                                statusCode,
                                id: id,
                                name: name,
                                type: 'project',
                            });
                        }
                    });
                    if (!failedItems.length) {
                        hostBrowseSession.navigate(new Route["f" /* TeamRoute */](sourceTeamId));
                    }
                }
            }
            catch (error) {
                SentryUtils["a" /* sentryUtils */].captureException(error, {
                    tags: {
                        'action.error': 'team-copy-move',
                    },
                });
                reject(items);
                if (((_b = Object(SpacesError["i" /* maybeSpacesError */])(error)) === null || _b === void 0 ? void 0 : _b.code) === 'NO_LINK_PATH_ERROR') {
                    showErrorDialog = true;
                }
                SharedStore["d" /* sharedStore */].updateActionStatus({
                    actionType,
                    items: items,
                    state: SharedStore["a" /* ActionState */].failed,
                });
            }
        }
        else {
            let targetAssetId;
            let targetAsset;
            try {
                // Convert the target into an AdobeAsset.
                switch (targetItem.type) {
                    case 'Project':
                        let selectedProjectData = targetItem.data;
                        // If copying to project root, use the path of the Project's Working Files folder.
                        if ((selectedProjectData === null || selectedProjectData === void 0 ? void 0 : selectedProjectData.type) === 'project') {
                            const space = await ((_c = SharedStore["d" /* sharedStore */].spaceContext) === null || _c === void 0 ? void 0 : _c.lookupSpaceById(selectedProjectData.id));
                            const workingFilesSpaceChild = await (space === null || space === void 0 ? void 0 : space.getChild('working_files'));
                            if (workingFilesSpaceChild) {
                                targetAssetId = workingFilesSpaceChild.id;
                            }
                        }
                        else if ((selectedProjectData === null || selectedProjectData === void 0 ? void 0 : selectedProjectData.type) === 'folder') {
                            targetAssetId = selectedProjectData.id;
                        }
                        break;
                    case 'Folder': {
                        // Copying to a Cloud Documents folder? Convert the (legacy)
                        // storage path into an ACP path. (The ACP ID isn't readily
                        // accessible from CDP or CDO currently, especially for root items.)
                        targetAssetId = await getIdFromStoragePath(targetItem.data.folder);
                        if (!targetAssetId) {
                            throw new SpacesError["b" /* SpacesError */]('NO_LINK_PATH_ERROR', `Could not fetch space folder/subfolder path for ${targetAssetId}`);
                        }
                        break;
                    }
                    default:
                        // Only those are supported. Other items, we'll just abort.
                        throw new SpacesError["b" /* SpacesError */]('INVALID_PARAMETER', `Copy/Move does not support ${targetItem.type}`);
                }
                targetAsset = await SharedStore["d" /* sharedStore */].getAssetWithID(targetAssetId);
            }
            catch (error) {
                SentryUtils["a" /* sentryUtils */].captureException(error, {
                    tags: {
                        'action.error': 'asset-copy-move',
                    },
                });
                reject(items);
                if (((_d = Object(SpacesError["i" /* maybeSpacesError */])(error)) === null || _d === void 0 ? void 0 : _d.code) === 'NO_LINK_PATH_ERROR') {
                    showErrorDialog = true;
                }
                SharedStore["d" /* sharedStore */].updateActionStatus({
                    actionType,
                    items: items,
                    state: SharedStore["a" /* ActionState */].failed,
                });
                return;
            }
            // *************************************************************************
            // Perform the copy/moves.
            start = performance.now();
            await Promise.all(items.map(async (item) => {
                var _a, _b;
                try {
                    let asset;
                    if (item instanceof SAMAssetModel["a" /* default */]) {
                        asset = item;
                    }
                    else {
                        // Convert items from CDO/UAP to SAMAssetModel
                        asset = new SAMAssetModel["a" /* default */]({ spacesSection: '' }, await SharedStore["d" /* sharedStore */].getAssetWithID(item.id));
                    }
                    if (isATSMove) {
                        await asset.transfer(targetAsset);
                        Object(afterOp["a" /* default */])(item.assetRef, Host["a" /* default */].onAfterMove);
                    }
                    else {
                        if (isMove) {
                            await asset.move(targetAsset);
                            // Notify the host so it can react after the operation completes successfully.
                            Object(afterOp["a" /* default */])(item.assetRef, Host["a" /* default */].onAfterMove);
                        }
                        else if ([utils_constants["w" /* PickerMode */].copy, utils_constants["w" /* PickerMode */].copyToProject].includes(mode)) {
                            return await asset.copy(targetAsset);
                        }
                    }
                }
                catch (error) {
                    SentryUtils["a" /* sentryUtils */].captureException(error, {
                        tags: {
                            'action.error': 'perform-copy-move',
                        },
                    });
                    if (((_a = Object(SpacesError["i" /* maybeSpacesError */])(error)) === null || _a === void 0 ? void 0 : _a.code) === 'NO_LINK_PATH_ERROR') {
                        showErrorDialog = true;
                    }
                    const samErrorCode = Object(SpacesError["j" /* normalizeSamError */])(error);
                    const statusCode = samErrorCode
                        ? SpacesError["a" /* SAMErrorCodeToHTTPNumberCode */].get(samErrorCode)
                        : 0;
                    if (statusCode === 403 || statusCode === 404) {
                        throw new SpacesError["b" /* SpacesError */]('NO_LINK_PATH_ERROR', `Could not fetch space folder/subfolder path for ${item.id}`);
                    }
                    failedItems.push({
                        ...item,
                        statusCode: (_b = Object(SpacesError["h" /* maybeSamHttpError */])(error)) === null || _b === void 0 ? void 0 : _b.response.status,
                    });
                }
            }));
        }
        const elapsedTime = performance.now() - start;
        // *************************************************************************
        // Notifications and Toasts!
        const successCount = items.length - failedItems.length;
        const everythingSucceeded = failedItems.length === 0;
        const somethingSucceeded = successCount > 0;
        const succeededItems = items.filter(item => !failedItems.map(fItem => fItem.id).includes(item.id));
        // Notify the caller that something has changed.
        if (somethingSucceeded) {
            // If we moved something _out of_ the source project, the source has changed. (Not true for copy.)
            if (isMove && sourceProject) {
                onProjectUpdated === null || onProjectUpdated === void 0 ? void 0 : onProjectUpdated({
                    id: sourceProject.id,
                    name: sourceProject.name,
                    organizationId: sourceProject.organizationId,
                });
            }
            // If we've moved something _into_ a project, that project has changed.
            if (targetItem.type === 'Project') {
                const { data } = targetItem;
                onProjectUpdated === null || onProjectUpdated === void 0 ? void 0 : onProjectUpdated({
                    id: data.id,
                    name: data.name,
                }, null, cdpContext.isSourceItemCanvas());
            }
        }
        if (everythingSucceeded) {
            ProjectAnalytics["g" /* default */].fireEvent(ProjectAnalytics["g" /* default */].scaffoldEvent(ProjectAnalytics["c" /* Subcategory */].SuccessToast, ProjectAnalytics["d" /* Subtype */].successToast, ProjectAnalytics["e" /* Type */].render, ProjectAnalytics["f" /* Workflow */].CopyFiles));
            resolve(items);
        }
        else {
            reject(failedItems);
        }
        // Dunamis Analytics
        let evtType = ProjectAnalytics["e" /* Type */].success, evtError;
        if (failedItems.length > 0) {
            evtType = ProjectAnalytics["e" /* Type */].error;
            evtError = { event: {} };
            Object(ProjectAnalytics["h" /* fillError */])(evtError, { statusCode: failedItems[0].statusCode });
        }
        const firstResource = failedItems[0] || succeededItems[0];
        const teamId = targetItem.data.id;
        const asset = JSON.parse(targetItem.data.assetRef);
        const scaffoldEvent = ProjectAnalytics["g" /* default */].scaffoldEvent(ProjectAnalytics["c" /* Subcategory */].Resource, isMove ? ProjectAnalytics["d" /* Subtype */].move : ProjectAnalytics["d" /* Subtype */].add, evtType, ProjectAnalytics["f" /* Workflow */].Spaces);
        // Dunamis Analytics
        ProjectAnalytics["g" /* default */].fireEvent({
            event: {
                ...scaffoldEvent.event,
                ...evtError === null || evtError === void 0 ? void 0 : evtError.event,
                value: elapsedTime,
                org_guid: asset.repository_id,
                context_guid: asset.cloud_id,
            },
            content: {
                // use first ID/name
                id: firstResource.id,
                name: firstResource.name,
                author: (_e = User["a" /* default */].getTeamFromId(teamId)) === null || _e === void 0 ? void 0 : _e.collaboratorRole,
            },
            ui: {
                view_type: ProjectAnalytics["f" /* Workflow */].CloudDocuments,
            },
            custom: {
                team_id: teamId,
            },
        });
        SharedStore["d" /* sharedStore */].updateActionStatus({
            actionType,
            items: items,
            state: everythingSucceeded
                ? SharedStore["a" /* ActionState */].succeeded
                : somethingSucceeded
                    ? SharedStore["a" /* ActionState */].partiallySucceeded
                    : SharedStore["a" /* ActionState */].failed,
        });
    }).catch(error => {
        if (showErrorDialog) {
            projectsClient.showModal(react_default.a.createElement(FileDeletedWarningDialog["a" /* default */], { app: hostBrowseSession, op: isMove ? 'move' : 'copy' }));
        }
        throw error;
    });
    let showExtendedNotification = isATSMove;
    const job = new JobMonitor["a" /* Job */](promise, items);
    const queue = new JobMonitor["c" /* JobQueue */]({
        completed: (completedItems) => {
            var _a;
            showExtendedNotification = false;
            const toastData = {
                onClose: () => {
                    ProjectAnalytics["g" /* default */].fireEvent(ProjectAnalytics["g" /* default */].scaffoldEvent(ProjectAnalytics["c" /* Subcategory */].SuccessToast, ProjectAnalytics["d" /* Subtype */].dismiss, ProjectAnalytics["e" /* Type */].click, ProjectAnalytics["f" /* Workflow */].CopyFiles));
                },
            };
            let intlMessage = intl.formatMessage({ id: isMove ? 'move.success' : 'copy.success' }, { count: completedItems.length });
            // We want to show the view option if the source directory is different from the target directory.  However if
            // the target is the root of the project targetItem is the project not the rootfolder, so we also need to check
            // if the source parent folder is the rootfolder of the project and if so we don't show the view option if the
            // target id is the same as the project id.
            if (targetItem.type === 'Project' &&
                onViewProject &&
                cdpContext.sourceParentFolderId !== targetItem.data.id &&
                (((_a = sourceProject === null || sourceProject === void 0 ? void 0 : sourceProject.rootFolder) === null || _a === void 0 ? void 0 : _a.id) !== cdpContext.sourceParentFolderId ||
                    (sourceProject === null || sourceProject === void 0 ? void 0 : sourceProject.id) !== targetItem.data.id)) {
                // Show "View" to show the destination, if we copied stuff there.
                toastData.actionLabel = intl.formatMessage({ id: 'button.viewProject' });
                toastData.onAction = () => onViewProject(targetItem.data);
            }
            if (targetItem.type === 'Team') {
                const team = targetItem.data;
                toastData.actionLabel = intl.formatMessage({ id: 'button.viewTarget' });
                toastData.onAction = () => {
                    // For single move, navigate to the space 1up view.
                    // For bulk move, navigate to destination team.
                    if (items.length === 1) {
                        return hostBrowseSession.navigateAndNotify(new Route["e" /* SpaceRoute */](items[0].id, { teamId: team.id }));
                    }
                    else {
                        return hostBrowseSession.navigateAndNotify(new Route["f" /* TeamRoute */](team.id));
                    }
                };
                if (isMove) {
                    intlMessage = intl.formatMessage({ id: 'moveToTeam.success' }, { count: completedItems.length, name: team.name });
                }
            }
            return {
                message: intlMessage,
                options: {
                    ...toastData,
                    closable: true,
                    variant: 'success',
                    // RS Toast remains open if focussed due to click on Action, close on action
                    closeOnAction: true,
                },
            };
        },
        error: (allItems, failedItems) => {
            showExtendedNotification = false;
            const failedItemsCount = failedItems.length;
            if (failedItemsCount === items.length) {
                if (failedItemsCount === 1) {
                    const statusCode = failedItems[0].statusCode || -1;
                    // Retry won't help for most obvious error cases.
                    const retryOptions = statusCode === -1
                        ? {
                            actionLabel: intl.formatMessage({ id: 'button.retry' }),
                            onAction: () => {
                                isATSMove
                                    ? performTransfer(projectsClient, {
                                        ...args,
                                        targetItem,
                                    })
                                    : performCopyOrMove(projectsClient, {
                                        ...args,
                                        targetItem,
                                    });
                            },
                        }
                        : {};
                    return {
                        message: intl.formatMessage({
                            id: errorNumberCodeToErrorId(statusCode, isMove ? 'move' : 'copy'),
                        }),
                        options: {
                            closable: true,
                            variant: 'error',
                        },
                        ...retryOptions,
                    };
                }
                return {
                    message: intl.formatMessage({ id: isMove ? 'move.failure' : 'copy.failure' }, { count: failedItemsCount }),
                    options: {
                        closable: true,
                        variant: 'error',
                        actionLabel: intl.formatMessage({ id: 'button.retry' }),
                        onAction: () => {
                            isATSMove
                                ? performTransfer(projectsClient, {
                                    ...args,
                                    targetItem,
                                })
                                : performCopyOrMove(projectsClient, {
                                    ...args,
                                    targetItem,
                                });
                        },
                    },
                };
            }
            else {
                // Partial failure
                const groupedFilenames = groupFilenamesByErrorCode(isMove, failedItems);
                // Some succeeded and some failed. Show a toast, and if the user chooses to view the details,
                // we'll show a dialog listing the failed items, and the user can retry those items.
                const showRetryModal = () => {
                    projectsClient.showModal(react_default.a.createElement(ListDialog["a" /* default */], { title: intl.formatMessage({
                            id: isMove ? 'dialog.cantMoveAllItems' : 'dialog.cantCopyAllItems',
                        }), groups: Object.entries(groupedFilenames).map(([headerId, filenames]) => ({
                            header: intl.formatMessage({ id: headerId }),
                            list: filenames,
                        })), cancelLabel: intl.formatMessage({ id: 'button.close' }), confirmLabel: intl.formatMessage({ id: 'button.retry' }), onConfirm: () => {
                            // Try again with just the failed items.
                            performCopyOrMove(projectsClient, {
                                ...args,
                                targetItem,
                                items: failedItems,
                            });
                        } }));
                };
                return {
                    message: intl.formatMessage({
                        id: isMove ? 'move.failure.partial' : 'copy.failure.partial',
                    }),
                    options: {
                        closable: true,
                        variant: 'error',
                        actionLabel: intl.formatMessage({ id: 'button.view' }),
                        onAction: () => {
                            showRetryModal();
                        },
                    },
                };
            }
        },
        pending: (pendingItems) => {
            return {
                message: (react_default.a.createElement(ToastManager["a" /* LoadingMessage */], null, intl.formatMessage({ id: isMove ? 'move.start' : 'copy.start' }, { count: pendingItems.length }))),
                options: {
                    closable: true,
                    timeout: 0,
                    variant: undefined,
                },
            };
        },
    });
    queue.add(job);
    jobMonitor.add(actionType, queue);
    if (isATSMove) {
        setTimeout(async () => {
            if (showExtendedNotification) {
                const currentToastKey = getToastKey();
                const newToastKey = await projectsClient.toastManager.replaceToast(currentToastKey, intl.formatMessage({ id: 'ats.move.extendedNotification' }), {
                    closable: true,
                    variant: 'info',
                });
                setToastKey(newToastKey);
            }
        }, 15000); // extended notification is shown if atsMove takes longer than 15 secs to complete.
    }
    return promise;
}
/**
 * Get the intl message id that represents the error number code.
 */
function errorNumberCodeToErrorId(code, action) {
    let errorId;
    switch (code) {
        case 401:
            errorId = `error.${action}.signedOut`;
            break;
        case 403:
            errorId = `error.${action}.permissionRevoked`;
            break;
        case 404:
            errorId = `error.${action}.deleted`;
            break;
        case 409:
            errorId = `error.${action}.duplicate`;
            break;
        default:
            errorId = `error.${action}.generic`;
            break;
    }
    return errorId;
}
/**
 * Given a list of failed items, group them into arrays, keyed by the message
 * heading ID that they'll be displayed under inside the error dialog.
 */
function groupFilenamesByErrorCode(isMove, failedItems) {
    return failedItems.reduce((groups, failedItem) => {
        let errorHeader;
        switch (failedItem.statusCode) {
            case 401:
                errorHeader = isMove
                    ? 'dialog.cantMoveBecauseYouWereSignedOut'
                    : 'dialog.cantCopyBecauseYouWereSignedOut';
                break;
            case 403:
                errorHeader = isMove
                    ? 'dialog.cantMoveBecauseYouWereRemoved'
                    : 'dialog.cantCopyBecauseYouWereRemoved';
                break;
            case 404:
                errorHeader = isMove
                    ? 'dialog.cantMoveBecauseItemWasDeleted'
                    : 'dialog.cantCopyBecauseItemWasDeleted';
                break;
            case 409:
                errorHeader = isMove
                    ? 'dialog.cantMoveBecauseItemExists'
                    : 'dialog.cantCopyBecauseItemExists';
                break;
            default:
                errorHeader = isMove
                    ? 'dialog.cantMoveBecauseSomethingWentWrong'
                    : 'dialog.cantCopyBecauseSomethingWentWrong';
                break;
        }
        if (!groups[errorHeader]) {
            groups[errorHeader] = [];
        }
        groups[errorHeader].push(failedItem.name);
        return groups;
    }, {});
}

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/api/leia-service/LeiaRequest.ts


/**
 * Leia is the Report Abuse Web Service for assets managed in ACP repositories
 * and accessed via Storage Repository API (Repo-API)
 * https://wiki.corp.adobe.com/display/TnS/Leia+Client+Onboarding#LeiaClientOnboarding-ServiceInterface
 */
class LeiaRequest_LeiaRequest extends ServiceRequest["a" /* default */] {
    constructor(apiPath) {
        super();
        // Leia service does not require Authorization header.
        this.options = {
            headers: {
                'X-Api-Key': Settings["b" /* settings */].config.CLIENT_ID,
            },
            useAuthentication: false,
        };
        this.url(apiPath);
    }
    url(apiPath = '/') {
        let resolvedPath = apiPath;
        const LEIA_SERVICE_ENDPOINT = Settings["b" /* settings */].config.LEIA_SERVICE_ENDPOINT;
        if (resolvedPath.startsWith(LEIA_SERVICE_ENDPOINT)) {
            this._url = resolvedPath;
            return this;
        }
        if (!apiPath.startsWith('/')) {
            resolvedPath = `/${apiPath}`;
        }
        this._url = `${LEIA_SERVICE_ENDPOINT}${resolvedPath}`;
        return this;
    }
}

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/api/leia-service/reportAbuse.ts

/* harmony default export */ var reportAbuse = ((data) => {
    return new LeiaRequest_LeiaRequest(`/v1/acp_report_abuse`)
        .method('POST')
        .content('application/json')
        .body(JSON.stringify(data))
        .fetch()
        .then(LeiaRequest_LeiaRequest.verifyStatus)
        .then(LeiaRequest_LeiaRequest.parseJSONResponse);
});

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/FieldLabel/index.js
var FieldLabel = __webpack_require__("lArf");
var FieldLabel_default = /*#__PURE__*/__webpack_require__.n(FieldLabel);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Radio/index.js
var Radio = __webpack_require__("1k/2");
var Radio_default = /*#__PURE__*/__webpack_require__.n(Radio);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/RadioGroup/index.js
var RadioGroup = __webpack_require__("Bj/G");
var RadioGroup_default = /*#__PURE__*/__webpack_require__.n(RadioGroup);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Provider/index.js
var Provider = __webpack_require__("bUsb");
var Provider_default = /*#__PURE__*/__webpack_require__.n(Provider);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Textarea/index.js
var Textarea = __webpack_require__("nTRy");
var Textarea_default = /*#__PURE__*/__webpack_require__.n(Textarea);

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/components/Textarea.tsx





// Wrapper for fixing CCPROJ-6538 (component doesn't update its theme when host theme changes)
// This should no longer be necessary once the underlying bug is fixed.
function Textfield(props) {
    let { children, ...other } = props;
    return (react_default.a.createElement(index_module["a" /* Observer */], null, () => (react_default.a.createElement(Provider_default.a, { theme: SharedStore["d" /* sharedStore */].theme },
        react_default.a.createElement(Textarea_default.a, Object.assign({}, other), children)))));
}

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/components/Textfield.tsx
var components_Textfield = __webpack_require__("fGqG");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/utils/validateEmail.tsx
/**
 * In the interest of not rejecting valid emails, and since this is
 * mainly just used as a sanity-check for anonymous Report Abuse,
 * this just does a very simple check.
 */
function validateEmail(email) {
    return /^.+@.+\..+$/.test(email);
}

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/styles/ReportAbuseDialog.css
var styles_ReportAbuseDialog = __webpack_require__("a1mZ");
var ReportAbuseDialog_default = /*#__PURE__*/__webpack_require__.n(styles_ReportAbuseDialog);

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/components/ReportAbuseDialog.tsx
var ReportAbuseDialog_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;
};
var ReportAbuseDialog_metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var ReportAbuseDialog_a;
















let ReportAbuseDialog_ReportAbuseDialog = class ReportAbuseDialog extends react["Component"] {
    constructor(props) {
        super(props);
        this.name = '';
        this.isNameChange = false;
        this.isEmailChange = false;
        this.emailId = '';
        this.descTxt = '';
        this.reason = '';
        this.attemptedSubmit = false;
        this.handleEmailChange = (value) => {
            this.isEmailChange = true;
            this.emailId = value.substring(0, utils_constants["z" /* REPORT_ABUSE_REPORTER_EMAIL_MAX_LENGTH */]);
        };
        this.handleNameChange = value => {
            this.isNameChange = true;
            this.name = value.substring(0, utils_constants["A" /* REPORT_ABUSE_REPORTER_NAME_MAX_LENGTH */]);
        };
        this.handleConfirm = () => {
            this.attemptedSubmit = true;
            if (!this.reason || !this.name || !validateEmail(this.emailId)) {
                return false; // Keep the dialog open.
            }
            this.props.onConfirm({
                reportType: this.reason,
                reporterName: this.name.trim(),
                reporterEmail: this.emailId.trim(),
                reportDesc: this.descTxt || '(none)',
            });
        };
        // Event handler for keyboard inputs not being handled correctly in UXP - this is a work around.
        // https://git.corp.adobe.com/React/react-spectrum-v2/issues/801
        this.handleRadioGroupKeyDown = (event) => {
            const spaceBarKey = ' ';
            if (event.key === spaceBarKey) {
                const value = document.activeElement.value;
                this.reason = value;
            }
        };
        this.name = SharedStore["d" /* sharedStore */].imsData.displayName || '';
        this.emailId = SharedStore["d" /* sharedStore */].imsData.userEmail || '';
    }
    async componentDidMount() {
        try {
            this.token = SharedStore["d" /* sharedStore */].imsData.token || (await SharedStore["d" /* sharedStore */].imsData.fetchToken());
        }
        catch (error) {
            // Do nothing. The asset can be a public asset.
        }
    }
    render() {
        const { intl } = this.props;
        const isLoggedIn = !!this.token;
        const isNameFieldDisabled = isLoggedIn && !!this.name && !this.isNameChange;
        // Some test stage account profiles don't have user email.
        const isEmailFieldDisabled = isLoggedIn && !!this.emailId && !this.isEmailChange;
        const title = intl.formatMessage({
            id: this.props.dialogTitle,
        });
        return (react_default.a.createElement(Dialog["a" /* default */], { className: ReportAbuseDialog_default.a.dialog, "data-test-id": "ReportAbuseDialog", onClose: this.props.onClose, onConfirm: this.handleConfirm, onCancel: this.props.onCancel, confirmLabel: intl.formatMessage({
                id: this.props.dialogTitle,
            }), cancelLabel: intl.formatMessage({
                id: 'button.cancel',
            }), title: title, "aria-label": title },
            react_default.a.createElement("div", { className: ReportAbuseDialog_default.a.formContainer },
                this.props.assetTitle && (react_default.a.createElement("div", { className: ReportAbuseDialog_default.a.assetInfo },
                    react_default.a.createElement("div", { className: ReportAbuseDialog_default.a.rendition }, this.props.assetRendition),
                    react_default.a.createElement("div", { className: ReportAbuseDialog_default.a.title }, this.props.assetTitle))),
                react_default.a.createElement("p", { className: ReportAbuseDialog_default.a.titleTextContent },
                    react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: this.props.description })),
                this.props.showPersonalInfo && (react_default.a.createElement("div", { "data-test-id": "inputFields", className: ReportAbuseDialog_default.a.emailNameInputFields },
                    react_default.a.createElement("div", { className: ReportAbuseDialog_default.a.emailInputField },
                        react_default.a.createElement(FieldLabel_default.a, { label: intl.formatMessage({
                                id: 'action.reportAbuse.emailInput',
                            }), necessity: "required" },
                            react_default.a.createElement(components_Textfield["a" /* default */], { className: 'globalSpacesTextfield', disabled: isEmailFieldDisabled, required: this.attemptedSubmit && !isLoggedIn, onChange: value => this.handleEmailChange(value), validationState: this.attemptedSubmit && !validateEmail(this.emailId)
                                    ? 'invalid'
                                    : undefined, value: this.emailId }))),
                    react_default.a.createElement("div", { className: ReportAbuseDialog_default.a.nameInputField },
                        react_default.a.createElement(FieldLabel_default.a, { label: intl.formatMessage({
                                id: 'action.reportAbuse.nameInput',
                            }), necessity: "required" },
                            react_default.a.createElement(components_Textfield["a" /* default */], { className: 'globalSpacesTextfield', disabled: isNameFieldDisabled, required: this.attemptedSubmit && !isLoggedIn, onChange: value => this.handleNameChange(value), validationState: this.attemptedSubmit && !this.name
                                    ? 'invalid'
                                    : undefined, value: this.name }))))),
                react_default.a.createElement("div", { "data-test-id": "ReportAbuseDialog_ReasonGroup", className: ReportAbuseDialog_default.a.radioGroupContainer },
                    react_default.a.createElement(FieldLabel_default.a, { label: intl.formatMessage({
                            id: 'action.reportAbuse.radioButtonText',
                        }), labelFor: "concern-reason-radio-group", necessity: "required" }),
                    this.attemptedSubmit && !this.reason && (react_default.a.createElement(Tooltip_default.a, { placement: "top", variant: "error", open: true },
                        react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "action.reportAbuse.required" }))),
                    react_default.a.createElement("div", { className: classnames_default()({
                            requiredField: this.attemptedSubmit,
                        }) },
                        react_default.a.createElement(RadioGroup_default.a, { onKeyDown: this.handleRadioGroupKeyDown, id: "concern-reason-radio-group", selectedValue: this.reason, onChange: value => (this.reason = value), className: ReportAbuseDialog_default.a.radioGroup, name: "concern-reason" }, this.props.radioButtonsList.map(item => {
                            return (react_default.a.createElement(Radio_default.a, { value: item.id, className: ReportAbuseDialog_default.a.radio, key: item.id },
                                react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: `action.reportAbuse.${item.id}` })));
                        })))),
                react_default.a.createElement("div", null,
                    react_default.a.createElement(FieldLabel_default.a, { label: intl.formatMessage({
                            id: 'action.reportAbuse.textAreaTitle',
                        }) },
                        react_default.a.createElement(Textfield, { className: ReportAbuseDialog_default.a.textAreaDesc, name: "concern-description", required: false, variant: "standard", labelPosition: "top", placeholder: intl.formatMessage({
                                id: 'action.reportAbuse.describeConcern',
                            }), onChange: value => (this.descTxt = value.substring(0, utils_constants["y" /* REPORT_ABUSE_DESCRIPTION_MAX_LENGTH */])) }))),
                react_default.a.createElement("div", { className: ReportAbuseDialog_default.a.footer },
                    react_default.a.createElement("div", { className: ReportAbuseDialog_default.a.disclaimerHelperText },
                        react_default.a.createElement("span", null, "*"),
                        react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "action.reportAbuse.required" }))))));
    }
};
ReportAbuseDialog_ReportAbuseDialog.defaultProps = {
    onClose: () => { },
    onCancel: () => { },
    onConfirm: () => { },
    radioButtonsList: [
        { id: 'defamation' },
        { id: 'hate' },
        { id: 'trademark' },
        { id: 'pornography' },
        { id: 'vulgar' },
        { id: 'other' },
    ],
    description: 'action.reportAbuse.titleText',
    showPersonalInfo: true,
    dialogTitle: 'action.reportAbuse',
};
ReportAbuseDialog_decorate([
    mobx_module["z" /* observable */],
    ReportAbuseDialog_metadata("design:type", Object)
], ReportAbuseDialog_ReportAbuseDialog.prototype, "name", void 0);
ReportAbuseDialog_decorate([
    mobx_module["z" /* observable */],
    ReportAbuseDialog_metadata("design:type", Object)
], ReportAbuseDialog_ReportAbuseDialog.prototype, "isNameChange", void 0);
ReportAbuseDialog_decorate([
    mobx_module["z" /* observable */],
    ReportAbuseDialog_metadata("design:type", Object)
], ReportAbuseDialog_ReportAbuseDialog.prototype, "isEmailChange", void 0);
ReportAbuseDialog_decorate([
    mobx_module["z" /* observable */],
    ReportAbuseDialog_metadata("design:type", Object)
], ReportAbuseDialog_ReportAbuseDialog.prototype, "emailId", void 0);
ReportAbuseDialog_decorate([
    mobx_module["z" /* observable */],
    ReportAbuseDialog_metadata("design:type", Object)
], ReportAbuseDialog_ReportAbuseDialog.prototype, "descTxt", void 0);
ReportAbuseDialog_decorate([
    mobx_module["z" /* observable */],
    ReportAbuseDialog_metadata("design:type", Object)
], ReportAbuseDialog_ReportAbuseDialog.prototype, "reason", void 0);
ReportAbuseDialog_decorate([
    mobx_module["z" /* observable */],
    ReportAbuseDialog_metadata("design:type", Object)
], ReportAbuseDialog_ReportAbuseDialog.prototype, "attemptedSubmit", void 0);
ReportAbuseDialog_decorate([
    mobx_module["z" /* observable */],
    ReportAbuseDialog_metadata("design:type", Object)
], ReportAbuseDialog_ReportAbuseDialog.prototype, "token", void 0);
ReportAbuseDialog_ReportAbuseDialog = ReportAbuseDialog_decorate([
    index_module["e" /* observer */],
    ReportAbuseDialog_metadata("design:paramtypes", [Object])
], ReportAbuseDialog_ReportAbuseDialog);
/* harmony default export */ var components_ReportAbuseDialog = (Object(index_es["g" /* injectIntl */])(ReportAbuseDialog_ReportAbuseDialog));

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/actions/internal/performReportAbuse.tsx




/* harmony default export */ var performReportAbuse = (async (projectsClient, assets) => {
    const { intl, toastManager } = projectsClient;
    projectsClient.showModal(react_default.a.createElement(components_ReportAbuseDialog, { onConfirm: async (userInputData) => {
            try {
                const data = {
                    assetList: assets,
                    productId: 'CCProjectsClient',
                    reportDate: `${new Date().toISOString()}`,
                    ...userInputData,
                };
                await reportAbuse(data);
                toastManager.addToast(intl.formatMessage({ id: 'action.reportAbuse.success' }), {
                    closable: true,
                    variant: 'success',
                });
            }
            catch (error) {
                Settings["b" /* settings */].logger.error(error);
                toastManager.addToast(intl.formatMessage({ id: 'action.reportAbuse.failure' }), {
                    closable: true,
                    variant: 'error',
                });
            }
        } }));
});

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/ModalContainer/index.js
var ModalContainer = __webpack_require__("i0ur");
var ModalContainer_default = /*#__PURE__*/__webpack_require__.n(ModalContainer);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/version.js
var version = __webpack_require__("KAOT");
var version_default = /*#__PURE__*/__webpack_require__.n(version);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/dialogs.tsx
var dialogs = __webpack_require__("Xpp+");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/actions/addMember.tsx
var addMember = __webpack_require__("1+hv");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/actions/download.tsx + 1 modules
var download = __webpack_require__("G8nY");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/ProjectsClient.tsx





























class PerformanceEvent extends CustomEvent {
    constructor(name) {
        super('ccSpacesPerformanceEvent', { detail: { name } });
    }
}
window.PROJECTS_VERSION = version_default.a;
/**
 * ProjectsClient exposes Projects Component actions for our consumers (CDO, Assets Web).
 */
class ProjectsClient_ProjectsClient {
    constructor({ intl, showModal, showPicker, toastInterface, documentFilter, enabledTypes, compatibleTypes, onDialogStateChange, }) {
        this.version = version_default.a;
        this._hideNativeTextfields = false;
        /**
         * Fetches project metadata, given a URN
         */
        this.getProject = (id) => stores_ProjectPool.loadProjectById(id);
        this._hideModal = () => {
            if (this._onModalClose) {
                this._onModalClose();
                this._onModalClose = undefined;
            }
        };
        /** In some cases there is a scroll-based workaround for textfields in UXP
         * that converts textfields to span elements when a textfield is scrolled
         * outside of a scrollable area, so that the textfield does not show up on
         * top of everything. When the workaround is active, we don't want a modal
         * closing to turn those spans back into inputs. So if a particular view
         * currently has the workaround active, it should set this to true and reset
         * it to false when the workaround is no longer active or the view unmounts.
         */
        this.setNativeTextfieldsHidden = (active) => {
            var _a;
            this._hideNativeTextfields = active;
            (_a = this._onDialogStateChange) === null || _a === void 0 ? void 0 : _a.call(this, active);
        };
        this.onDialogStateChange = (dialogActive) => {
            var _a;
            if (dialogActive || (!dialogActive && !this._hideNativeTextfields)) {
                (_a = this._onDialogStateChange) === null || _a === void 0 ? void 0 : _a.call(this, dialogActive);
            }
        };
        /**
         * Show a modal dialog.
         *
         * Pass a <Dialog>-like element (that accepts an optional `onClose` prop).
         * We'll hook up its `onClose` handler for you, so you don't need to do any cleanup.
         */
        this.showModal = (dialogElement) => {
            // Make sure we hide any existing modals before attempting to show a new one.
            this._hideModal();
            return new Promise(resolve => {
                let showModalHandler;
                const proxyProps = { element: dialogElement };
                const showCoachMarks = SharedStore["d" /* sharedStore */].hideCoachMarks();
                this.onDialogStateChange(true);
                if (this.externalShowModal) {
                    showModalHandler = this.externalShowModal;
                    this._onModalClose = () => {
                        this.onDialogStateChange(false);
                        showCoachMarks();
                        resolve();
                    };
                }
                else {
                    // Use built-in showModal implementation.
                    let modalKey;
                    this._onModalClose = () => {
                        if (modalKey) {
                            ModalContainer_default.a.hide(modalKey);
                            modalKey = undefined;
                        }
                        this.onDialogStateChange(false);
                        showCoachMarks();
                        resolve();
                    };
                    showModalHandler = dialog => {
                        var _a;
                        // Using a ref here takes care of unmounted Projects state because React sets ref.current to null on unmount
                        // RS2 uses `context` passed in ModalContainer.show to find closest RS-Provider to context's DOM node and findDOMNode throws if that node is unmounted
                        // For null context, RS2 creates a new div to render `dialog`, which works out well with ref.current
                        modalKey = ModalContainer_default.a.show(dialog, (_a = this.projectsRef) === null || _a === void 0 ? void 0 : _a.current);
                    };
                }
                // Set onClose handler
                proxyProps.onClose = this._onModalClose;
                showModalHandler(react_default.a.createElement(dialogs["b" /* ProxyOnClose */], Object.assign({}, proxyProps), proxiedDialog => (react_default.a.createElement(index_es["e" /* IntlProvider */], { locale: this.intl.locale, messages: this.intl.messages }, proxiedDialog))));
            });
        };
        const { imsData } = SharedStore["d" /* sharedStore */];
        // Silence console logs on prod
        if (imsData.environment === 'prod') {
            Settings["b" /* settings */].logger = Object.keys(Settings["a" /* LogLevels */]).reduce((accu, curr) => {
                accu[curr] = () => true;
                return accu;
            }, {});
        }
        this.showPicker = showPicker;
        this.externalShowModal = showModal;
        this.toastManager = new ToastManager["b" /* default */](toastInterface, () => { var _a; return react_dom_default.a.findDOMNode((_a = this.projectsRef) === null || _a === void 0 ? void 0 : _a.current); });
        this.jobMonitor = new JobMonitor["b" /* JobMonitor */]();
        this.initJobMonitor();
        this.documentFilter = documentFilter;
        this.enabledTypes = enabledTypes;
        this.compatibleTypes = compatibleTypes;
        this._onDialogStateChange = onDialogStateChange;
        this._intl = intl;
        SentryUtils["a" /* sentryUtils */].initSentry(this);
    }
    initJobMonitor() {
        const addToast = this.toastManager.addToast.bind(this.toastManager);
        const replaceToast = this.toastManager.replaceToast.bind(this.toastManager);
        const updateToast = async (message, options) => {
            const toastKey = getToastKey();
            // Ensure message is defined, otherwise do nothing
            if (message) {
                const newToastKey = toastKey
                    ? await replaceToast(toastKey, message, options)
                    : await addToast(message, options);
                setToastKey(newToastKey);
            }
        };
        const handleAdd = async (queue) => {
            let config;
            let message;
            if (this.jobMonitor.queues.size <= 1) {
                config = queue.uiData.options;
                message = queue.uiData.message;
            }
            else {
                config = {
                    closable: true,
                    timeout: 0,
                    variant: undefined,
                };
                message = (react_default.a.createElement(ToastManager["a" /* LoadingMessage */], null, this.intl.formatMessage({ id: 'jobs.inProgress' })));
            }
            updateToast(message, config);
        };
        const handleCompletedOrError = async (queue) => {
            const config = queue.uiData.options;
            const message = queue.uiData.message;
            // Other action(s) still pending, add toast to queue
            // to prevent overwriting loading/in progress toast which is still needed
            if (this.jobMonitor.state === 'pending') {
                addToast(message, config);
            }
            // Last action in the queue is done, replace any existing toast
            if (this.jobMonitor.state === 'completed') {
                const toastKey = getToastKey();
                replaceToast(toastKey, message, config);
            }
        };
        this.jobMonitor.on('added', queue => handleAdd(queue));
        this.jobMonitor.on('completed', queue => handleCompletedOrError(queue));
        this.jobMonitor.on('error', queue => handleCompletedOrError(queue));
    }
    get intl() {
        return this._intl || SharedStore["d" /* sharedStore */].intl;
    }
    async loadTeamsAndSpaces() {
        const start = utils_performance["a" /* default */].now();
        const { spaceContext } = SharedStore["d" /* sharedStore */];
        if (!spaceContext) {
            const scaffoldEvent = ProjectAnalytics["g" /* default */].scaffoldEvent(ProjectAnalytics["c" /* Subcategory */].Space, ProjectAnalytics["d" /* Subtype */].team, ProjectAnalytics["e" /* Type */].error, ProjectAnalytics["f" /* Workflow */].Spaces);
            const elapsedTime = utils_performance["a" /* default */].now() - start;
            // Dunamis Analytics
            ProjectAnalytics["g" /* default */].fireEvent({
                event: {
                    ...scaffoldEvent.event,
                    value: elapsedTime,
                },
                ui: {
                    view_type: ProjectAnalytics["f" /* Workflow */].Projects,
                },
            });
            throw new SpacesError["b" /* SpacesError */]('NOT_INITIALIZED', 'Spaces initialization failed');
        }
        const spaces = spaceContext
            .getSpaces()
            .getList(src["w" /* SpaceOrder */].default, src["v" /* SpaceFilter */].ActiveSpaces, { limit: utils_constants["u" /* PROJECTS_PAGE_SIZE */] });
        await Object(SAMUtils["c" /* waitForListLoad */])(spaces);
        const teams = await User["a" /* default */].getTeams();
        const scaffoldEvent = ProjectAnalytics["g" /* default */].scaffoldEvent(ProjectAnalytics["c" /* Subcategory */].Space, ProjectAnalytics["d" /* Subtype */].team, ProjectAnalytics["e" /* Type */].success, ProjectAnalytics["f" /* Workflow */].Spaces);
        const elapsedTime = utils_performance["a" /* default */].now() - start;
        // Dunamis Analytics
        ProjectAnalytics["g" /* default */].fireEvent({
            event: {
                ...scaffoldEvent.event,
                value: elapsedTime,
            },
            ui: {
                view_type: ProjectAnalytics["f" /* Workflow */].Projects,
            },
        });
        return { teams, spaces };
    }
    /**
     * Check capability for canvas creation.
     *
     * This check returns a value to indicate whether the user has any teams or spaces.
     * If user has none, it means they shouldn't be allowed the option to a create canvas.
     */
    async checkCanvasCapability() {
        const { teams, spaces } = await this.loadTeamsAndSpaces();
        if (!teams || !spaces) {
            throw new SpacesError["b" /* SpacesError */]('NOT_INITIALIZED', 'Initialization error');
        }
        if (teams.items.length === 0) {
            if (spaces.items.length === 0) {
                return false;
            }
        }
        return true;
    }
    /**
     * Space Picker for UAP
     *
     * Launches UAP or returns team id and selected space information based on user's account type and spaces/teams.
     * https://adobe-my.sharepoint.com/:w:/r/personal/bhaskara_adobe_com/_layouts/15/guestaccess.aspx?e=ihT2t9&share=ETbVkP9KjQ5FhpjDnFZAi6UBmuiUCOscyHZvC6VjFDwCgA
     */
    async selectSpaceForCanvas() {
        const { teams, spaces } = await this.loadTeamsAndSpaces();
        if (!teams || !spaces) {
            throw new SpacesError["b" /* SpacesError */]('NOT_INITIALIZED', 'Initialization error');
        }
        const hasOnlyOneTeam = teams.items.length === 1;
        const team = teams.items[0];
        if (!team) {
            throw new SpacesError["b" /* SpacesError */]('NOT_INITIALIZED', 'Team provisioning failed');
        }
        const isCCIUser = team.repositoryOwnerID === SharedStore["d" /* sharedStore */].imsData.userId;
        const teamData = { 'repo:assetId': team.id };
        // If the user has only one team and no spaces, and user is a CCI user we return only team data.
        // Then client calls Document Access Service to start Space and Canvas creation.
        if (hasOnlyOneTeam && !spaces.items.length && isCCIUser) {
            return { teamData };
        }
        else {
            // If the user already has 1 or more teams and/or spaces
            // we want to show UAP to allow user to pick/create a space.
            const { selectedItems } = await launchPicker({
                projectsClient: this,
                cdpContext: new ProjectsCDPContext_ProjectsCDPContext({
                    mode: utils_constants["w" /* PickerMode */].selectProject,
                }),
            });
            if (!selectedItems.length) {
                return {};
            }
            if (selectedItems[0].type !== 'Project') {
                throw new SpacesError["b" /* SpacesError */]('INVALID_DATA', 'Selected item is not a Project');
            }
            const selectedItem = selectedItems[0].data;
            const spaceData = {
                'repo:repositoryId': JSON.parse(selectedItem.spaceInfo).repoId,
                'repo:assetId': JSON.parse(selectedItem.assetRef).cloud_id,
            };
            return { teamData, spaceData };
        }
    }
    /**
     * Given a list of select items, show 'Report Abuse' dialog.
     */
    async reportAbuse(assets) {
        return performReportAbuse(this, assets);
    }
    /**
     * Given a list of selected items, show a "project picker",
     * and then copy the items to the newly-selected Project.
     */
    async copyItemsToProject(args) {
        return performCopyOrMove(this, {
            mode: utils_constants["w" /* PickerMode */].copyToProject,
            ...args,
        });
    }
    /**
     * Show the picker, then copy the given items to the selected destination.
     * You can copy items to a Project or to a Cloud Documents folder.
     */
    async copyItems(args) {
        return performCopyOrMove(this, {
            mode: utils_constants["w" /* PickerMode */].copy,
            ...args,
        });
    }
    /**
     * Show the picker, then move the given item(s) to the selected space.
     */
    async moveItemsToSpace(args) {
        return performCopyOrMove(this, {
            mode: utils_constants["w" /* PickerMode */].moveToProject,
            ...args,
        });
    }
    /**
     * Show the picker, then move the given items to the selected location.
     * Currently, only `move to team` uses this generic `move` mode.
     */
    async moveItems(args) {
        return performCopyOrMove(this, {
            mode: utils_constants["w" /* PickerMode */].move,
            ...args,
        });
    }
    /**
     * Transfer the given items from personal storage to target project location.
     */
    async transferItems(args) {
        return performTransfer(this, {
            mode: utils_constants["w" /* PickerMode */].move,
            ...args,
        });
    }
    async downloadItems(items, inUAP) {
        return Object(download["b" /* downloadItems */])(items, this, inUAP);
    }
    async createCopyResourcesJob(targetProject, libraries) {
        return new Promise(async (resolve) => {
            var _a;
            let errorCodes = [];
            let succeededItems = [];
            try {
                const librariesBatchLink = await targetProject.getPageLink('libraries', ProjectsServiceRequest["a" /* ProjectLinks */].LIBRARIES_BATCH);
                if (!librariesBatchLink) {
                    throw new SpacesError["b" /* SpacesError */]('INVALID_LINK', 'expected a libraries or resources bulk link');
                }
                let startTime = utils_performance["a" /* default */].now();
                let responses = (await batchLibrariesOperation(librariesBatchLink.href, {
                    op: 'add',
                    items: libraries.map(library => ({
                        type: 'reference',
                        data: { id: library.library_urn },
                    })),
                })).responses;
                let endTime = utils_performance["a" /* default */].now();
                for (let i = 0; i < responses.length; i++) {
                    const status = responses[i].status;
                    let ingestData = {
                        env: {
                            api: {
                                name: ProjectAnalytics["b" /* EnvApiName */].LIBRARY_ADD.replace(ProjectAnalytics["b" /* EnvApiName */].CONST_SPACE_ID, targetProject.id),
                            },
                        },
                        content: {
                            id: targetProject.id,
                            type: libraries[i].assetSubType,
                            author: targetProject.role,
                        },
                        event: {
                            subcategory: ProjectAnalytics["c" /* Subcategory */].Resource,
                            subtype: ProjectAnalytics["d" /* Subtype */].add,
                            workflow: ProjectAnalytics["f" /* Workflow */].Spaces,
                            cloud_id: libraries[i].library_urn,
                            context_guid: libraries[i].library_urn,
                            org_guid: (_a = User["a" /* default */].getTeamFromId(targetProject.teamId)) === null || _a === void 0 ? void 0 : _a.repositoryID,
                            value: endTime - startTime,
                        },
                        custom: {
                            team_id: targetProject.teamId,
                        },
                    };
                    if (status && (status < 200 || status >= 400)) {
                        errorCodes.push(status);
                        Object(ProjectAnalytics["i" /* fillErrorData */])(ingestData, responses[i]);
                    }
                    else {
                        succeededItems.push(libraries[i]);
                        ingestData.event['type'] = ProjectAnalytics["e" /* Type */].success;
                    }
                    ProjectAnalytics["g" /* default */].fireEvent(ingestData);
                }
            }
            catch (error) {
                // For a generic failure, mark everything as failed.
                errorCodes = libraries.map(() => { var _a, _b; return (_b = (_a = Object(SpacesError["h" /* maybeSamHttpError */])(error)) === null || _a === void 0 ? void 0 : _a.response.status) !== null && _b !== void 0 ? _b : 400; });
            }
            resolve({ succeededItems, errorCodes });
        });
    }
    /**
     * Show a "libraries picker"; the items selected by that picker will be copied into `targetProject`.
     */
    async copyResourcesToProject({ targetProject }) {
        const { selectedItems } = await launchPicker({
            projectsClient: this,
            cdpContext: new ProjectsCDPContext_ProjectsCDPContext({
                mode: utils_constants["w" /* PickerMode */].reference,
            }),
        });
        const libraries = selectedItems
            .filter(item => item.type === 'Reference')
            .map(item => item.data);
        // Return early if there is no selected items
        if (!libraries.length) {
            return [];
        }
        if (targetProject.resources.items.length + libraries.length > utils_constants["P" /* maxLibraryReferences */]) {
            return Promise.reject(new SpacesError["b" /* SpacesError */]('LIMIT_EXCEEDED', 'copyResourcesToProject'));
        }
        if (libraries.length === 1) {
            ProjectAnalytics["g" /* default */].fireEvent(ProjectAnalytics["g" /* default */].scaffoldEvent(ProjectAnalytics["c" /* Subcategory */].Actions, ProjectAnalytics["d" /* Subtype */].addLibraries, ProjectAnalytics["e" /* Type */].click, ProjectAnalytics["f" /* Workflow */].Libraries));
        }
        return new Promise(async (resolve, reject) => {
            const promise = this.createCopyResourcesJob(targetProject, libraries);
            const job = new JobMonitor["a" /* Job */](promise, libraries);
            const queue = new JobMonitor["c" /* JobQueue */]({
                pending: () => {
                    return {
                        message: this.intl.formatMessage({ id: 'libraries.toast.add.start' }, { count: libraries.length }),
                        options: {
                            closable: true,
                            variant: 'info',
                        },
                    };
                },
                completed: (allItems, copyResponse) => {
                    const errorCount = copyResponse[0].errorCodes.length;
                    const successCount = libraries.length - errorCount;
                    const everythingSucceeded = errorCount === 0;
                    if (everythingSucceeded ||
                        (copyResponse[0].errorCodes.every(value => value === 409) &&
                            errorCount !== libraries.length)) {
                        resolve(allItems);
                        return {
                            message: this.intl.formatMessage({ id: 'libraries.toast.add.success' }, { count: successCount }),
                            options: {
                                closable: true,
                                variant: 'success',
                            },
                        };
                    }
                    else {
                        // Special message for duplicate errors
                        if (copyResponse[0].errorCodes.every(value => value == 403) ||
                            copyResponse[0].errorCodes.every(value => value == 404)) {
                            reject(new SpacesError["b" /* SpacesError */]('NOT_FOUND', 'copyResurcesToProject'));
                            return {
                                message: this.intl.formatMessage({ id: 'libraries.toast.add.error' }, { count: errorCount }),
                                options: {
                                    closable: true,
                                    variant: 'error',
                                },
                            };
                        }
                        else if (copyResponse[0].errorCodes.every(value => value == 409)) {
                            reject(new SpacesError["b" /* SpacesError */]('ALREADY_EXISTS', 'copyResurcesToProject'));
                            if (allItems.length === 1) {
                                return {
                                    message: this.intl.formatMessage({
                                        id: 'libraries.toast.add.duplicate',
                                    }),
                                    options: {
                                        closable: true,
                                        variant: 'error',
                                    },
                                };
                            }
                            else {
                                return {
                                    message: this.intl.formatMessage({ id: 'libraries.toast.add.onlyDuplicates' }, { count: errorCount }),
                                    options: {
                                        closable: true,
                                        variant: 'error',
                                    },
                                };
                            }
                        }
                        else {
                            if (copyResponse[0].succeededItems.length === 0) {
                                reject(new SpacesError["b" /* SpacesError */]('INVALID_DATA', 'copyResurcesToProject zero items succeeded'));
                            }
                            else {
                                resolve(copyResponse[0].succeededItems);
                            }
                            return {
                                message: this.intl.formatMessage({ id: 'libraries.toast.add.error' }, { count: errorCount }),
                                options: {
                                    closable: true,
                                    variant: 'error',
                                },
                            };
                        }
                    }
                },
            });
            queue.add(job);
            this.jobMonitor.add('copyResourcesToProject', queue);
        });
    }
    /**
     * Expose spaces logic of formatting IShareSheetItem based on ShareSheetType and related data.
     *
     * @param config {ISelectedShareSheetData}
     * @returns {Promise<IShareSheetItem>}
     */
    formatShareSheetAssetData(config) {
        return Object(addMember["b" /* formatShareSheetAssetData */])(config);
    }
    /**
     * Returns the HostProductData needed to instantiate both CDP and CDO.
     */
    get cdoHostProductData() {
        return {
            platform: Host["a" /* default */].platform,
            platformVersion: Host["a" /* default */].platformVersion,
            productId: Host["a" /* default */].id,
            productVersion: Host["a" /* default */].version,
            productName: Host["a" /* default */].name,
            productLocation: utils_constants["x" /* ProductLocation */].Projects,
            dcxId: Host["a" /* default */].dcxAppId,
            apiKey: SharedStore["d" /* sharedStore */].config.CLIENT_ID,
            documentFilter: this.documentFilter || [],
            enabledTypes: this.enabledTypes || [],
            compatibleTypes: this.compatibleTypes || [],
            featureFlags: utils_constants["d" /* CDO_FEATURE_FLAGS */],
            defaultDocumentIcons: undefined,
            // Want to pass app language here, 'intl.locale' can be system locale
            uiLocale: this.intl.appLanguage || this.intl.locale,
            allowedToSendAnalyticsEvents: ProjectAnalytics["g" /* default */].isEnabled(),
        };
    }
    dispatchPerformanceEvent(name) {
        document.dispatchEvent(new PerformanceEvent(name));
    }
}

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/stores/CoachMarkStore.ts
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
var CoachMarkStore_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;
};
var CoachMarkStore_metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};



class DelayTimer {
    constructor(delay) {
        this.expired = false;
        setTimeout(() => this._onTimeout(), delay);
    }
    _onTimeout() {
        this.expired = true;
    }
}
CoachMarkStore_decorate([
    mobx_module["z" /* observable */],
    CoachMarkStore_metadata("design:type", Object)
], DelayTimer.prototype, "expired", void 0);
class CoachMarkStep {
    constructor(tour, index, info) {
        this.tour = tour;
        this.index = index;
        this.info = info;
    }
    get id() {
        return `ccprojects-onboarding-${this.tour.id}-${this.index}`;
    }
    get selectorId() {
        return `${this.tour.store.coachMarkDOMPrefix}ccprojects-onboarding-${this.tour.id}-${this.index}`;
    }
    get isAvailable() {
        var _a, _b, _c;
        return (_c = (_b = (_a = this.info).available) === null || _b === void 0 ? void 0 : _b.call(_a)) !== null && _c !== void 0 ? _c : true;
    }
    get titleId() {
        return this.info.titleId;
    }
    get contentId() {
        return this.info.contentId;
    }
    get link() {
        return this.info.link;
    }
    get placement() {
        var _a;
        return (_a = this.info.placement) !== null && _a !== void 0 ? _a : 'right';
    }
    get image() {
        return this.info.image;
    }
    /**
     * Starts the timeout for the delay. If the timeout expired already, it will return true.
     * If no delay was needed, just returns true automatically.
     */
    canDisplayCard() {
        let delayTimer = this._delayTimer;
        if (delayTimer) {
            // If we had a timer already, return true if expired.
            return delayTimer.expired;
        }
        const delay = this.info.delay;
        if (!delay) {
            // No delay was requested, just show the card directly.
            return true;
        }
        delayTimer = new DelayTimer(delay);
        this._delayTimer = delayTimer;
        // Note that we need to return the expired property here to
        // make sure the caller becomes dependent on the value of the
        // timer expired property.
        return delayTimer.expired;
    }
}
class CoachMarkStore_CoachMarkTour {
    constructor(store, info) {
        var _a, _b;
        this.store = store;
        this._completedByHost = false;
        this._hostNeedsAllStepsToBeVisible = false;
        this._visitedSteps = new Set();
        this._skipped = false;
        this._activeTourStepIndex = -1;
        this._registeredSteps = mobx_module["z" /* observable */].map();
        this._id = info.id;
        this._order = info.order;
        this._version = (_a = info.version) !== null && _a !== void 0 ? _a : 1;
        this._available = info.available;
        this._expires = info.expires;
        this._hostNeedsAllStepsToBeVisible = (_b = info.hostNeedsAllStepsToBeVisible) !== null && _b !== void 0 ? _b : false;
        this._steps = info.steps.map((stepInfo, index) => new CoachMarkStep(this, index, stepInfo));
    }
    get id() {
        return this._id;
    }
    get order() {
        return this._order;
    }
    get isAvailable() {
        var _a, _b;
        return (_b = (_a = this._available) === null || _a === void 0 ? void 0 : _a.call(this)) !== null && _b !== void 0 ? _b : true;
    }
    get version() {
        return this._version;
    }
    get availableSteps() {
        return this._steps.filter(step => step.isAvailable);
    }
    get hostNeedsAllStepsToBeVisible() {
        return this._hostNeedsAllStepsToBeVisible;
    }
    /**
     * Checks whether the tour is available, if all required steps are registered and returns
     * true only when all conditions pass
     */
    get readyToRegisterWithHost() {
        return this.hostNeedsAllStepsToBeVisible ? this.hasAllStepsVisible : this.isAvailable;
    }
    stepAt(index) {
        return this._steps[index];
    }
    canDisplayCardForStep(step) {
        var _a;
        const activeStep = (_a = this._activeTourSteps) === null || _a === void 0 ? void 0 : _a[this._activeTourStepIndex];
        return activeStep === step && step.canDisplayCard();
    }
    registerStep(step, id) {
        let items = this._registeredSteps.get(step);
        if (!items) {
            items = mobx_module["z" /* observable */].set();
            this._registeredSteps.set(step, items);
        }
        items.add(id);
        // Return the registration method that can be used to remove the step registration.
        return () => {
            items.delete(id);
            if (!items.size) {
                this._registeredSteps.delete(step);
            }
        };
    }
    /**
     * Returns true only when the available steps have all been registered with an injection point in the DOM.
     */
    get hasAllStepsVisible() {
        return this.isAvailable && this.availableSteps.length === this._registeredSteps.size;
    }
    get registeredStepsHash() {
        const ids = [];
        for (const steps of this._registeredSteps.values()) {
            for (const id of steps) {
                ids.push(id);
            }
        }
        ids.sort();
        return ids.join(',');
    }
    get _preferencesProperty() {
        return `ccprojects_${this._id}`;
    }
    async _getState() {
        const stateStr = await this.store.getTourValue(this._preferencesProperty);
        if (!stateStr) {
            return;
        }
        try {
            return JSON.parse(stateStr);
        }
        catch (err) {
            // Ignore the error and start fresh.
        }
    }
    async initTour() {
        const state = await this._getState();
        if (!state || state.version !== this._version) {
            // If we have a new version, we will start fresh.
            return;
        }
        if (Array.isArray(state.visited)) {
            const visitedSteps = this._visitedSteps;
            const count = this._steps.length;
            for (const index of state.visited) {
                if (typeof index === 'number' && index >= 0 && index < count) {
                    visitedSteps.add(index);
                }
            }
        }
        this._skipped = Boolean(state.skipped);
        this._dateVisited = state.dateVisited;
        this._completedByHost = Boolean(state.completedByHost);
    }
    get isExpired() {
        const expires = this._expires;
        const dateVisited = this._dateVisited;
        return this.isDone && expires && dateVisited && dateVisited + expires < Date.now();
    }
    get isActive() {
        return Boolean(this._activeTourSteps);
    }
    get isDone() {
        return (this._completedByHost || this._skipped || this._visitedSteps.size === this._steps.length);
    }
    get currentStepNumber() {
        return this._activeTourStepIndex + 1;
    }
    get activeStepCount() {
        var _a, _b;
        return (_b = (_a = this._activeTourSteps) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0;
    }
    get isOneStepTour() {
        var _a;
        return ((_a = this._activeTourSteps) === null || _a === void 0 ? void 0 : _a.length) === 1;
    }
    get hasMoreStepsInActiveTour() {
        const activeSteps = this._activeTourSteps;
        return activeSteps && this._activeTourStepIndex + 1 < activeSteps.length;
    }
    async _saveProgress() {
        // Save the information about the tour.
        const state = {
            version: this._version,
            visited: Array.from(this._visitedSteps),
            skipped: this._skipped,
            dateVisited: Date.now(),
            completedByHost: this._completedByHost,
        };
        await this.store.setTourValue(this._preferencesProperty, JSON.stringify(state));
    }
    startTour() {
        if (this.isDone || !this.isAvailable) {
            return false;
        }
        const steps = this._steps;
        const visited = this._visitedSteps;
        // Skip any steps that have been visited before.
        const activeSteps = steps.filter(step => !visited.has(step.index) && step.isAvailable);
        if (!activeSteps.length) {
            // Nothing to show, no steps are available.
            return false;
        }
        this._activeTourSteps = activeSteps;
        this._activeTourStepIndex = 0;
        return true;
    }
    nextStep() {
        const steps = this._activeTourSteps;
        if (!steps) {
            return;
        }
        const currentIndex = this._activeTourStepIndex;
        // Update the last step that the user confirmed.
        this._visitedSteps.add(steps[currentIndex].index);
        this._saveProgress();
        // Move to the next step.
        if (currentIndex + 1 >= steps.length) {
            // We're done.
            this.dismissActiveTour();
        }
        else {
            // Increment the current step.
            ++this._activeTourStepIndex;
        }
    }
    dismissActiveTour() {
        this._activeTourSteps = undefined;
        this._activeTourStepIndex = -1;
    }
    skipTour() {
        // Move to the end of the steps.
        this._skipped = true;
        this._saveProgress();
        this.dismissActiveTour();
    }
    markTourCompletedByHost() {
        this._completedByHost = true;
        this._saveProgress();
    }
}
CoachMarkStore_decorate([
    mobx_module["z" /* observable */],
    CoachMarkStore_metadata("design:type", Array)
], CoachMarkStore_CoachMarkTour.prototype, "_activeTourSteps", void 0);
CoachMarkStore_decorate([
    mobx_module["z" /* observable */],
    CoachMarkStore_metadata("design:type", Number)
], CoachMarkStore_CoachMarkTour.prototype, "_activeTourStepIndex", void 0);
function sortByOrder(a, b) {
    // CoachMarks with a lower index will start before the ones with a higher index.
    return a.order - b.order;
}
class CoachMarkStore_CoachMarkStore {
    constructor(_preferencesStore, coachMarkDOMPrefix) {
        this._preferencesStore = _preferencesStore;
        this.coachMarkDOMPrefix = coachMarkDOMPrefix;
        this.displayCoachMarks = true;
        this._toursById = new mobx_module["d" /* ObservableMap */]();
    }
    async registerTour(info) {
        const tour = new CoachMarkStore_CoachMarkTour(this, info);
        await tour.initTour();
        // We set the tour at the very end as the `autorun` below will run as soon as
        // the tour is registered and we don't want un-initialized tours in that function.
        this._toursById.set(tour.id, tour);
    }
    getTourById(tourId) {
        return this._toursById.get(tourId);
    }
    get sortedTours() {
        const tours = Array.from(this._toursById.values());
        return tours.sort(sortByOrder);
    }
    /**
     * Call this method to start the internal CoachMarks implementation.
     */
    initDefaultTours() {
        const updateActiveTour = () => {
            const tours = this.sortedTours;
            const activeTour = tours.find(tour => tour.isActive);
            if (!this.displayCoachMarks ||
                !SharedStore["d" /* sharedStore */].displayCoachMarks ||
                SharedStore["d" /* sharedStore */].hideCoachMarksCounter) {
                // We are not allowed to show any tour at the moment.
                // Hide it if we have it running.
                activeTour === null || activeTour === void 0 ? void 0 : activeTour.dismissActiveTour();
                return;
            }
            if (activeTour) {
                // We don't want to bother any active tour once it started.
                return activeTour;
            }
            // Look for a new possible tour to start.
            for (const tour of tours) {
                if (tour.startTour()) {
                    return tour;
                }
            }
        };
        Object(mobx_module["k" /* autorun */])(() => {
            // Update the tour for external users.
            this.activeTour = updateActiveTour();
        });
    }
    async getTourValue(name) {
        return await this._preferencesStore.getValue(name);
    }
    async setTourValue(name, value) {
        return await this._preferencesStore.setValue(name, value);
    }
}
CoachMarkStore_decorate([
    mobx_module["z" /* observable */],
    CoachMarkStore_metadata("design:type", Boolean)
], CoachMarkStore_CoachMarkStore.prototype, "displayCoachMarks", void 0);
CoachMarkStore_decorate([
    mobx_module["z" /* observable */],
    CoachMarkStore_metadata("design:type", CoachMarkStore_CoachMarkTour)
], CoachMarkStore_CoachMarkStore.prototype, "activeTour", void 0);
/* harmony default export */ var stores_CoachMarkStore = (CoachMarkStore_CoachMarkStore);

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/stores/CoachMarkTours.ts
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/




// Make sure we don't run the coachmarks auto-update
// until all tours are registered by using the action decorator.
async function createOnboardingTours(browseSession) {
    if (browseSession.productLocation === utils_constants["x" /* ProductLocation */].CDP) {
        // We don't show the coach-marks inside the document picker.
        return;
    }
    const adminCoachMark = browseSession.coachMarks.registerTour({
        id: 'admin',
        hostNeedsAllStepsToBeVisible: true,
        order: 1,
        available: () => User["a" /* default */].hasPermissionToAnyOrgRepository(),
        steps: [
            {
                delay: 3000,
                titleId: 'teamsSidebar.adminTour.title',
                contentId: 'teamsSidebar.adminTour.content',
                placement: 'bottom',
            },
        ],
    });
    const spacesCoachMark = browseSession.coachMarks.registerTour({
        id: 'spaces',
        order: 2,
        // Wait for all the steps of the tour to be available on screen before sending this to the host.
        hostNeedsAllStepsToBeVisible: true,
        available: () => Boolean(browseSession.currentSpaceId),
        steps: [
            {
                titleId: 'spaceTour.step0.title',
                contentId: 'spaceTour.step0.content',
                placement: 'right',
            },
            {
                titleId: 'spaceTour.step1.title',
                contentId: 'spaceTour.step1.content',
                placement: 'top',
            },
            {
                titleId: 'spaceTour.step2.title',
                contentId: 'spaceTour.step2.content',
                placement: 'bottom',
                available: () => {
                    var _a;
                    if (!Host["a" /* default */].canShare) {
                        return false;
                    }
                    const id = browseSession.currentSpaceId;
                    if (id) {
                        const space = (_a = SharedStore["d" /* sharedStore */].spaceContext) === null || _a === void 0 ? void 0 : _a.spacePool.getLocalItemById(id);
                        if ((space === null || space === void 0 ? void 0 : space.role) === 'CONTRIBUTOR') {
                            return true;
                        }
                    }
                    return false;
                },
            },
        ],
    });
    // We've started both of the coachmarks and wait at the very end to make sure the preferences
    // are computed at the same time to avoid waiting in sequence.
    await adminCoachMark;
    await spacesCoachMark;
}

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/stores/CoachMarkHost.ts
var CoachMarkHost = __webpack_require__("2FbO");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/styles/CreateTeamWizard.css
var CreateTeamWizard = __webpack_require__("WYia");
var CreateTeamWizard_default = /*#__PURE__*/__webpack_require__.n(CreateTeamWizard);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Link/index.js
var Link = __webpack_require__("v7z/");
var Link_default = /*#__PURE__*/__webpack_require__.n(Link);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/interfaces/ShareSheetInterface.ts
var ShareSheetInterface = __webpack_require__("GXpm");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/components/teams/CreateTeamWizard/InviteMembersSidebar.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2022 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/




function InviteMembersSidebar(props) {
    const { name } = props;
    return (react_default.a.createElement(react_default.a.Fragment, null,
        react_default.a.createElement(Heading_default.a, { className: CreateTeamWizard_default.a.panelLeftHeading, variant: "pageTitle" },
            react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "createTeamWizard.inviteMembers.sidebarHeading", values: { name } })),
        react_default.a.createElement("p", null,
            react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "createTeamWizard.inviteMembers.sidebarCopy" }))));
}

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/images/CreateWorkspaceCC.png
var CreateWorkspaceCC = __webpack_require__("MUkq");
var CreateWorkspaceCC_default = /*#__PURE__*/__webpack_require__.n(CreateWorkspaceCC);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/images/CreateWorkspaceAC.png
var CreateWorkspaceAC = __webpack_require__("FGa3");
var CreateWorkspaceAC_default = /*#__PURE__*/__webpack_require__.n(CreateWorkspaceAC);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/urls.ts
var urls = __webpack_require__("/YLX");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/components/teams/CreateTeamWizard/CreateTeamSidebar.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2022 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/








function CreateTeamSidebar({ variant }) {
    return (react_default.a.createElement(react_default.a.Fragment, null,
        react_default.a.createElement(Heading_default.a, { className: CreateTeamWizard_default.a.panelLeftHeading, variant: "pageTitle" },
            react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "createTeamWizard.createTeam.sidebarHeading" })),
        react_default.a.createElement("p", null,
            react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: variant === 'admin-console'
                    ? 'createTeamWizard.createTeam.sidebarCopy.adminconsole'
                    : 'createTeamWizard.createTeam.sidebarCopy' }),
            ' ',
            react_default.a.createElement(Link_default.a, { className: CreateTeamWizard_default.a.panelLeftLink, href: Object(urls["j" /* localizedGoUrl */])(urls["b" /* LEARN_MORE_COLLAB_BETA */]), target: "_blank" },
                react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "createTeamWizard.createTeam.sidebarLink" }))),
        react_default.a.createElement("div", { className: CreateTeamWizard_default.a.panelLeftBottom },
            react_default.a.createElement("img", { src: variant === 'admin-console' ? CreateWorkspaceAC_default.a : CreateWorkspaceCC_default.a }))));
}

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/UsersLock/index.js
var UsersLock = __webpack_require__("5cqT");
var UsersLock_default = /*#__PURE__*/__webpack_require__.n(UsersLock);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Select/index.js
var Select = __webpack_require__("GfA4");
var Select_default = /*#__PURE__*/__webpack_require__.n(Select);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/styles/TeamForm.css
var TeamForm = __webpack_require__("GdbL");
var TeamForm_default = /*#__PURE__*/__webpack_require__.n(TeamForm);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/validate-asset-name.ts
var validate_asset_name = __webpack_require__("227d");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/styles/RealTimeFormError.css
var RealTimeFormError = __webpack_require__("1QVu");
var RealTimeFormError_default = /*#__PURE__*/__webpack_require__.n(RealTimeFormError);

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/components/NameInputLengthValidation.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2022 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/




function NameInputLengthValidation({ children, disabled, duplicates, headingLabel, name, offline, originalName, setName, setValid, showCountdown, syntaxErrorTypes = ['nameEndsWithDot', 'characters', 'length', 'empty'], testIdPrefix, variant, maxLength, maxLengthErrorId, }) {
    const [isDirty, setDirty] = Object(react["useState"])(false);
    const [validationState, setValidationState] = Object(react["useState"])(undefined);
    const [errorID, setErrorID] = Object(react["useState"])(null);
    const getCountdown = () => {
        let count = Number(maxLength - name.length);
        // Count UI stops at 0
        return count >= 0 ? count : 0;
    };
    const _validateState = errorID => {
        // Don't show textfield error validation icon if no input or name unchanged (rename case)
        if (!isDirty) {
            return undefined;
        }
        return errorID ? 'invalid' : 'valid';
    };
    const _onChange = (name) => {
        let cleanName = name.trim();
        setDirty(cleanName.length !== 0 && !isOriginalName(cleanName));
        setName(name);
    };
    const _flagSyntaxError = name => {
        const cleanName = name.trim();
        let errorID;
        if (syntaxErrorTypes.includes('nameEndsWithDot') && cleanName.slice(-1) === '.') {
            errorID = 'textField.invalid.nameEndsWithDot';
        }
        else if (syntaxErrorTypes.includes('characters') &&
            validate_asset_name["a" /* RESTRICTED_CHARACTERS */].test(cleanName)) {
            errorID = 'textField.invalid.characters';
        }
        else if (syntaxErrorTypes.includes('length') && name.length > maxLength) {
            // Use original (non-trimmed) name when checking length.
            errorID = maxLengthErrorId !== null && maxLengthErrorId !== void 0 ? maxLengthErrorId : 'textField.invalid.length';
        }
        else if (syntaxErrorTypes.includes('empty') && cleanName.length === 0) {
            errorID = 'textField.invalid.empty';
        }
        return errorID;
    };
    function hasPreviousSavedName() {
        return !!originalName && originalName !== '';
    }
    function isOriginalName(name) {
        return hasPreviousSavedName() && name === originalName;
    }
    function isCaseInsensitiveOriginalName(name) {
        return hasPreviousSavedName() && name.toLowerCase() === originalName.toLowerCase();
    }
    // Backend API allows changing letter casing of space/team name during edits
    // But disallows creating space/team names of case-insensitive dupes
    const _flagDuplicateName = (newName, newDuplicates) => {
        const lowercaseName = newName.toLowerCase().trim();
        // Omit original name from validation & return early
        if (isCaseInsensitiveOriginalName(newName)) {
            return false;
        }
        return newDuplicates.includes(lowercaseName);
    };
    const _checkError = () => {
        let errorID;
        const cleanName = name.trim();
        if (offline) {
            errorID = 'textField.invalid.offline';
        }
        else if (duplicates && _flagDuplicateName(cleanName, duplicates)) {
            errorID = `textField.invalid.duplicateName.${variant}`;
        }
        else {
            errorID = _flagSyntaxError(name);
        }
        return errorID;
    };
    Object(react["useEffect"])(() => {
        const _errorID = _checkError();
        setErrorID(_errorID);
        setValid === null || setValid === void 0 ? void 0 : setValid(!_errorID);
        setValidationState(_validateState(_errorID));
    }, [name, disabled, offline, _checkError, setValid, _validateState]);
    return (react_default.a.createElement(react_default.a.Fragment, null,
        (headingLabel || showCountdown) && (react_default.a.createElement("div", { className: RealTimeFormError_default.a.heading },
            headingLabel && react_default.a.createElement("div", null, headingLabel),
            showCountdown && react_default.a.createElement("div", { className: RealTimeFormError_default.a.right }, getCountdown()))),
        children({ onChange: _onChange, validationState }),
        (isDirty && errorID && (react_default.a.createElement("div", { className: RealTimeFormError_default.a.invalidMsg, "data-test-id": `${testIdPrefix}__invalidNameMsg` },
            react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: errorID })))) || react_default.a.createElement("div", { className: RealTimeFormError_default.a.invalidMsg })));
}

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/components/teams/TeamForm.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2022 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/










function TeamForm_TeamForm({ app: { intl, showOffline }, name, onNameChange, description, onDescriptionChange, originalName, originalDescription, setValid, showInfoBox, testIdPrefix, }) {
    var _a;
    const placeholderMessage = intl.formatMessage({
        id: 'teamDialog.nameSection.placeholder',
    });
    const descriptionPlaceholder = intl.formatMessage({
        id: 'teamDialog.descriptionSection.placeholder',
    });
    const [isNameValid, setNameValid] = Object(react["useState"])(true);
    const [isDescriptionValid, setDescriptionValid] = Object(react["useState"])(true);
    Object(react["useLayoutEffect"])(() => {
        setValid(isNameValid && isDescriptionValid);
    }, [setValid, isNameValid, isDescriptionValid]);
    const teamDuplicates = ((_a = SharedStore["d" /* sharedStore */].teams) === null || _a === void 0 ? void 0 : _a.items.map(team => team.name.toLowerCase().trim())) || [];
    return (react_default.a.createElement("div", { className: TeamForm_default.a.blockContainer },
        react_default.a.createElement("div", { className: TeamForm_default.a.formItem },
            react_default.a.createElement(NameInputLengthValidation, { name: name, variant: "team", originalName: originalName, setName: onNameChange, setValid: setNameValid, offline: showOffline, testIdPrefix: testIdPrefix, headingLabel: intl.formatMessage({ id: 'teamDialog.nameSection.label' }), showCountdown: true, duplicates: teamDuplicates, maxLength: utils_constants["S" /* maxSpaceTeamNameLength */] }, inputProps => (react_default.a.createElement(components_Textfield["a" /* default */], Object.assign({}, inputProps, { ariaLabel: placeholderMessage, autoFocus: true, className: TeamForm_default.a.textfield, placeholder: placeholderMessage, quiet: true, testIdPrefix: testIdPrefix, value: name }))))),
        showInfoBox && (react_default.a.createElement("div", { className: TeamForm_default.a.formItem },
            react_default.a.createElement(FieldLabel_default.a, { label: intl.formatMessage({ id: 'teamDialog.permissionsSection.label' }) },
                react_default.a.createElement(Select_default.a, { className: TeamForm_default.a.permissionSelect, disabled: true, flexible: true, options: [
                        {
                            icon: react_default.a.createElement(UsersLock_default.a, null),
                            label: intl.formatMessage({
                                id: 'teamDialog.permissionsSection.option.onlyInvited',
                            }),
                            value: 'invited',
                        },
                    ], quiet: true })))),
        react_default.a.createElement("div", { className: TeamForm_default.a.formItem },
            react_default.a.createElement(NameInputLengthValidation, { name: description, variant: "team", originalName: originalDescription, setName: onDescriptionChange, setValid: setDescriptionValid, offline: showOffline, testIdPrefix: testIdPrefix, headingLabel: intl.formatMessage({ id: 'teamDialog.descriptionSection.label' }), syntaxErrorTypes: ['length'], showCountdown: true, duplicates: [], maxLength: utils_constants["T" /* maxTeamDescriptionLength */], maxLengthErrorId: "projectInfo.description.invalidLength" }, inputProps => (react_default.a.createElement(Textfield, Object.assign({}, inputProps, { onKeyDown: event => {
                    if (event.key === 'Enter') {
                        event.stopPropagation();
                    }
                }, ariaLabel: descriptionPlaceholder, className: TeamForm_default.a.textfield, placeholder: descriptionPlaceholder, testIdPrefix: testIdPrefix, value: description, rows: 5, validationState: 
                // Hide the "checkmark" valid state for the description
                inputProps.validationState === 'valid'
                    ? undefined
                    : inputProps.validationState })))))));
}

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/components/teams/CreateTeamWizard/Loading.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2022 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/





function Loading(props) {
    const { messageId, values } = props;
    return (react_default.a.createElement("div", { className: CreateTeamWizard_default.a.loading },
        react_default.a.createElement(Wait_default.a, { size: "L" }),
        messageId && (react_default.a.createElement(Heading_default.a, { className: CreateTeamWizard_default.a.loadingText, variant: "pageTitle" },
            react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: messageId, values: values })))));
}

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/components/teams/CreateTeamWizard/CreateTeamContent.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2022 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/







function CreateTeamContent(props) {
    const { app, isLoading, name, onCancel, onNameChange, description, onDescriptionChange, onSubmit, testIdPrefix, } = props;
    const [isValid, setIsValid] = Object(react["useState"])(false);
    const handleSubmit = Object(react["useCallback"])(event => {
        event.preventDefault();
        onSubmit();
    }, [onSubmit]);
    const confirmDisabled = Boolean(!isValid || name.trim() === '');
    if (isLoading) {
        return react_default.a.createElement(Loading, { messageId: "createTeamWizard.createTeam.loading", values: { name } });
    }
    return (react_default.a.createElement(react_default.a.Fragment, null,
        react_default.a.createElement(Heading_default.a, { variant: "subtitle1" },
            react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "createTeamWizard.createTeam.contentHeading" })),
        react_default.a.createElement("form", { className: CreateTeamWizard_default.a.workspaceForm, onSubmit: handleSubmit },
            react_default.a.createElement(TeamForm_TeamForm, { app: app, name: name, onNameChange: onNameChange, description: description, onDescriptionChange: onDescriptionChange, setValid: setIsValid, showInfoBox: true, testIdPrefix: testIdPrefix }),
            react_default.a.createElement("div", { className: CreateTeamWizard_default.a.formButtons },
                onCancel && (react_default.a.createElement(Button_default.a, { onClick: onCancel, type: "button" },
                    react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "button.cancel" }))),
                react_default.a.createElement(Button_default.a, { disabled: confirmDisabled, type: "submit", variant: "cta" },
                    react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "button.create" }))))));
}

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/components/teams/CreateTeamWizard/InviteMembersContent.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2022 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/






function InviteMembersContent(props) {
    const { isLoading, onShareSheetEvent, renderShareSheet, team } = props;
    const ref = Object(react["useRef"])(null);
    Object(react["useEffect"])(() => {
        // Intercept the default "trapFocus" behavior that ShareSheet's Dialog automatically adds,
        // so that the focus can travel out of the ShareSheet and onto the wizard's controls.
        // https://git.corp.adobe.com/CCX/ccx-sharing/blob/main/packages/component-react/src/components/Dialog/index.tsx#L42-L48
        const el = ref.current;
        if (el) {
            const handler = event => {
                if (event.key === 'Tab') {
                    event.stopPropagation();
                }
            };
            el.addEventListener('keydown', handler, true);
            return () => el.removeEventListener('keydown', handler, true);
        }
    });
    if (isLoading) {
        return (react_default.a.createElement(Loading, { messageId: "createTeamWizard.inviteMembers.loading", values: { name: team.name } }));
    }
    return (react_default.a.createElement(react_default.a.Fragment, null,
        react_default.a.createElement("div", { className: CreateTeamWizard_default.a.shareSheetHeading },
            react_default.a.createElement(Heading_default.a, { variant: "subtitle1" },
                react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "createTeamWizard.inviteMembers.contentHeading" }))),
        react_default.a.createElement("div", { className: CreateTeamWizard_default.a.shareSheetContainer, ref: ref }, renderShareSheet(Object(addMember["c" /* formatShareSheetTeamsData */])(team), onShareSheetEvent, {
            hideCloseButton: true,
            showHeader: false,
        }) || null)));
}

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/components/teams/CreateTeamWizard/index.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2022 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/










function CreateTeamWizard_CreateTeamWizard({ app, onClose, onConfirm, onDone, renderShareSheet, testIdPrefix, variant, }) {
    const [name, setName] = Object(react["useState"])('');
    const [description, setDescription] = Object(react["useState"])('');
    const [team, setTeam] = Object(react["useState"])(null);
    const [isLoading, setIsLoading] = Object(react["useState"])(false);
    const handleSubmit = Object(react["useCallback"])(() => {
        setIsLoading(true);
        onConfirm({ name: name.trim(), description })
            .then(setTeam)
            .finally(() => setIsLoading(false));
    }, [name, description, onConfirm]);
    const handleDone = Object(react["useCallback"])(({ hasInvitedMembers }) => {
        if (team) {
            onDone(team, hasInvitedMembers);
        }
        onClose === null || onClose === void 0 ? void 0 : onClose();
    }, [onClose, onDone, team]);
    const handleShareSheetEvent = Object(react["useCallback"])((event) => {
        switch (event.type) {
            case ShareSheetInterface["a" /* ShareSheetCallbackType */].INVITE_SENT: {
                setIsLoading(true);
                break;
            }
            case ShareSheetInterface["a" /* ShareSheetCallbackType */].INVITE_FULFILLED: {
                handleDone({ hasInvitedMembers: true });
                break;
            }
        }
    }, [handleDone]);
    return (react_default.a.createElement("div", { className: CreateTeamWizard_default.a.component },
        react_default.a.createElement("div", { className: CreateTeamWizard_default.a.panelLeft }, team ? (react_default.a.createElement(InviteMembersSidebar, { name: team.name })) : (react_default.a.createElement(CreateTeamSidebar, { variant: variant }))),
        react_default.a.createElement("div", { className: classnames_default()(CreateTeamWizard_default.a.panelRight, {
                [CreateTeamWizard_default.a.panelRightShareSheet]: !!team,
            }) }, team ? (react_default.a.createElement(InviteMembersContent, { isLoading: isLoading, onShareSheetEvent: handleShareSheetEvent, renderShareSheet: renderShareSheet, team: team })) : (react_default.a.createElement(CreateTeamContent, { app: app, isLoading: isLoading, name: name, description: description, onCancel: onClose, onNameChange: setName, onDescriptionChange: setDescription, onSubmit: handleSubmit, testIdPrefix: testIdPrefix }))),
        !isLoading && (react_default.a.createElement("div", { className: CreateTeamWizard_default.a.progress },
            react_default.a.createElement("span", { className: CreateTeamWizard_default.a.progressSteps },
                react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "createTeamWizard.progress", values: { current: team ? '2' : '1', total: '2' } })),
            team && (react_default.a.createElement(Link_default.a, { onClick: () => handleDone({ hasInvitedMembers: false }) },
                react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "createTeamWizard.skipStep" })))))));
}

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/components/teams/CreateTeamWizard/Dialog.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2022 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/






function CreateTeamWizardDialog(props) {
    return (react_default.a.createElement(dialogs["b" /* ProxyOnClose */], { element: react_default.a.createElement(Dialog["a" /* default */], { className: classnames_default()(CreateTeamWizard_default.a.dialog) },
            react_default.a.createElement(CreateTeamWizard_CreateTeamWizard, Object.assign({}, props))) }));
}

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/components/teams/CreateOrEditTeamForm.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2022 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/






// TODO: Unify this with CreateTeamContent.
// This is nearly identical to CreateTeamContent, with a few exceptions
// (different header style, support for a proper "Creating Team" state), etc.
// CreateTeamContent is currently used for the new-style CreateWorkspaceWizard,
// while CreateOrEditTeamForm is used for old-style create/edit workspace dialog.
function CreateOrEditTeamForm({ app, onClose, onConfirm, originalName, originalDescription, testIdPrefix, showInfoBox, title, confirmLabel, }) {
    const initialName = originalName || '';
    const initialDescription = originalDescription || '';
    const [name, setName] = Object(react["useState"])(initialName);
    const [description, setDescription] = Object(react["useState"])(initialDescription);
    const [isValid, setValid] = Object(react["useState"])(false);
    const [isSubmitting, setSubmitting] = Object(react["useState"])(false);
    const isUnchanged = name.trim() === initialName && description.trim() === initialDescription;
    const confirmDisabled = Boolean(!isValid || isUnchanged || isSubmitting);
    const submitForm = Object(react["useCallback"])(async (event) => {
        event.preventDefault(); // Don't submit the form
        event.stopPropagation(); // retargetEvents would otherwise see it
        if (confirmDisabled) {
            return;
        }
        setSubmitting(true);
        try {
            await onConfirm({ name: name.trim(), description });
        }
        finally {
            setSubmitting(false);
        }
        onClose === null || onClose === void 0 ? void 0 : onClose();
    }, [onConfirm, onClose, name, description, confirmDisabled]);
    const onKeyDown = Object(react["useCallback"])(event => {
        var _a;
        if (((_a = event.nativeEvent) === null || _a === void 0 ? void 0 : _a.isComposing) && ['Enter', 'Escape'].includes(event.key)) {
            // Ignore Enter and Escape keydown during IME interaction.
            event.stopPropagation();
        }
        else if (event.key === 'Escape' && onClose) {
            event.stopPropagation();
            onClose();
        }
    }, [onClose]);
    return (react_default.a.createElement(react_default.a.Fragment, null,
        react_default.a.createElement(Heading_default.a, { className: CreateTeamWizard_default.a.createOrEditHeading, variant: "subtitle2", "data-test-id": `${testIdPrefix}__title` }, title),
        react_default.a.createElement("form", { onKeyDown: onKeyDown, className: CreateTeamWizard_default.a.workspaceForm, onSubmit: submitForm },
            react_default.a.createElement(TeamForm_TeamForm, { app: app, name: name, onNameChange: setName, description: description, onDescriptionChange: setDescription, originalName: originalName, originalDescription: originalDescription, setValid: setValid, showInfoBox: showInfoBox, testIdPrefix: testIdPrefix }),
            react_default.a.createElement("div", { className: CreateTeamWizard_default.a.formButtons },
                react_default.a.createElement(Button_default.a, { onClick: () => onClose === null || onClose === void 0 ? void 0 : onClose(), type: "button" },
                    react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "button.cancel" })),
                react_default.a.createElement(Button_default.a, { disabled: confirmDisabled, type: "submit", variant: "cta" }, confirmLabel)))));
}

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/components/ErrorDialog.tsx
var ErrorDialog = __webpack_require__("vQKl");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/images/ColorBox.svg
function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}


/* harmony default export */ var ColorBox = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", _extends({
  viewBox: "0 0 48 48"
}, props), /*#__PURE__*/react_default.a.createElement("rect", {
  x: "2",
  y: "2",
  rx: "11",
  ry: "11",
  width: "44",
  height: "44"
})));
// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/styles/TextfieldWithRealTimeError.css
var TextfieldWithRealTimeError = __webpack_require__("aloU");
var TextfieldWithRealTimeError_default = /*#__PURE__*/__webpack_require__.n(TextfieldWithRealTimeError);

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/components/TextfieldWithRealTimeError.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2022 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/







function TextfieldWithRealTimeError_TextfieldWithRealTimeError(props) {
    const { ariaLabel, disabled, inputRef, name, onClick, placeholder, testIdPrefix, ...rest } = props;
    return (react_default.a.createElement(NameInputLengthValidation, Object.assign({}, rest, { disabled: disabled, name: name, testIdPrefix: testIdPrefix }), inputProps => (react_default.a.createElement(components_Textfield["a" /* default */], Object.assign({}, inputProps, { className: classnames_default()(TextfieldWithRealTimeError_default.a.nameTextfield, UXPUtils["a" /* default */].usingUXP() && TextfieldWithRealTimeError_default.a.UXP, Host["a" /* default */].InAI && TextfieldWithRealTimeError_default.a.AI, 'globalSpacesTextfield'), ref: inputRef, value: name, autoFocus: true, quiet: true, placeholder: placeholder, "aria-label": ariaLabel, onClick: onClick, disabled: disabled, "data-test-id": `${testIdPrefix}__name` })))));
}

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/components/SpaceAccess.tsx
var SpaceAccess = __webpack_require__("BzLU");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/styles/ProjectInfoDialog.css
var styles_ProjectInfoDialog = __webpack_require__("plcw");
var ProjectInfoDialog_default = /*#__PURE__*/__webpack_require__.n(styles_ProjectInfoDialog);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/styles/CreateOrEditDialog.css
var CreateOrEditDialog = __webpack_require__("D0EX");
var CreateOrEditDialog_default = /*#__PURE__*/__webpack_require__.n(CreateOrEditDialog);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/actions/beforeOp.ts + 2 modules
var beforeOp = __webpack_require__("Ku5u");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/components/QuotaExceededDialog.tsx
var QuotaExceededDialog = __webpack_require__("juov");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/quotaExceedCheck.ts
var quotaExceedCheck = __webpack_require__("Rf71");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/components/ProjectInfoDialog.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2020 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
var ProjectInfoDialog_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;
};
var ProjectInfoDialog_metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var ProjectInfoDialog_a;
































var Modes;
(function (Modes) {
    Modes["create"] = "create";
    Modes["edit"] = "edit";
    Modes["view"] = "view";
})(Modes || (Modes = {}));
let ProjectInfoDialog_ProjectInfoDialog = class ProjectInfoDialog extends react["Component"] {
    constructor(props) {
        var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
        super(props);
        this.nameInput = Object(react["createRef"])();
        this.savedName = (_b = (_a = this.props.project) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : '';
        this.savedDescription = (_d = (_c = this.props.project) === null || _c === void 0 ? void 0 : _c.description) !== null && _d !== void 0 ? _d : '';
        this.savedColor = (_f = (_e = this.props.project) === null || _e === void 0 ? void 0 : _e.color) !== null && _f !== void 0 ? _f : utils_constants["N" /* defaultProjectColor */].value;
        this.savedAccess = (_h = (_g = this.props.project) === null || _g === void 0 ? void 0 : _g.access) !== null && _h !== void 0 ? _h : SpaceAccess["c" /* AccessTypes */].team;
        this.name = this.savedName;
        this.description = this.savedDescription;
        this.color = (_k = (_j = this.props.project) === null || _j === void 0 ? void 0 : _j.color.toLocaleUpperCase()) !== null && _k !== void 0 ? _k : utils_constants["N" /* defaultProjectColor */].value.toLocaleUpperCase();
        this.inProgress = false;
        this.access = this.savedAccess;
        this.exceedDescriptionLength = false;
        this.onConfirm = async () => {
            var _a, _b, _c;
            let subtype;
            const { project, onClose, browseSession } = this.props;
            const { projectList, intl } = browseSession;
            const { toastManager, showModal } = browseSession.projectsClient;
            if (!this.canEdit) {
                onClose === null || onClose === void 0 ? void 0 : onClose();
                return;
            }
            if (!this.isValidName) {
                return;
            }
            switch (this.editMode) {
                case Modes.create:
                    subtype = ProjectAnalytics["d" /* Subtype */].create;
                    break;
                case Modes.edit:
                    subtype = ProjectAnalytics["d" /* Subtype */].save;
                    break;
            }
            if (subtype) {
                ProjectAnalytics["g" /* default */].fireEvent({
                    ...ProjectAnalytics["g" /* default */].scaffoldEvent(this.subcategory, subtype, ProjectAnalytics["e" /* Type */].click, this.workflow),
                    content: this.projectInfo,
                });
            }
            this.name = this.name.trim();
            this.description = this.description.trim();
            let start, elapsedTime, evtType, evtError, projectId, projectName;
            try {
                this.inProgress = true;
                // create new space
                if (!project) {
                    const teamId = this.teamId;
                    start = performance.now();
                    const newProject = await projectList.createProject(teamId, this.name, this.description, this.color, this.access);
                    onClose === null || onClose === void 0 ? void 0 : onClose();
                    elapsedTime = performance.now() - start;
                    evtType = ProjectAnalytics["e" /* Type */].success;
                    projectId = newProject.id;
                    projectName = newProject.name;
                    toastManager.addToast(intl.formatMessage({ id: 'projectInfo.toast.success.new' }, { name: this.name }), {
                        closable: true,
                        variant: 'success',
                    });
                    browseSession.navigateAndNotify(new Route["e" /* SpaceRoute */](newProject.id, { teamId }));
                }
                else {
                    const hasAccessChange = this.access !== project.access;
                    // edit space info
                    start = performance.now();
                    if (hasAccessChange ||
                        this.name !== project.name ||
                        this.description !== project.description ||
                        this.color !== project.color) {
                        let documents = Object(projectToDocument["a" /* default */])([project]);
                        const filteredElements = await Object(beforeOp["a" /* default */])(documents, browseSession, Host["a" /* default */].onBeforeRename);
                        if (!filteredElements.length) {
                            return;
                        }
                        await project.updateProject({
                            name: this.name,
                            description: this.description,
                            color: this.color,
                        });
                        if (hasAccessChange) {
                            await project.updateAccess(this.access);
                            // Manually reload due to lack of SAM support
                            project.reloadData();
                        }
                        // Notify the host so it can react after the operation completes successfully.
                        Object(afterOp["a" /* default */])((_a = documents[0]) === null || _a === void 0 ? void 0 : _a.docUriForHost, Host["a" /* default */].onAfterRename);
                    }
                    elapsedTime = performance.now() - start;
                    evtType = ProjectAnalytics["e" /* Type */].success;
                    projectId = project.id;
                    projectName = project.name;
                    toastManager.addToast(intl.formatMessage({ id: 'projectInfo.toast.success.update' }, { name: this.name }), {
                        closable: true,
                        variant: 'success',
                    });
                }
                onClose === null || onClose === void 0 ? void 0 : onClose();
            }
            catch (error) {
                elapsedTime = performance.now() - start;
                evtType = ProjectAnalytics["e" /* Type */].error;
                evtError = { event: {} };
                Object(ProjectAnalytics["h" /* fillError */])(evtError, error);
                const samErr = Object(SpacesError["h" /* maybeSamHttpError */])(error);
                if (samErr && (samErr === null || samErr === void 0 ? void 0 : samErr.code) !== utils_constants["B" /* SAMErrorCode */].CONFLICT) {
                    const isQuotaFull = await Object(quotaExceedCheck["a" /* isQuotaExceededError */])(samErr);
                    if (isQuotaFull) {
                        showModal(react_default.a.createElement(QuotaExceededDialog["a" /* default */], { app: browseSession, variant: "create" }));
                    }
                    else {
                        const message = intl.formatMessage({ id: 'projectInfo.toast.error.generic' }, { create: !project });
                        toastManager.addToast(message, {
                            closable: true,
                            variant: 'error',
                        });
                    }
                    onClose === null || onClose === void 0 ? void 0 : onClose();
                }
                else if (Object(SpacesError["j" /* normalizeSamError */])(samErr) === utils_constants["B" /* SAMErrorCode */].ACCESS_DENIED ||
                    Object(SpacesError["j" /* normalizeSamError */])(samErr) === utils_constants["B" /* SAMErrorCode */].NOT_FOUND) {
                    await browseSession.refreshCurrentSpace();
                    onClose === null || onClose === void 0 ? void 0 : onClose();
                }
                else {
                    // Show duplicates without closing on conflict
                    projectList.cacheUniqueName(this.name.toLowerCase(), this.teamId);
                }
            }
            finally {
                this.inProgress = false;
                const scaffoldEvent = ProjectAnalytics["g" /* default */].scaffoldEvent(ProjectAnalytics["c" /* Subcategory */].Space, subtype === ProjectAnalytics["d" /* Subtype */].create ? ProjectAnalytics["d" /* Subtype */].create : ProjectAnalytics["d" /* Subtype */].update, evtType, ProjectAnalytics["f" /* Workflow */].Spaces);
                // Dunamis Analytics
                ProjectAnalytics["g" /* default */].fireEvent({
                    event: {
                        ...scaffoldEvent.event,
                        ...evtError === null || evtError === void 0 ? void 0 : evtError.event,
                        value: elapsedTime,
                        org_guid: (_b = User["a" /* default */].getTeamFromId(this.teamId)) === null || _b === void 0 ? void 0 : _b.repositoryID,
                        context_guid: null,
                    },
                    content: {
                        id: projectId,
                        name: projectName,
                        author: (_c = User["a" /* default */].getTeamFromId(this.teamId)) === null || _c === void 0 ? void 0 : _c.collaboratorRole,
                    },
                    ui: {
                        view_type: this.workflow,
                    },
                    custom: {
                        team_id: this.teamId,
                    },
                });
            }
        };
        this.onUpdateColor = (color) => {
            this.color = color;
        };
        this.onUpdateAccess = (value) => {
            this.access = value;
        };
        this.onCancel = () => {
            var _a, _b;
            let subtype;
            switch (this.editMode) {
                case Modes.create:
                    subtype = ProjectAnalytics["d" /* Subtype */].cancel;
                    break;
                case Modes.edit:
                    subtype = ProjectAnalytics["d" /* Subtype */].cancel;
                    break;
                case Modes.view:
                    subtype = ProjectAnalytics["d" /* Subtype */].close;
                    break;
            }
            if (subtype) {
                ProjectAnalytics["g" /* default */].fireEvent({
                    ...ProjectAnalytics["g" /* default */].scaffoldEvent(this.subcategory, subtype, ProjectAnalytics["e" /* Type */].click, this.workflow),
                    content: this.projectInfo,
                });
            }
            (_b = (_a = this.props).onClose) === null || _b === void 0 ? void 0 : _b.call(_a);
        };
        // USS doesn't index project description (yet?),
        // fetch it once first time showing project info dialog
        const { project } = this.props;
        // allow the clients to pass another team ID for the New team workflow from the sidebar
        const teamId = this.props.teamId || (project === null || project === void 0 ? void 0 : project.teamId);
        Object(SpacesError["d" /* assert */])(Boolean(teamId), 'Expecting either a `teamId` or a `project` for the ProjectInfoDialog component.');
        this.teamId = teamId;
        // Update the description if needed.
        project === null || project === void 0 ? void 0 : project.ensureDescription().then(description => {
            this.savedDescription = description !== null && description !== void 0 ? description : '';
            this.description = description !== null && description !== void 0 ? description : '';
        });
    }
    componentDidMount() {
        const data = ProjectAnalytics["g" /* default */].scaffoldEvent(this.subcategory, ProjectAnalytics["d" /* Subtype */].modal, ProjectAnalytics["e" /* Type */].render, this.workflow);
        if ([Modes.edit, Modes.view].includes(this.editMode)) {
            Object.assign(data, { content: this.projectInfo });
        }
        ProjectAnalytics["g" /* default */].fireEvent(data);
    }
    get isUpdated() {
        return (this.access !== this.savedAccess ||
            this.name.trim() !== this.savedName ||
            this.description.trim() !== this.savedDescription ||
            this.color !== this.savedColor);
    }
    get canEdit() {
        const { browseSession, project } = this.props;
        if (browseSession.showOffline) {
            return false;
        }
        // View Space Info
        if (project) {
            return project.isEditable;
        }
        // Create Space
        if (User["a" /* default */].hasEditorRoleOnTeam(this.teamId)) {
            return true;
        }
        return false;
    }
    get colorOptions() {
        return utils_constants["U" /* projectColors */].map(color => {
            return {
                label: this.props.intl.formatMessage({ id: `color.${color.id}` }),
                value: color.value,
                icon: (react_default.a.createElement(Icon_default.a, { style: { fill: color.value }, size: "XS" },
                    react_default.a.createElement(ColorBox, { className: ProjectInfoDialog_default.a.colorBox }))),
            };
        });
    }
    get confirmDisabled() {
        if (this.canEdit) {
            // There's no team selection during edit anymore, we will have
            // the team id provided before the dialog shows up.
            return this.inProgress || !this.isValidName || !this.isUpdated || this.offline;
        }
        return false;
    }
    get editMode() {
        if (this.canEdit) {
            return this.props.project ? Modes.edit : Modes.create;
        }
        return Modes.view;
    }
    get offline() {
        return this.props.browseSession.showOffline;
    }
    get projectInfo() {
        const { project } = this.props;
        return {
            id: project === null || project === void 0 ? void 0 : project.id,
            name: project === null || project === void 0 ? void 0 : project.name,
        };
    }
    // subcategory & workflow are standard analytics event properties
    get subcategory() {
        switch (this.editMode) {
            case Modes.create:
                return ProjectAnalytics["c" /* Subcategory */].CreateProjectModal;
            case Modes.edit:
                return ProjectAnalytics["c" /* Subcategory */].ProjectInfoModalWithEdit;
            case Modes.view:
                return ProjectAnalytics["c" /* Subcategory */].ProjectInfoModalViewOnly;
        }
    }
    get workflow() {
        switch (this.editMode) {
            case Modes.create:
                return ProjectAnalytics["f" /* Workflow */].CreateProject;
            case Modes.edit:
                return ProjectAnalytics["f" /* Workflow */].ProjectInfo;
            case Modes.view:
                return ProjectAnalytics["f" /* Workflow */].ProjectInfo;
        }
    }
    projectDescriptionOnChange(text) {
        this.exceedDescriptionLength = text.length > utils_constants["R" /* maxProjectDescriptionLength */] ? true : false;
        this.description = text.substring(0, utils_constants["R" /* maxProjectDescriptionLength */]);
    }
    projectDescriptionOnClick() {
        let subtype;
        switch (this.editMode) {
            case Modes.create:
                subtype = ProjectAnalytics["d" /* Subtype */].projectDescriptionField;
                break;
            case Modes.edit:
                subtype = ProjectAnalytics["d" /* Subtype */].projectDescription;
                break;
        }
        if (subtype) {
            ProjectAnalytics["g" /* default */].fireEvent({
                ...ProjectAnalytics["g" /* default */].scaffoldEvent(this.subcategory, subtype, ProjectAnalytics["e" /* Type */].click, this.workflow),
                content: this.projectInfo,
            });
        }
    }
    projectNameOnClick() {
        let subtype;
        switch (this.editMode) {
            case Modes.create:
                subtype = ProjectAnalytics["d" /* Subtype */].projectNameField;
                break;
            case Modes.edit:
                subtype = ProjectAnalytics["d" /* Subtype */].projectName;
                break;
        }
        if (subtype) {
            ProjectAnalytics["g" /* default */].fireEvent({
                ...ProjectAnalytics["g" /* default */].scaffoldEvent(this.subcategory, subtype, ProjectAnalytics["e" /* Type */].click, this.workflow),
                content: this.projectInfo,
            });
        }
    }
    renderProjectName() {
        if (this.canEdit) {
            const placeholderMessage = this.props.intl.formatMessage({
                id: 'projectInfo.textField.placeholder',
            });
            return (react_default.a.createElement(TextfieldWithRealTimeError_TextfieldWithRealTimeError, { name: this.name, placeholder: placeholderMessage, ariaLabel: placeholderMessage, inputRef: this.nameInput, originalName: this.savedName, testIdPrefix: 'ProjectInfo', offline: this.offline, onClick: () => this.projectNameOnClick(), setName: text => {
                    this.name = text;
                }, setValid: isValidName => {
                    this.isValidName = isValidName;
                }, disabled: this.inProgress, duplicates: this.props.browseSession.projectList.getUniqueNamesByTeam(this.teamId), variant: "space", maxLength: utils_constants["S" /* maxSpaceTeamNameLength */] }));
        }
        return (react_default.a.createElement(Heading_default.a, { className: ProjectInfoDialog_default.a.nameHeading, variant: "subtitle1" }, this.name));
    }
    /**
     * Always show the team as read-only info on edit space
     */
    renderTeamSelection() {
        const { project } = this.props;
        // For MVP, new spaces will be created in the select team.
        let teamName;
        let orgName;
        if (project) {
            teamName = ((project === null || project === void 0 ? void 0 : project.teamName) || '').toLocaleUpperCase();
            orgName = ((project === null || project === void 0 ? void 0 : project.repositoryName) || '').toLocaleUpperCase();
        }
        else if (this.teamId) {
            const team = User["a" /* default */].getTeamFromId(this.teamId);
            teamName = ((team === null || team === void 0 ? void 0 : team.name) || '').toLocaleUpperCase();
            orgName = ((team === null || team === void 0 ? void 0 : team.repositoryName) || '').toLocaleUpperCase();
        }
        if (teamName) {
            // [CCPROJ-7640, CCPROJ-4224] Textfield overlay is an UXP native issue in Ps and Ai and only native view
            // can come above them. On <OverlayTrigger />, use placement `bottom` to prevent the name textfield
            // above from overlapping the tooltip.
            // https://wiki.corp.adobe.com/pages/viewpage.action?spaceKey=UXP&title=PS+UXP+Overlay+Issues
            return (react_default.a.createElement(FieldLabel_default.a, { className: ProjectInfoDialog_default.a.organizationField, position: "left", "data-test-id": "ProjectInfo__teamSelection" },
                react_default.a.createElement(OverlayTrigger_default.a, { placement: "bottom", delayShow: utils_constants["f" /* DEFAULT_TOOLTIP_DELAY */] },
                    react_default.a.createElement("span", { className: "spectrum-FieldLabel" },
                        teamName,
                        orgName && (react_default.a.createElement(react_default.a.Fragment, null,
                            react_default.a.createElement("span", { className: ProjectInfoDialog_default.a.dotSeparator }, "\u2022"),
                            orgName))),
                    react_default.a.createElement(Tooltip_default.a, { className: "spacesMetadataTooltip" },
                        react_default.a.createElement(react_default.a.Fragment, null,
                            teamName,
                            orgName && (react_default.a.createElement(react_default.a.Fragment, null,
                                react_default.a.createElement("span", { className: ProjectInfoDialog_default.a.dotSeparator }, "\u2022"),
                                orgName)))))));
        }
    }
    renderAccessSelection() {
        const { intl } = this.props;
        const options = [SpaceAccess["c" /* AccessTypes */].team, SpaceAccess["c" /* AccessTypes */].private].map(access => ({
            label: intl.formatMessage({ id: `space.access.${access}.description` }),
            value: access,
            icon: react_default.a.createElement(SpaceAccess["a" /* AccessIcon */], { access: access }),
        }));
        if (this.canEdit) {
            return (react_default.a.createElement(FieldLabel_default.a, { className: ProjectInfoDialog_default.a.accessTitle, label: intl.formatMessage({ id: 'projectInfo.access.title' }) },
                react_default.a.createElement(Select_default.a, { quiet: true, flexible: true, defaultValue: this.access, disabled: this.inProgress, onChange: this.onUpdateAccess, options: options, "data-test-id": "ProjectInfo__shareLevel", role: 'button', "aria-label": intl.formatMessage({ id: 'projectInfo.access.title' }) }),
                this.editMode === Modes.edit &&
                    this.access === SpaceAccess["c" /* AccessTypes */].private &&
                    this.savedAccess === SpaceAccess["c" /* AccessTypes */].team && (react_default.a.createElement("div", { className: ProjectInfoDialog_default.a.accessChangeWarning },
                    react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "projectInfo.access.warning" })))));
        }
    }
    renderColor() {
        const { intl } = this.props;
        if (this.canEdit) {
            return (react_default.a.createElement(Select_default.a, { quiet: true, flexible: true, disabled: this.inProgress, defaultValue: this.color, onChange: this.onUpdateColor, options: this.colorOptions, menuClassName: ProjectInfoDialog_default.a.selectSpectrumMenu, "data-test-id": "ProjectInfo__color", role: 'button', "aria-label": intl.formatMessage({
                    id: 'color.label',
                }) }));
        }
        else {
            const color = this.colorOptions.find(opt => opt.value === this.color);
            if (color) {
                return (react_default.a.createElement("div", { className: ProjectInfoDialog_default.a.colorInfo },
                    color.icon,
                    " ",
                    color.label));
            }
        }
    }
    renderProjectDescription() {
        const { intl } = this.props;
        // Show if `edit mode` or `view mode with non empty description`.
        const canShow = this.canEdit || !!this.description;
        if (!canShow) {
            return react_default.a.createElement(react_default.a.Fragment, null);
        }
        return (react_default.a.createElement(FieldLabel_default.a, { className: ProjectInfoDialog_default.a.descriptionLabel, label: react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "projectInfo.description" }) },
            react_default.a.createElement("div", { className: ProjectInfoDialog_default.a.description, "data-test-id": "ProjectInfo__description" }, this.canEdit ? (react_default.a.createElement(Textfield, { value: this.description, onChange: text => this.projectDescriptionOnChange(text), onClick: () => this.projectDescriptionOnClick(), placeholder: this.props.intl.formatMessage({
                    id: 'projectInfo.description.placeholder',
                }), disabled: this.inProgress, role: 'text field', "aria-label": intl.formatMessage({ id: 'projectInfo.description' }), validationState: this.exceedDescriptionLength ? 'invalid' : '' })) : (this.description)),
            this.exceedDescriptionLength && (react_default.a.createElement("div", { className: TextfieldWithRealTimeError_default.a.invalidMsg },
                react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "projectInfo.description.invalidLength" })))));
    }
    render() {
        const { project, intl, onClose } = this.props;
        if (project === null || project === void 0 ? void 0 : project.isReloading) {
            return react_default.a.createElement(dialogs["a" /* LoaderDialog */], null);
        }
        const lastLoadError = project === null || project === void 0 ? void 0 : project.lastReloadError;
        if (lastLoadError) {
            return (react_default.a.createElement(ErrorDialog["a" /* default */], { errorMessageId: "dialog.genericError.description", errorTitleId: "dialog.genericError.title", onClose: onClose, variant: "error" }));
        }
        const titleId = `projectInfo.title.${this.editMode}`;
        let variant;
        let confirmId;
        let cancelId;
        if (project) {
            if (this.canEdit) {
                confirmId = 'button.update';
                cancelId = 'button.cancel';
                variant = 'confirmation';
            }
            else {
                confirmId = 'button.close';
                variant = 'information';
            }
        }
        else {
            confirmId = 'button.create';
            cancelId = 'button.cancel';
            variant = 'confirmation';
        }
        return (react_default.a.createElement(Dialog["a" /* default */], { className: CreateOrEditDialog_default.a.dialog, variant: variant, confirmDisabled: this.confirmDisabled, onConfirm: this.onConfirm, onCancel: this.onCancel, confirmLabel: intl.formatMessage({ id: confirmId }), cancelLabel: cancelId && intl.formatMessage({ id: cancelId }) },
            react_default.a.createElement(Heading_default.a, { variant: "subtitle3", "data-test-id": `ProjectInfo__title` }, intl.formatMessage({ id: titleId })),
            this.renderProjectName(),
            this.renderTeamSelection(),
            this.renderColor(),
            !!Host["a" /* default */].isMVP && this.renderAccessSelection(),
            this.renderProjectDescription()));
    }
};
ProjectInfoDialog_decorate([
    mobx_module["z" /* observable */],
    ProjectInfoDialog_metadata("design:type", Object)
], ProjectInfoDialog_ProjectInfoDialog.prototype, "name", void 0);
ProjectInfoDialog_decorate([
    mobx_module["z" /* observable */],
    ProjectInfoDialog_metadata("design:type", Object)
], ProjectInfoDialog_ProjectInfoDialog.prototype, "description", void 0);
ProjectInfoDialog_decorate([
    mobx_module["z" /* observable */],
    ProjectInfoDialog_metadata("design:type", Object)
], ProjectInfoDialog_ProjectInfoDialog.prototype, "color", void 0);
ProjectInfoDialog_decorate([
    mobx_module["z" /* observable */],
    ProjectInfoDialog_metadata("design:type", String)
], ProjectInfoDialog_ProjectInfoDialog.prototype, "teamId", void 0);
ProjectInfoDialog_decorate([
    mobx_module["z" /* observable */],
    ProjectInfoDialog_metadata("design:type", Object)
], ProjectInfoDialog_ProjectInfoDialog.prototype, "inProgress", void 0);
ProjectInfoDialog_decorate([
    mobx_module["z" /* observable */],
    ProjectInfoDialog_metadata("design:type", typeof (ProjectInfoDialog_a = typeof SpaceAccess["IAccessTypes"] !== "undefined" && SpaceAccess["IAccessTypes"]) === "function" ? ProjectInfoDialog_a : Object)
], ProjectInfoDialog_ProjectInfoDialog.prototype, "access", void 0);
ProjectInfoDialog_decorate([
    mobx_module["z" /* observable */],
    ProjectInfoDialog_metadata("design:type", Object)
], ProjectInfoDialog_ProjectInfoDialog.prototype, "isValidName", void 0);
ProjectInfoDialog_decorate([
    mobx_module["z" /* observable */],
    ProjectInfoDialog_metadata("design:type", Object)
], ProjectInfoDialog_ProjectInfoDialog.prototype, "exceedDescriptionLength", void 0);
ProjectInfoDialog_ProjectInfoDialog = ProjectInfoDialog_decorate([
    index_module["e" /* observer */],
    ProjectInfoDialog_metadata("design:paramtypes", [Object])
], ProjectInfoDialog_ProjectInfoDialog);
/* harmony default export */ var components_ProjectInfoDialog = (Object(index_es["g" /* injectIntl */])(ProjectInfoDialog_ProjectInfoDialog));

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/components/teams/loadSelectedWorkspace.tsx

/**
 * Given a workspaceID, fetch the SAM.js Team. The workspaceID can be null if
 * dryRun is true, in which case the first available team will be returned.
 */
async function loadSelectedWorkspace(workspaceID, dryRun = false) {
    // Make sure teams have loaded before we pick one.
    const teams = await User["a" /* default */].getTeams();
    if (workspaceID) {
        const team = User["a" /* default */].getTeamFromId(workspaceID);
        if (!team) {
            throw new Error(`Workspace not found: ${workspaceID}`);
        }
        await team.ensureDescription();
        return team;
    }
    else if (dryRun) {
        const team = teams.items[0];
        if (!team) {
            throw new Error('No workspaces found.');
        }
        await team.ensureDescription();
        return team;
    }
    throw new Error('You must provide a workspace-id or dry-run=true.');
}

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/components/teams/LoadableEditDialog.css
var LoadableEditDialog = __webpack_require__("4s1e");
var LoadableEditDialog_default = /*#__PURE__*/__webpack_require__.n(LoadableEditDialog);

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/components/teams/LoadableEditDialog.tsx





/** A component that loads a workspace (from an ID) before rendering the Edit dialog. */
function LoadableEditDialog_LoadableEditDialog({ browseSession, workspaceID, dryRun, onConfirm, onClose, onError, }) {
    const { intl } = browseSession;
    const [team, setTeam] = Object(react["useState"])();
    Object(react["useEffect"])(() => {
        let cancelled = false; // Only use the latest request.
        loadSelectedWorkspace(workspaceID, dryRun)
            .then(loadedTeam => {
            if (!cancelled) {
                setTeam(loadedTeam);
            }
        })
            .catch(error => {
            onError(error);
            onClose === null || onClose === void 0 ? void 0 : onClose();
        });
        return () => {
            cancelled = true;
        };
    }, [workspaceID, dryRun, onError, onClose]);
    return (react_default.a.createElement("div", { className: LoadableEditDialog_default.a.component }, !team ? (react_default.a.createElement(Loading, null)) : (react_default.a.createElement(CreateOrEditTeamForm, { title: intl.formatMessage({ id: 'teamDialog.editTeam.label' }), confirmLabel: intl.formatMessage({ id: 'button.update' }), app: browseSession, originalName: team.name, originalDescription: team.description, testIdPrefix: 'EditTeamDialog', onConfirm: fields => onConfirm(team, fields), onClose: onClose, showInfoBox: true }))));
}

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/components/teams/SpaceDialogs.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/















async function onCreateTeamConfirm(browseSession, orgRepository, { name, description }) {
    const { projectsClient, intl } = browseSession;
    try {
        const team = await SharedStore["d" /* sharedStore */].spaceContext.createTeam(orgRepository, {
            name,
        });
        await team.update({ description });
        projectsClient.toastManager.addToast(intl.formatMessage({ id: 'team.create.success' }, { name }));
        return team;
    }
    catch (error) {
        Settings["b" /* settings */].logger.error(`Error calling createTeam: ${error}`);
        let intlId = 'team.create.error.generic';
        if (Object(SpacesError["j" /* normalizeSamError */])(error) === 'CONFLICT') {
            intlId = 'dialog.renameTeam.nameConflict';
        }
        projectsClient.toastManager.addToast(intl.formatMessage({
            id: intlId,
        }), {
            closable: true,
            variant: 'error',
        });
        return null;
    }
}
async function onEditTeamConfirm(browseSession, team, { name, description }) {
    const { projectsClient, intl } = browseSession;
    try {
        await team.update({ name, description });
        projectsClient.toastManager.addToast(intl.formatMessage({ id: 'team.edit.success' }, { name }));
    }
    catch (error) {
        Settings["b" /* settings */].logger.error(`Error calling editTeam: ${error}`);
        let intlId = 'team.edit.error.generic';
        if (Object(SpacesError["j" /* normalizeSamError */])(error) === 'CONFLICT') {
            intlId = 'dialog.renameTeam.nameConflict';
        }
        projectsClient.toastManager.addToast(intl.formatMessage({ id: intlId }), {
            closable: true,
            variant: 'error',
        });
    }
}
class SpaceDialogs_SpaceDialogs {
    constructor(browseSession) {
        this.browseSession = browseSession;
    }
    async createSpace(currentTeamId) {
        if (User["a" /* default */].hasEditorRoleOnTeam(currentTeamId)) {
            await this._showCreateProjectDialog(currentTeamId);
        }
        else {
            await this._showErrorDialog('projectInfo.new.noPermission.description');
        }
    }
    async createTeam(orgRepository, renderShareSheet) {
        const { projectsClient, intl } = this.browseSession;
        const onConfirm = fields => onCreateTeamConfirm(this.browseSession, orgRepository, fields);
        await projectsClient.showModal(renderShareSheet ? (react_default.a.createElement(CreateTeamWizardDialog, { app: this.browseSession, renderShareSheet: renderShareSheet, testIdPrefix: 'CreateTeamDialog', variant: "creative-cloud", onConfirm: onConfirm, onDone: (team, hasInvitedMembers) => {
                this.browseSession.navigateAndNotify(new Route["f" /* TeamRoute */](team.teamID));
                if (hasInvitedMembers) {
                    projectsClient.toastManager.addToast(intl.formatMessage({
                        id: 'createTeamWizard.inviteMembers.successToast',
                    }));
                }
            } })) : (react_default.a.createElement(dialogs["b" /* ProxyOnClose */], { element: react_default.a.createElement(CreateOrEditTeamForm, { title: intl.formatMessage({ id: 'teamDialog.createTeam.label' }), confirmLabel: intl.formatMessage({ id: 'button.create' }), app: this.browseSession, showInfoBox: true, testIdPrefix: 'CreateTeamDialog', onConfirm: async (fields) => {
                    const team = await onConfirm(fields);
                    if (team) {
                        this.browseSession.navigateAndNotify(new Route["f" /* TeamRoute */](team.teamID));
                    }
                } }) }, proxiedElement => (react_default.a.createElement(Dialog["a" /* default */], { className: CreateOrEditDialog_default.a.dialog }, proxiedElement)))));
    }
    async editTeam(team) {
        const { projectsClient, intl } = this.browseSession;
        await projectsClient.showModal(react_default.a.createElement(dialogs["b" /* ProxyOnClose */], { element: react_default.a.createElement(LoadableEditDialog_LoadableEditDialog, { browseSession: this.browseSession, onConfirm: (team, fields) => onEditTeamConfirm(this.browseSession, team, fields), workspaceID: team.id, onError: err => {
                    projectsClient.toastManager.addToast(intl.formatMessage({ id: 'team.edit.error.generic' }), {
                        closable: true,
                        variant: 'error',
                    });
                } }) }, proxiedElement => (react_default.a.createElement(Dialog["a" /* default */], { className: classnames_default()(CreateOrEditDialog_default.a.dialog, CreateOrEditDialog_default.a.noPadding) }, proxiedElement))));
    }
    async showSpaceInfo(project) {
        const { browseSession } = this;
        await browseSession.projectsClient.showModal(react_default.a.createElement(components_ProjectInfoDialog, { project: project, browseSession: browseSession }));
    }
    async _showCreateProjectDialog(teamId) {
        const { browseSession } = this;
        await browseSession.projectsClient.showModal(react_default.a.createElement(components_ProjectInfoDialog, { teamId: teamId, browseSession: browseSession }));
    }
    async _showErrorDialog(errorMessageId) {
        await this.browseSession.projectsClient.showModal(react_default.a.createElement(ErrorDialog["a" /* default */], { errorMessageId: errorMessageId }));
    }
}

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/stores/oneup/WorkingFilesFolder.ts
var WorkingFilesFolder = __webpack_require__("OyfJ");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/RequestController.ts
var RequestController = __webpack_require__("9/TN");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/OfflineController.ts
var OfflineController = __webpack_require__("XmUd");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/recentsRefreshManager.ts
var recentsRefreshManager = __webpack_require__("5rC4");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/api/adobe-content-platform/resolve.ts + 1 modules
var adobe_content_platform_resolve = __webpack_require__("Ove7");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/types/IAssetModel.ts
var IAssetModel = __webpack_require__("Z0ZO");
var IAssetModel_default = /*#__PURE__*/__webpack_require__.n(IAssetModel);

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/stores/BrowseSession.ts
var BrowseSession_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;
};
var BrowseSession_metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var BrowseSession_a, BrowseSession_b, BrowseSession_c, BrowseSession_d, BrowseSession_e, BrowseSession_f, BrowseSession_g;
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
































class BrowseSession_BrowseSession {
    constructor({ intl, productLocation, onWillNavigate, onNavigate, onDidNavigate, route, preferencesStore, showModal, showPicker, toastInterface, documentFilter, enabledTypes, compatibleTypes, onDialogStateChange, registerTour, pickerMode, onItemsSelected, coachMarkDOMPrefix, } = {}) {
        var _a, _b;
        this._productLocation = utils_constants["x" /* ProductLocation */].Projects;
        this.folderUpdateCounter = 0;
        this.disableWorkingFilesOnboarding = false;
        this.disableTeamSpacesOnboarding = false;
        this.disableCanvasesOnboarding = false;
        this.disableSaveToCloudNotification = false;
        this._forceShowFromOtherTeams = false;
        this._showOffline = !OfflineController["a" /* offlineController */].isOnline;
        this._requestController = new RequestController["a" /* default */]();
        this._browseSurfaceCount = 0;
        this._lastRefreshTime = 0;
        this._lastFolderRefreshTime = 0;
        this.jobQueueErrorHandler = (queue) => {
            const errorJobs = Array.from(queue.jobs).filter(job => job.state === 'error');
            const errors = errorJobs.map(job => job.result);
            // This is called when an action throws an error.
            this.checkFolderStatusFromErrors(errors);
        };
        this.recentsDocumentUpdated = (entry) => {
            var _a;
            Object(SpacesError["d" /* assert */])(!this.launchedFromCDP, "We don't want this to be called for UAP");
            const { requestController } = this;
            const promise = (_a = this.currentFolder) === null || _a === void 0 ? void 0 : _a.handleRecentsUpdate(entry, { requestController });
            promise === null || promise === void 0 ? void 0 : promise.catch(e => Settings["b" /* settings */].logger.error('Exception updating the recent document', e));
        };
        this.onNavigationDataBecameAvailable = () => {
            SharedStore["d" /* sharedStore */].off(SharedStore["c" /* NAVIGATION_DATA_AVAILABLE */], this.onNavigationDataBecameAvailable);
            const route = this._lastNavigatedRoute;
            if (!OfflineController["a" /* offlineController */].isOnline || !route) {
                return;
            }
            this.navigateAndNotify(route, { force: true }).catch(e => {
                Settings["b" /* settings */].logger.warn('Failed to navigate to route after navigation became available', e);
            });
        };
        this.updateOnlineStatus = async () => {
            if (OfflineController["a" /* offlineController */].isOnline) {
                const route = this._lastNavigatedRoute;
                if (!route || !SharedStore["d" /* sharedStore */].navigationDataAvailable) {
                    this._showOffline = false;
                    return;
                }
                if (this._currentFolder) {
                    await Promise.allSettled([
                        this.refreshCurrentFolderAssets(true),
                        this.refreshCurrentSpace({ refreshTimeout: 30000 }),
                        this.refreshWorkspaces(),
                    ]);
                }
                else {
                    try {
                        await this.navigateAndNotify(route, { force: true });
                    }
                    catch (e) {
                        Settings["b" /* settings */].logger.error('Error navigating after coming back online', e);
                    }
                }
                this._showOffline = false;
            }
            else {
                // No retries should continue;
                this._showOffline = true;
                // Published tab is not supported offline, navigate to default working files tab.
                if (this.currentSpacesView === Route["b" /* OneUpTabs */].Published && this.showOfflineWithFeatureFlag) {
                    const defaultTabRoute = this.sameSpaceRouteWithDetails({
                        view: Route["b" /* OneUpTabs */].Working,
                    });
                    this.navigateAndNotify(defaultTabRoute);
                }
            }
        };
        this.activeRenameState = {
            get id() {
                return this.element ? this.element.id : '';
            },
            element: undefined,
        };
        this.onSpaceDiscarded = (project, discard) => {
            // Space is discarded or permanently deleted.
            if (project === this.currentProject && discard === 'NOT_FOUND') {
                // Sometimes, discarding a space also returns 404 when we reload the data.
                // Resolve by ID fails when a space is permanently deleted.
                Object(adobe_content_platform_resolve["a" /* resolveById */])(project.id).catch(error => {
                    var _a;
                    if (((_a = Object(SpacesError["h" /* maybeSamHttpError */])(error)) === null || _a === void 0 ? void 0 : _a.response.status) === 404) {
                        project.updateSpaceStatus(true);
                    }
                });
            }
        };
        this.onSectionsDiscarded = (project, list) => {
            // Section is discarded. The empty state will show a "folder is discarded" message.
        };
        this._intl = intl;
        this._productLocation = (_a = productLocation) !== null && _a !== void 0 ? _a : utils_constants["x" /* ProductLocation */].Projects;
        this.onWillNavigate = onWillNavigate || onNavigate;
        this.onDidNavigate = onDidNavigate;
        // The order of initialization matters - projectList and library needs preferencesStore.
        this.preferencesStore = preferencesStore || new InternalPreferencesStore["a" /* default */]();
        this._readPreferences();
        /**
         * Compatible types (compatibleTypes) could be provided via the host (cdoHost.compatibleTypes)
         * or individual picker mode (pickerInfo).
         *
         * Spaces 1up (not inside UAP):
         * - Read the compatible types list from host
         * - Show compatible types filter dropdown
         * - No items should be disabled, unsupported items are redirected to their respective web domains
         * (i.e. Ps web for PSDC)
         *
         * Spaces 1up (inside UAP):
         * - Read the compatible types list from UAP or host
         * - Show compatible types filter dropdown
         * - Disable non-compatible files
         * - If compatibleTypes are set via pickerInfo, UAP will also set enabledTypes = compatibleTypes.
         * - If compatibleTypes are set via codHost, we will set enabledTypes = compatibleTypes.
         */
        const { documentFilter: cdoDocumentFilter, compatibleTypes: cdoCompatibleTypes } = ((_b = Host["a" /* default */]) === null || _b === void 0 ? void 0 : _b.cdo) || {};
        const _documentFilter = documentFilter || cdoDocumentFilter;
        const _enabledTypes = enabledTypes || (this.launchedFromCDP ? cdoCompatibleTypes : undefined);
        const _compatibleTypes = compatibleTypes || cdoCompatibleTypes;
        this.projectList = new ProjectList_ProjectList(this);
        this.libraryStore = new Library_Library(this);
        this.projectsClient = new ProjectsClient_ProjectsClient({
            intl: this._intl,
            showModal,
            showPicker,
            toastInterface,
            documentFilter: _documentFilter,
            enabledTypes: _enabledTypes,
            onDialogStateChange,
            compatibleTypes: _compatibleTypes,
        });
        this.spaceDialogs = new SpaceDialogs_SpaceDialogs(this);
        this._initCoachMarks(coachMarkDOMPrefix, registerTour);
        this.initializeCDPContext(pickerMode, onItemsSelected);
        this._lastNavigatedRoute = route;
    }
    async _readPreferences() {
        var _a, _b, _c, _d;
        const preferencesStr = await this.preferencesStore.getValue(utils_constants["c" /* CCPROJECTS_PREFERENCES */]);
        if (!preferencesStr) {
            return;
        }
        try {
            const preferences = JSON.parse(preferencesStr);
            this.disableCanvasesOnboarding = (_a = preferences.disableCanvasesOnboarding) !== null && _a !== void 0 ? _a : false;
            this.disableWorkingFilesOnboarding = (_b = preferences.disableWorkingFilesOnboarding) !== null && _b !== void 0 ? _b : false;
            this.disableTeamSpacesOnboarding = (_c = preferences.disableTeamSpacesOnboarding) !== null && _c !== void 0 ? _c : false;
            this.disableSaveToCloudNotification = (_d = preferences.disableSaveToCloudNotification) !== null && _d !== void 0 ? _d : false;
        }
        catch (_e) {
            // Ignore the error, user might have changed this value by hand.
        }
    }
    async _savePreferences() {
        await this.preferencesStore.setValue(utils_constants["c" /* CCPROJECTS_PREFERENCES */], JSON.stringify({
            disableCanvasesOnboarding: this.disableCanvasesOnboarding,
            disableWorkingFilesOnboarding: this.disableWorkingFilesOnboarding,
            disableTeamSpacesOnboarding: this.disableTeamSpacesOnboarding,
            disableSaveToCloudNotification: this.disableSaveToCloudNotification,
        }));
    }
    async setDisableWorkingFilesOnboarding(newValue) {
        this.disableWorkingFilesOnboarding = newValue;
        await this._savePreferences();
    }
    async setDisableTeamSpacesOnboarding(newValue) {
        this.disableTeamSpacesOnboarding = newValue;
        await this._savePreferences();
    }
    async setDisableCanvasesOnboarding(newValue) {
        this.disableCanvasesOnboarding = newValue;
        await this._savePreferences();
    }
    async setDisableSaveToCloudNotification(newValue) {
        this.disableSaveToCloudNotification = newValue;
        await this._savePreferences();
    }
    async browseSurfaceMounted() {
        var _a, _b;
        if (this._browseSurfaceCount < 0) {
            Settings["b" /* settings */].logger.error('[ERROR!!!] Mounted / unmounted not symmetric (browseSurfaceCount < 0 mounting)!');
        }
        if (this._browseSurfaceCount++ > 0) {
            return;
        }
        OfflineController["a" /* offlineController */].on('online', this.updateOnlineStatus);
        OfflineController["a" /* offlineController */].on('offline', this.updateOnlineStatus);
        this.projectsClient.jobMonitor.on('error', this.jobQueueErrorHandler);
        (_a = this.currentProject) === null || _a === void 0 ? void 0 : _a.on(Project["d" /* SECTIONS_DISCARDED */], this.onSectionsDiscarded);
        (_b = this.currentProject) === null || _b === void 0 ? void 0 : _b.on(Project["e" /* SPACE_DISCARDED */], this.onSpaceDiscarded);
        if (!SharedStore["d" /* sharedStore */].navigationDataAvailable) {
            SharedStore["d" /* sharedStore */].on(SharedStore["c" /* NAVIGATION_DATA_AVAILABLE */], this.onNavigationDataBecameAvailable);
        }
        if (OfflineController["a" /* offlineController */].isOnline) {
            this._requestController = new RequestController["a" /* default */]();
        }
        if (this.productLocation === utils_constants["x" /* ProductLocation */].HomeScreen) {
            SharedStore["d" /* sharedStore */].recentsRefreshManager.on(recentsRefreshManager["b" /* RECENT_DOCUMENT_UPDATED */], this.recentsDocumentUpdated);
            SharedStore["d" /* sharedStore */].recentsRefreshManager.on(recentsRefreshManager["a" /* FILE_POSSIBLY_CHANGED */], this.refreshCurrentFolderAssets);
        }
        if (this._lastNavigatedRoute) {
            await this.navigateAndNotify(this._lastNavigatedRoute);
        }
    }
    async browseSurfaceUnmounted() {
        var _a, _b;
        if (this._browseSurfaceCount <= 0) {
            Settings["b" /* settings */].logger.error('[ERROR!!!] Mounted / unmounted not symmetric (browseSurfaceCount <= 0 unmounting)!');
        }
        if (--this._browseSurfaceCount > 0) {
            return;
        }
        // If this is the last surface mounted.
        this.requestController.abort();
        SharedStore["d" /* sharedStore */].off(SharedStore["c" /* NAVIGATION_DATA_AVAILABLE */], this.onNavigationDataBecameAvailable);
        (_a = this.currentProject) === null || _a === void 0 ? void 0 : _a.off(Project["d" /* SECTIONS_DISCARDED */], this.onSectionsDiscarded);
        (_b = this.currentProject) === null || _b === void 0 ? void 0 : _b.off(Project["e" /* SPACE_DISCARDED */], this.onSpaceDiscarded);
        this.projectsClient.jobMonitor.off('error', this.jobQueueErrorHandler);
        OfflineController["a" /* offlineController */].off('online', this.updateOnlineStatus);
        OfflineController["a" /* offlineController */].off('offline', this.updateOnlineStatus);
        this.projectsClient.jobMonitor.off('error', this.jobQueueErrorHandler);
        if (this.productLocation === utils_constants["x" /* ProductLocation */].HomeScreen) {
            SharedStore["d" /* sharedStore */].recentsRefreshManager.off(recentsRefreshManager["b" /* RECENT_DOCUMENT_UPDATED */], this.recentsDocumentUpdated);
            SharedStore["d" /* sharedStore */].recentsRefreshManager.off(recentsRefreshManager["a" /* FILE_POSSIBLY_CHANGED */], this.refreshCurrentFolderAssets);
        }
        await this.doNavigate(undefined);
    }
    initializeCDPContext(pickerMode, onItemsSelected) {
        if (!this.launchedFromCDP) {
            return;
        }
        if (!pickerMode) {
            throw new SpacesError["b" /* SpacesError */]('INVALID_PARAMETER', 'CDP must always provide the picker mode.');
        }
        const { currentPickerContext } = SharedStore["d" /* sharedStore */];
        if (currentPickerContext && currentPickerContext.mode === pickerMode) {
            if (onItemsSelected) {
                currentPickerContext.onItemsSelected = onItemsSelected;
            }
            this.cdpContext = currentPickerContext;
            return;
        }
        // If we're inside CDP, but we haven't been invoked from an existing Projects instance,
        // create our own cdpContext to manage our state.
        this.cdpContext = new ProjectsCDPContext_ProjectsCDPContext({ mode: pickerMode, onItemsSelected });
    }
    get productLocation() {
        return this._productLocation;
    }
    /**
     * True if the window is small enough to require a mobile view.
     * This includes phone sizes AND unusually small desktop windows.
     * If you need to check that it's a mobile device, use `isMobileOS`.
     */
    get isMobileLayout() {
        return (Host["a" /* default */].InAssetsWeb &&
            !this.launchedFromCDP &&
            Object(viewport["b" /* getCurrentViewportSize */])() <= viewport["a" /* ViewportSize */].Mobile);
    }
    /**
     * True if the width of the widow is small enough that
     * the teams sidenav is hidden as a navigation entity
     */
    get isSidebarHidden() {
        return Host["a" /* default */].InAssetsWeb && !this.launchedFromCDP && Object(viewport["c" /* isSidebarHidden */])();
    }
    get inNativeHost() {
        return UXPUtils["a" /* default */].usingUXP() || Host["a" /* default */].InCCD;
    }
    get launchedFromCDP() {
        // If rendering the view through CDP, we will prevent one-up redirection and tabs
        return this.productLocation === utils_constants["x" /* ProductLocation */].CDP;
    }
    get intl() {
        return this._intl || SharedStore["d" /* sharedStore */].intl;
    }
    get route() {
        return this._route;
    }
    get currentTeamId() {
        var _a;
        return (_a = this._currentTeamId) !== null && _a !== void 0 ? _a : undefined;
    }
    get currentTeamIsOtherTeams() {
        return this._currentTeamId === null;
    }
    get currentSpacesView() {
        if (!this.route || this.route.type !== 'spaces') {
            return undefined;
        }
        return this.route.view;
    }
    get currentTeamsView() {
        if (!this.route || this.route.type !== 'teams') {
            return undefined;
        }
        return this.route.view;
    }
    get currentSpaceId() {
        return this._currentSpaceId;
    }
    get showFromOtherTeams() {
        const show = this._forceShowFromOtherTeams || SharedStore["d" /* sharedStore */].hasSpacesFromOtherTeamsSideBarItem;
        return show;
    }
    sameTeamRouteWithDetails(details) {
        if (this._currentTeamId === undefined) {
            throw new SpacesError["b" /* SpacesError */]('INVALID_DATA', 'sameTeamRouteWithDetails - The current team is not valid');
        }
        if (this._currentSpaceId === null) {
            return new Route["c" /* OtherTeamsRoute */](details);
        }
        return new Route["f" /* TeamRoute */](this._currentTeamId, details);
    }
    sameSpaceRouteWithDetails(details) {
        if (!this._currentSpaceId || this._currentTeamId === undefined) {
            throw new SpacesError["b" /* SpacesError */]('INVALID_DATA', 'sameSpaceRouteWithDetails - The space or team is not valid');
        }
        details = {
            ...details,
            teamId: this._currentTeamId,
        };
        return new Route["e" /* SpaceRoute */](this._currentSpaceId, details);
    }
    _initCoachMarks(coachMarkDOMPrefix, registerTour) {
        this._coachMarks = new stores_CoachMarkStore(this.preferencesStore, coachMarkDOMPrefix !== null && coachMarkDOMPrefix !== void 0 ? coachMarkDOMPrefix : '');
        if (registerTour) {
            // Let the host run the coachmarks.
            Object(CoachMarkHost["a" /* registerCoachMarkToursWithHost */])(this.intl, this._coachMarks, registerTour);
        }
        else {
            // Run our own coachmark tours.
            this._coachMarks.initDefaultTours();
        }
        createOnboardingTours(this);
    }
    get coachMarks() {
        return this._coachMarks;
    }
    async calculateTeamAndSpaceId(spaceId, folderId) {
        const { spaceContext } = SharedStore["d" /* sharedStore */];
        const controller = this.requestController;
        if (!spaceId) {
            if (!folderId) {
                throw new SpacesError["b" /* SpacesError */]('INVALID_PARAMETER', 'Expecting folder URN when spaceID is missing.');
            }
            const spaceMap = spaceContext &&
                (await controller.runWithRetry(() => spaceContext.getEnclosingSpaces([folderId])));
            const space = spaceMap === null || spaceMap === void 0 ? void 0 : spaceMap.get(folderId);
            return { teamId: space === null || space === void 0 ? void 0 : space.teamID, spaceId: space === null || space === void 0 ? void 0 : space.id };
        }
        let project;
        try {
            project = await controller.runWithRetry(() => stores_ProjectPool.loadProjectById(spaceId));
        }
        catch (error) {
            Settings["b" /* settings */].logger.error('calculateTeamAndSpaceId: ', error);
        }
        return { teamId: project === null || project === void 0 ? void 0 : project.teamId, spaceId };
    }
    get requestController() {
        return this._requestController;
    }
    resetRequestController() {
        // This will abort whatever requests are pending. Note that when we are offline, requests will throw and do not need to be aborted.
        if (SharedStore["d" /* sharedStore */].isOnline) {
            // if offline, the requests are already aborted.
            this.requestController.abort();
            this._requestController = new RequestController["a" /* default */]();
        }
    }
    get showOffline() {
        return this._showOffline;
    }
    get showOfflineWithFeatureFlag() {
        return Host["a" /* default */].useSamCpp && this.showOffline && SharedStore["d" /* sharedStore */].hasSophiaFeature('offline');
    }
    resetActiveRenameState() {
        if (this.activeRenameState.element !== undefined) {
            this.activeRenameState.element.renameEnd();
        }
        this.activeRenameState.element = undefined;
    }
    /**
     * Tracks the user starts, finishes, or cancels the renaming of an element
     * Can use the status to cancel/reset a rename that was never completed (i.e had a validation error)
     * @param element - current element engaged in renaming, resets to undefined on completion/cancel
     */
    onActiveRenameChange(element) {
        this.resetActiveRenameState();
        this.activeRenameState.element = element;
    }
    async checkFolderStatusFromErrors(errors) {
        const { currentFolder } = this;
        if (!currentFolder) {
            return;
        }
        // This is empirical - more or less the errors that we are getting
        // when various actions like upload, rename, etc.
        const needsCheck = errors.some(err => {
            const code = Object(SpacesError["f" /* maybeKnownErrorCode */])(err);
            return (code === 'NO_LINK_PATH_ERROR' || code === 'NOT_FOUND' || code === 'ACCESS_DENIED');
        });
        if (needsCheck) {
            // We are relying on the load to trigger SECTIONS_DISCARDED / SPACE_DISCARDED
            // events to navigate away from this folder or space.
            await currentFolder.load({ refreshTimeout: 1000, loadAllPages: true });
        }
    }
    updateCurrentProject(project) {
        const previousProject = this._currentProject;
        previousProject === null || previousProject === void 0 ? void 0 : previousProject.off(Project["d" /* SECTIONS_DISCARDED */], this.onSectionsDiscarded);
        previousProject === null || previousProject === void 0 ? void 0 : previousProject.off(Project["e" /* SPACE_DISCARDED */], this.onSpaceDiscarded);
        this._currentProject = project;
        if (this._browseSurfaceCount > 0) {
            project === null || project === void 0 ? void 0 : project.on(Project["d" /* SECTIONS_DISCARDED */], this.onSectionsDiscarded);
            project === null || project === void 0 ? void 0 : project.on(Project["e" /* SPACE_DISCARDED */], this.onSpaceDiscarded);
        }
    }
    async refreshWorkspaces() {
        const { bookmarkedSpaces, spacesFromOtherTeams } = SharedStore["d" /* sharedStore */];
        if (bookmarkedSpaces) {
            await Object(SAMUtils["b" /* refreshList */])(bookmarkedSpaces);
        }
        if (spacesFromOtherTeams) {
            return Object(SAMUtils["b" /* refreshList */])(spacesFromOtherTeams);
        }
    }
    async doNavigate(route, options) {
        const currentNavigationId = uuid_default()();
        this.currentNavigationId = currentNavigationId;
        let newSpaceId = undefined;
        let newTeamId = undefined;
        const controller = this.requestController;
        // Check if route is a space.
        switch (route === null || route === void 0 ? void 0 : route.type) {
            case 'teams': {
                const teamRoute = route;
                newTeamId = teamRoute.teamId;
                break;
            }
            case 'spaces': {
                const spaceRoute = route;
                newTeamId = spaceRoute.teamId;
                newSpaceId = spaceRoute.spaceId;
                break;
            }
            default:
                route = undefined;
        }
        const teamIdChanged = this._currentTeamId !== newTeamId;
        const routeBaseChanged = (options === null || options === void 0 ? void 0 : options.force) ||
            this._currentSpaceId !== newSpaceId ||
            this._currentTeamId !== newTeamId;
        Object(mobx_module["C" /* runInAction */])(() => {
            if (!route || routeBaseChanged) {
                this._currentFolder = undefined;
                this._currentTeamId = undefined;
            }
            else {
                route.hideBackButton =
                    this._route !== undefined ? this._route.hideBackButton : route.hideBackButton;
            }
            this._route = route;
            this._currentTeamId = newTeamId;
            this._currentSpaceId = newSpaceId;
        });
        if (!this._currentSpaceId) {
            this.updateCurrentProject(undefined);
            return route;
        }
        // User navigated to a new space - triggering a space update.
        let project;
        try {
            const id = this._currentSpaceId;
            project = await controller.runWithRetry(() => stores_ProjectPool.loadProjectById(id));
        }
        catch (e) {
            // If we could not find the project in the model for any reason, we route to the team.
            const redirectRoute = this._currentTeamId
                ? this.sameTeamRouteWithDetails({})
                : await this.resolveRoute(new Route["a" /* AnyTeamRoute */]());
            return await this.doNavigate(redirectRoute, options);
        }
        if (routeBaseChanged) {
            this.updateCurrentProject(project);
        }
        // SAM.js doesn't support observing invitation events, so the space list needs to be manually refreshed for new
        // projects to appear in the sidebar. This heuristic triggers a refresh when switching between workspaces or
        // clicking on 'Other workspaces'
        if (teamIdChanged) {
            this.refreshWorkspaces();
        }
        // We need both promises to finish, but Promise.all would short-circuit when the first one fails.
        const results = await Promise.all([
            routeBaseChanged
                ? this.refreshCurrentSpace({ skipAssetRefresh: true }).catch(e => {
                    return Promise.resolve(e);
                })
                : undefined,
            (async () => {
                const spaceRoute = route;
                const folder = await controller.runWithRetry(() => project.getOrInitFolder(spaceRoute.folderId));
                if (!folder.id) {
                    await controller.runWithRetry(() => folder.load());
                }
                if (controller.signal.aborted) {
                    Settings["b" /* settings */].logger.info(`Aborting in-progress navigation because another navigation already started.`);
                    return;
                }
                if (spaceRoute.hasFolder && !spaceRoute.folderId) {
                    spaceRoute.folderId = folder.id;
                }
                Object(mobx_module["C" /* runInAction */])(() => {
                    this._currentFolder = folder;
                    this.folderUpdateCounter++;
                });
            })().catch(e => {
                return Promise.resolve(e);
            }),
        ]);
        if (Object(SpacesError["e" /* isNetworkError */])(results)) {
            Settings["b" /* settings */].logger.warn('Could not update the current space due to a network error.');
            return route;
        }
        if (Object(SpacesError["f" /* maybeKnownErrorCode */])(results[0]) === 'NOT_FOUND') {
            return route;
        }
        if (this.currentNavigationId === currentNavigationId &&
            (!this._currentFolder || Object(SpacesError["f" /* maybeKnownErrorCode */])(results[1]) === 'NOT_FOUND')) {
            Settings["b" /* settings */].logger.warn('Could not update the current space, navigating to the team.');
            return await this.doNavigate(this.sameTeamRouteWithDetails({}), options);
        }
        return route;
    }
    async refreshCurrentFolderAssets(forceRefresh = false) {
        // refresh at most once per minute
        const now = Date.now();
        if (!forceRefresh && this._lastFolderRefreshTime + utils_constants["p" /* ONE_MINUTE */] >= now) {
            return;
        }
        this._lastFolderRefreshTime = now;
        // Refresh now
        // Force a reload on all loaders via MobX.
        ++this.folderUpdateCounter;
    }
    async refreshCurrentSpace(options) {
        const { refreshTimeout = 0 } = options || {};
        const now = Date.now();
        if (this._lastRefreshTime + refreshTimeout >= now) {
            return;
        }
        this._lastRefreshTime = now;
        const project = this.currentProject;
        if (!project) {
            return;
        }
        if (!(options === null || options === void 0 ? void 0 : options.skipAssetRefresh)) {
            this.refreshCurrentFolderAssets(true);
        }
        if (options === null || options === void 0 ? void 0 : options.skipSpaceRefresh) {
            return;
        }
        const controller = this.requestController;
        if (navigator.onLine) {
            try {
                await controller.runWithRetry(() => project.reloadData());
            }
            catch (err) {
                Settings["b" /* settings */].logger.warn('Failed to reload project data', err);
            }
        }
        if (project.isContributor && !project.isArchived) {
            // We only want to trigger loading the collaborators, not waiting for them to actually load.
            controller
                .runWithRetry(() => project.loadCollaborators())
                // We don't want to throw if the collaborators failed to load.
                .catch(err => Settings["b" /* settings */].logger.warn('Failed to fetch collaborators', err));
        }
    }
    async doNavigateWithWrapper(route, options) {
        var _a, _b;
        let start, elapsedTime, evtType, evtError, newRoute;
        if (this._browseSurfaceCount === 0) {
            // If no surface has been mounted yet, we don't want to navigate.
            // the navigation will be performed once the UI is attached.
            return route;
        }
        if (!SharedStore["d" /* sharedStore */].navigationDataAvailable) {
            // We cannot navigate yet. The navigation will be automatically performed
            // when the navigation data becomes available.
            return route;
        }
        // All the previous navigation sessions should stop retrying.
        this.resetRequestController();
        try {
            start = performance.now();
            newRoute = await this.doNavigate(route, options);
            elapsedTime = performance.now() - start;
            evtType = ProjectAnalytics["e" /* Type */].success;
            const privateSharedStore = SharedStore["d" /* sharedStore */];
            privateSharedStore.notifySessionNavigated(this);
        }
        catch (error) {
            elapsedTime = performance.now() - start;
            evtType = ProjectAnalytics["e" /* Type */].error;
            evtError = { event: {} };
            Object(ProjectAnalytics["h" /* fillError */])(evtError, error);
            throw error;
        }
        finally {
            if (route instanceof Route["e" /* SpaceRoute */]) {
                const scaffoldEvent = ProjectAnalytics["g" /* default */].scaffoldEvent(ProjectAnalytics["c" /* Subcategory */].Space, ProjectAnalytics["d" /* Subtype */].read, evtType, ProjectAnalytics["f" /* Workflow */].Spaces);
                const space = this.currentProject;
                // Dunamis Analytics
                ProjectAnalytics["g" /* default */].fireEvent({
                    event: {
                        ...scaffoldEvent.event,
                        ...evtError === null || evtError === void 0 ? void 0 : evtError.event,
                        value: elapsedTime,
                        org_guid: (_a = User["a" /* default */].getTeamFromId(space === null || space === void 0 ? void 0 : space.teamId)) === null || _a === void 0 ? void 0 : _a.repositoryID,
                        context_guid: null,
                    },
                    content: {
                        id: space === null || space === void 0 ? void 0 : space.id,
                        author: (_b = User["a" /* default */].getTeamFromId(space === null || space === void 0 ? void 0 : space.teamId)) === null || _b === void 0 ? void 0 : _b.collaboratorRole,
                    },
                    ui: {
                        view_type: ProjectAnalytics["f" /* Workflow */].Navigate,
                    },
                    custom: {
                        team_id: space === null || space === void 0 ? void 0 : space.teamId,
                    },
                });
            }
        }
        return newRoute;
    }
    async resolveRoute(route) {
        var _a, _b;
        if (route === undefined) {
            return;
        }
        const controller = this.requestController;
        const getTeams = async () => {
            try {
                return await controller.runWithRetry(() => User["a" /* default */].getTeams());
            }
            catch (e) {
                // Return the existing teams.
                return SharedStore["d" /* sharedStore */].teams;
            }
        };
        switch (route === null || route === void 0 ? void 0 : route.type) {
            case 'teams': {
                const teamRoute = route;
                if (teamRoute.teamId === null) {
                    return route;
                }
                if (teamRoute.teamId) {
                    // Even if teamID is not a valid ID,
                    // we want to let the YourProjects.tsx deal with the situation.
                    // It is possible that the user is pending invite to the team.
                    return route;
                }
                if (!SharedStore["d" /* sharedStore */].navigationDataAvailable) {
                    return route;
                }
                const teams = await getTeams();
                const backupTeam = (_b = (_a = teams === null || teams === void 0 ? void 0 : teams.items[0]) === null || _a === void 0 ? void 0 : _a.teamID) !== null && _b !== void 0 ? _b : null;
                if (backupTeam === null) {
                    this._forceShowFromOtherTeams = true;
                }
                teamRoute.teamId = backupTeam;
                // No other team to navigate to than From other teams, navigating to that one.
                return route;
            }
            case 'spaces': {
                const spaceRoute = route;
                const { spaceId, folderId, teamId } = spaceRoute;
                if (spaceId && teamId !== undefined) {
                    // teamId is not mandatory, but if it is provided,
                    // the navigation won't require an extra lookup.
                    return route;
                }
                const [teams, data] = await Promise.all([
                    getTeams(),
                    this.calculateTeamAndSpaceId(spaceId, folderId),
                ]);
                if (!data.teamId) {
                    // We could not determine what is the team ID of this space
                    // navigating to the first team.
                    return await this.resolveRoute(new Route["a" /* AnyTeamRoute */]());
                }
                const userIsPartOfTeam = teams === null || teams === void 0 ? void 0 : teams.items.some(element => element.id === data.teamId);
                if (!data.spaceId) {
                    return new Route["f" /* TeamRoute */](data.teamId);
                }
                spaceRoute.spaceId = data.spaceId;
                spaceRoute.teamId = userIsPartOfTeam ? data.teamId : null;
                return spaceRoute;
            }
            default:
                throw new SpacesError["b" /* SpacesError */]('INVALID_PARAMETER', 'Unknown route type');
        }
    }
    async navigate(route, options) {
        var _a;
        this._lastNavigatedRoute = route;
        route = await this.resolveRoute(route);
        if (!(options === null || options === void 0 ? void 0 : options.force) && ((_a = this.route) === null || _a === void 0 ? void 0 : _a.isSameRoute(route))) {
            return route;
        }
        return await this.doNavigateWithWrapper(route, options);
    }
    async navigateAndNotify(route, options) {
        var _a, _b, _c;
        this._lastNavigatedRoute = route;
        route = await this.resolveRoute(route);
        if (!(options === null || options === void 0 ? void 0 : options.force) && ((_a = this.route) === null || _a === void 0 ? void 0 : _a.isSameRoute(route))) {
            return route;
        }
        const newRoute = await ((_b = this.onWillNavigate) === null || _b === void 0 ? void 0 : _b.call(this, route));
        route = await this.doNavigateWithWrapper(newRoute !== null && newRoute !== void 0 ? newRoute : route, options);
        // If the code didn't navigate to a new route, then we can dispatch the event.
        // Otherwise, the inner call already sent it for us.
        await ((_c = this.onDidNavigate) === null || _c === void 0 ? void 0 : _c.call(this, route));
        // Return the current route.
        return route;
    }
    get currentProject() {
        return this._currentProject;
    }
    get currentFolder() {
        return this._currentFolder;
    }
}
BrowseSession_decorate([
    mobx_module["z" /* observable */],
    BrowseSession_metadata("design:type", typeof (BrowseSession_a = typeof Route["d" /* Route */] !== "undefined" && Route["d" /* Route */]) === "function" ? BrowseSession_a : Object)
], BrowseSession_BrowseSession.prototype, "_route", void 0);
BrowseSession_decorate([
    mobx_module["z" /* observable */],
    BrowseSession_metadata("design:type", String)
], BrowseSession_BrowseSession.prototype, "_currentSpaceId", void 0);
BrowseSession_decorate([
    mobx_module["z" /* observable */],
    BrowseSession_metadata("design:type", Object)
], BrowseSession_BrowseSession.prototype, "_currentTeamId", void 0);
BrowseSession_decorate([
    mobx_module["z" /* observable */],
    BrowseSession_metadata("design:type", Number)
], BrowseSession_BrowseSession.prototype, "folderUpdateCounter", void 0);
BrowseSession_decorate([
    mobx_module["z" /* observable */],
    BrowseSession_metadata("design:type", Object)
], BrowseSession_BrowseSession.prototype, "disableWorkingFilesOnboarding", void 0);
BrowseSession_decorate([
    mobx_module["z" /* observable */],
    BrowseSession_metadata("design:type", Object)
], BrowseSession_BrowseSession.prototype, "disableTeamSpacesOnboarding", void 0);
BrowseSession_decorate([
    mobx_module["z" /* observable */],
    BrowseSession_metadata("design:type", Object)
], BrowseSession_BrowseSession.prototype, "disableCanvasesOnboarding", void 0);
BrowseSession_decorate([
    mobx_module["z" /* observable */],
    BrowseSession_metadata("design:type", Object)
], BrowseSession_BrowseSession.prototype, "disableSaveToCloudNotification", void 0);
BrowseSession_decorate([
    mobx_module["z" /* observable */],
    BrowseSession_metadata("design:type", typeof (BrowseSession_b = typeof WorkingFilesFolder["a" /* default */] !== "undefined" && WorkingFilesFolder["a" /* default */]) === "function" ? BrowseSession_b : Object)
], BrowseSession_BrowseSession.prototype, "_currentFolder", void 0);
BrowseSession_decorate([
    mobx_module["z" /* observable */],
    BrowseSession_metadata("design:type", typeof (BrowseSession_c = typeof Project["f" /* default */] !== "undefined" && Project["f" /* default */]) === "function" ? BrowseSession_c : Object)
], BrowseSession_BrowseSession.prototype, "_currentProject", void 0);
BrowseSession_decorate([
    mobx_module["z" /* observable */],
    BrowseSession_metadata("design:type", Object)
], BrowseSession_BrowseSession.prototype, "_forceShowFromOtherTeams", void 0);
BrowseSession_decorate([
    mobx_module["z" /* observable */],
    BrowseSession_metadata("design:type", Object)
], BrowseSession_BrowseSession.prototype, "_showOffline", void 0);
BrowseSession_decorate([
    mobx_module["l" /* computed */],
    BrowseSession_metadata("design:type", Object),
    BrowseSession_metadata("design:paramtypes", [])
], BrowseSession_BrowseSession.prototype, "isMobileLayout", null);
BrowseSession_decorate([
    mobx_module["l" /* computed */],
    BrowseSession_metadata("design:type", Object),
    BrowseSession_metadata("design:paramtypes", [])
], BrowseSession_BrowseSession.prototype, "isSidebarHidden", null);
BrowseSession_decorate([
    mobx_module["l" /* computed */],
    BrowseSession_metadata("design:type", Boolean),
    BrowseSession_metadata("design:paramtypes", [])
], BrowseSession_BrowseSession.prototype, "currentTeamIsOtherTeams", null);
BrowseSession_decorate([
    mobx_module["l" /* computed */],
    BrowseSession_metadata("design:type", Object),
    BrowseSession_metadata("design:paramtypes", [])
], BrowseSession_BrowseSession.prototype, "currentSpacesView", null);
BrowseSession_decorate([
    mobx_module["l" /* computed */],
    BrowseSession_metadata("design:type", Object),
    BrowseSession_metadata("design:paramtypes", [])
], BrowseSession_BrowseSession.prototype, "currentTeamsView", null);
BrowseSession_decorate([
    mobx_module["l" /* computed */],
    BrowseSession_metadata("design:type", Object),
    BrowseSession_metadata("design:paramtypes", [])
], BrowseSession_BrowseSession.prototype, "showFromOtherTeams", null);
BrowseSession_decorate([
    mobx_module["j" /* action */].bound,
    BrowseSession_metadata("design:type", Function),
    BrowseSession_metadata("design:paramtypes", [typeof (BrowseSession_f = typeof IAssetModel_default.a !== "undefined" && IAssetModel_default.a) === "function" ? BrowseSession_f : Object]),
    BrowseSession_metadata("design:returntype", void 0)
], BrowseSession_BrowseSession.prototype, "onActiveRenameChange", null);
BrowseSession_decorate([
    mobx_module["j" /* action */].bound,
    BrowseSession_metadata("design:type", Function),
    BrowseSession_metadata("design:paramtypes", [Boolean]),
    BrowseSession_metadata("design:returntype", Promise)
], BrowseSession_BrowseSession.prototype, "refreshCurrentFolderAssets", null);
BrowseSession_decorate([
    mobx_module["j" /* action */].bound,
    BrowseSession_metadata("design:type", Function),
    BrowseSession_metadata("design:paramtypes", [typeof (BrowseSession_g = typeof IBrowseSession["ISpaceRefreshOptions"] !== "undefined" && IBrowseSession["ISpaceRefreshOptions"]) === "function" ? BrowseSession_g : Object]),
    BrowseSession_metadata("design:returntype", Promise)
], BrowseSession_BrowseSession.prototype, "refreshCurrentSpace", null);
const sBrowseSessionInternal = Symbol('browseSessionInternal');
class BrowseSessionPublic {
    constructor(options) {
        this[sBrowseSessionInternal] = new BrowseSession_BrowseSession(options);
    }
    get coachMarks() {
        return this[sBrowseSessionInternal].coachMarks;
    }
    get route() {
        return this[sBrowseSessionInternal].route;
    }
    get currentProject() {
        return this[sBrowseSessionInternal].currentProject;
    }
    get currentFolder() {
        return this[sBrowseSessionInternal].currentFolder;
    }
    get productLocation() {
        return this[sBrowseSessionInternal].productLocation;
    }
    updateCurrentSpace(options) {
        // Aliasing for now, for backwards compatibility
        return this.refreshCurrentSpace(options);
    }
    refreshCurrentSpace(options) {
        return this[sBrowseSessionInternal].refreshCurrentSpace(options);
    }
    navigate(route, options) {
        return this[sBrowseSessionInternal].navigate(route, options);
    }
    get projectsClient() {
        return this[sBrowseSessionInternal].projectsClient;
    }
    get spaceDialogs() {
        return this[sBrowseSessionInternal].spaceDialogs;
    }
    navigateAndNotify(route, options) {
        return this[sBrowseSessionInternal].navigateAndNotify(route, options);
    }
}
function getFromPublic(browseSessionPublic) {
    return browseSessionPublic[sBrowseSessionInternal];
}

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/styles/TeamsSidebar.css
var styles_TeamsSidebar = __webpack_require__("T8L5");
var TeamsSidebar_default = /*#__PURE__*/__webpack_require__.n(styles_TeamsSidebar);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/styles/colors.css
var colors = __webpack_require__("Y1fu");
var colors_default = /*#__PURE__*/__webpack_require__.n(colors);

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/components/TeamsSidebar.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2020 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
var TeamsSidebar_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;
};
var TeamsSidebar_metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
























let TeamsSidebar_TeamsSidebar = class TeamsSidebar extends react["Component"] {
    constructor() {
        super(...arguments);
        this.uiConfig = UIConfig["a" /* default */].getConfigByNamespace(this.browseSession, utils_constants["J" /* UiConfigNamespaces */].YourProjects);
        this.toggleCollapseTeam = id => {
            this.uiConfig.setTeamCollapsed(id, !this.uiConfig.isTeamCollapsed(id));
        };
        this._handleCreateTeamClick = (orgRepository) => {
            this.browseSession.spaceDialogs.createTeam(orgRepository, this.props.renderShareSheet);
        };
    }
    get browseSession() {
        const { browseSession } = this.props;
        if (browseSession instanceof BrowseSession_BrowseSession) {
            return browseSession;
        }
        return getFromPublic(browseSession);
    }
    componentDidMount() {
        this.browseSession.browseSurfaceMounted();
    }
    componentWillUnmount() {
        this.browseSession.browseSurfaceUnmounted();
    }
    get orgRepositoryToCreateTeam() {
        return SharedStore["d" /* sharedStore */].hasSophiaFeature('team-m1') && User["a" /* default */].orgRepositories[0];
    }
    isTeamExpanded(id) {
        return !this.uiConfig.isTeamCollapsed(id);
    }
    isTeamDisabled(team) {
        var _a;
        return (_a = this.browseSession.cdpContext) === null || _a === void 0 ? void 0 : _a.shouldTeamBeDisabledForMove(team);
    }
    renderOtherTeams() {
        var _a;
        const id = 'team-other';
        return (react_default.a.createElement(components_TeamsSidebarTeam, { className: classnames_default()(TeamsSidebar_default.a.TeamsSidebarSection, TeamsSidebar_default.a.TeamsSidebarTeam), key: id, isExpanded: this.isTeamExpanded(id), isDisabled: (_a = this.browseSession.cdpContext) === null || _a === void 0 ? void 0 : _a.isMoveToTeam, onToggleExpand: () => this.toggleCollapseTeam(id), browseSession: this.browseSession, onItemSelected: this.props.onItemSelected, testId: id }));
    }
    renderTeams() {
        const { teams } = SharedStore["d" /* sharedStore */];
        return ((teams === null || teams === void 0 ? void 0 : teams.items.map((team, i) => (react_default.a.createElement(components_TeamsSidebarTeam, { className: classnames_default()(TeamsSidebar_default.a.TeamsSidebarSection, TeamsSidebar_default.a.TeamsSidebarTeam), key: `team-${i}`, isExpanded: this.isTeamExpanded(team.teamID), isDisabled: this.isTeamDisabled(team), onToggleExpand: this.toggleCollapseTeam, onItemSelected: this.props.onItemSelected, browseSession: this.browseSession, team: team, testId: `team-${i}` })))) || []);
    }
    getSidebarMessage(status) {
        const { navigationDataAvailable } = SharedStore["d" /* sharedStore */];
        if (status === 'hasSpaces' && navigationDataAvailable) {
            // Don't display any message if we have spaces, the sidebar should be renderable soon and we want to avoid flickering
            return null;
        }
        const wrap = content => react_default.a.createElement("div", { className: TeamsSidebar_default.a.sidebarMessage }, content);
        if (status === 'pending' ||
            status === 'loading' ||
            (!navigationDataAvailable && status === 'hasSpaces')) {
            return wrap(react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "teamsSidebarTeam.message.loading" }));
        }
        if (status === 'noSpaces') {
            return wrap(react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "teamsSidebarTeam.message.noSpaces" }));
        }
        if (status === 'offline') {
            return wrap(react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "teamsSidebarTeam.message.offline" }));
        }
        // For status = 'error' or unknown, show error message
        return wrap(react_default.a.createElement(react_default.a.Fragment, null,
            react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "teamsSidebarTeam.message.error" }),
            react_default.a.createElement(Link_default.a, { className: TeamsSidebar_default.a.sidebarHeadingLearnMore, onClick: () => {
                    SharedStore["d" /* sharedStore */].refreshContent().catch(e => {
                        Settings["b" /* settings */].logger.warn('Failed refreshing content from sidebar error message.', e);
                        SentryUtils["a" /* sentryUtils */].captureException(e, {
                            tags: {
                                'action.error': 'refresh-teams-sidebar',
                            },
                        });
                    });
                } },
                react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "button.retry" }))));
    }
    render() {
        const { className } = this.props;
        const { intl, launchedFromCDP } = this.browseSession;
        const learnMoreUrl = Object(urls["j" /* localizedGoUrl */])(urls["b" /* LEARN_MORE_COLLAB_BETA */], intl.appLanguage || 'en');
        const { status, theme, useDarkestPaletteForDark, hasTeamsLoaded, hasOtherTeamsLoaded, navigationDataAvailable, } = SharedStore["d" /* sharedStore */];
        const orgRepositoryToCreateTeam = !launchedFromCDP
            ? this.orgRepositoryToCreateTeam
            : undefined;
        // TODO: remove once HS supports true dark
        const _theme = theme === 'dark' && useDarkestPaletteForDark ? 'darkest' : theme;
        return (react_default.a.createElement(index_es["e" /* IntlProvider */], { locale: intl.locale, messages: intl.messages },
            react_default.a.createElement("div", { className: colors_default.a[theme] },
                react_default.a.createElement(Heading_default.a, { key: "section-break", size: 5, className: TeamsSidebar_default.a.sidebarHeading, "data-test-id": "TeamsSidebar__Heading" },
                    react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "teamsSidebarTeam.header.teams" }),
                    !launchedFromCDP && (react_default.a.createElement(OverlayTrigger_default.a, { placement: 'right' },
                        react_default.a.createElement(Button_default.a, { className: TeamsSidebar_default.a.sidebarHeadingInfoIcon, variant: "tool", icon: react_default.a.createElement(Info_default.a, { size: "S" }), "data-test-id": "TeamsSidebar__HeadingInfo" }),
                        react_default.a.createElement(Popover_default.a, { trapFocus: true, className: classnames_default()(TeamsSidebar_default.a.sidebarHeadingInfoPopover, {
                                [TeamsSidebar_default.a.darkThemeWorkaround]: _theme === 'dark',
                                [TeamsSidebar_default.a.darkestThemeWorkaround]: _theme === 'darkest',
                            }) },
                            react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "teamsSidebarTeam.header.previewCopy" }),
                            react_default.a.createElement(Link_default.a, { className: TeamsSidebar_default.a.sidebarHeadingLearnMore, target: "_blank", href: learnMoreUrl },
                                react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "teamsSidebarTeam.header.previewLearnMoreText" })))))),
                orgRepositoryToCreateTeam && (react_default.a.createElement("div", { className: TeamsSidebar_default.a.createTeamCoachMarkAnchor },
                    react_default.a.createElement(CoachMarks["b" /* SpacesCoachMark */], { className: TeamsSidebar_default.a.createTeamCoachMark, browseSession: this.browseSession, tourId: "admin" }),
                    react_default.a.createElement(Button_default.a, { className: TeamsSidebar_default.a.sidebarCreateTeamButton, label: intl.formatMessage({
                            id: 'teamsSidebar.newTeamButton',
                        }), icon: react_default.a.createElement(Add_default.a, null), quiet: true, variant: "secondary", role: 'button', "aria-label": intl.formatMessage({
                            id: 'teamsSidebar.newTeamButton',
                        }), "data-test-id": "TeamsSidebar__action.newTeam", onClick: () => this._handleCreateTeamClick(orgRepositoryToCreateTeam) }))),
                react_default.a.createElement("section", { className: classnames_default()(TeamsSidebar_default.a.TeamsSidebar, className), "data-test-id": "TeamsSidebar" },
                    hasTeamsLoaded && this.renderTeams(),
                    hasOtherTeamsLoaded &&
                        this.browseSession.showFromOtherTeams &&
                        this.renderOtherTeams(),
                    this.getSidebarMessage(status)))));
    }
};
TeamsSidebar_decorate([
    mobx_module["l" /* computed */],
    TeamsSidebar_metadata("design:type", Object),
    TeamsSidebar_metadata("design:paramtypes", [])
], TeamsSidebar_TeamsSidebar.prototype, "browseSession", null);
TeamsSidebar_TeamsSidebar = TeamsSidebar_decorate([
    index_module["e" /* observer */]
], TeamsSidebar_TeamsSidebar);
/* harmony default export */ var components_TeamsSidebar = (TeamsSidebar_TeamsSidebar);

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/components/Header.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2020 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
var Header_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;
};












const defaultProps = {
    viewType: 'projects',
};
const typeTitle = new Map([
    ['libraries', 'yourLibraries.title'],
    ['projects', 'yourProjects.title'],
    ['teamLibraries', 'yourLibraries.title'],
]);
let Header_Header = class Header extends react["Component"] {
    constructor() {
        super(...arguments);
        this.overlayRef = react_default.a.createRef();
    }
    getPageHeader() {
        return typeTitle.get(this.props.viewType);
    }
    getTeamMetadata(currentTeam) {
        const { currentTeamIsOtherTeams } = this.props.browseSession;
        const team = currentTeam && currentTeam.name ? currentTeam.name : '';
        const organization = currentTeam && currentTeam.repositoryName
            ? currentTeam.repositoryName.toLocaleUpperCase()
            : '';
        /* Display the team name, if it's available, otherwise display the other teams header*/
        return team ? (react_default.a.createElement(OverlayTrigger_default.a, { trigger: "hover", placement: "right" },
            react_default.a.createElement("div", null,
                react_default.a.createElement("div", { className: Header_default.a.team }, team),
                organization && (react_default.a.createElement("div", { className: Header_default.a.teamOrg, "data-test-id": "Header__teamOrg" }, organization))),
            react_default.a.createElement(Tooltip_default.a, null,
                react_default.a.createElement(react_default.a.Fragment, null,
                    team.toLocaleUpperCase(),
                    organization && (react_default.a.createElement(react_default.a.Fragment, null,
                        react_default.a.createElement("span", { className: Header_default.a.dotSeparator }, "\u2022"),
                        organization)))))) : (currentTeamIsOtherTeams && react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: 'team.header.other.teams' }));
    }
    getTeamOverlayTrigger(children) {
        return (react_default.a.createElement(OverlayTrigger_default.a, { trigger: ['click'], placement: "bottom", ref: this.overlayRef },
            react_default.a.createElement("div", { className: Header_default.a.overlayTitleContainer },
                children,
                react_default.a.createElement(ChevronDown_default.a, null)),
            react_default.a.createElement(Popover_default.a, null,
                react_default.a.createElement(components_TeamsSidebar, { onItemSelected: () => {
                        this.overlayRef.current.hide();
                    }, browseSession: this.props.browseSession, renderShareSheet: this.props.renderShareSheet }))));
    }
    getTitleContainer(isTeamSpaces, currentTeam) {
        const { hideHeader, mobile, showInlineSpinner, browseSession } = this.props;
        const { isSidebarHidden } = browseSession;
        const teamMeta = isTeamSpaces ? (this.getTeamMetadata(currentTeam)) : (react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: this.getPageHeader() }));
        if (!(hideHeader || mobile)) {
            const titleContainer = (react_default.a.createElement("div", { className: Header_default.a.titleContainer },
                react_default.a.createElement("h1", { className: Header_default.a.name, tabIndex: 0, "data-test-id": "Header__Name" }, teamMeta),
                showInlineSpinner && react_default.a.createElement(Wait_default.a, { size: "S", className: Header_default.a.inlineSpinner })));
            if (isSidebarHidden && isTeamSpaces) {
                return this.getTeamOverlayTrigger(titleContainer);
            }
            return titleContainer;
        }
    }
    render() {
        var _a;
        const { InCDP, hideHeader, children, mobile, viewType, browseSession } = this.props;
        const isTeamSpaces = viewType === 'projects' || viewType === 'teamLibraries';
        const { currentTeamId } = browseSession;
        const currentTeam = (currentTeamId && ((_a = SharedStore["d" /* sharedStore */].teams) === null || _a === void 0 ? void 0 : _a.items.find(team => team.id === currentTeamId))) ||
            undefined;
        return (react_default.a.createElement("div", { className: classnames_default()(Header_default.a.header, {
                [Header_default.a.InCDP]: InCDP,
                [Header_default.a.mobile]: mobile,
                [Header_default.a.withTeamOrg]: isTeamSpaces && !!(currentTeam === null || currentTeam === void 0 ? void 0 : currentTeam.repositoryName),
            }) },
            !(hideHeader || mobile) && this.getTitleContainer(isTeamSpaces, currentTeam),
            children));
    }
};
Header_Header.defaultProps = defaultProps;
Header_Header = Header_decorate([
    index_module["e" /* observer */]
], Header_Header);
/* harmony default export */ var components_Header = (Header_Header);

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/utils/launchOneUp.ts
function launchOneUp(project, routeAction, fallback) {
    // We dont want to display the project oneup for a project version higher
    // than we support. Display a dialog instead with required information
    if (project.isSupportedProject) {
        routeAction();
    }
    else if (fallback) {
        fallback();
    }
}

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/Edit/index.js
var Edit = __webpack_require__("C+dZ");
var Edit_default = /*#__PURE__*/__webpack_require__.n(Edit);

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/actions/editTeam.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2022 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/



function editTeam({ app, team }) {
    return {
        id: 'editTeam',
        icon: react_default.a.createElement(Edit_default.a, null),
        name: react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "button.editTeam" }),
        onClick: async () => {
            app.spaceDialogs.editTeam(team);
        },
    };
}

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/Delete/index.js
var Delete = __webpack_require__("5/H/");
var Delete_default = /*#__PURE__*/__webpack_require__.n(Delete);

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/actions/archiveTeam.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2022 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/






function archiveTeam({ app, team }) {
    return {
        id: 'archiveTeam',
        icon: react_default.a.createElement(Delete_default.a, null),
        name: react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "button.archiveTeam" }),
        onClick: async () => {
            try {
                app.projectsClient.showModal(react_default.a.createElement(ConfirmationDialog["a" /* default */], { onConfirm: async () => {
                        await team.archive();
                        app.navigateAndNotify(new Route["a" /* AnyTeamRoute */]());
                        app.projectsClient.toastManager.addToast(app.intl.formatMessage({ id: 'team.archive.success' }, { count: 1 }));
                    }, actionType: "archiveTeam", confirmLabel: "button.archiveTeam", variant: "destructive" }));
            }
            catch (error) {
                Settings["b" /* settings */].logger.error(`Error calling archiveTeam: ${error}`);
                app.projectsClient.toastManager.addToast(app.intl.formatMessage({ id: 'team.archive.error.generic' }, { count: 1 }), {
                    closable: true,
                    variant: 'error',
                });
            }
        },
    };
}

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/images/Invite.svg
var Invite = __webpack_require__("DnpN");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/styles/TeamSpaces.css
var TeamSpaces = __webpack_require__("APY1");
var TeamSpaces_default = /*#__PURE__*/__webpack_require__.n(TeamSpaces);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/interfaces/LibraryInterfaces.ts
var LibraryInterfaces = __webpack_require__("9psB");

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/DropdownButton/index.js
var DropdownButton = __webpack_require__("6y7h");
var DropdownButton_default = /*#__PURE__*/__webpack_require__.n(DropdownButton);

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/Filter/index.js
var Filter = __webpack_require__("H7fZ");
var Filter_default = /*#__PURE__*/__webpack_require__.n(Filter);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Menu/index.js
var Menu = __webpack_require__("kzNO");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/components/teams/LibrariesFilterDropdownButton.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/






function LibrariesFilterDropdownButton({ activeFilter, onFilter }) {
    const filterOptions = Object.keys(LibraryInterfaces["d" /* LibraryFilterValues */]);
    return (react_default.a.createElement(DropdownButton_default.a, { icon: react_default.a.createElement(Filter_default.a, null) }, filterOptions.map(filter => {
        const filterValue = LibraryInterfaces["d" /* LibraryFilterValues */][filter];
        return (react_default.a.createElement(Menu["MenuItem"], { key: filter, value: filterValue, label: react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: `team.libraries.filter.${filterValue}` }), selected: filterValue === activeFilter, onClick: () => onFilter === null || onFilter === void 0 ? void 0 : onFilter(filterValue) }));
    })));
}

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/components/Offline.tsx + 1 modules
var Offline = __webpack_require__("86OP");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/SortDropdown.tsx
var SortDropdown = __webpack_require__("qv4D");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/components/HeaderAction.tsx
var HeaderAction = __webpack_require__("BGxO");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/styles/TeamsSubHeader.css
var styles_TeamsSubHeader = __webpack_require__("wk5Q");
var TeamsSubHeader_default = /*#__PURE__*/__webpack_require__.n(styles_TeamsSubHeader);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/components/header/SortDropdownButton.tsx
var SortDropdownButton = __webpack_require__("+K6B");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/components/header/ListGridToggleButton.tsx
var ListGridToggleButton = __webpack_require__("+BsC");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/components/teams/TeamsSubHeader.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
/* eslint-disable max-classes-per-file */
var TeamsSubHeader_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;
};









let TeamsSubHeader_TeamsSubHeader = class TeamsSubHeader extends react["Component"] {
    constructor() {
        super(...arguments);
        this.createHeaderAction = (action, key) => {
            const { selectionStore, project } = this.props;
            return (react_default.a.createElement(HeaderAction["a" /* default */], Object.assign({}, action, { getDisabledTooltipMsgId: () => 'tooltip.offline.general', iconOnly: action.iconOnly, "data-test-id": action.dataTestId || `HeaderAction__${action.id}`, onClick: (event, ingest) => {
                    action.onClick && action.onClick(event, undefined, undefined, ingest);
                    if (!action.persistSelection) {
                        selectionStore && selectionStore.clear();
                    }
                }, key: key, value: action.id })));
        };
        this.createHeaderCDOAction = (action, key, iconOnly) => {
            const { selectionStore } = this.props;
            return (react_default.a.createElement(HeaderAction["a" /* default */], Object.assign({}, action, { name: react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: action.label }), iconOnly: iconOnly, "data-test-id": `HeaderAction__${action.value}`, onClick: async () => {
                    await action.execute((selectionStore === null || selectionStore === void 0 ? void 0 : selectionStore.selectedElements) || []);
                    selectionStore === null || selectionStore === void 0 ? void 0 : selectionStore.clear();
                }, key: key, value: action.label })));
        };
    }
    renderActionsAndListGridToggle() {
        const { browseSession, isLoading, unselectedHeaderActions = [], showListGridToggle, showSortDropdown, viewMode, onViewModeChange, filter, activeSort, activeSortDirection, sortOptions, onSortBy, } = { ...this.props };
        // No HeaderActionList grouping here. Only entries are either New Space / New Library & Browse All libraries
        let headerActions = unselectedHeaderActions.map(this.createHeaderAction);
        if (!isLoading()) {
            return (react_default.a.createElement("div", { className: TeamsSubHeader_default.a.rightSection },
                headerActions,
                react_default.a.createElement("div", { className: classnames_default()(TeamsSubHeader_default.a.filterContainer, {
                        [TeamsSubHeader_default.a.leftSideDivider]: unselectedHeaderActions === null || unselectedHeaderActions === void 0 ? void 0 : unselectedHeaderActions.length,
                    }) },
                    filter && react_default.a.createElement("span", null, filter()),
                    showSortDropdown && (react_default.a.createElement(SortDropdownButton["a" /* default */], { disabled: this.props.disabled, activeSort: activeSort, activeSortDirection: activeSortDirection, sortOptions: sortOptions, onSortBy: onSortBy, tooltipId: browseSession.showOfflineWithFeatureFlag
                            ? 'tooltip.offline.general'
                            : undefined })),
                    showListGridToggle && (react_default.a.createElement(ListGridToggleButton["a" /* default */], { viewMode: viewMode, onViewModeChange: onViewModeChange })))));
        }
    }
    renderMobileSortAndActions() {
        const { activeSort, activeSortDirection, mobile, sortOptions, onSortBy } = this.props;
        if (!mobile) {
            return;
        }
        return (react_default.a.createElement("div", { className: classnames_default()(TeamsSubHeader_default.a.header, TeamsSubHeader_default.a.mobileSubheader) }, onSortBy && (react_default.a.createElement(SortDropdown["b" /* default */], { options: sortOptions, id: "SubHeader_SortBy", onSelect: onSortBy, sortBy: activeSort, sortDirection: activeSortDirection }))));
    }
    get inTeamLibraries() {
        return this.props.viewType === 'teamLibraries';
    }
    renderSelectionBar() {
        const { selectionStore, selectedHeaderActions, inCDP, renderLibrariesBulkActionsView } = this.props;
        const selectedHeaderData = selectedHeaderActions === null || selectedHeaderActions === void 0 ? void 0 : selectedHeaderActions.map((item) => 
        // For actions with dynamic content, use the function invocation to get itemData
        typeof item === 'function' ? item(selectionStore) : item);
        if (!inCDP) {
            if (this.inTeamLibraries) {
                return (react_default.a.createElement("div", { className: TeamsSubHeader_default.a.selectedSubHeader }, renderLibrariesBulkActionsView === null || renderLibrariesBulkActionsView === void 0 ? void 0 : renderLibrariesBulkActionsView()));
            }
            if (selectionStore && selectionStore.hasAny) {
                return (react_default.a.createElement("div", { className: TeamsSubHeader_default.a.selectedSubHeader, "data-test-id": "TeamsSubHeader__selectionCount" },
                    react_default.a.createElement("h2", null,
                        react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "project1up.subheader.selected", values: { count: selectionStore.size } })),
                    react_default.a.createElement("span", null, selectedHeaderData === null || selectedHeaderData === void 0 ? void 0 : selectedHeaderData.filter(({ isVisible, supportsMultiple }) => (supportsMultiple || selectionStore.size === 1) &&
                        isVisible(selectionStore)).map((action, index) => this.createHeaderCDOAction(action, index)))));
            }
        }
    }
    render() {
        const { selectionStore, hideHeaderWhenSelected, renderLibrariesBulkActionsView } = this.props;
        const hasSelectionsInLibraries = !!(this.inTeamLibraries && renderLibrariesBulkActionsView);
        const hasSelections = (selectionStore === null || selectionStore === void 0 ? void 0 : selectionStore.hasAny) || hasSelectionsInLibraries;
        const content = (react_default.a.createElement("div", { className: classnames_default()(TeamsSubHeader_default.a.toolbar) },
            react_default.a.createElement("div", { className: TeamsSubHeader_default.a.leftSection }),
            react_default.a.createElement("div", { className: TeamsSubHeader_default.a.rightSection }, this.renderActionsAndListGridToggle())));
        return (react_default.a.createElement("div", { className: classnames_default()(TeamsSubHeader_default.a.subheaderContainer) },
            hideHeaderWhenSelected && hasSelections ? undefined : content,
            hasSelections && this.renderSelectionBar()));
    }
};
TeamsSubHeader_TeamsSubHeader = TeamsSubHeader_decorate([
    index_module["e" /* observer */]
], TeamsSubHeader_TeamsSubHeader);
/* harmony default export */ var teams_TeamsSubHeader = (TeamsSubHeader_TeamsSubHeader);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/hooks/useIntl.ts
var useIntl = __webpack_require__("BuN4");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/images/CannotAccess.svg
function CannotAccess_extends() {
  CannotAccess_extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return CannotAccess_extends.apply(this, arguments);
}


/* harmony default export */ var CannotAccess = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", CannotAccess_extends({
  version: "1.1",
  id: "Layer_1",
  xmlns: "http://www.w3.org/2000/svg",
  xmlnsXlink: "http://www.w3.org/1999/xlink",
  x: "0",
  y: "0",
  viewBox: "0 0 200 200",
  xmlSpace: "preserve"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null, /*#__PURE__*/react_default.a.createElement("path", {
  id: "SVGID_1_",
  d: "M0 0h200v200H0z"
})), /*#__PURE__*/react_default.a.createElement("clipPath", {
  id: "SVGID_00000036959609738522695850000010421923708121336196_"
}, /*#__PURE__*/react_default.a.createElement("use", {
  xlinkHref: "#SVGID_1_",
  overflow: "visible"
})), /*#__PURE__*/react_default.a.createElement("g", {
  id: "Can_t_access_200x200",
  clipPath: "url(#SVGID_00000036959609738522695850000010421923708121336196_)"
}, /*#__PURE__*/react_default.a.createElement("g", {
  id: "Group_43",
  transform: "translate(-30 -23.687)"
}, /*#__PURE__*/react_default.a.createElement("g", {
  id: "Group_37",
  transform: "translate(31.912 150.827)"
}, /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["st2"] || "st2",
  d: "M42.8 42.5H3.3c-.9 0-1.7-.2-2.5-.7-2.4-1.4-3.2-4.4-1.8-6.8L18.7.8c.4-.8 1.1-1.4 1.8-1.8 2.4-1.4 5.5-.6 6.8 1.8L47.1 35c.4.8.7 1.6.7 2.5 0 1.3-.5 2.6-1.5 3.5-.9 1-2.2 1.5-3.5 1.5zm-21.1-40L2 36.8c-.4.7-.2 1.6.6 2.1.1.1.4.1.7.1h39.5c.4 0 .8-.2 1.1-.4.3-.3.4-.7.4-1.1 0-.3-.1-.5-.2-.8L24.3 2.5c-.4-.7-1.3-1-2.1-.5l-.5.5z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["st2"] || "st2",
  d: "M22.4 25.6c-.8 0-1.5-.7-1.5-1.5v-8.8c0-.8.7-1.5 1.5-1.5s1.5.7 1.5 1.5v8.8c0 .9-.7 1.5-1.5 1.5z"
}), /*#__PURE__*/react_default.a.createElement("circle", {
  id: "Ellipse_7",
  className: styles["st2"] || "st2",
  cx: "22.4",
  cy: "31.6",
  r: "2.4"
})), /*#__PURE__*/react_default.a.createElement("g", {
  transform: "translate(30 44)",
  id: "Group_40"
}, /*#__PURE__*/react_default.a.createElement("defs", null, /*#__PURE__*/react_default.a.createElement("path", {
  id: "SVGID_00000082345533218092642470000009400261566104797111_",
  d: "M0 0h200v148.5H0z"
})), /*#__PURE__*/react_default.a.createElement("clipPath", {
  id: "SVGID_00000019665047664139268370000008149627654672424886_"
}, /*#__PURE__*/react_default.a.createElement("use", {
  xlinkHref: "#SVGID_00000082345533218092642470000009400261566104797111_",
  overflow: "visible"
})), /*#__PURE__*/react_default.a.createElement("g", {
  id: "Group_38",
  clipPath: "url(#SVGID_00000019665047664139268370000008149627654672424886_)"
}, /*#__PURE__*/react_default.a.createElement("path", {
  id: "Path_206",
  className: styles["st4"] || "st4",
  d: "M8.9 40l16.8 22.5c.4.6.6 1.4.6 2.2v26.6c0 1.5-.3 2.7-2 2.7-1.4.1-2.2-1-2.2-2.8V73.4c0-8.5 0-8.5-5.1-15.3-5.4-7.2-10.7-14.5-16-21.8-.7-.9-1.2-1.9-.3-3.1s2-1 3.2-.5c17.8 7.4 35.7 14.8 53.5 22.2 7.3 3 14.6 6.1 21.8 9.1 1 .4 1.8 1.1 2.5 2 6.1 8 12.2 16.1 18.2 24.2.6 1.2 2 1.6 3.2 1 .1 0 .1-.1.2-.1 21.1-8.7 42.2-17.4 63.4-26 1.4-.6 2.8-1.2 4.4-1.9-1.6-1-3.3-1.7-5.1-2.3-16.8-7.1-33.7-14.1-50.6-21.1-4.4-1.8-8.9-3.7-13.3-5.6-.8-.4-1.7-.4-2.5 0C86.2 39.7 73 45.3 59.8 50.8c-2.2.9-3.6.8-4.2-.5-.7-1.4.1-2.5 2.5-3.5 13.3-5.6 26.7-11.2 40-16.8.8-.3 1.4-.8 1.9-1.5 6.2-8.5 12.5-17 18.7-25.5C120.6.3 123-.7 126.5.7c5.8 2.4 11.5 4.8 17.3 7.1 12.3 5.1 24.5 10.2 36.8 15.3l15.3 6.3c4.3 1.8 5.3 5.1 2.5 8.8-6.1 8.1-12.2 16.2-18.4 24.3-.6.8-.9 1.8-.9 2.8v46.5c0 3.5-1 4.8-4.2 6.1l-49.8 20.7-22.5 9.3c-1.5.7-3.2.7-4.8.1-9.7-3.7-19.2-7.9-28.8-11.8-3.2-1.3-6.4-2.7-9.7-4-1.3-.5-2.2-1.4-1.7-2.8.5-1.4 1.7-1.6 3-1.2 4.7 1.6 9.3 3.4 13.9 5.4 8.3 3.5 16.6 6.9 24.9 10.4.5.2 1 .1 1.5-.2 21.3-8.8 42.6-17.6 64-26.5 2.8-1.2 5.6-2.3 8.4-3.5 1.1-.3 1.8-1.3 1.6-2.3-.1-14.4 0-28.9 0-43.3 0-2 0-2-1.8-1.2-23.6 9.7-47.2 19.3-70.8 29-2.2.9-2.7.7-4.2-1.2-6.4-8.5-12.8-16.9-19.3-25.4-.7-.9-1.6-1.6-2.6-2C58 60 39.9 52.5 21.7 45c-4.2-1.7-8.4-3.5-12.6-5.3l-.2.3M123.8 4.3c-.7-.1-1 .4-1.3.9-1.8 2.5-3.6 5-5.5 7.5-4 5.5-8 11-12.1 16.5-.7 1-.7 1.4.5 1.8 1.7.6 3.4 1.4 5.1 2.1 11.3 4.7 22.6 9.3 33.8 14l30 12.6c1.6.6 1.7.5 3-.7 5.8-7.8 11.7-15.6 17.6-23.3.9-1.2.7-1.7-.6-2.2-5.2-2.1-10.4-4.3-15.6-6.5-16.5-6.8-33-13.7-49.5-20.5-1.8-.7-3.6-1.5-5.4-2.2"
}), /*#__PURE__*/react_default.a.createElement("path", {
  id: "Path_207",
  className: styles["st4"] || "st4",
  d: "M36.1 67.8c1.3.6 3.2 1.3 4.9 2 14.8 6.3 29.5 12.6 44.3 18.9.9.4 1.8.9 1.3 2.1-.5 1.1-1.4 1.2-2.5.7C68.2 84.7 52.2 77.8 36.2 71c-.5-.2-1.1-.5-1.6-.8-.6-.3-.8-1.1-.5-1.7.3-.6.8-1 2-.7"
}), /*#__PURE__*/react_default.a.createElement("path", {
  id: "Path_208",
  d: "M102.2 119.3v15.3c0 .5 0 .9-.1 1.4-.1.8-.9.9-1.5 1.1-.7.1-1-.4-1.1-.9-.1-.5-.2-1-.2-1.6v-30.5-1.1c.1-.9.5-1.6 1.6-1.6 1.2 0 1.3.8 1.3 1.7v16.2",
  fill: "currentColor"
})))))));
// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/components/YourProjects/SpacesTabContent/EmptyStateViews/EmptyFromOtherTeams.tsx




function EmptyFromOtherTeams() {
    const intl = Object(useIntl["a" /* default */])();
    const heading = intl.formatMessage({ id: 'otherTeams.emptyMessage.header' });
    const description1 = intl.formatMessage({ id: 'otherTeams.emptyMessage.description1' });
    const fromOtherTeams = intl.formatMessage({ id: 'team.header.other.teams' });
    const description2 = intl.formatMessage({ id: 'otherTeams.emptyMessage.description2' });
    return (react_default.a.createElement(EmptyState["a" /* default */], { className: "yourProjectsEmptyState", illustration: react_default.a.createElement(CannotAccess, null), description: react_default.a.createElement(react_default.a.Fragment, null,
            description1,
            react_default.a.createElement("span", { className: "bold" }, fromOtherTeams),
            description2), heading: heading }));
}

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/components/OnboardingView.tsx + 1 modules
var OnboardingView = __webpack_require__("O1lU");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/images/onboarding/S_Illu_CreateASpace.svg
function S_Illu_CreateASpace_extends() {
  S_Illu_CreateASpace_extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return S_Illu_CreateASpace_extends.apply(this, arguments);
}


/* harmony default export */ var S_Illu_CreateASpace = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_Illu_CreateASpace_extends({
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 72 72"
}, props), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["spaces_svg_icon_tint"] || "spaces_svg_icon_tint",
  d: "M38.48 42.82a.76.76 0 0 1-.75-.75V24.12a.75.75 0 1 1 1.5 0v18a.75.75 0 0 1-.75.7z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["spaces_svg_icon_tint"] || "spaces_svg_icon_tint",
  d: "M47.79 33.51H29.18a.75.75 0 0 1 0-1.5h18.61a.75.75 0 0 1 0 1.5z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["spaces_svg_icon_gray"] || "spaces_svg_icon_gray",
  d: "M11.8 33.84A5.82 5.82 0 1 1 17.62 28a5.82 5.82 0 0 1-5.82 5.84zm0-10.13A4.32 4.32 0 1 0 16.12 28a4.33 4.33 0 0 0-4.32-4.29z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["spaces_svg_icon_gray"] || "spaces_svg_icon_gray",
  d: "M56.2 18.12a5.82 5.82 0 1 1 5.8-5.81 5.82 5.82 0 0 1-5.8 5.81zM56.2 8a4.32 4.32 0 1 0 4.32 4.32A4.33 4.33 0 0 0 56.2 8z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["spaces_svg_icon_gray"] || "spaces_svg_icon_gray",
  d: "M47.79 65.51a5.82 5.82 0 1 1 5.82-5.82 5.83 5.83 0 0 1-5.82 5.82zm0-10.13a4.32 4.32 0 1 0 4.32 4.31 4.32 4.32 0 0 0-4.32-4.31z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["spaces_svg_icon_gray"] || "spaces_svg_icon_gray",
  d: "M58.1 32.75a.75.75 0 0 1-.75-.75 18.66 18.66 0 0 0-.22-2.8 17.87 17.87 0 0 0-20.42-14.82.75.75 0 0 1-.86-.62.76.76 0 0 1 .63-.86A19.34 19.34 0 0 1 58.85 32a.76.76 0 0 1-.75.75z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["spaces_svg_icon_gray"] || "spaces_svg_icon_gray",
  d: "M39.17 54.32a19.33 19.33 0 0 1-9.94-2.75.75.75 0 1 1 .77-1.28 17.85 17.85 0 0 0 25.72-8.65.76.76 0 0 1 1-.42.75.75 0 0 1 .41 1 19.26 19.26 0 0 1-17.96 12.1z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["spaces_svg_icon_gray"] || "spaces_svg_icon_gray",
  d: "M22.75 45.3a.74.74 0 0 1-.58-.27 19.32 19.32 0 0 1 2.47-27.23 19.53 19.53 0 0 1 2.48-1.8.74.74 0 0 1 1 .26.75.75 0 0 1-.26 1A17.25 17.25 0 0 0 25.6 19a17.84 17.84 0 0 0-2.28 25.12.75.75 0 0 1-.09 1.06.78.78 0 0 1-.48.12z"
})));
// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/images/MoreCreatingLessCatchingUp.svg
var MoreCreatingLessCatchingUp = __webpack_require__("heJ0");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/images/onboarding/S_Illu_InvitePeople.svg
function S_Illu_InvitePeople_extends() {
  S_Illu_InvitePeople_extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return S_Illu_InvitePeople_extends.apply(this, arguments);
}


/* harmony default export */ var S_Illu_InvitePeople = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_Illu_InvitePeople_extends({
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 72 72"
}, props), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["spaces_svg_icon_gray"] || "spaces_svg_icon_gray",
  d: "M35.83 61.36a.75.75 0 0 1 0-1.5 25.84 25.84 0 0 0 9.05-1.69.75.75 0 0 1 .54 1.41 27.49 27.49 0 0 1-9.59 1.78z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["spaces_svg_icon_gray"] || "spaces_svg_icon_gray",
  d: "M61.79 40.16h-.15a.74.74 0 0 1-.58-.89 25.78 25.78 0 0 0-38.18-27.52.75.75 0 1 1-.76-1.29 27.28 27.28 0 0 1 40.41 29.1.76.76 0 0 1-.74.6z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["spaces_svg_icon_gray"] || "spaces_svg_icon_gray",
  d: "M35.83 61.35A27.4 27.4 0 0 1 8.55 34a.75.75 0 0 1 1.5 0 25.91 25.91 0 0 0 25.78 25.85.75.75 0 0 1 0 1.5z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["spaces_svg_icon_gray"] || "spaces_svg_icon_gray",
  d: "M17.33 52.84a.75.75 0 0 1-.75-.7c0-.31-.06-1.56-.06-1.89 0-1.07.36-10.48 12.68-11.55a1 1 0 0 0 .86-1v-2.62a1 1 0 0 0-.26-.65 14.6 14.6 0 0 1-3.44-9c0-6.58 3.7-10.81 9.42-10.81s9.33 4.13 9.33 10.79a14.4 14.4 0 0 1-3.27 9 1 1 0 0 0-.28.69v2.57a1 1 0 0 0 .89 1 17.12 17.12 0 0 1 6.65 1.94.75.75 0 0 1 .3 1 .74.74 0 0 1-1 .29 15.77 15.77 0 0 0-6.11-1.76 2.54 2.54 0 0 1-2.21-2.55v-2.5a2.56 2.56 0 0 1 .64-1.66 12.89 12.89 0 0 0 2.91-8c0-5.81-2.92-9.28-7.83-9.28s-7.92 3.56-7.92 9.29a13.07 13.07 0 0 0 3.07 8 2.48 2.48 0 0 1 .63 1.62v2.59a2.5 2.5 0 0 1-2.2 2.53c-11 1-11.34 9.13-11.34 10.06 0 .3 0 1.49.06 1.79a.75.75 0 0 1-.69.8z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["spaces_svg_icon_tint"] || "spaces_svg_icon_tint",
  d: "M13.33 29a.74.74 0 0 1-.75-.75V10.4a.75.75 0 0 1 1.5 0v17.81a.75.75 0 0 1-.75.79z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["spaces_svg_icon_tint"] || "spaces_svg_icon_tint",
  d: "M22.56 19.72H4.09a.75.75 0 0 1 0-1.5h18.47a.75.75 0 1 1 0 1.5z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["spaces_svg_icon_gray"] || "spaces_svg_icon_gray",
  d: "M56.63 66.33a1.56 1.56 0 0 1-.78-.22L38 55.38a1.51 1.51 0 0 1 .29-2.73l29-9.75a.75.75 0 0 1 .92 1L58 65.46a1.48 1.48 0 0 1-.93.8 1.31 1.31 0 0 1-.44.07zm9.43-21.45l-27.28 9.19 17.85 10.76.69.31-.68-.32z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["spaces_svg_icon_gray"] || "spaces_svg_icon_gray",
  d: "M46.22 66.91a1.51 1.51 0 0 1-.5-.09 1.38 1.38 0 0 1-.9-1.3v-6.47a.75.75 0 0 1 .32-.61L67.06 43a.75.75 0 1 1 .86 1.22l-21.6 15.22v5.81l2.89-3a.75.75 0 0 1 1.06 0 .75.75 0 0 1 0 1.06l-3.05 3.12a1.35 1.35 0 0 1-1 .48zm-.09-1.47z"
})));
// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/components/YourProjects/SpacesTabContent/SpacesTabContent.css
var SpacesTabContent = __webpack_require__("nA3B");
var SpacesTabContent_default = /*#__PURE__*/__webpack_require__.n(SpacesTabContent);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/styles/EmptyStates.css
var EmptyStates = __webpack_require__("i+ue");
var EmptyStates_default = /*#__PURE__*/__webpack_require__.n(EmptyStates);

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/components/YourProjects/SpacesTabContent/EmptyStateViews/TeamHasNoSpaces.tsx













function TeamHasNoSpaces(props) {
    var _a;
    const { browseSession, inviteAction, onCreateProjectActionClick, refreshContent } = props;
    const { intl, projectList } = browseSession;
    const loadingError = projectList.hasError();
    if (loadingError) {
        return (react_default.a.createElement(EmptyState["a" /* default */], { className: "yourProjectsEmptyState", illustration: react_default.a.createElement(ErrorLoading["a" /* default */], null), description: react_default.a.createElement(react_default.a.Fragment, null,
                react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "teams1up.error.description" }),
                react_default.a.createElement(Link_default.a, { variant: 'quiet', className: SpacesTabContent_default.a.learnMore, onClick: () => {
                        refreshContent().catch(e => {
                            Settings["b" /* settings */].logger.warn('Failed refreshing content from spaces error message.', e);
                        });
                    } },
                    react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "button.retry" }))), heading: react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "teams1up.error.heading" }) }));
    }
    else {
        const canCreateSpace = browseSession.currentTeamId && ((_a = browseSession.cdpContext) === null || _a === void 0 ? void 0 : _a.allowsCreatingItems);
        if (browseSession.launchedFromCDP && !canCreateSpace) {
            return (react_default.a.createElement(EmptyState["a" /* default */], { className: "yourProjectsEmptyState", description: react_default.a.createElement(react_default.a.Fragment, null,
                    react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "team.empty.description" }),
                    react_default.a.createElement(Link_default.a, { className: SpacesTabContent_default.a.EmptyStateLearnMore, href: Object(urls["j" /* localizedGoUrl */])(urls["d" /* LEARN_MORE_SPACES */], projectList.app.intl.appLanguage || 'en'), target: "_blank" },
                        react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "popover.linkout" }))), heading: intl.formatMessage({
                    id: 'team.empty.heading',
                }), illustration: react_default.a.createElement(MoreCreatingLessCatchingUp["a" /* default */], { className: EmptyStates_default.a.illustration }) }));
        }
        return (react_default.a.createElement(OnboardingView["b" /* OnboardingView */], { className: "yourProjectsEmptyState", description: react_default.a.createElement(react_default.a.Fragment, null,
                react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "team.empty.description" }),
                react_default.a.createElement(Link_default.a, { className: SpacesTabContent_default.a.EmptyStateLearnMore, href: Object(urls["j" /* localizedGoUrl */])(urls["d" /* LEARN_MORE_SPACES */], projectList.app.intl.appLanguage || 'en'), target: "_blank", role: 'link', "aria-label": intl.formatMessage({ id: 'popover.linkout' }) },
                    react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "popover.linkout" }))), heading: react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "team.empty.heading" }) }, browseSession.currentTeamId && (react_default.a.createElement(react_default.a.Fragment, null,
            react_default.a.createElement(OnboardingView["c" /* OnboardingViewActions */], null,
                react_default.a.createElement(OnboardingView["d" /* OnboardingViewButton */], { onClick: onCreateProjectActionClick, icon: react_default.a.createElement(S_Illu_CreateASpace, null), testId: "Onboarding__createSpace", label: 'team.empty.createSpace' },
                    react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "team.empty.createSpace" })),
                inviteAction && (react_default.a.createElement(OnboardingView["d" /* OnboardingViewButton */], { icon: react_default.a.createElement(S_Illu_InvitePeople, null), onClick: () => inviteAction.execute([]), testId: "Onboarding__inviteMembers", label: 'team.empty.inviteMembers' },
                    react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "team.empty.inviteMembers" }))))))));
    }
}

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/components/teams/SpacesFilter.tsx
var SpacesFilter = __webpack_require__("lPCU");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/components/YourProjects/SpacesTabContent/SpacesTabContent.tsx




function SpacesTabContent_SpacesTabContent(props) {
    const { browseSession, filterText, handleResetFilters, inviteAction, onCreateProjectActionClick, refreshContent, cdoView, showEmptyFilterState, shouldShowEmptyFromOtherTeams, teamHasNoSpaces, } = props;
    const shouldShowSpacesFilterEmptyState = teamHasNoSpaces && showEmptyFilterState;
    if (shouldShowSpacesFilterEmptyState) {
        return (react_default.a.createElement(SpacesFilter["a" /* SpacesFilterEmptyState */], { onResetFilter: handleResetFilters, filterText: filterText }));
    }
    else if (shouldShowEmptyFromOtherTeams) {
        return react_default.a.createElement(EmptyFromOtherTeams, null);
    }
    else if (teamHasNoSpaces) {
        return (react_default.a.createElement(TeamHasNoSpaces, { browseSession: browseSession, inviteAction: inviteAction, onCreateProjectActionClick: onCreateProjectActionClick, refreshContent: refreshContent }));
    }
    else {
        return react_default.a.createElement(react_default.a.Fragment, null, cdoView);
    }
}

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/images/S_Filter18ForNotification_24_N.svg
var S_Filter18ForNotification_24_N = __webpack_require__("FbeB");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/images/S_Filter18WithNotification_24_N.svg
var S_Filter18WithNotification_24_N = __webpack_require__("mpUr");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/components/teams/FavoritedSpacesDropdownButton.css
var FavoritedSpacesDropdownButton = __webpack_require__("uwtl");
var FavoritedSpacesDropdownButton_default = /*#__PURE__*/__webpack_require__.n(FavoritedSpacesDropdownButton);

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/components/teams/FavoritedSpacesDropdownButton.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/










function FavoritedSpacesDropdownButton_FavoritedSpacesDropdownButton({ activeFilter, onFilter, intl, disabled, tooltipId = 'project1Up.section.filter', }) {
    const filterOptions = ['all', 'favorited'];
    const isFilterOn = activeFilter !== 'all';
    return (react_default.a.createElement(OverlayTrigger_default.a, { placement: "bottom", trigger: ['hover'], delayShow: utils_constants["f" /* DEFAULT_TOOLTIP_DELAY */], boundariesElement: "container" },
        react_default.a.createElement("div", { className: disabled ? FavoritedSpacesDropdownButton_default.a.buttonContainer : '' },
            react_default.a.createElement(DropdownButton_default.a, { alignRight: true, disabled: disabled, icon: isFilterOn ? (react_default.a.createElement(S_Filter18WithNotification_24_N["a" /* default */], { className: "spectrum-Icon" })) : (react_default.a.createElement(S_Filter18ForNotification_24_N["a" /* default */], { className: "spectrum-Icon" })), "data-test-id": "HeaderAction__filterFavorited", "aria-label": intl.formatMessage({ id: 'project1Up.section.filter' }), role: 'button' }, filterOptions.map(filter => {
                return (react_default.a.createElement(Menu["MenuItem"], { key: filter, value: filter, label: react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: `team.spaces.filter.${filter}` }), selected: filter === activeFilter, onClick: () => onFilter === null || onFilter === void 0 ? void 0 : onFilter(filter), "data-test-id": `HeaderAction__filterFavorited__${filter}` }));
            }))),
        react_default.a.createElement(Tooltip_default.a, null,
            react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: tooltipId }))));
}

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/GridView.tsx + 1 modules
var GridView = __webpack_require__("8Esu");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/components/YourProjects/YourProjects.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2020 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
var YourProjects_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;
};
var YourProjects_metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var YourProjects_a, YourProjects_b, YourProjects_c, YourProjects_d, YourProjects_e;




















































const ONBOARDING_ROW_HEIGHT = 120;
const ONBOARDING_GRID_ROW_HEIGHT = 271;
let YourProjects_YourProjects = class YourProjects extends react["Component"] {
    constructor(props) {
        super(props);
        this.defaultProjectActions = new Map();
        this.projectActionMenu = new Map();
        /**
         * The section in the TeamsOneUp being rendered.
         * May be undefined if the user does not have a valid Role in the project.
         */
        this.libraryFilter = 'all';
        this.textFilter = '';
        this.isListGridToggleable = true;
        this.areFiltersEnabled = true;
        this.selectionStore = new SelectionStore["a" /* default */]();
        this.spacesTabUiConfig = UIConfig["a" /* default */].getConfigByNamespace(this.props.browseSession, utils_constants["J" /* UiConfigNamespaces */].YourProjects);
        this.libTabUiConfig = UIConfig["a" /* default */].getConfigByNamespace(this.props.browseSession, utils_constants["J" /* UiConfigNamespaces */].YourProjectsLibraries);
        this.onSortSelected = (sortBy, direction) => {
            const { cdpContext } = this.props.browseSession;
            if ((cdpContext === null || cdpContext === void 0 ? void 0 : cdpContext.isCopy) || !(cdpContext === null || cdpContext === void 0 ? void 0 : cdpContext.mode)) {
                // Certain workflows (i.e. move) don't have instrumentation specced, so don't send in those cases
                const workflow = (cdpContext === null || cdpContext === void 0 ? void 0 : cdpContext.isCopy) ? ProjectAnalytics["f" /* Workflow */].CopyFiles : ProjectAnalytics["f" /* Workflow */].Projects; // TODO - different workflow here for Libraries tab
                const data = {
                    ...ProjectAnalytics["g" /* default */].scaffoldEvent(ProjectAnalytics["c" /* Subcategory */].Navigation, ProjectAnalytics["d" /* Subtype */].sortBy, ProjectAnalytics["e" /* Type */].click, workflow),
                    ui: this.uiConfig.cdoUISettings,
                };
                Object.assign(data.event, { value: sortBy });
                ProjectAnalytics["g" /* default */].fireEvent(data);
            }
            // if the direction is explicitly set, then use that. Otherwise, just reverse direction on the same field
            if (direction) {
                this.uiConfig.sortDirection = direction;
            }
            else {
                if (sortBy === this.uiConfig.sortBy) {
                    this.uiConfig.sortDirection = Object(constants["j" /* invertSort */])(this.uiConfig.sortDirection);
                }
            }
            this.uiConfig.sortBy = sortBy;
            if (this.inSpacesTab) {
                this.refreshSpacesList();
            }
        };
        this.onLibrariesSortChanged = (sortOrder) => {
            this.onSortSelected(sortOrder.field, sortOrder.direction);
        };
        this.onLibrariesFilterChanged = (filter) => {
            this.libraryFilter = filter;
        };
        this.clearLibrariesFilter = () => {
            this.libraryFilter = 'all';
        };
        this.setBulkActionsView = (renderer) => {
            this._renderLibrariesBulkActionView = renderer;
        };
        this.resetBulkActionsView = () => {
            this._renderLibrariesBulkActionView = undefined;
        };
        this.setIsListGridToggleable = (isToggleable) => {
            this.isListGridToggleable = isToggleable;
        };
        this.setAreFiltersEnabled = (areFiltersEnabled) => {
            this.areFiltersEnabled = areFiltersEnabled;
        };
        this._onCreateProjectActionClick = async () => {
            const { browseSession } = this.props;
            const { projectList } = browseSession;
            const { subcategory, workflow } = this.ingestData;
            ProjectAnalytics["g" /* default */].fireEvent({
                ...ProjectAnalytics["g" /* default */].scaffoldEvent(subcategory, ProjectAnalytics["d" /* Subtype */].newProject, ProjectAnalytics["e" /* Type */].click, workflow),
                ui: projectList.uiConfig.cdoUISettings,
            });
            const teamId = browseSession.currentTeamId;
            if (teamId) {
                await browseSession.spaceDialogs.createSpace(teamId);
            }
        };
        this.onItemClick = element => {
            const project = element.externalData;
            ProjectAnalytics["g" /* default */].fireEvent(ProjectAnalytics["g" /* default */].scaffoldEvent(ProjectAnalytics["c" /* Subcategory */].Navigation, ProjectAnalytics["d" /* Subtype */].openProject, ProjectAnalytics["e" /* Type */].click, ProjectAnalytics["f" /* Workflow */].Project1Up));
            const { browseSession } = this.props;
            const teamId = browseSession.currentTeamIsOtherTeams ? null : browseSession.currentTeamId;
            launchOneUp(project, () => browseSession.navigateAndNotify(new Route["e" /* SpaceRoute */](project.id, { teamId })), this.props.showClientUpgradeDialog);
        };
        this.onSelectionChange = async ({ selectedElements }) => {
            const { cdpContext } = this.props.browseSession;
            const selectedProject = selectedElements[0]
                ? selectedElements[0].externalData
                : undefined;
            if ((cdpContext === null || cdpContext === void 0 ? void 0 : cdpContext.isMove) || (cdpContext === null || cdpContext === void 0 ? void 0 : cdpContext.isCopy)) {
                await cdpContext.onProjectSelected(selectedProject);
            }
            this.validateSelectionActions(selectedElements);
        };
        this.renderTeamSpacesOnboarding = (style) => {
            const isList = this.uiConfig.view === utils_constants["L" /* ViewMode */].List;
            const { browseSession } = this.props;
            const { inviteAction } = this;
            const itemStyle = style
                ? {
                    // The buttons are squares the same width with the regular CDO cards.
                    width: style.width - GridView["a" /* GRID_TILE_HMARGIN */] - 2,
                    height: style.width - GridView["a" /* GRID_TILE_HMARGIN */] - 2,
                }
                : undefined;
            return (react_default.a.createElement(OnboardingView["a" /* OnboardingActionBar */], { key: "onboardingActionBar", titleContent: react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "yourProjects.empty.spaces" }), className: classnames_default()(TeamSpaces_default.a.inlineOnboardingRow, isList && TeamSpaces_default.a.inlineOnboardingListRow), style: style ? { left: style.left, top: style.top } : undefined, canClose: true, onClose: () => browseSession.setDisableTeamSpacesOnboarding(true) },
                react_default.a.createElement(OnboardingView["d" /* OnboardingViewButton */], { disabled: browseSession.showOfflineWithFeatureFlag, onClick: e => this._onCreateProjectActionClick(), variant: isList ? 'list' : 'default', style: itemStyle, icon: react_default.a.createElement(S_Illu_CreateASpace, null), testId: "Onboarding__createSpace", label: 'team.empty.createSpace' },
                    react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "team.empty.createSpace" })),
                inviteAction && (react_default.a.createElement(OnboardingView["d" /* OnboardingViewButton */], { disabled: browseSession.showOfflineWithFeatureFlag, variant: isList ? 'list' : 'default', style: itemStyle, icon: react_default.a.createElement(S_Illu_InvitePeople, null), onClick: () => inviteAction.execute([]), testId: "Onboarding__inviteMembers", label: 'team.empty.inviteMembers' },
                    react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "team.empty.inviteMembers" })))));
        };
        this.shouldRenderItemAsDisabled = (element) => {
            const { browseSession } = this.props;
            const { launchedFromCDP, cdpContext, showOfflineWithFeatureFlag } = browseSession;
            if (launchedFromCDP) {
                // If the user is not a contributor, the Project should be disabled.
                if (element.role !== Project["c" /* Role */].CONTRIBUTOR) {
                    return true;
                }
                if (cdpContext === null || cdpContext === void 0 ? void 0 : cdpContext.isMove) {
                    return cdpContext === null || cdpContext === void 0 ? void 0 : cdpContext.shouldSpaceBeDisabledForMove(element.repositoryId);
                }
            }
            if (element.isDisabled) {
                return true;
            }
            return false;
        };
        this.favoriteFilterMatches = (element) => {
            if (this.uiConfig.favoritedSpacesFilter === 'favorited') {
                return element.bookmarked;
            }
            return true;
        };
        this.onTabChange = (selectedIndex) => {
            const tabs = Object.values(utils_constants["I" /* TeamsOneUpTabs */]);
            const { browseSession } = this.props;
            const defaultTab = utils_constants["I" /* TeamsOneUpTabs */].Spaces;
            const currentTab = tabs[selectedIndex];
            const viewToNavigate = currentTab !== defaultTab ? currentTab : undefined;
            // If we are on the shared from other teams, we need to provide null team route instead of undefined.
            const route = browseSession.sameTeamRouteWithDetails({ view: viewToNavigate });
            browseSession.navigateAndNotify(route);
            // clear selections on tab change
            this.selectionStore.clear();
            this._renderLibrariesBulkActionView = undefined;
        };
        this.setSearchText = text => {
            const { projectList } = this.props.browseSession;
            if (!projectList.isFullyLoaded && !projectList.isLoading) {
                // Load all spaces to ensure we're looking for matches over the entire set.
                // This is a temporary measure until we can stop searching locally, (once we get a search API from the Projects service).
                // Note this only needs to happen once, for all future searches `isFullyLoaded` will be true.
                // Fetch all pages.
                this.refreshSpacesList(true);
            }
            if (!this.textFilter && text) {
                this.selectionStore.clear();
            }
            this.textFilter = text;
        };
        this.renderFilter = (elements) => {
            const { intl } = this.props.browseSession;
            if (this.inTeamLibrariesTab) {
                return this.areFiltersEnabled ? (react_default.a.createElement(LibrariesFilterDropdownButton, { activeFilter: this.libraryFilter, onFilter: newFilter => {
                        this.libraryFilter = newFilter;
                    } })) : undefined;
            }
            return (react_default.a.createElement("span", { className: TeamSpaces_default.a.FilterWrapper },
                react_default.a.createElement(SpacesFilter["b" /* default */], { elements: elements, onFilter: this.setSearchText, value: this.textFilter }),
                react_default.a.createElement(FavoritedSpacesDropdownButton_FavoritedSpacesDropdownButton, { disabled: this.props.browseSession.showOfflineWithFeatureFlag, activeFilter: this.uiConfig.favoritedSpacesFilter, onFilter: newFilter => {
                        this.uiConfig.favoritedSpacesFilter = newFilter;
                        this.refreshSpacesList();
                    }, intl: intl, tooltipId: this.props.browseSession.showOfflineWithFeatureFlag
                        ? 'tooltip.offline.general'
                        : undefined })));
        };
        this.handleResetFilters = () => {
            this.uiConfig.favoritedSpacesFilter = 'all';
            this.textFilter = '';
            this.refreshSpacesList();
        };
        this.renderTabs = (elements, teamHasNoSpaces) => {
            var _a;
            const { inTeamLibrariesTab, isListGridToggleable } = this;
            const { browseSession } = this.props;
            const { libraries } = SharedStore["d" /* sharedStore */];
            const { projectList, launchedFromCDP, isMobileLayout, intl } = browseSession;
            const tabListOrder = [utils_constants["I" /* TeamsOneUpTabs */].Spaces, utils_constants["I" /* TeamsOneUpTabs */].Libraries];
            const team = User["a" /* default */].getTeamFromId(browseSession.currentTeamId);
            const activeSort = this.uiConfig.sortBy;
            const activeSortDirection = this.uiConfig.sortDirection;
            const view = this.uiConfig.view;
            const headerActions = [];
            // for the non-CDP view, we show the actions in the team subheader. In CDP we show it in the regular Subheader
            if (!launchedFromCDP && team) {
                if (this.inSpacesTab) {
                    // We only show the new space when the empty state is not visible.
                    if (team && !teamHasNoSpaces && Object(User["b" /* userHasEditorRoleOnTeam */])(team)) {
                        headerActions.push({
                            id: 'header.action.newProject',
                            getIsButtonDisabled: () => browseSession.showOfflineWithFeatureFlag,
                            name: react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "header.action.newProject" }),
                            onClick: this._onCreateProjectActionClick,
                            quiet: false,
                            icon: react_default.a.createElement(AddCircle_default.a, null),
                            getDisabledTooltipMsgId: () => 'tooltip.offline.general',
                        });
                    }
                }
                else {
                    (libraries === null || libraries === void 0 ? void 0 : libraries.createNewLibrary) &&
                        headerActions.push({
                            id: 'createLibrary',
                            name: react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "header.action.newLibrary" }),
                            onClick: () => {
                                var _a;
                                team && ((_a = libraries === null || libraries === void 0 ? void 0 : libraries.createNewLibrary) === null || _a === void 0 ? void 0 : _a.call(libraries, team));
                            },
                            quiet: false,
                            icon: react_default.a.createElement(AddCircle_default.a, null),
                        });
                    (libraries === null || libraries === void 0 ? void 0 : libraries.browseAllLibraries) &&
                        headerActions.push({
                            id: 'browseAllLibraries',
                            name: react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "header.action.browseAll" }),
                            onClick: () => {
                                var _a;
                                team && ((_a = libraries === null || libraries === void 0 ? void 0 : libraries.browseAllLibraries) === null || _a === void 0 ? void 0 : _a.call(libraries, team));
                            },
                            quiet: false,
                            icon: react_default.a.createElement(Browse_default.a, null),
                        });
                }
            }
            const headerActionMenuItems = Array.from(this.projectActionMenu.values());
            // Empty state due to filters being applied
            const showEmptyFilterState = teamHasNoSpaces && this.isFilterActive;
            const subheader = (react_default.a.createElement(teams_TeamsSubHeader, { browseSession: browseSession, activeSort: activeSort, activeSortDirection: activeSortDirection, inCDP: false, isLoading: inTeamLibrariesTab ? () => false : projectList.isInitializing, isEmpty: inTeamLibrariesTab ? () => false : projectList.empty, mobile: isMobileLayout, onSortBy: this.onSortSelected, onViewModeChange: this.onViewModeChange.bind(this), selectionStore: this.selectionStore, hideHeaderWhenSelected: true, showListGridToggle: inTeamLibrariesTab ? isListGridToggleable : !teamHasNoSpaces, showSortDropdown: !teamHasNoSpaces, sortOptions: this.sortOptions, unselectedHeaderActions: headerActions, selectedHeaderActions: headerActionMenuItems, viewMode: view, filter: () => this.renderFilter(elements), viewType: this.headerViewType, renderLibrariesBulkActionsView: inTeamLibrariesTab ? this._renderLibrariesBulkActionView : undefined, disabled: browseSession.showOfflineWithFeatureFlag }));
            const renderLibrariesTab = !launchedFromCDP && !!libraries;
            const hasSelectionsInLibraries = !!(inTeamLibrariesTab && this._renderLibrariesBulkActionView);
            const hasSelections = ((_a = this.selectionStore) === null || _a === void 0 ? void 0 : _a.hasAny) || hasSelectionsInLibraries;
            const isSpacesEmptyState = this.inSpacesTab && teamHasNoSpaces && !this.isFilterActive;
            const shouldShowEmptyFromOtherTeams = browseSession.currentTeamIsOtherTeams && teamHasNoSpaces;
            const selectedIndex = tabListOrder.indexOf(this.currentTab);
            return (react_default.a.createElement(react_default.a.Fragment, null,
                !(launchedFromCDP && isSpacesEmptyState) && (react_default.a.createElement("div", { className: TeamSpaces_default.a.HeaderTabListContainer },
                    !hasSelections &&
                        !shouldShowEmptyFromOtherTeams &&
                        (renderLibrariesTab ? (react_default.a.createElement(TabList["TabList"], { quiet: true, variant: "compact", onChange: index => {
                                this.onTabChange(index);
                            }, selectedIndex: selectedIndex },
                            react_default.a.createElement(TabList["Tab"], { "data-test-id": "HeaderTab__spaces", "aria-label": intl.formatMessage({
                                    id: 'yourProjects.title',
                                }), role: 'tab', "aria-expanded": selectedIndex === 0, hidden: false },
                                react_default.a.createElement(Heading_default.a, { variant: "subtitle1" },
                                    react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "yourProjects.title" }))),
                            !this.isCCITeam && (react_default.a.createElement(TabList["Tab"], { "data-test-id": "HeaderTab__teamLibraries", "aria-label": intl.formatMessage({
                                    id: 'yourProjects.librariesTab.title',
                                }), role: 'tab', "aria-expanded": selectedIndex === 1, hidden: false },
                                react_default.a.createElement(Heading_default.a, { variant: "subtitle1" },
                                    react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "yourProjects.librariesTab.title" })))))) : (react_default.a.createElement("div", { className: TeamSpaces_default.a.HeaderContainer },
                            react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "yourProjects.title" })))),
                    !isSpacesEmptyState && subheader)),
                this.inSpacesTab && (react_default.a.createElement(SpacesTabContent_SpacesTabContent, { browseSession: browseSession, filterText: this.textFilter, handleResetFilters: this.handleResetFilters, inviteAction: this.inviteAction, refreshContent: SharedStore["d" /* sharedStore */].refreshContent.bind(SharedStore["d" /* sharedStore */]), cdoView: this.cdoView, onCreateProjectActionClick: this._onCreateProjectActionClick, showEmptyFilterState: showEmptyFilterState, shouldShowEmptyFromOtherTeams: shouldShowEmptyFromOtherTeams, teamHasNoSpaces: teamHasNoSpaces })),
                renderLibrariesTab && inTeamLibrariesTab && this._renderLibrariesView()));
        };
    }
    get currentTab() {
        const { currentTeamsView } = this.props.browseSession;
        return currentTeamsView !== null && currentTeamsView !== void 0 ? currentTeamsView : utils_constants["I" /* TeamsOneUpTabs */].Spaces;
    }
    get sortOptions() {
        return this.inSpacesTab
            ? [constants["f" /* UXSortBy */].name, constants["f" /* UXSortBy */].createdDate]
            : [constants["f" /* UXSortBy */].name, constants["f" /* UXSortBy */].modifiedDate];
    }
    get uiConfig() {
        return this.inSpacesTab ? this.spacesTabUiConfig : this.libTabUiConfig;
    }
    async componentDidMount() {
        const { subcategory, subtype, workflow } = this.ingestData;
        const { browseSession } = this.props;
        ProjectAnalytics["g" /* default */].fireEvent({
            ...ProjectAnalytics["g" /* default */].scaffoldEvent(subcategory, subtype, ProjectAnalytics["e" /* Type */].render, workflow),
            ui: browseSession.projectList.uiConfig.cdoUISettings,
        });
        this._reactionDisposer = Object(mobx_module["B" /* reaction */])(
        // Make sure we run this again when:
        // 1. the team id changes
        // 2. user moves to show other teams tab
        // 3. the space context is recreated
        () => [
            // Whenever the shared store requests a reload, we will trigger a reload on the content below.
            SharedStore["d" /* sharedStore */].reloadCounter,
            browseSession.currentTeamId,
            browseSession.currentTeamIsOtherTeams,
            SharedStore["d" /* sharedStore */].spaceContext,
        ], () => this.reloadSpaces(), {
            fireImmediately: true,
        });
        this._filterReactionDisposer = Object(mobx_module["B" /* reaction */])(
        // Make sure we run this again when:
        // 1. the team id changes
        // 2. user moves to show other teams tab
        () => [browseSession.currentTeamId, browseSession.currentTeamIsOtherTeams], () => {
            this.textFilter = '';
            // Reset to prevent the text field in getting converted to a span.
            browseSession.projectsClient.onDialogStateChange(false);
        }, {
            fireImmediately: true,
        });
    }
    async reloadSpaces() {
        // clear selections
        this.selectionStore.clear();
        // Clean the action view for libraries before switching to a different team.
        this._renderLibrariesBulkActionView = undefined;
        this.clearLibrariesFilter();
        await this.load();
    }
    componentWillUnmount() {
        var _a, _b;
        (_a = this._reactionDisposer) === null || _a === void 0 ? void 0 : _a.call(this);
        (_b = this._filterReactionDisposer) === null || _b === void 0 ? void 0 : _b.call(this);
    }
    async load() {
        const { browseSession } = this.props;
        if (browseSession.currentTeamId || browseSession.currentTeamIsOtherTeams) {
            // Re-fetch Projects whenever this mounts to display updates after
            // clicking on another FMHS tab
            try {
                await this.refreshSpacesList();
            }
            catch (e) {
                Settings["b" /* settings */].logger.warn('Error while waiting for list to load.', e);
            }
            this.setProjectActions();
        }
    }
    // As this set of actions are built upon engineers will need to take into account
    // if the action involves a project that is out of valid version range.
    // See https://jira.corp.adobe.com/browse/CCPROJ-614
    // How we display valid actions to the user may need to be revisited due to the frailty
    // of the current setup
    setProjectActions() {
        const { projectList } = this.props.browseSession;
        this.projectActionMenu = this.props.getProjectActions({
            leave: projectList.leaveResources,
            archive: projectList.deleteProjects,
            workflow: ProjectAnalytics["f" /* Workflow */].Projects,
        });
        this.defaultProjectActions = new Map(this.projectActionMenu);
    }
    _renderLibrariesView() {
        const { libraries } = SharedStore["d" /* sharedStore */];
        return (libraries && (react_default.a.createElement("div", { className: TeamSpaces_default.a.librariesContainer }, libraries.renderLibrariesView(this._libraryViewState))));
    }
    get _libraryViewState() {
        var _a, _b;
        const { uiConfig, libraryFilter, onLibrariesSortChanged, onLibrariesFilterChanged, clearLibrariesFilter, setBulkActionsView, resetBulkActionsView, setIsListGridToggleable, setAreFiltersEnabled, } = this;
        const { browseSession } = this.props;
        const team = browseSession.currentTeamIsOtherTeams
            ? undefined
            : User["a" /* default */].getTeamFromId(browseSession.currentTeamId);
        return {
            selectedTeam: team,
            userTeams: (_b = (_a = SharedStore["d" /* sharedStore */].teams) === null || _a === void 0 ? void 0 : _a.items) !== null && _b !== void 0 ? _b : [],
            order: {
                direction: uiConfig.sortDirection,
                field: uiConfig.sortBy,
            },
            filter: libraryFilter,
            viewStyle: uiConfig.view,
            onLibrariesSortChanged,
            onLibrariesFilterChanged,
            clearLibrariesFilter,
            setBulkActionsView,
            resetBulkActionsView,
            setIsListGridToggleable,
            setAreFiltersEnabled,
        };
    }
    validateSelectionActions(selectedElements) {
        // Reset actions on every selection
        this.projectActionMenu = new Map(this.defaultProjectActions);
        // Leave bulk operation is not a requirement
        if (selectedElements.length > 1) {
            this.projectActionMenu.delete('leaveProject');
        }
    }
    onViewModeChange(value) {
        this.uiConfig.view = value;
        ProjectAnalytics["g" /* default */].fireEvent({
            ...ProjectAnalytics["g" /* default */].scaffoldEvent(ProjectAnalytics["c" /* Subcategory */].Navigation, value, ProjectAnalytics["e" /* Type */].click, this.ingestData.workflow),
            ui: this.uiConfig.cdoUISettings,
        });
    }
    get ingestData() {
        const { cdpContext } = this.props.browseSession;
        if (cdpContext === null || cdpContext === void 0 ? void 0 : cdpContext.isCopy) {
            return {
                subcategory: ProjectAnalytics["c" /* Subcategory */].CopyToModal,
                subtype: ProjectAnalytics["d" /* Subtype */].modal,
                workflow: ProjectAnalytics["f" /* Workflow */].CopyFiles,
            };
        }
        return {
            subcategory: ProjectAnalytics["c" /* Subcategory */].MyProjects,
            subtype: !this.shouldShowEmptyTeamState
                ? ProjectAnalytics["d" /* Subtype */].myProjectsPage
                : ProjectAnalytics["d" /* Subtype */].myProjectsPageEmptyState,
            workflow: ProjectAnalytics["f" /* Workflow */].Projects,
        };
    }
    get listViewColumns() {
        const { browseSession } = this.props;
        const { isMobileLayout } = browseSession;
        let columns = [];
        if (isMobileLayout) {
            columns = ['name'];
        }
        else {
            columns = columns.concat('name', 'createdDate');
            if (browseSession.currentTeamIsOtherTeams) {
                columns.push('team');
            }
            columns.push('sharing');
            if (!this.selectionDisabled) {
                columns.unshift('selectbox');
            }
            // if it's launched from CDP, we still want to show the column, to view the favourite state
            columns.push('action');
        }
        return columns;
    }
    get selectAllDisabled() {
        return true;
    }
    get selectionDisabled() {
        var _a;
        const mode = (_a = this.props.browseSession.cdpContext) === null || _a === void 0 ? void 0 : _a.mode;
        // Workflows such as `Copy` or `Copy to Project` in CDP only allows single selection.
        return (mode &&
            [
                utils_constants["w" /* PickerMode */].copy,
                utils_constants["w" /* PickerMode */].copyToProject,
                utils_constants["w" /* PickerMode */].import,
                utils_constants["w" /* PickerMode */].move,
                utils_constants["w" /* PickerMode */].moveToProject,
                utils_constants["w" /* PickerMode */].open,
                utils_constants["w" /* PickerMode */].place,
                utils_constants["w" /* PickerMode */].placeLinkOrEmbed,
                utils_constants["w" /* PickerMode */].saveAs,
                utils_constants["w" /* PickerMode */].saveAsCopy,
                utils_constants["w" /* PickerMode */].selectProject,
            ].includes(mode));
    }
    onLoadSLAComplete(documents, subcategory) {
        if (documents.length && subcategory) {
            ProjectAnalytics["g" /* default */].fireEvent(ProjectAnalytics["g" /* default */].scaffoldEvent(subcategory, ProjectAnalytics["d" /* Subtype */].myProjectsPageComplete, ProjectAnalytics["e" /* Type */].render, ProjectAnalytics["f" /* Workflow */].Projects));
        }
    }
    followButtonClick(evt, element) {
        evt.stopPropagation();
        this.onToggleFollow(element);
    }
    onToggleFollow(element) {
        const { browseSession } = this.props;
        const { projectList } = browseSession;
        const project = projectList.yourProjects.find(p => p.id === element.id);
        if (project) {
            project.bookmarked ? project.unFollow(browseSession) : project.follow(browseSession);
        }
    }
    renderFollowButton(element, actionable) {
        const { projectList, showOffline: isOffline } = this.props.browseSession;
        const actionsReady = !projectList.isLoading && actionable;
        const tooltipText = this.props.intl.formatMessage({ id: 'button.favorite' });
        const conditionalProps = {};
        if (element.bookmarked) {
            conditionalProps['icon'] = react_default.a.createElement(Star_default.a, { size: "S" });
        }
        else if (!isOffline) {
            conditionalProps['icon'] = react_default.a.createElement(StarOutline_default.a, { size: "S" });
        }
        return (react_default.a.createElement("div", { className: TeamSpaces_default.a.CTAItem },
            react_default.a.createElement(OverlayTrigger_default.a, { trigger: ['focus', 'hover'], delayShow: utils_constants["f" /* DEFAULT_TOOLTIP_DELAY */], placement: "bottom", disabled: isOffline || !actionsReady },
                react_default.a.createElement(Button_default.a, Object.assign({ tabIndex: -1, className: classnames_default()(TeamSpaces_default.a.Star, {
                        [TeamSpaces_default.a.StarSelected]: element.bookmarked,
                    }), onClick: evt => {
                        !isOffline && actionable && this.followButtonClick(evt, element);
                    }, variant: "tool", "data-test-id": "FollowButton" }, conditionalProps)),
                react_default.a.createElement(Tooltip_default.a, null, tooltipText))));
    }
    getVisibleElements(elements) {
        return elements.filter(element => !element.isHidden &&
            this.favoriteFilterMatches(element) &&
            Object(SpacesFilter["c" /* spacesNameMatchesFilter */])(element, this.textFilter));
    }
    get cdoView() {
        const { browseSession } = this.props;
        const { launchedFromCDP, projectList } = browseSession;
        const { app: { isMobileLayout }, } = projectList;
        const { intl } = browseSession;
        const activeSort = this.uiConfig.sortBy;
        const activeSortDirection = this.uiConfig.sortDirection;
        const view = this.uiConfig.view;
        const listActionMenuItems = Array.from(this.defaultProjectActions.values());
        const metadataFormat = isMobileLayout
            ? 'projectMobileListView'
            : view === utils_constants["L" /* ViewMode */].List
                ? 'empty'
                : 'projectCard';
        const hideActionMenu = launchedFromCDP && view === 'list';
        const renderOnboardingItem = !browseSession.launchedFromCDP &&
            browseSession.currentTeamId &&
            User["a" /* default */].hasEditorRoleOnTeam(browseSession.currentTeamId) &&
            !this.textFilter.length &&
            !browseSession.disableTeamSpacesOnboarding
            ? this.renderTeamSpacesOnboarding
            : undefined;
        if (projectList.hasError() && !browseSession.showOffline) {
            return (react_default.a.createElement(EmptyState["a" /* default */], { className: "yourProjectsEmptyState", illustration: react_default.a.createElement(ErrorLoading["a" /* default */], { className: EmptyStates_default.a.illustration }), description: react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "teams1up.error.description" }), heading: react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "teams1up.error.heading" }) },
                react_default.a.createElement(Button_default.a, { variant: "cta", onClick: () => {
                        SharedStore["d" /* sharedStore */].refreshContent().catch(e => {
                            Settings["b" /* settings */].logger.warn('Failed refreshing content from spaces error message.', e);
                        });
                    } },
                    react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "button.retry" }))));
        }
        return (react_default.a.createElement(CDOView["a" /* CDOView */], { collectionType: "project", projectList: projectList, className: classnames_default()(TeamSpaces_default.a.TeamSpaces, 'YourProjects'), elements: this.elements, ingestSubcategory: this.ingestData.subcategory, view: view, onItemClicked: this.onItemClick, onSortSelected: this.onSortSelected, onSelectionChange: this.onSelectionChange, sortOptions: this.sortOptions, isBusy: projectList.isInitializing, selectionStore: this.selectionStore, activeSort: activeSort, activeSortDirection: activeSortDirection, actionMenuItems: launchedFromCDP ? [] : listActionMenuItems, shouldRenderItemAsDisabled: this.shouldRenderItemAsDisabled, selectAllDisabled: this.selectAllDisabled, selectionDisabled: this.selectionDisabled, ccxIngest: ProjectAnalytics["g" /* default */].ingestController, onRendered: this.onLoadSLAComplete, 
            /*
             * https://jira.corp.adobe.com/browse/CCXB-9789
             * wince. no total returned from api layer yet
             */
            total: Infinity, ctaItem: {
                render: this.renderFollowButton.bind(this),
                className: TeamSpaces_default.a.GridItem,
            }, hideActionMenu: hideActionMenu },
            react_default.a.createElement(CDOView["c" /* GridViewPlaceholder */], { className: "YourProjects", isHeaderVisible: false, tileVMargin: 6, preferSmallerGridSizes: launchedFromCDP, ccxIngest: ProjectAnalytics["g" /* default */].ingestController, onboardingRowHeight: ONBOARDING_GRID_ROW_HEIGHT, renderOnboardingItem: renderOnboardingItem },
                react_default.a.createElement(CDOView["b" /* GridItemPlaceholder */], { metadataFormat: metadataFormat, intl: intl })),
            react_default.a.createElement(CDOView["e" /* ListViewPlaceholder */], { className: "YourProjects", isHeaderVisible: true, mobile: isMobileLayout, unsortableColumns: ['team', 'sharing', 'action'], columns: this.listViewColumns, 
                // Modified date is the only date sorting option for list of folders / projects
                dateSortOptions: constants["i" /* UX_DATE_SORT_MENU_ITEMS */].filter(item => item.value === 'createdDate'), ccxIngest: ProjectAnalytics["g" /* default */].ingestController, onboardingRowHeight: ONBOARDING_ROW_HEIGHT, renderOnboardingItem: renderOnboardingItem },
                react_default.a.createElement(CDOView["d" /* ListItemPlaceholder */], { metadataFormat: metadataFormat, mobile: isMobileLayout, intl: intl }))));
    }
    get inSpacesTab() {
        return this.currentTab === utils_constants["I" /* TeamsOneUpTabs */].Spaces;
    }
    get inTeamLibrariesTab() {
        return this.currentTab === utils_constants["I" /* TeamsOneUpTabs */].Libraries;
    }
    async refreshSpacesList(loadAllPages) {
        const { projectList, currentTeamId, requestController, showOfflineWithFeatureFlag } = this.props.browseSession;
        // Note that we filter bookmarked spaces on the client side in order to get
        // better empty state support. We are supposed to know if you have spaces in order
        // to pick between onboarding experience or simple filter prevents showing anything dialog.
        await requestController.runWithRetry(() => projectList.resetAndFetchProjects(currentTeamId, this.uiConfig.favoritedSpacesFilter === 'favorited', loadAllPages, showOfflineWithFeatureFlag));
    }
    get headerViewType() {
        return this.inSpacesTab ? 'projects' : 'teamLibraries';
    }
    get isFilterActive() {
        const filter = this.inTeamLibrariesTab
            ? this.libraryFilter
            : this.uiConfig.favoritedSpacesFilter;
        return filter !== 'all' || !!this.textFilter;
    }
    get elements() {
        const { projectList } = this.props.browseSession;
        return this.getVisibleElements(Object(projectToDocument["a" /* default */])(projectList.projects));
    }
    get shouldShowEmptyTeamState() {
        const { projectList } = this.props.browseSession;
        return (this.elements.length === 0 && (!projectList.isInitializing() || projectList.hasError()));
    }
    get shouldShowOfflineState() {
        const { projectList } = this.props.browseSession;
        return (this.elements.length === 0 &&
            !projectList.isInitializing() &&
            !this.isFilterActive &&
            this.props.browseSession.showOfflineWithFeatureFlag);
    }
    get team() {
        return User["a" /* default */].getTeamFromId(this.props.browseSession.currentTeamId);
    }
    get hasTeamActions() {
        const { team } = this;
        const { browseSession } = this.props;
        return Host["a" /* default */].isMVP && browseSession.currentTeamId && !browseSession.launchedFromCDP && team;
    }
    get isCCITeam() {
        var _a;
        return ((_a = this.team) === null || _a === void 0 ? void 0 : _a.repositoryOwnerType) === 'user';
    }
    get teamActions() {
        const teamActions = [];
        const { team } = this;
        if (team && this.hasTeamActions) {
            const { browseSession } = this.props;
            if (User["a" /* default */].hasOwnerRoleOnTeam(team)) {
                teamActions.push(editTeam({ app: browseSession, team }));
                // The CCI team owner is not allowed to delete their own team.
                if (SharedStore["d" /* sharedStore */].hasSophiaFeature('team-m1-discard') &&
                    team.repositoryOwnerType === 'org') {
                    teamActions.push(archiveTeam({ app: browseSession, team }));
                }
            }
            else {
                // Only members of teams in USM can leave team using invitations service
                teamActions.push(Object(leaveResource["a" /* default */])({
                    app: browseSession,
                    teamUrn: browseSession.currentTeamId,
                    onLeaveAfter: async () => {
                        await Object(leaveResource["b" /* onLeaveTeamAfter */])(browseSession);
                    },
                }));
            }
        }
        return teamActions;
    }
    get inviteAction() {
        const { team } = this;
        if (team && this.hasTeamActions) {
            // Members of teams in USM can invite others using invitations service (via shareSheet)
            // For teams in ESM, only the administrator can modify the collaborators in admin console.
            // PS-68851: Ps in Windows ARM machines will have sharing disabled
            const { browseSession } = this.props;
            if (User["a" /* default */].hasEditorRoleOnTeam(team.id) && Host["a" /* default */].canShare) {
                return Object(addMember["a" /* collaboratorAction */])({
                    app: browseSession,
                    getIsButtonDisabled: () => browseSession.showOfflineWithFeatureFlag,
                    role: 'editor',
                    openShareSheet: this.props.openShareSheet,
                    team,
                    onLeaveAfter: async () => {
                        await Object(leaveResource["b" /* onLeaveTeamAfter */])(browseSession);
                    },
                });
            }
        }
    }
    render() {
        const { browseSession } = this.props;
        const { libraries } = SharedStore["d" /* sharedStore */];
        const { projectList, launchedFromCDP, cdpContext } = browseSession;
        const loadingError = projectList.hasError();
        const teamActions = this.teamActions;
        const team = User["a" /* default */].getTeamFromId(browseSession.currentTeamId);
        const headerActions = [];
        if (launchedFromCDP && (cdpContext === null || cdpContext === void 0 ? void 0 : cdpContext.allowsCreatingItems)) {
            if (this.inSpacesTab) {
                if (team && Object(User["b" /* userHasEditorRoleOnTeam */])(team)) {
                    headerActions.push({
                        id: 'header.action.newProject',
                        name: react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "header.action.newProject" }),
                        onClick: this._onCreateProjectActionClick,
                        quiet: false,
                        icon: react_default.a.createElement(AddCircle_default.a, null),
                    });
                }
            }
            else {
                (libraries === null || libraries === void 0 ? void 0 : libraries.createNewLibrary) &&
                    headerActions.push({
                        id: 'createLibrary',
                        name: react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "header.action.newLibrary" }),
                        onClick: () => {
                            var _a;
                            team && ((_a = libraries === null || libraries === void 0 ? void 0 : libraries.createNewLibrary) === null || _a === void 0 ? void 0 : _a.call(libraries, team));
                        },
                        quiet: false,
                        icon: react_default.a.createElement(AddCircle_default.a, null),
                    });
                (libraries === null || libraries === void 0 ? void 0 : libraries.browseAllLibraries) &&
                    headerActions.push({
                        id: 'browseAllLibraries',
                        name: react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "header.action.browseAll" }),
                        onClick: () => {
                            var _a;
                            team && ((_a = libraries === null || libraries === void 0 ? void 0 : libraries.browseAllLibraries) === null || _a === void 0 ? void 0 : _a.call(libraries, team));
                        },
                        quiet: false,
                        icon: react_default.a.createElement(Browse_default.a, null),
                    });
            }
        }
        // For MVP, the team landing page will show all spaces, both favorited and unfavorited.
        if (!launchedFromCDP && !Host["a" /* default */].isMVP) {
            headerActions.push({
                id: 'addUserToTeam',
                name: react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "button.invite" }),
                onClick: () => { },
                variant: 'tool',
                quiet: true,
                icon: (react_default.a.createElement(Icon_default.a, { size: "M" },
                    react_default.a.createElement(Invite["a" /* default */], null))),
                iconOnly: true,
            });
        }
        const activeSort = this.uiConfig.sortBy;
        const activeSortDirection = this.uiConfig.sortDirection;
        const view = this.uiConfig.view;
        const subheader = (react_default.a.createElement(SubHeader["a" /* default */], { browseSession: this.props.browseSession, activeSort: activeSort, activeSortDirection: activeSortDirection, inCDP: false, isLoading: projectList.isInitializing, isEmpty: projectList.empty, mobile: false, onSortBy: this.onSortSelected, onViewModeChange: this.onViewModeChange.bind(this), hideHeaderWhenSelected: true, showListGridToggle: false, sortOptions: this.sortOptions, unselectedHeaderActions: headerActions, teamActions: launchedFromCDP || !browseSession.currentTeamId ? undefined : teamActions, viewMode: view, users: team === null || team === void 0 ? void 0 : team.collaborators, inviteAction: this.inviteAction, hideFacepile: launchedFromCDP || browseSession.currentTeamIsOtherTeams, autoCollapse: !launchedFromCDP }));
        if (this.shouldShowOfflineState) {
            return (react_default.a.createElement(react_default.a.Fragment, null,
                react_default.a.createElement(components_Header, { viewType: "projects", InCDP: launchedFromCDP, appLanguage: browseSession.intl.appLanguage, browseSession: browseSession }),
                react_default.a.createElement(Offline["a" /* default */], { cdoUISettings: projectList.uiConfig.cdoUISettings, browseSession: this.props.browseSession })));
            // case where user leaves the last team from "Other workspaces" and the empty team state is truly empty and not because of filtering
        }
        else if (this.shouldShowEmptyTeamState &&
            browseSession.currentTeamIsOtherTeams &&
            !this.isFilterActive) {
            return this.renderTabs(this.elements, true);
            // empty team state because there are no projects in the team or because filtering returned 0 items
        }
        else if (this.shouldShowEmptyTeamState) {
            return (react_default.a.createElement(react_default.a.Fragment, null,
                react_default.a.createElement(components_Header, { viewType: this.headerViewType, InCDP: launchedFromCDP, mobile: false, appLanguage: browseSession.intl.appLanguage, browseSession: browseSession, renderShareSheet: this.props.renderShareSheet }, !loadingError && subheader),
                this.renderTabs(this.elements, true)));
        }
        return (react_default.a.createElement(react_default.a.Fragment, null,
            react_default.a.createElement(components_Header, { InCDP: launchedFromCDP, mobile: false, viewType: this.headerViewType, appLanguage: browseSession.intl.appLanguage, browseSession: browseSession, showInlineSpinner: projectList.loadingMore, renderShareSheet: this.props.renderShareSheet }, subheader),
            this.renderTabs(this.elements, false)));
    }
};
YourProjects_decorate([
    mobx_module["z" /* observable */],
    YourProjects_metadata("design:type", typeof (YourProjects_a = typeof Map !== "undefined" && Map) === "function" ? YourProjects_a : Object)
], YourProjects_YourProjects.prototype, "defaultProjectActions", void 0);
YourProjects_decorate([
    mobx_module["z" /* observable */],
    YourProjects_metadata("design:type", typeof (YourProjects_b = typeof Map !== "undefined" && Map) === "function" ? YourProjects_b : Object)
], YourProjects_YourProjects.prototype, "projectActionMenu", void 0);
YourProjects_decorate([
    mobx_module["z" /* observable */],
    YourProjects_metadata("design:type", typeof (YourProjects_c = typeof LibraryInterfaces["LibraryFilter"] !== "undefined" && LibraryInterfaces["LibraryFilter"]) === "function" ? YourProjects_c : Object)
], YourProjects_YourProjects.prototype, "libraryFilter", void 0);
YourProjects_decorate([
    mobx_module["z" /* observable */],
    YourProjects_metadata("design:type", String)
], YourProjects_YourProjects.prototype, "textFilter", void 0);
YourProjects_decorate([
    mobx_module["z" /* observable */],
    YourProjects_metadata("design:type", typeof (YourProjects_d = typeof LibraryInterfaces["BulkActionsViewRenderer"] !== "undefined" && LibraryInterfaces["BulkActionsViewRenderer"]) === "function" ? YourProjects_d : Object)
], YourProjects_YourProjects.prototype, "_renderLibrariesBulkActionView", void 0);
YourProjects_decorate([
    mobx_module["z" /* observable */],
    YourProjects_metadata("design:type", Object)
], YourProjects_YourProjects.prototype, "isListGridToggleable", void 0);
YourProjects_decorate([
    mobx_module["z" /* observable */],
    YourProjects_metadata("design:type", Object)
], YourProjects_YourProjects.prototype, "areFiltersEnabled", void 0);
YourProjects_decorate([
    mobx_module["l" /* computed */],
    YourProjects_metadata("design:type", Object),
    YourProjects_metadata("design:paramtypes", [])
], YourProjects_YourProjects.prototype, "currentTab", null);
YourProjects_decorate([
    mobx_module["z" /* observable */],
    YourProjects_metadata("design:type", Object)
], YourProjects_YourProjects.prototype, "spacesTabUiConfig", void 0);
YourProjects_decorate([
    mobx_module["z" /* observable */],
    YourProjects_metadata("design:type", Object)
], YourProjects_YourProjects.prototype, "libTabUiConfig", void 0);
YourProjects_decorate([
    mobx_module["l" /* computed */],
    YourProjects_metadata("design:type", Object),
    YourProjects_metadata("design:paramtypes", [])
], YourProjects_YourProjects.prototype, "sortOptions", null);
YourProjects_decorate([
    mobx_module["l" /* computed */],
    YourProjects_metadata("design:type", Object),
    YourProjects_metadata("design:paramtypes", [])
], YourProjects_YourProjects.prototype, "uiConfig", null);
YourProjects_decorate([
    mobx_module["l" /* computed */],
    YourProjects_metadata("design:type", typeof (YourProjects_e = typeof LibraryInterfaces["LibraryViewState"] !== "undefined" && LibraryInterfaces["LibraryViewState"]) === "function" ? YourProjects_e : Object),
    YourProjects_metadata("design:paramtypes", [])
], YourProjects_YourProjects.prototype, "_libraryViewState", null);
YourProjects_decorate([
    mobx_module["l" /* computed */],
    YourProjects_metadata("design:type", Array),
    YourProjects_metadata("design:paramtypes", [])
], YourProjects_YourProjects.prototype, "elements", null);
YourProjects_decorate([
    mobx_module["l" /* computed */],
    YourProjects_metadata("design:type", Object),
    YourProjects_metadata("design:paramtypes", [])
], YourProjects_YourProjects.prototype, "shouldShowEmptyTeamState", null);
YourProjects_decorate([
    mobx_module["l" /* computed */],
    YourProjects_metadata("design:type", Object),
    YourProjects_metadata("design:paramtypes", [])
], YourProjects_YourProjects.prototype, "shouldShowOfflineState", null);
YourProjects_YourProjects = YourProjects_decorate([
    index_module["e" /* observer */],
    YourProjects_metadata("design:paramtypes", [Object])
], YourProjects_YourProjects);
/* harmony default export */ var components_YourProjects_YourProjects = (Object(index_es["g" /* injectIntl */])(YourProjects_YourProjects));

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/ACPAssetModel.ts + 2 modules
var ACPAssetModel = __webpack_require__("prkh");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/utils/libraryToDocument.ts


/* harmony default export */ var libraryToDocument = ((libraries) => {
    return libraries.map(doc => {
        var _a, _b;
        return new ACPAssetModel["a" /* default */]({
            id: doc.library_urn,
            path: doc.storage_path,
            title: doc.name,
            name: doc.name,
            displayName: doc.name,
            modifiedDate: new Date(doc.modified_date),
            createDate: new Date(doc.created_date),
            hasSize: false,
            isCached: false,
            repositoryId: doc.org_id,
            isUserPinned: false,
            size: undefined,
            renditionGridMain: (_a = doc.rendition_grid) === null || _a === void 0 ? void 0 : _a.main,
            renditionGridTiles: (_b = doc.rendition_grid) === null || _b === void 0 ? void 0 : _b.tiles,
            type: utils_constants["n" /* LIBRARY_MIMETYPE */],
            stableUri: '',
            externalData: doc,
            assetRef: '',
        });
    });
});

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/actions/browseLibraries.tsx


const browseLibraries = () => {
    return {
        id: 'browser',
        name: react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: 'button.browse' }),
        quiet: false,
        variant: 'primary',
        supportsMultiple: true,
        onClick: async () => {
            // Launch CCD
        },
    };
};
/* harmony default export */ var actions_browseLibraries = (browseLibraries);

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/images/404Error_180x120.svg
function _404Error_180x120_extends() {
  _404Error_180x120_extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _404Error_180x120_extends.apply(this, arguments);
}


/* harmony default export */ var _404Error_180x120 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", _404Error_180x120_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "180",
  height: "120",
  viewBox: "0 0 180 120"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["a"] || "a",
  d: "M149.5 17h-118a3.504 3.504 0 0 0-3.5 3.5v27a1.5 1.5 0 0 0 3 0V32h119v68.5a.5.5 0 0 1-.5.5h-118a.5.5 0 0 1-.5-.5v-23a1.5 1.5 0 0 0-3 0v23a3.504 3.504 0 0 0 3.5 3.5h118a3.504 3.504 0 0 0 3.5-3.5v-80a3.504 3.504 0 0 0-3.5-3.5zM31 30v-9.5a.5.5 0 0 1 .5-.5h118a.5.5 0 0 1 .5.5V30z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["a"] || "a",
  d: "M47.45 24h-10a1 1 0 0 0 0 2h10a1 1 0 0 0 0-2z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["a"] || "a",
  d: "M38.028 73.192a1.5 1.5 0 0 0 2.121-2.12l-8.55-8.55 8.55-8.55a1.5 1.5 0 0 0-2.12-2.121l-8.55 8.55-8.55-8.55a1.5 1.5 0 0 0-2.122 2.12l8.55 8.55-8.55 8.55a1.5 1.5 0 1 0 2.121 2.121l8.55-8.55z"
})));
// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/images/EmptyLibraries.svg
var EmptyLibraries = __webpack_require__("mbZj");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/components/Libraries.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2020 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
var Libraries_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;
};
var Libraries_metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};

















let Libraries_Libraries = class Libraries extends react["Component"] {
    constructor() {
        super(...arguments);
        this.selectionStore = new SelectionStore["a" /* default */]();
        this.sortOptions = [constants["f" /* UXSortBy */].name, constants["f" /* UXSortBy */].modifiedDate];
        this.headerActions = [actions_browseLibraries()];
        this.errorState = false;
        this.uiConfig = UIConfig["a" /* default */].getConfigByNamespace(this.props.browseSession, utils_constants["J" /* UiConfigNamespaces */].Libraries);
        this.setResourceData = (elements) => {
            const { cdpContext } = this.props.browseSession;
            cdpContext === null || cdpContext === void 0 ? void 0 : cdpContext.onItemsSelected(elements.map(element => {
                const library = element.externalData;
                return {
                    type: 'Reference',
                    data: library,
                };
            }));
        };
        this.onSortSelected = (sortBy) => {
            const { libraryStore } = this.props;
            if (sortBy === this.uiConfig.sortBy) {
                this.uiConfig.sortDirection = Object(constants["j" /* invertSort */])(this.uiConfig.sortDirection);
            }
            this.uiConfig.sortBy = sortBy;
            libraryStore.sortLibraries();
            if (this.workflow) {
                const data = {
                    ...ProjectAnalytics["g" /* default */].scaffoldEvent(ProjectAnalytics["c" /* Subcategory */].Navigation, ProjectAnalytics["d" /* Subtype */].sortBy, ProjectAnalytics["e" /* Type */].click, this.workflow),
                    ui: {
                        sequence: sortBy,
                        sort_direction: this.uiConfig.sortDirection,
                        view_type: this.uiConfig.view,
                    },
                };
                Object.assign(data.event, { value: sortBy });
                ProjectAnalytics["g" /* default */].fireEvent(data);
            }
        };
        this.onItemClick = (element) => {
            this.selectionStore.addSelection(element);
        };
        this.onSelectionChange = ({ selectedElements }) => {
            this.setResourceData(selectedElements);
        };
    }
    get subcategory() {
        if (this.props.browseSession.launchedFromCDP) {
            return ProjectAnalytics["c" /* Subcategory */].AddResourceModal;
        }
    }
    get workflow() {
        if (this.props.browseSession.launchedFromCDP) {
            return ProjectAnalytics["f" /* Workflow */].AddLibrary;
        }
    }
    async componentDidMount() {
        const { sortBy: sequence, sortDirection: sort_order, view: view_type } = this.uiConfig;
        if (this.subcategory && this.workflow) {
            ProjectAnalytics["g" /* default */].fireEvent({
                ...ProjectAnalytics["g" /* default */].scaffoldEvent(this.subcategory, ProjectAnalytics["d" /* Subtype */].modal, ProjectAnalytics["e" /* Type */].render, this.workflow),
                ui: {
                    sequence,
                    sort_order,
                    view_type,
                },
            });
        }
        try {
            await this.props.libraryStore.fetchLibraries();
        }
        catch (err) {
            this.errorState = true;
        }
    }
    onViewModeChange(value) {
        this.uiConfig.view = value;
        if (this.workflow) {
            ProjectAnalytics["g" /* default */].fireEvent({
                ...ProjectAnalytics["g" /* default */].scaffoldEvent(ProjectAnalytics["c" /* Subcategory */].Navigation, value, ProjectAnalytics["e" /* Type */].click, this.workflow),
                ui: {
                    sequence: this.uiConfig.sortBy,
                    sort_direction: this.uiConfig.sortDirection,
                    view_type: value,
                },
            });
        }
    }
    renderErrorState() {
        const { intl } = this.props;
        return (react_default.a.createElement(EmptyState["a" /* default */], { description: react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "projectInfo.error.description" }), heading: react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "projectInfo.error.heading", values: {
                    section: intl.formatMessage({ id: 'project1Up.section.libraries' }),
                } }), illustration: react_default.a.createElement(_404Error_180x120, null) }));
    }
    renderEmptyState() {
        const { intl } = this.props;
        return (react_default.a.createElement(EmptyState["a" /* default */], { description: intl.formatMessage({ id: 'libraries.modal.empty.description' }), heading: intl.formatMessage({ id: 'libraries.modal.empty.heading' }), illustration: react_default.a.createElement(EmptyLibraries["a" /* default */], null) }));
    }
    render() {
        const { libraryStore, projectList } = this.props;
        const { isMobileLayout, launchedFromCDP } = projectList.app;
        const visibleElements = libraryToDocument(libraryStore.libraries).filter(library => !library.isHidden);
        const isLoading = libraryStore.isLoadingFirstPage || libraryStore.isLoadingMorePages;
        return this.errorState ? (this.renderErrorState()) : visibleElements.length === 0 && !isLoading ? (this.renderEmptyState()) : (react_default.a.createElement(CDOView["a" /* CDOView */], { projectList: projectList, className: "Libraries", collectionType: "libraries", elements: visibleElements, ingestSubcategory: this.subcategory, isBusy: () => libraryStore.isLoadingFirstPage, view: isMobileLayout ? utils_constants["L" /* ViewMode */].List : this.uiConfig.view, onItemClicked: this.onItemClick, sortOptions: this.sortOptions, selectionStore: this.selectionStore, onSortSelected: this.onSortSelected, onSelectionChange: this.onSelectionChange, activeSort: this.uiConfig.sortBy, activeSortDirection: this.uiConfig.sortDirection, ccxIngest: ProjectAnalytics["g" /* default */].ingestController },
            react_default.a.createElement(components_Header, { browseSession: this.props.browseSession, viewType: "libraries", showInlineSpinner: libraryStore.isLoadingMorePages &&
                    !this.props.browseSession.showOfflineWithFeatureFlag, renderShareSheet: this.props.renderShareSheet },
                react_default.a.createElement(SubHeader["a" /* default */], { browseSession: this.props.browseSession, activeSort: this.uiConfig.sortBy, activeSortDirection: this.uiConfig.sortDirection, mobile: isMobileLayout, sortOptions: this.sortOptions, onSortBy: this.onSortSelected, unselectedHeaderActions: launchedFromCDP ? [] : this.headerActions, viewMode: this.uiConfig.view, onViewModeChange: value => this.onViewModeChange(value), showListGridToggle: !isMobileLayout && !!visibleElements.length, inCDP: false, isLoading: () => libraryStore.isLoadingFirstPage })),
            react_default.a.createElement(CDOView["c" /* GridViewPlaceholder */], { isHeaderVisible: false, renditionType: 'mosaic', preferSmallerGridSizes: launchedFromCDP, ccxIngest: ProjectAnalytics["g" /* default */].ingestController },
                react_default.a.createElement(CDOView["b" /* GridItemPlaceholder */], { metadataFormat: "empty" })),
            react_default.a.createElement(CDOView["e" /* ListViewPlaceholder */], { className: "Libraries", isHeaderVisible: true, unsortableColumns: true ? ['size'] : undefined, columns: ['selectbox', 'name', 'modifiedDate'], dateSortOptions: constants["i" /* UX_DATE_SORT_MENU_ITEMS */].filter(item => item.value === 'modifiedDate'), renditionType: 'mosaic', ccxIngest: ProjectAnalytics["g" /* default */].ingestController },
                react_default.a.createElement(CDOView["d" /* ListItemPlaceholder */], { metadataFormat: "empty" }))));
    }
};
Libraries_decorate([
    mobx_module["z" /* observable */],
    Libraries_metadata("design:type", Array)
], Libraries_Libraries.prototype, "headerActions", void 0);
Libraries_decorate([
    mobx_module["z" /* observable */],
    Libraries_metadata("design:type", Boolean)
], Libraries_Libraries.prototype, "errorState", void 0);
Libraries_Libraries = Libraries_decorate([
    index_module["e" /* observer */]
], Libraries_Libraries);
/* harmony default export */ var components_Libraries = (Object(index_es["g" /* injectIntl */])(Libraries_Libraries));

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/utils/action.ts
var utils_action = __webpack_require__("duTG");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/actions/ProjectAction.tsx
var ProjectAction = __webpack_require__("zpOJ");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/actions/bookmarkProject.tsx





const isVisibleFactory = (bookmarkedFilter) => (elements) => {
    return elements.some(document => document.bookmarked === bookmarkedFilter);
};
const bookmarkAction = (actionData) => new utils_action["a" /* default */]({
    supportsMultiple: true,
    getDisabledTooltipMsgId: () => 'tooltip.offline.general',
    ...actionData,
});
const followAction = (follow, isVisible = isVisibleFactory(false)) => bookmarkAction({
    value: ProjectAction["a" /* default */].follow,
    label: 'button.favorite',
    icon: react_default.a.createElement(Star_default.a, null),
    execute: follow,
    isVisible,
});
const unfollowAction = (unfollow, isVisible = isVisibleFactory(true)) => bookmarkAction({
    value: ProjectAction["a" /* default */].unfollow,
    label: 'button.unfavorite',
    icon: react_default.a.createElement(StarOutline_default.a, null),
    execute: unfollow,
    isVisible,
});

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/actions/archive.tsx
var actions_archive = __webpack_require__("ye5n");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/actions/projectInfo.tsx





// Based on 3 types of roles to determine visibility:
//   Viewer - User has view permission to content within the space > View Info
//   Editor (1) - User has edit access to the space, but not the team > View Info
//   Editor (2) - User has edit access to the space and the team > Edit Space
const projectInfo_isVisibleFactory = (editable) => (elements) => {
    return elements.every(element => {
        const space = element.externalData;
        // isEditable = isContributor && hasEditorRoleOnTeam(teamId)
        return space.isEditable === editable;
    });
};
const viewInfo = (showModal, isVisible = projectInfo_isVisibleFactory(false)) => new utils_action["a" /* default */]({
    execute: async (elements) => await showModal(elements[0]),
    getDisabledTooltipMsgId: () => 'tooltip.offline.general',
    icon: react_default.a.createElement(Info_default.a, null),
    isVisible: isVisible,
    label: 'projectInfo.action.view',
    value: ProjectAction["a" /* default */].showProjectInfo,
});
const editSpace = (showModal, isVisible = projectInfo_isVisibleFactory(true)) => new utils_action["a" /* default */]({
    execute: async (elements) => await showModal(elements[0]),
    getDisabledTooltipMsgId: () => 'tooltip.offline.general',
    icon: react_default.a.createElement(Edit_default.a, null),
    isVisible,
    label: 'projectInfo.action.edit',
    value: ProjectAction["a" /* default */].editSpace,
});

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/actions/copyAndMove.tsx
var copyAndMove = __webpack_require__("Jk2O");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/styles/Projects.css
var styles_Projects = __webpack_require__("IZDe");
var Projects_default = /*#__PURE__*/__webpack_require__.n(styles_Projects);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/hooks/ProjectContext.ts
var ProjectContext = __webpack_require__("dCkJ");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/hooks/AppContext.ts
var AppContext = __webpack_require__("m/KA");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/components/Projects.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2020 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
var Projects_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;
};
var Projects_metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};




































let Projects_Projects = class Projects extends react["Component"] {
    constructor(props) {
        super(props);
        /**
         * Execute the selected action in space-1up header context menu
         */
        this.onProjectActionSelected = (value) => {
            var _a;
            let subtype;
            const browseSession = this.browseSession;
            const { currentProject } = browseSession;
            const projectAsDocument = Object(projectToDocument["a" /* default */])(currentProject ? [currentProject] : []);
            switch (value) {
                case ProjectAction["a" /* default */].showProjectInfo:
                    currentProject && browseSession.spaceDialogs.showSpaceInfo(currentProject);
                    subtype = ProjectAnalytics["d" /* Subtype */].projectInfo;
                    break;
                case ProjectAction["a" /* default */].editSpace:
                    currentProject && browseSession.spaceDialogs.showSpaceInfo(currentProject);
                    subtype = ProjectAnalytics["d" /* Subtype */].projectInfo;
                    break;
                case ProjectAction["a" /* default */].leave:
                    // Leave the space
                    // CCI team owner can't leave spaces that in their own team.
                    // Call to execute the action.
                    Object(leaveResource["a" /* default */])({
                        app: browseSession,
                        getSelectedSpaces: () => [browseSession.currentProject],
                        onLeaveAfter: items => this.userLeftProjects(items),
                    }).execute(projectAsDocument);
                    subtype = ProjectAnalytics["d" /* Subtype */].leaveProject;
                    break;
                case ProjectAction["a" /* default */].archive:
                    Object(actions_archive["a" /* default */])({
                        archive: this.projectList.deleteProjects,
                        app: browseSession,
                        showWarning: true,
                    }).execute(projectAsDocument, () => browseSession.navigateAndNotify(browseSession.sameTeamRouteWithDetails({})));
                    subtype = ProjectAnalytics["d" /* Subtype */].deleteProject;
                    break;
                case ProjectAction["a" /* default */].follow:
                    currentProject === null || currentProject === void 0 ? void 0 : currentProject.follow(browseSession);
                    subtype = ProjectAnalytics["d" /* Subtype */].followProject;
                    break;
                case ProjectAction["a" /* default */].unfollow:
                    currentProject === null || currentProject === void 0 ? void 0 : currentProject.unFollow(browseSession);
                    subtype = ProjectAnalytics["d" /* Subtype */].unfollowProject;
                    break;
                case ProjectAction["a" /* default */].move:
                    Object(copyAndMove["b" /* move */])({
                        app: this.browseSession,
                        sourceTeam: User["a" /* default */].getTeamFromId(this.browseSession.currentTeamId),
                    }).execute(projectAsDocument);
                    break;
                default:
                    break;
            }
            if (subtype) {
                const data = ProjectAnalytics["g" /* default */].scaffoldEvent(ProjectAnalytics["c" /* Subcategory */].Actions, subtype, ProjectAnalytics["e" /* Type */].click, ProjectAnalytics["f" /* Workflow */].Projects);
                Object.assign(data.event, {
                    value: ((_a = browseSession.currentProject) === null || _a === void 0 ? void 0 : _a.isContributor) ? 'contributor' : 'viewer',
                });
                ProjectAnalytics["g" /* default */].fireEvent(data);
            }
        };
        /**
         * Determine available actions for each space in team 1up view
         */
        this.getProjectActions = (args) => {
            const { archive, workflow } = args;
            return new Map([
                [
                    // Favorite the spaces
                    'follow',
                    followAction(elements => Project["f" /* default */].bookmark(elements.map(elem => elem.externalData), this.browseSession, true)),
                ],
                [
                    // Unfavorite the spaces
                    'unfollow',
                    unfollowAction(elements => Project["f" /* default */].bookmark(elements.map(elem => elem.externalData), this.browseSession, false)),
                ],
                [
                    // Launch shareSheet to add/remove members of the space or for the user to leave the space.
                    'addContributors',
                    Object(addMember["a" /* collaboratorAction */])({
                        role: 'editor',
                        openShareSheet: this.props.openShareSheet,
                        getSpace: ({ id }) => this.projectsCollection.find(project => project.id === id),
                        isVisible: selectedItems => Host["a" /* default */].canShare && selectedItems.every(item => item.role === 'CONTRIBUTOR'),
                        onLeaveAfter: item => {
                            var _a;
                            this.projectList.onUserLeftProject(item);
                            if (item.id === ((_a = this.browseSession.currentProject) === null || _a === void 0 ? void 0 : _a.id)) {
                                this.browseSession.navigateAndNotify(this.browseSession.sameTeamRouteWithDetails({}));
                            }
                        },
                    }),
                ],
                [
                    // View space info
                    'viewInfo',
                    viewInfo(async ({ id }) => {
                        const project = this.projectsCollection.find(item => item.id === id);
                        if (project) {
                            await this.browseSession.spaceDialogs.showSpaceInfo(project);
                        }
                    }),
                ],
                [
                    // Edit space info
                    'editSpace',
                    editSpace(async ({ id }) => {
                        const project = this.projectsCollection.find(item => item.id === id);
                        if (project) {
                            await this.browseSession.spaceDialogs.showSpaceInfo(project);
                        }
                    }),
                ],
                [
                    // Leave the space
                    // CCI team owner can't leave spaces that in their own team user storage.
                    'leaveProject',
                    Object(leaveResource["a" /* default */])({
                        app: this.browseSession,
                        getSelectedSpaces: items => this.projectsCollection.filter(project => items.map(({ id }) => id).includes(project.id)),
                        isVisible: selectedItems => selectedItems.every(item => item.role === 'CONTRIBUTOR' &&
                            !User["a" /* default */].isOwnerOfCCITeam(item.externalData.teamId)),
                        onLeaveAfter: items => this.userLeftProjects(items),
                        ingestEventData: workflow &&
                            ProjectAnalytics["g" /* default */].scaffoldEvent(ProjectAnalytics["c" /* Subcategory */].Actions, ProjectAnalytics["d" /* Subtype */].leaveProject, ProjectAnalytics["e" /* Type */].click, workflow),
                    }),
                ],
                [
                    // Move spaces to new team. Disabled for CCI Teams. Each CCI team is considered an independent
                    // repository and we don't allow move content across repositories.
                    'move',
                    Object(copyAndMove["b" /* move */])({
                        app: this.browseSession,
                        sourceTeam: User["a" /* default */].getTeamFromId(this.browseSession.currentTeamId),
                        isVisible: selectedItems => selectedItems.every(item => {
                            var _a;
                            return item.role === 'CONTRIBUTOR' &&
                                User["a" /* default */].hasEditorRoleOnTeam(item.externalData.teamId) &&
                                ((_a = User["a" /* default */].getTeamFromId(this.browseSession.currentTeamId)) === null || _a === void 0 ? void 0 : _a.repositoryOwnerType) === 'org';
                        }),
                    }),
                ],
                [
                    // Archive the space (CTA label 'delete')
                    'archive',
                    Object(actions_archive["a" /* default */])({
                        archive,
                        app: this.browseSession,
                        showWarning: true,
                        isVisible: selectedItems => {
                            return selectedItems.every(item => {
                                const project = item.externalData;
                                return project.isEditable && project.isSupportedProject;
                            });
                        },
                    }),
                ],
            ]);
        };
        this.state = { hasError: false };
        this.projectsRef = react_default.a.createRef();
        const { projectsClient } = this.browseSession;
        // Use this component's context when showing modals.
        projectsClient.projectsRef = this.projectsRef;
    }
    get browseSession() {
        return getFromPublic(this.props.browseSession);
    }
    componentDidMount() {
        var _a;
        this.browseSession.browseSurfaceMounted();
        if (UXPUtils["a" /* default */].usingUXP()) {
            (_a = getRootComponent()) === null || _a === void 0 ? void 0 : _a.classList.add(Projects_default.a.popoverOverride);
        }
    }
    componentWillUnmount() {
        var _a;
        this.browseSession.browseSurfaceUnmounted();
        if (UXPUtils["a" /* default */].usingUXP()) {
            (_a = getRootComponent()) === null || _a === void 0 ? void 0 : _a.classList.remove(Projects_default.a.popoverOverride);
        }
    }
    componentDidCatch(error, info) {
        Settings["b" /* settings */].logger.error(error);
        Settings["b" /* settings */].logger.info(info);
    }
    static getDerivedStateFromError(error) {
        return {
            error,
            hasError: true,
        };
    }
    get projectsClient() {
        return this.browseSession.projectsClient;
    }
    get projectList() {
        return this.browseSession.projectList;
    }
    userLeftProjects(items) {
        if (items.length === 0) {
            return;
        }
        this.projectList.onUserLeftProjects(items);
        const { currentProject } = this.browseSession;
        const navigateToParent = items.some(item => item.id && item.id === (currentProject === null || currentProject === void 0 ? void 0 : currentProject.id));
        if (navigateToParent) {
            const route = this.browseSession.sameTeamRouteWithDetails({});
            this.browseSession.navigateAndNotify(route);
        }
    }
    get projectsCollection() {
        return this.projectList.yourProjects;
    }
    renderProjects() {
        const { onProjectOneUpItemClick, openDocuments, openShareSheet } = this.props;
        const { currentTeamId, currentTeamIsOtherTeams, currentSpaceId, showOfflineWithFeatureFlag, } = this.browseSession;
        const { navigationDataAvailable, status } = SharedStore["d" /* sharedStore */];
        if (!currentTeamId && !currentTeamIsOtherTeams) {
            // if teams haven't loaded yet, we don't know if there's anything to show yet, so show a spinner
            if (!navigationDataAvailable) {
                // show the spinner even when we have data, but haven't set the selected team yet
                if (!showOfflineWithFeatureFlag &&
                    (status === 'pending' || status === 'loading' || status === 'hasSpaces')) {
                    return react_default.a.createElement(Wait_default.a, { size: "L", centered: true });
                }
                if (status === 'error') {
                    return (react_default.a.createElement(EmptyState["a" /* default */], { className: "yourProjectsEmptyState", illustration: react_default.a.createElement(ErrorLoading["a" /* default */], null), description: react_default.a.createElement(react_default.a.Fragment, null,
                            react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "teams1up.error.description" }),
                            react_default.a.createElement(Link_default.a, { variant: 'quiet', className: Projects_default.a.sidebarHeadingLearnMore, onClick: () => {
                                    SharedStore["d" /* sharedStore */].refreshContent().catch(e => {
                                        Settings["b" /* settings */].logger.warn('Failed refreshing content from spaces error message.', e);
                                    });
                                } },
                                react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "button.retry" }))), heading: react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "teams1up.error.heading" }) }));
                }
            }
            // Nothing to show. The host has to call navigate.
            return react_default.a.createElement("div", null);
        }
        if (currentSpaceId) {
            const { currentFolder, currentProject } = this.browseSession;
            const projectFailure = currentProject && currentProject.reloadFailure;
            const folderNotLoaded = !currentFolder || !(currentProject === null || currentProject === void 0 ? void 0 : currentProject.rootFolder);
            // when offline and cannot load the project or folder show appropriate message
            if (showOfflineWithFeatureFlag && (projectFailure || folderNotLoaded)) {
                return react_default.a.createElement(Offline["a" /* default */], { cdoUISettings: this.projectList.uiConfig.cdoUISettings });
            }
            if (folderNotLoaded) {
                return react_default.a.createElement(Wait_default.a, { size: "L", centered: true });
            }
            return (react_default.a.createElement(ProjectContext["a" /* default */].Provider, { value: currentProject },
                react_default.a.createElement(Project1Up["a" /* default */], { getProjectActions: this.getProjectActions.bind(this), onProjectActionSelected: this.onProjectActionSelected, onProjectOneUpItemClick: onProjectOneUpItemClick, openDocuments: openDocuments, openShareSheet: openShareSheet, browseSession: this.browseSession })));
        }
        return (react_default.a.createElement(components_YourProjects_YourProjects, { showClientUpgradeDialog: () => {
                showUpgradeDialog(this.browseSession);
            }, openShareSheet: openShareSheet, getProjectActions: this.getProjectActions.bind(this), browseSession: this.browseSession, renderShareSheet: this.props.renderShareSheet }));
    }
    renderView(viewType) {
        const { libraryStore, projectList } = this.browseSession;
        switch (viewType) {
            case 'libraries':
                return (react_default.a.createElement(components_Libraries, { libraryStore: libraryStore, projectList: projectList, browseSession: this.browseSession, renderShareSheet: this.props.renderShareSheet }));
            default:
                return this.renderProjects();
        }
    }
    render() {
        var _a;
        const start = performance.now();
        const { viewType } = this.props;
        const app = this.browseSession;
        const { currentTeamId } = this.browseSession;
        const { launchedFromCDP, intl, isMobileLayout, projectList } = app;
        const { theme, useDarkestPaletteForDark } = SharedStore["d" /* sharedStore */];
        // TODO: remove once HS supports true dark
        const _theme = theme === 'dark' && useDarkestPaletteForDark ? 'darkest' : theme;
        const scaffoldEvent = ProjectAnalytics["g" /* default */].scaffoldEvent(ProjectAnalytics["c" /* Subcategory */].Space, ProjectAnalytics["d" /* Subtype */].team, ProjectAnalytics["e" /* Type */].open, ProjectAnalytics["f" /* Workflow */].Spaces);
        const elapsedTime = performance.now() - start;
        // Dunamis Analytics
        ProjectAnalytics["g" /* default */].fireEvent({
            event: {
                ...scaffoldEvent.event,
                value: elapsedTime,
                count: projectList.projects.length,
                org_guid: (_a = User["a" /* default */].getTeamFromId(currentTeamId)) === null || _a === void 0 ? void 0 : _a.repositoryID,
                context_guid: null,
            },
            ui: {
                view_type: ProjectAnalytics["f" /* Workflow */].Projects,
            },
            custom: {
                team_id: currentTeamId,
            },
        });
        return (react_default.a.createElement(index_es["e" /* IntlProvider */], { locale: intl.locale, messages: intl.messages, ref: this.projectsRef },
            react_default.a.createElement(index_module["b" /* Provider */], { projectList: projectList },
                react_default.a.createElement(AppContext["a" /* default */].Provider, { value: this.browseSession },
                    react_default.a.createElement("div", { className: classnames_default()(Projects_default.a.Projects, colors_default.a[_theme], {
                            // We'll use "CCProjectsRoot" as a *global* style to contain
                            // CSS variables that would normally go in ":root", since
                            // on Windows, UXP doesn't seem to treat ":root" correctly.
                            // See <https://jira.corp.adobe.com/browse/UXP-17394>.
                            CCProjectsRoot: true,
                            [Projects_default.a.InCDP]: launchedFromCDP,
                            [Projects_default.a.mobile]: isMobileLayout,
                        }) }, !app.showOffline ||
                        this.browseSession.showOfflineWithFeatureFlag ||
                        this.browseSession.activeRenameState.element !== undefined ? (this.renderView(viewType)) : (react_default.a.createElement(react_default.a.Fragment, null,
                        react_default.a.createElement(components_Header, { viewType: "projects", InCDP: launchedFromCDP, appLanguage: intl.appLanguage, browseSession: this.browseSession, renderShareSheet: this.props.renderShareSheet }),
                        react_default.a.createElement(Offline["a" /* default */], { cdoUISettings: projectList.uiConfig.cdoUISettings, browseSession: this.props.browseSession }))))))));
    }
};
Projects_decorate([
    mobx_module["l" /* computed */],
    Projects_metadata("design:type", Object),
    Projects_metadata("design:paramtypes", [])
], Projects_Projects.prototype, "browseSession", null);
Projects_Projects = Projects_decorate([
    index_module["e" /* observer */],
    Projects_metadata("design:paramtypes", [Object])
], Projects_Projects);
/* harmony default export */ var components_Projects = (Projects_Projects);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/interfaces/IIMSData.ts
var IIMSData = __webpack_require__("AAv5");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/components/SharesheetProjectsWrapper.tsx






/* harmony default export */ var SharesheetProjectsWrapper = (({ spacesProps }) => {
    var _a;
    let shareSheetCallback;
    const openShareSheet = (data, onEvent) => {
        var _a, _b, _c;
        if (!((_a = Host["a" /* default */].cdo) === null || _a === void 0 ? void 0 : _a.toggleShareSheet) || !data) {
            Settings["b" /* settings */].logger.error('openShareSheet called without toggleShareSheet or asset information');
            return;
        }
        shareSheetCallback = onEvent;
        (_c = (_b = Host["a" /* default */].cdo) === null || _b === void 0 ? void 0 : _b.toggleShareSheet) === null || _c === void 0 ? void 0 : _c.call(_b, JSON.stringify(data));
    };
    (_a = Host["a" /* default */].cdo) === null || _a === void 0 ? void 0 : _a.on('SHARESHEETCALLBACK', (data) => {
        if (!shareSheetCallback) {
            return;
        }
        try {
            const { callback } = JSON.parse(data);
            switch (callback) {
                case ShareSheetInterface["a" /* ShareSheetCallbackType */].COLLABORATOR_COUNT:
                    shareSheetCallback({ type: callback });
                    break;
                case ShareSheetInterface["a" /* ShareSheetCallbackType */].INVITE_SENT:
                    const start = performance.now();
                    shareSheetCallback({ type: callback });
                    const elapsedTime = performance.now() - start;
                    const scaffoldEvent = ProjectAnalytics["g" /* default */].scaffoldEvent(ProjectAnalytics["c" /* Subcategory */].Space, ProjectAnalytics["d" /* Subtype */].invite, ProjectAnalytics["e" /* Type */].success, ProjectAnalytics["f" /* Workflow */].Spaces);
                    // Dunamis Analytics
                    ProjectAnalytics["g" /* default */].fireEvent({
                        event: {
                            ...scaffoldEvent.event,
                            value: elapsedTime,
                        },
                        ui: {
                            view_type: ProjectAnalytics["f" /* Workflow */].SpaceActions,
                        },
                    });
                    break;
                case ShareSheetInterface["a" /* ShareSheetCallbackType */].MESSAGE_REQUEST:
                    shareSheetCallback({ type: callback });
                    break;
                case ShareSheetInterface["a" /* ShareSheetCallbackType */].ON_CLOSE:
                    shareSheetCallback({ type: callback });
                    break;
                case ShareSheetInterface["a" /* ShareSheetCallbackType */].PERMISSION_REVOKED:
                    shareSheetCallback({ type: callback });
                    break;
                default:
                    break;
            }
        }
        catch (e) { }
    });
    return react_default.a.createElement(components_Projects, Object.assign({ openShareSheet: openShareSheet }, spacesProps));
});

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/main.tsx














// The following lines allow mobx to function properly when multiple
// versions may be loaded on the page (such as in shared components).

Object(mobx_module["m" /* configure */])({ isolateGlobalState: true });
// This is ignored by our own Webpack build (as an external);
// this require will execute in our consumers' build processes.
__webpack_require__("ht41");
// **********************************************************************
// PLEASE NOTE: This file's exports might be used by clients.
// We should only export types and data that we intend to publicly support.
// Please take care when exporting new data or modifying existing exports.
// We should try to add documentation to all public exports when possible.
// **********************************************************************
/* harmony default export */ var main = __webpack_exports__["default"] = (components_Projects);
/**
 * Configure the Spaces Component with certain global feature flags,
 * applied for all instances of the component, including inside UAP.
 * Hosts who do not want the default feature flags (e.g. MVP)
 * should call this method first to configure the Spaces Component.
 */
function configure({ featureFlags }) {
    Host["a" /* default */].configureFeatureFlags(featureFlags);
}

const main_BrowseSession = BrowseSessionPublic;
const sharedStore = SharedStore["e" /* sharedStorePublic */];





/***/ }),

/***/ "BzLU":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return AccessTypes; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return AccessIcon; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return AccessIconAndTooltip; });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("VIzJ");
/* harmony import */ var _react_react_spectrum_OverlayTrigger__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("uYrR");
/* harmony import */ var _react_react_spectrum_OverlayTrigger__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_OverlayTrigger__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _react_react_spectrum_Tooltip__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("DUuf");
/* harmony import */ var _react_react_spectrum_Tooltip__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Tooltip__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _react_react_spectrum_Icon_Building__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("0iqa");
/* harmony import */ var _react_react_spectrum_Icon_Building__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Icon_Building__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var _react_react_spectrum_Icon_UsersLock__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("5cqT");
/* harmony import */ var _react_react_spectrum_Icon_UsersLock__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Icon_UsersLock__WEBPACK_IMPORTED_MODULE_5__);
/* harmony import */ var _styles_SpaceAccess_css__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("nuQG");
/* harmony import */ var _styles_SpaceAccess_css__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_styles_SpaceAccess_css__WEBPACK_IMPORTED_MODULE_6__);







var AccessTypes;
(function (AccessTypes) {
    AccessTypes["private"] = "private";
    AccessTypes["team"] = "team";
})(AccessTypes || (AccessTypes = {}));
const AccessIcon = ({ access, className, size = 'XS' }) => access === 'team' ? (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_react_react_spectrum_Icon_Building__WEBPACK_IMPORTED_MODULE_4___default.a, { size: size, className: className })) : (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_react_react_spectrum_Icon_UsersLock__WEBPACK_IMPORTED_MODULE_5___default.a, { size: size, className: className }));
const AccessIconAndTooltip = ({ access, size, team }) => {
    return (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_react_react_spectrum_OverlayTrigger__WEBPACK_IMPORTED_MODULE_2___default.a, { placement: "bottom" },
        react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", { className: _styles_SpaceAccess_css__WEBPACK_IMPORTED_MODULE_6___default.a.icon },
            react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(AccessIcon, { access: access, size: size })),
        react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_react_react_spectrum_Tooltip__WEBPACK_IMPORTED_MODULE_3___default.a, { className: _styles_SpaceAccess_css__WEBPACK_IMPORTED_MODULE_6___default.a.tooltip, placement: "top" },
            react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_1__[/* FormattedMessage */ "c"], { id: `space.access.${access}.tooltip`, values: { team } }))));
};


/***/ }),

/***/ "C+dZ":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("592x"),
      24: __webpack_require__("KoUc")
    }
  }));
};

WrappedIcon.displayName = 'Edit';
exports.default = WrappedIcon;

/***/ }),

/***/ "C+gy":
/***/ (function(module, exports) {

exports['des-ecb'] = {
  key: 8,
  iv: 0
};
exports['des-cbc'] = exports.des = {
  key: 8,
  iv: 8
};
exports['des-ede3-cbc'] = exports.des3 = {
  key: 24,
  iv: 8
};
exports['des-ede3'] = {
  key: 24,
  iv: 0
};
exports['des-ede-cbc'] = {
  key: 16,
  iv: 8
};
exports['des-ede'] = {
  key: 16,
  iv: 0
};

/***/ }),

/***/ "C0qj":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "t", function() { return UXSortBy; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "k", function() { return HTTPStatusCodes; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "l", function() { return HTTP_CODE_LENGTH; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "z", function() { return samHttpStatusCodesMap; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "w", function() { return UXSortDir; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "n", function() { return ProcessingState; });
/* unused harmony export SHARE_STATUS_FROM_CLOUD_CONTENTS */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "x", function() { return UX_SORT_TO_INGEST; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "y", function() { return createComparator; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "j", function() { return ENABLE_COLLABORATORS_ICON; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "q", function() { return TOAST_DEFAULT_DELAY; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "r", function() { return TOAST_ERROR_DELAY; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "s", function() { return TOAST_EXCEEDED_QUOTA_DELAY; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return CCD_CONTENTVIEW_RESIZE_EVENT; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return CDO_UPDATE_SCROLL_POSITION; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ACPL_REGISTRATION_STATES; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return CORESYNC_STATES; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return CONNECTION_STATES; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "o", function() { return QUOTA_STATES; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return AssetChangeOperation; });
/* harmony import */ var _ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("iMIL");
/* harmony import */ var _ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_0__);
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2019 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/

/*
 * In order to keep views agnostic of the data sources (e.g., Cloud Docs vs. Recents vs. Resources),
 * separate UX sorting enum from API sorting parameters. This is the *only* file that should reference
 * anything in the acp-fetch package.
 */
var UXSortBy;
(function (UXSortBy) {
    UXSortBy["accessDate"] = "accessDate";
    UXSortBy["createDate"] = "createDate";
    UXSortBy["modifiedDate"] = "modifiedDate";
    UXSortBy["shareDate"] = "shareDate";
    UXSortBy["size"] = "size";
    UXSortBy["title"] = "title";
})(UXSortBy || (UXSortBy = {}));
var HTTPStatusCodes;
(function (HTTPStatusCodes) {
    HTTPStatusCodes[HTTPStatusCodes["Conflict"] = 409] = "Conflict";
    HTTPStatusCodes[HTTPStatusCodes["FileNotFound"] = 404] = "FileNotFound";
    HTTPStatusCodes[HTTPStatusCodes["PreconditionFailed"] = 412] = "PreconditionFailed";
    HTTPStatusCodes[HTTPStatusCodes["UnprocessableEntity"] = 422] = "UnprocessableEntity";
})(HTTPStatusCodes || (HTTPStatusCodes = {}));
const HTTP_CODE_LENGTH = 3;
/**
 * @TODO Remove this mapping when SAM.js normalizes the various SAM.c++ codes into HTTP codes.
 * In the meantime we need to map some codes.
 *
 * @info SAM has 3 domains of low-level codes, and some non-low-level codes that have no domain. Only one of
 * these domains (kAcplSdkError) can be mapped to equivalent HTTP codes by parsing out the first 3 digits. The
 * others may not cleanly map to an HTTP code or have a format which doesn't represent the HTTP code.
 */
const samHttpStatusCodesMap = {
    /** See:
     * - https://git.corp.adobe.com/torq/acpl-model/blob/694f660e44216ef95d7f73ca9a618148086346bf/modules/acpl-model/src/cpp/acpl/model/psacpl/RequestsManagerFwd.h#L145
     * - https://git.corp.adobe.com/torq/acpl-model/blob/9b457e8d2121e63f257e470141f24c99bc083f0b/modules/acpl-model/src/cpp/acpl/model/psacpl/MonitorsManager.cpp#L61
     */
    20002: HTTPStatusCodes.UnprocessableEntity,
    20026: HTTPStatusCodes.Conflict,
};
var UXSortDir;
(function (UXSortDir) {
    UXSortDir["asc"] = "asc";
    UXSortDir["desc"] = "desc";
})(UXSortDir || (UXSortDir = {}));
var ProcessingState;
(function (ProcessingState) {
    ProcessingState["Pending"] = "pending";
    ProcessingState["Fetching"] = "fetching";
    ProcessingState["Done"] = "done";
    ProcessingState["Error"] = "error";
    ProcessingState["Processing"] = "processing";
    ProcessingState["Idle"] = "idle";
})(ProcessingState || (ProcessingState = {}));
// When true, share status will come from Storage API, otherwise it comes from collaborators API
const SHARE_STATUS_FROM_CLOUD_CONTENTS = false;
/**
 * Map of UXSortBy keys to values used for ingest metrics
 */
const UX_SORT_TO_INGEST = {
    [UXSortBy.accessDate]: 'Date Opened',
    [UXSortBy.createDate]: 'Date Created',
    [UXSortBy.modifiedDate]: 'Date Modified',
    [UXSortBy.shareDate]: 'Date Shared',
    [UXSortBy.size]: 'Size',
    [UXSortBy.title]: 'Name',
};
/**
 * Static method to be used for creating a comparator for sorting Documents by a particular field
 * @param docA
 * @param docB
 * @constructor
 */
const createComparator = (uxSortBy, uxSortDir, locale) => {
    let showIntlError = true;
    return (docA, docB) => {
        if (uxSortDir === UXSortDir.desc) {
            [docB, docA] = [docA, docB]; // eslint-disable-line no-param-reassign
        }
        // @ts-ignore TODO: UXSortBy contains options that may not exist as a key of ICollectionItem
        let valueA = uxSortBy === UXSortBy.size ? +docA[uxSortBy] : docA[uxSortBy];
        // @ts-ignore TODO: UXSortBy contains options that may not exist as a key of ICollectionItem
        let valueB = uxSortBy === UXSortBy.size ? +docB[uxSortBy] : docB[uxSortBy];
        if (uxSortBy === UXSortBy.title) {
            valueA = valueA.toLowerCase();
            valueB = valueB.toLowerCase();
            try {
                return Intl.Collator(locale).compare(valueA, valueB);
            }
            catch (e) {
                if (showIntlError) {
                    showIntlError = false;
                    // eslint-disable-next-line no-console
                    console.error('createComparator() failed, incorrect version of Intl compiled into UXP host. ' +
                        'No sorting will be done.', e);
                }
                return 0;
            }
        }
        if (valueA < valueB) {
            return -1;
        }
        if (valueA > valueB) {
            return 1;
        }
        // A must be equal to B
        return 0;
    };
};
/**
 * Collaboration icon settings. Temporary until details can be hammered out:
 *
 * 1. Where to get share status? Storage API suddenly stopped returning `collaboration` data consistently.
 *    (see https://jira.corp.adobe.com/browse/SCLD2-25490). Ideally, we'd be getting this from Search, but
 *    we may need to use Storage anyway for folder support in the future. Or maybe folder support and share
 *    status can come from Search. ¯\_(ツ)_/¯
 *
 *    In the meantime, we have two ways to get share status: via Invitation SDK (/collaboration), or from
 *    Storage API (off currently because it stopped working consistently).
 *
 * 2. Determine how frequently we can refresh collaboration info. Or, get support from acp-fetch(?) to get
 *    notification events for when collaborations change. For now, we'll refresh every 5 minutes.
 */
const ENABLE_COLLABORATORS_ICON = false;
const TOAST_DEFAULT_DELAY = 8000; // ms
const TOAST_ERROR_DELAY = 3000; // ms
const TOAST_EXCEEDED_QUOTA_DELAY = 3000; // ms
const CCD_CONTENTVIEW_RESIZE_EVENT = 'ccd-contentview-resize';
const CDO_UPDATE_SCROLL_POSITION = 'cdo-update-scroll-position';
const ACPL_REGISTRATION_STATES = [
    _ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_0__["NotificationStatus"].ACPL_USER_REGISTERED,
    _ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_0__["NotificationStatus"].ACPL_USER_NOT_REGISTERED,
];
const CORESYNC_STATES = [
    _ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_0__["NotificationStatus"].CORESYNC_REACHABLE_AND_COMPATIBLE,
    _ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_0__["NotificationStatus"].CORESYNC_REACHABLE_NOT_COMPATIBLE,
    _ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_0__["NotificationStatus"].CORESYNC_NOT_REACHABLE,
];
const CONNECTION_STATES = [
    _ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_0__["NotificationStatus"].HAS_INTERNET_ACCESS,
    _ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_0__["NotificationStatus"].NO_INTERNET_ACCESS,
];
const QUOTA_STATES = [
    _ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_0__["NotificationStatus"].QUOTA_AVAILABLE,
    _ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_0__["NotificationStatus"].QUOTA_EXCEEDED,
    _ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_0__["NotificationStatus"].CLOUD_STORAGE_DISABLED,
];
// For reference:
// https://git.corp.adobe.com/pages/ACPLocal/acp-local/docs/html/_notification_request_8h_source.html
var AssetChangeOperation;
(function (AssetChangeOperation) {
    AssetChangeOperation[AssetChangeOperation["ADD"] = 1] = "ADD";
    AssetChangeOperation[AssetChangeOperation["UPDATE"] = 2] = "UPDATE";
    // NOTE: 4 is now also "permanent delete" when the assetPath is /cloud-content/cloud-content-archive
    AssetChangeOperation[AssetChangeOperation["DELETE"] = 4] = "DELETE";
    AssetChangeOperation[AssetChangeOperation["RESTORE"] = 8] = "RESTORE";
    AssetChangeOperation[AssetChangeOperation["CONFLICT"] = 16] = "CONFLICT";
    AssetChangeOperation[AssetChangeOperation["MOVE"] = 32] = "MOVE";
    AssetChangeOperation[AssetChangeOperation["PURGE"] = 128] = "PURGE";
})(AssetChangeOperation || (AssetChangeOperation = {}));


/***/ }),

/***/ "C2SN":
/***/ (function(module, exports, __webpack_require__) {

var isObject = __webpack_require__("93I4");

var isArray = __webpack_require__("kAMH");

var SPECIES = __webpack_require__("UWiX")('species');

module.exports = function (original) {
  var C;

  if (isArray(original)) {
    C = original.constructor; // cross-realm fallback

    if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;

    if (isObject(C)) {
      C = C[SPECIES];
      if (C === null) C = undefined;
    }
  }

  return C === undefined ? Array : C;
};

/***/ }),

/***/ "C6Uc":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = Radio;

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _propTypes = _interopRequireDefault(__webpack_require__("17x9"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

var _MaybeUxpSwitchBase = _interopRequireDefault(__webpack_require__("hL0j"));

const _excluded = ["className", "labelBelow", "quiet"];

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

if (false) {} else if (false) {} else {
  __webpack_require__("/FLd");
}

if (true) __webpack_require__("I9nL");
if (true) __webpack_require__("Wv45");
if (true) __webpack_require__("VSWw");
if (true) __webpack_require__("Drri");

function Radio(_ref) {
  let {
    className,
    labelBelow,
    quiet
  } = _ref,
      otherProps = _objectWithoutProperties(_ref, _excluded);

  return /*#__PURE__*/_react.default.createElement(_MaybeUxpSwitchBase.default, _extends({
    inputType: "radio",
    className: (0, _classnames.default)('spectrum-Radio', {
      'spectrum-Radio--labelBelow': labelBelow,
      'spectrum-Radio--quiet': quiet
    }, className),
    inputClassName: "spectrum-Radio-input",
    markClassName: "spectrum-Radio-button",
    labelClassName: "spectrum-Radio-label"
  }, otherProps));
}

Radio.displayName = 'Radio';
Radio.propTypes = {
  /**
   * Whether the radio should start off checked (controlled state)
   */
  checked: _propTypes.default.bool,

  /**
   * Class given to radio
   */
  className: _propTypes.default.string,

  /**
   * Whether the radio should be checked on mount
   */
  defaultChecked: _propTypes.default.bool,

  /**
   * Displays the invalid state of this component
   */
  invalid: _propTypes.default.bool,

  /**
   * Label for radio
   */
  label: _propTypes.default.string,

  /**
   * Whether label is below radio
   */
  labelBelow: _propTypes.default.bool,

  /**
   * Whether radio is a quiet variation
   */
  quiet: _propTypes.default.bool,

  /**
   * Whether label is rendered
   */
  renderLabel: _propTypes.default.bool
};

/***/ }),

/***/ "C8M1":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _List = __webpack_require__("5r/s");

var _propTypes = _interopRequireDefault(__webpack_require__("17x9"));

var _react = _interopRequireWildcard(__webpack_require__("q1tI"));

const _excluded = ["role"];

function _getRequireWildcardCache(nodeInterop) {
  if (typeof WeakMap !== "function") return null;
  var cacheBabelInterop = new WeakMap();
  var cacheNodeInterop = new WeakMap();
  return (_getRequireWildcardCache = function (nodeInterop) {
    return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
  })(nodeInterop);
}

function _interopRequireWildcard(obj, nodeInterop) {
  if (!nodeInterop && obj && obj.__esModule) {
    return obj;
  }

  if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
    return {
      default: obj
    };
  }

  var cache = _getRequireWildcardCache(nodeInterop);

  if (cache && cache.has(obj)) {
    return cache.get(obj);
  }

  var newObj = {};
  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;

  for (var key in obj) {
    if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
      var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;

      if (desc && (desc.get || desc.set)) {
        Object.defineProperty(newObj, key, desc);
      } else {
        newObj[key] = obj[key];
      }
    }
  }

  newObj.default = obj;

  if (cache) {
    cache.set(obj, newObj);
  }

  return newObj;
}

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function ownKeys(object, enumerableOnly) {
  var keys = Object.keys(object);

  if (Object.getOwnPropertySymbols) {
    var symbols = Object.getOwnPropertySymbols(object);

    if (enumerableOnly) {
      symbols = symbols.filter(function (sym) {
        return Object.getOwnPropertyDescriptor(object, sym).enumerable;
      });
    }

    keys.push.apply(keys, symbols);
  }

  return keys;
}

function _objectSpread(target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i] != null ? arguments[i] : {};

    if (i % 2) {
      ownKeys(Object(source), true).forEach(function (key) {
        _defineProperty(target, key, source[key]);
      });
    } else if (Object.getOwnPropertyDescriptors) {
      Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
    } else {
      ownKeys(Object(source)).forEach(function (key) {
        Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
      });
    }
  }

  return target;
}

function _defineProperty(obj, key, value) {
  if (key in obj) {
    Object.defineProperty(obj, key, {
      value: value,
      enumerable: true,
      configurable: true,
      writable: true
    });
  } else {
    obj[key] = value;
  }

  return obj;
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}
/**
 * An item in a Menu
 */


class MenuItem extends _react.Component {
  render() {
    const _this$props = this.props,
          {
      role = 'menuitem'
    } = _this$props,
          otherProps = _objectWithoutProperties(_this$props, _excluded);

    return /*#__PURE__*/_react.default.createElement(_List.ListItem, _extends({
      role: role
    }, otherProps));
  }

}

exports.default = MenuItem;
MenuItem.displayName = 'MenuItem';
MenuItem.propTypes = _objectSpread(_objectSpread({}, _List.ListItem.propTypes), {}, {
  /**
   * The WAI-ARIA role for the list item.
   * Defaults to "menuitem", but could be "menuitemcheckbox", "menuitemradio" or "option" depending on context.
   */
  role: _propTypes.default.oneOf(['menuitem', 'menuitemcheckbox', 'menuitemradio', 'option'])
});
MenuItem.defaultProps = {
  role: 'menuitem'
};

/***/ }),

/***/ "CD1o":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}


/* harmony default export */ __webpack_exports__["a"] = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("svg", _extends({
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 222.512 179.924"
}, props), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("defs", null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("g", {
  id: "Layer_2",
  "data-name": "Layer 2"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("g", {
  id: "Layer_1-2",
  "data-name": "Layer 1"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("g", {
  id: "send_sm",
  "data-name": "send sm"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("g", {
  id: "send_sm-2",
  "data-name": "send sm-2"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M193.718 87.906a3.412 3.412 0 0 1-1.759-.487l-44.858-26.983a3.413 3.413 0 0 1 .669-6.158l72.761-24.511a1.5 1.5 0 0 1 1.835 2.062l-25.564 54.123a3.407 3.407 0 0 1-3.084 1.954zm24.43-54.17l-69.42 23.386a.412.412 0 0 0-.08.743l44.857 26.984a.41.41 0 0 0 .33.04.403.403 0 0 0 .254-.218z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M167.535 89.374a3.14 3.14 0 0 1-1.098-.2 3.077 3.077 0 0 1-2.016-2.905V70.006a1.501 1.501 0 0 1 .636-1.227l55.089-38.817a1.5 1.5 0 1 1 1.731 2.45l-.003.003-54.453 38.37v15.484c0 .039 0 .07.066.095a.085.085 0 0 0 .113-.028l5.829-6.703a1.5 1.5 0 1 1 2.263 1.969l-5.829 6.703a3.075 3.075 0 0 1-2.328 1.069z"
}))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M25.61 161.356h-2.652a1.5 1.5 0 0 1 0-3h2.651a3.92 3.92 0 0 0 3.903-3.84l.478-29.622a15.241 15.241 0 0 1 15.214-14.916c.107 0 .211 0 .316.003l1.828.037a18.224 18.224 0 0 1 17.017 12.749l2.348 7.447a2.726 2.726 0 0 1-2.654 3.545l-2.041-.042-.085 6.136a5.694 5.694 0 0 1-5.772 5.615l-.039-.001-4.332-.089-.047-.001a2.29 2.29 0 0 0-2.285 2.241l-.063 3.072a7.145 7.145 0 0 0 6.997 7.29l11.558-.046h.006a1.5 1.5 0 0 1 .006 3l-11.594.046a10.147 10.147 0 0 1-9.974-10.316v-.035l.064-3.073a5.29 5.29 0 0 1 5.394-5.178l4.331.089a2.693 2.693 0 0 0 2.75-2.636v-.02l.087-6.334a2.846 2.846 0 0 1 2.869-2.764l1.847.038-2.232-7.082a15.222 15.222 0 0 0-14.218-10.651l-1.826-.038-.254-.003a12.236 12.236 0 0 0-12.216 11.971l-.478 29.617a6.935 6.935 0 0 1-6.903 6.791z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M45.345 170.126a34.459 34.459 0 1 1 34.459-34.459 34.459 34.459 0 0 1-34.46 34.459zm0-65.918a31.459 31.459 0 1 0 31.459 31.459 31.459 31.459 0 0 0-31.46-31.459z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("g", {
  id: "folder_locked_lg",
  "data-name": "folder locked lg"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M50.995 95.2a1.5 1.5 0 0 1-1.5-1.5V51.101a11.27 11.27 0 0 1 11.258-11.258h36.445a9.243 9.243 0 0 1 6.58 2.727l12.346 12.357a2.44 2.44 0 0 0 1.733.719h18.425a1.5 1.5 0 0 1 0 3h-18.425a5.425 5.425 0 0 1-3.854-1.596l-12.347-12.359a6.259 6.259 0 0 0-4.458-1.848H60.753a8.267 8.267 0 0 0-8.258 8.258v42.597a1.5 1.5 0 0 1-1.5 1.5z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M180.049 149.95H86.085a1.5 1.5 0 0 1 0-3h93.964a8.166 8.166 0 0 0 8.157-8.158v-42.37a1.5 1.5 0 0 1 3 0v42.37a11.17 11.17 0 0 1-11.157 11.157z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M122.984 58.646H63.286a1.5 1.5 0 0 1 0-3h59.698a1.5 1.5 0 1 1 0 3z"
})), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M104.485 132.107a15.317 15.317 0 0 1-10.83-26.13l11.212-11.213a15.298 15.298 0 0 1 26.003 8.85 1.5 1.5 0 0 1-2.975.383 12.32 12.32 0 0 0-20.907-7.112l-11.213 11.213a12.317 12.317 0 0 0 17.42 17.419l6.945-6.946a1.5 1.5 0 0 1 2.12 2.121l-6.945 6.946a15.205 15.205 0 0 1-10.83 4.47z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M122.293 115.078A15.272 15.272 0 0 1 107.333 103a1.5 1.5 0 0 1 2.934-.627 12.324 12.324 0 0 0 20.736 6.105l11.213-11.212a12.318 12.318 0 0 0-17.42-17.42l-5.886 5.885a1.5 1.5 0 1 1-2.122-2.12h.001l5.886-5.886a15.317 15.317 0 1 1 21.662 21.662l-11.213 11.212a15.273 15.273 0 0 1-10.831 4.48z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("g", {
  id: "cloud_lg",
  "data-name": "cloud lg"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M42.312 58.682L12.85 58.68C4.02 58.68 0 52.469 0 46.697a13.279 13.279 0 0 1 4.333-9.095 11.515 11.515 0 0 1 6.347-3.094 15.545 15.545 0 0 1 4.122-13.488c4.595-4.96 11.42-6.97 18.476-5.512C35.504 9.164 42.126 0 55.178 0h.13a20.75 20.75 0 0 1 16.029 7.698 19.885 19.885 0 0 1 4.538 14.728c7.481 1.174 13.056 5.347 15.42 11.616a1.5 1.5 0 0 1-2.807 1.059c-2.14-5.674-7.282-9.186-14.477-9.89a1.501 1.501 0 0 1-1.348-1.64q.008-.075.022-.148a16.715 16.715 0 0 0-3.674-13.83A17.758 17.758 0 0 0 55.294 3h-.116C39.855 3 35.904 17.08 35.743 17.68a1.499 1.499 0 0 1-1.835 1.061l-.007-.002c-6.456-1.75-12.77-.137-16.898 4.32-3.333 3.6-4.441 8.227-2.965 12.38a1.5 1.5 0 0 1-1.518 2 8.103 8.103 0 0 0-6.141 2.357A10.316 10.316 0 0 0 3 46.697c0 3.337 2.074 8.984 9.85 8.984h29.462a1.5 1.5 0 0 1 0 3z",
  id: "cloud_lg-2",
  "data-name": "cloud lg-2"
})), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("g", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M195.166 179.924a1.5 1.5 0 0 1-1.5-1.5v-4.588a1.5 1.5 0 0 1 3 0v4.588a1.5 1.5 0 0 1-1.5 1.5z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M191.284 171.454h-4.587a1.5 1.5 0 0 1 0-3h4.587a1.5 1.5 0 0 1 0 3z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M203.635 171.454h-4.587a1.5 1.5 0 1 1 0-3h4.587a1.5 1.5 0 0 1 0 3z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M195.166 167.572a1.5 1.5 0 0 1-1.5-1.5v-4.587a1.5 1.5 0 0 1 3 0v4.587a1.5 1.5 0 0 1-1.5 1.5z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M209.323 161.208a1.5 1.5 0 0 1-1.5-1.5v-7.46a1.5 1.5 0 0 1 3 0v7.46a1.5 1.5 0 0 1-1.5 1.5z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M205.593 150.017h-7.461a1.5 1.5 0 0 1 0-3h7.46a1.5 1.5 0 0 1 0 3z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M220.515 150.017h-7.461a1.5 1.5 0 0 1 0-3h7.46a1.5 1.5 0 0 1 0 3z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M209.323 146.286a1.5 1.5 0 0 1-1.5-1.5v-7.46a1.5 1.5 0 0 1 3 0v7.46a1.5 1.5 0 0 1-1.5 1.5z"
}))))));

/***/ }),

/***/ "CH9F":
/***/ (function(module, exports, __webpack_require__) {

/*
 * A JavaScript implementation of the Secure Hash Algorithm, SHA-0, as defined
 * in FIPS PUB 180-1
 * This source code is derived from sha1.js of the same repository.
 * The difference between SHA-0 and SHA-1 is just a bitwise rotate left
 * operation was added.
 */
var inherits = __webpack_require__("P7XM");

var Hash = __webpack_require__("tnIz");

var Buffer = __webpack_require__("hwdV").Buffer;

var K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0];
var W = new Array(80);

function Sha() {
  this.init();
  this._w = W;
  Hash.call(this, 64, 56);
}

inherits(Sha, Hash);

Sha.prototype.init = function () {
  this._a = 0x67452301;
  this._b = 0xefcdab89;
  this._c = 0x98badcfe;
  this._d = 0x10325476;
  this._e = 0xc3d2e1f0;
  return this;
};

function rotl5(num) {
  return num << 5 | num >>> 27;
}

function rotl30(num) {
  return num << 30 | num >>> 2;
}

function ft(s, b, c, d) {
  if (s === 0) return b & c | ~b & d;
  if (s === 2) return b & c | b & d | c & d;
  return b ^ c ^ d;
}

Sha.prototype._update = function (M) {
  var W = this._w;
  var a = this._a | 0;
  var b = this._b | 0;
  var c = this._c | 0;
  var d = this._d | 0;
  var e = this._e | 0;

  for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4);

  for (; i < 80; ++i) W[i] = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16];

  for (var j = 0; j < 80; ++j) {
    var s = ~~(j / 20);
    var t = rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s] | 0;
    e = d;
    d = c;
    c = rotl30(b);
    b = a;
    a = t;
  }

  this._a = a + this._a | 0;
  this._b = b + this._b | 0;
  this._c = c + this._c | 0;
  this._d = d + this._d | 0;
  this._e = e + this._e | 0;
};

Sha.prototype._hash = function () {
  var H = Buffer.allocUnsafe(20);
  H.writeInt32BE(this._a | 0, 0);
  H.writeInt32BE(this._b | 0, 4);
  H.writeInt32BE(this._c | 0, 8);
  H.writeInt32BE(this._d | 0, 12);
  H.writeInt32BE(this._e | 0, 16);
  return H;
};

module.exports = Sha;

/***/ }),

/***/ "CJr9":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return userHasEditorRoleOnTeam; });
/* unused harmony export userHasOwnerRoleOnTeam */
/* harmony import */ var _api_monitor_sleep__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("Up8U");
/* harmony import */ var _utils_SAMUtils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("x7p6");
/* harmony import */ var _utils_SpacesError__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("R5sx");
/* harmony import */ var _SharedStore__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("jmEq");




function userHasEditorRoleOnTeam(team) {
    return ['editor', 'owner'].includes(team.role);
}
function userHasOwnerRoleOnTeam(team) {
    return team.role === 'owner';
}
class User {
    async getTeams() {
        const teams = _SharedStore__WEBPACK_IMPORTED_MODULE_3__[/* sharedStore */ "d"].teams;
        if (!teams) {
            throw new _utils_SpacesError__WEBPACK_IMPORTED_MODULE_2__[/* SpacesError */ "b"]('NOT_INITIALIZED', 'getTeams Teams are not initialized. Call updateStore with imsData.');
        }
        // Relies on the timeout set in shared store teams to ensure this doesn't get called too often
        await Object(_utils_SAMUtils__WEBPACK_IMPORTED_MODULE_1__[/* refreshList */ "b"])(teams);
        return teams;
    }
    // Get repositories where user can create CC Team.
    // In M1, this returns an array of one org repository for admins, and empty array for everyone else.
    // In M2, there’ll be some other property to indicate whether user can create a team. And this is independent
    // from ACLs defined by platform. Admins can toggle a boolean policy. If true, all org users can create teams
    // and invite other users to them. If false, only admins can create teams.
    get orgRepositories() {
        var _a, _b;
        return (_b = (_a = _SharedStore__WEBPACK_IMPORTED_MODULE_3__[/* sharedStore */ "d"].orgRepositories) === null || _a === void 0 ? void 0 : _a.items) !== null && _b !== void 0 ? _b : [];
    }
    removeTeam(id) {
        var _a;
        (_a = _SharedStore__WEBPACK_IMPORTED_MODULE_3__[/* sharedStore */ "d"].spaceContext) === null || _a === void 0 ? void 0 : _a.onUserLeftTeam(id);
    }
    getTeamFromId(id) {
        var _a;
        return id ? (_a = _SharedStore__WEBPACK_IMPORTED_MODULE_3__[/* sharedStore */ "d"].teams) === null || _a === void 0 ? void 0 : _a.items.find(team => team.id === id) : undefined;
    }
    // Only team folder ‘editor/owner’ (privileges: read/write/delete) can create new spaces and
    // rename/discard/delete/restore the immediate child folders (spaces)
    // See `Mapping Roles/Permissions to ACEs` in https://wiki.corp.adobe.com/display/acp/Invitations+Service+V4
    hasEditorRoleOnTeam(id) {
        const team = this.getTeamFromId(id);
        return Boolean(team && userHasEditorRoleOnTeam(team));
    }
    // Only team owner can rename/discard/delete/restore team
    hasOwnerRoleOnTeam(team) {
        return Boolean(team && (userHasOwnerRoleOnTeam(team) || this.isOwnerOfCCITeam(team.id)));
    }
    /**
     * Check if the user is owner of a CCI team.
     * Use case for example: Team owner can't leave the team nor spaces in that team.
     */
    isOwnerOfCCITeam(id) {
        const team = this.getTeamFromId(id);
        return Boolean(team && team.repositoryOwnerID === _SharedStore__WEBPACK_IMPORTED_MODULE_3__[/* sharedStore */ "d"].imsData.userId);
    }
    hasPermissionToAnyOrgRepository() {
        return !!this.orgRepositories.length;
    }
    /**
     * `orgRepositories` are repositories where the user can create teams.
     * If true, the user can create teams in this org repository.
     */
    hasPermissionToOrgRepository(repositoryId) {
        var _a;
        return repositoryId && ((_a = this.orgRepositories) === null || _a === void 0 ? void 0 : _a.find(org => org.id === repositoryId));
    }
    /**
     * Keep retrying getTeams until a predicate is true.
     * Used when a access to an invited team is confirmed and it takes some time to reflect changes on the server.
     */
    async getTeamsUntil(predicate, { retryDelay, maxRetries, initialDelay = 0 }) {
        let retries = maxRetries;
        const teams = _SharedStore__WEBPACK_IMPORTED_MODULE_3__[/* sharedStore */ "d"].teams;
        if (!teams) {
            throw new _utils_SpacesError__WEBPACK_IMPORTED_MODULE_2__[/* SpacesError */ "b"]('NOT_INITIALIZED', 'getTeamsUntil Teams are not initialized. Call updateStore with imsData.');
        }
        do {
            if (predicate(teams)) {
                return teams;
            }
            await Object(_api_monitor_sleep__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(retries === maxRetries ? initialDelay : retryDelay);
            // Relies on the timeout set in shared store teams to ensure this doesn't get called too often
            await Object(_utils_SAMUtils__WEBPACK_IMPORTED_MODULE_1__[/* refreshList */ "b"])(teams);
        } while (retries-- > 0);
        return teams;
    }
}
/* harmony default export */ __webpack_exports__["a"] = (new User());


/***/ }),

/***/ "CKzN":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("XN0l"),
      24: __webpack_require__("TkyF")
    }
  }));
};

WrappedIcon.displayName = 'Cloud';
exports.default = WrappedIcon;

/***/ }),

/***/ "CWBI":
/***/ (function(module, exports, __webpack_require__) {

module.exports = __webpack_require__("sZro");

/***/ }),

/***/ "CYAm":
/***/ (function(module, exports) {

/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
module.exports = {
  'ccd.infoPanel.detail.created': 'Creado',
  'ccd.infoPanel.detail.modified': 'Modificado',
  'ccd.infoPanel.detail.size': 'Tamaño',
  'ccd.infoPanel.detail.shared': 'Compartida',
  'ccd.header.renameFolder': 'Cambiar nombre de la carpeta',
  'ccd.menu.addToFavourites': 'Añadir a accesos directos',
  'ccd.menu.removeFromFavourites': 'Eliminar acceso directo',
  'ccd.menu.viewonweb': 'Ver en la web',
  'ccd.menu.share': 'Compartir',
  'ccd.menu.openWith': 'Abrir en',
  'ccd.menu.changeDefaultApp': 'Cambiar aplicación predeterminada...',
  'ccd.menu.default': '(Predeterminado)',
  'ccd.menu.export': 'Exportar como copia local',
  'ccd.menu.download': 'Descargar',
  'ccd.menu.createNew': 'Crear nueva...',
  'ccd.menu.launch': 'INICIAR',
  'actionMenuItem.permdelete': 'Eliminar permanentemente',
  'tab.Cloud Documents': 'Tus archivos',
  'tab.Home': 'Inicio',
  'header.CloudDocuments': 'Tus archivos',
  'header.SharedWithYou': 'Compartido contigo',
  'header.Deleted': 'Eliminado',
  'header.Deleted.AssetsWebLink': 'Para ver todos los elementos eliminados, ve a la web de Activos',
  'header.SelectedDocuments': '{numSelected, plural, =1 {# seleccionado} other {# seleccionados}}',
  'header.size': 'Tamaño',
  'header.title': 'Nombre',
  'header.modifiedDate': 'Fecha de modificación',
  'header.createDate': 'Fecha de creación',
  'header.shareDate': 'Fecha compartido',
  'header.SortBy': 'Ordenar por',
  'header.infoPopover.body': 'Solo aparecen los archivos compatibles. Para ver todos los archivos, ve a Creative Cloud en la web.',
  'header.infoPopover.link': 'Ir a Creative Cloud',
  'header.dragImport': 'Cargar en: {displayName}',
  'collaborators.onlyYou': 'Solo tu',
  'collaborators.Owner': '{displayName} (propietario)',
  'collaborators.More': '{numItems, plural, other {+# más}}',
  'empty.offline.root.title': 'No tienes conexión',
  'empty.offline.root.subtitle': 'Los elementos visibles mientras estabas en línea aparecerán aquí cuando vuelvas a conectarte.',
  'empty.offline.folder.title': 'No se ha podido cargar la carpeta',
  'empty.offline.folder.subtitle': 'No hay conexión a Internet. Vuelve a conectarte para ver todo.',
  'empty.online.cdp.saveas.root.title': 'No hay documentos en la nube que mostrar',
  'empty.online.cdp.saveas.root.subtitle': 'Los documentos en la nube significan que el trabajo siempre está actualizado, en todos los dispositivos, dondequiera que estés; basta con conectarse a Internet y listo.',
  'empty.online.cdp.saveas.root.subtitle.sprk': 'Todos tus documentos en la nube de XD estarán justo aquí. Trabaja en cualquier lugar, incluso sin conexión. Los cambios en los documentos en la nube se guardan automáticamente y se pueden ver en el historial del documento.',
  'empty.online.cdp.saveas.root.subtitle.phxs': 'Todos los documentos en la nube de Photoshop en Mac, Windows y iPad estarán aquí.',
  'empty.online.cdp.saveas.root.subtitle.ilst': 'Todos los documentos en la nube de Illustrator en Mac y Windows estarán aquí.',
  'empty.online.cdp.saveas.root.subtitle.idsn': 'Todos los documentos en la nube de InDesign en Mac y Windows los encontrarás aquí.',
  'empty.online.cdp.saveas.folder.title': 'No hay documentos en la nube que mostrar',
  'empty.online.cdp.saveas.folder.subtitle': 'Al poner un documento en la nube compatible en esta carpeta, este aparecerá aquí.',
  'empty.online.cdp.open.root.title': 'No hay documentos en la nube que mostrar',
  'empty.online.cdp.open.root.subtitle': 'Al poner un documento en la nube compatible en esta carpeta, este aparecerá aquí.',
  'empty.online.cdp.open.root.subtitle.sprk': 'Todos tus documentos en la nube de XD estarán justo aquí. Trabaja en cualquier lugar, incluso sin conexión. Los cambios en los documentos en la nube se guardan automáticamente y se pueden ver en el historial del documento.',
  'empty.online.cdp.open.root.subtitle.phxs': 'Todos los documentos en la nube de Photoshop en Mac, Windows y iPad estarán aquí.',
  'empty.online.cdp.open.root.subtitle.ilst': 'Todos los documentos en la nube de Illustrator en Mac y Windows estarán aquí.',
  'empty.online.cdp.open.root.subtitle.idsn': 'Todos los documentos en la nube de InDesign en Mac y Windows los encontrarás aquí.',
  'empty.online.cdp.open.folder.title': 'No hay documentos en la nube que mostrar',
  'empty.online.cdp.open.folder.subtitle': 'Al poner un documento en la nube compatible en esta carpeta, este aparecerá aquí.',
  'empty.online.cdo.root.title': 'No tienes documentos en la nube',
  'empty.online.cdo.root.subtitle': 'Colabora sin problemas con otros y trabaja en cualquier lugar, incluso sin conexión. Los cambios se guardan automáticamente y se pueden ver en el historial del archivo.',
  'empty.online.cdo.root.subtitle.sprk': 'Colabora sin problemas en tiempo real con otros y trabaja en cualquier lugar, incluso sin conexión. Los cambios se guardan automáticamente y se pueden ver en el historial del archivo.',
  'empty.online.cdo.root.subtitle.phxs': 'Colabora sin problemas con otros y trabaja dondequiera que accedas a Photoshop, incluso sin conexión. Los cambios se guardan automáticamente y se pueden ver en el historial del archivo.',
  'empty.online.cdo.root.subtitle.ilst': 'Colabora sin problemas con otros y trabaja dondequiera que accedas a Illustrator, incluso sin conexión. Los cambios se guardan automáticamente y se pueden ver en el historial del archivo.',
  'empty.online.cdo.root.subtitle.idsn': 'Accede a tus documentos donde quiera que inicies sesión en InDesign. Los cambios se guardan automáticamente.',
  'empty.online.cdo.folder.title': 'No hay documentos en la nube que mostrar',
  'empty.online.cdo.folder.subtitle': 'Al poner un documento en la nube compatible en esta carpeta, este aparecerá aquí.',
  'empty.title.deleted': 'No hay ningún archivo eliminado',
  'empty.title.deleted_offline': 'No tienes conexión',
  'empty.title.recent': 'No hay archivos recientes',
  'empty.subtext.deleted_offline': 'Los elementos eliminados mientras estabas en línea aparecerán aquí cuando vuelvas a conectarte.',
  'empty.title.shared_with_you': 'No tienes documentos compartidos en la nube',
  'empty.subtext.shared_with_you': 'Cuando alguien comparta contigo documentos en la nube, aparecerán aquí.',
  'empty.title.shared_with_you_offline': 'No tienes conexión',
  'empty.subtext.shared_with_you_offline': 'Podrás ver y editar los documentos compartidos cuando vuelvas a tener conexión.',
  'empty.title.error': 'Se ha producido un error',
  'empty.subtext.error': 'Reinicia la aplicación y vuelve a intentarlo.',
  'empty.subtext.error.web': 'Actualice su navegador y vuelva a intentarlo.',
  'empty.title.coresync.down': 'No se puede cargar',
  'empty.subtext.coresync.down': 'La nube no se sincroniza. Comprueba que Creative Cloud para escritorio está actualizado o intenta reiniciar la aplicación.',
  'empty.title.coresync.incompatible': 'No se pueden cargar documentos en la nube',
  'empty.subtext.coresync.incompatible': 'No se pueden mostrar artículos en este momento. Actualiza la versión de la aplicación de Creative Cloud e inténtalo de nuevo.',
  'empty.title.cloudStorageDisabled': 'Los documentos en la nube no están disponibles',
  'empty.subtext.cloudStorageDisabled': 'Puedes usar {productName} para trabajar en los archivos únicamente en tu dispositivo. Ponte en contacto con tu administrador de IT para obtener más información.',
  'empty.title.logout': 'Inicia sesión para acceder a los documentos en la nube.',
  'empty.learnMore.link': 'Más información',
  'trueEmpty.online.cdo.folder.title': 'No hay nada en esta carpeta',
  'trueEmpty.online.cdo.folder.subtitle': 'Añade aquí lo que quieras para empezar a llenarla.',
  'trueEmpty.online.cdp.saveas.folder.title': 'Sin documentos en la nube - por ahora',
  'trueEmpty.online.cdp.saveas.folder.subtitle': 'Los documentos en la nube significan que el trabajo siempre está actualizado, en todos los dispositivos, dondequiera que estés; basta con conectarse a Internet y listo.',
  'trueEmpty.online.cdp.open.folder.title': 'Sin documentos en la nube - por ahora',
  'trueEmpty.online.cdp.open.folder.subtitle': 'Los documentos en la nube significan que el trabajo siempre está actualizado, en todos los dispositivos, dondequiera que estés; basta con conectarse a Internet y listo.',
  'filter.prompt': 'Introducir palabra clave',
  'filter.title': 'Filtrar',
  'empty.filter.title': 'No hay resultados para “{filterString}“',
  'empty.filter.subtitle': 'Revisa la ortografía, prueba con una palabra clave más amplia o filtra en una ubicación diferente.',
  'beta.title': 'Sincronizar el trabajo entre los dispositivos',
  'beta.subtitle': 'Trabaja sin problemas en Photoshop, en el iPad y el equipo de escritorio, con documentos en la nube. Sin embargo, la función está en versión Beta, por lo que probablemente no siempre funcionará como se espera. Actívala y desactívala en las preferencias.',
  'beta.button': 'Activar en Preferencias',
  'beta.tag': 'BETA',
  'beta.feedback.link': 'Facilitar comentarios sobre la versión Beta',
  'button.add-folder': 'Crear nueva carpeta',
  'button.upload': 'Cargar...',
  'button.createnew': 'Crear nuevo',
  'button.reportAbuse': 'Denunciar infracción',
  'button.open': 'Abrir',
  'button.select': 'Seleccionar',
  'button.rename': 'Cambiar nombre',
  'button.pin.header': 'Dejar siempre disponible sin conexión',
  'button.pin': 'Dejar siempre disponible sin conexión',
  'button.unpin.header': 'Dejar disponible solo en línea',
  'button.unpin': 'Dejar disponible solo en línea',
  'button.duplicate': 'Duplicar',
  'button.download': 'Descargar',
  'button.move': 'Mover',
  'button.delete': 'Eliminar',
  'button.restore': 'Restaurar',
  'button.permdelete': 'Eliminar permanentemente',
  'button.listview': 'Ver lista',
  'button.gridview': 'Ver cuadrícula',
  'button.sharesheetinvite': 'Invitar a editar',
  'button.sharesheetLink': 'Obtener vínculo',
  'button.shareSheetAction': 'Compartir',
  'button.preview': 'Obtener una vista previa',
  'button.schedule': 'Programar',
  'action.duplicate.suffix': '(Duplicar)',
  'action.resolve_sync_error.suffix': '(copia)',
  'statusIcon.conflicted': 'Conflicto de sincronización',
  'statusIcon.onlineOnly': 'Solo en línea',
  'statusIcon.availableOffline': 'Disponible sin conexión',
  'statusIcon.syncing': 'Sincronizando...',
  'statusIcon.waitingToSync': 'Esperando a sincronizar',
  'tooltip.error': 'Abrir el documento para revisar el conflicto al guardar',
  'toast.error.documentIsOpen': 'Cierra {count, plural, =1 {el documento} other {los documentos}} para realizar esta acción.',
  'toast.error.exceedsQuota.personal': 'La cuenta no tiene espacio de almacenamiento suficiente',
  'toast.error.exceedsQuota.enterprise': 'Almacenamiento insuficiente. Ponte en contacto con el administrador para obtener más información',
  'toast.operation.duplicate.error': 'No se {count, plural, =1 {ha podido duplicar el elemento} other {han podido duplicar {count} elementos}}.',
  'toast.operation.duplicate.success': '{count, plural, =1 {Elemento duplicado} other {{count} elementos duplicados}}.',
  'toast.operation.archive.error': 'No se ha podido eliminar {count, plural, =1 {elemento} other {{count} elementos}}.',
  'toast.operation.archive.error.otherAppUncommittedChanges': 'No puedes eliminar archivos que estén abiertos en otras aplicaciones. Ciérralos y vuelve a intentarlo.',
  'toast.operation.archive.undo.error': 'No se ha podido eliminar {count, plural, =1 {elemento} other {{count} elementos}}.',
  'toast.operation.archive.success': '{count, plural, =1 {Elemento eliminado} other {{count} elementos eliminados}}.',
  'toast.operation.archive.undo.success': 'Restaurar deshecho.',
  'toast.operation.permdelete.error': 'No se ha podido eliminar de forma permanente {count, plural, =1 {elemento} other {{count} elementos}}.',
  'toast.operation.permdelete.success': '{count, plural, =1 {Elemento eliminado} other {{count} elementos eliminados}} de forma permanente.',
  'toast.operation.rename.error': 'No se ha podido cambiar el nombre del elemento.',
  'toast.operation.rename.undo.error': 'No se ha podido cambiar el nombre del elemento.',
  'toast.operation.rename.error.duplicateName': 'Ya tienes un elemento aquí con este nombre.',
  'toast.operation.rename.undo.error.duplicateName': 'Ya tienes un elemento aquí con este nombre.',
  'toast.operation.rename.success': 'Cambio de nombre de elemento realizado.',
  'toast.operation.rename.undo.success': 'Cambiar nombre deshecho.',
  'toast.operation.move.error': 'No se ha podido mover {count, plural, =1 {elemento} other {{count} elementos}}.',
  'toast.operation.move.undo.error': 'No se ha podido mover {count, plural, =1 {elemento} other {{count} elementos}}.',
  'toast.operation.move.error.duplicateFolderName': 'Ya tienes una carpeta con este nombre aquí.',
  'toast.operation.move.undo.error.duplicateFolderName': 'Ya tienes una carpeta con este nombre aquí.',
  'toast.operation.move.error.duplicateDocName': '{count, plural, =1 {Ya hay un documento con este nombre en esa carpeta. Cámbiale el nombre y vuelve a intentarlo.} other {Los documentos no se pueden mover porque hay documentos con el mismo nombre.}}',
  'toast.operation.move.undo.error.duplicateDocName': '{count, plural, =1 {Ya hay un documento con este nombre en esa carpeta. Cámbiale el nombre y vuelve a intentarlo.} other {Los documentos no se pueden mover porque hay documentos con el mismo nombre.}}',
  'toast.operation.move.success': '{count, plural, =1 {Elemento movido} other {{count} elementos movidos}}.',
  'toast.operation.move.undo.success': 'Mover desecho.',
  'toast.operation.unarchive.error': 'No se ha podido restaurar {count, plural, =1 {elemento} other {{count} elementos}}.',
  'toast.operation.unarchive.undo.error': 'No se ha podido restaurar {count, plural, =1 {elemento} other {{count} elementos}}.',
  'toast.operation.unarchive.success': '{count, plural, =1 {Elemento restaurado} other {{count} elementos restaurados}}.',
  'toast.operation.unarchive.undo.success': 'Eliminar deshecho.',
  'toast.operation.create_new_folder.success': 'Carpeta creada.',
  'toast.operation.create_new_folder.error': 'No se ha podido crear una nueva carpeta.',
  'toast.operation.create_new_folder.error.duplicateName': 'Ya tienes una carpeta con este nombre aquí.',
  'toast.operation.user_pin.success': '{count, plural, =1 {Elemento disponible} other {{count} elementos disponibles}} sin conexión.',
  'toast.operation.user_pin.error': 'No se ha podido hacer que {count, plural, =1 {elemento esté disponible} other {{count} elementos estén disponibles}} en línea.',
  'toast.operation.user_unpin.success': '{count, plural, =1 {Elemento disponible} other {{count} elementos disponibles}} solo en línea.',
  'toast.operation.user_unpin.error': 'No se {count, plural, =1 {ha podido dejar el elemento disponible} other {han podido dejar {count} elementos disponibles}} solo en línea.',
  'toast.operation.resolve_sync_error.success': 'Se ha creado una copia de “{name}“. Puedes comparar ambos documentos y subsanar las discrepancias.',
  'toast.ccd.scroll_to_item.fetching': 'Capturando archivo...',
  'toast.ccd.scroll_to_item.error': 'Archivo no encontrado',
  'toast.info.disabled_rename_to_open_item': 'Los documentos XD heredados primero deben abrirse para poder cambiarles el nombre aquí.',
  'toast.action.disabled_rename_to_open_item': 'Abrir documento',
  'toast.error.rename.invalidName': 'Este nombre contiene caracteres no válidos.',
  'toast.error.rename.invalidChar': 'El nombre no puede contener los siguientes caracteres: {characters}',
  'toast.error.rename.invalidEnd': 'El nombre no puede terminar con “.” o un espacio vacío.',
  'toast.error.rename.charRestriction': 'Los nombres no pueden tener más de 200 caracteres.',
  'toast.error.rename.duplicateName': 'Ya tienes un documento en la nube con este nombre aquí.',
  'toast.success.reportAbuse': 'La infracción se ha denunciado correctamente',
  'toast.error.reportAbuse': 'Error al notificar infracción',
  'toast.operation.undoLabel': 'Deshacer',
  'dialog.permdelete.heading': 'Eliminar permanentemente',
  'dialog.permdelete.warning': 'No puedes deshacer esta acción. Aquí tienes lo que habrá desaparecido para bien.',
  'dialog.permdelete.cancelButton': 'Cancelar',
  'dialog.permdelete.confirmButton': 'Eliminar permanentemente',
  'dialog.permdelete.countItems': '{count, plural, =1 {# elemento} other {# elementos}}',
  'dialog.nonemptyfolder.heading': '¿Seguro que quieres eliminar {count, plural, =1 {esta carpeta} other {estas carpetas}}?',
  'dialog.nonemptyfolder.warning': '{count, plural, =1 {Esta carpeta no está vacía} other {Estas carpetas no están vacías}} y es posible que haya archivos que no se puedan ver en {appName}. Puedes seguir eliminándolas o ver {count, plural, =1 {la carpeta} other {las carpetas}} a través de la web para acceder a {count, plural, =1 {esta} other {estas}} y ver su contenido.  {viewOnWebLink}',
  'dialog.nonemptyfolder.cancelButton': 'Cancelar',
  'dialog.nonemptyfolder.confirmButton': 'Eliminar',
  'dialog.nonemptyfolder.viewOnWebButton': 'Ver en la web',
  'dialog.addfolder.heading': 'Crear nueva carpeta',
  'dialog.addfolder.cancelButton': 'Cancelar',
  'dialog.addfolder.confirmButton': 'Guardar',
  'dialog.addfolder.placeholder': 'Nueva carpeta',
  'dialog.addfolder.invalidChar': 'Los nombres no pueden contener los siguientes caracteres: {characters}',
  'dialog.addfolder.invalidName': 'Lo sentimos, esta carpeta contiene caracteres no válidos.',
  'dialog.addfolder.invalidEnd': 'El nombre no puede terminar con “.” o un espacio vacío.',
  'dialog.addfolder.duplicateName': 'Ya tienes una carpeta con este nombre aquí.',
  'dialog.addfolder.charRestriction': 'Los nombres no pueden tener más de 200 caracteres.',
  'dialog.moveFolder.heading': 'Mover a...',
  'dialog.moveFolder.cancelButton': 'Cancelar',
  'dialog.moveFolder.moveButton': 'Mover',
  'dialog.moveFolder.createNewFolderButton': 'Añadir carpeta',
  'dialog.reportAbuse.cancelButton': 'Cancelar',
  'dialog.reportAbuse.reportAbuseButton': 'Denunciar infracción',
  'dialog.reportAbuse.heading': 'Denunciar infracción',
  'dialog.reportAbuse.emailInput': 'Tu correo electrónico',
  'dialog.reportAbuse.nameInput': 'Tu nombre',
  'dialog.reportAbuse.radioButtonText': '¿Por qué denuncias este contenido?',
  'dialog.reportAbuse.defamation': 'Difamación',
  'dialog.reportAbuse.hate': 'Contenido racista o violento',
  'dialog.reportAbuse.trademark': 'Infracción de marca comercial',
  'dialog.reportAbuse.pornography': 'Contenido sexualmente explícito',
  'dialog.reportAbuse.vulgar': 'Contenido ofensivo',
  'dialog.reportAbuse.other': 'Otros',
  'dialog.reportAbuse.inappropriate': 'Inapropiado',
  'dialog.reportAbuse.age': 'Imprecisión de edad',
  'dialog.reportAbuse.gender': 'Imprecisión de género',
  'dialog.reportAbuse.description': 'Si crees que este contenido de Creative Cloud infringe las Condiciones de uso de Adobe, puedes informar del mismo rellenando este sencillo formulario.',
  'dialog.reportAbuse.describeConcern': 'Describe la preocupación',
  'dialog.reportAbuse.success': 'La infracción se ha denunciado correctamente',
  'dialog.reportAbuse.failure': 'Error al notificar infracción',
  'dialog.reportAbuse.textAreaTitle': 'Facilita una descripción de lo que te preocupa',
  'dialog.reportAbuse.required': 'Obligatorio',
  'dialog.cachefull.title': 'No puede ponerse disponible sin conexión',
  'dialog.cachefull.message': 'Ya no queda espacio en el dispositivo. Haz que los documentos sean solo en línea para liberar espacio.',
  'dialog.cachefull.confirm': 'Ok',
  'dialog.syncError.heading': 'Este documento ha dejado de sincronizarse con la nube',
  'dialog.syncError.body1': 'Te recomendamos que guardes la última versión como una copia y recuperes la última versión del documento guardada en la nube.',
  'dialog.syncError.body2': 'Puedes abrir este documento y realizar modificaciones, pero los cambios no se guardarán en la nube.',
  'dialog.syncError.offline': 'Debes tener conexión a Internet para guardar una copia y restaurar el original.',
  'dialog.syncError.learnMore': 'Más información',
  'dialog.syncError.resolveButton': 'Guardar una copia y recuperar',
  'dialog.syncError.openButton': 'Abrir',
  'dialog.syncErrorCopyFail.heading': 'No se ha podido guardar una copia',
  'dialog.syncErrorCopyFail.body1': 'Aún puedes abrir este documento y realizar modificaciones, pero los cambios no se guardarán en la nube.',
  'dialog.syncErrorCopyFail.body2': 'Ponte en contacto con el servicio de atención al cliente de Adobe para obtener más ayuda. (Error: LocalContentSyncSuspended)',
  'dialog.syncErrorCopyFail.closeButton': 'Cerrar',
  'dialog.syncErrorCopyFail.contactUs': 'Contactar con nosotros',
  'dialog.syncErrorPurgeFail.heading': 'No se ha podido recuperar la última versión desde la nube',
  'dialog.syncErrorPurgeFail.body1': 'Se ha creado una copia del documento, pero no se ha podido recuperar la última versión del documento guardada en la nube.',
  'dialog.syncErrorPurgeFail.body2': 'Ponte en contacto con el servicio de atención al cliente de Adobe para obtener más ayuda. (Error: LocalContentSyncSuspended)',
  'dialog.syncErrorPurgeFail.closeButton': 'Cerrar',
  'dialog.syncErrorPurgeFail.contactUs': 'Contactar con nosotros',
  'onboardingCdo.banner.title.sprk': 'Una forma mejor de trabajar',
  'onboardingCdo.banner.title.phxs': '¿Utilizas Photoshop en el iPad? Prueba los documentos en la nube',
  'onboardingCdo.banner.title.ilst': 'Ahora puedes usar los documentos en la nube en Illustrator',
  'onboardingCdo.banner.title.idsn': 'Ahora puedes usar documentos en la nube en InDesign',
  'onboardingCdo.banner.message.sprk': 'Edita tus documentos en la nube en cualquier lugar, incluso sin conexión. Los cambios se guardan automáticamente y se pueden ver en el historial del documento. Compártelos con otros para colaborar perfectamente en tiempo real.',
  'onboardingCdo.banner.message.phxs': 'Los documentos en la nube se guardan automáticamente en la nube de Adobe conforme vas trabajando, de modo que puedas acceder a tus archivos desde el equipo de escritorio o desde el iPad.',
  'onboardingCdo.banner.message.ilst': 'Los documentos en la nube en Illustrator se guardan automáticamente en la nube de Adobe mientras trabajas. También puedes ver el historial de versiones para ver cómo ha evolucionado tu trabajo.',
  'onboardingCdo.banner.message.idsn': 'Los documentos en la nube en InDesign se guardan automáticamente en la nube de Adobe mientras trabajas.',
  'onboardingCdo.banner.linkTitle': 'Más información',
  'onboardingCdo.banner.confirm': 'OK',
  'operation.progress.archive': 'Eliminando {batchSize, plural, =1 {1 elemento} other {{inProgressNum} de {batchSize} elementos}}...',
  'operation.progress.unarchive': 'Restaurando {batchSize, plural, =1 {1 elemento} other {{inProgressNum} de {batchSize} elementos}}...',
  'operation.progress.move': 'Moviendo {batchSize, plural, =1 {1 elemento} other {{inProgressNum} de {batchSize} elementos}}...',
  'operation.progress.permdelete': 'Eliminando de forma permanente {batchSize, plural, =1 {1 elemento} other {{inProgressNum} de {batchSize} elementos}}...',
  'operation.progress.rename': 'Cambiando de nombre {batchSize, plural, =1 {1 elemento} other {{inProgressNum} de {batchSize} elementos}}...',
  'operation.progress.create_new_folder': 'Creando nueva carpeta...',
  'operation.progress.duplicate': 'Duplicando {batchSize, plural, =1 {1 elemento} other {{inProgressNum} de {batchSize} elementos}}...',
  'operation.progress.user_pin': 'Haciendo que {batchSize, plural, =1 {1 elemento esté disponible} other {{inProgressNum} de {batchSize} elementos estén disponibles}} sin conexión...',
  'operation.progress.user_unpin': 'Dejando {batchSize, plural, =1 {1 elemento disponible} other {{inProgressNum} de {batchSize} elementos disponibles}} solo en línea...',
  'operation.progress.resolve_sync_error': 'Copiando y recuperando la última versión guardada en la nube...',
  'tooltip.offline.general': 'Se requiere conexión a Internet.',
  'tooltip.offline.create-new-folder': 'Para crear carpetas se requiere conexión a Internet.',
  'tooltip.offline.move': 'Para mover elementos se requiere una conexión a Internet.',
  'tooltip.syncing.disabled': 'Finalización de sincronización pendiente',
  'tooltip.rename.disabled': 'No es posible cambiar el nombre de un documento seleccionado. Ábrelo en la aplicación correspondiente para habilitar el cambio de nombre.',
  'tooltip.rename.disabled.sprk': 'Este archivo no puede renombrarse hasta que se abra en XD.',
  'tooltip.syncSuspended.needsAction': 'La sincronización se ha detenido. Abre para realizar una acción.',
  'tooltip.syncSuspended.noAction': 'La sincronización se ha detenido. Esta acción no se permite en este momento.',
  'Recents.title': 'Recientes',
  'Recents.cloudDocTitle': 'DOCUMENTO EN NUBE',
  'Recents.error.subtext.coreSync': 'Los elementos recientes no están disponibles en este momento porque la sincronización de Creative Cloud no funciona correctamente.',
  'item.saveForOfflineIconToolTip': 'Este documento se ha descargado y está completamente disponible sin conexión.',
  'item.disconnected.cloudonly': 'Estás desconectado. Vuelve a conectarte para abrir el documento.',
  'item.coresyncdown.cloudonly': 'No se puede cargar el archivo. Actualizar o reiniciar Creative Cloud puede solucionar este problema.',
  'folder.subtitle': 'CARPETA',
  'review.subtitle': 'REVISIÓN',
  'prototype.subtitle': 'PROTOTIPO',
  'designspecs.subtitle': 'ESPECIFICACIONES DE DISEÑO',
  'project.subtitle': 'PROYECTO',
  'library.subtitle': 'BIBLIOTECA',
  'webLink.subtitle': 'ENLACE A WEB',
  'abbreviations.fileSize.byte': 'B',
  'abbreviations.fileSize.kilobyte': 'KB',
  'abbreviations.fileSize.megabyte': 'MB',
  'abbreviations.fileSize.gigabyte': 'GB',
  'abbreviations.fileSize.terabyte': 'TB',
  'sam.copyNameFormat': 'Copia de %@',
  'cloudsync.quota.title': 'ALMACENAMIENTO EN LA NUBE',
  'cloudsync.quota.percentage': '{percentageUsed} %',
  'cloudsync.quota.usage': '{usedCloudQuotaString} de {maxCloudQuotaString} usados',
  'cloudsync.quota.warning': 'Tu espacio de almacenamiento en la nube está lleno. Adquiere un plan superior para seguir sincronizando tu trabajo.',
  'cloudsync.quota.error': 'No hay información de almacenamiento disponible...',
  'cloudsync.quota.upgrade': 'Actualizar',
  'cloudsync.status.complete.title': 'Sincronizado y copia de seguridad creada',
  'cloudsync.status.syncing.title': 'Sincronizando documentos en la nube',
  'cloudsync.status.syncing.descr': '{progress}/{total}',
  'cloudsync.status.offline.title': 'Modo de trabajo sin conexión',
  'cloudsync.status.offline.descr': 'Se está guardando todo de forma local. Los documentos se sincronizarán con la nube cuando te vuelvas a conectar.',
  'cloudsync.status.disabled.title': 'Sincronización desactivada',
  'cloudsync.status.disabled.descr': 'Se está guardando todo de forma local. Los documentos se sincronizarán con la nube cuando haya almacenamiento disponible.',
  'cloudsync.item.progress.determinate': '{progress}/{total}',
  'cloudsync.item.progress.indeterminate': 'Sincronizando...',
  'cloudsync.item.complete': 'Completado',
  'cloudsync.items.header': 'Actividad de la red',
  'cloudsync.alert.title.coresync.down': 'No se puede cargar',
  'cloudsync.alert.subtext.coresync.down': 'La nube no se sincroniza. Comprueba que Creative Cloud para escritorio está actualizado o intenta reiniciar la aplicación.',
  'cloudsync.alert.subtext.coresync.down.learnmore': 'Más información',
  'cloudsync.tooltip.offline': 'Desconectado',
  'cloudsync.tooltip.error': 'Error',
  'cloudsync.tooltip.syncing': 'Guardando...',
  'cloudsync.tooltip.default': 'Guardado',
  'cloudsync.singleDoc.offline.title': 'Desconectado',
  'cloudsync.singleDoc.offline.descr': 'Intentando volver a conectar...',
  'cloudsync.singleDoc.offline.timestamp': 'Última sincronización {time}',
  'cloudsync.singleDoc.error.samInitFail.title': 'La nube ha dejado de sincronizarse',
  'cloudsync.singleDoc.error.samInitFail.descr': 'Reinicia esta aplicación para continuar sincronizando tu trabajo.',
  'cloudsync.singleDoc.error.syncSuspended.title': 'La nube ha dejado de sincronizarse',
  'cloudsync.singleDoc.error.syncSuspended.descr': 'Reinicia esta aplicación para continuar sincronizando tu trabajo.',
  'cloudsync.singleDoc.error.title': 'No se puede cargar',
  'cloudsync.singleDoc.error.descr': 'La nube no se sincroniza. Comprueba que Creative Cloud para escritorio está actualizado o intenta reiniciar la aplicación.',
  'cloudsync.singleDoc.error.learnMore': 'Más información',
  'cloudsync.singleDoc.disabled.quotaExceeded.title': 'El almacenamiento en la nube está lleno',
  'cloudsync.singleDoc.disabled.quotaExceeded.descr': 'Pasa a un plan superior de Creative Cloud para seguir sincronizando tu trabajo.',
  'cloudsync.singleDoc.syncing.title': 'Guardando...',
  'cloudsync.singleDoc.syncing.descr': 'En curso',
  'cloudsync.singleDoc.disabled.title': 'No se puede guardar',
  'cloudsync.singleDoc.disabled.descr': 'La cuenta no tiene espacio de almacenamiento suficiente.',
  'cloudsync.singleDoc.complete.title': 'Archivo guardado',
  'cloudsync.singleDoc.complete.timestamp': 'Última sincronización {time}'
};

/***/ }),

/***/ "Cc7P":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ServiceRequest; });
/* harmony import */ var _ccx_public_shared_asset_model_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("m4Z2");
/* harmony import */ var _stores_Settings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("5u1M");
/* harmony import */ var _stores_SharedStore__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("jmEq");
/* harmony import */ var _utils_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("YVc3");
/* harmony import */ var _utils_performance__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("P5RH");
/* harmony import */ var _monitor_sleep__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("Up8U");
/* harmony import */ var uuid__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("EcEN");
/* harmony import */ var uuid__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(uuid__WEBPACK_IMPORTED_MODULE_6__);
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2020 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
/**
 * This file is copied entirely (with small modifications) from Assets Web repo (assets/src/utils/api/index.tsx)
 */







const performanceMarkerName = 'CCSPACES_NETWORK_REQUEST';
/**
 * ServiceRequest base class that allows for simple wrapping
 * of required APIs that can be used in Assets codebase
 *
 * @export
 * @class ServiceRequest
 */
class ServiceRequest {
    constructor() {
        this.options = {
            method: 'GET',
            headers: {},
            enableRequestId: true,
            useAuthentication: true,
        };
        this._bodyIsJSON = false;
        this.error = null;
    }
    /**
     * Static utility functon that wraps calling .json on a response but also
     * returns the response for chaning purposes
     *
     * @static
     * @memberof ServiceRequest
     */
    static async parseJSONResponse(response) {
        try {
            if (response.status === 204) {
                // No Content success status response code
                return {
                    response,
                    parsedBody: {},
                };
            }
            let parsedBody = {};
            // Confirm Access API returns no `response` data on success (Status Code: 200)
            // Ignore "content-length" because UXP can show "0" even when there's data.
            const responseText = await response.text();
            if (responseText.length) {
                parsedBody = JSON.parse(responseText);
            }
            return {
                response,
                parsedBody,
            };
        }
        catch (e) {
            throw _ccx_public_shared_asset_model_js__WEBPACK_IMPORTED_MODULE_0__[/* SAMHttpResponseError */ "s"].createWithResponseAndTitle(response, 'Failed to parse JSON');
        }
    }
    /**
     * Preset an api to call.
     *
     * @param {string} [apiPath='/'] the API to call
     * @returns {ServiceRequest}
     * @memberof ServiceRequest
     */
    url(apiPath = '/') {
        this._url = apiPath;
        return this;
    }
    /**
     * Store the signal object to be used in the fetch operation
     */
    signal(signal) {
        this._signal = signal;
        return this;
    }
    /**
     * Preset the method of the ajax request
     *
     * @param {string} [method='GET'] Method of the request
     * @returns {ServiceRequest}
     * @memberof ServiceRequest
     */
    method(method = 'GET') {
        const upperCaseMethod = method.toUpperCase();
        if (_utils_constants__WEBPACK_IMPORTED_MODULE_3__[/* VALID_REQUEST_METHODS */ "K"].includes(upperCaseMethod)) {
            this.options.method = upperCaseMethod;
        }
        return this;
    }
    /**
     * Set the content type header for this request.
     *
     * @param {string} contentType
     * @returns {ServiceRequest}
     * @memberof ServiceRequest
     */
    content(contentType = '*/*') {
        this.options.headers['Content-Type'] = contentType || '*/*';
        return this;
    }
    /**
     * Set a header for this request.
     *
     * @param {object} header
     * @returns {ServiceRequest}
     * @memberof ServiceRequest
     */
    header(headerKey, headerValue) {
        if (headerValue !== undefined) {
            this.options.headers[headerKey] = headerValue;
        }
        return this;
    }
    headers(headers) {
        if (headers) {
            this.options.headers = {
                ...this.options.headers,
                ...headers,
            };
        }
        return this;
    }
    /**
     * Set the body of the request. Method expects a javascript object and
     * will attempt to parse to a string. This will silently fail until
     * .fetch is called on this ServiceRequest. This allows for handling
     * the thrown Exception in a catch in the same vein as a failed XHR request
     *
     * @param {*} [bodyObject={}]
     * @returns {ServiceRequest}
     * @memberof ServiceRequest
     */
    json(bodyObject = {}) {
        this._bodyIsJSON = true;
        const currentBody = this.options.body || {};
        return this.body({ ...currentBody, ...bodyObject });
    }
    /**
     * Set the body of the request. Method expects a javascript object and
     * will attempt to parse to a string. This will silently fail until
     * .fetch is called on this ServiceRequest. This allows for handling
     * the thrown Exception in a catch in the same vein as a failed XHR request
     *
     * @param {*} [bodyObject={}]
     * @returns {ServiceRequest}
     * @memberof ServiceRequest
     */
    body(bodyObject) {
        this.options.body = bodyObject;
        return this;
    }
    async updateToken(requestId, token) {
        const { imsData } = _stores_SharedStore__WEBPACK_IMPORTED_MODULE_2__[/* sharedStore */ "d"];
        const newToken = await imsData.fetchToken(token);
        if (!newToken || newToken === token) {
            _stores_Settings__WEBPACK_IMPORTED_MODULE_1__[/* settings */ "b"].logger.warn(`[Fetch ${requestId}] fetching the token from host is returning the same token`);
        }
        return newToken;
    }
    /**
     * Perform the request
     *
     * @returns {Promise} Fetch response || Failed request error
     * @memberof ServiceRequest
     */
    async fetch() {
        const { imsData } = _stores_SharedStore__WEBPACK_IMPORTED_MODULE_2__[/* sharedStore */ "d"];
        let { token } = imsData;
        const requestId = uuid__WEBPACK_IMPORTED_MODULE_6___default()();
        if (this.options.useAuthentication) {
            if (!token) {
                token = await this.updateToken(requestId);
            }
            this.header('Authorization', `Bearer ${token}`);
        }
        if (this.options.enableRequestId) {
            this.header('X-Request-Id', requestId);
        }
        // As discussed with Haresh, commenting till we get header whitelisted with other services.
        // this.header(DIC_HEADER_NAME, ProjectAnalytics.getIngestContext());
        let body = this.options.body;
        if (this._bodyIsJSON) {
            body = JSON.stringify(this.options.body);
        }
        const startTime = Date.now();
        _stores_Settings__WEBPACK_IMPORTED_MODULE_1__[/* settings */ "b"].logger.info(`[Fetch ${requestId}] ${this.options.method || 'GET'} ${this._url}`);
        const resolve = _utils_performance__WEBPACK_IMPORTED_MODULE_4__[/* performanceUtils */ "b"].mark(performanceMarkerName);
        let response;
        try {
            response = await fetch(this._url, { ...this.options, body, signal: this._signal });
            _stores_Settings__WEBPACK_IMPORTED_MODULE_1__[/* settings */ "b"].logger.info(`[Fetch ${requestId}] ${response.status} (${Date.now() - startTime}ms)`);
            // If the initial response is 401, get a new token and re-try the call
            if (this.options.useAuthentication && response.status === 401) {
                const newToken = await this.updateToken(requestId, token);
                if (newToken && newToken !== token) {
                    this.header('Authorization', `Bearer ${newToken}`);
                    response = await fetch(this._url, {
                        ...this.options,
                        body,
                        signal: this._signal,
                    });
                    _stores_Settings__WEBPACK_IMPORTED_MODULE_1__[/* settings */ "b"].logger.info(`[Fetch ${requestId}] ${response.status} (${Date.now() - startTime}ms)`);
                }
            }
        }
        catch (e) {
            _stores_Settings__WEBPACK_IMPORTED_MODULE_1__[/* settings */ "b"].logger.error(`[Fetch ${requestId}] Error - ${e} (${Date.now() - startTime}ms)`);
            throw _ccx_public_shared_asset_model_js__WEBPACK_IMPORTED_MODULE_0__[/* SAMGenericError */ "r"].wrapErrorIfNeeded('NETWORK_ERROR', `Failed network request when fetching: ${this._url}`, e);
        }
        // [CCPROJ-1315] Respect Retry-After Header on Platform APIs
        if ([503, 429].includes(response.status)) {
            let retryAfterValue = response.headers.get('Retry-After');
            if (retryAfterValue) {
                _stores_Settings__WEBPACK_IMPORTED_MODULE_1__[/* settings */ "b"].logger.info(`[Fetch ${requestId}] Retry after ${retryAfterValue}`);
                await Object(_monitor_sleep__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"])(parseInt(retryAfterValue) * 1000);
                return this.fetch();
            }
        }
        const { Authorization, ...requestHeaders } = this.options.headers;
        resolve({
            metric: performanceMarkerName,
            request: {
                url: this._url,
                options: {
                    method: this.options.method || 'GET',
                    headers: requestHeaders,
                    body: this.options.body,
                },
            },
            response: {
                status: response.status,
                headers: [...response.headers.entries()],
            },
        });
        return response;
    }
    async fetchAndVerify() {
        return ServiceRequest.verifyStatus(await this.fetch());
    }
    async fetchAndVerifyJson() {
        let response = await this.fetchAndVerify();
        return (await response.json());
    }
}
/**
 * Static utility function generalizing the checking of response status
 * when a response is given for a particular API call
 *
 * @static
 * @memberof ServiceRequest
 */
ServiceRequest.verifyStatus = response => {
    const status = response.status;
    if (!(status >= 200 && status < 400)) {
        throw _ccx_public_shared_asset_model_js__WEBPACK_IMPORTED_MODULE_0__[/* SAMHttpResponseError */ "s"].createWithResponse(response);
    }
    return response;
};
/**
 * Static utility functon that wraps calling .text on a response but also
 * returns the response for chaning purposes
 *
 * @static
 * @memberof ServiceRequest
 */
ServiceRequest.parseTextResponse = async (response) => ({
    response: response,
    parsedBody: await response.text(),
});


/***/ }),

/***/ "CczM":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

const _excluded = ["styles"];

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }

function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

var _default = _ref => {
  let {
    styles = {}
  } = _ref,
      props = _objectWithoutProperties(_ref, _excluded);

  return /*#__PURE__*/_react.default.createElement("svg", _extends({
    xmlns: "http://www.w3.org/2000/svg",
    width: "96",
    height: "96",
    viewBox: "0 0 96 96"
  }, props), /*#__PURE__*/_react.default.createElement("defs", null), /*#__PURE__*/_react.default.createElement("g", {
    id: "ICONS_96",
    "data-name": "ICONS 96"
  }, /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M41.705 57.75a1.271 1.271 0 0 1-1.27-1.271V41.521A1.27 1.27 0 0 1 42.3 40.4l14.96 7.92a1.27 1.27 0 0 1-.052 2.271l-14.96 7.039a1.259 1.259 0 0 1-.543.12zm.23-15.848v14.215l14.216-6.689zm14.952 8.009zm-.32-.679z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M81 70H15a3 3 0 0 1-3-3V31a3 3 0 0 1 3-3h66a3 3 0 0 1 3 3v36a3 3 0 0 1-3 3zM15 30a1 1 0 0 0-1 1v36a1 1 0 0 0 1 1h66a1 1 0 0 0 1-1V31a1 1 0 0 0-1-1z"
  })));
};

exports.default = _default;

/***/ }),

/***/ "CdqW":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _createClass = function () {
  function defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i];
      descriptor.enumerable = descriptor.enumerable || false;
      descriptor.configurable = true;
      if ("value" in descriptor) descriptor.writable = true;
      Object.defineProperty(target, descriptor.key, descriptor);
    }
  }

  return function (Constructor, protoProps, staticProps) {
    if (protoProps) defineProperties(Constructor.prototype, protoProps);
    if (staticProps) defineProperties(Constructor, staticProps);
    return Constructor;
  };
}();

var _lodash = __webpack_require__("4Dm8");

var _lodash2 = _interopRequireDefault(_lodash);

var _DAO2 = __webpack_require__("io2S");

var _DAO3 = _interopRequireDefault(_DAO2);

var _utils = __webpack_require__("VKd2");

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _classCallCheck(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}

function _possibleConstructorReturn(self, call) {
  if (!self) {
    throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
  }

  return call && (typeof call === "object" || typeof call === "function") ? call : self;
}

function _inherits(subClass, superClass) {
  if (typeof superClass !== "function" && superClass !== null) {
    throw new TypeError("Super expression must either be null or a function, not " + typeof superClass);
  }

  subClass.prototype = Object.create(superClass && superClass.prototype, {
    constructor: {
      value: subClass,
      enumerable: false,
      writable: true,
      configurable: true
    }
  });
  if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;
}
/**
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 */


var InstanceConfig = {};
/**
 * PATH - in the API can be in one of the following forms:
 * A storage service path. Example: cloud-content/56475bf9-dd79-401b-8978-9b88780bae41.xdc
 * A storage service id-based path. Example: id/urn:aaid:sc:US:2f86d5e2-0fd2-49b8-a05e-6a47cd056486
 * A full storage service path-based URL. Example: https://cc-api-storage-stage.adobe.io/cloud-content/56475bf9-dd79-401b-8978-9b88780bae41.xdc
 * A full storage service id-based URL. Example: https://cc-api-storage-stage.adobe.io/id/urn:aaid:sc:US:05286244-1eae-4e51-89a9-9ac99d6647f5
 */

/**
 * Share endpoint for api version three.
 */

var AccessRequestsService = function (_DAO) {
  _inherits(AccessRequestsService, _DAO);

  function AccessRequestsService() {
    _classCallCheck(this, AccessRequestsService);

    return _possibleConstructorReturn(this, (AccessRequestsService.__proto__ || Object.getPrototypeOf(AccessRequestsService)).apply(this, arguments));
  }

  _createClass(AccessRequestsService, [{
    key: 'get',

    /**
    * get - get sharing information for a resource
    * @param {Object} request
    *   @property {String} orderBy (required) - Supported values
    *             +requesttime: ascending by request create date
    *             -requesttime: descending by request create date
    *   @property {Number} limit (optional, default: 10, max: 30) - integer, maximum number of requests to return
    *   @property {String} type (optional, default:) - Comma Separated List, types of resource to return. If omitted, all types are returned
    *   @property {String} resourceUrn (optional,default) - if set to resourceUrn api returns access requests on a particular resource 
    * @returns {Promise}
    */
    value: function get() {
      var request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
      var _request$orderBy = request.orderBy,
          orderBy = _request$orderBy === undefined ? '-requesttime' : _request$orderBy,
          _request$types = request.types,
          types = _request$types === undefined ? [] : _request$types,
          _request$limit = request.limit,
          limit = _request$limit === undefined ? 10 : _request$limit,
          resourceUrn = request.resourceUrn;
      var params = {
        limit: limit,
        orderBy: orderBy,
        resourceUrn: resourceUrn,
        types: types
      };
      var url = this._endpoint + '/accessrequests';
      return this.getRequest({
        url: url,
        params: params
      });
    }
    /**
     * post - grant or reject an access request. Only users with sharing permissions for a resource can grant or reject an access request.
     * @param {Object} request - object with all the paramaters to send handle request.
     *   @property {String} action (required) - Either "grant" or "reject".
     *   @property {String} role (required when action is "grant")
     *   @property {String} resourceUrn (Required) - URN of the requested resource  
     *   @property {String} requesterId (Required) - userID of the requester
     *   @property {Object} notification (Required)
     *     @property {Object} email (Required) - specifies the email notification sent to the requester.
     *       @property {String} templateName (Required) - Name of template registered with APO (Adobe Post Office) with the "cc_collab_" prefix.
     *       @property {String} locale (Required) - Specifies the locale to be used to select the appropriate template. It is provided in the form of a language code and country code (e.g., “EN_US”)
     *     @property {Object} parameters (Optional)
     *       @property {String} targetUrl (Optional) Default is "". Typically a web url to view the resource. The maximum length of the value is 300 characters. If specified, it will be sent in the ANS/email notification as the resource's URL. Must be a valid URL. The host of the url must be whitelisted by the service. The corresponding email param is Param_Target_URL
     *       @property {String} message (Optional) Default is "": A custom message for the inviter to add to the invite notification. The maximum length of the value is 300 characters. The following special characters in the message are removed: &, >, <, /, :, \n, \r. The corresponding email param is Param_Custom_Message.
     * @returns {Promise} 
     */

  }, {
    key: 'post',
    value: function post() {
      var request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
      var url = this._endpoint + '/accessrequests/ops';

      if (!path || (0, _lodash2.default)(request) < 1) {
        throw new Error('Missing Request paramaters');
      }

      return this.postRequest({
        url: url,
        params: params
      });
    }
  }]);

  return AccessRequestsService;
}(_DAO3.default);

exports.default = (0, _utils.InstanceCreator)(AccessRequestsService, InstanceConfig);
module.exports = exports['default'];

/***/ }),

/***/ "CfXC":
/***/ (function(module, exports, __webpack_require__) {

var aes = __webpack_require__("OfWw");

var Buffer = __webpack_require__("hwdV").Buffer;

var Transform = __webpack_require__("ZDAU");

var inherits = __webpack_require__("P7XM");

function StreamCipher(mode, key, iv, decrypt) {
  Transform.call(this);
  this._cipher = new aes.AES(key);
  this._prev = Buffer.from(iv);
  this._cache = Buffer.allocUnsafe(0);
  this._secCache = Buffer.allocUnsafe(0);
  this._decrypt = decrypt;
  this._mode = mode;
}

inherits(StreamCipher, Transform);

StreamCipher.prototype._update = function (chunk) {
  return this._mode.encrypt(this, chunk, this._decrypt);
};

StreamCipher.prototype._final = function () {
  this._cipher.scrub();
};

module.exports = StreamCipher;

/***/ }),

/***/ "Cgfd":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return parseAcpLink; });
/* unused harmony export headerLinkToACPLink */
/* unused harmony export parseAcpHeaderLink */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return parseAcpBodyLink; });
/* harmony import */ var uri_templates__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("qPad");
/* harmony import */ var uri_templates__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(uri_templates__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _SpacesError__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("R5sx");


function parseAcpLink(templateData = {}, linkData, mode) {
    let link = linkData;
    if (Array.isArray(link)) {
        // `parseAcpHeaderLink` use case,
        // forgot why... ¯\(°_o)/¯
        if (!mode) {
            return link;
        }
        link = link.find(link => link.mode === mode);
    }
    // Not all links will be available:
    // - api:discard link is for non-discarded items
    // - api:restore link is for discarded items
    // - rendition link is for renderable items
    if (!link) {
        return undefined;
    }
    const { templated, href, uri } = link;
    // depend on if its a body or header link, respectively
    const templatedLink = href || uri;
    // `templateData !== false`: there are cases where we don't want to templatize the link yet
    if (templated && templateData !== false) {
        return uri_templates__WEBPACK_IMPORTED_MODULE_0___default()(templatedLink).fill(templateData);
    }
    return templatedLink;
}
/**
 * Converts a header link (with "uri", returned from `resolve`) to an ACPLink (with "href").
 * TODO: At some point, we should probably migrate IACPLink to IAcpBodyLink for clarity.
 */
function headerLinkToACPLink(headerLink) {
    if (!headerLink.uri) {
        throw new _SpacesError__WEBPACK_IMPORTED_MODULE_1__[/* SpacesError */ "b"]('INVALID_LINK', `Invariant: expected an IAcpHeaderLink, but "uri" was undefined.`);
    }
    const acpLink = {
        ...headerLink,
        href: headerLink.uri,
        uri: undefined,
    };
    return acpLink;
}
/**
 * Get the link from ACP link structure in the response header.
 * This is commonly used by the resolved by ID/Path API, as those only support HEAD requests.
 * Templatize the link If it is templated and template data is provided, otherwise remove the templated fields.
 * This will prevent failures if an ACP link get templated in the future.
 * https://git.corp.adobe.com/pages/caf/api-spec/chapters/linking/hypermedia.html
 *
 * @param {Object} links - List of ACP links (in the response header)
 * @param {string} rel - The link relation name
 * @param {Object | false} templateData - Optional template data, will be used if the link is templated. Set to `false` to return the raw templated link (i.e. image rendition). Will remove the templated fields if the link is templated by default.
 */
function parseAcpHeaderLink(links, rel, templateData = {}) {
    return parseAcpLink(templateData, links.find(link => link.rel === rel));
}
/**
 * Get the link from ACP link structure in the response body.
 * Templatize the link If it is templated and template data is provided, otherwise remove the templated fields.
 * This will prevent failures if an ACP link get templated in the future.
 * https://git.corp.adobe.com/pages/caf/api-spec/chapters/linking/hypermedia.html
 *
 * @param {Object} links - List of ACP links (usually in `_links` of response body)
 * @param {string} rel - The link relation name
 * @param {Object | false} templateData - Optional template data, will be used if the link is templated. Set to `false` to return the raw templated link (i.e. image rendition). Will remove the templated fields if the link is templated by default.
 * @param {string} mode - ACP links usually have ID and path based version of the same link. Will default to ID based.
 */
function parseAcpBodyLink(links, rel, templateData = {}, mode = 'id') {
    return parseAcpLink(templateData, links[rel], mode);
}


/***/ }),

/***/ "Cn9g":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var _UxpOptions = _interopRequireDefault(__webpack_require__("zvwv"));

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}
/*************************************************************************
* ADOBE CONFIDENTIAL
* ___________________
*
* Copyright 2019 Adobe
* All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains
* the property of Adobe and its suppliers, if any. The intellectual
* and technical concepts contained herein are proprietary to Adobe
* and its suppliers and are protected by all applicable intellectual
* property laws, including trade secret and copyright laws.
* Dissemination of this information or reproduction of this material
* is strictly forbidden unless prior written permission is obtained
* from Adobe.
**************************************************************************/


module.exports = _UxpOptions.default.select('Button', () => __webpack_require__("ueNY"), () => __webpack_require__("pM4T"), () => __webpack_require__("cON6"));

/***/ }),

/***/ "Cpvd":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(module) {/* unused harmony export _addTracingExtensions */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return addExtensionMethods; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return startIdleTransaction; });
/* harmony import */ var _sentry_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GIgW");
/* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("8LbN");
/* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("9AQC");
/* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("+A1k");
/* harmony import */ var _errors_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("2bdC");
/* harmony import */ var _idletransaction_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("MBYv");
/* harmony import */ var _transaction_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("EldZ");
/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("FGHR");






/** Returns all trace headers that are currently on the top scope. */

function traceHeaders() {
  const scope = this.getScope();

  if (scope) {
    const span = scope.getSpan();

    if (span) {
      return {
        'sentry-trace': span.toTraceparent()
      };
    }
  }

  return {};
}
/**
 * Makes a sampling decision for the given transaction and stores it on the transaction.
 *
 * Called every time a transaction is created. Only transactions which emerge with a `sampled` value of `true` will be
 * sent to Sentry.
 *
 * @param transaction: The transaction needing a sampling decision
 * @param options: The current client's options, so we can access `tracesSampleRate` and/or `tracesSampler`
 * @param samplingContext: Default and user-provided data which may be used to help make the decision
 *
 * @returns The given transaction with its `sampled` value set
 */


function sample(transaction, options, samplingContext) {
  // nothing to do if tracing is not enabled
  if (!Object(_utils_js__WEBPACK_IMPORTED_MODULE_7__[/* hasTracingEnabled */ "b"])(options)) {
    transaction.sampled = false;
    return transaction;
  } // if the user has forced a sampling decision by passing a `sampled` value in their transaction context, go with that


  if (transaction.sampled !== undefined) {
    transaction.setMetadata({
      sampleRate: Number(transaction.sampled)
    });
    return transaction;
  } // we would have bailed already if neither `tracesSampler` nor `tracesSampleRate` were defined, so one of these should
  // work; prefer the hook if so


  let sampleRate;

  if (typeof options.tracesSampler === 'function') {
    sampleRate = options.tracesSampler(samplingContext);
    transaction.setMetadata({
      sampleRate: Number(sampleRate)
    });
  } else if (samplingContext.parentSampled !== undefined) {
    sampleRate = samplingContext.parentSampled;
  } else {
    sampleRate = options.tracesSampleRate;
    transaction.setMetadata({
      sampleRate: Number(sampleRate)
    });
  } // Since this is coming from the user (or from a function provided by the user), who knows what we might get. (The
  // only valid values are booleans or numbers between 0 and 1.)


  if (!isValidSampleRate(sampleRate)) {
    (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && _sentry_utils__WEBPACK_IMPORTED_MODULE_1__[/* logger */ "c"].warn('[Tracing] Discarding transaction because of invalid sample rate.');
    transaction.sampled = false;
    return transaction;
  } // if the function returned 0 (or false), or if `tracesSampleRate` is 0, it's a sign the transaction should be dropped


  if (!sampleRate) {
    (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && _sentry_utils__WEBPACK_IMPORTED_MODULE_1__[/* logger */ "c"].log(`[Tracing] Discarding transaction because ${typeof options.tracesSampler === 'function' ? 'tracesSampler returned 0 or false' : 'a negative sampling decision was inherited or tracesSampleRate is set to 0'}`);
    transaction.sampled = false;
    return transaction;
  } // Now we roll the dice. Math.random is inclusive of 0, but not of 1, so strict < is safe here. In case sampleRate is
  // a boolean, the < comparison will cause it to be automatically cast to 1 if it's true and 0 if it's false.


  transaction.sampled = Math.random() < sampleRate; // if we're not going to keep it, we're done

  if (!transaction.sampled) {
    (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && _sentry_utils__WEBPACK_IMPORTED_MODULE_1__[/* logger */ "c"].log(`[Tracing] Discarding transaction because it's not included in the random sample (sampling rate = ${Number(sampleRate)})`);
    return transaction;
  }

  (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && _sentry_utils__WEBPACK_IMPORTED_MODULE_1__[/* logger */ "c"].log(`[Tracing] starting ${transaction.op} transaction - ${transaction.name}`);
  return transaction;
}
/**
 * Checks the given sample rate to make sure it is valid type and value (a boolean, or a number between 0 and 1).
 */


function isValidSampleRate(rate) {
  // we need to check NaN explicitly because it's of type 'number' and therefore wouldn't get caught by this typecheck
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
  if (Object(_sentry_utils__WEBPACK_IMPORTED_MODULE_2__[/* isNaN */ "h"])(rate) || !(typeof rate === 'number' || typeof rate === 'boolean')) {
    (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && _sentry_utils__WEBPACK_IMPORTED_MODULE_1__[/* logger */ "c"].warn(`[Tracing] Given sample rate is invalid. Sample rate must be a boolean or a number between 0 and 1. Got ${JSON.stringify(rate)} of type ${JSON.stringify(typeof rate)}.`);
    return false;
  } // in case sampleRate is a boolean, it will get automatically cast to 1 if it's true and 0 if it's false


  if (rate < 0 || rate > 1) {
    (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && _sentry_utils__WEBPACK_IMPORTED_MODULE_1__[/* logger */ "c"].warn(`[Tracing] Given sample rate is invalid. Sample rate must be between 0 and 1. Got ${rate}.`);
    return false;
  }

  return true;
}
/**
 * Creates a new transaction and adds a sampling decision if it doesn't yet have one.
 *
 * The Hub.startTransaction method delegates to this method to do its work, passing the Hub instance in as `this`, as if
 * it had been called on the hub directly. Exists as a separate function so that it can be injected into the class as an
 * "extension method."
 *
 * @param this: The Hub starting the transaction
 * @param transactionContext: Data used to configure the transaction
 * @param CustomSamplingContext: Optional data to be provided to the `tracesSampler` function (if any)
 *
 * @returns The new transaction
 *
 * @see {@link Hub.startTransaction}
 */


function _startTransaction(transactionContext, customSamplingContext) {
  const client = this.getClient();
  const options = client && client.getOptions() || {};
  let transaction = new _transaction_js__WEBPACK_IMPORTED_MODULE_6__[/* Transaction */ "a"](transactionContext, this);
  transaction = sample(transaction, options, {
    parentSampled: transactionContext.parentSampled,
    transactionContext,
    ...customSamplingContext
  });

  if (transaction.sampled) {
    transaction.initSpanRecorder(options._experiments && options._experiments.maxSpans);
  }

  return transaction;
}
/**
 * Create new idle transaction.
 */


function startIdleTransaction(hub, transactionContext, idleTimeout, finalTimeout, onScope, customSamplingContext, heartbeatInterval) {
  const client = hub.getClient();
  const options = client && client.getOptions() || {};
  let transaction = new _idletransaction_js__WEBPACK_IMPORTED_MODULE_5__[/* IdleTransaction */ "d"](transactionContext, hub, idleTimeout, finalTimeout, heartbeatInterval, onScope);
  transaction = sample(transaction, options, {
    parentSampled: transactionContext.parentSampled,
    transactionContext,
    ...customSamplingContext
  });

  if (transaction.sampled) {
    transaction.initSpanRecorder(options._experiments && options._experiments.maxSpans);
  }

  return transaction;
}
/**
 * @private
 */


function _addTracingExtensions() {
  const carrier = Object(_sentry_core__WEBPACK_IMPORTED_MODULE_0__[/* getMainCarrier */ "d"])();

  if (!carrier.__SENTRY__) {
    return;
  }

  carrier.__SENTRY__.extensions = carrier.__SENTRY__.extensions || {};

  if (!carrier.__SENTRY__.extensions.startTransaction) {
    carrier.__SENTRY__.extensions.startTransaction = _startTransaction;
  }

  if (!carrier.__SENTRY__.extensions.traceHeaders) {
    carrier.__SENTRY__.extensions.traceHeaders = traceHeaders;
  }
}
/**
 * @private
 */


function _autoloadDatabaseIntegrations() {
  const carrier = Object(_sentry_core__WEBPACK_IMPORTED_MODULE_0__[/* getMainCarrier */ "d"])();

  if (!carrier.__SENTRY__) {
    return;
  }

  const packageToIntegrationMapping = {
    mongodb() {
      const integration = Object(_sentry_utils__WEBPACK_IMPORTED_MODULE_3__[/* dynamicRequire */ "a"])(module, './integrations/node/mongo');
      return new integration.Mongo();
    },

    mongoose() {
      const integration = Object(_sentry_utils__WEBPACK_IMPORTED_MODULE_3__[/* dynamicRequire */ "a"])(module, './integrations/node/mongo');
      return new integration.Mongo({
        mongoose: true
      });
    },

    mysql() {
      const integration = Object(_sentry_utils__WEBPACK_IMPORTED_MODULE_3__[/* dynamicRequire */ "a"])(module, './integrations/node/mysql');
      return new integration.Mysql();
    },

    pg() {
      const integration = Object(_sentry_utils__WEBPACK_IMPORTED_MODULE_3__[/* dynamicRequire */ "a"])(module, './integrations/node/postgres');
      return new integration.Postgres();
    }

  };
  const mappedPackages = Object.keys(packageToIntegrationMapping).filter(moduleName => !!Object(_sentry_utils__WEBPACK_IMPORTED_MODULE_3__[/* loadModule */ "c"])(moduleName)).map(pkg => {
    try {
      return packageToIntegrationMapping[pkg]();
    } catch (e) {
      return undefined;
    }
  }).filter(p => p);

  if (mappedPackages.length > 0) {
    carrier.__SENTRY__.integrations = [...(carrier.__SENTRY__.integrations || []), ...mappedPackages];
  }
}
/**
 * This patches the global object and injects the Tracing extensions methods
 */


function addExtensionMethods() {
  _addTracingExtensions(); // Detect and automatically load specified integrations.


  if (Object(_sentry_utils__WEBPACK_IMPORTED_MODULE_3__[/* isNodeEnv */ "b"])()) {
    _autoloadDatabaseIntegrations();
  } // If an error happens globally, we should make sure transaction status is set to error.


  Object(_errors_js__WEBPACK_IMPORTED_MODULE_4__[/* registerErrorInstrumentation */ "a"])();
}


/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("3UD+")(module)))

/***/ }),

/***/ "Cpzz":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("jxLO"),
      24: __webpack_require__("4R/7")
    }
  }));
};

WrappedIcon.displayName = 'Duplicate';
exports.default = WrappedIcon;

/***/ }),

/***/ "Cr+W":
/***/ (function(module) {

module.exports = JSON.parse("{\"Clear search\":\"清除搜尋條件\"}");

/***/ }),

/***/ "CrhT":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("path", {
  d: "M33 32H3a1 1 0 0 1-1-1V10h31a1 1 0 0 1 1 1v20a1 1 0 0 1-1 1zM13.01 4.61A2 2 0 0 0 11.57 4H4a2 2 0 0 0-2 2v2h14.266z"
}));

/***/ }),

/***/ "Cs9C":
/***/ (function(module) {

module.exports = JSON.parse("{\"steps\":\"{currentStep}/{totalSteps}\"}");

/***/ }),

/***/ "CsEq":
/***/ (function(module) {

module.exports = JSON.parse("{\"Clear search\":\"Limpar pesquisa\"}");

/***/ }),

/***/ "CuaI":
/***/ (function(module, exports, __webpack_require__) {

// extracted by mini-css-extract-plugin

/***/ }),

/***/ "Cv/Q":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = filterReactDomProps;
/*************************************************************************
* ADOBE CONFIDENTIAL
* ___________________
*
* Copyright 2019 Adobe
* All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains
* the property of Adobe and its suppliers, if any. The intellectual
* and technical concepts contained herein are proprietary to Adobe
* and its suppliers and are protected by all applicable intellectual
* property laws, including trade secret and copyright laws.
* Dissemination of this information or reproduction of this material
* is strictly forbidden unless prior written permission is obtained
* from Adobe.
**************************************************************************/

const DOMProps = {
  'abbr': 1,
  'accept': 1,
  'acceptCharset': 1,
  'accessKey': 1,
  'action': 1,
  'allowFullScreen': 1,
  'allowTransparency': 1,
  'alt': 1,
  'async': 1,
  'autoComplete': 1,
  'autoFocus': 1,
  'autoPlay': 1,
  'boundariesElement': 1,
  'cellPadding': 1,
  'cellSpacing': 1,
  'challenge': 1,
  'charset': 1,
  'checked': 1,
  'cite': 1,
  'class': 1,
  'className': 1,
  'cols': 1,
  'colSpan': 1,
  'command': 1,
  'content': 1,
  'contentEditable': 1,
  'contextMenu': 1,
  'controls': 1,
  'coords': 1,
  'crossOrigin': 1,
  'data': 1,
  'dateTime': 1,
  'default': 1,
  'defaultPreventedKeys': 1,
  'defaultpreventedkeys': 1,
  'defaultPreventedEvents': 1,
  'defaultpreventedevents': 1,
  'defer': 1,
  'dir': 1,
  'disabled': 1,
  'download': 1,
  'draggable': 1,
  'dropzone': 1,
  'encType': 1,
  'for': 1,
  'form': 1,
  'formAction': 1,
  'formEncType': 1,
  'formMethod': 1,
  'formNoValidate': 1,
  'formTarget': 1,
  'frameBorder': 1,
  'headers': 1,
  'height': 1,
  'hidden': 1,
  'high': 1,
  'href': 1,
  'hrefLang': 1,
  'htmlFor': 1,
  'httpEquiv': 1,
  'icon': 1,
  'id': 1,
  'inputMode': 1,
  'isMap': 1,
  'itemId': 1,
  'itemProp': 1,
  'itemRef': 1,
  'itemScope': 1,
  'itemType': 1,
  'kind': 1,
  'label': 1,
  'lang': 1,
  'list': 1,
  'loop': 1,
  'manifest': 1,
  'max': 1,
  'maxLength': 1,
  'media': 1,
  'mediaGroup': 1,
  'method': 1,
  'min': 1,
  'minLength': 1,
  'multiple': 1,
  'muted': 1,
  'name': 1,
  'noValidate': 1,
  'open': 1,
  'optimum': 1,
  'pattern': 1,
  'ping': 1,
  'placeholder': 1,
  'poster': 1,
  'preload': 1,
  'radioGroup': 1,
  'readOnly': 1,
  'rel': 1,
  'required': 1,
  'role': 1,
  'rows': 1,
  'rowSpan': 1,
  'sandbox': 1,
  'scope': 1,
  'scoped': 1,
  'scrolling': 1,
  'seamless': 1,
  'selected': 1,
  'shape': 1,
  'size': 1,
  'sizes': 1,
  'sortable': 1,
  'span': 1,
  'spellCheck': 1,
  'src': 1,
  'srcDoc': 1,
  'srcSet': 1,
  'start': 1,
  'step': 1,
  'style': 1,
  'tabIndex': 1,
  'target': 1,
  'title': 1,
  'translate': 1,
  'type': 1,
  'typeMustMatch': 1,
  'useMap': 1,
  'value': 1,
  'width': 1,
  'wmode': 1,
  'wrap': 1,
  'onCopy': 1,
  'onCut': 1,
  'onPaste': 1,
  'onLoad': 1,
  'onError': 1,
  'onWheel': 1,
  'onScroll': 1,
  'onCompositionEnd': 1,
  'onCompositionStart': 1,
  'onCompositionUpdate': 1,
  'onKeyDown': 1,
  'onKeyPress': 1,
  'onKeyUp': 1,
  'onFocus': 1,
  'onBlur': 1,
  'onChange': 1,
  'onInput': 1,
  'onSubmit': 1,
  'onClick': 1,
  'onContextMenu': 1,
  'onDoubleClick': 1,
  'onDrag': 1,
  'onDragEnd': 1,
  'onDragEnter': 1,
  'onDragExit': 1,
  'onDragLeave': 1,
  'onDragOver': 1,
  'onDragStart': 1,
  'onDrop': 1,
  'onMouseDown': 1,
  'onMouseEnter': 1,
  'onMouseLeave': 1,
  'onMouseMove': 1,
  'onMouseOut': 1,
  'onMouseOver': 1,
  'onMouseUp': 1,
  'onSelect': 1,
  'onTouchCancel': 1,
  'onTouchEnd': 1,
  'onTouchMove': 1,
  'onTouchStart': 1,
  'onAnimationStart': 1,
  'onAnimationEnd': 1,
  'onAnimationIteration': 1,
  'onTransitionEnd': 1
};
/**
 * Checking for aria-* and data-* props
 */

const propRe = /^((data|aria)-.*)$/;

function filterReactDomProps(props) {
  const filterProps = {};

  for (const prop in props) {
    if (props.hasOwnProperty(prop) && (DOMProps[prop] || propRe.test(prop))) {
      filterProps[prop] = props[prop];
    }
  }

  return filterProps;
}

/***/ }),

/***/ "Cwc5":
/***/ (function(module, exports, __webpack_require__) {

var baseIsNative = __webpack_require__("NKxu"),
    getValue = __webpack_require__("Npjl");
/**
 * Gets the native function at `key` of `object`.
 *
 * @private
 * @param {Object} object The object to query.
 * @param {string} key The key of the method to get.
 * @returns {*} Returns the function if it's native, else `undefined`.
 */


function getNative(object, key) {
  var value = getValue(object, key);
  return baseIsNative(value) ? value : undefined;
}

module.exports = getNative;

/***/ }),

/***/ "Cwp5":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("path", {
  d: "M16 24v6.057l-3.134-.046a.5.5 0 0 0-.349.862L18 35.976l5.483-5.1a.5.5 0 0 0-.349-.862L20 30.057V24zm13.153-13.408a6.146 6.146 0 0 0 .12-1.155A7.71 7.71 0 0 0 21.2 1.7a8.529 8.529 0 0 0-8.013 6.317 8.446 8.446 0 0 0-2.214-.3 6.483 6.483 0 0 0-6.752 6.156 4.861 4.861 0 0 0 .28 1.61c-.094-.006-.184-.023-.28-.023C1.791 15.466.04 18.045.04 19.8S1.767 24 3.9 24h1.283L16 23.96V14.5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5v9.46l9.611.04 1.286-.192a5.871 5.871 0 0 0 5.02-6.232c-.001-3.796-3.772-6.532-6.764-6.984z"
}));

/***/ }),

/***/ "CyGC":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
// tslint:disable max-line-length

var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {
  function adopt(value) {
    return value instanceof P ? value : new P(function (resolve) {
      resolve(value);
    });
  }

  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) : adopt(result.value).then(fulfilled, rejected);
    }

    step((generator = generator.apply(thisArg, _arguments || [])).next());
  });
};

var __generator = this && this.__generator || function (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
    };
  }
};

Object.defineProperty(exports, "__esModule", {
  value: true
});

var constants_1 = __webpack_require__("uBoz");
/**
 * Simple utility container.
 */


var Utils =
/** @class */
function () {
  function Utils() {}
  /**
   * Replace specified occurances of a pattern in a templated string.
   *
   * @param {String} template 	templated format string
   * @param {Object} replaceMap 	key/val map of replacements
   * @return {String} representing the formatted string
   */


  Utils.replaceInTemplateString = function (template, replaceMap) {
    var result = template;

    if (result && result !== '') {
      Object.keys(replaceMap).forEach(function (key) {
        result = result.replace(key, replaceMap[key]);
      });
    }

    return result;
  };
  /**
   * Determine if we're currently running on UXP
   * @returns {boolean}
   */


  Utils.usingUXP = function () {
    return Boolean(window.navigator.userAgent.indexOf('UXP') > -1); // eslint-disable-line no-magic-numbers
  };
  /**
   * Get the Search Service url for the environment
   * @param environment
   */


  Utils.getSearchUrl = function (environment) {
    return constants_1.ADOBE_SERVICE_ENDPOINTS.protocol + "://" + constants_1.ADOBE_SERVICE_ENDPOINTS.hosts[environment].search + "/universal-search/v2/search";
  };
  /**
   * Get the Storage Service url for the environment
   * @param environment
   */


  Utils.getStorageUrl = function (environment) {
    return constants_1.ADOBE_SERVICE_ENDPOINTS.protocol + "://" + constants_1.ADOBE_SERVICE_ENDPOINTS.hosts[environment].storage;
  };
  /**
   * Various functions throw/reject errors in different formats, and sometimes bubble up to a common try/catch block.
   * This utility ensures that error.message is always a string that can be logged, while also preserving the
   * info from the original error.
   *
   * @param error
   */


  Utils.normalizeError = function (error) {
    if (typeof error === 'undefined') {
      return {
        message: 'undefined'
      };
    }

    if (typeof error === 'string') {
      return {
        message: error
      };
    }

    if (error instanceof Error) {
      return error;
    }

    if (error instanceof Response) {
      var e = error;
      return {
        message: e.status + " " + e.statusText,
        errorCode: e.status,
        response: e
      };
    }

    if (acplocaljs && error instanceof acplocaljs.Response) {
      var e = error;
      return {
        message: e.statusCode + " " + e.statusMessage,
        errorCode: e.statusCode,
        acplResponse: e
      };
    }

    return {
      message: 'Unrecognized error data type'
    };
  };
  /**
   * Used to sanitize urls to get rid of the protocol and decode it
   * @param path Path that XD gives us from recents search.
   * @param protocolToRemove The protocol to remove from the URL for example xdcloud:///
   */


  Utils.sanitizeCloudDocPath = function (path, protocolToRemove) {
    return decodeURIComponent(path.replace(protocolToRemove, ''));
  };
  /**
   * Generate a rfc4122 version 4 compliant GUID.
   * @see http://stackoverflow.com/questions/105034/create-guid-uuid-in-javascript
   *
   * @param {Boolean} dashed         toggle to genereate a dashed guid or not
   * @return {String} containing the GUID
   */


  Utils.generateGUID = function (dashed) {
    if (dashed === void 0) {
      dashed = true;
    }
    /* tslint:disable:no-magic-numbers no-bitwise */


    var guid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (sub) {
      var radix = 16;
      var rand = Math.random() * radix | 0;
      var val = sub === 'x' ? rand : rand & 0x3 | 0x8;
      return val.toString(radix);
    });
    /* tslint:enable:no-magic-numbers no-bitwise */

    return dashed ? guid : guid.replace(/-/g, '');
  };
  /**
   * Return document extension based on mimetype
   * @returns {string}
   */


  Utils.getExtByMimeType = function (mimeType) {
    return "" + constants_1.MIMETYPES[mimeType].ext || '';
  };
  /**
   * Convert an object of key/value pairs into an http query string (?param1=val1&param2=val2)
   *
   * @param parameters {Object} The map of parameters. Arrays are expanded into multiple parameters
   *                            E.g. {type: ['zz', 'xx']} becomes ?type=zz&type=xx
   */


  Utils.toQueryString = function (parameters) {
    var output = Object.entries(parameters).reduce(function (acc, _a) {
      var key = _a[0],
          val = _a[1]; // Omit parameters with no value

      if (val === undefined) {
        return acc;
      } // Expand array parameters into paramName=1&paramName=2 etc.


      if (val instanceof Array) {
        acc.push.apply(acc, val.map(function (subVal) {
          return key + "=" + encodeURIComponent(subVal);
        }));
        return acc;
      }

      acc.push(key + "=" + encodeURIComponent(val));
      return acc;
    }, []);

    if (output.length) {
      return '?' + output.join('&');
    } else {
      return '';
    }
  };
  /**
   * Seperate the file name from the file extension
   *
   * @return nameAndExtension an array [name, extension]
   * or just the name if there is no extension
   */


  Utils.splitFilenameByLastDelimeter = function (name) {
    if (name === void 0) {
      name = '';
    }

    var delimeter = '.';
    var separate = name.split(delimeter);
    var ext = separate.length > 1 ? separate.pop() : '';
    return [separate.join(delimeter), ext];
  };
  /**
   * Simple utility to use in async functions in lieu of using setTimeout.
   * E.g.
   *  async function processStuff() {
   *      await Util.sleep(1000);  // wait one second
   *      console.log("a second has passed");
   *  }
   *
   * @param duration {number} How long to sleep in milliseconds
   */


  Utils.sleep = function (duration) {
    return __awaiter(this, void 0, void 0, function () {
      return __generator(this, function (_a) {
        return [2
        /*return*/
        , new Promise(function (resolve) {
          setTimeout(resolve, duration);
        })];
      });
    });
  };
  /**
   * Build a url-encoded URI from a base and a path, encoding special characters like # in the components
   * @param baseUri
   * @param path
   */


  Utils.buildUri = function (baseUri, path) {
    var pathComponents = path.split('/');
    var encodedComponents = pathComponents.map(function (value, index) {
      return encodeURIComponent(value);
    });
    var encodedPath = encodedComponents.join('/');
    return encodeURI(baseUri + "/") + encodedPath;
  };
  /**
   * Wrap a promise with another promise that will reject if it takes too long. If the
   * original promise resolves/rejects, it will pass on the response.
   *
   * E.g.
   *  async function fetchThings() {
   *      try {
   *          const promise = this.client.doTheFetching();
   *          const result = await Util.timeout(promise, 5000);
   *          console.log('doTheFetching returned %s in under 5 seconds', result);
   *      } catch(e) {
   *          if (e._timeoutExpired) {
   *              // Use e._originalPromise if you need to tell which promise took too long.
   *              console.log('doTheFetching took too long');
   *          } else {
   *              console.log('doTheFetching failed', e);
   *          }
   *      }
   *  }
   *
   * @param promise {Promise} The promise that must resolve before the timeout
   * @param duration {number} How long to wait before rejecting, in milliseconds
   */


  Utils.timeout = function (promise, duration) {
    return __awaiter(this, void 0, void 0, function () {
      return __generator(this, function (_a) {
        return [2
        /*return*/
        , new Promise(function (resolve, reject) {
          var timer = setTimeout(function () {
            reject({
              _timeoutExpired: true,
              _originalPromise: promise
            });
          }, duration);
          promise.then(function () {
            var args = [];

            for (var _i = 0; _i < arguments.length; _i++) {
              args[_i] = arguments[_i];
            }

            clearTimeout(timer);
            resolve.apply(void 0, args);
          }).catch(function () {
            var args = [];

            for (var _i = 0; _i < arguments.length; _i++) {
              args[_i] = arguments[_i];
            }

            clearTimeout(timer);
            reject.apply(void 0, args);
          });
        })];
      });
    });
  };

  return Utils;
}();

exports.default = Utils;

/***/ }),

/***/ "D+J2":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// UNUSED EXPORTS: DeletedForTests

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__("q1tI");
var react_default = /*#__PURE__*/__webpack_require__.n(react);

// EXTERNAL MODULE: ./node_modules/mobx-react/index.module.js
var index_module = __webpack_require__("okNM");

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/Undo/index.js
var Undo = __webpack_require__("DRgB");
var Undo_default = /*#__PURE__*/__webpack_require__.n(Undo);

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/Delete/index.js
var Delete = __webpack_require__("5/H/");
var Delete_default = /*#__PURE__*/__webpack_require__.n(Delete);

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/LinkOutLight/index.js
var LinkOutLight = __webpack_require__("YVIP");
var LinkOutLight_default = /*#__PURE__*/__webpack_require__.n(LinkOutLight);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/stores/constants.ts
var constants = __webpack_require__("C0qj");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/action.ts
var action = __webpack_require__("zPGX");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/constants.ts
var utils_constants = __webpack_require__("a375");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/metrics.ts
var metrics = __webpack_require__("jaHz");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/svgs/FolderGeneral.tsx
var FolderGeneral = __webpack_require__("XY+F");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/utils.ts
var utils = __webpack_require__("+Ots");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/CDODialog.tsx
var CDODialog = __webpack_require__("Dc9i");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/types/CDOReactIntlTyped.ts
var CDOReactIntlTyped = __webpack_require__("dSAe");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/styles/PermDeleteDialog.css
var styles_PermDeleteDialog = __webpack_require__("YqkI");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/components/PermDeleteDialog.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2019 Adobe Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
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;
};







/**
 * Container for the Permanent Delete dialog.
 */
let PermDeleteDialog_PermDeleteDialog = class PermDeleteDialog extends react["Component"] {
    constructor() {
        super(...arguments);
        this.onConfirm = () => {
            const { elements, onDismissModalDialog } = this.props;
            onDismissModalDialog([elements]);
        };
    }
    componentDidMount() {
        const { elements } = this.props;
        // Since there is no virtual scrolling, load all the thumbnails now
        elements.forEach(ele => {
            !ele.hasFetchedRendition && ele.getRendition();
        });
    }
    /**
     * Creates the file size element
     *
     * @param {Number} size	byte size of the file
     * @return {Component} for the formatted file size.
     */
    formatFileSize(size) {
        const { intl } = this.props;
        let content;
        if (!size) {
            content = react["createElement"](react["Fragment"], null, "\u2013");
        }
        else {
            // TODO: make all models guarantee size to be a number and get rid of parseInt
            const { displayValue, abbrev } = utils["a" /* default */].formatFileSize(parseInt(size.toString(), 10), intl);
            content = react["createElement"](react["Fragment"], null, `${displayValue} ${abbrev}`);
        }
        return react["createElement"]("div", { id: "CDOListItem_Size" }, content);
    }
    /**
     * Component renderer.
     * @return {ReactElement} markup
     */
    render() {
        const { intl, elements, onDismissModalDialog, // passed by ModalDialogContainer
        open, } = this.props;
        // Note: currently need:
        // 'className' => RS renders className correctly on container element `.spectrum-Dialog`
        // 'id' => for automation to work (but incorrectly appended to `.spectrum-Dialog-header`)
        // Jira: https://jira.corp.adobe.com/browse/UXP-10467
        return (react["createElement"](CDODialog["a" /* default */], { qeId: "PermDeleteDialog_Dialog", onDismissModalDialog: onDismissModalDialog, open: open, keyboardConfirm: false, onConfirm: this.onConfirm, title: intl.formatMessage({ id: 'dialog.permdelete.heading' }), variant: "destructive", cancelLabel: intl.formatMessage({ id: 'dialog.permdelete.cancelButton' }), confirmLabel: intl.formatMessage({ id: 'dialog.permdelete.confirmButton' }), confirmEnabledOffline: true },
            react["createElement"]("div", { className: "dialogWarning" },
                react["createElement"](CDOReactIntlTyped["a" /* FormattedMessage */], { id: "dialog.permdelete.warning" })),
            react["createElement"]("ul", { className: "dialogItemsContainer" }, elements.map(element => (react["createElement"]("li", { key: element.id },
                react["createElement"]("div", { className: "dialogRenditionWrapper" },
                    element.isFolder && react["createElement"](FolderGeneral["a" /* default */], null),
                    !element.isFolder && (react["createElement"]("img", { alt: "", className: "dialogRendition", id: "PermDeleteDialog_Rendition", draggable: false, src: element.rendition }))),
                react["createElement"]("div", { className: "dialogTitle" }, element.title),
                react["createElement"]("div", { className: "dialogSize" }, this.formatFileSize(element.size))))))));
    }
};
PermDeleteDialog_PermDeleteDialog = __decorate([
    index_module["e" /* observer */]
], PermDeleteDialog_PermDeleteDialog);
/* harmony default export */ var components_PermDeleteDialog = (Object(CDOReactIntlTyped["e" /* injectIntl */])(PermDeleteDialog_PermDeleteDialog));


// EXTERNAL MODULE: ./node_modules/classnames/index.js
var classnames = __webpack_require__("TSYQ");
var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/components/svgs/EmptyTrash.tsx


const DEFAULT_SIZE = {
    width: 120,
    height: 120,
};
const EmptyTrash = ({ height = DEFAULT_SIZE.height, width = DEFAULT_SIZE.width, className = '', }) => (react_default.a.createElement("svg", { className: classnames_default()('EmptyTrash', className), xmlns: "http://www.w3.org/2000/svg", width: width, height: height, viewBox: `0 0 ${height} ${width}` },
    react_default.a.createElement("path", { d: "M92.27783,63H44.56934a2.27359,2.27359,0,0,0-2.26807,2.43555l3.541,49.57617A5.38932,5.38932,0,0,0,51.19873,120H85.64844a5.38932,5.38932,0,0,0,5.35644-4.98828l3.54151-49.57715A2.27359,2.27359,0,0,0,92.27783,63ZM88.0127,114.79883A2.37849,2.37849,0,0,1,85.64844,117H51.19873a2.37849,2.37849,0,0,1-2.36426-2.20117L45.34912,66H91.49854ZM43.458,54.40723a1.49988,1.49988,0,0,0,.523-2.05567L14.82227,3.30566a1.50021,1.50021,0,0,0-2.57911,1.53321l8.4618,14.2334-2.10682,1.252a5.98963,5.98963,0,0,0-2.085,8.20019l6.26905,10.54395a5.988,5.988,0,0,0,8.20117,2.085l2.105-1.252,8.31348,13.9834a1.49981,1.49981,0,0,0,2.05615.52246ZM29.4502,38.5752a2.98868,2.98868,0,0,1-4.08887-1.04L19.0918,26.99121a2.98416,2.98416,0,0,1,1.03955-4.08887l2.10644-1.25195,9.31745,15.67188Zm27.3125,71.56347L54.15479,73.626a1.0001,1.0001,0,0,1,1.99511-.14258l2.60791,36.51269a.99987.99987,0,0,1-.92627,1.06836c-.02441.002-.04834.00293-.07226.00293A1.00022,1.00022,0,0,1,56.7627,110.13867Zm20.41064-.14258L79.78125,73.4834a1.0001,1.0001,0,0,1,1.99512.14258l-2.60791,36.51269a1.00023,1.00023,0,0,1-.99658.92871c-.02393,0-.04786-.001-.07227-.00293A.99988.99988,0,0,1,77.17334,109.99609ZM67,110V74a1,1,0,0,1,2,0v36a1,1,0,0,1-2,0ZM49.38135,42.72949,72.957,55.042a5.6413,5.6413,0,0,0,7.60645-2.38867L93.80322,27.30176a6.01594,6.01594,0,0,0,.41309-4.60254L91.668,14.52734a6.01581,6.01581,0,0,0-2.97608-3.56347L70.83936,1.64062a5.64844,5.64844,0,0,0-7.60645,2.3877L46.99414,35.12305a5.63684,5.63684,0,0,0,2.38721,7.60644Zm.272-6.21777L65.89209,5.417a2.63154,2.63154,0,0,1,3.55859-1.11621l17.852,9.32227a3.03542,3.03542,0,0,1,1.501,1.79687l2.54834,8.17188a3.03347,3.03347,0,0,1-.208,2.32129L77.9043,51.26465a2.637,2.637,0,0,1-3.5586,1.11719L50.77,40.06934a2.63558,2.63558,0,0,1-1.1167-3.55762Zm28.53662-.56738a3.57533,3.57533,0,0,0,1.71143.43652A3.671,3.671,0,0,0,83.419,31.68457a3.60686,3.60686,0,0,0-4.51807-2.44727,3.6603,3.6603,0,0,0-.71094,6.707Zm.3086-3.99024a1.65768,1.65768,0,0,1,.98242-.80273,1.64005,1.64005,0,0,1,.47705-.07129,1.60362,1.60362,0,0,1,1.54053,1.16406,1.67191,1.67191,0,0,1-1.11768,2.06445,1.60151,1.60151,0,0,1-1.23779-.12207A1.64569,1.64569,0,0,1,78.49854,31.9541ZM54.46533,34.24121l21.96192,11.416A1.00026,1.00026,0,0,0,77.85156,44.5l-2.55908-9.15918a1.74135,1.74135,0,0,0-2.18408-1.16309l-2.13428.707L69.46,29.47461a1.59372,1.59372,0,0,0-1.998-1.07617l-12.83252,4a1.00058,1.00058,0,0,0-.16406,1.84277Zm18.98242,1.93067,1.85791,6.64746-2.46972-1.28321L71.51416,36.8125Zm-5.79589-5.73731,2.7539,9.83789L57.542,33.58594Z" })));
/* harmony default export */ var svgs_EmptyTrash = (EmptyTrash);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/urls.ts
var urls = __webpack_require__("RIxR");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/stop-propagation.ts
var stop_propagation = __webpack_require__("hLgr");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/CDOLink.tsx
var CDOLink = __webpack_require__("b3kR");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/CDOTab.tsx + 6 modules
var CDOTab = __webpack_require__("/7zY");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/styles/Deleted.css
var styles_Deleted = __webpack_require__("bvmY");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/components/Deleted.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
var Deleted_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;
};

















const INGEST_SUBCATEGORY = 'Deleted';
let Deleted_Deleted = class Deleted extends CDOTab["a" /* default */] {
    constructor() {
        super(...arguments);
        this.restoreAction = new action["d" /* default */]({
            value: action["a" /* CDOActionValue */].Restore,
            label: 'button.restore',
            icon: react_default.a.createElement(Undo_default.a, null),
            getDisabledTooltipMsgId: this.getDisabledTooltipMsgIdSyncSuspended,
            execute: async (elements, correlationId) => this.performRestore(elements, correlationId),
        });
        this.permDeleteAction = new action["d" /* default */]({
            value: action["a" /* CDOActionValue */].PermanentDelete,
            analyticsValue: metrics["a" /* ActionAnalyticsValue */].PermDelete,
            actionMenuLabel: 'actionMenuItem.permdelete',
            label: 'button.permdelete',
            icon: react_default.a.createElement(Delete_default.a, null),
            getDisabledTooltipMsgId: this.getDisabledTooltipMsgIdSyncSuspended,
            beforeExecute: async (elements) => {
                const { openModalDialog } = this.props;
                // PermDeleteDialog will return its elements if the user confirms, and an empty array
                // if the user cancels
                return openModalDialog(react_default.a.createElement(components_PermDeleteDialog, { elements: elements }), this.onDialogStateChange);
            },
            execute: async (elements, correlationId) => {
                const filteredElements = await this.docStore.beforeOp(elements, this.callbacks.onBeforePermanentDelete);
                return this.docStore.deleteOp(filteredElements, this.callbacks.onAfterPermanentDelete, options => {
                    const data = this.cdoMetrics.getOperationalMetricData(this.permDeleteAction.analyticsValue, options);
                    if (data.event.error_code === constants["k" /* HTTPStatusCodes */].FileNotFound) {
                        data.event.type = metrics["c" /* EventType */].Info;
                    }
                    this.cdoMetrics.fireEvent(data);
                }, correlationId);
            },
        });
        this.onExternalDrop = async (dragState) => {
            // CDOView calls isValidExternalDropTarget before it will call onExternalDrop, and the only valid
            // drop is to restore
            const elements = dragState.selectionStore.selectedElements;
            const usageMetricLogger = this.cdoMetrics.getUsageMetricLogger(this.restoreAction, INGEST_SUBCATEGORY);
            usageMetricLogger.start(elements, this.cdoMetrics.EventType.Drag, this.cdoMetrics.MenuType.DragSideNav);
            await this.performRestore(elements, usageMetricLogger.correlationId);
            usageMetricLogger.success();
        };
        /**
         * marstewa 10/26/2020
         * TODO:add unit test and verify event value with PM
         * https://jira.corp.adobe.com/browse/CCXCD-4989
         */
        this.onOpenAssetsWeb = (e) => {
            Object(stop_propagation["a" /* default */])(e);
            this.fireIngestEventClick('open-assets-web', 'link', 'Deleted');
        };
        this.getNonErrorEmptyViewProps = () => {
            const { isOnline } = this.docStore;
            const onlineEmptyViewProps = {
                image: react_default.a.createElement(svgs_EmptyTrash, null),
                titleId: 'empty.title.deleted',
                ingestSubcategory: INGEST_SUBCATEGORY,
                automationSuffix: 'DELETED',
                productName: this.cdoStore.hostProductData.productName,
            };
            const offlineEmptyViewProps = {
                image: react_default.a.createElement(svgs_EmptyTrash, null),
                titleId: 'empty.title.deleted_offline',
                subtitleId: 'empty.subtext.deleted_offline',
                ingestSubcategory: INGEST_SUBCATEGORY,
                automationSuffix: 'DELETED',
                productName: this.cdoStore.hostProductData.productName,
            };
            return isOnline ? onlineEmptyViewProps : offlineEmptyViewProps;
        };
        this.fetchMethod = () => {
            this.docStore.fetchArchived();
        };
        this.getDataProps = () => {
            var _a;
            const { archivedFolderCollection } = this.docStore;
            return {
                collection: archivedFolderCollection,
                elements: (_a = this.filteredArchivedFolderCollection) !== null && _a !== void 0 ? _a : [],
                fetchMethod: this.fetchMethod,
                fetchState: archivedFolderCollection === null || archivedFolderCollection === void 0 ? void 0 : archivedFolderCollection.fetchState,
                viewRootPath: utils_constants["a" /* ARCHIVE_FOLDER_PATH */],
            };
        };
        this.shouldRenderItemAsDisabled = (element) => this.assetSyncStateStore.isSyncing(element).get();
    }
    get tabConfig() {
        return {
            tabName: 'Deleted',
            ingestSubcategory: INGEST_SUBCATEGORY,
        };
    }
    get gridMetadataFormat() {
        const showTeamsMetadata = this.cdoStore.isFeatureFlagEnabled('showTeamsMetadata');
        const idBase = 'CDOGridItem';
        if (showTeamsMetadata) {
            return (element) => {
                if (element.space) {
                    return this.renderSpaceMetadata(idBase, element);
                }
            };
        }
        return super.gridMetadataFormatFunction;
    }
    get listMetadataFormat() {
        const showTeamsMetadata = this.cdoStore.isFeatureFlagEnabled('showTeamsMetadata');
        const idBase = 'CDOListItem';
        if (showTeamsMetadata) {
            return (element) => {
                if (element.space) {
                    return this.renderSpaceMetadata(idBase, element);
                }
            };
        }
        return super.listMetadataFormat;
    }
    get gridItemProps() {
        return {
            metadataFormat: this.gridMetadataFormat,
            renderBadge: this.itemBadgeRenderer,
        };
    }
    get listItemProps() {
        return {
            metadataFormat: this.listMetadataFormat,
            renderBadge: this.itemBadgeRenderer,
        };
    }
    async performRestore(elements, correlationId) {
        const filteredElements = await this.docStore.beforeOp(elements, this.callbacks.onBeforeRestore);
        const { analyticsValue } = this.restoreAction;
        return this.docStore.restoreOp(filteredElements, this.callbacks.onAfterRestore, this.cdoMetrics.getOperationalMetricLogger(analyticsValue), correlationId, 
        // undoOp
        () => {
            this.docStore.archiveOp(filteredElements, this.callbacks.onAfterDelete, this.cdoMetrics.getUndoOperationalMetricLogger(analyticsValue), correlationId, undefined, // undoOp
            true // isUndo
            );
        }, false // isUndo
        );
    }
    fireIngestEventClick(subtype, value, workflow) {
        this.cdoMetrics.fireEvent({
            event: {
                subtype,
                value,
                workflow,
                subcategory: INGEST_SUBCATEGORY,
                type: 'click',
            },
        });
    }
    get allAvailableActions() {
        return [this.restoreAction, this.permDeleteAction];
    }
    get filteredArchivedFolderCollection() {
        const { archivedFolderCollection } = this.docStore;
        return archivedFolderCollection === null || archivedFolderCollection === void 0 ? void 0 : archivedFolderCollection.sortedElements.filter(ele => !ele.isSpaceAsset);
    }
    get assetsWebLink() {
        const baseUrl = Object(urls["b" /* assetsWebUrl */])(this.cdoStore.imsData.environment);
        return `${baseUrl}/deleted?featureset=cc_projects`;
    }
    get cdoViewConfig() {
        return {
            onExternalDrop: this.onExternalDrop,
            lockSelectModeOn: true,
            dragDisabled: false,
            doubleClickToOpen: false,
            doubleClickToPreview: false,
        };
    }
    get additionalChangeProps() {
        const { selectionStore } = this.props;
        return [
            selectionStore.hasSyncingElements(this.assetSyncStateStore)
                ? 'hasSyncingItem'
                : 'noSyncingItem',
        ];
    }
    renderSubheader() {
        const enableProjects = this.cdoStore.isFeatureFlagEnabled('enableProjects');
        const disableViewDeletedProjectsWebLink = this.cdoStore.isFeatureFlagEnabled('disableViewDeletedProjectsWebLink');
        return (enableProjects &&
            !disableViewDeletedProjectsWebLink && (react_default.a.createElement("div", { onClick: this.onOpenAssetsWeb, className: "temporaryAssetsWebLink" },
            react_default.a.createElement(CDOLink["a" /* default */], { className: "assetsWebLink", href: this.assetsWebLink },
                react_default.a.createElement(CDOReactIntlTyped["a" /* FormattedMessage */], { id: "header.Deleted.AssetsWebLink" }),
                react_default.a.createElement(LinkOutLight_default.a, { className: "assetsWebLinkOutLightIcon" })))));
    }
};
Deleted_Deleted = Deleted_decorate([
    Object(index_module["d" /* inject */])('cdoStore', 'callbacks', 'openModalDialog', 'metrics', 'assetSyncStateStore', 'selectionStore', 'theme'),
    index_module["e" /* observer */]
], Deleted_Deleted);
/* harmony default export */ var components_Deleted = __webpack_exports__["a"] = (Object(CDOReactIntlTyped["e" /* injectIntl */])(Deleted_Deleted));
const DeletedForTests = Deleted_Deleted.wrappedComponent;



/***/ }),

/***/ "D+ak":
/***/ (function(module) {

module.exports = JSON.parse("{\"File\":\"Fil\",\"Folder\":\"Mappe\"}");

/***/ }),

/***/ "D5xS":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("path", {
  d: "M32 17.5V30H4V4h14.5a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5H3a1 1 0 0 0-1 1v28a1 1 0 0 0 1 1h30a1 1 0 0 0 1-1V17.5a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5z"
}), React.createElement("path", {
  d: "M23.54 2.853l3.389 3.389-9.546 9.546a.5.5 0 0 0 0 .707l2.117 2.122a.5.5 0 0 0 .707 0l9.546-9.546 3.389 3.389a.5.5 0 0 0 .858-.353V2H23.893a.5.5 0 0 0-.353.853z"
}));

/***/ }),

/***/ "D8iS":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Dimmer; });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _styles_Dimmer_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("zim+");
/* harmony import */ var _styles_Dimmer_css__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_styles_Dimmer_css__WEBPACK_IMPORTED_MODULE_1__);
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2019 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/


/**
 * A utility component which adds a transparent overlay its children.
 *
 * @param children - content which will be dimmed
 * @param dim - whether or not to dim the content. Defaults to `true`
 *
 * @note
 * A better way to implement an overlay is with an inset box-shadow, but
 * UXP doesn't support box-shadow currently
 */
const Dimmer = ({ children, dim }) => !dim ? (children) : (react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react__WEBPACK_IMPORTED_MODULE_0__["Fragment"], null,
    children,
    react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: _styles_Dimmer_css__WEBPACK_IMPORTED_MODULE_1___default.a['cdo-dimmer-overlay'] })));
Dimmer.defaultProps = {
    dim: true,
};


/***/ }),

/***/ "D8kY":
/***/ (function(module, exports, __webpack_require__) {

var toInteger = __webpack_require__("Ojgd");

var max = Math.max;
var min = Math.min;

module.exports = function (index, length) {
  index = toInteger(index);
  return index < 0 ? max(index + length, 0) : min(index, length);
};

/***/ }),

/***/ "DBuf":
/***/ (function(module, exports, __webpack_require__) {

// extracted by mini-css-extract-plugin

/***/ }),

/***/ "DL5t":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXPORTS
__webpack_require__.d(__webpack_exports__, "b", function() { return /* binding */ SECTION_STATE_CHANGED; });
__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ SECTION_LOAD_EXCEPTION; });
__webpack_require__.d(__webpack_exports__, "c", function() { return /* binding */ SpaceSection_SpaceSection; });

// EXTERNAL MODULE: ./node_modules/@ccx-public/shared-asset-model-js/dist/mjs/src/index.js
var src = __webpack_require__("m4Z2");

// EXTERNAL MODULE: ./node_modules/mobx/lib/mobx.module.js
var mobx_module = __webpack_require__("2vnA");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/stores/constants.ts
var constants = __webpack_require__("q0hk");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/stores/Settings.ts
var Settings = __webpack_require__("5u1M");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/sort.ts
var sort = __webpack_require__("XctL");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/utils/sortDocuments.ts



function sortDocuments(documents, uiConfig) {
    const { sortBy, sortDirection } = uiConfig;
    if (sortBy === constants["f" /* UXSortBy */].name) {
        return Object(sort["b" /* sortByName */])(documents, (doc) => doc.name, sortDirection);
    }
    else if (sortBy === constants["f" /* UXSortBy */].modifiedDate) {
        return Object(sort["a" /* sortByModifiedDate */])(documents, (doc) => doc.modifiedDate, sortDirection);
    }
    else {
        Settings["b" /* settings */].logger.warn('Unsupported sort:', sortBy);
        return documents;
    }
}

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/ProjectAnalytics.ts
var ProjectAnalytics = __webpack_require__("mm/P");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/stores/User.ts
var User = __webpack_require__("CJr9");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/EventEmitter.ts
var EventEmitter = __webpack_require__("/XAQ");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/Deferred.ts
var Deferred = __webpack_require__("c6RX");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/stores/oneup/SpaceSection.ts
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;
};
var __metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var SpaceSection_a, _b;









const SECTION_STATE_CHANGED = 'SECTION_STATE_CHANGED';
const SECTION_LOAD_EXCEPTION = 'SECTION_LOAD_EXCEPTION';
class SpaceSection_SpaceSection extends EventEmitter["a" /* default */] {
    constructor(space) {
        super();
        this.loadState = constants["c" /* ProcessingState */].Pending;
        this._items = [];
        this.isDiscarded = false;
        this._lastLoadTime = 0;
        this.allowOfflineLoad = false;
        this.space = space;
    }
    get items() {
        return this._items;
    }
    get reloadFailure() {
        return this.loadState === constants["c" /* ProcessingState */].Error;
    }
    removeItems(items) {
        items.forEach(({ id }) => {
            const index = this._items.findIndex(item => item.id === id);
            if (index !== -1) {
                this._items.splice(index, 1);
            }
        });
    }
    getSortedItems(uiConfig) {
        return sortDocuments(this._items, uiConfig);
    }
    updateState(isDiscarded = false) {
        if (this.isDiscarded === isDiscarded) {
            return;
        }
        this.isDiscarded = isDiscarded;
        const state = isDiscarded ? 'DISCARDED' : 'ACTIVE';
        this.emit(SECTION_STATE_CHANGED, this, state);
    }
    async waitForPendingLoad({ exception, refreshTimeout }) {
        // An update is already going on - waiting for the previous update the finish.
        try {
            // Waiting for the ongoing update.
            await this._loadingPromise;
        }
        catch (e) {
            const nonEssentialLoad = (refreshTimeout !== null && refreshTimeout !== void 0 ? refreshTimeout : 0) > 0;
            if (nonEssentialLoad && exception) {
                throw e;
            }
            // otherwise we are going to retry
        }
    }
    processFetchedItems(newItems) {
        // Keep around soft deleted items that are hidden in case of an undo.
        newItems.push(...this._items.filter(item => item.isHidden));
        // try to reuse the existing renditions, if the renditionTemplate didn't change and we've already fetched them
        this.reuseLoadedData(newItems);
        this._items = newItems;
        // Kick off any lazy-loaded item data.
        for (let item of this._items) {
            if (!item.isHidden) {
                this.lazyLoadItemData(item); // Don't await here!
            }
        }
    }
    async setItems({ loadAllPages } = {}) {
        // Once we have fetched all items, we sort them locally to ensure that
        // they're in the correct order. This could be optional because we currently
        // don't allow the user to change the sort mid-load (and we re-fetch if they do),
        // but keeping this sort here maintains consistency.
        const newItems = (await this.fetchAllItems({ loadAllPages }));
        this.processFetchedItems(newItems);
    }
    async load(options = { loadAllPages: true }) {
        const { exception, refreshTimeout, loadAllPages } = options;
        const pendingLoadPromise = this._loadingPromise;
        if (pendingLoadPromise) {
            // A load was already started - we want to wait for it to finish.
            await this.waitForPendingLoad(options);
            const nonEssentialLoad = (refreshTimeout !== null && refreshTimeout !== void 0 ? refreshTimeout : 0) > 0;
            if (nonEssentialLoad) {
                // we just piggy back on the load that just happened.
                return;
            }
            // Here we want to make sure we did a full load after load() function was called.
            // If multiple loads lined up to wait for the pending load promise, it is possible
            // that one of them started another load.
            // if that is the case, we want to wait for this load as well.
            if (this._loadingPromise) {
                return await this.waitForPendingLoad(options);
            }
        }
        if (this._lastLoadTime + (refreshTimeout !== null && refreshTimeout !== void 0 ? refreshTimeout : 0) >= Date.now()) {
            // We can skip this load.
            return;
        }
        if (this.loadState === constants["c" /* ProcessingState */].Done) {
            this.loadState = constants["c" /* ProcessingState */].Refreshing;
        }
        else if (this.loadState === constants["c" /* ProcessingState */].Refreshing) {
            // If we're already refreshing, but we've re-requested a load,
            // just keep that state the same and we'll re-fetch here.
            Settings["b" /* settings */].logger.error('[ERROR!!!] refreshing multiple times.');
        }
        else {
            this.loadState = constants["c" /* ProcessingState */].Fetching;
        }
        const deferred = new Deferred["a" /* default */]();
        this._loadingPromise = deferred.promise;
        this._loadingPromise.catch(e => {
            Settings["b" /* settings */].logger.warn('Error loading space items', e);
        });
        this._lastLoadTime = Date.now();
        try {
            await this.setItems({ loadAllPages });
            this.loadState = constants["c" /* ProcessingState */].Done;
            deferred.resolve();
            this._loadingPromise = undefined;
        }
        catch (e) {
            this.loadState = constants["c" /* ProcessingState */].Error;
            deferred.reject(e);
            this._loadingPromise = undefined;
            this.emit(SECTION_LOAD_EXCEPTION, this, e);
            if (exception) {
                throw e;
            }
            Settings["b" /* settings */].logger.warn('SpaceSection loading failure:', e);
        }
    }
    // if we're reloading the tab and we already have renditions for our files, reuse them.
    reuseLoadedData(newItems) {
        var _a;
        const renditionMap = (_a = this._items) === null || _a === void 0 ? void 0 : _a.reduce((acc, item) => {
            // get the renditions from the old items
            if (item.rendition) {
                acc[item.id] = {
                    rendition: item.rendition,
                    renditionEtag: item.renditionEtag,
                    etag: item.previousEtag,
                    type: item.type,
                };
            }
            return acc;
        }, {});
        // reuse the existing renditions & etags on the new items if they match.
        // when the new renditions load, only refresh them if they changed
        newItems.forEach(item => {
            if (!item.rendition) {
                const cachedItem = renditionMap[item.id];
                if (cachedItem) {
                    item.setRendition(cachedItem === null || cachedItem === void 0 ? void 0 : cachedItem.rendition, cachedItem === null || cachedItem === void 0 ? void 0 : cachedItem.renditionEtag);
                    item.setPreviousEtag(cachedItem === null || cachedItem === void 0 ? void 0 : cachedItem.etag);
                    item.setType(cachedItem === null || cachedItem === void 0 ? void 0 : cachedItem.type);
                }
            }
        });
    }
    sendIngestListEvent(apiName, contentType, timeTaken, error) {
        var _a;
        let ingestData = {
            env: {
                api: {
                    name: apiName,
                },
            },
            content: {
                id: this.space.id,
                type: contentType,
                author: this.space.role,
            },
            event: {
                subcategory: ProjectAnalytics["c" /* Subcategory */].Resource,
                subtype: ProjectAnalytics["d" /* Subtype */].list,
                workflow: ProjectAnalytics["f" /* Workflow */].Spaces,
                type: ProjectAnalytics["e" /* Type */].success,
                value: timeTaken,
                org_guid: (_a = User["a" /* default */].getTeamFromId(this.space.teamID)) === null || _a === void 0 ? void 0 : _a.repositoryID,
                context_guid: null,
            },
            custom: {
                team_id: this.space.teamID,
            },
        };
        if (error) {
            Object(ProjectAnalytics["h" /* fillError */])(ingestData, error);
        }
        ProjectAnalytics["g" /* default */].fireEvent(ingestData);
    }
    lazyLoadItemData(item) { }
}
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", typeof (SpaceSection_a = typeof constants["c" /* ProcessingState */] !== "undefined" && constants["c" /* ProcessingState */]) === "function" ? SpaceSection_a : Object)
], SpaceSection_SpaceSection.prototype, "loadState", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", Array)
], SpaceSection_SpaceSection.prototype, "_items", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", typeof (_b = typeof src["Space"] !== "undefined" && src["Space"]) === "function" ? _b : Object)
], SpaceSection_SpaceSection.prototype, "space", void 0);
__decorate([
    mobx_module["j" /* action */],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [Array]),
    __metadata("design:returntype", void 0)
], SpaceSection_SpaceSection.prototype, "removeItems", null);


/***/ }),

/***/ "DLIp":
/***/ (function(module, exports) {

/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
module.exports = {
  'ccd.infoPanel.detail.created': 'Gemaakt',
  'ccd.infoPanel.detail.modified': 'Gewijzigd',
  'ccd.infoPanel.detail.size': 'Grootte',
  'ccd.infoPanel.detail.shared': 'Gedeeld',
  'ccd.header.renameFolder': 'Mapnaam wijzigen',
  'ccd.menu.addToFavourites': 'Toevoegen aan Snelkoppelingen',
  'ccd.menu.removeFromFavourites': 'Snelkoppeling verwijderen',
  'ccd.menu.viewonweb': 'Weergeven in browser',
  'ccd.menu.share': 'Delen',
  'ccd.menu.openWith': 'Openen in',
  'ccd.menu.changeDefaultApp': 'Standaardapplicatie wijzigen...',
  'ccd.menu.default': '(Standaard)',
  'ccd.menu.export': 'Exporteren als lokale kopie',
  'ccd.menu.download': 'Downloaden',
  'ccd.menu.createNew': 'Nieuwe maken...',
  'ccd.menu.launch': 'STARTEN',
  'actionMenuItem.permdelete': 'Definitief verwijderen',
  'tab.Cloud Documents': 'Jouw bestanden',
  'tab.Home': 'Start',
  'header.CloudDocuments': 'Jouw bestanden',
  'header.SharedWithYou': 'Met jou gedeeld',
  'header.Deleted': 'Verwijderd',
  'header.Deleted.AssetsWebLink': 'Ga naar Assets Web om alle verwijderde items te bekijken',
  'header.SelectedDocuments': '{numSelected, plural, =1 {#} other {#}} geselecteerd',
  'header.size': 'Grootte',
  'header.title': 'Naam',
  'header.modifiedDate': 'Gewijzigd op',
  'header.createDate': 'Gemaakt op',
  'header.shareDate': 'Gedeeld op',
  'header.SortBy': 'Sorteren op',
  'header.infoPopover.body': 'Alleen compatibele bestanden worden weergegeven. Ga naar Creative Cloud op internet om alle bestanden te bekijken.',
  'header.infoPopover.link': 'Ga naar Creative Cloud',
  'header.dragImport': 'Uploaden naar: {displayName}',
  'collaborators.onlyYou': 'Alleen jij',
  'collaborators.Owner': '{displayName} (eigenaar)',
  'collaborators.More': '{numItems, plural, other {+# meer}}',
  'empty.offline.root.title': 'De netwerkverbinding is',
  'empty.offline.root.subtitle': 'Items die zichtbaar waren terwijl je online was, worden hier weergegeven wanneer je opnieuw verbinding maakt.',
  'empty.offline.folder.title': 'Kan map niet laden',
  'empty.offline.folder.subtitle': 'Geen internetverbinding. Maak opnieuw verbinding om alles te bekijken.',
  'empty.online.cdp.saveas.root.title': 'Geen clouddocumenten om weer te geven',
  'empty.online.cdp.saveas.root.subtitle': 'Clouddocumenten zorgen ervoor dat je werk altijd is bijgewerkt, op elk apparaat, waar je ook bent. Maak eenvoudig verbinding met internet en ga aan de slag.',
  'empty.online.cdp.saveas.root.subtitle.sprk': 'Al je clouddocumenten van XD zijn hier te vinden. Werk overal, zelfs offline. Wijzigingen in clouddocumenten worden automatisch opgeslagen en kunnen worden bekeken in de documentgeschiedenis.',
  'empty.online.cdp.saveas.root.subtitle.phxs': 'Al je clouddocumenten uit Photoshop op de Mac, in Windows en op de iPad worden hier weergegeven.',
  'empty.online.cdp.saveas.root.subtitle.ilst': 'Al je clouddocumenten uit Illustrator op de Mac en in Windows worden hier weergegeven.',
  'empty.online.cdp.saveas.root.subtitle.idsn': 'Al je clouddocumenten uit InDesign op de Mac en in Windows worden hier weergegeven.',
  'empty.online.cdp.saveas.folder.title': 'Geen clouddocumenten om weer te geven',
  'empty.online.cdp.saveas.folder.subtitle': 'Wanneer je een compatibel clouddocument in deze map plaatst, wordt het hier weergegeven.',
  'empty.online.cdp.open.root.title': 'Geen clouddocumenten om weer te geven',
  'empty.online.cdp.open.root.subtitle': 'Wanneer je een compatibel clouddocument in deze map plaatst, wordt het hier weergegeven.',
  'empty.online.cdp.open.root.subtitle.sprk': 'Al je clouddocumenten van XD zijn hier te vinden. Werk overal, zelfs offline. Wijzigingen in clouddocumenten worden automatisch opgeslagen en kunnen worden bekeken in de documentgeschiedenis.',
  'empty.online.cdp.open.root.subtitle.phxs': 'Al je clouddocumenten uit Photoshop op de Mac, in Windows en op de iPad worden hier weergegeven.',
  'empty.online.cdp.open.root.subtitle.ilst': 'Al je clouddocumenten uit Illustrator op de Mac en in Windows worden hier weergegeven.',
  'empty.online.cdp.open.root.subtitle.idsn': 'Al je clouddocumenten uit InDesign op de Mac en in Windows worden hier weergegeven.',
  'empty.online.cdp.open.folder.title': 'Geen clouddocumenten om weer te geven',
  'empty.online.cdp.open.folder.subtitle': 'Wanneer je een compatibel clouddocument in deze map plaatst, wordt het hier weergegeven.',
  'empty.online.cdo.root.title': 'Je hebt geen clouddocumenten',
  'empty.online.cdo.root.subtitle': 'Werk naadloos samen met anderen en werk overal, zelfs als je offline bent. Wijzigingen worden automatisch opgeslagen en kunnen worden bekeken in de bestandsgeschiedenis.',
  'empty.online.cdo.root.subtitle.sprk': 'Werk naadloos in realtime samen met anderen en werk overal, zelfs als je offline bent. Wijzigingen worden automatisch opgeslagen en kunnen worden bekeken in de documentgeschiedenis.',
  'empty.online.cdo.root.subtitle.phxs': 'Werk naadloos samen met anderen en werk overal waar je je aanmeldt bij Photoshop, zelfs als je offline bent. Wijzigingen worden automatisch opgeslagen en kunnen worden bekeken in de bestandsgeschiedenis.',
  'empty.online.cdo.root.subtitle.ilst': 'Werk naadloos samen met anderen en werk overal waar je je aanmeldt bij Illustrator, zelfs als je offline bent. Wijzigingen worden automatisch opgeslagen en kunnen worden bekeken in de bestandsgeschiedenis.',
  'empty.online.cdo.root.subtitle.idsn': 'Overal waar je je aanmeldt bij InDesign, heb je toegang tot je documenten. Wijzigingen worden automatisch opgeslagen.',
  'empty.online.cdo.folder.title': 'Geen clouddocumenten om weer te geven',
  'empty.online.cdo.folder.subtitle': 'Wanneer je een compatibel clouddocument in deze map plaatst, wordt het hier weergegeven.',
  'empty.title.deleted': 'Je hebt nog geen verwijderde bestanden',
  'empty.title.deleted_offline': 'Je verbinding is verbroken',
  'empty.title.recent': 'Je hebt geen recente bestanden',
  'empty.subtext.deleted_offline': 'Items die zijn verwijderd terwijl je online was, worden hier weergegeven wanneer je opnieuw verbinding maakt.',
  'empty.title.shared_with_you': 'Je hebt geen gedeelde clouddocumenten',
  'empty.subtext.shared_with_you': 'Wanneer iemand clouddocumenten met je deelt, worden deze hier weergegeven.',
  'empty.title.shared_with_you_offline': 'Je verbinding is verbroken',
  'empty.subtext.shared_with_you_offline': 'Je kunt gedeelde documenten weer bekijken en bewerken wanneer je verbinding is hersteld.',
  'empty.title.error': 'Er is iets fout gegaan',
  'empty.subtext.error': 'Start de app opnieuw en probeer het nogmaals.',
  'empty.subtext.error.web': 'Vernieuw de browser en probeer het opnieuw.',
  'empty.title.coresync.down': 'Kan niet worden geladen',
  'empty.subtext.coresync.down': 'De cloud wordt niet gesynchroniseerd. Zorg ervoor dat Creative Cloud voor de desktop is bijgewerkt of start de app opnieuw.',
  'empty.title.coresync.incompatible': 'Kan clouddocumenten niet laden',
  'empty.subtext.coresync.incompatible': 'We kunnen nu geen items weergeven. Werk je versie van de Creative Cloud-applicatie bij en probeer het opnieuw.',
  'empty.title.cloudStorageDisabled': 'Clouddocumenten zijn niet beschikbaar',
  'empty.subtext.cloudStorageDisabled': 'Je kunt {productName} alleen gebruiken om met bestanden op je apparaat te werken. Neem voor meer informatie contact op met je IT-beheerder.',
  'empty.title.logout': 'Meld je aan om clouddocumenten te openen.',
  'empty.learnMore.link': 'Meer informatie',
  'trueEmpty.online.cdo.folder.title': 'Er zit niets in deze map',
  'trueEmpty.online.cdo.folder.subtitle': 'Voeg hier dingen toe om de map te vullen.',
  'trueEmpty.online.cdp.saveas.folder.title': 'Je hebt nog geen clouddocumenten',
  'trueEmpty.online.cdp.saveas.folder.subtitle': 'Clouddocumenten zorgen ervoor dat je werk altijd is bijgewerkt, op elk apparaat, waar je ook bent. Maak eenvoudig verbinding met internet en ga aan de slag.',
  'trueEmpty.online.cdp.open.folder.title': 'Je hebt nog geen clouddocumenten',
  'trueEmpty.online.cdp.open.folder.subtitle': 'Clouddocumenten zorgen ervoor dat je werk altijd is bijgewerkt, op elk apparaat, waar je ook bent. Maak eenvoudig verbinding met internet en ga aan de slag.',
  'filter.prompt': 'Trefwoord invoeren',
  'filter.title': 'Filteren',
  'empty.filter.title': 'Geen resultaten voor "{filterString}"',
  'empty.filter.subtitle': 'Controleer de spelling, probeer een algemenere zoekterm of filter op een andere locatie.',
  'beta.title': 'Je werk synchroniseren op al je apparaten',
  'beta.subtitle': 'Werk naadloos in Photoshop op je iPad en desktop met clouddocumenten. Deze functie bevindt zich in echter in de bètafase, dus dit werkt mogelijk niet altijd zoals verwacht. Schakel dit in en uit via de voorkeuren.',
  'beta.button': 'Inschakelen via voorkeuren',
  'beta.tag': 'BETA',
  'beta.feedback.link': 'Feedback geven over de bètaversie',
  'button.add-folder': 'Nieuwe map maken',
  'button.upload': 'Uploaden...',
  'button.createnew': 'Iets nieuws maken',
  'button.reportAbuse': 'Misbruik melden',
  'button.open': 'Openen',
  'button.select': 'Selecteren',
  'button.rename': 'Naam wijzigen',
  'button.pin.header': 'Altijd offline beschikbaar maken',
  'button.pin': 'Altijd offline beschikbaar maken',
  'button.unpin.header': 'Alleen online beschikbaar maken',
  'button.unpin': 'Alleen online beschikbaar maken',
  'button.duplicate': 'Dupliceren',
  'button.download': 'Downloaden',
  'button.move': 'Verplaatsen',
  'button.delete': 'Verwijderen',
  'button.restore': 'Herstellen',
  'button.permdelete': 'Definitief verwijderen',
  'button.listview': 'Lijst weergeven',
  'button.gridview': 'Raster weergeven',
  'button.sharesheetinvite': 'Uitnodigen om te bewerken',
  'button.sharesheetLink': 'Koppeling ophalen',
  'button.shareSheetAction': 'Delen',
  'button.preview': 'Voorvertoning',
  'button.schedule': 'Plannen',
  'action.duplicate.suffix': '(Dupliceren)',
  'action.resolve_sync_error.suffix': 'kopie',
  'statusIcon.conflicted': 'Synchronisatie- conflict',
  'statusIcon.onlineOnly': 'Alleen online',
  'statusIcon.availableOffline': 'Offline beschikbaar',
  'statusIcon.syncing': 'Synchroniseren...',
  'statusIcon.waitingToSync': 'Wachten op synchronisatie',
  'tooltip.error': 'Document openen om opslagconflict te bekijken',
  'toast.error.documentIsOpen': 'Sluit {count, plural, =1 {het document} other {de documenten}} als je deze handeling wilt uitvoeren.',
  'toast.error.exceedsQuota.personal': 'De opslagruimte van je account is vol',
  'toast.error.exceedsQuota.enterprise': 'Geen opslagruimte meer. Neem voor meer informatie contact op met je beheerder.',
  'toast.operation.duplicate.error': 'Kan {count, plural, =1 {item} other {{count} items}} niet dupliceren.',
  'toast.operation.duplicate.success': '{count, plural, =1 {Item is} other {{count} items zijn}} gedupliceerd.',
  'toast.operation.archive.error': 'Kan {count, plural, =1 {item} other {{count} items}} niet verwijderen.',
  'toast.operation.archive.error.otherAppUncommittedChanges': 'Je kunt geen bestanden verwijderen die in andere apps zijn geopend. Sluit ze en probeer het opnieuw.',
  'toast.operation.archive.undo.error': 'Kan {count, plural, =1 {item} other {{count} items}} niet verwijderen.',
  'toast.operation.archive.success': '{count, plural, =1 {Item is} other {{count} items zijn}} verwijderd.',
  'toast.operation.archive.undo.success': 'Herstellen ongedaan gemaakt.',
  'toast.operation.permdelete.error': 'Kan {count, plural, =1 {item} other {{count} items}} niet definitief verwijderen.',
  'toast.operation.permdelete.success': '{count, plural, =1 {Item is} other {{count} items zijn}} definitief verwijderd.',
  'toast.operation.rename.error': 'Kan naam van item niet wijzigen.',
  'toast.operation.rename.undo.error': 'Kan naam van item niet wijzigen.',
  'toast.operation.rename.error.duplicateName': 'Je hebt hier al een item met deze naam.',
  'toast.operation.rename.undo.error.duplicateName': 'Je hebt hier al een item met deze naam.',
  'toast.operation.rename.success': 'Naam van item is gewijzigd.',
  'toast.operation.rename.undo.success': 'Naam wijzigen ongedaan gemaakt.',
  'toast.operation.move.error': 'Kan {count, plural, =1 {item} other {{count} items}} niet verplaatsen.',
  'toast.operation.move.undo.error': 'Kan {count, plural, =1 {item} other {{count} items}} niet verplaatsen.',
  'toast.operation.move.error.duplicateFolderName': 'Je hebt hier al een map met deze naam.',
  'toast.operation.move.undo.error.duplicateFolderName': 'Je hebt hier al een map met deze naam.',
  'toast.operation.move.error.duplicateDocName': '{count, plural, =1 {Die map bevat al een clouddocument met deze naam. Wijzig de naam en probeer het opnieuw.} other {Documenten kunnen niet worden verplaatst omdat er al documenten met dezelfde naam zijn.}}',
  'toast.operation.move.undo.error.duplicateDocName': '{count, plural, =1 {Die map bevat al een clouddocument met deze naam. Wijzig de naam en probeer het opnieuw.} other {Documenten kunnen niet worden verplaatst omdat er al documenten met dezelfde naam zijn.}}',
  'toast.operation.move.success': '{count, plural, =1 {Item is} other {{count} items zijn}} verplaatst.',
  'toast.operation.move.undo.success': 'Verplaatsen ongedaan gemaakt.',
  'toast.operation.unarchive.error': 'Kan {count, plural, =1 {item} other {{count} items}} niet herstellen.',
  'toast.operation.unarchive.undo.error': 'Kan {count, plural, =1 {item} other {{count} items}} niet herstellen.',
  'toast.operation.unarchive.success': '{count, plural, =1 {Item is} other {{count} items zijn}} hersteld.',
  'toast.operation.unarchive.undo.success': 'Verwijderen ongedaan gemaakt.',
  'toast.operation.create_new_folder.success': 'Map gemaakt.',
  'toast.operation.create_new_folder.error': 'Kan geen nieuwe map maken.',
  'toast.operation.create_new_folder.error.duplicateName': 'Je hebt hier al een map met deze naam.',
  'toast.operation.user_pin.success': '{count, plural, =1 {Item is} other {{count} items zijn}} offline beschikbaar.',
  'toast.operation.user_pin.error': 'Kan {count, plural, =1 {item} other {{count} items}} niet offline beschikbaar maken.',
  'toast.operation.user_unpin.success': '{count, plural, =1 {Item is} other {{count} items zijn}} alleen online beschikbaar.',
  'toast.operation.user_unpin.error': 'Kan {count, plural, =1 {item} other {{count} items}} niet alleen online beschikbaar maken.',
  'toast.operation.resolve_sync_error.success': 'Er is een kopie gemaakt van "{name}". Je kunt beide documenten vergelijken en eventuele verschillen op elkaar afstemmen.',
  'toast.ccd.scroll_to_item.fetching': 'Bestand ophalen…',
  'toast.ccd.scroll_to_item.error': 'Bestand niet gevonden',
  'toast.info.disabled_rename_to_open_item': 'Oudere XD-documenten moeten eerst worden geopend voordat de naam ervan hier kan worden gewijzigd.',
  'toast.action.disabled_rename_to_open_item': 'Document openen',
  'toast.error.rename.invalidName': 'Deze naam bevat een of meer ongeldige tekens.',
  'toast.error.rename.invalidChar': 'De naam mag geen van de volgende tekens bevatten: {characters}',
  'toast.error.rename.invalidEnd': 'Naam mag niet eindigen op \'.\' of een spatie.',
  'toast.error.rename.charRestriction': 'Namen mogen niet langer zijn dan 200 tekens.',
  'toast.error.rename.duplicateName': 'Je hebt hier al een clouddocument met deze naam.',
  'toast.success.reportAbuse': 'Misbruik is gemeld',
  'toast.error.reportAbuse': 'Misbruik kan niet worden gemeld',
  'toast.operation.undoLabel': 'Ongedaan maken',
  'dialog.permdelete.heading': 'Definitief verwijderen',
  'dialog.permdelete.warning': 'Je kunt dit niet ongedaan maken. Het volgende zul je voorgoed kwijt zijn:',
  'dialog.permdelete.cancelButton': 'Annuleren',
  'dialog.permdelete.confirmButton': 'Definitief verwijderen',
  'dialog.permdelete.countItems': '{count, plural, =1 {# item} other {# items}}',
  'dialog.nonemptyfolder.heading': 'Weet je zeker dat je {count, plural, =1 {deze map} other {deze mappen}} wilt verwijderen?',
  'dialog.nonemptyfolder.warning': '{count, plural, =1 {Deze map is niet leeg en kan} other {Deze mappen zijn niet leeg en kunnen}} bestanden bevatten die niet zichtbaar zijn in {appName}. Je kunt verdergaan met verwijderen of de {count, plural, =1 {map} other {mappen}} op het web bekijken om de inhoud {count, plural, =1 {ervan} other {ervan}} te controleren. {viewOnWebLink}',
  'dialog.nonemptyfolder.cancelButton': 'Annuleren',
  'dialog.nonemptyfolder.confirmButton': 'Verwijderen',
  'dialog.nonemptyfolder.viewOnWebButton': 'Bekijken op het web',
  'dialog.addfolder.heading': 'Nieuwe map maken',
  'dialog.addfolder.cancelButton': 'Annuleren',
  'dialog.addfolder.confirmButton': 'Opslaan',
  'dialog.addfolder.placeholder': 'Nieuwe map',
  'dialog.addfolder.invalidChar': 'Namen mogen geen van de volgende tekens bevatten: {characters}',
  'dialog.addfolder.invalidName': 'Deze map bevat een of meer ongeldige tekens.',
  'dialog.addfolder.invalidEnd': 'Naam mag niet eindigen op \'.\' of een spatie.',
  'dialog.addfolder.duplicateName': 'Je hebt hier al een map met deze naam.',
  'dialog.addfolder.charRestriction': 'Namen mogen niet langer zijn dan 200 tekens.',
  'dialog.moveFolder.heading': 'Verplaatsen naar...',
  'dialog.moveFolder.cancelButton': 'Annuleren',
  'dialog.moveFolder.moveButton': 'Verplaatsen',
  'dialog.moveFolder.createNewFolderButton': 'Map toevoegen',
  'dialog.reportAbuse.cancelButton': 'Annuleren',
  'dialog.reportAbuse.reportAbuseButton': 'Misbruik melden',
  'dialog.reportAbuse.heading': 'Misbruik melden',
  'dialog.reportAbuse.emailInput': 'Je e-mailadres',
  'dialog.reportAbuse.nameInput': 'Je naam',
  'dialog.reportAbuse.radioButtonText': 'Waarom meld je deze inhoud?',
  'dialog.reportAbuse.defamation': 'Laster',
  'dialog.reportAbuse.hate': 'Racistische of haatdragende inhoud',
  'dialog.reportAbuse.trademark': 'Handelsmerkschending',
  'dialog.reportAbuse.pornography': 'Seksueel expliciete inhoud',
  'dialog.reportAbuse.vulgar': 'Aanstootgevende inhoud',
  'dialog.reportAbuse.other': 'Anders',
  'dialog.reportAbuse.inappropriate': 'Ongepast',
  'dialog.reportAbuse.age': 'Onjuiste leeftijdsaanduiding',
  'dialog.reportAbuse.gender': 'Onjuiste geslachtsaanduiding',
  'dialog.reportAbuse.description': 'Als je van mening bent dat deze Creative Cloud-inhoud de gebruiksvoorwaarden van Adobe schendt, kun je deze inhoud melden door dit korte formulier in te vullen.',
  'dialog.reportAbuse.describeConcern': 'Beschrijf het probleem',
  'dialog.reportAbuse.success': 'Misbruik is gemeld',
  'dialog.reportAbuse.failure': 'Misbruik kan niet worden gemeld',
  'dialog.reportAbuse.textAreaTitle': 'Geef een beschrijving van het probleem',
  'dialog.reportAbuse.required': 'Vereist',
  'dialog.cachefull.title': 'Kan niet offline beschikbaar maken',
  'dialog.cachefull.message': 'Je hebt geen ruimte meer op je apparaat. Stel in dat sommige documenten alleen online beschikbaar zijn om ruimte vrij te maken.',
  'dialog.cachefull.confirm': 'OK',
  'dialog.syncError.heading': 'De synchronisatie van dit document met de cloud is gestopt',
  'dialog.syncError.body1': 'We raden je aan de laatste versie als kopie op te slaan en het document te herstellen naar de laatste versie die is opgeslagen in de cloud.',
  'dialog.syncError.body2': 'Je kunt dit document openen en bewerken, maar je wijzigingen worden niet opgeslagen in de cloud.',
  'dialog.syncError.offline': 'Je moet online zijn om een kopie op te slaan en het origineel te herstellen.',
  'dialog.syncError.learnMore': 'Meer informatie',
  'dialog.syncError.resolveButton': 'Kopie opslaan en herstellen',
  'dialog.syncError.openButton': 'Openen',
  'dialog.syncErrorCopyFail.heading': 'Kan geen kopie opslaan',
  'dialog.syncErrorCopyFail.body1': 'Je kunt dit document nog steeds openen en bewerken, maar je wijzigingen worden niet opgeslagen in de cloud.',
  'dialog.syncErrorCopyFail.body2': 'Neem voor meer hulp contact op met de klantenservice van Adobe. (Fout: LocalContentSyncSuspended)',
  'dialog.syncErrorCopyFail.closeButton': 'Sluiten',
  'dialog.syncErrorCopyFail.contactUs': 'Contact opnemen',
  'dialog.syncErrorPurgeFail.heading': 'Kan niet herstellen naar de laatste versie die is opgeslagen in cloud',
  'dialog.syncErrorPurgeFail.body1': 'Er is een kopie van je document gemaakt, maar we kunnen het document niet herstellen naar de laatst opgeslagen versie in de cloud.',
  'dialog.syncErrorPurgeFail.body2': 'Neem voor meer hulp contact op met de klantenservice van Adobe. (Fout: LocalContentSyncSuspended)',
  'dialog.syncErrorPurgeFail.closeButton': 'Sluiten',
  'dialog.syncErrorPurgeFail.contactUs': 'Contact opnemen',
  'onboardingCdo.banner.title.sprk': 'Een betere manier om te werken',
  'onboardingCdo.banner.title.phxs': 'Gebruik je Photoshop op iPad? Probeer clouddocumenten',
  'onboardingCdo.banner.title.ilst': 'Je kunt clouddocumenten nu gebruiken in Illustrator',
  'onboardingCdo.banner.title.idsn': 'Je kunt clouddocumenten nu gebruiken in InDesign',
  'onboardingCdo.banner.message.sprk': 'Bewerk je clouddocumenten overal, zelfs offline. Wijzigingen worden automatisch opgeslagen en kunnen worden bekeken in de documentgeschiedenis. Deel ze met anderen, zodat je direct in real-time kunt samenwerken.',
  'onboardingCdo.banner.message.phxs': 'Clouddocumenten worden automatisch opgeslagen in de cloud van Adobe terwijl je werkt, zodat je bestanden toegankelijk zijn op de desktop of de iPad.',
  'onboardingCdo.banner.message.ilst': 'Clouddocumenten in Illustrator worden automatisch opgeslagen in de cloud van Adobe terwijl je eraan werkt. Je kunt ook de versiegeschiedenis bekijken om te zien hoe je werk zich heeft ontwikkeld.',
  'onboardingCdo.banner.message.idsn': 'Clouddocumenten in InDesign worden automatisch opgeslagen in cloud van Adobe terwijl je eraan werkt.',
  'onboardingCdo.banner.linkTitle': 'Meer informatie',
  'onboardingCdo.banner.confirm': 'OK',
  'operation.progress.archive': '{batchSize, plural, =1 {1 item wordt} other {{inProgressNum} van {batchSize} items}} verwijderd...',
  'operation.progress.unarchive': '{batchSize, plural, =1 {1 item wordt} other {{inProgressNum} van {batchSize} items}} hersteld...',
  'operation.progress.move': '{batchSize, plural, =1 {1 item wordt} other {{inProgressNum} van {batchSize} items}} verplaatst...',
  'operation.progress.permdelete': '{batchSize, plural, =1 {1 item wordt} other {{inProgressNum} van {batchSize} items}} definitief verwijderd...',
  'operation.progress.rename': 'De naam van {batchSize, plural, =1 {1 item} other {{inProgressNum} van {batchSize} items}} wordt gewijzigd...',
  'operation.progress.create_new_folder': 'Nieuwe map maken...',
  'operation.progress.duplicate': '{batchSize, plural, =1 {1 item} other {{inProgressNum} van {batchSize} items}} dupliceren...',
  'operation.progress.user_pin': '{batchSize, plural, =1 {1 item wordt} other {{inProgressNum} van {batchSize} items worden}} offline beschikbaar gemaakt...',
  'operation.progress.user_unpin': '{batchSize, plural, =1 {1 item wordt} other {{inProgressNum} van {batchSize} items worden}} alleen online beschikbaar gemaakt...',
  'operation.progress.resolve_sync_error': 'Kopiëren en herstellen naar de laatst opgeslagen versie in de cloud...',
  'tooltip.offline.general': 'Internetverbinding is vereist.',
  'tooltip.offline.create-new-folder': 'Voor het aanmaken van mappen is een internetverbinding vereist.',
  'tooltip.offline.move': 'Voor het verplaatsen van items is een internetverbinding vereist.',
  'tooltip.syncing.disabled': 'Synchronisatie is bijna voltooid',
  'tooltip.rename.disabled': 'De naam van een geselecteerd document kan niet worden gewijzigd. Open het document in een hostapplicatie om de naam ervan te kunnen wijzigen.',
  'tooltip.rename.disabled.sprk': 'De naam van dit bestand kan pas worden gewijzigd als je het in XD opent.',
  'tooltip.syncSuspended.needsAction': 'De synchronisatie is gestopt. Open het document om actie te ondernemen.',
  'tooltip.syncSuspended.noAction': 'De synchronisatie is gestopt. Deze actie is op dit moment niet toegestaan.',
  'Recents.title': 'Recent',
  'Recents.cloudDocTitle': 'CLOUDDOCUMENT',
  'Recents.error.subtext.coreSync': 'Recente bestanden zijn momenteel niet beschikbaar omdat Creative Cloud-synchronisatie niet correct wordt uitgevoerd.',
  'item.saveForOfflineIconToolTip': 'Dit document is gedownload en is volledig offline beschikbaar.',
  'item.disconnected.cloudonly': 'De verbinding is verbroken. Maak opnieuw verbinding om het document te openen.',
  'item.coresyncdown.cloudonly': 'Kan bestand niet laden. Je kunt dit mogelijk oplossen door Creative Cloud bij te werken of opnieuw te starten.',
  'folder.subtitle': 'MAP',
  'review.subtitle': 'BEOORDELING',
  'prototype.subtitle': 'PROTOTYPE',
  'designspecs.subtitle': 'ONTWERPSPECIFICATIES',
  'project.subtitle': 'PROJECT',
  'library.subtitle': 'BIBLIOTHEEK',
  'webLink.subtitle': 'WEBKOPPELING',
  'abbreviations.fileSize.byte': 'B',
  'abbreviations.fileSize.kilobyte': 'KB',
  'abbreviations.fileSize.megabyte': 'MB',
  'abbreviations.fileSize.gigabyte': 'GB',
  'abbreviations.fileSize.terabyte': 'TB',
  'sam.copyNameFormat': '%@ kopie',
  'cloudsync.quota.title': 'CLOUDOPSLAG',
  'cloudsync.quota.percentage': '{percentageUsed}%',
  'cloudsync.quota.usage': '{usedCloudQuotaString} van {maxCloudQuotaString} gebruikt',
  'cloudsync.quota.warning': 'Je cloudopslag is vol. Voer nu een upgrade uit om je werk te blijven synchroniseren.',
  'cloudsync.quota.error': 'Geen informatie over opslag beschikbaar...',
  'cloudsync.quota.upgrade': 'Upgraden',
  'cloudsync.status.complete.title': 'Gesynchroniseerd en back-up gemaakt',
  'cloudsync.status.syncing.title': 'Clouddocumenten synchroniseren',
  'cloudsync.status.syncing.descr': '{progress}/{total}',
  'cloudsync.status.offline.title': 'Offline werken',
  'cloudsync.status.offline.descr': 'We slaan bestanden lokaal op. Documenten worden gesynchroniseerd met de cloud wanneer je weer verbinding hebt.',
  'cloudsync.status.disabled.title': 'Synchronisatie uitgeschakeld',
  'cloudsync.status.disabled.descr': 'We slaan bestanden lokaal op. Documenten worden gesynchroniseerd met de cloud wanneer er opslagruimte beschikbaar is.',
  'cloudsync.item.progress.determinate': '{progress}/{total}',
  'cloudsync.item.progress.indeterminate': 'Synchroniseren...',
  'cloudsync.item.complete': 'Voltooid',
  'cloudsync.items.header': 'Netwerkactiviteit',
  'cloudsync.alert.title.coresync.down': 'Kan niet worden geladen',
  'cloudsync.alert.subtext.coresync.down': 'De cloud wordt niet gesynchroniseerd. Zorg ervoor dat Creative Cloud voor de desktop is bijgewerkt of start de app opnieuw.',
  'cloudsync.alert.subtext.coresync.down.learnmore': 'Meer informatie',
  'cloudsync.tooltip.offline': 'Verbinding verbroken',
  'cloudsync.tooltip.error': 'Fout',
  'cloudsync.tooltip.syncing': 'Bezig met opslaan...',
  'cloudsync.tooltip.default': 'Opgeslagen',
  'cloudsync.singleDoc.offline.title': 'Verbinding verbroken',
  'cloudsync.singleDoc.offline.descr': 'Opnieuw verbinding maken...',
  'cloudsync.singleDoc.offline.timestamp': 'Laatst gesynchroniseerd {time}',
  'cloudsync.singleDoc.error.samInitFail.title': 'De cloud is gestopt met synchroniseren',
  'cloudsync.singleDoc.error.samInitFail.descr': 'Start deze app opnieuw om door te gaan met het synchroniseren van je werk.',
  'cloudsync.singleDoc.error.syncSuspended.title': 'De cloud is gestopt met synchroniseren',
  'cloudsync.singleDoc.error.syncSuspended.descr': 'Start deze app opnieuw om door te gaan met het synchroniseren van je werk.',
  'cloudsync.singleDoc.error.title': 'Fout met laden',
  'cloudsync.singleDoc.error.descr': 'De cloud wordt niet gesynchroniseerd. Zorg ervoor dat de Creative Cloud desktop-app is bijgewerkt of start de app opnieuw.',
  'cloudsync.singleDoc.error.learnMore': 'Meer informatie',
  'cloudsync.singleDoc.disabled.quotaExceeded.title': 'Je cloudopslag is vol',
  'cloudsync.singleDoc.disabled.quotaExceeded.descr': 'Werk Creative Cloud bij om door te gaan met het synchroniseren van je werk.',
  'cloudsync.singleDoc.syncing.title': 'Bezig met opslaan...',
  'cloudsync.singleDoc.syncing.descr': 'Wordt verwerkt',
  'cloudsync.singleDoc.disabled.title': 'Kan niet worden opgeslagen',
  'cloudsync.singleDoc.disabled.descr': 'De opslagruimte van je account is vol.',
  'cloudsync.singleDoc.complete.title': 'Bestand opgeslagen',
  'cloudsync.singleDoc.complete.timestamp': 'Laatst gesynchroniseerd {time}'
};

/***/ }),

/***/ "DLu5":
/***/ (function(module, exports) {

/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
module.exports = {
  'ccd.infoPanel.detail.created': 'Створено',
  'ccd.infoPanel.detail.modified': 'Змінено',
  'ccd.infoPanel.detail.size': 'Розмір',
  'ccd.infoPanel.detail.shared': 'Спільний',
  'ccd.header.renameFolder': 'Перейменувати папку',
  'ccd.menu.addToFavourites': 'Додати до комбінацій швидкого доступу',
  'ccd.menu.removeFromFavourites': 'Видалити з комбінацій швидкого доступу',
  'ccd.menu.viewonweb': 'Перегляд на веб-сайті',
  'ccd.menu.share': 'Поділитися',
  'ccd.menu.openWith': 'Відкрити в',
  'ccd.menu.changeDefaultApp': 'Змінити програму за замовчуванням...',
  'ccd.menu.default': '(За замовчуванням)',
  'ccd.menu.export': 'Експортувати як локальну копію',
  'ccd.menu.download': 'Завантажити',
  'ccd.menu.createNew': 'Створити новий...',
  'ccd.menu.launch': 'ЗАПУСК',
  'actionMenuItem.permdelete': 'Видалити остаточно',
  'tab.Cloud Documents': 'Ваші файли',
  'tab.Home': 'Головна',
  'header.CloudDocuments': 'Ваші файли',
  'header.SharedWithYou': 'Відкрито для вас',
  'header.Deleted': 'Видалені',
  'header.Deleted.AssetsWebLink': 'Щоб переглянути всі видалені елементи, перейдіть на вебсайт Assets',
  'header.SelectedDocuments': 'Вибрано {numSelected, plural, =1 {#} other {#}}',
  'header.size': 'Розмір',
  'header.title': 'Назва',
  'header.modifiedDate': 'Дата змін',
  'header.createDate': 'Дата створення',
  'header.shareDate': 'Дата поширення',
  'header.SortBy': 'Сортувати за',
  'header.infoPopover.body': 'Відображаються лише сумісні файли. Щоб переглянути всі файли, відвідайте веб-сайт Creative Cloud.',
  'header.infoPopover.link': 'Перейти до Creative Cloud',
  'header.dragImport': 'Завантажити на: {displayName}',
  'collaborators.onlyYou': 'Тільки ви',
  'collaborators.Owner': '{displayName} (власник)',
  'collaborators.More': '{numItems, plural, other {+ ще #}}',
  'empty.offline.root.title': 'Вас відключено',
  'empty.offline.root.subtitle': 'Елементи, що відображаються під час перебування в мережі, з’являться тут, коли зв’язок буде відновлено.',
  'empty.offline.folder.title': 'Не вдалося завантажити папку',
  'empty.offline.folder.subtitle': 'Відсутній зв’язок з Інтернетом. Відновіть зв’язок, щоб переглянути все.',
  'empty.online.cdp.saveas.root.title': 'Немає хмарних документів для відображення',
  'empty.online.cdp.saveas.root.subtitle': 'Хмарні документи завжди оновлюються на кожному пристрої, де б ви не перебували. Для роботи з ними потрібне лише з’єднання з Інтернетом.',
  'empty.online.cdp.saveas.root.subtitle.sprk': 'Усі ваші хмарні документи з XD розміщуватимуться тут. Працюйте де завгодно, навіть без підключення до мережі. Зміни в хмарних документах зберігаються автоматично та доступні для перегляду в історії документів.',
  'empty.online.cdp.saveas.root.subtitle.phxs': 'Усі ваші хмарні документи з програми Photoshop на пристроях Mac, Windows і iPad будуть тут.',
  'empty.online.cdp.saveas.root.subtitle.ilst': 'Усі ваші хмарні документи з програми Illustrator на пристроях Mac і Windows будуть тут.',
  'empty.online.cdp.saveas.root.subtitle.idsn': 'Усі ваші хмарні документи з програми InDesign на пристроях Mac і Windows будуть тут.',
  'empty.online.cdp.saveas.folder.title': 'Немає хмарних документів для відображення',
  'empty.online.cdp.saveas.folder.subtitle': 'Тут відображатиметься сумісний хмарний документ, збережений у цій папці.',
  'empty.online.cdp.open.root.title': 'Немає хмарних документів для відображення',
  'empty.online.cdp.open.root.subtitle': 'Тут відображатиметься сумісний хмарний документ, збережений у цій папці.',
  'empty.online.cdp.open.root.subtitle.sprk': 'Усі ваші хмарні документи з XD розміщуватимуться тут. Працюйте де завгодно, навіть без підключення до мережі. Зміни в хмарних документах зберігаються автоматично та доступні для перегляду в історії документів.',
  'empty.online.cdp.open.root.subtitle.phxs': 'Усі ваші хмарні документи з програми Photoshop на пристроях Mac, Windows і iPad будуть тут.',
  'empty.online.cdp.open.root.subtitle.ilst': 'Усі ваші хмарні документи з програми Illustrator на пристроях Mac і Windows будуть тут.',
  'empty.online.cdp.open.root.subtitle.idsn': 'Усі ваші хмарні документи з програми InDesign на пристроях Mac і Windows будуть тут.',
  'empty.online.cdp.open.folder.title': 'Немає хмарних документів для відображення',
  'empty.online.cdp.open.folder.subtitle': 'Тут відображатиметься сумісний хмарний документ, збережений у цій папці.',
  'empty.online.cdo.root.title': 'У вас немає хмарних документів',
  'empty.online.cdo.root.subtitle': 'З легкістю співпрацюйте з іншими користувачами та працюйте в будь-якому місці, навіть без підключення до мережі. Зміни зберігаються автоматично та доступні для перегляду в історії файлів.',
  'empty.online.cdo.root.subtitle.sprk': 'З легкістю співпрацюйте з іншими користувачами в режимі реального часу та працюйте в будь-якому місці, навіть без підключення до мережі. Зміни зберігаються автоматично та доступні для перегляду в історії файлів.',
  'empty.online.cdo.root.subtitle.phxs': 'З легкістю співпрацюйте з іншими користувачами та працюйте в будь-якому місці, виконавши вхід до Photoshop, навіть без підключення до мережі. Зміни зберігаються автоматично та доступні для перегляду в історії файлів.',
  'empty.online.cdo.root.subtitle.ilst': 'З легкістю співпрацюйте з іншими користувачами та працюйте в будь-якому місці, виконавши вхід до Illustrator, навіть без підключення до мережі. Зміни зберігаються автоматично та доступні для перегляду в історії файлів.',
  'empty.online.cdo.root.subtitle.idsn': 'Отримуйте доступ до своїх документів на будь-яких пристроях, виконавши вхід до InDesign. Зміни зберігаються автоматично.',
  'empty.online.cdo.folder.title': 'Немає хмарних документів для відображення',
  'empty.online.cdo.folder.subtitle': 'Тут відображатиметься сумісний хмарний документ, збережений у цій папці.',
  'empty.title.deleted': 'У вас немає видалених файлів',
  'empty.title.deleted_offline': 'Вас відключено',
  'empty.title.recent': 'У вас немає нещодавніх файлів',
  'empty.subtext.deleted_offline': 'Елементи, видалені під час перебування в мережі, з’являться тут, коли ви знову підключитеся.',
  'empty.title.shared_with_you': 'У вас немає спільних хмарних документів',
  'empty.subtext.shared_with_you': 'Коли хтось ділиться з вами хмарними документами, вони з’являються тут.',
  'empty.title.shared_with_you_offline': 'Вас відключено',
  'empty.subtext.shared_with_you_offline': 'Ви зможете переглядати й редагувати спільні документи, коли підключитеся до Інтернету.',
  'empty.title.error': 'Сталася помилка',
  'empty.subtext.error': 'Перезапустіть програму та повторіть спробу.',
  'empty.subtext.error.web': 'Оновіть браузер і повторіть спробу.',
  'empty.title.coresync.down': 'Не вдалося завантажити',
  'empty.subtext.coresync.down': 'Хмара не синхронізується. Переконайтеся, що Creative Cloud оновлено, або спробуйте перезапустити програму.',
  'empty.title.coresync.incompatible': 'Не вдалося завантажити хмарні документи',
  'empty.subtext.coresync.incompatible': 'Неможливо відобразити елементи просто зараз. Оновте версію програми Creative Cloud і повторіть спробу.',
  'empty.title.cloudStorageDisabled': 'Хмарні документи недоступні',
  'empty.subtext.cloudStorageDisabled': 'Ви можете використовувати {productName} лише для роботи з файлами на своєму пристрої. Для отримання додаткової інформації зверніться до свого ІТ-адміністратора.',
  'empty.title.logout': 'Увійдіть, щоб отримати доступ до хмарних документів.',
  'empty.learnMore.link': 'Докладніше',
  'trueEmpty.online.cdo.folder.title': 'Ця папка пуста',
  'trueEmpty.online.cdo.folder.subtitle': 'Додайте об’єкти сюди, щоби почати заповнення.',
  'trueEmpty.online.cdp.saveas.folder.title': 'Хмарних документів поки що немає',
  'trueEmpty.online.cdp.saveas.folder.subtitle': 'Хмарні документи завжди оновлюються на кожному пристрої, де б ви не перебували. Для роботи з ними потрібне лише з’єднання з Інтернетом.',
  'trueEmpty.online.cdp.open.folder.title': 'Хмарних документів поки що немає',
  'trueEmpty.online.cdp.open.folder.subtitle': 'Хмарні документи завжди оновлюються на кожному пристрої, де б ви не перебували. Для роботи з ними потрібне лише з’єднання з Інтернетом.',
  'filter.prompt': 'Введіть ключове слово',
  'filter.title': 'Фільтрувати',
  'empty.filter.title': 'Результати за «{filterString}» не знайдено',
  'empty.filter.subtitle': 'Перевірте правопис, спробуйте загальніше ключове слово або виберіть інше розташування для фільтрування.',
  'beta.title': 'Синхронізуйте свою роботу на своїх пристроях',
  'beta.subtitle': 'З легкістю працюйте з хмарними документами у Photoshop на своєму iPad і настільному комп’ютері. Ця функція доступна в режимі бета-тестування, тому може не завжди працювати належним чином. Увімкнути й вимкнути її можна в настройках.',
  'beta.button': 'Увімкнути в настройках',
  'beta.tag': 'BETA',
  'beta.feedback.link': 'Залишити відгук про Beta-версію',
  'button.add-folder': 'Створити нову папку',
  'button.upload': 'Завантажити...',
  'button.createnew': 'Створити новий',
  'button.reportAbuse': 'Повідомити про порушення',
  'button.open': 'Відкрити',
  'button.select': 'Вибрати',
  'button.rename': 'Перейменувати',
  'button.pin.header': 'Зробити доступним в автономному режимі завжди',
  'button.pin': 'Зробити доступним в автономному режимі завжди',
  'button.unpin.header': 'Зробити доступним тільки в мережі',
  'button.unpin': 'Зробити доступним тільки в мережі',
  'button.duplicate': 'Дублювати',
  'button.download': 'Завантажити',
  'button.move': 'Перемістити',
  'button.delete': 'Видалити',
  'button.restore': 'Відновити',
  'button.permdelete': 'Видалити остаточно',
  'button.listview': 'Перегляд списку',
  'button.gridview': 'Перегляд сітки',
  'button.sharesheetinvite': 'Запросити для редагування',
  'button.sharesheetLink': 'Отримати посилання',
  'button.shareSheetAction': 'Поділитися',
  'button.preview': 'Переглянути',
  'button.schedule': 'Розклад',
  'action.duplicate.suffix': '(Дублювати)',
  'action.resolve_sync_error.suffix': 'копія',
  'statusIcon.conflicted': 'Конфлікт синхронізації',
  'statusIcon.onlineOnly': 'Тільки мережний',
  'statusIcon.availableOffline': 'Доступний в автономному режимі',
  'statusIcon.syncing': 'Синхронізація...',
  'statusIcon.waitingToSync': 'Очікування синхронізації',
  'tooltip.error': 'Відкрити документ для перегляду конфлікту збереження',
  'toast.error.documentIsOpen': 'Закрийте {count, plural, =1 {документ} few {{count} документи} other {{count} документів}}, щоб виконати цю дію.',
  'toast.error.exceedsQuota.personal': 'У вашому обліковому записі закінчилося місце для зберігання',
  'toast.error.exceedsQuota.enterprise': 'Закінчилося місце, зв\'яжіться з адміністратором, щоб отримати докладнішу інформацію.',
  'toast.operation.duplicate.error': 'Не вдалося створити дублікат: {count, plural, =1 {елемент} few {{count} елементи} many {{count} елементів} other {{count} елементів}}.',
  'toast.operation.duplicate.success': 'Продубльовано: {count, plural, =1 {елемент} few {{count} елементи} many {{count} елементів} other {{count} елементів}}.',
  'toast.operation.archive.error': 'Не вдалося видалити {count, plural, =1 {елемент} few {{count} елементи} other {{count} елементів}}.',
  'toast.operation.archive.error.otherAppUncommittedChanges': 'Не можна можете видалити файли, відкриті в інших програмах. Закрийте їх, а потім спробуйте ще раз.',
  'toast.operation.archive.undo.error': 'Не вдалося видалити {count, plural, =1 {елемент} few {{count} елементи} other {{count} елементів}}.',
  'toast.operation.archive.success': '{count, plural, =1 {елемент} few {{count} елементи} other {{count} елементів}} видалено.',
  'toast.operation.archive.undo.success': 'Відновлення скасовано.',
  'toast.operation.permdelete.error': 'Не вдалося остаточно видалити {count, plural, =1 {елемент} few {{count} елементи} other {{count} елементів}}.',
  'toast.operation.permdelete.success': '{count, plural, =1 {елемент} few {{count} елементи} other {{count} елементів}} видалено остаточно.',
  'toast.operation.rename.error': 'Не вдалося перейменувати елемент.',
  'toast.operation.rename.undo.error': 'Не вдалося перейменувати елемент.',
  'toast.operation.rename.error.duplicateName': 'У вас тут уже є елемент з таким ім’ям.',
  'toast.operation.rename.undo.error.duplicateName': 'У вас тут уже є елемент з таким ім’ям.',
  'toast.operation.rename.success': 'Елемент перейменовано.',
  'toast.operation.rename.undo.success': 'Перейменування скасовано.',
  'toast.operation.move.error': 'Не вдалося перемістити {count, plural, =1 {елемент} few {{count} елементи} other {{count} елементів}}.',
  'toast.operation.move.undo.error': 'Не вдалося перемістити {count, plural, =1 {елемент} few {{count} елементи} other {{count} елементів}}.',
  'toast.operation.move.error.duplicateFolderName': 'У вас тут уже є папка з таким ім’ям.',
  'toast.operation.move.undo.error.duplicateFolderName': 'У вас тут уже є папка з таким ім’ям.',
  'toast.operation.move.error.duplicateDocName': '{count, plural, =1 {У цій папці вже є документ із таким ім’ям. Надайте інше ім’я й повторіть спробу.} other {Документи неможливо перенести через наявність документів із таким самим ім’ям.}}',
  'toast.operation.move.undo.error.duplicateDocName': '{count, plural, =1 {У цій папці вже є документ із таким ім’ям. Надайте інше ім’я і повторіть спробу.} other {Документи неможливо перенести через наявність документів із таким самим ім’ям.}}',
  'toast.operation.move.success': '{count, plural, =1 {елемент} few {{count} елементи} other {{count} елементів}} перенесено.',
  'toast.operation.move.undo.success': 'Переміщення скасовано.',
  'toast.operation.unarchive.error': 'Не вдалося відновити {count, plural, =1 {елемент} few {{count} елементи} other {{count} елементів}}.',
  'toast.operation.unarchive.undo.error': 'Не вдалося відновити {count, plural, =1 {елемент} few {{count} елементи} other {{count} елементів}}.',
  'toast.operation.unarchive.success': '{count, plural, =1 {елемент} few {{count} елементи} other {{count} елементів}} відновлено.',
  'toast.operation.unarchive.undo.success': 'Видалення скасовано.',
  'toast.operation.create_new_folder.success': 'Папку створено.',
  'toast.operation.create_new_folder.error': 'Не вдалося створити нову папку.',
  'toast.operation.create_new_folder.error.duplicateName': 'У вас тут уже є папка з таким ім’ям.',
  'toast.operation.user_pin.success': '{count, plural, =1 {Елемент доступний} few {{count} елементи доступні} other {{count} елементів доступні}} в автономному режимі.',
  'toast.operation.user_pin.error': 'Не вдалося налаштувати {count, plural, =1 {елемент} few {{count} елементи} other {{count} елементів}} для роботи в автономному режимі.',
  'toast.operation.user_unpin.success': '{count, plural, =1 {Елемент доступний} few {{count} елементи доступні} other {{count} елементів доступні}} лише в мережі.',
  'toast.operation.user_unpin.error': 'Не вдалося налаштувати {count, plural, =1 {елемент} few {{count} елементи} other {{count} елементів}} для роботи лише в мережі.',
  'toast.operation.resolve_sync_error.success': 'Копію «{name}» створено. Ви можете порівняти обидва документи й узгодити всі відмінності.',
  'toast.ccd.scroll_to_item.fetching': 'Отримання файлу…',
  'toast.ccd.scroll_to_item.error': 'Файл не знайдено',
  'toast.info.disabled_rename_to_open_item': 'Документи минулих версій XD спочатку потрібно відкрити, перш ніж їх можна буте перейменувати тут.',
  'toast.action.disabled_rename_to_open_item': 'Відкрити документ',
  'toast.error.rename.invalidName': 'На жаль, ця назва містить неприпустимі символи.',
  'toast.error.rename.invalidChar': 'Назва не може містити такі символи: {characters}',
  'toast.error.rename.invalidEnd': 'Назва не може закінчуватися крапкою («.») або пробілом.',
  'toast.error.rename.charRestriction': 'Довжина імен не може перевищувати 200 символів.',
  'toast.error.rename.duplicateName': 'У вас тут уже є хмарний документ із таким ім’ям.',
  'toast.success.reportAbuse': 'Звіт про порушення успішно надіслано',
  'toast.error.reportAbuse': 'Не вдалося повідомити про порушення',
  'toast.operation.undoLabel': 'Скасувати',
  'dialog.permdelete.heading': 'Видалити остаточно',
  'dialog.permdelete.warning': 'Цю дію неможливо скасувати. Ось що буде видалено остаточно:',
  'dialog.permdelete.cancelButton': 'Скасувати',
  'dialog.permdelete.confirmButton': 'Видалити остаточно',
  'dialog.permdelete.countItems': '{count, plural, =1 {# елемент} few {# елементи} other {# елементів}}',
  'dialog.nonemptyfolder.heading': 'Дійсно бажаєте видалити {count, plural, =1 {цю папку} other {ці папки}}?',
  'dialog.nonemptyfolder.warning': '{count, plural, =1 {Ця папка не порожня й може} other {Ці папки не порожні й можуть}} містити файли, які не відображаються в програмі {appName}. Можете продовжити видалення або переглянути {count, plural, =1 {папку} other {папки}} в Інтернеті щоб перевірити {count, plural, =1 {її} other {їхній}} вміст.  {viewOnWebLink}',
  'dialog.nonemptyfolder.cancelButton': 'Скасувати',
  'dialog.nonemptyfolder.confirmButton': 'Видалити',
  'dialog.nonemptyfolder.viewOnWebButton': 'Переглянути в Інтернеті',
  'dialog.addfolder.heading': 'Створити нову папку',
  'dialog.addfolder.cancelButton': 'Скасувати',
  'dialog.addfolder.confirmButton': 'Зберегти',
  'dialog.addfolder.placeholder': 'Нова папка',
  'dialog.addfolder.invalidChar': 'Імена не можуть містити такі символи: {characters}',
  'dialog.addfolder.invalidName': 'На жаль, назва цієї папки містить неприпустимі символи.',
  'dialog.addfolder.invalidEnd': 'Назва не може закінчуватися крапкою («.») або пробілом.',
  'dialog.addfolder.duplicateName': 'У вас тут уже є папка з таким ім’ям.',
  'dialog.addfolder.charRestriction': 'Довжина імен не може перевищувати 200 символів.',
  'dialog.moveFolder.heading': 'Перемістити до...',
  'dialog.moveFolder.cancelButton': 'Скасувати',
  'dialog.moveFolder.moveButton': 'Перемістити',
  'dialog.moveFolder.createNewFolderButton': 'Додати папку',
  'dialog.reportAbuse.cancelButton': 'Скасувати',
  'dialog.reportAbuse.reportAbuseButton': 'Повідомити про порушення',
  'dialog.reportAbuse.heading': 'Повідомити про порушення',
  'dialog.reportAbuse.emailInput': 'Ваша адреса ел. пошти',
  'dialog.reportAbuse.nameInput': 'Ваше ім’я',
  'dialog.reportAbuse.radioButtonText': 'Чому ви повідомляєте про цей контент?',
  'dialog.reportAbuse.defamation': 'Наклеп',
  'dialog.reportAbuse.hate': 'Расистський/ненависницький вміст',
  'dialog.reportAbuse.trademark': 'Зазіхання на торговий знак',
  'dialog.reportAbuse.pornography': 'Непристойний вміст',
  'dialog.reportAbuse.vulgar': 'Образливий вміст',
  'dialog.reportAbuse.other': 'Інше',
  'dialog.reportAbuse.inappropriate': 'Недоречно',
  'dialog.reportAbuse.age': 'Неточність щодо віку',
  'dialog.reportAbuse.gender': 'Неточність щодо статі',
  'dialog.reportAbuse.description': 'Якщо ви вважаєте, що цей контент Creative Cloud порушує умови використання Adobe, повідомте про нього за допомогою цієї короткої форми.',
  'dialog.reportAbuse.describeConcern': 'Опишіть проблему',
  'dialog.reportAbuse.success': 'Звіт про порушення успішно надіслано',
  'dialog.reportAbuse.failure': 'Не вдалося повідомити про порушення',
  'dialog.reportAbuse.textAreaTitle': 'Поясніть, що вас непокоїть',
  'dialog.reportAbuse.required': 'Обов’язкові',
  'dialog.cachefull.title': 'Неможливо зробити доступним в автономному режимі',
  'dialog.cachefull.message': 'На вашому пристрої немає вільного місця. Створюйте документи лише в Інтернеті для звільнення місця.',
  'dialog.cachefull.confirm': 'OK',
  'dialog.syncError.heading': 'Цей документ припинив синхронізацію з хмарою',
  'dialog.syncError.body1': 'Рекомендуємо зберегти останню версію як копію і відновити документ до останньої версії, збереженої у хмарі.',
  'dialog.syncError.body2': 'Ви можете відкривати й редагувати цей документ, але зміни не будуть збережені в хмарі.',
  'dialog.syncError.offline': 'Потрібно бути в мережі, щоб зберегти копію та відновити оригінал.',
  'dialog.syncError.learnMore': 'Докладніше',
  'dialog.syncError.resolveButton': 'Збережіть копію і відновіть',
  'dialog.syncError.openButton': 'Відкрити',
  'dialog.syncErrorCopyFail.heading': 'Не вдається записати копію',
  'dialog.syncErrorCopyFail.body1': 'Ви як і раніше можете відкривати й редагувати цей документ, але зміни не будуть збережені в хмарі.',
  'dialog.syncErrorCopyFail.body2': 'Зверніться до служби підтримки клієнтів Adobe для отримання додаткової допомоги. (Помилка: LocalContentSyncSuspended)',
  'dialog.syncErrorCopyFail.closeButton': 'Закрити',
  'dialog.syncErrorCopyFail.contactUs': 'Зв’язатися з нами',
  'dialog.syncErrorPurgeFail.heading': 'Не вдалося відновити до останньої версії, збереженої у хмарі',
  'dialog.syncErrorPurgeFail.body1': 'Копію документа створено, але не вдалося відновити документ до останньої збереженої версії у хмарі.',
  'dialog.syncErrorPurgeFail.body2': 'Зверніться до служби підтримки клієнтів Adobe для отримання додаткової допомоги. (Помилка: LocalContentSyncSuspended)',
  'dialog.syncErrorPurgeFail.closeButton': 'Закрити',
  'dialog.syncErrorPurgeFail.contactUs': 'Зв’язатися з нами',
  'onboardingCdo.banner.title.sprk': 'Кращий спосіб роботи',
  'onboardingCdo.banner.title.phxs': 'Використовуєте Photoshop на iPad? Спробуйте хмарні документи',
  'onboardingCdo.banner.title.ilst': 'Тепер можна використовувати хмарні документи в Illustrator',
  'onboardingCdo.banner.title.idsn': 'Тепер можна використовувати хмарні документи в InDesign',
  'onboardingCdo.banner.message.sprk': 'Редагуйте свої хмарні документи в будь-якому місці, навіть без підключення до мережі. Зміни зберігаються автоматично та доступні для перегляду в історії документів. Діліться документами з іншими користувачами та з легкістю співпрацюйте в режимі реального часу.',
  'onboardingCdo.banner.message.phxs': 'Хмарні документи автоматично зберігаються в хмарному сховищі Adobe під час роботи, щоб ви могли отримати доступ до своїх файлів із настільного комп’ютера або пристрою iPad.',
  'onboardingCdo.banner.message.ilst': 'Хмарні документи у програмі Illustrator зберігаються автоматично в хмарному сховищі Adobe під час роботи. Також можна подивитись історію версій, щоб побачити, як змінювалась ваша робота.',
  'onboardingCdo.banner.message.idsn': 'Хмарні документи InDesign автоматично зберігаються в хмарі Adobe під час роботи.',
  'onboardingCdo.banner.linkTitle': 'Докладніше',
  'onboardingCdo.banner.confirm': 'ОК',
  'operation.progress.archive': 'Видалення {batchSize, plural, =1 {1 елемента} other {{inProgressNum} з {batchSize} елементів}}...',
  'operation.progress.unarchive': 'Відновлення {batchSize, plural, =1 {1 елемента} other {{inProgressNum} з {batchSize} елементів}}...',
  'operation.progress.move': 'Переміщення {batchSize, plural, =1 {1 елемента} other {{inProgressNum} з {batchSize} елементів}}...',
  'operation.progress.permdelete': 'Повне видалення {batchSize, plural, =1 {1 елемента} other {{inProgressNum} з {batchSize} елементів}}...',
  'operation.progress.rename': 'Перейменування {batchSize, plural, =1 {1 елемента} other {{inProgressNum} з {batchSize} елементів}}...',
  'operation.progress.create_new_folder': 'Створення нової папки...',
  'operation.progress.duplicate': 'Створення дубліката: {batchSize, plural, =1 {1 елемент} other {{inProgressNum} із {batchSize} елементів}}...',
  'operation.progress.user_pin': 'Налаштування {batchSize, plural, =1 {1 елемента} other {{inProgressNum} з {batchSize} елементів}} для роботи в автономному режимі...',
  'operation.progress.user_unpin': 'Налаштування {batchSize, plural, =1 {1 елемента} other {{inProgressNum} з {batchSize} елементів}} для роботи лише в мережі...',
  'operation.progress.resolve_sync_error': 'Копіювання й відновлення до останньої збереженої версії у хмарі...',
  'tooltip.offline.general': 'Потребує з’єднання з Інтернетом.',
  'tooltip.offline.create-new-folder': 'Для створення папок потрібне з’єднання з Інтернетом.',
  'tooltip.offline.move': 'Для переміщення елементів потрібне з’єднання з Інтернетом.',
  'tooltip.syncing.disabled': 'Очікує завершення синхронізації',
  'tooltip.rename.disabled': 'Вибраний документ неможливо перейменувати. Відкрийте його в основній програмі, щоб дозволити перейменування.',
  'tooltip.rename.disabled.sprk': 'Цей файл неможливо перейменувати, поки не відкрити його в XD.',
  'tooltip.syncSuspended.needsAction': 'Синхронізацію припинено. Відкрити, щоби вжити заходів.',
  'tooltip.syncSuspended.noAction': 'Синхронізацію зупинено. Наразі ця дія заборонена.',
  'Recents.title': 'Нещодавні',
  'Recents.cloudDocTitle': 'ХМАРНИЙ ДОКУМЕНТ',
  'Recents.error.subtext.coreSync': 'Нещодавно створені документи наразі недоступні, оскільки синхронізація Creative Cloud не працює належним чином.',
  'item.saveForOfflineIconToolTip': 'Цей документ було завантажено та повністю доступно в автономному режимі.',
  'item.disconnected.cloudonly': 'Зв’язок втрачено. Відновіть зв’язок, щоб відкрити документ.',
  'item.coresyncdown.cloudonly': 'Не вдається завантажити файл. Проблему може вирішити оновлення або перезапуск Creative Cloud.',
  'folder.subtitle': 'ПАПКА',
  'review.subtitle': 'ПЕРЕВІРИТИ',
  'prototype.subtitle': 'ПРОТОТИП',
  'designspecs.subtitle': 'СПЕЦИФІКАЦІЇ ПРОЕКТУ',
  'project.subtitle': 'ПРОЄКТ',
  'library.subtitle': 'БІБЛІОТЕКА',
  'webLink.subtitle': 'ВЕБ-ПОСИЛАННЯ',
  'abbreviations.fileSize.byte': 'Б',
  'abbreviations.fileSize.kilobyte': 'КБ',
  'abbreviations.fileSize.megabyte': 'MБ',
  'abbreviations.fileSize.gigabyte': 'ГБ',
  'abbreviations.fileSize.terabyte': 'ТБ',
  'sam.copyNameFormat': '%@ копія',
  'cloudsync.quota.title': 'ХМАРНЕ СХОВИЩЕ',
  'cloudsync.quota.percentage': '{percentageUsed}%',
  'cloudsync.quota.usage': 'Використано {usedCloudQuotaString} з {maxCloudQuotaString}',
  'cloudsync.quota.warning': 'Ваше хмарне сховище заповнено. Перейдіть на сховище більшого розміру, щоб продовжити синхронізувати свою роботу.',
  'cloudsync.quota.error': 'Інформація щодо сховища недоступна...',
  'cloudsync.quota.upgrade': 'Оновити',
  'cloudsync.status.complete.title': 'Синхронізовано й створено резервну копію',
  'cloudsync.status.syncing.title': 'Виконується синхронізація хмарних документів',
  'cloudsync.status.syncing.descr': '{progress}/{total}',
  'cloudsync.status.offline.title': 'Робота в автономному режимі',
  'cloudsync.status.offline.descr': 'Дані зберігаються в локальному сховищі. Документи синхронізуються з хмарою після відновлення з’єднання.',
  'cloudsync.status.disabled.title': 'Синхронізацію вимкнено',
  'cloudsync.status.disabled.descr': 'Дані зберігаються в локальному сховищі. Документи синхронізуються з хмарою, коли сховище буде доступно.',
  'cloudsync.item.progress.determinate': '{progress}/{total}',
  'cloudsync.item.progress.indeterminate': 'Синхронізація...',
  'cloudsync.item.complete': 'Готово',
  'cloudsync.items.header': 'Активність у мережі',
  'cloudsync.alert.title.coresync.down': 'Не вдалося завантажити',
  'cloudsync.alert.subtext.coresync.down': 'Хмара не синхронізується. Переконайтеся, що Creative Cloud оновлено, або спробуйте перезапустити програму.',
  'cloudsync.alert.subtext.coresync.down.learnmore': 'Докладніше',
  'cloudsync.tooltip.offline': 'Від’єднано',
  'cloudsync.tooltip.error': 'Помилка',
  'cloudsync.tooltip.syncing': 'Збереження...',
  'cloudsync.tooltip.default': 'Збережені',
  'cloudsync.singleDoc.offline.title': 'Від’єднано',
  'cloudsync.singleDoc.offline.descr': 'Спроба повторного підключення…',
  'cloudsync.singleDoc.offline.timestamp': 'Востаннє синхронізовано {time}',
  'cloudsync.singleDoc.error.samInitFail.title': 'Синхронізацію з хмарою зупинено',
  'cloudsync.singleDoc.error.samInitFail.descr': 'Перезапустіть цю програму, щоб і надалі синхронізувати свою роботу.',
  'cloudsync.singleDoc.error.syncSuspended.title': 'Синхронізацію з хмарою зупинено',
  'cloudsync.singleDoc.error.syncSuspended.descr': 'Перезапустіть цю програму, щоб і надалі синхронізувати свою роботу.',
  'cloudsync.singleDoc.error.title': 'Не вдалося завантажити',
  'cloudsync.singleDoc.error.descr': 'Хмара не синхронізується. Переконайтеся, що Creative Cloud оновлено, або спробуйте перезапустити програму.',
  'cloudsync.singleDoc.error.learnMore': 'Докладніше',
  'cloudsync.singleDoc.disabled.quotaExceeded.title': 'Ваше хмарне сховище заповнено',
  'cloudsync.singleDoc.disabled.quotaExceeded.descr': 'Оновіть Creative Cloud, щоб і надалі синхронізувати свою роботу.',
  'cloudsync.singleDoc.syncing.title': 'Збереження…',
  'cloudsync.singleDoc.syncing.descr': 'Виконується',
  'cloudsync.singleDoc.disabled.title': 'Не вдається зберегти',
  'cloudsync.singleDoc.disabled.descr': 'У вашому обліковому записі закінчилося місце для зберігання.',
  'cloudsync.singleDoc.complete.title': 'Файл записано',
  'cloudsync.singleDoc.complete.timestamp': 'Востаннє синхронізовано {time}'
};

/***/ }),

/***/ "DLvh":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var curves = exports;

var hash = __webpack_require__("fZJM");

var curve = __webpack_require__("QTa/");

var utils = __webpack_require__("86MQ");

var assert = utils.assert;

function PresetCurve(options) {
  if (options.type === 'short') this.curve = new curve.short(options);else if (options.type === 'edwards') this.curve = new curve.edwards(options);else this.curve = new curve.mont(options);
  this.g = this.curve.g;
  this.n = this.curve.n;
  this.hash = options.hash;
  assert(this.g.validate(), 'Invalid curve');
  assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');
}

curves.PresetCurve = PresetCurve;

function defineCurve(name, options) {
  Object.defineProperty(curves, name, {
    configurable: true,
    enumerable: true,
    get: function () {
      var curve = new PresetCurve(options);
      Object.defineProperty(curves, name, {
        configurable: true,
        enumerable: true,
        value: curve
      });
      return curve;
    }
  });
}

defineCurve('p192', {
  type: 'short',
  prime: 'p192',
  p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',
  a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',
  b: '64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1',
  n: 'ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831',
  hash: hash.sha256,
  gRed: false,
  g: ['188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012', '07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811']
});
defineCurve('p224', {
  type: 'short',
  prime: 'p224',
  p: 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001',
  a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',
  b: 'b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4',
  n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d',
  hash: hash.sha256,
  gRed: false,
  g: ['b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21', 'bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34']
});
defineCurve('p256', {
  type: 'short',
  prime: null,
  p: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',
  a: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',
  b: '5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b',
  n: 'ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',
  hash: hash.sha256,
  gRed: false,
  g: ['6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296', '4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5']
});
defineCurve('p384', {
  type: 'short',
  prime: null,
  p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' + 'fffffffe ffffffff 00000000 00000000 ffffffff',
  a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' + 'fffffffe ffffffff 00000000 00000000 fffffffc',
  b: 'b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f ' + '5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef',
  n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' + 'f4372ddf 581a0db2 48b0a77a ecec196a ccc52973',
  hash: hash.sha384,
  gRed: false,
  g: ['aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 ' + '5502f25d bf55296c 3a545e38 72760ab7', '3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 ' + '0a60b1ce 1d7e819d 7a431d7c 90ea0e5f']
});
defineCurve('p521', {
  type: 'short',
  prime: null,
  p: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' + 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' + 'ffffffff ffffffff ffffffff ffffffff ffffffff',
  a: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' + 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' + 'ffffffff ffffffff ffffffff ffffffff fffffffc',
  b: '00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b ' + '99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd ' + '3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00',
  n: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' + 'ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 ' + 'f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409',
  hash: hash.sha512,
  gRed: false,
  g: ['000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 ' + '053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 ' + 'a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66', '00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 ' + '579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 ' + '3fad0761 353c7086 a272c240 88be9476 9fd16650']
});
defineCurve('curve25519', {
  type: 'mont',
  prime: 'p25519',
  p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',
  a: '76d06',
  b: '1',
  n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',
  hash: hash.sha256,
  gRed: false,
  g: ['9']
});
defineCurve('ed25519', {
  type: 'edwards',
  prime: 'p25519',
  p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',
  a: '-1',
  c: '1',
  // -121665 * (121666^(-1)) (mod P)
  d: '52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3',
  n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',
  hash: hash.sha256,
  gRed: false,
  g: ['216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a', // 4/5
  '6666666666666666666666666666666666666666666666666666666666666658']
});
var pre;

try {
  pre = __webpack_require__("QJsb");
} catch (e) {
  pre = undefined;
}

defineCurve('secp256k1', {
  type: 'short',
  prime: 'k256',
  p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',
  a: '0',
  b: '7',
  n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',
  h: '1',
  hash: hash.sha256,
  // Precomputed endomorphism
  beta: '7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',
  lambda: '5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',
  basis: [{
    a: '3086d221a7d46bcde86c90e49284eb15',
    b: '-e4437ed6010e88286f547fa90abfe4c3'
  }, {
    a: '114ca50f7a8e2f3f657c1108d9d44cfd8',
    b: '3086d221a7d46bcde86c90e49284eb15'
  }],
  gRed: false,
  g: ['79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798', '483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8', pre]
});

/***/ }),

/***/ "DN9X":
/***/ (function(module, exports, __webpack_require__) {

module.exports = __webpack_require__.p + "assets/start/XD_Preset_Mobile@2X.png";

/***/ }),

/***/ "DP5k":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

const _excluded = ["styles"];

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }

function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

var _default = _ref => {
  let {
    styles = {}
  } = _ref,
      props = _objectWithoutProperties(_ref, _excluded);

  return /*#__PURE__*/_react.default.createElement("svg", _extends({
    xmlns: "http://www.w3.org/2000/svg",
    viewBox: "0 0 176.086 113"
  }, props), /*#__PURE__*/_react.default.createElement("defs", null), /*#__PURE__*/_react.default.createElement("g", {
    id: "Group_63308",
    "data-name": "Group 63308",
    transform: "translate(-860.879 -421.5)"
  }, /*#__PURE__*/_react.default.createElement("path", {
    id: "Line_11",
    "data-name": "Line 11",
    className: styles["cls-1"] || "cls-1",
    transform: "translate(875.571 439.369)",
    d: "M159.762 0H0"
  }), /*#__PURE__*/_react.default.createElement("path", {
    id: "Line_12",
    "data-name": "Line 12",
    className: styles["cls-1"] || "cls-1",
    transform: "translate(886.048 431.512)",
    d: "M13.095 0H0"
  }), /*#__PURE__*/_react.default.createElement("path", {
    id: "Path_1099",
    "data-name": "Path 1099",
    className: styles["cls-2"] || "cls-2",
    d: "M807.8 78.762v30.119a2.627 2.627 0 0 0 2.619 2.619h154.524a2.627 2.627 0 0 0 2.619-2.619V4.119a2.627 2.627 0 0 0-2.619-2.619H810.419a2.627 2.627 0 0 0-2.619 2.619v35.357",
    transform: "translate(67.902 421.5)"
  }), /*#__PURE__*/_react.default.createElement("path", {
    id: "Line_13",
    "data-name": "Line 13",
    className: styles["cls-2"] || "cls-2",
    transform: "translate(863 468.048)",
    d: "M0 25.143L25.274 0"
  }), /*#__PURE__*/_react.default.createElement("path", {
    id: "Line_14",
    "data-name": "Line 14",
    className: styles["cls-2"] || "cls-2",
    transform: "translate(863 468.048)",
    d: "M25.274 25.143L0 0"
  })));
};

exports.default = _default;

/***/ }),

/***/ "DQ2B":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("2vnA");
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("C0qj");
/* harmony import */ var _SAMSourceProvider__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("Mz2I");
/* harmony import */ var _AssetCollection__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("Q5CW");
/* harmony import */ var _ccx_public_acpl_model_uxp_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("XQlG");
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
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;
};
var __metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var _a, _b, _c, _d;





class SAMSourceProviderCollection extends _AssetCollection__WEBPACK_IMPORTED_MODULE_3__[/* default */ "c"] {
    constructor(config, context) {
        super(config, context);
        this.collectionFetchState = _constants__WEBPACK_IMPORTED_MODULE_1__[/* ProcessingState */ "n"].Pending;
        this.types = new Set();
        // SAM SWY source is not usable when offline
        this.excludeLocal = true;
        this.needsRefresh = true;
        this.needsRefreshWhenOnline = false;
        if (this.SAMAssetContext.cloudSyncStatus !== _ccx_public_acpl_model_uxp_types__WEBPACK_IMPORTED_MODULE_4__[/* ACPLModel */ "a"].CloudSyncStatus.Initializing) {
            this.onSAMCloudSyncStatusChange(this.SAMAssetContext.cloudSyncStatus);
        }
        Object(mobx__WEBPACK_IMPORTED_MODULE_0__[/* reaction */ "B"])(() => this.SAMAssetContext.cloudSyncStatus, this.onSAMCloudSyncStatusChange.bind(this));
    }
    setNeedsRefresh() {
        this.needsRefresh = true;
    }
    get SAMAssetContext() {
        return this.context.SAMAssetContext;
    }
    onSAMCloudSyncStatusChange(status) {
        const { Offline, NotStarted, Disabled, Synchronized, InProgress, ErrorQuotaExceeded, ErrorSyncDown, ErrorOther, } = _ccx_public_acpl_model_uxp_types__WEBPACK_IMPORTED_MODULE_4__[/* ACPLModel */ "a"].CloudSyncStatus;
        const needRefreshStates = new Set([Offline, ErrorSyncDown, ErrorOther]);
        // `ErrorOther` occurs when a particular asset received an `AssetSyncNotification::SyncStatus::SYNC_ERROR`
        // SAM-919 has been created to introduce a specific `CloudSyncStatus` error for this notification.
        const refreshableStates = new Set([
            NotStarted,
            Synchronized,
            InProgress,
            Disabled,
            ErrorQuotaExceeded,
        ]);
        if (needRefreshStates.has(status)) {
            // something bad potentially happened so set a flag to allow next listing request
            this.needsRefreshWhenOnline = true;
        }
        if (refreshableStates.has(status) && this.needsRefreshWhenOnline) {
            // something bad potentially happened so allow next listing request
            this.needsRefreshWhenOnline = false;
            this.needsRefresh = true;
        }
    }
    async performInitialization() {
        await this.context.waitForAuthInitialization(this.constructor.name);
        Object(mobx__WEBPACK_IMPORTED_MODULE_0__[/* runInAction */ "C"])(() => {
            if (this.sourceProvider) {
                this.debug('performInitialization', 'using previous SAMSourceProvider');
                return;
            }
            this.debug('performInitialization', 'creating new SAMSourceProvider');
            this.sourceProvider = new _SAMSourceProvider__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"](this, this.context.source, this.logger);
        });
    }
    get fetchState() {
        if (this.collectionFetchState === _constants__WEBPACK_IMPORTED_MODULE_1__[/* ProcessingState */ "n"].Error) {
            return _constants__WEBPACK_IMPORTED_MODULE_1__[/* ProcessingState */ "n"].Error;
        }
        if (!this.sourceProvider) {
            return _constants__WEBPACK_IMPORTED_MODULE_1__[/* ProcessingState */ "n"].Pending;
        }
        return this.sourceProvider.fetchState;
    }
    // Collection tries to initialize fetchState, but it needs to be computed,
    // so ignore assignments to fetchState with an empty setter.
    // eslint-disable-next-line class-methods-use-this,no-empty-function
    set fetchState(fs) { }
    setFetchState(newState) {
        this.collectionFetchState = newState;
    }
    async performFetch(criteria, localOnly, correlationId) {
        // performFetch gets called for each page.  So if we've finished all the pages
        // and get another performFetch, ignore it.
        if (!localOnly) {
            if (this.fetchState === _constants__WEBPACK_IMPORTED_MODULE_1__[/* ProcessingState */ "n"].Done && !this.needsRefresh && !this.isStale) {
                return null;
            }
            this.needsRefresh = false;
        }
        this.lastPerformFetchTime = Date.now();
        return this.sourceProvider.performFetch(criteria, localOnly, correlationId);
    }
    getNextPageCriteria(results, criteria, localOnly) {
        return this.sourceProvider.getNextPageCriteria(results, criteria, localOnly);
    }
    get isStale() {
        return (this.fetchWhenStale &&
            Date.now() - this.lastPerformFetchTime > _AssetCollection__WEBPACK_IMPORTED_MODULE_3__[/* default */ "c"].STALE_TIME_MS);
    }
    get canHaveMultipleMimetypes() {
        // no mimetypes means all types
        return this.types.size !== 1;
    }
    // refactor someday to share with FolderCollection
    get filteredElements() {
        if (this.types.size === 0) {
            // no filtering needed
            return this.elements;
        }
        return this.elements.filter(element => this.types.has(element.type.toLowerCase()));
    }
    setTypes(types) {
        this.types = new Set(types.map(type => type.toLowerCase()));
    }
    // might make sense for future-proofing to have classes call these no-op methods
    // SAM + autorun manages extracting models from API response
    // eslint-disable-next-line class-methods-use-this
    extractElements() {
        return [];
    }
    // SAM + autorun manages merging
    // eslint-disable-next-line class-methods-use-this
    mergeElements() { }
    // metadata can be retrieved from this.samFolder
    // eslint-disable-next-line class-methods-use-this
    updateLastFetchMetadataFromResults() { }
    // SAM + autorun manages removing items not returned by search
    // eslint-disable-next-line class-methods-use-this
    removeDeletedElements() { }
}
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", typeof (_a = typeof _constants__WEBPACK_IMPORTED_MODULE_1__[/* ProcessingState */ "n"] !== "undefined" && _constants__WEBPACK_IMPORTED_MODULE_1__[/* ProcessingState */ "n"]) === "function" ? _a : Object)
], SAMSourceProviderCollection.prototype, "collectionFetchState", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", typeof (_b = typeof Set !== "undefined" && Set) === "function" ? _b : Object)
], SAMSourceProviderCollection.prototype, "types", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", typeof (_c = typeof _SAMSourceProvider__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"] !== "undefined" && _SAMSourceProvider__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"]) === "function" ? _c : Object)
], SAMSourceProviderCollection.prototype, "sourceProvider", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [Object])
], SAMSourceProviderCollection.prototype, "fetchState", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [typeof (_d = typeof _constants__WEBPACK_IMPORTED_MODULE_1__[/* ProcessingState */ "n"] !== "undefined" && _constants__WEBPACK_IMPORTED_MODULE_1__[/* ProcessingState */ "n"]) === "function" ? _d : Object]),
    __metadata("design:returntype", void 0)
], SAMSourceProviderCollection.prototype, "setFetchState", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], SAMSourceProviderCollection.prototype, "canHaveMultipleMimetypes", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], SAMSourceProviderCollection.prototype, "filteredElements", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [Array]),
    __metadata("design:returntype", void 0)
], SAMSourceProviderCollection.prototype, "setTypes", null);
/* harmony default export */ __webpack_exports__["a"] = (SAMSourceProviderCollection);


/***/ }),

/***/ "DRgB":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("xAep"),
      24: __webpack_require__("TqDl")
    }
  }));
};

WrappedIcon.displayName = 'Undo';
exports.default = WrappedIcon;

/***/ }),

/***/ "DSRE":
/***/ (function(module, exports, __webpack_require__) {

/* WEBPACK VAR INJECTION */(function(module) {var root = __webpack_require__("Kz5y"),
    stubFalse = __webpack_require__("B8du");
/** Detect free variable `exports`. */


var freeExports =  true && exports && !exports.nodeType && exports;
/** Detect free variable `module`. */

var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;
/** Detect the popular CommonJS extension `module.exports`. */

var moduleExports = freeModule && freeModule.exports === freeExports;
/** Built-in value references. */

var Buffer = moduleExports ? root.Buffer : undefined;
/* Built-in method references for those with the same name as other `lodash` methods. */

var nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;
/**
 * Checks if `value` is a buffer.
 *
 * @static
 * @memberOf _
 * @since 4.3.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.
 * @example
 *
 * _.isBuffer(new Buffer(2));
 * // => true
 *
 * _.isBuffer(new Uint8Array(2));
 * // => false
 */

var isBuffer = nativeIsBuffer || stubFalse;
module.exports = isBuffer;
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("YuTi")(module)))

/***/ }),

/***/ "DTqw":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* unused harmony export getNumberOfUrlSegments */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return parseUrl; });
/* unused harmony export stripUrlQueryAndFragment */
/**
 * Parses string form of URL into an object
 * // borrowed from https://tools.ietf.org/html/rfc3986#appendix-B
 * // intentionally using regex and not <a/> href parsing trick because React Native and other
 * // environments where DOM might not be available
 * @returns parsed URL object
 */
function parseUrl(url) {
  if (!url) {
    return {};
  }

  const match = url.match(/^(([^:/?#]+):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?$/);

  if (!match) {
    return {};
  } // coerce to undefined values to empty string so we don't get 'undefined'


  const query = match[6] || '';
  const fragment = match[8] || '';
  return {
    host: match[4],
    path: match[5],
    protocol: match[2],
    relative: match[5] + query + fragment // everything minus origin

  };
}
/**
 * Strip the query string and fragment off of a given URL or path (if present)
 *
 * @param urlPath Full URL or path, including possible query string and/or fragment
 * @returns URL or path without query string or fragment
 */


function stripUrlQueryAndFragment(urlPath) {
  // eslint-disable-next-line no-useless-escape
  return urlPath.split(/[\?#]/, 1)[0];
}
/**
 * Returns number of URL segments of a passed string URL.
 */


function getNumberOfUrlSegments(url) {
  // split at '/' or at '\/' to split regex urls correctly
  return url.split(/\\?\//).filter(s => s.length > 0 && s !== ',').length;
}



/***/ }),

/***/ "DUhp":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("path", {
  d: "M17 0a17 17 0 1 0 17 17A17 17 0 0 0 17 0zm13.749 16h-5.571a27.114 27.114 0 0 0-.853-6h4.547a13.685 13.685 0 0 1 1.877 6zm-3.311-8H23.7a14.691 14.691 0 0 0-2.2-4.04A13.865 13.865 0 0 1 27.438 8zM16 18v6h-4.268a24.768 24.768 0 0 1-.911-6zm-5.179-2a24.768 24.768 0 0 1 .911-6H16v6zM18 18h5.179a24.768 24.768 0 0 1-.911 6H18zm0-2v-6h4.268a24.768 24.768 0 0 1 .911 6zm3.568-8H18V3.619C19.307 4.158 20.6 5.7 21.568 8zM16 3.619V8h-3.568C13.4 5.7 14.693 4.158 16 3.619zm-3.5.341A14.691 14.691 0 0 0 10.3 8H6.562A13.865 13.865 0 0 1 12.5 3.96zM5.128 10h4.547a27.114 27.114 0 0 0-.853 6H3.251a13.685 13.685 0 0 1 1.877-6zm-1.877 8h5.571a27.114 27.114 0 0 0 .853 6H5.128a13.685 13.685 0 0 1-1.877-6zm3.311 8H10.3a14.691 14.691 0 0 0 2.2 4.04A13.865 13.865 0 0 1 6.562 26zm5.87 0H16v4.381c-1.307-.539-2.6-2.081-3.568-4.381zM18 30.381V26h3.568c-.968 2.3-2.261 3.842-3.568 4.381zm3.5-.341A14.691 14.691 0 0 0 23.7 26h3.743a13.865 13.865 0 0 1-5.943 4.04zM28.872 24h-4.547a27.114 27.114 0 0 0 .853-6h5.571a13.685 13.685 0 0 1-1.877 6z"
}));

/***/ }),

/***/ "DUuf":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var _UxpOptions = _interopRequireDefault(__webpack_require__("zvwv"));

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}
/*************************************************************************
* ADOBE CONFIDENTIAL
* ___________________
*
* Copyright 2019 Adobe
* All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains
* the property of Adobe and its suppliers, if any. The intellectual
* and technical concepts contained herein are proprietary to Adobe
* and its suppliers and are protected by all applicable intellectual
* property laws, including trade secret and copyright laws.
* Dissemination of this information or reproduction of this material
* is strictly forbidden unless prior written permission is obtained
* from Adobe.
**************************************************************************/


module.exports = _UxpOptions.default.select('Tooltip', () => __webpack_require__("FgZ1"), () => __webpack_require__("K0XK"), () => __webpack_require__("/GVU"));

/***/ }),

/***/ "DYGA":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("jAHb"),
      24: __webpack_require__("uT71")
    }
  }));
};

WrappedIcon.displayName = 'CloseCircle';
exports.default = WrappedIcon;

/***/ }),

/***/ "DZ0b":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


exports.__esModule = true;
exports.default = camelize;
var rHyphen = /-(.)/g;

function camelize(string) {
  return string.replace(rHyphen, function (_, chr) {
    return chr.toUpperCase();
  });
}

module.exports = exports["default"];

/***/ }),

/***/ "DaKv":
/***/ (function(module, exports, __webpack_require__) {

module.exports = __webpack_require__.p + "assets/projects/S_Illu_EmptyCanvasFile_Color09.png";

/***/ }),

/***/ "DaRl":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var assert = __webpack_require__("2j6C");

var inherits = __webpack_require__("P7XM");

var proto = {};

function CBCState(iv) {
  assert.equal(iv.length, 8, 'Invalid IV length');
  this.iv = new Array(8);

  for (var i = 0; i < this.iv.length; i++) this.iv[i] = iv[i];
}

function instantiate(Base) {
  function CBC(options) {
    Base.call(this, options);

    this._cbcInit();
  }

  inherits(CBC, Base);
  var keys = Object.keys(proto);

  for (var i = 0; i < keys.length; i++) {
    var key = keys[i];
    CBC.prototype[key] = proto[key];
  }

  CBC.create = function create(options) {
    return new CBC(options);
  };

  return CBC;
}

exports.instantiate = instantiate;

proto._cbcInit = function _cbcInit() {
  var state = new CBCState(this.options.iv);
  this._cbcState = state;
};

proto._update = function _update(inp, inOff, out, outOff) {
  var state = this._cbcState;
  var superProto = this.constructor.super_.prototype;
  var iv = state.iv;

  if (this.type === 'encrypt') {
    for (var i = 0; i < this.blockSize; i++) iv[i] ^= inp[inOff + i];

    superProto._update.call(this, iv, 0, out, outOff);

    for (var i = 0; i < this.blockSize; i++) iv[i] = out[outOff + i];
  } else {
    superProto._update.call(this, inp, inOff, out, outOff);

    for (var i = 0; i < this.blockSize; i++) out[outOff + i] ^= iv[i];

    for (var i = 0; i < this.blockSize; i++) iv[i] = inp[inOff + i];
  }
};

/***/ }),

/***/ "Db/q":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return INGEST_EVENT_IDS; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return INGEST_EVENT_SUBTYPES; });
/* unused harmony export _scrubStack */
/* harmony import */ var _LoggerWrapper_Logger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("43WE");
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/

const _logger = _LoggerWrapper_Logger__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].get('StartIngestUtil');
/**
 * Ingest specific constants for parameter keys
 */
const INGEST_PARAM_KEYS = {
    ENV_COM_NAME: 'CCX Start',
    PAGE_FIRSTRUN: 'First-run',
    EVENT_TYPE_INIT: 'initialize',
    EVENT_TYPE_VIDEO: 'view',
    // First Mile
    EVENT_TYPE_RENDER: 'render',
    EVENT_TYPE_CLICK: 'click',
    EVENT_TYPE_ERROR: 'error',
    EVENT_TYPE_INITIALIZE: 'init',
    EVENT_TYPE_DROP: 'drop',
    EVENT_TYPE_PERF: 'performance',
    EVENT_TYPE_MISC: 'misc',
    EVENT_TYPE_HOVER: 'hover',
    WORKFLOW_NAV: 'Navigation',
    WORKFLOW_INITIALIZE: 'Initialize',
    WORKFLOW_WORK: 'Work',
    WORKFLOW_SEARCH: 'Search',
    // First Mile
    WORKFLOW_HOME: 'Home',
    WORKFLOW_LEARN: 'Learn',
    WORKFLOW_TOAST: 'Toast',
    WORKFLOW_COACHMARK: 'Coachmark',
    WORKFLOW_DEFAULT: 'Home-Default',
    WORKFLOW_FALLBACK: 'Fallback',
    WORKFLOW_NGL: 'NGL',
    WORKFLOW_WHATS_NEW: 'Whats-New',
    WORKFLOW_USER_INTENT_DIALOG: 'User-Intent-Dialog',
    WORKFLOW_TOUT: 'Tout',
    WORKFLOW_NPS: 'NPS',
    CATEGORY_DESKTOP: 'DESKTOP',
    SUBCATEGORY_BUTTON_NEXT: 'Next',
    SUBCATEGORY_CARD: 'Engagement-stream',
    SUBCATEGORY_TRIALCLOCK: 'Trial-clock',
    SUBCATEGORY_PROFILE: 'Profile',
    SUBCATEGORY_CHANGETAB: 'Change-tab',
    SUBCATEGORY_LEGEND: 'Legend',
    SUBCATEGORY_BUY: 'Buy',
    SUBCATEGORY_RECENT: 'Recentfile',
    SUBCATEGORY_SEARCH: 'Search',
    SUBCATEGORY_SEARCH_RESULTS: 'All-results',
    SUBCATEGORY_SEARCH_BAR: 'Search-bar',
    SUBCATEGORY_SEARCH_LEARN: 'Learn',
    SUBCATEGORY_LIGHTROOM: 'Lightroom',
    SUBCATEGORY_SUGGESTIONS: 'Suggestions',
    // First Mile
    SUBCATEGORY_INIT: 'Init',
    SUBCATEGORY_NEURAL_FILTER: 'Neural-Filter',
    SUBCATEGORY_AVATAR: 'Avatar',
    SUBCATEGORY_BANNER_BASIC: 'Banner-Basic',
    SUBCATEGORY_BANNER_MULTI_LINK: 'Banner-Multi-Link',
    SUBCATEGORY_BANNER_EMPTY: 'Banner-Empty',
    SUBCATEGORY_COLLAPSIBLE_CONTAINER: 'Collapsible-Container',
    SUBCATEGORY_PERSONAL_MESSAGE: 'Personal-Message',
    SUBCATEGORY_RECENT_FILES: 'Recent-Files',
    SUBCATEGORY_TUTORIAL: 'Tutorial',
    SUBCATEGORY_DRAGDROP: 'Drag-Drop',
    SUBCATEGORY_PRESETS: 'Presets',
    SUBCATEGORY_PRESETS_DROPDOWN: 'Presets-Dropdown',
    SUBCATEGORY_VIDEO: 'Video',
    SUBCATEGORY_LICENSE: 'License',
    SUBCATEGORY_TOAST: 'Toast',
    SUBCATEGORY_TOUT: 'Standard-Tout',
    SUBCATEGORY_TOUT_NAVIGABLE: 'Navigable-Tout',
    SUBCATEGORY_COACHMARK: 'Coachmark',
    SUBCATEGORY_DEFAULT_LAYOUT: 'Home-Default',
    SUBCATEGORY_FALLBACK: 'Fallback',
    SUBCATEGORY_CHICLET: 'License-Chiclet',
    SUBCATEGORY_IN_APP_FEED: 'Tutorial-Feed-InApp',
    SUBCATEGORY_WEB_FEED: 'Tutorial-Feed-Web',
    SUBCATEGORY_SOPHIA: 'Sophia',
    SUBCATEGORY_LEARN_SIDEBAR: 'Learn-Sidebar',
    SUBCATEGORY_LEFT_NAV: 'Left-Nav',
    SUBCATEGORY_HOME: 'Home',
    SUBCATEGORY_WHATS_NEW: 'Whats-New',
    SUBCATEGORY_USER_INTENT_DIALOG: 'User-Intent-Dialog',
    SUBCATEGORY_NPS: 'NPS-Dialog',
    SUBCATEGORY_SURVEY: 'Survey',
    SUBCATEGORY_CHECKLIST: 'Checklist',
    SUBCATEGORY_CHECKLIST_DROP: 'Checklist-Selected',
    SUBCATEGORY_CHECKLIST_ITEM: 'Checklist-Item',
    SUBCATEGORY_UPGRADE_PLAN: 'Upgrade-Plan',
    SUBCATEGORY_CAROUSEL: 'Carousel',
    SUBCATEGORY_NGL: 'NGL',
    //User Signals
    SUBCATEGORY_USER_SIGNALS: 'UserSignals',
    SUBCATEGORY_US_CREATIVE_CAT: 'Creative-Category',
    SUBCATEGORY_US_CREATIVE_SUBCAT: 'Creative-Subcategory',
    // First Mile
    SUBTYPE_LEARN_SIDEBAR: 'sidebar',
    SUBTYPE_NO_LEARN_TAB: 'no-learn-tab',
    SUBTYPE_COMPONENT: 'component',
    SUBTYPE_BANNER: 'banner',
    SUBTYPE_COLLAPSIBLE_CONTAINER: 'collapsible-container',
    SUBTYPE_MESSAGE: 'message',
    SUBTYPE_FILE: 'file',
    SUBTYPE_INFO: 'info',
    SUBTYPE_CMDN: 'cmd-n',
    SUBTYPE_INAPPTUT: 'tutorial-in-app',
    SUBTYPE_WEBTUT: 'tutorial-web',
    SUBTYPE_DRAGDROP: 'drag-drop',
    SUBTYPE_CMDO: 'cmd-o',
    SUBTYPE_PRESET: 'preset',
    SUBTYPE_PRESETS_DROPDOWN: 'presets-dropdown',
    SUBTYPE_LIGHTBOX: 'video-lightbox',
    SUBTYPE_TOAST: 'toast',
    SUBTYPE_TOUT: 'tout',
    SUBTYPE_COACHMARK: 'coachmark',
    SUBTYPE_FALLBACK: 'fallback',
    SUBTYPE_LICENSE: 'license',
    SUBTYPE_RESOLVE_LICENSE: 'resolve-license',
    SUBTYPE_NORMAL: 'normal',
    SUBTYPE_SYSTEM: 'system',
    SUBTYPE_SURVEY: 'survey',
    SUBTYPE_TEXT_SURVEY: 'text-survey',
    SUBTYPE_CHECKLIST: 'checklist',
    SUBTYPE_FEEDBACK: 'feedback',
    SUBTYPE_STARTER_BADGE: 'starter-badge',
    SUBTYPE_CAROUSEL: 'carousel',
    SUBTYPE_SMALLTOUT: 'smalltout',
    SUBTYPE_CAROUSEL_INDICATOR: 'carousel-indicator',
    // User Signals
    SUBTYPE_PREFERENCE: 'preference',
    SUBTYPE_TAB: 'tab',
    SUBTYPE_NAV: 'banner',
    SUBTYPE_CARD: 'card',
    SUBTYPE_PANEL: 'panel',
    SUBTYPE_NEW: 'new',
    SUBTYPE_CCFILE_WEBVIEW: 'view-on-web',
    SUBTYPE_CCFILE_LEARN: 'learn-more',
    SUBTYPE_CREATE: 'cmd-n',
    SUBTYPE_OPEN: 'open',
    SUBTYPE_VIDEO: 'video',
    SUBTYPE_CUSTOM: 'custom',
    SUBTYPE_TEAMNEW: 'team-new',
    SUBTYPE_TEAMOPEN: 'team-open',
    SUBTYPE_RUSHOPEN: 'rush-open',
    SUBTYPE_START: 'open-search',
    SUBTYPE_EXIT: 'exit',
    SUBTYPE_ESC: 'esc',
    SUBTYPE_SUBMIT: 'submit',
    SUBTYPE_SHOWALL: 'show-all',
    SUBTYPE_BREADCRUMB: 'back-all-results',
    SUBTYPE_EDITOR: 'editor',
    SUBTYPE_SHOW_ALL: 'show-all',
    SUBTYPE_NETWORK: 'network',
    SUBTYPE_RECOVERY: 'recover',
    SUBTYPE_WHATS_NEW: 'whats-new',
    SUBTYPE_USER_INTENT_DIALOG: 'user-intent-dialog',
    SUBTYPE_DONE: 'done',
    SUBTYPE_NEXT: 'next',
    SUBTYPE_MORE: 'find-out-more',
    SUBTYPE_REGRESSION: 'regression',
    SUBTYPE_SEARCH_AUTOCOMPLETE: 'autocomplete',
    SUBTYPE_CACHE: 'cache',
    SUBTYPE_REQUEST: 'request',
    SUBTYPE_CONTENT_FAILURE: 'content-failure',
    SUBTYPE_CCXP_FAILURE: 'ccxp-failure',
    SUBTYPE_LOCAL_FAILURE: 'localstorage-failure',
    SUBTYPE_DIALOG: 'dialog',
    SUBTYPE_DISMISS: 'dismiss',
    SUBTYPE_OFFLINE_ICON: 'offline-icon',
    SUBTYPE_STORAGE_INDICATOR: 'storage-indicator',
    SUBTYPE_TOASTAL_BUTTON: 'toastal-button',
    CONTENT_TYPE_FILE: 'file',
    CONTENT_TYPE_LEARN: 'learn',
    CONTENT_TYPE_RECENT: 'recent',
    CONTENT_TYPE_TUTORIAL: 'tutorial',
    CONTENT_TYPE_INAPP: 'in-app',
    CONTENT_TYPE_WEB: 'web',
    CONTENT_TYPE_WORKBOOK: 'workbook-file',
    CONTENT_TYPE_VIDEO: 'video',
    CONTENT_TYPE_NAVIGATE: 'navigate-to-panel',
    UI_FILTER_ALL: 'all',
    UI_FILTER_NONE: 'none',
    // Stage Conditions
    STAGE1_CONDITION_v2_5: '0 recents',
    STAGE2_CONDITION_v2_5: '1-6 recents',
    STAGE3_CONDITION_v2_5: '6-10 recents',
    STAGE4_CONDITION_v2_5: '10+ recents',
    VALUE_EMPTY: 'empty',
    VALUE_INITIAL: 'initial',
    VALUE_UNSPECIFIED: 'Unspecified',
    DEFAULT_RENDER: 'INGEST RENDER EVENT: ',
    DEFAULT_CLICK: 'INGEST CLICK EVENT: ',
    DEFAULT_MISC: 'INGEST MISC EVENT: ',
    DEFAULT_ERROR: 'INGEST ERROR EVENT: ',
    STATUS_CACHED: 'cached',
    STATUS_LOCAL: 'local',
    STATUS_ONLINE: 'online',
};
const INGEST_EVENT_IDS = {
    CUSTOM_CONTENT_CONFIGURATION: 'customContentConfiguration',
    RECOMMENDATION_FEEDBACK: 'recommendationFeedback',
    CUSTOM_CONTENT_CLICK: 'customContentClick',
    SIGNALS: 'signals'
};
const INGEST_EVENT_SUBTYPES = {
    SUGGESTION_POST_TO_UIS: 'suggestion-post-to-uis',
    FEEDBACK_POST_TO_UIS: 'feedback-post-to-uis'
};
/**
 * Generate the  container's experience ID
 *
 * @param analyticsParams 		{Object} containing the parameters to hash
 * @return {String} containing the experience id.
 */
function _generateSophiaExperienceID(analyticsParams) {
    return analyticsParams
        ? analyticsParams.variationId + '+' + analyticsParams.campaignId + '+' + analyticsParams.treatmentId
        : null;
}
/**
 * Scrub the analytics error stack trace of user file paths
 * @param err  		{Object | String} Error to be scrubbed
 * @return {String} Scrubbed error
 */
function _scrubStack(err) {
    if (err) {
        err = err.toString();
        return err.replace(/[A-Z]?\:?(\\{1,2}|\/).*\1/g, '<redacted>/').trim();
    }
    return err;
}
/**
 * Translate the Sophia analytics parameters to the corresponding Ingest ones.
 *
 * @param sophiaData		{Object} Sophia data to translate
 * @return {Object} containing the translated parameters.
 */
function sdmSophiaAnalytics(containerAnalyticsParams) {
    return containerAnalyticsParams
        ? {
            'exp.request_guid': containerAnalyticsParams.requestGUID || void 0,
            'exp.response_guid': containerAnalyticsParams.responseGUID,
            'exp.surface_id': containerAnalyticsParams.surfaceId,
            'exp.campaign_id': containerAnalyticsParams.campaignId,
            'exp.variation_id': containerAnalyticsParams.variationId,
            'exp.action_block_id': containerAnalyticsParams.actionBlockId,
            'exp.container_id': containerAnalyticsParams.containerId,
            'exp.treatment_id': containerAnalyticsParams.treatmentId,
            'exp.control_group_id': containerAnalyticsParams.controlGroupId,
            'exp.experience_id': containerAnalyticsParams.experienceId || _generateSophiaExperienceID(containerAnalyticsParams),
        }
        : {};
}
/**
 * Add Sophia analytics parameters into the specified Ingest payload.
 *
 * @param payload 			{Object} Ingest payload to append into
 * @param sophiaData		{Object} Sophia data to merge into the payload
 */
function addSophiaAnalytics(payload, sophiaData) {
    if (payload) {
        Object.assign(payload, sdmSophiaAnalytics(sophiaData));
        if (!sophiaData || !sophiaData.campaignId) {
            _logger.warn('Analytics event missing Sophia data:', sophiaData);
        }
    }
}
/**
 * Add custom analytic fields to ingest payload
 *
 * @param payload 			{Object} Ingest payload to append into
 * @param customFields		{Object} Custom data fields to merge into the payload
 */
function addCustomAnalytics(payload, customFields) {
    if (payload && customFields) {
        Object.assign(payload, customFields);
    }
}
/**
 * Add the common 'env.com.*' parameters to the universal search event payload.
 *
 * @param payload 			{Object} Ingest payload to append into
 */
function addSearchSDMEnvAnalytics(payload) {
    if (payload) {
        Object.assign(payload, {
            'env.com.name': INGEST_PARAM_KEYS.ENV_COM_NAME,
            'env.com.version': payload['source.version'],
        });
    }
}
/**
 * Maps the stage of the layout to the condition
 * @param payload			{Object} Ingest payload to append to
 * @param stage   			{String} Name of stage to map
 */
function mapStageConditions(payload, stage) {
    if (payload) {
        switch (stage) {
            case 'stage1':
                Object.assign(payload, {
                    'env.fw.name': INGEST_PARAM_KEYS.STAGE1_CONDITION_v2_5,
                });
                break;
            case 'stage2':
                Object.assign(payload, {
                    'env.fw.name': INGEST_PARAM_KEYS.STAGE2_CONDITION_v2_5,
                });
                break;
            case 'stage3':
                Object.assign(payload, {
                    'env.fw.name': INGEST_PARAM_KEYS.STAGE3_CONDITION_v2_5,
                });
                break;
            case 'stage4':
                Object.assign(payload, {
                    'env.fw.name': INGEST_PARAM_KEYS.STAGE4_CONDITION_v2_5,
                });
                break;
            default:
                Object.assign(payload, {
                    'env.fw.name': '',
                });
                break;
        }
    }
}
/**
 * Collates a list of all tutorial ctaLogs in a subCategory
 * @param  {Object} tutorials All possible NUJ Tutorials
 * @return {Array}            Array of all tutorial ctaLogs for subCategory
 */
function collateTutorials(tutorials) {
    return (tutorials &&
        tutorials.map(tut => {
            return tut.fields.ctaLog;
        }));
}
function parseClickAction(ctaEvent) {
    switch (ctaEvent) {
        case 'FirstMileEvent.VideoOverlay':
            return INGEST_PARAM_KEYS.CONTENT_TYPE_VIDEO;
        case 'FirstMileEvent.DownloadFile':
            return INGEST_PARAM_KEYS.CONTENT_TYPE_WORKBOOK;
        case 'com.adobe.ccx.start.openInAppTutorial':
            return INGEST_PARAM_KEYS.CONTENT_TYPE_INAPP;
        case 'externalURL':
            return INGEST_PARAM_KEYS.CONTENT_TYPE_WEB;
        case 'navigateToPanel':
            return INGEST_PARAM_KEYS.CONTENT_TYPE_NAVIGATE;
        default:
            return null;
    }
}
/**
 * Append url parameters as laid outin https://wiki.corp.adobe.com/x/RJGfWQ
 * @param  payload 			{Object} Ingest payload to append to
 * @param  url     			{String} URL to append to
 */
function appendURLParameters(payload, url) {
    if (payload && url) {
        Object.assign(payload, {
            'content.action': url +
                '?product=' +
                payload['consumer.name'] +
                '&product-version=' +
                payload['consumer.version'] +
                '&location=CCXStart&location-version=' +
                payload['source.version'] +
                '&guid=' +
                payload['event.guid'],
        });
    }
}
/**
 * Format userSignals into object
 * @param  {Object} eventData  Contains all event information
 * @return {Object}            Formatted user signals
 */
function parseUserSignals(eventData) {
    if (!eventData) {
        return 'No data available';
    }
    const signals = {
        'recommended.category': (eventData.sophia && eventData.sophia.category) || INGEST_PARAM_KEYS.VALUE_UNSPECIFIED,
        'recommended.subcategory': (eventData.sophia && eventData.sophia.subCategory) || INGEST_PARAM_KEYS.VALUE_UNSPECIFIED,
        'selected.category': (eventData.selected && eventData.selected.category) || INGEST_PARAM_KEYS.VALUE_UNSPECIFIED,
        'selected.subcategory': (eventData.selected && eventData.selected.subCategory) || INGEST_PARAM_KEYS.VALUE_UNSPECIFIED,
        'recommended.aptitude': (eventData.sophia && eventData.sophia.aptitude) || INGEST_PARAM_KEYS.VALUE_UNSPECIFIED,
    };
    return JSON.stringify(signals);
}
/**
 * Assign error information to correct field
 * @param payload 			{Object} Ingest payload to append to
 * @param err     			{Object} Error object
 */
function parseError(payload, err) {
    if (payload && err) {
        Object.assign(payload, {
            'event.error_code': err.code,
            'event.error_type': err.type,
            'event.error_desc': _scrubStack(err.desc) || _scrubStack(err),
        });
    }
}
/**
 * Find 'content.id' from ctaData
  @param ctaData 			{Object} ctaData from contentful
  @return {String}			String for content.id
 */
function getContentIdFromCTAData(ctaData) {
    if (!ctaData) {
        return null;
    }
    else if (ctaData instanceof Array) {
        for (let i = 0; i < ctaData.length; i++) {
            return getContentIdFromCTAData(ctaData[i]);
        }
    }
    else if (ctaData.tutorial_id) {
        return ctaData.tutorial_id;
    }
    else if (ctaData.id) {
        return ctaData.id;
    }
    else {
        return null;
    }
}
/**
 * Add the model.* for the dynamic recommendations
 *
 * @param payload {Object} Ingest payload to append into
 * @param suggestionData {Object} Suggestion data to merge from
 */
function addDynamicRecommendationsModelData(payload, suggestionData) {
    var _a, _b, _c, _d, _e, _f, _g, _h;
    if (payload && suggestionData) {
        Object.assign(payload, {
            'model.id': suggestionData.id,
            'model.name': suggestionData.title,
            'model.type': suggestionData.type,
            'model.category': (_c = (_b = (_a = suggestionData.metadata) === null || _a === void 0 ? void 0 : _a.model) === null || _b === void 0 ? void 0 : _b.predictedIntents) === null || _c === void 0 ? void 0 : _c.map(intent => intent.category).join('|'),
            'model.score': (_f = (_e = (_d = suggestionData.metadata) === null || _d === void 0 ? void 0 : _d.model) === null || _e === void 0 ? void 0 : _e.predictedIntents) === null || _f === void 0 ? void 0 : _f.map(intent => intent.score).join('|'),
            'model.author': suggestionData.source,
            'model.metadata': JSON.stringify(suggestionData.metadata),
            'model.status': INGEST_PARAM_KEYS.STATUS_ONLINE,
            'model.version': (_h = (_g = suggestionData.metadata) === null || _g === void 0 ? void 0 : _g.model) === null || _h === void 0 ? void 0 : _h.id,
        });
    }
}
/**
 * Public exports
 */
/* harmony default export */ __webpack_exports__["c"] = ({
    /**
     * Ingest specific constants for parameter keys
     */
    KEYS: INGEST_PARAM_KEYS,
    /**
     * Translate the Sophia analytics parameters to the corresponding Ingest ones.
     *
     * @param sophiaData		{Object} Sophia data to translate
     * @return {Object} containing the translated parameters.
     */
    sdmSophiaAnalytics: sdmSophiaAnalytics,
    /**
     * Add Sophia analytics parameters into the specified Ingest payload.
     *
     * @param payload 			{Object} Ingest payload to append into
     * @param sophiaData		{Object} Sophia data to merge into the payload
     */
    addSophiaAnalytics: addSophiaAnalytics,
    /**
     * Add custom analytic fields to ingest payload
     *
     * @param payload 			{Object} Ingest payload to append into
     * @param customFields		{Object} Custom data fields to merge into the payload
     */
    addCustomAnalytics: addCustomAnalytics,
    /**
     * Add the common 'env.com.*' parameters to the universal search event payload.
     *
     * @param payload 			{Object} Ingest payload to append into
     */
    addSearchSDMEnvAnalytics: addSearchSDMEnvAnalytics,
    /**
     * Add stage conditions to the event payload
     * @param payload			{Object} Ingest payload to append information
     * @param stage				{String} Name of stage to map
     */
    mapStageConditions: mapStageConditions,
    /**
     * Error analytics parsing
     * @param payload			{Object} Ingest payload to append information
     * @param err				{Object} The error to be parsed
     */
    parseError: parseError,
    /**
     * Append url parameters as laid outin https://wiki.corp.adobe.com/x/RJGfWQ
     * @param  payload 			{Object} Ingest payload to append to
     * @param  url     			{String} URL to append to
     */
    appendURLParameters: appendURLParameters,
    /**
     * Add the model.* for the dynamic recommendations
     *
     * @param payload {Object} Ingest payload to append into
     * @param suggestionData {Object} Suggestion data to merge from
     */
    addDynamicRecommendationsModelData: addDynamicRecommendationsModelData,
    getContentIdFromCTAData: getContentIdFromCTAData,
    parseClickAction: parseClickAction,
    collateTutorials: collateTutorials,
    parseUserSignals: parseUserSignals,
});


/***/ }),

/***/ "Db7c":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(setImmediate) {/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("VIzJ");
/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("2vnA");
/* harmony import */ var mobx_react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("okNM");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("TSYQ");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var _react_react_spectrum_Button__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("Cn9g");
/* harmony import */ var _react_react_spectrum_Button__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Button__WEBPACK_IMPORTED_MODULE_5__);
/* harmony import */ var _react_react_spectrum_Link__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("v7z/");
/* harmony import */ var _react_react_spectrum_Link__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Link__WEBPACK_IMPORTED_MODULE_6__);
/* harmony import */ var _react_react_spectrum_OverlayTrigger__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("uYrR");
/* harmony import */ var _react_react_spectrum_OverlayTrigger__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_OverlayTrigger__WEBPACK_IMPORTED_MODULE_7__);
/* harmony import */ var _react_react_spectrum_TabList__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("OQA9");
/* harmony import */ var _react_react_spectrum_TabList__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_TabList__WEBPACK_IMPORTED_MODULE_8__);
/* harmony import */ var _react_react_spectrum_Toast__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__("bNpM");
/* harmony import */ var _react_react_spectrum_Toast__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Toast__WEBPACK_IMPORTED_MODULE_9__);
/* harmony import */ var _react_react_spectrum_Tooltip__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__("DUuf");
/* harmony import */ var _react_react_spectrum_Tooltip__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Tooltip__WEBPACK_IMPORTED_MODULE_10__);
/* harmony import */ var _react_react_spectrum_Wait__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__("czhh");
/* harmony import */ var _react_react_spectrum_Wait__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Wait__WEBPACK_IMPORTED_MODULE_11__);
/* harmony import */ var _stores_Project__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__("sHM2");
/* harmony import */ var _stores_Settings__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__("5u1M");
/* harmony import */ var _stores_User__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__("CJr9");
/* harmony import */ var _stores_UIConfig__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__("u7n1");
/* harmony import */ var _components_BrokenResourcesBanner__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__("gDss");
/* harmony import */ var _components_ContentViewer__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__("V02A");
/* harmony import */ var _components_EmptyState__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__("EkhW");
/* harmony import */ var _components_FocusChanger__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__("zM7O");
/* harmony import */ var _components_OnboardingView__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__("O1lU");
/* harmony import */ var _components_SubHeader__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__("SXLS");
/* harmony import */ var _header_TabCrumbs__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__("WrHg");
/* harmony import */ var _actions_addMember__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__("1+hv");
/* harmony import */ var _actions_copyAndMove__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__("Jk2O");
/* harmony import */ var _actions_addResource__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__("4lx0");
/* harmony import */ var _actions_archive__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__("ye5n");
/* harmony import */ var _actions_createFolder__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__("ZLGm");
/* harmony import */ var _actions_deleteResource__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__("ggm0");
/* harmony import */ var _actions_download__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__("G8nY");
/* harmony import */ var _actions_newFile__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__("P69W");
/* harmony import */ var _actions_open__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__("5ZOl");
/* harmony import */ var _actions_rename__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__("Kjq3");
/* harmony import */ var _utils_ccdRoutes__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__("UnS2");
/* harmony import */ var _utils_constants__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__("YVc3");
/* harmony import */ var _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__("mm/P");
/* harmony import */ var _utils_Route__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__("ynUZ");
/* harmony import */ var _utils_stringifyQueries__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__("GfC9");
/* harmony import */ var _utils_urls__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__("/YLX");
/* harmony import */ var _packages_CDOView_stores_constants__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__("q0hk");
/* harmony import */ var _packages_CDOView_stores_SelectionStore__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__("fr3g");
/* harmony import */ var _images_EmptyLibraries_svg__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__("mbZj");
/* harmony import */ var _images_S_IlluCCWeb_NoFilterMatches_160x100_svg__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__("AXb1");
/* harmony import */ var _images_ErrorLoading_svg__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__("+B6w");
/* harmony import */ var _images_PermanentlyDeleted_svg__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__("gOQU");
/* harmony import */ var _images_EmptyCompatibleFiles_svg__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__("jR+r");
/* harmony import */ var _images_EmptyPublished_svg__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__("CD1o");
/* harmony import */ var _images_MoreCreatingLessCatchingUp_svg__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__("heJ0");
/* harmony import */ var _images_S_IlluCCSpaces_EmptyState_NoCompatibleFiles_120px_svg__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__("Mu3t");
/* harmony import */ var _styles_EmptyStates_css__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__("i+ue");
/* harmony import */ var _styles_EmptyStates_css__WEBPACK_IMPORTED_MODULE_49___default = /*#__PURE__*/__webpack_require__.n(_styles_EmptyStates_css__WEBPACK_IMPORTED_MODULE_49__);
/* harmony import */ var _styles_Project1Up_css__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__("MLRH");
/* harmony import */ var _styles_Project1Up_css__WEBPACK_IMPORTED_MODULE_50___default = /*#__PURE__*/__webpack_require__.n(_styles_Project1Up_css__WEBPACK_IMPORTED_MODULE_50__);
/* harmony import */ var _actions_leaveResource__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__("Eu0X");
/* harmony import */ var _actions_CopyLink__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__("2g3H");
/* harmony import */ var _actions_createWeblink__WEBPACK_IMPORTED_MODULE_53__ = __webpack_require__("Koya");
/* harmony import */ var _oneup_Filter__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__("b2OE");
/* harmony import */ var _oneup_SectionHeader__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__("Gt0N");
/* harmony import */ var _oneup_SectionHeading__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__("KqTW");
/* harmony import */ var _oneup_ScrollContainer__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__("xKtb");
/* harmony import */ var _header_ProjectNameWithBackButton__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__("Xf/+");
/* harmony import */ var _ccx_public_shared_asset_model_js__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__("m4Z2");
/* harmony import */ var _utils_launchDocInfo__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__("5hQx");
/* harmony import */ var _header_AppCompatibleFilterButton__WEBPACK_IMPORTED_MODULE_61__ = __webpack_require__("oINU");
/* harmony import */ var _actions_upload__WEBPACK_IMPORTED_MODULE_62__ = __webpack_require__("/xY8");
/* harmony import */ var _hosts_Host__WEBPACK_IMPORTED_MODULE_63__ = __webpack_require__("Dy/p");
/* harmony import */ var _actions_createDocument__WEBPACK_IMPORTED_MODULE_64__ = __webpack_require__("n765");
/* harmony import */ var _hosts_UXPHost__WEBPACK_IMPORTED_MODULE_65__ = __webpack_require__("QBvS");
/* harmony import */ var _ConfirmationDialog__WEBPACK_IMPORTED_MODULE_66__ = __webpack_require__("FzwA");
/* harmony import */ var _actions_reportAbuse__WEBPACK_IMPORTED_MODULE_67__ = __webpack_require__("l/lP");
/* harmony import */ var _actions_bookmarkLibrary__WEBPACK_IMPORTED_MODULE_68__ = __webpack_require__("4BOe");
/* harmony import */ var _actions_shareDocument__WEBPACK_IMPORTED_MODULE_69__ = __webpack_require__("/COt");
/* harmony import */ var _stores_SharedStore__WEBPACK_IMPORTED_MODULE_70__ = __webpack_require__("jmEq");
/* harmony import */ var _utils_getDisplayName__WEBPACK_IMPORTED_MODULE_71__ = __webpack_require__("500B");
/* harmony import */ var _utils_performance__WEBPACK_IMPORTED_MODULE_72__ = __webpack_require__("P5RH");
/* harmony import */ var _actions_ProjectAction__WEBPACK_IMPORTED_MODULE_73__ = __webpack_require__("zpOJ");
/* harmony import */ var _utils_UXPUtils__WEBPACK_IMPORTED_MODULE_74__ = __webpack_require__("LbGp");
/* harmony import */ var _Title__WEBPACK_IMPORTED_MODULE_75__ = __webpack_require__("WQMI");
/* harmony import */ var _react_react_spectrum_Icon_FileAdd__WEBPACK_IMPORTED_MODULE_76__ = __webpack_require__("a6hi");
/* harmony import */ var _react_react_spectrum_Icon_FileAdd__WEBPACK_IMPORTED_MODULE_76___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Icon_FileAdd__WEBPACK_IMPORTED_MODULE_76__);
/* harmony import */ var _header_Toolbar__WEBPACK_IMPORTED_MODULE_77__ = __webpack_require__("cB30");
/* harmony import */ var _header_SortDropdownButton__WEBPACK_IMPORTED_MODULE_78__ = __webpack_require__("+K6B");
/* harmony import */ var _header_ListGridToggleButton__WEBPACK_IMPORTED_MODULE_79__ = __webpack_require__("+BsC");
/* harmony import */ var _components_Offline__WEBPACK_IMPORTED_MODULE_80__ = __webpack_require__("86OP");
/* harmony import */ var _Dialog__WEBPACK_IMPORTED_MODULE_81__ = __webpack_require__("dKUG");
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2020 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
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;
};
var __metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var _a, _b;



















































































const ONBOARDING_ROW_HEIGHT = 120;
function FilterEmptyState(props) {
    const filterBold = props.filterText;
    const FormattedMessageWithClass = props => (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_1__[/* FormattedMessage */ "c"], Object.assign({}, props), txt => react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", { className: props.className }, txt)));
    return (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_EmptyState__WEBPACK_IMPORTED_MODULE_18__[/* default */ "a"], { heading: react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_1__[/* FormattedMessage */ "c"], { id: "project1Up.section.filterFiles.empty.heading" }), illustration: react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_images_S_IlluCCWeb_NoFilterMatches_160x100_svg__WEBPACK_IMPORTED_MODULE_42__[/* default */ "a"], null), description: react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null,
            react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_1__[/* FormattedMessage */ "c"], { id: "team.filter.empty.description1" }),
            react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(FormattedMessageWithClass, { className: "bold", id: "team.filter.filterText", values: {
                    filter: filterBold,
                } }),
            react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_1__[/* FormattedMessage */ "c"], { id: "team.filter.empty.description2" })) },
        react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_react_react_spectrum_Button__WEBPACK_IMPORTED_MODULE_5___default.a, { variant: "primary", onClick: props.onClick },
            react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_1__[/* FormattedMessage */ "c"], { id: "button.viewEverything" }))));
}
function CompatibleEmptyState(props) {
    return (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_EmptyState__WEBPACK_IMPORTED_MODULE_18__[/* default */ "a"], { heading: react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_1__[/* FormattedMessage */ "c"], { id: "project1Up.section.compatibleFiles.empty.heading" }), illustration: react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_images_EmptyCompatibleFiles_svg__WEBPACK_IMPORTED_MODULE_45__[/* default */ "a"], null) }, props.onClick && (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_react_react_spectrum_Button__WEBPACK_IMPORTED_MODULE_5___default.a, { variant: "primary", onClick: props.onClick },
        react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_1__[/* FormattedMessage */ "c"], { id: "button.viewEverything" })))));
}
const sortOptions = [_packages_CDOView_stores_constants__WEBPACK_IMPORTED_MODULE_39__[/* UXSortBy */ "f"].name, _packages_CDOView_stores_constants__WEBPACK_IMPORTED_MODULE_39__[/* UXSortBy */ "f"].modifiedDate];
let Project1Up = class Project1Up extends react__WEBPACK_IMPORTED_MODULE_0__["Component"] {
    constructor(props) {
        super(props);
        this.filter = '';
        this.selectionStore = new _packages_CDOView_stores_SelectionStore__WEBPACK_IMPORTED_MODULE_40__[/* default */ "a"]();
        this.uiConfigConfirmationDialog = _stores_UIConfig__WEBPACK_IMPORTED_MODULE_15__[/* default */ "a"].getConfigByNamespace(this.props.browseSession, _utils_constants__WEBPACK_IMPORTED_MODULE_34__[/* UiConfigNamespaces */ "J"].ConfirmationDialog);
        this._toastKey = -1;
        this.onLeaveAssetAfterAs1OffEditor = async (items) => {
            const { project } = this;
            const { browseSession } = this.props;
            if (!project) {
                return;
            }
            if (this.currentTab === _utils_constants__WEBPACK_IMPORTED_MODULE_34__[/* OneUpTabs */ "q"].Working) {
                project.rootFolder.removeItems(items);
            }
            else if (this.currentTab === _utils_constants__WEBPACK_IMPORTED_MODULE_34__[/* OneUpTabs */ "q"].Published) {
                project.published.removeItems(items);
            }
            let publishedItemsCount = project.published.items.length;
            let rootFolderItemsCount = project.rootFolder.items.length;
            if (publishedItemsCount + rootFolderItemsCount === 0) {
                // GET /projects API might still index the space after the reviewer left all the published or
                // files combined, they have access to in the space (CCPROJ-3191).
                // A workaround is to quietly unfollow the space.
                try {
                    await project.unFollow(this.props.browseSession, true);
                    await this.onLeaveAfter();
                }
                catch (error) {
                    // Go back anyway
                    await this.onBack();
                }
            }
            else {
                if (rootFolderItemsCount === 0) {
                    browseSession.navigateAndNotify(browseSession.sameSpaceRouteWithDetails({ view: _utils_constants__WEBPACK_IMPORTED_MODULE_34__[/* OneUpTabs */ "q"].Published }));
                }
                else if (publishedItemsCount === 0) {
                    browseSession.navigateAndNotify(browseSession.sameSpaceRouteWithDetails({ view: _utils_constants__WEBPACK_IMPORTED_MODULE_34__[/* OneUpTabs */ "q"].Working }));
                }
            }
        };
        /**
         * If disabled, onClick is disabled and the item is dimmed (e.g. Working file in Project1Up in
         * CDP's 'Copy to Project'). It is enabled for other modes such as 'open' and 'add a library'.
         */
        this.shouldRenderItemAsDisabled = (element, selectionMode, type) => {
            const { browseSession: { projectsClient: { enabledTypes }, cdpContext, showOfflineWithFeatureFlag, }, } = this.props;
            const { project } = this;
            if (!project) {
                return false;
            }
            // if offline and the item is not available offline, disable the item
            if (showOfflineWithFeatureFlag &&
                !element.isAvailableOffline &&
                !element.isLibrary &&
                !element.isFolder) {
                return true;
            }
            // If in CDP, use special CDP logic to determine if the item should be disabled.
            if (cdpContext === null || cdpContext === void 0 ? void 0 : cdpContext.shouldItemBeDisabled(element.id, element.isFolder, selectionMode, type)) {
                return true;
            }
            else if (!this.isItemIncluded(element, enabledTypes)) {
                return true;
            }
            return false;
        };
        this.isLoading = () => {
            return this.relevantSections().every(({ section }) => section.loadState === _packages_CDOView_stores_constants__WEBPACK_IMPORTED_MODULE_39__[/* ProcessingState */ "c"].Fetching ||
                section.loadState === _packages_CDOView_stores_constants__WEBPACK_IMPORTED_MODULE_39__[/* ProcessingState */ "c"].Pending);
        };
        /**
         * Track selections when it is enabled inside CDP.
         * i.e. place embedded/links and import workflows
         *
         * We will update CDP on the items that are selected.
         * CDP will track the items and send it to the host on confirm.
         */
        this.onSelectionChange = async () => {
            const { project } = this;
            const { cdpContext } = this.props.browseSession;
            if (!cdpContext || !project) {
                return;
            }
            const spaceInfo = await project.getSpaceInfo();
            const selectedFiles = this.selectionStore.selectedElements.map(element => ({
                isArtifact: element.isArtifact,
                type: 'File',
                // placeholder until XD decides on the data that they want
                data: {
                    assetRef: element.assetRef,
                    spaceInfo: spaceInfo,
                },
                docInfoArray: [Object(_utils_launchDocInfo__WEBPACK_IMPORTED_MODULE_60__[/* default */ "a"])(element, spaceInfo)],
            }));
            cdpContext.onItemsSelected(selectedFiles);
        };
        this.resetActiveCompatibleFilter = () => {
            this.uiConfig.activeFilterPreference = _header_AppCompatibleFilterButton__WEBPACK_IMPORTED_MODULE_61__[/* AppCompatibleFilterOptions */ "a"].showEverything;
        };
        this.setActiveCompatibleFilter = (filter) => {
            this.uiConfig.activeFilterPreference = filter || _header_AppCompatibleFilterButton__WEBPACK_IMPORTED_MODULE_61__[/* AppCompatibleFilterOptions */ "a"].showEverything;
        };
        /**
         * Set the selected project for CDP. This is necessary for workflow such as during `copy to project` and
         * instead of selecting an existing project, the user decides to create new project which will navigate them
         * directly to the project1Up.
         *
         * This method enable or disable the primary footer button in CDP.
         *   - Primary button is disabled if `resetProjectSelection`
         *   - Primary button is enabled whenever `onProjectSelected` is set
         *
         * When the space or folder is disabled for navigation (shouldItemBeDisabled = true), we should also disable
         * the primary button. But there are 2 special cases on move:
         *   - If move files in working files folder, we want to enable the parent folder for navigation but disable
         * the CDP primary footer button at this folder level (only).
         */
        this.setProjectSelection = async (folder) => {
            const { cdpContext } = this.props.browseSession;
            const project = this.project;
            if (project && (cdpContext === null || cdpContext === void 0 ? void 0 : cdpContext.requiresProjectOrFolderSelection)) {
                // If we try to programmatically select an item that should be disabled,
                // don't select it (e.g. clicking breadcrumbs).
                if (cdpContext.shouldItemBeDisabled(folder.id, true) ||
                    (cdpContext.isMove && cdpContext.isSourceParentFolder(folder.repoPath)) ||
                    (cdpContext.isCopy && !project.isContributor)) {
                    await this.resetProjectSelection();
                }
                else {
                    await cdpContext.onProjectSelected(project, project.isRootFolder(folder.id) ? undefined : folder);
                }
            }
        };
        this.resetProjectSelection = async () => {
            const { cdpContext } = this.props.browseSession;
            if (cdpContext === null || cdpContext === void 0 ? void 0 : cdpContext.requiresProjectOrFolderSelection) {
                await cdpContext.onProjectSelected(undefined);
            }
        };
        this.onBack = async () => {
            await this.resetProjectSelection();
            const { browseSession } = this.props;
            const route = browseSession.sameTeamRouteWithDetails({});
            await browseSession.navigateAndNotify(route);
        };
        this.onLeaveAfter = async () => {
            const { browseSession } = this.props;
            const { currentProject } = browseSession;
            browseSession.projectList.onUserLeftProject({ id: currentProject === null || currentProject === void 0 ? void 0 : currentProject.id });
            await this.onBack();
        };
        this.openUrl = (url) => {
            const { browseSession: app } = this.props;
            const canShowConfirmationDialog = !this.uiConfigConfirmationDialog.isDontShowEnabled('openConfirmationDialog');
            if (!app.inNativeHost || !canShowConfirmationDialog) {
                Object(_utils_urls__WEBPACK_IMPORTED_MODULE_38__[/* openExternalLink */ "k"])(url, true);
            }
            else {
                app.projectsClient.showModal(react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_ConfirmationDialog__WEBPACK_IMPORTED_MODULE_66__[/* default */ "a"], { onConfirm: () => Object(_utils_urls__WEBPACK_IMPORTED_MODULE_38__[/* openExternalLink */ "k"])(url, true), actionType: "open", confirmLabel: "button.viewInWeb", appName: _utils_constants__WEBPACK_IMPORTED_MODULE_34__[/* PRODUCT_NAMES */ "s"][_hosts_Host__WEBPACK_IMPORTED_MODULE_63__[/* default */ "a"].id], id: "openConfirmationDialog", browseSession: this.props.browseSession }));
            }
        };
        this.onItemClick = async (element) => {
            var _a, _b, _c;
            const { browseSession: app, onProjectOneUpItemClick, openDocuments } = this.props;
            const project = this.project;
            const filter = this.cdoFilter;
            const { id, repositoryId, type } = element;
            const { currentFolder } = app;
            if (!project || !currentFolder) {
                return false;
            }
            // Subfolder navigation
            if (element.isFolder) {
                app.navigateAndNotify(app.sameSpaceRouteWithDetails({ folderId: element.id }));
                return false;
            }
            // Toggle the selection in UAP modes that supports selection (place, import)
            if (app.launchedFromCDP && ((_a = app.cdpContext) === null || _a === void 0 ? void 0 : _a.supportSelection)) {
                this.selectionStore.toggleSelection(element, true);
                return false;
            }
            // We're triggering a refresh, to get latest content of the folder.
            // Since we don't support notifications yet, we want to get closer to what is on the server.
            if (!app.showOfflineWithFeatureFlag) {
                app.refreshCurrentSpace({ skipSpaceRefresh: true });
            }
            // Open web link
            if (element.isWeblink) {
                let ingestData = {
                    env: {
                        api: {
                            name: '',
                        },
                    },
                    content: {
                        id: project.id,
                        author: project.role,
                        type: _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_35__[/* ContentType */ "a"].WebLink,
                    },
                    event: {
                        subcategory: _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_35__[/* Subcategory */ "c"].Resource,
                        subtype: _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_35__[/* Subtype */ "d"].read,
                        workflow: _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_35__[/* Workflow */ "f"].Spaces,
                        org_guid: (_b = _stores_User__WEBPACK_IMPORTED_MODULE_14__[/* default */ "a"].getTeamFromId(project.teamId)) === null || _b === void 0 ? void 0 : _b.repositoryID,
                        context_guid: null,
                    },
                    custom: {
                        team_id: project.teamId,
                    },
                };
                let startTime = _utils_performance__WEBPACK_IMPORTED_MODULE_72__[/* default */ "a"].now();
                try {
                    const url = await element.getWeblink();
                    ingestData.event['type'] = _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_35__[/* Type */ "e"].success;
                    ingestData.event['value'] = _utils_performance__WEBPACK_IMPORTED_MODULE_72__[/* default */ "a"].now() - startTime;
                    if (url) {
                        ingestData.env.api.name = url;
                        this.openUrl(url);
                    }
                }
                catch (e) {
                    Object(_utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_35__[/* fillError */ "h"])(ingestData, e);
                    ingestData.event['value'] = _utils_performance__WEBPACK_IMPORTED_MODULE_72__[/* default */ "a"].now() - startTime;
                }
                _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_35__[/* default */ "g"].fireEvent(ingestData);
                return false;
            }
            if (element.isArtifact) {
                const link = await element.getWeblink();
                link && Object(_utils_urls__WEBPACK_IMPORTED_MODULE_38__[/* openExternalLink */ "k"])(link, app.inNativeHost);
                return false;
            }
            const query = {
                sortBy: this.uiConfig.sortBy,
                sortOrder: this.uiConfig.sortDirection,
            };
            const domain = Object(_actions_open__WEBPACK_IMPORTED_MODULE_31__[/* redirectDomainForFile */ "c"])(type);
            let route = 'id';
            if (type === _utils_constants__WEBPACK_IMPORTED_MODULE_34__[/* LIBRARY_MIMETYPE */ "n"]) {
                // https://jira.corp.adobe.com/browse/CCPROJ-933
                query.org = repositoryId || 'fetchMe';
                route = 'libraries';
            }
            else {
                query.view = 'spaces';
            }
            const openUrl = `${domain}/${route}/${id}`;
            // In Assets Web and CCD, pass the URL up; they'll direct us.
            if (onProjectOneUpItemClick) {
                onProjectOneUpItemClick({
                    urn: id,
                    mimetype: type,
                    openUrl: `${openUrl}${Object(_utils_stringifyQueries__WEBPACK_IMPORTED_MODULE_37__[/* default */ "a"])(query)}`,
                });
                return false;
            }
            // In native apps, open the library in CCD.
            if (type === _utils_constants__WEBPACK_IMPORTED_MODULE_34__[/* LIBRARY_MIMETYPE */ "n"] && app.inNativeHost) {
                const resource = element.externalData;
                const isTeamLibrary = resource.data.ownership === 'team';
                // We'll send them to the Team Libraries page if the library isn't
                // going to be visible in the CCD sidebar (because it isn't followed).
                if (isTeamLibrary && !resource.data.isFollowing) {
                    _hosts_Host__WEBPACK_IMPORTED_MODULE_63__[/* default */ "a"].launchCCD(_utils_ccdRoutes__WEBPACK_IMPORTED_MODULE_33__[/* CCD_ROUTES */ "a"].TeamLibraries);
                }
                else {
                    _hosts_Host__WEBPACK_IMPORTED_MODULE_63__[/* default */ "a"].launchCCD(`${_utils_ccdRoutes__WEBPACK_IMPORTED_MODULE_33__[/* CCD_ROUTES */ "a"].Libraries}${(_c = resource.data.id) !== null && _c !== void 0 ? _c : ''}`);
                }
                return false;
            }
            // In native apps, open the item in app when its supported,
            // can be triggered in Space 1up or UAP open mode
            const doc = Object(_utils_launchDocInfo__WEBPACK_IMPORTED_MODULE_60__[/* default */ "a"])(element, await project.getSpaceInfo());
            if (doc) {
                // Use the openDocument provided by UAP,
                // so they can close the dialog properly on their end
                if (openDocuments) {
                    openDocuments([doc]);
                    return false;
                }
                if (_hosts_Host__WEBPACK_IMPORTED_MODULE_63__[/* default */ "a"] instanceof _hosts_UXPHost__WEBPACK_IMPORTED_MODULE_65__[/* default */ "a"]) {
                    if (_hosts_Host__WEBPACK_IMPORTED_MODULE_63__[/* default */ "a"].hasOpenUtils &&
                        ((filter === null || filter === void 0 ? void 0 : filter.includes(type)) || (filter === null || filter === void 0 ? void 0 : filter.includes(element.fileExtension || '')))) {
                        _hosts_Host__WEBPACK_IMPORTED_MODULE_63__[/* default */ "a"].openDocuments([doc]);
                        return false;
                    }
                }
            }
            // Non-natively supported items should be redirected to Assets Web private 1up,
            // on back button, redirect user back to the project 1up,
            // it is up to the client (AW, XD web, etc) to respect this
            if (project.isRootFolder(currentFolder.id)) {
                query.referer = Object(_utils_urls__WEBPACK_IMPORTED_MODULE_38__[/* getProjectsUrl */ "g"])(project.id, 'projects', this.currentTab !== _utils_constants__WEBPACK_IMPORTED_MODULE_34__[/* OneUpTabs */ "q"].Working ? { view: this.currentTab } : undefined);
            }
            else {
                query.referer = Object(_utils_urls__WEBPACK_IMPORTED_MODULE_38__[/* getProjectsUrl */ "g"])(currentFolder.id, 'projects/folder');
            }
            const url = `${openUrl}${Object(_utils_stringifyQueries__WEBPACK_IMPORTED_MODULE_37__[/* default */ "a"])(query)}`;
            this.openUrl(url);
        };
        this.isItemVisibleWithCurrentFilters = (element) => {
            if (element.isHidden) {
                return false;
            }
            const { documentFilter, compatibleTypes } = this.props.browseSession.projectsClient;
            const { launchedFromCDP } = this.props.browseSession;
            const shouldCheckCompatibleTypes = compatibleTypes && compatibleTypes.length > 0;
            // If compatibleTypes are provided, we should either show everything or filter by them.
            if (shouldCheckCompatibleTypes) {
                // hide non-app compatible items
                if (this.showOnlyCompatible) {
                    return this.isItemIncluded(element, compatibleTypes);
                }
                return true;
            }
            else if (launchedFromCDP) {
                // The legacy "documentFilter" only applies to UAP (whereas
                // compatibleTypes applies to both UAP and the main view).
                return this.isItemIncluded(element, documentFilter);
            }
            return true;
        };
        this.onSortChange = (sortBy) => {
            const { browseSession } = this.props;
            const { cdpContext } = browseSession;
            const { project, uiConfig } = this;
            if (!project) {
                return;
            }
            browseSession.resetActiveRenameState();
            if (sortBy === uiConfig.sortBy) {
                uiConfig.sortDirection = Object(_packages_CDOView_stores_constants__WEBPACK_IMPORTED_MODULE_39__[/* invertSort */ "j"])(uiConfig.sortDirection);
            }
            uiConfig.sortBy = sortBy;
            const workflow = (cdpContext === null || cdpContext === void 0 ? void 0 : cdpContext.isCopy) ? _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_35__[/* Workflow */ "f"].CopyFiles : _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_35__[/* Workflow */ "f"].Project1Up;
            const data = {
                ..._utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_35__[/* default */ "g"].scaffoldEvent(_utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_35__[/* Subcategory */ "c"].Navigation, _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_35__[/* Subtype */ "d"].sortBy, _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_35__[/* Type */ "e"].click, workflow),
                ui: {
                    ...this.uiConfig.cdoUISettings,
                    sequence: sortBy,
                },
            };
            Object.assign(data.event, { value: sortBy });
            _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_35__[/* default */ "g"].fireEvent(data);
        };
        this.reactionDisposers = [];
    }
    get uiConfig() {
        return _stores_UIConfig__WEBPACK_IMPORTED_MODULE_15__[/* default */ "a"].getConfigByNamespace(this.props.browseSession, this.isViewAll ? _utils_constants__WEBPACK_IMPORTED_MODULE_34__[/* UiConfigNamespaces */ "J"].Project1UpViewAll : _utils_constants__WEBPACK_IMPORTED_MODULE_34__[/* UiConfigNamespaces */ "J"].Project1Up);
    }
    // Check if host app supports the document:
    // * use compatibleTypes if provided,
    // * otherwise default to documentFilter
    get cdoFilter() {
        const { documentFilter, compatibleTypes } = this.props.browseSession.projectsClient;
        const filter = compatibleTypes && compatibleTypes.length > 0 ? compatibleTypes : documentFilter;
        return filter;
    }
    get defaultTab() {
        var _a, _b, _c, _d;
        if (((_a = this.project) === null || _a === void 0 ? void 0 : _a.isReviewer) &&
            !((_d = (_c = (_b = this.project) === null || _b === void 0 ? void 0 : _b.rootFolder) === null || _c === void 0 ? void 0 : _c.items) === null || _d === void 0 ? void 0 : _d.length) &&
            !this.props.browseSession.cdpContext) {
            return _utils_constants__WEBPACK_IMPORTED_MODULE_34__[/* OneUpTabs */ "q"].Published;
        }
        return _utils_constants__WEBPACK_IMPORTED_MODULE_34__[/* OneUpTabs */ "q"].Working;
    }
    /**
     * The section in the OneUp being rendered.
     * May be undefined if the user does not have a valid Role in the project.
     */
    get currentTab() {
        var _a;
        return (_a = this.props.browseSession.currentSpacesView) !== null && _a !== void 0 ? _a : this.defaultTab;
    }
    get isViewAll() {
        return this.currentTab === _utils_constants__WEBPACK_IMPORTED_MODULE_34__[/* OneUpTabs */ "q"].Libraries;
    }
    get spaceRootEmpty() {
        const launchedFromCDP = this.props.browseSession.launchedFromCDP;
        return this.isOneUpRootView && !launchedFromCDP && this.spaceIsCompletelyEmpty;
    }
    // Extra offline checks to show disconnected message for section pending or empty space
    get showDisconnected() {
        const showOffline = this.props.browseSession.showOfflineWithFeatureFlag;
        // if a section is in a pending state when we go offline, show disconnected message
        const sectionPending = showOffline &&
            this.relevantSections().every(({ section }) => section.loadState === _packages_CDOView_stores_constants__WEBPACK_IMPORTED_MODULE_39__[/* ProcessingState */ "c"].Pending);
        const offlineEmpty = showOffline && this.spaceIsCompletelyEmpty;
        return sectionPending || offlineEmpty;
    }
    get project() {
        // the project should normally be defined and not null,
        // but sometimes this property is called outside of the renderer,
        // it may be access in intermediate states when there is no current project.
        return this.props.browseSession.currentProject;
    }
    // The published view was requested (external link from XD for example)
    get isPublishedViewRequested() {
        const { browseSession } = this.props;
        const { route } = browseSession;
        return route instanceof _utils_Route__WEBPACK_IMPORTED_MODULE_36__[/* SpaceRoute */ "e"] && route.view === 'published';
    }
    selectsWorkingFileAsSpaceContributor(selection) {
        var _a;
        return Boolean(((_a = this.project) === null || _a === void 0 ? void 0 : _a.isContributor) && selection.everyItemIsInSection(_utils_constants__WEBPACK_IMPORTED_MODULE_34__[/* OneUpTabs */ "q"].Working));
    }
    /**
     * Get the actions that *might* be available for selected items, no matter
     * which section the items might be in. Actions have an "isVisible"
     * function, which can be used to only show each action when *all* of the
     * selected items are supported.
     */
    getActionMenuItems() {
        const { browseSession: app, openShareSheet } = this.props;
        const project = this.project;
        const { currentFolder } = app;
        if (app.launchedFromCDP || !project || !currentFolder) {
            return [];
        }
        const { intl, projectsClient } = app;
        return [
            Object(_actions_open__WEBPACK_IMPORTED_MODULE_31__[/* open */ "a"])(app, this.cdoFilter),
            Object(_actions_open__WEBPACK_IMPORTED_MODULE_31__[/* openWith */ "b"])(app),
            Object(_actions_rename__WEBPACK_IMPORTED_MODULE_32__[/* default */ "a"])(app, selection => this.selectsWorkingFileAsSpaceContributor(selection), app.onActiveRenameChange),
            Object(_actions_copyAndMove__WEBPACK_IMPORTED_MODULE_24__[/* copy */ "a"])({
                app: app,
                sourceProject: project,
                onViewProject: this.onViewProject,
                onProjectUpdated: this.onProjectUpdatedAfterCopyOrMove,
                isVisible: selection => selection.everyItemIsInSection(_utils_constants__WEBPACK_IMPORTED_MODULE_34__[/* OneUpTabs */ "q"].Working),
            }),
            Object(_actions_copyAndMove__WEBPACK_IMPORTED_MODULE_24__[/* move */ "b"])({
                app: app,
                sourceProject: project,
                onViewProject: this.onViewProject,
                onProjectUpdated: this.onProjectUpdatedAfterCopyOrMove,
                isVisible: selection => this.selectsWorkingFileAsSpaceContributor(selection),
            }),
            Object(_actions_download__WEBPACK_IMPORTED_MODULE_29__[/* default */ "a"])(app, app.projectsClient, selection => selection.everyItemIsInSection(_utils_constants__WEBPACK_IMPORTED_MODULE_34__[/* OneUpTabs */ "q"].Working) &&
                !selection.hasFolders &&
                selection.every(item => !item.isWeblink) &&
                selection.every(item => !item.isCanvas), app.inNativeHost),
            // Copy link for web link, canvas, cloud docs and generic files.
            Object(_actions_CopyLink__WEBPACK_IMPORTED_MODULE_52__[/* default */ "a"])({
                app,
                getSelectedDocument: ({ id }) => currentFolder.items.find(file => file.id === id),
                isVisible: selection => {
                    return (selection.everyItemIsInSection(_utils_constants__WEBPACK_IMPORTED_MODULE_34__[/* OneUpTabs */ "q"].Working) && !selection.hasFolders);
                },
            }),
            Object(_actions_bookmarkLibrary__WEBPACK_IMPORTED_MODULE_68__[/* bookmark */ "a"])({ intl, project, projectsClient, uiConfig: this.uiConfig }),
            Object(_actions_bookmarkLibrary__WEBPACK_IMPORTED_MODULE_68__[/* unbookmark */ "b"])({ intl, project, projectsClient, uiConfig: this.uiConfig }),
            // Published Items "Copy Link" action:
            Object(_actions_CopyLink__WEBPACK_IMPORTED_MODULE_52__[/* default */ "a"])({
                app,
                getSelectedDocument: ({ id }) => project.published.items.find(file => file.id === id),
                isVisible: selection => selection.everyItemIsInSection(_utils_constants__WEBPACK_IMPORTED_MODULE_34__[/* OneUpTabs */ "q"].Published),
            }),
            // File-level sharing (ShareSheet redirects to invite to Space)
            Object(_actions_shareDocument__WEBPACK_IMPORTED_MODULE_69__[/* default */ "a"])({
                app,
                isVisible: selection => selection.everyItemIsInSection(_utils_constants__WEBPACK_IMPORTED_MODULE_34__[/* OneUpTabs */ "q"].Working) &&
                    selection.every(file => !file.isFolder && !file.isWeblink),
                openShareSheet,
                project,
            }),
            // Launch shareSheet to add/remove members of the items in Published tab (e.g XD prototypes)
            _hosts_Host__WEBPACK_IMPORTED_MODULE_63__[/* default */ "a"].canShare &&
                Object(_actions_addMember__WEBPACK_IMPORTED_MODULE_23__[/* collaboratorAction */ "a"])({
                    app,
                    role: 'viewer',
                    project,
                    getPublishedFile: ({ id }) => project.published.items.find(file => file.id === id),
                    openShareSheet: openShareSheet,
                    // If the user has 'share' permission on 'http://ns.adobe.com/adobecloud/rel/ac/policy',
                    // then they have permission to share.
                    isVisible: selection => selection.everyItemIsInSection(_utils_constants__WEBPACK_IMPORTED_MODULE_34__[/* OneUpTabs */ "q"].Published) &&
                        selection.every(item => project.isContributor ||
                            item.hasPermission(_ccx_public_shared_asset_model_js__WEBPACK_IMPORTED_MODULE_59__[/* Permission */ "p"].Share)),
                    onLeaveAfter: item => this.onLeaveAssetAfterAs1OffEditor([item]),
                }),
            // Leave items in Published tab (e.g XD prototypes)
            Object(_actions_leaveResource__WEBPACK_IMPORTED_MODULE_51__[/* default */ "a"])({
                app,
                isVisible: () => project.isReviewer,
                onLeaveAfter: items => this.onLeaveAssetAfterAs1OffEditor(items),
            }),
            // Delete Library resources
            Object(_actions_deleteResource__WEBPACK_IMPORTED_MODULE_28__[/* default */ "a"])(app, selection => selection.everyItemIsInSection(_utils_constants__WEBPACK_IMPORTED_MODULE_34__[/* OneUpTabs */ "q"].Libraries)),
            // Delete Working Files
            Object(_actions_archive__WEBPACK_IMPORTED_MODULE_26__[/* default */ "a"])({
                archive: app.projectList.deleteWorkingFiles,
                app,
                isVisible: selection => this.selectsWorkingFileAsSpaceContributor(selection),
            }),
            // Delete Published Files
            Object(_actions_archive__WEBPACK_IMPORTED_MODULE_26__[/* default */ "a"])({
                archive: app.projectList.deletePublishedFiles,
                app,
                isVisible: selection => (project === null || project === void 0 ? void 0 : project.isContributor) && selection.everyItemIsInSection(_utils_constants__WEBPACK_IMPORTED_MODULE_34__[/* OneUpTabs */ "q"].Published),
            }),
            Object(_actions_reportAbuse__WEBPACK_IMPORTED_MODULE_67__[/* default */ "a"])({ app, isVisible: selection => selection.hasOnlyNonFolders }),
        ].filter(Boolean);
    }
    /**
     * Get supported actions for the '+ Add' button in SubHeader.
     * This generic list can be filtered out when needed depend on the state of the component.
     */
    get allSectionsUnselectedHeaderActions() {
        const { browseSession: app } = this.props;
        const { cdpContext, currentFolder } = app;
        const project = this.project;
        // Reviewer can't add content to the space.
        if (!currentFolder || !project || project.isReviewer) {
            return [];
        }
        const getAllowedNewFileOptions = (app, currentFolder, project) => {
            const enableCreateDocument = !app.launchedFromCDP && _hosts_Host__WEBPACK_IMPORTED_MODULE_63__[/* default */ "a"].canCreateDocument;
            if (enableCreateDocument) {
                return [
                    Object(_actions_newFile__WEBPACK_IMPORTED_MODULE_30__[/* default */ "a"])([
                        Object(_actions_createDocument__WEBPACK_IMPORTED_MODULE_64__[/* default */ "a"])(async () => ({
                            folder: currentFolder === null || currentFolder === void 0 ? void 0 : currentFolder.assetRef,
                            spaceInfo: await project.getSpaceInfo(),
                        })),
                    ], 'button.newFile', false, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_react_react_spectrum_Icon_FileAdd__WEBPACK_IMPORTED_MODULE_76___default.a, null)),
                ];
            }
            return [];
        };
        const newFileOptions = getAllowedNewFileOptions(app, currentFolder, project);
        const uploadTargetUrn = currentFolder.id;
        return [
            ...newFileOptions,
            _hosts_Host__WEBPACK_IMPORTED_MODULE_63__[/* default */ "a"].showFilePicker &&
                uploadTargetUrn &&
                Object(_actions_upload__WEBPACK_IMPORTED_MODULE_62__[/* default */ "a"])({
                    app,
                    urn: uploadTargetUrn,
                    onUploadAfter: (items) => this.refreshFolder(),
                }),
            project.isContributor &&
                !(cdpContext === null || cdpContext === void 0 ? void 0 : cdpContext.isOpen) &&
                Object(_actions_createFolder__WEBPACK_IMPORTED_MODULE_27__[/* default */ "a"])(app, folder => {
                    var _a;
                    if (folder === null || folder === void 0 ? void 0 : folder.id) {
                        let ctx = app.cdpContext;
                        (_a = ctx === null || ctx === void 0 ? void 0 : ctx.onFolderCreate) === null || _a === void 0 ? void 0 : _a.call(ctx, currentFolder.id);
                        if ((ctx === null || ctx === void 0 ? void 0 : ctx.isCopy) || (ctx === null || ctx === void 0 ? void 0 : ctx.isMove) || (ctx === null || ctx === void 0 ? void 0 : ctx.isSave)) {
                            app.navigateAndNotify(app.sameSpaceRouteWithDetails({ folderId: folder.id }));
                        }
                        else {
                            currentFolder.load();
                        }
                    }
                }),
            Object(_actions_createWeblink__WEBPACK_IMPORTED_MODULE_53__[/* default */ "a"])(project.createWeblink, app, () => this.refreshFolder()),
            Object(_actions_addResource__WEBPACK_IMPORTED_MODULE_25__[/* default */ "a"])(app, project, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_1__[/* FormattedMessage */ "c"], { id: 'button.addLibrary' })),
        ].filter(Boolean);
    }
    async navigateToFolderByPath(fullPath) {
        var _a;
        const project = this.project;
        const { browseSession } = this.props;
        const { currentFolder } = browseSession;
        if (!project || !currentFolder) {
            return;
        }
        try {
            const adobeAsset = await ((_a = _stores_SharedStore__WEBPACK_IMPORTED_MODULE_70__[/* sharedStore */ "d"].sharedAssetModel) === null || _a === void 0 ? void 0 : _a.hostAssetContext.getAssetWithRepoPath(fullPath, project.repositoryId));
            const route = browseSession.sameSpaceRouteWithDetails({ folderId: adobeAsset === null || adobeAsset === void 0 ? void 0 : adobeAsset.id });
            await browseSession.navigateAndNotify(route);
        }
        catch (e) {
            _stores_Settings__WEBPACK_IMPORTED_MODULE_13__[/* settings */ "b"].logger.error('Cannot navigate:', e);
        }
    }
    /**
     * Get an unfiltered, sorted list of items for a given section, _ignoring_
     * the "Show Compatible" filters. (The only items excluded from this list
     * are locally-deleted "isHidden" items, which are hidden regardless.)
     */
    getUnfilteredItems(tab) {
        var _a, _b;
        const { browseSession } = this.props;
        const { currentFolder } = browseSession;
        let items;
        switch (tab) {
            case _utils_constants__WEBPACK_IMPORTED_MODULE_34__[/* OneUpTabs */ "q"].Working:
                items = currentFolder === null || currentFolder === void 0 ? void 0 : currentFolder.getSortedItems(this.uiConfig);
                break;
            case _utils_constants__WEBPACK_IMPORTED_MODULE_34__[/* OneUpTabs */ "q"].Published:
                items = (_a = this.project) === null || _a === void 0 ? void 0 : _a.published.getSortedItems(this.uiConfig);
                break;
            case _utils_constants__WEBPACK_IMPORTED_MODULE_34__[/* OneUpTabs */ "q"].Libraries:
                // In the main 1up page, the Libraries section should always
                // sort by default (name, ascending), ignoring the current sort.
                // In "View All", the section will use its own sort (returned by this.uiConfig).
                items = (_b = this.project) === null || _b === void 0 ? void 0 : _b.resources.getSortedItems(this.isViewAll ? this.uiConfig : _stores_UIConfig__WEBPACK_IMPORTED_MODULE_15__[/* emptyUIConfig */ "b"]);
                break;
            default:
                break;
        }
        // Hide locally-deleted items in all listings. (This isn't considered a filter.)
        return (items !== null && items !== void 0 ? items : []).filter(element => !element.isHidden);
    }
    getTitlePathTabCrumbs() {
        const { browseSession: app } = this.props;
        const project = this.project;
        const currentFolder = app.currentFolder;
        const { rootFolderPath } = project;
        return (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_header_TabCrumbs__WEBPACK_IMPORTED_MODULE_22__[/* default */ "a"], { onNavigateSpacesRoot: this.onBack, path: currentFolder.repoPath, rootPath: rootFolderPath, rootName: project.displayName, projectColor: project.color, onClick: async ({ path }) => {
                const isRoot = path === '/';
                if (isRoot) {
                    this.props.browseSession.navigateAndNotify(app.sameSpaceRouteWithDetails({}));
                }
                else {
                    if (!rootFolderPath) {
                        _stores_Settings__WEBPACK_IMPORTED_MODULE_13__[/* settings */ "b"].logger.error('No rootFolderPath:', path);
                        return;
                    }
                    const fullPath = rootFolderPath + path;
                    await this.navigateToFolderByPath(fullPath);
                }
            } }));
    }
    getTabProps(tab = this.currentTab) {
        var _a, _b, _c;
        const { browseSession: app } = this.props;
        const project = this.project;
        const currentFolder = app.currentFolder;
        const getTabCrumbsWithTitle = (titleId) => (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_header_TabCrumbs__WEBPACK_IMPORTED_MODULE_22__[/* default */ "a"], { onNavigateSpacesRoot: this.onBack, path: `/${app.intl.formatMessage({
                id: titleId,
            })}`, rootPath: "", rootName: project.displayName, projectColor: project.color, onClick: async () => {
                app.navigateAndNotify(app.sameSpaceRouteWithDetails({}));
            } }));
        const showSpaceInfo = !app.launchedFromCDP
            ? () => {
                this.props.onProjectActionSelected(_actions_ProjectAction__WEBPACK_IMPORTED_MODULE_73__[/* default */ "a"].showProjectInfo);
            }
            : undefined;
        switch (project && tab) {
            case _utils_constants__WEBPACK_IMPORTED_MODULE_34__[/* OneUpTabs */ "q"].Libraries:
                return {
                    filter: true,
                    headerActions: [Object(_actions_addResource__WEBPACK_IMPORTED_MODULE_25__[/* default */ "a"])(app, project)],
                    subcategory: _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_35__[/* Subcategory */ "c"].Libraries,
                    subtype: _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_35__[/* Subtype */ "d"].librariesTab,
                    title: getTabCrumbsWithTitle('project1up.subheader.libraries.title'),
                    workflow: _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_35__[/* Workflow */ "f"].Libraries,
                    metadataFormat: 'libraries',
                };
            case _utils_constants__WEBPACK_IMPORTED_MODULE_34__[/* OneUpTabs */ "q"].Published:
                return {
                    headerActions: [],
                    subcategory: _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_35__[/* Subcategory */ "c"].Outputs,
                    subtype: _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_35__[/* Subtype */ "d"].outputsTab,
                    title: (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_header_ProjectNameWithBackButton__WEBPACK_IMPORTED_MODULE_58__[/* ProjectNameWithBackButton */ "a"], { inUAP: app.launchedFromCDP, onBack: this.onBack, hideBackButton: (_a = this.props.browseSession.route) === null || _a === void 0 ? void 0 : _a.hideBackButton, showSpaceInfo: showSpaceInfo })),
                    workflow: _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_35__[/* Workflow */ "f"].Outputs,
                    metadataFormat: 'mimetype',
                };
            case _utils_constants__WEBPACK_IMPORTED_MODULE_34__[/* OneUpTabs */ "q"].Working:
                const ingestProps = {
                    subcategory: _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_35__[/* Subcategory */ "c"].WorkingFiles,
                    subtype: _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_35__[/* Subtype */ "d"].workingFilesTab,
                    workflow: _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_35__[/* Workflow */ "f"].WorkingFiles,
                };
                if ((_b = app.cdpContext) === null || _b === void 0 ? void 0 : _b.isCopy) {
                    ingestProps.subcategory = _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_35__[/* Subcategory */ "c"].CopyToModal;
                    ingestProps.workflow = _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_35__[/* Workflow */ "f"].CopyFiles;
                }
                const showFullTitle = this.isOneUpRootView;
                /**
                 * There are 2 different views of Project1up:
                 * - Root view: SubHeader has a second row for actions.
                 *  - If no section has content, we currently use the empty view of the Files section to represent
                 * empty view for the whole oneup :D, which has a button to add actions, and headerActions will then
                 * include `allSectionsUnselectedHeaderActions`
                 * - Single section/tab view: SubHeader is compacted to one row. HeaderActions are actions for the
                 * tab only (via getTabProps)
                 *  - e.g. For Files/selected folder view, HeaderActions includes: 'New Folder', 'Upload' and 'Web link'
                 *  - Use this view in UAP.
                 * If in UAP, headerActions includes only 'New Folder' action
                 */
                let isError = currentFolder.loadState === _packages_CDOView_stores_constants__WEBPACK_IMPORTED_MODULE_39__[/* ProcessingState */ "c"].Error;
                let headerActions;
                // On error state do not show the header actions in the one up view.
                if (isError) {
                    headerActions = [];
                }
                else {
                    let filteredHeaderActions = this.allSectionsUnselectedHeaderActions.filter(({ id }) => [
                        'createCanvas',
                        'newFile',
                        'createFolder',
                        'upload',
                        'createWeblink',
                    ].includes(id));
                    headerActions =
                        this.allRelevantSectionsAppearEmpty && this.isOneUpRootView
                            ? this.allSectionsUnselectedHeaderActions
                            : filteredHeaderActions;
                }
                if (app.launchedFromCDP) {
                    headerActions = headerActions.filter(({ id }) => { var _a; return ((_a = app.cdpContext) === null || _a === void 0 ? void 0 : _a.allowsCreatingItems) && id === 'createFolder'; });
                }
                let workingFilesMetadataFormat = 'fileExtensionAndDateModified';
                if (!app.isMobileLayout && this.uiConfig.view === _utils_constants__WEBPACK_IMPORTED_MODULE_34__[/* ViewMode */ "L"].List) {
                    // show only file extension in non-mobile list views
                    workingFilesMetadataFormat = 'fileExtension';
                }
                return {
                    filter: !this.isOneUpRootView && !app.launchedFromCDP,
                    headerActions,
                    title: showFullTitle ? (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_header_ProjectNameWithBackButton__WEBPACK_IMPORTED_MODULE_58__[/* ProjectNameWithBackButton */ "a"], { inUAP: app.launchedFromCDP, onBack: this.onBack, showSpaceInfo: showSpaceInfo, hideBackButton: (_c = this.props.browseSession.route) === null || _c === void 0 ? void 0 : _c.hideBackButton })) : (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_react_react_spectrum_OverlayTrigger__WEBPACK_IMPORTED_MODULE_7___default.a, { trigger: ['hover'], placement: 'right' },
                        this.getTitlePathTabCrumbs(),
                        react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_react_react_spectrum_Tooltip__WEBPACK_IMPORTED_MODULE_10___default.a, null, currentFolder === null || currentFolder === void 0 ? void 0 : currentFolder.name))),
                    metadataFormat: workingFilesMetadataFormat,
                    ...ingestProps,
                };
            default:
                return {
                    headerActions: [],
                    metadataFormat: 'fileExtension',
                };
        }
    }
    /**
     * Get the list of sections that should be loaded into the current view.
     * (Some sections may still be hidden if they end up having no content.)
     */
    get relevantSectionNames() {
        var _a;
        const { browseSession: app } = this.props;
        const project = this.project;
        const currentFolder = app.currentFolder;
        if (!project || !currentFolder) {
            return [];
        }
        if (this.isOneUpRootView && !app.launchedFromCDP) {
            return [_utils_constants__WEBPACK_IMPORTED_MODULE_34__[/* OneUpTabs */ "q"].Working, _utils_constants__WEBPACK_IMPORTED_MODULE_34__[/* OneUpTabs */ "q"].Libraries, _utils_constants__WEBPACK_IMPORTED_MODULE_34__[/* OneUpTabs */ "q"].Published];
        }
        else if (this.isOneUpRootView &&
            app.launchedFromCDP && ((_a = app.cdpContext) === null || _a === void 0 ? void 0 : _a.isPlace) &&
            _stores_SharedStore__WEBPACK_IMPORTED_MODULE_70__[/* sharedStore */ "d"].enablePlaceLinkOrEmbedArtifacts) {
            // CCWeb can select files and published items.
            return [_utils_constants__WEBPACK_IMPORTED_MODULE_34__[/* OneUpTabs */ "q"].Published, _utils_constants__WEBPACK_IMPORTED_MODULE_34__[/* OneUpTabs */ "q"].Working];
        }
        else if (this.currentTab === _utils_constants__WEBPACK_IMPORTED_MODULE_34__[/* OneUpTabs */ "q"].Libraries) {
            return [_utils_constants__WEBPACK_IMPORTED_MODULE_34__[/* OneUpTabs */ "q"].Libraries];
        }
        else if (this.currentTab === _utils_constants__WEBPACK_IMPORTED_MODULE_34__[/* OneUpTabs */ "q"].Published) {
            return [_utils_constants__WEBPACK_IMPORTED_MODULE_34__[/* OneUpTabs */ "q"].Published];
        }
        else if (this.currentTab === _utils_constants__WEBPACK_IMPORTED_MODULE_34__[/* OneUpTabs */ "q"].Working) {
            return [_utils_constants__WEBPACK_IMPORTED_MODULE_34__[/* OneUpTabs */ "q"].Working];
        }
        else {
            return [];
        }
    }
    get tabToSectionMap() {
        var _a, _b;
        return {
            [_utils_constants__WEBPACK_IMPORTED_MODULE_34__[/* OneUpTabs */ "q"].Working]: this.props.browseSession.currentFolder,
            [_utils_constants__WEBPACK_IMPORTED_MODULE_34__[/* OneUpTabs */ "q"].Published]: (_a = this.project) === null || _a === void 0 ? void 0 : _a.published,
            [_utils_constants__WEBPACK_IMPORTED_MODULE_34__[/* OneUpTabs */ "q"].Libraries]: (_b = this.project) === null || _b === void 0 ? void 0 : _b.resources,
        };
    }
    /**
     * Get the SpaceSection for every relevant (loadable) section on this page.
     */
    relevantSections({ all = true } = {}) {
        let relevantSections = [];
        // On mounted:
        // - Libraries: Fetch all.
        // - For space contributor
        //    - Working files: Default tab. Always show so fetch all.
        //    - Published items: Only show if there are files, so we only need the first page in order to decide.
        // - For space reviewer
        //    - Working files: Only show if there are items. There is no default tab so fetch all.
        //    - Published items: Only show if there are items. There is no default tab so fetch all.
        // On next tab switch: Fetch all working files or published items depends on current tab.
        let tabs = [];
        if (all) {
            tabs = this.relevantSectionNames;
        }
        else if (this.currentTab) {
            tabs = [this.currentTab];
        }
        relevantSections = tabs
            .map(oneUpTab => {
            var _a;
            return ({
                tab: oneUpTab,
                section: this.tabToSectionMap[oneUpTab],
                loadAllPages: all && ((_a = this.project) === null || _a === void 0 ? void 0 : _a.isContributor) &&
                    oneUpTab === _utils_constants__WEBPACK_IMPORTED_MODULE_34__[/* OneUpTabs */ "q"].Published &&
                    !this.isPublishedViewRequested
                    ? false
                    : true,
            });
        })
            .filter(relevantSection => Boolean(relevantSection.section));
        return relevantSections;
    }
    /**
     * Returns true if this section contains _any_ visible items, filtered with
     * the current "Show Compatible" settings. If all items are filtered out,
     * this will return false, even if that section otherwise has items.
     */
    sectionHasVisibleItems(tab) {
        return this.getUnfilteredItems(tab).some(this.isItemVisibleWithCurrentFilters);
    }
    /**
     * Returns true if all relevant sections _appear_ empty, respecting the
     * current "Show Compatible" filters. If this returns true, no items are
     * currently displayed, even though the Space might have content.
     */
    get allRelevantSectionsAppearEmpty() {
        return this.relevantSectionNames.every(sectionName => {
            return !this.sectionHasVisibleItems(sectionName);
        });
    }
    /**
     * Returns true if the Space has no content at all, meaning we should
     * display the full onboarding empty state.
     */
    get spaceIsCompletelyEmpty() {
        return [_utils_constants__WEBPACK_IMPORTED_MODULE_34__[/* OneUpTabs */ "q"].Working, _utils_constants__WEBPACK_IMPORTED_MODULE_34__[/* OneUpTabs */ "q"].Libraries, _utils_constants__WEBPACK_IMPORTED_MODULE_34__[/* OneUpTabs */ "q"].Published].every(sectionName => {
            return this.getUnfilteredItems(sectionName).length === 0;
        });
    }
    // Called when the user clicks "view space" on the toast after copying or moving assets from space to space.
    // There is similar handling but in ccx-start-uxp for copy assets from homescreen's Your Files tab to a space.
    onViewProject(item) {
        const { browseSession } = this.props;
        if (item.type === 'project') {
            // Navigate to the space root view
            browseSession.navigateAndNotify(new _utils_Route__WEBPACK_IMPORTED_MODULE_36__[/* SpaceRoute */ "e"](item.id, {
                view: _utils_constants__WEBPACK_IMPORTED_MODULE_34__[/* OneUpTabs */ "q"].Working,
            }));
        }
        else {
            // Navigate to the space folder view
            try {
                const space = JSON.parse(item.spaceInfo);
                browseSession.navigateAndNotify(new _utils_Route__WEBPACK_IMPORTED_MODULE_36__[/* SpaceRoute */ "e"](space.spaceId, { folderId: item.id }));
            }
            catch (error) {
                _stores_Settings__WEBPACK_IMPORTED_MODULE_13__[/* settings */ "b"].logger.error('Cannot navigate to space: ', error);
            }
        }
    }
    onProjectUpdatedAfterCopyOrMove({ id }, items, autoSelectItems = false) {
        const { project } = this;
        const { currentFolder } = this.props.browseSession;
        if (project && currentFolder && [project.id, currentFolder.id].includes(id)) {
            this.props.browseSession.refreshCurrentSpace({ skipSpaceRefresh: true }).then(() => {
                if (autoSelectItems && items) {
                    const visibleItems = this.getUnfilteredItems(_utils_constants__WEBPACK_IMPORTED_MODULE_34__[/* OneUpTabs */ "q"].Working).filter(this.isItemVisibleWithCurrentFilters);
                    for (const item of items) {
                        let [name] = Object(_utils_getDisplayName__WEBPACK_IMPORTED_MODULE_71__[/* default */ "a"])(item.name, item.type);
                        let found = visibleItems.find(file => file.displayName === name);
                        if (found) {
                            this.selectionStore.addSelection(found);
                        }
                    }
                }
            });
        }
    }
    refreshFolder() {
        const { currentFolder } = this.props.browseSession;
        if (currentFolder) {
            this.props.browseSession.refreshCurrentSpace({ skipSpaceRefresh: true });
        }
    }
    get isOneUpRootView() {
        const { project } = this;
        const { currentFolder } = this.props.browseSession;
        return ((this.currentTab === _utils_constants__WEBPACK_IMPORTED_MODULE_34__[/* OneUpTabs */ "q"].Working && (project === null || project === void 0 ? void 0 : project.isRootFolder(currentFolder === null || currentFolder === void 0 ? void 0 : currentFolder.id))) ||
            this.currentTab === _utils_constants__WEBPACK_IMPORTED_MODULE_34__[/* OneUpTabs */ "q"].Published);
    }
    /**
     * Show the compatible filter only when `compatibleTypes` is provided.
     */
    get showCompatibleFilter() {
        const { projectsClient: { compatibleTypes }, launchedFromCDP, cdpContext, } = this.props.browseSession;
        // CCPROJ-6146 : Don't show the compatible filter for Libraries subpage, per requirements.
        return (!!compatibleTypes &&
            compatibleTypes.length > 0 &&
            this.currentTab !== _utils_constants__WEBPACK_IMPORTED_MODULE_34__[/* OneUpTabs */ "q"].Libraries &&
            (!launchedFromCDP || !!(cdpContext === null || cdpContext === void 0 ? void 0 : cdpContext.isCopyMoveSave)));
    }
    /**
     * If the compatible filter is shown, detect if only showing compatible files.
     * If compatible filter is not set, treat it as show all files.
     */
    get showOnlyCompatible() {
        return (this.showCompatibleFilter &&
            this.uiConfig.activeFilterPreference === _header_AppCompatibleFilterButton__WEBPACK_IMPORTED_MODULE_61__[/* AppCompatibleFilterOptions */ "a"].showCompatible);
    }
    async componentDidMount() {
        var _a, _b, _c, _d, _e, _f, _g;
        const start = _utils_performance__WEBPACK_IMPORTED_MODULE_72__[/* default */ "a"].now();
        const { browseSession } = this.props;
        const { cdpContext } = browseSession;
        // Runs only once in this lifecycle method per clicking a different space
        // and lets loaders handle getting new data or loading from cache
        // Should not need to refreshSpaceMetaData here since doNavigate will call refreshCurrentSpace
        await this.updateTab({ all: true });
        this.reactionDisposers = [
            Object(mobx__WEBPACK_IMPORTED_MODULE_2__[/* reaction */ "B"])(() => [
                _stores_SharedStore__WEBPACK_IMPORTED_MODULE_70__[/* sharedStore */ "d"].reloadCounter,
                this.project,
                browseSession.currentFolder,
                this.currentTab,
                browseSession.folderUpdateCounter,
            ], async () => {
                var _a;
                // When notifications support role changes, we can remove this refresh
                if (!browseSession.showOfflineWithFeatureFlag) {
                    await ((_a = this.project) === null || _a === void 0 ? void 0 : _a.refreshSpaceMetaData());
                }
                await this.updateTab({ clearSelections: false });
            }, {
                scheduler: setImmediate,
                equals: ([oldReloadCounter, oldProject, oldFolder, oldTab, oldUpdateCounter], [newReloadCounter, newProject, newFolder, newTab, newUpdateCounter]) => oldReloadCounter === newReloadCounter &&
                    oldProject === newProject &&
                    oldFolder === newFolder &&
                    oldTab === newTab &&
                    oldUpdateCounter === newUpdateCounter,
            }),
            // clear out selections when we go offline because elements that
            // are not available offline are disabled, and can't be deselected
            Object(mobx__WEBPACK_IMPORTED_MODULE_2__[/* reaction */ "B"])(() => [browseSession.showOfflineWithFeatureFlag], async ([showOfflineWithFeatureFlag]) => {
                if (showOfflineWithFeatureFlag &&
                    this.selectionStore.hasAny &&
                    this.selectionStore.selectedElements.some(e => !e.isAvailableOffline)) {
                    this.selectionStore.clear();
                }
            }),
            Object(mobx__WEBPACK_IMPORTED_MODULE_2__[/* reaction */ "B"])(() => [browseSession.showOffline, browseSession.activeRenameState], async ([showOffline, activeRenameState]) => {
                var _a;
                if (showOffline &&
                    activeRenameState.element !== undefined &&
                    !activeRenameState.element.isAvailableOffline) {
                    // note: this will prevent any extra confusing validation that would happen due
                    // to the Rename component's onBlur function that attempts to submit the name change.
                    (_a = browseSession.activeRenameState.element) === null || _a === void 0 ? void 0 : _a.renameEnd();
                    await browseSession.projectsClient.showModal(react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_Dialog__WEBPACK_IMPORTED_MODULE_81__[/* default */ "a"], { className: _styles_Project1Up_css__WEBPACK_IMPORTED_MODULE_50___default.a.errorDialog, variant: "error", title: browseSession.intl.formatMessage({
                            id: 'rename.offline.heading',
                        }), onClose: () => browseSession.resetActiveRenameState(), confirmLabel: browseSession.intl.formatMessage({ id: 'button.ok' }), autoFocusButton: "confirm" },
                        react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_1__[/* FormattedMessage */ "c"], { id: "rename.offline" })));
                }
            }),
        ];
        if (!cdpContext) {
            if (_hosts_Host__WEBPACK_IMPORTED_MODULE_63__[/* default */ "a"].showStarterUserToast) {
                this._toastKey = await browseSession.projectsClient.toastManager.addToast(this.props.intl.formatMessage({
                    id: 'starterUser.project1upNavigation',
                }), { toastNameId: 'starterToast' });
            }
        }
        // Ideally this should be configured when initializing projects by the outer component (FMHS/UAP)
        // Temporarily placed here to reduce PR noise
        if (_hosts_Host__WEBPACK_IMPORTED_MODULE_63__[/* default */ "a"] instanceof _hosts_UXPHost__WEBPACK_IMPORTED_MODULE_65__[/* default */ "a"]) {
            _stores_SharedStore__WEBPACK_IMPORTED_MODULE_70__[/* sharedStore */ "d"].updateStore({
                openUtils: {
                    open: docs => _hosts_Host__WEBPACK_IMPORTED_MODULE_63__[/* default */ "a"].cdo.openDocuments(docs),
                },
            });
        }
        const scaffoldEvent = _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_35__[/* default */ "g"].scaffoldEvent(_utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_35__[/* Subcategory */ "c"].Space, _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_35__[/* Subtype */ "d"].space, _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_35__[/* Type */ "e"].open, _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_35__[/* Workflow */ "f"].Spaces);
        const elapsedTime = _utils_performance__WEBPACK_IMPORTED_MODULE_72__[/* default */ "a"].now() - start;
        // Dunamis Analytics
        _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_35__[/* default */ "g"].fireEvent({
            event: {
                ...scaffoldEvent.event,
                value: elapsedTime,
                org_guid: (_b = _stores_User__WEBPACK_IMPORTED_MODULE_14__[/* default */ "a"].getTeamFromId((_a = this.project) === null || _a === void 0 ? void 0 : _a.teamId)) === null || _b === void 0 ? void 0 : _b.repositoryID,
                context_guid: null,
            },
            content: {
                id: (_c = this.project) === null || _c === void 0 ? void 0 : _c.id,
                name: (_d = this.project) === null || _d === void 0 ? void 0 : _d.name,
                author: (_f = _stores_User__WEBPACK_IMPORTED_MODULE_14__[/* default */ "a"].getTeamFromId((_e = this.project) === null || _e === void 0 ? void 0 : _e.teamId)) === null || _f === void 0 ? void 0 : _f.collaboratorRole,
            },
            ui: {
                view_type: _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_35__[/* Workflow */ "f"].Project1Up,
            },
            custom: {
                team_id: (_g = this.project) === null || _g === void 0 ? void 0 : _g.teamId,
            },
        });
    }
    componentWillUnmount() {
        for (const dispose of this.reactionDisposers) {
            dispose();
        }
        if (!this.props.browseSession.cdpContext && this._toastKey !== -1) {
            this.props.browseSession.projectsClient.toastManager.removeToast(this._toastKey);
            this._toastKey = -1;
        }
        this.props.browseSession.projectsClient.setNativeTextfieldsHidden(false);
    }
    resetFilter() {
        this.filter = '';
    }
    onViewModeChange(value) {
        if (this.uiConfig.view !== value) {
            this.uiConfig.view = value;
            // viewMode change resets scrollIndex and may bring back a previously scrolled-out textfield into the scrollView
            // Reset any previously applied workaround on the textfield(s).
            this.resetTextfieldsWorkaround();
            this.props.browseSession.resetActiveRenameState();
            const { workflow } = this.getTabProps();
            if (workflow) {
                _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_35__[/* default */ "g"].fireEvent({
                    ..._utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_35__[/* default */ "g"].scaffoldEvent(_utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_35__[/* Subcategory */ "c"].Navigation, value, _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_35__[/* Type */ "e"].click, workflow),
                    ui: this.uiConfig.cdoUISettings,
                });
            }
        }
    }
    onContentViewerRendered(tab, elements) {
        if (this.currentTab == tab && elements.length) {
            const { workflow, subcategory, subtype } = this.getTabProps(tab);
            _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_35__[/* default */ "g"].fireEvent(_utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_35__[/* default */ "g"].scaffoldEvent(subcategory, `${subtype}-complete`, _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_35__[/* Type */ "e"].render, workflow));
        }
    }
    /**
     * Load the contents for the specified tab or folder. If `idOrLink` is
     * provided, load the content at the specified folder. Otherwise, default to
     * the root folder for the tab. When navigating to a folder, the optional
     * `folderAsset` can provide additional loading context.
     */
    async updateTab({ all = false, clearSelections = true } = {}) {
        const tab = this.currentTab;
        const { project } = this;
        const { browseSession } = this.props;
        const { currentFolder, requestController, cdpContext } = browseSession;
        if (!currentFolder || !project || !tab || project.reloadFailure) {
            return;
        }
        this.resetFilter();
        // updateTab may remove any textfields from the scrollView, for which we might have applied onDialogStateChanged workaround.
        // Reset if the textfield is present in the view or updateTab() is called for switching within the view.
        this.resetTextfieldsWorkaround();
        if (clearSelections) {
            this.selectionStore.clear();
        }
        const { subcategory, subtype, workflow } = this.getTabProps(tab);
        if (subcategory && subtype && workflow) {
            _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_35__[/* default */ "g"].fireEvent({
                ..._utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_35__[/* default */ "g"].scaffoldEvent(subcategory, subtype, _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_35__[/* Type */ "e"].click, workflow),
                content: { id: project.id, name: project.name, type: 'project' },
            });
        }
        const promises = [];
        // Load the appropriate sections for this page.
        for (const { section, loadAllPages, tab } of this.relevantSections({ all })) {
            // CPROJ-8790 fix disappearing offline libraries
            // by preventing offline refresh when libraries are already loaded
            if (browseSession.showOfflineWithFeatureFlag && !section.allowOfflineLoad) {
                continue;
            }
            // if the load has been done within 1 second, we don't load it again.
            const load = () => section.load({ exception: true, refreshTimeout: 1000, loadAllPages });
            promises.push(requestController.runWithRetry(load));
        }
        try {
            await Promise.all(promises);
        }
        catch (e) {
            _stores_Settings__WEBPACK_IMPORTED_MODULE_13__[/* settings */ "b"].logger.warn('Error updating tabs', e);
        }
        if (cdpContext && tab === _utils_constants__WEBPACK_IMPORTED_MODULE_34__[/* OneUpTabs */ "q"].Working) {
            // By this time we are supposed to have the document loaded.
            // BrowseSession takes care of loading the folder if the links or id are not available.
            if (currentFolder) {
                this.setProjectSelection(currentFolder).catch(err => _stores_Settings__WEBPACK_IMPORTED_MODULE_13__[/* settings */ "b"].logger.warn(`Error setting project selection`, err));
            }
        }
    }
    /**
     * Determine if the item is included in the filter or not.
     * This is used to show/hide and enable/disable an item.
     *
     * @param {IAssetModel} item - The item to filter.
     * @param {string[]} filter - The list of mimetype, if provided, that will be used to determine if the item should be included in the listing.
     * @returns {boolean} True if no filter is set or the item is included in the filter, false otherwise.
     */
    isItemIncluded(item, filter) {
        const { fileExtension, type } = item;
        return (_utils_constants__WEBPACK_IMPORTED_MODULE_34__[/* FOLDER_MIMETYPES */ "k"].includes(type) ||
            filter === undefined ||
            filter.length === 0 || (filter === null || filter === void 0 ? void 0 : filter.includes(type)) || (filter === null || filter === void 0 ? void 0 : filter.includes(fileExtension || '')));
    }
    get listViewColumns() {
        var _a;
        // Don't show columns for an empty view.
        if (this.allRelevantSectionsAppearEmpty) {
            return [];
        }
        // const { mobile, launchedFromCDP, supportSelectionInUAP } = this.props;
        const { browseSession: app } = this.props;
        const mobile = app.isMobileLayout;
        const supportSelectionInUAP = (_a = app.cdpContext) === null || _a === void 0 ? void 0 : _a.supportSelection;
        const launchedFromCDP = app.launchedFromCDP;
        let column = ['selectbox', 'name', 'modifiedDate', 'size', 'action'];
        if (mobile) {
            column = ['name'];
        }
        else if (supportSelectionInUAP) {
            column = ['selectbox', 'name', 'modifiedDate', 'size'];
        }
        else if (launchedFromCDP) {
            column = ['name', 'modifiedDate'];
        }
        return column;
    }
    renderTab(tab, options = {}) {
        var _a, _b, _c;
        if (!tab) {
            return undefined;
        }
        const { summaryMode = false, filter } = options;
        const { browseSession: app } = this.props;
        const mode = (_a = app.cdpContext) === null || _a === void 0 ? void 0 : _a.mode;
        const { headerActions, subcategory, metadataFormat } = this.getTabProps(tab);
        const project = this.project;
        const currentFolder = app.currentFolder;
        const supportSelectionInUAP = (_b = app.cdpContext) === null || _b === void 0 ? void 0 : _b.supportSelection;
        // Always show Libraries in Grid View on the main page.
        let viewMode = summaryMode ? _utils_constants__WEBPACK_IMPORTED_MODULE_34__[/* ViewMode */ "L"].Grid : this.uiConfig.view;
        const sharedProps = {
            actionMenuItems: this.getActionMenuItems(),
            currentProject: project,
            elements: this.getUnfilteredItems(tab).filter(this.isItemVisibleWithCurrentFilters),
            ingestSubcategory: subcategory,
            isLoading: this.isLoading,
            key: tab,
            mobile: app.isMobileLayout,
            mode,
            launchedFromCDP: app.launchedFromCDP,
            isMobileLayout: !!app.isMobileLayout,
            onItemClick: this.onItemClick,
            projectList: app.projectList,
            selectionStore: this.selectionStore,
            selectAllDisabled: true,
            supportSelectionInUAP: supportSelectionInUAP,
            singleSelection: (_c = app.cdpContext) === null || _c === void 0 ? void 0 : _c.isSingleSelection,
            shouldRenderItemAsDisabled: this.shouldRenderItemAsDisabled,
            tab,
            uiConfig: this.uiConfig,
            onRendered: this.onContentViewerRendered.bind(this),
            onSelectionChange: supportSelectionInUAP ? this.onSelectionChange : undefined,
            onSortChange: this.onSortChange,
            isHeaderVisible: viewMode === _utils_constants__WEBPACK_IMPORTED_MODULE_34__[/* ViewMode */ "L"].List && !summaryMode,
            listViewColumns: this.listViewColumns,
            activeRenameState: app.activeRenameState,
        };
        const readonly = project.role !== _stores_Project__WEBPACK_IMPORTED_MODULE_12__[/* Role */ "c"].CONTRIBUTOR;
        switch (tab) {
            case _utils_constants__WEBPACK_IMPORTED_MODULE_34__[/* OneUpTabs */ "q"].Libraries:
                const contentBelowHeader = project.resources.brokenResourceCount > 0 && (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_BrokenResourcesBanner__WEBPACK_IMPORTED_MODULE_16__[/* default */ "a"], null));
                return (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_ContentViewer__WEBPACK_IMPORTED_MODULE_17__[/* default */ "a"], Object.assign({}, sharedProps, { viewMode: viewMode, className: viewMode === _utils_constants__WEBPACK_IMPORTED_MODULE_34__[/* ViewMode */ "L"].Grid ? _styles_Project1Up_css__WEBPACK_IMPORTED_MODULE_50___default.a.librariesContentViewer_grid : '', renditionType: summaryMode ? 'mosaicMini' : 'mosaic', tab: _utils_constants__WEBPACK_IMPORTED_MODULE_34__[/* OneUpTabs */ "q"].Libraries, filter: filter, metadataFormat: metadataFormat, errorState: project.resources.loadState === _packages_CDOView_stores_constants__WEBPACK_IMPORTED_MODULE_39__[/* ProcessingState */ "c"].Error, contentBelowHeader: contentBelowHeader, limitRowCount: summaryMode, renderErrorState: () => {
                        return (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_EmptyState__WEBPACK_IMPORTED_MODULE_18__[/* default */ "a"], { description: app.intl.formatMessage({
                                id: 'projectInfo.error.description',
                            }), heading: react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_1__[/* FormattedMessage */ "c"], { id: "projectInfo.error.heading", values: {
                                    section: app.intl.formatMessage({
                                        id: 'project1Up.section.libraries',
                                    }),
                                } }), illustration: react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_images_ErrorLoading_svg__WEBPACK_IMPORTED_MODULE_43__[/* default */ "a"], null) }));
                    }, renderEmptyState: () => {
                        var _a;
                        if (summaryMode) {
                            return null;
                        }
                        const addResourceAction = !app.isMobileLayout && ((_a = headerActions === null || headerActions === void 0 ? void 0 : headerActions.find(({ id }) => id === 'addResource')) === null || _a === void 0 ? void 0 : _a.onClick);
                        return (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null,
                            contentBelowHeader,
                            filter ? (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(FilterEmptyState, { onClick: () => {
                                    this.resetFilter();
                                    this.renderScrollableArea();
                                }, filterText: filter })) : (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_EmptyState__WEBPACK_IMPORTED_MODULE_18__[/* default */ "a"], { heading: react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_1__[/* FormattedMessage */ "c"], { id: "project1Up.section.libraries.empty.heading" }), description: react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_1__[/* FormattedMessage */ "c"], { id: "project1Up.section.libraries.empty.description" }), illustration: react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_images_EmptyLibraries_svg__WEBPACK_IMPORTED_MODULE_41__[/* default */ "a"], null) }, !app.isMobileLayout && project.isContributor && (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_react_react_spectrum_Button__WEBPACK_IMPORTED_MODULE_5___default.a, { variant: "cta", onClick: addResourceAction },
                                react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_1__[/* FormattedMessage */ "c"], { id: "project1Up.section.libraries.empty.cta" })))))));
                    } })));
            case _utils_constants__WEBPACK_IMPORTED_MODULE_34__[/* OneUpTabs */ "q"].Working:
                return (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_ContentViewer__WEBPACK_IMPORTED_MODULE_17__[/* default */ "a"], Object.assign({}, sharedProps, { tab: _utils_constants__WEBPACK_IMPORTED_MODULE_34__[/* OneUpTabs */ "q"].Working, filter: filter, metadataFormat: metadataFormat, onboardingRowHeight: ONBOARDING_ROW_HEIGHT, emptyStateClassname: _styles_Project1Up_css__WEBPACK_IMPORTED_MODULE_50___default.a.emptyWorkingState, renderErrorState: () => {
                        if (app.showOfflineWithFeatureFlag &&
                            app.activeRenameState.element === undefined) {
                            return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_Offline__WEBPACK_IMPORTED_MODULE_80__[/* default */ "a"], { cdoUISettings: this.uiConfig.cdoUISettings });
                        }
                        else if (!project.isRootFolder(currentFolder === null || currentFolder === void 0 ? void 0 : currentFolder.id)) {
                            return (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_EmptyState__WEBPACK_IMPORTED_MODULE_18__[/* default */ "a"], { illustration: react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_images_ErrorLoading_svg__WEBPACK_IMPORTED_MODULE_43__[/* default */ "a"], null), description: react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_1__[/* FormattedMessage */ "c"], { id: "folder.error.description" }), heading: react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_1__[/* FormattedMessage */ "c"], { id: "projectInfo.error.heading", values: {
                                        section: app.intl.formatMessage({
                                            id: 'a11y.strings.folder',
                                        }),
                                    } }) },
                                react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_react_react_spectrum_Button__WEBPACK_IMPORTED_MODULE_5___default.a, { variant: "cta", onClick: () => {
                                        _stores_SharedStore__WEBPACK_IMPORTED_MODULE_70__[/* sharedStore */ "d"].refreshContent().catch(e => {
                                            _stores_Settings__WEBPACK_IMPORTED_MODULE_13__[/* settings */ "b"].logger.warn('Failed refreshing content from spaces error message.', e);
                                        });
                                    } },
                                    react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_1__[/* FormattedMessage */ "c"], { id: "button.retry" }))));
                        }
                        else {
                            return (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_EmptyState__WEBPACK_IMPORTED_MODULE_18__[/* default */ "a"], { description: app.intl.formatMessage({
                                    id: 'projectInfo.error.description',
                                }), heading: react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_1__[/* FormattedMessage */ "c"], { id: "projectInfo.error.heading", values: {
                                        section: app.intl.formatMessage({
                                            id: 'project1Up.section.workingFiles',
                                        }),
                                    } }), illustration: react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_images_ErrorLoading_svg__WEBPACK_IMPORTED_MODULE_43__[/* default */ "a"], null) }));
                        }
                    }, renderEmptyState: () => {
                        var _a;
                        return filter ? (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(FilterEmptyState, { onClick: () => {
                                this.resetFilter();
                                this.renderScrollableArea();
                            }, filterText: filter })) : this.isOneUpRootView &&
                            !app.launchedFromCDP &&
                            this.showOnlyCompatible ? (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(CompatibleEmptyState, { onClick: this.resetActiveCompatibleFilter })) : app.showOfflineWithFeatureFlag && !filter ? (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_Offline__WEBPACK_IMPORTED_MODULE_80__[/* default */ "a"], { cdoUISettings: this.uiConfig.cdoUISettings })) : app.launchedFromCDP &&
                            app.currentTeamId && ((_a = app.cdpContext) === null || _a === void 0 ? void 0 : _a.allowsCreatingItems) &&
                            this.isOneUpRootView ? (this.renderOnboardingEmptyState()) : (currentFolder === null || currentFolder === void 0 ? void 0 : currentFolder.name) === 'working_files' ? (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_EmptyState__WEBPACK_IMPORTED_MODULE_18__[/* default */ "a"], { heading: react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_1__[/* FormattedMessage */ "c"], { id: "space.empty.heading" }), description: react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null,
                                react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_1__[/* FormattedMessage */ "c"], { id: "space.empty.description" }),
                                react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_react_react_spectrum_Link__WEBPACK_IMPORTED_MODULE_6___default.a, { className: _styles_Project1Up_css__WEBPACK_IMPORTED_MODULE_50___default.a.EmptyStateLearnMore, href: Object(_utils_urls__WEBPACK_IMPORTED_MODULE_38__[/* localizedGoUrl */ "j"])(_utils_urls__WEBPACK_IMPORTED_MODULE_38__[/* LEARN_MORE_SPACES */ "d"], app.intl.appLanguage || 'en'), target: "_blank" },
                                    react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_1__[/* FormattedMessage */ "c"], { id: "popover.linkout" }))), illustration: react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_images_MoreCreatingLessCatchingUp_svg__WEBPACK_IMPORTED_MODULE_47__[/* default */ "a"], { className: classnames__WEBPACK_IMPORTED_MODULE_4___default()(_styles_EmptyStates_css__WEBPACK_IMPORTED_MODULE_49___default.a.illustration, _styles_Project1Up_css__WEBPACK_IMPORTED_MODULE_50___default.a.emptyStateIllustration) }) })) : (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_EmptyState__WEBPACK_IMPORTED_MODULE_18__[/* default */ "a"], { heading: react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_1__[/* FormattedMessage */ "c"], { id: "folder.empty.heading" }), description: react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null,
                                react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_1__[/* FormattedMessage */ "c"], { id: "folder.empty.description" })), illustration: react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_images_S_IlluCCSpaces_EmptyState_NoCompatibleFiles_120px_svg__WEBPACK_IMPORTED_MODULE_48__[/* default */ "a"], { className: classnames__WEBPACK_IMPORTED_MODULE_4___default()(_styles_EmptyStates_css__WEBPACK_IMPORTED_MODULE_49___default.a.illustration, _styles_Project1Up_css__WEBPACK_IMPORTED_MODULE_50___default.a.emptyStateIllustration) }) }));
                    }, errorState: currentFolder.loadState === _packages_CDOView_stores_constants__WEBPACK_IMPORTED_MODULE_39__[/* ProcessingState */ "c"].Error })));
            case _utils_constants__WEBPACK_IMPORTED_MODULE_34__[/* OneUpTabs */ "q"].Published:
                return (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_ContentViewer__WEBPACK_IMPORTED_MODULE_17__[/* default */ "a"], Object.assign({}, sharedProps, { tab: _utils_constants__WEBPACK_IMPORTED_MODULE_34__[/* OneUpTabs */ "q"].Published, filter: filter, metadataFormat: metadataFormat, emptyStateClassname: _styles_Project1Up_css__WEBPACK_IMPORTED_MODULE_50___default.a.emptyPublishedState, errorState: project.published.loadState === _packages_CDOView_stores_constants__WEBPACK_IMPORTED_MODULE_39__[/* ProcessingState */ "c"].Error, renderErrorState: () => {
                        return app.showOfflineWithFeatureFlag ? (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_Offline__WEBPACK_IMPORTED_MODULE_80__[/* default */ "a"], { cdoUISettings: this.uiConfig.cdoUISettings })) : (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_EmptyState__WEBPACK_IMPORTED_MODULE_18__[/* default */ "a"], { description: app.intl.formatMessage({
                                id: 'projectInfo.error.description',
                            }), heading: react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_1__[/* FormattedMessage */ "c"], { id: "projectInfo.error.heading", values: {
                                    section: app.intl.formatMessage({
                                        id: 'project1Up.section.published',
                                    }),
                                } }), illustration: react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_images_ErrorLoading_svg__WEBPACK_IMPORTED_MODULE_43__[/* default */ "a"], null) }));
                    }, renderEmptyState: () => filter ? (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(FilterEmptyState, { onClick: () => {
                            this.resetFilter();
                            this.renderScrollableArea();
                        }, filterText: filter })) : app.showOfflineWithFeatureFlag && !filter ? (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_Offline__WEBPACK_IMPORTED_MODULE_80__[/* default */ "a"], { cdoUISettings: this.uiConfig.cdoUISettings })) : (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_EmptyState__WEBPACK_IMPORTED_MODULE_18__[/* default */ "a"], { heading: react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_1__[/* FormattedMessage */ "c"], { id: 'project1Up.section.published.empty.heading' +
                                (readonly ? '.readonly' : '') }), description: react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_1__[/* FormattedMessage */ "c"], { id: 'project1Up.section.published.empty.description' +
                                (readonly ? '.readonly' : '') }), illustration: react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_images_EmptyPublished_svg__WEBPACK_IMPORTED_MODULE_46__[/* default */ "a"], null) }, !readonly && (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_react_react_spectrum_Link__WEBPACK_IMPORTED_MODULE_6___default.a, { href: Object(_utils_urls__WEBPACK_IMPORTED_MODULE_38__[/* localizedGoUrl */ "j"])(_utils_urls__WEBPACK_IMPORTED_MODULE_38__[/* LEARN_MORE_PUBLISHED_GOURL_TOKEN */ "c"], app.intl.appLanguage), target: "_blank" },
                        react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_react_react_spectrum_Button__WEBPACK_IMPORTED_MODULE_5___default.a, { variant: "cta" },
                            react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_1__[/* FormattedMessage */ "c"], { id: "project1Up.section.published.empty.cta" })))))) })));
            default:
                // TODO: add safety?
                return;
        }
    }
    renderSpaceEmptyState() {
        const { browseSession: { intl, showOfflineWithFeatureFlag, activeRenameState }, } = this.props;
        return (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_EmptyState__WEBPACK_IMPORTED_MODULE_18__[/* default */ "a"], { heading: react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_1__[/* FormattedMessage */ "c"], { id: "space.empty.heading" }), description: react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null,
                react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_1__[/* FormattedMessage */ "c"], { id: "space.empty.description" }),
                react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_react_react_spectrum_Link__WEBPACK_IMPORTED_MODULE_6___default.a, { className: _styles_Project1Up_css__WEBPACK_IMPORTED_MODULE_50___default.a.EmptyStateLearnMore, href: Object(_utils_urls__WEBPACK_IMPORTED_MODULE_38__[/* localizedGoUrl */ "j"])(_utils_urls__WEBPACK_IMPORTED_MODULE_38__[/* LEARN_MORE_SPACES */ "d"], intl.appLanguage || 'en'), target: "_blank" },
                    react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_1__[/* FormattedMessage */ "c"], { id: "popover.linkout" }))), illustration: react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_images_MoreCreatingLessCatchingUp_svg__WEBPACK_IMPORTED_MODULE_47__[/* default */ "a"], { className: classnames__WEBPACK_IMPORTED_MODULE_4___default()(_styles_EmptyStates_css__WEBPACK_IMPORTED_MODULE_49___default.a.illustration, _styles_Project1Up_css__WEBPACK_IMPORTED_MODULE_50___default.a.emptyStateIllustration) }) }));
    }
    renderOnboardingEmptyState() {
        const { intl } = this.props.browseSession;
        return (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_OnboardingView__WEBPACK_IMPORTED_MODULE_20__[/* OnboardingView */ "b"], { heading: react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_1__[/* FormattedMessage */ "c"], { id: "space.empty.heading" }), description: react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null,
                react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_1__[/* FormattedMessage */ "c"], { id: "space.empty.description" }),
                react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_react_react_spectrum_Link__WEBPACK_IMPORTED_MODULE_6___default.a, { className: _styles_Project1Up_css__WEBPACK_IMPORTED_MODULE_50___default.a.EmptyStateLearnMore, href: Object(_utils_urls__WEBPACK_IMPORTED_MODULE_38__[/* localizedGoUrl */ "j"])(_utils_urls__WEBPACK_IMPORTED_MODULE_38__[/* LEARN_MORE_SPACES */ "d"], intl.appLanguage || 'en'), target: "_blank" },
                    react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_1__[/* FormattedMessage */ "c"], { id: "popover.linkout" }))) }));
    }
    renderSpaceArchivedState() {
        const spacesDeleteViewLink = Object(_utils_urls__WEBPACK_IMPORTED_MODULE_38__[/* localizedGoUrl */ "j"])(_utils_urls__WEBPACK_IMPORTED_MODULE_38__[/* SPACE_DELETE_VIEW */ "e"], this.props.browseSession.intl.appLanguage || 'en');
        return (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_EmptyState__WEBPACK_IMPORTED_MODULE_18__[/* default */ "a"], { heading: react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_1__[/* FormattedMessage */ "c"], { id: "project.alreadyDiscarded.title" }), description: react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_1__[/* FormattedMessage */ "c"], { id: "project.alreadyDiscarded.description" }), illustration: react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_images_PermanentlyDeleted_svg__WEBPACK_IMPORTED_MODULE_44__[/* default */ "a"], { className: _styles_EmptyStates_css__WEBPACK_IMPORTED_MODULE_49___default.a.illustration }) },
            react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null,
                react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_react_react_spectrum_Button__WEBPACK_IMPORTED_MODULE_5___default.a, { variant: "secondary", onClick: () => this.onBack() },
                    react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_1__[/* FormattedMessage */ "c"], { id: "accessibility.backButton" })),
                react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_react_react_spectrum_Button__WEBPACK_IMPORTED_MODULE_5___default.a, { variant: "cta", onClick: () => Object(_utils_urls__WEBPACK_IMPORTED_MODULE_38__[/* openExternalLink */ "k"])(spacesDeleteViewLink, true) },
                    react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_1__[/* FormattedMessage */ "c"], { id: "button.goToDeleted" })))));
    }
    renderSpaceDeletedState() {
        return (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_EmptyState__WEBPACK_IMPORTED_MODULE_18__[/* default */ "a"], { heading: react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_1__[/* FormattedMessage */ "c"], { id: "project.deleted.title" }), description: react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_1__[/* FormattedMessage */ "c"], { id: "project.deleted.description" }), illustration: react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_images_PermanentlyDeleted_svg__WEBPACK_IMPORTED_MODULE_44__[/* default */ "a"], { className: _styles_EmptyStates_css__WEBPACK_IMPORTED_MODULE_49___default.a.illustration }) }));
    }
    renderReloadFailureState() {
        return (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_EmptyState__WEBPACK_IMPORTED_MODULE_18__[/* default */ "a"], { illustration: react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_images_ErrorLoading_svg__WEBPACK_IMPORTED_MODULE_43__[/* default */ "a"], null), description: react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_1__[/* FormattedMessage */ "c"], { id: "space.error.description" }), heading: react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_1__[/* FormattedMessage */ "c"], { id: "space.error.heading" }) },
            react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null,
                react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_react_react_spectrum_Button__WEBPACK_IMPORTED_MODULE_5___default.a, { variant: "secondary", onClick: () => {
                        this.onBack();
                    } },
                    react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_1__[/* FormattedMessage */ "c"], { id: "accessibility.backButton" })),
                react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_react_react_spectrum_Button__WEBPACK_IMPORTED_MODULE_5___default.a, { variant: "cta", onClick: () => {
                        _stores_SharedStore__WEBPACK_IMPORTED_MODULE_70__[/* sharedStore */ "d"].refreshContent().catch(e => {
                            _stores_Settings__WEBPACK_IMPORTED_MODULE_13__[/* settings */ "b"].logger.warn('Failed refreshing content from spaces error message.', e);
                        });
                    } },
                    react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_1__[/* FormattedMessage */ "c"], { id: "button.retry" })))));
    }
    renderNotSupportedstate() {
        return (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_EmptyState__WEBPACK_IMPORTED_MODULE_18__[/* default */ "a"], { description: this.props.intl.formatMessage({
                id: 'project.versionError.reload.description',
            }), heading: react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_1__[/* FormattedMessage */ "c"], { id: "project.versionError.reload.title" }), illustration: react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_images_ErrorLoading_svg__WEBPACK_IMPORTED_MODULE_43__[/* default */ "a"], null) }));
    }
    renderFolderArchivedState() {
        const spacesDeleteViewLink = Object(_utils_urls__WEBPACK_IMPORTED_MODULE_38__[/* localizedGoUrl */ "j"])(_utils_urls__WEBPACK_IMPORTED_MODULE_38__[/* SPACE_DELETE_VIEW */ "e"], this.props.browseSession.intl.appLanguage || 'en');
        return (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null,
            this.getTitlePathTabCrumbs(),
            react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_EmptyState__WEBPACK_IMPORTED_MODULE_18__[/* default */ "a"], { heading: react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_1__[/* FormattedMessage */ "c"], { id: "folder.discard.heading" }), description: react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null,
                    react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_1__[/* FormattedMessage */ "c"], { id: "folder.discard.description" })), illustration: react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_images_PermanentlyDeleted_svg__WEBPACK_IMPORTED_MODULE_44__[/* default */ "a"], { className: _styles_EmptyStates_css__WEBPACK_IMPORTED_MODULE_49___default.a.illustration }) },
                react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_react_react_spectrum_Button__WEBPACK_IMPORTED_MODULE_5___default.a, { variant: "cta", onClick: () => Object(_utils_urls__WEBPACK_IMPORTED_MODULE_38__[/* openExternalLink */ "k"])(spacesDeleteViewLink, true) },
                    react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_1__[/* FormattedMessage */ "c"], { id: "button.goToDeleted" })))));
    }
    renderErrorState() {
        const project = this.project;
        const { browseSession } = this.props;
        const currentFolder = browseSession.currentFolder;
        if (project.isArchived) {
            return this.renderSpaceArchivedState();
        }
        else if (project.isSpaceDeleted) {
            return this.renderSpaceDeletedState();
        }
        else if (currentFolder.discarded && !project.isRootFolder(currentFolder.id)) {
            return this.renderFolderArchivedState();
        }
        else if (project.reloadFailure) {
            return this.renderReloadFailureState();
        }
        else if (!project.isSupportedProject) {
            return this.renderNotSupportedstate();
        }
    }
    renderFilter() {
        return (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_oneup_Filter__WEBPACK_IMPORTED_MODULE_54__[/* default */ "a"], { key: "filter", value: this.filter, onFilter: text => {
                if (!this.filter && text) {
                    this.selectionStore.clear();
                    this.props.browseSession.resetActiveRenameState();
                }
                this.filter = text;
            } }));
    }
    renderSectionHeaderRightSection({ tab }) {
        let isFilterVisible = true;
        if (tab != null) {
            isFilterVisible = this.getUnfilteredItems(tab).length > 0;
        }
        // From SubHeader:
        const { browseSession } = this.props;
        const hasContent = !this.allRelevantSectionsAppearEmpty;
        const showListGridToggle = !browseSession.isMobileLayout && hasContent;
        const activeCompatibleFilter = this.showCompatibleFilter
            ? this.uiConfig.activeFilterPreference
            : undefined;
        const onActiveCompatibleFilterBy = this.showCompatibleFilter
            ? this.setActiveCompatibleFilter
            : undefined;
        const rightItemSections = [];
        if (showListGridToggle) {
            rightItemSections.push([
                react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_header_SortDropdownButton__WEBPACK_IMPORTED_MODULE_78__[/* default */ "a"], { key: "sortDropdownButton", activeSort: this.uiConfig.sortBy, activeSortDirection: this.uiConfig.sortDirection, onSortBy: this.onSortChange, sortOptions: sortOptions }),
                react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_header_ListGridToggleButton__WEBPACK_IMPORTED_MODULE_79__[/* default */ "a"], { key: "listGridToggleButton", viewMode: this.uiConfig.view, onViewModeChange: value => this.onViewModeChange(value) }),
            ]);
        }
        const filterSection = [];
        if (activeCompatibleFilter && onActiveCompatibleFilterBy) {
            filterSection.push(react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_header_AppCompatibleFilterButton__WEBPACK_IMPORTED_MODULE_61__[/* default */ "b"], { key: "appCompatibleFilterButton", activeFilter: activeCompatibleFilter, hideLabel: true, onFilterBy: onActiveCompatibleFilterBy }));
        }
        if (isFilterVisible) {
            filterSection.push(this.renderFilter());
        }
        if (filterSection.length) {
            rightItemSections.push(filterSection);
        }
        return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_header_Toolbar__WEBPACK_IMPORTED_MODULE_77__[/* default */ "a"], { justifyContent: "flex-end" }, Object(_header_Toolbar__WEBPACK_IMPORTED_MODULE_77__[/* withDividers */ "b"])(rightItemSections));
    }
    renderScrollableArea() {
        const { browseSession } = this.props;
        const project = this.project;
        if (this.showDisconnected) {
            return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_Offline__WEBPACK_IMPORTED_MODULE_80__[/* default */ "a"], { cdoUISettings: this.uiConfig.cdoUISettings });
        }
        if (this.isLoading()) {
            return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_react_react_spectrum_Wait__WEBPACK_IMPORTED_MODULE_11___default.a, { size: "L", centered: true });
        }
        if (this.spaceRootEmpty) {
            return this.renderSpaceEmptyState();
        }
        if (project.reloadFailure) {
            return this.renderErrorState();
        }
        // When no filters are applied:
        // * Only show libraries if its not empty
        // * Always show files tab
        // * Only show published tab if its not empty or if the published view was requested (external link from XD for example)
        if (this.relevantSectionNames.length > 1) {
            let filesAndPublishedTabs = [];
            if (this.defaultTab === _utils_constants__WEBPACK_IMPORTED_MODULE_34__[/* OneUpTabs */ "q"].Working) {
                filesAndPublishedTabs.push({
                    tab: _utils_constants__WEBPACK_IMPORTED_MODULE_34__[/* OneUpTabs */ "q"].Working,
                    labelId: 'project1Up.section.files',
                });
            }
            if (this.sectionHasVisibleItems(_utils_constants__WEBPACK_IMPORTED_MODULE_34__[/* OneUpTabs */ "q"].Published) || this.isPublishedViewRequested) {
                filesAndPublishedTabs.push({
                    tab: _utils_constants__WEBPACK_IMPORTED_MODULE_34__[/* OneUpTabs */ "q"].Published,
                    labelId: 'project1Up.section.published',
                    // offline show published tab in disabled state
                    disabled: browseSession.showOfflineWithFeatureFlag,
                });
            }
            const isUxp = _utils_UXPUtils__WEBPACK_IMPORTED_MODULE_74__[/* default */ "a"].usingUXP();
            const showLibraries = this.relevantSectionNames.includes(_utils_constants__WEBPACK_IMPORTED_MODULE_34__[/* OneUpTabs */ "q"].Libraries) &&
                this.sectionHasVisibleItems(_utils_constants__WEBPACK_IMPORTED_MODULE_34__[/* OneUpTabs */ "q"].Libraries);
            // Show a border at the top of the scroll area if scrolled and:
            // - There are libraries above
            // - Or we're in UXP, where we don't make "Files/Published" sticky.
            //
            // When there's only a "Files/Published" section outside of UXP,
            // the "Files/Published" header always stays stuck at the top,
            // so we don't need the additional border above the scroll area.
            const showBorderWhenScrolled = isUxp || showLibraries;
            return (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_oneup_ScrollContainer__WEBPACK_IMPORTED_MODULE_57__[/* default */ "b"], { key: this.uiConfig.view === _utils_constants__WEBPACK_IMPORTED_MODULE_34__[/* ViewMode */ "L"].Grid ? 'Grid' : 'List', showBorderWhenScrolled: showBorderWhenScrolled },
                showLibraries && (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null,
                    react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_oneup_SectionHeader__WEBPACK_IMPORTED_MODULE_55__[/* default */ "a"], { onSeeAll: () => browseSession.navigateAndNotify(browseSession.sameSpaceRouteWithDetails({
                            view: _utils_constants__WEBPACK_IMPORTED_MODULE_34__[/* OneUpTabs */ "q"].Libraries,
                        })), disabled: browseSession.showOfflineWithFeatureFlag, disabledTooltipMsgId: 'tooltip.offline.general' },
                        react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_Title__WEBPACK_IMPORTED_MODULE_75__[/* default */ "a"], null, this.renderSectionHeading({
                            tab: _utils_constants__WEBPACK_IMPORTED_MODULE_34__[/* OneUpTabs */ "q"].Libraries,
                            labelId: 'project1Up.section.libraries',
                        }))),
                    this.renderTab(_utils_constants__WEBPACK_IMPORTED_MODULE_34__[/* OneUpTabs */ "q"].Libraries, {
                        summaryMode: true,
                    }))),
                !!filesAndPublishedTabs.length && (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null,
                    react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_oneup_SectionHeader__WEBPACK_IMPORTED_MODULE_55__[/* default */ "a"], { right: this.renderSectionHeaderRightSection({
                            tab: this.currentTab,
                        }), sticky: !isUxp }, this.renderTabLabels(filesAndPublishedTabs)),
                    this.renderTab(this.currentTab, { filter: this.filter })))));
        }
        else {
            if (this.showOnlyCompatible &&
                !!this.currentTab &&
                !this.sectionHasVisibleItems(this.currentTab)) {
                return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(CompatibleEmptyState, { onClick: this.resetActiveCompatibleFilter });
            }
            return this.renderTab(this.currentTab, {
                filter: this.filter,
            });
        }
    }
    renderTabLabels(tabsData) {
        if (tabsData.length > 1) {
            const { browseSession } = this.props;
            return (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_react_react_spectrum_TabList__WEBPACK_IMPORTED_MODULE_8__["TabList"], { className: _styles_Project1Up_css__WEBPACK_IMPORTED_MODULE_50___default.a.tablist, variant: "compact", quiet: true, onChange: index => {
                    this.selectionStore.clear();
                    // If the tab has been removed, index will be -1.
                    // Default to showing the first tab for that case.
                    const view = tabsData[Math.max(0, index)].tab;
                    browseSession.navigateAndNotify(browseSession.sameSpaceRouteWithDetails({ view }));
                }, selectedIndex: tabsData.findIndex(item => item.tab === this.currentTab) }, tabsData.map(tabLabel => (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_react_react_spectrum_TabList__WEBPACK_IMPORTED_MODULE_8__["Tab"], { disabled: tabLabel.disabled }, this.renderSectionHeading(tabLabel))))));
        }
        // Don't render a tab group if there's only one available option.
        const singleTab = tabsData[0];
        return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_Title__WEBPACK_IMPORTED_MODULE_75__[/* default */ "a"], null, this.renderSectionHeading(singleTab));
    }
    renderSectionHeading(tabLabel) {
        return (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_oneup_SectionHeading__WEBPACK_IMPORTED_MODULE_56__[/* default */ "a"], { browseSession: this.props.browseSession, labelId: tabLabel.labelId, disabled: tabLabel.disabled, disabledTooltipMsgId: "tooltip.offline.general", showCoachMarks: tabLabel.tab === _utils_constants__WEBPACK_IMPORTED_MODULE_34__[/* OneUpTabs */ "q"].Working, tooltipPosition: "right" }));
    }
    // TODO: When we upgrade to React 17, move this to the actual scrollable element
    // see https://blog.saeloun.com/2021/03/02/react-17-removes-bubbling-from-onscroll.html
    onScroll(event) {
        this.updateTextfieldWorkaround(event.target);
    }
    /**
     * Text inputs that are scrolled above the top of their parent container
     * will still display over the reset of the UI, even though they've
     * technically scrolled out of view.
     *
     * For now, this workaround will call `onDialogStateChange` with a value
     * determined by the relative position of each textfield.
     *
     * More details here:
     * https://wiki.corp.adobe.com/display/UXP/PS+UXP+Overlay+Issues
     * https://wiki.corp.adobe.com/pages/viewpage.action?spaceKey=UXP&title=Proposal+for+overlapping+textedit+and+overlays
     */
    updateTextfieldWorkaround(container) {
        const { browseSession } = this.props;
        const textFields = container.querySelectorAll('.spectrum-Textfield');
        let shouldSetTextfieldWorkaround = false;
        /**
         * Determine if any textfield needs workaround, based on whether it has scrolled out of the container
         * This logic is flawed, but the best we can do with the way RS has provided the `disableNativeControls` workaround.
         * For more than one child textfields, even if one of them scrolls out of the container, all child textfields with disableOnOverlay prop will be rendered as spans.
         * This works for now because we have only one textfield in this scrollview, but can break in the future.
         */
        textFields.forEach(field => {
            const containerRect = container.getBoundingClientRect();
            const fieldRect = field.getBoundingClientRect();
            if (fieldRect.y < containerRect.y || fieldRect.bottom > containerRect.bottom) {
                shouldSetTextfieldWorkaround = true;
            }
        });
        // Apply workaround if needed, else remove any existing workaround
        browseSession.projectsClient.setNativeTextfieldsHidden(shouldSetTextfieldWorkaround);
    }
    resetTextfieldsWorkaround() {
        this.props.browseSession.projectsClient.setNativeTextfieldsHidden(false);
    }
    render() {
        var _a, _b, _c, _d;
        const { browseSession } = this.props;
        const project = this.project;
        const currentFolder = browseSession.currentFolder;
        const { isMobileLayout, launchedFromCDP, route } = browseSession;
        const { filter, headerActions, title } = this.getTabProps();
        // XD-146236 The Toast message for XD Starter user for CDP Save needs to be different
        // from CDP open or Welcome screen
        const isSaveWithinCDPContext = (_a = browseSession.cdpContext) === null || _a === void 0 ? void 0 : _a.isSave;
        const isWithinCDPContext = browseSession.cdpContext;
        /**
         * There are 2 different views of Project1up:
         * - Root view: SubHeader has a second row for actions. HeaderActions start off including all actions
         * across sections (`allSectionsUnselectedHeaderActions`).
         *  - `expanded` is true.
         *  - Do not use this view in UAP.
         *  - If any section has content, HeaderActions will exclude 'New Folder', because this action has its
         * own button in Files SectionHeader
         *  - If no section has content, we currently use the empty view of the Files section to represent empty view
         * for the whole oneup, which has a button to add actions, with headerActions from getTabProps of Files section.
         * - Single section/tab view: SubHeader is compacted to one row. HeaderActions are actions for the tab only
         * (via getTabProps)
         *  - e.g. For Files/selected folder view, HeaderActions includes: 'Create file', 'Create canvas', 'New folder', 'Upload' and 'Web link'
         *  - Use this view in UAP.
         */
        const expanded = this.isOneUpRootView && !launchedFromCDP;
        let regionLabel;
        if (this.currentTab === 'libraries') {
            regionLabel = this.props.intl.formatMessage({ id: 'subheader.libraries.title' });
        }
        else if (this.isOneUpRootView) {
            regionLabel = this.props.intl.formatMessage({ id: 'project1up.region.space.ariaLabel' }, { projectName: project.name });
        }
        else {
            regionLabel = currentFolder.name;
        }
        const unselectedHeaderActions = expanded
            ? this.allSectionsUnselectedHeaderActions
            : headerActions;
        const hasContent = !this.allRelevantSectionsAppearEmpty;
        const currentFolderId = (route === null || route === void 0 ? void 0 : route.type) === 'spaces' ? route.folderId : undefined;
        const projectReadyToDisplay = project.loadedOrRefreshing &&
            project.role &&
            (!currentFolderId || currentFolderId === currentFolder.id);
        const showListGridToggle = !isMobileLayout && hasContent && !expanded;
        // Create space color CSS variable for child elements to apply
        // This is being dynamically interpreted to prevent values from getting out of sync between CSS and constants.ts
        // [CCPROJ-7659] Tech debt: come up with a single universal method for assigning Space color
        // const spaceColor = project?.color && (
        //     <style type="text/css">
        //         {`
        // body, :host {
        //     --ccac-projects-space-color: ${project?.color}
        // }`}
        //     </style>
        // );
        if (project.isSpaceDeleted ||
            project.isArchived ||
            (currentFolder.discarded && !project.isRootFolder(currentFolder.id))) {
            return this.renderErrorState();
        }
        return (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null,
            projectReadyToDisplay ? (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", { "aria-label": regionLabel, onScroll: event => this.onScroll(event), className: classnames__WEBPACK_IMPORTED_MODULE_4___default()(_styles_Project1Up_css__WEBPACK_IMPORTED_MODULE_50___default.a.main, {
                    [_styles_Project1Up_css__WEBPACK_IMPORTED_MODULE_50___default.a.mainWithoutSidebar]: !launchedFromCDP,
                }), role: "region" },
                react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", { className: classnames__WEBPACK_IMPORTED_MODULE_4___default()(_styles_Project1Up_css__WEBPACK_IMPORTED_MODULE_50___default.a.content) }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null,
                    react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_FocusChanger__WEBPACK_IMPORTED_MODULE_19__[/* default */ "a"], { spaceId: (_b = browseSession.route) === null || _b === void 0 ? void 0 : _b.spaceId, folderId: (_c = browseSession.route) === null || _c === void 0 ? void 0 : _c.folderId, inUAP: launchedFromCDP, view: (_d = browseSession.route) === null || _d === void 0 ? void 0 : _d.view }),
                    react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_SubHeader__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"], { browseSession: this.props.browseSession, getProjectActions: this.props.getProjectActions, project: project, activeCompatibleFilter: this.showCompatibleFilter
                            ? this.uiConfig.activeFilterPreference
                            : undefined, onActiveCompatibleFilterBy: this.showCompatibleFilter
                            ? this.setActiveCompatibleFilter
                            : undefined, activeSort: this.uiConfig.sortBy, activeSortDirection: this.uiConfig.sortDirection, mobile: isMobileLayout, hideSecondRow: project.reloadFailure, onSortBy: this.onSortChange, sortOptions: sortOptions, unselectedHeaderActions: unselectedHeaderActions, inOneUpRootView: this.isOneUpRootView, expanded: expanded, onProjectActionSelected: this.props.onProjectActionSelected, openShareSheet: this.props.openShareSheet, selectedHeaderActions: this.getActionMenuItems(), selectionStore: this.selectionStore, showListGridToggle: showListGridToggle, onViewModeChange: value => this.onViewModeChange(value), viewMode: this.uiConfig.view, title: title, projectName: project.name, inCDP: launchedFromCDP, isLoading: this.isLoading, onBack: this.onBack, filter: filter ? () => this.renderFilter() : undefined, hideHeaderWhenSelected: !launchedFromCDP && !this.isOneUpRootView, onLeaveAfter: this.onLeaveAfter }),
                    this.renderScrollableArea())))) : (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_react_react_spectrum_Wait__WEBPACK_IMPORTED_MODULE_11___default.a, { size: "L", centered: true })),
            _hosts_Host__WEBPACK_IMPORTED_MODULE_63__[/* default */ "a"].showStarterUserToast && isWithinCDPContext && (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", { className: _styles_Project1Up_css__WEBPACK_IMPORTED_MODULE_50___default.a.xdStarterToastPlacement },
                react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_react_react_spectrum_Toast__WEBPACK_IMPORTED_MODULE_9__["Toast"], { variant: "info" }, this.props.intl.formatMessage({
                    id: isSaveWithinCDPContext
                        ? 'starterUser.project1upNavigationCDPSave'
                        : 'starterUser.project1upNavigation',
                }))))));
    }
};
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_2__[/* observable */ "z"],
    __metadata("design:type", Object)
], Project1Up.prototype, "filter", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_2__[/* action */ "j"].bound,
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [typeof (_a = typeof _utils_constants__WEBPACK_IMPORTED_MODULE_34__["SelectedProjectData"] !== "undefined" && _utils_constants__WEBPACK_IMPORTED_MODULE_34__["SelectedProjectData"]) === "function" ? _a : Object]),
    __metadata("design:returntype", void 0)
], Project1Up.prototype, "onViewProject", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_2__[/* action */ "j"].bound,
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [typeof (_b = typeof _stores_Project__WEBPACK_IMPORTED_MODULE_12__["PartialProject"] !== "undefined" && _stores_Project__WEBPACK_IMPORTED_MODULE_12__["PartialProject"]) === "function" ? _b : Object, Array, Boolean]),
    __metadata("design:returntype", void 0)
], Project1Up.prototype, "onProjectUpdatedAfterCopyOrMove", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_2__[/* computed */ "l"],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], Project1Up.prototype, "isOneUpRootView", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_2__[/* computed */ "l"],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], Project1Up.prototype, "showCompatibleFilter", null);
Project1Up = __decorate([
    mobx_react__WEBPACK_IMPORTED_MODULE_3__[/* observer */ "e"],
    __metadata("design:paramtypes", [Object])
], Project1Up);
/* harmony default export */ __webpack_exports__["a"] = (Object(react_intl__WEBPACK_IMPORTED_MODULE_1__[/* injectIntl */ "g"])(Project1Up));

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("URgk").setImmediate))

/***/ }),

/***/ "Dc9i":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("i8i4");
/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _react_react_spectrum_Dialog__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("bLbN");
/* harmony import */ var _react_react_spectrum_Dialog__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Dialog__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var mobx_react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("okNM");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("TSYQ");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var _utils_is_element_visible__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("V8Xo");
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;
};






let CDODialog = class CDODialog extends react__WEBPACK_IMPORTED_MODULE_0___default.a.Component {
    constructor() {
        super(...arguments);
        this.cdoStore = this.props.cdoStore;
        this.docStore = this.cdoStore.docStore;
        this.dialogRef = react__WEBPACK_IMPORTED_MODULE_0___default.a.createRef();
        this.autoFocus = () => {
            const { autoFocusSelector } = this.props;
            // eslint-disable-next-line react/no-find-dom-node
            const rootEl = react_dom__WEBPACK_IMPORTED_MODULE_1___default.a.findDOMNode(this.dialogRef.current);
            if (rootEl) {
                let focusEl;
                if (autoFocusSelector) {
                    focusEl = rootEl.querySelector(autoFocusSelector);
                    if (!Object(_utils_is_element_visible__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"])(focusEl)) {
                        focusEl = undefined;
                    }
                }
                focusEl = focusEl || rootEl;
                focusEl.focus();
            }
        };
        // By convention, CDO dialogs are opened from Action.beforeExecute, and resolve with [elements, arg1, arg2, etc],
        // where empty `elements` means that the dialog was cancelled and `arg1, arg2, etc.` are passed to Action.execute.
        // For most uses of CDODialog, this will be the default implementation. NOTE: all components that use CDODialog
        // and do not supply their own `onCancel` will need to pass the `onDismissModalDialog` callback that is provided
        // by openModalDialog.
        this.onCancel = () => this.props.onDismissModalDialog([[]]);
        this.onKeyDown = (e) => {
            var _a, _b;
            const { keyboardConfirm } = this.props;
            // CCD's version of RS does not prevent default for buttons when activated w/ keyboard
            // Note: UXP DOM does not support `matches`
            const target = e.target;
            const tagName = (_a = target === null || target === void 0 ? void 0 : target.tagName) === null || _a === void 0 ? void 0 : _a.toLowerCase();
            if ((e.key === 'Enter' || e.key === ' ') && ['button', 'a'].includes(tagName)) {
                return;
            }
            // BUG: RS Dialog will confirm even when defaultPrevented, causing the cancel button to confirm when it is
            //      clicked with the enter key. https://github.com/adobe/react-spectrum/issues/612
            // BUG: RS-UXP Dialog deviates from RS Dialog behavior, making this harder to solve ourselves:
            //      https://jira.corp.adobe.com/browse/UXP-11215
            if (e.key === 'Enter' &&
                keyboardConfirm &&
                !this.isConfirmDisabled() &&
                !e.defaultPrevented) {
                e.stopPropagation();
                e.preventDefault();
                // TODO: remove "any" once we have TS definitions for React Spectrum
                //       (see untyped_3p.ts)
                (_b = this.dialogRef.current) === null || _b === void 0 ? void 0 : _b.onConfirm();
            }
        };
    }
    componentDidMount() {
        requestAnimationFrame(() => this.autoFocus());
    }
    isConfirmDisabled() {
        const { confirmEnabledOffline, confirmDisabled } = this.props;
        return confirmDisabled || (!confirmEnabledOffline && !this.docStore.isOnline);
    }
    render() {
        const { onCancel = this.onCancel, onConfirm, qeId, className, autoFocusSelector, // don't pass to Dialog
        onDismissModalDialog, // don't pass to Dialog
        confirmEnabledOffline, // don't pass to Dialog
        keyboardConfirm, // RS and RS-UXP does not handle this correctly
        ...otherProps } = this.props;
        return (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", { "data-qe-id": qeId },
            react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_react_react_spectrum_Dialog__WEBPACK_IMPORTED_MODULE_2___default.a, Object.assign({}, otherProps, { onConfirm: onConfirm, className: classnames__WEBPACK_IMPORTED_MODULE_4___default()(qeId, className), ref: this.dialogRef, onCancel: onCancel, keyboardConfirm: false, confirmDisabled: this.isConfirmDisabled(), onKeyDown: this.onKeyDown }))));
    }
};
CDODialog.defaultProps = {
    /**
     * Override RS Dialog's default
     */
    keyboardConfirm: true,
    /**
     * CDODialog will attempt to set focus on this element after mount.
     */
    autoFocusSelector: '',
    /**
     * If false, auto-close the dialog when the network goes down.
     */
    confirmEnabledOffline: false,
};
CDODialog = __decorate([
    Object(mobx_react__WEBPACK_IMPORTED_MODULE_3__[/* inject */ "d"])('cdoStore'),
    mobx_react__WEBPACK_IMPORTED_MODULE_3__[/* observer */ "e"]
], CDODialog);
/* harmony default export */ __webpack_exports__["a"] = (CDODialog);


/***/ }),

/***/ "DecH":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return FAKE_STATUS_CODE; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return CDOErrorResponse; });
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Incorporated.
 **************************************************************************/
/**
 * 499 is a nginx code, so it's possible CDO could at some point receive a valid 499.
 * ! If using FAKE_STATUS_CODE, be sure to pass `isFakeStatus` as `true` so we can differentiate between real/fake 499 !
 */
const FAKE_STATUS_CODE = 499;
const MIN_HTTP_STATUS = 200;
const MAX_HTTP_STATUS = 599;
class CDOErrorResponse extends Response {
    constructor(status, statusText, source, isFakeStatus = false) {
        if (status < MIN_HTTP_STATUS || status > MAX_HTTP_STATUS) {
            super(null, { status: FAKE_STATUS_CODE, statusText });
            this.isFakeStatus = true;
        }
        else {
            super(null, { status, statusText });
            this.isFakeStatus = isFakeStatus;
        }
        this.source = source;
    }
}


/***/ }),

/***/ "DnpN":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}


/* harmony default export */ __webpack_exports__["a"] = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("svg", _extends({
  xmlns: "http://www.w3.org/2000/svg",
  height: "18",
  viewBox: "0 0 18 18",
  width: "18"
}, props), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("defs", null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("g", {
  "data-name": "Layer 1",
  id: "Layer_1"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["fill"] || "fill",
  d: "M9.601 15.312a6.932 6.932 0 0 1-6.96-2.347 5.857 5.857 0 0 1 2.9-1.313c.714-.062.726-.636.726-1.352a6.514 6.514 0 0 1-1.53-3.882C4.736 4.068 6.073 2.5 8 2.5s3.264 1.567 3.264 3.918a6.514 6.514 0 0 1-1.53 3.882c0 .716.01 1.29.725 1.352a5.582 5.582 0 0 1 2.041.716V11.25a1.752 1.752 0 0 1 1.75-1.75h.5a1.733 1.733 0 0 1 1.118.415 8.01 8.01 0 1 0-5.626 6.26 1.75 1.75 0 0 1-.641-.863z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["fill"] || "fill",
  d: "M14.25 11a.25.25 0 0 0-.25.25V14h-2.75a.25.25 0 0 0-.25.25v.5a.25.25 0 0 0 .25.25H14v2.75a.25.25 0 0 0 .25.25h.5a.25.25 0 0 0 .25-.25V15h2.75a.25.25 0 0 0 .25-.25v-.5a.25.25 0 0 0-.25-.25H15v-2.75a.25.25 0 0 0-.25-.25z"
}))));

/***/ }),

/***/ "Do2H":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("path", {
  d: "M46.91 28.25S39.024 11.707 38 9c-.978-2.583-2.238-5-5-5-3.1 0-4.707 2.244-5 5a490.06 490.06 0 0 0-.484 5h-7.037c-.269-2.857-.468-4.871-.479-5-.244-2.8-1.366-5-5-5-2.762 0-3.9 2.467-5 5C9.122 11.024.889 28.622.889 28.622h.02A11 11 0 1 0 22 33c0-.338-.021-.67-.05-1h4.1c-.03.33-.05.662-.05 1a11 11 0 1 0 20.91-4.75zM11 40.2a7.2 7.2 0 1 1 7.2-7.2 7.2 7.2 0 0 1-7.2 7.2zm26 0a7.2 7.2 0 1 1 7.2-7.2 7.2 7.2 0 0 1-7.2 7.2z"
}));

/***/ }),

/***/ "Dy/p":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/UXPUtils.ts
var UXPUtils = __webpack_require__("LbGp");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/hosts/HostId.ts
var HostId = __webpack_require__("m3S7");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/hosts/UXPHost.ts
var UXPHost = __webpack_require__("QBvS");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/hosts/AI/AIHost.ts

class AIHost_AIHost extends UXPHost["a" /* default */] {
    constructor(args) {
        super(args);
        this.appName = 'Ai';
        __webpack_require__("mady");
    }
    /**
     * AI expects feature flags to be in getCdoFeatureFlags to manage long term flags and suggests to
     * check `getCdoFeatureFlags` first and `featureEnabled` second.
     */
    get getCdoFeatureFlags() {
        var _a, _b;
        return ((_b = (_a = this.cdo) === null || _a === void 0 ? void 0 : _a.getCdoFeatureFlags) === null || _b === void 0 ? void 0 : _b.call(_a)) || {};
    }
    hasFeature(feature) {
        return Boolean(this.getCdoFeatureFlags[feature]) || super.hasFeature(feature);
    }
}

// EXTERNAL MODULE: ./node_modules/mobx/lib/mobx.module.js
var mobx_module = __webpack_require__("2vnA");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/hosts/XD/XDHost.ts
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;
};
var __metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};


class XDHost_XDHost extends UXPHost["a" /* default */] {
    constructor(args) {
        var _a;
        super(args);
        this._isStarterUser = false;
        this._isMonetizationEnabled = false;
        this.appName = 'XD'; //  XD in-app not Xd as per https://jira.corp.adobe.com/browse/CCPROJ-6151
        this.xdApp = this.window.require('xdApp');
        // Using spacesMonetization feature flag to control the Starter user Toast.
        this._isMonetizationEnabled = this.hasFeature('spacesMonetization');
        // XD-146787  These changes are to handle the User Upgrade(purchases the license)
        // or Downgrade(either user cancels the license or license expires) when the Project1Up view is active
        // then the Toast should be auto dismissed or added based the subscriptionType
        // hence we listen for the subscription changes and alter the Toast accordingly.
        (_a = this.cdo) === null || _a === void 0 ? void 0 : _a.on('USERSUBSCRIPTIONUPDATED', () => {
            var _a;
            this._isStarterUser = ((_a = this.xdApp) === null || _a === void 0 ? void 0 : _a.subscriptionType) === 'trial';
        });
    }
    createDocument(args) {
        var _a, _b;
        // Use the same template as CDO Cloud Documents tab's empty view 'New Document' button.
        const templateData = {
            name: 'Web 1920',
            type: 'desktop',
            width: 1920,
            height: 1080,
        };
        // [CCPROJ-6803] Give XD the folder and space info as the folder path argument
        (_b = (_a = this.cdo).newDocument) === null || _b === void 0 ? void 0 : _b.call(_a, templateData.type, JSON.stringify(templateData), JSON.stringify(args));
    }
    get canCreateDocument() {
        return !this._isStarterUser;
    }
    get showStarterUserToast() {
        // Show toast only when the feature flag of spacesMonetization is enabled
        // and user is a Starter User
        return this._isMonetizationEnabled && this._isStarterUser;
    }
}
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", Object)
], XDHost_XDHost.prototype, "xdApp", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", Object)
], XDHost_XDHost.prototype, "_isStarterUser", void 0);

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/hosts/PS/PSHost.ts

class PSHost_PSHost extends UXPHost["a" /* default */] {
    constructor(args) {
        super(args);
        this.appName = 'Ps';
        this.getOpenCloudDocuments = async () => {
            var _a;
            if ((_a = this.cdo) === null || _a === void 0 ? void 0 : _a.getOpenCloudDocuments) {
                return await this.cdo.getOpenCloudDocuments();
            }
            else {
                return [];
            }
        };
        // CCPROJ-4874
        // Allow Ps to disable sharing for Windows ARM machines
        this.canShare = this.hasFeature('SpacesCollaboration');
    }
}

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/hosts/ID/IDHost.ts

class IDHost_IDHost extends UXPHost["a" /* default */] {
    constructor(args) {
        super(args);
        this.appName = 'Id';
        __webpack_require__("mady");
    }
}

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/hosts/BaseHost.ts
var BaseHost = __webpack_require__("XZyv");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/utils/openWebFileChooser.ts
function openWebFileChooser(getFiles) {
    const fileSelector = document.createElement('input');
    fileSelector.setAttribute('type', 'file');
    fileSelector.setAttribute('multiple', 'multiple');
    fileSelector.setAttribute('accept', '*');
    fileSelector.onchange = event => {
        const importFiles = event.target.files;
        getFiles([...importFiles]);
    };
    fileSelector.click();
}

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/stores/Settings.ts
var Settings = __webpack_require__("5u1M");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/hosts/CCD/CCDHost.ts



class CCDHost_CCDHost extends BaseHost["a" /* default */] {
    constructor() {
        super(...arguments);
        this.appName = 'Creative Cloud';
        this.getAppsByMimeType = (mimetype) => {
            return this.openUtils.getAvailableAppsByMimeType(mimetype);
        };
        this.isOpenAvailable = (files) => {
            return this.openUtils.isOpenActionAvailable(files);
        };
        this.isOpenWithAvailable = (files) => {
            return this.openUtils.isOpenWithActionAvailable(files);
        };
        this.showFolderPicker = async (ctaLabel) => {
            var _a;
            let options = {};
            if (ctaLabel) {
                options.promptButton = ctaLabel;
            }
            const [selectedFolder] = await ((_a = this.filePicker) === null || _a === void 0 ? void 0 : _a.openFolderPicker(options));
            return selectedFolder;
        };
        this.showFilePicker = () => new Promise(resolve => {
            // For CCD, any file types is supported
            openWebFileChooser(files => resolve(files));
        });
    }
    get supportsNativeSAM() {
        return true; // CCD supports SAM natively.
    }
    get shouldDisableACPL() {
        return true; // CCD disables ACPL explicitly.
    }
    launchCCD(path) {
        if (this.openUtils.openDeepLink) {
            this.openUtils.openDeepLink(path);
        }
        else {
            Settings["b" /* settings */].logger.warn('Could not open the path in CCD:', path);
        }
    }
}

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/DownloadUtils.ts
var DownloadUtils = __webpack_require__("QO9Y");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/hosts/AssetsWeb/AssetsWebHost.ts



class AssetsWebHost_AssetsWebHost extends BaseHost["a" /* default */] {
    constructor(args) {
        super(args);
        this.showFilePicker = () => new Promise(resolve => {
            // For assets web, any file types is supported
            openWebFileChooser(files => resolve(files));
        });
        this.useSamCpp = false;
        this.downloadUtils = new DownloadUtils["a" /* CCACDownloadUtils */](this);
    }
}

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/hosts/Default/DefaultHost.ts


class DefaultHost_DefaultHost extends BaseHost["a" /* default */] {
    constructor(args, w = window) {
        super(args, w);
        this.name = 'UnsupportedHost';
        this.id = HostId["a" /* HostId */].Unsupported;
    }
}

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/hosts/createHost.ts


//  this could be dynamic later to prevent loading source which is unused
//  but for now they are all trivially small so we won't bother yet.







function getHostClass(id) {
    switch (id) {
        case HostId["a" /* HostId */].XD:
            return XDHost_XDHost;
        case HostId["a" /* HostId */].ID:
            return IDHost_IDHost;
        case HostId["a" /* HostId */].PS:
            return PSHost_PSHost;
        case HostId["a" /* HostId */].AI:
            return AIHost_AIHost;
        case HostId["a" /* HostId */].CCD:
            return CCDHost_CCDHost;
        case HostId["a" /* HostId */].AssetsWeb:
            return AssetsWebHost_AssetsWebHost;
        default:
            // return a mock host instead of an unsupported error
            return DefaultHost_DefaultHost;
        // throw new SpacesError(
        //     'INVALID_PARAMETER',
        //     `Host implementation not found for id (${id})`
        // );
    }
}
function createHost() {
    var _a, _b, _c, _d;
    let uxp;
    let osVersion = 'Unknown';
    if (UXPUtils["a" /* default */].usingUXP()) {
        uxp = window.require('uxp').host;
        osVersion = window.require('os').release();
    }
    else if ((_b = (_a = window.appContext) === null || _a === void 0 ? void 0 : _a.clientId) === null || _b === void 0 ? void 0 : _b.startsWith('CreativeCloud')) {
        const { appVersion, clientId, platform } = window.appContext;
        uxp = {
            appCode: 'CCD',
            name: clientId,
            platform,
            version: appVersion,
        };
        osVersion = window.appContext.osVersion;
    }
    let props = { uxp, osVersion };
    let id = ((_d = (_c = props.uxp) === null || _c === void 0 ? void 0 : _c.appCode.toLowerCase()) !== null && _d !== void 0 ? _d : HostId["a" /* HostId */].AssetsWeb);
    let HostClass = getHostClass(id);
    return new HostClass(props);
}

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/hosts/Host.ts

const Host = createHost();
/* harmony default export */ var hosts_Host = __webpack_exports__["a"] = (Host);
// TODO: Find a better way to debug both 1ups:
window.setMVP = (enabled = !Host.isMVP) => {
    Host.featureFlags.mvp = enabled;
};


/***/ }),

/***/ "DyzK":
/***/ (function(module, exports, __webpack_require__) {

var parseKeys = __webpack_require__("Ku4m");

var mgf = __webpack_require__("9GDS");

var xor = __webpack_require__("g9U9");

var BN = __webpack_require__("OZ/i");

var crt = __webpack_require__("qVij");

var createHash = __webpack_require__("mObS");

var withPublic = __webpack_require__("UpF+");

var Buffer = __webpack_require__("hwdV").Buffer;

module.exports = function privateDecrypt(privateKey, enc, reverse) {
  var padding;

  if (privateKey.padding) {
    padding = privateKey.padding;
  } else if (reverse) {
    padding = 1;
  } else {
    padding = 4;
  }

  var key = parseKeys(privateKey);
  var k = key.modulus.byteLength();

  if (enc.length > k || new BN(enc).cmp(key.modulus) >= 0) {
    throw new Error('decryption error');
  }

  var msg;

  if (reverse) {
    msg = withPublic(new BN(enc), key);
  } else {
    msg = crt(enc, key);
  }

  var zBuffer = Buffer.alloc(k - msg.length);
  msg = Buffer.concat([zBuffer, msg], k);

  if (padding === 4) {
    return oaep(key, msg);
  } else if (padding === 1) {
    return pkcs1(key, msg, reverse);
  } else if (padding === 3) {
    return msg;
  } else {
    throw new Error('unknown padding');
  }
};

function oaep(key, msg) {
  var k = key.modulus.byteLength();
  var iHash = createHash('sha1').update(Buffer.alloc(0)).digest();
  var hLen = iHash.length;

  if (msg[0] !== 0) {
    throw new Error('decryption error');
  }

  var maskedSeed = msg.slice(1, hLen + 1);
  var maskedDb = msg.slice(hLen + 1);
  var seed = xor(maskedSeed, mgf(maskedDb, hLen));
  var db = xor(maskedDb, mgf(seed, k - hLen - 1));

  if (compare(iHash, db.slice(0, hLen))) {
    throw new Error('decryption error');
  }

  var i = hLen;

  while (db[i] === 0) {
    i++;
  }

  if (db[i++] !== 1) {
    throw new Error('decryption error');
  }

  return db.slice(i);
}

function pkcs1(key, msg, reverse) {
  var p1 = msg.slice(0, 2);
  var i = 2;
  var status = 0;

  while (msg[i++] !== 0) {
    if (i >= msg.length) {
      status++;
      break;
    }
  }

  var ps = msg.slice(2, i - 1);

  if (p1.toString('hex') !== '0002' && !reverse || p1.toString('hex') !== '0001' && reverse) {
    status++;
  }

  if (ps.length < 8) {
    status++;
  }

  if (status) {
    throw new Error('decryption error');
  }

  return msg.slice(i);
}

function compare(a, b) {
  a = Buffer.from(a);
  b = Buffer.from(b);
  var dif = 0;
  var len = a.length;

  if (a.length !== b.length) {
    dif++;
    len = Math.min(a.length, b.length);
  }

  var i = -1;

  while (++i < len) {
    dif += a[i] ^ b[i];
  }

  return dif;
}

/***/ }),

/***/ "Dz+C":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("path", {
  d: "M31.7 4.3a7.176 7.176 0 0 0-10.148 0c-.385.385-4.264 4.222-5.351 5.309a8.308 8.308 0 0 1 3.742.607c.52-.52 3.568-3.526 3.783-3.741a4.1 4.1 0 1 1 5.8 5.8l-7.118 7.115a4.623 4.623 0 0 1-3.372 1.3 3.953 3.953 0 0 1-2.7-1.109 4.161 4.161 0 0 1-1.241-1.625 2.026 2.026 0 0 0-.427.318l-1.636 1.712a7.134 7.134 0 0 0 1.227 1.673c2.8 2.8 7.874 2.364 10.676-.438l6.765-6.769a7.176 7.176 0 0 0 0-10.152z"
}), React.createElement("path", {
  d: "M15.926 25.824c-.52.52-3.5 3.547-3.713 3.761a4.1 4.1 0 0 1-5.8-5.8L13.6 16.6a4.584 4.584 0 0 1 3.367-1.293 4.2 4.2 0 0 1 3.783 2.783 2.026 2.026 0 0 0 .427-.318l1.735-1.721a7.134 7.134 0 0 0-1.227-1.673 7.311 7.311 0 0 0-10.26.047l-7.186 7.187a7.176 7.176 0 0 0 10.148 10.149c.385-.385 4.194-4.242 5.281-5.329a8.308 8.308 0 0 1-3.742-.608z"
}));

/***/ }),

/***/ "DzJC":
/***/ (function(module, exports, __webpack_require__) {

var debounce = __webpack_require__("sEfC"),
    isObject = __webpack_require__("GoyQ");
/** Error message constants. */


var FUNC_ERROR_TEXT = 'Expected a function';
/**
 * Creates a throttled function that only invokes `func` at most once per
 * every `wait` milliseconds. The throttled function comes with a `cancel`
 * method to cancel delayed `func` invocations and a `flush` method to
 * immediately invoke them. Provide `options` to indicate whether `func`
 * should be invoked on the leading and/or trailing edge of the `wait`
 * timeout. The `func` is invoked with the last arguments provided to the
 * throttled function. Subsequent calls to the throttled function return the
 * result of the last `func` invocation.
 *
 * **Note:** If `leading` and `trailing` options are `true`, `func` is
 * invoked on the trailing edge of the timeout only if the throttled function
 * is invoked more than once during the `wait` timeout.
 *
 * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred
 * until to the next tick, similar to `setTimeout` with a timeout of `0`.
 *
 * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)
 * for details over the differences between `_.throttle` and `_.debounce`.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Function
 * @param {Function} func The function to throttle.
 * @param {number} [wait=0] The number of milliseconds to throttle invocations to.
 * @param {Object} [options={}] The options object.
 * @param {boolean} [options.leading=true]
 *  Specify invoking on the leading edge of the timeout.
 * @param {boolean} [options.trailing=true]
 *  Specify invoking on the trailing edge of the timeout.
 * @returns {Function} Returns the new throttled function.
 * @example
 *
 * // Avoid excessively updating the position while scrolling.
 * jQuery(window).on('scroll', _.throttle(updatePosition, 100));
 *
 * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.
 * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });
 * jQuery(element).on('click', throttled);
 *
 * // Cancel the trailing throttled invocation.
 * jQuery(window).on('popstate', throttled.cancel);
 */

function throttle(func, wait, options) {
  var leading = true,
      trailing = true;

  if (typeof func != 'function') {
    throw new TypeError(FUNC_ERROR_TEXT);
  }

  if (isObject(options)) {
    leading = 'leading' in options ? !!options.leading : leading;
    trailing = 'trailing' in options ? !!options.trailing : trailing;
  }

  return debounce(func, wait, {
    'leading': leading,
    'maxWait': wait,
    'trailing': trailing
  });
}

module.exports = throttle;

/***/ }),

/***/ "E+IA":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var utils = __webpack_require__("w8CP");

var common = __webpack_require__("7ckf");

var shaCommon = __webpack_require__("qlaj");

var rotl32 = utils.rotl32;
var sum32 = utils.sum32;
var sum32_5 = utils.sum32_5;
var ft_1 = shaCommon.ft_1;
var BlockHash = common.BlockHash;
var sha1_K = [0x5A827999, 0x6ED9EBA1, 0x8F1BBCDC, 0xCA62C1D6];

function SHA1() {
  if (!(this instanceof SHA1)) return new SHA1();
  BlockHash.call(this);
  this.h = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0];
  this.W = new Array(80);
}

utils.inherits(SHA1, BlockHash);
module.exports = SHA1;
SHA1.blockSize = 512;
SHA1.outSize = 160;
SHA1.hmacStrength = 80;
SHA1.padLength = 64;

SHA1.prototype._update = function _update(msg, start) {
  var W = this.W;

  for (var i = 0; i < 16; i++) W[i] = msg[start + i];

  for (; i < W.length; i++) W[i] = rotl32(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16], 1);

  var a = this.h[0];
  var b = this.h[1];
  var c = this.h[2];
  var d = this.h[3];
  var e = this.h[4];

  for (i = 0; i < W.length; i++) {
    var s = ~~(i / 20);
    var t = sum32_5(rotl32(a, 5), ft_1(s, b, c, d), e, W[i], sha1_K[s]);
    e = d;
    d = c;
    c = rotl32(b, 30);
    b = a;
    a = t;
  }

  this.h[0] = sum32(this.h[0], a);
  this.h[1] = sum32(this.h[1], b);
  this.h[2] = sum32(this.h[2], c);
  this.h[3] = sum32(this.h[3], d);
  this.h[4] = sum32(this.h[4], e);
};

SHA1.prototype._digest = function digest(enc) {
  if (enc === 'hex') return utils.toHex32(this.h, 'big');else return utils.split32(this.h, 'big');
};

/***/ }),

/***/ "E+i1":
/***/ (function(module, exports) {



/***/ }),

/***/ "E/Gs":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/

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 __());
  };
}();

var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {
  function adopt(value) {
    return value instanceof P ? value : new P(function (resolve) {
      resolve(value);
    });
  }

  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) : adopt(result.value).then(fulfilled, rejected);
    }

    step((generator = generator.apply(thisArg, _arguments || [])).next());
  });
};

var __generator = this && this.__generator || function (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
    };
  }
};

var __importDefault = this && this.__importDefault || function (mod) {
  return mod && mod.__esModule ? mod : {
    "default": mod
  };
};

Object.defineProperty(exports, "__esModule", {
  value: true
});

__webpack_require__("cnSC");

var RequestProcessor_1 = __importDefault(__webpack_require__("HyxP"));

var AcplSearchMode_1 = __importDefault(__webpack_require__("b0cz"));

var NotificationStatus_1 = __webpack_require__("ljP9");

var stringify_props_1 = __webpack_require__("45JA");

var constants_1 = __webpack_require__("uBoz");
/**
 * Handles service-specific response processing for cloud service and acp.local interaction
 */


var SearchRequestProcessor =
/** @class */
function (_super) {
  __extends(SearchRequestProcessor, _super);

  function SearchRequestProcessor() {
    return _super !== null && _super.apply(this, arguments) || this;
  }
  /**
   * Transforms the request for ACP.local, if needed
   * @param request
   * @param additionalParams
   */


  SearchRequestProcessor.prototype.requestTransformAcpLocal = function (request, additionalParams) {
    return __awaiter(this, void 0, void 0, function () {
      var _this = this;

      return __generator(this, function (_a) {
        return [2
        /*return*/
        , new Promise(function (resolve, reject) {
          return __awaiter(_this, void 0, void 0, function () {
            var requestComponents, desiredMode, searchMode, searchQuery, _a;

            return __generator(this, function (_b) {
              switch (_b.label) {
                case 0:
                  return [4
                  /*yield*/
                  , _super.prototype.requestTransformAcpLocal.call(this, request)];

                case 1:
                  requestComponents = _b.sent();

                  if (this._useACPLocal) {
                    desiredMode = AcplSearchMode_1.default.ALL;

                    if (additionalParams && additionalParams.acplMode) {
                      desiredMode = additionalParams.acplMode;
                    }

                    searchMode = this._connectionStatus === NotificationStatus_1.NotificationStatus.NO_INTERNET_ACCESS ? AcplSearchMode_1.default.OFFLINE_ONLY : desiredMode;
                    requestComponents.context.setHeader('x-acpl-search-operation', searchMode);
                  }

                  searchQuery = new acplocaljs.SearchQuery();
                  _a = searchQuery;
                  return [4
                  /*yield*/
                  , request.text()];

                case 2:
                  _a.searchQuery = _b.sent();
                  requestComponents.element = searchQuery;
                  resolve(requestComponents);
                  return [2
                  /*return*/
                  ];
              }
            });
          });
        })];
      });
    });
  };
  /**
   * Transforms the response for direct interaction with services, if needed
   * @param response
   * @param additionalParams
   */


  SearchRequestProcessor.prototype.responseTransformWeb = function (response, additionalParams) {
    return __awaiter(this, void 0, void 0, function () {
      var responseJson, items, totalHits, result, newResponse;
      return __generator(this, function (_a) {
        switch (_a.label) {
          case 0:
            return [4
            /*yield*/
            , response.json()];

          case 1:
            responseJson = _a.sent();
            items = [];
            totalHits = 0;

            if (responseJson && responseJson.result_sets && responseJson.result_sets.length > 0) {
              totalHits = items = responseJson.result_sets[0].total_hits;
              items = responseJson.result_sets[0].items;
            }

            items.forEach(function (item) {
              // ACPLocal creates a links array, so matching that here
              if (item._links) {
                item.links = Object.keys(item._links).map(function (key) {
                  // If this exists, it's the path we want
                  if (key === constants_1.PATH_RELTYPE) {
                    item.path = item._links[key].href;
                  } else if (item.path && item.path[0] === '[') {
                    // We don't want the weird "array-of-urns"-style path
                    // that gets returned for archived items
                    item.path = '';
                  } // stable URI


                  if (key === constants_1.STABLE_URI_RELTYPE) {
                    item.stable_uri = item._links[key].href;
                  } // Full cloud URI


                  if (key === constants_1.CLOUD_URI_RELTYPE) {
                    item.cloud_uri = item._links[key].href;
                  } // We're going to need the rendition template, so make it readily available


                  if (key === constants_1.RENDITION_RELTYPE) {
                    item.rendition_template = item._links[key].href;
                  }

                  return {
                    params: {
                      rel: key,
                      templated: item._links[key].templated
                    },
                    target: item._links[key].href
                  };
                });
              } // Clear the original _links object to remove clutter


              item._links = undefined; // Some older docs might not have the path link, and the path might be an array.
              // We need it to be a string.

              if (item.path instanceof Array) {
                item.path = JSON.stringify(item.path);
              } // ACPLocal has an id field, rather than asset_id, so set that here


              item.id = item.asset_id;
            });
            result = {
              totalHits: totalHits,
              items: items
            };
            newResponse = RequestProcessor_1.default.createResponse(response.status, response.statusText, result);
            return [2
            /*return*/
            , Promise.resolve(newResponse)];
        }
      });
    });
  };
  /**
   * Transforms the response for ACP.local, if needed
   * @param acplResponse
   * @param additionalParams
   */


  SearchRequestProcessor.prototype.responseTransformAcpLocal = function (acplResponse, additionalParams) {
    return __awaiter(this, void 0, void 0, function () {
      var acplElementResponse, searchResult, nextPageLink, totalHits, metrics, items, start, result, response;
      return __generator(this, function (_a) {
        if (!RequestProcessor_1.default.isAcplStatusSuccessful(acplResponse.statusCode)) {
          return [2
          /*return*/
          , _super.prototype.responseTransformAcpLocal.call(this, acplResponse, additionalParams)];
        }

        acplElementResponse = acplResponse;
        searchResult = acplElementResponse.element;

        if (searchResult.links) {
          searchResult.links.forEach(function (link) {
            if (link.params) {
              // If this exists, it's probably the path we want
              if (link.params.rel === constants_1.NEXT_PAGE_RELTYPE) {
                nextPageLink = link.target;
              }
            }
          });
        }

        totalHits = 0;

        if (searchResult && searchResult.unknownProperties && searchResult.unknownProperties.metrics) {
          metrics = JSON.parse(searchResult.unknownProperties.metrics);

          if (metrics) {
            totalHits = metrics.total_hits;
          }
        }

        if (searchResult.results) {
          start = Date.now();
          items = searchResult.results.map(function (acplItem) {
            var item = JSON.parse(stringify_props_1.Stringify.stringify(acplItem));

            if (item.unknownProperties) {
              item.repository_last_modified_date = item.unknownProperties.repository_last_modified_date;
            }

            if (item.links) {
              item.links.forEach(function (link) {
                if (link.params) {
                  // If this exists, it's the path we want
                  if (link.params.rel === constants_1.PATH_RELTYPE) {
                    item.path = link.target;
                  } else if (item.path && item.path[0] === '[') {
                    // We don't want the weird "array-of-urns"-style path
                    // that gets returned for archived items
                    item.path = '';
                  } // Stable URI


                  if (link.params.rel === constants_1.STABLE_URI_RELTYPE) {
                    item.stable_uri = link.target;
                  } // Full cloud URI


                  if (link.params.rel === constants_1.CLOUD_URI_RELTYPE) {
                    item.cloud_uri = link.target;
                  } // We might need this, for archived docs that haven't been synced to the cloud


                  if (link.params.rel === constants_1.LOCAL_URI_RELTYPE) {
                    item.local_uri = link.target;
                  } // We're going to need the rendition template, so make it readily available


                  if (link.params.rel === constants_1.RENDITION_RELTYPE) {
                    item.rendition_template = link.target;
                  }
                }
              });
            }

            if (item.title) {
              item['dc:title'] = item.title;
            }

            if (item.repoName) {
              item['repo:name'] = item.repoName;
            }

            return item;
          }); // console.log(`searchResult.results.map took ${Date.now() - start} ms`);
        }

        result = {
          totalHits: totalHits,
          nextPageLink: nextPageLink,
          items: items
        };
        response = RequestProcessor_1.default.createResponse(RequestProcessor_1.default.getWebStatusCode(acplResponse.statusCode), acplResponse.statusMessage, result);
        return [2
        /*return*/
        , Promise.resolve(response)];
      });
    });
  };

  SearchRequestProcessor.urlRegex = new RegExp(/adobesearch.*\.adobe\.io/);
  SearchRequestProcessor.method = ['POST', 'GET'];
  return SearchRequestProcessor;
}(RequestProcessor_1.default);

exports.default = SearchRequestProcessor;

/***/ }),

/***/ "E/Zd":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = TR;

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _filterDOMProps = _interopRequireDefault(__webpack_require__("Cv/Q"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

const _excluded = ["className", "children"];

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}
/**
 * A table row
 */


function TR(_ref) {
  let {
    className,
    children
  } = _ref,
      otherProps = _objectWithoutProperties(_ref, _excluded);

  return /*#__PURE__*/_react.default.createElement("tr", _extends({
    className: (0, _classnames.default)('spectrum-Table-row', className)
  }, (0, _filterDOMProps.default)(otherProps)), children);
}

TR.displayName = 'TR';

/***/ }),

/***/ "E2jh":
/***/ (function(module, exports, __webpack_require__) {

var coreJsData = __webpack_require__("2gN3");
/** Used to detect methods masquerading as native. */


var maskSrcKey = function () {
  var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');
  return uid ? 'Symbol(src)_1.' + uid : '';
}();
/**
 * Checks if `func` has its source masked.
 *
 * @private
 * @param {Function} func The function to check.
 * @returns {boolean} Returns `true` if `func` is masked, else `false`.
 */


function isMasked(func) {
  return !!maskSrcKey && maskSrcKey in func;
}

module.exports = isMasked;

/***/ }),

/***/ "E9nw":
/***/ (function(module, exports) {

module.exports = function () {
  var selection = document.getSelection();

  if (!selection.rangeCount) {
    return function () {};
  }

  var active = document.activeElement;
  var ranges = [];

  for (var i = 0; i < selection.rangeCount; i++) {
    ranges.push(selection.getRangeAt(i));
  }

  switch (active.tagName.toUpperCase()) {
    // .toUpperCase handles XHTML
    case 'INPUT':
    case 'TEXTAREA':
      active.blur();
      break;

    default:
      active = null;
      break;
  }

  selection.removeAllRanges();
  return function () {
    selection.type === 'Caret' && selection.removeAllRanges();

    if (!selection.rangeCount) {
      ranges.forEach(function (range) {
        selection.addRange(range);
      });
    }

    active && active.focus();
  };
};

/***/ }),

/***/ "EA7m":
/***/ (function(module, exports, __webpack_require__) {

var identity = __webpack_require__("zZ0H"),
    overRest = __webpack_require__("Ioao"),
    setToString = __webpack_require__("wclG");
/**
 * The base implementation of `_.rest` which doesn't validate or coerce arguments.
 *
 * @private
 * @param {Function} func The function to apply a rest parameter to.
 * @param {number} [start=func.length-1] The start position of the rest parameter.
 * @returns {Function} Returns the new function.
 */


function baseRest(func, start) {
  return setToString(overRest(func, start, identity), func + '');
}

module.exports = baseRest;

/***/ }),

/***/ "EBET":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

const _excluded = ["styles"];

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }

function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

var _default = _ref => {
  let {
    styles = {}
  } = _ref,
      props = _objectWithoutProperties(_ref, _excluded);

  return /*#__PURE__*/_react.default.createElement("svg", _extends({
    xmlns: "http://www.w3.org/2000/svg",
    height: "200",
    id: "S_Illu_AfterEffectsFirstMile_520x200",
    viewBox: "0 0 520 200",
    width: "520"
  }, props), /*#__PURE__*/_react.default.createElement("defs", null), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M505.96 114H388.04a4.053 4.053 0 0 1-4.04-4.058V36.059A4.054 4.054 0 0 1 388.04 32h117.92a4.054 4.054 0 0 1 4.04 4.059v73.883a4.053 4.053 0 0 1-4.04 4.058zM388.04 35.022a1.036 1.036 0 0 0-1.032 1.037v73.883a1.036 1.036 0 0 0 1.032 1.037h117.92a1.036 1.036 0 0 0 1.032-1.037V36.059a1.036 1.036 0 0 0-1.032-1.037z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M508.485 128H432.91a1 1 0 0 1 0-2h75.575a1 1 0 0 1 0 2z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M407.617 128H385.6a1 1 0 0 1 0-2h22.013a1 1 0 0 1 0 2z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M420.146 133.029a6.677 6.677 0 0 1-.5-13.336l.108-.014a2.814 2.814 0 0 1 .392-.032 6.691 6.691 0 0 1 0 13.382zm-.35-11.342a4.381 4.381 0 1 0 .35-.04.921.921 0 0 0-.119.014 4.29 4.29 0 0 1-.231.026z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M435.46 92.408a3.467 3.467 0 0 1-3.46-3.464V57.249a3.462 3.462 0 0 1 4.836-3.177c.039.017.078.036.115.055l28.622 15.39a4.065 4.065 0 0 1 0 7.159l-28.622 15.39a2.031 2.031 0 0 1-.115.055 3.451 3.451 0 0 1-1.376.287zm0-35.622a.467.467 0 0 0-.252.077.451.451 0 0 0-.208.386v31.7a.462.462 0 0 0 .605.439l28.547-15.349a1.064 1.064 0 0 0 0-1.874L435.605 56.81a.435.435 0 0 0-.145-.024z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M77.47 169.308a1.9 1.9 0 0 1-1.84-2.566l5.1-13.8a1.912 1.912 0 0 1 3.113-.719l10.047 11.366a2.19 2.19 0 0 1-1.337 3.619l-14.942 2.1h-.141zm5.084-15.532l-5 13.515 14.716-2.063a.191.191 0 0 0 .116-.315z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M452.829 147.2a1.5 1.5 0 0 0-1.5-1.479h-.006l-11.658.046a1.5 1.5 0 0 0 .006 3h.006l7.548-.03a44.643 44.643 0 0 1-29.084 20.721c-19.119 4.318-53.952-.675-94.368-27.62a1.394 1.394 0 0 0-1.546 2.321c22.8 15.2 54.551 29.552 81.96 29.552a66.19 66.19 0 0 0 14.567-1.533 47.383 47.383 0 0 0 31.112-22.4l.134 9.246a1.5 1.5 0 0 0 1.5 1.478h.022a1.5 1.5 0 0 0 1.478-1.523z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M197.165 152.051a1.788 1.788 0 0 1-.9-.241l-1.91-1.1a1.8 1.8 0 0 1-.658-2.457l1.1-1.91a1.8 1.8 0 0 1 2.457-.657l1.909 1.1a1.8 1.8 0 0 1 .656 2.457l-1.1 1.91a1.8 1.8 0 0 1-1.554.898zm-1.459-3.022l1.342.775.775-1.342-1.342-.774z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M207.988 158.3a1.793 1.793 0 0 1-.9-.241l-1.91-1.1a1.8 1.8 0 0 1-.658-2.457l1.1-1.91a1.8 1.8 0 0 1 2.458-.658l1.91 1.1a1.8 1.8 0 0 1 .657 2.458l-1.1 1.911a1.8 1.8 0 0 1-1.557.897zm-1.459-3.022l1.342.775.775-1.342-1.342-.775z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M219.448 164.925a1.8 1.8 0 0 1-.9-.242l-1.909-1.1a1.8 1.8 0 0 1-.658-2.458l1.1-1.91a1.8 1.8 0 0 1 2.458-.657l1.91 1.1a1.8 1.8 0 0 1 .657 2.457l-1.1 1.91a1.793 1.793 0 0 1-1.093.838 1.82 1.82 0 0 1-.465.062zm-1.459-3.022l1.342.774.774-1.341-1.341-.775zm2.4-.4z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M230.27 171.176a1.792 1.792 0 0 1-.9-.24l-1.91-1.1a1.8 1.8 0 0 1-.657-2.457l1.1-1.91a1.8 1.8 0 0 1 2.458-.657l1.909 1.1a1.8 1.8 0 0 1 .657 2.458l-1.1 1.91a1.8 1.8 0 0 1-1.557.896zm-1.458-3.021l1.341.775.775-1.341-1.342-.775zm2.4-.4z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M241.093 177.43a1.793 1.793 0 0 1-.9-.241l-1.909-1.1a1.8 1.8 0 0 1-.658-2.457l1.1-1.91a1.8 1.8 0 0 1 2.458-.657l1.91 1.1a1.8 1.8 0 0 1 .657 2.457l-1.1 1.911a1.8 1.8 0 0 1-1.558.897zm-1.458-3.022l1.342.775.774-1.341-1.341-.775zm2.4-.4zm0 0z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M213.559 123.643a1.793 1.793 0 0 1-.9-.241l-1.91-1.1a1.8 1.8 0 0 1-.657-2.458l1.1-1.909a1.8 1.8 0 0 1 2.458-.658l1.909 1.1a1.8 1.8 0 0 1 .657 2.458l-1.1 1.91a1.8 1.8 0 0 1-1.557.898zm-1.459-3.023l1.341.776.775-1.342-1.341-.775z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M224.382 129.9a1.792 1.792 0 0 1-.9-.24l-1.909-1.1a1.8 1.8 0 0 1-.658-2.458l1.1-1.91a1.8 1.8 0 0 1 2.457-.657l1.911 1.1a1.8 1.8 0 0 1 .657 2.458l-1.1 1.909a1.8 1.8 0 0 1-1.558.898zm-1.459-3.022l1.342.776.776-1.342-1.342-.775zm2.4-.4zm0 0z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M235.842 136.517a1.789 1.789 0 0 1-.9-.242l-1.91-1.1a1.8 1.8 0 0 1-.658-2.457l1.1-1.91a1.8 1.8 0 0 1 2.457-.657l1.91 1.1a1.8 1.8 0 0 1 .657 2.457l-1.1 1.911a1.787 1.787 0 0 1-1.092.837 1.829 1.829 0 0 1-.464.061zm-1.458-3.023l1.341.775.775-1.341-1.342-.775z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M244.389 141.567a1.057 1.057 0 0 1-.531-.143 1.8 1.8 0 0 1-.7-2.371l.436-1.115a1.064 1.064 0 0 1 1.981.775l-.412 1.055a1.064 1.064 0 0 1-.77 1.8z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M257.488 149.022a1.793 1.793 0 0 1-.9-.241l-1.91-1.1a1.8 1.8 0 0 1-.658-2.458l1.1-1.909a1.8 1.8 0 0 1 2.457-.658l1.91 1.1a1.8 1.8 0 0 1 .657 2.458l-1.1 1.91a1.8 1.8 0 0 1-1.556.898zM256.029 146l1.342.776.775-1.342-1.341-.775z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M222.26 156.385a1.063 1.063 0 0 1-.92-1.6l9.041-15.649a1.064 1.064 0 0 1 1.842 1.064l-9.041 15.65a1.064 1.064 0 0 1-.922.535z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M186.205 70.68a1.5 1.5 0 0 1-1.441-1.084l-1.364-4.743a1.5 1.5 0 0 1 .98-1.844l5.875-1.891a1.5 1.5 0 1 1 .92 2.855l-4.49 1.445.548 1.9L203.7 62.5a1.5 1.5 0 0 1 .843 2.879l-17.916 5.241a1.444 1.444 0 0 1-.422.06z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M263.2 146.118a1 1 0 0 1-1-1l.2-93.069a1 1 0 0 1 1-1 1 1 0 0 1 1 1l-.2 93.068a1 1 0 0 1-1 1.001z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M247.463 169.752a1.019 1.019 0 0 1-1.017-1.021l.2-79.6a1.018 1.018 0 0 1 1.019-1.015 1.019 1.019 0 0 1 1.017 1.021l-.2 79.6a1.018 1.018 0 0 1-1.019 1.015z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M268.361 45.486l-1.369-4.744a1.5 1.5 0 0 0-1.853-1.027l-29.718 8.495a1.5 1.5 0 0 0 .825 2.885l28.278-8.084.538 1.861-33.581 9.587-1.939-2.2a4.536 4.536 0 0 0 2.652-.887c.545-.441 2.17-2.121.176-5.2a34.574 34.574 0 0 1-2.868-5.733c-1.307-3.111-2.542-6.049-5.915-9.133a51.944 51.944 0 0 0-9.975-6.2 13.167 13.167 0 0 0-4.6-1.3 17.9 17.9 0 0 0-4.517.08l-9.789-11.076a1.5 1.5 0 0 0-2.112-.137l-3.818 3.335a1.5 1.5 0 0 0-.141 2.119L195.1 25.5c-6.5 3.152-19.218 8.858-23.011 9.912a32 32 0 0 1-7.135 1.1c-.942.065-1.9.13-2.937.246a1.8 1.8 0 0 0 .2 3.582 1.949 1.949 0 0 0 .2-.011c.986-.11 1.893-.171 2.785-.233a35.365 35.365 0 0 0 7.853-1.219c4.463-1.24 18.788-7.762 24.5-10.574L216.231 49.6l-.231-.078a78.658 78.658 0 0 1-7.562-2.92l-.151-3.44a1 1 0 1 0-2 .088l.1 2.317a25.156 25.156 0 0 1-3.082-2l1.343-1a1.5 1.5 0 1 0-1.788-2.408l-2.873 2.133a1.5 1.5 0 0 0-.114 2.316c4.459 4.045 9.889 5.926 15.14 7.746a60.982 60.982 0 0 1 10.354 4.321c1.241.709 2.389 1.873 2.078 2.52-.236.488-1.31.674-2.875.5-4.817-.546-9.5-.909-14.021-1.261-9.731-.756-18.923-1.469-28.765-3.855a1.5 1.5 0 0 0-.706 2.916 161.469 161.469 0 0 0 25.994 3.675 1.017 1.017 0 0 0-.448.826l-.2 57.228a1.036 1.036 0 0 0 1.032 1.04 1.036 1.036 0 0 0 1.036-1.032L208.7 62a1.033 1.033 0 0 0-.3-.73l1.92.151c4.5.35 9.151.711 13.915 1.25a12.39 12.39 0 0 0 1.395.084 7.423 7.423 0 0 0 1.921-.235l23.611 26.415a1.5 1.5 0 0 0 2.1.13l3.818-3.335a1.5 1.5 0 0 0 .138-2.123l-23.541-26.66 33.651-9.607a1.5 1.5 0 0 0 1.029-1.858zm-41.506 8.586a41.7 41.7 0 0 0-4.71-2.275L191.881 17.28l1.563-1.366 34.07 38.586c-.214-.146-.422-.293-.659-.428zM226 47.978a1.478 1.478 0 0 0-.537-.338l-18.488-20.935a12.338 12.338 0 0 1 1.659.082 10.284 10.284 0 0 1 3.717 1.04 49.9 49.9 0 0 1 9.211 5.7c2.888 2.639 3.948 5.161 5.175 8.081a36.91 36.91 0 0 0 3.116 6.2c.487.753.5 1.15.479 1.211a1.291 1.291 0 0 1-.779.245A4.893 4.893 0 0 1 226 47.978zm27.978 36.488l-1.566 1.367L230 60.76c.051-.088.108-.169.153-.263a3.591 3.591 0 0 0 .049-2.957z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M198.543 127.184a1.6 1.6 0 0 1-1.375-2.4l5.286-9.018a1.595 1.595 0 0 1 2.752 1.613l-5.286 9.021a1.592 1.592 0 0 1-1.377.784z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M244.878 129.04l-2.352-1.358-21.643-19.21a2.326 2.326 0 0 0-3.281.2l-2.707 3.05-2.749-1.589a1.595 1.595 0 0 0-1.6 2.762l32.737 18.905a1.577 1.577 0 0 0 .8.215 1.6 1.6 0 0 0 .8-2.977zm-25.685-18.961a.2.2 0 0 1 .279-.016l13.876 12.316-16.573-9.579z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M259.459 140.9a1.588 1.588 0 0 1-.8-.215L250.2 135.8a1.595 1.595 0 1 1 1.6-2.762l8.461 4.889a1.6 1.6 0 0 1-.8 2.977z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M272.578 155.265a2.308 2.308 0 0 0-.777-1.6l-3.948-3.5 1.97-3.41a2.855 2.855 0 0 0-1.043-3.9 1.595 1.595 0 0 0-1.868 2.564l-21.591 37.373-58.37-33.723 5.7-9.867a1.6 1.6 0 0 0-2.763-1.6l-5.867 10.155a2.857 2.857 0 0 0 1.044 3.9l32.94 19.03 21.639 19.206a2.307 2.307 0 0 0 1.541.587h.141a2.315 2.315 0 0 0 1.6-.777l3.305-3.725a2.838 2.838 0 0 0 1.685-1.3l.981-1.7L272 156.947a2.309 2.309 0 0 0 .578-1.682zm-31.241 33.021a.225.225 0 0 1-.28.017l-13.874-12.313 16.571 9.573zm29.063-32.752l-16.2 18.257 12.566-21.751 3.622 3.215a.2.2 0 0 1 .066.136.188.188 0 0 1-.054.143z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M195 144.887a.989.989 0 0 1-.989-.989v-73.63a.989.989 0 0 1 1.978 0V143.9a.989.989 0 0 1-.989.987z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M159 68.5a1.5 1.5 0 0 1-.635-.141 117.006 117.006 0 0 0-40.911-11.1 1.5 1.5 0 0 1 .222-2.992 119.986 119.986 0 0 1 41.961 11.378A1.5 1.5 0 0 1 159 68.5z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M344.5 89h-31.431l30.6-7.444a1.5 1.5 0 0 0 1.111-1.8l-1.749-7.6a1.5 1.5 0 0 0-.673-.939 1.482 1.482 0 0 0-1.141-.182l-41.36 9.97a1.5 1.5 0 0 0-1.11 1.8L300 90.292v34.27a1.448 1.448 0 0 0 1.5 1.438h43a1.448 1.448 0 0 0 1.5-1.438v-34.13A1.443 1.443 0 0 0 344.5 89zm-41.045 7.44v-4.508h6.457l-4.563 4.508zm10.726-4.508h5.119l-4.564 4.508h-5.115zm9.386 0h5.741l-4.564 4.508H319zm10.01 0h5.741l-4.563 4.508h-5.741zm9.423.581v3.927h-3.976zm-29.643-11.668a1.145 1.145 0 0 0 .111.083l5.732 3.442-5.6 1.347-5.854-3.517zM323.1 78.5c.032.022.059.049.093.069l5.749 3.455-5.591 1.347-5.851-3.523zm9.137-2.2c.026.018.048.04.075.056l5.77 3.466-4.982 1.2-5.858-3.52zm9.12 1.989l-4.976-2.989 4.062-.979zM303.611 83.2c.043.032.082.068.129.1l5.706 3.428-6.368 1.535-1.078-4.68zM303 123.062V99h40v24.062z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M114.264 57.846L93.738 36.915A5.571 5.571 0 1 0 84 37.959c.057.082.129.146.189.224L55.985 68.121a3.454 3.454 0 0 0-1.665-.441H50.1a3.5 3.5 0 0 0-3.5 3.5v4.22a3.478 3.478 0 0 0 1.109 2.541L33.824 93.945c-.118-.03-.229-.078-.35-.1a5.573 5.573 0 0 0-2.006 10.965 5.65 5.65 0 0 0 1 .092 5.55 5.55 0 0 0 3.242-10.085l13.867-15.976a3.471 3.471 0 0 0 .523.053h1.253A43.432 43.432 0 0 0 41.5 106c0 13.217 5.939 26.187 17.175 37.505a1.5 1.5 0 0 0 2.129-2.113C50.138 130.643 44.5 118.405 44.5 106c0-9.97 3.947-19.411 10.933-27.3a3.487 3.487 0 0 0 2.244-2.373 65.1 65.1 0 0 1 26.38-15.438 1.5 1.5 0 1 0-.907-2.859 69.422 69.422 0 0 0-25.333 14.044v-.9a3.447 3.447 0 0 0-.424-1.633l28.277-30.01a5.567 5.567 0 0 0 1.916.744c.138.025.276.023.414.038v27.678a2.412 2.412 0 0 0 1.625 2.3 2.472 2.472 0 0 0 .828.144 2.414 2.414 0 0 0 1.882-.907l7.557-9.328 12.283 1.77a2.439 2.439 0 0 0 2.089-4.122zM35 99.791a2.579 2.579 0 0 1-2.994 2.068 2.575 2.575 0 0 1-2.068-2.994 2.578 2.578 0 0 1 2.531-2.11 2.625 2.625 0 0 1 .464.042A2.576 2.576 0 0 1 35 99.791zm19.817-24.837c-.3.311-.6.623-.892.94H50.1a.5.5 0 0 1-.5-.5v-4.22a.5.5 0 0 1 .5-.5h4.22a.5.5 0 0 1 .5.5zm31.655-38.7a2.573 2.573 0 1 1 4.688-1.526A2.407 2.407 0 0 0 88 37.036v.251a2.544 2.544 0 0 1-1.528-1.033zm13 20.853a1.491 1.491 0 0 0-1.379.54L91 66.408V39.817a5.792 5.792 0 0 0 .756-.438c.039-.027.069-.063.108-.091l19.1 19.474z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M95.919 185.752a5.944 5.944 0 0 1-2.07-.374l-29.384-10.894a5.873 5.873 0 0 1-3.285-3 5.642 5.642 0 0 1-.208-4.417L75.16 128.8a5.8 5.8 0 0 1 7.482-3.344l22.458 8.327a5.957 5.957 0 0 1 3.292 3l4.418 9.332a5.647 5.647 0 0 1 .2 4.409l-.608 1.636a1.5 1.5 0 1 1-2.812-1.043l.607-1.635a2.672 2.672 0 0 0-.1-2.083l-4.419-9.332a2.933 2.933 0 0 0-1.623-1.476L81.6 128.273a2.8 2.8 0 0 0-3.626 1.574l-14.189 38.267a2.664 2.664 0 0 0 .1 2.086 2.889 2.889 0 0 0 1.619 1.471l29.385 10.9a2.894 2.894 0 0 0 2.187-.061 2.666 2.666 0 0 0 1.439-1.513l6.047-16.31a1.5 1.5 0 1 1 2.812 1.043l-6.047 16.31a5.636 5.636 0 0 1-3.036 3.213 5.853 5.853 0 0 1-2.372.499z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M144.084 156l-6.388-6.677c-2.091-2.186-4.693-4.908-8.271-5.725a17.491 17.491 0 0 0-4.433-.259l-6.309.188c-.928.027-1.917.064-2.914.18a1.5 1.5 0 0 0 .35 2.981c.877-.1 1.792-.137 2.653-.163l6.31-.188a15.04 15.04 0 0 1 3.676.186c2.7.617 4.956 2.977 6.77 4.874l6.388 6.678a1.5 1.5 0 1 0 2.168-2.075z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M140.627 174.509a6.371 6.371 0 0 1-4.118.206 23.351 23.351 0 0 1-7.115-2.6 48.519 48.519 0 0 1-4.253-2.807 82.144 82.144 0 0 0-2.886-1.987c-1.734-1.12-3.557-2.1-5.322-3.054l-4.19-2.257a12.894 12.894 0 0 1-2.956-1.951 3.349 3.349 0 0 1-1.105-2.26 5.768 5.768 0 0 1 1.9.119 73.634 73.634 0 0 1 11.52 2.986l.483.169a20.092 20.092 0 0 0 4.309 1.156 1.5 1.5 0 1 0 .353-2.979 10.6 10.6 0 0 1-1.587-.333 21.937 21.937 0 0 0-4.675-6.481 4.084 4.084 0 0 0-2.891-1.576 3.713 3.713 0 0 0-2.212.791l-1.391.887a1.5 1.5 0 1 0 1.616 2.528l1.388-.886a3.487 3.487 0 0 1 .57-.322c.083.02.277.145.73.628a35.5 35.5 0 0 1 2.634 3.045 76.653 76.653 0 0 0-10.333-2.568 7.438 7.438 0 0 0-3.414-.007 2.592 2.592 0 0 0-1.993 2.532 6.183 6.183 0 0 0 1.986 4.7 15.362 15.362 0 0 0 3.641 2.458l4.193 2.258c1.711.923 3.481 1.877 5.116 2.933.934.6 1.87 1.268 2.774 1.91a51.323 51.323 0 0 0 4.521 2.978 26.4 26.4 0 0 0 8.025 2.93 13.977 13.977 0 0 0 2.608.278 7.444 7.444 0 0 0 3.452-.767 1.5 1.5 0 0 0-1.381-2.664z"
  }));
};

exports.default = _default;

/***/ }),

/***/ "EJiy":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


exports.__esModule = true;

var _iterator = __webpack_require__("F+2o");

var _iterator2 = _interopRequireDefault(_iterator);

var _symbol = __webpack_require__("+JPL");

var _symbol2 = _interopRequireDefault(_symbol);

var _typeof = typeof _symbol2.default === "function" && typeof _iterator2.default === "symbol" ? function (obj) {
  return typeof obj;
} : function (obj) {
  return obj && typeof _symbol2.default === "function" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? "symbol" : typeof obj;
};

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

exports.default = typeof _symbol2.default === "function" && _typeof(_iterator2.default) === "symbol" ? function (obj) {
  return typeof obj === "undefined" ? "undefined" : _typeof(obj);
} : function (obj) {
  return obj && typeof _symbol2.default === "function" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? "symbol" : typeof obj === "undefined" ? "undefined" : _typeof(obj);
};

/***/ }),

/***/ "ESbf":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = function (value) {
  if (!value) return false;
  if (typeof value === "symbol") return true;
  if (!value.constructor) return false;
  if (value.constructor.name !== "Symbol") return false;
  return value[value.constructor.toStringTag] === "Symbol";
};

/***/ }),

/***/ "EUkQ":
/***/ (function(module, exports) {

module.exports = flatten;
flatten.flatten = flatten;
flatten.unflatten = unflatten;

function isBuffer(obj) {
  return obj && obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj);
}

function keyIdentity(key) {
  return key;
}

function flatten(target, opts) {
  opts = opts || {};
  const delimiter = opts.delimiter || '.';
  const maxDepth = opts.maxDepth;
  const transformKey = opts.transformKey || keyIdentity;
  const output = {};

  function step(object, prev, currentDepth) {
    currentDepth = currentDepth || 1;
    Object.keys(object).forEach(function (key) {
      const value = object[key];
      const isarray = opts.safe && Array.isArray(value);
      const type = Object.prototype.toString.call(value);
      const isbuffer = isBuffer(value);
      const isobject = type === '[object Object]' || type === '[object Array]';
      const newKey = prev ? prev + delimiter + transformKey(key) : transformKey(key);

      if (!isarray && !isbuffer && isobject && Object.keys(value).length && (!opts.maxDepth || currentDepth < maxDepth)) {
        return step(value, newKey, currentDepth + 1);
      }

      output[newKey] = value;
    });
  }

  step(target);
  return output;
}

function unflatten(target, opts) {
  opts = opts || {};
  const delimiter = opts.delimiter || '.';
  const overwrite = opts.overwrite || false;
  const transformKey = opts.transformKey || keyIdentity;
  const result = {};
  const isbuffer = isBuffer(target);

  if (isbuffer || Object.prototype.toString.call(target) !== '[object Object]') {
    return target;
  } // safely ensure that the key is
  // an integer.


  function getkey(key) {
    const parsedKey = Number(key);
    return isNaN(parsedKey) || key.indexOf('.') !== -1 || opts.object ? key : parsedKey;
  }

  function addKeys(keyPrefix, recipient, target) {
    return Object.keys(target).reduce(function (result, key) {
      result[keyPrefix + delimiter + key] = target[key];
      return result;
    }, recipient);
  }

  function isEmpty(val) {
    const type = Object.prototype.toString.call(val);
    const isArray = type === '[object Array]';
    const isObject = type === '[object Object]';

    if (!val) {
      return true;
    } else if (isArray) {
      return !val.length;
    } else if (isObject) {
      return !Object.keys(val).length;
    }
  }

  target = Object.keys(target).reduce(function (result, key) {
    const type = Object.prototype.toString.call(target[key]);
    const isObject = type === '[object Object]' || type === '[object Array]';

    if (!isObject || isEmpty(target[key])) {
      result[key] = target[key];
      return result;
    } else {
      return addKeys(key, result, flatten(target[key], opts));
    }
  }, {});
  Object.keys(target).forEach(function (key) {
    const split = key.split(delimiter).map(transformKey);
    let key1 = getkey(split.shift());
    let key2 = getkey(split[0]);
    let recipient = result;

    while (key2 !== undefined) {
      if (key1 === '__proto__') {
        return;
      }

      const type = Object.prototype.toString.call(recipient[key1]);
      const isobject = type === '[object Object]' || type === '[object Array]'; // do not write over falsey, non-undefined values if overwrite is false

      if (!overwrite && !isobject && typeof recipient[key1] !== 'undefined') {
        return;
      }

      if (overwrite && !isobject || !overwrite && recipient[key1] == null) {
        recipient[key1] = typeof key2 === 'number' && !opts.object ? [] : {};
      }

      recipient = recipient[key1];

      if (split.length > 0) {
        key1 = getkey(split.shift());
        key2 = getkey(split[0]);
      }
    } // unflatten again for 'messy objects'


    recipient[key1] = unflatten(target[key], opts);
  });
  return result;
}

/***/ }),

/***/ "EW2V":
/***/ (function(module, exports, __webpack_require__) {

module.exports = __webpack_require__("tOiH");

/***/ }),

/***/ "EXMj":
/***/ (function(module, exports) {

module.exports = function (it, Constructor, name, forbiddenField) {
  if (!(it instanceof Constructor) || forbiddenField !== undefined && forbiddenField in it) {
    throw TypeError(name + ': incorrect invocation!');
  }

  return it;
};

/***/ }),

/***/ "EbDI":
/***/ (function(module, exports) {

function _iterableToArray(iter) {
  if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
}

module.exports = _iterableToArray;
module.exports["default"] = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "EcEN":
/***/ (function(module, exports, __webpack_require__) {

var v1 = __webpack_require__("xDdU");

var v4 = __webpack_require__("xk4V");

var uuid = v4;
uuid.v1 = v1;
uuid.v4 = v4;
module.exports = uuid;

/***/ }),

/***/ "Ed7I":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var _interopRequireDefault = __webpack_require__("TqRt");

exports.__esModule = true;
exports.default = activeElement;

var _ownerDocument = _interopRequireDefault(__webpack_require__("o43f"));

function activeElement(doc) {
  if (doc === void 0) {
    doc = (0, _ownerDocument.default)();
  }

  try {
    return doc.activeElement;
  } catch (e) {
    /* ie throws if no active element */
  }
}

module.exports = exports["default"];

/***/ }),

/***/ "Edlj":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _autobindDecorator = _interopRequireDefault(__webpack_require__("gKdT"));

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _CoachMark = _interopRequireDefault(__webpack_require__("zLtB"));

var _propTypes = _interopRequireDefault(__webpack_require__("17x9"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

const _excluded = ["quiet", "onClick"];

var _class, _class2, _temp;

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
  try {
    var info = gen[key](arg);
    var value = info.value;
  } catch (error) {
    reject(error);
    return;
  }

  if (info.done) {
    resolve(value);
  } else {
    Promise.resolve(value).then(_next, _throw);
  }
}

function _asyncToGenerator(fn) {
  return function () {
    var self = this,
        args = arguments;
    return new Promise(function (resolve, reject) {
      var gen = fn.apply(self, args);

      function _next(value) {
        asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
      }

      function _throw(err) {
        asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
      }

      _next(undefined);
    });
  };
}

const FASTEST_SETINTERVAL_TIMEOUT = 10;

let CoachMarkIndicator = (0, _autobindDecorator.default)(_class = (_temp = _class2 = class CoachMarkIndicator extends _react.default.Component {
  constructor(props) {
    super(props);
    this.state = {
      style: {
        position: 'relative'
      }
    };
    this.indicatorRef = null;
    this.debouncedResizeUpdate = null;
  }

  calculateDOMLocation(targetNode) {
    let {
      left,
      top,
      width,
      height
    } = targetNode.getBoundingClientRect();

    if (this.indicatorRef) {
      let {
        height: indicatorDiameter
      } = this.indicatorRef.getBoundingClientRect();
      indicatorDiameter += _CoachMark.default.INDICATOR_OFFSET;
      this.setState({
        style: {
          position: 'absolute',
          top: top + height / 2 - indicatorDiameter / 2,
          left: left + width / 2 - indicatorDiameter / 2
        }
      });
    }
  }

  resizeListener() {
    if (!this.debouncedResizeUpdate) {
      this.debouncedResizeUpdate = setTimeout(() => {
        this.updateTargetNode();
        this.debouncedResizeUpdate = null;
      }, 50);
    }
  }

  updateTargetNode() {
    if (this.indicatorRef) {
      let targetNode = document.querySelector(this.props.selector);

      if (targetNode) {
        this.calculateDOMLocation(targetNode);
      }

      return targetNode;
    }

    return null;
  }

  tryAttachToDOM() {
    if (!this.updateTargetNode()) {
      let tryCount = 0;

      if (this.attachInterval) {
        this.clearAttachInterval();
      }

      this.attachInterval = setInterval(() => {
        if (this.updateTargetNode() || tryCount > 10) {
          this.clearAttachInterval();
        }

        tryCount++;
      }, FASTEST_SETINTERVAL_TIMEOUT);
    }
  }

  componentDidMount() {
    var _this = this;

    return _asyncToGenerator(function* () {
      _this.tryAttachToDOM();

      window.addEventListener('resize', _this.resizeListener);
    })();
  }

  componentDidUpdate(prevProps, prevState) {
    if (prevProps.selector !== this.props.selector) {
      this.tryAttachToDOM();
    }

    if (prevState.style.top !== this.state.style.top || prevState.style.left !== this.state.style.left) {
      this.props.onPositioned();
    }
  }

  componentWillUnmount() {
    window.removeEventListener('resize', this.resizeListener);
    this.clearDebouncedResizeUpdateInterval();
    this.clearAttachInterval();
  }

  clearDebouncedResizeUpdateInterval() {
    if (this.debouncedResizeUpdate) {
      clearTimeout(this.debouncedResizeUpdate);
      this.debouncedResizeUpdate = null;
    }
  }

  clearAttachInterval() {
    if (this.attachInterval) {
      clearInterval(this.attachInterval);
      this.attachInterval = null;
    }
  }

  setReference(ref) {
    this.indicatorRef = ref;
  }

  render() {
    let _this$props = this.props,
        {
      quiet,
      onClick
    } = _this$props,
        otherProps = _objectWithoutProperties(_this$props, _excluded);

    let {
      style
    } = this.state;
    return /*#__PURE__*/_react.default.createElement("div", _extends({
      className: (0, _classnames.default)('spectrum-CoachMarkIndicator', {
        'spectrum-CoachMarkIndicator--quiet': quiet
      }),
      role: "presentation"
    }, otherProps, {
      onClick: onClick,
      ref: this.setReference,
      style: style
    }), /*#__PURE__*/_react.default.createElement("div", {
      className: "spectrum-CoachMarkIndicator-ring"
    }), /*#__PURE__*/_react.default.createElement("div", {
      className: "spectrum-CoachMarkIndicator-ring"
    }), /*#__PURE__*/_react.default.createElement("div", {
      className: "spectrum-CoachMarkIndicator-ring"
    }));
  }

}, _class2.propTypes = {
  /** The selector is used to select the element the coach mark should attach to.
   * Any valid element query that will only return 1 element
   **/
  selector: _propTypes.default.string.isRequired,

  /** Quiet variant, uses a smaller indicator */
  quiet: _propTypes.default.bool,

  /** Fires when the coachmark changes position  */
  onPositioned: _propTypes.default.func
}, _class2.defaultProps = {
  quiet: false,
  onPositioned: () => {}
}, _temp)) || _class;

exports.default = CoachMarkIndicator;

/***/ }),

/***/ "Edxu":
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(global, process) { // limit of Crypto.getRandomValues()
// https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues

var MAX_BYTES = 65536; // Node supports requesting up to this number of bytes
// https://github.com/nodejs/node/blob/master/lib/internal/crypto/random.js#L48

var MAX_UINT32 = 4294967295;

function oldBrowser() {
  throw new Error('Secure random number generation is not supported by this browser.\nUse Chrome, Firefox or Internet Explorer 11');
}

var Buffer = __webpack_require__("hwdV").Buffer;

var crypto = global.crypto || global.msCrypto;

if (crypto && crypto.getRandomValues) {
  module.exports = randomBytes;
} else {
  module.exports = oldBrowser;
}

function randomBytes(size, cb) {
  // phantomjs needs to throw
  if (size > MAX_UINT32) throw new RangeError('requested too many random bytes');
  var bytes = Buffer.allocUnsafe(size);

  if (size > 0) {
    // getRandomValues fails on IE if size == 0
    if (size > MAX_BYTES) {
      // this is the max bytes crypto.getRandomValues
      // can do at once see https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues
      for (var generated = 0; generated < size; generated += MAX_BYTES) {
        // buffer.slice automatically checks if the end is past the end of
        // the buffer so we don't have to here
        crypto.getRandomValues(bytes.slice(generated, generated + MAX_BYTES));
      }
    } else {
      crypto.getRandomValues(bytes);
    }
  }

  if (typeof cb === 'function') {
    return process.nextTick(function () {
      cb(null, bytes);
    });
  }

  return bytes;
}
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("yLpj"), __webpack_require__("8oxB")))

/***/ }),

/***/ "EfZK":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


exports.__esModule = true;

var _propTypes = __webpack_require__("17x9");

var _propTypes2 = _interopRequireDefault(_propTypes);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _classCallCheck(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}

function _possibleConstructorReturn(self, call) {
  if (!self) {
    throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
  }

  return call && (typeof call === "object" || typeof call === "function") ? call : self;
}

function _inherits(subClass, superClass) {
  if (typeof superClass !== "function" && superClass !== null) {
    throw new TypeError("Super expression must either be null or a function, not " + typeof superClass);
  }

  subClass.prototype = Object.create(superClass && superClass.prototype, {
    constructor: {
      value: subClass,
      enumerable: false,
      writable: true,
      configurable: true
    }
  });
  if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;
}

var propTypes = {
  children: _propTypes2.default.node
};
/**
 * Internal helper component to allow attaching a non-conflicting ref to a
 * child element that may not accept refs.
 */

var RefHolder = function (_React$Component) {
  _inherits(RefHolder, _React$Component);

  function RefHolder() {
    _classCallCheck(this, RefHolder);

    return _possibleConstructorReturn(this, _React$Component.apply(this, arguments));
  }

  RefHolder.prototype.render = function render() {
    return this.props.children;
  };

  return RefHolder;
}(_react2.default.Component);

RefHolder.propTypes = propTypes;
exports.default = RefHolder;
module.exports = exports['default'];

/***/ }),

/***/ "EkPG":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

const _excluded = ["styles"];

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }

function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

var _default = _ref => {
  let {
    styles = {}
  } = _ref,
      props = _objectWithoutProperties(_ref, _excluded);

  return /*#__PURE__*/_react.default.createElement("svg", _extends({
    xmlns: "http://www.w3.org/2000/svg",
    width: "96",
    height: "96",
    viewBox: "0 0 96 96"
  }, props), /*#__PURE__*/_react.default.createElement("defs", null), /*#__PURE__*/_react.default.createElement("g", {
    id: "ICONS_96",
    "data-name": "ICONS 96"
  }, /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M70 86H26a3 3 0 0 1-3-3V15a3 3 0 0 1 3-3h44a3 3 0 0 1 3 3v68a3 3 0 0 1-3 3zM26 14a1 1 0 0 0-1 1v68a1 1 0 0 0 1 1h44a1 1 0 0 0 1-1V15a1 1 0 0 0-1-1z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M42 51.582a2.5 2.5 0 0 1 .377.027 5.44 5.44 0 0 1 4.5 4.958 5.71 5.71 0 0 1-2.242 3.386 10.968 10.968 0 0 1-6.474 1.688 21.954 21.954 0 0 1-3.393-.275l-.126-.02a8.176 8.176 0 0 0 2.448-4.791 9.132 9.132 0 0 1 1.843-3.747A5.094 5.094 0 0 1 42 51.582zm0-1.5a6.561 6.561 0 0 0-4.131 1.664 10.5 10.5 0 0 0-2.241 4.461c-.47 1.97-.913 3.83-3.412 4.846a.61.61 0 0 0-.346.723.91.91 0 0 0 .654.668 21.92 21.92 0 0 0 2.008.4 23.637 23.637 0 0 0 3.626.293 12.653 12.653 0 0 0 7.349-1.97c1.257-.861 2.881-3.028 2.867-4.618a6.919 6.919 0 0 0-5.765-6.425 3.8 3.8 0 0 0-.609-.042z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M63.256 32.144c.005.887-.943 4.749-12.907 18.55a11.181 11.181 0 0 0-3.393-3.263c4.838-5.312 13.504-14.8 16.3-15.287zm.21-1.519c-3.435 0-12.364 10.039-18.96 17.268a10.205 10.205 0 0 1 5.606 5.352c7.348-8.355 16.678-19.84 14.235-22.284a1.192 1.192 0 0 0-.881-.336z"
  })));
};

exports.default = _default;

/***/ }),

/***/ "EkhW":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _react_react_spectrum_IllustratedMessage__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("t+Du");
/* harmony import */ var _react_react_spectrum_IllustratedMessage__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_IllustratedMessage__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("TSYQ");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _styles_EmptyStates_css__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("i+ue");
/* harmony import */ var _styles_EmptyStates_css__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_styles_EmptyStates_css__WEBPACK_IMPORTED_MODULE_3__);




function EmptyState({ children, className, description, heading, illustration }) {
    return (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", { className: classnames__WEBPACK_IMPORTED_MODULE_2___default()(_styles_EmptyStates_css__WEBPACK_IMPORTED_MODULE_3___default.a.emptyStateContainer, className && _styles_EmptyStates_css__WEBPACK_IMPORTED_MODULE_3___default.a[className]) },
        react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", { className: _styles_EmptyStates_css__WEBPACK_IMPORTED_MODULE_3___default.a.emptyState },
            react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_react_react_spectrum_IllustratedMessage__WEBPACK_IMPORTED_MODULE_1___default.a, Object.assign({}, { description, heading, illustration })),
            children && react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", { className: _styles_EmptyStates_css__WEBPACK_IMPORTED_MODULE_3___default.a.actionContainer }, children))));
}
/* harmony default export */ __webpack_exports__["a"] = (EmptyState);


/***/ }),

/***/ "ElOe":
/***/ (function(module, exports, __webpack_require__) {

module.exports = __webpack_require__.p + "assets/cdo/onboardingIcon.sprk.png";

/***/ }),

/***/ "EldZ":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Transaction; });
/* harmony import */ var _sentry_utils_esm_buildPolyfills__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("P/f2");
/* harmony import */ var _sentry_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("GIgW");
/* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("kdvv");
/* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("8LbN");
/* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("6PXS");
/* harmony import */ var _span_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("SYqL");




/** JSDoc */

class Transaction extends _span_js__WEBPACK_IMPORTED_MODULE_5__[/* Span */ "a"] {
  /**
   * The reference to the current hub.
   */
  __init() {
    this._measurements = {};
  }

  __init2() {
    this._frozenDynamicSamplingContext = undefined;
  }
  /**
   * This constructor should never be called manually. Those instrumenting tracing should use
   * `Sentry.startTransaction()`, and internal methods should use `hub.startTransaction()`.
   * @internal
   * @hideconstructor
   * @hidden
   */


  constructor(transactionContext, hub) {
    super(transactionContext);

    Transaction.prototype.__init.call(this);

    Transaction.prototype.__init2.call(this);

    ;
    this._hub = hub || Object(_sentry_core__WEBPACK_IMPORTED_MODULE_1__[/* getCurrentHub */ "b"])();
    this._name = transactionContext.name || '';
    this.metadata = {
      source: 'custom',
      ...transactionContext.metadata,
      spanMetadata: {},
      changes: [],
      propagations: 0
    };
    this._trimEnd = transactionContext.trimEnd; // this is because transactions are also spans, and spans have a transaction pointer

    this.transaction = this; // If Dynamic Sampling Context is provided during the creation of the transaction, we freeze it as it usually means
    // there is incoming Dynamic Sampling Context. (Either through an incoming request, a baggage meta-tag, or other means)

    const incomingDynamicSamplingContext = this.metadata.dynamicSamplingContext;

    if (incomingDynamicSamplingContext) {
      // We shallow copy this in case anything writes to the original reference of the passed in `dynamicSamplingContext`
      this._frozenDynamicSamplingContext = { ...incomingDynamicSamplingContext
      };
    }
  }
  /** Getter for `name` property */


  get name() {
    return this._name;
  }
  /** Setter for `name` property, which also sets `source` as custom */


  set name(newName) {
    this.setName(newName);
  }
  /**
   * JSDoc
   */


  setName(name, source = 'custom') {
    // `source` could change without the name changing if we discover that an unparameterized route is actually
    // parameterized by virtue of having no parameters in its path
    if (name !== this.name || source !== this.metadata.source) {
      this.metadata.changes.push({
        // log previous source
        source: this.metadata.source,
        timestamp: Object(_sentry_utils__WEBPACK_IMPORTED_MODULE_2__[/* timestampInSeconds */ "c"])(),
        propagations: this.metadata.propagations
      });
    }

    this._name = name;
    this.metadata.source = source;
  }
  /**
   * Attaches SpanRecorder to the span itself
   * @param maxlen maximum number of spans that can be recorded
   */


  initSpanRecorder(maxlen = 1000) {
    if (!this.spanRecorder) {
      this.spanRecorder = new _span_js__WEBPACK_IMPORTED_MODULE_5__[/* SpanRecorder */ "b"](maxlen);
    }

    this.spanRecorder.add(this);
  }
  /**
   * @inheritDoc
   */


  setMeasurement(name, value, unit = '') {
    this._measurements[name] = {
      value,
      unit
    };
  }
  /**
   * @inheritDoc
   */


  setMetadata(newMetadata) {
    this.metadata = { ...this.metadata,
      ...newMetadata
    };
  }
  /**
   * @inheritDoc
   */


  finish(endTimestamp) {
    // This transaction is already finished, so we should not flush it again.
    if (this.endTimestamp !== undefined) {
      return undefined;
    }

    if (!this.name) {
      (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && _sentry_utils__WEBPACK_IMPORTED_MODULE_3__[/* logger */ "c"].warn('Transaction has no name, falling back to `<unlabeled transaction>`.');
      this.name = '<unlabeled transaction>';
    } // just sets the end timestamp


    super.finish(endTimestamp);

    if (this.sampled !== true) {
      // At this point if `sampled !== true` we want to discard the transaction.
      (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && _sentry_utils__WEBPACK_IMPORTED_MODULE_3__[/* logger */ "c"].log('[Tracing] Discarding transaction because its trace was not chosen to be sampled.');

      const client = this._hub.getClient();

      if (client) {
        client.recordDroppedEvent('sample_rate', 'transaction');
      }

      return undefined;
    }

    const finishedSpans = this.spanRecorder ? this.spanRecorder.spans.filter(s => s !== this && s.endTimestamp) : [];

    if (this._trimEnd && finishedSpans.length > 0) {
      this.endTimestamp = finishedSpans.reduce((prev, current) => {
        if (prev.endTimestamp && current.endTimestamp) {
          return prev.endTimestamp > current.endTimestamp ? prev : current;
        }

        return prev;
      }).endTimestamp;
    }

    const metadata = this.metadata;
    const transaction = {
      contexts: {
        trace: this.getTraceContext()
      },
      spans: finishedSpans,
      start_timestamp: this.startTimestamp,
      tags: this.tags,
      timestamp: this.endTimestamp,
      transaction: this.name,
      type: 'transaction',
      sdkProcessingMetadata: { ...metadata,
        dynamicSamplingContext: this.getDynamicSamplingContext()
      },
      ...(metadata.source && {
        transaction_info: {
          source: metadata.source,
          changes: metadata.changes,
          propagations: metadata.propagations
        }
      })
    };
    const hasMeasurements = Object.keys(this._measurements).length > 0;

    if (hasMeasurements) {
      (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && _sentry_utils__WEBPACK_IMPORTED_MODULE_3__[/* logger */ "c"].log('[Measurements] Adding measurements to transaction', JSON.stringify(this._measurements, undefined, 2));
      transaction.measurements = this._measurements;
    }

    (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && _sentry_utils__WEBPACK_IMPORTED_MODULE_3__[/* logger */ "c"].log(`[Tracing] Finishing ${this.op} transaction: ${this.name}.`);
    return this._hub.captureEvent(transaction);
  }
  /**
   * @inheritDoc
   */


  toContext() {
    const spanContext = super.toContext();
    return Object(_sentry_utils__WEBPACK_IMPORTED_MODULE_4__[/* dropUndefinedKeys */ "c"])({ ...spanContext,
      name: this.name,
      trimEnd: this._trimEnd
    });
  }
  /**
   * @inheritDoc
   */


  updateWithContext(transactionContext) {
    super.updateWithContext(transactionContext);
    this.name = Object(_sentry_utils_esm_buildPolyfills__WEBPACK_IMPORTED_MODULE_0__[/* _nullishCoalesce */ "a"])(transactionContext.name, () => '');
    this._trimEnd = transactionContext.trimEnd;
    return this;
  }
  /**
   * @inheritdoc
   *
   * @experimental
   */


  getDynamicSamplingContext() {
    if (this._frozenDynamicSamplingContext) {
      return this._frozenDynamicSamplingContext;
    }

    const hub = this._hub || Object(_sentry_core__WEBPACK_IMPORTED_MODULE_1__[/* getCurrentHub */ "b"])();
    const client = hub && hub.getClient();
    if (!client) return {};
    const {
      environment,
      release
    } = client.getOptions() || {};
    const {
      publicKey: public_key
    } = client.getDsn() || {};
    const maybeSampleRate = this.metadata.sampleRate;
    const sample_rate = maybeSampleRate !== undefined ? maybeSampleRate.toString() : undefined;
    const scope = hub.getScope();
    const {
      segment: user_segment
    } = scope && scope.getUser() || {};
    const source = this.metadata.source; // We don't want to have a transaction name in the DSC if the source is "url" because URLs might contain PII

    const transaction = source && source !== 'url' ? this.name : undefined;
    const dsc = Object(_sentry_utils__WEBPACK_IMPORTED_MODULE_4__[/* dropUndefinedKeys */ "c"])({
      environment,
      release,
      transaction,
      user_segment,
      public_key,
      trace_id: this.traceId,
      sample_rate
    }); // Uncomment if we want to make DSC immutable
    // this._frozenDynamicSamplingContext = dsc;

    return dsc;
  }

}



/***/ }),

/***/ "Eo+2":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("path", {
  d: "M17.757 2H7a1 1 0 0 0-1 1v30a1 1 0 0 0 1 1h22a1 1 0 0 0 1-1V14.243a3 3 0 0 0-.879-2.121l-9.242-9.243A3 3 0 0 0 17.757 2zM28 14H18V4h.172L28 13.828zm0 18H8V4h8v11a1 1 0 0 0 1 1h11z"
}));

/***/ }),

/***/ "EpBk":
/***/ (function(module, exports) {

/**
 * Checks if `value` is suitable for use as unique object key.
 *
 * @private
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is suitable, else `false`.
 */
function isKeyable(value) {
  var type = typeof value;
  return type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean' ? value !== '__proto__' : value === null;
}

module.exports = isKeyable;

/***/ }),

/***/ "EpQn":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("38DI"),
      24: __webpack_require__("/YfY")
    }
  }));
};

WrappedIcon.displayName = 'ViewList';
exports.default = WrappedIcon;

/***/ }),

/***/ "EtQ4":
/***/ (function(module) {

module.exports = JSON.parse("{\"close\":\"Close\",\"error\":\"Error\",\"warning\":\"Warning\",\"success\":\"Success\",\"info\":\"Information\"}");

/***/ }),

/***/ "Eu0X":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return onLeaveTeamAfter; });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _react_react_spectrum_Icon_Export__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("ToAJ");
/* harmony import */ var _react_react_spectrum_Icon_Export__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Icon_Export__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _stores_Project__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("sHM2");
/* harmony import */ var _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("mm/P");
/* harmony import */ var _packages_CDOView_utils_action__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("duTG");
/* harmony import */ var _components_ListDialog__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("OJK8");
/* harmony import */ var _utils_formatNameWithNonBreakingSpace__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("LYaz");
/* harmony import */ var _utils_dialogs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("Xpp+");
/* harmony import */ var _hosts_Host__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("Dy/p");
/* harmony import */ var _stores_SharedStore__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__("jmEq");
/* harmony import */ var _ccx_public_shared_asset_model_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__("m4Z2");
/* harmony import */ var _utils_constants__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__("YVc3");
/* harmony import */ var _stores_User__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__("CJr9");
/* harmony import */ var _utils_Route__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__("ynUZ");
/* harmony import */ var _utils_SAMUtils__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__("x7p6");
/* harmony import */ var _beforeOp__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__("Ku5u");
















var LeaveError;
(function (LeaveError) {
    // If you are the last contributor, you cannot leave the project
    LeaveError["ONLY_CONTRIBUTOR"] = "action.leave.error.onlyContributor";
    // If you got access as a member of a group, you cannot leave the project
    LeaveError["ADDRESS_BOOK_GROUP_MEMBER"] = "action.leave.error.addressBookGroupMember";
    LeaveError["IS_ADMIN"] = "action.leave.error.admin";
    LeaveError["GENERIC"] = "action.leave.error.generic";
})(LeaveError || (LeaveError = {}));
// A contributor can not leave a space if they are:
// (1) The only editor or
// (2) Invited as via an AB group
// Those space resources will be added to leaveNotAllowedResources
const checkLeaveError = async (project, sourceType) => {
    var _a, _b, _c;
    const title = `action.leave.${sourceType}.error`;
    if (!project.hasCollaboratorsFullyLoaded) {
        try {
            await project.loadCollaborators();
        }
        catch (err) {
            return {
                description: LeaveError.GENERIC,
                title,
            };
        }
    }
    // Each resource should have at least one member.
    // If the member list is empty, it must be the service failed to fetch to update it, then we'll allow to
    // further perform the actual leave action on this resource. If the user truly can't leave, it will fail anyway.
    if (!project.collaborators.length) {
        return {
            description: LeaveError.GENERIC,
            title,
        };
    }
    else if (((_a = project.userCollaborator) === null || _a === void 0 ? void 0 : _a.isAdmin) && !((_b = project.userCollaborator) === null || _b === void 0 ? void 0 : _b.isDirect)) {
        // Admins of the org have access to all spaces. But sometimes, they can be directly invited by other members
        // to the space, which in this case, they are allowed to leave the space as direct collaborator.
        // This only removes their entry in the `directCollaborators` list, but won't change the permission as admin
        // still have access to all content. Without direct invite permission, on leave, we show toast message such
        // that admin can't leave space.
        return {
            description: LeaveError.IS_ADMIN,
            title,
        };
    }
    else if (!((_c = project.userCollaborator) === null || _c === void 0 ? void 0 : _c.isDirect)) {
        // If the logged in user is not directly invited but have access to the space, they must be part of team/group.
        // It's important to check for group case before only-contributor case because group can be the only contributor.
        return {
            description: LeaveError.ADDRESS_BOOK_GROUP_MEMBER,
            title,
        };
    }
    else if (project.directContributorCount <= 1) {
        _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_3__[/* default */ "g"].fireEvent(_utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_3__[/* default */ "g"].scaffoldEvent(_utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_3__[/* Subcategory */ "c"].Unable, _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_3__[/* Subtype */ "d"].onlyContributorLeft, _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_3__[/* Type */ "e"].render, _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_3__[/* Workflow */ "f"].LeaveProject));
        return {
            description: LeaveError.ONLY_CONTRIBUTOR,
            title,
        };
    }
};
const onLeaveTeamAfter = async (browseSession) => {
    if (browseSession.currentTeamId) {
        await _stores_User__WEBPACK_IMPORTED_MODULE_12__[/* default */ "a"].removeTeam(browseSession.currentTeamId);
        // We don't use OtherTeamsRoute here because it's possible that the user doesn't
        // have any space or library in this team, so if navigate to "From other teams",
        // this tab will have to show up for the first time as empty. AnyTeamRoute will
        // automatically navigate to the 'From other teams' if the last route has been left.
        browseSession.navigateAndNotify(new _utils_Route__WEBPACK_IMPORTED_MODULE_13__[/* AnyTeamRoute */ "a"]());
    }
};
const checkLeaveStatus = async (doc, resourceType, teamUrn) => {
    var _a, _b;
    const errorTitle = `action.leave.${resourceType}.error`;
    let document = doc;
    let error, id, name;
    // Use imsUser id for imsUser type and addressBookContact id for AddressBookContact type
    let userId;
    if (resourceType === 'space') {
        // We always receive a project as the document here.
        const project = document;
        if (project.role === _stores_Project__WEBPACK_IMPORTED_MODULE_2__[/* Role */ "c"].CONTRIBUTOR) {
            // A space should have at least one collaborator
            error = await checkLeaveError(project, resourceType);
            userId = (_a = document.userCollaborator) === null || _a === void 0 ? void 0 : _a.id;
        }
        else {
            error = {
                description: LeaveError.GENERIC,
                title: errorTitle,
            };
        }
    }
    else {
        const resourceId = (document === null || document === void 0 ? void 0 : document.id) || teamUrn;
        const collaboratorsList = await Object(_utils_SAMUtils__WEBPACK_IMPORTED_MODULE_14__[/* loadList */ "a"])((_b = _stores_SharedStore__WEBPACK_IMPORTED_MODULE_9__[/* sharedStore */ "d"].collaborationContext) === null || _b === void 0 ? void 0 : _b.getCollaborators(resourceId), _ccx_public_shared_asset_model_js__WEBPACK_IMPORTED_MODULE_10__[/* CollaboratorOrder */ "h"].default, undefined, {
            limit: _utils_constants__WEBPACK_IMPORTED_MODULE_11__[/* PROJECTS_PAGE_SIZE */ "u"],
            loadAllPages: true,
        });
        const collaborators = collaboratorsList === null || collaboratorsList === void 0 ? void 0 : collaboratorsList.items;
        if (!collaborators || !collaborators.length) {
            error = {
                description: LeaveError.GENERIC,
                title: errorTitle,
            };
        }
        else {
            const userCollaborator = collaborators.find(collaborator => { var _a; return collaborator.imsUserId === ((_a = _stores_SharedStore__WEBPACK_IMPORTED_MODULE_9__[/* sharedStore */ "d"].imsData) === null || _a === void 0 ? void 0 : _a.userId); });
            // If the logged in user is not directly invited but have access to the resource, they must be part
            // of team/group.
            if (!(userCollaborator === null || userCollaborator === void 0 ? void 0 : userCollaborator.isDirect)) {
                error = {
                    description: LeaveError.ADDRESS_BOOK_GROUP_MEMBER,
                    title: errorTitle,
                };
            }
            userId = userCollaborator === null || userCollaborator === void 0 ? void 0 : userCollaborator.id;
        }
    }
    if (teamUrn) {
        id = teamUrn;
        name = teamUrn;
    }
    if (document) {
        name = Object(_utils_formatNameWithNonBreakingSpace__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"])(document.name || document.displayName);
        id = document.id;
    }
    const result = {
        resourceType,
        id,
        name,
    };
    return error ? Promise.reject({ error, ...result }) : { userId, ...result };
};
const leaveAction = ({ app, getSelectedSpaces, isVisible, onLeaveAfter, ingestEventData, teamUrn, }) => {
    // Both leave space and arfifact have the same label. For MVP, we will use a generic label id for them.
    let label = 'button.leaveProject';
    if (_hosts_Host__WEBPACK_IMPORTED_MODULE_8__[/* default */ "a"].isMVP) {
        label = teamUrn ? 'button.leaveTeam' : 'button.leave';
    }
    return new _packages_CDOView_utils_action__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"]({
        value: 'leave',
        label,
        icon: react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_react_react_spectrum_Icon_Export__WEBPACK_IMPORTED_MODULE_1___default.a, null),
        supportsMultiple: true,
        getDisabledTooltipMsgId: () => 'tooltip.offline.general',
        execute: async (documents) => {
            const { intl, showModal, toastManager } = app.projectsClient;
            let promise;
            let bulkOperation = false;
            let confirmationDialogTitle;
            let confirmationDialogDetailGroupHeader;
            let confirmationDialogDetailGroupList = [];
            let confirmationDialogLabel = intl.formatMessage({ id: 'button.continue' });
            let resourceType;
            if (teamUrn) {
                resourceType = 'team';
                confirmationDialogTitle = intl.formatMessage({
                    id: 'dialog.leave.team.title',
                });
                confirmationDialogDetailGroupHeader = intl.formatMessage({
                    id: 'dialog.leave.team.detail',
                });
                confirmationDialogLabel = intl.formatMessage({ id: label });
                promise = Promise.all([checkLeaveStatus(undefined, resourceType, teamUrn)]);
            }
            else {
                if (ingestEventData && documents.length === 1) {
                    _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_3__[/* default */ "g"].fireEvent(ingestEventData);
                }
                let originalDocuments = [];
                if (getSelectedSpaces) {
                    originalDocuments = getSelectedSpaces(documents);
                    _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_3__[/* default */ "g"].fireEvent(_utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_3__[/* default */ "g"].scaffoldEvent(_utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_3__[/* Subcategory */ "c"].ProjectMenu, _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_3__[/* Subtype */ "d"].leaveProject, _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_3__[/* Type */ "e"].click, _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_3__[/* Workflow */ "f"].LeaveProject));
                }
                else {
                    originalDocuments = documents;
                }
                if (!originalDocuments.length) {
                    return;
                }
                // Bulk leave is currently not supported
                if (documents[0].isProject) {
                    resourceType = 'space';
                }
                else if (documents[0].isArtifact) {
                    resourceType = 'prototype';
                }
                else {
                    // Use the more generic type ('file') for bulk leave working files.
                    resourceType =
                        documents.length === 1 && documents[0].isCanvas ? 'canvas' : 'file';
                }
                // If trying to leave the documents themselves or the space that the documents belong to,
                // but the documents are being opened in-app, then dismiss the leave action. `beforeOp` will
                // show info toast about opened documents are required to be closed in order to perform the action.
                const nonFilteredItems = await Object(_beforeOp__WEBPACK_IMPORTED_MODULE_15__[/* default */ "a"])(documents, app, _hosts_Host__WEBPACK_IMPORTED_MODULE_8__[/* default */ "a"].onBeforeDelete, _hosts_Host__WEBPACK_IMPORTED_MODULE_8__[/* default */ "a"].getOpenCloudDocuments);
                const hasFilteredItems = documents.length > nonFilteredItems.length;
                if (hasFilteredItems) {
                    return;
                }
                // Selected documents count
                const documentsCount = originalDocuments.length;
                bulkOperation = documentsCount > 1;
                // `catch` so that it waits until all promises complete even if some rejected
                promise = Promise.all(bulkOperation
                    ? originalDocuments.map(document => checkLeaveStatus(document, resourceType).catch(e => e))
                    : [checkLeaveStatus(originalDocuments[0], resourceType)]);
                // For single selected document, dialog shows its name in the title.
                const onlyDocumentName = originalDocuments[0].displayName || originalDocuments[0].name;
                confirmationDialogDetailGroupHeader = intl.formatMessage({ id: 'dialog.leave.detail' }, {
                    type: resourceType,
                    count: documentsCount,
                    name: onlyDocumentName,
                });
                confirmationDialogDetailGroupList = bulkOperation
                    ? originalDocuments.map(document => Object(_utils_formatNameWithNonBreakingSpace__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"])(document.displayName || document.name))
                    : [];
                confirmationDialogTitle = intl.formatMessage({ id: `dialog.leave.${resourceType}.title` }, {
                    count: documentsCount,
                    name: onlyDocumentName,
                });
            }
            const LazyListDialog = Object(_utils_dialogs__WEBPACK_IMPORTED_MODULE_7__[/* withSuspense */ "c"])(_components_ListDialog__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"], { variant: 'primary' })(promise);
            // Upon user confirmation, remove user sharing for the resource using invitation service
            // PATCH /api/v4/share/{urn}
            const leaveAct = async () => {
                var _a, _b, _c, _d, _e, _f, _g, _h;
                let extendedResources = await promise;
                const leaveAllowedExtendedResources = extendedResources.filter(item => !item.error);
                const start = performance.now();
                if (leaveAllowedExtendedResources.length) {
                    try {
                        const responses = await app.projectList.leaveResources(leaveAllowedExtendedResources);
                        // Get the list of failed items
                        const failedIds = responses.reduce((failedDocuments, response) => {
                            var _a;
                            if ((_a = response.collaborators) === null || _a === void 0 ? void 0 : _a.find(collaborator => collaborator.statusCode >= 400)) {
                                failedDocuments.push(response.id);
                            }
                            return failedDocuments;
                        }, []);
                        // Mark failed items in the list with error
                        extendedResources.forEach(item => {
                            if (failedIds.includes(item.id)) {
                                item['error'] = {
                                    description: LeaveError.GENERIC,
                                };
                            }
                        });
                    }
                    catch (error) {
                        extendedResources.forEach(item => {
                            item['error'] = {
                                description: LeaveError.GENERIC,
                            };
                        });
                    }
                }
                const elapsedTime = performance.now() - start;
                const finalSuccessItems = extendedResources.filter(item => !item.error);
                const finalSuccessCount = finalSuccessItems.length;
                const finalFailedItems = extendedResources.filter(item => item.error);
                const finalFailedCount = finalFailedItems.length;
                const everythingSucceeded = finalFailedCount === 0;
                if (everythingSucceeded) {
                    // Multiple selected items
                    let message;
                    if (resourceType === 'team') {
                        message = intl.formatMessage({ id: `action.leave.team.success` });
                    }
                    else {
                        message = intl.formatMessage({ id: `action.leave.${resourceType}.success` }, { count: finalSuccessCount });
                    }
                    toastManager.addToast(message, { closable: true, variant: 'success' });
                }
                else {
                    if (bulkOperation) {
                        // Multiple selected items - Partial Failure
                        const groupedFilenames = finalFailedItems.reduce((groups, item) => {
                            var _a;
                            let key = (_a = item === null || item === void 0 ? void 0 : item.error) === null || _a === void 0 ? void 0 : _a.description;
                            if (key) {
                                if (!groups[key]) {
                                    groups[key] = [];
                                }
                                groups[key].push(item.name);
                            }
                            return groups;
                        }, {});
                        showModal(react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_ListDialog__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"], { title: intl.formatMessage({
                                id: `action.leave.${resourceType}.partial.error`,
                            }), confirmLabel: intl.formatMessage({ id: 'button.close' }), groups: Object.entries(groupedFilenames).map(([headerId, names]) => ({
                                header: intl.formatMessage({ id: headerId }),
                                list: names,
                            })) }));
                    }
                    else {
                        // Single selected item - Failure
                        toastManager.addToast(intl.formatMessage({
                            id: `action.leave.${resourceType}.error`,
                        }), {
                            closable: true,
                            variant: 'error',
                        });
                    }
                }
                if (resourceType === 'space') {
                    let evtType = _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_3__[/* Type */ "e"].success, evtError;
                    if (!everythingSucceeded) {
                        evtType = _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_3__[/* Type */ "e"].error;
                        const firstError = finalFailedItems[0].error;
                        evtError = { event: {} };
                        Object(_utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_3__[/* fillError */ "h"])(evtError, {
                            statusCode: firstError.statusCode,
                            message: firstError.description,
                        });
                    }
                    const scaffoldEvent = _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_3__[/* default */ "g"].scaffoldEvent(_utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_3__[/* Subcategory */ "c"].Space, _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_3__[/* Subtype */ "d"].leave, evtType, _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_3__[/* Workflow */ "f"].Spaces);
                    const teamId = app.currentTeamId;
                    // Dunamis Analytics
                    _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_3__[/* default */ "g"].fireEvent({
                        event: {
                            ...scaffoldEvent.event,
                            ...evtError === null || evtError === void 0 ? void 0 : evtError.event,
                            value: elapsedTime,
                            org_guid: (_a = _stores_User__WEBPACK_IMPORTED_MODULE_12__[/* default */ "a"].getTeamFromId(teamId)) === null || _a === void 0 ? void 0 : _a.repositoryID,
                            context_guid: null,
                        },
                        content: {
                            // use first ID/name
                            id: ((_b = finalFailedItems[0]) === null || _b === void 0 ? void 0 : _b.id) || ((_c = finalSuccessItems[0]) === null || _c === void 0 ? void 0 : _c.id),
                            name: ((_d = finalFailedItems[0]) === null || _d === void 0 ? void 0 : _d.name) || ((_e = finalSuccessItems[0]) === null || _e === void 0 ? void 0 : _e.name),
                            author: (_f = _stores_User__WEBPACK_IMPORTED_MODULE_12__[/* default */ "a"].getTeamFromId(teamId)) === null || _f === void 0 ? void 0 : _f.collaboratorRole,
                        },
                        ui: {
                            view_type: _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_3__[/* Workflow */ "f"].LeaveProject,
                        },
                        custom: {
                            team_id: ((_g = finalFailedItems[0]) === null || _g === void 0 ? void 0 : _g.id) || ((_h = finalSuccessItems[0]) === null || _h === void 0 ? void 0 : _h.id),
                        },
                    });
                }
                onLeaveAfter === null || onLeaveAfter === void 0 ? void 0 : onLeaveAfter(finalSuccessItems);
            };
            const dialog = (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(LazyListDialog, { cancelLabel: intl.formatMessage({ id: 'button.cancel' }), confirmLabel: confirmationDialogLabel, groups: [
                    {
                        header: confirmationDialogDetailGroupHeader,
                        list: confirmationDialogDetailGroupList,
                    },
                ], onConfirm: () => {
                    _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_3__[/* default */ "g"].fireEvent(_utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_3__[/* default */ "g"].scaffoldEvent(_utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_3__[/* Subcategory */ "c"].Confirmation, _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_3__[/* Subtype */ "d"].leave, _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_3__[/* Type */ "e"].click, _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_3__[/* Workflow */ "f"].LeaveProject));
                    leaveAct();
                }, title: confirmationDialogTitle, variant: 'confirmation' }));
            showModal(react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_utils_dialogs__WEBPACK_IMPORTED_MODULE_7__[/* ProxyOnClose */ "b"], { element: dialog }, proxiedElement => (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0__["Suspense"], { fallback: react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_utils_dialogs__WEBPACK_IMPORTED_MODULE_7__[/* LoaderDialog */ "a"], null) }, proxiedElement))));
        },
        isVisible: isVisible,
    });
};
/* harmony default export */ __webpack_exports__["a"] = (leaveAction);


/***/ }),

/***/ "Ew0+":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.isNodeFullyVisible = isNodeFullyVisible;
exports.getScrollParent = getScrollParent;
exports.getScrollParents = getScrollParents;
exports.default = void 0;

var _boundingRectOverlapping = _interopRequireDefault(__webpack_require__("rjik"));

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}
/*************************************************************************
* ADOBE CONFIDENTIAL
* ___________________
*
* Copyright 2021 Adobe
* All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains
* the property of Adobe and its suppliers, if any. The intellectual
* and technical concepts contained herein are proprietary to Adobe
* and its suppliers and are protected by all applicable intellectual
* property laws, including trade secret and copyright laws.
* Dissemination of this information or reproduction of this material
* is strictly forbidden unless prior written permission is obtained
* from Adobe.
**************************************************************************/


class ScrollManager {
  constructor() {
    this.currentScrollViewNodesMap = new Map();
  }

  static getInstance() {
    if (!ScrollManager.instance) {
      ScrollManager.instance = new ScrollManager();
    }

    return ScrollManager.instance;
  }

  toggleScrollBarsVisibility(overlayVisible, hideOverlappingScrollBar, overlayRef, overlayRect = null, coachmarkTourInProgress = false) {
    let scrollViewNodes = document.querySelectorAll('.ReactScrollViewNode');

    for (const scrollView of scrollViewNodes) {
      var hideScrollbar = (overlayVisible && hideOverlappingScrollBar ? (0, _boundingRectOverlapping.default)(overlayRect, scrollView.getBoundingClientRect()) : overlayVisible) && overlayRef !== scrollView;
      this.handleScrollBarVisibility(hideScrollbar, scrollView, overlayRef, coachmarkTourInProgress);
    }
  }

  toggleScrollBarsVisibilityForScrollView(hide, ScrollView, overlayRef) {
    if (!ScrollView || !overlayRef) {
      return;
    }

    this.handleScrollBarVisibility(hide, ScrollView, overlayRef);
  }

  handleScrollBarVisibility(hideScrollbar, ScrollView, overlayRef, coachmarkTourInProgress = false) {
    var overlayset = this.currentScrollViewNodesMap.get(ScrollView) ? this.currentScrollViewNodesMap.get(ScrollView) : new Set();

    if (hideScrollbar) {
      ScrollView.setAttribute('uxpscrollbarhidden', true);
      overlayset.add(overlayRef);
      this.currentScrollViewNodesMap.set(ScrollView, overlayset);
    } else {
      overlayset.delete(overlayRef);

      if (overlayset.size === 0 && !coachmarkTourInProgress) {
        ScrollView.removeAttribute('uxpscrollbarhidden');
      }
    }
  }

}

exports.default = ScrollManager;

function isNodeFullyVisible(node) {
  if (!node) {
    return false;
  }

  var boundingRect = node.getBoundingClientRect();

  if (boundingRect.height === 0 && boundingRect.width === 0 && boundingRect.left === 0 && boundingRect.top === 0) {
    return false;
  }

  var parentNode = getScrollParent(node);

  if (!parentNode) {
    return true;
  }

  var parentBoundingRect = parentNode.getBoundingClientRect();
  return parentBoundingRect._y <= boundingRect._y && parentBoundingRect._y + parentBoundingRect.height >= boundingRect._y + boundingRect.height && parentBoundingRect._x <= boundingRect._x && parentBoundingRect._x + parentBoundingRect.width >= boundingRect._x + boundingRect.width;
}

function getScrollParent(node) {
  if (!node) {
    return;
  }

  while (node.parentNode) {
    var style = window.getComputedStyle(node);

    if (/auto|scroll/.test(style.overflow + style.overflowY) || node.hasAttribute('data-scrollable')) {
      return node;
    }

    node = node.parentNode;
  }

  return null;
}

function getScrollParents(node) {
  if (!node) {
    return;
  }

  let nodes = [];

  while (node.parentNode) {
    var style = window.getComputedStyle(node);

    if (/auto|scroll/.test(style.overflow + style.overflowY) || node.hasAttribute('data-scrollable')) {
      nodes.push(node);
    }

    node = node.parentNode;
  }

  return nodes;
}

/***/ }),

/***/ "ExA7":
/***/ (function(module, exports) {

/**
 * Checks if `value` is object-like. A value is object-like if it's not `null`
 * and has a `typeof` result of "object".
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
 * @example
 *
 * _.isObjectLike({});
 * // => true
 *
 * _.isObjectLike([1, 2, 3]);
 * // => true
 *
 * _.isObjectLike(_.noop);
 * // => false
 *
 * _.isObjectLike(null);
 * // => false
 */
function isObjectLike(value) {
  return value != null && typeof value == 'object';
}

module.exports = isObjectLike;

/***/ }),

/***/ "EzOH":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// UNUSED EXPORTS: SharedWithYouForTests

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__("q1tI");
var react_default = /*#__PURE__*/__webpack_require__.n(react);

// EXTERNAL MODULE: ./node_modules/mobx-react/index.module.js
var index_module = __webpack_require__("okNM");

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/Preview/index.js
var Preview = __webpack_require__("cTZj");
var Preview_default = /*#__PURE__*/__webpack_require__.n(Preview);

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/Flag/index.js
var Flag = __webpack_require__("sxWQ");
var Flag_default = /*#__PURE__*/__webpack_require__.n(Flag);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/stores/constants.ts
var constants = __webpack_require__("C0qj");

// EXTERNAL MODULE: ./node_modules/mobx/lib/mobx.module.js
var mobx_module = __webpack_require__("2vnA");

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/FieldLabel/index.js
var FieldLabel = __webpack_require__("lArf");
var FieldLabel_default = /*#__PURE__*/__webpack_require__.n(FieldLabel);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Textfield/index.js
var Textfield = __webpack_require__("WgUl");
var Textfield_default = /*#__PURE__*/__webpack_require__.n(Textfield);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Textarea/index.js
var Textarea = __webpack_require__("nTRy");
var Textarea_default = /*#__PURE__*/__webpack_require__.n(Textarea);

// EXTERNAL MODULE: ./node_modules/classnames/index.js
var classnames = __webpack_require__("TSYQ");
var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Radio/index.js
var Radio = __webpack_require__("1k/2");
var Radio_default = /*#__PURE__*/__webpack_require__.n(Radio);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/RadioGroup/index.js
var RadioGroup = __webpack_require__("Bj/G");
var RadioGroup_default = /*#__PURE__*/__webpack_require__.n(RadioGroup);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Tooltip/index.js
var Tooltip = __webpack_require__("DUuf");
var Tooltip_default = /*#__PURE__*/__webpack_require__.n(Tooltip);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/types/CDOReactIntlTyped.ts
var CDOReactIntlTyped = __webpack_require__("dSAe");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/validateEmail.ts
/**
 * In the interest of not rejecting valid emails, and since this is
 * mainly just used as a sanity-check for anonymous Report Abuse,
 * this just does a very simple check.
 */
function validateEmail(email) {
    return /^.+@.+\..+$/.test(email);
}

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/CDODialog.tsx
var CDODialog = __webpack_require__("Dc9i");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/styles/ReportAbuseDialog.css
var styles_ReportAbuseDialog = __webpack_require__("OPum");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/components/ReportAbuseDialog.tsx
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;
};
var __metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var ReportAbuseDialog_a;
/*************************************************************************
 *   ADOBE CONFIDENTIAL
 *
 *   Copyright 2022 Adobe
 *   All Rights Reserved.
 *
 *   NOTICE:  All information contained herein is, and remains
 *   the property of Adobe and its suppliers, if any. The intellectual
 *   and technical concepts contained herein are proprietary to Adobe
 *   and its suppliers and are protected by all applicable intellectual
 *   property laws, including trade secret and copyright laws.
 *   Dissemination of this information or reproduction of this material
 *   is strictly forbidden unless prior written permission is obtained
 *   from Adobe.
 **************************************************************************/














const REPORT_ABUSE_DESCRIPTION_MAX_LENGTH = 1000;
const REPORT_ABUSE_REPORTER_NAME_MAX_LENGTH = 100;
const REPORT_ABUSE_REPORTER_EMAIL_MAX_LENGTH = 250;
let ReportAbuseDialog_ReportAbuseDialog = class ReportAbuseDialog extends react["Component"] {
    constructor(props) {
        super(props);
        this.name = '';
        this.isNameChange = false;
        this.isEmailChange = false;
        this.emailId = '';
        this.descTxt = '';
        this.reason = '';
        this.attemptedSubmit = false;
        this.cdoStore = this.props.cdoStore;
        this.handleEmailChange = (value) => {
            this.isEmailChange = true;
            this.emailId = value.substring(0, REPORT_ABUSE_REPORTER_EMAIL_MAX_LENGTH);
        };
        this.handleNameChange = (value) => {
            this.isNameChange = true;
            this.name = value.substring(0, REPORT_ABUSE_REPORTER_NAME_MAX_LENGTH);
        };
        this.handleTextareaChange = (value) => {
            this.descTxt = value.substring(0, REPORT_ABUSE_DESCRIPTION_MAX_LENGTH);
        };
        this.handleRadioChange = (value) => {
            this.reason = value;
        };
        this.onConfirm = () => {
            const { element, onDismissModalDialog } = this.props;
            this.attemptedSubmit = true;
            if (!this.reason || !this.name || !validateEmail(this.emailId)) {
                return false;
            }
            const reportAbuseUserInput = {
                reportType: this.reason,
                reporterName: this.name.trim(),
                reporterEmail: this.emailId.trim(),
                reportDesc: this.descTxt || '(none)',
            };
            onDismissModalDialog([[element], reportAbuseUserInput]);
        };
        this.onCancel = () => this.props.onDismissModalDialog([[]]);
        // TODO: we do not currently receive authProfile/displayName from hostProductData
        // https://jira.corp.adobe.com/browse/CCXCD-6980
        this.name = '';
        this.emailId = this.cdoStore.imsData.fetchUserEmail() || '';
    }
    render() {
        const { intl, open, confirmDisabled, onDismissModalDialog, showPersonalInfo, description, dialogTitle, radioButtonsList, } = this.props;
        const isLoggedIn = !!this.cdoStore.docStore.isUserLoggedIn;
        const isNameFieldDisabled = isLoggedIn && !!this.name && !this.isNameChange;
        const isEmailFieldDisabled = isLoggedIn && !!this.emailId && !this.isEmailChange;
        return (react_default.a.createElement(CDODialog["a" /* default */], { qeId: "ReportAbuseDialog", title: intl.formatMessage({ id: dialogTitle }), onConfirm: this.onConfirm, onCancel: this.onCancel, confirmDisabled: confirmDisabled, open: open, onDismissModalDialog: onDismissModalDialog, confirmLabel: intl.formatMessage({ id: 'dialog.reportAbuse.reportAbuseButton' }), cancelLabel: intl.formatMessage({ id: 'dialog.reportAbuse.cancelButton' }) },
            react_default.a.createElement("div", { className: "titleTextContent" },
                react_default.a.createElement(CDOReactIntlTyped["a" /* FormattedMessage */], { id: description })),
            showPersonalInfo && (react_default.a.createElement("div", { "data-test-id": "inputFields", className: "emailNameInputFields" },
                react_default.a.createElement("div", { className: "emailInputField" },
                    react_default.a.createElement(FieldLabel_default.a, { label: intl.formatMessage({
                            id: 'dialog.reportAbuse.emailInput',
                        }), labelFor: this.emailId, necessity: "required" },
                        react_default.a.createElement(Textfield_default.a, { disabled: isEmailFieldDisabled, required: this.attemptedSubmit && !isLoggedIn, onChange: (value) => this.handleEmailChange(value), validationState: this.attemptedSubmit && !validateEmail(this.emailId)
                                ? 'invalid'
                                : undefined, value: this.emailId }))),
                react_default.a.createElement("div", { className: "nameInputField" },
                    react_default.a.createElement(FieldLabel_default.a, { label: intl.formatMessage({
                            id: 'dialog.reportAbuse.nameInput',
                        }), labelFor: this.name, necessity: "required" },
                        react_default.a.createElement(Textfield_default.a, { disabled: isNameFieldDisabled, required: this.attemptedSubmit && !isLoggedIn, onChange: (value) => this.handleNameChange(value), validationState: this.attemptedSubmit && !this.name ? 'invalid' : undefined, value: this.name }))))),
            react_default.a.createElement("div", { "data-test-id": "ReportAbuseDialog_ReasonGroup", className: "radioGroupContainer" },
                react_default.a.createElement(FieldLabel_default.a, { label: intl.formatMessage({
                        id: 'dialog.reportAbuse.radioButtonText',
                    }), labelFor: "concern-reason", necessity: "required" }),
                this.attemptedSubmit && !this.reason && (react_default.a.createElement(Tooltip_default.a, { placement: "top", variant: "error", open: true },
                    react_default.a.createElement(CDOReactIntlTyped["a" /* FormattedMessage */], { id: "dialog.reportAbuse.required" }))),
                react_default.a.createElement("div", { className: classnames_default()({
                        requiredField: this.attemptedSubmit,
                    }) },
                    react_default.a.createElement(RadioGroup_default.a, { selectedValue: this.reason, onChange: (value) => this.handleRadioChange(value), className: "radioGroup", name: "concern-reason" }, radioButtonsList.map(item => (react_default.a.createElement(Radio_default.a, { value: item.id, className: "radio", key: item.id },
                        react_default.a.createElement(CDOReactIntlTyped["a" /* FormattedMessage */], { id: `dialog.reportAbuse.${item.id}` }))))))),
            react_default.a.createElement("div", null,
                react_default.a.createElement(FieldLabel_default.a, { label: intl.formatMessage({
                        id: 'dialog.reportAbuse.textAreaTitle',
                    }), labelFor: "concern-description" },
                    react_default.a.createElement(Textarea_default.a, { className: "textAreaDesc", name: "concern-description", required: false, variant: "standard", labelPosition: "top", placeholder: intl.formatMessage({
                            id: 'dialog.reportAbuse.describeConcern',
                        }), onChange: (value) => this.handleTextareaChange(value) }))),
            react_default.a.createElement("div", { className: "footer" },
                react_default.a.createElement("div", { className: "disclaimerHelperText" },
                    react_default.a.createElement("span", null, "*"),
                    react_default.a.createElement(CDOReactIntlTyped["a" /* FormattedMessage */], { id: "dialog.reportAbuse.required" })))));
    }
};
ReportAbuseDialog_ReportAbuseDialog.defaultProps = {
    radioButtonsList: [
        { id: 'defamation' },
        { id: 'hate' },
        { id: 'trademark' },
        { id: 'pornography' },
        { id: 'vulgar' },
        { id: 'other' },
    ],
    showPersonalInfo: true,
    description: 'dialog.reportAbuse.description',
    dialogTitle: 'dialog.reportAbuse.heading',
};
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", Object)
], ReportAbuseDialog_ReportAbuseDialog.prototype, "name", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", Object)
], ReportAbuseDialog_ReportAbuseDialog.prototype, "isNameChange", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", Object)
], ReportAbuseDialog_ReportAbuseDialog.prototype, "isEmailChange", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", Object)
], ReportAbuseDialog_ReportAbuseDialog.prototype, "emailId", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", Object)
], ReportAbuseDialog_ReportAbuseDialog.prototype, "descTxt", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", Object)
], ReportAbuseDialog_ReportAbuseDialog.prototype, "reason", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", Object)
], ReportAbuseDialog_ReportAbuseDialog.prototype, "attemptedSubmit", void 0);
ReportAbuseDialog_ReportAbuseDialog = __decorate([
    Object(index_module["d" /* inject */])('cdoStore'),
    index_module["e" /* observer */],
    __metadata("design:paramtypes", [Object])
], ReportAbuseDialog_ReportAbuseDialog);
/* harmony default export */ var components_ReportAbuseDialog = (Object(CDOReactIntlTyped["e" /* injectIntl */])(ReportAbuseDialog_ReportAbuseDialog));
const ReportAbuseDialogForTests = ReportAbuseDialog_ReportAbuseDialog.wrappedComponent;


// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/action.ts
var action = __webpack_require__("zPGX");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/svgs/NoConnection.tsx
var NoConnection = __webpack_require__("r+Wy");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/components/svgs/EmptySharedDocs.tsx


const DEFAULT_SIZE = {
    width: 120,
    height: 120,
};
const EmptySharedDocs = ({ height = DEFAULT_SIZE.height, width = DEFAULT_SIZE.width, className = '', }) => (react_default.a.createElement("svg", { className: classnames_default()('EmptySharedDocs', className), xmlns: "http://www.w3.org/2000/svg", width: width, height: height, viewBox: `0 0 ${height} ${width}` },
    react_default.a.createElement("path", { d: "M94,22.11035V69.67676A8.33206,8.33206,0,0,1,85.67725,78H81.5a1.5,1.5,0,0,1,0-3h4.17725A5.32879,5.32879,0,0,0,91,69.67676V22.11035a5.967,5.967,0,0,0-1.75439-4.24121L79.16162,7.76367A5.9634,5.9634,0,0,0,74.91113,6H41.32275A5.32879,5.32879,0,0,0,36,11.32324V69.67676A5.32879,5.32879,0,0,0,41.32275,75H58.5a1.5,1.5,0,0,1,0,3H41.32275A8.33206,8.33206,0,0,1,33,69.67676V11.32324A8.33206,8.33206,0,0,1,41.32275,3H74.91113a8.94586,8.94586,0,0,1,6.374,2.64453L91.36963,15.75A8.94727,8.94727,0,0,1,94,22.11035ZM49.5127,99.668c-.52881-1.02539-1.02881-1.99317-1.45752-2.98535a12.05017,12.05017,0,0,1-.95215-5.27735l.42138-9.51757a1.499,1.499,0,0,0-1.43212-1.56446,1.4791,1.4791,0,0,0-1.56495,1.43164L44.106,91.27246a15.06346,15.06346,0,0,0,1.19482,6.59863c.47022,1.08887,1.01709,2.14844,1.54639,3.17286.41015.79394.82031,1.58789,1.19189,2.3916,2.37012,5.1289,2.9541,6.72949,2.79444,9.47754a1.49955,1.49955,0,0,0,1.41064,1.584c.0293.002.05908.00293.08838.00293a1.49985,1.49985,0,0,0,1.49609-1.41309c.21192-3.64355-.78711-5.97753-3.06591-10.90918C50.37256,101.334,49.94287,100.501,49.5127,99.668ZM73.15283,60.9834,72.707,59.169a4.47451,4.47451,0,0,0-2.57568-3.05762,4.34778,4.34778,0,0,0-3.88281.17578,6.23348,6.23348,0,0,0-2.00635,1.65234c-1.45557,1.957-1.35449,4.52442-1.2876,6.22364.019.47558.12939,1.59765.30859,3.39062.1836,1.83984.41162,4.12891.43067,4.8916A9.63439,9.63439,0,0,1,61.208,79.19922c-1.12256,1.23437-4.32715,5.75488-4.32715,10.18359a1.5,1.5,0,0,0,3,0c0-3.1914,2.43555-6.94336,3.54687-8.166a12.61779,12.61779,0,0,0,3.26514-8.84571c-.02148-.874-.23682-3.03027-.44482-5.11523-.13721-1.37695-.2793-2.80176-.29541-3.21094-.06934-1.75488-.06446-3.291.69531-4.3125a3.47573,3.47573,0,0,1,1.05566-.82129,1.36771,1.36771,0,0,1,1.22754-.05078,1.4963,1.4963,0,0,1,.86182,1.02344l.44678,1.81641C71.61914,67.30371,73.70361,75.77051,74.52,80.794a41.94709,41.94709,0,0,1,.63232,5.96777c.08057,4.60156-1.09619,9.04-2.34228,13.74023-.74414,2.80762-1.51416,5.71094-1.98731,8.64551a1.52157,1.52157,0,0,0-.01806.29785l.13525,3.48438a1.50024,1.50024,0,0,0,1.498,1.4414c.01953,0,.03955,0,.05908-.001A1.50061,1.50061,0,0,0,73.938,112.8125l-.1294-3.333c.45166-2.74023,1.18848-5.51953,1.90137-8.209,1.24365-4.69141,2.52979-9.542,2.44238-14.56153a44.70159,44.70159,0,0,0-.67138-6.3955C76.645,75.16992,74.54346,66.63281,73.15283,60.9834ZM74.93311,46.335a5.32693,5.32693,0,1,1,3.834,1.63965c-.02686,0-.05371-.001-.081-.001A5.2804,5.2804,0,0,1,74.93311,46.335Zm.4956-3.79394a3.37842,3.37842,0,0,0,.94678,2.4082,3.29433,3.29433,0,0,0,2.34082,1.02441l.05029.001a3.38366,3.38366,0,0,0,.05127-6.76563l-.05078-.001a3.29555,3.29555,0,0,0-2.31982.9541A3.37924,3.37924,0,0,0,75.42871,42.541ZM64.56934,53.96582a1,1,0,0,0,1.458-1.36914L60.49365,46.707a1.96,1.96,0,0,0-1.39551-.60742,1.84027,1.84027,0,0,0-1.42041.57031L41.96094,62.32324a1.0002,1.0002,0,0,0,.70556,1.709h.002L60.002,64A1,1,0,0,0,60,62h-.002l-14.91114.02734L59.04346,48.084Zm5.79052-3.11914-2.4082,2.48437a1.00036,1.00036,0,0,0,1.43652,1.39258l2.39063-2.46679A.19732.19732,0,0,1,71.917,52.209a.21.21,0,0,1,.13867.044l9.15137,9.75-5.20849.00781a1,1,0,0,0,.00146,2h.00146L83.51562,64a1.00008,1.00008,0,0,0,.72754-1.68457L73.50586,50.876a2.22477,2.22477,0,0,0-3.146-.0293Z" })));
/* harmony default export */ var svgs_EmptySharedDocs = (EmptySharedDocs);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/constants.ts
var utils_constants = __webpack_require__("a375");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/CDOTab.tsx + 6 modules
var CDOTab = __webpack_require__("/7zY");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/actions/index.tsx + 7 modules
var actions = __webpack_require__("xsR+");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/post-report-abuse.ts
const LEIA_STAGE_URL = 'https://leia-stage.adobe.io/v1/acp_report_abuse';
const LEIA_PROD_URL = 'https://leia.adobe.io/v1/acp_report_abuse';
const CDO_PRODUCT_ID = 'CloudDocOrganizer';
async function postReportAbuse(element, reportAbuseInputData, environment) {
    const requestHeaders = new Headers({
        'Content-Type': 'application/json',
        'X-Api-Key': 'CCXWeb1',
    });
    const requestBody = JSON.stringify({
        productId: CDO_PRODUCT_ID,
        assetList: [{ assetId: element.id }],
        reportDate: `${new Date().toISOString()}`,
        reportType: reportAbuseInputData.reportType,
        reportDesc: reportAbuseInputData.reportDesc,
        reporterName: reportAbuseInputData.reporterName,
        reporterEmail: reportAbuseInputData.reporterEmail,
    });
    const requestOptions = {
        method: 'POST',
        headers: requestHeaders,
        body: requestBody,
    };
    const LEIA_URL = environment === 'stage' ? LEIA_STAGE_URL : LEIA_PROD_URL;
    const response = await fetch(LEIA_URL, requestOptions);
    return response;
}

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/start-sync-error-resolve-workflow.tsx + 2 modules
var start_sync_error_resolve_workflow = __webpack_require__("tyPb");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/launch-item.ts
var launch_item = __webpack_require__("Kko5");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/ViewItem.tsx
var ViewItem = __webpack_require__("0gRt");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/GridView.tsx + 1 modules
var GridView = __webpack_require__("q/Z0");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/ListView.tsx + 1 modules
var ListView = __webpack_require__("JRZE");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/ListItem.tsx
var ListItem = __webpack_require__("SvrS");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/components/SharedWithYou.tsx
var SharedWithYou_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;
};
/*************************************************************************
 *   ADOBE CONFIDENTIAL
 *
 *   Copyright 2022 Adobe
 *   All Rights Reserved.
 *
 *   NOTICE:  All information contained herein is, and remains
 *   the property of Adobe and its suppliers, if any. The intellectual
 *   and technical concepts contained herein are proprietary to Adobe
 *   and its suppliers and are protected by all applicable intellectual
 *   property laws, including trade secret and copyright laws.
 *   Dissemination of this information or reproduction of this material
 *   is strictly forbidden unless prior written permission is obtained
 *   from Adobe.
 **************************************************************************/




















const INGEST_SUBCATEGORY = 'Shared with You';
const isNonZeroDate = (date) => date.getTime() !== 0;
let SharedWithYou_SharedWithYou = class SharedWithYou extends CDOTab["a" /* default */] {
    constructor() {
        var _a, _b;
        super(...arguments);
        this.openAction = Object(actions["b" /* openActionFactory */])({
            canOpenMultiple: this.cdoStore.isFeatureFlagEnabled('enableCloudDocMultiSelectOpen'),
            canOpenItems: this.callbacks.canOpenItems,
            getDisabledTooltipMsgId: this.getDisabledTooltipMsgId,
            onOpenDocuments: this.callbacks.onOpenDocuments,
            startSyncErrorResolutionWorkflow: element => this.startSyncErrorResolutionWorkflow(element),
        });
        this.previewAction = new action["d" /* default */]({
            value: action["a" /* CDOActionValue */].Preview,
            label: 'button.preview',
            icon: react_default.a.createElement(Preview_default.a, null),
            isVisible: selectionStore => selectionStore.hasOnlyNonFolders,
            execute: async ([element]) => this.callbacks.onPreviewDocument &&
                this.callbacks.onPreviewDocument(Object(launch_item["c" /* getLaunchDocInfo */])(element)),
        });
        this.scheduleAction = Object(actions["c" /* scheduleActionFactory */])({
            canSchedule: (_a = this.callbacks) === null || _a === void 0 ? void 0 : _a.canSchedule,
            getDisabledTooltipMsgId: this.getDisabledTooltipMsgIdOnlineOnly,
            onScheduleDocument: (_b = this.callbacks) === null || _b === void 0 ? void 0 : _b.onScheduleDocument,
        });
        this.reportAbuseAction = new action["d" /* default */]({
            value: action["a" /* CDOActionValue */].ReportAbuse,
            label: 'button.reportAbuse',
            icon: react_default.a.createElement(Flag_default.a, null),
            isVisible: selectionStore => selectionStore.hasOnlyNonFolders && selectionStore.hasOnlyOne,
            getDisabledTooltipMsgId: this.getDisabledTooltipMsgIdOnlineOnly,
            beforeExecute: async ([element]) => {
                const { openModalDialog } = this.props;
                const { isOnline } = this.docStore;
                const focusManagementEnabled = this.cdoStore.isFeatureFlagEnabled('focusManagementEnabled');
                return openModalDialog(react_default.a.createElement(components_ReportAbuseDialog, { element: element, confirmDisabled: !isOnline, focusManagementEnabled: focusManagementEnabled }), this.onDialogStateChange);
            },
            execute: async ([element], correlationId, reportAbuseInputData) => {
                const { imsData } = this.cdoStore;
                const response = await postReportAbuse(element, reportAbuseInputData, imsData.environment);
                const status = response.ok ? 'success' : 'error';
                this.docStore.openToast({
                    message: `${status}.reportAbuse`,
                    variant: `${status}`,
                });
            },
        });
        this.getDataProps = () => {
            var _a;
            const { sharedWithYouCollection } = this.docStore;
            return {
                collection: sharedWithYouCollection,
                elements: (_a = this.filteredSharedWithYouCollection) !== null && _a !== void 0 ? _a : [],
                fetchMethod: this.fetchMethod,
                fetchState: sharedWithYouCollection === null || sharedWithYouCollection === void 0 ? void 0 : sharedWithYouCollection.fetchState,
                viewRootPath: utils_constants["s" /* SHARED_WITH_YOU_PATH */],
            };
        };
        this.getNonErrorEmptyViewProps = () => {
            const { isOnline } = this.docStore;
            const onlineEmptyViewProps = {
                automationSuffix: 'SHARED_WITH_YOU',
                image: react_default.a.createElement(svgs_EmptySharedDocs, null),
                ingestSubcategory: INGEST_SUBCATEGORY,
                subtitleId: 'empty.subtext.shared_with_you',
                titleId: 'empty.title.shared_with_you',
            };
            const offlineEmptyViewProps = {
                automationSuffix: 'SHARED_WITH_YOU',
                image: react_default.a.createElement(NoConnection["a" /* default */], null),
                ingestSubcategory: INGEST_SUBCATEGORY,
                subtitleId: 'empty.subtext.shared_with_you_offline',
                titleId: 'empty.title.shared_with_you_offline',
            };
            return isOnline ? onlineEmptyViewProps : offlineEmptyViewProps;
        };
        this.fetchMethod = () => {
            this.docStore.fetchSharedWithYou();
        };
        // TODO: refactor usage of UXSortBy(ForACP/ForResources) so that
        // TS doesn't complain about this
        // @ts-ignore
        this.onSortSelected = (sortBy) => {
            const { activeSharedWithYouSort: activeSort, activeSharedWithYouSortDirection: activeSortDir, } = this.docStore;
            let sortDir = activeSortDir === constants["w" /* UXSortDir */].asc ? constants["w" /* UXSortDir */].desc : constants["w" /* UXSortDir */].asc;
            if (sortBy !== activeSort) {
                this.docStore.setSharedWithYouActiveSort(sortBy);
                sortDir = constants["w" /* UXSortDir */].asc;
            }
            this.docStore.setSharedWithYouActiveSortDirection(sortDir);
        };
    }
    get tabConfig() {
        return {
            tabName: 'SharedWithYou',
            ingestSubcategory: INGEST_SUBCATEGORY,
        };
    }
    startSyncErrorResolutionWorkflow(element) {
        const { openModalDialog, callbacks, intl, metrics } = this.props;
        Object(start_sync_error_resolve_workflow["b" /* default */])({
            element,
            openModalDialog,
            callbacks,
            intl,
            docStore: this.docStore,
            cdoMetrics: metrics,
            ingestSubcategory: INGEST_SUBCATEGORY,
            openToast: options => this.docStore.openToast(options),
        });
    }
    get filteredSharedWithYouCollection() {
        const { sharedWithYouCollection } = this.docStore;
        return sharedWithYouCollection === null || sharedWithYouCollection === void 0 ? void 0 : sharedWithYouCollection.sortedElements.filter(ele => !ele.isFolder);
    }
    get allAvailableActions() {
        return [
            this.openAction,
            this.cdoStore.isFeatureFlagEnabled('enableCloudDocPreview') && this.previewAction,
            this.cdoStore.isFeatureFlagEnabled('enableCloudDocSchedule') && this.scheduleAction,
            this.reportAbuseAction,
        ].filter(Boolean);
    }
    get isCCDMode() {
        const { cdoStore } = this.props;
        return cdoStore.isFeatureFlagEnabled('useCCDmode');
    }
    get headerActions() {
        const { cdoStore } = this.props;
        const enableMultiSelectOpen = cdoStore.isFeatureFlagEnabled('enableCloudDocMultiSelectOpen') || this.isCCDMode;
        // For apps that support multi-open, add the openAction to the menus and enable
        // selection.
        let headerActions = this.allAvailableActions;
        if (!enableMultiSelectOpen) {
            headerActions = this.allAvailableActions.filter(action => action !== this.openAction);
        }
        return headerActions;
    }
    get enableSelection() {
        const { cdoStore } = this.props;
        const { isOrganizer, isPlaceLinkOrEmbedPicker } = cdoStore;
        return (isOrganizer && this.headerActions.length > 0) || isPlaceLinkOrEmbedPicker;
    }
    get cdoViewConfig() {
        const hideCheckboxes = this.isCCDMode;
        return {
            selectionDisabled: !this.enableSelection,
            // checkboxes can be hidden independently of selection enablement.
            hideSelectionCheckbox: hideCheckboxes || !this.enableSelection,
        };
    }
    get shareDateColumn() {
        const { activeSharedWithYouSort: activeSort, activeSharedWithYouSortDirection: activeSortDirection, } = this.docStore;
        const { intl } = this.props;
        return {
            id: constants["t" /* UXSortBy */].shareDate,
            uxSortColumn: constants["t" /* UXSortBy */].shareDate,
            activeSortDirection,
            isActiveSort: activeSort === constants["t" /* UXSortBy */].shareDate,
            label: intl.formatMessage({ id: `header.${constants["t" /* UXSortBy */].shareDate}` }).toUpperCase(),
            isSortDisabled: false,
            cellContentRender: (e) => 
            // if we don't actually have a shareDate, don't attempt to show one
            isNonZeroDate(e.shareDate) && Object(ListItem["b" /* renderDateColumn */])(e.shareDate, constants["t" /* UXSortBy */].shareDate),
            columnType: ListView["b" /* ColumnType */].Date,
        };
    }
    get commonItemProps() {
        const showSWYCloudStatusIcon = this.cdoStore.isFeatureFlagEnabled('showSWYCloudStatusIcon');
        return {
            renderBadge: showSWYCloudStatusIcon ? this.itemBadgeRenderer : undefined,
        };
    }
    get gridItemProps() {
        return {
            ...this.commonItemProps,
        };
    }
    get listItemProps() {
        return {
            ...this.commonItemProps,
        };
    }
    get gridMetadataFormat() {
        return (element) => 
        // if we don't actually have a shareDate, don't attempt to show one
        isNonZeroDate(element.shareDate) && (react_default.a.createElement(ViewItem["a" /* DateMetadata */], { date: element.shareDate, id: "CDOGridItem_DateShared" }));
    }
    get collectionViews() {
        const { activeSharedWithYouSort: activeSort, activeSharedWithYouSortDirection: activeSortDirection, } = this.docStore;
        const commonViewProps = {
            activeSort,
            activeSortDirection,
            onSortSelected: this.onSortSelected,
        };
        const columns = [this.shareDateColumn];
        return [
            react_default.a.createElement(GridView["b" /* default */], Object.assign({}, {}, { sortOptions: [constants["t" /* UXSortBy */].shareDate, constants["t" /* UXSortBy */].title] }, commonViewProps), element => this.getViewItem(element)
                .grid),
            react_default.a.createElement(ListView["c" /* default */], Object.assign({}, {}, { columns: columns }, commonViewProps), element => this.getViewItem(element)
                .list),
        ];
    }
};
SharedWithYou_SharedWithYou = SharedWithYou_decorate([
    Object(index_module["d" /* inject */])('cdoStore', 'callbacks', 'openModalDialog', 'metrics', 'selectionStore'),
    index_module["e" /* observer */]
], SharedWithYou_SharedWithYou);
/* harmony default export */ var components_SharedWithYou = __webpack_exports__["a"] = (Object(CDOReactIntlTyped["e" /* injectIntl */])(SharedWithYou_SharedWithYou));
const SharedWithYouForTests = SharedWithYou_SharedWithYou.wrappedComponent;



/***/ }),

/***/ "F+2o":
/***/ (function(module, exports, __webpack_require__) {

module.exports = {
  "default": __webpack_require__("2Nb0"),
  __esModule: true
};

/***/ }),

/***/ "F+4+":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXPORTS
__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ createTransport; });

// UNUSED EXPORTS: DEFAULT_TRANSPORT_BUFFER_SIZE

// EXTERNAL MODULE: ./node_modules/@sentry/utils/esm/error.js
var esm_error = __webpack_require__("9Pyj");

// EXTERNAL MODULE: ./node_modules/@sentry/utils/esm/syncpromise.js
var syncpromise = __webpack_require__("HR75");

// CONCATENATED MODULE: ./node_modules/@sentry/utils/esm/promisebuffer.js


/**
 * Creates an new PromiseBuffer object with the specified limit
 * @param limit max number of promises that can be stored in the buffer
 */

function makePromiseBuffer(limit) {
  const buffer = [];

  function isReady() {
    return limit === undefined || buffer.length < limit;
  }
  /**
   * Remove a promise from the queue.
   *
   * @param task Can be any PromiseLike<T>
   * @returns Removed promise.
   */


  function remove(task) {
    return buffer.splice(buffer.indexOf(task), 1)[0];
  }
  /**
   * Add a promise (representing an in-flight action) to the queue, and set it to remove itself on fulfillment.
   *
   * @param taskProducer A function producing any PromiseLike<T>; In previous versions this used to be `task:
   *        PromiseLike<T>`, but under that model, Promises were instantly created on the call-site and their executor
   *        functions therefore ran immediately. Thus, even if the buffer was full, the action still happened. By
   *        requiring the promise to be wrapped in a function, we can defer promise creation until after the buffer
   *        limit check.
   * @returns The original promise.
   */


  function add(taskProducer) {
    if (!isReady()) {
      return Object(syncpromise["b" /* rejectedSyncPromise */])(new esm_error["a" /* SentryError */]('Not adding Promise because buffer limit was reached.'));
    } // start the task and add its promise to the queue


    const task = taskProducer();

    if (buffer.indexOf(task) === -1) {
      buffer.push(task);
    }

    void task.then(() => remove(task)) // Use `then(null, rejectionHandler)` rather than `catch(rejectionHandler)` so that we can use `PromiseLike`
    // rather than `Promise`. `PromiseLike` doesn't have a `.catch` method, making its polyfill smaller. (ES5 didn't
    // have promises, so TS has to polyfill when down-compiling.)
    .then(null, () => remove(task).then(null, () => {// We have to add another catch here because `remove()` starts a new promise chain.
    }));
    return task;
  }
  /**
   * Wait for all promises in the queue to resolve or for timeout to expire, whichever comes first.
   *
   * @param timeout The time, in ms, after which to resolve to `false` if the queue is still non-empty. Passing `0` (or
   * not passing anything) will make the promise wait as long as it takes for the queue to drain before resolving to
   * `true`.
   * @returns A promise which will resolve to `true` if the queue is already empty or drains before the timeout, and
   * `false` otherwise
   */


  function drain(timeout) {
    return new syncpromise["a" /* SyncPromise */]((resolve, reject) => {
      let counter = buffer.length;

      if (!counter) {
        return resolve(true);
      } // wait for `timeout` ms and then resolve to `false` (if not cancelled first)


      const capturedSetTimeout = setTimeout(() => {
        if (timeout && timeout > 0) {
          resolve(false);
        }
      }, timeout); // if all promises resolve in time, cancel the timer and resolve to `true`

      buffer.forEach(item => {
        void Object(syncpromise["c" /* resolvedSyncPromise */])(item).then(() => {
          // eslint-disable-next-line no-plusplus
          if (! --counter) {
            clearTimeout(capturedSetTimeout);
            resolve(true);
          }
        }, reject);
      });
    });
  }

  return {
    $: buffer,
    add,
    drain
  };
}


// EXTERNAL MODULE: ./node_modules/@sentry/utils/esm/envelope.js
var esm_envelope = __webpack_require__("oZ5x");

// CONCATENATED MODULE: ./node_modules/@sentry/utils/esm/ratelimit.js
// Intentionally keeping the key broad, as we don't know for sure what rate limit headers get returned from backend
const DEFAULT_RETRY_AFTER = 60 * 1000; // 60 seconds

/**
 * Extracts Retry-After value from the request header or returns default value
 * @param header string representation of 'Retry-After' header
 * @param now current unix timestamp
 *
 */

function parseRetryAfterHeader(header, now = Date.now()) {
  const headerDelay = parseInt(`${header}`, 10);

  if (!isNaN(headerDelay)) {
    return headerDelay * 1000;
  }

  const headerDate = Date.parse(`${header}`);

  if (!isNaN(headerDate)) {
    return headerDate - now;
  }

  return DEFAULT_RETRY_AFTER;
}
/**
 * Gets the time that given category is disabled until for rate limiting
 */


function disabledUntil(limits, category) {
  return limits[category] || limits.all || 0;
}
/**
 * Checks if a category is rate limited
 */


function isRateLimited(limits, category, now = Date.now()) {
  return disabledUntil(limits, category) > now;
}
/**
 * Update ratelimits from incoming headers.
 * Returns true if headers contains a non-empty rate limiting header.
 */


function updateRateLimits(limits, {
  statusCode,
  headers
}, now = Date.now()) {
  const updatedRateLimits = { ...limits
  }; // "The name is case-insensitive."
  // https://developer.mozilla.org/en-US/docs/Web/API/Headers/get

  const rateLimitHeader = headers && headers['x-sentry-rate-limits'];
  const retryAfterHeader = headers && headers['retry-after'];

  if (rateLimitHeader) {
    /**
     * rate limit headers are of the form
     *     <header>,<header>,..
     * where each <header> is of the form
     *     <retry_after>: <categories>: <scope>: <reason_code>
     * where
     *     <retry_after> is a delay in seconds
     *     <categories> is the event type(s) (error, transaction, etc) being rate limited and is of the form
     *         <category>;<category>;...
     *     <scope> is what's being limited (org, project, or key) - ignored by SDK
     *     <reason_code> is an arbitrary string like "org_quota" - ignored by SDK
     */
    for (const limit of rateLimitHeader.trim().split(',')) {
      const [retryAfter, categories] = limit.split(':', 2);
      const headerDelay = parseInt(retryAfter, 10);
      const delay = (!isNaN(headerDelay) ? headerDelay : 60) * 1000; // 60sec default

      if (!categories) {
        updatedRateLimits.all = now + delay;
      } else {
        for (const category of categories.split(';')) {
          updatedRateLimits[category] = now + delay;
        }
      }
    }
  } else if (retryAfterHeader) {
    updatedRateLimits.all = now + parseRetryAfterHeader(retryAfterHeader, now);
  } else if (statusCode === 429) {
    updatedRateLimits.all = now + 60 * 1000;
  }

  return updatedRateLimits;
}


// EXTERNAL MODULE: ./node_modules/@sentry/utils/esm/logger.js
var logger = __webpack_require__("8LbN");

// CONCATENATED MODULE: ./node_modules/@sentry/core/esm/transports/base.js

const DEFAULT_TRANSPORT_BUFFER_SIZE = 30;
/**
 * Creates an instance of a Sentry `Transport`
 *
 * @param options
 * @param makeRequest
 */

function createTransport(options, makeRequest, buffer = makePromiseBuffer(options.bufferSize || DEFAULT_TRANSPORT_BUFFER_SIZE)) {
  let rateLimits = {};

  const flush = timeout => buffer.drain(timeout);

  function send(envelope) {
    const filteredEnvelopeItems = []; // Drop rate limited items from envelope

    Object(esm_envelope["e" /* forEachEnvelopeItem */])(envelope, (item, type) => {
      const envelopeItemDataCategory = Object(esm_envelope["d" /* envelopeItemTypeToDataCategory */])(type);

      if (isRateLimited(rateLimits, envelopeItemDataCategory)) {
        options.recordDroppedEvent('ratelimit_backoff', envelopeItemDataCategory);
      } else {
        filteredEnvelopeItems.push(item);
      }
    }); // Skip sending if envelope is empty after filtering out rate limited events

    if (filteredEnvelopeItems.length === 0) {
      return Object(syncpromise["c" /* resolvedSyncPromise */])();
    } // eslint-disable-next-line @typescript-eslint/no-explicit-any


    const filteredEnvelope = Object(esm_envelope["c" /* createEnvelope */])(envelope[0], filteredEnvelopeItems); // Creates client report for each item in an envelope

    const recordEnvelopeLoss = reason => {
      Object(esm_envelope["e" /* forEachEnvelopeItem */])(filteredEnvelope, (_, type) => {
        options.recordDroppedEvent(reason, Object(esm_envelope["d" /* envelopeItemTypeToDataCategory */])(type));
      });
    };

    const requestTask = () => makeRequest({
      body: Object(esm_envelope["f" /* serializeEnvelope */])(filteredEnvelope, options.textEncoder)
    }).then(response => {
      // We don't want to throw on NOK responses, but we want to at least log them
      if (response.statusCode !== undefined && (response.statusCode < 200 || response.statusCode >= 300)) {
        (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger["c" /* logger */].warn(`Sentry responded with status code ${response.statusCode} to sent event.`);
      }

      rateLimits = updateRateLimits(rateLimits, response);
    }, error => {
      (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger["c" /* logger */].error('Failed while sending event:', error);
      recordEnvelopeLoss('network_error');
    });

    return buffer.add(requestTask).then(result => result, error => {
      if (error instanceof esm_error["a" /* SentryError */]) {
        (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger["c" /* logger */].error('Skipped sending event because buffer is full.');
        recordEnvelopeLoss('queue_overflow');
        return Object(syncpromise["c" /* resolvedSyncPromise */])();
      } else {
        throw error;
      }
    });
  }

  return {
    send,
    flush
  };
}



/***/ }),

/***/ "F+wu":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var _UxpOptions = _interopRequireDefault(__webpack_require__("zvwv"));

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
} //  so, we are defining this module which forks behavior here so that
//  CoachMark can import the appropriate CoachMarkIndicator instance either Uxp or normal.


module.exports = _UxpOptions.default.select('CoachMarkPopover', () => __webpack_require__("jay5"), () => __webpack_require__("9Thz"));

/***/ }),

/***/ "F3qA":
/***/ (function(module, exports) {

/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
module.exports = {
  'ccd.infoPanel.detail.created': 'Creato',
  'ccd.infoPanel.detail.modified': 'Modificato',
  'ccd.infoPanel.detail.size': 'Dimensione',
  'ccd.infoPanel.detail.shared': 'Modalità condivisa',
  'ccd.header.renameFolder': 'Rinomina cartella',
  'ccd.menu.addToFavourites': 'Aggiungi a Collegamenti',
  'ccd.menu.removeFromFavourites': 'Rimuovi collegamento',
  'ccd.menu.viewonweb': 'Visualizza sul Web',
  'ccd.menu.share': 'Condividi',
  'ccd.menu.openWith': 'Apri in',
  'ccd.menu.changeDefaultApp': 'Cambia applicazione predefinita...',
  'ccd.menu.default': '(Predefinita)',
  'ccd.menu.export': 'Esporta come copia locale',
  'ccd.menu.download': 'Scarica',
  'ccd.menu.createNew': 'Crea nuovo...',
  'ccd.menu.launch': 'AVVIA',
  'actionMenuItem.permdelete': 'Elimina definitivamente',
  'tab.Cloud Documents': 'I tuoi file',
  'tab.Home': 'Home',
  'header.CloudDocuments': 'I tuoi file',
  'header.SharedWithYou': 'Condiviso con te',
  'header.Deleted': 'Eliminato',
  'header.Deleted.AssetsWebLink': 'Per visualizzare tutti gli elementi eliminati, accedi alle risorse Web',
  'header.SelectedDocuments': '{numSelected, plural, =1 {# selezionato} other {# selezionati}}',
  'header.size': 'Dimensione',
  'header.title': 'Nome',
  'header.modifiedDate': 'Data modifica',
  'header.createDate': 'Data creazione',
  'header.shareDate': 'Data condivisione',
  'header.SortBy': 'Ordina per',
  'header.infoPopover.body': 'Vengono visualizzati solo i file compatibili. Per visualizzare tutti i file, visita Creative Cloud sul Web.',
  'header.infoPopover.link': 'Accedi a Creative Cloud',
  'header.dragImport': 'Carica su: {displayName}',
  'collaborators.onlyYou': 'Solo tu',
  'collaborators.Owner': '{displayName} (proprietario)',
  'collaborators.More': '{numItems, plural, other {+# altri}}',
  'empty.offline.root.title': 'Sei disconnesso',
  'empty.offline.root.subtitle': 'Gli elementi visibili durante la connessione online saranno visualizzati qui quando ti ricollegherai.',
  'empty.offline.folder.title': 'Impossibile caricare la cartella',
  'empty.offline.folder.subtitle': 'Connessione a Internet assente. Ricollegati per visualizzare tutto.',
  'empty.online.cdp.saveas.root.title': 'Nessun documento cloud da visualizzare',
  'empty.online.cdp.saveas.root.subtitle': 'Con i documenti cloud il tuo lavoro è sempre aggiornato, in tutti i dispositivi, ovunque ti trovi: ti basta connetterti a Internet e iniziare.',
  'empty.online.cdp.saveas.root.subtitle.sprk': 'Tutti i tuoi documenti cloud di XD saranno disponibili qui. Lavora ovunque ti trovi, anche offline. Le modifiche ai documenti cloud sono salvate automaticamente e visualizzabili nella cronologia del documento.',
  'empty.online.cdp.saveas.root.subtitle.phxs': 'Tutti i tuoi documenti cloud di Photoshop in Mac, Windows e iPad saranno qui.',
  'empty.online.cdp.saveas.root.subtitle.ilst': 'Tutti i tuoi documenti cloud di Illustrator in Mac e Windows saranno qui.',
  'empty.online.cdp.saveas.root.subtitle.idsn': 'Tutti i tuoi documenti cloud di InDesign su Mac e Windows saranno qui.',
  'empty.online.cdp.saveas.folder.title': 'Nessun documento cloud da visualizzare',
  'empty.online.cdp.saveas.folder.subtitle': 'Quando inserisci un documento cloud compatibile in questa cartella, verrà visualizzato qui.',
  'empty.online.cdp.open.root.title': 'Nessun documento cloud da visualizzare',
  'empty.online.cdp.open.root.subtitle': 'Quando inserisci un documento cloud compatibile in questa cartella, verrà visualizzato qui.',
  'empty.online.cdp.open.root.subtitle.sprk': 'Tutti i tuoi documenti cloud di XD saranno disponibili qui. Lavora ovunque ti trovi, anche offline. Le modifiche ai documenti cloud sono salvate automaticamente e visualizzabili nella cronologia del documento.',
  'empty.online.cdp.open.root.subtitle.phxs': 'Tutti i tuoi documenti cloud di Photoshop in Mac, Windows e iPad saranno qui.',
  'empty.online.cdp.open.root.subtitle.ilst': 'Tutti i tuoi documenti cloud di Illustrator in Mac e Windows saranno qui.',
  'empty.online.cdp.open.root.subtitle.idsn': 'Tutti i tuoi documenti cloud di InDesign su Mac e Windows saranno qui.',
  'empty.online.cdp.open.folder.title': 'Nessun documento cloud da visualizzare',
  'empty.online.cdp.open.folder.subtitle': 'Quando inserisci un documento cloud compatibile in questa cartella, verrà visualizzato qui.',
  'empty.online.cdo.root.title': 'Nessun documento cloud disponibile',
  'empty.online.cdo.root.subtitle': 'Collabora senza problemi con altri utenti e lavora ovunque, anche offline. Le modifiche vengono salvate automaticamente e sono visualizzabili nella cronologia del file.',
  'empty.online.cdo.root.subtitle.sprk': 'Collabora senza problemi in tempo reale con altri utenti e lavora ovunque ti trovi, anche offline. Le modifiche vengono salvate automaticamente e sono visualizzabili nella cronologia del file.',
  'empty.online.cdo.root.subtitle.phxs': 'Collabora senza problemi con altri utenti e lavora ovunque hai accesso a Photoshop, anche offline. Le modifiche vengono salvate automaticamente e sono visualizzabili nella cronologia del file.',
  'empty.online.cdo.root.subtitle.ilst': 'Collabora senza problemi con altri utenti e lavora ovunque hai accesso a Illustrator, anche offline. Le modifiche vengono salvate automaticamente e sono visualizzabili nella cronologia del file.',
  'empty.online.cdo.root.subtitle.idsn': 'Accedi ai tuoi documenti da qualsiasi luogo in cui accedi a InDesign. Le modifiche vengono salvate automaticamente.',
  'empty.online.cdo.folder.title': 'Nessun documento cloud da visualizzare',
  'empty.online.cdo.folder.subtitle': 'Quando inserisci un documento cloud compatibile in questa cartella, verrà visualizzato qui.',
  'empty.title.deleted': 'Non sono presenti file eliminati',
  'empty.title.deleted_offline': 'Sei disconnesso',
  'empty.title.recent': 'Nessun file recente disponibile',
  'empty.subtext.deleted_offline': 'Gli elementi eliminati durante la connessione online saranno visualizzati qui quando ti ricollegherai.',
  'empty.title.shared_with_you': 'Nessun documento cloud condiviso disponibile',
  'empty.subtext.shared_with_you': 'I documenti cloud condivisi da altri utenti verranno mostrati qui.',
  'empty.title.shared_with_you_offline': 'Sei disconnesso',
  'empty.subtext.shared_with_you_offline': 'Quando sarai nuovamente connesso, potrai visualizzare e modificare i documenti condivisi.',
  'empty.title.error': 'Si è verificato un problema',
  'empty.subtext.error': 'Riavvia l’app e riprova.',
  'empty.subtext.error.web': 'Aggiorna il browser e riprova.',
  'empty.title.coresync.down': 'Impossibile caricare',
  'empty.subtext.coresync.down': 'Il cloud non sta sincronizzando. Assicurati che il desktop Creative Cloud sia aggiornato o prova a riavviare l\'app.',
  'empty.title.coresync.incompatible': 'Impossibile caricare i documenti cloud',
  'empty.subtext.coresync.incompatible': 'Impossibile visualizzare elementi al momento. Aggiorna la versione dell’applicazione Creative Cloud e riprova.',
  'empty.title.cloudStorageDisabled': 'I documenti cloud non sono disponibili',
  'empty.subtext.cloudStorageDisabled': 'Puoi usare {productName} per lavorare esclusivamente sui file nel tuo dispositivo. Per ulteriori informazioni, contatta l’amministratore IT.',
  'empty.title.logout': 'Accedi per accedere ai documenti cloud.',
  'empty.learnMore.link': 'Altre info',
  'trueEmpty.online.cdo.folder.title': 'La cartella è vuota',
  'trueEmpty.online.cdo.folder.subtitle': 'Aggiungi qui gli elementi per iniziare la compilazione.',
  'trueEmpty.online.cdp.saveas.folder.title': 'Ancora nessun documento cloud',
  'trueEmpty.online.cdp.saveas.folder.subtitle': 'Con i documenti cloud il tuo lavoro è sempre aggiornato, in tutti i dispositivi, ovunque ti trovi: ti basta connetterti a Internet e iniziare.',
  'trueEmpty.online.cdp.open.folder.title': 'Ancora nessun documento cloud',
  'trueEmpty.online.cdp.open.folder.subtitle': 'Con i documenti cloud il tuo lavoro è sempre aggiornato, in tutti i dispositivi, ovunque ti trovi: ti basta connetterti a Internet e iniziare.',
  'filter.prompt': 'Immetti parole chiave',
  'filter.title': 'Filtro',
  'empty.filter.title': 'Nessun risultato per "{filterString}"',
  'empty.filter.subtitle': 'Controlla l\'ortografia, prova una parola chiave più ampia o filtra una posizione diversa.',
  'beta.title': 'Sincronizza i lavori tra i tuoi dispositivi',
  'beta.subtitle': 'Lavora indifferentemente in Photoshop da iPad e desktop con i documenti cloud. Tieni però presente che questa funzione è in beta, quindi il funzionamento potrebbe non essere sempre quello previsto. Attivalo e disattivalo nelle preferenze.',
  'beta.button': 'Attiva in Preferenze',
  'beta.tag': 'BETA',
  'beta.feedback.link': 'Invia feedback sulla Beta',
  'button.add-folder': 'Crea nuova cartella',
  'button.upload': 'Caricamento...',
  'button.createnew': 'Crea nuovo',
  'button.reportAbuse': 'Segnala abuso',
  'button.open': 'Apri',
  'button.select': 'Seleziona',
  'button.rename': 'Rinomina',
  'button.pin.header': 'Rendi disponibile offline sempre',
  'button.pin': 'Rendi disponibile offline sempre',
  'button.unpin.header': 'Rendi disponibile solo online',
  'button.unpin': 'Rendi disponibile solo online',
  'button.duplicate': 'Duplica',
  'button.download': 'Scarica',
  'button.move': 'Sposta',
  'button.delete': 'Elimina',
  'button.restore': 'Ripristina',
  'button.permdelete': 'Elimina definitivamente',
  'button.listview': 'Visualizza elenco',
  'button.gridview': 'Visualizza griglia',
  'button.sharesheetinvite': 'Invita alla modifica',
  'button.sharesheetLink': 'Ottieni collegamento',
  'button.shareSheetAction': 'Condividi',
  'button.preview': 'Anteprima',
  'button.schedule': 'Pianifica',
  'action.duplicate.suffix': '(Duplica)',
  'action.resolve_sync_error.suffix': 'copia',
  'statusIcon.conflicted': 'Conflitto sincronizzazione',
  'statusIcon.onlineOnly': 'Solo online',
  'statusIcon.availableOffline': 'Disponibile offline',
  'statusIcon.syncing': 'Sincronizzazione...',
  'statusIcon.waitingToSync': 'In attesa di sincronizzare',
  'tooltip.error': 'Apri il documento per verificare il conflitto di salvataggio',
  'toast.error.documentIsOpen': 'Per eseguire questa azione chiudi {count, plural, =1 {il documento} other {i documenti}}.',
  'toast.error.exceedsQuota.personal': 'Il tuo account ha esaurito lo spazio di archiviazione',
  'toast.error.exceedsQuota.enterprise': 'Spazio di archiviazione esaurito. Contatta l’amministratore per maggiori informazioni',
  'toast.operation.duplicate.error': 'Impossibile duplicare {count, plural, =1 {un elemento} other {{count} elementi}}.',
  'toast.operation.duplicate.success': '{count, plural, =1 {Elemento duplicato} other {{count} elementi duplicati}}.',
  'toast.operation.archive.error': 'Impossibile eliminare {count, plural, =1 {un elemento} other {{count} elementi}}.',
  'toast.operation.archive.error.otherAppUncommittedChanges': 'Non puoi eliminare i file aperti in altre app. Chiudili e poi riprova.',
  'toast.operation.archive.undo.error': 'Impossibile eliminare {count, plural, =1 {un elemento} other {{count} elementi}}.',
  'toast.operation.archive.success': '{count, plural, =1 {Elemento eliminato} other {{count} elementi eliminati}}.',
  'toast.operation.archive.undo.success': 'Comando Ripristina annullato.',
  'toast.operation.permdelete.error': 'Impossibile eliminare definitivamente {count, plural, =1 {un elemento} other {{count} elementi}}.',
  'toast.operation.permdelete.success': '{count, plural, =1 {Elemento eliminato definitivamente} other {{count} elementi eliminati definitivamente}}.',
  'toast.operation.rename.error': 'Impossibile rinominare elemento.',
  'toast.operation.rename.undo.error': 'Impossibile rinominare elemento.',
  'toast.operation.rename.error.duplicateName': 'Un elemento con questo nome è già presente qui.',
  'toast.operation.rename.undo.error.duplicateName': 'Un elemento con questo nome è già presente qui.',
  'toast.operation.rename.success': 'Elemento rinominato.',
  'toast.operation.rename.undo.success': 'Comando Rinomina annullato.',
  'toast.operation.move.error': 'Impossibile spostare {count, plural, =1 {un elemento} other {{count} elementi}}.',
  'toast.operation.move.undo.error': 'Impossibile spostare {count, plural, =1 {un elemento} other {{count} elementi}}.',
  'toast.operation.move.error.duplicateFolderName': 'Una cartella con questo nome è già presente qui.',
  'toast.operation.move.undo.error.duplicateFolderName': 'Una cartella con questo nome è già presente qui.',
  'toast.operation.move.error.duplicateDocName': '{count, plural, =1 {Nella cartella è già presente un documento con questo nome. Rinominalo e riprova.} other {I documenti non possono essere spostati dato che sono presenti documenti con lo stesso nome.}}',
  'toast.operation.move.undo.error.duplicateDocName': '{count, plural, =1 {Nella cartella è già presente un documento con questo nome. Rinominalo e riprova.} other {I documenti non possono essere spostati dato che sono presenti documenti con lo stesso nome.}}',
  'toast.operation.move.success': '{count, plural, =1 {Elemento spostato} other {{count} elementi spostati}}.',
  'toast.operation.move.undo.success': 'Comando Sposta annullato.',
  'toast.operation.unarchive.error': 'Impossibile ripristinare {count, plural, =1 {un elemento} other {{count} elementi}}.',
  'toast.operation.unarchive.undo.error': 'Impossibile ripristinare {count, plural, =1 {un elemento} other {{count} elementi}}.',
  'toast.operation.unarchive.success': '{count, plural, =1 {Elemento ripristinato} other {{count} elementi ripristinati}}.',
  'toast.operation.unarchive.undo.success': 'Comando Elimina annullato.',
  'toast.operation.create_new_folder.success': 'Cartella creata.',
  'toast.operation.create_new_folder.error': 'Impossibile creare la nuova cartella.',
  'toast.operation.create_new_folder.error.duplicateName': 'Una cartella con questo nome è già presente qui.',
  'toast.operation.user_pin.success': '{count, plural, =1 {Elemento} other {{count} Elementi}} disponibile/i offline.',
  'toast.operation.user_pin.error': 'Impossibile rendere disponibili {count, plural, =1 {elemento} other {{count} elementi}} offline.',
  'toast.operation.user_unpin.success': '{count, plural, =1 {Elemento disponibile} other {{count} elementi disponibili}} solo online.',
  'toast.operation.user_unpin.error': 'Impossibile rendere {count, plural, =1 {elemento} other {{count} elementi disponibili}} solo online.',
  'toast.operation.resolve_sync_error.success': 'Copia di "{name}" creata. Puoi confrontare entrambi i documenti e risolvere eventuali differenze.',
  'toast.ccd.scroll_to_item.fetching': 'Recupero file...',
  'toast.ccd.scroll_to_item.error': 'File non trovato',
  'toast.info.disabled_rename_to_open_item': 'Per poter rinominare i documenti XD precedenti qui, devi prima aprirli.',
  'toast.action.disabled_rename_to_open_item': 'Apri documento',
  'toast.error.rename.invalidName': 'Il nome contiene caratteri non validi.',
  'toast.error.rename.invalidChar': 'Il nome non può contenere i caratteri seguenti: {characters}',
  'toast.error.rename.invalidEnd': 'Il nome non può terminare con “.” o uno spazio vuoto.',
  'toast.error.rename.charRestriction': 'I nomi non possono contenere più di 200 caratteri.',
  'toast.error.rename.duplicateName': 'Un documento cloud con questo nome è già presente qui.',
  'toast.success.reportAbuse': 'Segnalazione abuso riuscita',
  'toast.error.reportAbuse': 'Errore durante la segnalazione dell’abuso',
  'toast.operation.undoLabel': 'Annulla',
  'dialog.permdelete.heading': 'Elimina definitivamente',
  'dialog.permdelete.warning': 'Questa azione non può essere annullata. Questo è quanto verrà eliminato definitivamente:',
  'dialog.permdelete.cancelButton': 'Annulla',
  'dialog.permdelete.confirmButton': 'Elimina definitivamente',
  'dialog.permdelete.countItems': '{count, plural, =1 {# elemento} other {# elementi}}',
  'dialog.nonemptyfolder.heading': 'Eliminare {count, plural, =1 {questa cartella} other {queste cartelle}}?',
  'dialog.nonemptyfolder.warning': '{count, plural, =1 {Questa cartella non è vuota} other {Queste cartelle non sono vuote}} e potrebbero essere inclusi file non visibili in {appName}. Puoi continuare con l\'eliminazione o visualizzare {count, plural, =1 {cartella} other {cartelle}} sul Web per controllare {count, plural, =1 {il suo contenuto} other {i suoi contenuti}}.  {viewOnWebLink}',
  'dialog.nonemptyfolder.cancelButton': 'Annulla',
  'dialog.nonemptyfolder.confirmButton': 'Elimina',
  'dialog.nonemptyfolder.viewOnWebButton': 'Visualizza sul Web',
  'dialog.addfolder.heading': 'Crea nuova cartella',
  'dialog.addfolder.cancelButton': 'Annulla',
  'dialog.addfolder.confirmButton': 'Salva',
  'dialog.addfolder.placeholder': 'Nuova cartella',
  'dialog.addfolder.invalidChar': 'I nomi non possono contenere i caratteri seguenti: {characters}',
  'dialog.addfolder.invalidName': 'Il nome della cartella contiene caratteri non validi.',
  'dialog.addfolder.invalidEnd': 'Il nome non può terminare con “.” o uno spazio vuoto.',
  'dialog.addfolder.duplicateName': 'Una cartella con questo nome è già presente qui.',
  'dialog.addfolder.charRestriction': 'I nomi non possono contenere più di 200 caratteri.',
  'dialog.moveFolder.heading': 'Sposta in...',
  'dialog.moveFolder.cancelButton': 'Annulla',
  'dialog.moveFolder.moveButton': 'Sposta',
  'dialog.moveFolder.createNewFolderButton': 'Aggiungi cartella',
  'dialog.reportAbuse.cancelButton': 'Annulla',
  'dialog.reportAbuse.reportAbuseButton': 'Segnala abuso',
  'dialog.reportAbuse.heading': 'Segnala abuso',
  'dialog.reportAbuse.emailInput': 'Il tuo indirizzo e-mail',
  'dialog.reportAbuse.nameInput': 'Il tuo nome',
  'dialog.reportAbuse.radioButtonText': 'Perché segnali questo contenuto?',
  'dialog.reportAbuse.defamation': 'Diffamazione',
  'dialog.reportAbuse.hate': 'Contenuto razzista o xenofobo',
  'dialog.reportAbuse.trademark': 'Violazione di un marchio',
  'dialog.reportAbuse.pornography': 'Contenuto sessualmente esplicito',
  'dialog.reportAbuse.vulgar': 'Contenuto offensivo',
  'dialog.reportAbuse.other': 'Altro',
  'dialog.reportAbuse.inappropriate': 'Inappropriato',
  'dialog.reportAbuse.age': 'Imprecisione età',
  'dialog.reportAbuse.gender': 'Imprecisione sesso',
  'dialog.reportAbuse.description': 'Se ritieni che questo contenuto Creative Cloud sia in violazione delle Condizioni d’uso di Adobe, puoi segnalarlo compilando questo breve modulo.',
  'dialog.reportAbuse.describeConcern': 'Descrivi il problema',
  'dialog.reportAbuse.success': 'Segnalazione abuso riuscita',
  'dialog.reportAbuse.failure': 'Errore durante la segnalazione dell’abuso',
  'dialog.reportAbuse.textAreaTitle': 'Inserisci una descrizione del problema',
  'dialog.reportAbuse.required': 'Obbligatorio',
  'dialog.cachefull.title': 'Impossibile rendere disponibile offline',
  'dialog.cachefull.message': 'Lo spazio nel dispositivo è esaurito. Per liberare spazio, crea solo documenti online.',
  'dialog.cachefull.confirm': 'OK',
  'dialog.syncError.heading': 'Questo documento ha interrotto la sincronizzazione con il cloud',
  'dialog.syncError.body1': 'Ti consigliamo di salvare una copia della versione più recente e ripristinare l\'ultima versione del documento salvata nel cloud.',
  'dialog.syncError.body2': 'Puoi aprire questo documento e apportare modifiche, che però non verranno salvate nel cloud.',
  'dialog.syncError.offline': 'Devi essere online per salvare una copia e ripristinare l\'originale.',
  'dialog.syncError.learnMore': 'Altre info',
  'dialog.syncError.resolveButton': 'Salva una copia e ripristina',
  'dialog.syncError.openButton': 'Apri',
  'dialog.syncErrorCopyFail.heading': 'Impossibile salvare una copia',
  'dialog.syncErrorCopyFail.body1': 'Puoi ancora aprire questo documento e apportare modifiche, che però non verranno salvate nel cloud.',
  'dialog.syncErrorCopyFail.body2': 'Per ulteriore assistenza, contatta l\'Assistenza clienti Adobe. (Errore: LocalContentSyncSuspended)',
  'dialog.syncErrorCopyFail.closeButton': 'Chiudi',
  'dialog.syncErrorCopyFail.contactUs': 'Contattaci',
  'dialog.syncErrorPurgeFail.heading': 'Impossibile ripristinare la versione più recente salvata nel cloud',
  'dialog.syncErrorPurgeFail.body1': 'È stata creata una copia del documento, ma non è stato possibile ripristinare l\'ultima versione del documento salvata nel cloud.',
  'dialog.syncErrorPurgeFail.body2': 'Per ulteriore assistenza, contatta l\'Assistenza clienti Adobe. (Errore: LocalContentSyncSuspended)',
  'dialog.syncErrorPurgeFail.closeButton': 'Chiudi',
  'dialog.syncErrorPurgeFail.contactUs': 'Contattaci',
  'onboardingCdo.banner.title.sprk': 'Un modo migliore di lavorare',
  'onboardingCdo.banner.title.phxs': 'Usi Photoshop da iPad? Prova i documenti cloud',
  'onboardingCdo.banner.title.ilst': 'Ora puoi usare i documenti cloud in Illustrator',
  'onboardingCdo.banner.title.idsn': 'Ora puoi usare i documenti cloud in InDesign',
  'onboardingCdo.banner.message.sprk': 'Modifica i documenti cloud ovunque ti trovi, anche offline. Le modifiche sono salvate automaticamente e visualizzabili nella cronologia del documento. Condividili con altri utenti per collaborare con facilità in tempo reale.',
  'onboardingCdo.banner.message.phxs': 'I documenti cloud sono salvati automaticamente nel cloud di Adobe mentre lavori, così potrai accedere ai tuoi file da desktop o iPad.',
  'onboardingCdo.banner.message.ilst': 'I documenti cloud in Illustrator sono salvati automaticamente nel cloud di Adobe mentre lavori. Puoi anche visualizzare la cronologia delle versioni per osservare l’evoluzione del tuo lavoro.',
  'onboardingCdo.banner.message.idsn': 'I documenti cloud in InDesign vengono salvati automaticamente nel cloud di Adobe mentre lavori.',
  'onboardingCdo.banner.linkTitle': 'Altre info',
  'onboardingCdo.banner.confirm': 'OK',
  'operation.progress.archive': 'Eliminazione di {batchSize, plural, =1 {1 elemento} other {{inProgressNum} di {batchSize} elementi}} in corso...',
  'operation.progress.unarchive': 'Ripristino di {batchSize, plural, =1 {1 elemento} other {{inProgressNum} di {batchSize} elementi}} in corso...',
  'operation.progress.move': 'Spostamento di {batchSize, plural, =1 {1 elemento} other {{inProgressNum} di {batchSize} elementi}} in corso...',
  'operation.progress.permdelete': 'Eliminazione permanente di {batchSize, plural, =1 {1 elemento} other {{inProgressNum} di {batchSize} elementi}} in corso...',
  'operation.progress.rename': 'Ridenominazione di {batchSize, plural, =1 {1 elemento} other {{inProgressNum} di {batchSize} elementi}} in corso...',
  'operation.progress.create_new_folder': 'Creazione nuova cartella...',
  'operation.progress.duplicate': 'Duplicazione di {batchSize, plural, =1 {1 elemento} other {{inProgressNum} di {batchSize} elementi}}...',
  'operation.progress.user_pin': 'Rendi disponibili {batchSize, plural, =1 {1 elemento} other {{inProgressNum} di {batchSize} elementi}} offline',
  'operation.progress.user_unpin': 'Rendi disponibili {batchSize, plural, =1 {1 elemento} other {{inProgressNum} di {batchSize} elementi}} solo online...',
  'operation.progress.resolve_sync_error': 'Copia e ripristino dell\'ultima versione salvata nel cloud...',
  'tooltip.offline.general': 'È necessaria una connessione a Internet.',
  'tooltip.offline.create-new-folder': 'Per creare cartelle, è necessaria una connessione a Internet.',
  'tooltip.offline.move': 'Per spostare elementi, è necessaria una connessione a Internet.',
  'tooltip.syncing.disabled': 'In attesa completamento sincronizzazione',
  'tooltip.rename.disabled': 'Un documento selezionato non può essere rinominato. Per rinominarlo, aprilo nell’applicazione in cui è stato creato.',
  'tooltip.rename.disabled.sprk': 'Il file non può essere rinominato finché non lo apri in XD.',
  'tooltip.syncSuspended.needsAction': 'La sincronizzazione è stata interrotta. Apri per risolvere il problema.',
  'tooltip.syncSuspended.noAction': 'La sincronizzazione è stata interrotta. Al momento, questa azione non è consentita.',
  'Recents.title': 'Recenti',
  'Recents.cloudDocTitle': 'DOCUMENT CLOUD',
  'Recents.error.subtext.coreSync': 'Creative Cloud Sync non funziona correttamente per cui i Recenti non sono disponibili al momento.',
  'item.saveForOfflineIconToolTip': 'Questo documento è stato scaricato ed è completamente disponibile offline.',
  'item.disconnected.cloudonly': 'Sei disconnesso. Per aprire il documento, riconnettiti.',
  'item.coresyncdown.cloudonly': 'Impossibile caricare il file. L\'aggiornamento o il riavvio di Creative Cloud potrebbe risolvere il problema.',
  'folder.subtitle': 'CARTELLA',
  'review.subtitle': 'REVISIONE',
  'prototype.subtitle': 'PROTOTIPO',
  'designspecs.subtitle': 'SPECIFICHE DI PROGETTAZIONE',
  'project.subtitle': 'PROGETTO',
  'library.subtitle': 'LIBRERIA',
  'webLink.subtitle': 'COLLEGAMENTO WEB',
  'abbreviations.fileSize.byte': 'B',
  'abbreviations.fileSize.kilobyte': 'KB',
  'abbreviations.fileSize.megabyte': 'MB',
  'abbreviations.fileSize.gigabyte': 'GB',
  'abbreviations.fileSize.terabyte': 'TB',
  'sam.copyNameFormat': '%@ copia',
  'cloudsync.quota.title': 'ARCHIVIAZIONE CLOUD',
  'cloudsync.quota.percentage': '{percentageUsed}%',
  'cloudsync.quota.usage': '{usedCloudQuotaString} di {maxCloudQuotaString} usati',
  'cloudsync.quota.warning': 'Lo spazio di archiviazione cloud è esaurito. Per continuare a sincronizzare i lavori, effettua l’aggiornamento.',
  'cloudsync.quota.error': 'Informazioni sull’archiviazione non disponibili...',
  'cloudsync.quota.upgrade': 'Aggiorna',
  'cloudsync.status.complete.title': 'Sincronizzati e backup effettuato',
  'cloudsync.status.syncing.title': 'Sincronizzazione documenti cloud',
  'cloudsync.status.syncing.descr': '{progress}/{total}',
  'cloudsync.status.offline.title': 'Utilizzo offline',
  'cloudsync.status.offline.descr': 'Salvataggio in locale. I documenti saranno sincronizzati nel cloud quando ti riconnetterai.',
  'cloudsync.status.disabled.title': 'Sincronizzazione disattivata',
  'cloudsync.status.disabled.descr': 'Salvataggio in locale. I documenti saranno sincronizzati nel cloud quando lo spazio di archiviazione sarà disponibile.',
  'cloudsync.item.progress.determinate': '{progress}/{total}',
  'cloudsync.item.progress.indeterminate': 'Sincronizzazione...',
  'cloudsync.item.complete': 'Completo',
  'cloudsync.items.header': 'Attività di rete',
  'cloudsync.alert.title.coresync.down': 'Impossibile caricare',
  'cloudsync.alert.subtext.coresync.down': 'Il cloud non sta sincronizzando. Assicurati che il desktop Creative Cloud sia aggiornato o prova a riavviare l\'app.',
  'cloudsync.alert.subtext.coresync.down.learnmore': 'Altre info',
  'cloudsync.tooltip.offline': 'Disconnesso',
  'cloudsync.tooltip.error': 'Errore',
  'cloudsync.tooltip.syncing': 'Salvataggio...',
  'cloudsync.tooltip.default': 'Salvato',
  'cloudsync.singleDoc.offline.title': 'Disconnesso',
  'cloudsync.singleDoc.offline.descr': 'Tentativo di riconnessione...',
  'cloudsync.singleDoc.offline.timestamp': 'Ultima sincronizzazione {time}',
  'cloudsync.singleDoc.error.samInitFail.title': 'Il cloud ha interrotto la sincronizzazione',
  'cloudsync.singleDoc.error.samInitFail.descr': 'Riavvia questa app per continuare a sincronizzare i lavori.',
  'cloudsync.singleDoc.error.syncSuspended.title': 'Il cloud ha interrotto la sincronizzazione',
  'cloudsync.singleDoc.error.syncSuspended.descr': 'Riavvia questa app per continuare a sincronizzare i lavori.',
  'cloudsync.singleDoc.error.title': 'Impossibile caricare',
  'cloudsync.singleDoc.error.descr': 'Il cloud non sta sincronizzando. Assicurati che il desktop Creative Cloud sia aggiornato o prova a riavviare l\'app.',
  'cloudsync.singleDoc.error.learnMore': 'Ulteriori informazioni',
  'cloudsync.singleDoc.disabled.quotaExceeded.title': 'Lo spazio di archiviazione cloud è pieno',
  'cloudsync.singleDoc.disabled.quotaExceeded.descr': 'Effettua l\'aggiornamento di Creative Cloud per continuare a sincronizzare i lavori.',
  'cloudsync.singleDoc.syncing.title': 'Salvataggio...',
  'cloudsync.singleDoc.syncing.descr': 'In corso',
  'cloudsync.singleDoc.disabled.title': 'Impossibile salvare',
  'cloudsync.singleDoc.disabled.descr': 'Il tuo account ha esaurito lo spazio di archiviazione.',
  'cloudsync.singleDoc.complete.title': 'File salvato',
  'cloudsync.singleDoc.complete.timestamp': 'Ultima sincronizzazione {time}'
};

/***/ }),

/***/ "F4KY":
/***/ (function(module, exports) {

/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
module.exports = {
  'ccd.infoPanel.detail.created': 'Criado em',
  'ccd.infoPanel.detail.modified': 'Modificado em',
  'ccd.infoPanel.detail.size': 'Tamanho',
  'ccd.infoPanel.detail.shared': 'Compartilhado',
  'ccd.header.renameFolder': 'Renomear pasta',
  'ccd.menu.addToFavourites': 'Adicionar aos atalhos',
  'ccd.menu.removeFromFavourites': 'Remover atalho',
  'ccd.menu.viewonweb': 'Exibir na Web',
  'ccd.menu.share': 'Compartilhar',
  'ccd.menu.openWith': 'Abrir em',
  'ccd.menu.changeDefaultApp': 'Alterar aplicativo padrão...',
  'ccd.menu.default': '(Padrão)',
  'ccd.menu.export': 'Exportar como cópia local',
  'ccd.menu.download': 'Baixar',
  'ccd.menu.createNew': 'Criar…',
  'ccd.menu.launch': 'INICIAR',
  'actionMenuItem.permdelete': 'Excluir permanentemente',
  'tab.Cloud Documents': 'Seus arquivos',
  'tab.Home': 'Início',
  'header.CloudDocuments': 'Seus arquivos',
  'header.SharedWithYou': 'Compartilhado com você',
  'header.Deleted': 'Excluído',
  'header.Deleted.AssetsWebLink': 'Para exibir todos os itens excluídos, acesse Ativos na Web',
  'header.SelectedDocuments': '{numSelected, plural, =1 {#} other {#}} selecionado(s)',
  'header.size': 'Tamanho',
  'header.title': 'Nome',
  'header.modifiedDate': 'Data de modificação',
  'header.createDate': 'Data de criação',
  'header.shareDate': 'Data de compartilhamento',
  'header.SortBy': 'Classificar por',
  'header.infoPopover.body': 'Apenas arquivos compatíveis são mostrados. Para exibir todos os arquivos, visite a Creative Cloud na web.',
  'header.infoPopover.link': 'Acesse a Creative Cloud',
  'header.dragImport': 'Fazer upload para: {displayName}',
  'collaborators.onlyYou': 'Só você',
  'collaborators.Owner': '{displayName} (proprietário)',
  'collaborators.More': '{numItems, plural, other {+# mais}}',
  'empty.offline.root.title': 'Você está desconectado',
  'empty.offline.root.subtitle': 'Os itens visíveis enquanto você estava online aparecerão aqui quando você se reconectar.',
  'empty.offline.folder.title': 'Não foi possível carregar a pasta',
  'empty.offline.folder.subtitle': 'Não há conexão com a Internet. Reconecte-se para exibir tudo.',
  'empty.online.cdp.saveas.root.title': 'Não há documentos na nuvem para serem exibidos',
  'empty.online.cdp.saveas.root.subtitle': 'Com os documentos na nuvem, seu trabalho está sempre atualizado em todos os dispositivos e em qualquer lugar. Basta se conectar à Internet para trabalhar.',
  'empty.online.cdp.saveas.root.subtitle.sprk': 'Todos os seus documentos na nuvem do XD estarão aqui. Trabalhe em qualquer lugar, mesmo offline. As alterações nos documentos na nuvem são salvas automaticamente e visíveis no histórico de documentos.',
  'empty.online.cdp.saveas.root.subtitle.phxs': 'Todos os seus documentos na nuvem do Photoshop no Mac, no Windows e no iPad estarão bem aqui.',
  'empty.online.cdp.saveas.root.subtitle.ilst': 'Todos os seus documentos na nuvem do Illustrator no Mac e no Windows estarão aqui.',
  'empty.online.cdp.saveas.root.subtitle.idsn': 'Todos os seus documentos na nuvem do InDesign no Mac e no Windows estarão aqui.',
  'empty.online.cdp.saveas.folder.title': 'Não há documentos na nuvem para serem exibidos',
  'empty.online.cdp.saveas.folder.subtitle': 'Quando você coloca um documento na nuvem compatível nesta pasta, ele aparece aqui.',
  'empty.online.cdp.open.root.title': 'Não há documentos na nuvem para serem exibidos',
  'empty.online.cdp.open.root.subtitle': 'Quando você coloca um documento na nuvem compatível nesta pasta, ele aparece aqui.',
  'empty.online.cdp.open.root.subtitle.sprk': 'Todos os seus documentos na nuvem do XD estarão aqui. Trabalhe em qualquer lugar, mesmo offline. As alterações nos documentos na nuvem são salvas automaticamente e visíveis no histórico de documentos.',
  'empty.online.cdp.open.root.subtitle.phxs': 'Todos os seus documentos na nuvem do Photoshop no Mac, no Windows e no iPad estarão bem aqui.',
  'empty.online.cdp.open.root.subtitle.ilst': 'Todos os seus documentos na nuvem do Illustrator no Mac e no Windows estarão aqui.',
  'empty.online.cdp.open.root.subtitle.idsn': 'Todos os seus documentos na nuvem do InDesign no Mac e no Windows estarão aqui.',
  'empty.online.cdp.open.folder.title': 'Não há documentos na nuvem para serem exibidos',
  'empty.online.cdp.open.folder.subtitle': 'Quando você coloca um documento na nuvem compatível nesta pasta, ele aparece aqui.',
  'empty.online.cdo.root.title': 'Você não tem documentos na nuvem',
  'empty.online.cdo.root.subtitle': 'Colabore facilmente com outras pessoas e trabalhe em qualquer lugar, mesmo offline. As alterações são salvas automaticamente e podem ser exibidas no histórico do arquivo.',
  'empty.online.cdo.root.subtitle.sprk': 'Colabore facilmente com outras pessoas em tempo real e trabalhe em qualquer lugar, mesmo offline. As alterações são salvas automaticamente e podem ser exibidas no histórico do arquivo.',
  'empty.online.cdo.root.subtitle.phxs': 'Colabore facilmente com outras pessoas e trabalhe em qualquer lugar em que estiver conectado ao Photoshop, mesmo offline. As alterações são salvas automaticamente e podem ser exibidas no histórico do arquivo.',
  'empty.online.cdo.root.subtitle.ilst': 'Colabore facilmente com outras pessoas e trabalhe em qualquer lugar em que estiver conectado ao Illustrator, mesmo offline. As alterações são salvas automaticamente e podem ser exibidas no histórico do arquivo.',
  'empty.online.cdo.root.subtitle.idsn': 'Acesse seus documentos de qualquer lugar em que você faça logon no InDesign. As alterações são salvas automaticamente.',
  'empty.online.cdo.folder.title': 'Não há documentos na nuvem para serem exibidos',
  'empty.online.cdo.folder.subtitle': 'Quando você coloca um documento na nuvem compatível nesta pasta, ele aparece aqui.',
  'empty.title.deleted': 'Não há arquivos excluídos',
  'empty.title.deleted_offline': 'Você está desconectado',
  'empty.title.recent': 'Não há arquivos recentes',
  'empty.subtext.deleted_offline': 'Os itens excluídos enquanto você estava online aparecerão aqui quando você se reconectar.',
  'empty.title.shared_with_you': 'Você não tem documentos na nuvem compartilhados',
  'empty.subtext.shared_with_you': 'Quando alguém compartilha documentos na nuvem com você, eles aparecem aqui.',
  'empty.title.shared_with_you_offline': 'Você está desconectado',
  'empty.subtext.shared_with_you_offline': 'Você poderá exibir e editar documentos compartilhados assim que sua conexão voltar.',
  'empty.title.error': 'Ocorreu algum erro',
  'empty.subtext.error': 'Reinicie o aplicativo e tente novamente.',
  'empty.subtext.error.web': 'Atualize seu navegador e tente novamente.',
  'empty.title.coresync.down': 'Não foi possível carregar',
  'empty.subtext.coresync.down': 'A nuvem não está sincronizando. Verifique se a Creative Cloud desktop está atualizada ou tente reiniciar o aplicativo.',
  'empty.title.coresync.incompatible': 'Não é possível carregar documentos na nuvem',
  'empty.subtext.coresync.incompatible': 'Não é possível mostrar itens no momento. Atualize sua versão do aplicativo da Creative Cloud e tente novamente.',
  'empty.title.cloudStorageDisabled': 'Os documentos na nuvem não estão disponíveis',
  'empty.subtext.cloudStorageDisabled': 'Você pode usar o {productName} para trabalhar em arquivos somente no seu dispositivo. Fale com o administrador de TI para saber mais.',
  'empty.title.logout': 'Faça logon para acessar os documentos na nuvem.',
  'empty.learnMore.link': 'Saiba mais',
  'trueEmpty.online.cdo.folder.title': 'Não há nada nesta pasta',
  'trueEmpty.online.cdo.folder.subtitle': 'Adicione aqui os itens para preenchê-la.',
  'trueEmpty.online.cdp.saveas.folder.title': 'Nenhum documento na nuvem ainda',
  'trueEmpty.online.cdp.saveas.folder.subtitle': 'Com os documentos na nuvem, seu trabalho está sempre atualizado em todos os dispositivos e em qualquer lugar. Basta conectar-se à Internet para trabalhar.',
  'trueEmpty.online.cdp.open.folder.title': 'Nenhum documento na nuvem ainda',
  'trueEmpty.online.cdp.open.folder.subtitle': 'Com os documentos na nuvem, seu trabalho está sempre atualizado em todos os dispositivos e em qualquer lugar. Basta conectar-se à Internet para trabalhar.',
  'filter.prompt': 'Inserir palavra-chave',
  'filter.title': 'Filtro',
  'empty.filter.title': 'Nenhum resultado para “{filterString}”',
  'empty.filter.subtitle': 'Verifique a ortografia, tente uma palavra-chave mais ampla ou filtre um local diferente.',
  'beta.title': 'Sincronizar seu trabalho em todos os dispositivos',
  'beta.subtitle': 'Trabalhe no Photoshop no iPad e no desktop com os documentos na nuvem. Esse recurso está em versão beta, portanto pode não funcionar como o esperado. Ative-o e desative-o nas preferências.',
  'beta.button': 'Ativar nas Preferências',
  'beta.tag': 'BETA',
  'beta.feedback.link': 'Dê sua opinião sobre a versão beta',
  'button.add-folder': 'Criar nova pasta',
  'button.upload': 'Fazer upload...',
  'button.createnew': 'Criar novo',
  'button.reportAbuse': 'Denunciar abuso',
  'button.open': 'Abrir',
  'button.select': 'Selecionar',
  'button.rename': 'Renomear',
  'button.pin.header': 'Disponibilizar offline sempre',
  'button.pin': 'Disponibilizar offline sempre',
  'button.unpin.header': 'Disponibilizar somente online',
  'button.unpin': 'Disponibilizar somente online',
  'button.duplicate': 'Duplicar',
  'button.download': 'Baixar',
  'button.move': 'Mover',
  'button.delete': 'Excluir',
  'button.restore': 'Restaurar',
  'button.permdelete': 'Excluir permanentemente',
  'button.listview': 'Exibir lista',
  'button.gridview': 'Exibir grade',
  'button.sharesheetinvite': 'Convidar para editar',
  'button.sharesheetLink': 'Obter link',
  'button.shareSheetAction': 'Compartilhar',
  'button.preview': 'Visualizar',
  'button.schedule': 'Agendar',
  'action.duplicate.suffix': '(Duplicar)',
  'action.resolve_sync_error.suffix': '- cópia',
  'statusIcon.conflicted': 'Conflito de sincronização',
  'statusIcon.onlineOnly': 'Somente online',
  'statusIcon.availableOffline': 'Disponível offline',
  'statusIcon.syncing': 'Sincronizando…',
  'statusIcon.waitingToSync': 'Aguardando sincronização',
  'tooltip.error': 'Abra o documento para resolver o conflito ao salvar',
  'toast.error.documentIsOpen': 'Feche {count, plural, =1 {o documento} other {os documentos}} para executar esta ação.',
  'toast.error.exceedsQuota.personal': 'Sua conta está sem armazenamento',
  'toast.error.exceedsQuota.enterprise': 'Armazenamento insuficiente. Entre em contato com seu administrador para obter mais informações.',
  'toast.operation.duplicate.error': 'Não foi possível duplicar {count, plural, =1 {1 item} other {{count} itens}}.',
  'toast.operation.duplicate.success': '{count, plural, =1 {Item duplicado} other {{count} itens duplicados}}.',
  'toast.operation.archive.error': 'Não foi possível excluir {count, plural, =1 {item} other {{count} items}}.',
  'toast.operation.archive.error.otherAppUncommittedChanges': 'Não é possível excluir arquivos abertos em outros aplicativos. Feche-os e tente novamente.',
  'toast.operation.archive.undo.error': 'Não foi possível excluir {count, plural, =1 {item} other {{count} itens}}.',
  'toast.operation.archive.success': '{count, plural, =1 {Item excluído} other {{count} itens excluídos}}.',
  'toast.operation.archive.undo.success': 'Restaurar desfeito.',
  'toast.operation.permdelete.error': 'Não foi possível excluir permanentemente {count, plural, =1 {item} other {{count} items}}.',
  'toast.operation.permdelete.success': '{count, plural, =1 {Item excluído} other {{count} items excluídos}} permanentemente.',
  'toast.operation.rename.error': 'Não foi possível renomear o item.',
  'toast.operation.rename.undo.error': 'Não foi possível renomear o item.',
  'toast.operation.rename.error.duplicateName': 'Você já tem um item com esse nome.',
  'toast.operation.rename.undo.error.duplicateName': 'Você já tem um item com esse nome.',
  'toast.operation.rename.success': 'Item renomeado.',
  'toast.operation.rename.undo.success': 'Renomear desfeito.',
  'toast.operation.move.error': 'Não foi possível mover {count, plural, =1 {item} other {{count} items}}.',
  'toast.operation.move.undo.error': 'Não foi possível mover {count, plural, =1 {item} other {{count} itens}}.',
  'toast.operation.move.error.duplicateFolderName': 'Você já tem uma pasta com esse nome.',
  'toast.operation.move.undo.error.duplicateFolderName': 'Você já tem uma pasta com esse nome.',
  'toast.operation.move.error.duplicateDocName': '{count, plural, =1 {A pasta já contém um documento com este nome. Renomeie-o e tente novamente.} other {Os documentos não podem ser movidos porque há documentos com o mesmo nome.}}',
  'toast.operation.move.undo.error.duplicateDocName': '{count, plural, =1 {A pasta já contém um documento com este nome. Renomeie-o e tente novamente.} other {Os documentos não podem ser movidos porque há documentos com o mesmo nome.}}',
  'toast.operation.move.success': '{count, plural, =1 {Item movido} other {{count} itens movidos}}.',
  'toast.operation.move.undo.success': 'Mover desfeito.',
  'toast.operation.unarchive.error': 'Não foi possível restaurar {count, plural, =1 {item} other {{count} items}}.',
  'toast.operation.unarchive.undo.error': 'Não foi possível restaurar {count, plural, =1 {item} other {{count} itens}}.',
  'toast.operation.unarchive.success': '{count, plural, =1 {Item restaurado} other {{count} itens restaurados}}.',
  'toast.operation.unarchive.undo.success': 'Excluir desfeito.',
  'toast.operation.create_new_folder.success': 'Pasta criada.',
  'toast.operation.create_new_folder.error': 'Não foi possível criar uma pasta.',
  'toast.operation.create_new_folder.error.duplicateName': 'Você já tem uma pasta com esse nome.',
  'toast.operation.user_pin.success': '{count, plural, =1 {Item disponível} other {{count} itens disponíveis}} offline.',
  'toast.operation.user_pin.error': 'Não foi possível disponibilizar {count, plural, =1 {item} other {{count} itens}} offline.',
  'toast.operation.user_unpin.success': '{count, plural, =1 {Item disponível} other {{count} itens disponíveis}} somente online.',
  'toast.operation.user_unpin.error': 'Não foi possível disponibilizar {count, plural, =1 {item} other {{count} itens}} somente online.',
  'toast.operation.resolve_sync_error.success': 'Cópia de “{name}” criada. Você pode comparar os dois documentos e verificar as diferenças.',
  'toast.ccd.scroll_to_item.fetching': 'Buscando arquivo…',
  'toast.ccd.scroll_to_item.error': 'Arquivo não encontrado',
  'toast.info.disabled_rename_to_open_item': 'Os documentos existentes do XD devem primeiro ser abertos antes de serem renomeados aqui.',
  'toast.action.disabled_rename_to_open_item': 'Abrir documento',
  'toast.error.rename.invalidName': 'O nome contém caracteres inválidos.',
  'toast.error.rename.invalidChar': 'O nome não pode conter os seguintes caracteres: {characters}',
  'toast.error.rename.invalidEnd': 'O nome não pode terminar com "." ou espaço vazio.',
  'toast.error.rename.charRestriction': 'Os nomes não podem exceder 200 caracteres.',
  'toast.error.rename.duplicateName': 'Você já tem um documento na nuvem com esse nome.',
  'toast.success.reportAbuse': 'Abuso denunciado com êxito',
  'toast.error.reportAbuse': 'Falha ao denunciar abuso',
  'toast.operation.undoLabel': 'Desfazer',
  'dialog.permdelete.heading': 'Excluir permanentemente',
  'dialog.permdelete.warning': 'Não é possível desfazer esta ação. Veja o que será excluído permanentemente:',
  'dialog.permdelete.cancelButton': 'Cancelar',
  'dialog.permdelete.confirmButton': 'Excluir permanentemente',
  'dialog.permdelete.countItems': '{count, plural, =1 {# item} other {# itens}}',
  'dialog.nonemptyfolder.heading': 'Tem certeza de que deseja excluir {count, plural, =1 {esta pasta} other {estas pastas}}?',
  'dialog.nonemptyfolder.warning': '{count, plural, =1 {Esta pasta não está vazia e pode conter} other {Estas pastas não estão vazias e podem conter}} arquivos que não são visíveis em {appName}. É possível continuar excluindo ou ver {count, plural, =1 {pasta} other {pastas}} na Web para conferir {count, plural, =1 {seu} other {seu}} conteúdo. {viewOnWebLink}',
  'dialog.nonemptyfolder.cancelButton': 'Cancelar',
  'dialog.nonemptyfolder.confirmButton': 'Excluir',
  'dialog.nonemptyfolder.viewOnWebButton': 'Exibir na Web',
  'dialog.addfolder.heading': 'Criar nova pasta',
  'dialog.addfolder.cancelButton': 'Cancelar',
  'dialog.addfolder.confirmButton': 'Salvar',
  'dialog.addfolder.placeholder': 'Nova pasta',
  'dialog.addfolder.invalidChar': 'Os nomes não podem conter os seguintes caracteres: {characters}',
  'dialog.addfolder.invalidName': 'A pasta contém caracteres inválidos.',
  'dialog.addfolder.invalidEnd': 'O nome não pode terminar com "." ou espaço vazio.',
  'dialog.addfolder.duplicateName': 'Você já tem uma pasta com esse nome.',
  'dialog.addfolder.charRestriction': 'Os nomes não podem exceder 200 caracteres.',
  'dialog.moveFolder.heading': 'Mover para...',
  'dialog.moveFolder.cancelButton': 'Cancelar',
  'dialog.moveFolder.moveButton': 'Mover',
  'dialog.moveFolder.createNewFolderButton': 'Adicionar pasta',
  'dialog.reportAbuse.cancelButton': 'Cancelar',
  'dialog.reportAbuse.reportAbuseButton': 'Denunciar abuso',
  'dialog.reportAbuse.heading': 'Denunciar abuso',
  'dialog.reportAbuse.emailInput': 'Seu email',
  'dialog.reportAbuse.nameInput': 'Seu nome',
  'dialog.reportAbuse.radioButtonText': 'Por que você está denunciando este conteúdo?',
  'dialog.reportAbuse.defamation': 'Difamação',
  'dialog.reportAbuse.hate': 'Conteúdo racista ou de ódio',
  'dialog.reportAbuse.trademark': 'Violação de marca comercial',
  'dialog.reportAbuse.pornography': 'Conteúdo sexualmente explícito',
  'dialog.reportAbuse.vulgar': 'Conteúdo ofensivo',
  'dialog.reportAbuse.other': 'Outros',
  'dialog.reportAbuse.inappropriate': 'Inadequado',
  'dialog.reportAbuse.age': 'Idade incorreta',
  'dialog.reportAbuse.gender': 'Gênero incorreto',
  'dialog.reportAbuse.description': 'Se acredita que este conteúdo da Creative Cloud viola os Termos de uso da Adobe, você pode denunciá-lo preenchendo este rápido formulário.',
  'dialog.reportAbuse.describeConcern': 'Descreva a sua preocupação',
  'dialog.reportAbuse.success': 'Abuso denunciado com êxito',
  'dialog.reportAbuse.failure': 'Falha ao denunciar abuso',
  'dialog.reportAbuse.textAreaTitle': 'Descreva a sua preocupação',
  'dialog.reportAbuse.required': 'Obrigatório',
  'dialog.cachefull.title': 'Não é possível disponibilizar offline',
  'dialog.cachefull.message': 'Você está sem espaço no dispositivo. Disponibilize os documentos somente online para liberar espaço.',
  'dialog.cachefull.confirm': 'OK',
  'dialog.syncError.heading': 'Este documento parou de ser sincronizado com a nuvem',
  'dialog.syncError.body1': 'Recomendamos salvar a versão mais recente como uma cópia e restaurar o documento para a última versão salva na nuvem.',
  'dialog.syncError.body2': 'Você pode abrir este documento e fazer edições, mas suas alterações não serão salvas na nuvem.',
  'dialog.syncError.offline': 'Você deve estar online para salvar uma cópia e restaurar o original.',
  'dialog.syncError.learnMore': 'Saber mais',
  'dialog.syncError.resolveButton': 'Salvar uma cópia e restaurar',
  'dialog.syncError.openButton': 'Abrir',
  'dialog.syncErrorCopyFail.heading': 'Não foi possível salvar uma cópia',
  'dialog.syncErrorCopyFail.body1': 'Você ainda pode abrir este documento e fazer edições, mas suas alterações não serão salvas na nuvem.',
  'dialog.syncErrorCopyFail.body2': 'Entre em contato com o Atendimento ao cliente da Adobe para obter mais assistência. (Error: LocalContentSyncSuspended)',
  'dialog.syncErrorCopyFail.closeButton': 'Fechar',
  'dialog.syncErrorCopyFail.contactUs': 'Fale conosco',
  'dialog.syncErrorPurgeFail.heading': 'Não foi possível restaurar para a última versão salva na nuvem',
  'dialog.syncErrorPurgeFail.body1': 'Uma cópia do seu documento foi criada, mas não foi possível restaurá-lo para a última versão salva na nuvem.',
  'dialog.syncErrorPurgeFail.body2': 'Entre em contato com o Atendimento ao cliente da Adobe para obter mais assistência. (Error: LocalContentSyncSuspended)',
  'dialog.syncErrorPurgeFail.closeButton': 'Fechar',
  'dialog.syncErrorPurgeFail.contactUs': 'Fale conosco',
  'onboardingCdo.banner.title.sprk': 'Uma nova maneira de trabalhar',
  'onboardingCdo.banner.title.phxs': 'Usando o Photoshop no iPad? Experimente os documentos na nuvem',
  'onboardingCdo.banner.title.ilst': 'Agora você pode usar os documentos na nuvem no Illustrator',
  'onboardingCdo.banner.title.idsn': 'Agora você pode usar os documentos na nuvem no InDesign',
  'onboardingCdo.banner.message.sprk': 'Edite seus documentos na nuvem e trabalhe em qualquer lugar, mesmo offline. As alterações são salvas automaticamente e você pode compartilhar seus documentos para colaborar em tempo real.',
  'onboardingCdo.banner.message.phxs': 'Os documentos na nuvem são salvos automaticamente na nuvem da Adobe enquanto você trabalha, para que você possa acessar seus arquivos no desktop ou no iPad.',
  'onboardingCdo.banner.message.ilst': 'Os documentos na nuvem no Illustrator são salvos automaticamente na nuvem da Adobe enquanto você trabalha. Também é possível exibir o histórico de versões para ver a evolução do trabalho.',
  'onboardingCdo.banner.message.idsn': 'Documentos na nuvem no InDesign são salvos automaticamente na nuvem da Adobe enquanto você trabalha.',
  'onboardingCdo.banner.linkTitle': 'Saiba mais',
  'onboardingCdo.banner.confirm': 'OK',
  'operation.progress.archive': 'Excluindo {batchSize, plural, =1 {1 item} other {{inProgressNum} de {batchSize} itens}}...',
  'operation.progress.unarchive': 'Restaurando {batchSize, plural, =1 {1 item} other {{inProgressNum} de {batchSize} itens}}...',
  'operation.progress.move': 'Movendo {batchSize, plural, =1 {1 item} other {{inProgressNum} de {batchSize} itens}}...',
  'operation.progress.permdelete': 'Excluindo permanentemente {batchSize, plural, =1 {1 item} other {{inProgressNum} de {batchSize} itens}}...',
  'operation.progress.rename': 'Renomeando {batchSize, plural, =1 {1 item} other {{inProgressNum} de {batchSize} itens}}...',
  'operation.progress.create_new_folder': 'Criando pasta...',
  'operation.progress.duplicate': 'Duplicando {batchSize, plural, =1 {1 item} other {{inProgressNum} de {batchSize} itens}}...',
  'operation.progress.user_pin': 'Tornando {batchSize, plural, =1 {item} other {{inProgressNum} de {batchSize} itens}} disponível offline...',
  'operation.progress.user_unpin': 'Disponibilizando {batchSize, plural, =1 {item} other {{inProgressNum} de {batchSize} itens}} somente online...',
  'operation.progress.resolve_sync_error': 'Copiando e restaurando para a última versão salva na nuvem...',
  'tooltip.offline.general': 'É necessária conexão com a Internet.',
  'tooltip.offline.create-new-folder': 'É necessária conexão com a Internet para criar pastas.',
  'tooltip.offline.move': 'É necessária conexão com a Internet para mover os itens.',
  'tooltip.syncing.disabled': 'Sincronização pendente',
  'tooltip.rename.disabled': 'Não foi possível renomear um documento selecionado. Abra-o no aplicativo principal para permitir que ele seja renomeado.',
  'tooltip.rename.disabled.sprk': 'Este arquivo não pode ser renomeado até que seja aberto no XD.',
  'tooltip.syncSuspended.needsAction': 'A sincronização foi interrompida. Abra para executar uma ação.',
  'tooltip.syncSuspended.noAction': 'A sincronização foi interrompida. Esta ação não é permitida no momento.',
  'Recents.title': 'Recente',
  'Recents.cloudDocTitle': 'DOCUMENTO NA NUVEM',
  'Recents.error.subtext.coreSync': 'A guia Recente não está disponível no momento porque a sincronização da Creative Cloud não está funcionando corretamente.',
  'item.saveForOfflineIconToolTip': 'Este documento foi baixado e está totalmente disponível offline.',
  'item.disconnected.cloudonly': 'Você está desconectado. Reconecte-se para abrir o documento.',
  'item.coresyncdown.cloudonly': 'Não é possível carregar o arquivo. Atualizar ou reiniciar a Creative Cloud pode resolver esse problema.',
  'folder.subtitle': 'PASTA',
  'review.subtitle': 'REVISÃO',
  'prototype.subtitle': 'PROTÓTIPO',
  'designspecs.subtitle': 'ESPECIFICAÇÕES DE DESIGN',
  'project.subtitle': 'PROJETO',
  'library.subtitle': 'BIBLIOTECA',
  'webLink.subtitle': 'LINK DA WEB',
  'abbreviations.fileSize.byte': 'B',
  'abbreviations.fileSize.kilobyte': 'KB',
  'abbreviations.fileSize.megabyte': 'MB',
  'abbreviations.fileSize.gigabyte': 'GB',
  'abbreviations.fileSize.terabyte': 'TB',
  'sam.copyNameFormat': '%@ cópia',
  'cloudsync.quota.title': 'ARMAZENAMENTO NA NUVEM',
  'cloudsync.quota.percentage': '{percentageUsed}%',
  'cloudsync.quota.usage': '{usedCloudQuotaString} de {maxCloudQuotaString} usados',
  'cloudsync.quota.warning': 'Seu armazenamento na nuvem está cheio. Atualize para continuar sincronizando seu trabalho.',
  'cloudsync.quota.error': 'Nenhuma informação de armazenamento disponível...',
  'cloudsync.quota.upgrade': 'Atualizar',
  'cloudsync.status.complete.title': 'Sincronização e backup concluídos',
  'cloudsync.status.syncing.title': 'Sincronizando documentos na nuvem',
  'cloudsync.status.syncing.descr': '{progress}/{total}',
  'cloudsync.status.offline.title': 'Trabalhando em modo offline',
  'cloudsync.status.offline.descr': 'Estamos salvando localmente. Os documentos serão sincronizados com a nuvem quando você estiver conectado novamente.',
  'cloudsync.status.disabled.title': 'Sincronização desativada',
  'cloudsync.status.disabled.descr': 'Estamos salvando localmente. Os documentos serão sincronizados com a nuvem quando houver espaço disponível.',
  'cloudsync.item.progress.determinate': '{progress}/{total}',
  'cloudsync.item.progress.indeterminate': 'Sincronizando…',
  'cloudsync.item.complete': 'Concluído',
  'cloudsync.items.header': 'Atividade de rede',
  'cloudsync.alert.title.coresync.down': 'Não foi possível carregar',
  'cloudsync.alert.subtext.coresync.down': 'A nuvem não está sincronizando. Verifique se a Creative Cloud desktop está atualizada ou tente reiniciar o aplicativo.',
  'cloudsync.alert.subtext.coresync.down.learnmore': 'Saiba mais',
  'cloudsync.tooltip.offline': 'Desconectado',
  'cloudsync.tooltip.error': 'Erro',
  'cloudsync.tooltip.syncing': 'Salvando...',
  'cloudsync.tooltip.default': 'Salvo',
  'cloudsync.singleDoc.offline.title': 'Desconectado',
  'cloudsync.singleDoc.offline.descr': 'Tentando reconectar...',
  'cloudsync.singleDoc.offline.timestamp': 'Última sincronização {time}',
  'cloudsync.singleDoc.error.samInitFail.title': 'A nuvem não está mais sincronizando',
  'cloudsync.singleDoc.error.samInitFail.descr': 'Reinicie este aplicativo para continuar sincronizando seu trabalho.',
  'cloudsync.singleDoc.error.syncSuspended.title': 'A nuvem não está mais sincronizando',
  'cloudsync.singleDoc.error.syncSuspended.descr': 'Reinicie este aplicativo para continuar sincronizando seu trabalho.',
  'cloudsync.singleDoc.error.title': 'Não foi possível carregar',
  'cloudsync.singleDoc.error.descr': 'A nuvem não está sincronizando. Verifique se a Creative Cloud para desktop está atualizada ou tente reiniciá-la.',
  'cloudsync.singleDoc.error.learnMore': 'Saiba mais',
  'cloudsync.singleDoc.disabled.quotaExceeded.title': 'Seu armazenamento na nuvem está cheio',
  'cloudsync.singleDoc.disabled.quotaExceeded.descr': 'Atualize a Creative Cloud para continuar sincronizando seu trabalho.',
  'cloudsync.singleDoc.syncing.title': 'Salvando...',
  'cloudsync.singleDoc.syncing.descr': 'Em andamento',
  'cloudsync.singleDoc.disabled.title': 'Não é possível salvar',
  'cloudsync.singleDoc.disabled.descr': 'Sua conta está sem armazenamento.',
  'cloudsync.singleDoc.complete.title': 'Arquivo salvo',
  'cloudsync.singleDoc.complete.timestamp': 'Última sincronização {time}'
};

/***/ }),

/***/ "F5Mc":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var isFunction = __webpack_require__("YyF0");

var classRe = /^\s*class[\s{/}]/,
    functionToString = Function.prototype.toString;

module.exports = function (value) {
  if (!isFunction(value)) return false;
  if (classRe.test(functionToString.call(value))) return false;
  return true;
};

/***/ }),

/***/ "F8Hq":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("path", {
  d: "M14 11.207V16H.5a.5.5 0 0 0-.5.5v3a.5.5 0 0 0 .5.5H14v4.793a.5.5 0 0 0 .854.354L22 18l-7.146-7.146a.5.5 0 0 0-.854.353z"
}), React.createElement("path", {
  d: "M33 4H9a1 1 0 0 0-1 1v7h2V6h22v24H10v-6H8v7a1 1 0 0 0 1 1h24a1 1 0 0 0 1-1V5a1 1 0 0 0-1-1z"
}));

/***/ }),

/***/ "FE3C":
/***/ (function(module) {

module.exports = JSON.parse("{\"(optional)\":\"(選填)\",\"(required)\":\"(必填)\"}");

/***/ }),

/***/ "FGHR":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return getActiveTransaction; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return hasTracingEnabled; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return msToSec; });
/* unused harmony export secToMs */
/* harmony import */ var _sentry_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("GIgW");


/**
 * Determines if tracing is currently enabled.
 *
 * Tracing is enabled when at least one of `tracesSampleRate` and `tracesSampler` is defined in the SDK config.
 */

function hasTracingEnabled(maybeOptions) {
  const client = Object(_sentry_core__WEBPACK_IMPORTED_MODULE_0__[/* getCurrentHub */ "b"])().getClient();
  const options = maybeOptions || client && client.getOptions();
  return !!options && ('tracesSampleRate' in options || 'tracesSampler' in options);
}
/** Grabs active transaction off scope, if any */


function getActiveTransaction(maybeHub) {
  const hub = maybeHub || Object(_sentry_core__WEBPACK_IMPORTED_MODULE_0__[/* getCurrentHub */ "b"])();
  const scope = hub.getScope();
  return scope && scope.getTransaction();
}
/**
 * Converts from milliseconds to seconds
 * @param time time in ms
 */


function msToSec(time) {
  return time / 1000;
}
/**
 * Converts from seconds to milliseconds
 * @param time time in seconds
 */


function secToMs(time) {
  return time * 1000;
}



/***/ }),

/***/ "FGa3":
/***/ (function(module, exports, __webpack_require__) {

module.exports = __webpack_require__.p + "assets/projects/CreateWorkspaceAC.png";

/***/ }),

/***/ "FIHJ":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXTERNAL MODULE: ./node_modules/mobx/lib/mobx.module.js
var mobx_module = __webpack_require__("2vnA");

// EXTERNAL MODULE: ./node_modules/@ccx-public/invitation-sdk/dist/index.js
var dist = __webpack_require__("kPpj");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/stores/constants.ts
var constants = __webpack_require__("C0qj");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/sleep.ts
var sleep = __webpack_require__("4CRX");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/stores/AssetModel/ACPFetchAssetModel.ts
var ACPFetchAssetModel = __webpack_require__("lnG/");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/stores/AssetModel/SWYAssetModel.ts

class SWYAssetModel_SWYAssetModel extends ACPFetchAssetModel["a" /* default */] {
    constructor(config, cloudDocumentsClient, onAnalyticsEvent) {
        super(config, cloudDocumentsClient, onAnalyticsEvent);
        this.isShared = true;
        this.preferCloudThumbnails = true;
    }
}
/* harmony default export */ var AssetModel_SWYAssetModel = (SWYAssetModel_SWYAssetModel);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/stores/Collection/AssetCollection.ts
var AssetCollection = __webpack_require__("Q5CW");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/stores/SWYCollection.ts
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;
};
var __metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var _a, _b, _c;
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2020 Adobe Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Incorporated.
 **************************************************************************/






/**
 * Map of UXSortBy to Resources orderBy field
 */
const UX_SORT_TO_RESOURCES_SORT = {
    [constants["t" /* UXSortBy */].shareDate]: 'sharedate',
    [constants["t" /* UXSortBy */].title]: 'sharedate',
};
const RELTYPE = {
    CLOUD_URI: 'http://ns.adobe.com/ccapi/id',
    RENDITION: 'rendition',
};
// TODO: SWY service doesn't provide file extensions. Remove this guesswork after SWY switches
// to using USS. In general, CDO should not be maintaining a mapping of mimetype/extension for
// Adobe files. That should come from a shared repo for all of Adobe, otherwise new Adobe
// products/features will have to search far and wide to track down every one of these maps
// to add the new product/feature mimetype.
const MIMETYPES = {
    AERO: 'application/vnd.adobe.real+dcx',
    ILLUSTRATOR_CLOUD_DOCUMENT: 'document/vnd.adobe.illustrator+dcx',
    FR_CLOUD_DOCUMENT: 'application/vnd.adobe.gemini+dcx',
    PS_CLOUD_DOCUMENT: 'document/vnd.adobe.psdc+dcx',
    PS_CLOUD_DOCUMENT_DEP: 'document/vnd.adobe.cpsd+dcx',
    XD_CLOUD_DOCUMENT: 'application/vnd.adobe.xd.cloudproject+dcx',
    MIGRATED_GEMINI: 'document/vnd.adobe.gemini+dcx',
};
const MimetypeToExtension = {
    [MIMETYPES.ILLUSTRATOR_CLOUD_DOCUMENT]: 'AIC',
    [MIMETYPES.MIGRATED_GEMINI]: 'GEM',
    [MIMETYPES.PS_CLOUD_DOCUMENT_DEP]: 'PSDC',
    [MIMETYPES.XD_CLOUD_DOCUMENT]: 'XDC',
    [MIMETYPES.AERO]: 'REAL',
};
class SWYCollection_SWYCollection extends AssetCollection["c" /* default */] {
    constructor(config, context) {
        super(config, context);
        this.documentFilter = [];
        this.performFetch = async ({ sortBy, sortDir, nextPageUrl = '' }) => {
            const token = await this.fetchAuthToken();
            const resourcesClient = new dist["ResourcesService"]({
                apiKey: this.apiKey,
                environment: this.environment,
                token,
            });
            const RETRY_INTERVAL = 1000;
            const MAX_RETRIES = 30;
            let errorResult = false;
            let retryCount = 0;
            let results;
            do {
                if (!nextPageUrl) {
                    results = await this.fetchFromResourcesClient(resourcesClient, sortDir, sortBy);
                }
                else {
                    results = await this.fetchNextPageFromResourcesClient(resourcesClient, nextPageUrl);
                }
                errorResult = results instanceof Error;
                if (errorResult) {
                    this.logger.debug('got error from resourceClient', results.message);
                    if (this.isOnline()) {
                        await Object(sleep["a" /* default */])(RETRY_INTERVAL);
                    }
                    else {
                        break; // and return the error
                    }
                }
            } while (errorResult && ++retryCount < MAX_RETRIES);
            if (errorResult) {
                throw results;
            }
            return results;
        };
        Object(mobx_module["C" /* runInAction */])(() => {
            // Object.assign() doesn't work for observables
            this.documentFilter = config.documentFilter;
        });
        // Since this doesn't use ACPL, there is no listing for cached files
        this.excludeLocal = true;
    }
    static create(config, context) {
        return new SWYCollection_SWYCollection(config, context);
    }
    // eslint-disable-next-line class-methods-use-this
    updateLastFetchMetadataFromResults(results, localOnly) { }
    fetchFromResourcesClient(resourcesClient, sortDir, sortBy) {
        return resourcesClient.get({
            limit: 30,
            orderBy: `${sortDir === constants["w" /* UXSortDir */].asc ? '+' : '-'}${UX_SORT_TO_RESOURCES_SORT[sortBy]}`,
            types: this.documentFilter,
        });
    }
    // eslint-disable-next-line class-methods-use-this
    fetchNextPageFromResourcesClient(resourcesClient, nextPageUrl) {
        return resourcesClient.getNextPage(nextPageUrl);
    }
    // eslint-disable-next-line class-methods-use-this
    extractElements(result) {
        if (result && result._embedded && result._embedded.resources) {
            // TODO: get real type definition
            return result._embedded.resources.map((res) => new AssetModel_SWYAssetModel({
                id: res.resourceUrn,
                accessDate: new Date(res.modifiedDate),
                cloudUri: (res._links[RELTYPE.CLOUD_URI] || { href: '' }).href,
                createDate: new Date(res.modifiedDate),
                modifiedDate: new Date(res.modifiedDate),
                renditionTemplate: (res._links[RELTYPE.RENDITION] || { href: '' }).href,
                repoModifiedDate: new Date(res.modifiedDate),
                shareDate: new Date(res.shareDate),
                title: res.resourceName,
                type: res.resourceType,
                // TODO: Temporary, until SWYCollection a) uses SAM and b) SAM uses USS to get SWY data
                //      https://jira.corp.adobe.com/browse/CCXCD-8256
                fileExtension: MimetypeToExtension[res.resourceType] || '',
            }, this.context.cloudDocumentsClient, this.onAnalyticsEvent));
        }
        return [];
    }
    // eslint-disable-next-line class-methods-use-this
    getNextPageCriteria(result) {
        if (result && result._links && result._links.next) {
            return { nextPageUrl: result._links.next.href };
        }
    }
    afterFetchElements() {
        // Retry fetching thumbnails that failed previously. Otherwise, if there was an error, the
        // previous thumbnail is shown, and it is not refreshed until the modified date changes or
        // the app is restarted.
        if (this.isOnline() && this.fetchState === constants["n" /* ProcessingState */].Done) {
            this.elements.forEach((element) => {
                if (element.lastRenditionFetchFailed) {
                    element.getRendition();
                }
            });
        }
    }
    get canHaveMultipleMimetypes() {
        // no mimetypes means all types
        return this.documentFilter.length !== 1;
    }
}
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", Array)
], SWYCollection_SWYCollection.prototype, "documentFilter", void 0);
__decorate([
    mobx_module["j" /* action */],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [typeof (_a = typeof AssetCollection["IResults"] !== "undefined" && AssetCollection["IResults"]) === "function" ? _a : Object]),
    __metadata("design:returntype", Array)
], SWYCollection_SWYCollection.prototype, "extractElements", null);
__decorate([
    mobx_module["j" /* action */],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [typeof (_b = typeof AssetCollection["IResults"] !== "undefined" && AssetCollection["IResults"]) === "function" ? _b : Object]),
    __metadata("design:returntype", Object)
], SWYCollection_SWYCollection.prototype, "getNextPageCriteria", null);
__decorate([
    mobx_module["j" /* action */],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", []),
    __metadata("design:returntype", void 0)
], SWYCollection_SWYCollection.prototype, "afterFetchElements", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], SWYCollection_SWYCollection.prototype, "canHaveMultipleMimetypes", null);
/* harmony default export */ var stores_SWYCollection = __webpack_exports__["a"] = (SWYCollection_SWYCollection);


/***/ }),

/***/ "FKvE":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = function () {
  var assign = Object.assign,
      obj;
  if (typeof assign !== "function") return false;
  obj = {
    foo: "raz"
  };
  assign(obj, {
    bar: "dwa"
  }, {
    trzy: "trzy"
  });
  return obj.foo + obj.bar + obj.trzy === "razdwatrzy";
};

/***/ }),

/***/ "FU87":
/***/ (function(module, exports) {

/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2019 Adobe Inc.
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/


/***/ }),

/***/ "FUXG":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


exports.utils = __webpack_require__("Xudb");
exports.Cipher = __webpack_require__("AYSA");
exports.DES = __webpack_require__("Titl");
exports.CBC = __webpack_require__("DaRl");
exports.EDE = __webpack_require__("H+yo");

/***/ }),

/***/ "FWm0":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = UxpDialogButtons;

var _Button = _interopRequireDefault(__webpack_require__("Cn9g"));

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

__webpack_require__("R358");

__webpack_require__("eWyx");

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

const BUTTON_VARIANTS = {
  confirmation: 'cta',
  information: 'primary',
  error: 'primary',
  destructive: 'warning'
};

function UxpDialogButtons({
  autoFocusButton,
  confirmLabel,
  secondaryLabel,
  cancelLabel,
  confirmDisabled,
  onConfirm,
  onCancel,
  className,
  variant
}) {
  const confirmVariant = BUTTON_VARIANTS[variant] || 'primary';

  let onKeyDown = event => {
    if (event.key === ' ' || event.key === 'Enter') {
      event.stopPropagation();
      event.target.click();
    }
  };

  return /*#__PURE__*/_react.default.createElement("div", {
    className: (0, _classnames.default)('react-spectrum-Dialog-buttons', className)
  }, cancelLabel && /*#__PURE__*/_react.default.createElement(_Button.default, {
    className: "dialog-buttons-Override",
    variant: "secondary",
    label: cancelLabel,
    onClick: onCancel,
    autoFocus: autoFocusButton === 'cancel',
    onKeyDown: onKeyDown,
    overrideOnKeyDown: true,
    uxpUseNative: false
  }), secondaryLabel && /*#__PURE__*/_react.default.createElement(_Button.default, {
    className: "dialog-buttons-Override",
    variant: "secondary",
    label: secondaryLabel,
    onClick: onConfirm ? onConfirm.bind(null, 'secondary') : null,
    autoFocus: autoFocusButton === 'secondary',
    disabled: confirmDisabled || null,
    onKeyDown: onKeyDown,
    overrideOnKeyDown: true,
    uxpUseNative: false
  }), confirmLabel && /*#__PURE__*/_react.default.createElement(_Button.default, {
    className: "dialog-buttons-Override",
    variant: confirmVariant,
    label: confirmLabel,
    onClick: onConfirm ? onConfirm.bind(null, 'primary') : null,
    autoFocus: autoFocusButton === 'confirm',
    disabled: confirmDisabled || null,
    onKeyDown: onKeyDown,
    uxpUseNative: false
  }));
}

/***/ }),

/***/ "FYw3":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


exports.__esModule = true;

var _typeof2 = __webpack_require__("EJiy");

var _typeof3 = _interopRequireDefault(_typeof2);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

exports.default = function (self, call) {
  if (!self) {
    throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
  }

  return call && ((typeof call === "undefined" ? "undefined" : (0, _typeof3.default)(call)) === "object" || typeof call === "function") ? call : self;
};

/***/ }),

/***/ "Fad1":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var _UxpOptions = _interopRequireDefault(__webpack_require__("zvwv"));

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
} //  so, we are defining this module which forks behavior here so that
//  ToastContainer can import the appropriate Toast instance either Uxp or normal.


module.exports = _UxpOptions.default.select('Toast', () => __webpack_require__("Mfc/"), () => __webpack_require__("35Lt"));

/***/ }),

/***/ "Faxu":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return LibraryServiceRequest; });
/* harmony import */ var _ServiceRequest__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("Cc7P");
/* harmony import */ var _stores_Settings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("5u1M");


/**
 * Generalized CCX Libraries Request Utility Class
 *
 * @export
 * @class LibraryServiceRequest
 * @extends {ServiceRequest}
 */
class LibraryServiceRequest extends _ServiceRequest__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"] {
    /**
     * Library Service Domain
     *
     * @static
     * @memberof LibraryServiceRequest
     */
    constructor(apiPath) {
        super();
        this.headers({
            'X-Api-Key': _stores_Settings__WEBPACK_IMPORTED_MODULE_1__[/* settings */ "b"].config.CLIENT_ID,
            'X-Client-Name': 'assets-web',
            // 'X-Client-Version': CLIENT_VERSION,
            'X-Service-Level': _stores_Settings__WEBPACK_IMPORTED_MODULE_1__[/* settings */ "b"].imsData.serviceLevel,
            // Hack suggested by libs service, required for cache invalidation until the issue below is resolved
            // https://jira.corp.adobe.com/browse/CCXB-8843
            'X-Organization-Id': 'someID',
        });
        this.setCDN(apiPath);
    }
    setCDN(apiPath) {
        // Library requests going to CDN explicitly need this x-cdn-origin header and can't have Auth token
        // https://wiki.corp.adobe.com/pages/viewpage.action?spaceKey=CreativeCloudAssets&title=Melville%3A+Public+Library+support#Melville:PublicLibrarysupport-CDNAPIs
        const cdnBound = apiPath && apiPath.includes('linkId');
        if (cdnBound) {
            this.options.headers = { ...this.options.headers, 'X-Cdn-Origin': 'melville' };
        }
        this.url(apiPath);
    }
    url(apiPath = '/') {
        const serviceUri = _stores_Settings__WEBPACK_IMPORTED_MODULE_1__[/* settings */ "b"].config.LIBRARIES_SERVICE_ENDPOINT;
        let resolvedPath = apiPath;
        if (resolvedPath.startsWith(serviceUri)) {
            this._url = resolvedPath;
            return this;
        }
        if (!apiPath.startsWith('/')) {
            resolvedPath = `/${apiPath}`;
        }
        this._url = `${serviceUri}${resolvedPath}`;
        return this;
    }
    async fetch() {
        return super.fetch();
    }
    pagedFetch() {
        return this.fetch()
            .then(LibraryServiceRequest.verifyStatus)
            .then(LibraryServiceRequest.parseJSONResponse)
            .then((response) => {
            response.next = this.next(response.parsedBody);
            return response;
        });
    }
    next(responseData) {
        if (responseData.libraries && responseData.libraries.length === responseData.total_count) {
            return undefined;
        }
        if (responseData._links && responseData._links.next) {
            const url = responseData._links.next.href.replace(/\+/g, encodeURIComponent('+'));
            this.url(url);
            return this.pagedFetch.bind(this);
        }
        return undefined;
    }
}


/***/ }),

/***/ "FbeB":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}


/* harmony default export */ __webpack_exports__["a"] = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("svg", _extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "24",
  height: "24",
  viewBox: "0 0 24 24"
}, props), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  d: "M17.473 4H3.527a.5.5 0 0 0-.393.808L9 12.294v7.657a.496.496 0 0 0 .84.412l1.99-2.076a.61.61 0 0 0 .17-.423v-5.57l5.867-7.486A.5.5 0 0 0 17.473 4z",
  fill: "currentColor"
})));

/***/ }),

/***/ "FdDf":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(global) {/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
const platform = global && global.process && global.process.platform;
/**
 * Simple utility container.
 */
class Utils {
    /**
     * Function to return the correct file path separator based on OS.
     *
     * @returns {String} value of the query param
     */
    static getPlatformPathSeparator() {
        return platform === 'win32' ? '\\' : '/';
    }
    /**
     * Function to return the value of a requested query param.
     *
     * @param {String} name      containing the name of the query param
     * @returns {String} value of the query param
     */
    static getParameterByName(name) {
        if (!window.location) {
            return null;
        }
        const url = window.location.href;
        const curName = name.replace(/[\[\]]/g, '\\$&'); // eslint-disable-line no-useless-escape
        const regex = new RegExp(`[?&]${curName}(=([^&#]*)|&|#|$)`);
        const results = regex.exec(url);
        if (!results) {
            return null;
        }
        // eslint-disable-next-line @typescript-eslint/no-magic-numbers
        return results[2] ? decodeURIComponent(results[2].replace(/\+/g, ' ')) : '';
    }
    /**
     * Replace specified occurances of a pattern in a templated string.
     *
     * @param {String} template 	templated format string
     * @param {Object} replaceMap 	key/val map of replacements
     * @return {String} representing the formatted string
     */
    static replaceInTemplateString(template, replaceMap) {
        const regex = new RegExp(Object.keys(replaceMap).join('|'), 'gi');
        return template.replace(regex, matched => replaceMap[matched]);
    }
    /**
     * Convert the file size into a formatted size object.
     *
     * @param {Number} isize  integer value of file size
     * @return {object} the formatted size and MB/GB/KB etc. specifier
     */
    static formatFileSize(isize, intl) {
        /* eslint-disable @typescript-eslint/no-magic-numbers */
        // this is a case where we are intentionally having to do the wrong thing
        // to align with Assets web because they mistakenly did kilo-Bits instead
        // of kilo-Bytes a long time back and don't want to change it now...
        const byteVal = 1000;
        const sizeAbbrev = [
            'abbreviations.fileSize.byte',
            'abbreviations.fileSize.kilobyte',
            'abbreviations.fileSize.megabyte',
            'abbreviations.fileSize.gigabyte',
            'abbreviations.fileSize.terabyte',
        ];
        // Round B, KB, MB, GB, TB size numbers to 0, 0, 1, 2, 3 decimal place(s) respectively.
        const precision = [0, 0, 1, 2, 3];
        if (Number.isNaN(isize)) {
            return { displayValue: 'NaN', value: NaN, abbrev: '--' };
        }
        const index = isize > 0 ? Math.floor(Math.log(isize) / Math.log(byteVal)) : 0;
        const multiplier = 10 ** (precision[index] || 0);
        const value = Math.round((isize / byteVal ** index) * multiplier) / multiplier;
        const abbrev = intl.formatMessage({ id: `${sizeAbbrev[index]}` });
        const displayValue = intl.formatNumber(value);
        return { displayValue, value, abbrev };
        /* eslint-enable */
    }
    /**
     * Create a new url by appending a string to the current path.
     *
     * @param  {string} path       current path
     * @param  {string} addString  appended string
     * @returns string
     */
    static createUrlString(path, addString) {
        return path.endsWith('/') ? `${path}${addString}` : `${path}/${addString}`;
    }
    /**
     * Determine if we're currently running on UXP
     * @returns {boolean}
     */
    static usingUXP() {
        return Boolean(window.navigator.userAgent.indexOf('UXP') > -1);
    }
    /**
     * Calculates position of menu based on target element position
     */
    static calculatePosition(targetElement) {
        let left = 0;
        let top = 0;
        let totalScrollLeft = 0;
        let totalScrollTop = 0;
        let ele = targetElement;
        const savedElement = ele;
        while (ele) {
            if (ele.tagName === '#document' || ele.nodeName === '#document') {
                break;
            }
            totalScrollLeft += ele.scrollLeft;
            totalScrollTop += ele.scrollTop;
            ele = ele.parentNode;
        }
        ele = savedElement;
        while (ele) {
            if (ele.tagName === '#document' || ele.nodeName === '#document') {
                break;
            }
            left += ele.offsetLeft;
            top += ele.offsetTop;
            ele = ele.offsetParent;
        }
        left -= totalScrollLeft;
        top -= totalScrollTop;
        return {
            left,
            top,
        };
    }
    static getResizeElement() {
        // UXP currently does not bubble up the resize event to the window but
        // it does dispatch the event to every DOM node up to document.
        return Utils.usingUXP() ? document : window;
    }
}
/* harmony default export */ __webpack_exports__["a"] = (Utils);

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("yLpj")))

/***/ }),

/***/ "Fffm":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(global) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return normalize; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return normalizeToSize; });
/* unused harmony export walk */
/* harmony import */ var _is_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("9AQC");
/* harmony import */ var _memo_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("wCA9");
/* harmony import */ var _object_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("6PXS");
/* harmony import */ var _stacktrace_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("pRiV");




/**
 * Recursively normalizes the given object.
 *
 * - Creates a copy to prevent original input mutation
 * - Skips non-enumerable properties
 * - When stringifying, calls `toJSON` if implemented
 * - Removes circular references
 * - Translates non-serializable values (`undefined`/`NaN`/functions) to serializable format
 * - Translates known global objects/classes to a string representations
 * - Takes care of `Error` object serialization
 * - Optionally limits depth of final output
 * - Optionally limits number of properties/elements included in any single object/array
 *
 * @param input The object to be normalized.
 * @param depth The max depth to which to normalize the object. (Anything deeper stringified whole.)
 * @param maxProperties The max number of elements or properties to be included in any single array or
 * object in the normallized output.
 * @returns A normalized version of the object, or `"**non-serializable**"` if any errors are thrown during normalization.
 */
// eslint-disable-next-line @typescript-eslint/no-explicit-any

function normalize(input, depth = +Infinity, maxProperties = +Infinity) {
  try {
    // since we're at the outermost level, we don't provide a key
    return visit('', input, depth, maxProperties);
  } catch (err) {
    return {
      ERROR: `**non-serializable** (${err})`
    };
  }
}
/** JSDoc */


function normalizeToSize( // eslint-disable-next-line @typescript-eslint/no-explicit-any
object, // Default Node.js REPL depth
depth = 3, // 100kB, as 200kB is max payload size, so half sounds reasonable
maxSize = 100 * 1024) {
  const normalized = normalize(object, depth);

  if (jsonSize(normalized) > maxSize) {
    return normalizeToSize(object, depth - 1, maxSize);
  }

  return normalized;
}
/**
 * Visits a node to perform normalization on it
 *
 * @param key The key corresponding to the given node
 * @param value The node to be visited
 * @param depth Optional number indicating the maximum recursion depth
 * @param maxProperties Optional maximum number of properties/elements included in any single object/array
 * @param memo Optional Memo class handling decycling
 */


function visit(key, value, depth = +Infinity, maxProperties = +Infinity, memo = Object(_memo_js__WEBPACK_IMPORTED_MODULE_1__[/* memoBuilder */ "a"])()) {
  const [memoize, unmemoize] = memo; // Get the simple cases out of the way first

  if (value === null || ['number', 'boolean', 'string'].includes(typeof value) && !Object(_is_js__WEBPACK_IMPORTED_MODULE_0__[/* isNaN */ "h"])(value)) {
    return value;
  }

  const stringified = stringifyValue(key, value); // Anything we could potentially dig into more (objects or arrays) will have come back as `"[object XXXX]"`.
  // Everything else will have already been serialized, so if we don't see that pattern, we're done.

  if (!stringified.startsWith('[object ')) {
    return stringified;
  } // From here on, we can assert that `value` is either an object or an array.
  // Do not normalize objects that we know have already been normalized. As a general rule, the
  // "__sentry_skip_normalization__" property should only be used sparingly and only should only be set on objects that
  // have already been normalized.


  if (value['__sentry_skip_normalization__']) {
    return value;
  } // We're also done if we've reached the max depth


  if (depth === 0) {
    // At this point we know `serialized` is a string of the form `"[object XXXX]"`. Clean it up so it's just `"[XXXX]"`.
    return stringified.replace('object ', '');
  } // If we've already visited this branch, bail out, as it's circular reference. If not, note that we're seeing it now.


  if (memoize(value)) {
    return '[Circular ~]';
  } // If the value has a `toJSON` method, we call it to extract more information


  const valueWithToJSON = value;

  if (valueWithToJSON && typeof valueWithToJSON.toJSON === 'function') {
    try {
      const jsonValue = valueWithToJSON.toJSON(); // We need to normalize the return value of `.toJSON()` in case it has circular references

      return visit('', jsonValue, depth - 1, maxProperties, memo);
    } catch (err) {// pass (The built-in `toJSON` failed, but we can still try to do it ourselves)
    }
  } // At this point we know we either have an object or an array, we haven't seen it before, and we're going to recurse
  // because we haven't yet reached the max depth. Create an accumulator to hold the results of visiting each
  // property/entry, and keep track of the number of items we add to it.


  const normalized = Array.isArray(value) ? [] : {};
  let numAdded = 0; // Before we begin, convert`Error` and`Event` instances into plain objects, since some of each of their relevant
  // properties are non-enumerable and otherwise would get missed.

  const visitable = Object(_object_js__WEBPACK_IMPORTED_MODULE_2__[/* convertToPlainObject */ "b"])(value);

  for (const visitKey in visitable) {
    // Avoid iterating over fields in the prototype if they've somehow been exposed to enumeration.
    if (!Object.prototype.hasOwnProperty.call(visitable, visitKey)) {
      continue;
    }

    if (numAdded >= maxProperties) {
      normalized[visitKey] = '[MaxProperties ~]';
      break;
    } // Recursively visit all the child nodes


    const visitValue = visitable[visitKey];
    normalized[visitKey] = visit(visitKey, visitValue, depth - 1, maxProperties, memo);
    numAdded += 1;
  } // Once we've visited all the branches, remove the parent from memo storage


  unmemoize(value); // Return accumulated values

  return normalized;
}
/**
 * Stringify the given value. Handles various known special values and types.
 *
 * Not meant to be used on simple primitives which already have a string representation, as it will, for example, turn
 * the number 1231 into "[Object Number]", nor on `null`, as it will throw.
 *
 * @param value The value to stringify
 * @returns A stringified representation of the given value
 */


function stringifyValue(key, // this type is a tiny bit of a cheat, since this function does handle NaN (which is technically a number), but for
// our internal use, it'll do
value) {
  try {
    if (key === 'domain' && value && typeof value === 'object' && value._events) {
      return '[Domain]';
    }

    if (key === 'domainEmitter') {
      return '[DomainEmitter]';
    } // It's safe to use `global`, `window`, and `document` here in this manner, as we are asserting using `typeof` first
    // which won't throw if they are not present.


    if (typeof global !== 'undefined' && value === global) {
      return '[Global]';
    } // eslint-disable-next-line no-restricted-globals


    if (typeof window !== 'undefined' && value === window) {
      return '[Window]';
    } // eslint-disable-next-line no-restricted-globals


    if (typeof document !== 'undefined' && value === document) {
      return '[Document]';
    } // React's SyntheticEvent thingy


    if (Object(_is_js__WEBPACK_IMPORTED_MODULE_0__[/* isSyntheticEvent */ "m"])(value)) {
      return '[SyntheticEvent]';
    }

    if (typeof value === 'number' && value !== value) {
      return '[NaN]';
    } // this catches `undefined` (but not `null`, which is a primitive and can be serialized on its own)


    if (value === void 0) {
      return '[undefined]';
    }

    if (typeof value === 'function') {
      return `[Function: ${Object(_stacktrace_js__WEBPACK_IMPORTED_MODULE_3__[/* getFunctionName */ "b"])(value)}]`;
    }

    if (typeof value === 'symbol') {
      return `[${String(value)}]`;
    } // stringified BigInts are indistinguishable from regular numbers, so we need to label them to avoid confusion


    if (typeof value === 'bigint') {
      return `[BigInt: ${String(value)}]`;
    } // Now that we've knocked out all the special cases and the primitives, all we have left are objects. Simply casting
    // them to strings means that instances of classes which haven't defined their `toStringTag` will just come out as
    // `"[object Object]"`. If we instead look at the constructor's name (which is the same as the name of the class),
    // we can make sure that only plain objects come out that way.


    return `[object ${Object.getPrototypeOf(value).constructor.name}]`;
  } catch (err) {
    return `**non-serializable** (${err})`;
  }
}
/** Calculates bytes size of input string */


function utf8Length(value) {
  // eslint-disable-next-line no-bitwise
  return ~-encodeURI(value).split(/%..|./).length;
}
/** Calculates bytes size of input object */
// eslint-disable-next-line @typescript-eslint/no-explicit-any


function jsonSize(value) {
  return utf8Length(JSON.stringify(value));
}


/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("yLpj")))

/***/ }),

/***/ "FgZ1":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _dna = _interopRequireDefault(__webpack_require__("AnWb"));

var _filterDOMProps = _interopRequireDefault(__webpack_require__("Cv/Q"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

var _setOverlayOnProvider = _interopRequireDefault(__webpack_require__("l0xv"));

var _UxpProvider = __webpack_require__("HGBq");

var _Tooltip = _interopRequireDefault(__webpack_require__("K0XK"));

const _excluded = ["variant", "children", "className", "placement", "open", "id"];

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

function getPathData(size, placement) {
  if (placement === 'right') {
    return `M ${size * 2} 0 l ${-size} ${size} l ${size} ${size} z`;
  }

  if (placement === 'left') {
    return `M 0 0 l ${size} ${size} l ${-size} ${size} z`;
  }

  if (placement === 'top') {
    return `M 0 0 l ${size} ${size} l ${size} ${-size} z`;
  }

  if (placement === 'bottom') {
    return `M 0 ${size * 2} l ${size} ${-size} l ${size} ${size} z`;
  }
} // maps from our variant names to spectrum-dna variant names


const variantMap = {
  inspect: 'default',
  info: 'info',
  error: 'negative',
  success: 'positive'
};

class UxpTooltip extends _Tooltip.default {
  constructor(...args) {
    var _temp;

    return _temp = super(...args), this.setOverlayVisible = () => {
      (0, _setOverlayOnProvider.default)(this.tooltipRef, true, this.hide);
    }, this.setOverlayHidden = () => {
      (0, _setOverlayOnProvider.default)(this.tooltipRef, false);
    }, this.hide = () => {
      if (this.tooltipRef) {
        this.tooltipRef.style.display = 'none';
      }
    }, _temp;
  }

  componentDidMount() {
    if (this.tooltipRef) {
      this.tooltipRef.addEventListener('resize', this.setOverlayVisible);
    }
  }

  componentWillUnmount() {
    if (this.tooltipRef) {
      this.tooltipRef.removeEventListener('resize', this.setOverlayVisible);
    }

    this.setOverlayHidden();
  }

  renderTip() {
    const {
      variant,
      placement,
      arrowStyle
    } = this.props;
    const s = 4; // size

    return /*#__PURE__*/_react.default.createElement(_UxpProvider.SpectrumContext.Consumer, null, ({
      scale,
      theme
    } = {}) => /*#__PURE__*/_react.default.createElement("svg", {
      className: "spectrum-Tooltip-tip",
      style: {
        width: s * 2,
        height: s * 2,
        border: 'none',
        fill: _dna.default.elements[theme][scale].tooltip[variantMap[variant]].states.default['tip-color'],
        left: arrowStyle ? arrowStyle.left : null,
        top: arrowStyle ? arrowStyle.top : null
      }
    }, /*#__PURE__*/_react.default.createElement("path", {
      d: getPathData(s, placement)
    })));
  }

  render() {
    const _this$props = this.props,
          {
      variant,
      children,
      className,
      placement,
      open,
      id = this.tooltipId
    } = _this$props,
          otherProps = _objectWithoutProperties(_this$props, _excluded);

    return /*#__PURE__*/_react.default.createElement("span", _extends({
      ref: r => this.tooltipRef = r,
      className: (0, _classnames.default)('spectrum-Tooltip', `spectrum-Tooltip--${variant}`, `spectrum-Tooltip--${placement.split(' ')[0]}`, {
        'is-open': open
      }, className),
      id: id
    }, (0, _filterDOMProps.default)(otherProps)), /*#__PURE__*/_react.default.createElement("span", {
      className: "spectrum-Tooltip-label"
    }, children), this.renderTip());
  }

}

exports.default = UxpTooltip;

/***/ }),

/***/ "FhEo":
/***/ (function(module, exports) {

/* eslint-disable max-len */
module.exports = {
  'confirmationDialog.dontShowAgain': 'Znovu nezobrazovat',
  'confirmationDialog.confirm.default': 'Pokračovat',
  'confirmationDialog.cancel.default': 'Zrušit',
  'confirmationDialog.learnMore': 'Další informace',
  'toast.warning.place': 'Propojené cloudové dokumenty zatím nelze umístit. Místo toho pokračujte ve vkládání.',
  'toast.warning.placeLinkOrEmbed': 'Vámi umístěné datové zdroje jsou nyní ve výchozím nastavení propojeny s originály. To znamená, že pokud je v jednom místě upravíte, projeví se tyto změny všude.',
  'toast.warning.saveAs.invalidFormat': 'Je nám líto, ale není možné zde ukládat soubory ve formátu {genericFormat}. Soubor se uloží ve formátu {adobeFormat}.',
  'pickerView.recent': 'Poslední',
  'pickerView.cloud_docs': 'Vaše soubory',
  'pickerView.shared_with_you': 'Sdíleno s vámi',
  'pickerView.projects': 'Projekty',
  'pickerView.files': 'Soubory',
  'pickerView.computer': 'Váš počítač...',
  'pickerView.saveAsInput': 'Uložit jako',
  'pickerView.exportInput': 'Exportovat jako',
  'pickerView.sketch_library': 'Převést knihovnu aplikace Sketch...',
  'pickerView.error.saveAsOrExport.default': 'Název souboru je neplatný.',
  'pickerView.error.saveAsOrExport.invalidName': 'Tento název obsahuje neplatné znaky.',
  'pickerView.error.saveAsOrExport.invalidEnd': 'Název nesmí končit tečkou ani mezerou.',
  'pickerView.error.saveAsOrExport.invalidChar': 'Název nesmí obsahovat tyto znaky: {characters}',
  'pickerView.error.saveAsOrExport.charRestriction': 'Názvy můžou mít maximálně 200 znaků.',
  'pickerView.error.saveAsOrExport.duplicateName': 'Cloudový dokument s tímto názvem už tu máte.',
  'pickerView.error.addALibrary.permission': 'Nemáte oprávnění k přidání této knihovny',
  'pickerViewFooter.button.add': 'Přidat',
  'pickerViewFooter.button.cancel': 'Zrušit',
  'pickerViewFooter.button.copy': 'Kopírovat zde',
  'pickerViewFooter.button.move': 'Přesunout sem',
  'pickerViewFooter.button.moveToProject': 'Přesunout sem',
  'pickerViewFooter.button.copyToProject': 'Kopírovat zde',
  'pickerViewFooter.button.choose': 'Vybrat',
  'pickerViewFooter.button.save': 'Uložit',
  'pickerViewFooter.button.switchToOSPicker': 'Ve vlastním počítači',
  'pickerViewFooter.button.save.offline': 'Je požadováno připojení k internetu',
  'pickerViewFooter.button.saveAsCopy': 'Uložit',
  'pickerViewFooter.button.export': 'Exportovat',
  'pickerViewFooter.button.placeLinkOrEmbed': 'Umístit',
  'pickerViewFooter.button.import': 'Import',
  'pickerViewFooter.checkbox.placeLink': 'Svázáno',
  'pickerViewFooter.tooltip.placeLink': 'Tuto položku můžete umístit pouze jako propojené datové zdroje.',
  'pickerViewFooter.tooltip.placeEmbed': 'Tuto položku můžete umístit pouze jako vloženou.',
  'pickerViewFooter.saveAs.format.label': 'Formát',
  'pickerViewFooter.button.selectProject': 'Uložit',
  'onboardingCdp.title': 'Pokud soubor uložíte jako cloudový dokument, budete moci využít řadu užitečných funkcí',
  'onboardingCdp.tooltip': 'Pokud soubor uložíte do počítače, nebudete moci používat cloudové funkce.',
  'onboardingCdp.tooltip.link': 'Další informace',
  'onboardingCdp.table.header.saveToCloud': 'Creative Cloud',
  'onboardingCdp.table.header.saveToLocal': 'Ve vlastním počítači',
  'onboardingCdp.button.saveToCloud': 'Uložit do Creative Cloud',
  'onboardingCdp.feature.offline': 'Přístup offline',
  'onboardingCdp.feature.syncing': 'Cloudová synchronizace se všemi zařízeními',
  'onboardingCdp.feature.autosave': 'Automatické ukládání všech změn',
  'onboardingCdp.feature.versionHistory': 'Historie verzí',
  'onboardingCdp.feature.inviteToEdit': 'Přizvat k úpravám',
  'onboardingCdp.button.saveToLocal': 'Uložit do počítače',
  'onboardingCdp.checkbox.doNotShowAgain': 'Znovu nezobrazovat',
  'uap.title.place': 'Umístit z Creative Cloud',
  'uap.title.import': 'Importovat z Creative Cloud',
  'uap.title.placeLinkOrEmbed': 'Umístit z Creative Cloud',
  'uap.title.linkAssets': 'Propojit z Creative Cloud',
  'uap.title.open': 'Otevřít z Creative Cloud',
  'uap.title.relink': 'Propojit z Creative Cloud',
  'uap.title.saveAs': 'Uložit do Creative Cloud',
  'uap.title.saveAsCopy': 'Uložit do Creative Cloud',
  'uap.title.saveToFolder': 'Uložit do Creative Cloud',
  'uap.title.export': 'Exportovat do Creative Cloud',
  'uap.title.copy': 'Kopírovat do Creative Cloud',
  'uap.title.move': 'Přesunout do Creative Cloud',
  'uap.title.moveToProject': 'Přesunout do Creative Cloud',
  'uap.title.copyToProject': 'Kopírovat do Creative Cloud',
  'uap.title.reference': 'Přidat do Creative Cloud',
  'uap.title.selectProject': 'Uložit do Creative Cloud',
  'move.toSpace.confirm.title': 'Historie verzí bude odstraněna',
  'move.toSpace.confirm.message': 'Přesunutí tohoto souboru způsobí smazání historie verzí. Pokud si přejete zachovat historii verzí, vytvořte si kopii.'
};

/***/ }),

/***/ "FjXF":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("rOLq"),
      24: __webpack_require__("q+JA")
    }
  }));
};

WrappedIcon.displayName = 'Organisations';
exports.default = WrappedIcon;

/***/ }),

/***/ "FlQf":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var $at = __webpack_require__("ccE7")(true); // 21.1.3.27 String.prototype[@@iterator]()


__webpack_require__("MPFp")(String, 'String', function (iterated) {
  this._t = String(iterated); // target

  this._i = 0; // next index
  // 21.1.5.2.1 %StringIteratorPrototype%.next()
}, function () {
  var O = this._t;
  var index = this._i;
  var point;
  if (index >= O.length) return {
    value: undefined,
    done: true
  };
  point = $at(O, index);
  this._i += point.length;
  return {
    value: point,
    done: false
  };
});

/***/ }),

/***/ "Fm3E":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _autobindDecorator = _interopRequireDefault(__webpack_require__("gKdT"));

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _convertUnsafeMethod = _interopRequireDefault(__webpack_require__("8nyd"));

var _filterDOMProps = _interopRequireDefault(__webpack_require__("Cv/Q"));

var _events = __webpack_require__("mdZ3");

var _focusRing = _interopRequireDefault(__webpack_require__("PBY+"));

var _string = __webpack_require__("SJ2Q");

var _react = _interopRequireWildcard(__webpack_require__("q1tI"));

const _excluded = ["label", "value", "name", "disabled", "required", "invalid", "readOnly", "className", "style", "children", "inputType", "renderLabel", "inputClassName", "markClassName", "markIcon", "labelClassName", "onMouseDown", "onMouseUp"];

var _class, _class2, _temp;

function _getRequireWildcardCache(nodeInterop) {
  if (typeof WeakMap !== "function") return null;
  var cacheBabelInterop = new WeakMap();
  var cacheNodeInterop = new WeakMap();
  return (_getRequireWildcardCache = function (nodeInterop) {
    return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
  })(nodeInterop);
}

function _interopRequireWildcard(obj, nodeInterop) {
  if (!nodeInterop && obj && obj.__esModule) {
    return obj;
  }

  if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
    return {
      default: obj
    };
  }

  var cache = _getRequireWildcardCache(nodeInterop);

  if (cache && cache.has(obj)) {
    return cache.get(obj);
  }

  var newObj = {};
  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;

  for (var key in obj) {
    if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
      var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;

      if (desc && (desc.get || desc.set)) {
        Object.defineProperty(newObj, key, desc);
      } else {
        newObj[key] = obj[key];
      }
    }
  }

  newObj.default = obj;

  if (cache) {
    cache.set(obj, newObj);
  }

  return newObj;
}

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

let SwitchBase = (0, _convertUnsafeMethod.default)(_class = (0, _focusRing.default)(_class = (0, _autobindDecorator.default)(_class = (_temp = _class2 = class SwitchBase extends _react.Component {
  constructor(props) {
    super(props);
    const {
      checked,
      defaultChecked
    } = props;
    this.state = {
      checked: checked !== undefined ? checked : defaultChecked || false
    };
  }

  UNSAFE_componentWillReceiveProps(nextProps) {
    if ('checked' in nextProps) {
      this.setState({
        checked: nextProps.checked
      });
    }
  }

  focus() {
    if (this.inputRef && !this.disabled) {
      this.inputRef.focus();
    }
  }

  setChecked(checked) {
    if (!('checked' in this.props)) {
      this.setState({
        checked
      });
    }
  }

  getInput() {
    return this.inputRef;
  }

  handleChange(e) {
    const {
      onChange
    } = this.props;
    const {
      checked
    } = e.target;
    this.setChecked(checked);
    onChange(checked, e);
  }

  render() {
    const _this$props = this.props,
          {
      label,
      value,
      name,
      disabled,
      required,
      invalid,
      readOnly,
      className,
      style,
      children,
      inputType,
      renderLabel,
      inputClassName,
      markClassName,
      markIcon,
      labelClassName,
      onMouseDown,
      onMouseUp
    } = _this$props,
          otherProps = _objectWithoutProperties(_this$props, _excluded);

    const {
      checked
    } = this.state;
    const shouldRenderLabel = renderLabel && (label || children);
    const Element = shouldRenderLabel ? 'label' : 'div'; // Don't let native browser change events bubble up to the root div.
    // Otherwise we double dispatch.

    delete otherProps.onChange; // Add aria-label that concatenates label and children
    // when renderLabel is false and no other aria-label is provided.

    let ariaLabel = null;

    if (otherProps['aria-label']) {
      ariaLabel = otherProps['aria-label'];
      delete otherProps['aria-label'];
    } else if (!renderLabel && (label || children)) {
      let labels = [];

      if (label) {
        labels.push(label);
      }

      if (children) {
        let str = (0, _string.getTextFromReact)(children);

        if (str !== label) {
          labels.push(str);
        }
      }

      ariaLabel = labels.join(' ');
    } // Fix for ESLint error: The attribute aria-checked is not supported by the role textbox. This role is implicit on the element input  jsx-a11y/role-supports-aria-props


    if (inputType && !otherProps['aria-checked']) {
      otherProps['aria-checked'] = checked;
    }

    return /*#__PURE__*/_react.default.createElement(Element, {
      className: (0, _classnames.default)(className, {
        'is-invalid': invalid,
        'is-disabled': disabled
      }),
      style: style
    }, /*#__PURE__*/_react.default.createElement("input", _extends({
      ref: el => this.inputRef = el,
      type: inputType,
      className: inputClassName,
      checked: checked,
      disabled: disabled,
      name: name,
      value: value,
      required: required ? true : null,
      readOnly: readOnly,
      onChange: this.handleChange,
      onMouseDown: _events.focusAfterMouseEvent.bind(this, onMouseDown),
      onMouseUp: _events.focusAfterMouseEvent.bind(this, onMouseUp),
      "aria-invalid": invalid || null,
      "aria-label": ariaLabel
    }, (0, _filterDOMProps.default)(otherProps))), /*#__PURE__*/_react.default.createElement("span", {
      className: markClassName
    }, markIcon), shouldRenderLabel && /*#__PURE__*/_react.default.createElement("span", {
      className: labelClassName
    }, label,
    /* When both label and children are present,
     include a space character so that the text
     doesn't get smushed together. */
    label && children && ' ', children));
  }

}, _class2.defaultProps = {
  renderLabel: true,
  // defaultChecked is undefined by default so we can repect
  // the value that is passed in without erroneously putting
  // both checked and defaultChecked on the input
  defaultChecked: undefined,
  disabled: false,
  required: false,
  invalid: false,
  readOnly: false,
  onChange: function () {}
}, _temp)) || _class) || _class) || _class;

exports.default = SwitchBase;
SwitchBase.displayName = 'SwitchBase';

/***/ }),

/***/ "Fojr":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("path", {
  d: "M33 2H5a1 1 0 0 0-1 1v30a1 1 0 0 0 1 1h11V22h6v12h11a1 1 0 0 0 1-1V3a1 1 0 0 0-1-1zM12 26H6v-4h6zm0-8H6v-4h6zm0-8H6V6h6zm10 8h-6v-4h6zm0-8h-6V6h6zm10 16h-6v-4h6zm0-8h-6v-4h6zm0-8h-6V6h6z"
}));

/***/ }),

/***/ "Fp+v":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var _UxpOptions = _interopRequireDefault(__webpack_require__("zvwv"));

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}
/*************************************************************************
* ADOBE CONFIDENTIAL
* ___________________
*
* Copyright 2021 Adobe
* All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains
* the property of Adobe and its suppliers, if any. The intellectual
* and technical concepts contained herein are proprietary to Adobe
* and its suppliers and are protected by all applicable intellectual
* property laws, including trade secret and copyright laws.
* Dissemination of this information or reproduction of this material
* is strictly forbidden unless prior written permission is obtained
* from Adobe.
**************************************************************************/
// In UXP, we do not send keydown events to JS if they have already been handled
// See https://git.corp.adobe.com/torq/torq-native/pull/6546
// Wiki: https://wiki.corp.adobe.com/display/UXP/Focus+Changes
// As a result we need to set focus ring on focus event after checking if the reason was a key press


module.exports = _UxpOptions.default.select('FocusRingPolyfill', () => __webpack_require__("N+23"), () => __webpack_require__("OOf5"));

/***/ }),

/***/ "FpHa":
/***/ (function(module, exports) {

// IE 8- don't enum bug keys
module.exports = 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'.split(',');

/***/ }),

/***/ "Fpef":
/***/ (function(module, exports, __webpack_require__) {

module.exports = __webpack_require__.p + "assets/projects/S_Illu_EmptyCanvasFile_Color04.png";

/***/ }),

/***/ "FsjF":
/***/ (function(module) {

module.exports = JSON.parse("{\"File\":\"Arquivo\",\"Folder\":\"Pasta\"}");

/***/ }),

/***/ "Fxbb":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("path", {
  d: "M6.745 12.073h-5.29A1.473 1.473 0 0 0 0 13.564v8.942A1.473 1.473 0 0 0 1.455 24h5.29a1.429 1.429 0 0 1 .93.345l7.13 7.259A.727.727 0 0 0 16 31.029V5a.726.726 0 0 0-1.194-.571l-7.127 7.3a1.437 1.437 0 0 1-.934.344zM22.04 18a6.936 6.936 0 0 1-1.408 4.192.981.981 0 0 0 .087 1.288l.016.016a.991.991 0 0 0 1.486-.09 8.954 8.954 0 0 0-.021-10.853.991.991 0 0 0-1.484-.087l-.016.016a.982.982 0 0 0-.084 1.293A6.944 6.944 0 0 1 22.04 18z"
}), React.createElement("path", {
  d: "M28.04 18a12.937 12.937 0 0 1-3.116 8.436.972.972 0 0 0 .063 1.317l.014.014a1 1 0 0 0 1.474-.069 14.98 14.98 0 0 0-.027-19.43 1 1 0 0 0-1.467-.068l-.015.015a.977.977 0 0 0-.066 1.319A12.939 12.939 0 0 1 28.04 18z"
}), React.createElement("path", {
  d: "M34.04 18a18.92 18.92 0 0 1-4.824 12.642 1 1 0 0 0 .024 1.375l.015.015a.981.981 0 0 0 1.422-.023A20.862 20.862 0 0 0 35.983 18a20.868 20.868 0 0 0-5.326-14.035.985.985 0 0 0-1.423-.02l-.015.015a1 1 0 0 0-.019 1.374A18.923 18.923 0 0 1 34.04 18z"
}));

/***/ }),

/***/ "FyfS":
/***/ (function(module, exports, __webpack_require__) {

module.exports = {
  "default": __webpack_require__("Rp86"),
  __esModule: true
};

/***/ }),

/***/ "FykI":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("IsP1"),
      24: __webpack_require__("c4pS")
    }
  }));
};

WrappedIcon.displayName = 'UserGroup';
exports.default = WrappedIcon;

/***/ }),

/***/ "FzwA":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("VIzJ");
/* harmony import */ var _Dialog__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("dKUG");
/* harmony import */ var _styles_ConfirmationDialog_css__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("2kzy");
/* harmony import */ var _styles_ConfirmationDialog_css__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_styles_ConfirmationDialog_css__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _react_react_spectrum_Checkbox__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("L+OI");
/* harmony import */ var _react_react_spectrum_Checkbox__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Checkbox__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var _stores_UIConfig__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("u7n1");
/* harmony import */ var _utils_constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("YVc3");
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2020 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/







class ConfirmationDialog extends react__WEBPACK_IMPORTED_MODULE_0__["Component"] {
    constructor() {
        super(...arguments);
        this.state = { dontShowAgain: false };
        this.handleCheckboxChange = () => this.setState({ dontShowAgain: !this.state.dontShowAgain });
    }
    render() {
        const { intl, id, onClose, onConfirm, projectName, actionType, appName, cancellable, confirmLabel, variant, browseSession, } = this.props;
        const title = intl.formatMessage({
            id: `dialog.${actionType}.title`,
        }, { projectName });
        const dontShowAgainLabel = intl.formatMessage({ id: 'confirmationDialog.dontShowAgain' });
        let uiConfig = browseSession
            ? _stores_UIConfig__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"].getConfigByNamespace(browseSession, _utils_constants__WEBPACK_IMPORTED_MODULE_6__[/* UiConfigNamespaces */ "J"].ConfirmationDialog)
            : undefined;
        return (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_Dialog__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"], { className: _styles_ConfirmationDialog_css__WEBPACK_IMPORTED_MODULE_3___default.a.dialog, cancelLabel: cancellable !== null && cancellable !== void 0 ? cancellable : intl.formatMessage({
                id: 'button.cancel',
            }), confirmLabel: intl.formatMessage({
                id: confirmLabel !== null && confirmLabel !== void 0 ? confirmLabel : 'button.continue',
            }), title: title, "aria-label": title, onConfirm: () => {
                if (this.state.dontShowAgain && uiConfig) {
                    uiConfig.setDontShowAgain(id, true);
                }
                onConfirm();
            }, onClose: onClose, autoFocusButton: "confirm", variant: variant },
            react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", { "data-test-id": actionType, className: _styles_ConfirmationDialog_css__WEBPACK_IMPORTED_MODULE_3___default.a.content },
                react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_1__[/* FormattedMessage */ "c"], { id: `dialog.${actionType}.detail`, values: { appName: appName } })),
            id == 'openConfirmationDialog' ? (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", null,
                react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("br", null),
                react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_react_react_spectrum_Checkbox__WEBPACK_IMPORTED_MODULE_4___default.a, { label: dontShowAgainLabel, checked: this.state.dontShowAgain, onChange: this.handleCheckboxChange }))) : null));
    }
}
/* harmony default export */ __webpack_exports__["a"] = (Object(react_intl__WEBPACK_IMPORTED_MODULE_1__[/* injectIntl */ "g"])(ConfirmationDialog));


/***/ }),

/***/ "G8Mo":
/***/ (function(module, exports, __webpack_require__) {

// 7.1.1 ToPrimitive(input [, PreferredType])
var isObject = __webpack_require__("93I4"); // instead of the ES6 spec version, we didn't implement @@toPrimitive case
// and the second argument - flag - preferred type is a string


module.exports = function (it, S) {
  if (!isObject(it)) return it;
  var fn, val;
  if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
  if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;
  if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
  throw TypeError("Can't convert object to primitive value");
};

/***/ }),

/***/ "G8nY":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXPORTS
__webpack_require__.d(__webpack_exports__, "b", function() { return /* binding */ downloadItems; });

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__("q1tI");
var react_default = /*#__PURE__*/__webpack_require__.n(react);

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/Download/index.js
var Download = __webpack_require__("/EZv");
var Download_default = /*#__PURE__*/__webpack_require__.n(Download);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/components/ToastManager.tsx + 1 modules
var ToastManager = __webpack_require__("oSyz");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/hosts/Host.ts + 9 modules
var Host = __webpack_require__("Dy/p");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/utils/action.ts
var action = __webpack_require__("duTG");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/UXPUtils.ts
var UXPUtils = __webpack_require__("LbGp");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/JobMonitor/index.ts + 3 modules
var JobMonitor = __webpack_require__("zTWf");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/utils/replaceUXPRestrictedCharacters.ts
/**
 * Searches a string for restricted characters that UXP does not support, and return a new string with the value(s) replaced.
 * The restricted characters that UXP does not support are: \/*:?"<>|#
 * Note that unlike the `RESTRICTED_CHARACTERS` list in validate-asset-name.ts, this list also include `#` (see CCPROJ-7443)
 */
/* harmony default export */ var replaceUXPRestrictedCharacters = ((name, newValue = '_') => {
    return name.replace(/[\\\:\*\?"\/\|<>\#]/g, newValue);
});

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/SentryUtils.ts + 37 modules
var SentryUtils = __webpack_require__("mk41");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/actions/download.tsx









const downloadItems = async (items, client, inNativeHost) => {
    var _a, _b, _c;
    const { jobMonitor, toastManager, intl } = client;
    let selectedFolder;
    let promise;
    const mimeTypes = items.map(item => item.mimeType);
    if ((_b = (_a = Host["a" /* default */].downloadUtils) === null || _a === void 0 ? void 0 : _a.canDownload) === null || _b === void 0 ? void 0 : _b.call(_a, mimeTypes)) {
        // getDownloadFolder is only used by native clients, web clients will download to default location without invoking prompt
        if ((_c = Host["a" /* default */].downloadUtils) === null || _c === void 0 ? void 0 : _c.getDownloadFolder) {
            selectedFolder = await Host["a" /* default */].downloadUtils.getDownloadFolder(intl.formatMessage({ id: 'button.download' }));
            if (!selectedFolder) {
                return;
            }
        }
        promise = Host["a" /* default */].downloadUtils.downloadAssets(items, selectedFolder);
    }
    else {
        promise = Promise.reject(items);
    }
    // Show completed toast if not on web.
    const showCompletedToast = inNativeHost;
    if (!showCompletedToast) {
        toastManager.addToast(react_default.a.createElement(ToastManager["a" /* LoadingMessage */], null, intl.formatMessage({ id: 'download.start' }, { count: items.length })), {
            closable: true,
            variant: undefined,
        });
        try {
            await promise;
        }
        catch (failedItems) {
            if (!Array.isArray(failedItems) || failedItems.length === items.length) {
                // All failed
                toastManager.addToast(intl.formatMessage({ id: 'download.failure' }, { count: items.length }), {
                    closable: true,
                    variant: 'error',
                });
                SentryUtils["a" /* sentryUtils */].captureException(failedItems, {
                    tags: {
                        'action.error': 'download-all',
                    },
                });
            }
            else {
                // Partial failure
                toastManager.addToast(intl.formatMessage({ id: 'download.failure.partial' }), {
                    closable: true,
                    variant: 'error',
                });
                SentryUtils["a" /* sentryUtils */].captureException(failedItems, {
                    tags: {
                        'action.error': 'download-partial',
                    },
                });
            }
        }
        return;
    }
    const job = new JobMonitor["a" /* Job */](promise, items);
    const queue = new JobMonitor["c" /* JobQueue */]({
        completed: (completedItems) => ({
            message: intl.formatMessage({ id: 'download.success' }, { count: completedItems.length }),
            options: {
                closable: true,
                variant: 'success',
            },
        }),
        error: (allItems, failedItems) => {
            if (failedItems.length === items.length) {
                // All failed
                return {
                    message: intl.formatMessage({ id: 'download.failure' }, { count: failedItems.length }),
                    options: {
                        closable: true,
                        variant: 'error',
                    },
                };
            }
            else {
                // Partial failure
                return {
                    message: intl.formatMessage({
                        id: 'download.failure.partial',
                    }),
                    options: {
                        closable: true,
                        variant: 'error',
                    },
                };
            }
        },
        pending: (pendingItems) => ({
            message: (react_default.a.createElement(ToastManager["a" /* LoadingMessage */], null, intl.formatMessage({ id: 'download.start' }, { count: pendingItems.length }))),
            options: {
                closable: true,
                timeout: 0,
                variant: undefined,
            },
        }),
    });
    queue.add(job);
    jobMonitor.add('download', queue);
};
/**
 * Simplify IAssetModel as IExportFileData. And because `downloadItems` is also used by assets web for
 * its asset private 1up view, IExportFileData is more compact to provide.
 */
const documentTypeToExportFileData = (document) => {
    // [CCPROJ-7443] UXP does not support download file with name contains `\/*:?"<>|#`
    let fileName = document.name || '';
    if (UXPUtils["a" /* default */].usingUXP()) {
        fileName = replaceUXPRestrictedCharacters(fileName);
    }
    return {
        name: document.title,
        fileName,
        mimeType: document.type,
        modifiedDate: document.modifiedDate,
        size: document.size,
        urn: document.id,
    };
};
const downloadAction = (app, projectsClient, isVisible, inNativeHost) => new action["a" /* default */]({
    value: 'download',
    label: 'button.download',
    icon: react_default.a.createElement(Download_default.a, null),
    supportsMultiple: true,
    getDisabledTooltipMsgId: () => 'tooltip.offline.general',
    execute: async (items) => {
        const itemsAsExportDocumentData = items.map(item => documentTypeToExportFileData(item));
        downloadItems(itemsAsExportDocumentData, projectsClient, inNativeHost);
    },
    isVisible: isVisible,
    // TODO: determine whether a download can happen in some offline scenarios
    getIsButtonDisabled: () => app.showOfflineWithFeatureFlag,
});
/* harmony default export */ var download = __webpack_exports__["a"] = (downloadAction);


/***/ }),

/***/ "GCyE":
/***/ (function(module) {

module.exports = JSON.parse("{\"a11y.button.canvases\":\"{name}\",\"a11y.button.libraries\":\"{name}，資料庫\",\"a11y.button.listGridToggle\":\"檢視切換，{toggledView, select, grid {縮圖} list {清單}}檢視\",\"a11y.button.project\":\"{name}，專案\",\"a11y.button.published\":\"{name}，{extension}\",\"a11y.button.selectFolder\":\"選取檔案夾\",\"a11y.button.working\":\"{name}，{extension}，修改日期 {modified}\",\"a11y.strings.folder\":\"檔案夾\",\"header.action.newProject\":\"新增專案\",\"header.action.newLibrary\":\"新資料庫\",\"header.action.browseAll\":\"瀏覽全部\",\"header.Name\":\"名稱\",\"header.Size\":\"大小\",\"header.Sharing\":\"成員\",\"header.Team\":\"工作區\",\"header.DateModified\":\"修改時間\",\"header.DateCreated\":\"建立時間\",\"header.Status\":\"已加入我的最愛\",\"header.SortBy\":\"排序方式\",\"header.sort.label\":\"排序\",\"header.ChangeSortDirection\":\"將排序方向變更為\",\"header.SortBy.asc\":\"遞增\",\"header.SortBy.desc\":\"遞減\",\"header.selectAll\":\"全選\",\"header.reverseOrder\":\"反轉順序\",\"header.showCompatible\":\"相容檔案\",\"header.showEverything\":\"全部\",\"product.illustrator.web\":\"Illustrator Web (Beta)\",\"product.photoshop.web\":\"Photoshop Web (Beta)\",\"status.followed\":\"是\",\"status.unfollowed\":\"否\",\"team.usm.defaultName\":\"工作區「{name}」\",\"space.access.private.description\":\"僅限受邀人員\",\"space.access.private.tooltip\":\"只有受邀人員可以存取此專案\",\"space.access.team.description\":\"工作區中的任何人和受邀者\",\"space.access.team.tooltip\":\"「{team}」中的任何人都可以存取此專案\",\"yourProjects.title\":\"專案\",\"yourProjects.librariesTab.title\":\"團隊資料庫\",\"yourProjects.empty.spaces\":\"建立更多專案並邀請更多工作區成員\",\"browseAll.title\":\"瀏覽全部\",\"yourFiles.title\":\"您的文件\",\"yourLibraries.title\":\"資料庫\",\"yourLibraries.metadata\":\"資料庫\",\"canvas.metadata\":\"畫布\",\"projectInfo.action.view\":\"檢視資訊\",\"projectInfo.action.edit\":\"編輯專案\",\"projectInfo.empty.cta\":\"建立新專案\",\"projectInfo.empty.description\":\"Creative Cloud Projects 可簡化尋找、組織、共用和決策的過程，將創意專案所需的一切都集中於一處。\",\"projectInfo.empty.heading\":\"更多創作，更少追趕。\",\"projectInfo.error.description\":\"請稍後再試\",\"projectInfo.error.heading\":\"無法載入「{section}」\",\"projectInfo.new.error.title\":\"無法建立新專案\",\"projectInfo.new.noPermission.description\":\"如需詳細資訊，請聯絡您的管理員。\",\"projectInfo.title.create\":\"新增專案\",\"projectInfo.title.edit\":\"編輯專案\",\"projectInfo.title.view\":\"專案資訊\",\"projectInfo.access.title\":\"哪些人可以編輯此專案\",\"projectInfo.access.warning\":\"如果您將權限變更為「僅限受邀人員」，部分成員可能無法存取此專案。\",\"projectInfo.organization\":\"組織\",\"projectInfo.organization.placeholder\":\"選取一個\",\"projectInfo.description\":\"描述\",\"textField.invalid.characters\":\"名稱不得包含下列字元：\\\\\\\\ / * ? \\\" | : < >\",\"textField.invalid.duplicateName\":\"此組織中已有使用此名稱的專案。\",\"textField.invalid.duplicateName.space\":\"此工作區中已有使用此名稱的專案。\",\"textField.invalid.duplicateName.team\":\"此組織中已有使用此名稱的工作區。\",\"textField.invalid.empty\":\"名稱不能為空白\",\"textField.invalid.generic\":\"無效的名稱\",\"textField.invalid.length\":\"名稱不得超過 50 個字元\",\"textField.invalid.nameEndsWithDot\":\"名稱不得以句號結尾\",\"textField.invalid.offline\":\"重新連線以存取您的所有工作區和專案。若要從您的專案中檢視本機檔案，請前往「首頁」。\",\"projectInfo.textField.placeholder\":\"為此專案命名\",\"projectInfo.team\":\"工作區\",\"projectInfo.description.placeholder\":\"例如: 客戶專案的檔案、回饋意見和參考資料\",\"projectInfo.description.invalidLength\":\"說明不得超過 1,000 個字元\",\"projectInfo.toast.success.new\":\"專案已成功建立：{name}\",\"projectInfo.toast.success.update\":\"已成功更新專案：{name}\",\"projectInfo.toast.error.generic\":\"無法{create, select, true {建立} other {編輯}}專案\",\"team.empty.heading\":\"Projects 可讓所有人達成共識、共同作業\",\"team.empty.description\":\"檔案遭到鎖定、管理混淆的版本、寄送螢幕擷圖以供審核，您對以上情況感到厭倦了嗎? 請使用空間來組織專案、收集資源和回饋意見，並共用整個團隊所需處理的檔案。\",\"team.empty.createSpace\":\"建立專案\",\"team.empty.inviteMembers\":\"邀請成員\",\"team.empty.startHere\":\"從這裡開始\",\"team.create.success\":\"已成功建立工作區：{name}\",\"team.create.error.generic\":\"建立工作區失敗\",\"team.edit.success\":\"已成功更新工作區：{name}\",\"team.edit.error.generic\":\"更新工作區失敗\",\"team.archive.success\":\"{count, plural, =1 {# 個工作區} other {# 個工作區}}已刪除\",\"team.archive.error.generic\":\"無法刪除 {count, plural, =1 {# 個工作區} other {# 個工作區}}\",\"team.error.generic\":\"很抱歉，發生一些錯誤。\",\"project1Up.action.projectInfo\":\"檢視資訊\",\"project1up.region.space.ariaLabel\":\"「{projectName}」，專案\",\"project1Up.section.libraries\":\"資料庫\",\"project1Up.section.libraries.empty.cta\":\"新增 Creative Cloud Libraries\",\"project1Up.section.libraries.empty.description\":\"新增您創作所需的資料庫連結。\",\"project1Up.section.libraries.empty.heading\":\"將所有內容集中於一處\",\"project1Up.section.filter\":\"篩選器\",\"project1Up.section.filter.label\":\"依關鍵字篩選\",\"project1Up.section.filter.enterKeyword\":\"輸入關鍵字\",\"project1Up.section.filterFiles.empty.heading\":\"沒有與所選篩選器相符的結果\",\"project1Up.section.compatibleFiles.empty.heading\":\"此專案中沒有相容的檔案\",\"project1Up.section.workingFiles\":\"工作檔案\",\"project1Up.section.workingFiles.empty.addFiles\":\"新增檔案\",\"project1Up.section.workingFiles.empty.createFolder\":\"建立新檔案夾\",\"project1Up.section.workingFiles.empty.description\":\"逐一查看專案並與其他成員共同作業。\",\"project1Up.section.workingFiles.empty.heading\":\"在需要時處理所要的工作\",\"project1Up.section.published\":\"已發佈\",\"project1Up.section.published.empty.cta\":\"如何發布連結\",\"project1Up.section.published.empty.description\":\"傳送僅限檢視的連結，以在適當的時間從適當的人獲得回饋意見。\",\"project1Up.section.published.empty.description.readonly\":\"當有人需要回饋意見或評論時，他們會在這裡新增連結。\",\"project1Up.section.published.empty.heading\":\"有目的地分享\",\"project1Up.section.published.empty.heading.readonly\":\"此專案中沒有已發佈的項目\",\"project1Up.section.canvases\":\"畫布\",\"project1Up.section.canvases.empty.cta\":\"新增 Creative Cloud 畫布\",\"project1Up.section.canvases.empty.description\":\"新增所需內容的連結以進行工作。\",\"project1Up.section.canvases.empty.heading\":\"將所有內容集中於一處\",\"project1Up.section.files\":\"檔案\",\"project1Up.error.accessDenied.heading\":\"您沒有存取權\",\"project1Up.error.accessDenied.description\":\"您已從此專案中移除。如果您認為此訊息有誤，請聯絡您的管理員。\",\"project1Up.header.seeAll\":\"檢視全部\",\"project1up.subheader.selected\":\"{count, plural, =1 {# 項目} other {# 項目}} selected\",\"project1up.subheader.emptyDescription\":\"在您的專案中新增說明\",\"project1up.subheader.canvases.title\":\"畫布\",\"project1up.subheader.canvases.subtitle\":\"待辦事項：畫布字幕\",\"project1up.subheader.libraries.title\":\"資料庫\",\"project1up.subheader.libraries.subtitle\":\"成員可以在這裡新增 Creative Cloud Libraries 的連結。\",\"project1up.subheader.working.title\":\"工作檔案\",\"project1up.subheader.working.subtitle\":\"此專案的成員可以編輯這些檔案。\",\"project1up.subheader.output.title\":\"已發佈\",\"project1up.subheader.output.subtitle\":\"{contributor, select, true {與您專案以外的人共用作品的唯讀版本。} other {檢視和評論這些唯讀項目}}\",\"project.subtitle\":\"專案\",\"project.countContributors\":\"{count, plural, =1 {# 位成員} other {# 位成員}}\",\"project.versionError.reload.description\":\"嘗試重新整理您的瀏覽器。\",\"project.versionError.reload.title\":\"無法存取專案\",\"project.versionError.update.description\":\"在更新應用程式之前，您無法存取此專案。\",\"project.versionError.update.title\":\"更新 {appName} 以打開\",\"project.alreadyDiscarded.title\":\"此專案已刪除\",\"project.alreadyDiscarded.description\":\"如果您認為此訊息有誤，請聯絡您的管理員，或瀏覽其他內容。\",\"project.deleted.title\":\"此專案已永久刪除\",\"project.deleted.description\":\"您無法存取此專案，因為該專案已無法使用。\",\"project.metadataError.backLabel\":\"返回專案\",\"project.metadataError.description\":\"我們找不到您要找的專案，或者您沒有存取權。\",\"project.metadataError.title\":\"抱歉，發生一些錯誤。\",\"folder.subtitle\":\"檔案夾\",\"libraries.toast.add.start\":\"正在新增 {count, plural, =1 {# 個資料庫} other {# 個資料庫}}\",\"libraries.toast.add.success\":\"已新增 {count, plural, =1 {# 個資料庫} other {# 個資料庫}}\",\"libraries.toast.add.error\":\"新增 {count, plural, =1 {# 個資料庫} other {# 個資料庫}}失敗。請再試一次。\",\"libraries.toast.add.duplicate\":\"此資料庫已經存在\",\"libraries.toast.add.onlyDuplicates\":\"無法新增 {count, plural, =1 {# 個資料庫，因為該資料庫已經存在} other {# 個資料庫，因為這些資料庫已經存在}}。\",\"libraries.toast.delete.success\":\"已成功移除 {count, plural, =1 {# 個資料庫} other {# 個資料庫}}\",\"libraries.toast.delete.error\":\"移除 {count, plural, =1 {# 個資料庫} other {# 個資料庫}}失敗\",\"libraries.toast.follow.inProgress\":\"正在關注 {count, plural, =1 {# 個資料庫} other {# 個資料庫}}\",\"libraries.toast.follow.success\":\"已關注 {count, plural, =1 {# 個資料庫} other {# 個資料庫}}\",\"libraries.toast.follow.error\":\"關注 {count, plural, =1 {# 個資料庫} other {# 個資料庫}}失敗\",\"libraries.toast.unfollow.inProgress\":\"正在取消關注 {count, plural, =1 {# 個資料庫} other {# 個資料庫}}\",\"libraries.toast.unfollow.success\":\"已取消關注 {count, plural, =1 {# 個資料庫} other {# 個資料庫}}\",\"libraries.toast.unfollow.error\":\"取消關注 {count, plural, =1 {# 個資料庫} other {# 個資料庫}}失敗\",\"libraries.modal.empty.heading\":\"無資料庫\",\"libraries.modal.empty.description\":\"您的組織尚未共享任何資料庫\",\"libraries.modal.error.limitExceeded\":\"無法新增資料庫\",\"libraries.modal.error.limitExceeded.detail\":\"一個專案最多可新增 100 個資料庫。請移除一些資料庫，再新增其他資料庫。\",\"libraries.brokenResources\":\"由於您沒有存取權，所以未顯示某些資料庫。請聯絡其他會員以取得更多資訊。\",\"copy.start\":\"正在複製 {count, plural, =1 {# 個項目} other {# 個項目}}\",\"copy.failure\":\"無法複製 {count, plural, =1 {# 個項目} other {# 個項目}}\",\"copy.failure.partial\":\"無法複製部分項目\",\"copy.success\":\"已複製 {count, plural, =1 {# 個項目} other {# 個項目}}\",\"copy.conflictSuffix\":\"複本\",\"move.start\":\"正在移動 {count, plural, =1 {# 個項目} other {# 個項目}}\",\"move.failure\":\"無法移動 {count, plural, =1 {# 個項目} other {# 個項目}}\",\"move.failure.partial\":\"無法移動部分項目\",\"move.success\":\"已移動 {count, plural, =1 {# 個項目} other {# 個項目}}\",\"upload.start\":\"正在上傳 {count, plural, =1 {# 個項目} other {# 個項目}}\",\"upload.failure\":\"無法上傳 {count, plural, =1 {# 個項目} other {# 個項目}}\",\"upload.failure.partial\":\"無法上傳部分項目\",\"upload.failure.snapshot\":\"此項目不受支援\",\"upload.success\":\"已上傳 {count, plural, =1 {# 個項目} other {# 個項目}}\",\"download.start\":\"正在下載 {count, plural, =1 {# 個項目} other {# 個項目}}\",\"download.failure\":\"無法下載 {count, plural, =1 {# 個項目} other {# 個項目}}\",\"download.failure.partial\":\"無法下載部分項目\",\"download.success\":\"已下載 {count, plural, =1 {# 個項目} other {# 個項目}}\",\"delete.failure\":\"無法刪除 {count, plural, =1 {# 個項目} other {# 個項目}}\",\"delete.failure.partial\":\"無法刪除部分項目\",\"delete.success\":\"已刪除 {count, plural, =1 {# 個項目} other {# 個項目}}\",\"jobs.failure\":\"{count, plural, =1 {# 個項目} other {# 個項目}}已失敗\",\"jobs.inProgress\":\"正在處理…\",\"jobs.success\":\"{count, plural, =1 {# 個項目} other {# 個項目}}已完成\",\"restore.failure\":\"無法復原 {count, plural, =1 {# 個項目} other {# 個項目}}\",\"restore.failure.partial\":\"無法復原部分項目\",\"restore.success\":\"已復原 {count, plural, =1 {# 個項目} other {# 個項目}}\",\"rename.start\":\"正在重新命名\",\"rename.success\":\"已重新命名 {count, plural, =1 {# 個項目} other {# 個項目}}\",\"rename.failure\":\"發生伺服器錯誤，無法重新命名項目\",\"rename.failure.conflict\":\"這裡已有使用此名稱的項目\",\"rename.offline.heading\":\"無法重新命名\",\"rename.offline\":\"您處於離線狀態，因此無法重新命名該項目。請重新連線以執行此動作。\",\"bookmark.follow.error\":\"無法將此專案加入我的最愛\",\"bookmark.unfollow.error\":\"無法將此專案從我的最愛移除\",\"bookmark.follow.success\":\"已將「{projectName}」成功加入我的最愛\",\"bookmark.unfollow.success\":\"已成功將「{projectName}」從我的最愛移除\",\"bookmark.bulk.follow.success\":\"已成功將 {count, plural, =1 {# 個項目} other {# 個項目}}加入我的最愛\",\"bookmark.bulk.follow.partial\":\"無法將部分項目加入我的最愛\",\"bookmark.bulk.follow.error\":\"無法將 {count, plural, =1 {# 個項目} other {# 個項目}}加入我的最愛\",\"bookmark.bulk.unfollow.success\":\"已成功將 {count, plural, =1 {# 個項目} other {# 個項目}}從我的最愛移除\",\"bookmark.bulk.unfollow.partial\":\"無法將部分項目從我的最愛移除\",\"bookmark.bulk.unfollow.error\":\"無法將 {count, plural, =1 {# 個項目} other {# 個項目}}從我的最愛移除\",\"copyLink.success\":\"連結已複製到剪貼簿\",\"copyLink.failure\":\"無法複製連結\",\"starterUser.project1upNavigation\":\"您的入門計劃不包含在專案中開啟文件\",\"starterUser.project1upNavigationCDPSave\":\"您的入門計劃不包含在專案中儲存文件\",\"invite.failure\":\"無法傳送邀請，請再試一次\",\"accessibility.backButton\":\"返回\",\"button.role\":\"按鈕\",\"button.actions\":\"動作\",\"button.add\":\"新增\",\"button.addFiles\":\"新增檔案\",\"button.addLibrary\":\"新增資料庫\",\"button.createDocument\":\"新 {appName} 檔案\",\"button.library\":\"資料庫\",\"button.back\":\"返回\",\"button.browse\":\"瀏覽全部\",\"button.cancel\":\"取消\",\"button.okay\":\"確定\",\"button.canvas\":\"畫布\",\"button.addCanvas\":\"新畫布\",\"button.changeDefaultApp\":\"變更預設應用程式...\",\"button.close\":\"關閉\",\"button.continue\":\"繼續\",\"button.copy\":\"複製到…\",\"button.copyLink\":\"複製連結\",\"button.create\":\"建立\",\"button.createNewFolder\":\"建立新檔案夾\",\"button.newFile\":\"新檔案\",\"button.newFolder\":\"新檔案夾\",\"button.delete\":\"刪除\",\"button.deleteResource\":\"移除\",\"button.done\":\"完成\",\"button.download\":\"下載\",\"button.favorite\":\"加入我的最愛\",\"button.follow\":\"關注\",\"button.invite\":\"邀請\",\"button.inviteLabel\":\"邀請人員\",\"button.leave\":\"離開\",\"button.leaveProject\":\"離開工作區\",\"button.move\":\"移動到...\",\"button.next\":\"下一頁\",\"button.ok\":\"確定\",\"button.open\":\"開啟\",\"button.openWith\":\"開啟時使用\",\"button.open.appName\":\"{appName} {isDefault, select, true {(預設)} other {}}\",\"button.redo\":\"再試一次\",\"button.reload\":\"重新載入\",\"button.rename\":\"重新命名\",\"button.restore\":\"復原\",\"button.retry\":\"重試\",\"button.save\":\"儲存\",\"button.select\":\"選擇\",\"button.share\":\"共用\",\"button.skipTour\":\"略過導覽\",\"button.undo\":\"還原\",\"button.unfavorite\":\"移除我的最愛\",\"button.unfollow\":\"取消關注\",\"button.update\":\"更新\",\"button.upgrade\":\"升級\",\"button.view\":\"檢視全部\",\"button.viewProject\":\"檢視專案\",\"button.viewTarget\":\"檢視\",\"button.createWeblink\":\"新增網頁連結\",\"button.leaveTeam\":\"離開工作區\",\"button.renameTeam\":\"重新命名工作區\",\"button.editTeam\":\"編輯工作區資訊\",\"button.archiveTeam\":\"刪除工作區\",\"button.upload\":\"上傳檔案\",\"button.goToDeleted\":\"檢視已刪除項目\",\"button.viewEverything\":\"檢視所有內容\",\"button.viewInWeb\":\"在網頁中檢視\",\"abbreviations.fileSize.byte\":\"B\",\"abbreviations.fileSize.kilobyte\":\"KB\",\"abbreviations.fileSize.megabyte\":\"MB\",\"abbreviations.fileSize.gigabyte\":\"GB\",\"abbreviations.fileSize.terabyte\":\"TB\",\"statusIcon.conflicted\":\"同步衝突\",\"statusIcon.onlineOnly\":\"僅限線上使用\",\"statusIcon.availableOffline\":\"可離線使用\",\"statusIcon.syncing\":\"同步...\",\"statusIcon.waitingToSync\":\"正在等待同步\",\"statusMessage.offline.description\":\"重新連線以存取您的所有工作區和專案。若要從您的專案中檢視本機檔案，請前往「首頁」。\",\"statusMessage.offline.heading\":\"您已中斷連線\",\"statusMessage.offline.toast\":\"您已中斷連線，因此部分功能和檔案可能無法使用。\",\"toggle.listView\":\"清單檢視\",\"toggle.gridView\":\"縮圖檢視\",\"color.fuchsia\":\"紫紅\",\"color.indigo\":\"靛青\",\"color.celery\":\"芹綠色\",\"color.magenta\":\"洋紅\",\"color.yellow\":\"黃色\",\"color.seafoam\":\"海洋綠\",\"color.chartreuse\":\"蕁麻酒綠\",\"color.purple\":\"紫色\",\"color.blue\":\"藍色\",\"color.red\":\"紅色\",\"color.orange\":\"橙色\",\"color.green\":\"綠色\",\"color.label\":\"專案顏色\",\"tooltip.offline.general\":\"重新連線以採取此動作\",\"tooltip.moreFaces\":\"+ {number} 以上\",\"action.leave.space.success\":\"您已離開 {count, plural, =1 {# 個專案} other {# 個專案}}\",\"action.leave.prototype.success\":\"{count, plural, =1 {# 個原型} other {# 個原型}}的存取權已移除\",\"action.leave.file.success\":\"{count, plural, =1 {# 個檔案} other {# 個檔案}}的存取權已移除\",\"action.leave.canvas.success\":\"{count, plural, =1 {# 個畫布} other {# 個畫布}}的存取權已移除\",\"action.leave.team.success\":\"您已離開 1 個工作區\",\"action.leave.space.error\":\"無法離開此專案\",\"action.leave.prototype.error\":\"無法離開此原型\",\"action.leave.file.error\":\"無法離開此檔案\",\"action.leave.team.error\":\"無法離開此工作區\",\"action.leave.canvas.error\":\"無法離開此畫布\",\"action.leave.space.partial.error\":\"無法離開所有專案\",\"action.leave.prototype.partial.error\":\"無法離開所有原型\",\"action.leave.file.partial.error\":\"無法離開所有檔案\",\"action.leave.canvas.partial.error\":\"無法離開所有畫布\",\"action.leave.error.onlyContributor\":\"您是唯一成員。請新增另一位成員後再離開。\",\"action.leave.error.addressBookGroupMember\":\"請離開此群組，然後再試一次。\",\"action.leave.error.admin\":\"由於您是管理員，因此無法離開。\",\"action.leave.error.generic\":\"由於發生錯誤，因此您無法離開。\",\"action.reportAbuse\":\"舉報不當使用\",\"action.reportAbuse.required\":\"必要\",\"action.reportAbuse.titleText\":\"如果您認為這個 Creative Cloud 內容違反 Adobe 使用條款，可以填寫這份簡表來舉報此內容。\",\"action.reportAbuse.emailInput\":\"您的電子郵件\",\"action.reportAbuse.nameInput\":\"您的名稱\",\"action.reportAbuse.radioButtonText\":\"舉報此內容的原因\",\"action.reportAbuse.defamation\":\"誹謗\",\"action.reportAbuse.hate\":\"種族主義或仇恨性內容\",\"action.reportAbuse.trademark\":\"侵犯商標\",\"action.reportAbuse.pornography\":\"色情內容\",\"action.reportAbuse.vulgar\":\"冒犯的內容\",\"action.reportAbuse.other\":\"其他\",\"action.reportAbuse.inappropriate\":\"不適當\",\"action.reportAbuse.age\":\"年齡不正確\",\"action.reportAbuse.gender\":\"性別不正確\",\"action.reportAbuse.textAreaTitle\":\"請詳細說明您顧慮的事項\",\"action.reportAbuse.describeConcern\":\"描述疑慮\",\"action.reportAbuse.success\":\"已成功舉報不當使用\",\"action.reportAbuse.failure\":\"無法舉報不當使用\",\"action.menu.label\":\"動作選單\",\"action.label\":\"動作\",\"dialog.genericError.description\":\"抱歉，發生錯誤。\",\"dialog.genericError.title\":\"未預期的錯誤\",\"dialog.leave.space.title\":\"離開{count, plural, =1 {{name}} other {專案}}\",\"dialog.leave.prototype.title\":\"離開{count, plural, =1 {此原型} other {原型}}\",\"dialog.leave.file.title\":\"離開{count, plural, =1 {此檔案} other {檔案}}\",\"dialog.leave.canvas.title\":\"離開{count, plural, =1 {此畫布} other {畫布}}\",\"dialog.leave.team.title\":\"要說再見了嗎?\",\"dialog.leave.team.detail\":\"如果您移除自己，您將無法還原此動作。如果您想要重新加入此工作區，請聯絡管理員。\",\"dialog.leave.space.detail\":\"您將無法存取此專案中不屬於您的項目。離開「{projectName}」的動作無法還原。\",\"dialog.leave.prototype.detail\":\"若沒有另一個邀請，您將無法再次存取。\",\"dialog.leave.file.detail\":\"若沒有另一個邀請，您將無法再次存取。\",\"dialog.leave.canvas.detail\":\"若沒有另一個邀請，您將無法再次存取。\",\"dialog.leave.detail\":\"{type, select, space {您將無法存取{count, plural, =1 {此專案} other {這些專案}}中不屬於您的項目。離開{count, plural, =1 {「{name}」} other {這些專案}}的動作無法還原。} other {若沒有另一個邀請，您將無法再次存取{count, plural, =1 {此專案} other {這些專案}}{count, plural, =1 {。} other {：}}}}\",\"dialog.deleteFailed.title\":\"無法刪除所有項目\",\"dialog.deleteWarning.description\":\"{type, select, spaces {此動作將刪除這些專案中所有成員的內容：} other {此動作將刪除此專案中所有成員的下列內容：}}\",\"dialog.deleteWarning.title\":\"{type, select, space {刪除 {count} {count, plural, =1 {個專案} other {個專案}}} other {刪除 {count} {count, plural, =1 {個項目} other {個項目}}}}\",\"dialog.deleteFailed.description.unauthorized\":\"無法刪除，因為您已從此專案中移除：\",\"dialog.deleteFailed.description.alreadyDeleted\":\"由於其他人已將此項目刪除，因此無法刪除：\",\"dialog.deleteFailed.description.unknown\":\"由於發生錯誤，因此無法刪除：\",\"dialog.cantCopyAllItems\":\"無法複製所有項目\",\"dialog.cantCopyBecauseSomethingWentWrong\":\"由於發生錯誤，因此無法複製：\",\"dialog.cantCopyBecauseYouWereSignedOut\":\"由於您已登出，因此無法複製：\",\"dialog.cantCopyBecauseYouWereRemoved\":\"無法複製，因為您已從此專案中移除：\",\"dialog.cantCopyBecauseItemWasDeleted\":\"由於其他人已將此項目刪除，因此無法複製：\",\"dialog.cantCopyBecauseItemExists\":\"由於您嘗試複製到的位置已存在此項目，因此無法複製：\",\"dialog.cantMoveAllItems\":\"無法移動所有項目\",\"dialog.cantMoveBecauseSomethingWentWrong\":\"由於發生錯誤，因此無法移動：\",\"dialog.cantMoveBecauseYouWereSignedOut\":\"由於您已登出，因此無法移動：\",\"dialog.cantMoveBecauseYouWereRemoved\":\"無法移動，因為您已從此專案中移除：\",\"dialog.cantMoveBecauseItemWasDeleted\":\"由於其他人已將此項目刪除，因此無法移動：\",\"dialog.cantMoveBecauseItemExists\":\"由於您嘗試移動到的位置已存在此項目，因此無法移動：\",\"dialog.createFolder.error\":\"發生伺服器錯誤，無法儲存檔案夾\",\"dialog.createFolder.nameConflict\":\"您已擁有使用此名稱的檔案夾。\",\"dialog.createFolder.placeholder\":\"檔案夾名稱\",\"dialog.createFolder.title\":\"建立檔案夾\",\"dialog.createFolder.success\":\"已成功建立檔案夾\",\"dialog.createWeblink.error\":\"不支援的 URL\",\"dialog.createWeblink.tooManyRequests\":\"發生非預期的網路錯誤。請再試一次。\",\"dialog.createWeblink.success\":\"1 個項目已新增\",\"dialog.createWeblink.nameConflict\":\"此標題已經存在\",\"dialog.createWeblink.name.placeholder\":\"輸入此連結的名稱\",\"dialog.createWeblink.link.placeholder\":\"https://\",\"dialog.createWeblink.name\":\"自訂標題\",\"dialog.createWeblink.link\":\"連結\",\"dialog.createWeblink.title\":\"建立網頁連結\",\"app.type.webLink\":\"網頁連結\",\"dialog.createCanvas.error\":\"無法建立畫布\",\"dialog.move.title\":\"移動到專案「{projectName}」\",\"dialog.move.detail\":\"若移動此項目，可存取的人將隨之變更。\",\"moveToTeam.confirm.title\":\"移動到「{name}」工作區\",\"moveToTeam.confirm.message\":\"將您的專案移動到這裡將會變更可存取它們的人員。任何有權存取您工作區的人都可以存取您的專案。\",\"moveToTeam.disabled.differentOrg.tooltip.message\":\"您不得將專案移動到不同組織的工作區中。\",\"moveToSpace.disabled.differentOrg.tooltip.message\":\"您不得將項目移動到不同組織的專案中。\",\"moveToTeam.success\":\"您已將 {count, plural, =1 {# 個專案} other {# 個專案}}移動到「{name}」工作區\",\"confirmationDialog.dontShowAgain\":\"不再顯示\",\"dialog.open.title\":\"在網頁上開啟\",\"dialog.open.detail\":\"您無法在 {appName} 中開啟這個檔案，但您可以在瀏覽器中存取它。\",\"dialog.renameTeam.title\":\"重新命名工作區\",\"dialog.renameTeam.placeholder\":\"輸入此工作區的名稱\",\"dialog.renameTeam.error\":\"抱歉，發生錯誤。\",\"dialog.renameTeam.nameConflict\":\"此名稱已存在\",\"dialog.archiveTeam.title\":\"是否要刪除此工作區?\",\"dialog.archiveTeam.detail\":\"如果您移除自己，您將無法還原此動作。如果您想要重新加入此工作區，請聯絡管理員。\",\"dialog.saveToCloud.title\":\"檔案已儲存至 Creative Cloud\",\"dialog.saveToCloud.detail\":\"您的雲端文件現在提供版本記錄、邀請和共同編輯、在其他裝置上即時存取等功能。您可以在這裡及 Creative Cloud 應用程式中找到它。\",\"input.invalidCharInput\":\"名稱不得包含下列字元：\\\\\\\\ / * ? \\\" | :\",\"input.invalidEmptyInput\":\"{names, select, true {名稱} other {標題}}不得為空白\",\"input.nameTooLong\":\"{names, select, true {名稱} other {標題}}不得超過 {maxLength} 個字元\",\"input.nameEndsWithDot\":\"{names, select, true {名稱} other {標題}}不得以句號結尾\",\"input.weblink.nameRestricted\":\"網頁連結不能具有以下標題：con、prn、aux、nul、com#、lpt#\",\"input.nameRestricted\":\"資產不能具有以下名稱：con/prn/aux/nul/com#/lpt#\",\"input.weblink.invalidCharInput\":\"標題不得僅包含空格，也不能包含下列字元：\\\\\\\\ / * ? \\\" | : < > \",\"input.name.invalidCharInput\":\"名稱不得僅包含空格，也不能包含下列字元：\\\\\\\\ / * ? \\\" | : < > \",\"cdpFooter.orphanedArtifactsWarning\":\"與您要移動的項目連接的已發佈連結將會保留在原始專案中\",\"cdpFooter.libraryPrivacyWarning\":\"如果您擁有所新增資料庫的重新共用權限，則此專案的成員將能夠檢視該資料庫\",\"toast.beforeOp.error.documentIsOpen\":\"關閉{count, plural, =1 {文件} other {文件}}以執行此動作。\",\"app.type.designSpecs\":\"設計規格\",\"app.type.prototype\":\"原型\",\"app.type.publishedLink\":\"已發佈連結\",\"popover.header\":\"與他人合作進行專案，並分享您的作品以取得回饋意見。\",\"popover.linkout\":\"了解更多\",\"team.libraries.filter.all\":\"全部\",\"team.libraries.filter.addedToYourLibraries\":\"新增至您的資料庫\",\"team.libraries.filter.notAdded\":\"未新增\",\"team.spaces.filter.all\":\"全部\",\"team.spaces.filter.favorited\":\"已加入我的最愛\",\"team.filter.empty.heading\":\"沒有與所選篩選器相符的專案\",\"team.filter.empty.description1\":\"我們在此清單中找不到與「\",\"team.filter.empty.description2\":\"」相符的結果。請檢查您的拼字，或嘗試使用其他關鍵字。\",\"team.filter.no.match.description\":\"我們在此清單中找不到結果。請檢查您的拼字，或嘗試使用其他篩選條件。\",\"team.filter.filterText\":\"{filter}\",\"team.header.other.teams\":\"其他工作區\",\"space.empty.heading\":\"所有內容都集中於一處，每個人都能掌握最新資訊\",\"space.empty.description\":\"用工作檔案和相關素材填滿此專案。同時邀請共同作業人員加入並新增他們正在處理的內容。\",\"space.empty.canvasHeading\":\"CREATIVE CLOUD CANVAS\",\"space.empty.actionsHeading\":\"將內容新增至您的專案\",\"space.empty.createCanvas\":\"新畫布\",\"space.empty.upload\":\"新增檔案\",\"space.empty.createFolder\":\"新檔案夾\",\"space.empty.createWeblink\":\"網頁連結\",\"space.empty.addResource\":\"資料庫\",\"folder.empty.heading\":\"這個檔案夾是空的。\",\"folder.empty.description\":\"開始新增檔案來填充它。\",\"folder.discard.heading\":\"此檔案夾已刪除。\",\"folder.discard.description\":\"如果您認為此訊息有誤，請聯絡您的管理員，或瀏覽其他內容。\",\"folder.error.description\":\"從此資料夾載入內容時發生問題。\",\"space.empty.section.createACanvas\":\"建立畫布\",\"tooltip.opensInBrowser\":\"在瀏覽器中開啟\",\"space.empty.workingFiles\":\"繼續新增至此專案\",\"space.empty.canvasPopoverTitle\":\"試用 Creative Cloud Canvas (Beta)\",\"space.empty.canvasPopoverContent\":\"使用畫布以配置、視覺化和檢閱創意作品。\",\"space.error.heading\":\"無法載入專案\",\"space.error.description\":\"從此專案載入內容時發生問題。\",\"createTeamWizard.createTeam.sidebarHeading\":\"建立工作區\",\"createTeamWizard.createTeam.sidebarCopy\":\"建立工作區，讓所有人都能獲得一致的資訊，並保持井然有序。\",\"createTeamWizard.createTeam.sidebarCopy.adminconsole\":\"設定您的團隊可以協作和共用檔案的地方。\",\"createTeamWizard.createTeam.sidebarLink\":\"深入了解\",\"createTeamWizard.createTeam.contentHeading\":\"新增工作區\",\"createTeamWizard.createTeam.loading\":\"正在建立「{name}」工作區\",\"createTeamWizard.inviteMembers.sidebarHeading\":\"邀請成員加入「{name}」工作區\",\"createTeamWizard.inviteMembers.sidebarCopy\":\"立即開始輸入姓名或電子郵件以邀請成員，或略過此步驟並稍後邀請他們。\",\"createTeamWizard.inviteMembers.loading\":\"正在邀請成員加入「{name}」工作區\",\"createTeamWizard.inviteMembers.contentHeading\":\"邀請成員\",\"createTeamWizard.inviteMembers.successToast\":\"成員已新增至新工作區\",\"createTeamWizard.progress\":\"步驟 {current}/{total}\",\"createTeamWizard.skipStep\":\"略過\",\"teamDialog.createTeam.label\":\"建立工作區\",\"teamDialog.createTeam.infoBox.description\":\"您建立的工作區僅限邀請加入，預設情況下新增的每位成員都具有編輯權限。\",\"teamDialog.editTeam.label\":\"編輯工作區\",\"teamDialog.nameSection.placeholder\":\"為您的新工作區命名\",\"teamDialog.nameSection.label\":\"工作區名稱\",\"teamDialog.permissionsSection.label\":\"哪些人可以編輯此工作區\",\"teamDialog.permissionsSection.option.onlyInvited\":\"僅限受邀人員\",\"teamDialog.descriptionSection.label\":\"工作區說明 (選擇性)\",\"teamDialog.descriptionSection.placeholder\":\"新增一些文字來描述您的工作區\",\"teamsSidebar.noTeams\":\"無工作區\",\"teamsSidebar.newTeamButton\":\"建立工作區\",\"teamsSidebar.adminTour.title\":\"新功能！建立工作區\",\"teamsSidebar.adminTour.content\":\"管理員現在可以在 Creative Cloud 網頁版中建立工作區，使共用作品的組織工作更輕鬆。\",\"teamsSidebarTeam.newSpaceButton\":\"新增專案\",\"teamsSidebarTeam.header.newBadge\":\"最新\",\"teamsSidebarTeam.header.otherTeams\":\"來自其他工作區\",\"teamsSidebarTeam.header.teams\":\"工作區\",\"teamsSidebarTeam.header.previewLabel\":\"(預覽)\",\"teamsSidebarTeam.header.previewCopy\":\"工作區和專案可在私人 Beta 版中使用。\",\"teamsSidebarTeam.header.previewLearnMoreText\":\"了解更多\",\"teamsSidebarTeam.message.loading\":\"正在載入...\",\"teamsSidebarTeam.message.noSpaces\":\"您沒有任何工作區或專案。\",\"teamsSidebarTeam.message.offline\":\"您已中斷連線。請重新連線以檢視您的工作區和專案。\",\"teamsSidebarTeam.message.error\":\"載入您的工作區和專案時發生問題。\",\"teams1up.error.description\":\"載入您的專案時發生問題。\",\"teams1up.error.heading\":\"無法載入專案\",\"otherTeams.emptyMessage.header\":\"無法檢視工作區頁面\",\"otherTeams.emptyMessage.description1\":\"有人已使用「\",\"otherTeams.emptyMessage.description2\":\"」區段將您從最後一個專案中移除，或您已離開該專案。如果您認為此訊息有誤，請聯絡您的管理員。\",\"spaceTour.step0.title\":\"您的專案就在這裡\",\"spaceTour.step0.content\":\"專案可協助團隊進行協作以及收集、組織和共用檔案和資源。\",\"spaceTour.step1.title\":\"新增您完成專案所需的一切\",\"spaceTour.step1.content\":\"將工作檔案、參考影像、資源等全都集中於一處。\",\"spaceTour.step2.title\":\"設定 (和忘記) 權限\",\"spaceTour.step2.content\":\"在您邀請共同作業人員時，為他們指派正確的權限以節省時間和麻煩。將僅限檢視的套件傳送給利害關係人以供審核並取得回饋意見。\",\"error.cantCreateSpace\":\"工作區儲存空間已滿\",\"error.exceedQuota.create.detail.description1\":\"您現在無法創作任何新內容。請選取「\",\"error.exceedQuota.description2\":\"」以釋放儲存空間。\",\"error.exceedQuota.add.detail.description1\":\"您現在無法新增任何新內容。請選取「\",\"error.move.generic\":\"由於發生錯誤，因此無法移動\",\"error.move.signedOut\":\"由於您已登出，因此無法移動\",\"error.move.permissionRevoked\":\"無法移動，因為您已從此專案中移除\",\"error.move.deleted\":\"由於其他人已刪除此項目，因此無法移動\",\"error.move.duplicate\":\"由於您嘗試移動到的位置已存在此項目，因此無法移動\",\"error.copy.generic\":\"由於發生錯誤，因此無法複製\",\"error.copy.signedOut\":\"由於您已登出，因此無法複製\",\"error.copy.permissionRevoked\":\"無法複製，因為您已從此專案中移除\",\"error.copy.deleted\":\"由於其他人已刪除此項目，因此無法複製\",\"error.copy.duplicate\":\"由於您嘗試複製到的位置已存在此項目，因此無法複製\",\"checkbox.select\":\"選擇\",\"listItem.fileSize\":\"檔案大小\",\"facepile.additionalMembers\":\"其他會員 +{count}\",\"facepile.memberName\":\"{name}，會員\",\"coachmark.information\":\"資訊\",\"toolbar.tools\":\"工具\",\"griditem.error.message\":\"無法擷取\",\"griditem.error.button\":\"重試\",\"ats.move.extendedNotification\":\"移動完成後，您便會收到通知。\",\"file.deleted.error.heading\":\"無法{operation}檔案\",\"file.deleted.error.description\":\"您無法{operation}此檔案，因為該檔案已刪除。請從「已刪除」中復原並再試一次，或選擇其他位置。\",\"file.deleted.rename.error.description\":\"您無法重新命名此檔案，因為該檔案已刪除。請選取「前往已刪除」以復原檔案。\"}");

/***/ }),

/***/ "GIgW":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* unused harmony export API_VERSION */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Hub; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return getCurrentHub; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return getHubFromCarrier; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return getMainCarrier; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return makeMain; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return setHubOnCarrier; });
/* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("9/Zf");
/* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("kdvv");
/* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("8LbN");
/* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("rbyU");
/* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("+A1k");
/* harmony import */ var _scope_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("vOz9");
/* harmony import */ var _session_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("v/92");



/**
 * API compatibility version of this hub.
 *
 * WARNING: This number should only be increased when the global interface
 * changes and new methods are introduced.
 *
 * @hidden
 */

const API_VERSION = 4;
/**
 * Default maximum number of breadcrumbs added to an event. Can be overwritten
 * with {@link Options.maxBreadcrumbs}.
 */

const DEFAULT_BREADCRUMBS = 100;
/**
 * A layer in the process stack.
 * @hidden
 */

/**
 * @inheritDoc
 */

class Hub {
  /** Is a {@link Layer}[] containing the client and scope */
  __init() {
    this._stack = [{}];
  }
  /** Contains the last event id of a captured event.  */

  /**
   * Creates a new instance of the hub, will push one {@link Layer} into the
   * internal stack on creation.
   *
   * @param client bound to the hub.
   * @param scope bound to the hub.
   * @param version number, higher number means higher priority.
   */


  constructor(client, scope = new _scope_js__WEBPACK_IMPORTED_MODULE_5__[/* Scope */ "a"](), _version = API_VERSION) {
    ;
    this._version = _version;

    Hub.prototype.__init.call(this);

    this.getStackTop().scope = scope;

    if (client) {
      this.bindClient(client);
    }
  }
  /**
   * @inheritDoc
   */


  isOlderThan(version) {
    return this._version < version;
  }
  /**
   * @inheritDoc
   */


  bindClient(client) {
    const top = this.getStackTop();
    top.client = client;

    if (client && client.setupIntegrations) {
      client.setupIntegrations();
    }
  }
  /**
   * @inheritDoc
   */


  pushScope() {
    // We want to clone the content of prev scope
    const scope = _scope_js__WEBPACK_IMPORTED_MODULE_5__[/* Scope */ "a"].clone(this.getScope());
    this.getStack().push({
      client: this.getClient(),
      scope
    });
    return scope;
  }
  /**
   * @inheritDoc
   */


  popScope() {
    if (this.getStack().length <= 1) return false;
    return !!this.getStack().pop();
  }
  /**
   * @inheritDoc
   */


  withScope(callback) {
    const scope = this.pushScope();

    try {
      callback(scope);
    } finally {
      this.popScope();
    }
  }
  /**
   * @inheritDoc
   */


  getClient() {
    return this.getStackTop().client;
  }
  /** Returns the scope of the top stack. */


  getScope() {
    return this.getStackTop().scope;
  }
  /** Returns the scope stack for domains or the process. */


  getStack() {
    return this._stack;
  }
  /** Returns the topmost scope layer in the order domain > local > process. */


  getStackTop() {
    return this._stack[this._stack.length - 1];
  }
  /**
   * @inheritDoc
   */
  // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types


  captureException(exception, hint) {
    const eventId = this._lastEventId = hint && hint.event_id ? hint.event_id : Object(_sentry_utils__WEBPACK_IMPORTED_MODULE_0__[/* uuid4 */ "f"])();
    const syntheticException = new Error('Sentry syntheticException');

    this._withClient((client, scope) => {
      client.captureException(exception, {
        originalException: exception,
        syntheticException,
        ...hint,
        event_id: eventId
      }, scope);
    });

    return eventId;
  }
  /**
   * @inheritDoc
   */


  captureMessage(message, // eslint-disable-next-line deprecation/deprecation
  level, hint) {
    const eventId = this._lastEventId = hint && hint.event_id ? hint.event_id : Object(_sentry_utils__WEBPACK_IMPORTED_MODULE_0__[/* uuid4 */ "f"])();
    const syntheticException = new Error(message);

    this._withClient((client, scope) => {
      client.captureMessage(message, level, {
        originalException: message,
        syntheticException,
        ...hint,
        event_id: eventId
      }, scope);
    });

    return eventId;
  }
  /**
   * @inheritDoc
   */


  captureEvent(event, hint) {
    const eventId = hint && hint.event_id ? hint.event_id : Object(_sentry_utils__WEBPACK_IMPORTED_MODULE_0__[/* uuid4 */ "f"])();

    if (event.type !== 'transaction') {
      this._lastEventId = eventId;
    }

    this._withClient((client, scope) => {
      client.captureEvent(event, { ...hint,
        event_id: eventId
      }, scope);
    });

    return eventId;
  }
  /**
   * @inheritDoc
   */


  lastEventId() {
    return this._lastEventId;
  }
  /**
   * @inheritDoc
   */


  addBreadcrumb(breadcrumb, hint) {
    const {
      scope,
      client
    } = this.getStackTop();
    if (!scope || !client) return; // eslint-disable-next-line @typescript-eslint/unbound-method

    const {
      beforeBreadcrumb = null,
      maxBreadcrumbs = DEFAULT_BREADCRUMBS
    } = client.getOptions && client.getOptions() || {};
    if (maxBreadcrumbs <= 0) return;
    const timestamp = Object(_sentry_utils__WEBPACK_IMPORTED_MODULE_1__[/* dateTimestampInSeconds */ "b"])();
    const mergedBreadcrumb = {
      timestamp,
      ...breadcrumb
    };
    const finalBreadcrumb = beforeBreadcrumb ? Object(_sentry_utils__WEBPACK_IMPORTED_MODULE_2__[/* consoleSandbox */ "b"])(() => beforeBreadcrumb(mergedBreadcrumb, hint)) : mergedBreadcrumb;
    if (finalBreadcrumb === null) return;
    scope.addBreadcrumb(finalBreadcrumb, maxBreadcrumbs);
  }
  /**
   * @inheritDoc
   */


  setUser(user) {
    const scope = this.getScope();
    if (scope) scope.setUser(user);
  }
  /**
   * @inheritDoc
   */


  setTags(tags) {
    const scope = this.getScope();
    if (scope) scope.setTags(tags);
  }
  /**
   * @inheritDoc
   */


  setExtras(extras) {
    const scope = this.getScope();
    if (scope) scope.setExtras(extras);
  }
  /**
   * @inheritDoc
   */


  setTag(key, value) {
    const scope = this.getScope();
    if (scope) scope.setTag(key, value);
  }
  /**
   * @inheritDoc
   */


  setExtra(key, extra) {
    const scope = this.getScope();
    if (scope) scope.setExtra(key, extra);
  }
  /**
   * @inheritDoc
   */
  // eslint-disable-next-line @typescript-eslint/no-explicit-any


  setContext(name, context) {
    const scope = this.getScope();
    if (scope) scope.setContext(name, context);
  }
  /**
   * @inheritDoc
   */


  configureScope(callback) {
    const {
      scope,
      client
    } = this.getStackTop();

    if (scope && client) {
      callback(scope);
    }
  }
  /**
   * @inheritDoc
   */


  run(callback) {
    const oldHub = makeMain(this);

    try {
      callback(this);
    } finally {
      makeMain(oldHub);
    }
  }
  /**
   * @inheritDoc
   */


  getIntegration(integration) {
    const client = this.getClient();
    if (!client) return null;

    try {
      return client.getIntegration(integration);
    } catch (_oO) {
      (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && _sentry_utils__WEBPACK_IMPORTED_MODULE_2__[/* logger */ "c"].warn(`Cannot retrieve integration ${integration.id} from the current Hub`);
      return null;
    }
  }
  /**
   * @inheritDoc
   */


  startTransaction(context, customSamplingContext) {
    return this._callExtensionMethod('startTransaction', context, customSamplingContext);
  }
  /**
   * @inheritDoc
   */


  traceHeaders() {
    return this._callExtensionMethod('traceHeaders');
  }
  /**
   * @inheritDoc
   */


  captureSession(endSession = false) {
    // both send the update and pull the session from the scope
    if (endSession) {
      return this.endSession();
    } // only send the update


    this._sendSessionUpdate();
  }
  /**
   * @inheritDoc
   */


  endSession() {
    const layer = this.getStackTop();
    const scope = layer && layer.scope;
    const session = scope && scope.getSession();

    if (session) {
      Object(_session_js__WEBPACK_IMPORTED_MODULE_6__[/* closeSession */ "a"])(session);
    }

    this._sendSessionUpdate(); // the session is over; take it off of the scope


    if (scope) {
      scope.setSession();
    }
  }
  /**
   * @inheritDoc
   */


  startSession(context) {
    const {
      scope,
      client
    } = this.getStackTop();
    const {
      release,
      environment
    } = client && client.getOptions() || {}; // Will fetch userAgent if called from browser sdk

    const {
      userAgent
    } = _sentry_utils__WEBPACK_IMPORTED_MODULE_3__[/* GLOBAL_OBJ */ "a"].navigator || {};
    const session = Object(_session_js__WEBPACK_IMPORTED_MODULE_6__[/* makeSession */ "b"])({
      release,
      environment,
      ...(scope && {
        user: scope.getUser()
      }),
      ...(userAgent && {
        userAgent
      }),
      ...context
    });

    if (scope) {
      // End existing session if there's one
      const currentSession = scope.getSession && scope.getSession();

      if (currentSession && currentSession.status === 'ok') {
        Object(_session_js__WEBPACK_IMPORTED_MODULE_6__[/* updateSession */ "c"])(currentSession, {
          status: 'exited'
        });
      }

      this.endSession(); // Afterwards we set the new session on the scope

      scope.setSession(session);
    }

    return session;
  }
  /**
   * Returns if default PII should be sent to Sentry and propagated in ourgoing requests
   * when Tracing is used.
   */


  shouldSendDefaultPii() {
    const client = this.getClient();
    const options = client && client.getOptions();
    return Boolean(options && options.sendDefaultPii);
  }
  /**
   * Sends the current Session on the scope
   */


  _sendSessionUpdate() {
    const {
      scope,
      client
    } = this.getStackTop();
    if (!scope) return;
    const session = scope.getSession();

    if (session) {
      if (client && client.captureSession) {
        client.captureSession(session);
      }
    }
  }
  /**
   * Internal helper function to call a method on the top client if it exists.
   *
   * @param method The method to call on the client.
   * @param args Arguments to pass to the client function.
   */


  _withClient(callback) {
    const {
      scope,
      client
    } = this.getStackTop();

    if (client) {
      callback(client, scope);
    }
  }
  /**
   * Calls global extension method and binding current instance to the function call
   */
  // @ts-ignore Function lacks ending return statement and return type does not include 'undefined'. ts(2366)
  // eslint-disable-next-line @typescript-eslint/no-explicit-any


  _callExtensionMethod(method, ...args) {
    const carrier = getMainCarrier();
    const sentry = carrier.__SENTRY__;

    if (sentry && sentry.extensions && typeof sentry.extensions[method] === 'function') {
      return sentry.extensions[method].apply(this, args);
    }

    (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && _sentry_utils__WEBPACK_IMPORTED_MODULE_2__[/* logger */ "c"].warn(`Extension method ${method} couldn't be found, doing nothing.`);
  }

}
/**
 * Returns the global shim registry.
 *
 * FIXME: This function is problematic, because despite always returning a valid Carrier,
 * it has an optional `__SENTRY__` property, which then in turn requires us to always perform an unnecessary check
 * at the call-site. We always access the carrier through this function, so we can guarantee that `__SENTRY__` is there.
 **/


function getMainCarrier() {
  _sentry_utils__WEBPACK_IMPORTED_MODULE_3__[/* GLOBAL_OBJ */ "a"].__SENTRY__ = _sentry_utils__WEBPACK_IMPORTED_MODULE_3__[/* GLOBAL_OBJ */ "a"].__SENTRY__ || {
    extensions: {},
    hub: undefined
  };
  return _sentry_utils__WEBPACK_IMPORTED_MODULE_3__[/* GLOBAL_OBJ */ "a"];
}
/**
 * Replaces the current main hub with the passed one on the global object
 *
 * @returns The old replaced hub
 */


function makeMain(hub) {
  const registry = getMainCarrier();
  const oldHub = getHubFromCarrier(registry);
  setHubOnCarrier(registry, hub);
  return oldHub;
}
/**
 * Returns the default hub instance.
 *
 * If a hub is already registered in the global carrier but this module
 * contains a more recent version, it replaces the registered version.
 * Otherwise, the currently registered hub will be returned.
 */


function getCurrentHub() {
  // Get main carrier (global for every environment)
  const registry = getMainCarrier(); // If there's no hub, or its an old API, assign a new one

  if (!hasHubOnCarrier(registry) || getHubFromCarrier(registry).isOlderThan(API_VERSION)) {
    setHubOnCarrier(registry, new Hub());
  } // Prefer domains over global if they are there (applicable only to Node environment)


  if (Object(_sentry_utils__WEBPACK_IMPORTED_MODULE_4__[/* isNodeEnv */ "b"])()) {
    return getHubFromActiveDomain(registry);
  } // Return hub that lives on a global object


  return getHubFromCarrier(registry);
}
/**
 * Try to read the hub from an active domain, and fallback to the registry if one doesn't exist
 * @returns discovered hub
 */


function getHubFromActiveDomain(registry) {
  try {
    const sentry = getMainCarrier().__SENTRY__;

    const activeDomain = sentry && sentry.extensions && sentry.extensions.domain && sentry.extensions.domain.active; // If there's no active domain, just return global hub

    if (!activeDomain) {
      return getHubFromCarrier(registry);
    } // If there's no hub on current domain, or it's an old API, assign a new one


    if (!hasHubOnCarrier(activeDomain) || getHubFromCarrier(activeDomain).isOlderThan(API_VERSION)) {
      const registryHubTopStack = getHubFromCarrier(registry).getStackTop();
      setHubOnCarrier(activeDomain, new Hub(registryHubTopStack.client, _scope_js__WEBPACK_IMPORTED_MODULE_5__[/* Scope */ "a"].clone(registryHubTopStack.scope)));
    } // Return hub that lives on a domain


    return getHubFromCarrier(activeDomain);
  } catch (_Oo) {
    // Return hub that lives on a global object
    return getHubFromCarrier(registry);
  }
}
/**
 * This will tell whether a carrier has a hub on it or not
 * @param carrier object
 */


function hasHubOnCarrier(carrier) {
  return !!(carrier && carrier.__SENTRY__ && carrier.__SENTRY__.hub);
}
/**
 * This will create a new {@link Hub} and add to the passed object on
 * __SENTRY__.hub.
 * @param carrier object
 * @hidden
 */


function getHubFromCarrier(carrier) {
  return Object(_sentry_utils__WEBPACK_IMPORTED_MODULE_3__[/* getGlobalSingleton */ "c"])('hub', () => new Hub(), carrier);
}
/**
 * This will set passed {@link Hub} on the passed object's __SENTRY__.hub attribute
 * @param carrier object
 * @param hub Hub
 * @returns A boolean indicating success or failure
 */


function setHubOnCarrier(carrier, hub) {
  if (!carrier) return false;

  const __SENTRY__ = carrier.__SENTRY__ = carrier.__SENTRY__ || {};

  __SENTRY__.hub = hub;
  return true;
}



/***/ }),

/***/ "GOZC":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("path", {
  d: "M24.827 2.741l5.5 14.559 15.547.736a1.031 1.031 0 0 1 .6 1.834L34.33 29.6l4.1 15.014a1.031 1.031 0 0 1-1.56 1.133l-13.007-8.538-13.011 8.543a1.031 1.031 0 0 1-1.56-1.133L13.4 29.6 1.251 19.87a1.031 1.031 0 0 1 .6-1.834l15.543-.736L22.9 2.741a1.031 1.031 0 0 1 1.927 0z"
}));

/***/ }),

/***/ "GOzd":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var str = "razdwatrzy";

module.exports = function () {
  if (typeof str.contains !== "function") return false;
  return str.contains("dwa") === true && str.contains("foo") === false;
};

/***/ }),

/***/ "GPKx":
/***/ (function(module) {

module.exports = JSON.parse("{\"close\":\"Stäng\",\"error\":\"Fel\",\"info\":\"Information\",\"success\":\"Lyckades\",\"warning\":\"Varning\"}");

/***/ }),

/***/ "GQeE":
/***/ (function(module, exports, __webpack_require__) {

module.exports = {
  "default": __webpack_require__("iq4v"),
  __esModule: true
};

/***/ }),

/***/ "GXLr":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// UNUSED EXPORTS: CDOHeaderForTests

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__("q1tI");

// EXTERNAL MODULE: ./node_modules/mobx-react/index.module.js
var index_module = __webpack_require__("okNM");

// EXTERNAL MODULE: ./node_modules/classnames/index.js
var classnames = __webpack_require__("TSYQ");
var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Wait/index.js
var Wait = __webpack_require__("czhh");
var Wait_default = /*#__PURE__*/__webpack_require__.n(Wait);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/OverlayTrigger/index.js
var OverlayTrigger = __webpack_require__("uYrR");
var OverlayTrigger_default = /*#__PURE__*/__webpack_require__.n(OverlayTrigger);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Popover/index.js
var Popover = __webpack_require__("pyUw");
var Popover_default = /*#__PURE__*/__webpack_require__.n(Popover);

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/HelpOutline/index.js
var HelpOutline = __webpack_require__("lOID");
var HelpOutline_default = /*#__PURE__*/__webpack_require__.n(HelpOutline);

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/LinkOut/index.js
var LinkOut = __webpack_require__("mStE");
var LinkOut_default = /*#__PURE__*/__webpack_require__.n(LinkOut);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Heading/index.js
var Heading = __webpack_require__("8bOP");
var Heading_default = /*#__PURE__*/__webpack_require__.n(Heading);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Button/index.js
var Button = __webpack_require__("Cn9g");
var Button_default = /*#__PURE__*/__webpack_require__.n(Button);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/ButtonGroup/index.js
var ButtonGroup = __webpack_require__("VXw4");
var ButtonGroup_default = /*#__PURE__*/__webpack_require__.n(ButtonGroup);

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/ClassicGridView/index.js
var ClassicGridView = __webpack_require__("VZJT");
var ClassicGridView_default = /*#__PURE__*/__webpack_require__.n(ClassicGridView);

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/ViewList/index.js
var ViewList = __webpack_require__("EpQn");
var ViewList_default = /*#__PURE__*/__webpack_require__.n(ViewList);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/constants.ts
var constants = __webpack_require__("a375");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/components/ViewToggles.tsx






/**
 * Component for displaying list and grid view toggle buttons
 */
function ViewToggles(props) {
    const { disabled = false, viewMode, onViewModeChange } = props;
    return (react["createElement"](ButtonGroup_default.a, { className: "viewToggleGroup", value: viewMode, manageTabIndex: true, disabled: disabled, onChange: onViewModeChange },
        react["createElement"](Button_default.a, { value: constants["v" /* ViewMode */].List, icon: react["createElement"](ViewList_default.a, null), id: "ViewToggles_viewListButton" }),
        react["createElement"](Button_default.a, { value: constants["v" /* ViewMode */].Grid, icon: react["createElement"](ClassicGridView_default.a, null), id: "ViewToggles_viewGridButton" })));
}
/* harmony default export */ var components_ViewToggles = (ViewToggles);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Tooltip/index.js
var Tooltip = __webpack_require__("DUuf");
var Tooltip_default = /*#__PURE__*/__webpack_require__.n(Tooltip);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/types/CDOReactIntlTyped.ts
var CDOReactIntlTyped = __webpack_require__("dSAe");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/components/ActionButton.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe Systems Incorporated
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any. The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/






class ActionButton_ActionButton extends react["Component"] {
    constructor() {
        super(...arguments);
        this.onClick = () => {
            const { onClick, action } = this.props;
            onClick(action);
        };
    }
    render() {
        const { intl, action, enabled, disabledTooltipMsgId, withoutLabel = false } = this.props;
        const labelText = action.label && !withoutLabel ? intl.formatMessage({ id: action.label }) : null;
        return (react["createElement"](OverlayTrigger_default.a, { className: "ActionButton_Overlay", placement: "top", disabled: enabled, trigger: ['hover'], delayShow: constants["e" /* DEFAULT_TOOLTIP_DELAY */] },
            react["createElement"](Button_default.a, { id: `ActionButton_${action.value}`, variant: action.buttonVariant, quiet: action.buttonQuiet, icon: action.icon, onClick: this.onClick, label: labelText, disabled: !enabled }),
            react["createElement"](Tooltip_default.a, null,
                react["createElement"](CDOReactIntlTyped["a" /* FormattedMessage */], { id: disabledTooltipMsgId }))));
    }
}
/* harmony default export */ var components_ActionButton = (Object(CDOReactIntlTyped["e" /* injectIntl */])(ActionButton_ActionButton));


// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/BackButton.tsx
var BackButton = __webpack_require__("PZGz");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/CDOLink.tsx
var CDOLink = __webpack_require__("b3kR");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/stores/SelectionStore.ts
var SelectionStore = __webpack_require__("7XYX");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/BetaTag.tsx
var BetaTag = __webpack_require__("Bg70");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/stop-propagation.ts
var stop_propagation = __webpack_require__("hLgr");

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Search/index.js
var Search = __webpack_require__("sfxt");
var Search_default = /*#__PURE__*/__webpack_require__.n(Search);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/styles/Filter.css
var styles_Filter = __webpack_require__("f2TY");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/components/Filter.tsx
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;
};
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/





let Filter_Filter = class Filter extends react["Component"] {
    /**
     * Component renderer.
     * @return {ReactElement} markup
     */
    render() {
        const { filterString, onFilterChange, intl } = this.props;
        return (react["createElement"]("div", { className: "filter" },
            react["createElement"]("div", { className: "label" }, intl.formatMessage({
                id: 'filter.title',
            })),
            react["createElement"](Search_default.a, { icon: null, 
                //  This is a workaround to handle the input and overlay overlap issues in Ps and Ai
                //  https://wiki.corp.adobe.com/pages/viewpage.action?spaceKey=UXP&title=Proposal+for+overlapping+textedit+and+overlays
                //  https://wiki.corp.adobe.com/display/UXP/PS+UXP+Overlay+Issues
                disableOnOverlay: true, className: "filterInput", id: "Search_filterInput", defaultValue: filterString, onChange: onFilterChange, quiet: true, placeholder: intl.formatMessage({
                    id: 'filter.prompt',
                }) })));
    }
};
Filter_Filter = __decorate([
    index_module["e" /* observer */]
], Filter_Filter);
/* harmony default export */ var components_Filter = (Object(CDOReactIntlTyped["e" /* injectIntl */])(Filter_Filter));


// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/styles/CDOHeader.css
var styles_CDOHeader = __webpack_require__("eWHg");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/components/CDOHeader.tsx
var CDOHeader_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;
};
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe Systems Incorporated
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any. The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
// eslint-disable-next-line max-classes-per-file




















let CDOHeader_CDOHeader = class CDOHeader extends react["Component"] {
    constructor() {
        super(...arguments);
        this.onButtonClick = (action) => {
            this.props.onActionButtonClick(action);
        };
    }
    renderToolbarItem(toolbarItem, index, actionClickHandler, withoutLabel = false) {
        const { selectionStore } = this.props;
        // Hidden item represented as falsey
        if (!toolbarItem) {
            return null;
        }
        if (toolbarItem.isVisible && !toolbarItem.isVisible(selectionStore)) {
            return null;
        }
        return (react["createElement"](components_ActionButton, { key: toolbarItem.value, action: toolbarItem, withoutLabel: withoutLabel, onClick: actionClickHandler, enabled: toolbarItem.isEnabled(selectionStore), disabledTooltipMsgId: toolbarItem.getDisabledTooltipMsgId(selectionStore) }));
    }
    renderToolbarSet(actionItems, actionClickHandler, withoutLabel = false) {
        if (actionItems) {
            return actionItems.map((item, index) => this.renderToolbarItem(
            // TODO: UNDO (https://jira.corp.adobe.com/browse/CCXCD-10752)
            typeof item === 'function' ? item() : item, index, actionClickHandler, withoutLabel));
        }
    }
    renderToolbarSeparator(actions) {
        const { selectionStore } = this.props;
        const hasVisibleActions = actions.find((action) => 
        // TODO: UNDO (https://jira.corp.adobe.com/browse/CCXCD-10752)
        (typeof action === 'function' ? action() : action).isVisible(selectionStore));
        if (hasVisibleActions) {
            return react["createElement"]("div", { className: "toolbarItemSeparator" });
        }
    }
    render() {
        const { intl } = this.props;
        const { currentFolderActions, onFolderActionClick, toolbarItems, elements, headingMsgId, hideButtons, selectionStore, currentPath, onPathClick, onBetaFeedbackTextClick, betaMode, isLoadingAdditionalContent, infoTooltip, viewMode, disabled = false, onViewModeChange, showInfoIcon, enableFilter, filterString, onFilterChange, } = this.props;
        const selectedItemsCount = selectionStore.selectedElements.length;
        // only show selectionCount when multiselect is available
        const hideSelectionCount = selectionStore.selectionBehavior.single;
        const hasElements = Boolean(elements && elements.length > 0);
        const hasSelections = Object(SelectionStore["c" /* hasAny */])(selectionStore);
        const msgId = hasSelections ? 'header.SelectedDocuments' : headingMsgId;
        return (react["createElement"]("div", { className: "CDOHeader" },
            react["createElement"]("div", { className: "toolbar" },
                react["createElement"](Heading_default.a, { variant: "subtitle1", className: classnames_default()({
                        hasSelections: hasSelections && !hideSelectionCount,
                    }), id: msgId }, hasSelections && !hideSelectionCount ? (react["createElement"](CDOReactIntlTyped["a" /* FormattedMessage */], { id: msgId, values: { numSelected: selectedItemsCount } })) : (react["createElement"](BackButton["a" /* default */], { title: intl.formatMessage({ id: headingMsgId }), currentPath: currentPath, onPathClick: onPathClick }))),
                currentPath === constants["q" /* ROOT_FOLDER_PATH */] && infoTooltip && showInfoIcon && (react["createElement"](OverlayTrigger_default.a, { trigger: "hover", offset: -10, placement: "bottom", delayShow: constants["e" /* DEFAULT_TOOLTIP_DELAY */] },
                    react["createElement"]("span", { className: "infoIconWrapper" },
                        react["createElement"](HelpOutline_default.a, { className: "infoIcon" })),
                    react["createElement"](Popover_default.a, { id: "CDOHeader_infoPopover" },
                        react["createElement"](CDOReactIntlTyped["a" /* FormattedMessage */], { id: infoTooltip.bodyId }),
                        infoTooltip.link && (react["createElement"]("div", { onClick: stop_propagation["a" /* default */] },
                            react["createElement"](CDOLink["a" /* default */], { className: "learnMoreLink", href: infoTooltip.link, id: "CDOHeader_infoPopover_link" },
                                react["createElement"](CDOReactIntlTyped["a" /* FormattedMessage */], { id: "header.infoPopover.link" }),
                                react["createElement"](LinkOut_default.a, { size: "XS" }))))))),
                isLoadingAdditionalContent && react["createElement"](Wait_default.a, { size: "S", className: "loadingIndicator" }),
                !hasSelections && betaMode && react["createElement"](BetaTag["a" /* default */], null),
                react["createElement"]("div", { className: "rightToolbar" },
                    enableFilter && hasElements && (react["createElement"](components_Filter, { filterString: filterString, onFilterChange: onFilterChange })),
                    !hideButtons && (react["createElement"]("div", { className: "buttons", id: "CDOHeader_ToolbarButtons" }, hasSelections ? (this.renderToolbarSet(toolbarItems, this.onButtonClick)) : (react["createElement"](react["Fragment"], null,
                        betaMode && (react["createElement"]("div", { onClick: () => onBetaFeedbackTextClick === null || onBetaFeedbackTextClick === void 0 ? void 0 : onBetaFeedbackTextClick(), className: "betaFeedbackText" },
                            react["createElement"](CDOReactIntlTyped["a" /* FormattedMessage */], { id: "beta.feedback.link" }))),
                        this.renderToolbarSet(currentFolderActions, onFolderActionClick, true),
                        this.renderToolbarSeparator(currentFolderActions),
                        react["createElement"](components_ViewToggles, { disabled: disabled, viewMode: viewMode, onViewModeChange: onViewModeChange })))))))));
    }
};
CDOHeader_CDOHeader.defaultProps = {
    currentFolderActions: [],
};
CDOHeader_CDOHeader = CDOHeader_decorate([
    index_module["e" /* observer */]
], CDOHeader_CDOHeader);
/* harmony default export */ var components_CDOHeader = __webpack_exports__["a"] = (Object(CDOReactIntlTyped["e" /* injectIntl */])(CDOHeader_CDOHeader));



/***/ }),

/***/ "GXib":
/***/ (function(module) {

module.exports = JSON.parse("{\"(optional)\":\"(optional)\",\"(required)\":\"(erforderlich)\"}");

/***/ }),

/***/ "GXpm":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return ShareSheetType; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ShareSheetCallbackType; });
const ShareSheetType = {
    canvas: 'canvas',
    space: 'space',
    spaceArtifact: 'spaceArtifact',
    spaceDocument: 'spaceDocument',
    team: 'team',
};
var ShareSheetCallbackType;
(function (ShareSheetCallbackType) {
    ShareSheetCallbackType["COLLABORATOR_COUNT"] = "collaboratorCountUpdate";
    ShareSheetCallbackType["COLLABORATORS_CHANGE"] = "collaboratorsChange";
    ShareSheetCallbackType["INVITE_SENT"] = "inviteSent";
    ShareSheetCallbackType["INVITE_FULFILLED"] = "inviteFulfilled";
    ShareSheetCallbackType["MESSAGE_REQUEST"] = "messageRequest";
    ShareSheetCallbackType["PERMISSION_REVOKED"] = "permissionRevoked";
    ShareSheetCallbackType["ON_CLOSE"] = "onClose";
})(ShareSheetCallbackType || (ShareSheetCallbackType = {}));


/***/ }),

/***/ "GYWy":
/***/ (function(module, exports, __webpack_require__) {

/* WEBPACK VAR INJECTION */(function(module, global) {var __WEBPACK_AMD_DEFINE_RESULT__;/*! https://mths.be/punycode v1.4.1 by @mathias */
;

(function (root) {
  /** Detect free variables */
  var freeExports =  true && exports && !exports.nodeType && exports;
  var freeModule =  true && module && !module.nodeType && module;
  var freeGlobal = typeof global == 'object' && global;

  if (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal || freeGlobal.self === freeGlobal) {
    root = freeGlobal;
  }
  /**
   * The `punycode` object.
   * @name punycode
   * @type Object
   */


  var punycode,

  /** Highest positive signed 32-bit float value */
  maxInt = 2147483647,
      // aka. 0x7FFFFFFF or 2^31-1

  /** Bootstring parameters */
  base = 36,
      tMin = 1,
      tMax = 26,
      skew = 38,
      damp = 700,
      initialBias = 72,
      initialN = 128,
      // 0x80
  delimiter = '-',
      // '\x2D'

  /** Regular expressions */
  regexPunycode = /^xn--/,
      regexNonASCII = /[^\x20-\x7E]/,
      // unprintable ASCII chars + non-ASCII chars
  regexSeparators = /[\x2E\u3002\uFF0E\uFF61]/g,
      // RFC 3490 separators

  /** Error messages */
  errors = {
    'overflow': 'Overflow: input needs wider integers to process',
    'not-basic': 'Illegal input >= 0x80 (not a basic code point)',
    'invalid-input': 'Invalid input'
  },

  /** Convenience shortcuts */
  baseMinusTMin = base - tMin,
      floor = Math.floor,
      stringFromCharCode = String.fromCharCode,

  /** Temporary variable */
  key;
  /*--------------------------------------------------------------------------*/

  /**
   * A generic error utility function.
   * @private
   * @param {String} type The error type.
   * @returns {Error} Throws a `RangeError` with the applicable error message.
   */

  function error(type) {
    throw new RangeError(errors[type]);
  }
  /**
   * A generic `Array#map` utility function.
   * @private
   * @param {Array} array The array to iterate over.
   * @param {Function} callback The function that gets called for every array
   * item.
   * @returns {Array} A new array of values returned by the callback function.
   */


  function map(array, fn) {
    var length = array.length;
    var result = [];

    while (length--) {
      result[length] = fn(array[length]);
    }

    return result;
  }
  /**
   * A simple `Array#map`-like wrapper to work with domain name strings or email
   * addresses.
   * @private
   * @param {String} domain The domain name or email address.
   * @param {Function} callback The function that gets called for every
   * character.
   * @returns {Array} A new string of characters returned by the callback
   * function.
   */


  function mapDomain(string, fn) {
    var parts = string.split('@');
    var result = '';

    if (parts.length > 1) {
      // In email addresses, only the domain name should be punycoded. Leave
      // the local part (i.e. everything up to `@`) intact.
      result = parts[0] + '@';
      string = parts[1];
    } // Avoid `split(regex)` for IE8 compatibility. See #17.


    string = string.replace(regexSeparators, '\x2E');
    var labels = string.split('.');
    var encoded = map(labels, fn).join('.');
    return result + encoded;
  }
  /**
   * Creates an array containing the numeric code points of each Unicode
   * character in the string. While JavaScript uses UCS-2 internally,
   * this function will convert a pair of surrogate halves (each of which
   * UCS-2 exposes as separate characters) into a single code point,
   * matching UTF-16.
   * @see `punycode.ucs2.encode`
   * @see <https://mathiasbynens.be/notes/javascript-encoding>
   * @memberOf punycode.ucs2
   * @name decode
   * @param {String} string The Unicode input string (UCS-2).
   * @returns {Array} The new array of code points.
   */


  function ucs2decode(string) {
    var output = [],
        counter = 0,
        length = string.length,
        value,
        extra;

    while (counter < length) {
      value = string.charCodeAt(counter++);

      if (value >= 0xD800 && value <= 0xDBFF && counter < length) {
        // high surrogate, and there is a next character
        extra = string.charCodeAt(counter++);

        if ((extra & 0xFC00) == 0xDC00) {
          // low surrogate
          output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);
        } else {
          // unmatched surrogate; only append this code unit, in case the next
          // code unit is the high surrogate of a surrogate pair
          output.push(value);
          counter--;
        }
      } else {
        output.push(value);
      }
    }

    return output;
  }
  /**
   * Creates a string based on an array of numeric code points.
   * @see `punycode.ucs2.decode`
   * @memberOf punycode.ucs2
   * @name encode
   * @param {Array} codePoints The array of numeric code points.
   * @returns {String} The new Unicode string (UCS-2).
   */


  function ucs2encode(array) {
    return map(array, function (value) {
      var output = '';

      if (value > 0xFFFF) {
        value -= 0x10000;
        output += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);
        value = 0xDC00 | value & 0x3FF;
      }

      output += stringFromCharCode(value);
      return output;
    }).join('');
  }
  /**
   * Converts a basic code point into a digit/integer.
   * @see `digitToBasic()`
   * @private
   * @param {Number} codePoint The basic numeric code point value.
   * @returns {Number} The numeric value of a basic code point (for use in
   * representing integers) in the range `0` to `base - 1`, or `base` if
   * the code point does not represent a value.
   */


  function basicToDigit(codePoint) {
    if (codePoint - 48 < 10) {
      return codePoint - 22;
    }

    if (codePoint - 65 < 26) {
      return codePoint - 65;
    }

    if (codePoint - 97 < 26) {
      return codePoint - 97;
    }

    return base;
  }
  /**
   * Converts a digit/integer into a basic code point.
   * @see `basicToDigit()`
   * @private
   * @param {Number} digit The numeric value of a basic code point.
   * @returns {Number} The basic code point whose value (when used for
   * representing integers) is `digit`, which needs to be in the range
   * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is
   * used; else, the lowercase form is used. The behavior is undefined
   * if `flag` is non-zero and `digit` has no uppercase form.
   */


  function digitToBasic(digit, flag) {
    //  0..25 map to ASCII a..z or A..Z
    // 26..35 map to ASCII 0..9
    return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);
  }
  /**
   * Bias adaptation function as per section 3.4 of RFC 3492.
   * https://tools.ietf.org/html/rfc3492#section-3.4
   * @private
   */


  function adapt(delta, numPoints, firstTime) {
    var k = 0;
    delta = firstTime ? floor(delta / damp) : delta >> 1;
    delta += floor(delta / numPoints);

    for (; delta > baseMinusTMin * tMax >> 1; k += base) {
      delta = floor(delta / baseMinusTMin);
    }

    return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));
  }
  /**
   * Converts a Punycode string of ASCII-only symbols to a string of Unicode
   * symbols.
   * @memberOf punycode
   * @param {String} input The Punycode string of ASCII-only symbols.
   * @returns {String} The resulting string of Unicode symbols.
   */


  function decode(input) {
    // Don't use UCS-2
    var output = [],
        inputLength = input.length,
        out,
        i = 0,
        n = initialN,
        bias = initialBias,
        basic,
        j,
        index,
        oldi,
        w,
        k,
        digit,
        t,

    /** Cached calculation results */
    baseMinusT; // Handle the basic code points: let `basic` be the number of input code
    // points before the last delimiter, or `0` if there is none, then copy
    // the first basic code points to the output.

    basic = input.lastIndexOf(delimiter);

    if (basic < 0) {
      basic = 0;
    }

    for (j = 0; j < basic; ++j) {
      // if it's not a basic code point
      if (input.charCodeAt(j) >= 0x80) {
        error('not-basic');
      }

      output.push(input.charCodeAt(j));
    } // Main decoding loop: start just after the last delimiter if any basic code
    // points were copied; start at the beginning otherwise.


    for (index = basic > 0 ? basic + 1 : 0; index < inputLength;) {
      // `index` is the index of the next character to be consumed.
      // Decode a generalized variable-length integer into `delta`,
      // which gets added to `i`. The overflow checking is easier
      // if we increase `i` as we go, then subtract off its starting
      // value at the end to obtain `delta`.
      for (oldi = i, w = 1, k = base;; k += base) {
        if (index >= inputLength) {
          error('invalid-input');
        }

        digit = basicToDigit(input.charCodeAt(index++));

        if (digit >= base || digit > floor((maxInt - i) / w)) {
          error('overflow');
        }

        i += digit * w;
        t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;

        if (digit < t) {
          break;
        }

        baseMinusT = base - t;

        if (w > floor(maxInt / baseMinusT)) {
          error('overflow');
        }

        w *= baseMinusT;
      }

      out = output.length + 1;
      bias = adapt(i - oldi, out, oldi == 0); // `i` was supposed to wrap around from `out` to `0`,
      // incrementing `n` each time, so we'll fix that now:

      if (floor(i / out) > maxInt - n) {
        error('overflow');
      }

      n += floor(i / out);
      i %= out; // Insert `n` at position `i` of the output

      output.splice(i++, 0, n);
    }

    return ucs2encode(output);
  }
  /**
   * Converts a string of Unicode symbols (e.g. a domain name label) to a
   * Punycode string of ASCII-only symbols.
   * @memberOf punycode
   * @param {String} input The string of Unicode symbols.
   * @returns {String} The resulting Punycode string of ASCII-only symbols.
   */


  function encode(input) {
    var n,
        delta,
        handledCPCount,
        basicLength,
        bias,
        j,
        m,
        q,
        k,
        t,
        currentValue,
        output = [],

    /** `inputLength` will hold the number of code points in `input`. */
    inputLength,

    /** Cached calculation results */
    handledCPCountPlusOne,
        baseMinusT,
        qMinusT; // Convert the input in UCS-2 to Unicode

    input = ucs2decode(input); // Cache the length

    inputLength = input.length; // Initialize the state

    n = initialN;
    delta = 0;
    bias = initialBias; // Handle the basic code points

    for (j = 0; j < inputLength; ++j) {
      currentValue = input[j];

      if (currentValue < 0x80) {
        output.push(stringFromCharCode(currentValue));
      }
    }

    handledCPCount = basicLength = output.length; // `handledCPCount` is the number of code points that have been handled;
    // `basicLength` is the number of basic code points.
    // Finish the basic string - if it is not empty - with a delimiter

    if (basicLength) {
      output.push(delimiter);
    } // Main encoding loop:


    while (handledCPCount < inputLength) {
      // All non-basic code points < n have been handled already. Find the next
      // larger one:
      for (m = maxInt, j = 0; j < inputLength; ++j) {
        currentValue = input[j];

        if (currentValue >= n && currentValue < m) {
          m = currentValue;
        }
      } // Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,
      // but guard against overflow


      handledCPCountPlusOne = handledCPCount + 1;

      if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {
        error('overflow');
      }

      delta += (m - n) * handledCPCountPlusOne;
      n = m;

      for (j = 0; j < inputLength; ++j) {
        currentValue = input[j];

        if (currentValue < n && ++delta > maxInt) {
          error('overflow');
        }

        if (currentValue == n) {
          // Represent delta as a generalized variable-length integer
          for (q = delta, k = base;; k += base) {
            t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;

            if (q < t) {
              break;
            }

            qMinusT = q - t;
            baseMinusT = base - t;
            output.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0)));
            q = floor(qMinusT / baseMinusT);
          }

          output.push(stringFromCharCode(digitToBasic(q, 0)));
          bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);
          delta = 0;
          ++handledCPCount;
        }
      }

      ++delta;
      ++n;
    }

    return output.join('');
  }
  /**
   * Converts a Punycode string representing a domain name or an email address
   * to Unicode. Only the Punycoded parts of the input will be converted, i.e.
   * it doesn't matter if you call it on a string that has already been
   * converted to Unicode.
   * @memberOf punycode
   * @param {String} input The Punycoded domain name or email address to
   * convert to Unicode.
   * @returns {String} The Unicode representation of the given Punycode
   * string.
   */


  function toUnicode(input) {
    return mapDomain(input, function (string) {
      return regexPunycode.test(string) ? decode(string.slice(4).toLowerCase()) : string;
    });
  }
  /**
   * Converts a Unicode string representing a domain name or an email address to
   * Punycode. Only the non-ASCII parts of the domain name will be converted,
   * i.e. it doesn't matter if you call it with a domain that's already in
   * ASCII.
   * @memberOf punycode
   * @param {String} input The domain name or email address to convert, as a
   * Unicode string.
   * @returns {String} The Punycode representation of the given domain name or
   * email address.
   */


  function toASCII(input) {
    return mapDomain(input, function (string) {
      return regexNonASCII.test(string) ? 'xn--' + encode(string) : string;
    });
  }
  /*--------------------------------------------------------------------------*/

  /** Define the public API */


  punycode = {
    /**
     * A string representing the current Punycode.js version number.
     * @memberOf punycode
     * @type String
     */
    'version': '1.4.1',

    /**
     * An object of methods to convert from JavaScript's internal character
     * representation (UCS-2) to Unicode code points, and back.
     * @see <https://mathiasbynens.be/notes/javascript-encoding>
     * @memberOf punycode
     * @type Object
     */
    'ucs2': {
      'decode': ucs2decode,
      'encode': ucs2encode
    },
    'decode': decode,
    'encode': encode,
    'toASCII': toASCII,
    'toUnicode': toUnicode
  };
  /** Expose `punycode` */
  // Some AMD build optimizers, like r.js, check for specific condition patterns
  // like the following:

  if (true) {
    !(__WEBPACK_AMD_DEFINE_RESULT__ = (function () {
      return punycode;
    }).call(exports, __webpack_require__, exports, module),
				__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
  } else {}
})(this);
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("YuTi")(module), __webpack_require__("yLpj")))

/***/ }),

/***/ "GfA4":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var _UxpOptions = _interopRequireDefault(__webpack_require__("zvwv"));

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}
/*************************************************************************
* ADOBE CONFIDENTIAL
* ___________________
*
* Copyright 2019 Adobe
* All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains
* the property of Adobe and its suppliers, if any. The intellectual
* and technical concepts contained herein are proprietary to Adobe
* and its suppliers and are protected by all applicable intellectual
* property laws, including trade secret and copyright laws.
* Dissemination of this information or reproduction of this material
* is strictly forbidden unless prior written permission is obtained
* from Adobe.
**************************************************************************/


module.exports = _UxpOptions.default.select('Select', () => __webpack_require__("lnCV"), () => __webpack_require__("/Iqz"), () => __webpack_require__("qQTj"));

/***/ }),

/***/ "GfC9":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return stringifyQueries; });
/* harmony import */ var query_string__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("cr+I");
/* harmony import */ var query_string__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(query_string__WEBPACK_IMPORTED_MODULE_0__);

/**
 * Function to return a valid query string
 *
 * @param {object} queryObject Object user wishes to stringify
 * @returns {string} stringified queryparam, empty string otherwise
 */
function stringifyQueries(queryObject) {
    const stringified = query_string__WEBPACK_IMPORTED_MODULE_0___default.a.stringify(queryObject);
    if (stringified) {
        return `?${stringified}`;
    }
    return stringified;
}


/***/ }),

/***/ "Giow":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var inherits = __webpack_require__("P7XM");

var Legacy = __webpack_require__("1CSz");

var Base = __webpack_require__("ZDAU");

var Buffer = __webpack_require__("hwdV").Buffer;

var md5 = __webpack_require__("WnY+");

var RIPEMD160 = __webpack_require__("tcrS");

var sha = __webpack_require__("afKu");

var ZEROS = Buffer.alloc(128);

function Hmac(alg, key) {
  Base.call(this, 'digest');

  if (typeof key === 'string') {
    key = Buffer.from(key);
  }

  var blocksize = alg === 'sha512' || alg === 'sha384' ? 128 : 64;
  this._alg = alg;
  this._key = key;

  if (key.length > blocksize) {
    var hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg);
    key = hash.update(key).digest();
  } else if (key.length < blocksize) {
    key = Buffer.concat([key, ZEROS], blocksize);
  }

  var ipad = this._ipad = Buffer.allocUnsafe(blocksize);
  var opad = this._opad = Buffer.allocUnsafe(blocksize);

  for (var i = 0; i < blocksize; i++) {
    ipad[i] = key[i] ^ 0x36;
    opad[i] = key[i] ^ 0x5C;
  }

  this._hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg);

  this._hash.update(ipad);
}

inherits(Hmac, Base);

Hmac.prototype._update = function (data) {
  this._hash.update(data);
};

Hmac.prototype._final = function () {
  var h = this._hash.digest();

  var hash = this._alg === 'rmd160' ? new RIPEMD160() : sha(this._alg);
  return hash.update(this._opad).update(h).digest();
};

module.exports = function createHmac(alg, key) {
  alg = alg.toLowerCase();

  if (alg === 'rmd160' || alg === 'ripemd160') {
    return new Hmac('rmd160', key);
  }

  if (alg === 'md5') {
    return new Legacy(md5, key);
  }

  return new Hmac(alg, key);
};

/***/ }),

/***/ "GoyQ":
/***/ (function(module, exports) {

/**
 * Checks if `value` is the
 * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
 * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is an object, else `false`.
 * @example
 *
 * _.isObject({});
 * // => true
 *
 * _.isObject([1, 2, 3]);
 * // => true
 *
 * _.isObject(_.noop);
 * // => true
 *
 * _.isObject(null);
 * // => false
 */
function isObject(value) {
  var type = typeof value;
  return value != null && (type == 'object' || type == 'function');
}

module.exports = isObject;

/***/ }),

/***/ "Gpwp":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("path", {
  d: "M8.844 8.307c0-.1.212-.173.336-.173a83.755 83.755 0 0 1 3.867-.074c4.158 0 5.777 2.271 5.777 5.183 0 3.8-2.764 5.43-6.155 5.43-.569 0-.767-.025-1.163-.025v5.747c0 .124-.049.173-.173.173H9.017c-.124 0-.173-.049-.173-.173zm2.662 7.947c.347.025.619.025 1.213.025 1.757 0 3.408-.617 3.408-2.986 0-1.9-1.18-2.863-3.185-2.863-.594 0-1.163.025-1.435.049zm12.911-1.777c-1.188 0-1.584.592-1.584 1.086 0 .543.272.913 1.856 1.728 2.351 1.135 3.094 2.221 3.094 3.825 0 2.394-1.831 3.677-4.306 3.677a6.549 6.549 0 0 1-3.072-.642c-.1-.049-.124-.123-.124-.247v-2.2c0-.148.074-.2.173-.124a5.568 5.568 0 0 0 3.022.889c1.188 0 1.683-.494 1.683-1.16 0-.543-.346-1.012-1.856-1.8-2.128-1.012-3.019-2.049-3.019-3.776 0-1.925 1.51-3.529 4.133-3.529a7 7 0 0 1 2.691.42.322.322 0 0 1 .149.3v2.048c0 .123-.074.2-.223.148a5.394 5.394 0 0 0-2.617-.643z"
}), React.createElement("path", {
  d: "M0 0v34h36V0zm34 32H2V2h32z"
}));

/***/ }),

/***/ "GsTL":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("path", {
  d: "M18 2a16 16 0 1 0 16 16A16 16 0 0 0 18 2zm-.3 4.3a2.718 2.718 0 0 1 2.864 2.824 2.665 2.665 0 0 1-2.864 2.863 2.706 2.706 0 0 1-2.864-2.864A2.717 2.717 0 0 1 17.7 6.3zM22 27a1 1 0 0 1-1 1h-6a1 1 0 0 1-1-1v-2a1 1 0 0 1 1-1h1v-6h-1a1 1 0 0 1-1-1v-2a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v9h1a1 1 0 0 1 1 1z"
}));

/***/ }),

/***/ "Gt0N":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXPORTS
__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ SectionHeader_SectionHeader; });

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__("q1tI");
var react_default = /*#__PURE__*/__webpack_require__.n(react);

// EXTERNAL MODULE: ./node_modules/react-intl-cdo/lib/index.es.js + 1 modules
var index_es = __webpack_require__("VIzJ");

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Tooltip/index.js
var Tooltip = __webpack_require__("DUuf");
var Tooltip_default = /*#__PURE__*/__webpack_require__.n(Tooltip);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/OverlayTrigger/index.js
var OverlayTrigger = __webpack_require__("uYrR");
var OverlayTrigger_default = /*#__PURE__*/__webpack_require__.n(OverlayTrigger);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/components/oneup/SectionHeader.css
var SectionHeader = __webpack_require__("zKfg");
var SectionHeader_default = /*#__PURE__*/__webpack_require__.n(SectionHeader);

// EXTERNAL MODULE: ./node_modules/classnames/index.js
var classnames = __webpack_require__("TSYQ");
var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/hooks/useStickyStyle.ts

/**
 * Provides a boolean { isStuck }, which is true when the given element is
 * "stuck" at the top of the window AND the container has been scrolled.
 *
 * - Only intended for sticking at "top: 0".
 * - UXP doesn't support IntersectionObserver, so we check for that here too.
 */
function useStickyStyle(ref, enabled = true) {
    const [isAtTop, setAtTop] = Object(react["useState"])(false);
    const [isScrolled, setScrolled] = Object(react["useState"])(false);
    Object(react["useEffect"])(() => {
        const element = ref.current;
        const root = element === null || element === void 0 ? void 0 : element.parentElement;
        if (!enabled || !element || !root || !window.IntersectionObserver) {
            return;
        }
        const observer = new IntersectionObserver(entries => {
            var _a;
            // When the header touches the top pixel of the container,
            // intersectionRatio will be less than 1, so show the bottom border.
            setAtTop(((_a = entries[0]) === null || _a === void 0 ? void 0 : _a.intersectionRatio) < 1);
        }, {
            rootMargin: '-1px 0px 0px 0px',
            threshold: [1],
            root,
        });
        const onScroll = () => {
            setScrolled(root.scrollTop > 0);
        };
        root.addEventListener('scroll', onScroll);
        observer.observe(element);
        return () => {
            observer.unobserve(element);
            root.removeEventListener('scroll', onScroll);
        };
    }, [enabled]);
    return { isStuck: isAtTop && isScrolled };
}

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/constants.ts
var constants = __webpack_require__("YVc3");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/components/oneup/SectionHeader.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/








const detectClickEquivalentKey = function (e, handleClick) {
    const selectionKeys = ['Enter', ' '];
    if (selectionKeys.includes(e.key)) {
        handleClick();
    }
};
const renderSeeAll = ({ disabled, onSeeAll, disabledTooltipMsgId }) => {
    const enabledComponent = (react_default.a.createElement(react_default.a.Fragment, null,
        react_default.a.createElement("a", { className: SectionHeader_default.a.seeAll, onClick: onSeeAll, onKeyDown: e => detectClickEquivalentKey(e, onSeeAll), tabIndex: 0 },
            react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "project1Up.header.seeAll" }))));
    // Render without anchor tag
    // because disabled anchor tag still has focusing and focus styles
    const disabledComponent = (react_default.a.createElement(OverlayTrigger_default.a, { trigger: ['hover'], delayShow: constants["f" /* DEFAULT_TOOLTIP_DELAY */] },
        react_default.a.createElement("span", { className: SectionHeader_default.a.seeAll },
            react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "project1Up.header.seeAll" })),
        react_default.a.createElement(Tooltip_default.a, null,
            react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: disabledTooltipMsgId }))));
    if (disabled) {
        return disabledComponent;
    }
    return enabledComponent;
};
function SectionHeader_SectionHeader({ children, disabled = false, onSeeAll, right, isOpen = true, sticky = false, disabledTooltipMsgId = '', }) {
    const ref = Object(react["useRef"])(null);
    const { isStuck } = useStickyStyle(ref, sticky);
    return (react_default.a.createElement("div", { ref: ref, className: classnames_default()(SectionHeader_default.a.root, {
            [SectionHeader_default.a.open]: isOpen,
            [SectionHeader_default.a.sticky]: sticky,
            [SectionHeader_default.a.isStuck]: sticky && isStuck,
            [SectionHeader_default.a.disabled]: disabled,
        }) },
        react_default.a.createElement("div", { className: SectionHeader_default.a.leftSection }, children),
        onSeeAll && renderSeeAll({ disabled, disabledTooltipMsgId, onSeeAll }),
        right));
}


/***/ }),

/***/ "H+yo":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var assert = __webpack_require__("2j6C");

var inherits = __webpack_require__("P7XM");

var Cipher = __webpack_require__("AYSA");

var DES = __webpack_require__("Titl");

function EDEState(type, key) {
  assert.equal(key.length, 24, 'Invalid key length');
  var k1 = key.slice(0, 8);
  var k2 = key.slice(8, 16);
  var k3 = key.slice(16, 24);

  if (type === 'encrypt') {
    this.ciphers = [DES.create({
      type: 'encrypt',
      key: k1
    }), DES.create({
      type: 'decrypt',
      key: k2
    }), DES.create({
      type: 'encrypt',
      key: k3
    })];
  } else {
    this.ciphers = [DES.create({
      type: 'decrypt',
      key: k3
    }), DES.create({
      type: 'encrypt',
      key: k2
    }), DES.create({
      type: 'decrypt',
      key: k1
    })];
  }
}

function EDE(options) {
  Cipher.call(this, options);
  var state = new EDEState(this.type, this.options.key);
  this._edeState = state;
}

inherits(EDE, Cipher);
module.exports = EDE;

EDE.create = function create(options) {
  return new EDE(options);
};

EDE.prototype._update = function _update(inp, inOff, out, outOff) {
  var state = this._edeState;

  state.ciphers[0]._update(inp, inOff, out, outOff);

  state.ciphers[1]._update(out, outOff, out, outOff);

  state.ciphers[2]._update(out, outOff, out, outOff);
};

EDE.prototype._pad = DES.prototype._pad;
EDE.prototype._unpad = DES.prototype._unpad;

/***/ }),

/***/ "H/x4":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return getProjectFacepileContributors; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return getWorkspaceFacepileContributors; });
const getProjectFacepileContributors = collaboratorsList => {
    return collaboratorsList.filter(collaborator => collaborator.hasContributorRole &&
        (collaborator.invited || collaborator.isAdmin) &&
        collaborator.isDirect);
};
const getWorkspaceFacepileContributors = collaboratorsList => {
    return collaboratorsList.filter(collaborator => collaborator.type !== 'predefinedPrincipal' &&
        (collaborator.invited || collaborator.isAdmin) &&
        collaborator.isDirect);
};


/***/ }),

/***/ "H0zx":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var _interopRequireDefault = __webpack_require__("TqRt");

exports.__esModule = true;
exports.default = _getComputedStyle;

var _camelizeStyle = _interopRequireDefault(__webpack_require__("9SKx"));

var rposition = /^(top|right|bottom|left)$/;
var rnumnonpx = /^([+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|))(?!px)[a-z%]+$/i;

function _getComputedStyle(node) {
  if (!node) throw new TypeError('No Element passed to `getComputedStyle()`');
  var doc = node.ownerDocument;
  return 'defaultView' in doc ? doc.defaultView.opener ? node.ownerDocument.defaultView.getComputedStyle(node, null) : window.getComputedStyle(node, null) : {
    //ie 8 "magic" from: https://github.com/jquery/jquery/blob/1.11-stable/src/css/curCSS.js#L72
    getPropertyValue: function getPropertyValue(prop) {
      var style = node.style;
      prop = (0, _camelizeStyle.default)(prop);
      if (prop == 'float') prop = 'styleFloat';
      var current = node.currentStyle[prop] || null;
      if (current == null && style && style[prop]) current = style[prop];

      if (rnumnonpx.test(current) && !rposition.test(prop)) {
        // Remember the original values
        var left = style.left;
        var runStyle = node.runtimeStyle;
        var rsLeft = runStyle && runStyle.left; // Put in the new values to get a computed value out

        if (rsLeft) runStyle.left = node.currentStyle.left;
        style.left = prop === 'fontSize' ? '1em' : current;
        current = style.pixelLeft + 'px'; // Revert the changed values

        style.left = left;
        if (rsLeft) runStyle.left = rsLeft;
      }

      return current;
    }
  };
}

module.exports = exports["default"];

/***/ }),

/***/ "H3P5":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _filterDOMProps = _interopRequireDefault(__webpack_require__("Cv/Q"));

var _Heading = _interopRequireDefault(__webpack_require__("8bOP"));

var _propTypes = _interopRequireDefault(__webpack_require__("17x9"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

const _excluded = ["illustration", "className", "heading", "description", "ariaLevel"];

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

if (false) {} else if (false) {} else {
  __webpack_require__("hH+2");
}

if (true) __webpack_require__("xlgC");
if (true) __webpack_require__("Gl+7");
if (true) __webpack_require__("uj76");
if (true) __webpack_require__("twEq");
/**
 * An IllustratedMessage displays an illustration icon and a message, usually in an empty state or on an error page.
 */

class IllustratedMessage extends _react.default.Component {
  isIllustrationDecorative() {
    const {
      illustration,
      heading,
      description
    } = this.props;

    if (illustration) {
      const {
        props
      } = illustration;
      const {
        'aria-label': ariaLabel,
        'aria-labelledby': ariaLabelledby,
        'aria-hidden': ariaHidden
      } = props; // If illustration is explicitly hidden for accessibility return the ariaHidden value.

      if (ariaHidden != null) {
        return ariaHidden;
      } // If illustration is explicitly labelled using aria-label or aria-labelledby return null.


      if (ariaLabel || ariaLabelledby) {
        return false;
      }
    } // Otherwise, assume the image is decorative.


    return !!(heading || description);
  }

  render() {
    let _this$props = this.props,
        {
      illustration = null,
      className,
      heading,
      description,
      ariaLevel
    } = _this$props,
        otherProps = _objectWithoutProperties(_this$props, _excluded);

    if (illustration && (!illustration.props.className || !illustration.props.className.includes('spectrum-IllustratedMessage-illustration'))) {
      illustration = /*#__PURE__*/_react.default.cloneElement(illustration, {
        className: (0, _classnames.default)(illustration.props.className, 'spectrum-IllustratedMessage-illustration'),
        'aria-hidden': this.isIllustrationDecorative() || null
      });
    }

    return /*#__PURE__*/_react.default.createElement("div", _extends({}, (0, _filterDOMProps.default)(otherProps), {
      className: (0, _classnames.default)('spectrum-IllustratedMessage', className)
    }), illustration, heading && /*#__PURE__*/_react.default.createElement(_Heading.default, {
      variant: "pageTitle",
      className: "spectrum-IllustratedMessage-heading",
      "aria-level": ariaLevel
    }, heading), description && /*#__PURE__*/_react.default.createElement("p", {
      className: "spectrum-Body--secondary spectrum-IllustratedMessage-description"
    }, description));
  }

}

exports.default = IllustratedMessage;
IllustratedMessage.propTypes = {
  /** The heading to be displayed */
  heading: _propTypes.default.string,

  /** The description to be displayed */
  description: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.element]),

  /** The illustration to be rendered above heading. Should be an SVG element. */
  illustration: _propTypes.default.element,

  /** The heading level for the heading element to preserve hierarchy of headings in web page for accessibility. */
  ariaLevel: _propTypes.default.number
};
IllustratedMessage.defaultProps = {
  heading: null,
  description: null
};

/***/ }),

/***/ "H6XU":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _convertUnsafeMethod = _interopRequireDefault(__webpack_require__("8nyd"));

var _filterDOMProps = _interopRequireDefault(__webpack_require__("Cv/Q"));

var _propTypes = _interopRequireDefault(__webpack_require__("17x9"));

var _react = _interopRequireWildcard(__webpack_require__("q1tI"));

const _excluded = ["name", "vertical", "labelsBelow", "className", "children"];

var _class, _class2, _temp;

function _getRequireWildcardCache(nodeInterop) {
  if (typeof WeakMap !== "function") return null;
  var cacheBabelInterop = new WeakMap();
  var cacheNodeInterop = new WeakMap();
  return (_getRequireWildcardCache = function (nodeInterop) {
    return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
  })(nodeInterop);
}

function _interopRequireWildcard(obj, nodeInterop) {
  if (!nodeInterop && obj && obj.__esModule) {
    return obj;
  }

  if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
    return {
      default: obj
    };
  }

  var cache = _getRequireWildcardCache(nodeInterop);

  if (cache && cache.has(obj)) {
    return cache.get(obj);
  }

  var newObj = {};
  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;

  for (var key in obj) {
    if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
      var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;

      if (desc && (desc.get || desc.set)) {
        Object.defineProperty(newObj, key, desc);
      } else {
        newObj[key] = obj[key];
      }
    }
  }

  newObj.default = obj;

  if (cache) {
    cache.set(obj, newObj);
  }

  return newObj;
}

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

if (false) {} else if (false) {} else {
  __webpack_require__("NFqy");
}

let RadioGroup = (0, _convertUnsafeMethod.default)(_class = (_temp = _class2 = class RadioGroup extends _react.Component {
  constructor(props) {
    super(props);

    this.handleClickItem = value => {
      this.setSelectedValue(value);
    };

    const {
      selectedValue,
      defaultSelectedValue,
      children
    } = props;
    let firstSelectedValue;

    _react.default.Children.forEach(children, child => {
      if (child.props.checked) {
        firstSelectedValue = child.props.value;
      }
    });

    const defaultSelected = firstSelectedValue || defaultSelectedValue;
    this.state = {
      selectedValue: selectedValue != null ? selectedValue : defaultSelected
    };
  }

  UNSAFE_componentWillReceiveProps(nextProps) {
    if ('selectedValue' in nextProps) {
      this.setState({
        selectedValue: nextProps.selectedValue
      });
    }
  }

  setSelectedValue(value) {
    if (!('selectedValue' in this.props)) {
      this.setState({
        selectedValue: value
      });
    }

    this.props.onChange(value);
  }

  render() {
    const _this$props = this.props,
          {
      name,
      vertical,
      labelsBelow,
      className,
      children
    } = _this$props,
          otherProps = _objectWithoutProperties(_this$props, _excluded);

    const {
      selectedValue
    } = this.state;
    return /*#__PURE__*/_react.default.createElement("div", _extends({
      className: (0, _classnames.default)('spectrum-FieldGroup', {
        'spectrum-FieldGroup--vertical': vertical
      }, className),
      role: "radiogroup"
    }, (0, _filterDOMProps.default)(otherProps)), _react.default.Children.map(children, child => {
      const {
        value,
        onChange
      } = child.props;

      if (value == null) {
        throw new Error('Each Radio Button must have a value property');
      }

      const radioGroupOnClick = this.handleClickItem.bind(this, value);
      return /*#__PURE__*/_react.default.cloneElement(child, {
        checked: selectedValue === value,
        labelBelow: labelsBelow,
        name,
        tabIndex: this.props.tabIndex ? this.props.tabIndex : 0,
        onChange: (checked, e) => {
          if (onChange) {
            onChange(value);
          }

          radioGroupOnClick(); // Let the RadioGroup change event propagate.

          e.stopPropagation();
        }
      });
    }));
  }

}, _class2.propTypes = {
  /**
   * Value of the starting selected radio within the group
   */
  defaultSelectedValue: _propTypes.default.string,

  /**
   * Controlled: Value of the selected radio within the group
   */
  selectedValue: _propTypes.default.string,

  /**
   * Whether the label is rendered below the radio
   */
  labelBelow: _propTypes.default.bool,

  /**
   * Render the radio group vertically instead of default horizontal
   */
  vertical: _propTypes.default.bool
}, _class2.defaultProps = {
  vertical: false,
  labelsBelow: false,
  onChange: function () {}
}, _temp)) || _class;

exports.default = RadioGroup;
RadioGroup.displayName = 'RadioGroup';

/***/ }),

/***/ "H7XF":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


exports.byteLength = byteLength;
exports.toByteArray = toByteArray;
exports.fromByteArray = fromByteArray;
var lookup = [];
var revLookup = [];
var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array;
var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';

for (var i = 0, len = code.length; i < len; ++i) {
  lookup[i] = code[i];
  revLookup[code.charCodeAt(i)] = i;
} // Support decoding URL-safe base64 strings, as Node.js does.
// See: https://en.wikipedia.org/wiki/Base64#URL_applications


revLookup['-'.charCodeAt(0)] = 62;
revLookup['_'.charCodeAt(0)] = 63;

function getLens(b64) {
  var len = b64.length;

  if (len % 4 > 0) {
    throw new Error('Invalid string. Length must be a multiple of 4');
  } // Trim off extra bytes after placeholder bytes are found
  // See: https://github.com/beatgammit/base64-js/issues/42


  var validLen = b64.indexOf('=');
  if (validLen === -1) validLen = len;
  var placeHoldersLen = validLen === len ? 0 : 4 - validLen % 4;
  return [validLen, placeHoldersLen];
} // base64 is 4/3 + up to two characters of the original data


function byteLength(b64) {
  var lens = getLens(b64);
  var validLen = lens[0];
  var placeHoldersLen = lens[1];
  return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;
}

function _byteLength(b64, validLen, placeHoldersLen) {
  return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;
}

function toByteArray(b64) {
  var tmp;
  var lens = getLens(b64);
  var validLen = lens[0];
  var placeHoldersLen = lens[1];
  var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen));
  var curByte = 0; // if there are placeholders, only get up to the last complete 4 chars

  var len = placeHoldersLen > 0 ? validLen - 4 : validLen;
  var i;

  for (i = 0; i < len; i += 4) {
    tmp = revLookup[b64.charCodeAt(i)] << 18 | revLookup[b64.charCodeAt(i + 1)] << 12 | revLookup[b64.charCodeAt(i + 2)] << 6 | revLookup[b64.charCodeAt(i + 3)];
    arr[curByte++] = tmp >> 16 & 0xFF;
    arr[curByte++] = tmp >> 8 & 0xFF;
    arr[curByte++] = tmp & 0xFF;
  }

  if (placeHoldersLen === 2) {
    tmp = revLookup[b64.charCodeAt(i)] << 2 | revLookup[b64.charCodeAt(i + 1)] >> 4;
    arr[curByte++] = tmp & 0xFF;
  }

  if (placeHoldersLen === 1) {
    tmp = revLookup[b64.charCodeAt(i)] << 10 | revLookup[b64.charCodeAt(i + 1)] << 4 | revLookup[b64.charCodeAt(i + 2)] >> 2;
    arr[curByte++] = tmp >> 8 & 0xFF;
    arr[curByte++] = tmp & 0xFF;
  }

  return arr;
}

function tripletToBase64(num) {
  return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F];
}

function encodeChunk(uint8, start, end) {
  var tmp;
  var output = [];

  for (var i = start; i < end; i += 3) {
    tmp = (uint8[i] << 16 & 0xFF0000) + (uint8[i + 1] << 8 & 0xFF00) + (uint8[i + 2] & 0xFF);
    output.push(tripletToBase64(tmp));
  }

  return output.join('');
}

function fromByteArray(uint8) {
  var tmp;
  var len = uint8.length;
  var extraBytes = len % 3; // if we have 1 byte left, pad 2 bytes

  var parts = [];
  var maxChunkLength = 16383; // must be multiple of 3
  // go through the array every three bytes, we'll deal with trailing stuff later

  for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {
    parts.push(encodeChunk(uint8, i, i + maxChunkLength > len2 ? len2 : i + maxChunkLength));
  } // pad the end with zeros, but make sure to not forget the extra bytes


  if (extraBytes === 1) {
    tmp = uint8[len - 1];
    parts.push(lookup[tmp >> 2] + lookup[tmp << 4 & 0x3F] + '==');
  } else if (extraBytes === 2) {
    tmp = (uint8[len - 2] << 8) + uint8[len - 1];
    parts.push(lookup[tmp >> 10] + lookup[tmp >> 4 & 0x3F] + lookup[tmp << 2 & 0x3F] + '=');
  }

  return parts.join('');
}

/***/ }),

/***/ "H7fZ":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("88uX"),
      24: __webpack_require__("AA2I")
    }
  }));
};

WrappedIcon.displayName = 'Filter';
exports.default = WrappedIcon;

/***/ }),

/***/ "H8j4":
/***/ (function(module, exports, __webpack_require__) {

var getMapData = __webpack_require__("QkVE");
/**
 * Sets the map `key` to `value`.
 *
 * @private
 * @name set
 * @memberOf MapCache
 * @param {string} key The key of the value to set.
 * @param {*} value The value to set.
 * @returns {Object} Returns the map cache instance.
 */


function mapCacheSet(key, value) {
  var data = getMapData(this, key),
      size = data.size;
  data.set(key, value);
  this.size += data.size == size ? 0 : 1;
  return this;
}

module.exports = mapCacheSet;

/***/ }),

/***/ "HDXh":
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(global) {/*!
 * The buffer module from node.js, for the browser.
 *
 * @author   Feross Aboukhadijeh <http://feross.org>
 * @license  MIT
 */

/* eslint-disable no-proto */


var base64 = __webpack_require__("H7XF");

var ieee754 = __webpack_require__("kVK+");

var isArray = __webpack_require__("49sm");

exports.Buffer = Buffer;
exports.SlowBuffer = SlowBuffer;
exports.INSPECT_MAX_BYTES = 50;
/**
 * If `Buffer.TYPED_ARRAY_SUPPORT`:
 *   === true    Use Uint8Array implementation (fastest)
 *   === false   Use Object implementation (most compatible, even IE6)
 *
 * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,
 * Opera 11.6+, iOS 4.2+.
 *
 * Due to various browser bugs, sometimes the Object implementation will be used even
 * when the browser supports typed arrays.
 *
 * Note:
 *
 *   - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,
 *     See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.
 *
 *   - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.
 *
 *   - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of
 *     incorrect length in some situations.

 * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they
 * get the Object implementation, which is slower but behaves correctly.
 */

Buffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined ? global.TYPED_ARRAY_SUPPORT : typedArraySupport();
/*
 * Export kMaxLength after typed array support is determined.
 */

exports.kMaxLength = kMaxLength();

function typedArraySupport() {
  try {
    var arr = new Uint8Array(1);
    arr.__proto__ = {
      __proto__: Uint8Array.prototype,
      foo: function () {
        return 42;
      }
    };
    return arr.foo() === 42 && // typed array instances can be augmented
    typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`
    arr.subarray(1, 1).byteLength === 0; // ie10 has broken `subarray`
  } catch (e) {
    return false;
  }
}

function kMaxLength() {
  return Buffer.TYPED_ARRAY_SUPPORT ? 0x7fffffff : 0x3fffffff;
}

function createBuffer(that, length) {
  if (kMaxLength() < length) {
    throw new RangeError('Invalid typed array length');
  }

  if (Buffer.TYPED_ARRAY_SUPPORT) {
    // Return an augmented `Uint8Array` instance, for best performance
    that = new Uint8Array(length);
    that.__proto__ = Buffer.prototype;
  } else {
    // Fallback: Return an object instance of the Buffer class
    if (that === null) {
      that = new Buffer(length);
    }

    that.length = length;
  }

  return that;
}
/**
 * The Buffer constructor returns instances of `Uint8Array` that have their
 * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of
 * `Uint8Array`, so the returned instances will have all the node `Buffer` methods
 * and the `Uint8Array` methods. Square bracket notation works as expected -- it
 * returns a single octet.
 *
 * The `Uint8Array` prototype remains unmodified.
 */


function Buffer(arg, encodingOrOffset, length) {
  if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {
    return new Buffer(arg, encodingOrOffset, length);
  } // Common case.


  if (typeof arg === 'number') {
    if (typeof encodingOrOffset === 'string') {
      throw new Error('If encoding is specified then the first argument must be a string');
    }

    return allocUnsafe(this, arg);
  }

  return from(this, arg, encodingOrOffset, length);
}

Buffer.poolSize = 8192; // not used by this implementation
// TODO: Legacy, not needed anymore. Remove in next major version.

Buffer._augment = function (arr) {
  arr.__proto__ = Buffer.prototype;
  return arr;
};

function from(that, value, encodingOrOffset, length) {
  if (typeof value === 'number') {
    throw new TypeError('"value" argument must not be a number');
  }

  if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {
    return fromArrayBuffer(that, value, encodingOrOffset, length);
  }

  if (typeof value === 'string') {
    return fromString(that, value, encodingOrOffset);
  }

  return fromObject(that, value);
}
/**
 * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError
 * if value is a number.
 * Buffer.from(str[, encoding])
 * Buffer.from(array)
 * Buffer.from(buffer)
 * Buffer.from(arrayBuffer[, byteOffset[, length]])
 **/


Buffer.from = function (value, encodingOrOffset, length) {
  return from(null, value, encodingOrOffset, length);
};

if (Buffer.TYPED_ARRAY_SUPPORT) {
  Buffer.prototype.__proto__ = Uint8Array.prototype;
  Buffer.__proto__ = Uint8Array;

  if (typeof Symbol !== 'undefined' && Symbol.species && Buffer[Symbol.species] === Buffer) {
    // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97
    Object.defineProperty(Buffer, Symbol.species, {
      value: null,
      configurable: true
    });
  }
}

function assertSize(size) {
  if (typeof size !== 'number') {
    throw new TypeError('"size" argument must be a number');
  } else if (size < 0) {
    throw new RangeError('"size" argument must not be negative');
  }
}

function alloc(that, size, fill, encoding) {
  assertSize(size);

  if (size <= 0) {
    return createBuffer(that, size);
  }

  if (fill !== undefined) {
    // Only pay attention to encoding if it's a string. This
    // prevents accidentally sending in a number that would
    // be interpretted as a start offset.
    return typeof encoding === 'string' ? createBuffer(that, size).fill(fill, encoding) : createBuffer(that, size).fill(fill);
  }

  return createBuffer(that, size);
}
/**
 * Creates a new filled Buffer instance.
 * alloc(size[, fill[, encoding]])
 **/


Buffer.alloc = function (size, fill, encoding) {
  return alloc(null, size, fill, encoding);
};

function allocUnsafe(that, size) {
  assertSize(size);
  that = createBuffer(that, size < 0 ? 0 : checked(size) | 0);

  if (!Buffer.TYPED_ARRAY_SUPPORT) {
    for (var i = 0; i < size; ++i) {
      that[i] = 0;
    }
  }

  return that;
}
/**
 * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.
 * */


Buffer.allocUnsafe = function (size) {
  return allocUnsafe(null, size);
};
/**
 * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.
 */


Buffer.allocUnsafeSlow = function (size) {
  return allocUnsafe(null, size);
};

function fromString(that, string, encoding) {
  if (typeof encoding !== 'string' || encoding === '') {
    encoding = 'utf8';
  }

  if (!Buffer.isEncoding(encoding)) {
    throw new TypeError('"encoding" must be a valid string encoding');
  }

  var length = byteLength(string, encoding) | 0;
  that = createBuffer(that, length);
  var actual = that.write(string, encoding);

  if (actual !== length) {
    // Writing a hex string, for example, that contains invalid characters will
    // cause everything after the first invalid character to be ignored. (e.g.
    // 'abxxcd' will be treated as 'ab')
    that = that.slice(0, actual);
  }

  return that;
}

function fromArrayLike(that, array) {
  var length = array.length < 0 ? 0 : checked(array.length) | 0;
  that = createBuffer(that, length);

  for (var i = 0; i < length; i += 1) {
    that[i] = array[i] & 255;
  }

  return that;
}

function fromArrayBuffer(that, array, byteOffset, length) {
  array.byteLength; // this throws if `array` is not a valid ArrayBuffer

  if (byteOffset < 0 || array.byteLength < byteOffset) {
    throw new RangeError('\'offset\' is out of bounds');
  }

  if (array.byteLength < byteOffset + (length || 0)) {
    throw new RangeError('\'length\' is out of bounds');
  }

  if (byteOffset === undefined && length === undefined) {
    array = new Uint8Array(array);
  } else if (length === undefined) {
    array = new Uint8Array(array, byteOffset);
  } else {
    array = new Uint8Array(array, byteOffset, length);
  }

  if (Buffer.TYPED_ARRAY_SUPPORT) {
    // Return an augmented `Uint8Array` instance, for best performance
    that = array;
    that.__proto__ = Buffer.prototype;
  } else {
    // Fallback: Return an object instance of the Buffer class
    that = fromArrayLike(that, array);
  }

  return that;
}

function fromObject(that, obj) {
  if (Buffer.isBuffer(obj)) {
    var len = checked(obj.length) | 0;
    that = createBuffer(that, len);

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

    obj.copy(that, 0, 0, len);
    return that;
  }

  if (obj) {
    if (typeof ArrayBuffer !== 'undefined' && obj.buffer instanceof ArrayBuffer || 'length' in obj) {
      if (typeof obj.length !== 'number' || isnan(obj.length)) {
        return createBuffer(that, 0);
      }

      return fromArrayLike(that, obj);
    }

    if (obj.type === 'Buffer' && isArray(obj.data)) {
      return fromArrayLike(that, obj.data);
    }
  }

  throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.');
}

function checked(length) {
  // Note: cannot use `length < kMaxLength()` here because that fails when
  // length is NaN (which is otherwise coerced to zero.)
  if (length >= kMaxLength()) {
    throw new RangeError('Attempt to allocate Buffer larger than maximum ' + 'size: 0x' + kMaxLength().toString(16) + ' bytes');
  }

  return length | 0;
}

function SlowBuffer(length) {
  if (+length != length) {
    // eslint-disable-line eqeqeq
    length = 0;
  }

  return Buffer.alloc(+length);
}

Buffer.isBuffer = function isBuffer(b) {
  return !!(b != null && b._isBuffer);
};

Buffer.compare = function compare(a, b) {
  if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {
    throw new TypeError('Arguments must be Buffers');
  }

  if (a === b) return 0;
  var x = a.length;
  var y = b.length;

  for (var i = 0, len = Math.min(x, y); i < len; ++i) {
    if (a[i] !== b[i]) {
      x = a[i];
      y = b[i];
      break;
    }
  }

  if (x < y) return -1;
  if (y < x) return 1;
  return 0;
};

Buffer.isEncoding = function isEncoding(encoding) {
  switch (String(encoding).toLowerCase()) {
    case 'hex':
    case 'utf8':
    case 'utf-8':
    case 'ascii':
    case 'latin1':
    case 'binary':
    case 'base64':
    case 'ucs2':
    case 'ucs-2':
    case 'utf16le':
    case 'utf-16le':
      return true;

    default:
      return false;
  }
};

Buffer.concat = function concat(list, length) {
  if (!isArray(list)) {
    throw new TypeError('"list" argument must be an Array of Buffers');
  }

  if (list.length === 0) {
    return Buffer.alloc(0);
  }

  var i;

  if (length === undefined) {
    length = 0;

    for (i = 0; i < list.length; ++i) {
      length += list[i].length;
    }
  }

  var buffer = Buffer.allocUnsafe(length);
  var pos = 0;

  for (i = 0; i < list.length; ++i) {
    var buf = list[i];

    if (!Buffer.isBuffer(buf)) {
      throw new TypeError('"list" argument must be an Array of Buffers');
    }

    buf.copy(buffer, pos);
    pos += buf.length;
  }

  return buffer;
};

function byteLength(string, encoding) {
  if (Buffer.isBuffer(string)) {
    return string.length;
  }

  if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' && (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {
    return string.byteLength;
  }

  if (typeof string !== 'string') {
    string = '' + string;
  }

  var len = string.length;
  if (len === 0) return 0; // Use a for loop to avoid recursion

  var loweredCase = false;

  for (;;) {
    switch (encoding) {
      case 'ascii':
      case 'latin1':
      case 'binary':
        return len;

      case 'utf8':
      case 'utf-8':
      case undefined:
        return utf8ToBytes(string).length;

      case 'ucs2':
      case 'ucs-2':
      case 'utf16le':
      case 'utf-16le':
        return len * 2;

      case 'hex':
        return len >>> 1;

      case 'base64':
        return base64ToBytes(string).length;

      default:
        if (loweredCase) return utf8ToBytes(string).length; // assume utf8

        encoding = ('' + encoding).toLowerCase();
        loweredCase = true;
    }
  }
}

Buffer.byteLength = byteLength;

function slowToString(encoding, start, end) {
  var loweredCase = false; // No need to verify that "this.length <= MAX_UINT32" since it's a read-only
  // property of a typed array.
  // This behaves neither like String nor Uint8Array in that we set start/end
  // to their upper/lower bounds if the value passed is out of range.
  // undefined is handled specially as per ECMA-262 6th Edition,
  // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.

  if (start === undefined || start < 0) {
    start = 0;
  } // Return early if start > this.length. Done here to prevent potential uint32
  // coercion fail below.


  if (start > this.length) {
    return '';
  }

  if (end === undefined || end > this.length) {
    end = this.length;
  }

  if (end <= 0) {
    return '';
  } // Force coersion to uint32. This will also coerce falsey/NaN values to 0.


  end >>>= 0;
  start >>>= 0;

  if (end <= start) {
    return '';
  }

  if (!encoding) encoding = 'utf8';

  while (true) {
    switch (encoding) {
      case 'hex':
        return hexSlice(this, start, end);

      case 'utf8':
      case 'utf-8':
        return utf8Slice(this, start, end);

      case 'ascii':
        return asciiSlice(this, start, end);

      case 'latin1':
      case 'binary':
        return latin1Slice(this, start, end);

      case 'base64':
        return base64Slice(this, start, end);

      case 'ucs2':
      case 'ucs-2':
      case 'utf16le':
      case 'utf-16le':
        return utf16leSlice(this, start, end);

      default:
        if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding);
        encoding = (encoding + '').toLowerCase();
        loweredCase = true;
    }
  }
} // The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect
// Buffer instances.


Buffer.prototype._isBuffer = true;

function swap(b, n, m) {
  var i = b[n];
  b[n] = b[m];
  b[m] = i;
}

Buffer.prototype.swap16 = function swap16() {
  var len = this.length;

  if (len % 2 !== 0) {
    throw new RangeError('Buffer size must be a multiple of 16-bits');
  }

  for (var i = 0; i < len; i += 2) {
    swap(this, i, i + 1);
  }

  return this;
};

Buffer.prototype.swap32 = function swap32() {
  var len = this.length;

  if (len % 4 !== 0) {
    throw new RangeError('Buffer size must be a multiple of 32-bits');
  }

  for (var i = 0; i < len; i += 4) {
    swap(this, i, i + 3);
    swap(this, i + 1, i + 2);
  }

  return this;
};

Buffer.prototype.swap64 = function swap64() {
  var len = this.length;

  if (len % 8 !== 0) {
    throw new RangeError('Buffer size must be a multiple of 64-bits');
  }

  for (var i = 0; i < len; i += 8) {
    swap(this, i, i + 7);
    swap(this, i + 1, i + 6);
    swap(this, i + 2, i + 5);
    swap(this, i + 3, i + 4);
  }

  return this;
};

Buffer.prototype.toString = function toString() {
  var length = this.length | 0;
  if (length === 0) return '';
  if (arguments.length === 0) return utf8Slice(this, 0, length);
  return slowToString.apply(this, arguments);
};

Buffer.prototype.equals = function equals(b) {
  if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer');
  if (this === b) return true;
  return Buffer.compare(this, b) === 0;
};

Buffer.prototype.inspect = function inspect() {
  var str = '';
  var max = exports.INSPECT_MAX_BYTES;

  if (this.length > 0) {
    str = this.toString('hex', 0, max).match(/.{2}/g).join(' ');
    if (this.length > max) str += ' ... ';
  }

  return '<Buffer ' + str + '>';
};

Buffer.prototype.compare = function compare(target, start, end, thisStart, thisEnd) {
  if (!Buffer.isBuffer(target)) {
    throw new TypeError('Argument must be a Buffer');
  }

  if (start === undefined) {
    start = 0;
  }

  if (end === undefined) {
    end = target ? target.length : 0;
  }

  if (thisStart === undefined) {
    thisStart = 0;
  }

  if (thisEnd === undefined) {
    thisEnd = this.length;
  }

  if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {
    throw new RangeError('out of range index');
  }

  if (thisStart >= thisEnd && start >= end) {
    return 0;
  }

  if (thisStart >= thisEnd) {
    return -1;
  }

  if (start >= end) {
    return 1;
  }

  start >>>= 0;
  end >>>= 0;
  thisStart >>>= 0;
  thisEnd >>>= 0;
  if (this === target) return 0;
  var x = thisEnd - thisStart;
  var y = end - start;
  var len = Math.min(x, y);
  var thisCopy = this.slice(thisStart, thisEnd);
  var targetCopy = target.slice(start, end);

  for (var i = 0; i < len; ++i) {
    if (thisCopy[i] !== targetCopy[i]) {
      x = thisCopy[i];
      y = targetCopy[i];
      break;
    }
  }

  if (x < y) return -1;
  if (y < x) return 1;
  return 0;
}; // Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,
// OR the last index of `val` in `buffer` at offset <= `byteOffset`.
//
// Arguments:
// - buffer - a Buffer to search
// - val - a string, Buffer, or number
// - byteOffset - an index into `buffer`; will be clamped to an int32
// - encoding - an optional encoding, relevant is val is a string
// - dir - true for indexOf, false for lastIndexOf


function bidirectionalIndexOf(buffer, val, byteOffset, encoding, dir) {
  // Empty buffer means no match
  if (buffer.length === 0) return -1; // Normalize byteOffset

  if (typeof byteOffset === 'string') {
    encoding = byteOffset;
    byteOffset = 0;
  } else if (byteOffset > 0x7fffffff) {
    byteOffset = 0x7fffffff;
  } else if (byteOffset < -0x80000000) {
    byteOffset = -0x80000000;
  }

  byteOffset = +byteOffset; // Coerce to Number.

  if (isNaN(byteOffset)) {
    // byteOffset: it it's undefined, null, NaN, "foo", etc, search whole buffer
    byteOffset = dir ? 0 : buffer.length - 1;
  } // Normalize byteOffset: negative offsets start from the end of the buffer


  if (byteOffset < 0) byteOffset = buffer.length + byteOffset;

  if (byteOffset >= buffer.length) {
    if (dir) return -1;else byteOffset = buffer.length - 1;
  } else if (byteOffset < 0) {
    if (dir) byteOffset = 0;else return -1;
  } // Normalize val


  if (typeof val === 'string') {
    val = Buffer.from(val, encoding);
  } // Finally, search either indexOf (if dir is true) or lastIndexOf


  if (Buffer.isBuffer(val)) {
    // Special case: looking for empty string/buffer always fails
    if (val.length === 0) {
      return -1;
    }

    return arrayIndexOf(buffer, val, byteOffset, encoding, dir);
  } else if (typeof val === 'number') {
    val = val & 0xFF; // Search for a byte value [0-255]

    if (Buffer.TYPED_ARRAY_SUPPORT && typeof Uint8Array.prototype.indexOf === 'function') {
      if (dir) {
        return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset);
      } else {
        return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset);
      }
    }

    return arrayIndexOf(buffer, [val], byteOffset, encoding, dir);
  }

  throw new TypeError('val must be string, number or Buffer');
}

function arrayIndexOf(arr, val, byteOffset, encoding, dir) {
  var indexSize = 1;
  var arrLength = arr.length;
  var valLength = val.length;

  if (encoding !== undefined) {
    encoding = String(encoding).toLowerCase();

    if (encoding === 'ucs2' || encoding === 'ucs-2' || encoding === 'utf16le' || encoding === 'utf-16le') {
      if (arr.length < 2 || val.length < 2) {
        return -1;
      }

      indexSize = 2;
      arrLength /= 2;
      valLength /= 2;
      byteOffset /= 2;
    }
  }

  function read(buf, i) {
    if (indexSize === 1) {
      return buf[i];
    } else {
      return buf.readUInt16BE(i * indexSize);
    }
  }

  var i;

  if (dir) {
    var foundIndex = -1;

    for (i = byteOffset; i < arrLength; i++) {
      if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {
        if (foundIndex === -1) foundIndex = i;
        if (i - foundIndex + 1 === valLength) return foundIndex * indexSize;
      } else {
        if (foundIndex !== -1) i -= i - foundIndex;
        foundIndex = -1;
      }
    }
  } else {
    if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength;

    for (i = byteOffset; i >= 0; i--) {
      var found = true;

      for (var j = 0; j < valLength; j++) {
        if (read(arr, i + j) !== read(val, j)) {
          found = false;
          break;
        }
      }

      if (found) return i;
    }
  }

  return -1;
}

Buffer.prototype.includes = function includes(val, byteOffset, encoding) {
  return this.indexOf(val, byteOffset, encoding) !== -1;
};

Buffer.prototype.indexOf = function indexOf(val, byteOffset, encoding) {
  return bidirectionalIndexOf(this, val, byteOffset, encoding, true);
};

Buffer.prototype.lastIndexOf = function lastIndexOf(val, byteOffset, encoding) {
  return bidirectionalIndexOf(this, val, byteOffset, encoding, false);
};

function hexWrite(buf, string, offset, length) {
  offset = Number(offset) || 0;
  var remaining = buf.length - offset;

  if (!length) {
    length = remaining;
  } else {
    length = Number(length);

    if (length > remaining) {
      length = remaining;
    }
  } // must be an even number of digits


  var strLen = string.length;
  if (strLen % 2 !== 0) throw new TypeError('Invalid hex string');

  if (length > strLen / 2) {
    length = strLen / 2;
  }

  for (var i = 0; i < length; ++i) {
    var parsed = parseInt(string.substr(i * 2, 2), 16);
    if (isNaN(parsed)) return i;
    buf[offset + i] = parsed;
  }

  return i;
}

function utf8Write(buf, string, offset, length) {
  return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length);
}

function asciiWrite(buf, string, offset, length) {
  return blitBuffer(asciiToBytes(string), buf, offset, length);
}

function latin1Write(buf, string, offset, length) {
  return asciiWrite(buf, string, offset, length);
}

function base64Write(buf, string, offset, length) {
  return blitBuffer(base64ToBytes(string), buf, offset, length);
}

function ucs2Write(buf, string, offset, length) {
  return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length);
}

Buffer.prototype.write = function write(string, offset, length, encoding) {
  // Buffer#write(string)
  if (offset === undefined) {
    encoding = 'utf8';
    length = this.length;
    offset = 0; // Buffer#write(string, encoding)
  } else if (length === undefined && typeof offset === 'string') {
    encoding = offset;
    length = this.length;
    offset = 0; // Buffer#write(string, offset[, length][, encoding])
  } else if (isFinite(offset)) {
    offset = offset | 0;

    if (isFinite(length)) {
      length = length | 0;
      if (encoding === undefined) encoding = 'utf8';
    } else {
      encoding = length;
      length = undefined;
    } // legacy write(string, encoding, offset, length) - remove in v0.13

  } else {
    throw new Error('Buffer.write(string, encoding, offset[, length]) is no longer supported');
  }

  var remaining = this.length - offset;
  if (length === undefined || length > remaining) length = remaining;

  if (string.length > 0 && (length < 0 || offset < 0) || offset > this.length) {
    throw new RangeError('Attempt to write outside buffer bounds');
  }

  if (!encoding) encoding = 'utf8';
  var loweredCase = false;

  for (;;) {
    switch (encoding) {
      case 'hex':
        return hexWrite(this, string, offset, length);

      case 'utf8':
      case 'utf-8':
        return utf8Write(this, string, offset, length);

      case 'ascii':
        return asciiWrite(this, string, offset, length);

      case 'latin1':
      case 'binary':
        return latin1Write(this, string, offset, length);

      case 'base64':
        // Warning: maxLength not taken into account in base64Write
        return base64Write(this, string, offset, length);

      case 'ucs2':
      case 'ucs-2':
      case 'utf16le':
      case 'utf-16le':
        return ucs2Write(this, string, offset, length);

      default:
        if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding);
        encoding = ('' + encoding).toLowerCase();
        loweredCase = true;
    }
  }
};

Buffer.prototype.toJSON = function toJSON() {
  return {
    type: 'Buffer',
    data: Array.prototype.slice.call(this._arr || this, 0)
  };
};

function base64Slice(buf, start, end) {
  if (start === 0 && end === buf.length) {
    return base64.fromByteArray(buf);
  } else {
    return base64.fromByteArray(buf.slice(start, end));
  }
}

function utf8Slice(buf, start, end) {
  end = Math.min(buf.length, end);
  var res = [];
  var i = start;

  while (i < end) {
    var firstByte = buf[i];
    var codePoint = null;
    var bytesPerSequence = firstByte > 0xEF ? 4 : firstByte > 0xDF ? 3 : firstByte > 0xBF ? 2 : 1;

    if (i + bytesPerSequence <= end) {
      var secondByte, thirdByte, fourthByte, tempCodePoint;

      switch (bytesPerSequence) {
        case 1:
          if (firstByte < 0x80) {
            codePoint = firstByte;
          }

          break;

        case 2:
          secondByte = buf[i + 1];

          if ((secondByte & 0xC0) === 0x80) {
            tempCodePoint = (firstByte & 0x1F) << 0x6 | secondByte & 0x3F;

            if (tempCodePoint > 0x7F) {
              codePoint = tempCodePoint;
            }
          }

          break;

        case 3:
          secondByte = buf[i + 1];
          thirdByte = buf[i + 2];

          if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {
            tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | thirdByte & 0x3F;

            if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {
              codePoint = tempCodePoint;
            }
          }

          break;

        case 4:
          secondByte = buf[i + 1];
          thirdByte = buf[i + 2];
          fourthByte = buf[i + 3];

          if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {
            tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | fourthByte & 0x3F;

            if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {
              codePoint = tempCodePoint;
            }
          }

      }
    }

    if (codePoint === null) {
      // we did not generate a valid codePoint so insert a
      // replacement char (U+FFFD) and advance only 1 byte
      codePoint = 0xFFFD;
      bytesPerSequence = 1;
    } else if (codePoint > 0xFFFF) {
      // encode to utf16 (surrogate pair dance)
      codePoint -= 0x10000;
      res.push(codePoint >>> 10 & 0x3FF | 0xD800);
      codePoint = 0xDC00 | codePoint & 0x3FF;
    }

    res.push(codePoint);
    i += bytesPerSequence;
  }

  return decodeCodePointsArray(res);
} // Based on http://stackoverflow.com/a/22747272/680742, the browser with
// the lowest limit is Chrome, with 0x10000 args.
// We go 1 magnitude less, for safety


var MAX_ARGUMENTS_LENGTH = 0x1000;

function decodeCodePointsArray(codePoints) {
  var len = codePoints.length;

  if (len <= MAX_ARGUMENTS_LENGTH) {
    return String.fromCharCode.apply(String, codePoints); // avoid extra slice()
  } // Decode in chunks to avoid "call stack size exceeded".


  var res = '';
  var i = 0;

  while (i < len) {
    res += String.fromCharCode.apply(String, codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH));
  }

  return res;
}

function asciiSlice(buf, start, end) {
  var ret = '';
  end = Math.min(buf.length, end);

  for (var i = start; i < end; ++i) {
    ret += String.fromCharCode(buf[i] & 0x7F);
  }

  return ret;
}

function latin1Slice(buf, start, end) {
  var ret = '';
  end = Math.min(buf.length, end);

  for (var i = start; i < end; ++i) {
    ret += String.fromCharCode(buf[i]);
  }

  return ret;
}

function hexSlice(buf, start, end) {
  var len = buf.length;
  if (!start || start < 0) start = 0;
  if (!end || end < 0 || end > len) end = len;
  var out = '';

  for (var i = start; i < end; ++i) {
    out += toHex(buf[i]);
  }

  return out;
}

function utf16leSlice(buf, start, end) {
  var bytes = buf.slice(start, end);
  var res = '';

  for (var i = 0; i < bytes.length; i += 2) {
    res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256);
  }

  return res;
}

Buffer.prototype.slice = function slice(start, end) {
  var len = this.length;
  start = ~~start;
  end = end === undefined ? len : ~~end;

  if (start < 0) {
    start += len;
    if (start < 0) start = 0;
  } else if (start > len) {
    start = len;
  }

  if (end < 0) {
    end += len;
    if (end < 0) end = 0;
  } else if (end > len) {
    end = len;
  }

  if (end < start) end = start;
  var newBuf;

  if (Buffer.TYPED_ARRAY_SUPPORT) {
    newBuf = this.subarray(start, end);
    newBuf.__proto__ = Buffer.prototype;
  } else {
    var sliceLen = end - start;
    newBuf = new Buffer(sliceLen, undefined);

    for (var i = 0; i < sliceLen; ++i) {
      newBuf[i] = this[i + start];
    }
  }

  return newBuf;
};
/*
 * Need to make sure that buffer isn't trying to write out of bounds.
 */


function checkOffset(offset, ext, length) {
  if (offset % 1 !== 0 || offset < 0) throw new RangeError('offset is not uint');
  if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length');
}

Buffer.prototype.readUIntLE = function readUIntLE(offset, byteLength, noAssert) {
  offset = offset | 0;
  byteLength = byteLength | 0;
  if (!noAssert) checkOffset(offset, byteLength, this.length);
  var val = this[offset];
  var mul = 1;
  var i = 0;

  while (++i < byteLength && (mul *= 0x100)) {
    val += this[offset + i] * mul;
  }

  return val;
};

Buffer.prototype.readUIntBE = function readUIntBE(offset, byteLength, noAssert) {
  offset = offset | 0;
  byteLength = byteLength | 0;

  if (!noAssert) {
    checkOffset(offset, byteLength, this.length);
  }

  var val = this[offset + --byteLength];
  var mul = 1;

  while (byteLength > 0 && (mul *= 0x100)) {
    val += this[offset + --byteLength] * mul;
  }

  return val;
};

Buffer.prototype.readUInt8 = function readUInt8(offset, noAssert) {
  if (!noAssert) checkOffset(offset, 1, this.length);
  return this[offset];
};

Buffer.prototype.readUInt16LE = function readUInt16LE(offset, noAssert) {
  if (!noAssert) checkOffset(offset, 2, this.length);
  return this[offset] | this[offset + 1] << 8;
};

Buffer.prototype.readUInt16BE = function readUInt16BE(offset, noAssert) {
  if (!noAssert) checkOffset(offset, 2, this.length);
  return this[offset] << 8 | this[offset + 1];
};

Buffer.prototype.readUInt32LE = function readUInt32LE(offset, noAssert) {
  if (!noAssert) checkOffset(offset, 4, this.length);
  return (this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16) + this[offset + 3] * 0x1000000;
};

Buffer.prototype.readUInt32BE = function readUInt32BE(offset, noAssert) {
  if (!noAssert) checkOffset(offset, 4, this.length);
  return this[offset] * 0x1000000 + (this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3]);
};

Buffer.prototype.readIntLE = function readIntLE(offset, byteLength, noAssert) {
  offset = offset | 0;
  byteLength = byteLength | 0;
  if (!noAssert) checkOffset(offset, byteLength, this.length);
  var val = this[offset];
  var mul = 1;
  var i = 0;

  while (++i < byteLength && (mul *= 0x100)) {
    val += this[offset + i] * mul;
  }

  mul *= 0x80;
  if (val >= mul) val -= Math.pow(2, 8 * byteLength);
  return val;
};

Buffer.prototype.readIntBE = function readIntBE(offset, byteLength, noAssert) {
  offset = offset | 0;
  byteLength = byteLength | 0;
  if (!noAssert) checkOffset(offset, byteLength, this.length);
  var i = byteLength;
  var mul = 1;
  var val = this[offset + --i];

  while (i > 0 && (mul *= 0x100)) {
    val += this[offset + --i] * mul;
  }

  mul *= 0x80;
  if (val >= mul) val -= Math.pow(2, 8 * byteLength);
  return val;
};

Buffer.prototype.readInt8 = function readInt8(offset, noAssert) {
  if (!noAssert) checkOffset(offset, 1, this.length);
  if (!(this[offset] & 0x80)) return this[offset];
  return (0xff - this[offset] + 1) * -1;
};

Buffer.prototype.readInt16LE = function readInt16LE(offset, noAssert) {
  if (!noAssert) checkOffset(offset, 2, this.length);
  var val = this[offset] | this[offset + 1] << 8;
  return val & 0x8000 ? val | 0xFFFF0000 : val;
};

Buffer.prototype.readInt16BE = function readInt16BE(offset, noAssert) {
  if (!noAssert) checkOffset(offset, 2, this.length);
  var val = this[offset + 1] | this[offset] << 8;
  return val & 0x8000 ? val | 0xFFFF0000 : val;
};

Buffer.prototype.readInt32LE = function readInt32LE(offset, noAssert) {
  if (!noAssert) checkOffset(offset, 4, this.length);
  return this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16 | this[offset + 3] << 24;
};

Buffer.prototype.readInt32BE = function readInt32BE(offset, noAssert) {
  if (!noAssert) checkOffset(offset, 4, this.length);
  return this[offset] << 24 | this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3];
};

Buffer.prototype.readFloatLE = function readFloatLE(offset, noAssert) {
  if (!noAssert) checkOffset(offset, 4, this.length);
  return ieee754.read(this, offset, true, 23, 4);
};

Buffer.prototype.readFloatBE = function readFloatBE(offset, noAssert) {
  if (!noAssert) checkOffset(offset, 4, this.length);
  return ieee754.read(this, offset, false, 23, 4);
};

Buffer.prototype.readDoubleLE = function readDoubleLE(offset, noAssert) {
  if (!noAssert) checkOffset(offset, 8, this.length);
  return ieee754.read(this, offset, true, 52, 8);
};

Buffer.prototype.readDoubleBE = function readDoubleBE(offset, noAssert) {
  if (!noAssert) checkOffset(offset, 8, this.length);
  return ieee754.read(this, offset, false, 52, 8);
};

function checkInt(buf, value, offset, ext, max, min) {
  if (!Buffer.isBuffer(buf)) throw new TypeError('"buffer" argument must be a Buffer instance');
  if (value > max || value < min) throw new RangeError('"value" argument is out of bounds');
  if (offset + ext > buf.length) throw new RangeError('Index out of range');
}

Buffer.prototype.writeUIntLE = function writeUIntLE(value, offset, byteLength, noAssert) {
  value = +value;
  offset = offset | 0;
  byteLength = byteLength | 0;

  if (!noAssert) {
    var maxBytes = Math.pow(2, 8 * byteLength) - 1;
    checkInt(this, value, offset, byteLength, maxBytes, 0);
  }

  var mul = 1;
  var i = 0;
  this[offset] = value & 0xFF;

  while (++i < byteLength && (mul *= 0x100)) {
    this[offset + i] = value / mul & 0xFF;
  }

  return offset + byteLength;
};

Buffer.prototype.writeUIntBE = function writeUIntBE(value, offset, byteLength, noAssert) {
  value = +value;
  offset = offset | 0;
  byteLength = byteLength | 0;

  if (!noAssert) {
    var maxBytes = Math.pow(2, 8 * byteLength) - 1;
    checkInt(this, value, offset, byteLength, maxBytes, 0);
  }

  var i = byteLength - 1;
  var mul = 1;
  this[offset + i] = value & 0xFF;

  while (--i >= 0 && (mul *= 0x100)) {
    this[offset + i] = value / mul & 0xFF;
  }

  return offset + byteLength;
};

Buffer.prototype.writeUInt8 = function writeUInt8(value, offset, noAssert) {
  value = +value;
  offset = offset | 0;
  if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0);
  if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value);
  this[offset] = value & 0xff;
  return offset + 1;
};

function objectWriteUInt16(buf, value, offset, littleEndian) {
  if (value < 0) value = 0xffff + value + 1;

  for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {
    buf[offset + i] = (value & 0xff << 8 * (littleEndian ? i : 1 - i)) >>> (littleEndian ? i : 1 - i) * 8;
  }
}

Buffer.prototype.writeUInt16LE = function writeUInt16LE(value, offset, noAssert) {
  value = +value;
  offset = offset | 0;
  if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);

  if (Buffer.TYPED_ARRAY_SUPPORT) {
    this[offset] = value & 0xff;
    this[offset + 1] = value >>> 8;
  } else {
    objectWriteUInt16(this, value, offset, true);
  }

  return offset + 2;
};

Buffer.prototype.writeUInt16BE = function writeUInt16BE(value, offset, noAssert) {
  value = +value;
  offset = offset | 0;
  if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);

  if (Buffer.TYPED_ARRAY_SUPPORT) {
    this[offset] = value >>> 8;
    this[offset + 1] = value & 0xff;
  } else {
    objectWriteUInt16(this, value, offset, false);
  }

  return offset + 2;
};

function objectWriteUInt32(buf, value, offset, littleEndian) {
  if (value < 0) value = 0xffffffff + value + 1;

  for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {
    buf[offset + i] = value >>> (littleEndian ? i : 3 - i) * 8 & 0xff;
  }
}

Buffer.prototype.writeUInt32LE = function writeUInt32LE(value, offset, noAssert) {
  value = +value;
  offset = offset | 0;
  if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);

  if (Buffer.TYPED_ARRAY_SUPPORT) {
    this[offset + 3] = value >>> 24;
    this[offset + 2] = value >>> 16;
    this[offset + 1] = value >>> 8;
    this[offset] = value & 0xff;
  } else {
    objectWriteUInt32(this, value, offset, true);
  }

  return offset + 4;
};

Buffer.prototype.writeUInt32BE = function writeUInt32BE(value, offset, noAssert) {
  value = +value;
  offset = offset | 0;
  if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);

  if (Buffer.TYPED_ARRAY_SUPPORT) {
    this[offset] = value >>> 24;
    this[offset + 1] = value >>> 16;
    this[offset + 2] = value >>> 8;
    this[offset + 3] = value & 0xff;
  } else {
    objectWriteUInt32(this, value, offset, false);
  }

  return offset + 4;
};

Buffer.prototype.writeIntLE = function writeIntLE(value, offset, byteLength, noAssert) {
  value = +value;
  offset = offset | 0;

  if (!noAssert) {
    var limit = Math.pow(2, 8 * byteLength - 1);
    checkInt(this, value, offset, byteLength, limit - 1, -limit);
  }

  var i = 0;
  var mul = 1;
  var sub = 0;
  this[offset] = value & 0xFF;

  while (++i < byteLength && (mul *= 0x100)) {
    if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {
      sub = 1;
    }

    this[offset + i] = (value / mul >> 0) - sub & 0xFF;
  }

  return offset + byteLength;
};

Buffer.prototype.writeIntBE = function writeIntBE(value, offset, byteLength, noAssert) {
  value = +value;
  offset = offset | 0;

  if (!noAssert) {
    var limit = Math.pow(2, 8 * byteLength - 1);
    checkInt(this, value, offset, byteLength, limit - 1, -limit);
  }

  var i = byteLength - 1;
  var mul = 1;
  var sub = 0;
  this[offset + i] = value & 0xFF;

  while (--i >= 0 && (mul *= 0x100)) {
    if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {
      sub = 1;
    }

    this[offset + i] = (value / mul >> 0) - sub & 0xFF;
  }

  return offset + byteLength;
};

Buffer.prototype.writeInt8 = function writeInt8(value, offset, noAssert) {
  value = +value;
  offset = offset | 0;
  if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80);
  if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value);
  if (value < 0) value = 0xff + value + 1;
  this[offset] = value & 0xff;
  return offset + 1;
};

Buffer.prototype.writeInt16LE = function writeInt16LE(value, offset, noAssert) {
  value = +value;
  offset = offset | 0;
  if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);

  if (Buffer.TYPED_ARRAY_SUPPORT) {
    this[offset] = value & 0xff;
    this[offset + 1] = value >>> 8;
  } else {
    objectWriteUInt16(this, value, offset, true);
  }

  return offset + 2;
};

Buffer.prototype.writeInt16BE = function writeInt16BE(value, offset, noAssert) {
  value = +value;
  offset = offset | 0;
  if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);

  if (Buffer.TYPED_ARRAY_SUPPORT) {
    this[offset] = value >>> 8;
    this[offset + 1] = value & 0xff;
  } else {
    objectWriteUInt16(this, value, offset, false);
  }

  return offset + 2;
};

Buffer.prototype.writeInt32LE = function writeInt32LE(value, offset, noAssert) {
  value = +value;
  offset = offset | 0;
  if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);

  if (Buffer.TYPED_ARRAY_SUPPORT) {
    this[offset] = value & 0xff;
    this[offset + 1] = value >>> 8;
    this[offset + 2] = value >>> 16;
    this[offset + 3] = value >>> 24;
  } else {
    objectWriteUInt32(this, value, offset, true);
  }

  return offset + 4;
};

Buffer.prototype.writeInt32BE = function writeInt32BE(value, offset, noAssert) {
  value = +value;
  offset = offset | 0;
  if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);
  if (value < 0) value = 0xffffffff + value + 1;

  if (Buffer.TYPED_ARRAY_SUPPORT) {
    this[offset] = value >>> 24;
    this[offset + 1] = value >>> 16;
    this[offset + 2] = value >>> 8;
    this[offset + 3] = value & 0xff;
  } else {
    objectWriteUInt32(this, value, offset, false);
  }

  return offset + 4;
};

function checkIEEE754(buf, value, offset, ext, max, min) {
  if (offset + ext > buf.length) throw new RangeError('Index out of range');
  if (offset < 0) throw new RangeError('Index out of range');
}

function writeFloat(buf, value, offset, littleEndian, noAssert) {
  if (!noAssert) {
    checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38);
  }

  ieee754.write(buf, value, offset, littleEndian, 23, 4);
  return offset + 4;
}

Buffer.prototype.writeFloatLE = function writeFloatLE(value, offset, noAssert) {
  return writeFloat(this, value, offset, true, noAssert);
};

Buffer.prototype.writeFloatBE = function writeFloatBE(value, offset, noAssert) {
  return writeFloat(this, value, offset, false, noAssert);
};

function writeDouble(buf, value, offset, littleEndian, noAssert) {
  if (!noAssert) {
    checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308);
  }

  ieee754.write(buf, value, offset, littleEndian, 52, 8);
  return offset + 8;
}

Buffer.prototype.writeDoubleLE = function writeDoubleLE(value, offset, noAssert) {
  return writeDouble(this, value, offset, true, noAssert);
};

Buffer.prototype.writeDoubleBE = function writeDoubleBE(value, offset, noAssert) {
  return writeDouble(this, value, offset, false, noAssert);
}; // copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)


Buffer.prototype.copy = function copy(target, targetStart, start, end) {
  if (!start) start = 0;
  if (!end && end !== 0) end = this.length;
  if (targetStart >= target.length) targetStart = target.length;
  if (!targetStart) targetStart = 0;
  if (end > 0 && end < start) end = start; // Copy 0 bytes; we're done

  if (end === start) return 0;
  if (target.length === 0 || this.length === 0) return 0; // Fatal error conditions

  if (targetStart < 0) {
    throw new RangeError('targetStart out of bounds');
  }

  if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds');
  if (end < 0) throw new RangeError('sourceEnd out of bounds'); // Are we oob?

  if (end > this.length) end = this.length;

  if (target.length - targetStart < end - start) {
    end = target.length - targetStart + start;
  }

  var len = end - start;
  var i;

  if (this === target && start < targetStart && targetStart < end) {
    // descending copy from end
    for (i = len - 1; i >= 0; --i) {
      target[i + targetStart] = this[i + start];
    }
  } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {
    // ascending copy from start
    for (i = 0; i < len; ++i) {
      target[i + targetStart] = this[i + start];
    }
  } else {
    Uint8Array.prototype.set.call(target, this.subarray(start, start + len), targetStart);
  }

  return len;
}; // Usage:
//    buffer.fill(number[, offset[, end]])
//    buffer.fill(buffer[, offset[, end]])
//    buffer.fill(string[, offset[, end]][, encoding])


Buffer.prototype.fill = function fill(val, start, end, encoding) {
  // Handle string cases:
  if (typeof val === 'string') {
    if (typeof start === 'string') {
      encoding = start;
      start = 0;
      end = this.length;
    } else if (typeof end === 'string') {
      encoding = end;
      end = this.length;
    }

    if (val.length === 1) {
      var code = val.charCodeAt(0);

      if (code < 256) {
        val = code;
      }
    }

    if (encoding !== undefined && typeof encoding !== 'string') {
      throw new TypeError('encoding must be a string');
    }

    if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {
      throw new TypeError('Unknown encoding: ' + encoding);
    }
  } else if (typeof val === 'number') {
    val = val & 255;
  } // Invalid ranges are not set to a default, so can range check early.


  if (start < 0 || this.length < start || this.length < end) {
    throw new RangeError('Out of range index');
  }

  if (end <= start) {
    return this;
  }

  start = start >>> 0;
  end = end === undefined ? this.length : end >>> 0;
  if (!val) val = 0;
  var i;

  if (typeof val === 'number') {
    for (i = start; i < end; ++i) {
      this[i] = val;
    }
  } else {
    var bytes = Buffer.isBuffer(val) ? val : utf8ToBytes(new Buffer(val, encoding).toString());
    var len = bytes.length;

    for (i = 0; i < end - start; ++i) {
      this[i + start] = bytes[i % len];
    }
  }

  return this;
}; // HELPER FUNCTIONS
// ================


var INVALID_BASE64_RE = /[^+\/0-9A-Za-z-_]/g;

function base64clean(str) {
  // Node strips out invalid characters like \n and \t from the string, base64-js does not
  str = stringtrim(str).replace(INVALID_BASE64_RE, ''); // Node converts strings with length < 2 to ''

  if (str.length < 2) return ''; // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not

  while (str.length % 4 !== 0) {
    str = str + '=';
  }

  return str;
}

function stringtrim(str) {
  if (str.trim) return str.trim();
  return str.replace(/^\s+|\s+$/g, '');
}

function toHex(n) {
  if (n < 16) return '0' + n.toString(16);
  return n.toString(16);
}

function utf8ToBytes(string, units) {
  units = units || Infinity;
  var codePoint;
  var length = string.length;
  var leadSurrogate = null;
  var bytes = [];

  for (var i = 0; i < length; ++i) {
    codePoint = string.charCodeAt(i); // is surrogate component

    if (codePoint > 0xD7FF && codePoint < 0xE000) {
      // last char was a lead
      if (!leadSurrogate) {
        // no lead yet
        if (codePoint > 0xDBFF) {
          // unexpected trail
          if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);
          continue;
        } else if (i + 1 === length) {
          // unpaired lead
          if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);
          continue;
        } // valid lead


        leadSurrogate = codePoint;
        continue;
      } // 2 leads in a row


      if (codePoint < 0xDC00) {
        if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);
        leadSurrogate = codePoint;
        continue;
      } // valid surrogate pair


      codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000;
    } else if (leadSurrogate) {
      // valid bmp char, but last char was a lead
      if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);
    }

    leadSurrogate = null; // encode utf8

    if (codePoint < 0x80) {
      if ((units -= 1) < 0) break;
      bytes.push(codePoint);
    } else if (codePoint < 0x800) {
      if ((units -= 2) < 0) break;
      bytes.push(codePoint >> 0x6 | 0xC0, codePoint & 0x3F | 0x80);
    } else if (codePoint < 0x10000) {
      if ((units -= 3) < 0) break;
      bytes.push(codePoint >> 0xC | 0xE0, codePoint >> 0x6 & 0x3F | 0x80, codePoint & 0x3F | 0x80);
    } else if (codePoint < 0x110000) {
      if ((units -= 4) < 0) break;
      bytes.push(codePoint >> 0x12 | 0xF0, codePoint >> 0xC & 0x3F | 0x80, codePoint >> 0x6 & 0x3F | 0x80, codePoint & 0x3F | 0x80);
    } else {
      throw new Error('Invalid code point');
    }
  }

  return bytes;
}

function asciiToBytes(str) {
  var byteArray = [];

  for (var i = 0; i < str.length; ++i) {
    // Node's code seems to be doing this and not & 0x7F..
    byteArray.push(str.charCodeAt(i) & 0xFF);
  }

  return byteArray;
}

function utf16leToBytes(str, units) {
  var c, hi, lo;
  var byteArray = [];

  for (var i = 0; i < str.length; ++i) {
    if ((units -= 2) < 0) break;
    c = str.charCodeAt(i);
    hi = c >> 8;
    lo = c % 256;
    byteArray.push(lo);
    byteArray.push(hi);
  }

  return byteArray;
}

function base64ToBytes(str) {
  return base64.toByteArray(base64clean(str));
}

function blitBuffer(src, dst, offset, length) {
  for (var i = 0; i < length; ++i) {
    if (i + offset >= dst.length || i >= src.length) break;
    dst[i + offset] = src[i];
  }

  return i;
}

function isnan(val) {
  return val !== val; // eslint-disable-line no-self-compare
}
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("yLpj")))

/***/ }),

/***/ "HEbw":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


exports.randomBytes = exports.rng = exports.pseudoRandomBytes = exports.prng = __webpack_require__("Edxu");
exports.createHash = exports.Hash = __webpack_require__("mObS");
exports.createHmac = exports.Hmac = __webpack_require__("Giow");

var algos = __webpack_require__("EW2V");

var algoKeys = Object.keys(algos);
var hashes = ['sha1', 'sha224', 'sha256', 'sha384', 'sha512', 'md5', 'rmd160'].concat(algoKeys);

exports.getHashes = function () {
  return hashes;
};

var p = __webpack_require__("oJl4");

exports.pbkdf2 = p.pbkdf2;
exports.pbkdf2Sync = p.pbkdf2Sync;

var aes = __webpack_require__("lWpZ");

exports.Cipher = aes.Cipher;
exports.createCipher = aes.createCipher;
exports.Cipheriv = aes.Cipheriv;
exports.createCipheriv = aes.createCipheriv;
exports.Decipher = aes.Decipher;
exports.createDecipher = aes.createDecipher;
exports.Decipheriv = aes.Decipheriv;
exports.createDecipheriv = aes.createDecipheriv;
exports.getCiphers = aes.getCiphers;
exports.listCiphers = aes.listCiphers;

var dh = __webpack_require__("ANxK");

exports.DiffieHellmanGroup = dh.DiffieHellmanGroup;
exports.createDiffieHellmanGroup = dh.createDiffieHellmanGroup;
exports.getDiffieHellman = dh.getDiffieHellman;
exports.createDiffieHellman = dh.createDiffieHellman;
exports.DiffieHellman = dh.DiffieHellman;

var sign = __webpack_require__("tpL1");

exports.createSign = sign.createSign;
exports.Sign = sign.Sign;
exports.createVerify = sign.createVerify;
exports.Verify = sign.Verify;
exports.createECDH = __webpack_require__("4dMO");

var publicEncrypt = __webpack_require__("ZEK9");

exports.publicEncrypt = publicEncrypt.publicEncrypt;
exports.privateEncrypt = publicEncrypt.privateEncrypt;
exports.publicDecrypt = publicEncrypt.publicDecrypt;
exports.privateDecrypt = publicEncrypt.privateDecrypt; // the least I can do is make error messages for the rest of the node.js/crypto api.
// ;[
//   'createCredentials'
// ].forEach(function (name) {
//   exports[name] = function () {
//     throw new Error([
//       'sorry, ' + name + ' is not implemented yet',
//       'we accept pull requests',
//       'https://github.com/crypto-browserify/crypto-browserify'
//     ].join('\n'))
//   }
// })

var rf = __webpack_require__("dcwN");

exports.randomFill = rf.randomFill;
exports.randomFillSync = rf.randomFillSync;

exports.createCredentials = function () {
  throw new Error(['sorry, createCredentials is not implemented yet', 'we accept pull requests', 'https://github.com/crypto-browserify/crypto-browserify'].join('\n'));
};

exports.constants = {
  'DH_CHECK_P_NOT_SAFE_PRIME': 2,
  'DH_CHECK_P_NOT_PRIME': 1,
  'DH_UNABLE_TO_CHECK_GENERATOR': 4,
  'DH_NOT_SUITABLE_GENERATOR': 8,
  'NPN_ENABLED': 1,
  'ALPN_ENABLED': 1,
  'RSA_PKCS1_PADDING': 1,
  'RSA_SSLV23_PADDING': 2,
  'RSA_NO_PADDING': 3,
  'RSA_PKCS1_OAEP_PADDING': 4,
  'RSA_X931_PADDING': 5,
  'RSA_PKCS1_PSS_PADDING': 6,
  'POINT_CONVERSION_COMPRESSED': 2,
  'POINT_CONVERSION_UNCOMPRESSED': 4,
  'POINT_CONVERSION_HYBRID': 6
};

/***/ }),

/***/ "HEoz":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = __webpack_require__("umFS")() ? __webpack_require__("fEpb").Symbol : __webpack_require__("lO5s");

/***/ }),

/***/ "HGBq":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = exports.SpectrumContext = void 0;

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _filterDOMProps = _interopRequireDefault(__webpack_require__("Cv/Q"));

var _hostStyleConfig = _interopRequireDefault(__webpack_require__("Zt3U"));

var _ownerDocument = _interopRequireDefault(__webpack_require__("z9HI"));

var _Provider = _interopRequireDefault(__webpack_require__("htpE"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

var _reactDom = _interopRequireDefault(__webpack_require__("i8i4"));

const _excluded = ["theme", "scale", "productId", "disableNativeControls", "boundariesElement", "className", "style", "children"];

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

if (false) {} else if (false) {} else {
  __webpack_require__("XkUF");
}

if (true) __webpack_require__("3iu+");
if (true) __webpack_require__("35Vt");
if (true) __webpack_require__("Iqan");
if (true) __webpack_require__("EZvW");

const SpectrumContext = /*#__PURE__*/_react.default.createContext({
  theme: 'light',
  scale: 'medium',
  productId: 'default',
  boundariesElement: () => (0, _ownerDocument.default)(void 0).body,
  disableNativeControls: false,
  overlay: null
});

exports.SpectrumContext = SpectrumContext;

class UxpProvider extends _Provider.default {
  constructor(props) {
    super(props);
    this.state = {
      overlay: {
        overlayRef: null,
        data: {
          visible: false,
          callback: undefined,
          boundingRect: null
        }
      }
    };
  }

  setOverlay(overlayRef, data) {
    this.setState({
      overlay: {
        overlayRef,
        data
      }
    });
  }

  configureTypekit() {// Do nothing for Uxp - skip loading typekit for UXP
  }

  componentDidMount() {
    // use this prop to use any host specified theme in your extension, by default no host styling is applied
    if (this.props.useHostThemes) {
      (0, _hostStyleConfig.default)();
    }

    this.providerRef.setAttribute('setOverlay', this.setOverlay.bind(this));
  }

  render() {
    let _this$props = this.props,
        {
      theme = 'light',
      scale = 'medium',
      productId = '',
      disableNativeControls,
      boundariesElement,
      className,
      style: otherStyles = {},
      children
    } = _this$props,
        otherProps = _objectWithoutProperties(_this$props, _excluded);

    const {
      overlay
    } = this.state;
    const styles = {
      'fontFamily': 'Adobe Clean'
    };
    return /*#__PURE__*/_react.default.createElement(SpectrumContext.Provider, {
      value: {
        theme,
        scale,
        productId,
        boundariesElement,
        disableNativeControls,
        overlay
      }
    }, /*#__PURE__*/_react.default.createElement("div", _extends({
      ref: r => this.providerRef = r
    }, (0, _filterDOMProps.default)(otherProps), {
      style: Object.assign({}, styles, otherStyles),
      className: (0, _classnames.default)('react-spectrum-provider', `spectrum--${theme}`, className, `spectrum--${scale}`, 'spectrum', 'spectrum--override')
    }), typeof children !== 'string' && children));
  }

}

exports.default = UxpProvider;

/***/ }),

/***/ "HKUX":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var _UxpOptions = _interopRequireDefault(__webpack_require__("zvwv"));

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

module.exports = _UxpOptions.default.select('Video', () => __webpack_require__("XO7w"), () => __webpack_require__("V2gg"));

/***/ }),

/***/ "HKjm":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

/*
Copyright (c) 2014, Yahoo! Inc. All rights reserved.
Copyrights licensed under the New BSD License.
See the accompanying LICENSE file for terms.
*/

Object.defineProperty(exports, "__esModule", {
  value: true
});
/* jslint esnext: true */

var intl_messageformat_1 = __webpack_require__("2UD4");

var diff_1 = __webpack_require__("jBYB");

var es5_1 = __webpack_require__("obDU");

exports.default = RelativeFormat; // -----------------------------------------------------------------------------

var FIELDS = ['second', 'second-short', 'minute', 'minute-short', 'hour', 'hour-short', 'day', 'day-short', 'month', 'month-short', 'year', 'year-short'];
var STYLES = ['best fit', 'numeric']; // -- RelativeFormat -----------------------------------------------------------

function RelativeFormat(locales, options) {
  options = options || {}; // Make a copy of `locales` if it's an array, so that it doesn't change
  // since it's used lazily.

  if (es5_1.isArray(locales)) {
    locales = locales.concat();
  }

  es5_1.defineProperty(this, '_locale', {
    value: this._resolveLocale(locales)
  });
  es5_1.defineProperty(this, '_options', {
    value: {
      style: this._resolveStyle(options.style),
      units: this._isValidUnits(options.units) && options.units
    }
  });
  es5_1.defineProperty(this, '_locales', {
    value: locales
  });
  es5_1.defineProperty(this, '_fields', {
    value: this._findFields(this._locale)
  });
  es5_1.defineProperty(this, '_messages', {
    value: es5_1.objCreate(null)
  }); // "Bind" `format()` method to `this` so it can be passed by reference like
  // the other `Intl` APIs.

  var relativeFormat = this;

  this.format = function format(date, options) {
    return relativeFormat._format(date, options);
  };
} // Define internal private properties for dealing with locale data.


es5_1.defineProperty(RelativeFormat, '__localeData__', {
  value: es5_1.objCreate(null)
});
es5_1.defineProperty(RelativeFormat, '__addLocaleData', {
  value: function () {
    for (var i = 0; i < arguments.length; i++) {
      var datum = arguments[i];

      if (!(datum && datum.locale)) {
        throw new Error('Locale data provided to IntlRelativeFormat is missing a ' + '`locale` property value');
      }

      RelativeFormat.__localeData__[datum.locale.toLowerCase()] = datum; // Add data to IntlMessageFormat.

      intl_messageformat_1.default.__addLocaleData(datum);
    }
  }
}); // Define public `defaultLocale` property which can be set by the developer, or
// it will be set when the first RelativeFormat instance is created by
// leveraging the resolved locale from `Intl`.

es5_1.defineProperty(RelativeFormat, 'defaultLocale', {
  enumerable: true,
  writable: true,
  value: undefined
}); // Define public `thresholds` property which can be set by the developer, and
// defaults to relative time thresholds from moment.js.

es5_1.defineProperty(RelativeFormat, 'thresholds', {
  enumerable: true,
  value: {
    second: 45,
    'second-short': 45,
    minute: 45,
    'minute-short': 45,
    hour: 22,
    'hour-short': 22,
    day: 26,
    'day-short': 26,
    month: 11,
    'month-short': 11 // months to year

  }
});

RelativeFormat.prototype.resolvedOptions = function () {
  return {
    locale: this._locale,
    style: this._options.style,
    units: this._options.units
  };
};

RelativeFormat.prototype._compileMessage = function (units) {
  // `this._locales` is the original set of locales the user specified to the
  // constructor, while `this._locale` is the resolved root locale.
  var locales = this._locales;
  var resolvedLocale = this._locale;
  var field = this._fields[units];
  var relativeTime = field.relativeTime;
  var future = '';
  var past = '';
  var i;

  for (i in relativeTime.future) {
    if (relativeTime.future.hasOwnProperty(i)) {
      future += ' ' + i + ' {' + relativeTime.future[i].replace('{0}', '#') + '}';
    }
  }

  for (i in relativeTime.past) {
    if (relativeTime.past.hasOwnProperty(i)) {
      past += ' ' + i + ' {' + relativeTime.past[i].replace('{0}', '#') + '}';
    }
  }

  var message = '{when, select, future {{0, plural, ' + future + '}}' + 'past {{0, plural, ' + past + '}}}'; // Create the synthetic IntlMessageFormat instance using the original
  // locales value specified by the user when constructing the the parent
  // IntlRelativeFormat instance.

  return new intl_messageformat_1.default(message, locales);
};

RelativeFormat.prototype._getMessage = function (units) {
  var messages = this._messages; // Create a new synthetic message based on the locale data from CLDR.

  if (!messages[units]) {
    messages[units] = this._compileMessage(units);
  }

  return messages[units];
};

RelativeFormat.prototype._getRelativeUnits = function (diff, units) {
  var field = this._fields[units];

  if (field.relative) {
    return field.relative[diff];
  }
};

RelativeFormat.prototype._findFields = function (locale) {
  var localeData = RelativeFormat.__localeData__;
  var data = localeData[locale.toLowerCase()]; // The locale data is de-duplicated, so we have to traverse the locale's
  // hierarchy until we find `fields` to return.

  while (data) {
    if (data.fields) {
      return data.fields;
    }

    data = data.parentLocale && localeData[data.parentLocale.toLowerCase()];
  }

  throw new Error('Locale data added to IntlRelativeFormat is missing `fields` for :' + locale);
};

RelativeFormat.prototype._format = function (date, options) {
  var now = options && options.now !== undefined ? options.now : es5_1.dateNow();

  if (date === undefined) {
    date = now;
  } // Determine if the `date` and optional `now` values are valid, and throw a
  // similar error to what `Intl.DateTimeFormat#format()` would throw.


  if (!isFinite(now)) {
    throw new RangeError('The `now` option provided to IntlRelativeFormat#format() is not ' + 'in valid range.');
  }

  if (!isFinite(date)) {
    throw new RangeError('The date value provided to IntlRelativeFormat#format() is not ' + 'in valid range.');
  }

  var diffReport = diff_1.default(now, date);

  var units = this._options.units || this._selectUnits(diffReport);

  var diffInUnits = diffReport[units];

  if (this._options.style !== 'numeric') {
    var relativeUnits = this._getRelativeUnits(diffInUnits, units);

    if (relativeUnits) {
      return relativeUnits;
    }
  }

  return this._getMessage(units).format({
    '0': Math.abs(diffInUnits),
    when: diffInUnits < 0 ? 'past' : 'future'
  });
};

RelativeFormat.prototype._isValidUnits = function (units) {
  if (!units || es5_1.arrIndexOf.call(FIELDS, units) >= 0) {
    return true;
  }

  if (typeof units === 'string') {
    var suggestion = /s$/.test(units) && units.substr(0, units.length - 1);

    if (suggestion && es5_1.arrIndexOf.call(FIELDS, suggestion) >= 0) {
      throw new Error('"' + units + '" is not a valid IntlRelativeFormat `units` ' + 'value, did you mean: ' + suggestion);
    }
  }

  throw new Error('"' + units + '" is not a valid IntlRelativeFormat `units` value, it ' + 'must be one of: "' + FIELDS.join('", "') + '"');
};

RelativeFormat.prototype._resolveLocale = function (locales) {
  if (typeof locales === 'string') {
    locales = [locales];
  } // Create a copy of the array so we can push on the default locale.


  locales = (locales || []).concat(RelativeFormat.defaultLocale);
  var localeData = RelativeFormat.__localeData__;
  var i, len, localeParts, data; // Using the set of locales + the default locale, we look for the first one
  // which that has been registered. When data does not exist for a locale, we
  // traverse its ancestors to find something that's been registered within
  // its hierarchy of locales. Since we lack the proper `parentLocale` data
  // here, we must take a naive approach to traversal.

  for (i = 0, len = locales.length; i < len; i += 1) {
    localeParts = locales[i].toLowerCase().split('-');

    while (localeParts.length) {
      data = localeData[localeParts.join('-')];

      if (data) {
        // Return the normalized locale string; e.g., we return "en-US",
        // instead of "en-us".
        return data.locale;
      }

      localeParts.pop();
    }
  }

  var defaultLocale = locales.pop();
  throw new Error('No locale data has been added to IntlRelativeFormat for: ' + locales.join(', ') + ', or the default locale: ' + defaultLocale);
};

RelativeFormat.prototype._resolveStyle = function (style) {
  // Default to "best fit" style.
  if (!style) {
    return STYLES[0];
  }

  if (es5_1.arrIndexOf.call(STYLES, style) >= 0) {
    return style;
  }

  throw new Error('"' + style + '" is not a valid IntlRelativeFormat `style` value, it ' + 'must be one of: "' + STYLES.join('", "') + '"');
};

RelativeFormat.prototype._selectUnits = function (diffReport) {
  var i, l, units;
  var fields = FIELDS.filter(function (field) {
    return field.indexOf('-short') < 1;
  });

  for (i = 0, l = fields.length; i < l; i += 1) {
    units = fields[i];

    if (Math.abs(diffReport[units]) < RelativeFormat.thresholds[units]) {
      break;
    }
  }

  return units;
};

/***/ }),

/***/ "HR75":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return SyncPromise; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return rejectedSyncPromise; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return resolvedSyncPromise; });
/* harmony import */ var _is_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("9AQC");

/* eslint-disable @typescript-eslint/explicit-function-return-type */

/** SyncPromise internal states */

var States;

(function (States) {
  /** Pending */
  const PENDING = 0;
  States[States["PENDING"] = PENDING] = "PENDING";
  /** Resolved / OK */

  const RESOLVED = 1;
  States[States["RESOLVED"] = RESOLVED] = "RESOLVED";
  /** Rejected / Error */

  const REJECTED = 2;
  States[States["REJECTED"] = REJECTED] = "REJECTED";
})(States || (States = {})); // Overloads so we can call resolvedSyncPromise without arguments and generic argument

/**
 * Creates a resolved sync promise.
 *
 * @param value the value to resolve the promise with
 * @returns the resolved sync promise
 */


function resolvedSyncPromise(value) {
  return new SyncPromise(resolve => {
    resolve(value);
  });
}
/**
 * Creates a rejected sync promise.
 *
 * @param value the value to reject the promise with
 * @returns the rejected sync promise
 */


function rejectedSyncPromise(reason) {
  return new SyncPromise((_, reject) => {
    reject(reason);
  });
}
/**
 * Thenable class that behaves like a Promise and follows it's interface
 * but is not async internally
 */


class SyncPromise {
  __init() {
    this._state = States.PENDING;
  }

  __init2() {
    this._handlers = [];
  }

  constructor(executor) {
    ;

    SyncPromise.prototype.__init.call(this);

    SyncPromise.prototype.__init2.call(this);

    SyncPromise.prototype.__init3.call(this);

    SyncPromise.prototype.__init4.call(this);

    SyncPromise.prototype.__init5.call(this);

    SyncPromise.prototype.__init6.call(this);

    try {
      executor(this._resolve, this._reject);
    } catch (e) {
      this._reject(e);
    }
  }
  /** JSDoc */


  then(onfulfilled, onrejected) {
    return new SyncPromise((resolve, reject) => {
      this._handlers.push([false, result => {
        if (!onfulfilled) {
          // TODO: ¯\_(ツ)_/¯
          // TODO: FIXME
          resolve(result);
        } else {
          try {
            resolve(onfulfilled(result));
          } catch (e) {
            reject(e);
          }
        }
      }, reason => {
        if (!onrejected) {
          reject(reason);
        } else {
          try {
            resolve(onrejected(reason));
          } catch (e) {
            reject(e);
          }
        }
      }]);

      this._executeHandlers();
    });
  }
  /** JSDoc */


  catch(onrejected) {
    return this.then(val => val, onrejected);
  }
  /** JSDoc */


  finally(onfinally) {
    return new SyncPromise((resolve, reject) => {
      let val;
      let isRejected;
      return this.then(value => {
        isRejected = false;
        val = value;

        if (onfinally) {
          onfinally();
        }
      }, reason => {
        isRejected = true;
        val = reason;

        if (onfinally) {
          onfinally();
        }
      }).then(() => {
        if (isRejected) {
          reject(val);
          return;
        }

        resolve(val);
      });
    });
  }
  /** JSDoc */


  __init3() {
    this._resolve = value => {
      this._setResult(States.RESOLVED, value);
    };
  }
  /** JSDoc */


  __init4() {
    this._reject = reason => {
      this._setResult(States.REJECTED, reason);
    };
  }
  /** JSDoc */


  __init5() {
    this._setResult = (state, value) => {
      if (this._state !== States.PENDING) {
        return;
      }

      if (Object(_is_js__WEBPACK_IMPORTED_MODULE_0__[/* isThenable */ "n"])(value)) {
        void value.then(this._resolve, this._reject);
        return;
      }

      this._state = state;
      this._value = value;

      this._executeHandlers();
    };
  }
  /** JSDoc */


  __init6() {
    this._executeHandlers = () => {
      if (this._state === States.PENDING) {
        return;
      }

      const cachedHandlers = this._handlers.slice();

      this._handlers = [];
      cachedHandlers.forEach(handler => {
        if (handler[0]) {
          return;
        }

        if (this._state === States.RESOLVED) {
          // eslint-disable-next-line @typescript-eslint/no-floating-promises
          handler[1](this._value);
        }

        if (this._state === States.REJECTED) {
          handler[2](this._value);
        }

        handler[0] = true;
      });
    };
  }

}



/***/ }),

/***/ "HUu9":
/***/ (function(module, exports, __webpack_require__) {

module.exports = __webpack_require__.p + "assets/start/Banner_Spaces@2x.png";

/***/ }),

/***/ "Ha/K":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("path", {
  d: "M24 18a1.988 1.988 0 0 1-.585 1.409l-7.983 7.98a2 2 0 1 1-2.871-2.772l.049-.049L19.181 18l-6.572-6.57a2 2 0 0 1 2.773-2.87l.049.049 7.983 7.98A1.988 1.988 0 0 1 24 18z"
}));

/***/ }),

/***/ "Hfiw":
/***/ (function(module, exports, __webpack_require__) {

// 19.1.3.19 Object.setPrototypeOf(O, proto)
var $export = __webpack_require__("Y7ZC");

$export($export.S, 'Object', {
  setPrototypeOf: __webpack_require__("6tYh").set
});

/***/ }),

/***/ "Hjy1":
/***/ (function(module, exports, __webpack_require__) {

var CipherBase = __webpack_require__("ZDAU");

var des = __webpack_require__("FUXG");

var inherits = __webpack_require__("P7XM");

var Buffer = __webpack_require__("hwdV").Buffer;

var modes = {
  'des-ede3-cbc': des.CBC.instantiate(des.EDE),
  'des-ede3': des.EDE,
  'des-ede-cbc': des.CBC.instantiate(des.EDE),
  'des-ede': des.EDE,
  'des-cbc': des.CBC.instantiate(des.DES),
  'des-ecb': des.DES
};
modes.des = modes['des-cbc'];
modes.des3 = modes['des-ede3-cbc'];
module.exports = DES;
inherits(DES, CipherBase);

function DES(opts) {
  CipherBase.call(this);
  var modeName = opts.mode.toLowerCase();
  var mode = modes[modeName];
  var type;

  if (opts.decrypt) {
    type = 'decrypt';
  } else {
    type = 'encrypt';
  }

  var key = opts.key;

  if (!Buffer.isBuffer(key)) {
    key = Buffer.from(key);
  }

  if (modeName === 'des-ede' || modeName === 'des-ede-cbc') {
    key = Buffer.concat([key, key.slice(0, 8)]);
  }

  var iv = opts.iv;

  if (!Buffer.isBuffer(iv)) {
    iv = Buffer.from(iv);
  }

  this._des = mode.create({
    key: key,
    iv: iv,
    type: type
  });
}

DES.prototype._update = function (data) {
  return Buffer.from(this._des.update(data));
};

DES.prototype._final = function () {
  return Buffer.from(this._des.final());
};

/***/ }),

/***/ "Hp/b":
/***/ (function(module, exports, __webpack_require__) {

!function (e, a) {
   true ? module.exports = a() : undefined;
}(this, function () {
  "use strict";

  return [{
    locale: "fr",
    pluralRuleFunction: function (e, a) {
      return a ? 1 == e ? "one" : "other" : e >= 0 && e < 2 ? "one" : "other";
    },
    fields: {
      year: {
        displayName: "année",
        relative: {
          0: "cette année",
          1: "l’année prochaine",
          "-1": "l’année dernière"
        },
        relativeTime: {
          future: {
            one: "dans {0} an",
            other: "dans {0} ans"
          },
          past: {
            one: "il y a {0} an",
            other: "il y a {0} ans"
          }
        }
      },
      "year-short": {
        displayName: "an",
        relative: {
          0: "cette année",
          1: "l’année prochaine",
          "-1": "l’année dernière"
        },
        relativeTime: {
          future: {
            one: "dans {0} a",
            other: "dans {0} a"
          },
          past: {
            one: "il y a {0} a",
            other: "il y a {0} a"
          }
        }
      },
      month: {
        displayName: "mois",
        relative: {
          0: "ce mois-ci",
          1: "le mois prochain",
          "-1": "le mois dernier"
        },
        relativeTime: {
          future: {
            one: "dans {0} mois",
            other: "dans {0} mois"
          },
          past: {
            one: "il y a {0} mois",
            other: "il y a {0} mois"
          }
        }
      },
      "month-short": {
        displayName: "m.",
        relative: {
          0: "ce mois-ci",
          1: "le mois prochain",
          "-1": "le mois dernier"
        },
        relativeTime: {
          future: {
            one: "dans {0} m.",
            other: "dans {0} m."
          },
          past: {
            one: "il y a {0} m.",
            other: "il y a {0} m."
          }
        }
      },
      day: {
        displayName: "jour",
        relative: {
          0: "aujourd’hui",
          1: "demain",
          2: "après-demain",
          "-2": "avant-hier",
          "-1": "hier"
        },
        relativeTime: {
          future: {
            one: "dans {0} jour",
            other: "dans {0} jours"
          },
          past: {
            one: "il y a {0} jour",
            other: "il y a {0} jours"
          }
        }
      },
      "day-short": {
        displayName: "j",
        relative: {
          0: "aujourd’hui",
          1: "demain",
          2: "après-demain",
          "-2": "avant-hier",
          "-1": "hier"
        },
        relativeTime: {
          future: {
            one: "dans {0} j",
            other: "dans {0} j"
          },
          past: {
            one: "il y a {0} j",
            other: "il y a {0} j"
          }
        }
      },
      hour: {
        displayName: "heure",
        relative: {
          0: "cette heure-ci"
        },
        relativeTime: {
          future: {
            one: "dans {0} heure",
            other: "dans {0} heures"
          },
          past: {
            one: "il y a {0} heure",
            other: "il y a {0} heures"
          }
        }
      },
      "hour-short": {
        displayName: "h",
        relative: {
          0: "cette heure-ci"
        },
        relativeTime: {
          future: {
            one: "dans {0} h",
            other: "dans {0} h"
          },
          past: {
            one: "il y a {0} h",
            other: "il y a {0} h"
          }
        }
      },
      minute: {
        displayName: "minute",
        relative: {
          0: "cette minute-ci"
        },
        relativeTime: {
          future: {
            one: "dans {0} minute",
            other: "dans {0} minutes"
          },
          past: {
            one: "il y a {0} minute",
            other: "il y a {0} minutes"
          }
        }
      },
      "minute-short": {
        displayName: "min",
        relative: {
          0: "cette minute-ci"
        },
        relativeTime: {
          future: {
            one: "dans {0} min",
            other: "dans {0} min"
          },
          past: {
            one: "il y a {0} min",
            other: "il y a {0} min"
          }
        }
      },
      second: {
        displayName: "seconde",
        relative: {
          0: "maintenant"
        },
        relativeTime: {
          future: {
            one: "dans {0} seconde",
            other: "dans {0} secondes"
          },
          past: {
            one: "il y a {0} seconde",
            other: "il y a {0} secondes"
          }
        }
      },
      "second-short": {
        displayName: "s",
        relative: {
          0: "maintenant"
        },
        relativeTime: {
          future: {
            one: "dans {0} s",
            other: "dans {0} s"
          },
          past: {
            one: "il y a {0} s",
            other: "il y a {0} s"
          }
        }
      }
    }
  }, {
    locale: "fr-BE",
    parentLocale: "fr"
  }, {
    locale: "fr-BF",
    parentLocale: "fr"
  }, {
    locale: "fr-BI",
    parentLocale: "fr"
  }, {
    locale: "fr-BJ",
    parentLocale: "fr"
  }, {
    locale: "fr-BL",
    parentLocale: "fr"
  }, {
    locale: "fr-CA",
    parentLocale: "fr",
    fields: {
      year: {
        displayName: "année",
        relative: {
          0: "cette année",
          1: "l’année prochaine",
          "-1": "l’année dernière"
        },
        relativeTime: {
          future: {
            one: "Dans {0} an",
            other: "Dans {0} ans"
          },
          past: {
            one: "Il y a {0} an",
            other: "Il y a {0} ans"
          }
        }
      },
      "year-short": {
        displayName: "a",
        relative: {
          0: "cette année",
          1: "l’année prochaine",
          "-1": "l’année dernière"
        },
        relativeTime: {
          future: {
            one: "dans {0} a",
            other: "dans {0} a"
          },
          past: {
            one: "il y a {0} a",
            other: "il y a {0} a"
          }
        }
      },
      month: {
        displayName: "mois",
        relative: {
          0: "ce mois-ci",
          1: "le mois prochain",
          "-1": "le mois dernier"
        },
        relativeTime: {
          future: {
            one: "dans {0} mois",
            other: "dans {0} mois"
          },
          past: {
            one: "il y a {0} mois",
            other: "il y a {0} mois"
          }
        }
      },
      "month-short": {
        displayName: "m.",
        relative: {
          0: "ce mois-ci",
          1: "le mois prochain",
          "-1": "le mois dernier"
        },
        relativeTime: {
          future: {
            one: "dans {0} m.",
            other: "dans {0} m."
          },
          past: {
            one: "il y a {0} m.",
            other: "il y a {0} m."
          }
        }
      },
      day: {
        displayName: "jour",
        relative: {
          0: "aujourd’hui",
          1: "demain",
          2: "après-demain",
          "-2": "avant-hier",
          "-1": "hier"
        },
        relativeTime: {
          future: {
            one: "dans {0} jour",
            other: "dans {0} jours"
          },
          past: {
            one: "il y a {0} jour",
            other: "il y a {0} jours"
          }
        }
      },
      "day-short": {
        displayName: "j",
        relative: {
          0: "aujourd’hui",
          1: "demain",
          2: "après-demain",
          "-2": "avant-hier",
          "-1": "hier"
        },
        relativeTime: {
          future: {
            one: "dans {0} j",
            other: "dans {0} j"
          },
          past: {
            one: "il y a {0} j",
            other: "il y a {0} j"
          }
        }
      },
      hour: {
        displayName: "heure",
        relative: {
          0: "cette heure-ci"
        },
        relativeTime: {
          future: {
            one: "dans {0} heure",
            other: "dans {0} heures"
          },
          past: {
            one: "il y a {0} heure",
            other: "il y a {0} heures"
          }
        }
      },
      "hour-short": {
        displayName: "h",
        relative: {
          0: "cette heure-ci"
        },
        relativeTime: {
          future: {
            one: "dans {0} h",
            other: "dans {0} h"
          },
          past: {
            one: "il y a {0} h",
            other: "il y a {0} h"
          }
        }
      },
      minute: {
        displayName: "minute",
        relative: {
          0: "cette minute-ci"
        },
        relativeTime: {
          future: {
            one: "dans {0} minute",
            other: "dans {0} minutes"
          },
          past: {
            one: "il y a {0} minute",
            other: "il y a {0} minutes"
          }
        }
      },
      "minute-short": {
        displayName: "min",
        relative: {
          0: "cette minute-ci"
        },
        relativeTime: {
          future: {
            one: "dans {0} min",
            other: "dans {0} min"
          },
          past: {
            one: "il y a {0} min",
            other: "il y a {0} min"
          }
        }
      },
      second: {
        displayName: "seconde",
        relative: {
          0: "maintenant"
        },
        relativeTime: {
          future: {
            one: "dans {0} seconde",
            other: "dans {0} secondes"
          },
          past: {
            one: "il y a {0} seconde",
            other: "il y a {0} secondes"
          }
        }
      },
      "second-short": {
        displayName: "s",
        relative: {
          0: "maintenant"
        },
        relativeTime: {
          future: {
            one: "dans {0} s",
            other: "dans {0} s"
          },
          past: {
            one: "il y a {0} s",
            other: "il y a {0} s"
          }
        }
      }
    }
  }, {
    locale: "fr-CD",
    parentLocale: "fr"
  }, {
    locale: "fr-CF",
    parentLocale: "fr"
  }, {
    locale: "fr-CG",
    parentLocale: "fr"
  }, {
    locale: "fr-CH",
    parentLocale: "fr"
  }, {
    locale: "fr-CI",
    parentLocale: "fr"
  }, {
    locale: "fr-CM",
    parentLocale: "fr"
  }, {
    locale: "fr-DJ",
    parentLocale: "fr"
  }, {
    locale: "fr-DZ",
    parentLocale: "fr"
  }, {
    locale: "fr-GA",
    parentLocale: "fr"
  }, {
    locale: "fr-GF",
    parentLocale: "fr"
  }, {
    locale: "fr-GN",
    parentLocale: "fr"
  }, {
    locale: "fr-GP",
    parentLocale: "fr"
  }, {
    locale: "fr-GQ",
    parentLocale: "fr"
  }, {
    locale: "fr-HT",
    parentLocale: "fr",
    fields: {
      year: {
        displayName: "année",
        relative: {
          0: "cette année",
          1: "l’année prochaine",
          "-1": "l’année dernière"
        },
        relativeTime: {
          future: {
            one: "dans {0} an",
            other: "dans {0} ans"
          },
          past: {
            one: "il y a {0} an",
            other: "il y a {0} ans"
          }
        }
      },
      "year-short": {
        displayName: "an",
        relative: {
          0: "cette année",
          1: "l’année prochaine",
          "-1": "l’année dernière"
        },
        relativeTime: {
          future: {
            one: "dans {0} a",
            other: "dans {0} a"
          },
          past: {
            one: "il y a {0} a",
            other: "il y a {0} a"
          }
        }
      },
      month: {
        displayName: "mois",
        relative: {
          0: "ce mois-ci",
          1: "le mois prochain",
          "-1": "le mois dernier"
        },
        relativeTime: {
          future: {
            one: "dans {0} mois",
            other: "dans {0} mois"
          },
          past: {
            one: "il y a {0} mois",
            other: "il y a {0} mois"
          }
        }
      },
      "month-short": {
        displayName: "m.",
        relative: {
          0: "ce mois-ci",
          1: "le mois prochain",
          "-1": "le mois dernier"
        },
        relativeTime: {
          future: {
            one: "dans {0} m.",
            other: "dans {0} m."
          },
          past: {
            one: "il y a {0} m.",
            other: "il y a {0} m."
          }
        }
      },
      day: {
        displayName: "jour",
        relative: {
          0: "aujourd’hui",
          1: "demain",
          2: "après-demain",
          "-2": "avant-hier",
          "-1": "hier"
        },
        relativeTime: {
          future: {
            one: "dans {0} jour",
            other: "dans {0} jours"
          },
          past: {
            one: "il y a {0} jour",
            other: "il y a {0} jours"
          }
        }
      },
      "day-short": {
        displayName: "jr.",
        relative: {
          0: "aujourd’hui",
          1: "demain",
          2: "après-demain",
          "-2": "avant-hier",
          "-1": "hier"
        },
        relativeTime: {
          future: {
            one: "dans {0} j",
            other: "dans {0} j"
          },
          past: {
            one: "il y a {0} j",
            other: "il y a {0} j"
          }
        }
      },
      hour: {
        displayName: "heure",
        relative: {
          0: "cette heure-ci"
        },
        relativeTime: {
          future: {
            one: "dans {0} heure",
            other: "dans {0} heures"
          },
          past: {
            one: "il y a {0} heure",
            other: "il y a {0} heures"
          }
        }
      },
      "hour-short": {
        displayName: "hr",
        relative: {
          0: "cette heure-ci"
        },
        relativeTime: {
          future: {
            one: "dans {0} h",
            other: "dans {0} h"
          },
          past: {
            one: "il y a {0} h",
            other: "il y a {0} h"
          }
        }
      },
      minute: {
        displayName: "minute",
        relative: {
          0: "cette minute-ci"
        },
        relativeTime: {
          future: {
            one: "dans {0} minute",
            other: "dans {0} minutes"
          },
          past: {
            one: "il y a {0} minute",
            other: "il y a {0} minutes"
          }
        }
      },
      "minute-short": {
        displayName: "min.",
        relative: {
          0: "cette minute-ci"
        },
        relativeTime: {
          future: {
            one: "dans {0} min",
            other: "dans {0} min"
          },
          past: {
            one: "il y a {0} min",
            other: "il y a {0} min"
          }
        }
      },
      second: {
        displayName: "seconde",
        relative: {
          0: "maintenant"
        },
        relativeTime: {
          future: {
            one: "dans {0} seconde",
            other: "dans {0} secondes"
          },
          past: {
            one: "il y a {0} seconde",
            other: "il y a {0} secondes"
          }
        }
      },
      "second-short": {
        displayName: "s",
        relative: {
          0: "maintenant"
        },
        relativeTime: {
          future: {
            one: "dans {0} s",
            other: "dans {0} s"
          },
          past: {
            one: "il y a {0} s",
            other: "il y a {0} s"
          }
        }
      }
    }
  }, {
    locale: "fr-KM",
    parentLocale: "fr"
  }, {
    locale: "fr-LU",
    parentLocale: "fr"
  }, {
    locale: "fr-MA",
    parentLocale: "fr"
  }, {
    locale: "fr-MC",
    parentLocale: "fr"
  }, {
    locale: "fr-MF",
    parentLocale: "fr"
  }, {
    locale: "fr-MG",
    parentLocale: "fr"
  }, {
    locale: "fr-ML",
    parentLocale: "fr"
  }, {
    locale: "fr-MQ",
    parentLocale: "fr"
  }, {
    locale: "fr-MR",
    parentLocale: "fr"
  }, {
    locale: "fr-MU",
    parentLocale: "fr"
  }, {
    locale: "fr-NC",
    parentLocale: "fr"
  }, {
    locale: "fr-NE",
    parentLocale: "fr"
  }, {
    locale: "fr-PF",
    parentLocale: "fr"
  }, {
    locale: "fr-PM",
    parentLocale: "fr"
  }, {
    locale: "fr-RE",
    parentLocale: "fr"
  }, {
    locale: "fr-RW",
    parentLocale: "fr"
  }, {
    locale: "fr-SC",
    parentLocale: "fr"
  }, {
    locale: "fr-SN",
    parentLocale: "fr"
  }, {
    locale: "fr-SY",
    parentLocale: "fr"
  }, {
    locale: "fr-TD",
    parentLocale: "fr"
  }, {
    locale: "fr-TG",
    parentLocale: "fr"
  }, {
    locale: "fr-TN",
    parentLocale: "fr"
  }, {
    locale: "fr-VU",
    parentLocale: "fr"
  }, {
    locale: "fr-WF",
    parentLocale: "fr"
  }, {
    locale: "fr-YT",
    parentLocale: "fr"
  }];
});

/***/ }),

/***/ "HpW/":
/***/ (function(module, exports, __webpack_require__) {

!function (e, a) {
   true ? module.exports = a() : undefined;
}(this, function () {
  "use strict";

  return [{
    locale: "es",
    pluralRuleFunction: function (e, a) {
      return a ? "other" : 1 == e ? "one" : "other";
    },
    fields: {
      year: {
        displayName: "año",
        relative: {
          0: "este año",
          1: "el próximo año",
          "-1": "el año pasado"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} año",
            other: "dentro de {0} años"
          },
          past: {
            one: "hace {0} año",
            other: "hace {0} años"
          }
        }
      },
      "year-short": {
        displayName: "a",
        relative: {
          0: "este año",
          1: "el próximo año",
          "-1": "el año pasado"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} a",
            other: "dentro de {0} a"
          },
          past: {
            one: "hace {0} a",
            other: "hace {0} a"
          }
        }
      },
      month: {
        displayName: "mes",
        relative: {
          0: "este mes",
          1: "el próximo mes",
          "-1": "el mes pasado"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} mes",
            other: "dentro de {0} meses"
          },
          past: {
            one: "hace {0} mes",
            other: "hace {0} meses"
          }
        }
      },
      "month-short": {
        displayName: "m",
        relative: {
          0: "este mes",
          1: "el próximo mes",
          "-1": "el mes pasado"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} m",
            other: "dentro de {0} m"
          },
          past: {
            one: "hace {0} m",
            other: "hace {0} m"
          }
        }
      },
      day: {
        displayName: "día",
        relative: {
          0: "hoy",
          1: "mañana",
          2: "pasado mañana",
          "-2": "anteayer",
          "-1": "ayer"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} día",
            other: "dentro de {0} días"
          },
          past: {
            one: "hace {0} día",
            other: "hace {0} días"
          }
        }
      },
      "day-short": {
        displayName: "d",
        relative: {
          0: "hoy",
          1: "mañana",
          2: "pasado mañana",
          "-2": "anteayer",
          "-1": "ayer"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} día",
            other: "dentro de {0} días"
          },
          past: {
            one: "hace {0} día",
            other: "hace {0} días"
          }
        }
      },
      hour: {
        displayName: "hora",
        relative: {
          0: "esta hora"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} hora",
            other: "dentro de {0} horas"
          },
          past: {
            one: "hace {0} hora",
            other: "hace {0} horas"
          }
        }
      },
      "hour-short": {
        displayName: "h",
        relative: {
          0: "esta hora"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} h",
            other: "dentro de {0} h"
          },
          past: {
            one: "hace {0} h",
            other: "hace {0} h"
          }
        }
      },
      minute: {
        displayName: "minuto",
        relative: {
          0: "este minuto"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} minuto",
            other: "dentro de {0} minutos"
          },
          past: {
            one: "hace {0} minuto",
            other: "hace {0} minutos"
          }
        }
      },
      "minute-short": {
        displayName: "min",
        relative: {
          0: "este minuto"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} min",
            other: "dentro de {0} min"
          },
          past: {
            one: "hace {0} min",
            other: "hace {0} min"
          }
        }
      },
      second: {
        displayName: "segundo",
        relative: {
          0: "ahora"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} segundo",
            other: "dentro de {0} segundos"
          },
          past: {
            one: "hace {0} segundo",
            other: "hace {0} segundos"
          }
        }
      },
      "second-short": {
        displayName: "s",
        relative: {
          0: "ahora"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} s",
            other: "dentro de {0} s"
          },
          past: {
            one: "hace {0} s",
            other: "hace {0} s"
          }
        }
      }
    }
  }, {
    locale: "es-419",
    parentLocale: "es"
  }, {
    locale: "es-AR",
    parentLocale: "es-419",
    fields: {
      year: {
        displayName: "año",
        relative: {
          0: "este año",
          1: "el próximo año",
          "-1": "el año pasado"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} año",
            other: "dentro de {0} años"
          },
          past: {
            one: "hace {0} año",
            other: "hace {0} años"
          }
        }
      },
      "year-short": {
        displayName: "a",
        relative: {
          0: "este año",
          1: "el próximo año",
          "-1": "el año pasado"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} a",
            other: "dentro de {0} a"
          },
          past: {
            one: "hace {0} a",
            other: "hace {0} a"
          }
        }
      },
      month: {
        displayName: "mes",
        relative: {
          0: "este mes",
          1: "el próximo mes",
          "-1": "el mes pasado"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} mes",
            other: "dentro de {0} meses"
          },
          past: {
            one: "hace {0} mes",
            other: "hace {0} meses"
          }
        }
      },
      "month-short": {
        displayName: "m",
        relative: {
          0: "este mes",
          1: "el próximo mes",
          "-1": "el mes pasado"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} m",
            other: "dentro de {0} m"
          },
          past: {
            one: "hace {0} m",
            other: "hace {0} m"
          }
        }
      },
      day: {
        displayName: "día",
        relative: {
          0: "hoy",
          1: "mañana",
          2: "pasado mañana",
          "-2": "anteayer",
          "-1": "ayer"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} día",
            other: "dentro de {0} días"
          },
          past: {
            one: "hace {0} día",
            other: "hace {0} días"
          }
        }
      },
      "day-short": {
        displayName: "d",
        relative: {
          0: "hoy",
          1: "mañana",
          2: "pasado mañana",
          "-2": "anteayer",
          "-1": "ayer"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} días",
            other: "dentro de {0} días"
          },
          past: {
            one: "hace {0} días",
            other: "hace {0} días"
          }
        }
      },
      hour: {
        displayName: "hora",
        relative: {
          0: "esta hora"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} hora",
            other: "dentro de {0} horas"
          },
          past: {
            one: "hace {0} hora",
            other: "hace {0} horas"
          }
        }
      },
      "hour-short": {
        displayName: "h",
        relative: {
          0: "esta hora"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} h",
            other: "dentro de {0} h"
          },
          past: {
            one: "hace {0} h",
            other: "hace {0} h"
          }
        }
      },
      minute: {
        displayName: "minuto",
        relative: {
          0: "este minuto"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} minuto",
            other: "dentro de {0} minutos"
          },
          past: {
            one: "hace {0} minuto",
            other: "hace {0} minutos"
          }
        }
      },
      "minute-short": {
        displayName: "min",
        relative: {
          0: "este minuto"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} min",
            other: "dentro de {0} min"
          },
          past: {
            one: "hace {0} min",
            other: "hace {0} min"
          }
        }
      },
      second: {
        displayName: "segundo",
        relative: {
          0: "ahora"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} segundo",
            other: "dentro de {0} segundos"
          },
          past: {
            one: "hace {0} segundo",
            other: "hace {0} segundos"
          }
        }
      },
      "second-short": {
        displayName: "seg.",
        relative: {
          0: "ahora"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} seg.",
            other: "dentro de {0} seg."
          },
          past: {
            one: "hace {0} seg.",
            other: "hace {0} seg."
          }
        }
      }
    }
  }, {
    locale: "es-BO",
    parentLocale: "es-419"
  }, {
    locale: "es-BR",
    parentLocale: "es-419"
  }, {
    locale: "es-BZ",
    parentLocale: "es-419"
  }, {
    locale: "es-CL",
    parentLocale: "es-419"
  }, {
    locale: "es-CO",
    parentLocale: "es-419"
  }, {
    locale: "es-CR",
    parentLocale: "es-419"
  }, {
    locale: "es-CU",
    parentLocale: "es-419"
  }, {
    locale: "es-DO",
    parentLocale: "es-419",
    fields: {
      year: {
        displayName: "Año",
        relative: {
          0: "este año",
          1: "el próximo año",
          "-1": "el año pasado"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} año",
            other: "dentro de {0} años"
          },
          past: {
            one: "hace {0} año",
            other: "hace {0} años"
          }
        }
      },
      "year-short": {
        displayName: "a",
        relative: {
          0: "este año",
          1: "el próximo año",
          "-1": "el año pasado"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} a",
            other: "dentro de {0} a"
          },
          past: {
            one: "hace {0} a",
            other: "hace {0} a"
          }
        }
      },
      month: {
        displayName: "Mes",
        relative: {
          0: "este mes",
          1: "el próximo mes",
          "-1": "el mes pasado"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} mes",
            other: "dentro de {0} meses"
          },
          past: {
            one: "hace {0} mes",
            other: "hace {0} meses"
          }
        }
      },
      "month-short": {
        displayName: "m",
        relative: {
          0: "este mes",
          1: "el próximo mes",
          "-1": "el mes pasado"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} m",
            other: "dentro de {0} m"
          },
          past: {
            one: "hace {0} m",
            other: "hace {0} m"
          }
        }
      },
      day: {
        displayName: "Día",
        relative: {
          0: "hoy",
          1: "mañana",
          2: "pasado mañana",
          "-2": "anteayer",
          "-1": "ayer"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} día",
            other: "dentro de {0} días"
          },
          past: {
            one: "hace {0} día",
            other: "hace {0} días"
          }
        }
      },
      "day-short": {
        displayName: "d",
        relative: {
          0: "hoy",
          1: "mañana",
          2: "pasado mañana",
          "-2": "anteayer",
          "-1": "ayer"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} día",
            other: "dentro de {0} días"
          },
          past: {
            one: "hace {0} día",
            other: "hace {0} días"
          }
        }
      },
      hour: {
        displayName: "hora",
        relative: {
          0: "esta hora"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} hora",
            other: "dentro de {0} horas"
          },
          past: {
            one: "hace {0} hora",
            other: "hace {0} horas"
          }
        }
      },
      "hour-short": {
        displayName: "h",
        relative: {
          0: "esta hora"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} h",
            other: "dentro de {0} h"
          },
          past: {
            one: "hace {0} h",
            other: "hace {0} h"
          }
        }
      },
      minute: {
        displayName: "Minuto",
        relative: {
          0: "este minuto"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} minuto",
            other: "dentro de {0} minutos"
          },
          past: {
            one: "hace {0} minuto",
            other: "hace {0} minutos"
          }
        }
      },
      "minute-short": {
        displayName: "min",
        relative: {
          0: "este minuto"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} min",
            other: "dentro de {0} min"
          },
          past: {
            one: "hace {0} min",
            other: "hace {0} min"
          }
        }
      },
      second: {
        displayName: "Segundo",
        relative: {
          0: "ahora"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} segundo",
            other: "dentro de {0} segundos"
          },
          past: {
            one: "hace {0} segundo",
            other: "hace {0} segundos"
          }
        }
      },
      "second-short": {
        displayName: "s",
        relative: {
          0: "ahora"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} s",
            other: "dentro de {0} s"
          },
          past: {
            one: "hace {0} s",
            other: "hace {0} s"
          }
        }
      }
    }
  }, {
    locale: "es-EA",
    parentLocale: "es"
  }, {
    locale: "es-EC",
    parentLocale: "es-419"
  }, {
    locale: "es-GQ",
    parentLocale: "es"
  }, {
    locale: "es-GT",
    parentLocale: "es-419"
  }, {
    locale: "es-HN",
    parentLocale: "es-419"
  }, {
    locale: "es-IC",
    parentLocale: "es"
  }, {
    locale: "es-MX",
    parentLocale: "es-419",
    fields: {
      year: {
        displayName: "año",
        relative: {
          0: "este año",
          1: "el año próximo",
          "-1": "el año pasado"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} año",
            other: "dentro de {0} años"
          },
          past: {
            one: "hace {0} año",
            other: "hace {0} años"
          }
        }
      },
      "year-short": {
        displayName: "a",
        relative: {
          0: "este año",
          1: "el próximo año",
          "-1": "el año pasado"
        },
        relativeTime: {
          future: {
            one: "en {0} a",
            other: "en {0} a"
          },
          past: {
            one: "hace {0} a",
            other: "hace {0} a"
          }
        }
      },
      month: {
        displayName: "mes",
        relative: {
          0: "este mes",
          1: "el mes próximo",
          "-1": "el mes pasado"
        },
        relativeTime: {
          future: {
            one: "en {0} mes",
            other: "en {0} meses"
          },
          past: {
            one: "hace {0} mes",
            other: "hace {0} meses"
          }
        }
      },
      "month-short": {
        displayName: "m",
        relative: {
          0: "este mes",
          1: "el próximo mes",
          "-1": "el mes pasado"
        },
        relativeTime: {
          future: {
            one: "en {0} m",
            other: "en {0} m"
          },
          past: {
            one: "hace {0} m",
            other: "hace {0} m"
          }
        }
      },
      day: {
        displayName: "día",
        relative: {
          0: "hoy",
          1: "mañana",
          2: "pasado mañana",
          "-2": "anteayer",
          "-1": "ayer"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} día",
            other: "dentro de {0} días"
          },
          past: {
            one: "hace {0} día",
            other: "hace {0} días"
          }
        }
      },
      "day-short": {
        displayName: "d",
        relative: {
          0: "hoy",
          1: "mañana",
          2: "pasado mañana",
          "-2": "anteayer",
          "-1": "ayer"
        },
        relativeTime: {
          future: {
            one: "en {0} día",
            other: "en {0} días"
          },
          past: {
            one: "hace {0} día",
            other: "hace {0} días"
          }
        }
      },
      hour: {
        displayName: "hora",
        relative: {
          0: "esta hora"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} hora",
            other: "dentro de {0} horas"
          },
          past: {
            one: "hace {0} hora",
            other: "hace {0} horas"
          }
        }
      },
      "hour-short": {
        displayName: "h",
        relative: {
          0: "esta hora"
        },
        relativeTime: {
          future: {
            one: "en {0} h",
            other: "en {0} n"
          },
          past: {
            one: "hace {0} h",
            other: "hace {0} h"
          }
        }
      },
      minute: {
        displayName: "minuto",
        relative: {
          0: "este minuto"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} minuto",
            other: "dentro de {0} minutos"
          },
          past: {
            one: "hace {0} minuto",
            other: "hace {0} minutos"
          }
        }
      },
      "minute-short": {
        displayName: "min",
        relative: {
          0: "este minuto"
        },
        relativeTime: {
          future: {
            one: "en {0} min",
            other: "en {0} min"
          },
          past: {
            one: "hace {0} min",
            other: "hace {0} min"
          }
        }
      },
      second: {
        displayName: "segundo",
        relative: {
          0: "ahora"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} segundo",
            other: "dentro de {0} segundos"
          },
          past: {
            one: "hace {0} segundo",
            other: "hace {0} segundos"
          }
        }
      },
      "second-short": {
        displayName: "s",
        relative: {
          0: "ahora"
        },
        relativeTime: {
          future: {
            one: "en {0} s",
            other: "en {0} s"
          },
          past: {
            one: "hace {0} s",
            other: "hace {0} s"
          }
        }
      }
    }
  }, {
    locale: "es-NI",
    parentLocale: "es-419"
  }, {
    locale: "es-PA",
    parentLocale: "es-419"
  }, {
    locale: "es-PE",
    parentLocale: "es-419"
  }, {
    locale: "es-PH",
    parentLocale: "es"
  }, {
    locale: "es-PR",
    parentLocale: "es-419"
  }, {
    locale: "es-PY",
    parentLocale: "es-419",
    fields: {
      year: {
        displayName: "año",
        relative: {
          0: "este año",
          1: "el próximo año",
          "-1": "el año pasado"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} año",
            other: "dentro de {0} años"
          },
          past: {
            one: "hace {0} año",
            other: "hace {0} años"
          }
        }
      },
      "year-short": {
        displayName: "a",
        relative: {
          0: "este año",
          1: "el próximo año",
          "-1": "el año pasado"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} a",
            other: "dentro de {0} a"
          },
          past: {
            one: "hace {0} a",
            other: "hace {0} a"
          }
        }
      },
      month: {
        displayName: "mes",
        relative: {
          0: "este mes",
          1: "el próximo mes",
          "-1": "el mes pasado"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} mes",
            other: "dentro de {0} meses"
          },
          past: {
            one: "hace {0} mes",
            other: "hace {0} meses"
          }
        }
      },
      "month-short": {
        displayName: "m",
        relative: {
          0: "este mes",
          1: "el próximo mes",
          "-1": "el mes pasado"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} m",
            other: "dentro de {0} m"
          },
          past: {
            one: "hace {0} m",
            other: "hace {0} m"
          }
        }
      },
      day: {
        displayName: "día",
        relative: {
          0: "hoy",
          1: "mañana",
          2: "pasado mañana",
          "-2": "anteayer",
          "-1": "ayer"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} día",
            other: "dentro de {0} días"
          },
          past: {
            one: "hace {0} día",
            other: "hace {0} días"
          }
        }
      },
      "day-short": {
        displayName: "d",
        relative: {
          0: "hoy",
          1: "mañana",
          2: "pasado mañana",
          "-2": "anteayer",
          "-1": "ayer"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} día",
            other: "dentro de {0} días"
          },
          past: {
            one: "hace {0} día",
            other: "hace {0} días"
          }
        }
      },
      hour: {
        displayName: "hora",
        relative: {
          0: "esta hora"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} hora",
            other: "dentro de {0} horas"
          },
          past: {
            one: "hace {0} hora",
            other: "hace {0} horas"
          }
        }
      },
      "hour-short": {
        displayName: "h",
        relative: {
          0: "esta hora"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} h",
            other: "dentro de {0} h"
          },
          past: {
            one: "hace {0} h",
            other: "hace {0} h"
          }
        }
      },
      minute: {
        displayName: "minuto",
        relative: {
          0: "este minuto"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} minuto",
            other: "dentro de {0} minutos"
          },
          past: {
            one: "hace {0} minuto",
            other: "hace {0} minutos"
          }
        }
      },
      "minute-short": {
        displayName: "min",
        relative: {
          0: "este minuto"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} min",
            other: "dentro de {0} min"
          },
          past: {
            one: "hace {0} min",
            other: "hace {0} min"
          }
        }
      },
      second: {
        displayName: "segundo",
        relative: {
          0: "ahora"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} segundo",
            other: "dentro de {0} segundos"
          },
          past: {
            one: "hace {0} segundo",
            other: "hace {0} segundos"
          }
        }
      },
      "second-short": {
        displayName: "seg.",
        relative: {
          0: "ahora"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} seg.",
            other: "dentro de {0} seg."
          },
          past: {
            one: "hace {0} seg.",
            other: "hace {0} seg."
          }
        }
      }
    }
  }, {
    locale: "es-SV",
    parentLocale: "es-419",
    fields: {
      year: {
        displayName: "año",
        relative: {
          0: "este año",
          1: "el próximo año",
          "-1": "el año pasado"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} año",
            other: "dentro de {0} años"
          },
          past: {
            one: "hace {0} año",
            other: "hace {0} años"
          }
        }
      },
      "year-short": {
        displayName: "a",
        relative: {
          0: "este año",
          1: "el próximo año",
          "-1": "el año pasado"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} a",
            other: "dentro de {0} a"
          },
          past: {
            one: "hace {0} a",
            other: "hace {0} a"
          }
        }
      },
      month: {
        displayName: "mes",
        relative: {
          0: "este mes",
          1: "el próximo mes",
          "-1": "el mes pasado"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} mes",
            other: "dentro de {0} meses"
          },
          past: {
            one: "hace {0} mes",
            other: "hace {0} meses"
          }
        }
      },
      "month-short": {
        displayName: "m",
        relative: {
          0: "este mes",
          1: "el próximo mes",
          "-1": "el mes pasado"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} m",
            other: "dentro de {0} m"
          },
          past: {
            one: "hace {0} m",
            other: "hace {0} m"
          }
        }
      },
      day: {
        displayName: "día",
        relative: {
          0: "hoy",
          1: "mañana",
          2: "pasado mañana",
          "-2": "antier",
          "-1": "ayer"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} día",
            other: "dentro de {0} días"
          },
          past: {
            one: "hace {0} día",
            other: "hace {0} días"
          }
        }
      },
      "day-short": {
        displayName: "d",
        relative: {
          0: "hoy",
          1: "mañana",
          2: "pasado mañana",
          "-2": "anteayer",
          "-1": "ayer"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} día",
            other: "dentro de {0} días"
          },
          past: {
            one: "hace {0} día",
            other: "hace {0} días"
          }
        }
      },
      hour: {
        displayName: "hora",
        relative: {
          0: "esta hora"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} hora",
            other: "dentro de {0} horas"
          },
          past: {
            one: "hace {0} hora",
            other: "hace {0} horas"
          }
        }
      },
      "hour-short": {
        displayName: "h",
        relative: {
          0: "esta hora"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} h",
            other: "dentro de {0} h"
          },
          past: {
            one: "hace {0} h",
            other: "hace {0} h"
          }
        }
      },
      minute: {
        displayName: "minuto",
        relative: {
          0: "este minuto"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} minuto",
            other: "dentro de {0} minutos"
          },
          past: {
            one: "hace {0} minuto",
            other: "hace {0} minutos"
          }
        }
      },
      "minute-short": {
        displayName: "min",
        relative: {
          0: "este minuto"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} min",
            other: "dentro de {0} min"
          },
          past: {
            one: "hace {0} min",
            other: "hace {0} min"
          }
        }
      },
      second: {
        displayName: "segundo",
        relative: {
          0: "ahora"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} segundo",
            other: "dentro de {0} segundos"
          },
          past: {
            one: "hace {0} segundo",
            other: "hace {0} segundos"
          }
        }
      },
      "second-short": {
        displayName: "s",
        relative: {
          0: "ahora"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} s",
            other: "dentro de {0} s"
          },
          past: {
            one: "hace {0} s",
            other: "hace {0} s"
          }
        }
      }
    }
  }, {
    locale: "es-US",
    parentLocale: "es-419",
    fields: {
      year: {
        displayName: "año",
        relative: {
          0: "este año",
          1: "el año próximo",
          "-1": "el año pasado"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} año",
            other: "dentro de {0} años"
          },
          past: {
            one: "hace {0} año",
            other: "hace {0} años"
          }
        }
      },
      "year-short": {
        displayName: "a",
        relative: {
          0: "este año",
          1: "el próximo año",
          "-1": "el año pasado"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} a",
            other: "dentro de {0} a"
          },
          past: {
            one: "hace {0} a",
            other: "hace {0} a"
          }
        }
      },
      month: {
        displayName: "mes",
        relative: {
          0: "este mes",
          1: "el mes próximo",
          "-1": "el mes pasado"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} mes",
            other: "dentro de {0} meses"
          },
          past: {
            one: "hace {0} mes",
            other: "hace {0} meses"
          }
        }
      },
      "month-short": {
        displayName: "m",
        relative: {
          0: "este mes",
          1: "el próximo mes",
          "-1": "el mes pasado"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} m",
            other: "dentro de {0} m"
          },
          past: {
            one: "hace {0} m",
            other: "hace {0} m"
          }
        }
      },
      day: {
        displayName: "día",
        relative: {
          0: "hoy",
          1: "mañana",
          2: "pasado mañana",
          "-2": "anteayer",
          "-1": "ayer"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} día",
            other: "dentro de {0} días"
          },
          past: {
            one: "hace {0} día",
            other: "hace {0} días"
          }
        }
      },
      "day-short": {
        displayName: "d",
        relative: {
          0: "hoy",
          1: "mañana",
          2: "pasado mañana",
          "-2": "anteayer",
          "-1": "ayer"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} día",
            other: "dentro de {0} días"
          },
          past: {
            one: "hace {0} día",
            other: "hace {0} días"
          }
        }
      },
      hour: {
        displayName: "hora",
        relative: {
          0: "esta hora"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} hora",
            other: "dentro de {0} horas"
          },
          past: {
            one: "hace {0} hora",
            other: "hace {0} horas"
          }
        }
      },
      "hour-short": {
        displayName: "h",
        relative: {
          0: "esta hora"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} h",
            other: "dentro de {0} h"
          },
          past: {
            one: "hace {0} h",
            other: "hace {0} h"
          }
        }
      },
      minute: {
        displayName: "minuto",
        relative: {
          0: "este minuto"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} minuto",
            other: "dentro de {0} minutos"
          },
          past: {
            one: "hace {0} minuto",
            other: "hace {0} minutos"
          }
        }
      },
      "minute-short": {
        displayName: "min",
        relative: {
          0: "este minuto"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} min",
            other: "dentro de {0} min"
          },
          past: {
            one: "hace {0} min",
            other: "hace {0} min"
          }
        }
      },
      second: {
        displayName: "segundo",
        relative: {
          0: "ahora"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} segundo",
            other: "dentro de {0} segundos"
          },
          past: {
            one: "hace {0} segundo",
            other: "hace {0} segundos"
          }
        }
      },
      "second-short": {
        displayName: "s",
        relative: {
          0: "ahora"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} s",
            other: "dentro de {0} s"
          },
          past: {
            one: "hace {0} s",
            other: "hace {0} s"
          }
        }
      }
    }
  }, {
    locale: "es-UY",
    parentLocale: "es-419"
  }, {
    locale: "es-VE",
    parentLocale: "es-419"
  }];
});

/***/ }),

/***/ "Hqub":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

const _excluded = ["styles"];

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }

function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

var _default = _ref => {
  let {
    styles = {}
  } = _ref,
      props = _objectWithoutProperties(_ref, _excluded);

  return /*#__PURE__*/_react.default.createElement("svg", _extends({
    version: "1.1",
    id: "Layer_1",
    xmlns: "http://www.w3.org/2000/svg",
    x: "0",
    y: "0",
    viewBox: "0 0 344 344",
    xmlSpace: "preserve"
  }, props), /*#__PURE__*/_react.default.createElement("g", {
    id: "ICONS_96"
  }, /*#__PURE__*/_react.default.createElement("path", {
    className: styles["st0"] || "st0",
    d: "M300.8 94.6c2.4-.1 4.4 1.9 4.5 4.3v146.2c-.1 2.4-2.1 4.4-4.5 4.3H43.2c-2.4.1-4.4-1.9-4.5-4.3V98.9c.1-2.4 2.1-4.4 4.5-4.3h257.6zm0-8.6H43.2c-7.2 0-13 5.7-13.1 12.9v146.2c.1 7.2 5.9 12.9 13.1 12.9h257.6c7.2 0 13-5.7 13.1-12.9V98.9c-.1-7.2-5.9-12.9-13.1-12.9z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["st0"] || "st0",
    d: "M293.5 126.8h-243c-1.8 0-3.2-1.4-3.2-3.2s1.4-3.2 3.2-3.2h243.1c1.8 0 3.2 1.4 3.2 3.2s-1.5 3.2-3.3 3.2z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["st0"] || "st0",
    d: "M69 112.1h-9.3c-1.8 0-3.2-1.4-3.2-3.2 0-1.8 1.4-3.2 3.2-3.2H69c1.8 0 3.2 1.4 3.2 3.2.1 1.7-1.4 3.2-3.2 3.2z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["st0"] || "st0",
    d: "M286 148.4v81.7h-60.2v-81.7H286zm2.1-6.5h-64.5c-2.4 0-4.3 1.9-4.3 4.3v86c0 2.4 1.9 4.3 4.3 4.3h64.5c2.4 0 4.3-1.9 4.3-4.3v-86c0-2.4-1.9-4.3-4.3-4.3z"
  })));
};

exports.default = _default;

/***/ }),

/***/ "Hsns":
/***/ (function(module, exports, __webpack_require__) {

var isObject = __webpack_require__("93I4");

var document = __webpack_require__("5T2Y").document; // typeof document.createElement is 'object' in old IE


var is = isObject(document) && isObject(document.createElement);

module.exports = function (it) {
  return is ? document.createElement(it) : {};
};

/***/ }),

/***/ "HvWA":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);

// EXTERNAL MODULE: ./node_modules/abort-controller/polyfill.js
var polyfill = __webpack_require__("8X25");

// EXTERNAL MODULE: ./src/js/iaw/imsBridge.tsx + 1 modules
var imsBridge = __webpack_require__("Mqyo");

// EXTERNAL MODULE: ./src/js/iaw/platform.tsx
var platform = __webpack_require__("lKWN");

// EXTERNAL MODULE: ./src/js/start/stores/MainStore.tsx + 3 modules
var MainStore = __webpack_require__("cCFZ");

// EXTERNAL MODULE: ./src/js/iaw/i18n.tsx + 1 modules
var i18n = __webpack_require__("VZGw");

// EXTERNAL MODULE: ./node_modules/react-dom/index.js
var react_dom = __webpack_require__("i8i4");
var react_dom_default = /*#__PURE__*/__webpack_require__.n(react_dom);

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__("q1tI");
var react_default = /*#__PURE__*/__webpack_require__.n(react);

// EXTERNAL MODULE: ./src/components-start/constants.tsx
var components_start_constants = __webpack_require__("/0Ih");

// CONCATENATED MODULE: ./src/js/iaw/Dispatch.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
class Dispatch {
    constructor() {
        this.events = {};
        // events that have already been fired
        this.burnt = {};
        // if listener wants to know if it's already been fired, name the event with this string in it
        this.RETROACTIVE = '-retro';
    }
    on(name, callback, ctx) {
        (this.events[name] || (this.events[name] = [])).push({
            fn: callback,
            ctx: ctx,
        });
        if (!!this.burnt[name] && name.indexOf(this.RETROACTIVE) !== -1) {
            // it already happened and this event is retro-active, so fire immediately with any data that was sent with it then
            callback.apply(ctx, this.burnt[name]);
        }
        return this;
    }
    once(name, callback, ctx) {
        const self = this;
        const fn = function () {
            self.off(name, fn);
            callback.apply(ctx, arguments);
        };
        return this.on(name, fn, ctx);
    }
    trigger(name) {
        const data = [].slice.call(arguments, 1); // convert args to array
        const evtArr = (this.events[name] || []).slice(); // clone arr (probably not necessary, but safe)
        let i = 0;
        let evt;
        for (i; (evt = evtArr[i]); i++) {
            evt.fn.apply(evt.ctx, data);
        }
        if (name.indexOf(this.RETROACTIVE) !== -1) {
            // record emission for future listeners
            this.burnt[name] = data;
        }
        return this;
    }
    off(name, callback) {
        const evts = this.events[name];
        const liveEvents = [];
        if (evts && callback) {
            for (let i = 0, len = evts.length; i < len; i++) {
                if (evts[i].fn !== callback) {
                    liveEvents.push(evts[i]);
                }
            }
        }
        // remove event from queue to prevent memory leak
        if (liveEvents.length) {
            this.events[name] = liveEvents;
        }
        else {
            delete this.events[name];
        }
        return this;
    }
}

// EXTERNAL MODULE: ./src/applications/index.tsx + 7 modules
var applications = __webpack_require__("3UBC");

// EXTERNAL MODULE: ./node_modules/mobx-react/index.module.js
var index_module = __webpack_require__("okNM");

// EXTERNAL MODULE: ./node_modules/classnames/index.js
var classnames = __webpack_require__("TSYQ");
var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Provider/index.js
var Provider = __webpack_require__("bUsb");
var Provider_default = /*#__PURE__*/__webpack_require__.n(Provider);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/utils/FocusManager.js
var FocusManager = __webpack_require__("3C4i");

// EXTERNAL MODULE: ./node_modules/react-intl-cdo/lib/index.es.js + 1 modules
var index_es = __webpack_require__("VIzJ");

// EXTERNAL MODULE: ./node_modules/prop-types/index.js
var prop_types = __webpack_require__("17x9");
var prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types);

// EXTERNAL MODULE: ./src/js/iaw/localstorage.tsx
var localstorage = __webpack_require__("p789");

// EXTERNAL MODULE: ./src/js/iaw/analytics.tsx
var iaw_analytics = __webpack_require__("RGcl");

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Wait/index.js
var Wait = __webpack_require__("czhh");
var Wait_default = /*#__PURE__*/__webpack_require__.n(Wait);

// EXTERNAL MODULE: ./src/js/start/ReplaceAppDataTemplates.ts
var ReplaceAppDataTemplates = __webpack_require__("kcGp");

// CONCATENATED MODULE: ./src/components/WelcomeMessage.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
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;
};





const WelcomeMessage_styles = __webpack_require__("kTgf");
let WelcomeMessage_WelcomeMessage = class WelcomeMessage extends react_default.a.Component {
    render() {
        const { message, smallStyle, persistent, fallbackMessage } = this.props;
        // User should only see the message once per session, even after switching tabs or changing to a new stage
        if (!persistent && MainStore["mainStore"].didViewWelcomeMessagePerSession) {
            return null;
        }
        // don't render any component if there aren't isn't a message
        if (!message || message === '')
            return null;
        return (react_default.a.createElement("header", { "data-qe-id": "components-welcome-banner", id: "components-welcome-banner", className: classnames_default()(WelcomeMessage_styles.common, smallStyle ? WelcomeMessage_styles.smallStyle : WelcomeMessage_styles.root) }, Object(ReplaceAppDataTemplates["a" /* default */])(message, fallbackMessage)));
    }
};
WelcomeMessage_WelcomeMessage = __decorate([
    index_module["e" /* observer */]
], WelcomeMessage_WelcomeMessage);
/* harmony default export */ var components_WelcomeMessage = (WelcomeMessage_WelcomeMessage);

// CONCATENATED MODULE: ./src/components/HLayout.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/


const HLayout_styles = __webpack_require__("1qRH");
const HLayout = props => (react["createElement"]("div", { className: classnames_default()(HLayout_styles.HLayout, !props.unpadded && HLayout_styles.padded, props.row && HLayout_styles.rowMode, props.shrink && HLayout_styles.shrink) }, props.children));
/* harmony default export */ var components_HLayout = (HLayout);

// CONCATENATED MODULE: ./src/components/VLayout.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/


const VLayout_styles = __webpack_require__("1qRH");
const VLayout = props => (react["createElement"]("div", { className: classnames_default()(VLayout_styles.VLayout, !props.unpadded && VLayout_styles.padded) }, props.children));
/* harmony default export */ var components_VLayout = (VLayout);

// CONCATENATED MODULE: ./src/components/ScrollView.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/



const ScrollView_styles = __webpack_require__("1qRH");
class ScrollView_ScrollView extends react["Component"] {
    render() {
        const { props } = this;
        return (react["createElement"]("div", { ref: el => this.componentRef = el, className: classnames_default()(ScrollView_styles.scrollView, props.disableScroll && ScrollView_styles.disableScroll, props.className) },
            react["createElement"](components_VLayout, { unpadded: true }, props.children)));
    }
}
/* harmony default export */ var components_ScrollView = (ScrollView_ScrollView);

// EXTERNAL MODULE: ./src/js/start/Sophia.tsx + 1 modules
var Sophia = __webpack_require__("nm0P");

// EXTERNAL MODULE: ./src/js/start/SharedSettings.tsx
var start_SharedSettings = __webpack_require__("zWgm");

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Button/index.js
var Button = __webpack_require__("Cn9g");
var Button_default = /*#__PURE__*/__webpack_require__.n(Button);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Toast/index.js
var Toast = __webpack_require__("bNpM");

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Link/index.js
var Link = __webpack_require__("v7z/");
var Link_default = /*#__PURE__*/__webpack_require__.n(Link);

// EXTERNAL MODULE: ./node_modules/mobx/lib/mobx.module.js
var mobx_module = __webpack_require__("2vnA");

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Video/index.js
var Video = __webpack_require__("HKUX");
var Video_default = /*#__PURE__*/__webpack_require__.n(Video);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Icon/js/Icon.js
var Icon = __webpack_require__("trqI");
var Icon_default = /*#__PURE__*/__webpack_require__.n(Icon);

// EXTERNAL MODULE: ./src/assets/disconnectedState.svg
var disconnectedState = __webpack_require__("DP5k");
var disconnectedState_default = /*#__PURE__*/__webpack_require__.n(disconnectedState);

// EXTERNAL MODULE: ./node_modules/@spectrum/spectrum-iconstore/icons/react/CloseCircle/index.js
var CloseCircle = __webpack_require__("yGn+");
var CloseCircle_default = /*#__PURE__*/__webpack_require__.n(CloseCircle);

// EXTERNAL MODULE: ./node_modules/util/util.js
var util = __webpack_require__("MCLT");

// EXTERNAL MODULE: ./src/LoggerWrapper/Logger.tsx
var Logger = __webpack_require__("43WE");

// CONCATENATED MODULE: ./src/components/VideoContainer.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var VideoContainer_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;
};
var __metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};














const _logger = Logger["a" /* default */].get('VideoContainer');
const VideoContainer_styles = __webpack_require__("03rY");
let VideoContainer_VideoContainer = class VideoContainer extends react["Component"] {
    constructor() {
        super(...arguments);
        this.isError = false;
        /**
         * Handles error state when video failed to load.
         */
        this.onError = event => {
            const { logEvent, containerAnalytics, data } = this.props;
            const error = event.currentTarget.error || {};
            event.stopPropagation();
            this.isError = true;
            logEvent('videoLightbox', {
                ...containerAnalytics.eventData,
                tutorialName: data && data.ctaLog,
                tutorialAction: this.props.url,
                error: {
                    type: event.type,
                    code: error.code,
                    desc: error.message,
                },
            }, 'error');
            _logger.error('Video failed to load:', error);
        };
        this.closeVideoContainer = () => {
            const { logEvent, containerAnalytics, data } = this.props;
            logEvent('videoLightbox', {
                ...containerAnalytics.eventData,
                subtype: 'close',
                tutorialName: data ? data.ctaLog : null,
                tutorialAction: this.props.url,
            }, 'click');
            this.props.onClose && this.props.onClose();
        };
        this.refreshVideo = () => {
            const { logEvent, containerAnalytics, data } = this.props;
            logEvent('videoLightbox', {
                ...containerAnalytics.eventData,
                subtype: 'refresh',
                tutorialName: data ? data.ctaLog : null,
                tutorialAction: this.props.url,
            }, 'click');
            this.isError = false;
        };
    }
    /**
     * Update volume in shared settings
     */
    updateVolume(volumeLevel, muted) {
        if (!Object(util["isNumber"])(volumeLevel) || !Object(util["isBoolean"])(muted)) {
            // The UXP Video component has a bad habit of calling the onVolumeChange callback with the wrong arguments: UXP-15257.
            // Until this is fixed, we'll just bail if we don't understand the arguments we're given.
            return;
        }
        start_SharedSettings["a" /* default */].set('video', 'volume', volumeLevel);
        start_SharedSettings["a" /* default */].set('video', 'muted', muted);
    }
    componentDidMount() {
        const { logEvent, containerAnalytics, data } = this.props;
        MainStore["mainStore"].setDisableNativeControls(true);
        logEvent('videoLightbox', {
            ...containerAnalytics.eventData,
            tutorialName: data && data.ctaLog,
            tutorialAction: this.props.url,
        }, 'render');
    }
    componentWillUnmount() {
        MainStore["mainStore"].setDisableNativeControls(false);
    }
    render() {
        const { url, data: { captions = {} } = {} } = this.props;
        return (react["createElement"]("div", { "data-qe-id": "components-video", id: "components-video", className: classnames_default()(VideoContainer_styles.root, { [VideoContainer_styles.error]: this.isError || !MainStore["mainStore"].online }) }, this.isError || !MainStore["mainStore"].online ? (react["createElement"](react["Fragment"], null,
            react["createElement"]("span", { "data-qe-id": "video-error-message" },
                react["createElement"](Icon_default.a, { className: VideoContainer_styles.messageIcon },
                    react["createElement"](disconnectedState_default.a, null)),
                react["createElement"]("div", { className: VideoContainer_styles.message },
                    react["createElement"](index_es["c" /* FormattedMessage */], { id: "video_no_connection_message" })),
                react["createElement"]("div", { className: VideoContainer_styles.submessage },
                    react["createElement"](index_es["c" /* FormattedMessage */], { id: "video_no_connection_submessage" })),
                react["createElement"]("div", { className: VideoContainer_styles.actionSet, "data-qe-id": "video-error-buttons" },
                    react["createElement"](Button_default.a, { variant: "primary", onClick: this.closeVideoContainer },
                        react["createElement"](index_es["c" /* FormattedMessage */], { id: "video_no_connection_cancel_btn" })),
                    react["createElement"](Button_default.a, { variant: "primary", onClick: this.refreshVideo },
                        react["createElement"](index_es["c" /* FormattedMessage */], { id: "video_no_connection_retry_btn" })))),
            react["createElement"](Button_default.a, { "data-qe-id": "video-close-button", className: VideoContainer_styles.closeButton, variant: "action", quiet: true, label: null, icon: react["createElement"](CloseCircle_default.a, { size: "M" }), onClick: this.closeVideoContainer }))) : (react["createElement"](Video_default.a, { "data-qe-id": "video-container", controls: true, onClose: this.closeVideoContainer, src: url, autoplay: true, volume: start_SharedSettings["a" /* default */].get('video', 'volume') || 1.0, onError: this.onError, onVolumeChange: this.updateVolume, muted: start_SharedSettings["a" /* default */].get('video', 'muted'), cclang: captions.langCode }, captions && captions.src && (react["createElement"]("track", { kind: "subtitles", label: captions.label, src: captions.src, 
            // @ts-ignore
            srclang: captions.langCode }))))));
    }
};
VideoContainer_decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", Object)
], VideoContainer_VideoContainer.prototype, "isError", void 0);
VideoContainer_VideoContainer = VideoContainer_decorate([
    index_module["e" /* observer */]
], VideoContainer_VideoContainer);
/* harmony default export */ var components_VideoContainer = (VideoContainer_VideoContainer);

// EXTERNAL MODULE: ./src/components/ModalController.tsx
var ModalController = __webpack_require__("NAo7");

// EXTERNAL MODULE: ./src/js/start/YukonContainers.ts
var YukonContainers = __webpack_require__("qrd5");

// EXTERNAL MODULE: ./src/js/start/Ututs.tsx
var Ututs = __webpack_require__("gh7h");

// EXTERNAL MODULE: ./src/js/iaw/fs.tsx
var fs = __webpack_require__("xZA7");

// EXTERNAL MODULE: ./src/js/iaw/VulcanAPI.ts
var VulcanAPI = __webpack_require__("9PyL");

// CONCATENATED MODULE: ./src/components/helpers/CallToActionHelperFunctions.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2020 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/





const DOWNLOAD_ATTEMPTS = 1;
const CallToActionHelperFunctions_logger = Logger["a" /* default */].get('CallToAction');
function downloadFile(clientId, assetId, assetUrl, filename, callbacks, options = {}, progress = { percent: 0, cancel: () => { } }) {
    const { retry = DOWNLOAD_ATTEMPTS - 1, retryDelay = 1000 } = options;
    const vulcan = Object(VulcanAPI["a" /* vulcanAPI */])();
    CallToActionHelperFunctions_logger.log(`[download File] downloading ${assetUrl}`);
    return new Promise((resolve, reject) => {
        var _a;
        if (!MainStore["mainStore"].online) {
            (_a = callbacks.error) === null || _a === void 0 ? void 0 : _a.call(callbacks);
            reject();
            return;
        }
        const handleError = err => {
            CallToActionHelperFunctions_logger.warn(`[download File] Failed to download file from ${assetUrl}`, err);
            cleanupVulcanListeners();
            if (retry === 0) {
                resetTimeout(true); // stop the timeout
                reject(err);
                callbacks.error();
                return;
            }
            CallToActionHelperFunctions_logger.log('[download File] will retry...');
            setTimeout(() => {
                downloadFile(clientId, assetId, assetUrl, filename, callbacks, { retry: retry - 1, retryDelay })
                    .then(resolve)
                    .catch(reject);
            }, retryDelay);
        };
        const setupVulcanListeners = () => {
            vulcan.on('ccxprocess.CCPhotoDownloadResponse', onPhotoDownloadComplete);
            vulcan.on('ccxprocess.CCPhotoDownloadProgress', onPhotoDownloadProgress);
            vulcan.on('ccxprocess.CCPhotoDownloadError', onPhotoDownloadError);
        };
        const cleanupVulcanListeners = () => {
            vulcan.off('ccxprocess.CCPhotoDownloadResponse', onPhotoDownloadComplete);
            vulcan.off('ccxprocess.CCPhotoDownloadProgress', onPhotoDownloadProgress);
            vulcan.off('ccxprocess.CCPhotoDownloadError', onPhotoDownloadError);
        };
        let receivedMessage = false;
        let timeout = null;
        const resetTimeout = (stop = false) => {
            if (timeout) {
                clearTimeout(timeout);
            }
            if (stop) {
                //_logger.log(`[download File] [${filename}] [attempt #${DOWNLOAD_ATTEMPTS - retry}] Stop the timeout and retries.`);
                return; // set no more timeouts
            }
            receivedMessage = false;
            timeout = setTimeout(() => {
                if (!receivedMessage) {
                    handleError(new Error(`[download File] [${filename}] [attempt #${DOWNLOAD_ATTEMPTS -
                        retry}] Timeout waiting for Vulcan message. Make sure your CCX Process version is >= 2.2.0-36`));
                }
            }, 15000);
        };
        const onPhotoDownloadError = data => {
            var _a;
            if (data.id !== assetId) {
                return;
            }
            receivedMessage = true;
            CallToActionHelperFunctions_logger.log(`[download File] [${filename}] [attempt #${DOWNLOAD_ATTEMPTS - retry}] CCX Process Download Error.`);
            (_a = callbacks.error) === null || _a === void 0 ? void 0 : _a.call(callbacks);
            handleError(data && data.error);
        };
        const onPhotoDownloadProgress = data => {
            if (data.id !== assetId) {
                return;
            }
            receivedMessage = true;
            if (data && progress.percent < data.percentage) {
                progress.percent = data.percentage;
            }
            resetTimeout();
        };
        const onPhotoDownloadComplete = async (data) => {
            var _a, _b;
            if (data.id !== assetId) {
                return;
            }
            receivedMessage = true;
            if (!data) {
                handleError(new Error(`[download File] [${filename}] [attempt #${DOWNLOAD_ATTEMPTS -
                    retry}] No data received from Vulcan. Make sure your CCX Process version is >= 2.2.0-36`));
                (_a = callbacks.error) === null || _a === void 0 ? void 0 : _a.call(callbacks);
                return;
            }
            CallToActionHelperFunctions_logger.log(`[download File] [${filename}] [attempt #${DOWNLOAD_ATTEMPTS -
                retry}] Downloading succeeded ${assetUrl}, result is ${data.path}`);
            cleanupVulcanListeners();
            resetTimeout(true); // stop the timeout
            (_b = callbacks.downloaded) === null || _b === void 0 ? void 0 : _b.call(// stop the timeout
            callbacks);
            const status = await applications["a" /* default */].openLocalDocument({
                path: data.path,
                title: filename,
                skipMRU: true,
                template: true,
            });
            await applications["a" /* default */].releaseFileReference(filename, status.documentID);
            // Remove file from path here
            await fs["a" /* default */].deleteFile(data.path);
            resolve();
        };
        setupVulcanListeners();
        // Send the download request
        const photoData = {
            clientId: clientId,
            id: assetId,
            url: assetUrl,
            filename: filename,
            source: 'ccxstart-download-file',
            downloadSubcategory: assetUrl,
        };
        CallToActionHelperFunctions_logger.log(`[download File] [${filename}] [attempt #${DOWNLOAD_ATTEMPTS - retry}] Dispatch CCX Process Request.`);
        vulcan.dispatch({ type: 'ccxprocess.CCPhotoDownloadRequest', data: photoData });
        resetTimeout();
        progress.cancel = () => {
            cleanupVulcanListeners();
            resetTimeout(true); // stop the timeout
            receivedMessage = true;
            CallToActionHelperFunctions_logger.log('[download File] cancel requested');
            callbacks.error();
            reject(new Error('Download cancelled'));
        };
    });
}

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-content-modules/src/common.ts
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2020 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/

var CommonModuleType;
(function (CommonModuleType) {
    CommonModuleType["cmActions"] = "cmActions";
    CommonModuleType["cmActiveSearch"] = "cmActiveSearch";
    CommonModuleType["cmPsFeatures"] = "cmPsFeatures";
    CommonModuleType["cmInAppLearn"] = "cmInAppLearn";
    CommonModuleType["cmHistory"] = "cmHistory";
    CommonModuleType["cmHelpx"] = "cmHelpx";
    CommonModuleType["cmHelpXDetail"] = "cmHelpXDetail";
    CommonModuleType["cmFeedbackTutorial"] = "cmFeedbackTutorial";
    CommonModuleType["cmFeedbackDiscovery"] = "cmFeedbackDiscovery";
    CommonModuleType["cmFeedbackHelp"] = "cmFeedbackHelp";
    CommonModuleType["cmFeedbackAction"] = "cmFeedbackAction";
    CommonModuleType["cmFeedbackSearchResults"] = "cmFeedbackSearchResults";
    CommonModuleType["cmBrowse"] = "cmBrowse";
    CommonModuleType["cmAutocomplete"] = "cmAutocomplete";
    CommonModuleType["cmHelpXQuickLinks"] = "cmHelpXQuickLinks";
    CommonModuleType["cmResources"] = "cmResources";
    CommonModuleType["cmMessages"] = "cmMessages";
    CommonModuleType["cmSettings"] = "cmSettings";
})(CommonModuleType || (CommonModuleType = {}));
var ContentViewModeType;
(function (ContentViewModeType) {
    ContentViewModeType["COLLAPSED"] = "c";
    ContentViewModeType["EXPANDED"] = "e";
    ContentViewModeType["FULL"] = "f";
})(ContentViewModeType || (ContentViewModeType = {}));
var ExperienceStates;
(function (ExperienceStates) {
    ExperienceStates[ExperienceStates["INITIAL"] = 0] = "INITIAL";
    ExperienceStates[ExperienceStates["DISCOVER"] = 1] = "DISCOVER";
    ExperienceStates[ExperienceStates["QUICK_RESULTS"] = 2] = "QUICK_RESULTS";
    ExperienceStates[ExperienceStates["SEARCH_RESULTS"] = 3] = "SEARCH_RESULTS";
    ExperienceStates[ExperienceStates["DETAIL"] = 4] = "DETAIL";
    ExperienceStates[ExperienceStates["UNKNOWN"] = 99] = "UNKNOWN";
})(ExperienceStates || (ExperienceStates = {}));
var ExperienceStateString;
(function (ExperienceStateString) {
    ExperienceStateString["INITIAL"] = "Initial View";
    ExperienceStateString["DISCOVER"] = "Discovery View";
    ExperienceStateString["QUICK_RESULTS"] = "Quick Results View";
    ExperienceStateString["SEARCH_RESULTS"] = "Search Results View";
    ExperienceStateString["DETAIL"] = "Detail View";
    ExperienceStateString["UNKNOWN"] = "Unknown View";
})(ExperienceStateString || (ExperienceStateString = {}));
const convertToExperienceState = (state) => {
    switch (state) {
        case ExperienceStateString.INITIAL:
            return ExperienceStates.INITIAL;
        case ExperienceStateString.DISCOVER:
            return ExperienceStates.DISCOVER;
        case ExperienceStateString.QUICK_RESULTS:
            return ExperienceStates.QUICK_RESULTS;
        case ExperienceStateString.SEARCH_RESULTS:
            return ExperienceStates.SEARCH_RESULTS;
        default:
            return ExperienceStates.UNKNOWN;
    }
};
const convertToExperienceStateString = (state) => {
    switch (state) {
        case ExperienceStates.INITIAL:
            return ExperienceStateString.INITIAL;
        case ExperienceStates.DISCOVER:
            return ExperienceStateString.DISCOVER;
        case ExperienceStates.QUICK_RESULTS:
            return ExperienceStateString.QUICK_RESULTS;
        case ExperienceStates.SEARCH_RESULTS:
            return ExperienceStateString.SEARCH_RESULTS;
        default:
            return ExperienceStateString.UNKNOWN;
    }
};
var NavigationDirectionType;
(function (NavigationDirectionType) {
    NavigationDirectionType["UNKNOWN"] = "Unknown";
    NavigationDirectionType["GOHOME"] = "goHome";
    NavigationDirectionType["GOBACK"] = "goBack";
    NavigationDirectionType["GOFORWARD"] = "goForward";
})(NavigationDirectionType || (NavigationDirectionType = {}));
// ENUM for UP Trigger types
var UPTriggerType;
(function (UPTriggerType) {
    UPTriggerType["FORCE_RUN_RECOMMENDATION_ENGINE"] = "Force Run Recommendation Engine";
    UPTriggerType["SEARCH"] = "search";
    UPTriggerType["RICH_TOOLTIP"] = "tool_technique";
    UPTriggerType["IMPORT_IMAGE"] = "Import Image";
    UPTriggerType["TOOL_SELECT"] = "Tool Selected";
    UPTriggerType["LAYER_SELECT"] = "Layer Selected";
    UPTriggerType["NEW_DOCUMENT"] = "New Document";
    UPTriggerType["EXPERIENCE_STATE"] = "Experience State";
    UPTriggerType["DEEPLINK"] = "Deep Link";
    UPTriggerType["BLANK_DOCUMENT"] = "Blank Document";
    UPTriggerType["NONE"] = "";
})(UPTriggerType || (UPTriggerType = {}));
var UPShowCountStatusType;
(function (UPShowCountStatusType) {
    UPShowCountStatusType["FIRST_2_LAUNCHES"] = "0-2";
    UPShowCountStatusType["FIRST_PERIOD"] = "3-5";
    UPShowCountStatusType["GENERAL"] = "6+";
})(UPShowCountStatusType || (UPShowCountStatusType = {}));
var UPLaunchCountStatusType;
(function (UPLaunchCountStatusType) {
    UPLaunchCountStatusType["FIRST_2_LAUNCHES"] = "0-2";
    UPLaunchCountStatusType["FIRST_PERIOD"] = "3-5";
    UPLaunchCountStatusType["GENERAL"] = "6+";
})(UPLaunchCountStatusType || (UPLaunchCountStatusType = {}));
var PSLaunchCountStatusType;
(function (PSLaunchCountStatusType) {
    PSLaunchCountStatusType["FIRST_2_LAUNCHES"] = "0-2";
    PSLaunchCountStatusType["FIRST_PERIOD"] = "3-5";
    PSLaunchCountStatusType["GENERAL"] = "6+";
})(PSLaunchCountStatusType || (PSLaunchCountStatusType = {}));
var QueryLengthCategoryType;
(function (QueryLengthCategoryType) {
    QueryLengthCategoryType["ONE_TWO"] = "1-2";
    QueryLengthCategoryType["THREE_FOUR"] = "3-4";
    QueryLengthCategoryType["FIVE_PLUS"] = "5+";
})(QueryLengthCategoryType || (QueryLengthCategoryType = {}));
var UserExperienceLevelType;
(function (UserExperienceLevelType) {
    UserExperienceLevelType["BEGINNER"] = "beginner";
    UserExperienceLevelType["NON_BEGINNER"] = "non-beginner";
})(UserExperienceLevelType || (UserExperienceLevelType = {}));
const CommonStaticContext = {
    intl: prop_types_default.a.any,
    store: prop_types_default.a.any,
    host: prop_types_default.a.any,
    hostContext: prop_types_default.a.any,
    contentModuleHelper: prop_types_default.a.any,
    registerDependencies: prop_types_default.a.any,
    getSearchContext: prop_types_default.a.any,
    setUnifiedPanelValues: prop_types_default.a.any,
    setQueryDebounced: prop_types_default.a.any,
    onDocSwitched: prop_types_default.a.any,
    onDocClosed: prop_types_default.a.any,
    onNavigation: prop_types_default.a.any,
    unifiedPanelHelper: prop_types_default.a.any,
    contentModuleStore: prop_types_default.a.any,
    fireIngestEvent: prop_types_default.a.any,
};
var UPViewTypes;
(function (UPViewTypes) {
    UPViewTypes["unknown"] = "unknown";
    UPViewTypes["template"] = "template";
    UPViewTypes["detail"] = "detailViewPage";
})(UPViewTypes || (UPViewTypes = {}));
var DeepLinkView;
(function (DeepLinkView) {
    DeepLinkView["DETAILED"] = "detailed";
    DeepLinkView["BROWSE"] = "browse";
})(DeepLinkView || (DeepLinkView = {}));
var UXPCommandID;
(function (UXPCommandID) {
    UXPCommandID["SHOW_UP"] = "showUnifiedPanel";
    UXPCommandID["CLOSE_UP"] = "closeUnifiedPanel";
    UXPCommandID["HIDE_UP"] = "hideUnifiedPanel";
    UXPCommandID["TOGGLE_UP"] = "toggleUnifiedPanel";
})(UXPCommandID || (UXPCommandID = {}));
var UXPCommandSource;
(function (UXPCommandSource) {
    UXPCommandSource["HOMESCREEN_OPEN_DISCOVER"] = "homeScreenOpenDiscover";
    UXPCommandSource["MENU_HELP_SEARCHBAR"] = "macNativeHelpSearch";
    UXPCommandSource["RTT"] = "RichToolTips";
    UXPCommandSource["MAGNIFYING_GLASS"] = "magnifyingGlass";
    UXPCommandSource["MENUITEM"] = "menuItem";
    UXPCommandSource["MENU_HELP_HELP"] = "menu:help:help";
    UXPCommandSource["MENU_HELP_TUTORIALS"] = "menu:help:tutorials";
    UXPCommandSource["MENU_HELP_WHATSNEW"] = "menu:help:whatsnew";
    UXPCommandSource["MENU_EDIT_SEARCH"] = "menu:edit:search";
    UXPCommandSource["IN_APP_WELCOME"] = "in-app-welcome";
    UXPCommandSource["HELPX_WELCOME"] = "helpx-welcome";
    UXPCommandSource["QUICK_ACTION"] = "quickAction";
    UXPCommandSource["HS_VISIBILITY_CHANGED"] = "HSVisibilityChanged";
    UXPCommandSource["URI_DEEPLINK"] = "psUriHandler";
    // FIXME (arpmathu): keeping these for backward compatibility. Remove after changing UP.
    UXPCommandSource["HELP_SEARCH"] = "macNativeHelpSearch";
    UXPCommandSource["HELP_MENU"] = "menu:help:help";
    UXPCommandSource["EDIT_MENU"] = "menu:edit:search";
    UXPCommandSource["LEARN_AND_SEARCH"] = "LearnAndSearch";
})(UXPCommandSource || (UXPCommandSource = {}));
var UPState;
(function (UPState) {
    UPState[UPState["shown"] = 0] = "shown";
    UPState[UPState["closed"] = 1] = "closed";
    UPState[UPState["hidden"] = 2] = "hidden";
})(UPState || (UPState = {}));
var UPLocation;
(function (UPLocation) {
    UPLocation[UPLocation["magnifyingGlass"] = 0] = "magnifyingGlass";
    UPLocation[UPLocation["centerOfApp"] = 1] = "centerOfApp";
    UPLocation[UPLocation["previousLocation"] = 2] = "previousLocation";
})(UPLocation || (UPLocation = {}));
var BrowseConstants;
(function (BrowseConstants) {
    BrowseConstants["whatsNewDefaultAemID"] = "photoshop/using/whats-new";
    BrowseConstants["handsOnTutorials"] = "browseHandsonTutorials";
    BrowseConstants["quickAction"] = "browseActions";
    BrowseConstants["whatsNew"] = "browseWhatsNew";
    BrowseConstants["searchConfig"] = "searchConfigWithTimestamp";
    BrowseConstants["templateID"] = "T13DetailViewWhatsNew";
})(BrowseConstants || (BrowseConstants = {}));
var UIStateType;
(function (UIStateType) {
    UIStateType["NORMAL"] = "NORMAL";
    UIStateType["LOADING_COLLECTION"] = "LOADING_COLLECTION";
    UIStateType["LOADING_PAGE"] = "LOADING_PAGE";
    UIStateType["ERROR_PAGE"] = "ERROR_PAGE";
    UIStateType["ERROR_DETAIL_CONTENT"] = "ERROR_DETAIL_CONTENT";
})(UIStateType || (UIStateType = {}));

// EXTERNAL MODULE: ./src/applications/DeeplinkLaunch.ts
var DeeplinkLaunch = __webpack_require__("/xJe");

// CONCATENATED MODULE: ./src/components/helpers/FileDownloader.ts
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2022 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/





const FileDownloader_Logger = Logger["a" /* default */].get('FileDownloader');
class FileDownloader_FileDownloader {
    constructor(assetUrl, fileName, containerAnalytics, callbacks = {}, options = { deleteAfterDownload: true }) {
        this.vulcan = Object(VulcanAPI["a" /* vulcanAPI */])();
        this.onDownloadComplete = async (data) => {
            var _a, _b;
            if (!data || data.err) {
                FileDownloader_Logger.warn(`Failed to download file from ${this.assetUrl}`, (data === null || data === void 0 ? void 0 : data.err) || 'Empty CCXP response');
                const analyticsPayload = this.generateAnalyticsPayload('error', `Failed to download file ${(data === null || data === void 0 ? void 0 : data.err) || 'Empty CCXP response'}`);
                iaw_analytics["a" /* default */].logErrorEvent(this.containerAnalytics.component, analyticsPayload);
                this.cleanupVulcanListeners();
                return;
            }
            if (data.path) {
                FileDownloader_Logger.log(`[${this.fileName}] Download succeeded ${this.assetUrl}, result is ${data.path}`);
                const analyticsPayload = this.generateAnalyticsPayload('misc', 'Download succeeded');
                iaw_analytics["a" /* default */].logMiscellaneousEvent(this.containerAnalytics.component, analyticsPayload);
                this.cleanupVulcanListeners();
                let status;
                try {
                    // open the file
                    status = await applications["a" /* default */].openLocalDocument({
                        path: data.path,
                        title: this.fileName,
                        skipMRU: true,
                        template: true,
                    });
                    // release the file reference
                    await applications["a" /* default */].releaseFileReference(this.fileName, status.documentID);
                    // trigger the delete operation via CCXP
                    if (this.options.deleteAfterDownload) {
                        this.vulcan.dispatch({
                            type: 'ccxprocess.FirstMileOnDemandRequest',
                            data: { params: this.payload, action: 'Delete' }
                        });
                    }
                    (_b = (_a = this.callbacks).onDownloadComplete) === null || _b === void 0 ? void 0 : _b.call(_a);
                }
                catch (error) {
                    FileDownloader_Logger.error('Failed to open downloaded file', error);
                    const analyticsPayload = this.generateAnalyticsPayload('error', `Failed to open downloaded file ${error}`);
                    iaw_analytics["a" /* default */].logErrorEvent(this.containerAnalytics.component, analyticsPayload);
                }
            }
            else {
                // this is the handler for the delete request, or a different error handler
                FileDownloader_Logger.log(`[${this.fileName}] Deleted downloaded file successfully: ${this.assetUrl}, result was at ${data.path}`);
            }
        };
        this.onError = err => {
            var _a, _b;
            FileDownloader_Logger.warn(`Failed to download file from ${this.assetUrl}`, err);
            const analyticsPayload = this.generateAnalyticsPayload('error', `Failed to download file ${err}`);
            iaw_analytics["a" /* default */].logErrorEvent(this.containerAnalytics.component, analyticsPayload);
            this.cleanupVulcanListeners();
            (_b = (_a = this.callbacks).onError) === null || _b === void 0 ? void 0 : _b.call(_a);
        };
        this.listenerMap = {
            'ccxprocess.FirstMileOnDemandResponse': this.onDownloadComplete,
            'ccxprocess.FirstMileOnDemandProgress': () => { },
            'ccxprocess.FirstMileOnDemandError': () => this.onError
        };
        this.setupVulcanListeners = () => {
            Object.keys(this.listenerMap).forEach(eventKey => {
                this.vulcan.on(eventKey, this.listenerMap[eventKey]);
            });
        };
        this.cleanupVulcanListeners = () => {
            Object.keys(this.listenerMap).forEach(eventKey => {
                this.vulcan.off(eventKey, this.listenerMap[eventKey]);
            });
        };
        this.downloadAndOpenFileOnDemand = async () => {
            if (!MainStore["mainStore"].online) {
                FileDownloader_Logger.warn(`Failed to download file from ${this.assetUrl}`, 'Application is offline');
                const analyticsPayload = this.generateAnalyticsPayload('error', 'Failed to download file. Application is offline.');
                iaw_analytics["a" /* default */].logErrorEvent(this.containerAnalytics.component, analyticsPayload);
                return;
            }
            this.setupVulcanListeners();
            this.vulcan.dispatch({ type: 'ccxprocess.FirstMileOnDemandRequest', data: { params: this.payload } });
        };
        this.fileName = fileName;
        this.assetUrl = assetUrl;
        this.payload = {
            url: assetUrl,
            productCode: applications["a" /* default */].id,
            productVersion: applications["a" /* default */].version,
            productLanguage: applications["a" /* default */].language
        };
        this.containerAnalytics = containerAnalytics;
        this.callbacks = callbacks;
        this.options = options;
    }
    generateAnalyticsPayload(logType, value) {
        const payload = {
            ...this.containerAnalytics.eventData,
            workflow: 'download',
        };
        switch (logType) {
            case 'error':
                payload.error = {
                    desc: value,
                    type: 'fileDownloader',
                };
                break;
            case 'misc':
                payload.value = value;
                break;
        }
        return payload;
    }
}

// EXTERNAL MODULE: ./src/js/iaw/HomescreenError.ts
var HomescreenError = __webpack_require__("LDAD");

// CONCATENATED MODULE: ./src/components/helpers/CallToActionHandler.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/




















const CallToActionHandler_logger = Logger["a" /* default */].get('CallToActioHandler');
/**
 * Performs open URL in browser depending on certain parameters
 * @url Uniform Resource Locator
 * @payload analytics payload
 * @ctaURLNeedsNoAuth is a parameter that tells us if user authentication is required in the browser
 * ctaURLNeedsNoAuth = false | null -> authentication needed
 * ctaURLNeedsNoAuth = true -> no authentication needed
 */
const openUrl = (url, payload, ctaURLNeedsNoAuth) => {
    let ctaUrl = url;
    if (url && payload) {
        const urlWithParams = new URL(url);
        urlWithParams.searchParams.set('guid', payload['event.guid']);
        urlWithParams.searchParams.set('product', payload['consumer.name']);
        urlWithParams.searchParams.set('product-version', payload['consumer.version']);
        urlWithParams.searchParams.set('location', 'CCXStart');
        urlWithParams.searchParams.set('location-version', payload['source.version']);
        urlWithParams.searchParams.set('trackingid', '1NZGDC8F');
        urlWithParams.searchParams.set('mv', 'in-product');
        ctaUrl = urlWithParams.toString();
    }
    if (ctaUrl) {
        const authentication = ctaURLNeedsNoAuth ? null : Object(imsBridge["d" /* jumpKeyForAdobeAccount */])();
        platform["a" /* default */].openDefaultBrowser(ctaUrl, authentication);
    }
};
async function handleCallToAction(data, containerAnalytics, logEvent, optionalComponentContext // used for ModalContainers
) {
    if (!data) {
        CallToActionHandler_logger.error('No CTA data provided');
        return;
    }
    let payload = null;
    if (logEvent && containerAnalytics) {
        payload = logEvent(containerAnalytics.component, {
            ...containerAnalytics.eventData,
            ctaEvent: data ? data.ctaEvent : null,
            ctaAction: data ? data.ctaAction : null,
            ctaData: data ? data.ctaData : null,
            ctaURL: data ? data.ctaUrl : null,
            subtype: data ? data.ctaLog : null,
        }, 'click');
    }
    if (data.ctaJson && data.ctaJson.ctaAction === 'license' && data.ctaJson.ctaWorkflow) {
        return imsBridge["c" /* default */].launchLicensingWorkflow(data.ctaJson.ctaWorkflow);
    }
    else if (data.ctaAction === 'externalURL') {
        openUrl(data.ctaUrl, payload, !!data.ctaURLNeedsNoAuth);
        return;
    }
    else if (data.ctaDeeplinkData && data.ctaEvent !== components_start_constants["k" /* default */].CTA_EVENTS.LAUNCH_CMDN_WITH_DEEPLINK_PATH) {
        if (applications["a" /* default */].tutorialsDeepLinkingEnabled) {
            applications["a" /* default */].launchDiscoverPanelWithDeeplink(data, DeeplinkLaunch["a" /* UXPDeeplinkCommandSource */].inBrowser, containerAnalytics);
            return;
        }
        /**
         * check deeplink support, otherwise try to fallback checking ctaUrl if available &
         * open in browser
         */
        const isDeepLinkingEnabled = (await applications["a" /* default */].getUnifiedPanelFeatureFlags()).isDeepLinkingEnabled;
        if (isDeepLinkingEnabled && data.ctaDeeplinkData) {
            // Clone so we don't modify the original CTA
            const ctaDeeplinkData = { ...data.ctaDeeplinkData };
            // There is a mix of what is passed as `containerAnalytics`
            let containerAnalyticsOrigin;
            if (containerAnalytics && containerAnalytics.campaignId) {
                containerAnalyticsOrigin = containerAnalytics;
            }
            else if (containerAnalytics &&
                containerAnalytics.eventData &&
                containerAnalytics.eventData.containerAnalyticsParams) {
                containerAnalyticsOrigin = containerAnalytics.eventData.containerAnalyticsParams;
            }
            // If we have campaign data, add to deeplink JSON
            if (containerAnalyticsOrigin && ctaDeeplinkData.data) {
                addCampaignDataToDeeplinkCommand(ctaDeeplinkData, containerAnalyticsOrigin);
            }
            applications["a" /* default */].openUnifiedPanelDeepLink(ctaDeeplinkData);
            return;
        }
        // Fallback to see if we have URL
        if (data.ctaUrl) {
            openUrl(data.ctaUrl, payload, !!data.ctaURLNeedsNoAuth);
            return;
        }
    }
    else if (data.ctaAction === 'appEvent') {
        handleAppEvent(data, containerAnalytics, logEvent, optionalComponentContext, payload);
        return;
    }
    CallToActionHandler_logger.warn(`handleCallToAction: Invalid CTA`, data);
}
function handleAppEvent(data, containerAnalytics, logEvent = () => { }, optionalComponentContext, // used for ModalContainers
payload) {
    var _a, _b;
    // CTA events to be handled
    switch (data.ctaEvent) {
        case components_start_constants["k" /* default */].CTA_EVENTS.WHATS_NEW_OVERLAY:
            const whatsNewData = Object(YukonContainers["c" /* getWhatsNewContent */])();
            if (whatsNewData) {
                MainStore["mainStore"].openToastal();
            }
            else {
                // TODO fallback?
                if (data.ctaUrl !== undefined) {
                    const url = data.ctaUrl;
                    openUrl(url, payload, !!data.ctaURLNeedsNoAuth); // TODO - should this get the analytics params?
                }
                else {
                    CallToActionHandler_logger.error('empty url provided');
                }
            }
            break;
        case components_start_constants["k" /* default */].CTA_EVENTS.USER_INTENT_DIALOG_OVERLAY:
            const userIntentData = Object(YukonContainers["b" /* getUserIntentDialogContent */])();
            if (userIntentData) {
                MainStore["mainStore"].openToastal();
            }
            else {
                CallToActionHandler_logger.error('CallToActionHandler: no User Intent data when trying to open the Toastal');
                iaw_analytics["a" /* default */].logErrorEvent(components_start_constants["i" /* USER_INTENT_DIALOG_ERROR_KEY */], {
                    error: {
                        desc: 'Trying to open UserIntentDialog Toastal, but we don\'t have any data',
                        type: HomescreenError["c" /* HomescreenErrorTypes */].USER_INTENT_DIALOG,
                        code: HomescreenError["b" /* HomescreenErrorCodes */].NO_USER_INENT_DATA_WHEN_OPENING_TOASTAL
                    },
                });
            }
            break;
        case components_start_constants["k" /* default */].CTA_EVENTS.IN_APP_TUTORIAL:
            const ctaData = data.ctaData;
            if (!ctaData) {
                return;
            }
            if (ctaData instanceof Array) {
                ctaData.forEach(cta => {
                    if (cta && cta.tutorial_id) {
                        applications["a" /* default */].launchTutorial(cta.tutorial_id, containerAnalytics);
                    }
                });
            }
            else if (ctaData.tutorial_id) {
                if (ctaData && ctaData.tutorial_id) {
                    applications["a" /* default */].launchTutorial(ctaData.tutorial_id, containerAnalytics);
                }
            }
            break;
        case components_start_constants["k" /* default */].CTA_EVENTS.ENABLE_PREFERENCE:
            const ctaPreferenceData = data.ctaData;
            if (!ctaPreferenceData) {
                return;
            }
            if (ctaPreferenceData instanceof Array) {
                ctaPreferenceData.forEach(cta => {
                    if (cta && cta.name) {
                        applications["a" /* default */].enablePreference(cta.name);
                    }
                });
            }
            else if (ctaPreferenceData.name) {
                if (ctaPreferenceData && ctaPreferenceData.name) {
                    applications["a" /* default */].enablePreference(ctaPreferenceData.name);
                }
            }
            break;
        case components_start_constants["k" /* default */].CTA_EVENTS.NAVIGATE:
            const panelTarget = (data.ctaData && data.ctaData.panel) || 'home';
            if (panelTarget === 'learn' && (!Ututs["a" /* default */].webTutorials.length || !applications["a" /* default */].shouldShowLearnTab)) {
                openUrl(data.ctaUrl, payload, !!data.ctaURLNeedsNoAuth);
                break;
            }
            MainStore["mainStore"].navigate(panelTarget);
            break;
        case components_start_constants["k" /* default */].CTA_EVENTS.PRESET:
            if (data.ctaData && data.ctaData.template_category === 'CmdN') {
                applications["a" /* default */].launchNewDocumentDialog();
            }
            else {
                applications["a" /* default */].openPreset(data.ctaData);
            }
            break;
        // IAW-11816 Added event for Blue Toast actions that consist only of link actions
        case components_start_constants["k" /* default */].CTA_EVENTS.OPEN_LINK: {
            openUrl(data.ctaUrl, payload, !!data.ctaURLNeedsNoAuth);
            break;
        }
        case components_start_constants["k" /* default */].CTA_EVENTS.VIDEO_OVERLAY:
            if (data.ctaUrl === undefined) {
                CallToActionHandler_logger.error('empty url provided');
                return;
            }
            if (!applications["a" /* default */].shouldLaunchVideoInBrowser) {
                ModalController["a" /* default */].show(react["createElement"](components_VideoContainer, { url: data.ctaUrl, data: data, containerAnalytics: containerAnalytics, logEvent: logEvent }), optionalComponentContext);
            }
            else {
                const url = data.ctaUrl;
                openUrl(url, payload, !!data.ctaURLNeedsNoAuth);
            }
            break;
        // Download and open file from external url
        case components_start_constants["k" /* default */].CTA_EVENTS.DOWNLOAD_FILE:
            // Download file callback
            (_b = (_a = data.ctaData).downloading) === null || _b === void 0 ? void 0 : _b.call(_a);
            /**
             * Recursive function that retries download
             * @clientId  ClientID to make download request
             * @assetId
             * @assetUrl
             * @filename  filename used to open file
             * @callbacks send info to reflect UI changes, error(), downloading(), downloaded()
             * @options = {} retry and retryDelay
             * @progress = { percent: 0, cancel: () => {} }
             */
            downloadFile('CCXInAppWelcomeUXP3', data.ctaData.assetId, data.ctaUrl, data.ctaData.filename, {
                ...data.ctaData,
            });
            break;
        // Download and open file from external url
        case components_start_constants["k" /* default */].CTA_EVENTS.DOWNLOAD_FILE_ON_DEMAND:
            new FileDownloader_FileDownloader(data.ctaUrl, data.ctaData.filename, containerAnalytics).downloadAndOpenFileOnDemand();
            break;
        case components_start_constants["k" /* default */].CTA_EVENTS.NF_DEEPLINK:
            if (!data.neuralFilterSampleImage) {
                iaw_analytics["a" /* default */].logErrorEvent('neuralFilterContentFailure', {
                    error: {
                        desc: 'Sample image not present for neural filter CTA',
                    },
                });
                return;
            }
            const imagePath = data.neuralFilterSampleImage &&
                Sophia["a" /* default */].getFullAssetPath(data.neuralFilterSampleImage, {
                    createFileURI: false,
                });
            applications["a" /* default */].openNeuralFilterDeeplink(imagePath, data.neuralFilterSampleImage._path, data.neuralFilterSettingsJson); //TODO: We need to get the image title somehow
        case components_start_constants["k" /* default */].CTA_EVENTS.LAUNCH_CMDN_WITH_DEEPLINK_PATH:
            if (data.ctaDeeplinkData) {
                applications["a" /* default */].launchCMDNWithDeeplink(data.ctaDeeplinkData.data);
            }
            break;
        case components_start_constants["k" /* default */].CTA_EVENTS.CCD_DEEPLINK: {
            const ctaData = data.ctaData;
            if (!ctaData) {
                return;
            }
            handleCCDDeeplink(ctaData);
            break;
        }
        default:
            break;
    }
}
/**
 * Create a CTA object for Helpx deeplinking into Unified Panel. Add URL for fallback
 * @param url
 * @param aemID
 * @param data
 */
function createHelpxDeepLinkCTAWithFallbackURL(url, aemID, data = {}) {
    const containerAnalyticsData = Sophia["a" /* default */].getAnalyticsData(components_start_constants["k" /* default */].SURFACES.LEARN);
    const cta = {
        ctaUrl: url,
        ctaDeeplinkData: {
            source: UXPCommandSource.HELPX_WELCOME,
            data: {
                ...data,
                contentModuleType: CommonModuleType.cmHelpXDetail,
                aemID,
            },
        },
    };
    // Add analytics fields
    if (containerAnalyticsData && containerAnalyticsData.campaignId) {
        addCampaignDataToDeeplinkCommand(cta.ctaDeeplinkData, containerAnalyticsData);
    }
    return cta; // the CTA type has some required properties (ctaText, ctaAction) which ONLY in this case we can ignore.
}
function addCampaignDataToDeeplinkCommand(command, containerAnalytics) {
    const { campaignId, variationId } = containerAnalytics;
    if (command.data) {
        command.data['exp.campaign_id'] = campaignId;
        command.data['exp.variation_id'] = variationId;
    }
}
function handleCCDDeeplink(ctaData) {
    const { deepLinkType, silentMode, sapCode } = ctaData;
    switch (deepLinkType) {
        case components_start_constants["k" /* default */].DEEPLINK_TYPES.UPDATE_APPLICATION:
            checkForAppUpdates(silentMode);
            break;
        case components_start_constants["k" /* default */].DEEPLINK_TYPES.REQUEST_ACCESS:
            handleRequestAccess(sapCode);
            break;
        default:
            break;
    }
}
function checkForAppUpdates(silentMode) {
    try {
        const requestPayload = `<?xml version= "1.0" encoding= "utf-8" ?>
				<request>
					<sapcode>${applications["a" /* default */].id}</sapcode>
					<codex-version></codex-version>
					<silent-mode>${silentMode !== null && silentMode !== void 0 ? silentMode : false}</silent-mode>
				</request>
			`;
        const payload = {
            type: components_start_constants["k" /* default */].DEEPLINK_TYPES.UPDATE_APPLICATION,
            target: 'ADCS',
            data: requestPayload,
        };
        Object(VulcanAPI["a" /* vulcanAPI */])().dispatch(payload);
    }
    catch (error) {
        CallToActionHandler_logger.error(`checkForAppUpdates: Failed to update app via CCD.`, error);
    }
}
function handleRequestAccess(sapCode) {
    try {
        const routePath = `/request-access?sapCode=${sapCode !== null && sapCode !== void 0 ? sapCode : applications["a" /* default */].id}`;
        const requestPayload = {
            data: {
                workflow: 'routeToPath',
                routePath: encodeURIComponent(routePath),
            },
        };
        const payload = {
            type: components_start_constants["k" /* default */].DEEPLINK_TYPES.REQUEST_ACCESS,
            target: 'ADCS',
            data: requestPayload,
        };
        Object(VulcanAPI["a" /* vulcanAPI */])().dispatch(payload);
    }
    catch (error) {
        CallToActionHandler_logger.error(`handleRequestAccess: Error `, error);
    }
}
/* harmony default export */ var CallToActionHandler = ({
    handleAppEvent,
    handleCallToAction,
    checkForAppUpdates,
    createHelpxDeepLinkCTAWithFallbackURL,
});

// CONCATENATED MODULE: ./src/components/ToastWrapper.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var ToastWrapper_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;
};















const ToastWrapper_logger = Logger["a" /* default */].get('ToastWrapper');
const ToastWrapper_styles = __webpack_require__("b5LK");
const TOAST_COMPONENT_NAME = "toast";
let ToastWrapper_containerAnalyticsParams;
let ToastWrapper_ToastWrapper = class ToastWrapper extends react["Component"] {
    constructor() {
        super(...arguments);
        this.variants = (style) => {
            switch (style) {
                case 'informative':
                    return 'info';
                case 'positive':
                    return 'success';
                case 'negative':
                    return 'error';
                case 'neutral':
                default:
                    return 'neutral';
            }
        };
        this.logEvent = (componentName, eventData, type) => {
            ToastWrapper_containerAnalyticsParams = ToastWrapper_containerAnalyticsParams !== null && ToastWrapper_containerAnalyticsParams !== void 0 ? ToastWrapper_containerAnalyticsParams : Sophia["a" /* default */].getAnalyticsData(components_start_constants["k" /* default */].SURFACES.TOAST);
            const { fields } = this.props;
            switch (type) {
                case 'render':
                    iaw_analytics["a" /* default */].logRenderedEvent(componentName, {
                        containerAnalyticsParams: ToastWrapper_containerAnalyticsParams,
                        ...eventData,
                        fieldData: fields,
                    });
                    break;
                case 'error':
                    iaw_analytics["a" /* default */].logErrorEvent(componentName, {
                        containerAnalyticsParams: ToastWrapper_containerAnalyticsParams,
                        ...eventData,
                        fieldData: fields,
                    });
                    break;
                case 'click':
                    iaw_analytics["a" /* default */].logClickedEvent(componentName, {
                        containerAnalyticsParams: ToastWrapper_containerAnalyticsParams,
                        ...eventData,
                        fieldData: fields,
                    });
                    break;
            }
        };
        this.openLink = fields => {
            fields.cta.ctaAction &&
                CallToActionHandler.handleCallToAction(fields.cta, ToastWrapper_containerAnalyticsParams, this.logEvent);
        };
        this.close = (fields, closeEvent, cb) => {
            if (closeEvent) {
                iaw_analytics["a" /* default */].logClickedEvent(TOAST_COMPONENT_NAME, {
                    subtype: 'dismiss',
                    containerAnalyticsParams: ToastWrapper_containerAnalyticsParams,
                    fieldData: fields
                });
            }
            this.registerId(fields.toastName);
            cb && cb(fields, fields.toastName);
        };
        this.registerId = (id) => {
            start_SharedSettings["a" /* default */].set(TOAST_COMPONENT_NAME, id, true);
            this._renderEventGUID && iaw_analytics["a" /* default */].unsubscribeLogRenderedEvent(this._renderEventGUID);
        };
        this._renderEventParams = () => {
            return [TOAST_COMPONENT_NAME, { containerAnalyticsParams: ToastWrapper_containerAnalyticsParams, ...this.props.fields }];
        };
        this.onKeyDown = evt => {
            switch (evt.keyCode) {
                case components_start_constants["k" /* default */].KEYS.ENTER:
                    evt.target.click();
                    break;
                case components_start_constants["k" /* default */].KEYS.SPACE:
                    evt.target.click();
                    break;
                default:
                    // do nothing
                    break;
            }
        };
    }
    get shouldShow() {
        var _a;
        return ((_a = this.props.fields) === null || _a === void 0 ? void 0 : _a.toastName) && !start_SharedSettings["a" /* default */].get(TOAST_COMPONENT_NAME, this.props.fields.toastName);
    }
    openDefaultLink(data) {
        platform["a" /* default */].openDefaultBrowser(data.ctaUrl, Object(imsBridge["d" /* jumpKeyForAdobeAccount */])());
        this.logEvent(TOAST_COMPONENT_NAME, data, 'click');
    }
    componentDidMount() {
        var _a;
        const { fields } = this.props;
        ToastWrapper_containerAnalyticsParams = { ...Sophia["a" /* default */].getAnalyticsData(components_start_constants["k" /* default */].SURFACES.TOAST), component: TOAST_COMPONENT_NAME };
        let toastDisplayCount = (_a = start_SharedSettings["a" /* default */].get('toastDisplayCount', fields.toastName)) !== null && _a !== void 0 ? _a : 0;
        if (this.shouldShow && fields.displayCount > 0) {
            if (toastDisplayCount >= fields.displayCount) {
                this.registerId(fields.toastName);
            }
            toastDisplayCount++;
            start_SharedSettings["a" /* default */].set('toastDisplayCount', fields.toastName, toastDisplayCount);
        }
        if (this.shouldShow) {
            iaw_analytics["a" /* default */].logRenderedEvent(TOAST_COMPONENT_NAME, {
                containerAnalyticsParams: ToastWrapper_containerAnalyticsParams,
                ...fields,
            });
            this._renderEventGUID = iaw_analytics["a" /* default */].subscribeLogRenderedEvent(() => this._renderEventParams());
        }
    }
    componentWillUnmount() {
        this._renderEventGUID && iaw_analytics["a" /* default */].unsubscribeLogRenderedEvent(this._renderEventGUID);
    }
    render() {
        var _a, _b, _c, _d, _e, _f;
        const { fields, qeId = 'update-app-toast' } = this.props;
        if ((fields === null || fields === void 0 ? void 0 : fields.toastName) && this.shouldShow) {
            return (react["createElement"]("div", { "data-qe-id": "components-toast-wrapper", className: ToastWrapper_styles.root },
                react["createElement"](Toast["Toast"], { className: ToastWrapper_styles.toast, closable: true, onClose: () => {
                        this.close(fields, true);
                    }, variant: this.variants(fields.style) },
                    react["createElement"]("span", { className: classnames_default()({ [ToastWrapper_styles.floatLeft]: (_a = fields === null || fields === void 0 ? void 0 : fields.primaryCTA) === null || _a === void 0 ? void 0 : _a.ctaText }, ToastWrapper_styles.message) }, Object(ReplaceAppDataTemplates["a" /* default */])(fields.message)),
                    (fields === null || fields === void 0 ? void 0 : fields.cta) && (react["createElement"](react["Fragment"], null,
                        react["createElement"]("span", null, "|"),
                        react["createElement"]("span", { className: ToastWrapper_styles.link },
                            react["createElement"](Link_default.a, { tabIndex: 0, variant: "overBackground", onClick: () => {
                                    this.close(fields, false, this.openLink);
                                }, onKeyDown: this.onKeyDown }, Object(ReplaceAppDataTemplates["a" /* default */])(fields.cta.ctaText))))),
                    (((_b = fields === null || fields === void 0 ? void 0 : fields.secondaryCTA) === null || _b === void 0 ? void 0 : _b.ctaText) || ((_c = fields === null || fields === void 0 ? void 0 : fields.primaryCTA) === null || _c === void 0 ? void 0 : _c.ctaText)) && (react["createElement"]("div", { className: ToastWrapper_styles.actionBtnContainer },
                        (((_d = fields === null || fields === void 0 ? void 0 : fields.secondaryCTA) === null || _d === void 0 ? void 0 : _d.ctaText) &&
                            react["createElement"](Button_default.a, { variant: "primary", quiet: true, onClick: () => this.openDefaultLink(fields.secondaryCTA), tabIndex: 0, className: ToastWrapper_styles.secondaryUpdateBtn },
                                react["createElement"]("span", { "data-qe-id": `${qeId}-secondary-tout-btn-label` }, Object(ReplaceAppDataTemplates["a" /* default */])(fields.secondaryCTA.ctaText)))),
                        (((_e = fields === null || fields === void 0 ? void 0 : fields.primaryCTA) === null || _e === void 0 ? void 0 : _e.ctaText) &&
                            react["createElement"](Button_default.a, { onClick: () => this.close(fields, false, () => {
                                    var _a;
                                    this.logEvent(TOAST_COMPONENT_NAME, fields.primaryCTA, 'click');
                                    // The old version of the updateApplication blue toast campaign (updateApplicationViaExternalURL.json)
                                    if (!((_a = fields.primaryCTA) === null || _a === void 0 ? void 0 : _a.ctaEvent)) {
                                        CallToActionHandler.checkForAppUpdates();
                                        return;
                                    }
                                    // Other campaigns (such as updateApplicationViaCCDDeepLink.json, requestAccess.json)
                                    CallToActionHandler.handleCallToAction(fields.primaryCTA);
                                }), variant: "cta", tabIndex: 0, className: ToastWrapper_styles.primaryUpdateBtn },
                                react["createElement"]("span", { "data-qe-id": `${qeId}-primary-tout-btn-label` }, Object(ReplaceAppDataTemplates["a" /* default */])((_f = fields === null || fields === void 0 ? void 0 : fields.primaryCTA) === null || _f === void 0 ? void 0 : _f.ctaText)))))))));
        }
        return null;
    }
};
ToastWrapper_ToastWrapper = ToastWrapper_decorate([
    index_module["e" /* observer */]
], ToastWrapper_ToastWrapper);
/* harmony default export */ var components_ToastWrapper = (ToastWrapper_ToastWrapper);

// CONCATENATED MODULE: ./src/components/Banner.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var Banner_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;
};



const Banner_styles = __webpack_require__("putZ");
const sharedStyles = __webpack_require__("IXZT");



let Banner_Banner = class Banner extends react["Component"] {
    render() {
        const { headerText, primaryCTA } = this.props;
        return (react["createElement"]("div", { "data-qe-id": "components-banner", id: "components-banner", className: classnames_default()(Banner_styles.root, Banner_styles.columnViewShort, Banner_styles.bgSize_short, Banner_styles.centerMiddle, sharedStyles.root, sharedStyles.short), style: { backgroundColor: 'transparent' } },
            react["createElement"]("div", { className: Banner_styles.textContent },
                react["createElement"]("header", { className: Banner_styles.headerText },
                    react["createElement"](index_es["c" /* FormattedMessage */], { id: headerText })),
                react["createElement"]("div", { className: Banner_styles.ctaGroup },
                    react["createElement"](Button_default.a, { variant: "primary", onClick: () => handleCallToAction(primaryCTA) },
                        react["createElement"](index_es["c" /* FormattedMessage */], { id: primaryCTA.ctaText })),
                    react["createElement"]("span", null)))));
    }
};
Banner_Banner = Banner_decorate([
    index_module["e" /* observer */]
], Banner_Banner);
/* harmony default export */ var components_Banner = (Banner_Banner);

// CONCATENATED MODULE: ./src/components/Modal.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var Modal_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;
};


const Modal_styles = __webpack_require__("6OPG");
let Modal_Modal = class Modal extends react["Component"] {
    render() {
        const {} = this.props;
        return (react["createElement"]("div", { "data-qe-id": "components-modal", id: "components-modal", className: Modal_styles.root },
            react["createElement"]("div", { className: Modal_styles.container }, this.props.children)));
    }
};
Modal_Modal = Modal_decorate([
    index_module["e" /* observer */]
], Modal_Modal);
/* harmony default export */ var components_Modal = (Modal_Modal);

// EXTERNAL MODULE: ./src/assets/S_Illu_PresetCustom_172_L@2x.svg
var S_Illu_PresetCustom_172_L_2x = __webpack_require__("mqgU");
var S_Illu_PresetCustom_172_L_2x_default = /*#__PURE__*/__webpack_require__.n(S_Illu_PresetCustom_172_L_2x);

// EXTERNAL MODULE: ./src/assets/S_Illu_PresetEmptyDoc_172_L@2x.svg
var S_Illu_PresetEmptyDoc_172_L_2x = __webpack_require__("bep9");
var S_Illu_PresetEmptyDoc_172_L_2x_default = /*#__PURE__*/__webpack_require__.n(S_Illu_PresetEmptyDoc_172_L_2x);

// EXTERNAL MODULE: ./src/assets/S_Illu_PresetFilmVideo_172_L@2x.svg
var S_Illu_PresetFilmVideo_172_L_2x = __webpack_require__("IuDI");
var S_Illu_PresetFilmVideo_172_L_2x_default = /*#__PURE__*/__webpack_require__.n(S_Illu_PresetFilmVideo_172_L_2x);

// EXTERNAL MODULE: ./src/assets/S_Illu_PresetPostcard_172_L@2x.svg
var S_Illu_PresetPostcard_172_L_2x = __webpack_require__("PAmL");
var S_Illu_PresetPostcard_172_L_2x_default = /*#__PURE__*/__webpack_require__.n(S_Illu_PresetPostcard_172_L_2x);

// EXTERNAL MODULE: ./src/assets/S_Illu_PresetWeb_172_L@2x.svg
var S_Illu_PresetWeb_172_L_2x = __webpack_require__("eDm5");
var S_Illu_PresetWeb_172_L_2x_default = /*#__PURE__*/__webpack_require__.n(S_Illu_PresetWeb_172_L_2x);

// CONCATENATED MODULE: ./src/components/pieces/Keyboard.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/



const { UP, DOWN, LEFT, RIGHT, HOME, END, ENTER, SPACE } = components_start_constants["k" /* default */].KEYS;
/**
 * This module provides simple wrappers for adding keyboard navigation (a11y)
 * to collections of items (like lists and grids). Normally, users press TAB
 * to navigate between items on the page, but inside collections, they use
 * arrow keys to navigate between each item.
 *
 * Example sequence of events:
 *
 * 1. User presses TAB to navigate from control to control.
 * 2. When the TAB arrives at the collection, it focuses the first _item_ in
 *    the collection rather than the collection itself.
 * 3. The user can use the arrow keys to navigate between items in the collection.
 * 4. Pressing TAB again (while an item is focused) moves focus out of the
 *    collection, to the next control on the page.
 *
 * This implementation takes care of the following details:
 *
 * - Pressing SPACE or ENTER simulates a click on each item.
 * - Selection state is maintained for the collection itself.
 * - It automatically handles up/down navigation, which depends
 *   on the actual position of items on the page.
 *
 * Usage:
 *
 * 1. Wrap the container in a <Collection> component.
 * 2. Wrap each item in an <Item index={}> component.
 */
class Keyboard_Collection extends react_default.a.Component {
    constructor() {
        super(...arguments);
        this._selectedIndex = 0;
        // When an item mounts, it registers itself here. When it unmounts, it
        // unregisters itself automatically.
        this.items = [];
    }
    get selectedIndex() {
        return this._selectedIndex;
    }
    set selectedIndex(newIndex) {
        const oldItem = this.items[this._selectedIndex];
        const newItem = this.items[newIndex];
        this._selectedIndex = newIndex;
        if (oldItem && oldItem.element) {
            oldItem.element.tabIndex = -1;
        }
        if (newItem && newItem.element) {
            newItem.element.tabIndex = 0;
        }
    }
    registerItem(index, item) {
        this.items[index] = item;
    }
    unregisterItem(index, item) {
        delete this.items[index];
        // After deleting an item, its slot will be undefined, but the length
        // won't change. Empty slots _inside_ the array are fine, but empty
        // slots at the end would cause this array's length to be incorrect.
        // As long as we update the length here, we'll always have a correct
        // view of the items in the array, even if they delete out of order.
        while (this.items.length && !this.items[this.items.length - 1]) {
            this.items.length--;
        }
    }
    render() {
        // This part's simple: provide this instance as the Context value,
        // and ensure the collection's tabIndex is removed (since we set tabIndex)
        // on each item instead.
        const clonedChildren = react_default.a.cloneElement(
        // @ts-ignore
        react_default.a.Children.only(this.props.children), {
            tabIndex: -1,
        });
        return react_default.a.createElement(Keyboard_Collection.Context.Provider, { value: this }, clonedChildren);
    }
}
// We use React's Context API to allow the collection to automatically
// track the array of items inside it, without users having to specify
// the array as a prop. This is a little unorthodox, but it gives users
// the flexibility to hook up the collection without knowing which items
// need to be included in the navigation.
Keyboard_Collection.Context = react_default.a.createContext(null);
const Item = props => (
// Unfortunately, to access the Context within ItemImpl's lifecycle
// methods, we need to unwrap it here and pass it to ItemImpl ourselves.
react_default.a.createElement(Keyboard_Collection.Context.Consumer, null, collection => (react_default.a.createElement(Keyboard_ItemImpl, { collection: collection, index: props.index }, props.children))));
class Keyboard_ItemImpl extends react_default.a.Component {
    constructor() {
        super(...arguments);
        this.element = null;
        this.onKeyDown = (evt) => {
            if (evt.keyCode === ENTER || evt.keyCode === SPACE) {
                evt.currentTarget.click();
                evt.preventDefault();
            }
            else if ([UP, DOWN, LEFT, RIGHT, HOME, END].indexOf(evt.keyCode) !== -1) {
                evt.preventDefault();
                const adjacentItem = this.findAdjacentItem(evt.keyCode);
                if (adjacentItem && adjacentItem.element) {
                    this.props.collection.selectedIndex = adjacentItem.props.index;
                    adjacentItem.element.focus();
                }
            }
        };
    }
    // Using these lifecycle methods, we register this instance with the
    // containing Collection, keeping it updated if props change.
    componentDidMount() {
        this.props.collection.registerItem(this.props.index, this);
        this.updateRef();
    }
    componentWillUnmount() {
        this.props.collection.unregisterItem(this.props.index, this);
    }
    componentDidUpdate(prevProps) {
        this.updateRef();
        prevProps.collection.unregisterItem(prevProps.index, this);
        this.props.collection.registerItem(this.props.index, this);
    }
    updateRef() {
        const newElement = react_dom_default.a.findDOMNode(this);
        if (this.element !== newElement && this.element) {
            this.element.removeEventListener('keydown', this.onKeyDown);
            this.element.tabIndex = -1;
        }
        if (newElement instanceof HTMLElement) {
            newElement.tabIndex = this.isSelected ? 0 : -1;
            if (this.element !== newElement) {
                newElement.addEventListener('keydown', this.onKeyDown);
                this.element = newElement;
            }
        }
        else {
            this.element = null;
        }
    }
    render() {
        return this.props.children;
    }
    get isSelected() {
        return this.props.collection.selectedIndex === this.props.index;
    }
    getRect() {
        return this.element && this.element.getBoundingClientRect();
    }
    findAdjacentItem(keyCode) {
        const { index } = this.props;
        const items = this.props.collection.items;
        const myRect = this.getRect();
        const direction = keyCode === LEFT || keyCode === UP ? -1 : 1;
        if (keyCode === END) {
            return items[items.length - 1];
        }
        else if (keyCode === HOME) {
            return items[0];
        }
        else if (keyCode === LEFT || keyCode === RIGHT) {
            return items[index + direction];
        }
        else if (keyCode === UP || keyCode === DOWN) {
            // We'll try to find the item directly above/below this item, but if none
            // overlap, we'll try to use any that are above/below (e.g. if the user is
            // in the second-to-last row, presses DOWN, and expects to go to an item in
            // the last row even if it's not directly below).
            const direction = keyCode === UP ? -1 : 1;
            let nextItem;
            let suboptimalItem;
            for (let nextIndex = index + direction; (nextItem = items[nextIndex]) && nextItem.element; nextIndex += direction) {
                const nextRect = nextItem.getRect();
                // The item above/below this one will normally vertically overlap 100%,
                // but we use an arbitrarily smaller percentage to detect overlap
                // that layouts such as KnuthPlass work with this logic as well.
                const verticalOverlapPercentage = (Math.min(myRect.right, nextRect.right) - Math.max(myRect.left, nextRect.left)) / myRect.width;
                if (nextRect.top !== myRect.top) {
                    if (verticalOverlapPercentage > 0.3) {
                        return nextItem;
                    }
                    else if (!suboptimalItem) {
                        suboptimalItem = nextItem;
                    }
                }
            }
            return suboptimalItem;
        }
    }
}
/* harmony default export */ var Keyboard = ({
    Collection: Keyboard_Collection,
    Item,
});

// CONCATENATED MODULE: ./src/components/Presets.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var Presets_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;
};
var Presets_1;











const Presets_logger = Logger["a" /* default */].get('Presets');
const Presets_styles = __webpack_require__("1Tx7");
const Presets_sharedStyles = __webpack_require__("IXZT");
let Presets_Presets = Presets_1 = class Presets extends react["Component"] {
    get textAlign() {
        switch (this.props.textPosition) {
            case 'leftTop':
            case 'leftMiddle':
            case 'leftBottom':
            case 'centerTop':
            case 'centerMiddle':
            case 'centerBottom':
            case 'rightTop':
            case 'rightMiddle':
            case 'rightBottom':
            default:
                return 'center';
        }
    }
    /**
     * Handles click event on the preset item.
     * Pass the preset data from contentful to the application.
     */
    handleClick(presetData) {
        const { ctaData, ctaLog } = presetData;
        const { logEvent, containerAnalytics } = this.props;
        logEvent(containerAnalytics.component, {
            ...containerAnalytics.eventData,
            presetID: ctaData.id,
            presetName: ctaLog,
            presetType: ctaData.title,
            subtype: 'cmd-n',
        }, 'click');
        handleAppEvent(presetData);
    }
    /**
     * Attempts to render the SVG image based on the image name.
     * If local SVG is not available, use the one provided by contentful.
     */
    renderImage(imageData) {
        const localPreset = Presets_1.localPresets[imageData.fileName];
        return localPreset ? localPreset : react["createElement"]("img", { src: imageData.url });
    }
    componentDidMount() {
        this.scrubbedPresets.forEach((preset, index) => {
            const { fields, sys } = preset;
            this.props.logEvent(this.props.containerAnalytics.component, {
                ...this.props.containerAnalytics.eventData,
                presetID: fields.ctaData ? fields.ctaData.id : null,
                presetName: fields.ctaLog,
                presetType: fields.ctaData ? fields.ctaData.title : null,
            }, 'render');
        });
    }
    get scrubbedPresets() {
        const scrubbedPresets = [];
        this.props.presets.forEach(preset => {
            try {
                const { fields } = preset;
                const imageData = fields.image.fields.file;
                scrubbedPresets.push(preset);
            }
            catch (e) {
                //TO DO: Add error log
                Presets_logger.warn(`Missing data field from contentful: ${e}`);
            }
        });
        return scrubbedPresets;
    }
    render() {
        const { cardHeight, grow, headerText } = this.props;
        /** @type {{rootStyles: React.CSSProperties}} */
        const rootStyles = {
            textAlign: this.textAlign,
        };
        return (react["createElement"]("div", { "data-qe-id": "components-presets", id: "components-presets", className: classnames_default()(Presets_sharedStyles.root, Presets_sharedStyles.flexCenterCenter, Presets_sharedStyles.accessibility, Presets_sharedStyles[cardHeight || 'short'], grow && Presets_sharedStyles.grow, Presets_styles.root, Presets_styles[cardHeight || 'default']), style: rootStyles },
            react["createElement"]("div", null,
                react["createElement"]("div", { className: Presets_styles.header }, headerText),
                react["createElement"](Keyboard.Collection, null,
                    react["createElement"]("div", { className: classnames_default()(Presets_sharedStyles.flexCenterCenter, Presets_styles.presetRow) }, this.scrubbedPresets.map((preset, index) => {
                        const { fields, sys } = preset;
                        const imageData = fields.image.fields.file;
                        return (react["createElement"](Keyboard.Item, { index: index, key: index },
                            react["createElement"]("div", { key: sys.id, className: Presets_styles.presetContainer, onClick: event => this.handleClick(preset.fields) },
                                react["createElement"]("div", { className: classnames_default()(Presets_sharedStyles.flexCenterCenter, Presets_styles.imageContainer) }, this.renderImage(imageData)),
                                react["createElement"]("div", { className: Presets_styles.name }, fields.name),
                                fields.description && (react["createElement"]("div", { className: Presets_styles.description }, fields.description)))));
                    }))))));
    }
};
Presets_Presets.defaultProps = {
    presets: [],
    textPosition: 'centerMiddle',
};
Presets_Presets.localPresets = {
    'ai_a4_icon_over.svg': react["createElement"](S_Illu_PresetEmptyDoc_172_L_2x_default.a, null),
    'ai_hdtv_icon_over.svg': react["createElement"](S_Illu_PresetFilmVideo_172_L_2x_default.a, null),
    'ai_other_icon_over.svg': react["createElement"](S_Illu_PresetCustom_172_L_2x_default.a, null),
    'ai_poster_icon_over.svg': react["createElement"](S_Illu_PresetPostcard_172_L_2x_default.a, null),
    'ai_webpage_icon_over.svg': react["createElement"](S_Illu_PresetWeb_172_L_2x_default.a, null),
};
Presets_Presets = Presets_1 = Presets_decorate([
    index_module["e" /* observer */]
], Presets_Presets);
/* harmony default export */ var components_Presets = (Presets_Presets);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Heading/index.js
var Heading = __webpack_require__("8bOP");
var Heading_default = /*#__PURE__*/__webpack_require__.n(Heading);

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/Home/index.js
var Home = __webpack_require__("dpcn");
var Home_default = /*#__PURE__*/__webpack_require__.n(Home);

// EXTERNAL MODULE: ./src/assets/Smock_Learn_18_N.svg
var Smock_Learn_18_N = __webpack_require__("KRN9");
var Smock_Learn_18_N_default = /*#__PURE__*/__webpack_require__.n(Smock_Learn_18_N);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/CoachMark/index.js
var CoachMark = __webpack_require__("7x5w");
var CoachMark_default = /*#__PURE__*/__webpack_require__.n(CoachMark);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/SideNav/index.js
var SideNav = __webpack_require__("W+Dz");

// EXTERNAL MODULE: ./src/applications/Drover.tsx
var Drover = __webpack_require__("/5Cs");

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/FieldLabel/index.js
var FieldLabel = __webpack_require__("lArf");
var FieldLabel_default = /*#__PURE__*/__webpack_require__.n(FieldLabel);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Checkbox/index.js
var Checkbox = __webpack_require__("L+OI");
var Checkbox_default = /*#__PURE__*/__webpack_require__.n(Checkbox);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Textfield/index.js
var Textfield = __webpack_require__("WgUl");
var Textfield_default = /*#__PURE__*/__webpack_require__.n(Textfield);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/OverlayTrigger/index.js
var OverlayTrigger = __webpack_require__("uYrR");
var OverlayTrigger_default = /*#__PURE__*/__webpack_require__.n(OverlayTrigger);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Popover/index.js
var Popover = __webpack_require__("pyUw");
var Popover_default = /*#__PURE__*/__webpack_require__.n(Popover);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Select/index.js
var Select = __webpack_require__("GfA4");
var Select_default = /*#__PURE__*/__webpack_require__.n(Select);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-firstmile-shared/src/utils/UserIntent.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2020 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
function fetchUserIntent(context) {
    const creativeEventData = {
        sophia: {},
        selected: {},
    };
    const errorInfo = {};
    let category;
    try {
        // The data currently maps photoshop as PHSP which is different then the product code from Host App.
        // Just do a quick mapping to get the right value from the content.
        const appId = context.host.id === 'PHXS' ? 'PHSP' : context.host.id;
        // Query for user intent container from sophia payload
        const userIntentContainer = context.utils.sophia.getUserIntentContent(context.utils.constants.SURFACES.HOME);
        console.log(`User intent container: ${JSON.stringify(userIntentContainer)}`);
        errorInfo.userIntentContainer = JSON.stringify(userIntentContainer);
        if (userIntentContainer) {
            // Setting this first as it won't cause the function to error
            try {
                creativeEventData.sophia.aptitude = userIntentContainer.apps[appId].appAptitude
                    ? userIntentContainer.apps[appId].appAptitude.name
                    : 'Unspecified';
            }
            catch (e) {
                console.log('Unable to retrieve user aptitude');
                console.log(e);
            }
            // Extract category and subcategory objects from the nested arrays
            category = userIntentContainer.apps[appId].creativeCategories[0];
            creativeEventData.sophia.category = category.name;
            console.log(`User Category: ${JSON.stringify(category)}`);
            errorInfo.userCategory = JSON.stringify(category);
            const subCategory = category.subcategories[0];
            creativeEventData.sophia.subCategory = subCategory.name;
            console.log(`User Subcategory: ${JSON.stringify(subCategory)}`);
            errorInfo.userSubcategory = JSON.stringify(subCategory);
        }
    }
    catch (e) {
        console.log('Unable to get user intent.');
        console.log(e);
    }
    return { creativeEventData, errorInfo };
}
/*
 * Abstraction of analytics for Haresh's user signals. Not currently in use.
 */
function logUserSignalsEvents(context, eventData, subcategories, types) {
    const { logMiscellaneousEvent } = context.utils.analytics;
    types.map(eventType => {
        subcategories.map(value => {
            logMiscellaneousEvent('nuj-user-signals', {
                ...eventData,
                type: eventType,
                selectedCreativeValue: eventData.selected && eventData.selected[value],
                value: value,
                id: context.host.id,
            });
        });
    });
}

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/More/index.js
var More = __webpack_require__("qeeD");
var More_default = /*#__PURE__*/__webpack_require__.n(More);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Menu/index.js
var Menu = __webpack_require__("kzNO");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-firstmile-shared/src/assets/S_SmileyPositiveOutline_18_N.svg
function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}


/* harmony default export */ var S_SmileyPositiveOutline_18_N = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", _extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "18",
  height: "18",
  viewBox: "0 0 18 18"
}, props), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M11.222 5.282a1.336 1.336 0 0 1 1.223 1.425 1.336 1.336 0 0 1-1.223 1.426A1.336 1.336 0 0 1 10 6.707a1.335 1.335 0 0 1 1.222-1.425zm-4.444.039A1.336 1.336 0 0 1 8 6.747a1.336 1.336 0 0 1-1.222 1.426 1.336 1.336 0 0 1-1.223-1.426 1.337 1.337 0 0 1 1.223-1.426z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M9 2a7 7 0 1 1-7 7 7.008 7.008 0 0 1 7-7zm0-1a8 8 0 1 0 8 8 8 8 0 0 0-8-8z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M9 13.05a5.027 5.027 0 0 1-3.943-1.9.5.5 0 1 1 .78-.625 4.05 4.05 0 0 0 6.352-.034.5.5 0 0 1 .788.617A5.024 5.024 0 0 1 9 13.05z"
})));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-firstmile-shared/src/assets/S_SmileyNegativeOutline_18_N.svg
function S_SmileyNegativeOutline_18_N_extends() {
  S_SmileyNegativeOutline_18_N_extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return S_SmileyNegativeOutline_18_N_extends.apply(this, arguments);
}


/* harmony default export */ var S_SmileyNegativeOutline_18_N = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_SmileyNegativeOutline_18_N_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "18",
  height: "18",
  viewBox: "0 0 18 18"
}, props), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M9 9.95a5.027 5.027 0 0 0-3.943 1.9.5.5 0 1 0 .78.625 4.05 4.05 0 0 1 6.352.034.5.5 0 0 0 .788-.617A5.024 5.024 0 0 0 9 9.95z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M9 2a7 7 0 1 1-7 7 7.008 7.008 0 0 1 7-7zm0-1a8 8 0 1 0 8 8 8 8 0 0 0-8-8z"
}), /*#__PURE__*/react_default.a.createElement("ellipse", {
  cx: "6.778",
  cy: "6.747",
  rx: "1.222",
  ry: "1.426"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M11.222 5.282a1.336 1.336 0 0 1 1.223 1.425 1.336 1.336 0 0 1-1.223 1.426A1.336 1.336 0 0 1 10 6.707a1.335 1.335 0 0 1 1.222-1.425z"
})));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-firstmile-shared/src/components/FeedbackDropdown.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2021 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/









const FeedbackDropdown_styles = __webpack_require__("W2R8");
var SentimentType;
(function (SentimentType) {
    SentimentType["POSITIVE"] = "positive";
    SentimentType["NEGATIVE"] = "negative";
})(SentimentType || (SentimentType = {}));
class FeedbackDropdown_FeedbackDropdown extends react_default.a.Component {
    constructor(props) {
        super(props);
        this.handleSentiment = this.handleSentiment.bind(this);
        this._overlayTriggerRef = react_default.a.createRef();
    }
    handleSentiment(sentiment) {
        // close the menu
        this._overlayTriggerRef.current.hide();
        // calling onSubmit from props
        this.props.onSubmit(sentiment);
    }
    render() {
        const { mainTextStringId, positiveFeedbackStringId, negativeFeedbackStringId, onShow, onHide, disabled, } = this.props;
        return (react_default.a.createElement("div", { "data-qe-id": "feedback-dropdown-container", className: classnames_default()(this.props.className) },
            react_default.a.createElement(OverlayTrigger_default.a, { trigger: "click", placement: "bottom right", ref: this._overlayTriggerRef, onShow: () => onShow && onShow(), onHide: () => onHide && onHide(), disabled: disabled },
                react_default.a.createElement(Button_default.a, { variant: 'action', quiet: true, icon: react_default.a.createElement(More_default.a, null), "data-qe-id": 'feedback-dropdown-trigger', disabled: disabled }),
                react_default.a.createElement(Menu["Menu"], { className: classnames_default()(FeedbackDropdown_styles.feedbackContainer), autoFocus: true, onSelect: this.handleSentiment, onMouseEnter: this.props.onMenuMouseEnter, onMouseLeave: this.props.onMenuMouseLeave, "data-qe-id": 'feedback-dropdown-menu' },
                    react_default.a.createElement("div", { "data-qe-id": 'feedback-dropdown-main-text', className: classnames_default()(FeedbackDropdown_styles.mainText) },
                        react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: mainTextStringId })),
                    react_default.a.createElement("div", { className: classnames_default()(FeedbackDropdown_styles.divider) }),
                    react_default.a.createElement(Menu["MenuItem"], { "data-qe-id": 'feedback-dropdown-positiveButton', className: classnames_default()(FeedbackDropdown_styles.sentimentButton), icon: react_default.a.createElement(S_SmileyPositiveOutline_18_N, null), value: SentimentType.POSITIVE },
                        react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: positiveFeedbackStringId })),
                    react_default.a.createElement(Menu["MenuItem"], { "data-qe-id": 'feedback-dropdown-negativeButton', className: classnames_default()(FeedbackDropdown_styles.sentimentButton), icon: react_default.a.createElement(S_SmileyNegativeOutline_18_N, null), value: SentimentType.NEGATIVE },
                        react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: negativeFeedbackStringId }))))));
    }
}

// EXTERNAL MODULE: ./node_modules/mobx-state-tree/dist/mobx-state-tree.module.js
var mobx_state_tree_module = __webpack_require__("99Ma");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-firstmile-shared/src/common/stores/CarouselStore.ts
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2021 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/

let _stopSlideshowFn;
let _resetSlideshowFn;
const CarouselStore = mobx_state_tree_module["h" /* types */]
    .model('CarouselStore', {
    isFeedbackMenuOpen: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].boolean, false),
    isPointerInside: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].boolean, false),
    slidesCount: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].number, 0),
    currentPage: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].number, 1),
})
    .actions(self => ({
    setFeedbackMenuOpenState(isOpen) {
        self.isFeedbackMenuOpen = isOpen;
    },
    setIsPointerInsideState(isPointerInside) {
        self.isPointerInside = isPointerInside;
    },
    setStopSlideshowFn(stopSlideshowFn) {
        _stopSlideshowFn = stopSlideshowFn;
    },
    stopSlideshow() {
        _stopSlideshowFn && _stopSlideshowFn();
    },
    setResetSlideshowFn(resetSlideshowFn) {
        _resetSlideshowFn = resetSlideshowFn;
    },
    resetSlideshow() {
        _resetSlideshowFn && _resetSlideshowFn();
    },
    setSlidesCount(slidesCount) {
        self.slidesCount = slidesCount;
    },
    setCurrentPage(currentPage) {
        self.currentPage = currentPage;
    },
}));
const carouselStore = CarouselStore.create({
    isFeedbackMenuOpen: false,
    isPointerInside: false,
    slidesCount: 0,
    currentPage: 1,
});
/* harmony default export */ var stores_CarouselStore = (CarouselStore);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-firstmile-shared/src/common/Utils.ts
var Utils = __webpack_require__("sdkb");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-firstmile-shared/src/components/FeedbackToastContainer.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2021 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var FeedbackToastContainer_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;
};
var FeedbackToastContainer_metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};






let FeedbackToastContainer_FeedbackToastContainer = class FeedbackToastContainer extends react_default.a.Component {
    constructor(props) {
        super(props);
        this.onClose = this.onClose.bind(this);
    }
    onClose() {
        Object(Utils["a" /* callIfFunction */])(this.props.closeToast);
    }
    render() {
        const { toast } = this.props;
        if (!toast) {
            return null;
        }
        return (react_default.a.createElement("div", { className: classnames_default()(this.props.className) },
            react_default.a.createElement(Toast["Toast"], { closable: toast.closeable, id: "feedback-dropdown-toast", "data-qe-id": "feedback-dropdown-toast", variant: toast.variant, onClose: this.onClose },
                react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: toast.messageId }))));
    }
};
FeedbackToastContainer_FeedbackToastContainer = FeedbackToastContainer_decorate([
    index_module["e" /* observer */],
    FeedbackToastContainer_metadata("design:paramtypes", [Object])
], FeedbackToastContainer_FeedbackToastContainer);
/* harmony default export */ var components_FeedbackToastContainer = (FeedbackToastContainer_FeedbackToastContainer);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-firstmile-shared/src/components/common/index.ts
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/

function getButtonVariant(type) {
    switch (type) {
        case 'blue':
            return 'cta';
        case 'none':
        default:
            return 'primary';
    }
}
const common_CommonStaticContext = {
    store: prop_types_default.a.any,
    intl: prop_types_default.a.any,
    host: prop_types_default.a.any,
    utils: prop_types_default.a.any,
    ututs: prop_types_default.a.any,
    platform: prop_types_default.a.any,
    analytics: prop_types_default.a.any,
    fireIngestEvent: prop_types_default.a.any,
};
var UISRecommendationAPI;
(function (UISRecommendationAPI) {
    UISRecommendationAPI["STAGE"] = "https://cchome-stage.adobe.io/int/v1/users/me/signals";
    UISRecommendationAPI["PRODUCTION"] = "https://cchome.adobe.io/int/v1/users/me/signals";
    UISRecommendationAPI["DEV"] = "https://cchome-dev.adobe.io/int/v1/users/me/signals";
})(UISRecommendationAPI || (UISRecommendationAPI = {}));

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-firstmile-shared/src/components/carousel/cards/DynamicTout/DynamicToutFeedback.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2021 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var DynamicToutFeedback_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;
};
var DynamicToutFeedback_metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var DynamicToutFeedback_a;







const TOAST_TIMEOUT_DURATION = 3000; // in ms
let _toastTimeout;
let DynamicToutFeedback_DynamicToutFeedback = class DynamicToutFeedback extends react_default.a.Component {
    constructor(props) {
        super(props);
        this.toast = null;
        this.handleSentiment = this.handleSentiment.bind(this);
        this.onShow = this.onShow.bind(this);
        this.onHide = this.onHide.bind(this);
        this.onMouseEnter = this.onMouseEnter.bind(this);
        this.onMouseLeave = this.onMouseLeave.bind(this);
        this.addToast = this.addToast.bind(this);
        this.closeToast = this.closeToast.bind(this);
    }
    _buildFeedbackAnalyticsData(sentiment) {
        var _a;
        return {
            ...(_a = this.props.containerAnalytics) === null || _a === void 0 ? void 0 : _a.eventData,
            ...this.props.contentAnalyticsData,
            cardAnalyticsData: this.props.cardAnalyticsData,
            recommendationsJson: this.context.ututs.recommendationsJsonData(),
            value: sentiment,
            uiSequence: this.props.currentCardIndex + 1,
        };
    }
    handleSentiment(sentiment) {
        var _a, _b;
        const feedbackAnalyticsData = this._buildFeedbackAnalyticsData(sentiment);
        this.props.logEvent('feedback', feedbackAnalyticsData);
        (_b = (_a = this.props).handleToutFeedbackCallback) === null || _b === void 0 ? void 0 : _b.call(_a, sentiment === SentimentType.POSITIVE, this.props.id, feedbackAnalyticsData);
        // show Toast as visual feedback
        this.addToast({
            closeable: true,
            variant: 'success',
            messageId: 'dhscr_feedback_submit_success',
        });
    }
    addToast({ closeable = false, variant = 'success', messageId = 'dhscr_feedback_submit_success' }) {
        this.toast = {
            closeable,
            variant,
            messageId,
        };
        clearTimeout(_toastTimeout);
        _toastTimeout = setTimeout(this.closeToast, TOAST_TIMEOUT_DURATION);
    }
    closeToast() {
        clearTimeout(_toastTimeout);
        this.toast = null;
    }
    onShow() {
        carouselStore.setFeedbackMenuOpenState(true);
        carouselStore.stopSlideshow();
    }
    onHide() {
        carouselStore.setFeedbackMenuOpenState(false);
        carouselStore.resetSlideshow();
    }
    onMouseEnter() {
        carouselStore.setIsPointerInsideState(true);
    }
    onMouseLeave() {
        carouselStore.setIsPointerInsideState(false);
    }
    render() {
        return (react_default.a.createElement(react_default.a.Fragment, null,
            react_default.a.createElement(FeedbackDropdown_FeedbackDropdown, { mainTextStringId: 'dhscr_feedback_main_text', positiveFeedbackStringId: 'dhscr_feedback_positive_feedback', negativeFeedbackStringId: 'dhscr_feedback_negative_feedback', className: this.props.className, onSubmit: this.handleSentiment, onShow: this.onShow, onHide: this.onHide, onMenuMouseEnter: this.onMouseEnter, onMenuMouseLeave: this.onMouseLeave, disabled: this.props.disabled }),
            react_default.a.createElement(components_FeedbackToastContainer, { closeToast: this.closeToast, toast: this.toast, className: this.props.toastContainerClassName })));
    }
};
DynamicToutFeedback_DynamicToutFeedback.contextTypes = common_CommonStaticContext;
DynamicToutFeedback_decorate([
    mobx_module["z" /* observable */],
    DynamicToutFeedback_metadata("design:type", typeof (DynamicToutFeedback_a = typeof /* Cannot get final name for export "FeedbackToast" in "./node_modules/@ccx/ccx-firstmile-shared/src/components/FeedbackToastContainer.tsx" (known exports: default, known reexports: ) */ undefined !== "undefined" && /* Cannot get final name for export "FeedbackToast" in "./node_modules/@ccx/ccx-firstmile-shared/src/components/FeedbackToastContainer.tsx" (known exports: default, known reexports: ) */ undefined) === "function" ? DynamicToutFeedback_a : Object)
], DynamicToutFeedback_DynamicToutFeedback.prototype, "toast", void 0);
DynamicToutFeedback_DynamicToutFeedback = DynamicToutFeedback_decorate([
    index_module["e" /* observer */],
    DynamicToutFeedback_metadata("design:paramtypes", [Object])
], DynamicToutFeedback_DynamicToutFeedback);
/* harmony default export */ var DynamicTout_DynamicToutFeedback = (DynamicToutFeedback_DynamicToutFeedback);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-firstmile-shared/src/components/carousel/cards/DynamicComponent/DynamicComponent.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2022 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var DynamicComponent_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;
};



let DynamicComponent_DynamicComponent = class DynamicComponent extends react["Component"] {
    _buildCardAnalyticsData() {
        const { title, modelMetadata: metadata, id, source, type } = this.props;
        return {
            id,
            title,
            type,
            source,
            metadata,
        };
    }
    _buildContentAnalyticsData() {
        var _a, _b, _c, _d, _e, _f;
        const { primaryCTA, contentType, author, categories, level } = this.props;
        const ctaData = primaryCTA === null || primaryCTA === void 0 ? void 0 : primaryCTA.ctaData;
        return {
            contentId: ((_b = (_a = primaryCTA === null || primaryCTA === void 0 ? void 0 : primaryCTA.ctaDeeplinkData) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.uuid) || ((_d = (_c = primaryCTA === null || primaryCTA === void 0 ? void 0 : primaryCTA.ctaDeeplinkData) === null || _c === void 0 ? void 0 : _c.data) === null || _d === void 0 ? void 0 : _d.aemID) ||
                this.props['_path'],
            contentName: ((_f = (_e = primaryCTA === null || primaryCTA === void 0 ? void 0 : primaryCTA.ctaDeeplinkData) === null || _e === void 0 ? void 0 : _e.data) === null || _f === void 0 ? void 0 : _f.aemID) || (ctaData === null || ctaData === void 0 ? void 0 : ctaData.tutorial_id),
            contentType: contentType,
            contentAuthor: author,
            ...(categories && { contentCategory: categories === null || categories === void 0 ? void 0 : categories.toString() }),
            ...(level && { contentStatus: level }),
        };
    }
    _buildCustomContentAnalytics(data) {
        var _a, _b, _c, _d, _e, _f, _g, _h;
        const { containerAnalytics, primaryCTA, contentType, author, content, headerText } = this.props;
        const cardAnalyticsData = this._buildCardAnalyticsData();
        return {
            ...containerAnalytics,
            eventData: {
                ...containerAnalytics.eventData,
                subtype: 'suggestion',
                cardAnalyticsData: cardAnalyticsData,
                recommendationsJson: this.context.ututs.recommendationsJsonData(),
                contentId: (content === null || content === void 0 ? void 0 : content.uuid) || ((_b = (_a = primaryCTA === null || primaryCTA === void 0 ? void 0 : primaryCTA.ctaDeeplinkData) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.uuid) || this.props['_path'],
                contentName: headerText || ((_d = (_c = primaryCTA === null || primaryCTA === void 0 ? void 0 : primaryCTA.ctaDeeplinkData) === null || _c === void 0 ? void 0 : _c.data) === null || _d === void 0 ? void 0 : _d.aemID),
                contentType: contentType,
                contentAuthor: author,
                ctaData: ((_f = (_e = data.ctaDeeplinkData) === null || _e === void 0 ? void 0 : _e.data) === null || _f === void 0 ? void 0 : _f.ctaUrl) || ((_h = (_g = data.ctaDeeplinkData) === null || _g === void 0 ? void 0 : _g.data) === null || _h === void 0 ? void 0 : _h.aemId),
                uiSequence: this.props.currentCardIndex + 1,
                ...(this.props.slidesPerPage && { count: this.props.slidesPerPage }),
            },
        };
    }
    openLink(data, isBrowse = false, analyticsParamOptions) {
        var _a, _b, _c, _d, _e;
        const { containerAnalytics, logEvent } = this.props;
        const cardAnalyticsData = this._buildCardAnalyticsData();
        const contentAnalyticsData = this._buildContentAnalyticsData();
        const eventData = {
            subtype: (analyticsParamOptions === null || analyticsParamOptions === void 0 ? void 0 : analyticsParamOptions.subtype) || (isBrowse ? 'browse' : 'suggestion'),
            cardAnalyticsData: cardAnalyticsData,
            ...(!(analyticsParamOptions === null || analyticsParamOptions === void 0 ? void 0 : analyticsParamOptions.skipRecommendationsJson) && {
                recommendationsJson: this.context.ututs.recommendationsJsonData(),
            }),
            ...contentAnalyticsData,
            ctaData: ((_b = (_a = data.ctaDeeplinkData) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.ctaUrl) || ((_d = (_c = data.ctaDeeplinkData) === null || _c === void 0 ? void 0 : _c.data) === null || _d === void 0 ? void 0 : _d.aemId),
            uiSequence: (_e = analyticsParamOptions === null || analyticsParamOptions === void 0 ? void 0 : analyticsParamOptions.uiSequence) !== null && _e !== void 0 ? _e : this.props.currentCardIndex + 1,
            ...containerAnalytics === null || containerAnalytics === void 0 ? void 0 : containerAnalytics.eventData,
            ...contentAnalyticsData,
            ...(this.props.slidesPerPage && { count: this.props.slidesPerPage }),
        };
        const launchDiscoverPanelRes = this.context.host.launchDiscoverPanelWithDeeplink(data, data.ctaDeeplinkData.source, this.props.containerAnalytics);
        launchDiscoverPanelRes
            .then(() => logEvent((analyticsParamOptions === null || analyticsParamOptions === void 0 ? void 0 : analyticsParamOptions.component) || 'carousel', eventData, 'click'))
            .catch(err => logEvent('suggestions', {
            ...eventData,
            error: {
                desc: err,
                type: this.context.store.online ? 'layout' : 'network',
            },
        }, 'error'));
    }
    getBackgroundStylesForImage(image) {
        return {
            backgroundImage: `url("${image}")`,
        };
    }
};
DynamicComponent_DynamicComponent.contextTypes = common_CommonStaticContext;
DynamicComponent_DynamicComponent = DynamicComponent_decorate([
    index_module["e" /* observer */]
], DynamicComponent_DynamicComponent);
/* harmony default export */ var cards_DynamicComponent_DynamicComponent = (DynamicComponent_DynamicComponent);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-firstmile-shared/src/components/carousel/cards/DynamicTout/DynamicTout.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2022 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var DynamicTout_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;
};








const DynamicTout_styles = __webpack_require__("6TsE");
const DynamicTout_sharedStyles = __webpack_require__("jHoJ");
let DynamicTout_DynamicTout = class DynamicTout extends cards_DynamicComponent_DynamicComponent {
    componentDidMount() {
        const { creativeEventData } = fetchUserIntent(this.context);
        const { containerAnalytics } = this.props;
        if (containerAnalytics && containerAnalytics.eventData && creativeEventData) {
            Object.assign(containerAnalytics.eventData, creativeEventData);
        }
    }
    renderSideImage() {
        const { image, qeId = 'default' } = this.props;
        if (!image)
            return null;
        const sideImageBackgroundStyles = this.getBackgroundStylesForImage(image);
        return (react["createElement"]("div", { "data-qe-id": `${qeId}-tout-img`, className: classnames_default()(DynamicTout_sharedStyles.flexCenterCenter, DynamicTout_styles.sideImage), style: sideImageBackgroundStyles }));
    }
    renderContent() {
        const { utils: { replaceAppData }, } = this.context;
        const { title, headerText, descriptionText, primaryCTA, secondaryCTA, isActive, qeId = 'dynamic-tout', dataKey, } = this.props;
        const tabIndex = isActive ? 0 : -1;
        return (react["createElement"]("div", { "data-qe-id": `${qeId}${isActive ? '-active' : ''}`, "data-qe-key": `card-number-${dataKey}`, className: DynamicTout_styles.textContainer },
            react["createElement"](DynamicTout_DynamicToutFeedback, { className: DynamicTout_styles.feedbackDropdown, disabled: !isActive, toastContainerClassName: DynamicTout_styles.toastContainer, logEvent: this.props.logEvent, containerAnalytics: this.props.containerAnalytics, cardAnalyticsData: this._buildCardAnalyticsData(), contentAnalyticsData: this._buildContentAnalyticsData(), handleToutFeedbackCallback: this.props.handleToutFeedbackCallback, currentCardIndex: this.props.currentCardIndex, id: this.props.id }),
            react["createElement"]("div", { className: DynamicTout_styles.mainTextArea },
                title && (react["createElement"](Heading_default.a, { "data-qe-id": `${qeId}-tout-algorithm-type`, className: DynamicTout_styles.subheading, variant: "subtitle3" }, replaceAppData(title))),
                react["createElement"](Heading_default.a, { "data-qe-id": `${qeId}-tout-header`, className: DynamicTout_styles.heading, variant: "subtitle1" }, replaceAppData(headerText)),
                react["createElement"]("div", { "data-qe-id": `${qeId}-tout-body`, className: DynamicTout_styles.bodyTextContent }, replaceAppData(descriptionText))),
            (primaryCTA === null || primaryCTA === void 0 ? void 0 : primaryCTA.title) && (react["createElement"]("div", { "data-qe-id": `${qeId}-tout-btn`, className: DynamicTout_styles.stickyBottomButtons },
                react["createElement"](Button_default.a, { variant: "primary", onClick: () => this.openLink(primaryCTA), tabIndex: tabIndex },
                    react["createElement"]("span", { "data-qe-id": `${qeId}-primary-tout-btn-label` }, this.context.intl.formatMessage({
                        id: primaryCTA.title,
                    }))),
                (secondaryCTA === null || secondaryCTA === void 0 ? void 0 : secondaryCTA.title) && (react["createElement"](Button_default.a, { variant: "secondary", quiet: true, onClick: () => this.openLink(secondaryCTA, true), tabIndex: tabIndex },
                    react["createElement"]("span", { "data-qe-id": `${qeId}-secondary-tout-btn-label` },
                        react["createElement"]("span", { className: DynamicTout_styles.regularTitle }, this.context.intl.formatMessage({
                            id: secondaryCTA.title,
                        })),
                        (secondaryCTA === null || secondaryCTA === void 0 ? void 0 : secondaryCTA.shortTitle) && (react["createElement"]("span", { className: DynamicTout_styles.shortTitle }, this.context.intl.formatMessage({
                            id: secondaryCTA.shortTitle,
                        }))))))))));
    }
    render() {
        const { qeId = 'dynamic', isFocused } = this.props;
        const textContainerFocusStyle = isFocused ? DynamicTout_styles.textContainerFocus : '';
        return (react["createElement"]("div", { "data-qe-id": `${qeId}-tout-card`, className: classnames_default()(DynamicTout_styles.DynamicTout, textContainerFocusStyle) },
            this.renderContent(),
            this.renderSideImage()));
    }
};
DynamicTout_DynamicTout = DynamicTout_decorate([
    index_module["e" /* observer */]
], DynamicTout_DynamicTout);
/* harmony default export */ var cards_DynamicTout_DynamicTout = (DynamicTout_DynamicTout);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Tooltip/index.js
var Tooltip = __webpack_require__("DUuf");
var Tooltip_default = /*#__PURE__*/__webpack_require__.n(Tooltip);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-firstmile-shared/src/components/pieces/constants.ts
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
/* harmony default export */ var pieces_constants = ({
    KEYS: {
        TAB: 9,
        ENTER: 13,
        ESC: 27,
        SPACE: 32,
        PAGEUP: 33,
        PAGEDOWN: 34,
        END: 35,
        HOME: 36,
        LEFT: 37,
        UP: 38,
        RIGHT: 39,
        DOWN: 40,
    },
    TOOLTIP_DELAY: 500,
});

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-firstmile-shared/src/components/pieces/AccessibleButton.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/


class AccessibleButton_AccessibleButton extends react_default.a.Component {
    constructor(props) {
        super(props);
        this.onClick = e => {
            this.props.onClick(e);
        };
        this.onKeyDown = evt => {
            const { onClick, hasEnterCallback = true } = this.props;
            switch (evt.keyCode) {
                case pieces_constants.KEYS.ENTER:
                    evt.preventDefault();
                    hasEnterCallback && onClick(evt);
                    break;
                case pieces_constants.KEYS.SPACE:
                    onClick(evt);
                    break;
                default:
                    // do nothing
                    break;
            }
        };
        this.anchorLinkRef = Object(react["createRef"])();
    }
    componentDidMount() {
        const { handleMouseEnter, handleMouseLeave, handleFocus, handleBlur } = this.props;
        if (this.anchorLinkRef && this.anchorLinkRef.current) {
            if (handleMouseEnter) {
                this.anchorLinkRef.current.addEventListener('mouseenter', handleMouseEnter);
            }
            if (handleMouseLeave) {
                this.anchorLinkRef.current.addEventListener('mouseleave', handleMouseLeave);
            }
            if (handleFocus) {
                this.anchorLinkRef.current.addEventListener('focus', handleFocus);
            }
            if (handleBlur) {
                this.anchorLinkRef.current.addEventListener('blur', handleBlur);
            }
        }
    }
    componentWillUnmount() {
        const { handleMouseEnter, handleMouseLeave, handleFocus, handleBlur } = this.props;
        if (this.anchorLinkRef && this.anchorLinkRef.current) {
            if (handleMouseEnter) {
                this.anchorLinkRef.current.removeEventListener('mouseenter', handleMouseEnter);
            }
            if (handleMouseLeave) {
                this.anchorLinkRef.current.removeEventListener('mouseleave', handleMouseLeave);
            }
            if (handleFocus) {
                this.anchorLinkRef.current.removeEventListener('focus', handleFocus);
            }
            if (handleBlur) {
                this.anchorLinkRef.current.removeEventListener('blur', handleBlur);
            }
        }
    }
    render() {
        const { isAccessible = true } = this.props;
        const anchorProps = {
            ...this.props,
        };
        // FIX: https://jira.corp.adobe.com/browse/CCXUP-2429
        // As React spits out Warning logs through console.error,
        // we cannot suppress the error logs by adjusting log level.
        // We need to remove the warning explicitly.
        // Remove props that <a> doesn't support but defined as AccessibleButtonProps
        delete anchorProps['handleMouseEnter'];
        delete anchorProps['handleMouseLeave'];
        delete anchorProps['handleFocus'];
        delete anchorProps['handleBlur'];
        return (react_default.a.createElement("a", Object.assign({}, anchorProps, { ref: this.anchorLinkRef, tabIndex: this.props.disabled || !isAccessible ? -1 : 0, onKeyDown: this.onKeyDown, onClick: this.onClick }), this.props.children));
    }
}

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-firstmile-shared/src/components/constants.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
/* harmony default export */ var components_constants = ({
    KEYS: {
        TAB: 9,
        ENTER: 13,
        ESC: 27,
        SPACE: 32,
        PAGEUP: 33,
        PAGEDOWN: 34,
        END: 35,
        HOME: 36,
        LEFT: 37,
        UP: 38,
        RIGHT: 39,
        DOWN: 40,
    },
    DEBOUNCE: {
        WAIT: 2000,
        OPTIONS: {
            leading: true,
            trailing: false,
        },
    },
    TOOLTIP_DELAY: 300,
    KEYBOARD_EVENT_KEYS: {
        TAB: 'Tab',
        ENTER: 'Enter',
        ESC: 'Escape',
        SPACE: ' ',
        PAGEUP: 'PageUp',
        PAGEDOWN: 'PageDown',
        END: 'End',
        HOME: 'Home',
        MAC_HOME: 'BrowserHome',
        LEFT: 'ArrowLeft',
        UP: 'ArrowUp',
        RIGHT: 'ArrowRight',
        DOWN: 'ArrowDown',
    },
    CTA_EVENTS: {
        LAUNCH_CMDN_WITH_DEEPLINK_PATH: 'FirstMileEvent.CmdnDeeplinkPath',
    },
    CTA_DEEPLINK_DATA: {
        STOP_TEMPLATE_THUMBNAIL_FETCH: 'stopTemplateThumbnailFetch'
    },
    RECOMMENDATION_TYPE: {
        CUSTOM_CONTENT: 'customContent',
    },
});

// EXTERNAL MODULE: ./node_modules/lodash.throttle/index.js
var lodash_throttle = __webpack_require__("hKI/");
var lodash_throttle_default = /*#__PURE__*/__webpack_require__.n(lodash_throttle);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-firstmile-shared/src/components/toastals/user-intent-dialog/interfaces.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2022 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
const ANALYTICS_SUBTYPES = {
    RECOMMENDATIONS: 'recommendations',
    QUESTIONNAIRE: 'questionnaire',
    QUESTION: 'question',
    ANSWER: 'answer',
    SEE_RECOMMENDATIONS: 'see-recommendations',
    QUESTIONNAIRE_RETURN: 'return-to-questionnaire',
    SEE_ALL_TUTORIALS: 'see-all-tutorials',
    USER_INTENT_CTA: 'user-intent-cta',
    RECOMMENDATIONS_CTA: 'recommendation-CTA',
    CLOSE: 'close',
};

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-firstmile-shared/src/components/carousel/cards/DynamicCard/DynamicCard.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2022 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var DynamicCard_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;
};
var DynamicCard_metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};

















const DynamicCard_styles = __webpack_require__("EiP9");
const DynamicCard_sharedStyles = __webpack_require__("jHoJ");
const THROTTLE_TIMEOUT_DURATION = 3000;
var DynamicCard_SentimentType;
(function (SentimentType) {
    SentimentType["POSITIVE"] = "positive";
    SentimentType["NEGATIVE"] = "negative";
})(DynamicCard_SentimentType || (DynamicCard_SentimentType = {}));
let DynamicCard_DynamicCard = class DynamicCard extends cards_DynamicComponent_DynamicComponent {
    constructor(props) {
        super(props);
        this._isFocused = false;
        this._isSentimentButtonFocused = false;
        this._uiOptions = {
            isIndependentCard: false,
            displayDescription: false,
            hasCTA: false,
        };
        this.state = {
            isDownPositiveFeedback: false,
            isDownNegativeFeedback: false,
        };
        this._enableFocus = () => {
            this._isFocused = true;
        };
        this._disableFocus = () => {
            this._isFocused = false;
        };
        this.handleSentiment = lodash_throttle_default()((sentiment) => {
            var _a, _b, _c;
            this.props.logEvent('feedback', {
                ...(_a = this.props.containerAnalytics) === null || _a === void 0 ? void 0 : _a.eventData,
                ...this._buildCardAnalyticsData(),
                cardAnalyticsData: this._buildCardAnalyticsData(),
                recommendationsJson: this.context.ututs.recommendationsJsonData(),
                value: sentiment,
                uiSequence: this.props.currentCardIndex + 1,
                count: this.props.slidesPerPage,
            });
            (_c = (_b = this.props).handleToutFeedbackCallback) === null || _c === void 0 ? void 0 : _c.call(_b, sentiment === DynamicCard_SentimentType.POSITIVE, this.props.id);
        }, THROTTLE_TIMEOUT_DURATION, { trailing: false });
        this._cardContainerRef = react["createRef"]();
        if (props.uiOptions) {
            this._uiOptions = props.uiOptions;
        }
    }
    get _isFocusable() {
        return !this._uiOptions.isIndependentCard && !this._uiOptions.hasCTA;
    }
    componentDidMount() {
        var _a;
        const { creativeEventData } = fetchUserIntent(this.context);
        const { containerAnalytics } = this.props;
        if (containerAnalytics && containerAnalytics.eventData && creativeEventData) {
            Object.assign(containerAnalytics.eventData, creativeEventData);
        }
        if ((_a = this._cardContainerRef) === null || _a === void 0 ? void 0 : _a.current) {
            this._cardContainerRef.current.addEventListener('focus', this._enableFocus, true);
            this._cardContainerRef.current.addEventListener('blur', this._disableFocus, true);
        }
    }
    componentWillUnmount() {
        var _a;
        if ((_a = this._cardContainerRef) === null || _a === void 0 ? void 0 : _a.current) {
            this._cardContainerRef.current.removeEventListener('focus', this._enableFocus, true);
            this._cardContainerRef.current.removeEventListener('blur', this._disableFocus, true);
        }
    }
    handleKeyDown(event, sentiment) {
        if ([components_constants.KEYBOARD_EVENT_KEYS.ENTER, components_constants.KEYBOARD_EVENT_KEYS.SPACE].includes(event.key)) {
            event.preventDefault();
            event.stopPropagation();
            this.handleSentiment(sentiment);
        }
    }
    handleClick() {
        if (this._isFocusable) {
            if (this.props.customOpenLink) {
                return this.props.customOpenLink(this.props.primaryCTA);
            }
            this.openLink(this.props.primaryCTA);
        }
    }
    renderTopImage() {
        const { image, qeId = 'dynamic-card' } = this.props;
        if (!image)
            return null;
        const sideImageBackgroundStyles = this.getBackgroundStylesForImage(image);
        return (react["createElement"]("div", { "data-qe-id": `${qeId}-img`, className: classnames_default()(DynamicCard_sharedStyles.flexCenterCenter, DynamicCard_styles.topImage), style: sideImageBackgroundStyles },
            react["createElement"]("div", { className: classnames_default()(DynamicCard_styles.topImageOverlay) })));
    }
    renderOverlayTrigger(sentiment, state) {
        const isPositiveSentiment = sentiment === DynamicCard_SentimentType.POSITIVE;
        return (react["createElement"](OverlayTrigger_default.a, { trigger: "hover", placement: "top", delayShow: this.context.utils.constants.TOOLTIP_DELAY },
            react["createElement"]("span", { "data-qe-id": `feedback-${sentiment}Button`, className: classnames_default()(DynamicCard_styles.sentimentButton, {
                    [DynamicCard_styles.sentimentButtonMouseColor]: state,
                    [DynamicCard_styles.negativeSentimentButton]: !isPositiveSentiment,
                }), onClick: e => {
                    e.preventDefault();
                    e.stopPropagation();
                    this.handleSentiment(sentiment);
                }, onMouseDown: e => this.handleSentimentColor(e, sentiment), onMouseUp: e => this.handleSentimentColor(e, sentiment), onKeyDown: e => this.handleKeyDown(e, sentiment), onFocus: () => {
                    this._isSentimentButtonFocused = true;
                }, onBlur: () => {
                    this._isSentimentButtonFocused = false;
                }, tabIndex: 0 }, isPositiveSentiment ? react["createElement"](S_SmileyPositiveOutline_18_N, null) : react["createElement"](S_SmileyNegativeOutline_18_N, null)),
            react["createElement"](Tooltip_default.a, { "data-qe-id": `feedback-${sentiment}Button-tooltip`, className: DynamicCard_styles.tutorialTooltip },
                react["createElement"](index_es["c" /* FormattedMessage */], { id: isPositiveSentiment
                        ? 'dhscr_feedback_positive_feedback'
                        : 'dhscr_feedback_negative_feedback' }))));
    }
    handleSentimentColor(event, sentiment) {
        const checkSentiment = sentimentType => sentiment === sentimentType && event.type === 'mousedown';
        this.setState({
            isDownPositiveFeedback: checkSentiment(DynamicCard_SentimentType.POSITIVE),
            isDownNegativeFeedback: checkSentiment(DynamicCard_SentimentType.NEGATIVE),
        });
    }
    renderFeedback() {
        return (react["createElement"](react["Fragment"], null,
            react["createElement"]("div", { className: classnames_default()(DynamicCard_styles.feedbackContainer), "data-qe-id": 'feedback-menu' },
                this.renderOverlayTrigger(DynamicCard_SentimentType.POSITIVE, this.state.isDownPositiveFeedback),
                this.renderOverlayTrigger(DynamicCard_SentimentType.NEGATIVE, this.state.isDownNegativeFeedback))));
    }
    renderContent() {
        var _a, _b, _c;
        const { utils: { replaceAppData }, } = this.context;
        const { title, headerText, qeId = 'dynamic-card', dataKey, duration, descriptionText, primaryCTA } = this.props;
        // used only for independent cards
        const analyticsParamOptions = {
            component: (_b = (_a = this.props) === null || _a === void 0 ? void 0 : _a.containerAnalytics) === null || _b === void 0 ? void 0 : _b.component,
            subtype: ANALYTICS_SUBTYPES.RECOMMENDATIONS_CTA,
            skipRecommendationsJson: true,
            uiSequence: this._uiOptions.isIndependentCard ? 0 : undefined,
        };
        let headerTitle = replaceAppData(title);
        if (duration) {
            headerTitle += ` • ${duration} min`;
        }
        return (react["createElement"]("div", { className: DynamicCard_styles.cardInfo, "data-qe-id": `${qeId}`, "data-qe-key": `card-number-${dataKey}` },
            title && (react["createElement"](Heading_default.a, { "data-qe-id": `${qeId}-algorithm`, className: DynamicCard_styles.subheading, variant: "subtitle3" }, headerTitle)),
            react["createElement"](Heading_default.a, { "data-qe-id": `${qeId}-header`, className: DynamicCard_styles.heading, variant: "subtitle2" }, replaceAppData(headerText)),
            ((_c = this._uiOptions) === null || _c === void 0 ? void 0 : _c.displayDescription) && descriptionText && (react["createElement"]("div", { "data-qe-id": `${qeId}-description`, className: DynamicCard_styles.bodyTextContent }, replaceAppData(descriptionText))),
            this._uiOptions.hasCTA && primaryCTA && (react["createElement"](Button_default.a, { variant: "cta", onClick: () => this.openLink(primaryCTA, false, analyticsParamOptions), className: DynamicCard_styles.cardPrimaryCTA },
                react["createElement"]("span", { "data-qe-id": `${qeId}-primary-tout-btn-label` }, this.context.intl.formatMessage({
                    id: primaryCTA.title,
                }))))));
    }
    render() {
        const { qeId = 'dynamic', isVisible, isAccessible, isLastCard, dataKey, renderFeedback = true, className, } = this.props;
        return (react["createElement"]("div", { "data-qe-id": `${qeId}-card`, id: `dynamic-card-${dataKey}`, ref: this._cardContainerRef, "data-index": dataKey, className: classnames_default()(!!className && className, DynamicCard_styles.DynamicCard, isVisible && DynamicCard_styles.isVisible, isLastCard && DynamicCard_styles.lastCard, this._isFocused &&
                !this._isSentimentButtonFocused &&
                !this._uiOptions.isIndependentCard &&
                !this._uiOptions.hasCTA &&
                DynamicCard_styles.cardFocus, this._uiOptions.isIndependentCard && DynamicCard_styles.independentCard) },
            react["createElement"](AccessibleButton_AccessibleButton, { isAccessible: isAccessible, onClick: () => this.handleClick(), "data-qe-id": `${qeId}-accessible-button`, className: classnames_default()(DynamicCard_styles.DynamicCardAccessibleButton), disabled: !isVisible },
                this.renderTopImage(),
                this.renderContent(),
                renderFeedback && this.renderFeedback())));
    }
};
DynamicCard_decorate([
    mobx_module["z" /* observable */],
    DynamicCard_metadata("design:type", Object)
], DynamicCard_DynamicCard.prototype, "_isFocused", void 0);
DynamicCard_DynamicCard = DynamicCard_decorate([
    index_module["e" /* observer */],
    DynamicCard_metadata("design:paramtypes", [Object])
], DynamicCard_DynamicCard);
/* harmony default export */ var cards_DynamicCard_DynamicCard = (DynamicCard_DynamicCard);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-firstmile-shared/src/assets/CheckmarkCircleDisabled.svg
function CheckmarkCircleDisabled_extends() {
  CheckmarkCircleDisabled_extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return CheckmarkCircleDisabled_extends.apply(this, arguments);
}


/* harmony default export */ var CheckmarkCircleDisabled = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", CheckmarkCircleDisabled_extends({
  "data-name": "Layer 1",
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 32 32"
}, props), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M16 4a12 12 0 1 0 12 12A12 12 0 0 0 16 4zm7.11 7.39l-8.43 10.84a.79.79 0 0 1-.58.3.79.79 0 0 1-.57-.23l-5.24-5.19a.81.81 0 0 1 0-1.14l.88-.88a.81.81 0 0 1 1.14 0l3.56 3.56 7-9A.8.8 0 0 1 22 9.51l1 .76a.8.8 0 0 1 .11 1.12z",
  fill: "#9e9e9e",
  opacity: ".2"
})));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-firstmile-shared/src/assets/CheckmarkCircle.svg
function CheckmarkCircle_extends() {
  CheckmarkCircle_extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return CheckmarkCircle_extends.apply(this, arguments);
}


/* harmony default export */ var CheckmarkCircle = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", CheckmarkCircle_extends({
  "data-name": "Layer 1",
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 32 32"
}, props), /*#__PURE__*/react_default.a.createElement("circle", {
  cx: "16",
  cy: "16",
  r: "12",
  fill: "#2d9d78"
}), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M23.11 11.39l-8.43 10.84a.79.79 0 0 1-.58.3.79.79 0 0 1-.57-.23l-5.24-5.19a.81.81 0 0 1 0-1.14l.88-.88a.81.81 0 0 1 1.14 0l3.56 3.56 7-9A.8.8 0 0 1 22 9.51l1 .76a.8.8 0 0 1 .11 1.12z",
  fill: "#fff"
})));
// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/ChevronRight/index.js
var ChevronRight = __webpack_require__("+n3g");
var ChevronRight_default = /*#__PURE__*/__webpack_require__.n(ChevronRight);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-firstmile-shared/src/components/pieces/SelectableLink.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2020 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/






const SelectableLink_styles = __webpack_require__("XqOA");
const layoutShared = __webpack_require__("jHoJ");
const SelectableLink_sharedStyles = __webpack_require__("kMNh");



const SHARED_SETTING_TYPE = 'NUJTout';
class SelectableLink_NavigableLink extends react["Component"] {
    isChecked(id) {
        const { checked } = this.props;
        return ((checked && checked.includes(id)) || this.context.utils.SharedSettings.get(SHARED_SETTING_TYPE, id) === true);
    }
    renderIcon(checklist, sideImage, id) {
        if (checklist) {
            return (react["createElement"]("div", { className: classnames_default()([
                    layoutShared.flexCenterCenter,
                    SelectableLink_styles.listImage,
                    this.isChecked(id) ? SelectableLink_styles.checked : SelectableLink_styles.unchecked,
                ]) },
                react["createElement"](Icon_default.a, null, this.isChecked(id) ? react["createElement"](CheckmarkCircle, null) : react["createElement"](CheckmarkCircleDisabled, null))));
        }
        else if (sideImage) {
            return (react["createElement"]("div", { className: classnames_default()([layoutShared.flexCenterCenter, SelectableLink_styles.listImage]) },
                react["createElement"]("img", { src: this.context.utils.sophia.getFullAssetPath(sideImage.fields.image.fields.file) })));
        }
        return null;
    }
    render() {
        const { checked, links, handleSelect, checklist, loadingId } = this.props;
        const { replaceAppData } = this.context.utils;
        return links.map(({ fields, sys }, index) => {
            const { primaryText, secondaryText, durationText, sideImage } = fields;
            const { id } = sys;
            let isLoading = id === loadingId;
            return (react["createElement"]("div", { key: index, className: classnames_default()(SelectableLink_styles.root, SelectableLink_sharedStyles.focus), tabIndex: 0, onClick: () => {
                    return handleSelect && handleSelect(fields, id);
                }, onKeyDown: e => {
                    if (e.keyCode === pieces_constants.KEYS.ENTER || e.keyCode === pieces_constants.KEYS.SPACE) {
                        return handleSelect && handleSelect(fields, id);
                    }
                } },
                this.renderIcon(checklist, sideImage, id),
                react["createElement"]("div", { className: SelectableLink_styles.selectableLinkContainer },
                    react["createElement"]("div", { className: SelectableLink_styles.textContainer },
                        react["createElement"]("span", { className: SelectableLink_styles.primaryText }, replaceAppData(primaryText)),
                        react["createElement"]("div", null,
                            react["createElement"]("div", { className: SelectableLink_styles.secondaryText },
                                secondaryText,
                                durationText && react["createElement"]("span", null,
                                    " \u00B7 ",
                                    durationText)))),
                    react["createElement"]("div", { className: classnames_default()(SelectableLink_styles.iconContainer, {
                            [SelectableLink_styles.loading]: isLoading,
                        }) }, isLoading ? react["createElement"](Wait_default.a, { size: "S" }) : react["createElement"](ChevronRight_default.a, null)))));
        });
    }
}
SelectableLink_NavigableLink.contextTypes = {
    utils: prop_types_default.a.any,
};
SelectableLink_NavigableLink.defaultProps = {
    checked: [],
    checklist: false,
};

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/Play/index.js
var Play = __webpack_require__("v0If");
var Play_default = /*#__PURE__*/__webpack_require__.n(Play);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-firstmile-shared/src/components/pieces/EllipsisText.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/

const EllipsisText_styles = __webpack_require__("HZfF");


class EllipsisText_EllipsisText extends react_default.a.Component {
    wrapWithTooltip(content) {
        if (this.props.tooltipText) {
            return (react_default.a.createElement(OverlayTrigger_default.a, { trigger: "hover", placement: "bottom left", delayShow: 500 },
                content,
                react_default.a.createElement(Tooltip_default.a, null, this.props.tooltipText)));
        }
        else {
            return content;
        }
    }
    render() {
        // To achieve proper table layout, we want the table to size the column's width
        // as though the text wrapped normally. But we want the text to only display one
        // line with ellipsis. This is achieved with the combination of this:
        //
        //  1. The "fake" content wraps normally, but is hidden with zero-height.
        //     This way, the column will expand horizontally only if needed.
        //  2. A blank "span" element "reserves" one line-height worth of space, so that
        //     the column will align vertically as though it consumed one line of text.
        //  3. The actual displayed content has "text-overflow: ellipsis" and is absolutely
        //     positioned (right where the original line would have been).
        return (react_default.a.createElement("div", { "data-qe-id": "pieces-ellipsis-text", id: "pieces-ellipsis-text", className: EllipsisText_styles.root },
            react_default.a.createElement("div", { className: EllipsisText_styles.fake }, this.props.children),
            react_default.a.createElement("span", null, "\u00A0"),
            this.wrapWithTooltip(react_default.a.createElement("div", { className: EllipsisText_styles.content }, this.props.children))));
    }
}

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-firstmile-shared/src/assets/Middot.svg
function Middot_extends() {
  Middot_extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return Middot_extends.apply(this, arguments);
}


/* harmony default export */ var Middot = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", Middot_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "4",
  height: "4",
  viewBox: "0 0 4 4"
}, props), /*#__PURE__*/react_default.a.createElement("circle", {
  "data-name": "Ellipse 9381",
  cx: "2",
  cy: "2",
  r: "2",
  fill: "#4b4b4b"
})));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-firstmile-shared/src/components/pieces/Middot.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/


const Middot_sharedStyles = __webpack_require__("jHoJ");
/* harmony default export */ var pieces_Middot = (() => react["createElement"](Middot, { className: Middot_sharedStyles.svgFillAsMainText }));

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-firstmile-shared/src/components/pieces/RichText.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/





const RichText_sharedStyles = __webpack_require__("jHoJ");
const RichText_styles = __webpack_require__("86HW");
const tags = {
    'unordered-list': (node, children) => react["createElement"]("ul", { style: parseStyles(node) }, children),
    'list-item': (node, children) => react["createElement"](ListItem, null, children),
    'ordered-list': (node, children) => react["createElement"]("ol", { style: parseStyles(node) }, children),
    'line-break': () => react["createElement"]("br", null),
    text: (node) => react["createElement"](RichText_Text, { style: parseStyles(node) }, node.value),
    paragraph: (node, children) => react["createElement"]("p", { style: parseStyles(node) }, children),
};
const variants = {
    underline: { textDecoration: 'underline' },
    bold: { fontWeight: 'bold' },
    italic: { fontStyle: 'italic' },
};
const parseRichText = (nodes) => nodes.reduce((richText, node) => {
    const children = Array.isArray(node.content) ? parseRichText(node.content) : null;
    const jsx = tags[node.nodeType] ? tags[node.nodeType](node, children) : [];
    return [...richText, jsx];
}, []);
const parseStyles = (node) => {
    var _a, _b;
    if (!node.format) {
        return {};
    }
    const cssRules = (_a = Object.keys(node === null || node === void 0 ? void 0 : node.format)) === null || _a === void 0 ? void 0 : _a.filter((key) => key !== 'variants');
    const textVariants = ((_b = node === null || node === void 0 ? void 0 : node.format) === null || _b === void 0 ? void 0 : _b.variants) || [];
    const textStyles = textVariants.reduce((style, variant) => ({ ...style, ...variants[variant] }), {});
    const cssStyles = cssRules
        .filter(element => ['text-align'].includes(element)) // Can expand this array to include other supported properties
        .reduce((style, rule) => ({ ...style, [toCamelCase(rule)]: node.format[rule] }), {});
    return { ...textStyles, ...cssStyles };
};
const toCamelCase = (ruleName) => {
    const parts = ruleName.split('-');
    if (parts.length === 1) {
        return parts[0];
    }
    const firstPart = parts.shift();
    const otherParts = parts.map((part) => part.charAt(0).toUpperCase() + part.slice(1));
    return `${firstPart}${otherParts}`;
};
class RichText_RichText extends react["Component"] {
    render() {
        return react["createElement"]("span", { className: RichText_styles.root }, parseRichText(this.props.text));
    }
}
const ListItem = ({ children }) => (react["createElement"]("div", { className: classnames_default()(RichText_styles.listItem, RichText_sharedStyles.flexAlignCenter) },
    react["createElement"](pieces_Middot, null),
    react["createElement"]("span", null,
        react["createElement"](EllipsisText_EllipsisText, null,
            " ",
            children))));
// Using React class to get context
class RichText_Text extends react["Component"] {
    render() {
        return react["createElement"]("span", { style: this.props.style }, this.context.utils.replaceAppData(this.props.children));
    }
}
RichText_Text.contextTypes = common_CommonStaticContext;

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-firstmile-shared/src/components/Tout.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var Tout_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;
};
var Tout_metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};












const Tout_styles = __webpack_require__("/063");
const Tout_sharedStyles = __webpack_require__("jHoJ");
const HIDE_ELEMENT_WINDOW_WIDTH = {
    smallStacked: 1400,
};
let Tout_Tout = class Tout extends react["Component"] {
    constructor() {
        super(...arguments);
        this._isSmallStackedVisible = true;
        this._prevWindowWidth = 0;
        this.toutVisibilityChangedAfterResize = (currWindowWidth, prevWindowWidth) => {
            if (currWindowWidth && !prevWindowWidth) {
                return true;
            }
            return ((prevWindowWidth < HIDE_ELEMENT_WINDOW_WIDTH.smallStacked &&
                currWindowWidth >= HIDE_ELEMENT_WINDOW_WIDTH.smallStacked) ||
                (prevWindowWidth >= HIDE_ELEMENT_WINDOW_WIDTH.smallStacked &&
                    currWindowWidth < HIDE_ELEMENT_WINDOW_WIDTH.smallStacked));
        };
        this.onWindowResize = () => {
            var _a;
            const windowWidth = (_a = document.documentElement) === null || _a === void 0 ? void 0 : _a.clientWidth;
            if (!this.toutVisibilityChangedAfterResize(windowWidth, this._prevWindowWidth)) {
                return;
            }
            this._isSmallStackedVisible =
                !!windowWidth && windowWidth >= HIDE_ELEMENT_WINDOW_WIDTH.smallStacked ? true : false;
            this._prevWindowWidth = windowWidth;
        };
    }
    // At the moment, the dynamic image from CMDN templates is only used for the small stacked tout
    get shouldGetDynamicImage() {
        var _a, _b, _c, _d;
        // check if the Tout has a CmdN Deeplink CTA
        const isLaunchCmdNDeeplinkPath = ((_a = this.props.primaryCTA) === null || _a === void 0 ? void 0 : _a.ctaEvent) === components_constants.CTA_EVENTS.LAUNCH_CMDN_WITH_DEEPLINK_PATH;
        // check if we should stop the ThumbnailOverride
        // initial feature requirement was that the first collection thumbnail will override the tout image
        // this stops that from happening
        const stopTemplateThumbnailFetch = (_d = (_c = (_b = this.props.primaryCTA) === null || _b === void 0 ? void 0 : _b.ctaDeeplinkData) === null || _c === void 0 ? void 0 : _c.data) === null || _d === void 0 ? void 0 : _d[components_constants.CTA_DEEPLINK_DATA.STOP_TEMPLATE_THUMBNAIL_FETCH];
        return this.props.smallStacked && isLaunchCmdNDeeplinkPath && !stopTemplateThumbnailFetch;
    }
    componentDidMount() {
        const { creativeEventData, errorInfo } = fetchUserIntent(this.context);
        if (this.props.containerAnalytics && this.props.containerAnalytics.eventData && creativeEventData) {
            Object.assign(this.props.containerAnalytics.eventData, creativeEventData);
        }
        if (this.props.smallStacked) {
            // The 'onWindowResize' method is called here in order to check if the window width size is big enough
            // to render the 'smallStacked' tout or not
            this.onWindowResize();
            window.addEventListener('resize', this.onWindowResize);
        }
    }
    componentWillUnmount() {
        if (this.props.smallStacked) {
            window.removeEventListener('resize', this.onWindowResize);
        }
    }
    openLink(data) {
        const { containerAnalytics, logEvent } = this.props;
        this.context.utils.CallToActionHandler.handleCallToAction(data, containerAnalytics, logEvent, this);
    }
    getDynamicImage() {
        var _a;
        if (!this.shouldGetDynamicImage) {
            return null;
        }
        const forceImage = (_a = this.context.store) === null || _a === void 0 ? void 0 : _a.forceImage;
        if (forceImage === null || forceImage === void 0 ? void 0 : forceImage.imagePath) {
            return `file://${forceImage === null || forceImage === void 0 ? void 0 : forceImage.imagePath}`;
        }
        // Don't display the default image if the stock data is already cached as it will appear
        // only for a brief moment.
        if (!(forceImage === null || forceImage === void 0 ? void 0 : forceImage.imagePath) && !(forceImage === null || forceImage === void 0 ? void 0 : forceImage.initializing)) {
            return '';
        }
        return null;
    }
    getBackgroundStylesForImage(assetObject, horizontalAnchor) {
        var _a;
        const backgroundImage = (_a = this.getDynamicImage()) !== null && _a !== void 0 ? _a : this.context.utils.sophia.getFullAssetPath(assetObject);
        return (assetObject && {
            backgroundImage: `url("${backgroundImage}")`,
            backgroundPosition: `center ${horizontalAnchor || 'center'}`,
        });
    }
    renderBody() {
        var _a;
        const { richDescriptionText, descriptionText } = this.props;
        if (((_a = richDescriptionText === null || richDescriptionText === void 0 ? void 0 : richDescriptionText.json) === null || _a === void 0 ? void 0 : _a.length) > 0) {
            return react["createElement"](RichText_RichText, { text: richDescriptionText.json });
        }
        else if (descriptionText) {
            return this.context.utils.replaceAppData(descriptionText);
        }
        else {
            return null;
        }
    }
    renderSideImage() {
        const { sideImage, sideImageAnchor, qeId = 'default' } = this.props;
        const sideImageBackgroundStyles = sideImage && this.getBackgroundStylesForImage(sideImage, sideImageAnchor);
        return sideImage ? (react["createElement"]("div", { "data-qe-id": `${qeId}-tout-img`, className: classnames_default()(Tout_sharedStyles.flexCenterCenter, Tout_styles.sideImage), style: sideImageBackgroundStyles })) : null;
    }
    renderContent() {
        const { utils: { replaceAppData }, } = this.context;
        const { title, headerText, textPosition, primaryCTA, secondaryCTA, qeId = 'default', bgImage, logEvent, containerAnalytics, navigableLinks, showVideoPlayControl = false, grow, autoHeight, } = this.props;
        const buttonVariant = !!bgImage ? 'overBackground' : 'primary';
        const secondButtonVariant = !!bgImage ? 'overBackground' : 'secondary';
        return (react["createElement"]("div", { className: Tout_styles.textContainer },
            react["createElement"]("div", { className: classnames_default()(Tout_styles.mainTextArea, { [Tout_styles.mainTextAreaAutoHeight]: autoHeight }) },
                title && (react["createElement"](Heading_default.a, { "data-qe-id": `${qeId}-tout-algorithm-type`, className: classnames_default()(Tout_styles.subheading, Tout_styles.customContentToutTitle), variant: "subtitle3" }, replaceAppData(title))),
                react["createElement"](Heading_default.a, { "data-qe-id": `${qeId}-tout-header`, classNames: classnames_default()(Tout_styles.heading, textPosition === 'right' && Tout_styles.sideImageAlignRight), variant: "subtitle1" }, replaceAppData(headerText)),
                react["createElement"]("div", { "data-qe-id": `${qeId}-tout-body`, className: Tout_styles.bodyTextContent }, navigableLinks ? (react["createElement"](SelectableLink_NavigableLink, { logEvent: logEvent, containerAnalytics: containerAnalytics, links: navigableLinks, handleSelect: link => {
                        this.openLink(link);
                    } })) : (this.renderBody()))),
            (primaryCTA === null || primaryCTA === void 0 ? void 0 : primaryCTA.ctaText) && (react["createElement"]("div", { "data-qe-id": `${qeId}-tout-btn`, className: Tout_styles.stickyBottomButtons },
                showVideoPlayControl ? (react["createElement"]("div", { tabIndex: 0, className: Tout_styles.videoBackgroundImageControls, onClick: () => this.openLink(primaryCTA), onKeyDown: evt => {
                        if (evt.keyCode === components_constants.KEYS.ENTER || evt.keyCode === components_constants.KEYS.SPACE) {
                            this.openLink(primaryCTA);
                        }
                    } },
                    react["createElement"]("div", { className: classnames_default()(Tout_sharedStyles.flexCenterCenter, Tout_styles.myPlayButton) },
                        react["createElement"](Play_default.a, { size: "S" })),
                    react["createElement"]("span", null, primaryCTA === null || primaryCTA === void 0 ? void 0 : primaryCTA.ctaText))) : (react["createElement"](Button_default.a, { variant: buttonVariant, quiet: !bgImage && !grow, onClick: () => {
                        if (this.props.customOpenLink) {
                            this.props.customOpenLink(primaryCTA);
                        }
                        else {
                            this.openLink(primaryCTA);
                        }
                    } },
                    react["createElement"]("span", { "data-qe-id": `${qeId}-primary-tout-btn-label` }, primaryCTA.ctaText))),
                !!(secondaryCTA === null || secondaryCTA === void 0 ? void 0 : secondaryCTA.ctaText) ? (react["createElement"](Button_default.a, { quiet: !bgImage && !grow, variant: secondButtonVariant, className: Tout_sharedStyles.secondaryCTAOverrides, onClick: () => this.openLink(secondaryCTA) },
                    react["createElement"]("span", { "data-qe-id": `${qeId}-secondary-tout-btn-label` }, secondaryCTA.ctaText))) : null))));
    }
    render() {
        const { grow, cardHeight = 'short', smallStacked, qeId = 'default', bgImage, bgAnchor, sideImageAlign, showVideoPlayControl = false, autoHeight, } = this.props;
        if (smallStacked && !this._isSmallStackedVisible) {
            return null;
        }
        const bgImageBackgroundStyles = bgImage && this.getBackgroundStylesForImage(bgImage, bgAnchor);
        if (showVideoPlayControl && !bgImage) {
            throw 'Tout recieved video data, but bgImage was not present.';
        }
        return (react["createElement"]("div", { "data-qe-id": `${qeId}-tout-card`, className: classnames_default()(Tout_sharedStyles.root, !autoHeight && Tout_sharedStyles[cardHeight], Tout_styles.root, !!grow && Tout_sharedStyles.grow, !bgImage && sideImageAlign === 'right' && Tout_styles.sideImageAlignRight, smallStacked && Tout_styles.smallStacked, showVideoPlayControl && Tout_styles.videoBackgroundImage, !!bgImage && Tout_styles.hasBackgroundImage), style: bgImageBackgroundStyles },
            this.renderSideImage(),
            this.renderContent()));
    }
};
Tout_Tout.contextTypes = common_CommonStaticContext;
Tout_decorate([
    mobx_module["z" /* observable */],
    Tout_metadata("design:type", Object)
], Tout_Tout.prototype, "_isSmallStackedVisible", void 0);
Tout_Tout = Tout_decorate([
    index_module["e" /* observer */]
], Tout_Tout);
/* harmony default export */ var components_Tout = (Tout_Tout);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-firstmile-shared/src/components/carousel/cards/CustomContentTout/CustomContentTout.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2022 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var CustomContentTout_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;
};






const stylesCustomContentTout = __webpack_require__("kpy/");
const stylesDynamicTout = __webpack_require__("6TsE");
let CustomContentTout_CustomContentTout = class CustomContentTout extends cards_DynamicTout_DynamicTout {
    openLink(data) {
        const { logEvent, primaryCTA, ctaClickCallback } = this.props;
        const customAnalyticsData = this._buildCustomContentAnalytics(data);
        // add proper CTA click logging in HS
        // (event.subtype and content.action)
        const primaryCTACCC = {
            ...primaryCTA,
            ctaLog: 'suggestion',
        };
        const eventDataCCC = (customAnalyticsData === null || customAnalyticsData === void 0 ? void 0 : customAnalyticsData.eventData) && {
            ...customAnalyticsData === null || customAnalyticsData === void 0 ? void 0 : customAnalyticsData.eventData,
            ctaDeeplinkData: primaryCTA.ctaDeeplinkData,
        };
        const customAnalyticsDataCCC = {
            ...customAnalyticsData,
            eventData: eventDataCCC,
        };
        this.context.utils.CallToActionHandler.handleCallToAction(primaryCTACCC, customAnalyticsDataCCC, logEvent, this);
        // call the custom click handler if it's available
        ctaClickCallback === null || ctaClickCallback === void 0 ? void 0 : ctaClickCallback({
            headerText: this.props.headerText,
            id: this.props.id,
        }, eventDataCCC);
    }
    render() {
        const { qeId = 'dynamic', isFocused, isActive, primaryCTA, secondaryCTA } = this.props;
        const textContainerFocusStyle = isFocused ? stylesDynamicTout.textContainerFocus : '';
        const toutProps = {
            ...this.props,
            qeId: 'dynamic-tout',
            descriptionText: this.props.descriptionText,
            autoHeight: true,
            title: this.props.title,
            // force sideImage to be on the right side
            sideImageAlign: 'right',
            grow: true,
            primaryCTA: {
                ctaText: primaryCTA === null || primaryCTA === void 0 ? void 0 : primaryCTA.ctaText,
                ctaAction: primaryCTA === null || primaryCTA === void 0 ? void 0 : primaryCTA.ctaAction,
                ctaEvent: primaryCTA === null || primaryCTA === void 0 ? void 0 : primaryCTA.ctaEvent,
                ctaData: primaryCTA === null || primaryCTA === void 0 ? void 0 : primaryCTA.ctaData,
                ctaUrl: primaryCTA === null || primaryCTA === void 0 ? void 0 : primaryCTA.ctaUrl,
                ctaLog: primaryCTA === null || primaryCTA === void 0 ? void 0 : primaryCTA.ctaLog,
                ctaJson: primaryCTA === null || primaryCTA === void 0 ? void 0 : primaryCTA.ctaJson,
                ctaDeeplinkData: primaryCTA === null || primaryCTA === void 0 ? void 0 : primaryCTA.ctaDeeplinkData,
                neuralFilterSampleImage: primaryCTA === null || primaryCTA === void 0 ? void 0 : primaryCTA.neuralFilterSampleImage,
                neuralFilterSettingsJson: primaryCTA === null || primaryCTA === void 0 ? void 0 : primaryCTA.neuralFilterSettingsJson,
            },
            secondaryCTA: {
                ctaText: secondaryCTA === null || secondaryCTA === void 0 ? void 0 : secondaryCTA.ctaText,
                ctaAction: secondaryCTA === null || secondaryCTA === void 0 ? void 0 : secondaryCTA.ctaAction,
                ctaEvent: secondaryCTA === null || secondaryCTA === void 0 ? void 0 : secondaryCTA.ctaEvent,
                ctaData: secondaryCTA === null || secondaryCTA === void 0 ? void 0 : secondaryCTA.ctaData,
                ctaUrl: secondaryCTA === null || secondaryCTA === void 0 ? void 0 : secondaryCTA.ctaUrl,
                ctaLog: secondaryCTA === null || secondaryCTA === void 0 ? void 0 : secondaryCTA.ctaLog,
                ctaJson: secondaryCTA === null || secondaryCTA === void 0 ? void 0 : secondaryCTA.ctaJson,
                ctaDeeplinkData: secondaryCTA === null || secondaryCTA === void 0 ? void 0 : secondaryCTA.ctaDeeplinkData,
                neuralFilterSampleImage: secondaryCTA === null || secondaryCTA === void 0 ? void 0 : secondaryCTA.neuralFilterSampleImage,
                neuralFilterSettingsJson: secondaryCTA === null || secondaryCTA === void 0 ? void 0 : secondaryCTA.neuralFilterSettingsJson,
            },
            customOpenLink: data => this.openLink(data),
        };
        let cardClassnames = [];
        // Force Tout to have left content width limitation to fit with feedback container
        if (toutProps.sideImageAlign) {
            cardClassnames = [stylesDynamicTout.textContainer, stylesCustomContentTout.DynamicToutCustomTextContainer];
        }
        return (react["createElement"]("div", { "data-qe-id": `${qeId}-tout-card`, className: classnames_default()(stylesDynamicTout.DynamicTout, textContainerFocusStyle) },
            react["createElement"]("div", { "data-qe-id": `${qeId}${isActive ? '-active' : ''}`, "data-qe-key": `card-number-${this.props.dataKey}`, className: classnames_default()(...cardClassnames) },
                react["createElement"](DynamicTout_DynamicToutFeedback, { className: stylesDynamicTout.feedbackDropdown, disabled: !isActive, toastContainerClassName: stylesDynamicTout.toastContainer, logEvent: this.props.logEvent, containerAnalytics: this.props.containerAnalytics, cardAnalyticsData: this._buildCardAnalyticsData(), contentAnalyticsData: this._buildContentAnalyticsData(), handleToutFeedbackCallback: this.props.handleToutFeedbackCallback, currentCardIndex: this.props.currentCardIndex, id: this.props.id })),
            react["createElement"](components_Tout, Object.assign({}, toutProps))));
    }
};
CustomContentTout_CustomContentTout = CustomContentTout_decorate([
    index_module["e" /* observer */]
], CustomContentTout_CustomContentTout);
/* harmony default export */ var cards_CustomContentTout_CustomContentTout = (CustomContentTout_CustomContentTout);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-firstmile-shared/src/components/carousel/cards/CustomContentCard/CustomContentCard.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2022 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var CustomContentCard_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;
};



let CustomContentCard_CustomContentCard = class CustomContentCard extends cards_DynamicCard_DynamicCard {
    openLink(data) {
        const { logEvent, primaryCTA, ctaClickCallback } = this.props;
        const customAnalyticsData = this._buildCustomContentAnalytics(data);
        // add proper CTA click logging in HS
        // (event.subtype and content.action)
        const primaryCTACCC = {
            ...primaryCTA,
            ctaLog: 'suggestion',
        };
        const eventDataCCC = (customAnalyticsData === null || customAnalyticsData === void 0 ? void 0 : customAnalyticsData.eventData) && {
            ...customAnalyticsData === null || customAnalyticsData === void 0 ? void 0 : customAnalyticsData.eventData,
            ctaDeeplinkData: primaryCTA.ctaDeeplinkData,
        };
        const customAnalyticsDataCCC = {
            ...customAnalyticsData,
            eventData: eventDataCCC,
        };
        this.context.utils.CallToActionHandler.handleCallToAction(primaryCTACCC, customAnalyticsDataCCC, logEvent, this);
        // call the custom click handler if it's available
        ctaClickCallback === null || ctaClickCallback === void 0 ? void 0 : ctaClickCallback({
            headerText: this.props.headerText,
            id: this.props.id,
        }, eventDataCCC);
    }
    render() {
        var _a, _b;
        const image = this.context.utils.sophia.getFullAssetPath(this.props.sideImage);
        const cardProps = {
            ...this.props,
            image,
            autoHeight: true,
            title: this.props.title,
            smallStacked: true,
            contentType: (_b = (_a = this.props) === null || _a === void 0 ? void 0 : _a.content) === null || _b === void 0 ? void 0 : _b.type,
            customOpenLink: data => this.openLink(data),
        };
        return react["createElement"](cards_DynamicCard_DynamicCard, Object.assign({}, cardProps));
    }
};
CustomContentCard_CustomContentCard = CustomContentCard_decorate([
    index_module["e" /* observer */]
], CustomContentCard_CustomContentCard);
/* harmony default export */ var cards_CustomContentCard_CustomContentCard = (CustomContentCard_CustomContentCard);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-firstmile-shared/src/components/carousel/cards/DynamicRowCard/DynamicRowCard.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2022 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var DynamicRowCard_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;
};
var DynamicRowCard_metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};








const DynamicRowCard_styles = __webpack_require__("SJJV");
const DynamicRowCard_sharedStyles = __webpack_require__("jHoJ");
let DynamicRowCard_DynamicRowCard = class DynamicRowCard extends cards_DynamicComponent_DynamicComponent {
    constructor(props) {
        super(props);
        this._isFocused = false;
        this._isAccessible = false;
        this.disableAccessibility = () => {
            this._isAccessible = false;
        };
        this.enableAccessibility = () => {
            this._isAccessible = true;
        };
        this.focusCard = () => {
            var _a, _b, _c, _d;
            (_d = (_c = (_b = (_a = this._accessibleButtonRef) === null || _a === void 0 ? void 0 : _a.current) === null || _b === void 0 ? void 0 : _b.anchorLinkRef) === null || _c === void 0 ? void 0 : _c.current) === null || _d === void 0 ? void 0 : _d.focus();
        };
        this.blurCard = () => {
            var _a, _b, _c, _d;
            (_d = (_c = (_b = (_a = this._accessibleButtonRef) === null || _a === void 0 ? void 0 : _a.current) === null || _b === void 0 ? void 0 : _b.anchorLinkRef) === null || _c === void 0 ? void 0 : _c.current) === null || _d === void 0 ? void 0 : _d.blur();
        };
        this.handleFocus = () => {
            this._isFocused = true;
        };
        this.handleBlur = () => {
            this._isFocused = false;
        };
        this._accessibleButtonRef = react["createRef"]();
        this._isAccessible = this.props.isAccessible;
    }
    renderSideImage() {
        const { image, qeId = 'default' } = this.props;
        if (!image)
            return null;
        const sideImageBackgroundStyles = this.getBackgroundStylesForImage(image);
        return (react["createElement"]("div", { "data-qe-id": `${qeId}-tout-img`, className: classnames_default()(DynamicRowCard_sharedStyles.flexCenterCenter, DynamicRowCard_styles.sideImage), style: sideImageBackgroundStyles },
            react["createElement"]("div", { className: classnames_default()(DynamicRowCard_styles.sideImageOverlay) })));
    }
    renderContent() {
        const { utils: { replaceAppData }, } = this.context;
        const { headerText, primaryCTA, isActive, qeId = 'user-intent', dataKey } = this.props;
        return (react["createElement"]("div", { "data-qe-id": `${qeId}${isActive ? '-active' : ''}`, "data-qe-key": `card-number-${dataKey}`, className: DynamicRowCard_styles.textContainer },
            react["createElement"]("div", { className: DynamicRowCard_styles.mainTextArea },
                react["createElement"](Heading_default.a, { "data-qe-id": `${qeId}-tout-header`, className: DynamicRowCard_styles.heading, variant: "subtitle1" }, replaceAppData(headerText)),
                (primaryCTA === null || primaryCTA === void 0 ? void 0 : primaryCTA.title) && (react["createElement"]("div", { "data-qe-id": `${qeId}-tout-body`, className: DynamicRowCard_styles.bodyTextContent },
                    react["createElement"]("span", { "data-qe-id": `${qeId}-primary-tout-btn-label` }, this.context.intl.formatMessage({
                        id: primaryCTA.title,
                    })))))));
    }
    render() {
        var _a, _b;
        const { qeId = 'user-intent', isFocused, primaryCTA } = this.props;
        const textContainerFocusStyle = isFocused ? DynamicRowCard_styles.textContainerFocus : '';
        const analyticsParamOptions = {
            component: (_b = (_a = this.props) === null || _a === void 0 ? void 0 : _a.containerAnalytics) === null || _b === void 0 ? void 0 : _b.component,
            subtype: ANALYTICS_SUBTYPES.RECOMMENDATIONS_CTA,
            skipRecommendationsJson: true,
        };
        return (react["createElement"](AccessibleButton_AccessibleButton, { ref: this._accessibleButtonRef, onClick: () => this.openLink(primaryCTA, false, analyticsParamOptions), "data-qe-id": `${qeId}-accessible-button`, className: classnames_default()(DynamicRowCard_styles.DynamicRowCard, textContainerFocusStyle, this._isFocused && DynamicRowCard_styles.cardFocus), handleBlur: this.handleBlur, handleFocus: this.handleFocus, isAccessible: this._isAccessible },
            this.renderSideImage(),
            this.renderContent()));
    }
};
DynamicRowCard_decorate([
    mobx_module["z" /* observable */],
    DynamicRowCard_metadata("design:type", Object)
], DynamicRowCard_DynamicRowCard.prototype, "_isFocused", void 0);
DynamicRowCard_decorate([
    mobx_module["z" /* observable */],
    DynamicRowCard_metadata("design:type", Object)
], DynamicRowCard_DynamicRowCard.prototype, "_isAccessible", void 0);
DynamicRowCard_DynamicRowCard = DynamicRowCard_decorate([
    index_module["e" /* observer */],
    DynamicRowCard_metadata("design:paramtypes", [Object])
], DynamicRowCard_DynamicRowCard);
/* harmony default export */ var cards_DynamicRowCard_DynamicRowCard = (DynamicRowCard_DynamicRowCard);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Radio/index.js
var Radio = __webpack_require__("1k/2");
var Radio_default = /*#__PURE__*/__webpack_require__.n(Radio);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-firstmile-shared/src/assets/InfoMedium.svg
function InfoMedium_extends() {
  InfoMedium_extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return InfoMedium_extends.apply(this, arguments);
}


/* harmony default export */ var InfoMedium = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", InfoMedium_extends({
  xmlns: "http://www.w3.org/2000/svg",
  height: "18",
  viewBox: "0 0 18 18",
  width: "18"
}, props), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M9 1a8 8 0 1 0 8 8 8 8 0 0 0-8-8zm-.15 2.15a1.359 1.359 0 0 1 1.431 1.283q.004.064.001.129A1.332 1.332 0 0 1 8.85 5.994a1.353 1.353 0 0 1-1.432-1.433 1.359 1.359 0 0 1 1.304-1.412q.064-.002.128.001zM11 13.5a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5v-1a.5.5 0 0 1 .5-.5H8V9h-.5a.5.5 0 0 1-.5-.5v-1a.5.5 0 0 1 .5-.5h2a.5.5 0 0 1 .5.5V12h.5a.5.5 0 0 1 .5.5z"
})));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-firstmile-shared/src/components/carousel/cards/QuestionnaireCard/QuestionnaireCard.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2022 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var QuestionnaireCard_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;
};
var QuestionnaireCard_metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};












const QuestionnaireCard_styles = __webpack_require__("BMbE");
const QuestionnaireCard_sharedStyles = __webpack_require__("jHoJ");
const THUMBNAIL_HEIGHT = 174;
let QuestionnaireCard_QuestionnaireCard = class QuestionnaireCard extends cards_DynamicComponent_DynamicComponent {
    constructor(props) {
        super(props);
        this._isFocused = false;
        this._secondaryThumbnailYTranslation = 0;
        this._currentAnimationIteration = 0;
        this._startTranslationValue = 0;
        this._finalTranslationValue = -THUMBNAIL_HEIGHT;
        // _totalIterations (number of frames) = number of seconds we want the animation to run * 60 frames per second
        //	e.g. 1.5s * 60 frames/s = 90 frames
        this._totalIterations = 60;
        this.state = {
            isHovering: false,
        };
        this._enableFocus = () => {
            this._isFocused = true;
        };
        this._disableFocus = () => {
            this._isFocused = false;
        };
        this._handleClick = dataKey => {
            this.props.handleUpdateSelectedCard(dataKey);
            this._logAnalyticsClickEvent(dataKey);
        };
        this._handleTransition = (mouseIn) => {
            var _a;
            if (this.props.secondaryImage && this.state.isHovering !== mouseIn && ((_a = this._secondaryThumbnailRef) === null || _a === void 0 ? void 0 : _a.current)) {
                cancelAnimationFrame(this._requestId);
                this._currentAnimationIteration = 0;
                this._startTranslationValue =
                    parseFloat(getComputedStyle(this._secondaryThumbnailRef.current)
                        .getPropertyValue('transform')
                        .replace(/[^-?\d.]/g, '')) || 0;
                if (mouseIn) {
                    this._finalTranslationValue = -THUMBNAIL_HEIGHT;
                    this._transitionAnimation();
                }
                else {
                    this._finalTranslationValue = 0;
                    this._transitionAnimation();
                }
            }
        };
        this._handleHover = (mouseIn) => {
            this._handleTransition(mouseIn);
            this.setState({
                isHovering: mouseIn,
            });
        };
        this._easeInOutCubic = (currentIteration, startValue, changeInValue, totalIterations) => {
            if ((currentIteration /= totalIterations / 2) < 1) {
                return (changeInValue / 2) * Math.pow(currentIteration, 3) + startValue;
            }
            return (changeInValue / 2) * (Math.pow(currentIteration - 2, 3) + 2) + startValue;
        };
        this._transitionAnimation = () => {
            this._secondaryThumbnailYTranslation = this._easeInOutCubic(this._currentAnimationIteration, this._startTranslationValue, this._finalTranslationValue - this._startTranslationValue, this._totalIterations);
            this._currentAnimationIteration++;
            this._secondaryThumbnailRef.current.style.transform = `translateY(${this._secondaryThumbnailYTranslation}px)`;
            if (this._currentAnimationIteration === this._totalIterations) {
                cancelAnimationFrame(this._requestId);
            }
            else {
                this._requestId = requestAnimationFrame(() => this._transitionAnimation());
            }
        };
        this._cardContainerRef = react["createRef"]();
        this._secondaryThumbnailRef = react["createRef"]();
    }
    componentDidMount() {
        var _a;
        if (!((_a = this._cardContainerRef) === null || _a === void 0 ? void 0 : _a.current)) {
            return;
        }
        this._cardContainerRef.current.addEventListener('focus', this._enableFocus, true);
        this._cardContainerRef.current.addEventListener('blur', this._disableFocus, true);
    }
    componentWillUnmount() {
        var _a;
        if (!((_a = this._cardContainerRef) === null || _a === void 0 ? void 0 : _a.current)) {
            return;
        }
        this._cardContainerRef.current.removeEventListener('focus', this._enableFocus, true);
        this._cardContainerRef.current.removeEventListener('blur', this._disableFocus, true);
    }
    _logAnalyticsClickEvent(cardIndex) {
        var _a, _b;
        const { containerAnalytics, logEvent, headerText, contentType, metadata } = this.props;
        let eventData = {
            ...containerAnalytics === null || containerAnalytics === void 0 ? void 0 : containerAnalytics.eventData,
            subtype: ANALYTICS_SUBTYPES.ANSWER,
            uiSequence: cardIndex + 1,
            contentName: headerText,
            contentType: contentType,
            contentCategory: ((_a = metadata === null || metadata === void 0 ? void 0 : metadata.categories) === null || _a === void 0 ? void 0 : _a.toString()) || (metadata === null || metadata === void 0 ? void 0 : metadata.level),
            value: ((_b = this.props) === null || _b === void 0 ? void 0 : _b.isActive) ? 'unchecked' : 'checked',
        };
        logEvent(containerAnalytics.component, eventData, 'click');
    }
    renderBottomImage() {
        const { image, secondaryImage, qeId = 'questionnaire-card' } = this.props;
        return (react["createElement"]("div", { className: QuestionnaireCard_styles.thumbnailsContainer },
            react["createElement"]("div", { id: "primary-image", "data-qe-id": `${qeId}-primary-img`, className: classnames_default()(QuestionnaireCard_sharedStyles.flexCenterCenter, QuestionnaireCard_styles.bottomImage, !image && QuestionnaireCard_styles.bottomImagePlaceholder), style: image && this.getBackgroundStylesForImage(image) }),
            react["createElement"]("div", { id: "secondary-image", ref: this._secondaryThumbnailRef, "data-qe-id": `${qeId}-secondary-img`, className: classnames_default()(QuestionnaireCard_sharedStyles.flexCenterCenter, QuestionnaireCard_styles.bottomImage), style: secondaryImage && this.getBackgroundStylesForImage(secondaryImage) })));
    }
    renderContent() {
        const { utils: { replaceAppData }, } = this.context;
        const { headerText, qeId = 'questionnaire-card', dataKey, descriptionText, isActive } = this.props;
        return (react["createElement"]("div", { className: QuestionnaireCard_styles.cardInfo, "data-qe-id": `${qeId}`, "data-qe-key": `card-number-${dataKey}` },
            react["createElement"](Radio_default.a, { quiet: true, tabIndex: -1, checked: isActive, className: QuestionnaireCard_styles.radio }),
            react["createElement"](Heading_default.a, { "data-qe-id": `${qeId}-header`, variant: "subtitle2", className: QuestionnaireCard_styles.heading }, replaceAppData(headerText)),
            react["createElement"](OverlayTrigger_default.a, { trigger: "hover", placement: "bottom", delayShow: this.context.utils.constants.TOOLTIP_DELAY },
                react["createElement"](InfoMedium, { className: QuestionnaireCard_styles.infoIcon }),
                react["createElement"](Tooltip_default.a, { "data-qe-id": `${qeId}-tooltip`, className: QuestionnaireCard_styles.tooltip }, descriptionText))));
    }
    render() {
        const { qeId = 'questionnaire', secondaryImage, isVisible, isLastCard, dataKey, className, isActive, } = this.props;
        const showHover = !secondaryImage && this.state.isHovering;
        const cardId = `questionnaire-card-${dataKey}`;
        return (react["createElement"]("div", { "data-qe-id": `${qeId}-card`, id: cardId, ref: this._cardContainerRef, "data-index": dataKey, className: classnames_default()(!!className && className, QuestionnaireCard_styles.QuestionnaireCard, QuestionnaireCard_styles.normal, isVisible && QuestionnaireCard_styles.isVisible, isLastCard && QuestionnaireCard_styles.lastCard, this._isFocused && QuestionnaireCard_styles.cardFocus, showHover && QuestionnaireCard_styles.hover, isActive && QuestionnaireCard_styles.isSelected), onMouseEnter: () => this._handleHover(true), onMouseLeave: event => {
                if (event.target.id === cardId) {
                    this._handleHover(false);
                }
            } },
            react["createElement"](AccessibleButton_AccessibleButton, { isAccessible: false, onClick: event => {
                    event.stopPropagation();
                    event.preventDefault();
                    this._handleClick(dataKey);
                }, "data-qe-id": `${qeId}-accessible-button`, className: classnames_default()(QuestionnaireCard_styles.QuestionnaireCardAccessibleButton, showHover && QuestionnaireCard_styles.hover, isActive && QuestionnaireCard_styles.isSelected), disabled: !isVisible, hasEnterCallback: false },
                this.renderContent(),
                this.renderBottomImage())));
    }
};
QuestionnaireCard_decorate([
    mobx_module["z" /* observable */],
    QuestionnaireCard_metadata("design:type", Object)
], QuestionnaireCard_QuestionnaireCard.prototype, "_isFocused", void 0);
QuestionnaireCard_QuestionnaireCard = QuestionnaireCard_decorate([
    index_module["e" /* observer */],
    QuestionnaireCard_metadata("design:paramtypes", [Object])
], QuestionnaireCard_QuestionnaireCard);
/* harmony default export */ var cards_QuestionnaireCard_QuestionnaireCard = (QuestionnaireCard_QuestionnaireCard);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-firstmile-shared/src/components/carousel/cards/index.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2022 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/







// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/LinkOut/index.js
var LinkOut = __webpack_require__("mStE");
var LinkOut_default = /*#__PURE__*/__webpack_require__.n(LinkOut);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-firstmile-shared/src/components/SmallTout.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2020 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var SmallTout_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;
};






const SmallTout_styles = __webpack_require__("JrJt");
let SmallTout_SmallTout = class SmallTout extends react["Component"] {
    constructor() {
        super(...arguments);
        this.handleMouseEnter = () => {
            const { containerAnalytics, content, logEvent } = this.props;
            logEvent(containerAnalytics.component, {
                ...containerAnalytics.eventData,
                content: content,
            }, 'hover');
        };
    }
    openLink(data) {
        const { content, containerAnalytics, logEvent } = this.props;
        this.context.utils.CallToActionHandler.handleCallToAction({ content, ...data }, containerAnalytics, logEvent, this);
    }
    /**
     * Return the html to render the 'SmallTout' component
     *
     * @returns React.HTML
     */
    render() {
        var _a, _b;
        const { primaryCTA, linkOut, isFocused } = this.props;
        const textContainerFocusStyle = isFocused ? SmallTout_styles.textContainerFocus : '';
        const isJapanese = ((_b = (_a = this.context) === null || _a === void 0 ? void 0 : _a.host) === null || _b === void 0 ? void 0 : _b.language) === 'ja_JP';
        return (react["createElement"]("div", { onClick: () => {
                primaryCTA && primaryCTA && this.openLink(primaryCTA);
            }, onKeyDown: primaryCTA
                ? evt => {
                    if (evt.keyCode === components_constants.KEYS.ENTER || evt.keyCode === components_constants.KEYS.SPACE) {
                        this.openLink(primaryCTA);
                    }
                }
                : undefined, className: SmallTout_styles.SmallTout, onMouseEnter: this.handleMouseEnter },
            react["createElement"]("img", { className: SmallTout_styles.tileImg, src: this.context.utils.sophia.getFullAssetPath(this.props.image) }),
            react["createElement"]("div", { className: classnames_default()(SmallTout_styles.textContainer, isJapanese && SmallTout_styles.japaneseTextContainer, textContainerFocusStyle) },
                react["createElement"]("div", null,
                    this.props.content,
                    linkOut ? (react["createElement"]("div", { className: SmallTout_styles.linkOut },
                        react["createElement"](LinkOut_default.a, { size: "S" }))) : null))));
    }
};
SmallTout_SmallTout.contextTypes = common_CommonStaticContext;
SmallTout_SmallTout = SmallTout_decorate([
    index_module["e" /* observer */]
], SmallTout_SmallTout);
/* harmony default export */ var components_SmallTout = (SmallTout_SmallTout);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-firstmile-shared/src/components/carousel/carousels/constants.ts
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2022 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/


const CAROUSEL_CONSTANTS = {
    CAROUSEL_START_INDEX: 'CarouselStartIndex',
    TRANSLATE_PERCENTAGE_PER_CARD: 100,
    // Card padding in px (value is also in css file divided by 2)
    CARD_PADDING: 65,
    NO_CARD_PADDING: 0,
    DEFAULT_ANIMATION_DURATION_MS: 300,
    TOAST_TIMEOUT_DURATION: 3000,
    DEFAULT_NO_OF_CARDS_PER_ROW: 3,
};
const constants_HIDE_ELEMENT_WINDOW_WIDTH = {
    rightToutCarousel: 1400,
};
const MULTIPLE_CARDS_CAROUSEL_BREAKPOINTS = {
    MIN_FOUR_CARDS_WIDTH: 1250,
    MAX_TWO_CARDS_WIDTH: 1050,
};
const CARDS_TYPES = {
    smallTout: components_SmallTout,
    dynamicTout: cards_DynamicTout_DynamicTout,
    multipleCards: cards_DynamicCard_DynamicCard,
    rightCarouselCards: cards_DynamicCard_DynamicCard,
    verticalCarousel: cards_DynamicRowCard_DynamicRowCard,
};
const CAROUSEL_CARD_TYPE = {
    QUESTIONNAIRE_CARDS: 'questionnaireCards',
    MULTIPLE_CARDS: 'multipleCards',
    RIGHT_TOUT: 'rightCarouselCards',
    ROW: 'dynamicTout',
    INTENT_CARD: 'verticalCarousel',
};
const CAROUSEL_TYPE = {
    MULTIPLE_CARDS_CAROUSEL: 'multipleCardsCarousel',
    RIGHT_TOUT_CAROUSEL: 'rightToutCarousel',
    VERTICAL_CAROUSEL: 'verticalCarousel',
    DEFAULT: 'fullCarousel',
};
var SlideshowInteractiveElementType;
(function (SlideshowInteractiveElementType) {
    SlideshowInteractiveElementType["ARROW"] = "arrow";
    SlideshowInteractiveElementType["DOT"] = "dot";
})(SlideshowInteractiveElementType || (SlideshowInteractiveElementType = {}));
var ArrowDirection;
(function (ArrowDirection) {
    ArrowDirection["RIGHT"] = "right";
    ArrowDirection["LEFT"] = "left";
})(ArrowDirection || (ArrowDirection = {}));
const CARDS_CONTAINER_ID = 'cards-container';

// CONCATENATED MODULE: ./src/components/__mocks__/customCards/MockCustomContentCardsNeuralFilter.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2022 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
const fakeCustomContentCardsNeuralFilter = {
    "data": {
        "customcontentconfigurationcardsByPath": {
            "item": {
                "_path": "/content/dam/ccfirstmile/PHSP/en_US/homeTwoBanner/Custom-content-configuration-cards",
                "_variation": "master",
                "componentName": "Custom Content Configuration Cards",
                "customCards": [
                    {
                        "_path": "/content/dam/ccfirstmile/PHSP/en_US/componentStandardTout/Ps-edit-your-photos---2thirds",
                        "_variation": "master",
                        "componentName": "Neural Filters, try it now",
                        "headerText": "Neural Filters, try it now",
                        "descriptionText": "Tweak lighting and colors and remove things.",
                        "richDescriptionText": {
                            "html": null,
                            "markdown": null,
                            "plaintext": null,
                            "json": null
                        },
                        "primaryCTA": {
                            "_path": "/content/dam/ccfirstmile/PHSP/en_US/assets/PS_FM_Photoediting-2third.jpg",
                            "componentName": "Try it now - Ps - What's New - Neural filters",
                            "ctaText": "Try Neural Filter Now",
                            "ctaURL": null,
                            "ctaAction": "appEvent",
                            "ctaEvent": "FirstMileEvent.NeuralFilterDeeplink",
                            "ctaData": null,
                            "ctaDeeplinkData": null,
                            "locReady": true,
                            "neuralFilterSettingsJson": [
                                {
                                    "_obj": "neuralGalleryFilters",
                                    "NF_UI_DATA": {
                                        "spl::version": "1.0.6",
                                        "spl::changeId": "ba5cc0ebe39847a1930424f1bd4e1be4",
                                        "spl::filterStack": [
                                            {
                                                "spl::id": "internal.SmartPortrait",
                                                "spl::enabled": true,
                                                "spl::cropStates": [
                                                    {
                                                        "spl::cropId": "face1",
                                                        "spl::values": {
                                                            "spl::ageSlider": null,
                                                            "spl::eyeSlider": null,
                                                            "spl::yawSlider": null,
                                                            "spl::feathering": 20,
                                                            "spl::hairSlider": null,
                                                            "spl::angerSlider": null,
                                                            "spl::happySlider": null,
                                                            "spl::shiftSlider": null,
                                                            "spl::sourceWeight": 90,
                                                            "spl::lightingSlider": null,
                                                            "spl::surpriseSlider": null
                                                        }
                                                    }
                                                ]
                                            },
                                            {
                                                "spl::id": "internal.SkinSmoothing",
                                                "spl::enabled": false,
                                                "spl::cropStates": [
                                                    {
                                                        "spl::cropId": "face1",
                                                        "spl::values": {
                                                            "spl::skinDetailsSlider": 50,
                                                            "spl::skinStengthSlider": 50
                                                        }
                                                    }
                                                ]
                                            },
                                            {
                                                "spl::id": "internal.MakeupTransfer",
                                                "spl::enabled": false,
                                                "spl::cropStates": []
                                            },
                                            {
                                                "spl::id": "internal.Hazy",
                                                "spl::enabled": false,
                                                "spl::cropStates": []
                                            },
                                            {
                                                "spl::id": "internal.Colorize",
                                                "spl::enabled": false,
                                                "spl::cropStates": []
                                            },
                                            {
                                                "spl::id": "internal.SuperZoom",
                                                "spl::enabled": false,
                                                "spl::cropStates": []
                                            },
                                            {
                                                "spl::id": "internal.JpegArtefactsRemoval",
                                                "spl::enabled": false,
                                                "spl::cropStates": []
                                            },
                                            {
                                                "spl::id": "internal.StyleTransfer",
                                                "spl::enabled": false,
                                                "spl::cropStates": []
                                            }
                                        ]
                                    },
                                    "NF_SPL_GRAPH": {
                                        "spl::edges": [],
                                        "spl::nodes": [
                                            {
                                                "spl::label": "head",
                                                "spl::operation": "head"
                                            },
                                            {
                                                "spl::label": "tail",
                                                "spl::operation": "tail"
                                            }
                                        ],
                                        "spl::params": [],
                                        "spl::version": "1.0.0",
                                        "spl::variable": {},
                                        "spl::graphRevision": 1
                                    },
                                    "NF_OUTPUT_TYPE": 1,
                                    "NF_SPL_SOURCE_MD5": {
                                        "_data": "/psj+MppR6K/HRxsgmHD1A==",
                                        "_rawData": "base64"
                                    },
                                    "NF_ACTION_DESCRIPTOR": 1,
                                    "NF_HOMESCREEN_DEEPLINK": 1,
                                    "NF_SPL_REGISTERED_VARIABLES": [
                                        "StyleGan2Cloud/pt_iter3_surprise.dat",
                                        "StyleGan2Cloud/pt_iter3_happy.dat",
                                        "StyleGan2Cloud/pt_iter3_gaze.dat",
                                        "StyleGan2Cloud/pt_iter3_bald.dat",
                                        {
                                            "_data": " ",
                                            "_rawData": "base64"
                                        },
                                        "StyleGan2Cloud/pt_iter3_yaw.dat",
                                        "StyleGan2Cloud/pt_iter3_lighting.dat",
                                        "StyleGan2Cloud/pt_iter3_anger.dat",
                                        "StyleGan2Cloud/pt_iter3_age.dat"
                                    ],
                                    "NF_SPL_REGISTERED_VAR_NAMES": [
                                        "genshop2_latentDirectionIter3_3",
                                        "genshop2_latentDirectionIter3_2",
                                        "genshop2_latentDirectionIter3_7",
                                        "genshop2_latentDirectionIter3_1",
                                        "genshop2_latentCodePT_1.0.18_0_complex",
                                        "genshop2_latentDirectionIter3_4",
                                        "genshop2_latentDirectionIter3_6",
                                        "genshop2_latentDirectionIter3_5",
                                        "genshop2_latentDirectionIter3_0"
                                    ],
                                    "NF_SPL_REGISTERED_VAR_CONFIGS": [
                                        0,
                                        0,
                                        0,
                                        0,
                                        1,
                                        0,
                                        0,
                                        0,
                                        0
                                    ]
                                }
                            ],
                            "_metadata": {
                                "stringMetadata": [
                                    {
                                        "name": "title",
                                        "value": "Try it now - Ps - What's New - Neural filters"
                                    },
                                    {
                                        "name": "description",
                                        "value": ""
                                    }
                                ],
                                "stringArrayMetadata": [],
                                "intMetadata": [],
                                "intArrayMetadata": [],
                                "floatMetadata": [],
                                "floatArrayMetadata": [],
                                "booleanMetadata": [],
                                "booleanArrayMetadata": [],
                                "calendarMetadata": [],
                                "calendarArrayMetadata": []
                            },
                            "_variations": [],
                            "_model": {
                                "_path": "/conf/ccfirstmile/settings/dam/cfm/models/textlink",
                                "title": "Textlink"
                            },
                            "neuralFilterSampleImage": {
                                "type": "image",
                                "_path": "/content/dam/ccfirstmile/PHSP/en_US/assets/PS_FM_LinktoLearn-1third.jpg",
                                "_authorUrl": "https://author-p22655-e59433.adobeaemcloud.com/content/dam/ccfirstmile/PHSP/en_US/assets/PS_FM_Photoediting-2third.jpg",
                                "_publishUrl": "https://author-p22655-e59433.adobeaemcloud.com/content/dam/ccfirstmile/PHSP/en_US/assets/PS_FM_Photoediting-2third.jpg",
                                "width": null,
                                "height": null,
                                "mimeType": null
                            }
                        },
                        "sideImage": {
                            "type": "image",
                            "_path": "/content/dam/ccfirstmile/PHSP/en_US/assets/PS_FM_Photoediting-2third.jpg",
                            "_authorUrl": "https://author-p22655-e59433.adobeaemcloud.com/content/dam/ccfirstmile/PHSP/en_US/assets/PS_FM_Photoediting-2third.jpg",
                            "_publishUrl": "https://odin.adobe.com/content/dam/ccfirstmile/PHSP/en_US/assets/PS_FM_Photoediting-2third.jpg",
                            "width": null,
                            "height": null,
                            "mimeType": null
                        },
                        "locReady": true,
                        "_metadata": {
                            "stringMetadata": [
                                {
                                    "name": "title",
                                    "value": "Neural Filters, try it now"
                                },
                                {
                                    "name": "description",
                                    "value": ""
                                }
                            ],
                            "stringArrayMetadata": [],
                            "intMetadata": [],
                            "intArrayMetadata": [],
                            "floatMetadata": [],
                            "floatArrayMetadata": [],
                            "booleanMetadata": [],
                            "booleanArrayMetadata": [],
                            "calendarMetadata": [],
                            "calendarArrayMetadata": []
                        },
                        "_variations": [],
                        "_model": {
                            "_path": "/conf/ccfirstmile/settings/dam/cfm/models/component--standard-tout",
                            "title": "Component: Standard Tout"
                        }
                    }
                ],
                "_metadata": {
                    "stringMetadata": [
                        {
                            "name": "title",
                            "value": "Custom Content Configuration Cards"
                        },
                        {
                            "name": "description",
                            "value": ""
                        }
                    ],
                    "stringArrayMetadata": [],
                    "intMetadata": [],
                    "intArrayMetadata": [],
                    "floatMetadata": [],
                    "floatArrayMetadata": [],
                    "booleanMetadata": [],
                    "booleanArrayMetadata": [],
                    "calendarMetadata": [],
                    "calendarArrayMetadata": []
                },
                "_variations": [],
                "_model": {
                    "_path": "/conf/ccfirstmile/settings/dam/cfm/models/customcontentconfigurationcards",
                    "title": "CustomContentConfigurationCards"
                }
            },
            "_references": [
                {
                    "type": "image",
                    "_path": "/content/dam/ccfirstmile/PHSP/en_US/assets/PS_FM_background-2third.jpg",
                    "_authorUrl": "https://author-p22655-e59433.adobeaemcloud.com/content/dam/ccfirstmile/PHSP/en_US/assets/PS_FM_background-2third.jpg",
                    "_publishUrl": "https://odin.adobe.com/content/dam/ccfirstmile/PHSP/en_US/assets/PS_FM_background-2third.jpg",
                    "width": null,
                    "height": null,
                    "mimeType": null
                }
            ]
        }
    }
};
/* harmony default export */ var MockCustomContentCardsNeuralFilter = (fakeCustomContentCardsNeuralFilter);

// CONCATENATED MODULE: ./src/components/__mocks__/customCards/MockCustomContentCardsCMDN.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2022 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
const fakeCustomContentCardsDataOpenCMDN = {
    "data": {
        "customcontentconfigurationcardsByPath": {
            "item": {
                "_path": "/content/dam/ccfirstmile/PHSP/en_US/homeTwoBanner/Custom-content-configuration-cards",
                "_variation": "master",
                "componentName": "Custom Content Configuration Cards",
                "customCards": [
                    {
                        "_path": "/content/dam/ccfirstmile/PHSP/en_US/componentStandardTout/Ps-Find-more-in-app-tutorials---1third",
                        "componentName": "Ps Find more in-app tutorials - 1third",
                        "headerText": "Open Unified Panel HelpX",
                        "descriptionText": null,
                        "richDescriptionText": {
                            "html": null,
                            "markdown": null,
                            "plaintext": null,
                            "json": null
                        },
                        "primaryCTA": {
                            "_variation": "master",
                            "componentName": "Open CMDN via Deeplink",
                            "ctaText": "Open CMDN via Deeplink",
                            "ctaAction": "appEvent",
                            "ctaUrl": null,
                            "ctaEvent": "FirstMileEvent.CmdnDeeplinkPath",
                            "ctaData": null,
                            "ctaDeeplinkData": {
                                "data": {
                                    "tab": "template",
                                    "collection": 0,
                                    "action": "select"
                                }
                            },
                            "locReady": true,
                            "neuralFilterSettingsJson": null,
                            "ctaURLNeedsNoAuth": false,
                        },
                        "sideImage": {
                            "type": "image",
                            "_path": "/content/dam/ccfirstmile/PHSP/en_US/assets/PS_FM_LinktoLearn-1third.jpg",
                            "_authorUrl": "https://author-p22655-e59433.adobeaemcloud.com/content/dam/ccfirstmile/PHSP/en_US/assets/PS_FM_LinktoLearn-1third.jpg",
                            "_publishUrl": "https://publish-p22655-e59433.adobeaemcloud.com/content/dam/ccfirstmile/PHSP/en_US/assets/PS_FM_LinktoLearn-1third.jpg",
                            "width": null,
                            "height": null,
                            "mimeType": null
                        },
                        "locReady": true,
                        "_metadata": {
                            "stringMetadata": [
                                {
                                    "name": "title",
                                    "value": "Ps Find more in-app tutorials - 1third"
                                },
                                {
                                    "name": "description",
                                    "value": ""
                                }
                            ],
                            "stringArrayMetadata": [],
                            "intMetadata": [],
                            "intArrayMetadata": [],
                            "floatMetadata": [],
                            "floatArrayMetadata": [],
                            "booleanMetadata": [],
                            "booleanArrayMetadata": [],
                            "calendarMetadata": [],
                            "calendarArrayMetadata": []
                        },
                        "_variations": [],
                        "_model": {
                            "_path": "/conf/ccfirstmile/settings/dam/cfm/models/component--standard-tout",
                            "title": "Component: Standard Tout"
                        }
                    },
                    {
                        "_path": "/content/dam/ccfirstmile/PHSP/en_US/componentStandardTout/Ps-edit-your-photos---2thirds",
                        "_variation": "master",
                        "componentName": "Open CMDN",
                        "headerText": "Open CMDN",
                        "descriptionText": "Tweak lighting and colors and remove things.",
                        "richDescriptionText": {
                            "html": null,
                            "markdown": null,
                            "plaintext": null,
                            "json": null
                        },
                        "primaryCTA": {
                            "_variation": "master",
                            "componentName": "Open CMDN via Deeplink",
                            "ctaText": "Open CMDN via Deeplink",
                            "ctaAction": "appEvent",
                            "ctaUrl": null,
                            "ctaEvent": "FirstMileEvent.CmdnDeeplinkPath",
                            "ctaData": null,
                            "ctaDeeplinkData": {
                                "data": {
                                    "tab": "template",
                                    "collection": 0,
                                    "action": "select"
                                }
                            },
                            "locReady": true,
                            "neuralFilterSettingsJson": null,
                            "ctaURLNeedsNoAuth": false,
                        },
                        "sideImage": {
                            "type": "image",
                            "_path": "/content/dam/ccfirstmile/PHSP/en_US/assets/PS_FM_Photoediting-2third.jpg",
                            "_authorUrl": "https://author-p22655-e59433.adobeaemcloud.com/content/dam/ccfirstmile/PHSP/en_US/assets/PS_FM_Photoediting-2third.jpg",
                            "_publishUrl": "https://odin.adobe.com/content/dam/ccfirstmile/PHSP/en_US/assets/PS_FM_Photoediting-2third.jpg",
                            "width": null,
                            "height": null,
                            "mimeType": null
                        },
                        "locReady": true,
                        "_metadata": {
                            "stringMetadata": [
                                {
                                    "name": "title",
                                    "value": "Ps edit your photos - 2thirds"
                                },
                                {
                                    "name": "description",
                                    "value": ""
                                }
                            ],
                            "stringArrayMetadata": [],
                            "intMetadata": [],
                            "intArrayMetadata": [],
                            "floatMetadata": [],
                            "floatArrayMetadata": [],
                            "booleanMetadata": [],
                            "booleanArrayMetadata": [],
                            "calendarMetadata": [],
                            "calendarArrayMetadata": []
                        },
                        "_variations": [],
                        "_model": {
                            "_path": "/conf/ccfirstmile/settings/dam/cfm/models/component--standard-tout",
                            "title": "Component: Standard Tout"
                        }
                    }
                ],
                "_metadata": {
                    "stringMetadata": [
                        {
                            "name": "title",
                            "value": "Custom Content Configuration Cards"
                        },
                        {
                            "name": "description",
                            "value": ""
                        }
                    ],
                    "stringArrayMetadata": [],
                    "intMetadata": [],
                    "intArrayMetadata": [],
                    "floatMetadata": [],
                    "floatArrayMetadata": [],
                    "booleanMetadata": [],
                    "booleanArrayMetadata": [],
                    "calendarMetadata": [],
                    "calendarArrayMetadata": []
                },
                "_variations": [],
                "_model": {
                    "_path": "/conf/ccfirstmile/settings/dam/cfm/models/customcontentconfigurationcards",
                    "title": "CustomContentConfigurationCards"
                }
            },
            "_references": [
                {
                    "type": "image",
                    "_path": "/content/dam/ccfirstmile/PHSP/en_US/assets/PS_FM_background-2third.jpg",
                    "_authorUrl": "https://author-p22655-e59433.adobeaemcloud.com/content/dam/ccfirstmile/PHSP/en_US/assets/PS_FM_background-2third.jpg",
                    "_publishUrl": "https://odin.adobe.com/content/dam/ccfirstmile/PHSP/en_US/assets/PS_FM_background-2third.jpg",
                    "width": null,
                    "height": null,
                    "mimeType": null
                }
            ]
        }
    }
};
/* harmony default export */ var MockCustomContentCardsCMDN = (fakeCustomContentCardsDataOpenCMDN);

// CONCATENATED MODULE: ./src/components/__mocks__/customCards/MockCustomContentCardsDeepLink.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2022 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
const fakeCustomContentCardsDataOpenWhatsNew = {
    "data": {
        "customcontentconfigurationcardsByPath": {
            "item": {
                "_path": "/content/dam/ccfirstmile/PHSP/en_US/homeTwoBanner/Custom-content-configuration-cards",
                "_variation": "master",
                "componentName": "Custom Content Configuration Cards",
                "customCards": [
                    {
                        "_path": "/content/dam/ccfirstmile/PHSP/en_US/componentStandardTout/Ps-Find-more-in-app-tutorials---1third",
                        "componentName": "Ps Find more in-app tutorials - 1third",
                        "headerText": "Open Unified Panel HelpX",
                        "descriptionText": null,
                        "richDescriptionText": {
                            "html": null,
                            "markdown": null,
                            "plaintext": null,
                            "json": null
                        },
                        "primaryCTA": {
                            "componentName": "deeplink test",
                            "style": "none",
                            "ctaText": "Deeplink Test",
                            "ctaAction": "appEvent",
                            "needLocFGJK": "Yes",
                            "needLocT3": "Yes",
                            "locReady": true,
                            "ctaDeeplinkData": {
                                "data": {
                                    "aemID": "photoshop/using/replace-sky",
                                    "title": "Replace sky in your photos",
                                    "locale": "en_US",
                                    "contentModuleType": "cmHelpXDetail"
                                },
                                "source": "helpx-welcome"
                            },
                            "ctaData": null,
                        },
                        "sideImage": {
                            "type": "image",
                            "_path": "/content/dam/ccfirstmile/PHSP/en_US/assets/PS_FM_LinktoLearn-1third.jpg",
                            "_authorUrl": "https://author-p22655-e59433.adobeaemcloud.com/content/dam/ccfirstmile/PHSP/en_US/assets/PS_FM_LinktoLearn-1third.jpg",
                            "_publishUrl": "https://publish-p22655-e59433.adobeaemcloud.com/content/dam/ccfirstmile/PHSP/en_US/assets/PS_FM_LinktoLearn-1third.jpg",
                            "width": null,
                            "height": null,
                            "mimeType": null
                        },
                        "locReady": true,
                        "_metadata": {
                            "stringMetadata": [
                                {
                                    "name": "title",
                                    "value": "Ps Find more in-app tutorials - 1third"
                                },
                                {
                                    "name": "description",
                                    "value": ""
                                }
                            ],
                            "stringArrayMetadata": [],
                            "intMetadata": [],
                            "intArrayMetadata": [],
                            "floatMetadata": [],
                            "floatArrayMetadata": [],
                            "booleanMetadata": [],
                            "booleanArrayMetadata": [],
                            "calendarMetadata": [],
                            "calendarArrayMetadata": []
                        },
                        "_variations": [],
                        "_model": {
                            "_path": "/conf/ccfirstmile/settings/dam/cfm/models/component--standard-tout",
                            "title": "Component: Standard Tout"
                        }
                    },
                    {
                        "_path": "/content/dam/ccfirstmile/PHSP/en_US/componentStandardTout/Ps-edit-your-photos---2thirds",
                        "_variation": "master",
                        "componentName": "Ps edit your photos - 2thirds",
                        "headerText": "Test Deeplink",
                        "descriptionText": "Tweak lighting and colors and remove things.",
                        "richDescriptionText": {
                            "html": null,
                            "markdown": null,
                            "plaintext": null,
                            "json": null
                        },
                        "primaryCTA": {
                            "componentName": "deeplink test",
                            "style": "none",
                            "ctaText": "Deeplink Test",
                            "ctaAction": "appEvent",
                            "needLocFGJK": "Yes",
                            "needLocT3": "Yes",
                            "locReady": true,
                            "ctaDeeplinkData": {
                                "data": {
                                    "aemID": "photoshop/using/replace-sky",
                                    "title": "Replace sky in your photos",
                                    "locale": "en_US",
                                    "contentModuleType": "cmHelpXDetail"
                                },
                                "source": "helpx-welcome"
                            },
                            "ctaData": null,
                        },
                        "sideImage": {
                            "type": "image",
                            "_path": "/content/dam/ccfirstmile/PHSP/en_US/assets/PS_FM_Photoediting-2third.jpg",
                            "_authorUrl": "https://author-p22655-e59433.adobeaemcloud.com/content/dam/ccfirstmile/PHSP/en_US/assets/PS_FM_Photoediting-2third.jpg",
                            "_publishUrl": "https://odin.adobe.com/content/dam/ccfirstmile/PHSP/en_US/assets/PS_FM_Photoediting-2third.jpg",
                            "width": null,
                            "height": null,
                            "mimeType": null
                        },
                        "locReady": true,
                        "_metadata": {
                            "stringMetadata": [
                                {
                                    "name": "title",
                                    "value": "Ps edit your photos - 2thirds"
                                },
                                {
                                    "name": "description",
                                    "value": ""
                                }
                            ],
                            "stringArrayMetadata": [],
                            "intMetadata": [],
                            "intArrayMetadata": [],
                            "floatMetadata": [],
                            "floatArrayMetadata": [],
                            "booleanMetadata": [],
                            "booleanArrayMetadata": [],
                            "calendarMetadata": [],
                            "calendarArrayMetadata": []
                        },
                        "_variations": [],
                        "_model": {
                            "_path": "/conf/ccfirstmile/settings/dam/cfm/models/component--standard-tout",
                            "title": "Component: Standard Tout"
                        }
                    }
                ],
                "_metadata": {
                    "stringMetadata": [
                        {
                            "name": "title",
                            "value": "Custom Content Configuration Cards"
                        },
                        {
                            "name": "description",
                            "value": ""
                        }
                    ],
                    "stringArrayMetadata": [],
                    "intMetadata": [],
                    "intArrayMetadata": [],
                    "floatMetadata": [],
                    "floatArrayMetadata": [],
                    "booleanMetadata": [],
                    "booleanArrayMetadata": [],
                    "calendarMetadata": [],
                    "calendarArrayMetadata": []
                },
                "_variations": [],
                "_model": {
                    "_path": "/conf/ccfirstmile/settings/dam/cfm/models/customcontentconfigurationcards",
                    "title": "CustomContentConfigurationCards"
                }
            },
            "_references": [
                {
                    "type": "image",
                    "_path": "/content/dam/ccfirstmile/PHSP/en_US/assets/PS_FM_background-2third.jpg",
                    "_authorUrl": "https://author-p22655-e59433.adobeaemcloud.com/content/dam/ccfirstmile/PHSP/en_US/assets/PS_FM_background-2third.jpg",
                    "_publishUrl": "https://odin.adobe.com/content/dam/ccfirstmile/PHSP/en_US/assets/PS_FM_background-2third.jpg",
                    "width": null,
                    "height": null,
                    "mimeType": null
                }
            ]
        }
    }
};
/* harmony default export */ var MockCustomContentCardsDeepLink = (fakeCustomContentCardsDataOpenWhatsNew);

// CONCATENATED MODULE: ./src/components/__mocks__/customCards/MockCustomContentCardsLearnTab.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2022 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
const MockCustomContentCardsLearnTab_fakeCustomContentCardsDataOpenCMDN = {
    "data": {
        "customcontentconfigurationcardsByPath": {
            "item": {
                "_path": "/content/dam/ccfirstmile/PHSP/en_US/homeTwoBanner/Custom-content-configuration-cards",
                "_variation": "master",
                "componentName": "Custom Content Configuration Cards",
                "customCards": [
                    {
                        "_path": "/content/dam/ccfirstmile/PHSP/en_US/componentStandardTout/Ps-Find-more-in-app-tutorials---1third",
                        "componentName": "Ps Find more in-app tutorials - 1third",
                        "headerText": "Open Unified Panel HelpX",
                        "descriptionText": null,
                        "richDescriptionText": {
                            "html": null,
                            "markdown": null,
                            "plaintext": null,
                            "json": null
                        },
                        "primaryCTA": {
                            "_variation": "master",
                            "componentName": "Open Learn Tab",
                            "ctaText": "Go to Learn Tab",
                            "ctaAction": "appEvent",
                            "ctaURL": "https://adobe.com/learn",
                            "cta": "Go to Learn",
                            "needLocT3": "Yes",
                            "locReady": true,
                            "needLocFGJK": "Yes",
                            "ctaData": {
                                "panel": "learn"
                            },
                            "style": "blue",
                            "ctaEvent": "navigateToPanel",
                            "ctaLog": "Open learn tab",
                            "title": "Go to Learn Blue",
                            "ctaDeeplinkData": null,
                            "neuralFilterSettingsJson": null,
                            "ctaURLNeedsNoAuth": false,
                        },
                        "sideImage": {
                            "type": "image",
                            "_path": "/content/dam/ccfirstmile/PHSP/en_US/assets/PS_FM_LinktoLearn-1third.jpg",
                            "_authorUrl": "https://author-p22655-e59433.adobeaemcloud.com/content/dam/ccfirstmile/PHSP/en_US/assets/PS_FM_LinktoLearn-1third.jpg",
                            "_publishUrl": "https://publish-p22655-e59433.adobeaemcloud.com/content/dam/ccfirstmile/PHSP/en_US/assets/PS_FM_LinktoLearn-1third.jpg",
                            "width": null,
                            "height": null,
                            "mimeType": null
                        },
                        "locReady": true,
                        "_metadata": {
                            "stringMetadata": [
                                {
                                    "name": "title",
                                    "value": "Ps Find more in-app tutorials - 1third"
                                },
                                {
                                    "name": "description",
                                    "value": ""
                                }
                            ],
                            "stringArrayMetadata": [],
                            "intMetadata": [],
                            "intArrayMetadata": [],
                            "floatMetadata": [],
                            "floatArrayMetadata": [],
                            "booleanMetadata": [],
                            "booleanArrayMetadata": [],
                            "calendarMetadata": [],
                            "calendarArrayMetadata": []
                        },
                        "_variations": [],
                        "_model": {
                            "_path": "/conf/ccfirstmile/settings/dam/cfm/models/component--standard-tout",
                            "title": "Component: Standard Tout"
                        }
                    },
                    {
                        "_path": "/content/dam/ccfirstmile/PHSP/en_US/componentStandardTout/Ps-edit-your-photos---2thirds",
                        "_variation": "master",
                        "componentName": "Ps edit your photos - 2thirds",
                        "headerText": "Go to Learn Tab",
                        "descriptionText": "Tweak lighting and colors and remove things.",
                        "richDescriptionText": {
                            "html": null,
                            "markdown": null,
                            "plaintext": null,
                            "json": null
                        },
                        "primaryCTA": {
                            "_variation": "master",
                            "componentName": "Open Learn Tab",
                            "ctaText": "Go to Learn Tab",
                            "ctaAction": "appEvent",
                            "ctaURL": "https://adobe.com/learn",
                            "cta": "Go to Learn",
                            "needLocT3": "Yes",
                            "locReady": true,
                            "needLocFGJK": "Yes",
                            "ctaData": {
                                "panel": "learn"
                            },
                            "style": "blue",
                            "ctaEvent": "navigateToPanel",
                            "ctaLog": "Open learn tab",
                            "title": "Go to Learn Blue",
                            "ctaDeeplinkData": null,
                            "neuralFilterSettingsJson": null,
                            "ctaURLNeedsNoAuth": false,
                        },
                        "sideImage": {
                            "type": "image",
                            "_path": "/content/dam/ccfirstmile/PHSP/en_US/assets/PS_FM_Photoediting-2third.jpg",
                            "_authorUrl": "https://author-p22655-e59433.adobeaemcloud.com/content/dam/ccfirstmile/PHSP/en_US/assets/PS_FM_Photoediting-2third.jpg",
                            "_publishUrl": "https://odin.adobe.com/content/dam/ccfirstmile/PHSP/en_US/assets/PS_FM_Photoediting-2third.jpg",
                            "width": null,
                            "height": null,
                            "mimeType": null
                        },
                        "locReady": true,
                        "_metadata": {
                            "stringMetadata": [
                                {
                                    "name": "title",
                                    "value": "Ps edit your photos - 2thirds"
                                },
                                {
                                    "name": "description",
                                    "value": ""
                                }
                            ],
                            "stringArrayMetadata": [],
                            "intMetadata": [],
                            "intArrayMetadata": [],
                            "floatMetadata": [],
                            "floatArrayMetadata": [],
                            "booleanMetadata": [],
                            "booleanArrayMetadata": [],
                            "calendarMetadata": [],
                            "calendarArrayMetadata": []
                        },
                        "_variations": [],
                        "_model": {
                            "_path": "/conf/ccfirstmile/settings/dam/cfm/models/component--standard-tout",
                            "title": "Component: Standard Tout"
                        }
                    }
                ],
                "_metadata": {
                    "stringMetadata": [
                        {
                            "name": "title",
                            "value": "Custom Content Configuration Cards"
                        },
                        {
                            "name": "description",
                            "value": ""
                        }
                    ],
                    "stringArrayMetadata": [],
                    "intMetadata": [],
                    "intArrayMetadata": [],
                    "floatMetadata": [],
                    "floatArrayMetadata": [],
                    "booleanMetadata": [],
                    "booleanArrayMetadata": [],
                    "calendarMetadata": [],
                    "calendarArrayMetadata": []
                },
                "_variations": [],
                "_model": {
                    "_path": "/conf/ccfirstmile/settings/dam/cfm/models/customcontentconfigurationcards",
                    "title": "CustomContentConfigurationCards"
                }
            },
            "_references": [
                {
                    "type": "image",
                    "_path": "/content/dam/ccfirstmile/PHSP/en_US/assets/PS_FM_background-2third.jpg",
                    "_authorUrl": "https://author-p22655-e59433.adobeaemcloud.com/content/dam/ccfirstmile/PHSP/en_US/assets/PS_FM_background-2third.jpg",
                    "_publishUrl": "https://odin.adobe.com/content/dam/ccfirstmile/PHSP/en_US/assets/PS_FM_background-2third.jpg",
                    "width": null,
                    "height": null,
                    "mimeType": null
                }
            ]
        }
    }
};
/* harmony default export */ var MockCustomContentCardsLearnTab = (MockCustomContentCardsLearnTab_fakeCustomContentCardsDataOpenCMDN);

// CONCATENATED MODULE: ./src/components/__mocks__/customCards/MockCustomContentCardsWhatsNew.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2022 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
const MockCustomContentCardsWhatsNew_fakeCustomContentCardsDataOpenWhatsNew = {
    "data": {
        "customcontentconfigurationcardsByPath": {
            "item": {
                "_path": "/content/dam/ccfirstmile/PHSP/en_US/homeTwoBanner/Custom-content-configuration-cards",
                "_variation": "master",
                "componentName": "Custom Content Configuration Cards",
                "customCards": [
                    {
                        "_path": "/content/dam/ccfirstmile/PHSP/en_US/componentStandardTout/Ps-Find-more-in-app-tutorials---1third",
                        "componentName": "Ps Find more in-app tutorials - 1third",
                        "headerText": " Open What's New",
                        "descriptionText": null,
                        "richDescriptionText": {
                            "html": null,
                            "markdown": null,
                            "plaintext": null,
                            "json": null
                        },
                        "primaryCTA": {
                            "componentName": "What's New Link Ps Modal",
                            "style": "none",
                            "ctaText": "What's new",
                            "ctaAction": "appEvent",
                            "ctaURL": "https://helpx.adobe.com/photoshop/using/whats-new.html",
                            "ctaEvent": "FirstMileEvent.WhatsNewOverlay",
                            "ctaLog": "What's New LInk Ps Modal",
                            "needLocFGJK": "Yes",
                            "needLocT3": "Yes",
                            "locReady": true,
                            "ctaDeeplinkData": null,
                            "ctaData": null,
                        },
                        "sideImage": {
                            "type": "image",
                            "_path": "/content/dam/ccfirstmile/PHSP/en_US/assets/PS_FM_LinktoLearn-1third.jpg",
                            "_authorUrl": "https://author-p22655-e59433.adobeaemcloud.com/content/dam/ccfirstmile/PHSP/en_US/assets/PS_FM_LinktoLearn-1third.jpg",
                            "_publishUrl": "https://publish-p22655-e59433.adobeaemcloud.com/content/dam/ccfirstmile/PHSP/en_US/assets/PS_FM_LinktoLearn-1third.jpg",
                            "width": null,
                            "height": null,
                            "mimeType": null
                        },
                        "locReady": true,
                        "_metadata": {
                            "stringMetadata": [
                                {
                                    "name": "title",
                                    "value": "Ps Find more in-app tutorials - 1third"
                                },
                                {
                                    "name": "description",
                                    "value": ""
                                }
                            ],
                            "stringArrayMetadata": [],
                            "intMetadata": [],
                            "intArrayMetadata": [],
                            "floatMetadata": [],
                            "floatArrayMetadata": [],
                            "booleanMetadata": [],
                            "booleanArrayMetadata": [],
                            "calendarMetadata": [],
                            "calendarArrayMetadata": []
                        },
                        "_variations": [],
                        "_model": {
                            "_path": "/conf/ccfirstmile/settings/dam/cfm/models/component--standard-tout",
                            "title": "Component: Standard Tout"
                        }
                    },
                    {
                        "_path": "/content/dam/ccfirstmile/PHSP/en_US/componentStandardTout/Ps-edit-your-photos---2thirds",
                        "_variation": "master",
                        "componentName": "Ps edit your photos - 2thirds",
                        "headerText": "Open What's New",
                        "descriptionText": "Tweak lighting and colors and remove things.",
                        "richDescriptionText": {
                            "html": null,
                            "markdown": null,
                            "plaintext": null,
                            "json": null
                        },
                        "primaryCTA": {
                            "_path": "/content/dam/ccfirstmile/PHSP/en_US/textLink/View-tutorials-Edit-your-photos",
                            "_variation": "master",
                            "title": "What's New Link Ps Modal",
                            "style": "none",
                            "cta": "What's new",
                            "ctaAction": "appEvent",
                            "ctaText": "What's new",
                            "ctaURL": "https://helpx.adobe.com/photoshop/using/whats-new.html",
                            "ctaEvent": "FirstMileEvent.WhatsNewOverlay",
                            "ctaLog": "What's New LInk Ps Modal",
                            "needLocFGJK": "Yes",
                            "needLocT3": "Yes",
                            "locReady": true,
                            "neuralFilterSettingsJson": null,
                            "ctaURLNeedsNoAuth": null,
                            "_metadata": {
                                "stringMetadata": [
                                    {
                                        "name": "title",
                                        "value": "View tutorials Edit your photos"
                                    },
                                    {
                                        "name": "description",
                                        "value": ""
                                    }
                                ],
                                "stringArrayMetadata": [],
                                "intMetadata": [],
                                "intArrayMetadata": [],
                                "floatMetadata": [],
                                "floatArrayMetadata": [],
                                "booleanMetadata": [],
                                "booleanArrayMetadata": [],
                                "calendarMetadata": [],
                                "calendarArrayMetadata": []
                            },
                            "_variations": [],
                            "_model": {
                                "_path": "/conf/ccfirstmile/settings/dam/cfm/models/textlink",
                                "title": "Textlink"
                            }
                        },
                        "sideImage": {
                            "type": "image",
                            "_path": "/content/dam/ccfirstmile/PHSP/en_US/assets/PS_FM_Photoediting-2third.jpg",
                            "_authorUrl": "https://author-p22655-e59433.adobeaemcloud.com/content/dam/ccfirstmile/PHSP/en_US/assets/PS_FM_Photoediting-2third.jpg",
                            "_publishUrl": "https://odin.adobe.com/content/dam/ccfirstmile/PHSP/en_US/assets/PS_FM_Photoediting-2third.jpg",
                            "width": null,
                            "height": null,
                            "mimeType": null
                        },
                        "locReady": true,
                        "_metadata": {
                            "stringMetadata": [
                                {
                                    "name": "title",
                                    "value": "Ps edit your photos - 2thirds"
                                },
                                {
                                    "name": "description",
                                    "value": ""
                                }
                            ],
                            "stringArrayMetadata": [],
                            "intMetadata": [],
                            "intArrayMetadata": [],
                            "floatMetadata": [],
                            "floatArrayMetadata": [],
                            "booleanMetadata": [],
                            "booleanArrayMetadata": [],
                            "calendarMetadata": [],
                            "calendarArrayMetadata": []
                        },
                        "_variations": [],
                        "_model": {
                            "_path": "/conf/ccfirstmile/settings/dam/cfm/models/component--standard-tout",
                            "title": "Component: Standard Tout"
                        }
                    }
                ],
                "_metadata": {
                    "stringMetadata": [
                        {
                            "name": "title",
                            "value": "Custom Content Configuration Cards"
                        },
                        {
                            "name": "description",
                            "value": ""
                        }
                    ],
                    "stringArrayMetadata": [],
                    "intMetadata": [],
                    "intArrayMetadata": [],
                    "floatMetadata": [],
                    "floatArrayMetadata": [],
                    "booleanMetadata": [],
                    "booleanArrayMetadata": [],
                    "calendarMetadata": [],
                    "calendarArrayMetadata": []
                },
                "_variations": [],
                "_model": {
                    "_path": "/conf/ccfirstmile/settings/dam/cfm/models/customcontentconfigurationcards",
                    "title": "CustomContentConfigurationCards"
                }
            },
            "_references": [
                {
                    "type": "image",
                    "_path": "/content/dam/ccfirstmile/PHSP/en_US/assets/PS_FM_background-2third.jpg",
                    "_authorUrl": "https://author-p22655-e59433.adobeaemcloud.com/content/dam/ccfirstmile/PHSP/en_US/assets/PS_FM_background-2third.jpg",
                    "_publishUrl": "https://odin.adobe.com/content/dam/ccfirstmile/PHSP/en_US/assets/PS_FM_background-2third.jpg",
                    "width": null,
                    "height": null,
                    "mimeType": null
                }
            ]
        }
    }
};
/* harmony default export */ var MockCustomContentCardsWhatsNew = (MockCustomContentCardsWhatsNew_fakeCustomContentCardsDataOpenWhatsNew);

// CONCATENATED MODULE: ./src/components/__mocks__/customCards/MockCustomContentCardsRequestAccess.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2022 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
const MockCustomContentCardsRequestAccess_fakeCustomContentCardsDataOpenWhatsNew = {
    "data": {
        "customcontentconfigurationcardsByPath": {
            "item": {
                "_path": "/content/dam/ccfirstmile/PHSP/en_US/homeTwoBanner/Custom-content-configuration-cards",
                "_variation": "master",
                "componentName": "Custom Cards",
                "customCards": [
                    {
                        "_path": "/content/dam/ccfirstmile/PHSP/en_US/componentStandardTout/Ps-Find-more-in-app-tutorials---100third",
                        "componentName": "Request Access",
                        "headerText": "Request access to Premiere Pro",
                        "descriptionText": null,
                        "richDescriptionText": {
                            "html": null,
                            "markdown": null,
                            "plaintext": null,
                            "json": null
                        },
                        "primaryCTA": {
                            "componentName": "Request Access",
                            "style": "none",
                            "ctaText": "Request Access to PPRO",
                            "ctaAction": "appEvent",
                            "ctaEvent": "FirstMileEvent.CCDDeepLink",
                            "ctaLog": "Request Access",
                            "ctaData": {
                                "deepLinkType": "accc.app.deepLink.request",
                                "sapCode": "PPRO"
                            },
                            "needLocFGJK": "Yes",
                            "needLocT3": "Yes",
                            "locReady": true,
                            "ctaDeeplinkData": null,
                        },
                        "sideImage": {
                            "type": "image",
                            "_path": "/content/dam/ccfirstmile/PHSP/en_US/assets/PS_FM_LinktoLearn-1third.jpg",
                            "_authorUrl": "https://author-p22655-e59433.adobeaemcloud.com/content/dam/ccfirstmile/PHSP/en_US/assets/PS_FM_LinktoLearn-1third.jpg",
                            "_publishUrl": "https://publish-p22655-e59433.adobeaemcloud.com/content/dam/ccfirstmile/PHSP/en_US/assets/PS_FM_LinktoLearn-1third.jpg",
                            "width": null,
                            "height": null,
                            "mimeType": null
                        },
                        "locReady": true,
                        "_metadata": {
                            "stringMetadata": [
                                {
                                    "name": "title",
                                    "value": "Ps Find more in-app tutorials - 1third"
                                },
                                {
                                    "name": "description",
                                    "value": ""
                                }
                            ],
                            "stringArrayMetadata": [],
                            "intMetadata": [],
                            "intArrayMetadata": [],
                            "floatMetadata": [],
                            "floatArrayMetadata": [],
                            "booleanMetadata": [],
                            "booleanArrayMetadata": [],
                            "calendarMetadata": [],
                            "calendarArrayMetadata": []
                        },
                        "_variations": [],
                        "_model": {
                            "_path": "/conf/ccfirstmile/settings/dam/cfm/models/component--standard-tout",
                            "title": "Component: Standard Tout"
                        }
                    }
                ],
                "_metadata": {
                    "stringMetadata": [
                        {
                            "name": "title",
                            "value": "Custom Content Configuration Cards"
                        },
                        {
                            "name": "description",
                            "value": ""
                        }
                    ],
                    "stringArrayMetadata": [],
                    "intMetadata": [],
                    "intArrayMetadata": [],
                    "floatMetadata": [],
                    "floatArrayMetadata": [],
                    "booleanMetadata": [],
                    "booleanArrayMetadata": [],
                    "calendarMetadata": [],
                    "calendarArrayMetadata": []
                },
                "_variations": [],
                "_model": {
                    "_path": "/conf/ccfirstmile/settings/dam/cfm/models/customcontentconfigurationcards",
                    "title": "CustomContentConfigurationCards"
                }
            },
            "_references": [
                {
                    "type": "image",
                    "_path": "/content/dam/ccfirstmile/PHSP/en_US/assets/PS_FM_background-2third.jpg",
                    "_authorUrl": "https://author-p22655-e59433.adobeaemcloud.com/content/dam/ccfirstmile/PHSP/en_US/assets/PS_FM_background-2third.jpg",
                    "_publishUrl": "https://odin.adobe.com/content/dam/ccfirstmile/PHSP/en_US/assets/PS_FM_background-2third.jpg",
                    "width": null,
                    "height": null,
                    "mimeType": null
                }
            ]
        }
    }
};
/* harmony default export */ var MockCustomContentCardsRequestAccess = (MockCustomContentCardsRequestAccess_fakeCustomContentCardsDataOpenWhatsNew);

// CONCATENATED MODULE: ./src/components/__mocks__/customCards/MockCustomContentALLCards.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2022 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/






const neuralFilterCard = MockCustomContentCardsNeuralFilter.data.customcontentconfigurationcardsByPath.item.customCards[0];
const cmdnCard = MockCustomContentCardsCMDN.data.customcontentconfigurationcardsByPath.item.customCards[1];
const deeplinkCard = MockCustomContentCardsDeepLink.data.customcontentconfigurationcardsByPath.item.customCards[1];
const learnTabCard = MockCustomContentCardsLearnTab.data.customcontentconfigurationcardsByPath.item.customCards[1];
const whatsNewCard = MockCustomContentCardsWhatsNew.data.customcontentconfigurationcardsByPath.item.customCards[1];
const requestAccess = MockCustomContentCardsRequestAccess.data.customcontentconfigurationcardsByPath.item.customCards[0];
const fakeCustomContentALLCardsData = {
    "data": {
        "customcontentconfigurationcardsByPath": {
            "item": {
                "_path": "/content/dam/ccfirstmile/PHSP/en_US/homeTwoBanner/Custom-content-configuration-cards",
                "_variation": "master",
                "componentName": "Custom Content Configuration Cards",
                "customCards": [
                    {
                        "_path": "/content/dam/ccfirstmile/PHSP/en_US/componentStandardTout/Ps-Find-more-in-app-tutorials---1third",
                        "componentName": "Ps Find more in-app tutorials - 1third",
                        "headerText": "Open Unified Panel HelpX",
                        "descriptionText": null,
                        "richDescriptionText": {
                            "html": null,
                            "markdown": null,
                            "plaintext": null,
                            "json": null
                        },
                        "primaryCTA": {
                            "_path": "/content/dam/ccfirstmile/PHSP/en_US/textLink/Go-to-Learn-Clear-Ps",
                            "componentName": "Helpx Unified Panel",
                            "ctaText": "open Unified Panel helpx",
                            "ctaURL": "https://helpx.adobe.com/photoshop/tutorials.html",
                            "ctaAction": "appEvent",
                            "ctaEvent": "navigateToPanel",
                            "ctaData": null,
                            "ctaDeeplinkData": {
                                "data": {
                                    "view": "browse",
                                    "nujAttribute": "nuj-photo-editing",
                                    "contentModuleType": "cmInAppLearn"
                                },
                                "source": "in-app-welcome"
                            },
                            "locReady": true,
                            "neuralFilterSettingsJson": null,
                            "_metadata": {
                                "stringMetadata": [
                                    {
                                        "name": "title",
                                        "value": "Unified Panel"
                                    },
                                    {
                                        "name": "description",
                                        "value": ""
                                    }
                                ],
                                "stringArrayMetadata": [],
                                "intMetadata": [],
                                "intArrayMetadata": [],
                                "floatMetadata": [],
                                "floatArrayMetadata": [],
                                "booleanMetadata": [],
                                "booleanArrayMetadata": [],
                                "calendarMetadata": [],
                                "calendarArrayMetadata": []
                            },
                            "_variations": [],
                            "_model": {
                                "_path": "/conf/ccfirstmile/settings/dam/cfm/models/textlink",
                                "title": "Textlink"
                            }
                        },
                        "sideImage": {
                            "type": "image",
                            "_path": "/content/dam/ccfirstmile/PHSP/en_US/assets/PS_FM_LinktoLearn-1third.jpg",
                            "_authorUrl": "https://author-p22655-e59433.adobeaemcloud.com/content/dam/ccfirstmile/PHSP/en_US/assets/PS_FM_LinktoLearn-1third.jpg",
                            "_publishUrl": "https://publish-p22655-e59433.adobeaemcloud.com/content/dam/ccfirstmile/PHSP/en_US/assets/PS_FM_LinktoLearn-1third.jpg",
                            "width": null,
                            "height": null,
                            "mimeType": null
                        },
                        "locReady": true,
                        "_metadata": {
                            "stringMetadata": [
                                {
                                    "name": "title",
                                    "value": "Ps Find more in-app tutorials - 1third"
                                },
                                {
                                    "name": "description",
                                    "value": ""
                                }
                            ],
                            "stringArrayMetadata": [],
                            "intMetadata": [],
                            "intArrayMetadata": [],
                            "floatMetadata": [],
                            "floatArrayMetadata": [],
                            "booleanMetadata": [],
                            "booleanArrayMetadata": [],
                            "calendarMetadata": [],
                            "calendarArrayMetadata": []
                        },
                        "_variations": [],
                        "_model": {
                            "_path": "/conf/ccfirstmile/settings/dam/cfm/models/component--standard-tout",
                            "title": "Component: Standard Tout"
                        }
                    }, {
                        ...deeplinkCard,
                        "_path": "/content/dam/ccfirstmile/PHSP/en_US/componentStandardTout/Ps-Find-more-in-app-tutorials---2third",
                    },
                    { ...cmdnCard,
                        "_path": "/content/dam/ccfirstmile/PHSP/en_US/componentStandardTout/Ps-Find-more-in-app-tutorials---3third",
                    },
                    { ...learnTabCard,
                        "_path": "/content/dam/ccfirstmile/PHSP/en_US/componentStandardTout/Ps-Find-more-in-app-tutorials---4third",
                    },
                    { ...whatsNewCard,
                        "_path": "/content/dam/ccfirstmile/PHSP/en_US/componentStandardTout/Ps-Find-more-in-app-tutorials---5third",
                    },
                    { ...neuralFilterCard,
                        "_path": "/content/dam/ccfirstmile/PHSP/en_US/componentStandardTout/Ps-Find-more-in-app-tutorials---6third",
                    },
                    { ...requestAccess,
                        "_path": "/content/dam/ccfirstmile/PHSP/en_US/componentStandardTout/Ps-Find-more-in-app-tutorials---7third",
                    }
                ],
                "_metadata": {
                    "stringMetadata": [
                        {
                            "name": "title",
                            "value": "Custom Content Configuration Cards"
                        },
                        {
                            "name": "description",
                            "value": ""
                        }
                    ],
                    "stringArrayMetadata": [],
                    "intMetadata": [],
                    "intArrayMetadata": [],
                    "floatMetadata": [],
                    "floatArrayMetadata": [],
                    "booleanMetadata": [],
                    "booleanArrayMetadata": [],
                    "calendarMetadata": [],
                    "calendarArrayMetadata": []
                },
                "_variations": [],
                "_model": {
                    "_path": "/conf/ccfirstmile/settings/dam/cfm/models/customcontentconfigurationcards",
                    "title": "CustomContentConfigurationCards"
                }
            },
            "_references": [
                {
                    "type": "image",
                    "_path": "/content/dam/ccfirstmile/PHSP/en_US/assets/PS_FM_background-2third.jpg",
                    "_authorUrl": "https://author-p22655-e59433.adobeaemcloud.com/content/dam/ccfirstmile/PHSP/en_US/assets/PS_FM_background-2third.jpg",
                    "_publishUrl": "https://odin.adobe.com/content/dam/ccfirstmile/PHSP/en_US/assets/PS_FM_background-2third.jpg",
                    "width": null,
                    "height": null,
                    "mimeType": null
                }
            ]
        }
    }
};
/* harmony default export */ var MockCustomContentALLCards = (fakeCustomContentALLCardsData);

// CONCATENATED MODULE: ./src/components/SidekickController.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var SidekickController_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;
};
var SidekickController_metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};




















const SidekickController_logger = Logger["a" /* default */].get('SidekickController');
const SidekickController_styles = __webpack_require__("uyeT");
const sidekickStore = MainStore["mainStore"].sidekickStore;
const HOME_EXPERIENCE = {
    label: 'Default Experience',
    value: 'default',
    jsonName: 'HomeExperience',
    cardType: null,
};
const CAROUSEL_TYPE_SELECTOR = [
    HOME_EXPERIENCE,
    {
        label: 'Standard',
        value: CAROUSEL_TYPE.DEFAULT,
        jsonName: 'HomeExperience',
        cardType: CAROUSEL_CARD_TYPE.ROW,
    },
    {
        label: 'Multiple',
        value: CAROUSEL_TYPE.MULTIPLE_CARDS_CAROUSEL,
        jsonName: 'MultipleHomeExperience',
        cardType: CAROUSEL_CARD_TYPE.MULTIPLE_CARDS,
    },
    {
        label: 'Right',
        value: CAROUSEL_TYPE.RIGHT_TOUT_CAROUSEL,
        jsonName: 'RightCornerRecommendations',
        cardType: CAROUSEL_CARD_TYPE.RIGHT_TOUT,
    },
    {
        label: 'Vertical',
        value: CAROUSEL_TYPE.VERTICAL_CAROUSEL,
        jsonName: 'HomeExperience',
        cardType: CAROUSEL_CARD_TYPE.INTENT_CARD,
    },
];
const CAROUSEL_CARD_NUMBER_SELECTOR = [
    {
        label: '2',
        value: 'Two',
    },
    {
        label: '4',
        value: 'Four',
    },
    {
        label: '5',
        value: 'Five',
    },
    {
        label: '7',
        value: 'Seven',
    },
];
// Utility Methods
const split = string => string.replace(/([A-Z])/g, ' $1');
const capitalize = string => string.charAt(0).toUpperCase() + string.slice(1);
const titleCase = string => capitalize(split(string));
const fetchAndParse = async (url) => {
    let jsonResponse;
    try {
        const response = await fetch(url);
        jsonResponse = await response.json();
    }
    catch (error) {
        SidekickController_logger.error('Error parsing override: ', error);
    }
    return jsonResponse;
};
// Configuration Stuff
const overrideFields = ['homeExperience', 'toast', 'toastId', 'whatsNew', 'toastalId', 'tutorial', 'assetsPath'];
const overrideFunctions = {
    homeExperience: sidekickStore.setHomeExperienceOverride,
    toast: sidekickStore.setToastOverride,
    toastId: sidekickStore.setToastIdOverride,
    whatsNew: sidekickStore.setWhatsNewOverride,
    toastalId: sidekickStore.setToastalIdOverride,
    tutorial: sidekickStore.setTutorialOverride,
    assetsPath: sidekickStore.setAssetsPathOverride,
};
const initialState = overrideFields.reduce((state, field) => ({ ...state, [field]: '' }), {});
const initialCarouselState = {
    home: HOME_EXPERIENCE,
    learn: CAROUSEL_CARD_NUMBER_SELECTOR[1],
};
const PLEASE_FILL_ASSETS_PATH = '⚠ PLEASE FILL IN YOUR ASSETS PATH';
let SidekickController_SidekickController = class SidekickController extends react["Component"] {
    constructor(props) {
        super(props);
        this.overrides = initialState;
        this.carouselExperience = initialCarouselState;
        this.isLoading = false;
        this.isAnalyticsEnabled = false;
        this.isCustomCardsEnabled = false;
        this.updateField = field => value => {
            this.overrides[field] = value;
            localstorage["a" /* default */].setGlobalItem(field, value);
        };
        this.setOverrides = async () => {
            this.isLoading = true;
            await Promise.all(overrideFields
                .filter(field => !!this.overrides[field].length)
                .map(async (field) => {
                const overrideContent = ['toastId', 'toastalId', 'assetsPath'].includes(field)
                    ? this.overrides[field]
                    : await fetchAndParse(this.overrides[field]);
                overrideFunctions[field](overrideContent);
            }));
            if (this.overrides['tutorial'].length) {
                Ututs["a" /* default */].apply(MainStore["mainStore"].sidekickStore.tutorialOverride);
            }
            this.isLoading = false;
        };
        this.clearOverrides = async () => {
            const reinitCarousel = !!this.overrides['tutorial'].length;
            this.overrides = initialState;
            this.carouselExperience = initialCarouselState;
            // disable custom cards, if
            if (this.isCustomCardsEnabled) {
                MainStore["mainStore"].sidekickStore.setCustomContentOverride(null);
                this.isCustomCardsEnabled = false;
            }
            overrideFields.forEach(field => {
                localstorage["a" /* default */].setGlobalItem(field, null);
                overrideFunctions[field](null);
            });
            reinitCarousel && Ututs["a" /* default */].apply(await Ututs["a" /* default */].fetch());
        };
        this.setCarouselExperience = (selection, setCustomCards = false) => {
            this.previousCarouselSelection = selection || HOME_EXPERIENCE;
            const assetsPath = this.overrides.assetsPath;
            const basePath = `file://${assetsPath}carousel/carousel`;
            if (!assetsPath) {
                this.overrides.assetsPath = PLEASE_FILL_ASSETS_PATH;
                return;
            }
            if (setCustomCards) {
                MainStore["mainStore"].sidekickStore.setCustomContentOverride(MockCustomContentALLCards);
                this.overrides.tutorial = `${basePath}CustomCards.json`;
                this.setOverrides();
            }
            else {
                if (selection.value === HOME_EXPERIENCE.value) {
                    this.clearOverrides().then(() => {
                        // save assets path so we don't have to type it again
                        // when switching back to carousel experience
                        this.overrides.assetsPath = assetsPath;
                        sidekickStore.setCarouselCardType(null);
                    });
                }
                else {
                    const targetSelection = selection.cardType ? 'home' : 'learn';
                    this.carouselExperience[targetSelection] = selection;
                    this.overrides.homeExperience = `${basePath}${this.carouselExperience.home.jsonName}.json`;
                    if (!this.isCustomCardsEnabled) {
                        MainStore["mainStore"].sidekickStore.setCustomContentOverride(null);
                        this.overrides.tutorial = `${basePath}${this.carouselExperience.learn.value}Cards.json`;
                    }
                    if (targetSelection === 'home') {
                        sidekickStore.setCarouselCardType(selection.cardType);
                    }
                    this.setOverrides();
                }
            }
        };
        this.renderOverrideField = field => (react["createElement"]("span", { className: SidekickController_styles.formControl, key: field },
            react["createElement"](FieldLabel_default.a, { label: titleCase(field), labelFor: "contentful" }),
            react["createElement"](Textfield_default.a, { "data-qe-id": field, name: "contentful", value: this.overrides[field], onChange: this.updateField(field) })));
        this.renderButton = (label, onClick) => (react["createElement"]("div", { className: SidekickController_styles.row },
            react["createElement"](Button_default.a, { "data-qe-id": label, onClick: onClick, tabIndex: -1 },
                react["createElement"]("span", null, label))));
        this.renderSelection = (label, options, value, onChange, disabled = false) => (react["createElement"]("div", { className: SidekickController_styles.row },
            react["createElement"](OverlayTrigger_default.a, { trigger: "hover", placement: "bottom", delayShow: 300 },
                react["createElement"](FieldLabel_default.a, { label: label, labelFor: "contentful" }),
                react["createElement"](Popover_default.a, { className: SidekickController_styles.popover }, "For this to work you must have the assets folder added to Assets Path. The folder should contain assets and carousel folders with the respective json files.")),
            react["createElement"](Select_default.a, { "data-qe-id": label, name: "contentful", value: value, onChange: (val) => onChange(options.find(option => option.value === val)), options: options, disabled: disabled })));
        overrideFields.forEach(field => (this.overrides[field] = localstorage["a" /* default */].getGlobalItem(field) || ''));
        this.setOverrides();
        applications["a" /* default */].isAnalyticsEnabled().then(isEnabled => (this.isAnalyticsEnabled = isEnabled));
    }
    async invalidateIMSToken() {
        if (applications["a" /* default */].isCloudProjectsEnabled) {
            const { sharedStore } = await __webpack_require__("BuQ2");
            const imsData = sharedStore.sharedStore.imsData;
            try {
                const token = imsData._token;
                const CLIENT_ID = imsBridge["c" /* default */].clientId;
                const result = await fetch(`https://ims-na1-stg1.adobelogin.com/ims/invalidate_token/v2?token_type=access_token&token=${token}&client_id=${CLIENT_ID}`, {
                    credentials: 'include',
                    headers: {
                        Authorization: `Bearer ${token}`,
                    },
                    method: 'POST',
                    mode: 'no-cors',
                });
                SidekickController_logger.log('The token is refreshed!', result);
            }
            catch (e) {
                SidekickController_logger.error('invalidateIMSToken: Could not invalidate IMS access token', e);
            }
        }
    }
    toggleGenuine() {
        const fakeProps = {
            position: 'CENTER',
            contentEnglish: `This version of ${applications["a" /* default */].name} is unauthorized and will be disabled very soon. Switch to genuine Adobe apps.`,
            contentLocalised: '',
            locale: '',
            ctaTextEnglish: 'Get Started',
            ctaTextLocalised: '',
            ctaUrl: 'https://www.adobe.com/genuine/ic-cx1-nc.html?gid=IC_LSX1GOLGYO&gtoken=9abf7f0c-5170-45d2-9e09-1d3fca4ccb55&cohortid=CCP&sdid=T32PLVB1',
            color: '#e68690',
            ackSuccessStr: 'HLS',
            ackFailureStr: 'HLF',
        };
        if (MainStore["mainStore"].isGenuine) {
            MainStore["mainStore"].setNonGenuineContent(fakeProps);
        }
        MainStore["mainStore"].setGenuine(!MainStore["mainStore"].isGenuine);
    }
    toggleUserIntentDialog() {
        const assetsPath = this.overrides.assetsPath;
        if (!assetsPath) {
            this.overrides.assetsPath = PLEASE_FILL_ASSETS_PATH;
            return;
        }
        this.overrides.tutorial = `file://${assetsPath}aiUserIntentDialog.json`;
        this.setOverrides();
    }
    render() {
        var _a;
        const version = "6.5.0.61" || false;
        const branchName = "HEAD" || false;
        return (react["createElement"]("div", { className: classnames_default()(SidekickController_styles.root, sidekickStore.sidekickVisible && SidekickController_styles.visible) },
            !sidekickStore.sidekickVisible && (react["createElement"](Button_default.a, { "data-qe-id": "sidekick_button", className: SidekickController_styles.toggleButton, variant: MainStore["mainStore"].shouldRenderFallback || sidekickStore.logs ? 'warning' : 'primary', onClick: sidekickStore.toggleSidekick, tabIndex: -1 },
                react["createElement"]("span", null, "Sidekick"))),
            react["createElement"]("div", { className: classnames_default()(SidekickController_styles.innerContainer) },
                "UXP Homescreen Version: ",
                version,
                react["createElement"]("div", { className: classnames_default()(SidekickController_styles.branchName), title: branchName },
                    "Branch: ",
                    branchName),
                overrideFields.map(key => this.renderOverrideField(key)),
                this.renderSelection('Carousel experience', CAROUSEL_TYPE_SELECTOR, this.carouselExperience.home.value, this.setCarouselExperience),
                this.renderSelection('Number of Cards', CAROUSEL_CARD_NUMBER_SELECTOR, this.carouselExperience.learn.value, this.setCarouselExperience, 
                // if custom content, disable selection of number of dynamic cards
                this.isCustomCardsEnabled),
                (Ututs["a" /* default */].hasValidRecommendations || this.overrides.assetsPath === PLEASE_FILL_ASSETS_PATH) && react["createElement"](Checkbox_default.a, { "data-qe-id": "customCards_cb", label: "Load Custom Cards", disabled: false, checked: this.isCustomCardsEnabled, onChange: e => {
                        this.isCustomCardsEnabled = e;
                        this.setCarouselExperience(this.previousCarouselSelection, e);
                    } }),
                react["createElement"](Checkbox_default.a, { "data-qe-id": "hide_recents_cb", label: "Hide Recents", onChange: e => {
                        MainStore["mainStore"].recentFilesStore.setArtificialLength(e ? 0 : -1);
                    } }),
                react["createElement"](Checkbox_default.a, { "data-qe-id": "frl_cb", label: "Simulate FRL", checked: MainStore["mainStore"].sidekickStore.frlOverride, onChange: e => {
                        MainStore["mainStore"].sidekickStore.setFRLOverride(!!e);
                        window.location.reload();
                    } }),
                applications["a" /* default */].isCloudProjectsEnabled &&
                    this.renderButton('Invalidate Projects IMS Token', this.invalidateIMSToken),
                this.renderButton('Set Overrides', this.setOverrides),
                this.renderButton('Clear Overrides', this.clearOverrides),
                this.renderButton('Reload', () => window.location.reload()),
                this.renderButton('Clear Local Storage', () => window.localStorage.clear()),
                this.renderButton('Enable CDO Coachmark', () => {
                    start_SharedSettings["a" /* default */].set('coachMark', 'hideCDOOnboarding', false);
                }),
                Ututs["a" /* default */].hasValidRecommendations &&
                    this.renderButton('Restart Carousel', () => MainStore["mainStore"].sidekickStore.setRestartSlideShow()),
                (applications["a" /* default */].id === 'PHXS' || applications["a" /* default */].id === 'ILST') &&
                    this.renderButton('Toggle Genuine', this.toggleGenuine),
                this.renderButton('Toggle User Intent', () => this.toggleUserIntentDialog()),
                react["createElement"]("div", { className: SidekickController_styles.row },
                    react["createElement"](Button_default.a, { onClick: () => MainStore["mainStore"].setShouldUseDefaultLayoutInFallbackMode(!MainStore["mainStore"].shouldUseDefaultLayoutInFallbackMode), tabIndex: -1, disabled: !!this.overrides.homeExperience },
                        react["createElement"]("span", null, "Toggle Fallback"))),
                react["createElement"]("div", { className: SidekickController_styles.row },
                    react["createElement"](FieldLabel_default.a, { label: "Host Flags" }),
                    react["createElement"](Checkbox_default.a, { "data-qe-id": "analytics_cb", label: "Analytics", disabled: true, checked: this.isAnalyticsEnabled }),
                    react["createElement"](Checkbox_default.a, { "data-qe-id": "sam_cb", label: "SAM", disabled: true, checked: (_a = window.cdoHost) === null || _a === void 0 ? void 0 : _a.featureEnabled('CloudDocUseSAM') }),
                    react["createElement"](Checkbox_default.a, { "data-qe-id": "projects_cb", label: "Projects", disabled: true, checked: applications["a" /* default */].isCloudProjectsEnabled })),
                MainStore["mainStore"].errorMessageForDefaultLayout !== '' && (react["createElement"]("div", { className: SidekickController_styles.errorText },
                    "Error cause for default layout:",
                    MainStore["mainStore"].errorMessageForDefaultLayout)),
                sidekickStore.logs !== '' && react["createElement"]("div", { className: SidekickController_styles.errorText }, sidekickStore.logs),
                react["createElement"](Button_default.a, { variant: MainStore["mainStore"].shouldRenderFallback ? 'warning' : 'primary', onClick: sidekickStore.toggleSidekick, "data-qe-id": "sidekick_close_button", tabIndex: 0 },
                    react["createElement"]("span", null, "Close")))));
    }
};
SidekickController_decorate([
    mobx_module["z" /* observable */],
    SidekickController_metadata("design:type", Object)
], SidekickController_SidekickController.prototype, "overrides", void 0);
SidekickController_decorate([
    mobx_module["z" /* observable */],
    SidekickController_metadata("design:type", Object)
], SidekickController_SidekickController.prototype, "carouselExperience", void 0);
SidekickController_decorate([
    mobx_module["z" /* observable */],
    SidekickController_metadata("design:type", Object)
], SidekickController_SidekickController.prototype, "isLoading", void 0);
SidekickController_decorate([
    mobx_module["z" /* observable */],
    SidekickController_metadata("design:type", Object)
], SidekickController_SidekickController.prototype, "isAnalyticsEnabled", void 0);
SidekickController_decorate([
    mobx_module["z" /* observable */],
    SidekickController_metadata("design:type", Object)
], SidekickController_SidekickController.prototype, "isCustomCardsEnabled", void 0);
SidekickController_decorate([
    mobx_module["z" /* observable */],
    SidekickController_metadata("design:type", Object)
], SidekickController_SidekickController.prototype, "previousCarouselSelection", void 0);
SidekickController_SidekickController = SidekickController_decorate([
    index_module["e" /* observer */],
    SidekickController_metadata("design:paramtypes", [Object])
], SidekickController_SidekickController);
/* harmony default export */ var components_SidekickController = (SidekickController_SidekickController);

// CONCATENATED MODULE: ./src/components/Sidebar.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var Sidebar_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;
};
var Sidebar_metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};






















const Sidebar_styles = __webpack_require__("kwqu");
const ActionButton = (props = {}) => (react_default.a.createElement("div", { className: Sidebar_styles.actionButtonWrapper },
    react_default.a.createElement(Button_default.a, Object.assign({ className: classnames_default()({ [Sidebar_styles.actionButton]: applications["a" /* default */].id === 'SPRK' }), variant: props.variant || 'primary' }, props, { uxpUsenative: !props.quiet }), props.children)));
class Sidebar_SideNavigation extends react_default.a.Component {
    sendClickEvent(navbutton) {
        let containerAnalyticsParams = {};
        switch (navbutton) {
            case 'home':
                containerAnalyticsParams = Sophia["a" /* default */].getAnalyticsData(components_start_constants["k" /* default */].SURFACES.HOME);
                break;
            case 'learn':
                containerAnalyticsParams = Sophia["a" /* default */].getAnalyticsData(components_start_constants["k" /* default */].SURFACES.LEARN);
                break;
            default:
                break;
        }
        iaw_analytics["a" /* default */].logClickedEvent('left-nav', {
            subtype: navbutton,
            containerAnalyticsParams,
        });
    }
    render() {
        return (react_default.a.createElement(SideNav["SideNav"], { defaultValue: MainStore["mainStore"].prefs.currentRoute, value: this.props.selectedIndex ? this.props.items[this.props.selectedIndex].data : 'home', onSelect: value => {
                if (value instanceof Function) {
                    // Send property 'key' (name of tab) instead of 'data' (action associated with tab) to analytics
                    const index = this.props.items.findIndex(item => item.data === value);
                    const tab = this.props.items[index].key;
                    this.sendClickEvent(tab);
                    return value();
                }
                // only log the click if this is not the active route
                if (value && MainStore["mainStore"].prefs.currentRoute !== value) {
                    this.sendClickEvent(value);
                }
                this.props.onChange && this.props.onChange(value);
            }, className: Sidebar_styles.sideNav }, this.props.items.map(item => {
            if (item.data === '') {
                return item.content;
            }
            let shouldDisableItem = item.disabled;
            // override setting if debug mode is on
            if (applications["a" /* default */].debugMode) {
                shouldDisableItem = false;
            }
            // Render the Teams sidebar as a child of SideNavigation and render it out in the desired order
            if (item.key === 'projects') {
                return this.props.children;
            }
            return (react_default.a.createElement(SideNav["SideNavItem"], { key: item.key, value: item.data, "data-qe-id": item.qeId, id: item.qeId, renderLink: item.renderer, disabled: shouldDisableItem, className: classnames_default()({ [Sidebar_styles.navItem]: applications["a" /* default */].id === 'SPRK' }), icon: item.icon }, item.content));
        })));
    }
}
let Sidebar_Sidebar = class Sidebar extends react_default.a.Component {
    constructor(props) {
        super(props);
        this.handleOpenButton = () => {
            iaw_analytics["a" /* default */].logClickedEvent('sidebar-work-open', {
                viewType: this.context.panel && this.context.panel.currentItemView,
                filter: this.context.panel && this.context.panel.filterMode,
                sortOrder: this.context.panel && this.context.panel.sortMode,
            });
            applications["a" /* default */].launchOpenDocumentDialog();
        };
        this.handleCreateButton = () => {
            iaw_analytics["a" /* default */].logClickedEvent('sidebar-work-new', {
                viewType: this.context.panel && this.context.panel.currentItemView,
                filter: this.context.panel && this.context.panel.filterMode,
                sortOrder: this.context.panel && this.context.panel.sortMode,
            });
            applications["a" /* default */].launchNewDocumentDialog(undefined, true);
        };
        this.handleOpenRushButton = () => {
            iaw_analytics["a" /* default */].logClickedEvent('sidebar-work-open-rush', {
                viewType: this.context.panel && this.context.panel.currentItemView,
                filter: this.context.panel && this.context.panel.filterMode,
                sortOrder: this.context.panel && this.context.panel.sortMode,
            });
            applications["a" /* default */].launchAlternativeDialog(Drover["c" /* openRushDoc */]);
        };
        this.handleCreateTeamProjectsButton = () => {
            iaw_analytics["a" /* default */].logClickedEvent('sidebar-work-create-teamprojects', {
                viewType: this.context.panel && this.context.panel.currentItemView,
                filter: this.context.panel && this.context.panel.filterMode,
                sortOrder: this.context.panel && this.context.panel.sortMode,
            });
            applications["a" /* default */].launchAlternativeDialog(Drover["b" /* newTPDoc */]);
        };
        this.handleOpenTeamProjectsButton = () => {
            iaw_analytics["a" /* default */].logClickedEvent('sidebar-work-open-teamprojects', {
                viewType: this.context.panel && this.context.panel.currentItemView,
                filter: this.context.panel && this.context.panel.filterMode,
                sortOrder: this.context.panel && this.context.panel.sortMode,
            });
            applications["a" /* default */].launchAlternativeDialog(Drover["d" /* openTPDoc */]);
        };
        this.onCoachMarkConfirm = () => {
            // percentageCompleted value in (0, 1] represents the percentage of the total coachmark steps the user
            // has gone through before dismissing the coachmarks dialog
            iaw_analytics["a" /* default */].logClickedEvent('coachMark', {
                subcategory: 'Cdo-Onboarding',
                subtype: 'dismiss',
                percentageCompleted: 1,
            });
            start_SharedSettings["a" /* default */].set('coachMark', 'hideCDOOnboarding', true);
            document.body.classList.remove('coachMarkPresent');
        };
        if (applications["a" /* default */].isCloudProjectsEnabled) {
            this.TeamsSideBarLazy = Object(react["lazy"])(() => __webpack_require__.e(/* import() */ 4).then(__webpack_require__.bind(null, "Ne8F")));
        }
    }
    get store() {
        return this.context.store;
    }
    get searchStore() {
        return this.context.store.searchStore;
    }
    componentDidMount() {
        let desiredPage = this.store.prefs.currentRoute;
        if (desiredPage === 'learn' && Ututs["a" /* default */].webTutorials.length === 0) {
            desiredPage = MainStore["RouteName"].home;
        }
        if (desiredPage !== this.store.prefs.currentRoute) {
            this.store.navigate(desiredPage);
        }
    }
    handleToastalButton() {
        var _a, _b, _c;
        const { activeToastal } = MainStore["mainStore"];
        iaw_analytics["a" /* default */].logClickedEvent((_a = components_start_constants["k" /* default */].TOASTAL_INGEST_EVENTS) === null || _a === void 0 ? void 0 : _a[activeToastal], {
            workflow: MainStore["mainStore"].prefs.currentRoute,
            subtype: (_b = components_start_constants["k" /* default */].TOASTAL_INGEST_SUBTYPE) === null || _b === void 0 ? void 0 : _b[activeToastal],
        });
        handleCallToAction({ ctaEvent: (_c = components_start_constants["k" /* default */].TOASTAL_CTA_EVENTS) === null || _c === void 0 ? void 0 : _c[activeToastal], ctaAction: 'appEvent' }, this.props.containerAnalytics, this.props.logEvent, this);
    }
    render() {
        const bi = applications["a" /* default */].buttons;
        const { formatMessage } = this.props.intl;
        let tabs = [
            {
                key: 'home',
                qeId: 'tab-item__home',
                content: formatMessage({ id: 'start_home' }),
                data: 'home',
                icon: react_default.a.createElement(Home_default.a, null),
            },
        ];
        let showLearnTab = () => {
            let showCondition = Ututs["a" /* default */].webTutorials.length > 0 && applications["a" /* default */].shouldShowLearnTab;
            if (applications["a" /* default */].id === 'SPRK') {
                return ((showCondition && !MainStore["mainStore"].shouldRenderFallback) ||
                    MainStore["mainStore"].sidekickStore.learnExperienceOverride);
            }
            else {
                return showCondition;
            }
        };
        if (showLearnTab()) {
            const learnTabData = applications["a" /* default */].learnTabData;
            tabs.push({
                key: 'learn',
                qeId: 'tab-item__learn',
                content: formatMessage({ id: learnTabData.content }),
                data: learnTabData.data,
                icon: (react_default.a.createElement("span", { className: Sidebar_styles.learnIcon },
                    react_default.a.createElement(Smock_Learn_18_N_default.a, null))),
            });
        }
        // we need to display the Projects menu only if the host sent it
        const hasProjectsTab = Object.keys(applications["a" /* default */].tabs).find(tab => tab === 'projects');
        // filtering the Projects tab, since it will be shown separately
        const yourWorkTabs = Object.keys(applications["a" /* default */].tabs)
            .filter(key => applications["a" /* default */].tabs[key] && key !== 'recentfile' && (!MainStore["mainStore"].user.isFRL || key !== 'ccphotos'))
            .filter(key => !(MainStore["mainStore"].user.cloudDocsDisabled &&
            ['ccphotos', components_start_constants["c" /* CDO_TABS */].CDO, components_start_constants["c" /* CDO_TABS */].DELETED, components_start_constants["c" /* CDO_TABS */].SHARED_WITH_YOU].includes(key)))
            .sort((key, key2) => {
            return applications["a" /* default */].tabs[key].order - applications["a" /* default */].tabs[key2].order;
        })
            .map(key => {
            const panel = applications["a" /* default */].tabs[key];
            return {
                key: panel.type,
                content: formatMessage({ id: panel.label }),
                qeId: 'tab-item__' + panel.label,
                data: panel.action ? panel.action : panel.type,
                disabled: panel.disabled,
                icon: panel.icon,
            };
        });
        if (yourWorkTabs.length > 1) {
            tabs.push({
                key: 'section',
                qeId: 'tab-item__start_your_work',
                content: (react_default.a.createElement(Heading_default.a, { key: "section-break", size: 5, className: Sidebar_styles.sidebarHeading },
                    react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "start_your_work" }))),
                data: '',
            });
        }
        tabs = tabs.concat(yourWorkTabs);
        let selectedIndex = tabs.findIndex(tab => tab.data === this.store.prefs.currentRoute);
        // if the route does not exist then we fallback to Home tab
        // this can happen for instance when based on user preferences some tabs are not shown
        // like it is the case for Cloud documents tabs
        if (selectedIndex === -1) {
            selectedIndex = 0;
            this.store.navigate('home');
        }
        // show coach mark if user has at least one cloud document
        // and they are not already in the CDO tab
        // and they have not already dismissed the coach mark on this machine
        const showCDOCoachMark = !MainStore["mainStore"].user.cloudDocsDisabled &&
            applications["a" /* default */].isCloudDocumentsEnabled &&
            applications["a" /* default */].userHasCloudDoc &&
            this.store.prefs.currentRoute !== 'cdo' &&
            !start_SharedSettings["a" /* default */].get('coachMark', 'hideCDOOnboarding') &&
            !this.searchStore.showSearch;
        if (showCDOCoachMark) {
            document.body.classList.add('coachMarkPresent');
        }
        const sidekickVisible = !MainStore["mainStore"].isLoading && applications["a" /* default */].debugMode;
        const hasBottomActions = bi.create_button_open_rush || bi.create_button_new_production || bi.create_button_open_production;
        return (react_default.a.createElement("div", { "data-qe-id": "components-sidebar", id: "components-sidebar", className: classnames_default()(Sidebar_styles.root, Sidebar_styles.rootWithTopActions, {
                [Sidebar_styles.rootWithSidekick]: sidekickVisible,
                [Sidebar_styles.rootWithBottomActions]: hasBottomActions,
            }) },
            react_default.a.createElement("div", { className: classnames_default()(Sidebar_styles.innerContainer, 'ReactScrollViewNode') },
                react_default.a.createElement("div", { className: classnames_default()(Sidebar_styles.appActions, Sidebar_styles.appActionsStickToTop) },
                    react_default.a.createElement(ActionButton, { id: "sidebar-work--create", onClick: this.handleCreateButton, "data-qe-id": "sidebar-work--create", variant: "cta" },
                        react_default.a.createElement("span", { className: Sidebar_styles.appActionsText }, bi.create_button_newdocs && bi.create_button_newdocs.label ? (react_default.a.createElement("span", null, bi.create_button_newdocs.label)) : (react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "common_create" })))),
                    react_default.a.createElement(ActionButton, { id: "sidebar-work--open", onClick: this.handleOpenButton, "data-qe-id": "sidebar-work--open", quiet: true },
                        react_default.a.createElement("span", { className: Sidebar_styles.appActionsText }, bi.create_button_open && bi.create_button_open.label ? (react_default.a.createElement("span", null, bi.create_button_open.label)) : (react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "common_open..." }))))),
                react_default.a.createElement("div", { className: applications["a" /* default */].isCloudProjectsVisible ? Sidebar_styles.sideNavWrapper : Sidebar_styles.sideNavWrapperNoProjects },
                    react_default.a.createElement(Sidebar_SideNavigation, { items: tabs, onChange: routeName => {
                            this.store.navigate(routeName);
                        }, selectedIndex: selectedIndex }, applications["a" /* default */].isCloudProjectsVisible && hasProjectsTab && this.TeamsSideBarLazy && (react_default.a.createElement(react["Suspense"], { fallback: react_default.a.createElement("div", null) },
                        react_default.a.createElement(this.TeamsSideBarLazy, { className: Sidebar_styles.teamsSidebar, browseSession: this.props.browseSession }))))),
                !applications["a" /* default */].isCloudProjectsVisible && showCDOCoachMark && (react_default.a.createElement(CoachMark_default.a, { title: react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: `${applications["a" /* default */].id}_cloud_docs_onboarding_title` }), selector: "#tab-item__listview_cdo_tab_label", confirmLabel: react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: `${applications["a" /* default */].id}_cloud_docs_onboarding_confirm` }), onConfirm: this.onCoachMarkConfirm, "data-qe-id": "sidebar-cdo-coachmark", coachmarkPlacement: "right", trapFocus: false, quiet: true },
                    react_default.a.createElement("div", { className: Sidebar_styles.coachMarkContent },
                        react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: `${applications["a" /* default */].id}_cloud_docs_onboarding_message` })))),
                react_default.a.createElement("div", { className: classnames_default()(Sidebar_styles.appActionsStickToBottom) },
                    hasBottomActions && (react_default.a.createElement("div", null,
                        bi.create_button_new_production && bi.create_button_new_production.label && (react_default.a.createElement(ActionButton, { quiet: true, id: "sidebar-work--create-teamprojects", onClick: this.handleCreateTeamProjectsButton, "data-qe-id": "sidebar-work--create-teamprojects" }, bi.create_button_new_production && (react_default.a.createElement("span", null, bi.create_button_new_production.label)))),
                        bi.create_button_open_production && bi.create_button_open_production.label && (react_default.a.createElement(ActionButton, { quiet: true, id: "sidebar-work--open-teamprojects", onClick: this.handleOpenTeamProjectsButton, "data-qe-id": "sidebar-work--open-teamprojects" }, bi.create_button_open_production && (react_default.a.createElement("span", null, bi.create_button_open_production.label)))),
                        bi.create_button_open_rush && bi.create_button_open_rush.label && (react_default.a.createElement(ActionButton, { quiet: true, id: "sidebar-work--create-open-rush", onClick: this.handleOpenRushButton, "data-qe-id": "sidebar-work--create-open-rush" }, bi.create_button_open_rush && react_default.a.createElement("span", null, bi.create_button_open_rush.label))))),
                    !MainStore["mainStore"].isLoading && applications["a" /* default */].debugMode ? react_default.a.createElement(components_SidekickController, null) : null))));
    }
};
Sidebar_Sidebar.contextTypes = {
    store: prop_types_default.a.any,
    panel: prop_types_default.a.any,
};
Sidebar_Sidebar = Sidebar_decorate([
    index_module["e" /* observer */],
    Sidebar_metadata("design:paramtypes", [Object])
], Sidebar_Sidebar);
/* harmony default export */ var components_Sidebar = (Object(index_es["g" /* injectIntl */])(Sidebar_Sidebar));

// CONCATENATED MODULE: ./src/components/HorizontalDivider.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/


const HorizontalDivider_styles = __webpack_require__("U/0u");
class HorizontalDivider_HorizontalDivider extends react_default.a.Component {
    render() {
        const { top, bottom } = this.props;
        return (react_default.a.createElement("div", { "data-qe-id": "components-divider", id: "components-divider", className: classnames_default()(HorizontalDivider_styles.horizontalDivider, !!top && HorizontalDivider_styles.top, !!bottom && HorizontalDivider_styles.bottom) }));
    }
}

// CONCATENATED MODULE: ./src/components/Disclaimer.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/


const Disclaimer_styles = __webpack_require__("Lstb");
const Disclaimer = ({ id }) => (react_default.a.createElement("div", { "data-qe-id": "disclaimer-text", className: Disclaimer_styles.root },
    react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: id })));
/* harmony default export */ var components_Disclaimer = (Disclaimer);

// CONCATENATED MODULE: ./src/components/MultiLinksBanner.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/






const MultiLinksBanner_styles = __webpack_require__("KemG");
const MultiLinksBanner_sharedStyles = __webpack_require__("IXZT");
class MultiLinksBanner_MultiLinksBanner extends react["Component"] {
    openLink(data) {
        const { containerAnalytics, logEvent } = this.props;
        logEvent(containerAnalytics.component, {
            ...containerAnalytics.eventData,
            ctaEvent: data ? data.ctaEvent : null,
            ctaData: data ? data.ctaData : null,
            subtype: data ? data.ctaLog : null,
        }, 'click');
        platform["a" /* default */].openDefaultBrowser(data.ctaURL, Object(imsBridge["d" /* jumpKeyForAdobeAccount */])());
    }
    render() {
        const { headerText, descriptionText, links, sideImage, cardHeight, learn } = this.props;
        const inlineStyles = {
            backgroundColor: learn ? 'transparent' : 'initial',
        };
        return (react["createElement"]("div", { "data-qe-id": "components-multi-links-banner", id: "components-multi-links-banner", className: classnames_default()(MultiLinksBanner_styles.root, MultiLinksBanner_sharedStyles[cardHeight || 'short'], !sideImage && MultiLinksBanner_styles.center), style: { ...inlineStyles } },
            react["createElement"]("div", { className: MultiLinksBanner_styles.textContainer },
                react["createElement"]("div", { className: MultiLinksBanner_styles.headerText }, headerText),
                links ? (react["createElement"]("div", { className: MultiLinksBanner_styles.multilinks },
                    react["createElement"]("div", { className: MultiLinksBanner_styles.descriptionText }, descriptionText),
                    react["createElement"]("ul", { className: MultiLinksBanner_styles.links }, links.map((link, i) => (react["createElement"]("li", { key: `${link.fields.cta}_${i}` },
                        react["createElement"](Link_default.a, { onClick: () => this.openLink(link.fields) }, link.fields.cta))))))) : null),
            sideImage ? (react["createElement"]("div", { className: MultiLinksBanner_styles.iconContent },
                react["createElement"]("img", { src: Sophia["a" /* default */].getFullAssetPath(sideImage.fields.image.fields.file) }))) : null));
    }
}

// EXTERNAL MODULE: ./src/assets/S_Illu_IllustratorFirstMile_520x200.svg
var S_Illu_IllustratorFirstMile_520x200 = __webpack_require__("j3cW");
var S_Illu_IllustratorFirstMile_520x200_default = /*#__PURE__*/__webpack_require__.n(S_Illu_IllustratorFirstMile_520x200);

// EXTERNAL MODULE: ./src/assets/S_Illu_PremiereFirstMile_520x200.svg
var S_Illu_PremiereFirstMile_520x200 = __webpack_require__("4pLN");
var S_Illu_PremiereFirstMile_520x200_default = /*#__PURE__*/__webpack_require__.n(S_Illu_PremiereFirstMile_520x200);

// EXTERNAL MODULE: ./src/assets/S_Illu_AfterEffectsFirstMile_520x200.svg
var S_Illu_AfterEffectsFirstMile_520x200 = __webpack_require__("EBET");
var S_Illu_AfterEffectsFirstMile_520x200_default = /*#__PURE__*/__webpack_require__.n(S_Illu_AfterEffectsFirstMile_520x200);

// EXTERNAL MODULE: ./src/assets/S_Illu_DreamweaverFirstMile_520x200.svg
var S_Illu_DreamweaverFirstMile_520x200 = __webpack_require__("4yWb");
var S_Illu_DreamweaverFirstMile_520x200_default = /*#__PURE__*/__webpack_require__.n(S_Illu_DreamweaverFirstMile_520x200);

// EXTERNAL MODULE: ./src/assets/S_Illu_InDesignFirstMile_520x200.svg
var S_Illu_InDesignFirstMile_520x200 = __webpack_require__("S7gF");
var S_Illu_InDesignFirstMile_520x200_default = /*#__PURE__*/__webpack_require__.n(S_Illu_InDesignFirstMile_520x200);

// CONCATENATED MODULE: ./src/components/EmptyBanner.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/





const EmptyBanner_styles = __webpack_require__("4TGZ");
const EmptyBanner_sharedStyles = __webpack_require__("IXZT");





class EmptyBanner_EmptyBanner extends react_default.a.Component {
    constructor() {
        super(...arguments);
        this.getHardcodedIcon = (app) => {
            switch (app) {
                case 'ILST':
                    return react_default.a.createElement(S_Illu_IllustratorFirstMile_520x200_default.a, null);
                case 'PPRO':
                    return react_default.a.createElement(S_Illu_PremiereFirstMile_520x200_default.a, null);
                case 'AEFT':
                    return react_default.a.createElement(S_Illu_AfterEffectsFirstMile_520x200_default.a, null);
                case 'DRWV':
                    return react_default.a.createElement(S_Illu_DreamweaverFirstMile_520x200_default.a, null);
                case 'IDSN':
                    return react_default.a.createElement(S_Illu_InDesignFirstMile_520x200_default.a, null);
                default:
                    return null;
            }
        };
    }
    createNewDocument(data) {
        this.props.logEvent(this.props.containerAnalytics.component, {
            ...this.props.containerAnalytics.eventData,
            ctaEvent: data ? data.ctaEvent : null,
            ctaData: data ? data.ctaData : null,
            subtype: 'cmd-n',
        }, 'click');
        applications["a" /* default */].id === 'AEFT' ? applications["a" /* default */].launchSelectFileDialog() : applications["a" /* default */].launchNewDocumentDialog();
    }
    render() {
        const { headerText, primaryCta, grow, cardHeight } = this.props;
        return (react_default.a.createElement("div", { "data-qe-id": "components-empty-banner", id: "components-empty-banner", className: classnames_default()(EmptyBanner_styles.root, EmptyBanner_sharedStyles[cardHeight || 'xl'], !!grow && EmptyBanner_sharedStyles.grow) },
            react_default.a.createElement("div", { className: EmptyBanner_styles.emptyBanner },
                react_default.a.createElement("div", { className: EmptyBanner_styles.defaultIcon }, this.getHardcodedIcon(applications["a" /* default */].id)),
                react_default.a.createElement("header", { className: EmptyBanner_styles.header }, Object(ReplaceAppDataTemplates["a" /* default */])(headerText)),
                primaryCta && (react_default.a.createElement("div", { className: EmptyBanner_styles.ctaGroup },
                    react_default.a.createElement(Button_default.a, { variant: "cta", onClick: () => {
                            this.createNewDocument(primaryCta);
                        } },
                        react_default.a.createElement("span", null, primaryCta.ctaText)))))));
    }
}

// CONCATENATED MODULE: ./src/js/start/SetGetUtilities.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
function getValue(propertyPath, obj) {
    const properties = Array.isArray(propertyPath) ? propertyPath : propertyPath.split('.');
    if (properties.length > 1) {
        if (!obj.hasOwnProperty(properties[0]) || typeof obj[properties[0]] !== 'object')
            obj[properties[0]] = {};
        return getValue(properties.slice(1), obj[properties[0]]);
    }
    else {
        return obj[properties[0]];
    }
}
function setValue(propertyPath, value, obj) {
    const properties = Array.isArray(propertyPath) ? propertyPath : propertyPath.split('.');
    if (properties.length > 1) {
        if (!obj.hasOwnProperty(properties[0]) || typeof obj[properties[0]] !== 'object')
            obj[properties[0]] = {};
        return setValue(properties.slice(1), value, obj[properties[0]]);
    }
    else {
        obj[properties[0]] = value;
        return true;
    }
}

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/index.tsx + 12 modules
var ccx_cdo = __webpack_require__("t+6E");

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/ButtonGroup/index.js
var ButtonGroup = __webpack_require__("VXw4");
var ButtonGroup_default = /*#__PURE__*/__webpack_require__.n(ButtonGroup);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Search/index.js
var Search = __webpack_require__("sfxt");
var Search_default = /*#__PURE__*/__webpack_require__.n(Search);

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/ClassicGridView/index.js
var ClassicGridView = __webpack_require__("VZJT");
var ClassicGridView_default = /*#__PURE__*/__webpack_require__.n(ClassicGridView);

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/ViewList/index.js
var ViewList = __webpack_require__("EpQn");
var ViewList_default = /*#__PURE__*/__webpack_require__.n(ViewList);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/DropdownButton/index.js
var DropdownButton = __webpack_require__("6y7h");
var DropdownButton_default = /*#__PURE__*/__webpack_require__.n(DropdownButton);

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/ChevronDown/index.js
var ChevronDown = __webpack_require__("uXGE");
var ChevronDown_default = /*#__PURE__*/__webpack_require__.n(ChevronDown);

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/Cloud/index.js
var Cloud = __webpack_require__("CKzN");
var Cloud_default = /*#__PURE__*/__webpack_require__.n(Cloud);

// EXTERNAL MODULE: ./src/throttle.ts
var throttle = __webpack_require__("QBtN");

// EXTERNAL MODULE: ./node_modules/fuse.js/dist/fuse.js
var fuse = __webpack_require__("/+cc");
var fuse_default = /*#__PURE__*/__webpack_require__.n(fuse);

// EXTERNAL MODULE: ./node_modules/@spectrum/spectrum-iconstore/icons/react/core/ArrowDownSmall.js
var ArrowDownSmall = __webpack_require__("h6/1");
var ArrowDownSmall_default = /*#__PURE__*/__webpack_require__.n(ArrowDownSmall);

// EXTERNAL MODULE: ./node_modules/@spectrum/spectrum-iconstore/icons/react/core/ArrowUpSmall.js
var ArrowUpSmall = __webpack_require__("PaYk");
var ArrowUpSmall_default = /*#__PURE__*/__webpack_require__.n(ArrowUpSmall);

// EXTERNAL MODULE: ./src/js/iaw/jsUtil.tsx
var jsUtil = __webpack_require__("KTUt");

// EXTERNAL MODULE: ./src/js/start/stores/RecentFilesStore.tsx
var RecentFilesStore = __webpack_require__("s0Tu");

// EXTERNAL MODULE: ./src/CDOWrapper/CDOSpectrumProvider.tsx
var CDOSpectrumProvider = __webpack_require__("Lo92");

// CONCATENATED MODULE: ./src/components/Recents.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var Recents_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;
};
var Recents_metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var Recents_1;






















const Recents_styles = __webpack_require__("gw7M");
const Recents_sharedStyles = __webpack_require__("IXZT");









const sharedCSSClasses = __webpack_require__("kMNh");
const SortArrow = ({ activeSortDirection }) => {
    return activeSortDirection === ccx_cdo["z" /* UXSortDir */].desc ? (react_default.a.createElement(ArrowDownSmall_default.a, { size: "XS", className: "sortDirectionIcon" })) : (react_default.a.createElement(ArrowUpSmall_default.a, { size: "XS", className: "sortDirectionIcon" }));
};
const FUSE_OPTIONS = {
    shouldSort: false,
    tokenize: false,
    threshold: 0.2,
    location: 0,
    distance: 1000,
    maxPatternLength: 32,
    minMatchCharLength: 1,
    keys: ['normalizedTitle'],
};
const isCloudDoc = doc => { var _a; return ((_a = doc.externalData) === null || _a === void 0 ? void 0 : _a.isCloudDoc) || (doc.path && doc.path.startsWith('/cloud-content/')) || doc.cloudUri; };
// If the input is an array with at least two elements, return the last element.
// Otherwise return an empty string
const lastOrEmpty = input => {
    if (!Array.isArray(input)) {
        return '';
    }
    if (input.length < 2) {
        return '';
    }
    return input.pop() || '';
};
const getFileType = jsUtil["a" /* default */].memoize((file) => {
    if (isCloudDoc(file)) {
        return 'CLOUD DOCUMENT';
    }
    if (typeof file.path !== 'string') {
        return '';
    }
    // First, split on path separator and take the last item, to get the actual filename
    // then split on dot and take the last item, which should be the file extension.
    // If at any point something goes wrong, we'll end up with an empty string
    // If someone has a file with no extension _and_ a dot in the filename, we'll render the kind incorrectly
    // but there's not much we can do about that (aside from ask PS to provide the file kind as metadata)
    const filePath = file.path.replace(/\\/g, '/').split('/'); // `path.sep` returns `/` on Windows sometimes - this is a more robust way to make sure we split the file path reliably.
    const fileName = lastOrEmpty(filePath);
    const lastPart = fileName ? fileName.split('.') : '';
    const extension = lastOrEmpty(lastPart);
    if (extension) {
        return components_start_constants["k" /* default */].FILETYPE_KIND[extension.toLowerCase()] || extension.toUpperCase();
    }
    else {
        return file.externalData && file.externalData.kind ? file.externalData.kind : '';
    }
});
const documentPathMetadata = (document, formatMessageFn) => {
    let content;
    let title = '';
    if (document.type === 'template') {
        content = formatMessageFn({ id: 'template_document' });
    }
    else if (document.type === 'local') {
        content = platform["a" /* default */].getParentDir(document.path);
        title = document.path || '';
    }
    else if (document.type === 'recovered') {
        content = document.recoveredDate;
    }
    else {
        // SpaceName should be displayed for space cloud docs instead of default string 'CLOUD DOCUMENT'
        const spaceName = document.space ? document.space.spaceName : null;
        content = spaceName || formatMessageFn({ id: 'recent_cloud_document' });
    }
    return (react_default.a.createElement("span", { className: Recents_styles.pathText, title: title }, content));
};
// Prefix path of Non-space cloud documents is /cloud-content
// Prefix path of CCI space cloud docs is /cloud-content/teams\u00a0/<Team Name>/<space name>/working_files/
// Prefix path of CCE space cloud docs is /content/assets/Everyone/<space name>/working_files/
// We match the regex for the three possible paths
// Paths may include preceeding slash or no slash at all
const cloudContentPathRegex = RegExp(/^(\/|)((cloud-content(\/teams\u00a0\/(.*)\/working_files)?)|(content\/assets\/(.*)\/working_files))/);
const IntlGridView = Object(index_es["g" /* injectIntl */])(ccx_cdo["n" /* GridView */]);
const IntlListView = Object(index_es["g" /* injectIntl */])(ccx_cdo["q" /* ListView */]);
let Recents_Recents = Recents_1 = class Recents extends react_default.a.Component {
    constructor() {
        super(...arguments);
        this.onItemClick = (item) => {
            const prefs = this.store.recentFilesStore.prefs;
            const data = {
                assetID: '',
                size: item.size,
                filter: prefs.filterString,
                sortOrder: prefs.sortDirection,
            };
            const containerAnalytics = {
                ...getValue(['containerAnalytics', 'eventData'], this.props),
            };
            iaw_analytics["a" /* default */].logClickedEvent('recents', { ...data, ...containerAnalytics });
            applications["a" /* default */].openDocument(item, item.type === 'template');
        };
        this.setFilterString = Object(throttle["a" /* default */])((value = '') => {
            this.prefs.setFilterString(value.trim().normalize());
        });
    }
    get store() {
        return this.context.store;
    }
    static sortAsc(key) {
        return (a, b) => {
            let x = a[key], y = b[key];
            if (key === 'kind') {
                x = getFileType(a);
                y = getFileType(b);
            }
            // `size` in IDocumentType is a string, which breaks size sorting.
            if (key === 'size') {
                x = Number(a[key]) || 0;
                y = Number(b[key]) || 0;
            }
            if (a[key] instanceof Date) {
                x = a[key].getTime();
                y = b[key].getTime();
            }
            if (typeof x === 'number') {
                return x - y;
            }
            else if (typeof x === 'string') {
                // make sure the expected string properties are not null/undefined
                if (!x || !y) {
                    return 0;
                }
                x = x.toLocaleLowerCase();
                y = y.toLocaleLowerCase();
                if (x < y) {
                    return -1;
                }
                if (x > y) {
                    return 1;
                }
                return 0;
            }
        };
    }
    static sortAscWithSecondaryFallback(key, secondarySortKey) {
        const primaryCompare = Recents_1.sortAsc(key);
        const secondaryCompare = Recents_1.sortAsc(secondarySortKey);
        return function (a, b) {
            return primaryCompare(a, b) || secondaryCompare(a, b);
        };
    }
    get sortBy() {
        // @ts-ignore
        return this.recentCdoStore.activeSort;
    }
    get secondarySortBy() {
        return 'title';
    }
    get sortDirection() {
        // @ts-ignore
        return this.recentCdoStore.activeSortDirection;
    }
    static filterItems(filterString, items) {
        return new fuse_default.a(items, FUSE_OPTIONS).search(filterString);
    }
    get sortedItems() {
        let items = applications["a" /* default */].recentFiles.slice(0, MainStore["mainStore"].recentFilesStore.realOrArtificialLength);
        const filter = this.prefs.filterString;
        if (filter) {
            items = Recents_1.filterItems(filter, items);
        }
        if (this.sortBy === 'none') {
            return items;
        }
        // remove cloud docs from recents if Cloud Documents Tab is disabled
        // TODO uncomment this if CDO team decide to remove cdo docd from Resents when Cloud Documents Tab is disabled
        // items = host.isCloudDocumentsEnabled ? items : items.filter(i => !!i.localUri);
        // @ts-ignore
        items = items.sort(Recents_1.sortAscWithSecondaryFallback(this.sortBy, this.secondarySortBy));
        if (this.sortDirection === ccx_cdo["z" /* UXSortDir */].desc) {
            items.reverse();
        }
        return items;
    }
    get prefs() {
        return this.store.recentFilesStore.prefs;
    }
    get recentCdoStore() {
        return MainStore["mainStore"].recentFilesStore.recentCdoStore;
    }
    get columns() {
        return [
            {
                key: 'modifiedDate',
                labelId: 'listview_recentfiles_table_modified_label',
            },
            {
                key: 'title',
                labelId: 'listview_recentfiles_table_name_label',
            },
            {
                key: 'size',
                labelId: 'listview_recentfiles_table_size_label',
            },
            {
                key: 'kind',
                labelId: 'listview_recentfiles_table_kind_label',
            },
        ];
    }
    get defaultRendition() {
        const thumbDirectory = './images/thumbs';
        const genericImage = `${thumbDirectory}/CCX_Start_DefaultThumb_Ps_Ai_Id.png`;
        const genericDoc = `${thumbDirectory}/CCX_Start_DefaultThumb_other.png`;
        return ['PHXS', 'ILST', 'IDSN'].includes(applications["a" /* default */].id) ? genericImage : genericDoc;
    }
    getLabelForColumn(key) {
        const column = this.columns.find(column => column.key === key);
        const id = column ? column.labelId : this.columns[0].labelId;
        return this.props.intl.formatMessage({ id });
    }
    onDocMounted(document) {
        if (document.stableUri && !applications["a" /* default */].recentFiles.includes(document)) {
            if (this.props.cdoStore) {
                // When can this be null/undefined?
                this.props.cdoStore.docStore.fetchRendition(document);
            }
        }
    }
    onDocUnmounted(document) {
        if (document.stableUri && !applications["a" /* default */].recentFiles.includes(document)) {
            if (this.props.cdoStore) {
                // When can this be null/undefined?
                this.props.cdoStore.docStore.cancelFetchRendition(document);
            }
        }
    }
    getCloudDocumentTooltip(document) {
        const parentPath = Object(ccx_cdo["D" /* deriveParentPath */])(document.path);
        const displayPath = parentPath ? parentPath.replace(cloudContentPathRegex, '') + '/' : '';
        return (react_default.a.createElement("div", { className: `${Recents_sharedStyles.flexCenterCenter} ${Recents_styles.cloudTooltip}` },
            react_default.a.createElement(Cloud_default.a, null),
            react_default.a.createElement("span", { className: Recents_styles.cloudDocumentTitle }, `${displayPath !== '/' ? displayPath : ''}${document.title}`)));
    }
    metadataFormat() {
        if (this.sortBy === 'none') {
            return document => documentPathMetadata(document, this.props.intl.formatMessage);
        }
        else {
            return this.sortBy === 'kind' || this.sortBy === ccx_cdo["y" /* UXSortBy */].title
                ? getFileType
                : document => {
                    switch (this.sortBy) {
                        case 'size':
                            return this.formatFileSize(document.size);
                        case 'modifiedDate':
                            return react_default.a.createElement(ccx_cdo["j" /* DateMetadata */], { date: document.modifiedDate });
                        default:
                            return getFileType(document);
                    }
                };
        }
    }
    get defaultDocumentIcons() {
        return applications["a" /* default */].id === 'SPRK' ? applications["a" /* default */].CDOProductData.defaultDocumentIcons : null;
    }
    formatFileSize(size) {
        const { intl } = this.props;
        let content;
        if (!size) {
            content = react_default.a.createElement(react_default.a.Fragment, null, "\u2013");
        }
        else {
            // TODO: ensure all models force `size` to be number
            const { displayValue, abbrev } = ccx_cdo["A" /* Utils */].formatFileSize(parseInt(size.toString(), 10), intl);
            content = react_default.a.createElement(react_default.a.Fragment, null, `${displayValue} ${abbrev}`);
        }
        return react_default.a.createElement("div", { id: "CDOListItem_Size" }, content);
    }
    render() {
        const elements = this.props.itemsOverride || this.sortedItems;
        const commonItemProps = {
            renderBadge: element => react_default.a.createElement(ccx_cdo["g" /* CloudStatusIcon */], { isOffline: !window.navigator.onLine, element: element }),
            renderTooltip: element => isCloudDoc(element)
                ? this.getCloudDocumentTooltip(element)
                : element.externalData && element.externalData.tip
                    ? element.externalData.tip
                    : element.path,
            onItemClickedHandler: this.props.customOnItemClick || this.onItemClick,
            defaultRendition: this.defaultRendition,
            onDocMounted: this.onDocMounted.bind(this),
            onDocUnmounted: this.onDocUnmounted.bind(this),
            focusManagementEnabled: true,
            renameTooltips: true,
            shouldRenderItemAsDisabled: item => !item.externalData.canOpen || (isCloudDoc(item) && !MainStore["mainStore"].online && !item.isCached),
            isOffline: !MainStore["mainStore"].online,
            defaultDocumentIcons: this.defaultDocumentIcons
        };
        const gridViewProps = {
            elements,
            selectedItems: new Set(),
            sortOptions: [],
            isHeaderVisible: false,
            autoHeight: true,
            overscanRowCount: elements.length,
            activeSort: this.prefs.activeSort,
            activeSortDirection: this.prefs.sortDirection,
            focusManagementEnabled: true,
            cardSize: applications["a" /* default */].homeScreenDisplayOptions.cdoRecentsCardSize,
        };
        const gridItemProps = {
            ...commonItemProps,
            onActionButtonClickHandler: () => { },
            isSelected: false,
            selectOnClick: false,
            metadataFormat: this.metadataFormat(),
        };
        const dateColumn = {
            id: 'date',
            uxSortColumn: 'modifiedDate',
            activeSortDirection: this.prefs.sortDirection,
            label: this.props.intl.formatMessage({ id: 'last_modified_column' }),
            isActiveSort: this.prefs.activeSort === 'modifiedDate',
            isSortDisabled: false,
            columnType: ccx_cdo["i" /* ColumnType */].Date,
            cellContentRender: element => react_default.a.createElement(index_es["d" /* FormattedRelative */], { value: element.modifiedDate }),
        };
        const kindColumn = {
            id: 'kind',
            uxSortColumn: 'kind',
            activeSortDirection: this.prefs.sortDirection,
            label: this.props.intl.formatMessage({ id: 'kind' }),
            isActiveSort: this.prefs.activeSort === 'kind',
            isSortDisabled: false,
            columnType: ccx_cdo["i" /* ColumnType */].Default,
            cellContentRender: element => getFileType(element),
        };
        const sizeColumn = {
            id: 'size',
            uxSortColumn: 'size',
            activeSortDirection: this.prefs.sortDirection,
            label: this.props.intl.formatMessage({ id: 'size_column' }),
            isActiveSort: this.prefs.activeSort === 'size',
            isSortDisabled: false,
            columnType: ccx_cdo["i" /* ColumnType */].Default,
            cellContentRender: element => react_default.a.createElement("div", { key: "size", className: "size column" }, this.formatFileSize(element.size))
        };
        const columns = ['Name', dateColumn, sizeColumn, kindColumn];
        const listViewProps = {
            columns,
            elements,
            selectedItems: new Set(),
            isSortable: true,
            activeSort: this.prefs.activeSort,
            activeSortDirection: this.prefs.sortDirection,
            autoHeight: true,
            overscanRowCount: elements.length,
            focusManagementEnabled: true,
            onSortSelected: sortKey => {
                if (sortKey === this.prefs.activeSort) {
                    this.prefs.setSortDirection(this.prefs.sortDirection === ccx_cdo["z" /* UXSortDir */].asc ? ccx_cdo["z" /* UXSortDir */].desc : ccx_cdo["z" /* UXSortDir */].asc);
                }
                else {
                    this.prefs.setActiveSort(sortKey);
                }
            },
        };
        const listItemProps = {
            ...commonItemProps,
            onSelectAllItems: () => { },
            onClickHandler: () => { },
            onItemSelected: () => { },
            disableThumbnails: applications["a" /* default */].isThumbnailsDisabled,
        };
        const cdoStrings = ccx_cdo["o" /* I18N */].getStringsForLocale(MainStore["mainStore"].cdoLocale);
        const isTemplateDoc = element => element.type === 'template';
        const message = elements.some(isTemplateDoc)
            ? 'listview_template_and_recent_tab_label'
            : 'listview_recent_tab_label';
        const headerLabel = this.props.intl.formatMessage({ id: message });
        const sortOptions = this.recentCdoStore.view === components_start_constants["k" /* default */].ITEM_VIEW_TYPES.GRID && (react_default.a.createElement("div", { className: Recents_styles.sortOptions },
            react_default.a.createElement("div", { className: Recents_styles.sortFieldLabel }, this.props.intl.formatMessage({ id: 'common_sort' })),
            react_default.a.createElement(DropdownButton_default.a, { "data-qe-id": "pieces-grid-dropdown", id: "pieces-grid-dropdown", 
                // @ts-ignore
                label: this.getLabelForColumn(this.recentCdoStore.activeSort), onSelect: value => {
                    this.prefs.setActiveSort(value);
                }, icon: react_default.a.createElement(ChevronDown_default.a, null) }, this.columns.map((column) => {
                return (react_default.a.createElement(Menu["MenuItem"], { key: column.key, "data-qe-id": 'pieces-sort-item-' + column.key, id: 'pieces-sort-item-' + column.key, 
                    // @ts-ignore
                    selected: this.recentCdoStore.activeSort === column.key, value: column.key }, this.props.intl.formatMessage({ id: column.labelId })));
            })),
            react_default.a.createElement("div", { className: Recents_styles.sortDivider }),
            react_default.a.createElement(Button_default.a, { className: Recents_styles.sortArrow, variant: "tool", 
                // @ts-ignore
                icon: react_default.a.createElement(SortArrow, { activeSortDirection: this.recentCdoStore.activeSortDirection }), onClick: evt => {
                    evt.stopPropagation();
                    this.prefs.setSortDirection(this.prefs.sortDirection === ccx_cdo["z" /* UXSortDir */].asc ? ccx_cdo["z" /* UXSortDir */].desc : ccx_cdo["z" /* UXSortDir */].asc);
                }, "data-qe-id": "pieces-sort-button", id: "pieces-sort-button", "data-qe-direction": this.recentCdoStore.activeSortDirection })));
        const gridListViewButtons = (react_default.a.createElement("span", { className: Recents_styles.modeButtons },
            react_default.a.createElement(ButtonGroup_default.a, { value: this.recentCdoStore.view, onChange: view => {
                    MainStore["mainStore"].recentFilesStore.prefs.setItemView(view);
                } },
                react_default.a.createElement(Button_default.a, { "data-qe-id": "pieces-list-view-toggle", id: "pieces-list-view-toggle", icon: react_default.a.createElement(ViewList_default.a, null), value: components_start_constants["k" /* default */].ITEM_VIEW_TYPES.LIST }),
                this.store.recentFilesStore.prefs.thumbnailViewEnabled && (react_default.a.createElement(Button_default.a, { "data-qe-id": "pieces-grid-view-toggle", id: "pieces-grid-view-toggle", style: { marginLeft: '8px' }, icon: react_default.a.createElement(ClassicGridView_default.a, null), value: components_start_constants["k" /* default */].ITEM_VIEW_TYPES.GRID })))));
        const filterRecents = (react_default.a.createElement("div", { className: Recents_styles.headerRight },
            react_default.a.createElement("label", { className: Recents_styles.filterLabel }, this.props.intl.formatMessage({
                id: 'common_filter',
            })),
            react_default.a.createElement(Search_default.a, { icon: null, 
                //  This is a workaround to handle the input and overlay overlap issues in Ps and Ai
                //  https://wiki.corp.adobe.com/pages/viewpage.action?spaceKey=UXP&title=Proposal+for+overlapping+textedit+and+overlays
                //  https://wiki.corp.adobe.com/display/UXP/PS+UXP+Overlay+Issues
                disableOnOverlay: true, "data-qe-id": "pieces-item-filter", id: "pieces-item-filter", className: Recents_styles.filterInput, defaultValue: this.prefs.filterString, onChange: (value = '', event) => {
                    event.keyCode === components_start_constants["k" /* default */].KEYS.ESC && event.stopPropagation();
                    this.setFilterString(value);
                }, quiet: true, placeholder: this.props.intl.formatMessage({
                    id: 'search_recent',
                }) })));
        const sortAndFilter = (react_default.a.createElement("div", { className: classnames_default()(Recents_styles.headerSort, this.recentCdoStore.view === components_start_constants["k" /* default */].ITEM_VIEW_TYPES.LIST && Recents_styles.headerSortAlignRight) },
            sortOptions,
            filterRecents));
        const showBusy = !applications["a" /* default */].isEmitResiliencyInitiativeEnabled &&
            this.store.recentFilesStore.processingState === RecentFilesStore["b" /* RecentsProcessingState */].PROCESSING;
        const recentsView = showBusy ? (react_default.a.createElement(ccx_cdo["a" /* Busy */], null)) : this.recentCdoStore.view === components_start_constants["k" /* default */].ITEM_VIEW_TYPES.GRID ? (react_default.a.createElement(IntlGridView, Object.assign({}, gridViewProps),
            react_default.a.createElement(ccx_cdo["m" /* GridItem */], Object.assign({}, gridItemProps)))) : (react_default.a.createElement(IntlListView, Object.assign({}, listViewProps),
            react_default.a.createElement(ccx_cdo["p" /* ListItem */], Object.assign({}, listItemProps))));
        return (
        // @ts-ignore
        react_default.a.createElement(index_es["e" /* IntlProvider */], { locale: MainStore["mainStore"].cdoLocale, messages: cdoStrings },
            react_default.a.createElement(index_module["b" /* Provider */], null,
                react_default.a.createElement(CDOSpectrumProvider["a" /* default */], null,
                    react_default.a.createElement("div", { className: `global-list-grid ${Recents_styles.root}` },
                        react_default.a.createElement("div", { "data-qe-id": "pieces-list-grid", id: "pieces-list-grid", className: Recents_styles.gridWrapper },
                            !this.props.itemsOverride ? (react_default.a.createElement("g", null,
                                react_default.a.createElement("div", { className: Recents_styles.header },
                                    react_default.a.createElement("span", { className: classnames_default()(Recents_styles.heading, sharedCSSClasses.sharedHeader) }, headerLabel),
                                    !showBusy &&
                                        applications["a" /* default */].homeScreenDisplayOptions.showRecentsGridListViewButtons &&
                                        gridListViewButtons),
                                !showBusy &&
                                    applications["a" /* default */].homeScreenDisplayOptions.showRecentsSortAndFilter &&
                                    sortAndFilter)) : null,
                            !applications["a" /* default */].homeScreenDisplayOptions.showScrollbarOnHome ? (react_default.a.createElement("div", { className: Recents_styles.scrollGridView }, recentsView)) : (recentsView)))))));
    }
};
Recents_Recents.contextTypes = {
    store: prop_types_default.a.any,
};
Recents_decorate([
    mobx_module["l" /* computed */],
    Recents_metadata("design:type", Object),
    Recents_metadata("design:paramtypes", [])
], Recents_Recents.prototype, "sortedItems", null);
Recents_Recents = Recents_1 = Recents_decorate([
    index_module["e" /* observer */]
], Recents_Recents);

/* harmony default export */ var components_Recents = (Object(index_es["g" /* injectIntl */])(Recents_Recents));

// EXTERNAL MODULE: ./src/debounce.ts
var debounce = __webpack_require__("5u51");

// CONCATENATED MODULE: ./src/components-start/header/UserProfile.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var UserProfile_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;
};
var UserProfile_metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};












const UserProfile_styles = __webpack_require__("W+/s");
let UserProfile_UserProfile = class UserProfile extends react["Component"] {
    constructor() {
        super(...arguments);
        this.avatar = '';
        this.openAccountInfo = Object(debounce["a" /* default */])(() => {
            let url = components_start_constants["k" /* default */].SERVICE_URL.ACCOUNT;
            const locale = i18n["a" /* default */].getLocalizedGoURLSuffix(applications["a" /* default */].language, 'account');
            // localize the go URL
            if (locale !== 'en') {
                url += locale + '/';
            }
            iaw_analytics["a" /* default */].logClickedEvent('acct-profile');
            platform["a" /* default */].openDefaultBrowser(url, Object(imsBridge["d" /* jumpKeyForAdobeAccount */])());
        });
    }
    get store() {
        return this.context.store;
    }
    render() {
        return this.store.user.isUserAvailable && !this.store.user.isFRL ? (react["createElement"]("div", { className: UserProfile_styles.root, onClick: this.openAccountInfo, "data-qe-id": "user-profile", id: "user-profile", tabIndex: 0 }, !this.store.isLoading && this.store.user.avatar && (react["createElement"]("div", { className: classnames_default()(UserProfile_styles.avatar, applications["a" /* default */].homeScreenDisplayOptions.showCircularAvatar && UserProfile_styles.circular), style: { backgroundImage: `url('${this.store.user.avatar}')` } })))) : null;
    }
};
UserProfile_UserProfile.contextTypes = {
    store: prop_types_default.a.any,
};
UserProfile_decorate([
    mobx_module["z" /* observable */],
    UserProfile_metadata("design:type", String)
], UserProfile_UserProfile.prototype, "avatar", void 0);
UserProfile_UserProfile = UserProfile_decorate([
    index_module["e" /* observer */]
], UserProfile_UserProfile);
/* harmony default export */ var header_UserProfile = (UserProfile_UserProfile);

// CONCATENATED MODULE: ./src/components/pieces/AccessibleButton.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/


class pieces_AccessibleButton_AccessibleButton extends react_default.a.Component {
    constructor() {
        super(...arguments);
        this.onClick = () => {
            this.props.onClick();
        };
        this.onKeyDown = evt => {
            const { onClick } = this.props;
            switch (evt.keyCode) {
                case components_start_constants["k" /* default */].KEYS.ENTER:
                    onClick();
                    break;
                case components_start_constants["k" /* default */].KEYS.SPACE:
                    onClick();
                    break;
                default:
                    // do nothing
                    break;
            }
        };
    }
    render() {
        const { props } = this;
        return (react_default.a.createElement("a", Object.assign({}, props, { tabIndex: this.props.disabled ? -1 : 0, onKeyDown: this.onKeyDown, onClick: this.onClick }), this.props.children));
    }
}

// CONCATENATED MODULE: ./src/components-start/header/BackButton.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var BackButton_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;
};
/**
 * Back button to get back to active file.
 */







const BackButton_styles = __webpack_require__("ftYA");
const BackImage = (react["createElement"]("svg", { xmlns: "http://www.w3.org/2000/svg", className: BackButton_styles.image, height: "10", id: "back-to-file", viewBox: "0 0 6 10", width: "6", "data-qe-id": "back-to-file-chevron" },
    react["createElement"]("path", { d: "M0,4.99978a.99733.99733,0,0,0,.29272.70583L4.28414,9.69544a.99781.99781,0,1,0,1.43571-1.3861L2.40929,5l3.286-3.28482a.98982.98982,0,0,0,.30449-.7154A.99781.99781,0,0,0,4.30865.28L.29272,4.29439A.991.991,0,0,0,0,4.99978Z", "data-name": "S MillerColumnsChevronPrevious", id: "S_MillerColumnsChevronPrevious" })));
let BackButton_BackButton = class BackButton extends react["Component"] {
    constructor() {
        super(...arguments);
        this._logger = Logger["a" /* default */].get('BackButton');
        this.goBackToFile = () => {
            this._logger.log('Back button clicked');
            applications["a" /* default */].hideHomeScreen();
        };
        this.getProductBuildLogo = () => {
            // Currently, the logo change should only work for IDSN
            const buildFlavour = applications["a" /* default */].id === 'IDSN' ? applications["a" /* default */].buildFlavour : 0;
            switch (buildFlavour) {
                case 0: // General Access (GA)
                    return `./images/products/product-rune-${applications["a" /* default */].id}.svg`;
                case 1: // Prerelease (PR) - currently, same as Beta 
                    return `./images/products/beta/product-rune-${applications["a" /* default */].id}.svg`;
                case 2: // Beta
                    return `./images/products/beta/product-rune-${applications["a" /* default */].id}.svg`;
                default: // General Access (GA)
                    return `./images/products/product-rune-${applications["a" /* default */].id}.svg`;
            }
        };
    }
    render() {
        return (
        // It is clickable only in Photoshop if there is no document open.
        react["createElement"](pieces_AccessibleButton_AccessibleButton, { "data-qe-id": "back-to-file", id: "back-to-file", className: classnames_default()([BackButton_styles.root, applications["a" /* default */].isBackButtonVisible && BackButton_styles.clickable]), onClick: this.goBackToFile, style: applications["a" /* default */].isBackButtonClickable ? { cursor: 'pointer' } : { cursor: 'auto' }, disabled: !applications["a" /* default */].isBackButtonClickable },
            applications["a" /* default */].isBackButtonVisible && BackImage,
            react["createElement"]("img", { className: BackButton_styles.productRune, src: this.getProductBuildLogo(), alt: "", "data-qe-id": 'product-rune__' + applications["a" /* default */].id, id: 'product-rune__' + applications["a" /* default */].id })));
    }
};
BackButton_BackButton = BackButton_decorate([
    index_module["e" /* observer */]
], BackButton_BackButton);
/* harmony default export */ var header_BackButton = (Object(index_es["g" /* injectIntl */])(BackButton_BackButton));

// CONCATENATED MODULE: ./src/components-start/header/StarterLabel.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2020 Adobe
 * All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var StarterLabel_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;
};
/**
 * Starter Label only for XD free user
 */





const StarterLabel_styles = __webpack_require__("IZQA");
let StarterLabel_StarterLabel = class StarterLabel extends react["Component"] {
    render() {
        const shouldShowUpgrade = !applications["a" /* default */].isStarterBannerEnabled;
        return (react["createElement"]("div", { className: StarterLabel_styles.root },
            react["createElement"]("span", { className: StarterLabel_styles.starter }, react["createElement"](index_es["c" /* FormattedMessage */], { id: "xd_starter_plan_label" })),
            shouldShowUpgrade && (react["createElement"]("span", { tabIndex: 0, className: StarterLabel_styles.box, onClick: () => {
                    iaw_analytics["a" /* default */].logClickedEvent('starter-badge');
                    applications["a" /* default */].invokeUpgradePlan();
                } }, react["createElement"](index_es["c" /* FormattedMessage */], { id: "xd_starter_upgrade_label" })))));
    }
};
StarterLabel_StarterLabel = StarterLabel_decorate([
    index_module["e" /* observer */]
], StarterLabel_StarterLabel);
/* harmony default export */ var header_StarterLabel = (Object(index_es["g" /* injectIntl */])(StarterLabel_StarterLabel));

// EXTERNAL MODULE: ./src/assets/XD_AlertCircle_Desktop.svg
var XD_AlertCircle_Desktop = __webpack_require__("7rzC");
var XD_AlertCircle_Desktop_default = /*#__PURE__*/__webpack_require__.n(XD_AlertCircle_Desktop);

// EXTERNAL MODULE: ./src/js/start/stores/UserStore.tsx
var UserStore = __webpack_require__("VExq");

// CONCATENATED MODULE: ./src/components-start/header/TeamTrialChiclet.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2020 Adobe
 * All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var TeamTrialChiclet_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;
};
/**
 * Team Trial chicklet component
 */











const TeamTrialChiclet_logger = Logger["a" /* default */].get('TeamTrialChiclet');
const TeamTrialChiclet_styles = __webpack_require__("bOQy");
let TeamTrialChiclet_TeamTrialChiclet = class TeamTrialChiclet extends react["Component"] {
    setTimer(msLeft) {
        if (this.timerId) {
            clearTimeout(this.timerId);
        }
        this.timerId = setTimeout(() => {
            this.forceUpdate();
        }, msLeft);
    }
    trialColor(remaining) {
        let color = TeamTrialChiclet_styles.blue;
        if (isNaN(remaining) || remaining <= components_start_constants["k" /* default */].TRIAL_CARD.ERROR_BEGIN) {
            color = TeamTrialChiclet_styles.red;
        }
        else if (remaining <= components_start_constants["k" /* default */].TRIAL_CARD.WARNING_BEGIN) {
            color = TeamTrialChiclet_styles.orange;
        }
        return color;
    }
    handleClickEvent() {
        // Build the worklow data that needs to be passed to the host
        const workflowData = {
            type: 'BANNER_WORKFLOW',
            version: '1',
            id: 'trial_expiry_warning_workflow',
            instanceId: 'trial_expiry_warning_workflow',
            response: 'banner_click::workflow_result',
        };
        applications["a" /* default */].handleCCTeamTrialChiclet(JSON.stringify(workflowData));
        // send analytics
        this.sendAnalyticsOnClick();
    }
    get teamTrialModeMessage() {
        // Get the message to be displayed based on Admin or delegate
        return MainStore["mainStore"].user.teamTrialMode === UserStore["b" /* TeamTrialMode */].ADMIN
            ? 'xd_team_trial_admin_msg'
            : 'xd_team_trial_delegate_msg';
    }
    get teamTrialUserModeStr() {
        return MainStore["mainStore"].user.teamTrialMode === UserStore["b" /* TeamTrialMode */].ADMIN ? 'admin' : 'delegate';
    }
    get teamTrialChicletData() {
        // Check if logged in user is part of a team trial or not
        if (!MainStore["mainStore"].user.isUserAvailable || !MainStore["mainStore"].user.isTeamTrialUser) {
            return null;
        }
        // Get the relationship profile
        const relationshipProfile = MainStore["mainStore"].user.legacyRelationshipProfile;
        const MILLISECONDS_PER_DAY = 24 * 60 * 60 * 1000;
        const currentTime = Math.max(relationshipProfile.profileGenerationTimestamp, new Date().valueOf());
        if (currentTime === relationshipProfile.profileGenerationTimestamp) {
            TeamTrialChiclet_logger.log('NGL: Using the server time on the team license chiclet. The current time is wrong');
        }
        // Calculate time left in the team trial
        const msLeft = relationshipProfile.licenseExpiryTimestamp
            ? new Date(relationshipProfile.licenseExpiryTimestamp).valueOf() - currentTime
            : 0;
        // Even 1ms over 1 day is counted as two days.
        // Therefore we calculate actual time left for the update
        // using the difference and flip it over after that.
        this.daysLeft = msLeft / MILLISECONDS_PER_DAY;
        this.daysLeft = Math.ceil(Math.max(this.daysLeft, 0));
        // Set a timer so as the component is updated when the day boundary crosses
        // Need to set this only when days left is greater than 0
        if (this.daysLeft > 0) {
            this.setTimer(msLeft - this.daysLeft * MILLISECONDS_PER_DAY + MILLISECONDS_PER_DAY);
        }
        return {
            backgroundStyle: this.trialColor(this.daysLeft * (MILLISECONDS_PER_DAY / 1000)),
            daysLeft: this.daysLeft,
            trialModeMesssage: this.teamTrialModeMessage,
        };
    }
    // Analytics to be sent when the trial banner is displayed on launch
    sendAnalyticsOnMount() {
        // Send first analytics event - with  trial mode
        // Send second analytics event - with number of days
        applications["a" /* default */].logCustomAnalytics('teamTrialChiclet', {
            type: 'mount',
            trialMode: this.teamTrialUserModeStr,
            days: this.daysLeft,
        });
    }
    // Analytics to be sent when the trial banner is clicked by the user
    sendAnalyticsOnClick() {
        applications["a" /* default */].logCustomAnalytics('teamTrialChiclet', {
            type: 'click',
            trialMode: this.teamTrialUserModeStr,
            days: this.daysLeft,
        });
    }
    componentDidMount() {
        // Send the analytics event - when trial banner is mounted
        // on the welcome screen
        this.sendAnalyticsOnMount();
    }
    render() {
        // If you sign in with a different user, the NGL profile is wrong and nothing
        // should be shown.
        // In case - App is going to sleep state then return null
        if (MainStore["mainStore"].user.state === UserStore["e" /* UserState */].USER_CHANGED || applications["a" /* default */].isSystemAsleep) {
            return null;
        }
        // Retrieve team trial info - mode, daysleft etc
        const data = this.teamTrialChicletData;
        if (!data) {
            return null;
        }
        // Retreive the localized team trial message
        const trialPeriodMessage = this.props.intl.formatMessage({ id: 'xd_team_trial_period_message' }, { daysLeft: data.daysLeft });
        let teamTrialPeriodMessage;
        if (data.daysLeft) {
            let trialPeriodMessageSplit = trialPeriodMessage.split(/(\d+)/).map(str => str === null || str === void 0 ? void 0 : str.trim());
            // Adding a safety to ensure that the split array is of size 3
            if (trialPeriodMessageSplit.length !== 3) {
                return null;
            }
            // Two sub cases :
            //     1. Trial days left numeric is at the left most in the translated string
            //     2. Trial days left numeric is in the middle or right of the translate string
            //     -> Extract the left and right parts to the number from the message  and use that info
            //        to do the required styling
            if (trialPeriodMessageSplit[0] === '') {
                // Case 1
                teamTrialPeriodMessage = (react["createElement"]("span", null,
                    react["createElement"]("span", { className: classnames_default()(TeamTrialChiclet_styles.teamTrialDays, data.backgroundStyle) }, data.daysLeft),
                    react["createElement"]("span", { className: TeamTrialChiclet_styles.separator }),
                    react["createElement"]("span", { className: TeamTrialChiclet_styles.teamTrialMessage }, trialPeriodMessageSplit[2])));
            }
            else {
                // Case 2
                teamTrialPeriodMessage = (react["createElement"]("span", null,
                    react["createElement"]("span", { className: TeamTrialChiclet_styles.teamTrialMessage }, trialPeriodMessageSplit[0]),
                    react["createElement"]("span", { className: TeamTrialChiclet_styles.separator }),
                    react["createElement"]("span", { className: classnames_default()(TeamTrialChiclet_styles.teamTrialDays, data.backgroundStyle) }, data.daysLeft),
                    trialPeriodMessageSplit[2] !== '' && (react["createElement"]("span", null,
                        react["createElement"]("span", { className: TeamTrialChiclet_styles.separator }),
                        react["createElement"]("span", { className: TeamTrialChiclet_styles.teamTrialMessage }, trialPeriodMessageSplit[2])))));
            }
        }
        // In case - trial days are left for the user : render based on the post procesing of the localized message
        // In case - trial has ended for the user : render the trial ended related info directly
        return (react["createElement"]("div", { className: TeamTrialChiclet_styles.root },
            !!data.daysLeft && teamTrialPeriodMessage,
            !data.daysLeft && (react["createElement"](Icon_default.a, { className: TeamTrialChiclet_styles.alertIcon },
                react["createElement"](XD_AlertCircle_Desktop_default.a, null))),
            !data.daysLeft && react["createElement"]("span", { className: TeamTrialChiclet_styles.separator }),
            !data.daysLeft && react["createElement"]("span", { className: TeamTrialChiclet_styles.teamTrialMessage }, trialPeriodMessage),
            react["createElement"]("div", { tabIndex: 0, className: TeamTrialChiclet_styles.box, onClick: () => this.handleClickEvent() }, this.props.intl.formatMessage({ id: data.trialModeMesssage }))));
    }
};
TeamTrialChiclet_TeamTrialChiclet = TeamTrialChiclet_decorate([
    index_module["e" /* observer */]
], TeamTrialChiclet_TeamTrialChiclet);
/* harmony default export */ var header_TeamTrialChiclet = (Object(index_es["g" /* injectIntl */])(TeamTrialChiclet_TeamTrialChiclet));

// EXTERNAL MODULE: ./src/components/Search/SearchIcon2019_24.svg
var SearchIcon2019_24 = __webpack_require__("QtsC");
var SearchIcon2019_24_default = /*#__PURE__*/__webpack_require__.n(SearchIcon2019_24);

// EXTERNAL MODULE: ./src/CDOWrapper/index.tsx + 1 modules
var CDOWrapper = __webpack_require__("3Vk1");

// EXTERNAL MODULE: ./src/assets/S_Gift_22_N.svg
var S_Gift_22_N = __webpack_require__("wVRb");
var S_Gift_22_N_default = /*#__PURE__*/__webpack_require__.n(S_Gift_22_N);

// EXTERNAL MODULE: ./node_modules/@spectrum/spectrum-iconstore/icons/react/Label/index.js
var Label = __webpack_require__("uhcb");
var Label_default = /*#__PURE__*/__webpack_require__.n(Label);

// EXTERNAL MODULE: ./src/components/helpers/DisposerManager.ts
var DisposerManager = __webpack_require__("JdbT");

// CONCATENATED MODULE: ./src/components-start/header/LicenseChiclet.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var LicenseChiclet_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;
};
var LicenseChiclet_metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
/**
 * NGL Chiclet to be shown in the start extension header.
 */















const LicenseChiclet_styles = __webpack_require__("PSXS");
const LicenseChiclet_sharedStyles = __webpack_require__("IXZT");
let LicenseChiclet_LicenseChiclet = class LicenseChiclet extends react["Component"] {
    constructor(props) {
        super(props);
        this.spinnerShown = false;
        this._logger = Logger["a" /* default */].get('LicenseChiclet');
        this._disposerManager = new DisposerManager["a" /* default */]();
        this._renderEventParams = () => {
            if (this.chicletData && this.eventId) {
                return [
                    this.eventId,
                    {
                        trialDaysRemaining: this.trialDays,
                        subtype: this.subtype,
                        containerAnalyticsParams: this.containerAnalyticsParams
                    }
                ];
            }
            return null;
        };
        this._disposerManager.register(Object(mobx_module["B" /* reaction */])(() => MainStore["mainStore"].user.RelationshipProfile, () => {
            const relationshipProfile = MainStore["mainStore"].user.legacyRelationshipProfile;
            if (relationshipProfile && relationshipProfile.workflowInProgress !== 'NONE' && this.spinnerTimerId) {
                this._logger.log('NGL: Workflow started. Hiding Spinner');
                clearTimeout(this.spinnerTimerId);
                this.spinnerTimerId = undefined;
                this.spinnerShown = false;
            }
        }));
    }
    handleChicletClick(responseId) {
        if (this.spinnerShown) {
            return;
        }
        // log click - add analytics params
        iaw_analytics["a" /* default */].logClickedEvent(this.eventId, {
            trialDaysRemaining: this.trialDays,
            subtype: this.subtype,
            containerAnalyticsParams: this.containerAnalyticsParams
        });
        imsBridge["c" /* default */].launchLicensingWorkflow(responseId);
        this.spinnerShown = true;
        this.spinnerTimerId = setTimeout(() => {
            this.spinnerTimerId = undefined;
            this.spinnerShown = false;
        }, 3000);
    }
    trialColor(remaining) {
        let color = '';
        if (isNaN(remaining) || remaining <= 0) {
            color = LicenseChiclet_styles.red;
        }
        else if (remaining <= components_start_constants["k" /* default */].TRIAL_CARD.ERROR_BEGIN) {
            color = LicenseChiclet_styles.red;
        }
        else if (remaining <= components_start_constants["k" /* default */].TRIAL_CARD.WARNING_BEGIN) {
            color = LicenseChiclet_styles.orange;
        }
        else {
            color = LicenseChiclet_styles.blue;
        }
        return color;
    }
    setTimer(msLeft) {
        if (this.timerId) {
            clearTimeout(this.timerId);
        }
        this.timerId = setTimeout(() => {
            this.forceUpdate();
        }, msLeft);
    }
    get containerAnalyticsParams() {
        var _a;
        const analyticsParams = (_a = MainStore["mainStore"].user.legacyRelationshipProfile) === null || _a === void 0 ? void 0 : _a.analyticsParams;
        // only set the fields if the analyticsParams object is populated. Otherwise, use undefined to help the IngestHandlers know they don't need to add analytics to the payload
        if (analyticsParams && Object.keys(analyticsParams).length > 0) {
            return analyticsParams;
        }
        return undefined;
    }
    get chicletData() {
        // Check if user is logged in
        if (!MainStore["mainStore"].user.isUserAvailable) {
            return null;
        }
        // Get the primary profile
        const relationshipProfile = MainStore["mainStore"].user.legacyRelationshipProfile;
        if (!relationshipProfile) {
            return null;
        }
        // Switch Plan
        if (relationshipProfile.switchPlanInfo) {
            const { type, isPromo, offerId } = relationshipProfile.switchPlanInfo;
            const messageIdBase = `ngl_switch_plan_${type.toLowerCase()}`;
            this.eventId = null;
            return {
                switchPlanChiclet: true,
                isPromo,
                offerId,
                backgroundStyle: LicenseChiclet_styles.blue,
                message: `${messageIdBase}_message`,
                action: `${messageIdBase}_action`,
                response: `switch_plan_${type.toLowerCase()}`,
            };
        }
        //CC teams trial expired
        if (relationshipProfile.appEntitlementStatus === 'TEAM_TRIAL_EXPIRED') {
            this.eventId = 'license';
            this.trialDays = 0;
            let action = 'license_learn_more';
            if (relationshipProfile.chicletMode == 'ADMIN_MODE') {
                action = 'license_buy_now';
                this.subtype = 'cct-admin-trial-expired';
            }
            else {
                this.subtype = 'cct-delegate-trial-expired';
            }
            return {
                backgroundStyle: LicenseChiclet_styles.red,
                message: 'license_trial_expired',
                action: action,
                response: 'trial_expired_workflow',
            };
        }
        // Trial Expired or Subscription Ended
        if (relationshipProfile.appEntitlementStatus && relationshipProfile.appEntitlementStatus === 'EXPIRED') {
            // Trial Expired
            if (MainStore["mainStore"].user.LegacyProfile.licenseType === UserStore["a" /* LicenseType */].TRIAL) {
                this.eventId = 'license';
                this.subtype = 'trial-expired';
                this.trialDays = 0;
                return {
                    backgroundStyle: LicenseChiclet_styles.red,
                    message: 'license_trial_expired',
                    action: 'license_buy_now',
                    response: 'trial_expired_workflow',
                };
            }
            // Subscription Ended
            if (MainStore["mainStore"].user.LegacyProfile.licenseType === UserStore["a" /* LicenseType */].SUBSCRIPTION) {
                this.eventId = 'license-resolve';
                this.subtype = 'subscription-expired';
                return {
                    backgroundStyle: LicenseChiclet_styles.red,
                    message: 'license_subscription_ended',
                    action: 'license_renew_now',
                    response: 'subscription_expired_workflow',
                };
            }
        }
        // Billing Error
        if (relationshipProfile.billingStatus && relationshipProfile.billingStatus !== 'NORMAL') {
            this.eventId = 'license-resolve';
            this.subtype = 'billing-error'; // default
            let response = '';
            let message = 'license_billing_error';
            // show a red chiclet for billing issues by default
            let backgroundStyle = LicenseChiclet_styles.red;
            switch (relationshipProfile.billingStatus) {
                case 'BILL_FAILURE':
                    response = 'bill_failure_workflow';
                    this.subtype = 'billing-failure';
                    break;
                case 'AUTH_FAILURE':
                    response = 'bill_auth_failure_workflow';
                    this.subtype = 'billing-auth-failure';
                    break;
                case 'CC_EXPIRED':
                    response = 'bill_cc_expired_workflow';
                    this.subtype = 'billing-cc-expired';
                    break;
                case 'PAYMENT_INSTRUMENT_MISSING':
                    response = 'bill_payment_instrument_missing_workflow';
                    this.subtype = 'billing-no-pay-info';
                    backgroundStyle = LicenseChiclet_styles.blue;
                    message = 'license_missing_payment';
                    break;
            }
            return {
                backgroundStyle: backgroundStyle,
                message: message,
                action: 'license_resolve_now',
                response: response,
            };
        }
        // Trial in Progress
        if ((relationshipProfile.appEntitlementStatus && relationshipProfile.appEntitlementStatus === 'TRIAL') ||
            relationshipProfile.appEntitlementStatus === 'TEAM_TRIAL') {
            const DAY = 24 * 60 * 60 * 1000;
            const currentTime = Math.max(relationshipProfile.profileGenerationTimestamp, new Date().valueOf());
            if (currentTime === relationshipProfile.profileGenerationTimestamp) {
                this._logger.log('NGL: Using the server time on the license chiclet. The current time is wrong');
            }
            const msLeft = relationshipProfile.licenseExpiryTimestamp
                ? new Date(relationshipProfile.licenseExpiryTimestamp).valueOf() - currentTime
                : 0;
            let daysLeft = msLeft / DAY;
            daysLeft = Math.ceil(Math.max(daysLeft, 0));
            // Even 1ms over 1 day is counted as two days.
            // Therefore we calculate actual time left for the update
            // using the difference and flip it over after that.
            this.eventId = 'license';
            this.subtype = 'trial-buy-now';
            this.trialDays = daysLeft;
            let action = 'license_buy_now';
            this.setTimer(msLeft - daysLeft * DAY + DAY);
            if (relationshipProfile.appEntitlementStatus == 'TEAM_TRIAL' &&
                relationshipProfile.chicletMode == 'ADMIN_MODE') {
                this.subtype = 'cct-admin-trial-buy-now';
            }
            else if (relationshipProfile.appEntitlementStatus == 'TEAM_TRIAL' &&
                relationshipProfile.chicletMode == 'DELEGATE_MODE') {
                action = 'license_learn_more';
                this.subtype = 'cct-delegate-trial-buy-now';
            }
            return {
                backgroundStyle: this.trialColor(daysLeft * 86400),
                message: daysLeft <= 1 ? 'license_last_day' : 'license_trial',
                action,
                daysLeft: daysLeft,
                response: 'trial_expiry_warning_workflow',
            };
        }
        return null;
    }
    logRenderEvent() {
        if (this.chicletData && this.eventId) {
            iaw_analytics["a" /* default */].logRenderedEvent(...this._renderEventParams());
        }
    }
    componentDidMount() {
        this.logRenderEvent();
        this._renderEventGUID = iaw_analytics["a" /* default */].subscribeLogRenderedEvent(() => this._renderEventParams());
    }
    componentDidUpdate() {
        this.logRenderEvent();
    }
    componentWillUnmount() {
        this._renderEventGUID && iaw_analytics["a" /* default */].unsubscribeLogRenderedEvent(this._renderEventGUID);
        this._disposerManager.disposeAll();
    }
    render() {
        // If you sign in with a different user, the NGL profile is wrong and nothing
        // should be shown.
        if (MainStore["mainStore"].user.state === UserStore["e" /* UserState */].USER_CHANGED) {
            return null;
        }
        const data = this.chicletData;
        if (data) {
            if (data.switchPlanChiclet) {
                return (react["createElement"]("a", { className: classnames_default()(LicenseChiclet_styles.switchPlanContainer), "data-qe-id": "switch-plan-chiclet", id: "switch-plan-chiclet", onClick: () => this.handleChicletClick(data.response) },
                    data.isPromo && (react["createElement"]("span", { className: classnames_default()(LicenseChiclet_styles.root, LicenseChiclet_styles.green, LicenseChiclet_styles.promo) },
                        react["createElement"](Label_default.a, { size: "S" }))),
                    react["createElement"]("span", { className: classnames_default()(LicenseChiclet_styles.root, data.backgroundStyle, {
                            [LicenseChiclet_styles.withPromo]: data.isPromo,
                        }) },
                        this.spinnerShown && react["createElement"](Wait_default.a, { size: "S", variant: "overBackground", className: LicenseChiclet_styles.spinner }),
                        react["createElement"]("span", { className: classnames_default()({ [LicenseChiclet_styles.underSpinner]: this.spinnerShown }) },
                            react["createElement"](index_es["c" /* FormattedMessage */], { id: data.message, values: {
                                    action: (react["createElement"]("span", { className: LicenseChiclet_styles.underlined }, this.props.intl.formatMessage({ id: data.action }))),
                                } })))));
            }
            this._logger.log(`NGL: Showing chiclet ${data.response} ${this.spinnerShown ? 'with' : 'without'} spinner`);
            return (react["createElement"]("div", { className: classnames_default()(LicenseChiclet_styles.root, data.backgroundStyle), "data-qe-id": "trial-status", id: "trial-status" },
                react["createElement"]("span", null,
                    react["createElement"](index_es["c" /* FormattedMessage */], { id: data.message, values: {
                            product: this.props.intl.formatMessage({
                                id: 'product_title_' + applications["a" /* default */].id,
                            }),
                            daysLeft: data.daysLeft,
                        } })),
                data.action && !MainStore["mainStore"].user.isEnterprise && (react["createElement"]("span", { className: classnames_default()(LicenseChiclet_sharedStyles.flexCenterCenter, LicenseChiclet_styles.actionContainer) },
                    react["createElement"]("span", { className: LicenseChiclet_styles.separator }, "|"),
                    this.spinnerShown && react["createElement"](Wait_default.a, { size: "S", variant: "overBackground", className: LicenseChiclet_styles.spinner }),
                    react["createElement"]("a", { id: "license-action", "data-qe-id": "license-action", tabIndex: 0, className: this.spinnerShown ? LicenseChiclet_styles.underSpinner : LicenseChiclet_styles.action, onClick: () => this.handleChicletClick(data.response) }, this.props.intl.formatMessage({ id: data.action }))))));
        }
        this._logger.log(`NGL: Showing no chiclet.`);
        // Returning null does not work well in the case of an update.
        return react["createElement"]("div", null);
    }
};
LicenseChiclet_decorate([
    mobx_module["z" /* observable */],
    LicenseChiclet_metadata("design:type", Object)
], LicenseChiclet_LicenseChiclet.prototype, "spinnerShown", void 0);
LicenseChiclet_LicenseChiclet = LicenseChiclet_decorate([
    index_module["e" /* observer */],
    LicenseChiclet_metadata("design:paramtypes", [Object])
], LicenseChiclet_LicenseChiclet);
/* harmony default export */ var header_LicenseChiclet = (Object(index_es["g" /* injectIntl */])(LicenseChiclet_LicenseChiclet));

// CONCATENATED MODULE: ./src/components-start/header/Header.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var Header_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;
};
var Header_metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};

























const Header_styles = __webpack_require__("+UFV");


let Header_Header = class Header extends react_default.a.Component {
    constructor() {
        super(...arguments);
        this._toastalTriggerRef = react_default.a.createRef();
        this._isToastalTooltipShownProgramatically = false;
        this.isHanging = false;
        this.showToastalTooltip = (show) => {
            var _a;
            const currentReference = (_a = this._toastalTriggerRef) === null || _a === void 0 ? void 0 : _a.current;
            if (show) {
                this._isToastalTooltipShownProgramatically = true;
                currentReference === null || currentReference === void 0 ? void 0 : currentReference.show();
            }
            else {
                this._isToastalTooltipShownProgramatically = false;
                currentReference === null || currentReference === void 0 ? void 0 : currentReference.hide();
            }
        };
        this.hangHeader = () => (this.isHanging = true);
        this.flattenHeader = () => (this.isHanging = false);
        this.openSearch = () => {
            if (MainStore["mainStore"].isLoading) {
                return;
            }
            MainStore["mainStore"].setDisableNativeControls(true);
            iaw_analytics["a" /* default */].logClickedEvent('search-icon', this.context.store.prefs.currentTab || 'home');
            applications["a" /* default */].launchSearch();
        };
        this.onKeyDown = evt => {
            switch (evt.keyCode) {
                case components_start_constants["k" /* default */].KEYS.ENTER:
                    evt.target.click();
                    break;
                case components_start_constants["k" /* default */].KEYS.SPACE:
                    evt.target.click();
                    break;
                default:
                    // do nothing
                    break;
            }
        };
        this.logOfflineIconAnalytics = Object(throttle["a" /* default */])(() => {
            if (applications["a" /* default */].homeScreenDisplayOptions.isCloudStatusOfflineIconEnabled) {
                iaw_analytics["a" /* default */].logMiscellaneousEvent('offline-icon-hover', this.context.store.prefs.currentTab || 'home');
            }
        }, 3000);
        this.logStorageIndicatorAnalytics = Object(throttle["a" /* default */])(() => {
            if (applications["a" /* default */].homeScreenDisplayOptions.isCloudStatusOfflineIconEnabled) {
                iaw_analytics["a" /* default */].logMiscellaneousEvent('storage-indicator', this.context.store.prefs.currentTab || 'home');
            }
        }, 3000);
        this.logToastalButtonAnalytics = Object(throttle["a" /* default */])(() => {
            const { containerAnalyticsParams } = this.getToastalData();
            iaw_analytics["a" /* default */].logMiscellaneousEvent('toastal-button', {
                workflow: this.context.store.prefs.currentTab || 'home',
                value: this._isToastalTooltipShownProgramatically ? 'implicit' : 'user-initiated',
                subcategory: MainStore["mainStore"].activeToastal,
                containerAnalyticsParams
            });
        }, 3000);
        this.onDialogStateChange = (newState) => {
            MainStore["mainStore"].setDisableNativeControls(newState);
        };
    }
    componentDidMount() {
        this.context.dispatch.on(components_start_constants["k" /* default */].events.SCROLLFROMTOP, this.hangHeader);
        this.context.dispatch.on(components_start_constants["k" /* default */].events.SCROLLTOTOP, this.flattenHeader);
        if (!MainStore["mainStore"].isLoading && !MainStore["mainStore"].user.cloudDocsDisabled && applications["a" /* default */].isCloudDocumentsEnabled) {
            // load UAPController after CloudSyncStatus
            __webpack_require__.e(/* import() */ 0).then(__webpack_require__.bind(null, "hUbq"));
        }
        window.addEventListener(components_start_constants["k" /* default */].TOASTAL_EVENTS.SHOW_TOASTAL_TOOLTIP, () => this.showToastalTooltip(true));
        window.addEventListener(components_start_constants["k" /* default */].TOASTAL_EVENTS.HIDE_TOASTAL_TOOLTIP, () => this.showToastalTooltip(false));
    }
    componentWillUnmount() {
        this.context.dispatch.off(components_start_constants["k" /* default */].events.SCROLLFROMTOP, this.hangHeader);
        this.context.dispatch.off(components_start_constants["k" /* default */].events.SCROLLTOTOP, this.flattenHeader);
        window.removeEventListener(components_start_constants["k" /* default */].TOASTAL_EVENTS.SHOW_TOASTAL_TOOLTIP, () => this.showToastalTooltip(true));
        window.removeEventListener(components_start_constants["k" /* default */].TOASTAL_EVENTS.HIDE_TOASTAL_TOOLTIP, () => this.showToastalTooltip(false));
    }
    handleToastalButton() {
        var _a, _b, _c;
        const { activeToastal } = MainStore["mainStore"];
        iaw_analytics["a" /* default */].logClickedEvent((_a = components_start_constants["k" /* default */].TOASTAL_INGEST_EVENTS) === null || _a === void 0 ? void 0 : _a[activeToastal], {
            workflow: MainStore["mainStore"].prefs.currentRoute,
            subtype: (_b = components_start_constants["k" /* default */].TOASTAL_INGEST_SUBTYPE) === null || _b === void 0 ? void 0 : _b[activeToastal],
        });
        handleCallToAction({ ctaEvent: (_c = components_start_constants["k" /* default */].TOASTAL_CTA_EVENTS) === null || _c === void 0 ? void 0 : _c[activeToastal], ctaAction: 'appEvent' }, undefined, // this.props.containerAnalytics,
        undefined, //this.props.logEvent,
        this);
    }
    getToastalData() {
        switch (MainStore["mainStore"].activeToastal) {
            case MainStore["ToastalName"].WHATS_NEW:
                return Object(YukonContainers["c" /* getWhatsNewContent */])();
            case MainStore["ToastalName"].USER_INTENT_DIALOG:
                return Object(YukonContainers["b" /* getUserIntentDialogContent */])();
        }
        return {};
    }
    shouldDisplayToastalButton() {
        const { activeToastal } = MainStore["mainStore"];
        const shouldDisplayToastal = (applications["a" /* default */].isUserIntentDialogEnabled ? MainStore["mainStore"].isToastalSettled : true) && !!activeToastal;
        return !!(shouldDisplayToastal && this.getToastalData());
    }
    render() {
        const shouldDisplayToastalButton = this.shouldDisplayToastalButton();
        const shouldShowOfflineStatusIcon = MainStore["mainStore"].cdoStatus.network === 'offline' &&
            (applications["a" /* default */].homeScreenDisplayOptions.isCloudStatusOfflineIconEnabled || !MainStore["mainStore"].user.cloudDocsDisabled);
        // For Team trial : when conversion is done and trial is purchased, the appEntitlementStatus
        // in the RelationshipProfile of NGL - is set to 'SUBSCRIPTION'
        // Need to handle such case and Starter badge should not be displayed
        const shouldShowStarterBadge = !MainStore["mainStore"].isLoading &&
            applications["a" /* default */].homeScreenDisplayOptions.isStarterBadgeEnabled &&
            applications["a" /* default */].isStarterUser &&
            MainStore["mainStore"].user.teamTrialState !== UserStore["c" /* TeamTrialState */].ACTIVE &&
            MainStore["mainStore"].user.entitlementStatus !== 'SUBSCRIPTION';
        const shouldShowTeamTrialBanner = !MainStore["mainStore"].isLoading &&
            applications["a" /* default */].homeScreenDisplayOptions.isCCTeamTrialEnabled &&
            MainStore["mainStore"].user.teamTrialState === UserStore["c" /* TeamTrialState */].ACTIVE;
        return (react_default.a.createElement(react_default.a.Fragment, null,
            react_default.a.createElement("div", { className: Header_styles.spacer }),
            react_default.a.createElement("div", { className: classnames_default()(Header_styles.root, this.isHanging && Header_styles.hanging), onKeyDown: this.onKeyDown },
                react_default.a.createElement("div", { className: Header_styles.left },
                    react_default.a.createElement(header_BackButton, null)),
                this.props.children,
                react_default.a.createElement("div", { className: Header_styles.right },
                    !MainStore["mainStore"].isLoading && applications["a" /* default */].homeScreenDisplayOptions.isLicenseChicletEnabled && (react_default.a.createElement(header_LicenseChiclet, null)),
                    !MainStore["mainStore"].isLoading && !MainStore["mainStore"].user.cloudDocsDisabled && applications["a" /* default */].isCloudDocumentsEnabled && (react_default.a.createElement(ccx_cdo["h" /* CloudSyncStatus */], { onDialogStateChange: this.onDialogStateChange, imsData: Object(CDOWrapper["cdoImsData"])(), hostProductData: applications["a" /* default */].CDOProductData })),
                    shouldShowTeamTrialBanner && react_default.a.createElement(header_TeamTrialChiclet, null),
                    shouldShowStarterBadge && react_default.a.createElement(header_StarterLabel, null),
                    shouldShowOfflineStatusIcon && (react_default.a.createElement(OverlayTrigger_default.a, { id: "offline-icon", trigger: "hover", placement: "bottom", delayShow: components_start_constants["k" /* default */].TOOLTIP_DELAY, onMouseEnter: this.logOfflineIconAnalytics },
                        react_default.a.createElement("div", { className: Header_styles.cloudStatus },
                            react_default.a.createElement("img", { src: `./images/CloudSync_Disconnected_${MainStore["mainStore"].colorTheme}.svg` })),
                        react_default.a.createElement(Tooltip_default.a, null,
                            react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: applications["a" /* default */].homeScreenDisplayOptions.cloudStatusOfflineMsgId })))),
                    applications["a" /* default */].homeScreenDisplayOptions.isCloudStatusOfflineIconEnabled &&
                        MainStore["mainStore"].cdoStatus.quota === 'quotaExceeded' && (react_default.a.createElement(OverlayTrigger_default.a, { id: "storage-indicator", trigger: "hover", placement: "bottom", delayShow: components_start_constants["k" /* default */].TOOLTIP_DELAY, onMouseEnter: this.logStorageIndicatorAnalytics },
                        react_default.a.createElement("div", { className: Header_styles.cloudStatus },
                            react_default.a.createElement("img", { src: `./images/CloudSync_Error_${MainStore["mainStore"].colorTheme}.svg` })),
                        react_default.a.createElement(Tooltip_default.a, null,
                            react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "cloud_status_storage_full" })))),
                    applications["a" /* default */].isSearchSupported && (react_default.a.createElement("div", { tabIndex: 0, className: [Header_styles.search, MainStore["mainStore"].isLoading ? Header_styles.faded : ''].join(' '), "data-qe-id": "search-icon", id: "search-icon", onClick: () => {
                            this.openSearch();
                        } },
                        react_default.a.createElement(SearchIcon2019_24_default.a, { onKeyDown: evt => {
                                if (evt.keyCode === components_start_constants["k" /* default */].KEYS.ENTER ||
                                    evt.keyCode === components_start_constants["k" /* default */].KEYS.SPACE) {
                                    this.openSearch();
                                }
                            } }))),
                    shouldDisplayToastalButton && (react_default.a.createElement("div", { className: Header_styles.toastal },
                        react_default.a.createElement(OverlayTrigger_default.a, { id: "toastal-button", trigger: "hover", placement: "bottom", onShow: this.logToastalButtonAnalytics, onHide: () => { this._isToastalTooltipShownProgramatically = false; }, delayShow: components_start_constants["k" /* default */].TOOLTIP_DELAY, ref: this._toastalTriggerRef },
                            react_default.a.createElement(Button_default.a, { "data-qe-id": "header--toastal-icon", id: "header--toastal-icon", className: Header_styles.toastalButton, quiet: true, variant: "action", icon: react_default.a.createElement(S_Gift_22_N_default.a, null), onClick: () => {
                                    this.handleToastalButton();
                                } }),
                            react_default.a.createElement(Tooltip_default.a, null,
                                react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: `${MainStore["mainStore"].activeToastal}_tooltip`, values: { appName: Object(ReplaceAppDataTemplates["c" /* getAppName */])() } }))))),
                    react_default.a.createElement(header_UserProfile, null)))));
    }
};
Header_Header.contextTypes = {
    dispatch: prop_types_default.a.any,
    store: prop_types_default.a.any,
};
Header_decorate([
    mobx_module["z" /* observable */],
    Header_metadata("design:type", Object)
], Header_Header.prototype, "isHanging", void 0);
Header_Header = Header_decorate([
    index_module["e" /* observer */]
], Header_Header);
/* harmony default export */ var header_Header = (Header_Header);

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/Info/index.js
var Info = __webpack_require__("O/GH");
var Info_default = /*#__PURE__*/__webpack_require__.n(Info);

// CONCATENATED MODULE: ./src/components/NonGenuineBanner.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2021 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var NonGenuineBanner_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;
};

const NonGenuineBanner_styles = __webpack_require__("rUeQ");





let NonGenuineBanner_NonGenuineBanner = class NonGenuineBanner extends react["Component"] {
    get bannerContent() {
        if (MainStore["mainStore"].isGenuine) {
            return null;
        }
        const nonGenuineContent = MainStore["mainStore"].nonGenuineContent;
        if (!nonGenuineContent) {
            return null;
        }
        return nonGenuineContent;
    }
    render() {
        if (!MainStore["mainStore"].isGenuine) {
            const data = this.bannerContent;
            if (data) {
                const { color, contentEnglish, contentLocalised, ctaTextEnglish, ctaTextLocalised, ctaUrl } = data;
                const content = contentLocalised || contentEnglish;
                const ctaText = ctaTextLocalised || ctaTextEnglish;
                if (!content || !ctaText || !ctaUrl) {
                    return null;
                }
                return (react["createElement"]("div", { className: NonGenuineBanner_styles.root, style: { backgroundColor: color || 'transparent' } },
                    react["createElement"]("span", { className: NonGenuineBanner_styles.content },
                        react["createElement"](Info_default.a, { className: NonGenuineBanner_styles.icon }),
                        react["createElement"]("span", { className: NonGenuineBanner_styles.text }, content)),
                    react["createElement"](Button_default.a, { quiet: true, variant: "primary", className: NonGenuineBanner_styles.ctaButtonOverrides, onClick: () => applications["a" /* default */].sendGenuineBannerMessage(ctaUrl) },
                        react["createElement"]("span", null, ctaText))));
            }
        }
        return null;
    }
};
NonGenuineBanner_NonGenuineBanner = NonGenuineBanner_decorate([
    index_module["e" /* observer */]
], NonGenuineBanner_NonGenuineBanner);
/* harmony default export */ var components_NonGenuineBanner = (NonGenuineBanner_NonGenuineBanner);

// EXTERNAL MODULE: ./src/assets/stripe.png
var stripe = __webpack_require__("Oiqt");
var stripe_default = /*#__PURE__*/__webpack_require__.n(stripe);

// CONCATENATED MODULE: ./src/components/StarterBanner.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2021 Adobe
 * All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var StarterBanner_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;
};
var StarterBanner_metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var StarterBanner_a;









const StarterBanner_styles = __webpack_require__("yrE8");
let StarterBanner_StarterBanner = class StarterBanner extends react["Component"] {
    constructor(props) {
        super(props);
        // Boolean flag - to do specialized handling of new paywall hit events when we
        // have reached the pivot point in the banner rotation cycle i.e. the rotation
        // has circled back to the starting index of the banner array
        this.checkPaywallEventAtPivot = true;
        this.lastPaywallHitSource = '';
        this.lastRemovePaywallSource = '';
        this._disposerManager = new DisposerManager["a" /* default */]();
        /**
         * Handle paywall limit reached event
         * @param : source - string - Source of the paywall limit reached event
         */
        this.handlePaywallLimitReachedEvent = (source) => {
            var _a;
            // In case starter banner is not available or source is unknown return immediately
            if (!source ||
                !((_a = applications["a" /* default */].starterBannerHostData) === null || _a === void 0 ? void 0 : _a.starterBannerData) ||
                !applications["a" /* default */].starterBannerHostData.starterBannerData[source]) {
                return;
            }
            // In case default banner is active - then this is the first
            // paywall hit event being processed - in which case the default banner needs to be removed
            if (this.isDefaultBannerActive()) {
                this.handlePaywallEventInDefaultStage(source);
            }
            else if (!this.activeBanners.includes(source)) {
                this.handlePaywallEventInNonDefaultStage(source);
            }
        };
        /**
         * Handle remove paywall for feature event
         * @param : source - string - Source of the paywall limit reached event
         */
        this.handleRemovePaywallForFeatureEvent = (source) => {
            var _a;
            // In case starter banner is not available or source is unknown return immediately
            if (!source ||
                !((_a = applications["a" /* default */].starterBannerHostData) === null || _a === void 0 ? void 0 : _a.starterBannerData) ||
                !applications["a" /* default */].starterBannerHostData.starterBannerData[source]) {
                return;
            }
            let indexToRemove = this.activeBanners.indexOf(source);
            // Return if item is already removed or not found.
            if (indexToRemove < 0) {
                return;
            }
            // If thats the only banner present, add the default banner to activeBanner list.
            if (indexToRemove === 0 && this.activeBanners.length === 1) {
                this.activeBanners = applications["a" /* default */].starterBannerHostData.defaultStarterBannerId
                    ? [applications["a" /* default */].starterBannerHostData.defaultStarterBannerId]
                    : [];
                localstorage["a" /* default */].setUserItem('activeBanners', this.activeBanners);
            }
            else if (indexToRemove >= 0) {
                // if there are more than one banner, just remove the banner for this source from activeBanner list.
                this.activeBanners.splice(indexToRemove, 1);
                localstorage["a" /* default */].setUserItem('activeBanners', this.activeBanners);
            }
            // If active index before the removal of paywall was at last banner:
            // Rotate active index to start of banner array if the last banner is removed.
            // Shift the active index to left by one position if the last element is not removed.
            if (this.activeIndex === this.activeBanners.length) {
                this.activeIndex =
                    indexToRemove === this.activeBanners.length ? 0 : this.activeIndex - 1;
            }
            // Save the active index in local storage post paywall removal event processing
            this.saveIndexInStorage(this.activeIndex);
        };
        /**
         * Handle paywall limit reached event in the default stage when the default banner is active
         * @param : source - string - Source of the paywall limit reached event
         */
        this.handlePaywallEventInDefaultStage = (source) => {
            this.activeBanners = [source];
            this.activeIndex = 0;
            // In this case we dont want to have specialized handling for further events when active index is 0
            // until this banner is displayed to the user
            this.checkPaywallEventAtPivot = false;
            // Save the current active banners state info in local storage
            localstorage["a" /* default */].setUserItem('activeBanners', this.activeBanners);
        };
        /**
         * Handle paywall limit reached event in the non default stage when the paywall hits have already
         * started and the default banner is no longer active
         * @param : source - string - Source of the paywall limit reached event
         */
        this.handlePaywallEventInNonDefaultStage = (source) => {
            this.activeBanners = [...this.activeBanners, source];
            // In case we need to handle this event specially - check whether we have pivoted
            // in the rotation cycle. If we have cycled back to the start of the active banner array
            // then adjust the active index to display the newly added element else continue with the original
            // rotation
            if (this.checkPaywallEventAtPivot) {
                if (this.activeIndex === 0) {
                    this.activeIndex = this.activeBanners.length - 1;
                    // Save the current active index in the local storage until its displayed to the user
                    // General behaviour : Paywall hit events are sent to the home screen when the home screen
                    // is not visible and in case user quits app before home screen has been made visible
                    // we want to show this paywall banner when he relaunches next time
                    this.saveIndexInStorage(this.activeIndex);
                }
                // No need to handle further events
                this.checkPaywallEventAtPivot = false;
            }
            // Save the current active banners state info in local storage
            localstorage["a" /* default */].setUserItem('activeBanners', this.activeBanners);
        };
        /**
         * Rotate the banner in cyclic fashion
         */
        this.handleBannerRotation = () => {
            this.activeIndex = this.getNextActiveIndex();
            // We want to keep track of the rotation cycle of the banners when handling the
            // first paywall event received after home screen goes to background -
            // To check if we need to alter the rotation based on whether we have pivoted
            // back to the start of the array in the rotation cycle
            this.checkPaywallEventAtPivot = true;
            // Save the active index in local storage - in case paywall hits have started
            // in order facilitate banner rotation across launches
            this.saveIndexInStorage(this.activeIndex);
        };
        /**
         * Helper API to retreive the next active index
         */
        this.getNextActiveIndex = () => {
            return (this.activeIndex + 1) % this.activeBanners.length;
        };
        /**
         * Check if the default banner is active
         * This indicates that no paywall limits have been hit by the user
         */
        this.isDefaultBannerActive = () => {
            const defaultBanner = applications["a" /* default */].starterBannerHostData.defaultStarterBannerId;
            return defaultBanner && this.activeBanners.includes(defaultBanner);
        };
        /**
         * Save the provided index in storage in case default banner is not active
         */
        this.saveIndexInStorage = (index) => {
            if (!this.isDefaultBannerActive()) {
                localstorage["a" /* default */].setUserItem('activeIndex', index);
            }
        };
        this.activeBanners = localstorage["a" /* default */].getUserItem('activeBanners') || [
            applications["a" /* default */].starterBannerHostData.defaultStarterBannerId,
        ];
        this.activeIndex = localstorage["a" /* default */].getUserItem('activeIndex') || 0;
    }
    componentWillUnmount() {
        var _a, _b;
        // Trigger any side-effects on component unmount
        (_b = (_a = applications["a" /* default */].starterBannerHostData) === null || _a === void 0 ? void 0 : _a.hostSideEffectOnUnmount) === null || _b === void 0 ? void 0 : _b.call(_a);
        this._disposerManager.disposeAll();
    }
    componentDidMount() {
        var _a, _b;
        // Handle paywall limit events - if its made available by the host
        this._disposerManager.register(Object(mobx_module["B" /* reaction */])(() => { var _a; return (_a = applications["a" /* default */].starterBannerHostData) === null || _a === void 0 ? void 0 : _a.paywallLimitReachedEventSource; }, () => {
            var _a;
            let source = (_a = applications["a" /* default */].starterBannerHostData) === null || _a === void 0 ? void 0 : _a.paywallLimitReachedEventSource;
            if (source === undefined) {
                this.handlePaywallLimitReachedEvent(this.lastRemovePaywallSource);
            }
            else {
                this.handlePaywallLimitReachedEvent(source);
                this.lastRemovePaywallSource = source;
            }
        }));
        // Handle remove paywall for feature events - if its made available by the host
        this._disposerManager.register(Object(mobx_module["B" /* reaction */])(() => { var _a; return (_a = applications["a" /* default */].starterBannerHostData) === null || _a === void 0 ? void 0 : _a.removePaywallForEventSource; }, () => {
            var _a;
            let source = (_a = applications["a" /* default */].starterBannerHostData) === null || _a === void 0 ? void 0 : _a.removePaywallForEventSource;
            if (source === undefined) {
                this.handleRemovePaywallForFeatureEvent(this.lastPaywallHitSource);
            }
            else {
                this.handleRemovePaywallForFeatureEvent(source);
                this.lastPaywallHitSource = source;
            }
        }));
        /**
         * Set reactions to handle banner rotation - when home screen visibility changes
         * and the home screen is not visible
         * We want to do the rotation computation when the home screen is not visible
         * to avoid any flickering issues - while re-rendering the banner
         */
        this._disposerManager.register(Object(mobx_module["B" /* reaction */])(() => applications["a" /* default */].isHomeScreenVisible, () => {
            if (!applications["a" /* default */].isHomeScreenVisible) {
                this.handleBannerRotation();
            }
            else {
                // When home screen becomes visible - save the next active index to be shown in storage
                this.saveIndexInStorage(this.getNextActiveIndex());
            }
        }));
        // Trigger any side-effects on component mount
        (_b = (_a = applications["a" /* default */].starterBannerHostData) === null || _a === void 0 ? void 0 : _a.hostSideEffectOnMount) === null || _b === void 0 ? void 0 : _b.call(_a);
        // Save the next active index in local storage - in case paywall hits have started
        // in order facilitate banner rotation across launches
        this.saveIndexInStorage(this.getNextActiveIndex());
    }
    render() {
        let isInvalidBanner = () => {
            var _a;
            return (!this.activeBanners ||
                this.activeIndex >= this.activeBanners.length ||
                !((_a = applications["a" /* default */].starterBannerHostData) === null || _a === void 0 ? void 0 : _a.starterBannerData));
        };
        if (isInvalidBanner()) {
            return null;
        }
        let bannerId = this.activeBanners[this.activeIndex];
        let { titleId, descriptionId, image, cta } = applications["a" /* default */].starterBannerHostData.starterBannerData[bannerId];
        return (react["createElement"]("div", null,
            react["createElement"]("div", { className: StarterBanner_styles.root },
                react["createElement"]("div", { className: StarterBanner_styles.bannerContainer },
                    image && (react["createElement"]("div", { className: StarterBanner_styles.imageContent },
                        react["createElement"]("img", { src: image }))),
                    react["createElement"]("div", { className: StarterBanner_styles.textWrapper },
                        react["createElement"]("header", { className: StarterBanner_styles.titleText },
                            react["createElement"](index_es["c" /* FormattedMessage */], { id: titleId })),
                        react["createElement"]("div", { className: StarterBanner_styles.descriptionText },
                            react["createElement"](index_es["c" /* FormattedMessage */], { id: descriptionId })),
                        cta && (react["createElement"](Button_default.a, { className: StarterBanner_styles.button, variant: 'cta', onClick: () => cta === null || cta === void 0 ? void 0 : cta.action() },
                            react["createElement"]("span", null, react["createElement"](index_es["c" /* FormattedMessage */], { id: cta.messageId })))))),
                react["createElement"]("div", { className: StarterBanner_styles.footerImage },
                    react["createElement"]("img", { src: stripe_default.a })))));
    }
};
StarterBanner_decorate([
    mobx_module["z" /* observable */],
    StarterBanner_metadata("design:type", typeof (StarterBanner_a = typeof Array !== "undefined" && Array) === "function" ? StarterBanner_a : Object)
], StarterBanner_StarterBanner.prototype, "activeBanners", void 0);
StarterBanner_decorate([
    mobx_module["z" /* observable */],
    StarterBanner_metadata("design:type", Number)
], StarterBanner_StarterBanner.prototype, "activeIndex", void 0);
StarterBanner_StarterBanner = StarterBanner_decorate([
    index_module["e" /* observer */],
    StarterBanner_metadata("design:paramtypes", [Object])
], StarterBanner_StarterBanner);
/* harmony default export */ var components_StarterBanner = (StarterBanner_StarterBanner);

// CONCATENATED MODULE: ./src/components/index.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/



















// Debug controls


// CONCATENATED MODULE: ./src/components/LoadingState.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/




const LoadingState_styles = __webpack_require__("DIoa");
class LoadingState_LoadingState extends react_default.a.Component {
    render() {
        const { loading } = this.props;
        return (react_default.a.createElement("div", { "data-qe-id": "components-loading-state", id: "components-loading-state", className: LoadingState_styles.root },
            react_default.a.createElement(header_Header, null),
            react_default.a.createElement(components_VLayout, { unpadded: true },
                react_default.a.createElement(components_HLayout, { unpadded: true },
                    react_default.a.createElement("div", { className: LoadingState_styles.sidebar },
                        react_default.a.createElement("div", { className: LoadingState_styles.grouped },
                            react_default.a.createElement("div", { className: LoadingState_styles.longRectangle }),
                            react_default.a.createElement("div", { className: LoadingState_styles.longRectangle }),
                            react_default.a.createElement("div", { className: LoadingState_styles.longRectangle }),
                            react_default.a.createElement("div", { className: LoadingState_styles.mediumRectangle }),
                            react_default.a.createElement("div", { className: LoadingState_styles.shortRectangle }))),
                    react_default.a.createElement(components_ScrollView, { disableScroll: true },
                        react_default.a.createElement("div", { className: LoadingState_styles.content }, loading ? (react_default.a.createElement(react_default.a.Fragment, null,
                            react_default.a.createElement("div", { className: LoadingState_styles.text },
                                react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "common_loading" })),
                            react_default.a.createElement("div", null,
                                react_default.a.createElement(Wait_default.a, { size: "L" })))) : null))))));
    }
}

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/TabList/index.js
var TabList = __webpack_require__("OQA9");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-firstmile-shared/src/components/pieces/ImageComponent.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/


const ImageComponent_styles = __webpack_require__("vWvB");
class ImageComponent_ImageComponent extends react_default.a.Component {
    constructor() {
        super(...arguments);
        this.state = {
            loaded: false,
        };
        this.onImageLoaded = () => {
            this.setState({ loaded: true });
        };
    }
    componentDidUpdate(prevProps) {
        if (this.props.source !== prevProps.source) {
            this.setState({ loaded: false });
        }
    }
    render() {
        const { source, desc, display } = this.props;
        const { loaded } = this.state;
        return (react_default.a.createElement("img", { src: source, alt: desc, key: source, onLoad: this.onImageLoaded, className: classnames_default()(ImageComponent_styles.root, { [ImageComponent_styles.visible]: display && loaded }) }));
    }
}

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-firstmile-shared/src/components/pieces/VideoComponent.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/



const VideoComponent_styles = __webpack_require__("mfIR");
class VideoComponent_VideoComponent extends react_default.a.Component {
    constructor() {
        super(...arguments);
        this.state = {
            errored: false,
        };
        this.onVideoErrored = event => {
            const { onVideoError } = this.props;
            event.stopPropagation();
            this.setState({ errored: true });
            console.error('Video failed to load:', event);
            if (onVideoError) {
                onVideoError(event);
            }
        };
    }
    render() {
        const { source, fallback, onVideoError, ...otherProps } = this.props;
        const { errored } = this.state;
        return (react_default.a.createElement(react_default.a.Fragment, null, errored ? (react_default.a.createElement("img", { src: fallback, className: classnames_default()(VideoComponent_styles.fallback), key: fallback })) : (react_default.a.createElement(Video_default.a, Object.assign({ className: VideoComponent_styles.root, src: source, onError: this.onVideoErrored }, otherProps)))));
    }
}

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-firstmile-shared/src/components/pieces/MediaStack.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/



const MediaStack_styles = __webpack_require__("gamk");
/**
 * 	Component to implement transitions between a mix of videos and images
 * 	All seen images are cached while videos are tear down and recreated
 *
 * 	If both imageSrc and videoSrc are configured, will try to load the video
 * 	using the image as fallback
 */
class MediaStack_MediaStack extends react_default.a.Component {
    constructor(props) {
        super(props);
        const { videoSrc, imageSrc } = props;
        this.state = {
            items: videoSrc ? [] : [imageSrc],
        };
    }
    componentDidUpdate(prevProps) {
        if (this.props.videoSrc !== prevProps.videoSrc || this.props.imageSrc !== prevProps.imageSrc) {
            const { videoSrc, imageSrc } = this.props;
            const { items } = this.state;
            // the stack only holds images
            if (!videoSrc) {
                if (!items.includes(imageSrc)) {
                    items.push(imageSrc);
                }
                this.setState({ items: items });
            }
        }
    }
    render() {
        const { videoSrc, imageSrc, onVideoError } = this.props;
        const { items } = this.state;
        return (react_default.a.createElement("div", { className: MediaStack_styles.root },
            items.map(src => (react_default.a.createElement(ImageComponent_ImageComponent, { key: src, source: src, display: src === imageSrc }))),
            videoSrc && (react_default.a.createElement(VideoComponent_VideoComponent, { key: videoSrc, source: videoSrc, fallback: imageSrc, onVideoError: onVideoError, width: "720", height: "405", hideCloseIcon: true, autoplay: true, loop: true, muted: true }))));
    }
}

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-firstmile-shared/src/components/Toastal.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/







const Toastal_styles = __webpack_require__("o/+Q");
/**
 * The `Toastal` component is a lighter alternative to the regular React Spectrum Dialog component.
 */
class Toastal_Toastal extends react["Component"] {
    constructor() {
        super(...arguments);
        this.onClickHandler = event => {
            const { onClose } = this.props;
            event.stopPropagation();
            if (onClose) {
                onClose(event);
            }
        };
        this.onKeyHandler = event => {
            if (event.keyCode === components_constants.KEYS.ESC) {
                this.onClickHandler(event);
            }
            else if (event.keyCode === components_constants.KEYS.TAB) {
                if (this.node.contains(document.activeElement)) {
                    return; // If the newly focused element is inside the toastal, carry on;
                }
                const tabbables = this.node.querySelectorAll('[tabindex]:not([tabindex="-1"])'); // Find all elements inside the Toastal that have a tabIndex
                // If the user has the Shift key held while Tabbing, we should go backwards (select the last tabbable element)
                // Otherwise, select the first
                const toSelect = event.shiftKey
                    ? tabbables[tabbables.length - 1]
                    : tabbables[0];
                toSelect.focus();
                event.stopPropagation(); // Stop the event from bubbling just in case
            }
        };
        this.onCloseIconKeyHandler = event => {
            if ([components_constants.KEYS.ENTER, components_constants.KEYS.SPACE].includes(event.keyCode)) {
                this.onClickHandler(event);
            }
        };
    }
    componentDidMount() {
        document.addEventListener('keydown', this.onKeyHandler, false);
        /*
            DisableNativeControls flag is used for a workaround to handle the input and overlay overlap issues in Ps and Ai
            https://wiki.corp.adobe.com/pages/viewpage.action?spaceKey=UXP&title=Proposal+for+overlapping+textedit+and+overlays
            https://wiki.corp.adobe.com/display/UXP/PS+UXP+Overlay+Issues
            
            The flag should be set accordingly in the "openToast" and "closeToast" methods of the "mainStore."
            So we keep this call here and in the other lifecycle methods just for backup.
        */
        this.setDisableNativeControls(this.props.isOpen);
        this.node = react_dom_default.a.findDOMNode(this);
    }
    componentWillUnmount() {
        document.removeEventListener('keydown', this.onKeyHandler, false);
        this.setDisableNativeControls(false);
    }
    setDisableNativeControls(shouldDisable) {
        if (this.context.store.setDisableNativeControls) {
            this.context.store.setDisableNativeControls(shouldDisable);
        }
    }
    componentDidUpdate(prevProps) {
        if (this.props.isOpen || prevProps.isOpen !== this.props.isOpen) {
            // modals need to use the native control disablement when open
            this.setDisableNativeControls(this.props.isOpen);
        }
    }
    render() {
        const { children, width, height, isOpen } = this.props;
        const customSize = { width, height };
        return (react["createElement"]("div", { className: classnames_default()(Toastal_styles.root, { [Toastal_styles.isOpen]: isOpen }) },
            react["createElement"]("div", { className: Toastal_styles.rootCurtain, onClick: this.onClickHandler }),
            react["createElement"]("div", { className: Toastal_styles.rootContainer, style: customSize },
                react["createElement"]("div", { "data-qe-id": "toastal-root-tooling", className: Toastal_styles.rootTooling, onClick: this.onClickHandler },
                    react["createElement"]("span", { onKeyUp: this.onCloseIconKeyHandler, className: Toastal_styles.closeButton, tabIndex: 0 },
                        react["createElement"](CloseCircle_default.a, { size: "M" }))),
                react["createElement"]("div", { className: Toastal_styles.rootContent }, children))));
    }
}
Toastal_Toastal.contextTypes = common_CommonStaticContext;
Toastal_Toastal.propTypes = {
    /** handler to be called when the modal closes through various means */
    onClose: prop_types_default.a.func,
    /** modal content */
    children: prop_types_default.a.any,
    /** custom modal width */
    width: prop_types_default.a.string,
    /** custom modal height */
    height: prop_types_default.a.string,
    /** property to control visibility with */
    isOpen: prop_types_default.a.bool,
};
Toastal_Toastal.defaultProps = {
    onClose: () => { },
    width: '500px',
    height: '350px',
    isOpen: false,
};

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-firstmile-shared/src/components/WhatsNew.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var WhatsNew_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;
};
var WhatsNew_metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};











const WhatsNew_styles = __webpack_require__("01V7");
const COMPONENT_KEY = 'whatsNew';
let WhatsNew_WhatsNew = class WhatsNew extends react["Component"] {
    constructor() {
        super(...arguments);
        this.state = {
            selectedIndex: 0,
        };
        this.hasError = false;
        this._whatsNewPageRenderEventParams = ({ selectedIndex = -1, sourceAction = 'open' } = {}) => {
            const { toastalPages } = this.props;
            selectedIndex < 0 && (selectedIndex = this.state.selectedIndex);
            if (!toastalPages.length || !toastalPages[selectedIndex]) {
                return ['whatsNewPage'];
            }
            const ctaLog = toastalPages[selectedIndex].headerText;
            return [
                'whatsNewPage',
                {
                    subtype: ctaLog,
                    uiSequence: selectedIndex,
                    sourceAction,
                    containerAnalyticsParams: this.containerAnalyticsParams,
                },
            ];
        };
        this._whatsNewRenderEventParams = () => {
            return [
                COMPONENT_KEY,
                {
                    containerAnalyticsParams: this.containerAnalyticsParams,
                },
            ];
        };
        this.onTabSelectHandler = selectedIndex => {
            const { toastalPages } = this.props;
            if (!toastalPages.length || !toastalPages[selectedIndex]) {
                return;
            }
            const ctaLog = toastalPages[selectedIndex].headerText;
            this.setState({ selectedIndex });
            this.context.utils.analytics.logClickedEvent(COMPONENT_KEY, {
                subtype: ctaLog,
                uiSequence: selectedIndex,
                sourceAction: 'sideNav',
                containerAnalyticsParams: this.containerAnalyticsParams,
            });
            // _whatsNewRenderEventParams will return 2 elems in the array
            this.context.utils.analytics.logRenderedEvent(
            // @ts-ignore
            ...this._whatsNewPageRenderEventParams({ selectedIndex, sourceAction: 'sideNav' }));
        };
        this.onNextHandler = () => {
            const { toastalPages } = this.props;
            const { selectedIndex } = this.state;
            const hasNextIndex = selectedIndex < toastalPages.length - 1;
            const nextIndex = selectedIndex + 1;
            const ctaLog = hasNextIndex && toastalPages[nextIndex].headerText;
            this.context.utils.analytics.logClickedEvent(COMPONENT_KEY, {
                subtype: hasNextIndex ? ctaLog : 'next',
                sourceAction: 'next',
                uiSequence: hasNextIndex ? nextIndex : '',
                containerAnalyticsParams: this.containerAnalyticsParams,
            });
            if (hasNextIndex) {
                this.setState({ selectedIndex: selectedIndex + 1 });
                this.context.utils.analytics.logRenderedEvent(
                // @ts-ignore
                ...this._whatsNewPageRenderEventParams({ selectedIndex: nextIndex, sourceAction: 'next' }));
            }
        };
        this.onOpenHandler = () => {
            // @ts-ignore
            this.context.utils.analytics.logRenderedEvent(...this._whatsNewRenderEventParams());
            this._whatsNewRenderEventGUID = this.context.utils.analytics.subscribeLogRenderedEvent(() => this._whatsNewRenderEventParams());
            if (this.state.selectedIndex) {
                this.setState({ selectedIndex: 0 });
            }
            document.body.classList.add('whatsNewOpened');
            // if no element is focused when WhatsNew is opened, trigger a click on the #main element
            // this is so that focus is inside HomeScreen and pressing Esc will only close WN and not hide HS as well
            // this scenario happens when WN appears on its own when the host app is opened
            !document.activeElement &&
                window.requestAnimationFrame(() => {
                    document.getElementById('main').click();
                });
            // Render event for first page
            const { toastalPages, onOpen } = this.props;
            Object(Utils["a" /* callIfFunction */])(onOpen);
            if (toastalPages.length > 0) {
                const ctaLog = toastalPages[0].headerText;
                // @ts-ignore
                this.context.utils.analytics.logRenderedEvent(...this._whatsNewPageRenderEventParams({ selectedIndex: 0 }));
                this._whatsNewPageRenderEventGUID = this.context.utils.analytics.subscribeLogRenderedEvent(() => this._whatsNewPageRenderEventParams());
            }
        };
        this.onCloseHandler = async () => {
            const { showOnlyOnce, onClose, toastalName, handleToastalFirstClose } = this.props;
            const { utils: { SharedSettings }, } = this.context;
            const isFirstTimeShowing = !SharedSettings.get(COMPONENT_KEY, toastalName);
            if (showOnlyOnce && isFirstTimeShowing) {
                SharedSettings.set(COMPONENT_KEY, toastalName, true);
                handleToastalFirstClose && handleToastalFirstClose();
            }
            if (onClose) {
                onClose();
            }
            this.context.utils.analytics.logClickedEvent(COMPONENT_KEY, {
                subtype: 'done',
                containerAnalyticsParams: this.containerAnalyticsParams,
            });
            document.body.classList.remove('whatsNewOpened');
            this.context.utils.analytics.unsubscribeLogRenderedEvent(this._whatsNewRenderEventGUID);
            this.context.utils.analytics.unsubscribeLogRenderedEvent(this._whatsNewPageRenderEventGUID);
        };
        this.openLink = (data, type) => {
            const { selectedIndex } = this.state;
            this.context.utils.CallToActionHandler.handleCallToAction(data, this.containerAnalyticsParams);
            if (type) {
                this.context.utils.analytics.logClickedEvent(COMPONENT_KEY, {
                    subtype: type,
                    actionURL: data.ctaURL,
                    contentType: 'footer',
                    uiSequence: selectedIndex,
                    containerAnalyticsParams: this.containerAnalyticsParams,
                });
            }
            else {
                this.context.utils.analytics.logClickedEvent(COMPONENT_KEY, {
                    subtype: 'find-out-more',
                    actionURL: data.ctaURL,
                    containerAnalyticsParams: this.containerAnalyticsParams,
                });
            }
        };
        this.onVideoError = event => {
            const error = event.currentTarget.error || {};
            this.context.utils.analytics.logErrorEvent(COMPONENT_KEY, {
                subtype: 'fallback-image',
                error: {
                    type: event.type,
                    code: error.code,
                    desc: `What's new video could not be displayed. Error: ${JSON.stringify(error.message)}`,
                },
                containerAnalyticsParams: this.containerAnalyticsParams,
            });
            console.error(`What's new video could not be displayed. Error: ${JSON.stringify(error)}`);
        };
    }
    componentDidMount() {
        this.containerAnalyticsParams =
            this.context.utils.sophia.getAnalyticsData(this.context.utils.constants.SURFACES.WHATS_NEW) || {};
        if (this.shouldShow) {
            this.onOpenHandler();
        }
    }
    componentDidUpdate(prevProps) {
        if (this.props.isOpen !== prevProps.isOpen || this.props.toastalName !== prevProps.toastalName) {
            if (this.shouldShow) {
                this.onOpenHandler();
            }
        }
    }
    componentDidCatch(error) {
        // TODO log error scenario
        console.error('WhatsNew failed to render', error);
        this.hasError = true;
    }
    get shouldShow() {
        let shouldShow = false;
        const { isOpen, showOnlyOnce, toastalName } = this.props;
        const { utils: { SharedSettings }, } = this.context;
        const seenBefore = SharedSettings.get(COMPONENT_KEY, toastalName);
        // visibility controlled by client
        if (isOpen !== undefined) {
            shouldShow = isOpen;
        }
        else {
            // visibility self controlled through stored shared settings
            shouldShow = !(showOnlyOnce && seenBefore);
        }
        return shouldShow;
    }
    render() {
        // Skip rendering if we encountered an error
        if (this.hasError) {
            return null;
        }
        const { headerText, toastalPages } = this.props;
        const { selectedIndex } = this.state;
        const { utils: { replaceAppData }, } = this.context;
        if (!toastalPages.length || !toastalPages[selectedIndex]) {
            return null;
        }
        const item = toastalPages[selectedIndex];
        const lastItemSelected = this.state.selectedIndex === toastalPages.length - 1;
        return (react["createElement"](Toastal_Toastal, { isOpen: this.shouldShow, onClose: this.onCloseHandler, width: "1000px", height: "632px" },
            react["createElement"]("div", { "data-qe-id": "whatsnew-rootcontent-container", className: WhatsNew_styles.rootContent },
                react["createElement"]("div", { "data-qe-id": "whatsnew-contentcolumn-left", className: classnames_default()(WhatsNew_styles.contentColumn, WhatsNew_styles.contentColumnLeft) },
                    react["createElement"]("div", { className: WhatsNew_styles.contentColumnTabs },
                        react["createElement"](Heading_default.a, { "data-qe-id": "whatsnew-contentcolumn-header", variant: "subtitle1", className: WhatsNew_styles.contentColumnHeader }, replaceAppData(headerText || '')),
                        react["createElement"](TabList["TabList"], { orientation: "vertical", variant: "compact", quiet: true, onChange: this.onTabSelectHandler, selectedIndex: this.state.selectedIndex }, toastalPages.map((item, i) => (react["createElement"](TabList["Tab"], { "data-qe-id": 'whatsnew-spectrum-tabs-item-' + i, className: WhatsNew_styles.tabsOverwrites, label: replaceAppData(item.headerText || ''), key: i }))))),
                    react["createElement"]("div", { className: WhatsNew_styles.actionButtons },
                        react["createElement"]("div", null,
                            react["createElement"](Button_default.a, { "data-qe-id": "whatsnew-spectrum-button-cta", variant: "secondary", onClick: lastItemSelected ? this.onCloseHandler : this.onNextHandler },
                                react["createElement"]("span", null, lastItemSelected
                                    ? this.context.intl.formatMessage({
                                        id: 'common_done',
                                    })
                                    : this.context.intl.formatMessage({
                                        id: 'common_next',
                                    })))))),
                react["createElement"]("div", { "data-qe-id": "whatsnew-rightcolumn-container", className: classnames_default()(WhatsNew_styles.contentColumn, WhatsNew_styles.contentColumnRight) },
                    react["createElement"]("div", { "data-qe-id": "whatsnew-rightcolumn-media", className: WhatsNew_styles.contentColumnMedia },
                        react["createElement"](MediaStack_MediaStack, { videoSrc: item.backgroundVideo && this.shouldShow // the video component breaks if it gets hidden and then brought back, so we'll make sure it gets destroyed
                                ? item.backgroundVideo
                                : undefined, imageSrc: item.backgroundImage &&
                                this.context.utils.sophia.getFullAssetPath(item.backgroundImage), onVideoError: this.onVideoError })),
                    react["createElement"]("div", { className: WhatsNew_styles.contentColumnDescription },
                        react["createElement"](Heading_default.a, { "data-qe-id": "whatsnew-rightcolumn-content-header", variant: "subtitle1", className: WhatsNew_styles.descriptionHeader }, item.headerText),
                        react["createElement"]("p", { "data-qe-id": "whatsnew-rightcolumn-content-text", className: WhatsNew_styles.descriptionText }, replaceAppData(item.descriptionText || '')),
                        react["createElement"]("p", { "data-qe-id": "whatsnew-rightcolumn-content-footer", className: WhatsNew_styles.descriptionFooter }, item.footerCta ? (react["createElement"](Button_default.a, { variant: "cta", onClick: () => this.openLink(item.footerCta, item.headerText) },
                            react["createElement"]("span", null, item.footerCta.ctaText))) : (replaceAppData(item.footerText || ''))))))));
    }
};
WhatsNew_WhatsNew.contextTypes = common_CommonStaticContext;
WhatsNew_decorate([
    mobx_module["z" /* observable */],
    WhatsNew_metadata("design:type", Object)
], WhatsNew_WhatsNew.prototype, "hasError", void 0);
WhatsNew_WhatsNew = WhatsNew_decorate([
    index_module["e" /* observer */]
], WhatsNew_WhatsNew);
/* harmony default export */ var components_WhatsNew = (WhatsNew_WhatsNew);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-firstmile-shared/src/components/toastals/user-intent-dialog/constants.tsx
var user_intent_dialog_constants = __webpack_require__("hJwU");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-firstmile-shared/src/assets/Checkmark.svg
function Checkmark_extends() {
  Checkmark_extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return Checkmark_extends.apply(this, arguments);
}


/* harmony default export */ var Checkmark = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", Checkmark_extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "10",
  height: "10",
  viewBox: "0 0 10 10"
}, props), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M9.564.71a.998.998 0 0 0-1.403.176l-4.68 6.01-1.657-2.028A1 1 0 0 0 .275 6.132l2.45 3c.022.027.054.037.077.06a.937.937 0 0 0 .084.097.955.955 0 0 0 .133.072.96.96 0 0 0 .104.056.995.995 0 0 0 .377.083.993.993 0 0 0 .387-.088.962.962 0 0 0 .107-.06.947.947 0 0 0 .138-.078.945.945 0 0 0 .082-.1c.023-.023.054-.033.075-.06l5.45-7A1 1 0 0 0 9.564.711z"
})));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-firstmile-shared/src/components/toastals/user-intent-dialog/utils.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2022 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/



const dataToArray = data => (Array.isArray(data) ? data : [data]);
function recommendationMetadataMatchesKey(recommendation, answers, key) {
    return dataToArray(recommendation.recommendationMetadata[key]).some(metadata => { var _a; return (_a = answers[key]) === null || _a === void 0 ? void 0 : _a.includes(metadata); });
}
function getBackupHero(recs) {
    var _a;
    return (_a = recs === null || recs === void 0 ? void 0 : recs.splice(user_intent_dialog_constants["c" /* MAX_RECOMMENDATIONS_COUNT */])) === null || _a === void 0 ? void 0 : _a.find(recommendation => recommendation.hero);
}
function computeRecommendationsWithHeroCard(recommendations) {
    const proposedRecommendations = recommendations === null || recommendations === void 0 ? void 0 : recommendations.slice(0, user_intent_dialog_constants["c" /* MAX_RECOMMENDATIONS_COUNT */]);
    // if we already have a hero card
    if (proposedRecommendations === null || proposedRecommendations === void 0 ? void 0 : proposedRecommendations.some(recommendation => recommendation.hero)) {
        return proposedRecommendations;
    }
    // if we don't have a hero card, we need to compute one
    const hero = getBackupHero(recommendations);
    // if we find another hero card, replace the last one in the proposed recommendations
    // (given the fact that in fallback mode we sort the recommendations by matching answers,
    // we can assume that the last one is the least relevant).
    if (hero) {
        proposedRecommendations[user_intent_dialog_constants["c" /* MAX_RECOMMENDATIONS_COUNT */] - 1] = hero;
    }
    else {
        // if we don't have any hero card make the first one a hero card
        if (proposedRecommendations === null || proposedRecommendations === void 0 ? void 0 : proposedRecommendations[0]) {
            proposedRecommendations[0].hero = true;
        }
    }
    return proposedRecommendations;
}
function computeRecommendationsToDisplay(answersMetadata, recommendations) {
    var _a, _b, _c;
    const computedAnswers = {};
    answersMetadata.forEach(answer => {
        Object.keys(answer).forEach(key => {
            if (answer[key]) {
                const answerArray = dataToArray(answer[key]);
                if (!computedAnswers[key]) {
                    computedAnswers[key] = [];
                }
                computedAnswers[key].push(...answerArray);
            }
        });
    });
    // Find all recommendations that completely match the user's answers
    const recommendationsToDisplay = (_a = recommendations === null || recommendations === void 0 ? void 0 : recommendations.items) === null || _a === void 0 ? void 0 : _a.filter(recommendation => {
        return Object.keys(recommendation.recommendationMetadata).every(key => recommendationMetadataMatchesKey(recommendation, computedAnswers, key));
    });
    if (recommendationsToDisplay === null || recommendationsToDisplay === void 0 ? void 0 : recommendationsToDisplay.length) {
        return computeRecommendationsWithHeroCard(recommendationsToDisplay);
    }
    // if there are no recommendations that completely match the user's answers,
    // fallback and find the recommendations that match the most answers
    const fallbackRecommendations = (_c = (_b = recommendations === null || recommendations === void 0 ? void 0 : recommendations.items) === null || _b === void 0 ? void 0 : _b.map(recommendation => {
        const matchingAnswers = Object.keys(recommendation.recommendationMetadata).filter(key => recommendationMetadataMatchesKey(recommendation, computedAnswers, key));
        return { ...recommendation, matchingAnswers: matchingAnswers.length };
    })) === null || _c === void 0 ? void 0 : _c.sort((a, b) => {
        // if we have the same number of matchingAnswers, prefer the beginner ones
        if (a.matchingAnswers === b.matchingAnswers && a.matchingAnswers === 0) {
            return a.recommendationMetadata.level === user_intent_dialog_constants["d" /* RECOMMENDATION_LEVELS */].BEGINNER ? -1 : 1;
        }
        return b.matchingAnswers - a.matchingAnswers;
    });
    return computeRecommendationsWithHeroCard(fallbackRecommendations);
}
const logAnalyticsErrorEvent = (errorMessage, errorCode, analyticsCallback) => {
    console.error(errorMessage);
    const errorPayload = {
        desc: errorMessage,
        type: user_intent_dialog_constants["g" /* UserIntentDialogErrorType */],
        code: errorCode,
    };
    Object(Utils["a" /* callIfFunction */])(analyticsCallback, errorPayload);
};
function questionsFilter(questions, analyticsCallback) {
    return questions === null || questions === void 0 ? void 0 : questions.filter(question => {
        var _a, _b, _c, _d, _e, _f;
        // if we don't have a question's text, remove it
        if (!((_b = (_a = question.text) === null || _a === void 0 ? void 0 : _a.trim) === null || _b === void 0 ? void 0 : _b.call(_a).length)) {
            logAnalyticsErrorEvent(`UserIntentDialog: Question ${question._path} has no title`, user_intent_dialog_constants["f" /* UserIntentDialogErrorCodes */].QUESTION_WITH_MISSING_TITLE, analyticsCallback);
            return false;
        }
        const initialNumberOfAnswers = (_c = question.answers) === null || _c === void 0 ? void 0 : _c.length;
        // remove the answers that don't have a title or enough metadata
        question.answers = (_d = question.answers) === null || _d === void 0 ? void 0 : _d.filter(answer => { var _a, _b, _c, _d; return ((_b = (_a = answer.title) === null || _a === void 0 ? void 0 : _a.trim()) === null || _b === void 0 ? void 0 : _b.length) && (((_c = answer.metadata) === null || _c === void 0 ? void 0 : _c.level) || ((_d = answer.metadata) === null || _d === void 0 ? void 0 : _d.categories)); });
        if (((_e = question.answers) === null || _e === void 0 ? void 0 : _e.length) !== initialNumberOfAnswers) {
            logAnalyticsErrorEvent(`UserIntentDialog: Question ${question._path} has answers with no title or metadata`, user_intent_dialog_constants["f" /* UserIntentDialogErrorCodes */].ANSWERS_WITH_MISSING_TITLE_OR_METADATA, analyticsCallback);
        }
        if (!((_f = question.answers) === null || _f === void 0 ? void 0 : _f.length)) {
            logAnalyticsErrorEvent(`UserIntentDialog: Question ${question._path} has no answers left after filtering.`, user_intent_dialog_constants["f" /* UserIntentDialogErrorCodes */].QUESTION_WITHOUT_ANSWERS, analyticsCallback);
            // if we don't have any answers, remove the question
            return false;
        }
        return true;
    });
}
const isLeftOrRightArrowKey = key => [components_constants.KEYBOARD_EVENT_KEYS.LEFT, components_constants.KEYBOARD_EVENT_KEYS.RIGHT].includes(key);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-firstmile-shared/src/components/toastals/user-intent-dialog/questionnaire/ButtonsAnswers.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2022 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/








const ButtonsAnswers_styles = __webpack_require__("AamN");
class ButtonsAnswers_ButtonsAnswers extends react_default.a.Component {
    constructor() {
        super(...arguments);
        this._lastFocusedButtonIndex = 0;
        this._buildButtonAnswerAnalytics = (answer, index, answerType) => {
            var _a, _b, _c, _d;
            return ({
                ...(_a = this.props.containerAnalytics) === null || _a === void 0 ? void 0 : _a.eventData,
                subtype: ANALYTICS_SUBTYPES.ANSWER,
                uiSequence: index + 1,
                contentName: answer.title,
                contentType: answerType,
                contentCategory: ((_b = answer.metadata) === null || _b === void 0 ? void 0 : _b.level) || ((_d = (_c = answer.metadata) === null || _c === void 0 ? void 0 : _c.categories) === null || _d === void 0 ? void 0 : _d.toString()),
            });
        };
        this._logClickAnalytics = (key, answer) => {
            const { analytics, containerAnalytics } = this.props;
            analytics === null || analytics === void 0 ? void 0 : analytics.logEvent(containerAnalytics.component, this._buildButtonAnswerAnalytics(answer, key, user_intent_dialog_constants["a" /* AnswerType */].BUTTONS), 'click');
        };
        this._handleAnswerClick = (questionIndex, key, answer) => {
            this.props.updateSelectedAnswer(questionIndex, key);
            this._logClickAnalytics(key, answer);
        };
        this._setFocusOnButton = (index) => {
            const button = document.getElementById(`answer-button-${index}`);
            button === null || button === void 0 ? void 0 : button.focus();
            this._lastFocusedButtonIndex = index;
        };
        this._handleButtonKeyDown = (event) => {
            var _a;
            if (isLeftOrRightArrowKey(event.key)) {
                const numOfButtons = ((_a = this.props.answers) === null || _a === void 0 ? void 0 : _a.length) || 0;
                if (numOfButtons) {
                    let nextButtonToFocusIndex;
                    if (event.key === components_constants.KEYBOARD_EVENT_KEYS.LEFT) {
                        nextButtonToFocusIndex =
                            this._lastFocusedButtonIndex >= 1 ? this._lastFocusedButtonIndex - 1 : numOfButtons - 1;
                    }
                    else {
                        nextButtonToFocusIndex =
                            this._lastFocusedButtonIndex < numOfButtons - 1 ? this._lastFocusedButtonIndex + 1 : 0;
                    }
                    this._setFocusOnButton(nextButtonToFocusIndex);
                }
            }
        };
    }
    render() {
        const { answers, questionIndex } = this.props;
        return (react_default.a.createElement("div", { tabIndex: 0, onFocus: () => this._setFocusOnButton(this._lastFocusedButtonIndex), onKeyDown: event => this._handleButtonKeyDown(event), "data-qe-id": `buttons-container-${questionIndex}`, className: ButtonsAnswers_styles.buttonAnswersContainer }, answers === null || answers === void 0 ? void 0 : answers.map((answer, key) => {
            const isSelected = this.props.currentAnswers[questionIndex] === key;
            return (react_default.a.createElement(Button_default.a, { key: key, type: "button", id: `answer-button-${key}`, "data-qe-id": `answer-button-${key}`, variant: "primary", tabIndex: -1, onFocus: event => {
                    event.stopPropagation();
                }, selected: isSelected, className: classnames_default()(ButtonsAnswers_styles.answerButton, isSelected && ButtonsAnswers_styles.isSelected), icon: isSelected ? react_default.a.createElement(Checkmark, { className: ButtonsAnswers_styles.buttonCheckmark }) : null, onKeyUp: event => {
                    if (event.key === components_constants.KEYBOARD_EVENT_KEYS.SPACE) {
                        this._handleAnswerClick(questionIndex, key, answer);
                    }
                }, onMouseDown: () => {
                    this._handleAnswerClick(questionIndex, key, answer);
                } },
                react_default.a.createElement("span", null, answer.title)));
        })));
    }
}

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-firstmile-shared/src/common/LocalStorage.ts
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2020 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
/**
 * Simple module so all local storage related stuff has a centralized wrapper.
 */
class LocalStorage {
    get userID() {
        try {
            // Prevent cyclic dependency in webpack.
            const mainStore = __webpack_require__("cCFZ").mainStore;
            return mainStore.user.UserProfile.userId;
        }
        catch (e) {
            console.error(e);
        }
    }
    /**
     * Set a value to the local storage for a specified userID.
     *
     * @param userID            {String} user's associated ID value
     * @param key               {String} local store key
     * @param val               {Object} value to store
     */
    setUserItem(key, val) {
        if (!key || !this.userID) {
            return;
        }
        window.localStorage.setItem(`${this.userID}_${key}`, JSON.stringify(val));
    }
    /**
     * Clear an entry to the local storage for a specified userID.
     *
     * @param key               {String} local store key
     */
    clearUserItem(key) {
        if (!key || !this.userID) {
            console.warn(`LocalStorage.clearUserItem(key) :: missing key or userID`);
            return;
        }
        window.localStorage.removeItem(`${this.userID}_${key}`);
    }
    /**
     * Get a value from local storage for a specified userID.
     * If the value is not found, a null object is returned.
     *
     * @param userID            {String} user's associated ID value
     * @param key               {String} local store key
     * @return {Object} stored value or null if not present.
     */
    getUserItem(key) {
        let val;
        if (this.userID && key) {
            val = window.localStorage.getItem(this.userID + '_' + key);
        }
        try {
            val = JSON.parse(val);
        }
        catch (err) {
            val = undefined;
        }
        return val;
    }
    /**
     * Set a value to the local storage.
     *
     * @param key               {String} local store key
     * @param val               {Object} value to store
     */
    setGlobalItem(key, val) {
        if (!key) {
            return;
        }
        window.localStorage.setItem(key, JSON.stringify(val));
    }
    /**
     * Clear an entry to the local storage.
     *
     * @param key               {String} local store key
     */
    clearGlobalItem(key) {
        if (!key) {
            return;
        }
        window.localStorage.removeItem(key);
    }
    /**
     * Get a value from local storage.
     * If the value is not found, a null object is returned.
     *
     * @param key               {String} local store key
     * @return {Object} stored value or null if not present.
     */
    getGlobalItem(key) {
        let val;
        if (key) {
            val = window.localStorage.getItem(key);
        }
        try {
            val = JSON.parse(val);
        }
        catch (err) {
            val = undefined;
        }
        return val;
    }
}
const LocalStorage_localstorage = new LocalStorage();
/* harmony default export */ var common_LocalStorage = (LocalStorage_localstorage);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-firstmile-shared/src/components/carousel/carousels/default/Carousel.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2021 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var Carousel_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;
};
var Carousel_metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var Carousel_a, Carousel_b, Carousel_c;












const Carousel_styles = __webpack_require__("3w7n");
const stylesForCard = __webpack_require__("EiP9");
const CAROUSEL_START_INDEX = 'CarouselStartIndex';
const TRANSLATE_PERCENTAGE_PER_CARD = 100;
// Card padding in px (value is also in css file divided by 2)
const CARD_PADDING = 65;
const NO_CARD_PADDING = 0;
const DEFAULT_ANIMATION_DURATION_MS = 300;
const Carousel_TOAST_TIMEOUT_DURATION = 3000;
const Carousel_HIDE_ELEMENT_WINDOW_WIDTH = {
    rightToutCarousel: 1400,
};
const Carousel_MULTIPLE_CARDS_CAROUSEL_BREAKPOINTS = {
    MIN_FOUR_CARDS_WIDTH: 1250,
    MAX_TWO_CARDS_WIDTH: 1050,
};
const Carousel_CARDS_TYPES = {
    smallTout: components_SmallTout,
    dynamicTout: cards_DynamicTout_DynamicTout,
    multipleCards: cards_DynamicCard_DynamicCard,
    rightCarouselCards: cards_DynamicCard_DynamicCard,
    questionnaireCards: cards_QuestionnaireCard_QuestionnaireCard,
    customContentTout: cards_CustomContentTout_CustomContentTout,
    customContentCard: cards_CustomContentCard_CustomContentCard,
};
const Carousel_CAROUSEL_CARD_TYPE = {
    QUESTIONNAIRE_CARDS: 'questionnaireCards',
    MULTIPLE_CARDS: 'multipleCards',
    RIGHT_TOUT_CAROUSEL: 'rightCarouselCards',
    ROW: 'dynamicTout',
};
const Carousel_CAROUSEL_TYPE = {
    QUESTIONNAIRE_CARDS_CAROUSEL: 'questionnaireCardsCarousel',
    MULTIPLE_CARDS_CAROUSEL: 'multipleCardsCarousel',
    RIGHT_TOUT_CAROUSEL: 'rightToutCarousel',
    DEFAULT: 'fullCarousel',
};
const Carousel_carouselInstances = [];
var Carousel_SlideshowInteractiveElementType;
(function (SlideshowInteractiveElementType) {
    SlideshowInteractiveElementType["ARROW"] = "arrow";
    SlideshowInteractiveElementType["DOT"] = "dot";
})(Carousel_SlideshowInteractiveElementType || (Carousel_SlideshowInteractiveElementType = {}));
var Carousel_ArrowDirection;
(function (ArrowDirection) {
    ArrowDirection["RIGHT"] = "right";
    ArrowDirection["LEFT"] = "left";
})(Carousel_ArrowDirection || (Carousel_ArrowDirection = {}));
const checkCarouselCardType = (DefaultCarouselCardType, cardType) => {
    if (!DefaultCarouselCardType) {
        const errorString = `No component exists for ${cardType} in Carousel.`;
        console.log(errorString, { error: true });
        throw new Error(errorString);
    }
};
const getCardType = (cardTypeKey, DefaultCarouselCardType) => Carousel_CARDS_TYPES[cardTypeKey] || DefaultCarouselCardType;
// for the moment we want to attach the handler only to the custom content cards
const shouldAttachCTAHandler = data => (data === null || data === void 0 ? void 0 : data.cardType) && Carousel_CARDS_TYPES[data.cardType] && data.contentType === components_constants.RECOMMENDATION_TYPE.CUSTOM_CONTENT;
const getCTAHandlerConfig = (data, ctaHandlerProps) => (shouldAttachCTAHandler(data) && ctaHandlerProps) || {};
let Carousel_default_1 = class default_1 extends react["Component"] {
    constructor(props) {
        super(props);
        this._initialActiveIndex = 0;
        this._alreadySeen = false;
        this._startedVisible = true;
        // Illustrator right card carousel
        this._isRightToutCarousel = true;
        this._isSearchVisible = false;
        this._isRightToutCarouselVisible = true;
        this._prevWindowWidth = 0;
        this.slidesPerPage = 0;
        this.pagesNumber = 2;
        this.currentPage = 1;
        this._slidesToMove = 3;
        this._cardPadding = CARD_PADDING;
        this.state = {
            isVisible: new Array(this.props.cardsData.length).fill(false),
            hideRightArrow: false,
            hideLeftArrow: true,
        };
        // General
        this.activeIndex = -1;
        this.isFocused = false;
        this.currentElementTargetedByCursorId = '';
        // the carousel has 2 extra cards - the first and the last cards are being duplicated to make sure the sliding transition is smooth
        // since these 2 extras have the same ids, `currentCardIsACopy` will tell if the current card is an extra copy
        this.currentCardIsACopy = false;
        this.isHomeScreenVisible = false;
        // Stop looping cards when we reached the wanted limit
        // count the number of slides that happened
        this._slidesCount = 0;
        this._carouselVisibilityChangedAfterResize = (currWindowWidth, prevWindowWidth) => {
            if (currWindowWidth && !prevWindowWidth) {
                return true;
            }
            return ((prevWindowWidth < Carousel_HIDE_ELEMENT_WINDOW_WIDTH.rightToutCarousel &&
                currWindowWidth >= Carousel_HIDE_ELEMENT_WINDOW_WIDTH.rightToutCarousel) ||
                (prevWindowWidth >= Carousel_HIDE_ELEMENT_WINDOW_WIDTH.rightToutCarousel &&
                    currWindowWidth < Carousel_HIDE_ELEMENT_WINDOW_WIDTH.rightToutCarousel));
        };
        this._handleRightToutCarouselAfterResize = (currentWindowWidth) => {
            if (!this.isHomeScreenVisible ||
                !this._carouselVisibilityChangedAfterResize(currentWindowWidth, this._prevWindowWidth)) {
                return;
            }
            if (!!currentWindowWidth && currentWindowWidth >= Carousel_HIDE_ELEMENT_WINDOW_WIDTH.rightToutCarousel) {
                this.resetSlideShow();
                this._isRightToutCarouselVisible = true;
                /*
                    These flag checks make sure that we only log a render event in the case when
                    the user starts the app with a small window and resizes to a bigger one, causing the Carousel
                    to be rendered for the first time.
                */
                if (!this._alreadySeen) {
                    this._alreadySeen = true;
                    !this._startedVisible && this._logAnalyticsRenderEvent(false);
                }
            }
            else {
                this.stopSlideShow();
                this._isRightToutCarouselVisible = false;
                if (this._startedVisible) {
                    this._startedVisible = false;
                }
            }
        };
        this._handleWindowResize = () => {
            var _a;
            const currentWindowWidth = (_a = document.documentElement) === null || _a === void 0 ? void 0 : _a.clientWidth;
            if (this._isRightToutCarousel) {
                this._handleRightToutCarouselAfterResize(currentWindowWidth);
            }
            // Questionnaire carousel is not affected by window resize
            if (this.props.cardType === Carousel_CAROUSEL_CARD_TYPE.MULTIPLE_CARDS) {
                this.setParams();
            }
            this._prevWindowWidth = currentWindowWidth;
        };
        this.prevIndex = (currentIndex) => {
            return currentIndex >= 1 ? currentIndex - 1 : this.props.cardsData.length - 1;
        };
        this.nextIndex = (currentIndex) => {
            return currentIndex < this.props.cardsData.length - 1 ? currentIndex + 1 : 0;
        };
        this._handleIndicatorClicked = (index) => {
            var _a;
            this._logAnalyticsClickEvent('dot', index + 1);
            if ((_a = this.props.homeScreenCarouselOptions) === null || _a === void 0 ? void 0 : _a.animationResetRequired) {
                this.restartSlideShow(index, true);
            }
            else {
                if (this._isRightToutCarousel) {
                    const isForwardDirection = index > this.activeIndex;
                    this._slideToCard(index, isForwardDirection, true);
                }
                else {
                    this._switchToCardAndStartSlideShow(index, true);
                }
            }
        };
        this._storeCarouselStartIndex = () => {
            const startIndexKey = this.props.usageId + CAROUSEL_START_INDEX;
            common_LocalStorage.setGlobalItem(startIndexKey, this.activeIndex);
        };
        this._getTranslatePercentage = (cardIndex) => {
            // Needed for
            // - Full carousel - to make the cards have a fully visible width; otherwise, 1/3 of the carousel won't be
            //   visible, being overlapped by the next card
            // - Right tout carousel - to make the backwards sliding animation from the first card to the last card work
            cardIndex += 1;
            return -(cardIndex * TRANSLATE_PERCENTAGE_PER_CARD);
        };
        this._switchToCardAndStartSlideShow = (index, isUserInitiated = false) => {
            this._switchToCard(index, isUserInitiated);
            // Store current index as startIndex for next mount/relaunch of app, if app is closed before animation starts.
            this._storeCarouselStartIndex();
            this.resetSlideShow();
        };
        this._switchToCardAndStopSlideShow = (index, isUserInitiated = false) => {
            this._switchToCard(index, isUserInitiated);
            // Store current index as startIndex for next mount/relaunch of app, if app is closed before animation starts.
            this._storeCarouselStartIndex();
            this.stopSlideShow();
        };
        this._slideToCardAndStopSlideShow = (index, forwardDirection, isUserInitiated = false) => {
            this._slideToCard(index, forwardDirection, isUserInitiated);
            // Store current index as startIndex for next mount/relaunch of app, if app is closed before animation starts.
            this._storeCarouselStartIndex();
            this.stopSlideShow();
        };
        /* Moves to given index card without animation */
        this._switchToCard = (index, isUserInitiated = false) => {
            var _a;
            if (this._slideInProgress || index === this.activeIndex) {
                return;
            }
            this.activeIndex = index;
            this._isRightToutCarousel &&
                this.setState({
                    isVisible: new Array(this._numberOfCards + 2)
                        .fill(false)
                        .fill(true, this.activeIndex + 1, this.activeIndex + 2),
                });
            // it doesn't switch to any of the copies
            this.currentCardIsACopy = false;
            const finalTranslate = this._getTranslatePercentage(this.activeIndex);
            if (this._itemContainerRef && this._itemContainerRef.current && this._itemContainerRef.current.style) {
                // Card padding offset
                const offsetPadding = (this._isRightToutCarousel
                    ? this.activeIndex * this._cardPadding
                    : ((_a = this.props.homeScreenCarouselOptions) === null || _a === void 0 ? void 0 : _a.offsetPaddingRequired) ? (this.activeIndex + 1) * this._cardPadding
                        : 0) + 'px';
                this._itemContainerRef.current.style.transform =
                    'translateX(calc(' + finalTranslate + '% - ' + offsetPadding + '))';
            }
            this._logAnalyticsRenderEvent(isUserInitiated);
        };
        /* Moves to given index card with sliding animation */
        this._slideToCard = (index, forwardDirection, isUserInitiated = false) => {
            var _a;
            if (this._slideInProgress || index === this.activeIndex) {
                return;
            }
            this._slidesCount++;
            this._slideInProgress = true;
            let numOfCardsToSlide = 0;
            if (forwardDirection) {
                numOfCardsToSlide = index > this.activeIndex ? index - this.activeIndex : 1;
                // if the activeIndex is the last card, that means that it will slide to the copy of the first card (when moving forward)
                this.currentCardIsACopy = this.activeIndex === this._numberOfCards - 1 && index === 0;
            }
            else {
                numOfCardsToSlide = index < this.activeIndex ? index - this.activeIndex : -1;
                // if the activeIndex is the first card, that means that it will slide to the copy of the last card (when moving backwards)
                this.currentCardIsACopy = this.activeIndex === 0 && index === this._numberOfCards - 1;
            }
            const currentTranslate = this._getTranslatePercentage(this.activeIndex);
            const finalTranslate = currentTranslate - numOfCardsToSlide * TRANSLATE_PERCENTAGE_PER_CARD;
            if (Math.abs(numOfCardsToSlide) > 1) {
                const defaultDuration = ((_a = this.props.homeScreenCarouselOptions) === null || _a === void 0 ? void 0 : _a.animationDurationMs) || DEFAULT_ANIMATION_DURATION_MS;
                const additionalDuration = this._easeCircleIn((Math.abs(numOfCardsToSlide) - 1) / this._numberOfCards) * 2.5 * defaultDuration;
                const animationDuration = defaultDuration + additionalDuration;
                this._animationRequestId = window.requestAnimationFrame(timestamp => {
                    this._handleAnimation(timestamp, timestamp, currentTranslate, finalTranslate, forwardDirection, animationDuration);
                });
            }
            else {
                this._animationRequestId = window.requestAnimationFrame(timestamp => {
                    this._handleAnimation(timestamp, timestamp, currentTranslate, finalTranslate, forwardDirection);
                });
            }
            this.activeIndex = index;
            if (this._isRightToutCarousel) {
                const currentCard = this.activeIndex === 0 && (this.currentCardIsACopy || this._slidesCount % this._numberOfCards === 0)
                    ? this._numberOfCards + 1
                    : this.activeIndex + 1;
                this.setState({
                    isVisible: new Array(this._numberOfCards + 2).fill(false).fill(true, currentCard, currentCard + 1),
                });
            }
            // Store current index as startIndex for next mount/relaunch of app, if app is closed before animation starts.
            this._storeCarouselStartIndex();
            this._logAnalyticsRenderEvent(isUserInitiated);
        };
        /* Function to perform animation using requestAnimationFrame */
        this._handleAnimation = (currentTime, startTime, initialTranslate, finalTranslate, isForwardDirection, animationDuration) => {
            var _a, _b;
            // Computes the amount of incremental translate percentage required based on current and start time and translates by
            // same amount. This function is called recursively through requestAnimationFrame. Once newTranslate equals finalTranslate
            // cancelAnimationFrame is called. Every call to _handleAnimation through requestAnimationFrame receives updated
            // current time.
            const delay = animationDuration || ((_a = this.props.homeScreenCarouselOptions) === null || _a === void 0 ? void 0 : _a.animationDurationMs) ||
                DEFAULT_ANIMATION_DURATION_MS;
            const runtime = currentTime - startTime;
            const progress = Math.min(runtime / delay, 1);
            let newTranslate;
            const totalTranslatePercentage = Math.abs(initialTranslate - finalTranslate);
            if (isForwardDirection) {
                newTranslate = Math.max(initialTranslate - progress * totalTranslatePercentage, finalTranslate);
            }
            else {
                newTranslate = Math.min(initialTranslate + progress * totalTranslatePercentage, finalTranslate);
            }
            if (this._itemContainerRef && this._itemContainerRef.current) {
                // Adds card padding and also fixes offset when last slide is in view
                // and transitioning to first slide
                const offsetPadding = (!((_b = this.props.homeScreenCarouselOptions) === null || _b === void 0 ? void 0 : _b.offsetPaddingRequired)
                    ? 0
                    : isForwardDirection
                        ? (this.activeIndex === 0 ? this._numberOfCards + 1 : this.activeIndex + 1) * this._cardPadding
                        : (this.activeIndex === this._numberOfCards - 1 ? 0 : this.activeIndex + 1) * this._cardPadding) +
                    'px';
                this._itemContainerRef.current.style.transform =
                    'translateX(calc(' + newTranslate + '% - ' + offsetPadding + '))';
            }
            if (newTranslate === finalTranslate) {
                if (this._animationRequestId) {
                    window.cancelAnimationFrame(this._animationRequestId);
                }
                this._slideInProgress = false;
            }
            else {
                this._animationRequestId = window.requestAnimationFrame(timestamp => {
                    this._handleAnimation(timestamp, startTime, initialTranslate, finalTranslate, isForwardDirection, animationDuration);
                });
            }
        };
        this._openLink = () => {
            if (this._isMultipleCardsCarousel) {
                return;
            }
            const { primaryCTA, content, containerAnalytics, logEvent } = this.props.cardsData[this.activeIndex];
            if (primaryCTA) {
                this.context.utils.CallToActionHandler.handleCallToAction({ content, ...primaryCTA }, containerAnalytics, logEvent, this);
            }
        };
        this._openActiveCard = () => {
            var _a;
            const currentCard = this.activeIndex === 0 && (this.currentCardIsACopy || this._slidesCount % this._numberOfCards === 0)
                ? this._numberOfCards + 1
                : this.activeIndex + 1;
            const cardAccessibleButton = (_a = document.getElementById(`dynamic-card-${currentCard}`)) === null || _a === void 0 ? void 0 : _a.firstChild;
            cardAccessibleButton === null || cardAccessibleButton === void 0 ? void 0 : cardAccessibleButton.click();
        };
        this._clickOnCurrentElementTargetedByCursor = () => {
            if (this.currentElementTargetedByCursorId.includes(`carousel-indicator`)) {
                const targetIndicator = document.getElementById(this.currentElementTargetedByCursorId);
                targetIndicator === null || targetIndicator === void 0 ? void 0 : targetIndicator.click();
            }
            else if (this.currentElementTargetedByCursorId !== '') {
                this._openActiveCard();
            }
        };
        this._handleKeyDown = (event) => {
            var _a, _b, _c;
            // this is only used at the moment by the Questionnaire carousel
            (_b = (_a = this.props).handleKeyDown) === null || _b === void 0 ? void 0 : _b.call(_a, event, this.prevIndex, this.nextIndex);
            if (event.key === components_constants.KEYBOARD_EVENT_KEYS.ENTER || event.key === components_constants.KEYBOARD_EVENT_KEYS.SPACE) {
                if ((_c = this.props.homeScreenCarouselOptions) === null || _c === void 0 ? void 0 : _c.shouldOpenLinkOnClick) {
                    this._openLink();
                }
                else if (this._isRightToutCarousel) {
                    this._openActiveCard();
                }
                return;
            }
            let index = -1;
            let interactiveElement;
            let analyticsCardIndex;
            if (event.key === components_constants.KEYBOARD_EVENT_KEYS.LEFT ||
                event.key === components_constants.KEYBOARD_EVENT_KEYS.UP ||
                event.key === components_constants.KEYBOARD_EVENT_KEYS.PAGEUP) {
                if (this._isMultipleCardsCarousel) {
                    this.slideLeft(true);
                }
                else {
                    index = this.activeIndex > 0 ? this.activeIndex - 1 : this._numberOfCards - 1;
                    interactiveElement = Carousel_ArrowDirection.LEFT;
                    analyticsCardIndex = this.activeIndex + 1;
                }
            }
            else if (event.key === components_constants.KEYBOARD_EVENT_KEYS.RIGHT ||
                event.key === components_constants.KEYBOARD_EVENT_KEYS.DOWN ||
                event.key === components_constants.KEYBOARD_EVENT_KEYS.PAGEDOWN) {
                if (this._isMultipleCardsCarousel) {
                    this.slideRight(true);
                }
                else {
                    index = (this.activeIndex + 1) % this._numberOfCards;
                    interactiveElement = Carousel_ArrowDirection.RIGHT;
                    analyticsCardIndex = this.activeIndex + 1;
                }
            }
            else if (event.key === components_constants.KEYBOARD_EVENT_KEYS.HOME ||
                event.key === components_constants.KEYBOARD_EVENT_KEYS.MAC_HOME) {
                if (this._isMultipleCardsCarousel) {
                    this.slideLeft(true);
                }
                else {
                    index = 0;
                    interactiveElement = 'dot';
                    analyticsCardIndex = index + 1;
                }
            }
            else if (event.key === components_constants.KEYBOARD_EVENT_KEYS.END) {
                if (this._isMultipleCardsCarousel) {
                    this.slideRight(true);
                }
                else {
                    index = this._numberOfCards - 1;
                    interactiveElement = 'dot';
                    analyticsCardIndex = index + 1;
                }
            }
            // Animation should stop only when user navigates to other card using keyboard
            if (index !== -1) {
                this._logAnalyticsClickEvent(interactiveElement, analyticsCardIndex);
                if (this._isRightToutCarousel) {
                    const isForwardDirection = interactiveElement === Carousel_ArrowDirection.RIGHT;
                    this._slideToCardAndStopSlideShow(index, isForwardDirection, true);
                }
                else {
                    this._switchToCardAndStopSlideShow(index, true);
                }
            }
        };
        this._onPointerEnter = () => {
            carouselStore.setIsPointerInsideState(true);
            this.stopSlideShow();
        };
        this._onPointerLeave = () => {
            carouselStore.setIsPointerInsideState(false);
            this.startSlideShow();
        };
        this.handleToutFeedbackCallback = (sentiment, id, eventData) => {
            this._toast = {
                closeable: false,
                variant: 'success',
                messageId: 'dhscr_multiple_cards_feedback_submit_success',
            };
            clearTimeout(this._toastTimeout);
            this._toastTimeout = setTimeout(() => {
                clearTimeout(this._toastTimeout);
                this._toast = null;
            }, Carousel_TOAST_TIMEOUT_DURATION);
            this.props.handleToutFeedbackCallback(sentiment, id, eventData);
        };
        this.startSlideShow = () => {
            if (!this.isHomeScreenVisible ||
                carouselStore.isFeedbackMenuOpen ||
                carouselStore.isPointerInside ||
                this._isMultipleCardsCarousel ||
                this._isSearchVisible ||
                (this._isRightToutCarousel && !this._isCarouselVisible(Carousel_CAROUSEL_TYPE.RIGHT_TOUT_CAROUSEL))) {
                return;
            }
            clearInterval(this._animationInterval);
            this._animationInterval = setInterval(() => {
                var _a;
                const index = (this.activeIndex + 1) % this._numberOfCards;
                if (this._slidesCount < ((_a = this.props.homeScreenCarouselOptions) === null || _a === void 0 ? void 0 : _a.loopCount) * this.props.cardsData.length) {
                    this._slideToCard(index, true);
                }
            }, this.props.animationDelay);
        };
        this.resetSlideShow = () => {
            var _a;
            this.stopSlideShow();
            if ((_a = this.props.homeScreenCarouselOptions) === null || _a === void 0 ? void 0 : _a.animationResetRequired) {
                carouselStore.setSlidesCount(0);
                this._slidesCount = 0;
            }
            this.startSlideShow();
        };
        this.stopSlideShow = () => {
            this._initialActiveIndex = this.activeIndex;
            clearInterval(this._animationInterval);
        };
        this._enableFocus = () => {
            this.isFocused = true;
        };
        this._disableFocus = () => {
            this.isFocused = false;
        };
        const DefaultCarouselCardType = Carousel_CARDS_TYPES[this.props.cardType];
        this._isMultipleCardsCarousel =
            this.props.cardType === Carousel_CAROUSEL_CARD_TYPE.MULTIPLE_CARDS ||
                this.props.cardType === Carousel_CAROUSEL_CARD_TYPE.QUESTIONNAIRE_CARDS;
        this._carouselContainerRef = react["createRef"]();
        this.props.cardType === Carousel_CAROUSEL_CARD_TYPE.RIGHT_TOUT_CAROUSEL
            ? (this._cardPadding = NO_CARD_PADDING)
            : (this._isRightToutCarousel = false);
        checkCarouselCardType(DefaultCarouselCardType, this.props.cardType);
        this._itemContainerRef = react["createRef"]();
        if (this._isMultipleCardsCarousel) {
            this.slideLeft = this.slideLeft.bind(this);
            this.slideRight = this.slideRight.bind(this);
        }
        else {
            carouselStore.setStopSlideshowFn(this.stopSlideShow);
            carouselStore.setResetSlideshowFn(this.resetSlideShow);
        }
        const startIndexKey = this.props.usageId + CAROUSEL_START_INDEX;
        // Carousel instances are removed from the storage in the App.tsx file in start-uxp
        if (Carousel_carouselInstances.indexOf(startIndexKey) === -1) {
            Carousel_carouselInstances.push(startIndexKey);
            common_LocalStorage.setGlobalItem('carouselInstances', Carousel_carouselInstances);
        }
    }
    _buildCardAnalyticsData() {
        const currentCard = this.props.cardsData[this.activeIndex];
        return {
            id: currentCard === null || currentCard === void 0 ? void 0 : currentCard.id,
            title: currentCard === null || currentCard === void 0 ? void 0 : currentCard.title,
            category: currentCard === null || currentCard === void 0 ? void 0 : currentCard.type,
            source: currentCard === null || currentCard === void 0 ? void 0 : currentCard.source,
            metadata: currentCard === null || currentCard === void 0 ? void 0 : currentCard.modelMetadata,
            type: currentCard === null || currentCard === void 0 ? void 0 : currentCard.type,
        };
    }
    _logAnalyticsClickEvent(interactiveElement, currentCardIndex) {
        var _a, _b, _c;
        const { containerAnalytics, logEvent } = this.props;
        let eventData = {
            ...containerAnalytics === null || containerAnalytics === void 0 ? void 0 : containerAnalytics.eventData,
            subtype: containerAnalytics === null || containerAnalytics === void 0 ? void 0 : containerAnalytics.component,
            recommendationsJson: (_c = (_b = (_a = this.context) === null || _a === void 0 ? void 0 : _a.ututs) === null || _b === void 0 ? void 0 : _b.recommendationsJsonData) === null || _c === void 0 ? void 0 : _c.call(_b),
        };
        interactiveElement && Object.assign(eventData, { value: interactiveElement });
        currentCardIndex && Object.assign(eventData, { uiSequence: currentCardIndex });
        this._isMultipleCardsCarousel && Object.assign(eventData, { count: this.slidesPerPage });
        logEvent(containerAnalytics.component, eventData, 'click');
    }
    _renderEventParams(isUserInitiated = false) {
        var _a, _b, _c, _d, _e, _f, _g, _h, _j;
        const { containerAnalytics } = this.props;
        const currentCard = this.props.cardsData[this.activeIndex];
        let eventData = {
            ...containerAnalytics === null || containerAnalytics === void 0 ? void 0 : containerAnalytics.eventData,
            subtype: 'suggestion',
            recommendationsJson: (_c = (_b = (_a = this.context) === null || _a === void 0 ? void 0 : _a.ututs) === null || _b === void 0 ? void 0 : _b.recommendationsJsonData) === null || _c === void 0 ? void 0 : _c.call(_b),
            cardAnalyticsData: this._buildCardAnalyticsData(),
            uiSequence: this.activeIndex + 1,
            contentId: ((_f = (_e = (_d = currentCard === null || currentCard === void 0 ? void 0 : currentCard.primaryCTA) === null || _d === void 0 ? void 0 : _d.ctaDeeplinkData) === null || _e === void 0 ? void 0 : _e.data) === null || _f === void 0 ? void 0 : _f.uuid) || (currentCard === null || currentCard === void 0 ? void 0 : currentCard['_path']),
            contentName: ((_j = (_h = (_g = currentCard === null || currentCard === void 0 ? void 0 : currentCard.primaryCTA) === null || _g === void 0 ? void 0 : _g.ctaDeeplinkData) === null || _h === void 0 ? void 0 : _h.data) === null || _j === void 0 ? void 0 : _j.aemID) || (currentCard === null || currentCard === void 0 ? void 0 : currentCard.headerText),
            contentType: currentCard === null || currentCard === void 0 ? void 0 : currentCard.contentType,
            contentAuthor: currentCard === null || currentCard === void 0 ? void 0 : currentCard.author,
            value: isUserInitiated ? 'user-initiated' : 'implicit',
        };
        this._isMultipleCardsCarousel && Object.assign(eventData, { count: this.slidesPerPage });
        this._isRightToutCarousel &&
            Object.assign(eventData, { count: this._isCarouselVisible(Carousel_CAROUSEL_TYPE.RIGHT_TOUT_CAROUSEL) });
        return [containerAnalytics.component, eventData];
    }
    _isCarouselVisible(carouselType) {
        const windowWidth = document.documentElement.clientWidth;
        const windowDisplayLimit = Carousel_HIDE_ELEMENT_WINDOW_WIDTH[carouselType];
        return windowWidth >= windowDisplayLimit ? 1 : 0;
    }
    _logAnalyticsRenderEvent(isUserInitiated = false) {
        // We don't log individual render events for User Intent answer cards.
        if (this.props.cardType !== Carousel_CAROUSEL_CARD_TYPE.QUESTIONNAIRE_CARDS) {
            this.props.logEvent(...this._renderEventParams(isUserInitiated), 'render');
        }
    }
    _getArrowDirection(nextIndex) {
        // if we are on the first card and we go to the last one
        if (this.activeIndex === 0 && nextIndex === this._numberOfCards - 1) {
            return Carousel_ArrowDirection.LEFT;
        }
        // if we are on the last card and we go to the first one
        if (this.activeIndex === this._numberOfCards - 1 && nextIndex === 0) {
            return Carousel_ArrowDirection.RIGHT;
        }
        return this.activeIndex > nextIndex ? Carousel_ArrowDirection.LEFT : Carousel_ArrowDirection.RIGHT;
    }
    _handleArrowClick(index) {
        this._removeMouseListeners();
        this._logAnalyticsClickEvent(this._getArrowDirection(index), this.activeIndex + 1);
        // Animation should stop when user navigates to other card using keyboard
        if (index !== -1 && !this._isMultipleCardsCarousel) {
            this._switchToCardAndStopSlideShow(index, true);
        }
    }
    _getSlidesPerPage() {
        if (this.props.cardType === Carousel_CAROUSEL_CARD_TYPE.QUESTIONNAIRE_CARDS) {
            // Since the User Intent Dialog doesn't resize with the window
            // the Questionnaire carousel will always default to 4 slides per page
            return 4;
        }
        // For the multiple cards carousel the number of slides depends on the window size
        const windowWidth = document.documentElement.clientWidth;
        if (windowWidth >= Carousel_MULTIPLE_CARDS_CAROUSEL_BREAKPOINTS.MIN_FOUR_CARDS_WIDTH) {
            return 4;
        }
        if (windowWidth <= Carousel_MULTIPLE_CARDS_CAROUSEL_BREAKPOINTS.MAX_TWO_CARDS_WIDTH) {
            return 2;
        }
        return 3;
    }
    setParams() {
        this.slidesPerPage = this._getSlidesPerPage();
        this._slidesToMove = this.slidesPerPage === 4 ? 3 : this.slidesPerPage;
        this.pagesNumber = Math.ceil((this.state.isVisible.length - Number(this.slidesPerPage === 4)) / this._slidesToMove);
        let updateState = this.state.isVisible;
        const firstCardIndex = updateState.indexOf(true);
        // find the best page position in order to snap the first card visible in a correct page
        this.currentPage = this.state.hideLeftArrow
            ? 1
            : this.state.hideRightArrow
                ? this.pagesNumber
                : (firstCardIndex === -1 ? 0 : Math.floor(firstCardIndex / this._slidesToMove)) + 1;
        const start = Math.max(Math.min((this.currentPage - 1) * this.slidesPerPage, updateState.length - this.slidesPerPage), 0);
        const end = start + this.slidesPerPage;
        const oldState = updateState.slice();
        updateState.fill(false).fill(true, start, end);
        this.setState({
            isVisible: updateState,
            hideLeftArrow: this.currentPage === 1,
            hideRightArrow: this.currentPage === this.pagesNumber,
        });
        for (let i = start; i < end; i++) {
            // if a card was already rendered there is no point to log a new render event
            if (oldState[i] != updateState[i]) {
                this.activeIndex = i;
                this._logAnalyticsRenderEvent(false);
            }
        }
    }
    slideRight(updateFocus = false) {
        if (this.state.hideRightArrow) {
            return;
        }
        let updateState = [...this.state.isVisible];
        const currentPosition = updateState.indexOf(true);
        const slidesLeft = updateState.length - currentPosition - this.slidesPerPage;
        const slidesToMove = Math.min(this._slidesToMove, slidesLeft);
        const start = currentPosition + slidesToMove;
        const end = start + this.slidesPerPage;
        const oldState = updateState.slice();
        updateState.fill(false).fill(true, start, end);
        this.currentPage++;
        if (updateFocus) {
            // Select the cards from the carousel.
            const cards = document.querySelectorAll(`.${stylesForCard.DynamicCard}`);
            // If the focus was previously on the next arrow and the current page becomes the last,
            // then focus on the first card of the new page. This is the case when we slide to
            // the last page using enter/space on the next arrow.
            if (document.activeElement.classList.contains(Carousel_styles.next)) {
                if (this.currentPage === this.pagesNumber) {
                    cards[updateState.indexOf(true)].firstElementChild.focus();
                }
            }
            else {
                // This is the case when we slide to the next page using keyboard arrows.
                // The focus goes to the first card.
                cards[updateState.indexOf(true)].firstElementChild.focus();
            }
        }
        this.setState({
            isVisible: [...updateState],
            hideRightArrow: this.currentPage === this.pagesNumber,
            hideLeftArrow: false,
        });
        this._logAnalyticsClickEvent(Carousel_ArrowDirection.RIGHT, start + 1);
        for (let i = start; i < end; i++) {
            // if a card was already rendered there is no point to log a new render event
            if (oldState[i] != updateState[i]) {
                this.activeIndex = i;
                this._logAnalyticsRenderEvent(true);
            }
        }
    }
    slideLeft(updateFocus = false) {
        if (this.state.hideLeftArrow) {
            return;
        }
        let updateState = [...this.state.isVisible];
        const currentPosition = updateState.indexOf(true);
        let slidesToMove = this._slidesToMove;
        if (this.state.hideRightArrow) {
            slidesToMove = (updateState.length - Number(this.slidesPerPage === 4)) % slidesToMove || slidesToMove;
        }
        const start = currentPosition - slidesToMove;
        const end = start + this.slidesPerPage;
        const oldState = updateState.slice();
        updateState.fill(false).fill(true, start, end);
        this.currentPage--;
        if (updateFocus) {
            // Select the cards from the carousel.
            const cards = document.querySelectorAll(`.${stylesForCard.DynamicCard}`);
            // If the focus was previously on the prev arrow and the current page becomes the first,
            // then focus on the first card of the new page. This is the case when we slide to
            // the first page using enter/space on the prev arrow.
            if (document.activeElement.classList.contains(Carousel_styles.prev)) {
                if (this.currentPage === 1) {
                    cards[updateState.indexOf(true)].firstElementChild.focus();
                }
            }
            else {
                // This is the case when we slide to the previous page using keyboard arrows.
                // The focus goes to the last card.
                cards[updateState.lastIndexOf(true)].firstElementChild.focus();
            }
        }
        this.setState({
            isVisible: [...updateState],
            hideRightArrow: false,
            hideLeftArrow: this.currentPage === 1,
        });
        this._logAnalyticsClickEvent(Carousel_ArrowDirection.LEFT, start + 1);
        for (let i = start; i < end; i++) {
            // if a card was already rendered there is no point to log a new render event
            if (oldState[i] != updateState[i]) {
                this.activeIndex = i;
                this._logAnalyticsRenderEvent(true);
            }
        }
    }
    _stopSlideShowAndHandleKey(event, index, interactiveElementType) {
        this.stopSlideShow();
        if (event.key === components_constants.KEYBOARD_EVENT_KEYS.ENTER || event.key === components_constants.KEYBOARD_EVENT_KEYS.SPACE) {
            let interactiveElement = interactiveElementType;
            let currentCardIndex = index + 1;
            if (interactiveElementType === Carousel_SlideshowInteractiveElementType.ARROW) {
                interactiveElement = this._getArrowDirection(index);
                currentCardIndex = this.activeIndex + 1;
            }
            this._logAnalyticsClickEvent(interactiveElement, currentCardIndex);
            if (this._isRightToutCarousel) {
                const isForwardDirection = index > this.activeIndex;
                this._slideToCard(index, isForwardDirection, true);
            }
            else {
                this._switchToCard(index, true);
            }
            // Store current index as startIndex for next mount/relaunch of app, if app is closed before animation starts.
            this._storeCarouselStartIndex();
            // restate focus-ring
            const cardIndicator = document.getElementById(`carousel-indicator-${index}`);
            cardIndicator === null || cardIndicator === void 0 ? void 0 : cardIndicator.blur();
            cardIndicator === null || cardIndicator === void 0 ? void 0 : cardIndicator.focus();
            return;
        }
    }
    /* This method handles moving the focus on the right indicator
    when the left and right arrow keys are used. */
    _handleOnKeyDownForIndicators(event, currentFocusedIndex, interactiveElementType) {
        event.stopPropagation();
        let nextIndexToFocus = currentFocusedIndex;
        if (event.key === components_constants.KEYBOARD_EVENT_KEYS.LEFT) {
            nextIndexToFocus = this.prevIndex(currentFocusedIndex);
        }
        else if (event.key === components_constants.KEYBOARD_EVENT_KEYS.RIGHT) {
            nextIndexToFocus = this.nextIndex(currentFocusedIndex);
        }
        if (nextIndexToFocus !== currentFocusedIndex) {
            const cardIndicator = document.getElementById(`carousel-indicator-${nextIndexToFocus}`);
            cardIndicator === null || cardIndicator === void 0 ? void 0 : cardIndicator.focus();
        }
        else {
            // if there was no change of index, we need to deal with the remaining possible key events (i.e. enter/space)
            this._stopSlideShowAndHandleKey(event, currentFocusedIndex, interactiveElementType);
        }
    }
    _handleMultipleCardsCarouselArrowKeyDown(event, direction) {
        if (event.key === components_constants.KEYBOARD_EVENT_KEYS.ENTER || event.key === components_constants.KEYBOARD_EVENT_KEYS.SPACE) {
            direction === Carousel_ArrowDirection.RIGHT ? this.slideRight(true) : this.slideLeft(true);
        }
    }
    _removeMouseListeners() {
        if (this._itemContainerRef && this._itemContainerRef.current) {
            this._itemContainerRef.current.removeEventListener('pointerenter', this._onPointerEnter);
            this._itemContainerRef.current.removeEventListener('pointerleave', this._onPointerLeave);
        }
    }
    /* Takes a value in [0, 1] and returns an interpolated value in [0, 1] using the "cirlceIn" ease function */
    _easeCircleIn(x) {
        return 1 - Math.sqrt(1 - x * x);
    }
    componentDidMount() {
        var _a, _b;
        window.addEventListener('resize', this._handleWindowResize);
        this._homeScreenVisibleReactionDisposer = Object(mobx_module["B" /* reaction */])(() => this.context.host.isHomeScreenVisible, isHomeScreenVisible => {
            this.isHomeScreenVisible = isHomeScreenVisible;
            if (!isHomeScreenVisible) {
                this.stopSlideShow();
            }
            else {
                this.startSlideShow();
                if (this._isMultipleCardsCarousel) {
                    let start = this.state.isVisible.findIndex(visible => visible == true);
                    for (let i = start; i < start + this.slidesPerPage; i++) {
                        this.activeIndex = i;
                        this._logAnalyticsRenderEvent(false);
                    }
                }
            }
        }, { fireImmediately: true });
        if (this._itemContainerRef && this._itemContainerRef.current) {
            this._itemContainerRef.current.addEventListener('pointerenter', this._onPointerEnter);
            this._itemContainerRef.current.addEventListener('pointerleave', this._onPointerLeave);
            this._itemContainerRef.current.addEventListener('focus', this._enableFocus, true);
            this._itemContainerRef.current.addEventListener('blur', this._disableFocus, true);
            if (this._isMultipleCardsCarousel) {
                this.currentPage = carouselStore.currentPage;
                if (this.props.cardType === Carousel_CAROUSEL_CARD_TYPE.QUESTIONNAIRE_CARDS) {
                    this.setParams();
                }
                return;
            }
        }
        this._slideInProgress = false;
        let index = 0;
        if (this.props.showRandomStartItem) {
            index = Math.floor(Math.random() * this._numberOfCards);
        }
        else {
            // Get startIndex from localstorage
            const startIndexKey = this.props.usageId + CAROUSEL_START_INDEX;
            index = common_LocalStorage.getGlobalItem(startIndexKey) || 0;
            if (index >= this._numberOfCards) {
                index = 0;
            }
        }
        this._slidesCount = carouselStore.slidesCount;
        this._switchToCardAndStartSlideShow(index);
        this._searchVisibleReactionDisposer = Object(mobx_module["B" /* reaction */])(() => { var _a, _b, _c; return (_c = (_b = (_a = this.context) === null || _a === void 0 ? void 0 : _a.store) === null || _b === void 0 ? void 0 : _b.searchStore) === null || _c === void 0 ? void 0 : _c.showSearch; }, showSearch => {
            this._isSearchVisible = showSearch;
            if (showSearch) {
                this.stopSlideShow();
            }
            else {
                this.startSlideShow();
            }
        }, { fireImmediately: true });
        this._renderEventGUID = (_b = (_a = this.context.utils.analytics) === null || _a === void 0 ? void 0 : _a.subscribeLogRenderedEvent) === null || _b === void 0 ? void 0 : _b.call(_a, () => this._renderEventParams());
    }
    componentDidUpdate(prevProps) {
        if (this.props.restartSlideShowFlag !== prevProps.restartSlideShowFlag &&
            !this._isMultipleCardsCarousel &&
            !this._isSearchVisible) {
            this.restartSlideShow();
        }
        // When the experience changes and the carousel type is different, we need to reinitialize
        // the carousel values depending on it's new type and move it to the first slide.
        if (this.props.cardType !== prevProps.cardType) {
            this._isMultipleCardsCarousel =
                this.props.cardType === Carousel_CAROUSEL_CARD_TYPE.MULTIPLE_CARDS ||
                    this.props.cardType === Carousel_CAROUSEL_CARD_TYPE.QUESTIONNAIRE_CARDS;
            this._isRightToutCarousel = this.props.cardType === Carousel_CAROUSEL_CARD_TYPE.RIGHT_TOUT_CAROUSEL;
            this._cardPadding = this._isRightToutCarousel ? NO_CARD_PADDING : CARD_PADDING;
            this._itemContainerRef.current.style.transform = 'none';
            if (this._isMultipleCardsCarousel) {
                this.currentPage = 1;
            }
            else {
                this._switchToCard(0);
            }
            if (this.props.cardType === Carousel_CAROUSEL_CARD_TYPE.QUESTIONNAIRE_CARDS) {
                this.setParams();
            }
        }
        if (this.props.cardsData.length !== prevProps.cardsData.length) {
            if (this._isMultipleCardsCarousel) {
                this.currentPage = 1;
                this.setState({
                    isVisible: new Array(this.props.cardsData.length).fill(false),
                    hideRightArrow: false,
                }, this.setParams);
            }
            else {
                this._switchToCard(0);
            }
        }
    }
    componentWillUnmount() {
        var _a, _b;
        window.removeEventListener('resize', this._handleWindowResize);
        if (this._itemContainerRef && this._itemContainerRef.current) {
            this._itemContainerRef.current.removeEventListener('pointerenter', this._onPointerEnter);
            this._itemContainerRef.current.removeEventListener('pointerleave', this._onPointerLeave);
            this._itemContainerRef.current.removeEventListener('focus', this._enableFocus, true);
            this._itemContainerRef.current.removeEventListener('blur', this._disableFocus, true);
            if (this._isMultipleCardsCarousel) {
                carouselStore.setCurrentPage(this.currentPage);
            }
        }
        if (!this._isMultipleCardsCarousel) {
            carouselStore.setSlidesCount(this._slidesCount);
            this.stopSlideShow();
            this._homeScreenVisibleReactionDisposer();
            this._searchVisibleReactionDisposer();
        }
        (_b = (_a = this.context.utils.analytics) === null || _a === void 0 ? void 0 : _a.unsubscribeLogRenderedEvent) === null || _b === void 0 ? void 0 : _b.call(_a, this._renderEventGUID);
    }
    restartSlideShow(index = 0, isUserInitiated = false) {
        this._slideInProgress = false;
        carouselStore.setSlidesCount(0);
        this._slidesCount = 0;
        this._switchToCardAndStartSlideShow(index, isUserInitiated);
    }
    /**
     * Return the html to render the 'Carousel' component
     *
     * @returns React.HTML
     * @memberof Carousel
     */
    render() {
        var _a, _b;
        if (this._isRightToutCarousel && !this._isRightToutCarouselVisible) {
            return null;
        }
        let carouselIndicators;
        // We don't build the indicators, so the Multiple Cards Carousel doesn't render every time activeIndex is changed.
        if (!this._isMultipleCardsCarousel) {
            carouselIndicators = this.props.cardsData.map((_, index) => {
                const classes = classnames_default()(Carousel_styles.CarouselIndicator, this.activeIndex === index && Carousel_styles.CarouselIndicatorActive);
                return (react["createElement"]("li", { key: index, "data-qe-id": `carousel-indicator-${index}`, id: `carousel-indicator-${index}`, tabIndex: 0, className: classes, onFocusCapture: this.stopSlideShow, onMouseEnter: () => {
                        this.currentElementTargetedByCursorId = `carousel-indicator-${index}`;
                    }, onMouseLeave: () => {
                        this.currentElementTargetedByCursorId = '';
                    }, onClick: () => this._handleIndicatorClicked(index), onKeyDown: event => this._handleOnKeyDownForIndicators(event, index, Carousel_SlideshowInteractiveElementType.DOT) }));
            });
        }
        const { logEvent, containerAnalytics } = this.props;
        const DefaultCarouselCardType = Carousel_CARDS_TYPES[this.props.cardType];
        const ctaHandlerProps = {
            ctaClickCallback: this.props.ctaClickCallback,
        };
        checkCarouselCardType(DefaultCarouselCardType, this.props.cardType);
        this._numberOfCards = this.props.cardsData.length;
        if (this._isMultipleCardsCarousel && !this._isRightToutCarousel) {
            this._cards = this.props.cardsData.map((data, i) => {
                const CardType = getCardType(data.cardType, DefaultCarouselCardType);
                const extraProps = getCTAHandlerConfig(data, ctaHandlerProps);
                return (react["createElement"](CardType, Object.assign({ key: i, dataKey: i }, data, { containerAnalytics: containerAnalytics, logEvent: logEvent, isFocused: this.isFocused, isVisible: this.state.isVisible[i], isLastCard: this.state.isVisible.indexOf(true) + this.slidesPerPage - 1 === i, isActive: data.isActive, handleUpdateSelectedCard: answerIndex => { var _a, _b; return (_b = (_a = this.props).handleUpdateSelectedCard) === null || _b === void 0 ? void 0 : _b.call(_a, this.props.cardIndex, answerIndex); }, currentCardIndex: i, slidesPerPage: this.slidesPerPage, renderFeedback: true, handleToutFeedbackCallback: this.handleToutFeedbackCallback }, extraProps)));
            });
            // Render Right Tout Carousel
        }
        else if (this._isRightToutCarousel && !this._isMultipleCardsCarousel) {
            // Add copies of the first and last cards to make the sliding animation from the last card to the first one
            // (and back) work
            const firstCard = this.props.cardsData[0];
            const lastCard = this.props.cardsData.slice(-1)[0];
            const cardsData = [lastCard, ...this.props.cardsData, firstCard];
            this._cards = cardsData.map((data, i) => {
                const CardType = getCardType(data.cardType, DefaultCarouselCardType);
                const extraProps = getCTAHandlerConfig(data, ctaHandlerProps);
                return (react["createElement"](CardType, Object.assign({ key: i, dataKey: i }, data, { containerAnalytics: containerAnalytics, logEvent: logEvent, isFocused: this.isFocused, isVisible: this.state.isVisible[i], isLastCard: this.state.isVisible.indexOf(true) + this.slidesPerPage - 1 === i, isAccessible: false, currentCardIndex: i, slidesPerPage: this.slidesPerPage, className: Carousel_styles.rightToutCarouselCard, renderFeedback: false }, extraProps)));
            });
        }
        else {
            let index = 1;
            this._cards = this.props.cardsData.map((data, i) => {
                const CardType = getCardType(data.cardType, DefaultCarouselCardType);
                const extraProps = getCTAHandlerConfig(data, ctaHandlerProps);
                return (react["createElement"](CardType, Object.assign({ key: index, dataKey: index++ }, data, { containerAnalytics: containerAnalytics, logEvent: logEvent, isFocused: this.isFocused, isActive: !this.currentCardIsACopy && this.activeIndex === i, currentCardIndex: this.activeIndex, handleToutFeedbackCallback: this.props.handleToutFeedbackCallback, renderFeedback: true }, extraProps)));
            });
            const firstCardData = this.props.cardsData[0];
            const FirstCardType = getCardType(firstCardData === null || firstCardData === void 0 ? void 0 : firstCardData.cardType, DefaultCarouselCardType);
            const firstCardExtraProps = getCTAHandlerConfig(firstCardData, ctaHandlerProps);
            // Add copy of first card at the end to make smooth animation from last to first card
            this._cards.push(react["createElement"](FirstCardType, Object.assign({ key: index, dataKey: index++ }, firstCardData, { containerAnalytics: containerAnalytics, logEvent: logEvent, isFocused: this.isFocused, isActive: this.currentCardIsACopy && this.activeIndex === 0, currentCardIndex: this.activeIndex, handleToutFeedbackCallback: this.props.handleToutFeedbackCallback, renderFeedback: true }, firstCardExtraProps)));
            const lastCardData = this.props.cardsData[this._numberOfCards - 1];
            const LastCardType = getCardType(lastCardData, DefaultCarouselCardType);
            const lastCardExtraProps = getCTAHandlerConfig(lastCardData, ctaHandlerProps);
            // Add copy of last card at the beginning to make smooth animation from first to last card
            this._cards.unshift(react["createElement"](LastCardType, Object.assign({ key: 0, dataKey: 0 }, lastCardData, { containerAnalytics: containerAnalytics, logEvent: logEvent, isFocused: this.isFocused, isActive: this.currentCardIsACopy && this.activeIndex === this._numberOfCards - 1, currentCardIndex: this.activeIndex, handleToutFeedbackCallback: this.props.handleToutFeedbackCallback, renderFeedback: true }, lastCardExtraProps)));
        }
        return (react["createElement"]("div", { ref: this._carouselContainerRef, className: classnames_default()({
                [Carousel_styles.largeCarouselContainer]: (_a = this.props.homeScreenCarouselOptions) === null || _a === void 0 ? void 0 : _a.isCarouselContainerRequired,
                [Carousel_styles.isRightToutCarouselContainer]: this._isRightToutCarousel,
            }), "data-qe-id": "carousel" },
            react["createElement"]("div", { className: classnames_default()(Carousel_styles.root, {
                    [Carousel_styles.multipleCardsCarouselSliderContainer]: this._isMultipleCardsCarousel,
                    [Carousel_styles.carouselRightToutContainer]: this._isRightToutCarousel,
                }), onMouseDown: () => {
                    var _a;
                    ((_a = document.activeElement) === null || _a === void 0 ? void 0 : _a.id) == 'accessibility-div' &&
                        this._clickOnCurrentElementTargetedByCursor();
                } },
                this._isRightToutCarousel && (react["createElement"]("div", { id: "accessibility-div", onFocusCapture: this.stopSlideShow, onKeyDown: event => this._handleKeyDown(event), tabIndex: this._isRightToutCarousel ? 0 : -1, className: classnames_default()(Carousel_styles.rightToutCarouselAccessibilityDiv) })),
                react["createElement"]("div", { id: CARDS_CONTAINER_ID, className: classnames_default()(Carousel_styles.carouselItemContainer), ref: this._itemContainerRef, tabIndex: this.props.tabIndex != undefined
                        ? this.props.tabIndex
                        : this._isMultipleCardsCarousel || this._isRightToutCarousel
                            ? -1
                            : 0, onFocus: event => {
                        var _a, _b;
                        (_b = (_a = this.props).handleFocus) === null || _b === void 0 ? void 0 : _b.call(_a, event);
                    }, onKeyDown: event => this._handleKeyDown(event), onMouseEnter: () => {
                        this.currentElementTargetedByCursorId = CARDS_CONTAINER_ID;
                    }, onMouseLeave: () => {
                        this.currentElementTargetedByCursorId = '';
                    } }, this._cards),
                this._numberOfCards > 1 && !this._isMultipleCardsCarousel && (react["createElement"]("ul", { className: classnames_default()(Carousel_styles.CarouselIndicators, {
                        [Carousel_styles.carouselRightCardIndicators]: this._isRightToutCarousel,
                    }) }, carouselIndicators))),
            !this._isRightToutCarousel &&
                this._numberOfCards > 1 && ((_b = this.props.homeScreenCarouselOptions) === null || _b === void 0 ? void 0 : _b.showCardArrow) && (react["createElement"](react["Fragment"], null,
                react["createElement"]("span", { className: classnames_default()(Carousel_styles.prev, {
                        [Carousel_styles.hide]: this._isMultipleCardsCarousel && this.state.hideLeftArrow,
                        [Carousel_styles.multipleCardsArrow]: this._isMultipleCardsCarousel,
                    }), "data-qe-id": "carousel-prev-arrow", tabIndex: 0, onClick: () => this._isMultipleCardsCarousel
                        ? this.slideLeft()
                        : this._handleArrowClick(this.prevIndex(this.activeIndex)), onKeyDown: event => this._isMultipleCardsCarousel
                        ? this._handleMultipleCardsCarouselArrowKeyDown(event, Carousel_ArrowDirection.LEFT)
                        : this._stopSlideShowAndHandleKey(event, this.prevIndex(this.activeIndex), Carousel_SlideshowInteractiveElementType.ARROW) }, "\u276E"),
                react["createElement"]("span", { className: classnames_default()(Carousel_styles.next, {
                        [Carousel_styles.hide]: this.state.hideRightArrow,
                        [Carousel_styles.multipleCardsArrow]: this._isMultipleCardsCarousel,
                    }), "data-qe-id": "carousel-next-arrow", tabIndex: 0, onClick: () => this._isMultipleCardsCarousel
                        ? this.slideRight()
                        : this._handleArrowClick(this.nextIndex(this.activeIndex)), onKeyDown: event => this._isMultipleCardsCarousel
                        ? this._handleMultipleCardsCarouselArrowKeyDown(event, Carousel_ArrowDirection.RIGHT)
                        : this._stopSlideShowAndHandleKey(event, this.nextIndex(this.activeIndex), Carousel_SlideshowInteractiveElementType.ARROW) }, "\u276F"))),
            this._isMultipleCardsCarousel && (react["createElement"](components_FeedbackToastContainer, { className: classnames_default()(Carousel_styles.feedbackToastContainer), toast: this._toast }))));
    }
};
// slide carousel single tout
Carousel_default_1.contextTypes = common_CommonStaticContext;
Carousel_decorate([
    mobx_module["z" /* observable */],
    Carousel_metadata("design:type", typeof (Carousel_a = typeof /* Cannot get final name for export "FeedbackToast" in "./node_modules/@ccx/ccx-firstmile-shared/src/components/FeedbackToastContainer.tsx" (known exports: default, known reexports: ) */ undefined !== "undefined" && /* Cannot get final name for export "FeedbackToast" in "./node_modules/@ccx/ccx-firstmile-shared/src/components/FeedbackToastContainer.tsx" (known exports: default, known reexports: ) */ undefined) === "function" ? Carousel_a : Object)
], Carousel_default_1.prototype, "_toast", void 0);
Carousel_decorate([
    mobx_module["z" /* observable */],
    Carousel_metadata("design:type", Boolean)
], Carousel_default_1.prototype, "_isMultipleCardsCarousel", void 0);
Carousel_decorate([
    mobx_module["z" /* observable */],
    Carousel_metadata("design:type", Boolean)
], Carousel_default_1.prototype, "_isRightToutCarousel", void 0);
Carousel_decorate([
    mobx_module["z" /* observable */],
    Carousel_metadata("design:type", Boolean)
], Carousel_default_1.prototype, "_isSearchVisible", void 0);
Carousel_decorate([
    mobx_module["z" /* observable */],
    Carousel_metadata("design:type", Boolean)
], Carousel_default_1.prototype, "_isRightToutCarouselVisible", void 0);
Carousel_decorate([
    mobx_module["z" /* observable */],
    Carousel_metadata("design:type", Object)
], Carousel_default_1.prototype, "activeIndex", void 0);
Carousel_decorate([
    mobx_module["z" /* observable */],
    Carousel_metadata("design:type", Object)
], Carousel_default_1.prototype, "isFocused", void 0);
Carousel_decorate([
    mobx_module["z" /* observable */],
    Carousel_metadata("design:type", Object)
], Carousel_default_1.prototype, "currentElementTargetedByCursorId", void 0);
Carousel_decorate([
    mobx_module["z" /* observable */],
    Carousel_metadata("design:type", Object)
], Carousel_default_1.prototype, "currentCardIsACopy", void 0);
Carousel_decorate([
    mobx_module["z" /* observable */],
    Carousel_metadata("design:type", Object)
], Carousel_default_1.prototype, "isHomeScreenVisible", void 0);
Carousel_default_1 = Carousel_decorate([
    index_module["e" /* observer */],
    Carousel_metadata("design:paramtypes", [Object])
], Carousel_default_1);
/* harmony default export */ var Carousel = (Carousel_default_1);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-firstmile-shared/src/components/carousel/carousels/CarouselBase.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2022 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var CarouselBase_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;
};
var CarouselBase_metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var CarouselBase_a, CarouselBase_b;







const CarouselBase_carouselInstances = [];
let CarouselBase_default_1 = class default_1 extends react["Component"] {
    constructor(props) {
        super(props);
        // General
        this.activeIndex = 0;
        this.isFocused = false;
        this.currentElementTargetedByCursorId = '';
        this._storeCarouselStartIndex = () => {
            const startIndexKey = this.props.usageId + CAROUSEL_CONSTANTS.CAROUSEL_START_INDEX;
            common_LocalStorage.setGlobalItem(startIndexKey, this.activeIndex);
        };
        this._getCardAnalyticsParamOptions = cardType => {
            var _a, _b;
            switch (cardType) {
                case CAROUSEL_CARD_TYPE.INTENT_CARD: {
                    return {
                        component: (_b = (_a = this.props) === null || _a === void 0 ? void 0 : _a.containerAnalytics) === null || _b === void 0 ? void 0 : _b.component,
                        subtype: ANALYTICS_SUBTYPES.RECOMMENDATIONS,
                        skipRecommendationsJson: true,
                    };
                }
                default: {
                    return;
                }
            }
        };
        // Carousel instances are removed from the storage in the App.tsx file in start-uxp
        const startIndexKey = this.props.usageId + CAROUSEL_CONSTANTS.CAROUSEL_START_INDEX;
        if (CarouselBase_carouselInstances.indexOf(startIndexKey) === -1) {
            CarouselBase_carouselInstances.push(startIndexKey);
            common_LocalStorage.setGlobalItem('carouselInstances', CarouselBase_carouselInstances);
        }
    }
    _buildCardAnalyticsData() {
        const currentCard = this.props.cardsData[this.activeIndex];
        if (currentCard) {
            return {
                id: currentCard.id,
                title: currentCard.title,
                category: currentCard.type,
                source: currentCard.source,
                metadata: currentCard.modelMetadata,
                type: currentCard.type,
            };
        }
        return {};
    }
    _renderEventParams(isUserInitiated = false, countData, analyticsParamOptions) {
        var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
        const { containerAnalytics } = this.props;
        const currentCard = this.props.cardsData[this.activeIndex];
        let eventData = {
            ...containerAnalytics === null || containerAnalytics === void 0 ? void 0 : containerAnalytics.eventData,
            subtype: (analyticsParamOptions === null || analyticsParamOptions === void 0 ? void 0 : analyticsParamOptions.subtype) || 'suggestion',
            recommendationsJson: !(analyticsParamOptions === null || analyticsParamOptions === void 0 ? void 0 : analyticsParamOptions.skipRecommendationsJson) && ((_c = (_b = (_a = this.context) === null || _a === void 0 ? void 0 : _a.ututs) === null || _b === void 0 ? void 0 : _b.recommendationsJsonData) === null || _c === void 0 ? void 0 : _c.call(_b)),
            cardAnalyticsData: this._buildCardAnalyticsData(),
            uiSequence: this.activeIndex + 1,
            contentId: (_f = (_e = (_d = currentCard.primaryCTA) === null || _d === void 0 ? void 0 : _d.ctaDeeplinkData) === null || _e === void 0 ? void 0 : _e.data) === null || _f === void 0 ? void 0 : _f.uuid,
            // aemID for Learn cards, headerText for question cards
            contentName: (_j = (_h = (_g = currentCard.primaryCTA) === null || _g === void 0 ? void 0 : _g.ctaDeeplinkData) === null || _h === void 0 ? void 0 : _h.data) === null || _j === void 0 ? void 0 : _j.aemID,
            contentType: currentCard.contentType,
            contentAuthor: currentCard.author,
            ...(currentCard.level && { contentStatus: currentCard.level }),
            ...(currentCard.categories && { contentCategory: (_k = currentCard.categories) === null || _k === void 0 ? void 0 : _k.toString() }),
            ...(countData && { count: countData }),
            value: isUserInitiated ? 'user-initiated' : 'implicit',
        };
        if (!eventData.contentName && currentCard.contentType !== components_constants.RECOMMENDATION_TYPE.CUSTOM_CONTENT) {
            eventData.contentName = currentCard.headerText;
        }
        return [containerAnalytics === null || containerAnalytics === void 0 ? void 0 : containerAnalytics.component, eventData];
    }
    _logAnalyticsClickEvent(interactiveElement, currentCardIndex, countData) {
        var _a, _b, _c;
        const { containerAnalytics, logEvent } = this.props;
        let eventData = {
            ...containerAnalytics === null || containerAnalytics === void 0 ? void 0 : containerAnalytics.eventData,
            subtype: containerAnalytics === null || containerAnalytics === void 0 ? void 0 : containerAnalytics.component,
            recommendationsJson: (_c = (_b = (_a = this.context) === null || _a === void 0 ? void 0 : _a.ututs) === null || _b === void 0 ? void 0 : _b.recommendationsJsonData) === null || _c === void 0 ? void 0 : _c.call(_b),
        };
        interactiveElement && Object.assign(eventData, { value: interactiveElement });
        currentCardIndex && Object.assign(eventData, { uiSequence: currentCardIndex });
        countData && Object.assign(eventData, { count: countData });
        logEvent(containerAnalytics === null || containerAnalytics === void 0 ? void 0 : containerAnalytics.component, eventData, 'click');
    }
    _isCarouselVisible(carouselType) {
        const windowWidth = document.documentElement.clientWidth;
        const windowDisplayLimit = constants_HIDE_ELEMENT_WINDOW_WIDTH[carouselType];
        if (!windowDisplayLimit) {
            return 1;
        }
        return windowWidth >= windowDisplayLimit ? 1 : 0;
    }
    _getArrowDirection(nextIndex) {
        // if we are on the first card and we go to the last one
        if (this.activeIndex === 0 && nextIndex === this._numberOfCards - 1) {
            return ArrowDirection.LEFT;
        }
        // if we are on the last card and we go to the first one
        if (this.activeIndex === this._numberOfCards - 1 && nextIndex === 0) {
            return ArrowDirection.RIGHT;
        }
        return this.activeIndex > nextIndex ? ArrowDirection.LEFT : ArrowDirection.RIGHT;
    }
    _logAnalyticsRenderEvent(isUserInitiated = false) {
        const analyticsParamOptions = this._getCardAnalyticsParamOptions(this.props.cardType);
        this.props.logEvent(...this._renderEventParams(isUserInitiated, undefined, analyticsParamOptions), 'render');
    }
    prevIndex(currentIndex) {
        var _a;
        return currentIndex >= 1 ? currentIndex - 1 : ((_a = this.props.cardsData) === null || _a === void 0 ? void 0 : _a.length) - 1;
    }
    nextIndex(currentIndex) {
        var _a;
        return currentIndex < ((_a = this.props.cardsData) === null || _a === void 0 ? void 0 : _a.length) - 1 ? currentIndex + 1 : 0;
    }
};
CarouselBase_decorate([
    mobx_module["z" /* observable */],
    CarouselBase_metadata("design:type", Object)
], CarouselBase_default_1.prototype, "activeIndex", void 0);
CarouselBase_decorate([
    mobx_module["z" /* observable */],
    CarouselBase_metadata("design:type", Object)
], CarouselBase_default_1.prototype, "isFocused", void 0);
CarouselBase_decorate([
    mobx_module["z" /* observable */],
    CarouselBase_metadata("design:type", Object)
], CarouselBase_default_1.prototype, "currentElementTargetedByCursorId", void 0);
CarouselBase_default_1 = CarouselBase_decorate([
    index_module["e" /* observer */],
    CarouselBase_metadata("design:paramtypes", [Object])
], CarouselBase_default_1);
/* harmony default export */ var CarouselBase = (CarouselBase_default_1);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-firstmile-shared/src/components/carousel/carousels/vertical/VerticalCarousel.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2022 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var VerticalCarousel_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;
};
var VerticalCarousel_metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var VerticalCarousel_a, VerticalCarousel_b;








const VerticalCarousel_styles = __webpack_require__("6dms");
let VerticalCarousel_default_1 = class default_1 extends CarouselBase {
    constructor(props) {
        var _a;
        super(props);
        this._noOfCardsPerRow = this.props.noOfCardsPerRow || CAROUSEL_CONSTANTS.DEFAULT_NO_OF_CARDS_PER_ROW;
        this._noOfSlides = 0;
        this._lastFocusedCardIndex = 0;
        this._indicatorsCommonId = 'vertical-carousel-indicator';
        this._activeSlideIndex = 0;
        this.slidesPerPage = 0;
        this._triggerAnalyticsRenderLogs = () => {
            const startIndex = this._activeSlideIndex * this._noOfCardsPerRow;
            const endIndex = (this._activeSlideIndex + 1) * this._noOfCardsPerRow;
            this._logRenderEventsForABatchOfCards(startIndex, endIndex, false);
        };
        this._logRenderEventsForABatchOfCards = (startIndex, endIndex, isUserInitiated) => {
            var _a;
            endIndex = Math.min((_a = this.props.cardsData) === null || _a === void 0 ? void 0 : _a.length, endIndex);
            for (let i = startIndex; i < endIndex; i++) {
                this.activeIndex = i;
                this._logAnalyticsRenderEvent(isUserInitiated);
            }
        };
        this._handleIndicatorClicked = (index) => {
            this._logAnalyticsClickEvent(SlideshowInteractiveElementType.DOT, index + 1);
            this._switchToSlide(index, true);
        };
        this._prevSlideIndex = (currentIndex) => {
            return currentIndex >= 1 ? currentIndex - 1 : this._noOfSlides - 1;
        };
        this._nextSlideIndex = (currentIndex) => {
            return currentIndex < this._noOfSlides - 1 ? currentIndex + 1 : 0;
        };
        this._getTranslatePercentage = (cardIndex) => {
            return -(cardIndex * CAROUSEL_CONSTANTS.TRANSLATE_PERCENTAGE_PER_CARD);
        };
        /* Moves to given index card without animation */
        this._switchToSlide = (slideIndex, isUserInitiated = false) => {
            var _a, _b, _c, _d, _e;
            const startIndex = slideIndex * this._noOfCardsPerRow;
            const endIndex = (slideIndex + 1) * this._noOfCardsPerRow;
            if (slideIndex === this._activeSlideIndex) {
                this.props.forceRenderLogs && this._logRenderEventsForABatchOfCards(startIndex, endIndex, isUserInitiated);
                return;
            }
            // enable accessibility on first card of this slide and disable it on the first card of the previous slide
            (_b = (_a = this._cardsRef[startIndex]) === null || _a === void 0 ? void 0 : _a.current) === null || _b === void 0 ? void 0 : _b.enableAccessibility();
            (_d = (_c = this._cardsRef[this._activeSlideIndex * this._noOfCardsPerRow]) === null || _c === void 0 ? void 0 : _c.current) === null || _d === void 0 ? void 0 : _d.disableAccessibility();
            this._activeSlideIndex = slideIndex;
            const finalTranslate = this._getTranslatePercentage(this._activeSlideIndex);
            if (this._itemContainerRef && this._itemContainerRef.current && this._itemContainerRef.current.style) {
                // Card padding offset
                const offsetPadding = (((_e = this.props.homeScreenCarouselOptions) === null || _e === void 0 ? void 0 : _e.offsetPaddingRequired) ? this._activeSlideIndex * CAROUSEL_CONSTANTS.CARD_PADDING
                    : 0) + 'px';
                this._itemContainerRef.current.style.transform =
                    'translateX(calc(' + finalTranslate + '% - ' + offsetPadding + '))';
            }
            this._logRenderEventsForABatchOfCards(startIndex, endIndex, isUserInitiated);
        };
        this._openLink = () => {
            var _a, _b, _c;
            const { primaryCTA, content, containerAnalytics, logEvent } = (_a = this.props.cardsData) === null || _a === void 0 ? void 0 : _a[this.activeIndex];
            if (primaryCTA) {
                (_c = (_b = this.context.utils) === null || _b === void 0 ? void 0 : _b.CallToActionHandler) === null || _c === void 0 ? void 0 : _c.handleCallToAction({ content, ...primaryCTA }, containerAnalytics, logEvent, this);
            }
        };
        this._mod = (n, m) => {
            return ((n % m) + m) % m;
        };
        /**
         * Switches focus to a new card
         *
         * @param direction true = UP and false = DOWN
         */
        this._focusOnNextCard = (direction) => {
            var _a, _b, _c, _d, _e;
            let nextCardIndexToFocus, nextActiveSlideIndex;
            (_b = (_a = this._cardsRef[this._lastFocusedCardIndex]) === null || _a === void 0 ? void 0 : _a.current) === null || _b === void 0 ? void 0 : _b.blurCard();
            nextCardIndexToFocus = this._mod(this._lastFocusedCardIndex + (direction ? -1 : 1), this._numberOfCards);
            nextActiveSlideIndex = Math.floor(nextCardIndexToFocus / this._noOfCardsPerRow);
            if (nextActiveSlideIndex != this._activeSlideIndex) {
                this._handleIndicatorClicked(nextActiveSlideIndex);
            }
            if (nextCardIndexToFocus != this._activeSlideIndex * this._noOfCardsPerRow) {
                // If we are not focusing on the first card in the slide, we disable access to it.
                // This way SHIFT+TAB will get us out of the carousel no matter what card is focused.
                (_c = this._cardsRef[this._activeSlideIndex * this._noOfCardsPerRow].current) === null || _c === void 0 ? void 0 : _c.disableAccessibility();
            }
            (_e = (_d = this._cardsRef[nextCardIndexToFocus]) === null || _d === void 0 ? void 0 : _d.current) === null || _e === void 0 ? void 0 : _e.focusCard();
            this.activeIndex = this._lastFocusedCardIndex = nextCardIndexToFocus;
        };
        /**
         * Switches to a new row slide and focuses on the first card in the row
         *
         * @param direction true = LEFT and false = RIGHT
         */
        this._switchToNewSlideWithFocus = (direction) => {
            var _a, _b, _c, _d;
            if (this._numberOfCards > this._noOfCardsPerRow) {
                (_b = (_a = this._cardsRef[this._lastFocusedCardIndex]) === null || _a === void 0 ? void 0 : _a.current) === null || _b === void 0 ? void 0 : _b.blurCard();
                const nextActiveSlideIndex = this._mod(this._activeSlideIndex + (direction ? -1 : 1), this._noOfSlides);
                this._handleIndicatorClicked(nextActiveSlideIndex);
                this.activeIndex = this._lastFocusedCardIndex = nextActiveSlideIndex * this._noOfCardsPerRow;
                (_d = (_c = this._cardsRef[this._lastFocusedCardIndex]) === null || _c === void 0 ? void 0 : _c.current) === null || _d === void 0 ? void 0 : _d.focusCard();
            }
        };
        this._handleKeyDown = (event) => {
            var _a, _b;
            if (event.key === components_constants.KEYBOARD_EVENT_KEYS.ENTER || event.key === components_constants.KEYBOARD_EVENT_KEYS.SPACE) {
                if ((_a = this.props.homeScreenCarouselOptions) === null || _a === void 0 ? void 0 : _a.shouldOpenLinkOnClick) {
                    this._openLink();
                }
                return;
            }
            switch (event.key) {
                case components_constants.KEYBOARD_EVENT_KEYS.UP:
                    this._focusOnNextCard(true);
                    break;
                case components_constants.KEYBOARD_EVENT_KEYS.DOWN:
                    this._focusOnNextCard(false);
                    break;
                case components_constants.KEYBOARD_EVENT_KEYS.LEFT:
                    this._switchToNewSlideWithFocus(true);
                    break;
                case components_constants.KEYBOARD_EVENT_KEYS.RIGHT:
                    this._switchToNewSlideWithFocus(false);
                    break;
                case components_constants.KEYBOARD_EVENT_KEYS.TAB:
                    // reset the index to the first card of the slide and enable accessibility to it
                    this._lastFocusedCardIndex = this._activeSlideIndex * this._noOfCardsPerRow;
                    (_b = this._cardsRef[this._lastFocusedCardIndex].current) === null || _b === void 0 ? void 0 : _b.enableAccessibility();
                    break;
            }
        };
        this.enableFocus = () => {
            this.isFocused = true;
        };
        this.disableFocus = () => {
            this.isFocused = false;
        };
        const CardType = CARDS_TYPES[this.props.cardType];
        this._carouselContainerRef = react["createRef"]();
        if (!CardType) {
            const errorString = `No component exists for ${this.props.cardType} in Carousel.`;
            console.log(errorString, { error: true });
            throw new Error(errorString);
        }
        this._itemContainerRef = react["createRef"]();
        this._triggerAnalyticsRenderLogs.bind(this);
        this._cardsRef = (_a = this.props.cardsData) === null || _a === void 0 ? void 0 : _a.map(_ => react["createRef"]());
    }
    /* This method handles moving the focus on the right indicator
    when the left and right arrow keys are used. */
    _handleOnKeyDownForIndicators(event, currentFocusedIndex, interactiveElementType) {
        event.stopPropagation();
        let nextIndexToFocus = currentFocusedIndex;
        if (event.key === components_constants.KEYBOARD_EVENT_KEYS.LEFT) {
            nextIndexToFocus = this._prevSlideIndex(currentFocusedIndex);
        }
        else if (event.key === components_constants.KEYBOARD_EVENT_KEYS.RIGHT) {
            nextIndexToFocus = this._nextSlideIndex(currentFocusedIndex);
        }
        if (nextIndexToFocus !== currentFocusedIndex) {
            const cardIndicator = document.getElementById(`${this._indicatorsCommonId}-${nextIndexToFocus}`);
            cardIndicator === null || cardIndicator === void 0 ? void 0 : cardIndicator.focus();
        }
        else {
            // if there was no change of index, we need to deal with the remaining possible key events (i.e. enter/space)
            if (event.key === components_constants.KEYBOARD_EVENT_KEYS.ENTER ||
                event.key === components_constants.KEYBOARD_EVENT_KEYS.SPACE) {
                let interactiveElement = interactiveElementType;
                let currentCardIndex = currentFocusedIndex + 1;
                this._logAnalyticsClickEvent(interactiveElement, currentCardIndex);
                this._switchToSlide(currentFocusedIndex, true);
                // restate focus-ring
                const cardIndicator = document.getElementById(`${this._indicatorsCommonId}-${currentFocusedIndex}`);
                cardIndicator === null || cardIndicator === void 0 ? void 0 : cardIndicator.blur();
                cardIndicator === null || cardIndicator === void 0 ? void 0 : cardIndicator.focus();
            }
        }
        return;
    }
    componentDidMount() {
        var _a, _b, _c, _d;
        if (this._itemContainerRef && this._itemContainerRef.current) {
            this._itemContainerRef.current.addEventListener('focus', this.enableFocus, true);
            this._itemContainerRef.current.addEventListener('blur', this.disableFocus, true);
        }
        this._switchToSlide(0);
        // Set the triggers up only for the time when the carousel is mounted before it's dispalyed.
        // All the render event logs will be triggered from User Intent onOpenHandler,
        // except the render triggered by clicking on "See recommendations for you".
        // Fot that specific scenario, triggers are not set up yet and the event is handled in switchToCard method
        (_b = (_a = this.props).setTriggerAnalyticsRenderLogs) === null || _b === void 0 ? void 0 : _b.call(_a, this._triggerAnalyticsRenderLogs);
        // when we have triggers in place, there's no need to subscribe to logRender
        if (!this.props.setTriggerAnalyticsRenderLogs) {
            this._renderEventGUID = (_d = (_c = this.context.utils.analytics) === null || _c === void 0 ? void 0 : _c.subscribeLogRenderedEvent) === null || _d === void 0 ? void 0 : _d.call(_c, () => {
                return this._renderEventParams();
            });
        }
    }
    componentDidUpdate(prevProps) {
        var _a, _b, _c;
        if (((_a = prevProps.cardsData) === null || _a === void 0 ? void 0 : _a.length) != ((_b = this.props.cardsData) === null || _b === void 0 ? void 0 : _b.length)) {
            this._cardsRef = (_c = this.props.cardsData) === null || _c === void 0 ? void 0 : _c.map((_, i) => this._cardsRef[i] || react["createRef"]());
        }
    }
    componentWillUnmount() {
        var _a, _b;
        if (this._itemContainerRef && this._itemContainerRef.current) {
            this._itemContainerRef.current.removeEventListener('focus', this.enableFocus, true);
            this._itemContainerRef.current.removeEventListener('blur', this.disableFocus, true);
        }
        // when we have triggers in place, there's no need to subscribe to logRender
        if (!this.props.setTriggerAnalyticsRenderLogs) {
            (_b = (_a = this.context.utils.analytics) === null || _a === void 0 ? void 0 : _a.unsubscribeLogRenderedEvent) === null || _b === void 0 ? void 0 : _b.call(_a, this._renderEventGUID);
        }
    }
    renderIndicators() {
        const carouselIndicators = [];
        this._noOfSlides = Math.ceil(this._numberOfCards / this._noOfCardsPerRow);
        for (let i = 0; i < this._noOfSlides; i++) {
            const classes = classnames_default()(VerticalCarousel_styles.CarouselIndicator, this._activeSlideIndex === i && VerticalCarousel_styles.CarouselIndicatorActive);
            carouselIndicators.push(react["createElement"]("li", { key: i, "data-qe-id": `${this._indicatorsCommonId}-${i}`, id: `${this._indicatorsCommonId}-${i}`, tabIndex: 0, className: classes, onClick: () => this._handleIndicatorClicked(i), onKeyDown: event => this._handleOnKeyDownForIndicators(event, i, SlideshowInteractiveElementType.DOT) }));
        }
        return react["createElement"]("ul", { className: classnames_default()(VerticalCarousel_styles.CarouselIndicators) }, carouselIndicators);
    }
    renderCards() {
        const { logEvent, containerAnalytics, cardsData, cardType } = this.props;
        const CardType = CARDS_TYPES[cardType];
        if (!CardType) {
            const errorString = `No component exists for ${cardType} in Carousel.`;
            console.log(errorString, { error: true });
            throw new Error(errorString);
        }
        this._cards = [];
        for (let firstCardOnSlideIndex = 0; firstCardOnSlideIndex < this._numberOfCards; firstCardOnSlideIndex += this._noOfCardsPerRow) {
            this._cards.push(react["createElement"]("div", { className: classnames_default()(VerticalCarousel_styles.CardsRowContainer) },
                cardsData
                    .slice(firstCardOnSlideIndex, firstCardOnSlideIndex + this._noOfCardsPerRow)
                    .map((cardData, index) => {
                    return (react["createElement"](CardType, Object.assign({ key: index, ref: this._cardsRef[firstCardOnSlideIndex + index], dataKey: index }, cardData, { containerAnalytics: containerAnalytics, logEvent: logEvent, isFocused: this.isFocused, currentCardIndex: index + firstCardOnSlideIndex, slidesPerPage: this.slidesPerPage, renderFeedback: false, 
                        // at the start only the first card will be accessible
                        isAccessible: index === 0 && firstCardOnSlideIndex == 0 })));
                }),
                this._numberOfCards - firstCardOnSlideIndex < this._noOfCardsPerRow &&
                    [0, this._numberOfCards - firstCardOnSlideIndex].map(() => (react["createElement"]("div", { className: VerticalCarousel_styles.EmptyCardContainer })))));
        }
        return this._cards;
    }
    /**
     * Return the html to render the 'Carousel' component
     *
     * @returns React.HTML
     * @memberof Carousel
     */
    render() {
        var _a, _b;
        const { cardsData } = this.props;
        this._numberOfCards = (_a = cardsData === null || cardsData === void 0 ? void 0 : cardsData.length) !== null && _a !== void 0 ? _a : 0;
        return (react["createElement"]("div", { ref: this._carouselContainerRef, className: classnames_default()({
                [VerticalCarousel_styles.largeCarouselContainer]: (_b = this.props.homeScreenCarouselOptions) === null || _b === void 0 ? void 0 : _b.isCarouselContainerRequired,
            }), "data-qe-id": "carousel" },
            react["createElement"]("div", { className: classnames_default()(VerticalCarousel_styles.root) },
                react["createElement"]("div", { id: "cards-container", className: classnames_default()(VerticalCarousel_styles.carouselItemContainer), ref: this._itemContainerRef, tabIndex: -1, onKeyDown: event => this._handleKeyDown(event) }, this.renderCards()),
                this._numberOfCards >= 1 && this.renderIndicators())));
    }
};
// slide carousel
VerticalCarousel_default_1.contextTypes = common_CommonStaticContext;
VerticalCarousel_decorate([
    mobx_module["z" /* observable */],
    VerticalCarousel_metadata("design:type", Object)
], VerticalCarousel_default_1.prototype, "_activeSlideIndex", void 0);
VerticalCarousel_default_1 = VerticalCarousel_decorate([
    index_module["e" /* observer */],
    VerticalCarousel_metadata("design:paramtypes", [Object])
], VerticalCarousel_default_1);
/* harmony default export */ var VerticalCarousel = (VerticalCarousel_default_1);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-firstmile-shared/src/components/carousel/carousels/index.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2022 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/



// CONCATENATED MODULE: ./node_modules/@ccx/ccx-firstmile-shared/src/components/carousel/CarouselWrapper.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2022 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var CarouselWrapper_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;
};




let CarouselWrapper_default_1 = class extends react["Component"] {
    render() {
        switch (this.props.cardType) {
            case CAROUSEL_CARD_TYPE.INTENT_CARD:
                return react["createElement"](VerticalCarousel, Object.assign({}, this.props));
            case CAROUSEL_CARD_TYPE.MULTIPLE_CARDS:
            case CAROUSEL_CARD_TYPE.RIGHT_TOUT:
            case CAROUSEL_CARD_TYPE.ROW:
            default:
                return react["createElement"](Carousel, Object.assign({}, this.props));
        }
    }
};
CarouselWrapper_default_1 = CarouselWrapper_decorate([
    index_module["e" /* observer */]
], CarouselWrapper_default_1);
/* harmony default export */ var CarouselWrapper = (CarouselWrapper_default_1);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-firstmile-shared/src/components/toastals/user-intent-dialog/questionnaire/CardsAnswers.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2022 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/






const CardsAnswers_styles = __webpack_require__("bS/k");
class CardsAnswers_CardsAnswers extends react_default.a.Component {
    constructor() {
        super(...arguments);
        this._lastFocusedCardIndex = 0;
        this._handleFocus = event => {
            if (event.target.id === CARDS_CONTAINER_ID) {
                this._setFocusOnCard(this._lastFocusedCardIndex);
            }
        };
        this._setFocusOnCard = (index) => {
            const card = document.getElementById(`questionnaire-card-${index}`).children[0];
            card === null || card === void 0 ? void 0 : card.focus();
            this._lastFocusedCardIndex = index;
        };
        this._handleKeyDown = (event, getPrevIndex, getNextIndex) => {
            if (isLeftOrRightArrowKey(event.key)) {
                let nextQuestionnaireCardToFocusIndex = event.key === components_constants.KEYBOARD_EVENT_KEYS.LEFT
                    ? getPrevIndex(this._lastFocusedCardIndex)
                    : getNextIndex(this._lastFocusedCardIndex);
                this._setFocusOnCard(nextQuestionnaireCardToFocusIndex);
            }
        };
    }
    render() {
        const { answers, questionIndex } = this.props;
        const cardsData = answers.map((answer, key) => {
            return {
                id: key,
                headerText: answer.title,
                descriptionText: answer.description,
                image: answer.primaryThumbnailPath,
                secondaryImage: answer.secondaryThumbnailPath,
                isActive: this.props.currentAnswers[questionIndex] === key,
                contentType: user_intent_dialog_constants["a" /* AnswerType */].CARDS,
                metadata: answer.metadata,
            };
        });
        return (react_default.a.createElement("div", { "data-qe-id": `cards-container-${questionIndex}`, className: CardsAnswers_styles.cardsContainer },
            react_default.a.createElement(CarouselWrapper, { usageId: "DynamicContentRecommendations", cardType: "questionnaireCards", animationDelay: 4000, cardsData: cardsData, restartSlideShowFlag: false, handleUpdateSelectedCard: this.props.updateSelectedAnswer, cardIndex: questionIndex, containerAnalytics: this.props.containerAnalytics, logEvent: this.props.analytics.logEvent, handleKeyDown: this._handleKeyDown, handleFocus: this._handleFocus, tabIndex: 0 })));
    }
}

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-firstmile-shared/src/components/toastals/user-intent-dialog/questionnaire/Questionnaire.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2022 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/





const Questionnaire_styles = __webpack_require__("d+hu");
class Questionnaire_Questionnaire extends react_default.a.Component {
    _renderAnswers(question, index) {
        const props = {
            answers: question.answers,
            questionIndex: index,
            updateSelectedAnswer: this.props.updateSelectedAnswer,
            currentAnswers: this.props.currentAnswers,
            containerAnalytics: this.props.containerAnalytics,
            analytics: this.props.analytics,
        };
        return question.answerType === user_intent_dialog_constants["a" /* AnswerType */].BUTTONS ? react_default.a.createElement(ButtonsAnswers_ButtonsAnswers, Object.assign({}, props)) : react_default.a.createElement(CardsAnswers_CardsAnswers, Object.assign({}, props));
    }
    render() {
        const { questions } = this.props;
        return (react_default.a.createElement("div", { "data-qe-id": "questionnaire-container" }, questions.map((question, index) => (react_default.a.createElement("div", { key: index, "data-qe-id": `question-container-${index}` },
            react_default.a.createElement(Heading_default.a, { "data-qe-id": `question-text-${index}`, variant: "subtitle2", className: Questionnaire_styles.questionText }, `${index + 1}. ${question.text}`),
            this._renderAnswers(question, index))))));
    }
}

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-firstmile-shared/src/components/toastals/user-intent-dialog/recommendations/Recommendations.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2022 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/





const Recommendations_styles = __webpack_require__("v7tY");
const CAROUSEL_ANIMATION_DELAY = 4000;
const uiOptions = {
    isIndependentCard: true,
    displayDescription: true,
    hasCTA: true,
};
class Recommendations_Recommendations extends react_default.a.Component {
    constructor() {
        super(...arguments);
        this._carouselRecommendations = [];
        this._heroTutorialRenderParams = () => {
            var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
            const containerAnalyticsParams = this.props.containerAnalytics.eventData.containerAnalyticsParams;
            return {
                containerAnalyticsParams,
                subtype: ANALYTICS_SUBTYPES.RECOMMENDATIONS,
                uiSequence: 0,
                contentId: ((_d = (_c = (_b = (_a = this._heroRecommendation) === null || _a === void 0 ? void 0 : _a.primaryCTA) === null || _b === void 0 ? void 0 : _b.ctaDeeplinkData) === null || _c === void 0 ? void 0 : _c.data) === null || _d === void 0 ? void 0 : _d.uuid) || ((_h = (_g = (_f = (_e = this._heroRecommendation) === null || _e === void 0 ? void 0 : _e.primaryCTA) === null || _f === void 0 ? void 0 : _f.ctaDeeplinkData) === null || _g === void 0 ? void 0 : _g.data) === null || _h === void 0 ? void 0 : _h.aemID),
                contentName: (_m = (_l = (_k = (_j = this._heroRecommendation) === null || _j === void 0 ? void 0 : _j.primaryCTA) === null || _k === void 0 ? void 0 : _k.ctaDeeplinkData) === null || _l === void 0 ? void 0 : _l.data) === null || _m === void 0 ? void 0 : _m.aemID,
                contentType: (_o = this._heroRecommendation) === null || _o === void 0 ? void 0 : _o.contentType,
                contentCategory: (_q = (_p = this._heroRecommendation) === null || _p === void 0 ? void 0 : _p.categories) === null || _q === void 0 ? void 0 : _q.toString(),
                contentStatus: (_r = this._heroRecommendation) === null || _r === void 0 ? void 0 : _r.level,
            };
        };
        this._logAnalyticsRenderEvent = () => {
            this.props.analytics.logEvent(this.props.containerAnalytics.component, { ...this._heroTutorialRenderParams() }, 'render');
        };
        this.componentDidMount = () => {
            var _a, _b;
            // Set the triggers up only for the time when the dynamic card is mounted before it's dispalyed.
            // All the render events logs will be triggered from User Intent onOpenHandler,
            // except the render triggered by clicking on "See recommendations for you".
            // Fot that specific scenario, triggers are not set up yet and the logs will be handled here
            this.props.forceRenderLogs && this._logAnalyticsRenderEvent();
            (_b = (_a = this.props).setTriggerHeroCardAnalyticsRenderLog) === null || _b === void 0 ? void 0 : _b.call(_a, this._logAnalyticsRenderEvent);
        };
    }
    setHeroRecommendation(recommendation) {
        this._heroRecommendation = {
            ...recommendation,
            image: recommendation.heroPath || recommendation.thumbnailPath,
        };
    }
    prepareCards() {
        const { recommendations } = this.props;
        // Here we decide what recommendations will be included in carousel and what will be displayed as hero
        // and also pick up the right thumbnail
        this._carouselRecommendations = recommendations
            .filter(recommendation => {
            recommendation.hero && !this._heroRecommendation && this.setHeroRecommendation(recommendation);
            return this._heroRecommendation
                ? this._heroRecommendation.headerText !== recommendation.headerText
                : !recommendation.hero;
        })
            .map(recommendation => ({
            ...recommendation,
            image: recommendation.thumbnailPath || recommendation.heroPath,
        }));
        if (!this._heroRecommendation && this._carouselRecommendations.length) {
            // No hero recommendation was found. Display the first one.
            this.setHeroRecommendation(this._carouselRecommendations.shift());
        }
    }
    render() {
        this.prepareCards();
        const heroRecommendationProps = {
            ...this._heroRecommendation,
            renderFeedback: false,
            uiOptions,
            containerAnalytics: this.props.containerAnalytics,
            logEvent: this.props.analytics.logEvent,
            dataKey: 0,
            setTriggerAnalyticsRenderLogs: this.props.setTriggerHeroCardAnalyticsRenderLog,
        };
        return (react_default.a.createElement("div", null,
            react_default.a.createElement("div", { "data-qe-id": "divider", className: Recommendations_styles.divider }),
            react_default.a.createElement("div", { className: Recommendations_styles.recommendationsContainer },
                react_default.a.createElement("div", { className: Recommendations_styles.heroTutorialContainer },
                    react_default.a.createElement(cards_DynamicCard_DynamicCard, Object.assign({}, heroRecommendationProps))),
                react_default.a.createElement("div", { className: Recommendations_styles.carouselContainer },
                    react_default.a.createElement("h2", { className: Recommendations_styles.carouselTitle }, "More recommendations"),
                    react_default.a.createElement(CarouselWrapper, { usageId: "UserIntentDialog", cardType: CAROUSEL_CARD_TYPE.INTENT_CARD, key: CAROUSEL_CARD_TYPE.INTENT_CARD, animationDelay: CAROUSEL_ANIMATION_DELAY, cardsData: this._carouselRecommendations, restartSlideShowFlag: false, logEvent: this.props.analytics.logEvent, containerAnalytics: this.props.containerAnalytics, setTriggerAnalyticsRenderLogs: this.props.setTriggerCarouselAnalyticsRenderLogs, forceRenderLogs: this.props.forceRenderLogs })))));
    }
}

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-firstmile-shared/src/components/toastals/user-intent-dialog/UserIntentDialog.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2022 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var UserIntentDialog_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;
};
var UserIntentDialog_metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};














const UserIntentDialog_styles = __webpack_require__("GERD");
const PAGES = {
    QUESTIONNAIRE: 'questionnaire',
    RECOMMENDATIONS: 'recommendations',
};
let UserIntentDialog_UserIntentDialog = class UserIntentDialog extends react["Component"] {
    constructor(props, context) {
        var _a, _b;
        super(props, context);
        this.hasError = false;
        this._isToastalVisible = false;
        this.state = {
            showRecommendations: false,
            canShowRecommendation: false,
            userInitiatedRender: false,
            currentAnswers: [],
            forceRenderLogs: false,
        };
        this._logAnalyticsErrorEvent = errorPayload => {
            var _a;
            const containerAnalytics = this.props.containerAnalytics;
            this.context.utils.analytics.logErrorEvent(containerAnalytics.component, {
                containerAnalyticsParams: this.containerAnalyticsParams,
                subtype: this.state.showRecommendations ? PAGES.RECOMMENDATIONS : PAGES.QUESTIONNAIRE,
                error: { desc: (_a = errorPayload.desc) === null || _a === void 0 ? void 0 : _a.substring(0, 997), type: errorPayload.type, code: errorPayload.code },
            });
        };
        this.buildAnalyticsJson = () => {
            var _a, _b, _c;
            const items = [];
            if (this.state.showRecommendations) {
                items.push(...(_a = this.recommendations) === null || _a === void 0 ? void 0 : _a.map(item => { var _a, _b, _c; return (_c = (_b = (_a = item === null || item === void 0 ? void 0 : item.primaryCTA) === null || _a === void 0 ? void 0 : _a.ctaDeeplinkData) === null || _b === void 0 ? void 0 : _b.data) === null || _c === void 0 ? void 0 : _c.aemID; }));
            }
            else {
                items.push(...(_c = (_b = this.props.questionnaire) === null || _b === void 0 ? void 0 : _b.items) === null || _c === void 0 ? void 0 : _c.map(item => {
                    let itemData = item.text + '+' + item.answerType;
                    item.answers.forEach(answer => {
                        var _a, _b, _c;
                        itemData += '+';
                        itemData += ((_b = (_a = answer === null || answer === void 0 ? void 0 : answer.metadata) === null || _a === void 0 ? void 0 : _a.categories) === null || _b === void 0 ? void 0 : _b.toString()) || ((_c = answer === null || answer === void 0 ? void 0 : answer.metadata) === null || _c === void 0 ? void 0 : _c.level);
                    });
                    return itemData;
                }));
            }
            return JSON.stringify(items).slice(0, 997);
        };
        this._userIntentDialogRenderEventParams = () => {
            const recommendationsJson = this.buildAnalyticsJson();
            return [
                this.props.containerAnalytics.component,
                {
                    recommendationsJson,
                    containerAnalyticsParams: this.containerAnalyticsParams,
                    subtype: this.state.showRecommendations ? PAGES.RECOMMENDATIONS : PAGES.QUESTIONNAIRE,
                    // toastal is implicitly displayed when it pops up and when user returns from workspace
                    // when user enter workspace, the toastal remains open, when the user returns, the toastal will be implicitly displayed
                    value: this.props.showOnlyOnce &&
                        this.context.utils.SharedSettings.get(user_intent_dialog_constants["b" /* COMPONENT_KEY */], this.props.edition) &&
                        !this._isToastalVisible
                        ? 'user-initiated'
                        : 'implicit',
                },
            ];
        };
        this.onCloseHandler = async () => {
            const { utils: { SharedSettings }, } = this.context;
            const { showOnlyOnce, onClose, edition, handleToastalFirstClose } = this.props;
            const isFirstTimeShowing = !SharedSettings.get(user_intent_dialog_constants["b" /* COMPONENT_KEY */], edition);
            if (showOnlyOnce && isFirstTimeShowing) {
                Object(Utils["a" /* callIfFunction */])(handleToastalFirstClose);
                const cachedData = SharedSettings.get(user_intent_dialog_constants["b" /* COMPONENT_KEY */], edition);
                if (!cachedData) {
                    SharedSettings.set(user_intent_dialog_constants["b" /* COMPONENT_KEY */], edition, []);
                }
            }
            if (onClose) {
                onClose();
                this._isToastalVisible = false;
            }
            this.context.utils.analytics.logClickedEvent(this.props.containerAnalytics.component, {
                subtype: ANALYTICS_SUBTYPES.CLOSE,
                value: this.state.showRecommendations ? PAGES.RECOMMENDATIONS : PAGES.QUESTIONNAIRE,
                containerAnalyticsParams: this.containerAnalyticsParams,
            });
            document.body.classList.remove('userIntentDialogOpened');
            this.context.utils.analytics.unsubscribeLogRenderedEvent(this._userIntentDialogRenderEventGUID);
            this.context.utils.analytics.unsubscribeLogRenderedEvent(this._userIntentDialogPageRenderEventGUID);
        };
        this.onOpenHandler = this.onOpenHandler.bind(this);
        this.handleClick = this.handleClick.bind(this);
        this._questions = questionsFilter((_a = this.props.questionnaire) === null || _a === void 0 ? void 0 : _a.items, this._logAnalyticsErrorEvent);
        this.setState({
            currentAnswers: new Array((_b = this._questions) === null || _b === void 0 ? void 0 : _b.length).fill(undefined),
        });
    }
    initState() {
        var _a;
        const { utils: { SharedSettings }, } = this.context;
        const { edition } = this.props;
        const answersMetadata = SharedSettings.get(user_intent_dialog_constants["b" /* COMPONENT_KEY */], edition);
        // if we don't have any questions, just display some recommendations
        if (!((_a = this._questions) === null || _a === void 0 ? void 0 : _a.length)) {
            this.setState({
                canShowRecommendation: true,
                showRecommendations: true,
            });
        }
        else if (answersMetadata === null || answersMetadata === void 0 ? void 0 : answersMetadata.length) {
            const { currentAnswers, showRecommendations } = this.checkAnsweredQuestions();
            this.setState({
                canShowRecommendation: showRecommendations,
                showRecommendations,
                currentAnswers,
            });
        }
    }
    updateSelectedAnswer(questionIndex, answerIndex) {
        var _a;
        const { utils: { SharedSettings }, } = this.context;
        const { edition } = this.props;
        let canShowRecommendation = false;
        const newAnswers = [...this.state.currentAnswers];
        // Build the new state
        newAnswers[questionIndex] = this.state.currentAnswers[questionIndex] === answerIndex ? undefined : answerIndex;
        // Check if we are ready to show recommendation
        canShowRecommendation = (_a = this._questions) === null || _a === void 0 ? void 0 : _a.every((_value, index) => newAnswers[index] !== undefined);
        // Build the new cached metadata
        const newMetadata = [];
        for (let index = 0; index < newAnswers.length; index++) {
            if (newAnswers[index] !== undefined) {
                newMetadata.push(this._questions[index].answers[newAnswers[index]].metadata);
            }
        }
        // Set new cached metadata
        SharedSettings.set(user_intent_dialog_constants["b" /* COMPONENT_KEY */], edition, newMetadata);
        // Set new state
        this.setState({
            canShowRecommendation: canShowRecommendation,
            currentAnswers: newAnswers,
        });
    }
    checkAnsweredQuestions() {
        var _a;
        const { utils: { SharedSettings }, } = this.context;
        let currentAnswers = [];
        let counter = 0;
        const { edition } = this.props;
        const questions = this._questions;
        const answersMetadata = (_a = SharedSettings.get(user_intent_dialog_constants["b" /* COMPONENT_KEY */], this.props.edition)) !== null && _a !== void 0 ? _a : [];
        /*
            For each cached answer that we have for the current edition, we will try to find the answers. We will return the answers that we find
            as pair of questionIndex/answerIndex.
            If we find at least one cached answer that isn't present in the current list of answers,
            we flush all of them because something changed in the content, but the edition remained the same.
        */
        for (let cachedAnswerMetadataIndex = 0; cachedAnswerMetadataIndex < (answersMetadata === null || answersMetadata === void 0 ? void 0 : answersMetadata.length); cachedAnswerMetadataIndex++) {
            let cachedAnswerFound = false;
            for (let questionIndex = 0; questionIndex < (questions === null || questions === void 0 ? void 0 : questions.length) && !cachedAnswerFound; questionIndex++) {
                const question = questions === null || questions === void 0 ? void 0 : questions[questionIndex];
                for (let answersIndex = 0; answersIndex < question.answers.length && !cachedAnswerFound; answersIndex++) {
                    const answer = question.answers[answersIndex];
                    if (this.compareAnswersMetadata(answer.metadata, answersMetadata === null || answersMetadata === void 0 ? void 0 : answersMetadata[cachedAnswerMetadataIndex])) {
                        counter++;
                        currentAnswers[questionIndex] = answersIndex;
                        cachedAnswerFound = true;
                    }
                }
            }
            if (!cachedAnswerFound) {
                //Something changed => flush the answers
                SharedSettings.set(user_intent_dialog_constants["b" /* COMPONENT_KEY */], edition, []);
                return { currentAnswers: [], showRecommendations: false };
            }
        }
        return { currentAnswers, showRecommendations: counter === ((questions === null || questions === void 0 ? void 0 : questions.length) || 0) };
    }
    /*
        This method compares 2 AnswerMetadata objects. If at least one of the metadata properties is equal
        we consider the two answers equal. The reason is that each answer refers to a specific kind of metadata (example: level)
    */
    compareAnswersMetadata(firstAnswerMetadata, secondAnswerMetadata) {
        if (!firstAnswerMetadata || !secondAnswerMetadata) {
            return false;
        }
        const { level: firstAnswerLevel, categories: firstAnswerCategories } = firstAnswerMetadata;
        const { level: secondAnswerLevel, categories: secondAnswerCategories } = secondAnswerMetadata;
        if (firstAnswerLevel && secondAnswerLevel && firstAnswerLevel === secondAnswerLevel) {
            return true;
        }
        if (!firstAnswerCategories ||
            !secondAnswerCategories ||
            firstAnswerCategories.length !== secondAnswerCategories.length) {
            return false;
        }
        // The copy is necesarry because the wrapper from the SharedSettings data does not sort correctly the array.
        const firstAnswerCategoriesCopy = [...firstAnswerCategories];
        const secondAnswerCategoriesCopy = [...secondAnswerCategories];
        firstAnswerCategoriesCopy.sort();
        secondAnswerCategoriesCopy.sort();
        return JSON.stringify(firstAnswerCategoriesCopy) === JSON.stringify(secondAnswerCategoriesCopy);
    }
    _setHomeScreenVisibilityReaction() {
        this._homeScreenVisibleReactionDisposer = Object(mobx_module["B" /* reaction */])(() => this.context.host.isHomeScreenVisible, isHomeScreenVisible => {
            if (isHomeScreenVisible && this._isToastalVisible) {
                this.triggerAnalyticsRenderLogs();
            }
        }, { fireImmediately: true });
    }
    componentWillMount() {
        this.containerAnalyticsParams = this.props.containerAnalytics.eventData.containerAnalyticsParams;
        this.initState();
    }
    componentDidMount() {
        this.containerAnalyticsParams = this.props.containerAnalytics.eventData.containerAnalyticsParams;
        this.initState();
        this._setHomeScreenVisibilityReaction();
        if (this.shouldShow) {
            this.onOpenHandler();
        }
    }
    componentDidUpdate(prevProps) {
        if (this.props.isOpen === prevProps.isOpen && this.props.edition === prevProps.edition) {
            return;
        }
        if (!this.shouldShow) {
            return;
        }
        this.onOpenHandler();
    }
    componentDidCatch(error) {
        console.error('UserIntentDialog failed to render ', error);
        const errorPayload = {
            desc: 'UserIntentDialog failed to render due to: ' + JSON.stringify(error.message),
            type: error.type || user_intent_dialog_constants["g" /* UserIntentDialogErrorType */],
            code: user_intent_dialog_constants["f" /* UserIntentDialogErrorCodes */].RENDER_FAILURE,
        };
        this._logAnalyticsErrorEvent(errorPayload);
        this.hasError = true;
    }
    componentWillUnmount() {
        this._homeScreenVisibleReactionDisposer();
    }
    getCurrentAnswersMetadata() {
        const currentAnswerMetadata = {
            category: '',
            level: '',
        };
        this.state.currentAnswers.forEach((answerIndex, questionIndex) => {
            var _a, _b, _c, _d, _e, _f, _g, _h;
            if ((_d = (_c = (_b = (_a = this._questions[questionIndex]) === null || _a === void 0 ? void 0 : _a.answers) === null || _b === void 0 ? void 0 : _b[answerIndex]) === null || _c === void 0 ? void 0 : _c.metadata) === null || _d === void 0 ? void 0 : _d.categories) {
                currentAnswerMetadata.category = this._questions[questionIndex].answers[answerIndex].metadata.categories.toString();
            }
            if ((_h = (_g = (_f = (_e = this._questions[questionIndex]) === null || _e === void 0 ? void 0 : _e.answers) === null || _f === void 0 ? void 0 : _f[answerIndex]) === null || _g === void 0 ? void 0 : _g.metadata) === null || _h === void 0 ? void 0 : _h.level) {
                currentAnswerMetadata.level = this._questions[questionIndex].answers[answerIndex].metadata.level;
            }
        });
        return currentAnswerMetadata;
    }
    switchPage() {
        const answersMetadata = this.getCurrentAnswersMetadata();
        this.context.utils.analytics.logClickedEvent(this.props.containerAnalytics.component, {
            subtype: ANALYTICS_SUBTYPES.USER_INTENT_CTA,
            containerAnalyticsParams: this.containerAnalyticsParams,
            contentStatus: !this.state.showRecommendations && answersMetadata.level,
            ctaData: this.state.showRecommendations
                ? ANALYTICS_SUBTYPES.QUESTIONNAIRE_RETURN
                : ANALYTICS_SUBTYPES.SEE_RECOMMENDATIONS,
            contentCategory: !this.state.showRecommendations && answersMetadata.category,
        });
        this.setState({
            showRecommendations: !this.state.showRecommendations,
            forceRenderLogs: !this._triggerCarouselAnalyticsRenderLogs || !this._triggerHeroCardAnalyticsRenderLog,
        }, this.triggerAnalyticsRenderLogs);
    }
    handleClick(data) {
        var _a;
        const { containerAnalytics, logEvent } = this.props;
        if (((_a = data === null || data === void 0 ? void 0 : data.ctaData) === null || _a === void 0 ? void 0 : _a.panel) === 'learn') {
            Object.assign(data, { ctaLog: ANALYTICS_SUBTYPES.SEE_ALL_TUTORIALS });
        }
        this.context.utils.CallToActionHandler.handleCallToAction(data, containerAnalytics, logEvent, this);
        this.props.onClose();
    }
    get shouldShow() {
        const { utils: { SharedSettings }, } = this.context;
        const { isOpen, showOnlyOnce, edition } = this.props;
        const seenBefore = !!SharedSettings.get(user_intent_dialog_constants["b" /* COMPONENT_KEY */], edition);
        let shouldShow = false;
        if (isOpen !== undefined) {
            shouldShow = isOpen; // visibility controlled by client
        }
        else {
            shouldShow = !(showOnlyOnce && seenBefore); // visibility self controlled through stored shared settings
        }
        return shouldShow;
    }
    triggerAnalyticsRenderLogs() {
        if (this.state.showRecommendations) {
            this.triggerAllRecommendationsAnalyticsRenderLogs();
        }
        //@ts-ignore
        this.context.utils.analytics.logRenderedEvent(...this._userIntentDialogRenderEventParams());
    }
    triggerAllRecommendationsAnalyticsRenderLogs() {
        var _a, _b;
        (_a = this._triggerHeroCardAnalyticsRenderLog) === null || _a === void 0 ? void 0 : _a.call(this);
        (_b = this._triggerCarouselAnalyticsRenderLogs) === null || _b === void 0 ? void 0 : _b.call(this);
    }
    onOpenHandler() {
        const { onOpen } = this.props;
        this._userIntentDialogRenderEventGUID = this.context.utils.analytics.subscribeLogRenderedEvent(() => this._userIntentDialogRenderEventParams());
        if (this.state.canShowRecommendation && !this.state.showRecommendations) {
            this.setState({
                showRecommendations: true,
            }, this.triggerAnalyticsRenderLogs);
        }
        else {
            this.triggerAnalyticsRenderLogs();
        }
        document.body.classList.add('userIntentDialogOpened');
        // if no element is focused when UserIntentDialog is opened, trigger a click on the #main element
        // this is so that focus is inside HomeScreen and pressing Esc will only close UserIntentDialog and not hide HS as well
        // this scenario happens when UserIntentDialog appears on its own when the host app is opened
        if (!document.activeElement) {
            window.requestAnimationFrame(() => {
                document.getElementById('main').click();
            });
        }
        Object(Utils["a" /* callIfFunction */])(onOpen);
        this._isToastalVisible = true;
    }
    _renderHeading() {
        var _a, _b, _c, _d, _e, _f;
        const title = this.state.showRecommendations
            ? (_a = this.props.recommendations) === null || _a === void 0 ? void 0 : _a.title : (_c = (_b = this.props.questionnaire) === null || _b === void 0 ? void 0 : _b.title) !== null && _c !== void 0 ? _c : '';
        const description = this.state.showRecommendations
            ? (_d = this.props.recommendations) === null || _d === void 0 ? void 0 : _d.description : (_f = (_e = this.props.questionnaire) === null || _e === void 0 ? void 0 : _e.description) !== null && _f !== void 0 ? _f : '';
        return (react["createElement"]("div", null,
            react["createElement"](Heading_default.a, { "data-qe-id": "userIntentDialog-title-header", variant: "subtitle1", className: UserIntentDialog_styles.titleHeader }, title),
            react["createElement"](Heading_default.a, { "data-qe-id": "userIntentDialog-description-header", variant: "subtitle3", className: UserIntentDialog_styles.descriptionHeader }, description)));
    }
    _renderCTAButtons() {
        var _a, _b, _c, _d;
        const { recommendations, questionnaire } = this.props;
        const { showRecommendations, canShowRecommendation } = this.state;
        const primaryCTAText = showRecommendations
            ? (_a = recommendations === null || recommendations === void 0 ? void 0 : recommendations.primaryCTA) === null || _a === void 0 ? void 0 : _a.ctaText : (_b = questionnaire === null || questionnaire === void 0 ? void 0 : questionnaire.primaryCTA) === null || _b === void 0 ? void 0 : _b.ctaText;
        const secondaryCTAText = showRecommendations && ((_c = recommendations === null || recommendations === void 0 ? void 0 : recommendations.secondaryCTA) === null || _c === void 0 ? void 0 : _c.ctaText);
        const primaryDataQeId = 'userIntentDialog-primaryCTA-button';
        return (react["createElement"]("div", { className: classnames_default()(!showRecommendations && UserIntentDialog_styles.questionnaireCTAButtonContainer) }, showRecommendations ? (react["createElement"]("div", null,
            react["createElement"](Button_default.a, { variant: "primary", disabled: !((_d = this._questions) === null || _d === void 0 ? void 0 : _d.length), onClick: () => this.switchPage(), "data-qe-id": primaryDataQeId },
                react["createElement"]("span", null, primaryCTAText)),
            secondaryCTAText && (react["createElement"](Button_default.a, { variant: "primary", onClick: () => this.handleClick(recommendations === null || recommendations === void 0 ? void 0 : recommendations.secondaryCTA), "data-qe-id": "userIntentDialog-secondaryCTA-button", className: UserIntentDialog_styles.recommendationSecondaryCTAButton },
                react["createElement"]("span", null, secondaryCTAText))))) : (react["createElement"](Button_default.a, { variant: "cta", onClick: () => this.switchPage(), disabled: !canShowRecommendation, "data-qe-id": primaryDataQeId, className: UserIntentDialog_styles.questionaireCTAButton },
            react["createElement"]("span", null, primaryCTAText)))));
    }
    get recommendations() {
        var _a;
        if (!this.state.showRecommendations) {
            return [];
        }
        const { utils: { SharedSettings }, } = this.context;
        const { recommendations } = this.props;
        const answersMetadata = (_a = SharedSettings.get(user_intent_dialog_constants["b" /* COMPONENT_KEY */], this.props.edition)) !== null && _a !== void 0 ? _a : [];
        const recs = computeRecommendationsToDisplay(answersMetadata, recommendations);
        if ((answersMetadata === null || answersMetadata === void 0 ? void 0 : answersMetadata.length) && recs[0].hasOwnProperty('matchingAnswers') && !recs[0].matchingAnswers) {
            const errorMessage = `No recommendations found for answers: ${JSON.stringify(answersMetadata)}`;
            console.error(errorMessage);
            this.context.utils.analytics.logErrorEvent(user_intent_dialog_constants["e" /* USER_INTENT_DIALOG_ERROR_KEY */], {
                subtype: 'recommendations',
                containerAnalyticsParams: this.containerAnalyticsParams,
                error: {
                    desc: errorMessage,
                    type: 'Recommendations',
                    code: user_intent_dialog_constants["f" /* UserIntentDialogErrorCodes */].NO_RECOMMENDATIONS_FOUND,
                },
            });
        }
        return recs;
    }
    render() {
        // Skip rendering if we encountered an error
        if (this.hasError) {
            return null;
        }
        const { showRecommendations, currentAnswers } = this.state;
        const recommendationsProps = {
            containerAnalytics: this.props.containerAnalytics,
            setTriggerCarouselAnalyticsRenderLogs: carouselAnalyticsRenderLogsMethod => (this._triggerCarouselAnalyticsRenderLogs = carouselAnalyticsRenderLogsMethod),
            setTriggerHeroCardAnalyticsRenderLog: heroAnalyticsRenderLogMethod => (this._triggerHeroCardAnalyticsRenderLog = heroAnalyticsRenderLogMethod),
        };
        return (react["createElement"](Toastal_Toastal, { isOpen: this.shouldShow, onClose: this.onCloseHandler, width: "1000px", height: "632px" },
            react["createElement"]("div", { "data-qe-id": "userIntentDialog-rootcontent-container", className: UserIntentDialog_styles.rootContent },
                this._renderHeading(),
                showRecommendations ? (react["createElement"](Recommendations_Recommendations, Object.assign({}, recommendationsProps, { forceRenderLogs: this.state.forceRenderLogs, analytics: this.context.utils.analytics, recommendations: this.recommendations }))) : (react["createElement"](Questionnaire_Questionnaire, { questions: this._questions, currentAnswers: currentAnswers, updateSelectedAnswer: (questionIndex, answerIndex) => this.updateSelectedAnswer(questionIndex, answerIndex), containerAnalytics: this.props.containerAnalytics, analytics: this.context.utils.analytics })),
                this._renderCTAButtons())));
    }
};
UserIntentDialog_UserIntentDialog.contextTypes = common_CommonStaticContext;
UserIntentDialog_decorate([
    mobx_module["z" /* observable */],
    UserIntentDialog_metadata("design:type", Object)
], UserIntentDialog_UserIntentDialog.prototype, "hasError", void 0);
UserIntentDialog_UserIntentDialog = UserIntentDialog_decorate([
    index_module["e" /* observer */],
    UserIntentDialog_metadata("design:paramtypes", [Object, Object])
], UserIntentDialog_UserIntentDialog);
/* harmony default export */ var user_intent_dialog_UserIntentDialog = (UserIntentDialog_UserIntentDialog);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-firstmile-shared/src/components/pieces/RatingButton.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2021 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/



const RatingButton_styles = __webpack_require__("28ng");
class RatingButton_RatingButton extends react["Component"] {
    constructor() {
        super(...arguments);
        this._handleClick = () => {
            this.props.onSelection(this.props.ratingValue);
        };
        this._handleKeyPressed = (event) => {
            if ((event.keyCode === pieces_constants.KEYS.SPACE || event.keyCode === pieces_constants.KEYS.ENTER) && !this.props.checked) {
                const target = event.target;
                event.preventDefault();
                event.stopPropagation();
                target.click();
            }
        };
    }
    /**
     * Return the html to render the NPSRatingButton
     *
     * @returns React.HTML
     * @memberof NPSRatingButton
     */
    render() {
        const { ratingValue, checked } = this.props;
        return (react["createElement"]("div", { className: RatingButton_styles.ratingButton, tabIndex: 0, onKeyDown: this._handleKeyPressed, onClick: this._handleClick },
            react["createElement"]("div", { id: `nps${ratingValue}`, className: classnames_default()(RatingButton_styles.circle, { [RatingButton_styles.circleChecked]: checked }) }, ratingValue)));
    }
}

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Textarea/index.js
var Textarea = __webpack_require__("nTRy");
var Textarea_default = /*#__PURE__*/__webpack_require__.n(Textarea);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-firstmile-shared/src/animationsHelper.ts
/**
 * Ease out equation used by XD as well.
 * @param ratio animation current progress
 */
function cubicOut(ratio) {
    // Equation: y = (x - 1)^3 + 1
    const ratioMinusOne = ratio - 1;
    return Math.pow(ratioMinusOne, 3) + 1;
}
/**
 * Returns values for animating an ease out using the cubic out function, based on
 * the initial and final values, animation duration and the start timestamp of the animation
 * in ms. (Obtained from Date.now()).
 * @param initialValue The value at the start of the animation.
 * @param finalValue The value at the end of the animation.
 * @param animationDuration The duration of the animation.
 * @param animationStartTime The start time of the animation.
 */
function animateEaseOut(initialValue, finalValue, animationDuration, animationStartTime) {
    const timeDelta = Date.now() - animationStartTime;
    return initialValue + (finalValue - initialValue) * cubicOut(timeDelta / animationDuration);
}

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-firstmile-shared/src/components/NPSDialog.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2021 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var NPSDialog_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;
};
var NPSDialog_metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};











const NPSDialog_styles = __webpack_require__("T5S9");
const RENDERED_EVENT_ID = 'npsModal';
const DISMISS_EVENT_ID = 'npsModalDismissed';
const SUBMIT_EVENT_ID = 'npsModalSubmit';
let NPSDialog_NPSDialog = class NPSDialog extends react["Component"] {
    constructor() {
        super(...arguments);
        this._animationStartTime = -1;
        this.currentSelection = -1;
        this.feedbackText = '';
        this.feedbackBoxHeight = 0;
        this.curtainOpacity = 0;
        this.modalOpacity = 0;
        this.thankYouOpacity = 0;
        this.showThankYou = false;
        this._animateComponentShown = () => {
            const newOpacity = animateEaseOut(0, 1, 300, this._animationStartTime);
            if (newOpacity < 1) {
                this.curtainOpacity = newOpacity;
                requestAnimationFrame(this._animateComponentShown);
            }
            else {
                this.modalOpacity = 1;
                this.curtainOpacity = 1;
            }
        };
        this._animateCurtainHide = (sendFeedback) => {
            const newOpacity = animateEaseOut(1, 0, 300, this._animationStartTime);
            if (newOpacity > 0) {
                this.curtainOpacity = newOpacity;
                requestAnimationFrame(() => {
                    this._animateCurtainHide(sendFeedback);
                });
            }
            else {
                this.curtainOpacity = 0;
                if (sendFeedback) {
                    // Do not call onCofirm in a requestAnimationFrame context
                    this._currentTimeoutId = setTimeout(() => {
                        this._currentTimeoutId = undefined;
                        this.props.onConfirm(this._submittedScore, this._submittedFeedback);
                    }, 0);
                }
                else {
                    this._currentTimeoutId = setTimeout(() => {
                        this._currentTimeoutId = undefined;
                        this.props.onCancel();
                    }, 0);
                }
            }
        };
        this._animateModalDisappearing = () => {
            const newOpacity = animateEaseOut(1, 0, 200, this._animationStartTime);
            if (newOpacity > 0) {
                this.modalOpacity = newOpacity;
                requestAnimationFrame(this._animateModalDisappearing);
            }
            else {
                this.modalOpacity = 0;
                this._animationStartTime = Date.now();
                requestAnimationFrame(() => {
                    this._animateCurtainHide(true);
                });
            }
        };
        this._animateSubmit = () => {
            const newOpacity = animateEaseOut(0, 1, 300, this._animationStartTime);
            if (newOpacity < 1) {
                this.thankYouOpacity = newOpacity;
                this.showThankYou = true;
                requestAnimationFrame(this._animateSubmit);
            }
            else {
                this.thankYouOpacity = 1;
                this.showThankYou = true;
                // Wait 500ms before starting to hide the Thank You modal then the curtain.
                this._currentTimeoutId = setTimeout(() => {
                    this._currentTimeoutId = undefined;
                    this._animationStartTime = Date.now();
                    requestAnimationFrame(this._animateModalDisappearing);
                }, 1000);
            }
        };
        /**
         * Use requestAnimationFrame to animate the feedbackBox appearing.
         * This is done like this because uxp doesn't support CSS transitions
         */
        this._animateFeedbackBoxAppearing = () => {
            const timeDelta = (Date.now() - this._animationStartTime) / 1000; // delta since last frame in seconds
            const animationSpeed = 150; // px per second
            const finalMaxHeight = 150;
            const newHeight = this.feedbackBoxHeight + animationSpeed * timeDelta;
            this.feedbackBoxHeight = newHeight;
            if (newHeight < finalMaxHeight) {
                requestAnimationFrame(this._animateFeedbackBoxAppearing);
            }
        };
        this._dismissNPS = () => {
            if (this._submittedScore) {
                // Submit in progress. Can no longer dismiss.
                return;
            }
            this.context.utils.analytics.logClickedEvent(DISMISS_EVENT_ID, {
                containerAnalyticsParams: this._containerAnalyticsParams,
                bucket: this.props.bucket,
                trigger: this.props.trigger,
                question: this.context.intl.formatMessage({ id: `${this.context.host.id}_nps_question` }),
            });
            this.modalOpacity = 0;
            requestAnimationFrame(() => {
                this._animateCurtainHide(false);
            });
        };
        this._handleBackgroundClick = event => {
            this._dismissNPS();
            event.stopPropagation();
        };
        /**
         * Handles the pressing of a rating button.
         * @param ratingValue the rating value selected by the user.
         */
        this._handleButtonSelection = (ratingValue) => {
            if (ratingValue !== -1) {
                this._animationStartTime = Date.now();
                requestAnimationFrame(this._animateFeedbackBoxAppearing);
            }
            this.currentSelection = ratingValue;
        };
        this._handleKeyPress = event => {
            if (event.keyCode === components_constants.KEYS.ESC) {
                this._dismissNPS();
            }
            else if (event.keyCode === components_constants.KEYS.TAB) {
                if (this._node.contains(document.activeElement)) {
                    return; // If the newly focused element is inside the toastal, carry on;
                }
                const tabbables = this._node.querySelectorAll('[tabindex]:not([tabindex="-1"])'); // Find all elements inside the Toastal that have a tabIndex
                // If the user has the Shift key held while Tabbing, we should go backwards (select the last tabbable element)
                // Otherwise, select the first
                const toSelect = event.shiftKey
                    ? tabbables[tabbables.length - 1]
                    : tabbables[0];
                toSelect.focus();
                event.stopPropagation(); // Stop the event from bubbling just in case
                event.preventDefault();
            }
        };
        this._handleTextChange = (text) => {
            this.feedbackText = text.slice(0, this.props.maxLength);
        };
        /**
         * Handles the user submit. Sends the score and feedback upwards towards XDStart.
         */
        this._handleSubmit = () => {
            const filterSet = new Set(this.props.filterChars);
            this._submittedFeedback = this.feedbackText
                .split('')
                .filter(c => !filterSet.has(c))
                .join('');
            this._submittedScore = this.currentSelection;
            // Minimal sanitize input based on a blacklist.
            this.context.utils.analytics.logClickedEvent(SUBMIT_EVENT_ID, {
                containerAnalyticsParams: this._containerAnalyticsParams,
                bucket: this.props.bucket,
                trigger: this.props.trigger,
                question: this.context.intl.formatMessage({ id: `${this.context.host.id}_nps_question` }),
                score: this._submittedScore,
                feedback: this._submittedFeedback,
            });
            this._animationStartTime = Date.now();
            requestAnimationFrame(this._animateSubmit);
        };
    }
    /**
     * Lifecycle method for when a component is added to the DOM
     * @returns {undefined}
     */
    componentDidMount() {
        this._containerAnalyticsParams =
            this.context.utils.sophia.getAnalyticsData(this.context.utils.constants.SURFACES.HOME) || {};
        this.context.utils.analytics.logRenderedEvent(RENDERED_EVENT_ID, {
            containerAnalyticsParams: this._containerAnalyticsParams,
            bucket: this.props.bucket,
            trigger: this.props.trigger,
            question: this.context.intl.formatMessage({ id: `${this.context.host.id}_nps_question` }),
        });
        document.addEventListener('keydown', this._handleKeyPress, false);
        this._node = react_dom_default.a.findDOMNode(this);
        this._animationStartTime = Date.now();
        requestAnimationFrame(this._animateComponentShown);
    }
    /**
     * Lifecycle method for when a component is unmounted.
     * @returns {undefined}
     */
    componentWillUnmount() {
        document.removeEventListener('keydown', this._handleKeyPress, false);
        // NPS will only schedule a timeout at a time.
        if (this._currentTimeoutId !== undefined) {
            clearTimeout(this._currentTimeoutId);
        }
    }
    /**
     * Return the html to render the NPSDialog
     *
     * @returns React.HTML
     * @memberof NPSDialog
     */
    render() {
        const scoreButtonsArray = [];
        const maxScore = 10;
        const hostId = this.context.host.id;
        for (let i = 0; i <= maxScore; i++) {
            scoreButtonsArray.push(react["createElement"](RatingButton_RatingButton, { "data-qe-id": 'nps-rating-button-' + i, key: i.toString(), checked: i === this.currentSelection, ratingValue: i, onSelection: this._handleButtonSelection }));
        }
        return (react["createElement"]("div", { "data-qe-id": "nps-root", className: classnames_default()(NPSDialog_styles.root, { [NPSDialog_styles.isOpen]: this.props.open }) },
            react["createElement"]("div", { "data-qe-id": "nps-root-curtain", className: NPSDialog_styles.rootCurtain, style: { opacity: this.curtainOpacity }, onClick: this._handleBackgroundClick }),
            react["createElement"]("div", { className: NPSDialog_styles.npsWrapper, style: { opacity: this.modalOpacity } },
                react["createElement"]("div", { className: NPSDialog_styles.npsContainer },
                    react["createElement"]("div", { className: NPSDialog_styles.npsContent },
                        react["createElement"]("span", { "data-qe-id": "nps-title", className: NPSDialog_styles.npsTitle }, this.context.intl.formatMessage({ id: `${hostId}_nps_title` })),
                        react["createElement"]("div", { className: NPSDialog_styles.delimiterLine }),
                        react["createElement"]("span", { "data-qe-id": "nps-question", className: NPSDialog_styles.npsQuestion }, this.context.intl.formatMessage({ id: `${hostId}_nps_question` })),
                        react["createElement"]("div", { className: NPSDialog_styles.flexWrapper },
                            react["createElement"]("div", null, this.context.intl.formatMessage({
                                id: `${hostId}_nps_lowest_grade_description`,
                            })),
                            react["createElement"]("div", null, this.context.intl.formatMessage({
                                id: `${hostId}_nps_highest_grade_description`,
                            }))),
                        react["createElement"]("div", { className: NPSDialog_styles.ratingButtonsRow }, scoreButtonsArray),
                        react["createElement"]("div", { id: "slideInBox", style: { maxHeight: this.feedbackBoxHeight + 'px' } },
                            react["createElement"]("div", { className: NPSDialog_styles.ratingReasoningText }, this.context.intl.formatMessage({
                                id: `${hostId}_nps_feedback_question`,
                            })),
                            react["createElement"](Textarea_default.a, { "data-qe-id": "nps-feedback-box", className: NPSDialog_styles.textInput, disabled: this.currentSelection === -1, placeholder: this.context.intl.formatMessage({
                                    id: `${hostId}_nps_feedback_placeholder`,
                                }), value: this.feedbackText, maxLength: this.props.maxLength, onChange: this._handleTextChange }))),
                    react["createElement"]("div", { className: NPSDialog_styles.buttonsContainer },
                        react["createElement"](Button_default.a, { "data-qe-id": "nps-dismiss-button", autoFocus: false, id: "npsShowLaterButton", onClick: this._dismissNPS, quiet: true, variant: "secondary" },
                            react["createElement"]("span", null, this.context.intl.formatMessage({
                                id: `${hostId}_nps_dismiss_button`,
                            }))),
                        react["createElement"](Button_default.a, { "data-qe-id": "nps-send-button", autoFocus: false, disabled: this.currentSelection === -1, id: "npsSendButton", onClick: this._handleSubmit, quiet: false, variant: "cta", className: NPSDialog_styles.sendButton },
                            react["createElement"]("span", null, this.context.intl.formatMessage({
                                id: `${hostId}_nps_submit_button`,
                            }))))),
                this.showThankYou && (react["createElement"]("div", { "data-qe-id": "nps-thank-you-screen", className: NPSDialog_styles.npsThankYou, style: { opacity: this.thankYouOpacity } }, this.context.intl.formatMessage({ id: `${hostId}_nps_after_submit` }))))));
    }
};
NPSDialog_NPSDialog.contextTypes = common_CommonStaticContext;
NPSDialog_NPSDialog.defaultProps = {
    filterChars: '',
};
NPSDialog_decorate([
    mobx_module["z" /* observable */],
    NPSDialog_metadata("design:type", Number)
], NPSDialog_NPSDialog.prototype, "currentSelection", void 0);
NPSDialog_decorate([
    mobx_module["z" /* observable */],
    NPSDialog_metadata("design:type", String)
], NPSDialog_NPSDialog.prototype, "feedbackText", void 0);
NPSDialog_decorate([
    mobx_module["z" /* observable */],
    NPSDialog_metadata("design:type", Number)
], NPSDialog_NPSDialog.prototype, "feedbackBoxHeight", void 0);
NPSDialog_decorate([
    mobx_module["z" /* observable */],
    NPSDialog_metadata("design:type", Number)
], NPSDialog_NPSDialog.prototype, "curtainOpacity", void 0);
NPSDialog_decorate([
    mobx_module["z" /* observable */],
    NPSDialog_metadata("design:type", Number)
], NPSDialog_NPSDialog.prototype, "modalOpacity", void 0);
NPSDialog_decorate([
    mobx_module["z" /* observable */],
    NPSDialog_metadata("design:type", Number)
], NPSDialog_NPSDialog.prototype, "thankYouOpacity", void 0);
NPSDialog_decorate([
    mobx_module["z" /* observable */],
    NPSDialog_metadata("design:type", Boolean)
], NPSDialog_NPSDialog.prototype, "showThankYou", void 0);
NPSDialog_NPSDialog = NPSDialog_decorate([
    index_module["e" /* observer */]
], NPSDialog_NPSDialog);
/* harmony default export */ var components_NPSDialog = (NPSDialog_NPSDialog);

// CONCATENATED MODULE: ./src/components/CCPhotos/index.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var CCPhotos_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;
};
var CCPhotos_metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var CCPhotos_a;





let CCPhotos_CCPhotos = class CCPhotos extends react_default.a.Component {
    constructor() {
        super(...arguments);
        this.hasStartedToLoad = false;
        this._disposerManager = new DisposerManager["a" /* default */]();
    }
    async ensureLoaded() {
        if (!this.PanelCCPhotos && !this.hasStartedToLoad) {
            this.hasStartedToLoad = true;
            this.PanelCCPhotos = (await __webpack_require__.e(/* import() | photos */ "photos").then(__webpack_require__.bind(null, "ylat"))).default;
        }
    }
    componentDidMount() {
        this._disposerManager.register(Object(mobx_module["B" /* reaction */])(() => MainStore["mainStore"].user.UserProfile.userId, ignore => {
            this.ensureLoaded().then(() => {
                const oldPanel = this.PanelCCPhotos;
                this.PanelCCPhotos = undefined;
                this.hasStartedToLoad = false;
                setTimeout(() => {
                    this.PanelCCPhotos = oldPanel;
                }, 0);
            });
        }, { fireImmediately: true }));
    }
    componentWillUnmount() {
        this._disposerManager.disposeAll();
    }
    render() {
        const isOnPage = MainStore["mainStore"].prefs.currentRoute === 'ccphotos';
        if (!isOnPage && !this.hasStartedToLoad) {
            return null;
        }
        this.ensureLoaded();
        return this.PanelCCPhotos ? react_default.a.createElement(this.PanelCCPhotos, { hidden: !isOnPage }) : null;
    }
};
CCPhotos_decorate([
    mobx_module["z" /* observable */],
    CCPhotos_metadata("design:type", typeof (CCPhotos_a = typeof LRImporter !== "undefined" && LRImporter) === "function" ? CCPhotos_a : Object)
], CCPhotos_CCPhotos.prototype, "PanelCCPhotos", void 0);
CCPhotos_CCPhotos = CCPhotos_decorate([
    index_module["e" /* observer */]
], CCPhotos_CCPhotos);
/* harmony default export */ var components_CCPhotos = (CCPhotos_CCPhotos);

// EXTERNAL MODULE: ./src/assets/S_IlluCloudDoc_230x160_darkest.svg
var S_IlluCloudDoc_230x160_darkest = __webpack_require__("X9Wd");
var S_IlluCloudDoc_230x160_darkest_default = /*#__PURE__*/__webpack_require__.n(S_IlluCloudDoc_230x160_darkest);

// CONCATENATED MODULE: ./src/CDOWrapper/CloudDocsPlaceholder.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/






const CloudDocsPlaceholder_styles = __webpack_require__("0rcX");
const CloudDocsPlaceholder = ({ intl }) => (react_default.a.createElement(react_default.a.Fragment, null,
    react_default.a.createElement(Heading_default.a, { variant: "subtitle1" }, intl.formatMessage({ id: 'cloud_docs_placeholder_title' })),
    react_default.a.createElement("div", { className: CloudDocsPlaceholder_styles.message },
        react_default.a.createElement("div", { className: CloudDocsPlaceholder_styles.icon },
            react_default.a.createElement(S_IlluCloudDoc_230x160_darkest_default.a, null)),
        react_default.a.createElement("div", { className: CloudDocsPlaceholder_styles.heading }, intl.formatMessage({ id: 'cloud_docs_placeholder_header' })),
        intl.formatMessage({ id: 'cloud_docs_placeholder_text' }),
        react_default.a.createElement("div", { className: CloudDocsPlaceholder_styles.button },
            react_default.a.createElement(Button_default.a, { onClick: () => applications["a" /* default */].launchPreferences() }, intl.formatMessage({ id: 'cloud_docs_placeholder_button' }))))));
/* harmony default export */ var CDOWrapper_CloudDocsPlaceholder = (Object(index_es["g" /* injectIntl */])(CloudDocsPlaceholder));

// CONCATENATED MODULE: ./src/components/Search/a11y.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
// const KEYS_OF_INTEREST_MAC = [
// 	{
// 		/* Enter */
// 		keyCode: 36,
// 	},
// 	{
// 		/* Tab */
// 		keyCode: 48,
// 	},
// 	{
// 		/* Shift+Tab */
// 		keyCode: 48,
// 		shiftKey: true,
// 	},
// 	{
// 		/* Space */
// 		keyCode: 49,
// 	},
// 	{
// 		/* Esc */
// 		keyCode: 53,
// 	},
// 	{
// 		/* Home */
// 		keyCode: 115,
// 	},
// 	{
// 		/* Page Up */
// 		keyCode: 116,
// 	},
// 	{
// 		/* End */
// 		keyCode: 119,
// 	},
// 	{
// 		/* Page Down */
// 		keyCode: 121,
// 	},
// 	{
// 		/* Left Arrow */
// 		keyCode: 123,
// 	},
// 	{
// 		/* Right Arrow */
// 		keyCode: 124,
// 	},
// 	{
// 		/* Down Arrow */
// 		keyCode: 125,
// 	},
// 	{
// 		/* Up Arrow */
// 		keyCode: 126,
// 	},
// 	{
// 		/* A */
// 		keyCode: 0,
// 	},
// 	{
// 		/* B */
// 		keyCode: 11,
// 	},
// 	{
// 		/* C */
// 		keyCode: 8,
// 	},
// 	{
// 		/* D */
// 		keyCode: 2,
// 	},
// 	{
// 		/* E */
// 		keyCode: 14,
// 	},
// 	{
// 		/* F */
// 		keyCode: 3,
// 	},
// 	{
// 		/* G */
// 		keyCode: 5,
// 	},
// 	{
// 		/* H */
// 		keyCode: 4,
// 	},
// 	{
// 		/* I */
// 		keyCode: 34,
// 	},
// 	{
// 		/* J */
// 		keyCode: 38,
// 	},
// 	{
// 		/* K */
// 		keyCode: 40,
// 	},
// 	{
// 		/* L */
// 		keyCode: 37,
// 	},
// 	{
// 		/* M */
// 		keyCode: 46,
// 	},
// 	{
// 		/* N */
// 		keyCode: 45,
// 	},
// 	{
// 		/* O */
// 		keyCode: 31,
// 	},
// 	{
// 		/* P */
// 		keyCode: 35,
// 	},
// 	{
// 		/* Q */
// 		keyCode: 12,
// 	},
// 	{
// 		/* R */
// 		keyCode: 15,
// 	},
// 	{
// 		/* S */
// 		keyCode: 1,
// 	},
// 	{
// 		/* T */
// 		keyCode: 17,
// 	},
// 	{
// 		/* U */
// 		keyCode: 32,
// 	},
// 	{
// 		/* V */
// 		keyCode: 9,
// 	},
// 	{
// 		/* W */
// 		keyCode: 13,
// 	},
// 	{
// 		/* X */
// 		keyCode: 7,
// 	},
// 	{
// 		/* Y */
// 		keyCode: 16,
// 	},
// 	{
// 		/* Z */
// 		keyCode: 6,
// 	},
// 	{
// 		/* ` */
// 		keyCode: 50,
// 	},
// 	{
// 		/* 1 */
// 		keyCode: 18,
// 	},
// 	{
// 		/* 2 */
// 		keyCode: 19,
// 	},
// 	{
// 		/* 3 */
// 		keyCode: 20,
// 	},
// 	{
// 		/* 4 */
// 		keyCode: 21,
// 	},
// 	{
// 		/* 5 */
// 		keyCode: 23,
// 	},
// 	{
// 		/* 6 */
// 		keyCode: 22,
// 	},
// 	{
// 		/* 7 */
// 		keyCode: 26,
// 	},
// 	{
// 		/* 8 */
// 		keyCode: 28,
// 	},
// 	{
// 		/* 9 */
// 		keyCode: 25,
// 	},
// 	{
// 		/* 0 */
// 		keyCode: 29,
// 	},
// 	{
// 		/* - */
// 		keyCode: 27,
// 	},
// 	{
// 		/* = */
// 		keyCode: 24,
// 	},
// 	{
// 		/* [ */
// 		keyCode: 33,
// 	},
// 	{
// 		/* ] */
// 		keyCode: 30,
// 	},
// 	{
// 		/* \ */
// 		keyCode: 42,
// 	},
// 	{
// 		/* ; */
// 		keyCode: 41,
// 	},
// 	{
// 		/* ' */
// 		keyCode: 39,
// 	},
// 	{
// 		/* , */
// 		keyCode: 43,
// 	},
// 	{
// 		/* . */
// 		keyCode: 47,
// 	},
// 	{
// 		/* / */
// 		keyCode: 44,
// 	},
// 	{
// 		/* A */
// 		keyCode: 0,
// 		shiftKey: true,
// 	},
// 	{
// 		/* B */
// 		keyCode: 11,
// 		shiftKey: true,
// 	},
// 	{
// 		/* C */
// 		keyCode: 8,
// 		shiftKey: true,
// 	},
// 	{
// 		/* D */
// 		keyCode: 2,
// 		shiftKey: true,
// 	},
// 	{
// 		/* E */
// 		keyCode: 14,
// 		shiftKey: true,
// 	},
// 	{
// 		/* F */
// 		keyCode: 3,
// 		shiftKey: true,
// 	},
// 	{
// 		/* G */
// 		keyCode: 5,
// 		shiftKey: true,
// 	},
// 	{
// 		/* H */
// 		keyCode: 4,
// 		shiftKey: true,
// 	},
// 	{
// 		/* I */
// 		keyCode: 34,
// 		shiftKey: true,
// 	},
// 	{
// 		/* J */
// 		keyCode: 38,
// 		shiftKey: true,
// 	},
// 	{
// 		/* K */
// 		keyCode: 40,
// 		shiftKey: true,
// 	},
// 	{
// 		/* L */
// 		keyCode: 37,
// 		shiftKey: true,
// 	},
// 	{
// 		/* M */
// 		keyCode: 46,
// 		shiftKey: true,
// 	},
// 	{
// 		/* N */
// 		keyCode: 45,
// 		shiftKey: true,
// 	},
// 	{
// 		/* O */
// 		keyCode: 31,
// 		shiftKey: true,
// 	},
// 	{
// 		/* P */
// 		keyCode: 35,
// 		shiftKey: true,
// 	},
// 	{
// 		/* Q */
// 		keyCode: 12,
// 		shiftKey: true,
// 	},
// 	{
// 		/* R */
// 		keyCode: 15,
// 		shiftKey: true,
// 	},
// 	{
// 		/* S */
// 		keyCode: 1,
// 		shiftKey: true,
// 	},
// 	{
// 		/* T */
// 		keyCode: 17,
// 		shiftKey: true,
// 	},
// 	{
// 		/* U */
// 		keyCode: 32,
// 		shiftKey: true,
// 	},
// 	{
// 		/* V */
// 		keyCode: 9,
// 		shiftKey: true,
// 	},
// 	{
// 		/* W */
// 		keyCode: 13,
// 		shiftKey: true,
// 	},
// 	{
// 		/* X */
// 		keyCode: 7,
// 		shiftKey: true,
// 	},
// 	{
// 		/* Y */
// 		keyCode: 16,
// 		shiftKey: true,
// 	},
// 	{
// 		/* Z */
// 		keyCode: 6,
// 		shiftKey: true,
// 	},
// 	{
// 		/* ` */
// 		keyCode: 50,
// 		shiftKey: true,
// 	},
// 	{
// 		/* 1 */
// 		keyCode: 18,
// 		shiftKey: true,
// 	},
// 	{
// 		/* 2 */
// 		keyCode: 19,
// 		shiftKey: true,
// 	},
// 	{
// 		/* 3 */
// 		keyCode: 20,
// 		shiftKey: true,
// 	},
// 	{
// 		/* 4 */
// 		keyCode: 21,
// 		shiftKey: true,
// 	},
// 	{
// 		/* 5 */
// 		keyCode: 23,
// 		shiftKey: true,
// 	},
// 	{
// 		/* 6 */
// 		keyCode: 22,
// 		shiftKey: true,
// 	},
// 	{
// 		/* 7 */
// 		keyCode: 26,
// 		shiftKey: true,
// 	},
// 	{
// 		/* 8 */
// 		keyCode: 28,
// 		shiftKey: true,
// 	},
// 	{
// 		/* 9 */
// 		keyCode: 25,
// 		shiftKey: true,
// 	},
// 	{
// 		/* 0 */
// 		keyCode: 29,
// 		shiftKey: true,
// 	},
// 	{
// 		/* - */
// 		keyCode: 27,
// 		shiftKey: true,
// 	},
// 	{
// 		/* = */
// 		keyCode: 24,
// 		shiftKey: true,
// 	},
// 	{
// 		/* [ */
// 		keyCode: 33,
// 		shiftKey: true,
// 	},
// 	{
// 		/* ] */
// 		keyCode: 30,
// 		shiftKey: true,
// 	},
// 	{
// 		/* \ */
// 		keyCode: 42,
// 		shiftKey: true,
// 	},
// 	{
// 		/* ; */
// 		keyCode: 41,
// 		shiftKey: true,
// 	},
// 	{
// 		/* ' */
// 		keyCode: 39,
// 		shiftKey: true,
// 	},
// 	{
// 		/* , */
// 		keyCode: 43,
// 		shiftKey: true,
// 	},
// 	{
// 		/* . */
// 		keyCode: 47,
// 		shiftKey: true,
// 	},
// 	{
// 		/* / */
// 		keyCode: 44,
// 		shiftKey: true,
// 	},
// 	{
// 		/* / */
// 		keyCode: 75,
// 	},
// 	{
// 		/* * */
// 		keyCode: 67,
// 	},
// 	{
// 		/* - */
// 		keyCode: 78,
// 	},
// 	{
// 		/* + */
// 		keyCode: 69,
// 	},
// 	{
// 		/* ⌫ */
// 		keyCode: 51,
// 	},
// ];
// const KEYS_OF_INTEREST_WIN = [
// 	{
// 		/* Enter */
// 		keyCode: 0x0d,
// 	},
// 	{
// 		/* Tab */
// 		keyCode: 0x09,
// 	},
// 	{
// 		/* Shift+Tab */
// 		keyCode: 0x09,
// 		shiftKey: true,
// 	},
// 	{
// 		/* Space */
// 		keyCode: 0x20,
// 	},
// 	{
// 		/* Esc */
// 		keyCode: 0x1b,
// 	},
// 	{
// 		/* Home */
// 		keyCode: 0x24,
// 	},
// 	{
// 		/* Page Up */
// 		keyCode: 0x21,
// 	},
// 	{
// 		/* End */
// 		keyCode: 0x23,
// 	},
// 	{
// 		/* Page Down */
// 		keyCode: 0x22,
// 	},
// 	{
// 		/* Left Arrow */
// 		keyCode: 0x25,
// 	},
// 	{
// 		/* Right Arrow */
// 		keyCode: 0x27,
// 	},
// 	{
// 		/* Down Arrow */
// 		keyCode: 0x28,
// 	},
// 	{
// 		/* Up Arrow */
// 		keyCode: 0x26,
// 	},
// 	{
// 		/* A */
// 		keyCode: 0x41,
// 	},
// 	{
// 		/* B */
// 		keyCode: 0x42,
// 	},
// 	{
// 		/* C */
// 		keyCode: 0x43,
// 	},
// 	{
// 		/* D */
// 		keyCode: 0x44,
// 	},
// 	{
// 		/* E */
// 		keyCode: 0x45,
// 	},
// 	{
// 		/* F */
// 		keyCode: 0x46,
// 	},
// 	{
// 		/* G */
// 		keyCode: 0x47,
// 	},
// 	{
// 		/* H */
// 		keyCode: 0x48,
// 	},
// 	{
// 		/* I */
// 		keyCode: 0x49,
// 	},
// 	{
// 		/* J */
// 		keyCode: 0x4a,
// 	},
// 	{
// 		/* K */
// 		keyCode: 0x4b,
// 	},
// 	{
// 		/* L */
// 		keyCode: 0x4c,
// 	},
// 	{
// 		/* M */
// 		keyCode: 0x4d,
// 	},
// 	{
// 		/* N */
// 		keyCode: 0x4e,
// 	},
// 	{
// 		/* O */
// 		keyCode: 0x4f,
// 	},
// 	{
// 		/* P */
// 		keyCode: 0x50,
// 	},
// 	{
// 		/* Q */
// 		keyCode: 0x51,
// 	},
// 	{
// 		/* R */
// 		keyCode: 0x52,
// 	},
// 	{
// 		/* S */
// 		keyCode: 0x53,
// 	},
// 	{
// 		/* T */
// 		keyCode: 0x54,
// 	},
// 	{
// 		/* U */
// 		keyCode: 0x55,
// 	},
// 	{
// 		/* V */
// 		keyCode: 0x56,
// 	},
// 	{
// 		/* W */
// 		keyCode: 0x57,
// 	},
// 	{
// 		/* X */
// 		keyCode: 0x58,
// 	},
// 	{
// 		/* Y */
// 		keyCode: 0x59,
// 	},
// 	{
// 		/* Z */
// 		keyCode: 0x5a,
// 	},
// 	{
// 		/* ` */
// 		keyCode: 0xc0,
// 	},
// 	{
// 		/* 1 */
// 		keyCode: 0x31,
// 	},
// 	{
// 		/* 2 */
// 		keyCode: 0x32,
// 	},
// 	{
// 		/* 3 */
// 		keyCode: 0x33,
// 	},
// 	{
// 		/* 4 */
// 		keyCode: 0x34,
// 	},
// 	{
// 		/* 5 */
// 		keyCode: 0x35,
// 	},
// 	{
// 		/* 6 */
// 		keyCode: 0x36,
// 	},
// 	{
// 		/* 7 */
// 		keyCode: 0x37,
// 	},
// 	{
// 		/* 8 */
// 		keyCode: 0x38,
// 	},
// 	{
// 		/* 9 */
// 		keyCode: 0x39,
// 	},
// 	{
// 		/* 0 */
// 		keyCode: 0x30,
// 	},
// 	{
// 		/* - */
// 		keyCode: 0xbd,
// 	},
// 	{
// 		/* = */
// 		keyCode: 0xbb,
// 	},
// 	{
// 		/* [ */
// 		keyCode: 0xdb,
// 	},
// 	{
// 		/* ] */
// 		keyCode: 0xdd,
// 	},
// 	{
// 		/* \ */
// 		keyCode: 0xdc,
// 	},
// 	{
// 		/* ; */
// 		keyCode: 0xba,
// 	},
// 	{
// 		/* ' */
// 		keyCode: 0xde,
// 	},
// 	{
// 		/* , */
// 		keyCode: 0xbc,
// 	},
// 	{
// 		/* . */
// 		keyCode: 0xbe,
// 	},
// 	{
// 		/* / */
// 		keyCode: 0xbf,
// 	},
// 	{
// 		/* A */
// 		keyCode: 0x41,
// 		shiftKey: true,
// 	},
// 	{
// 		/* B */
// 		keyCode: 0x42,
// 		shiftKey: true,
// 	},
// 	{
// 		/* C */
// 		keyCode: 0x43,
// 		shiftKey: true,
// 	},
// 	{
// 		/* D */
// 		keyCode: 0x44,
// 		shiftKey: true,
// 	},
// 	{
// 		/* E */
// 		keyCode: 0x45,
// 		shiftKey: true,
// 	},
// 	{
// 		/* F */
// 		keyCode: 0x46,
// 		shiftKey: true,
// 	},
// 	{
// 		/* G */
// 		keyCode: 0x47,
// 		shiftKey: true,
// 	},
// 	{
// 		/* H */
// 		keyCode: 0x48,
// 		shiftKey: true,
// 	},
// 	{
// 		/* I */
// 		keyCode: 0x49,
// 		shiftKey: true,
// 	},
// 	{
// 		/* J */
// 		keyCode: 0x4a,
// 		shiftKey: true,
// 	},
// 	{
// 		/* K */
// 		keyCode: 0x4b,
// 		shiftKey: true,
// 	},
// 	{
// 		/* L */
// 		keyCode: 0x4c,
// 		shiftKey: true,
// 	},
// 	{
// 		/* M */
// 		keyCode: 0x4d,
// 		shiftKey: true,
// 	},
// 	{
// 		/* N */
// 		keyCode: 0x4e,
// 		shiftKey: true,
// 	},
// 	{
// 		/* O */
// 		keyCode: 0x4f,
// 		shiftKey: true,
// 	},
// 	{
// 		/* P */
// 		keyCode: 0x50,
// 		shiftKey: true,
// 	},
// 	{
// 		/* Q */
// 		keyCode: 0x51,
// 		shiftKey: true,
// 	},
// 	{
// 		/* R */
// 		keyCode: 0x52,
// 		shiftKey: true,
// 	},
// 	{
// 		/* S */
// 		keyCode: 0x53,
// 		shiftKey: true,
// 	},
// 	{
// 		/* T */
// 		keyCode: 0x54,
// 		shiftKey: true,
// 	},
// 	{
// 		/* U */
// 		keyCode: 0x55,
// 		shiftKey: true,
// 	},
// 	{
// 		/* V */
// 		keyCode: 0x56,
// 		shiftKey: true,
// 	},
// 	{
// 		/* W */
// 		keyCode: 0x57,
// 		shiftKey: true,
// 	},
// 	{
// 		/* X */
// 		keyCode: 0x58,
// 		shiftKey: true,
// 	},
// 	{
// 		/* Y */
// 		keyCode: 0x59,
// 		shiftKey: true,
// 	},
// 	{
// 		/* Z */
// 		keyCode: 0x5a,
// 		shiftKey: true,
// 	},
// 	{
// 		/* ` */
// 		keyCode: 0xc0,
// 		shiftKey: true,
// 	},
// 	{
// 		/* 1 */
// 		keyCode: 0x31,
// 		shiftKey: true,
// 	},
// 	{
// 		/* 2 */
// 		keyCode: 0x32,
// 		shiftKey: true,
// 	},
// 	{
// 		/* 3 */
// 		keyCode: 0x33,
// 		shiftKey: true,
// 	},
// 	{
// 		/* 4 */
// 		keyCode: 0x34,
// 		shiftKey: true,
// 	},
// 	{
// 		/* 5 */
// 		keyCode: 0x35,
// 		shiftKey: true,
// 	},
// 	{
// 		/* 6 */
// 		keyCode: 0x36,
// 		shiftKey: true,
// 	},
// 	{
// 		/* 7 */
// 		keyCode: 0x37,
// 		shiftKey: true,
// 	},
// 	{
// 		/* 8 */
// 		keyCode: 0x38,
// 		shiftKey: true,
// 	},
// 	{
// 		/* 9 */
// 		keyCode: 0x39,
// 		shiftKey: true,
// 	},
// 	{
// 		/* 0 */
// 		keyCode: 0x30,
// 		shiftKey: true,
// 	},
// 	{
// 		/* - */
// 		keyCode: 0xbd,
// 		shiftKey: true,
// 	},
// 	{
// 		/* = */
// 		keyCode: 0xbb,
// 		shiftKey: true,
// 	},
// 	{
// 		/* [ */
// 		keyCode: 0xdb,
// 		shiftKey: true,
// 	},
// 	{
// 		/* ] */
// 		keyCode: 0xdd,
// 		shiftKey: true,
// 	},
// 	{
// 		/* \ */
// 		keyCode: 0xdc,
// 		shiftKey: true,
// 	},
// 	{
// 		/* ; */
// 		keyCode: 0xba,
// 		shiftKey: true,
// 	},
// 	{
// 		/* ' */
// 		keyCode: 0xde,
// 		shiftKey: true,
// 	},
// 	{
// 		/* , */
// 		keyCode: 0xbc,
// 		shiftKey: true,
// 	},
// 	{
// 		/* . */
// 		keyCode: 0xbe,
// 		shiftKey: true,
// 	},
// 	{
// 		/* / */
// 		keyCode: 0xbf,
// 		shiftKey: true,
// 	},
// 	{
// 		/* / */
// 		keyCode: 0x6f,
// 	},
// 	{
// 		/* * */
// 		keyCode: 0x6a,
// 	},
// 	{
// 		/* - */
// 		keyCode: 0x6d,
// 	},
// 	{
// 		/* + */
// 		keyCode: 0x6b,
// 	},
// 	{
// 		/* ⌫ */
// 		keyCode: 0x08,
// 	},
// ];
const KEYS = {
    TAB: 9,
    ENTER: 13,
    ESC: 27,
    SPACE: 32,
    PAGEUP: 33,
    PAGEDOWN: 34,
    END: 35,
    HOME: 36,
    LEFT: 37,
    UP: 38,
    RIGHT: 39,
    DOWN: 40,
};
/* harmony default export */ var a11y = ({
    keys: KEYS,
});
// const FOCUSABLE_SELECTOR = [
// 	'input:not([type="hidden"]):not(:disabled)',
// 	' select:not(:disabled)',
// 	'a[href]',
// 	'textarea:not(:disabled)',
// 	'button:not(:disabled)',
// 	'[tabindex]',
// ].join(',');
// const SEARCHSTRINGDELAY = 800;
// const WHITESPACEREGEX = /\s+/g;
// const REGEXREGEX = /[-[\]{}()*+?.,\\^$|#\s]/g;
// // variables for alphanumeric seach
// let _searchTimeout;
// let _searchString = '';
// // variables for node cache
// const _nodeCache = {};
// let _cacheIndex = 1;
// // variable for CEP hack
// let shiftKeyPressed = false;
// /**
//  * Trigger onLoadEvent.
//  */
// function _onLoadEvent() {
// 	let hadKeyboardEvent = false;
// 	const keyboardModalityAllowList = [
// 		'input:not([type])',
// 		'input[type=text]',
// 		'input[type=checkbox]',
// 		'input[type=radio]',
// 		'input[type=number]',
// 		'input[type=date]',
// 		'input[type=time]',
// 		'input[type=datetime]',
// 		'textarea',
// 		'[role=textbox]',
// 		'select',
// 		'[supports-modality=keyboard]',
// 	].join(',');
// 	disableFocusRingByDefault();
// 	document.body.addEventListener(
// 		'keydown',
// 		evt => {
// 			shiftKeyPressed = evt.shiftKey;
// 			hadKeyboardEvent = true;
// 			setTimeout(() => {
// 				hadKeyboardEvent = false;
// 			}, 0);
// 		},
// 		true
// 	);
// 	document.body.addEventListener('keyup', evt => {
// 		shiftKeyPressed = evt.shiftKey;
// 	});
// 	document.body.addEventListener(
// 		'focus',
// 		evt => {
// 			if (hadKeyboardEvent || focusTriggersKeyboardModality(evt.target)) {
// 				document.body.setAttribute('modality', 'keyboard');
// 			}
// 		},
// 		true
// 	);
// 	document.body.addEventListener(
// 		'mousedown',
// 		evt => {
// 			document.body.removeAttribute('modality');
// 		},
// 		true
// 	);
// 	function disableFocusRingByDefault() {
// 		const css = 'body:not([modality=keyboard]) :focus { outline: none; }';
// 		const head = document.head || document.getElementsByTagName('head')[0];
// 		const style = document.createElement('style');
// 		style.type = 'text/css';
// 		style.id = 'disable-focus-ring';
// 		if ((style as any).styleSheet) {
// 			(style as any).styleSheet.cssText = css;
// 		} else {
// 			style.appendChild(document.createTextNode(css));
// 		}
// 		head.appendChild(style);
// 	}
// 	function focusTriggersKeyboardModality(el) {
// 		return el.matches(keyboardModalityAllowList);
// 	}
// }
// /**
//  * Accessibility (A11Y) module.
//  */
// class A11Y {
// 	/**
// 	 * Singleton instance.
// 	 */
// 	static _instance: A11Y;
// 	/**
// 	 * Singleton style getter for this object.
// 	 *
// 	 * @return {Object} representing this singleton.
// 	 */
// 	static getInstance() {
// 		if (!this._instance) {
// 			this._instance = new A11Y();
// 		}
// 		return this._instance;
// 	}
// 	constructor() {
// 		_onLoadEvent();
// 	}
// 	/**
// 	 * Get the binding keys
// 	 *
// 	 * @return constant {Object} containing key entries.
// 	 */
// 	get keys() {
// 		return KEYS;
// 	}
// 	/**
// 	 * Returns true if the shift key is pressed.
// 	 *
// 	 * @return {Boolean} indicating whether or not the shift key is pressed.
// 	 */
// 	get shiftKeyPressed() {
// 		return shiftKeyPressed;
// 	}
// 	/**
// 	 * Utility method to evaluate whether an node or any of its parents is hidden.
// 	 *
// 	 * @param node 			{Object} node to check
// 	 * @return {Boolean} indicating hidden state
// 	 */
// 	isHidden(node) {
// 		if (node === document.documentElement) {
// 			return false;
// 		}
// 		// No need to test node if we already have tested its display/visibility.
// 		if (node.focusableCacheIndex) {
// 			return _nodeCache[node.focusableCacheIndex];
// 		}
// 		let result = false;
// 		const style = window.getComputedStyle(node);
// 		if (style.visibility === 'hidden' || style.display === 'none') {
// 			result = true;
// 		} else if (node.parentNode) {
// 			result = this.isHidden(node.parentNode);
// 		}
// 		// Once node has been tested store result.
// 		node.focusableCacheIndex = _cacheIndex;
// 		_nodeCache[node.focusableCacheIndex] = result;
// 		_cacheIndex++;
// 		return result;
// 	}
// 	/**
// 	 * Returns true when a given element can receive keyboard or mouse focus.
// 	 *
// 	 * @param el 		{HTMLElement} to check.
// 	 * @return {Boolean} true when element can receive keyboard or mouse focus.
// 	 */
// 	isFocusable(el) {
// 		return el.matches(FOCUSABLE_SELECTOR) && !this.isHidden(el);
// 	}
// 	/**
// 	 * Returns an array of focusable descendants of a given element ordered with elements having tabIndex > 0 coming before elements with tabIndex <= 0.
// 	 *
// 	 * @param el 			{Object} parent node or selector
// 	 * @param tabbable 		{Boolean} return only tabbable children by excluding elements with tabIndex < 0
// 	 * @param includeEl 	{Boolean} include parent element in result if it is focusable.
// 	 * @return {Array} of ordered focusable elements
// 	 */
// 	focusable(el, tabbable, includeEl) {
// 		if (typeof el === 'string') {
// 			el = document.querySelector(el);
// 		}
// 		const basicFocusables: any[] = [],
// 			candidateNodelist = el.querySelectorAll(FOCUSABLE_SELECTOR),
// 			candidates = Array.prototype.slice.call(candidateNodelist);
// 		let orderedFocusables: any[] = [],
// 			candidate,
// 			candidateTabIndex;
// 		if (includeEl) {
// 			candidates.unshift(el);
// 		}
// 		for (let i = 0, l = candidates.length; i < l; i++) {
// 			candidate = candidates[i];
// 			candidateTabIndex = candidate.tabIndex;
// 			if (
// 				(candidateTabIndex < 0 && tabbable) ||
// 				this.isHidden(candidate)
// 			) {
// 				continue;
// 			}
// 			if (candidateTabIndex <= 0) {
// 				basicFocusables.push(candidate);
// 			} else {
// 				orderedFocusables.push({
// 					tabIndex: candidateTabIndex,
// 					node: candidate,
// 				});
// 			}
// 		}
// 		orderedFocusables = orderedFocusables
// 			.sort((a, b) => {
// 				return a.tabIndex - b.tabIndex;
// 			})
// 			.map(a => {
// 				return a.node;
// 			});
// 		Array.prototype.push.apply(orderedFocusables, basicFocusables);
// 		return orderedFocusables;
// 	}
// 	/**
// 	 * Returns an array of tabbable descendants of a given element ordered with elements having
// 	 * tabIndex > 0 coming before elements with tabIndex <= 0.
// 	 *
// 	 * @param el 			{HtmlElement} parent node
// 	 * @param includeEl 	{Boolean} include parent element in result if it is tabbable
// 	 * @return {Array} of ordered tabbable elements
// 	 */
// 	tabbable(el, includeEl) {
// 		if (typeof el === 'string') {
// 			el = document.querySelector(el);
// 		}
// 		return this.focusable(el, true, includeEl);
// 	}
// 	/**
// 	 * Returns true if a given element or one of its descendants has focus.
// 	 *
// 	 * @param el 		{Object} element or selector
// 	 * @return {Boolean} whether the element or one of its descendant has focus.
// 	 */
// 	descendantHasFocus(el) {
// 		if (typeof el === 'string') {
// 			el = document.querySelector(el);
// 		}
// 		return (
// 			el === document.activeElement || el.contains(document.activeElement)
// 		);
// 	}
// 	/**
// 	 * Returns next item from array of items by alphanumeric search.
// 	 *
// 	 * @param evt 			{Object} containing the event keypress
// 	 * @param items 		{Array} of HTMLElements
// 	 * @param currentItem 	{HTMLElement} current item within the items array
// 	 * @return {HTMLElement} with text content that starts with an alphanumeric string.
// 	 */
// 	alphanumericSearch(evt, items, currentItem) {
// 		const charCode = evt.charCode;
// 		let index = -1;
// 		if (charCode <= 32 || evt.ctrlKey || evt.metaKey || evt.altKey) {
// 			return;
// 		}
// 		const stringFromCharCode = String.fromCharCode(charCode);
// 		if (stringFromCharCode !== _searchString) {
// 			_searchString += String.fromCharCode(charCode);
// 		}
// 		clearTimeout(_searchTimeout);
// 		_searchTimeout = setTimeout(() => {
// 			_searchString = '';
// 		}, SEARCHSTRINGDELAY);
// 		items = items.filter(el => {
// 			const textContent = el.textContent
// 				.replace(WHITESPACEREGEX, ' ')
// 				.trim();
// 			return new RegExp(
// 				'^' + _searchString.replace(REGEXREGEX, '\\$&'),
// 				'i'
// 			).test(textContent);
// 		});
// 		if (items.length) {
// 			index = items.indexOf(currentItem);
// 			if (index === -1) {
// 				return items[0];
// 			} else if (_searchString.length > 1) {
// 				return items;
// 			} else if (index === items.length - 1) {
// 				return items[0];
// 			}
// 			return items[index + 1];
// 		}
// 	}
// 	/**
// 	 * Returns next item from a grid/card layout in vertical direction.
// 	 *
// 	 * @param items			{Array} An array of HTMLElements
// 	 * @param currentItem	{HTMLElement} Current item within the items array.
// 	 * @param up			{Boolean} Search in the reverse or 'up' direction
// 	 * @return {HTMLElement} An element adjacent to the current item vertically
// 	 */
// 	getAdjacentElementVertically(items, currentItem, up) {
// 		let i = items.indexOf(currentItem),
// 			rect = currentItem.getBoundingClientRect(),
// 			nextRowTop = null,
// 			candidates: any[] = [];
// 		const direction = up ? -1 : 1,
// 			rowTop = rect.top,
// 			colLeft = rect.left;
// 		let adjacentItem = items[i + direction];
// 		i += direction;
// 		while (adjacentItem && adjacentItem.getBoundingClientRect) {
// 			rect = adjacentItem.getBoundingClientRect();
// 			// determine start of next row
// 			if (nextRowTop === null && rowTop !== rect.top) {
// 				nextRowTop = rect.top;
// 			}
// 			// when we determine next row, add all items in that row as candidates
// 			if (nextRowTop) {
// 				if (nextRowTop === rect.top) {
// 					candidates.push({ item: adjacentItem, rect: rect });
// 				} else {
// 					break;
// 				}
// 			}
// 			i += direction;
// 			adjacentItem = items[i];
// 		}
// 		// sort candidates from left to right
// 		candidates = candidates.sort((a, b) => a.rect.left - b.rect.left);
// 		const filtered = candidates.filter(candidate => {
// 			rect = candidate.rect;
// 			return colLeft <= rect.right;
// 		});
// 		if (filtered.length) {
// 			return filtered[0].item;
// 		} else if (candidates.length) {
// 			return candidates[candidates.length - 1].item;
// 		}
// 	}
// }
// /**
//  * Public exports.
//  */
// export default A11Y.getInstance();

// EXTERNAL MODULE: ./src/js/start/CommonUtils.tsx
var CommonUtils = __webpack_require__("5ndN");

// CONCATENATED MODULE: ./src/components/Search/lazy-image/LazyImage.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var LazyImage_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;
};
var LazyImage_metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};






const LazyImage_logger = Logger["a" /* default */].get('LazyImage');
const LazyImage_styles = __webpack_require__("bkYS");
let LazyImage_LazyImage = class LazyImage extends react["Component"] {
    constructor(props) {
        super(props);
        this.fetch(props.lazySrc);
    }
    componentWillUnmount() {
        this.revokeBlobURL();
    }
    revokeBlobURL() {
        if (this.lazyResultUrl) {
            URL.revokeObjectURL(this.lazyResultUrl);
        }
    }
    componentDidUpdate(prevProps) {
        const { lazySrc } = this.props;
        if (lazySrc !== prevProps.lazySrc) {
            this.fetch(lazySrc);
        }
    }
    async fetch(lazySrc) {
        this.revokeBlobURL();
        if (!lazySrc) {
            return;
        }
        try {
            const imageBufferArray = await Object(CommonUtils["f" /* getResponseArrayBuffer */])(lazySrc, this.props.authorizationParams);
            const blob = new Blob([imageBufferArray]);
            const blobUrl = URL.createObjectURL(blob);
            this.lazyResultUrl = blobUrl;
        }
        catch (e) {
            LazyImage_logger.error(e);
        }
    }
    render() {
        return (react["createElement"]("div", { className: LazyImage_styles.root },
            react["createElement"]("img", { className: classnames_default()({
                    [LazyImage_styles.loading]: this.props.lazySrc && !this.lazyResultUrl,
                }), src: this.lazyResultUrl || this.props.src })));
    }
};
LazyImage_decorate([
    mobx_module["z" /* observable */],
    LazyImage_metadata("design:type", Object)
], LazyImage_LazyImage.prototype, "lazyResultUrl", void 0);
LazyImage_LazyImage = LazyImage_decorate([
    index_module["e" /* observer */],
    LazyImage_metadata("design:paramtypes", [Object])
], LazyImage_LazyImage);
/* harmony default export */ var lazy_image_LazyImage = (LazyImage_LazyImage);

// CONCATENATED MODULE: ./src/components/Search/lazy-image/LazyImageOverlay.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/


const LazyImageOverlay_styles = __webpack_require__("bkYS");
function LazyImageOverlay() {
    return (react["createElement"]("div", { className: LazyImageOverlay_styles.error },
        react["createElement"]("span", { className: LazyImageOverlay_styles.errorText },
            react["createElement"](index_es["c" /* FormattedMessage */], { id: "search_error_image_too_big" }))));
}

// CONCATENATED MODULE: ./src/components/Search/RenditionBadge.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/

function RenditionBadge() {
    return (react["createElement"]("div", { className: "rendition-badge" },
        react["createElement"]("img", { src: "./images/originalmissing.svg" })));
}

// CONCATENATED MODULE: ./src/components/Search/ProgressIndicator.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var ProgressIndicator_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;
};






const ProgressIndicator_styles = __webpack_require__("/9aV");
let ProgressIndicator_ProgressIndicator = class ProgressIndicator extends react["Component"] {
    constructor() {
        super(...arguments);
        this.onCancel = ev => {
            ev.stopPropagation();
            this.props.progress.cancel();
        };
        this.onKeyDown = evt => {
            switch (evt.keyCode) {
                case components_start_constants["k" /* default */].KEYS.ENTER:
                case components_start_constants["k" /* default */].KEYS.SPACE:
                    this.onCancel(evt);
                    break;
                default:
                    // do nothing
                    break;
            }
        };
    }
    render() {
        const progress = this.props.progress;
        return (react["createElement"]("div", { className: classnames_default()(ProgressIndicator_styles.root, progress && ProgressIndicator_styles.isOpeningFile) },
            react["createElement"]("div", { className: ProgressIndicator_styles.progressBar, onClick: ev => ev.stopPropagation() },
                react["createElement"]("div", { className: ProgressIndicator_styles.progressBarInset, style: {
                        width: ((progress && Math.round(progress.percent)) || 0) + '%',
                    } })),
            react["createElement"](Button_default.a, { variant: "primary", tabIndex: 0, onKeyDown: evt => this.onKeyDown(evt), onClick: this.onCancel },
                react["createElement"](index_es["c" /* FormattedMessage */], { id: "common_cancel" }))));
    }
};
ProgressIndicator_ProgressIndicator = ProgressIndicator_decorate([
    index_module["e" /* observer */]
], ProgressIndicator_ProgressIndicator);
/* harmony default export */ var Search_ProgressIndicator = (ProgressIndicator_ProgressIndicator);

// CONCATENATED MODULE: ./src/components/Search/ImageGrid.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var ImageGrid_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;
};
var ImageGrid_metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};











const ImageGrid_styles = __webpack_require__("6T3m");

const ImageGrid_sharedCSSClasses = __webpack_require__("kMNh");
const ImageGrid_sharedStyles = __webpack_require__("IXZT");
let ImageGrid_ImageGrid = class ImageGrid extends react["Component"] {
    constructor() {
        super(...arguments);
        this.downloadsInProgress = new Map();
        this.dimensionsAreDirty = true;
        this.displayImageDimensions = new Map();
        this.lazyMaxRows = 20;
        this.waitingForMoreItems = false;
        this.onScroll = e => {
            const { onLoadMore, rowMaxHeight } = this.props;
            const scrollContainer = e.currentTarget;
            const scrollbarContainerHeight = scrollContainer.offsetHeight;
            if (scrollContainer && this.containerEl) {
                if (scrollContainer.scrollTop + scrollbarContainerHeight >= scrollContainer.scrollHeight) {
                    if (onLoadMore && !this.waitingForMoreItems) {
                        this.waitingForMoreItems = true;
                        onLoadMore(() => {
                            this.waitingForMoreItems = false;
                        });
                    }
                    const additionalRowCount = Math.ceil(scrollbarContainerHeight / rowMaxHeight) * 1;
                    this.lazyMaxRows += additionalRowCount;
                    this.forceRecalculation();
                }
            }
        };
        this.forceRecalculation = Object(throttle["a" /* default */])(() => {
            this.dimensionsAreDirty = true;
            this.forceUpdate();
        }, 100);
        this.onClick = (evt, image) => {
            const id = this.getImageIdentifier(image);
            iaw_analytics["a" /* default */].logClickedEvent('search-card', image);
            if (!this.props.imageClickCallback) {
                return;
            }
            const downloadProgress = this.props.imageClickCallback(evt, image);
            if (downloadProgress) {
                downloadProgress.then(() => {
                    this.downloadsInProgress.delete(id);
                });
                this.downloadsInProgress.set(id, downloadProgress);
            }
        };
        this.onKeyDown = (evt, onClick) => {
            switch (evt.keyCode) {
                case pieces_constants.KEYS.ENTER:
                case pieces_constants.KEYS.SPACE:
                    onClick();
                    break;
                default:
                    // do nothing
                    break;
            }
        };
    }
    getImageIdentifier(image) {
        // TODO: statically type these
        return image.identifier || image.href;
    }
    componentDidMount() {
        window.addEventListener('resize', this.forceRecalculation);
        this.dimensionsAreDirty = true;
        this.calculateDisplayWidths(); // TODO: remove this line?
        if (this.props.enableLazyLoad) {
            this.toggleLazyLoading(true);
        }
    }
    toggleLazyLoading(shouldEnable) {
        const { scrollContainer, rowMaxHeight } = this.props;
        if (shouldEnable && scrollContainer) {
            this.lazyMaxRows = (scrollContainer.offsetHeight / rowMaxHeight) * 2;
            scrollContainer && scrollContainer.addEventListener('scroll', this.onScroll);
        }
        else {
            scrollContainer && scrollContainer.removeEventListener('scroll', this.onScroll);
        }
    }
    componentWillUnmount() {
        window.removeEventListener('resize', this.forceRecalculation);
        if (this.props.enableLazyLoad) {
            this.toggleLazyLoading(false);
        }
    }
    componentDidUpdate() {
        if (this.dimensionsAreDirty) {
            this.calculateDisplayWidths();
            this.dimensionsAreDirty = false;
        }
    }
    calculateDisplayWidths() {
        let { maxRows, gapSize, showIncompleteRows, rowMaxHeight, enableLazyLoad, images } = this.props;
        if (!this.containerEl || !images) {
            return;
        }
        this.rowWidth = this.containerEl.offsetWidth;
        this.displayImageDimensions.clear();
        const maxRatio = Math.floor(this.rowWidth / rowMaxHeight);
        let rowRatio = 0;
        let currentRow = [];
        let rowCount = 0;
        gapSize = Math.floor(gapSize);
        for (let i = 0, len = images.length; i < len; i++) {
            if (isNaN(images[i].thumb.aspectRatio)) {
                continue;
            }
            if (rowRatio === 0) {
                rowRatio = images[i].thumb.aspectRatio;
            }
            else {
                rowRatio += images[i].thumb.aspectRatio;
            }
            currentRow.push(images[i]);
            // if the ratio exceeds the max ratio or it's the last image and we're showing incomplete rows
            if (rowRatio > maxRatio || (i === len - 1 && showIncompleteRows)) {
                const h = Math.min(this.rowWidth / rowRatio, rowMaxHeight);
                currentRow.forEach(rowImage => {
                    this.displayImageDimensions.set(rowImage, {
                        width: Math.floor(h * rowImage.thumb.aspectRatio - gapSize),
                        height: Math.floor(h),
                        marginBottom: gapSize,
                        marginRight: gapSize,
                    });
                });
                rowRatio = 0;
                rowCount++;
                currentRow = [];
                if (rowCount >= (enableLazyLoad ? this.lazyMaxRows : maxRows)) {
                    break;
                }
            }
        }
        this.props.imageDimensionsCalculatedCallback &&
            this.props.imageDimensionsCalculatedCallback(this.displayImageDimensions);
    }
    render() {
        const images = this.props.images.map((image, index) => {
            if (!this.displayImageDimensions.has(image)) {
                return null;
            }
            const dims = this.displayImageDimensions.get(image);
            const progress = this.downloadsInProgress.get(this.getImageIdentifier(image));
            return (react["createElement"]("div", { key: index, tabIndex: 0, className: `${ImageGrid_styles.item} ${ImageGrid_sharedCSSClasses.focus}`, onKeyDown: evt => {
                    this.onKeyDown(evt, () => {
                        this.onClick(evt, image, index);
                    });
                }, onClick: evt => this.onClick(evt, image, index), "data-qe-id": 'image-grid-item__' + index, style: {
                    width: dims.width,
                    height: dims.height,
                    marginBottom: dims.marginBottom,
                    marginRight: dims.marginRight,
                    display: 'inline-block',
                    cursor: 'pointer',
                } },
                react["createElement"](lazy_image_LazyImage, { lazySrc: image.thumb.rendition, src: image.thumb.href, authorizationParams: this.props.authorizationParams }),
                image.isFullRendition !== undefined && !image.isFullRendition && react["createElement"](RenditionBadge, null),
                react["createElement"](LazyImageOverlay, null),
                progress && react["createElement"](Search_ProgressIndicator, { progress: progress })));
        });
        return (react["createElement"]("div", { className: classnames_default()(ImageGrid_styles.root, {
                'download-in-progress': this.downloadsInProgress.size > 0,
            }), ref: el => (this.containerEl = el), style: { width: '100%' } },
            react["createElement"]("div", { className: ImageGrid_styles.gridInner, style: {
                    width: this.rowWidth,
                } }, images.map(item => item)),
            this.waitingForMoreItems && (react["createElement"]("div", { className: ImageGrid_sharedStyles.flexCenterCenter },
                react["createElement"](Wait_default.a, { size: "L" })))));
    }
};
ImageGrid_ImageGrid.defaultProps = {
    maxRows: 3,
    gapSize: 5,
    showIncompleteRows: false,
    enableLazyLoad: false,
};
ImageGrid_decorate([
    mobx_module["z" /* observable */],
    ImageGrid_metadata("design:type", Object)
], ImageGrid_ImageGrid.prototype, "downloadsInProgress", void 0);
ImageGrid_decorate([
    mobx_module["z" /* observable */],
    ImageGrid_metadata("design:type", Object)
], ImageGrid_ImageGrid.prototype, "rowWidth", void 0);
ImageGrid_decorate([
    mobx_module["z" /* observable */],
    ImageGrid_metadata("design:type", Object)
], ImageGrid_ImageGrid.prototype, "dimensionsAreDirty", void 0);
ImageGrid_decorate([
    mobx_module["z" /* observable */],
    ImageGrid_metadata("design:type", Object)
], ImageGrid_ImageGrid.prototype, "lazyMaxRows", void 0);
ImageGrid_decorate([
    mobx_module["z" /* observable */],
    ImageGrid_metadata("design:type", Object)
], ImageGrid_ImageGrid.prototype, "waitingForMoreItems", void 0);
ImageGrid_ImageGrid = ImageGrid_decorate([
    index_module["e" /* observer */]
], ImageGrid_ImageGrid);
/* harmony default export */ var Search_ImageGrid = (ImageGrid_ImageGrid);

// CONCATENATED MODULE: ./src/components/Search/StockUtil.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/





/**
 * Stock related utils
 */
const STOCK_NAMESPACE = 'adobestock';
const STOCK_DATA_KEY = 'trackingdata';
const STOCK_STATE_PURCHASED = 'purchased';
const STOCK_URL_SEARCH = 'https://stock.adobe.com/Search';
const STOCK_URL_SEARCH_STAGE = 'https://primary.stock.stage.adobe.com/Search';
/**
 * Get Stock data from representation.
 *
 * @param [Object] representation	representation of cc library element
 * @return [Object] Stock data
 */
function getStockData(representation) {
    var _a;
    return representation && ((_a = representation.getValue) === null || _a === void 0 ? void 0 : _a.call(representation, STOCK_NAMESPACE, STOCK_DATA_KEY));
}
/**
 * Get Stock data from cc library element.
 *
 * @param [Object] element 	cc library element
 * @param [Number] index 	index of representation in cc library element
 * @return [Object] Stock data
 */
function getStockDataForElement(element, index) {
    var _a, _b;
    // First try the primary representation
    const representation = index === undefined ? (_a = element === null || element === void 0 ? void 0 : element.getPrimaryRepresentation) === null || _a === void 0 ? void 0 : _a.call(element) : (_b = element === null || element === void 0 ? void 0 : element.representations) === null || _b === void 0 ? void 0 : _b[index];
    const stockData = getStockData(representation);
    if (stockData && representation.isExternalLink && representation.getCachedExternalLinkError()) {
        // It's an external link, but the external link isn't valid: Try the next representation
        return getStockDataForElement(element, index === undefined ? 0 : index + 1);
    }
    return stockData;
}
/**
 * Get Stock Id from cc library element.
 *
 * @param [Object] element 	cc library element
 * @return [String] Stock Id
 */
function getElementStockId(element) {
    const stockData = getStockDataForElement(element);
    if (stockData) {
        return Number(stockData.content_id);
    }
    return null;
}
/**
 * Get Stock license status from cc library element.
 *
 * @param [Object] element 	cc library element
 * @return [String] Stock license status
 */
function getElementStockLicense(element) {
    const stockData = getStockDataForElement(element);
    if (stockData) {
        if (stockData.state === STOCK_STATE_PURCHASED) {
            return new String(stockData.license);
        }
    }
    return null;
}
/**
 * Create the URL to open/use for the selected Adobe Stock search query.
 * https://wiki.corp.adobe.com/display/adobestock/Jump+to+Adobe+Stock+Search+Pages
 *
 * @param [String] term     search term, if any
 */
function openStockSearchLink(term = '', filters = '') {
    const baseURL = MainStore["mainStore"].user.isStaging ? STOCK_URL_SEARCH_STAGE : STOCK_URL_SEARCH;
    term = term ? 'k=' + jsUtil["a" /* default */].fixedEncodeURIComponent(term) + '&' : '';
    term += filters ? filters + '&' : '';
    term += iaw_analytics["a" /* default */].getAnalyticsQueryString() + '&'; // includes language and other host data
    const uri = baseURL + '?' + term;
    platform["a" /* default */].openDefaultBrowser(uri, imsBridge["a" /* JumpKey */].ADOBESTOCK);
    return uri;
}
/**
 * Create the URL to open/use for the selected Adobe Stock template.
 * https://wiki.corp.adobe.com/display/adobestock/Jump+to+Adobe+Stock+Search+Pages
 *
 * @param [String] hostID	phxs, ilst, etc.
 * @param [String] type     template type
 * @param [String] term     search term, if any
 * @return [String] containing the URL that was opened
 */
// function openStockDetailLink(term = '') {
// 	const baseURL = ims.stage ? STOCK_URL_SEARCH_STAGE : STOCK_URL_SEARCH;
//
// 	platform.openDefaultBrowserAuthenicated('ADOBESTOCK', uri);
// 	return uri;
// }
// https://stock.adobe.com/stock-photo/red-tree-over-park-bench/76838967?prev_url=detail
/**
 * Public exports
 */
/* harmony default export */ var StockUtil = ({
    /**
     * Get Stock Id from cc library element.
     *
     * @param [Object] element 	cc library element
     * @return [String] Stock Id
     */
    getElementStockId: getElementStockId,
    /**
     * Get Stock license status from cc library element.
     *
     * @param [Object] element 	cc library element
     * @return [String] Stock license status
     */
    getElementStockLicense: getElementStockLicense,
    /**
     * Create the URL to open/use for the selected Adobe Stock search query.
     * https://wiki.corp.adobe.com/display/adobestock/Jump+to+Adobe+Stock+Search+Pages
     *
     * @param [String] term     search term, if any
     * @return [String] containing the URL that was opened
     */
    openStockSearchLink: openStockSearchLink,
});

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/Clock/index.js
var Clock = __webpack_require__("wWOq");
var Clock_default = /*#__PURE__*/__webpack_require__.n(Clock);

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/Efficient/index.js
var Efficient = __webpack_require__("IzEs");
var Efficient_default = /*#__PURE__*/__webpack_require__.n(Efficient);

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/History/index.js
var History = __webpack_require__("VTDZ");
var History_default = /*#__PURE__*/__webpack_require__.n(History);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Breadcrumbs/index.js
var Breadcrumbs = __webpack_require__("Smah");
var Breadcrumbs_default = /*#__PURE__*/__webpack_require__.n(Breadcrumbs);

// EXTERNAL MODULE: ./src/components/Search/Federer.tsx + 1 modules
var Federer = __webpack_require__("xw8E");

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/ScrollManager/index.js
var ScrollManager = __webpack_require__("8VRs");
var ScrollManager_default = /*#__PURE__*/__webpack_require__.n(ScrollManager);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Autocomplete/index.js
var Autocomplete = __webpack_require__("2au5");
var Autocomplete_default = /*#__PURE__*/__webpack_require__.n(Autocomplete);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-firstmile-shared/src/components/Badge.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/

const Badge_styles = __webpack_require__("ayep");
class Badge_Badge extends react_default.a.Component {
    render() {
        const { badgeColor, header, subtext } = this.props;
        return header ? ( // if no header display nothing but avoid breakage by returning null
        react_default.a.createElement("div", { "data-qe-id": "badge-container", className: Badge_styles.container },
            react_default.a.createElement("div", { className: Badge_styles.badge, style: { backgroundColor: badgeColor } },
                react_default.a.createElement("div", { "data-qe-id": "badge-header", className: Badge_styles.header }, header),
                react_default.a.createElement("div", { "data-qe-id": "badge-text", className: Badge_styles.subtext }, subtext)))) : null;
    }
}

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-firstmile-shared/src/common/utils/debounce.ts
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2020 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
/**
 * The following license applies to the debounce function below (from Lodash):
 *
 * Copyright JS Foundation and other contributors <https://js.foundation/>
 *
 * Based on Underscore.js, copyright Jeremy Ashkenas,
 * DocumentCloud and Investigative Reporters & Editors <http://underscorejs.org/>
 *
 * This software consists of voluntary contributions made by many
 * individuals. For exact contribution history, see the revision history
 * available at <https://github.com/lodash/lodash>.
 *
 * Permission is hereby granted, free of charge, to any person obtaining
 * a copy of this software and associated documentation files (the
 * "Software"), to deal in the Software without restriction, including
 * without limitation the rights to use, copy, modify, merge, publish,
 * distribute, sublicense, and/or sell copies of the Software, and to
 * permit persons to whom the Software is furnished to do so, subject to
 * the following conditions:
 *
 * The above copyright notice and this permission notice shall be
 * included in all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
 * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
 * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 */
/**
 * Creates a debounced function that delays invoking `func` until after `wait`
 * milliseconds have elapsed since the last time the debounced function was
 * invoked. The debounced function comes with a `cancel` method to cancel
 * delayed `func` invocations and a `flush` method to immediately invoke them.
 * Provide `options` to indicate whether `func` should be invoked on the
 * leading and/or trailing edge of the `wait` timeout. The `func` is invoked
 * with the last arguments provided to the debounced function. Subsequent
 * calls to the debounced function return the result of the last `func`
 * invocation.
 *
 * **Note:** If `leading` and `trailing` options are `true`, `func` is
 * invoked on the trailing edge of the timeout only if the debounced function
 * is invoked more than once during the `wait` timeout.
 *
 * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred
 * until the next tick, similar to `setTimeout` with a timeout of `0`.
 *
 * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)
 * for details over the differences between `debounce` and `throttle`.
 *
 * @since 0.1.0
 * @category Function
 * @param {Function} func The function to debounce.
 * @param {number} [wait=0] The number of milliseconds to delay.
 * @param {Object} [options={}] The options object.
 * @param {boolean} [options.leading=false]
 *  Specify invoking on the leading edge of the timeout.
 * @param {number} [options.maxWait]
 *  The maximum time `func` is allowed to be delayed before it's invoked.
 * @param {boolean} [options.trailing=true]
 *  Specify invoking on the trailing edge of the timeout.
 * @returns {Function} Returns the new debounced function.
 * @example
 *
 * // Avoid costly calculations while the window size is in flux.
 * jQuery(window).on('resize', debounce(calculateLayout, 150))
 *
 * // Invoke `sendMail` when clicked, debouncing subsequent calls.
 * jQuery(element).on('click', debounce(sendMail, 300, {
 *   'leading': true,
 *   'trailing': false
 * }))
 *
 * // Ensure `batchLog` is invoked once after 1 second of debounced calls.
 * const debounced = debounce(batchLog, 250, { 'maxWait': 1000 })
 * const source = new EventSource('/stream')
 * jQuery(source).on('message', debounced)
 *
 * // Cancel the trailing debounced invocation.
 * jQuery(window).on('popstate', debounced.cancel)
 */

function debounce_debounce(func, wait = components_constants.DEBOUNCE.WAIT, options = components_constants.DEBOUNCE.OPTIONS) {
    let lastArgs, lastThis, maxWait, result, timerId, lastCallTime, lastInvokeTime = 0;
    let leading = false;
    let maxing = false;
    let trailing = true;
    if (typeof func !== 'function') {
        throw new TypeError('Expected a function');
    }
    wait = +wait || 0;
    if (typeof options === 'object') {
        leading = !!options.leading;
        maxing = 'maxWait' in options;
        maxWait = maxing ? Math.max(+options.maxWait || 0, wait) : maxWait;
        trailing = 'trailing' in options ? !!options.trailing : trailing;
    }
    function invokeFunc(time) {
        const args = lastArgs;
        const thisArg = lastThis;
        lastArgs = lastThis = undefined;
        lastInvokeTime = time;
        result = func.apply(thisArg, args);
        return result;
    }
    function leadingEdge(time) {
        // Reset any `maxWait` timer.
        lastInvokeTime = time;
        // Start the timer for the trailing edge.
        timerId = setTimeout(timerExpired, wait);
        // Invoke the leading edge.
        return leading ? invokeFunc(time) : result;
    }
    function remainingWait(time) {
        const timeSinceLastCall = time - lastCallTime;
        const timeSinceLastInvoke = time - lastInvokeTime;
        const result = wait - timeSinceLastCall;
        return maxing ? Math.min(result, maxWait - timeSinceLastInvoke) : result;
    }
    function shouldInvoke(time) {
        const timeSinceLastCall = time - lastCallTime;
        const timeSinceLastInvoke = time - lastInvokeTime;
        // Either this is the first call, activity has stopped and we're at the
        // trailing edge, the system time has gone backwards and we're treating
        // it as the trailing edge, or we've hit the `maxWait` limit.
        return (lastCallTime === undefined ||
            timeSinceLastCall >= wait ||
            timeSinceLastCall < 0 ||
            (maxing && timeSinceLastInvoke >= maxWait));
    }
    function timerExpired() {
        const time = Date.now();
        if (shouldInvoke(time)) {
            return trailingEdge(time);
        }
        // Restart the timer.
        timerId = setTimeout(timerExpired, remainingWait(time));
    }
    function trailingEdge(time) {
        timerId = undefined;
        // Only invoke if we have `lastArgs` which means `func` has been
        // debounced at least once.
        if (trailing && lastArgs) {
            return invokeFunc(time);
        }
        lastArgs = lastThis = undefined;
        return result;
    }
    function cancel() {
        if (timerId !== undefined) {
            clearTimeout(timerId);
        }
        lastInvokeTime = 0;
        lastArgs = lastCallTime = lastThis = timerId = undefined;
    }
    function flush() {
        return timerId === undefined ? result : trailingEdge(Date.now());
    }
    let debounced = function (...args) {
        const time = Date.now();
        const isInvoking = shouldInvoke(time);
        lastArgs = args;
        lastThis = this;
        lastCallTime = time;
        if (isInvoking) {
            if (timerId === undefined) {
                return leadingEdge(lastCallTime);
            }
            if (maxing) {
                // Handle invocations in a tight loop.
                timerId = setTimeout(timerExpired, wait);
                return invokeFunc(lastCallTime);
            }
        }
        if (timerId === undefined) {
            timerId = setTimeout(timerExpired, wait);
        }
        return result;
    };
    debounced.cancel = cancel;
    debounced.flush = flush;
    return debounced;
}

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-firstmile-shared/src/components/Tutorials.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var Tutorials_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;
};
var Tutorials_metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};















const Tutorials_styles = __webpack_require__("8XmL");
const Tutorials_sharedStyles = __webpack_require__("jHoJ");
const Tutorials_sharedCSSClasses = __webpack_require__("kMNh");
const MAX_TUTORIALS_TOTAL = 20, MAX_TUTORIALS_PER_ROW = 4, TUTORIALS_PER_ROW_SMALL_WINDOW_SIZE = 3;
const getDurationStringFromSeconds = (seconds = 0) => `${seconds < 60 ? 1 : Math.round(seconds / 60)}`;
const objectGet = (obj, key, fallback = undefined) => {
    return key.split('.').reduce((level, key) => (level ? level[key] : undefined), obj) || fallback;
};
var UXPDeeplinkCommandSource;
(function (UXPDeeplinkCommandSource) {
    UXPDeeplinkCommandSource["inBrowser"] = "helpx-welcome";
    UXPDeeplinkCommandSource["inApp"] = "in-app-welcome";
    UXPDeeplinkCommandSource["discoverView"] = "homeScreenOpenDiscover";
    UXPDeeplinkCommandSource["playlistBrowse"] = "helpx-playlist-browse";
    UXPDeeplinkCommandSource["browseTutorial"] = "helpx-tutorial-browse";
})(UXPDeeplinkCommandSource || (UXPDeeplinkCommandSource = {}));
let Tutorials_InAppTutorials = class InAppTutorials extends react_default.a.Component {
    constructor() {
        super(...arguments);
        this.shouldShowAllTutorials = false;
    }
    render() {
        const { headerText, descriptionText } = this.props;
        const { logEvent, containerAnalytics } = this.props;
        const tutorials = this.context.ututs.appTutorials && this.context.ututs.appTutorials();
        const isUnifiedPanelEnabled = this.context.host.isUnifiedPanelEnabled || this.context.host.tutorialsDeepLinkingEnabled;
        if (!tutorials || !tutorials.length) {
            return null;
        }
        return (react_default.a.createElement("div", { "data-qe-id": "components-in-app-tutorials", id: "components-in-app-tutorials", ref: element => (this.refRootElement = element), className: Tutorials_styles.root },
            react_default.a.createElement("span", { "data-qe-id": "in-app-tutorials-header", className: Tutorials_sharedCSSClasses.sharedHeader }, this.context.intl.formatMessage({
                id: headerText,
            })),
            react_default.a.createElement("div", { className: Tutorials_styles.headerRow },
                react_default.a.createElement("span", { "data-qe-id": "in-app-tutorials-description", className: Tutorials_styles.sectionSubheader }, this.context.intl.formatMessage({
                    id: descriptionText,
                })),
                tutorials.length > MAX_TUTORIALS_PER_ROW && (react_default.a.createElement(AccessibleButton_AccessibleButton, { "data-qe-id": "in-app-tutorials-toggle", className: `${Tutorials_styles.expandListToggle} ${Tutorials_sharedStyles.flexCenterCenter}`, onClick: () => {
                        logEvent('show-all', {
                            ...containerAnalytics.eventData,
                        }, 'click');
                        this.shouldShowAllTutorials = !this.shouldShowAllTutorials;
                    } },
                    react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: isUnifiedPanelEnabled ? 'up_show_all_tuts' : 'show_all_tuts' }),
                    this.shouldShowAllTutorials ? (react_default.a.createElement(ChevronDown_default.a, { "data-qe-id": "in-app-tutorials-toggle-down" })) : (react_default.a.createElement(ChevronRight_default.a, { "data-qe-id": "in-app-tutorials-toggle-right" }))))),
            react_default.a.createElement(Tutorials_InAppTutorialCards, { tutorials: tutorials, logEvent: logEvent, containerAnalytics: containerAnalytics, shouldShowAllTutorials: this.shouldShowAllTutorials })));
    }
};
Tutorials_InAppTutorials.contextTypes = common_CommonStaticContext;
Tutorials_decorate([
    mobx_module["z" /* observable */],
    Tutorials_metadata("design:type", Object)
], Tutorials_InAppTutorials.prototype, "shouldShowAllTutorials", void 0);
Tutorials_InAppTutorials = Tutorials_decorate([
    index_module["e" /* observer */]
], Tutorials_InAppTutorials);

let Tutorials_WebTutorials = class WebTutorials extends react_default.a.Component {
    render() {
        const { headerText, descriptionText } = this.props;
        const { logEvent, containerAnalytics } = this.props;
        // don't show component if there are no tutorials
        const tutorials = this.context.ututs.webTutorials && this.context.ututs.webTutorials();
        if (!tutorials || !tutorials.length) {
            return null;
        }
        return (react_default.a.createElement("div", { "data-qe-id": "components-web-tutorials", id: "components-web-tutorials", className: Tutorials_styles.root },
            react_default.a.createElement("span", { className: Tutorials_sharedCSSClasses.sharedHeader }, this.context.intl.formatMessage({
                id: headerText,
            })),
            react_default.a.createElement("div", { className: Tutorials_styles.sectionSubheader }, this.context.intl.formatMessage({
                id: descriptionText,
            })),
            react_default.a.createElement(WebTutorialTable, { tutorials: tutorials, logEvent: logEvent, containerAnalytics: containerAnalytics })));
    }
};
Tutorials_WebTutorials.contextTypes = common_CommonStaticContext;
Tutorials_WebTutorials = Tutorials_decorate([
    index_module["e" /* observer */]
], Tutorials_WebTutorials);

class Tutorials_InAppTutorialCards extends react_default.a.Component {
    constructor(props, context) {
        super(props, context);
        this.tutorialsDeepLinkingEnabled = this.context.host.tutorialsDeepLinkingEnabled;
        this._renderEventGUIDs = [];
        this._tutorialsContainerRef = react_default.a.createRef();
        // If the tutorials container's width is smaller than this breakpoint, we render 3 tutorials per row (instead of 4),
        // due to CSS styling. Used for determining the number of tutorials being displayed, for logging purposes.
        this.THREE_TUTORIALS_BREAKPOINT = 870;
        this._renderEventParams = tutorial => {
            var _a, _b, _c, _d;
            const { containerAnalytics } = this.props;
            const { analytics } = this.context.utils;
            return [
                analytics.ingestUtil.KEYS.CONTENT_TYPE_TUTORIAL,
                {
                    ...containerAnalytics.eventData,
                    tutorialID: tutorial.tutorialUUID || tutorial.aem_id,
                    tutorialName: ((_b = (_a = tutorial.metadata) === null || _a === void 0 ? void 0 : _a.descriptions) === null || _b === void 0 ? void 0 : _b.short) || null,
                    tutorialAction: ((_d = (_c = tutorial.metadata) === null || _c === void 0 ? void 0 : _c.urls) === null || _d === void 0 ? void 0 : _d.helpx) || null,
                    tutorialSource: objectGet(tutorial, 'metadata.source.label'),
                    subtype: analytics.ingestUtil.KEYS.SUBTYPE_INAPPTUT,
                },
            ];
        };
        this.numTutorialsChangedAfterResize = (currTutorialsContainerWidth, prevTutorialsContainerWidth) => {
            if (!prevTutorialsContainerWidth && currTutorialsContainerWidth) {
                return true;
            }
            return ((prevTutorialsContainerWidth < this.THREE_TUTORIALS_BREAKPOINT &&
                currTutorialsContainerWidth >= this.THREE_TUTORIALS_BREAKPOINT) ||
                (prevTutorialsContainerWidth >= this.THREE_TUTORIALS_BREAKPOINT &&
                    currTutorialsContainerWidth < this.THREE_TUTORIALS_BREAKPOINT));
        };
        this.onWindowResize = () => {
            if (!this._tutorialsContainerRef.current) {
                return;
            }
            const prevTutorialsContainerWidth = this.state.tutorialsContainerWidth;
            const { width } = this._tutorialsContainerRef.current.getBoundingClientRect();
            this.setState({ tutorialsContainerWidth: width });
            if (this.numTutorialsChangedAfterResize(width, prevTutorialsContainerWidth)) {
                this.logRenderedTutorials();
            }
        };
        this.state = {
            tutorialsContainerWidth: 0,
        };
        this.resizeHandlerRef = debounce_debounce(this.onWindowResize, 60);
    }
    async openInAppTutorial(tutorial) {
        const { logEvent, containerAnalytics } = this.props;
        const { analytics } = this.context.utils;
        if (containerAnalytics && logEvent) {
            logEvent(containerAnalytics.component, {
                ...containerAnalytics.eventData,
                subtype: analytics.ingestUtil.KEYS.SUBTYPE_INAPPTUT,
                tutorialID: tutorial.tutorialUUID || tutorial.aem_id,
                tutorialName: tutorial.metadata && tutorial.metadata.descriptions
                    ? tutorial.metadata.descriptions.short
                    : null,
                tutorialLevel: tutorial.metadata ? tutorial.metadata.level : null,
                tutorialAction: tutorial.metadata ? tutorial.metadata.urls.helpx : null,
                tutorialSource: objectGet(tutorial, 'metadata.source.label'),
            }, 'click');
        }
        if (this.context.host.tutorialsDeepLinkingEnabled) {
            this.context.host.launchDiscoverPanelWithDeeplink(tutorial, UXPDeeplinkCommandSource.inApp, containerAnalytics);
        }
        else
            this.context.host.launchTutorial(tutorial.aem_id, containerAnalytics);
    }
    get numTutorialsToShow() {
        const { shouldShowAllTutorials, tutorials } = this.props;
        if (!tutorials) {
            return 0;
        }
        if (shouldShowAllTutorials) {
            return Math.min(tutorials.length, MAX_TUTORIALS_TOTAL);
        }
        else {
            // When the host's window width is small, the CSS limits the number of tutorials on a row to 3.
            // This is a hacky way of determining whether the user is shown 3 tutorials instead of 4,
            // for logging purposes.
            let tutorialsPerRow = MAX_TUTORIALS_PER_ROW;
            if (this.state.tutorialsContainerWidth) {
                tutorialsPerRow =
                    this.state.tutorialsContainerWidth >= this.THREE_TUTORIALS_BREAKPOINT
                        ? MAX_TUTORIALS_PER_ROW
                        : TUTORIALS_PER_ROW_SMALL_WINDOW_SIZE;
            }
            return Math.min(tutorials.length, tutorialsPerRow);
        }
    }
    logRenderedTutorials() {
        const { tutorials, containerAnalytics, logEvent } = this.props;
        const { analytics } = this.context.utils;
        const numTutorialsToShow = this.numTutorialsToShow;
        if (!containerAnalytics || !logEvent || numTutorialsToShow === this._numTutorialsPrevLog) {
            return;
        }
        const tutorialsToLog = tutorials === null || tutorials === void 0 ? void 0 : tutorials.slice(0, numTutorialsToShow);
        if (this._numTutorialsPrevLog === TUTORIALS_PER_ROW_SMALL_WINDOW_SIZE &&
            numTutorialsToShow === MAX_TUTORIALS_PER_ROW) {
            // The window was resized to a bigger size and the user is now shown a new tutorial => log only that tutorial
            tutorialsToLog === null || tutorialsToLog === void 0 ? void 0 : tutorialsToLog.splice(0, (tutorialsToLog === null || tutorialsToLog === void 0 ? void 0 : tutorialsToLog.length) - 1);
        }
        tutorialsToLog === null || tutorialsToLog === void 0 ? void 0 : tutorialsToLog.forEach(tutorial => {
            logEvent(...this._renderEventParams(tutorial), 'render');
            const renderEventGUID = analytics.subscribeLogRenderedEvent(() => this._renderEventParams(tutorial));
            this._renderEventGUIDs.push(renderEventGUID);
        });
        this._numTutorialsPrevLog = this.numTutorialsToShow;
    }
    componentDidMount() {
        window.addEventListener('resize', this.resizeHandlerRef);
    }
    componentDidUpdate(prevProps) {
        if (this.props.shouldShowAllTutorials !== prevProps.shouldShowAllTutorials) {
            this.logRenderedTutorials();
        }
    }
    componentWillUnmount() {
        window.removeEventListener('resize', this.resizeHandlerRef);
        this._renderEventGUIDs.forEach(renderEventGUID => this.context.utils.analytics.unsubscribeLogRenderedEvent(renderEventGUID));
    }
    renderTutorials() {
        var _a;
        const { replaceAppData, getAppName } = this.context.utils;
        const ututs = this.context.ututs;
        const { expandGridView, tutorials, shouldShowAllTutorials } = this.props;
        return (react_default.a.createElement("div", { "data-qe-id": "in-app-tut-cards-container", className: classnames_default()(Tutorials_styles.tutorialCardsRow, {
                [Tutorials_styles.expandGridView]: expandGridView,
                [Tutorials_styles.showAllCollapsed]: !shouldShowAllTutorials,
            }), ref: this._tutorialsContainerRef }, (_a = tutorials === null || tutorials === void 0 ? void 0 : tutorials.slice(0, this.numTutorialsToShow)) === null || _a === void 0 ? void 0 : _a.map((tutorial, i) => {
            const { metadata } = tutorial;
            return (react_default.a.createElement(OverlayTrigger_default.a, { trigger: "hover", placement: "right", delayShow: this.context.utils.constants.TOOLTIP_DELAY, key: i },
                react_default.a.createElement(AccessibleButton_AccessibleButton, { key: i, onClick: () => this.openInAppTutorial(tutorial), className: Tutorials_styles.tutorialCard, "data-qe-id": "in-app-tut-card" },
                    react_default.a.createElement("img", { "data-qe-id": "in-app-tut-img", src: ututs.getFullAssetPath(metadata.images) }),
                    react_default.a.createElement("div", { className: Tutorials_styles.cardInfo },
                        react_default.a.createElement(Heading_default.a, { "data-qe-id": "in-app-tut-card-header", className: Tutorials_styles.tutorialTitle, size: 3 }, replaceAppData(metadata.title)),
                        react_default.a.createElement("div", { "data-qe-id": "in-app-tut-card-action", className: Tutorials_styles.cardMiniInfo },
                            react_default.a.createElement("span", { className: Tutorials_styles.openTutorialDescription },
                                react_default.a.createElement("span", { "data-qe-id": "in-app-tut-card-action-text", className: Tutorials_styles.openInAppString }, this.context.intl.formatMessage({
                                    id: 'link_opens_in_app',
                                }, {
                                    appName: getAppName(),
                                }))),
                            react_default.a.createElement("span", null, "\u00B7"),
                            react_default.a.createElement("span", { "data-qe-id": "in-app-tut-card-duration", className: Tutorials_styles.tutorialDuration },
                                getDurationStringFromSeconds(metadata.duration_in_seconds),
                                react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "common_minutes_abbreviation_for_tutorials" }))))),
                react_default.a.createElement(Tooltip_default.a, { "data-qe-id": "in-app-tut-card-tooltip", className: Tutorials_styles.tutorialTooltip }, metadata.title)));
        })));
    }
    render() {
        const { expandGridView } = this.props;
        if (expandGridView) {
            // needs root wrapper variables
            return react_default.a.createElement("div", { className: Tutorials_styles.root }, this.renderTutorials());
        }
        else {
            return this.renderTutorials();
        }
    }
}
Tutorials_InAppTutorialCards.contextTypes = common_CommonStaticContext;
let Tutorials_WebTutorialTable = class _WebTutorialTable extends react_default.a.Component {
    constructor() {
        super(...arguments);
        this.tutorialsDeepLinkingEnabled = this.context.host.tutorialsDeepLinkingEnabled;
        this._renderEventGUIDs = [];
        this._renderEventParams = tutorial => {
            var _a, _b;
            const { containerAnalytics } = this.props;
            const { analytics } = this.context.utils;
            const tutorialAction = this.getUrl(tutorial);
            return [
                analytics.ingestUtil.KEYS.CONTENT_TYPE_TUTORIAL,
                {
                    ...containerAnalytics.eventData,
                    tutorialID: tutorial.tutorialUUID || tutorial.aem_id,
                    tutorialName: ((_b = (_a = tutorial.metadata) === null || _a === void 0 ? void 0 : _a.descriptions) === null || _b === void 0 ? void 0 : _b.short) || null,
                    tutorialAction,
                    tutorialSource: objectGet(tutorial, 'metadata.source.label'),
                    subtype: analytics.ingestUtil.KEYS.SUBTYPE_WEBTUT,
                    customFields: this.getCustomAnalyticFields(tutorial, 'render'),
                },
            ];
        };
    }
    isThirdParty(tutorial) {
        return objectGet(tutorial, 'metadata.source.third_party', false);
    }
    /*
        in order we use the following links for tutorial url
        1. metadata.urls.source_url
        2. metadata.urls.third_party (only for third party)
        3. metadata.urls.helpx
    */
    getUrl(tutorial) {
        const urls = objectGet(tutorial, 'metadata.urls', null);
        if (urls) {
            if (urls.source_url) {
                return urls.source_url;
            }
            else if (this.isThirdParty(tutorial)) {
                return urls.third_party;
            }
            else {
                return urls.helpx;
            }
        }
        return null;
    }
    /*
        Web tutorials may contain custom analytics fields that
        need to be sent on the render/click event payloads.
        The fields will be expected under the 'analytics' field in
        the tutorial data with the fields with the following format:

        "analytics": {
            "click": [
                {
                    "key": "custom.edex_content_type",
                    "const_value": "work_shop"
                },
                {
                    "key": "custom.edex_content_level",
                    "const_value": "student"
                }
            ],
            "render": [
                {
                    "key": "custom.edex_content_authors",
                    "path_value": "$.metadata.edex.authors"
                }
            ]
        },

        'const_value' means send that exact value
        'path_value' means to look up based on that json spec path.
     */
    getCustomAnalyticFields(tutorial, type) {
        // wrapping with try/catch just in case we have old
        // tutorial formats or missing fields or bad custom fields.
        // This way analytics will still fire, just not the custom fields
        try {
            if (!tutorial || !tutorial.analytics || !type) {
                return {};
            }
            const analyticsToLog = {};
            if (tutorial.analytics && tutorial.analytics[type]) {
                tutorial.analytics[type].forEach(item => {
                    if (item.key && (item.const_value || item.path_value)) {
                        const key = item.key;
                        const value = item.const_value
                            ? item.const_value
                            : objectGet(tutorial, item.path_value.slice(2), null);
                        analyticsToLog[key] = value;
                    }
                });
            }
            return analyticsToLog;
        }
        catch (e) {
            return {};
        }
    }
    async openTutorialInBrowser(tutorial) {
        const { logEvent, containerAnalytics } = this.props;
        const isThirdParty = objectGet(tutorial, 'metadata.source.third_party', false);
        const url = this.getUrl(tutorial);
        const { analytics } = this.context.utils;
        if (logEvent && containerAnalytics) {
            const payload = {
                ...containerAnalytics.eventData,
                subtype: analytics.ingestUtil.KEYS.SUBTYPE_WEBTUT,
                tutorialID: tutorial.tutorialUUID || tutorial.aem_id,
                tutorialName: tutorial.metadata ? tutorial.metadata.descriptions.short : null,
                tutorialLevel: tutorial.metadata ? tutorial.metadata.level : null,
                tutorialAction: url,
                tutorialSource: objectGet(tutorial, 'metadata.source.label'),
                customFields: this.getCustomAnalyticFields(tutorial, 'click'),
            };
            logEvent(containerAnalytics.component, payload, 'click');
        }
        if (tutorial.metadata) {
            /**
             * Check for Deeplinking feature support for this tutorial
             * otherwise open in the browser
             */
            if ((!isThirdParty && // Skip third party tutorials
                tutorial &&
                tutorial.aem_id && // Make sure we have AEM ID + helpx
                tutorial.metadata.urls.helpx &&
                this.context.host.getUnifiedPanelFeatureFlags &&
                (await this.context.host.getUnifiedPanelFeatureFlags()).isDeepLinkingEnabled &&
                this.context.utils.CallToActionHandler.createHelpxDeepLinkCTAWithFallbackURL) ||
                this.tutorialsDeepLinkingEnabled) {
                const extraData = {
                    aemID: tutorial.aem_id,
                    title: tutorial.metadata.title,
                    locale: tutorial.metadata.locale,
                    metadata: tutorial.metadata,
                };
                const cta = this.context.utils.CallToActionHandler.createHelpxDeepLinkCTAWithFallbackURL(url, tutorial.aem_id, extraData);
                this.context.utils.CallToActionHandler.handleCallToAction(cta, containerAnalytics);
                return;
            }
            this.context.platform.openDefaultBrowser(url, isThirdParty ? null : 'ADOBELEARN');
        }
    }
    componentDidMount() {
        const { tutorials, containerAnalytics, logEvent } = this.props;
        const { analytics } = this.context.utils;
        if (containerAnalytics && logEvent) {
            tutorials.forEach(tutorial => {
                logEvent(...this._renderEventParams(tutorial), 'render');
                const renderEventGUID = analytics.subscribeLogRenderedEvent(() => this._renderEventParams(tutorial));
                this._renderEventGUIDs.push(renderEventGUID);
            });
        }
    }
    componentWillUnmount() {
        this._renderEventGUIDs.forEach(renderEventGUID => this.context.utils.analytics.unsubscribeLogRenderedEvent(renderEventGUID));
    }
    /*
        Badges for tutorials are shown for third party tutorials OR for tutorials that have a badge text field
        specified in the 'render_info', ie, ed ex tutorials.
    */
    generateBadge(tutorial) {
        if (this.isThirdParty(tutorial) || objectGet(tutorial, 'metadata.source.render_info.badge.text', null)) {
            const defaultBadgeText = this.props.intl.formatMessage({ id: 'trusted_partner_badge' });
            return (react_default.a.createElement(Badge_Badge, { header: objectGet(tutorial, 'metadata.source.render_info.badge.text', defaultBadgeText), badgeColor: objectGet(tutorial, 'metadata.source.render_info.badge.color', null) }));
        }
        return null;
    }
    generateDescription(metadata) {
        const isUnifiedPanelEnabled = this.context.host.isUnifiedPanelEnabled || this.context.host.tutorialsDeepLinkingEnabled;
        const defaultLinkText = this.props.intl.formatMessage({
            id: isUnifiedPanelEnabled ? 'up_link_opens_in_browser' : 'link_opens_in_browser',
        });
        const actionDescriptor = objectGet(metadata, 'source.render_info.action_descriptor', null);
        if (metadata && actionDescriptor && actionDescriptor.type === 'url') {
            return (react_default.a.createElement("span", { className: Tutorials_styles.openTutorialDescription, style: { color: actionDescriptor.color } }, actionDescriptor.text || metadata.source.label || defaultLinkText));
        }
        return react_default.a.createElement("span", { className: Tutorials_styles.openTutorialDescription }, defaultLinkText);
    }
    render() {
        const { tutorials, intl } = this.props;
        const { replaceAppData, constants } = this.context.utils;
        const { ututs } = this.context;
        return (react_default.a.createElement("div", { "data-qe-id": "web-tut-cards-container", className: Tutorials_styles.tutorialTable }, tutorials.map((tutorial, i) => {
            const { metadata } = tutorial;
            return (react_default.a.createElement(OverlayTrigger_default.a, { trigger: "hover", placement: "right", delayShow: constants.TOOLTIP_DELAY, key: i },
                react_default.a.createElement(AccessibleButton_AccessibleButton, { key: i, onClick: () => {
                        this.openTutorialInBrowser(tutorial);
                    }, className: Tutorials_styles.tutorialItem, "data-qe-id": "web-tut-card" },
                    react_default.a.createElement("div", { "data-qe-id": "web-tut-card-img", className: Tutorials_styles.tutorialCardCover, style: {
                            backgroundImage: `url('${ututs.getFullAssetPath(metadata.images)}')`,
                        }, tabIndex: -1 }, metadata.source && this.generateBadge(tutorial)),
                    react_default.a.createElement("div", { className: Tutorials_styles.cardInfo },
                        react_default.a.createElement(Heading_default.a, { "data-qe-id": "web-tut-card-header", className: Tutorials_styles.tutorialTitle, size: 3 },
                            react_default.a.createElement(EllipsisText_EllipsisText, null, replaceAppData(metadata.title))),
                        react_default.a.createElement("div", { "data-qe-id": "web-tut-card-description", className: Tutorials_styles.tutorialDescription }, replaceAppData(metadata.descriptions.long)),
                        react_default.a.createElement("div", { "data-qe-id": "web-tut-card-action", className: Tutorials_styles.cardMiniInfo },
                            metadata.source && this.generateDescription(metadata),
                            react_default.a.createElement("span", null, "\u00B7"),
                            react_default.a.createElement("span", { "data-qe-id": "web-tut-card-duration", className: Tutorials_styles.tutorialDuration },
                                getDurationStringFromSeconds(metadata.duration_in_seconds),
                                react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "common_minutes_abbreviation_for_tutorials" }))))),
                react_default.a.createElement(Tooltip_default.a, { "data-qe-id": "web-tut-card-tooltip", className: Tutorials_styles.tutorialTooltip }, metadata.title)));
        })));
    }
};
Tutorials_WebTutorialTable.contextTypes = common_CommonStaticContext;
Tutorials_WebTutorialTable = Tutorials_decorate([
    index_module["e" /* observer */]
], Tutorials_WebTutorialTable);
const WebTutorialTable = Object(index_es["g" /* injectIntl */])(Tutorials_WebTutorialTable);

// EXTERNAL MODULE: ./src/components/CCPhotos/LrApp.ts
var LrApp = __webpack_require__("Pstv");

// EXTERNAL MODULE: ./src/components/Search/NetUtil.tsx
var NetUtil = __webpack_require__("1lnv");

// CONCATENATED MODULE: ./src/components/Search/LrSDKHelper.ts
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var LrSDKHelper_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;
};
var LrSDKHelper_metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
/**
 * Helper functions for using the Lightroom SDK. Includes functions for
 * downloading and initializing the LrSDK, downloading Lightroom content
 * using Vulcan CCPhotoDownload requests, and opening a lightroom asset in Photoshop.
 *
 * Documentation for the Lightroom SDK is here: https://git.corp.adobe.com/pages/ponysaurus/public/usage/index.html
 */








function get(obj, key, defaultValue) {
    const result = obj &&
        key &&
        key
            .replace(/\[/g, '.')
            .replace(/\]/g, '')
            .split('.')
            .reduce((o, k) => (o || {})[k], obj);
    if (result === undefined) {
        return defaultValue;
    }
    else {
        return result;
    }
}
/*
 * FIXME: Since ACR doesn't load the `.xmp` sidecar for these formats, there's currently not a way to load externalized masks via the ACR plugin for these formats. This means any pixel masks in the image will need to be regenerated in the UI, but that's better than having no edits show up at all.
 */
const checkIfXMPSupported = format => {
    let isXMPSupported = true;
    const groupExtensions = Object.keys(components_start_constants["g" /* UNSUPPORTED_LOCAL_XMP_FORMATS */]);
    groupExtensions.forEach(extensions => {
        components_start_constants["g" /* UNSUPPORTED_LOCAL_XMP_FORMATS */][extensions].forEach(extension => {
            if (extension === format) {
                isXMPSupported = false;
            }
        });
    });
    return isXMPSupported;
};
const LrSDKHelper_DOWNLOAD_ATTEMPTS = 3;
class DownloadProgress {
    constructor() {
        this.percent = 0;
        this.promise = new Promise((resolve, reject) => {
            this.resolve = resolve;
            this.reject = reject;
        });
    }
    cancel() {
        // default impl does nothing
    }
    then(onFulfilled, onRejected) {
        return this.promise.then(onFulfilled, onRejected);
    }
    catch(onRejected) {
        return this.promise.catch(onRejected);
    }
}
LrSDKHelper_decorate([
    mobx_module["z" /* observable */],
    LrSDKHelper_metadata("design:type", Object)
], DownloadProgress.prototype, "percent", void 0);
class LrSDKHelper_LrSDKHelper {
    /**
     * Loads and initializes the lightroom SDK. To use the Lightroom SDK (LrSDK),
     * you must first call this function. To initialize the LrSDK, we supply the
     * token, clientId, and environment, so you don't have to. However you may provide
     * additional options if desired.
     * @return {Promise} a promise that gets resolved when the LrSDK global object is loaded and initialized.
     */
    static async setup() {
        try {
            if (!window.LrSDK) {
                const { lrApp } = Object(LrApp["a" /* getLrApp */])(lrApp => {
                    // The current implementation of CCPhotos needs to have attached the Vulcan from the globalObject
                    if (lrApp) {
                        lrApp.globalObject.vulcan = LrSDKHelper_LrSDKHelper._vulcan;
                    }
                });
                // We've already initialized and there aren't any options this time - no need to re-initialize.
                // A note on multiple clients: There are 2 areas of the start panel that use
                // the LrSDK - the Search Results paneland the LR Photos panel. Sometimes both are
                // active at the same time. The problem is this: there can be only one global instance
                // of the LrSDK, but the 2 panels initialize differently: tHe LR Photos panel needs several options;
                // the Search Results panel needs no options (but is not affected if any options are present).
                // So how do know what options to give? Here's what we do: the first time we are called,
                // we initialize with the options given, if any. On subsequent calls, we will re-initialize
                // if there are options given, otherwise we won't. This allows Search and Photos to be used
                // serially or at the same time, without any interference.
                //
                // A better future solution mighb be to allow multiple instances of LrSDK, or eliminate some initialization options.
                if (!window.LrSDK && lrApp) {
                    window.LrSDK = lrApp.globalObject.LrSDK;
                }
            }
            const token = MainStore["mainStore"].user.accessToken;
            // Now we have the access token. Initialize the LrSDK.
            const credentials = Object.assign({
                token: token,
                clientId: components_start_constants["k" /* default */].LIGHTROOM_CLIENT_ID,
                environment: MainStore["mainStore"].user.isStaging ? 'stage' : 'prod',
                ozHost: MainStore["mainStore"].user.isStaging ? 'https://photos-stage.adobe.io/' : 'https://photos.adobe.io',
                hostOverride: MainStore["mainStore"].user.isStaging ? 'https://photos-stage.adobe.io/' : 'https://photos.adobe.io',
                disableAnalytics: true,
            });
            await window.LrSDK.catalog.initialize(credentials);
        }
        catch (error) {
            this._logger.error(error);
        }
    }
    /**
     * Use the CCX process to download a lightroom asset into a local temporary file, and tell us the path.
     * If the file has previously been downloaded, it may just immediately give you a cached copy of the file.
     *
     * @param clientId {String} your lightroom client id
     * @param assetId {String} the lightroom asset id of the asset
     * @param assetUrl {String} the main content url of the asset, or the url of the highest fidelity rendition if main doesn't exist.
     * @param filename {String} the filename of the asset
     *
     * @return a Promise for a {String} which contains the local absolute path of the file.
     *
     * This function was copied from ImportTaskItem._download() in the cc-photos-importer module.
     * TODO: don't have two copies of this code.
     */
    static downloadLightroomFile(clientId, assetId, assetUrl, filename, options = {}, progress) {
        const { retry = LrSDKHelper_DOWNLOAD_ATTEMPTS - 1, retryDelay = 1000 } = options;
        this._logger.log(`[downloadLightroomFile] downloading ${assetUrl}`);
        return new Promise((resolve, reject) => {
            const handleError = err => {
                this._logger.log(`[downloadLightroomFile] Failed to download file from ${assetUrl}`, err);
                cleanupVulcanListeners();
                if (retry === 0) {
                    resetTimeout(true); // stop the timeout
                    reject(err);
                    return;
                }
                this._logger.log('[downloadLightroomFile] will retry...');
                setTimeout(() => {
                    LrSDKHelper_LrSDKHelper.downloadLightroomFile(clientId, assetId, assetUrl, filename, { retry: retry - 1, retryDelay }, progress)
                        .then(resolve)
                        .catch(reject);
                }, retryDelay);
            };
            const setupVulcanListeners = () => {
                LrSDKHelper_LrSDKHelper._vulcan.on('ccxprocess.CCPhotoDownloadResponse', onPhotoDownloadComplete);
                LrSDKHelper_LrSDKHelper._vulcan.on('ccxprocess.CCPhotoDownloadProgress', onPhotoDownloadProgress);
                LrSDKHelper_LrSDKHelper._vulcan.on('ccxprocess.CCPhotoDownloadError', onPhotoDownloadError);
            };
            const cleanupVulcanListeners = () => {
                LrSDKHelper_LrSDKHelper._vulcan.off('ccxprocess.CCPhotoDownloadResponse', onPhotoDownloadComplete);
                LrSDKHelper_LrSDKHelper._vulcan.off('ccxprocess.CCPhotoDownloadProgress', onPhotoDownloadProgress);
                LrSDKHelper_LrSDKHelper._vulcan.off('ccxprocess.CCPhotoDownloadError', onPhotoDownloadError);
            };
            let receivedMessage = false;
            let timeout = null;
            const resetTimeout = (stop = false) => {
                if (timeout) {
                    clearTimeout(timeout);
                }
                if (stop) {
                    //log.toConsole(`[downloadLightroomFile] [${filename}] [attempt #${DOWNLOAD_ATTEMPTS - retry}] Stop the timeout and retries.`);
                    return; // set no more timeouts
                }
                receivedMessage = false;
                timeout = setTimeout(() => {
                    if (!receivedMessage) {
                        handleError(new Error(`[downloadLightroomFile] [${filename}] [attempt #${LrSDKHelper_DOWNLOAD_ATTEMPTS -
                            retry}] Timeout waiting for Vulcan message. Make sure your CCX Process version is >= 2.2.0-36`));
                    }
                }, 15000);
            };
            const onPhotoDownloadError = data => {
                if (data.id !== assetId) {
                    return;
                }
                receivedMessage = true;
                this._logger.log(`[downloadLightroomFile] [${filename}] [attempt #${LrSDKHelper_DOWNLOAD_ATTEMPTS -
                    retry}] CCX Process Download Error.`);
                handleError(data && data.error);
                // TODO when an error happens, does onPhotoDownloadComplete() also get called?
            };
            const onPhotoDownloadProgress = data => {
                if (data.id !== assetId) {
                    return;
                }
                receivedMessage = true;
                if (data && progress.percent < data.percentage) {
                    progress.percent = data.percentage;
                }
                resetTimeout();
            };
            const onPhotoDownloadComplete = data => {
                if (data.id !== assetId) {
                    return;
                }
                receivedMessage = true;
                if (!data) {
                    handleError(new Error(`[downloadLightroomFile] [${filename}] [attempt #${LrSDKHelper_DOWNLOAD_ATTEMPTS -
                        retry}] No data received from Vulcan. Make sure your CCX Process version is >= 2.2.0-36`));
                    return;
                }
                this._logger.log(`[downloadLightroomFile] [${filename}] [attempt #${LrSDKHelper_DOWNLOAD_ATTEMPTS -
                    retry}] Downloading succeeded ${assetUrl}, result is ${data.path}`);
                cleanupVulcanListeners();
                resetTimeout(true); // stop the timeout
                resolve({ path: data.path, filename });
            };
            setupVulcanListeners();
            // Send the download request
            const photoData = {
                clientId: clientId,
                id: assetId,
                url: assetUrl,
                filename: filename,
            };
            this._logger.log(`[downloadLightroomFile] [${filename}] [attempt #${LrSDKHelper_DOWNLOAD_ATTEMPTS -
                retry}] Dispatch CCX Process Request.`);
            LrSDKHelper_LrSDKHelper._vulcan.dispatch({ type: 'ccxprocess.CCPhotoDownloadRequest', data: photoData });
            resetTimeout();
            progress.cancel = () => {
                cleanupVulcanListeners();
                resetTimeout(true); // stop the timeout
                receivedMessage = true;
                this._logger.log('[downloadLightroomFile] cancel requested');
                reject(new Error('Download cancelled'));
            };
        });
    }
    static downloadAuxFiles(fileData) {
        return new Promise((resolve, reject) => {
            this._logger.log("[downloadLightroomFile] Downloading aux file", fileData.filename);
            const setupVulcanListeners = () => {
                LrSDKHelper_LrSDKHelper._vulcan.on("ccxprocess.CCPhotoDownloadResponse", onAuxFileDownloadComplete);
                LrSDKHelper_LrSDKHelper._vulcan.on("ccxprocess.CCPhotoDownloadError", onAuxFileDownloadError);
            };
            const cleanupVulcanListeners = () => {
                LrSDKHelper_LrSDKHelper._vulcan.off("ccxprocess.CCPhotoDownloadResponse", onAuxFileDownloadComplete);
                LrSDKHelper_LrSDKHelper._vulcan.off("ccxprocess.CCPhotoDownloadError", onAuxFileDownloadError);
            };
            const onAuxFileDownloadError = (data) => {
                cleanupVulcanListeners();
                reject(data.err);
            };
            const onAuxFileDownloadComplete = () => {
                this._logger.log(`[downloadLightroomFile] CCX Process Download for aux files finished OK.`);
                cleanupVulcanListeners();
                resolve();
            };
            setupVulcanListeners();
            // Send the download request            
            this._logger.log(`[downloadLightroomFile] Dispatch CCX Process Request.`);
            LrSDKHelper_LrSDKHelper._vulcan.dispatch({ type: "ccxprocess.CCPhotoDownloadRequest", data: fileData });
        });
    }
    /**
     * Open a lightroom file using Photoshop's Camera Raw dialog.
     * @param skipMRU Should skip recents.
     */
    static async openLightroomFile(assetId, skipMRU = false) {
        let _asset;
        let _fullXmpData;
        const progress = new DownloadProgress();
        try {
            await LrSDKHelper_LrSDKHelper.setup();
            const assetUrl = await LrSDK.catalog.assetUrlP(assetId);
            _asset = await LrSDK.catalog.getAssetP(assetUrl);
            const masks = get(_asset, "payload.develop.masks");
            _fullXmpData = get(_asset, 'payload.develop.xmpCameraRaw');
            this._logger.log("[downloadLightroomFile] Downloading photo from", assetUrl);
            // Find the image url and the file name.
            let imageUrl = _asset.links['/rels/master'] && _asset.links['/rels/master'].href;
            let fileName = _asset.payload.importSource.fileName;
            if (!imageUrl) {
                // The main href is not available. As described by Mark Peercy:
                // "For assets originating in LR Classic, there will be no main href at all.
                // The best you will have is a 2560 “proxy”. The proxy is a DNG stand-in for
                // the main that you can apply XMP settings to. That is its purpose in the ecosystem.
                // It enables the full ACR edit stack to be employed without the main."
                imageUrl = _asset.links['/rels/proxy_type/2560'].href;
                fileName = fileName.replace(/\.\w+$/, '.DNG');
            }
            // Fetch the asset's content.
            const { path, filename } = await LrSDKHelper_LrSDKHelper.downloadLightroomFile(components_start_constants["k" /* default */].LIGHTROOM_CLIENT_ID, assetId, _asset.base + imageUrl, fileName, {}, progress);
            this._logger.log("[downloadLightroomFile] Saved photo to", path, filename);
            // if there are ACR settings, we should download the ACR file along with the XMP one
            if (masks && Object.keys(masks).length) {
                try {
                    const downloadAuxFilesObject = {
                        clientId: components_start_constants["k" /* default */].LIGHTROOM_CLIENT_ID,
                        id: assetId,
                    };
                    const splitFilename = filename.split('.');
                    if (splitFilename.length > 1) {
                        const fileFormat = splitFilename.pop();
                        const fileName = splitFilename.join('.');
                        // ACR Download
                        await LrSDKHelper_LrSDKHelper.downloadAuxFiles({
                            ...downloadAuxFilesObject,
                            url: `${_asset.base}${_asset.links.self.href}/aux`,
                            filename: `${fileName}.acr`
                        });
                        const isXMPSupported = fileFormat && checkIfXMPSupported(fileFormat);
                        if (_fullXmpData && isXMPSupported) {
                            // XMP Download
                            await LrSDKHelper_LrSDKHelper.downloadAuxFiles({
                                ...downloadAuxFilesObject,
                                url: `${_asset.base}${_asset.links['/rels/xmp/develop'].href}`,
                                filename: `${fileName}.xmp`
                            });
                            _asset.localXMP = true;
                        }
                    }
                }
                catch (err) {
                    this._logger.error("[downloadLightroomFile] Downloading aux files failed", err);
                }
            }
            let status = false;
            let xmpString;
            if (_asset.payload.develop.userUpdated) {
                if (!_asset.localXMP) {
                    try {
                        xmpString = get(_asset, "payload.develop.xmpCameraRaw");
                        if (typeof xmpString !== "string") {
                            const xmpDevelopLink = get(_asset.links, '/rels/xmp/develop').href;
                            const requestOptions = {
                                url: `${_asset.base}${xmpDevelopLink}`,
                                method: 'GET',
                                json: true,
                                retries: 3,
                                headers: {
                                    'x-api-key': components_start_constants["k" /* default */].LIGHTROOM_CLIENT_ID,
                                    'Content-Type': 'application/json',
                                },
                            };
                            const xmpLocalPath = await NetUtil["a" /* default */].requestWithAccessToken(requestOptions);
                            xmpString = await xmpLocalPath.text();
                        }
                    }
                    catch (error) {
                        this._logger.log('Fetching XMP string failed', error);
                    }
                }
                status = await applications["a" /* default */].openPathWithXMP(path, _asset.payload.importSource.fileName, xmpString, _asset.payload.develop.userOrientation, false, false, _asset.localXMP);
            }
            else {
                status = await applications["a" /* default */].openLocalDocument({
                    path,
                    title: _asset.payload.importSource.fileName,
                    skipMRU,
                });
            }
            if (!status) {
                // Malformed file content or user cancelled the action (Camera Raw)
                this._logger.warn('Unable to open photo', {
                    path,
                    xmpString,
                    orientation: _asset.payload.develop.userOrientation,
                    localXMP: _asset.localXMP,
                });
            }
            else {
                // Remove the file extension from the title as
                // it is determined after the user save the file.
                if (filename) {
                    const newTitle = filename.replace(/\.\w+$/, '');
                    // Change the default title of a template document from "Untitled-X" to the actual file name.
                    applications["a" /* default */].releaseFileReference(newTitle, status.documentID);
                }
            }
            progress.resolve();
        }
        catch (err) {
            this._logger.error('openLightroomFile error: ', err);
            progress.resolve();
        }
        return progress;
    }
}
LrSDKHelper_LrSDKHelper._logger = Logger["a" /* default */].get('LrSDKHelper');
LrSDKHelper_LrSDKHelper._vulcan = Object(VulcanAPI["a" /* vulcanAPI */])();

// EXTERNAL MODULE: ./src/js/start/StartIngestAdapter.tsx
var StartIngestAdapter = __webpack_require__("TPr6");

// EXTERNAL MODULE: ./src/components/RefreshProjectsController.tsx
var RefreshProjectsController = __webpack_require__("9J+8");

// EXTERNAL MODULE: ./src/components/pieces/Icons.tsx
var Icons = __webpack_require__("NdnS");

// CONCATENATED MODULE: ./src/components/Search/Search.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var Search_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;
};
var Search_metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};







































const Search_logger = Logger["a" /* default */].get('Search');
const Search_sharedCSSClasses = __webpack_require__("kMNh");
const headerHangClassName = 'search__bar--hanging';
const Search_styles = __webpack_require__("0kNb");
const initialCardWidth = 150, cardMargin = 12;
class Search_Grid extends react["Component"] {
    render() {
        const { items, onItemClick } = this.props;
        return (react["createElement"]("div", { className: Search_styles.recentsGridWrapper }, items.map((item, i) => (react["createElement"](pieces_AccessibleButton_AccessibleButton, { onClick: () => onItemClick && onItemClick(item), className: Search_sharedCSSClasses.focus },
            react["createElement"](ccx_cdo["m" /* GridItem */], { tabIndex: 0, tileWidth: initialCardWidth, tileHeight: initialCardWidth, element: item, key: i }))))));
    }
}
const FILTER = {
    ALL: 'all',
    RECENT_FILES: 'recentfiles',
    CC_PHOTOS: 'ccphotos',
};
const SEARCH_EXIT_ICON = (react["createElement"]("svg", { width: "26px", height: "26px", viewBox: "0 0 26 26" },
    react["createElement"]("g", { transform: "translate(2434 -242)" },
        react["createElement"]("g", { transform: "translate(6.757 8.135)" },
            react["createElement"]("path", { className: "st0", d: "M-2429.1,252.7c-0.3,0-0.5-0.1-0.7-0.3l-4.9-4.9c-0.4-0.4-0.4-1,0-1.4l4.9-4.9c0.4-0.4,1-0.4,1.4,0 s0.4,1,0,1.4l-4.2,4.2l4.2,4.2c0.4,0.4,0.4,1,0,1.4C-2428.6,252.6-2428.9,252.7-2429.1,252.7z" }),
            react["createElement"]("path", { className: "st0", d: "M-2421.6,247.9h-12.4c-0.6,0-1-0.4-1-1c0-0.6,0.4-1,1-1h12.4c0.6,0,1,0.4,1,1 C-2420.6,247.4-2421,247.9-2421.6,247.9z" })),
        react["createElement"]("g", null,
            react["createElement"]("path", { className: "st0", d: "M-2421,268c-7.2,0-13-5.8-13-13c0-7.2,5.8-13,13-13c7.2,0,13,5.8,13,13C-2408,262.2-2413.8,268-2421,268z M-2421,244c-6.1,0-11,4.9-11,11s4.9,11,11,11s11-4.9,11-11S-2414.9,244-2421,244z" })))));
const WaitIcon = props => (react["createElement"]("div", Object.assign({ style: { display: 'flex', alignItems: 'center' } }, props),
    react["createElement"](Wait_default.a, { size: "S" })));
class BreadcrumbModel {
    constructor(label, action) {
        this.label = label;
        this.action = action;
        if (action) {
            this.href = '#';
        }
    }
}
let Search_LegacySearch = class LegacySearch extends react["Component"] {
    constructor(props, context) {
        super(props, context);
        this.q = '';
        this.breadcrumbVisible = false;
        this.maxNumCardsToShow = 0;
        this.filter = FILTER.ALL;
        this.breadcrumb = [];
        this.isSearching = false;
        this.wasSearchCancelled = false;
        this._disposerManager = new DisposerManager["a" /* default */]();
        this.onResize = () => {
            // Add new class here to the popover for custom CSS.
            if (this.searchStore.showSearch) {
                const searchPopover = Array.from(document.getElementsByClassName('spectrum-Popover'));
                if (searchPopover.length === 1 && !searchPopover[0].classList.contains('search__popover')) {
                    searchPopover[0].classList.add('search__popover');
                }
            }
            this.updateGrid(this.recentFilesGridWrapperEl);
        };
        this.online = () => {
            this.searchStore.clearMessage();
        };
        this.offline = () => {
            this.searchStore.setMessage({
                title: this.props.intl.formatMessage({
                    id: 'search_no_connection_title',
                }),
                message: this.props.intl.formatMessage({
                    id: 'search_no_connection',
                }),
                state: 'offline',
            });
        };
        this.inAppTutorialsSource = [];
        this.updateGrid = Object(throttle["a" /* default */])(element => {
            if (!element || !element.firstElementChild) {
                return;
            }
            this.maxNumCardsToShow = Math.floor((element.offsetWidth - 1) / (initialCardWidth + cardMargin));
        }, 150);
        this.close = () => {
            if (this.isSearching) {
                this.cancelSearch();
            }
            this.searchFieldInput.searchbox.inputContainer.value = '';
            this.q = '';
            this.searchHeader.classList.remove(headerHangClassName);
            this.searchStore.clearAutocomplete();
            this.searchStore.setShowSearch(false);
            this.searchStore.clearMessage();
            this.searchStore.clearResults();
            this.searchFieldInput.setState({
                value: '',
            });
        };
        this.onKeyEvt = (e) => {
            Object(FocusManager["trapFocus"])(this.searchContainer, e);
            if (e.keyCode === a11y.keys.ESC) {
                e.stopPropagation();
                if (!this.searchFieldInput.props.value || document.activeElement !== this.searchFieldInput.searchbox.inputContainer) {
                    e.preventDefault();
                    iaw_analytics["a" /* default */].logClickedEvent('search-exit-esc', this.q);
                    this.handleSearchExit();
                    this.mainStore.searchStore.setShowSearch(false);
                }
            }
            else if (e.keyCode === components_start_constants["k" /* default */].KEYS.TAB) {
                e.preventDefault();
                e.stopPropagation();
            }
        };
        this.resetBreadcrumb = () => {
            this.breadcrumb.splice(1, this.breadcrumb.length - 1);
        };
        this.search = term => {
            if (term.trim() === '') {
                this.searchFieldInput.focus();
                return;
            }
            this.searchContainer.focus();
            iaw_analytics["a" /* default */].logClickedEvent('search-submit', this.q);
            this.searchStore.clearResults();
            this.searchStore.clearMessage();
            this.filter = FILTER.ALL;
            if (this.mainStore.user.isFRL || !this.mainStore.online) {
                this.filter = FILTER.RECENT_FILES;
            }
            // close breadcrumb if new search has been executed
            if (this.breadcrumbVisible) {
                this.toggleBreadCrumb();
            }
            this.searchStore.addSearchTerm(applications["a" /* default */].recentFiles, term);
            this.isSearching = true;
            Federer["a" /* default */]
                .query(term.normalize())
                .then(res => {
                if (this.wasSearchCancelled) {
                    // search was cancelled so don't do anything with the results
                    this.wasSearchCancelled = false;
                    return;
                }
                this.searchStore.setRequestGuid(res.requestGUID);
                this.searchStore.setMetrics(res.metrics);
                const learnResults = res.result_sets.find(dir => dir.name === 'learn');
                this.searchStore.setLearnResults(learnResults);
                this.searchStore.setStockResults(res.result_sets.find(dir => dir.name === 'stock'));
                this.searchStore.setCcPhotosResults(res.result_sets.find(dir => dir.name === 'lightroom'));
                const inAppTutorialResults = [];
                this.inAppTutorialsSource.forEach(tutorial => {
                    // TODO find better way to search
                    if (!tutorial || !tutorial.metadata) {
                        return;
                    }
                    const { metadata } = tutorial;
                    if ([metadata.title, metadata.descriptions ? metadata.descriptions.short : '']
                        .join('')
                        .toLowerCase()
                        .indexOf(term.toLowerCase()) !== -1) {
                        inAppTutorialResults.push(tutorial);
                    }
                });
                this.searchStore.setInAppTutorialResults(inAppTutorialResults);
                // fire recent files rendered event
                this.searchStore.logRecentFilesRenderedEvent();
                // get additional photos after the inital request
                this.searchStore.getMoreCcPhotos();
                this.isSearching = false;
                if (res.metrics.total_hits === 1 && learnResults.total_hits === 1 && learnResults.total_items === 0) {
                    // False positive due to server changes that fixed IAW-2628.
                    // Change hits to 0 so we get a "no results" graphic. Fixes IAW-2639.
                    res.metrics.total_hits = 0;
                }
                if (res.metrics.total_hits === 0 && this.searchStore.recentFilesTotal === 0) {
                    this.searchStore.setMessage({
                        title: this.props.intl.formatMessage({
                            id: 'search_no_results_title',
                        }),
                        message: this.props.intl.formatMessage({
                            id: 'search_no_results',
                        }),
                        state: 'noResults',
                    });
                }
            })
                .catch(err => {
                Search_logger.error(err);
                if (this.wasSearchCancelled) {
                    // if search was cancelled, we shouldn't care about handling potential error message/offline messaging
                    this.wasSearchCancelled = false;
                    return;
                }
                if (this.mainStore.user.isFRL) {
                    this.isSearching = false;
                    // don't show FRL users errors related to search, unless recents are not found
                    if (!this.searchStore.recentFilesTotal) {
                        this.searchStore.setMessage({
                            title: this.props.intl.formatMessage({
                                id: 'search_no_results_title',
                            }),
                            message: this.props.intl.formatMessage({
                                id: 'search_no_results',
                            }),
                            state: 'noResults',
                        });
                    }
                    return;
                }
                if (!this.mainStore.online) {
                    this.offline();
                    return;
                }
                this.searchStore.setMessage({
                    title: this.props.intl.formatMessage({
                        id: 'search_error_no_access_title',
                    }),
                    message: this.props.intl.formatMessage({
                        id: 'search_error_no_access',
                    }),
                    state: 'error',
                });
            })
                .finally(() => {
                this.isSearching = false;
            });
        };
        this.cancelSearch = () => {
            this.searchStore.clearMessage();
            this.wasSearchCancelled = true;
            this.isSearching = false;
        };
        this.scrollHandler = Object(throttle["a" /* default */])(() => {
            if (!this.scrollContainer) {
                return;
            }
            this.searchHeader.classList.toggle(headerHangClassName, this.scrollContainer.scrollTop > 0);
        }, 40);
        this.toggleBreadCrumb = () => {
            this.breadcrumbVisible = !this.breadcrumbVisible;
        };
        this.onCCPhotoCalculated = items => {
            return this.searchStore.setCcPhotosInitialCount(items && items.size);
        };
        this.onStockCalculated = items => {
            this.searchStore.setStockInitialCount(items && items.size);
        };
        this.showAll = filter => {
            let ingestEvent = 'search-filter-all';
            const lastFilter = this.filter;
            let text;
            this.resetBreadcrumb();
            switch (filter) {
                case FILTER.RECENT_FILES:
                    this.filter = filter;
                    text = this.props.intl.formatMessage({ id: 'search_recents_header' }, { count: this.searchStore.recentFilesTotal });
                    this.breadcrumb.push(new BreadcrumbModel(text));
                    break;
                case FILTER.CC_PHOTOS:
                    this.filter = filter;
                    text = this.props.intl.formatMessage({ id: 'search_lrphotos_header' }, { count: this.searchStore.ccPhotosResultsTotal });
                    this.breadcrumb.push(new BreadcrumbModel(text));
                    break;
                default:
                    this.filter = FILTER.ALL;
                    ingestEvent = 'search-filter-breadcrumb';
                    break;
            }
            iaw_analytics["a" /* default */].logClickedEvent(ingestEvent, {
                term: this.q,
                mode: this.filter !== FILTER.ALL ? this.filter : lastFilter,
                requestGUID: this.searchStore.requestGUID,
            });
        };
        this.handleSearchExit = async () => {
            var _a;
            iaw_analytics["a" /* default */].logClickedEvent('search-exit');
            this.close();
            RefreshProjectsController["b" /* default */].refreshContent();
            // Re-focus Search icon
            (_a = document.getElementById('search-icon')) === null || _a === void 0 ? void 0 : _a.focus();
        };
        this.onKeyDown = (evt, cb) => {
            switch (evt.keyCode) {
                case a11y.keys.ENTER:
                case a11y.keys.SPACE:
                    evt.preventDefault();
                    evt.stopPropagation();
                    cb();
                    break;
                default:
                    break;
            }
        };
        /**
         * Gets a list of merged search history items and autocomplete suggestions.
         * Maps the icon names to actual React components.
         */
        this.getCompletions = () => {
            const items = this.searchStore.getAutocompleteMenuItems(this.q);
            return ((items &&
                items.map(item => {
                    return {
                        ...item,
                        icon: item.icon ? (item.icon === 'History' ? (react["createElement"](History_default.a, { size: "S", className: "autocompleteItemSearchIcon" })) : (react["createElement"](SearchIcon2019_24_default.a, { size: "S", className: "autocompleteItemSearchIcon" }))) : (undefined),
                    };
                })) ||
                []);
        };
        this.regainFocus = () => {
            // focus used to be set by UXP but this was changed with UXP-17356
            // checking if any element is focused on click and if not set focus on the container
            if (!document.activeElement) {
                this.searchContainer.focus();
            }
        };
        const allResultsStr = this.props.intl.formatMessage({
            id: 'search_all_results',
        });
        this.breadcrumb = [new BreadcrumbModel(allResultsStr, this.showAll)];
    }
    get mainStore() {
        return this.context.store;
    }
    get searchStore() {
        return this.context.store.searchStore;
    }
    get recentFilesStore() {
        return this.context.store.recentFilesStore;
    }
    get searchFieldEl() {
        return react_dom_default.a.findDOMNode(this.searchFieldInput).querySelector('input');
    }
    componentDidUpdate() {
        this.updateGrid(this.recentFilesGridWrapperEl);
    }
    get visibleRecentFiles() {
        return this.searchStore.recentFilesResults.slice(0, this.maxNumCardsToShow);
    }
    get hasMultipleRowsOfRecentFiles() {
        return this.searchStore.recentFilesTotal > this.visibleRecentFiles.length;
    }
    componentDidMount() {
        this.inAppTutorialsSource = Ututs["a" /* default */].appTutorials;
        window.addEventListener('resize', this.onResize);
        this._disposerManager.register(Object(mobx_module["A" /* observe */])(this.searchStore, 'showSearch', () => {
            if (this.searchStore.showSearch) {
                // IAW-6492
                Array.from(document.querySelectorAll('.ReactVirtualized__Grid, .ReactScrollViewNode')).forEach(reactVScroll => ScrollManager_default.a.getInstance().toggleScrollBarsVisibilityForScrollView(true, reactVScroll, this));
                setTimeout(() => this.searchFieldInput.searchbox.inputContainer.focus(), 150);
            }
            else {
                // IAW-6492
                Array.from(document.querySelectorAll('.ReactVirtualized__Grid, .ReactScrollViewNode')).forEach(reactVScroll => ScrollManager_default.a.getInstance().toggleScrollBarsVisibilityForScrollView(false, reactVScroll, this));
                // IAW-6300
                this.mainStore.setDisableNativeControls(false);
                // clear search field
                this.searchFieldInput.setState({
                    value: '',
                });
                // RSUxp needs an extra reset for some reason
                this.searchFieldInput.searchbox.inputContainer.value = '';
                this.q = '';
                // reset search filter categories when we exit search
                this.filter = FILTER.ALL;
            }
        }));
        // observe the autocompleteTermsChanged property, because observing the actual array has no effect
        this._disposerManager.register(Object(mobx_module["A" /* observe */])(this.searchStore, 'autocompleteTermsChanged', () => {
            if (this.searchStore.autocompleteTermsChanged) {
                if (this.isSearching) {
                    // if we're already searching, abort mission
                    this.searchStore.autocompleteTermsChanged = false;
                }
                else {
                    // Force the Autocomplete component to update completions.
                    // We need to do this manually because the UI doesn't respond to the autocompleteMenuItems array changes.
                    this.autocompleteRef &&
                        this.autocompleteRef.getCompletions &&
                        this.autocompleteRef.getCompletions(this.q);
                }
            }
        }, true));
        this._disposerManager.register(Object(mobx_module["B" /* reaction */])(() => this.mainStore.online, isOnline => {
            isOnline ? this.online() : this.offline();
        }, { fireImmediately: true }));
        this._disposerManager.register(Object(mobx_module["B" /* reaction */])(() => this.mainStore.user.UserProfile.userId, () => {
            if (this.searchStore.term) {
                this.isSearching = false;
                this.search(this.searchStore.term);
            }
        }, { fireImmediately: true }));
        this._disposerManager.register(Object(mobx_module["B" /* reaction */])(() => this.visibleRecentFiles, () => {
            this.updateGrid(this.recentFilesGridWrapperEl);
        }));
    }
    componentWillUnmount() {
        window.removeEventListener('resize', this.onResize);
        this._disposerManager.disposeAll();
    }
    openLearnLink(link, pos) {
        iaw_analytics["a" /* default */].logClickedEvent('open-learn-link', {
            url: link,
            position: pos,
            term: this.searchStore.term,
            requestGUID: this.searchStore.requestGUID,
        });
        link = iaw_analytics["a" /* default */].composeURLWithAnalyticsQueryString(link);
        platform["a" /* default */].openDefaultBrowser(link, imsBridge["a" /* JumpKey */].ADOBELEARN);
    }
    openLearnSeeAll(term, products = []) {
        let link = this.composeLearnSeeMoreLink(term, products);
        link = iaw_analytics["a" /* default */].composeURLWithAnalyticsQueryString(link);
        iaw_analytics["a" /* default */].logClickedEvent('search-filter-all', {
            term: this.q,
            mode: 'learn',
            requestGUID: this.searchStore.requestGUID,
        });
        platform["a" /* default */].openDefaultBrowser(link, imsBridge["a" /* JumpKey */].ADOBELEARN);
    }
    composeLearnSeeMoreLink(term, products = []) {
        const learnUrl = `https://helpx.adobe.com/${i18n["a" /* default */].getLocalizedGoURLSuffix(applications["a" /* default */].language)}/search.html`;
        // encode product names to properly handle whitespaces, etc
        const encodedProductNames = products.map(item => {
            return encodeURIComponent(item);
        });
        const queryParams = products.length === 0 ? '' : `&f:@CommonProduct=[${encodedProductNames.join(',')}]&t=AEM`;
        return `${learnUrl}#q=${encodeURIComponent(term)}&t=AEM&sort=relevancy${queryParams}`;
    }
    openLinkCallback(img) {
        let link = img && img._links && img._links.source && img._links.source.href;
        if (link) {
            link += '?' + iaw_analytics["a" /* default */].getTrackingParamsString({ content: StartIngestAdapter["a" /* CCXSTART_AS_CONTENT_ASSET */] });
            platform["a" /* default */].openDefaultBrowser(link, imsBridge["a" /* JumpKey */].ADOBESTOCK);
        }
    }
    openStockLink(term) {
        iaw_analytics["a" /* default */].logClickedEvent('search-filter-all', {
            term: term,
            mode: 'stock',
            requestGUID: this.searchStore.requestGUID,
        });
        let filters;
        if (applications["a" /* default */].id === 'ILST') {
            filters = 'filters[content_type:zip_vector]=1';
        }
        StockUtil.openStockSearchLink(term, filters);
    }
    _makeSearchBlock() {
        return (react["createElement"]("div", { className: "search__block__header" },
            react["createElement"]("div", { className: "search__block__header__title" },
                react["createElement"](Breadcrumbs_default.a, { items: this.breadcrumb, onBreadcrumbClick: (nav, _, evt) => {
                        evt && evt.preventDefault();
                        nav.action();
                    } }))));
    }
    _makeSearchAllHeader(opts) {
        const { handler, id, id2, headerIcon, headerMessage, metaMessage, metaLinkCondition, body, external } = opts;
        return (react["createElement"]("div", { className: "search__block", "data-qe-id": `search__block--${id}` },
            react["createElement"]("div", { className: "search__block__header" },
                react["createElement"]("div", { className: "search__block__header__title" },
                    headerIcon,
                    headerMessage),
                react["createElement"]("div", { className: "search__block__header__meta" },
                    metaMessage,
                    metaLinkCondition && (react["createElement"]("span", { className: `search__block__header__meta__link ${Search_sharedCSSClasses.focus}`, tabIndex: 0, "data-qe-id": `search-${id2 || id}_seeAll`, onClick: handler, onKeyDown: evt => this.onKeyDown(evt, handler) },
                        react["createElement"](index_es["c" /* FormattedMessage */], { id: "search_see_all" }),
                        external && react["createElement"](LinkOut_default.a, { size: "S" }))))),
            body));
    }
    get lightroomAuthorizationParams() {
        return {
            clientId: components_start_constants["k" /* default */].LIGHTROOM_CLIENT_ID,
            getAccessToken: () => this.mainStore.user.accessToken,
        };
    }
    onOpenDocument(item) {
        iaw_analytics["a" /* default */].logClickedEvent('search-card', item);
        applications["a" /* default */].openDocument(item);
    }
    render() {
        const productName = this.props.intl.formatMessage({
            id: 'product_title_' + applications["a" /* default */].id,
        });
        let filterSearchBlock;
        switch (this.filter) {
            case FILTER.RECENT_FILES:
                filterSearchBlock = (react["createElement"]("div", { className: "search__block", "data-qe-id": "search__block--recents" },
                    this._makeSearchBlock(),
                    react["createElement"]("div", { ref: el => (this.recentFilesGridWrapperEl = el), className: "search__block__grid search__block__grid--recent" },
                        react["createElement"](Search_Grid
                        // @ts-ignore
                        , { 
                            // @ts-ignore
                            items: this.searchStore.recentFilesResults, onItemClick: item => this.onOpenDocument(item) }))));
                break;
            case FILTER.CC_PHOTOS:
                filterSearchBlock = (react["createElement"]("div", { className: "search__block", style: { height: '100%' }, "data-qe-id": "search__block--ccphotos" },
                    this._makeSearchBlock(),
                    react["createElement"](Search_ImageGrid
                    // @ts-ignore
                    , { 
                        // @ts-ignore
                        images: this.searchStore.ccPhotosResults, imageClickCallback: (evt, img) => {
                            // needs to return the DownloadProgress object
                            return LrSDKHelper_LrSDKHelper.openLightroomFile(img.asset_id, true);
                        }, authorizationParams: this.lightroomAuthorizationParams, rowMaxHeight: 150, gapSize: 8, showIncompleteRows: true, enableLazyLoad: true, onLoadMore: callback => {
                            this.searchStore.getMoreCcPhotos().then(callback);
                        }, scrollContainer: this.scrollContainer })));
                break;
            case FILTER.ALL:
                filterSearchBlock = (react["createElement"](react["Fragment"], null,
                    this.searchStore.recentFilesTotal > 0 &&
                        this._makeSearchAllHeader({
                            id: 'recents',
                            handler: () => this.showAll(FILTER.RECENT_FILES),
                            headerIcon: react["createElement"](Clock_default.a, { size: "S" }),
                            headerMessage: (react["createElement"](index_es["c" /* FormattedMessage */], { id: "search_recents_header", values: {
                                    count: this.searchStore.recentFilesTotal,
                                } })),
                            metaMessage: (react["createElement"](index_es["c" /* FormattedMessage */], { id: "search_files_results", values: {
                                    numResults: this.searchStore.recentFilesTotal,
                                } })),
                            metaLinkCondition: this.hasMultipleRowsOfRecentFiles,
                            body: (react["createElement"]("div", { ref: el => (this.recentFilesGridWrapperEl = el), className: "search__block__grid search__block__grid--all" },
                                react["createElement"](Search_Grid, { items: this.visibleRecentFiles, onItemClick: item => this.onOpenDocument(item) }))),
                        }),
                    this.searchStore.ccPhotosResults.length > 0 &&
                        this._makeSearchAllHeader({
                            id: 'ccphotos',
                            id2: 'ccPhotos',
                            handler: () => this.showAll(FILTER.CC_PHOTOS),
                            headerIcon: react["createElement"](Icons["a" /* LightroomIcon */], null),
                            headerMessage: react["createElement"](index_es["c" /* FormattedMessage */], { id: "search_lightroom_header_message" }),
                            metaMessage: (react["createElement"](index_es["c" /* FormattedMessage */], { id: "search_lightroom_results", values: {
                                    numResults: this.searchStore.ccPhotosResultsTotal,
                                } })),
                            metaLinkCondition: this.searchStore.ccPhotosInitialCount < this.searchStore.ccPhotosResultsTotal,
                            body: (react["createElement"](Search_ImageGrid
                            // @ts-ignore
                            , { 
                                // @ts-ignore
                                images: this.searchStore.ccPhotosResults, imageClickCallback: (evt, img) => {
                                    // needs to return the DownloadProgress object
                                    return LrSDKHelper_LrSDKHelper.openLightroomFile(img.asset_id, true);
                                }, authorizationParams: this.lightroomAuthorizationParams, imageDimensionsCalculatedCallback: this.onCCPhotoCalculated, rowMaxHeight: 150, maxRows: 2, gapSize: 8, showIncompleteRows: true })),
                        }),
                    (this.searchStore.learnResultsTotal > 0 || this.searchStore.inAppTutorialResults.length > 0) &&
                        this._makeSearchAllHeader({
                            id: 'learn',
                            handler: () => this.openLearnSeeAll(this.searchStore.term, 
                            // @ts-ignore
                            this.searchStore.learnApplicableProducts),
                            headerIcon: react["createElement"](Efficient_default.a, { size: "S" }),
                            headerMessage: (react["createElement"](index_es["c" /* FormattedMessage */], { id: "search_learn_header", values: {
                                    productName: productName,
                                } })),
                            metaMessage: (react["createElement"](index_es["c" /* FormattedMessage */], { id: "search_learn_results", values: {
                                    numResults: this.searchStore.learnResultsTotal +
                                        this.searchStore.inAppTutorialResults.length,
                                } })),
                            metaLinkCondition: this.searchStore.learnResultsTotal > this.searchStore.maxLearnResultsToShow,
                            external: true,
                            body: (react["createElement"](react["Fragment"], null,
                                this.searchStore.inAppTutorialResults.length > 0 ? (react["createElement"](Tutorials_InAppTutorialCards, { expandGridView: true, 
                                    // @ts-ignore
                                    tutorials: this.searchStore.inAppTutorialResults })) : null,
                                this.searchStore.learnResults.map((item, index) => {
                                    if (!item._links) {
                                        return null;
                                    }
                                    return (react["createElement"]("div", { className: "learn-result", key: index },
                                        react["createElement"]("div", { className: "learn-result__wrapper" },
                                            react["createElement"]("div", { className: "learn-result__title" },
                                                react["createElement"]("span", { onClick: () => this.openLearnLink(item._links.source.href), className: classnames_default()(Search_sharedCSSClasses.focus, 'learn-result__title__focus'), onKeyDown: evt => this.onKeyDown(evt, this.openLearnLink.bind(this, item._links.source.href)), tabIndex: 0, "data-qe-id": 'learn-result__' + item.asset_name },
                                                    item.asset_name,
                                                    react["createElement"](LinkOut_default.a, { size: "S" }))),
                                            react["createElement"]("div", { className: Search_styles.row },
                                                item._links.rendition && (react["createElement"]("img", { className: "learn-result__image", onClick: () => this.openLearnLink(item._links.source.href, item.position), src: item._links.rendition[0].href })),
                                                react["createElement"]("div", null,
                                                    react["createElement"]("div", { className: "learn-result__description" }, item.learn_excerpt),
                                                    react["createElement"]("div", { className: "learn-result__date" }, this.props.intl.formatDate(item.modify_date, {
                                                        year: 'numeric',
                                                        month: 'long',
                                                        day: 'numeric',
                                                    })))))));
                                }))),
                        }),
                    this.searchStore.stockResults.length > 0 &&
                        this._makeSearchAllHeader({
                            id: 'stock',
                            handler: () => this.openStockLink(this.q),
                            headerIcon: react["createElement"](Icons["b" /* StockIcon */], null),
                            headerMessage: react["createElement"]("span", null, "Adobe Stock"),
                            metaMessage: (react["createElement"](index_es["c" /* FormattedMessage */], { id: "search_stock_results", values: {
                                    numResults: this.searchStore.stockResultsTotal,
                                } })),
                            metaLinkCondition: this.searchStore.stockInitialCount < this.searchStore.stockResultsTotal,
                            external: true,
                            body: (react["createElement"](Search_ImageGrid
                            // @ts-ignore
                            , { 
                                // @ts-ignore
                                images: this.searchStore.stockResults, imageClickCallback: (evt, img) => this.openLinkCallback(img), imageDimensionsCalculatedCallback: this.onStockCalculated, rowMaxHeight: 150, maxRows: 2, gapSize: 8, showIncompleteRows: true })),
                        })));
                break;
            default:
                break;
        }
        return (react["createElement"]("div", { ref: el => (this.searchContainer = el), onKeyDown: this.onKeyEvt, 
            // @ts-ignore
            defaultpreventedkeys: ['Escape', 'Tab'], tabIndex: 0, id: "hs-search-container", className: classnames_default()(Search_styles.root, 'search__container', this.mainStore.searchStore.showSearch && 'search__container--active'), onClick: () => this.regainFocus() },
            react["createElement"]("div", { ref: el => (this.searchHeader = el), className: "search__bar" },
                react["createElement"]("div", { className: "search__field-bumper search__field-bumper--left" },
                    react["createElement"]("span", { className: `search__exit ${Search_sharedCSSClasses.focus}`, onClick: () => this.handleSearchExit(), "data-qe-id": "search-exit", onKeyDown: evt => this.onKeyDown(evt, this.handleSearchExit.bind(this)), tabIndex: 0 },
                        SEARCH_EXIT_ICON,
                        react["createElement"](index_es["c" /* FormattedMessage */], { id: "search_exit" }))),
                react["createElement"]("div", { className: "search__field-wrapper" },
                    react["createElement"](Autocomplete_default.a, { ref: autocomplete => {
                            // Autocomplete's default implementation executes onSelect
                            // when Tab is pressed, which is incorrect. This disables
                            // the behavior (overriding onKeyDown is insufficient due to
                            // the implementation of Autocomplete).
                            if (autocomplete) {
                                Object.defineProperty(autocomplete, 'onTab', {
                                    configurable: true,
                                    enumerable: false,
                                    value: null,
                                });
                            }
                            this.autocompleteRef = autocomplete;
                        }, onSelect: value => {
                            if (!value) {
                                this.searchStore.clearResults();
                            }
                            // The same handler kicks in when the user presses Enter directly in the text field or when they select an autocomplete suggestion.
                            // The autocomplete items are all objects, with the following fields: value, label and icon.
                            // When one of them is selected, we need to look at the value.value field, and not use the value directly.
                            this.q = typeof value === 'string' ? value : value.value;
                            this.search(this.q);
                            this.searchFieldEl.blur();
                        }, value: this.q, allowCreate: true, getCompletions: this.getCompletions, onChange: value => {
                            this.searchStore.userSearchInput();
                            this.q = value;
                            if (this.isSearching && this.q === '') {
                                this.cancelSearch();
                            }
                            // the autocomplete knows if it's enabled or not and will only make the call if it's needed
                            this.searchStore.fillAutocompleteTerms(this.mainStore.user && this.mainStore.user.isStaging, this.q);
                        } },
                        react["createElement"](Search_default.a, { ref: el => (this.searchFieldInput = el), value: this.q, maxLength: "128", "data-qe-id": "search-input", icon: this.isSearching ? react["createElement"](WaitIcon, null) : react["createElement"](SearchIcon2019_24_default.a, { size: "S" }), onChange: (val) => {
                                if (val === '') {
                                    this.searchFieldInput.setState({
                                        value: '',
                                    });
                                    this.searchStore.clearResults();
                                    this.searchStore.clearAutocomplete();
                                }
                            } })),
                    react["createElement"]("span", { hidden: this.q.length > 0, onClick: () => this.searchFieldEl.focus(), className: "search__instruct search__instruct--inner" },
                        react["createElement"](index_es["b" /* FormattedHTMLMessage */], { id: "search_esc_instruction" }))),
                react["createElement"]("div", { className: "search__field-bumper search__field-bumper--right" },
                    react["createElement"]("span", { hidden: this.q.length === 0, className: "search__instruct" },
                        react["createElement"](index_es["b" /* FormattedHTMLMessage */], { id: "search_enter_instruction" })))),
            react["createElement"]("div", { className: "search__result-container scroll-container", ref: el => (this.scrollContainer = el), onScroll: this.scrollHandler },
                react["createElement"]("div", { className: "search__results scroll-pane" },
                    filterSearchBlock,
                    this.searchStore.message && (react["createElement"]("div", { className: "search__error-message" },
                        react["createElement"]("div", { className: "search__error-message__image" },
                            this.searchStore.messageState === 'error' && react["createElement"](ErrorIcon, null),
                            this.searchStore.messageState === 'offline' && react["createElement"](OfflineIcon, null),
                            this.searchStore.messageState === 'noResults' && react["createElement"](NoResultsIcon, null)),
                        react["createElement"]("h5", { className: "search__error-message__title" }, this.searchStore.messageTitle),
                        react["createElement"]("div", { className: "search__error-message__text" }, this.searchStore.message)))))));
    }
};
Search_LegacySearch.contextTypes = {
    store: prop_types_default.a.any,
    dispatch: prop_types_default.a.any,
};
Search_decorate([
    mobx_module["z" /* observable */],
    Search_metadata("design:type", Object)
], Search_LegacySearch.prototype, "q", void 0);
Search_decorate([
    mobx_module["z" /* observable */],
    Search_metadata("design:type", Object)
], Search_LegacySearch.prototype, "breadcrumbVisible", void 0);
Search_decorate([
    mobx_module["z" /* observable */],
    Search_metadata("design:type", Object)
], Search_LegacySearch.prototype, "maxNumCardsToShow", void 0);
Search_decorate([
    mobx_module["z" /* observable */],
    Search_metadata("design:type", Object)
], Search_LegacySearch.prototype, "filter", void 0);
Search_decorate([
    mobx_module["z" /* observable */],
    Search_metadata("design:type", Array)
], Search_LegacySearch.prototype, "breadcrumb", void 0);
Search_decorate([
    mobx_module["z" /* observable */],
    Search_metadata("design:type", Object)
], Search_LegacySearch.prototype, "isSearching", void 0);
Search_decorate([
    mobx_module["l" /* computed */],
    Search_metadata("design:type", Object),
    Search_metadata("design:paramtypes", [])
], Search_LegacySearch.prototype, "visibleRecentFiles", null);
Search_decorate([
    mobx_module["l" /* computed */],
    Search_metadata("design:type", Object),
    Search_metadata("design:paramtypes", [])
], Search_LegacySearch.prototype, "hasMultipleRowsOfRecentFiles", null);
Search_LegacySearch = Search_decorate([
    index_module["e" /* observer */],
    Search_metadata("design:paramtypes", [Object, Object])
], Search_LegacySearch);
/* harmony default export */ var Search_Search = (Object(index_es["g" /* injectIntl */])(Search_LegacySearch));
const ErrorIcon = () => (react["createElement"]("svg", { id: "Layer_1", "data-name": "Layer 1", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 137.89 92.04" },
    ' ',
    react["createElement"]("title", null, "search-error"),
    ' ',
    react["createElement"]("path", { d: "M151.5,44h-68a1.5,1.5,0,0,0,0,3h68a.5.5,0,0,1,.5.5V57H80a1,1,0,0,0,0,2h51v52H56.5a.5.5,0,0,1-.5-.5v-36a1.5,1.5,0,0,0-3,0v36a3.5,3.5,0,0,0,3.5,3.5h95a3.5,3.5,0,0,0,3.5-3.5v-63A3.5,3.5,0,0,0,151.5,44Zm0,67H133V59h19v51.5A.5.5,0,0,1,151.5,111Z", transform: "translate(-17.11 -21.96)" }),
    ' ',
    react["createElement"]("path", { d: "M54.28,69.43A23.74,23.74,0,1,0,34.75,59.16L18.5,75.4a4.75,4.75,0,1,0,6.72,6.72L41.54,65.8l0-.05A23.58,23.58,0,0,0,54.28,69.43Zm0-44.43A20.72,20.72,0,1,1,33.57,45.72,20.72,20.72,0,0,1,54.28,25ZM23.1,80a1.75,1.75,0,1,1-2.48-2.48l16-16A23.91,23.91,0,0,0,39.14,64Z", transform: "translate(-17.11 -21.96)" }),
    ' ',
    react["createElement"]("path", { d: "M45.67,54.33a1.5,1.5,0,0,0,2.12,0h0l6.71-6.71,6.71,6.71a1.5,1.5,0,0,0,2.12-2.12L56.62,45.5l6.71-6.71a1.5,1.5,0,0,0-2.12-2.12L54.5,43.38l-6.71-6.71a1.5,1.5,0,0,0-2.12,2.12l6.71,6.71-6.71,6.71a1.5,1.5,0,0,0,0,2.12Z", transform: "translate(-17.11 -21.96)" }),
    ' '));
const OfflineIcon = () => (react["createElement"]("svg", { id: "Layer_1", "data-name": "Layer 1", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 141.78 105.5" },
    ' ',
    react["createElement"]("title", null, "search-no-connection"),
    ' ',
    react["createElement"]("path", { d: "M56.37,82H24.86a4.09,4.09,0,0,1-3.55-6.14L37.07,48.55h0a4.05,4.05,0,0,1,3.55-2h0a4.05,4.05,0,0,1,3.55,2L59.92,75.86A4.09,4.09,0,0,1,56.37,82ZM39.67,50,23.91,77.36A1.09,1.09,0,0,0,24.86,79H56.37a1.09,1.09,0,0,0,.95-1.64L41.56,50a1.07,1.07,0,0,0-.95-.55h0A1.08,1.08,0,0,0,39.67,50Z", transform: "translate(-20.76 -20.5)" }),
    ' ',
    react["createElement"]("path", { d: "M40.5,69A1.5,1.5,0,0,1,39,67.5v-7a1.5,1.5,0,0,1,3,0v7A1.5,1.5,0,0,1,40.5,69Z", transform: "translate(-20.76 -20.5)" }),
    ' ',
    react["createElement"]("circle", { cx: "19.74", cy: "53", r: "1.9" }),
    ' ',
    react["createElement"]("path", { d: "M119.75,86.41a1.5,1.5,0,0,1-1.06-2.56,26.43,26.43,0,0,0,0-37.37,1.5,1.5,0,0,1,2.12-2.12,29.43,29.43,0,0,1,0,41.61h0A1.5,1.5,0,0,1,119.75,86.41Z", transform: "translate(-20.76 -20.5)" }),
    ' ',
    react["createElement"]("path", { d: "M80.25,86.41A1.5,1.5,0,0,1,79.19,86a29.43,29.43,0,0,1,0-41.61h0a1.5,1.5,0,0,1,2.12,2.12,26.43,26.43,0,0,0,0,37.37,1.5,1.5,0,0,1-1.06,2.56Z", transform: "translate(-20.76 -20.5)" }),
    ' ',
    react["createElement"]("path", { d: "M131.23,97.89a1.5,1.5,0,0,1-1.06-2.56,42.66,42.66,0,0,0,0-60.33h0a1.5,1.5,0,0,1,2.12-2.12,45.66,45.66,0,0,1,0,64.57h0A1.5,1.5,0,0,1,131.23,97.89Z", transform: "translate(-20.76 -20.5)" }),
    ' ',
    react["createElement"]("path", { d: "M68.77,97.89a1.5,1.5,0,0,1-1.06-.44,45.69,45.69,0,0,1-6.92-8.88A1.5,1.5,0,1,1,63.37,87h0a42.71,42.71,0,0,0,6.46,8.29,1.5,1.5,0,0,1-1.06,2.56Z", transform: "translate(-20.76 -20.5)" }),
    ' ',
    react["createElement"]("path", { d: "M56.3,60.28l-.22,0a1.5,1.5,0,0,1-1.27-1.7A46,46,0,0,1,67.71,32.88,1.5,1.5,0,1,1,69.83,35a43,43,0,0,0-12,24A1.5,1.5,0,0,1,56.3,60.28Z", transform: "translate(-20.76 -20.5)" }),
    ' ',
    react["createElement"]("path", { d: "M143.17,109.83a1.5,1.5,0,0,1-1.06-2.56,59.55,59.55,0,0,0,0-84.21,1.5,1.5,0,0,1,2.12-2.12h0a62.55,62.55,0,0,1,0,88.45h0A1.5,1.5,0,0,1,143.17,109.83Z", transform: "translate(-20.76 -20.5)" }),
    ' ',
    react["createElement"]("path", { d: "M56.83,109.83a1.5,1.5,0,0,1-1.06-.44,62.31,62.31,0,0,1-12.9-18.76,1.5,1.5,0,1,1,2.74-1.23h0a59.34,59.34,0,0,0,12.28,17.86,1.5,1.5,0,0,1-1.06,2.56Z", transform: "translate(-20.76 -20.5)" }),
    ' ',
    react["createElement"]("path", { d: "M44.25,41.8a1.5,1.5,0,0,1-1.37-2.11,62.31,62.31,0,0,1,12.9-18.75,1.5,1.5,0,1,1,2.13,2.12h0A59.31,59.31,0,0,0,45.62,40.91,1.5,1.5,0,0,1,44.25,41.8Z", transform: "translate(-20.76 -20.5)" }),
    ' ',
    react["createElement"]("path", { d: "M99.5,126a1.5,1.5,0,0,1-1.5-1.5v-60a1.5,1.5,0,0,1,3,0v60A1.5,1.5,0,0,1,99.5,126Z", transform: "translate(-20.76 -20.5)" }),
    ' '));
const NoResultsIcon = () => (react["createElement"]("svg", { id: "Layer_1", "data-name": "Layer 1", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 149.89 98.04" },
    ' ',
    react["createElement"]("title", null, "search-no-results"),
    ' ',
    react["createElement"]("path", { d: "M55.28,67.43A23.74,23.74,0,1,0,35.75,57.16L19.5,73.4a4.75,4.75,0,1,0,6.72,6.72h0L42.54,63.8l0-.05A23.58,23.58,0,0,0,55.28,67.43Zm0-44.43A20.72,20.72,0,1,1,34.57,43.72,20.72,20.72,0,0,1,55.28,23ZM24.1,78a1.75,1.75,0,1,1-2.48-2.48h0l16-16A23.91,23.91,0,0,0,40.14,62Z", transform: "translate(-18.11 -19.96)" }),
    ' ',
    react["createElement"]("path", { d: "M46.67,52.33a1.5,1.5,0,0,0,2.12,0h0l6.71-6.71,6.71,6.71a1.5,1.5,0,0,0,2.12-2.12L57.62,43.5l6.71-6.71a1.5,1.5,0,0,0-2.12-2.12L55.5,41.38l-6.71-6.71a1.5,1.5,0,0,0-2.12,2.12l6.71,6.71-6.71,6.71A1.5,1.5,0,0,0,46.67,52.33Z", transform: "translate(-18.11 -19.96)" }),
    ' ',
    react["createElement"]("path", { d: "M164.5,42H83.74a1.5,1.5,0,0,0,0,3H164.5a.5.5,0,0,1,.5.5v69a.51.51,0,0,1-.5.5h-1.09L137.84,89a4.94,4.94,0,0,0-3.5-1.43h0A4.94,4.94,0,0,0,130.82,89l-9.7,10.26L99.39,77.37a4.16,4.16,0,0,0-3-1.25h0a4.16,4.16,0,0,0-3,1.23L57,113.28V72.54a1.5,1.5,0,0,0-3,0v42a3.5,3.5,0,0,0,3.5,3.5h107a3.5,3.5,0,0,0,3.5-3.5v-69A3.5,3.5,0,0,0,164.5,42ZM132.26,90.43a2.92,2.92,0,0,1,2.07-.83h0a2.93,2.93,0,0,1,2.08.84L160.6,115H136.69l-14.15-14.28ZM94.85,78.77a2.18,2.18,0,0,1,1.56-.65h0a2.18,2.18,0,0,1,1.56.66L133.87,115H58.11Z", transform: "translate(-18.11 -19.96)" }),
    ' ',
    react["createElement"]("path", { d: "M144.4,74.62h0a10.11,10.11,0,0,0,7.22-3A10.34,10.34,0,0,0,144.44,54h0a10.11,10.11,0,0,0-7.22,3,10.34,10.34,0,0,0,7.2,17.63ZM138.62,58.4a8.13,8.13,0,0,1,5.8-2.43h0a8.34,8.34,0,0,1,5.78,14.22,8.12,8.12,0,0,1-5.8,2.42h0a8.34,8.34,0,0,1-5.78-14.22Z", transform: "translate(-18.11 -19.96)" }),
    ' '));

// CONCATENATED MODULE: ./src/components/ToastalController.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2021 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/


const tostalCoachmarkDelay = 3000;
const tostalTooltipDelay = 5000;
async function ToastalController_handleToastalFirstClose() {
    if (applications["a" /* default */].isCloudProjectsVisible) {
        const { sharedStore } = await __webpack_require__("BuQ2");
        sharedStore.updateStore({
            displayCoachMarks: true,
        });
        const showCoachMarks = sharedStore.hideCoachMarks();
        setTimeout(showCoachMarks, tostalCoachmarkDelay);
    }
    const showEvent = new CustomEvent(components_start_constants["k" /* default */].TOASTAL_EVENTS.SHOW_TOASTAL_TOOLTIP);
    dispatchEvent(showEvent);
    setTimeout(() => {
        const hideEvent = new CustomEvent(components_start_constants["k" /* default */].TOASTAL_EVENTS.HIDE_TOASTAL_TOOLTIP);
        dispatchEvent(hideEvent);
    }, tostalTooltipDelay);
}

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-firstmile-shared/src/components/ModalOverlay.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2020 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/




const ModalOverlay_styles = __webpack_require__("GzJA");
const noop = () => { };
class ModalOverlay_ModalOverlay extends react["Component"] {
    constructor() {
        super(...arguments);
        this.focusIndex = -1;
        this.handleBackgroundClick = event => {
            this.props.onClose();
            event.stopPropagation();
        };
        this.handleKeyPress = event => {
            if (event.keyCode === components_constants.KEYS.ESC) {
                this.props.onClose();
            }
            else if (event.keyCode === components_constants.KEYS.TAB || event.shiftKey) {
                // Handle tab or shift + tab event.
                if (!this.node) {
                    return;
                }
                // Find all elements inside the overlay that have a tabIndex
                // If the user has the Shift key held while Tabbing, we should go backwards
                // Otherwise, move forward
                const tabbables = this.node.querySelectorAll('[tabindex]:not([tabindex="-1"])');
                event.shiftKey ? this.focusIndex-- : this.focusIndex++;
                if (this.focusIndex < 0) {
                    this.focusIndex = tabbables.length - 1;
                }
                else if (this.focusIndex > tabbables.length - 1) {
                    this.focusIndex = 0;
                }
                const toSelect = tabbables[this.focusIndex];
                toSelect.focus();
                event.stopPropagation(); // Stop the event from bubbling just in case
                event.preventDefault();
            }
        };
    }
    /**
     * Lifecycle method for when a component is added to the DOM
     */
    componentDidMount() {
        document.addEventListener('keydown', this.handleKeyPress, false);
        this.node = document.getElementById('root');
        if (this.node) {
            this.node.focus();
        }
    }
    /**
     * Lifecycle method for when a component is unmounted.
     */
    componentWillUnmount() {
        document.removeEventListener('keydown', this.handleKeyPress, false);
    }
    /**
     * Return the html to render the ModalOverlay
     *
     * @returns React.HTML
     * @memberof ModalOverlay
     */
    render() {
        return (react["createElement"]("div", { "data-qe-id": "modal-overlay-root", id: "root", 
            // @ts-ignore
            defaultpreventedkeys: ['Tab'], tabIndex: 0, className: classnames_default()(ModalOverlay_styles.root, { [ModalOverlay_styles.isOpen]: this.props.isOpen }) },
            react["createElement"]("div", { "data-qe-id": "modal-overlay-root-curtain", id: "root-curtain", className: ModalOverlay_styles.rootCurtain, onClick: this.handleBackgroundClick }),
            this.props.onClose !== noop && (react["createElement"]("div", { "data-qe-id": "modal-overlay-wrapper", className: ModalOverlay_styles.overlayWrapper },
                react["createElement"]("div", { "data-qe-id": "modal-overlay-container", className: ModalOverlay_styles.overlayContainer }, this.props.content)))));
    }
}
ModalOverlay_ModalOverlay.contextTypes = common_CommonStaticContext;
ModalOverlay_ModalOverlay.defaultProps = {
    isOpen: true,
    onClose: noop,
    content: noop,
};
/* harmony default export */ var components_ModalOverlay = (ModalOverlay_ModalOverlay);

// CONCATENATED MODULE: ./src/components/MainWrapper.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var MainWrapper_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;
};
var MainWrapper_metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
























const MainWrapper_logger = Logger["a" /* default */].get('MainWrapper');
const CDOWrapperLazy = Object(react["lazy"])(() => Promise.resolve(/* import() */).then(__webpack_require__.bind(null, "3Vk1")));
let MainWrapper_MainWrapper = class MainWrapper extends react_default.a.Component {
    constructor(props) {
        super(props);
        this.showProjectsWrapper = false;
        this._disposerManager = new DisposerManager["a" /* default */]();
        this.scrollView = react_default.a.createRef();
        this.projectsView = react_default.a.createRef();
        applications["a" /* default */].projectsWrapperRef = this.projectsView;
        // just trigger the call and let it initialize async
        this.initializeProjects();
    }
    async initializeProjects() {
        var _a, _b, _c, _d, _e;
        if (applications["a" /* default */].isCloudProjectsEnabled) {
            const { SpaceRoute, sharedStore, Route } = await __webpack_require__("BuQ2");
            this.ProjectsWrapperLazy = Object(react["lazy"])(() => __webpack_require__.e(/* import() */ 5).then(__webpack_require__.bind(null, "0ZqW")));
            const { browseSession } = await __webpack_require__("khec");
            this.browseSession = browseSession;
            this.onViewProjectHandler = item => {
                if (item.type === 'project') {
                    // Navigate to the space root view
                    browseSession.navigateAndNotify(new SpaceRoute(item.id));
                }
                else {
                    // Navigate to the space folder view
                    try {
                        const space = JSON.parse(item.spaceInfo);
                        this.browseSession.navigateAndNotify(new SpaceRoute(space === null || space === void 0 ? void 0 : space.spaceId, {
                            folderUrn: item === null || item === void 0 ? void 0 : item.id,
                        }));
                    }
                    catch (error) {
                        MainWrapper_logger.error('Cannot navigate to space: ', error);
                    }
                }
            };
            // navigate to the last known route
            if (((_a = MainStore["mainStore"].prefs) === null || _a === void 0 ? void 0 : _a.currentRoute) === 'projects') {
                // If there is a deepLink route to go to
                if ((_b = MainStore["mainStore"].prefs) === null || _b === void 0 ? void 0 : _b.deepLink) {
                    // If the last saved route is for the current user, try to navigate there.
                    // If the user changed, navigate to Home.
                    if (((_c = MainStore["mainStore"].prefs) === null || _c === void 0 ? void 0 : _c.lastLoggedInUser) === ((_e = (_d = MainStore["mainStore"].user) === null || _d === void 0 ? void 0 : _d.UserProfile) === null || _e === void 0 ? void 0 : _e.userId)) {
                        try {
                            // If we were able to parse it, then we save as the last known route URL.
                            const route = Route.createFromString(MainStore["mainStore"].prefs.deepLink);
                            await this.browseSession.navigateAndNotify(route);
                        }
                        catch (e) {
                            MainWrapper_logger.warn('Could not parse Spaces deeplink:', e);
                            MainStore["mainStore"].navigate('home');
                        }
                    }
                    else {
                        MainStore["mainStore"].navigate('home');
                    }
                }
                else {
                    // last known route could not be resolved, navigate home
                    MainStore["mainStore"].navigate('home');
                }
            }
            let displayCoachMarks = applications["a" /* default */].shouldDisplayProjectsCoachMarks();
            Promise.all([applications["a" /* default */].isAnalyticsEnabled(), this.ProjectsWrapperLazy]).then(([analyticsEnabled]) => {
                sharedStore.updateStore({
                    disableLogAnalytics: !analyticsEnabled,
                    displayCoachMarks: displayCoachMarks,
                    ingestProjectKey: applications["a" /* default */].analyticsProjectKey,
                });
                this.showProjectsWrapper = true;
            });
        }
    }
    componentDidMount() {
        this._disposerManager.register(Object(mobx_module["B" /* reaction */])(() => [MainStore["mainStore"].prefs.currentRoute, applications["a" /* default */].resetScrollTriggerCondition], () => {
            const node = react_dom["findDOMNode"](this.scrollView.current);
            // reset scroll to top
            if (node) {
                if (applications["a" /* default */].homeScreenDisplayOptions.resetScrollTimeout) {
                    // In order to address an issue with scrolling reset in Win20H1
                    // Setting the scrollTop = 0 post a timeout of 500ms
                    // Refer: https://jira.corp.adobe.com/browse/XD-135798
                    setTimeout(() => {
                        node.scrollTop = 0;
                    }, applications["a" /* default */].homeScreenDisplayOptions.resetScrollTimeout);
                }
                else {
                    node.scrollTop = 0;
                }
            }
        }, { fireImmediately: true }));
        this._disposerManager.register(Object(mobx_module["B" /* reaction */])(() => MainStore["mainStore"].isToastalOpen, () => {
            var _a;
            // IAW-10272
            const scrollComponentsArray = Array.from(document.querySelectorAll('.ReactVirtualized__Grid, .ReactScrollViewNode'));
            // also add the scrollView component - the scroll would still show up when launching WhatsNew/UserIntentDialog in the Home and Learn tabs
            ((_a = this.scrollView) === null || _a === void 0 ? void 0 : _a.current.componentRef) && scrollComponentsArray.push(this.scrollView.current.componentRef);
            scrollComponentsArray.forEach(reactVScroll => ScrollManager_default.a.getInstance().toggleScrollBarsVisibilityForScrollView(!!MainStore["mainStore"].isToastalOpen, reactVScroll, this));
        }, { fireImmediately: true }));
    }
    componentWillUnmount() {
        this._disposerManager.disposeAll();
    }
    get toastalDefaultProps() {
        return {
            showOnlyOnce: true,
            isOpen: MainStore["mainStore"].isToastalOpen,
            logEvent: iaw_analytics["a" /* default */].logEvent,
            handleToastalFirstClose: ToastalController_handleToastalFirstClose,
            onClose: MainStore["mainStore"].isToastalOpen ? () => MainStore["mainStore"].closeToastal() : null,
            onOpen: () => {
                // set the `isToastalOpen` flag inside mainStore to true when the toastal appears
                MainStore["mainStore"].openToastal();
            },
        };
    }
    get toastalComponent() {
        if (!start_SharedSettings["a" /* default */].ready || (applications["a" /* default */].isUserIntentDialogEnabled && !MainStore["mainStore"].isToastalSettled)) {
            return null;
        }
        switch (MainStore["mainStore"].activeToastal) {
            case MainStore["ToastalName"].WHATS_NEW:
                const whatsNewData = Object(YukonContainers["c" /* getWhatsNewContent */])();
                return whatsNewData && react_default.a.createElement(components_WhatsNew, Object.assign({}, whatsNewData, this.toastalDefaultProps, { toastalName: MainStore["mainStore"].sidekickStore.toastalIdOverride || (whatsNewData === null || whatsNewData === void 0 ? void 0 : whatsNewData.toastalName) }));
            case MainStore["ToastalName"].USER_INTENT_DIALOG:
                const userIntentData = Object(YukonContainers["b" /* getUserIntentDialogContent */])();
                const containerAnalytics = {
                    component: MainStore["mainStore"].activeToastal,
                    eventData: {
                        workflow: MainStore["mainStore"].activeToastal,
                        containerAnalyticsParams: userIntentData.containerAnalyticsParams
                    },
                };
                return userIntentData && react_default.a.createElement(user_intent_dialog_UserIntentDialog, Object.assign({}, userIntentData, this.toastalDefaultProps, { edition: MainStore["mainStore"].sidekickStore.toastalIdOverride || userIntentData.edition, containerAnalytics: containerAnalytics }));
            default: return null;
        }
    }
    render() {
        const route = MainStore["mainStore"].prefs.currentRoute;
        // If the surface exsists for Toast but there is no associated content render null and log error
        const toast = Object(YukonContainers["a" /* getToastContent */])({ shouldLogErrorEvent: true });
        const npsData = applications["a" /* default */].getNPSData;
        let content = react_default.a.createElement(react_default.a.Fragment, null);
        let projectsWrapper;
        if (applications["a" /* default */].isCloudProjectsVisible &&
            MainStore["mainStore"].prefs.currentRoute === MainStore["RouteName"].projects &&
            this.showProjectsWrapper) {
            // Put before CDOWrapper in VLayout because CDOWrapper is always shown and occupied the mainContentWrapper space.
            // ProjectsWrapper, however, is null when not routed too.
            const ProjectWrapperComponent = this.ProjectsWrapperLazy;
            projectsWrapper = ProjectWrapperComponent ? (react_default.a.createElement(react["Suspense"], { fallback: react_default.a.createElement("div", null) },
                react_default.a.createElement(ProjectWrapperComponent, { browseSession: this.browseSession }))) : null;
        }
        switch (route) {
            case 'home':
            case 'learn':
                content = this.props.children;
                break;
            case 'ccphotos':
                content = react_default.a.createElement(components_CCPhotos, null);
                // CCPhotos & CDO manages whether or not it renders itself,
                // since we want it to always remain loaded once it
                // has been viewed once.
                break;
            case components_start_constants["c" /* CDO_TABS */].CDO:
            case components_start_constants["c" /* CDO_TABS */].SHARED_WITH_YOU:
            case components_start_constants["c" /* CDO_TABS */].DELETED:
                if (!applications["a" /* default */].isCloudDocumentsEnabled) {
                    content = react_default.a.createElement(CDOWrapper_CloudDocsPlaceholder, null);
                }
                break;
            default:
                content = null;
                break;
        }
        const disableScroll = route === MainStore["RouteName"].ccphotos ||
            MainStore["mainStore"].searchStore.showSearch ||
            (route === MainStore["RouteName"].home && !applications["a" /* default */].homeScreenDisplayOptions.showScrollbarOnHome) ||
            (route === MainStore["RouteName"].learn && !applications["a" /* default */].homeScreenDisplayOptions.showScrollbarOnLearn) ||
            route === MainStore["RouteName"].projects;
        const isHomeRoute = route === MainStore["RouteName"].home;
        const enableXdTopPadding = platform["a" /* default */].isXD && isHomeRoute && applications["a" /* default */].homeScreenDisplayOptions.showScrollbarOnHome;
        return (react_default.a.createElement(react_default.a.Fragment, null,
            react_default.a.createElement(header_Header, null),
            react_default.a.createElement(components_HLayout, { unpadded: true, shrink: true },
                react_default.a.createElement(components_Sidebar, { browseSession: this.browseSession }),
                react_default.a.createElement(components_ScrollView, { ref: this.scrollView, disableScroll: disableScroll, 
                    // add a special css class to change the way padding is applied to fix
                    // horizontal scrolling created by the DHSCR Carousel Arrows
                    className: classnames_default()({
                        ['homePadding']: isHomeRoute && !platform["a" /* default */].isXD,
                        ['xdTopPadding']: enableXdTopPadding,
                        ['projectsPadding']: route === MainStore["RouteName"].projects,
                    }) },
                    react_default.a.createElement(components_VLayout, null,
                        projectsWrapper,
                        react_default.a.createElement(react["Suspense"], { fallback: react_default.a.createElement("div", null) },
                            react_default.a.createElement(CDOWrapperLazy, { onViewProjectHandler: this.onViewProjectHandler },
                                react_default.a.createElement(Search_Search, null),
                                content))))),
            toast && (react_default.a.createElement(components_ToastWrapper, { fields: { ...toast, toastName: MainStore["mainStore"].sidekickStore.toastIdOverride || toast.toastName } })),
            this.toastalComponent,
            applications["a" /* default */].isNPSEnabled && (react_default.a.createElement(components_NPSDialog, { open: true, onCancel: applications["a" /* default */].handleNPSClose, onConfirm: applications["a" /* default */].handleNPSSubmit, bucket: npsData === null || npsData === void 0 ? void 0 : npsData.bucket, trigger: npsData === null || npsData === void 0 ? void 0 : npsData.trigger, maxLength: 1024, filterChars: `\n\t_-)}]\"/:&;#\'*%({[$^\`<=>+` })),
            applications["a" /* default */].shouldShowProjectsShareSheetOverlay && react_default.a.createElement(components_ModalOverlay, null)));
    }
};
MainWrapper_decorate([
    mobx_module["z" /* observable */],
    MainWrapper_metadata("design:type", Object)
], MainWrapper_MainWrapper.prototype, "browseSession", void 0);
MainWrapper_decorate([
    mobx_module["z" /* observable */],
    MainWrapper_metadata("design:type", Boolean)
], MainWrapper_MainWrapper.prototype, "showProjectsWrapper", void 0);
MainWrapper_MainWrapper = MainWrapper_decorate([
    index_module["e" /* observer */],
    MainWrapper_metadata("design:paramtypes", [Object])
], MainWrapper_MainWrapper);
/* harmony default export */ var components_MainWrapper = (MainWrapper_MainWrapper);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-firstmile-shared/src/components/HLayout.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/


const components_HLayout_styles = __webpack_require__("O2gd");
const HLayout_HLayout = props => (react["createElement"]("div", { className: classnames_default()(components_HLayout_styles.HLayout, !props.unpadded && components_HLayout_styles.padded, props.row && components_HLayout_styles.rowMode) }, props.children));
/* harmony default export */ var src_components_HLayout = (HLayout_HLayout);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-firstmile-shared/src/components/VLayout.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/


const components_VLayout_styles = __webpack_require__("O2gd");
const VLayout_VLayout = props => (react["createElement"]("div", { className: classnames_default()(components_VLayout_styles.VLayout, !props.unpadded && components_VLayout_styles.padded) }, props.children));
/* harmony default export */ var src_components_VLayout = (VLayout_VLayout);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-firstmile-shared/src/components/ScrollView.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/



const components_ScrollView_styles = __webpack_require__("O2gd");
class components_ScrollView_ScrollView extends react["Component"] {
    render() {
        const { props } = this;
        return (react["createElement"]("div", { className: classnames_default()(components_ScrollView_styles.scrollView, props.disableScroll && components_ScrollView_styles.disableScroll) },
            react["createElement"](src_components_VLayout, { unpadded: true }, props.children)));
    }
}
/* harmony default export */ var src_components_ScrollView = (components_ScrollView_ScrollView);

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/ChevronUp/index.js
var ChevronUp = __webpack_require__("cXda");
var ChevronUp_default = /*#__PURE__*/__webpack_require__.n(ChevronUp);

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/InfoOutline/index.js
var InfoOutline = __webpack_require__("AiiT");
var InfoOutline_default = /*#__PURE__*/__webpack_require__.n(InfoOutline);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/StatusLight/index.js
var StatusLight = __webpack_require__("QUbw");
var StatusLight_default = /*#__PURE__*/__webpack_require__.n(StatusLight);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-firstmile-shared/src/components/CollapsibleContainer.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var CollapsibleContainer_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;
};











const CollapsibleContainer_styles = __webpack_require__("cpua");
const CollapsibleContainer_sharedStyles = __webpack_require__("kMNh");
const CollapsibleContainer_SHARED_SETTING_TYPE = 'collapsibleContainer';
const SHARED_SETTING_KEY = 'collapsed';
let isComponentUpdatedByToggle = false;
let CollapsibleContainer_CollapsibleContainer = class CollapsibleContainer extends react["Component"] {
    constructor() {
        super(...arguments);
        this.handleKeyDown = (e, collapsed, isNew) => {
            if (e.keyCode === components_constants.KEYS.ENTER || e.keyCode === components_constants.KEYS.SPACE) {
                this.toggleCollapsed(collapsed, isNew);
            }
        };
    }
    componentDidUpdate() {
        const { onChildrenUpdate } = this.props;
        if (isComponentUpdatedByToggle) {
            isComponentUpdatedByToggle = false;
            onChildrenUpdate(false);
        }
    }
    componentDidMount() {
        const { utils: { SharedSettings }, } = this.context;
        const id = this.props.experienceId;
        const collapsed = SharedSettings.get(CollapsibleContainer_SHARED_SETTING_TYPE, SHARED_SETTING_KEY) === true;
        const isNew = !SharedSettings.get(CollapsibleContainer_SHARED_SETTING_TYPE, id);
        // If we've got content the user hasn't seen, but the container is expanded, mark the new content as seen.
        if (!collapsed && isNew) {
            SharedSettings.set(CollapsibleContainer_SHARED_SETTING_TYPE, id, true);
        }
        this.context.utils.analytics.logRenderedEvent('collapsibleContainer');
        this._renderEventGUID = this.context.utils.analytics.subscribeLogRenderedEvent(() => ['collapsibleContainer']);
    }
    componentWillUnmount() {
        this.context.utils.analytics.unsubscribeLogRenderedEvent(this._renderEventGUID);
    }
    toggleCollapsed(collapsed, isNew) {
        const { utils: { SharedSettings }, } = this.context;
        const { analyticsProps, experienceId, onChildrenUpdate } = this.props;
        const { containerAnalytics, logEvent } = analyticsProps || {};
        SharedSettings.set(CollapsibleContainer_SHARED_SETTING_TYPE, SHARED_SETTING_KEY, !collapsed);
        // If the content is new, and we're expanding the container, mark the content as seen.
        const id = experienceId;
        if (collapsed && isNew) {
            SharedSettings.set(CollapsibleContainer_SHARED_SETTING_TYPE, id, true);
        }
        containerAnalytics &&
            logEvent(containerAnalytics.component || 'collapsible-container', {
                ...containerAnalytics.eventData,
                recommendationsJson: this.context.ututs.recommendationsJsonData(),
                subtype: collapsed ? 'show' : 'hide',
            }, 'click');
        isComponentUpdatedByToggle = true;
        onChildrenUpdate(true);
    }
    openLink(data) {
        const { containerAnalytics, logEvent } = this.props;
        this.context.utils.CallToActionHandler.handleCallToAction(data, containerAnalytics, logEvent, this);
    }
    render() {
        const { utils: { SharedSettings, replaceAppData }, } = this.context;
        const { children, experienceId, headerTitleId, tooltipContentId, hideButton } = this.props;
        const id = experienceId;
        const collapsed = SharedSettings.get(CollapsibleContainer_SHARED_SETTING_TYPE, SHARED_SETTING_KEY) === true;
        const isNew = !SharedSettings.get(CollapsibleContainer_SHARED_SETTING_TYPE, id); // If the user hasn't seen this content before, and the container is collapsed, we'll render a badge.
        return (react["createElement"]("div", { className: CollapsibleContainer_styles.root },
            react["createElement"]("div", { "data-qe-id": "collapse-top-bar", className: CollapsibleContainer_styles.topBar },
                react["createElement"]("span", { "data-qe-id": "collapse-welcome-text", className: classnames_default()(CollapsibleContainer_styles.message, CollapsibleContainer_sharedStyles.sharedHeader) },
                    replaceAppData(this.context.intl.formatMessage({
                        id: headerTitleId || 'common_welcome',
                    })),
                    tooltipContentId && (react["createElement"](OverlayTrigger_default.a, { trigger: "hover", placement: "bottom", delayShow: components_constants.TOOLTIP_DELAY },
                        react["createElement"]("span", { className: CollapsibleContainer_styles.infoIconWrapper, "data-qe-id": "collapse-info-icon" },
                            react["createElement"](InfoOutline_default.a, { className: CollapsibleContainer_styles.infoIcon })),
                        react["createElement"](Popover_default.a, { "data-qe-id": "collapse-info-popover", className: CollapsibleContainer_styles.popover }, replaceAppData(this.context.intl.formatMessage({
                            id: tooltipContentId,
                        })))))),
                !hideButton && (react["createElement"]("div", { className: CollapsibleContainer_styles.rightContainer },
                    collapsed && isNew && react["createElement"](StatusLight_default.a, { className: CollapsibleContainer_styles.statusLight, variant: "active" }),
                    react["createElement"]("div", { "data-qe-id": "collapse-toggle", className: classnames_default()(CollapsibleContainer_styles.toggle, CollapsibleContainer_sharedStyles.focus), tabIndex: 0, onClick: () => this.toggleCollapsed(collapsed, isNew), onKeyDown: e => this.handleKeyDown(e, collapsed, isNew) }, collapsed ? (react["createElement"](react["Fragment"], null,
                        react["createElement"](ChevronDown_default.a, { size: "S", "data-qe-id": "collapse-arrow-down" }),
                        react["createElement"]("span", { "data-qe-id": "collapse-show-text" }, this.context.intl.formatMessage({
                            id: 'collapsible_show',
                        })))) : (react["createElement"](react["Fragment"], null,
                        react["createElement"](ChevronUp_default.a, { size: "S", "data-qe-id": "collapse-arrow-up" }),
                        react["createElement"]("span", { "data-qe-id": "collapse-hide-text" }, this.context.intl.formatMessage({
                            id: 'collapsible_hide',
                        })))))))),
            react["createElement"]("div", { "data-qe-id": "collapse-container-divider", className: CollapsibleContainer_styles.divider }),
            !collapsed && react["createElement"]("div", { className: CollapsibleContainer_styles.childContainer }, children)));
    }
};
CollapsibleContainer_CollapsibleContainer.contextTypes = common_CommonStaticContext;
CollapsibleContainer_CollapsibleContainer = CollapsibleContainer_decorate([
    index_module["e" /* observer */]
], CollapsibleContainer_CollapsibleContainer);
/* harmony default export */ var components_CollapsibleContainer = (CollapsibleContainer_CollapsibleContainer);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-firstmile-shared/src/assets/S_Illu_DragNDropAe_160x120.svg
function S_Illu_DragNDropAe_160x120_extends() {
  S_Illu_DragNDropAe_160x120_extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return S_Illu_DragNDropAe_160x120_extends.apply(this, arguments);
}


/* harmony default export */ var S_Illu_DragNDropAe_160x120 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_Illu_DragNDropAe_160x120_extends({
  xmlns: "http://www.w3.org/2000/svg",
  height: "120",
  id: "S_Illu_DragNDropAe_160x120",
  viewBox: "0 0 160 120",
  width: "160"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M134.034 47.332h-15.976v-8.246a1.744 1.744 0 0 0-2.977-1.232L94.56 58.374a1.744 1.744 0 0 0 1.232 2.977h7.654A11.5 11.5 0 0 0 101.981 67a11.641 11.641 0 0 0 23.277.321h8.776a2.016 2.016 0 0 0 2.013-2.013V49.346a2.016 2.016 0 0 0-2.013-2.014zm-17.976-7.627v15.912a11.6 11.6 0 0 0-11.2 3.734h-8.446zm-2.43 36.944A9.658 9.658 0 0 1 103.981 67a9.544 9.544 0 0 1 2.119-6.024 9.6 9.6 0 0 1 10.633-3.1 9.6 9.6 0 0 1 6.506 8.509l.01.15c.011.155.022.308.022.465a9.657 9.657 0 0 1-9.643 9.649zm20.406-11.326h-8.893c0-.022-.01-.043-.014-.065a11.455 11.455 0 0 0-.28-1.325l-.038-.152a11.5 11.5 0 0 0-.443-1.254 8.027 8.027 0 0 0-.089-.214 11.507 11.507 0 0 0-.586-1.157c-.037-.065-.077-.127-.115-.191a11.525 11.525 0 0 0-.745-1.1l-.078-.095a11.672 11.672 0 0 0-.876-.985c-.027-.027-.052-.057-.08-.084a11.641 11.641 0 0 0-1-.873c-.059-.046-.117-.093-.178-.138a11.163 11.163 0 0 0-1.089-.722c-.069-.041-.14-.08-.21-.12a12.035 12.035 0 0 0-1.207-.59c-.017-.007-.033-.017-.05-.024v-6.902h15.976l.013.014z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M22.015 53.734H19.94a1.693 1.693 0 0 1-1.69-1.692v-2.075a1.693 1.693 0 0 1 1.691-1.691h2.075a1.692 1.692 0 0 1 1.691 1.692v2.073a1.694 1.694 0 0 1-1.692 1.693zm-1.765-2h1.457v-1.457h-1.456zm1.767-1.456z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M33.769 53.738h-2.075A1.694 1.694 0 0 1 30 52.045v-2.074a1.693 1.693 0 0 1 1.7-1.691h2.075a1.692 1.692 0 0 1 1.69 1.691v2.074a1.693 1.693 0 0 1-1.696 1.693zm-1.766-2h1.457v-1.457H32zm1.767-1.456z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M46.216 53.742H44.14a1.7 1.7 0 0 1-1.691-1.694v-2.073a1.693 1.693 0 0 1 1.692-1.69h2.076a1.7 1.7 0 0 1 1.689 1.692v2.074a1.69 1.69 0 0 1-1.689 1.691zm0-2zm-1.763 0h1.456v-1.457h-1.46z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M57.967 53.746h-2.074a1.693 1.693 0 0 1-1.693-1.692V49.98a1.7 1.7 0 0 1 1.7-1.692h2.074a1.694 1.694 0 0 1 1.691 1.692v2.074a1.694 1.694 0 0 1-1.698 1.692zm-1.765-2h1.457v-1.457H56.2zm1.767-1.456z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M69.721 53.75h-2.075a1.692 1.692 0 0 1-1.69-1.691v-2.075a1.693 1.693 0 0 1 1.691-1.692h2.075a1.694 1.694 0 0 1 1.691 1.692v2.074a1.693 1.693 0 0 1-1.692 1.692zm-1.765-2h1.457v-1.457h-1.456zm1.766-1.456z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M22.015 80.734H19.94a1.693 1.693 0 0 1-1.69-1.692v-2.075a1.693 1.693 0 0 1 1.691-1.691h2.075a1.692 1.692 0 0 1 1.691 1.692v2.073a1.694 1.694 0 0 1-1.692 1.693zm-1.765-2h1.457v-1.457h-1.456zm1.767-1.456z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M33.769 80.738h-2.075A1.694 1.694 0 0 1 30 79.045v-2.074a1.693 1.693 0 0 1 1.7-1.691h2.075a1.692 1.692 0 0 1 1.69 1.691v2.074a1.693 1.693 0 0 1-1.696 1.693zm-1.766-2h1.457v-1.457H32zm1.767-1.456z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M46.216 80.742H44.14a1.7 1.7 0 0 1-1.691-1.694v-2.073a1.693 1.693 0 0 1 1.692-1.69h2.076a1.7 1.7 0 0 1 1.689 1.692v2.074a1.69 1.69 0 0 1-1.689 1.691zm0-2zm-1.763 0h1.456v-1.457h-1.46z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M57.967 80.746h-2.074a1.693 1.693 0 0 1-1.693-1.692V76.98a1.7 1.7 0 0 1 1.7-1.692h2.074a1.694 1.694 0 0 1 1.691 1.692v2.074a1.694 1.694 0 0 1-1.698 1.692zm-1.765-2h1.457v-1.457H56.2zm1.767-1.456z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M69.721 80.75h-2.075a1.692 1.692 0 0 1-1.69-1.691v-2.075a1.693 1.693 0 0 1 1.691-1.692h2.075a1.694 1.694 0 0 1 1.691 1.692v2.074a1.693 1.693 0 0 1-1.692 1.692zm-1.765-2h1.457v-1.457h-1.456zm1.766-1.456z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M73.5 86h-57a3.5 3.5 0 0 1-3.5-3.5v-36a3.5 3.5 0 0 1 3.5-3.5h57a3.5 3.5 0 0 1 3.5 3.5v36a3.5 3.5 0 0 1-3.5 3.5zm-57-40a.5.5 0 0 0-.5.5v36a.5.5 0 0 0 .5.5h57a.5.5 0 0 0 .5-.5v-36a.5.5 0 0 0-.5-.5z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M45 73a1 1 0 0 1-1-1V57a1 1 0 0 1 2 0v15a1 1 0 0 1-1 1z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M93.621 105.6a1.5 1.5 0 0 0-2.121 0l-8.5 8.47V88.5a1.5 1.5 0 0 0-3 0v25.51l-8.441-8.41a1.5 1.5 0 0 0-2.118 2.125l10.269 10.23a2.581 2.581 0 0 0 3.636 0l10.271-10.234a1.5 1.5 0 0 0 .004-2.121z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M137.642 86H94.358A8.388 8.388 0 0 1 86 77.6V20.44a8.389 8.389 0 0 1 8.358-8.4h31.655a10.472 10.472 0 0 1 7.461 3.1l9.423 9.45A10.579 10.579 0 0 1 146 32.11V77.6a8.388 8.388 0 0 1-8.358 8.4zM94.358 15.041A5.384 5.384 0 0 0 89 20.44V77.6a5.384 5.384 0 0 0 5.358 5.4h43.284A5.384 5.384 0 0 0 143 77.6V32.11a7.6 7.6 0 0 0-2.227-5.4l-9.423-9.449a7.488 7.488 0 0 0-5.337-2.22z"
})));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-firstmile-shared/src/assets/S_Illu_DragNDropPs_160x120.svg
function S_Illu_DragNDropPs_160x120_extends() {
  S_Illu_DragNDropPs_160x120_extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return S_Illu_DragNDropPs_160x120_extends.apply(this, arguments);
}


/* harmony default export */ var S_Illu_DragNDropPs_160x120 = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", S_Illu_DragNDropPs_160x120_extends({
  xmlns: "http://www.w3.org/2000/svg",
  height: "120",
  id: "S_Illu_DragNDropPs_160x120",
  viewBox: "0 0 160 120",
  width: "160"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M92.591 105.6a1.5 1.5 0 0 0-2.121 0L82 114.036V90.5a1.5 1.5 0 0 0-3 0v23.54l-8.471-8.44a1.5 1.5 0 0 0-2.117 2.125l10.268 10.231a2.582 2.582 0 0 0 3.636 0l10.271-10.234a1.5 1.5 0 0 0 .004-2.122z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M120.509 31a1.5 1.5 0 0 1-1.492-1.5v-3.127c0-.124-.112-.373-.25-.373H42.233c-.138 0-.25.249-.25.373V29.5a1.492 1.492 0 1 1-2.983 0v-3.127a3.233 3.233 0 0 1 3.233-3.225h76.534A3.233 3.233 0 0 1 122 26.373V29.5a1.5 1.5 0 0 1-1.491 1.5z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M111.522 22a1.49 1.49 0 0 1-1.478-1.5v-2.263c0-.125-.562-.237-.7-.237H51.478c-.137 0-.522.112-.522.237V20.5a1.478 1.478 0 1 1-2.956 0v-2.263a3.219 3.219 0 0 1 3.2-3.227h58.6a3.219 3.219 0 0 1 3.2 3.227V20.5a1.489 1.489 0 0 1-1.478 1.5z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M110.48 61.311h-.018a9.207 9.207 0 1 1 .018-18.411h.02a9.207 9.207 0 1 1-.02 18.414zm-.014-2h.014a7.234 7.234 0 0 0 7.244-7.192 7.244 7.244 0 1 0-12.375 5.066 7.213 7.213 0 0 0 5.117 2.126z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M127.749 32.081h-94.5A3.243 3.243 0 0 0 30 35.308v59.466A3.242 3.242 0 0 0 33.251 98h41.486a1.5 1.5 0 0 0 0-3h-39.41l30.944-30.069a1.878 1.878 0 0 1 2.646.008L99.135 95H86.121a1.5 1.5 0 1 0 0 3h39.9a.91.91 0 0 0 1.158 0h.568A3.242 3.242 0 0 0 131 94.774V35.308a3.243 3.243 0 0 0-3.251-3.227zM91.085 84.172l8.606-8.972a2.629 2.629 0 0 1 3.566.006L122.989 95H101.97zM128 94.774a.24.24 0 0 1-.251.226h-1.936l-21.14-21.211a4.6 4.6 0 0 0-6.408 0l-8.6 8.968-19.336-19.234a3.879 3.879 0 0 0-5.459-.023L33 94.474V35.308c0-.125.113-.308.251-.308h94.5c.138 0 .251.183.251.308z"
})));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-firstmile-shared/src/components/DragAndDrop.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var DragAndDrop_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;
};
var DragAndDrop_metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};








const DragAndDrop_styles = __webpack_require__("xC07");
const DragAndDrop_sharedStyles = __webpack_require__("jHoJ");
let DragAndDrop_DragAndDrop = class DragAndDrop extends react["Component"] {
    constructor() {
        super(...arguments);
        this.isDragging = false;
        this.handleOpenButton = () => {
            this.props.logEvent(this.props.containerAnalytics.component, {
                ...this.props.containerAnalytics.eventData,
                subtype: 'cmd-o',
            }, 'click');
            this.context.host.launchOpenDocumentDialog();
        };
        this.handleDragStart = () => (this.isDragging = true);
        this.handleDragEnd = () => (this.isDragging = false);
        this.onKeyDown = evt => {
            const { constants } = this.context.utils;
            switch (evt.keyCode) {
                case constants.KEYS.ENTER:
                    evt.target.click();
                    break;
                case constants.KEYS.SPACE:
                    evt.target.click();
                    break;
                default:
                    // do nothing
                    break;
            }
        };
        /**
         * Function to parse subtext copy for embedded text and
         * wrap that text for the associated style and actions (CMD+O)
         * Assumes that there is only one captured area with a CMD+O action
         * @param  subtext   The subtext copy to display.
         **/
        this.wrapSubtextWithAction = (subtext) => {
            const myRex = /(\[([^)]+)\])/; // regex expression to find and capture text in brackets []
            const foundLink = myRex.exec(subtext);
            const brokenText = foundLink && subtext.split(foundLink[1]);
            if (!foundLink) {
                return subtext;
            }
            return (react["createElement"]("span", { className: DragAndDrop_styles.subText },
                brokenText && brokenText[0],
                react["createElement"]("span", { className: DragAndDrop_styles.select },
                    react["createElement"](Link_default.a, { tabIndex: 0, onClick: this.handleOpenButton, onKeyDown: this.onKeyDown }, foundLink && foundLink[2])),
                brokenText && brokenText[1]));
        };
        this.getIcon = (app) => {
            switch (app) {
                case 'PHXS':
                    return react["createElement"](S_Illu_DragNDropPs_160x120, null);
                case 'AEFT':
                    return react["createElement"](S_Illu_DragNDropAe_160x120, null);
                default:
                    return null;
            }
        };
    }
    render() {
        const { cardHeight, grow, headerText, descriptionText } = this.props;
        const { utils: { replaceAppData }, host, } = this.context;
        return (react["createElement"]("div", { "data-qe-id": "components-drag-and-drop", className: classnames_default()(DragAndDrop_styles.root, DragAndDrop_sharedStyles.root, DragAndDrop_sharedStyles[cardHeight], !!grow && DragAndDrop_sharedStyles.grow, DragAndDrop_styles.dashed, this.isDragging && DragAndDrop_styles.drag), onDragLeave: this.handleDragEnd, onDragOver: this.handleDragStart, onDrop: this.handleDragEnd },
            react["createElement"]("div", { className: DragAndDrop_styles.icon }, this.getIcon(host.id)),
            react["createElement"]("span", { className: DragAndDrop_styles.mainText }, replaceAppData(headerText)),
            descriptionText && (react["createElement"]("span", { className: DragAndDrop_styles.subText }, this.wrapSubtextWithAction(descriptionText)))));
    }
};
DragAndDrop_DragAndDrop.contextTypes = common_CommonStaticContext;
DragAndDrop_decorate([
    mobx_module["z" /* observable */],
    DragAndDrop_metadata("design:type", Object)
], DragAndDrop_DragAndDrop.prototype, "isDragging", void 0);
DragAndDrop_DragAndDrop = DragAndDrop_decorate([
    index_module["e" /* observer */]
], DragAndDrop_DragAndDrop);
/* harmony default export */ var components_DragAndDrop = (DragAndDrop_DragAndDrop);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Dropdown/index.js
var Dropdown = __webpack_require__("T1rY");
var Dropdown_default = /*#__PURE__*/__webpack_require__.n(Dropdown);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-firstmile-shared/src/components/NUJDropdown.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2020 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var NUJDropdown_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;
};






const NUJDropdown_styles = __webpack_require__("DtJT");

let NUJDropdown_NUJDropdown = class NUJDropdown extends react["Component"] {
    generateMenu(categories) {
        return categories.map(key => (react["createElement"](Menu["SubMenu"], { label: key.fields.categoryName, key: key.fields.categoryNameId }, key.fields.subCategory.map(subcat => (react["createElement"](Menu["MenuItem"], { role: "menuitem", value: { category: key, subcategory: subcat }, key: subcat.fields.subCategoryId }, subcat.fields.subCategoryName))))));
    }
    render() {
        const { handleClick, label, categories } = this.props;
        return categories ? (react["createElement"](Dropdown_default.a, { onSelect: item => {
                handleClick && handleClick(item);
            }, trigger: "click", closeOnSelect: true, tabIndex: -1 },
            react["createElement"](Button_default.a, { dropdownTrigger: true, quiet: true, variant: "action", tabIndex: 0, className: NUJDropdown_styles.dropdownButton },
                react["createElement"]("div", { className: NUJDropdown_styles.labelContainer },
                    react["createElement"]("span", { className: NUJDropdown_styles.labelText },
                        " ",
                        label,
                        " "),
                    react["createElement"](ChevronDown_default.a, { size: "S" }))),
            react["createElement"](Menu["Menu"], { dropdownMenu: true, tabIndex: 1 }, this.generateMenu(categories)))) : null;
    }
};
NUJDropdown_NUJDropdown.contextTypes = common_CommonStaticContext;
NUJDropdown_NUJDropdown = NUJDropdown_decorate([
    index_module["e" /* observer */]
], NUJDropdown_NUJDropdown);
/* harmony default export */ var components_NUJDropdown = (NUJDropdown_NUJDropdown);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Rule/index.js
var Rule = __webpack_require__("BUva");
var Rule_default = /*#__PURE__*/__webpack_require__.n(Rule);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-firstmile-shared/src/components/NUJTout.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2020 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var NUJTout_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;
};
var NUJTout_metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var NUJTout_a, NUJTout_b;






const NUJTout_styles = __webpack_require__("/063");
const NUJTout_layoutShared = __webpack_require__("jHoJ");
const NUJTout_sharedStyles = __webpack_require__("kMNh");




const NUJTout_SHARED_SETTING_TYPE = 'NUJTout';
let NUJTout_NUJTout = class NUJTout extends components_Tout {
    constructor() {
        super(...arguments);
        this.links = [];
        this.checked = [];
        this.checkedItemsToTrack = [];
        this.defaultSubcategory = null;
        this.defaultCategory = null;
        this.creativeEventData = {
            sophia: {},
            selected: {},
        };
    }
    openLink(data, id) {
        const { containerAnalytics, logEvent } = this.props;
        containerAnalytics.eventData = Object.assign(containerAnalytics.eventData, this.creativeEventData, data);
        containerAnalytics.eventData.id = id;
        containerAnalytics.eventData.value = this.isLinkChecked(id);
        this.context.utils.CallToActionHandler.handleCallToAction(data, containerAnalytics, logEvent, this);
    }
    getUserIntent() {
        const errorInfo = {};
        let category;
        try {
            // The data currently maps photoshop as PHSP which is different then the product code from Host App.
            // Just do a quick mapping to get the right value from the content.
            const appId = this.context.host.id === 'PHXS' ? 'PHSP' : this.context.host.id;
            // Query for user intent container from sophia payload
            const userIntentContainer = this.context.utils.sophia.getUserIntentContent(this.context.utils.constants.SURFACES.HOME);
            console.log(`User intent container: ${JSON.stringify(userIntentContainer)}`);
            errorInfo.userIntentContainer = JSON.stringify(userIntentContainer);
            // Setting this first as it won't cause the function to error
            try {
                this.creativeEventData.sophia.aptitude = userIntentContainer.apps[appId].appAptitude
                    ? userIntentContainer.apps[appId].appAptitude.name
                    : 'Unspecified';
            }
            catch (e) {
                console.log('Unable to retrieve user aptitude');
                console.log(e);
            }
            // Extract category and subcategory objects from the nested arrays
            category = userIntentContainer.apps[appId].creativeCategories[0];
            this.creativeEventData.sophia.category = category.name;
            console.log(`User Category: ${JSON.stringify(category)}`);
            errorInfo.userCategory = JSON.stringify(category);
            const subCategory = category.subcategories[0];
            this.creativeEventData.sophia.subCategory = subCategory.name;
            console.log(`User Subcategory: ${JSON.stringify(subCategory)}`);
            errorInfo.userSubcategory = JSON.stringify(subCategory);
            // This is a string identifying the subcategory
            this.setDropdownSelection(this.context.store.nujDropdownSelection || subCategory.name, category && category.name);
        }
        catch (e) {
            console.log('Unable to get user intent.');
            console.log(e);
            // If we error setting the userIntentContainer, category, or subCategory information we still need to try
            // and maintain the session state from a previous selection during this app session.
            if (this.context.store.nujDropdownSelection) {
                console.log('Using stored session value for NUJ selection.');
                // Setting subcategory for stored session recall.
                // Storing the category here is not necessary since we have the specific subcategory selection,
                // but for completeness sake we set it.
                this.setDropdownSelection(this.context.store.nujDropdownSelection, category && category.name);
            }
            else {
                console.log(`Defaulting to first value presented with category: ${category && category.name}`);
                // Set nothing for the subcategory but set the category to set up the right set of tasks.
                // This would be used in the case that there is a creativeCaegory in the UIS payload container,
                // but NOT a subcategory that has been selected  yet. The behavior is to at least show the user the
                // first item in the proper category if we do not have a specific subcategory.
                this.setDropdownSelection(null, category && category.name);
            }
        }
    }
    logDropdownChangeEvents(subCategory) {
        // dropdown render + checklist item render
        const { containerAnalytics } = this.props;
        const tutorials = subCategory.fields.tutorialCta;
        this.context.utils.analytics.logRenderedEvent('nujDropdownChange', {
            ...containerAnalytics.eventData,
            ...this.creativeEventData,
            fieldData: subCategory,
            tuts: tutorials,
        });
        tutorials.map(tut => {
            this.context.utils.analytics.logRenderedEvent('nujChecklistItem', {
                ...containerAnalytics.eventData,
                ...this.creativeEventData,
                subtype: tut.fields.ctaLog,
                contentId: tut.sys.id,
                contentName: tut.fields.primaryText,
                contentType: tut.fields.ctaEvent || tut.fields.ctaAction,
                ctaURL: tut.fields.ctaURL,
                value: this.isLinkChecked(tut.sys.id),
            });
        });
    }
    logUserSignalsEvents() {
        const { logMiscellaneousEvent } = this.context.utils.analytics;
        ['render', 'click'].map(eventType => {
            ['category', 'subCategory'].map(value => {
                logMiscellaneousEvent('nuj-user-signals', {
                    ...this.props.containerAnalytics.eventData,
                    type: eventType,
                    selectedCreativeValue: this.creativeEventData.selected[value],
                    value: value,
                    id: this.context.host.id,
                });
            });
        });
    }
    findValue(item) {
        const { nujTutorial } = this.props;
        let subcategory = this.defaultSubcategory;
        let category;
        /* This will either be the UIS provided category or the first category the data has. */
        const categoryContent = nujTutorial.find(i => {
            return i.fields.categoryNameId === this.defaultCategory;
        }) || nujTutorial[0];
        /*
            Order of logic for UIS and contentful syncing
            1. Use UIS provided category/subcategory and show respective data.
            2. If we have no UIS category and proper data, show the first subcategory/category
            3. If we have a UIS category but no subcategory OR missing subcategory, ie not present in content,
                show the first subcategory in that category.
            4. If we have cannont find any category/subcategory that matches UIS, we try and show the first present
                category/subcategory.
            5. If all this fails we must fallback as we cannont reconcile the content values.

            NOTE: The major assumption we make with NUJ content is that the first category/subcategory is going to
                    be proper/correct that it is usable. Otherwise the one we fallback to will not function and we will
                    end up putting the user in the fallback state (default) and not showing dynamic content.
        */
        if (!subcategory) {
            // If we have no provided subcategory try and use the provided category
            // Default to the first category that we have in the content.
            console.log(`No subcategory found. Attempting to match the category provided: ${this.defaultCategory}`);
            category = categoryContent;
            // In this case we now take the first subcategory in the category that we are going to use.
            subcategory = category.fields.subCategory[0].fields.subCategoryId;
        }
        else {
            // Find the category content from the full payload
            // We did have a subcategory provided so we try and find the corresponding tutorials.
            category = item
                ? item.category
                : nujTutorial.find(tut => {
                    return tut.fields.subCategory.find(tut2 => {
                        return tut2.fields.subCategoryId === subcategory;
                    });
                }) || categoryContent;
        }
        /* extract selected subcategory from category content */
        const subCategory = item
            ? item.subcategory
            : category.fields.subCategory.find(sc => {
                return sc.fields.subCategoryId === subcategory;
            }) || category.fields.subCategory[0];
        this.links = subCategory.fields.tutorialCta; // cta links for selected subcategory
        this.image = subCategory.fields.sideImage; // side image for banner of selected subcategory
        this.label = subCategory.fields.subCategoryName; // subcategory name for dropdown display selection
        //setting analytics props and logging dropdown analytics
        this.creativeEventData.selected.category = category.fields.categoryNameId;
        this.creativeEventData.selected.subCategory = subCategory.fields.subCategoryId;
        this.logDropdownChangeEvents(subCategory);
        this.logUserSignalsEvents();
        this.setDropdownSelection(subCategory.fields.subCategoryId, category.fields.categoryNameId);
        console.log(`Showing the user Category: ${category.fields.categoryNameId} and SubCategory: ${subCategory.fields.subCategoryId}`);
    }
    setDropdownSelection(subcategory, category) {
        this.context.store.setNujDropdownForSession(subcategory);
        this.defaultSubcategory = subcategory;
        this.defaultCategory = category;
    }
    componentDidMount() {
        /*
         * Initialize the values for the banner image/dropdown/links
         * TODO: Make a call to shared settings to get checked links
         * TODO: Hook up default selection from content payload
         */
        this.getUserIntent();
        this.findValue();
    }
    checkLink(id) {
        this.checkedItemsToTrack.push(id);
        this.checked = this.checkedItemsToTrack;
        if (!this.context.utils.SharedSettings.get(NUJTout_SHARED_SETTING_TYPE, id)) {
            this.context.utils.SharedSettings.set(NUJTout_SHARED_SETTING_TYPE, id, true);
        }
    }
    isLinkChecked(id) {
        return ((this.checked && this.checked.includes(id)) ||
            this.context.utils.SharedSettings.get(NUJTout_SHARED_SETTING_TYPE, id) === true);
    }
    createDownloadCallbacks(fields, id) {
        const { constants } = this.context.utils;
        if (fields && fields.ctaEvent && fields.ctaEvent === constants.CTA_EVENTS.DOWNLOAD_FILE) {
            const { logErrorEvent } = this.context.utils.analytics;
            if (fields.ctaData) {
                fields.ctaData.downloading = () => {
                    this.loadingId = id;
                    console.log('Downloading requested file');
                };
                fields.ctaData.error = () => {
                    this.loadingId = '';
                    console.log('An error occured while downloading the requested file');
                    let index = this.checkedItemsToTrack.indexOf(id);
                    if (index >= 1) {
                        this.checkedItemsToTrack.splice(index, 1);
                        this.checked = this.checkedItemsToTrack;
                        this.context.utils.SharedSettings.set(NUJTout_SHARED_SETTING_TYPE, id, false);
                    }
                    logErrorEvent('nujToutDownload', {
                        ...this.props.containerAnalytics.eventData,
                        ...this.creativeEventData,
                        ctaEvent: fields ? fields.ctaEvent : null,
                        ctaAction: fields ? fields.ctaAction : null,
                        ctaData: fields ? fields.ctaData : null,
                        ctaURL: fields ? fields.ctaURL : null,
                        subtype: fields ? fields.ctaLog : null,
                        error: {
                            desc: `An error occured while downloading the requested file`,
                            type: 'File Download',
                        },
                    });
                };
                fields.ctaData.downloaded = () => {
                    this.loadingId = '';
                    console.log('Requested file successfully downloaded');
                };
            }
        }
        else {
            return true;
        }
    }
    renderSideImage() {
        if (this.image) {
            let sideImageAnchor = 'center';
            const sideImageBackgroundStyles = this.image && this.getBackgroundStylesForImage(this.image._path, sideImageAnchor);
            return (react["createElement"]("div", { className: classnames_default()(NUJTout_layoutShared.flexCenterCenter, NUJTout_styles.sideImage), style: sideImageBackgroundStyles }));
        }
    }
    getBackgroundStylesForImage(assetObject, horizontalAnchor = 'center') {
        return (assetObject && {
            backgroundImage: `url("${this.context.utils.sophia.getFullAssetPath(assetObject)}")`,
            backgroundPosition: `center ${horizontalAnchor}`,
        });
    }
    renderContent() {
        const { utils: { replaceAppData }, } = this.context;
        const { headerText, nujTutorial, logEvent, containerAnalytics } = this.props;
        return (react["createElement"]("div", { className: classnames_default()(NUJTout_styles.nujTextContainer, NUJTout_styles.textContainer) },
            react["createElement"]("div", { className: NUJTout_styles.mainTextArea },
                react["createElement"](Heading_default.a, { className: NUJTout_styles.heading, variant: "subtitle1" }, replaceAppData(headerText)),
                react["createElement"]("div", { className: classnames_default()(NUJTout_styles.dropDownContainer, NUJTout_sharedStyles.focus) }, nujTutorial && (react["createElement"]("div", null,
                    react["createElement"](components_NUJDropdown, { categories: nujTutorial, label: this.label, handleClick: item => {
                            this.findValue(item);
                        } }),
                    react["createElement"](Rule_default.a, { variant: "small" })))),
                react["createElement"]("div", { className: NUJTout_styles.bodyTextContent }, this.links && (react["createElement"](SelectableLink_NavigableLink, { logEvent: logEvent, containerAnalytics: containerAnalytics, links: this.links, checklist: true, loadingId: this.loadingId, checked: this.checked, handleSelect: (fields, id) => {
                        this.checkLink(id);
                        this.createDownloadCallbacks(fields, id);
                        this.openLink(fields, id);
                    } }))))));
    }
};
NUJTout_NUJTout.contextTypes = common_CommonStaticContext;
NUJTout_decorate([
    mobx_module["z" /* observable */],
    NUJTout_metadata("design:type", typeof (NUJTout_a = typeof Array !== "undefined" && Array) === "function" ? NUJTout_a : Object)
], NUJTout_NUJTout.prototype, "links", void 0);
NUJTout_decorate([
    mobx_module["z" /* observable */],
    NUJTout_metadata("design:type", String)
], NUJTout_NUJTout.prototype, "label", void 0);
NUJTout_decorate([
    mobx_module["z" /* observable */],
    NUJTout_metadata("design:type", Object)
], NUJTout_NUJTout.prototype, "checked", void 0);
NUJTout_decorate([
    mobx_module["z" /* observable */],
    NUJTout_metadata("design:type", typeof (NUJTout_b = typeof /* Cannot get final name for export "CommonImageType" in "./node_modules/@ccx/ccx-firstmile-shared/src/components/common/index.ts" (known exports: getButtonVariant CommonStaticContext UISRecommendationAPI, known reexports: ) */ undefined !== "undefined" && /* Cannot get final name for export "CommonImageType" in "./node_modules/@ccx/ccx-firstmile-shared/src/components/common/index.ts" (known exports: getButtonVariant CommonStaticContext UISRecommendationAPI, known reexports: ) */ undefined) === "function" ? NUJTout_b : Object)
], NUJTout_NUJTout.prototype, "image", void 0);
NUJTout_decorate([
    mobx_module["z" /* observable */],
    NUJTout_metadata("design:type", String)
], NUJTout_NUJTout.prototype, "loadingId", void 0);
NUJTout_NUJTout = NUJTout_decorate([
    index_module["e" /* observer */]
], NUJTout_NUJTout);
/* harmony default export */ var components_NUJTout = (NUJTout_NUJTout);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-firstmile-shared/src/components/PresetsDropdown.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var PresetsDropdown_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;
};
var PresetsDropdown_metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};







const PresetsDropdown_styles = __webpack_require__("WMci");
const PresetsDropdown_sharedStyles = __webpack_require__("jHoJ");
const INLINE_CUSTOM_TYPE = 'Custom (Inline)';
const isInlineCustom = presetData => presetData.presetType === INLINE_CUSTOM_TYPE;
let PresetsDropdown_PresetsDropdown = class PresetsDropdown extends react["Component"] {
    constructor() {
        super(...arguments);
        this.customWidth = '';
        this.customHeight = '';
        this.handleClick = presetData => {
            const { ctaData, ctaLog } = presetData;
            const { logEvent, containerAnalytics } = this.props;
            logEvent(containerAnalytics.component, {
                ...containerAnalytics.eventData,
                presetID: ctaData.id,
                presetName: ctaLog,
                presetType: presetData.presetType,
                subtype: 'cmd-n',
            }, 'click');
            const preset = isInlineCustom(presetData)
                ? {
                    ...presetData,
                    ctaData: {
                        ...presetData.ctaData,
                        width: Number(this.customWidth),
                        height: Number(this.customHeight),
                    },
                }
                : presetData;
            this.context.utils.CallToActionHandler.handleAppEvent(preset);
        };
    }
    componentDidMount() {
        var _a;
        const { containerAnalytics, logEvent } = this.props;
        (_a = this.context.host.presetData) === null || _a === void 0 ? void 0 : _a.forEach(preset => {
            logEvent(containerAnalytics.component, {
                ...containerAnalytics.eventData,
                presetID: preset.ctaData ? preset.ctaData.id : null,
                presetName: preset.ctaLog,
                presetType: preset.presetType,
            }, 'render');
        });
    }
    render() {
        var _a;
        const { cardHeight = 'short', grow, headerText } = this.props;
        return (react["createElement"]("div", { "data-qe-id": "components-presets", id: "components-presets", className: classnames_default()(PresetsDropdown_sharedStyles.root, PresetsDropdown_sharedStyles.flexCenterCenter, PresetsDropdown_sharedStyles.accessibility, PresetsDropdown_sharedStyles[cardHeight || 'short'], grow && PresetsDropdown_sharedStyles.grow, PresetsDropdown_styles.root, PresetsDropdown_styles[cardHeight || 'default']) },
            headerText && react["createElement"]("div", { className: PresetsDropdown_styles.header }, headerText),
            react["createElement"]("div", { className: classnames_default()(PresetsDropdown_sharedStyles.flexCenterCenter, PresetsDropdown_styles.presetRow) }, (_a = this.context.host.presetData) === null || _a === void 0 ? void 0 : _a.map((preset, i) => {
                return (react["createElement"]("div", { key: i, className: PresetsDropdown_styles.presetContainer, tabIndex: 0, onKeyDown: e => e && e.keyCode === pieces_constants.KEYS.ENTER && this.handleClick(preset), onClick: () => this.handleClick(preset) },
                    react["createElement"]("div", { className: classnames_default()(PresetsDropdown_sharedStyles.flexCenterCenter, PresetsDropdown_styles.imageContainer) }, preset.image),
                    react["createElement"]("div", { onKeyDown: e => e && e.stopPropagation(), className: PresetsDropdown_styles.dropdown },
                        react["createElement"]("div", { className: PresetsDropdown_styles.presetName }, this.context.intl.formatMessage({
                            id: preset.name,
                        }))),
                    preset.description && (react["createElement"]("div", { className: PresetsDropdown_styles.description }, this.context.intl.formatMessage({
                        id: preset.description,
                    }))),
                    isInlineCustom(preset) && (react["createElement"]("div", { onClick: e => e.stopPropagation(), className: PresetsDropdown_styles.customPreset },
                        react["createElement"]("div", { className: PresetsDropdown_styles.customInputGroup },
                            "W",
                            react["createElement"](Textfield_default.a, { onClick: e => e.stopPropagation(), value: this.customWidth, onChange: val => !isNaN(val) && (this.customWidth = val), className: PresetsDropdown_styles.customInput, quiet: true })),
                        react["createElement"]("div", { className: PresetsDropdown_styles.customInputGroup },
                            "H",
                            react["createElement"](Textfield_default.a, { onClick: e => e.stopPropagation(), value: this.customHeight, onChange: val => !isNaN(val) && (this.customHeight = val), className: PresetsDropdown_styles.customInput, quiet: true }))))));
            }))));
    }
};
PresetsDropdown_PresetsDropdown.contextTypes = common_CommonStaticContext;
PresetsDropdown_decorate([
    mobx_module["z" /* observable */],
    PresetsDropdown_metadata("design:type", Object)
], PresetsDropdown_PresetsDropdown.prototype, "customWidth", void 0);
PresetsDropdown_decorate([
    mobx_module["z" /* observable */],
    PresetsDropdown_metadata("design:type", Object)
], PresetsDropdown_PresetsDropdown.prototype, "customHeight", void 0);
PresetsDropdown_PresetsDropdown = PresetsDropdown_decorate([
    index_module["e" /* observer */]
], PresetsDropdown_PresetsDropdown);
/* harmony default export */ var components_PresetsDropdown = (PresetsDropdown_PresetsDropdown);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-firstmile-shared/src/utils.ts
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
// Safe deep-get
const utils_objectGet = (obj, key, fallback = undefined) => {
    return key.split('.').reduce((level, key) => (level ? level[key] : undefined), obj) || fallback;
};
// Replace non-alphanumeric characters
function alphaNumReplace(word, subChar) {
    return word.replace(/[^A-Z0-9]+/gi, subChar);
}

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-firstmile-shared/src/components/StickyPresetsDropdown.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var StickyPresetsDropdown_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;
};
var StickyPresetsDropdown_metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};










const StickyPresetsDropdown_styles = __webpack_require__("aiJO");
const StickyPresetsDropdown_sharedStyles = __webpack_require__("jHoJ");
const StickyPresetsDropdown_INLINE_CUSTOM_TYPE = 'Custom (Inline)';
const StickyPresetsDropdown_SHARED_SETTING_TYPE = 'stickyPresetsDropdown';
var CustomSizeParamsKey;
(function (CustomSizeParamsKey) {
    CustomSizeParamsKey["WIDTH"] = "CustomWidth";
    CustomSizeParamsKey["HEIGHT"] = "CustomHeight";
})(CustomSizeParamsKey || (CustomSizeParamsKey = {}));
// note that shared setting keys will have multiple types (PresetType)
const StickyPresetsDropdown_isInlineCustom = presetData => presetData.presetType === StickyPresetsDropdown_INLINE_CUSTOM_TYPE;
let StickyPresetsDropdown_StickyPresetsDropdown = class StickyPresetsDropdown extends react["Component"] {
    constructor() {
        super(...arguments);
        this.stickyPresetsDefaults = new mobx_module["d" /* ObservableMap */]();
        this.customWidth = '';
        this.customHeight = '';
        /**
         * Handles click event on the preset item.
         */
        this.handleClick = presetData => {
            const { ctaData, ctaLog } = presetData;
            const { logEvent, containerAnalytics } = this.props;
            logEvent(containerAnalytics.component, {
                ...containerAnalytics.eventData,
                presetID: ctaData.id,
                presetName: ctaLog,
                presetType: presetData.presetType,
                subtype: 'cmd-n',
                customSize: StickyPresetsDropdown_isInlineCustom(presetData) && this.customHeight && this.customWidth
                    ? `${this.customWidth} × ${this.customHeight}`
                    : null,
            }, 'click');
            const preset = StickyPresetsDropdown_isInlineCustom(presetData)
                ? {
                    ...presetData,
                    ctaData: {
                        ...presetData.ctaData,
                        width: Number(this.customWidth),
                        height: Number(this.customHeight),
                    },
                }
                : presetData;
            // Update the shared settings with user input custom parameters
            if (StickyPresetsDropdown_isInlineCustom(presetData)) {
                const sharedSettings = this.context.utils.SharedSettings;
                sharedSettings.set(StickyPresetsDropdown_SHARED_SETTING_TYPE, CustomSizeParamsKey.WIDTH, this.customWidth);
                sharedSettings.set(StickyPresetsDropdown_SHARED_SETTING_TYPE, CustomSizeParamsKey.HEIGHT, this.customHeight);
            }
            this.context.utils.CallToActionHandler.handleAppEvent(preset);
        };
    }
    elementIDFromPresetType(presetType) {
        if (presetType && typeof presetType === 'string') {
            return presetType.replace(/[^A-Z0-9]/gi, ''); // Use only alphanumerics
        }
        return '';
    }
    /**
     * Attempts to render the SVG image based on the image name.
     */
    renderImage(imageData, presetType) {
        const elementID = this.elementIDFromPresetType(presetType);
        return react["createElement"]("img", { id: elementID, src: this.context.utils.sophia.getFullAssetPath(imageData) });
    }
    setStickyPreset(presetData) {
        const sharedKey = alphaNumReplace(presetData.presetType, '_');
        this.context.utils.SharedSettings.set(StickyPresetsDropdown_SHARED_SETTING_TYPE, sharedKey, presetData.name);
        this.stickyPresetsDefaults.set(sharedKey, presetData.name);
    }
    // Checks storage for preset key
    checkForStickyPreset(presetType) {
        // check if the collated type preset array does not require a dropdown
        // ex: More Presets only has 1 preset in its collated array
        if (presetType.length < 2) {
            return;
        }
        const SharedSettings = this.context.utils.SharedSettings;
        const sharedKey = alphaNumReplace(presetType[0].presetType, '_');
        const stickyPresetName = this.stickyPresetsDefaults.get(sharedKey) || SharedSettings.get(StickyPresetsDropdown_SHARED_SETTING_TYPE, sharedKey);
        return presetType.find(preset => preset.name === stickyPresetName);
    }
    getDescription(preset) {
        const regExDescription = /[0-9]* . [0-9]*/;
        const presetDimensions = description => regExDescription.exec(description);
        if (preset.ctaData.width && preset.ctaData.height) {
            return `${preset.name} (${preset.ctaData.width} × ${preset.ctaData.height})`;
        }
        let x = presetDimensions(preset.description);
        return x ? `${preset.name} (${x})` : `${preset.name}`;
    }
    // Check if item should have a dropdown
    createDropdown(presetsByType) {
        const hasDropdowns = presetsByType.length > 1;
        let stickyPreset = this.checkForStickyPreset(presetsByType);
        stickyPreset = stickyPreset || presetsByType[0];
        return hasDropdowns ? (react["createElement"](Select_default.a, { flexible: true, quiet: true, onChange: selected => {
                this.handleClick(selected);
                this.setStickyPreset(selected);
            }, onClick: e => e && e.stopPropagation(), options: presetsByType.map(preset => ({
                label: this.getDescription(preset),
                value: preset,
            })), value: stickyPreset, className: StickyPresetsDropdown_styles.presetDropdown })) : (react["createElement"]("div", { className: StickyPresetsDropdown_styles.presetName }, presetsByType[0].name)
        // If it doesn't have dropdowns, it doesn't require a sticky preset
        );
    }
    componentDidMount() {
        // Fetch the custom parameters from shared settings and update
        const sharedSettings = this.context.utils.SharedSettings;
        const updateCustomParams = Object(mobx_module["j" /* action */])(() => {
            this.customWidth = sharedSettings.get(StickyPresetsDropdown_SHARED_SETTING_TYPE, CustomSizeParamsKey.WIDTH) || '';
            this.customHeight = sharedSettings.get(StickyPresetsDropdown_SHARED_SETTING_TYPE, CustomSizeParamsKey.HEIGHT) || '';
        });
        updateCustomParams();
        this.scrubbedPresets.forEach(preset => {
            const { ctaData, ctaLog, presetType } = preset[0]; //default preset
            this.props.logEvent(this.props.containerAnalytics.component, {
                ...this.props.containerAnalytics.eventData,
                presetID: ctaData ? ctaData.id : null,
                presetName: ctaLog,
                presetType: presetType,
            }, 'render');
        });
    }
    get scrubbedPresets() {
        const scrubbedPresets = this.props.presets
            .filter(preset => {
            const dataIsValid = utils_objectGet(preset, 'presetType') && utils_objectGet(preset, 'image._publishUrl', false);
            if (!dataIsValid) {
                this.context.utils.analytics.logErrorEvent('presets-data-invalid', {
                    ...this.props.containerAnalytics.eventData,
                    error: {
                        desc: `Missing data field from Sophia: ${JSON.stringify(preset)}`,
                        type: `Invalid Data`,
                    },
                });
                console.warn(`Missing data field from Sophia: ${JSON.stringify(preset)}`);
            }
            return dataIsValid;
        })
            .reduce((scrubbed, preset) => {
            const presetType = preset.presetType;
            const typeArray = scrubbed[presetType] || [];
            return {
                ...scrubbed,
                [presetType]: [...typeArray, preset],
            };
        }, {});
        // turn keyed object into multidimensional array
        return Object.keys(scrubbedPresets).map(key => scrubbedPresets[key]);
    }
    render() {
        const { cardHeight = 'short', grow, headerText } = this.props;
        const rootStyles = {
            textAlign: 'center',
        };
        return (react["createElement"]("div", { "data-qe-id": "components-presets", id: "components-presets", className: classnames_default()(StickyPresetsDropdown_sharedStyles.root, StickyPresetsDropdown_sharedStyles.flexCenterCenter, StickyPresetsDropdown_sharedStyles.accessibility, StickyPresetsDropdown_sharedStyles[cardHeight || 'short'], grow && StickyPresetsDropdown_sharedStyles.grow, StickyPresetsDropdown_styles.root, StickyPresetsDropdown_styles[cardHeight || 'default']), style: rootStyles },
            headerText && react["createElement"]("div", { className: StickyPresetsDropdown_styles.header }, headerText),
            react["createElement"]("div", { className: classnames_default()(StickyPresetsDropdown_sharedStyles.flexCenterCenter, StickyPresetsDropdown_styles.presetRow) }, this.scrubbedPresets.map((preset, index) => {
                // pop off the top of the collated array (collated by preset type). This is the default.
                // Then, within the dropdown, map all presets.
                const defaultPreset = this.checkForStickyPreset(preset) || preset[0];
                const { image, description, presetType } = defaultPreset;
                const imageData = image;
                return (react["createElement"]("div", { key: index, id: this.elementIDFromPresetType(presetType) + '-Container', className: StickyPresetsDropdown_styles.presetContainer, tabIndex: 0, onKeyDown: e => e && e.keyCode === pieces_constants.KEYS.ENTER && this.handleClick(defaultPreset), onClick: () => this.handleClick(defaultPreset) },
                    react["createElement"]("div", { className: classnames_default()(StickyPresetsDropdown_sharedStyles.flexCenterCenter, StickyPresetsDropdown_styles.imageContainer) }, this.renderImage(imageData, presetType)),
                    react["createElement"]("div", { onKeyDown: e => e && e.stopPropagation(), className: StickyPresetsDropdown_styles.dropdown }, this.createDropdown(preset)),
                    description && react["createElement"]("div", { className: StickyPresetsDropdown_styles.description }, description),
                    StickyPresetsDropdown_isInlineCustom(defaultPreset) && (react["createElement"]("div", { onClick: e => e.stopPropagation(), className: StickyPresetsDropdown_styles.customPreset },
                        react["createElement"]("div", { className: StickyPresetsDropdown_styles.customInputGroup },
                            react["createElement"](index_es["c" /* FormattedMessage */], { id: "preset_description_custom_width" }),
                            react["createElement"](Textfield_default.a, { id: "CustomPreset-Width", onClick: e => e.stopPropagation(), value: this.customWidth, onChange: val => !isNaN(val) && (this.customWidth = val), className: StickyPresetsDropdown_styles.customInput, quiet: true })),
                        react["createElement"]("div", { className: StickyPresetsDropdown_styles.customInputGroup },
                            react["createElement"](index_es["c" /* FormattedMessage */], { id: "preset_description_custom_height" }),
                            react["createElement"](Textfield_default.a, { id: "CustomPreset-Height", onClick: e => e.stopPropagation(), value: this.customHeight, onChange: val => !isNaN(val) && (this.customHeight = val), className: StickyPresetsDropdown_styles.customInput, quiet: true }))))));
            }))));
    }
};
StickyPresetsDropdown_StickyPresetsDropdown.contextTypes = common_CommonStaticContext;
StickyPresetsDropdown_StickyPresetsDropdown.defaultProps = {
    presets: [],
    textPosition: 'centerMiddle',
};
StickyPresetsDropdown_decorate([
    mobx_module["z" /* observable */],
    StickyPresetsDropdown_metadata("design:type", Object)
], StickyPresetsDropdown_StickyPresetsDropdown.prototype, "stickyPresetsDefaults", void 0);
StickyPresetsDropdown_decorate([
    mobx_module["z" /* observable */],
    StickyPresetsDropdown_metadata("design:type", Object)
], StickyPresetsDropdown_StickyPresetsDropdown.prototype, "customWidth", void 0);
StickyPresetsDropdown_decorate([
    mobx_module["z" /* observable */],
    StickyPresetsDropdown_metadata("design:type", Object)
], StickyPresetsDropdown_StickyPresetsDropdown.prototype, "customHeight", void 0);
StickyPresetsDropdown_StickyPresetsDropdown = StickyPresetsDropdown_decorate([
    index_module["e" /* observer */]
], StickyPresetsDropdown_StickyPresetsDropdown);
/* harmony default export */ var components_StickyPresetsDropdown = (StickyPresetsDropdown_StickyPresetsDropdown);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-firstmile-shared/src/assets/closeButtonSurvey.svg
function closeButtonSurvey_extends() {
  closeButtonSurvey_extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return closeButtonSurvey_extends.apply(this, arguments);
}


/* harmony default export */ var closeButtonSurvey = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", closeButtonSurvey_extends({
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 21 21"
}, props), /*#__PURE__*/react_default.a.createElement("g", {
  "data-name": "Close btn",
  transform: "translate(-1608 -271)"
}, /*#__PURE__*/react_default.a.createElement("circle", {
  fill: "#b6b6b6",
  "data-name": "Close button back cirle",
  className: styles["cls-1"] || "cls-1",
  cx: "10.5",
  cy: "10.5",
  r: "10.5",
  transform: "translate(1608 271)"
}), /*#__PURE__*/react_default.a.createElement("path", {
  strokeWidth: "2",
  stroke: "rgba(255,255,255, 0.8)",
  "data-name": "Union 146",
  className: styles["cls-2"] || "cls-2",
  d: "M1618.5 281.5l-4 4 4-4-4-4 4 4 4-4-4 4 4 4z"
}))));
// CONCATENATED MODULE: ./node_modules/@ccx/ccx-firstmile-shared/src/components/Survey.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var Survey_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;
};
var Survey_metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};





const Survey_styles = __webpack_require__("EwGi");



const Survey_sharedStyles = __webpack_require__("jHoJ");


const Survey_SHARED_SETTING_TYPE = 'survey';
let Survey_Survey = class Survey extends react["Component"] {
    constructor() {
        super(...arguments);
        this.inputLength = 0;
        this.showToast = false;
        this.focused = false;
        this.shouldHideSurvey = this.context.utils.SharedSettings.get(Survey_SHARED_SETTING_TYPE, this.props.sys.id);
    }
    onSubmit() {
        this.sendAnalytics('submit');
        this.context.utils.SharedSettings.set(Survey_SHARED_SETTING_TYPE, this.props.sys.id, true);
        this.showToast = true;
        this.shouldHideSurvey = true;
        this.timeoutId = setTimeout(() => {
            this.showToast = false;
        }, 5000);
    }
    onClose() {
        this.sendAnalytics('close');
        this.context.utils.SharedSettings.set(Survey_SHARED_SETTING_TYPE, this.props.sys.id, true);
        this.shouldHideSurvey = true;
    }
    sendAnalytics(event) {
        const { containerAnalytics, logEvent } = this.props;
        if (logEvent && containerAnalytics) {
            logEvent(containerAnalytics.component, {
                ...containerAnalytics.eventData,
                value: this.input,
                count: this.inputLength,
                app: this.context.host.id,
                question: this.props.headerText,
                subtype: event,
            }, 'click');
        }
    }
    componentWillUnmount() {
        clearTimeout(this.timeoutId);
    }
    render() {
        const { utils: { replaceAppData }, } = this.context;
        const { headerText, subheaderText, placeholderText, ctaSubmit, successText } = this.props;
        return (react["createElement"](react["Fragment"], null,
            !this.shouldHideSurvey && (react["createElement"]("div", { className: Survey_styles.survey, "data-qe-id": "survey-component" },
                react["createElement"]("div", { className: Survey_styles.top },
                    react["createElement"]("div", { "data-qe-id": "survey-header-text", className: Survey_styles.leftHeader },
                        react["createElement"]("div", { className: Survey_styles.header }, replaceAppData(headerText))),
                    react["createElement"]("div", { className: Survey_styles.rightHeader },
                        react["createElement"](Button_default.a, { "data-qe-id": "survey-close", className: Survey_styles.closeButton, variant: "action", quiet: true, icon: react["createElement"](Icon_default.a, null,
                                react["createElement"](closeButtonSurvey, null)), onClick: () => this.onClose() }))),
                react["createElement"]("div", { className: Survey_styles.textGroup },
                    react["createElement"](Textfield_default.a, { "data-qe-id": "survey-input", 
                        //  This is a workaround to handle the input and overlay overlap issues in Ps and Ai
                        //  https://wiki.corp.adobe.com/pages/viewpage.action?spaceKey=UXP&title=Proposal+for+overlapping+textedit+and+overlays
                        //  https://wiki.corp.adobe.com/display/UXP/PS+UXP+Overlay+Issues
                        disableOnOverlay: true, placeholder: placeholderText, style: {
                            backgroundColor: 'rgb(255,255,255)',
                            width: '100%',
                            borderColor: 'rgb(225,225,225)',
                        }, className: classnames_default()(Survey_styles.textField, {
                            [Survey_styles.userInput]: this.inputLength,
                            [Survey_styles.focused]: this.focused,
                        }), onChange: e => {
                            this.inputLength = e.length;
                            this.input = e;
                        }, onFocus: () => (this.focused = true), onBlur: () => (this.focused = false) }),
                    react["createElement"]("div", { className: Survey_styles.bottomRow },
                        react["createElement"](Button_default.a, { "data-qe-id": "survey-submit", quiet: true, disabled: !this.inputLength, className: classnames_default()(Survey_sharedStyles.secondaryCTAOverrides, {
                                [Survey_styles.disabled]: !this.inputLength,
                            }), onClick: () => this.onSubmit() },
                            react["createElement"]("span", null, ctaSubmit.fields.cta)),
                        react["createElement"]("div", { className: Survey_styles.subheaderText }, replaceAppData(subheaderText)))))),
            this.showToast && (react["createElement"](Toast["Toast"], { "data-qe-id": "survey-success-toast", variant: "success", closable: true, onClose: () => (this.showToast = false), className: Survey_styles.toast },
                react["createElement"]("span", null, replaceAppData(successText))))));
    }
};
Survey_Survey.contextTypes = common_CommonStaticContext;
Survey_decorate([
    mobx_module["z" /* observable */],
    Survey_metadata("design:type", Object)
], Survey_Survey.prototype, "inputLength", void 0);
Survey_decorate([
    mobx_module["z" /* observable */],
    Survey_metadata("design:type", Object)
], Survey_Survey.prototype, "showToast", void 0);
Survey_decorate([
    mobx_module["z" /* observable */],
    Survey_metadata("design:type", Object)
], Survey_Survey.prototype, "focused", void 0);
Survey_decorate([
    mobx_module["z" /* observable */],
    Survey_metadata("design:type", Object)
], Survey_Survey.prototype, "shouldHideSurvey", void 0);
Survey_decorate([
    mobx_module["z" /* observable */],
    Survey_metadata("design:type", Object)
], Survey_Survey.prototype, "input", void 0);
Survey_decorate([
    mobx_module["z" /* observable */],
    Survey_metadata("design:type", Object)
], Survey_Survey.prototype, "timeoutId", void 0);
Survey_Survey = Survey_decorate([
    index_module["e" /* observer */]
], Survey_Survey);
/* harmony default export */ var components_Survey = (Survey_Survey);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-firstmile-shared/src/components/carousel/interfaces/IHomeScreenCarouselOptions.ts
var IHomeScreenCarouselOptions = __webpack_require__("gwKa");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-firstmile-shared/src/components/index.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/














// EXTERNAL MODULE: ./src/js/start/StartIngestUtil.tsx
var StartIngestUtil = __webpack_require__("Db/q");

// CONCATENATED MODULE: ./src/components/LayoutManager/FallbackComponent.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var FallbackComponent_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;
};






let FallbackComponent_FallbackComponent = class FallbackComponent extends react_default.a.Component {
    constructor() {
        super(...arguments);
        this._logger = Logger["a" /* default */].get('FallbackComponent');
    }
    componentDidCatch(error, info) {
        // if error received in arguments is not HomescreenError instance, create it
        const homeScreenError = Object(HomescreenError["e" /* getHomescreenErrorInstance */])(error, error + info.componentStack, 'content-component', HomescreenError["b" /* HomescreenErrorCodes */].FALLBACK_COMPONENT_FAILED);
        MainStore["mainStore"].setShouldUseDefaultLayoutInFallbackMode(true, `FallbackComponent Error: ${homeScreenError.desc}`, {
            workflow: MainStore["mainStore"].prefs.currentRoute,
            error: homeScreenError,
            type: StartIngestUtil["c" /* default */].KEYS.EVENT_TYPE_ERROR,
        }, true);
        this._logger.log('Failed to render layout! Falling back..' + homeScreenError.desc + (info && info.componentStack));
        this._logger.error(homeScreenError.desc, info);
    }
    render() {
        return this.props.children || null;
    }
};
FallbackComponent_FallbackComponent = FallbackComponent_decorate([
    index_module["e" /* observer */]
], FallbackComponent_FallbackComponent);
/* harmony default export */ var LayoutManager_FallbackComponent = (FallbackComponent_FallbackComponent);

// CONCATENATED MODULE: ./src/components/LayoutManager/Content.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var Content_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;
};
var Content_1;



















const ContentContext = react_default.a.createContext({});
/**
 * A Content component renders one item/component in a dynamic layout,
 * selecting the appropriate component based on data from the Yukon service.
 * Normally, the Yukon data specifies which component should be rendered;
 * but for debugging purposes, we specify a defaultComponent ID to be used
 * when we don't have the data (e.g. when using the SidekickController).
 */
let Content_Content = Content_1 = class Content extends react_default.a.Component {
    constructor() {
        super(...arguments);
        this._logger = Logger["a" /* default */].get('Content');
        this.renderEventParams = () => {
            const { component, eventData } = this.containerAnalytics;
            return [
                component,
                {
                    ...eventData,
                    fieldData: this.fieldData,
                },
            ];
        };
        this.logHoverEvent = Object(throttle["a" /* default */])((componentName, eventData) => {
            iaw_analytics["a" /* default */].logMiscellaneousEvent(componentName, eventData);
        }, 3000);
        this.logEvent = (componentName, eventData, type) => {
            const analyticsData = {
                ...eventData,
                fieldData: this.fieldData,
            };
            if (type === 'hover' && applications["a" /* default */].enableHoverEventAnalytics) {
                this.logHoverEvent(componentName, analyticsData);
            }
            else {
                iaw_analytics["a" /* default */].logEvent(componentName, analyticsData, type);
            }
        };
        this.internationalizeText = (id, values) => {
            return this.context.intl.formatMessage({ id }, { ...Object(ReplaceAppDataTemplates["b" /* getAppData */])(), ...values });
        };
    }
    get componentId() {
        var _a, _b, _c;
        const { ctx, id, defaultComponent, component } = this.props;
        const componentId = Object(CommonUtils["e" /* getId */])((_b = (_a = ctx === null || ctx === void 0 ? void 0 : ctx[id]) === null || _a === void 0 ? void 0 : _a._model) === null || _b === void 0 ? void 0 : _b._path);
        return (_c = component !== null && component !== void 0 ? component : componentId) !== null && _c !== void 0 ? _c : defaultComponent;
    }
    get fieldData() {
        return this.props.ctx[this.props.id];
    }
    componentDidMount() {
        const { component } = this.containerAnalytics;
        // for Carousel this already is logged by the component itself
        if (component !== 'carousel') {
            /* This logRenderEvent needs to be here in case HomeScreen becomes visible before
               the component is mounted. The saftey guard in logRenderedEvent will make sure the event
               is not logged in if the component is mounted before HomeScreen is visible */
            iaw_analytics["a" /* default */].logRenderedEvent(...this.renderEventParams());
            // In the event the component is mounted before HS is visible, 
            // this subscription will make sure the event is logged in after HS becomes visible.
            this._renderEventGUID = iaw_analytics["a" /* default */].subscribeLogRenderedEvent(() => this.renderEventParams()) || undefined;
        }
    }
    componentWillUnmount() {
        this._renderEventGUID && iaw_analytics["a" /* default */].unsubscribeLogRenderedEvent(this._renderEventGUID);
    }
    getContainerAnalyticsParams(component, route) {
        if (route === 'home') {
            return Sophia["a" /* default */].getAnalyticsData(components_start_constants["k" /* default */].SURFACES.HOME);
        }
        if (component === 'learnFeedWeb') {
            return Ututs["a" /* default */].webAnalyticsData;
        }
        else if (component === 'learnFeedInApp') {
            return Ututs["a" /* default */].appAnalyticsData;
        }
        else {
            return Sophia["a" /* default */].getAnalyticsData(components_start_constants["k" /* default */].SURFACES.LEARN);
        }
    }
    get containerAnalytics() {
        return {
            component: this.componentId,
            eventData: {
                workflow: this.props.ctx.fallbackLayout
                    ? 'Home-Default'
                    : MainStore["mainStore"].prefs.currentRoute,
                stage: this.props.ctx.stageName,
                layout: this.props.ctx.layoutId,
                containerAnalyticsParams: this.props.ctx.fallbackLayout
                    ? null
                    : this.getContainerAnalyticsParams(this.componentId, MainStore["mainStore"].prefs.currentRoute),
                numRecents: this.props.ctx.numRecents,
                totalWebTutorials: Ututs["a" /* default */].webTutorials.length,
                totalInAppTutorials: Ututs["a" /* default */].appTutorials.length,
            },
        };
    }
    render() {
        return (react_default.a.createElement(ContentContext.Consumer, null, ctx => {
            if (!ctx) {
                return null;
            }
            const fieldData = this.fieldData;
            let componentProps = {
                ...fieldData,
                logEvent: this.logEvent,
            };
            /* XD Content overrides */
            if (platform["a" /* default */].isXD) {
                /* XD requires this logic to translate the data strings in the default fallback content */
                if (this.props.translate) {
                    this.props.translate.forEach(t => {
                        const v = getValue(t, fieldData);
                        if (v) {
                            setValue(t, this.internationalizeText(v, this.props.values), fieldData);
                        }
                    });
                    componentProps = {
                        ...fieldData,
                        logEvent: this.logEvent,
                    };
                }
                /* XD override for the Welcome message */
                if (this.componentId === 'welcomeMessage') {
                    componentProps = {
                        message: this.internationalizeText(`${applications["a" /* default */].id}_default_welcome_message_${ctx.stageName}`),
                        smallStyle: true,
                        persistent: true,
                        logEvent: this.logEvent,
                    };
                }
            }
            const ContentComponent = Content_1.MAP[this.componentId];
            if (!ContentComponent) {
                this._logger.log(`No component exists for ${this.componentId}.`, {
                    error: true,
                });
                throw new HomescreenError["a" /* HomescreenError */](`No component exists for ${this.componentId} in layout ${ctx.layoutId} from provided fields ${Object.keys(ctx).join(':')}`, 'content-component', HomescreenError["b" /* HomescreenErrorCodes */].COMPONENT_IN_LAYOUT_MISSING);
            }
            return (react_default.a.createElement(LayoutManager_FallbackComponent, null,
                react_default.a.createElement(ContentComponent, Object.assign({ containerAnalytics: this.containerAnalytics }, componentProps, this.props))));
        }));
    }
};
Content_Content.contextTypes = {
    intl: prop_types_default.a.any,
};
/**
 * Yukon components are identified by a string ID; we select the appropriate
 * React component from this list.
 */
Content_Content.MAP = {
    'component--drag-and-drop': components_DragAndDrop,
    'component--standard-tout': components_Tout,
    'component--banner-empty': EmptyBanner_EmptyBanner,
    'component--presets-dropdown': components_PresetsDropdown,
    'component--carousel': CarouselWrapper,
    carousel: CarouselWrapper,
    recents: components_Recents,
    learnFeedInApp: Tutorials_InAppTutorials,
    learnFeedWeb: Tutorials_WebTutorials,
    welcomeMessage: components_WelcomeMessage,
    bannerBasic: components_Banner,
    stickyPresetsDropdown: components_StickyPresetsDropdown,
    starterBanner: components_StarterBanner,
};
Content_Content = Content_1 = Content_decorate([
    index_module["e" /* observer */]
], Content_Content);
/* harmony default export */ var LayoutManager_Content = (props => (react_default.a.createElement(ContentContext.Consumer, null, ctx => react_default.a.createElement(Content_Content, Object.assign({}, props, { ctx: ctx })))));

// EXTERNAL MODULE: ./src/assets/XD_Preset_Mobile@2X.png
var XD_Preset_Mobile_2X = __webpack_require__("DN9X");
var XD_Preset_Mobile_2X_default = /*#__PURE__*/__webpack_require__.n(XD_Preset_Mobile_2X);

// EXTERNAL MODULE: ./src/assets/XD_Preset_Desktop@2X.png
var XD_Preset_Desktop_2X = __webpack_require__("Hxb1");
var XD_Preset_Desktop_2X_default = /*#__PURE__*/__webpack_require__.n(XD_Preset_Desktop_2X);

// EXTERNAL MODULE: ./src/assets/XD_Preset_Social@2X.png
var XD_Preset_Social_2X = __webpack_require__("98hM");
var XD_Preset_Social_2X_default = /*#__PURE__*/__webpack_require__.n(XD_Preset_Social_2X);

// EXTERNAL MODULE: ./src/assets/XD_Preset_Custom@2x.png
var XD_Preset_Custom_2x = __webpack_require__("PTvt");
var XD_Preset_Custom_2x_default = /*#__PURE__*/__webpack_require__.n(XD_Preset_Custom_2x);

// EXTERNAL MODULE: ./src/assets/XD_Tout_FullWidth@2x.png
var XD_Tout_FullWidth_2x = __webpack_require__("jfFg");
var XD_Tout_FullWidth_2x_default = /*#__PURE__*/__webpack_require__.n(XD_Tout_FullWidth_2x);

// EXTERNAL MODULE: ./src/assets/XD_Explore_The_Power_Of_XD@2x.jpg
var XD_Explore_The_Power_Of_XD_2x = __webpack_require__("Incl");
var XD_Explore_The_Power_Of_XD_2x_default = /*#__PURE__*/__webpack_require__.n(XD_Explore_The_Power_Of_XD_2x);

// EXTERNAL MODULE: ./src/assets/XD_Jump_Start_Designs_With_UI_Kits@2x.jpg
var XD_Jump_Start_Designs_With_UI_Kits_2x = __webpack_require__("AMe2");
var XD_Jump_Start_Designs_With_UI_Kits_2x_default = /*#__PURE__*/__webpack_require__.n(XD_Jump_Start_Designs_With_UI_Kits_2x);

// EXTERNAL MODULE: ./src/assets/XD_Join_The_Daily_Creative_Challenge@2x.jpg
var XD_Join_The_Daily_Creative_Challenge_2x = __webpack_require__("XKPU");
var XD_Join_The_Daily_Creative_Challenge_2x_default = /*#__PURE__*/__webpack_require__.n(XD_Join_The_Daily_Creative_Challenge_2x);

// CONCATENATED MODULE: ./src/components/LayoutManager/HardcodedDefaultData.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2020 Adobe
 * All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/








const PRESETS_XD_MOBILE_TABLETS = [
    {
        presetType: 'Mobile',
        name: 'SPRK_default_preset_name_iphone_14_pro_max',
        description: 'SPRK_default_preset_description_iphone_14_pro_max',
        image: {
            _publishUrl: XD_Preset_Mobile_2X_default.a,
        },
        ctaAction: 'appEvent',
        ctaEvent: 'FirstMileEvent.PresetClicked',
        ctaData: {
            name: 'SPRK_default_preset_name_iphone_14_pro_max',
            type: 'mobile',
            width: 430,
            height: 932,
        },
    },
    {
        presetType: 'Mobile',
        name: 'SPRK_default_preset_name_iphone_14_pro',
        description: 'SPRK_default_preset_description_iphone_14_pro',
        image: {
            _publishUrl: XD_Preset_Mobile_2X_default.a,
        },
        ctaAction: 'appEvent',
        ctaEvent: 'FirstMileEvent.PresetClicked',
        ctaData: {
            name: 'SPRK_default_preset_name_iphone_14_pro',
            type: 'mobile',
            width: 393,
            height: 852,
        },
    },
    {
        presetType: 'Mobile',
        name: 'SPRK_default_preset_name_iphone_14_plus_13_pro_max_12_pro_max',
        description: 'SPRK_default_preset_description_iphone_14_plus_13_pro_max_12_pro_max',
        image: {
            _publishUrl: XD_Preset_Mobile_2X_default.a,
        },
        ctaAction: 'appEvent',
        ctaEvent: 'FirstMileEvent.PresetClicked',
        ctaData: {
            name: 'SPRK_default_preset_name_iphone_14_plus_13_pro_max_12_pro_max',
            type: 'mobile',
            width: 428,
            height: 926,
        },
    },
    {
        presetType: 'Mobile',
        name: 'SPRK_default_preset_name_iphone_14_13_pro_13_12_pro_12',
        description: 'SPRK_default_preset_description_iphone_14_13_pro_13_12_pro_12',
        image: {
            _publishUrl: XD_Preset_Mobile_2X_default.a,
        },
        ctaAction: 'appEvent',
        ctaEvent: 'FirstMileEvent.PresetClicked',
        ctaData: {
            name: 'SPRK_default_preset_name_iphone_14_13_pro_13_12_pro_12',
            type: 'mobile',
            width: 390,
            height: 844,
        },
    },
    {
        presetType: 'Mobile',
        name: 'SPRK_default_preset_name_iphone_13_mini',
        description: 'SPRK_default_preset_description_iphone_13_mini',
        image: {
            _publishUrl: XD_Preset_Mobile_2X_default.a,
        },
        ctaAction: 'appEvent',
        ctaEvent: 'FirstMileEvent.PresetClicked',
        ctaData: {
            name: 'SPRK_default_preset_name_iphone_13_mini',
            type: 'mobile',
            width: 375,
            height: 812,
        },
    },
    {
        presetType: 'Mobile',
        name: 'SPRK_default_preset_name_iphone_x_xs_11_pro',
        description: 'SPRK_default_preset_description_iphone_x_xs_11_pro',
        image: {
            _publishUrl: XD_Preset_Mobile_2X_default.a,
        },
        ctaAction: 'appEvent',
        ctaEvent: 'FirstMileEvent.PresetClicked',
        ctaData: {
            name: 'SPRK_default_preset_name_iphone_x_xs_11_pro',
            type: 'mobile',
            width: 375,
            height: 812,
        },
    },
    {
        presetType: 'Mobile',
        name: 'SPRK_default_preset_name_iphone_xr_xs_max_11',
        description: 'SPRK_default_preset_description_iphone_xr_xs_max_11',
        image: {
            _publishUrl: XD_Preset_Mobile_2X_default.a,
        },
        ctaAction: 'appEvent',
        ctaEvent: 'FirstMileEvent.PresetClicked',
        ctaData: {
            name: 'SPRK_default_preset_name_iphone_xr_xs_max_11',
            type: 'mobile',
            width: 414,
            height: 896,
        },
    },
    {
        presetType: 'Mobile',
        name: 'SPRK_default_preset_name_google_pixel_7_pro_6_pro',
        description: 'SPRK_default_preset_description_google_pixel_7_pro_6_pro',
        image: {
            _publishUrl: XD_Preset_Mobile_2X_default.a,
        },
        ctaAction: 'appEvent',
        ctaEvent: 'FirstMileEvent.PresetClicked',
        ctaData: {
            name: 'SPRK_default_preset_name_google_pixel_7_pro_6_pro',
            type: 'mobile',
            width: 412,
            height: 892,
        },
    },
    {
        presetType: 'Mobile',
        name: 'SPRK_default_preset_name_ipad',
        description: 'SPRK_default_preset_description_ipad',
        image: {
            _publishUrl: XD_Preset_Mobile_2X_default.a,
        },
        ctaAction: 'appEvent',
        ctaEvent: 'FirstMileEvent.PresetClicked',
        ctaData: {
            name: 'SPRK_default_preset_name_ipad',
            type: 'mobile',
            width: 768,
            height: 1024,
        },
    },
];
const PRESETS_XD_WEB = [
    {
        presetType: 'Desktop',
        name: 'SPRK_default_preset_name_web_1920',
        description: 'SPRK_default_preset_description_web_1920',
        image: {
            _publishUrl: XD_Preset_Desktop_2X_default.a,
        },
        ctaAction: 'appEvent',
        ctaEvent: 'FirstMileEvent.PresetClicked',
        ctaData: {
            name: 'SPRK_default_preset_name_web_1920',
            type: 'desktop',
            width: 1920,
            height: 1080,
        },
    },
    {
        presetType: 'Desktop',
        name: 'SPRK_default_preset_name_web_1366',
        description: 'SPRK_default_preset_description_web_1366',
        image: {
            _publishUrl: XD_Preset_Desktop_2X_default.a,
        },
        ctaAction: 'appEvent',
        ctaEvent: 'FirstMileEvent.PresetClicked',
        ctaData: {
            name: 'SPRK_default_preset_name_web_1366',
            type: 'desktop',
            width: 1366,
            height: 768,
        },
    },
    {
        presetType: 'Desktop',
        name: 'SPRK_default_preset_name_web_1280',
        description: 'SPRK_default_preset_description_web_1280',
        image: {
            _publishUrl: XD_Preset_Desktop_2X_default.a,
        },
        ctaAction: 'appEvent',
        ctaEvent: 'FirstMileEvent.PresetClicked',
        ctaData: {
            name: 'SPRK_default_preset_name_web_1280',
            type: 'desktop',
            width: 1280,
            height: 800,
        },
    },
];
const PRESETS_XD_SOCIAL_MEDIA = [
    {
        presetType: 'Social',
        name: 'SPRK_default_preset_name_instagram_story',
        description: 'SPRK_default_preset_description_instagram_story',
        image: {
            _publishUrl: XD_Preset_Social_2X_default.a,
        },
        ctaAction: 'appEvent',
        ctaEvent: 'FirstMileEvent.PresetClicked',
        ctaData: {
            name: 'SPRK_default_preset_name_instagram_story',
            type: 'social',
            width: 1080,
            height: 1920,
        },
    },
    {
        presetType: 'Social',
        name: 'SPRK_default_preset_name_instagram_post',
        description: 'SPRK_default_preset_description_instagram_post',
        image: {
            _publishUrl: XD_Preset_Social_2X_default.a,
        },
        ctaAction: 'appEvent',
        ctaEvent: 'FirstMileEvent.PresetClicked',
        ctaData: {
            name: 'SPRK_default_preset_name_instagram_post',
            type: 'social',
            width: 1080,
            height: 1080,
        },
    },
    {
        presetType: 'Social',
        name: 'SPRK_default_preset_name_twitter_post',
        description: 'SPRK_default_preset_description_twitter_post',
        image: {
            _publishUrl: XD_Preset_Social_2X_default.a,
        },
        ctaAction: 'appEvent',
        ctaEvent: 'FirstMileEvent.PresetClicked',
        ctaData: {
            name: 'SPRK_default_preset_name_twitter_post',
            type: 'social',
            width: 1012,
            height: 512,
        },
    },
    {
        presetType: 'Social',
        name: 'SPRK_default_preset_name_twitter_header',
        description: 'SPRK_default_preset_description_twitter_header',
        image: {
            _publishUrl: XD_Preset_Social_2X_default.a,
        },
        ctaAction: 'appEvent',
        ctaEvent: 'FirstMileEvent.PresetClicked',
        ctaData: {
            name: 'SPRK_default_preset_name_twitter_header',
            type: 'social',
            width: 1500,
            height: 500,
        },
    },
    {
        presetType: 'Social',
        name: 'SPRK_default_preset_name_facebook_post',
        description: 'SPRK_default_preset_description_facebook_post',
        image: {
            _publishUrl: XD_Preset_Social_2X_default.a,
        },
        ctaAction: 'appEvent',
        ctaEvent: 'FirstMileEvent.PresetClicked',
        ctaData: {
            name: 'SPRK_default_preset_name_facebook_post',
            type: 'social',
            width: 1200,
            height: 630,
        },
    },
    {
        presetType: 'Social',
        name: 'SPRK_default_preset_name_facebook_cover',
        description: 'SPRK_default_preset_description_facebook_cover',
        image: {
            _publishUrl: XD_Preset_Social_2X_default.a,
        },
        ctaAction: 'appEvent',
        ctaEvent: 'FirstMileEvent.PresetClicked',
        ctaData: {
            name: 'SPRK_default_preset_name_facebook_cover',
            type: 'social',
            width: 820,
            height: 312,
        },
    },
    {
        presetType: 'Social',
        name: 'SPRK_default_preset_name_youtube',
        description: 'SPRK_default_preset_description_youtube',
        image: {
            _publishUrl: XD_Preset_Social_2X_default.a,
        },
        ctaAction: 'appEvent',
        ctaEvent: 'FirstMileEvent.PresetClicked',
        ctaData: {
            name: 'SPRK_default_preset_name_youtube',
            type: 'social',
            width: 1280,
            height: 720,
        },
    },
];
const PRESETS_XD_CUSTOM = [
    {
        presetType: 'Custom (Inline)',
        name: 'SPRK_default_preset_name_custom',
        image: {
            _publishUrl: XD_Preset_Custom_2x_default.a,
        },
        ctaAction: 'appEvent',
        ctaEvent: 'FirstMileEvent.PresetClicked',
        ctaData: {
            name: 'SPRK_default_preset_name_custom',
            type: 'custom',
            width: 0,
            height: 0,
        },
    },
];
const PRESETS_XD = [...PRESETS_XD_MOBILE_TABLETS, ...PRESETS_XD_WEB, ...PRESETS_XD_SOCIAL_MEDIA, ...PRESETS_XD_CUSTOM];
const PRESETS_XD_CHINESE = [...PRESETS_XD_MOBILE_TABLETS, ...PRESETS_XD_WEB, ...PRESETS_XD_CUSTOM];
const MODEL_BASE_PATH = '/conf/ccfirstmile/settings/dam/cfm/models/';
const SMALL_TOUTS_DATA_XD = [
    {
        content: 'SPRK_default_smalltout_1_content',
        image: {
            _publishUrl: XD_Explore_The_Power_Of_XD_2x_default.a,
        },
        linkOut: true,
        primaryCTA: {
            ctaAction: 'externalURL',
            ctaUrl: 'https://www.adobe.com/go/xd_carousel_letsxd',
        },
    },
    {
        content: 'SPRK_default_smalltout_2_content',
        image: {
            _publishUrl: XD_Jump_Start_Designs_With_UI_Kits_2x_default.a,
        },
        linkOut: true,
        primaryCTA: {
            ctaAction: 'externalURL',
            ctaUrl: 'https://www.adobe.com/go/xd_carousel_ui_kits',
        },
    },
    {
        content: 'SPRK_default_smalltout_3_content',
        image: {
            _publishUrl: XD_Join_The_Daily_Creative_Challenge_2x_default.a,
        },
        linkOut: true,
        primaryCTA: {
            ctaAction: 'externalURL',
            ctaUrl: 'https://www.adobe.com/go/xd_carousel_daily_challenge',
        },
    },
];
const XD_LEARN_SURFACE_STAGE_DATA = {
    _model: {
        _path: 'layoutLearnXd2020',
    },
    tutorialFilter: {
        _model: {
            _path: 'componentLearnFilter',
        },
        componentName: 'XD Learn Topic Filter',
        filters: [
            {
                filterId: 'all',
                isDefault: true,
                filterCategory: 'XD Filter All',
                filterName: 'SPRK_default_learn_tab_filter_name_all',
            },
            {
                filterId: 'get-started',
                isDefault: false,
                filterCategory: 'XD Filter Get Started',
                filterName: 'SPRK_default_learn_tab_filter_name_get_started',
            },
            {
                filterId: 'design',
                isDefault: false,
                filterCategory: 'XD Filter Design',
                filterName: 'SPRK_default_learn_tab_filter_name_design',
            },
            {
                filterId: 'prototype',
                isDefault: false,
                filterCategory: 'XD Filter Prototype',
                filterName: 'SPRK_default_learn_tab_filter_name_prototype',
            },
            {
                filterId: 'collaborate',
                isDefault: false,
                filterCategory: 'XD Filter Collaborate',
                filterName: 'SPRK_default_learn_tab_filter_name_collaborate',
            },
            {
                filterId: 'design-systems',
                isDefault: false,
                filterCategory: 'XD Filter Design Systems',
                filterName: 'SPRK_default_learn_tab_filter_name_design_systems',
            },
        ],
    },
    layoutName: 'XD Learn Stage 1 2020',
    webTuts: {
        _model: {
            _path: 'learnFeedWeb',
        },
    },
};
const getHardCodedDefaultData = (application, stage, isChinese = false) => {
    const DEFAULT_DATA = {
        SPRK: {
            stage1: {
                sys: {
                    contentType: {
                        sys: {
                            id: 'welcomeBannerPresetsXd',
                        },
                    },
                },
                welcomeMessage: {
                    message: `SPRK_default_welcome_message_${stage}`,
                    persistent: true,
                    smallStyle: true,
                },
                hero: {
                    headerText: `SPRK_default_preset_message_${stage}`,
                    presets: !isChinese ? PRESETS_XD : PRESETS_XD_CHINESE,
                    _model: {
                        _path: `${MODEL_BASE_PATH}component--presets-dropdown`,
                        title: 'Component: Presets Dropdown',
                    },
                },
                bottom: {
                    headerText: 'SPRK_default_banner_headerText',
                    descriptionText: 'SPRK_default_banner_descriptionText',
                    primaryCTA: {
                        ctaText: 'SPRK_default_banner_cta',
                        ctaAction: 'externalURL',
                        ctaUrl: 'https://www.adobe.com/go/xd_learn',
                        ctaLog: 'Explore',
                    },
                    sideImage: {
                        _publishUrl: XD_Tout_FullWidth_2x_default.a,
                    },
                    _model: {
                        _path: `${MODEL_BASE_PATH}component--standard-tout`,
                        title: 'Component: Standard Tout',
                    },
                },
            },
            stage2: {
                sys: {
                    contentType: {
                        sys: {
                            id: 'welcomeBannerPresetsCarouselRecentsXd',
                        },
                    },
                },
                welcomeMessage: {
                    message: `SPRK_default_welcome_message_${stage}`,
                    persistent: true,
                    smallStyle: true,
                },
                hero: {
                    presets: !isChinese ? PRESETS_XD : PRESETS_XD_CHINESE,
                    _model: {
                        _path: `${MODEL_BASE_PATH}component--presets-dropdown`,
                        title: 'Component: Presets Dropdown',
                    },
                },
                cardRight: {
                    headerText: 'SPRK_default_banner_headerText',
                    cardsData: SMALL_TOUTS_DATA_XD,
                    animationDelay: 4000,
                    showRandomStartItem: false,
                    cardType: 'smallTout',
                    usageId: 'xdFMRecentLayout',
                    stopAnimationAfterCarouselCircled: true,
                    _model: {
                        _path: `${MODEL_BASE_PATH}component--carousel`,
                        title: 'Component: Carousel',
                    },
                },
                bottom: {
                    _model: {
                        _path: `${MODEL_BASE_PATH}recents`,
                        title: 'Recents',
                    },
                    label: 'listview_recent_tab_label',
                },
            },
        },
    };
    return DEFAULT_DATA[application][stage];
};
const defaultLearnSurface = () => {
    return {
        data: {
            experienceHomeMx19ByPath: {
                item: {
                    campaignName: 'XD Learn 2020',
                    stage1: XD_LEARN_SURFACE_STAGE_DATA,
                    stage2: XD_LEARN_SURFACE_STAGE_DATA,
                },
            },
        },
    };
};
/* harmony default export */ var HardcodedDefaultData = (getHardCodedDefaultData);

// CONCATENATED MODULE: ./src/components/LayoutManager/DefaultViewParser.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/





class DefaultViewParser_DefaultViewParser {
    constructor(layoutDefinitions) {
        this.layoutDefinitions = layoutDefinitions;
    }
    /**
     * The particular layout is chosen by analyzing `stageConditions`, which
     * defines the criteria for choosing a layout (like number of recent files).
     * We return the stage ID, which points to a specific layout name.
     */
    getLayoutStage(numRecents) {
        return numRecents > 0 ? 'stage2' : 'stage1';
    }
    render() {
        // @ts-ignore
        const numRecents = MainStore["mainStore"].recentFilesStore.realOrArtificialLength;
        const stageName = this.getLayoutStage(numRecents);
        const isChineseUser = MainStore["mainStore"].user.isChineseUser;
        const stageData = HardcodedDefaultData(applications["a" /* default */].id, stageName, isChineseUser);
        const layoutId = stageData.sys.contentType.sys.id;
        const Layout = this.layoutDefinitions[layoutId];
        return (react_default.a.createElement(ContentContext.Provider, { value: {
                ...stageData,
                layoutId,
                numRecents,
                stageName,
                fallbackLayout: true,
            } },
            react_default.a.createElement(Layout, { displayStarterBanner: applications["a" /* default */].isStarterUser && applications["a" /* default */].isStarterBannerEnabled })));
    }
}

// CONCATENATED MODULE: ./src/components/LayoutManager/DefaultLayouts.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/




/**
 * These layouts are pre-defined by teh product team
 */
const DefaultLayouts = {
    welcomeBannerPresetsXd: () => (react_default.a.createElement(components_VLayout, null,
        react_default.a.createElement(LayoutManager_Content, { id: "welcomeMessage", defaultComponent: "welcomeMessage", translate: ['message'] }),
        react_default.a.createElement(components_HLayout, { row: true },
            react_default.a.createElement(LayoutManager_Content, { id: "hero", grow: true, component: "stickyPresetsDropdown", defaultComponent: "stickyPresetsDropdown", translate: [
                    'headerText',
                    'presets.0.name',
                    'presets.1.name',
                    'presets.2.name',
                    'presets.3.name',
                    'presets.4.name',
                    'presets.5.name',
                    'presets.6.name',
                    'presets.7.name',
                    'presets.8.name',
                    'presets.9.name',
                    'presets.10.name',
                    'presets.11.name',
                    'presets.12.name',
                    'presets.13.name',
                    'presets.14.name',
                    'presets.15.name',
                    'presets.16.name',
                    'presets.17.name',
                    'presets.18.name',
                    'presets.19.name',
                    'presets.0.description',
                    'presets.1.description',
                    'presets.2.description',
                    'presets.3.description',
                    'presets.4.description',
                    'presets.5.description',
                    'presets.6.description',
                    'presets.7.description',
                    'presets.8.description',
                    'presets.9.description',
                    'presets.10.description',
                    'presets.11.description',
                    'presets.12.description',
                    'presets.13.description',
                    'presets.14.description',
                    'presets.15.description',
                    'presets.16.description',
                    'presets.17.description',
                    'presets.18.description',
                    'presets.0.ctaData.name',
                    'presets.1.ctaData.name',
                    'presets.2.ctaData.name',
                    'presets.3.ctaData.name',
                    'presets.4.ctaData.name',
                    'presets.5.ctaData.name',
                    'presets.6.ctaData.name',
                    'presets.7.ctaData.name',
                    'presets.8.ctaData.name',
                    'presets.9.ctaData.name',
                    'presets.10.ctaData.name',
                    'presets.11.ctaData.name',
                    'presets.12.ctaData.name',
                    'presets.13.ctaData.name',
                    'presets.14.ctaData.name',
                    'presets.15.ctaData.name',
                    'presets.16.ctaData.name',
                    'presets.17.ctaData.name',
                    'presets.18.ctaData.name',
                ] })),
        react_default.a.createElement(components_HLayout, { row: true },
            react_default.a.createElement(LayoutManager_Content, { cardHeight: "short", grow: true, id: "bottom", defaultComponent: "componentStandardTout", translate: ['headerText', 'descriptionText', 'primaryCTA.ctaText'] })))),
    welcomeBannerPresetsCarouselRecentsXd: ({ displayStarterBanner }) => (react_default.a.createElement(components_VLayout, null,
        react_default.a.createElement(LayoutManager_Content, Object.assign({}, (!displayStarterBanner
            ? {
                id: 'welcomeMessage',
                defaultComponent: 'welcomeMessage',
                translate: ['message'],
            }
            : {
                id: 'starterBanner',
                defaultComponent: 'starterBanner',
                translate: null,
            }))),
        react_default.a.createElement(components_HLayout, { row: true },
            react_default.a.createElement(LayoutManager_Content, { id: "hero", grow: true, component: "stickyPresetsDropdown", defaultComponent: "stickyPresetsDropdown", translate: [
                    'presets.0.name',
                    'presets.1.name',
                    'presets.2.name',
                    'presets.3.name',
                    'presets.4.name',
                    'presets.5.name',
                    'presets.6.name',
                    'presets.7.name',
                    'presets.8.name',
                    'presets.9.name',
                    'presets.10.name',
                    'presets.11.name',
                    'presets.12.name',
                    'presets.13.name',
                    'presets.14.name',
                    'presets.15.name',
                    'presets.16.name',
                    'presets.17.name',
                    'presets.18.name',
                    'presets.19.name',
                    'presets.0.description',
                    'presets.1.description',
                    'presets.2.description',
                    'presets.3.description',
                    'presets.0.description',
                    'presets.1.description',
                    'presets.2.description',
                    'presets.3.description',
                    'presets.4.description',
                    'presets.5.description',
                    'presets.6.description',
                    'presets.7.description',
                    'presets.8.description',
                    'presets.9.description',
                    'presets.10.description',
                    'presets.11.description',
                    'presets.12.description',
                    'presets.13.description',
                    'presets.14.description',
                    'presets.15.description',
                    'presets.16.description',
                    'presets.17.description',
                    'presets.18.description',
                    'presets.0.ctaData.name',
                    'presets.1.ctaData.name',
                    'presets.2.ctaData.name',
                    'presets.3.ctaData.name',
                    'presets.4.ctaData.name',
                    'presets.5.ctaData.name',
                    'presets.6.ctaData.name',
                    'presets.7.ctaData.name',
                    'presets.8.ctaData.name',
                    'presets.9.ctaData.name',
                    'presets.10.ctaData.name',
                    'presets.11.ctaData.name',
                    'presets.12.ctaData.name',
                    'presets.13.ctaData.name',
                    'presets.14.ctaData.name',
                    'presets.15.ctaData.name',
                    'presets.16.ctaData.name',
                    'presets.17.ctaData.name',
                    'presets.18.ctaData.name',
                ] }),
            react_default.a.createElement(LayoutManager_Content, { cardHeight: "short", id: "cardRight", defaultComponent: "componentCarousel", translate: ['cardsData.0.content', 'cardsData.1.content', 'cardsData.2.content'], homeScreenCarouselOptions: applications["a" /* default */].homeScreenCarouselOptions })),
        react_default.a.createElement(LayoutManager_Content, { id: "bottom", defaultComponent: "recents", translate: ['label'] }))),
};
/* harmony default export */ var LayoutManager_DefaultLayouts = (DefaultLayouts);

// CONCATENATED MODULE: ./src/components/LayoutManager/FallbackLayout.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var FallbackLayout_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;
};











/**
 * If the dynamic layout throws an exception for any reason,
 * we'll render this component as a fallback.
 */
let FallbackLayout_FallbackLayout = class FallbackLayout extends react_default.a.Component {
    componentDidMount() {
        iaw_analytics["a" /* default */].logMiscellaneousEvent('home-default', {
            value: MainStore["mainStore"].prefs.launchCount,
        });
    }
    render() {
        if (applications["a" /* default */].hasDefaultViewParser) {
            switch (MainStore["mainStore"].prefs.currentRoute) {
                case 'home':
                    return new DefaultViewParser_DefaultViewParser(LayoutManager_DefaultLayouts).render();
                case 'learn':
                default:
                    return null;
            }
        }
        const showRecents = MainStore["mainStore"].recentFilesStore.realOrArtificialLength > 0;
        const showPresets = applications["a" /* default */].presetData.length > 0;
        const translate = this.context.intl.formatMessage;
        const secondBlock = ['PPRO', 'AEFT'].includes(applications["a" /* default */].id) ? (react_default.a.createElement(LayoutManager_Content, { headerText: translate({ id: `${applications["a" /* default */].id}_default_banner_headerText` }), primaryCta: { ctaText: translate({ id: 'common_create' }) }, cardHeight: "medium", defaultComponent: "component--banner-empty" })) : (react_default.a.createElement(LayoutManager_Content, { headerText: translate({ id: 'common_draganddrop_header' }), descriptionText: translate({ id: 'common_draganddrop_description' }), cardHeight: "medium", defaultComponent: "component--drag-and-drop" }));
        return (react_default.a.createElement(components_VLayout, null,
            react_default.a.createElement(components_NonGenuineBanner, null),
            react_default.a.createElement(LayoutManager_Content, { defaultComponent: "welcomeMessage", message: translate({ id: applications["a" /* default */].headerTitleId() }), fallbackMessage: translate({ id: 'common_welcome_fallback' }) }),
            showPresets && (react_default.a.createElement(LayoutManager_Content, { headerText: translate({ id: 'common_presets_header' }), cardHeight: "medium", defaultComponent: "component--presets-dropdown" })),
            showRecents && react_default.a.createElement(LayoutManager_Content, { cardHeight: "medium", defaultComponent: "recents" }),
            !showRecents && !showPresets && secondBlock));
    }
};
FallbackLayout_FallbackLayout.contextTypes = {
    intl: prop_types_default.a.any,
};
FallbackLayout_FallbackLayout = FallbackLayout_decorate([
    index_module["e" /* observer */]
], FallbackLayout_FallbackLayout);
/* harmony default export */ var LayoutManager_FallbackLayout = (FallbackLayout_FallbackLayout);

// CONCATENATED MODULE: ./src/components/UisController.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2021 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/









var UisController_UISRecommendationAPI;
(function (UISRecommendationAPI) {
    UISRecommendationAPI["STAGE"] = "https://cchome-stage.adobe.io/int/v1/users/me/signals";
    UISRecommendationAPI["PRODUCTION"] = "https://cchome.adobe.io/int/v1/users/me/signals";
    UISRecommendationAPI["DEV"] = "https://cchome-dev.adobe.io/int/v1/users/me/signals";
})(UisController_UISRecommendationAPI || (UisController_UISRecommendationAPI = {}));
var SignalType;
(function (SignalType) {
    SignalType[SignalType["CUSTOM_CONTENT_CLICK"] = 0] = "CUSTOM_CONTENT_CLICK";
    SignalType[SignalType["RECOMMENDATION_FEEDBACK"] = 1] = "RECOMMENDATION_FEEDBACK";
})(SignalType || (SignalType = {}));
const signalName = {
    [SignalType.CUSTOM_CONTENT_CLICK]: 'Recommendation CTA Click',
    [SignalType.RECOMMENDATION_FEEDBACK]: 'Recommendation Feedback'
};
const eventIDs = {
    [SignalType.CUSTOM_CONTENT_CLICK]: StartIngestUtil["a" /* INGEST_EVENT_IDS */].CUSTOM_CONTENT_CLICK,
    [SignalType.RECOMMENDATION_FEEDBACK]: StartIngestUtil["a" /* INGEST_EVENT_IDS */].RECOMMENDATION_FEEDBACK
};
var eventSubtype;
(function (eventSubtype) {
    eventSubtype["CLICK"] = "click";
    eventSubtype["FEEDBACK"] = "feedback";
})(eventSubtype || (eventSubtype = {}));
const getEventSubtype = signalType => signalType === SignalType.RECOMMENDATION_FEEDBACK ? StartIngestUtil["b" /* INGEST_EVENT_SUBTYPES */].FEEDBACK_POST_TO_UIS : StartIngestUtil["b" /* INGEST_EVENT_SUBTYPES */].SUGGESTION_POST_TO_UIS;
const UisController_logger = Logger["a" /* default */].get('UisController');
function sendToutFeedbackToUis(signal, id, eventData) {
    var _a, _b, _c, _d, _e, _f;
    const recommendation = id && ((_a = Ututs["a" /* default */].recommendations) === null || _a === void 0 ? void 0 : _a.find(recommendation => recommendation.id === id));
    if (recommendation) {
        const hostId = applications["a" /* default */].id === 'PHXS' ? 'PHSP' : applications["a" /* default */].id;
        // Populate Custom Content Configuration metadata
        if (recommendation.content.type === components_start_constants["f" /* RECOMMENDATION_TYPE */].customContent && !Object.keys(recommendation.metadata).length) {
            const customContentCards = (_f = (_e = (_d = (_c = (_b = Sophia["a" /* default */].getCustomContentCardsContainer(components_start_constants["k" /* default */].SURFACES.HOME)) === null || _b === void 0 ? void 0 : _b.content) === null || _c === void 0 ? void 0 : _c.data) === null || _d === void 0 ? void 0 : _d.customcontentconfigurationcardsByPath) === null || _e === void 0 ? void 0 : _e.item) === null || _f === void 0 ? void 0 : _f.customCards;
            const customContentConfigurationCard = (customContentCards === null || customContentCards === void 0 ? void 0 : customContentCards.length) && customContentCards.find(customContentCard => { var _a; return customContentCard._path === ((_a = recommendation === null || recommendation === void 0 ? void 0 : recommendation.content) === null || _a === void 0 ? void 0 : _a.id); });
            recommendation.metadata = customContentConfigurationCard._metadata;
        }
        const body = {
            signals: [
                {
                    app: hostId,
                    source: 'homescreen',
                    category: 'recommendationFeedback',
                    value: {
                        recommendation: {
                            id: recommendation.id,
                            type: recommendation.type,
                            title: recommendation.title,
                            source: recommendation.source,
                            metadata: recommendation.metadata,
                            content: recommendation.content,
                        },
                        useful: signal,
                    },
                },
            ],
        };
        sendUisRequest('CCXInAppWelcomeUXP3', body, eventData, SignalType.RECOMMENDATION_FEEDBACK);
    }
    else {
        // This error scenario shouldn't happen since the actual method is being called from an actual recommendation
        const message = `Error on trying to send recommendation feedback signals to UIS: No recommendation found`;
        UisController_logger.error(message);
        iaw_analytics["a" /* default */].logErrorEvent(StartIngestUtil["a" /* INGEST_EVENT_IDS */].RECOMMENDATION_FEEDBACK, {
            error: {
                desc: message,
                type: HomescreenError["c" /* HomescreenErrorTypes */].USER_INTENT_SERVICE,
                code: HomescreenError["b" /* HomescreenErrorCodes */].RECOMMENDATION_NOT_FOUND
            },
            ...eventData,
            stage: MainStore["mainStore"].recentFilesStore.realOrArtificialLength > 0 ? 'stage2' : 'stage1',
            layout: StartIngestUtil["a" /* INGEST_EVENT_IDS */].RECOMMENDATION_FEEDBACK,
            subtype: getEventSubtype(SignalType.RECOMMENDATION_FEEDBACK)
        });
    }
}
function sendCustomCardClickToUis(card, eventData) {
    var _a, _b, _c, _d;
    const recommendation = (card === null || card === void 0 ? void 0 : card.id) && ((_a = Ututs["a" /* default */].recommendations) === null || _a === void 0 ? void 0 : _a.find(recommendation => recommendation.id === (card === null || card === void 0 ? void 0 : card.id)));
    if (recommendation) {
        const hostId = applications["a" /* default */].id === 'PHXS' ? 'PHSP' : applications["a" /* default */].id;
        const timestamp = (new Date()).getTime();
        const body = {
            signals: [
                {
                    app: hostId,
                    source: 'homescreen',
                    category: 'dpContext',
                    value: {
                        meta: {
                            version: '1.0.0',
                            appVersion: (_b = window === null || window === void 0 ? void 0 : window.appVersionNumber) === null || _b === void 0 ? void 0 : _b.toString(),
                            host: hostId,
                            timestamp: timestamp,
                            hostVersion: hostId
                        },
                        contexts: [
                            {
                                attrType: 'attrContentModules',
                                attrItems: [
                                    {
                                        attrType: 'attrContentModule',
                                        id: (_c = recommendation.content) === null || _c === void 0 ? void 0 : _c.id,
                                        // NOTE: uuid is intentionally left out since the Custom Card is a Tout and not Utut
                                        // and therefore it doesn't have an uuid
                                        recommendationId: recommendation.id,
                                        type: 'cmCustomContent',
                                        locale: (_d = recommendation.content) === null || _d === void 0 ? void 0 : _d.locale,
                                        source: 'UCS',
                                        timestamp: timestamp,
                                        title: card.headerText
                                    }
                                ]
                            }
                        ]
                    }
                }
            ]
        };
        sendUisRequest('CCXInAppWelcomeUXP3', body, eventData, SignalType.CUSTOM_CONTENT_CLICK);
    }
    else {
        // This error scenario shouldn't happen since the actual method is being called from an actual recommendation
        const message = `Error on trying to send custom card CTA signals to UIS: No recommendation found`;
        UisController_logger.error(message);
        iaw_analytics["a" /* default */].logErrorEvent(StartIngestUtil["a" /* INGEST_EVENT_IDS */].CUSTOM_CONTENT_CLICK, {
            error: {
                desc: message,
                type: HomescreenError["c" /* HomescreenErrorTypes */].USER_INTENT_SERVICE,
                code: HomescreenError["b" /* HomescreenErrorCodes */].RECOMMENDATION_NOT_FOUND
            },
            ...eventData,
            stage: MainStore["mainStore"].recentFilesStore.realOrArtificialLength > 0 ? 'stage2' : 'stage1',
            layout: StartIngestUtil["a" /* INGEST_EVENT_IDS */].CUSTOM_CONTENT_CLICK,
            subtype: getEventSubtype(SignalType.CUSTOM_CONTENT_CLICK)
        });
    }
}
function sendUisRequest(apiKey, body, eventData, signalType) {
    const requestOptions = {
        method: 'POST',
        headers: {
            Authorization: 'Bearer ' + MainStore["mainStore"].user.accessToken,
            'Content-Type': 'application/json',
            'x-api-key': apiKey,
        },
        body: JSON.stringify(body),
    };
    fetch(MainStore["mainStore"].user.isStaging ? UisController_UISRecommendationAPI.STAGE : UisController_UISRecommendationAPI.PRODUCTION, requestOptions)
        .then(resp => {
        if (!resp.ok || resp.status < 200 || resp.status >= 300) {
            const message = `Error on posting ${signalName[signalType]} signals to UIS: ${resp.status} ${resp.statusText}`;
            UisController_logger.error(message);
            iaw_analytics["a" /* default */].logErrorEvent(eventIDs[signalType], {
                error: {
                    desc: message,
                    type: HomescreenError["c" /* HomescreenErrorTypes */].USER_INTENT_SERVICE,
                    code: HomescreenError["b" /* HomescreenErrorCodes */].USER_INTENT_SERVICE_RESPONSE_ERROR
                },
                ...eventData,
                layout: eventIDs[signalType],
                stage: MainStore["mainStore"].recentFilesStore.realOrArtificialLength > 0 ? 'stage2' : 'stage1',
                subtype: getEventSubtype(signalType)
            });
        }
        else {
            UisController_logger.log(`Successfully posted ${signalName[signalType]} signals to UIS`);
            iaw_analytics["a" /* default */].logSuccessEvent(StartIngestUtil["a" /* INGEST_EVENT_IDS */].SIGNALS, {
                stage: MainStore["mainStore"].recentFilesStore.realOrArtificialLength > 0 ? 'stage2' : 'stage1',
                ...eventData,
                layout: eventIDs[signalType],
                subtype: getEventSubtype(signalType)
            });
        }
    })
        .catch(error => {
        const message = `Error on posting ${signalName[signalType]} signals to UIS: ${error === null || error === void 0 ? void 0 : error.message.substring(0, 1024)}`;
        UisController_logger.error(message);
        iaw_analytics["a" /* default */].logErrorEvent(eventIDs[signalType], {
            error: {
                desc: message,
                type: HomescreenError["c" /* HomescreenErrorTypes */].USER_INTENT_SERVICE,
                code: HomescreenError["b" /* HomescreenErrorCodes */].USER_INTENT_SERVICE_RESPONSE_ERROR
            },
            ...eventData,
            layout: eventIDs[signalType],
            stage: MainStore["mainStore"].recentFilesStore.realOrArtificialLength > 0 ? 'stage2' : 'stage1',
            subtype: getEventSubtype(signalType)
        });
    });
}

// CONCATENATED MODULE: ./src/components/LayoutManager/HomeLayouts.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/











/**
 * These layouts are defined by the Yukon team:
 * https://docs.google.com/spreadsheets/d/1bYlxxP04Oni6aJvugzpcA9yrdYNpgOFb6xUCP4iqGZI
 */
const HomeLayouts = {
    'layout--home-two-banner-mx19': ({ experienceId, renderDynamicRecommendations, carouselRenderPosition, dynamicCardsData, multipleCards, stageName, layoutId, restartSlideShow, displayStarterBanner, }) => {
        var _a;
        const isRightToutCarousel = carouselRenderPosition === components_start_constants["e" /* DYNAMIC_RECOMMENDATIONS_CAROUSEL */].RIGHT;
        const cardType = (_a = MainStore["mainStore"].sidekickStore.carouselCardType) !== null && _a !== void 0 ? _a : (multipleCards ? "multipleCards" : "dynamicTout");
        return !platform["a" /* default */].isXD ? (renderDynamicRecommendations && !isRightToutCarousel ? (react_default.a.createElement(components_VLayout, null,
            react_default.a.createElement(components_NonGenuineBanner, null),
            react_default.a.createElement(components_CollapsibleContainer, { experienceId: experienceId, headerTitleId: applications["a" /* default */].headerTitleId(renderDynamicRecommendations), tooltipContentId: 'dhscr_header_information_tip', onChildrenUpdate: isUpdating => MainStore["mainStore"].setDisableNativeControls(isUpdating), analyticsProps: {
                    logEvent: iaw_analytics["a" /* default */].logClickedEvent,
                    containerAnalytics: {
                        component: 'carousel',
                        eventData: {
                            containerAnalyticsParams: Sophia["a" /* default */].getAnalyticsData(components_start_constants["k" /* default */].SURFACES.HOME),
                            stage: stageName,
                            layout: layoutId,
                        },
                    },
                }, hideButton: !(dynamicCardsData === null || dynamicCardsData === void 0 ? void 0 : dynamicCardsData.length) }, (dynamicCardsData === null || dynamicCardsData === void 0 ? void 0 : dynamicCardsData.length) && (react_default.a.createElement(components_HLayout, { unpadded: true },
                react_default.a.createElement(LayoutManager_Content, { qeId: "carousel-banner", usageId: "DynamicContentRecommendations", cardHeight: "short", id: "cardCarousel", smallStacked: true, component: "carousel", defaultComponent: "carousel", cardType: cardType, key: multipleCards ? "multipleCards" : "dynamicTout", animationDelay: 4000, cardsData: dynamicCardsData, handleToutFeedbackCallback: sendToutFeedbackToUis, ctaClickCallback: sendCustomCardClickToUis, restartSlideShowFlag: restartSlideShow, homeScreenCarouselOptions: applications["a" /* default */].homeScreenCarouselOptions })))),
            react_default.a.createElement(LayoutManager_Content, { id: "bottom", cardHeight: "medium", defaultComponent: "recents" }))) : (react_default.a.createElement(components_VLayout, null,
            react_default.a.createElement(components_NonGenuineBanner, null),
            react_default.a.createElement(components_CollapsibleContainer, { experienceId: experienceId, headerTitleId: applications["a" /* default */].headerTitleId(renderDynamicRecommendations), onChildrenUpdate: isUpdating => MainStore["mainStore"].setDisableNativeControls(isUpdating) },
                react_default.a.createElement(components_HLayout, { unpadded: true },
                    react_default.a.createElement(LayoutManager_Content, { qeId: "two-banner-left", cardHeight: "short", grow: true, id: "cardLeft", defaultComponent: "tout" }),
                    (dynamicCardsData === null || dynamicCardsData === void 0 ? void 0 : dynamicCardsData.length) && isRightToutCarousel ? (react_default.a.createElement(LayoutManager_Content, { qeId: "two-banner-right", usageId: "DynamicContentRecommendations", cardHeight: "short", id: "cardRight", smallStacked: true, component: "carousel", defaultComponent: "carousel", cardType: "rightCarouselCards", key: "dynamicTout", animationDelay: 4000, cardsData: dynamicCardsData, ctaClickCallback: sendCustomCardClickToUis, restartSlideShowFlag: restartSlideShow, homeScreenCarouselOptions: applications["a" /* default */].homeScreenCarouselOptions })) :
                        react_default.a.createElement(LayoutManager_Content, { qeId: "two-banner-right", cardHeight: "short", id: "cardRight", smallStacked: true, defaultComponent: "tout" }))),
            react_default.a.createElement(LayoutManager_Content, { id: "bottom", cardHeight: "medium", defaultComponent: "recents" })))) : (
        /* XD Layout */
        react_default.a.createElement(components_VLayout, null,
            react_default.a.createElement(LayoutManager_Content, Object.assign({}, (displayStarterBanner
                ? { id: 'starterBanner', defaultComponent: 'starterBanner' }
                : { id: 'welcomeMessage', defaultComponent: 'welcomeMessage' }))),
            react_default.a.createElement(components_HLayout, { row: true },
                react_default.a.createElement(LayoutManager_Content, { cardHeight: "short", grow: true, id: "cardLeft", component: "stickyPresetsDropdown", defaultComponent: "stickyPresetsDropdown" }),
                react_default.a.createElement(LayoutManager_Content, { cardHeight: "short", id: "cardRight", defaultComponent: "componentCarousel", homeScreenCarouselOptions: applications["a" /* default */].homeScreenCarouselOptions })),
            react_default.a.createElement(LayoutManager_Content, { id: "bottom", cardHeight: "medium", defaultComponent: "recents" })));
    },
    'layout-home-one-banner-xd': () => (react_default.a.createElement(components_VLayout, null,
        react_default.a.createElement(LayoutManager_Content, { id: "welcomeMessage", defaultComponent: "welcomeMessage" }),
        react_default.a.createElement(LayoutManager_Content, { id: "top", cardHeight: "shortXD", component: "stickyPresetsDropdown", defaultComponent: "stickyPresetsDropdown" }),
        react_default.a.createElement(components_HLayout, { unpadded: true },
            react_default.a.createElement(LayoutManager_Content, { cardHeight: "short", grow: true, id: "bottom", defaultComponent: "tout" })))),
};
/* harmony default export */ var LayoutManager_HomeLayouts = (HomeLayouts);

// CONCATENATED MODULE: ./src/components/LayoutManager/LearnLayout.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2020 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var LearnLayout_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;
};
var LearnLayout_metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};






// languages that are translated but have the tutorials in English
const partiallySupportedLanguages = ['ae', 'il'];
const hostUrls = {
    ILST: 'illustrator',
    PHXS: 'photoshop',
    IDSN: 'indesign',
    AEFT: 'after-effects',
    PPRO: 'premiere-pro',
    FLPR: 'animate',
    DRWV: 'dreamweaver',
    SPRK: 'xd',
};
const getTutorialsUrlFormat = host => hostUrls[host]
    ? host === 'SPRK'
        ? 'https://www.adobe.com/{country}/products/{host}/learn/get-started.html'
        : 'https://helpx.adobe.com/{country}/{host}/tutorials.html'
    : 'https://helpx.adobe.com/{country}/';
const getTutorialsUrl = (host, language) => {
    const url = getTutorialsUrlFormat(host);
    const territory = language.slice(3).toLowerCase();
    // zz_ZZ - Unknown language and territory fallback to "en"
    const shouldDisplayEnglishTutorials = (language.slice(0, 2) === 'en' && !partiallySupportedLanguages.includes(territory)) ||
        language.slice(0, 2) === 'zz';
    const country = shouldDisplayEnglishTutorials ? '' : `${territory}/`;
    return url.replace('{country}/', country).replace('{host}', hostUrls[host]);
};
let LearnLayout_LearnLayout = class LearnLayout extends react_default.a.Component {
    constructor() {
        super(...arguments);
        this.upEnabled = false;
    }
    async componentDidMount() {
        const unifiedPanelFlags = await applications["a" /* default */].getUnifiedPanelFeatureFlags();
        this.upEnabled = !!unifiedPanelFlags.isDeepLinkingEnabled || !!applications["a" /* default */].tutorialsDeepLinkingEnabled;
    }
    render() {
        const footerHeader = this.upEnabled ? 'common_search_tutorials_in_app' : 'common_find_more_tutorials';
        const footerCta = this.upEnabled
            ? {
                ctaText: 'common_search_for_tutorials',
                ctaDeeplinkData: {
                    data: {},
                    source: 'homeScreenOpenDiscover',
                },
                ctaAction: 'appEvent',
            }
            : {
                ctaText: 'common_go_to_adobe_com',
                ctaAction: 'externalURL',
                ctaUrl: getTutorialsUrl(applications["a" /* default */].id, applications["a" /* default */].language),
            };
        return (react_default.a.createElement(components_VLayout, null,
            react_default.a.createElement(LayoutManager_Content, { headerText: `${applications["a" /* default */].id}_inapp_tutorials_header`, descriptionText: `${applications["a" /* default */].id}_inapp_tutorials_description`, defaultComponent: "learnFeedInApp" }),
            react_default.a.createElement(LayoutManager_Content, { headerText: `${applications["a" /* default */].id}_web_tutorials_header`, descriptionText: `${applications["a" /* default */].id}_web_tutorials_description`, defaultComponent: "learnFeedWeb" }),
            react_default.a.createElement(LayoutManager_Content, { headerText: footerHeader, primaryCTA: footerCta, defaultComponent: "bannerBasic" })));
    }
};
LearnLayout_decorate([
    mobx_module["z" /* observable */],
    LearnLayout_metadata("design:type", Object)
], LearnLayout_LearnLayout.prototype, "upEnabled", void 0);
LearnLayout_LearnLayout = LearnLayout_decorate([
    index_module["e" /* observer */]
], LearnLayout_LearnLayout);
/* harmony default export */ var LayoutManager_LearnLayout = (LearnLayout_LearnLayout);

// CONCATENATED MODULE: ./src/components/LayoutManager/YukonParser.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/















/**
 * Given JSON data from the Yukon service, find the appropriate set of
 * layouts and components to render.
 */
class YukonParser_YukonParser {
    constructor(rawYukonJson, layoutDefinitions, customContentConfigurationYukonJSON) {
        this._logger = Logger["a" /* default */].get('YukonParser');
        this.data = rawYukonJson;
        this.customContentConfigurationData = customContentConfigurationYukonJSON;
        this.layoutDefinitions = layoutDefinitions;
    }
    /**
     * The particular layout is chosen by analyzing `stageConditions`, which
     * defines the criteria for choosing a layout (like number of recent files).
     * We return the stage ID, which points to a specific layout name.
     */
    getLayoutStage(numRecents) {
        return numRecents > 0 ? 'stage2' : 'stage1';
    }
    /**
     * Generate Browse CTA DeeplinkData depeding on type of event
     */
    generateBrowseCTA(ctaType, recommendationId) {
        switch (ctaType) {
            case components_start_constants["l" /* recommendationsCtaEvents */].inApp:
                return {
                    source: DeeplinkLaunch["a" /* UXPDeeplinkCommandSource */].inApp,
                    data: {
                        view: 'browse',
                        recommendationId,
                    },
                };
            case components_start_constants["l" /* recommendationsCtaEvents */].helpUsing:
            case components_start_constants["l" /* recommendationsCtaEvents */].helpKb:
                return {
                    source: DeeplinkLaunch["a" /* UXPDeeplinkCommandSource */].discoverView,
                    data: {},
                };
            case components_start_constants["l" /* recommendationsCtaEvents */].helpLearn:
                return {
                    source: DeeplinkLaunch["a" /* UXPDeeplinkCommandSource */].playlistBrowse,
                    data: {},
                };
            case components_start_constants["l" /* recommendationsCtaEvents */].quickAction:
                return {
                    source: DeeplinkLaunch["a" /* UXPDeeplinkCommandSource */].quickAction,
                    data: {}
                };
            default:
                const fallbackSource = DeeplinkLaunch["a" /* UXPDeeplinkCommandSource */].discoverView;
                this._logger.log(`Unknown ctaType - "${ctaType}". Building Browse CTA with source: ${fallbackSource}.`);
                return {
                    source: fallbackSource,
                    data: {},
                };
        }
    }
    /**
     * Prepare recommendations data to Carousel cards data
     */
    prepareCarouselCards(recommendations, hasMultipleCards, carouselRenderPosition, customContentConfigurationCards) {
        var _a;
        let customContentConfigurationCard = {};
        const hasCustomContentCardsArray = !!(customContentConfigurationCards === null || customContentConfigurationCards === void 0 ? void 0 : customContentConfigurationCards.length);
        const carouselCards = recommendations.map(card => {
            var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
            const isOpenedInDP = [DeeplinkLaunch["a" /* UXPDeeplinkCommandSource */].inApp, DeeplinkLaunch["a" /* UXPDeeplinkCommandSource */].quickAction].includes(DeeplinkLaunch["b" /* ctaEventsMap */][card.content.type]);
            const isCustomContent = card.content.type === components_start_constants["f" /* RECOMMENDATION_TYPE */].customContent;
            const isRightToutCarousel = carouselRenderPosition === components_start_constants["e" /* DYNAMIC_RECOMMENDATIONS_CAROUSEL */].RIGHT;
            if (isCustomContent) {
                customContentConfigurationCard = (customContentConfigurationCards === null || customContentConfigurationCards === void 0 ? void 0 : customContentConfigurationCards.length) && customContentConfigurationCards.find(customContentCard => { var _a; return customContentCard._path === ((_a = card === null || card === void 0 ? void 0 : card.content) === null || _a === void 0 ? void 0 : _a.id); });
                if (!customContentConfigurationCard) {
                    const message = `Custom Content Card was not found in Custom Content Configuration Cards Array: ${(_a = JSON.stringify(customContentConfigurationCards)) === null || _a === void 0 ? void 0 : _a.substring(0, 1024)}`;
                    const numRecents = MainStore["mainStore"].recentFilesStore.realOrArtificialLength;
                    const stageName = this.getLayoutStage(numRecents);
                    iaw_analytics["a" /* default */].logErrorEvent(StartIngestUtil["a" /* INGEST_EVENT_IDS */].CUSTOM_CONTENT_CONFIGURATION, {
                        error: {
                            desc: message,
                            type: HomescreenError["c" /* HomescreenErrorTypes */].CUSTOM_CONTENT_CONFIGURATION_CARDS,
                            code: HomescreenError["b" /* HomescreenErrorCodes */].CUSTOM_CARD_MISMATCH_WITH_CONTENT
                        },
                        contentId: (_b = card === null || card === void 0 ? void 0 : card.content) === null || _b === void 0 ? void 0 : _b.id,
                        contentType: card.type,
                        stage: stageName,
                        layout: components_start_constants["f" /* RECOMMENDATION_TYPE */].customContent,
                        recommendationsJson: Ututs["a" /* default */].recommendationsJsonData,
                        containerAnalyticsParams: Sophia["a" /* default */].getAnalyticsData(components_start_constants["k" /* default */].SURFACES.HOME),
                    });
                    return;
                }
                const image = customContentConfigurationCard.sideImage && Sophia["a" /* default */].getFullAssetPath(customContentConfigurationCard.sideImage);
                return {
                    ...customContentConfigurationCard,
                    image,
                    id: card.id,
                    type: card.type || "customContent",
                    title: hasMultipleCards || isRightToutCarousel ? (_c = card === null || card === void 0 ? void 0 : card.content) === null || _c === void 0 ? void 0 : _c.group : card.title,
                    source: card.source || ((_e = (_d = card === null || card === void 0 ? void 0 : card.primaryCTA) === null || _d === void 0 ? void 0 : _d.ctaDeeplinkData) === null || _e === void 0 ? void 0 : _e.source),
                    content: card.content,
                    autoHeight: true,
                    smallStacked: hasMultipleCards || isRightToutCarousel,
                    contentType: (_f = card.content) === null || _f === void 0 ? void 0 : _f.type,
                    cardType: hasMultipleCards || isRightToutCarousel ? "customContentCard" : "customContentTout",
                    modelMetadata: customContentConfigurationCard._metadata
                };
            }
            return {
                title: hasMultipleCards || isRightToutCarousel ? card.content.group : card.title,
                type: card.type,
                id: card.id,
                source: card.source,
                headerText: (_g = card.metadata) === null || _g === void 0 ? void 0 : _g.title,
                descriptionText: ((_j = (_h = card.metadata) === null || _h === void 0 ? void 0 : _h.descriptions) === null || _j === void 0 ? void 0 : _j.long) || ((_k = card.metadata) === null || _k === void 0 ? void 0 : _k.description),
                image: card.fullImagePath,
                duration: ((_l = card.metadata) === null || _l === void 0 ? void 0 : _l.duration_in_seconds) && (Math.round(parseInt((_m = card.metadata) === null || _m === void 0 ? void 0 : _m.duration_in_seconds) / 60) || 1),
                primaryCTA: {
                    title: `dhscr_card_${card.content.type.toLowerCase()}_cta`,
                    ctaDeeplinkData: {
                        source: DeeplinkLaunch["b" /* ctaEventsMap */][card.content.type],
                        data: {
                            aemID: card.aem_id || ((_o = card.content) === null || _o === void 0 ? void 0 : _o.id),
                            title: (_p = card.metadata) === null || _p === void 0 ? void 0 : _p.title,
                            ...(isOpenedInDP ? {} : { locale: card.locale }),
                            recommendationId: card.id,
                            uuid: card.tutorialUUID,
                            metadata: card.metadata,
                            content: card.content,
                            ctaUrl: (_r = (_q = card.metadata) === null || _q === void 0 ? void 0 : _q.urls) === null || _r === void 0 ? void 0 : _r.helpx,
                        },
                    },
                },
                secondaryCTA: {
                    title: 'dhscr_card_browse_more_cta',
                    shortTitle: 'dhscr_card_more_cta',
                    ctaDeeplinkData: this.generateBrowseCTA(card.content.type, card.id),
                },
                // used for analytics
                author: card.content.source,
                contentType: card.content.type,
                recommendationMetadata: card.metadata,
                modelMetadata: card.modelMetadata,
            };
        });
        // Custom Content Recommendation was not found in the Recommendations Array, although we have a Custom Content Cards Array in the Home surface
        if (hasCustomContentCardsArray && !applications["a" /* default */].hasCustomContentRecommendation) {
            const message = `No Custom Content Recommendation was found in the Recommendations Array: ${(_a = JSON.stringify(recommendations)) === null || _a === void 0 ? void 0 : _a.substring(0, 1024)}`;
            iaw_analytics["a" /* default */].logErrorEvent(StartIngestUtil["a" /* INGEST_EVENT_IDS */].CUSTOM_CONTENT_CONFIGURATION, {
                error: {
                    desc: message,
                    type: HomescreenError["c" /* HomescreenErrorTypes */].CUSTOM_CONTENT_CONFIGURATION_CARDS,
                    code: HomescreenError["b" /* HomescreenErrorCodes */].NO_CUSTOM_CONTENT_CARD_IN_RECOMMENDATIONS
                },
                recommendationsJson: Ututs["a" /* default */].recommendationsJsonData,
                containerAnalyticsParams: Sophia["a" /* default */].getAnalyticsData(components_start_constants["k" /* default */].SURFACES.HOME),
            });
            this._logger.warn(message);
        }
        return carouselCards.filter(card => card);
    }
    /**
     * Checks if a property is undefined in an object
     * @param obj object where to search
     * @param prop property to find
     * @returns the undefined path closest to the property or an empty string if the propery is defined
     */
    findUndefinedProperty(obj, prop) {
        let data = obj;
        const properties = prop.split('.');
        for (const [index, property] of properties.entries()) {
            data = data[property];
            if (!data) {
                return properties.slice(0, index + 1).join('.');
            }
        }
        return '';
    }
    checkToutsData() {
        const data = this.data.data.experienceHomeMx19ByPath.item;
        const logs = ['Content missing for the following properties:'];
        const propertiesToTest = {
            cardLeft: ['headerText', 'descriptionText|richDescriptionText.json'],
            cardRight: ['headerText', 'sideImage._path'],
            bottom: ['headerText', '_model._path'],
        };
        const hasStage1Presets = !this.findUndefinedProperty(data, 'stage1.cardLeft.presets');
        const hasStage2Presets = !this.findUndefinedProperty(data, 'stage2.cardLeft.presets');
        const checkValuesOfPropertyForStage = (stage, section, sectionProperty) => {
            // check if this property has alternative values
            // e.g. 'descriptionText|richDescriptionText.json' is valid if either `descriptionText` or `richDescriptionText.json` is present
            const stageValues = sectionProperty.split('|').map((value) => `${stage}.${section}.${value}`);
            const missingPropertyValues = stageValues.filter((property) => this.findUndefinedProperty(data, property));
            missingPropertyValues.length === stageValues.length && logs.push(missingPropertyValues.join(' or '));
        };
        for (const section in propertiesToTest) {
            for (const sectionProperty of propertiesToTest[section]) {
                // example of presets usage: in InDesign, we don't have text/pictures on the left
                // card for stage 2, but an array of presets for creating new documents
                if (!(section === 'cardLeft' && hasStage1Presets)) {
                    checkValuesOfPropertyForStage('stage1', section, sectionProperty);
                }
                if (section !== 'bottom' && !(section === 'cardLeft' && hasStage2Presets)) {
                    checkValuesOfPropertyForStage('stage2', section, sectionProperty);
                }
            }
            ['stage1', 'stage2'].forEach((stage) => {
                if (!this.findUndefinedProperty(data, `${stage}.${section}.bgImage`) &&
                    !this.findUndefinedProperty(data, `${stage}.${section}.sideImage`)) {
                    logs.push(`${stage}.${section} contains both bgImage and sideImage`);
                }
            });
        }
        this._logger.toggleLogToSidekick();
        logs.length > 1 && this._logger.log(...logs);
        this._logger.toggleLogToSidekick();
    }
    render() {
        var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
        const numRecents = MainStore["mainStore"].recentFilesStore.realOrArtificialLength;
        const stageName = this.getLayoutStage(numRecents);
        const stageData = (_c = (_b = (_a = this.data) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.experienceHomeMx19ByPath) === null || _c === void 0 ? void 0 : _c.item[stageName];
        const customContentConfigurationCards = (_g = (_f = (_e = (_d = this.customContentConfigurationData) === null || _d === void 0 ? void 0 : _d.data) === null || _e === void 0 ? void 0 : _e.customcontentconfigurationcardsByPath) === null || _f === void 0 ? void 0 : _f.item) === null || _g === void 0 ? void 0 : _g.customCards;
        const layoutId = Object(CommonUtils["e" /* getId */])((_h = stageData === null || stageData === void 0 ? void 0 : stageData._model) === null || _h === void 0 ? void 0 : _h._path);
        const Layout = this.layoutDefinitions[layoutId];
        let renderDynamicRecommendations = (stageData === null || stageData === void 0 ? void 0 : stageData.renderDynamicRecommendations) && Ututs["a" /* default */].hasValidRecommendations;
        // TODO : update this after UTUTS will setup flag and data
        // const multipleCards = stageData?.multipleCards && Ututs.hasMultipleCards;
        const multipleCards = stageData === null || stageData === void 0 ? void 0 : stageData.multipleCards;
        const carouselRenderPosition = (stageData === null || stageData === void 0 ? void 0 : stageData.dynamicRecommendationsCard) || components_start_constants["e" /* DYNAMIC_RECOMMENDATIONS_CAROUSEL */].FULL;
        const recommendations = Ututs["a" /* default */].recommendations;
        const dynamicCardsData = renderDynamicRecommendations && (recommendations === null || recommendations === void 0 ? void 0 : recommendations.length) &&
            this.prepareCarouselCards(recommendations, multipleCards, carouselRenderPosition, customContentConfigurationCards);
        !platform["a" /* default */].isXD && !renderDynamicRecommendations && this.checkToutsData();
        // if we should renderDynamicRecommendations but we do not have recommendations, log the error
        // do it when the `hasValidRecommendations` flag is set to `false` so that partial results are not considered errors
        if ((stageData === null || stageData === void 0 ? void 0 : stageData.renderDynamicRecommendations) && !recommendations.length && !Ututs["a" /* default */].hasValidRecommendations) {
            const numRecents = MainStore["mainStore"].recentFilesStore.realOrArtificialLength;
            const stageName = this.getLayoutStage(numRecents);
            iaw_analytics["a" /* default */].logErrorEvent('suggestions', {
                error: {
                    desc: 'There is not enough data to load the recommendation cards.',
                    type: 'network',
                },
                stage: stageName,
                layout: (_k = Object(CommonUtils["e" /* getId */])((_j = stageData === null || stageData === void 0 ? void 0 : stageData._model) === null || _j === void 0 ? void 0 : _j._path)) !== null && _k !== void 0 ? _k : '',
                recommendationsJson: Ututs["a" /* default */].recommendationsJsonData,
                containerAnalyticsParams: Sophia["a" /* default */].getAnalyticsData(components_start_constants["k" /* default */].SURFACES.HOME),
            });
            renderDynamicRecommendations = false;
        }
        if (!Layout) {
            const message = 'Layout ID not found in home content';
            MainStore["mainStore"].setShouldUseDefaultLayoutInFallbackMode(true, message, {
                workflow: MainStore["mainStore"].prefs.currentRoute,
                error: {
                    desc: MainStore["mainStore"].errorMessageForDefaultLayout || message,
                    type: 'fallback',
                },
                type: iaw_analytics["a" /* default */].ingestUtil.KEYS.EVENT_TYPE_ERROR,
            }, true);
            throw new Error(message);
        }
        return (react_default.a.createElement(ContentContext.Provider, { value: { ...stageData, stageName, layoutId, numRecents } },
            react_default.a.createElement(Layout, { experienceId: stageData === null || stageData === void 0 ? void 0 : stageData._path, stageName: stageName, layoutId: layoutId, renderDynamicRecommendations: renderDynamicRecommendations, dynamicCardsData: dynamicCardsData, multipleCards: multipleCards, carouselRenderPosition: carouselRenderPosition, restartSlideShow: MainStore["mainStore"].sidekickStore.restartSlideShow, displayStarterBanner: applications["a" /* default */].isStarterUser && applications["a" /* default */].isStarterBannerEnabled })));
    }
}

// CONCATENATED MODULE: ./src/components/LayoutManager/index.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var LayoutManager_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;
};















const userIsNotTargeted = container => container.errorCode === components_start_constants["b" /* CAMPAIGN_TARGETING_ERRORS */].NO_TARGETING_CAMPAIGN.ERROR_CODE || container.errorMessage === components_start_constants["b" /* CAMPAIGN_TARGETING_ERRORS */].NO_TARGETING_CAMPAIGN.ERROR_MESSAGE;
let LayoutManager_LayoutManager = class LayoutManager extends react_default.a.Component {
    constructor() {
        super(...arguments);
        this._logger = Logger["a" /* default */].get('FallbackComponent');
    }
    componentDidCatch(err, info) {
        this._logger.error(err + info.componentStack, {
            prefix: 'Failed to render layout due to content component render failure! Falling back...',
            error: true,
            route: MainStore["mainStore"].prefs.currentRoute,
        });
        // Clear the cache so we refetch data from Process as soon as we can.
        MainStore["mainStore"].clearCache(MainStore["mainStore"].prefs.currentRoute);
        // if error received in arguments is not HomescreenError instance, create it
        const homeScreenError = Object(HomescreenError["e" /* getHomescreenErrorInstance */])(err, err + info.componentStack, 'content-component', HomescreenError["b" /* HomescreenErrorCodes */].CONTENT_COMPONENT_ERROR);
        MainStore["mainStore"].setShouldUseDefaultLayoutInFallbackMode(true, `Content Component Error: ${homeScreenError.desc}`, {
            workflow: MainStore["mainStore"].prefs.currentRoute,
            error: homeScreenError,
            type: StartIngestUtil["c" /* default */].KEYS.EVENT_TYPE_ERROR,
        }, true);
    }
    checkRegressionOrRecover() {
        const redirected = localstorage["a" /* default */].getUserItem('wasRedirectedToDefaultLayout');
        if (!redirected && MainStore["mainStore"].shouldUseDefaultLayoutInFallbackMode) {
            this._logger.warn('User is regressing');
            localstorage["a" /* default */].setUserItem('wasRedirectedToDefaultLayout', true);
            iaw_analytics["a" /* default */].logRenderedEvent('regression', {
                value: MainStore["mainStore"].prefs.launchCount,
            }, { forceLogEventIfHomeScreenHidden: true });
        }
        else if (redirected === true && !MainStore["mainStore"].shouldUseDefaultLayoutInFallbackMode) {
            this._logger.log('User is recovering');
            localstorage["a" /* default */].setUserItem('wasRedirectedToDefaultLayout', false);
            iaw_analytics["a" /* default */].logRenderedEvent('recover', {
                value: MainStore["mainStore"].prefs.launchCount,
            }, { forceLogEventIfHomeScreenHidden: true });
        }
    }
    componentDidUpdate() {
        // when the Home screen is not visible we patch data in.
        // Check here for recovery if we apply late loaded data or broadcast.
        this.checkRegressionOrRecover();
    }
    componentDidMount() {
        // Need to check on the intial rendering of home screen for the status
        this.checkRegressionOrRecover();
    }
    render() {
        var _a, _b, _c, _d, _e, _f;
        if (MainStore["mainStore"].shouldRenderFallback && MainStore["mainStore"].prefs.currentRoute === 'home') {
            return react_default.a.createElement(LayoutManager_FallbackLayout, null);
        }
        // This component only renders the Home and Learn pages, as they
        // are the only pages that require dynamic content-based layout.
        try {
            switch (MainStore["mainStore"].prefs.currentRoute) {
                case 'home':
                    Sophia["a" /* default */].markUsage();
                    const homeYukonData = MainStore["mainStore"].sidekickStore.homeExperienceOverride ||
                        Sophia["a" /* default */].getSurfaceContent(components_start_constants["k" /* default */].SURFACES.HOME);
                    if (!((_a = homeYukonData === null || homeYukonData === void 0 ? void 0 : homeYukonData.data) === null || _a === void 0 ? void 0 : _a.experienceHomeMx19ByPath)) {
                        const message = `Home Yukon data is corrupt or not present: ${(_b = JSON.stringify(homeYukonData)) === null || _b === void 0 ? void 0 : _b.substring(0, 1024)}`;
                        const homeScreenError = new HomescreenError["a" /* HomescreenError */](MainStore["mainStore"].errorMessageForDefaultLayout || message, 'fallback', HomescreenError["b" /* HomescreenErrorCodes */].HOME_YUKON_DATA_MISSING);
                        MainStore["mainStore"].setShouldUseDefaultLayoutInFallbackMode(true, message, {
                            workflow: MainStore["mainStore"].prefs.currentRoute,
                            error: homeScreenError,
                            type: iaw_analytics["a" /* default */].ingestUtil.KEYS.EVENT_TYPE_ERROR,
                        }, true);
                        throw homeScreenError;
                    }
                    // Custom Content Cards
                    const customContentContainer = Sophia["a" /* default */].getCustomContentCardsContainer(components_start_constants["k" /* default */].SURFACES.HOME);
                    const customContentCardsData = ((_c = MainStore["mainStore"] === null || MainStore["mainStore"] === void 0 ? void 0 : MainStore["mainStore"].sidekickStore) === null || _c === void 0 ? void 0 : _c.customContentDCRHS) || (customContentContainer === null || customContentContainer === void 0 ? void 0 : customContentContainer.content);
                    const failedContainers = Sophia["a" /* default */].getSurfaceFailedContainers(components_start_constants["k" /* default */].SURFACES.HOME);
                    const shouldRenderCustomContentCards = !(failedContainers === null || failedContainers === void 0 ? void 0 : failedContainers.find(failedContainer => failedContainer.containerLabel === components_start_constants["d" /* CONTAINER_LABELS */].CUSTOM_CONTENT_CONFIGURATION_CARDS && userIsNotTargeted(failedContainer)));
                    if (!!customContentContainer && shouldRenderCustomContentCards && !((_d = customContentCardsData === null || customContentCardsData === void 0 ? void 0 : customContentCardsData.data) === null || _d === void 0 ? void 0 : _d.customcontentconfigurationcardsByPath)) {
                        const message = `Custom Content Configuration Cards data is corrupt or not present: ${(_e = JSON.stringify(customContentCardsData)) === null || _e === void 0 ? void 0 : _e.substring(0, 1024)}`;
                        const homeScreenError = new HomescreenError["a" /* HomescreenError */](message, HomescreenError["c" /* HomescreenErrorTypes */].CUSTOM_CONTENT_CONFIGURATION_CARDS, HomescreenError["b" /* HomescreenErrorCodes */].CUSTOM_CONTENT_CARDS_DATA_MISSING);
                        iaw_analytics["a" /* default */].logErrorEvent(StartIngestUtil["a" /* INGEST_EVENT_IDS */].CUSTOM_CONTENT_CONFIGURATION, {
                            error: homeScreenError,
                            stage: MainStore["mainStore"].recentFilesStore.realOrArtificialLength > 0 ? 'stage2' : 'stage1',
                            layout: (_f = failedContainers === null || failedContainers === void 0 ? void 0 : failedContainers.containerLabel) !== null && _f !== void 0 ? _f : components_start_constants["f" /* RECOMMENDATION_TYPE */].customContent,
                        });
                        this._logger.error(message);
                    }
                    return new YukonParser_YukonParser(homeYukonData, LayoutManager_HomeLayouts, customContentCardsData).render();
                case 'learn':
                    // Since we are rendering learn, we need to inform the CCXProcess
                    // to continue fetching learn.
                    Ututs["a" /* default */].markUsage();
                    return react_default.a.createElement(LayoutManager_LearnLayout, null);
                default:
                    return null;
            }
        }
        catch (err) {
            this._logger.error(err);
            this._logger.error('Failed to render layout! Falling back...');
            this._logger.log(`${err} ${err.stack}`, {
                error: true,
                prefix: 'Failed to render layout! Falling back...',
                route: MainStore["mainStore"].prefs.currentRoute,
            });
            /*
                Clear the cache for the current route.
                If home has an issue loading, we dump the Home/Learn surface data
                If learn has an issue loading, we dump the Ututs data as the Learn tab is
                not present is there is not Learn data. ie, Learn is fine, Ututs is bad.
            */
            MainStore["mainStore"].clearCache(MainStore["mainStore"].prefs.currentRoute);
            // To do [FUTURE PR]: Why do we have a spearate logging mechanism here?
            // We should just couple this with the below 'setShouldUseDefaultLayoutInFallbackMode'
            // and log the error payload to ingest. FRL should not be logging anyway.
            // Log the error here, only if not logged above using HomescreenError
            if (!MainStore["mainStore"].user.isFRL) {
                const homeScreenError = new HomescreenError["a" /* HomescreenError */](`${err} ${err.stack}`, MainStore["mainStore"].online ? HomescreenError["d" /* RenderErrorTypes */].LAYOUT : HomescreenError["d" /* RenderErrorTypes */].NETWORK, HomescreenError["b" /* HomescreenErrorCodes */].LAYOUT_RENDER_FAILED);
                iaw_analytics["a" /* default */].logErrorEvent('defaultLayout', {
                    route: MainStore["mainStore"].prefs.currentRoute,
                    error: homeScreenError,
                });
            }
            MainStore["mainStore"].setShouldUseDefaultLayoutInFallbackMode(true, 'Fallback Error', {}, false);
            return react_default.a.createElement(LayoutManager_FallbackLayout, null);
        }
    }
};
LayoutManager_LayoutManager = LayoutManager_decorate([
    index_module["e" /* observer */]
], LayoutManager_LayoutManager);
/* harmony default export */ var components_LayoutManager = (LayoutManager_LayoutManager);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/theme/Core.css
var Core = __webpack_require__("uOys");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/theme/CCXHomeScreen/Themes.css
var Themes = __webpack_require__("e4zO");

// CONCATENATED MODULE: ./src/components-start/app/App.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var App_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;
};
var App_metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};

























__webpack_require__("+Pe+");
__webpack_require__("6/vd");
const App_styles = __webpack_require__("hG2d");
/**
 * CDO Theme Imports for HS
 */




let App_App = class App extends react["Component"] {
    constructor(props, context) {
        super(props, context);
        this._dispatch = new Dispatch();
        this.handleScroll = Object(throttle["a" /* default */])(evt => {
            if (evt.target.scrollTop === 0) {
                this._dispatch.trigger(components_start_constants["k" /* default */].events.SCROLLTOTOP);
            }
            else {
                this._dispatch.trigger(components_start_constants["k" /* default */].events.SCROLLFROMTOP);
            }
        }, 40);
        this.handleStockCollectionsInitialized = (e) => {
            MainStore["mainStore"].setForceImage(e.detail, false);
            this.removeEventListeners();
        };
        this.handleStockCollectionsInitializationStart = () => {
            MainStore["mainStore"].setForceImage('', true);
        };
        // Handler for key down event on the document
        this.handleKeyDownEvent = evt => {
            if (applications["a" /* default */].hidesHomeScreenOnEscape && evt.keyCode === components_start_constants["k" /* default */].KEYS.ESC && !MainStore["mainStore"].isToastalOpen) {
                // Escape Key
                evt.preventDefault();
                applications["a" /* default */].hideHomeScreen();
            }
        };
        ccx_cdo["w" /* Stylesheets */].initializeFromHostProductData(applications["a" /* default */].CDOProductData);
        document.addEventListener('online', () => MainStore["mainStore"].setOnline(true));
        document.addEventListener('offline', () => MainStore["mainStore"].setOnline(false));
        /**
         * UXP-11000
         * There's a UXP (UXP-11000) issue where, anytime you click outside
         * of any focusable element, the document.activeElement will be undefined
         * and keyboard events are not reliably triggered within the react listeners.
         * This click handler gets triggered prior to any event handlers that React
         * receives. Because this is only way to capture this event, we try to check
         * if the click target is focusable element, otherwise, we will reset the
         * focus to a focusable element in our react tree.
         **/
        const main = document.getElementById('main');
        main &&
            main.addEventListener('click', e => {
                var _a, _b, _c;
                const focusableElements = Array.from(document.querySelectorAll(FocusManager["TABBABLE_ELEMENT_SELECTOR"]));
                if (!document.activeElement && (e === null || e === void 0 ? void 0 : e.target) && !focusableElements.includes(e.target)) {
                    if (MainStore["mainStore"].searchStore.showSearch) {
                        // since Search is not a spectrum overlay, we need to set focus
                        // on to it's container instead when Search is open
                        const searchContainer = document.getElementById('hs-search-container');
                        searchContainer && searchContainer.focus();
                    }
                    else {
                        // focus on the fallback
                        // this is a workaround for HS losing focus
                        // will make the provider node focusable, focus on it, then reset its tabIndex
                        // this is so that the user won't select it when they're tabbing through the app
                        // doing this with the DOM Node to avoid too many re-renders on clicks
                        (_a = this._providerNode) === null || _a === void 0 ? void 0 : _a.setAttribute('tabIndex', '0');
                        (_b = this._providerNode) === null || _b === void 0 ? void 0 : _b.focus();
                        (_c = this._providerNode) === null || _c === void 0 ? void 0 : _c.setAttribute('tabIndex', '-1');
                    }
                }
                else {
                    e.target.focus();
                }
            }, true);
    }
    getChildContext() {
        return {
            store: MainStore["mainStore"],
            host: applications["a" /* default */],
            dispatch: this._dispatch,
            ututs: {
                webTutorials: () => {
                    return Ututs["a" /* default */].webTutorials;
                },
                appTutorials: () => {
                    return Ututs["a" /* default */].appTutorials;
                },
                recommendations: () => {
                    return Ututs["a" /* default */].recommendations;
                },
                getFullAssetPath: asset => {
                    return Ututs["a" /* default */].getFullAssetPath(asset);
                },
                recommendationsJsonData: () => {
                    return Ututs["a" /* default */].recommendationsJsonData;
                },
                userIntentJson: () => {
                    return Ututs["a" /* default */].userIntentJson;
                }
            },
            platform: platform["a" /* default */],
            utils: {
                CallToActionHandler: CallToActionHandler,
                SharedSettings: start_SharedSettings["a" /* default */],
                replaceAppData: ReplaceAppDataTemplates["a" /* default */],
                getAppName: ReplaceAppDataTemplates["c" /* getAppName */],
                constants: components_start_constants["k" /* default */],
                sophia: Sophia["a" /* default */],
                analytics: iaw_analytics["a" /* default */],
            },
        };
    }
    get store() {
        return MainStore["mainStore"];
    }
    get intlLocale() {
        return applications["a" /* default */].language.replace('_', '-');
    }
    get theme() {
        return MainStore["mainStore"].colorTheme;
    }
    componentDidMount() {
        var _a;
        // At runtime delete the stored indexes for Carousels
        // from the firstmile-shared project
        const carouselInstances = localstorage["a" /* default */].getGlobalItem('carouselInstances') || [];
        carouselInstances.forEach(carouselInstance => {
            localstorage["a" /* default */].clearGlobalItem(carouselInstance);
        });
        // for XD this will set the body-is-xd class on the body, and we can use that to target XD-specific CSS
        ((_a = applications["a" /* default */] === null || applications["a" /* default */] === void 0 ? void 0 : applications["a" /* default */].homeScreenDisplayOptions) === null || _a === void 0 ? void 0 : _a.hostAppStyle) && document.body.classList.add(`body-${applications["a" /* default */].homeScreenDisplayOptions.hostAppStyle}`);
        if (MainStore["mainStore"].prefs.launchCount === 1) {
            //tracking first time user experience
            iaw_analytics["a" /* default */].logRenderedEvent('firstLaunch', {
                isFallback: MainStore["mainStore"].shouldUseDefaultLayoutInFallbackMode,
            }, { forceLogEventIfHomeScreenHidden: true });
        }
        window.addEventListener(components_start_constants["k" /* default */].CMDN_STOCK_EVENTS.INITIALIZATION_START, this.handleStockCollectionsInitializationStart);
        window.addEventListener(components_start_constants["k" /* default */].CMDN_STOCK_EVENTS.INITIALIZATION_END, this.handleStockCollectionsInitialized);
    }
    componentWillUnmount() {
        this.removeEventListeners();
    }
    removeEventListeners() {
        window.removeEventListener(components_start_constants["k" /* default */].CMDN_STOCK_EVENTS.INITIALIZATION_START, this.handleStockCollectionsInitializationStart);
        window.removeEventListener(components_start_constants["k" /* default */].CMDN_STOCK_EVENTS.INITIALIZATION_END, this.handleStockCollectionsInitialized);
    }
    render() {
        let children;
        if (MainStore["mainStore"].isLoading) {
            children = (react["createElement"](index_es["e" /* IntlProvider */], { locale: this.intlLocale, messages: this.store.messages, key: this.intlLocale },
                react["createElement"](LoadingState_LoadingState, { loading: false })));
        }
        else {
            children = (react["createElement"](index_es["e" /* IntlProvider */], { locale: this.intlLocale, messages: this.store.messages, key: this.intlLocale },
                react["createElement"]("div", { className: App_styles.container },
                    react["createElement"](components_MainWrapper, null,
                        react["createElement"](components_LayoutManager, null),
                        MainStore["mainStore"].prefs.currentRoute === 'learn' && Ututs["a" /* default */].hasThirdPartyContent && (react["createElement"](components_Disclaimer, { id: "third_party_learn_disclaimer" }))))));
        }
        return (react["createElement"](Provider_default.a, { theme: this.theme, productId: applications["a" /* default */].id, 
            //  This is a workaround to handle the input and overlay overlap issues in Ps and Ai
            //  https://wiki.corp.adobe.com/pages/viewpage.action?spaceKey=UXP&title=Proposal+for+overlapping+textedit+and+overlays
            //  https://wiki.corp.adobe.com/display/UXP/PS+UXP+Overlay+Issues
            disableNativeControls: MainStore["mainStore"].disableNativeControls, scale: "medium", onScroll: e => {
                e.persist();
                this.handleScroll(e);
            }, defaultpreventedkeys: applications["a" /* default */].shouldCaptureEscapeKey ? ['Escape'] : null, onKeyDown: this.handleKeyDownEvent, className: classnames_default()(App_styles.root, 'cdoCoreVariables', this.theme === 'dark' ? 'theme-dark' : 'theme-light', CommonUtils["a" /* UXPHelpers */].isUXP && 'is-uxp', applications["a" /* default */].homeScreenDisplayOptions.hostAppStyle), locale: this.intlLocale, ref: r => (this._providerNode = react_dom_default.a.findDOMNode(r)) }, children));
    }
};
App_App.childContextTypes = {
    store: prop_types_default.a.any,
    dispatch: prop_types_default.a.any,
    host: prop_types_default.a.any,
    utils: prop_types_default.a.any,
    ututs: prop_types_default.a.any,
    platform: prop_types_default.a.any,
};
App_App = App_decorate([
    index_module["e" /* observer */],
    App_metadata("design:paramtypes", [Object, Object])
], App_App);
/* harmony default export */ var app_App = (App_App);

// EXTERNAL MODULE: ./src/components-start/performance.tsx
var performance = __webpack_require__("r1jx");

// EXTERNAL MODULE: ./src/js/iaw/fetchAvatarUtil.tsx
var fetchAvatarUtil = __webpack_require__("LV4P");

// CONCATENATED MODULE: ./src/components-start/index.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var components_start_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;
};
var components_start_metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};




















const components_start_logger = Logger["a" /* default */].get('StartScreen');
// Make urgent request to CCXProcess for required neural filter model, if present in the data
const prefetchNeuralFilter = () => {
    try {
        const neuralFilterModelId = Sophia["a" /* default */].getNeuralFilterModelId();
        if (neuralFilterModelId) {
            Object(VulcanAPI["a" /* vulcanAPI */])().dispatch({
                type: components_start_constants["k" /* default */].NF_VULCAN_REQUEST,
                data: {
                    params: {
                        productCode: applications["a" /* default */].id,
                        productVersion: applications["a" /* default */].version,
                        id: neuralFilterModelId,
                    },
                    requestId: jsUtil["a" /* default */].generateGUID(),
                    version: 1,
                    urgent: true,
                },
            });
        }
    }
    catch (error) {
        iaw_analytics["a" /* default */].logErrorEvent('neuralFilterRequest', {
            error: {
                desc: `Error making request to CCXProces for Neural Filter Model: ${error.stack}`,
                type: 'neuralFilterRequest',
            },
        });
    }
};
class components_start_StartScreen {
    constructor() {
        this.initialStartTime = new Date();
    }
    /**
     * Initializes the Start Extension.
     *
     * A design principle in the init call is to not wait
     * for any initialization and get through the list of
     * calls as soon as possible. It is a responsibility
     * of each component to wait on the data before doing
     * the steps it needs to do.
     */
    async init() {
        components_start_logger.log(`CCX Start v${window.appVersionNumber}`);
        Object(CommonUtils["h" /* logUnhandledErrors */])();
        platform["a" /* default */].ready.then(() => {
            Object(performance["a" /* LogPerformance */])('UI Ready', this.initialStartTime.toISOString());
        });
        try {
            this.homePromise = Sophia["a" /* default */].init().then(prefetchNeuralFilter);
            this.learnPromise = Ututs["a" /* default */].init();
            // Trigger tasks
            const Tasks = [
                imsBridge["c" /* default */].init(applications["a" /* default */].shouldDoIMSLateLoad),
                i18n["a" /* default */].init(),
                MainStore["mainStore"].init(),
                platform["a" /* default */].init(),
                applications["a" /* default */].init(),
                start_SharedSettings["a" /* default */].init(),
            ];
            // Wait for the UI Color scheme to be known.
            await platform["a" /* default */].updateColorTheme();
            if (applications["a" /* default */].isCloudProjectsEnabled) {
                // only import & initialize the store if Projects are enabled
                applications["a" /* default */].initializeProjects();
            }
            // Show loading screen.
            react_dom["render"](react["createElement"](app_App, null), document.getElementById('main'));
            await Object(CommonUtils["b" /* allSettled */])(Tasks, (taskIndex, error) => {
                iaw_analytics["a" /* default */].logErrorEvent('initialize', {
                    error: {
                        desc: `StartScreen.init One of the initialization Tasks failed taskIndex: ${taskIndex}: ${error.stack}`,
                        type: 'initialization',
                    },
                });
            });
            Object(fetchAvatarUtil["a" /* fetchAvatar */])();
            // If the user left on CDO/Lightroom, we can fetch home data in background.
            const showPage = MainStore["mainStore"].prefs.currentRoute;
            if (showPage === 'learn') {
                await Object(CommonUtils["b" /* allSettled */])([this.learnPromise, this.homePromise]);
            }
            else if (showPage === 'home') {
                await this.homePromise;
            }
        }
        catch (error) {
            // Failsafe for any uncaught exceptions in this main StartScreen.init method
            components_start_logger.error('StartScreen.init threw an exception: ', error);
            iaw_analytics["a" /* default */].logErrorEvent('initialize', {
                error: {
                    desc: `StartScreen.init threw an exception: ${error.stack}`,
                    type: 'initialization',
                },
            });
        }
        MainStore["mainStore"].setLoading(false);
        Object(performance["a" /* LogPerformance */])('Interactive Ready', this.initialStartTime.toISOString());
        applications["a" /* default */].reportInteractiveReady();
    }
    async lateLoad() {
        const IndependentTasks = [
            iaw_analytics["a" /* default */].init(),
            applications["a" /* default */].lateLoad(),
            this.learnPromise,
            platform["a" /* default */].lateLoad(),
            MainStore["mainStore"].lateLoad(),
        ];
        await Promise.all(IndependentTasks);
    }
}
components_start_decorate([
    Object(performance["b" /* Time */])('Start Screen Init'),
    components_start_metadata("design:type", Function),
    components_start_metadata("design:paramtypes", []),
    components_start_metadata("design:returntype", Promise)
], components_start_StartScreen.prototype, "init", null);
components_start_decorate([
    Object(performance["b" /* Time */])('Late Loads'),
    components_start_metadata("design:type", Function),
    components_start_metadata("design:paramtypes", []),
    components_start_metadata("design:returntype", Promise)
], components_start_StartScreen.prototype, "lateLoad", null);
const screen = new components_start_StartScreen();
screen.init().then(async () => {
    // Adding a timeout to provide enough time to PS
    // to schedule render on the screen before calling
    // more main thread eating API.
    await Object(CommonUtils["i" /* timeout */])(10);
    try {
        await screen.lateLoad();
    }
    catch (e) {
        components_start_logger.error("StartScreen.lateLoad threw an exception: ", e);
        iaw_analytics["a" /* default */].logErrorEvent('lateLoad', {
            error: {
                desc: `StartScreen.lateLoad threw an exception: ${e.stack}`,
                type: 'initialization',
            },
        });
    }
    Object(performance["a" /* LogPerformance */])('All done', screen.initialStartTime.toISOString());
    applications["a" /* default */].reportPerformance();
});
/* harmony default export */ var components_start = __webpack_exports__["default"] = (screen);


/***/ }),

/***/ "Hvzi":
/***/ (function(module, exports) {

/**
 * Removes `key` and its value from the hash.
 *
 * @private
 * @name delete
 * @memberOf Hash
 * @param {Object} hash The hash to modify.
 * @param {string} key The key of the value to remove.
 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
 */
function hashDelete(key) {
  var result = this.has(key) && delete this.__data__[key];
  this.size -= result ? 1 : 0;
  return result;
}

module.exports = hashDelete;

/***/ }),

/***/ "Hwsl":
/***/ (function(module, exports, __webpack_require__) {

// extracted by mini-css-extract-plugin

/***/ }),

/***/ "Hxb1":
/***/ (function(module, exports, __webpack_require__) {

module.exports = __webpack_require__.p + "assets/start/XD_Preset_Desktop@2X.png";

/***/ }),

/***/ "HyxP":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {
  function adopt(value) {
    return value instanceof P ? value : new P(function (resolve) {
      resolve(value);
    });
  }

  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) : adopt(result.value).then(fulfilled, rejected);
    }

    step((generator = generator.apply(thisArg, _arguments || [])).next());
  });
};

var __generator = this && this.__generator || function (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
    };
  }
};

Object.defineProperty(exports, "__esModule", {
  value: true
});
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
// tslint:disable no-magic-numbers

__webpack_require__("cnSC");

var stringify_props_1 = __webpack_require__("45JA");
/**
 * Work-around for CCX-3236/ACPL-1438:
 *  ACPL/USS requires certain request header keys to be capitalized, so
 *  this table provides a map of those.
 */


var ACPL_CASED_HEADERS = {
  'authorization': 'Authorization',
  'accept': 'Accept',
  'content-disposition': 'Content-Disposition',
  'content-encoding': 'Content-Encoding',
  'content-language': 'Content-Language',
  'content-length': 'Content-Length',
  'content-location': 'Content-Location',
  'content-range': 'Content-Range',
  'content-security-policy': 'Content-Security-Policy',
  'content-security-policy-report-only': 'Content-Security-Policy-Report-Only',
  'content-type': 'Content-Type'
};
/**
 * Default class for request processors
 */

var RequestProcessor =
/** @class */
function () {
  function RequestProcessor(params) {
    this._userId = params.userId;
    this._cloudId = params.cloudId;
    this._connectionStatus = params.connectionStatus;
    this._useACPLocal = params.useACPLocal;
  }
  /**
   * Checks to see if the url matches the particular request processor
   * @param url
   */


  RequestProcessor.getWebStatusCode = function (acplStatusCode) {
    // Make sure the status code exists and has at least 3 digits
    if (!acplStatusCode || acplStatusCode < 100) {
      return 500;
    } // The first 3 digits of ACPL status codes correspond with HTTP status codes


    return Number(acplStatusCode.toString().slice(0, 3));
  };
  /**
   * Checks to see if the url matches the particular request processor
   * @param url
   */


  RequestProcessor.isAcplStatusSuccessful = function (acplStatusCode) {
    var webStatus = RequestProcessor.getWebStatusCode(acplStatusCode);

    if (webStatus >= 200 && webStatus < 300) {
      return true;
    } else {
      return false;
    }
  };
  /**
   * Checks to see if the url matches the particular request processor
   * @param url
   */


  RequestProcessor.isMatch = function (url, method) {
    return this.urlRegex.test(url) && this.method.includes(method);
  };
  /**
   * Helper to create new response
   * @param status
   * @param statusText
   * @param bodyJson
   */


  RequestProcessor.createResponse = function (status, statusText, bodyJson) {
    var bodyJsonString = typeof bodyJson === 'object' ? stringify_props_1.Stringify.stringify(bodyJson) : bodyJson;
    var responseInit = {
      status: status,
      statusText: statusText
    };
    return new Response(bodyJsonString, responseInit);
  };
  /**
   * Transforms the request for direct interaction with services, if needed
   * @param request
   * @param bodyJson
   */


  RequestProcessor.prototype.requestTransformWeb = function (request, additionalParams) {
    return __awaiter(this, void 0, void 0, function () {
      return __generator(this, function (_a) {
        return [2
        /*return*/
        , Promise.resolve(request)];
      });
    });
  };
  /**
   * Transforms the request for ACP.local, if needed
   * @param request
   * @param additionalParams
   */


  RequestProcessor.prototype.requestTransformAcpLocal = function (request, additionalParams) {
    return __awaiter(this, void 0, void 0, function () {
      var requestComponents;
      return __generator(this, function (_a) {
        requestComponents = {
          method: request.method,
          url: new acplocaljs.Uri(request.url),
          context: new acplocaljs.Context(request.url)
        };
        request.headers.forEach(function (value, key) {
          var checkedKey = ACPL_CASED_HEADERS[key] || key;
          requestComponents.context.setHeader(checkedKey, value);
        });
        requestComponents.context.setHeader('x-acpl-user-id', this._userId);
        requestComponents.context.setHeader('x-acpl-cloud-id', this._cloudId);
        return [2
        /*return*/
        , Promise.resolve(requestComponents)];
      });
    });
  };
  /**
   * Transforms the response for direct interaction with services, if needed
   * @param response
   */


  RequestProcessor.prototype.responseTransformWeb = function (response, additionalParams) {
    return __awaiter(this, void 0, void 0, function () {
      return __generator(this, function (_a) {
        return [2
        /*return*/
        , Promise.resolve(response)];
      });
    });
  };
  /**
   * Transforms the response for ACP.local, if needed
   * @param acplResponse
   * @param additionalParams
   */


  RequestProcessor.prototype.responseTransformAcpLocal = function (acplResponse, additionalParams) {
    return __awaiter(this, void 0, void 0, function () {
      var bodyJson, acplElementResponse, response;
      return __generator(this, function (_a) {
        acplElementResponse = acplResponse;

        if (acplElementResponse.element) {
          bodyJson = acplElementResponse.element;
        }

        response = RequestProcessor.createResponse(RequestProcessor.getWebStatusCode(acplResponse.statusCode), acplResponse.statusCode + " " + acplResponse.statusMessage, bodyJson);
        return [2
        /*return*/
        , Promise.resolve(response)];
      });
    });
  };

  RequestProcessor.urlRegex = new RegExp(/.*/);
  RequestProcessor.method = ['GET'];
  return RequestProcessor;
}();

exports.default = RequestProcessor;

/***/ }),

/***/ "HzlJ":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
/* @generated */

exports.default = {
  "locale": "en",
  "pluralRuleFunction": function (n, ord) {
    var s = String(n).split('.'),
        v0 = !s[1],
        t0 = Number(s[0]) == n,
        n10 = t0 && s[0].slice(-1),
        n100 = t0 && s[0].slice(-2);
    if (ord) return n10 == 1 && n100 != 11 ? 'one' : n10 == 2 && n100 != 12 ? 'two' : n10 == 3 && n100 != 13 ? 'few' : 'other';
    return n == 1 && v0 ? 'one' : 'other';
  },
  "fields": {
    "year": {
      "displayName": "year",
      "relative": {
        "0": "this year",
        "1": "next year",
        "-1": "last year"
      },
      "relativeTime": {
        "future": {
          "one": "in {0} year",
          "other": "in {0} years"
        },
        "past": {
          "one": "{0} year ago",
          "other": "{0} years ago"
        }
      }
    },
    "year-short": {
      "displayName": "yr.",
      "relative": {
        "0": "this yr.",
        "1": "next yr.",
        "-1": "last yr."
      },
      "relativeTime": {
        "future": {
          "one": "in {0} yr.",
          "other": "in {0} yr."
        },
        "past": {
          "one": "{0} yr. ago",
          "other": "{0} yr. ago"
        }
      }
    },
    "month": {
      "displayName": "month",
      "relative": {
        "0": "this month",
        "1": "next month",
        "-1": "last month"
      },
      "relativeTime": {
        "future": {
          "one": "in {0} month",
          "other": "in {0} months"
        },
        "past": {
          "one": "{0} month ago",
          "other": "{0} months ago"
        }
      }
    },
    "month-short": {
      "displayName": "mo.",
      "relative": {
        "0": "this mo.",
        "1": "next mo.",
        "-1": "last mo."
      },
      "relativeTime": {
        "future": {
          "one": "in {0} mo.",
          "other": "in {0} mo."
        },
        "past": {
          "one": "{0} mo. ago",
          "other": "{0} mo. ago"
        }
      }
    },
    "week": {
      "displayName": "week",
      "relativePeriod": "the week of {0}",
      "relative": {
        "0": "this week",
        "1": "next week",
        "-1": "last week"
      },
      "relativeTime": {
        "future": {
          "one": "in {0} week",
          "other": "in {0} weeks"
        },
        "past": {
          "one": "{0} week ago",
          "other": "{0} weeks ago"
        }
      }
    },
    "week-short": {
      "displayName": "wk.",
      "relativePeriod": "the week of {0}",
      "relative": {
        "0": "this wk.",
        "1": "next wk.",
        "-1": "last wk."
      },
      "relativeTime": {
        "future": {
          "one": "in {0} wk.",
          "other": "in {0} wk."
        },
        "past": {
          "one": "{0} wk. ago",
          "other": "{0} wk. ago"
        }
      }
    },
    "day": {
      "displayName": "day",
      "relative": {
        "0": "today",
        "1": "tomorrow",
        "-1": "yesterday"
      },
      "relativeTime": {
        "future": {
          "one": "in {0} day",
          "other": "in {0} days"
        },
        "past": {
          "one": "{0} day ago",
          "other": "{0} days ago"
        }
      }
    },
    "day-short": {
      "displayName": "day",
      "relative": {
        "0": "today",
        "1": "tomorrow",
        "-1": "yesterday"
      },
      "relativeTime": {
        "future": {
          "one": "in {0} day",
          "other": "in {0} days"
        },
        "past": {
          "one": "{0} day ago",
          "other": "{0} days ago"
        }
      }
    },
    "hour": {
      "displayName": "hour",
      "relative": {
        "0": "this hour"
      },
      "relativeTime": {
        "future": {
          "one": "in {0} hour",
          "other": "in {0} hours"
        },
        "past": {
          "one": "{0} hour ago",
          "other": "{0} hours ago"
        }
      }
    },
    "hour-short": {
      "displayName": "hr.",
      "relative": {
        "0": "this hour"
      },
      "relativeTime": {
        "future": {
          "one": "in {0} hr.",
          "other": "in {0} hr."
        },
        "past": {
          "one": "{0} hr. ago",
          "other": "{0} hr. ago"
        }
      }
    },
    "minute": {
      "displayName": "minute",
      "relative": {
        "0": "this minute"
      },
      "relativeTime": {
        "future": {
          "one": "in {0} minute",
          "other": "in {0} minutes"
        },
        "past": {
          "one": "{0} minute ago",
          "other": "{0} minutes ago"
        }
      }
    },
    "minute-short": {
      "displayName": "min.",
      "relative": {
        "0": "this minute"
      },
      "relativeTime": {
        "future": {
          "one": "in {0} min.",
          "other": "in {0} min."
        },
        "past": {
          "one": "{0} min. ago",
          "other": "{0} min. ago"
        }
      }
    },
    "second": {
      "displayName": "second",
      "relative": {
        "0": "now"
      },
      "relativeTime": {
        "future": {
          "one": "in {0} second",
          "other": "in {0} seconds"
        },
        "past": {
          "one": "{0} second ago",
          "other": "{0} seconds ago"
        }
      }
    },
    "second-short": {
      "displayName": "sec.",
      "relative": {
        "0": "now"
      },
      "relativeTime": {
        "future": {
          "one": "in {0} sec.",
          "other": "in {0} sec."
        },
        "past": {
          "one": "{0} sec. ago",
          "other": "{0} sec. ago"
        }
      }
    }
  }
};

/***/ }),

/***/ "I/DW":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


exports.__esModule = true;

var _propTypes = __webpack_require__("17x9");

var _propTypes2 = _interopRequireDefault(_propTypes);

var _componentOrElement = __webpack_require__("neHb");

var _componentOrElement2 = _interopRequireDefault(_componentOrElement);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

var _reactDom = __webpack_require__("i8i4");

var _reactDom2 = _interopRequireDefault(_reactDom);

var _getContainer = __webpack_require__("eF//");

var _getContainer2 = _interopRequireDefault(_getContainer);

var _ownerDocument = __webpack_require__("z9HI");

var _ownerDocument2 = _interopRequireDefault(_ownerDocument);

var _LegacyPortal = __webpack_require__("Po8x");

var _LegacyPortal2 = _interopRequireDefault(_LegacyPortal);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _classCallCheck(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}

function _possibleConstructorReturn(self, call) {
  if (!self) {
    throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
  }

  return call && (typeof call === "object" || typeof call === "function") ? call : self;
}

function _inherits(subClass, superClass) {
  if (typeof superClass !== "function" && superClass !== null) {
    throw new TypeError("Super expression must either be null or a function, not " + typeof superClass);
  }

  subClass.prototype = Object.create(superClass && superClass.prototype, {
    constructor: {
      value: subClass,
      enumerable: false,
      writable: true,
      configurable: true
    }
  });
  if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;
}
/**
 * The `<Portal/>` component renders its children into a new "subtree" outside of current component hierarchy.
 * You can think of it as a declarative `appendChild()`, or jQuery's `$.fn.appendTo()`.
 * The children of `<Portal/>` component will be appended to the `container` specified.
 */


var Portal = function (_React$Component) {
  _inherits(Portal, _React$Component);

  function Portal() {
    var _temp, _this, _ret;

    _classCallCheck(this, Portal);

    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.setContainer = function () {
      var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _this.props;
      _this._portalContainerNode = (0, _getContainer2.default)(props.container, (0, _ownerDocument2.default)(_this).body);
    }, _this.getMountNode = function () {
      return _this._portalContainerNode;
    }, _temp), _possibleConstructorReturn(_this, _ret);
  }

  Portal.prototype.componentDidMount = function componentDidMount() {
    this.setContainer();
    this.forceUpdate(this.props.onRendered);
  };

  Portal.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {
    if (nextProps.container !== this.props.container) {
      this.setContainer(nextProps);
    }
  };

  Portal.prototype.componentWillUnmount = function componentWillUnmount() {
    this._portalContainerNode = null;
  };

  Portal.prototype.render = function render() {
    return this.props.children && this._portalContainerNode ? _reactDom2.default.createPortal(this.props.children, this._portalContainerNode) : null;
  };

  return Portal;
}(_react2.default.Component);

Portal.displayName = 'Portal';
Portal.propTypes = {
  /**
   * A Node, Component instance, or function that returns either. The `container` will have the Portal children
   * appended to it.
   */
  container: _propTypes2.default.oneOfType([_componentOrElement2.default, _propTypes2.default.func]),
  onRendered: _propTypes2.default.func
};
exports.default = _reactDom2.default.createPortal ? Portal : _LegacyPortal2.default;
module.exports = exports['default'];

/***/ }),

/***/ "I2ZF":
/***/ (function(module, exports) {

/**
 * Convert array of 16 byte values to UUID string format of the form:
 * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
 */
var byteToHex = [];

for (var i = 0; i < 256; ++i) {
  byteToHex[i] = (i + 0x100).toString(16).substr(1);
}

function bytesToUuid(buf, offset) {
  var i = offset || 0;
  var bth = byteToHex; // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4

  return [bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]]].join('');
}

module.exports = bytesToUuid;

/***/ }),

/***/ "I7EI":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ViewportSize; });
/* unused harmony export VIEWPORT_DROPDOWN_NAV_REQUIRED */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return isSidebarHidden; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return getCurrentViewportSize; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return isVisibleElement; });
/* harmony import */ var lodash_throttle__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("DzJC");
/* harmony import */ var lodash_throttle__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash_throttle__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("2vnA");
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/


var ViewportSize;
(function (ViewportSize) {
    ViewportSize[ViewportSize["Mobile"] = 0] = "Mobile";
    ViewportSize[ViewportSize["Desktop"] = 1] = "Desktop";
})(ViewportSize || (ViewportSize = {}));
const VIEWPORT_DROPDOWN_NAV_REQUIRED = 900;
const resizeAtom = Object(mobx__WEBPACK_IMPORTED_MODULE_1__[/* createAtom */ "n"])('resize');
window.addEventListener('resize', lodash_throttle__WEBPACK_IMPORTED_MODULE_0___default()(() => resizeAtom.reportChanged(), 200));
function isSidebarHidden() {
    resizeAtom.reportObserved();
    return document.documentElement.clientWidth < VIEWPORT_DROPDOWN_NAV_REQUIRED;
}
function getCurrentViewportSize() {
    resizeAtom.reportObserved();
    // Using document element instead of body here as we read this before first render
    // and the body could have height 0 at that point.
    const { clientHeight, clientWidth } = document.documentElement;
    if (Math.min(clientWidth, clientHeight) < 500) {
        return ViewportSize.Mobile;
    }
    else {
        return ViewportSize.Desktop;
    }
}
function isVisibleElement(node) {
    if (!node) {
        return;
    }
    const { top, left, bottom, right } = node.getBoundingClientRect();
    const { clientHeight, clientWidth } = document.documentElement;
    return top >= 0 && left >= 0 && bottom <= clientHeight && right <= clientWidth;
}


/***/ }),

/***/ "IBDh":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("path", {
  d: "M32 9.044v15h2.565a.431.431 0 0 1 .262.724l-3.971 3.955a.5.5 0 0 1-.706 0l-3.963-3.954a.431.431 0 0 1 .262-.724h2.565l.006-15a1 1 0 0 1 1-1h.993a.988.988 0 0 1 .987.999z"
}), React.createElement("rect", {
  height: "4",
  rx: "1",
  ry: "1",
  width: "12",
  x: "2",
  y: "24"
}), React.createElement("rect", {
  height: "4",
  rx: "1",
  ry: "1",
  width: "16",
  x: "2",
  y: "16"
}), React.createElement("rect", {
  height: "4",
  rx: "1",
  ry: "1",
  width: "20",
  x: "2",
  y: "8"
}));

/***/ }),

/***/ "IDEf":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = __webpack_require__("FKvE")() ? Object.assign : __webpack_require__("9g66");

/***/ }),

/***/ "IFtk":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("zznw"),
      24: __webpack_require__("Ws/i")
    }
  }));
};

WrappedIcon.displayName = 'FullScreen';
exports.default = WrappedIcon;

/***/ }),

/***/ "IG1u":
/***/ (function(module, exports, __webpack_require__) {

/* WEBPACK VAR INJECTION */(function(global) {var Buffer = __webpack_require__("hwdV").Buffer;

var checkParameters = __webpack_require__("fSpj");

var defaultEncoding = __webpack_require__("n53Y");

var sync = __webpack_require__("4Hv8");

var toBuffer = __webpack_require__("i+bA");

var ZERO_BUF;
var subtle = global.crypto && global.crypto.subtle;
var toBrowser = {
  sha: 'SHA-1',
  'sha-1': 'SHA-1',
  sha1: 'SHA-1',
  sha256: 'SHA-256',
  'sha-256': 'SHA-256',
  sha384: 'SHA-384',
  'sha-384': 'SHA-384',
  'sha-512': 'SHA-512',
  sha512: 'SHA-512'
};
var checks = [];

function checkNative(algo) {
  if (global.process && !global.process.browser) {
    return Promise.resolve(false);
  }

  if (!subtle || !subtle.importKey || !subtle.deriveBits) {
    return Promise.resolve(false);
  }

  if (checks[algo] !== undefined) {
    return checks[algo];
  }

  ZERO_BUF = ZERO_BUF || Buffer.alloc(8);
  var prom = browserPbkdf2(ZERO_BUF, ZERO_BUF, 10, 128, algo).then(function () {
    return true;
  }).catch(function () {
    return false;
  });
  checks[algo] = prom;
  return prom;
}

var nextTick;

function getNextTick() {
  if (nextTick) {
    return nextTick;
  }

  if (global.process && global.process.nextTick) {
    nextTick = global.process.nextTick;
  } else if (global.queueMicrotask) {
    nextTick = global.queueMicrotask;
  } else if (global.setImmediate) {
    nextTick = global.setImmediate;
  } else {
    nextTick = global.setTimeout;
  }

  return nextTick;
}

function browserPbkdf2(password, salt, iterations, length, algo) {
  return subtle.importKey('raw', password, {
    name: 'PBKDF2'
  }, false, ['deriveBits']).then(function (key) {
    return subtle.deriveBits({
      name: 'PBKDF2',
      salt: salt,
      iterations: iterations,
      hash: {
        name: algo
      }
    }, key, length << 3);
  }).then(function (res) {
    return Buffer.from(res);
  });
}

function resolvePromise(promise, callback) {
  promise.then(function (out) {
    getNextTick()(function () {
      callback(null, out);
    });
  }, function (e) {
    getNextTick()(function () {
      callback(e);
    });
  });
}

module.exports = function (password, salt, iterations, keylen, digest, callback) {
  if (typeof digest === 'function') {
    callback = digest;
    digest = undefined;
  }

  digest = digest || 'sha1';
  var algo = toBrowser[digest.toLowerCase()];

  if (!algo || typeof global.Promise !== 'function') {
    getNextTick()(function () {
      var out;

      try {
        out = sync(password, salt, iterations, keylen, digest);
      } catch (e) {
        return callback(e);
      }

      callback(null, out);
    });
    return;
  }

  checkParameters(iterations, keylen);
  password = toBuffer(password, defaultEncoding, 'Password');
  salt = toBuffer(salt, defaultEncoding, 'Salt');
  if (typeof callback !== 'function') throw new Error('No callback provided to pbkdf2');
  resolvePromise(checkNative(algo).then(function (resp) {
    if (resp) return browserPbkdf2(password, salt, iterations, keylen, algo);
    return sync(password, salt, iterations, keylen, digest);
  }), callback);
};
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("yLpj")))

/***/ }),

/***/ "IGtv":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* unused harmony export ActionMenuForTests */
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("VIzJ");
/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("2vnA");
/* harmony import */ var mobx_react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("okNM");
/* harmony import */ var _react_react_spectrum_DropdownButton__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("6y7h");
/* harmony import */ var _react_react_spectrum_DropdownButton__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_DropdownButton__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var _react_react_spectrum_Menu__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("kzNO");
/* harmony import */ var _react_react_spectrum_Menu__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Menu__WEBPACK_IMPORTED_MODULE_5__);
/* harmony import */ var _react_react_spectrum_Icon_More__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("qeeD");
/* harmony import */ var _react_react_spectrum_Icon_More__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Icon_More__WEBPACK_IMPORTED_MODULE_6__);
/* harmony import */ var _utils_stop_propagation__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("m8Tk");
/* harmony import */ var _stores_SelectionStore__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("fr3g");
/* harmony import */ var _utils_wait__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__("3hUS");
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;
};
var __metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};










let ActionMenu = class ActionMenu extends react__WEBPACK_IMPORTED_MODULE_0__["Component"] {
    constructor() {
        super(...arguments);
        this.onSelect = async (value) => {
            var _a;
            const { actionMenuItems, element, onActionButtonClick } = this.props;
            const action = this.getActionByValue(value, this.getActiveItems(actionMenuItems));
            if (action) {
                await Object(_utils_wait__WEBPACK_IMPORTED_MODULE_9__[/* waitUntil */ "a"])((_a = document.activeElement) === null || _a === void 0 ? void 0 : _a.className.includes('spectrum-Menu-item'));
                onActionButtonClick(action, element);
            }
            else {
                console.error(`Could not find action assigned to ${value}`);
            }
        };
    }
    get selectionStore() {
        return new _stores_SelectionStore__WEBPACK_IMPORTED_MODULE_8__[/* default */ "a"]([this.props.element]);
    }
    getActiveItems(actionMenuItems = []) {
        return (actionMenuItems
            // For actions with dynamic content, use the function invocation to get itemData
            .map(item => (typeof item === 'function' ? item(this.selectionStore) : item))
            .filter(itemData => {
            try {
                return Boolean(itemData) && itemData.isVisible(this.selectionStore);
            }
            catch (error) {
                console.error('Error filtering action context menu', error.stack);
                return false;
            }
        }));
    }
    getActionByValue(value, actions) {
        return actions.reduce((action, a) => {
            if (typeof a === 'function') {
                a = a(this.selectionStore);
            }
            if (a.value === value) {
                action = a;
            }
            else if (a.children) {
                const childAction = this.getActionByValue(value, a.children);
                if (childAction) {
                    action = childAction;
                }
            }
            return action;
        }, undefined);
    }
    /**
     * Render context menu items recursively
     * @param {Action} button - The action button data
     */
    renderMenuItem(button) {
        var _a, _b, _c;
        const { disabled, intl } = this.props;
        // open-in app names are dynamically populated from host, so skip i18n
        const label = button.value.startsWith('openWithApp')
            ? button.label
            : intl.formatMessage({ id: `${button.actionMenuLabel || button.label}` });
        if ((_a = button.children) === null || _a === void 0 ? void 0 : _a.length) {
            const subMenu = this.getActiveItems(button.children);
            if (subMenu.length) {
                return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_react_react_spectrum_Menu__WEBPACK_IMPORTED_MODULE_5__["SubMenu"], { label: label }, subMenu.map(btn => this.renderMenuItem(btn))));
            }
            return null;
        }
        const isButtonDisabled = (_c = (_b = button.getIsButtonDisabled) === null || _b === void 0 ? void 0 : _b.call(button, this.props.element)) !== null && _c !== void 0 ? _c : false;
        const props = {
            // Screen readers should already be able to read the displayed label, but design specs call for aria-label attributes...
            'aria-label': label,
            role: 'button',
            key: button.value,
            id: `CDOItem_ActionMenu_${button.value}`,
            className: `CDOItem_ActionMenu_${button.value}`,
            value: button.value,
            label,
            disabled: isButtonDisabled || disabled,
            icon: button.icon,
        };
        return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_react_react_spectrum_Menu__WEBPACK_IMPORTED_MODULE_5__["MenuItem"], Object.assign({}, props));
    }
    /**
     * Component renderer.
     * @return {ReactElement} markup
     */
    render() {
        const { actionMenuItems, intl, className, disabled, onOpen, onClose, element, onKeyDown = _utils_stop_propagation__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"], ...otherProps } = this.props;
        // Remove disabled/hidden actions, which are represented as 'false'
        const buttons = this.getActiveItems(actionMenuItems || []);
        if (!buttons.length) {
            return null;
        }
        return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { onClick: _utils_stop_propagation__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"], onKeyDown: onKeyDown, className: className },
            react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_react_react_spectrum_DropdownButton__WEBPACK_IMPORTED_MODULE_4___default.a, Object.assign({ disabled: disabled, icon: react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_react_react_spectrum_Icon_More__WEBPACK_IMPORTED_MODULE_6___default.a, null), alignRight: true, id: "CDOItem_ActionMenu", onSelect: this.onSelect, onOpen: onOpen, onClose: onClose, "aria-label": intl.formatMessage({ id: 'action.menu.label' }), role: 'button' }, otherProps), buttons.map(button => this.renderMenuItem(button)))));
    }
};
ActionMenu.defaultProps = {
    disabled: false,
    actionMenuItems: [],
};
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_2__[/* computed */ "l"],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], ActionMenu.prototype, "selectionStore", null);
ActionMenu = __decorate([
    mobx_react__WEBPACK_IMPORTED_MODULE_3__[/* observer */ "e"]
], ActionMenu);
/* harmony default export */ __webpack_exports__["a"] = (Object(react_intl__WEBPACK_IMPORTED_MODULE_1__[/* injectIntl */ "g"])(ActionMenu));



/***/ }),

/***/ "IJdV":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = TabLine;

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}
/*************************************************************************
* ADOBE CONFIDENTIAL
* ___________________
*
* Copyright 2019 Adobe
* All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains
* the property of Adobe and its suppliers, if any. The intellectual
* and technical concepts contained herein are proprietary to Adobe
* and its suppliers and are protected by all applicable intellectual
* property laws, including trade secret and copyright laws.
* Dissemination of this information or reproduction of this material
* is strictly forbidden unless prior written permission is obtained
* from Adobe.
**************************************************************************/


function TabLine({
  orientation,
  selectedTab
}) {
  // Ideally this would be a DNA variable, but vertical tabs aren't even in DNA, soo...
  let verticalSelectionIndicatorOffset = 12;
  const style = {
    transform: orientation === 'vertical' ? `translateY(${selectedTab.offsetTop + verticalSelectionIndicatorOffset / 2}px)` : `translateX(${selectedTab.offsetLeft}px) `
  };

  if (orientation === 'horizontal') {
    style.width = `${selectedTab.offsetWidth}px`;
  } else {
    style.height = `${selectedTab.offsetHeight - verticalSelectionIndicatorOffset}px`;
  }

  return /*#__PURE__*/_react.default.createElement("div", {
    className: "spectrum-Tabs-selectionIndicator",
    role: "presentation",
    style: style
  });
}

/***/ }),

/***/ "ILpG":
/***/ (function(module, exports, __webpack_require__) {

!function (e, a) {
   true ? module.exports = a() : undefined;
}(this, function () {
  "use strict";

  return [{
    locale: "zu",
    pluralRuleFunction: function (e, a) {
      return a ? "other" : e >= 0 && e <= 1 ? "one" : "other";
    },
    fields: {
      year: {
        displayName: "Unyaka",
        relative: {
          0: "kulo nyaka",
          1: "unyaka ozayo",
          "-1": "onyakeni odlule"
        },
        relativeTime: {
          future: {
            one: "onyakeni ongu-{0} ozayo",
            other: "eminyakeni engu-{0} ezayo"
          },
          past: {
            one: "{0} unyaka odlule",
            other: "{0} iminyaka edlule"
          }
        }
      },
      "year-short": {
        displayName: "Unyaka",
        relative: {
          0: "kulo nyaka",
          1: "unyaka ozayo",
          "-1": "onyakeni odlule"
        },
        relativeTime: {
          future: {
            one: "onyakeni ongu-{0} ozayo",
            other: "eminyakeni engu-{0} ezayo"
          },
          past: {
            one: "{0} unyaka odlule",
            other: "{0} unyaka odlule"
          }
        }
      },
      month: {
        displayName: "Inyanga",
        relative: {
          0: "le nyanga",
          1: "inyanga ezayo",
          "-1": "inyanga edlule"
        },
        relativeTime: {
          future: {
            one: "enyangeni engu-{0}",
            other: "ezinyangeni ezingu-{0} ezizayo"
          },
          past: {
            one: "{0} inyanga edlule",
            other: "{0} izinyanga ezedlule"
          }
        }
      },
      "month-short": {
        displayName: "Inyanga",
        relative: {
          0: "le nyanga",
          1: "inyanga ezayo",
          "-1": "inyanga edlule"
        },
        relativeTime: {
          future: {
            one: "ezinyangeni ezingu-{0} ezizayo",
            other: "ezinyangeni ezingu-{0} ezizayo"
          },
          past: {
            one: "{0} izinyanga ezedlule",
            other: "{0} izinyanga ezedlule"
          }
        }
      },
      day: {
        displayName: "Usuku",
        relative: {
          0: "namhlanje",
          1: "kusasa",
          2: "usuku olulandela olwakusasa",
          "-2": "usuku olwandulela olwayizolo",
          "-1": "izolo"
        },
        relativeTime: {
          future: {
            one: "osukwini olungu-{0} oluzayo",
            other: "ezinsukwini ezingu-{0} ezizayo"
          },
          past: {
            one: "osukwini olungu-{0} olwedlule",
            other: "ezinsukwini ezingu-{0} ezedlule."
          }
        }
      },
      "day-short": {
        displayName: "Usuku",
        relative: {
          0: "namhlanje",
          1: "kusasa",
          2: "usuku olulandela olwakusasa",
          "-2": "usuku olwandulela olwayizolo",
          "-1": "izolo"
        },
        relativeTime: {
          future: {
            one: "osukwini olungu-{0} oluzayo",
            other: "ezinsukwini ezingu-{0} ezizayo"
          },
          past: {
            one: "{0} usuku olwedlule",
            other: "{0} izinsuku ezedlule"
          }
        }
      },
      hour: {
        displayName: "Ihora",
        relative: {
          0: "leli hora"
        },
        relativeTime: {
          future: {
            one: "ehoreni elingu-{0} elizayo",
            other: "emahoreni angu-{0} ezayo"
          },
          past: {
            one: "{0} ihora eledlule",
            other: "emahoreni angu-{0} edlule"
          }
        }
      },
      "hour-short": {
        displayName: "Ihora",
        relative: {
          0: "leli hora"
        },
        relativeTime: {
          future: {
            one: "ehoreni elingu-{0} elizayo",
            other: "emahoreni angu-{0} ezayo"
          },
          past: {
            one: "{0} ihora eledlule",
            other: "emahoreni angu-{0} edlule"
          }
        }
      },
      minute: {
        displayName: "Iminithi",
        relative: {
          0: "leli minithi"
        },
        relativeTime: {
          future: {
            one: "kuminithi elingu-{0} elizayo",
            other: "kumaminithi angu-{0} ezayo"
          },
          past: {
            one: "{0} iminithi eledlule",
            other: "{0} amaminithi edlule"
          }
        }
      },
      "minute-short": {
        displayName: "Iminithi",
        relative: {
          0: "leli minithi"
        },
        relativeTime: {
          future: {
            one: "kuminithi elingu-{0} elizayo",
            other: "kumaminithi angu-{0} ezayo"
          },
          past: {
            one: "{0} iminithi eledlule",
            other: "{0} amaminithi edlule"
          }
        }
      },
      second: {
        displayName: "Isekhondi",
        relative: {
          0: "manje"
        },
        relativeTime: {
          future: {
            one: "kusekhondi elingu-{0} elizayo",
            other: "kumasekhondi angu-{0} ezayo"
          },
          past: {
            one: "{0} isekhondi eledlule",
            other: "{0} amasekhondi edlule"
          }
        }
      },
      "second-short": {
        displayName: "Isekhondi",
        relative: {
          0: "manje"
        },
        relativeTime: {
          future: {
            one: "kusekhondi elingu-{0} elizayo",
            other: "kumasekhondi angu-{0} ezayo"
          },
          past: {
            one: "{0} isekhondi eledlule",
            other: "{0} amasekhondi edlule"
          }
        }
      }
    }
  }];
});

/***/ }),

/***/ "IP/H":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _SpEventUtils = __webpack_require__("XU6Z");

var _autobindDecorator = _interopRequireDefault(__webpack_require__("gKdT"));

var _Checkbox = _interopRequireDefault(__webpack_require__("th6M"));

var _convertUnsafeMethod = _interopRequireDefault(__webpack_require__("8nyd"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

const _excluded = ["indeterminate", "label", "className", "children", "invalid", "quiet", "disabled", "renderLabel"];

var _class;

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

let SpUxpCheckbox = (0, _convertUnsafeMethod.default)(_class = (0, _autobindDecorator.default)(_class = class SpUxpCheckbox extends _Checkbox.default {
  constructor(props) {
    super(props);
    const {
      checked,
      defaultChecked
    } = props;
    this.state = {
      checked: checked !== undefined ? checked : defaultChecked || false
    };
    this.spCheckboxRef = /*#__PURE__*/_react.default.createRef();
  }

  UNSAFE_componentWillReceiveProps(nextProps) {
    if ('checked' in nextProps) {
      this.setState({
        checked: nextProps.checked
      });
    }
  }

  setChecked(checked) {
    if (!('checked' in this.props)) {
      this.setState({
        checked
      });
    }
  }

  handleEvent(event) {
    if (event.type === 'change') {
      const {
        checked
      } = event.target;
      this.setChecked(checked);
    }

    const eventName = Object.keys(this.props).filter(propName => propName.substr(2).toLowerCase() === event.type);

    if (this.props[eventName]) {
      this.props[eventName].call(event.target, event);
    }
  }

  componentDidMount() {
    (0, _SpEventUtils.attachEventListeners)(this.spCheckboxRef.current, this.props, this.handleEvent);
  }

  componentWillUnmount() {
    (0, _SpEventUtils.removeEventListeners)(this.spCheckboxRef.current, this.props, this.handleEvent);
  }

  componentDidUpdate(prevProps) {
    this.updateAllEventListeners = !(0, _SpEventUtils.updateEventListeners)(this.spCheckboxRef.current, prevProps, this.props, this.handleEvent, this.updateAllEventListeners);
  }

  render() {
    const _this$props = this.props,
          {
      indeterminate,
      label,
      className,
      children,
      invalid,
      quiet,
      disabled,
      renderLabel
    } = _this$props,
          otherProps = _objectWithoutProperties(_this$props, _excluded);

    let labelContents = label || (typeof children === 'string' ? children : null);
    delete otherProps.checked;
    return /*#__PURE__*/_react.default.createElement("sp-checkbox", _extends({
      ref: this.spCheckboxRef,
      class: className,
      checked: this.state.checked ? true : null,
      emphasized: !quiet ? true : null,
      invalid: invalid ? true : null,
      indeterminate: indeterminate ? true : null,
      disabled: disabled ? true : null
    }, (0, _SpEventUtils.removeEventProps)(otherProps)), renderLabel && labelContents, typeof children !== 'string' && children);
  }

}) || _class) || _class;

exports.default = SpUxpCheckbox;

/***/ }),

/***/ "IP1Z":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var $defineProperty = __webpack_require__("2faE");

var createDesc = __webpack_require__("rr1i");

module.exports = function (object, index, value) {
  if (index in object) $defineProperty.f(object, index, createDesc(0, value));else object[index] = value;
};

/***/ }),

/***/ "IPZY":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


const decoders = exports;
decoders.der = __webpack_require__("z71Z");
decoders.pem = __webpack_require__("jfd1");

/***/ }),

/***/ "IPox":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("path", {
  d: "M19 6h-2a1 1 0 0 0-1 1v10.586a1 1 0 0 0 .293.707L21.9 23.9a1 1 0 0 0 1.414 0l1.336-1.336a1 1 0 0 0 0-1.414l-4.357-4.357a1 1 0 0 1-.293-.707V7a1 1 0 0 0-1-1z"
}), React.createElement("path", {
  d: "M18 2A15.946 15.946 0 0 0 6.856 6.519 13.129 13.129 0 0 0 2.847 14H.585a.5.5 0 0 0-.416.777L4 20l5.146-5.146A.5.5 0 0 0 8.793 14H4.969a11.707 11.707 0 0 1 3.489-6.245A14 14 0 1 1 8.1 27.9l-1.413 1.413A16 16 0 1 0 18 2z"
}));

/***/ }),

/***/ "ITfd":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var utils = __webpack_require__("w8CP");

var assert = __webpack_require__("2j6C");

function Hmac(hash, key, enc) {
  if (!(this instanceof Hmac)) return new Hmac(hash, key, enc);
  this.Hash = hash;
  this.blockSize = hash.blockSize / 8;
  this.outSize = hash.outSize / 8;
  this.inner = null;
  this.outer = null;

  this._init(utils.toArray(key, enc));
}

module.exports = Hmac;

Hmac.prototype._init = function init(key) {
  // Shorten key, if needed
  if (key.length > this.blockSize) key = new this.Hash().update(key).digest();
  assert(key.length <= this.blockSize); // Add padding to key

  for (var i = key.length; i < this.blockSize; i++) key.push(0);

  for (i = 0; i < key.length; i++) key[i] ^= 0x36;

  this.inner = new this.Hash().update(key); // 0x36 ^ 0x5c = 0x6a

  for (i = 0; i < key.length; i++) key[i] ^= 0x6a;

  this.outer = new this.Hash().update(key);
};

Hmac.prototype.update = function update(msg, enc) {
  this.inner.update(msg, enc);
  return this;
};

Hmac.prototype.digest = function digest(enc) {
  this.outer.update(this.inner.digest());
  return this.outer.digest(enc);
};

/***/ }),

/***/ "IU7p":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

const _excluded = ["styles"];

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }

function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

var _default = _ref => {
  let {
    styles = {}
  } = _ref,
      props = _objectWithoutProperties(_ref, _excluded);

  return /*#__PURE__*/_react.default.createElement("svg", _extends({
    version: "1.1",
    id: "Layer_1",
    xmlns: "http://www.w3.org/2000/svg",
    x: "0",
    y: "0",
    viewBox: "0 0 344 344",
    xmlSpace: "preserve"
  }, props), /*#__PURE__*/_react.default.createElement("g", {
    id: "ICONS_96"
  }, /*#__PURE__*/_react.default.createElement("path", {
    className: styles["st0"] || "st0",
    d: "M292.4 98.9c14.2 0 25.8 11.6 25.8 25.8v94.6c0 14.2-11.6 25.8-25.8 25.8H51.6c-14.2 0-25.8-11.6-25.8-25.8v-94.6c0-14.2 11.6-25.8 25.8-25.8h240.8zm0-8.6H51.6c-19 0-34.4 15.4-34.4 34.4v94.6c0 19 15.4 34.4 34.4 34.4h240.8c19 0 34.4-15.4 34.4-34.4v-94.6c0-19-15.4-34.4-34.4-34.4z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["st0"] || "st0",
    d: "M275.2 122.6c5.9 0 10.8 4.8 10.8 10.8s-4.8 10.8-10.8 10.8-10.8-4.8-10.8-10.8c.1-6 4.9-10.8 10.8-10.8zm0-6.5c-9.5 0-17.2 7.7-17.2 17.2s7.7 17.2 17.2 17.2 17.2-7.7 17.2-17.2-7.7-17.2-17.2-17.2z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["st0"] || "st0",
    d: "M227.9 144.1c5.9 0 10.8 4.8 10.8 10.8s-4.8 10.8-10.8 10.8c-5.9 0-10.8-4.8-10.8-10.8.1-6 4.9-10.8 10.8-10.8zm0-6.5c-9.5 0-17.2 7.7-17.2 17.2s7.7 17.2 17.2 17.2 17.2-7.7 17.2-17.2-7.7-17.2-17.2-17.2z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["st0"] || "st0",
    d: "M275.2 178.4c5.9 0 10.8 4.8 10.8 10.8s-4.8 10.8-10.8 10.8-10.8-4.8-10.8-10.8c.1-5.9 4.9-10.7 10.8-10.8zm0-6.4c-9.5 0-17.2 7.7-17.2 17.2s7.7 17.2 17.2 17.2 17.2-7.7 17.2-17.2-7.7-17.2-17.2-17.2z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["st0"] || "st0",
    d: "M227.9 199.9c5.9 0 10.8 4.8 10.8 10.8s-4.8 10.8-10.8 10.8c-5.9 0-10.8-4.8-10.8-10.8.1-5.9 4.9-10.7 10.8-10.8zm0-6.4c-9.5 0-17.2 7.7-17.2 17.2s7.7 17.2 17.2 17.2 17.2-7.7 17.2-17.2-7.7-17.2-17.2-17.2z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["st0"] || "st0",
    d: "M90.3 144.1c1.2 0 2.1 1 2.1 2.1v19.4h19.4c1.2 0 2.1 1 2.1 2.1v8.6c0 1.2-1 2.1-2.1 2.1H92.4v19.4c0 1.2-1 2.1-2.1 2.1h-8.6c-1.2 0-2.1-1-2.1-2.1v-19.4H60.2c-1.2 0-2.1-1-2.2-2.1v-8.6c0-1.2 1-2.1 2.2-2.1h19.4v-19.4c0-1.2 1-2.1 2.1-2.1h8.6zm0-6.5h-8.6c-4.7 0-8.6 3.9-8.6 8.6v12.9H60.2c-4.7 0-8.6 3.9-8.6 8.6v8.6c0 4.7 3.9 8.6 8.6 8.6h12.9v12.9c0 4.7 3.9 8.6 8.6 8.6h8.6c4.7 0 8.6-3.9 8.6-8.6v-12.9h12.9c4.7 0 8.6-3.9 8.6-8.6v-8.6c0-4.7-3.9-8.6-8.6-8.6H98.9v-12.9c0-4.7-3.9-8.6-8.6-8.6z"
  })));
};

exports.default = _default;

/***/ }),

/***/ "IZDi":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;
/*************************************************************************
* ADOBE CONFIDENTIAL
* ___________________
*
* Copyright 2019 Adobe
* All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains
* the property of Adobe and its suppliers, if any. The intellectual
* and technical concepts contained herein are proprietary to Adobe
* and its suppliers and are protected by all applicable intellectual
* property laws, including trade secret and copyright laws.
* Dissemination of this information or reproduction of this material
* is strictly forbidden unless prior written permission is obtained
* from Adobe.
**************************************************************************/

class Timer {
  constructor(callback, delay) {
    this.callback = callback;
    this.remaining = delay;
    this.resume();
  }

  pause() {
    window.clearTimeout(this.timerId);
    this.remaining -= new Date() - this.start;
  }

  resume() {
    this.start = new Date();

    if (this.timerId) {
      window.clearTimeout(this.timerId);
    }

    this.timerId = window.setTimeout(this.callback, this.remaining);
  }

}

exports.default = Timer;

/***/ }),

/***/ "IftT":
/***/ (function(module) {

module.exports = JSON.parse("{\"Breadcrumbs\":\"導覽列\"}");

/***/ }),

/***/ "Ijbi":
/***/ (function(module, exports, __webpack_require__) {

var arrayLikeToArray = __webpack_require__("WkPL");

function _arrayWithoutHoles(arr) {
  if (Array.isArray(arr)) return arrayLikeToArray(arr);
}

module.exports = _arrayWithoutHoles;
module.exports["default"] = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "Ijf8":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.getConfigValue = getConfigValue;

var _stage = __webpack_require__("OCL2");

var stage = _interopRequireWildcard(_stage);

var _prod = __webpack_require__("kmgx");

var prod = _interopRequireWildcard(_prod);

function _interopRequireWildcard(obj) {
  if (obj && obj.__esModule) {
    return obj;
  } else {
    var newObj = {};

    if (obj != null) {
      for (var key in obj) {
        if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];
      }
    }

    newObj.default = obj;
    return newObj;
  }
}
/**
 * Get the config value depending on the environment
 * @param {string} env - the environment. 'prod' or 'stage'
 * @param {string} key - the field name the caller wants to know the value of
 * @return {Object} the value
 */


function getConfigValue(env, key) {
  var environmentConstants = void 0;

  if (env === 'prod') {
    environmentConstants = prod;
  } else {
    environmentConstants = stage;
  }

  return environmentConstants[key];
}

/***/ }),

/***/ "Incl":
/***/ (function(module, exports, __webpack_require__) {

module.exports = __webpack_require__.p + "assets/start/XD_Explore_The_Power_Of_XD@2x.jpg";

/***/ }),

/***/ "Ioao":
/***/ (function(module, exports, __webpack_require__) {

var apply = __webpack_require__("heNW");
/* Built-in method references for those with the same name as other `lodash` methods. */


var nativeMax = Math.max;
/**
 * A specialized version of `baseRest` which transforms the rest array.
 *
 * @private
 * @param {Function} func The function to apply a rest parameter to.
 * @param {number} [start=func.length-1] The start position of the rest parameter.
 * @param {Function} transform The rest array transform.
 * @returns {Function} Returns the new function.
 */

function overRest(func, start, transform) {
  start = nativeMax(start === undefined ? func.length - 1 : start, 0);
  return function () {
    var args = arguments,
        index = -1,
        length = nativeMax(args.length - start, 0),
        array = Array(length);

    while (++index < length) {
      array[index] = args[start + index];
    }

    index = -1;
    var otherArgs = Array(start + 1);

    while (++index < start) {
      otherArgs[index] = args[index];
    }

    otherArgs[start] = transform(array);
    return apply(func, this, otherArgs);
  };
}

module.exports = overRest;

/***/ }),

/***/ "IqbI":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("path", {
  d: "M38.071 9.928a19.9 19.9 0 1 0 0 28.143 19.9 19.9 0 0 0 0-28.143zm-6.294 23.547a1 1 0 0 1-1.414 0L24 27.111l-6.364 6.364a1 1 0 0 1-1.414 0l-1.7-1.7a1 1 0 0 1 0-1.414L20.888 24l-6.363-6.363a1 1 0 0 1 0-1.415l1.7-1.7a1 1 0 0 1 1.414 0L24 20.888l6.364-6.363a1 1 0 0 1 1.415 0l1.695 1.7a1 1 0 0 1 0 1.414L27.112 24l6.362 6.363a1 1 0 0 1 0 1.414z"
}));

/***/ }),

/***/ "IsP1":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("path", {
  d: "M19.011 20.333v-2.084a1.442 1.442 0 0 1 .367-.93 11 11 0 0 0 2.5-6.866c0-5.2-2.756-8.1-6.919-8.1s-7 3.018-7 8.1a11.121 11.121 0 0 0 2.622 6.865 1.442 1.442 0 0 1 .367.93v2.074A1.431 1.431 0 0 1 9.7 21.768C1.338 22.5.031 28.218.031 30.474c0 .251.03 3.237.048 3.484h29.842s.026-3.234.026-3.484c0-2.163-1.478-7.864-9.691-8.7a1.437 1.437 0 0 1-1.245-1.441z"
}), React.createElement("path", {
  d: "M27.374 19.534a1.342 1.342 0 0 1-1.16-1.346v-1.013a1.531 1.531 0 0 1 .342-.867 12.144 12.144 0 0 0 1.869-6.4c0-4.354-2.57-7.552-6.452-7.552-.232 0-.445.042-.668.062a10.931 10.931 0 0 1 2.974 8.037 13.46 13.46 0 0 1-2.869 8.171v.874c8.622 1.281 10.936 7.667 10.936 10.972 0 .108 0 .768-.01 1.484h3.586s.024-3.15.024-3.384a9.564 9.564 0 0 0-8.572-9.038z"
}));

/***/ }),

/***/ "IuDI":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

const _excluded = ["styles"];

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }

function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

var _default = _ref => {
  let {
    styles = {}
  } = _ref,
      props = _objectWithoutProperties(_ref, _excluded);

  return /*#__PURE__*/_react.default.createElement("svg", _extends({
    xmlns: "http://www.w3.org/2000/svg",
    "data-name": "S_Illu_PresetFilmVideo_172_L@2x",
    height: "344",
    id: "S_Illu_PresetFilmVideo_172_L_2x",
    viewBox: "0 0 344 344",
    width: "344"
  }, props), /*#__PURE__*/_react.default.createElement("defs", null), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M275.87 250H68.129A8.268 8.268 0 0 1 60 241.618V104.382A8.268 8.268 0 0 1 68.129 96H275.87a8.268 8.268 0 0 1 8.13 8.382v137.236a8.268 8.268 0 0 1-8.13 8.382zM68.129 102A2.268 2.268 0 0 0 66 104.382v137.236A2.268 2.268 0 0 0 68.129 244H275.87a2.3 2.3 0 0 0 2.13-2.382V104.382a2.268 2.268 0 0 0-2.13-2.382z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M150.608 187.5a4.571 4.571 0 0 1-2.507-.75 4.635 4.635 0 0 1-2.1-3.895v-42.709a4.635 4.635 0 0 1 2.1-3.895 4.567 4.567 0 0 1 4.348-.363l48.757 21.353a4.643 4.643 0 0 1 0 8.518l-48.757 21.353a4.588 4.588 0 0 1-1.841.388zm0-48a.574.574 0 0 0-.317.1.631.631 0 0 0-.289.546v42.708a.631.631 0 0 0 .289.546.565.565 0 0 0 .555.048L199.6 162.1a.643.643 0 0 0 0-1.19l-48.757-21.353a.59.59 0 0 0-.237-.057z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M263 228H137a3 3 0 0 1 0-6h126a3 3 0 0 1 0 6z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M99 228H81a3 3 0 0 1 0-6h18a3 3 0 0 1 0 6z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M118 235a10 10 0 1 1 10-10 10.011 10.011 0 0 1-10 10zm0-16a6 6 0 1 0 6 6 6.006 6.006 0 0 0-6-6z"
  }));
};

exports.default = _default;

/***/ }),

/***/ "IvMV":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXPORTS
__webpack_require__.d(__webpack_exports__, "c", function() { return /* binding */ duplicateNameFormat; });
__webpack_require__.d(__webpack_exports__, "b", function() { return /* binding */ doSuggestNames; });
__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ suggestNames; });

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/api/adobe-content-platform/ACPRequest.ts
var ACPRequest = __webpack_require__("r9Sp");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/api/adobe-content-platform/exist.ts

async function exist(url) {
    return new ACPRequest["c" /* default */](url).method('head').fetch();
}

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/getDisplayName.tsx
var getDisplayName = __webpack_require__("500B");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/api/adobe-content-platform/suggestNames.ts


/**
 * Suggest a name when there's a name conflict during an action (i.e. copy).
 * For generic naming conflict (i.e. restore), uses <filename> (1), <filename> (2), ...
 * For copy conflict, uses <filename> copy, <filename> copy (1), ...
 * Ideally the services should be able to support this functionality:
 * https://jira.corp.adobe.com/browse/SCLD2-28124
 * @param {string} originalName - The original name.
 * @param {Number} incrementAmount - The increment amount in the suggested name: {originalName}-{incrementAmount+previousAmount}, the client needs to keep track of the amount to increment.
 * @param {string} mimetype - The mimetype for the asset, used to determine if asset has a file extension in its name.
 * @param {string} copyText - Localized additional string for copy conflict case.
 */
function duplicateNameFormat(originalName, incrementAmount, mimetype, copyText = '') {
    let versionNumber = 0, versionText = '';
    const _copyText = copyText ? ` ${copyText}` : '';
    let [name, extension] = Object(getDisplayName["a" /* default */])(originalName, mimetype);
    const copyFormat = new RegExp(`${_copyText}(?: \\(([1-9][0-9]*)\\))?$`);
    const match = copyFormat.exec(name);
    if (match) {
        name = name.substring(0, match.index);
        versionNumber = Number(match[1]) + 1 || 1;
    }
    versionNumber += incrementAmount;
    if (versionNumber > 0) {
        versionText = ` (${versionNumber})`;
    }
    name += `${_copyText}${versionText}`;
    return extension ? `${name}.${extension}` : name;
}
async function doSuggestNames(items, condition) {
    const localSuggestions = [];
    const suggestedNames = new Map();
    for (let index = 0; index < items.length; index++) {
        const item = items[index];
        const originalName = item.name;
        let [name, extension] = Object(getDisplayName["a" /* default */])(originalName, item.type);
        let suggestedName = extension ? `${name}.${extension}` : name;
        let nameSuffixCounter = 0;
        let ifExist = false;
        do {
            // Check local suggestions to skip the overhead requests
            while (localSuggestions.includes(suggestedName)) {
                suggestedName = duplicateNameFormat(originalName, nameSuffixCounter++, item.type, item.copyText);
            }
            ifExist = await condition(suggestedName);
            if (ifExist) {
                // Since we know this exists in storage service,
                // tracking it would remove unnecessary overhead if copying dups.
                localSuggestions.push(suggestedName);
                suggestedName = duplicateNameFormat(originalName, nameSuffixCounter++, item.type, item.copyText);
            }
        } while (ifExist);
        // Need to track the valid suggestions for the selected list of items,
        // this is to prevent suggesting the same name during bulk copy/move.
        localSuggestions.push(suggestedName);
        suggestedNames.set(originalName, suggestedName);
    }
    return suggestedNames;
}
/**
 * Given a list of names, return the list of non-conflicted name following the duplicate name format.
 * Duplicate name format: {original name} copy #
 *
 * @param {ISuggestNameItem} items The list of names.
 * @param {string} directoryPath The target folder in ACP format, replaces {decodedTarget}.
 */
async function suggestNames(items, directoryPath) {
    return doSuggestNames(items, async (encodedName) => {
        const { status } = await exist(`${directoryPath}/${encodeURIComponent(encodedName)}`);
        return status === 200;
    });
}


/***/ }),

/***/ "IzEs":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("orGp"),
      24: __webpack_require__("nkcM")
    }
  }));
};

WrappedIcon.displayName = 'Efficient';
exports.default = WrappedIcon;

/***/ }),

/***/ "J/gU":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("path", {
  d: "M6.745 12.073h-5.29A1.473 1.473 0 0 0 0 13.564v8.942A1.473 1.473 0 0 0 1.455 24h5.29a1.429 1.429 0 0 1 .93.345l7.13 7.259A.727.727 0 0 0 16 31.029V5a.726.726 0 0 0-1.194-.571l-7.127 7.3a1.437 1.437 0 0 1-.934.344zM22.04 18a6.936 6.936 0 0 1-1.408 4.192.981.981 0 0 0 .087 1.288l.016.016a.991.991 0 0 0 1.486-.09 8.954 8.954 0 0 0-.021-10.853.991.991 0 0 0-1.484-.087l-.016.016a.982.982 0 0 0-.084 1.293A6.944 6.944 0 0 1 22.04 18z"
}), React.createElement("path", {
  d: "M28.04 18a12.937 12.937 0 0 1-3.116 8.436.972.972 0 0 0 .063 1.317l.014.014a1 1 0 0 0 1.474-.069 14.98 14.98 0 0 0-.027-19.43 1 1 0 0 0-1.467-.068l-.015.015a.977.977 0 0 0-.066 1.319A12.939 12.939 0 0 1 28.04 18z"
}));

/***/ }),

/***/ "J4O+":
/***/ (function(module) {

module.exports = JSON.parse("{\"File\":\"Fil\",\"Folder\":\"Mapp\"}");

/***/ }),

/***/ "J4zp":
/***/ (function(module, exports, __webpack_require__) {

var arrayWithHoles = __webpack_require__("wTVA");

var iterableToArrayLimit = __webpack_require__("m0LI");

var unsupportedIterableToArray = __webpack_require__("ZhPi");

var nonIterableRest = __webpack_require__("wkBT");

function _slicedToArray(arr, i) {
  return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();
}

module.exports = _slicedToArray;
module.exports["default"] = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "J5eH":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("path", {
  d: "M18.1 4.8a2 2 0 0 0-1.6-.8H6a2 2 0 0 0-2 2v4h18zm2 31.2A15.879 15.879 0 0 1 44 22.275V16a2 2 0 0 0-2-2H4v26a2 2 0 0 0 2 2h15.28a15.843 15.843 0 0 1-1.18-6z"
}), React.createElement("path", {
  d: "M36 24.1A11.9 11.9 0 1 0 47.9 36 11.9 11.9 0 0 0 36 24.1zm8 13.4a.5.5 0 0 1-.5.5H38v5.5a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5V38h-5.5a.5.5 0 0 1-.5-.5v-3a.5.5 0 0 1 .5-.5H34v-5.5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5V34h5.5a.5.5 0 0 1 .5.5z"
}));

/***/ }),

/***/ "J78i":
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright Joyent, Inc. and other Node contributors.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to permit
// persons to whom the Software is furnished to do so, subject to the
// following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
// USE OR OTHER DEALINGS IN THE SOFTWARE.
// a transform stream is a readable/writable stream where you do
// something with the data.  Sometimes it's called a "filter",
// but that's not a great name for it, since that implies a thing where
// some bits pass through, and others are simply ignored.  (That would
// be a valid example of a transform, of course.)
//
// While the output is causally related to the input, it's not a
// necessarily symmetric or synchronous transformation.  For example,
// a zlib stream might take multiple plain-text writes(), and then
// emit a single compressed chunk some time in the future.
//
// Here's how this works:
//
// The Transform stream has all the aspects of the readable and writable
// stream classes.  When you write(chunk), that calls _write(chunk,cb)
// internally, and returns false if there's a lot of pending writes
// buffered up.  When you call read(), that calls _read(n) until
// there's enough pending readable data buffered up.
//
// In a transform stream, the written data is placed in a buffer.  When
// _read(n) is called, it transforms the queued up data, calling the
// buffered _write cb's as it consumes chunks.  If consuming a single
// written chunk would result in multiple output chunks, then the first
// outputted bit calls the readcb, and subsequent chunks just go into
// the read buffer, and will cause it to emit 'readable' if necessary.
//
// This way, back-pressure is actually determined by the reading side,
// since _read has to be called to start processing a new chunk.  However,
// a pathological inflate type of transform can cause excessive buffering
// here.  For example, imagine a stream where every byte of input is
// interpreted as an integer from 0-255, and then results in that many
// bytes of output.  Writing the 4 bytes {ff,ff,ff,ff} would result in
// 1kb of data being output.  In this case, you could write a very small
// amount of input, and end up with a very large amount of output.  In
// such a pathological inflating mechanism, there'd be no way to tell
// the system to stop doing the transform.  A single 4MB write could
// cause the system to run out of memory.
//
// However, even in such a pathological case, only a single written chunk
// would be consumed, and then the rest would wait (un-transformed) until
// the results of the previous transformed chunk were consumed.


module.exports = Transform;

var Duplex = __webpack_require__("sZro");
/*<replacement>*/


var util = Object.create(__webpack_require__("Onz0"));
util.inherits = __webpack_require__("P7XM");
/*</replacement>*/

util.inherits(Transform, Duplex);

function afterTransform(er, data) {
  var ts = this._transformState;
  ts.transforming = false;
  var cb = ts.writecb;

  if (!cb) {
    return this.emit('error', new Error('write callback called multiple times'));
  }

  ts.writechunk = null;
  ts.writecb = null;
  if (data != null) // single equals check for both `null` and `undefined`
    this.push(data);
  cb(er);
  var rs = this._readableState;
  rs.reading = false;

  if (rs.needReadable || rs.length < rs.highWaterMark) {
    this._read(rs.highWaterMark);
  }
}

function Transform(options) {
  if (!(this instanceof Transform)) return new Transform(options);
  Duplex.call(this, options);
  this._transformState = {
    afterTransform: afterTransform.bind(this),
    needTransform: false,
    transforming: false,
    writecb: null,
    writechunk: null,
    writeencoding: null
  }; // start out asking for a readable event once data is transformed.

  this._readableState.needReadable = true; // we have implemented the _read method, and done the other things
  // that Readable wants before the first _read call, so unset the
  // sync guard flag.

  this._readableState.sync = false;

  if (options) {
    if (typeof options.transform === 'function') this._transform = options.transform;
    if (typeof options.flush === 'function') this._flush = options.flush;
  } // When the writable side finishes, then flush out anything remaining.


  this.on('prefinish', prefinish);
}

function prefinish() {
  var _this = this;

  if (typeof this._flush === 'function') {
    this._flush(function (er, data) {
      done(_this, er, data);
    });
  } else {
    done(this, null, null);
  }
}

Transform.prototype.push = function (chunk, encoding) {
  this._transformState.needTransform = false;
  return Duplex.prototype.push.call(this, chunk, encoding);
}; // This is the part where you do stuff!
// override this function in implementation classes.
// 'chunk' is an input chunk.
//
// Call `push(newChunk)` to pass along transformed output
// to the readable side.  You may call 'push' zero or more times.
//
// Call `cb(err)` when you are done with this chunk.  If you pass
// an error, then that'll put the hurt on the whole operation.  If you
// never call cb(), then you'll never get another chunk.


Transform.prototype._transform = function (chunk, encoding, cb) {
  throw new Error('_transform() is not implemented');
};

Transform.prototype._write = function (chunk, encoding, cb) {
  var ts = this._transformState;
  ts.writecb = cb;
  ts.writechunk = chunk;
  ts.writeencoding = encoding;

  if (!ts.transforming) {
    var rs = this._readableState;
    if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);
  }
}; // Doesn't matter what the args are here.
// _transform does all the work.
// That we got here means that the readable side wants more data.


Transform.prototype._read = function (n) {
  var ts = this._transformState;

  if (ts.writechunk !== null && ts.writecb && !ts.transforming) {
    ts.transforming = true;

    this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);
  } else {
    // mark that we need a transform, so that any data that comes in
    // will get processed, now that we've asked for it.
    ts.needTransform = true;
  }
};

Transform.prototype._destroy = function (err, cb) {
  var _this2 = this;

  Duplex.prototype._destroy.call(this, err, function (err2) {
    cb(err2);

    _this2.emit('close');
  });
};

function done(stream, er, data) {
  if (er) return stream.emit('error', er);
  if (data != null) // single equals check for both `null` and `undefined`
    stream.push(data); // if there's nothing in the write buffer, then that means
  // that nothing more will ever be provided

  if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0');
  if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming');
  return stream.push(null);
}

/***/ }),

/***/ "JAEG":
/***/ (function(module, exports, __webpack_require__) {

module.exports = __webpack_require__.p + "assets/start/Banner_PDF@2x.png";

/***/ }),

/***/ "JB68":
/***/ (function(module, exports, __webpack_require__) {

// 7.1.13 ToObject(argument)
var defined = __webpack_require__("Jes0");

module.exports = function (it) {
  return Object(defined(it));
};

/***/ }),

/***/ "JBog":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, props, _react2.default.createElement("svg", {
    className: "spectrum-UIIcon-CrossSmall"
  }, _react2.default.createElement("path", {
    d: "M7.317 6.433L4.884 4l2.433-2.433a.625.625 0 0 0-.884-.884L4 3.116 1.567.683a.625.625 0 0 0-.884.884L3.116 4 .683 6.433a.625.625 0 0 0 .884.884L4 4.884l2.433 2.433a.625.625 0 0 0 .884-.884z",
    className: "spectrum-UIIcon--medium"
  }), _react2.default.createElement("path", {
    d: "M9.317 8.433L5.884 5l3.433-3.433a.625.625 0 0 0-.884-.884L5 4.116 1.567.683a.625.625 0 0 0-.884.884C.83 1.713 2.769 3.657 4.116 5L.683 8.433a.625.625 0 0 0 .884.884L5 5.884l3.433 3.433a.625.625 0 0 0 .884-.884z",
    className: "spectrum-UIIcon--large"
  })));
};

WrappedIcon.displayName = 'CrossSmall';
exports.default = WrappedIcon;

/***/ }),

/***/ "JGgT":
/***/ (function(module, exports, __webpack_require__) {

// extracted by mini-css-extract-plugin

/***/ }),

/***/ "JHRd":
/***/ (function(module, exports, __webpack_require__) {

var root = __webpack_require__("Kz5y");
/** Built-in value references. */


var Uint8Array = root.Uint8Array;
module.exports = Uint8Array;

/***/ }),

/***/ "JHgL":
/***/ (function(module, exports, __webpack_require__) {

var getMapData = __webpack_require__("QkVE");
/**
 * Gets the map value for `key`.
 *
 * @private
 * @name get
 * @memberOf MapCache
 * @param {string} key The key of the value to get.
 * @returns {*} Returns the entry value.
 */


function mapCacheGet(key) {
  return getMapData(this, key).get(key);
}

module.exports = mapCacheGet;

/***/ }),

/***/ "JKZI":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("path", {
  d: "M36 24.1A11.9 11.9 0 1 0 47.9 36 11.9 11.9 0 0 0 36 24.1zm0 20.1a8.185 8.185 0 0 1-2-16.126v8.274a1 1 0 0 0 .293.707l3.42 3.42a1 1 0 0 0 1.414 0l1.336-1.336a1 1 0 0 0 0-1.414l-2.17-2.17a1 1 0 0 1-.293-.706v-6.775A8.185 8.185 0 0 1 36 44.2z"
}), React.createElement("path", {
  d: "M46.82 20H44v-8a2 2 0 0 0-2-2H24l-4.7-4.526A4.648 4.648 0 0 0 16 4H9a5 5 0 0 0-5 5v11H1.181a1 1 0 0 0-.987 1.164L3.7 40.359A2 2 0 0 0 5.668 42h15.518a15.938 15.938 0 0 1 12.22-21.8.1.1 0 0 0-.018-.2H8V9a1 1 0 0 1 1-1h7l6.437 6H40v6.532a15.885 15.885 0 0 1 7.177 4.077l.629-3.445A1 1 0 0 0 46.82 20z"
}));

/***/ }),

/***/ "JLB2":
/***/ (function(module, exports, __webpack_require__) {

!function (e, r) {
   true ? module.exports = r() : undefined;
}(this, function () {
  "use strict";

  return [{
    locale: "sv",
    pluralRuleFunction: function (e, r) {
      var t = String(e).split("."),
          a = !t[1],
          n = Number(t[0]) == e,
          o = n && t[0].slice(-1),
          m = n && t[0].slice(-2);
      return r ? 1 != o && 2 != o || 11 == m || 12 == m ? "other" : "one" : 1 == e && a ? "one" : "other";
    },
    fields: {
      year: {
        displayName: "år",
        relative: {
          0: "i år",
          1: "nästa år",
          "-1": "i fjol"
        },
        relativeTime: {
          future: {
            one: "om {0} år",
            other: "om {0} år"
          },
          past: {
            one: "för {0} år sedan",
            other: "för {0} år sedan"
          }
        }
      },
      "year-short": {
        displayName: "år",
        relative: {
          0: "i år",
          1: "nästa år",
          "-1": "i fjol"
        },
        relativeTime: {
          future: {
            one: "om {0} år",
            other: "om {0} år"
          },
          past: {
            one: "för {0} år sen",
            other: "för {0} år sen"
          }
        }
      },
      month: {
        displayName: "månad",
        relative: {
          0: "denna månad",
          1: "nästa månad",
          "-1": "förra månaden"
        },
        relativeTime: {
          future: {
            one: "om {0} månad",
            other: "om {0} månader"
          },
          past: {
            one: "för {0} månad sedan",
            other: "för {0} månader sedan"
          }
        }
      },
      "month-short": {
        displayName: "m",
        relative: {
          0: "denna mån.",
          1: "nästa mån.",
          "-1": "förra mån."
        },
        relativeTime: {
          future: {
            one: "om {0} mån.",
            other: "om {0} mån."
          },
          past: {
            one: "för {0} mån. sen",
            other: "för {0} mån. sen"
          }
        }
      },
      day: {
        displayName: "dag",
        relative: {
          0: "i dag",
          1: "i morgon",
          2: "i övermorgon",
          "-2": "i förrgår",
          "-1": "i går"
        },
        relativeTime: {
          future: {
            one: "om {0} dag",
            other: "om {0} dagar"
          },
          past: {
            one: "för {0} dag sedan",
            other: "för {0} dagar sedan"
          }
        }
      },
      "day-short": {
        displayName: "dag",
        relative: {
          0: "i dag",
          1: "i morgon",
          2: "i övermorgon",
          "-2": "i förrgår",
          "-1": "i går"
        },
        relativeTime: {
          future: {
            one: "om {0} d",
            other: "om {0} d"
          },
          past: {
            one: "för {0} d sedan",
            other: "för {0} d sedan"
          }
        }
      },
      hour: {
        displayName: "timme",
        relative: {
          0: "denna timme"
        },
        relativeTime: {
          future: {
            one: "om {0} timme",
            other: "om {0} timmar"
          },
          past: {
            one: "för {0} timme sedan",
            other: "för {0} timmar sedan"
          }
        }
      },
      "hour-short": {
        displayName: "tim",
        relative: {
          0: "denna timme"
        },
        relativeTime: {
          future: {
            one: "om {0} tim",
            other: "om {0} tim"
          },
          past: {
            one: "för {0} tim sedan",
            other: "för {0} tim sedan"
          }
        }
      },
      minute: {
        displayName: "minut",
        relative: {
          0: "denna minut"
        },
        relativeTime: {
          future: {
            one: "om {0} minut",
            other: "om {0} minuter"
          },
          past: {
            one: "för {0} minut sedan",
            other: "för {0} minuter sedan"
          }
        }
      },
      "minute-short": {
        displayName: "min",
        relative: {
          0: "denna minut"
        },
        relativeTime: {
          future: {
            one: "om {0} min",
            other: "om {0} min"
          },
          past: {
            one: "för {0} min sen",
            other: "för {0} min sen"
          }
        }
      },
      second: {
        displayName: "sekund",
        relative: {
          0: "nu"
        },
        relativeTime: {
          future: {
            one: "om {0} sekund",
            other: "om {0} sekunder"
          },
          past: {
            one: "för {0} sekund sedan",
            other: "för {0} sekunder sedan"
          }
        }
      },
      "second-short": {
        displayName: "sek",
        relative: {
          0: "nu"
        },
        relativeTime: {
          future: {
            one: "om {0} sek",
            other: "om {0} sek"
          },
          past: {
            one: "för {0} s sen",
            other: "för {0} s sen"
          }
        }
      }
    }
  }, {
    locale: "sv-AX",
    parentLocale: "sv"
  }, {
    locale: "sv-FI",
    parentLocale: "sv"
  }];
});

/***/ }),

/***/ "JMW+":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var LIBRARY = __webpack_require__("uOPS");

var global = __webpack_require__("5T2Y");

var ctx = __webpack_require__("2GTP");

var classof = __webpack_require__("QMMT");

var $export = __webpack_require__("Y7ZC");

var isObject = __webpack_require__("93I4");

var aFunction = __webpack_require__("eaoh");

var anInstance = __webpack_require__("EXMj");

var forOf = __webpack_require__("oioR");

var speciesConstructor = __webpack_require__("8gHz");

var task = __webpack_require__("QXhf").set;

var microtask = __webpack_require__("q6LJ")();

var newPromiseCapabilityModule = __webpack_require__("ZW5q");

var perform = __webpack_require__("RDmV");

var userAgent = __webpack_require__("vBP9");

var promiseResolve = __webpack_require__("zXhZ");

var PROMISE = 'Promise';
var TypeError = global.TypeError;
var process = global.process;
var versions = process && process.versions;
var v8 = versions && versions.v8 || '';
var $Promise = global[PROMISE];
var isNode = classof(process) == 'process';

var empty = function () {
  /* empty */
};

var Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper;
var newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f;
var USE_NATIVE = !!function () {
  try {
    // correct subclassing with @@species support
    var promise = $Promise.resolve(1);

    var FakePromise = (promise.constructor = {})[__webpack_require__("UWiX")('species')] = function (exec) {
      exec(empty, empty);
    }; // unhandled rejections tracking support, NodeJS Promise without it fails @@species test


    return (isNode || typeof PromiseRejectionEvent == 'function') && promise.then(empty) instanceof FakePromise // v8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables
    // https://bugs.chromium.org/p/chromium/issues/detail?id=830565
    // we can't detect it synchronously, so just check versions
    && v8.indexOf('6.6') !== 0 && userAgent.indexOf('Chrome/66') === -1;
  } catch (e) {
    /* empty */
  }
}(); // helpers

var isThenable = function (it) {
  var then;
  return isObject(it) && typeof (then = it.then) == 'function' ? then : false;
};

var notify = function (promise, isReject) {
  if (promise._n) return;
  promise._n = true;
  var chain = promise._c;
  microtask(function () {
    var value = promise._v;
    var ok = promise._s == 1;
    var i = 0;

    var run = function (reaction) {
      var handler = ok ? reaction.ok : reaction.fail;
      var resolve = reaction.resolve;
      var reject = reaction.reject;
      var domain = reaction.domain;
      var result, then, exited;

      try {
        if (handler) {
          if (!ok) {
            if (promise._h == 2) onHandleUnhandled(promise);
            promise._h = 1;
          }

          if (handler === true) result = value;else {
            if (domain) domain.enter();
            result = handler(value); // may throw

            if (domain) {
              domain.exit();
              exited = true;
            }
          }

          if (result === reaction.promise) {
            reject(TypeError('Promise-chain cycle'));
          } else if (then = isThenable(result)) {
            then.call(result, resolve, reject);
          } else resolve(result);
        } else reject(value);
      } catch (e) {
        if (domain && !exited) domain.exit();
        reject(e);
      }
    };

    while (chain.length > i) run(chain[i++]); // variable length - can't use forEach


    promise._c = [];
    promise._n = false;
    if (isReject && !promise._h) onUnhandled(promise);
  });
};

var onUnhandled = function (promise) {
  task.call(global, function () {
    var value = promise._v;
    var unhandled = isUnhandled(promise);
    var result, handler, console;

    if (unhandled) {
      result = perform(function () {
        if (isNode) {
          process.emit('unhandledRejection', value, promise);
        } else if (handler = global.onunhandledrejection) {
          handler({
            promise: promise,
            reason: value
          });
        } else if ((console = global.console) && console.error) {
          console.error('Unhandled promise rejection', value);
        }
      }); // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should

      promise._h = isNode || isUnhandled(promise) ? 2 : 1;
    }

    promise._a = undefined;
    if (unhandled && result.e) throw result.v;
  });
};

var isUnhandled = function (promise) {
  return promise._h !== 1 && (promise._a || promise._c).length === 0;
};

var onHandleUnhandled = function (promise) {
  task.call(global, function () {
    var handler;

    if (isNode) {
      process.emit('rejectionHandled', promise);
    } else if (handler = global.onrejectionhandled) {
      handler({
        promise: promise,
        reason: promise._v
      });
    }
  });
};

var $reject = function (value) {
  var promise = this;
  if (promise._d) return;
  promise._d = true;
  promise = promise._w || promise; // unwrap

  promise._v = value;
  promise._s = 2;
  if (!promise._a) promise._a = promise._c.slice();
  notify(promise, true);
};

var $resolve = function (value) {
  var promise = this;
  var then;
  if (promise._d) return;
  promise._d = true;
  promise = promise._w || promise; // unwrap

  try {
    if (promise === value) throw TypeError("Promise can't be resolved itself");

    if (then = isThenable(value)) {
      microtask(function () {
        var wrapper = {
          _w: promise,
          _d: false
        }; // wrap

        try {
          then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));
        } catch (e) {
          $reject.call(wrapper, e);
        }
      });
    } else {
      promise._v = value;
      promise._s = 1;
      notify(promise, false);
    }
  } catch (e) {
    $reject.call({
      _w: promise,
      _d: false
    }, e); // wrap
  }
}; // constructor polyfill


if (!USE_NATIVE) {
  // 25.4.3.1 Promise(executor)
  $Promise = function Promise(executor) {
    anInstance(this, $Promise, PROMISE, '_h');
    aFunction(executor);
    Internal.call(this);

    try {
      executor(ctx($resolve, this, 1), ctx($reject, this, 1));
    } catch (err) {
      $reject.call(this, err);
    }
  }; // eslint-disable-next-line no-unused-vars


  Internal = function Promise(executor) {
    this._c = []; // <- awaiting reactions

    this._a = undefined; // <- checked in isUnhandled reactions

    this._s = 0; // <- state

    this._d = false; // <- done

    this._v = undefined; // <- value

    this._h = 0; // <- rejection state, 0 - default, 1 - handled, 2 - unhandled

    this._n = false; // <- notify
  };

  Internal.prototype = __webpack_require__("XJU/")($Promise.prototype, {
    // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)
    then: function then(onFulfilled, onRejected) {
      var reaction = newPromiseCapability(speciesConstructor(this, $Promise));
      reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;
      reaction.fail = typeof onRejected == 'function' && onRejected;
      reaction.domain = isNode ? process.domain : undefined;

      this._c.push(reaction);

      if (this._a) this._a.push(reaction);
      if (this._s) notify(this, false);
      return reaction.promise;
    },
    // 25.4.5.1 Promise.prototype.catch(onRejected)
    'catch': function (onRejected) {
      return this.then(undefined, onRejected);
    }
  });

  OwnPromiseCapability = function () {
    var promise = new Internal();
    this.promise = promise;
    this.resolve = ctx($resolve, promise, 1);
    this.reject = ctx($reject, promise, 1);
  };

  newPromiseCapabilityModule.f = newPromiseCapability = function (C) {
    return C === $Promise || C === Wrapper ? new OwnPromiseCapability(C) : newGenericPromiseCapability(C);
  };
}

$export($export.G + $export.W + $export.F * !USE_NATIVE, {
  Promise: $Promise
});

__webpack_require__("RfKB")($Promise, PROMISE);

__webpack_require__("TJWN")(PROMISE);

Wrapper = __webpack_require__("WEpk")[PROMISE]; // statics

$export($export.S + $export.F * !USE_NATIVE, PROMISE, {
  // 25.4.4.5 Promise.reject(r)
  reject: function reject(r) {
    var capability = newPromiseCapability(this);
    var $$reject = capability.reject;
    $$reject(r);
    return capability.promise;
  }
});
$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {
  // 25.4.4.6 Promise.resolve(x)
  resolve: function resolve(x) {
    return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x);
  }
});
$export($export.S + $export.F * !(USE_NATIVE && __webpack_require__("TuGD")(function (iter) {
  $Promise.all(iter)['catch'](empty);
})), PROMISE, {
  // 25.4.4.1 Promise.all(iterable)
  all: function all(iterable) {
    var C = this;
    var capability = newPromiseCapability(C);
    var resolve = capability.resolve;
    var reject = capability.reject;
    var result = perform(function () {
      var values = [];
      var index = 0;
      var remaining = 1;
      forOf(iterable, false, function (promise) {
        var $index = index++;
        var alreadyCalled = false;
        values.push(undefined);
        remaining++;
        C.resolve(promise).then(function (value) {
          if (alreadyCalled) return;
          alreadyCalled = true;
          values[$index] = value;
          --remaining || resolve(values);
        }, reject);
      });
      --remaining || resolve(values);
    });
    if (result.e) reject(result.v);
    return capability.promise;
  },
  // 25.4.4.4 Promise.race(iterable)
  race: function race(iterable) {
    var C = this;
    var capability = newPromiseCapability(C);
    var reject = capability.reject;
    var result = perform(function () {
      forOf(iterable, false, function (promise) {
        C.resolve(promise).then(capability.resolve, reject);
      });
    });
    if (result.e) reject(result.v);
    return capability.promise;
  }
});

/***/ }),

/***/ "JNa+":
/***/ (function(module, exports, __webpack_require__) {

// extracted by mini-css-extract-plugin

/***/ }),

/***/ "JO7F":
/***/ (function(module, exports, __webpack_require__) {

module.exports = {
  "default": __webpack_require__("/eQG"),
  __esModule: true
};

/***/ }),

/***/ "JRZE":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXPORTS
__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ Column; });
__webpack_require__.d(__webpack_exports__, "b", function() { return /* binding */ ColumnType; });

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__("q1tI");
var react_default = /*#__PURE__*/__webpack_require__.n(react);

// EXTERNAL MODULE: ./node_modules/react-dom/index.js
var react_dom = __webpack_require__("i8i4");
var react_dom_default = /*#__PURE__*/__webpack_require__.n(react_dom);

// EXTERNAL MODULE: ./node_modules/mobx-react/index.module.js
var index_module = __webpack_require__("okNM");

// EXTERNAL MODULE: ./node_modules/react-virtualized/dist/es/index.js + 67 modules
var es = __webpack_require__("c7k8");

// EXTERNAL MODULE: ./node_modules/@adobe/react-virtualized/dist/es/index.js + 65 modules
var dist_es = __webpack_require__("UaZ8");

// EXTERNAL MODULE: ./node_modules/lodash/throttle.js
var throttle = __webpack_require__("DzJC");
var throttle_default = /*#__PURE__*/__webpack_require__.n(throttle);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Checkbox/index.js
var Checkbox = __webpack_require__("L+OI");
var Checkbox_default = /*#__PURE__*/__webpack_require__.n(Checkbox);

// EXTERNAL MODULE: ./node_modules/classnames/index.js
var classnames = __webpack_require__("TSYQ");
var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/ensure-focus-on-items.ts
var ensure_focus_on_items = __webpack_require__("KrGB");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/thirdparty/FocusManager.ts + 3 modules
var FocusManager = __webpack_require__("byaY");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/utils.ts
var utils = __webpack_require__("+Ots");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/react-virtualized-change-props.ts
var react_virtualized_change_props = __webpack_require__("AQj1");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/constants.ts
var constants = __webpack_require__("a375");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/stores/constants.ts
var stores_constants = __webpack_require__("C0qj");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/ErrorBoundary.tsx
var ErrorBoundary = __webpack_require__("SKw+");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/SortArrow.tsx
var SortArrow = __webpack_require__("SgDU");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/components/HeaderColumn.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2019 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/






class HeaderColumn_HeaderColumn extends react["Component"] {
    constructor() {
        super(...arguments);
        this.onLabelClick = (e) => {
            const { uxSortColumn, onColumnClick, isSortDisabled } = this.props;
            if (!isSortDisabled && uxSortColumn) {
                onColumnClick(uxSortColumn);
                // stopPropagation, so changing sort preserves selection.
                e.stopPropagation();
            }
        };
        this.onKeyDown = (e) => {
            switch (e.keyCode) {
                case constants["t" /* SPACE_KEY_CODE */]:
                case constants["f" /* ENTER_KEY_CODE */]:
                    this.onLabelClick(e);
                    break;
                default:
                    break;
            }
        };
    }
    renderHeaderColumn() {
        const { id, uxSortColumn, label, isActiveSort, isSortDisabled, activeSortDirection, columnType, } = this.props;
        return (react["createElement"]("div", { 
            /*
               Note: Include uxSortColumn as className below so outside CDO, clients can override specific
                     styles by columnType
            */
            className: classnames_default()('column', uxSortColumn, columnType, {
                sortable: !isSortDisabled,
            }), id: id, onClick: this.onLabelClick, onKeyDown: this.onKeyDown },
            react["createElement"]("div", { className: classnames_default()('textWrapper', { sortable: !isSortDisabled }) },
                react["createElement"]("span", { className: classnames_default()({ isActiveSort, text: true }) }, label),
                isActiveSort && (react["createElement"]("div", { className: "sortArrowWrapper", id: activeSortDirection === stores_constants["w" /* UXSortDir */].desc
                        ? 'CDOList_SortDescending'
                        : 'CDOList_SortAscending' },
                    react["createElement"](SortArrow["a" /* SortArrow */], { activeSortDirection: activeSortDirection }))))));
    }
    render() {
        const { id } = this.props;
        return (react["createElement"](ErrorBoundary["a" /* default */], { message: `ListView.${id} failed to render` }, this.renderHeaderColumn()));
    }
}
/* harmony default export */ var components_HeaderColumn = (HeaderColumn_HeaderColumn);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/scrollbar-measurer.ts
var scrollbar_measurer = __webpack_require__("7B5B");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/UnableToOpenItemWarning.tsx
var UnableToOpenItemWarning = __webpack_require__("thTA");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/ListItem.tsx
var ListItem = __webpack_require__("SvrS");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/get-extend-selection-mode.ts
var get_extend_selection_mode = __webpack_require__("seVz");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/WindowScrollerProvider.tsx
var WindowScrollerProvider = __webpack_require__("NBj/");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/styles/ListView.css
var styles_ListView = __webpack_require__("R7Fp");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/components/ListView.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
/* eslint-disable max-classes-per-file, react/no-find-dom-node */
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;
};
var ListView_1;






















/** Minimum number of rows to display, overriding limitRowCount */
const ROW_COUNT_LIMIT_LIST = 4;
// Which value goes in this column, sometimes defines automation ids and i18n msg ids
var Column;
(function (Column) {
    Column["Action"] = "Action";
    Column["Select"] = "Select";
    Column["Title"] = "Name";
})(Column || (Column = {}));
// How to style/format the column
var ColumnType;
(function (ColumnType) {
    ColumnType["Default"] = "default";
    ColumnType["Date"] = "date";
    ColumnType["Action"] = "action";
})(ColumnType || (ColumnType = {}));
const COLUMN_TO_SORTBY = {
    [Column.Title]: stores_constants["t" /* UXSortBy */].title,
};
// Determines how to style and format the column
const COLUMN_TO_TYPE = {
    [Column.Action]: ColumnType.Action,
    [Column.Title]: ColumnType.Default,
};
const HEADER_HEIGHT = 32;
/**
 * Simple unordered list view bound to data store.
 */
let ListView_ListView = ListView_1 = class ListView extends react_default.a.Component {
    constructor() {
        super(...arguments);
        this.metrics = this.props.metrics;
        this.containerRef = react_default.a.createRef();
        this._listRef = react_default.a.createRef();
        this._listComponent = react_default.a.createRef();
        this._unsortableColumnsSet = new Set(this.props.unsortableColumns || []);
        this.state = {
            scrollbarIsVisible: false,
            width: 0,
            height: 0,
        };
        // Methods like getBoundingClientRect in this._computeLayout, when requested/called in JavaScript,
        // will trigger the browser to synchronously calculate the style and layout. This
        // is also called reflow or layout thrashing, and is a common performance bottleneck.
        // https://gist.github.com/paulirish/5d52fb081b3570c81e3a
        this.handleResize = throttle_default()(() => {
            const scrollbarIsVisible = this.isScrollbarVisible();
            // Height of the list must be calculated as list container height - header height. On
            // first render, the header isn't rendered, so when componentDidMount calls this, the
            // list has 100% height. Then the next render adds the header, making the list too tall.
            // This doesn't happen on UXP because it keeps firing resize events. Hence, containerRef
            // is measured and not _listRef.
            if (this.containerRef.current) {
                // UXP dispatches the resize event every 'frame' rendered on the screen
                // even if the user has not resized the screen. To resolve this
                // We need to compare the current dimensions of the screen against
                // the values saved in this.state
                if (utils["a" /* default */].usingUXP()) {
                    const dimensions = this.containerRef.current.getBoundingClientRect();
                    if (dimensions.width === this.state.width &&
                        dimensions.height === this.state.height &&
                        scrollbarIsVisible === this.state.scrollbarIsVisible) {
                        return;
                    }
                }
                this._computeLayout();
            }
        }, constants["o" /* MINIMUM_ACCEPTED_TIMEOUT */]);
        this.windowScrollerRef = react_default.a.createRef();
        /**
         * If CDOView is inside a scrollable parent, the parent might have multiple
         * CDOView children. If the other CDOViews change size, our WindowScroller
         * needs to know about the change in position.
         */
        this.onUpdateScrollPosition = () => {
            var _a;
            (_a = this.windowScrollerRef.current) === null || _a === void 0 ? void 0 : _a.updatePosition();
        };
        this.isScrollbarVisible = () => {
            var _a;
            const grid = (_a = this._listComponent.current) === null || _a === void 0 ? void 0 : _a.Grid;
            const gridInnerContainer = grid &&
                react_dom_default.a.findDOMNode(grid).getElementsByClassName('ReactVirtualized__Grid__innerScrollContainer')[0];
            return (grid &&
                gridInnerContainer &&
                grid._scrollingContainer.clientHeight < gridInnerContainer.clientHeight);
        };
        this.changeSort = (sortBy) => {
            var _a, _b;
            const { ingestSubcategory, onSortSelected } = this.props;
            (_b = (_a = this.metrics) === null || _a === void 0 ? void 0 : _a.fireEvent) === null || _b === void 0 ? void 0 : _b.call(_a, {
                event: {
                    subcategory: ingestSubcategory,
                    subtype: 'sort',
                    type: 'select',
                    value: stores_constants["x" /* UX_SORT_TO_INGEST */][sortBy],
                    workflow: 'Gallery',
                },
                ui: {
                    view_type: 'list',
                },
            });
            onSortSelected(sortBy);
        };
        this._rowRenderer = ({ index, // Index of row
        key, // Unique key within array of rendered rows
        style, }) => {
            var _a;
            const { elements, selectionStore, columns, ingestSubcategory, useAdobeReactVirtualized, onItemSelected, children, } = this.props;
            if (index >= elements.length) {
                return;
            }
            const element = elements[index];
            // @ts-ignore
            const viewItem = typeof children === 'function' ? (_a = children === null || children === void 0 ? void 0 : children(element)) !== null && _a !== void 0 ? _a : ListItem["a" /* default */] : children; // backward compatibility for FMHS Recents
            const { props: viewItemProps } = viewItem;
            const isSelected = selectionStore === null || selectionStore === void 0 ? void 0 : selectionStore.isSelected(element);
            const currentKey = useAdobeReactVirtualized ? key : element.id;
            // If this is the first item, set a positive tab index
            // to prevent tabbing to other ListItems and let
            // FocusManager manage the other items' tabindex.
            const itemTabIndex = index === 0 ? 0 : -1;
            return (react_default.a.createElement("div", { key: currentKey, style: style },
                react_default.a.createElement(UnableToOpenItemWarning["a" /* default */], Object.assign({}, viewItemProps, { element: element }), react_default.a.cloneElement(viewItem, {
                    columns,
                    ingestSubcategory,
                    element,
                    isSelected,
                    tabIndex: itemTabIndex,
                    onItemSelected,
                }))));
        };
        this.onColumnClick = (sortBy) => {
            this.changeSort(sortBy);
        };
        this.onRowsRendered = () => {
            Object(ensure_focus_on_items["a" /* default */])(constants["h" /* FOCUS_ITEM_CLASS */], this._listRef.current);
        };
        this.onKeyboardFocusChange = (item, index, e) => {
            const { onItemSelected, elements, arrowKeyMovesSelection } = this.props;
            if (!arrowKeyMovesSelection) {
                return;
            }
            // find the focused element
            const targetId = item.getAttribute('data-element-id');
            const element = elements.find(el => el.id === targetId);
            if (onItemSelected && element) {
                const extendSelectionMode = Object(get_extend_selection_mode["a" /* default */])(e);
                onItemSelected(element, extendSelectionMode);
            }
        };
    }
    componentDidMount() {
        const resizeElement = this.getResizeElement();
        resizeElement.addEventListener('resize', this.handleResize);
        resizeElement.addEventListener(stores_constants["d" /* CCD_CONTENTVIEW_RESIZE_EVENT */], this.handleResize);
        resizeElement.addEventListener(stores_constants["e" /* CDO_UPDATE_SCROLL_POSITION */], this.onUpdateScrollPosition);
        this.handleResize();
    }
    componentDidUpdate(prevProps, prevState) {
        Object(ensure_focus_on_items["a" /* default */])(constants["h" /* FOCUS_ITEM_CLASS */], this._listRef.current);
        const scrollbarIsVisible = this.isScrollbarVisible();
        if (scrollbarIsVisible !== prevState.scrollbarIsVisible) {
            // eslint-disable-next-line react/no-did-update-set-state
            this.setState({ scrollbarIsVisible });
        }
    }
    componentWillUnmount() {
        // clear any trailing throttled resize events
        this.handleResize.cancel();
        const resizeElement = this.getResizeElement();
        resizeElement.removeEventListener('resize', this.handleResize);
        resizeElement.removeEventListener(stores_constants["d" /* CCD_CONTENTVIEW_RESIZE_EVENT */], this.handleResize);
        resizeElement.removeEventListener(stores_constants["e" /* CDO_UPDATE_SCROLL_POSITION */], this.onUpdateScrollPosition);
    }
    getResizeElement() {
        return utils["a" /* default */].getResizeElement();
    }
    _computeLayout() {
        if (!this.containerRef.current) {
            return;
        }
        const { width, height } = this.containerRef.current.getBoundingClientRect();
        this.setState({
            height,
            width,
        });
        // When the list's layout changes, notify any sibling lists within the
        // same scroll container, so that they can call WindowScroller's
        // updatePosition() to update their scroll offsets.
        const resizeElement = this.getResizeElement();
        resizeElement.dispatchEvent(new CustomEvent(stores_constants["e" /* CDO_UPDATE_SCROLL_POSITION */]));
    }
    _uppercaseTranslation(translationId) {
        const { intl } = this.props;
        return intl.formatMessage({ id: translationId }).toUpperCase();
    }
    get rowCount() {
        const { elements, limitRowCount } = this.props;
        return limitRowCount ? Math.min(elements.length, ROW_COUNT_LIMIT_LIST) : elements.length;
    }
    renderSelectboxColumn() {
        var _a;
        const { selectionStore, elements, onSelectAllItems, isSelectAllDisabled, hideSelectAllCheckbox, } = this.props;
        const selectionCount = (_a = selectionStore === null || selectionStore === void 0 ? void 0 : selectionStore.selectedElements.length) !== null && _a !== void 0 ? _a : 0;
        const hasSelections = selectionCount > 0;
        const allItemsAreSelected = hasSelections && selectionCount === elements.length;
        return (react_default.a.createElement(ErrorBoundary["a" /* default */], { key: "selectbox", message: "ListView.SelectAllCheckBox failed to render" },
            react_default.a.createElement("div", { className: "checkBoxContainer ", id: "CDOList_SelectAllCheckbox" },
                react_default.a.createElement("div", { id: `CDOListView_SelectAll_Selected_${hasSelections}`, className: "checkBoxContainer" }, !hideSelectAllCheckbox && (react_default.a.createElement(Checkbox_default.a, Object.assign({ id: "CDOListView_SelectAllCheckbox", className: "focusItem", checked: allItemsAreSelected, indeterminate: !allItemsAreSelected && hasSelections, renderLabel: false, onChange: onSelectAllItems }, (isSelectAllDisabled ? { disabled: true } : {}))))))));
    }
    renderColumn(column) {
        const { activeSort, activeSortDirection } = this.props;
        const sortBy = COLUMN_TO_SORTBY[column] || column;
        const columnType = COLUMN_TO_TYPE[column];
        const notSortable = sortBy === undefined || this._unsortableColumnsSet.has(column);
        return (react_default.a.createElement(components_HeaderColumn, { key: column, id: `CDOListSortBy${column}`, uxSortColumn: sortBy, activeSortDirection: activeSortDirection, label: this._uppercaseTranslation(`header.${sortBy}`), isActiveSort: activeSort === sortBy, isSortDisabled: notSortable, onColumnClick: this.onColumnClick, columnType: columnType }));
    }
    renderCustomColumn(column) {
        const { cellContentRender, ...rest } = column;
        return (react_default.a.createElement(components_HeaderColumn, Object.assign({ key: `custom-${rest.id}`, 
            // @ts-ignore
            id: `custom-${rest.id}`, onColumnClick: this.onColumnClick }, rest)));
    }
    renderHeader() {
        const { columns, focusManagementEnabled } = this.props;
        const { scrollbarWidth } = Object(scrollbar_measurer["a" /* getScrollbarMeasurer */])();
        const { scrollbarIsVisible } = this.state;
        const paddingRight = scrollbarIsVisible ? scrollbarWidth : 0;
        const content = (react_default.a.createElement("div", { className: "header", style: {
                paddingRight,
            } }, columns.map(column => {
            const customColumn = column;
            if (customColumn.columnType) {
                return this.renderCustomColumn(customColumn);
            }
            switch (column) {
                case Column.Select:
                    return this.renderSelectboxColumn();
                // Standard columns
                case Column.Title:
                    return this.renderColumn(column);
                case Column.Action:
                    return react_default.a.createElement("div", { key: "action", className: "column action" });
                default:
                    // This needs to be null to avoid React warnings about children without keys
                    return null;
            }
        })));
        if (focusManagementEnabled) {
            return (react_default.a.createElement(FocusManager["a" /* default */], { orientation: "horizontal", itemSelector: ".focusItem, .column.sortable" }, content));
        }
        return content;
    }
    renderList() {
        const { elements, useAdobeReactVirtualized, additionalChangeProps, 
        // overscanRowCount should be at least 2 so that keyboard nav + virtual scrolling works smoothly
        overscanRowCount = 2, // eslint-disable-line @typescript-eslint/no-magic-numbers
        autoHeight = false, scrollIndex = -1, isHeaderVisible = true, scrollElementRef, } = this.props;
        const { width, height } = this.state;
        const isVisible = width > 0 && height > 0;
        const listHeight = height - (isVisible ? HEADER_HEIGHT : 0);
        const commonListProps = {
            width,
            height: listHeight,
            rowCount: this.rowCount,
            rowHeight: 75,
            rowRenderer: this._rowRenderer,
            autoHeight,
            overscanRowCount,
            tabIndex: -1,
            // Trigger re-render when these values change
            // NOTE: elements must be a new array each time so that
            // React-virtualized can do simple === check on these props to detect changes.
            ...Object(react_virtualized_change_props["a" /* default */])(elements, ...(additionalChangeProps || [])),
            overscanIndicesGetter: es["f" /* accessibilityOverscanIndicesGetter */],
            onRowsRendered: this.onRowsRendered,
            scrollToIndex: scrollIndex,
        };
        const ListComponent = useAdobeReactVirtualized ? dist_es["d" /* List */] : es["d" /* List */];
        return (react_default.a.createElement("div", { className: "container" },
            isVisible && isHeaderVisible && this.renderHeader(),
            react_default.a.createElement("div", { className: "itemsContainer", ref: this._listRef }, isVisible && (react_default.a.createElement(ErrorBoundary["a" /* default */], { message: "ListView.ReactVirtualizedList failed to render" }, this.renderFocusElement(react_default.a.createElement(WindowScrollerProvider["a" /* default */], { ref: this.windowScrollerRef, scrollElementRef: scrollElementRef }, scrollProps => (react_default.a.createElement(ListComponent, Object.assign({ ref: this._listComponent }, commonListProps, scrollProps)))), constants["h" /* FOCUS_ITEM_CLASS */]))))));
    }
    renderFocusElement(children, focusClass) {
        const { focusManagementEnabled } = this.props;
        if (focusManagementEnabled) {
            return (react_default.a.createElement(FocusManager["a" /* default */], { itemSelector: `.${focusClass}`, orientation: "vertical", manageTabIndex: true, disableCyclicFocus: true, onKeyboardFocusChange: this.onKeyboardFocusChange },
                react_default.a.createElement("div", { tabIndex: -1 }, children)));
        }
        return children;
    }
    /**
     * Component renderer.
     * @return {React} markup
     */
    render() {
        const { className } = this.props;
        return (react_default.a.createElement("div", { className: classnames_default()('ListView', className !== null && className !== void 0 ? className : ''), ref: this.containerRef }, this.renderList()));
    }
};
ListView_ListView.defaultProps = {
    additionalChangeProps: [],
};
ListView_ListView = ListView_1 = __decorate([
    index_module["e" /* observer */]
], ListView_ListView);
/* harmony default export */ var components_ListView = __webpack_exports__["c"] = (ListView_ListView);



/***/ }),

/***/ "JSQU":
/***/ (function(module, exports, __webpack_require__) {

var nativeCreate = __webpack_require__("YESw");
/** Used to stand-in for `undefined` hash values. */


var HASH_UNDEFINED = '__lodash_hash_undefined__';
/**
 * Sets the hash `key` to `value`.
 *
 * @private
 * @name set
 * @memberOf Hash
 * @param {string} key The key of the value to set.
 * @param {*} value The value to set.
 * @returns {Object} Returns the hash instance.
 */

function hashSet(key, value) {
  var data = this.__data__;
  this.size += this.has(key) ? 0 : 1;
  data[key] = nativeCreate && value === undefined ? HASH_UNDEFINED : value;
  return this;
}

module.exports = hashSet;

/***/ }),

/***/ "JTzB":
/***/ (function(module, exports, __webpack_require__) {

var baseGetTag = __webpack_require__("NykK"),
    isObjectLike = __webpack_require__("ExA7");
/** `Object#toString` result references. */


var argsTag = '[object Arguments]';
/**
 * The base implementation of `_.isArguments`.
 *
 * @private
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is an `arguments` object,
 */

function baseIsArguments(value) {
  return isObjectLike(value) && baseGetTag(value) == argsTag;
}

module.exports = baseIsArguments;

/***/ }),

/***/ "JXTK":
/***/ (function(module) {

module.exports = JSON.parse("{\"a11y.button.canvases\":\"{name}\",\"a11y.button.libraries\":\"{name}，库\",\"a11y.button.listGridToggle\":\"视图切换，{toggledView, select, grid {网格} list {列表}}视图\",\"a11y.button.project\":\"{name}，项目\",\"a11y.button.published\":\"{name}，{extension}\",\"a11y.button.selectFolder\":\"选择文件夹\",\"a11y.button.working\":\"{name}，{extension}，修改时间为 {modified}\",\"a11y.strings.folder\":\"文件夹\",\"header.action.newProject\":\"新项目\",\"header.action.newLibrary\":\"新建库\",\"header.action.browseAll\":\"浏览全部\",\"header.Name\":\"名称\",\"header.Size\":\"大小\",\"header.Sharing\":\"成员\",\"header.Team\":\"工作区\",\"header.DateModified\":\"修改时间\",\"header.DateCreated\":\"创建时间\",\"header.Status\":\"已收藏\",\"header.SortBy\":\"排序依据\",\"header.sort.label\":\"排序\",\"header.ChangeSortDirection\":\"将排序方向更改为\",\"header.SortBy.asc\":\"升序\",\"header.SortBy.desc\":\"降序\",\"header.selectAll\":\"全选\",\"header.reverseOrder\":\"倒序\",\"header.showCompatible\":\"兼容文件\",\"header.showEverything\":\"全部\",\"product.illustrator.web\":\"Illustrator Web (Beta)\",\"product.photoshop.web\":\"Photoshop Web (Beta)\",\"status.followed\":\"是\",\"status.unfollowed\":\"否\",\"team.usm.defaultName\":\"工作区 {name}\",\"space.access.private.description\":\"仅受邀请人员\",\"space.access.private.tooltip\":\"只有受邀请的人员才能访问此项目\",\"space.access.team.description\":\"工作区中的任何人和受邀者\",\"space.access.team.tooltip\":\"“{team}”中的任何人均有权访问此项目\",\"yourProjects.title\":\"项目\",\"yourProjects.librariesTab.title\":\"团队库\",\"yourProjects.empty.spaces\":\"创建更多项目并邀请更多工作区成员\",\"browseAll.title\":\"浏览全部\",\"yourFiles.title\":\"您的文档\",\"yourLibraries.title\":\"库\",\"yourLibraries.metadata\":\"库\",\"canvas.metadata\":\"画布\",\"projectInfo.action.view\":\"查看信息\",\"projectInfo.action.edit\":\"编辑项目\",\"projectInfo.empty.cta\":\"新建项目\",\"projectInfo.empty.description\":\"Creative Cloud 项目简化了查找、组织、共享和决策的过程，将创意项目所需的一切都集中在一处。\",\"projectInfo.empty.heading\":\"专心创作，无需追赶。\",\"projectInfo.error.description\":\"请稍后重试\",\"projectInfo.error.heading\":\"无法加载 {section}\",\"projectInfo.new.error.title\":\"无法新建项目\",\"projectInfo.new.noPermission.description\":\"有关更多信息，请与管理员联系。\",\"projectInfo.title.create\":\"新建项目\",\"projectInfo.title.edit\":\"编辑项目\",\"projectInfo.title.view\":\"项目信息\",\"projectInfo.access.title\":\"谁可编辑此项目\",\"projectInfo.access.warning\":\"如果将权限更改为“仅受邀请人员”，则某些成员可能无法访问该项目。\",\"projectInfo.organization\":\"组织\",\"projectInfo.organization.placeholder\":\"请选择一项\",\"projectInfo.description\":\"说明\",\"textField.invalid.characters\":\"名称不能包含以下字符：\\\\\\\\ / * ? \\\" | : < >\",\"textField.invalid.duplicateName\":\"此组织中已有项目具有此名称。\",\"textField.invalid.duplicateName.space\":\"该工作区中已经有一个具有此名称的项目。\",\"textField.invalid.duplicateName.team\":\"此组织中已有工作区具有此名称。\",\"textField.invalid.empty\":\"名称不能为空\",\"textField.invalid.generic\":\"名称无效\",\"textField.invalid.length\":\"名称不能超过 50 个字符\",\"textField.invalid.nameEndsWithDot\":\"名称不能以句点结尾\",\"textField.invalid.offline\":\"重新连接以访问您的所有工作区和项目。要从您的项目查看本地文件，请转到主页。\",\"projectInfo.textField.placeholder\":\"命名此项目\",\"projectInfo.team\":\"工作区\",\"projectInfo.description.placeholder\":\"例如：客户项目的文件、反馈和参考资料\",\"projectInfo.description.invalidLength\":\"描述不得超过 1000 个字符\",\"projectInfo.toast.success.new\":\"已成功创建项目: {name}\",\"projectInfo.toast.success.update\":\"成功更新了项目：{name}\",\"projectInfo.toast.error.generic\":\"无法{create, select, true {创建} other {编辑}}项目\",\"team.empty.heading\":\"项目让每个人的想法保持一致\",\"team.empty.description\":\"厌倦了被锁在文件之外、管控关于版本造成的混乱以及通过电子邮件发送屏幕快照以供审核？请使用空间组织项目、收集资源和反馈并共享整个团队需要处理的文件。\",\"team.empty.createSpace\":\"创建项目\",\"team.empty.inviteMembers\":\"邀请会员\",\"team.empty.startHere\":\"从此处开始\",\"team.create.success\":\"成功创建了工作区：{name}\",\"team.create.error.generic\":\"无法创建工作区\",\"team.edit.success\":\"成功更新了工作区：{name}\",\"team.edit.error.generic\":\"无法更新工作区\",\"team.archive.success\":\"{count, plural, =1 {个工作区} other {{count} 个工作区}} 已删除\",\"team.archive.error.generic\":\"无法删除 {count, plural, =1 {# 个工作区} other {# 个工作区}}\",\"team.error.generic\":\"抱歉，出现错误。\",\"project1Up.action.projectInfo\":\"查看信息\",\"project1up.region.space.ariaLabel\":\"{projectName}，项目\",\"project1Up.section.libraries\":\"库\",\"project1Up.section.libraries.empty.cta\":\"添加 Creative Cloud Libraries\",\"project1Up.section.libraries.empty.description\":\"添加指向工作所需的库的链接。\",\"project1Up.section.libraries.empty.heading\":\"将所有内容集中在一起\",\"project1Up.section.filter\":\"筛选条件\",\"project1Up.section.filter.label\":\"按关键字筛选\",\"project1Up.section.filter.enterKeyword\":\"输入关键字\",\"project1Up.section.filterFiles.empty.heading\":\"没有与所选筛选条件匹配的结果\",\"project1Up.section.compatibleFiles.empty.heading\":\"此项目中没有兼容的文件\",\"project1Up.section.workingFiles\":\"工作文件\",\"project1Up.section.workingFiles.empty.addFiles\":\"添加文件\",\"project1Up.section.workingFiles.empty.createFolder\":\"创建新文件夹\",\"project1Up.section.workingFiles.empty.description\":\"对项目进行迭代并与其他成员协作。\",\"project1Up.section.workingFiles.empty.heading\":\"在需要时处理所需的工作\",\"project1Up.section.published\":\"已发布\",\"project1Up.section.published.empty.cta\":\"如何发布链接\",\"project1Up.section.published.empty.description\":\"发送仅限查看的链接以在适当时间从适当人员获得反馈。\",\"project1Up.section.published.empty.description.readonly\":\"当有人需要反馈或评论时，他们会在此处添加链接。\",\"project1Up.section.published.empty.heading\":\"让共享更有意义\",\"project1Up.section.published.empty.heading.readonly\":\"此项目中没有已发布的项\",\"project1Up.section.canvases\":\"画布\",\"project1Up.section.canvases.empty.cta\":\"添加 Creative Cloud 画布\",\"project1Up.section.canvases.empty.description\":\"添加指向需要完成工作所需的内容的链接。\",\"project1Up.section.canvases.empty.heading\":\"将所有内容集中在一起\",\"project1Up.section.files\":\"文件\",\"project1Up.error.accessDenied.heading\":\"您没有访问权限\",\"project1Up.error.accessDenied.description\":\"已从此项目删除了您。如果您认为有误，请与您的管理员联系。\",\"project1Up.header.seeAll\":\"查看全部\",\"project1up.subheader.selected\":\"已选择 {count, plural, =1 {# 个项目} other {# 个项目}}\",\"project1up.subheader.emptyDescription\":\"向您的项目添加描述\",\"project1up.subheader.canvases.title\":\"画布\",\"project1up.subheader.canvases.subtitle\":\"TODO: 画布副标题\",\"project1up.subheader.libraries.title\":\"库\",\"project1up.subheader.libraries.subtitle\":\"成员可在此处添加 Creative Cloud 库的链接。\",\"project1up.subheader.working.title\":\"工作文件\",\"project1up.subheader.working.subtitle\":\"此项目的成员可编辑这些文件。\",\"project1up.subheader.output.title\":\"已发布\",\"project1up.subheader.output.subtitle\":\"{contributor, select, true {与项目外部人员共享工作的只读版本} other {查看并评论这些只读项}}\",\"project.subtitle\":\"项目\",\"project.countContributors\":\"{count, plural, =1 {# 位成员} other {# 位成员}}\",\"project.versionError.reload.description\":\"请尝试刷新您的浏览器。\",\"project.versionError.reload.title\":\"无法访问项目\",\"project.versionError.update.description\":\"直到更新应用程序后才能访问项目。\",\"project.versionError.update.title\":\"更新 {appName} 以打开\",\"project.alreadyDiscarded.title\":\"删除了此项目\",\"project.alreadyDiscarded.description\":\"如果认为这是误操作，请与管理员联系，如果不是误操作，请浏览其他内容。\",\"project.deleted.title\":\"永久删除了此项目\",\"project.deleted.description\":\"您无法访问此项目，因为它不再可用。\",\"project.metadataError.backLabel\":\"返回到项目\",\"project.metadataError.description\":\"我们找不到您想要的项目，或者您没有访问权限。\",\"project.metadataError.title\":\"抱歉，出现错误。\",\"folder.subtitle\":\"文件夹\",\"libraries.toast.add.start\":\"正在添加 {count, plural, =1 {# 个库} other {# 个库}}\",\"libraries.toast.add.success\":\"已添加 {count, plural, =1 {# 个库} other {# 个库}}\",\"libraries.toast.add.error\":\"无法添加 {count, plural, =1 {# 个库} other {# 个库}}，请重试。\",\"libraries.toast.add.duplicate\":\"此库已存在\",\"libraries.toast.add.onlyDuplicates\":\"无法添加 {count, plural, =1 {# 个库，因为已存在该库} other {# 个库，因为已存在这些库}}。\",\"libraries.toast.delete.success\":\"成功删除了 {count, plural, =1 {# 个库} other {# 个库}}\",\"libraries.toast.delete.error\":\"无法删除 {count, plural, =1 {# 个库} other {# 个库}}\",\"libraries.toast.follow.inProgress\":\"正在关注 {count, plural, =1 {# 个库} other {# 个库}}\",\"libraries.toast.follow.success\":\"已关注 {count, plural, =1 {# 个库} other {# 个库}}\",\"libraries.toast.follow.error\":\"无法关注 {count, plural, =1 {# 个库} other {# 个库}}\",\"libraries.toast.unfollow.inProgress\":\"正在取消关注 {count, plural, =1 {# 个库} other {# 个库}}\",\"libraries.toast.unfollow.success\":\"已取消关注 {count, plural, =1 {# 个库} other {# 个库}}\",\"libraries.toast.unfollow.error\":\"无法取消关注 {count, plural, =1 {# 个库} other {# 个库}}\",\"libraries.modal.empty.heading\":\"没有库\",\"libraries.modal.empty.description\":\"您的组织尚未共享任何库\",\"libraries.modal.error.limitExceeded\":\"无法添加库\",\"libraries.modal.error.limitExceeded.detail\":\"最多可将 100 个库添加到一个项目。删除一些库即可添加更多库。\",\"libraries.brokenResources\":\"由于您无权访问，因此未显示某些库。请联系其他会员以获取更多信息。\",\"copy.start\":\"正在复制{count, plural, =1 {# 个项目} other {# 个项目}}\",\"copy.failure\":\"无法复制{count, plural, =1 {# 个项目} other {# 个项目}}\",\"copy.failure.partial\":\"无法复制某些项目\",\"copy.success\":\"{count, plural, =1 {# 个项目} other {# 个项目}}已复制\",\"copy.conflictSuffix\":\"副本\",\"move.start\":\"正在移动 {count, plural, =1 {# 个项目} other {# 个项目}}\",\"move.failure\":\"无法移动 {count, plural, =1 {# 个项目} other {# 个项目}}\",\"move.failure.partial\":\"无法移动某些项目\",\"move.success\":\"{count, plural, =1 {# 个项目} other {# 个项目}}已移动\",\"upload.start\":\"正在上传 {count, plural, =1 {# 个项目} other {# 个项目}}\",\"upload.failure\":\"无法上传 {count, plural, =1 {# 个项目} other {# 个项目}}\",\"upload.failure.partial\":\"无法上传某些项目\",\"upload.failure.snapshot\":\"不支持此项目\",\"upload.success\":\"{count, plural, =1 {# 个项目} other {# 个项目}} 已上传\",\"download.start\":\"正在下载 {count, plural, =1 {# 个项目} other {# 个项目}}\",\"download.failure\":\"无法下载 {count, plural, =1 {# 个项目} other {# 项目}}\",\"download.failure.partial\":\"无法下载某些项目\",\"download.success\":\"已经下载 {count, plural, =1 {# 个项目} other {# 个项目}}\",\"delete.failure\":\"无法删除 {count, plural, =1 {# 个项目} other {# 个项目}}\",\"delete.failure.partial\":\"无法删除某些项目\",\"delete.success\":\"删除了 {count, plural, =1 {# 个项目} other {# 个项目}}\",\"jobs.failure\":\"{count, plural, =1 {# 个项目} other {# 个项目}}已失败\",\"jobs.inProgress\":\"正在处理...\",\"jobs.success\":\"已完成 {count, plural, =1 {# 个项目} other {# 个项目}}\",\"restore.failure\":\"无法还原 {count, plural, =1 {# 个项目} other {# 项目}}\",\"restore.failure.partial\":\"无法还原某些项目\",\"restore.success\":\"{count, plural, =1 {# 个项目} other {# 项目}}已还原\",\"rename.start\":\"正在重命名\",\"rename.success\":\"{count, plural, =1 {# 个项目} other {# 个项目}}已重命名\",\"rename.failure\":\"服务器错误，无法重命名项目\",\"rename.failure.conflict\":\"此处已存在具有此名称的项目\",\"rename.offline.heading\":\"无法重命名\",\"rename.offline\":\"您已离线，因此无法重命名该项。请重新上线以执行此操作。\",\"bookmark.follow.error\":\"无法收藏此项目\",\"bookmark.unfollow.error\":\"无法取消收藏此项目\",\"bookmark.follow.success\":\"已成功收藏 {projectName}\",\"bookmark.unfollow.success\":\"已成功取消收藏 {projectName}\",\"bookmark.bulk.follow.success\":\"已成功收藏 {count, plural, =1 {# 项} other {# 项}}\",\"bookmark.bulk.follow.partial\":\"无法收藏某些项\",\"bookmark.bulk.follow.error\":\"无法收藏 {count, plural, =1 {# 项} other {# 项}}\",\"bookmark.bulk.unfollow.success\":\"已成功取消收藏 {count, plural, =1 {# 项} other {# 项}}\",\"bookmark.bulk.unfollow.partial\":\"无法取消收藏某些项\",\"bookmark.bulk.unfollow.error\":\"无法取消收藏 {count, plural, =1 {# 项} other {# 项}}\",\"copyLink.success\":\"已将链接复制到剪贴板\",\"copyLink.failure\":\"无法复制链接\",\"starterUser.project1upNavigation\":\"您的入门计划不包括在项目中打开文档\",\"starterUser.project1upNavigationCDPSave\":\"您的入门计划不包括在项目中保存文档\",\"invite.failure\":\"无法发送邀请，请重试。\",\"accessibility.backButton\":\"返回\",\"button.role\":\"按钮\",\"button.actions\":\"操作\",\"button.add\":\"添加\",\"button.addFiles\":\"添加文件\",\"button.addLibrary\":\"添加 库\",\"button.createDocument\":\"新 {appName} 文件\",\"button.library\":\"库\",\"button.back\":\"返回\",\"button.browse\":\"浏览全部\",\"button.cancel\":\"取消\",\"button.okay\":\"确定\",\"button.canvas\":\"画布\",\"button.addCanvas\":\"新建画布\",\"button.changeDefaultApp\":\"更改默认应用程序...\",\"button.close\":\"关闭\",\"button.continue\":\"继续\",\"button.copy\":\"复制到...\",\"button.copyLink\":\"复制链接\",\"button.create\":\"创建\",\"button.createNewFolder\":\"创建新文件夹\",\"button.newFile\":\"新文件\",\"button.newFolder\":\"新建文件夹\",\"button.delete\":\"删除\",\"button.deleteResource\":\"删除\",\"button.done\":\"完成\",\"button.download\":\"下载\",\"button.favorite\":\"收藏\",\"button.follow\":\"关注\",\"button.invite\":\"邀请\",\"button.inviteLabel\":\"邀请他人\",\"button.leave\":\"离开\",\"button.leaveProject\":\"离开工作区\",\"button.move\":\"移动到...\",\"button.next\":\"下一步\",\"button.ok\":\"确定\",\"button.open\":\"打开\",\"button.openWith\":\"打开方式\",\"button.open.appName\":\"{appName} {isDefault, select, true {(Default)} other {}}\",\"button.redo\":\"重试\",\"button.reload\":\"重新加载\",\"button.rename\":\"重命名\",\"button.restore\":\"恢复\",\"button.retry\":\"重试\",\"button.save\":\"保存\",\"button.select\":\"选择\",\"button.share\":\"共享\",\"button.skipTour\":\"跳过介绍\",\"button.undo\":\"还原\",\"button.unfavorite\":\"取消收藏\",\"button.unfollow\":\"取消关注\",\"button.update\":\"更新\",\"button.upgrade\":\"升级\",\"button.view\":\"查看全部\",\"button.viewProject\":\"查看项目\",\"button.viewTarget\":\"查看\",\"button.createWeblink\":\"添加 Web 链接\",\"button.leaveTeam\":\"离开工作区\",\"button.renameTeam\":\"重命名工作区\",\"button.editTeam\":\"编辑工作区信息\",\"button.archiveTeam\":\"删除工作区\",\"button.upload\":\"上传文件\",\"button.goToDeleted\":\"查看已删除的内容\",\"button.viewEverything\":\"查看所有内容\",\"button.viewInWeb\":\"通过 Web 查看\",\"abbreviations.fileSize.byte\":\"B\",\"abbreviations.fileSize.kilobyte\":\"KB\",\"abbreviations.fileSize.megabyte\":\"MB\",\"abbreviations.fileSize.gigabyte\":\"GB\",\"abbreviations.fileSize.terabyte\":\"TB\",\"statusIcon.conflicted\":\"同步冲突\",\"statusIcon.onlineOnly\":\"仅限联机\",\"statusIcon.availableOffline\":\"可离线使用\",\"statusIcon.syncing\":\"正在同步...\",\"statusIcon.waitingToSync\":\"正在等待同步\",\"statusMessage.offline.description\":\"重新连接以访问您的所有工作区和项目。要从您的项目查看本地文件，请转到主页。\",\"statusMessage.offline.heading\":\"您已断开连接\",\"statusMessage.offline.toast\":\"您已断开连接，因此某些功能和文件可能不可用。\",\"toggle.listView\":\"列表视图\",\"toggle.gridView\":\"缩览图视图\",\"color.fuchsia\":\"紫红\",\"color.indigo\":\"靛青\",\"color.celery\":\"深绿\",\"color.magenta\":\"品红\",\"color.yellow\":\"黄色\",\"color.seafoam\":\"水蓝\",\"color.chartreuse\":\"黄绿\",\"color.purple\":\"紫色\",\"color.blue\":\"蓝色\",\"color.red\":\"红色\",\"color.orange\":\"橙色\",\"color.green\":\"绿色\",\"color.label\":\"项目颜色\",\"tooltip.offline.general\":\"请重新上线以执行此操作\",\"tooltip.moreFaces\":\"+ 另外 {number} 个\",\"action.leave.space.success\":\"您离开了 {count, plural, =1 {# 个项目} other {# 个项目}}\",\"action.leave.prototype.success\":\"解除了对 {count, plural, =1 {# 个原型} other {# 个原型}}的访问权限\",\"action.leave.file.success\":\"解除了对 {count, plural, =1 {# 个文件} other {# 个文件}}的访问权限\",\"action.leave.canvas.success\":\"解除了对 {count, plural, =1 {# 个画布} other {# 个画布}}的访问权限\",\"action.leave.team.success\":\"您离开了 1 个工作区\",\"action.leave.space.error\":\"无法离开此项目\",\"action.leave.prototype.error\":\"无法离开此原型\",\"action.leave.file.error\":\"无法离开此文件\",\"action.leave.team.error\":\"无法离开此工作区\",\"action.leave.canvas.error\":\"无法离开此画布\",\"action.leave.space.partial.error\":\"无法离开所有项目\",\"action.leave.prototype.partial.error\":\"无法离开所有原型\",\"action.leave.file.partial.error\":\"无法离开所有文件\",\"action.leave.canvas.partial.error\":\"无法离开所有画布\",\"action.leave.error.onlyContributor\":\"您是唯一的成员。离开前添加其他成员。\",\"action.leave.error.addressBookGroupMember\":\"离开组并重试。\",\"action.leave.error.admin\":\"由于您是管理员，因此您无法离开。\",\"action.leave.error.generic\":\"您无法离开，因为出现了错误。\",\"action.reportAbuse\":\"举报滥用\",\"action.reportAbuse.required\":\"必填\",\"action.reportAbuse.titleText\":\"如果您认为此 Creative Cloud 内容违反了 Adobe 使用条款，您可以通过填写此简易表格来举报此内容。\",\"action.reportAbuse.emailInput\":\"您的电子邮件\",\"action.reportAbuse.nameInput\":\"您的姓名\",\"action.reportAbuse.radioButtonText\":\"为何举报此内容？\",\"action.reportAbuse.defamation\":\"诽谤\",\"action.reportAbuse.hate\":\"种族主义或煽动仇恨内容\",\"action.reportAbuse.trademark\":\"商标侵权\",\"action.reportAbuse.pornography\":\"露骨的涉性内容\",\"action.reportAbuse.vulgar\":\"冒犯性内容\",\"action.reportAbuse.other\":\"其它\",\"action.reportAbuse.inappropriate\":\"不恰当\",\"action.reportAbuse.age\":\"年龄不准确\",\"action.reportAbuse.gender\":\"性别不正确\",\"action.reportAbuse.textAreaTitle\":\"请说明您的疑虑\",\"action.reportAbuse.describeConcern\":\"说明疑虑\",\"action.reportAbuse.success\":\"成功举报滥用行为\",\"action.reportAbuse.failure\":\"无法举报滥用行为\",\"action.menu.label\":\"动作菜单\",\"action.label\":\"动作\",\"dialog.genericError.description\":\"抱歉，出现错误。\",\"dialog.genericError.title\":\"意外错误\",\"dialog.leave.space.title\":\"离开{count, plural, =1 {{name}} other {项目}}\",\"dialog.leave.prototype.title\":\"离开{count, plural, =1 {此原型} other {原型}}\",\"dialog.leave.file.title\":\"离开{count, plural, =1 {此文件} other {文件}}\",\"dialog.leave.canvas.title\":\"离开{count, plural, =1 {此画布} other {画布}}\",\"dialog.leave.team.title\":\"告别？\",\"dialog.leave.team.detail\":\"如果您删除自己，则无法撤消此结果。如果要将您添加回此工作区，请与管理员联系。\",\"dialog.leave.space.detail\":\"您将无法访问此项目中不属于您的项。无法撤消离开“{projectName}”的操作。\",\"dialog.leave.prototype.detail\":\"如果没有其他邀请，您将无法再次访问此项。\",\"dialog.leave.file.detail\":\"如果没有其他邀请，您将无法再次访问此项。\",\"dialog.leave.canvas.detail\":\"如果没有其他邀请，您将无法再次访问此项。\",\"dialog.leave.detail\":\"{type, select, space {您将无法访问{count, plural, =1 {此项目} other {这些项目}}中不属于您的项。无法撤销离开{count, plural, =1 {“{name}”} other {这些项目}}的操作。} other {如果没有另一邀请，则您将无法再次访问{count, plural, =1 {此} other {这些}}项目{count, plural, =1 {。} other {：}}}}\",\"dialog.deleteFailed.title\":\"无法删除所有项目\",\"dialog.deleteWarning.description\":\"{type, select, spaces {此操作将删除这些项目的所有成员的内容：} other {此操作将删除此空间的所有成员的内容：}}\",\"dialog.deleteWarning.title\":\"{type, select, space {删除 {count} {count, plural, =1 {个项目} other {个项目}}} other {删除 {count} {count, plural, =1 {项} other {项}}}}\",\"dialog.deleteFailed.description.unauthorized\":\"无法删除，因为已从此项目中删除了您：\",\"dialog.deleteFailed.description.alreadyDeleted\":\"无法删除，因为其他人已经删除了此项目:\",\"dialog.deleteFailed.description.unknown\":\"无法删除，因为出现了错误:\",\"dialog.cantCopyAllItems\":\"无法复制所有项目\",\"dialog.cantCopyBecauseSomethingWentWrong\":\"无法复制，因为出现了错误:\",\"dialog.cantCopyBecauseYouWereSignedOut\":\"无法复制，因为您已注销：\",\"dialog.cantCopyBecauseYouWereRemoved\":\"无法复制，因为已从此项目中删除了您：\",\"dialog.cantCopyBecauseItemWasDeleted\":\"无法复制，因为其他人删除了此项目：\",\"dialog.cantCopyBecauseItemExists\":\"无法复制，因为您尝试复制所在的位置中已经存在此项：\",\"dialog.cantMoveAllItems\":\"无法移动所有项目\",\"dialog.cantMoveBecauseSomethingWentWrong\":\"无法移动，因为出现了错误:\",\"dialog.cantMoveBecauseYouWereSignedOut\":\"无法移动，因为您已注销：\",\"dialog.cantMoveBecauseYouWereRemoved\":\"无法移动，因为已从此项目中删除了您：\",\"dialog.cantMoveBecauseItemWasDeleted\":\"无法移动，因为其他人删除了此项目：\",\"dialog.cantMoveBecauseItemExists\":\"无法移动，因为您尝试移动所在的位置中已经存在此项：\",\"dialog.createFolder.error\":\"服务器错误，无法保存文件夹\",\"dialog.createFolder.nameConflict\":\"您已有采用此名称的文件夹。\",\"dialog.createFolder.placeholder\":\"文件夹名称\",\"dialog.createFolder.title\":\"创建文件夹\",\"dialog.createFolder.success\":\"已成功创建文件夹\",\"dialog.createWeblink.error\":\"不支持的 url\",\"dialog.createWeblink.tooManyRequests\":\"意外网络错误。请重试。\",\"dialog.createWeblink.success\":\"添加了 1 项\",\"dialog.createWeblink.nameConflict\":\"此标题已存在\",\"dialog.createWeblink.name.placeholder\":\"输入此链接的名称\",\"dialog.createWeblink.link.placeholder\":\"https://\",\"dialog.createWeblink.name\":\"自定义标题\",\"dialog.createWeblink.link\":\"链接\",\"dialog.createWeblink.title\":\"创建 Web 链接\",\"app.type.webLink\":\"Web 链接\",\"dialog.createCanvas.error\":\"无法创建画布\",\"dialog.move.title\":\"移动到项目 {projectName}\",\"dialog.move.detail\":\"如果移动此项目，则将更改可以访问此项目的人员。\",\"moveToTeam.confirm.title\":\"移至 {name} 工作区\",\"moveToTeam.confirm.message\":\"将您的项目移至此处将改变谁可访问它们。任何有权访问您工作区的人均可访问您的项目。\",\"moveToTeam.disabled.differentOrg.tooltip.message\":\"您无法将项目移至不同组织中的工作区。\",\"moveToSpace.disabled.differentOrg.tooltip.message\":\"您无法将项移至不同组织中的项目。\",\"moveToTeam.success\":\"您已将 {count, plural, =1 {# 个项目} other {# 个项目}}移至 {name} 工作区\",\"confirmationDialog.dontShowAgain\":\"不再显示\",\"dialog.open.title\":\"在 Web 上打开\",\"dialog.open.detail\":\"您无法在 {appName} 中打开此文件，但是您可以在浏览器中访问它。\",\"dialog.renameTeam.title\":\"重命名工作区\",\"dialog.renameTeam.placeholder\":\"输入此工作区的名称\",\"dialog.renameTeam.error\":\"抱歉，出现错误。\",\"dialog.renameTeam.nameConflict\":\"此名称已存在\",\"dialog.archiveTeam.title\":\"是否要删除此工作区？\",\"dialog.archiveTeam.detail\":\"如果您删除自己，则无法撤消此结果。如果要再次加入此工作区，请与管理员联系。\",\"dialog.saveToCloud.title\":\"文件已保存到 Creative Cloud\",\"dialog.saveToCloud.detail\":\"您的云文档现在提供版本历史记录、邀请和共同编辑、在其他设备上即时访问等功能。您可以在此处以及在您的 Creative Cloud 应用程序中找到它。\",\"input.invalidCharInput\":\"名称不得包含以下字符：\\\\\\\\ / * ? \\\" | :\",\"input.invalidEmptyInput\":\"{names, select, true {名称} other {标题}}不得为空\",\"input.nameTooLong\":\"{names, select, true {名称} other {标题}} 不得超过 {maxLength} 个字符\",\"input.nameEndsWithDot\":\"{names, select, true {姓名} other {头衔}} 不得以句点结尾\",\"input.weblink.nameRestricted\":\"Web 链接不能具有以下标题：“con”、“prn”、“aux”、“nul”、“com”、“lpt#”\",\"input.nameRestricted\":\"资源不能具有以下名称：con/prn/aux/nul/com#/lpt#\",\"input.weblink.invalidCharInput\":\"标题不得仅包含空格或包含以下字符：\\\\\\\\ / * ? \\\" | : < > \",\"input.name.invalidCharInput\":\"名称不得仅包含空格或包含以下字符：\\\\\\\\ / * ? \\\" | : < > \",\"cdpFooter.orphanedArtifactsWarning\":\"将在原有项目中保留与所移动的项有关的已发布链接\",\"cdpFooter.libraryPrivacyWarning\":\"如果您具有所添加的某个库的重新共享权限，则项目成员将可查看该库\",\"toast.beforeOp.error.documentIsOpen\":\"关闭{count, plural, =1{文档}other{文档}}以执行此操作。\",\"app.type.designSpecs\":\"设计规范\",\"app.type.prototype\":\"原型\",\"app.type.publishedLink\":\"已发布链接\",\"popover.header\":\"与他人合作进行项目，并分享您的工作以获取反馈。\",\"popover.linkout\":\"了解详情\",\"team.libraries.filter.all\":\"全部\",\"team.libraries.filter.addedToYourLibraries\":\"已添加到您的库\",\"team.libraries.filter.notAdded\":\"未添加\",\"team.spaces.filter.all\":\"全部\",\"team.spaces.filter.favorited\":\"已收藏\",\"team.filter.empty.heading\":\"没有项目与所选的筛选条件匹配\",\"team.filter.empty.description1\":\"我们在此列表中找不到 \",\"team.filter.empty.description2\":\" 的结果。检查您的拼写或尝试使用其他关键字。\",\"team.filter.no.match.description\":\"我们在此列表中找不到结果。检查您的拼写或尝试使用其他筛选条件。\",\"team.filter.filterText\":\"{filter}\",\"team.header.other.teams\":\"其他工作区\",\"space.empty.heading\":\"集中处理，人人发挥作用\",\"space.empty.description\":\"可将工作文件和相关材料填入此项目。还可邀请协作者加入并添加他们正在处理的内容。\",\"space.empty.canvasHeading\":\"CREATIVE CLOUD CANVAS\",\"space.empty.actionsHeading\":\"将内容添加到您的项目\",\"space.empty.createCanvas\":\"新建画布\",\"space.empty.upload\":\"添加文件\",\"space.empty.createFolder\":\"新建文件夹\",\"space.empty.createWeblink\":\"Web 链接\",\"space.empty.addResource\":\"库\",\"folder.empty.heading\":\"此文件夹为空。\",\"folder.empty.description\":\"开始添加文件以进行填充。\",\"folder.discard.heading\":\"已删除此文件夹。\",\"folder.discard.description\":\"如果认为这是误操作，请与管理员联系，如果不是误操作，请浏览其他内容。\",\"folder.error.description\":\"从此文件夹加载内容时有问题。\",\"space.empty.section.createACanvas\":\"创建画布\",\"tooltip.opensInBrowser\":\"在浏览器中打开\",\"space.empty.workingFiles\":\"继续添加到此项目\",\"space.empty.canvasPopoverTitle\":\"试用 Creative Cloud Canvas（测试版）\",\"space.empty.canvasPopoverContent\":\"使用画布实现创意作品的版面设计、可视化和预览。\",\"space.error.heading\":\"无法加载项目\",\"space.error.description\":\"从该项目加载内容时出现问题。\",\"createTeamWizard.createTeam.sidebarHeading\":\"创建工作区\",\"createTeamWizard.createTeam.sidebarCopy\":\"创建一个工作区，让每个人都使用同一页面，有序开展工作。\",\"createTeamWizard.createTeam.sidebarCopy.adminconsole\":\"设置一个您的团队可以协作和共享文件的地方。\",\"createTeamWizard.createTeam.sidebarLink\":\"了解详细信息\",\"createTeamWizard.createTeam.contentHeading\":\"新建工作区\",\"createTeamWizard.createTeam.loading\":\"正在创建“{name}”工作区\",\"createTeamWizard.inviteMembers.sidebarHeading\":\"邀请成员加入“{name}”工作区\",\"createTeamWizard.inviteMembers.sidebarCopy\":\"立即开始输入姓名或电子邮件以邀请成员，或跳过此步骤并稍后邀请他们。\",\"createTeamWizard.inviteMembers.loading\":\"邀请成员加入“{name}”工作区\",\"createTeamWizard.inviteMembers.contentHeading\":\"邀请会员\",\"createTeamWizard.inviteMembers.successToast\":\"成员已添加到新工作区\",\"createTeamWizard.progress\":\"第 {current} 步/共 {total} 步\",\"createTeamWizard.skipStep\":\"跳过\",\"teamDialog.createTeam.label\":\"创建工作区\",\"teamDialog.createTeam.infoBox.description\":\"您创建的工作区仅限受邀用户加入，默认情况下添加的每位成员都具有编辑访问权限。\",\"teamDialog.editTeam.label\":\"编辑工作区\",\"teamDialog.nameSection.placeholder\":\"为新工作区命名\",\"teamDialog.nameSection.label\":\"工作区名称\",\"teamDialog.permissionsSection.label\":\"谁可编辑此工作区\",\"teamDialog.permissionsSection.option.onlyInvited\":\"仅受邀请人员\",\"teamDialog.descriptionSection.label\":\"工作区说明（可选）\",\"teamDialog.descriptionSection.placeholder\":\"添加一些关于您的工作空间的描述\",\"teamsSidebar.noTeams\":\"无工作区\",\"teamsSidebar.newTeamButton\":\"创建工作区\",\"teamsSidebar.adminTour.title\":\"新增功能：创建工作区\",\"teamsSidebar.adminTour.content\":\"现在，管理员可以在 Creative Cloud Web 版中创建工作区，从而更轻松地围绕共享工作进行组织。\",\"teamsSidebarTeam.newSpaceButton\":\"新项目\",\"teamsSidebarTeam.header.newBadge\":\"全新\",\"teamsSidebarTeam.header.otherTeams\":\"来自其他工作区\",\"teamsSidebarTeam.header.teams\":\"工作区\",\"teamsSidebarTeam.header.previewLabel\":\"（预览）\",\"teamsSidebarTeam.header.previewCopy\":\"在专用测试版中有工作区和项目可用。\",\"teamsSidebarTeam.header.previewLearnMoreText\":\"了解详细信息\",\"teamsSidebarTeam.message.loading\":\"正在加载...\",\"teamsSidebarTeam.message.noSpaces\":\"您没有工作区或项目。\",\"teamsSidebarTeam.message.offline\":\"您已断开连接。请重新连接以查看您的工作区和项目。\",\"teamsSidebarTeam.message.error\":\"加载您的工作区和项目时有问题。\",\"teams1up.error.description\":\"加载您的项目时有问题。\",\"teams1up.error.heading\":\"无法加载项目\",\"otherTeams.emptyMessage.header\":\"无法查看工作区页面\",\"otherTeams.emptyMessage.description1\":\"已将您从使用\",\"otherTeams.emptyMessage.description2\":\"分区的上一个空间移除或您已离开该空间。如果您认为这是误操作，请联系您的管理员。\",\"spaceTour.step0.title\":\"您的项目在此处\",\"spaceTour.step0.content\":\"项目可帮助团队进行协作以及收集、整理和共享文件与资源。\",\"spaceTour.step1.title\":\"添加项目所需的一切\",\"spaceTour.step1.content\":\"将工作文件、参考图像、资源等集中在一处。\",\"spaceTour.step2.title\":\"设置（和忘记）权限\",\"spaceTour.step2.content\":\"当您邀请合作者时，为他们分配正确的访问权限，以便省时省事。将仅供查看的包发送给利益相关者以供审查和反馈。\",\"error.cantCreateSpace\":\"工作区存储空间已满\",\"error.exceedQuota.create.detail.description1\":\"目前无法创建任何新内容。请选择\",\"error.exceedQuota.description2\":\"以释放存储空间。\",\"error.exceedQuota.add.detail.description1\":\"您目前无法添加任何新内容。选择\",\"error.move.generic\":\"无法移动，因为出现了错误\",\"error.move.signedOut\":\"无法移动，因为您已注销\",\"error.move.permissionRevoked\":\"无法移动，因为已从此项目中将您移除\",\"error.move.deleted\":\"无法移动，因为其他人删除了此项\",\"error.move.duplicate\":\"无法移动，因为您尝试移至的位置已存在此项\",\"error.copy.generic\":\"无法复制，因为出现了错误\",\"error.copy.signedOut\":\"无法复制，因为您已注销\",\"error.copy.permissionRevoked\":\"无法复制，因为已从此项目中将您移除\",\"error.copy.deleted\":\"无法复制，因为其他人删除了此项\",\"error.copy.duplicate\":\"无法复制，因为您尝试复制到的位置已存在此项\",\"checkbox.select\":\"选择\",\"listItem.fileSize\":\"文件大小\",\"facepile.additionalMembers\":\"其他成员 +{count}\",\"facepile.memberName\":\"{name}，成员\",\"coachmark.information\":\"信息\",\"toolbar.tools\":\"工具\",\"griditem.error.message\":\"无法获取\",\"griditem.error.button\":\"重试\",\"ats.move.extendedNotification\":\"当您的移动完成时，您将收到通知。\",\"file.deleted.error.heading\":\"无法{operation}文件\",\"file.deleted.error.description\":\"无法{operation}此文件，因为已删除了它。请从已删除的文件还原并重试，或选取不同的位置。\",\"file.deleted.rename.error.description\":\"无法重命名此文件，因为已删除了它。请选择“转到‘已删除’”以还原此文件。\"}");

/***/ }),

/***/ "Jb7g":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var d = __webpack_require__("9Qh4"),
    validateSymbol = __webpack_require__("s4AO");

var registry = Object.create(null);

module.exports = function (SymbolPolyfill) {
  return Object.defineProperties(SymbolPolyfill, {
    for: d(function (key) {
      if (registry[key]) return registry[key];
      return registry[key] = SymbolPolyfill(String(key));
    }),
    keyFor: d(function (symbol) {
      var key;
      validateSymbol(symbol);

      for (key in registry) {
        if (registry[key] === symbol) return key;
      }

      return undefined;
    })
  });
};

/***/ }),

/***/ "JbBM":
/***/ (function(module, exports, __webpack_require__) {

__webpack_require__("Hfiw");

module.exports = __webpack_require__("WEpk").Object.setPrototypeOf;

/***/ }),

/***/ "JbWX":
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/*
Copyright (c) 2014, Yahoo! Inc. All rights reserved.
Copyrights licensed under the New BSD License.
See the accompanying LICENSE file for terms.
*/

/* jslint esnext: true */


exports.extend = extend;
var hop = Object.prototype.hasOwnProperty;

function extend(obj) {
  var sources = Array.prototype.slice.call(arguments, 1),
      i,
      len,
      source,
      key;

  for (i = 0, len = sources.length; i < len; i += 1) {
    source = sources[i];

    if (!source) {
      continue;
    }

    for (key in source) {
      if (hop.call(source, key)) {
        obj[key] = source[key];
      }
    }
  }

  return obj;
}

exports.hop = hop;

/***/ }),

/***/ "JbkM":
/***/ (function(module, exports, __webpack_require__) {

// extracted by mini-css-extract-plugin

/***/ }),

/***/ "JdbT":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return DisposerManager; });
/* harmony import */ var _js_iaw_jsUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("KTUt");
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2022 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/

class DisposerManager {
    constructor() {
        this._disposersMap = new Map();
    }
    /**
     * Registers the mobx disposer into the manager.
     * If a disposer already exists with the same `disposerId`, the old one
     * will be disposed and the new one will take its place.
     *
     * If you use an `observe`/`reaction` inside a method that might be called multiple times,
     * you should pass a `disposerId` so that the older `observe`/`reaction` gets disposed
     * of before setting the new one. Otherwise multiple `observes` with the same effect might be created.
     *
     * @param disposer The mobx disposer
     * @param disposerId An unique identifier for this disposer. This param is optional - if it's not provided, a GUID will be used instead.
     * @returns The disposerId
     */
    register(disposer, disposerId) {
        // if an identifier is not provided, generate a GUID
        disposerId = disposerId !== null && disposerId !== void 0 ? disposerId : _js_iaw_jsUtil__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].generateGUID();
        // check if an old disposer exists with the same disposerId and dispose of it
        const oldDisposer = this._disposersMap.get(disposerId);
        oldDisposer === null || oldDisposer === void 0 ? void 0 : oldDisposer();
        // set the new disposer
        this._disposersMap.set(disposerId, disposer);
        return disposerId;
    }
    /**
     * Returns the disposer registered with the given disposerId
     *
     * @param disposerId The unique identifier of the disposer you want to get
     * @returns The disposer or undefined, if it doesn't exist
     */
    getDisposer(disposerId) {
        return this._disposersMap.get(disposerId);
    }
    /**
     * Calls the disposer registered with the given disposerId and removes it from the manager
     *
     * @param disposerId The unique identifier of the disposer you want to call
     */
    dispose(disposerId) {
        const disposer = this._disposersMap.get(disposerId);
        if (disposer) {
            disposer();
            this._disposersMap.delete(disposerId);
        }
    }
    /**
     * Calls all the registered disposers and removes them from the manager
     */
    disposeAll() {
        this._disposersMap.forEach((disposer) => {
            disposer();
        });
        this._disposersMap.clear();
    }
}


/***/ }),

/***/ "Jes0":
/***/ (function(module, exports) {

// 7.2.1 RequireObjectCoercible(argument)
module.exports = function (it) {
  if (it == undefined) throw TypeError("Can't call method on  " + it);
  return it;
};

/***/ }),

/***/ "Jh3V":
/***/ (function(module) {

module.exports = JSON.parse("{\"Breadcrumbs\":\"Breadcrumbs\"}");

/***/ }),

/***/ "Ji/Z":
/***/ (function(module) {

module.exports = JSON.parse("{\"steps\":\"{currentStep} из {totalSteps}\"}");

/***/ }),

/***/ "Jk2O":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return copy; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return move; });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _react_react_spectrum_Icon_Copy__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("6twZ");
/* harmony import */ var _react_react_spectrum_Icon_Copy__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Icon_Copy__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _react_react_spectrum_Icon_MoveTo__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("OOwQ");
/* harmony import */ var _react_react_spectrum_Icon_MoveTo__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Icon_MoveTo__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _packages_CDOView_utils_action__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("duTG");
/* harmony import */ var _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("mm/P");
/* harmony import */ var _beforeOp__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("Ku5u");
/* harmony import */ var _hosts_Host__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("Dy/p");







const copy = ({ app, sourceProject, onViewProject, onProjectUpdated, isVisible, }) => {
    return new _packages_CDOView_utils_action__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"]({
        value: 'copy',
        label: 'button.copy',
        icon: react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_react_react_spectrum_Icon_Copy__WEBPACK_IMPORTED_MODULE_1___default.a, null),
        supportsMultiple: true,
        isVisible,
        getIsButtonDisabled: () => app.showOfflineWithFeatureFlag,
        getDisabledTooltipMsgId: () => 'tooltip.offline.general',
        execute: async (items) => {
            const data = {
                ..._utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_4__[/* default */ "g"].scaffoldEvent(_utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_4__[/* Subcategory */ "c"].Copy, _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_4__[/* Subtype */ "d"].copyFiles, _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_4__[/* Type */ "e"].click, _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_4__[/* Workflow */ "f"].CopyFiles),
                ui: app.projectList.uiConfig.cdoUISettings,
            };
            Object.assign(data.event, { count: items.length });
            _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_4__[/* default */ "g"].fireEvent(data);
            return await app.projectsClient.copyItems({
                items,
                sourceProject,
                hostBrowseSession: app,
                onViewProject,
                onProjectUpdated,
            });
        },
    });
};
const move = ({ app, sourceTeam, sourceProject, onViewProject, onProjectUpdated, isVisible, }) => {
    return new _packages_CDOView_utils_action__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"]({
        value: 'move',
        label: 'button.move',
        icon: react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_react_react_spectrum_Icon_MoveTo__WEBPACK_IMPORTED_MODULE_2___default.a, null),
        supportsMultiple: true,
        isVisible,
        getIsButtonDisabled: () => app.showOfflineWithFeatureFlag,
        getDisabledTooltipMsgId: () => 'tooltip.offline.general',
        execute: async (items) => {
            // Let the host filter out items the user has selected before the operation.
            const filteredElements = await Object(_beforeOp__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"])(items, app, _hosts_Host__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"].onBeforeMove, _hosts_Host__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"].getOpenCloudDocuments);
            if (!filteredElements.length) {
                return;
            }
            const args = {
                items,
                sourceTeam,
                sourceProject,
                hostBrowseSession: app,
                onViewProject,
                onProjectUpdated,
            };
            if (sourceTeam) {
                await app.projectsClient.moveItems(args);
            }
            else {
                await app.projectsClient.moveItemsToSpace(args);
            }
        },
    });
};


/***/ }),

/***/ "JnQh":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _icon = __webpack_require__("vo16");

var _convertUnsafeMethod = _interopRequireDefault(__webpack_require__("8nyd"));

var _createId = _interopRequireDefault(__webpack_require__("b7KY"));

var _filterDOMProps = _interopRequireDefault(__webpack_require__("Cv/Q"));

var _focusRing = _interopRequireDefault(__webpack_require__("PBY+"));

var _propTypes = _interopRequireDefault(__webpack_require__("17x9"));

var _react = _interopRequireWildcard(__webpack_require__("q1tI"));

const _excluded = ["id", "label", "children", "className", "selected", "disabled", "invalid", "icon", "renderChildren", "tabIndex"];

var _class, _class2, _temp;

function _getRequireWildcardCache(nodeInterop) {
  if (typeof WeakMap !== "function") return null;
  var cacheBabelInterop = new WeakMap();
  var cacheNodeInterop = new WeakMap();
  return (_getRequireWildcardCache = function (nodeInterop) {
    return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
  })(nodeInterop);
}

function _interopRequireWildcard(obj, nodeInterop) {
  if (!nodeInterop && obj && obj.__esModule) {
    return obj;
  }

  if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
    return {
      default: obj
    };
  }

  var cache = _getRequireWildcardCache(nodeInterop);

  if (cache && cache.has(obj)) {
    return cache.get(obj);
  }

  var newObj = {};
  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;

  for (var key in obj) {
    if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
      var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;

      if (desc && (desc.get || desc.set)) {
        Object.defineProperty(newObj, key, desc);
      } else {
        newObj[key] = obj[key];
      }
    }
  }

  newObj.default = obj;

  if (cache) {
    cache.set(obj, newObj);
  }

  return newObj;
}

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

let Tab =
/**
 * An individual tab in a TabList or TabView
 */
(0, _convertUnsafeMethod.default)(_class = (0, _focusRing.default)(_class = (_temp = _class2 = class Tab extends _react.Component {
  constructor(props) {
    super(props);

    this.handleClick = e => {
      if (!this.props.disabled && this.props.onClick) {
        this.props.onClick(e);
      }
    };

    this.handleKeyPress = e => {
      if (e.key === 'Enter' || e.key === ' ') {
        e.preventDefault();
        this.handleClick(e);
      }
    };

    this.tabId = (0, _createId.default)();
  }

  render() {
    const _this$props = this.props,
          {
      id = this.tabId,
      label,
      children,
      className,
      selected,
      disabled,
      invalid,
      icon,
      renderChildren,
      // v3 Temporary, will be removed in next major version bump
      tabIndex = 0
    } = _this$props,
          otherProps = _objectWithoutProperties(_this$props, _excluded);

    let iconSize = label || renderChildren && children ? 'XS' : 'S';
    return /*#__PURE__*/_react.default.createElement("div", _extends({}, (0, _filterDOMProps.default)(otherProps), {
      className: (0, _classnames.default)('spectrum-Tabs-item', {
        'is-selected': selected,
        'is-disabled': disabled,
        'is-invalid': invalid
      }, className),
      id: id,
      role: "tab",
      "aria-selected": selected,
      "aria-invalid": invalid || null,
      "aria-disabled": disabled || null,
      tabIndex: !disabled ? tabIndex : null,
      onClick: !disabled ? this.handleClick : null,
      onKeyPress: !disabled ? this.handleKeyPress : null
    }), (0, _icon.cloneIcon)(icon, {
      size: iconSize,
      className: 'spectrum-Tabs-item-icon'
    }), (label || renderChildren && children) && /*#__PURE__*/_react.default.createElement("span", {
      className: "spectrum-Tabs-itemLabel"
    }, label || renderChildren && children));
  }

}, _class2.displayName = 'Tab', _class2.propTypes = {
  /** Class to add to tab */
  className: _propTypes.default.string,

  /** Whether the tab should be disabled or not */
  disabled: _propTypes.default.bool,

  /** Icon to add to tab */
  icon: _propTypes.default.object,

  /** Whether to disable the invalid icon on the tab */
  invalid: _propTypes.default.bool,

  /** Tab label */
  label: _propTypes.default.string,

  /** Whether to render children in the tab */
  renderChildren: _propTypes.default.bool,

  /** Whether the tab is selected */
  selected: _propTypes.default.bool,

  /** Index of the tab in the grouping */
  tabIndex: _propTypes.default.number
}, _class2.defaultProps = {
  disabled: false,
  invalid: false,
  selected: false,
  tabIndex: 0,
  renderChildren: true
}, _temp)) || _class) || _class;

exports.default = Tab;

/***/ }),

/***/ "K0Sv":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return CDOImsDataBuilder; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return getSupportedCDOTheme; });
/* harmony import */ var _ccx_ccx_cdo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("t+6E");
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2021 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/

function CDOImsDataBuilder(user, fetchCDOToken) {
    return {
        environment: user.isStaging ? 'stage' : 'prod',
        subscriptionType: user.subscriptionStatus,
        fetchToken: async (currentToken) => {
            const token = await fetchCDOToken(currentToken);
            return token;
        },
        fetchUserId: () => user.UserProfile.userId,
        fetchUserEmail: () => user.UserProfile.userEmail,
        accountType: user.UserProfile.accountType,
        countryCode: user.UserProfile.countryCode,
        serviceCode: user.service_code,
        serviceLevel: 'CS_LVL' + user.LegacyProfile.licenseType,
    };
}
// IAW-10507 CDO now supports all four themes, so we need to remap the theme so that the UI looks the same
function getSupportedCDOTheme(theme) {
    return ['light', 'lightest'].some(el => el === theme) ? _ccx_ccx_cdo__WEBPACK_IMPORTED_MODULE_0__[/* Themes */ "x"].light : _ccx_ccx_cdo__WEBPACK_IMPORTED_MODULE_0__[/* Themes */ "x"].darkest;
}


/***/ }),

/***/ "K0X4":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = TBody;

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _filterDOMProps = _interopRequireDefault(__webpack_require__("Cv/Q"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

const _excluded = ["className", "children"];

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}
/**
 * A table body
 */


function TBody(_ref) {
  let {
    className,
    children
  } = _ref,
      otherProps = _objectWithoutProperties(_ref, _excluded);

  return /*#__PURE__*/_react.default.createElement("tbody", _extends({
    className: (0, _classnames.default)('spectrum-Table-body', className)
  }, (0, _filterDOMProps.default)(otherProps)), children);
}

TBody.displayName = 'TBody';

/***/ }),

/***/ "K0XK":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _createId = _interopRequireDefault(__webpack_require__("b7KY"));

var _filterDOMProps = _interopRequireDefault(__webpack_require__("Cv/Q"));

var _propTypes = _interopRequireDefault(__webpack_require__("17x9"));

var _react = _interopRequireWildcard(__webpack_require__("q1tI"));

const _excluded = ["variant", "children", "className", "placement", "open", "id"];

function _getRequireWildcardCache(nodeInterop) {
  if (typeof WeakMap !== "function") return null;
  var cacheBabelInterop = new WeakMap();
  var cacheNodeInterop = new WeakMap();
  return (_getRequireWildcardCache = function (nodeInterop) {
    return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
  })(nodeInterop);
}

function _interopRequireWildcard(obj, nodeInterop) {
  if (!nodeInterop && obj && obj.__esModule) {
    return obj;
  }

  if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
    return {
      default: obj
    };
  }

  var cache = _getRequireWildcardCache(nodeInterop);

  if (cache && cache.has(obj)) {
    return cache.get(obj);
  }

  var newObj = {};
  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;

  for (var key in obj) {
    if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
      var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;

      if (desc && (desc.get || desc.set)) {
        Object.defineProperty(newObj, key, desc);
      } else {
        newObj[key] = obj[key];
      }
    }
  }

  newObj.default = obj;

  if (cache) {
    cache.set(obj, newObj);
  }

  return newObj;
}

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

if (false) {} else if (false) {} else {
  __webpack_require__("jhQD");
}

if (true) __webpack_require__("qjS4");
if (true) __webpack_require__("R7Sp");
if (true) __webpack_require__("0124");
if (true) __webpack_require__("owSO");

class Tooltip extends _react.Component {
  constructor(props) {
    super(props);
    this.tooltipId = (0, _createId.default)();
  }

  render() {
    const _this$props = this.props,
          {
      variant,
      children,
      className,
      placement,
      open,
      id = this.tooltipId
    } = _this$props,
          otherProps = _objectWithoutProperties(_this$props, _excluded);

    return /*#__PURE__*/_react.default.createElement("span", _extends({
      className: (0, _classnames.default)('spectrum-Tooltip', `spectrum-Tooltip--${variant}`, `spectrum-Tooltip--${placement.split(' ')[0]}`, {
        'is-open': open
      }, className),
      id: id
    }, (0, _filterDOMProps.default)(otherProps)), /*#__PURE__*/_react.default.createElement("span", {
      className: "spectrum-Tooltip-label"
    }, children), this.renderTip());
  }

  renderTip() {
    return /*#__PURE__*/_react.default.createElement("span", {
      className: "spectrum-Tooltip-tip",
      style: this.props.arrowStyle
    });
  }

}

exports.default = Tooltip;
Tooltip.propTypes = {
  /**
   * The placement of the tooltip.
   */
  placement: _propTypes.default.oneOf(['bottom', 'top', 'left', 'right']),

  /**
   * The variant will affect color.
   */
  variant: _propTypes.default.oneOf(['inspect', 'info', 'success', 'error']),

  /**
   * The class name of the tooltip.
   */
  className: _propTypes.default.string,

  /**
   * The ID of the tooltip.
   */
  id: _propTypes.default.string,

  /**
   * The WAI-ARIA role for the tooltip
   */
  role: _propTypes.default.oneOf(['tooltip']),

  /**
   * Control if the tooltip should be opened or not.
   */
  open: _propTypes.default.bool
};
Tooltip.defaultProps = {
  variant: 'inspect',
  placement: 'right',
  open: true,
  role: 'tooltip'
};

/***/ }),

/***/ "K4vZ":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

var _SpUxpNativeDialog = _interopRequireDefault(__webpack_require__("5e5i"));

var _UxpNonNativeDialog = _interopRequireDefault(__webpack_require__("Ondd"));

var _UxpOptions = _interopRequireDefault(__webpack_require__("zvwv"));

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
} // if isNative props is supplied as true AND platform has compositing (z-index) issues 
// use the native modal dialogs provided by the platform
// else use the default spectrum dialog


const SpUxpDialog = /*#__PURE__*/_react.default.forwardRef((props, ref) => {
  if (_UxpOptions.default.productNeedsOverlayFix && props && props.isNative === true) {
    return /*#__PURE__*/_react.default.createElement(_SpUxpNativeDialog.default, _extends({}, props, {
      ref: ref
    }));
  } else {
    return /*#__PURE__*/_react.default.createElement(_UxpNonNativeDialog.default, _extends({}, props, {
      ref: ref
    }));
  }
});

var _default = SpUxpDialog;
exports.default = _default;

/***/ }),

/***/ "KAEN":
/***/ (function(module) {

module.exports = JSON.parse("{\"name\":\"elliptic\",\"version\":\"6.5.4\",\"description\":\"EC cryptography\",\"main\":\"lib/elliptic.js\",\"files\":[\"lib\"],\"scripts\":{\"lint\":\"eslint lib test\",\"lint:fix\":\"npm run lint -- --fix\",\"unit\":\"istanbul test _mocha --reporter=spec test/index.js\",\"test\":\"npm run lint && npm run unit\",\"version\":\"grunt dist && git add dist/\"},\"repository\":{\"type\":\"git\",\"url\":\"git@github.com:indutny/elliptic\"},\"keywords\":[\"EC\",\"Elliptic\",\"curve\",\"Cryptography\"],\"author\":\"Fedor Indutny <fedor@indutny.com>\",\"license\":\"MIT\",\"bugs\":{\"url\":\"https://github.com/indutny/elliptic/issues\"},\"homepage\":\"https://github.com/indutny/elliptic\",\"devDependencies\":{\"brfs\":\"^2.0.2\",\"coveralls\":\"^3.1.0\",\"eslint\":\"^7.6.0\",\"grunt\":\"^1.2.1\",\"grunt-browserify\":\"^5.3.0\",\"grunt-cli\":\"^1.3.2\",\"grunt-contrib-connect\":\"^3.0.0\",\"grunt-contrib-copy\":\"^1.0.0\",\"grunt-contrib-uglify\":\"^5.0.0\",\"grunt-mocha-istanbul\":\"^5.0.2\",\"grunt-saucelabs\":\"^9.0.1\",\"istanbul\":\"^0.4.5\",\"mocha\":\"^8.0.1\"},\"dependencies\":{\"bn.js\":\"^4.11.9\",\"brorand\":\"^1.1.0\",\"hash.js\":\"^1.0.0\",\"hmac-drbg\":\"^1.0.1\",\"inherits\":\"^2.0.4\",\"minimalistic-assert\":\"^1.0.1\",\"minimalistic-crypto-utils\":\"^1.0.1\"}}");

/***/ }),

/***/ "KAOT":
/***/ (function(module, exports) {

// generated by genversion
module.exports = '1.7.0';

/***/ }),

/***/ "KAOZ":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("path", {
  d: "M38 13v19l-3.405.011a.5.5 0 0 0-.349.862L40 38.615l5.766-5.742a.5.5 0 0 0-.349-.862L42 32V13a1 1 0 0 0-1-1h-2a1 1 0 0 0-1 1z"
}), React.createElement("rect", {
  height: "4",
  rx: "1",
  ry: "1",
  width: "28",
  x: "4",
  y: "12"
}), React.createElement("rect", {
  height: "4",
  rx: "1",
  ry: "1",
  width: "24",
  x: "4",
  y: "22"
}), React.createElement("rect", {
  height: "4",
  rx: "1",
  ry: "1",
  width: "20",
  x: "4",
  y: "32"
}));

/***/ }),

/***/ "KLR1":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("rect", {
  height: "44",
  rx: ".5",
  ry: ".5",
  width: "2",
  x: "38",
  y: "2"
}), React.createElement("path", {
  d: "M12.823 31.3L9.117 41.69a.36.36 0 0 1-.41.31h-3.5c-.255 0-.36-.155-.31-.41l11.218-31.224a5.534 5.534 0 0 0 .36-2.111.242.242 0 0 1 .256-.255h5.043c.205 0 .255.05.306.255L34.167 41.64c.1.205.054.36-.205.36h-3.908a.459.459 0 0 1-.41-.255L25.886 31.3zm11.882-3.958C23.57 24 20.333 14.994 19.353 11.5H19.3c-.875 3.292-3.342 10.186-5.3 15.844z"
}), React.createElement("path", {
  d: "M12.823 31.3L9.117 41.69a.36.36 0 0 1-.41.31h-3.5c-.255 0-.36-.155-.31-.41l11.218-31.224a5.534 5.534 0 0 0 .36-2.111.242.242 0 0 1 .256-.255h5.043c.205 0 .255.05.306.255L34.167 41.64c.1.205.054.36-.205.36h-3.908a.459.459 0 0 1-.41-.255L25.886 31.3zm11.882-3.958C23.57 24 20.333 14.994 19.353 11.5H19.3c-.875 3.292-3.342 10.186-5.3 15.844z"
}));

/***/ }),

/***/ "KMkd":
/***/ (function(module, exports) {

/**
 * Removes all key-value entries from the list cache.
 *
 * @private
 * @name clear
 * @memberOf ListCache
 */
function listCacheClear() {
  this.__data__ = [];
  this.size = 0;
}

module.exports = listCacheClear;

/***/ }),

/***/ "KNr8":
/***/ (function(module, exports) {

/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Inc.
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/


/***/ }),

/***/ "KRN9":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

const _excluded = ["styles"];

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }

function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

var _default = _ref => {
  let {
    styles = {}
  } = _ref,
      props = _objectWithoutProperties(_ref, _excluded);

  return /*#__PURE__*/_react.default.createElement("svg", _extends({
    xmlns: "http://www.w3.org/2000/svg",
    height: "18",
    id: "S_Learn_18_N",
    viewBox: "0 0 18 18",
    width: "18"
  }, props), /*#__PURE__*/_react.default.createElement("defs", null), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["fill"] || "fill",
    d: "M9.25 3.96a4.055 4.055 0 0 0-4.186 3.921v.269a4.493 4.493 0 0 0 1.285 2.987 2.967 2.967 0 0 1 .85 1.692v2.591a1 1 0 0 0 .318.731l.765.714a.5.5 0 0 0 .345.135h1.242a.5.5 0 0 0 .341-.135l.768-.715a.994.994 0 0 0 .317-.731v-2.3a2.392 2.392 0 0 1 .265-1.156c.35-.637.9-1.143 1.282-1.763a3.885 3.885 0 0 0 .594-2.048A4.057 4.057 0 0 0 9.519 3.96a4.021 4.021 0 0 0-.269 0zm1.969 6.428a5.723 5.723 0 0 0-.974 1.494 3.219 3.219 0 0 0-.175 1.109H8.434a3.535 3.535 0 0 0-.057-.7 3.007 3.007 0 0 0-.344-.876 8.29 8.29 0 0 0-.753-1.033 3.371 3.371 0 0 1-1.02-2.231 2.837 2.837 0 0 1 2.67-2.994 2.628 2.628 0 0 1 .32 0 2.839 2.839 0 0 1 2.99 2.993 3.377 3.377 0 0 1-1.021 2.238z"
  }), /*#__PURE__*/_react.default.createElement("rect", {
    className: styles["fill"] || "fill",
    height: "2.864",
    rx: ".409",
    width: "1.227",
    x: "8.637"
  }), /*#__PURE__*/_react.default.createElement("rect", {
    className: styles["fill"] || "fill",
    height: "1.227",
    rx: ".409",
    width: "2.864",
    x: "14.568",
    y: "7.773"
  }), /*#__PURE__*/_react.default.createElement("rect", {
    className: styles["fill"] || "fill",
    height: "1.227",
    rx: ".409",
    width: "2.864",
    x: "1.068",
    y: "7.773"
  }), /*#__PURE__*/_react.default.createElement("rect", {
    className: styles["fill"] || "fill",
    height: "2.863",
    rx: ".409",
    transform: "rotate(-45 3.75 3.778)",
    width: "1.227",
    x: "3.136",
    y: "2.345"
  }), /*#__PURE__*/_react.default.createElement("rect", {
    className: styles["fill"] || "fill",
    height: "1.227",
    rx: ".409",
    transform: "rotate(-45 14.75 3.777)",
    width: "2.863",
    x: "13.318",
    y: "3.163"
  }));
};

exports.default = _default;

/***/ }),

/***/ "KRrC":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("path", {
  d: "M24 16v17a1 1 0 0 1-1 1H13a1 1 0 0 1-1-1V16H5.007a.5.5 0 0 1-.354-.854L18 1.8l13.346 13.346a.5.5 0 0 1-.354.854z"
}));

/***/ }),

/***/ "KTUt":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var iaw_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("VZGw");
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/

const os = window.require('os');
class JsUtil {
    /**
     * Generate a rfc4122 version 4 compliant GUID.
     * @see http://stackoverflow.com/questions/105034/create-guid-uuid-in-javascript
     *
     * @return {String} containing the GUID
     */
    generateGUID() {
        return 'xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx'
            .replace(/[xy]/g, c => {
            // 'x|0' is a shortcut for 'Math.floor(x)'
            const r = (Math.random() * 16) | 0;
            const v = c === 'x' ? r : (r & 0x3) | 0x8;
            return v.toString(16);
        })
            .toUpperCase();
    }
    memoize(func) {
        const cache = {};
        return (...args) => {
            const key = args[0];
            const value = cache[key] ? cache[key] : func(...args);
            if (!cache[key]) {
                cache[key] = value;
            }
            return value;
        };
    }
    /**
     * Convert the file size into a formatted string.
     *
     * @param isize			{Number} integer value of file size
     * @return {String} formatted with the size MB/GB/KB etc. specifier
     */
    createFileSizeString(isize) {
        if (isNaN(isize)) {
            return '--';
        }
        let val = '';
        if (isize >= 1099511627776) {
            // TB
            val = (isize / 1099511627776).toFixed(1).toString() + iaw_i18n__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].getLocalizedString('filesize_key_TB');
        }
        else if (isize >= 1073741824) {
            // GB
            val = (isize / 1073741824).toFixed(1).toString() + iaw_i18n__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].getLocalizedString('filesize_key_GB');
        }
        else if (isize >= 1048576) {
            // MB
            val = (isize / 1048576).toFixed(1).toString() + iaw_i18n__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].getLocalizedString('filesize_key_MB');
        }
        else if (isize >= 1024) {
            // KB
            val = (isize / 1024).toFixed(1).toString() + iaw_i18n__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].getLocalizedString('filesize_key_KB');
        }
        else if (isize > 0) {
            // Bytes
            val = isize.toString() + iaw_i18n__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].getLocalizedString('filesize_key_B');
        }
        else {
            val = '--';
        }
        return val.replace('.', iaw_i18n__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].getLocalizedString('filesize_key_decimal'));
    }
    /**
     * To be more stringent in adhering to RFC 3986 (which reserves !, ', (, ), and *),
     * even though these characters have no formalized URI delimiting uses.
     *
     * @param str			{String} to encode
     * @return {String} encoded for URI
     * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent
     */
    fixedEncodeURIComponent(str) {
        const encoded = str && str.length
            ? encodeURIComponent(str).replace(/[!'()*]/g, c => {
                return '%' + c.charCodeAt(0).toString(16);
            })
            : str;
        return encoded;
    }
    /**
     * Capitalize the first letter of a string
     *
     * @param str 			{String} to capitalize
     * @return {String} with the beginning letter capitalized.
     */
    capitalize(str) {
        return str ? str.charAt(0).toUpperCase() + str.slice(1) : null;
    }
    getResponseArrayBuffer(url, authorizationParams) {
        return new Promise((resolve, reject) => {
            const xhr = new XMLHttpRequest();
            xhr.open('get', url);
            if (authorizationParams) {
                const { clientId, getAccessToken } = authorizationParams;
                xhr.setRequestHeader('x-api-key', clientId);
                xhr.setRequestHeader('Authorization', `Bearer ${getAccessToken()}`);
            }
            xhr.responseType = 'arraybuffer';
            xhr.onreadystatechange = function () {
                if (xhr.readyState === 4 && xhr.status !== 200) {
                    reject(xhr.statusText);
                }
            };
            xhr.onloadend = () => {
                resolve(xhr.response);
            };
            xhr.send();
        });
    }
    /**
     * Gets the ims device id to uniquely identify the device. We do not
     * have a device ID with NGL and can decide to generate our own string.
     * This function is using the first non-zero mac address of the machine.
     */
    getDeviceId() {
        return os.networkInterfaces
            ? Object.values(os.networkInterfaces())
                .map((x) => x.mac)
                .find(x => x != '00:00:00:00:00:00')
            : '';
    }
}
const jsUtil = new JsUtil();
/* harmony default export */ __webpack_exports__["a"] = (jsUtil);


/***/ }),

/***/ "KUxP":
/***/ (function(module, exports) {

module.exports = function (exec) {
  try {
    return !!exec();
  } catch (e) {
    return true;
  }
};

/***/ }),

/***/ "KXRi":
/***/ (function(module) {

module.exports = JSON.parse("{\"(required)\":\"(required)\",\"(optional)\":\"(optional)\"}");

/***/ }),

/***/ "KYEX":
/***/ (function(module) {

module.exports = JSON.parse("{\"steps\":\"{currentStep} di {totalSteps}\"}");

/***/ }),

/***/ "Ke8n":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _convertUnsafeMethod = _interopRequireDefault(__webpack_require__("8nyd"));

var _createId = _interopRequireDefault(__webpack_require__("b7KY"));

var _filterDOMProps = _interopRequireDefault(__webpack_require__("Cv/Q"));

var _propTypes = _interopRequireDefault(__webpack_require__("17x9"));

var _react = _interopRequireWildcard(__webpack_require__("q1tI"));

const _excluded = ["size", "showPercent", "variant", "labelPosition", "isIndeterminate", "label", "className", "id", "min", "max", "valueLabel"];

var _class, _class2, _temp;

function _getRequireWildcardCache(nodeInterop) {
  if (typeof WeakMap !== "function") return null;
  var cacheBabelInterop = new WeakMap();
  var cacheNodeInterop = new WeakMap();
  return (_getRequireWildcardCache = function (nodeInterop) {
    return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
  })(nodeInterop);
}

function _interopRequireWildcard(obj, nodeInterop) {
  if (!nodeInterop && obj && obj.__esModule) {
    return obj;
  }

  if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
    return {
      default: obj
    };
  }

  var cache = _getRequireWildcardCache(nodeInterop);

  if (cache && cache.has(obj)) {
    return cache.get(obj);
  }

  var newObj = {};
  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;

  for (var key in obj) {
    if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
      var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;

      if (desc && (desc.get || desc.set)) {
        Object.defineProperty(newObj, key, desc);
      } else {
        newObj[key] = obj[key];
      }
    }
  }

  newObj.default = obj;

  if (cache) {
    cache.set(obj, newObj);
  }

  return newObj;
}

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

if (false) {} else if (false) {} else {
  __webpack_require__("aLrj");
}

if (true) __webpack_require__("vXvL");
if (true) __webpack_require__("ifr8");
if (true) __webpack_require__("VyWb");
if (true) __webpack_require__("rLLE");
const SIZES = {
  S: 'small',
  M: 'medium'
};

let UxpProgress = (0, _convertUnsafeMethod.default)(_class = (_temp = _class2 = class UxpProgress extends _react.Component {
  constructor(props) {
    super(props);

    this.initProperties = () => {
      this.trackRef = /*#__PURE__*/(0, _react.createRef)();
      this.fillRef = /*#__PURE__*/(0, _react.createRef)();
      this.fillElement = null;
      this.trackWidth = null;
      this.fillWidth = null;
      this.newPosition = null;
      this.animId = null;
      this.progress = null;
      this.timeElapsed = null;
      this.startTime = null;
    };

    this.removeAnimation = () => {
      if (this.animId) {
        this.fillElement = this.fillRef.current;
        cancelAnimationFrame(this.animId);
        this.fillElement.style.transform = 'none';
        this.animId = null;
      }
    };

    this.animate = () => {
      this.animId = requestAnimationFrame(this.rAFCallback);
    };

    this.rAFCallback = timestamp => {
      if (this.props.isIndeterminate) {
        this.fillElement = this.fillRef.current;
        this.trackWidth = this.trackRef.current.clientWidth;
        this.fillWidth = this.fillElement.clientWidth;
        this.startTime = this.startTime || timestamp;
        this.timeElapsed = timestamp - this.startTime;
        this.progress = this.timeElapsed / 1000; // ms to s

        this.newPosition = this.progress * 120; // 120 fps
        // reset position and startTime to repeat the movement

        if (this.newPosition >= this.trackWidth + this.fillWidth) {
          this.newPosition = 0;
          this.startTime = null;
        }

        this.fillElement.style.transform = 'translateX(' + this.newPosition + 'px)';
        this.animId = requestAnimationFrame(this.rAFCallback);
      }
    };

    this.initProperties();
  }

  componentDidMount() {
    // call loop animation if indeterminate is true
    if (this.props.isIndeterminate) {
      this.animate();
    }
  }

  componentDidUpdate() {
    // cancelAnimationFrame and remove transform if props change & indeterminate is not true 
    if (!this.props.isIndeterminate) {
      this.removeAnimation();
    } // if props change and indeterminate is true


    if (this.props.isIndeterminate && !this.animId) {
      this.animate();
    }
  }

  componentWillUnmount() {
    // clear animation and related properties on unmount
    this.removeAnimation();
  }

  render() {
    const _this$props = this.props,
          {
      size = 'M',
      // 'S', 'M'
      showPercent = false,
      // Whether the label should be shown or not
      variant,
      // Either undef or 'overBackground', 'positive', 'warning', 'critical'
      labelPosition = 'left',
      // 'left', 'top', 'bottom'
      isIndeterminate = false,
      label,
      className,
      id = (0, _createId.default)(),
      min = 0,
      max = 100,
      valueLabel
    } = _this$props,
          otherProps = _objectWithoutProperties(_this$props, _excluded);

    let {
      value = 0
    } = this.props; // number between 0 - 100

    let fillProps = {};
    let ariaValueProps = {};
    const sizeClassPart = SIZES[size];
    value = Math.min(Math.max(+value, min), max);
    let percentage = 100 * value / (max - min);
    let labelId;
    let ariaLabelledby = [];

    if (otherProps['aria-labelledby']) {
      ariaLabelledby.push(otherProps['aria-labelledby']);
      delete otherProps['aria-labelledby'];
    }

    if (label) {
      labelId = (0, _createId.default)() + '-label';
      ariaLabelledby.push(labelId);
    }

    if (otherProps['aria-label']) {
      ariaLabelledby.length > 0 && ariaLabelledby.push(id);
    }

    ariaLabelledby = ariaLabelledby.length ? ariaLabelledby.join(' ') : null; // only add width to bar fill if determinate

    if (!isIndeterminate) {
      fillProps = {
        style: {
          width: `${percentage}%`
        }
      };
      ariaValueProps = {
        'aria-valuemin': min,
        'aria-valuemax': max,
        'aria-valuenow': value,
        'aria-valuetext': valueLabel ? valueLabel : `${Math.round(percentage * 10) / 10}%`
      };
    }

    return /*#__PURE__*/_react.default.createElement("div", _extends({
      className: (0, _classnames.default)('spectrum-BarLoader', `spectrum-BarLoader--${sizeClassPart}`, {
        'spectrum-BarLoader--indeterminate': isIndeterminate,
        'spectrum-BarLoader--sideLabel': labelPosition === 'left',
        'spectrum-BarLoader--overBackground': variant === 'overBackground',
        'is-positive': variant === 'positive',
        'is-warning': variant === 'warning',
        'is-critical': variant === 'critical'
      }, className),
      role: "progressbar"
    }, ariaValueProps, {
      "aria-labelledby": ariaLabelledby,
      id: id
    }, (0, _filterDOMProps.default)(otherProps)), label && /*#__PURE__*/_react.default.createElement("div", {
      className: "spectrum-BarLoader-label",
      id: labelId
    }, label), (showPercent || valueLabel) && /*#__PURE__*/_react.default.createElement("div", {
      className: "spectrum-BarLoader-percentage"
    }, valueLabel ? valueLabel : `${Math.round(percentage)}%`), /*#__PURE__*/_react.default.createElement("div", {
      ref: this.trackRef,
      className: "spectrum-BarLoader-track"
    }, /*#__PURE__*/_react.default.createElement("div", _extends({
      ref: this.fillRef,
      className: "spectrum-BarLoader-fill"
    }, fillProps))));
  }

}, _class2.propTypes = {
  /**
   * Value between the min and max that specifies the progression of the progress bar.
   * Calculated percentage is automatically clamped to 0-100.
   */
  value: _propTypes.default.number,

  /**
   * Minimum value for the progress bar. Defaults to 0.
   */
  min: _propTypes.default.number,

  /**
   * Maximum value for the progress bar. Defaults to 100.
   */
  max: _propTypes.default.number,

  /**
   * Size of the Progress component. Limited to small (S) or medium (M).
   */
  size: _propTypes.default.oneOf(['S', 'M']),

  /**
   * Whether to show a percentage for the progress bar's current value
   */
  showPercent: _propTypes.default.bool,

  /**
   * This is for custom value labels. Useful for more decimal places or currency, etc. It will display in place of the percent from 'showPercent'
   */
  valueLabel: _propTypes.default.string,

  /**
   * Boolean to determine if the Progress component should endlessly scroll (indeterminate)
   */
  isIndeterminate: _propTypes.default.bool,

  /**
   * What type of progress bar to show: 'positive' (green), 'warning' (orange), 'critical' (red)
   */
  variant: _propTypes.default.oneOf(['positive', 'warning', 'critical', 'overBackground']),

  /**
   * Determines the positioning of the provided label.
   * Limited to 'left', 'top', or 'bottom'
   */
  labelPosition: _propTypes.default.oneOf(['left', 'top', 'bottom']),

  /**
   * Determines the label for the Progress component.
   */
  label: _propTypes.default.string
}, _temp)) || _class;

exports.default = UxpProgress;

/***/ }),

/***/ "KfNM":
/***/ (function(module, exports) {

/** Used for built-in method references. */
var objectProto = Object.prototype;
/**
 * Used to resolve the
 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
 * of values.
 */

var nativeObjectToString = objectProto.toString;
/**
 * Converts `value` to a string using `Object.prototype.toString`.
 *
 * @private
 * @param {*} value The value to convert.
 * @returns {string} Returns the converted string.
 */

function objectToString(value) {
  return nativeObjectToString.call(value);
}

module.exports = objectToString;

/***/ }),

/***/ "Kimv":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var _UxpOptions = _interopRequireDefault(__webpack_require__("zvwv"));

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}
/*************************************************************************
* ADOBE CONFIDENTIAL
* ___________________
*
* Copyright 2019 Adobe
* All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains
* the property of Adobe and its suppliers, if any. The intellectual
* and technical concepts contained herein are proprietary to Adobe
* and its suppliers and are protected by all applicable intellectual
* property laws, including trade secret and copyright laws.
* Dissemination of this information or reproduction of this material
* is strictly forbidden unless prior written permission is obtained
* from Adobe.
**************************************************************************/


module.exports = _UxpOptions.default.select('PortalContainer', () => __webpack_require__("gwPG"), () => __webpack_require__("buEm"));

/***/ }),

/***/ "Kjq3":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _react_react_spectrum_Icon_Rename__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Xr7M");
/* harmony import */ var _react_react_spectrum_Icon_Rename__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Icon_Rename__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _packages_CDOView_utils_action__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("duTG");
/* harmony import */ var _utils_validate_asset_name__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("227d");
/* harmony import */ var _utils_getDisplayName__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("500B");
/* harmony import */ var _utils_JobMonitor__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("zTWf");
/* harmony import */ var _components_ToastManager__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("oSyz");
/* harmony import */ var _beforeOp__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("Ku5u");
/* harmony import */ var _hosts_Host__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("Dy/p");
/* harmony import */ var _afterOp__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__("AFlv");
/* harmony import */ var _utils_SpacesError__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__("R5sx");
/* harmony import */ var _utils_FileDeletedWarningDialog__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__("xiyt");
/* harmony import */ var _utils_constants__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__("YVc3");
/* harmony import */ var _utils_SentryUtils__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__("mk41");















const renameAction = (app, isVisible, onActiveRenameChange) => {
    const { projectsClient: { jobMonitor, toastManager }, } = app;
    /**
     * Handle the rename request.
     *
     * @param {IAssetModel} element - The selected element object.
     * @param {string} displayName - This is the user entered name, it'll not have the file extension.
     * @returns {Promise<{ oldPath: string, newPath: string }>} - The old path and the new path with the user entered name. Both paths will include the file extension.
     */
    const handleRename = async (element, displayName) => {
        element.renameInProgress();
        const newNameWithExtension = !element.isFolder && element.fileExtension
            ? `${displayName}.${element.fileExtension}`
            : displayName;
        await element.rename(newNameWithExtension);
    };
    const makeRenameJob = async (element, displayName, onFailed) => {
        // this is different than `oldPathName` as path is encoded and can contain file extension
        const [oldName, _] = Object(_utils_getDisplayName__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"])(element.name, element.type);
        const promise = handleRename(element, displayName).catch(error => {
            if (Object(_utils_SpacesError__WEBPACK_IMPORTED_MODULE_10__[/* normalizeSamError */ "j"])(error) === _utils_constants__WEBPACK_IMPORTED_MODULE_12__[/* SAMErrorCode */ "B"].ACCESS_DENIED ||
                Object(_utils_SpacesError__WEBPACK_IMPORTED_MODULE_10__[/* normalizeSamError */ "j"])(error) === _utils_constants__WEBPACK_IMPORTED_MODULE_12__[/* SAMErrorCode */ "B"].NOT_FOUND) {
                app.projectsClient.showModal(react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_utils_FileDeletedWarningDialog__WEBPACK_IMPORTED_MODULE_11__[/* default */ "a"], { app: app, op: 'rename' }));
            }
            throw error;
        });
        const job = new _utils_JobMonitor__WEBPACK_IMPORTED_MODULE_5__[/* Job */ "a"](promise);
        const queue = new _utils_JobMonitor__WEBPACK_IMPORTED_MODULE_5__[/* JobQueue */ "c"]({
            completed: () => {
                element.renameEnd();
                // Notify the host so it can react after the operation completes successfully.
                Object(_afterOp__WEBPACK_IMPORTED_MODULE_9__[/* default */ "a"])(element.docUriForHost, _hosts_Host__WEBPACK_IMPORTED_MODULE_8__[/* default */ "a"].onAfterRename);
                return {
                    message: app.intl.formatMessage({ id: 'rename.success' }, { count: 1 }),
                    options: {
                        actionLabel: app.intl.formatMessage({ id: 'button.undo' }),
                        closable: true,
                        onAction: () => {
                            onFailed();
                            makeRenameJob(element, oldName, onFailed);
                        },
                        variant: 'success',
                    },
                };
            },
            error: (allItems, errors) => {
                const [error] = errors;
                element.renameEnd();
                const message = Object(_utils_SpacesError__WEBPACK_IMPORTED_MODULE_10__[/* normalizeSamError */ "j"])(error) === 'CONFLICT'
                    ? 'rename.failure.conflict'
                    : 'rename.failure';
                _utils_SentryUtils__WEBPACK_IMPORTED_MODULE_13__[/* sentryUtils */ "a"].captureException(error, {
                    tags: {
                        'action.error': 'rename',
                    },
                });
                onFailed();
                return {
                    message: app.intl.formatMessage({ id: message }),
                    options: {
                        closable: true,
                        variant: 'error',
                    },
                };
            },
            pending: () => {
                return {
                    message: (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_ToastManager__WEBPACK_IMPORTED_MODULE_6__[/* LoadingMessage */ "a"], null, app.intl.formatMessage({ id: 'rename.start' }))),
                    options: {
                        closable: true,
                        timeout: 0,
                        variant: undefined,
                    },
                };
            },
        });
        queue.add(job);
        jobMonitor.add('rename', queue);
    };
    return new _packages_CDOView_utils_action__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"]({
        value: 'rename',
        label: 'button.rename',
        icon: react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_react_react_spectrum_Icon_Rename__WEBPACK_IMPORTED_MODULE_1___default.a, null),
        getDisabledTooltipMsgId: selectionStore => {
            if (selectionStore && (selectionStore === null || selectionStore === void 0 ? void 0 : selectionStore.hasOnlyOne) && (selectionStore === null || selectionStore === void 0 ? void 0 : selectionStore.selectedElements.some(e => e.isAvailableOffline))) {
                return 'button.rename';
            }
            return app.showOfflineWithFeatureFlag ? 'tooltip.offline.general' : 'button.rename';
        },
        execute: async ([element]) => {
            // Let the host filter out items the user has selected before the operation.
            const filteredElements = await Object(_beforeOp__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"])([element], app, _hosts_Host__WEBPACK_IMPORTED_MODULE_8__[/* default */ "a"].onBeforeRename, _hosts_Host__WEBPACK_IMPORTED_MODULE_8__[/* default */ "a"].getOpenCloudDocuments);
            if (!filteredElements.length) {
                return;
            }
            // update active rename state
            onActiveRenameChange(element);
            element.renameStart({
                onConfirm: (displayName, onFailed) => {
                    makeRenameJob(element, displayName, onFailed);
                    onActiveRenameChange(undefined);
                },
                onCancel: () => {
                    element.renameEnd();
                    onActiveRenameChange(undefined);
                },
                nameValidator: displayName => {
                    const maxLength = element.isFolder ? _utils_constants__WEBPACK_IMPORTED_MODULE_12__[/* maxFolderNameLength */ "O"] : _utils_constants__WEBPACK_IMPORTED_MODULE_12__[/* maxNameLength */ "Q"];
                    const nameError = Object(_utils_validate_asset_name__WEBPACK_IMPORTED_MODULE_3__[/* default */ "c"])(displayName, undefined, maxLength);
                    if (nameError) {
                        toastManager.addToast(app.intl.formatMessage({ id: nameError }, {
                            names: displayName,
                            maxLength,
                        }), {
                            closable: true,
                            variant: 'error',
                        });
                        return _utils_validate_asset_name__WEBPACK_IMPORTED_MODULE_3__[/* ValidationStatus */ "b"].invalidName;
                    }
                    return _utils_validate_asset_name__WEBPACK_IMPORTED_MODULE_3__[/* ValidationStatus */ "b"].valid;
                },
            });
        },
        isVisible,
        getIsButtonDisabled: element => { var _a; return !((_a = element === null || element === void 0 ? void 0 : element.isAvailableOffline) !== null && _a !== void 0 ? _a : false) && app.showOfflineWithFeatureFlag; },
    });
};
/* harmony default export */ __webpack_exports__["a"] = (renameAction);


/***/ }),

/***/ "KkQt":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _autobindDecorator = _interopRequireDefault(__webpack_require__("gKdT"));

var _events = __webpack_require__("mdZ3");

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _convertUnsafeMethod = _interopRequireDefault(__webpack_require__("8nyd"));

var _createId = _interopRequireDefault(__webpack_require__("b7KY"));

var _Menu = __webpack_require__("kzNO");

var _Overlay = _interopRequireDefault(__webpack_require__("eS3o"));

var _propTypes = _interopRequireDefault(__webpack_require__("17x9"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

var _reactDom = _interopRequireDefault(__webpack_require__("i8i4"));

var _scrollToDOMNode = _interopRequireDefault(__webpack_require__("crf9"));

__webpack_require__("f1H2");

var _class, _class2, _temp;

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
  try {
    var info = gen[key](arg);
    var value = info.value;
  } catch (error) {
    reject(error);
    return;
  }

  if (info.done) {
    resolve(value);
  } else {
    Promise.resolve(value).then(_next, _throw);
  }
}

function _asyncToGenerator(fn) {
  return function () {
    var self = this,
        args = arguments;
    return new Promise(function (resolve, reject) {
      var gen = fn.apply(self, args);

      function _next(value) {
        asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
      }

      function _throw(err) {
        asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
      }

      _next(undefined);
    });
  };
}

const getLabel = o => typeof o === 'string' ? o : o.label;

const LISTBOX = '-listbox';
const OPTION = '-option-';

let Autocomplete = (0, _convertUnsafeMethod.default)(_class = (0, _autobindDecorator.default)(_class = (_temp = _class2 = class Autocomplete extends _react.default.Component {
  constructor(props) {
    super(props);
    this.state = {
      value: '',
      showMenu: false,
      results: [],
      selectedIndex: -1,
      isFocused: false
    };
    this.autocompleteId = (0, _createId.default)();
  }

  UNSAFE_componentWillMount() {
    this.UNSAFE_componentWillReceiveProps(this.props);
  }

  UNSAFE_componentWillReceiveProps(props) {
    if (props.value != null && props.value !== this.state.value) {
      this.setValue(props.value, this._selectedValue !== props.value);
      this._selectedValue = null;
    }

    if (props.showMenu != null && props.showMenu !== this.state.showMenu) {
      this.setState({
        showMenu: props.showMenu
      });
    } // Reset selectedIndex to -1 if menu is not shown to prevent invalid selection


    if (!props.showMenu) {
      this.setState({
        selectedIndex: -1
      });
    }
  }

  componentDidMount() {
    this.updateSize();
  }

  componentDidUpdate() {
    this.updateSize();
  }

  updateSize() {
    if (this.wrapper) {
      let width = this.wrapper.offsetWidth;

      if (width !== this.state.width) {
        this.setState({
          width
        });
      }
    }
  }

  onChange(value) {
    let {
      onChange
    } = this.props;

    if (onChange) {
      onChange(value);
    }

    if (!this.state.showMenu) {
      this.showMenu();
    }

    if (this.props.value == null) {
      this.setValue(value);
    }
  }

  setValue(value, showMenu = true) {
    this.setState({
      value,
      showMenu: this.props.showMenu == null ? this.state.isFocused && showMenu : this.props.showMenu,
      selectedIndex: this.props.allowCreate && this.state.selectedIndex === -1 ? -1 : 0
    });
    this.getCompletions(value);
  }

  getCompletions(value) {
    var _this = this;

    return _asyncToGenerator(function* () {
      _this.optionIdPrefix = _this.optionIdPrefix || _this.autocompleteId + LISTBOX;
      _this._value = value;
      let results = [];
      let {
        getCompletions
      } = _this.props;

      if (getCompletions) {
        results = yield getCompletions(value);
      } // Avoid race condition where two getCompletions calls are made in parallel.


      if (_this._value === value) {
        _this.setState({
          results
        }, () => {
          const list = _reactDom.default.findDOMNode(_this.getListRef());

          if (list) {
            list.scrollTop = 0;
          }
        });

        return results;
      }

      return _this.state.results;
    })();
  }

  onSelect(value, event) {
    this._selectedValue = value;
    this.onChange(getLabel(value));
    this.hideMenu();

    if (this.props.onSelect) {
      this.props.onSelect(value, event);
    }
  }

  onFocus(event) {
    this.setState({
      isFocused: true
    });

    if (this.props.onFocus) {
      this.props.onFocus(event);
    }
  }

  onBlur(event) {
    if (this.props.onBlur) {
      this.props.onBlur(event);
    }

    if (this.wrapper && this.wrapper.contains(event.relatedTarget)) {
      // If the element receiving focus is a child of the Autocomplete,
      // for example the toggle button on a ComboBox,
      // do nothing in order prevent hideMenu from executing twice.
      return;
    }

    let menu = _reactDom.default.findDOMNode(this.menu);

    if (menu && menu.contains(document.activeElement)) {
      // If the element receiving focus is the Popover (dropdown menu), 
      // (i.e. user clicking dropdown scroll bar in IE 11),
      // refocus the input field and return so the menu isn't hidden.
      event.target.focus();
      return;
    }

    this.hideMenu();
    this.setState({
      isFocused: false
    });
  }

  onEscape(event) {
    event.preventDefault();
    this.hideMenu();
  }

  onSelectFocused(event) {
    // Autocomplete should accept space key as text entry
    if (event.key === ' ') {
      return;
    }

    const {
      results = [],
      selectedIndex
    } = this.state;
    let value = results[selectedIndex];

    if (value) {
      event.preventDefault();
      this.onSelect(value, event);
    } else if (this.props.allowCreate) {
      if (event.key !== 'Tab') {
        event.preventDefault();
      }

      this.onSelect(this.state.value, event);
    }
  }

  onFocusFirst(event) {
    event.preventDefault();
    this.selectIndex(0);
  }

  onFocusLast(event) {
    event.preventDefault();
    this.selectIndex(this.state.results.length - 1);
  }

  onFocusPrevious(event) {
    event.preventDefault();
    const {
      results = [],
      selectedIndex
    } = this.state;
    let index = selectedIndex - 1;

    if (index < 0) {
      index = results.length - 1;
    }

    this.selectIndex(index);
  }

  onFocusNext(event) {
    event.preventDefault(); // make sure menu is shown

    if (!this.state.showMenu) {
      this.showMenu();
    }

    const {
      results = [],
      selectedIndex
    } = this.state;
    const index = results.length ? (selectedIndex + 1) % results.length : 0;
    this.selectIndex(index);
  }

  onPageDown(event) {
    event.preventDefault();
    const {
      results = [],
      selectedIndex,
      showMenu
    } = this.state;
    const len = results.length;

    if (!showMenu || !len) {
      return;
    }

    const listNode = _reactDom.default.findDOMNode(this.getListRef());

    const items = [...listNode.children];
    const targetItem = items[selectedIndex === -1 ? 0 : selectedIndex];
    const nextPage = Math.min(targetItem.offsetTop + listNode.clientHeight, listNode.scrollHeight + listNode.clientHeight);
    const index = items.indexOf(targetItem) + 1;
    const item = items.slice(index).find(item => item.offsetTop + item.offsetHeight > nextPage);

    if (item) {
      this.selectIndex(items.indexOf(item), true);
    } else {
      this.onFocusLast(event);
    }
  }

  onPageUp(event) {
    event.preventDefault();
    const {
      results = [],
      selectedIndex,
      showMenu
    } = this.state;
    const len = results.length;

    if (!showMenu || !len) {
      return;
    }

    const listNode = _reactDom.default.findDOMNode(this.getListRef());

    const items = [...listNode.children];
    const targetItem = items[selectedIndex === -1 ? 0 : selectedIndex];
    const nextPage = Math.max(targetItem.offsetTop + targetItem.offsetHeight - listNode.clientHeight, 0);
    const index = items.indexOf(targetItem);
    const item = items.slice(0, index).reverse().find(item => item.offsetTop < nextPage);

    if (item) {
      this.selectIndex(items.indexOf(item));
    } else {
      this.onFocusFirst(event);
    }
  }

  onMouseEnter(index) {
    this.selectIndex(index);
  }

  onAltArrowDown(event) {
    event.preventDefault();

    if (!this.state.showMenu) {
      this.showMenu();
    }
  }

  onAltArrowUp(event) {
    event.preventDefault();

    if (this.state.showMenu) {
      this.hideMenu();
    }
  }

  onTab(event) {
    this.onSelectFocused(event);
  }

  selectIndex(selectedIndex, alignToStart) {
    this.setState({
      selectedIndex
    }, () => {
      if (this.menu && !isNaN(selectedIndex) && selectedIndex !== -1) {
        // make sure that the selected item scrolls into view
        const list = _reactDom.default.findDOMNode(this.getListRef());

        if (list) {
          const node = list.children[selectedIndex];

          if (node) {
            (0, _scrollToDOMNode.default)(node, list, alignToStart);
          }
        }
      }
    });
  }

  toggleMenu() {
    if (this.state.showMenu) {
      this.hideMenu();
    } else {
      this.showMenu();
    }
  }

  showMenu() {
    var _this2 = this;

    return _asyncToGenerator(function* () {
      if (_this2.props.showMenu == null) {
        _this2.setState({
          showMenu: true
        });
      }

      _this2.setState({
        selectedIndex: -1
      });

      let results = (yield _this2.getCompletions(_this2.state.value)) || []; // Reset the selected index based on the value

      let selectedIndex = results.findIndex(result => getLabel(result) === _this2.state.value);

      if (selectedIndex !== -1) {
        _this2.setState({
          selectedIndex
        });
      }

      if (_this2.props.onMenuShow) {
        _this2.props.onMenuShow();
      }

      if (_this2.props.onMenuToggle) {
        _this2.props.onMenuToggle(true);
      }
    })();
  }

  hideMenu() {
    if (this.props.showMenu == null) {
      this.setState({
        showMenu: false
      });
    }

    this.setState({
      selectedIndex: -1
    });

    if (this.props.onMenuHide) {
      this.props.onMenuHide();
    }

    if (this.props.onMenuToggle) {
      this.props.onMenuToggle(false);
    }
  }

  getActiveDescendantId() {
    const {
      selectedIndex,
      showMenu,
      results = []
    } = this.state;
    return showMenu && results.length > 0 && selectedIndex !== -1 ? this.optionIdPrefix + OPTION + selectedIndex : undefined;
  }

  getListboxId() {
    const {
      showMenu,
      results = []
    } = this.state;
    return showMenu && results.length > 0 ? this.autocompleteId + LISTBOX : undefined;
  }

  getListRef() {
    return this.menu && this.menu.getListRef();
  }

  render() {
    let {
      id,
      className,
      renderItem,
      'aria-haspopup': ariaHaspopup = 'listbox'
    } = this.props;
    let {
      isFocused,
      results = [],
      selectedIndex,
      showMenu,
      value
    } = this.state;

    let children = _react.default.Children.toArray(this.props.children);

    let trigger = children.find(c => c.props.autocompleteInput) || children[0];
    let menuShown = showMenu && results.length > 0;
    let inputId = id || trigger.props.id || this.autocompleteId;
    return /*#__PURE__*/_react.default.createElement("div", {
      className: (0, _classnames.default)('react-spectrum-Autocomplete', {
        'is-focused': isFocused
      }, className),
      ref: w => this.wrapper = w,
      role: "combobox",
      "aria-controls": this.getListboxId(),
      "aria-expanded": menuShown,
      "aria-haspopup": ariaHaspopup,
      "aria-owns": this.getListboxId()
    }, children.map(child => {
      if (child === trigger) {
        return /*#__PURE__*/_react.default.cloneElement(child, {
          value: value,
          onChange: (0, _events.chain)(child.props.onChange, this.onChange),
          onKeyDown: (0, _events.chain)(child.props.onKeyDown, _events.interpretKeyboardEvent.bind(this)),
          onFocus: (0, _events.chain)(child.props.onFocus, this.onFocus),
          onBlur: (0, _events.chain)(child.props.onBlur, this.onBlur),
          id: inputId,
          autoComplete: 'off',
          'aria-activedescendant': this.getActiveDescendantId(),
          'aria-autocomplete': 'list',
          'aria-controls': this.getListboxId()
        });
      }

      return /*#__PURE__*/_react.default.cloneElement(child, {
        onFocus: (0, _events.chain)(child.props.onFocus, this.onFocus),
        onBlur: (0, _events.chain)(child.props.onBlur, this.onBlur)
      });
    }), /*#__PURE__*/_react.default.createElement(_Overlay.default, {
      target: this.wrapper,
      show: menuShown,
      placement: "bottom left",
      role: "presentation"
    }, /*#__PURE__*/_react.default.createElement(_Menu.Menu, {
      onSelect: this.onSelect,
      onMouseDown: e => e.preventDefault(),
      style: {
        width: this.state.width + 'px'
      },
      role: "listbox",
      ref: m => this.menu = m,
      id: this.getListboxId(),
      trapFocus: false
    }, results.map((result, i) => {
      let label = getLabel(result);
      return /*#__PURE__*/_react.default.createElement(_Menu.MenuItem, {
        role: "option",
        id: this.optionIdPrefix + OPTION + i,
        tabIndex: selectedIndex === i ? 0 : -1,
        key: `item-${i}`,
        value: result,
        icon: result.icon,
        focused: selectedIndex === i,
        selected: label === value,
        onMouseEnter: this.onMouseEnter.bind(this, i),
        onMouseDown: e => {
          e.preventDefault();
          e.stopPropagation();
        }
      }, renderItem ? renderItem(result) : label);
    }))));
  }

}, _class2.propTypes = {
  /**
   * Allows input that isn't part of the list of options
   */
  allowCreate: _propTypes.default.bool,

  /**
   * Value of the input, this puts the autocomplete in a controlled mode.
   */
  value: _propTypes.default.string,

  /**
   * Callback for when value changes due to selection
   */
  onSelect: _propTypes.default.func,

  /**
   * String for extra class names to add to the top level div
   */
  className: _propTypes.default.string,

  /**
   * String that will override the default id generated by the instance
   */
  id: _propTypes.default.string,

  /**
   * Callback for when the menu opens
   */
  onMenuShow: _propTypes.default.func,

  /**
   * Callback for when the menu closes
   */
  onMenuHide: _propTypes.default.func,

  /**
   * A callback for both show and hide, event is false if hiding, true if showing.
   * Reason for this was to add a controlled state in a backwards compatible way,
   * we couldn't use show/hide props for that, so we needed a new one.
   */
  onMenuToggle: _propTypes.default.func,

  /**
   * Controlled state for showing/hiding menu.
   */
  showMenu: _propTypes.default.bool,

  /**
   * A function that returns a wrapper component to render a list item label.
   * Useful in providing custom html to the rendered label.
   */
  renderItem: _propTypes.default.func,

  /**
   * A function that returns the items to be displayed in the menu.
   * Called when the user types in the textfield.
   */
  getCompletions: _propTypes.default.func.isRequired
}, _class2.defaultProps = {
  allowCreate: false
}, _temp)) || _class) || _class;

exports.default = Autocomplete;

/***/ }),

/***/ "Kko5":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return getLaunchDocInfo; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return canLaunchItems; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return launchItems; });
function getLaunchDocInfo(doc, enableRenditionUrl) {
    return {
        assetRefStr: doc.assetRef,
        cloudUri: doc.cloudUri,
        uri: doc.docUriForHost,
        isBundled: false,
        localID: doc.localID,
        cloudID: doc.cloudID,
        path: doc.path,
        mimetype: doc.type,
        confirmAccess: doc.isShared,
        displayName: doc.repoName || doc.title,
        spaceInfo: JSON.stringify(doc.space),
        ...(enableRenditionUrl ? { renditionUrl: doc.rendition } : {}),
    };
}
function canLaunchItems(documents, canOpenItems) {
    if (canOpenItems) {
        const docInfoArray = documents.map(document => getLaunchDocInfo(document));
        return canOpenItems(docInfoArray);
    }
    return false;
}
async function launchItems(documents, onOpenDocuments) {
    // async lazy fetch of spaces info.
    // eslint-disable-next-line no-restricted-syntax
    for (const el of documents) {
        if (el.isSpaceAsset) {
            await el.getSpaceInfo();
        }
    }
    if (onOpenDocuments) {
        const docInfoArray = documents.map(document => getLaunchDocInfo(document));
        onOpenDocuments(docInfoArray);
    }
}


/***/ }),

/***/ "KoUc":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("path", {
  d: "M17.054 37.145c-3.1 1.116-6.975 2.516-9.652 3.475l3.456-9.653zm16.64-32.727L8.82 29.292a2.231 2.231 0 0 0-.521.814L4.115 41.659a1.654 1.654 0 0 0 2.171 2.186L17.9 39.713a2.23 2.23 0 0 0 .826-.526L43.59 14.274a1.887 1.887 0 0 0 .172-2.653l-7.42-7.382a1.888 1.888 0 0 0-2.648.179z"
}));

/***/ }),

/***/ "Koem":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _OpenTransition = _interopRequireDefault(__webpack_require__("u6xD"));

var _Overlay = _interopRequireDefault(__webpack_require__("eS3o"));

var _ownerDocument = _interopRequireDefault(__webpack_require__("z9HI"));

var _Portal = _interopRequireDefault(__webpack_require__("I/DW"));

var _UxpPosition = _interopRequireDefault(__webpack_require__("r6G0"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

var _RootCloseWrapper = _interopRequireDefault(__webpack_require__("wewx"));

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

class UxpOverlay extends _Overlay.default {
  constructor(...args) {
    var _temp;

    return _temp = super(...args), this.keydown = e => {
      // https://jira.corp.adobe.com/browse/UXP-10984
      // This is a workaround for Ps not sending keyup events to UXP
      // The hide callback in rootclose wrapper on keyup doesn't work because of the above limitation
      // Escape Key
      if (e.keyCode === 27) {
        this.hide(e);
      }
    }, _temp;
  }

  render() {
    let {
      containerPadding,
      target,
      container = this.getOverlayContainer(target),
      placement,
      offset,
      crossOffset,
      flip,
      boundariesElement = () => (0, _ownerDocument.default)(this).body,
      shouldUpdatePosition,
      rootClose,
      children,
      show,
      onExit,
      onExiting,
      onEnter,
      onEntering,
      autoComplete
    } = this.props; // Don't un-render the overlay while it's transitioning out.

    const mountOverlay = show || !this.state.exited;

    if (!mountOverlay) {
      // Don't bother showing anything if we don't have to.
      return null;
    }

    let child = children; // Position is be inner-most because it adds inline styles into the child,
    // which the other wrappers don't forward correctly.

    child = /*#__PURE__*/_react.default.createElement(_UxpPosition.default, {
      container,
      containerPadding,
      target,
      placement,
      shouldUpdatePosition,
      offset,
      crossOffset,
      flip,
      boundariesElement,
      autoComplete: autoComplete
    }, child); // This animates the child node by injecting props, so it must precede
    // anything that adds a wrapping div.

    child = /*#__PURE__*/_react.default.createElement(_OpenTransition.default, {
      in: show,
      appear: true,
      onExit: onExit,
      onExiting: onExiting,
      onExited: this.onExited,
      onEnter: onEnter,
      onEntering: onEntering,
      onEntered: this.onEntered
    }, child); // This goes after everything else because it adds a wrapping div.

    if (rootClose) {
      child = /*#__PURE__*/_react.default.createElement(_RootCloseWrapper.default, {
        onRootClose: this.hide
      }, child);
    } // Fix: Add role here


    child = /*#__PURE__*/_react.default.createElement("div", {
      onKeyDown: this.keydown
    }, child);
    return /*#__PURE__*/_react.default.createElement(_Portal.default, {
      container: container
    }, child);
  }

}

exports.default = UxpOverlay;

/***/ }),

/***/ "Koya":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__("q1tI");
var react_default = /*#__PURE__*/__webpack_require__.n(react);

// EXTERNAL MODULE: ./node_modules/react-intl-cdo/lib/index.es.js + 1 modules
var index_es = __webpack_require__("VIzJ");

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Icon/js/Icon.js
var Icon = __webpack_require__("trqI");
var Icon_default = /*#__PURE__*/__webpack_require__.n(Icon);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/components/TextInputDialog.tsx
var TextInputDialog = __webpack_require__("m9U2");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/components/createWeblinkDialog.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2020 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/



class createWeblinkDialog_CreateWeblinkDialog extends react["Component"] {
    render() {
        const { intl, onConfirm, onClose } = this.props;
        return (react_default.a.createElement(TextInputDialog["a" /* default */], { title: intl.formatMessage({ id: 'dialog.createWeblink.title' }), inputName: intl.formatMessage({ id: 'dialog.createWeblink.name' }), secondaryInputName: intl.formatMessage({ id: 'dialog.createWeblink.link' }), placeholderText: intl.formatMessage({
                id: 'dialog.createWeblink.name.placeholder',
            }), secondaryPlaceholderText: intl.formatMessage({
                id: 'dialog.createWeblink.link.placeholder',
            }), confirmLabelId: intl.formatMessage({ id: 'button.create' }), onConfirm: onConfirm, onClose: onClose }));
    }
}
/* harmony default export */ var createWeblinkDialog = (Object(index_es["g" /* injectIntl */])(createWeblinkDialog_CreateWeblinkDialog));

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/stores/SharedStore.ts + 6 modules
var SharedStore = __webpack_require__("jmEq");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/images/onboarding/S_Illu_AddAWebLink.svg
function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}


/* harmony default export */ var S_Illu_AddAWebLink = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", _extends({
  "data-name": "Layer 1",
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 72 72"
}, props), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["spaces_svg_icon_tint"] || "spaces_svg_icon_tint",
  d: "M18.82 35.12a.76.76 0 0 1-.75-.75V11.06a.75.75 0 0 1 1.5 0v23.31a.76.76 0 0 1-.75.75z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["spaces_svg_icon_tint"] || "spaces_svg_icon_tint",
  d: "M30.9 23H6.74a.75.75 0 0 1 0-1.5H30.9a.75.75 0 0 1 0 1.5z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["spaces_svg_icon_gray"] || "spaces_svg_icon_gray",
  d: "M30.4 61.69a9 9 0 0 1-6.35-15.35l5.3-5.3a.75.75 0 1 1 1.06 1.06l-5.3 5.3A7.48 7.48 0 0 0 35.69 58l11.65-11.66a7.47 7.47 0 0 0 0-10.59.75.75 0 0 1 1.06-1.06 9 9 0 0 1 0 12.71L36.75 59.05a8.9 8.9 0 0 1-6.35 2.64z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["spaces_svg_icon_gray"] || "spaces_svg_icon_gray",
  d: "M39.55 43.26A.74.74 0 0 1 39 43a9 9 0 0 1 0-12.71l11.67-11.61a9 9 0 0 1 12.71 12.71l-5.3 5.31a.77.77 0 0 1-1.07 0 .75.75 0 0 1 0-1.06l5.31-5.31a7.49 7.49 0 0 0-10.59-10.59L40.08 31.39a7.5 7.5 0 0 0 0 10.59.74.74 0 0 1 0 1.06.71.71 0 0 1-.53.22z"
})));
// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/constants.ts
var constants = __webpack_require__("YVc3");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/performance.ts
var performance = __webpack_require__("P5RH");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/ProjectAnalytics.ts
var ProjectAnalytics = __webpack_require__("mm/P");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/stores/User.ts
var User = __webpack_require__("CJr9");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/components/QuotaExceededDialog.tsx
var QuotaExceededDialog = __webpack_require__("juov");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/quotaExceedCheck.ts
var quotaExceedCheck = __webpack_require__("Rf71");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/SpacesError.ts
var SpacesError = __webpack_require__("R5sx");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/urls.ts
var urls = __webpack_require__("/YLX");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/actions/createWeblink.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2020 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/














const createWeblink = (createWeblinkFn, app, onComplete) => ({
    icon: (react_default.a.createElement(Icon_default.a, { size: "M" },
        react_default.a.createElement(S_Illu_AddAWebLink, null))),
    emptyStateIcon: react_default.a.createElement(S_Illu_AddAWebLink, null),
    iconOnly: false,
    id: 'createWeblink',
    name: react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "button.createWeblink" }),
    quiet: true,
    supportsMultiple: false,
    variant: 'action',
    onClick: async () => {
        app.projectsClient.showModal(react_default.a.createElement(createWeblinkDialog, { onConfirm: async (name, link) => {
                var _a, _b, _c, _d;
                let id, author, teamId;
                if (app.currentProject) {
                    id = app.currentProject.id;
                    author = app.currentProject.role;
                    teamId = app.currentProject.teamId;
                }
                let ingestData = {
                    env: {
                        api: {
                            name: ProjectAnalytics["b" /* EnvApiName */].WEB_LINK_ADD.replace(ProjectAnalytics["b" /* EnvApiName */].CONST_FOLDER_URN, (_b = (_a = app.currentFolder) === null || _a === void 0 ? void 0 : _a.id) !== null && _b !== void 0 ? _b : ''),
                        },
                    },
                    content: {
                        id: id,
                        author: author,
                        type: ProjectAnalytics["a" /* ContentType */].WebLink,
                    },
                    event: {
                        subcategory: ProjectAnalytics["c" /* Subcategory */].Resource,
                        subtype: ProjectAnalytics["d" /* Subtype */].add,
                        workflow: ProjectAnalytics["f" /* Workflow */].Spaces,
                        org_guid: (_c = User["a" /* default */].getTeamFromId(teamId)) === null || _c === void 0 ? void 0 : _c.repositoryID,
                        context_guid: null,
                    },
                    custom: {
                        team_id: teamId,
                    },
                };
                let startTime = performance["a" /* default */].now();
                try {
                    const url = Object(urls["i" /* getUrlWithProtocol */])(link);
                    const asciiUrl = Object(urls["f" /* getAsciiUrl */])(url);
                    await createWeblinkFn(app, name, asciiUrl);
                    app.projectsClient.toastManager.addToast(app.intl.formatMessage({ id: 'dialog.createWeblink.success' }));
                    ingestData.event['type'] = ProjectAnalytics["e" /* Type */].success;
                    ingestData.event['value'] = performance["a" /* default */].now() - startTime;
                    ProjectAnalytics["g" /* default */].fireEvent(ingestData);
                    onComplete === null || onComplete === void 0 ? void 0 : onComplete();
                }
                catch (e) {
                    Object(ProjectAnalytics["h" /* fillError */])(ingestData, e);
                    ingestData.event['value'] = performance["a" /* default */].now() - startTime;
                    ProjectAnalytics["g" /* default */].fireEvent(ingestData);
                    const samErr = Object(SpacesError["h" /* maybeSamHttpError */])(e);
                    const isQuotaFull = await Object(quotaExceedCheck["a" /* isQuotaExceededError */])(samErr);
                    if (isQuotaFull) {
                        app.projectsClient.showModal(react_default.a.createElement(QuotaExceededDialog["a" /* default */], { app: app }));
                    }
                    else if (Object(SpacesError["j" /* normalizeSamError */])(e) === constants["B" /* SAMErrorCode */].CONFLICT) {
                        return app.intl.formatMessage({
                            id: 'dialog.createWeblink.nameConflict',
                        });
                    }
                    else if ((samErr === null || samErr === void 0 ? void 0 : samErr.response.status) === 429) {
                        const errorMessageId = 'dialog.createWeblink.tooManyRequests';
                        app.projectsClient.toastManager.addToast(app.intl.formatMessage({ id: errorMessageId }), {
                            closable: true,
                            variant: 'error',
                        });
                        return;
                    }
                    else if (Object(SpacesError["j" /* normalizeSamError */])(e) === constants["B" /* SAMErrorCode */].ACCESS_DENIED ||
                        Object(SpacesError["j" /* normalizeSamError */])(e) === constants["B" /* SAMErrorCode */].NOT_FOUND) {
                        (_d = app.currentProject) === null || _d === void 0 ? void 0 : _d.refreshFolderState(app);
                        return;
                    }
                    else {
                        const errorMessageId = SharedStore["d" /* sharedStore */].isOnline
                            ? 'dialog.createWeblink.error'
                            : 'statusMessage.offline.toast';
                        app.projectsClient.toastManager.addToast(app.intl.formatMessage({ id: errorMessageId }), {
                            closable: true,
                            variant: 'error',
                        });
                    }
                }
            } }));
    },
});
/* harmony default export */ var actions_createWeblink = __webpack_exports__["a"] = (createWeblink);


/***/ }),

/***/ "KqTW":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return SectionHeading; });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("VIzJ");
/* harmony import */ var _react_react_spectrum_Heading__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("8bOP");
/* harmony import */ var _react_react_spectrum_Heading__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Heading__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _react_react_spectrum_Tooltip__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("DUuf");
/* harmony import */ var _react_react_spectrum_Tooltip__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Tooltip__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _CoachMarks__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("Yo2G");
/* harmony import */ var _react_react_spectrum_OverlayTrigger__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("uYrR");
/* harmony import */ var _react_react_spectrum_OverlayTrigger__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_OverlayTrigger__WEBPACK_IMPORTED_MODULE_5__);
/* harmony import */ var _utils_constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("YVc3");
/* harmony import */ var _SectionHeading_css__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("MBkK");
/* harmony import */ var _SectionHeading_css__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_SectionHeading_css__WEBPACK_IMPORTED_MODULE_7__);
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("TSYQ");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_8__);
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2022 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/









function SectionHeading({ labelId, browseSession, disabled = false, tooltipPosition = 'bottom', toolTipMsgId = '', disabledTooltipMsgId = '', showCoachMarks = false, }) {
    const heading = (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_react_react_spectrum_OverlayTrigger__WEBPACK_IMPORTED_MODULE_5___default.a, { disabled: !disabled, placement: tooltipPosition, trigger: ['hover'], delayShow: _utils_constants__WEBPACK_IMPORTED_MODULE_6__[/* DEFAULT_TOOLTIP_DELAY */ "f"] },
        react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_react_react_spectrum_Heading__WEBPACK_IMPORTED_MODULE_2___default.a, { variant: "subtitle1", className: classnames__WEBPACK_IMPORTED_MODULE_8___default()({ [_SectionHeading_css__WEBPACK_IMPORTED_MODULE_7___default.a.sectionHeadingDisabled]: disabled }) },
            react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_1__[/* FormattedMessage */ "c"], { id: labelId })),
        react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_react_react_spectrum_Tooltip__WEBPACK_IMPORTED_MODULE_3___default.a, null,
            react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_1__[/* FormattedMessage */ "c"], { id: disabled ? disabledTooltipMsgId : toolTipMsgId }))));
    if (showCoachMarks) {
        return (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_CoachMarks__WEBPACK_IMPORTED_MODULE_4__[/* SpacesCoachMark */ "b"], { browseSession: browseSession, tourId: "spaces", step: 1 }, heading));
    }
    return heading;
}


/***/ }),

/***/ "Kqiy":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.modalManager = exports.Modal = exports.default = void 0;

var _autobindDecorator = _interopRequireDefault(__webpack_require__("gKdT"));

var _Modal = _interopRequireDefault(__webpack_require__("SWRL"));

var _events = __webpack_require__("mdZ3");

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _closest = _interopRequireDefault(__webpack_require__("U6dR"));

var _filterDOMProps = _interopRequireDefault(__webpack_require__("Cv/Q"));

var _ModalManager = _interopRequireDefault(__webpack_require__("nfoz"));

var _OpenTransition = _interopRequireDefault(__webpack_require__("u6xD"));

var _PortalContainer = _interopRequireDefault(__webpack_require__("Kimv"));

var _react = _interopRequireWildcard(__webpack_require__("q1tI"));

var _reactDom = _interopRequireDefault(__webpack_require__("i8i4"));

var _class;

const _excluded = ["disableEscKey", "role", "onClose", "onHide", "onExited"],
      _excluded2 = ["children", "onHide"],
      _excluded3 = ["open"];

function _getRequireWildcardCache(nodeInterop) {
  if (typeof WeakMap !== "function") return null;
  var cacheBabelInterop = new WeakMap();
  var cacheNodeInterop = new WeakMap();
  return (_getRequireWildcardCache = function (nodeInterop) {
    return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
  })(nodeInterop);
}

function _interopRequireWildcard(obj, nodeInterop) {
  if (!nodeInterop && obj && obj.__esModule) {
    return obj;
  }

  if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
    return {
      default: obj
    };
  }

  var cache = _getRequireWildcardCache(nodeInterop);

  if (cache && cache.has(obj)) {
    return cache.get(obj);
  }

  var newObj = {};
  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;

  for (var key in obj) {
    if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
      var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;

      if (desc && (desc.get || desc.set)) {
        Object.defineProperty(newObj, key, desc);
      } else {
        newObj[key] = obj[key];
      }
    }
  }

  newObj.default = obj;

  if (cache) {
    cache.set(obj, newObj);
  }

  return newObj;
}

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function ownKeys(object, enumerableOnly) {
  var keys = Object.keys(object);

  if (Object.getOwnPropertySymbols) {
    var symbols = Object.getOwnPropertySymbols(object);

    if (enumerableOnly) {
      symbols = symbols.filter(function (sym) {
        return Object.getOwnPropertyDescriptor(object, sym).enumerable;
      });
    }

    keys.push.apply(keys, symbols);
  }

  return keys;
}

function _objectSpread(target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i] != null ? arguments[i] : {};

    if (i % 2) {
      ownKeys(Object(source), true).forEach(function (key) {
        _defineProperty(target, key, source[key]);
      });
    } else if (Object.getOwnPropertyDescriptors) {
      Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
    } else {
      ownKeys(Object(source)).forEach(function (key) {
        Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
      });
    }
  }

  return target;
}

function _defineProperty(obj, key, value) {
  if (key in obj) {
    Object.defineProperty(obj, key, {
      value: value,
      enumerable: true,
      configurable: true,
      writable: true
    });
  } else {
    obj[key] = value;
  }

  return obj;
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

if (false) {} else if (false) {} else {
  __webpack_require__("eUep");
}

if (true) __webpack_require__("dNdm");
if (true) __webpack_require__("Gmla");
if (true) __webpack_require__("VToz");
if (true) __webpack_require__("QlP2");
const MODAL_LIFECYCLE_METHODS = ['onBackdropClick', 'onEnter', 'onEntering', 'onEntered', 'onEscapeKeyDown', 'onExit', 'onExiting', 'onExited', 'onHide', 'onShow'];
const MANAGER_SINGLETON = new _ModalManager.default({
  handleContainerOverflow: false
});
exports.modalManager = MANAGER_SINGLETON;
let MODAL_KEY = 1;

class ModalContainer {
  static show(content, context, container) {
    let key = MODAL_KEY++; // If container is not specified, look for the provider of context

    if (!container && context) {
      container = () => (0, _closest.default)(_reactDom.default.findDOMNode(context), '.react-spectrum-provider');
    } else if (!container) {
      container = () => document.querySelector('.react-spectrum-provider') || document.body;
    }

    let _content$props = content.props,
        {
      disableEscKey,
      role,
      onClose,
      onHide,
      onExited
    } = _content$props,
        modalProps = _objectWithoutProperties(_content$props, _excluded);

    role = role && role.indexOf('dialog') !== -1 ? 'presentation' : 'dialog'; // filter out content.props that are not modal lifecycle methods

    modalProps = MODAL_LIFECYCLE_METHODS.reduce((obj, key) => _objectSpread(_objectSpread({}, obj), {}, {
      [key]: modalProps[key]
    }), {});

    let modal = /*#__PURE__*/_react.default.createElement(Modal, _extends({}, modalProps, {
      container: container,
      key: key,
      keyboard: !disableEscKey,
      role: role,
      onClose: onClose,
      onHide: (0, _events.chain)(this.hide.bind(this, key), onHide, onExited),
      "aria-modal": role === 'dialog' || null
    }), content);

    _PortalContainer.default.add(modal, context);

    return key;
  }

  static hide(key) {
    _PortalContainer.default.remove({
      key
    });
  }

}

exports.default = ModalContainer;

let Modal = (0, _autobindDecorator.default)(_class = class Modal extends _react.default.Component {
  constructor(...args) {
    var _temp;

    return _temp = super(...args), this.state = {
      show: true
    }, _temp;
  }

  onClose() {
    this.setState({
      show: false
    });

    if (this.props.onClose) {
      this.props.onClose();
    }
  }

  onEntering(e) {
    if (this.props.onEntering) {
      this.props.onEntering(e);
    } // Make sure that autoFocus actually moves focus to the Modal.


    if (this.baseModal.lastFocus === document.activeElement) {
      this.baseModal.autoFocus();
    }
  }

  backdropMode() {
    /*
     * backdropClickable (bc)
     *     bc | !bc
     *     ---|------
     *      t |static
     * if fullscreenTakeover, then always false
     */
    const {
      backdropClickable,
      mode
    } = this.props.children.props;
    let backdrop = 'static';

    if (backdropClickable) {
      backdrop = true;
    }

    if (mode === 'fullscreenTakeover') {
      backdrop = false;
    }

    return backdrop;
  }

  render() {
    const backdrop = this.backdropMode();

    const _this$props = this.props,
          {
      children,
      onHide
    } = _this$props,
          modalProps = _objectWithoutProperties(_this$props, _excluded2); // The z-index here should match the one in Overlay


    return /*#__PURE__*/_react.default.createElement(_Modal.default, _extends({}, modalProps, {
      style: {
        zIndex: 100000,
        position: 'relative'
      },
      show: this.state.show,
      ref: baseModal => this.baseModal = baseModal,
      onEntering: this.onEntering,
      onExited: onHide,
      onHide: this.onClose,
      backdrop: backdrop,
      manager: MANAGER_SINGLETON,
      renderBackdrop: props => /*#__PURE__*/_react.default.createElement(Underlay, props),
      transition: _OpenTransition.default,
      backdropTransition: _OpenTransition.default
    }), /*#__PURE__*/(0, _react.cloneElement)(children, {
      onClose: this.onClose
    }));
  }

}) || _class;

exports.Modal = Modal;

class Underlay extends _react.default.Component {
  render() {
    let _this$props2 = this.props,
        {
      open
    } = _this$props2,
        props = _objectWithoutProperties(_this$props2, _excluded3);

    return /*#__PURE__*/_react.default.createElement("div", _extends({}, (0, _filterDOMProps.default)(props), {
      className: (0, _classnames.default)('spectrum-Underlay', {
        'is-open': open
      })
    }));
  }

}

/***/ }),

/***/ "KrGB":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ensureFocusOnItems; });
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
/**
 * Utility that searched for all items that match the CSS selector and then
 * checks if any of the found items have a tabindex of 0, if not then this utility
 * will set tabindex 0 on the first item found in the array of all the items.
 * @param focusClassSelector CSS Class selector for items that you want to check.
 * @param searchNode The base element containing all the items you are searching for.
 */
function ensureFocusOnItems(focusClassSelector, searchNode) {
    // Grab all focusable grid items.
    const items = [...searchNode.querySelectorAll(`.${focusClassSelector}`)];
    const hasTabbableElement = items.length && items.some(el => el.getAttribute('tabindex') === '0');
    if (!hasTabbableElement && items.length) {
        items[0].setAttribute('tabindex', '0');
    }
}


/***/ }),

/***/ "Ku4m":
/***/ (function(module, exports, __webpack_require__) {

var asn1 = __webpack_require__("QRH4");

var aesid = __webpack_require__("1w4i");

var fixProc = __webpack_require__("TdD3");

var ciphers = __webpack_require__("/ab2");

var compat = __webpack_require__("oJl4");

var Buffer = __webpack_require__("hwdV").Buffer;

module.exports = parseKeys;

function parseKeys(buffer) {
  var password;

  if (typeof buffer === 'object' && !Buffer.isBuffer(buffer)) {
    password = buffer.passphrase;
    buffer = buffer.key;
  }

  if (typeof buffer === 'string') {
    buffer = Buffer.from(buffer);
  }

  var stripped = fixProc(buffer, password);
  var type = stripped.tag;
  var data = stripped.data;
  var subtype, ndata;

  switch (type) {
    case 'CERTIFICATE':
      ndata = asn1.certificate.decode(data, 'der').tbsCertificate.subjectPublicKeyInfo;
    // falls through

    case 'PUBLIC KEY':
      if (!ndata) {
        ndata = asn1.PublicKey.decode(data, 'der');
      }

      subtype = ndata.algorithm.algorithm.join('.');

      switch (subtype) {
        case '1.2.840.113549.1.1.1':
          return asn1.RSAPublicKey.decode(ndata.subjectPublicKey.data, 'der');

        case '1.2.840.10045.2.1':
          ndata.subjectPrivateKey = ndata.subjectPublicKey;
          return {
            type: 'ec',
            data: ndata
          };

        case '1.2.840.10040.4.1':
          ndata.algorithm.params.pub_key = asn1.DSAparam.decode(ndata.subjectPublicKey.data, 'der');
          return {
            type: 'dsa',
            data: ndata.algorithm.params
          };

        default:
          throw new Error('unknown key id ' + subtype);
      }

    // throw new Error('unknown key type ' + type)

    case 'ENCRYPTED PRIVATE KEY':
      data = asn1.EncryptedPrivateKey.decode(data, 'der');
      data = decrypt(data, password);
    // falls through

    case 'PRIVATE KEY':
      ndata = asn1.PrivateKey.decode(data, 'der');
      subtype = ndata.algorithm.algorithm.join('.');

      switch (subtype) {
        case '1.2.840.113549.1.1.1':
          return asn1.RSAPrivateKey.decode(ndata.subjectPrivateKey, 'der');

        case '1.2.840.10045.2.1':
          return {
            curve: ndata.algorithm.curve,
            privateKey: asn1.ECPrivateKey.decode(ndata.subjectPrivateKey, 'der').privateKey
          };

        case '1.2.840.10040.4.1':
          ndata.algorithm.params.priv_key = asn1.DSAparam.decode(ndata.subjectPrivateKey, 'der');
          return {
            type: 'dsa',
            params: ndata.algorithm.params
          };

        default:
          throw new Error('unknown key id ' + subtype);
      }

    // throw new Error('unknown key type ' + type)

    case 'RSA PUBLIC KEY':
      return asn1.RSAPublicKey.decode(data, 'der');

    case 'RSA PRIVATE KEY':
      return asn1.RSAPrivateKey.decode(data, 'der');

    case 'DSA PRIVATE KEY':
      return {
        type: 'dsa',
        params: asn1.DSAPrivateKey.decode(data, 'der')
      };

    case 'EC PRIVATE KEY':
      data = asn1.ECPrivateKey.decode(data, 'der');
      return {
        curve: data.parameters.value,
        privateKey: data.privateKey
      };

    default:
      throw new Error('unknown key type ' + type);
  }
}

parseKeys.signature = asn1.signature;

function decrypt(data, password) {
  var salt = data.algorithm.decrypt.kde.kdeparams.salt;
  var iters = parseInt(data.algorithm.decrypt.kde.kdeparams.iters.toString(), 10);
  var algo = aesid[data.algorithm.decrypt.cipher.algo.join('.')];
  var iv = data.algorithm.decrypt.cipher.iv;
  var cipherText = data.subjectPrivateKey;
  var keylen = parseInt(algo.split('-')[1], 10) / 8;
  var key = compat.pbkdf2Sync(password, salt, iters, keylen, 'sha1');
  var cipher = ciphers.createDecipheriv(algo, key, iv);
  var out = [];
  out.push(cipher.update(cipherText));
  out.push(cipher.final());
  return Buffer.concat(out);
}

/***/ }),

/***/ "Ku5u":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/interfaces/ICallbacks.ts
var OperationResponseEnum;
(function (OperationResponseEnum) {
    /**
     * Can proceed with the operation
     */
    OperationResponseEnum["ok"] = "ok";
    /**
     * Will silently skip the operation for this asset, perhaps because the host application
     * performs the operation instead
     */
    OperationResponseEnum["cancel"] = "cancel";
    /**
     * Will skip the operation for this asset, and notify the user that it could not be performed
     * because the asset is open in the host application.
     */
    OperationResponseEnum["cancelOpen"] = "cancel-open";
})(OperationResponseEnum || (OperationResponseEnum = {}));

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/constants.ts
var constants = __webpack_require__("YVc3");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/stores/Settings.ts
var Settings = __webpack_require__("5u1M");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/utils/normalize-path.ts
function normalizePath(path) {
    // remove leading and trailing slash, if any
    const trimmed = path
        .split('/')
        .filter(s => s)
        .join('/');
    return trimmed || '';
}
/* harmony default export */ var normalize_path = (normalizePath);

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/actions/beforeOp.ts




/**
 * @param  {IAssetModel[]} elements - Array of selected elements. Can be spaces or folders / documents in a space.
 * @param  {App} app - The app store - To access the `addToast` method.
 * @param  {IOnBeforeOperation} beforeOpCallback? - Some hosts provide a `before*` callback to check if it is safe
 * to procceed on the elements (e.g. can't delete if the documents are being opened in-app)
 * @param  {IGetOpenCloudDocuments} getOpenCloudDocuments? - Some hosts provide this callback so we can cross
 * check the path if a selected element is folder and documents in it are being opened in-app
 */
/* harmony default export */ var beforeOp = __webpack_exports__["a"] = (async (elements, app, beforeOpCallback, getOpenCloudDocuments) => {
    const { cancel, cancelOpen, ok } = OperationResponseEnum;
    // All `before*` callbacks are optional
    if (!beforeOpCallback) {
        return elements;
    }
    try {
        const pathFromID = id => {
            const path = JSON.parse(id).path;
            return normalize_path(path);
        };
        const deleteElement = (key, openDocsInSelectedFolders, elementMap) => {
            if (getOpenCloudDocuments) {
                const folder = openDocsInSelectedFolders.get(key);
                if (folder) {
                    elementMap.delete(folder.docUriForHost);
                }
            }
            elementMap.delete(key);
        };
        let openDocsInSelectedFolders = new Map();
        if (getOpenCloudDocuments) {
            // if getOpenCloudDocuments was passed in, we need to include open
            // documents that are descendants of selected folders in beforeOpCallback()
            const openDocs = await getOpenCloudDocuments();
            // Can't use IAssetModel's ele.isProject because if action is on space in Space 1up,
            // elements are of type Project, not IAssetModel.
            const folders = elements.filter(ele => ele.isFolder || ele.type === constants["v" /* PROJECT_MIMETYPE */]);
            if (folders.length) {
                openDocsInSelectedFolders = new Map(openDocs.map((docID) => [
                    docID,
                    folders.find(folder => pathFromID(docID).startsWith(`${normalize_path(`${folder.path}`)}/`)),
                ]));
            }
        }
        // Store elements in a map by their docUriForHost for efficient look-up
        const elementMap = new Map(elements
            .map(ele => [ele.docUriForHost, ele])
            .concat([...openDocsInSelectedFolders].filter(x => x[1])));
        // Allow host app to filter out items for this operation. Each URI is marked with a CDOOperationResponseEnum
        const results = await beforeOpCallback([...elementMap.keys()]);
        // Delete the entries from elementMap that are marked as 'cancel' or 'cancel-open'
        let cancelOpenCount = 0;
        Object.entries(results).forEach(([key, value]) => {
            switch (value) {
                case cancel:
                    deleteElement(key, openDocsInSelectedFolders, elementMap);
                    break;
                case cancelOpen:
                    deleteElement(key, openDocsInSelectedFolders, elementMap);
                    cancelOpenCount++;
                    break;
                case ok:
                    // Do nothing and let the document pass.
                    break;
                default:
                    // Unrecognized operation
                    Settings["b" /* settings */].logger.error(`[beforeOp] Unrecognized document operation response ${value}`);
                    break;
            }
        });
        // Show toast when the document is open
        // in the host application.
        if (cancelOpenCount > 0) {
            app.projectsClient.toastManager.addToast(app.intl.formatMessage({ id: 'toast.beforeOp.error.documentIsOpen' }, { count: cancelOpenCount }), {
                closable: true,
                variant: 'info',
            });
        }
        // Return the remaining elements
        return [...elementMap.values()];
    }
    catch (e) {
        return elements;
    }
});


/***/ }),

/***/ "Kz5y":
/***/ (function(module, exports, __webpack_require__) {

var freeGlobal = __webpack_require__("WFqU");
/** Detect free variable `self`. */


var freeSelf = typeof self == 'object' && self && self.Object === Object && self;
/** Used as a reference to the global object. */

var root = freeGlobal || freeSelf || Function('return this')();
module.exports = root;

/***/ }),

/***/ "L+OI":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var _UxpOptions = _interopRequireDefault(__webpack_require__("zvwv"));

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}
/*************************************************************************
* ADOBE CONFIDENTIAL
* ___________________
*
* Copyright 2019 Adobe
* All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains
* the property of Adobe and its suppliers, if any. The intellectual
* and technical concepts contained herein are proprietary to Adobe
* and its suppliers and are protected by all applicable intellectual
* property laws, including trade secret and copyright laws.
* Dissemination of this information or reproduction of this material
* is strictly forbidden unless prior written permission is obtained
* from Adobe.
**************************************************************************/


module.exports = _UxpOptions.default.select('Checkbox', () => __webpack_require__("WZg1"), () => __webpack_require__("th6M"), () => __webpack_require__("IP/H"));

/***/ }),

/***/ "L4OO":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _Autocomplete = _interopRequireDefault(__webpack_require__("KkQt"));

var _events = __webpack_require__("mdZ3");

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _Menu = __webpack_require__("kzNO");

var _UxpOverlay = _interopRequireDefault(__webpack_require__("Koem"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

const getLabel = o => typeof o === 'string' ? o : o.label;

const OPTION = '-option-';

class UxpAutocomplete extends _Autocomplete.default {
  selectItem() {
    if (this.state.selectedIndex !== -1) {
      this.onChange(this.state.results[this.state.selectedIndex]);
    }
  }

  onEscape(event) {
    event.preventDefault();
    const {
      showMenu
    } = this.state;

    if (showMenu) {
      event.stopPropagation();
      this.hideMenu();
    }
  }

  render() {
    let {
      id,
      className,
      renderItem,
      'aria-haspopup': ariaHaspopup = 'listbox'
    } = this.props;
    let {
      isFocused,
      results = [],
      selectedIndex,
      showMenu,
      value
    } = this.state;

    let children = _react.default.Children.toArray(this.props.children);

    let trigger = children.find(c => c.props.autocompleteInput) || children[0];
    let menuShown = showMenu && results.length > 0;
    let inputId = id || trigger.props.id || this.autocompleteId;
    return /*#__PURE__*/_react.default.createElement("div", {
      className: (0, _classnames.default)('react-spectrum-Autocomplete', {
        'is-focused': isFocused
      }, className),
      ref: w => this.wrapper = w,
      role: "combobox",
      "aria-controls": this.getListboxId(),
      "aria-expanded": menuShown,
      "aria-haspopup": ariaHaspopup,
      "aria-owns": this.getListboxId()
    }, children.map(child => {
      if (child === trigger) {
        return /*#__PURE__*/_react.default.cloneElement(child, {
          value: value,
          onChange: (0, _events.chain)(child.props.onChange, this.onChange),
          onKeyDown: (0, _events.chain)(child.props.onKeyDown, _events.interpretKeyboardEvent.bind(this)),
          onFocus: (0, _events.chain)(child.props.onFocus, this.onFocus),
          onBlur: (0, _events.chain)(child.props.onBlur, this.onBlur),
          id: inputId,
          autoComplete: 'off',
          tabIndex: this.props.tabIndex ? this.props.tabIndex : 0,
          'aria-activedescendant': this.getActiveDescendantId(),
          'aria-autocomplete': 'list',
          'aria-controls': this.getListboxId()
        });
      }

      return /*#__PURE__*/_react.default.cloneElement(child, {
        onFocus: (0, _events.chain)(child.props.onFocus, this.onFocus),
        onBlur: (0, _events.chain)(child.props.onBlur, this.onBlur)
      });
    }), /*#__PURE__*/_react.default.createElement(_UxpOverlay.default, {
      target: this.wrapper,
      show: menuShown,
      placement: "bottom left",
      role: "presentation",
      autoComplete: true
    }, /*#__PURE__*/_react.default.createElement(_Menu.Menu, {
      onUxpSelect: this.onSelect,
      onMouseDown: e => e.preventDefault(),
      style: {
        width: this.state.width + 'px'
      },
      role: "listbox",
      ref: m => this.menu = m,
      id: this.getListboxId(),
      trapFocus: false
    }, results.map((result, i) => {
      let label = getLabel(result);
      return /*#__PURE__*/_react.default.createElement(_Menu.MenuItem, {
        role: "option",
        id: this.optionIdPrefix + OPTION + i,
        tabIndex: selectedIndex === i ? 0 : -1,
        key: `item-${i}`,
        value: result,
        icon: result.icon,
        focused: selectedIndex === i,
        selected: label === value,
        onMouseEnter: this.onMouseEnter.bind(this, i),
        onMouseDown: e => {
          this.selectItem();
          e.preventDefault();
          e.stopPropagation();
        }
      }, renderItem ? renderItem(result) : label);
    }))));
  }

}

exports.default = UxpAutocomplete;

/***/ }),

/***/ "L55F":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return StoreUtil; });
/* harmony import */ var app_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("/0Ih");
/* harmony import */ var src_applications__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("3UBC");
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/


class StoreUtil {
    static normalizeItemView(view, prefs) {
        let result = view || app_constants__WEBPACK_IMPORTED_MODULE_0__[/* default */ "k"].DEFAULT_ITEM_VIEW;
        if (result === app_constants__WEBPACK_IMPORTED_MODULE_0__[/* default */ "k"].ITEM_VIEW_TYPES.GRID && !prefs.thumbnailViewEnabled) {
            result = app_constants__WEBPACK_IMPORTED_MODULE_0__[/* default */ "k"].ITEM_VIEW_TYPES.LIST;
        }
        else if (result === app_constants__WEBPACK_IMPORTED_MODULE_0__[/* default */ "k"].ITEM_VIEW_TYPES.LIST && !prefs.listViewEnabled) {
            result = app_constants__WEBPACK_IMPORTED_MODULE_0__[/* default */ "k"].ITEM_VIEW_TYPES.GRID;
        }
        return result;
    }
    /**
     * Map the Start route to the cache data type
     *
     * @param type		{String} route to lookup. (home, learn)
     * @return {String | null} Mapped data cache type name. null if we do not cache that data.
     */
    static routeToCache(route) {
        switch (route === null || route === void 0 ? void 0 : route.toLowerCase()) {
            case 'home':
            case 'learn':
                return 'Home';
            default:
                return null;
        }
    }
    /**
     * Return the path of the cahced data for the given request
     *
     * @param type		{String} type of path to lookup. (Home, Utut)
     * @return {String} cached path location for the downloaded data
     */
    static cachePath(type) {
        return `${src_applications__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].id}-${src_applications__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].version}-${src_applications__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].language}-${type}`;
    }
}


/***/ }),

/***/ "L8xA":
/***/ (function(module, exports) {

/**
 * Removes `key` and its value from the stack.
 *
 * @private
 * @name delete
 * @memberOf Stack
 * @param {string} key The key of the value to remove.
 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
 */
function stackDelete(key) {
  var data = this.__data__,
      result = data['delete'](key);
  this.size = data.size;
  return result;
}

module.exports = stackDelete;

/***/ }),

/***/ "LDAD":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return HomescreenErrorCodes; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return RenderErrorTypes; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return HomescreenErrorTypes; });
/* unused harmony export isHomescreenErrorInstance */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return getHomescreenErrorInstance; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return HomescreenError; });
/* harmony import */ var _ccx_ccx_firstmile_shared_src_components_toastals_user_intent_dialog_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("hJwU");
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2021 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/

var HomescreenErrorCodes;
(function (HomescreenErrorCodes) {
    /* Error codes related to initialization */
    HomescreenErrorCodes[HomescreenErrorCodes["INIT_CMDN_LATE_LOAD_FAILED"] = 1000] = "INIT_CMDN_LATE_LOAD_FAILED";
    HomescreenErrorCodes[HomescreenErrorCodes["INIT_IMS_UPDATE_ACCESS_TOKEN_FAILED"] = 1001] = "INIT_IMS_UPDATE_ACCESS_TOKEN_FAILED";
    HomescreenErrorCodes[HomescreenErrorCodes["INIT_START_INIT_FAILED"] = 1002] = "INIT_START_INIT_FAILED";
    /* code from 1003 to 1200 reserved TASK_FAILED */
    HomescreenErrorCodes[HomescreenErrorCodes["INIT_START_TASK_FAILED"] = 1003] = "INIT_START_TASK_FAILED";
    HomescreenErrorCodes[HomescreenErrorCodes["INIT_START_TASK_JUMP_TOKEN_FAILED"] = 1004] = "INIT_START_TASK_JUMP_TOKEN_FAILED";
    HomescreenErrorCodes[HomescreenErrorCodes["INIT_START_TASK_FAILED_END"] = 1200] = "INIT_START_TASK_FAILED_END";
    /* Error codes related to Sophia data and surface */
    HomescreenErrorCodes[HomescreenErrorCodes["SOPHIA_DATA_LOADING_FAILED"] = 2000] = "SOPHIA_DATA_LOADING_FAILED";
    HomescreenErrorCodes[HomescreenErrorCodes["SOPHIA_DATA_MISSING"] = 2001] = "SOPHIA_DATA_MISSING";
    HomescreenErrorCodes[HomescreenErrorCodes["SOPHIA_HOME_DATA_MISSING"] = 2002] = "SOPHIA_HOME_DATA_MISSING";
    HomescreenErrorCodes[HomescreenErrorCodes["SOPHIA_HOME_DATA_SURFACE_MISSING"] = 2003] = "SOPHIA_HOME_DATA_SURFACE_MISSING";
    HomescreenErrorCodes[HomescreenErrorCodes["SOPHIA_CACHE_PARSING_FAILED"] = 2004] = "SOPHIA_CACHE_PARSING_FAILED";
    /* Error codes related to learn tab */
    HomescreenErrorCodes[HomescreenErrorCodes["LEARN_TAB_TUTORIALS_MISSING"] = 3000] = "LEARN_TAB_TUTORIALS_MISSING";
    HomescreenErrorCodes[HomescreenErrorCodes["LEARN_TAB_SURFACE_MISSING"] = 3001] = "LEARN_TAB_SURFACE_MISSING";
    HomescreenErrorCodes[HomescreenErrorCodes["LEARN_TAB_RESPONSE_MISSING"] = 3002] = "LEARN_TAB_RESPONSE_MISSING";
    HomescreenErrorCodes[HomescreenErrorCodes["LEARN_TAB_FETCH_FAILED"] = 3003] = "LEARN_TAB_FETCH_FAILED";
    /* Error codes related to toast */
    HomescreenErrorCodes[HomescreenErrorCodes["TOAST_CONTENT_FAILED"] = 4000] = "TOAST_CONTENT_FAILED";
    /* Error codes related to layout */
    HomescreenErrorCodes[HomescreenErrorCodes["HOME_YUKON_DATA_MISSING"] = 5000] = "HOME_YUKON_DATA_MISSING";
    HomescreenErrorCodes[HomescreenErrorCodes["LEARN_YUKON_DATA_MISSING"] = 5001] = "LEARN_YUKON_DATA_MISSING";
    HomescreenErrorCodes[HomescreenErrorCodes["LAYOUT_RENDER_FAILED"] = 5002] = "LAYOUT_RENDER_FAILED";
    HomescreenErrorCodes[HomescreenErrorCodes["CONTENT_COMPONENT_ERROR"] = 5003] = "CONTENT_COMPONENT_ERROR";
    /* Error codes related to component */
    HomescreenErrorCodes[HomescreenErrorCodes["VIDEO_LOAD_FAILED"] = 6000] = "VIDEO_LOAD_FAILED";
    /* Error codes related to content data */
    HomescreenErrorCodes[HomescreenErrorCodes["FIELD_DATA_FROM_COMPONENT_MISSING"] = 7000] = "FIELD_DATA_FROM_COMPONENT_MISSING";
    HomescreenErrorCodes[HomescreenErrorCodes["COMPONENT_IN_LAYOUT_MISSING"] = 7001] = "COMPONENT_IN_LAYOUT_MISSING";
    HomescreenErrorCodes[HomescreenErrorCodes["FALLBACK_COMPONENT_FAILED"] = 7002] = "FALLBACK_COMPONENT_FAILED";
    /* Error codes related to NGL */
    HomescreenErrorCodes[HomescreenErrorCodes["NGL_PROFILE_PARSING_FAILED"] = 8000] = "NGL_PROFILE_PARSING_FAILED";
    HomescreenErrorCodes[HomescreenErrorCodes["NGL_RESPONSE_TIMEDOUT"] = 8001] = "NGL_RESPONSE_TIMEDOUT";
    /* Error codes related to CCX Process(Vulcan) */
    HomescreenErrorCodes[HomescreenErrorCodes["CCX_PROCESS_TIMEOUT"] = 9000] = "CCX_PROCESS_TIMEOUT";
    HomescreenErrorCodes[HomescreenErrorCodes["CCX_PROCESS_FRESH_DATA_FETCH_FAILED"] = 9001] = "CCX_PROCESS_FRESH_DATA_FETCH_FAILED";
    HomescreenErrorCodes[HomescreenErrorCodes["VULCAN_OBJECT_MISSING"] = 9002] = "VULCAN_OBJECT_MISSING";
    /* use for unknown errors */
    HomescreenErrorCodes[HomescreenErrorCodes["UNKNOWN_ERROR"] = 100000] = "UNKNOWN_ERROR";
    // Custom Content Configuration errors
    HomescreenErrorCodes[HomescreenErrorCodes["CUSTOM_CONTENT_CARDS_DATA_MISSING"] = 100001] = "CUSTOM_CONTENT_CARDS_DATA_MISSING";
    HomescreenErrorCodes[HomescreenErrorCodes["CUSTOM_CARD_MISMATCH_WITH_CONTENT"] = 100002] = "CUSTOM_CARD_MISMATCH_WITH_CONTENT";
    HomescreenErrorCodes[HomescreenErrorCodes["NO_CUSTOM_CONTENT_CARD_IN_RECOMMENDATIONS"] = 100003] = "NO_CUSTOM_CONTENT_CARD_IN_RECOMMENDATIONS";
    HomescreenErrorCodes[HomescreenErrorCodes["RECOMMENDATIONS_ERRORS"] = 100004] = "RECOMMENDATIONS_ERRORS";
    // User Intent Dialog errors
    HomescreenErrorCodes[HomescreenErrorCodes["NO_USER_INENT_DATA_WHEN_OPENING_TOASTAL"] = 200000] = "NO_USER_INENT_DATA_WHEN_OPENING_TOASTAL";
    HomescreenErrorCodes[HomescreenErrorCodes["RECOMMENDATION_FETCH_FAILURE"] = 200001] = "RECOMMENDATION_FETCH_FAILURE";
    HomescreenErrorCodes[HomescreenErrorCodes["RECOMMENDATIONS_BATCH_FETCH_FAILURE"] = 200002] = "RECOMMENDATIONS_BATCH_FETCH_FAILURE";
    HomescreenErrorCodes[HomescreenErrorCodes["MISSING_CONTAINER_MAJOR_FIELDS"] = 200003] = "MISSING_CONTAINER_MAJOR_FIELDS";
    HomescreenErrorCodes[HomescreenErrorCodes["DEFAULT_TO_WHATS_NEW"] = 200004] = "DEFAULT_TO_WHATS_NEW";
    // these are userd in FMS
    HomescreenErrorCodes[HomescreenErrorCodes["RENDER_FAILURE"] = _ccx_ccx_firstmile_shared_src_components_toastals_user_intent_dialog_constants__WEBPACK_IMPORTED_MODULE_0__[/* UserIntentDialogErrorCodes */ "f"].RENDER_FAILURE] = "RENDER_FAILURE";
    HomescreenErrorCodes[HomescreenErrorCodes["QUESTION_WITH_MISSING_TITLE"] = _ccx_ccx_firstmile_shared_src_components_toastals_user_intent_dialog_constants__WEBPACK_IMPORTED_MODULE_0__[/* UserIntentDialogErrorCodes */ "f"].QUESTION_WITH_MISSING_TITLE] = "QUESTION_WITH_MISSING_TITLE";
    HomescreenErrorCodes[HomescreenErrorCodes["ANSWERS_WITH_MISSING_TITLE_OR_METADATA"] = _ccx_ccx_firstmile_shared_src_components_toastals_user_intent_dialog_constants__WEBPACK_IMPORTED_MODULE_0__[/* UserIntentDialogErrorCodes */ "f"].ANSWERS_WITH_MISSING_TITLE_OR_METADATA] = "ANSWERS_WITH_MISSING_TITLE_OR_METADATA";
    HomescreenErrorCodes[HomescreenErrorCodes["QUESTION_WITHOUT_ANSWERS"] = _ccx_ccx_firstmile_shared_src_components_toastals_user_intent_dialog_constants__WEBPACK_IMPORTED_MODULE_0__[/* UserIntentDialogErrorCodes */ "f"].QUESTION_WITHOUT_ANSWERS] = "QUESTION_WITHOUT_ANSWERS";
    HomescreenErrorCodes[HomescreenErrorCodes["NO_RECOMMENDATIONS_FOUND"] = _ccx_ccx_firstmile_shared_src_components_toastals_user_intent_dialog_constants__WEBPACK_IMPORTED_MODULE_0__[/* UserIntentDialogErrorCodes */ "f"].NO_RECOMMENDATIONS_FOUND] = "NO_RECOMMENDATIONS_FOUND";
    // User Intent Signal errors
    HomescreenErrorCodes[HomescreenErrorCodes["USER_INTENT_SERVICE_RESPONSE_ERROR"] = 210000] = "USER_INTENT_SERVICE_RESPONSE_ERROR";
    HomescreenErrorCodes[HomescreenErrorCodes["RECOMMENDATION_NOT_FOUND"] = 210001] = "RECOMMENDATION_NOT_FOUND";
})(HomescreenErrorCodes || (HomescreenErrorCodes = {}));
var RenderErrorTypes;
(function (RenderErrorTypes) {
    RenderErrorTypes["LAYOUT"] = "layout";
    RenderErrorTypes["NETWORK"] = "network";
})(RenderErrorTypes || (RenderErrorTypes = {}));
const HomescreenErrorTypes = {
    CUSTOM_CONTENT_CONFIGURATION_CARDS: 'Custom-Content-Configurations-Cards',
    USER_INTENT_DIALOG: 'User-Intent-Dialog',
    RECOMMENDATIONS: 'Recommendations',
    USER_INTENT_SERVICE: 'User-Intent-Service',
};
function isHomescreenErrorInstance(error) {
    return error instanceof HomescreenError;
}
/**
 * Check if the param @error is HomescreenError Instance
 * if no, create a HomescreenError Instance using other params and return it
 * else return the @error param
 * */
function getHomescreenErrorInstance(error, description, type, code, extra = '') {
    return isHomescreenErrorInstance(error) ? error : new HomescreenError(description, type, code, extra);
}
class HomescreenError extends Error {
    constructor(description, type, code, extra = '') {
        super(description);
        this.desc = description;
        this.type = type;
        this.code = code;
        this.extra = extra;
    }
}


/***/ }),

/***/ "LGOv":
/***/ (function(module, exports, __webpack_require__) {

module.exports = __webpack_require__("3BRs");

/***/ }),

/***/ "LIQA":
/***/ (function(module) {

module.exports = JSON.parse("{\"steps\":\"{currentStep} / {totalSteps}\"}");

/***/ }),

/***/ "LMy0":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ProjectColorWrapper; });
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("TSYQ");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _utils_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("YVc3");
/* harmony import */ var _packages_FocusManager_FocusManager__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("QuN5");
/* harmony import */ var _ProjectColorWrapper_css__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("Jr5S");
/* harmony import */ var _ProjectColorWrapper_css__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_ProjectColorWrapper_css__WEBPACK_IMPORTED_MODULE_4__);






/**
 * Wraps a component with the colored Project Divider on the left side.
 */
function ProjectColorWrapper({ projectColor, large, children, className, showSpaceInfo, }) {
    const buttonEnabled = !!showSpaceInfo;
    const buttonProps = buttonEnabled
        ? {
            onClick: () => showSpaceInfo === null || showSpaceInfo === void 0 ? void 0 : showSpaceInfo(),
            onKeyDown: e => {
                [_utils_constants__WEBPACK_IMPORTED_MODULE_2__[/* SPACE_KEY */ "C"], _utils_constants__WEBPACK_IMPORTED_MODULE_2__[/* ENTER_KEY */ "h"]].includes(e.key) && (showSpaceInfo === null || showSpaceInfo === void 0 ? void 0 : showSpaceInfo());
            },
            role: 'button',
            tabIndex: 0,
        }
        : undefined;
    return (react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_packages_FocusManager_FocusManager__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"], { itemSelector: `.${_utils_constants__WEBPACK_IMPORTED_MODULE_2__[/* FOCUS_ITEM_CLASS */ "j"]}` },
        react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", Object.assign({ className: classnames__WEBPACK_IMPORTED_MODULE_0___default()(_ProjectColorWrapper_css__WEBPACK_IMPORTED_MODULE_4___default.a.ProjectColorWrapper, className, {
                [_ProjectColorWrapper_css__WEBPACK_IMPORTED_MODULE_4___default.a.titleButton]: buttonEnabled,
                [_ProjectColorWrapper_css__WEBPACK_IMPORTED_MODULE_4___default.a.large]: large,
            }) }, buttonProps),
            projectColor && (react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", { "data-test-id": `Project1UpHeader__${projectColor}`, style: { backgroundColor: `${projectColor}` }, className: _ProjectColorWrapper_css__WEBPACK_IMPORTED_MODULE_4___default.a.ProjectDivider })),
            children)));
}


/***/ }),

/***/ "LOp4":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("path", {
  d: "M20 4v12H8L20 4z"
}), React.createElement("path", {
  d: "M20.1 36A15.845 15.845 0 0 1 40 20.628V6a2 2 0 0 0-2-2H24v14a2 2 0 0 1-2 2H8v22a2 2 0 0 0 2 2h12.275a15.8 15.8 0 0 1-2.175-8z"
}), React.createElement("path", {
  d: "M36 24.1A11.9 11.9 0 1 0 47.9 36 11.9 11.9 0 0 0 36 24.1zm8 13.4a.5.5 0 0 1-.5.5H38v5.5a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5V38h-5.5a.5.5 0 0 1-.5-.5v-3a.5.5 0 0 1 .5-.5H34v-5.5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5V34h5.5a.5.5 0 0 1 .5.5z"
}));

/***/ }),

/***/ "LTJJ":
/***/ (function(module) {

module.exports = JSON.parse("{\"Clear search\":\"検索をクリア\"}");

/***/ }),

/***/ "LU1c":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2020 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/

var constants_1 = __webpack_require__("uBoz");
/**
 * Searches the provided string for the XD sentinel character and returns a boolean
 * @param searchString String to be searched.
 */


function endsWithXDSentinelCharacter(searchString) {
  return searchString && searchString.charAt(searchString.length - 1) === constants_1.XD_LEGACY_SENTINEL_CHARACTER;
}

exports.default = endsWithXDSentinelCharacter;

/***/ }),

/***/ "LV4P":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return fetchAvatar; });
/* harmony import */ var _start_stores_MainStore__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("cCFZ");
/* harmony import */ var _VulcanAPI__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("9PyL");
/* harmony import */ var src_applications__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("3UBC");
/* harmony import */ var _jsUtil__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("KTUt");
/* harmony import */ var _fs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("xZA7");
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2021 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/





// how many times to attempt to fetch the avatar when the profile is updated and the avatar is still not fetched
// setting a limit so that we don't end up sending too many calls to CCXProcess
const AVATAR_REFETCH_ATTEMPT_COUNT = 3;
// time in ms between avatar refetching attempts
const AVATAR_REFETCH_INTERVAL_TIME = 4000;
let avatarFetchInterval;
const vulcan = Object(_VulcanAPI__WEBPACK_IMPORTED_MODULE_1__[/* vulcanAPI */ "a"])();
vulcan === null || vulcan === void 0 ? void 0 : vulcan.on('ccxprocess.AvatarResponse', async (data) => {
    // This solution was removed because it resulted in too many CCXP requests - IAW-9268
    // if (data && data.err && data.err.code === 'USER_SIGNED_OUT') {
    // 	setTimeout(() => {
    // 		console.log('asking', Date.now().toLocaleString());
    // 		vulcan.dispatch({ type: 'ccxprocess.AvatarRequest' });
    // 	}, 2000);
    // 	return;
    // }
    if (data === null || data === void 0 ? void 0 : data.err) {
        return;
    }
    clearInterval(avatarFetchInterval);
    const dataPath = data.path.split('\\').join('/');
    const fileUrl = `file://${dataPath}`;
    const responseJSONFilePath = (await _fs__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].pathExists(fileUrl)) ? dataPath : '';
    const responseJSON = responseJSONFilePath && (await _fs__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].readJson(responseJSONFilePath));
    const imagePath = responseJSON.path;
    const avatarFilePath = responseJSON && responseJSONFilePath.replace(/\/[^\/]*$/, `/${imagePath}`);
    const avatarUrl = `file://${avatarFilePath}`;
    _start_stores_MainStore__WEBPACK_IMPORTED_MODULE_0__["mainStore"].user.setAvatar(avatarFilePath && (await _fs__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].pathExists(avatarUrl)) ? avatarUrl : avatarFilePath);
});
const fetchAvatarRequest = () => {
    vulcan.dispatch({
        type: 'ccxprocess.AvatarRequest',
        data: {
            params: {
                productCode: src_applications__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].id,
                productVersion: src_applications__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].version,
            },
            requestId: _jsUtil__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].generateGUID(),
            version: 1,
            urgent: true,
        },
    });
};
/**
 * Makes the avatar request to CCXProcess through vulcan
 */
const fetchAvatar = () => {
    fetchAvatarRequest();
    // the first try may not be enough as the request might still
    // return an USER_SIGNED_OUT error if the user just logged in
    let attemptCount = AVATAR_REFETCH_ATTEMPT_COUNT;
    avatarFetchInterval = setInterval(() => {
        if (attemptCount-- > 0 && !_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_0__["mainStore"].user.avatar) {
            fetchAvatarRequest();
        }
        else {
            clearInterval(avatarFetchInterval);
        }
    }, AVATAR_REFETCH_INTERVAL_TIME);
};


/***/ }),

/***/ "LYaz":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* unused harmony export NON_BREAKING_SPACE_UNICODE */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return formatNameWithNonBreakingSpace; });
/**
 * https://wiki.corp.adobe.com/display/~avinger/Artifacts+For+Review+Architecture#ArtifactsForReviewArchitecture-Naming
 * https://wiki.corp.adobe.com/display/~avinger/Artifact+Naming+Architecture
 *
 * Right now, artifacts are in /pubs and published privately in Community Platform. However, we are moving away
 * from that, and the future direction is for artifacts to live within /cloud-content or a project in org storage.
 * Because CC PMs require that duplicate artifact names within the same directory be allowed but repo:name semantics
 * does not allow duplicate names within the same directory, repo:name will be set to the same value as dc:title,
 * but with a date time suffix appended, separated by a non breaking space, to ensure uniqueness. And UIs only expose
 * the name `part` to users.
 */
const NON_BREAKING_SPACE_UNICODE = '\u00A0';
function formatNameWithNonBreakingSpace(name) {
    let formattedName = name;
    const indexOfNonBreakingSpaceUnicode = name.indexOf(NON_BREAKING_SPACE_UNICODE);
    if (indexOfNonBreakingSpaceUnicode >= 0) {
        formattedName = name.substring(0, indexOfNonBreakingSpaceUnicode);
    }
    return formattedName;
}


/***/ }),

/***/ "LbGp":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
class Utils {
    /**
     * Determine if we're currently running on UXP
     * @returns {boolean}
     */
    static usingUXP() {
        return Boolean(window.navigator.userAgent.indexOf('UXP') > -1);
    }
    static getResizeElement() {
        // UXP currently does not bubble up the resize event to the window but
        // it does dispatch the event to every DOM node up to document.
        return Utils.usingUXP() ? document : window;
    }
}
/* harmony default export */ __webpack_exports__["a"] = (Utils);


/***/ }),

/***/ "LbQT":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _SpEventUtils = __webpack_require__("XU6Z");

var _autobindDecorator = _interopRequireDefault(__webpack_require__("gKdT"));

var _events = __webpack_require__("mdZ3");

var _propTypes = _interopRequireDefault(__webpack_require__("17x9"));

var _react = _interopRequireWildcard(__webpack_require__("q1tI"));

const _excluded = ["subtle", "variant", "children", "className", "href", "onClick", "disabled"];

var _class, _class2, _temp;

function _getRequireWildcardCache(nodeInterop) {
  if (typeof WeakMap !== "function") return null;
  var cacheBabelInterop = new WeakMap();
  var cacheNodeInterop = new WeakMap();
  return (_getRequireWildcardCache = function (nodeInterop) {
    return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
  })(nodeInterop);
}

function _interopRequireWildcard(obj, nodeInterop) {
  if (!nodeInterop && obj && obj.__esModule) {
    return obj;
  }

  if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
    return {
      default: obj
    };
  }

  var cache = _getRequireWildcardCache(nodeInterop);

  if (cache && cache.has(obj)) {
    return cache.get(obj);
  }

  var newObj = {};
  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;

  for (var key in obj) {
    if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
      var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;

      if (desc && (desc.get || desc.set)) {
        Object.defineProperty(newObj, key, desc);
      } else {
        newObj[key] = obj[key];
      }
    }
  }

  newObj.default = obj;

  if (cache) {
    cache.set(obj, newObj);
  }

  return newObj;
}

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

const SPUXP_VARIANT = {
  default: 'primary',
  quiet: 'secondary',
  subtle: 'secondary',
  // deprecated
  overBackground: 'overBackground'
};

function preventDefault(e) {
  if (!e.defaultPrevented) {
    e.preventDefault();
  }
}

let SpUxpLink = (0, _autobindDecorator.default)(_class = (_temp = _class2 = class SpUxpLink extends _react.Component {
  constructor(props) {
    super(props);
    this.spLinkRef = /*#__PURE__*/_react.default.createRef();
  }

  handleEvent(event) {
    const eventName = Object.keys(this.props).filter(propName => propName.substr(2).toLowerCase() === event.type);

    if (this.props[eventName] && eventName !== 'onClick') {
      this.props[eventName].call(event.target, event);
    }
  }

  componentDidMount() {
    (0, _SpEventUtils.attachEventListeners)(this.spLinkRef.current, this.props, this.handleEvent);
  }

  componentWillUnmount() {
    (0, _SpEventUtils.removeEventListeners)(this.spLinkRef.current, this.props, this.handleEvent);
  }

  componentDidUpdate(prevProps) {
    this.updateAllEventListeners = !(0, _SpEventUtils.updateEventListeners)(this.spLinkRef.current, prevProps, this.props, this.handleEvent, this.updateAllEventListeners);
  }

  render() {
    let _this$props = this.props,
        {
      subtle,
      // deprecated
      variant,
      children,
      className,
      href,
      onClick,
      disabled
    } = _this$props,
        otherProps = _objectWithoutProperties(_this$props, _excluded);

    if (subtle) {
      console.warn('The "subtle" prop of Link is deprecated.');
      variant = 'quiet';
    }

    if (!href && typeof onClick === 'function') {
      href = '#';
      onClick = (0, _events.chain)(onClick, preventDefault);
    }

    return /*#__PURE__*/_react.default.createElement("sp-link", _extends({
      ref: this.spLinkRef,
      class: className,
      variant: variant === undefined ? 'primary' : SPUXP_VARIANT[variant],
      quiet: variant === undefined || variant === 'default' ? true : null,
      disabled: disabled ? true : null,
      href: href,
      onClick: onClick
    }, (0, _SpEventUtils.removeEventProps)(otherProps)), children);
  }

}, _class2.propTypes = {
  /** Class to add to the Link */
  className: _propTypes.default.string,

  /** Link variant */
  variant: _propTypes.default.oneOf(['quiet', 'subtle', 'overBackground'])
}, _temp)) || _class;

exports.default = SpUxpLink;

/***/ }),

/***/ "LcsW":
/***/ (function(module, exports, __webpack_require__) {

var overArg = __webpack_require__("kekF");
/** Built-in value references. */


var getPrototype = overArg(Object.getPrototypeOf, Object);
module.exports = getPrototype;

/***/ }),

/***/ "Lg+r":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return changeProps; });
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
/**
 * React Virtualized uses simple comparison of props to determine whether or not it should rerender its contents.
 * This often means it doesn't re-render when we think it should. For example, if we don't pass the array of items to
 * render, it won't re-render if the array is replaced with new data. Even if we do pass the elements,
 * it won't re-render if the array is sorted.
 *
 * To fix this, we can pass additional props that trigger a change...but we don't want to pass props that could collide
 * with React Virtualized props. Also it's tedious to type out all the props that could change. Enter this utility!
 *
 *    <Grid
 *        width={width}
 *        height={height}
 *        {...changeProps(activeSort, activeSortDir, elements.length, selectedItems)}
 *    />
 *
 * @param args
 * @returns {*|{}}
 */
function changeProps(...args) {
    return args.reduce((result, arg, i) => {
        result[`_dummy${i}`] = arg;
        return result;
    }, {});
}


/***/ }),

/***/ "Lo92":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var mobx_react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("okNM");
/* harmony import */ var _react_react_spectrum_Provider__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("bUsb");
/* harmony import */ var _react_react_spectrum_Provider__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Provider__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _applications__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("3UBC");
/* harmony import */ var _js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("cCFZ");
/* harmony import */ var _CDOImsDataBuilder__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("K0Sv");
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2022 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
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;
};






let CDOSpectrumProvider = class CDOSpectrumProvider extends react__WEBPACK_IMPORTED_MODULE_0___default.a.Component {
    get intlLocale() {
        return _applications__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].language.replace('_', '-');
    }
    componentDidMount() {
        var _a, _b, _c;
        // This is a workaround to stop Overlays from being attached to this React Spectrum Provider
        // https://jira.corp.adobe.com/browse/IAW-10762
        (_c = (_b = (_a = this._reactSpectrumProviderRef) === null || _a === void 0 ? void 0 : _a.providerRef) === null || _b === void 0 ? void 0 : _b.classList) === null || _c === void 0 ? void 0 : _c.remove('react-spectrum-provider');
    }
    render() {
        const cdoTheme = Object(_CDOImsDataBuilder__WEBPACK_IMPORTED_MODULE_5__[/* getSupportedCDOTheme */ "b"])(_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_4__["mainStore"].colorTheme);
        return (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_react_react_spectrum_Provider__WEBPACK_IMPORTED_MODULE_2___default.a, { theme: cdoTheme, className: cdoTheme === 'darkest' ? 'theme-darkest' : 'theme-light', 
            //  This is a workaround to handle the input and overlay overlap issues in Ps and Ai
            //  https://wiki.corp.adobe.com/pages/viewpage.action?spaceKey=UXP&title=Proposal+for+overlapping+textedit+and+overlays
            //  https://wiki.corp.adobe.com/display/UXP/PS+UXP+Overlay+Issues
            disableNativeControls: _js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_4__["mainStore"].disableNativeControls, productId: _applications__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].id, scale: "medium", defaultpreventedkeys: ['Escape'], locale: this.intlLocale, ref: el => this._reactSpectrumProviderRef = el }, this.props.children));
    }
};
CDOSpectrumProvider = __decorate([
    mobx_react__WEBPACK_IMPORTED_MODULE_1__[/* observer */ "e"]
], CDOSpectrumProvider);
/* harmony default export */ __webpack_exports__["a"] = (CDOSpectrumProvider);


/***/ }),

/***/ "LpSC":
/***/ (function(module, exports, __webpack_require__) {

// the whatwg-fetch polyfill installs the fetch() function
// on the global object (window or self)
//
// Return that as the export for use in Webpack, Browserify etc.
__webpack_require__("bZMm");

module.exports = self.fetch.bind(self);

/***/ }),

/***/ "Lpon":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.setLocale = setLocale;
exports.getLocale = getLocale;
exports.messageFormatter = messageFormatter;
exports.defaultLocale = void 0;

var _intlMessageformat = _interopRequireDefault(__webpack_require__("2UD4"));

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}
/*************************************************************************
* ADOBE CONFIDENTIAL
* ___________________
*
* Copyright 2019 Adobe
* All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains
* the property of Adobe and its suppliers, if any. The intellectual
* and technical concepts contained herein are proprietary to Adobe
* and its suppliers and are protected by all applicable intellectual
* property laws, including trade secret and copyright laws.
* Dissemination of this information or reproduction of this material
* is strictly forbidden unless prior written permission is obtained
* from Adobe.
**************************************************************************/


const defaultLocale = typeof navigator !== 'undefined' && (navigator.language || navigator.userLanguage) || 'en-US';
exports.defaultLocale = defaultLocale;
let currentLocale = defaultLocale;

function setLocale(locale) {
  currentLocale = locale;
}

function getLocale() {
  return currentLocale;
}

function messageFormatter(strings) {
  let cache = {};
  return function formatMessage(key, variables, formats) {
    let message = cache[key + '.' + currentLocale];

    if (!message) {
      let localeStrings = strings[currentLocale] || strings['en-US'];
      let msg = localeStrings[key];

      if (!msg) {
        throw new Error(`Could not find intl message ${key} in ${currentLocale} locale`);
      }

      message = new _intlMessageformat.default(msg, currentLocale, formats);
      cache[key] = message;
    }

    return message.format(variables);
  };
}

/***/ }),

/***/ "Lq0C":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _autobindDecorator = _interopRequireDefault(__webpack_require__("gKdT"));

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _convertUnsafeMethod = _interopRequireDefault(__webpack_require__("8nyd"));

var _getBoundingClientRect = __webpack_require__("Brgg");

var _propTypes = _interopRequireDefault(__webpack_require__("17x9"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

var _reactDom = _interopRequireDefault(__webpack_require__("i8i4"));

var _TabLine = _interopRequireDefault(__webpack_require__("IJdV"));

var _TabListBase = _interopRequireDefault(__webpack_require__("TOmJ"));

var _TabListDropdown = _interopRequireDefault(__webpack_require__("zLtM"));

__webpack_require__("JbkM");

const _excluded = ["className", "orientation", "variant", "quiet", "children", "defaultSelectedIndex", "collapsible"];

var _class, _class2, _temp;

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

if (false) {} else if (false) {} else {
  __webpack_require__("Wf8h");
}

if (true) __webpack_require__("uVav");
if (true) __webpack_require__("4hv2");
if (true) __webpack_require__("R1A0");
if (true) __webpack_require__("/jtW"); // For backward compatibility

const VARIANTS = {
  'panel': '',
  'anchored': '',
  'page': 'compact'
};
/**
 * A TabList displays a list of tabs
 */

let TabList = (0, _convertUnsafeMethod.default)(_class = (0, _autobindDecorator.default)(_class = (_temp = _class2 = class TabList extends _react.default.Component {
  constructor(props) {
    super(props);
    this.state = {
      selectedIndex: _TabListBase.default.getDefaultSelectedIndex(this.props),
      tabArray: [],
      tooNarrow: false
    };
    this.debouncedResizeUpdate = null;
  }

  UNSAFE_componentWillReceiveProps(nextProps) {
    if ('selectedIndex' in nextProps) {
      this.setState({
        selectedIndex: nextProps.selectedIndex
      });
    }

    if (this.state.selectedIndex >= _react.default.Children.toArray(nextProps.children).length) {
      this.onChange(_TabListBase.default.getDefaultSelectedIndex(nextProps));
    }
  }

  componentDidMount() {
    window.addEventListener('resize', this.resizeListener);
    this.updateTabs();
    this.widthCheck();
  }

  componentWillUnmount() {
    window.removeEventListener('resize', this.resizeListener);
    this.clearDebouncedResizeUpdateInterval();
  }

  componentDidUpdate(prevProps) {
    if (prevProps.children !== this.props.children) {
      this.updateTabs();
      this.widthCheck();
    }
  }

  resizeListener() {
    if (!this.debouncedResizeUpdate) {
      this.debouncedResizeUpdate = setTimeout(() => {
        this.widthCheck();
        this.debouncedResizeUpdate = null;
      }, 50);
    }
  }

  clearDebouncedResizeUpdateInterval() {
    if (this.debouncedResizeUpdate) {
      clearTimeout(this.debouncedResizeUpdate);
      this.debouncedResizeUpdate = null;
    }
  } // will need to change to left probably if dealing with rtl


  getFurthestPoint(elem) {
    return (0, _getBoundingClientRect.getBoundingClientRect)(elem).right;
  }

  widthCheck() {
    const tabList = _reactDom.default.findDOMNode(this); // since tab array is in state, we don't necessarily have the most recent if we just use
    // state.tabArray, so get the tabs for the width check


    const tabs = _reactDom.default.findDOMNode(this).querySelectorAll('.spectrum-Tabs-item');

    let farEdgeTabList = this.getFurthestPoint(tabList);
    let farEdgeLastTab = this.getFurthestPoint(tabs[tabs.length - 1]);

    if (farEdgeTabList < farEdgeLastTab) {
      this.setState({
        tooNarrow: true
      });
    } else {
      this.setState({
        tooNarrow: false
      });
    }
  }

  updateTabs() {
    // Measure the tabs so we can position the line below correctly
    const tabArray = _reactDom.default.findDOMNode(this).querySelectorAll('.spectrum-Tabs-item');

    this.setState({
      tabArray
    });
  }

  onChange(selectedIndex) {
    let lastSelectedIndex = this.state.selectedIndex; // If selectedIndex is defined on props then this is a controlled component and we shouldn't
    // change our own state.

    if (!('selectedIndex' in this.props)) {
      this.setState({
        selectedIndex
      });
    }

    if (lastSelectedIndex !== selectedIndex && this.props.onChange) {
      this.props.onChange(selectedIndex);
    }
  }

  getTabList() {
    let _this$props = this.props,
        {
      className,
      orientation = 'horizontal',
      variant = '',
      quiet,
      children,
      defaultSelectedIndex,
      collapsible
    } = _this$props,
        otherProps = _objectWithoutProperties(_this$props, _excluded);

    let {
      selectedIndex,
      tabArray,
      tooNarrow
    } = this.state;
    let selectedTab = tabArray[selectedIndex]; // For backwards compatibility
    // let mappedVariant = VARIANTS[variant] !== undefined ? VARIANTS[variant] : variant;

    if (VARIANTS[variant] != null) {
      let message = `The "${variant}" variant of TabList has been deprecated.`;

      if (VARIANTS[variant]) {
        message += ` Please use the "${VARIANTS[variant]}" variant instead.`;
      } else {
        message += ' Please remove the variant prop to use the default variant instead.';
      }

      console.warn(message);
      variant = VARIANTS[variant];
    }

    let tooNarrowProps = {};
    let shouldHide = false;

    if (collapsible && tooNarrow && orientation !== 'vertical') {
      tooNarrowProps['aria-hidden'] = tooNarrow;
      shouldHide = true;
    }

    return /*#__PURE__*/_react.default.createElement(_TabListBase.default, _extends({}, tooNarrowProps, {
      orientation: orientation,
      defaultSelectedIndex: defaultSelectedIndex || null,
      selectedIndex: selectedIndex
    }, otherProps, {
      className: (0, _classnames.default)('spectrum-Tabs', `spectrum-Tabs--${orientation}`, {
        'spectrum-Tabs--quiet': quiet,
        [`spectrum-Tabs--${variant}`]: variant,
        'react-spectrum-Tabs--container': collapsible,
        'react-spectrum-Tabs--hidden': shouldHide
      }, className),
      onChange: this.onChange
    }), children, selectedTab && /*#__PURE__*/_react.default.createElement(_TabLine.default, {
      orientation: orientation,
      selectedTab: selectedTab
    }));
  }

  getDropdown() {
    let {
      quiet,
      children,
      'aria-labelledby': ariaLabelledby,
      'aria-label': ariaLabel
    } = this.props;
    let {
      selectedIndex
    } = this.state;
    return /*#__PURE__*/_react.default.createElement(_TabListDropdown.default, {
      className: (0, _classnames.default)({
        'spectrum-Tabs--quiet': quiet
      }),
      selectedIndex: selectedIndex,
      onChange: this.onChange,
      quiet: quiet,
      "aria-labelledby": ariaLabelledby,
      "aria-label": ariaLabel
    }, children);
  }

  render() {
    let {
      collapsible,
      orientation
    } = this.props;
    let {
      tooNarrow
    } = this.state;

    if (collapsible && orientation !== 'vertical') {
      return /*#__PURE__*/_react.default.createElement("div", {
        className: (0, _classnames.default)('react-spectrum-Tabs--collapsible')
      }, this.getTabList(), tooNarrow && this.getDropdown());
    } else {
      return this.getTabList();
    }
  }

}, _class2.propTypes = {
  /** The visual style of the tab list */
  variant: _propTypes.default.oneOf(['compact', 'panel', 'anchored', '']),

  /** Whether the tab list should render using a quiet style */
  quiet: _propTypes.default.bool,

  /** The layout orientation of the tabs */
  orientation: _propTypes.default.oneOf(['horizontal', 'vertical']),

  /**
   * Whether selection should be 'automatic' when a Tab receives keyboard focus
   * or 'manual' using Enter or Space key to select.
   */
  keyboardActivation: _propTypes.default.oneOf(['automatic', 'manual']),

  /**
   * The index of the Tab that should be selected (open). When selectedIndex is
   * specified, the component is in a controlled state and a Tab can only be selected by changing the
   * selectedIndex prop value. By default, the first Tab will be selected.
   */
  selectedIndex: _propTypes.default.number,

  /**
   * The same as selectedIndex except that the component is in an uncontrolled
   * state.
   */
  defaultSelectedIndex: _propTypes.default.number,

  /**
   * A function that will be called when an Tab is selected or deselected. It will be passed
   * the updated selected index.
   */
  onChange: _propTypes.default.func,

  /**
   * If the parent is display flex or an explicit width is given to this component, then it can be
   * collapsible and you may set this to true.
   */
  collapsible: _propTypes.default.bool,

  /**
   * Whether to autoFocus first selected Tab or first Tab.
   */
  autoFocus: _propTypes.default.bool
}, _class2.defaultProps = {
  variant: '',
  quiet: false,
  orientation: 'horizontal',
  collapsible: false,
  autoFocus: false
}, _temp)) || _class) || _class;

exports.default = TabList;

/***/ }),

/***/ "LsHQ":
/***/ (function(module, exports, __webpack_require__) {

var baseRest = __webpack_require__("EA7m"),
    isIterateeCall = __webpack_require__("mv/X");
/**
 * Creates a function like `_.assign`.
 *
 * @private
 * @param {Function} assigner The function to assign values.
 * @returns {Function} Returns the new assigner function.
 */


function createAssigner(assigner) {
  return baseRest(function (object, sources) {
    var index = -1,
        length = sources.length,
        customizer = length > 1 ? sources[length - 1] : undefined,
        guard = length > 2 ? sources[2] : undefined;
    customizer = assigner.length > 3 && typeof customizer == 'function' ? (length--, customizer) : undefined;

    if (guard && isIterateeCall(sources[0], sources[1], guard)) {
      customizer = length < 3 ? undefined : customizer;
      length = 1;
    }

    object = Object(object);

    while (++index < length) {
      var source = sources[index];

      if (source) {
        assigner(object, source, index, customizer);
      }
    }

    return object;
  });
}

module.exports = createAssigner;

/***/ }),

/***/ "LslX":
/***/ (function(module) {

module.exports = JSON.parse("{\"Breadcrumbs\":\"Popis cesty\"}");

/***/ }),

/***/ "M1xp":
/***/ (function(module, exports, __webpack_require__) {

// fallback for non-array-like ES3 and non-enumerable old V8 strings
var cof = __webpack_require__("a0xu"); // eslint-disable-next-line no-prototype-builtins


module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {
  return cof(it) == 'String' ? it.split('') : Object(it);
};

/***/ }),

/***/ "MBYv":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return DEFAULT_FINAL_TIMEOUT; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return DEFAULT_HEARTBEAT_INTERVAL; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return DEFAULT_IDLE_TIMEOUT; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return IdleTransaction; });
/* unused harmony export IdleTransactionSpanRecorder */
/* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("kdvv");
/* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("8LbN");
/* harmony import */ var _span_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("SYqL");
/* harmony import */ var _transaction_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("EldZ");



const DEFAULT_IDLE_TIMEOUT = 1000;
const DEFAULT_FINAL_TIMEOUT = 30000;
const DEFAULT_HEARTBEAT_INTERVAL = 5000;
/**
 * @inheritDoc
 */

class IdleTransactionSpanRecorder extends _span_js__WEBPACK_IMPORTED_MODULE_2__[/* SpanRecorder */ "b"] {
  constructor(_pushActivity, _popActivity, transactionSpanId, maxlen) {
    super(maxlen);
    this._pushActivity = _pushActivity;
    this._popActivity = _popActivity;
    this.transactionSpanId = transactionSpanId;
    ;
  }
  /**
   * @inheritDoc
   */


  add(span) {
    // We should make sure we do not push and pop activities for
    // the transaction that this span recorder belongs to.
    if (span.spanId !== this.transactionSpanId) {
      // We patch span.finish() to pop an activity after setting an endTimestamp.
      span.finish = endTimestamp => {
        span.endTimestamp = typeof endTimestamp === 'number' ? endTimestamp : Object(_sentry_utils__WEBPACK_IMPORTED_MODULE_0__[/* timestampWithMs */ "d"])();

        this._popActivity(span.spanId);
      }; // We should only push new activities if the span does not have an end timestamp.


      if (span.endTimestamp === undefined) {
        this._pushActivity(span.spanId);
      }
    }

    super.add(span);
  }

}
/**
 * An IdleTransaction is a transaction that automatically finishes. It does this by tracking child spans as activities.
 * You can have multiple IdleTransactions active, but if the `onScope` option is specified, the idle transaction will
 * put itself on the scope on creation.
 */


class IdleTransaction extends _transaction_js__WEBPACK_IMPORTED_MODULE_3__[/* Transaction */ "a"] {
  // Activities store a list of active spans
  __init() {
    this.activities = {};
  } // Track state of activities in previous heartbeat
  // Amount of times heartbeat has counted. Will cause transaction to finish after 3 beats.


  __init2() {
    this._heartbeatCounter = 0;
  } // We should not use heartbeat if we finished a transaction


  __init3() {
    this._finished = false;
  }

  __init4() {
    this._beforeFinishCallbacks = [];
  }
  /**
   * Timer that tracks Transaction idleTimeout
   */


  constructor(transactionContext, _idleHub,
  /**
   * The time to wait in ms until the idle transaction will be finished. This timer is started each time
   * there are no active spans on this transaction.
   */
  _idleTimeout = DEFAULT_IDLE_TIMEOUT,
  /**
   * The final value in ms that a transaction cannot exceed
   */
  _finalTimeout = DEFAULT_FINAL_TIMEOUT, _heartbeatInterval = DEFAULT_HEARTBEAT_INTERVAL, // Whether or not the transaction should put itself on the scope when it starts and pop itself off when it ends
  _onScope = false) {
    super(transactionContext, _idleHub);
    this._idleHub = _idleHub;
    this._idleTimeout = _idleTimeout;
    this._finalTimeout = _finalTimeout;
    this._heartbeatInterval = _heartbeatInterval;
    this._onScope = _onScope;

    IdleTransaction.prototype.__init.call(this);

    IdleTransaction.prototype.__init2.call(this);

    IdleTransaction.prototype.__init3.call(this);

    IdleTransaction.prototype.__init4.call(this);

    ;

    if (_onScope) {
      // There should only be one active transaction on the scope
      clearActiveTransaction(_idleHub); // We set the transaction here on the scope so error events pick up the trace
      // context and attach it to the error.

      (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && _sentry_utils__WEBPACK_IMPORTED_MODULE_1__[/* logger */ "c"].log(`Setting idle transaction on scope. Span ID: ${this.spanId}`);

      _idleHub.configureScope(scope => scope.setSpan(this));
    }

    this._startIdleTimeout();

    setTimeout(() => {
      if (!this._finished) {
        this.setStatus('deadline_exceeded');
        this.finish();
      }
    }, this._finalTimeout);
  }
  /** {@inheritDoc} */


  finish(endTimestamp = Object(_sentry_utils__WEBPACK_IMPORTED_MODULE_0__[/* timestampWithMs */ "d"])()) {
    this._finished = true;
    this.activities = {};

    if (this.spanRecorder) {
      (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && _sentry_utils__WEBPACK_IMPORTED_MODULE_1__[/* logger */ "c"].log('[Tracing] finishing IdleTransaction', new Date(endTimestamp * 1000).toISOString(), this.op);

      for (const callback of this._beforeFinishCallbacks) {
        callback(this, endTimestamp);
      }

      this.spanRecorder.spans = this.spanRecorder.spans.filter(span => {
        // If we are dealing with the transaction itself, we just return it
        if (span.spanId === this.spanId) {
          return true;
        } // We cancel all pending spans with status "cancelled" to indicate the idle transaction was finished early


        if (!span.endTimestamp) {
          span.endTimestamp = endTimestamp;
          span.setStatus('cancelled');
          (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && _sentry_utils__WEBPACK_IMPORTED_MODULE_1__[/* logger */ "c"].log('[Tracing] cancelling span since transaction ended early', JSON.stringify(span, undefined, 2));
        }

        const keepSpan = span.startTimestamp < endTimestamp;

        if (!keepSpan) {
          (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && _sentry_utils__WEBPACK_IMPORTED_MODULE_1__[/* logger */ "c"].log('[Tracing] discarding Span since it happened after Transaction was finished', JSON.stringify(span, undefined, 2));
        }

        return keepSpan;
      });
      (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && _sentry_utils__WEBPACK_IMPORTED_MODULE_1__[/* logger */ "c"].log('[Tracing] flushing IdleTransaction');
    } else {
      (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && _sentry_utils__WEBPACK_IMPORTED_MODULE_1__[/* logger */ "c"].log('[Tracing] No active IdleTransaction');
    } // if `this._onScope` is `true`, the transaction put itself on the scope when it started


    if (this._onScope) {
      clearActiveTransaction(this._idleHub);
    }

    return super.finish(endTimestamp);
  }
  /**
   * Register a callback function that gets excecuted before the transaction finishes.
   * Useful for cleanup or if you want to add any additional spans based on current context.
   *
   * This is exposed because users have no other way of running something before an idle transaction
   * finishes.
   */


  registerBeforeFinishCallback(callback) {
    this._beforeFinishCallbacks.push(callback);
  }
  /**
   * @inheritDoc
   */


  initSpanRecorder(maxlen) {
    if (!this.spanRecorder) {
      const pushActivity = id => {
        if (this._finished) {
          return;
        }

        this._pushActivity(id);
      };

      const popActivity = id => {
        if (this._finished) {
          return;
        }

        this._popActivity(id);
      };

      this.spanRecorder = new IdleTransactionSpanRecorder(pushActivity, popActivity, this.spanId, maxlen); // Start heartbeat so that transactions do not run forever.

      (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && _sentry_utils__WEBPACK_IMPORTED_MODULE_1__[/* logger */ "c"].log('Starting heartbeat');

      this._pingHeartbeat();
    }

    this.spanRecorder.add(this);
  }
  /**
   * Cancels the existing idletimeout, if there is one
   */


  _cancelIdleTimeout() {
    if (this._idleTimeoutID) {
      clearTimeout(this._idleTimeoutID);
      this._idleTimeoutID = undefined;
    }
  }
  /**
   * Creates an idletimeout
   */


  _startIdleTimeout(endTimestamp) {
    this._cancelIdleTimeout();

    this._idleTimeoutID = setTimeout(() => {
      if (!this._finished && Object.keys(this.activities).length === 0) {
        this.finish(endTimestamp);
      }
    }, this._idleTimeout);
  }
  /**
   * Start tracking a specific activity.
   * @param spanId The span id that represents the activity
   */


  _pushActivity(spanId) {
    this._cancelIdleTimeout();

    (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && _sentry_utils__WEBPACK_IMPORTED_MODULE_1__[/* logger */ "c"].log(`[Tracing] pushActivity: ${spanId}`);
    this.activities[spanId] = true;
    (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && _sentry_utils__WEBPACK_IMPORTED_MODULE_1__[/* logger */ "c"].log('[Tracing] new activities count', Object.keys(this.activities).length);
  }
  /**
   * Remove an activity from usage
   * @param spanId The span id that represents the activity
   */


  _popActivity(spanId) {
    if (this.activities[spanId]) {
      (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && _sentry_utils__WEBPACK_IMPORTED_MODULE_1__[/* logger */ "c"].log(`[Tracing] popActivity ${spanId}`); // eslint-disable-next-line @typescript-eslint/no-dynamic-delete

      delete this.activities[spanId];
      (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && _sentry_utils__WEBPACK_IMPORTED_MODULE_1__[/* logger */ "c"].log('[Tracing] new activities count', Object.keys(this.activities).length);
    }

    if (Object.keys(this.activities).length === 0) {
      // We need to add the timeout here to have the real endtimestamp of the transaction
      // Remember timestampWithMs is in seconds, timeout is in ms
      const endTimestamp = Object(_sentry_utils__WEBPACK_IMPORTED_MODULE_0__[/* timestampWithMs */ "d"])() + this._idleTimeout / 1000;

      this._startIdleTimeout(endTimestamp);
    }
  }
  /**
   * Checks when entries of this.activities are not changing for 3 beats.
   * If this occurs we finish the transaction.
   */


  _beat() {
    // We should not be running heartbeat if the idle transaction is finished.
    if (this._finished) {
      return;
    }

    const heartbeatString = Object.keys(this.activities).join('');

    if (heartbeatString === this._prevHeartbeatString) {
      this._heartbeatCounter += 1;
    } else {
      this._heartbeatCounter = 1;
    }

    this._prevHeartbeatString = heartbeatString;

    if (this._heartbeatCounter >= 3) {
      (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && _sentry_utils__WEBPACK_IMPORTED_MODULE_1__[/* logger */ "c"].log('[Tracing] Transaction finished because of no change for 3 heart beats');
      this.setStatus('deadline_exceeded');
      this.finish();
    } else {
      this._pingHeartbeat();
    }
  }
  /**
   * Pings the heartbeat
   */


  _pingHeartbeat() {
    (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && _sentry_utils__WEBPACK_IMPORTED_MODULE_1__[/* logger */ "c"].log(`pinging Heartbeat -> current counter: ${this._heartbeatCounter}`);
    setTimeout(() => {
      this._beat();
    }, this._heartbeatInterval);
  }

}
/**
 * Reset transaction on scope to `undefined`
 */


function clearActiveTransaction(hub) {
  const scope = hub.getScope();

  if (scope) {
    const transaction = scope.getTransaction();

    if (transaction) {
      scope.setSpan(undefined);
    }
  }
}



/***/ }),

/***/ "MCLT":
/***/ (function(module, exports, __webpack_require__) {

/* WEBPACK VAR INJECTION */(function(process) {// Copyright Joyent, Inc. and other Node contributors.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to permit
// persons to whom the Software is furnished to do so, subject to the
// following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
// USE OR OTHER DEALINGS IN THE SOFTWARE.
var getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors || function getOwnPropertyDescriptors(obj) {
  var keys = Object.keys(obj);
  var descriptors = {};

  for (var i = 0; i < keys.length; i++) {
    descriptors[keys[i]] = Object.getOwnPropertyDescriptor(obj, keys[i]);
  }

  return descriptors;
};

var formatRegExp = /%[sdj%]/g;

exports.format = function (f) {
  if (!isString(f)) {
    var objects = [];

    for (var i = 0; i < arguments.length; i++) {
      objects.push(inspect(arguments[i]));
    }

    return objects.join(' ');
  }

  var i = 1;
  var args = arguments;
  var len = args.length;
  var str = String(f).replace(formatRegExp, function (x) {
    if (x === '%%') return '%';
    if (i >= len) return x;

    switch (x) {
      case '%s':
        return String(args[i++]);

      case '%d':
        return Number(args[i++]);

      case '%j':
        try {
          return JSON.stringify(args[i++]);
        } catch (_) {
          return '[Circular]';
        }

      default:
        return x;
    }
  });

  for (var x = args[i]; i < len; x = args[++i]) {
    if (isNull(x) || !isObject(x)) {
      str += ' ' + x;
    } else {
      str += ' ' + inspect(x);
    }
  }

  return str;
}; // Mark that a method should not be used.
// Returns a modified function which warns once by default.
// If --no-deprecation is set, then it is a no-op.


exports.deprecate = function (fn, msg) {
  if (typeof process !== 'undefined' && process.noDeprecation === true) {
    return fn;
  } // Allow for deprecating things in the process of starting up.


  if (typeof process === 'undefined') {
    return function () {
      return exports.deprecate(fn, msg).apply(this, arguments);
    };
  }

  var warned = false;

  function deprecated() {
    if (!warned) {
      if (process.throwDeprecation) {
        throw new Error(msg);
      } else if (process.traceDeprecation) {
        console.trace(msg);
      } else {
        console.error(msg);
      }

      warned = true;
    }

    return fn.apply(this, arguments);
  }

  return deprecated;
};

var debugs = {};
var debugEnviron;

exports.debuglog = function (set) {
  if (isUndefined(debugEnviron)) debugEnviron = process.env.NODE_DEBUG || '';
  set = set.toUpperCase();

  if (!debugs[set]) {
    if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) {
      var pid = process.pid;

      debugs[set] = function () {
        var msg = exports.format.apply(exports, arguments);
        console.error('%s %d: %s', set, pid, msg);
      };
    } else {
      debugs[set] = function () {};
    }
  }

  return debugs[set];
};
/**
 * Echos the value of a value. Trys to print the value out
 * in the best way possible given the different types.
 *
 * @param {Object} obj The object to print out.
 * @param {Object} opts Optional options object that alters the output.
 */

/* legacy: obj, showHidden, depth, colors*/


function inspect(obj, opts) {
  // default options
  var ctx = {
    seen: [],
    stylize: stylizeNoColor
  }; // legacy...

  if (arguments.length >= 3) ctx.depth = arguments[2];
  if (arguments.length >= 4) ctx.colors = arguments[3];

  if (isBoolean(opts)) {
    // legacy...
    ctx.showHidden = opts;
  } else if (opts) {
    // got an "options" object
    exports._extend(ctx, opts);
  } // set default options


  if (isUndefined(ctx.showHidden)) ctx.showHidden = false;
  if (isUndefined(ctx.depth)) ctx.depth = 2;
  if (isUndefined(ctx.colors)) ctx.colors = false;
  if (isUndefined(ctx.customInspect)) ctx.customInspect = true;
  if (ctx.colors) ctx.stylize = stylizeWithColor;
  return formatValue(ctx, obj, ctx.depth);
}

exports.inspect = inspect; // http://en.wikipedia.org/wiki/ANSI_escape_code#graphics

inspect.colors = {
  'bold': [1, 22],
  'italic': [3, 23],
  'underline': [4, 24],
  'inverse': [7, 27],
  'white': [37, 39],
  'grey': [90, 39],
  'black': [30, 39],
  'blue': [34, 39],
  'cyan': [36, 39],
  'green': [32, 39],
  'magenta': [35, 39],
  'red': [31, 39],
  'yellow': [33, 39]
}; // Don't use 'blue' not visible on cmd.exe

inspect.styles = {
  'special': 'cyan',
  'number': 'yellow',
  'boolean': 'yellow',
  'undefined': 'grey',
  'null': 'bold',
  'string': 'green',
  'date': 'magenta',
  // "name": intentionally not styling
  'regexp': 'red'
};

function stylizeWithColor(str, styleType) {
  var style = inspect.styles[styleType];

  if (style) {
    return '\u001b[' + inspect.colors[style][0] + 'm' + str + '\u001b[' + inspect.colors[style][1] + 'm';
  } else {
    return str;
  }
}

function stylizeNoColor(str, styleType) {
  return str;
}

function arrayToHash(array) {
  var hash = {};
  array.forEach(function (val, idx) {
    hash[val] = true;
  });
  return hash;
}

function formatValue(ctx, value, recurseTimes) {
  // Provide a hook for user-specified inspect functions.
  // Check that value is an object with an inspect function on it
  if (ctx.customInspect && value && isFunction(value.inspect) && // Filter out the util module, it's inspect function is special
  value.inspect !== exports.inspect && // Also filter out any prototype objects using the circular check.
  !(value.constructor && value.constructor.prototype === value)) {
    var ret = value.inspect(recurseTimes, ctx);

    if (!isString(ret)) {
      ret = formatValue(ctx, ret, recurseTimes);
    }

    return ret;
  } // Primitive types cannot have properties


  var primitive = formatPrimitive(ctx, value);

  if (primitive) {
    return primitive;
  } // Look up the keys of the object.


  var keys = Object.keys(value);
  var visibleKeys = arrayToHash(keys);

  if (ctx.showHidden) {
    keys = Object.getOwnPropertyNames(value);
  } // IE doesn't make error fields non-enumerable
  // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx


  if (isError(value) && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {
    return formatError(value);
  } // Some type of object without properties can be shortcutted.


  if (keys.length === 0) {
    if (isFunction(value)) {
      var name = value.name ? ': ' + value.name : '';
      return ctx.stylize('[Function' + name + ']', 'special');
    }

    if (isRegExp(value)) {
      return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
    }

    if (isDate(value)) {
      return ctx.stylize(Date.prototype.toString.call(value), 'date');
    }

    if (isError(value)) {
      return formatError(value);
    }
  }

  var base = '',
      array = false,
      braces = ['{', '}']; // Make Array say that they are Array

  if (isArray(value)) {
    array = true;
    braces = ['[', ']'];
  } // Make functions say that they are functions


  if (isFunction(value)) {
    var n = value.name ? ': ' + value.name : '';
    base = ' [Function' + n + ']';
  } // Make RegExps say that they are RegExps


  if (isRegExp(value)) {
    base = ' ' + RegExp.prototype.toString.call(value);
  } // Make dates with properties first say the date


  if (isDate(value)) {
    base = ' ' + Date.prototype.toUTCString.call(value);
  } // Make error with message first say the error


  if (isError(value)) {
    base = ' ' + formatError(value);
  }

  if (keys.length === 0 && (!array || value.length == 0)) {
    return braces[0] + base + braces[1];
  }

  if (recurseTimes < 0) {
    if (isRegExp(value)) {
      return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
    } else {
      return ctx.stylize('[Object]', 'special');
    }
  }

  ctx.seen.push(value);
  var output;

  if (array) {
    output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);
  } else {
    output = keys.map(function (key) {
      return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);
    });
  }

  ctx.seen.pop();
  return reduceToSingleString(output, base, braces);
}

function formatPrimitive(ctx, value) {
  if (isUndefined(value)) return ctx.stylize('undefined', 'undefined');

  if (isString(value)) {
    var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '').replace(/'/g, "\\'").replace(/\\"/g, '"') + '\'';
    return ctx.stylize(simple, 'string');
  }

  if (isNumber(value)) return ctx.stylize('' + value, 'number');
  if (isBoolean(value)) return ctx.stylize('' + value, 'boolean'); // For some reason typeof null is "object", so special case here.

  if (isNull(value)) return ctx.stylize('null', 'null');
}

function formatError(value) {
  return '[' + Error.prototype.toString.call(value) + ']';
}

function formatArray(ctx, value, recurseTimes, visibleKeys, keys) {
  var output = [];

  for (var i = 0, l = value.length; i < l; ++i) {
    if (hasOwnProperty(value, String(i))) {
      output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, String(i), true));
    } else {
      output.push('');
    }
  }

  keys.forEach(function (key) {
    if (!key.match(/^\d+$/)) {
      output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, key, true));
    }
  });
  return output;
}

function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {
  var name, str, desc;
  desc = Object.getOwnPropertyDescriptor(value, key) || {
    value: value[key]
  };

  if (desc.get) {
    if (desc.set) {
      str = ctx.stylize('[Getter/Setter]', 'special');
    } else {
      str = ctx.stylize('[Getter]', 'special');
    }
  } else {
    if (desc.set) {
      str = ctx.stylize('[Setter]', 'special');
    }
  }

  if (!hasOwnProperty(visibleKeys, key)) {
    name = '[' + key + ']';
  }

  if (!str) {
    if (ctx.seen.indexOf(desc.value) < 0) {
      if (isNull(recurseTimes)) {
        str = formatValue(ctx, desc.value, null);
      } else {
        str = formatValue(ctx, desc.value, recurseTimes - 1);
      }

      if (str.indexOf('\n') > -1) {
        if (array) {
          str = str.split('\n').map(function (line) {
            return '  ' + line;
          }).join('\n').substr(2);
        } else {
          str = '\n' + str.split('\n').map(function (line) {
            return '   ' + line;
          }).join('\n');
        }
      }
    } else {
      str = ctx.stylize('[Circular]', 'special');
    }
  }

  if (isUndefined(name)) {
    if (array && key.match(/^\d+$/)) {
      return str;
    }

    name = JSON.stringify('' + key);

    if (name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)) {
      name = name.substr(1, name.length - 2);
      name = ctx.stylize(name, 'name');
    } else {
      name = name.replace(/'/g, "\\'").replace(/\\"/g, '"').replace(/(^"|"$)/g, "'");
      name = ctx.stylize(name, 'string');
    }
  }

  return name + ': ' + str;
}

function reduceToSingleString(output, base, braces) {
  var numLinesEst = 0;
  var length = output.reduce(function (prev, cur) {
    numLinesEst++;
    if (cur.indexOf('\n') >= 0) numLinesEst++;
    return prev + cur.replace(/\u001b\[\d\d?m/g, '').length + 1;
  }, 0);

  if (length > 60) {
    return braces[0] + (base === '' ? '' : base + '\n ') + ' ' + output.join(',\n  ') + ' ' + braces[1];
  }

  return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];
} // NOTE: These type checking functions intentionally don't use `instanceof`
// because it is fragile and can be easily faked with `Object.create()`.


function isArray(ar) {
  return Array.isArray(ar);
}

exports.isArray = isArray;

function isBoolean(arg) {
  return typeof arg === 'boolean';
}

exports.isBoolean = isBoolean;

function isNull(arg) {
  return arg === null;
}

exports.isNull = isNull;

function isNullOrUndefined(arg) {
  return arg == null;
}

exports.isNullOrUndefined = isNullOrUndefined;

function isNumber(arg) {
  return typeof arg === 'number';
}

exports.isNumber = isNumber;

function isString(arg) {
  return typeof arg === 'string';
}

exports.isString = isString;

function isSymbol(arg) {
  return typeof arg === 'symbol';
}

exports.isSymbol = isSymbol;

function isUndefined(arg) {
  return arg === void 0;
}

exports.isUndefined = isUndefined;

function isRegExp(re) {
  return isObject(re) && objectToString(re) === '[object RegExp]';
}

exports.isRegExp = isRegExp;

function isObject(arg) {
  return typeof arg === 'object' && arg !== null;
}

exports.isObject = isObject;

function isDate(d) {
  return isObject(d) && objectToString(d) === '[object Date]';
}

exports.isDate = isDate;

function isError(e) {
  return isObject(e) && (objectToString(e) === '[object Error]' || e instanceof Error);
}

exports.isError = isError;

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

exports.isFunction = isFunction;

function isPrimitive(arg) {
  return arg === null || typeof arg === 'boolean' || typeof arg === 'number' || typeof arg === 'string' || typeof arg === 'symbol' || // ES6 symbol
  typeof arg === 'undefined';
}

exports.isPrimitive = isPrimitive;
exports.isBuffer = __webpack_require__("1gqn");

function objectToString(o) {
  return Object.prototype.toString.call(o);
}

function pad(n) {
  return n < 10 ? '0' + n.toString(10) : n.toString(10);
}

var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; // 26 Feb 16:19:34

function timestamp() {
  var d = new Date();
  var time = [pad(d.getHours()), pad(d.getMinutes()), pad(d.getSeconds())].join(':');
  return [d.getDate(), months[d.getMonth()], time].join(' ');
} // log is just a thin wrapper to console.log that prepends a timestamp


exports.log = function () {
  console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));
};
/**
 * Inherit the prototype methods from one constructor into another.
 *
 * The Function.prototype.inherits from lang.js rewritten as a standalone
 * function (not on Function.prototype). NOTE: If this file is to be loaded
 * during bootstrapping this function needs to be rewritten using some native
 * functions as prototype setup using normal JavaScript does not work as
 * expected during bootstrapping (see mirror.js in r114903).
 *
 * @param {function} ctor Constructor function which needs to inherit the
 *     prototype.
 * @param {function} superCtor Constructor function to inherit prototype from.
 */


exports.inherits = __webpack_require__("P7XM");

exports._extend = function (origin, add) {
  // Don't do anything if add isn't an object
  if (!add || !isObject(add)) return origin;
  var keys = Object.keys(add);
  var i = keys.length;

  while (i--) {
    origin[keys[i]] = add[keys[i]];
  }

  return origin;
};

function hasOwnProperty(obj, prop) {
  return Object.prototype.hasOwnProperty.call(obj, prop);
}

var kCustomPromisifiedSymbol = typeof Symbol !== 'undefined' ? Symbol('util.promisify.custom') : undefined;

exports.promisify = function promisify(original) {
  if (typeof original !== 'function') throw new TypeError('The "original" argument must be of type Function');

  if (kCustomPromisifiedSymbol && original[kCustomPromisifiedSymbol]) {
    var fn = original[kCustomPromisifiedSymbol];

    if (typeof fn !== 'function') {
      throw new TypeError('The "util.promisify.custom" argument must be of type Function');
    }

    Object.defineProperty(fn, kCustomPromisifiedSymbol, {
      value: fn,
      enumerable: false,
      writable: false,
      configurable: true
    });
    return fn;
  }

  function fn() {
    var promiseResolve, promiseReject;
    var promise = new Promise(function (resolve, reject) {
      promiseResolve = resolve;
      promiseReject = reject;
    });
    var args = [];

    for (var i = 0; i < arguments.length; i++) {
      args.push(arguments[i]);
    }

    args.push(function (err, value) {
      if (err) {
        promiseReject(err);
      } else {
        promiseResolve(value);
      }
    });

    try {
      original.apply(this, args);
    } catch (err) {
      promiseReject(err);
    }

    return promise;
  }

  Object.setPrototypeOf(fn, Object.getPrototypeOf(original));
  if (kCustomPromisifiedSymbol) Object.defineProperty(fn, kCustomPromisifiedSymbol, {
    value: fn,
    enumerable: false,
    writable: false,
    configurable: true
  });
  return Object.defineProperties(fn, getOwnPropertyDescriptors(original));
};

exports.promisify.custom = kCustomPromisifiedSymbol;

function callbackifyOnRejected(reason, cb) {
  // `!reason` guard inspired by bluebird (Ref: https://goo.gl/t5IS6M).
  // Because `null` is a special error value in callbacks which means "no error
  // occurred", we error-wrap so the callback consumer can distinguish between
  // "the promise rejected with null" or "the promise fulfilled with undefined".
  if (!reason) {
    var newReason = new Error('Promise was rejected with a falsy value');
    newReason.reason = reason;
    reason = newReason;
  }

  return cb(reason);
}

function callbackify(original) {
  if (typeof original !== 'function') {
    throw new TypeError('The "original" argument must be of type Function');
  } // We DO NOT return the promise as it gives the user a false sense that
  // the promise is actually somehow related to the callback's execution
  // and that the callback throwing will reject the promise.


  function callbackified() {
    var args = [];

    for (var i = 0; i < arguments.length; i++) {
      args.push(arguments[i]);
    }

    var maybeCb = args.pop();

    if (typeof maybeCb !== 'function') {
      throw new TypeError('The last argument must be of type Function');
    }

    var self = this;

    var cb = function () {
      return maybeCb.apply(self, arguments);
    }; // In true node style we process the callback on `nextTick` with all the
    // implications (stack, `uncaughtException`, `async_hooks`)


    original.apply(this, args).then(function (ret) {
      process.nextTick(cb, null, ret);
    }, function (rej) {
      process.nextTick(callbackifyOnRejected, rej, cb);
    });
  }

  Object.setPrototypeOf(callbackified, Object.getPrototypeOf(original));
  Object.defineProperties(callbackified, getOwnPropertyDescriptors(original));
  return callbackified;
}

exports.callbackify = callbackify;
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("8oxB")))

/***/ }),

/***/ "MCSJ":
/***/ (function(module, exports) {

// fast apply, http://jsperf.lnkit.com/fast-apply/5
module.exports = function (fn, args, that) {
  var un = that === undefined;

  switch (args.length) {
    case 0:
      return un ? fn() : fn.call(that);

    case 1:
      return un ? fn(args[0]) : fn.call(that, args[0]);

    case 2:
      return un ? fn(args[0], args[1]) : fn.call(that, args[0], args[1]);

    case 3:
      return un ? fn(args[0], args[1], args[2]) : fn.call(that, args[0], args[1], args[2]);

    case 4:
      return un ? fn(args[0], args[1], args[2], args[3]) : fn.call(that, args[0], args[1], args[2], args[3]);
  }

  return fn.apply(that, args);
};

/***/ }),

/***/ "METY":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return getIntegrationsToSetup; });
/* unused harmony export installedIntegrations */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return setupIntegrations; });
/* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("9/Zf");
/* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("8LbN");
/* harmony import */ var _hub_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("GIgW");
/* harmony import */ var _scope_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("vOz9");



const installedIntegrations = [];
/** Map of integrations assigned to a client */

/**
 * Remove duplicates from the given array, preferring the last instance of any duplicate. Not guaranteed to
 * preseve the order of integrations in the array.
 *
 * @private
 */

function filterDuplicates(integrations) {
  const integrationsByName = {};
  integrations.forEach(currentInstance => {
    const {
      name
    } = currentInstance;
    const existingInstance = integrationsByName[name]; // We want integrations later in the array to overwrite earlier ones of the same type, except that we never want a
    // default instance to overwrite an existing user instance

    if (existingInstance && !existingInstance.isDefaultInstance && currentInstance.isDefaultInstance) {
      return;
    }

    integrationsByName[name] = currentInstance;
  });
  return Object.values(integrationsByName);
}
/** Gets integrations to install */


function getIntegrationsToSetup(options) {
  const defaultIntegrations = options.defaultIntegrations || [];
  const userIntegrations = options.integrations; // We flag default instances, so that later we can tell them apart from any user-created instances of the same class

  defaultIntegrations.forEach(integration => {
    integration.isDefaultInstance = true;
  });
  let integrations;

  if (Array.isArray(userIntegrations)) {
    integrations = [...defaultIntegrations, ...userIntegrations];
  } else if (typeof userIntegrations === 'function') {
    integrations = Object(_sentry_utils__WEBPACK_IMPORTED_MODULE_0__[/* arrayify */ "c"])(userIntegrations(defaultIntegrations));
  } else {
    integrations = defaultIntegrations;
  }

  const finalIntegrations = filterDuplicates(integrations); // The `Debug` integration prints copies of the `event` and `hint` which will be passed to `beforeSend`. It therefore
  // has to run after all other integrations, so that the changes of all event processors will be reflected in the
  // printed values. For lack of a more elegant way to guarantee that, we therefore locate it and, assuming it exists,
  // pop it out of its current spot and shove it onto the end of the array.

  const debugIndex = finalIntegrations.findIndex(integration => integration.name === 'Debug');

  if (debugIndex !== -1) {
    const [debugInstance] = finalIntegrations.splice(debugIndex, 1);
    finalIntegrations.push(debugInstance);
  }

  return finalIntegrations;
}
/**
 * Given a list of integration instances this installs them all. When `withDefaults` is set to `true` then all default
 * integrations are added unless they were already provided before.
 * @param integrations array of integration instances
 * @param withDefault should enable default integrations
 */


function setupIntegrations(integrations) {
  const integrationIndex = {};
  integrations.forEach(integration => {
    integrationIndex[integration.name] = integration;

    if (installedIntegrations.indexOf(integration.name) === -1) {
      integration.setupOnce(_scope_js__WEBPACK_IMPORTED_MODULE_3__[/* addGlobalEventProcessor */ "b"], _hub_js__WEBPACK_IMPORTED_MODULE_2__[/* getCurrentHub */ "b"]);
      installedIntegrations.push(integration.name);
      (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && _sentry_utils__WEBPACK_IMPORTED_MODULE_1__[/* logger */ "c"].log(`Integration installed: ${integration.name}`);
    }
  });
  return integrationIndex;
}



/***/ }),

/***/ "MGeu":
/***/ (function(module, exports, __webpack_require__) {

// extracted by mini-css-extract-plugin

/***/ }),

/***/ "MMmD":
/***/ (function(module, exports, __webpack_require__) {

var isFunction = __webpack_require__("lSCD"),
    isLength = __webpack_require__("shjB");
/**
 * Checks if `value` is array-like. A value is considered array-like if it's
 * not a function and has a `value.length` that's an integer greater than or
 * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is array-like, else `false`.
 * @example
 *
 * _.isArrayLike([1, 2, 3]);
 * // => true
 *
 * _.isArrayLike(document.body.children);
 * // => true
 *
 * _.isArrayLike('abc');
 * // => true
 *
 * _.isArrayLike(_.noop);
 * // => false
 */


function isArrayLike(value) {
  return value != null && isLength(value.length) && !isFunction(value);
}

module.exports = isArrayLike;

/***/ }),

/***/ "MPFp":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var LIBRARY = __webpack_require__("uOPS");

var $export = __webpack_require__("Y7ZC");

var redefine = __webpack_require__("kTiW");

var hide = __webpack_require__("NegM");

var Iterators = __webpack_require__("SBuE");

var $iterCreate = __webpack_require__("j2DC");

var setToStringTag = __webpack_require__("RfKB");

var getPrototypeOf = __webpack_require__("U+KD");

var ITERATOR = __webpack_require__("UWiX")('iterator');

var BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`

var FF_ITERATOR = '@@iterator';
var KEYS = 'keys';
var VALUES = 'values';

var returnThis = function () {
  return this;
};

module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {
  $iterCreate(Constructor, NAME, next);

  var getMethod = function (kind) {
    if (!BUGGY && kind in proto) return proto[kind];

    switch (kind) {
      case KEYS:
        return function keys() {
          return new Constructor(this, kind);
        };

      case VALUES:
        return function values() {
          return new Constructor(this, kind);
        };
    }

    return function entries() {
      return new Constructor(this, kind);
    };
  };

  var TAG = NAME + ' Iterator';
  var DEF_VALUES = DEFAULT == VALUES;
  var VALUES_BUG = false;
  var proto = Base.prototype;
  var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];
  var $default = $native || getMethod(DEFAULT);
  var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;
  var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;
  var methods, key, IteratorPrototype; // Fix native

  if ($anyNative) {
    IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));

    if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {
      // Set @@toStringTag to native iterators
      setToStringTag(IteratorPrototype, TAG, true); // fix for some old engines

      if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);
    }
  } // fix Array#{values, @@iterator}.name in V8 / FF


  if (DEF_VALUES && $native && $native.name !== VALUES) {
    VALUES_BUG = true;

    $default = function values() {
      return $native.call(this);
    };
  } // Define iterator


  if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {
    hide(proto, ITERATOR, $default);
  } // Plug for library


  Iterators[NAME] = $default;
  Iterators[TAG] = returnThis;

  if (DEFAULT) {
    methods = {
      values: DEF_VALUES ? $default : getMethod(VALUES),
      keys: IS_SET ? $default : getMethod(KEYS),
      entries: $entries
    };
    if (FORCED) for (key in methods) {
      if (!(key in proto)) redefine(proto, key, methods[key]);
    } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);
  }

  return methods;
};

/***/ }),

/***/ "MQ2T":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("path", {
  d: "M25.414 16.3l10.645 10.65a2 2 0 0 1 0 2.828l-.282.282a2.006 2.006 0 0 1-2.828 0L24 21.112l-8.95 8.948a2.006 2.006 0 0 1-2.828 0l-.282-.282a2 2 0 0 1 0-2.828L22.585 16.3a2 2 0 0 1 2.829 0z"
}));

/***/ }),

/***/ "MUkq":
/***/ (function(module, exports, __webpack_require__) {

module.exports = __webpack_require__.p + "assets/projects/CreateWorkspaceCC.png";

/***/ }),

/***/ "Md/b":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.invalidSvg = exports.validSvg = void 0;

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

const validSvg = /*#__PURE__*/_react.default.createElement("svg", {
  id: "valid_svg",
  height: "12",
  viewBox: "0 0 12 12",
  width: "36"
}, /*#__PURE__*/_react.default.createElement("path", {
  style: {
    fill: 'rgb(18, 128, 92)'
  },
  d: "M4.5 10a1.023 1.023 0 0 1-.8-.384l-2.488-3a1 1 0 0 1 1.577-1.233L4.5 7.376l4.712-5.991a1 1 0 1 1 1.576 1.23l-5.511 7A.977.977 0 0 1 4.5 10z"
}));

exports.validSvg = validSvg;

const invalidSvg = /*#__PURE__*/_react.default.createElement("svg", {
  id: "invalid_svg",
  height: "18",
  viewBox: "0 0 18 18",
  width: "42"
}, /*#__PURE__*/_react.default.createElement("path", {
  style: {
    fill: 'rgb(227, 72, 80)'
  },
  d: "M8.564 1.289L.2 16.256A.5.5 0 0 0 .636 17h16.728a.5.5 0 0 0 .5-.5.494.494 0 0 0-.064-.244L9.436 1.289a.5.5 0 0 0-.872 0zM10 14.75a.25.25 0 0 1-.25.25h-1.5a.25.25 0 0 1-.25-.25v-1.5a.25.25 0 0 1 .25-.25h1.5a.25.25 0 0 1 .25.25zm0-3a.25.25 0 0 1-.25.25h-1.5a.25.25 0 0 1-.25-.25v-6a.25.25 0 0 1 .25-.25h1.5a.25.25 0 0 1 .25.25z"
}));

exports.invalidSvg = invalidSvg;

/***/ }),

/***/ "MdaA":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// UNUSED EXPORTS: CloudStatusIconForTests

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__("q1tI");
var react_default = /*#__PURE__*/__webpack_require__.n(react);

// EXTERNAL MODULE: ./node_modules/react-intl-cdo/lib/index.es.js + 1 modules
var index_es = __webpack_require__("VIzJ");

// EXTERNAL MODULE: ./node_modules/mobx-react/index.module.js
var index_module = __webpack_require__("okNM");

// EXTERNAL MODULE: ./node_modules/classnames/index.js
var classnames = __webpack_require__("TSYQ");
var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/OverlayTrigger/index.js
var OverlayTrigger = __webpack_require__("uYrR");
var OverlayTrigger_default = /*#__PURE__*/__webpack_require__.n(OverlayTrigger);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Tooltip/index.js
var Tooltip = __webpack_require__("DUuf");
var Tooltip_default = /*#__PURE__*/__webpack_require__.n(Tooltip);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/utils/constants.ts
var constants = __webpack_require__("bXP0");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/svgs/CloudOnlyOnlineIcon.tsx


const DEFAULT_ICON_SIZE = 18;
const CloudOnlyIcon = ({ height = DEFAULT_ICON_SIZE, width = DEFAULT_ICON_SIZE, className = '', primaryColor = '#494949', // light: #f5f5f5;
secondaryColor = '#6e6e6e', tertiaryColor = '#fff', }) => (react_default.a.createElement("svg", { className: classnames_default()('CloudOnlyIcon', className), xmlns: "http://www.w3.org/2000/svg", width: height, height: width, viewBox: `0 0 ${height} ${width}` },
    react_default.a.createElement("circle", { className: "outline", fill: primaryColor, cx: "9", cy: "9", r: "8.95" }),
    react_default.a.createElement("path", { fill: secondaryColor, d: "M9,1.2A7.8,7.8,0,1,0,16.8,9,7.8,7.8,0,0,0,9,1.2Z" }),
    react_default.a.createElement("path", { fill: tertiaryColor, d: "M12.123,8.228a1.745,1.745,0,0,0-.2.012A2.3,2.3,0,1,0,7.482,7a2.326,2.326,0,0,0-.065.32A1.939,1.939,0,0,0,5.04,8.691a1.964,1.964,0,0,0,0,1.006,1.062,1.062,0,0,0-.186-.016,1.091,1.091,0,1,0,0,2.181l7.27,0a1.818,1.818,0,0,0,0-3.636Z" })));
/* harmony default export */ var CloudOnlyOnlineIcon = (CloudOnlyIcon);

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/svgs/AvailableOfflineIcon.tsx


const AvailableOfflineIcon_DEFAULT_ICON_SIZE = 18;
const AvailableOfflineIcon = ({ height = AvailableOfflineIcon_DEFAULT_ICON_SIZE, width = AvailableOfflineIcon_DEFAULT_ICON_SIZE, className = '', primaryColor = '#494949', // light: #f5f5f5;
secondaryColor = '#258e6c', tertiaryColor = '#fff', }) => (react_default.a.createElement("svg", { className: classnames_default()('AvailableOfflineIcon', className), xmlns: "http://www.w3.org/2000/svg", width: height, height: width, viewBox: `0 0 ${height} ${width}` },
    react_default.a.createElement("circle", { className: "outline", fill: primaryColor, cx: "9", cy: "9", r: "8.95" }),
    react_default.a.createElement("path", { fill: secondaryColor, d: "M9,1.2A7.8,7.8,0,1,0,16.8,9,7.8,7.8,0,0,0,9,1.2Z" }),
    react_default.a.createElement("path", { fill: tertiaryColor, d: "M7.62,13.183,4.154,9.764a.5.5,0,0,1,0-.707l.7-.712a.5.5,0,0,1,.707-.005l2.268,2.237,4.231-5.421a.5.5,0,0,1,.7-.087l.788.616a.5.5,0,0,1,.087.7L8.366,13.135A.5.5,0,0,1,7.62,13.183Z" })));
/* harmony default export */ var svgs_AvailableOfflineIcon = (AvailableOfflineIcon);

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/svgs/AlertIcon.tsx
/*************************************************************************
 *   ADOBE CONFIDENTIAL
 *
 *   Copyright 2022 Adobe
 *   All Rights Reserved.
 *
 *   NOTICE:  All information contained herein is, and remains
 *   the property of Adobe and its suppliers, if any. The intellectual
 *   and technical concepts contained herein are proprietary to Adobe
 *   and its suppliers and are protected by all applicable intellectual
 *   property laws, including trade secret and copyright laws.
 *   Dissemination of this information or reproduction of this material
 *   is strictly forbidden unless prior written permission is obtained
 *   from Adobe.
 **************************************************************************/


const AlertIcon_DEFAULT_ICON_SIZE = 18;
const AlertIcon = ({ height = AlertIcon_DEFAULT_ICON_SIZE, width = AlertIcon_DEFAULT_ICON_SIZE, className = '', primaryColor = '#494949', // light: #f5f5f5;
secondaryColor = '#ca7028', tertiaryColor = '#fff', }) => (react_default.a.createElement("svg", { className: classnames_default()('AlertIcon', className), xmlns: "http://www.w3.org/2000/svg", width: height, height: width, viewBox: `0 0 ${height} ${width}` },
    react_default.a.createElement("circle", { className: "outline", fill: primaryColor, cx: "9", cy: "9", r: "8.95" }),
    react_default.a.createElement("path", { fill: secondaryColor, d: "M9,1.2A7.8,7.8,0,1,0,16.8,9,7.8,7.8,0,0,0,9,1.2Z" }),
    react_default.a.createElement("path", { fill: tertiaryColor, d: "M7.851,3.646a.242.242,0,0,1,.114-.24,3.042,3.042,0,0,1,1.049-.212,3.311,3.311,0,0,1,1.061.16.272.272,0,0,1,.136.241v1.22c0,1.439-.287,5.413-.34,5.936,0,.1-.063.157-.18.157H8.336a.171.171,0,0,1-.178-.149c-.049-.663-.307-4.52-.307-5.893Z" }),
    react_default.a.createElement("path", { fill: tertiaryColor, d: "M9.014,14.772a1.175,1.175,0,0,1-1.281-1.2,1.214,1.214,0,0,1,1.281-1.23,1.2,1.2,0,0,1,1.281,1.23A1.163,1.163,0,0,1,9.014,14.772Z" })));
/* harmony default export */ var svgs_AlertIcon = (AlertIcon);

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/svgs/SyncIcon.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
// tslint:disable:max-line-length


const SyncIcon_DEFAULT_ICON_SIZE = 18;
const SyncIcon = ({ height = SyncIcon_DEFAULT_ICON_SIZE, width = SyncIcon_DEFAULT_ICON_SIZE, className = '', primaryColor = '#494949', // light: #f5f5f5;
secondaryColor = '#7c7c7c', tertiaryColor = '#fff', }) => (react_default.a.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", className: classnames_default()('SyncIcon', className), width: width, height: height, viewBox: `0 0 ${width} ${height}` },
    react_default.a.createElement("circle", { className: "outline", fill: primaryColor, cx: "9", cy: "9", r: "8.95" }),
    react_default.a.createElement("path", { fill: secondaryColor, d: "M9,1.2A7.8,7.8,0,1,0,16.8,9,7.8,7.8,0,0,0,9,1.2Z" }),
    react_default.a.createElement("path", { fill: tertiaryColor, d: "M14.158,5a.21.21,0,0,0-.147-.061.2.2,0,0,0-.143.06l-.9.9A5.1,5.1,0,0,0,3.921,7.937a.207.207,0,0,0,.2.243l.883,0a.2.2,0,0,0,.2-.155,3.822,3.822,0,0,1,6.846-1.2L11,7.867a.2.2,0,0,0-.06.143A.208.208,0,0,0,11,8.157a.2.2,0,0,0,.126.058h2.882a.2.2,0,0,0,.2-.2V5.129A.2.2,0,0,0,14.158,5Z" }),
    react_default.a.createElement("path", { fill: tertiaryColor, d: "M3.839,13a.21.21,0,0,0,.147.061A.2.2,0,0,0,4.13,13l.9-.9a5.1,5.1,0,0,0,9.047-2.035.207.207,0,0,0-.2-.243l-.882,0a.2.2,0,0,0-.2.155,3.822,3.822,0,0,1-6.846,1.205l1.045-1.045a.2.2,0,0,0,.06-.143.208.208,0,0,0-.061-.147.2.2,0,0,0-.125-.058H3.986a.2.2,0,0,0-.205.2v2.882A.2.2,0,0,0,3.839,13Z" })));
const OfflineSyncIcon = () => react_default.a.createElement(SyncIcon, { className: "OfflineSyncIcon" });
const OnlineSyncIcon = () => react_default.a.createElement(SyncIcon, { className: "OnlineSyncIcon", secondaryColor: "#1473e6" });


// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/styles/CloudStatusIcon.css
var styles_CloudStatusIcon = __webpack_require__("IWwh");
var CloudStatusIcon_default = /*#__PURE__*/__webpack_require__.n(styles_CloudStatusIcon);

// EXTERNAL MODULE: ./node_modules/@ccx-public/shared-asset-model-js/dist/mjs/src/index.js
var src = __webpack_require__("m4Z2");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/CloudStatusIcon.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
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;
};













let CloudStatusIcon_CloudStatusIcon = class CloudStatusIcon extends react["Component"] {
    render() {
        const { className, element, intl, isOffline } = this.props;
        let icon;
        let tooltip;
        // See CCPROJ-7368
        if (element.isProject || element.isLibrary || element.isFolder) {
            return null;
        }
        else if (element.isCanvas || element.isArtifact || element.isWeblink) {
            icon = react["createElement"](CloudOnlyOnlineIcon, null);
            tooltip = react["createElement"](Tooltip_default.a, null, intl.formatMessage({ id: 'statusIcon.onlineOnly' }));
        }
        else if (element.syncStatus === src["f" /* AssetSyncStatus */].Syncing) {
            const tooltipId = isOffline ? 'statusIcon.waitingToSync' : 'statusIcon.syncing';
            icon = isOffline ? react["createElement"](OfflineSyncIcon, null) : react["createElement"](OnlineSyncIcon, null);
            tooltip = react["createElement"](Tooltip_default.a, null, intl.formatMessage({ id: tooltipId }));
        }
        else if (element.syncStatus === src["f" /* AssetSyncStatus */].SyncConflict) {
            icon = react["createElement"](svgs_AlertIcon, { className: classnames_default()(CloudStatusIcon_default.a.tooltip, CloudStatusIcon_default.a.error) });
            tooltip = (react["createElement"](Tooltip_default.a, { variant: "error" }, intl.formatMessage({ id: 'statusIcon.conflicted' })));
        }
        else if (element.isAvailableOffline) {
            icon = react["createElement"](svgs_AvailableOfflineIcon, null);
            tooltip = (react["createElement"](Tooltip_default.a, null, intl.formatMessage({ id: 'statusIcon.availableOffline' })));
        }
        else {
            // !element.isAvailableOffline
            icon = react["createElement"](CloudOnlyOnlineIcon, null);
            tooltip = react["createElement"](Tooltip_default.a, null, intl.formatMessage({ id: 'statusIcon.onlineOnly' }));
        }
        return (react["createElement"](OverlayTrigger_default.a, { placement: "left", trigger: ['hover'], disabled: !tooltip, delayShow: constants["c" /* DEFAULT_TOOLTIP_DELAY */] },
            react["createElement"]("div", { className: className && CloudStatusIcon_default.a[className] }, icon),
            tooltip));
    }
};
CloudStatusIcon_CloudStatusIcon = __decorate([
    index_module["e" /* observer */]
], CloudStatusIcon_CloudStatusIcon);
/* harmony default export */ var CDOView_CloudStatusIcon = __webpack_exports__["a"] = (Object(index_es["g" /* injectIntl */])(CloudStatusIcon_CloudStatusIcon));



/***/ }),

/***/ "Mfc/":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _autobindDecorator = _interopRequireDefault(__webpack_require__("gKdT"));

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _CrossMedium = _interopRequireDefault(__webpack_require__("5/fI"));

var _filterDOMProps = _interopRequireDefault(__webpack_require__("Cv/Q"));

var _react = _interopRequireWildcard(__webpack_require__("q1tI"));

var _setOverlayOnProvider = _interopRequireDefault(__webpack_require__("l0xv"));

var _Toast = _interopRequireWildcard(__webpack_require__("35Lt"));

__webpack_require__("W5/T");

const _excluded = ["variant", "children", "closable", "onClose", "onAction", "className", "actionLabel", "closeOnAction", "icon"];

var _class;

function _getRequireWildcardCache(nodeInterop) {
  if (typeof WeakMap !== "function") return null;
  var cacheBabelInterop = new WeakMap();
  var cacheNodeInterop = new WeakMap();
  return (_getRequireWildcardCache = function (nodeInterop) {
    return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
  })(nodeInterop);
}

function _interopRequireWildcard(obj, nodeInterop) {
  if (!nodeInterop && obj && obj.__esModule) {
    return obj;
  }

  if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
    return {
      default: obj
    };
  }

  var cache = _getRequireWildcardCache(nodeInterop);

  if (cache && cache.has(obj)) {
    return cache.get(obj);
  }

  var newObj = {};
  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;

  for (var key in obj) {
    if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
      var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;

      if (desc && (desc.get || desc.set)) {
        Object.defineProperty(newObj, key, desc);
      } else {
        newObj[key] = obj[key];
      }
    }
  }

  newObj.default = obj;

  if (cache) {
    cache.set(obj, newObj);
  }

  return newObj;
}

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

let UxpToast = (0, _autobindDecorator.default)(_class = class UxpToast extends _react.Component {
  constructor(props) {
    super(props);

    this.toastHandler = () => {
      (0, _setOverlayOnProvider.default)(this.toastRef, true);
    };
  }

  componentDidMount() {
    if (this.toastRef) {
      window.addEventListener('resize', this.toastHandler);
    }
  }

  componentWillUnmount() {
    (0, _setOverlayOnProvider.default)(this.toastRef, false);
    window.removeEventListener('resize', this.toastHandler);
  }

  handleKeyDown(event) {
    // keyDown is fired by Space key (Space keycode is equivalent to 32)
    if (event.keyCode === 32) {
      document.getElementById('closeButton').className = (0, _classnames.default)(' spectrum-ClearButton spectrum-ClearButton--medium spectrum-ClearButton--overBackground spectrum-ClearButton-Override spectrum-ClearButton--overBackground-active spectrum-ClearButton--overBackground-active-Override');
    }
  }

  handleKeyUp(event) {
    // keyUp is fired by Space key
    if (event.keyCode === 32) {
      document.getElementById('closeButton').className = (0, _classnames.default)(' spectrum-ClearButton spectrum-ClearButton--medium spectrum-ClearButton--overBackground spectrum-ClearButton-Override spectrum-ClearButton--overBackground-focus-ring spectrum-ClearButton--overBackground-focus-ring-Override');

      if (this.props.onClose) {
        this.props.onClose.call();
      }
    }
  }

  handleOnBlur(event) {
    document.getElementById('closeButton').className = (0, _classnames.default)(' spectrum-ClearButton spectrum-ClearButton--medium spectrum-ClearButton--overBackground spectrum-ClearButton-Override');
  }

  render() {
    const _this$props = this.props,
          {
      variant,
      children,
      closable,
      onClose,
      onAction,
      className,
      actionLabel,
      closeOnAction,
      icon
    } = _this$props,
          otherProps = _objectWithoutProperties(_this$props, _excluded);

    let Icon = icon || _Toast.ICONS[variant];
    let role = otherProps.role || _Toast.DEFAULT_ROLE;

    const handleAction = (...args) => {
      if (onAction) {
        onAction(...args);
      }

      if (closeOnAction && onClose) {
        onClose(...args);
      }
    };

    return /*#__PURE__*/_react.default.createElement("div", _extends({
      ref: r => this.toastRef = r,
      role: role,
      className: (0, _classnames.default)('spectrum-Toast', {
        ['spectrum-Toast--' + variant]: variant
      }, className)
    }, (0, _filterDOMProps.default)(otherProps)), Icon && /*#__PURE__*/_react.default.createElement(Icon, {
      size: null,
      className: "spectrum-Toast-typeIcon",
      alt: (0, _Toast.formatMessage)(variant)
    }), /*#__PURE__*/_react.default.createElement("div", {
      className: "spectrum-Toast-body"
    }, /*#__PURE__*/_react.default.createElement("div", {
      className: "spectrum-Toast-content"
    }, children), actionLabel && /*#__PURE__*/_react.default.createElement("div", {
      tabIndex: "0",
      role: "button",
      className: (0, _classnames.default)('spectrum-Button spectrum-Button--quiet spectrum-Button--overBackground', 'uxp-labelStyle'),
      onClick: handleAction
    }, actionLabel)), closable && /*#__PURE__*/_react.default.createElement("div", {
      className: "spectrum-Toast-buttons"
    }, /*#__PURE__*/_react.default.createElement("div", {
      id: "closeButton",
      tabIndex: "0",
      role: "button",
      onBlur: this.handleOnBlur,
      onKeyDown: this.handleKeyDown,
      onKeyUp: this.handleKeyUp,
      className: (0, _classnames.default)('spectrum-ClearButton spectrum-ClearButton--medium spectrum-ClearButton--overBackground', 'spectrum-ClearButton-Override'),
      onClick: onClose
    }, /*#__PURE__*/_react.default.createElement(_CrossMedium.default, {
      size: null
    }))));
  }

}) || _class;

exports.default = UxpToast;
UxpToast.propTypes = _Toast.default.propTypes;

/***/ }),

/***/ "MgzW":
/***/ (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;
};

/***/ }),

/***/ "Ml4l":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _List = __webpack_require__("5r/s");

var _Menu = _interopRequireDefault(__webpack_require__("NeVj"));

var _Popover = _interopRequireDefault(__webpack_require__("pyUw"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

const _excluded = ["children", "className", "closeOnSelect", "open", "onClose", "onSelect", "onUxpSelect", "placement", "role", "style", "trapFocus"];

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function ownKeys(object, enumerableOnly) {
  var keys = Object.keys(object);

  if (Object.getOwnPropertySymbols) {
    var symbols = Object.getOwnPropertySymbols(object);

    if (enumerableOnly) {
      symbols = symbols.filter(function (sym) {
        return Object.getOwnPropertyDescriptor(object, sym).enumerable;
      });
    }

    keys.push.apply(keys, symbols);
  }

  return keys;
}

function _objectSpread(target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i] != null ? arguments[i] : {};

    if (i % 2) {
      ownKeys(Object(source), true).forEach(function (key) {
        _defineProperty(target, key, source[key]);
      });
    } else if (Object.getOwnPropertyDescriptors) {
      Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
    } else {
      ownKeys(Object(source)).forEach(function (key) {
        Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
      });
    }
  }

  return target;
}

function _defineProperty(obj, key, value) {
  if (key in obj) {
    Object.defineProperty(obj, key, {
      value: value,
      enumerable: true,
      configurable: true,
      writable: true
    });
  } else {
    obj[key] = value;
  }

  return obj;
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

class UxpMenu extends _Menu.default {
  render() {
    const _this$props = this.props,
          {
      children,
      className,
      closeOnSelect,
      open,
      onClose,
      onSelect,
      onUxpSelect,
      placement,
      role = 'menu',
      style,
      trapFocus
    } = _this$props,
          otherProps = _objectWithoutProperties(_this$props, _excluded);

    delete otherProps.target;
    delete otherProps.onClick;
    delete otherProps.autoComplete;
    delete otherProps.boundariesElement;
    return /*#__PURE__*/_react.default.createElement(_Popover.default, {
      isDialog: false,
      ref: l => this.popoverRef = l,
      placement: placement,
      open: open,
      onClose: onClose,
      style: _objectSpread(_objectSpread({}, style), {}, {
        overflowY: 'auto'
      }),
      trapFocus: trapFocus
    }, /*#__PURE__*/_react.default.createElement(_List.List, _extends({
      defaultpreventedkeys: ['Escape'],
      ref: l => this.listRef = l,
      role: role,
      className: className,
      onClick: this.onClick
    }, otherProps), _react.default.Children.map(children, child => /*#__PURE__*/_react.default.cloneElement(child, {
      onTab: e => e.stopPropagation(),
      defaultpreventedkeys: ['Tab'],
      onSelect,
      onUxpSelect,
      closeOnSelect
    }))));
  }

}

exports.default = UxpMenu;

/***/ }),

/***/ "MlVH":
/***/ (function(module, exports, __webpack_require__) {

module.exports = __webpack_require__.p + "assets/projects/xd_icon.png";

/***/ }),

/***/ "Mqbl":
/***/ (function(module, exports, __webpack_require__) {

// 19.1.2.14 Object.keys(O)
var toObject = __webpack_require__("JB68");

var $keys = __webpack_require__("w6GO");

__webpack_require__("zn7N")('keys', function () {
  return function keys(it) {
    return $keys(toObject(it));
  };
});

/***/ }),

/***/ "Mqyo":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXPORTS
__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ JumpKey; });
__webpack_require__.d(__webpack_exports__, "b", function() { return /* binding */ JumpTargets; });
__webpack_require__.d(__webpack_exports__, "d", function() { return /* binding */ jumpKeyForAdobeAccount; });

// UNUSED EXPORTS: IMS

// EXTERNAL MODULE: ./src/js/start/stores/MainStore.tsx + 3 modules
var MainStore = __webpack_require__("cCFZ");

// CONCATENATED MODULE: ./src/js/iaw/polyfill.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
/**
 * Polyfills for browser's JS functionality that should be contributed
 * back to the UXP platform.
 */
class Polyfill {
    /**
     * Converts base64 encoded string to ASCII.
     * Polyfill for browser's btoa and atob
     *
     * Original: https://github.com/inexorabletash/polyfill/blob/master/web.js#L60
     *
     * @param input Base64 String
     */
    atob(input) {
        const B64_ALPHABET = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
        let position = 0, output = [], buffer = 0, bits = 0, n;
        input = input.replace(/\s/g, '');
        if (input.length % 4 === 0) {
            input = input.replace(/=+$/, '');
        }
        if (input.length % 4 === 1) {
            throw Error('InvalidCharacterError');
        }
        if (/[^+/0-9A-Za-z]/.test(input)) {
            throw Error('InvalidCharacterError');
        }
        while (position < input.length) {
            n = B64_ALPHABET.indexOf(input.charAt(position));
            buffer = (buffer << 6) | n;
            bits += 6;
            if (bits === 24) {
                output.push(String.fromCharCode((buffer >> 16) & 0xff));
                output.push(String.fromCharCode((buffer >> 8) & 0xff));
                output.push(String.fromCharCode(buffer & 0xff));
                bits = 0;
                buffer = 0;
            }
            position += 1;
        }
        if (bits === 12) {
            buffer = buffer >> 4;
            output.push(String.fromCharCode(buffer & 0xff));
        }
        else if (bits === 18) {
            buffer = buffer >> 2;
            output.push(String.fromCharCode((buffer >> 8) & 0xff));
            output.push(String.fromCharCode(buffer & 0xff));
        }
        return output.join('');
    }
    btoa(input) {
        const B64_ALPHABET = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
        let position = 0, out = [], o1, o2, o3, e1, e2, e3, e4;
        if (/[^\x00-\xFF]/.test(input)) {
            throw Error('InvalidCharacterError');
        }
        while (position < input.length) {
            o1 = input.charCodeAt(position++);
            o2 = input.charCodeAt(position++);
            o3 = input.charCodeAt(position++);
            // 111111 112222 222233 333333
            e1 = o1 >> 2;
            e2 = ((o1 & 0x3) << 4) | (o2 >> 4);
            e3 = ((o2 & 0xf) << 2) | (o3 >> 6);
            e4 = o3 & 0x3f;
            if (position === input.length + 2) {
                e3 = 64;
                e4 = 64;
            }
            else if (position === input.length + 1) {
                e4 = 64;
            }
            out.push(B64_ALPHABET.charAt(e1), B64_ALPHABET.charAt(e2), B64_ALPHABET.charAt(e3), B64_ALPHABET.charAt(e4));
        }
        return out.join('');
    }
}
const polyfill = new Polyfill();
/* harmony default export */ var iaw_polyfill = (polyfill);

// EXTERNAL MODULE: ./node_modules/mobx/lib/mobx.module.js
var mobx_module = __webpack_require__("2vnA");

// EXTERNAL MODULE: ./src/js/iaw/jsUtil.tsx
var jsUtil = __webpack_require__("KTUt");

// EXTERNAL MODULE: ./src/js/iaw/platform.tsx
var platform = __webpack_require__("lKWN");

// EXTERNAL MODULE: ./src/components-start/performance.tsx
var performance = __webpack_require__("r1jx");

// EXTERNAL MODULE: ./src/js/start/StartIngestUtil.tsx
var StartIngestUtil = __webpack_require__("Db/q");

// EXTERNAL MODULE: ./src/js/start/CommonUtils.tsx
var CommonUtils = __webpack_require__("5ndN");

// EXTERNAL MODULE: ./src/js/iaw/analytics.tsx
var analytics = __webpack_require__("RGcl");

// EXTERNAL MODULE: ./src/LoggerWrapper/Logger.tsx
var Logger = __webpack_require__("43WE");

// EXTERNAL MODULE: ./src/js/iaw/fetchAvatarUtil.tsx
var fetchAvatarUtil = __webpack_require__("LV4P");

// EXTERNAL MODULE: ./src/components/helpers/DisposerManager.ts
var DisposerManager = __webpack_require__("JdbT");

// EXTERNAL MODULE: ./src/js/iaw/HomescreenError.ts
var HomescreenError = __webpack_require__("LDAD");

// EXTERNAL MODULE: ./src/applications/index.tsx + 7 modules
var applications = __webpack_require__("3UBC");

// CONCATENATED MODULE: ./src/js/iaw/imsBridge.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
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;
};
var __metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};














const EXPIRY_BUFFER = 10000; // Consider 10s buffer so that we do not accidentally send expired tokens.
const THROTTLING_MIN_THRESHOLD = 10000; // 10s
const THROTTLING_MAX_THRESHOLD = 60 * 1000; // 1 minute
/**
 * Property key constants
 */
const PROPERTY_KEYS = StartIngestUtil["c" /* default */].KEYS;
var JumpKey;
(function (JumpKey) {
    JumpKey["ADOBESTOCK"] = "ADOBESTOCK";
    JumpKey["ADOBELEARN"] = "ADOBELEARN";
    JumpKey["ADOBEACCOUNT"] = "ADOBEACCOUNT";
    JumpKey["ADOBEACCOUNT_XD"] = "ADOBEACCOUNT_XD";
})(JumpKey || (JumpKey = {}));
const JumpTargets = {
    ADOBESTOCK: {
        url: ['stock.adobe.com'],
        clientID: 'AdobeStockClient2',
        clientScope: 'AdobeID,openid,creative_cloud,creative_sdk,cc_private,gnav,sao.stock,additional_info.address.mail_to,additional_info.dob,read_organizations,read_pc.stock,read_pc.stock_credits,additional_info.roles,sao.cce_private,account_cluster.read',
    },
    ADOBELEARN: {
        url: ['helpx.adobe.com', 'helpx.stage.adobe.com'],
        clientID: 'AdobeSupport1',
        clientScope: 'creative_cloud,AdobeID,openid,gnav,read_organizations,additional_info.projectedProductContext',
    },
    ADOBEACCOUNT: {
        url: ['adobe.com', 'www.adobe.com', , 'www.stage.adobe.com'],
        clientID: 'SunbreakWebUI1',
        clientScope: 'AdobeID,openid',
    },
    ADOBEACCOUNT_XD: {
        url: ['adobe.com', 'www.adobe.com', , 'www.stage.adobe.com'],
        clientID: 'adobedotcom2',
        clientScope: 'creative_cloud,AdobeID,openid,gnav,read_organizations,additional_info.projectedProductContext',
    },
};
function jumpKeyForAdobeAccount() {
    return platform["a" /* default */].isXD ? JumpKey.ADOBEACCOUNT_XD : JumpKey.ADOBEACCOUNT;
}
/**
 * Wrapper over the platform's IMS APIs
 * Provides utility methods to talk to IMS.
 * Updates the UserStore
 */
class imsBridge_IMS {
    constructor() {
        this._logger = Logger["a" /* default */].get('IMS');
        this.shouldDoLateLoad = false;
        this._disposerManager = new DisposerManager["a" /* default */]();
        this.throttleRequestUpdateAccessToken = callback => {
            let lastCall;
            let numberOfRequests = 0;
            const throttleWorkflow = async (computedTimeout, proposedTimeout, enableThrottling) => {
                await callback.call(this, proposedTimeout <= 0, enableThrottling && computedTimeout);
                numberOfRequests++;
            };
            const _getThrottleTime = numberOfRequests => {
                let time = 0;
                if (numberOfRequests < 5) {
                    time = 10; // 10s
                }
                else if (numberOfRequests < 10) {
                    time = 20; //  20s
                }
                else if (numberOfRequests < 15) {
                    time = 30; //  30s
                }
                return time * 1000 || THROTTLING_MAX_THRESHOLD;
            };
            return function (proposedTimeout) {
                let computedTimeout = _getThrottleTime(numberOfRequests);
                lastCall && clearTimeout(lastCall);
                const enableThrottling = proposedTimeout < THROTTLING_MIN_THRESHOLD;
                if (!enableThrottling) {
                    numberOfRequests = 0;
                    computedTimeout = proposedTimeout;
                }
                lastCall = setTimeout(async function () {
                    await throttleWorkflow(computedTimeout, proposedTimeout, enableThrottling);
                }, computedTimeout);
            };
        };
        this.lastAccessTokenTime = 0;
    }
    /**
     * Initializes the IMS/NGL connectivity
     * On browser connects to SSO with adobe.com
     * In UXP connects to NGL APIs
     */
    async init(doLateLoad = false) {
        this.shouldDoLateLoad = doLateLoad;
        if (!CommonUtils["a" /* UXPHelpers */].isUXP) {
            MainStore["mainStore"].user.setUserProfile({
                UserProfile: {
                    accountType: 'accountType',
                    countryCode: 'countryCode',
                    displayName: 'displayName',
                    firstName: 'firstName',
                    lastName: 'lastName',
                    userId: 'userId',
                    userEmail: 'userEmail',
                },
            });
            return;
        }
        this._throttledRequestUpdateAccessToken = this.throttleRequestUpdateAccessToken(this.updateAccessToken);
        this.profile = window.require('uxp').licensing;
        this.profile.addEventListener('profilechanged', async () => {
            this._logger.log('User Profile changed');
            await this.updateUserProfile();
            // Update access token if it is not present.
            if (!MainStore["mainStore"].user.accessToken) {
                await this.updateAccessToken();
            }
            // if the user logged through the app the initial avatar fetch will not be able to fetch the avatar
            // when the profile changes check if the avatar is set and if not attempt to fetch it
            if (!MainStore["mainStore"].user.avatar) {
                Object(fetchAvatarUtil["a" /* fetchAvatar */])();
            }
        });
        await Promise.all([this.updateUserProfile(), this.updateStaging()]);
        if (!this.shouldDoLateLoad) {
            // Access token depends on stage and prod. Can be done in parallel to profile fetch.as well as profile.
            await this.updateAccessToken();
            const updateAccessTokenBound = this.updateAccessToken.bind(this);
            this._disposerManager.register(Object(mobx_module["A" /* observe */])(MainStore["mainStore"].user.UserProfile, 'userId', () => {
                updateAccessTokenBound();
            }), 'userIdObserve');
            this._disposerManager.register(Object(mobx_module["A" /* observe */])(MainStore["mainStore"], 'online', () => {
                if (MainStore["mainStore"].online &&
                    (!MainStore["mainStore"].user.accessToken || this.calculateAccessTokenExpiry(MainStore["mainStore"].user.accessToken) <= 0)) {
                    this.updateAccessToken();
                }
            }), 'onlineObserve');
        }
    }
    /**
     * Initialize the observables that can be delayed
     * and do not impact the initial rendering of start.
     */
    async lateLoad() {
        if (this.shouldDoLateLoad) {
            await this.updateAccessToken();
            const updateAccessTokenBound = this.updateAccessToken.bind(this);
            this._disposerManager.register(Object(mobx_module["A" /* observe */])(MainStore["mainStore"].user.UserProfile, 'userId', () => {
                updateAccessTokenBound();
            }), 'userIdObserve');
        }
    }
    /**
     * Gets the current active client ID.
     */
    get clientId() {
        return this.config.clientId;
    }
    /**
     * Updates the user profile based on the supplied or
     * fetched NGL profile
     *
     * @param userProfile NGL Profile of the user
     */
    async updateUserProfile() {
        // Timeout after 10s if NGL still fails to return an user, render fallback instead
        Object(performance["a" /* LogPerformance */])(`Fetching NGL Profile. Awaiting Response.`);
        const start = new Date();
        const nglResponse = await Promise.race([Object(CommonUtils["i" /* timeout */])(10000), this.profile.fetchProfile()]);
        // if NGL response times out, Fallback content should be displayed
        // which needs initialized to be set on true when checking it
        // For XD - we dont want to set the initialised to true at this stage
        // Doing so - processes the Home screen rendering in FRL simulation
        if (!platform["a" /* default */].isXD && !nglResponse) {
            MainStore["mainStore"].user.setInitialized(true);
        }
        let userProfile;
        try {
            userProfile = JSON.parse(nglResponse);
            this._logger.info('Received NGL profile', JSON.stringify(userProfile, (key, value) => {
                // Omit enigmaData per IAW 7594
                if (key === 'enigmaData') {
                    return undefined;
                }
                if (key === 'UserProfile') {
                    return {
                        accountType: value.accountType,
                        countryCode: value.countryCode,
                        userId: value.userId,
                    };
                }
                return value;
            }, 2));
            Object(performance["a" /* LogPerformance */])(`Received NGL Profile.`, start.toISOString());
        }
        catch (error) {
            this._logger.error('Failed to parse NGL user profile');
            /* IAW-8570: Without the NGL profile, neither of these events will fire to ingest. */
            const errorMsg = !nglResponse ? 'NGL response timed out' : 'Failed to parse NGL user profile';
            const homeScreenError = Object(HomescreenError["e" /* getHomescreenErrorInstance */])(error, errorMsg, 'ngl-failure', !nglResponse
                ? HomescreenError["b" /* HomescreenErrorCodes */].NGL_RESPONSE_TIMEDOUT
                : HomescreenError["b" /* HomescreenErrorCodes */].NGL_PROFILE_PARSING_FAILED);
            analytics["a" /* default */].logErrorEvent('ngl-timeout', {
                subtype: 'ngl-failure',
                error: homeScreenError,
            });
            MainStore["mainStore"].setShouldUseDefaultLayoutInFallbackMode(true, errorMsg, {
                workflow: PROPERTY_KEYS.WORKFLOW_DEFAULT,
                type: PROPERTY_KEYS.EVENT_TYPE_ERROR,
                subcategory: PROPERTY_KEYS.SUBCATEGORY_NGL,
                subtype: 'No NGL Response',
                error: homeScreenError,
            }, true);
            MainStore["mainStore"].setLoading(false);
            // Home screen can be intaracted with the fallback layout, Notify host about the same.
            if (applications["a" /* default */].reportInteractiveReadyOnFallback) {
                applications["a" /* default */].reportInteractiveReady();
            }
            return;
        }
        MainStore["mainStore"].user.setUserProfile(userProfile);
    }
    /**
     * Updates the access token in the user store
     * @param isTokenExpired
     * @param throttlingTimeout Timeout with which the request was throttled. Will be logged for debugging in Ingest
     */
    async updateAccessToken(isTokenExpired = false, throttlingTimeout) {
        if (!CommonUtils["a" /* UXPHelpers */].isUXP) {
            this.setAccessToken(window.adobeIMS ? window.adobeIMS.getAccessToken() : '');
            return;
        }
        if (!MainStore["mainStore"].online) {
            return;
        }
        // On the first ever(Cold) NGL launch, a dummy profile is returned and we do not have
        // an access token.
        await Object(mobx_module["I" /* when */])(() => MainStore["mainStore"].user.isUserAvailable || MainStore["mainStore"].user.isFRL);
        if (MainStore["mainStore"].user.isFRL) {
            this._logger.log('FRL user. No access token present');
            return;
        }
        let error = 'Unknown Error';
        const token = await Promise.race([
            Object(CommonUtils["i" /* timeout */])(4000).then(() => {
                error = 'IMS timed out (4s)';
            }),
            this.profile.getAccessToken({ ...this.config, forceRefresh: isTokenExpired }).catch(e => {
                error = e;
            }),
        ]);
        if (token) {
            this.setAccessToken(token, throttlingTimeout);
        }
        else {
            this._logger.error('Error fetching IMS Access token:', error);
            const homeScreenError = new HomescreenError["a" /* HomescreenError */](`imsBridge :: updateAccessToken - Error fetching IMS token token: ${error}`, 'IMS', HomescreenError["b" /* HomescreenErrorCodes */].INIT_IMS_UPDATE_ACCESS_TOKEN_FAILED);
            analytics["a" /* default */].logErrorEvent('initialize', { error: homeScreenError });
        }
    }
    async getJumpUrl(key, url) {
        if (CommonUtils["a" /* UXPHelpers */].isUXP && MainStore["mainStore"].user.accessToken && MainStore["mainStore"].user.accessToken.length > 0) {
            // Using the continue token API for the jump
            const target = JumpTargets[key];
            return ((await this.profile.getContinueToken({
                jumpClientId: target.clientID,
                urlObject: encodeURIComponent(url),
                clientScope: target.clientScope,
                accessToken: MainStore["mainStore"].user.accessToken,
            }).catch(error => {
                const homeScreenError = new HomescreenError["a" /* HomescreenError */](`imsBridge :: getContinueToken - Error generating jump token: ${error} ${url}`, 'IMS', HomescreenError["b" /* HomescreenErrorCodes */].INIT_START_TASK_JUMP_TOKEN_FAILED);
                analytics["a" /* default */].logErrorEvent('initialize', { error: homeScreenError });
                return url;
            })) || url);
        }
        return url;
    }
    /**
     * Sends the
     * @param workflowId Id of the workflow to send to NGL
     */
    launchLicensingWorkflow(workflowId) {
        if (!CommonUtils["a" /* UXPHelpers */].isUXP) {
            window.alert(`Licensing dialog for ${workflowId}`);
        }
        const uuid = jsUtil["a" /* default */].generateGUID();
        const data = {
            type: 'SILENT_BANNER_WORKFLOW',
            version: '1',
            id: workflowId,
            instanceId: uuid,
            response: 'banner_click::workflow_result',
        };
        this._logger.log(`Banner Clicked. Sending ${workflowId} to the product with id ${uuid}`);
        this.profile.handleBanner(JSON.stringify(data));
    }
    async updateStaging() {
        const hostIsProductionEnv = applications["a" /* default */].isProductionEnv();
        const isStaging = hostIsProductionEnv !== undefined
            ? !hostIsProductionEnv
            : !(await this.profile.isProductionEnv());
        MainStore["mainStore"].user.setStaging(isStaging);
    }
    /**
     * Sets the access token in the user store and also adds a listener
     * for the token's expiry to refresh.
     *
     * @param token IMS Access token to set
     * @param throttlingTimeout Timeout with which the request was throttled. Will be logged for debugging in Ingest
     */
    setAccessToken(token, throttlingTimeout) {
        if (token) {
            this.lastAccessTokenTime = new Date().valueOf();
            this._throttledRequestUpdateAccessToken(this.calculateAccessTokenExpiry(token));
            if (throttlingTimeout) {
                Object(performance["a" /* LogPerformance */])(`Updated access token - throttled at ${throttlingTimeout}ms`);
            }
            else {
                Object(performance["a" /* LogPerformance */])(`Updated access token`);
            }
            return MainStore["mainStore"].user.setAccessToken(token);
        }
        MainStore["mainStore"].user.setAccessToken('');
    }
    /**
     * Provides the milliseconds to expiry of the provided access token
     */
    calculateAccessTokenExpiry(token) {
        const currentTime = new Date().valueOf();
        try {
            // we might not have an access token. If it errors, fallback to old logic
            const data = JSON.parse(iaw_polyfill.atob(token.split('.')[1]));
            const expiryTime = new Date(parseInt(data.created_at) + parseInt(data.expires_in) - EXPIRY_BUFFER).valueOf();
            return expiryTime - currentTime;
        }
        catch (e) {
            return this.lastAccessTokenTime + 3600 * 23 * 1000 - currentTime;
        }
    }
    /**
     * The current IMS server configuration based on
     * whether we are on stage or production
     */
    get config() {
        const staging = {
            label: 'Stage',
            clientId: 'CCXInAppWelcomeUXP3',
            clientSecret: 's8e-x5GnvCYXy9veQGVk8Os607eSAUZTM5m5',
            clientScope: 'openid,AdobeID',
            imsServer: 'ims-na1-stg1.adobelogin.com',
        };
        const production = {
            label: 'Production',
            clientId: 'CCXInAppWelcomeUXP3',
            clientSecret: 'p8e-k8YWrcks8o0Sd_q1JOhuKvTe7d0-r5wn',
            clientScope: 'openid,AdobeID',
            imsServer: 'ims-na1.adobelogin.com',
        };
        return MainStore["mainStore"].user.isStaging ? staging : production;
    }
}
__decorate([
    Object(performance["b" /* Time */])('IMS Init'),
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [Boolean]),
    __metadata("design:returntype", Promise)
], imsBridge_IMS.prototype, "init", null);
__decorate([
    Object(performance["b" /* Time */])('IMS.lateLoad'),
    __metadata("design:type", Function),
    __metadata("design:paramtypes", []),
    __metadata("design:returntype", Promise)
], imsBridge_IMS.prototype, "lateLoad", null);
__decorate([
    Object(performance["b" /* Time */])('IMS.updateUserProfile'),
    __metadata("design:type", Function),
    __metadata("design:paramtypes", []),
    __metadata("design:returntype", Promise)
], imsBridge_IMS.prototype, "updateUserProfile", null);
__decorate([
    Object(performance["b" /* Time */])('IMS.updateAccessToken'),
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [Object, Object]),
    __metadata("design:returntype", Promise)
], imsBridge_IMS.prototype, "updateAccessToken", null);
const ims = new imsBridge_IMS();
/* harmony default export */ var imsBridge = __webpack_exports__["c"] = (ims);


/***/ }),

/***/ "MrPd":
/***/ (function(module, exports, __webpack_require__) {

var baseAssignValue = __webpack_require__("hypo"),
    eq = __webpack_require__("ljhN");
/** Used for built-in method references. */


var objectProto = Object.prototype;
/** Used to check objects for own properties. */

var hasOwnProperty = objectProto.hasOwnProperty;
/**
 * Assigns `value` to `key` of `object` if the existing value is not equivalent
 * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
 * for equality comparisons.
 *
 * @private
 * @param {Object} object The object to modify.
 * @param {string} key The key of the property to assign.
 * @param {*} value The value to assign.
 */

function assignValue(object, key, value) {
  var objValue = object[key];

  if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || value === undefined && !(key in object)) {
    baseAssignValue(object, key, value);
  }
}

module.exports = assignValue;

/***/ }),

/***/ "Mu3t":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}


/* harmony default export */ __webpack_exports__["a"] = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("svg", _extends({
  id: "outlined",
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 120 120"
}, props), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("defs", null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M80.084 23.18a1.5 1.5 0 0 0 1.5-1.5v-4.607a.426.426 0 0 1 .426-.426h27.606a.426.426 0 0 1 .426.426v41.089a.426.426 0 0 1-.426.425H90.042a1.5 1.5 0 0 0 0 3h19.574a3.43 3.43 0 0 0 3.426-3.425v-41.09a3.43 3.43 0 0 0-3.426-3.425H82.01a3.43 3.43 0 0 0-3.426 3.426v4.606a1.5 1.5 0 0 0 1.5 1.5z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M95.242 18.496a.808.808 0 1 0 1.143 0 .808.808 0 0 0-1.143 0z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M98.65 54.496a2.837 2.837 0 1 0-2.837 2.838 2.84 2.84 0 0 0 2.837-2.838zm-3.674 0a.837.837 0 1 1 .837.838.838.838 0 0 1-.837-.838z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M118.558 83.658c-2.086-1.106-5.979-4.906-9.107-7.96-2.046-1.997-3.813-3.722-5.06-4.72-3.426-2.742-8.955-5.045-13.569-4.007a22.138 22.138 0 0 0-5.68 2.362c-.215.125-.42.25-.632.374V51.755a6.617 6.617 0 0 0-1.943-4.701l-6.944-6.97a6.617 6.617 0 0 0-4.719-1.96H47.786a6.2 6.2 0 0 0-6.192 6.192v40.24a6.2 6.2 0 0 0 6.192 6.193h30.531a6.198 6.198 0 0 0 5.982-4.616c.238.124.478.245.716.37 6.81 3.567 13.853 7.256 21.864 8.857a1.454 1.454 0 0 0 .296.03 1.5 1.5 0 0 0 .292-2.971c-7.588-1.518-14.132-4.945-21.06-8.573a334.828 334.828 0 0 0-4.959-2.563 3.773 3.773 0 0 1-1.005-.668 3.108 3.108 0 0 1 1.351-.18 60.648 60.648 0 0 1 6.577.893c3.881.67 7.896 1.364 11.95.717a1.5 1.5 0 1 0-.472-2.963 17.881 17.881 0 0 1-1.997.19 13.108 13.108 0 0 0-2.242-2.86l-.4-.42c-1.384-1.468-2.895-2.714-6.096-1.866a23.969 23.969 0 0 0-4.604 1.841v-2.773c.708-.423 1.414-.845 2.143-1.27a18.941 18.941 0 0 1 4.827-2.026c3.466-.78 8.176 1.133 11.037 3.422 1.13.906 2.932 2.663 4.839 4.525 3.435 3.354 7.329 7.156 9.797 8.464a1.5 1.5 0 0 0 1.405-2.65zm-41.145-3.47c-.136 1.038.22 2.534 2.687 3.775.468.236.93.483 1.397.722a3.189 3.189 0 0 1-3.18 3.064h-30.53a3.196 3.196 0 0 1-3.193-3.192v-40.24a3.196 3.196 0 0 1 3.192-3.193h23.118a3.639 3.639 0 0 1 2.594 1.077l6.944 6.97a3.638 3.638 0 0 1 1.068 2.584v25.686c-2.278 0-3.874 1.041-4.097 2.747zm12.469-3.162c1.742-.46 2.183.003 3.145 1.024l.421.44c.208.216.415.434.617.653-1.694-.174-3.415-.466-5.183-.77q-.896-.156-1.807-.307a17.834 17.834 0 0 1 2.807-1.04z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M74.904 75.658H51.171a1 1 0 0 0 0 2h23.733a1 1 0 0 0 0-2z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M74.904 79.78H51.171a1 1 0 1 0 0 2h23.733a1 1 0 0 0 0-2z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M73.086 57.496a7.258 7.258 0 0 0-1.675-4.877 7.496 7.496 0 0 0-5.79-2.78h-.046a8.142 8.142 0 0 0-7.706 5.169 6.965 6.965 0 0 0-6.284 2.083A5.807 5.807 0 0 0 50 61.586a4.472 4.472 0 0 0-1.922 1.076 4.996 4.996 0 0 0-1.619 3.43 4.534 4.534 0 0 0 4.83 4.54h21.077a6.178 6.178 0 0 0 6.312-6.412 6.628 6.628 0 0 0-5.591-6.724zm-.72 11.136H51.288a2.53 2.53 0 0 1-2.831-2.54 2.988 2.988 0 0 1 .983-1.967 2.31 2.31 0 0 1 1.56-.669c.046 0 .094.002.142.005a1 1 0 0 0 1.012-1.332 3.61 3.61 0 0 1 .898-3.679 5.124 5.124 0 0 1 5.211-1.317 1 1 0 0 0 1.228-.706 6.306 6.306 0 0 1 6.083-4.588h.036a5.502 5.502 0 0 1 4.25 2.043 5.221 5.221 0 0 1 1.138 4.259 1 1 0 0 0 .883 1.192c3.003.293 4.795 2.12 4.795 4.887a4.198 4.198 0 0 1-4.312 4.412z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M36.42 70.071H8.334a2.579 2.579 0 0 0-2.576 2.576V97.71H2.145a1.5 1.5 0 0 0-1.5 1.5v3.858a3.228 3.228 0 0 0 3.225 3.225h31.527a1.5 1.5 0 0 0 0-3H3.87a.225.225 0 0 1-.225-.225v-2.358H23.04v.748a1.547 1.547 0 0 0 1.544 1.545h4.327a1.547 1.547 0 0 0 1.545-1.545v-.748h4.012a1.5 1.5 0 0 0 0-3H8.757V73.071h27.664a1.5 1.5 0 0 0 0-3zm-7.963 30.932H25.04v-.293h3.416z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M25.435 75.998a1.314 1.314 0 1 0 1.314-1.353 1.334 1.334 0 0 0-1.314 1.353z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M26.422 46.664h9.587a3.76 3.76 0 0 0 3.756-3.756v-25.66a3.76 3.76 0 0 0-3.756-3.756h-9.587a3.76 3.76 0 0 0-3.756 3.756v25.66a3.76 3.76 0 0 0 3.756 3.756zm-.756-29.416a.756.756 0 0 1 .756-.756h9.587a.756.756 0 0 1 .756.756v25.66a.756.756 0 0 1-.756.756h-9.587a.756.756 0 0 1-.756-.756z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M29.902 20.542h2.627a1.431 1.431 0 0 0 1.43-1.43v-.288a1 1 0 0 0-1.96-.282h-1.566a1 1 0 0 0-1.96.282v.289a1.431 1.431 0 0 0 1.43 1.43z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M30.128 42.887h2.175a2.32 2.32 0 1 0 0-4.64h-2.175a2.32 2.32 0 0 0 0 4.64zm0-2.64h2.175a.32.32 0 1 1 0 .64h-2.175a.32.32 0 0 1 0-.64z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M20.781 68.135c.038 0 .076-.001.114-.004a1.5 1.5 0 0 0 1.383-1.609 40.015 40.015 0 0 1-.111-2.976 38.951 38.951 0 0 1 2.36-13.406 1.5 1.5 0 0 0-2.818-1.03 41.948 41.948 0 0 0-2.542 14.436c0 1.065.04 2.142.12 3.201a1.5 1.5 0 0 0 1.494 1.388z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M88.871 92.064a39.079 39.079 0 0 1-45.139 7.304l1.83-.605a1.5 1.5 0 1 0-.941-2.848l-5.418 1.791a1.5 1.5 0 0 0-.953 1.895l1.814 5.486a1.5 1.5 0 0 0 2.848-.942l-.725-2.193a42.09 42.09 0 0 0 48.805-7.766 1.5 1.5 0 0 0-2.12-2.122z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M45.242 28.781a38.768 38.768 0 0 1 16.001-3.416 39.324 39.324 0 0 1 34.063 19.936l-1.908-.622a1.5 1.5 0 1 0-.93 2.852l5.426 1.77a1.499 1.499 0 0 0 1.89-.96l1.792-5.494a1.5 1.5 0 1 0-2.851-.931l-.694 2.127a42.334 42.334 0 0 0-36.788-21.678 41.754 41.754 0 0 0-17.232 3.68 1.5 1.5 0 1 0 1.23 2.736z"
})));

/***/ }),

/***/ "Muxt":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var _interopRequireDefault = __webpack_require__("TqRt");

exports.__esModule = true;
exports.default = void 0;

var _addClass = _interopRequireDefault(__webpack_require__("ycFn"));

exports.addClass = _addClass.default;

var _removeClass = _interopRequireDefault(__webpack_require__("VOcB"));

exports.removeClass = _removeClass.default;

var _hasClass = _interopRequireDefault(__webpack_require__("yD6e"));

exports.hasClass = _hasClass.default;
var _default = {
  addClass: _addClass.default,
  removeClass: _removeClass.default,
  hasClass: _hasClass.default
};
exports.default = _default;

/***/ }),

/***/ "MvwC":
/***/ (function(module, exports, __webpack_require__) {

var document = __webpack_require__("5T2Y").document;

module.exports = document && document.documentElement;

/***/ }),

/***/ "MwBp":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var utils = __webpack_require__("86MQ");

var BN = __webpack_require__("OZ/i");

var inherits = __webpack_require__("P7XM");

var Base = __webpack_require__("6lN/");

var assert = utils.assert;

function ShortCurve(conf) {
  Base.call(this, 'short', conf);
  this.a = new BN(conf.a, 16).toRed(this.red);
  this.b = new BN(conf.b, 16).toRed(this.red);
  this.tinv = this.two.redInvm();
  this.zeroA = this.a.fromRed().cmpn(0) === 0;
  this.threeA = this.a.fromRed().sub(this.p).cmpn(-3) === 0; // If the curve is endomorphic, precalculate beta and lambda

  this.endo = this._getEndomorphism(conf);
  this._endoWnafT1 = new Array(4);
  this._endoWnafT2 = new Array(4);
}

inherits(ShortCurve, Base);
module.exports = ShortCurve;

ShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) {
  // No efficient endomorphism
  if (!this.zeroA || !this.g || !this.n || this.p.modn(3) !== 1) return; // Compute beta and lambda, that lambda * P = (beta * Px; Py)

  var beta;
  var lambda;

  if (conf.beta) {
    beta = new BN(conf.beta, 16).toRed(this.red);
  } else {
    var betas = this._getEndoRoots(this.p); // Choose the smallest beta


    beta = betas[0].cmp(betas[1]) < 0 ? betas[0] : betas[1];
    beta = beta.toRed(this.red);
  }

  if (conf.lambda) {
    lambda = new BN(conf.lambda, 16);
  } else {
    // Choose the lambda that is matching selected beta
    var lambdas = this._getEndoRoots(this.n);

    if (this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta)) === 0) {
      lambda = lambdas[0];
    } else {
      lambda = lambdas[1];
      assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) === 0);
    }
  } // Get basis vectors, used for balanced length-two representation


  var basis;

  if (conf.basis) {
    basis = conf.basis.map(function (vec) {
      return {
        a: new BN(vec.a, 16),
        b: new BN(vec.b, 16)
      };
    });
  } else {
    basis = this._getEndoBasis(lambda);
  }

  return {
    beta: beta,
    lambda: lambda,
    basis: basis
  };
};

ShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) {
  // Find roots of for x^2 + x + 1 in F
  // Root = (-1 +- Sqrt(-3)) / 2
  //
  var red = num === this.p ? this.red : BN.mont(num);
  var tinv = new BN(2).toRed(red).redInvm();
  var ntinv = tinv.redNeg();
  var s = new BN(3).toRed(red).redNeg().redSqrt().redMul(tinv);
  var l1 = ntinv.redAdd(s).fromRed();
  var l2 = ntinv.redSub(s).fromRed();
  return [l1, l2];
};

ShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) {
  // aprxSqrt >= sqrt(this.n)
  var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() / 2)); // 3.74
  // Run EGCD, until r(L + 1) < aprxSqrt

  var u = lambda;
  var v = this.n.clone();
  var x1 = new BN(1);
  var y1 = new BN(0);
  var x2 = new BN(0);
  var y2 = new BN(1); // NOTE: all vectors are roots of: a + b * lambda = 0 (mod n)

  var a0;
  var b0; // First vector

  var a1;
  var b1; // Second vector

  var a2;
  var b2;
  var prevR;
  var i = 0;
  var r;
  var x;

  while (u.cmpn(0) !== 0) {
    var q = v.div(u);
    r = v.sub(q.mul(u));
    x = x2.sub(q.mul(x1));
    var y = y2.sub(q.mul(y1));

    if (!a1 && r.cmp(aprxSqrt) < 0) {
      a0 = prevR.neg();
      b0 = x1;
      a1 = r.neg();
      b1 = x;
    } else if (a1 && ++i === 2) {
      break;
    }

    prevR = r;
    v = u;
    u = r;
    x2 = x1;
    x1 = x;
    y2 = y1;
    y1 = y;
  }

  a2 = r.neg();
  b2 = x;
  var len1 = a1.sqr().add(b1.sqr());
  var len2 = a2.sqr().add(b2.sqr());

  if (len2.cmp(len1) >= 0) {
    a2 = a0;
    b2 = b0;
  } // Normalize signs


  if (a1.negative) {
    a1 = a1.neg();
    b1 = b1.neg();
  }

  if (a2.negative) {
    a2 = a2.neg();
    b2 = b2.neg();
  }

  return [{
    a: a1,
    b: b1
  }, {
    a: a2,
    b: b2
  }];
};

ShortCurve.prototype._endoSplit = function _endoSplit(k) {
  var basis = this.endo.basis;
  var v1 = basis[0];
  var v2 = basis[1];
  var c1 = v2.b.mul(k).divRound(this.n);
  var c2 = v1.b.neg().mul(k).divRound(this.n);
  var p1 = c1.mul(v1.a);
  var p2 = c2.mul(v2.a);
  var q1 = c1.mul(v1.b);
  var q2 = c2.mul(v2.b); // Calculate answer

  var k1 = k.sub(p1).sub(p2);
  var k2 = q1.add(q2).neg();
  return {
    k1: k1,
    k2: k2
  };
};

ShortCurve.prototype.pointFromX = function pointFromX(x, odd) {
  x = new BN(x, 16);
  if (!x.red) x = x.toRed(this.red);
  var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);
  var y = y2.redSqrt();
  if (y.redSqr().redSub(y2).cmp(this.zero) !== 0) throw new Error('invalid point'); // XXX Is there any way to tell if the number is odd without converting it
  // to non-red form?

  var isOdd = y.fromRed().isOdd();
  if (odd && !isOdd || !odd && isOdd) y = y.redNeg();
  return this.point(x, y);
};

ShortCurve.prototype.validate = function validate(point) {
  if (point.inf) return true;
  var x = point.x;
  var y = point.y;
  var ax = this.a.redMul(x);
  var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);
  return y.redSqr().redISub(rhs).cmpn(0) === 0;
};

ShortCurve.prototype._endoWnafMulAdd = function _endoWnafMulAdd(points, coeffs, jacobianResult) {
  var npoints = this._endoWnafT1;
  var ncoeffs = this._endoWnafT2;

  for (var i = 0; i < points.length; i++) {
    var split = this._endoSplit(coeffs[i]);

    var p = points[i];

    var beta = p._getBeta();

    if (split.k1.negative) {
      split.k1.ineg();
      p = p.neg(true);
    }

    if (split.k2.negative) {
      split.k2.ineg();
      beta = beta.neg(true);
    }

    npoints[i * 2] = p;
    npoints[i * 2 + 1] = beta;
    ncoeffs[i * 2] = split.k1;
    ncoeffs[i * 2 + 1] = split.k2;
  }

  var res = this._wnafMulAdd(1, npoints, ncoeffs, i * 2, jacobianResult); // Clean-up references to points and coefficients


  for (var j = 0; j < i * 2; j++) {
    npoints[j] = null;
    ncoeffs[j] = null;
  }

  return res;
};

function Point(curve, x, y, isRed) {
  Base.BasePoint.call(this, curve, 'affine');

  if (x === null && y === null) {
    this.x = null;
    this.y = null;
    this.inf = true;
  } else {
    this.x = new BN(x, 16);
    this.y = new BN(y, 16); // Force redgomery representation when loading from JSON

    if (isRed) {
      this.x.forceRed(this.curve.red);
      this.y.forceRed(this.curve.red);
    }

    if (!this.x.red) this.x = this.x.toRed(this.curve.red);
    if (!this.y.red) this.y = this.y.toRed(this.curve.red);
    this.inf = false;
  }
}

inherits(Point, Base.BasePoint);

ShortCurve.prototype.point = function point(x, y, isRed) {
  return new Point(this, x, y, isRed);
};

ShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) {
  return Point.fromJSON(this, obj, red);
};

Point.prototype._getBeta = function _getBeta() {
  if (!this.curve.endo) return;
  var pre = this.precomputed;
  if (pre && pre.beta) return pre.beta;
  var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y);

  if (pre) {
    var curve = this.curve;

    var endoMul = function (p) {
      return curve.point(p.x.redMul(curve.endo.beta), p.y);
    };

    pre.beta = beta;
    beta.precomputed = {
      beta: null,
      naf: pre.naf && {
        wnd: pre.naf.wnd,
        points: pre.naf.points.map(endoMul)
      },
      doubles: pre.doubles && {
        step: pre.doubles.step,
        points: pre.doubles.points.map(endoMul)
      }
    };
  }

  return beta;
};

Point.prototype.toJSON = function toJSON() {
  if (!this.precomputed) return [this.x, this.y];
  return [this.x, this.y, this.precomputed && {
    doubles: this.precomputed.doubles && {
      step: this.precomputed.doubles.step,
      points: this.precomputed.doubles.points.slice(1)
    },
    naf: this.precomputed.naf && {
      wnd: this.precomputed.naf.wnd,
      points: this.precomputed.naf.points.slice(1)
    }
  }];
};

Point.fromJSON = function fromJSON(curve, obj, red) {
  if (typeof obj === 'string') obj = JSON.parse(obj);
  var res = curve.point(obj[0], obj[1], red);
  if (!obj[2]) return res;

  function obj2point(obj) {
    return curve.point(obj[0], obj[1], red);
  }

  var pre = obj[2];
  res.precomputed = {
    beta: null,
    doubles: pre.doubles && {
      step: pre.doubles.step,
      points: [res].concat(pre.doubles.points.map(obj2point))
    },
    naf: pre.naf && {
      wnd: pre.naf.wnd,
      points: [res].concat(pre.naf.points.map(obj2point))
    }
  };
  return res;
};

Point.prototype.inspect = function inspect() {
  if (this.isInfinity()) return '<EC Point Infinity>';
  return '<EC Point x: ' + this.x.fromRed().toString(16, 2) + ' y: ' + this.y.fromRed().toString(16, 2) + '>';
};

Point.prototype.isInfinity = function isInfinity() {
  return this.inf;
};

Point.prototype.add = function add(p) {
  // O + P = P
  if (this.inf) return p; // P + O = P

  if (p.inf) return this; // P + P = 2P

  if (this.eq(p)) return this.dbl(); // P + (-P) = O

  if (this.neg().eq(p)) return this.curve.point(null, null); // P + Q = O

  if (this.x.cmp(p.x) === 0) return this.curve.point(null, null);
  var c = this.y.redSub(p.y);
  if (c.cmpn(0) !== 0) c = c.redMul(this.x.redSub(p.x).redInvm());
  var nx = c.redSqr().redISub(this.x).redISub(p.x);
  var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);
  return this.curve.point(nx, ny);
};

Point.prototype.dbl = function dbl() {
  if (this.inf) return this; // 2P = O

  var ys1 = this.y.redAdd(this.y);
  if (ys1.cmpn(0) === 0) return this.curve.point(null, null);
  var a = this.curve.a;
  var x2 = this.x.redSqr();
  var dyinv = ys1.redInvm();
  var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);
  var nx = c.redSqr().redISub(this.x.redAdd(this.x));
  var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);
  return this.curve.point(nx, ny);
};

Point.prototype.getX = function getX() {
  return this.x.fromRed();
};

Point.prototype.getY = function getY() {
  return this.y.fromRed();
};

Point.prototype.mul = function mul(k) {
  k = new BN(k, 16);
  if (this.isInfinity()) return this;else if (this._hasDoubles(k)) return this.curve._fixedNafMul(this, k);else if (this.curve.endo) return this.curve._endoWnafMulAdd([this], [k]);else return this.curve._wnafMul(this, k);
};

Point.prototype.mulAdd = function mulAdd(k1, p2, k2) {
  var points = [this, p2];
  var coeffs = [k1, k2];
  if (this.curve.endo) return this.curve._endoWnafMulAdd(points, coeffs);else return this.curve._wnafMulAdd(1, points, coeffs, 2);
};

Point.prototype.jmulAdd = function jmulAdd(k1, p2, k2) {
  var points = [this, p2];
  var coeffs = [k1, k2];
  if (this.curve.endo) return this.curve._endoWnafMulAdd(points, coeffs, true);else return this.curve._wnafMulAdd(1, points, coeffs, 2, true);
};

Point.prototype.eq = function eq(p) {
  return this === p || this.inf === p.inf && (this.inf || this.x.cmp(p.x) === 0 && this.y.cmp(p.y) === 0);
};

Point.prototype.neg = function neg(_precompute) {
  if (this.inf) return this;
  var res = this.curve.point(this.x, this.y.redNeg());

  if (_precompute && this.precomputed) {
    var pre = this.precomputed;

    var negate = function (p) {
      return p.neg();
    };

    res.precomputed = {
      naf: pre.naf && {
        wnd: pre.naf.wnd,
        points: pre.naf.points.map(negate)
      },
      doubles: pre.doubles && {
        step: pre.doubles.step,
        points: pre.doubles.points.map(negate)
      }
    };
  }

  return res;
};

Point.prototype.toJ = function toJ() {
  if (this.inf) return this.curve.jpoint(null, null, null);
  var res = this.curve.jpoint(this.x, this.y, this.curve.one);
  return res;
};

function JPoint(curve, x, y, z) {
  Base.BasePoint.call(this, curve, 'jacobian');

  if (x === null && y === null && z === null) {
    this.x = this.curve.one;
    this.y = this.curve.one;
    this.z = new BN(0);
  } else {
    this.x = new BN(x, 16);
    this.y = new BN(y, 16);
    this.z = new BN(z, 16);
  }

  if (!this.x.red) this.x = this.x.toRed(this.curve.red);
  if (!this.y.red) this.y = this.y.toRed(this.curve.red);
  if (!this.z.red) this.z = this.z.toRed(this.curve.red);
  this.zOne = this.z === this.curve.one;
}

inherits(JPoint, Base.BasePoint);

ShortCurve.prototype.jpoint = function jpoint(x, y, z) {
  return new JPoint(this, x, y, z);
};

JPoint.prototype.toP = function toP() {
  if (this.isInfinity()) return this.curve.point(null, null);
  var zinv = this.z.redInvm();
  var zinv2 = zinv.redSqr();
  var ax = this.x.redMul(zinv2);
  var ay = this.y.redMul(zinv2).redMul(zinv);
  return this.curve.point(ax, ay);
};

JPoint.prototype.neg = function neg() {
  return this.curve.jpoint(this.x, this.y.redNeg(), this.z);
};

JPoint.prototype.add = function add(p) {
  // O + P = P
  if (this.isInfinity()) return p; // P + O = P

  if (p.isInfinity()) return this; // 12M + 4S + 7A

  var pz2 = p.z.redSqr();
  var z2 = this.z.redSqr();
  var u1 = this.x.redMul(pz2);
  var u2 = p.x.redMul(z2);
  var s1 = this.y.redMul(pz2.redMul(p.z));
  var s2 = p.y.redMul(z2.redMul(this.z));
  var h = u1.redSub(u2);
  var r = s1.redSub(s2);

  if (h.cmpn(0) === 0) {
    if (r.cmpn(0) !== 0) return this.curve.jpoint(null, null, null);else return this.dbl();
  }

  var h2 = h.redSqr();
  var h3 = h2.redMul(h);
  var v = u1.redMul(h2);
  var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);
  var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));
  var nz = this.z.redMul(p.z).redMul(h);
  return this.curve.jpoint(nx, ny, nz);
};

JPoint.prototype.mixedAdd = function mixedAdd(p) {
  // O + P = P
  if (this.isInfinity()) return p.toJ(); // P + O = P

  if (p.isInfinity()) return this; // 8M + 3S + 7A

  var z2 = this.z.redSqr();
  var u1 = this.x;
  var u2 = p.x.redMul(z2);
  var s1 = this.y;
  var s2 = p.y.redMul(z2).redMul(this.z);
  var h = u1.redSub(u2);
  var r = s1.redSub(s2);

  if (h.cmpn(0) === 0) {
    if (r.cmpn(0) !== 0) return this.curve.jpoint(null, null, null);else return this.dbl();
  }

  var h2 = h.redSqr();
  var h3 = h2.redMul(h);
  var v = u1.redMul(h2);
  var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);
  var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));
  var nz = this.z.redMul(h);
  return this.curve.jpoint(nx, ny, nz);
};

JPoint.prototype.dblp = function dblp(pow) {
  if (pow === 0) return this;
  if (this.isInfinity()) return this;
  if (!pow) return this.dbl();
  var i;

  if (this.curve.zeroA || this.curve.threeA) {
    var r = this;

    for (i = 0; i < pow; i++) r = r.dbl();

    return r;
  } // 1M + 2S + 1A + N * (4S + 5M + 8A)
  // N = 1 => 6M + 6S + 9A


  var a = this.curve.a;
  var tinv = this.curve.tinv;
  var jx = this.x;
  var jy = this.y;
  var jz = this.z;
  var jz4 = jz.redSqr().redSqr(); // Reuse results

  var jyd = jy.redAdd(jy);

  for (i = 0; i < pow; i++) {
    var jx2 = jx.redSqr();
    var jyd2 = jyd.redSqr();
    var jyd4 = jyd2.redSqr();
    var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));
    var t1 = jx.redMul(jyd2);
    var nx = c.redSqr().redISub(t1.redAdd(t1));
    var t2 = t1.redISub(nx);
    var dny = c.redMul(t2);
    dny = dny.redIAdd(dny).redISub(jyd4);
    var nz = jyd.redMul(jz);
    if (i + 1 < pow) jz4 = jz4.redMul(jyd4);
    jx = nx;
    jz = nz;
    jyd = dny;
  }

  return this.curve.jpoint(jx, jyd.redMul(tinv), jz);
};

JPoint.prototype.dbl = function dbl() {
  if (this.isInfinity()) return this;
  if (this.curve.zeroA) return this._zeroDbl();else if (this.curve.threeA) return this._threeDbl();else return this._dbl();
};

JPoint.prototype._zeroDbl = function _zeroDbl() {
  var nx;
  var ny;
  var nz; // Z = 1

  if (this.zOne) {
    // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html
    //     #doubling-mdbl-2007-bl
    // 1M + 5S + 14A
    // XX = X1^2
    var xx = this.x.redSqr(); // YY = Y1^2

    var yy = this.y.redSqr(); // YYYY = YY^2

    var yyyy = yy.redSqr(); // S = 2 * ((X1 + YY)^2 - XX - YYYY)

    var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);
    s = s.redIAdd(s); // M = 3 * XX + a; a = 0

    var m = xx.redAdd(xx).redIAdd(xx); // T = M ^ 2 - 2*S

    var t = m.redSqr().redISub(s).redISub(s); // 8 * YYYY

    var yyyy8 = yyyy.redIAdd(yyyy);
    yyyy8 = yyyy8.redIAdd(yyyy8);
    yyyy8 = yyyy8.redIAdd(yyyy8); // X3 = T

    nx = t; // Y3 = M * (S - T) - 8 * YYYY

    ny = m.redMul(s.redISub(t)).redISub(yyyy8); // Z3 = 2*Y1

    nz = this.y.redAdd(this.y);
  } else {
    // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html
    //     #doubling-dbl-2009-l
    // 2M + 5S + 13A
    // A = X1^2
    var a = this.x.redSqr(); // B = Y1^2

    var b = this.y.redSqr(); // C = B^2

    var c = b.redSqr(); // D = 2 * ((X1 + B)^2 - A - C)

    var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c);
    d = d.redIAdd(d); // E = 3 * A

    var e = a.redAdd(a).redIAdd(a); // F = E^2

    var f = e.redSqr(); // 8 * C

    var c8 = c.redIAdd(c);
    c8 = c8.redIAdd(c8);
    c8 = c8.redIAdd(c8); // X3 = F - 2 * D

    nx = f.redISub(d).redISub(d); // Y3 = E * (D - X3) - 8 * C

    ny = e.redMul(d.redISub(nx)).redISub(c8); // Z3 = 2 * Y1 * Z1

    nz = this.y.redMul(this.z);
    nz = nz.redIAdd(nz);
  }

  return this.curve.jpoint(nx, ny, nz);
};

JPoint.prototype._threeDbl = function _threeDbl() {
  var nx;
  var ny;
  var nz; // Z = 1

  if (this.zOne) {
    // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html
    //     #doubling-mdbl-2007-bl
    // 1M + 5S + 15A
    // XX = X1^2
    var xx = this.x.redSqr(); // YY = Y1^2

    var yy = this.y.redSqr(); // YYYY = YY^2

    var yyyy = yy.redSqr(); // S = 2 * ((X1 + YY)^2 - XX - YYYY)

    var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);
    s = s.redIAdd(s); // M = 3 * XX + a

    var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a); // T = M^2 - 2 * S

    var t = m.redSqr().redISub(s).redISub(s); // X3 = T

    nx = t; // Y3 = M * (S - T) - 8 * YYYY

    var yyyy8 = yyyy.redIAdd(yyyy);
    yyyy8 = yyyy8.redIAdd(yyyy8);
    yyyy8 = yyyy8.redIAdd(yyyy8);
    ny = m.redMul(s.redISub(t)).redISub(yyyy8); // Z3 = 2 * Y1

    nz = this.y.redAdd(this.y);
  } else {
    // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html#doubling-dbl-2001-b
    // 3M + 5S
    // delta = Z1^2
    var delta = this.z.redSqr(); // gamma = Y1^2

    var gamma = this.y.redSqr(); // beta = X1 * gamma

    var beta = this.x.redMul(gamma); // alpha = 3 * (X1 - delta) * (X1 + delta)

    var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta));
    alpha = alpha.redAdd(alpha).redIAdd(alpha); // X3 = alpha^2 - 8 * beta

    var beta4 = beta.redIAdd(beta);
    beta4 = beta4.redIAdd(beta4);
    var beta8 = beta4.redAdd(beta4);
    nx = alpha.redSqr().redISub(beta8); // Z3 = (Y1 + Z1)^2 - gamma - delta

    nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta); // Y3 = alpha * (4 * beta - X3) - 8 * gamma^2

    var ggamma8 = gamma.redSqr();
    ggamma8 = ggamma8.redIAdd(ggamma8);
    ggamma8 = ggamma8.redIAdd(ggamma8);
    ggamma8 = ggamma8.redIAdd(ggamma8);
    ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8);
  }

  return this.curve.jpoint(nx, ny, nz);
};

JPoint.prototype._dbl = function _dbl() {
  var a = this.curve.a; // 4M + 6S + 10A

  var jx = this.x;
  var jy = this.y;
  var jz = this.z;
  var jz4 = jz.redSqr().redSqr();
  var jx2 = jx.redSqr();
  var jy2 = jy.redSqr();
  var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));
  var jxd4 = jx.redAdd(jx);
  jxd4 = jxd4.redIAdd(jxd4);
  var t1 = jxd4.redMul(jy2);
  var nx = c.redSqr().redISub(t1.redAdd(t1));
  var t2 = t1.redISub(nx);
  var jyd8 = jy2.redSqr();
  jyd8 = jyd8.redIAdd(jyd8);
  jyd8 = jyd8.redIAdd(jyd8);
  jyd8 = jyd8.redIAdd(jyd8);
  var ny = c.redMul(t2).redISub(jyd8);
  var nz = jy.redAdd(jy).redMul(jz);
  return this.curve.jpoint(nx, ny, nz);
};

JPoint.prototype.trpl = function trpl() {
  if (!this.curve.zeroA) return this.dbl().add(this); // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html#tripling-tpl-2007-bl
  // 5M + 10S + ...
  // XX = X1^2

  var xx = this.x.redSqr(); // YY = Y1^2

  var yy = this.y.redSqr(); // ZZ = Z1^2

  var zz = this.z.redSqr(); // YYYY = YY^2

  var yyyy = yy.redSqr(); // M = 3 * XX + a * ZZ2; a = 0

  var m = xx.redAdd(xx).redIAdd(xx); // MM = M^2

  var mm = m.redSqr(); // E = 6 * ((X1 + YY)^2 - XX - YYYY) - MM

  var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);
  e = e.redIAdd(e);
  e = e.redAdd(e).redIAdd(e);
  e = e.redISub(mm); // EE = E^2

  var ee = e.redSqr(); // T = 16*YYYY

  var t = yyyy.redIAdd(yyyy);
  t = t.redIAdd(t);
  t = t.redIAdd(t);
  t = t.redIAdd(t); // U = (M + E)^2 - MM - EE - T

  var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t); // X3 = 4 * (X1 * EE - 4 * YY * U)

  var yyu4 = yy.redMul(u);
  yyu4 = yyu4.redIAdd(yyu4);
  yyu4 = yyu4.redIAdd(yyu4);
  var nx = this.x.redMul(ee).redISub(yyu4);
  nx = nx.redIAdd(nx);
  nx = nx.redIAdd(nx); // Y3 = 8 * Y1 * (U * (T - U) - E * EE)

  var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));
  ny = ny.redIAdd(ny);
  ny = ny.redIAdd(ny);
  ny = ny.redIAdd(ny); // Z3 = (Z1 + E)^2 - ZZ - EE

  var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);
  return this.curve.jpoint(nx, ny, nz);
};

JPoint.prototype.mul = function mul(k, kbase) {
  k = new BN(k, kbase);
  return this.curve._wnafMul(this, k);
};

JPoint.prototype.eq = function eq(p) {
  if (p.type === 'affine') return this.eq(p.toJ());
  if (this === p) return true; // x1 * z2^2 == x2 * z1^2

  var z2 = this.z.redSqr();
  var pz2 = p.z.redSqr();
  if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(0) !== 0) return false; // y1 * z2^3 == y2 * z1^3

  var z3 = z2.redMul(this.z);
  var pz3 = pz2.redMul(p.z);
  return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(0) === 0;
};

JPoint.prototype.eqXToP = function eqXToP(x) {
  var zs = this.z.redSqr();
  var rx = x.toRed(this.curve.red).redMul(zs);
  if (this.x.cmp(rx) === 0) return true;
  var xc = x.clone();
  var t = this.curve.redN.redMul(zs);

  for (;;) {
    xc.iadd(this.curve.n);
    if (xc.cmp(this.curve.p) >= 0) return false;
    rx.redIAdd(t);
    if (this.x.cmp(rx) === 0) return true;
  }
};

JPoint.prototype.inspect = function inspect() {
  if (this.isInfinity()) return '<EC JPoint Infinity>';
  return '<EC JPoint x: ' + this.x.toString(16, 2) + ' y: ' + this.y.toString(16, 2) + ' z: ' + this.z.toString(16, 2) + '>';
};

JPoint.prototype.isInfinity = function isInfinity() {
  // XXX This code assumes that zero is always zero in red
  return this.z.cmpn(0) === 0;
};

/***/ }),

/***/ "Mwd1":
/***/ (function(module, exports, __webpack_require__) {

!function (e, t) {
   true ? module.exports = t() : undefined;
}(this, function () {
  "use strict";

  return [{
    locale: "pt",
    pluralRuleFunction: function (e, t) {
      var o = String(e).split(".")[0];
      return t ? "other" : 0 == o || 1 == o ? "one" : "other";
    },
    fields: {
      year: {
        displayName: "ano",
        relative: {
          0: "este ano",
          1: "próximo ano",
          "-1": "ano passado"
        },
        relativeTime: {
          future: {
            one: "em {0} ano",
            other: "em {0} anos"
          },
          past: {
            one: "há {0} ano",
            other: "há {0} anos"
          }
        }
      },
      "year-short": {
        displayName: "ano",
        relative: {
          0: "este ano",
          1: "próximo ano",
          "-1": "ano passado"
        },
        relativeTime: {
          future: {
            one: "em {0} ano",
            other: "em {0} anos"
          },
          past: {
            one: "há {0} ano",
            other: "há {0} anos"
          }
        }
      },
      month: {
        displayName: "mês",
        relative: {
          0: "este mês",
          1: "próximo mês",
          "-1": "mês passado"
        },
        relativeTime: {
          future: {
            one: "em {0} mês",
            other: "em {0} meses"
          },
          past: {
            one: "há {0} mês",
            other: "há {0} meses"
          }
        }
      },
      "month-short": {
        displayName: "mês",
        relative: {
          0: "este mês",
          1: "próximo mês",
          "-1": "mês passado"
        },
        relativeTime: {
          future: {
            one: "em {0} mês",
            other: "em {0} meses"
          },
          past: {
            one: "há {0} mês",
            other: "há {0} meses"
          }
        }
      },
      day: {
        displayName: "dia",
        relative: {
          0: "hoje",
          1: "amanhã",
          2: "depois de amanhã",
          "-2": "anteontem",
          "-1": "ontem"
        },
        relativeTime: {
          future: {
            one: "em {0} dia",
            other: "em {0} dias"
          },
          past: {
            one: "há {0} dia",
            other: "há {0} dias"
          }
        }
      },
      "day-short": {
        displayName: "dia",
        relative: {
          0: "hoje",
          1: "amanhã",
          2: "depois de amanhã",
          "-2": "anteontem",
          "-1": "ontem"
        },
        relativeTime: {
          future: {
            one: "em {0} dia",
            other: "em {0} dias"
          },
          past: {
            one: "há {0} dia",
            other: "há {0} dias"
          }
        }
      },
      hour: {
        displayName: "hora",
        relative: {
          0: "esta hora"
        },
        relativeTime: {
          future: {
            one: "em {0} hora",
            other: "em {0} horas"
          },
          past: {
            one: "há {0} hora",
            other: "há {0} horas"
          }
        }
      },
      "hour-short": {
        displayName: "h",
        relative: {
          0: "esta hora"
        },
        relativeTime: {
          future: {
            one: "em {0} h",
            other: "em {0} h"
          },
          past: {
            one: "há {0} h",
            other: "há {0} h"
          }
        }
      },
      minute: {
        displayName: "minuto",
        relative: {
          0: "este minuto"
        },
        relativeTime: {
          future: {
            one: "em {0} minuto",
            other: "em {0} minutos"
          },
          past: {
            one: "há {0} minuto",
            other: "há {0} minutos"
          }
        }
      },
      "minute-short": {
        displayName: "min.",
        relative: {
          0: "este minuto"
        },
        relativeTime: {
          future: {
            one: "em {0} min.",
            other: "em {0} min."
          },
          past: {
            one: "há {0} min.",
            other: "há {0} min."
          }
        }
      },
      second: {
        displayName: "segundo",
        relative: {
          0: "agora"
        },
        relativeTime: {
          future: {
            one: "em {0} segundo",
            other: "em {0} segundos"
          },
          past: {
            one: "há {0} segundo",
            other: "há {0} segundos"
          }
        }
      },
      "second-short": {
        displayName: "seg.",
        relative: {
          0: "agora"
        },
        relativeTime: {
          future: {
            one: "em {0} seg.",
            other: "em {0} seg."
          },
          past: {
            one: "há {0} seg.",
            other: "há {0} seg."
          }
        }
      }
    }
  }, {
    locale: "pt-AO",
    parentLocale: "pt-PT"
  }, {
    locale: "pt-PT",
    parentLocale: "pt",
    pluralRuleFunction: function (e, t) {
      var o = !String(e).split(".")[1];
      return t ? "other" : 1 == e && o ? "one" : "other";
    },
    fields: {
      year: {
        displayName: "ano",
        relative: {
          0: "este ano",
          1: "próximo ano",
          "-1": "ano passado"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} ano",
            other: "dentro de {0} anos"
          },
          past: {
            one: "há {0} ano",
            other: "há {0} anos"
          }
        }
      },
      "year-short": {
        displayName: "ano",
        relative: {
          0: "este ano",
          1: "próximo ano",
          "-1": "ano passado"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} ano",
            other: "dentro de {0} anos"
          },
          past: {
            one: "há {0} ano",
            other: "há {0} anos"
          }
        }
      },
      month: {
        displayName: "mês",
        relative: {
          0: "este mês",
          1: "próximo mês",
          "-1": "mês passado"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} mês",
            other: "dentro de {0} meses"
          },
          past: {
            one: "há {0} mês",
            other: "há {0} meses"
          }
        }
      },
      "month-short": {
        displayName: "mês",
        relative: {
          0: "este mês",
          1: "próximo mês",
          "-1": "mês passado"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} mês",
            other: "dentro de {0} meses"
          },
          past: {
            one: "há {0} mês",
            other: "há {0} meses"
          }
        }
      },
      day: {
        displayName: "dia",
        relative: {
          0: "hoje",
          1: "amanhã",
          2: "depois de amanhã",
          "-2": "anteontem",
          "-1": "ontem"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} dia",
            other: "dentro de {0} dias"
          },
          past: {
            one: "há {0} dia",
            other: "há {0} dias"
          }
        }
      },
      "day-short": {
        displayName: "dia",
        relative: {
          0: "hoje",
          1: "amanhã",
          2: "depois de amanhã",
          "-2": "anteontem",
          "-1": "ontem"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} dia",
            other: "dentro de {0} dias"
          },
          past: {
            one: "há {0} dia",
            other: "há {0} dias"
          }
        }
      },
      hour: {
        displayName: "hora",
        relative: {
          0: "esta hora"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} hora",
            other: "dentro de {0} horas"
          },
          past: {
            one: "há {0} hora",
            other: "há {0} horas"
          }
        }
      },
      "hour-short": {
        displayName: "h",
        relative: {
          0: "esta hora"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} h",
            other: "dentro de {0} h"
          },
          past: {
            one: "há {0} h",
            other: "há {0} h"
          }
        }
      },
      minute: {
        displayName: "minuto",
        relative: {
          0: "este minuto"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} minuto",
            other: "dentro de {0} minutos"
          },
          past: {
            one: "há {0} minuto",
            other: "há {0} minutos"
          }
        }
      },
      "minute-short": {
        displayName: "min",
        relative: {
          0: "este minuto"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} min",
            other: "dentro de {0} min"
          },
          past: {
            one: "há {0} min",
            other: "há {0} min"
          }
        }
      },
      second: {
        displayName: "segundo",
        relative: {
          0: "agora"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} segundo",
            other: "dentro de {0} segundos"
          },
          past: {
            one: "há {0} segundo",
            other: "há {0} segundos"
          }
        }
      },
      "second-short": {
        displayName: "s",
        relative: {
          0: "agora"
        },
        relativeTime: {
          future: {
            one: "dentro de {0} s",
            other: "dentro de {0} s"
          },
          past: {
            one: "há {0} s",
            other: "há {0} s"
          }
        }
      }
    }
  }, {
    locale: "pt-CH",
    parentLocale: "pt-PT"
  }, {
    locale: "pt-CV",
    parentLocale: "pt-PT"
  }, {
    locale: "pt-GQ",
    parentLocale: "pt-PT"
  }, {
    locale: "pt-GW",
    parentLocale: "pt-PT"
  }, {
    locale: "pt-LU",
    parentLocale: "pt-PT"
  }, {
    locale: "pt-MO",
    parentLocale: "pt-PT"
  }, {
    locale: "pt-MZ",
    parentLocale: "pt-PT"
  }, {
    locale: "pt-ST",
    parentLocale: "pt-PT"
  }, {
    locale: "pt-TL",
    parentLocale: "pt-PT"
  }];
});

/***/ }),

/***/ "Mz2I":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _ccx_public_acpl_model_mobx_ACPLTypes__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("x2z8");
/* harmony import */ var _ccx_public_acpl_model_mobx_ACPLTypes__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_ccx_public_acpl_model_mobx_ACPLTypes__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _ccx_public_acpl_model_uxp_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("XQlG");
/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("2vnA");
/* harmony import */ var _AssetModel_SAMAssetModel__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("4Cys");
/* harmony import */ var _AssetCollection__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("Q5CW");
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("C0qj");
/* harmony import */ var _utils_sam_utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("O7FO");
/* harmony import */ var _types_CDOErrorResponse__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("DecH");
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
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;
};
var __metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var _a, _b;








let AssetListStatus;
let OrderDirection;
let OrderField;
const SAM_TO_CDO_STATUS = new Map();
const CDO_TO_SAM_SORT = new Map();
const CDO_TO_SAM_DIR = new Map();
/**
 * Clients that do not build SAM global `ACPLModel` variable won't have the constants needed
 * below, and so this module fails to load, blocking all of CDO from loading. Only populate the
 * constants when we know we've got them.
 */
function loadConstants() {
    AssetListStatus = _ccx_public_acpl_model_uxp_types__WEBPACK_IMPORTED_MODULE_1__[/* ACPLModel */ "a"].AssetListStatus;
    OrderDirection = _ccx_public_acpl_model_uxp_types__WEBPACK_IMPORTED_MODULE_1__[/* ACPLModel */ "a"].OrderDirection;
    OrderField = _ccx_public_acpl_model_uxp_types__WEBPACK_IMPORTED_MODULE_1__[/* ACPLModel */ "a"].OrderField;
    // SAM_TO_CDO_STATUS
    [
        [AssetListStatus.NotStarted, _constants__WEBPACK_IMPORTED_MODULE_5__[/* ProcessingState */ "n"].Pending],
        [AssetListStatus.Loading, _constants__WEBPACK_IMPORTED_MODULE_5__[/* ProcessingState */ "n"].Fetching],
        [AssetListStatus.ReadyHasMorePages, _constants__WEBPACK_IMPORTED_MODULE_5__[/* ProcessingState */ "n"].Fetching],
        [AssetListStatus.ReadyFullyLoaded, _constants__WEBPACK_IMPORTED_MODULE_5__[/* ProcessingState */ "n"].Done],
        [AssetListStatus.HadLoaderErrors, _constants__WEBPACK_IMPORTED_MODULE_5__[/* ProcessingState */ "n"].Error],
    ].forEach(([samVal, cdoVal]) => SAM_TO_CDO_STATUS.set(samVal, cdoVal));
    // CDO_TO_SAM_SORT
    [
        // accessDate not supported by SAM
        [_constants__WEBPACK_IMPORTED_MODULE_5__[/* UXSortBy */ "t"].accessDate, OrderField.Modified],
        [_constants__WEBPACK_IMPORTED_MODULE_5__[/* UXSortBy */ "t"].createDate, OrderField.Created],
        [_constants__WEBPACK_IMPORTED_MODULE_5__[/* UXSortBy */ "t"].modifiedDate, OrderField.Modified],
        // TODO: verify this is share date and not share status
        [_constants__WEBPACK_IMPORTED_MODULE_5__[/* UXSortBy */ "t"].shareDate, OrderField.Shared],
        // size not supported by SAM
        [_constants__WEBPACK_IMPORTED_MODULE_5__[/* UXSortBy */ "t"].size, OrderField.Modified],
        [_constants__WEBPACK_IMPORTED_MODULE_5__[/* UXSortBy */ "t"].title, OrderField.Name],
    ].forEach(([cdoVal, samVal]) => CDO_TO_SAM_SORT.set(cdoVal, samVal));
    // CDO_TO_SAM_DIR
    [
        [_constants__WEBPACK_IMPORTED_MODULE_5__[/* UXSortDir */ "w"].asc, OrderDirection.Ascending],
        [_constants__WEBPACK_IMPORTED_MODULE_5__[/* UXSortDir */ "w"].desc, OrderDirection.Descending],
    ].forEach(([cdoVal, samVal]) => CDO_TO_SAM_DIR.set(cdoVal, samVal));
}
if (_ccx_public_acpl_model_uxp_types__WEBPACK_IMPORTED_MODULE_1__[/* ACPLModel */ "a"]) {
    loadConstants();
}
class SAMSourceProvider {
    constructor(collection, assetSource, logger) {
        this.samToElementMap = new WeakMap();
        this.performFetch = Object(mobx__WEBPACK_IMPORTED_MODULE_2__[/* flow */ "q"])(this._performFetch);
        this.collection = collection;
        this.assetSource = assetSource;
        this.logger = logger;
        // Automatically wrap list items as CDO elements as the list changes
        Object(mobx__WEBPACK_IMPORTED_MODULE_2__[/* autorun */ "k"])(() => {
            if (this.assetList && this.assetList.items) {
                this.wrapAsElements(this.assetList.items);
            }
        });
        Object(mobx__WEBPACK_IMPORTED_MODULE_2__[/* autorun */ "k"])(() => {
            var _a;
            if (!this.assetList) {
                return;
            }
            const { status } = this.assetList;
            switch (status) {
                case AssetListStatus.NotStarted:
                    this.debug('status NotStarted', status);
                    break;
                case AssetListStatus.Loading:
                    this.debug('status Loading', status);
                    break;
                case AssetListStatus.ReadyHasMorePages:
                    this.debug('status ReadyHasMorePages', status);
                    break;
                case AssetListStatus.HadLoaderErrors:
                    this.debug('status HadLoaderErrors', status);
                    break;
                case AssetListStatus.ReadyFullyLoaded:
                    this.debug('status ReadyFullyLoaded', status);
                    if (this.collection.enablePerformanceMetrics) {
                        (_a = window === null || window === void 0 ? void 0 : window.performance) === null || _a === void 0 ? void 0 : _a.measure('cdo:SAMSourceProvider-readyFullyLoaded');
                    }
                    break;
                default:
                    this.error('unrecognized status', status);
            }
        });
    }
    static get AssetListStatus() {
        return AssetListStatus;
    }
    static get OrderDirection() {
        return OrderDirection;
    }
    static get OrderField() {
        return OrderField;
    }
    error(msg, ...args) {
        this.logger.error(`[SAMSourceProvider] ${msg}`, ...args);
    }
    debug(msg, ...args) {
        this.logger.debug(`[SAMSourceProvider] ${msg}`, ...args);
    }
    wrapAsElements(items) {
        var _a, _b, _c;
        const PERFORMANCE_MARK_NAME_COLLECTIION_WRAPASELEMENTS = 'cdo:SAMSourceProvider-wrapAsElements';
        if (this.collection.enablePerformanceMetrics) {
            (_a = window === null || window === void 0 ? void 0 : window.performance) === null || _a === void 0 ? void 0 : _a.clearMarks(PERFORMANCE_MARK_NAME_COLLECTIION_WRAPASELEMENTS);
            (_b = window === null || window === void 0 ? void 0 : window.performance) === null || _b === void 0 ? void 0 : _b.mark(PERFORMANCE_MARK_NAME_COLLECTIION_WRAPASELEMENTS);
        }
        this.collection.elements.replace(items.map(item => {
            if (this.samToElementMap.has(item)) {
                return this.samToElementMap.get(item);
            }
            this.samToElementMap.set(item, _AssetModel_SAMAssetModel__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].fromSamAsset(item));
            return this.samToElementMap.get(item);
        }));
        if (this.collection.enablePerformanceMetrics) {
            (_c = window === null || window === void 0 ? void 0 : window.performance) === null || _c === void 0 ? void 0 : _c.measure('cdo:SAMSourceProvider-wrapAsElements', PERFORMANCE_MARK_NAME_COLLECTIION_WRAPASELEMENTS);
        }
    }
    get fetchState() {
        if (!this.assetList) {
            // fetch not called yet
            return _constants__WEBPACK_IMPORTED_MODULE_5__[/* ProcessingState */ "n"].Pending;
        }
        const { status } = this.assetList;
        if (status === AssetListStatus.HadLoaderErrors && !this.collection.isOnline()) {
            // For parity with ACPFetchFolderCollection, do not treat "network disconnected" error as
            // an error state.
            return _constants__WEBPACK_IMPORTED_MODULE_5__[/* ProcessingState */ "n"].Done;
        }
        if (SAM_TO_CDO_STATUS.has(status)) {
            return SAM_TO_CDO_STATUS.get(status);
        }
        // In case new status codes are added, fall back to "done"
        this.error('Unhandled AssetListStatus value: ', status);
        return _constants__WEBPACK_IMPORTED_MODULE_5__[/* ProcessingState */ "n"].Done;
    }
    *_performFetch(criteria, localOnly, correlationId) {
        this.debug('performFetch', criteria, localOnly, correlationId);
        if (localOnly && this.collection.isOnline()) {
            // SAM fetches cached items automatically when online
            return {};
        }
        if (!this.assetList) {
            // sortBy, sortDir are copied from `criteria` to `this` by Collection
            const orderBy = CDO_TO_SAM_SORT.get(this.collection.sortBy);
            const dir = CDO_TO_SAM_DIR.get(this.collection.sortDir);
            this.assetList = this.assetSource.getList(dir, orderBy);
        }
        else if (this.assetList.status === AssetListStatus.ReadyHasMorePages) {
            this.assetList.loadMoreItems();
        }
        else if (this.assetList.status === AssetListStatus.HadLoaderErrors) {
            this.debug('...HadLoaderErrors');
            if (!this.collection.isOnline()) {
                // Don't throw, being offline is not an error condition
                return {};
            }
            this.debug('...online, try to reload');
            this.assetList.load();
        }
        else if (this.assetList.status === AssetListStatus.ReadyFullyLoaded) {
            this.debug('...reloading due to user-initiated refresh');
            this.assetList.load();
        }
        else {
            this.debug('...assetList is defined, but no work to do (status: %d)', this.assetList.status);
            return {};
        }
        this.debug('...load started, currently have %d items', this.assetList.items.length);
        yield Object(mobx__WEBPACK_IMPORTED_MODULE_2__[/* when */ "I"])(() => this.assetList.status !== AssetListStatus.Loading);
        const { status: newStatus } = this.assetList;
        // Only throw exception when online, as "network disconnected" is not an
        // error condition when offline.
        if (newStatus === AssetListStatus.HadLoaderErrors && this.collection.isOnline()) {
            // Exception handled as reject, ending the fetchElements loop
            const { errors = [] } = this.assetList;
            // Collection expects error is a fetch Response
            const { status, isFakeStatus } = Object(_utils_sam_utils__WEBPACK_IMPORTED_MODULE_6__[/* extractHTTPCodeFromSamError */ "c"])(errors[0]);
            throw new _types_CDOErrorResponse__WEBPACK_IMPORTED_MODULE_7__[/* default */ "b"](status, errors.join(', '), this.constructor.name, isFakeStatus);
        }
        // No data needs to be processed, SAM/autorun handles it.
        return {};
    }
    getNextPageCriteria(results, criteria, localOnly) {
        if (localOnly && this.collection.isOnline()) {
            // SAM manages fetching cached items automatically when online
            return;
        }
        const { status } = this.assetList;
        if (status === AssetListStatus.ReadyHasMorePages) {
            return { hasMorePages: true };
        }
    }
}
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_2__[/* observable */ "z"],
    __metadata("design:type", typeof (_a = typeof _ccx_public_acpl_model_mobx_ACPLTypes__WEBPACK_IMPORTED_MODULE_0__["IACPLAssetList"] !== "undefined" && _ccx_public_acpl_model_mobx_ACPLTypes__WEBPACK_IMPORTED_MODULE_0__["IACPLAssetList"]) === "function" ? _a : Object)
], SAMSourceProvider.prototype, "assetList", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_2__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [Array]),
    __metadata("design:returntype", void 0)
], SAMSourceProvider.prototype, "wrapAsElements", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_2__[/* computed */ "l"],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], SAMSourceProvider.prototype, "fetchState", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_2__[/* action */ "j"],
    __metadata("design:type", Object)
], SAMSourceProvider.prototype, "performFetch", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_2__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [typeof (_b = typeof _AssetCollection__WEBPACK_IMPORTED_MODULE_4__["ICriteria"] !== "undefined" && _AssetCollection__WEBPACK_IMPORTED_MODULE_4__["ICriteria"]) === "function" ? _b : Object, Boolean, String]),
    __metadata("design:returntype", void 0)
], SAMSourceProvider.prototype, "_performFetch", null);
/* harmony default export */ __webpack_exports__["a"] = (SAMSourceProvider);


/***/ }),

/***/ "MzeL":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var elliptic = exports;
elliptic.version = __webpack_require__("KAEN").version;
elliptic.utils = __webpack_require__("86MQ");
elliptic.rand = __webpack_require__("/ayr");
elliptic.curve = __webpack_require__("QTa/");
elliptic.curves = __webpack_require__("DLvh"); // Protocols

elliptic.ec = __webpack_require__("uagp");
elliptic.eddsa = __webpack_require__("lF1L");

/***/ }),

/***/ "N+23":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

/**
 *  Copyright 2021 Adobe. All rights reserved.
 *  This file is licensed to you 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
 *
 *  Unless required by applicable law or agreed to in writing, software distributed under
 *  the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 *  OF ANY KIND, either express or implied. See the License for the specific language
 *  governing permissions and limitations under the License.
 */
// Provides explicit indication of elements receiving focus through keyboard interaction rather than mouse or touch.

(function (doc) {
  // In case file is imported in SSR context, don't polyfill anything
  if (!doc) {
    return;
  }

  var NAVIGATION_KEYS = ['Tab', 'ArrowUp', 'ArrowRight', 'ArrowDown', 'ArrowLeft', 'Home', 'End', 'PageUp', 'PageDown', 'Enter', ' ', 'Escape',
  /* IE9 and Firefox < 37 */
  'Up', 'Right', 'Down', 'Left', 'Esc'];
  var TEXT_INPUT_TYPES = ['text', 'date', 'datetime-local', 'email', 'month', 'number', 'password', 'search', 'tel', 'time', 'url', 'week'];
  var keyboardFocus = false;
  var elements = doc.getElementsByClassName('focus-ring');

  function onKeydownHandler(event) {
    if (event.ctrlKey || event.altKey || event.metaKey || NAVIGATION_KEYS.indexOf(event.key) === -1) {
      return;
    }

    keyboardFocus = true;

    if (doc.activeElement && doc.activeElement !== doc.body && doc.activeElement.tagName !== 'TEXTAREA' && !(doc.activeElement.tagName === 'INPUT' && TEXT_INPUT_TYPES.indexOf(doc.activeElement.type) !== -1)) {
      doc.activeElement.classList.add('focus-ring');
    }
  }

  function onMousedownHandler() {
    keyboardFocus = false;

    for (var i = 0; i < elements.length; i++) {
      elements[i].classList.remove('focus-ring');
    }
  }

  function onFocusHandler(event) {
    var classList = event.target.classList;

    if (classList && (keyboardFocus || event.nativeEvent.focusChangeReason === 'keyboard')) {
      classList.add('focus-ring');
    }
  }

  function onBlurHandler(event) {
    var classList = event.target.classList;
    classList && classList.remove('focus-ring');
  }

  doc.addEventListener('keydown', onKeydownHandler, true);
  doc.addEventListener('mousedown', onMousedownHandler, true);
  doc.addEventListener('focus', onFocusHandler, true);
  doc.addEventListener('blur', onBlurHandler, true);
})(typeof window === 'undefined' ? undefined : document);

/***/ }),

/***/ "N2jm":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


const inherits = __webpack_require__("P7XM");

const Buffer = __webpack_require__("xZGU").Buffer;

const Node = __webpack_require__("g2Dh"); // Import DER constants


const der = __webpack_require__("i3FT");

function DEREncoder(entity) {
  this.enc = 'der';
  this.name = entity.name;
  this.entity = entity; // Construct base tree

  this.tree = new DERNode();

  this.tree._init(entity.body);
}

module.exports = DEREncoder;

DEREncoder.prototype.encode = function encode(data, reporter) {
  return this.tree._encode(data, reporter).join();
}; // Tree methods


function DERNode(parent) {
  Node.call(this, 'der', parent);
}

inherits(DERNode, Node);

DERNode.prototype._encodeComposite = function encodeComposite(tag, primitive, cls, content) {
  const encodedTag = encodeTag(tag, primitive, cls, this.reporter); // Short form

  if (content.length < 0x80) {
    const header = Buffer.alloc(2);
    header[0] = encodedTag;
    header[1] = content.length;
    return this._createEncoderBuffer([header, content]);
  } // Long form
  // Count octets required to store length


  let lenOctets = 1;

  for (let i = content.length; i >= 0x100; i >>= 8) lenOctets++;

  const header = Buffer.alloc(1 + 1 + lenOctets);
  header[0] = encodedTag;
  header[1] = 0x80 | lenOctets;

  for (let i = 1 + lenOctets, j = content.length; j > 0; i--, j >>= 8) header[i] = j & 0xff;

  return this._createEncoderBuffer([header, content]);
};

DERNode.prototype._encodeStr = function encodeStr(str, tag) {
  if (tag === 'bitstr') {
    return this._createEncoderBuffer([str.unused | 0, str.data]);
  } else if (tag === 'bmpstr') {
    const buf = Buffer.alloc(str.length * 2);

    for (let i = 0; i < str.length; i++) {
      buf.writeUInt16BE(str.charCodeAt(i), i * 2);
    }

    return this._createEncoderBuffer(buf);
  } else if (tag === 'numstr') {
    if (!this._isNumstr(str)) {
      return this.reporter.error('Encoding of string type: numstr supports ' + 'only digits and space');
    }

    return this._createEncoderBuffer(str);
  } else if (tag === 'printstr') {
    if (!this._isPrintstr(str)) {
      return this.reporter.error('Encoding of string type: printstr supports ' + 'only latin upper and lower case letters, ' + 'digits, space, apostrophe, left and rigth ' + 'parenthesis, plus sign, comma, hyphen, ' + 'dot, slash, colon, equal sign, ' + 'question mark');
    }

    return this._createEncoderBuffer(str);
  } else if (/str$/.test(tag)) {
    return this._createEncoderBuffer(str);
  } else if (tag === 'objDesc') {
    return this._createEncoderBuffer(str);
  } else {
    return this.reporter.error('Encoding of string type: ' + tag + ' unsupported');
  }
};

DERNode.prototype._encodeObjid = function encodeObjid(id, values, relative) {
  if (typeof id === 'string') {
    if (!values) return this.reporter.error('string objid given, but no values map found');
    if (!values.hasOwnProperty(id)) return this.reporter.error('objid not found in values map');
    id = values[id].split(/[\s.]+/g);

    for (let i = 0; i < id.length; i++) id[i] |= 0;
  } else if (Array.isArray(id)) {
    id = id.slice();

    for (let i = 0; i < id.length; i++) id[i] |= 0;
  }

  if (!Array.isArray(id)) {
    return this.reporter.error('objid() should be either array or string, ' + 'got: ' + JSON.stringify(id));
  }

  if (!relative) {
    if (id[1] >= 40) return this.reporter.error('Second objid identifier OOB');
    id.splice(0, 2, id[0] * 40 + id[1]);
  } // Count number of octets


  let size = 0;

  for (let i = 0; i < id.length; i++) {
    let ident = id[i];

    for (size++; ident >= 0x80; ident >>= 7) size++;
  }

  const objid = Buffer.alloc(size);
  let offset = objid.length - 1;

  for (let i = id.length - 1; i >= 0; i--) {
    let ident = id[i];
    objid[offset--] = ident & 0x7f;

    while ((ident >>= 7) > 0) objid[offset--] = 0x80 | ident & 0x7f;
  }

  return this._createEncoderBuffer(objid);
};

function two(num) {
  if (num < 10) return '0' + num;else return num;
}

DERNode.prototype._encodeTime = function encodeTime(time, tag) {
  let str;
  const date = new Date(time);

  if (tag === 'gentime') {
    str = [two(date.getUTCFullYear()), two(date.getUTCMonth() + 1), two(date.getUTCDate()), two(date.getUTCHours()), two(date.getUTCMinutes()), two(date.getUTCSeconds()), 'Z'].join('');
  } else if (tag === 'utctime') {
    str = [two(date.getUTCFullYear() % 100), two(date.getUTCMonth() + 1), two(date.getUTCDate()), two(date.getUTCHours()), two(date.getUTCMinutes()), two(date.getUTCSeconds()), 'Z'].join('');
  } else {
    this.reporter.error('Encoding ' + tag + ' time is not supported yet');
  }

  return this._encodeStr(str, 'octstr');
};

DERNode.prototype._encodeNull = function encodeNull() {
  return this._createEncoderBuffer('');
};

DERNode.prototype._encodeInt = function encodeInt(num, values) {
  if (typeof num === 'string') {
    if (!values) return this.reporter.error('String int or enum given, but no values map');

    if (!values.hasOwnProperty(num)) {
      return this.reporter.error('Values map doesn\'t contain: ' + JSON.stringify(num));
    }

    num = values[num];
  } // Bignum, assume big endian


  if (typeof num !== 'number' && !Buffer.isBuffer(num)) {
    const numArray = num.toArray();

    if (!num.sign && numArray[0] & 0x80) {
      numArray.unshift(0);
    }

    num = Buffer.from(numArray);
  }

  if (Buffer.isBuffer(num)) {
    let size = num.length;
    if (num.length === 0) size++;
    const out = Buffer.alloc(size);
    num.copy(out);
    if (num.length === 0) out[0] = 0;
    return this._createEncoderBuffer(out);
  }

  if (num < 0x80) return this._createEncoderBuffer(num);
  if (num < 0x100) return this._createEncoderBuffer([0, num]);
  let size = 1;

  for (let i = num; i >= 0x100; i >>= 8) size++;

  const out = new Array(size);

  for (let i = out.length - 1; i >= 0; i--) {
    out[i] = num & 0xff;
    num >>= 8;
  }

  if (out[0] & 0x80) {
    out.unshift(0);
  }

  return this._createEncoderBuffer(Buffer.from(out));
};

DERNode.prototype._encodeBool = function encodeBool(value) {
  return this._createEncoderBuffer(value ? 0xff : 0);
};

DERNode.prototype._use = function use(entity, obj) {
  if (typeof entity === 'function') entity = entity(obj);
  return entity._getEncoder('der').tree;
};

DERNode.prototype._skipDefault = function skipDefault(dataBuffer, reporter, parent) {
  const state = this._baseState;
  let i;
  if (state['default'] === null) return false;
  const data = dataBuffer.join();
  if (state.defaultBuffer === undefined) state.defaultBuffer = this._encodeValue(state['default'], reporter, parent).join();
  if (data.length !== state.defaultBuffer.length) return false;

  for (i = 0; i < data.length; i++) if (data[i] !== state.defaultBuffer[i]) return false;

  return true;
}; // Utility methods


function encodeTag(tag, primitive, cls, reporter) {
  let res;
  if (tag === 'seqof') tag = 'seq';else if (tag === 'setof') tag = 'set';
  if (der.tagByName.hasOwnProperty(tag)) res = der.tagByName[tag];else if (typeof tag === 'number' && (tag | 0) === tag) res = tag;else return reporter.error('Unknown tag: ' + tag);
  if (res >= 0x1f) return reporter.error('Multi-octet tag encoding unsupported');
  if (!primitive) res |= 0x20;
  res |= der.tagClassByName[cls || 'universal'] << 6;
  return res;
}

/***/ }),

/***/ "NAiB":
/***/ (function(module, exports) {

/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
module.exports = {
  'ccd.infoPanel.detail.created': 'Erstellt',
  'ccd.infoPanel.detail.modified': 'Geändert',
  'ccd.infoPanel.detail.size': 'Größe',
  'ccd.infoPanel.detail.shared': 'Freigegeben',
  'ccd.header.renameFolder': 'Ordner umbenennen',
  'ccd.menu.addToFavourites': 'Zu Verknüpfungen hinzufügen',
  'ccd.menu.removeFromFavourites': 'Verknüpfung entfernen',
  'ccd.menu.viewonweb': 'Im Web anzeigen',
  'ccd.menu.share': 'Freigeben',
  'ccd.menu.openWith': 'Öffnen in',
  'ccd.menu.changeDefaultApp': 'Standardprogramm ändern...',
  'ccd.menu.default': '(Standard)',
  'ccd.menu.export': 'Als lokale Kopie exportieren',
  'ccd.menu.download': 'Herunterladen',
  'ccd.menu.createNew': 'Neu erstellen…',
  'ccd.menu.launch': 'STARTEN',
  'actionMenuItem.permdelete': 'Endgültig löschen',
  'tab.Cloud Documents': 'Ihre Dateien',
  'tab.Home': 'Startseite',
  'header.CloudDocuments': 'Ihre Dateien',
  'header.SharedWithYou': 'Für Sie freigegeben',
  'header.Deleted': 'Gelöscht',
  'header.Deleted.AssetsWebLink': 'Um alle gelöschten Elemente anzuzeigen, gehen Sie zu Assets Web.',
  'header.SelectedDocuments': '{numSelected, plural, =1 {#} other {#}} ausgewählt',
  'header.size': 'Größe',
  'header.title': 'Name',
  'header.modifiedDate': 'Änderungsdatum',
  'header.createDate': 'Erstellungsdatum',
  'header.shareDate': 'Freigabedatum',
  'header.SortBy': 'Sortieren nach',
  'header.infoPopover.body': 'Es werden nur kompatible Dateien angezeigt. Um alle Dateien anzuzeigen, besuchen Sie Creative Cloud im Web.',
  'header.infoPopover.link': 'Zu Creative Cloud',
  'header.dragImport': 'Hochladen auf: {displayName}',
  'collaborators.onlyYou': 'Nur Sie',
  'collaborators.Owner': '{displayName} (Eigentümer)',
  'collaborators.More': '{numItems, plural, other {+# weitere}}',
  'empty.offline.root.title': 'Keine Verbindung',
  'empty.offline.root.subtitle': 'Elemente, die angezeigt wurden, während Sie online waren, werden hier angezeigt, wenn Sie die Verbindung wiederherstellen.',
  'empty.offline.folder.title': 'Ordner konnte nicht geladen werden',
  'empty.offline.folder.subtitle': 'Keine Internetverbindung. Stellen Sie die Verbindung wieder her, um alles anzuzeigen.',
  'empty.online.cdp.saveas.root.title': 'Keine Cloud-Dokumente vorhanden',
  'empty.online.cdp.saveas.root.subtitle': 'Bei Cloud-Dokumenten wird Ihre Arbeit überall und auf jedem Gerät immer aktualisiert – Sie benötigen lediglich eine Internetverbindung.',
  'empty.online.cdp.saveas.root.subtitle.sprk': 'Alle Ihre Cloud-Dokumente von XD finden Sie hier. Arbeiten Sie überall, auch offline. Änderungen an Cloud-Dokumenten werden automatisch gespeichert und können im Dokumentverlauf angezeigt werden.',
  'empty.online.cdp.saveas.root.subtitle.phxs': 'Alle Ihre Cloud-Dokumente aus Photoshop für Mac, Windows und iPad finden Sie hier.',
  'empty.online.cdp.saveas.root.subtitle.ilst': 'Alle Ihre Cloud-Dokumente aus Illustrator für Mac und Windows finden Sie hier.',
  'empty.online.cdp.saveas.root.subtitle.idsn': 'Alle Ihre Cloud-Dokumente aus InDesign für Mac und Windows finden Sie hier.',
  'empty.online.cdp.saveas.folder.title': 'Keine Cloud-Dokumente vorhanden',
  'empty.online.cdp.saveas.folder.subtitle': 'Wenn Sie in diesem Ordner ein kompatibles Cloud-Dokument ablegen, wird es hier angezeigt.',
  'empty.online.cdp.open.root.title': 'Keine Cloud-Dokumente vorhanden',
  'empty.online.cdp.open.root.subtitle': 'Wenn Sie in diesem Ordner ein kompatibles Cloud-Dokument ablegen, wird es hier angezeigt.',
  'empty.online.cdp.open.root.subtitle.sprk': 'Alle Ihre Cloud-Dokumente von XD finden Sie hier. Arbeiten Sie überall, auch offline. Änderungen an Cloud-Dokumenten werden automatisch gespeichert und können im Dokumentverlauf angezeigt werden.',
  'empty.online.cdp.open.root.subtitle.phxs': 'Alle Ihre Cloud-Dokumente aus Photoshop für Mac, Windows und iPad finden Sie hier.',
  'empty.online.cdp.open.root.subtitle.ilst': 'Alle Ihre Cloud-Dokumente aus Illustrator für Mac und Windows finden Sie hier.',
  'empty.online.cdp.open.root.subtitle.idsn': 'Alle Ihre Cloud-Dokumente aus InDesign für Mac und Windows finden Sie hier.',
  'empty.online.cdp.open.folder.title': 'Keine Cloud-Dokumente vorhanden',
  'empty.online.cdp.open.folder.subtitle': 'Wenn Sie in diesem Ordner ein kompatibles Cloud-Dokument ablegen, wird es hier angezeigt.',
  'empty.online.cdo.root.title': 'Keine Cloud-Dokumente vorhanden',
  'empty.online.cdo.root.subtitle': 'Arbeiten Sie nahtlos von überall aus mit anderen zusammen, selbst wenn Sie offline sind. Änderungen werden automatisch gespeichert und im Dateiverlauf angezeigt.',
  'empty.online.cdo.root.subtitle.sprk': 'Arbeiten Sie nahtlos in Echtzeit mit anderen zusammen und von überall aus, auch offline. Änderungen werden automatisch gespeichert und im Dateiverlauf angezeigt.',
  'empty.online.cdo.root.subtitle.phxs': 'Arbeiten Sie nahtlos mit anderen zusammen: Überall, wo Sie sich bei Photoshop anmelden können, sogar offline. Änderungen werden automatisch gespeichert und im Dateiverlauf angezeigt.',
  'empty.online.cdo.root.subtitle.ilst': 'Arbeiten Sie nahtlos mit anderen zusammen: Überall, wo Sie sich bei Illustrator anmelden können, sogar offline. Änderungen werden automatisch gespeichert und im Dateiverlauf angezeigt.',
  'empty.online.cdo.root.subtitle.idsn': 'Sie können überall dort, wo Sie sich bei InDesign anmelden, auf Ihre Dokumente zugreifen. Änderungen werden automatisch gespeichert.',
  'empty.online.cdo.folder.title': 'Keine Cloud-Dokumente vorhanden',
  'empty.online.cdo.folder.subtitle': 'Wenn Sie in diesem Ordner ein kompatibles Cloud-Dokument ablegen, wird es hier angezeigt.',
  'empty.title.deleted': 'Keine gelöschten Dateien vorhanden',
  'empty.title.deleted_offline': 'Keine Verbindung',
  'empty.title.recent': 'Keine zuletzt verwendeten Dateien vorhanden',
  'empty.subtext.deleted_offline': 'Elemente, die gelöscht wurden, während Sie online waren, werden hier angezeigt, wenn Sie die Verbindung wiederherstellen.',
  'empty.title.shared_with_you': 'Keine freigegebenen Cloud-Dokumente vorhanden',
  'empty.subtext.shared_with_you': 'Cloud-Dokumente, die andere für Sie freigeben, werden hier angezeigt.',
  'empty.title.shared_with_you_offline': 'Keine Verbindung',
  'empty.subtext.shared_with_you_offline': 'Sobald die Verbindung wiederhergestellt wurde, können Sie freigegebene Dokumente anzeigen und bearbeiten.',
  'empty.title.error': 'Fehler',
  'empty.subtext.error': 'Starten Sie die Applikation neu und versuchen Sie es erneut.',
  'empty.subtext.error.web': 'Aktualisieren Sie Ihren Browser und versuchen Sie es erneut.',
  'empty.title.coresync.down': 'Fehler beim Laden',
  'empty.subtext.coresync.down': 'Cloud wird nicht synchronisiert. Stellen Sie sicher, dass der Creative Cloud-Client aktualisiert ist, oder versuchen Sie, die Applikation neu zu starten.',
  'empty.title.coresync.incompatible': 'Cloud-Dokumente können nicht geladen werden',
  'empty.subtext.coresync.incompatible': 'Einträge können derzeit nicht angezeigt werden. Aktualisieren Sie Ihre Version der Creative Cloud-Applikation und versuchen Sie es erneut.',
  'empty.title.cloudStorageDisabled': 'Es sind keine Cloud-Dokumente verfügbar',
  'empty.subtext.cloudStorageDisabled': 'Sie können in {productName} auch nur mit lokalen Dateien auf Ihrem Gerät arbeiten. Nähere Informationen hierzu erhalten Sie von Ihrem IT-Administrator.',
  'empty.title.logout': 'Melden Sie sich an, um auf Cloud-Dokumente zuzugreifen.',
  'empty.learnMore.link': 'Weitere Informationen',
  'trueEmpty.online.cdo.folder.title': 'Ordner ist leer',
  'trueEmpty.online.cdo.folder.subtitle': 'Fügen Sie zunächst Elemente hinzu.',
  'trueEmpty.online.cdp.saveas.folder.title': 'Noch keine Cloud-Dokumente',
  'trueEmpty.online.cdp.saveas.folder.subtitle': 'Bei Cloud-Dokumenten wird Ihre Arbeit überall und auf jedem Gerät immer aktualisiert – Sie benötigen lediglich eine Internetverbindung.',
  'trueEmpty.online.cdp.open.folder.title': 'Noch keine Cloud-Dokumente',
  'trueEmpty.online.cdp.open.folder.subtitle': 'Bei Cloud-Dokumenten wird Ihre Arbeit überall und auf jedem Gerät immer aktualisiert – Sie benötigen lediglich eine Internetverbindung.',
  'filter.prompt': 'Stichwort eingeben',
  'filter.title': 'Filter',
  'empty.filter.title': 'Keine Ergebnisse für „{filterString}“',
  'empty.filter.subtitle': 'Überprüfen Sie Ihren Suchbegriff auf korrekte Schreibung oder versuchen Sie es mit einem breitgefächerten Stichwort oder einem Filter für einen anderen Speicherort.',
  'beta.title': 'Synchronisation Ihrer Arbeit auf den verschiedenen Geräten',
  'beta.subtitle': 'Sie können auf Ihrem iPad und Desktop nahtlos Cloud-Dokumente in Photoshop bearbeiten. Allerdings liegt die Funktion momentan noch in der Betaversion vor. Daher kann es vorkommen, dass sie nicht immer erwartungsgemäß funktioniert. In den Einstellungen können Sie diese Funktion nach Bedarf aktivieren oder deaktivieren.',
  'beta.button': 'In den Einstellungen aktivieren',
  'beta.tag': 'BETA',
  'beta.feedback.link': 'Ihr Feedback zur Betaversion',
  'button.add-folder': 'Neuen Ordner erstellen',
  'button.upload': 'Hochladen...',
  'button.createnew': 'Neu erstellen',
  'button.reportAbuse': 'Missbrauch melden',
  'button.open': 'Öffnen',
  'button.select': 'Auswählen',
  'button.rename': 'Umbenennen',
  'button.pin.header': 'Immer offline zur Verfügung stellen',
  'button.pin': 'Immer offline zur Verfügung stellen',
  'button.unpin.header': 'Nur für Online-Nutzung zur Verfügung stellen',
  'button.unpin': 'Nur für Online-Nutzung zur Verfügung stellen',
  'button.duplicate': 'Duplizieren',
  'button.download': 'Herunterladen',
  'button.move': 'Verschieben',
  'button.delete': 'Löschen',
  'button.restore': 'Wiederherstellen',
  'button.permdelete': 'Endgültig löschen',
  'button.listview': 'Liste anzeigen',
  'button.gridview': 'Raster anzeigen',
  'button.sharesheetinvite': 'Zur Bearbeitung einladen',
  'button.sharesheetLink': 'Link abrufen',
  'button.shareSheetAction': 'Freigeben',
  'button.preview': 'Vorschau',
  'button.schedule': 'Zeitplan',
  'action.duplicate.suffix': '(Duplizieren)',
  'action.resolve_sync_error.suffix': 'kopieren',
  'statusIcon.conflicted': 'Konflikt bei der Synchronisierung',
  'statusIcon.onlineOnly': 'Nur online verfügbar',
  'statusIcon.availableOffline': 'Offline verfügbar',
  'statusIcon.syncing': 'Synchronisieren...',
  'statusIcon.waitingToSync': 'Auf Synchronisation warten',
  'tooltip.error': 'Dokument öffnen, um Speicherkonflikt anzuzeigen',
  'toast.error.documentIsOpen': 'Schließen Sie {count, plural, =1 {das Dokument} other {die Dokumente}}, um diese Aktion auszuführen.',
  'toast.error.exceedsQuota.personal': 'Kein Kontospeicher mehr verfügbar',
  'toast.error.exceedsQuota.enterprise': 'Kein Speicherplatz mehr vorhanden, wenden Sie sich für weitere Informationen an Ihren Administrator',
  'toast.operation.duplicate.error': '{count, plural, =1 {Element konnte} other {{count} Elemente konnten}} nicht dupliziert werden.',
  'toast.operation.duplicate.success': '{count, plural, =1 {Element} other {{count} Elemente}} dupliziert.',
  'toast.operation.archive.error': '{count, plural, =1 {Element konnte} other {{count} Elemente konnten}} nicht gelöscht werden.',
  'toast.operation.archive.error.otherAppUncommittedChanges': 'Sie können keine Dateien löschen, die in anderen Anwendungen geöffnet sind. Schließen Sie sie und versuchen Sie es erneut.',
  'toast.operation.archive.undo.error': '{count, plural, =1 {Element konnte} other {{count} Elemente konnten}} nicht gelöscht werden.',
  'toast.operation.archive.success': '{count, plural, =1 {Element} other {{count} Elemente}} gelöscht.',
  'toast.operation.archive.undo.success': 'Wiederherstellen rückgängig gemacht.',
  'toast.operation.permdelete.error': '{count, plural, =1 {Element konnte} other {{count} Elemente konnten}} nicht endgültig gelöscht werden.',
  'toast.operation.permdelete.success': '{count, plural, =1 {Element} other {{count} Elemente}} endgültig gelöscht.',
  'toast.operation.rename.error': 'Element konnte nicht umbenannt werden.',
  'toast.operation.rename.undo.error': 'Element konnte nicht umbenannt werden.',
  'toast.operation.rename.error.duplicateName': 'An diesem Ort ist bereits ein Element mit diesem Namen vorhanden.',
  'toast.operation.rename.undo.error.duplicateName': 'An diesem Ort ist bereits ein Element mit diesem Namen vorhanden.',
  'toast.operation.rename.success': 'Element umbenannt.',
  'toast.operation.rename.undo.success': 'Umbenennen rückgängig gemacht.',
  'toast.operation.move.error': '{count, plural, =1 {Element konnte} other {{count} Elemente konnten}} nicht verschoben werden.',
  'toast.operation.move.undo.error': '{count, plural, =1 {Element konnte} other {{count} Elemente konnten}} nicht verschoben werden.',
  'toast.operation.move.error.duplicateFolderName': 'An diesem Ort ist bereits ein Ordner mit diesem Namen vorhanden.',
  'toast.operation.move.undo.error.duplicateFolderName': 'An diesem Ort ist bereits ein Ordner mit diesem Namen vorhanden.',
  'toast.operation.move.error.duplicateDocName': '{count, plural, =1 {In diesem Ordner ist bereits ein Dokument mit diesem Namen vorhanden. Benennen Sie es um und versuchen Sie es erneut.} other {Die Dokumente können nicht verschoben werden, da bereits Dokumente mit dem gleichen Namen vorhanden sind.}}',
  'toast.operation.move.undo.error.duplicateDocName': '{count, plural, =1 {In diesem Ordner ist bereits ein Dokument mit diesem Namen vorhanden. Benennen Sie es um und versuchen Sie es erneut.} other {Die Dokumente können nicht verschoben werden, da bereits Dokumente mit dem gleichen Namen vorhanden sind.}}',
  'toast.operation.move.success': '{count, plural, =1 {Element} other {{count} Elemente}} verschoben.',
  'toast.operation.move.undo.success': 'Verschieben rückgängig gemacht.',
  'toast.operation.unarchive.error': '{count, plural, =1 {Element konnte} other {{count} Elemente konnten}} nicht wiederhergestellt werden.',
  'toast.operation.unarchive.undo.error': '{count, plural, =1 {Element konnte} other {{count} Elemente konnten}} nicht wiederhergestellt werden.',
  'toast.operation.unarchive.success': '{count, plural, =1 {Element} other {{count} Elemente}} wiederhergestellt.',
  'toast.operation.unarchive.undo.success': 'Löschen rückgängig gemacht.',
  'toast.operation.create_new_folder.success': 'Ordner erstellt.',
  'toast.operation.create_new_folder.error': 'Neuer Ordner konnte nicht erstellt werden.',
  'toast.operation.create_new_folder.error.duplicateName': 'An diesem Ort ist bereits ein Ordner mit diesem Namen vorhanden.',
  'toast.operation.user_pin.success': '{count, plural, =1 {Element ist} other {{count} Elemente sind}} offline verfügbar.',
  'toast.operation.user_pin.error': '{count, plural, =1 {Element konnte} other {{count} Elemente konnten}} nicht für die Offline-Nutzung vorbereitet werden.',
  'toast.operation.user_unpin.success': '{count, plural, =1 {Element ist} other {{count} Elemente sind}} nur online verfügbar.',
  'toast.operation.user_unpin.error': '{count, plural, =1 {Element konnte} other {{count} Elemente konnten}} nicht als nur online verfügbar festgelegt werden.',
  'toast.operation.resolve_sync_error.success': 'Von „{name}“ wurde eine Kopie erstellt. Sie können die beiden Dokumente vergleichen und eventuelle Unterschiede zusammenführen.',
  'toast.ccd.scroll_to_item.fetching': 'Datei wird abgerufen…',
  'toast.ccd.scroll_to_item.error': 'Datei nicht gefunden',
  'toast.info.disabled_rename_to_open_item': 'XD Dokumente aus Vorversionen müssen erst geöffnet werden, bevor sie hier umbenannt werden können.',
  'toast.action.disabled_rename_to_open_item': 'Dokument öffnen',
  'toast.error.rename.invalidName': 'Dieser Name enthält unzulässige Zeichen.',
  'toast.error.rename.invalidChar': 'Folgende Zeichen sind für Namen unzulässig: {characters}',
  'toast.error.rename.invalidEnd': 'Der Name darf nicht mit „.“ oder einem Leerzeichen enden.',
  'toast.error.rename.charRestriction': 'Namen dürfen nicht länger als 200 Zeichen sein.',
  'toast.error.rename.duplicateName': 'An diesem Ort ist bereits ein Cloud-Dokument mit diesem Namen vorhanden.',
  'toast.success.reportAbuse': 'Missbrauch gemeldet',
  'toast.error.reportAbuse': 'Melden des Missbrauchs fehlgeschlagen',
  'toast.operation.undoLabel': 'Rückgängig',
  'dialog.permdelete.heading': 'Endgültig löschen',
  'dialog.permdelete.warning': 'Diese Aktion kann nicht rückgängig gemacht werden. Folgendes geht verloren:',
  'dialog.permdelete.cancelButton': 'Abbrechen',
  'dialog.permdelete.confirmButton': 'Endgültig löschen',
  'dialog.permdelete.countItems': '{count, plural, =1 {# Element} other {# Elemente}}',
  'dialog.nonemptyfolder.heading': 'Möchten Sie {count, plural, =1 {diesen Ordner} other {diese Ordner}} wirklich löschen?',
  'dialog.nonemptyfolder.warning': '{count, plural, =1 {Dieser Ordner ist nicht leer und kann} other {Diese Ordner sind nicht leer und können}} Dateien enthalten, die in {appName} nicht sichtbar sind. Sie können mit dem Löschen fortfahren oder {count, plural, =1 {den Ordner} other {die Ordner}} im Web anzeigen und {count, plural, =1 {seine} other {ihre}} Inhalte ansehen.  {viewOnWebLink}',
  'dialog.nonemptyfolder.cancelButton': 'Abbrechen',
  'dialog.nonemptyfolder.confirmButton': 'Löschen',
  'dialog.nonemptyfolder.viewOnWebButton': 'Im Web anzeigen',
  'dialog.addfolder.heading': 'Neuen Ordner erstellen',
  'dialog.addfolder.cancelButton': 'Abbrechen',
  'dialog.addfolder.confirmButton': 'Speichern',
  'dialog.addfolder.placeholder': 'Neuer Ordner',
  'dialog.addfolder.invalidChar': 'Folgende Zeichen sind in Namen nicht zulässig: {characters}',
  'dialog.addfolder.invalidName': 'Dieser Ordner enthält unzulässige Zeichen.',
  'dialog.addfolder.invalidEnd': 'Der Name darf nicht mit „.“ oder einem Leerzeichen enden.',
  'dialog.addfolder.duplicateName': 'An diesem Ort ist bereits ein Ordner mit diesem Namen vorhanden.',
  'dialog.addfolder.charRestriction': 'Namen dürfen nicht länger als 200 Zeichen sein.',
  'dialog.moveFolder.heading': 'Verschieben zu...',
  'dialog.moveFolder.cancelButton': 'Abbrechen',
  'dialog.moveFolder.moveButton': 'Verschieben',
  'dialog.moveFolder.createNewFolderButton': 'Ordner hinzufügen',
  'dialog.reportAbuse.cancelButton': 'Abbrechen',
  'dialog.reportAbuse.reportAbuseButton': 'Missbrauch melden',
  'dialog.reportAbuse.heading': 'Missbrauch melden',
  'dialog.reportAbuse.emailInput': 'Ihre E-Mail-Adresse',
  'dialog.reportAbuse.nameInput': 'Ihr Name',
  'dialog.reportAbuse.radioButtonText': 'Warum melden Sie diesen Inhalt?',
  'dialog.reportAbuse.defamation': 'Verleumdung',
  'dialog.reportAbuse.hate': 'Rassistische oder diskriminierende Inhalte',
  'dialog.reportAbuse.trademark': 'Markenverletzung',
  'dialog.reportAbuse.pornography': 'Nicht jugendfreie Inhalte',
  'dialog.reportAbuse.vulgar': 'Anstößige Inhalte',
  'dialog.reportAbuse.other': 'Andere',
  'dialog.reportAbuse.inappropriate': 'Unangemessen',
  'dialog.reportAbuse.age': 'Falsches Alter',
  'dialog.reportAbuse.gender': 'Falsches Geschlecht',
  'dialog.reportAbuse.description': 'Wenn Sie der Meinung sind, dass dieser Creative Cloud-Inhalt gegen die Adobe-Nutzungsbedingungen verstößt, können Sie den Inhalt melden, indem Sie dieses kurze Formular ausfüllen.',
  'dialog.reportAbuse.describeConcern': 'Bedenken beschreiben',
  'dialog.reportAbuse.success': 'Missbrauch gemeldet',
  'dialog.reportAbuse.failure': 'Melden des Missbrauchs fehlgeschlagen',
  'dialog.reportAbuse.textAreaTitle': 'Beschreiben Sie Ihre Bedenken.',
  'dialog.reportAbuse.required': ' Erforderlich',
  'dialog.cachefull.title': 'Kann nicht offline zur Verfügung gestellt werden',
  'dialog.cachefull.message': 'Auf diesem Gerät steht kein Speicherplatz mehr zur Verfügung. Legen Sie Dokumente als nur online verfügbar fest, um Speicherplatz freizugeben.',
  'dialog.cachefull.confirm': 'OK',
  'dialog.syncError.heading': 'Synchronisation mit der Cloud wurde abgebrochen',
  'dialog.syncError.body1': 'Wir empfehlen, dass Sie Ihre neueste Version als Kopie speichern und das Dokument auf die letzte in der Cloud gespeicherte Version zurücksetzen.',
  'dialog.syncError.body2': 'Sie können dieses Dokument öffnen und Änderungen vornehmen, Ihre Änderungen werden jedoch nicht in der Cloud gespeichert.',
  'dialog.syncError.offline': 'Sie müssen online sein, damit Sie eine Kopie speichern und das Original wiederherstellen können.',
  'dialog.syncError.learnMore': 'Weitere Infos',
  'dialog.syncError.resolveButton': 'Kopie speichern und wiederherstellen',
  'dialog.syncError.openButton': 'Öffnen',
  'dialog.syncErrorCopyFail.heading': 'Es konnte keine Kopie gespeichert werden',
  'dialog.syncErrorCopyFail.body1': 'Sie können dieses Dokument weiterhin öffnen und Änderungen vornehmen, Ihre Änderungen werden jedoch nicht in der Cloud gespeichert.',
  'dialog.syncErrorCopyFail.body2': 'Wenden Sie sich an die Adobe-Kundenunterstützung, um weitere Unterstützung zu erhalten. (Fehler: LocalContentSyncSuspended)',
  'dialog.syncErrorCopyFail.closeButton': 'Schließen',
  'dialog.syncErrorCopyFail.contactUs': 'Kundenunterstützung',
  'dialog.syncErrorPurgeFail.heading': 'Die letzte in der Cloud gespeicherte Version konnte nicht wiederhergestellt werden',
  'dialog.syncErrorPurgeFail.body1': 'Eine Kopie Ihres Dokuments wurde erstellt, aber wir konnten Ihr Dokument nicht auf die letzte in der Cloud gespeicherte Version zurücksetzen.',
  'dialog.syncErrorPurgeFail.body2': 'Wenden Sie sich an die Adobe-Kundenunterstützung, um weitere Unterstützung zu erhalten. (Fehler: LocalContentSyncSuspended)',
  'dialog.syncErrorPurgeFail.closeButton': 'Schließen',
  'dialog.syncErrorPurgeFail.contactUs': 'Kundenunterstützung',
  'onboardingCdo.banner.title.sprk': 'Die bessere Art zu arbeiten',
  'onboardingCdo.banner.title.phxs': 'Verwenden Sie Photoshop auf dem iPad? Probieren Sie Cloud-Dokumente aus.',
  'onboardingCdo.banner.title.ilst': 'Unterstützung für Cloud-Dokumente in Illustrator',
  'onboardingCdo.banner.title.idsn': 'Unterstützung für Cloud-Dokumente in InDesign',
  'onboardingCdo.banner.message.sprk': 'Bearbeiten Sie Ihre Cloud-Dokumente von überall aus, auch offline. Änderungen werden automatisch gespeichert und im Dokumentverlauf angezeigt. Geben Sie sie frei, um nahtlos in Echtzeit mit anderen zusammenzuarbeiten.',
  'onboardingCdo.banner.message.phxs': 'Cloud-Dokumente werden bei der Arbeit automatisch in der Adobe-Cloud gespeichert, sodass Sie hier auf dem Desktop und dem iPad auf Ihre Dateien zugreifen können.',
  'onboardingCdo.banner.message.ilst': 'Cloud-Dokumente werden während der Arbeit in Illustrator automatisch in der Adobe-Cloud gespeichert. Sie können auch den Versionsverlauf abrufen, um die Entstehung Ihrer Arbeiten nachzuverfolgen.',
  'onboardingCdo.banner.message.idsn': 'InDesign-Cloud-Dokumente werden während der Arbeit automatisch in der Adobe-Cloud gespeichert.',
  'onboardingCdo.banner.linkTitle': 'Weitere Informationen',
  'onboardingCdo.banner.confirm': 'OK',
  'operation.progress.archive': '{batchSize, plural, =1 {1 Element wird} other {{inProgressNum} von {batchSize} Elementen werden}} gelöscht...',
  'operation.progress.unarchive': '{batchSize, plural, =1 {1 Element wird} other {{inProgressNum} von {batchSize} Elementen werden}} wiederhergestellt...',
  'operation.progress.move': '{batchSize, plural, =1 {1 Element wird} other {{inProgressNum} von {batchSize} Elementen werden}} verschoben...',
  'operation.progress.permdelete': '{batchSize, plural, =1 {1 Element wird} other {{inProgressNum} von {batchSize} Elementen werden}} endgültig gelöscht...',
  'operation.progress.rename': '{batchSize, plural, =1 {1 Element wird} other {{inProgressNum} von {batchSize} Elementen werden}} umbenannt...',
  'operation.progress.create_new_folder': 'Neuer Ordner wird erstellt...',
  'operation.progress.duplicate': '{batchSize, plural, =1 {1 Element wird} other {{inProgressNum} von {batchSize} Elementen werden}} dupliziert...',
  'operation.progress.user_pin': '{batchSize, plural, =1 {1 Element wird} other {{inProgressNum} von {batchSize} Elementen werden}} für die Offline-Nutzung vorbereitet...',
  'operation.progress.user_unpin': '{batchSize, plural, =1 {1 Element wird} other {{inProgressNum} von {batchSize} Elementen werden}} als nur online verfügbar festgelegt...',
  'operation.progress.resolve_sync_error': 'Die letzte in der Cloud gespeicherte Version wird kopiert und wiederhergestellt...',
  'tooltip.offline.general': 'Internetverbindung erforderlich.',
  'tooltip.offline.create-new-folder': 'Zum Erstellen von Ordnern ist eine Internetverbindung erforderlich.',
  'tooltip.offline.move': 'Zum Verschieben von Elementen ist eine Internetverbindung erforderlich.',
  'tooltip.syncing.disabled': 'Synchronisation läuft noch',
  'tooltip.rename.disabled': 'Ein ausgewähltes Dokument kann nicht umbenannt werden. Öffnen Sie es in der Host-Applikation, um ein Umbenennen zu ermöglichen.',
  'tooltip.rename.disabled.sprk': 'Diese Datei kann erst umbenannt werden, wenn Sie sie in XD öffnen.',
  'tooltip.syncSuspended.needsAction': 'Die Synchronisierung wurde abgebrochen. Sie können entsprechende Maßnahmen ergreifen.',
  'tooltip.syncSuspended.noAction': 'Die Synchronisation wurde angehalten. Diese Aktion ist derzeit nicht zulässig.',
  'Recents.title': 'Zuletzt verwendet',
  'Recents.cloudDocTitle': 'CLOUD-DOKUMENT',
  'Recents.error.subtext.coreSync': 'Zuletzt Verwendete sind derzeit nicht verfügbar, da die Creative Cloud-Synchronisation nicht erwartungsgemäß ausgeführt wird.',
  'item.saveForOfflineIconToolTip': 'Das Dokument wurde heruntergeladen und steht offline zur Verfügung.',
  'item.disconnected.cloudonly': 'Sie sind nicht verbunden. Stellen Sie die Verbindung wieder her, um das Dokument zu öffnen.',
  'item.coresyncdown.cloudonly': 'Datei kann nicht geladen werden. Ein Update oder Neustart von Creative Cloud kann das Problem beheben.',
  'folder.subtitle': 'ORDNER',
  'review.subtitle': 'REVIEW',
  'prototype.subtitle': 'PROTOTYP',
  'designspecs.subtitle': 'DESIGN-SPEZIFIKATION',
  'project.subtitle': 'PROJEKT',
  'library.subtitle': 'BIBLIOTHEK',
  'webLink.subtitle': 'WEB-LINK',
  'abbreviations.fileSize.byte': 'B',
  'abbreviations.fileSize.kilobyte': 'KB',
  'abbreviations.fileSize.megabyte': 'MB',
  'abbreviations.fileSize.gigabyte': 'GB',
  'abbreviations.fileSize.terabyte': 'TB',
  'sam.copyNameFormat': '%@ kopieren',
  'cloudsync.quota.title': 'CLOUD-SPEICHERPLATZ',
  'cloudsync.quota.percentage': '{percentageUsed} %',
  'cloudsync.quota.usage': '{usedCloudQuotaString} von {maxCloudQuotaString} belegt',
  'cloudsync.quota.warning': 'Ihr Cloud-Speicherplatz ist vollständig belegt. Buchen Sie ein Upgrade, um Ihre Arbeiten weiterhin zu synchronisieren.',
  'cloudsync.quota.error': 'Keine Speicherinformationen verfügbar...',
  'cloudsync.quota.upgrade': 'Upgrade buchen',
  'cloudsync.status.complete.title': 'Synchronisiert und gesichert',
  'cloudsync.status.syncing.title': 'Cloud-Dokumente werden synchronisiert',
  'cloudsync.status.syncing.descr': '{progress}/{total}',
  'cloudsync.status.offline.title': 'Offline arbeiten',
  'cloudsync.status.offline.descr': 'Dokumente werden lokal gespeichert. Sobald Sie wieder verbunden sind, werden sie mit der Cloud synchronisiert.',
  'cloudsync.status.disabled.title': 'Synchronisation deaktiviert',
  'cloudsync.status.disabled.descr': 'Dokumente werden lokal gespeichert. Sobald Speicherplatz verfügbar ist, werden sie mit der Cloud synchronisiert.',
  'cloudsync.item.progress.determinate': '{progress}/{total}',
  'cloudsync.item.progress.indeterminate': 'Synchronisierung...',
  'cloudsync.item.complete': 'Abgeschlossen',
  'cloudsync.items.header': 'Netzwerkaktivität',
  'cloudsync.alert.title.coresync.down': 'Fehler beim Laden',
  'cloudsync.alert.subtext.coresync.down': 'Cloud wird nicht synchronisiert. Stellen Sie sicher, dass der Creative Cloud-Client aktualisiert ist, oder versuchen Sie, die Applikation neu zu starten.',
  'cloudsync.alert.subtext.coresync.down.learnmore': 'Weitere Infos',
  'cloudsync.tooltip.offline': 'Keine Verbindung',
  'cloudsync.tooltip.error': 'Fehler',
  'cloudsync.tooltip.syncing': 'Speichern…',
  'cloudsync.tooltip.default': 'Gespeichert',
  'cloudsync.singleDoc.offline.title': 'Keine Verbindung',
  'cloudsync.singleDoc.offline.descr': 'Es wird versucht, die Verbindung wiederherzustellen...',
  'cloudsync.singleDoc.offline.timestamp': 'Letzte Synchronisation: {time}',
  'cloudsync.singleDoc.error.samInitFail.title': 'Die Synchronisierung wurde von der Cloud beendet',
  'cloudsync.singleDoc.error.samInitFail.descr': 'Bitte starten Sie diese Applikation neu, um die Synchronisierung Ihrer Arbeit fortzusetzen.',
  'cloudsync.singleDoc.error.syncSuspended.title': 'Die Synchronisierung wurde von der Cloud beendet',
  'cloudsync.singleDoc.error.syncSuspended.descr': 'Bitte starten Sie diese Applikation neu, um die Synchronisierung Ihrer Arbeit fortzusetzen.',
  'cloudsync.singleDoc.error.title': 'Fehler beim Laden',
  'cloudsync.singleDoc.error.descr': 'Cloud wird nicht synchronisiert. Stellen Sie sicher, dass der Creative Cloud-Client aktualisiert ist, oder versuchen Sie, die Applikation neu zu starten.',
  'cloudsync.singleDoc.error.learnMore': 'Weitere Infos',
  'cloudsync.singleDoc.disabled.quotaExceeded.title': 'Cloud-Speicherplatz ist belegt',
  'cloudsync.singleDoc.disabled.quotaExceeded.descr': 'Um Ihre Arbeit weiterhin zu synchronisieren, führen Sie bitte ein Upgrade von Creative Cloud durch.',
  'cloudsync.singleDoc.syncing.title': 'Speichern…',
  'cloudsync.singleDoc.syncing.descr': 'In Bearbeitung',
  'cloudsync.singleDoc.disabled.title': 'Speichern nicht möglich',
  'cloudsync.singleDoc.disabled.descr': 'Speicherplatz des Kontos erschöpft.',
  'cloudsync.singleDoc.complete.title': 'Datei gespeichert',
  'cloudsync.singleDoc.complete.timestamp': 'Letzte Synchronisation: {time}'
};

/***/ }),

/***/ "NAo7":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ModalController; });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _react_react_spectrum_Dialog__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("bLbN");
/* harmony import */ var _react_react_spectrum_Dialog__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Dialog__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _react_react_spectrum_ModalContainer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("i0ur");
/* harmony import */ var _react_react_spectrum_ModalContainer__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_ModalContainer__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var app_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("/0Ih");
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/




const styles = __webpack_require__("RYTC");
let modalKey, modalContext;
class ModalController {
    static dispatch(event) {
        try {
            modalContext.context.dispatch.trigger(event);
        }
        catch (error) {
            // Don't dispatch if not available
        }
    }
    static close() {
        _react_react_spectrum_ModalContainer__WEBPACK_IMPORTED_MODULE_2___default.a.hide(modalKey);
        ModalController.dispatch(app_constants__WEBPACK_IMPORTED_MODULE_3__[/* default */ "k"].events.MODAL_CLOSED);
    }
    static show(content, context, backdropClickable = true) {
        modalContext = context;
        modalKey = _react_react_spectrum_ModalContainer__WEBPACK_IMPORTED_MODULE_2___default.a.show(react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_react_react_spectrum_Dialog__WEBPACK_IMPORTED_MODULE_1___default.a, { backdropClickable: backdropClickable, className: styles.root, onOpen: ModalController.dispatch(app_constants__WEBPACK_IMPORTED_MODULE_3__[/* default */ "k"].events.MODAL_OPENED), onClose: () => ModalController.dispatch(app_constants__WEBPACK_IMPORTED_MODULE_3__[/* default */ "k"].events.MODAL_CLOSED) },
            react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: styles.container }, react__WEBPACK_IMPORTED_MODULE_0__["cloneElement"](content, {
                onClose: ModalController.close,
            }))), modalContext);
    }
}


/***/ }),

/***/ "NBbZ":
/***/ (function(module, exports) {



/***/ }),

/***/ "NBj/":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react_virtualized__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("c7k8");


/**
 * WindowScrollerProvider provides scrollProps for react-virtualized's List/Grid
 * using a WindowScroller, only if necessary. If the view doesn't have a scrollElement,
 * it provides an empty set of props, since we just want the default behavior.
 */
/* harmony default export */ __webpack_exports__["a"] = (Object(react__WEBPACK_IMPORTED_MODULE_0__["forwardRef"])(function WindowScrollerProvider({ children, scrollElementRef }, ref) {
    if (scrollElementRef) {
        return (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_virtualized__WEBPACK_IMPORTED_MODULE_1__[/* WindowScroller */ "e"], { ref: ref, scrollElement: scrollElementRef.current }, ({ height, isScrolling, onChildScroll, scrollTop }) => children({
            height,
            isScrolling,
            onChildScroll,
            scrollTop,
            autoHeight: true,
        })));
    }
    else {
        return children({});
    }
}));


/***/ }),

/***/ "ND7S":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


const encoders = exports;
encoders.der = __webpack_require__("N2jm");
encoders.pem = __webpack_require__("hbMA");

/***/ }),

/***/ "NIJf":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony default export */ __webpack_exports__["a"] = (({ cloudId, localId, name, path, repositoryId, }) => {
    // TODO: This is not final. Still need to determine what XD needs to receive.
    return JSON.stringify({
        cloud_id: cloudId,
        local_id: localId,
        display_name: name,
        path,
        repository_id: repositoryId,
    });
});


/***/ }),

/***/ "NKxu":
/***/ (function(module, exports, __webpack_require__) {

var isFunction = __webpack_require__("lSCD"),
    isMasked = __webpack_require__("E2jh"),
    isObject = __webpack_require__("GoyQ"),
    toSource = __webpack_require__("3Fdi");
/**
 * Used to match `RegExp`
 * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).
 */


var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
/** Used to detect host constructors (Safari). */

var reIsHostCtor = /^\[object .+?Constructor\]$/;
/** Used for built-in method references. */

var funcProto = Function.prototype,
    objectProto = Object.prototype;
/** Used to resolve the decompiled source of functions. */

var funcToString = funcProto.toString;
/** Used to check objects for own properties. */

var hasOwnProperty = objectProto.hasOwnProperty;
/** Used to detect if a method is native. */

var reIsNative = RegExp('^' + funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&').replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$');
/**
 * The base implementation of `_.isNative` without bad shim checks.
 *
 * @private
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a native function,
 *  else `false`.
 */

function baseIsNative(value) {
  if (!isObject(value) || isMasked(value)) {
    return false;
  }

  var pattern = isFunction(value) ? reIsNative : reIsHostCtor;
  return pattern.test(toSource(value));
}

module.exports = baseIsNative;

/***/ }),

/***/ "NQVK":
/***/ (function(module, exports, __webpack_require__) {

var Buffer = __webpack_require__("hwdV").Buffer;

var xor = __webpack_require__("jIre");

function encryptStart(self, data, decrypt) {
  var len = data.length;
  var out = xor(data, self._cache);
  self._cache = self._cache.slice(len);
  self._prev = Buffer.concat([self._prev, decrypt ? data : out]);
  return out;
}

exports.encrypt = function (self, data, decrypt) {
  var out = Buffer.allocUnsafe(0);
  var len;

  while (data.length) {
    if (self._cache.length === 0) {
      self._cache = self._cipher.encryptBlock(self._prev);
      self._prev = Buffer.allocUnsafe(0);
    }

    if (self._cache.length <= data.length) {
      len = self._cache.length;
      out = Buffer.concat([out, encryptStart(self, data.slice(0, len), decrypt)]);
      data = data.slice(len);
    } else {
      out = Buffer.concat([out, encryptStart(self, data, decrypt)]);
      break;
    }
  }

  return out;
};

/***/ }),

/***/ "NV0k":
/***/ (function(module, exports) {

exports.f = {}.propertyIsEnumerable;

/***/ }),

/***/ "NZUh":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("path", {
  d: "M22.5 14.025a4.417 4.417 0 0 1-1.535 3.41c-.936.916-1.823 1.731-1.823 2.472a2.664 2.664 0 0 0 .384 1.361.105.105 0 0 1-.1.173h-2.083a.4.4 0 0 1-.312-.1 2.76 2.76 0 0 1-.576-1.707c0-1.162.7-1.9 1.848-3.09.791-.815 1.247-1.335 1.247-2.1 0-.89-.576-1.508-2.039-1.508a5.957 5.957 0 0 0-3.022.815.121.121 0 0 1-.191-.1v-2.4c0-.1 0-.2.1-.248a7.445 7.445 0 0 1 3.646-.866c2.873.005 4.456 1.712 4.456 3.888zm-5.925 11.124a1.679 1.679 0 1 1 3.358 0 1.575 1.575 0 0 1-1.679 1.731 1.6 1.6 0 0 1-1.679-1.731z"
}), React.createElement("path", {
  d: "M18 2.1A15.9 15.9 0 1 0 33.9 18 15.9 15.9 0 0 0 18 2.1zm0 29.812A13.912 13.912 0 1 1 31.913 18 13.912 13.912 0 0 1 18 31.913z"
}));

/***/ }),

/***/ "NbzK":
/***/ (function(module, exports) {

/* eslint-disable max-len */
module.exports = {
  'confirmationDialog.dontShowAgain': 'Älä näytä uudelleen',
  'confirmationDialog.confirm.default': 'Jatka',
  'confirmationDialog.cancel.default': 'Peruuta',
  'confirmationDialog.learnMore': 'Lue lisää',
  'toast.warning.place': 'Linkitettyjä pilvidokumentteja ei voi sijoittaa vielä. Jatka sen sijaan niiden upottamista.',
  'toast.warning.placeLinkOrEmbed': 'Sijoittamasi resurssit linkitetään nyt oletusarvoisesti alkuperäiseen resurssiin. Tämä tarkoittaa, että jos muokkaat resurssia yhdessä paikassa, nämä muutokset otetaan käyttöön kaikkialla.',
  'toast.warning.saveAs.invalidFormat': 'Täällä ei valitettavasti voi tallentaa muodossa {genericFormat} olevia tiedostoja. Tiedostosi tallennetaan muodossa {adobeFormat}.',
  'pickerView.recent': 'Äskeiset',
  'pickerView.cloud_docs': 'Omat tiedostot',
  'pickerView.shared_with_you': 'Jaettu kanssasi',
  'pickerView.projects': 'Projektit',
  'pickerView.files': 'Tiedostot',
  'pickerView.computer': 'Tietokoneesi...',
  'pickerView.saveAsInput': 'Tallenna nimellä',
  'pickerView.exportInput': 'Vie muodossa',
  'pickerView.sketch_library': 'Muunna Sketch kirjasto...',
  'pickerView.error.saveAsOrExport.default': 'Tiedostonimi on virheellinen.',
  'pickerView.error.saveAsOrExport.invalidName': 'Tämä nimi sisältää valitettavasti virheellisiä merkkejä.',
  'pickerView.error.saveAsOrExport.invalidEnd': 'Nimi ei voi päättyä pisteeseen tai välilyöntiin.',
  'pickerView.error.saveAsOrExport.invalidChar': 'Nimessä ei voi olla seuraavia merkkejä: {characters}',
  'pickerView.error.saveAsOrExport.charRestriction': 'Nimet voivat olla enintään 200 merkkiä pitkiä.',
  'pickerView.error.saveAsOrExport.duplicateName': 'Sinulla on jo tämänniminen pilvidokumentti.',
  'pickerView.error.addALibrary.permission': 'Sinulla ei ole oikeuksia lisätä mitään tähän kirjastoon.',
  'pickerViewFooter.button.add': 'Lisää',
  'pickerViewFooter.button.cancel': 'Peruuta',
  'pickerViewFooter.button.copy': 'Kopioi tänne',
  'pickerViewFooter.button.move': 'Siirrä tänne',
  'pickerViewFooter.button.moveToProject': 'Siirrä tänne',
  'pickerViewFooter.button.copyToProject': 'Kopioi tänne',
  'pickerViewFooter.button.choose': 'Valitse',
  'pickerViewFooter.button.save': 'Tallenna',
  'pickerViewFooter.button.switchToOSPicker': 'Tietokoneellasi',
  'pickerViewFooter.button.save.offline': 'Edellyttää Internet-yhteyttä',
  'pickerViewFooter.button.saveAsCopy': 'Tallenna',
  'pickerViewFooter.button.export': 'Vie',
  'pickerViewFooter.button.placeLinkOrEmbed': 'Sijoita',
  'pickerViewFooter.button.import': 'Tuo',
  'pickerViewFooter.checkbox.placeLink': 'Linkitetty',
  'pickerViewFooter.tooltip.placeLink': 'Voit sijoittaa tämän kohteen vain linkitettynä resurssina.',
  'pickerViewFooter.tooltip.placeEmbed': 'Voit sijoittaa tämän kohteen vain upotettuna.',
  'pickerViewFooter.saveAs.format.label': 'Muoto',
  'pickerViewFooter.button.selectProject': 'Tallenna',
  'onboardingCdp.title': 'Saat käyttöösi paljon enemmän vaihtoehtoja, jos tallennat pilvidokumenttina.',
  'onboardingCdp.tooltip': 'Jos tallennat omaan tietokoneeseen, et voi käyttää pilvitoimintoja.',
  'onboardingCdp.tooltip.link': 'Lue lisää',
  'onboardingCdp.table.header.saveToCloud': 'Creative Cloud',
  'onboardingCdp.table.header.saveToLocal': 'Tietokoneellasi',
  'onboardingCdp.button.saveToCloud': 'Tallenna Creative Cloudiin',
  'onboardingCdp.feature.offline': 'Offline-käyttö',
  'onboardingCdp.feature.syncing': 'Pilvisynkronointi kaikkiin laitteisiin',
  'onboardingCdp.feature.autosave': 'Kaikki muutokset tallennetaan automaattisesti.',
  'onboardingCdp.feature.versionHistory': 'Versiohistoria',
  'onboardingCdp.feature.inviteToEdit': 'Kutsu muokkaamaan',
  'onboardingCdp.button.saveToLocal': 'Tallenna tietokoneeseen',
  'onboardingCdp.checkbox.doNotShowAgain': 'Älä näytä uudelleen',
  'uap.title.place': 'Sijoita Creative Cloudista',
  'uap.title.import': 'Tuo Creative Cloudista',
  'uap.title.placeLinkOrEmbed': 'Sijoita Creative Cloudista',
  'uap.title.linkAssets': 'Linkitä Creative Cloudista',
  'uap.title.open': 'Avaa Creative Cloudista',
  'uap.title.relink': 'Linkitä Creative Cloudista',
  'uap.title.saveAs': 'Tallenna Creative Cloudiin',
  'uap.title.saveAsCopy': 'Tallenna Creative Cloudiin',
  'uap.title.saveToFolder': 'Tallenna Creative Cloudiin',
  'uap.title.export': 'Vie Creative Cloudiin',
  'uap.title.copy': 'Kopioi Creative Cloudiin',
  'uap.title.move': 'Siirrä Creative Cloudiin',
  'uap.title.moveToProject': 'Siirrä Creative Cloudissa',
  'uap.title.copyToProject': 'Kopioi Creative Cloudiin',
  'uap.title.reference': 'Lisää Creative Cloudiin',
  'uap.title.selectProject': 'Tallenna Creative Cloudiin',
  'move.toSpace.confirm.title': 'Versiohistoria poistetaan.',
  'move.toSpace.confirm.message': 'Tämän tiedoston siirtäminen johtaa versiohistorian poistamiseen. Jos haluat säilyttää versiohistoriasi, tee tiedostosta kopio.'
};

/***/ }),

/***/ "NdnS":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return LightroomIcon; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return StockIcon; });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("TSYQ");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_1__);
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2021 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/


function LightroomIcon({ className }) {
    return (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 18 17", className: classnames__WEBPACK_IMPORTED_MODULE_1___default()('spectrum-Icon', className) },
        react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", { d: "M20.52,3.8H8.76A3.14,3.14,0,0,0,5.64,6.93V17.68A3.12,3.12,0,0,0,8.76,20.8H20.52a3.12,3.12,0,0,0,3.12-3.12V6.93A3.14,3.14,0,0,0,20.52,3.8ZM15,15.68v.08H10.3c-.07,0-.11,0-.11-.13V8.34c0-.07,0-.1.11-.1h1.35s.07,0,.08.06v5.93H15.1c.07,0,.1,0,.08.11Zm4.6-4.29c0,.06,0,.08-.12.08a2.06,2.06,0,0,0-.7.06,2.69,2.69,0,0,0-.61.19,1.47,1.47,0,0,0-.47.27v3.68c0,.07,0,.11-.09.11H16.29a.11.11,0,0,1-.12-.1V10.55a3.84,3.84,0,0,0,0-.48.06.06,0,0,1,0-.06H17.5a.17.17,0,0,1,.16.12.43.43,0,0,1,.05.16.89.89,0,0,1,0,.23,1.13,1.13,0,0,1,0,.26,2.88,2.88,0,0,1,.77-.62,2,2,0,0,1,1-.26c.07,0,.1,0,.1.1Z", transform: "translate(-5.64 -3.8)" })));
}
function StockIcon() {
    return (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 18 17", className: "spectrum-Icon" },
        react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", { d: "M20.5,3.8H8.7A3.12,3.12,0,0,0,5.6,6.9V17.7a3.12,3.12,0,0,0,3.1,3.1H20.5a3.12,3.12,0,0,0,3.1-3.1V6.9A3.12,3.12,0,0,0,20.5,3.8Zm-5.6,11a2.52,2.52,0,0,1-1,.8,3.9,3.9,0,0,1-1.5.3,4.83,4.83,0,0,1-1.2-.1,6,6,0,0,1-.8-.3c-.1,0-.1-.1-.1-.2V13.8h.1a3.13,3.13,0,0,0,1,.5,3.7,3.7,0,0,0,1.1.1,1.82,1.82,0,0,0,1-.2.56.56,0,0,0,.3-.5.79.79,0,0,0-.1-.4l-.3-.3-.6-.3-.8-.2a10.59,10.59,0,0,1-1.1-.6,2.88,2.88,0,0,1-.5-.7,1.4,1.4,0,0,1-.1-.9,2,2,0,0,1,.3-1.1,1.8,1.8,0,0,1,.9-.8A3.9,3.9,0,0,1,13,8.1a3.37,3.37,0,0,1,1,.1,2.41,2.41,0,0,1,.8.2.1.1,0,0,1,.1.1h0V10h-.1c-.3-.1-.5-.2-.8-.3a3.37,3.37,0,0,0-1-.1,1.23,1.23,0,0,0-.6.1c-.1,0-.3.1-.4.1a.22.22,0,0,0-.2.2c0,.1-.1.2-.1.3a.37.37,0,0,0,.1.3,1.31,1.31,0,0,0,.4.3,6,6,0,0,1,.7.4l.4.2a8,8,0,0,1,1.2.7,1.56,1.56,0,0,1,.6.8,3.09,3.09,0,0,1,.2.9C15.2,14,15.1,14.4,14.9,14.8Zm4.3-3.6h0l-1.2.1v2.5a1.23,1.23,0,0,0,.1.6,1.42,1.42,0,0,0,.6.2h.5v1.1c0,.1,0,.1-.1.1a.87.87,0,0,1-.5.1H18a1.75,1.75,0,0,1-1.2-.4,2,2,0,0,1-.4-1.3V11.3h-.8c-.1,0-.1,0-.1-.1v-1c0-.1,0-.1.1-.1h.8V9a.63.63,0,0,1,.1-.4c.1-.1,0-.1,0-.1h.1L18,8.3h0v1.9h1.1a.1.1,0,0,1,.1.1h0Z", transform: "translate(-5.6 -3.8)" })));
}


/***/ }),

/***/ "NeVj":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _autobindDecorator = _interopRequireDefault(__webpack_require__("gKdT"));

var _List = __webpack_require__("5r/s");

var _Popover = _interopRequireDefault(__webpack_require__("pyUw"));

var _propTypes = _interopRequireDefault(__webpack_require__("17x9"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

const _excluded = ["children", "className", "closeOnSelect", "open", "onClose", "onSelect", "placement", "role", "style", "trapFocus"];

var _class, _class2, _temp;

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function ownKeys(object, enumerableOnly) {
  var keys = Object.keys(object);

  if (Object.getOwnPropertySymbols) {
    var symbols = Object.getOwnPropertySymbols(object);

    if (enumerableOnly) {
      symbols = symbols.filter(function (sym) {
        return Object.getOwnPropertyDescriptor(object, sym).enumerable;
      });
    }

    keys.push.apply(keys, symbols);
  }

  return keys;
}

function _objectSpread(target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i] != null ? arguments[i] : {};

    if (i % 2) {
      ownKeys(Object(source), true).forEach(function (key) {
        _defineProperty(target, key, source[key]);
      });
    } else if (Object.getOwnPropertyDescriptors) {
      Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
    } else {
      ownKeys(Object(source)).forEach(function (key) {
        Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
      });
    }
  }

  return target;
}

function _defineProperty(obj, key, value) {
  if (key in obj) {
    Object.defineProperty(obj, key, {
      value: value,
      enumerable: true,
      configurable: true,
      writable: true
    });
  } else {
    obj[key] = value;
  }

  return obj;
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

let Menu = (0, _autobindDecorator.default)(_class = (_temp = _class2 = class Menu extends _react.default.Component {
  getListRef() {
    return this.listRef;
  }

  onClick(e) {
    e.preventDefault();

    if (this.props.onClick) {
      this.props.onClick(e);
    }
  }

  render() {
    const _this$props = this.props,
          {
      children,
      className,
      closeOnSelect,
      open,
      onClose,
      onSelect,
      placement,
      role = 'menu',
      style,
      trapFocus
    } = _this$props,
          otherProps = _objectWithoutProperties(_this$props, _excluded);

    delete otherProps.target;
    delete otherProps.onClick;
    return /*#__PURE__*/_react.default.createElement(_Popover.default, {
      isDialog: false,
      placement: placement,
      open: open,
      onClose: onClose,
      style: _objectSpread(_objectSpread({}, style), {}, {
        overflowY: 'auto'
      }),
      trapFocus: trapFocus
    }, /*#__PURE__*/_react.default.createElement(_List.List, _extends({
      ref: l => this.listRef = l,
      role: role,
      className: className,
      onClick: this.onClick
    }, otherProps), _react.default.Children.map(children, child => /*#__PURE__*/_react.default.cloneElement(child, {
      onSelect,
      closeOnSelect
    }))));
  }

}, _class2.displayName = 'Menu', _class2.propTypes = {
  /**
   * Location of the menu in relation to the element triggering it. If used
   * with overlay trigger and there isn't enough room for the menu in that
   * position, it will make a limited attempt to find a new position.
   */
  placement: _propTypes.default.oneOf(['bottom', 'bottom left', 'bottom right', 'top', 'top left', 'top right', 'left', 'left top', 'left bottom', 'right', 'right top', 'right bottom']),

  /**
   * Whether the menu is opened.
   */
  open: _propTypes.default.bool,

  /**
   * Callback when menu closes.
   */
  onClose: _propTypes.default.func,

  /**
   * Callback when menu item is selected.
   */
  onSelect: _propTypes.default.func,

  /**
   * String for extra class names to add to the menu
   */
  className: _propTypes.default.string,

  /**
   * True by default, this keeps focus within children of this component.
   * When disabled, focus may leave this component.
   */
  trapFocus: _propTypes.default.bool,

  /**
   * The WAI-ARIA role for the menu. Defaults to "menu", but could be "listbox" depending on context.
   */
  role: _propTypes.default.oneOf(['menu', 'listbox'])
}, _class2.defaultProps = {
  trapFocus: true
}, _temp)) || _class;

exports.default = Menu;

/***/ }),

/***/ "NegM":
/***/ (function(module, exports, __webpack_require__) {

var dP = __webpack_require__("2faE");

var createDesc = __webpack_require__("rr1i");

module.exports = __webpack_require__("jmDH") ? function (object, key, value) {
  return dP.f(object, key, createDesc(1, value));
} : function (object, key, value) {
  object[key] = value;
  return object;
};

/***/ }),

/***/ "Np16":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = boundingRectOverlapping;

function boundingRectOverlapping(br1, br2) {
  if (isBoundingClientRectZero(br1) || isBoundingClientRectZero(br2)) {
    return false;
  }

  return !(br2.left >= br1.right || br2.right <= br1.left || br2.top >= br1.bottom || br2.bottom <= br1.top);
}

function isBoundingClientRectZero(br) {
  if (br.left === 0 && br.right === 0 && br.top === 0 && br.bottom === 0) {
    return true;
  }

  return false;
}

/***/ }),

/***/ "Npjl":
/***/ (function(module, exports) {

/**
 * Gets the value at `key` of `object`.
 *
 * @private
 * @param {Object} [object] The object to query.
 * @param {string} key The key of the property to get.
 * @returns {*} Returns the property value.
 */
function getValue(object, key) {
  return object == null ? undefined : object[key];
}

module.exports = getValue;

/***/ }),

/***/ "NsO/":
/***/ (function(module, exports, __webpack_require__) {

// to indexed object, toObject with fallback for non-array-like ES3 strings
var IObject = __webpack_require__("M1xp");

var defined = __webpack_require__("Jes0");

module.exports = function (it) {
  return IObject(defined(it));
};

/***/ }),

/***/ "Nsbk":
/***/ (function(module, exports) {

function _getPrototypeOf(o) {
  module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {
    return o.__proto__ || Object.getPrototypeOf(o);
  };
  module.exports["default"] = module.exports, module.exports.__esModule = true;
  return _getPrototypeOf(o);
}

module.exports = _getPrototypeOf;
module.exports["default"] = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "NwJ3":
/***/ (function(module, exports, __webpack_require__) {

// check on default Array iterator
var Iterators = __webpack_require__("SBuE");

var ITERATOR = __webpack_require__("UWiX")('iterator');

var ArrayProto = Array.prototype;

module.exports = function (it) {
  return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);
};

/***/ }),

/***/ "NykK":
/***/ (function(module, exports, __webpack_require__) {

var Symbol = __webpack_require__("nmnc"),
    getRawTag = __webpack_require__("AP2z"),
    objectToString = __webpack_require__("KfNM");
/** `Object#toString` result references. */


var nullTag = '[object Null]',
    undefinedTag = '[object Undefined]';
/** Built-in value references. */

var symToStringTag = Symbol ? Symbol.toStringTag : undefined;
/**
 * The base implementation of `getTag` without fallbacks for buggy environments.
 *
 * @private
 * @param {*} value The value to query.
 * @returns {string} Returns the `toStringTag`.
 */

function baseGetTag(value) {
  if (value == null) {
    return value === undefined ? undefinedTag : nullTag;
  }

  return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString(value);
}

module.exports = baseGetTag;

/***/ }),

/***/ "O/GH":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("GsTL"),
      24: __webpack_require__("+++t")
    }
  }));
};

WrappedIcon.displayName = 'Info';
exports.default = WrappedIcon;

/***/ }),

/***/ "O0oS":
/***/ (function(module, exports, __webpack_require__) {

var getNative = __webpack_require__("Cwc5");

var defineProperty = function () {
  try {
    var func = getNative(Object, 'defineProperty');
    func({}, '', {});
    return func;
  } catch (e) {}
}();

module.exports = defineProperty;

/***/ }),

/***/ "O1lU":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXPORTS
__webpack_require__.d(__webpack_exports__, "b", function() { return /* binding */ OnboardingView_OnboardingView; });
__webpack_require__.d(__webpack_exports__, "d", function() { return /* binding */ OnboardingViewButton; });
__webpack_require__.d(__webpack_exports__, "c", function() { return /* binding */ OnboardingViewActions; });
__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ OnboardingActionBar; });

// UNUSED EXPORTS: OnboardingViewDivider, OnboardingInlineActions

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__("q1tI");
var react_default = /*#__PURE__*/__webpack_require__.n(react);

// EXTERNAL MODULE: ./node_modules/classnames/index.js
var classnames = __webpack_require__("TSYQ");
var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/Close/index.js
var Close = __webpack_require__("eD7O");
var Close_default = /*#__PURE__*/__webpack_require__.n(Close);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Button/index.js
var Button = __webpack_require__("Cn9g");
var Button_default = /*#__PURE__*/__webpack_require__.n(Button);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/styles/OnboardingView.css
var OnboardingView = __webpack_require__("EYow");
var OnboardingView_default = /*#__PURE__*/__webpack_require__.n(OnboardingView);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/UXPUtils.ts
var UXPUtils = __webpack_require__("LbGp");

// EXTERNAL MODULE: ./node_modules/react-intl-cdo/lib/index.es.js + 1 modules
var index_es = __webpack_require__("VIzJ");

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/OpenIn/index.js
var OpenIn = __webpack_require__("yhrW");
var OpenIn_default = /*#__PURE__*/__webpack_require__.n(OpenIn);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Tooltip/index.js
var Tooltip = __webpack_require__("DUuf");
var Tooltip_default = /*#__PURE__*/__webpack_require__.n(Tooltip);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/OverlayTrigger/index.js
var OverlayTrigger = __webpack_require__("uYrR");
var OverlayTrigger_default = /*#__PURE__*/__webpack_require__.n(OverlayTrigger);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/constants.ts
var constants = __webpack_require__("YVc3");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/styles/OpensInBrowser.css
var OpensInBrowser = __webpack_require__("7ePf");
var OpensInBrowser_default = /*#__PURE__*/__webpack_require__.n(OpensInBrowser);

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/components/OpensInBrowser.tsx







function OpensInBrowser_OpensInBrowser() {
    return (react_default.a.createElement(react_default.a.Fragment, null,
        react_default.a.createElement(OverlayTrigger_default.a, { trigger: ['hover'], placement: 'bottom', delayShow: constants["f" /* DEFAULT_TOOLTIP_DELAY */] },
            react_default.a.createElement("span", { className: OpensInBrowser_default.a.OpensInBrowserIcon },
                react_default.a.createElement(OpenIn_default.a, { size: "XS", id: "info" })),
            react_default.a.createElement(Tooltip_default.a, null,
                react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "tooltip.opensInBrowser" })))));
}
/* harmony default export */ var components_OpensInBrowser = (OpensInBrowser_OpensInBrowser);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/components/CoachMarks.tsx
var CoachMarks = __webpack_require__("Yo2G");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/hooks/useIntl.ts
var useIntl = __webpack_require__("BuN4");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/components/OnboardingView.tsx












function OnboardingView_OnboardingView({ children, description, heading }) {
    return (react_default.a.createElement("div", { className: classnames_default()(OnboardingView_default.a.onboardingScrollView, 'ReactScrollViewNode') },
        react_default.a.createElement("div", { className: OnboardingView_default.a.onboardingContainer },
            react_default.a.createElement("div", { className: OnboardingView_default.a.heading, "data-test-id": "OnboardingView__heading" }, heading),
            react_default.a.createElement("div", { className: OnboardingView_default.a.description, "data-test-id": "OnboardingView__description" }, description),
            children)));
}
function OnboardingViewButton(props) {
    const intl = Object(useIntl["a" /* default */])();
    const icon = (react_default.a.createElement("div", { className: classnames_default()(props.variant === 'list' ? OnboardingView_default.a.onboardingListIcon : OnboardingView_default.a.onboardingIcon, UXPUtils["a" /* default */].usingUXP() && OnboardingView_default.a.UXP, props.variant === 'small' && OnboardingView_default.a.onboardingSmallIcon, props.variant === 'large' && OnboardingView_default.a.onboardingLargeIcon), style: props.variant !== 'list' ? props.style : undefined }, props.icon));
    return (react_default.a.createElement(OverlayTrigger_default.a, { disabled: !props.disabled },
        react_default.a.createElement(Button_default.a, { className: classnames_default()(OnboardingView_default.a.onboardingButton, UXPUtils["a" /* default */].usingUXP() && OnboardingView_default.a.UXP, props.variant === 'list' && OnboardingView_default.a.onboardingButtonList, props.disabled && OnboardingView_default.a.onboardingButtonDisabled), disabled: props.disabled, style: props.variant === 'list' ? props.style : undefined, quiet: true, icon: props.variant === 'list' ? (icon) : (react_default.a.createElement("div", { className: OnboardingView_default.a.onboardingIconBorder },
                icon,
                props.addOn && (react_default.a.createElement("div", { className: OnboardingView_default.a.openInBrowser },
                    react_default.a.createElement(components_OpensInBrowser, null))))), onClick: props.onClick, "data-test-id": props.testId, role: 'button', "aria-label": intl.formatMessage({ id: props.label }) },
            react_default.a.createElement("div", { className: OnboardingView_default.a.onboardingButtonLabel },
                props.children,
                props.addOn && react_default.a.createElement(CoachMarks["a" /* CanvasHeaderCoachMark */], null))),
        react_default.a.createElement(Tooltip_default.a, null,
            react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "tooltip.offline.general" }))));
}
function OnboardingViewDivider(props) {
    return react_default.a.createElement("div", Object.assign({ className: OnboardingView_default.a.actionDivider }, props));
}
function OnboardingViewActions(props) {
    return (react_default.a.createElement("div", { className: OnboardingView_default.a.actionContainerParent },
        react_default.a.createElement("div", Object.assign({ className: OnboardingView_default.a.actionContainer }, props))));
}
function OnboardingInlineActions(props) {
    return (react_default.a.createElement("div", { className: OnboardingView_default.a.inlineActionContainerParent, style: props.style },
        react_default.a.createElement("div", Object.assign({ className: OnboardingView_default.a.actionContainer }, props))));
}
const OnboardingActionBar = ({ className, titleContent, canClose, onClose, children, ...props }) => {
    return (react_default.a.createElement("div", Object.assign({ className: classnames_default()(OnboardingView_default.a.actionBar, className) }, props),
        react_default.a.createElement("div", { className: OnboardingView_default.a.actionBarTitleContainer },
            react_default.a.createElement("div", { className: OnboardingView_default.a.actionBarTitle, "data-test-id": "Onboarding__actionMessage" }, titleContent),
            canClose && (react_default.a.createElement(Button_default.a, { className: OnboardingView_default.a.actionBarCloseButton, quiet: true, variant: "tool", onClick: onClose, "data-test-id": "Onboarding__closeButton" },
                react_default.a.createElement(Close_default.a, null)))),
        react_default.a.createElement("div", { className: OnboardingView_default.a.actionBarContainer }, children)));
};


/***/ }),

/***/ "O4R7":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = Table;

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _filterDOMProps = _interopRequireDefault(__webpack_require__("Cv/Q"));

var _propTypes = _interopRequireDefault(__webpack_require__("17x9"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

const _excluded = ["quiet", "className", "children"];

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

if (false) {} else if (false) {} else {
  __webpack_require__("4t+F");
}

if (true) __webpack_require__("r+nJ");
if (true) __webpack_require__("Aq6I");
if (true) __webpack_require__("hTo2");
if (true) __webpack_require__("uMbf");
/**
 * A table
 */

function Table(_ref) {
  let {
    quiet,
    className,
    children
  } = _ref,
      otherProps = _objectWithoutProperties(_ref, _excluded);

  return /*#__PURE__*/_react.default.createElement("table", _extends({
    className: (0, _classnames.default)('spectrum-Table', {
      'spectrum-Table--quiet': quiet
    }, className)
  }, (0, _filterDOMProps.default)(otherProps)), children);
}

Table.displayName = 'Table';
Table.propTypes = {
  /** Items to display in the Table. Use Tbody, TD, TH, THead, TR, or other elements permitted in a table. */
  children: _propTypes.default.node,

  /** Whether or not the table should be rendered using a quiet variant. */
  quiet: _propTypes.default.bool
};

/***/ }),

/***/ "O6rX":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = DialogHeader;

var _AlertMedium = _interopRequireDefault(__webpack_require__("hr23"));

var _Button = _interopRequireDefault(__webpack_require__("Cn9g"));

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _CrossLarge = _interopRequireDefault(__webpack_require__("oT/9"));

var _DialogButtons = _interopRequireDefault(__webpack_require__("bcRB"));

var _filterDOMProps = _interopRequireDefault(__webpack_require__("Cv/Q"));

var _Heading = _interopRequireDefault(__webpack_require__("8bOP"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

const _excluded = ["title", "variant", "fullscreen", "confirmDisabled", "confirmLabel", "secondaryLabel", "cancelLabel", "onConfirm", "onCancel", "onClose", "className", "autoFocusButton", "id", "isDismissible"];

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

const VARIANT_ICONS = {
  error: _AlertMedium.default
};

function DialogHeader(_ref) {
  let {
    title,
    variant,
    fullscreen,
    confirmDisabled,
    confirmLabel,
    secondaryLabel,
    cancelLabel,
    onConfirm,
    onCancel,
    onClose,
    className,
    autoFocusButton,
    id,
    isDismissible
  } = _ref,
      otherProps = _objectWithoutProperties(_ref, _excluded);

  let Icon = VARIANT_ICONS[variant];
  return /*#__PURE__*/_react.default.createElement("div", _extends({}, (0, _filterDOMProps.default)(otherProps), {
    className: (0, _classnames.default)('spectrum-Dialog-header', `spectrum-Dialog-header--${variant}`, className)
  }), /*#__PURE__*/_react.default.createElement(_Heading.default, {
    size: 3,
    className: "spectrum-Dialog-title",
    id: id
  }, title), Icon && /*#__PURE__*/_react.default.createElement(Icon, {
    size: null,
    className: "spectrum-Dialog-typeIcon"
  }), isDismissible && !fullscreen && /*#__PURE__*/_react.default.createElement(_Button.default, {
    className: "spectrum-Dialog-closeButton",
    variant: "action",
    onClick: onClose,
    quiet: true,
    icon: /*#__PURE__*/_react.default.createElement(_CrossLarge.default, {
      size: "L"
    })
  }), fullscreen && confirmLabel && /*#__PURE__*/_react.default.createElement(_DialogButtons.default, {
    autoFocusButton: autoFocusButton,
    variant: variant,
    cancelLabel: cancelLabel,
    secondaryLabel: secondaryLabel,
    confirmLabel: confirmLabel,
    confirmDisabled: confirmDisabled,
    onConfirm: onConfirm,
    onCancel: onCancel
  }));
}

/***/ }),

/***/ "O7FO":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return extractHTTPCodeFromSamError; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return convertSamPromiseErrorToResponse; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return convertSamJsPromiseErrorToResponse; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return getAssetModelWithUnknownAssetID; });
/* harmony import */ var _stores_AssetModel_SAMAssetModel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("4Cys");
/* harmony import */ var _stores_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("C0qj");
/* harmony import */ var _types_CDOErrorResponse__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("DecH");



/**
 * Exracts the HTTP error code out of a SAM error string
 * e.g. '[A-40400=ACPL_RESOURCE_NOT_FOUND] Asset not available' => 404
 * Return { status: 499, isFakeStatus: true } if unable to extract a code
 */
function extractHTTPCodeFromSamError(message) {
    const regex = /^\[[A-Z]-(\d{5})/;
    const matches = message === null || message === void 0 ? void 0 : message.match(regex);
    const code = matches === null || matches === void 0 ? void 0 : matches[1];
    const status = _stores_constants__WEBPACK_IMPORTED_MODULE_1__[/* samHttpStatusCodesMap */ "z"][parseInt(code, 10)] ||
        parseInt(code === null || code === void 0 ? void 0 : code.substring(0, _stores_constants__WEBPACK_IMPORTED_MODULE_1__[/* HTTP_CODE_LENGTH */ "l"]), 10) ||
        _types_CDOErrorResponse__WEBPACK_IMPORTED_MODULE_2__[/* FAKE_STATUS_CODE */ "a"];
    return {
        status,
        isFakeStatus: !matches,
    };
}
function convertSamPromiseErrorToResponse(err, source) {
    const statusText = err.message;
    const { status, isFakeStatus } = extractHTTPCodeFromSamError(statusText);
    return new _types_CDOErrorResponse__WEBPACK_IMPORTED_MODULE_2__[/* default */ "b"](status, statusText, source, isFakeStatus);
}
async function convertSamJsPromiseErrorToResponse(err, source) {
    var _a, _b, _c;
    const DEFAULT_STATUS_TEXT = `Unexpected response from ${source}: ${JSON.stringify(err)}`;
    const { status, error } = (_c = (await ((_b = (_a = err.response).json) === null || _b === void 0 ? void 0 : _b.call(_a)))) !== null && _c !== void 0 ? _c : {};
    return new _types_CDOErrorResponse__WEBPACK_IMPORTED_MODULE_2__[/* default */ "b"](status || _types_CDOErrorResponse__WEBPACK_IMPORTED_MODULE_2__[/* FAKE_STATUS_CODE */ "a"], (error === null || error === void 0 ? void 0 : error.title) || DEFAULT_STATUS_TEXT, source, !status);
}
/**
 * Use to get a SAMAssetModel from an assetID if you don't know whether the assetID
 * is a cloudID or localID
 */
async function getAssetModelWithUnknownAssetID(samAssetContext, assetId) {
    let acplAsset;
    try {
        // Attempt local request first since it should fail quickly if it's not a local ID
        acplAsset = await samAssetContext.getAssetWithLocalID(assetId);
    }
    catch (e) {
        acplAsset = await samAssetContext.getAssetWithCloudID(assetId, false);
    }
    const asset = _stores_AssetModel_SAMAssetModel__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].fromSamAsset(acplAsset);
    return asset;
}


/***/ }),

/***/ "O9o6":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


exports.__esModule = true;
exports.default = isTransform;
var supportedTransforms = /^((translate|rotate|scale)(X|Y|Z|3d)?|matrix(3d)?|perspective|skew(X|Y)?)$/i;

function isTransform(property) {
  return !!(property && supportedTransforms.test(property));
}

module.exports = exports["default"];

/***/ }),

/***/ "OA+I":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var utils = __webpack_require__("86MQ");

var assert = utils.assert;
var parseBytes = utils.parseBytes;
var cachedProperty = utils.cachedProperty;
/**
* @param {EDDSA} eddsa - instance
* @param {Object} params - public/private key parameters
*
* @param {Array<Byte>} [params.secret] - secret seed bytes
* @param {Point} [params.pub] - public key point (aka `A` in eddsa terms)
* @param {Array<Byte>} [params.pub] - public key point encoded as bytes
*
*/

function KeyPair(eddsa, params) {
  this.eddsa = eddsa;
  this._secret = parseBytes(params.secret);
  if (eddsa.isPoint(params.pub)) this._pub = params.pub;else this._pubBytes = parseBytes(params.pub);
}

KeyPair.fromPublic = function fromPublic(eddsa, pub) {
  if (pub instanceof KeyPair) return pub;
  return new KeyPair(eddsa, {
    pub: pub
  });
};

KeyPair.fromSecret = function fromSecret(eddsa, secret) {
  if (secret instanceof KeyPair) return secret;
  return new KeyPair(eddsa, {
    secret: secret
  });
};

KeyPair.prototype.secret = function secret() {
  return this._secret;
};

cachedProperty(KeyPair, 'pubBytes', function pubBytes() {
  return this.eddsa.encodePoint(this.pub());
});
cachedProperty(KeyPair, 'pub', function pub() {
  if (this._pubBytes) return this.eddsa.decodePoint(this._pubBytes);
  return this.eddsa.g.mul(this.priv());
});
cachedProperty(KeyPair, 'privBytes', function privBytes() {
  var eddsa = this.eddsa;
  var hash = this.hash();
  var lastIx = eddsa.encodingLength - 1;
  var a = hash.slice(0, eddsa.encodingLength);
  a[0] &= 248;
  a[lastIx] &= 127;
  a[lastIx] |= 64;
  return a;
});
cachedProperty(KeyPair, 'priv', function priv() {
  return this.eddsa.decodeInt(this.privBytes());
});
cachedProperty(KeyPair, 'hash', function hash() {
  return this.eddsa.hash().update(this.secret()).digest();
});
cachedProperty(KeyPair, 'messagePrefix', function messagePrefix() {
  return this.hash().slice(this.eddsa.encodingLength);
});

KeyPair.prototype.sign = function sign(message) {
  assert(this._secret, 'KeyPair can only verify');
  return this.eddsa.sign(message, this);
};

KeyPair.prototype.verify = function verify(message, sig) {
  return this.eddsa.verify(message, sig, this);
};

KeyPair.prototype.getSecret = function getSecret(enc) {
  assert(this._secret, 'KeyPair is public only');
  return utils.encode(this.secret(), enc);
};

KeyPair.prototype.getPublic = function getPublic(enc) {
  return utils.encode(this.pubBytes(), enc);
};

module.exports = KeyPair;

/***/ }),

/***/ "OB0k":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LOCAL_STORAGE_KEY", function() { return LOCAL_STORAGE_KEY; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStorage", function() { return getStorage; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setStorage", function() { return setStorage; });
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
var LOCAL_STORAGE_KEY;
(function (LOCAL_STORAGE_KEY) {
    LOCAL_STORAGE_KEY["SORT_DIR"] = "cdo:sort-direction";
    LOCAL_STORAGE_KEY["SORT_ORDER"] = "cdo:sort-order";
    LOCAL_STORAGE_KEY["SEEN_ONBOARD_CDO"] = "cdo:seen-onboard";
    LOCAL_STORAGE_KEY["PLACE_EMBED_WARNING"] = "cdp:place-embed-warning";
    LOCAL_STORAGE_KEY["PLACE_LINK_WARNING"] = "cdp:place-link-warning";
    LOCAL_STORAGE_KEY["VIEW_STATE"] = "cdo:view-state";
})(LOCAL_STORAGE_KEY || (LOCAL_STORAGE_KEY = {}));
function getStorage(key) {
    try {
        return localStorage.getItem(key);
    }
    catch (error) {
        console.error('Utils/storage: localStorage is not supported');
    }
}
function setStorage(key, value) {
    try {
        return localStorage.setItem(key, value);
    }
    catch (error) {
        console.error('Utils/storage: localStorage is not supported');
    }
}


/***/ }),

/***/ "OCL2":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
/**
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 */

var INVITATIONS_SERVICE_ENDPOINT = exports.INVITATIONS_SERVICE_ENDPOINT = 'https://invitations-stage.adobe.io/api/v2';

/***/ }),

/***/ "ODRq":
/***/ (function(module, exports, __webpack_require__) {

module.exports = {
  "default": __webpack_require__("UDep"),
  __esModule: true
};

/***/ }),

/***/ "OJK8":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _Dialog__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("dKUG");
/* harmony import */ var _styles_ListDialog_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("TVAN");
/* harmony import */ var _styles_ListDialog_css__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_styles_ListDialog_css__WEBPACK_IMPORTED_MODULE_2__);



const ListDialog = props => {
    const { cancelLabel, confirmLabel, groups, title, variant = 'information', onCancel, onClose, onConfirm, } = props;
    return (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_Dialog__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"], { variant: variant, title: title, "aria-label": title, cancelLabel: cancelLabel, confirmLabel: confirmLabel, className: _styles_ListDialog_css__WEBPACK_IMPORTED_MODULE_2___default.a.listDialog, onConfirm: () => {
            onConfirm === null || onConfirm === void 0 ? void 0 : onConfirm();
        }, onCancel: onCancel, onClose: onClose, autoFocusButton: "confirm" },
        react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", { className: _styles_ListDialog_css__WEBPACK_IMPORTED_MODULE_2___default.a.content }, groups.map(({ header, list }, groupIndex) => (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", { className: _styles_ListDialog_css__WEBPACK_IMPORTED_MODULE_2___default.a.group, key: groupIndex },
            react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", { className: _styles_ListDialog_css__WEBPACK_IMPORTED_MODULE_2___default.a.groupMessage, "data-test-id": "ListDialog__message" }, header),
            react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", { className: _styles_ListDialog_css__WEBPACK_IMPORTED_MODULE_2___default.a.list, "data-test-id": "ListDialog__list" }, list.map((name, listIndex) => (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("p", { key: listIndex, className: _styles_ListDialog_css__WEBPACK_IMPORTED_MODULE_2___default.a.listItem }, name))))))))));
};
/* harmony default export */ __webpack_exports__["a"] = (ListDialog);


/***/ }),

/***/ "OOf5":
/***/ (function(module, exports) {

/**
 *  Copyright 2018 Adobe. All rights reserved.
 *  This file is licensed to you 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
 *
 *  Unless required by applicable law or agreed to in writing, software distributed under
 *  the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 *  OF ANY KIND, either express or implied. See the License for the specific language
 *  governing permissions and limitations under the License.
 */
// Provides explicit indication of elements receiving focus through keyboard interaction rather than mouse or touch.
(function (doc) {
  // In case file is imported in SSR context, don't polyfill anything
  if (!doc) {
    return;
  }

  var NAVIGATION_KEYS = ['Tab', 'ArrowUp', 'ArrowRight', 'ArrowDown', 'ArrowLeft', 'Home', 'End', 'PageUp', 'PageDown', 'Enter', ' ', 'Escape',
  /* IE9 and Firefox < 37 */
  'Up', 'Right', 'Down', 'Left', 'Esc'];
  var TEXT_INPUT_TYPES = ['text', 'date', 'datetime-local', 'email', 'month', 'number', 'password', 'search', 'tel', 'time', 'url', 'week'];
  var keyboardFocus = false;
  var elements = doc.getElementsByClassName('focus-ring');

  function onKeydownHandler(event) {
    if (event.ctrlKey || event.altKey || event.metaKey || NAVIGATION_KEYS.indexOf(event.key) === -1) {
      return;
    }

    keyboardFocus = true;

    if (doc.activeElement && doc.activeElement !== doc.body && doc.activeElement.tagName !== 'TEXTAREA' && !(doc.activeElement.tagName === 'INPUT' && TEXT_INPUT_TYPES.indexOf(doc.activeElement.type) !== -1)) {
      doc.activeElement.classList.add('focus-ring');
    }
  }

  function onMousedownHandler() {
    keyboardFocus = false;

    for (var i = 0; i < elements.length; i++) {
      elements[i].classList.remove('focus-ring');
    }
  }

  function onFocusHandler(event) {
    var classList = event.target.classList;

    if (classList && keyboardFocus) {
      classList.add('focus-ring');
    }
  }

  function onBlurHandler(event) {
    var classList = event.target.classList;
    classList && classList.remove('focus-ring');
  }

  doc.addEventListener('keydown', onKeydownHandler, true);
  doc.addEventListener('mousedown', onMousedownHandler, true);
  doc.addEventListener('focus', onFocusHandler, true);
  doc.addEventListener('blur', onBlurHandler, true);
})(typeof window === "undefined" ? undefined : document);

/***/ }),

/***/ "OOwQ":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("1jQa"),
      24: __webpack_require__("PWyr")
    }
  }));
};

WrappedIcon.displayName = 'MoveTo';
exports.default = WrappedIcon;

/***/ }),

/***/ "OQA9":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var _UxpOptions = _interopRequireDefault(__webpack_require__("zvwv"));

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}
/*************************************************************************
* ADOBE CONFIDENTIAL
* ___________________
*
* Copyright 2019 Adobe
* All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains
* the property of Adobe and its suppliers, if any. The intellectual
* and technical concepts contained herein are proprietary to Adobe
* and its suppliers and are protected by all applicable intellectual
* property laws, including trade secret and copyright laws.
* Dissemination of this information or reproduction of this material
* is strictly forbidden unless prior written permission is obtained
* from Adobe.
**************************************************************************/


module.exports = {
  TabList: _UxpOptions.default.select('TabList', () => __webpack_require__("xzJD"), () => __webpack_require__("Lq0C")),
  Tab: _UxpOptions.default.select('Tab', () => __webpack_require__("JnQh"), () => __webpack_require__("JnQh"))
};

/***/ }),

/***/ "OTDy":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("path", {
  d: "M24 4.1A19.9 19.9 0 1 0 43.9 24 19.9 19.9 0 0 0 24 4.1zM36 25a1 1 0 0 1-1 1h-9v9a1 1 0 0 1-1 1h-2a1 1 0 0 1-1-1v-9h-9a1 1 0 0 1-1-1v-2a1 1 0 0 1 1-1h9v-9a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v9h9a1 1 0 0 1 1 1z"
}));

/***/ }),

/***/ "OWNY":
/***/ (function(module) {

module.exports = JSON.parse("{\"(optional)\":\"(opcional)\",\"(required)\":\"(obrigatório)\"}");

/***/ }),

/***/ "OZ/i":
/***/ (function(module, exports, __webpack_require__) {

/* WEBPACK VAR INJECTION */(function(module) {(function (module, exports) {
  'use strict'; // Utils

  function assert(val, msg) {
    if (!val) throw new Error(msg || 'Assertion failed');
  } // Could use `inherits` module, but don't want to move from single file
  // architecture yet.


  function inherits(ctor, superCtor) {
    ctor.super_ = superCtor;

    var TempCtor = function () {};

    TempCtor.prototype = superCtor.prototype;
    ctor.prototype = new TempCtor();
    ctor.prototype.constructor = ctor;
  } // BN


  function BN(number, base, endian) {
    if (BN.isBN(number)) {
      return number;
    }

    this.negative = 0;
    this.words = null;
    this.length = 0; // Reduction context

    this.red = null;

    if (number !== null) {
      if (base === 'le' || base === 'be') {
        endian = base;
        base = 10;
      }

      this._init(number || 0, base || 10, endian || 'be');
    }
  }

  if (typeof module === 'object') {
    module.exports = BN;
  } else {
    exports.BN = BN;
  }

  BN.BN = BN;
  BN.wordSize = 26;
  var Buffer;

  try {
    if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {
      Buffer = window.Buffer;
    } else {
      Buffer = __webpack_require__(6).Buffer;
    }
  } catch (e) {}

  BN.isBN = function isBN(num) {
    if (num instanceof BN) {
      return true;
    }

    return num !== null && typeof num === 'object' && num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);
  };

  BN.max = function max(left, right) {
    if (left.cmp(right) > 0) return left;
    return right;
  };

  BN.min = function min(left, right) {
    if (left.cmp(right) < 0) return left;
    return right;
  };

  BN.prototype._init = function init(number, base, endian) {
    if (typeof number === 'number') {
      return this._initNumber(number, base, endian);
    }

    if (typeof number === 'object') {
      return this._initArray(number, base, endian);
    }

    if (base === 'hex') {
      base = 16;
    }

    assert(base === (base | 0) && base >= 2 && base <= 36);
    number = number.toString().replace(/\s+/g, '');
    var start = 0;

    if (number[0] === '-') {
      start++;
      this.negative = 1;
    }

    if (start < number.length) {
      if (base === 16) {
        this._parseHex(number, start, endian);
      } else {
        this._parseBase(number, base, start);

        if (endian === 'le') {
          this._initArray(this.toArray(), base, endian);
        }
      }
    }
  };

  BN.prototype._initNumber = function _initNumber(number, base, endian) {
    if (number < 0) {
      this.negative = 1;
      number = -number;
    }

    if (number < 0x4000000) {
      this.words = [number & 0x3ffffff];
      this.length = 1;
    } else if (number < 0x10000000000000) {
      this.words = [number & 0x3ffffff, number / 0x4000000 & 0x3ffffff];
      this.length = 2;
    } else {
      assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)

      this.words = [number & 0x3ffffff, number / 0x4000000 & 0x3ffffff, 1];
      this.length = 3;
    }

    if (endian !== 'le') return; // Reverse the bytes

    this._initArray(this.toArray(), base, endian);
  };

  BN.prototype._initArray = function _initArray(number, base, endian) {
    // Perhaps a Uint8Array
    assert(typeof number.length === 'number');

    if (number.length <= 0) {
      this.words = [0];
      this.length = 1;
      return this;
    }

    this.length = Math.ceil(number.length / 3);
    this.words = new Array(this.length);

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

    var j, w;
    var off = 0;

    if (endian === 'be') {
      for (i = number.length - 1, j = 0; i >= 0; i -= 3) {
        w = number[i] | number[i - 1] << 8 | number[i - 2] << 16;
        this.words[j] |= w << off & 0x3ffffff;
        this.words[j + 1] = w >>> 26 - off & 0x3ffffff;
        off += 24;

        if (off >= 26) {
          off -= 26;
          j++;
        }
      }
    } else if (endian === 'le') {
      for (i = 0, j = 0; i < number.length; i += 3) {
        w = number[i] | number[i + 1] << 8 | number[i + 2] << 16;
        this.words[j] |= w << off & 0x3ffffff;
        this.words[j + 1] = w >>> 26 - off & 0x3ffffff;
        off += 24;

        if (off >= 26) {
          off -= 26;
          j++;
        }
      }
    }

    return this.strip();
  };

  function parseHex4Bits(string, index) {
    var c = string.charCodeAt(index); // 'A' - 'F'

    if (c >= 65 && c <= 70) {
      return c - 55; // 'a' - 'f'
    } else if (c >= 97 && c <= 102) {
      return c - 87; // '0' - '9'
    } else {
      return c - 48 & 0xf;
    }
  }

  function parseHexByte(string, lowerBound, index) {
    var r = parseHex4Bits(string, index);

    if (index - 1 >= lowerBound) {
      r |= parseHex4Bits(string, index - 1) << 4;
    }

    return r;
  }

  BN.prototype._parseHex = function _parseHex(number, start, endian) {
    // Create possibly bigger array to ensure that it fits the number
    this.length = Math.ceil((number.length - start) / 6);
    this.words = new Array(this.length);

    for (var i = 0; i < this.length; i++) {
      this.words[i] = 0;
    } // 24-bits chunks


    var off = 0;
    var j = 0;
    var w;

    if (endian === 'be') {
      for (i = number.length - 1; i >= start; i -= 2) {
        w = parseHexByte(number, start, i) << off;
        this.words[j] |= w & 0x3ffffff;

        if (off >= 18) {
          off -= 18;
          j += 1;
          this.words[j] |= w >>> 26;
        } else {
          off += 8;
        }
      }
    } else {
      var parseLength = number.length - start;

      for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {
        w = parseHexByte(number, start, i) << off;
        this.words[j] |= w & 0x3ffffff;

        if (off >= 18) {
          off -= 18;
          j += 1;
          this.words[j] |= w >>> 26;
        } else {
          off += 8;
        }
      }
    }

    this.strip();
  };

  function parseBase(str, start, end, mul) {
    var r = 0;
    var len = Math.min(str.length, end);

    for (var i = start; i < len; i++) {
      var c = str.charCodeAt(i) - 48;
      r *= mul; // 'a'

      if (c >= 49) {
        r += c - 49 + 0xa; // 'A'
      } else if (c >= 17) {
        r += c - 17 + 0xa; // '0' - '9'
      } else {
        r += c;
      }
    }

    return r;
  }

  BN.prototype._parseBase = function _parseBase(number, base, start) {
    // Initialize as zero
    this.words = [0];
    this.length = 1; // Find length of limb in base

    for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {
      limbLen++;
    }

    limbLen--;
    limbPow = limbPow / base | 0;
    var total = number.length - start;
    var mod = total % limbLen;
    var end = Math.min(total, total - mod) + start;
    var word = 0;

    for (var i = start; i < end; i += limbLen) {
      word = parseBase(number, i, i + limbLen, base);
      this.imuln(limbPow);

      if (this.words[0] + word < 0x4000000) {
        this.words[0] += word;
      } else {
        this._iaddn(word);
      }
    }

    if (mod !== 0) {
      var pow = 1;
      word = parseBase(number, i, number.length, base);

      for (i = 0; i < mod; i++) {
        pow *= base;
      }

      this.imuln(pow);

      if (this.words[0] + word < 0x4000000) {
        this.words[0] += word;
      } else {
        this._iaddn(word);
      }
    }

    this.strip();
  };

  BN.prototype.copy = function copy(dest) {
    dest.words = new Array(this.length);

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

    dest.length = this.length;
    dest.negative = this.negative;
    dest.red = this.red;
  };

  BN.prototype.clone = function clone() {
    var r = new BN(null);
    this.copy(r);
    return r;
  };

  BN.prototype._expand = function _expand(size) {
    while (this.length < size) {
      this.words[this.length++] = 0;
    }

    return this;
  }; // Remove leading `0` from `this`


  BN.prototype.strip = function strip() {
    while (this.length > 1 && this.words[this.length - 1] === 0) {
      this.length--;
    }

    return this._normSign();
  };

  BN.prototype._normSign = function _normSign() {
    // -0 = 0
    if (this.length === 1 && this.words[0] === 0) {
      this.negative = 0;
    }

    return this;
  };

  BN.prototype.inspect = function inspect() {
    return (this.red ? '<BN-R: ' : '<BN: ') + this.toString(16) + '>';
  };
  /*
   var zeros = [];
  var groupSizes = [];
  var groupBases = [];
   var s = '';
  var i = -1;
  while (++i < BN.wordSize) {
    zeros[i] = s;
    s += '0';
  }
  groupSizes[0] = 0;
  groupSizes[1] = 0;
  groupBases[0] = 0;
  groupBases[1] = 0;
  var base = 2 - 1;
  while (++base < 36 + 1) {
    var groupSize = 0;
    var groupBase = 1;
    while (groupBase < (1 << BN.wordSize) / base) {
      groupBase *= base;
      groupSize += 1;
    }
    groupSizes[base] = groupSize;
    groupBases[base] = groupBase;
  }
   */


  var zeros = ['', '0', '00', '000', '0000', '00000', '000000', '0000000', '00000000', '000000000', '0000000000', '00000000000', '000000000000', '0000000000000', '00000000000000', '000000000000000', '0000000000000000', '00000000000000000', '000000000000000000', '0000000000000000000', '00000000000000000000', '000000000000000000000', '0000000000000000000000', '00000000000000000000000', '000000000000000000000000', '0000000000000000000000000'];
  var groupSizes = [0, 0, 25, 16, 12, 11, 10, 9, 8, 8, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5];
  var groupBases = [0, 0, 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216, 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625, 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632, 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149, 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176];

  BN.prototype.toString = function toString(base, padding) {
    base = base || 10;
    padding = padding | 0 || 1;
    var out;

    if (base === 16 || base === 'hex') {
      out = '';
      var off = 0;
      var carry = 0;

      for (var i = 0; i < this.length; i++) {
        var w = this.words[i];
        var word = ((w << off | carry) & 0xffffff).toString(16);
        carry = w >>> 24 - off & 0xffffff;

        if (carry !== 0 || i !== this.length - 1) {
          out = zeros[6 - word.length] + word + out;
        } else {
          out = word + out;
        }

        off += 2;

        if (off >= 26) {
          off -= 26;
          i--;
        }
      }

      if (carry !== 0) {
        out = carry.toString(16) + out;
      }

      while (out.length % padding !== 0) {
        out = '0' + out;
      }

      if (this.negative !== 0) {
        out = '-' + out;
      }

      return out;
    }

    if (base === (base | 0) && base >= 2 && base <= 36) {
      // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));
      var groupSize = groupSizes[base]; // var groupBase = Math.pow(base, groupSize);

      var groupBase = groupBases[base];
      out = '';
      var c = this.clone();
      c.negative = 0;

      while (!c.isZero()) {
        var r = c.modn(groupBase).toString(base);
        c = c.idivn(groupBase);

        if (!c.isZero()) {
          out = zeros[groupSize - r.length] + r + out;
        } else {
          out = r + out;
        }
      }

      if (this.isZero()) {
        out = '0' + out;
      }

      while (out.length % padding !== 0) {
        out = '0' + out;
      }

      if (this.negative !== 0) {
        out = '-' + out;
      }

      return out;
    }

    assert(false, 'Base should be between 2 and 36');
  };

  BN.prototype.toNumber = function toNumber() {
    var ret = this.words[0];

    if (this.length === 2) {
      ret += this.words[1] * 0x4000000;
    } else if (this.length === 3 && this.words[2] === 0x01) {
      // NOTE: at this stage it is known that the top bit is set
      ret += 0x10000000000000 + this.words[1] * 0x4000000;
    } else if (this.length > 2) {
      assert(false, 'Number can only safely store up to 53 bits');
    }

    return this.negative !== 0 ? -ret : ret;
  };

  BN.prototype.toJSON = function toJSON() {
    return this.toString(16);
  };

  BN.prototype.toBuffer = function toBuffer(endian, length) {
    assert(typeof Buffer !== 'undefined');
    return this.toArrayLike(Buffer, endian, length);
  };

  BN.prototype.toArray = function toArray(endian, length) {
    return this.toArrayLike(Array, endian, length);
  };

  BN.prototype.toArrayLike = function toArrayLike(ArrayType, endian, length) {
    var byteLength = this.byteLength();
    var reqLength = length || Math.max(1, byteLength);
    assert(byteLength <= reqLength, 'byte array longer than desired length');
    assert(reqLength > 0, 'Requested array length <= 0');
    this.strip();
    var littleEndian = endian === 'le';
    var res = new ArrayType(reqLength);
    var b, i;
    var q = this.clone();

    if (!littleEndian) {
      // Assume big-endian
      for (i = 0; i < reqLength - byteLength; i++) {
        res[i] = 0;
      }

      for (i = 0; !q.isZero(); i++) {
        b = q.andln(0xff);
        q.iushrn(8);
        res[reqLength - i - 1] = b;
      }
    } else {
      for (i = 0; !q.isZero(); i++) {
        b = q.andln(0xff);
        q.iushrn(8);
        res[i] = b;
      }

      for (; i < reqLength; i++) {
        res[i] = 0;
      }
    }

    return res;
  };

  if (Math.clz32) {
    BN.prototype._countBits = function _countBits(w) {
      return 32 - Math.clz32(w);
    };
  } else {
    BN.prototype._countBits = function _countBits(w) {
      var t = w;
      var r = 0;

      if (t >= 0x1000) {
        r += 13;
        t >>>= 13;
      }

      if (t >= 0x40) {
        r += 7;
        t >>>= 7;
      }

      if (t >= 0x8) {
        r += 4;
        t >>>= 4;
      }

      if (t >= 0x02) {
        r += 2;
        t >>>= 2;
      }

      return r + t;
    };
  }

  BN.prototype._zeroBits = function _zeroBits(w) {
    // Short-cut
    if (w === 0) return 26;
    var t = w;
    var r = 0;

    if ((t & 0x1fff) === 0) {
      r += 13;
      t >>>= 13;
    }

    if ((t & 0x7f) === 0) {
      r += 7;
      t >>>= 7;
    }

    if ((t & 0xf) === 0) {
      r += 4;
      t >>>= 4;
    }

    if ((t & 0x3) === 0) {
      r += 2;
      t >>>= 2;
    }

    if ((t & 0x1) === 0) {
      r++;
    }

    return r;
  }; // Return number of used bits in a BN


  BN.prototype.bitLength = function bitLength() {
    var w = this.words[this.length - 1];

    var hi = this._countBits(w);

    return (this.length - 1) * 26 + hi;
  };

  function toBitArray(num) {
    var w = new Array(num.bitLength());

    for (var bit = 0; bit < w.length; bit++) {
      var off = bit / 26 | 0;
      var wbit = bit % 26;
      w[bit] = (num.words[off] & 1 << wbit) >>> wbit;
    }

    return w;
  } // Number of trailing zero bits


  BN.prototype.zeroBits = function zeroBits() {
    if (this.isZero()) return 0;
    var r = 0;

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

      r += b;
      if (b !== 26) break;
    }

    return r;
  };

  BN.prototype.byteLength = function byteLength() {
    return Math.ceil(this.bitLength() / 8);
  };

  BN.prototype.toTwos = function toTwos(width) {
    if (this.negative !== 0) {
      return this.abs().inotn(width).iaddn(1);
    }

    return this.clone();
  };

  BN.prototype.fromTwos = function fromTwos(width) {
    if (this.testn(width - 1)) {
      return this.notn(width).iaddn(1).ineg();
    }

    return this.clone();
  };

  BN.prototype.isNeg = function isNeg() {
    return this.negative !== 0;
  }; // Return negative clone of `this`


  BN.prototype.neg = function neg() {
    return this.clone().ineg();
  };

  BN.prototype.ineg = function ineg() {
    if (!this.isZero()) {
      this.negative ^= 1;
    }

    return this;
  }; // Or `num` with `this` in-place


  BN.prototype.iuor = function iuor(num) {
    while (this.length < num.length) {
      this.words[this.length++] = 0;
    }

    for (var i = 0; i < num.length; i++) {
      this.words[i] = this.words[i] | num.words[i];
    }

    return this.strip();
  };

  BN.prototype.ior = function ior(num) {
    assert((this.negative | num.negative) === 0);
    return this.iuor(num);
  }; // Or `num` with `this`


  BN.prototype.or = function or(num) {
    if (this.length > num.length) return this.clone().ior(num);
    return num.clone().ior(this);
  };

  BN.prototype.uor = function uor(num) {
    if (this.length > num.length) return this.clone().iuor(num);
    return num.clone().iuor(this);
  }; // And `num` with `this` in-place


  BN.prototype.iuand = function iuand(num) {
    // b = min-length(num, this)
    var b;

    if (this.length > num.length) {
      b = num;
    } else {
      b = this;
    }

    for (var i = 0; i < b.length; i++) {
      this.words[i] = this.words[i] & num.words[i];
    }

    this.length = b.length;
    return this.strip();
  };

  BN.prototype.iand = function iand(num) {
    assert((this.negative | num.negative) === 0);
    return this.iuand(num);
  }; // And `num` with `this`


  BN.prototype.and = function and(num) {
    if (this.length > num.length) return this.clone().iand(num);
    return num.clone().iand(this);
  };

  BN.prototype.uand = function uand(num) {
    if (this.length > num.length) return this.clone().iuand(num);
    return num.clone().iuand(this);
  }; // Xor `num` with `this` in-place


  BN.prototype.iuxor = function iuxor(num) {
    // a.length > b.length
    var a;
    var b;

    if (this.length > num.length) {
      a = this;
      b = num;
    } else {
      a = num;
      b = this;
    }

    for (var i = 0; i < b.length; i++) {
      this.words[i] = a.words[i] ^ b.words[i];
    }

    if (this !== a) {
      for (; i < a.length; i++) {
        this.words[i] = a.words[i];
      }
    }

    this.length = a.length;
    return this.strip();
  };

  BN.prototype.ixor = function ixor(num) {
    assert((this.negative | num.negative) === 0);
    return this.iuxor(num);
  }; // Xor `num` with `this`


  BN.prototype.xor = function xor(num) {
    if (this.length > num.length) return this.clone().ixor(num);
    return num.clone().ixor(this);
  };

  BN.prototype.uxor = function uxor(num) {
    if (this.length > num.length) return this.clone().iuxor(num);
    return num.clone().iuxor(this);
  }; // Not ``this`` with ``width`` bitwidth


  BN.prototype.inotn = function inotn(width) {
    assert(typeof width === 'number' && width >= 0);
    var bytesNeeded = Math.ceil(width / 26) | 0;
    var bitsLeft = width % 26; // Extend the buffer with leading zeroes

    this._expand(bytesNeeded);

    if (bitsLeft > 0) {
      bytesNeeded--;
    } // Handle complete words


    for (var i = 0; i < bytesNeeded; i++) {
      this.words[i] = ~this.words[i] & 0x3ffffff;
    } // Handle the residue


    if (bitsLeft > 0) {
      this.words[i] = ~this.words[i] & 0x3ffffff >> 26 - bitsLeft;
    } // And remove leading zeroes


    return this.strip();
  };

  BN.prototype.notn = function notn(width) {
    return this.clone().inotn(width);
  }; // Set `bit` of `this`


  BN.prototype.setn = function setn(bit, val) {
    assert(typeof bit === 'number' && bit >= 0);
    var off = bit / 26 | 0;
    var wbit = bit % 26;

    this._expand(off + 1);

    if (val) {
      this.words[off] = this.words[off] | 1 << wbit;
    } else {
      this.words[off] = this.words[off] & ~(1 << wbit);
    }

    return this.strip();
  }; // Add `num` to `this` in-place


  BN.prototype.iadd = function iadd(num) {
    var r; // negative + positive

    if (this.negative !== 0 && num.negative === 0) {
      this.negative = 0;
      r = this.isub(num);
      this.negative ^= 1;
      return this._normSign(); // positive + negative
    } else if (this.negative === 0 && num.negative !== 0) {
      num.negative = 0;
      r = this.isub(num);
      num.negative = 1;
      return r._normSign();
    } // a.length > b.length


    var a, b;

    if (this.length > num.length) {
      a = this;
      b = num;
    } else {
      a = num;
      b = this;
    }

    var carry = 0;

    for (var i = 0; i < b.length; i++) {
      r = (a.words[i] | 0) + (b.words[i] | 0) + carry;
      this.words[i] = r & 0x3ffffff;
      carry = r >>> 26;
    }

    for (; carry !== 0 && i < a.length; i++) {
      r = (a.words[i] | 0) + carry;
      this.words[i] = r & 0x3ffffff;
      carry = r >>> 26;
    }

    this.length = a.length;

    if (carry !== 0) {
      this.words[this.length] = carry;
      this.length++; // Copy the rest of the words
    } else if (a !== this) {
      for (; i < a.length; i++) {
        this.words[i] = a.words[i];
      }
    }

    return this;
  }; // Add `num` to `this`


  BN.prototype.add = function add(num) {
    var res;

    if (num.negative !== 0 && this.negative === 0) {
      num.negative = 0;
      res = this.sub(num);
      num.negative ^= 1;
      return res;
    } else if (num.negative === 0 && this.negative !== 0) {
      this.negative = 0;
      res = num.sub(this);
      this.negative = 1;
      return res;
    }

    if (this.length > num.length) return this.clone().iadd(num);
    return num.clone().iadd(this);
  }; // Subtract `num` from `this` in-place


  BN.prototype.isub = function isub(num) {
    // this - (-num) = this + num
    if (num.negative !== 0) {
      num.negative = 0;
      var r = this.iadd(num);
      num.negative = 1;
      return r._normSign(); // -this - num = -(this + num)
    } else if (this.negative !== 0) {
      this.negative = 0;
      this.iadd(num);
      this.negative = 1;
      return this._normSign();
    } // At this point both numbers are positive


    var cmp = this.cmp(num); // Optimization - zeroify

    if (cmp === 0) {
      this.negative = 0;
      this.length = 1;
      this.words[0] = 0;
      return this;
    } // a > b


    var a, b;

    if (cmp > 0) {
      a = this;
      b = num;
    } else {
      a = num;
      b = this;
    }

    var carry = 0;

    for (var i = 0; i < b.length; i++) {
      r = (a.words[i] | 0) - (b.words[i] | 0) + carry;
      carry = r >> 26;
      this.words[i] = r & 0x3ffffff;
    }

    for (; carry !== 0 && i < a.length; i++) {
      r = (a.words[i] | 0) + carry;
      carry = r >> 26;
      this.words[i] = r & 0x3ffffff;
    } // Copy rest of the words


    if (carry === 0 && i < a.length && a !== this) {
      for (; i < a.length; i++) {
        this.words[i] = a.words[i];
      }
    }

    this.length = Math.max(this.length, i);

    if (a !== this) {
      this.negative = 1;
    }

    return this.strip();
  }; // Subtract `num` from `this`


  BN.prototype.sub = function sub(num) {
    return this.clone().isub(num);
  };

  function smallMulTo(self, num, out) {
    out.negative = num.negative ^ self.negative;
    var len = self.length + num.length | 0;
    out.length = len;
    len = len - 1 | 0; // Peel one iteration (compiler can't do it, because of code complexity)

    var a = self.words[0] | 0;
    var b = num.words[0] | 0;
    var r = a * b;
    var lo = r & 0x3ffffff;
    var carry = r / 0x4000000 | 0;
    out.words[0] = lo;

    for (var k = 1; k < len; k++) {
      // Sum all words with the same `i + j = k` and accumulate `ncarry`,
      // note that ncarry could be >= 0x3ffffff
      var ncarry = carry >>> 26;
      var rword = carry & 0x3ffffff;
      var maxJ = Math.min(k, num.length - 1);

      for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {
        var i = k - j | 0;
        a = self.words[i] | 0;
        b = num.words[j] | 0;
        r = a * b + rword;
        ncarry += r / 0x4000000 | 0;
        rword = r & 0x3ffffff;
      }

      out.words[k] = rword | 0;
      carry = ncarry | 0;
    }

    if (carry !== 0) {
      out.words[k] = carry | 0;
    } else {
      out.length--;
    }

    return out.strip();
  } // TODO(indutny): it may be reasonable to omit it for users who don't need
  // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit
  // multiplication (like elliptic secp256k1).


  var comb10MulTo = function comb10MulTo(self, num, out) {
    var a = self.words;
    var b = num.words;
    var o = out.words;
    var c = 0;
    var lo;
    var mid;
    var hi;
    var a0 = a[0] | 0;
    var al0 = a0 & 0x1fff;
    var ah0 = a0 >>> 13;
    var a1 = a[1] | 0;
    var al1 = a1 & 0x1fff;
    var ah1 = a1 >>> 13;
    var a2 = a[2] | 0;
    var al2 = a2 & 0x1fff;
    var ah2 = a2 >>> 13;
    var a3 = a[3] | 0;
    var al3 = a3 & 0x1fff;
    var ah3 = a3 >>> 13;
    var a4 = a[4] | 0;
    var al4 = a4 & 0x1fff;
    var ah4 = a4 >>> 13;
    var a5 = a[5] | 0;
    var al5 = a5 & 0x1fff;
    var ah5 = a5 >>> 13;
    var a6 = a[6] | 0;
    var al6 = a6 & 0x1fff;
    var ah6 = a6 >>> 13;
    var a7 = a[7] | 0;
    var al7 = a7 & 0x1fff;
    var ah7 = a7 >>> 13;
    var a8 = a[8] | 0;
    var al8 = a8 & 0x1fff;
    var ah8 = a8 >>> 13;
    var a9 = a[9] | 0;
    var al9 = a9 & 0x1fff;
    var ah9 = a9 >>> 13;
    var b0 = b[0] | 0;
    var bl0 = b0 & 0x1fff;
    var bh0 = b0 >>> 13;
    var b1 = b[1] | 0;
    var bl1 = b1 & 0x1fff;
    var bh1 = b1 >>> 13;
    var b2 = b[2] | 0;
    var bl2 = b2 & 0x1fff;
    var bh2 = b2 >>> 13;
    var b3 = b[3] | 0;
    var bl3 = b3 & 0x1fff;
    var bh3 = b3 >>> 13;
    var b4 = b[4] | 0;
    var bl4 = b4 & 0x1fff;
    var bh4 = b4 >>> 13;
    var b5 = b[5] | 0;
    var bl5 = b5 & 0x1fff;
    var bh5 = b5 >>> 13;
    var b6 = b[6] | 0;
    var bl6 = b6 & 0x1fff;
    var bh6 = b6 >>> 13;
    var b7 = b[7] | 0;
    var bl7 = b7 & 0x1fff;
    var bh7 = b7 >>> 13;
    var b8 = b[8] | 0;
    var bl8 = b8 & 0x1fff;
    var bh8 = b8 >>> 13;
    var b9 = b[9] | 0;
    var bl9 = b9 & 0x1fff;
    var bh9 = b9 >>> 13;
    out.negative = self.negative ^ num.negative;
    out.length = 19;
    /* k = 0 */

    lo = Math.imul(al0, bl0);
    mid = Math.imul(al0, bh0);
    mid = mid + Math.imul(ah0, bl0) | 0;
    hi = Math.imul(ah0, bh0);
    var w0 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;
    c = (hi + (mid >>> 13) | 0) + (w0 >>> 26) | 0;
    w0 &= 0x3ffffff;
    /* k = 1 */

    lo = Math.imul(al1, bl0);
    mid = Math.imul(al1, bh0);
    mid = mid + Math.imul(ah1, bl0) | 0;
    hi = Math.imul(ah1, bh0);
    lo = lo + Math.imul(al0, bl1) | 0;
    mid = mid + Math.imul(al0, bh1) | 0;
    mid = mid + Math.imul(ah0, bl1) | 0;
    hi = hi + Math.imul(ah0, bh1) | 0;
    var w1 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;
    c = (hi + (mid >>> 13) | 0) + (w1 >>> 26) | 0;
    w1 &= 0x3ffffff;
    /* k = 2 */

    lo = Math.imul(al2, bl0);
    mid = Math.imul(al2, bh0);
    mid = mid + Math.imul(ah2, bl0) | 0;
    hi = Math.imul(ah2, bh0);
    lo = lo + Math.imul(al1, bl1) | 0;
    mid = mid + Math.imul(al1, bh1) | 0;
    mid = mid + Math.imul(ah1, bl1) | 0;
    hi = hi + Math.imul(ah1, bh1) | 0;
    lo = lo + Math.imul(al0, bl2) | 0;
    mid = mid + Math.imul(al0, bh2) | 0;
    mid = mid + Math.imul(ah0, bl2) | 0;
    hi = hi + Math.imul(ah0, bh2) | 0;
    var w2 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;
    c = (hi + (mid >>> 13) | 0) + (w2 >>> 26) | 0;
    w2 &= 0x3ffffff;
    /* k = 3 */

    lo = Math.imul(al3, bl0);
    mid = Math.imul(al3, bh0);
    mid = mid + Math.imul(ah3, bl0) | 0;
    hi = Math.imul(ah3, bh0);
    lo = lo + Math.imul(al2, bl1) | 0;
    mid = mid + Math.imul(al2, bh1) | 0;
    mid = mid + Math.imul(ah2, bl1) | 0;
    hi = hi + Math.imul(ah2, bh1) | 0;
    lo = lo + Math.imul(al1, bl2) | 0;
    mid = mid + Math.imul(al1, bh2) | 0;
    mid = mid + Math.imul(ah1, bl2) | 0;
    hi = hi + Math.imul(ah1, bh2) | 0;
    lo = lo + Math.imul(al0, bl3) | 0;
    mid = mid + Math.imul(al0, bh3) | 0;
    mid = mid + Math.imul(ah0, bl3) | 0;
    hi = hi + Math.imul(ah0, bh3) | 0;
    var w3 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;
    c = (hi + (mid >>> 13) | 0) + (w3 >>> 26) | 0;
    w3 &= 0x3ffffff;
    /* k = 4 */

    lo = Math.imul(al4, bl0);
    mid = Math.imul(al4, bh0);
    mid = mid + Math.imul(ah4, bl0) | 0;
    hi = Math.imul(ah4, bh0);
    lo = lo + Math.imul(al3, bl1) | 0;
    mid = mid + Math.imul(al3, bh1) | 0;
    mid = mid + Math.imul(ah3, bl1) | 0;
    hi = hi + Math.imul(ah3, bh1) | 0;
    lo = lo + Math.imul(al2, bl2) | 0;
    mid = mid + Math.imul(al2, bh2) | 0;
    mid = mid + Math.imul(ah2, bl2) | 0;
    hi = hi + Math.imul(ah2, bh2) | 0;
    lo = lo + Math.imul(al1, bl3) | 0;
    mid = mid + Math.imul(al1, bh3) | 0;
    mid = mid + Math.imul(ah1, bl3) | 0;
    hi = hi + Math.imul(ah1, bh3) | 0;
    lo = lo + Math.imul(al0, bl4) | 0;
    mid = mid + Math.imul(al0, bh4) | 0;
    mid = mid + Math.imul(ah0, bl4) | 0;
    hi = hi + Math.imul(ah0, bh4) | 0;
    var w4 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;
    c = (hi + (mid >>> 13) | 0) + (w4 >>> 26) | 0;
    w4 &= 0x3ffffff;
    /* k = 5 */

    lo = Math.imul(al5, bl0);
    mid = Math.imul(al5, bh0);
    mid = mid + Math.imul(ah5, bl0) | 0;
    hi = Math.imul(ah5, bh0);
    lo = lo + Math.imul(al4, bl1) | 0;
    mid = mid + Math.imul(al4, bh1) | 0;
    mid = mid + Math.imul(ah4, bl1) | 0;
    hi = hi + Math.imul(ah4, bh1) | 0;
    lo = lo + Math.imul(al3, bl2) | 0;
    mid = mid + Math.imul(al3, bh2) | 0;
    mid = mid + Math.imul(ah3, bl2) | 0;
    hi = hi + Math.imul(ah3, bh2) | 0;
    lo = lo + Math.imul(al2, bl3) | 0;
    mid = mid + Math.imul(al2, bh3) | 0;
    mid = mid + Math.imul(ah2, bl3) | 0;
    hi = hi + Math.imul(ah2, bh3) | 0;
    lo = lo + Math.imul(al1, bl4) | 0;
    mid = mid + Math.imul(al1, bh4) | 0;
    mid = mid + Math.imul(ah1, bl4) | 0;
    hi = hi + Math.imul(ah1, bh4) | 0;
    lo = lo + Math.imul(al0, bl5) | 0;
    mid = mid + Math.imul(al0, bh5) | 0;
    mid = mid + Math.imul(ah0, bl5) | 0;
    hi = hi + Math.imul(ah0, bh5) | 0;
    var w5 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;
    c = (hi + (mid >>> 13) | 0) + (w5 >>> 26) | 0;
    w5 &= 0x3ffffff;
    /* k = 6 */

    lo = Math.imul(al6, bl0);
    mid = Math.imul(al6, bh0);
    mid = mid + Math.imul(ah6, bl0) | 0;
    hi = Math.imul(ah6, bh0);
    lo = lo + Math.imul(al5, bl1) | 0;
    mid = mid + Math.imul(al5, bh1) | 0;
    mid = mid + Math.imul(ah5, bl1) | 0;
    hi = hi + Math.imul(ah5, bh1) | 0;
    lo = lo + Math.imul(al4, bl2) | 0;
    mid = mid + Math.imul(al4, bh2) | 0;
    mid = mid + Math.imul(ah4, bl2) | 0;
    hi = hi + Math.imul(ah4, bh2) | 0;
    lo = lo + Math.imul(al3, bl3) | 0;
    mid = mid + Math.imul(al3, bh3) | 0;
    mid = mid + Math.imul(ah3, bl3) | 0;
    hi = hi + Math.imul(ah3, bh3) | 0;
    lo = lo + Math.imul(al2, bl4) | 0;
    mid = mid + Math.imul(al2, bh4) | 0;
    mid = mid + Math.imul(ah2, bl4) | 0;
    hi = hi + Math.imul(ah2, bh4) | 0;
    lo = lo + Math.imul(al1, bl5) | 0;
    mid = mid + Math.imul(al1, bh5) | 0;
    mid = mid + Math.imul(ah1, bl5) | 0;
    hi = hi + Math.imul(ah1, bh5) | 0;
    lo = lo + Math.imul(al0, bl6) | 0;
    mid = mid + Math.imul(al0, bh6) | 0;
    mid = mid + Math.imul(ah0, bl6) | 0;
    hi = hi + Math.imul(ah0, bh6) | 0;
    var w6 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;
    c = (hi + (mid >>> 13) | 0) + (w6 >>> 26) | 0;
    w6 &= 0x3ffffff;
    /* k = 7 */

    lo = Math.imul(al7, bl0);
    mid = Math.imul(al7, bh0);
    mid = mid + Math.imul(ah7, bl0) | 0;
    hi = Math.imul(ah7, bh0);
    lo = lo + Math.imul(al6, bl1) | 0;
    mid = mid + Math.imul(al6, bh1) | 0;
    mid = mid + Math.imul(ah6, bl1) | 0;
    hi = hi + Math.imul(ah6, bh1) | 0;
    lo = lo + Math.imul(al5, bl2) | 0;
    mid = mid + Math.imul(al5, bh2) | 0;
    mid = mid + Math.imul(ah5, bl2) | 0;
    hi = hi + Math.imul(ah5, bh2) | 0;
    lo = lo + Math.imul(al4, bl3) | 0;
    mid = mid + Math.imul(al4, bh3) | 0;
    mid = mid + Math.imul(ah4, bl3) | 0;
    hi = hi + Math.imul(ah4, bh3) | 0;
    lo = lo + Math.imul(al3, bl4) | 0;
    mid = mid + Math.imul(al3, bh4) | 0;
    mid = mid + Math.imul(ah3, bl4) | 0;
    hi = hi + Math.imul(ah3, bh4) | 0;
    lo = lo + Math.imul(al2, bl5) | 0;
    mid = mid + Math.imul(al2, bh5) | 0;
    mid = mid + Math.imul(ah2, bl5) | 0;
    hi = hi + Math.imul(ah2, bh5) | 0;
    lo = lo + Math.imul(al1, bl6) | 0;
    mid = mid + Math.imul(al1, bh6) | 0;
    mid = mid + Math.imul(ah1, bl6) | 0;
    hi = hi + Math.imul(ah1, bh6) | 0;
    lo = lo + Math.imul(al0, bl7) | 0;
    mid = mid + Math.imul(al0, bh7) | 0;
    mid = mid + Math.imul(ah0, bl7) | 0;
    hi = hi + Math.imul(ah0, bh7) | 0;
    var w7 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;
    c = (hi + (mid >>> 13) | 0) + (w7 >>> 26) | 0;
    w7 &= 0x3ffffff;
    /* k = 8 */

    lo = Math.imul(al8, bl0);
    mid = Math.imul(al8, bh0);
    mid = mid + Math.imul(ah8, bl0) | 0;
    hi = Math.imul(ah8, bh0);
    lo = lo + Math.imul(al7, bl1) | 0;
    mid = mid + Math.imul(al7, bh1) | 0;
    mid = mid + Math.imul(ah7, bl1) | 0;
    hi = hi + Math.imul(ah7, bh1) | 0;
    lo = lo + Math.imul(al6, bl2) | 0;
    mid = mid + Math.imul(al6, bh2) | 0;
    mid = mid + Math.imul(ah6, bl2) | 0;
    hi = hi + Math.imul(ah6, bh2) | 0;
    lo = lo + Math.imul(al5, bl3) | 0;
    mid = mid + Math.imul(al5, bh3) | 0;
    mid = mid + Math.imul(ah5, bl3) | 0;
    hi = hi + Math.imul(ah5, bh3) | 0;
    lo = lo + Math.imul(al4, bl4) | 0;
    mid = mid + Math.imul(al4, bh4) | 0;
    mid = mid + Math.imul(ah4, bl4) | 0;
    hi = hi + Math.imul(ah4, bh4) | 0;
    lo = lo + Math.imul(al3, bl5) | 0;
    mid = mid + Math.imul(al3, bh5) | 0;
    mid = mid + Math.imul(ah3, bl5) | 0;
    hi = hi + Math.imul(ah3, bh5) | 0;
    lo = lo + Math.imul(al2, bl6) | 0;
    mid = mid + Math.imul(al2, bh6) | 0;
    mid = mid + Math.imul(ah2, bl6) | 0;
    hi = hi + Math.imul(ah2, bh6) | 0;
    lo = lo + Math.imul(al1, bl7) | 0;
    mid = mid + Math.imul(al1, bh7) | 0;
    mid = mid + Math.imul(ah1, bl7) | 0;
    hi = hi + Math.imul(ah1, bh7) | 0;
    lo = lo + Math.imul(al0, bl8) | 0;
    mid = mid + Math.imul(al0, bh8) | 0;
    mid = mid + Math.imul(ah0, bl8) | 0;
    hi = hi + Math.imul(ah0, bh8) | 0;
    var w8 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;
    c = (hi + (mid >>> 13) | 0) + (w8 >>> 26) | 0;
    w8 &= 0x3ffffff;
    /* k = 9 */

    lo = Math.imul(al9, bl0);
    mid = Math.imul(al9, bh0);
    mid = mid + Math.imul(ah9, bl0) | 0;
    hi = Math.imul(ah9, bh0);
    lo = lo + Math.imul(al8, bl1) | 0;
    mid = mid + Math.imul(al8, bh1) | 0;
    mid = mid + Math.imul(ah8, bl1) | 0;
    hi = hi + Math.imul(ah8, bh1) | 0;
    lo = lo + Math.imul(al7, bl2) | 0;
    mid = mid + Math.imul(al7, bh2) | 0;
    mid = mid + Math.imul(ah7, bl2) | 0;
    hi = hi + Math.imul(ah7, bh2) | 0;
    lo = lo + Math.imul(al6, bl3) | 0;
    mid = mid + Math.imul(al6, bh3) | 0;
    mid = mid + Math.imul(ah6, bl3) | 0;
    hi = hi + Math.imul(ah6, bh3) | 0;
    lo = lo + Math.imul(al5, bl4) | 0;
    mid = mid + Math.imul(al5, bh4) | 0;
    mid = mid + Math.imul(ah5, bl4) | 0;
    hi = hi + Math.imul(ah5, bh4) | 0;
    lo = lo + Math.imul(al4, bl5) | 0;
    mid = mid + Math.imul(al4, bh5) | 0;
    mid = mid + Math.imul(ah4, bl5) | 0;
    hi = hi + Math.imul(ah4, bh5) | 0;
    lo = lo + Math.imul(al3, bl6) | 0;
    mid = mid + Math.imul(al3, bh6) | 0;
    mid = mid + Math.imul(ah3, bl6) | 0;
    hi = hi + Math.imul(ah3, bh6) | 0;
    lo = lo + Math.imul(al2, bl7) | 0;
    mid = mid + Math.imul(al2, bh7) | 0;
    mid = mid + Math.imul(ah2, bl7) | 0;
    hi = hi + Math.imul(ah2, bh7) | 0;
    lo = lo + Math.imul(al1, bl8) | 0;
    mid = mid + Math.imul(al1, bh8) | 0;
    mid = mid + Math.imul(ah1, bl8) | 0;
    hi = hi + Math.imul(ah1, bh8) | 0;
    lo = lo + Math.imul(al0, bl9) | 0;
    mid = mid + Math.imul(al0, bh9) | 0;
    mid = mid + Math.imul(ah0, bl9) | 0;
    hi = hi + Math.imul(ah0, bh9) | 0;
    var w9 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;
    c = (hi + (mid >>> 13) | 0) + (w9 >>> 26) | 0;
    w9 &= 0x3ffffff;
    /* k = 10 */

    lo = Math.imul(al9, bl1);
    mid = Math.imul(al9, bh1);
    mid = mid + Math.imul(ah9, bl1) | 0;
    hi = Math.imul(ah9, bh1);
    lo = lo + Math.imul(al8, bl2) | 0;
    mid = mid + Math.imul(al8, bh2) | 0;
    mid = mid + Math.imul(ah8, bl2) | 0;
    hi = hi + Math.imul(ah8, bh2) | 0;
    lo = lo + Math.imul(al7, bl3) | 0;
    mid = mid + Math.imul(al7, bh3) | 0;
    mid = mid + Math.imul(ah7, bl3) | 0;
    hi = hi + Math.imul(ah7, bh3) | 0;
    lo = lo + Math.imul(al6, bl4) | 0;
    mid = mid + Math.imul(al6, bh4) | 0;
    mid = mid + Math.imul(ah6, bl4) | 0;
    hi = hi + Math.imul(ah6, bh4) | 0;
    lo = lo + Math.imul(al5, bl5) | 0;
    mid = mid + Math.imul(al5, bh5) | 0;
    mid = mid + Math.imul(ah5, bl5) | 0;
    hi = hi + Math.imul(ah5, bh5) | 0;
    lo = lo + Math.imul(al4, bl6) | 0;
    mid = mid + Math.imul(al4, bh6) | 0;
    mid = mid + Math.imul(ah4, bl6) | 0;
    hi = hi + Math.imul(ah4, bh6) | 0;
    lo = lo + Math.imul(al3, bl7) | 0;
    mid = mid + Math.imul(al3, bh7) | 0;
    mid = mid + Math.imul(ah3, bl7) | 0;
    hi = hi + Math.imul(ah3, bh7) | 0;
    lo = lo + Math.imul(al2, bl8) | 0;
    mid = mid + Math.imul(al2, bh8) | 0;
    mid = mid + Math.imul(ah2, bl8) | 0;
    hi = hi + Math.imul(ah2, bh8) | 0;
    lo = lo + Math.imul(al1, bl9) | 0;
    mid = mid + Math.imul(al1, bh9) | 0;
    mid = mid + Math.imul(ah1, bl9) | 0;
    hi = hi + Math.imul(ah1, bh9) | 0;
    var w10 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;
    c = (hi + (mid >>> 13) | 0) + (w10 >>> 26) | 0;
    w10 &= 0x3ffffff;
    /* k = 11 */

    lo = Math.imul(al9, bl2);
    mid = Math.imul(al9, bh2);
    mid = mid + Math.imul(ah9, bl2) | 0;
    hi = Math.imul(ah9, bh2);
    lo = lo + Math.imul(al8, bl3) | 0;
    mid = mid + Math.imul(al8, bh3) | 0;
    mid = mid + Math.imul(ah8, bl3) | 0;
    hi = hi + Math.imul(ah8, bh3) | 0;
    lo = lo + Math.imul(al7, bl4) | 0;
    mid = mid + Math.imul(al7, bh4) | 0;
    mid = mid + Math.imul(ah7, bl4) | 0;
    hi = hi + Math.imul(ah7, bh4) | 0;
    lo = lo + Math.imul(al6, bl5) | 0;
    mid = mid + Math.imul(al6, bh5) | 0;
    mid = mid + Math.imul(ah6, bl5) | 0;
    hi = hi + Math.imul(ah6, bh5) | 0;
    lo = lo + Math.imul(al5, bl6) | 0;
    mid = mid + Math.imul(al5, bh6) | 0;
    mid = mid + Math.imul(ah5, bl6) | 0;
    hi = hi + Math.imul(ah5, bh6) | 0;
    lo = lo + Math.imul(al4, bl7) | 0;
    mid = mid + Math.imul(al4, bh7) | 0;
    mid = mid + Math.imul(ah4, bl7) | 0;
    hi = hi + Math.imul(ah4, bh7) | 0;
    lo = lo + Math.imul(al3, bl8) | 0;
    mid = mid + Math.imul(al3, bh8) | 0;
    mid = mid + Math.imul(ah3, bl8) | 0;
    hi = hi + Math.imul(ah3, bh8) | 0;
    lo = lo + Math.imul(al2, bl9) | 0;
    mid = mid + Math.imul(al2, bh9) | 0;
    mid = mid + Math.imul(ah2, bl9) | 0;
    hi = hi + Math.imul(ah2, bh9) | 0;
    var w11 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;
    c = (hi + (mid >>> 13) | 0) + (w11 >>> 26) | 0;
    w11 &= 0x3ffffff;
    /* k = 12 */

    lo = Math.imul(al9, bl3);
    mid = Math.imul(al9, bh3);
    mid = mid + Math.imul(ah9, bl3) | 0;
    hi = Math.imul(ah9, bh3);
    lo = lo + Math.imul(al8, bl4) | 0;
    mid = mid + Math.imul(al8, bh4) | 0;
    mid = mid + Math.imul(ah8, bl4) | 0;
    hi = hi + Math.imul(ah8, bh4) | 0;
    lo = lo + Math.imul(al7, bl5) | 0;
    mid = mid + Math.imul(al7, bh5) | 0;
    mid = mid + Math.imul(ah7, bl5) | 0;
    hi = hi + Math.imul(ah7, bh5) | 0;
    lo = lo + Math.imul(al6, bl6) | 0;
    mid = mid + Math.imul(al6, bh6) | 0;
    mid = mid + Math.imul(ah6, bl6) | 0;
    hi = hi + Math.imul(ah6, bh6) | 0;
    lo = lo + Math.imul(al5, bl7) | 0;
    mid = mid + Math.imul(al5, bh7) | 0;
    mid = mid + Math.imul(ah5, bl7) | 0;
    hi = hi + Math.imul(ah5, bh7) | 0;
    lo = lo + Math.imul(al4, bl8) | 0;
    mid = mid + Math.imul(al4, bh8) | 0;
    mid = mid + Math.imul(ah4, bl8) | 0;
    hi = hi + Math.imul(ah4, bh8) | 0;
    lo = lo + Math.imul(al3, bl9) | 0;
    mid = mid + Math.imul(al3, bh9) | 0;
    mid = mid + Math.imul(ah3, bl9) | 0;
    hi = hi + Math.imul(ah3, bh9) | 0;
    var w12 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;
    c = (hi + (mid >>> 13) | 0) + (w12 >>> 26) | 0;
    w12 &= 0x3ffffff;
    /* k = 13 */

    lo = Math.imul(al9, bl4);
    mid = Math.imul(al9, bh4);
    mid = mid + Math.imul(ah9, bl4) | 0;
    hi = Math.imul(ah9, bh4);
    lo = lo + Math.imul(al8, bl5) | 0;
    mid = mid + Math.imul(al8, bh5) | 0;
    mid = mid + Math.imul(ah8, bl5) | 0;
    hi = hi + Math.imul(ah8, bh5) | 0;
    lo = lo + Math.imul(al7, bl6) | 0;
    mid = mid + Math.imul(al7, bh6) | 0;
    mid = mid + Math.imul(ah7, bl6) | 0;
    hi = hi + Math.imul(ah7, bh6) | 0;
    lo = lo + Math.imul(al6, bl7) | 0;
    mid = mid + Math.imul(al6, bh7) | 0;
    mid = mid + Math.imul(ah6, bl7) | 0;
    hi = hi + Math.imul(ah6, bh7) | 0;
    lo = lo + Math.imul(al5, bl8) | 0;
    mid = mid + Math.imul(al5, bh8) | 0;
    mid = mid + Math.imul(ah5, bl8) | 0;
    hi = hi + Math.imul(ah5, bh8) | 0;
    lo = lo + Math.imul(al4, bl9) | 0;
    mid = mid + Math.imul(al4, bh9) | 0;
    mid = mid + Math.imul(ah4, bl9) | 0;
    hi = hi + Math.imul(ah4, bh9) | 0;
    var w13 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;
    c = (hi + (mid >>> 13) | 0) + (w13 >>> 26) | 0;
    w13 &= 0x3ffffff;
    /* k = 14 */

    lo = Math.imul(al9, bl5);
    mid = Math.imul(al9, bh5);
    mid = mid + Math.imul(ah9, bl5) | 0;
    hi = Math.imul(ah9, bh5);
    lo = lo + Math.imul(al8, bl6) | 0;
    mid = mid + Math.imul(al8, bh6) | 0;
    mid = mid + Math.imul(ah8, bl6) | 0;
    hi = hi + Math.imul(ah8, bh6) | 0;
    lo = lo + Math.imul(al7, bl7) | 0;
    mid = mid + Math.imul(al7, bh7) | 0;
    mid = mid + Math.imul(ah7, bl7) | 0;
    hi = hi + Math.imul(ah7, bh7) | 0;
    lo = lo + Math.imul(al6, bl8) | 0;
    mid = mid + Math.imul(al6, bh8) | 0;
    mid = mid + Math.imul(ah6, bl8) | 0;
    hi = hi + Math.imul(ah6, bh8) | 0;
    lo = lo + Math.imul(al5, bl9) | 0;
    mid = mid + Math.imul(al5, bh9) | 0;
    mid = mid + Math.imul(ah5, bl9) | 0;
    hi = hi + Math.imul(ah5, bh9) | 0;
    var w14 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;
    c = (hi + (mid >>> 13) | 0) + (w14 >>> 26) | 0;
    w14 &= 0x3ffffff;
    /* k = 15 */

    lo = Math.imul(al9, bl6);
    mid = Math.imul(al9, bh6);
    mid = mid + Math.imul(ah9, bl6) | 0;
    hi = Math.imul(ah9, bh6);
    lo = lo + Math.imul(al8, bl7) | 0;
    mid = mid + Math.imul(al8, bh7) | 0;
    mid = mid + Math.imul(ah8, bl7) | 0;
    hi = hi + Math.imul(ah8, bh7) | 0;
    lo = lo + Math.imul(al7, bl8) | 0;
    mid = mid + Math.imul(al7, bh8) | 0;
    mid = mid + Math.imul(ah7, bl8) | 0;
    hi = hi + Math.imul(ah7, bh8) | 0;
    lo = lo + Math.imul(al6, bl9) | 0;
    mid = mid + Math.imul(al6, bh9) | 0;
    mid = mid + Math.imul(ah6, bl9) | 0;
    hi = hi + Math.imul(ah6, bh9) | 0;
    var w15 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;
    c = (hi + (mid >>> 13) | 0) + (w15 >>> 26) | 0;
    w15 &= 0x3ffffff;
    /* k = 16 */

    lo = Math.imul(al9, bl7);
    mid = Math.imul(al9, bh7);
    mid = mid + Math.imul(ah9, bl7) | 0;
    hi = Math.imul(ah9, bh7);
    lo = lo + Math.imul(al8, bl8) | 0;
    mid = mid + Math.imul(al8, bh8) | 0;
    mid = mid + Math.imul(ah8, bl8) | 0;
    hi = hi + Math.imul(ah8, bh8) | 0;
    lo = lo + Math.imul(al7, bl9) | 0;
    mid = mid + Math.imul(al7, bh9) | 0;
    mid = mid + Math.imul(ah7, bl9) | 0;
    hi = hi + Math.imul(ah7, bh9) | 0;
    var w16 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;
    c = (hi + (mid >>> 13) | 0) + (w16 >>> 26) | 0;
    w16 &= 0x3ffffff;
    /* k = 17 */

    lo = Math.imul(al9, bl8);
    mid = Math.imul(al9, bh8);
    mid = mid + Math.imul(ah9, bl8) | 0;
    hi = Math.imul(ah9, bh8);
    lo = lo + Math.imul(al8, bl9) | 0;
    mid = mid + Math.imul(al8, bh9) | 0;
    mid = mid + Math.imul(ah8, bl9) | 0;
    hi = hi + Math.imul(ah8, bh9) | 0;
    var w17 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;
    c = (hi + (mid >>> 13) | 0) + (w17 >>> 26) | 0;
    w17 &= 0x3ffffff;
    /* k = 18 */

    lo = Math.imul(al9, bl9);
    mid = Math.imul(al9, bh9);
    mid = mid + Math.imul(ah9, bl9) | 0;
    hi = Math.imul(ah9, bh9);
    var w18 = (c + lo | 0) + ((mid & 0x1fff) << 13) | 0;
    c = (hi + (mid >>> 13) | 0) + (w18 >>> 26) | 0;
    w18 &= 0x3ffffff;
    o[0] = w0;
    o[1] = w1;
    o[2] = w2;
    o[3] = w3;
    o[4] = w4;
    o[5] = w5;
    o[6] = w6;
    o[7] = w7;
    o[8] = w8;
    o[9] = w9;
    o[10] = w10;
    o[11] = w11;
    o[12] = w12;
    o[13] = w13;
    o[14] = w14;
    o[15] = w15;
    o[16] = w16;
    o[17] = w17;
    o[18] = w18;

    if (c !== 0) {
      o[19] = c;
      out.length++;
    }

    return out;
  }; // Polyfill comb


  if (!Math.imul) {
    comb10MulTo = smallMulTo;
  }

  function bigMulTo(self, num, out) {
    out.negative = num.negative ^ self.negative;
    out.length = self.length + num.length;
    var carry = 0;
    var hncarry = 0;

    for (var k = 0; k < out.length - 1; k++) {
      // Sum all words with the same `i + j = k` and accumulate `ncarry`,
      // note that ncarry could be >= 0x3ffffff
      var ncarry = hncarry;
      hncarry = 0;
      var rword = carry & 0x3ffffff;
      var maxJ = Math.min(k, num.length - 1);

      for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {
        var i = k - j;
        var a = self.words[i] | 0;
        var b = num.words[j] | 0;
        var r = a * b;
        var lo = r & 0x3ffffff;
        ncarry = ncarry + (r / 0x4000000 | 0) | 0;
        lo = lo + rword | 0;
        rword = lo & 0x3ffffff;
        ncarry = ncarry + (lo >>> 26) | 0;
        hncarry += ncarry >>> 26;
        ncarry &= 0x3ffffff;
      }

      out.words[k] = rword;
      carry = ncarry;
      ncarry = hncarry;
    }

    if (carry !== 0) {
      out.words[k] = carry;
    } else {
      out.length--;
    }

    return out.strip();
  }

  function jumboMulTo(self, num, out) {
    var fftm = new FFTM();
    return fftm.mulp(self, num, out);
  }

  BN.prototype.mulTo = function mulTo(num, out) {
    var res;
    var len = this.length + num.length;

    if (this.length === 10 && num.length === 10) {
      res = comb10MulTo(this, num, out);
    } else if (len < 63) {
      res = smallMulTo(this, num, out);
    } else if (len < 1024) {
      res = bigMulTo(this, num, out);
    } else {
      res = jumboMulTo(this, num, out);
    }

    return res;
  }; // Cooley-Tukey algorithm for FFT
  // slightly revisited to rely on looping instead of recursion


  function FFTM(x, y) {
    this.x = x;
    this.y = y;
  }

  FFTM.prototype.makeRBT = function makeRBT(N) {
    var t = new Array(N);
    var l = BN.prototype._countBits(N) - 1;

    for (var i = 0; i < N; i++) {
      t[i] = this.revBin(i, l, N);
    }

    return t;
  }; // Returns binary-reversed representation of `x`


  FFTM.prototype.revBin = function revBin(x, l, N) {
    if (x === 0 || x === N - 1) return x;
    var rb = 0;

    for (var i = 0; i < l; i++) {
      rb |= (x & 1) << l - i - 1;
      x >>= 1;
    }

    return rb;
  }; // Performs "tweedling" phase, therefore 'emulating'
  // behaviour of the recursive algorithm


  FFTM.prototype.permute = function permute(rbt, rws, iws, rtws, itws, N) {
    for (var i = 0; i < N; i++) {
      rtws[i] = rws[rbt[i]];
      itws[i] = iws[rbt[i]];
    }
  };

  FFTM.prototype.transform = function transform(rws, iws, rtws, itws, N, rbt) {
    this.permute(rbt, rws, iws, rtws, itws, N);

    for (var s = 1; s < N; s <<= 1) {
      var l = s << 1;
      var rtwdf = Math.cos(2 * Math.PI / l);
      var itwdf = Math.sin(2 * Math.PI / l);

      for (var p = 0; p < N; p += l) {
        var rtwdf_ = rtwdf;
        var itwdf_ = itwdf;

        for (var j = 0; j < s; j++) {
          var re = rtws[p + j];
          var ie = itws[p + j];
          var ro = rtws[p + j + s];
          var io = itws[p + j + s];
          var rx = rtwdf_ * ro - itwdf_ * io;
          io = rtwdf_ * io + itwdf_ * ro;
          ro = rx;
          rtws[p + j] = re + ro;
          itws[p + j] = ie + io;
          rtws[p + j + s] = re - ro;
          itws[p + j + s] = ie - io;
          /* jshint maxdepth : false */

          if (j !== l) {
            rx = rtwdf * rtwdf_ - itwdf * itwdf_;
            itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;
            rtwdf_ = rx;
          }
        }
      }
    }
  };

  FFTM.prototype.guessLen13b = function guessLen13b(n, m) {
    var N = Math.max(m, n) | 1;
    var odd = N & 1;
    var i = 0;

    for (N = N / 2 | 0; N; N = N >>> 1) {
      i++;
    }

    return 1 << i + 1 + odd;
  };

  FFTM.prototype.conjugate = function conjugate(rws, iws, N) {
    if (N <= 1) return;

    for (var i = 0; i < N / 2; i++) {
      var t = rws[i];
      rws[i] = rws[N - i - 1];
      rws[N - i - 1] = t;
      t = iws[i];
      iws[i] = -iws[N - i - 1];
      iws[N - i - 1] = -t;
    }
  };

  FFTM.prototype.normalize13b = function normalize13b(ws, N) {
    var carry = 0;

    for (var i = 0; i < N / 2; i++) {
      var w = Math.round(ws[2 * i + 1] / N) * 0x2000 + Math.round(ws[2 * i] / N) + carry;
      ws[i] = w & 0x3ffffff;

      if (w < 0x4000000) {
        carry = 0;
      } else {
        carry = w / 0x4000000 | 0;
      }
    }

    return ws;
  };

  FFTM.prototype.convert13b = function convert13b(ws, len, rws, N) {
    var carry = 0;

    for (var i = 0; i < len; i++) {
      carry = carry + (ws[i] | 0);
      rws[2 * i] = carry & 0x1fff;
      carry = carry >>> 13;
      rws[2 * i + 1] = carry & 0x1fff;
      carry = carry >>> 13;
    } // Pad with zeroes


    for (i = 2 * len; i < N; ++i) {
      rws[i] = 0;
    }

    assert(carry === 0);
    assert((carry & ~0x1fff) === 0);
  };

  FFTM.prototype.stub = function stub(N) {
    var ph = new Array(N);

    for (var i = 0; i < N; i++) {
      ph[i] = 0;
    }

    return ph;
  };

  FFTM.prototype.mulp = function mulp(x, y, out) {
    var N = 2 * this.guessLen13b(x.length, y.length);
    var rbt = this.makeRBT(N);

    var _ = this.stub(N);

    var rws = new Array(N);
    var rwst = new Array(N);
    var iwst = new Array(N);
    var nrws = new Array(N);
    var nrwst = new Array(N);
    var niwst = new Array(N);
    var rmws = out.words;
    rmws.length = N;
    this.convert13b(x.words, x.length, rws, N);
    this.convert13b(y.words, y.length, nrws, N);
    this.transform(rws, _, rwst, iwst, N, rbt);
    this.transform(nrws, _, nrwst, niwst, N, rbt);

    for (var i = 0; i < N; i++) {
      var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];
      iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];
      rwst[i] = rx;
    }

    this.conjugate(rwst, iwst, N);
    this.transform(rwst, iwst, rmws, _, N, rbt);
    this.conjugate(rmws, _, N);
    this.normalize13b(rmws, N);
    out.negative = x.negative ^ y.negative;
    out.length = x.length + y.length;
    return out.strip();
  }; // Multiply `this` by `num`


  BN.prototype.mul = function mul(num) {
    var out = new BN(null);
    out.words = new Array(this.length + num.length);
    return this.mulTo(num, out);
  }; // Multiply employing FFT


  BN.prototype.mulf = function mulf(num) {
    var out = new BN(null);
    out.words = new Array(this.length + num.length);
    return jumboMulTo(this, num, out);
  }; // In-place Multiplication


  BN.prototype.imul = function imul(num) {
    return this.clone().mulTo(num, this);
  };

  BN.prototype.imuln = function imuln(num) {
    assert(typeof num === 'number');
    assert(num < 0x4000000); // Carry

    var carry = 0;

    for (var i = 0; i < this.length; i++) {
      var w = (this.words[i] | 0) * num;
      var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);
      carry >>= 26;
      carry += w / 0x4000000 | 0; // NOTE: lo is 27bit maximum

      carry += lo >>> 26;
      this.words[i] = lo & 0x3ffffff;
    }

    if (carry !== 0) {
      this.words[i] = carry;
      this.length++;
    }

    return this;
  };

  BN.prototype.muln = function muln(num) {
    return this.clone().imuln(num);
  }; // `this` * `this`


  BN.prototype.sqr = function sqr() {
    return this.mul(this);
  }; // `this` * `this` in-place


  BN.prototype.isqr = function isqr() {
    return this.imul(this.clone());
  }; // Math.pow(`this`, `num`)


  BN.prototype.pow = function pow(num) {
    var w = toBitArray(num);
    if (w.length === 0) return new BN(1); // Skip leading zeroes

    var res = this;

    for (var i = 0; i < w.length; i++, res = res.sqr()) {
      if (w[i] !== 0) break;
    }

    if (++i < w.length) {
      for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {
        if (w[i] === 0) continue;
        res = res.mul(q);
      }
    }

    return res;
  }; // Shift-left in-place


  BN.prototype.iushln = function iushln(bits) {
    assert(typeof bits === 'number' && bits >= 0);
    var r = bits % 26;
    var s = (bits - r) / 26;
    var carryMask = 0x3ffffff >>> 26 - r << 26 - r;
    var i;

    if (r !== 0) {
      var carry = 0;

      for (i = 0; i < this.length; i++) {
        var newCarry = this.words[i] & carryMask;
        var c = (this.words[i] | 0) - newCarry << r;
        this.words[i] = c | carry;
        carry = newCarry >>> 26 - r;
      }

      if (carry) {
        this.words[i] = carry;
        this.length++;
      }
    }

    if (s !== 0) {
      for (i = this.length - 1; i >= 0; i--) {
        this.words[i + s] = this.words[i];
      }

      for (i = 0; i < s; i++) {
        this.words[i] = 0;
      }

      this.length += s;
    }

    return this.strip();
  };

  BN.prototype.ishln = function ishln(bits) {
    // TODO(indutny): implement me
    assert(this.negative === 0);
    return this.iushln(bits);
  }; // Shift-right in-place
  // NOTE: `hint` is a lowest bit before trailing zeroes
  // NOTE: if `extended` is present - it will be filled with destroyed bits


  BN.prototype.iushrn = function iushrn(bits, hint, extended) {
    assert(typeof bits === 'number' && bits >= 0);
    var h;

    if (hint) {
      h = (hint - hint % 26) / 26;
    } else {
      h = 0;
    }

    var r = bits % 26;
    var s = Math.min((bits - r) / 26, this.length);
    var mask = 0x3ffffff ^ 0x3ffffff >>> r << r;
    var maskedWords = extended;
    h -= s;
    h = Math.max(0, h); // Extended mode, copy masked part

    if (maskedWords) {
      for (var i = 0; i < s; i++) {
        maskedWords.words[i] = this.words[i];
      }

      maskedWords.length = s;
    }

    if (s === 0) {// No-op, we should not move anything at all
    } else if (this.length > s) {
      this.length -= s;

      for (i = 0; i < this.length; i++) {
        this.words[i] = this.words[i + s];
      }
    } else {
      this.words[0] = 0;
      this.length = 1;
    }

    var carry = 0;

    for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {
      var word = this.words[i] | 0;
      this.words[i] = carry << 26 - r | word >>> r;
      carry = word & mask;
    } // Push carried bits as a mask


    if (maskedWords && carry !== 0) {
      maskedWords.words[maskedWords.length++] = carry;
    }

    if (this.length === 0) {
      this.words[0] = 0;
      this.length = 1;
    }

    return this.strip();
  };

  BN.prototype.ishrn = function ishrn(bits, hint, extended) {
    // TODO(indutny): implement me
    assert(this.negative === 0);
    return this.iushrn(bits, hint, extended);
  }; // Shift-left


  BN.prototype.shln = function shln(bits) {
    return this.clone().ishln(bits);
  };

  BN.prototype.ushln = function ushln(bits) {
    return this.clone().iushln(bits);
  }; // Shift-right


  BN.prototype.shrn = function shrn(bits) {
    return this.clone().ishrn(bits);
  };

  BN.prototype.ushrn = function ushrn(bits) {
    return this.clone().iushrn(bits);
  }; // Test if n bit is set


  BN.prototype.testn = function testn(bit) {
    assert(typeof bit === 'number' && bit >= 0);
    var r = bit % 26;
    var s = (bit - r) / 26;
    var q = 1 << r; // Fast case: bit is much higher than all existing words

    if (this.length <= s) return false; // Check bit and return

    var w = this.words[s];
    return !!(w & q);
  }; // Return only lowers bits of number (in-place)


  BN.prototype.imaskn = function imaskn(bits) {
    assert(typeof bits === 'number' && bits >= 0);
    var r = bits % 26;
    var s = (bits - r) / 26;
    assert(this.negative === 0, 'imaskn works only with positive numbers');

    if (this.length <= s) {
      return this;
    }

    if (r !== 0) {
      s++;
    }

    this.length = Math.min(s, this.length);

    if (r !== 0) {
      var mask = 0x3ffffff ^ 0x3ffffff >>> r << r;
      this.words[this.length - 1] &= mask;
    }

    return this.strip();
  }; // Return only lowers bits of number


  BN.prototype.maskn = function maskn(bits) {
    return this.clone().imaskn(bits);
  }; // Add plain number `num` to `this`


  BN.prototype.iaddn = function iaddn(num) {
    assert(typeof num === 'number');
    assert(num < 0x4000000);
    if (num < 0) return this.isubn(-num); // Possible sign change

    if (this.negative !== 0) {
      if (this.length === 1 && (this.words[0] | 0) < num) {
        this.words[0] = num - (this.words[0] | 0);
        this.negative = 0;
        return this;
      }

      this.negative = 0;
      this.isubn(num);
      this.negative = 1;
      return this;
    } // Add without checks


    return this._iaddn(num);
  };

  BN.prototype._iaddn = function _iaddn(num) {
    this.words[0] += num; // Carry

    for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {
      this.words[i] -= 0x4000000;

      if (i === this.length - 1) {
        this.words[i + 1] = 1;
      } else {
        this.words[i + 1]++;
      }
    }

    this.length = Math.max(this.length, i + 1);
    return this;
  }; // Subtract plain number `num` from `this`


  BN.prototype.isubn = function isubn(num) {
    assert(typeof num === 'number');
    assert(num < 0x4000000);
    if (num < 0) return this.iaddn(-num);

    if (this.negative !== 0) {
      this.negative = 0;
      this.iaddn(num);
      this.negative = 1;
      return this;
    }

    this.words[0] -= num;

    if (this.length === 1 && this.words[0] < 0) {
      this.words[0] = -this.words[0];
      this.negative = 1;
    } else {
      // Carry
      for (var i = 0; i < this.length && this.words[i] < 0; i++) {
        this.words[i] += 0x4000000;
        this.words[i + 1] -= 1;
      }
    }

    return this.strip();
  };

  BN.prototype.addn = function addn(num) {
    return this.clone().iaddn(num);
  };

  BN.prototype.subn = function subn(num) {
    return this.clone().isubn(num);
  };

  BN.prototype.iabs = function iabs() {
    this.negative = 0;
    return this;
  };

  BN.prototype.abs = function abs() {
    return this.clone().iabs();
  };

  BN.prototype._ishlnsubmul = function _ishlnsubmul(num, mul, shift) {
    var len = num.length + shift;
    var i;

    this._expand(len);

    var w;
    var carry = 0;

    for (i = 0; i < num.length; i++) {
      w = (this.words[i + shift] | 0) + carry;
      var right = (num.words[i] | 0) * mul;
      w -= right & 0x3ffffff;
      carry = (w >> 26) - (right / 0x4000000 | 0);
      this.words[i + shift] = w & 0x3ffffff;
    }

    for (; i < this.length - shift; i++) {
      w = (this.words[i + shift] | 0) + carry;
      carry = w >> 26;
      this.words[i + shift] = w & 0x3ffffff;
    }

    if (carry === 0) return this.strip(); // Subtraction overflow

    assert(carry === -1);
    carry = 0;

    for (i = 0; i < this.length; i++) {
      w = -(this.words[i] | 0) + carry;
      carry = w >> 26;
      this.words[i] = w & 0x3ffffff;
    }

    this.negative = 1;
    return this.strip();
  };

  BN.prototype._wordDiv = function _wordDiv(num, mode) {
    var shift = this.length - num.length;
    var a = this.clone();
    var b = num; // Normalize

    var bhi = b.words[b.length - 1] | 0;

    var bhiBits = this._countBits(bhi);

    shift = 26 - bhiBits;

    if (shift !== 0) {
      b = b.ushln(shift);
      a.iushln(shift);
      bhi = b.words[b.length - 1] | 0;
    } // Initialize quotient


    var m = a.length - b.length;
    var q;

    if (mode !== 'mod') {
      q = new BN(null);
      q.length = m + 1;
      q.words = new Array(q.length);

      for (var i = 0; i < q.length; i++) {
        q.words[i] = 0;
      }
    }

    var diff = a.clone()._ishlnsubmul(b, 1, m);

    if (diff.negative === 0) {
      a = diff;

      if (q) {
        q.words[m] = 1;
      }
    }

    for (var j = m - 1; j >= 0; j--) {
      var qj = (a.words[b.length + j] | 0) * 0x4000000 + (a.words[b.length + j - 1] | 0); // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max
      // (0x7ffffff)

      qj = Math.min(qj / bhi | 0, 0x3ffffff);

      a._ishlnsubmul(b, qj, j);

      while (a.negative !== 0) {
        qj--;
        a.negative = 0;

        a._ishlnsubmul(b, 1, j);

        if (!a.isZero()) {
          a.negative ^= 1;
        }
      }

      if (q) {
        q.words[j] = qj;
      }
    }

    if (q) {
      q.strip();
    }

    a.strip(); // Denormalize

    if (mode !== 'div' && shift !== 0) {
      a.iushrn(shift);
    }

    return {
      div: q || null,
      mod: a
    };
  }; // NOTE: 1) `mode` can be set to `mod` to request mod only,
  //       to `div` to request div only, or be absent to
  //       request both div & mod
  //       2) `positive` is true if unsigned mod is requested


  BN.prototype.divmod = function divmod(num, mode, positive) {
    assert(!num.isZero());

    if (this.isZero()) {
      return {
        div: new BN(0),
        mod: new BN(0)
      };
    }

    var div, mod, res;

    if (this.negative !== 0 && num.negative === 0) {
      res = this.neg().divmod(num, mode);

      if (mode !== 'mod') {
        div = res.div.neg();
      }

      if (mode !== 'div') {
        mod = res.mod.neg();

        if (positive && mod.negative !== 0) {
          mod.iadd(num);
        }
      }

      return {
        div: div,
        mod: mod
      };
    }

    if (this.negative === 0 && num.negative !== 0) {
      res = this.divmod(num.neg(), mode);

      if (mode !== 'mod') {
        div = res.div.neg();
      }

      return {
        div: div,
        mod: res.mod
      };
    }

    if ((this.negative & num.negative) !== 0) {
      res = this.neg().divmod(num.neg(), mode);

      if (mode !== 'div') {
        mod = res.mod.neg();

        if (positive && mod.negative !== 0) {
          mod.isub(num);
        }
      }

      return {
        div: res.div,
        mod: mod
      };
    } // Both numbers are positive at this point
    // Strip both numbers to approximate shift value


    if (num.length > this.length || this.cmp(num) < 0) {
      return {
        div: new BN(0),
        mod: this
      };
    } // Very short reduction


    if (num.length === 1) {
      if (mode === 'div') {
        return {
          div: this.divn(num.words[0]),
          mod: null
        };
      }

      if (mode === 'mod') {
        return {
          div: null,
          mod: new BN(this.modn(num.words[0]))
        };
      }

      return {
        div: this.divn(num.words[0]),
        mod: new BN(this.modn(num.words[0]))
      };
    }

    return this._wordDiv(num, mode);
  }; // Find `this` / `num`


  BN.prototype.div = function div(num) {
    return this.divmod(num, 'div', false).div;
  }; // Find `this` % `num`


  BN.prototype.mod = function mod(num) {
    return this.divmod(num, 'mod', false).mod;
  };

  BN.prototype.umod = function umod(num) {
    return this.divmod(num, 'mod', true).mod;
  }; // Find Round(`this` / `num`)


  BN.prototype.divRound = function divRound(num) {
    var dm = this.divmod(num); // Fast case - exact division

    if (dm.mod.isZero()) return dm.div;
    var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;
    var half = num.ushrn(1);
    var r2 = num.andln(1);
    var cmp = mod.cmp(half); // Round down

    if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div; // Round up

    return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);
  };

  BN.prototype.modn = function modn(num) {
    assert(num <= 0x3ffffff);
    var p = (1 << 26) % num;
    var acc = 0;

    for (var i = this.length - 1; i >= 0; i--) {
      acc = (p * acc + (this.words[i] | 0)) % num;
    }

    return acc;
  }; // In-place division by number


  BN.prototype.idivn = function idivn(num) {
    assert(num <= 0x3ffffff);
    var carry = 0;

    for (var i = this.length - 1; i >= 0; i--) {
      var w = (this.words[i] | 0) + carry * 0x4000000;
      this.words[i] = w / num | 0;
      carry = w % num;
    }

    return this.strip();
  };

  BN.prototype.divn = function divn(num) {
    return this.clone().idivn(num);
  };

  BN.prototype.egcd = function egcd(p) {
    assert(p.negative === 0);
    assert(!p.isZero());
    var x = this;
    var y = p.clone();

    if (x.negative !== 0) {
      x = x.umod(p);
    } else {
      x = x.clone();
    } // A * x + B * y = x


    var A = new BN(1);
    var B = new BN(0); // C * x + D * y = y

    var C = new BN(0);
    var D = new BN(1);
    var g = 0;

    while (x.isEven() && y.isEven()) {
      x.iushrn(1);
      y.iushrn(1);
      ++g;
    }

    var yp = y.clone();
    var xp = x.clone();

    while (!x.isZero()) {
      for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);

      if (i > 0) {
        x.iushrn(i);

        while (i-- > 0) {
          if (A.isOdd() || B.isOdd()) {
            A.iadd(yp);
            B.isub(xp);
          }

          A.iushrn(1);
          B.iushrn(1);
        }
      }

      for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);

      if (j > 0) {
        y.iushrn(j);

        while (j-- > 0) {
          if (C.isOdd() || D.isOdd()) {
            C.iadd(yp);
            D.isub(xp);
          }

          C.iushrn(1);
          D.iushrn(1);
        }
      }

      if (x.cmp(y) >= 0) {
        x.isub(y);
        A.isub(C);
        B.isub(D);
      } else {
        y.isub(x);
        C.isub(A);
        D.isub(B);
      }
    }

    return {
      a: C,
      b: D,
      gcd: y.iushln(g)
    };
  }; // This is reduced incarnation of the binary EEA
  // above, designated to invert members of the
  // _prime_ fields F(p) at a maximal speed


  BN.prototype._invmp = function _invmp(p) {
    assert(p.negative === 0);
    assert(!p.isZero());
    var a = this;
    var b = p.clone();

    if (a.negative !== 0) {
      a = a.umod(p);
    } else {
      a = a.clone();
    }

    var x1 = new BN(1);
    var x2 = new BN(0);
    var delta = b.clone();

    while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {
      for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);

      if (i > 0) {
        a.iushrn(i);

        while (i-- > 0) {
          if (x1.isOdd()) {
            x1.iadd(delta);
          }

          x1.iushrn(1);
        }
      }

      for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);

      if (j > 0) {
        b.iushrn(j);

        while (j-- > 0) {
          if (x2.isOdd()) {
            x2.iadd(delta);
          }

          x2.iushrn(1);
        }
      }

      if (a.cmp(b) >= 0) {
        a.isub(b);
        x1.isub(x2);
      } else {
        b.isub(a);
        x2.isub(x1);
      }
    }

    var res;

    if (a.cmpn(1) === 0) {
      res = x1;
    } else {
      res = x2;
    }

    if (res.cmpn(0) < 0) {
      res.iadd(p);
    }

    return res;
  };

  BN.prototype.gcd = function gcd(num) {
    if (this.isZero()) return num.abs();
    if (num.isZero()) return this.abs();
    var a = this.clone();
    var b = num.clone();
    a.negative = 0;
    b.negative = 0; // Remove common factor of two

    for (var shift = 0; a.isEven() && b.isEven(); shift++) {
      a.iushrn(1);
      b.iushrn(1);
    }

    do {
      while (a.isEven()) {
        a.iushrn(1);
      }

      while (b.isEven()) {
        b.iushrn(1);
      }

      var r = a.cmp(b);

      if (r < 0) {
        // Swap `a` and `b` to make `a` always bigger than `b`
        var t = a;
        a = b;
        b = t;
      } else if (r === 0 || b.cmpn(1) === 0) {
        break;
      }

      a.isub(b);
    } while (true);

    return b.iushln(shift);
  }; // Invert number in the field F(num)


  BN.prototype.invm = function invm(num) {
    return this.egcd(num).a.umod(num);
  };

  BN.prototype.isEven = function isEven() {
    return (this.words[0] & 1) === 0;
  };

  BN.prototype.isOdd = function isOdd() {
    return (this.words[0] & 1) === 1;
  }; // And first word and num


  BN.prototype.andln = function andln(num) {
    return this.words[0] & num;
  }; // Increment at the bit position in-line


  BN.prototype.bincn = function bincn(bit) {
    assert(typeof bit === 'number');
    var r = bit % 26;
    var s = (bit - r) / 26;
    var q = 1 << r; // Fast case: bit is much higher than all existing words

    if (this.length <= s) {
      this._expand(s + 1);

      this.words[s] |= q;
      return this;
    } // Add bit and propagate, if needed


    var carry = q;

    for (var i = s; carry !== 0 && i < this.length; i++) {
      var w = this.words[i] | 0;
      w += carry;
      carry = w >>> 26;
      w &= 0x3ffffff;
      this.words[i] = w;
    }

    if (carry !== 0) {
      this.words[i] = carry;
      this.length++;
    }

    return this;
  };

  BN.prototype.isZero = function isZero() {
    return this.length === 1 && this.words[0] === 0;
  };

  BN.prototype.cmpn = function cmpn(num) {
    var negative = num < 0;
    if (this.negative !== 0 && !negative) return -1;
    if (this.negative === 0 && negative) return 1;
    this.strip();
    var res;

    if (this.length > 1) {
      res = 1;
    } else {
      if (negative) {
        num = -num;
      }

      assert(num <= 0x3ffffff, 'Number is too big');
      var w = this.words[0] | 0;
      res = w === num ? 0 : w < num ? -1 : 1;
    }

    if (this.negative !== 0) return -res | 0;
    return res;
  }; // Compare two numbers and return:
  // 1 - if `this` > `num`
  // 0 - if `this` == `num`
  // -1 - if `this` < `num`


  BN.prototype.cmp = function cmp(num) {
    if (this.negative !== 0 && num.negative === 0) return -1;
    if (this.negative === 0 && num.negative !== 0) return 1;
    var res = this.ucmp(num);
    if (this.negative !== 0) return -res | 0;
    return res;
  }; // Unsigned comparison


  BN.prototype.ucmp = function ucmp(num) {
    // At this point both numbers have the same sign
    if (this.length > num.length) return 1;
    if (this.length < num.length) return -1;
    var res = 0;

    for (var i = this.length - 1; i >= 0; i--) {
      var a = this.words[i] | 0;
      var b = num.words[i] | 0;
      if (a === b) continue;

      if (a < b) {
        res = -1;
      } else if (a > b) {
        res = 1;
      }

      break;
    }

    return res;
  };

  BN.prototype.gtn = function gtn(num) {
    return this.cmpn(num) === 1;
  };

  BN.prototype.gt = function gt(num) {
    return this.cmp(num) === 1;
  };

  BN.prototype.gten = function gten(num) {
    return this.cmpn(num) >= 0;
  };

  BN.prototype.gte = function gte(num) {
    return this.cmp(num) >= 0;
  };

  BN.prototype.ltn = function ltn(num) {
    return this.cmpn(num) === -1;
  };

  BN.prototype.lt = function lt(num) {
    return this.cmp(num) === -1;
  };

  BN.prototype.lten = function lten(num) {
    return this.cmpn(num) <= 0;
  };

  BN.prototype.lte = function lte(num) {
    return this.cmp(num) <= 0;
  };

  BN.prototype.eqn = function eqn(num) {
    return this.cmpn(num) === 0;
  };

  BN.prototype.eq = function eq(num) {
    return this.cmp(num) === 0;
  }; //
  // A reduce context, could be using montgomery or something better, depending
  // on the `m` itself.
  //


  BN.red = function red(num) {
    return new Red(num);
  };

  BN.prototype.toRed = function toRed(ctx) {
    assert(!this.red, 'Already a number in reduction context');
    assert(this.negative === 0, 'red works only with positives');
    return ctx.convertTo(this)._forceRed(ctx);
  };

  BN.prototype.fromRed = function fromRed() {
    assert(this.red, 'fromRed works only with numbers in reduction context');
    return this.red.convertFrom(this);
  };

  BN.prototype._forceRed = function _forceRed(ctx) {
    this.red = ctx;
    return this;
  };

  BN.prototype.forceRed = function forceRed(ctx) {
    assert(!this.red, 'Already a number in reduction context');
    return this._forceRed(ctx);
  };

  BN.prototype.redAdd = function redAdd(num) {
    assert(this.red, 'redAdd works only with red numbers');
    return this.red.add(this, num);
  };

  BN.prototype.redIAdd = function redIAdd(num) {
    assert(this.red, 'redIAdd works only with red numbers');
    return this.red.iadd(this, num);
  };

  BN.prototype.redSub = function redSub(num) {
    assert(this.red, 'redSub works only with red numbers');
    return this.red.sub(this, num);
  };

  BN.prototype.redISub = function redISub(num) {
    assert(this.red, 'redISub works only with red numbers');
    return this.red.isub(this, num);
  };

  BN.prototype.redShl = function redShl(num) {
    assert(this.red, 'redShl works only with red numbers');
    return this.red.shl(this, num);
  };

  BN.prototype.redMul = function redMul(num) {
    assert(this.red, 'redMul works only with red numbers');

    this.red._verify2(this, num);

    return this.red.mul(this, num);
  };

  BN.prototype.redIMul = function redIMul(num) {
    assert(this.red, 'redMul works only with red numbers');

    this.red._verify2(this, num);

    return this.red.imul(this, num);
  };

  BN.prototype.redSqr = function redSqr() {
    assert(this.red, 'redSqr works only with red numbers');

    this.red._verify1(this);

    return this.red.sqr(this);
  };

  BN.prototype.redISqr = function redISqr() {
    assert(this.red, 'redISqr works only with red numbers');

    this.red._verify1(this);

    return this.red.isqr(this);
  }; // Square root over p


  BN.prototype.redSqrt = function redSqrt() {
    assert(this.red, 'redSqrt works only with red numbers');

    this.red._verify1(this);

    return this.red.sqrt(this);
  };

  BN.prototype.redInvm = function redInvm() {
    assert(this.red, 'redInvm works only with red numbers');

    this.red._verify1(this);

    return this.red.invm(this);
  }; // Return negative clone of `this` % `red modulo`


  BN.prototype.redNeg = function redNeg() {
    assert(this.red, 'redNeg works only with red numbers');

    this.red._verify1(this);

    return this.red.neg(this);
  };

  BN.prototype.redPow = function redPow(num) {
    assert(this.red && !num.red, 'redPow(normalNum)');

    this.red._verify1(this);

    return this.red.pow(this, num);
  }; // Prime numbers with efficient reduction


  var primes = {
    k256: null,
    p224: null,
    p192: null,
    p25519: null
  }; // Pseudo-Mersenne prime

  function MPrime(name, p) {
    // P = 2 ^ N - K
    this.name = name;
    this.p = new BN(p, 16);
    this.n = this.p.bitLength();
    this.k = new BN(1).iushln(this.n).isub(this.p);
    this.tmp = this._tmp();
  }

  MPrime.prototype._tmp = function _tmp() {
    var tmp = new BN(null);
    tmp.words = new Array(Math.ceil(this.n / 13));
    return tmp;
  };

  MPrime.prototype.ireduce = function ireduce(num) {
    // Assumes that `num` is less than `P^2`
    // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)
    var r = num;
    var rlen;

    do {
      this.split(r, this.tmp);
      r = this.imulK(r);
      r = r.iadd(this.tmp);
      rlen = r.bitLength();
    } while (rlen > this.n);

    var cmp = rlen < this.n ? -1 : r.ucmp(this.p);

    if (cmp === 0) {
      r.words[0] = 0;
      r.length = 1;
    } else if (cmp > 0) {
      r.isub(this.p);
    } else {
      if (r.strip !== undefined) {
        // r is BN v4 instance
        r.strip();
      } else {
        // r is BN v5 instance
        r._strip();
      }
    }

    return r;
  };

  MPrime.prototype.split = function split(input, out) {
    input.iushrn(this.n, 0, out);
  };

  MPrime.prototype.imulK = function imulK(num) {
    return num.imul(this.k);
  };

  function K256() {
    MPrime.call(this, 'k256', 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');
  }

  inherits(K256, MPrime);

  K256.prototype.split = function split(input, output) {
    // 256 = 9 * 26 + 22
    var mask = 0x3fffff;
    var outLen = Math.min(input.length, 9);

    for (var i = 0; i < outLen; i++) {
      output.words[i] = input.words[i];
    }

    output.length = outLen;

    if (input.length <= 9) {
      input.words[0] = 0;
      input.length = 1;
      return;
    } // Shift by 9 limbs


    var prev = input.words[9];
    output.words[output.length++] = prev & mask;

    for (i = 10; i < input.length; i++) {
      var next = input.words[i] | 0;
      input.words[i - 10] = (next & mask) << 4 | prev >>> 22;
      prev = next;
    }

    prev >>>= 22;
    input.words[i - 10] = prev;

    if (prev === 0 && input.length > 10) {
      input.length -= 10;
    } else {
      input.length -= 9;
    }
  };

  K256.prototype.imulK = function imulK(num) {
    // K = 0x1000003d1 = [ 0x40, 0x3d1 ]
    num.words[num.length] = 0;
    num.words[num.length + 1] = 0;
    num.length += 2; // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390

    var lo = 0;

    for (var i = 0; i < num.length; i++) {
      var w = num.words[i] | 0;
      lo += w * 0x3d1;
      num.words[i] = lo & 0x3ffffff;
      lo = w * 0x40 + (lo / 0x4000000 | 0);
    } // Fast length reduction


    if (num.words[num.length - 1] === 0) {
      num.length--;

      if (num.words[num.length - 1] === 0) {
        num.length--;
      }
    }

    return num;
  };

  function P224() {
    MPrime.call(this, 'p224', 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');
  }

  inherits(P224, MPrime);

  function P192() {
    MPrime.call(this, 'p192', 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');
  }

  inherits(P192, MPrime);

  function P25519() {
    // 2 ^ 255 - 19
    MPrime.call(this, '25519', '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');
  }

  inherits(P25519, MPrime);

  P25519.prototype.imulK = function imulK(num) {
    // K = 0x13
    var carry = 0;

    for (var i = 0; i < num.length; i++) {
      var hi = (num.words[i] | 0) * 0x13 + carry;
      var lo = hi & 0x3ffffff;
      hi >>>= 26;
      num.words[i] = lo;
      carry = hi;
    }

    if (carry !== 0) {
      num.words[num.length++] = carry;
    }

    return num;
  }; // Exported mostly for testing purposes, use plain name instead


  BN._prime = function prime(name) {
    // Cached version of prime
    if (primes[name]) return primes[name];
    var prime;

    if (name === 'k256') {
      prime = new K256();
    } else if (name === 'p224') {
      prime = new P224();
    } else if (name === 'p192') {
      prime = new P192();
    } else if (name === 'p25519') {
      prime = new P25519();
    } else {
      throw new Error('Unknown prime ' + name);
    }

    primes[name] = prime;
    return prime;
  }; //
  // Base reduction engine
  //


  function Red(m) {
    if (typeof m === 'string') {
      var prime = BN._prime(m);

      this.m = prime.p;
      this.prime = prime;
    } else {
      assert(m.gtn(1), 'modulus must be greater than 1');
      this.m = m;
      this.prime = null;
    }
  }

  Red.prototype._verify1 = function _verify1(a) {
    assert(a.negative === 0, 'red works only with positives');
    assert(a.red, 'red works only with red numbers');
  };

  Red.prototype._verify2 = function _verify2(a, b) {
    assert((a.negative | b.negative) === 0, 'red works only with positives');
    assert(a.red && a.red === b.red, 'red works only with red numbers');
  };

  Red.prototype.imod = function imod(a) {
    if (this.prime) return this.prime.ireduce(a)._forceRed(this);
    return a.umod(this.m)._forceRed(this);
  };

  Red.prototype.neg = function neg(a) {
    if (a.isZero()) {
      return a.clone();
    }

    return this.m.sub(a)._forceRed(this);
  };

  Red.prototype.add = function add(a, b) {
    this._verify2(a, b);

    var res = a.add(b);

    if (res.cmp(this.m) >= 0) {
      res.isub(this.m);
    }

    return res._forceRed(this);
  };

  Red.prototype.iadd = function iadd(a, b) {
    this._verify2(a, b);

    var res = a.iadd(b);

    if (res.cmp(this.m) >= 0) {
      res.isub(this.m);
    }

    return res;
  };

  Red.prototype.sub = function sub(a, b) {
    this._verify2(a, b);

    var res = a.sub(b);

    if (res.cmpn(0) < 0) {
      res.iadd(this.m);
    }

    return res._forceRed(this);
  };

  Red.prototype.isub = function isub(a, b) {
    this._verify2(a, b);

    var res = a.isub(b);

    if (res.cmpn(0) < 0) {
      res.iadd(this.m);
    }

    return res;
  };

  Red.prototype.shl = function shl(a, num) {
    this._verify1(a);

    return this.imod(a.ushln(num));
  };

  Red.prototype.imul = function imul(a, b) {
    this._verify2(a, b);

    return this.imod(a.imul(b));
  };

  Red.prototype.mul = function mul(a, b) {
    this._verify2(a, b);

    return this.imod(a.mul(b));
  };

  Red.prototype.isqr = function isqr(a) {
    return this.imul(a, a.clone());
  };

  Red.prototype.sqr = function sqr(a) {
    return this.mul(a, a);
  };

  Red.prototype.sqrt = function sqrt(a) {
    if (a.isZero()) return a.clone();
    var mod3 = this.m.andln(3);
    assert(mod3 % 2 === 1); // Fast case

    if (mod3 === 3) {
      var pow = this.m.add(new BN(1)).iushrn(2);
      return this.pow(a, pow);
    } // Tonelli-Shanks algorithm (Totally unoptimized and slow)
    //
    // Find Q and S, that Q * 2 ^ S = (P - 1)


    var q = this.m.subn(1);
    var s = 0;

    while (!q.isZero() && q.andln(1) === 0) {
      s++;
      q.iushrn(1);
    }

    assert(!q.isZero());
    var one = new BN(1).toRed(this);
    var nOne = one.redNeg(); // Find quadratic non-residue
    // NOTE: Max is such because of generalized Riemann hypothesis.

    var lpow = this.m.subn(1).iushrn(1);
    var z = this.m.bitLength();
    z = new BN(2 * z * z).toRed(this);

    while (this.pow(z, lpow).cmp(nOne) !== 0) {
      z.redIAdd(nOne);
    }

    var c = this.pow(z, q);
    var r = this.pow(a, q.addn(1).iushrn(1));
    var t = this.pow(a, q);
    var m = s;

    while (t.cmp(one) !== 0) {
      var tmp = t;

      for (var i = 0; tmp.cmp(one) !== 0; i++) {
        tmp = tmp.redSqr();
      }

      assert(i < m);
      var b = this.pow(c, new BN(1).iushln(m - i - 1));
      r = r.redMul(b);
      c = b.redSqr();
      t = t.redMul(c);
      m = i;
    }

    return r;
  };

  Red.prototype.invm = function invm(a) {
    var inv = a._invmp(this.m);

    if (inv.negative !== 0) {
      inv.negative = 0;
      return this.imod(inv).redNeg();
    } else {
      return this.imod(inv);
    }
  };

  Red.prototype.pow = function pow(a, num) {
    if (num.isZero()) return new BN(1).toRed(this);
    if (num.cmpn(1) === 0) return a.clone();
    var windowSize = 4;
    var wnd = new Array(1 << windowSize);
    wnd[0] = new BN(1).toRed(this);
    wnd[1] = a;

    for (var i = 2; i < wnd.length; i++) {
      wnd[i] = this.mul(wnd[i - 1], a);
    }

    var res = wnd[0];
    var current = 0;
    var currentLen = 0;
    var start = num.bitLength() % 26;

    if (start === 0) {
      start = 26;
    }

    for (i = num.length - 1; i >= 0; i--) {
      var word = num.words[i];

      for (var j = start - 1; j >= 0; j--) {
        var bit = word >> j & 1;

        if (res !== wnd[0]) {
          res = this.sqr(res);
        }

        if (bit === 0 && current === 0) {
          currentLen = 0;
          continue;
        }

        current <<= 1;
        current |= bit;
        currentLen++;
        if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;
        res = this.mul(res, wnd[current]);
        currentLen = 0;
        current = 0;
      }

      start = 26;
    }

    return res;
  };

  Red.prototype.convertTo = function convertTo(num) {
    var r = num.umod(this.m);
    return r === num ? r.clone() : r;
  };

  Red.prototype.convertFrom = function convertFrom(num) {
    var res = num.clone();
    res.red = null;
    return res;
  }; //
  // Montgomery method engine
  //


  BN.mont = function mont(num) {
    return new Mont(num);
  };

  function Mont(m) {
    Red.call(this, m);
    this.shift = this.m.bitLength();

    if (this.shift % 26 !== 0) {
      this.shift += 26 - this.shift % 26;
    }

    this.r = new BN(1).iushln(this.shift);
    this.r2 = this.imod(this.r.sqr());
    this.rinv = this.r._invmp(this.m);
    this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);
    this.minv = this.minv.umod(this.r);
    this.minv = this.r.sub(this.minv);
  }

  inherits(Mont, Red);

  Mont.prototype.convertTo = function convertTo(num) {
    return this.imod(num.ushln(this.shift));
  };

  Mont.prototype.convertFrom = function convertFrom(num) {
    var r = this.imod(num.mul(this.rinv));
    r.red = null;
    return r;
  };

  Mont.prototype.imul = function imul(a, b) {
    if (a.isZero() || b.isZero()) {
      a.words[0] = 0;
      a.length = 1;
      return a;
    }

    var t = a.imul(b);
    var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);
    var u = t.isub(c).iushrn(this.shift);
    var res = u;

    if (u.cmp(this.m) >= 0) {
      res = u.isub(this.m);
    } else if (u.cmpn(0) < 0) {
      res = u.iadd(this.m);
    }

    return res._forceRed(this);
  };

  Mont.prototype.mul = function mul(a, b) {
    if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);
    var t = a.mul(b);
    var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);
    var u = t.isub(c).iushrn(this.shift);
    var res = u;

    if (u.cmp(this.m) >= 0) {
      res = u.isub(this.m);
    } else if (u.cmpn(0) < 0) {
      res = u.iadd(this.m);
    }

    return res._forceRed(this);
  };

  Mont.prototype.invm = function invm(a) {
    // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R
    var res = this.imod(a._invmp(this.m).mul(this.r2));
    return res._forceRed(this);
  };
})( false || module, this);
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("YuTi")(module)))

/***/ }),

/***/ "OZPJ":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _autobindDecorator = _interopRequireDefault(__webpack_require__("gKdT"));

var _events = __webpack_require__("mdZ3");

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _convertUnsafeMethod = _interopRequireDefault(__webpack_require__("8nyd"));

var _createId = _interopRequireDefault(__webpack_require__("b7KY"));

var _filterDOMProps = _interopRequireDefault(__webpack_require__("Cv/Q"));

var _FocusManager = _interopRequireDefault(__webpack_require__("3C4i"));

var _focusRing = _interopRequireDefault(__webpack_require__("PBY+"));

var _propTypes = _interopRequireDefault(__webpack_require__("17x9"));

var _react = _interopRequireWildcard(__webpack_require__("q1tI"));

__webpack_require__("Hwsl");

const _excluded = ["className", "children", "hidden", "variant", "id", "manageTabIndex", "typeToSelect", "ariaLevel", "autoFocus", "isNested", "aria-label", "aria-labelledby"];

var _class, _class2, _temp;

function _getRequireWildcardCache(nodeInterop) {
  if (typeof WeakMap !== "function") return null;
  var cacheBabelInterop = new WeakMap();
  var cacheNodeInterop = new WeakMap();
  return (_getRequireWildcardCache = function (nodeInterop) {
    return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
  })(nodeInterop);
}

function _interopRequireWildcard(obj, nodeInterop) {
  if (!nodeInterop && obj && obj.__esModule) {
    return obj;
  }

  if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
    return {
      default: obj
    };
  }

  var cache = _getRequireWildcardCache(nodeInterop);

  if (cache && cache.has(obj)) {
    return cache.get(obj);
  }

  var newObj = {};
  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;

  for (var key in obj) {
    if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
      var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;

      if (desc && (desc.get || desc.set)) {
        Object.defineProperty(newObj, key, desc);
      } else {
        newObj[key] = obj[key];
      }
    }
  }

  newObj.default = obj;

  if (cache) {
    cache.set(obj, newObj);
  }

  return newObj;
}

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

if (false) {} else if (false) {} else {
  __webpack_require__("tInt");
}

if (true) __webpack_require__("xP+/");
if (true) __webpack_require__("axcE");
if (true) __webpack_require__("anfm");
if (true) __webpack_require__("ltO7");
const SIDENAV_ITEM_SELECTOR = '.spectrum-SideNav-itemLink:not(.is-hidden):not(.is-disabled)';
const SELECTED_SIDENAV_ITEM_SELECTOR = SIDENAV_ITEM_SELECTOR + '.is-selected';

const isNestedSelected = (props, value) => props.children && props.children.filter(c => {
  const {
    children
  } = c.props;

  if (children && typeof children !== 'string') {
    return isNestedSelected(c.props, value);
  }

  return c.props.value === value;
}).length !== 0;

let SideNav = (0, _convertUnsafeMethod.default)(_class = (0, _autobindDecorator.default)(_class = (0, _focusRing.default)(_class = (_temp = _class2 = class SideNav extends _react.Component {
  constructor(props) {
    super(props);
    this.state = {
      value: this.props.defaultValue || this.props.value
    };
    this.id = (0, _createId.default)();
  }

  UNSAFE_componentWillReceiveProps(nextProps) {
    const {
      value
    } = nextProps;

    if (value !== this.props.value) {
      this.setState({
        value
      });
    }
  }

  isSelected(child) {
    return child.props.value === this.state.value;
  }

  isDefaultSelected(child) {
    return child.props.value === this.props.defaultValue;
  }

  onSelect(value, e) {
    if (this.props.value === undefined) {
      this.setState({
        value
      });
    }

    this.props.onSelect(value, e);
  }

  isDefaultExpanded(child) {
    if (child.props.defaultExpanded !== undefined) {
      return child.props.defaultExpanded;
    } // Expand nested sidenav if any item is selected


    return Array.isArray(child.props.children) && isNestedSelected(child.props, this.state.value);
  }

  render() {
    const _this$props = this.props,
          {
      className,
      children,
      hidden,
      variant,
      id = this.id,
      manageTabIndex,
      typeToSelect,
      ariaLevel = 1,
      autoFocus,
      isNested,
      'aria-label': ariaLabel,
      'aria-labelledby': ariaLabelledby
    } = _this$props,
          otherProps = _objectWithoutProperties(_this$props, _excluded);

    const isMultiLevel = variant === 'multiLevel';
    const Element = isNested ? 'div' : 'nav';
    delete otherProps.value;

    let ul = /*#__PURE__*/_react.default.createElement("ul", _extends({
      className: (0, _classnames.default)('spectrum-SideNav', {
        'spectrum-SideNav--multiLevel': isMultiLevel
      }),
      id: id + '-list',
      "aria-label": isNested ? ariaLabel : undefined,
      "aria-labelledby": isNested ? ariaLabelledby : undefined
    }, (0, _filterDOMProps.default)(otherProps)), _react.Children.map(children, child => /*#__PURE__*/(0, _react.cloneElement)(child, {
      hidden,
      manageTabIndex,
      isMultiLevel,
      ariaLevel: isMultiLevel ? ariaLevel : undefined,
      _nestedNavValue: this.state.value,
      _isSelected: this.isSelected(child),
      onSelect: (0, _events.chain)(child.props.onSelect, this.onSelect),
      defaultExpanded: this.isDefaultExpanded(child)
    }))); // If this is the root sidenav and we are managing focus, wrap the list in a toolbar


    if (!isNested) {
      ul = /*#__PURE__*/_react.default.createElement("div", {
        role: "toolbar",
        "aria-orientation": "vertical"
      }, ul);
    }

    return /*#__PURE__*/_react.default.createElement(Element, {
      id: id,
      hidden: hidden,
      "aria-hidden": hidden,
      role: isNested ? 'presentation' : undefined,
      "aria-label": !isNested ? ariaLabel : undefined,
      "aria-labelledby": !isNested ? ariaLabelledby : undefined,
      className: (0, _classnames.default)(className, 'react-spectrum-SideNav')
    }, isNested ? ul : /*#__PURE__*/_react.default.createElement(_FocusManager.default, {
      itemSelector: SIDENAV_ITEM_SELECTOR,
      selectedItemSelector: SELECTED_SIDENAV_ITEM_SELECTOR,
      manageTabIndex: isMultiLevel || manageTabIndex,
      typeToSelect: isMultiLevel || typeToSelect,
      autoFocus: autoFocus
    }, ul));
  }

}, _class2.propTypes = {
  /**
   * The variant of sidenav to display
   */
  variant: _propTypes.default.oneOf(['default', 'multiLevel']),

  /**
   * Whether SideNav should use roving tabIndex so that only one item can receive focus at a time. With multiLevel, this defaults to true.
   */
  manageTabIndex: _propTypes.default.bool,

  /**
   * Whether SideNav should use alphanumeric search to locate next item to focus. With multiLevel, this defaults to true.
   */
  typeToSelect: _propTypes.default.bool,

  /**
   * Custom className of sidenav to apply
   */
  className: _propTypes.default.string,

  /**
   * Value of selected Sidenav Item (use for controlled selection)
   */
  value: _propTypes.default.string,

  /**
   * Value of selected Sidenav Item at initialization
   */
  defaultValue: _propTypes.default.string,

  /**
   * Whether to automatically set focus to the seleted item when the component mounts.
   */
  autoFocus: _propTypes.default.bool,

  /**
   * Whether the sidenav is a child of a sidenav item
   */
  isNested: _propTypes.default.bool,

  /**
   * A select handler for the sidenav
   */
  onSelect: _propTypes.default.func
}, _class2.defaultProps = {
  variant: 'default',
  manageTabIndex: false,
  typeToSelect: false,
  autoFocus: false,
  isNested: false,
  onSelect: () => {}
}, _temp)) || _class) || _class) || _class;

exports.default = SideNav;

/***/ }),

/***/ "OfWw":
/***/ (function(module, exports, __webpack_require__) {

// based on the aes implimentation in triple sec
// https://github.com/keybase/triplesec
// which is in turn based on the one from crypto-js
// https://code.google.com/p/crypto-js/
var Buffer = __webpack_require__("hwdV").Buffer;

function asUInt32Array(buf) {
  if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf);
  var len = buf.length / 4 | 0;
  var out = new Array(len);

  for (var i = 0; i < len; i++) {
    out[i] = buf.readUInt32BE(i * 4);
  }

  return out;
}

function scrubVec(v) {
  for (var i = 0; i < v.length; v++) {
    v[i] = 0;
  }
}

function cryptBlock(M, keySchedule, SUB_MIX, SBOX, nRounds) {
  var SUB_MIX0 = SUB_MIX[0];
  var SUB_MIX1 = SUB_MIX[1];
  var SUB_MIX2 = SUB_MIX[2];
  var SUB_MIX3 = SUB_MIX[3];
  var s0 = M[0] ^ keySchedule[0];
  var s1 = M[1] ^ keySchedule[1];
  var s2 = M[2] ^ keySchedule[2];
  var s3 = M[3] ^ keySchedule[3];
  var t0, t1, t2, t3;
  var ksRow = 4;

  for (var round = 1; round < nRounds; round++) {
    t0 = SUB_MIX0[s0 >>> 24] ^ SUB_MIX1[s1 >>> 16 & 0xff] ^ SUB_MIX2[s2 >>> 8 & 0xff] ^ SUB_MIX3[s3 & 0xff] ^ keySchedule[ksRow++];
    t1 = SUB_MIX0[s1 >>> 24] ^ SUB_MIX1[s2 >>> 16 & 0xff] ^ SUB_MIX2[s3 >>> 8 & 0xff] ^ SUB_MIX3[s0 & 0xff] ^ keySchedule[ksRow++];
    t2 = SUB_MIX0[s2 >>> 24] ^ SUB_MIX1[s3 >>> 16 & 0xff] ^ SUB_MIX2[s0 >>> 8 & 0xff] ^ SUB_MIX3[s1 & 0xff] ^ keySchedule[ksRow++];
    t3 = SUB_MIX0[s3 >>> 24] ^ SUB_MIX1[s0 >>> 16 & 0xff] ^ SUB_MIX2[s1 >>> 8 & 0xff] ^ SUB_MIX3[s2 & 0xff] ^ keySchedule[ksRow++];
    s0 = t0;
    s1 = t1;
    s2 = t2;
    s3 = t3;
  }

  t0 = (SBOX[s0 >>> 24] << 24 | SBOX[s1 >>> 16 & 0xff] << 16 | SBOX[s2 >>> 8 & 0xff] << 8 | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++];
  t1 = (SBOX[s1 >>> 24] << 24 | SBOX[s2 >>> 16 & 0xff] << 16 | SBOX[s3 >>> 8 & 0xff] << 8 | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++];
  t2 = (SBOX[s2 >>> 24] << 24 | SBOX[s3 >>> 16 & 0xff] << 16 | SBOX[s0 >>> 8 & 0xff] << 8 | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++];
  t3 = (SBOX[s3 >>> 24] << 24 | SBOX[s0 >>> 16 & 0xff] << 16 | SBOX[s1 >>> 8 & 0xff] << 8 | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++];
  t0 = t0 >>> 0;
  t1 = t1 >>> 0;
  t2 = t2 >>> 0;
  t3 = t3 >>> 0;
  return [t0, t1, t2, t3];
} // AES constants


var RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36];

var G = function () {
  // Compute double table
  var d = new Array(256);

  for (var j = 0; j < 256; j++) {
    if (j < 128) {
      d[j] = j << 1;
    } else {
      d[j] = j << 1 ^ 0x11b;
    }
  }

  var SBOX = [];
  var INV_SBOX = [];
  var SUB_MIX = [[], [], [], []];
  var INV_SUB_MIX = [[], [], [], []]; // Walk GF(2^8)

  var x = 0;
  var xi = 0;

  for (var i = 0; i < 256; ++i) {
    // Compute sbox
    var sx = xi ^ xi << 1 ^ xi << 2 ^ xi << 3 ^ xi << 4;
    sx = sx >>> 8 ^ sx & 0xff ^ 0x63;
    SBOX[x] = sx;
    INV_SBOX[sx] = x; // Compute multiplication

    var x2 = d[x];
    var x4 = d[x2];
    var x8 = d[x4]; // Compute sub bytes, mix columns tables

    var t = d[sx] * 0x101 ^ sx * 0x1010100;
    SUB_MIX[0][x] = t << 24 | t >>> 8;
    SUB_MIX[1][x] = t << 16 | t >>> 16;
    SUB_MIX[2][x] = t << 8 | t >>> 24;
    SUB_MIX[3][x] = t; // Compute inv sub bytes, inv mix columns tables

    t = x8 * 0x1010101 ^ x4 * 0x10001 ^ x2 * 0x101 ^ x * 0x1010100;
    INV_SUB_MIX[0][sx] = t << 24 | t >>> 8;
    INV_SUB_MIX[1][sx] = t << 16 | t >>> 16;
    INV_SUB_MIX[2][sx] = t << 8 | t >>> 24;
    INV_SUB_MIX[3][sx] = t;

    if (x === 0) {
      x = xi = 1;
    } else {
      x = x2 ^ d[d[d[x8 ^ x2]]];
      xi ^= d[d[xi]];
    }
  }

  return {
    SBOX: SBOX,
    INV_SBOX: INV_SBOX,
    SUB_MIX: SUB_MIX,
    INV_SUB_MIX: INV_SUB_MIX
  };
}();

function AES(key) {
  this._key = asUInt32Array(key);

  this._reset();
}

AES.blockSize = 4 * 4;
AES.keySize = 256 / 8;
AES.prototype.blockSize = AES.blockSize;
AES.prototype.keySize = AES.keySize;

AES.prototype._reset = function () {
  var keyWords = this._key;
  var keySize = keyWords.length;
  var nRounds = keySize + 6;
  var ksRows = (nRounds + 1) * 4;
  var keySchedule = [];

  for (var k = 0; k < keySize; k++) {
    keySchedule[k] = keyWords[k];
  }

  for (k = keySize; k < ksRows; k++) {
    var t = keySchedule[k - 1];

    if (k % keySize === 0) {
      t = t << 8 | t >>> 24;
      t = G.SBOX[t >>> 24] << 24 | G.SBOX[t >>> 16 & 0xff] << 16 | G.SBOX[t >>> 8 & 0xff] << 8 | G.SBOX[t & 0xff];
      t ^= RCON[k / keySize | 0] << 24;
    } else if (keySize > 6 && k % keySize === 4) {
      t = G.SBOX[t >>> 24] << 24 | G.SBOX[t >>> 16 & 0xff] << 16 | G.SBOX[t >>> 8 & 0xff] << 8 | G.SBOX[t & 0xff];
    }

    keySchedule[k] = keySchedule[k - keySize] ^ t;
  }

  var invKeySchedule = [];

  for (var ik = 0; ik < ksRows; ik++) {
    var ksR = ksRows - ik;
    var tt = keySchedule[ksR - (ik % 4 ? 0 : 4)];

    if (ik < 4 || ksR <= 4) {
      invKeySchedule[ik] = tt;
    } else {
      invKeySchedule[ik] = G.INV_SUB_MIX[0][G.SBOX[tt >>> 24]] ^ G.INV_SUB_MIX[1][G.SBOX[tt >>> 16 & 0xff]] ^ G.INV_SUB_MIX[2][G.SBOX[tt >>> 8 & 0xff]] ^ G.INV_SUB_MIX[3][G.SBOX[tt & 0xff]];
    }
  }

  this._nRounds = nRounds;
  this._keySchedule = keySchedule;
  this._invKeySchedule = invKeySchedule;
};

AES.prototype.encryptBlockRaw = function (M) {
  M = asUInt32Array(M);
  return cryptBlock(M, this._keySchedule, G.SUB_MIX, G.SBOX, this._nRounds);
};

AES.prototype.encryptBlock = function (M) {
  var out = this.encryptBlockRaw(M);
  var buf = Buffer.allocUnsafe(16);
  buf.writeUInt32BE(out[0], 0);
  buf.writeUInt32BE(out[1], 4);
  buf.writeUInt32BE(out[2], 8);
  buf.writeUInt32BE(out[3], 12);
  return buf;
};

AES.prototype.decryptBlock = function (M) {
  M = asUInt32Array(M); // swap

  var m1 = M[1];
  M[1] = M[3];
  M[3] = m1;
  var out = cryptBlock(M, this._invKeySchedule, G.INV_SUB_MIX, G.INV_SBOX, this._nRounds);
  var buf = Buffer.allocUnsafe(16);
  buf.writeUInt32BE(out[0], 0);
  buf.writeUInt32BE(out[3], 4);
  buf.writeUInt32BE(out[2], 8);
  buf.writeUInt32BE(out[1], 12);
  return buf;
};

AES.prototype.scrub = function () {
  scrubVec(this._keySchedule);
  scrubVec(this._invKeySchedule);
  scrubVec(this._key);
};

module.exports.AES = AES;

/***/ }),

/***/ "Oiqt":
/***/ (function(module, exports, __webpack_require__) {

module.exports = __webpack_require__.p + "assets/start/stripe.png";

/***/ }),

/***/ "Ojgd":
/***/ (function(module, exports) {

// 7.1.4 ToInteger
var ceil = Math.ceil;
var floor = Math.floor;

module.exports = function (it) {
  return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);
};

/***/ }),

/***/ "OmNF":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("path", {
  d: "M37 16.941a8.657 8.657 0 0 0 .14-1.483c0-5.253-3.624-9.936-9.422-9.936-4.906 0-8.2 3.993-9.348 8.113a9.015 9.015 0 0 0-2.583-.379 7.91 7.91 0 0 0-7.876 7.906 6.815 6.815 0 0 0 .327 2.068c-.11-.008-.215-.03-.327-.03a5.773 5.773 0 0 0-5.386 5.431A5.487 5.487 0 0 0 7.539 34H22v-8h-5.586a1 1 0 0 1-.707-1.707L24 16l8.293 8.293A1 1 0 0 1 31.586 26H26v8h11.535l1.5-.086A7.68 7.68 0 0 0 45.421 26c0-4.875-4.93-8.478-8.421-9.059zM26 34h-4v9a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1z"
}));

/***/ }),

/***/ "Ondd":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _autobindDecorator = _interopRequireDefault(__webpack_require__("gKdT"));

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _Dialog = _interopRequireDefault(__webpack_require__("PxaR"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

var _ScrollManager = _interopRequireDefault(__webpack_require__("8VRs"));

var _UxpDialogButtons = _interopRequireDefault(__webpack_require__("FWm0"));

var _UxpDialogHeader = _interopRequireDefault(__webpack_require__("3XTm"));

__webpack_require__("eWyx");

const _excluded = ["children", "className", "cancelLabel", "confirmLabel", "secondaryLabel", "open", "title", "variant", "mode", "role", "tabIndex", "trapFocus", "isDismissible", "id", "aria-label", "aria-labelledby", "aria-describedby", "aria-modal"];

var _class;

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

if (false) {} else if (false) {} else {
  __webpack_require__("3Bdy");
}

if (true) __webpack_require__("0YIG");
if (true) __webpack_require__("+Jno");
if (true) __webpack_require__("XPLw");
if (true) __webpack_require__("xEce");

let UxpNonNativeDialog = (0, _autobindDecorator.default)(_class = class UxpNonNativeDialog extends _Dialog.default {
  componentDidMount() {
    _ScrollManager.default.getInstance().toggleScrollBarsVisibility(true, false, this.UxpNonNativeDialogRef);
  }

  componentWillUnmount() {
    _ScrollManager.default.getInstance().toggleScrollBarsVisibility(false, false, this.UxpNonNativeDialogRef);
  }

  render() {
    const _this$props = this.props,
          {
      children,
      className = '',
      cancelLabel,
      confirmLabel,
      secondaryLabel,
      open,
      title,
      variant,
      mode,
      role,
      tabIndex,
      trapFocus,
      isDismissible,
      id = this.dialogId,
      'aria-label': ariaLabel,
      'aria-labelledby': ariaLabelledby,
      'aria-describedby': ariaDescribedby,
      'aria-modal': ariaModal
    } = _this$props,
          otherProps = _objectWithoutProperties(_this$props, _excluded);

    const fullscreen = mode === 'fullscreen' || mode === 'fullscreenTakeover';
    const derivedVariant = variant || (cancelLabel && confirmLabel ? 'confirmation' : 'information');
    delete otherProps.modalContent;
    delete otherProps.disableEscKey;
    return (
      /*#__PURE__*/
      // eslint-disable-next-line jsx-a11y/no-static-element-interactions
      _react.default.createElement("div", {
        className: (0, _classnames.default)('spectrum-Dialog', {
          [`spectrum-Dialog--${mode}`]: mode,
          'spectrum-Dialog--error': variant === 'error',
          'is-open': open,
          'spectrum-Dialog--dismissible': isDismissible
        }, 'spectrum-Dialog-Override', className),
        role: role,
        ref: s => this.UxpNonNativeDialogRef = s,
        defaultpreventedkeys: ['Escape']
        /* eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex */
        ,
        tabIndex: tabIndex === undefined || trapFocus ? 1 : tabIndex,
        onFocus: this.onFocus,
        onKeyDown: this.onKeyDown,
        id: id,
        "aria-label": ariaLabel,
        "aria-labelledby": ariaLabelledby || (title && !ariaLabel ? `${id}-heading` : null),
        "aria-describedby": ariaDescribedby || (title && children ? `${id}-content` : null),
        "aria-modal": ariaModal || trapFocus
      }, title && /*#__PURE__*/_react.default.createElement(_UxpDialogHeader.default, _extends({
        variant: derivedVariant,
        title: title,
        fullscreen: fullscreen,
        confirmLabel: confirmLabel,
        secondaryLabel: secondaryLabel,
        cancelLabel: cancelLabel,
        isDismissible: isDismissible,
        id: `${id}-heading`
      }, otherProps, {
        onConfirm: this.onConfirm,
        onCancel: this.onCancel
      }), /*#__PURE__*/_react.default.createElement("div", {
        className: "dialogSeparator"
      })), title ? /*#__PURE__*/_react.default.createElement("div", {
        className: "spectrum-Dialog-content",
        id: `${id}-content`
      }, children) : children, !isDismissible && !fullscreen && confirmLabel && /*#__PURE__*/_react.default.createElement(_UxpDialogButtons.default, _extends({}, this.props, {
        variant: derivedVariant,
        className: "spectrum-Dialog-footer",
        onConfirm: this.onConfirm,
        onCancel: this.onCancel
      })))
    );
  }

}) || _class;

exports.default = UxpNonNativeDialog;

/***/ }),

/***/ "Onz0":
/***/ (function(module, exports, __webpack_require__) {

// Copyright Joyent, Inc. and other Node contributors.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to permit
// persons to whom the Software is furnished to do so, subject to the
// following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
// USE OR OTHER DEALINGS IN THE SOFTWARE.
// NOTE: These type checking functions intentionally don't use `instanceof`
// because it is fragile and can be easily faked with `Object.create()`.
function isArray(arg) {
  if (Array.isArray) {
    return Array.isArray(arg);
  }

  return objectToString(arg) === '[object Array]';
}

exports.isArray = isArray;

function isBoolean(arg) {
  return typeof arg === 'boolean';
}

exports.isBoolean = isBoolean;

function isNull(arg) {
  return arg === null;
}

exports.isNull = isNull;

function isNullOrUndefined(arg) {
  return arg == null;
}

exports.isNullOrUndefined = isNullOrUndefined;

function isNumber(arg) {
  return typeof arg === 'number';
}

exports.isNumber = isNumber;

function isString(arg) {
  return typeof arg === 'string';
}

exports.isString = isString;

function isSymbol(arg) {
  return typeof arg === 'symbol';
}

exports.isSymbol = isSymbol;

function isUndefined(arg) {
  return arg === void 0;
}

exports.isUndefined = isUndefined;

function isRegExp(re) {
  return objectToString(re) === '[object RegExp]';
}

exports.isRegExp = isRegExp;

function isObject(arg) {
  return typeof arg === 'object' && arg !== null;
}

exports.isObject = isObject;

function isDate(d) {
  return objectToString(d) === '[object Date]';
}

exports.isDate = isDate;

function isError(e) {
  return objectToString(e) === '[object Error]' || e instanceof Error;
}

exports.isError = isError;

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

exports.isFunction = isFunction;

function isPrimitive(arg) {
  return arg === null || typeof arg === 'boolean' || typeof arg === 'number' || typeof arg === 'string' || typeof arg === 'symbol' || // ES6 symbol
  typeof arg === 'undefined';
}

exports.isPrimitive = isPrimitive;
exports.isBuffer = __webpack_require__("HDXh").Buffer.isBuffer;

function objectToString(o) {
  return Object.prototype.toString.call(o);
}

/***/ }),

/***/ "Ove7":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXPORTS
__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ resolveById; });
__webpack_require__.d(__webpack_exports__, "b", function() { return /* binding */ resolvePathFromId; });

// UNUSED EXPORTS: resolve, getResolveUrl, resolveByPath, resolvePathFromUrl

// EXTERNAL MODULE: ./node_modules/uri-templates/uri-templates.js
var uri_templates = __webpack_require__("qPad");
var uri_templates_default = /*#__PURE__*/__webpack_require__.n(uri_templates);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/api/adobe-content-platform/ACPRequest.ts
var ACPRequest = __webpack_require__("r9Sp");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/api/adobe-content-platform/getIndex.ts
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2020 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/

let indexCache;
async function getIndex() {
    if (!indexCache) {
        indexCache = await new ACPRequest["c" /* default */]('/')
            .fetch()
            .then(ACPRequest["c" /* default */].verifyStatus)
            .then(response => ACPRequest["c" /* default */].parseJSONResponse(response));
    }
    return indexCache.parsedBody;
}

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/parseAcpLinks.tsx
var parseAcpLinks = __webpack_require__("Cgfd");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/api/adobe-content-platform/resolve.ts




async function resolve(resolveUrl) {
    return new ACPRequest["c" /* default */](resolveUrl)
        .method('head')
        .fetch()
        .then(ACPRequest["c" /* default */].verifyStatus)
        .then(ACPRequest["c" /* default */].parseLinkHeaders);
}
/**
 * Return a resolver url for the user's home directory.
 * Both resolve by path and resolve by id are available.
 */
async function getResolveUrl(scheme, value) {
    const index = await getIndex();
    const rel = ACPRequest["a" /* ACPLinks */][`RESOLVE_${scheme}`];
    const templatedResolveURL = index._links[rel].href;
    const resolveURL = uri_templates_default()(templatedResolveURL).fill({ [scheme.toLowerCase()]: value });
    return resolveURL;
}
async function resolveById(urn) {
    return resolve(await getResolveUrl('ID', urn));
}
async function resolveByPath(fields) {
    const index = await getIndex();
    return resolve(Object(parseAcpLinks["a" /* parseAcpBodyLink */])(index._links, ACPRequest["a" /* ACPLinks */].RESOLVE_PATH, fields));
}
/** Given a resolvable URL, resolve its ACPLinks.PATH. */
async function resolvePathFromUrl(url) {
    var _a;
    const res = await resolve(url);
    const path = (_a = res.links.find(ref => ref.rel === ACPRequest["a" /* ACPLinks */]['PATH'])) === null || _a === void 0 ? void 0 : _a.uri;
    return path;
}
/** Given a URN, resolve its ACPLinks.PATH. */
async function resolvePathFromId(id) {
    var _a;
    const res = await resolveById(id);
    const path = (_a = res.links.find(ref => ref.rel === ACPRequest["a" /* ACPLinks */]['PATH'])) === null || _a === void 0 ? void 0 : _a.uri;
    return path;
}


/***/ }),

/***/ "Ovfc":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("path", {
  d: "M30 2H10.987a.37.37 0 0 0-.259.635l5.848 5.718a40.092 40.092 0 0 0-6.94 10.026C6.1 25.993 7.324 33.461 8.032 33.43c2.036-.089 1.161-2.545 2.49-5.312a31.227 31.227 0 0 1 12.794-13.176l6.055 5.921A.37.37 0 0 0 30 20.6z"
}));

/***/ }),

/***/ "OyfJ":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return WorkingFilesFolder; });
/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("2vnA");
/* harmony import */ var _ccx_public_shared_asset_model_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("m4Z2");
/* harmony import */ var _utils_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("YVc3");
/* harmony import */ var _SpaceSection__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("DL5t");
/* harmony import */ var _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("mm/P");
/* harmony import */ var _utils_performance__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("P5RH");
/* harmony import */ var _utils_getAssetRef__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("NIJf");
/* harmony import */ var _utils_SAMUtils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("x7p6");
/* harmony import */ var _packages_CDOView_SAMAssetModel__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("cU50");
/* harmony import */ var _stores_SharedStore__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__("jmEq");
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;
};
var __metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var _a, _b;










/**
 * TODO: Use AdobeAsset (instead of IAssetModel) on CDOView. Make this extend
 * SpaceSection<AdobeAssets>
 *
 * A WorkingFilesFolder represents one folder of Working Files, i.e. a directory
 * in ACP. It is meant to be persistent, meaning that its contents can be loaded
 * once, and then refreshed again, when the user navigates back to that folder.
 *
 * The Loading State flow goes like this:
 *
 * - Pending: Not loaded yet.
 * - Fetching: Fetching the contents for the first time (show a spinner)
 * - Refreshing: Reloading the content in-place (do not show a spinner)
 * - Done: All items have been loaded.
 */
class WorkingFilesFolder extends _SpaceSection__WEBPACK_IMPORTED_MODULE_3__[/* default */ "c"] {
    constructor(space) {
        // Folders get their link via the init method below.
        super(space);
        this._lastRefreshTime = 0;
        this.allowOfflineLoad = true;
        // Reacted when the number of items is updated due to SAM cpp notifications from actions (create new, delete,...)
        // in other surfaces. On web there's no notifications. On desktop, there's only notifications when
        // using listings from SAM.cpp and for CCI accounts only. Notifications don't work for ESM accounts yet.
        // TODO: Pending CFS-674.
        Object(mobx__WEBPACK_IMPORTED_MODULE_0__[/* autorun */ "k"])(() => {
            if (this._assetList && this._assetList.items) {
                this.wrapAsElements(this._assetList.items);
            }
        });
    }
    get samAsset() {
        return this._samAsset;
    }
    get id() {
        var _a;
        return (_a = this.samAsset) === null || _a === void 0 ? void 0 : _a.id;
    }
    get repoPath() {
        var _a;
        return (_a = this.samAsset) === null || _a === void 0 ? void 0 : _a.repoPath;
    }
    get discarded() {
        var _a;
        return (_a = this.samAsset) === null || _a === void 0 ? void 0 : _a.isDiscarded;
    }
    get name() {
        var _a;
        return (_a = this.samAsset) === null || _a === void 0 ? void 0 : _a.name;
    }
    get isAvailableOffline() {
        var _a, _b;
        return (_b = (_a = this.samAsset) === null || _a === void 0 ? void 0 : _a.isAvailableOffline) !== null && _b !== void 0 ? _b : false;
    }
    get assetRef() {
        if (this.samAsset) {
            return Object(_utils_getAssetRef__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"])({
                cloudId: this.samAsset.cloudID,
                name: this.samAsset.name,
                path: this.samAsset.repoPath,
                repositoryId: this.samAsset.repositoryID,
            });
        }
        return undefined;
    }
    wrapAsElements(items) {
        const newItems = items.map(doc => new _packages_CDOView_SAMAssetModel__WEBPACK_IMPORTED_MODULE_8__[/* default */ "a"]({ spacesSection: _utils_constants__WEBPACK_IMPORTED_MODULE_2__[/* OneUpTabs */ "q"].Working }, doc));
        this.processFetchedItems(newItems);
    }
    async handleRecentsUpdate(entry, options) {
        const getFileInCurrentFolder = () => this.items.find(item => entry.cloud_id ? item.id === entry.cloud_id : item.path === entry.path);
        const file = getFileInCurrentFolder();
        const originalEtag = file === null || file === void 0 ? void 0 : file.etag;
        if (`${this.repoPath}/${entry.display_name}` !== entry.path) {
            // This file seems to belong to a different folder.
            return;
        }
        const REFRESH_DELAY = 3000;
        await options.requestController.runUntil(() => this.load({ refreshTimeout: REFRESH_DELAY, loadAllPages: true }), () => {
            var _a;
            const etag = (_a = getFileInCurrentFolder()) === null || _a === void 0 ? void 0 : _a.etag;
            return etag && etag !== originalEtag;
        }, { delay: REFRESH_DELAY, maxAttempts: 5 });
    }
    /**
     * Initialize the folder with an ACPLink (to know where to fetch), and
     * optionally any known ACPFolderAsset data (such as "repo:path") that might
     * help us display UI while the rest of the data loads.
     */
    async init(metadata) {
        var _a;
        // If we're clicking on a folder in the Working Files view, we have some
        // metadata already, used to show the right breadcrumbs while loading.
        this._samAsset = metadata;
        this.updateState((_a = this._samAsset) === null || _a === void 0 ? void 0 : _a.isDiscarded);
    }
    async refreshCurrentFolderMetadata() {
        const now = Date.now();
        // Refresh the metadata of the current folder at most once every minute.
        if (this._lastRefreshTime + _utils_constants__WEBPACK_IMPORTED_MODULE_2__[/* ONE_MINUTE */ "p"] >= now) {
            return;
        }
        this._lastRefreshTime = now;
        await _stores_SharedStore__WEBPACK_IMPORTED_MODULE_9__[/* sharedStore */ "d"].getAssetWithID(this.samAsset.id);
    }
    async setItems({ loadAllPages } = {}) {
        await this.fetchAllItems({ loadAllPages });
    }
    async fetchAllItems({ loadAllPages } = {}) {
        var _a;
        let startTime = _utils_performance__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"].now();
        let error;
        try {
            let source, filter;
            if (this.space.role === 'REVIEWER') {
                source = await this.space.searchWorkingFiles();
                filter = new _ccx_public_shared_asset_model_js__WEBPACK_IMPORTED_MODULE_1__[/* SpaceSearchAssetFilter */ "x"]({ mediaTypes: [] });
            }
            else if (this.space.role === 'CONTRIBUTOR') {
                source = (_a = this.samAsset) === null || _a === void 0 ? void 0 : _a.children;
                filter = new _ccx_public_shared_asset_model_js__WEBPACK_IMPORTED_MODULE_1__[/* AdobeAssetFilter */ "b"]({ mediaTypes: [] });
            }
            if (source) {
                this._assetList = source.getList(new _ccx_public_shared_asset_model_js__WEBPACK_IMPORTED_MODULE_1__[/* AdobeAssetOrder */ "c"]('ascending', 'modified'), filter, { loadAllPages });
                if (this._assetList && this.samAsset !== undefined) {
                    // If the asset is discarded, return.
                    if (this.samAsset.isDiscarded) {
                        return;
                    }
                    else {
                        this.refreshCurrentFolderMetadata();
                        // If the asset is not discarded after metadata refresh, reload the list.
                        if (!this.samAsset.isDiscarded) {
                            await Object(_utils_SAMUtils__WEBPACK_IMPORTED_MODULE_7__[/* refreshList */ "b"])(this._assetList);
                        }
                    }
                }
            }
            return;
        }
        catch (e) {
            error = e;
            throw error;
        }
        finally {
            this.sendIngestListEvent(this.id || '', _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_4__[/* ContentType */ "a"].File, _utils_performance__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"].now() - startTime, error);
        }
    }
    lazyLoadItemData(item) {
        if (item.isWeblink) {
            // note: this is intentionally a Promise
            item.setManifest();
        }
        item.preloadRendition();
    }
}
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", typeof (_a = typeof _ccx_public_shared_asset_model_js__WEBPACK_IMPORTED_MODULE_1__["AdobeAsset"] !== "undefined" && _ccx_public_shared_asset_model_js__WEBPACK_IMPORTED_MODULE_1__["AdobeAsset"]) === "function" ? _a : Object)
], WorkingFilesFolder.prototype, "_samAsset", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", typeof (_b = typeof _ccx_public_shared_asset_model_js__WEBPACK_IMPORTED_MODULE_1__["IItemList"] !== "undefined" && _ccx_public_shared_asset_model_js__WEBPACK_IMPORTED_MODULE_1__["IItemList"]) === "function" ? _b : Object)
], WorkingFilesFolder.prototype, "_assetList", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [Object]),
    __metadata("design:returntype", void 0)
], WorkingFilesFolder.prototype, "wrapAsElements", null);


/***/ }),

/***/ "P/f2":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _nullishCoalesce; });
/**
 * Polyfill for the nullish coalescing operator (`??`).
 *
 * Note that the RHS is wrapped in a function so that if it's a computed value, that evaluation won't happen unless the
 * LHS evaluates to a nullish value, to mimic the operator's short-circuiting behavior.
 *
 * Adapted from Sucrase (https://github.com/alangpierce/sucrase)
 *
 * @param lhs The value of the expression to the left of the `??`
 * @param rhsFn A function returning the value of the expression to the right of the `??`
 * @returns The LHS value, unless it's `null` or `undefined`, in which case, the RHS value
 */
function _nullishCoalesce(lhs, rhsFn) {
  // by checking for loose equality to `null`, we catch both `null` and `undefined`
  return lhs != null ? lhs : rhsFn();
} // Sucrase version:
// function _nullishCoalesce(lhs, rhsFn) {
//   if (lhs != null) {
//     return lhs;
//   } else {
//     return rhsFn();
//   }
// }




/***/ }),

/***/ "P2KE":
/***/ (function(module, exports, __webpack_require__) {

var Buffer = __webpack_require__("hwdV").Buffer;

var ZEROES = Buffer.alloc(16, 0);

function toArray(buf) {
  return [buf.readUInt32BE(0), buf.readUInt32BE(4), buf.readUInt32BE(8), buf.readUInt32BE(12)];
}

function fromArray(out) {
  var buf = Buffer.allocUnsafe(16);
  buf.writeUInt32BE(out[0] >>> 0, 0);
  buf.writeUInt32BE(out[1] >>> 0, 4);
  buf.writeUInt32BE(out[2] >>> 0, 8);
  buf.writeUInt32BE(out[3] >>> 0, 12);
  return buf;
}

function GHASH(key) {
  this.h = key;
  this.state = Buffer.alloc(16, 0);
  this.cache = Buffer.allocUnsafe(0);
} // from http://bitwiseshiftleft.github.io/sjcl/doc/symbols/src/core_gcm.js.html
// by Juho Vähä-Herttua


GHASH.prototype.ghash = function (block) {
  var i = -1;

  while (++i < block.length) {
    this.state[i] ^= block[i];
  }

  this._multiply();
};

GHASH.prototype._multiply = function () {
  var Vi = toArray(this.h);
  var Zi = [0, 0, 0, 0];
  var j, xi, lsbVi;
  var i = -1;

  while (++i < 128) {
    xi = (this.state[~~(i / 8)] & 1 << 7 - i % 8) !== 0;

    if (xi) {
      // Z_i+1 = Z_i ^ V_i
      Zi[0] ^= Vi[0];
      Zi[1] ^= Vi[1];
      Zi[2] ^= Vi[2];
      Zi[3] ^= Vi[3];
    } // Store the value of LSB(V_i)


    lsbVi = (Vi[3] & 1) !== 0; // V_i+1 = V_i >> 1

    for (j = 3; j > 0; j--) {
      Vi[j] = Vi[j] >>> 1 | (Vi[j - 1] & 1) << 31;
    }

    Vi[0] = Vi[0] >>> 1; // If LSB(V_i) is 1, V_i+1 = (V_i >> 1) ^ R

    if (lsbVi) {
      Vi[0] = Vi[0] ^ 0xe1 << 24;
    }
  }

  this.state = fromArray(Zi);
};

GHASH.prototype.update = function (buf) {
  this.cache = Buffer.concat([this.cache, buf]);
  var chunk;

  while (this.cache.length >= 16) {
    chunk = this.cache.slice(0, 16);
    this.cache = this.cache.slice(16);
    this.ghash(chunk);
  }
};

GHASH.prototype.final = function (abl, bl) {
  if (this.cache.length) {
    this.ghash(Buffer.concat([this.cache, ZEROES], 16));
  }

  this.ghash(fromArray([0, abl, 0, bl]));
  return this.state;
};

module.exports = GHASH;

/***/ }),

/***/ "P2sY":
/***/ (function(module, exports, __webpack_require__) {

module.exports = {
  "default": __webpack_require__("UbbE"),
  __esModule: true
};

/***/ }),

/***/ "P5RH":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return performanceUtils; });
/* harmony import */ var uuid__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("EcEN");
/* harmony import */ var uuid__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(uuid__WEBPACK_IMPORTED_MODULE_0__);
/* istanbul ignore file */

const performance = window.performance || {
    navigation: {},
    timing: {},
    memory: {},
    timeOrigin: {},
    clearMarks: () => { },
    clearMeasures: () => { },
    clearResourceTimings: () => { },
    getEntries: () => [],
    getEntriesByName: () => [],
    getEntriesByType: () => [],
    mark: () => { },
    measure: () => { },
    now: () => new Date().getTime(),
    setResourceTimingBufferSize: () => { },
    toJSON: () => JSON.stringify({}),
};
/* harmony default export */ __webpack_exports__["a"] = (performance);
const performanceUtils = (window.CCSPACES_PERFORMANCE = {
    cache: new Array(),
    add: (entry) => {
        performanceUtils.cache.push(entry);
    },
    addWorkflow: (entry) => {
        const { startTime } = entry.measure;
        const endTime = entry.measure.startTime + entry.measure.duration;
        const networkReq = [];
        const newEntry = entry;
        performanceUtils.cache.forEach(e => {
            const netStartTime = e.measure.startTime;
            const netEndTime = e.measure.startTime + e.measure.duration;
            if ('request' in e && netStartTime > startTime && netEndTime < endTime) {
                networkReq.push(e);
            }
        });
        newEntry.net = networkReq;
        performanceUtils.cache.push(newEntry);
    },
    get: (filterFn) => {
        if (filterFn) {
            return performanceUtils.cache.filter(filterFn);
        }
        return performanceUtils.cache;
    },
    clear: () => {
        performanceUtils.cache = [];
    },
    mark: (markerName) => {
        const marker = `${markerName}_${uuid__WEBPACK_IMPORTED_MODULE_0___default.a.v4()}`;
        performance.mark(marker);
        return (entry) => {
            const newEntry = entry;
            performance.measure(marker, marker);
            const measure = performance.getEntriesByType('measure').find(m => m.name === marker);
            newEntry.measure = measure;
            performanceUtils.add(newEntry);
        };
    },
});


/***/ }),

/***/ "P69W":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("VIzJ");


/* harmony default export */ __webpack_exports__["a"] = ((menu, label, iconOnly, icon) => ({
    icon,
    id: 'newFile',
    menu,
    name: react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_1__[/* FormattedMessage */ "c"], { id: label }),
    iconOnly,
}));


/***/ }),

/***/ "P6Fe":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

var _SelectList = _interopRequireDefault(__webpack_require__("eHop"));

var _SpUxpListItem = _interopRequireDefault(__webpack_require__("lyz1"));

const _excluded = ["options", "className"];

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

class SpUxpSelectList extends _SelectList.default {
  constructor(...args) {
    var _temp;

    return _temp = super(...args), this.renderListOfOptions = options => options.map((option, index) => /*#__PURE__*/_react.default.createElement(_SpUxpListItem.default, {
      icon: option.icon,
      value: option.value,
      selected: this.isSelected(option) ? true : null,
      disabled: option.disabled
    }, this.props.renderItem ? this.props.renderItem(option) : option.label)), _temp;
  }

  render() {
    const _this$props = this.props,
          {
      options = [],
      className
    } = _this$props,
          otherProps = _objectWithoutProperties(_this$props, _excluded);

    return /*#__PURE__*/_react.default.createElement("sp-menu", _extends({
      class: className,
      slot: "options"
    }, otherProps), this.renderListOfOptions(options));
  }

}

exports.default = SpUxpSelectList;

/***/ }),

/***/ "P6av":
/***/ (function(module) {

module.exports = JSON.parse("{\"a11y.button.canvases\":\"{name}\",\"a11y.button.libraries\":\"{name}, bibliotheek\",\"a11y.button.listGridToggle\":\"weergave wijzigen, {toggledView, select, grid {raster} list {lijst}}weergave\",\"a11y.button.project\":\"{name}, project\",\"a11y.button.published\":\"{name}, {extension}\",\"a11y.button.selectFolder\":\"Map selecteren\",\"a11y.button.working\":\"{name}, {extension}, gewijzigd {modified}\",\"a11y.strings.folder\":\"map\",\"header.action.newProject\":\"Nieuw project\",\"header.action.newLibrary\":\"Nieuwe bibliotheek\",\"header.action.browseAll\":\"Alles weergeven\",\"header.Name\":\"Naam\",\"header.Size\":\"Grootte\",\"header.Sharing\":\"Leden\",\"header.Team\":\"Werkruimte\",\"header.DateModified\":\"Gewijzigd\",\"header.DateCreated\":\"Gemaakt\",\"header.Status\":\"Favoriet\",\"header.SortBy\":\"Sorteren op\",\"header.sort.label\":\"Sorteren\",\"header.ChangeSortDirection\":\"Sorteerrichting wijzigen in\",\"header.SortBy.asc\":\"Oplopend\",\"header.SortBy.desc\":\"Aflopend\",\"header.selectAll\":\"Alles selecteren\",\"header.reverseOrder\":\"Volgorde omdraaien\",\"header.showCompatible\":\"Compatibele bestanden\",\"header.showEverything\":\"Alles\",\"product.illustrator.web\":\"Illustrator Web (Beta)\",\"product.photoshop.web\":\"Photoshop Web (Beta)\",\"status.followed\":\"Ja\",\"status.unfollowed\":\"Nee\",\"team.usm.defaultName\":\"Werkruimte {name}\",\"space.access.private.description\":\"Alleen uitgenodigde personen\",\"space.access.private.tooltip\":\"Alleen personen die zijn uitgenodigd, hebben toegang tot dit project\",\"space.access.team.description\":\"Iedereen in de werkruimte en uitgenodigde personen\",\"space.access.team.tooltip\":\"Iedereen in '{team}' heeft toegang tot dit project\",\"yourProjects.title\":\"Projecten\",\"yourProjects.librariesTab.title\":\"Teambibliotheken\",\"yourProjects.empty.spaces\":\"Meer projecten maken en meer werkruimteleden uitnodigen\",\"browseAll.title\":\"Alles weergeven\",\"yourFiles.title\":\"Jouw documenten\",\"yourLibraries.title\":\"Bibliotheken\",\"yourLibraries.metadata\":\"BIBLIOTHEEK\",\"canvas.metadata\":\"CANVAS\",\"projectInfo.action.view\":\"Informatie weergeven\",\"projectInfo.action.edit\":\"Project bewerken\",\"projectInfo.empty.cta\":\"Nieuw project maken\",\"projectInfo.empty.description\":\"Met Creative Cloud Projects kun je eenvoudiger zoeken, organiseren, delen en beslissingen nemen doordat deze alles wat je nodig hebt voor je creatieve projecten op één plek samenbrengen.\",\"projectInfo.empty.heading\":\"Werk productiever en blijf bij.\",\"projectInfo.error.description\":\"Probeer het later opnieuw\",\"projectInfo.error.heading\":\"Kan {section} niet laden\",\"projectInfo.new.error.title\":\"Kan geen nieuw project maken\",\"projectInfo.new.noPermission.description\":\"Neem voor meer informatie contact op met je beheerder.\",\"projectInfo.title.create\":\"NIEUW PROJECT\",\"projectInfo.title.edit\":\"PROJECT BEWERKEN\",\"projectInfo.title.view\":\"PROJECTINFO\",\"projectInfo.access.title\":\"Wie dit project kan bewerken\",\"projectInfo.access.warning\":\"Sommige leden hebben mogelijk geen toegang meer tot het project als je de machtiging wijzigt in 'Alleen uitgenodigde personen'.\",\"projectInfo.organization\":\"Organisatie\",\"projectInfo.organization.placeholder\":\"Selecteer één organisatie\",\"projectInfo.description\":\"Beschrijving\",\"textField.invalid.characters\":\"Namen mogen geen van de volgende tekens bevatten: \\\\\\\\ / * ? \\\" | : < >\",\"textField.invalid.duplicateName\":\"Er bestaat al een project met deze naam in deze organisatie.\",\"textField.invalid.duplicateName.space\":\"Er bestaat al een project met deze naam in deze werkruimte.\",\"textField.invalid.duplicateName.team\":\"Er bestaat al een werkruimte met deze naam in deze organisatie.\",\"textField.invalid.empty\":\"Naam mag niet leeg zijn\",\"textField.invalid.generic\":\"Ongeldige naam\",\"textField.invalid.length\":\"Namen mogen niet langer zijn dan 50 tekens\",\"textField.invalid.nameEndsWithDot\":\"Namen mogen niet eindigen op een punt\",\"textField.invalid.offline\":\"Maak opnieuw verbinding om toegang te krijgen tot al je werkruimten en projecten. Ga naar de startpagina om lokale bestanden uit je projecten te bekijken.\",\"projectInfo.textField.placeholder\":\"Naam van dit project wijzigen\",\"projectInfo.team\":\"Werkruimte\",\"projectInfo.description.placeholder\":\"Bijv. bestanden, feedback en referentiemateriaal voor een klantproject\",\"projectInfo.description.invalidLength\":\"De beschrijving mag niet langer zijn dan 1000 tekens\",\"projectInfo.toast.success.new\":\"Project is gemaakt: {name}\",\"projectInfo.toast.success.update\":\"Project is bijgewerkt: {name}\",\"projectInfo.toast.error.generic\":\"Kan project niet {create, select, true {maken} other {bewerken}}\",\"team.empty.heading\":\"Met projecten zit iedereen op één lijn\",\"team.empty.description\":\"Ben je het beu dat je soms geen toegang meer hebt tot bestanden, dat er verwarring ontstaat over versies en dat je screenshots ter beoordeling moet mailen? Gebruik ruimten om projecten te organiseren, bronnen en feedback te verzamelen en bestanden te delen waaraan het hele team moet werken.\",\"team.empty.createSpace\":\"Een project maken\",\"team.empty.inviteMembers\":\"Leden uitnodigen\",\"team.empty.startHere\":\"START HIER\",\"team.create.success\":\"Werkruimte is gemaakt: {name}\",\"team.create.error.generic\":\"Kan werkruimte niet maken\",\"team.edit.success\":\"Werkruimte is bijgewerkt: {name}\",\"team.edit.error.generic\":\"Kan werkruimte niet bijwerken\",\"team.archive.success\":\"{count, plural, =1 {# werkruimte} other {# werkruimten}} verwijderd\",\"team.archive.error.generic\":\"Kan {count, plural, =1 {# werkruimte} other {# werkruimten}} niet verwijderen\",\"team.error.generic\":\"Er is iets fout gegaan.\",\"project1Up.action.projectInfo\":\"Informatie weergeven\",\"project1up.region.space.ariaLabel\":\"{projectName}, project\",\"project1Up.section.libraries\":\"Bibliotheken\",\"project1Up.section.libraries.empty.cta\":\"Creative Cloud Libraries toevoegen\",\"project1Up.section.libraries.empty.description\":\"Voeg koppelingen toe naar bibliotheken die je nodig hebt voor je werk.\",\"project1Up.section.libraries.empty.heading\":\"Breng alles samen op één plek\",\"project1Up.section.filter\":\"Filter\",\"project1Up.section.filter.label\":\"Filteren op trefwoord\",\"project1Up.section.filter.enterKeyword\":\"Zoekterm invoeren\",\"project1Up.section.filterFiles.empty.heading\":\"Geen resultaten die overeenkomen met het geselecteerde filter\",\"project1Up.section.compatibleFiles.empty.heading\":\"Geen compatibele bestanden in dit project\",\"project1Up.section.workingFiles\":\"Werkbestanden\",\"project1Up.section.workingFiles.empty.addFiles\":\"Bestanden toevoegen\",\"project1Up.section.workingFiles.empty.createFolder\":\"Nieuwe map maken\",\"project1Up.section.workingFiles.empty.description\":\"Hergebruik projecten en werk samen met andere leden.\",\"project1Up.section.workingFiles.empty.heading\":\"Werk waaraan je wilt wanneer dat nodig is\",\"project1Up.section.published\":\"Gepubliceerd\",\"project1Up.section.published.empty.cta\":\"Koppelingen publiceren\",\"project1Up.section.published.empty.description\":\"Verzend alleen-lezen koppelingen om feedback te krijgen van de juiste mensen op het juiste moment.\",\"project1Up.section.published.empty.description.readonly\":\"Iemand die om feedback of een beoordeling wilt vragen, kan hier een koppeling toevoegen.\",\"project1Up.section.published.empty.heading\":\"Doeltreffend delen\",\"project1Up.section.published.empty.heading.readonly\":\"Geen gepubliceerde items in dit project\",\"project1Up.section.canvases\":\"Canvassen\",\"project1Up.section.canvases.empty.cta\":\"Creative Cloud-canvassen toevoegen\",\"project1Up.section.canvases.empty.description\":\"Voeg koppelingen toe naar dingen die je nodig hebt voor je werk.\",\"project1Up.section.canvases.empty.heading\":\"Breng alles samen op één plek\",\"project1Up.section.files\":\"Bestanden\",\"project1Up.error.accessDenied.heading\":\"Je hebt geen toegang\",\"project1Up.error.accessDenied.description\":\"Je bent uit dit project verwijderd. Neem contact op met je beheerder als je denkt dat dit een fout is.\",\"project1Up.header.seeAll\":\"Alles weergeven\",\"project1up.subheader.selected\":\"{count, plural, =1 {# item} other {# items}} geselecteerd\",\"project1up.subheader.emptyDescription\":\"Een beschrijving toevoegen aan je project\",\"project1up.subheader.canvases.title\":\"Canvassen\",\"project1up.subheader.canvases.subtitle\":\"TAAK: ONDERTITEL CANVASSEN\",\"project1up.subheader.libraries.title\":\"Bibliotheken\",\"project1up.subheader.libraries.subtitle\":\"Leden kunnen hier koppelingen naar Creative Cloud Libraries toevoegen.\",\"project1up.subheader.working.title\":\"Werkbestanden\",\"project1up.subheader.working.subtitle\":\"Leden van dit project kunnen deze bestanden bewerken.\",\"project1up.subheader.output.title\":\"Gepubliceerd\",\"project1up.subheader.output.subtitle\":\"{contributor, select, true {Deel alleen-lezen versies van werk met mensen buiten je project.} other {Bekijk en reageer op deze alleen-lezen items}}\",\"project.subtitle\":\"PROJECT\",\"project.countContributors\":\"{count, plural, =1 {# lid} other {# leden}}\",\"project.versionError.reload.description\":\"Vernieuw de browser.\",\"project.versionError.reload.title\":\"Geen toegang tot project\",\"project.versionError.update.description\":\"Je hebt pas toegang tot het project nadat je de app hebt bijgewerkt.\",\"project.versionError.update.title\":\"Werk {appName} bij om dit te openen\",\"project.alreadyDiscarded.title\":\"Dit project is verwijderd\",\"project.alreadyDiscarded.description\":\"Neem contact op met je beheerder als je denkt dat dit een fout is of blader door andere content.\",\"project.deleted.title\":\"Dit project is definitief verwijderd\",\"project.deleted.description\":\"Je hebt geen toegang tot dit project omdat dit niet meer beschikbaar is.\",\"project.metadataError.backLabel\":\"Terug naar projecten\",\"project.metadataError.description\":\"We kunnen het project dat je zoekt niet vinden of je hebt geen toegang.\",\"project.metadataError.title\":\"Er is iets misgegaan.\",\"folder.subtitle\":\"MAP\",\"libraries.toast.add.start\":\"{count, plural, =1 {# bibliotheek} other {# bibliotheken}} toevoegen\",\"libraries.toast.add.success\":\"{count, plural, =1 {# bibliotheek} other {# bibliotheken}} toegevoegd\",\"libraries.toast.add.error\":\"Kan {count, plural, =1 {# bibliotheek} other {# bibliotheken}} niet toevoegen. Probeer het opnieuw.\",\"libraries.toast.add.duplicate\":\"Deze bibliotheek bestaat al\",\"libraries.toast.add.onlyDuplicates\":\"Kan {count, plural, =1 {# bibliotheek niet toevoegen omdat de bibliotheek al bestaat} other {# bibliotheken niet toevoegen omdat de bibliotheken al bestaan}}.\",\"libraries.toast.delete.success\":\"{count, plural, =1 {# bibliotheek is} other {# bibliotheken zijn}} verwijderd\",\"libraries.toast.delete.error\":\"Kan {count, plural, =1 {# bibliotheek} other {# bibliotheken}} niet verwijderen\",\"libraries.toast.follow.inProgress\":\"Je volgt {count, plural, =1 {# bibliotheek} other {# bibliotheken}}\",\"libraries.toast.follow.success\":\"Je volgt {count, plural, =1 {# bibliotheek} other {# bibliotheken}}\",\"libraries.toast.follow.error\":\"Kan {count, plural, =1 {# bibliotheek} other {# bibliotheken}} niet volgen\",\"libraries.toast.unfollow.inProgress\":\"Je hebt {count, plural, =1 {# bibliotheek} other {# bibliotheken}} ontvolgd\",\"libraries.toast.unfollow.success\":\"{count, plural, =1 {# bibliotheek} other {# bibliotheken}} ontvolgd\",\"libraries.toast.unfollow.error\":\"Kan {count, plural, =1 {# bibliotheek} other {# bibliotheken}} niet ontvolgen\",\"libraries.modal.empty.heading\":\"Geen bibliotheken\",\"libraries.modal.empty.description\":\"Je organisatie heeft geen bibliotheken gedeeld\",\"libraries.modal.error.limitExceeded\":\"Kan bibliotheek niet toevoegen\",\"libraries.modal.error.limitExceeded.detail\":\"Je kunt maximaal 100 bibliotheken aan een project toevoegen. Verwijder enkele bibliotheken als je er meer wilt toevoegen.\",\"libraries.brokenResources\":\"Sommige bibliotheken worden niet weergegeven omdat je geen toegang hebt. Neem contact op met andere leden voor meer informatie.\",\"copy.start\":\"{count, plural, =1 {# item} other {# items}} kopiëren\",\"copy.failure\":\"Kan {count, plural, =1 {# item} other {# items}} niet kopiëren\",\"copy.failure.partial\":\"Kan sommige items niet kopiëren\",\"copy.success\":\"{count, plural, =1 {# item} other {# items}} gekopieerd\",\"copy.conflictSuffix\":\"kopie\",\"move.start\":\"{count, plural, =1 {# item} other {# items}} verplaatsen\",\"move.failure\":\"Kan {count, plural, =1 {# item} other {# items}} niet verplaatsen\",\"move.failure.partial\":\"Kan sommige items niet verplaatsen\",\"move.success\":\"{count, plural, =1 {# item} other {# items}} verplaatst\",\"upload.start\":\"{count, plural, =1 {# item} other {# items}} uploaden\",\"upload.failure\":\"Kan {count, plural, =1 {# item} other {# items}} niet uploaden\",\"upload.failure.partial\":\"Kan sommige items niet uploaden\",\"upload.failure.snapshot\":\"Dit item wordt niet ondersteund\",\"upload.success\":\"{count, plural, =1 {# item} other {# items}} geüpload\",\"download.start\":\"{count, plural, =1 {# item} other {# items}} downloaden\",\"download.failure\":\"Kan {count, plural, =1 {# item} other {# items}} niet downloaden\",\"download.failure.partial\":\"Kan sommige items niet downloaden\",\"download.success\":\"{count, plural, =1 {# item} other {# items}} gedownload\",\"delete.failure\":\"Kan {count, plural, =1 {# item} other {# items}} niet verwijderen\",\"delete.failure.partial\":\"Kan sommige items niet verwijderen\",\"delete.success\":\"{count, plural, =1 {# item} other {# items}} verwijderd\",\"jobs.failure\":\"{count, plural, =1 {# item} other {# items}} mislukt\",\"jobs.inProgress\":\"In behandeling...\",\"jobs.success\":\"{count, plural, =1 {# item} other {# items}} voltooid\",\"restore.failure\":\"Kan {count, plural, =1 {# item} other {# items}} niet herstellen\",\"restore.failure.partial\":\"Kan sommige items niet herstellen\",\"restore.success\":\"{count, plural, =1 {# item} other {# items}} hersteld\",\"rename.start\":\"Naam wijzigen\",\"rename.success\":\"Naam van {count, plural, =1 {# item} other {# items}} gewijzigd\",\"rename.failure\":\"Serverfout, kan de naam niet wijzigen.\",\"rename.failure.conflict\":\"Je hebt hier al een item met deze naam\",\"rename.offline.heading\":\"Kan naam niet wijzigen\",\"rename.offline\":\"Je bent offline en kunt de naam van het item niet wijzigen. Ga weer online om deze bewerking uit te voeren.\",\"bookmark.follow.error\":\"Kan dit project niet instellen als favoriet\",\"bookmark.unfollow.error\":\"Kan dit project niet verwijderen als favoriet\",\"bookmark.follow.success\":\"{projectName} is toegevoegd als favoriet\",\"bookmark.unfollow.success\":\"{projectName} is verwijderd als favoriet\",\"bookmark.bulk.follow.success\":\"{count, plural, =1 {# item is} other {# items zijn}} ingesteld als favoriet\",\"bookmark.bulk.follow.partial\":\"Kan sommige items niet instellen als favoriet\",\"bookmark.bulk.follow.error\":\"Kan {count, plural, =1 {# item} other {# items}} niet instellen als favoriet\",\"bookmark.bulk.unfollow.success\":\"{count, plural, =1 {# item is} other {# items zijn}} verwijderd als favoriet\",\"bookmark.bulk.unfollow.partial\":\"Kan sommige items niet verwijderen als favoriet\",\"bookmark.bulk.unfollow.error\":\"Kan {count, plural, =1 {# item} other {# items}} niet verwijderen als favoriet\",\"copyLink.success\":\"Koppeling gekopieerd naar klembord\",\"copyLink.failure\":\"Kan koppeling niet kopiëren\",\"starterUser.project1upNavigation\":\"Met je startlidmaatschap kun je geen documenten in projecten openen\",\"starterUser.project1upNavigationCDPSave\":\"Je startlidmaatschap biedt niet de mogelijkheid om documenten in projecten op te slaan\",\"invite.failure\":\"Kan uitnodigingen niet verzenden. Probeer het opnieuw.\",\"accessibility.backButton\":\"Vorige\",\"button.role\":\"Knop\",\"button.actions\":\"Handelingen\",\"button.add\":\"Toevoegen\",\"button.addFiles\":\"Bestanden toevoegen\",\"button.addLibrary\":\"Bibliotheek toevoegen\",\"button.createDocument\":\"Nieuw {appName}-bestand\",\"button.library\":\"Bibliotheek\",\"button.back\":\"Terug\",\"button.browse\":\"Alles weergeven\",\"button.cancel\":\"Annuleren\",\"button.okay\":\"OK\",\"button.canvas\":\"Canvas\",\"button.addCanvas\":\"Nieuw canvas\",\"button.changeDefaultApp\":\"Standaardapplicatie wijzigen...\",\"button.close\":\"Sluiten\",\"button.continue\":\"Doorgaan\",\"button.copy\":\"Kopiëren naar...\",\"button.copyLink\":\"Koppeling kopiëren\",\"button.create\":\"Maken\",\"button.createNewFolder\":\"Nieuwe map maken\",\"button.newFile\":\"Nieuw bestand\",\"button.newFolder\":\"Nieuwe map\",\"button.delete\":\"Verwijderen\",\"button.deleteResource\":\"Verwijderen\",\"button.done\":\"Gereed\",\"button.download\":\"Downloaden\",\"button.favorite\":\"Favoriet toevoegen\",\"button.follow\":\"Volgen\",\"button.invite\":\"Uitnodigen\",\"button.inviteLabel\":\"Personen uitnodigen\",\"button.leave\":\"Verlaten\",\"button.leaveProject\":\"Werkruimte verlaten\",\"button.move\":\"Verplaatsen naar...\",\"button.next\":\"Volgende\",\"button.ok\":\"OK\",\"button.open\":\"Openen\",\"button.openWith\":\"Openen met\",\"button.open.appName\":\"{appName} {isDefault, select, true {(standaard)} other {}}\",\"button.redo\":\"Opnieuw proberen\",\"button.reload\":\"Opnieuw laden\",\"button.rename\":\"Naam wijzigen\",\"button.restore\":\"Herstellen\",\"button.retry\":\"Opnieuw\",\"button.save\":\"Opslaan\",\"button.select\":\"Selecteren\",\"button.share\":\"Delen\",\"button.skipTour\":\"Rondleiding overslaan\",\"button.undo\":\"Ongedaan maken\",\"button.unfavorite\":\"Favoriet verwijderen\",\"button.unfollow\":\"Niet meer volgen\",\"button.update\":\"Bijwerken\",\"button.upgrade\":\"Upgrade\",\"button.view\":\"Alles tonen\",\"button.viewProject\":\"Project weergeven\",\"button.viewTarget\":\"Weergeven\",\"button.createWeblink\":\"Webkoppeling toevoegen\",\"button.leaveTeam\":\"Werkruimte verlaten\",\"button.renameTeam\":\"Naam van werkruimte wijzigen\",\"button.editTeam\":\"Informatie over werkruimte bewerken\",\"button.archiveTeam\":\"Werkruimte verwijderen\",\"button.upload\":\"Bestanden uploaden\",\"button.goToDeleted\":\"Bekijken in Verwijderd\",\"button.viewEverything\":\"Alles weergeven\",\"button.viewInWeb\":\"Weergeven in browser\",\"abbreviations.fileSize.byte\":\"B\",\"abbreviations.fileSize.kilobyte\":\"KB\",\"abbreviations.fileSize.megabyte\":\"MB\",\"abbreviations.fileSize.gigabyte\":\"GB\",\"abbreviations.fileSize.terabyte\":\"TB\",\"statusIcon.conflicted\":\"Synchronisatie- conflict\",\"statusIcon.onlineOnly\":\"Alleen online\",\"statusIcon.availableOffline\":\"Offline beschikbaar\",\"statusIcon.syncing\":\"Synchroniseren...\",\"statusIcon.waitingToSync\":\"Wachten op synchronisatie\",\"statusMessage.offline.description\":\"Maak opnieuw verbinding om toegang te krijgen tot al je werkruimten en projecten. Ga naar de startpagina om lokale bestanden uit je projecten te bekijken.\",\"statusMessage.offline.heading\":\"De verbinding is verbroken\",\"statusMessage.offline.toast\":\"De verbinding is verbroken, waardoor sommige functies en bestanden mogelijk niet beschikbaar zijn.\",\"toggle.listView\":\"Lijstweergave\",\"toggle.gridView\":\"Miniatuurweergave\",\"color.fuchsia\":\"Fuchsia\",\"color.indigo\":\"Indigo\",\"color.celery\":\"Lichtgroen\",\"color.magenta\":\"Magenta\",\"color.yellow\":\"Geel\",\"color.seafoam\":\"Zeegroen\",\"color.chartreuse\":\"Geelgroen\",\"color.purple\":\"Paars\",\"color.blue\":\"Blauw\",\"color.red\":\"Rood\",\"color.orange\":\"Oranje\",\"color.green\":\"Groen\",\"color.label\":\"Projectkleur\",\"tooltip.offline.general\":\"Ga weer online om deze actie uit te voeren\",\"tooltip.moreFaces\":\"+ nog {number}\",\"action.leave.space.success\":\"Je hebt {count, plural, =1 {# project} other {# projecten}} afgesloten\",\"action.leave.prototype.success\":\"Toegang tot {count, plural, =1 {# prototype} other {# prototypen}} verwijderd\",\"action.leave.file.success\":\"Toegang tot {count, plural, =1 {# bestand} other {# bestanden}} verwijderd\",\"action.leave.canvas.success\":\"Toegang tot {count, plural, =1 {# canvas} other {# canvassen} verwijderd\",\"action.leave.team.success\":\"Je hebt 1 werkruimte verlaten\",\"action.leave.space.error\":\"Kan dit project niet verlaten\",\"action.leave.prototype.error\":\"Je kunt dit prototype niet verlaten\",\"action.leave.file.error\":\"Kan dit bestand niet afsluiten\",\"action.leave.team.error\":\"Je kunt deze werkruimte niet verlaten\",\"action.leave.canvas.error\":\"Je kunt dit canvas niet verlaten\",\"action.leave.space.partial.error\":\"Kan niet alle project afsluiten\",\"action.leave.prototype.partial.error\":\"Kan niet alle prototypen verlaten\",\"action.leave.file.partial.error\":\"Kan niet alle bestanden afsluiten\",\"action.leave.canvas.partial.error\":\"Kan niet alle canvassen afsluiten\",\"action.leave.error.onlyContributor\":\"Je bent het enige lid. Voeg nog een lid toe voordat je vertrekt.\",\"action.leave.error.addressBookGroupMember\":\"Verlaat de groep en probeer het opnieuw.\",\"action.leave.error.admin\":\"Je kunt dit niet verlaten omdat je een beheerder bent.\",\"action.leave.error.generic\":\"Je kunt dit niet verlaten omdat er iets is misgegaan.\",\"action.reportAbuse\":\"Misbruik melden\",\"action.reportAbuse.required\":\"Vereist\",\"action.reportAbuse.titleText\":\"Als je van mening bent dat deze Creative Cloud-inhoud de gebruiksvoorwaarden van Adobe schendt, kun je deze inhoud melden door dit korte formulier in te vullen.\",\"action.reportAbuse.emailInput\":\"Je e-mailadres\",\"action.reportAbuse.nameInput\":\"Je naam\",\"action.reportAbuse.radioButtonText\":\"Waarom meld je deze inhoud?\",\"action.reportAbuse.defamation\":\"Laster\",\"action.reportAbuse.hate\":\"Racistische of haatdragende inhoud\",\"action.reportAbuse.trademark\":\"Handelsmerkschending\",\"action.reportAbuse.pornography\":\"Seksueel expliciete inhoud\",\"action.reportAbuse.vulgar\":\"Aanstootgevende inhoud\",\"action.reportAbuse.other\":\"Anders\",\"action.reportAbuse.inappropriate\":\"Ongepast\",\"action.reportAbuse.age\":\"Onjuiste leeftijdsaanduiding\",\"action.reportAbuse.gender\":\"Onjuiste geslachtsaanduiding\",\"action.reportAbuse.textAreaTitle\":\"Geef een beschrijving van het probleem\",\"action.reportAbuse.describeConcern\":\"Beschrijf het probleem\",\"action.reportAbuse.success\":\"Misbruik is gemeld\",\"action.reportAbuse.failure\":\"Misbruik kan niet worden gemeld\",\"action.menu.label\":\"Menu Handeling\",\"action.label\":\"Handeling\",\"dialog.genericError.description\":\"Er is iets fout gegaan.\",\"dialog.genericError.title\":\"Onverwachte fout\",\"dialog.leave.space.title\":\"{count, plural, =1 {{name}} other {Projecten}} verlaten\",\"dialog.leave.prototype.title\":\"Sluit {count, plural, =1 {dit prototype} other {prototypen}} af\",\"dialog.leave.file.title\":\"Sluit {count, plural, =1 {dit bestand} other {bestanden}} af\",\"dialog.leave.canvas.title\":\"Sluit {count, plural, =1 {dit canvas} other {canvassen}} af\",\"dialog.leave.team.title\":\"Ga je weg?\",\"dialog.leave.team.detail\":\"Je kunt dit niet ongedaan maken als je jezelf verwijdert. Neem contact op met een beheerder als je weer aan deze werkruimte wilt worden toegevoegd.\",\"dialog.leave.space.detail\":\"Je hebt geen toegang meer tot items in dit project waarvan je niet de eigenaar bent. Als je '{projectName}' verlaat, kan dit niet ongedaan worden gemaakt.\",\"dialog.leave.prototype.detail\":\"Je hebt geen toegang meer zonder een nieuwe uitnodiging.\",\"dialog.leave.file.detail\":\"Je hebt geen toegang meer zonder een nieuwe uitnodiging.\",\"dialog.leave.canvas.detail\":\"Je hebt geen toegang meer zonder een nieuwe uitnodiging.\",\"dialog.leave.detail\":\"{type, select, space {Je raakt de toegang kwijt tot alle items waarvan je niet de eigenaar bent in {count, plural, =1 {dit project} other {deze projecten}}. Als je {count, plural, =1 {'{name}'} other {deze projecten}} verlaat, kan dit niet ongedaan worden gemaakt.} other {Je hebt {count, plural, =1 {er} other {er}} geen toegang meer toe zonder een nieuwe uitnodiging{count, plural, =1 {.} other {:}}}}\",\"dialog.deleteFailed.title\":\"Kan niet alle items verwijderen\",\"dialog.deleteWarning.description\":\"{type, select, spaces {Hiermee wordt de inhoud verwijderd voor alle leden van deze projecten:} other {Hiermee wordt het volgende verwijderd voor alle leden van dit project:}}\",\"dialog.deleteWarning.title\":\"{type, select, space {{count} {count, plural, =1 {Project} other {Projecten}} verwijderen} other {{count} {count, plural, =1 {Item} other {Items}} verwijderen}}\",\"dialog.deleteFailed.description.unauthorized\":\"Kan dit niet verwijderen omdat je uit het project bent verwijderd:\",\"dialog.deleteFailed.description.alreadyDeleted\":\"Kan dit item niet verwijderen omdat iemand anders het al heeft verwijderd:\",\"dialog.deleteFailed.description.unknown\":\"Kan dit niet verwijderen omdat er iets mis is gegaan:\",\"dialog.cantCopyAllItems\":\"Kan niet alle items kopiëren\",\"dialog.cantCopyBecauseSomethingWentWrong\":\"Kan dit niet kopiëren omdat er iets mis is gegaan:\",\"dialog.cantCopyBecauseYouWereSignedOut\":\"Kan niet kopiëren omdat je bent afgemeld:\",\"dialog.cantCopyBecauseYouWereRemoved\":\"Kan dit niet kopiëren omdat je uit dit project bent verwijderd:\",\"dialog.cantCopyBecauseItemWasDeleted\":\"Kan dit item niet kopiëren omdat iemand anders het heeft verwijderd:\",\"dialog.cantCopyBecauseItemExists\":\"Kan dit item niet kopiëren omdat het al bestaat waar je het naartoe wilt kopiëren:\",\"dialog.cantMoveAllItems\":\"Kan niet alle items verplaatsen\",\"dialog.cantMoveBecauseSomethingWentWrong\":\"Kan dit niet verplaatsen omdat er iets mis is gegaan:\",\"dialog.cantMoveBecauseYouWereSignedOut\":\"Kan niet verplaatsen omdat je bent afgemeld:\",\"dialog.cantMoveBecauseYouWereRemoved\":\"Kan dit niet verplaatsen omdat je uit dit project bent verwijderd:\",\"dialog.cantMoveBecauseItemWasDeleted\":\"Kan dit item niet verplaatsen omdat iemand anders het heeft verwijderd:\",\"dialog.cantMoveBecauseItemExists\":\"Kan dit item niet verplaatsen omdat het al bestaat waar je het naartoe wilt verplaatsen:\",\"dialog.createFolder.error\":\"Serverfout, kan map niet opslaan\",\"dialog.createFolder.nameConflict\":\"Je hebt al een map met deze naam.\",\"dialog.createFolder.placeholder\":\"Mapnaam\",\"dialog.createFolder.title\":\"Map maken\",\"dialog.createFolder.success\":\"Map is gemaakt\",\"dialog.createWeblink.error\":\"Niet-ondersteunde URL\",\"dialog.createWeblink.tooManyRequests\":\"Onverwachte netwerkfout. Probeer het opnieuw.\",\"dialog.createWeblink.success\":\"1 item toegevoegd\",\"dialog.createWeblink.nameConflict\":\"Deze titel bestaat al\",\"dialog.createWeblink.name.placeholder\":\"Voer een naam in voor deze koppeling\",\"dialog.createWeblink.link.placeholder\":\"https://\",\"dialog.createWeblink.name\":\"Aangepaste titel\",\"dialog.createWeblink.link\":\"Koppeling\",\"dialog.createWeblink.title\":\"Een webkoppeling maken\",\"app.type.webLink\":\"WEBKOPPELING\",\"dialog.createCanvas.error\":\"Kan geen canvas maken\",\"dialog.move.title\":\"Verplaatsen naar project {projectName}\",\"dialog.move.detail\":\"Als je dit item verplaatst, hebben mogelijk andere personen toegang tot dit item.\",\"moveToTeam.confirm.title\":\"Verplaatsen naar werkruimte {name}\",\"moveToTeam.confirm.message\":\"Als je je projecten hier naartoe verplaatst, verander je wie er toegang toe hebben. Je projecten zijn toegankelijk voor iedereen die toegang heeft tot je werkruimte.\",\"moveToTeam.disabled.differentOrg.tooltip.message\":\"Je kunt projecten niet verplaatsen naar een werkruimte in een andere organisatie.\",\"moveToSpace.disabled.differentOrg.tooltip.message\":\"Je kunt items niet verplaatsen naar een project in een andere organisatie.\",\"moveToTeam.success\":\"Je hebt {count, plural, =1 {# project} other {# projecten}} verplaatst naar de werkruimte {name}\",\"confirmationDialog.dontShowAgain\":\"Niet meer tonen\",\"dialog.open.title\":\"Openen op het web\",\"dialog.open.detail\":\"Je kunt dit bestand niet openen in {appName}, maar je kunt het wel bekijken in een browser.\",\"dialog.renameTeam.title\":\"Naam van werkruimte wijzigen\",\"dialog.renameTeam.placeholder\":\"Voer een naam in voor deze werkruimte\",\"dialog.renameTeam.error\":\"Er is iets fout gegaan.\",\"dialog.renameTeam.nameConflict\":\"Deze naam bestaat al\",\"dialog.archiveTeam.title\":\"Deze werkruimte verwijderen?\",\"dialog.archiveTeam.detail\":\"Je kunt dit niet ongedaan maken als je jezelf verwijdert. Neem contact op met een beheerder als je opnieuw lid wilt worden van deze werkruimte.\",\"dialog.saveToCloud.title\":\"Bestand(en) opgeslagen in Creative Cloud\",\"dialog.saveToCloud.detail\":\"Je clouddocument biedt nu een versiegeschiedenis, je kunt anderen uitnodigen en samenwerken, het is direct toegankelijk op andere apparaten en meer. Je vindt het hier en in je Creative Cloud-apps.\",\"input.invalidCharInput\":\"Naam mag geen van de volgende tekens bevatten: \\\\\\\\ / * ? \\\" | :\",\"input.invalidEmptyInput\":\"{names, select, true {Namen} other {Titels}} mogen niet leeg zijn\",\"input.nameTooLong\":\"{names, select, true {Namen} other {Titels}} mogen niet meer dan {maxLength} tekens bevatten\",\"input.nameEndsWithDot\":\"{names, select, true {Namen} other {Titels}} mogen niet eindigen op een punt\",\"input.weblink.nameRestricted\":\"Webkoppelingen mogen niet de volgende titels hebben: 'con', 'prn', 'aux', 'nul', 'com#', 'lpt#'\",\"input.nameRestricted\":\"Assets mogen niet de volgende namen hebben: con/prn/aux/nul/com#/lpt#\",\"input.weblink.invalidCharInput\":\"Titels mogen niet alleen uit spaties bestaan en mogen geen van de volgende tekens bevatten: \\\\\\\\ / * ? \\\" | : < > \",\"input.name.invalidCharInput\":\"Namen mogen niet alleen uit spaties bestaan en mogen geen van de volgende tekens bevatten: \\\\\\\\ / * ? \\\" | : < > \",\"cdpFooter.orphanedArtifactsWarning\":\"Gepubliceerde koppelingen naar items die je verplaatst, blijven in het oorspronkelijke project\",\"cdpFooter.libraryPrivacyWarning\":\"Als je machtigingen voor opnieuw delen hebt voor een bibliotheek die je toevoegt, kunnen leden van het project dit bekijken\",\"toast.beforeOp.error.documentIsOpen\":\"Sluit {count, plural, =1 {het document} other {de documenten}} als je deze handeling wilt uitvoeren.\",\"app.type.designSpecs\":\"ONTWERPSPECIFICATIES\",\"app.type.prototype\":\"PROTOTYPE\",\"app.type.publishedLink\":\"GEPUBLICEERDE KOPPELING\",\"popover.header\":\"Werk samen met anderen aan een project en deel je werk om feedback te krijgen.\",\"popover.linkout\":\"Meer informatie\",\"team.libraries.filter.all\":\"Alle\",\"team.libraries.filter.addedToYourLibraries\":\"Toegevoegd aan jouw bibliotheken\",\"team.libraries.filter.notAdded\":\"Niet toegevoegd\",\"team.spaces.filter.all\":\"Alles\",\"team.spaces.filter.favorited\":\"Favoriet\",\"team.filter.empty.heading\":\"Er zijn geen projecten die overeenkomen met het geselecteerde filter\",\"team.filter.empty.description1\":\"We kunnen geen resultaten vinden voor \",\"team.filter.empty.description2\":\" in deze lijst. Controleer de spelling of gebruik andere zoektermen.\",\"team.filter.no.match.description\":\"We kunnen geen resultaten vinden in deze lijst. Controleer de spelling of gebruik andere filtercriteria.\",\"team.filter.filterText\":\"{filter}\",\"team.header.other.teams\":\"Andere werkruimten\",\"space.empty.heading\":\"Alles op één plek, iedereen op één lijn\",\"space.empty.description\":\"Vul dit project met werkbestanden en bijhorende materialen. Nodig medewerkers uit om mee te doen en dingen toe te voegen waar ze aan werken.\",\"space.empty.canvasHeading\":\"CREATIVE CLOUD CANVAS\",\"space.empty.actionsHeading\":\"VOEG INHOUD TOE AAN JE PROJECT\",\"space.empty.createCanvas\":\"Nieuw canvas\",\"space.empty.upload\":\"Bestanden toevoegen\",\"space.empty.createFolder\":\"Nieuwe map\",\"space.empty.createWeblink\":\"Webkoppelingen\",\"space.empty.addResource\":\"Bibliotheek\",\"folder.empty.heading\":\"Deze map is leeg.\",\"folder.empty.description\":\"Voeg bestanden toe om de map te vullen.\",\"folder.discard.heading\":\"Deze map is verwijderd.\",\"folder.discard.description\":\"Neem contact op met je beheerder als je denkt dat dit een fout is of blader door andere content.\",\"folder.error.description\":\"Er is een probleem met het laden van inhoud uit deze map.\",\"space.empty.section.createACanvas\":\"Canvas maken\",\"tooltip.opensInBrowser\":\"Wordt geopend in de browser\",\"space.empty.workingFiles\":\"Voeg meer toe aan dit project\",\"space.empty.canvasPopoverTitle\":\"Probeer Creative Cloud Canvas (Beta)\",\"space.empty.canvasPopoverContent\":\"Gebruik canvassen om creatief werk vorm te geven, te visualiseren en te beoordelen.\",\"space.error.heading\":\"Kan project niet laden\",\"space.error.description\":\"Er is een probleem met het laden van inhoud uit dit project.\",\"createTeamWizard.createTeam.sidebarHeading\":\"Een werkruimte maken\",\"createTeamWizard.createTeam.sidebarCopy\":\"Maak een werkruimte om iedereen georganiseerd en op één lijn te houden.\",\"createTeamWizard.createTeam.sidebarCopy.adminconsole\":\"Creëer een plek waar je team kan samenwerken en bestanden kan delen.\",\"createTeamWizard.createTeam.sidebarLink\":\"Lees meer\",\"createTeamWizard.createTeam.contentHeading\":\"Nieuwe werkruimte\",\"createTeamWizard.createTeam.loading\":\"De werkruimte '{name}' wordt gemaakt\",\"createTeamWizard.inviteMembers.sidebarHeading\":\"Leden uitnodigen voor de werkruimte '{name}'\",\"createTeamWizard.inviteMembers.sidebarCopy\":\"Begin een naam of e-mailadres te typen om nu leden uit te nodigen of sla deze stap over en nodig ze later uit.\",\"createTeamWizard.inviteMembers.loading\":\"Leden uitnodigen voor de werkruimte '{name}'\",\"createTeamWizard.inviteMembers.contentHeading\":\"Leden uitnodigen\",\"createTeamWizard.inviteMembers.successToast\":\"Leden zijn toegevoegd aan de nieuwe werkruimte\",\"createTeamWizard.progress\":\"Stap {current} van {total}\",\"createTeamWizard.skipStep\":\"Overslaan\",\"teamDialog.createTeam.label\":\"Een werkruimte maken\",\"teamDialog.createTeam.infoBox.description\":\"De werkruimte die je maakt, is alleen op uitnodiging en iedereen die wordt toegevoegd, heeft standaard bewerkingsrechten.\",\"teamDialog.editTeam.label\":\"Werkruimte bewerken\",\"teamDialog.nameSection.placeholder\":\"Geef je nieuwe werkruimte een naam\",\"teamDialog.nameSection.label\":\"Naam van werkruimte\",\"teamDialog.permissionsSection.label\":\"Wie kan deze werkruimte bewerken\",\"teamDialog.permissionsSection.option.onlyInvited\":\"Alleen uitgenodigde personen\",\"teamDialog.descriptionSection.label\":\"Beschrijving van werkruimte (optioneel)\",\"teamDialog.descriptionSection.placeholder\":\"Voeg een paar woorden toe over je werkruimte\",\"teamsSidebar.noTeams\":\"Geen werkruimten\",\"teamsSidebar.newTeamButton\":\"Een werkruimte maken\",\"teamsSidebar.adminTour.title\":\"Nieuw! Werkruimten maken\",\"teamsSidebar.adminTour.content\":\"Beheerders kunnen nu werkruimten maken in Creative Cloud op het web, waardoor het gemakkelijker wordt om werk te delen en te organiseren.\",\"teamsSidebarTeam.newSpaceButton\":\"Nieuw project\",\"teamsSidebarTeam.header.newBadge\":\"NIEUW\",\"teamsSidebarTeam.header.otherTeams\":\"Uit andere werkruimten\",\"teamsSidebarTeam.header.teams\":\"WERKRUIMTEN\",\"teamsSidebarTeam.header.previewLabel\":\"(Voorvertoning)\",\"teamsSidebarTeam.header.previewCopy\":\"Werkruimten en projecten zijn beschikbaar in een privébèta.\",\"teamsSidebarTeam.header.previewLearnMoreText\":\"Meer informatie\",\"teamsSidebarTeam.message.loading\":\"Laden...\",\"teamsSidebarTeam.message.noSpaces\":\"Je hebt geen werkruimten of projecten.\",\"teamsSidebarTeam.message.offline\":\"De verbinding is verbroken. Maak opnieuw verbinding om je werkruimten en projecten weer te geven.\",\"teamsSidebarTeam.message.error\":\"Er is een probleem opgetreden bij het laden van je werkruimten en projecten.\",\"teams1up.error.description\":\"Er is een probleem met het laden van je projecten.\",\"teams1up.error.heading\":\"Kan projecten niet laden\",\"otherTeams.emptyMessage.header\":\"Kan werkruimtepagina niet weergeven\",\"otherTeams.emptyMessage.description1\":\"Je bent verwijderd uit het laatste project of hebt dit verlaten via het gedeelte \",\"otherTeams.emptyMessage.description2\":\" . Neem contact op met je beheerder als je denkt dat dit een fout is.\",\"spaceTour.step0.title\":\"Je projecten staan hier\",\"spaceTour.step0.content\":\"Met projecten kunnen teams beter samenwerken en bestanden en bronnen verzamelen, ordenen en delen.\",\"spaceTour.step1.title\":\"Voeg alles toe wat je nodig hebt voor een project\",\"spaceTour.step1.content\":\"Breng werkbestanden, referentie-afbeeldingen, bronnen en meer samen onder één dak.\",\"spaceTour.step2.title\":\"Machtigingen instellen (en vergeten)\",\"spaceTour.step2.content\":\"Wijs de juiste toegangsrechten toe aan medewerkers wanneer je ze uitnodigt om zo tijd en moeite te besparen. Stuur alleen-lezen pakketten naar belanghebbenden voor beoordeling en feedback.\",\"error.cantCreateSpace\":\"Opslag van werkruimte is vol\",\"error.exceedQuota.create.detail.description1\":\"Je kunt nu niets nieuws maken. Selecteer \",\"error.exceedQuota.description2\":\" om opslagruimte vrij te maken.\",\"error.exceedQuota.add.detail.description1\":\"Je kunt nu niets nieuws toevoegen. Selecteer \",\"error.move.generic\":\"Kan dit niet verplaatsen omdat er iets mis is gegaan\",\"error.move.signedOut\":\"Kan niet verplaatsen omdat je bent afgemeld\",\"error.move.permissionRevoked\":\"Kan dit niet verplaatsen omdat je uit dit project bent verwijderd\",\"error.move.deleted\":\"Kan dit item niet verplaatsen omdat iemand anders het heeft verwijderd\",\"error.move.duplicate\":\"Kan dit item niet verplaatsen omdat het al bestaat waar je het naartoe wilt verplaatsen\",\"error.copy.generic\":\"Kan dit niet kopiëren omdat er iets mis is gegaan\",\"error.copy.signedOut\":\"Kan niet kopiëren omdat je bent afgemeld\",\"error.copy.permissionRevoked\":\"Kan dit niet kopiëren omdat je uit dit project bent verwijderd\",\"error.copy.deleted\":\"Kan dit item niet kopiëren omdat iemand anders het heeft verwijderd\",\"error.copy.duplicate\":\"Kan dit item niet kopiëren omdat het al bestaat waar je het naartoe wilt kopiëren\",\"checkbox.select\":\"Selecteren\",\"listItem.fileSize\":\"Bestandsgrootte\",\"facepile.additionalMembers\":\"Extra leden +{count}\",\"facepile.memberName\":\"{name}, lid\",\"coachmark.information\":\"informatie\",\"toolbar.tools\":\"tools\",\"griditem.error.message\":\"Kan niet worden opgehaald\",\"griditem.error.button\":\"Opnieuw\",\"ats.move.extendedNotification\":\"Je ontvangt een melding wanneer de verplaatsing is voltooid.\",\"file.deleted.error.heading\":\"Kan bestand niet {operation}\",\"file.deleted.error.description\":\"Je kunt dit bestand niet {operation} omdat het bestand is verwijderd. Herstel het vanuit verwijderd en probeer het opnieuw of kies een andere locatie.\",\"file.deleted.rename.error.description\":\"Je kunt de naam van dit bestand niet wijzigen omdat het bestand is verwijderd. Selecteer Ga naar verwijderd om het bestand te herstellen.\"}");

/***/ }),

/***/ "P7XM":
/***/ (function(module, exports) {

if (typeof Object.create === 'function') {
  // implementation from standard node.js 'util' module
  module.exports = function inherits(ctor, superCtor) {
    if (superCtor) {
      ctor.super_ = superCtor;
      ctor.prototype = Object.create(superCtor.prototype, {
        constructor: {
          value: ctor,
          enumerable: false,
          writable: true,
          configurable: true
        }
      });
    }
  };
} else {
  // old school shim for old browsers
  module.exports = function inherits(ctor, superCtor) {
    if (superCtor) {
      ctor.super_ = superCtor;

      var TempCtor = function () {};

      TempCtor.prototype = superCtor.prototype;
      ctor.prototype = new TempCtor();
      ctor.prototype.constructor = ctor;
    }
  };
}

/***/ }),

/***/ "PAmL":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

const _excluded = ["styles"];

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }

function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

var _default = _ref => {
  let {
    styles = {}
  } = _ref,
      props = _objectWithoutProperties(_ref, _excluded);

  return /*#__PURE__*/_react.default.createElement("svg", _extends({
    xmlns: "http://www.w3.org/2000/svg",
    "data-name": "S_Illu_PresetPostcard_172_L@2x",
    height: "344",
    viewBox: "0 0 344 344",
    width: "344"
  }, props), /*#__PURE__*/_react.default.createElement("path", {
    d: "M200.688 124a10.65 10.65 0 0 1 7.512 3.1l18.882 18.991a9.891 9.891 0 0 1 2.918 7.002V215.3a8.864 8.864 0 0 1-9 8.7H111a8.864 8.864 0 0 1-9-8.7v-82.6a8.864 8.864 0 0 1 9-8.7zm0-6H111a14.87 14.87 0 0 0-15 14.7v82.6a14.869 14.869 0 0 0 15 14.7h110a14.869 14.869 0 0 0 15-14.7v-62.207a15.855 15.855 0 0 0-4.662-11.236l-18.884-18.992A16.683 16.683 0 0 0 200.688 118z",
    fill: "#b3b3b3"
  }));
};

exports.default = _default;

/***/ }),

/***/ "PAs4":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("path", {
  d: "M32 22v22a2 2 0 0 1-2 2H18a2 2 0 0 1-2-2V22H7.481a1 1 0 0 1-.707-1.707L24 3.067l17.226 17.226A1 1 0 0 1 40.519 22z"
}));

/***/ }),

/***/ "PBE1":
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// https://github.com/tc39/proposal-promise-finally


var $export = __webpack_require__("Y7ZC");

var core = __webpack_require__("WEpk");

var global = __webpack_require__("5T2Y");

var speciesConstructor = __webpack_require__("8gHz");

var promiseResolve = __webpack_require__("zXhZ");

$export($export.P + $export.R, 'Promise', {
  'finally': function (onFinally) {
    var C = speciesConstructor(this, core.Promise || global.Promise);
    var isFunction = typeof onFinally == 'function';
    return this.then(isFunction ? function (x) {
      return promiseResolve(C, onFinally()).then(function () {
        return x;
      });
    } : onFinally, isFunction ? function (e) {
      return promiseResolve(C, onFinally()).then(function () {
        throw e;
      });
    } : onFinally);
  }
});

/***/ }),

/***/ "PBY+":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = focusRing;
exports.FOCUS_RING_CLASSNAME = void 0;

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

var _reactDom = _interopRequireDefault(__webpack_require__("i8i4"));

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}
/*************************************************************************
* ADOBE CONFIDENTIAL
* ___________________
*
* Copyright 2019 Adobe
* All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains
* the property of Adobe and its suppliers, if any. The intellectual
* and technical concepts contained herein are proprietary to Adobe
* and its suppliers and are protected by all applicable intellectual
* property laws, including trade secret and copyright laws.
* Dissemination of this information or reproduction of this material
* is strictly forbidden unless prior written permission is obtained
* from Adobe.
**************************************************************************/


const FOCUS_RING_CLASSNAME = 'focus-ring';
/**
 * This is a decorator that ensures a focus-ring className set by the focus-ring-polyfill
 * is retained when a focused component is rendered following a state change.
*/

exports.FOCUS_RING_CLASSNAME = FOCUS_RING_CLASSNAME;

function focusRing(WrappedComponent) {
  const proto = WrappedComponent.prototype;
  const UNSAFE_componentWillUpdate = proto.UNSAFE_componentWillUpdate;
  const componentDidUpdate = proto.componentDidUpdate;
  let elementWithFocusRing = null;

  proto.UNSAFE_componentWillUpdate = function (props, state) {
    // call original method
    if (UNSAFE_componentWillUpdate) {
      UNSAFE_componentWillUpdate.apply(this, arguments);
    }

    if (elementWithFocusRing == null || elementWithFocusRing !== document.activeElement) {
      try {
        const node = _reactDom.default.findDOMNode(this);

        elementWithFocusRing = node.parentNode.querySelector('.' + FOCUS_RING_CLASSNAME);
      } catch (error) {// do nothing if component is not mounted
      }
    }
  };

  proto.componentDidUpdate = function (props, state) {
    // call original method
    if (componentDidUpdate) {
      componentDidUpdate.apply(this, arguments);
    }

    try {
      const node = _reactDom.default.findDOMNode(this);

      if (elementWithFocusRing && (document.activeElement === elementWithFocusRing || node.contains(document.activeElement)) && !elementWithFocusRing.classList.contains(FOCUS_RING_CLASSNAME)) {
        document.activeElement.classList.add(FOCUS_RING_CLASSNAME);
        elementWithFocusRing = null;
      }
    } catch (error) {// do nothing if component is not mounted
    }
  };
}

/***/ }),

/***/ "PFhU":
/***/ (function(module, exports) {

/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
module.exports = {
  'ccd.infoPanel.detail.created': 'Opprettet',
  'ccd.infoPanel.detail.modified': 'Endret',
  'ccd.infoPanel.detail.size': 'Størrelse',
  'ccd.infoPanel.detail.shared': 'Delt',
  'ccd.header.renameFolder': 'Gi nytt navn til mappe',
  'ccd.menu.addToFavourites': 'Legg til i Snarveier',
  'ccd.menu.removeFromFavourites': 'Fjern snarvei',
  'ccd.menu.viewonweb': 'Vis på nettet',
  'ccd.menu.share': 'Del',
  'ccd.menu.openWith': 'Åpne i',
  'ccd.menu.changeDefaultApp': 'Bytt standardapplikasjon ...',
  'ccd.menu.default': '(standard)',
  'ccd.menu.export': 'Eksporter som lokal kopi',
  'ccd.menu.download': 'Last ned',
  'ccd.menu.createNew': 'Opprett ny...',
  'ccd.menu.launch': 'START',
  'actionMenuItem.permdelete': 'Slett permanent',
  'tab.Cloud Documents': 'Dine filer',
  'tab.Home': 'Hjem',
  'header.CloudDocuments': 'Dine filer',
  'header.SharedWithYou': 'Delt med deg',
  'header.Deleted': 'Slettet',
  'header.Deleted.AssetsWebLink': 'Gå til Assets Web for å se alle slettede elementer',
  'header.SelectedDocuments': '{numSelected, plural, =1 {#} other {#}} er valgt',
  'header.size': 'Størrelse',
  'header.title': 'Navn',
  'header.modifiedDate': 'Endringsdato',
  'header.createDate': 'Opprettingsdato',
  'header.shareDate': 'Delingsdato',
  'header.SortBy': 'Sorter etter',
  'header.infoPopover.body': 'Det er kun kompatible filer som vises. Hvis du vil vise alle filene, går du til Creative Cloud på nettet.',
  'header.infoPopover.link': 'Gå til Creative Cloud',
  'header.dragImport': 'Last opp til: {displayName}',
  'collaborators.onlyYou': 'Bare du',
  'collaborators.Owner': '{displayName} (eier)',
  'collaborators.More': '{numItems, plural, other {+# andre}}',
  'empty.offline.root.title': 'Du er frakoblet',
  'empty.offline.root.subtitle': 'Elementer som var synlige da du var koblet til nettet, vises her når du kobler til igjen.',
  'empty.offline.folder.title': 'Kunne ikke laste inn mappen',
  'empty.offline.folder.subtitle': 'Ingen internettforbindelse. Koble til på nytt for å se alt.',
  'empty.online.cdp.saveas.root.title': 'Ingen nettsky-dokumenter å vise',
  'empty.online.cdp.saveas.root.subtitle': 'Med nettsky-dokumenter er arbeidet ditt alltid oppdatert, på alle enheter, uansett hvor du er. Bare koble deg til Internett, og sett i gang.',
  'empty.online.cdp.saveas.root.subtitle.sprk': 'Her finner du alle nettsky-dokumentene dine fra XD. Arbeid fra hvor som helst, også offline. Endringer i nettsky-dokumentene lagres automatisk og kan vises i dokumenthistorikken.',
  'empty.online.cdp.saveas.root.subtitle.phxs': 'Du finner alle nettsky-dokumentene dine fra Photoshop på Mac, Windows og iPad her.',
  'empty.online.cdp.saveas.root.subtitle.ilst': 'Du finner alle nettsky-dokumentene dine fra Illustrator på Mac og Windows her.',
  'empty.online.cdp.saveas.root.subtitle.idsn': 'Du finner alle nettsky-dokumentene dine fra InDesign på Mac og Windows her.',
  'empty.online.cdp.saveas.folder.title': 'Ingen nettsky-dokumenter å vise',
  'empty.online.cdp.saveas.folder.subtitle': 'Når du legger et kompatibelt nettsky-dokument i denne mappen, vil det vises her.',
  'empty.online.cdp.open.root.title': 'Ingen nettsky-dokumenter å vise',
  'empty.online.cdp.open.root.subtitle': 'Når du legger et kompatibelt nettsky-dokument i denne mappen, vil det vises her.',
  'empty.online.cdp.open.root.subtitle.sprk': 'Her finner du alle nettsky-dokumentene dine fra XD. Arbeid fra hvor som helst, også offline. Endringer i nettsky-dokumentene lagres automatisk og kan vises i dokumenthistorikken.',
  'empty.online.cdp.open.root.subtitle.phxs': 'Du finner alle nettsky-dokumentene dine fra Photoshop på Mac, Windows og iPad her.',
  'empty.online.cdp.open.root.subtitle.ilst': 'Du finner alle nettsky-dokumentene dine fra Illustrator på Mac og Windows her.',
  'empty.online.cdp.open.root.subtitle.idsn': 'Du finner alle nettsky-dokumentene dine fra InDesign på Mac og Windows her.',
  'empty.online.cdp.open.folder.title': 'Ingen nettsky-dokumenter å vise',
  'empty.online.cdp.open.folder.subtitle': 'Når du legger et kompatibelt nettsky-dokument i denne mappen, vil det vises her.',
  'empty.online.cdo.root.title': 'Du har ingen nettsky-dokumenter',
  'empty.online.cdo.root.subtitle': 'Samarbeid sømløst med andre og jobb hvor som helst, selv når du er frakoblet. Endringer lagres automatisk og kan ses i filhistorikken.',
  'empty.online.cdo.root.subtitle.sprk': 'Samarbeid sømløst i sanntid med andre og jobb hvor som helst, også offline. Endringer lagres automatisk og kan ses i filhistorikken.',
  'empty.online.cdo.root.subtitle.phxs': 'Samarbeid sømløst med andre og jobb hvor som helst der du logger på Photoshop, selv når du er frakoblet. Endringene lagres automatisk og kan ses i filhistorikken.',
  'empty.online.cdo.root.subtitle.ilst': 'Samarbeid sømløst med andre og jobb hvor som helst der du logger på Illustrator, selv når du er frakoblet. Endringene lagres automatisk og kan ses i filhistorikken.',
  'empty.online.cdo.root.subtitle.idsn': 'Få tilgang til dokumentene dine fra overalt der du logger på InDesign. Endringer lagres automatisk.',
  'empty.online.cdo.folder.title': 'Ingen nettsky-dokumenter å vise',
  'empty.online.cdo.folder.subtitle': 'Når du legger et kompatibelt nettsky-dokument i denne mappen, vil det vises her.',
  'empty.title.deleted': 'Du har ingen slettede filer',
  'empty.title.deleted_offline': 'Du er frakoblet',
  'empty.title.recent': 'Du har ingen nylige filer',
  'empty.subtext.deleted_offline': 'Elementer som ble slettet da du var koblet til nettet, vises her når du kobler til igjen.',
  'empty.title.shared_with_you': 'Du har ingen delte nettsky-dokumenter',
  'empty.subtext.shared_with_you': 'Når noen deler nettsky-dokumenter med deg, vises dokumentene her.',
  'empty.title.shared_with_you_offline': 'Du er frakoblet',
  'empty.subtext.shared_with_you_offline': 'Du kan se og redigere delte dokumenter når tilkoblingen din er tilbake.',
  'empty.title.error': 'Noe gikk galt',
  'empty.subtext.error': 'Start applikasjonen på nytt og prøv igjen.',
  'empty.subtext.error.web': 'Oppdater nettleseren din og prøv igjen.',
  'empty.title.coresync.down': 'Kan ikke lastes inn',
  'empty.subtext.coresync.down': 'Nettskyen synkroniseres ikke. Kontroller at Creative Cloud-skrivebordsprogrammet er oppdatert eller prøv å starte applikasjonen på nytt.',
  'empty.title.coresync.incompatible': 'Kan ikke laste inn nettsky-dokumenter',
  'empty.subtext.coresync.incompatible': 'Vi kan ikke vise elementene akkurat nå. Oppdater din versjon av Creative Cloud-applikasjonen, og prøv på nytt.',
  'empty.title.cloudStorageDisabled': 'Nettsky-dokumenter er ikke tilgjengelige',
  'empty.subtext.cloudStorageDisabled': 'Du kan bare bruke {productName} til å jobbe med filer på enheten din. Kontakt IT-administratoren din for mer informasjon.',
  'empty.title.logout': 'Logg på for å få tilgang til nettsky-dokumenter.',
  'empty.learnMore.link': 'Finn ut mer',
  'trueEmpty.online.cdo.folder.title': 'Denne mappen er tom',
  'trueEmpty.online.cdo.folder.subtitle': 'Legg til filer her for å begynne å fylle den opp.',
  'trueEmpty.online.cdp.saveas.folder.title': 'Ingen nettsky-dokumenter ennå',
  'trueEmpty.online.cdp.saveas.folder.subtitle': 'Med nettsky-dokumenter er arbeidet ditt alltid oppdatert, på alle enheter, uansett hvor du er. Bare koble deg til Internett og sett i gang.',
  'trueEmpty.online.cdp.open.folder.title': 'Ingen nettsky-dokumenter ennå',
  'trueEmpty.online.cdp.open.folder.subtitle': 'Med nettsky-dokumenter er arbeidet ditt alltid oppdatert, på alle enheter, uansett hvor du er. Bare koble deg til Internett og sett i gang.',
  'filter.prompt': 'Angi nøkkelord',
  'filter.title': 'Filter',
  'empty.filter.title': 'Finner ingen resultater for "{filterString}"',
  'empty.filter.subtitle': 'Sjekk stavemåten, prøv et mer generelt søkeord eller filtrer et annet sted.',
  'beta.title': 'Synkroniser arbeidet ditt på tvers av enhetene dine',
  'beta.subtitle': 'Jobb sømløst i Photoshop på iPad og datamaskiner med nettsky-dokumenter. Funksjonen er imidlertid i betaversjon, så den virker ikke alltid som forventet. Skru den av og på i Innstillinger.',
  'beta.button': 'Skru på i Innstillinger',
  'beta.tag': 'BETA',
  'beta.feedback.link': 'Gi tilbakemeldinger på betaversjonen',
  'button.add-folder': 'Opprett en ny mappe',
  'button.upload': 'Last opp ...',
  'button.createnew': 'Opprett ny',
  'button.reportAbuse': 'Rapporter misbruk',
  'button.open': 'Åpne',
  'button.select': 'Velg',
  'button.rename': 'Endre navn',
  'button.pin.header': 'Gjør alltid tilgjengelig frakoblet',
  'button.pin': 'Gjør alltid tilgjengelig frakoblet',
  'button.unpin.header': 'Gjør tilgjengelig bare på nett',
  'button.unpin': 'Gjør tilgjengelig bare på nett',
  'button.duplicate': 'Dupliser',
  'button.download': 'Last ned',
  'button.move': 'Flytt',
  'button.delete': 'Slett',
  'button.restore': 'Gjenopprett',
  'button.permdelete': 'Slett permanent',
  'button.listview': 'Vis liste',
  'button.gridview': 'Vis rutenett',
  'button.sharesheetinvite': 'Inviter til redigering',
  'button.sharesheetLink': 'Få kobling',
  'button.shareSheetAction': 'Del',
  'button.preview': 'Forhåndsvis',
  'button.schedule': 'Planlegg',
  'action.duplicate.suffix': '(Dupliser)',
  'action.resolve_sync_error.suffix': 'kopi',
  'statusIcon.conflicted': 'Synkroniserings-konflikt',
  'statusIcon.onlineOnly': 'Bare på nettet',
  'statusIcon.availableOffline': 'Tilgjengelig frakoblet',
  'statusIcon.syncing': 'Synkroniserer ...',
  'statusIcon.waitingToSync': 'Venter på synkronisering',
  'tooltip.error': 'Åpne dokumentet og se på lagringskonflikten',
  'toast.error.documentIsOpen': 'Lukk {count, plural, =1 {dokumentet} other {dokumentene}} for å utføre denne handlingen.',
  'toast.error.exceedsQuota.personal': 'Kontoen din er tom for lagringsplass',
  'toast.error.exceedsQuota.enterprise': 'Tomt for lagringsplass, kontakt administratoren din for mer informasjon',
  'toast.operation.duplicate.error': 'Kan ikke duplisere {count, plural, =1 {element} other {{count} elementer}}.',
  'toast.operation.duplicate.success': '{count, plural, =1 {Elementet} other {{count} elementer}} er duplisert.',
  'toast.operation.archive.error': 'Kan ikke slette {count, plural, =1 {element} other {{count} elementer}}.',
  'toast.operation.archive.error.otherAppUncommittedChanges': 'Du kan ikke slette filer som er åpne i andre applikasjoner. Lukk dem og prøv igjen.',
  'toast.operation.archive.undo.error': 'Kan ikke slette {count, plural, =1 {element} other {{count} elementer}}.',
  'toast.operation.archive.success': '{count, plural, =1 {Elementet} other {{count} elementer}} er slettet.',
  'toast.operation.archive.undo.success': 'Gjenoppretting angret.',
  'toast.operation.permdelete.error': 'Kan ikke slette {count, plural, =1 {element} other {{count} elementer}} permanent.',
  'toast.operation.permdelete.success': '{count, plural, =1 {Elementet} other {{count} elementer}} er slettet permanent.',
  'toast.operation.rename.error': 'Kan ikke gi elementet nytt navn.',
  'toast.operation.rename.undo.error': 'Kan ikke gi elementet nytt navn.',
  'toast.operation.rename.error.duplicateName': 'Du har allerede et element her med dette navnet.',
  'toast.operation.rename.undo.error.duplicateName': 'Du har allerede et element her med dette navnet.',
  'toast.operation.rename.success': 'Elementet har fått nytt navn.',
  'toast.operation.rename.undo.success': 'Endring av navn angret.',
  'toast.operation.move.error': 'Kan ikke flytte {count, plural, =1 {element} other {{count} elementer}}.',
  'toast.operation.move.undo.error': 'Kan ikke flytte {count, plural, =1 {element} other {{count} elementer}}.',
  'toast.operation.move.error.duplicateFolderName': 'Du har allerede en mappe her med dette navnet.',
  'toast.operation.move.undo.error.duplicateFolderName': 'Du har allerede en mappe her med dette navnet.',
  'toast.operation.move.error.duplicateDocName': '{count, plural, =1 {Det finnes allerede et dokument med dette navnet i den mappen. Gi dokumentet et annet navn og prøv på nytt.} other {Dokumenter kan ikke flyttes fordi det finnes andre dokumenter med samme navn.}}',
  'toast.operation.move.undo.error.duplicateDocName': '{count, plural, =1 {Det finnes allerede et dokument med dette navnet i den mappen. Gi dokumentet et annet navn og prøv på nytt.} other {Dokumenter kan ikke flyttes fordi det finnes andre dokumenter med samme navn.}}',
  'toast.operation.move.success': '{count, plural, =1 {Elementet} other {{count} elementer}} er flyttet.',
  'toast.operation.move.undo.success': 'Flytting angret.',
  'toast.operation.unarchive.error': 'Kan ikke gjenopprette {count, plural, =1 {element} other {{count} elementer}}.',
  'toast.operation.unarchive.undo.error': 'Kan ikke gjenopprette {count, plural, =1 {element} other {{count} elementer}}.',
  'toast.operation.unarchive.success': '{count, plural, =1 {Elementet} other {{count} elementer}} er gjenopprettet.',
  'toast.operation.unarchive.undo.success': 'Sletting angret.',
  'toast.operation.create_new_folder.success': 'Mappe opprettet.',
  'toast.operation.create_new_folder.error': 'Kan ikke opprette ny mappe.',
  'toast.operation.create_new_folder.error.duplicateName': 'Du har allerede en mappe her med dette navnet.',
  'toast.operation.user_pin.success': '{count, plural, =1 {Elementet} other {{count} elementer}} er tilgjengelig frakoblet.',
  'toast.operation.user_pin.error': 'Kan ikke gjøre {count, plural, =1 {element} other {{count} elementer}} tilgjengelig frakoblet.',
  'toast.operation.user_unpin.success': '{count, plural, =1 {Elementet er tilgjengelig} other {{count} elementer er tilgjengelige}} bare på nett.',
  'toast.operation.user_unpin.error': 'Kan ikke gjøre {count, plural, =1 {element} other {{count} elementer}} kun tilgjengelig tilkoblet.',
  'toast.operation.resolve_sync_error.success': 'En kopi av "{name}" er opprettet. Du kan sammenligne begge dokumentene og justere eventuelle forskjeller.',
  'toast.ccd.scroll_to_item.fetching': 'Henter fil …',
  'toast.ccd.scroll_to_item.error': 'Finner ikke fil',
  'toast.info.disabled_rename_to_open_item': 'Eldre XD-dokumenter må først åpnes før de kan gis nytt navn her.',
  'toast.action.disabled_rename_to_open_item': 'Åpne dokument',
  'toast.error.rename.invalidName': 'Beklager, dette navnet inneholder ugyldige tegn.',
  'toast.error.rename.invalidChar': 'Navnet kan ikke inneholde følgende tegn: {characters}',
  'toast.error.rename.invalidEnd': 'Navnet kan ikke slutte på "." eller et mellomrom.',
  'toast.error.rename.charRestriction': 'Navn kan ikke være lengre enn 200 tegn.',
  'toast.error.rename.duplicateName': 'Du har allerede et nettsky-dokument med dette navnet.',
  'toast.success.reportAbuse': 'Misbruket er rapportert',
  'toast.error.reportAbuse': 'Kunne ikke rapportere misbruk',
  'toast.operation.undoLabel': 'Angre',
  'dialog.permdelete.heading': 'Slett permanent',
  'dialog.permdelete.warning': 'Du kan ikke angre denne handlingen. Her er det som blir borte for godt:',
  'dialog.permdelete.cancelButton': 'Avbryt',
  'dialog.permdelete.confirmButton': 'Slett permanent',
  'dialog.permdelete.countItems': '{count, plural, =1 {# element} other {# elementer}}',
  'dialog.nonemptyfolder.heading': 'Er du sikker på at du vil slette {count, plural, =1 {denne mappen} other {disse mappene}}?',
  'dialog.nonemptyfolder.warning': '{count, plural, =1 {Denne mappen er ikke tom} other {Disse mappene er ikke tomme}} og kan inneholde filer som ikke er synlige i {appName}. Du kan gå videre med slettingen, eller åpne {count, plural, =1 {mappen} other {mappene}} på nettet for å {count, plural, =1 {se} other {se}} innholdet. {viewOnWebLink}',
  'dialog.nonemptyfolder.cancelButton': 'Avbryt',
  'dialog.nonemptyfolder.confirmButton': 'Slett',
  'dialog.nonemptyfolder.viewOnWebButton': 'Vis på nettet',
  'dialog.addfolder.heading': 'Opprett en ny mappe',
  'dialog.addfolder.cancelButton': 'Avbryt',
  'dialog.addfolder.confirmButton': 'Lagre',
  'dialog.addfolder.placeholder': 'Ny mappe',
  'dialog.addfolder.invalidChar': 'Navn kan ikke inneholde følgende tegn: {characters}',
  'dialog.addfolder.invalidName': 'Beklager, denne mappen inneholder ugyldige tegn.',
  'dialog.addfolder.invalidEnd': 'Navnet kan ikke slutte på "." eller et mellomrom.',
  'dialog.addfolder.duplicateName': 'Du har allerede en mappe her med dette navnet.',
  'dialog.addfolder.charRestriction': 'Navn kan ikke være lengre enn 200 tegn.',
  'dialog.moveFolder.heading': 'Flytt til ...',
  'dialog.moveFolder.cancelButton': 'Avbryt',
  'dialog.moveFolder.moveButton': 'Flytt',
  'dialog.moveFolder.createNewFolderButton': 'Legg til mappe',
  'dialog.reportAbuse.cancelButton': 'Avbryt',
  'dialog.reportAbuse.reportAbuseButton': 'Rapporter misbruk',
  'dialog.reportAbuse.heading': 'Rapporter misbruk',
  'dialog.reportAbuse.emailInput': 'E-postadressen din',
  'dialog.reportAbuse.nameInput': 'Navnet ditt',
  'dialog.reportAbuse.radioButtonText': 'Hvorfor rapporterer du dette innholdet?',
  'dialog.reportAbuse.defamation': 'Ærekrenkelse',
  'dialog.reportAbuse.hate': 'Rasistisk eller hatefullt innhold',
  'dialog.reportAbuse.trademark': 'Krenkelse av varemerke',
  'dialog.reportAbuse.pornography': 'Seksuelt innhold',
  'dialog.reportAbuse.vulgar': 'Støtende innhold',
  'dialog.reportAbuse.other': 'Annet',
  'dialog.reportAbuse.inappropriate': 'Upassende',
  'dialog.reportAbuse.age': 'Upassende basert på alder',
  'dialog.reportAbuse.gender': 'Upassende basert på kjønn',
  'dialog.reportAbuse.description': 'Hvis du mener at dette Creative Cloud-innholdet bryter med Adobes vilkår for bruk, kan du rapportere det ved å fylle ut dette korte skjemaet.',
  'dialog.reportAbuse.describeConcern': 'Beskriv problemet',
  'dialog.reportAbuse.success': 'Misbruket er rapportert',
  'dialog.reportAbuse.failure': 'Kunne ikke rapportere misbruk',
  'dialog.reportAbuse.textAreaTitle': 'Gi en beskrivelse av problemet',
  'dialog.reportAbuse.required': 'Obligatorisk',
  'dialog.cachefull.title': 'Kan ikke gjøres tilgjengelig frakoblet',
  'dialog.cachefull.message': 'Du er tom for plass på enheten din. Lag dokumenter bare til bruk på nettet for å frigjøre plass.',
  'dialog.cachefull.confirm': 'Ok',
  'dialog.syncError.heading': 'Dette dokumentet synkroniseres ikke lenger med nettskyen',
  'dialog.syncError.body1': 'Vi anbefaler at du lagrer den siste versjonen som en kopi og gjenoppretter dokumentet til den siste versjonen som er lagret i nettskyen.',
  'dialog.syncError.body2': 'Du kan åpne dette dokumentet og gjøre endringer, men endringene blir ikke lagret i nettskyen.',
  'dialog.syncError.offline': 'Du må være koblet til Internett for å lagre en kopi og gjenopprette originalen.',
  'dialog.syncError.learnMore': 'Finn ut mer',
  'dialog.syncError.resolveButton': 'Lagre en kopi og gjenopprett',
  'dialog.syncError.openButton': 'Åpne',
  'dialog.syncErrorCopyFail.heading': 'Kunne ikke lagre en kopi',
  'dialog.syncErrorCopyFail.body1': 'Du kan fortsatt åpne dette dokumentet og gjøre endringer, men endringene blir ikke lagret i nettskyen.',
  'dialog.syncErrorCopyFail.body2': 'Kontakt Adobes kundestøtte for å få hjelp. (Feil: LocalContentSyncSuspended)',
  'dialog.syncErrorCopyFail.closeButton': 'Lukk',
  'dialog.syncErrorCopyFail.contactUs': 'Kontakt oss',
  'dialog.syncErrorPurgeFail.heading': 'Kunne ikke gjenopprette den siste versjonen som er lagret i nettskyen',
  'dialog.syncErrorPurgeFail.body1': 'En kopi av dokumentet ditt er opprettet, men vi kunne ikke gjenopprette det til den siste lagrede versjonen i nettskyen.',
  'dialog.syncErrorPurgeFail.body2': 'Kontakt Adobes kundestøtte for å få hjelp. (Feil: LocalContentSyncSuspended)',
  'dialog.syncErrorPurgeFail.closeButton': 'Lukk',
  'dialog.syncErrorPurgeFail.contactUs': 'Kontakt oss',
  'onboardingCdo.banner.title.sprk': 'En bedre måte å jobbe på',
  'onboardingCdo.banner.title.phxs': 'Bruker du Photoshop på iPad? Prøv nettsky-dokumenter',
  'onboardingCdo.banner.title.ilst': 'Nå kan du bruke nettsky-dokumenter i Illustrator',
  'onboardingCdo.banner.title.idsn': 'Nå kan du bruke nettsky-dokumenter i InDesign',
  'onboardingCdo.banner.message.sprk': 'Rediger nettsky-dokumentene dine fra hvor som helst, også offline. Endringer lagres automatisk og kan vises i dokumenthistorikken. Del dem med andre for å samarbeide sømløst i sanntid.',
  'onboardingCdo.banner.message.phxs': 'Nettsky-dokumenter lagres automatisk i Adobes nettsky mens du jobber, slik at du får tilgang til filene dine på datamaskiner eller iPad.',
  'onboardingCdo.banner.message.ilst': 'Nettsky-dokumenter i Illustrator lagres automatisk i Adobes nettsky mens du jobber. Du kan også vise versjonshistorikken for å se hvordan arbeidet ditt har utviklet seg.',
  'onboardingCdo.banner.message.idsn': 'Nettsky-dokumenter i InDesign lagres automatisk i Adobes nettsky mens du jobber.',
  'onboardingCdo.banner.linkTitle': 'Finn ut mer',
  'onboardingCdo.banner.confirm': 'OK',
  'operation.progress.archive': 'Sletter {batchSize, plural, =1 {1 element} other {{inProgressNum} av {batchSize} elementer}} ...',
  'operation.progress.unarchive': 'Gjenoppretter {batchSize, plural, =1 {1 element} other {{inProgressNum} av {batchSize} elementer}} ...',
  'operation.progress.move': 'Flytter {batchSize, plural, =1 {1 element} other {{inProgressNum} av {batchSize} elementer}} ...',
  'operation.progress.permdelete': 'Sletter {batchSize, plural, =1 {1 element} other {{inProgressNum} av {batchSize} elementer}} permanent ...',
  'operation.progress.rename': 'Gir nytt navn til {batchSize, plural, =1 {1 element} other {{inProgressNum} av {batchSize} elementer}} ...',
  'operation.progress.create_new_folder': 'Lager ny mappe...',
  'operation.progress.duplicate': 'Dupliserer {batchSize, plural, =1 {1 element} other {{inProgressNum} av {batchSize} elementer}} ...',
  'operation.progress.user_pin': 'Gjør {batchSize, plural, =1 {1 element} other {{inProgressNum} av {batchSize} elementer}} tilgjengelig frakoblet ...',
  'operation.progress.user_unpin': 'Gjør {batchSize, plural, =1 {1 element} other {{inProgressNum} av {batchSize} elementer}} kun tilgjengelig tilkoblet ...',
  'operation.progress.resolve_sync_error': 'Kopierer og gjenoppretter til siste lagrede versjon i nettskyen ...',
  'tooltip.offline.general': 'Internett-tilkobling er påkrevd.',
  'tooltip.offline.create-new-folder': 'Internett-tilkobling er nødvendig for å opprette mapper.',
  'tooltip.offline.move': 'Internett-tilkobling er nødvendig for å flytte elementer.',
  'tooltip.syncing.disabled': 'Venter på fullføring av synkronisering',
  'tooltip.rename.disabled': 'Et valgt dokument kan ikke gis nytt navn. Åpne dokumentet i vertsapplikasjonen for å endre navnet.',
  'tooltip.rename.disabled.sprk': 'Denne filen kan ikke gis nytt navn før du åpner den i XD.',
  'tooltip.syncSuspended.needsAction': 'Synkroniseringen er stoppet. Åpne for å iverksette tiltak.',
  'tooltip.syncSuspended.noAction': 'Synkronisering er stanset. Denne handlingen er ikke tillatt for øyeblikket.',
  'Recents.title': 'Siste',
  'Recents.cloudDocTitle': 'NETTSKY-DOKUMENT',
  'Recents.error.subtext.coreSync': 'Nylige-mappen er ikke tilgjengelig akkurat nå, fordi Creative Cloud-synkroniseringen ikke fungerer slik den skal.',
  'item.saveForOfflineIconToolTip': 'Dette dokumentet er lastet ned og er fullt tilgjengelig offline.',
  'item.disconnected.cloudonly': 'Du er frakoblet. Koble til på nytt for å åpne dokumentet.',
  'item.coresyncdown.cloudonly': 'Kan ikke laste inn filen. Oppdater eller start Creative Cloud på nytt for å prøve å løse problemet.',
  'folder.subtitle': 'MAPPE',
  'review.subtitle': 'GÅ GJENNOM',
  'prototype.subtitle': 'PROTOTYPE',
  'designspecs.subtitle': 'DESIGNSPES',
  'project.subtitle': 'PROSJEKT ',
  'library.subtitle': 'BIBLIOTEK',
  'webLink.subtitle': 'NETTKOBLING',
  'abbreviations.fileSize.byte': 'B',
  'abbreviations.fileSize.kilobyte': 'kB',
  'abbreviations.fileSize.megabyte': 'MB',
  'abbreviations.fileSize.gigabyte': 'GB',
  'abbreviations.fileSize.terabyte': 'TB',
  'sam.copyNameFormat': '%@ kopi',
  'cloudsync.quota.title': 'SKYBASERT LAGRING',
  'cloudsync.quota.percentage': '{percentageUsed} %',
  'cloudsync.quota.usage': '{usedCloudQuotaString} av {maxCloudQuotaString} er i bruk',
  'cloudsync.quota.warning': 'Den skybaserte lagringsplassen din er full. Oppgrader for å fortsette synkroniseringen av arbeidet ditt.',
  'cloudsync.quota.error': 'Ingen tilgjengelig informasjon om lagring ...',
  'cloudsync.quota.upgrade': 'Oppgrader',
  'cloudsync.status.complete.title': 'Synkronisert og sikkerhetskopiert',
  'cloudsync.status.syncing.title': 'Synkroniserer nettsky-dokumenter',
  'cloudsync.status.syncing.descr': '{progress}/{total}',
  'cloudsync.status.offline.title': 'Arbeid frakoblet',
  'cloudsync.status.offline.descr': 'Vi lagrer lokalt. Dokumenter synkroniseres med nettskyen når du er tilkoblet igjen.',
  'cloudsync.status.disabled.title': 'Synkronisering er deaktivert',
  'cloudsync.status.disabled.descr': 'Vi lagrer lokalt. Dokumenter synkroniseres med nettskyen når lagringsplassen blir tilgjengelig.',
  'cloudsync.item.progress.determinate': '{progress}/{total}',
  'cloudsync.item.progress.indeterminate': 'Synkroniserer ...',
  'cloudsync.item.complete': 'Fullført',
  'cloudsync.items.header': 'Nettverksaktivitet',
  'cloudsync.alert.title.coresync.down': 'Kan ikke lastes inn',
  'cloudsync.alert.subtext.coresync.down': 'Nettskyen synkroniseres ikke. Kontroller at Creative Cloud-skrivebordsprogrammet er oppdatert eller prøv å starte applikasjonen på nytt.',
  'cloudsync.alert.subtext.coresync.down.learnmore': 'Finn ut mer',
  'cloudsync.tooltip.offline': 'Frakoblet',
  'cloudsync.tooltip.error': 'Feil',
  'cloudsync.tooltip.syncing': 'Lagrer ...',
  'cloudsync.tooltip.default': 'Lagret',
  'cloudsync.singleDoc.offline.title': 'Frakoblet',
  'cloudsync.singleDoc.offline.descr': 'Prøver å koble til på nytt ...',
  'cloudsync.singleDoc.offline.timestamp': 'Sist synkronisert {time}',
  'cloudsync.singleDoc.error.samInitFail.title': 'Cloud har sluttet å synkronisere',
  'cloudsync.singleDoc.error.samInitFail.descr': 'Start denne applikasjonen på nytt for å fortsette å synkronisere arbeidet ditt.',
  'cloudsync.singleDoc.error.syncSuspended.title': 'Cloud har sluttet å synkronisere',
  'cloudsync.singleDoc.error.syncSuspended.descr': 'Start denne applikasjonen på nytt for å fortsette å synkronisere arbeidet ditt.',
  'cloudsync.singleDoc.error.title': 'Kan ikke lastes inn',
  'cloudsync.singleDoc.error.descr': 'Nettskyen synkroniseres ikke. Kontroller at Creative Cloud-skrivebordsprogrammet er oppdatert eller prøv å starte applikasjonen på nytt.',
  'cloudsync.singleDoc.error.learnMore': 'Finn ut mer',
  'cloudsync.singleDoc.disabled.quotaExceeded.title': 'Den skybaserte lagringsplassen din er brukt opp',
  'cloudsync.singleDoc.disabled.quotaExceeded.descr': 'Oppgrader Creative Cloud for å fortsette å synkronisere arbeidet ditt.',
  'cloudsync.singleDoc.syncing.title': 'Lagrer ...',
  'cloudsync.singleDoc.syncing.descr': 'Pågår',
  'cloudsync.singleDoc.disabled.title': 'Kan ikke lagre',
  'cloudsync.singleDoc.disabled.descr': 'Kontoen din er tom for lagringsplass.',
  'cloudsync.singleDoc.complete.title': 'Filen er lagret',
  'cloudsync.singleDoc.complete.timestamp': 'Sist synkronisert {time}'
};

/***/ }),

/***/ "PJYZ":
/***/ (function(module, exports) {

function _assertThisInitialized(self) {
  if (self === void 0) {
    throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
  }

  return self;
}

module.exports = _assertThisInitialized;
module.exports["default"] = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "PM2r":
/***/ (function(module) {

module.exports = JSON.parse("{\"a11y.button.canvases\":\"{name}\",\"a11y.button.libraries\":\"{name}, könyvtár\",\"a11y.button.listGridToggle\":\"nézetváltás, {toggledView, select, grid {rács} list {lista}}nézet\",\"a11y.button.project\":\"{name}, projekt\",\"a11y.button.published\":\"{name}, {extension}\",\"a11y.button.selectFolder\":\"Válasszon mappát\",\"a11y.button.working\":\"{name}, {extension}, módosítva {modified}\",\"a11y.strings.folder\":\"mappa\",\"header.action.newProject\":\"Új projekt\",\"header.action.newLibrary\":\"Új könyvtár\",\"header.action.browseAll\":\"Böngésszen az összes között\",\"header.Name\":\"Név\",\"header.Size\":\"Méret\",\"header.Sharing\":\"Tagok\",\"header.Team\":\"Munkaterület\",\"header.DateModified\":\"Módosítva\",\"header.DateCreated\":\"Létrehozva\",\"header.Status\":\"Kedvencként megjelölt\",\"header.SortBy\":\"Rendezési szempont\",\"header.sort.label\":\"Rendezés\",\"header.ChangeSortDirection\":\"A rendezési irányt módosítása a következőre:\",\"header.SortBy.asc\":\"Növekvő\",\"header.SortBy.desc\":\"Csökkenő\",\"header.selectAll\":\"Összes kijelölése\",\"header.reverseOrder\":\"Fordított sorrend\",\"header.showCompatible\":\"Kompatibilis fájlok\",\"header.showEverything\":\"Minden\",\"product.illustrator.web\":\"Illustrator Web (béta)\",\"product.photoshop.web\":\"Photoshop Web (Beta)\",\"status.followed\":\"Igen\",\"status.unfollowed\":\"Nem\",\"team.usm.defaultName\":\"{name} munkaterület\",\"space.access.private.description\":\"Csak meghívottak\",\"space.access.private.tooltip\":\"Csak a meghívott személyek férhetnek hozzá ehhez a projekthez\",\"space.access.team.description\":\"A munkaterület bármely tagja és a meghívottak\",\"space.access.team.tooltip\":\"A „{team}” bármely tagja hozzáférhet ehhez a projekthez\",\"yourProjects.title\":\"Projektek\",\"yourProjects.librariesTab.title\":\"Csapat könyvtárai\",\"yourProjects.empty.spaces\":\"Hozzon létre több projektet és hívjon meg több munkaterülettagot\",\"browseAll.title\":\"Böngésszen az összes között\",\"yourFiles.title\":\"Az Ön dokumentumai\",\"yourLibraries.title\":\"Könyvtárak\",\"yourLibraries.metadata\":\"KÖNYVTÁR\",\"canvas.metadata\":\"VÁSZON\",\"projectInfo.action.view\":\"Információk megtekintése\",\"projectInfo.action.edit\":\"Projekt szerkesztése\",\"projectInfo.empty.cta\":\"Új projekt létrehozása\",\"projectInfo.empty.description\":\"A Creative Cloud-projektek leegyszerűsítik a keresést, a szervezést, a megosztást és a döntéshozatalt, és minden kreatív munkához szükséges dolgot egyetlen helyen talál.\",\"projectInfo.empty.heading\":\"Több alkotás, kevesebb pótlás.\",\"projectInfo.error.description\":\"Kérjük, próbálja újra\",\"projectInfo.error.heading\":\"A(z) {section} szakaszt nem lehet betölteni\",\"projectInfo.new.error.title\":\"Nem lehet új projektet létrehozni\",\"projectInfo.new.noPermission.description\":\"További információért forduljon a rendszergazdához.\",\"projectInfo.title.create\":\"ÚJ PROJEKT\",\"projectInfo.title.edit\":\"PROJEKT SZERKESZTÉSE\",\"projectInfo.title.view\":\"PROJEKTADATOK\",\"projectInfo.access.title\":\"Ki szerkesztheti ezt a projektet?\",\"projectInfo.access.warning\":\"Egyes tagok elveszíthetik a hozzáférést a projekthez, ha a jogosultságot a „Csak meghívottak” értékre módosítja.\",\"projectInfo.organization\":\"Szervezet\",\"projectInfo.organization.placeholder\":\"Válasszon ki egyet\",\"projectInfo.description\":\"Leírás\",\"textField.invalid.characters\":\"A nevek nem tartalmazhatják a következő karaktereket: \\\\\\\\ / * ? \\\" | : < >\",\"textField.invalid.duplicateName\":\"Már létezik ilyen nevű projekt ebben a szervezetben\",\"textField.invalid.duplicateName.space\":\"Már létezik ilyen nevű munkaterület ebben a szervezetben.\",\"textField.invalid.duplicateName.team\":\"Már létezik ilyen nevű munkaterület ebben a szervezetben\",\"textField.invalid.empty\":\"A név nem lehet üres\",\"textField.invalid.generic\":\"Érvénytelen név\",\"textField.invalid.length\":\"A nevek nem lehetnek 50 karakternél hosszabbak\",\"textField.invalid.nameEndsWithDot\":\"A nevek nem végződhetnek ponttal\",\"textField.invalid.offline\":\"Csatlakozzon újra, hogy hozzáférjen az összes munkaterületekhez és projektekhez. Ha meg szeretné tekinteni a projektek helyi fájljait, lépjen a Kezdőlapra.\",\"projectInfo.textField.placeholder\":\"Projekt elnevezése\",\"projectInfo.team\":\"Munkaterület\",\"projectInfo.description.placeholder\":\"Pl.: fájlok, visszajelzések és referenciaanyagok az ügyfélprojekthez\",\"projectInfo.description.invalidLength\":\"A leírás legfeljebb 1000 karakter hosszúságú lehet\",\"projectInfo.toast.success.new\":\"Sikeresen létrehozta a következő projektet: {name}\",\"projectInfo.toast.success.update\":\"Sikeresen frissítette a következő projektet: {name}\",\"projectInfo.toast.error.generic\":\"Nem sikerült {create, select, true {létrehozni} other {szerkeszteni}} a projektet\",\"team.empty.heading\":\"A projektek segítségével mindenki naprakész lesz\",\"team.empty.description\":\"Belefáradt a fájlok zárolásába, a verziókkal kapcsolatos kavarodás kezelésébe és képernyőképek e-mailben való elküldésébe a felülvizsgálathoz? Használja a tereket projektek megszervezéséhez, erőforrások és visszajelzések összegyűjtéséhez, valamint az olyan fájlok megosztásához, amelyeken az egész csapat dolgozik.\",\"team.empty.createSpace\":\"Projekt létrehozása\",\"team.empty.inviteMembers\":\"Hívja meg a tagokat\",\"team.empty.startHere\":\"LÁSSON HOZZÁ\",\"team.create.success\":\"Munkaterület sikeresen létrehozva: {name}\",\"team.create.error.generic\":\"A munkaterület létrehozása sikertelen\",\"team.edit.success\":\"Munkaterület sikeresen frissítve: {name}\",\"team.edit.error.generic\":\"A munkaterület frissítése sikertelen\",\"team.archive.success\":\"{count, plural, =1 {# munkaterület} other {# munkaterület}} törölve\",\"team.archive.error.generic\":\"Nem törölhető {count, plural, =1 {# munkaterület} other {# munkaterület}}\",\"team.error.generic\":\"Sajnáljuk, hiba történt.\",\"project1Up.action.projectInfo\":\"Információk megtekintése\",\"project1up.region.space.ariaLabel\":\"{projectName}, projekt\",\"project1Up.section.libraries\":\"Könyvtárak\",\"project1Up.section.libraries.empty.cta\":\"Creative Cloud Libraries-könyvtárak hozzáadása\",\"project1Up.section.libraries.empty.description\":\"Adjon hozzá linkeket azokhoz a könyvtárakhoz, amelyekre szüksége van a munkájához.\",\"project1Up.section.libraries.empty.heading\":\"Hozzon össze mindent egyetlen helyen\",\"project1Up.section.filter\":\"Szűrő\",\"project1Up.section.filter.label\":\"Szűrés kulcsszó alapján\",\"project1Up.section.filter.enterKeyword\":\"Írja be a kulcsszót\",\"project1Up.section.filterFiles.empty.heading\":\"A kiválasztott szűrőre vonatkozóan nincs találat\",\"project1Up.section.compatibleFiles.empty.heading\":\"Nincs kompatibilis fájl ebben a projektben\",\"project1Up.section.workingFiles\":\"Munkafájlok\",\"project1Up.section.workingFiles.empty.addFiles\":\"Fájlok hozzáadása\",\"project1Up.section.workingFiles.empty.createFolder\":\"Új mappa létrehozása\",\"project1Up.section.workingFiles.empty.description\":\"Ismételje meg a projekteket és működjön együtt más tagokkal.\",\"project1Up.section.workingFiles.empty.heading\":\"Dolgozzon azon, amin szeretne, amikor szüksége van rá\",\"project1Up.section.published\":\"Közzétéve\",\"project1Up.section.published.empty.cta\":\"Linkek közzététele\",\"project1Up.section.published.empty.description\":\"Csak megtekintésre mutató linkeket küldhet, hogy visszajelzést kapjon a megfelelő emberektől a megfelelő időben.\",\"project1Up.section.published.empty.description.readonly\":\"Ha valakinek visszajelzésre vagy felülvizsgálatra van szüksége, itt hozzáad egy linket.\",\"project1Up.section.published.empty.heading\":\"Oszd meg céllal\",\"project1Up.section.published.empty.heading.readonly\":\"Nincs közzétett elem ebben a projektben\",\"project1Up.section.canvases\":\"Rajzvásznak\",\"project1Up.section.canvases.empty.cta\":\"Creative Cloud rajzvásznak hozzáadása\",\"project1Up.section.canvases.empty.description\":\"Adjon hozzá linkeket azokhoz a dolgokhoz, amelyeken még dolgoznia kell.\",\"project1Up.section.canvases.empty.heading\":\"Hozzon össze mindent egyetlen helyen\",\"project1Up.section.files\":\"Fájlok\",\"project1Up.error.accessDenied.heading\":\"Nem rendelkezik hozzáféréssel\",\"project1Up.error.accessDenied.description\":\"Önt eltávolították ebből a projektből. Forduljon a rendszergazdához, ha úgy gondolja, hogy ez tévedés.\",\"project1Up.header.seeAll\":\"Összes megtekintése\",\"project1up.subheader.selected\":\"{count, plural, =1 {# elem} other {# elem}} kiválasztva\",\"project1up.subheader.emptyDescription\":\"Adjon hozzá leírást a projekthez\",\"project1up.subheader.canvases.title\":\"Rajzvásznak\",\"project1up.subheader.canvases.subtitle\":\"TODO: RAJZVÁSZNAK FELIRATOZÁSA\",\"project1up.subheader.libraries.title\":\"Könyvtárak\",\"project1up.subheader.libraries.subtitle\":\"A tagok itt adhatnak hivatkozásokat a Creative Cloud Libraries-hez.\",\"project1up.subheader.working.title\":\"Munkafájlok\",\"project1up.subheader.working.subtitle\":\"A projekt tagjai ezeket a fájlokat szerkeszthetik.\",\"project1up.subheader.output.title\":\"Közzétéve\",\"project1up.subheader.output.subtitle\":\"{contributor, select, true {Ossza meg az írásvédett verzióit a projektjén kívüli személyekkel} other {Az írásvédett elemek megtekintése és megjegyzések hozzáfűzése}}\",\"project.subtitle\":\"PROJEKT\",\"project.countContributors\":\"{count, plural, =1 {# tag} other {# tag}}\",\"project.versionError.reload.description\":\"Próbálja meg frissíteni a böngészőt.\",\"project.versionError.reload.title\":\"A projekt nem nyitható meg\",\"project.versionError.update.description\":\"Addig nem érheti el a projektet, amíg nem frissíti az alkalmazást.\",\"project.versionError.update.title\":\"A megnyitáshoz frissítse a(z) {appName} alkalmazást\",\"project.alreadyDiscarded.title\":\"Ezt a projektet törölték\",\"project.alreadyDiscarded.description\":\"Forduljon a rendszergazdához, ha úgy gondolja, hogy ez tévedés, vagy böngésszen más tartalmak között.\",\"project.deleted.title\":\"Ezt a projektet véglegesen törölték\",\"project.deleted.description\":\"Nem tud hozzáférni ehhez a projekthez, mert már nem elérhető.\",\"project.metadataError.backLabel\":\"Vissza a projektekbe\",\"project.metadataError.description\":\"Vagy nem találjuk meg a keresett projektet, vagy Önnek nincs hozzáférése.\",\"project.metadataError.title\":\"Sajnáljuk, hiba történt.\",\"folder.subtitle\":\"MAPPA\",\"libraries.toast.add.start\":\"{count, plural, =1 {# könyvtár} other {# könyvtár}} hozzáadása\",\"libraries.toast.add.success\":\"{count, plural, =1 {# könyvtár} other {# könyvtár}} hozzáadva\",\"libraries.toast.add.error\":\"{count, plural, =1 {# könyvtár} other {# könyvtár}} hozzáadása sikertelen.  Próbálja újra.\",\"libraries.toast.add.duplicate\":\"Ez a könyvtár már létezik\",\"libraries.toast.add.onlyDuplicates\":\"Nem lehetséges a következő hozzáadása: {count, plural, =1 {# könyvtár, mert a könyvtár már létezik} other {# könyvtár, mert a könyvtárak már léteznek}}.\",\"libraries.toast.delete.success\":\"{count, plural, =1 {# könyvtár} other {# könyvtár}} sikeresen eltávolítva\",\"libraries.toast.delete.error\":\"{count, plural, =1 {# könyvtár} other {# könyvtár}} eltávolítása sikertelen\",\"libraries.toast.follow.inProgress\":\"{count, plural, =1 {# könyvtár} other {# könyvtár}} követése\",\"libraries.toast.follow.success\":\"{count, plural, =1 {# library} other {# libraries}} követve\",\"libraries.toast.follow.error\":\"{count, plural, =1 {# könyvtár} other {# könyvtár}} követése sikertelen\",\"libraries.toast.unfollow.inProgress\":\"{count, plural, =1 {# könyvtár} other {# könyvtár}} követése leállítva\",\"libraries.toast.unfollow.success\":\"{count, plural, =1 {# könyvtár} other {# könyvtár}} követése leállítva\",\"libraries.toast.unfollow.error\":\"{count, plural, =1 {# könyvtár} other {# könyvtár}} követésének leállítása sikertelen\",\"libraries.modal.empty.heading\":\"Nincsenek könyvtárak\",\"libraries.modal.empty.description\":\"A szervezet nem osztott meg semmilyen könyvtárat\",\"libraries.modal.error.limitExceeded\":\"Nem lehet könyvtárat hozzáadni\",\"libraries.modal.error.limitExceeded.detail\":\"Legfeljebb 100 könyvtárat adhat hozzá egy projekthez. Távolítson el néhányat továbbiak hozzáadásához.\",\"libraries.brokenResources\":\"Egyes könyvtárak nem jelennek meg, mert nincs hozzáférése. További információkért vegye fel a kapcsolatot más tagokkal.\",\"copy.start\":\"{count, plural, =1 {# elem} other {# elem}} másolása\",\"copy.failure\":\"{count, plural, =1 {# elem} other {# elem}} nem másolható\",\"copy.failure.partial\":\"Néhány elem nem másolható\",\"copy.success\":\"{count, plural, =1 {# elem} other {# elemek}} átmásolva\",\"copy.conflictSuffix\":\"másolás\",\"move.start\":\"{count, plural, =1 {# elem} other {# elem}} áthelyezése\",\"move.failure\":\"{count, plural, =1 {# elem} other {# elem}} nem helyezhető át\",\"move.failure.partial\":\"Néhány elem nem helyezhető át\",\"move.success\":\"{count, plural, =1 {# elem} other {# elem}} áthelyezve\",\"upload.start\":\"{count, plural, =1 {# elem} other {# elem}} feltöltése\",\"upload.failure\":\"{count, plural, =1 {# elem} other {# elem}} nem tölthető fel\",\"upload.failure.partial\":\"Néhány elem nem tölthető fel\",\"upload.failure.snapshot\":\"Ez az elem nem támogatott\",\"upload.success\":\"{count, plural, =1 {# elem} other {# elem}} feltöltve\",\"download.start\":\"{count, plural, =1 {# elem} other {# elem}} letöltése\",\"download.failure\":\"Nem tölthető le {count, plural, =1 {# elem} other {# elem}}\",\"download.failure.partial\":\"Néhány elem nem tölthető le\",\"download.success\":\"{count, plural, =1 {# elem} other {# elem}} letöltve\",\"delete.failure\":\"Nem törölhető {count, plural, =1 {# elem} other {# elem}}\",\"delete.failure.partial\":\"Néhány elem nem törölhető\",\"delete.success\":\"{count, plural, =1 {# elem} other {# elem}} törölve\",\"jobs.failure\":\"{count, plural, =1 {# elem} other {# elem}} sikertelen\",\"jobs.inProgress\":\"Munkavégzés...\",\"jobs.success\":\"{count, plural, =1 {# elem} other {# elem}} befejezve\",\"restore.failure\":\"Nem állítható vissza {count, plural, =1 {# elem} other {# elem}}\",\"restore.failure.partial\":\"Néhány elem nem állítható vissza\",\"restore.success\":\"{count, plural, =1 {# elem} other {# elem}} visszaállítva\",\"rename.start\":\"Átnevezés\",\"rename.success\":\"{count, plural, =1 {# elem} other {# elem}} átnevezve\",\"rename.failure\":\"Szerverhiba, nem sikerült átnevezni az elemet.\",\"rename.failure.conflict\":\"Már van itt egy elem ezzel a névvel\",\"rename.offline.heading\":\"Nem lehet átnevezni\",\"rename.offline\":\"Offline állapotban van, és nem tudja átnevezni az elemet. A művelet végrehajtásához kapcsolódjon az internethez.\",\"bookmark.follow.error\":\"A projekt kedvencnek jelölése nem lehetséges\",\"bookmark.unfollow.error\":\"A projekt kedvencként jelölésének eltávolítása nem lehetséges\",\"bookmark.follow.success\":\"Sikerült a(z) {projectName} projectet kedvencnek beállítani\",\"bookmark.unfollow.success\":\"Sikerült a(z) {projectName} projectet a kedvencek közül törölni\",\"bookmark.bulk.follow.success\":\"{count, plural, =1 {# elem} other {# elem}} sikeresen hozzáadva a kedvencekhez\",\"bookmark.bulk.follow.partial\":\"Néhány elem nem adható hozzá a kedvencekhez\",\"bookmark.bulk.follow.error\":\"Nem adható hozzá a kedvencekhez {count, plural, =1 {# elem} other {# elem}}\",\"bookmark.bulk.unfollow.success\":\"{count, plural, =1 {# elem} other {# elem}} sikeresen törölve a kedvencek közül\",\"bookmark.bulk.unfollow.partial\":\"Néhány elem nem törölhető a kedvencek közül\",\"bookmark.bulk.unfollow.error\":\"Nem törölhető a kedvencek közül {count, plural, =1 {# elem} other {# elem}}\",\"copyLink.success\":\"Link másolva a vágólapra\",\"copyLink.failure\":\"A linket nem lehet másolni\",\"starterUser.project1upNavigation\":\"Kezdőcsomagja nem tartalmazza a dokumentumok projektekben történő megnyitását\",\"starterUser.project1upNavigationCDPSave\":\"Kezdőcsomagja nem tartalmazza a dokumentumok projektekben történő mentését\",\"invite.failure\":\"Nem sikerült meghívókat küldeni, kérjük, próbálkozzon újra\",\"accessibility.backButton\":\"Vissza\",\"button.role\":\"Gomb\",\"button.actions\":\"Műveletek\",\"button.add\":\"Hozzáadás\",\"button.addFiles\":\"Fájlok hozzáadása\",\"button.addLibrary\":\"Könyvtár hozzáadása\",\"button.createDocument\":\"Új {appName}-fájl\",\"button.library\":\"Könyvtár\",\"button.back\":\"Vissza\",\"button.browse\":\"Böngésszen az összes között\",\"button.cancel\":\"Mégse\",\"button.okay\":\"Rendben\",\"button.canvas\":\"Rajzvászon\",\"button.addCanvas\":\"Új vászon\",\"button.changeDefaultApp\":\"Alapértelmezett alkalmazás módosítása...\",\"button.close\":\"Bezárás\",\"button.continue\":\"Tovább\",\"button.copy\":\"Másolás ide:...\",\"button.copyLink\":\"Hivatkozás másolása\",\"button.create\":\"Létrehozás\",\"button.createNewFolder\":\"Új mappa létrehozása\",\"button.newFile\":\"Új fájl\",\"button.newFolder\":\"Új mappa\",\"button.delete\":\"Törlés\",\"button.deleteResource\":\"Eltávolítás\",\"button.done\":\"Kész\",\"button.download\":\"Letöltés\",\"button.favorite\":\"Kedvenc\",\"button.follow\":\"Követés\",\"button.invite\":\"Meghívás\",\"button.inviteLabel\":\"Emberek meghívása\",\"button.leave\":\"Kilépés\",\"button.leaveProject\":\"Munkaterület elhagyása\",\"button.move\":\"Áthelyezés ide...\",\"button.next\":\"Tovább\",\"button.ok\":\"OK\",\"button.open\":\"Megnyitás\",\"button.openWith\":\"Megnyitás a következővel:\",\"button.open.appName\":\"{appName} {isDefault, select, true {(Alapértelmezett)} other {}}\",\"button.redo\":\"Újra\",\"button.reload\":\"Újratöltés\",\"button.rename\":\"Átnevezés\",\"button.restore\":\"Visszaállítás\",\"button.retry\":\"Újra\",\"button.save\":\"Mentés\",\"button.select\":\"Választ\",\"button.share\":\"Megosztás\",\"button.skipTour\":\"Bemutató kihagyása\",\"button.undo\":\"Visszavonás\",\"button.unfavorite\":\"Nem kedvenc\",\"button.unfollow\":\"Követés leállítása\",\"button.update\":\"Frissítés\",\"button.upgrade\":\"Frissítés\",\"button.view\":\"Az összes megjelenítése\",\"button.viewProject\":\"Projekt megtekintése\",\"button.viewTarget\":\"Nézet\",\"button.createWeblink\":\"Internetes hivatkozás hozzáadása\",\"button.leaveTeam\":\"Munkaterület elhagyása\",\"button.renameTeam\":\"Munkaterület átnevezése\",\"button.editTeam\":\"Munkaterület adatainak szerkesztése\",\"button.archiveTeam\":\"Munkaterület törlése\",\"button.upload\":\"Fájlok feltöltése\",\"button.goToDeleted\":\"Megtekintés a töröltek között\",\"button.viewEverything\":\"Összes megtekintése\",\"button.viewInWeb\":\"Webes nézet\",\"abbreviations.fileSize.byte\":\"B\",\"abbreviations.fileSize.kilobyte\":\"KB\",\"abbreviations.fileSize.megabyte\":\"MB\",\"abbreviations.fileSize.gigabyte\":\"GB\",\"abbreviations.fileSize.terabyte\":\"TB\",\"statusIcon.conflicted\":\"Szinkronizálási ütközés\",\"statusIcon.onlineOnly\":\"Csak online\",\"statusIcon.availableOffline\":\"Elérhető offline állapotban\",\"statusIcon.syncing\":\"Szinkronizálás...\",\"statusIcon.waitingToSync\":\"Várakozás a szinkronizálásra\",\"statusMessage.offline.description\":\"Csatlakozzon újra, hogy hozzáférjen az összes munkaterületekhez és projektekhez. Ha meg szeretné tekinteni a projektek helyi fájljait, lépjen a Kezdőlapra.\",\"statusMessage.offline.heading\":\"Nincs kapcsolat\",\"statusMessage.offline.toast\":\"Megszakadt a kapcsolat, ezért egyes funkciók és fájlok nem érhetők el.\",\"toggle.listView\":\"Lista nézet\",\"toggle.gridView\":\"Miniatűr nézet\",\"color.fuchsia\":\"Fukszia\",\"color.indigo\":\"Indigó\",\"color.celery\":\"Zeller\",\"color.magenta\":\"Magenta\",\"color.yellow\":\"Sárga\",\"color.seafoam\":\"Tengerhab\",\"color.chartreuse\":\"Chartreuse\",\"color.purple\":\"Lila\",\"color.blue\":\"Kék\",\"color.red\":\"Piros\",\"color.orange\":\"Narancssárga\",\"color.green\":\"Zöld\",\"color.label\":\"Projekt színe\",\"tooltip.offline.general\":\"A művelet elvégzéséhez csatlakozzon újra az internethez\",\"tooltip.moreFaces\":\"+ további {number}\",\"action.leave.space.success\":\"Elhagyta a(z) {count, plural, = 1 {# projekt} other {# projektek}}\",\"action.leave.prototype.success\":\"Hozzáférés eltávolítva a következőhöz: {count, plural, =1 {# prototípus} other {# prototípusok}}\",\"action.leave.file.success\":\"Hozzáférés eltávolítva a következőhöz: {count, plural, =1 {# fájl} other {# fájlok}}\",\"action.leave.canvas.success\":\"Hozzáférés eltávolítva a következőhöz: {count, plural, =1 {# vászon} other {# vásznak}}\",\"action.leave.team.success\":\"1 munkaterületet hagyott\",\"action.leave.space.error\":\"A projekt elhagyása nem lehetséges\",\"action.leave.prototype.error\":\"A prototípus elhagyása nem lehetséges\",\"action.leave.file.error\":\"Nem lehetséges kilépni a fájlból\",\"action.leave.team.error\":\"A munkaterület elhagyása nem lehetséges\",\"action.leave.canvas.error\":\"A vászon elhagyása nem lehetséges\",\"action.leave.space.partial.error\":\"Az összes projekt elhagyása nem lehetséges\",\"action.leave.prototype.partial.error\":\"Az összes prototípus elhagyása nem lehetséges\",\"action.leave.file.partial.error\":\"Az összes fájl elhagyása nem lehetséges\",\"action.leave.canvas.partial.error\":\"Az összes vászon elhagyása nem lehetséges\",\"action.leave.error.onlyContributor\":\"Ön az egyetlen tag. Kilépés előtt adjon hozzá még egyet.\",\"action.leave.error.addressBookGroupMember\":\"Lépjen ki a csoportból, majd próbálja újra.\",\"action.leave.error.admin\":\"Nem hagyhatja el, mert Ön rendszergazda.\",\"action.leave.error.generic\":\"Az elhagyás nem lehetséges, mert hiba lépett fel.\",\"action.reportAbuse\":\"Visszaélés jelentése\",\"action.reportAbuse.required\":\"Szükséges\",\"action.reportAbuse.titleText\":\"Ha úgy gondolja, hogy ez a Creative Cloud-tartalom megsérti az Adobe Használati feltételeit, a tartalmat ennek a gyorslapnak a kitöltésével tudod jelenteni.\",\"action.reportAbuse.emailInput\":\"Saját e-mail\",\"action.reportAbuse.nameInput\":\"Saját név\",\"action.reportAbuse.radioButtonText\":\"Miért jelenti ezt a tartalmat?\",\"action.reportAbuse.defamation\":\"Rágalmazás\",\"action.reportAbuse.hate\":\"Rasszista vagy gyűlöletre ösztönző tartalom\",\"action.reportAbuse.trademark\":\"Védjeggyel való visszaélés\",\"action.reportAbuse.pornography\":\"Szexuálisan szókimondó tartalom\",\"action.reportAbuse.vulgar\":\"Sértő tartalom\",\"action.reportAbuse.other\":\"Egyéb\",\"action.reportAbuse.inappropriate\":\"Nem megfelelő\",\"action.reportAbuse.age\":\"Nem megfelelő kor\",\"action.reportAbuse.gender\":\"Nem megfelelő nem\",\"action.reportAbuse.textAreaTitle\":\"Kérjük, írja le a problémát\",\"action.reportAbuse.describeConcern\":\"Ismertesse a problémát\",\"action.reportAbuse.success\":\"Sikeresen jelentett visszaélés\",\"action.reportAbuse.failure\":\"Nem sikerült bejelenteni a visszaélést\",\"action.menu.label\":\"Műveletsor menü\",\"action.label\":\"Művelet\",\"dialog.genericError.description\":\"Sajnáljuk, hiba történt.\",\"dialog.genericError.title\":\"Váratlan hiba\",\"dialog.leave.space.title\":\"{count, plural, =1 {{name}} other {projektek}} elhagyása\",\"dialog.leave.prototype.title\":\"{count, plural, =1 {ez a prototípus} other {prototípusok}} elhagyása\",\"dialog.leave.file.title\":\"{count, plural, =1 {ez a fájl} other {fájlok}} elhagyása\",\"dialog.leave.canvas.title\":\"{count, plural, =1 {ez a vászon} other {vásznak}} elhagyása\",\"dialog.leave.team.title\":\"Elbúcsúzik?\",\"dialog.leave.team.detail\":\"Nem tudja visszavonni, ha eltávolítja magát. Forduljon egy adminisztrátorhoz, ha vissza szeretne kerülni ehhez a munkaterülethez.\",\"dialog.leave.space.detail\":\"Elveszíti a hozzáférését a nem Ön tulajdonában lévő, ezen a helyen található projekthez. A(z) „{projectName}” elhagyása nem vonható vissza.\",\"dialog.leave.prototype.detail\":\"Újabb meghívás nélkül nem férhet hozzá ehhez újra.\",\"dialog.leave.file.detail\":\"Újabb meghívás nélkül nem férhet hozzá ehhez újra.\",\"dialog.leave.canvas.detail\":\"Újabb meghívás nélkül nem férhet hozzá ehhez újra.\",\"dialog.leave.detail\":\"{type, select, space {El fogja veszíteni a hozzáférést a nem az Ön tulajdonában álló, itt található elemekhez: {count, plural, =1 {ez a projekt} other {ezek a projektek}}. A(z) {count, plural, =1 {\\\"{name}\\\"} other {ezek a projektek}} elhagyása nem vonható vissza.} other {Új meghívó nélkül nem fog újból hozzáférni a következőhöz: {count, plural, =1 {ez} other {ezek}{count, plural, =1 {.} other {:}}}}\",\"dialog.deleteFailed.title\":\"Az összes elem nem törölhető\",\"dialog.deleteWarning.description\":\"{type, select, spaces {Ez a művelet törli a következő projektek minden tagjának tartalmát:} other {Ez a művelet a törli következőket a projekt összes tagjának követését:}}\",\"dialog.deleteWarning.title\":\"{type, select, space {{count} {count, plural, =1 {projekt} other {projekt}} törlése} other {{count} {count, plural, =1 {elem} other {elem}}} törlése}\",\"dialog.deleteFailed.description.unauthorized\":\"A törlés nem lehetséges, mert Önt eltávolították a projektből:\",\"dialog.deleteFailed.description.alreadyDeleted\":\"A törlés nem lehetséges, mert valaki már törölte az elemet:\",\"dialog.deleteFailed.description.unknown\":\"A törlés nem lehetséges, mert hiba lépett fel:\",\"dialog.cantCopyAllItems\":\"Az összes elem nem másolható\",\"dialog.cantCopyBecauseSomethingWentWrong\":\"A másolás nem lehetséges, mert hiba lépett fel:\",\"dialog.cantCopyBecauseYouWereSignedOut\":\"Nem lehet másolni, mert kijelentkezett:\",\"dialog.cantCopyBecauseYouWereRemoved\":\"A másolás nem lehetséges, mert Önt eltávolították a projektből:\",\"dialog.cantCopyBecauseItemWasDeleted\":\"A törlés nem lehetséges, mert valaki már törölte az elemet:\",\"dialog.cantCopyBecauseItemExists\":\"Nem lehet másolni, mert ez már létezik ott, ahol megpróbált másolni:\",\"dialog.cantMoveAllItems\":\"Az összes elem nem helyezhető át\",\"dialog.cantMoveBecauseSomethingWentWrong\":\"Az áthelyezés nem lehetséges, mert hiba lépett fel:\",\"dialog.cantMoveBecauseYouWereSignedOut\":\"Nem lehet áthelyezni, mert kijelentkezett:\",\"dialog.cantMoveBecauseYouWereRemoved\":\"Az áthelyezés nem lehetséges, mert Önt eltávolították a projektből:\",\"dialog.cantMoveBecauseItemWasDeleted\":\"Az áthelyezés nem lehetséges, mert valaki már törölte az elemet:\",\"dialog.cantMoveBecauseItemExists\":\"Az áthelyezés nem lehetséges, mert ez már létezik ott, ahová megpróbálta áthelyezni:\",\"dialog.createFolder.error\":\"Szerverhiba, nem sikerült elmenteni a mappát\",\"dialog.createFolder.nameConflict\":\"Már van egy mappa ezzel a névvel.\",\"dialog.createFolder.placeholder\":\"Mappanév\",\"dialog.createFolder.title\":\"Mappa létrehozása\",\"dialog.createFolder.success\":\"Mappa sikeresen létrehozva\",\"dialog.createWeblink.error\":\"Nem támogatott url\",\"dialog.createWeblink.tooManyRequests\":\"Váratlan hálózati hiba történt. Próbálja meg újra.\",\"dialog.createWeblink.success\":\"1 elem hozzáadva\",\"dialog.createWeblink.nameConflict\":\"Ez a cím már létezik\",\"dialog.createWeblink.name.placeholder\":\"Adjon nevet ennek a hivatkozásnak\",\"dialog.createWeblink.link.placeholder\":\"https://\",\"dialog.createWeblink.name\":\"Egyéni cím\",\"dialog.createWeblink.link\":\"Hivatkozás\",\"dialog.createWeblink.title\":\"Hozzon létre weblinket\",\"app.type.webLink\":\"INTERNETES HIVATKOZÁS\",\"dialog.createCanvas.error\":\"Nem lehet vásznat létrehozni\",\"dialog.move.title\":\"Áthelyezés a következő projektbe: {projectName}\",\"dialog.move.detail\":\"Az elem áthelyezésével módosítja az ahhoz hozzáféréssel rendelkező személyeket.\",\"moveToTeam.confirm.title\":\"Áthelyezés a(z) {name} munkaterületre\",\"moveToTeam.confirm.message\":\"Ha áthelyezi a projekteket, módosítja, hogy kik férhetnek azokhoz hozzá. A projektekhez bárki hozzáférhet majd, aki hozzáféréssel rendelkezik a munkaterülethez.\",\"moveToTeam.disabled.differentOrg.tooltip.message\":\"A projektek nem helyezhetők át egy másik szervezethez tartozó munkaterületbe.\",\"moveToSpace.disabled.differentOrg.tooltip.message\":\"Az elemek nem helyezhetők át egy másik szervezethez tartozó projektbe.\",\"moveToTeam.success\":\"Sikeresen áthelyezett {count, plural, =1 {# projektet} other {# projektet}} a(z) {name} munkaterületbe\",\"confirmationDialog.dontShowAgain\":\"Ne jelenjen meg többé\",\"dialog.open.title\":\"Megnyitás az interneten\",\"dialog.open.detail\":\"Nem nyithatja meg ezt a fájlt a(z) {appName} alkalmazásban, de elérheti a böngészőjében.\",\"dialog.renameTeam.title\":\"Munkaterület átnevezése\",\"dialog.renameTeam.placeholder\":\"Adjon nevet ennek a munkaterületnek\",\"dialog.renameTeam.error\":\"Sajnáljuk, hiba történt.\",\"dialog.renameTeam.nameConflict\":\"Ez a név már létezik\",\"dialog.archiveTeam.title\":\"Törli ezt a munkaterületet?\",\"dialog.archiveTeam.detail\":\"Nem tudja visszavonni, ha eltávolítja magát. Forduljon egy adminisztrátorhoz, ha újra csatlakozni szeretne ehhez a munkaterülethez.\",\"dialog.saveToCloud.title\":\"A Creative Cloud szolgáltatásba mentett fájl(ok)\",\"dialog.saveToCloud.detail\":\"A felhőalapú dokumentuma mostantól verzióelőzményeket, meghívást és közös szerkesztést biztosít, azonnali hozzáférést kínál más eszközökre, és egyéb funkciókat nyújt. Itt és a Creative Cloud alkalmazásaiban találja meg.\",\"input.invalidCharInput\":\"A név nem tartalmazhatja a következő karaktereket: \\\\\\\\ / * ? \\\" | :\",\"input.invalidEmptyInput\":\"A {names, select, true {név} other {cím}} nem maradhat üresen\",\"input.nameTooLong\":\"A {names, select, true {név} other {cím}} legfeljebb {maxLength} karakter hosszú lehet\",\"input.nameEndsWithDot\":\"A {names, select, true {név} other {cím}} nem végződhet ponttal\",\"input.weblink.nameRestricted\":\"Az internetes hivatkozásoknak nem lehet a következő a címe: „con”, „prn”, „aux”, „nul”, „com”, „lpt#”\",\"input.nameRestricted\":\"Az eszközöknek nem lehet a következő a neve: con/prn/aux/nul/com#/lpt#\",\"input.weblink.invalidCharInput\":\"A címek nem állhatnak csak szóközből, és nem tartalmazhatják a következő karaktereket: \\\\\\\\ / * ? \\\" | : < > \",\"input.name.invalidCharInput\":\"A nevek nem állhatnak csak szóközből, és nem tartalmazhatják a következő karaktereket: \\\\\\\\ / * ? \\\" | : < > \",\"cdpFooter.orphanedArtifactsWarning\":\"Az áthelyezett elemekhez kapcsolódó közzétett linkek az eredeti projektben maradnak\",\"cdpFooter.libraryPrivacyWarning\":\"Ha újból megosztja egy hozzáadott könyvtár jogosultságait, a projekt tagjai azt megtekinthetik majd\",\"toast.beforeOp.error.documentIsOpen\":\"{count, plural, =1 {Dokumentum} other {Dokumentumok}} bezárása a művelet végrehajtásához.\",\"app.type.designSpecs\":\"TERVEZÉSI SPECIFIKÁCIÓK\",\"app.type.prototype\":\"PROTOTÍPUS\",\"app.type.publishedLink\":\"KÖZZÉTETT LINK\",\"popover.header\":\"Működjön együtt egy projekten másokkal, és ossza meg munkáját, hogy visszajelzést kapjon.\",\"popover.linkout\":\"Bővebben\",\"team.libraries.filter.all\":\"Mind\",\"team.libraries.filter.addedToYourLibraries\":\"Hozzáadva a Saját könyvtárakhoz\",\"team.libraries.filter.notAdded\":\"Nincs hozzáadva\",\"team.spaces.filter.all\":\"Minden\",\"team.spaces.filter.favorited\":\"Kedvencként megjelölt\",\"team.filter.empty.heading\":\"Egyetlen projekt sem felel meg a kiválasztott szűrőnek\",\"team.filter.empty.description1\":\"Nincs találat a következőre: \",\"team.filter.empty.description2\":\" ebben a listában. Ellenőrizze, hogy a szavakat helyesen írta-e le, vagy próbáljon meg más kulcsszavakat használni.\",\"team.filter.no.match.description\":\"Nincs találat ebben a listában. Ellenőrizze, hogy a szavakat helyesen írta-e le, vagy próbáljon más szűrési feltételeket használni.\",\"team.filter.filterText\":\"{filter}\",\"team.header.other.teams\":\"Más munkaterületek\",\"space.empty.heading\":\"Minden egy térben, mindenki naprakész\",\"space.empty.description\":\"Töltse meg a projektet munkafájlokkal és kapcsolódó anyagokkal. Hívja meg az együttműködőket, hogy csatlakozzanak, és ők is adják hozzá azt, amin dolgoznak.\",\"space.empty.canvasHeading\":\"CREATIVE CLOUD CANVAS\",\"space.empty.actionsHeading\":\"ADJON TARTALMAT A PROJEKTHEZ\",\"space.empty.createCanvas\":\"Új vászon\",\"space.empty.upload\":\"Fájlok hozzáadása\",\"space.empty.createFolder\":\"Új mappa\",\"space.empty.createWeblink\":\"Internetes hivatkozások\",\"space.empty.addResource\":\"Könyvtár\",\"folder.empty.heading\":\"Ez a mappa üres.\",\"folder.empty.description\":\"A kitöltéshez kezdje el a fájlok hozzáadását.\",\"folder.discard.heading\":\"Ezt a mappát törölték.\",\"folder.discard.description\":\"Forduljon a rendszergazdához, ha úgy gondolja, hogy ez tévedés, vagy böngésszen más tartalmak között.\",\"folder.error.description\":\"Hiba történt a tartalom betöltésekor ebből a mappából.\",\"space.empty.section.createACanvas\":\"Hozzon létre egy vásznat\",\"tooltip.opensInBrowser\":\"A böngészőben nyílik meg\",\"space.empty.workingFiles\":\"Folyamatosan adjon hozzá ehhez a projekthez\",\"space.empty.canvasPopoverTitle\":\"Próbálja ki a Creative Cloud Canvast (béta)\",\"space.empty.canvasPopoverContent\":\"Használjon vásznakat a kreatív munka elrendezéséhez, megjelenítéséhez és felülvizsgálatához.\",\"space.error.heading\":\"A projekt nem tölthető be\",\"space.error.description\":\"Hiba történt a tartalom betöltésekor erről a projektről.\",\"createTeamWizard.createTeam.sidebarHeading\":\"Létrehozás\",\"createTeamWizard.createTeam.sidebarCopy\":\"Hozzon létre egy munkaterületet, hogy közös nevezőn és rendezetten tartsa a csapattagokat.\",\"createTeamWizard.createTeam.sidebarCopy.adminconsole\":\"Hozzon létre egy helyet, ahol csapata együttműködhet és fájlokat oszthat meg.\",\"createTeamWizard.createTeam.sidebarLink\":\"További tudnivalók\",\"createTeamWizard.createTeam.contentHeading\":\"Új munkaterület\",\"createTeamWizard.createTeam.loading\":\"A(z) „{name}” munkaterület létrehozása\",\"createTeamWizard.inviteMembers.sidebarHeading\":\"Hívjon meg tagokat a „{name}” munkaterületre\",\"createTeamWizard.inviteMembers.sidebarCopy\":\"Kezdje el beírni a nevet vagy az e-mail-címet a tagok meghívásához, vagy hagyja ki ezt a lépést, és hívja meg őket később.\",\"createTeamWizard.inviteMembers.loading\":\"Tagok meghívása a „{name}” munkaterületre\",\"createTeamWizard.inviteMembers.contentHeading\":\"Hívja meg a tagokat\",\"createTeamWizard.inviteMembers.successToast\":\"A tagokat hozzáadtuk az új munkaterülethez\",\"createTeamWizard.progress\":\"{current}/{total} lépés\",\"createTeamWizard.skipStep\":\"Kihagy\",\"teamDialog.createTeam.label\":\"Létrehozás\",\"teamDialog.createTeam.infoBox.description\":\"Az Ön által létrehozott munkaterülethez csak meghívás alapján lehet csatlakozni, és alapértelmezés szerint minden tag szerkesztési jogosultsággal rendelkezik.\",\"teamDialog.editTeam.label\":\"Munkaterület szerkesztése\",\"teamDialog.nameSection.placeholder\":\"Adjon nevet az új munkaterületnek\",\"teamDialog.nameSection.label\":\"Munkaterület neve\",\"teamDialog.permissionsSection.label\":\"Ki szerkesztheti ezt munkaterületet?\",\"teamDialog.permissionsSection.option.onlyInvited\":\"Csak meghívottak\",\"teamDialog.descriptionSection.label\":\"Munkaterület leírása (opcionális)\",\"teamDialog.descriptionSection.placeholder\":\"Írjon néhány szót a munkaterületéről\",\"teamsSidebar.noTeams\":\"Nincsenek munkaterületek\",\"teamsSidebar.newTeamButton\":\"Létrehozás\",\"teamsSidebar.adminTour.title\":\"Új! Munkaterületek létrehozása\",\"teamsSidebar.adminTour.content\":\"Mostantól az adminisztrátorok munkaterületeket hozhatnak létre a Creative Cloud szolgáltatásban a weben, így könnyebben szervezhetők a megosztott munkák.\",\"teamsSidebarTeam.newSpaceButton\":\"Új projekt\",\"teamsSidebarTeam.header.newBadge\":\"ÚJ\",\"teamsSidebarTeam.header.otherTeams\":\"Más munkaterületekből\",\"teamsSidebarTeam.header.teams\":\"MUNKATERÜLETEK\",\"teamsSidebarTeam.header.previewLabel\":\"(Előnézet)\",\"teamsSidebarTeam.header.previewCopy\":\"A munkaterületek és a projektek a Private Beta program részét képezik.\",\"teamsSidebarTeam.header.previewLearnMoreText\":\"További tudnivalók\",\"teamsSidebarTeam.message.loading\":\"Betöltés...\",\"teamsSidebarTeam.message.noSpaces\":\"Nincsenek munkaterületei vagy projektjei.\",\"teamsSidebarTeam.message.offline\":\"Nincs kapcsolat. Csatlakozzon újra a munkaterületek és a projektek megtekintéséhez.\",\"teamsSidebarTeam.message.error\":\"Probléma merült fel a munkaterületek és projektek betöltése közben.\",\"teams1up.error.description\":\"Probléma merült fel a projektek betöltése közben.\",\"teams1up.error.heading\":\"Nem sikerült betölteni a projekteket\",\"otherTeams.emptyMessage.header\":\"A munkaterület oldala nem tekinthető meg\",\"otherTeams.emptyMessage.description1\":\"Eltávolították, vagy elhagyta az utolsó projektet a következő használatával: \",\"otherTeams.emptyMessage.description2\":\" szakasz nem látható. Forduljon a rendszergazdához, ha úgy gondolja, hogy ez tévedés.\",\"spaceTour.step0.title\":\"Itt vannak a projektjei\",\"spaceTour.step0.content\":\"A projektek segítik a csapatokat az együttműködésben, valamint a fájlok és erőforrások összegyűjtésében, rendszerezésében és megosztásában.\",\"spaceTour.step1.title\":\"Adjon hozzá mindent, ami a projekthez szükséges\",\"spaceTour.step1.content\":\"Egy helyen tudhatja a munkafájlokat, referenciaképeket, erőforrásokat és egyebeket.\",\"spaceTour.step2.title\":\"Állítsa be (és felejtse el) az engedélyeket\",\"spaceTour.step2.content\":\"A meghíváskor rendelje hozzá a megfelelő hozzáférést az együttműködőkhöz az időtakarékos és zökkenőmentes csatlakozás érdekében. Csak megtekintésre szánt csomagokat küldhet az érintetteknek felülvizsgálat és visszajelzés céljából.\",\"error.cantCreateSpace\":\"A munkaterület tárhelye tele van\",\"error.exceedQuota.create.detail.description1\":\"Nem hozhat létre most semmi újat. Válassza a(z) \",\"error.exceedQuota.description2\":\" lehetőséget tárhely felszabadításához.\",\"error.exceedQuota.add.detail.description1\":\"Nem adhat hozzá most semmi újat. Válassza a(z) \",\"error.move.generic\":\"Az áthelyezés nem lehetséges, mert hiba lépett fel\",\"error.move.signedOut\":\"Nem lehet áthelyezni, mert kijelentkezett\",\"error.move.permissionRevoked\":\"Az áthelyezés nem lehetséges, mert Önt eltávolították a projektből\",\"error.move.deleted\":\"Az áthelyezés nem lehetséges, mert valaki már törölte az elemet\",\"error.move.duplicate\":\"Az áthelyezés nem lehetséges, mert ez már létezik ott, ahová megpróbálta áthelyezni\",\"error.copy.generic\":\"A másolás nem lehetséges, mert hiba lépett fel\",\"error.copy.signedOut\":\"Nem lehet másolni, mert kijelentkezett\",\"error.copy.permissionRevoked\":\"A másolás nem lehetséges, mert Önt eltávolították a projektből\",\"error.copy.deleted\":\"A törlés nem lehetséges, mert valaki már törölte az elemet\",\"error.copy.duplicate\":\"Nem lehet másolni, mert ez már létezik ott, ahol megpróbált másolni\",\"checkbox.select\":\"Választ\",\"listItem.fileSize\":\"Fájlméret\",\"facepile.additionalMembers\":\"További tagok +{count}\",\"facepile.memberName\":\"{name}, tag\",\"coachmark.information\":\"információ\",\"toolbar.tools\":\"eszközök\",\"griditem.error.message\":\"Nem tölthető be\",\"griditem.error.button\":\"Ismét\",\"ats.move.extendedNotification\":\"Értesítést fog kapni, ha az áthelyezés befejeződött.\",\"file.deleted.error.heading\":\"Nem lehet {operation} a fájlt\",\"file.deleted.error.description\":\"Nem lehet {operation} a fájlt, mert törölték. Állítsa vissza a töröltek közül, és próbálja újra, vagy válasszon más helyet.\",\"file.deleted.rename.error.description\":\"Nem lehet átnevezni a fájlt, mert törölték. A fájl visszaállításához válassza a ki a Tovább a törölt elemekre lehetőséget.\"}");

/***/ }),

/***/ "PRdV":
/***/ (function(module) {

module.exports = JSON.parse("{\"close\":\"Zamknij\",\"error\":\"Błąd\",\"info\":\"Informacja\",\"success\":\"Powodzenie\",\"warning\":\"Ostrzeżenie\"}");

/***/ }),

/***/ "PTvt":
/***/ (function(module, exports, __webpack_require__) {

module.exports = __webpack_require__.p + "assets/start/XD_Preset_Custom@2x.png";

/***/ }),

/***/ "PUkj":
/***/ (function(module) {

module.exports = JSON.parse("{\"a11y.button.canvases\":\"{name}\",\"a11y.button.libraries\":\"{name}, библиотека\",\"a11y.button.listGridToggle\":\" переключение вида просмотра, {toggledView, select, grid {сетка} list {список}} просмотр списка\",\"a11y.button.project\":\"{name}, проект\",\"a11y.button.published\":\"{name}, {extension}\",\"a11y.button.selectFolder\":\"Выбрать папку\",\"a11y.button.working\":\"{name}, {extension}, изменено {modified}\",\"a11y.strings.folder\":\"папка\",\"header.action.newProject\":\"Создать проект\",\"header.action.newLibrary\":\"Новая библиотека\",\"header.action.browseAll\":\"Просмотреть все\",\"header.Name\":\"Название\",\"header.Size\":\"Размер\",\"header.Sharing\":\"Участники\",\"header.Team\":\"Рабочая среда\",\"header.DateModified\":\"Изменено\",\"header.DateCreated\":\"Создан\",\"header.Status\":\"В избранном\",\"header.SortBy\":\"Сортировать по\",\"header.sort.label\":\"Сортировать\",\"header.ChangeSortDirection\":\"Изменить порядок сортировки\",\"header.SortBy.asc\":\"По возрастанию\",\"header.SortBy.desc\":\"По убыванию\",\"header.selectAll\":\"Выделить все\",\"header.reverseOrder\":\"Обратный порядок\",\"header.showCompatible\":\"Совместимые файлы\",\"header.showEverything\":\"Все\",\"product.illustrator.web\":\"Illustrator Web (Beta)\",\"product.photoshop.web\":\"Photoshop Web (Beta)\",\"status.followed\":\"Да\",\"status.unfollowed\":\"Нет\",\"team.usm.defaultName\":\"Рабочая среда {name}\",\"space.access.private.description\":\"Только приглашенные пользователи\",\"space.access.private.tooltip\":\"Только приглашенные пользователи имеют доступ к проекту\",\"space.access.team.description\":\"Любой участник рабочей среды и приглашенные пользователи\",\"space.access.team.tooltip\":\"Все участники группы «{team}» имеют доступ к проекту\",\"yourProjects.title\":\"Проекты\",\"yourProjects.librariesTab.title\":\"Библиотеки рабочей группы\",\"yourProjects.empty.spaces\":\"Создайте дополнительные проекты и пригласите больше участников рабочей среды\",\"browseAll.title\":\"Просмотреть все\",\"yourFiles.title\":\"Мои документы\",\"yourLibraries.title\":\"Библиотеки\",\"yourLibraries.metadata\":\"БИБЛИОТЕКА\",\"canvas.metadata\":\"ХОЛСТ\",\"projectInfo.action.view\":\"Просмотреть сведения\",\"projectInfo.action.edit\":\"Редактировать проект\",\"projectInfo.empty.cta\":\"Создать проект\",\"projectInfo.empty.description\":\"Проекты Creative Cloud упрощают поиск, упорядочивание, совместное использование и принятие решений, объединяя все необходимое для работы над творческими проектами в одном месте.\",\"projectInfo.empty.heading\":\"Больше творчества, меньше нагрузки.\",\"projectInfo.error.description\":\"Повторите попытку позже\",\"projectInfo.error.heading\":\"Не удалось загрузить содержимое из раздела «{section}»\",\"projectInfo.new.error.title\":\"Не удалось создать проект\",\"projectInfo.new.noPermission.description\":\"Обратитесь к администратору за дополнительными сведениями.\",\"projectInfo.title.create\":\"НОВЫЙ ПРОЕКТ\",\"projectInfo.title.edit\":\"РЕДАКТИРОВАТЬ ПРОЕКТ\",\"projectInfo.title.view\":\"СВЕДЕНИЯ О ПРОЕКТЕ\",\"projectInfo.access.title\":\"Кто может редактировать этот проект?\",\"projectInfo.access.warning\":\"Некоторые подписчики могут утратить доступ к проекту, если вы измените уровень доступа на «Только приглашенные пользователи».\",\"projectInfo.organization\":\"Организация\",\"projectInfo.organization.placeholder\":\"Выберите один вариант\",\"projectInfo.description\":\"Описание\",\"textField.invalid.characters\":\"В названии нельзя использовать следующие символы: \\\\\\\\ / * ? \\\" | : < >\",\"textField.invalid.duplicateName\":\"В данной организации уже существует проект с таким названием.\",\"textField.invalid.duplicateName.space\":\"В данной рабочей среде уже существует проект с таким названием.\",\"textField.invalid.duplicateName.team\":\"В данной организации уже существует рабочая среда с таким названием.\",\"textField.invalid.empty\":\"Название не должно быть пустым\",\"textField.invalid.generic\":\"Недопустимое название\",\"textField.invalid.length\":\"Название не может содержать более 50 символов.\",\"textField.invalid.nameEndsWithDot\":\"Названия не могут заканчиваться точкой\",\"textField.invalid.offline\":\"Подключитесь повторно, чтобы получить доступ ко всем вашим проектам и рабочим средам. Чтобы просмотреть локальные файлы из ваших проектов, перейдите на главную страницу.\",\"projectInfo.textField.placeholder\":\"Назовите этот проект\",\"projectInfo.team\":\"Рабочая среда\",\"projectInfo.description.placeholder\":\"Пример: файлы, отзывы и справочные материалы для клиентского проекта.\",\"projectInfo.description.invalidLength\":\"Описание не может содержать больше 1000 символов\",\"projectInfo.toast.success.new\":\"Успешно создан проект: {name}\",\"projectInfo.toast.success.update\":\"Успешно обновлен проект: {name}\",\"projectInfo.toast.error.generic\":\"Не удалось {create, select, true {создать} other {изменить}} проект\",\"team.empty.heading\":\"Проекты обеспечивают согласованность работы разных участников\",\"team.empty.description\":\"Надоела блокировка файлов, путаница с версиями и отправка скриншотов для проверки? Используйте пространства для организации проектов, сбора ресурсов и отзывов, а также для обмена файлами, над которыми должна работать вся рабочая группа.\",\"team.empty.createSpace\":\"Создать проект\",\"team.empty.inviteMembers\":\"Пригласить участников\",\"team.empty.startHere\":\"НАЧАТЬ ЗДЕСЬ\",\"team.create.success\":\"Успешно создана рабочая среда: {name}\",\"team.create.error.generic\":\"Не удалось создать рабочую среду.\",\"team.edit.success\":\"Успешно обновлена рабочая среда: {name}\",\"team.edit.error.generic\":\"Не удалось обновить рабочую среду.\",\"team.archive.success\":\"Удалено: {count, plural, =1 {# рабочая среда} few {# рабочих среды} many {# рабочих сред} other {# рабочей среды}}.\",\"team.archive.error.generic\":\"Не удалось удалить {count, plural, =1 {# рабочую среду} few {# рабочих среды} many {# рабочих сред} other {# рабочей среды}}.\",\"team.error.generic\":\"Произошла ошибка.\",\"project1Up.action.projectInfo\":\"Просмотреть сведения\",\"project1up.region.space.ariaLabel\":\"{projectName}, проект\",\"project1Up.section.libraries\":\"Библиотеки\",\"project1Up.section.libraries.empty.cta\":\"Добавить Creative Cloud Libraries\",\"project1Up.section.libraries.empty.description\":\"Добавьте ссылки на библиотеки, необходимые для выполнения работы.\",\"project1Up.section.libraries.empty.heading\":\"Соберите все в одном месте\",\"project1Up.section.filter\":\"Фильтр\",\"project1Up.section.filter.label\":\"Фильтр по ключевому слову\",\"project1Up.section.filter.enterKeyword\":\"Введите ключевое слово\",\"project1Up.section.filterFiles.empty.heading\":\"Отсутствуют результаты, соответствующие выбранному фильтру\",\"project1Up.section.compatibleFiles.empty.heading\":\"В этом проекте нет совместимых файлов\",\"project1Up.section.workingFiles\":\"Рабочие файлы\",\"project1Up.section.workingFiles.empty.addFiles\":\"Добавить файлы\",\"project1Up.section.workingFiles.empty.createFolder\":\"Создать папку\",\"project1Up.section.workingFiles.empty.description\":\"Выполняйте итерацию по проектам и работайте совместно с другими участниками.\",\"project1Up.section.workingFiles.empty.heading\":\"Работайте над тем, что требуется, когда это необходимо\",\"project1Up.section.published\":\"Опубликовано\",\"project1Up.section.published.empty.cta\":\"Как поделиться ссылками\",\"project1Up.section.published.empty.description\":\"Отправляйте ссылки с доступом «только для просмотра», чтобы получать отзывы от важных людей в нужное время.\",\"project1Up.section.published.empty.description.readonly\":\"Если пользователю требуется отзыв или обзор, он может добавить ссылку здесь.\",\"project1Up.section.published.empty.heading\":\"Публикуйте с пользой\",\"project1Up.section.published.empty.heading.readonly\":\"В этом проекте отсутствуют опубликованные элементы\",\"project1Up.section.canvases\":\"Холсты\",\"project1Up.section.canvases.empty.cta\":\"Добавление холстов Creative Cloud\",\"project1Up.section.canvases.empty.description\":\"Добавление ссылок на то, что необходимо для выполнения работы.\",\"project1Up.section.canvases.empty.heading\":\"Соберите все в одном месте\",\"project1Up.section.files\":\"Файлы\",\"project1Up.error.accessDenied.heading\":\"У вас нет доступа\",\"project1Up.error.accessDenied.description\":\"Вы были удалены из этого проекта. Если вы считаете, что это ошибка, свяжитесь с администратором.\",\"project1Up.header.seeAll\":\"Показать все\",\"project1up.subheader.selected\":\"{count, plural, =1 {Выбран # элемент} few {Выбрано # элемента} many {Выбрано # элементов} other {Выбрано # элементов}}\",\"project1up.subheader.emptyDescription\":\"Добавьте описание в свой проект\",\"project1up.subheader.canvases.title\":\"Холсты\",\"project1up.subheader.canvases.subtitle\":\"В РАБОТУ: СУБТИТРЫ ХОЛСТОВ\",\"project1up.subheader.libraries.title\":\"Библиотеки\",\"project1up.subheader.libraries.subtitle\":\"Участники могут добавлять ссылки на библиотеки Creative Cloud Libraries здесь.\",\"project1up.subheader.working.title\":\"Рабочие файлы\",\"project1up.subheader.working.subtitle\":\"Участники проекта могут редактировать эти файлы.\",\"project1up.subheader.output.title\":\"Опубликовано\",\"project1up.subheader.output.subtitle\":\"{contributor, select, true {Можно публиковать доступные только для чтения версии работ по проекту для тех, кто не работает в проекте.} other {Просмотр и комментирование этих элементов только для чтения}}\",\"project.subtitle\":\"ПРОЕКТ\",\"project.countContributors\":\"{count, plural, =1 {# участник} few {# участника} many {# участников} other {# участников}}\",\"project.versionError.reload.description\":\"Попробуйте обновить страницу в браузере.\",\"project.versionError.reload.title\":\"Не удается получить доступ к проекту\",\"project.versionError.update.description\":\"Доступ к проекту можно получить после обновления приложения.\",\"project.versionError.update.title\":\"Обновите {appName}, чтобы открыть\",\"project.alreadyDiscarded.title\":\"Проект удален\",\"project.alreadyDiscarded.description\":\"Если считаете, что это ошибка, свяжитесь с администратором или просмотрите другой контент.\",\"project.deleted.title\":\"Этот проект окончательно удален\",\"project.deleted.description\":\"У вас нет доступа к этому проекту, потому что он недоступен.\",\"project.metadataError.backLabel\":\"Вернуться к проектам\",\"project.metadataError.description\":\"Мы не можем найти искомый проект, либо у вас нет доступа.\",\"project.metadataError.title\":\"Произошла ошибка.\",\"folder.subtitle\":\"ПАПКА\",\"libraries.toast.add.start\":\"Добавление {count, plural, =1 {# библиотеки} few {# библиотек} many {# библиотек} other {# библиотеки}}\",\"libraries.toast.add.success\":\"{count, plural, =1 {Добавлена # библиотека} few {Добавлено # библиотеки} many {Добавлено # библиотек} other {Добавлено: # библиотеки}}\",\"libraries.toast.add.error\":\"Не удалось добавить {count, plural, =1 {# библиотеку} few {# библиотеки} many {# библиотек} other {# библиотеки}}. Повторите попытку.\",\"libraries.toast.add.duplicate\":\"Библиотека уже существует\",\"libraries.toast.add.onlyDuplicates\":\"Невозможно добавить {count, plural, =1 {# библиотеку, так как она уже существует} few {# библиотеки, так как они уже существуют} many {# библиотек, так как они уже существуют} other {# библиотеки, так как они уже существуют}}.\",\"libraries.toast.delete.success\":\"Удаление {count, plural, =1 {библиотеки} few {# библиотек} many {# библиотек} other {# библиотек}} успешно завершено\",\"libraries.toast.delete.error\":\"Не удалось удалить {count, plural, =1 {# библиотеку} few {# библиотеки} many {# библиотек} other {# библиотек}}\",\"libraries.toast.follow.inProgress\":\"Вы подписаны на {count, plural, =1 {# библиотеку} few {# библиотеки} many {# библиотек} other {# библиотеки}}\",\"libraries.toast.follow.success\":\"Вы подписаны на {count, plural, =1 {# библиотеку} few {# библиотеки} many {# библиотек} other {# библиотеки}}\",\"libraries.toast.follow.error\":\"Не удалось подписаться на {count, plural, =1 {# библиотеку} few {# библиотеки} many {# библиотек} other {# библиотеки}}\",\"libraries.toast.unfollow.inProgress\":\"Вы отписались от {count, plural, =1 {# библиотеки} few {# библиотек} many {# библиотек} other {# библиотеки}}\",\"libraries.toast.unfollow.success\":\"Вы отписались от {count, plural, =1 {# библиотеки} few {# библиотек} many {# библиотек} other {# библиотеки}}\",\"libraries.toast.unfollow.error\":\"Не удалось отписаться от {count, plural, =1 {# библиотеки} few {# библиотек} many {# библиотек} other {# библиотеки}}\",\"libraries.modal.empty.heading\":\"Библиотеки отсутствуют\",\"libraries.modal.empty.description\":\"Ваша организация не поделилась ни одной библиотекой\",\"libraries.modal.error.limitExceeded\":\"Не удалось добавить библиотеку\",\"libraries.modal.error.limitExceeded.detail\":\"В проект можно добавить до 100 библиотек. Удалите несколько библиотек, чтобы добавить еще.\",\"libraries.brokenResources\":\"Некоторые библиотеки не отображаются, поскольку у вас нет доступа. Обратитесь к другим участникам за дополнительными сведениями.\",\"copy.start\":\"Копирование: {count, plural, =1 {# элемент} few {# элемента} many {# элементов} other {# элемента}}\",\"copy.failure\":\"Не удается скопировать {count, plural, =1 {# элемент} few {# элемента} many {# элементов} other {# элемента}}\",\"copy.failure.partial\":\"Не удается скопировать некоторые элементы\",\"copy.success\":\"Скопировано: {count, plural, =1 {# элемент} few {# элемента} many {# элементов} other {# элемента}}\",\"copy.conflictSuffix\":\"копия\",\"move.start\":\"Идет перемещение {count, plural, =1 {# элемента} few {# элементов} many {# элементов} other {# элемента}}\",\"move.failure\":\"Не удается переместить {count, plural, =1 {# элемент} few {# элемента} many {# элементов} other {# элемента}}\",\"move.failure.partial\":\"Не удается переместить некоторые элементы\",\"move.success\":\"Перемещено: {count, plural, =1 {# элемент} few {# элемента} many {# элементов} other {# элемента}}\",\"upload.start\":\"Отправка: {count, plural, =1 {# элемент} few {# элемента} many {# элементов} other {# элемента}}\",\"upload.failure\":\"Не удается отправить {count, plural, =1 {# элемент} few {# элемента} many {# элементов} other {# элемента}}\",\"upload.failure.partial\":\"Не удается отправить некоторые элементы\",\"upload.failure.snapshot\":\"Этот элемент не поддерживается\",\"upload.success\":\"Отправлено: {count, plural, =1 {# элемент} few {# элемента} many {# элементов} other {# элемента}}\",\"download.start\":\"Загружаются элементы: {count, plural, =1 {#} few {#} many {#} other {#}}\",\"download.failure\":\"Не удается загрузить элементы: {count, plural, =1 {#} few {#} many {#} other {#}}\",\"download.failure.partial\":\"Не удается скачать некоторые элементы\",\"download.success\":\"Загружено элементов: {count, plural, =1 {#} few {#} many {#} other {#}}\",\"delete.failure\":\"Не удается удалить {count, plural, =1 {# элемент} few {# элемента} many {# элементов} other {# элемента}}\",\"delete.failure.partial\":\"Не удается удалить некоторые элементы\",\"delete.success\":\"{count, plural, =1 {Удален # элемент} few {Удалено # элемента} many {Удалено # элементов} other {Удалено # элемента}}\",\"jobs.failure\":\"{count, plural, =1 {Неисправен # элемент} few {Неисправно # элемента} many {Неисправно # элементов} other {Неисправно # элемента}}\",\"jobs.inProgress\":\"Обработка...\",\"jobs.success\":\"{count, plural, =1 {Завершен # элемент} few {Завершено # элемента} many {Завершено # элементов} other {Завершено # элемента}}\",\"restore.failure\":\"Не удается восстановить {count, plural, =1 {# элемент} few {# элемента} many {# элементов} other {# элемента}}\",\"restore.failure.partial\":\"Не удается восстановить некоторые элементы\",\"restore.success\":\"{count, plural, =1 {Восстановлен # элемент} few {Восстановлено # элемента} many {Восстановлено # элементов} other {Восстановлено # элемента}}\",\"rename.start\":\"Переименование\",\"rename.success\":\"Переименовано: {count, plural, =1 {# элемент} few {# элемента} many {# элементов} other {# элемента}}\",\"rename.failure\":\"Ошибка сервера. Не удалось переименовать элемент.\",\"rename.failure.conflict\":\"Элемент с таким названием уже существует\",\"rename.offline.heading\":\"Невозможно переименовать\",\"rename.offline\":\"Вы не в сети и не можете переименовать элемент. Подключитесь к Интернету, чтобы выполнить это действие.\",\"bookmark.follow.error\":\"Нельзя добавить этот проект в избранные\",\"bookmark.unfollow.error\":\"Нельзя удалить этот проект из избранного\",\"bookmark.follow.success\":\"Успешно подписались на {projectName}\",\"bookmark.unfollow.success\":\"Успешно отписались от {projectName}\",\"bookmark.bulk.follow.success\":\"Вы успешно подписались на {count, plural, =1 {# элемент} few {# элемента} many {# элементов} other {# элемента}}\",\"bookmark.bulk.follow.partial\":\"Не удается подписаться на некоторые элементы\",\"bookmark.bulk.follow.error\":\"Не удается подписаться на {count, plural, =1 {# элемент} few {# элемента} many {# элементов} other {# элемента}}\",\"bookmark.bulk.unfollow.success\":\"Вы успешно отписались от {count, plural, =1 {# элемента} few {# элементов} many {# элементов} other {# элемента}}\",\"bookmark.bulk.unfollow.partial\":\"Не удается отписаться от некоторых элементов\",\"bookmark.bulk.unfollow.error\":\"Не удается отписаться от {count, plural, =1 {# элемента} few {# элементов} many {# элементов} other {# элемента}}\",\"copyLink.success\":\"Ссылка скопирована в буфер обмена.\",\"copyLink.failure\":\"Не удалось скопировать ссылку\",\"starterUser.project1upNavigation\":\"В ваш начальный план не входит открытие документов в проектах\",\"starterUser.project1upNavigationCDPSave\":\"В ваш начальный план не входит сохранение документов в проектах\",\"invite.failure\":\"Не удалось отправить приглашения. Попробуйте еще раз.\",\"accessibility.backButton\":\"Назад\",\"button.role\":\"Кнопка\",\"button.actions\":\"Действия\",\"button.add\":\"Добавить\",\"button.addFiles\":\"Добавить файлы\",\"button.addLibrary\":\"Добавить библиотеку\",\"button.createDocument\":\"Новый файл «{appName}»\",\"button.library\":\"Библиотека\",\"button.back\":\"Назад\",\"button.browse\":\"Просмотреть все\",\"button.cancel\":\"Отмена\",\"button.okay\":\"ОК\",\"button.canvas\":\"Холст\",\"button.addCanvas\":\"Новый холст\",\"button.changeDefaultApp\":\"Изменить приложение, заданное по умолчанию...\",\"button.close\":\"Закрыть\",\"button.continue\":\"Продолжить\",\"button.copy\":\"Копировать в... \",\"button.copyLink\":\"Копировать ссылку\",\"button.create\":\"Создать\",\"button.createNewFolder\":\"Создать папку\",\"button.newFile\":\"Новый файл\",\"button.newFolder\":\"Новая папка\",\"button.delete\":\"Удалить\",\"button.deleteResource\":\"Удалить\",\"button.done\":\"Готово\",\"button.download\":\"Загрузить\",\"button.favorite\":\"Избранное\",\"button.follow\":\"Подписаться\",\"button.invite\":\"Пригласить\",\"button.inviteLabel\":\"Пригласить пользователей\",\"button.leave\":\"Выйти\",\"button.leaveProject\":\"Выйти рабочая среда\",\"button.move\":\"Переместить в...\",\"button.next\":\"Далее\",\"button.ok\":\"ОК\",\"button.open\":\"Открыть\",\"button.openWith\":\"Открыть с помощью\",\"button.open.appName\":\"{appName} {isDefault, select, true {(по умолчанию)} other {}}\",\"button.redo\":\"Повторить попытку\",\"button.reload\":\"Перезагрузить\",\"button.rename\":\"Переименовать\",\"button.restore\":\"Восстановить\",\"button.retry\":\"Повторить\",\"button.save\":\"Сохранить\",\"button.select\":\"Выбрать\",\"button.share\":\"Поделиться\",\"button.skipTour\":\"Пропустить\",\"button.undo\":\"Отменить\",\"button.unfavorite\":\"Удалить из избранного\",\"button.unfollow\":\"Отписаться\",\"button.update\":\"Обновить\",\"button.upgrade\":\"Обновить\",\"button.view\":\"Показать все\",\"button.viewProject\":\"Просмотр проекта\",\"button.viewTarget\":\"Просмотр\",\"button.createWeblink\":\"Добавить веб-ссылку\",\"button.leaveTeam\":\"Выйти из рабочей среды\",\"button.renameTeam\":\"Переименовать рабочую среду\",\"button.editTeam\":\"Редактировать сведения о рабочей среде\",\"button.archiveTeam\":\"Удалить рабочую среду\",\"button.upload\":\"Отправить файлы\",\"button.goToDeleted\":\"Посмотреть удаленное\",\"button.viewEverything\":\"Просмотреть все\",\"button.viewInWeb\":\"Просмотр на веб-сайте\",\"abbreviations.fileSize.byte\":\"B\",\"abbreviations.fileSize.kilobyte\":\"КБ\",\"abbreviations.fileSize.megabyte\":\"МБ\",\"abbreviations.fileSize.gigabyte\":\"ГБ\",\"abbreviations.fileSize.terabyte\":\"ТБ\",\"statusIcon.conflicted\":\"Конфликт синхронизации\",\"statusIcon.onlineOnly\":\"Только при подключении к Интернету\",\"statusIcon.availableOffline\":\"Доступно в автономном режиме\",\"statusIcon.syncing\":\"Синхронизация...\",\"statusIcon.waitingToSync\":\"Ожидание синхронизации\",\"statusMessage.offline.description\":\"Подключитесь повторно, чтобы получить доступ ко всем вашим проектам и рабочим средам. Чтобы просмотреть локальные файлы из ваших проектов, перейдите на главную страницу.\",\"statusMessage.offline.heading\":\"Вы отключены\",\"statusMessage.offline.toast\":\"Подключение прервано, поэтому некоторые функции и файлы могут быть недоступны.\",\"toggle.listView\":\"Отображение списка\",\"toggle.gridView\":\"Отображение миниатюр\",\"color.fuchsia\":\"Фуксия\",\"color.indigo\":\"Индиго\",\"color.celery\":\"Салатовый\",\"color.magenta\":\"Пурпурный\",\"color.yellow\":\"Желтый\",\"color.seafoam\":\"Морская пена\",\"color.chartreuse\":\"Фисташковый\",\"color.purple\":\"Лиловый\",\"color.blue\":\"Синий\",\"color.red\":\"Красный\",\"color.orange\":\"Оранжевый\",\"color.green\":\"Зеленый\",\"color.label\":\"Цвет проекта\",\"tooltip.offline.general\":\"Для совершения этого действия требуется подключение к Интернету\",\"tooltip.moreFaces\":\"+ еще {number}\",\"action.leave.space.success\":\"Вы вышли из {count, plural, =1 {# проекта} few {# проектов} many {# проектов} other {# проекта}}\",\"action.leave.prototype.success\":\"Удален доступ к {count, plural, =1 {# прототипу} few {# прототипам} many {# прототипам} other {# прототипа}}\",\"action.leave.file.success\":\"Удален доступ к {count, plural, =1 {# файлу} few {# файлам} many {# файлам} other {# файла}}\",\"action.leave.canvas.success\":\"Удален доступ к {count, plural, =1 {# холсту} few {# холстам} many {# холстам} other {# холста}}\",\"action.leave.team.success\":\"Вы покинули 1 рабочую среду\",\"action.leave.space.error\":\"Нельзя уйти из этого проекта\",\"action.leave.prototype.error\":\"Нельзя покинуть прототип\",\"action.leave.file.error\":\"Не удается выйти из файла\",\"action.leave.team.error\":\"Нельзя покинуть это рабочее пространство\",\"action.leave.canvas.error\":\"Не удается выйти из этого холста\",\"action.leave.space.partial.error\":\"Нельзя выйти из всех проектов\",\"action.leave.prototype.partial.error\":\"Нельзя выйти из всех прототипов\",\"action.leave.file.partial.error\":\"Нельзя выйти из всех файлов\",\"action.leave.canvas.partial.error\":\"Нельзя выйти из всех холстов\",\"action.leave.error.onlyContributor\":\"Вы единственный участник. Добавьте еще одного перед выходом.\",\"action.leave.error.addressBookGroupMember\":\"Покиньте группу и попробуйте еще раз.\",\"action.leave.error.admin\":\"Вы не можете выйти, потому что вы администратор.\",\"action.leave.error.generic\":\"Не удается выйти из пространства, так как что-то пошло не так.\",\"action.reportAbuse\":\"Сообщить о нарушении\",\"action.reportAbuse.required\":\"Обязательное для заполнения\",\"action.reportAbuse.titleText\":\"Если вы считаете, что это содержимое Creative Cloud нарушает условия использования Adobe, вы можете сообщить о нарушении, заполнив эту краткую форму.\",\"action.reportAbuse.emailInput\":\"Ваш адрес электронной почты\",\"action.reportAbuse.nameInput\":\"Ваше имя\",\"action.reportAbuse.radioButtonText\":\"Почему вы жалуетесь на это содержимое?\",\"action.reportAbuse.defamation\":\"Клевета\",\"action.reportAbuse.hate\":\"Расистское или разжигающее ненависть содержимое\",\"action.reportAbuse.trademark\":\"Посягательство на товарный знак\",\"action.reportAbuse.pornography\":\"Содержимое сексуального характера\",\"action.reportAbuse.vulgar\":\"Оскорбительное содержимое\",\"action.reportAbuse.other\":\"Другое\",\"action.reportAbuse.inappropriate\":\"Неприемлемо\",\"action.reportAbuse.age\":\"Неточность в возрасте\",\"action.reportAbuse.gender\":\"Гендерная неточность\",\"action.reportAbuse.textAreaTitle\":\"Опишите причину вашей жалобы\",\"action.reportAbuse.describeConcern\":\"Опишите причину жалобы\",\"action.reportAbuse.success\":\"Сообщение о нарушении успешно отправлено\",\"action.reportAbuse.failure\":\"Не удалось отправить сообщение о нарушениях\",\"action.menu.label\":\"Меню «Операция»\",\"action.label\":\"Действие\",\"dialog.genericError.description\":\"Произошла ошибка.\",\"dialog.genericError.title\":\"Неожиданная ошибка\",\"dialog.leave.space.title\":\"Выйти из {count, plural, =1 {{name}} other {проектов}}\",\"dialog.leave.prototype.title\":\"Выйти из {count, plural, =1 {этого прототипа} other {прототипов}}\",\"dialog.leave.file.title\":\"Выйти из {count, plural, =1 {этого файла} other {файлов}}\",\"dialog.leave.canvas.title\":\"Выйти из {count, plural, =1 {этого холста} other {холстов}}\",\"dialog.leave.team.title\":\"Хотите попрощаться?\",\"dialog.leave.team.detail\":\"Вы не сможете отменить это действие, если удалите себя. Свяжитесь с администратором, если хотите, чтобы вас добавили обратно в эту рабочую среду.\",\"dialog.leave.space.detail\":\"Вы утратите доступ к элементам, которые вам не принадлежат и которые находятся в этом проекте. Выход из проекта «{projectName}» нельзя отменить.\",\"dialog.leave.prototype.detail\":\"Вы не сможете снова получить доступ без приглашения.\",\"dialog.leave.file.detail\":\"Вы не сможете снова получить доступ без приглашения.\",\"dialog.leave.canvas.detail\":\"Вы не сможете снова получить доступ без приглашения.\",\"dialog.leave.detail\":\"{type, select, space {ы утратите доступ к элементам, которые вам не принадлежат и которые находятся в {count, plural, =1 {этом проекте} other {этих проектах}}. Выход из {count, plural, =1 {«{name}»} other {этих проектов}} нельзя отменить.} other {Вы не сможете снова получить доступ к {count, plural, =1 {этому проекту} other {этим проектам}} без приглашения{count, plural, =1 {.} other {:}}}}\",\"dialog.deleteFailed.title\":\"Не удается удалить все элементы\",\"dialog.deleteWarning.description\":\"{type, select, spaces {Это действие приведет к удалению содержимого для всех участников этих проектов:} other {Это действие приведет к удалению следующего содержимого для всех участников этого проекта:}}\",\"dialog.deleteWarning.title\":\"{type, select, space {Удалить {count} {count, plural, =1 {проект} few {проекта} many {проектов} other {проекта}}} other {Удалить {count} {count, plural, =1 {элемент} few {элемента} many {элементов} other {элемента}}}}\",\"dialog.deleteFailed.description.unauthorized\":\"Не удается удалить, так как вы исключены из проекта:\",\"dialog.deleteFailed.description.alreadyDeleted\":\"Не удается удалить, так как объект удален другим пользователем ранее:\",\"dialog.deleteFailed.description.unknown\":\"Не удается удалить, так как что-то пошло не так:\",\"dialog.cantCopyAllItems\":\"Не удается скопировать все элементы\",\"dialog.cantCopyBecauseSomethingWentWrong\":\"Не удается выполнить копирование, что-то пошло не так:\",\"dialog.cantCopyBecauseYouWereSignedOut\":\"Невозможно скопировать, потому что вы вышли из системы:\",\"dialog.cantCopyBecauseYouWereRemoved\":\"Невозможно скопировать, так как вы исключены из этого проекта:\",\"dialog.cantCopyBecauseItemWasDeleted\":\"Невозможно скопировать, так как файл удален другим пользователем:\",\"dialog.cantCopyBecauseItemExists\":\"Невозможно скопировать, потому что файл уже существует там, куда вы пытаетесь скопировать:\",\"dialog.cantMoveAllItems\":\"Не удается переместить все элементы\",\"dialog.cantMoveBecauseSomethingWentWrong\":\"Не удается выполнить перемещение, что-то пошло не так:\",\"dialog.cantMoveBecauseYouWereSignedOut\":\"Невозможно переместить, потому что вы вышли из системы:\",\"dialog.cantMoveBecauseYouWereRemoved\":\"Невозможно переместить, так как вы исключены из этого проекта:\",\"dialog.cantMoveBecauseItemWasDeleted\":\"Невозможно переместить, так как файл удален другим пользователем:\",\"dialog.cantMoveBecauseItemExists\":\"Невозможно переместить, потому что файл уже существует там, куда вы пытались его переместить:\",\"dialog.createFolder.error\":\"Ошибка сервера, не удалось сохранить папку\",\"dialog.createFolder.nameConflict\":\"Папка с таким названием уже существует.\",\"dialog.createFolder.placeholder\":\"Название папки\",\"dialog.createFolder.title\":\"Создать папку\",\"dialog.createFolder.success\":\"Папка успешно создана\",\"dialog.createWeblink.error\":\"Неподдерживаемые url-адреса\",\"dialog.createWeblink.tooManyRequests\":\"Непредвиденная ошибка сети. Повторите попытку.\",\"dialog.createWeblink.success\":\"Добавлен 1 элемент\",\"dialog.createWeblink.nameConflict\":\"Заголовок уже существует\",\"dialog.createWeblink.name.placeholder\":\"Введите название для этой ссылки\",\"dialog.createWeblink.link.placeholder\":\"https://\",\"dialog.createWeblink.name\":\"Пользовательский заголовок\",\"dialog.createWeblink.link\":\"Ссылка\",\"dialog.createWeblink.title\":\"Создание веб-ссылки\",\"app.type.webLink\":\"ВЕБ-ССЫЛКА\",\"dialog.createCanvas.error\":\"Не удается создать холст\",\"dialog.move.title\":\"Переместить в проект {projectName}\",\"dialog.move.detail\":\"Перемещение этого элемента изменит доступ к нему.\",\"moveToTeam.confirm.title\":\"Переместить в рабочую среду {name}\",\"moveToTeam.confirm.message\":\"Перемещение ваших проектов сюда изменит круг тех, кто может получить к ним доступ. Ваши проекты будут доступны всем, у кого есть доступ к вашей рабочей среде.\",\"moveToTeam.disabled.differentOrg.tooltip.message\":\"Нельзя переместить проекты в рабочую среду другой организации.\",\"moveToSpace.disabled.differentOrg.tooltip.message\":\"Нельзя переместить элементы в проект другой организации.\",\"moveToTeam.success\":\"Вы переместили {count, plural, =1 {# проект} few {# проекта} many {# проектов} other {# проекта}} в рабочую среду {name}\",\"confirmationDialog.dontShowAgain\":\"Не показывать снова\",\"dialog.open.title\":\"Открыть в браузере\",\"dialog.open.detail\":\"Вы не можете открыть файл в {appName}, но вы можете получить к нему доступ в браузере.\",\"dialog.renameTeam.title\":\"Переименовать рабочую среду\",\"dialog.renameTeam.placeholder\":\"Введите название для этой рабочей среды\",\"dialog.renameTeam.error\":\"Произошла ошибка.\",\"dialog.renameTeam.nameConflict\":\"Это имя уже существует\",\"dialog.archiveTeam.title\":\"Удалить эту рабочую среду?\",\"dialog.archiveTeam.detail\":\"Вы не сможете отменить это действие, если удалите себя. Свяжитесь с администратором, если хотите снова присоединиться к этой рабочей среде.\",\"dialog.saveToCloud.title\":\"Файлы сохранены в Creative Cloud\",\"dialog.saveToCloud.detail\":\"Теперь для вашего облачного документа предлагается история версий, приглашения и совместное редактирование, мгновенный доступ на других устройствах и многое другое. Эти возможности доступны здесь и в приложениях Creative Cloud.\",\"input.invalidCharInput\":\"В имени нельзя использовать следующие символы: \\\\\\\\ / * ? \\\" | :\",\"input.invalidEmptyInput\":\"{names, select, true {Названия} other {Заголовки}} не должны быть пустыми\",\"input.nameTooLong\":\"{names, select, true {Названия} other {Заголовки}} не могут содержать более {maxLength} символов\",\"input.nameEndsWithDot\":\"{names, select, true {Названия} other {Заголовки}} не могут заканчиваться точкой\",\"input.weblink.nameRestricted\":\"Веб-ссылки не могут иметь следующие заголовки: con, prn, aux, nul, com#, lpt#\",\"input.nameRestricted\":\"Недопустимые названия для ресурсов: con/prn/aux/nul/com#/lpt#\",\"input.weblink.invalidCharInput\":\"Заголовки не могут содержать только пробелы или следующие символы: \\\\\\\\ / * ? \\\" | : < > \",\"input.name.invalidCharInput\":\"Названия не могут содержать только пробелы или следующие символы: \\\\\\\\ / * ? \\\" | : < > \",\"cdpFooter.orphanedArtifactsWarning\":\"Опубликованные ссылки, связанные с элементами, которые вы перемещаете, останутся в исходном проекте\",\"cdpFooter.libraryPrivacyWarning\":\"Если у вас есть разрешения на повторный доступ к добавляемой библиотеке, участники проекта смогут просматривать ее.\",\"toast.beforeOp.error.documentIsOpen\":\"Чтобы выполнить это действие, закройте {count, plural, =1 {документ} other {документы}}.\",\"app.type.designSpecs\":\"СПЕЦИФИКАЦИЯ ПРОЕКТА\",\"app.type.prototype\":\"ПРОТОТИП\",\"app.type.publishedLink\":\"ОПУБЛИКОВАННАЯ ССЫЛКА\",\"popover.header\":\"Работайте над проектом совместно с другими людьми и показывайте свою работу для получения отзывов.\",\"popover.linkout\":\"Подробнее\",\"team.libraries.filter.all\":\"Все\",\"team.libraries.filter.addedToYourLibraries\":\"Добавлено в ваши библиотеки\",\"team.libraries.filter.notAdded\":\"Не добавлено\",\"team.spaces.filter.all\":\"Все\",\"team.spaces.filter.favorited\":\"В избранном\",\"team.filter.empty.heading\":\"Отсутствуют проекты, соответствующие выбранному фильтру\",\"team.filter.empty.description1\":\"Не удалось найти никаких результатов для \",\"team.filter.empty.description2\":\" в этом списке. Проверьте правописание или попробуйте использовать другие ключевые слова.\",\"team.filter.no.match.description\":\"Не удалось найти результаты в этом списке. Проверьте правописание или попробуйте использовать другие критерии фильтрации.\",\"team.filter.filterText\":\"{filter}\",\"team.header.other.teams\":\"Другие рабочие среды\",\"space.empty.heading\":\"Всё в одном месте, все работают согласованно\",\"space.empty.description\":\"Заполните проект рабочими файлами и сопутствующими материалами. Пригласите соавторов присоединиться и добавьте то, над чем они работают.\",\"space.empty.canvasHeading\":\"CREATIVE CLOUD CANVAS\",\"space.empty.actionsHeading\":\"ДОБАВЬТЕ КОНТЕНТ В СВОЙ ПРОЕКТ\",\"space.empty.createCanvas\":\"Новый холст\",\"space.empty.upload\":\"Добавить файлы\",\"space.empty.createFolder\":\"Новая папка\",\"space.empty.createWeblink\":\"Веб-ссылки\",\"space.empty.addResource\":\"Библиотека\",\"folder.empty.heading\":\"Папка пуста.\",\"folder.empty.description\":\"Чтобы заполнить, начните добавлять файлы.\",\"folder.discard.heading\":\"Эта папка была удалена.\",\"folder.discard.description\":\"Если считаете, что это ошибка, свяжитесь с администратором или просмотрите другой контент.\",\"folder.error.description\":\"Не удалось загрузить содержимое из этой папки.\",\"space.empty.section.createACanvas\":\"Создайте холст\",\"tooltip.opensInBrowser\":\"Открывается в браузере\",\"space.empty.workingFiles\":\"Продолжайте добавлять в этот проект\",\"space.empty.canvasPopoverTitle\":\"Ознакомьтесь с Creative Cloud Canvas (Beta)\",\"space.empty.canvasPopoverContent\":\"Используйте холсты, чтобы компоновать, визуализировать и просматривать творческие проекты.\",\"space.error.heading\":\"Не удалось загрузить проект\",\"space.error.description\":\"Не удалось загрузить содержимое из этого проекта.\",\"createTeamWizard.createTeam.sidebarHeading\":\"Создать рабочую среду\",\"createTeamWizard.createTeam.sidebarCopy\":\"Создайте рабочую среду, чтобы навести порядок и предоставить всем участникам общую картину.\",\"createTeamWizard.createTeam.sidebarCopy.adminconsole\":\"Настройте место, где ваша рабочая группа может вести совместную работу и обмениваться файлами.\",\"createTeamWizard.createTeam.sidebarLink\":\"Подробнее\",\"createTeamWizard.createTeam.contentHeading\":\"Новая рабочая среда\",\"createTeamWizard.createTeam.loading\":\"Создание рабочей среды «{name}»\",\"createTeamWizard.inviteMembers.sidebarHeading\":\"Пригласите участников в рабочую среду «{name}»\",\"createTeamWizard.inviteMembers.sidebarCopy\":\"Начните вводить имя или адрес электронной почты, чтобы пригласить участников, или пропустите этот шаг и пригласите их позже.\",\"createTeamWizard.inviteMembers.loading\":\"Приглашение участников в рабочую среду «{name}»\",\"createTeamWizard.inviteMembers.contentHeading\":\"Пригласить участников\",\"createTeamWizard.inviteMembers.successToast\":\"Участники добавлены в новую рабочую среду\",\"createTeamWizard.progress\":\"Шаг {current} из {total}\",\"createTeamWizard.skipStep\":\"Пропустить\",\"teamDialog.createTeam.label\":\"Создать рабочую среду\",\"teamDialog.createTeam.infoBox.description\":\"Рабочая среда, которую вы создаете, доступна только по приглашению, и каждый добавленный пользователь по умолчанию имеет доступ к редактированию.\",\"teamDialog.editTeam.label\":\"Изменить рабочую среду\",\"teamDialog.nameSection.placeholder\":\"Введите название новой рабочей среды\",\"teamDialog.nameSection.label\":\"Название рабочей среды\",\"teamDialog.permissionsSection.label\":\"Кто может редактировать эту рабочую среду\",\"teamDialog.permissionsSection.option.onlyInvited\":\"Только приглашенные пользователи\",\"teamDialog.descriptionSection.label\":\"Описание рабочей среды (необязательно)\",\"teamDialog.descriptionSection.placeholder\":\"Добавьте несколько слов о своей рабочей среде\",\"teamsSidebar.noTeams\":\"Нет рабочих сред\",\"teamsSidebar.newTeamButton\":\"Создать рабочую среду\",\"teamsSidebar.adminTour.title\":\"Новое! Создавайте рабочие среды\",\"teamsSidebar.adminTour.content\":\"Теперь администраторы могут создавать рабочие среды в Creative Cloud в Интернете, что упрощает организацию совместной работы.\",\"teamsSidebarTeam.newSpaceButton\":\"Создать проект\",\"teamsSidebarTeam.header.newBadge\":\"НОВОЕ\",\"teamsSidebarTeam.header.otherTeams\":\"Из других рабочих сред\",\"teamsSidebarTeam.header.teams\":\"РАБОЧИЕ СРЕДЫ\",\"teamsSidebarTeam.header.previewLabel\":\"(Предпросмотр)\",\"teamsSidebarTeam.header.previewCopy\":\"Рабочие среды и проекты доступны в закрытой бета-версии.\",\"teamsSidebarTeam.header.previewLearnMoreText\":\"Подробнее\",\"teamsSidebarTeam.message.loading\":\"Загрузка...\",\"teamsSidebarTeam.message.noSpaces\":\"У вас пока нет рабочих сред или проектов.\",\"teamsSidebarTeam.message.offline\":\"Вы отключены. Подключитесь к Интернету для просмотра своих рабочих сред и проектов.\",\"teamsSidebarTeam.message.error\":\"При загрузке рабочих сред и проектов возникла ошибка.\",\"teams1up.error.description\":\"При загрузке вашего проекта произошла ошибка.\",\"teams1up.error.heading\":\"Не удалось загрузить проекты\",\"otherTeams.emptyMessage.header\":\"Не удалось просмотреть страницу рабочей среды\",\"otherTeams.emptyMessage.description1\":\"Вы были удалены, или вы самостоятельно покинули последний проект, используя \",\"otherTeams.emptyMessage.description2\":\" раздел. Если считаете, что это ошибка, свяжитесь с администратором.\",\"spaceTour.step0.title\":\"Ваши проекты\",\"spaceTour.step0.content\":\"Проекты помогают группам работать вместе, а также собирать, систематизировать и публиковать файлы и ресурсы.\",\"spaceTour.step1.title\":\"Добавьте все необходимое для проекта\",\"spaceTour.step1.content\":\"Объедините рабочие файлы, справочные изображения, ресурсы и многое другое в одном месте.\",\"spaceTour.step2.title\":\"Установите (и забудьте) разрешения\",\"spaceTour.step2.content\":\"Назначьте права доступа соавторам, когда вы их приглашаете, чтобы сэкономить время и нервы. Отправляйте пакеты только для просмотра заинтересованным сторонам, чтобы они могли ознакомиться с ними и дать вам обратную связь.\",\"error.cantCreateSpace\":\"Хранилище рабочей среды заполнено\",\"error.exceedQuota.create.detail.description1\":\"Вы не можете создать что-то новое прямо сейчас. Выберите \",\"error.exceedQuota.description2\":\" , чтобы освободить место в хранилище.\",\"error.exceedQuota.add.detail.description1\":\"Вы не можете добавить что-то новое прямо сейчас. Выберите \",\"error.move.generic\":\"Не удается выполнить перемещение, что-то пошло не так\",\"error.move.signedOut\":\"Невозможно переместить, потому что вы вышли из системы\",\"error.move.permissionRevoked\":\"Невозможно переместить, так как вы исключены из этого проекта\",\"error.move.deleted\":\"Невозможно переместить, так как файл удален другим пользователем\",\"error.move.duplicate\":\"Невозможно переместить, потому что файл уже существует там, куда вы пытались его переместить\",\"error.copy.generic\":\"Не удается выполнить копирование, что-то пошло не так\",\"error.copy.signedOut\":\"Невозможно скопировать, потому что вы вышли из системы\",\"error.copy.permissionRevoked\":\"Невозможно скопировать, так как вы исключены из этого проекта\",\"error.copy.deleted\":\"Невозможно скопировать, так как файл удален другим пользователем\",\"error.copy.duplicate\":\"Невозможно скопировать, потому что файл уже существует там, куда вы пытаетесь скопировать\",\"checkbox.select\":\"Выбрать\",\"listItem.fileSize\":\"Размер файла\",\"facepile.additionalMembers\":\"Дополнительные участники +{count}\",\"facepile.memberName\":\"{name}, участник\",\"coachmark.information\":\"информация\",\"toolbar.tools\":\"инструменты\",\"griditem.error.message\":\"Не удается получить\",\"griditem.error.button\":\"Повторить\",\"ats.move.extendedNotification\":\"Вы получите уведомление, когда перемещение будет завершено.\",\"file.deleted.error.heading\":\"Невозможно {operation} файл\",\"file.deleted.error.description\":\"Невозможно {operation} этот файл, поскольку он был удален. Восстановите его в папке удаленных файлов или используйте другое местоположение.\",\"file.deleted.rename.error.description\":\"Невозможно переименовать этот файл, поскольку он был удален. Чтобы восстановить его, выберите «Перейти к папке «Удаленные».\"}");

/***/ }),

/***/ "PWyr":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("path", {
  d: "M38.057 19.843l-8.812 8.915a2 2 0 0 1-2.834.011l-7.137-7.108a2 2 0 0 1 0-2.831l8.886-8.886L26.213 8H4a2 2 0 0 0-2 2v32a2 2 0 0 0 2 2h34a2 2 0 0 0 2-2V21.786z"
}), React.createElement("path", {
  d: "M30.241 4a1.008 1.008 0 0 0-.655 1.716l4.228 4.228-9.842 9.842a.5.5 0 0 0 0 .707l3.536 3.535a.5.5 0 0 0 .707 0l9.842-9.842 4.217 4.214a1 1 0 0 0 1.706-.655V4z"
}));

/***/ }),

/***/ "PX6y":
/***/ (function(module, exports, __webpack_require__) {

// extracted by mini-css-extract-plugin

/***/ }),

/***/ "PZGr":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("path", {
  d: "M24 7.9A16.1 16.1 0 1 1 7.9 24 16.118 16.118 0 0 1 24 7.9zm0-3.8A19.9 19.9 0 1 0 43.9 24 19.9 19.9 0 0 0 24 4.1z"
}), React.createElement("path", {
  d: "M21.56 14.747a2.24 2.24 0 0 1 4.48 0 2.084 2.084 0 0 1-2.24 2.24 2.116 2.116 0 0 1-2.24-2.24zM27.5 32H26V21a1 1 0 0 0-1-1h-4.5a.5.5 0 0 0-.5.5v1a.5.5 0 0 0 .5.5H22v10h-1.5a.5.5 0 0 0-.5.5v1a.5.5 0 0 0 .5.5h7a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5z"
}));

/***/ }),

/***/ "PZGz":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _react_react_spectrum_Button__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Cn9g");
/* harmony import */ var _react_react_spectrum_Button__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Button__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _react_react_spectrum_Icon_ChevronLeft__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("fjGn");
/* harmony import */ var _react_react_spectrum_Icon_ChevronLeft__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Icon_ChevronLeft__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _react_react_spectrum_OverlayTrigger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("uYrR");
/* harmony import */ var _react_react_spectrum_OverlayTrigger__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_OverlayTrigger__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _react_react_spectrum_Tooltip__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("DUuf");
/* harmony import */ var _react_react_spectrum_Tooltip__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Tooltip__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var _utils_derive_parent_path__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("gFix");
/* harmony import */ var _utils_constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("a375");
/* harmony import */ var _styles_BackButton_css__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("SqDw");
/* harmony import */ var _styles_BackButton_css__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_styles_BackButton_css__WEBPACK_IMPORTED_MODULE_7__);








class BackButton extends react__WEBPACK_IMPORTED_MODULE_0__["Component"] {
    constructor() {
        super(...arguments);
        this.onPathClick = () => {
            const { onPathClick } = this.props;
            onPathClick(this.parentPath);
        };
    }
    get parentPath() {
        const { currentPath } = this.props;
        // if no currentPath, back button will display as page title only
        const parentPath = currentPath ? Object(_utils_derive_parent_path__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"])(currentPath) : null;
        return parentPath;
    }
    get currentPageTitle() {
        const { currentPath } = this.props;
        const paths = currentPath.split('/');
        return paths.pop();
    }
    render() {
        const { title } = this.props;
        const viewTitle = this.parentPath ? this.currentPageTitle : title;
        return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { id: "BackButton" },
            this.parentPath && (react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_react_react_spectrum_Button__WEBPACK_IMPORTED_MODULE_1___default.a, { className: "BackButton_button", quiet: true, size: "XS", variant: "tool", icon: react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_react_react_spectrum_Icon_ChevronLeft__WEBPACK_IMPORTED_MODULE_2___default.a, null), onClick: this.onPathClick })),
            react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_react_react_spectrum_OverlayTrigger__WEBPACK_IMPORTED_MODULE_3___default.a, { placement: "right", trigger: ['hover'], delayShow: _utils_constants__WEBPACK_IMPORTED_MODULE_6__[/* DEFAULT_TOOLTIP_DELAY */ "e"] },
                react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: "BackButton_heading" }, viewTitle),
                react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_react_react_spectrum_Tooltip__WEBPACK_IMPORTED_MODULE_4___default.a, null, viewTitle))));
    }
}
/* harmony default export */ __webpack_exports__["a"] = (BackButton);


/***/ }),

/***/ "Pa+m":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var utils = __webpack_require__("86MQ");

var BN = __webpack_require__("OZ/i");

var inherits = __webpack_require__("P7XM");

var Base = __webpack_require__("6lN/");

var assert = utils.assert;

function EdwardsCurve(conf) {
  // NOTE: Important as we are creating point in Base.call()
  this.twisted = (conf.a | 0) !== 1;
  this.mOneA = this.twisted && (conf.a | 0) === -1;
  this.extended = this.mOneA;
  Base.call(this, 'edwards', conf);
  this.a = new BN(conf.a, 16).umod(this.red.m);
  this.a = this.a.toRed(this.red);
  this.c = new BN(conf.c, 16).toRed(this.red);
  this.c2 = this.c.redSqr();
  this.d = new BN(conf.d, 16).toRed(this.red);
  this.dd = this.d.redAdd(this.d);
  assert(!this.twisted || this.c.fromRed().cmpn(1) === 0);
  this.oneC = (conf.c | 0) === 1;
}

inherits(EdwardsCurve, Base);
module.exports = EdwardsCurve;

EdwardsCurve.prototype._mulA = function _mulA(num) {
  if (this.mOneA) return num.redNeg();else return this.a.redMul(num);
};

EdwardsCurve.prototype._mulC = function _mulC(num) {
  if (this.oneC) return num;else return this.c.redMul(num);
}; // Just for compatibility with Short curve


EdwardsCurve.prototype.jpoint = function jpoint(x, y, z, t) {
  return this.point(x, y, z, t);
};

EdwardsCurve.prototype.pointFromX = function pointFromX(x, odd) {
  x = new BN(x, 16);
  if (!x.red) x = x.toRed(this.red);
  var x2 = x.redSqr();
  var rhs = this.c2.redSub(this.a.redMul(x2));
  var lhs = this.one.redSub(this.c2.redMul(this.d).redMul(x2));
  var y2 = rhs.redMul(lhs.redInvm());
  var y = y2.redSqrt();
  if (y.redSqr().redSub(y2).cmp(this.zero) !== 0) throw new Error('invalid point');
  var isOdd = y.fromRed().isOdd();
  if (odd && !isOdd || !odd && isOdd) y = y.redNeg();
  return this.point(x, y);
};

EdwardsCurve.prototype.pointFromY = function pointFromY(y, odd) {
  y = new BN(y, 16);
  if (!y.red) y = y.toRed(this.red); // x^2 = (y^2 - c^2) / (c^2 d y^2 - a)

  var y2 = y.redSqr();
  var lhs = y2.redSub(this.c2);
  var rhs = y2.redMul(this.d).redMul(this.c2).redSub(this.a);
  var x2 = lhs.redMul(rhs.redInvm());

  if (x2.cmp(this.zero) === 0) {
    if (odd) throw new Error('invalid point');else return this.point(this.zero, y);
  }

  var x = x2.redSqrt();
  if (x.redSqr().redSub(x2).cmp(this.zero) !== 0) throw new Error('invalid point');
  if (x.fromRed().isOdd() !== odd) x = x.redNeg();
  return this.point(x, y);
};

EdwardsCurve.prototype.validate = function validate(point) {
  if (point.isInfinity()) return true; // Curve: A * X^2 + Y^2 = C^2 * (1 + D * X^2 * Y^2)

  point.normalize();
  var x2 = point.x.redSqr();
  var y2 = point.y.redSqr();
  var lhs = x2.redMul(this.a).redAdd(y2);
  var rhs = this.c2.redMul(this.one.redAdd(this.d.redMul(x2).redMul(y2)));
  return lhs.cmp(rhs) === 0;
};

function Point(curve, x, y, z, t) {
  Base.BasePoint.call(this, curve, 'projective');

  if (x === null && y === null && z === null) {
    this.x = this.curve.zero;
    this.y = this.curve.one;
    this.z = this.curve.one;
    this.t = this.curve.zero;
    this.zOne = true;
  } else {
    this.x = new BN(x, 16);
    this.y = new BN(y, 16);
    this.z = z ? new BN(z, 16) : this.curve.one;
    this.t = t && new BN(t, 16);
    if (!this.x.red) this.x = this.x.toRed(this.curve.red);
    if (!this.y.red) this.y = this.y.toRed(this.curve.red);
    if (!this.z.red) this.z = this.z.toRed(this.curve.red);
    if (this.t && !this.t.red) this.t = this.t.toRed(this.curve.red);
    this.zOne = this.z === this.curve.one; // Use extended coordinates

    if (this.curve.extended && !this.t) {
      this.t = this.x.redMul(this.y);
      if (!this.zOne) this.t = this.t.redMul(this.z.redInvm());
    }
  }
}

inherits(Point, Base.BasePoint);

EdwardsCurve.prototype.pointFromJSON = function pointFromJSON(obj) {
  return Point.fromJSON(this, obj);
};

EdwardsCurve.prototype.point = function point(x, y, z, t) {
  return new Point(this, x, y, z, t);
};

Point.fromJSON = function fromJSON(curve, obj) {
  return new Point(curve, obj[0], obj[1], obj[2]);
};

Point.prototype.inspect = function inspect() {
  if (this.isInfinity()) return '<EC Point Infinity>';
  return '<EC Point x: ' + this.x.fromRed().toString(16, 2) + ' y: ' + this.y.fromRed().toString(16, 2) + ' z: ' + this.z.fromRed().toString(16, 2) + '>';
};

Point.prototype.isInfinity = function isInfinity() {
  // XXX This code assumes that zero is always zero in red
  return this.x.cmpn(0) === 0 && (this.y.cmp(this.z) === 0 || this.zOne && this.y.cmp(this.curve.c) === 0);
};

Point.prototype._extDbl = function _extDbl() {
  // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html
  //     #doubling-dbl-2008-hwcd
  // 4M + 4S
  // A = X1^2
  var a = this.x.redSqr(); // B = Y1^2

  var b = this.y.redSqr(); // C = 2 * Z1^2

  var c = this.z.redSqr();
  c = c.redIAdd(c); // D = a * A

  var d = this.curve._mulA(a); // E = (X1 + Y1)^2 - A - B


  var e = this.x.redAdd(this.y).redSqr().redISub(a).redISub(b); // G = D + B

  var g = d.redAdd(b); // F = G - C

  var f = g.redSub(c); // H = D - B

  var h = d.redSub(b); // X3 = E * F

  var nx = e.redMul(f); // Y3 = G * H

  var ny = g.redMul(h); // T3 = E * H

  var nt = e.redMul(h); // Z3 = F * G

  var nz = f.redMul(g);
  return this.curve.point(nx, ny, nz, nt);
};

Point.prototype._projDbl = function _projDbl() {
  // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html
  //     #doubling-dbl-2008-bbjlp
  //     #doubling-dbl-2007-bl
  // and others
  // Generally 3M + 4S or 2M + 4S
  // B = (X1 + Y1)^2
  var b = this.x.redAdd(this.y).redSqr(); // C = X1^2

  var c = this.x.redSqr(); // D = Y1^2

  var d = this.y.redSqr();
  var nx;
  var ny;
  var nz;
  var e;
  var h;
  var j;

  if (this.curve.twisted) {
    // E = a * C
    e = this.curve._mulA(c); // F = E + D

    var f = e.redAdd(d);

    if (this.zOne) {
      // X3 = (B - C - D) * (F - 2)
      nx = b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two)); // Y3 = F * (E - D)

      ny = f.redMul(e.redSub(d)); // Z3 = F^2 - 2 * F

      nz = f.redSqr().redSub(f).redSub(f);
    } else {
      // H = Z1^2
      h = this.z.redSqr(); // J = F - 2 * H

      j = f.redSub(h).redISub(h); // X3 = (B-C-D)*J

      nx = b.redSub(c).redISub(d).redMul(j); // Y3 = F * (E - D)

      ny = f.redMul(e.redSub(d)); // Z3 = F * J

      nz = f.redMul(j);
    }
  } else {
    // E = C + D
    e = c.redAdd(d); // H = (c * Z1)^2

    h = this.curve._mulC(this.z).redSqr(); // J = E - 2 * H

    j = e.redSub(h).redSub(h); // X3 = c * (B - E) * J

    nx = this.curve._mulC(b.redISub(e)).redMul(j); // Y3 = c * E * (C - D)

    ny = this.curve._mulC(e).redMul(c.redISub(d)); // Z3 = E * J

    nz = e.redMul(j);
  }

  return this.curve.point(nx, ny, nz);
};

Point.prototype.dbl = function dbl() {
  if (this.isInfinity()) return this; // Double in extended coordinates

  if (this.curve.extended) return this._extDbl();else return this._projDbl();
};

Point.prototype._extAdd = function _extAdd(p) {
  // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html
  //     #addition-add-2008-hwcd-3
  // 8M
  // A = (Y1 - X1) * (Y2 - X2)
  var a = this.y.redSub(this.x).redMul(p.y.redSub(p.x)); // B = (Y1 + X1) * (Y2 + X2)

  var b = this.y.redAdd(this.x).redMul(p.y.redAdd(p.x)); // C = T1 * k * T2

  var c = this.t.redMul(this.curve.dd).redMul(p.t); // D = Z1 * 2 * Z2

  var d = this.z.redMul(p.z.redAdd(p.z)); // E = B - A

  var e = b.redSub(a); // F = D - C

  var f = d.redSub(c); // G = D + C

  var g = d.redAdd(c); // H = B + A

  var h = b.redAdd(a); // X3 = E * F

  var nx = e.redMul(f); // Y3 = G * H

  var ny = g.redMul(h); // T3 = E * H

  var nt = e.redMul(h); // Z3 = F * G

  var nz = f.redMul(g);
  return this.curve.point(nx, ny, nz, nt);
};

Point.prototype._projAdd = function _projAdd(p) {
  // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html
  //     #addition-add-2008-bbjlp
  //     #addition-add-2007-bl
  // 10M + 1S
  // A = Z1 * Z2
  var a = this.z.redMul(p.z); // B = A^2

  var b = a.redSqr(); // C = X1 * X2

  var c = this.x.redMul(p.x); // D = Y1 * Y2

  var d = this.y.redMul(p.y); // E = d * C * D

  var e = this.curve.d.redMul(c).redMul(d); // F = B - E

  var f = b.redSub(e); // G = B + E

  var g = b.redAdd(e); // X3 = A * F * ((X1 + Y1) * (X2 + Y2) - C - D)

  var tmp = this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d);
  var nx = a.redMul(f).redMul(tmp);
  var ny;
  var nz;

  if (this.curve.twisted) {
    // Y3 = A * G * (D - a * C)
    ny = a.redMul(g).redMul(d.redSub(this.curve._mulA(c))); // Z3 = F * G

    nz = f.redMul(g);
  } else {
    // Y3 = A * G * (D - C)
    ny = a.redMul(g).redMul(d.redSub(c)); // Z3 = c * F * G

    nz = this.curve._mulC(f).redMul(g);
  }

  return this.curve.point(nx, ny, nz);
};

Point.prototype.add = function add(p) {
  if (this.isInfinity()) return p;
  if (p.isInfinity()) return this;
  if (this.curve.extended) return this._extAdd(p);else return this._projAdd(p);
};

Point.prototype.mul = function mul(k) {
  if (this._hasDoubles(k)) return this.curve._fixedNafMul(this, k);else return this.curve._wnafMul(this, k);
};

Point.prototype.mulAdd = function mulAdd(k1, p, k2) {
  return this.curve._wnafMulAdd(1, [this, p], [k1, k2], 2, false);
};

Point.prototype.jmulAdd = function jmulAdd(k1, p, k2) {
  return this.curve._wnafMulAdd(1, [this, p], [k1, k2], 2, true);
};

Point.prototype.normalize = function normalize() {
  if (this.zOne) return this; // Normalize coordinates

  var zi = this.z.redInvm();
  this.x = this.x.redMul(zi);
  this.y = this.y.redMul(zi);
  if (this.t) this.t = this.t.redMul(zi);
  this.z = this.curve.one;
  this.zOne = true;
  return this;
};

Point.prototype.neg = function neg() {
  return this.curve.point(this.x.redNeg(), this.y, this.z, this.t && this.t.redNeg());
};

Point.prototype.getX = function getX() {
  this.normalize();
  return this.x.fromRed();
};

Point.prototype.getY = function getY() {
  this.normalize();
  return this.y.fromRed();
};

Point.prototype.eq = function eq(other) {
  return this === other || this.getX().cmp(other.getX()) === 0 && this.getY().cmp(other.getY()) === 0;
};

Point.prototype.eqXToP = function eqXToP(x) {
  var rx = x.toRed(this.curve.red).redMul(this.z);
  if (this.x.cmp(rx) === 0) return true;
  var xc = x.clone();
  var t = this.curve.redN.redMul(this.z);

  for (;;) {
    xc.iadd(this.curve.n);
    if (xc.cmp(this.curve.p) >= 0) return false;
    rx.redIAdd(t);
    if (this.x.cmp(rx) === 0) return true;
  }
}; // Compatibility with BaseCurve


Point.prototype.toP = Point.prototype.normalize;
Point.prototype.mixedAdd = Point.prototype.add;

/***/ }),

/***/ "PaYk":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _Icon = __webpack_require__("lcsq");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, props, _react2.default.createElement('svg', null, _react2.default.createElement('path', {
    d: 'M9.99 4.99a1 1 0 0 1-1.707.707L6 3.414v7.576a1 1 0 0 1-2 0V3.414L1.717 5.697A1 1 0 1 1 .303 4.283l3.99-3.98a1 1 0 0 1 1.414 0l3.99 3.98a.997.997 0 0 1 .293.707z',
    'className': 'spectrum-UIIcon--large ' + props.pathClassName
  }), _react2.default.createElement('path', {
    d: 'M7.99 3.99a1 1 0 0 1-1.707.707L5 3.414V9a1 1 0 0 1-2 0V3.414L1.717 4.697A1 1 0 1 1 .303 3.283l2.99-2.98a1 1 0 0 1 1.414 0l2.99 2.98a.997.997 0 0 1 .293.707z',
    'className': 'spectrum-UIIcon--medium ' + props.pathClassName
  })));
};

WrappedIcon.displayName = 'ArrowUpSmall';
exports.default = WrappedIcon;

/***/ }),

/***/ "Pab0":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = needsNative;

function needsNative() {
  const uxp = window.require && window.require('uxp');

  return uxp && uxp.host ? uxp.host.isDrover || uxp.host.name === 'Photoshop' || uxp.host.name === 'Illustrator' : false;
}

/***/ }),

/***/ "PayY":
/***/ (function(module, exports, __webpack_require__) {

module.exports = __webpack_require__.p + "assets/projects/S_Illu_EmptyCanvasFile_Color03.png";

/***/ }),

/***/ "Pcmv":
/***/ (function(module, exports, __webpack_require__) {

!function (e, t) {
   true ? module.exports = t() : undefined;
}(this, function () {
  "use strict";

  return [{
    locale: "nb",
    pluralRuleFunction: function (e, t) {
      return t ? "other" : 1 == e ? "one" : "other";
    },
    fields: {
      year: {
        displayName: "år",
        relative: {
          0: "i år",
          1: "neste år",
          "-1": "i fjor"
        },
        relativeTime: {
          future: {
            one: "om {0} år",
            other: "om {0} år"
          },
          past: {
            one: "for {0} år siden",
            other: "for {0} år siden"
          }
        }
      },
      "year-short": {
        displayName: "år",
        relative: {
          0: "i år",
          1: "neste år",
          "-1": "i fjor"
        },
        relativeTime: {
          future: {
            one: "om {0} år",
            other: "om {0} år"
          },
          past: {
            one: "for {0} år siden",
            other: "for {0} år siden"
          }
        }
      },
      month: {
        displayName: "måned",
        relative: {
          0: "denne måneden",
          1: "neste måned",
          "-1": "forrige måned"
        },
        relativeTime: {
          future: {
            one: "om {0} måned",
            other: "om {0} måneder"
          },
          past: {
            one: "for {0} måned siden",
            other: "for {0} måneder siden"
          }
        }
      },
      "month-short": {
        displayName: "mnd.",
        relative: {
          0: "denne md.",
          1: "neste md.",
          "-1": "forrige md."
        },
        relativeTime: {
          future: {
            one: "om {0} md.",
            other: "om {0} md."
          },
          past: {
            one: "for {0} md. siden",
            other: "for {0} md. siden"
          }
        }
      },
      day: {
        displayName: "dag",
        relative: {
          0: "i dag",
          1: "i morgen",
          2: "i overmorgen",
          "-2": "i forgårs",
          "-1": "i går"
        },
        relativeTime: {
          future: {
            one: "om {0} døgn",
            other: "om {0} døgn"
          },
          past: {
            one: "for {0} døgn siden",
            other: "for {0} døgn siden"
          }
        }
      },
      "day-short": {
        displayName: "dag",
        relative: {
          0: "i dag",
          1: "i morgen",
          2: "i overmorgen",
          "-2": "i forgårs",
          "-1": "i går"
        },
        relativeTime: {
          future: {
            one: "om {0} d.",
            other: "om {0} d."
          },
          past: {
            one: "for {0} d. siden",
            other: "for {0} d. siden"
          }
        }
      },
      hour: {
        displayName: "time",
        relative: {
          0: "denne timen"
        },
        relativeTime: {
          future: {
            one: "om {0} time",
            other: "om {0} timer"
          },
          past: {
            one: "for {0} time siden",
            other: "for {0} timer siden"
          }
        }
      },
      "hour-short": {
        displayName: "t",
        relative: {
          0: "denne timen"
        },
        relativeTime: {
          future: {
            one: "om {0} t",
            other: "om {0} t"
          },
          past: {
            one: "for {0} t siden",
            other: "for {0} t siden"
          }
        }
      },
      minute: {
        displayName: "minutt",
        relative: {
          0: "dette minuttet"
        },
        relativeTime: {
          future: {
            one: "om {0} minutt",
            other: "om {0} minutter"
          },
          past: {
            one: "for {0} minutt siden",
            other: "for {0} minutter siden"
          }
        }
      },
      "minute-short": {
        displayName: "min",
        relative: {
          0: "dette minuttet"
        },
        relativeTime: {
          future: {
            one: "om {0} min",
            other: "om {0} min"
          },
          past: {
            one: "for {0} min siden",
            other: "for {0} min siden"
          }
        }
      },
      second: {
        displayName: "sekund",
        relative: {
          0: "nå"
        },
        relativeTime: {
          future: {
            one: "om {0} sekund",
            other: "om {0} sekunder"
          },
          past: {
            one: "for {0} sekund siden",
            other: "for {0} sekunder siden"
          }
        }
      },
      "second-short": {
        displayName: "sek",
        relative: {
          0: "nå"
        },
        relativeTime: {
          future: {
            one: "om {0} sek",
            other: "om {0} sek"
          },
          past: {
            one: "for {0} sek siden",
            other: "for {0} sek siden"
          }
        }
      }
    }
  }, {
    locale: "nb-SJ",
    parentLocale: "nb"
  }];
});

/***/ }),

/***/ "Pis8":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("path", {
  d: "M9.275 16.1H2a1.994 1.994 0 0 0-2 1.987v11.921A1.994 1.994 0 0 0 2 32h7.275a2 2 0 0 1 1.279.46l9.8 9.245A1 1 0 0 0 22 40.938V7.155a1 1 0 0 0-1.642-.762l-9.8 9.245a2.012 2.012 0 0 1-1.283.462zM28.05 24a5.936 5.936 0 0 1-1.142 3.5 1.959 1.959 0 0 0-.382 1.142 1.684 1.684 0 0 0 .407 1.11l.186.217a1.845 1.845 0 0 0 1.24.635 1.677 1.677 0 0 0 1.493-.635 9.725 9.725 0 0 0 0-11.944 1.665 1.665 0 0 0-1.35-.641 1.847 1.847 0 0 0-1.383.642l-.186.217a1.68 1.68 0 0 0-.405 1.038 1.949 1.949 0 0 0 .381 1.214A5.936 5.936 0 0 1 28.05 24z"
}), React.createElement("path", {
  d: "M36.05 24a13.977 13.977 0 0 1-3.774 9.567 1.761 1.761 0 0 0-.474 1.177 1.791 1.791 0 0 0 .433 1.2l.16.187a1.8 1.8 0 0 0 1.192.621 1.823 1.823 0 0 0 1.519-.574 17.851 17.851 0 0 0 0-24.348 1.822 1.822 0 0 0-1.368-.582 1.8 1.8 0 0 0-1.343.63l-.16.187a1.791 1.791 0 0 0-.433 1.2 1.761 1.761 0 0 0 .474 1.177A13.977 13.977 0 0 1 36.05 24z"
}), React.createElement("path", {
  d: "M37.625 5.771l-.16.187a1.829 1.829 0 0 0-.436 1.07 1.712 1.712 0 0 0 .5 1.337 22 22 0 0 1 0 31.272 1.7 1.7 0 0 0-.5 1.184 1.828 1.828 0 0 0 .44 1.222l.16.187a1.767 1.767 0 0 0 1.134.609A1.866 1.866 0 0 0 40.3 42.3a25.834 25.834 0 0 0 0-36.6 1.865 1.865 0 0 0-1.567-.537 1.766 1.766 0 0 0-1.108.608z"
}));

/***/ }),

/***/ "Po8x":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


exports.__esModule = true;

var _propTypes = __webpack_require__("17x9");

var _propTypes2 = _interopRequireDefault(_propTypes);

var _componentOrElement = __webpack_require__("neHb");

var _componentOrElement2 = _interopRequireDefault(_componentOrElement);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

var _reactDom = __webpack_require__("i8i4");

var _reactDom2 = _interopRequireDefault(_reactDom);

var _getContainer = __webpack_require__("eF//");

var _getContainer2 = _interopRequireDefault(_getContainer);

var _ownerDocument = __webpack_require__("z9HI");

var _ownerDocument2 = _interopRequireDefault(_ownerDocument);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _classCallCheck(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}

function _possibleConstructorReturn(self, call) {
  if (!self) {
    throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
  }

  return call && (typeof call === "object" || typeof call === "function") ? call : self;
}

function _inherits(subClass, superClass) {
  if (typeof superClass !== "function" && superClass !== null) {
    throw new TypeError("Super expression must either be null or a function, not " + typeof superClass);
  }

  subClass.prototype = Object.create(superClass && superClass.prototype, {
    constructor: {
      value: subClass,
      enumerable: false,
      writable: true,
      configurable: true
    }
  });
  if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;
}
/**
 * The `<Portal/>` component renders its children into a new "subtree" outside of current component hierarchy.
 * You can think of it as a declarative `appendChild()`, or jQuery's `$.fn.appendTo()`.
 * The children of `<Portal/>` component will be appended to the `container` specified.
 */


var Portal = function (_React$Component) {
  _inherits(Portal, _React$Component);

  function Portal() {
    var _temp, _this, _ret;

    _classCallCheck(this, Portal);

    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this._mountOverlayTarget = function () {
      if (!_this._overlayTarget) {
        _this._overlayTarget = document.createElement('div');
        _this._portalContainerNode = (0, _getContainer2.default)(_this.props.container, (0, _ownerDocument2.default)(_this).body);

        _this._portalContainerNode.appendChild(_this._overlayTarget);
      }
    }, _this._unmountOverlayTarget = function () {
      if (_this._overlayTarget) {
        _this._portalContainerNode.removeChild(_this._overlayTarget);

        _this._overlayTarget = null;
      }

      _this._portalContainerNode = null;
    }, _this._renderOverlay = function () {
      var overlay = !_this.props.children ? null : _react2.default.Children.only(_this.props.children); // Save reference for future access.

      if (overlay !== null) {
        _this._mountOverlayTarget();

        var initialRender = !_this._overlayInstance;
        _this._overlayInstance = _reactDom2.default.unstable_renderSubtreeIntoContainer(_this, overlay, _this._overlayTarget, function () {
          if (initialRender && _this.props.onRendered) {
            _this.props.onRendered();
          }
        });
      } else {
        // Unrender if the component is null for transitions to null
        _this._unrenderOverlay();

        _this._unmountOverlayTarget();
      }
    }, _this._unrenderOverlay = function () {
      if (_this._overlayTarget) {
        _reactDom2.default.unmountComponentAtNode(_this._overlayTarget);

        _this._overlayInstance = null;
      }
    }, _this.getMountNode = function () {
      return _this._overlayTarget;
    }, _temp), _possibleConstructorReturn(_this, _ret);
  }

  Portal.prototype.componentDidMount = function componentDidMount() {
    this._isMounted = true;

    this._renderOverlay();
  };

  Portal.prototype.componentDidUpdate = function componentDidUpdate() {
    this._renderOverlay();
  };

  Portal.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {
    if (this._overlayTarget && nextProps.container !== this.props.container) {
      this._portalContainerNode.removeChild(this._overlayTarget);

      this._portalContainerNode = (0, _getContainer2.default)(nextProps.container, (0, _ownerDocument2.default)(this).body);

      this._portalContainerNode.appendChild(this._overlayTarget);
    }
  };

  Portal.prototype.componentWillUnmount = function componentWillUnmount() {
    this._isMounted = false;

    this._unrenderOverlay();

    this._unmountOverlayTarget();
  };

  Portal.prototype.render = function render() {
    return null;
  };

  return Portal;
}(_react2.default.Component);

Portal.displayName = 'Portal';
Portal.propTypes = {
  /**
   * A Node, Component instance, or function that returns either. The `container` will have the Portal children
   * appended to it.
   */
  container: _propTypes2.default.oneOfType([_componentOrElement2.default, _propTypes2.default.func]),
  onRendered: _propTypes2.default.func
};
exports.default = Portal;
module.exports = exports['default'];

/***/ }),

/***/ "Pstv":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return getLrApp; });
/* harmony import */ var _js_iaw_analytics__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("RGcl");
/* harmony import */ var _LoggerWrapper_Logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("43WE");
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2021 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/


const Logger = _LoggerWrapper_Logger__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].get('Lr Importer');
const pluginManager = window.require('uxp').pluginManager;
let lrApp = null;
const getLrApp = initCallback => {
    if (lrApp) {
        return { lrApp, isCached: true };
    }
    try {
        const provider = pluginManager.provider;
        const storage = provider.getRelativeProvider('cc-photos-importer-uxp');
        const lrPlugin = pluginManager.createPlugin(storage, pluginManager.PLUGIN_TYPE_FIRST_PARTY, {
            allowCodeGenerationFromStrings: true,
            allowDebugging: true,
        });
        if (pluginManager.PLUGIN_ADD_STATUS_SUCCESS === pluginManager.addPlugin(lrPlugin, true)) {
            // in debug sessions while reloading, LR Photos plugin is not removed and
            // when the below code tries to addPlugin it fails and prints the Logger log
            // so adding an event to remove lrPlugin when HS Reloads
            pluginManager.plugins.forEach(plugin => {
                if (plugin.id === 'com.adobe.ccx.start') {
                    const hsRuntime = plugin.runtime;
                    hsRuntime &&
                        hsRuntime.addEventListener(pluginManager.RUNTIME_RELOAD, () => {
                            pluginManager.removePlugin(lrPlugin);
                        });
                    return;
                }
            });
        }
        else {
            Logger.error('Failed to add Lightroom Importer plugin');
        }
        lrApp = lrPlugin.runtime;
        lrApp.addEventListener(pluginManager.RUNTIME_INITIALIZE, () => {
            Logger.log('Initializes');
            initCallback(lrApp);
        });
        lrApp.addEventListener(pluginManager.RUNTIME_RELOAD, () => {
            Logger.log('Restarting...');
        });
        lrApp.load();
    }
    catch (e) {
        Logger.error("Failed to create Lightroom Importer plugin!", e);
        _js_iaw_analytics__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].logErrorEvent('lr-importer', {
            error: {
                desc: `Failed to create Lightroom Importer plugin!: ${e.stack}`,
                type: 'lr-importer',
            },
        });
    }
    return { lrApp, isCached: false };
};


/***/ }),

/***/ "PxRy":
/***/ (function(module, exports) {

/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
module.exports = {
  'ccd.infoPanel.detail.created': 'Luotu',
  'ccd.infoPanel.detail.modified': 'Muokattu',
  'ccd.infoPanel.detail.size': 'Koko',
  'ccd.infoPanel.detail.shared': 'Jaettu',
  'ccd.header.renameFolder': 'Nimeä kansio uudelleen',
  'ccd.menu.addToFavourites': 'Lisää pikavalintoihin',
  'ccd.menu.removeFromFavourites': 'Poista pikavalinta',
  'ccd.menu.viewonweb': 'Näytä verkossa',
  'ccd.menu.share': 'Jaa',
  'ccd.menu.openWith': 'Avaa sovelluksessa',
  'ccd.menu.changeDefaultApp': 'Vaihda oletussovellus...',
  'ccd.menu.default': '(Oletus)',
  'ccd.menu.export': 'Vie paikallisena kopiona',
  'ccd.menu.download': 'Lataa',
  'ccd.menu.createNew': 'Luo uusi...',
  'ccd.menu.launch': 'KÄYNNISTÄ',
  'actionMenuItem.permdelete': 'Poista pysyvästi',
  'tab.Cloud Documents': 'Omat tiedostot',
  'tab.Home': 'Aloitus',
  'header.CloudDocuments': 'Omat tiedostot',
  'header.SharedWithYou': 'Jaettu kanssasi',
  'header.Deleted': 'Poistettu',
  'header.Deleted.AssetsWebLink': 'Jos haluat tarkastella kaikkia poistettuja kohteita, siirry Assets Webiin.',
  'header.SelectedDocuments': 'Valittu: {numSelected, plural, =1 {#} other {#}}',
  'header.size': 'Koko',
  'header.title': 'Nimi',
  'header.modifiedDate': 'Muokkauspäivä',
  'header.createDate': 'Luontipäivä',
  'header.shareDate': 'Jakopäivä',
  'header.SortBy': 'Lajitteluperuste',
  'header.infoPopover.body': 'Vain yhteensopivat tiedostot näytetään. Jos haluat näyttää kaikki tiedostot, siirry Creative Cloudiin verkossa.',
  'header.infoPopover.link': 'Siirry Creative Cloudiin',
  'header.dragImport': 'Lähetä kohteeseen: {displayName}',
  'collaborators.onlyYou': 'Vain sinä',
  'collaborators.Owner': '{displayName} (omistaja)',
  'collaborators.More': '{numItems, plural, other {+# lisää}}',
  'empty.offline.root.title': 'Yhteys on katkaistu.',
  'empty.offline.root.subtitle': 'Online-tilassa näkyneet kohteet ilmestyvät tänne, kun muodostat yhteyden uudelleen.',
  'empty.offline.folder.title': 'Kansion lataaminen epäonnistui.',
  'empty.offline.folder.subtitle': 'Internet-yhteyttä ei ole. Muodosta yhteys uudelleen, jotta näet kaiken.',
  'empty.online.cdp.saveas.root.title': 'Näytettävissä olevia pilvidokumentteja ei ole.',
  'empty.online.cdp.saveas.root.subtitle': 'Pilvidokumenttien ansiosta työsi pysyvät aina ajan tasalla kaikissa laitteissa paikkaan katsomatta – sinun ei tarvitse tehdä muuta kuin muodostaa Internet-yhteys, kun olet liikkeellä.',
  'empty.online.cdp.saveas.root.subtitle.sprk': 'Kaikki XD:stä peräisin olevat pilvidokumentit tuodaan tänne. Työskentele missä tahansa, jopa offline-tilassa. Muutokset tallennetaan automaattisesti, ja ne ovat nähtävissä dokumenttihistoriassa.',
  'empty.online.cdp.saveas.root.subtitle.phxs': 'Kaikki Macin, Windowsin ja iPadin Photoshopista peräisin olevat pilvidokumentit tuodaan tänne.',
  'empty.online.cdp.saveas.root.subtitle.ilst': 'Kaikki Macin ja Windowsin Illustratorista peräisin olevat pilvidokumentit tuodaan tänne.',
  'empty.online.cdp.saveas.root.subtitle.idsn': 'Kaikki Macin ja Windowsin InDesignista peräisin olevat pilvidokumentit tuodaan tänne.',
  'empty.online.cdp.saveas.folder.title': 'Näytettävissä olevia pilvidokumentteja ei ole.',
  'empty.online.cdp.saveas.folder.subtitle': 'Kun siirrät yhteensopivan pilvidokumentin tähän kansioon, se ilmestyy tänne.',
  'empty.online.cdp.open.root.title': 'Näytettävissä olevia pilvidokumentteja ei ole.',
  'empty.online.cdp.open.root.subtitle': 'Kun siirrät yhteensopivan pilvidokumentin tähän kansioon, se ilmestyy tänne.',
  'empty.online.cdp.open.root.subtitle.sprk': 'Kaikki XD:stä peräisin olevat pilvidokumentit tuodaan tänne. Työskentele missä tahansa, jopa offline-tilassa. Muutokset tallennetaan automaattisesti, ja ne ovat nähtävissä dokumenttihistoriassa.',
  'empty.online.cdp.open.root.subtitle.phxs': 'Kaikki Macin, Windowsin ja iPadin Photoshopista peräisin olevat pilvidokumentit tuodaan tänne.',
  'empty.online.cdp.open.root.subtitle.ilst': 'Kaikki Macin ja Windowsin Illustratorista peräisin olevat pilvidokumentit tuodaan tänne.',
  'empty.online.cdp.open.root.subtitle.idsn': 'Kaikki Macin ja Windowsin InDesignista peräisin olevat pilvidokumentit tuodaan tänne.',
  'empty.online.cdp.open.folder.title': 'Näytettävissä olevia pilvidokumentteja ei ole.',
  'empty.online.cdp.open.folder.subtitle': 'Kun siirrät yhteensopivan pilvidokumentin tähän kansioon, se ilmestyy tänne.',
  'empty.online.cdo.root.title': 'Sinulla ei ole pilvidokumentteja.',
  'empty.online.cdo.root.subtitle': 'Tee yhteistyötä saumattomasti muiden kanssa ja työskentele missä tahansa, jopa offline-tilassa. Muutokset tallennetaan automaattisesti, ja ne ovat nähtävissä tiedostohistoriassa.',
  'empty.online.cdo.root.subtitle.sprk': 'Tee yhteistyötä saumattomasti reaaliajassa muiden kanssa ja työskentele missä tahansa, jopa offline-tilassa. Muutokset tallennetaan automaattisesti, ja ovat nähtävissä tiedostohistoriassa.',
  'empty.online.cdo.root.subtitle.phxs': 'Tee yhteistyötä saumattomasti muiden kanssa ja työskentele missä tahansa kirjautumalla Photoshopiin, jopa offline-tilassa. Muutokset tallennetaan automaattisesti, ja ne ovat nähtävissä tiedostohistoriassa.',
  'empty.online.cdo.root.subtitle.ilst': 'Tee yhteistyötä saumattomasti muiden kanssa ja työskentele missä tahansa kirjautumalla Illustratoriin, jopa offline-tilassa. Muutokset tallennetaan automaattisesti, ja ne ovat nähtävissä tiedostohistoriassa.',
  'empty.online.cdo.root.subtitle.idsn': 'Käytä dokumenttejasi mistä tahansa, missä kirjaudut InDesigniin. Muutokset tallennetaan automaattisesti.',
  'empty.online.cdo.folder.title': 'Näytettävissä olevia pilvidokumentteja ei ole.',
  'empty.online.cdo.folder.subtitle': 'Kun siirrät yhteensopivan pilvidokumentin tähän kansioon, se ilmestyy tänne.',
  'empty.title.deleted': 'Poistettuja tiedostoja ei ole.',
  'empty.title.deleted_offline': 'Yhteys on katkaistu.',
  'empty.title.recent': 'Viimeksi käytettyjä tiedostoja ei ole.',
  'empty.subtext.deleted_offline': 'Kohteet, jotka poistettiin ollessasi verkossa, näkyvät täällä, kun muodostat yhteyden uudelleen.',
  'empty.title.shared_with_you': 'Sinulla ei ole jaettuja pilvidokumentteja.',
  'empty.subtext.shared_with_you': 'Kun joku jakaa kanssasi pilvidokumentteja, ne näkyvät täällä.',
  'empty.title.shared_with_you_offline': 'Yhteys on katkaistu.',
  'empty.subtext.shared_with_you_offline': 'Voit tarkastella ja muokata jaettuja dokumentteja, kun yhteys toimii taas.',
  'empty.title.error': 'Jokin meni vikaan.',
  'empty.subtext.error': 'Käynnistä sovellus uudelleen ja yritä uudelleen.',
  'empty.subtext.error.web': 'Päivitä selaimesi ja yritä uudelleen.',
  'empty.title.coresync.down': 'Ei voi ladata.',
  'empty.subtext.coresync.down': 'Pilvi ei synkronoidu. Varmista, että Creative Cloud -tietokonesovellus on päivitetty, tai yritä käynnistää sovellus uudelleen.',
  'empty.title.coresync.incompatible': 'Pilvidokumentteja ei voi ladata.',
  'empty.subtext.coresync.incompatible': 'Kohteita ei voi näyttää juuri nyt. Päivitä Creative Cloud -sovelluksen versio ja yritä uudelleen.',
  'empty.title.cloudStorageDisabled': 'Pilvidokumentit eivät ole käytettävissä.',
  'empty.subtext.cloudStorageDisabled': 'Voit käsitellä tuotteella {productName} vain omalla laitteellasi olevia tiedostoja. Pyydä lisätietoja järjestelmänvalvojalta.',
  'empty.title.logout': 'Kirjaudu sisään pilvidokumenttien käyttöä varten.',
  'empty.learnMore.link': 'Lue lisää',
  'trueEmpty.online.cdo.folder.title': 'Tässä kansiossa ei ole mitään.',
  'trueEmpty.online.cdo.folder.subtitle': 'Lisää tänne asioita täyttöä varten.',
  'trueEmpty.online.cdp.saveas.folder.title': 'Pilvidokumentteja ei ole – vielä.',
  'trueEmpty.online.cdp.saveas.folder.subtitle': 'Pilvidokumenttien ansiosta työsi pysyvät aina ajan tasalla kaikissa laitteissa paikkaan katsomatta – sinun ei tarvitse tehdä muuta kuin muodostaa Internet-yhteys, kun olet liikkeellä.',
  'trueEmpty.online.cdp.open.folder.title': 'Pilvidokumentteja ei ole – vielä.',
  'trueEmpty.online.cdp.open.folder.subtitle': 'Pilvidokumenttien ansiosta työsi pysyvät aina ajan tasalla kaikissa laitteissa paikkaan katsomatta – sinun ei tarvitse tehdä muuta kuin muodostaa Internet-yhteys, kun olet liikkeellä.',
  'filter.prompt': 'Anna avainsana',
  'filter.title': 'Suodata',
  'empty.filter.title': 'Merkkijonolla {filterString} ei löytynyt tuloksia.',
  'empty.filter.subtitle': 'Tarkista oikeinkirjoitus, kokeile laajempaa avainsanaa tai suodata toisen sijainnin mukaan.',
  'beta.title': 'Synkronoi työt kaikissa laitteissa',
  'beta.subtitle': 'Työskentele saumattomasti Photoshopissa sekä iPad- että tietokoneversioilla hyödyntämällä dokumenttien tallennusta pilveen. Huomaa, että tämä ominaisuus on Beta-versio, joten se ei välttämättä toimi aina odotetulla tavalla. Kytke se halutessasi käyttöön ja pois käytöstä asetuksissa.',
  'beta.button': 'Ota käyttöön asetuksissa',
  'beta.tag': 'BETA',
  'beta.feedback.link': 'Anna palautetta Beta-ohjelmistosta',
  'button.add-folder': 'Luo uusi kansio',
  'button.upload': 'Lähetä...',
  'button.createnew': 'Luo uusi',
  'button.reportAbuse': 'Ilmoita väärinkäytöstä',
  'button.open': 'Avaa',
  'button.select': 'Valitse',
  'button.rename': 'Nimeä uudelleen',
  'button.pin.header': 'Salli offline-käyttö aina',
  'button.pin': 'Salli offline-käyttö aina',
  'button.unpin.header': 'Salli vain online-käyttö',
  'button.unpin': 'Salli vain online-käyttö',
  'button.duplicate': 'Monista',
  'button.download': 'Lataa',
  'button.move': 'Siirrä',
  'button.delete': 'Poista',
  'button.restore': 'Palauta',
  'button.permdelete': 'Poista pysyvästi',
  'button.listview': 'Näytä luettelo',
  'button.gridview': 'Näytä ruudukko',
  'button.sharesheetinvite': 'Kutsu muokkaamaan',
  'button.sharesheetLink': 'Hanki linkki',
  'button.shareSheetAction': 'Jaa',
  'button.preview': 'Esikatselu',
  'button.schedule': 'Ajoita',
  'action.duplicate.suffix': '(Monista)',
  'action.resolve_sync_error.suffix': 'kopio',
  'statusIcon.conflicted': 'Synkronoinnin ristiriita',
  'statusIcon.onlineOnly': 'Vain online-käyttö',
  'statusIcon.availableOffline': 'Käytettävissä offline-tilassa',
  'statusIcon.syncing': 'Synkronoidaan...',
  'statusIcon.waitingToSync': 'Odotetaan synkronointia',
  'tooltip.error': 'Avaa dokumentti tallennusristiriidan tarkistamiseksi',
  'toast.error.documentIsOpen': 'Sulje {count, plural, =1 {dokumentti} other {dokumentit}}, jotta tämä toimi voidaan suorittaa.',
  'toast.error.exceedsQuota.personal': 'Tilisi tallennustila on loppunut.',
  'toast.error.exceedsQuota.enterprise': 'Tallennustila on loppunut. Saat lisätietoja järjestelmänvalvojalta.',
  'toast.operation.duplicate.error': '{count, plural, =1 {Kohteen} other {{count} kohteen}} monistaminen epäonnistui.',
  'toast.operation.duplicate.success': '{count, plural, =1 {Kohde} other {{count} kohdetta}} on monistettu.',
  'toast.operation.archive.error': '{count, plural, =1 {kohteen} other {{count} kohteen}} poistaminen epäonnistui.',
  'toast.operation.archive.error.otherAppUncommittedChanges': 'Muissa sovelluksissa avattuja tiedostoja ei voi poistaa. Sulje ne ja yritä sitten uudelleen.',
  'toast.operation.archive.undo.error': '{count, plural, =1 {kohteen} other {{count} kohteen}} poistaminen epäonnistui.',
  'toast.operation.archive.success': '{count, plural, =1 {Kohde} other {{count} kohdetta}} on poistettu.',
  'toast.operation.archive.undo.success': 'Palautus kumottu.',
  'toast.operation.permdelete.error': '{count, plural, =1 {kohteen} other {{count} kohteen}} poistaminen pysyvästi epäonnistui.',
  'toast.operation.permdelete.success': '{count, plural, =1 {Kohde} other {{count} kohdetta}} on pysyvästi poistettu.',
  'toast.operation.rename.error': 'Kohteen uudelleennimeäminen epäonnistui.',
  'toast.operation.rename.undo.error': 'Kohteen uudelleennimeäminen epäonnistui.',
  'toast.operation.rename.error.duplicateName': 'Sinulla on jo tämänniminen kohde.',
  'toast.operation.rename.undo.error.duplicateName': 'Sinulla on jo tämänniminen kohde.',
  'toast.operation.rename.success': 'Kohde on nimetty uudelleen.',
  'toast.operation.rename.undo.success': 'Uudelleennimeäminen kumottu.',
  'toast.operation.move.error': '{count, plural, =1 {kohteen} other {{count} kohteen}} siirtäminen epäonnistui.',
  'toast.operation.move.undo.error': '{count, plural, =1 {kohteen} other {{count} kohteen}} siirtäminen epäonnistui.',
  'toast.operation.move.error.duplicateFolderName': 'Sinulla on jo tämänniminen kansio.',
  'toast.operation.move.undo.error.duplicateFolderName': 'Sinulla on jo tämänniminen kansio.',
  'toast.operation.move.error.duplicateDocName': '{count, plural, =1 {Kansiossa on jo tämänniminen dokumentti. Anna sille toinen nimi ja yritä uudelleen.} other {Dokumentteja ei voi siirtää, sillä samannimisiä dokumentteja on jo olemassa.}}',
  'toast.operation.move.undo.error.duplicateDocName': '{count, plural, =1 {Kansiossa on jo tämänniminen dokumentti. Anna sille toinen nimi ja yritä uudelleen.} other {Dokumentteja ei voi siirtää, sillä samannimisiä dokumentteja on jo olemassa.}}',
  'toast.operation.move.success': '{count, plural, =1 {Kohde} other {{count} kohdetta}} on siirretty.',
  'toast.operation.move.undo.success': 'Siirto kumottu.',
  'toast.operation.unarchive.error': '{count, plural, =1 {kohteen} other {{count} kohteen}} palauttaminen epäonnistui.',
  'toast.operation.unarchive.undo.error': '{count, plural, =1 {kohteen} other {{count} kohteen}} palauttaminen epäonnistui.',
  'toast.operation.unarchive.success': '{count, plural, =1 {Kohde} other {{count} kohdetta}} on palautettu.',
  'toast.operation.unarchive.undo.success': 'Poisto kumottu.',
  'toast.operation.create_new_folder.success': 'Kansio luotu.',
  'toast.operation.create_new_folder.error': 'Uuden kansion luonti epäonnistui.',
  'toast.operation.create_new_folder.error.duplicateName': 'Sinulla on jo tämänniminen kansio.',
  'toast.operation.user_pin.success': '{count, plural, =1 {kohde} other {{count} kohdetta}} on käytettävissä offline-tilassa.',
  'toast.operation.user_pin.error': '{count, plural, =1 {kohteen} other {{count} kohteen}} muuntaminen offline-tilassa käytettävissä olevaan muotoon epäonnistui.',
  'toast.operation.user_unpin.success': '{count, plural, =1 {Kohde} other {{count} kohdetta}} on käytettävissä vain online-tilassa.',
  'toast.operation.user_unpin.error': '{count, plural, =1 {kohteen} other {{count} kohteen}} muuntaminen vain online-tilassa käytettävissä olevaan muotoon epäonnistui.',
  'toast.operation.resolve_sync_error.success': 'Dokumentista {name} on luotu kopio. Voit vertailla molempia dokumentteja ja selvittää mahdolliset erot.',
  'toast.ccd.scroll_to_item.fetching': 'Haetaan tiedostoa…',
  'toast.ccd.scroll_to_item.error': 'Tiedostoa ei löytynyt.',
  'toast.info.disabled_rename_to_open_item': 'Vanhat XD-dokumentit on ensin avattava, ennen kuin ne voidaan nimetä uudelleen täällä.',
  'toast.action.disabled_rename_to_open_item': 'Avaa dokumentti',
  'toast.error.rename.invalidName': 'Tämä nimi sisältää valitettavasti virheellisiä merkkejä.',
  'toast.error.rename.invalidChar': 'Nimessä ei voi olla seuraavia merkkejä: {characters}',
  'toast.error.rename.invalidEnd': 'Nimi ei voi päättyä pisteeseen tai välilyöntiin.',
  'toast.error.rename.charRestriction': 'Nimet voivat olla enintään 200 merkkiä pitkiä.',
  'toast.error.rename.duplicateName': 'Sinulla on jo tämänniminen pilvidokumentti.',
  'toast.success.reportAbuse': 'Väärinkäytöstä ilmoittaminen onnistui.',
  'toast.error.reportAbuse': 'Väärinkäytöstä ilmoittaminen epäonnistui',
  'toast.operation.undoLabel': 'Kumoa',
  'dialog.permdelete.heading': 'Poista pysyvästi',
  'dialog.permdelete.warning': 'Tätä toimintoa ei voi kumota. Seuraavat menetetään lopullisesti:',
  'dialog.permdelete.cancelButton': 'Peruuta',
  'dialog.permdelete.confirmButton': 'Poista pysyvästi',
  'dialog.permdelete.countItems': '{count, plural, =1 {# kohde} other {# kohdetta}}',
  'dialog.nonemptyfolder.heading': 'Haluatko varmasti poistaa {count, plural, =1 {tämän kansion} other {nämä kansiot}}?',
  'dialog.nonemptyfolder.warning': '{count, plural, =1 {Tämä kansio ei ole tyhjä,} other {Nämä kansiot eivät ole tyhjiä,}} ja niissä voi olla tiedostoja, jotka eivät näy sovelluksessa {appName}. Voit jatkaa poistamista tai katsoa {count, plural, =1 {verkossa olevan kansion} other {verkossa olevat kansiot}} {count, plural, =1 {sen sisällön} other {niiden sisältöjen}} tarkistamiseksi. {viewOnWebLink}',
  'dialog.nonemptyfolder.cancelButton': 'Peruuta',
  'dialog.nonemptyfolder.confirmButton': 'Poista',
  'dialog.nonemptyfolder.viewOnWebButton': 'Näytä verkossa',
  'dialog.addfolder.heading': 'Luo uusi kansio',
  'dialog.addfolder.cancelButton': 'Peruuta',
  'dialog.addfolder.confirmButton': 'Tallenna',
  'dialog.addfolder.placeholder': 'Uusi kansio',
  'dialog.addfolder.invalidChar': 'Nimissä ei voi olla seuraavia merkkejä: {characters}',
  'dialog.addfolder.invalidName': 'Tämän kansion nimessä on valitettavasti virheellisiä merkkejä.',
  'dialog.addfolder.invalidEnd': 'Nimi ei voi päättyä pisteeseen tai välilyöntiin.',
  'dialog.addfolder.duplicateName': 'Sinulla on jo tämänniminen kansio.',
  'dialog.addfolder.charRestriction': 'Nimet voivat olla enintään 200 merkkiä pitkiä.',
  'dialog.moveFolder.heading': 'Siirrä kohteeseen...',
  'dialog.moveFolder.cancelButton': 'Peruuta',
  'dialog.moveFolder.moveButton': 'Siirrä',
  'dialog.moveFolder.createNewFolderButton': 'Lisää kansio',
  'dialog.reportAbuse.cancelButton': 'Peruuta',
  'dialog.reportAbuse.reportAbuseButton': 'Ilmoita väärinkäytöstä',
  'dialog.reportAbuse.heading': 'Ilmoita väärinkäytöstä',
  'dialog.reportAbuse.emailInput': 'Sähköpostiosoitteesi',
  'dialog.reportAbuse.nameInput': 'Nimesi',
  'dialog.reportAbuse.radioButtonText': 'Miksi teet ilmoituksen tästä sisällöstä?',
  'dialog.reportAbuse.defamation': 'Herjaus',
  'dialog.reportAbuse.hate': 'Rasistinen tai vihaa lietsova sisältö',
  'dialog.reportAbuse.trademark': 'Tavaramerkkiloukkaus',
  'dialog.reportAbuse.pornography': 'Seksuaalinen sisältö',
  'dialog.reportAbuse.vulgar': 'Loukkaava sisältö',
  'dialog.reportAbuse.other': 'Muu',
  'dialog.reportAbuse.inappropriate': 'Asiaton',
  'dialog.reportAbuse.age': 'Ikä väärin',
  'dialog.reportAbuse.gender': 'Sukupuoli väärin',
  'dialog.reportAbuse.description': 'Jos tämä Creative Cloudin sisältö rikkoo mielestäsi Adoben käyttöehtoja, voit tehdä sisällöstä ilmoituksen täyttämällä tämän lyhyen lomakkeen.',
  'dialog.reportAbuse.describeConcern': 'Kuvaile ongelma',
  'dialog.reportAbuse.success': 'Väärinkäytöstä ilmoittaminen onnistui.',
  'dialog.reportAbuse.failure': 'Väärinkäytöstä ilmoittaminen epäonnistui',
  'dialog.reportAbuse.textAreaTitle': 'Kerro huolenaiheistasi',
  'dialog.reportAbuse.required': 'Pakollinen',
  'dialog.cachefull.title': 'Offline-käyttöä ei voi sallia.',
  'dialog.cachefull.message': 'Laitteessa ei ole tilaa. Vapauta tilaa sallimalla vain online-käyttö.',
  'dialog.cachefull.confirm': 'OK',
  'dialog.syncError.heading': 'Tämän dokumentin synkronointi pilveen on pysäytetty.',
  'dialog.syncError.body1': 'Suosittelemme, että tallennat uusimman version kopiona ja palautat dokumentin edelliseksi pilveen tallennetuksi versioksi.',
  'dialog.syncError.body2': 'Voit avata tämän dokumentin ja tehdä siihen muutoksia, mutta tekemiäsi muutoksia ei tallenneta pilveen.',
  'dialog.syncError.offline': 'Sinun on oltava online-tilassa, jotta voit tallentaa kopion ja palauttaa alkuperäiskappaleen.',
  'dialog.syncError.learnMore': 'Lue lisää',
  'dialog.syncError.resolveButton': 'Tallenna kopio ja palauta',
  'dialog.syncError.openButton': 'Avaa',
  'dialog.syncErrorCopyFail.heading': 'Kopion tallennus epäonnistui.',
  'dialog.syncErrorCopyFail.body1': 'Voit edelleen avata tämän dokumentin ja tehdä siihen muutoksia, mutta tekemiäsi muutoksia ei tallenneta pilveen.',
  'dialog.syncErrorCopyFail.body2': 'Lisää apua saat ottamalla yhteyttä Adoben asiakaspalveluun. (Virhe: LocalContentSyncSuspended)',
  'dialog.syncErrorCopyFail.closeButton': 'Sulje',
  'dialog.syncErrorCopyFail.contactUs': 'Ota yhteyttä',
  'dialog.syncErrorPurgeFail.heading': 'Edelliseen pilveen tallennetun version palauttaminen epäonnistui.',
  'dialog.syncErrorPurgeFail.body1': 'Dokumentistasi on luotu kopio, mutta dokumentin palauttaminen edelliseksi pilveen tallennetuksi versioksi epäonnistui.',
  'dialog.syncErrorPurgeFail.body2': 'Lisää apua saat ottamalla yhteyttä Adoben asiakaspalveluun. (Virhe: LocalContentSyncSuspended)',
  'dialog.syncErrorPurgeFail.closeButton': 'Sulje',
  'dialog.syncErrorPurgeFail.contactUs': 'Ota yhteyttä',
  'onboardingCdo.banner.title.sprk': 'Parempi tapa työskennellä',
  'onboardingCdo.banner.title.phxs': 'Käytätkö Photoshopia iPadilla? Kokeile pilvidokumentteja.',
  'onboardingCdo.banner.title.ilst': 'Nyt voit käyttää pilvidokumentteja Illustratorissa.',
  'onboardingCdo.banner.title.idsn': 'Nyt voit käyttää pilvidokumentteja InDesignissa.',
  'onboardingCdo.banner.message.sprk': 'Muokkaa pilvidokumenttejasi missä tahansa, jopa offline-tilassa. Muutokset tallennetaan automaattisesti, ja ne ovat nähtävissä dokumenttihistoriassa. Jaa dokumentit muiden kanssa ja työskentele saumattomasti reaaliajassa.',
  'onboardingCdo.banner.message.phxs': 'Pilvidokumentit tallennetaan Adoben pilvipalveluun automaattisesti työskentelyn aikana, jotta voit käyttää tiedostojasi tietokoneella tai iPadilla.',
  'onboardingCdo.banner.message.ilst': 'Illustratorin pilvidokumentit tallennetaan työskentelyn aikana automaattisesti Adoben pilvipalveluun. Voit myös tarkastella versiohistoriaa, josta näet, miten työsi on kehittynyt.',
  'onboardingCdo.banner.message.idsn': 'InDesignin pilvidokumentit tallennetaan työskennellessäsi automaattisesti Adoben pilvipalveluun.',
  'onboardingCdo.banner.linkTitle': 'Lue lisää',
  'onboardingCdo.banner.confirm': 'OK',
  'operation.progress.archive': '{batchSize, plural, =1 {1 kohde} other {{inProgressNum}/{batchSize} kohdetta}} poistetaan...',
  'operation.progress.unarchive': '{batchSize, plural, =1 {1 kohde} other {{inProgressNum}/{batchSize} kohdetta}} palautetaan...',
  'operation.progress.move': '{batchSize, plural, =1 {1 kohde} other {{inProgressNum}/{batchSize} kohdetta}} siirretään...',
  'operation.progress.permdelete': '{batchSize, plural, =1 {1 kohde} other {{inProgressNum}/{batchSize} kohdetta}} poistetaan pysyvästi...',
  'operation.progress.rename': '{batchSize, plural, =1 {1 kohde} other {{inProgressNum}/{batchSize} kohdetta}} nimetään uudelleen...',
  'operation.progress.create_new_folder': 'Luodaan uutta kansiota...',
  'operation.progress.duplicate': '{batchSize, plural, =1 {1 kohde} other {{inProgressNum}/{batchSize} kohdetta}} monistetaan...',
  'operation.progress.user_pin': '{batchSize, plural, =1 {1 kohde} other {{inProgressNum}/{batchSize} kohdetta}} muunnetaan offline-tilassa käytettävissä olevaan muotoon...',
  'operation.progress.user_unpin': '{batchSize, plural, =1 {1 kohde} other {{inProgressNum}/{batchSize} kohdetta}} muunnetaan vain online-tilassa käytettävissä olevaan muotoon...',
  'operation.progress.resolve_sync_error': 'Kopioidaan ja palautetaan edelliseksi pilveen tallennetuksi versioksi...',
  'tooltip.offline.general': 'Tarvitaan Internet-yhteys.',
  'tooltip.offline.create-new-folder': 'Kansioiden luontiin tarvitaan Internet-yhteys.',
  'tooltip.offline.move': 'Kohteiden siirtämiseen tarvitaan Internet-yhteys.',
  'tooltip.syncing.disabled': 'Odotetaan synkronoinnin päättymistä',
  'tooltip.rename.disabled': 'Valittua dokumenttia ei voi nimetä uudelleen. Avaa isäntäsovellus uudelleennimeämisen ottamiseksi käyttöön.',
  'tooltip.rename.disabled.sprk': 'Tätä tiedostoa ei voi nimetä uudelleen, ennen kuin avaat sen XD:ssä.',
  'tooltip.syncSuspended.needsAction': 'Synkronointi on pysäytetty. Avaa toimenpiteisiin ryhtymistä varten.',
  'tooltip.syncSuspended.noAction': 'Synkronointi on pysäytetty. Tätä toimintoa ei tällä hetkellä tueta.',
  'Recents.title': 'Äskeiset',
  'Recents.cloudDocTitle': 'PILVIDOKUMENTTI',
  'Recents.error.subtext.coreSync': 'Viimeisimmät kohteet eivät ole käytettävissä juuri nyt, sillä Creative Cloud -pilvisynkronointi ei toimi oikein.',
  'item.saveForOfflineIconToolTip': 'Tämä dokumentti on ladattu uudelleen, ja se käytettävissä kokonaisuudessaan offline-tilassa.',
  'item.disconnected.cloudonly': 'Yhteys on katkaistu. Muodosta yhteys uudelleen, jotta voit avata dokumentin.',
  'item.coresyncdown.cloudonly': 'Tiedostoa ei voi ladata. Creative Cloudin päivittäminen tai käynnistäminen uudelleen voi ratkaista tämän ongelman.',
  'folder.subtitle': 'KANSIO',
  'review.subtitle': 'TARKISTA',
  'prototype.subtitle': 'PROTOTYYPPI',
  'designspecs.subtitle': 'MALLIN TIEDOT',
  'project.subtitle': 'PROJEKTI',
  'library.subtitle': 'KIRJASTO',
  'webLink.subtitle': 'VERKKOLINKKI',
  'abbreviations.fileSize.byte': 't',
  'abbreviations.fileSize.kilobyte': 'kt',
  'abbreviations.fileSize.megabyte': 'Mt',
  'abbreviations.fileSize.gigabyte': 'Gt',
  'abbreviations.fileSize.terabyte': 'Tt',
  'sam.copyNameFormat': '%@ kopio',
  'cloudsync.quota.title': 'PILVITALLENNUSTILA',
  'cloudsync.quota.percentage': '{percentageUsed} %',
  'cloudsync.quota.usage': '{usedCloudQuotaString}/{maxCloudQuotaString} käytetty',
  'cloudsync.quota.warning': 'Pilvitallennustila on täynnä. Päivitä työsi synkronoinnin jatkamista varten.',
  'cloudsync.quota.error': 'Tallennustietoja ei ole saatavana...',
  'cloudsync.quota.upgrade': 'Päivitä',
  'cloudsync.status.complete.title': 'Synkronoitu ja varmuuskopioitu',
  'cloudsync.status.syncing.title': 'Pilvidokumentteja synkronoidaan.',
  'cloudsync.status.syncing.descr': '{progress}/{total}',
  'cloudsync.status.offline.title': 'Työskennellään offline-tilassa.',
  'cloudsync.status.offline.descr': 'Tallennetaan paikallisesti. Dokumentit synkronoidaan pilveen, kun muodostat yhteyden uudelleen.',
  'cloudsync.status.disabled.title': 'Synkronointi on poistettu käytöstä.',
  'cloudsync.status.disabled.descr': 'Tallennetaan paikallisesti. Dokumentit synkronoidaan pilveen, kun tallennustilaa on käytettävissä.',
  'cloudsync.item.progress.determinate': '{progress}/{total}',
  'cloudsync.item.progress.indeterminate': 'Synkronoidaan...',
  'cloudsync.item.complete': 'Kaikki sovellukset',
  'cloudsync.items.header': 'Verkkotoiminta',
  'cloudsync.alert.title.coresync.down': 'Ei voi ladata.',
  'cloudsync.alert.subtext.coresync.down': 'Pilvi ei synkronoidu. Varmista, että Creative Cloud -tietokonesovellus on päivitetty, tai yritä käynnistää sovellus uudelleen.',
  'cloudsync.alert.subtext.coresync.down.learnmore': 'Lue lisää',
  'cloudsync.tooltip.offline': 'Yhteys katkaistu',
  'cloudsync.tooltip.error': 'Virhe',
  'cloudsync.tooltip.syncing': 'Tallennetaan...',
  'cloudsync.tooltip.default': 'Tallennettu',
  'cloudsync.singleDoc.offline.title': 'Yhteys katkaistu',
  'cloudsync.singleDoc.offline.descr': 'Yritetään muodostaa yhteyttä uudelleen...',
  'cloudsync.singleDoc.offline.timestamp': 'Viimeksi synkronoitu {time}',
  'cloudsync.singleDoc.error.samInitFail.title': 'Pilven synkronointi keskeytyi.',
  'cloudsync.singleDoc.error.samInitFail.descr': 'Käynnistä tämä sovellus uudelleen, jos haluat jatkaa työsi synkronointia.',
  'cloudsync.singleDoc.error.syncSuspended.title': 'Pilven synkronointi keskeytyi.',
  'cloudsync.singleDoc.error.syncSuspended.descr': 'Käynnistä tämä sovellus uudelleen, jos haluat jatkaa työsi synkronointia.',
  'cloudsync.singleDoc.error.title': 'Ei voi ladata.',
  'cloudsync.singleDoc.error.descr': 'Pilvi ei synkronoidu. Varmista, että Creative Cloud -tietokonesovellus on päivitetty, tai yritä käynnistää sovellus uudelleen.',
  'cloudsync.singleDoc.error.learnMore': 'Lue lisää',
  'cloudsync.singleDoc.disabled.quotaExceeded.title': 'Pilvitallennustilasi on täynnä.',
  'cloudsync.singleDoc.disabled.quotaExceeded.descr': 'Päivitä Creative Cloud, jos haluat jatkaa työsi synkronointia.',
  'cloudsync.singleDoc.syncing.title': 'Tallennetaan...',
  'cloudsync.singleDoc.syncing.descr': 'Käynnissä',
  'cloudsync.singleDoc.disabled.title': 'Ei voi tallentaa.',
  'cloudsync.singleDoc.disabled.descr': 'Tilisi tallennustila on loppunut.',
  'cloudsync.singleDoc.complete.title': 'Tiedosto tallennettu',
  'cloudsync.singleDoc.complete.timestamp': 'Viimeksi synkronoitu {time}'
};

/***/ }),

/***/ "PxaR":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _autobindDecorator = _interopRequireDefault(__webpack_require__("gKdT"));

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _createId = _interopRequireDefault(__webpack_require__("b7KY"));

var _DialogButtons = _interopRequireDefault(__webpack_require__("bcRB"));

var _DialogHeader = _interopRequireDefault(__webpack_require__("O6rX"));

var _propTypes = _interopRequireDefault(__webpack_require__("17x9"));

var _react = _interopRequireWildcard(__webpack_require__("q1tI"));

var _FocusManager = __webpack_require__("3C4i");

const _excluded = ["children", "className", "cancelLabel", "confirmLabel", "secondaryLabel", "open", "title", "variant", "mode", "role", "tabIndex", "trapFocus", "isDismissible", "id", "aria-label", "aria-labelledby", "aria-describedby", "aria-modal"];

var _class, _class2, _temp;

function _getRequireWildcardCache(nodeInterop) {
  if (typeof WeakMap !== "function") return null;
  var cacheBabelInterop = new WeakMap();
  var cacheNodeInterop = new WeakMap();
  return (_getRequireWildcardCache = function (nodeInterop) {
    return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
  })(nodeInterop);
}

function _interopRequireWildcard(obj, nodeInterop) {
  if (!nodeInterop && obj && obj.__esModule) {
    return obj;
  }

  if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
    return {
      default: obj
    };
  }

  var cache = _getRequireWildcardCache(nodeInterop);

  if (cache && cache.has(obj)) {
    return cache.get(obj);
  }

  var newObj = {};
  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;

  for (var key in obj) {
    if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
      var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;

      if (desc && (desc.get || desc.set)) {
        Object.defineProperty(newObj, key, desc);
      } else {
        newObj[key] = obj[key];
      }
    }
  }

  newObj.default = obj;

  if (cache) {
    cache.set(obj, newObj);
  }

  return newObj;
}

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
  try {
    var info = gen[key](arg);
    var value = info.value;
  } catch (error) {
    reject(error);
    return;
  }

  if (info.done) {
    resolve(value);
  } else {
    Promise.resolve(value).then(_next, _throw);
  }
}

function _asyncToGenerator(fn) {
  return function () {
    var self = this,
        args = arguments;
    return new Promise(function (resolve, reject) {
      var gen = fn.apply(self, args);

      function _next(value) {
        asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
      }

      function _throw(err) {
        asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
      }

      _next(undefined);
    });
  };
}

if (false) {} else if (false) {} else {
  __webpack_require__("3Bdy");
}

if (true) __webpack_require__("0YIG");
if (true) __webpack_require__("+Jno");
if (true) __webpack_require__("XPLw");
if (true) __webpack_require__("xEce");

let Dialog = (0, _autobindDecorator.default)(_class = (_temp = _class2 = class Dialog extends _react.Component {
  constructor(props) {
    super(props);
    this.dialogId = (0, _createId.default)();
  }
  /*
   * Calls the props.onConfirm() or props.onCancel() asynchronously if present,
   * then props.onClose() on any response except false
   */


  _onAction(action, ...args) {
    var _this = this;

    return _asyncToGenerator(function* () {
      let shouldClose = true;

      if (action) {
        shouldClose = yield action(...args);
      }

      if (shouldClose !== false) {
        _this.props.onClose();
      }
    })();
  }

  onConfirm(...args) {
    this._onAction(this.props.onConfirm, ...args);
  }

  onCancel() {
    this._onAction(this.props.onCancel);
  }

  onFocus(e) {
    if (this.props.onFocus) {
      this.props.onFocus(e);
    }
  }

  onKeyDown(e) {
    const {
      confirmDisabled,
      keyboardConfirm,
      onKeyDown,
      disableEscKey
    } = this.props;

    if (onKeyDown) {
      onKeyDown(e); // Do nothing if stopPropagation has been called on event after onKeyDown prop executes.

      if (e.isPropagationStopped && e.isPropagationStopped()) {
        return;
      }
    }

    switch (e.key) {
      case 'Enter':
        if (!confirmDisabled && keyboardConfirm) {
          this.onConfirm();
        }

        break;

      case 'Esc':
      case 'Escape':
        if (!disableEscKey) {
          this.onCancel();
        }

        break;

      default:
        if (this.props.trapFocus) {
          (0, _FocusManager.trapFocus)(this, e);
        }

        break;
    }
  }

  render() {
    const _this$props = this.props,
          {
      children,
      className = '',
      cancelLabel,
      confirmLabel,
      secondaryLabel,
      open,
      title,
      variant,
      mode,
      role,
      tabIndex,
      trapFocus,
      isDismissible,
      id = this.dialogId,
      'aria-label': ariaLabel,
      'aria-labelledby': ariaLabelledby,
      'aria-describedby': ariaDescribedby,
      'aria-modal': ariaModal
    } = _this$props,
          otherProps = _objectWithoutProperties(_this$props, _excluded);

    const fullscreen = mode === 'fullscreen' || mode === 'fullscreenTakeover';
    const derivedVariant = variant || (cancelLabel && confirmLabel ? 'confirmation' : 'information');
    delete otherProps.modalContent;
    delete otherProps.disableEscKey;
    return (
      /*#__PURE__*/
      // eslint-disable-next-line jsx-a11y/no-static-element-interactions
      _react.default.createElement("div", {
        className: (0, _classnames.default)('spectrum-Dialog', 'react-spectrum-Dialog', {
          [`spectrum-Dialog--${mode}`]: mode,
          'spectrum-Dialog--error': variant === 'error',
          'is-open': open,
          'spectrum-Dialog--dismissible': isDismissible
        }, className),
        role: role
        /* eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex */
        ,
        tabIndex: tabIndex === undefined || trapFocus ? 1 : tabIndex,
        onFocus: this.onFocus,
        onKeyDown: this.onKeyDown,
        id: id,
        "aria-label": ariaLabel,
        "aria-labelledby": ariaLabelledby || (title && !ariaLabel ? `${id}-heading` : null),
        "aria-describedby": ariaDescribedby || (title && children ? `${id}-content` : null),
        "aria-modal": ariaModal || trapFocus
      }, title && /*#__PURE__*/_react.default.createElement(_DialogHeader.default, _extends({
        variant: derivedVariant,
        title: title,
        fullscreen: fullscreen,
        confirmLabel: confirmLabel,
        secondaryLabel: secondaryLabel,
        cancelLabel: cancelLabel,
        isDismissible: isDismissible,
        id: `${id}-heading`
      }, otherProps, {
        onConfirm: this.onConfirm,
        onCancel: this.onCancel
      })), title ? /*#__PURE__*/_react.default.createElement("div", {
        className: "spectrum-Dialog-content",
        id: `${id}-content`
      }, children) : children, !isDismissible && !fullscreen && confirmLabel && /*#__PURE__*/_react.default.createElement(_DialogButtons.default, _extends({}, this.props, {
        variant: derivedVariant,
        className: "spectrum-Dialog-footer",
        onConfirm: this.onConfirm,
        onCancel: this.onCancel
      })))
    );
  }

}, _class2.propTypes = {
  /**
   * Can dismiss by clicking on the backdrop
   */
  backdropClickable: _propTypes.default.bool,

  /**
   * Label of the cancel button
   */
  cancelLabel: _propTypes.default.string,

  /**
   * String of custom class names to add to the top level dom element of Dialog
   */
  className: _propTypes.default.string,

  /**
   * Confirm button is disabled
   */
  confirmDisabled: _propTypes.default.bool,

  /**
   * Label of the confirm button
   */
  confirmLabel: _propTypes.default.string,

  /**
   * Label for an additional button
   */
  secondaryLabel: _propTypes.default.string,

  /**
   * Callback when dialog closes
   */
  onClose: _propTypes.default.func,

  /**
   * Callback when cancel button clicked
   */
  onCancel: _propTypes.default.func,

  /**
   * Callback when confim button clicked. Has a paramater specifying which
   * confirm button is clicked, "primary" or "secondary".
   */
  onConfirm: _propTypes.default.func,

  /**
   * Have dialog opened when mounted to DOM
   */
  open: _propTypes.default.bool,

  /**
   * Title of the dialog
   */
  title: _propTypes.default.node,

  /**
   * Affects the style used by the dialog, establishing its type
   */
  variant: _propTypes.default.oneOf(['confirmation', 'information', 'destructive', 'error']),

  /**
   *  Affects the display size of the dialog
   */
  mode: _propTypes.default.oneOf(['alert', 'fullscreen', 'fullscreenTakeover']),

  /**
   * For ARIA telling what type of dialog this is
   */
  role: _propTypes.default.oneOf(['document', 'dialog', 'alertdialog']),

  /**
   * Which button should be autoFocused after mounted to DOM
   */
  autoFocusButton: _propTypes.default.oneOf(['cancel', 'confirm', 'secondary', null]),

  /**
   * When true, allows user to press enter key and trigger confirm event and close dialog.
   * When false, the user can still use keyboard navigation to close via the comfirm button.
   */
  keyboardConfirm: _propTypes.default.bool,

  /**
   * Keeps focus from escaping dialog
   */
  trapFocus: _propTypes.default.bool,

  /**
   * When true, the Esc key will not close the Dialog or trigger an onCancel event.
   * Use for rare cases when a Dialog requires confirmation before being dismissed.
   */
  disableEscKey: _propTypes.default.bool,

  /**
   * Whether it is a dismissible dialogs. Dismissible dialogs should not have buttons.
   */
  isDismissible: _propTypes.default.bool
}, _class2.defaultProps = {
  backdropClickable: false,
  confirmDisabled: false,
  keyboardConfirm: false,
  open: true,
  role: 'dialog',
  autoFocusButton: null,
  onClose: function () {},
  trapFocus: true,
  disableEscKey: false,
  isDismissible: false
}, _temp)) || _class;

exports.default = Dialog;

/***/ }),

/***/ "Q+5J":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("path", {
  d: "M17.127 2.579L.4 32.512A1 1 0 0 0 1.272 34h33.456a1 1 0 0 0 .873-1.488L18.873 2.579a1 1 0 0 0-1.746 0zM20 29.5a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5v-3a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5zm0-6a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5v-12a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5z"
}));

/***/ }),

/***/ "Q/yX":
/***/ (function(module, exports, __webpack_require__) {

"use strict";
 // https://github.com/tc39/proposal-promise-try

var $export = __webpack_require__("Y7ZC");

var newPromiseCapability = __webpack_require__("ZW5q");

var perform = __webpack_require__("RDmV");

$export($export.S, 'Promise', {
  'try': function (callbackfn) {
    var promiseCapability = newPromiseCapability.f(this);
    var result = perform(callbackfn);
    (result.e ? promiseCapability.reject : promiseCapability.resolve)(result.v);
    return promiseCapability.promise;
  }
});

/***/ }),

/***/ "Q1Ew":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("l9EB"),
      24: __webpack_require__("n2rD")
    }
  }));
};

WrappedIcon.displayName = 'Illustrator';
exports.default = WrappedIcon;

/***/ }),

/***/ "Q1PT":
/***/ (function(module, exports, __webpack_require__) {

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

  var toStringFunction = Function.prototype.toString;
  var create = Object.create,
      defineProperty = Object.defineProperty,
      getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor,
      getOwnPropertyNames = Object.getOwnPropertyNames,
      getOwnPropertySymbols = Object.getOwnPropertySymbols,
      getPrototypeOf = Object.getPrototypeOf;
  var _a = Object.prototype,
      hasOwnProperty = _a.hasOwnProperty,
      propertyIsEnumerable = _a.propertyIsEnumerable;
  /**
   * @enum
   *
   * @const {Object} SUPPORTS
   *
   * @property {boolean} SYMBOL_PROPERTIES are symbol properties supported
   * @property {boolean} WEAKMAP is WeakMap supported
   */

  var SUPPORTS = {
    SYMBOL_PROPERTIES: typeof getOwnPropertySymbols === 'function',
    WEAKMAP: typeof WeakMap === 'function'
  };
  /**
   * @function createCache
   *
   * @description
   * get a new cache object to prevent circular references
   *
   * @returns the new cache object
   */

  var createCache = function () {
    if (SUPPORTS.WEAKMAP) {
      return new WeakMap();
    } // tiny implementation of WeakMap


    var object = create({
      has: function (key) {
        return !!~object._keys.indexOf(key);
      },
      set: function (key, value) {
        object._keys.push(key);

        object._values.push(value);
      },
      get: function (key) {
        return object._values[object._keys.indexOf(key)];
      }
    });
    object._keys = [];
    object._values = [];
    return object;
  };
  /**
   * @function getCleanClone
   *
   * @description
   * get an empty version of the object with the same prototype it has
   *
   * @param object the object to build a clean clone from
   * @param realm the realm the object resides in
   * @returns the empty cloned object
   */


  var getCleanClone = function (object, realm) {
    if (!object.constructor) {
      return create(null);
    }

    var Constructor = object.constructor;
    var prototype = object.__proto__ || getPrototypeOf(object);

    if (Constructor === realm.Object) {
      return prototype === realm.Object.prototype ? {} : create(prototype);
    }

    if (~toStringFunction.call(Constructor).indexOf('[native code]')) {
      try {
        return new Constructor();
      } catch (_a) {}
    }

    return create(prototype);
  };
  /**
   * @function getObjectCloneLoose
   *
   * @description
   * get a copy of the object based on loose rules, meaning all enumerable keys
   * and symbols are copied, but property descriptors are not considered
   *
   * @param object the object to clone
   * @param realm the realm the object resides in
   * @param handleCopy the function that handles copying the object
   * @returns the copied object
   */


  var getObjectCloneLoose = function (object, realm, handleCopy, cache) {
    var clone = getCleanClone(object, realm); // set in the cache immediately to be able to reuse the object recursively

    cache.set(object, clone);

    for (var key in object) {
      if (hasOwnProperty.call(object, key)) {
        clone[key] = handleCopy(object[key], cache);
      }
    }

    if (SUPPORTS.SYMBOL_PROPERTIES) {
      var symbols = getOwnPropertySymbols(object);
      var length_1 = symbols.length;

      if (length_1) {
        for (var index = 0, symbol = void 0; index < length_1; index++) {
          symbol = symbols[index];

          if (propertyIsEnumerable.call(object, symbol)) {
            clone[symbol] = handleCopy(object[symbol], cache);
          }
        }
      }
    }

    return clone;
  };
  /**
   * @function getObjectCloneStrict
   *
   * @description
   * get a copy of the object based on strict rules, meaning all keys and symbols
   * are copied based on the original property descriptors
   *
   * @param object the object to clone
   * @param realm the realm the object resides in
   * @param handleCopy the function that handles copying the object
   * @returns the copied object
   */


  var getObjectCloneStrict = function (object, realm, handleCopy, cache) {
    var clone = getCleanClone(object, realm); // set in the cache immediately to be able to reuse the object recursively

    cache.set(object, clone);
    var properties = SUPPORTS.SYMBOL_PROPERTIES ? getOwnPropertyNames(object).concat(getOwnPropertySymbols(object)) : getOwnPropertyNames(object);
    var length = properties.length;

    if (length) {
      for (var index = 0, property = void 0, descriptor = void 0; index < length; index++) {
        property = properties[index];

        if (property !== 'callee' && property !== 'caller') {
          descriptor = getOwnPropertyDescriptor(object, property);

          if (descriptor) {
            // Only clone the value if actually a value, not a getter / setter.
            if (!descriptor.get && !descriptor.set) {
              descriptor.value = handleCopy(object[property], cache);
            }

            try {
              defineProperty(clone, property, descriptor);
            } catch (error) {
              // Tee above can fail on node in edge cases, so fall back to the loose assignment.
              clone[property] = descriptor.value;
            }
          } else {
            // In extra edge cases where the property descriptor cannot be retrived, fall back to
            // the loose assignment.
            clone[property] = handleCopy(object[property], cache);
          }
        }
      }
    }

    return clone;
  };
  /**
   * @function getRegExpFlags
   *
   * @description
   * get the flags to apply to the copied regexp
   *
   * @param regExp the regexp to get the flags of
   * @returns the flags for the regexp
   */


  var getRegExpFlags = function (regExp) {
    var flags = '';

    if (regExp.global) {
      flags += 'g';
    }

    if (regExp.ignoreCase) {
      flags += 'i';
    }

    if (regExp.multiline) {
      flags += 'm';
    }

    if (regExp.unicode) {
      flags += 'u';
    }

    if (regExp.sticky) {
      flags += 'y';
    }

    return flags;
  }; // utils


  var isArray = Array.isArray;

  var GLOBAL_THIS = function () {
    if (typeof self !== 'undefined') {
      return self;
    }

    if (typeof window !== 'undefined') {
      return window;
    }

    if (typeof global !== 'undefined') {
      return global;
    }

    if (console && console.error) {
      console.error('Unable to locate global object, returning "this".');
    }
  }();
  /**
   * @function copy
   *
   * @description
   * copy an object deeply as much as possible
   *
   * If `strict` is applied, then all properties (including non-enumerable ones)
   * are copied with their original property descriptors on both objects and arrays.
   *
   * The object is compared to the global constructors in the `realm` provided,
   * and the native constructor is always used to ensure that extensions of native
   * objects (allows in ES2015+) are maintained.
   *
   * @param object the object to copy
   * @param [options] the options for copying with
   * @param [options.isStrict] should the copy be strict
   * @param [options.realm] the realm (this) object the object is copied from
   * @returns the copied object
   */


  function copy(object, options) {
    // manually coalesced instead of default parameters for performance
    var isStrict = !!(options && options.isStrict);
    var realm = options && options.realm || GLOBAL_THIS;
    var getObjectClone = isStrict ? getObjectCloneStrict : getObjectCloneLoose;
    /**
     * @function handleCopy
     *
     * @description
     * copy the object recursively based on its type
     *
     * @param object the object to copy
     * @returns the copied object
     */

    var handleCopy = function (object, cache) {
      if (!object || typeof object !== 'object') {
        return object;
      }

      if (cache.has(object)) {
        return cache.get(object);
      }

      var Constructor = object.constructor; // plain objects

      if (Constructor === realm.Object) {
        return getObjectClone(object, realm, handleCopy, cache);
      }

      var clone; // arrays

      if (isArray(object)) {
        // if strict, include non-standard properties
        if (isStrict) {
          return getObjectCloneStrict(object, realm, handleCopy, cache);
        }

        var length_1 = object.length;
        clone = new Constructor();
        cache.set(object, clone);

        for (var index = 0; index < length_1; index++) {
          clone[index] = handleCopy(object[index], cache);
        }

        return clone;
      } // dates


      if (object instanceof realm.Date) {
        return new Constructor(object.getTime());
      } // regexps


      if (object instanceof realm.RegExp) {
        clone = new Constructor(object.source, object.flags || getRegExpFlags(object));
        clone.lastIndex = object.lastIndex;
        return clone;
      } // maps


      if (realm.Map && object instanceof realm.Map) {
        clone = new Constructor();
        cache.set(object, clone);
        object.forEach(function (value, key) {
          clone.set(key, handleCopy(value, cache));
        });
        return clone;
      } // sets


      if (realm.Set && object instanceof realm.Set) {
        clone = new Constructor();
        cache.set(object, clone);
        object.forEach(function (value) {
          clone.add(handleCopy(value, cache));
        });
        return clone;
      } // blobs


      if (realm.Blob && object instanceof realm.Blob) {
        return object.slice(0, object.size, object.type);
      } // buffers (node-only)


      if (realm.Buffer && realm.Buffer.isBuffer(object)) {
        clone = realm.Buffer.allocUnsafe ? realm.Buffer.allocUnsafe(object.length) : new Constructor(object.length);
        cache.set(object, clone);
        object.copy(clone);
        return clone;
      } // arraybuffers / dataviews


      if (realm.ArrayBuffer) {
        // dataviews
        if (realm.ArrayBuffer.isView(object)) {
          clone = new Constructor(object.buffer.slice(0));
          cache.set(object, clone);
          return clone;
        } // arraybuffers


        if (object instanceof realm.ArrayBuffer) {
          clone = object.slice(0);
          cache.set(object, clone);
          return clone;
        }
      } // if the object cannot / should not be cloned, don't


      if ( // promise-like
      typeof object.then === 'function' || // errors
      object instanceof Error || // weakmaps
      realm.WeakMap && object instanceof realm.WeakMap || // weaksets
      realm.WeakSet && object instanceof realm.WeakSet) {
        return object;
      } // assume anything left is a custom constructor


      return getObjectClone(object, realm, handleCopy, cache);
    };

    return handleCopy(object, createCache());
  } // Adding reference to allow usage in CommonJS libraries compiled using TSC, which
  // expects there to be a default property on the exported object. See
  // [#37](https://github.com/planttheidea/fast-copy/issues/37) for details.


  copy.default = copy;
  /**
   * @function strictCopy
   *
   * @description
   * copy the object with `strict` option pre-applied
   *
   * @param object the object to copy
   * @param [options] the options for copying with
   * @param [options.realm] the realm (this) object the object is copied from
   * @returns the copied object
   */

  copy.strict = function strictCopy(object, options) {
    return copy(object, {
      isStrict: true,
      realm: options ? options.realm : void 0
    });
  };

  return copy;
});
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("yLpj")))

/***/ }),

/***/ "Q1l4":
/***/ (function(module, exports) {

/**
 * Copies the values of `source` to `array`.
 *
 * @private
 * @param {Array} source The array to copy values from.
 * @param {Array} [array=[]] The array to copy values to.
 * @returns {Array} Returns `array`.
 */
function copyArray(source, array) {
  var index = -1,
      length = source.length;
  array || (array = Array(length));

  while (++index < length) {
    array[index] = source[index];
  }

  return array;
}

module.exports = copyArray;

/***/ }),

/***/ "Q4OO":
/***/ (function(module) {

module.exports = JSON.parse("{\"(optional)\":\"(valgfrit)\",\"(required)\":\"(påkrævet)\"}");

/***/ }),

/***/ "Q4ZP":
/***/ (function(module, exports, __webpack_require__) {

!function (e, n) {
   true ? module.exports = n() : undefined;
}(this, function () {
  "use strict";

  return [{
    locale: "nl",
    pluralRuleFunction: function (e, n) {
      var a = !String(e).split(".")[1];
      return n ? "other" : 1 == e && a ? "one" : "other";
    },
    fields: {
      year: {
        displayName: "jaar",
        relative: {
          0: "dit jaar",
          1: "volgend jaar",
          "-1": "vorig jaar"
        },
        relativeTime: {
          future: {
            one: "over {0} jaar",
            other: "over {0} jaar"
          },
          past: {
            one: "{0} jaar geleden",
            other: "{0} jaar geleden"
          }
        }
      },
      "year-short": {
        displayName: "jr",
        relative: {
          0: "dit jaar",
          1: "volgend jaar",
          "-1": "vorig jaar"
        },
        relativeTime: {
          future: {
            one: "over {0} jaar",
            other: "over {0} jaar"
          },
          past: {
            one: "{0} jaar geleden",
            other: "{0} jaar geleden"
          }
        }
      },
      month: {
        displayName: "maand",
        relative: {
          0: "deze maand",
          1: "volgende maand",
          "-1": "vorige maand"
        },
        relativeTime: {
          future: {
            one: "over {0} maand",
            other: "over {0} maanden"
          },
          past: {
            one: "{0} maand geleden",
            other: "{0} maanden geleden"
          }
        }
      },
      "month-short": {
        displayName: "mnd",
        relative: {
          0: "deze maand",
          1: "volgende maand",
          "-1": "vorige maand"
        },
        relativeTime: {
          future: {
            one: "over {0} maand",
            other: "over {0} maanden"
          },
          past: {
            one: "{0} maand geleden",
            other: "{0} maanden geleden"
          }
        }
      },
      day: {
        displayName: "dag",
        relative: {
          0: "vandaag",
          1: "morgen",
          2: "overmorgen",
          "-2": "eergisteren",
          "-1": "gisteren"
        },
        relativeTime: {
          future: {
            one: "over {0} dag",
            other: "over {0} dagen"
          },
          past: {
            one: "{0} dag geleden",
            other: "{0} dagen geleden"
          }
        }
      },
      "day-short": {
        displayName: "dag",
        relative: {
          0: "vandaag",
          1: "morgen",
          2: "overmorgen",
          "-2": "eergisteren",
          "-1": "gisteren"
        },
        relativeTime: {
          future: {
            one: "over {0} dag",
            other: "over {0} dgn"
          },
          past: {
            one: "{0} dag geleden",
            other: "{0} dgn geleden"
          }
        }
      },
      hour: {
        displayName: "uur",
        relative: {
          0: "binnen een uur"
        },
        relativeTime: {
          future: {
            one: "over {0} uur",
            other: "over {0} uur"
          },
          past: {
            one: "{0} uur geleden",
            other: "{0} uur geleden"
          }
        }
      },
      "hour-short": {
        displayName: "uur",
        relative: {
          0: "binnen een uur"
        },
        relativeTime: {
          future: {
            one: "over {0} uur",
            other: "over {0} uur"
          },
          past: {
            one: "{0} uur geleden",
            other: "{0} uur geleden"
          }
        }
      },
      minute: {
        displayName: "minuut",
        relative: {
          0: "binnen een minuut"
        },
        relativeTime: {
          future: {
            one: "over {0} minuut",
            other: "over {0} minuten"
          },
          past: {
            one: "{0} minuut geleden",
            other: "{0} minuten geleden"
          }
        }
      },
      "minute-short": {
        displayName: "min",
        relative: {
          0: "binnen een minuut"
        },
        relativeTime: {
          future: {
            one: "over {0} min.",
            other: "over {0} min."
          },
          past: {
            one: "{0} min. geleden",
            other: "{0} min. geleden"
          }
        }
      },
      second: {
        displayName: "seconde",
        relative: {
          0: "nu"
        },
        relativeTime: {
          future: {
            one: "over {0} seconde",
            other: "over {0} seconden"
          },
          past: {
            one: "{0} seconde geleden",
            other: "{0} seconden geleden"
          }
        }
      },
      "second-short": {
        displayName: "sec",
        relative: {
          0: "nu"
        },
        relativeTime: {
          future: {
            one: "over {0} sec.",
            other: "over {0} sec."
          },
          past: {
            one: "{0} sec. geleden",
            other: "{0} sec. geleden"
          }
        }
      }
    }
  }, {
    locale: "nl-AW",
    parentLocale: "nl"
  }, {
    locale: "nl-BE",
    parentLocale: "nl"
  }, {
    locale: "nl-BQ",
    parentLocale: "nl"
  }, {
    locale: "nl-CW",
    parentLocale: "nl"
  }, {
    locale: "nl-SR",
    parentLocale: "nl"
  }, {
    locale: "nl-SX",
    parentLocale: "nl"
  }];
});

/***/ }),

/***/ "Q4bd":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/

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 __());
  };
}();

var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {
  function adopt(value) {
    return value instanceof P ? value : new P(function (resolve) {
      resolve(value);
    });
  }

  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) : adopt(result.value).then(fulfilled, rejected);
    }

    step((generator = generator.apply(thisArg, _arguments || [])).next());
  });
};

var __generator = this && this.__generator || function (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
    };
  }
};

var __importDefault = this && this.__importDefault || function (mod) {
  return mod && mod.__esModule ? mod : {
    "default": mod
  };
};

Object.defineProperty(exports, "__esModule", {
  value: true
});

__webpack_require__("cnSC");

var RequestProcessor_1 = __importDefault(__webpack_require__("HyxP"));
/**
 * Handles service-specific response processing for cloud service and acp.local interaction
 */


var RenditionRequestProcessor =
/** @class */
function (_super) {
  __extends(RenditionRequestProcessor, _super);

  function RenditionRequestProcessor() {
    return _super !== null && _super.apply(this, arguments) || this;
  }
  /**
   * Transforms the request for ACP.local, if needed
   * @param request
   * @param bodyJson
   */


  RenditionRequestProcessor.prototype.requestTransformAcpLocal = function (request, additionalParams) {
    return __awaiter(this, void 0, void 0, function () {
      var _this = this;

      return __generator(this, function (_a) {
        return [2
        /*return*/
        , new Promise(function (resolve, reject) {
          return __awaiter(_this, void 0, void 0, function () {
            var requestComponents, modDate;
            return __generator(this, function (_a) {
              switch (_a.label) {
                case 0:
                  return [4
                  /*yield*/
                  , _super.prototype.requestTransformAcpLocal.call(this, request)];

                case 1:
                  requestComponents = _a.sent();

                  if (this._useACPLocal && additionalParams && additionalParams.modifiedDate) {
                    modDate = new Date(additionalParams.modifiedDate);
                    requestComponents.context.setHeader('x-acpl-lastModified-date', modDate.toISOString());
                  }

                  if (this._useACPLocal && additionalParams && additionalParams.preferCloudThumbnails) {
                    requestComponents.context.setHeader('x-acpl-cloud-rendition', 'true');
                  }

                  requestComponents.context.setHeader('Cache-Control', 'max-age=0');
                  resolve(requestComponents);
                  return [2
                  /*return*/
                  ];
              }
            });
          });
        })];
      });
    });
  };
  /**
   * Transforms the response for direct interaction with services, if needed
   * @param response
   * @param additionalParams
   */


  RenditionRequestProcessor.prototype.responseTransformWeb = function (response, additionalParams) {
    return __awaiter(this, void 0, void 0, function () {
      var renditionSrc, renditionBlob, error_1, newResponse;
      return __generator(this, function (_a) {
        switch (_a.label) {
          case 0:
            renditionSrc = '';
            _a.label = 1;

          case 1:
            _a.trys.push([1, 3,, 4]);

            return [4
            /*yield*/
            , response.blob()];

          case 2:
            renditionBlob = _a.sent();

            if (renditionBlob && URL && URL.createObjectURL) {
              renditionSrc = URL.createObjectURL(renditionBlob);
            }

            return [3
            /*break*/
            , 4];

          case 3:
            error_1 = _a.sent();
            console.log("Error getting rendition: " + error_1);
            return [3
            /*break*/
            , 4];

          case 4:
            newResponse = RequestProcessor_1.default.createResponse(response.status, response.statusText, renditionSrc);
            return [2
            /*return*/
            , Promise.resolve(newResponse)];
        }
      });
    });
  };
  /**
   * Transforms the response for ACP.local, if needed
   * @param acplResponse
   * @param additionalParams
   */


  RenditionRequestProcessor.prototype.responseTransformAcpLocal = function (acplResponse, additionalParams) {
    return __awaiter(this, void 0, void 0, function () {
      var acplElementResponse, renditionResponse, renditionSrc, response;
      return __generator(this, function (_a) {
        if (!RequestProcessor_1.default.isAcplStatusSuccessful(acplResponse.statusCode)) {
          return [2
          /*return*/
          , _super.prototype.responseTransformAcpLocal.call(this, acplResponse, additionalParams)];
        }

        acplElementResponse = acplResponse;
        renditionResponse = acplElementResponse.element;
        renditionSrc = '';

        if (renditionResponse && renditionResponse.path) {
          renditionSrc = renditionResponse.path;

          if (!(renditionSrc.startsWith('plugin:') || renditionSrc.startsWith('https:'))) {
            renditionSrc = encodeURI("file://" + renditionResponse.path.normalize('NFC'));
          }
        }

        response = RequestProcessor_1.default.createResponse(RequestProcessor_1.default.getWebStatusCode(acplResponse.statusCode), acplResponse.statusMessage, renditionSrc);
        return [2
        /*return*/
        , Promise.resolve(response)];
      });
    });
  }; // "/rendition/id/<asset-id>"
  // "/id/<asset-id>/:rendition*"
  // "<path>/:rendition*"


  RenditionRequestProcessor.urlRegex = new RegExp("/:rendition|/rendition/id/");
  RenditionRequestProcessor.method = ['GET'];
  return RenditionRequestProcessor;
}(RequestProcessor_1.default);

exports.default = RenditionRequestProcessor;

/***/ }),

/***/ "Q5CW":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return AssetCollection; });
/* harmony import */ var lodash_merge__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("QkVN");
/* harmony import */ var lodash_merge__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash_merge__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("2vnA");
/* harmony import */ var uuid__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("EcEN");
/* harmony import */ var uuid__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(uuid__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _utils_Logger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("lmMR");
/* harmony import */ var _utils_metrics__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("jaHz");
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("C0qj");
/* harmony import */ var _types_IAssetModel__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("avlf");
/* harmony import */ var _types_IAssetModel__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_types_IAssetModel__WEBPACK_IMPORTED_MODULE_6__);
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;
};
var __metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
/*************************************************************************
 *   ADOBE CONFIDENTIAL
 *
 *   Copyright 2022 Adobe
 *   All Rights Reserved.
 *
 *   NOTICE:  All information contained herein is, and remains
 *   the property of Adobe and its suppliers, if any. The intellectual
 *   and technical concepts contained herein are proprietary to Adobe
 *   and its suppliers and are protected by all applicable intellectual
 *   property laws, including trade secret and copyright laws.
 *   Dissemination of this information or reproduction of this material
 *   is strictly forbidden unless prior written permission is obtained
 *   from Adobe.
 **************************************************************************/







class AssetCollection {
    constructor(config, context) {
        this.context = context;
        this.logger = new _utils_Logger__WEBPACK_IMPORTED_MODULE_3__[/* Logger */ "a"](this.constructor.name);
        this.isDirty = false;
        this.shouldRestartFetch = false;
        this.fetchCriteria = { excludeCloud: false };
        this.excludeLocal = false;
        this.fetchWhenStale = false;
        this.waitingForInitialization = false;
        this.mergePreservesCloudOnlyCachedItems = false;
        this.enablePerformanceMetrics = false;
        this.elements = mobx__WEBPACK_IMPORTED_MODULE_1__[/* observable */ "z"].array();
        // TODO: make private when tests don't rely on it
        this.lastFetchMetadata = {};
        this._firstFetch = true;
        this.fetchState = _constants__WEBPACK_IMPORTED_MODULE_5__[/* ProcessingState */ "n"].Pending;
        this.fetchElements = Object(mobx__WEBPACK_IMPORTED_MODULE_1__[/* flow */ "q"])(this._fetchElements);
        Object.assign(this, config);
    }
    *_fetchElements(criteria = { excludeCloud: false }) {
        var _a, _b, _c, _d, _e, _f, _g, _h;
        const listAction = 'list';
        const correlationId = uuid__WEBPACK_IMPORTED_MODULE_2___default.a.v1();
        const commonMetrics = {
            correlationId,
            dtsStart: new Date(Date.now()),
            offline: !this.isOnline(),
        };
        const PERFORMANCE_MARK_NAME_COLLECTION_FETCHELEMENTS = 'cdo:Collection-fetchElements';
        const PERFORMANCE_MARK_NAME_COLLECTION_WAITFORINIT = 'cdo:Collection-waitForInit';
        const { enablePerformanceMetrics } = this;
        let mark = null;
        try {
            if (this.fetchState === _constants__WEBPACK_IMPORTED_MODULE_5__[/* ProcessingState */ "n"].Fetching) {
                this.debug('fetchElements() -- Already fetching');
                return;
            }
            // If one fetch has successfully completed, don't refetch unless dirty or stale
            if (this.fetchState === _constants__WEBPACK_IMPORTED_MODULE_5__[/* ProcessingState */ "n"].Done && !this.isDirty && !this.isStale) {
                this.debug('fetchElements() -- Already fetched, and not dirty or stale');
                return;
            }
            // Collections that don't support offline mode can't do anything in offline mode
            if (criteria.excludeCloud && this.excludeLocal) {
                this.debug("fetchElements() -- this collection doesn't support offline mode");
                this.setFetchState(_constants__WEBPACK_IMPORTED_MODULE_5__[/* ProcessingState */ "n"].Done);
                return;
            }
            // Some collections (SAMFolderCollection) may need to do some late initialization.
            if (this.waitingForInitialization) {
                this.debug('fetchElements() -- already waiting for initialization');
                return;
            }
            if (enablePerformanceMetrics) {
                (_a = window === null || window === void 0 ? void 0 : window.performance) === null || _a === void 0 ? void 0 : _a.clearMarks(PERFORMANCE_MARK_NAME_COLLECTION_WAITFORINIT);
                (_b = window === null || window === void 0 ? void 0 : window.performance) === null || _b === void 0 ? void 0 : _b.mark(PERFORMANCE_MARK_NAME_COLLECTION_WAITFORINIT);
            }
            yield this.waitForInitialization();
            if (enablePerformanceMetrics) {
                (_c = window === null || window === void 0 ? void 0 : window.performance) === null || _c === void 0 ? void 0 : _c.measure('cdo:Collection-waitForInit', PERFORMANCE_MARK_NAME_COLLECTION_WAITFORINIT);
            }
            const cantFetchReason = (_e = (_d = this.context).clientCantFetchReason) === null || _e === void 0 ? void 0 : _e.call(_d);
            if (cantFetchReason) {
                const errorDesc = `Collection.fetchElements() -- Client cannot fetch: ${cantFetchReason}`;
                this.error(errorDesc);
                this.setFetchState(_constants__WEBPACK_IMPORTED_MODULE_5__[/* ProcessingState */ "n"].Error);
                const eventData = _utils_metrics__WEBPACK_IMPORTED_MODULE_4__[/* default */ "i"].getOperationalMetricData(listAction, lodash_merge__WEBPACK_IMPORTED_MODULE_0___default()({}, commonMetrics, {
                    eventType: _utils_metrics__WEBPACK_IMPORTED_MODULE_4__[/* EventType */ "c"].Error,
                    errorDesc,
                }));
                this.onAnalyticsEvent(eventData);
                return;
            }
            if (!this.beforeFetch(criteria)) {
                this.error('fetchElements() -- criteria did not pass validation');
                this.setFetchState(_constants__WEBPACK_IMPORTED_MODULE_5__[/* ProcessingState */ "n"].Error);
                return;
            }
            if (enablePerformanceMetrics) {
                (_f = window === null || window === void 0 ? void 0 : window.performance) === null || _f === void 0 ? void 0 : _f.clearMarks(PERFORMANCE_MARK_NAME_COLLECTION_FETCHELEMENTS);
                mark = (_g = window === null || window === void 0 ? void 0 : window.performance) === null || _g === void 0 ? void 0 : _g.mark(PERFORMANCE_MARK_NAME_COLLECTION_FETCHELEMENTS);
            }
            // Store the criteria from the original.
            this.fetchCriteria = criteria;
            this.copyCriteriaToModel(criteria);
            this.setFetchState(_constants__WEBPACK_IMPORTED_MODULE_5__[/* ProcessingState */ "n"].Fetching);
            do {
                commonMetrics.dtsStart = new Date(Date.now());
                this.shouldRestartFetch = false;
                // Clone the argument to avoid modifying original
                let workingCriteria = { ...criteria };
                // clears out the previously fetched metadata
                this.setLastFetchMetadata({});
                let results;
                let extractedElements;
                // If excluding offline content, start with cloud-only content;
                // otherwise, fetch offline content, then cloud-only content
                let localOnly = !this.excludeLocal;
                const localFetchedIds = new Set();
                const cloudFetchedIds = new Set();
                let workingFetchedIds = localFetchedIds;
                do {
                    results = yield this.performFetch(workingCriteria, localOnly, correlationId);
                    // For some reason, rejected promises from SWY aren't always being treated
                    // as thrown exceptions like what normally happens with `await` inside a
                    // try/catch block, so rethrow the errors
                    if (results instanceof Error) {
                        throw results;
                    }
                    this.updateLastFetchMetadataFromResults(results, localOnly);
                    // Get the Documents from the results and merge them in
                    extractedElements = this.extractElements(results);
                    // Collect all the ids retrieved so removed elements can be identified. Need to collect both
                    // localUri and cloudUri, as el.id can transition from localId to cloudId without warning.
                    extractedElements.forEach(el => {
                        // eslint-disable-line no-loop-func
                        el.localUri && workingFetchedIds.add(el.localUri);
                        el.cloudUri && workingFetchedIds.add(el.cloudUri);
                    });
                    this.mergeElements(extractedElements, localOnly);
                    // Fetch additional pages, if needed
                    workingCriteria = this.getNextPageCriteria(results, workingCriteria, localOnly);
                    // Once localOnly content is exhausted, switch to fetching cloud content, if needed
                    if (!workingCriteria && localOnly && !criteria.excludeCloud) {
                        localOnly = false;
                        // Start again with the original criteria
                        workingCriteria = { ...criteria };
                        workingFetchedIds = cloudFetchedIds;
                    }
                } while (workingCriteria);
                // Remove elements that weren't fetched, as they should no longer be in the collection
                this.removeDeletedElements(localFetchedIds, cloudFetchedIds);
                const eventData = _utils_metrics__WEBPACK_IMPORTED_MODULE_4__[/* default */ "i"].getOperationalMetricData(listAction, lodash_merge__WEBPACK_IMPORTED_MODULE_0___default()({}, commonMetrics, {
                    eventType: _utils_metrics__WEBPACK_IMPORTED_MODULE_4__[/* EventType */ "c"].Success,
                }));
                this.onAnalyticsEvent(eventData);
                if (this.shouldRestartFetch) {
                    this.debug('marked dirty while fetching, restarting');
                }
            } while (this.shouldRestartFetch);
            this.isDirty = false;
            this._firstFetch = false;
            this.setFetchState(_constants__WEBPACK_IMPORTED_MODULE_5__[/* ProcessingState */ "n"].Done);
        }
        catch (error) {
            this.setFetchState(_constants__WEBPACK_IMPORTED_MODULE_5__[/* ProcessingState */ "n"].Error);
            this.handleError(error);
            this.error('fetchElements() failed', error);
            const eventData = _utils_metrics__WEBPACK_IMPORTED_MODULE_4__[/* default */ "i"].getOperationalMetricData(listAction, lodash_merge__WEBPACK_IMPORTED_MODULE_0___default()({}, commonMetrics, {
                eventType: _utils_metrics__WEBPACK_IMPORTED_MODULE_4__[/* EventType */ "c"].Error,
                errorCode: error.status,
                errorDesc: error.statusText || error.message,
            }));
            this.onAnalyticsEvent(eventData);
        }
        this.afterFetchElements();
        this.lastFetchTime = Date.now();
        if (mark !== null) {
            (_h = window === null || window === void 0 ? void 0 : window.performance) === null || _h === void 0 ? void 0 : _h.measure('cdo:Collection-fetchElements', PERFORMANCE_MARK_NAME_COLLECTION_FETCHELEMENTS);
        }
    }
    __setElementsForTests(elements) {
        this.elements.replace(elements);
    }
    log(msg, ...args) {
        this.logger.log(msg, ...args);
    }
    error(msg, ...args) {
        this.logger.error(msg, ...args);
    }
    debug(msg, ...args) {
        this.logger.debug(msg, ...args);
    }
    /**
     * Validate that the client that makes service calls is operable. Overrides should `this.error` the conditions
     * that make the client inoperable. DocumentStore is responsible for ensuring that the client is fully
     * initialized before getting to this point, so that UX does not display misleading errors during start up.
     */
    /**
     * Criteria validation step done before fetching. Implementations should `this.error` the conditions
     * that make the criteria invalid.
     *
     * @param criteria {Object} key/value pairs for fetch parameters
     * @returns {boolean} True to continue fetching
     */
    // eslint-disable-next-line class-methods-use-this
    beforeFetch(criteria) {
        return true;
    }
    setNeedsRefresh() { }
    /**
     * Often need to copy parameters from criteria to the model so things like sortBy/sortDir are in sync with
     * how the data was fetched from the service.
     * @param criteria
     */
    copyCriteriaToModel(criteria) {
        // Object.keys for MST models iterates over props but not views or actions
        Object.keys(this).forEach(key => {
            if (Object.prototype.hasOwnProperty.call(criteria, key)) {
                // @ts-ignore
                this[key] = criteria[key];
            }
        });
    }
    setIsDirty() {
        if (this.fetchState === _constants__WEBPACK_IMPORTED_MODULE_5__[/* ProcessingState */ "n"].Fetching) {
            this.shouldRestartFetch = true;
        }
        this.isDirty = true;
    }
    setFetchState(newState) {
        this.fetchState = newState;
    }
    setSortAndDir({ sortBy, sortDir = _constants__WEBPACK_IMPORTED_MODULE_5__[/* UXSortDir */ "w"].asc }) {
        this.sortBy = sortBy;
        this.sortDir = sortDir;
    }
    removeChild(child) {
        this.elements.remove(child);
    }
    setSortBy(sortBy) {
        this.sortBy = sortBy;
    }
    setSortDir(sortDir) {
        this.sortDir = sortDir;
    }
    setLastFetchMetadata(fetchMetadata) {
        this.lastFetchMetadata = fetchMetadata;
    }
    clear() {
        this.elements.clear();
    }
    get firstFetch() {
        return this._firstFetch;
    }
    get locale() {
        var _a;
        return (_a = this.context.locale) !== null && _a !== void 0 ? _a : 'en';
    }
    async fetchAuthToken() {
        return this.context.fetchAuthToken();
    }
    get onAnalyticsEvent() {
        return this.context.onAnalyticsEvent;
    }
    get isOnline() {
        return this.context.isOnline;
    }
    get isStale() {
        return (this.fetchWhenStale && Date.now() - this.lastFetchTime > AssetCollection.STALE_TIME_MS);
    }
    get isNotLoading() {
        return (this.fetchState === _constants__WEBPACK_IMPORTED_MODULE_5__[/* ProcessingState */ "n"].Done || this.fetchState === _constants__WEBPACK_IMPORTED_MODULE_5__[/* ProcessingState */ "n"].Error);
    }
    get isEmpty() {
        return this.elements.length === 0;
    }
    get isDoneAndEmpty() {
        return this.isNotLoading && this.isEmpty;
    }
    get filteredElements() {
        return this.elements;
    }
    get sortedElements() {
        return this.filteredElements
            .slice()
            .sort(Object(_constants__WEBPACK_IMPORTED_MODULE_5__[/* createComparator */ "y"])(this.sortBy, this.sortDir, this.locale));
    }
    // eslint-disable-next-line class-methods-use-this
    get canHaveMultipleMimetypes() {
        return false;
    }
    /**
     * For subclasses that need additional initialization before it can be used. Subclasses should
     * override performInitialization, not this method.
     *
     * @returns {Promise<void>}
     */
    async waitForInitialization() {
        this.waitingForInitialization = true;
        try {
            await this.performInitialization();
        }
        catch (e) {
            this.error('performInitialization rejected', e);
            // Rethrowing so the error handler in fetchElements will handle it
            throw e;
        }
        finally {
            this.waitingForInitialization = false;
        }
    }
    // @abstract optional
    // eslint-disable-next-line class-methods-use-this
    async performInitialization() {
        return undefined;
    }
    /**
     * Error handling for fetchElements.
     * @abstract
     * @param e
     */
    // Subclasses can optionally override this to do any additional work when performFetch fails
    // eslint-disable-next-line class-methods-use-this
    handleError(e) { }
    /**
     * Removes from `this.elements` items that were missing in the last fetch, indicating they're no longer part
     * of the collection.
     *
     * @param localFetchedIds
     * @param cloudFetchedIds
     */
    removeDeletedElements(localFetchedIds, cloudFetchedIds) {
        const allIds = new Set([...localFetchedIds, ...cloudFetchedIds]);
        const { excludeCloud } = this.fetchCriteria;
        // Check both localUri and cloudUri, as the id can change without notification.
        const isMissing = (element, idSet) => (idSet.has(element.localUri) || idSet.has(element.cloudUri)) === false;
        // iterate over items in reverse so that removing an element does not cause it to skip over an item
        const n = this.elements.length;
        for (let i = n - 1; i >= 0; i--) {
            const element = this.elements[i];
            // Read carefully, this is convoluted by design. ACPL will exclude cached files from the local
            // listing but include them in the cloud listing, and it's left up to the client to decide how
            // to handle this. See https://wiki.corp.adobe.com/pages/viewpage.action?spaceKey=CFS&title=CDO+Merge+Steps
            //   * For CCXCD-1959, this scenario means an item is being removed from the folder, so it should
            //     be excluded from the view.
            //   * For CCXCD-4017, the fix for CCXCD-1959 would cause archived items to be hidden. Archiving
            //     a cached item while online causes it to become uncached, which means it might not show in
            //     the local listing but still show in the cloud listing with the cache flag. To fix that, we
            //     ignore the rule above for archived folder by setting the `mergePreservesCloudOnlyCachedItems`
            //     flag for the archived folder collection.
            //   * For CCXCD-5909, the fix for CCXCD-4017, when offline, causes cached items to remain in the
            //     archive folder after they are successfully restored. This is because only the local listing
            //     is performed, which should be the authoritative source for cached items when offline. To
            //     fix this, only apply the rule for CCXCD-4017 when online.
            if (element.isCached && isMissing(element, localFetchedIds)) {
                if (this.mergePreservesCloudOnlyCachedItems && !excludeCloud) {
                    this.debug('skipped removing cached item from archive collection', element.id, element.title);
                }
                else {
                    this.debug('removing cached item', element.id, element.title);
                    this.elements.remove(element);
                }
            }
            // preserve cloud-only items, so that customers do not feel like content is lost when
            // they go offline.
            if (!excludeCloud) {
                // When including cloud listing, the cloud is the authoritative source for folders. Even if a folder
                // is seen in localOnly listing, but not in the cloud, this item must be removed. There may be a
                // small window where the localOnly listing isn't in sync with the cloud.
                if (element.isFolder && isMissing(element, cloudFetchedIds)) {
                    this.debug('removing folder that is not in the cloud', element.id, element.title);
                    this.elements.remove(element);
                }
                else if (isMissing(element, allIds)) {
                    this.debug('removing item that is not in local or cloud', element.id, element.title);
                    this.elements.remove(element);
                }
            }
        }
    }
    /**
     * Called when fetchElements completes, successfully or not. Implementations
     * can use this to perform additional tasks after fetching is done.
     */
    afterFetchElements() { } // eslint-disable-line class-methods-use-this
    findByUrn(urn) {
        return this.elements.find(el => el.urn.toLowerCase() === urn.toLowerCase());
    }
    // eslint-disable-next-line class-methods-use-this
    replaceOrUpdate(myModel, otherModel) {
        if (myModel.isMatch(otherModel) === false) {
            // eslint-disable-next-line no-console
            console.error('[Collection.replaceOrUpdate] models are not the same logical model', myModel.id, otherModel.id);
            return;
        }
        // If we've loaded the rendition before, and the content has changed, the rendition needs to be updated.
        const shouldUpdateRendition = myModel.hasFetchedRendition &&
            (myModel.modifiedDate.getTime() !== otherModel.modifiedDate.getTime() ||
                myModel.renditionTemplate !== otherModel.renditionTemplate);
        // Update only the fields that are different
        myModel.updateFrom(otherModel);
        if (shouldUpdateRendition) {
            myModel.getRendition();
        }
    }
    /**
     * Update the elements list, replacing only entries that are changed, and adding those that are new.
     *
     * Note:
     * The pseudocode of this algorithm can be found here: https://wiki.corp.adobe.com/display/CFS/CDO+Merge+Steps
     *
     * @param extractedElements {Document[]} Elements returned from the last page of results
     * @param localOnly {boolean} Whether or not the merge is for local/cached listing
     */
    mergeElements(extractedElements, localOnly) {
        const myElements = this.elements;
        const { excludeCloud } = this.fetchCriteria;
        this.debug('mergeElements %d items, localOnly=%s', extractedElements.length, localOnly);
        extractedElements.forEach(element => {
            const foundElement = myElements.find((eleToMatch) => eleToMatch.isMatch(element));
            let shouldCheckForUpdate = false;
            if (foundElement) {
                if (localOnly) {
                    // For files, the local listing is always the authoritative source for local files.
                    // Folders are never updated from local listing.
                    if (!element.isFolder) {
                        this.debug('...replace from localOnly', element.id, element.path);
                        shouldCheckForUpdate = true;
                    }
                }
                else {
                    // The cloud is the authoritative source for folders, and files that are not cached.
                    if (element.isFolder || !element.isCached) {
                        this.debug('...replace from cloud', element.id, element.path);
                        shouldCheckForUpdate = true;
                    }
                }
                if (shouldCheckForUpdate) {
                    this.replaceOrUpdate(foundElement, element);
                }
            }
            else {
                if (!element.isFolder) {
                    if (localOnly) {
                        // Cached files are managed by local listing, not cloud listing, and should always be
                        // added.
                        this.debug('...add cached file from local listing', element.id, element.path);
                        myElements.push(element);
                    }
                    else {
                        if (!element.isCached) {
                            // Cloud-only files are managed by cloud listing, and should always be added.
                            this.debug('...add cloud-only file', element.id, element.path);
                            myElements.push(element);
                        }
                        else {
                            // If a cached file is missing in the local listing but is in the cloud listing,
                            // then the file is in the process of being removed from the collection and should
                            // not be added back in.
                            this.debug('...skip file -- removal is in progress', element.id, element.path);
                        }
                    }
                }
                else {
                    // Folders
                    if (!localOnly || excludeCloud) {
                        // Folders should only be updated from the cloud, or from local listing when offline.
                        if (localOnly) {
                            this.debug('...add cached folder while offline', element.id, element.path);
                        }
                        else {
                            this.debug('...add cloud-only folder', element.id, element.path);
                        }
                        myElements.push(element);
                    }
                    else {
                        this.debug('...skipped localOnly folder while online', element.id, element.path);
                    }
                }
            }
        });
    }
}
// How long since last fetch is the Collection considered stale?
AssetCollection.STALE_TIME_MS = 60000; // 1 min
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* observable */ "z"],
    __metadata("design:type", typeof (_a = typeof mobx__WEBPACK_IMPORTED_MODULE_1__["IObservableArray"] !== "undefined" && mobx__WEBPACK_IMPORTED_MODULE_1__["IObservableArray"]) === "function" ? _a : Object)
], AssetCollection.prototype, "elements", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* observable */ "z"],
    __metadata("design:type", typeof (_b = typeof _constants__WEBPACK_IMPORTED_MODULE_5__[/* UXSortBy */ "t"] !== "undefined" && _constants__WEBPACK_IMPORTED_MODULE_5__[/* UXSortBy */ "t"]) === "function" ? _b : Object)
], AssetCollection.prototype, "sortBy", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* observable */ "z"],
    __metadata("design:type", typeof (_c = typeof _constants__WEBPACK_IMPORTED_MODULE_5__[/* UXSortDir */ "w"] !== "undefined" && _constants__WEBPACK_IMPORTED_MODULE_5__[/* UXSortDir */ "w"]) === "function" ? _c : Object)
], AssetCollection.prototype, "sortDir", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* observable */ "z"],
    __metadata("design:type", Object)
], AssetCollection.prototype, "lastFetchMetadata", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* observable */ "z"],
    __metadata("design:type", Boolean)
], AssetCollection.prototype, "_firstFetch", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* observable */ "z"],
    __metadata("design:type", typeof (_d = typeof _constants__WEBPACK_IMPORTED_MODULE_5__[/* ProcessingState */ "n"] !== "undefined" && _constants__WEBPACK_IMPORTED_MODULE_5__[/* ProcessingState */ "n"]) === "function" ? _d : Object)
], AssetCollection.prototype, "fetchState", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [Array]),
    __metadata("design:returntype", void 0)
], AssetCollection.prototype, "__setElementsForTests", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [Object]),
    __metadata("design:returntype", void 0)
], AssetCollection.prototype, "copyCriteriaToModel", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [typeof (_e = typeof _constants__WEBPACK_IMPORTED_MODULE_5__[/* ProcessingState */ "n"] !== "undefined" && _constants__WEBPACK_IMPORTED_MODULE_5__[/* ProcessingState */ "n"]) === "function" ? _e : Object]),
    __metadata("design:returntype", void 0)
], AssetCollection.prototype, "setFetchState", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [Object]),
    __metadata("design:returntype", void 0)
], AssetCollection.prototype, "setSortAndDir", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [typeof (_f = typeof _types_IAssetModel__WEBPACK_IMPORTED_MODULE_6___default.a !== "undefined" && _types_IAssetModel__WEBPACK_IMPORTED_MODULE_6___default.a) === "function" ? _f : Object]),
    __metadata("design:returntype", void 0)
], AssetCollection.prototype, "removeChild", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [typeof (_g = typeof _constants__WEBPACK_IMPORTED_MODULE_5__[/* UXSortBy */ "t"] !== "undefined" && _constants__WEBPACK_IMPORTED_MODULE_5__[/* UXSortBy */ "t"]) === "function" ? _g : Object]),
    __metadata("design:returntype", void 0)
], AssetCollection.prototype, "setSortBy", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [typeof (_h = typeof _constants__WEBPACK_IMPORTED_MODULE_5__[/* UXSortDir */ "w"] !== "undefined" && _constants__WEBPACK_IMPORTED_MODULE_5__[/* UXSortDir */ "w"]) === "function" ? _h : Object]),
    __metadata("design:returntype", void 0)
], AssetCollection.prototype, "setSortDir", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [Object]),
    __metadata("design:returntype", void 0)
], AssetCollection.prototype, "setLastFetchMetadata", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", []),
    __metadata("design:returntype", void 0)
], AssetCollection.prototype, "clear", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* computed */ "l"],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], AssetCollection.prototype, "firstFetch", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* computed */ "l"],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], AssetCollection.prototype, "locale", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* computed */ "l"],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], AssetCollection.prototype, "onAnalyticsEvent", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* computed */ "l"],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], AssetCollection.prototype, "isOnline", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* computed */ "l"],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [])
], AssetCollection.prototype, "isNotLoading", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* computed */ "l"],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [])
], AssetCollection.prototype, "isEmpty", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* computed */ "l"],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [])
], AssetCollection.prototype, "isDoneAndEmpty", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* computed */ "l"],
    __metadata("design:type", Array),
    __metadata("design:paramtypes", [])
], AssetCollection.prototype, "filteredElements", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* computed */ "l"],
    __metadata("design:type", Array),
    __metadata("design:paramtypes", [])
], AssetCollection.prototype, "sortedElements", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [typeof (_j = typeof Set !== "undefined" && Set) === "function" ? _j : Object, typeof (_k = typeof Set !== "undefined" && Set) === "function" ? _k : Object]),
    __metadata("design:returntype", void 0)
], AssetCollection.prototype, "removeDeletedElements", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [typeof (_l = typeof _types_IAssetModel__WEBPACK_IMPORTED_MODULE_6___default.a !== "undefined" && _types_IAssetModel__WEBPACK_IMPORTED_MODULE_6___default.a) === "function" ? _l : Object, typeof (_m = typeof _types_IAssetModel__WEBPACK_IMPORTED_MODULE_6___default.a !== "undefined" && _types_IAssetModel__WEBPACK_IMPORTED_MODULE_6___default.a) === "function" ? _m : Object]),
    __metadata("design:returntype", void 0)
], AssetCollection.prototype, "replaceOrUpdate", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [Array, Boolean]),
    __metadata("design:returntype", void 0)
], AssetCollection.prototype, "mergeElements", null);


/***/ }),

/***/ "QBtN":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return throttle; });
/* harmony import */ var _debounce__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("5u51");
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
/**
 * The following license applies to the throttle function below (from Lodash):
 *
 * Copyright JS Foundation and other contributors <https://js.foundation/>
 *
 * Based on Underscore.js, copyright Jeremy Ashkenas,
 * DocumentCloud and Investigative Reporters & Editors <http://underscorejs.org/>
 *
 * This software consists of voluntary contributions made by many
 * individuals. For exact contribution history, see the revision history
 * available at <https://github.com/lodash/lodash>.
 *
 * Permission is hereby granted, free of charge, to any person obtaining
 * a copy of this software and associated documentation files (the
 * "Software"), to deal in the Software without restriction, including
 * without limitation the rights to use, copy, modify, merge, publish,
 * distribute, sublicense, and/or sell copies of the Software, and to
 * permit persons to whom the Software is furnished to do so, subject to
 * the following conditions:
 *
 * The above copyright notice and this permission notice shall be
 * included in all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
 * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
 * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 */
/**
 * Creates a throttled function that only invokes `func` at most once per
 * every `wait` milliseconds. The throttled function comes with a `cancel`
 * method to cancel delayed `func` invocations and a `flush` method to
 * immediately invoke them. Provide `options` to indicate whether `func`
 * should be invoked on the leading and/or trailing edge of the `wait`
 * timeout. The `func` is invoked with the last arguments provided to the
 * throttled function. Subsequent calls to the throttled function return the
 * result of the last `func` invocation.
 *
 * **Note:** If `leading` and `trailing` options are `true`, `func` is
 * invoked on the trailing edge of the timeout only if the throttled function
 * is invoked more than once during the `wait` timeout.
 *
 * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred
 * until to the next tick, similar to `setTimeout` with a timeout of `0`.
 *
 * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)
 * for details over the differences between `throttle` and `debounce`.
 *
 * @since 0.1.0
 * @category Function
 * @param {Function} func The function to throttle.
 * @param {number} [wait=100] The number of milliseconds to throttle invocations to.
 * @param {Object} [options={}] The options object.
 * @param {boolean} [options.leading=true]
 *  Specify invoking on the leading edge of the timeout.
 * @param {boolean} [options.trailing=true]
 *  Specify invoking on the trailing edge of the timeout.
 * @returns {Function} Returns the new throttled function.
 * @example
 *
 * // Avoid excessively updating the position while scrolling.
 * jQuery(window).on('scroll', throttle(updatePosition, 100))
 *
 * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.
 * const throttled = throttle(renewToken, 300000, { 'trailing': false })
 * jQuery(element).on('click', throttled)
 *
 * // Cancel the trailing throttled invocation.
 * jQuery(window).on('popstate', throttled.cancel)
 */

function throttle(func, wait = 100) {
    if (typeof func !== 'function') {
        throw new TypeError('Expected a function');
    }
    return Object(_debounce__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(func, wait, {
        leading: true,
        maxWait: wait,
        trailing: true,
    });
}


/***/ }),

/***/ "QBvS":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return UXPHost; });
/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("2vnA");
/* harmony import */ var _BaseHost__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("XZyv");
/* harmony import */ var _ICDOHost__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("aLAm");
/* harmony import */ var _ICDOHost__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_ICDOHost__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _api_adobe_content_platform_suggestNames__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("IvMV");
/* harmony import */ var _interfaces_IDownloadUtils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("om/C");
/* harmony import */ var _utils_platform__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("0ubR");
/* harmony import */ var _stores_Settings__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("5u1M");
/* harmony import */ var _utils_DownloadUtils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("QO9Y");
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;
};
var __metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var _a;








class UXPDownloadUtils extends _utils_DownloadUtils__WEBPACK_IMPORTED_MODULE_7__[/* CCACDownloadUtils */ "a"] {
    constructor() {
        super(...arguments);
        this.handleExportJob = async (exportData, downloadFn, localFolder) => {
            const fileBuffersMap = new Map();
            const exportCallback = {
                handleArrayBuffer: async (fileId, buffer) => {
                    fileBuffersMap.set(fileId, buffer);
                },
            };
            const exportJob = downloadFn(exportData, exportCallback);
            const { files, onComplete } = exportJob;
            const suggestedNames = await this.getSuggestedNames(files, localFolder);
            return (await onComplete).map(async (progressInfo) => {
                const { id, fileName, status } = progressInfo;
                if (status === _interfaces_IDownloadUtils__WEBPACK_IMPORTED_MODULE_4__[/* DownloadProgress */ "a"].Done) {
                    await this.writeFiles(localFolder, suggestedNames.get(fileName), fileBuffersMap.get(id));
                }
                return progressInfo;
            });
        };
    }
    async getSuggestedNames(files, localFolder) {
        const localFiles = await localFolder.getEntries();
        return await Object(_api_adobe_content_platform_suggestNames__WEBPACK_IMPORTED_MODULE_3__[/* doSuggestNames */ "b"])(files.map(({ file }) => Object(_utils_DownloadUtils__WEBPACK_IMPORTED_MODULE_7__[/* removeCloudExt */ "b"])(file.fileName, file.mimeType)), async (suggestedName) => localFiles.some(localFile => localFile.name === suggestedName));
    }
    async getDownloadFolder(ctaLabel) {
        return this.host.showFolderPicker(ctaLabel);
    }
}
class UXPHost extends _BaseHost__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"] {
    constructor(args) {
        var _a, _b;
        super(args);
        this.onBeforeDelete = async (assetRefArray) => {
            var _a, _b;
            if (this.cdo.beforeDelete) {
                return await ((_b = (_a = this.cdo).beforeDelete) === null || _b === void 0 ? void 0 : _b.call(_a, assetRefArray));
            }
            else {
                return {};
            }
        };
        this.onBeforeRename = async (assetRefArray) => {
            var _a, _b;
            if (this.cdo.beforeRename) {
                return await ((_b = (_a = this.cdo).beforeRename) === null || _b === void 0 ? void 0 : _b.call(_a, assetRefArray));
            }
            else {
                return {};
            }
        };
        this.onBeforeMove = async (assetRefArray) => {
            var _a, _b;
            if (this.cdo.beforeMove) {
                return await ((_b = (_a = this.cdo).beforeMove) === null || _b === void 0 ? void 0 : _b.call(_a, assetRefArray));
            }
            else {
                return {};
            }
        };
        this.onAfterDelete = (assetRef) => { var _a, _b; return (_b = (_a = this.cdo).afterDelete) === null || _b === void 0 ? void 0 : _b.call(_a, assetRef); };
        this.onAfterRename = (assetRef) => { var _a, _b; return (_b = (_a = this.cdo).afterRename) === null || _b === void 0 ? void 0 : _b.call(_a, assetRef); };
        this.onAfterMove = (assetRef) => { var _a, _b; return (_b = (_a = this.cdo).afterMove) === null || _b === void 0 ? void 0 : _b.call(_a, assetRef); };
        this.showFilePicker = async () => {
            // Support any file type
            let allowedExtensions = ['*'];
            let importFiles = await this.openUXPFinderForFiles(allowedExtensions);
            if (Object(_utils_platform__WEBPACK_IMPORTED_MODULE_5__[/* isWindows */ "a"])()) {
                //  TEMP Workaround for Windows UXP File.name property returning full path.
                //  https://jira.corp.adobe.com/browse/CCPROJ-5439
                importFiles = importFiles.map(file => new Proxy(file, {
                    get(target, prop, receiver) {
                        //  intercept the name property and fix it
                        if (prop === 'name') {
                            return target.name.split(/[\/\\]/g).pop();
                        }
                        //  return the default behavior for everything else
                        return Reflect.get(target, prop, receiver);
                    },
                }));
            }
            return importFiles;
        };
        this.showFolderPicker = async (ctaLabel) => {
            let options = {};
            if (ctaLabel) {
                options.buttonLabel = ctaLabel;
            }
            const fs = window.require && window.require('uxp').storage.localFileSystem;
            return fs.getFolder(options);
        };
        this.cdo = this.window.cdoHost;
        this.dcxAppId = (_b = (_a = this.cdo) === null || _a === void 0 ? void 0 : _a.dcxAppId) !== null && _b !== void 0 ? _b : '';
        this.downloadUtils = new UXPDownloadUtils(this);
        this.useSamCpp = this.hasFeature('ccProjectsSamCpp');
    }
    hasFeature(feature) {
        var _a, _b;
        return Boolean((_b = (_a = this.cdo) === null || _a === void 0 ? void 0 : _a.featureEnabled) === null || _b === void 0 ? void 0 : _b.call(_a, feature));
    }
    get supportsNativeSAM() {
        // As long as we have `cdoHost`, use their preference for enabling SAM.
        // This should mirror CDO/UAP's setting.
        if (this.cdo) {
            return this.hasFeature('CloudDocUseSAM');
        }
        return true;
    }
    get shouldDisableACPL() {
        return false; // ACPL might be available for UXP hosts, so we'll leave it on.
    }
    get productName() {
        return this.name;
    }
    get canCreateDocument() {
        return true;
    }
    /**
     * For PS/AI, invoke First Mile HomeScreen (FMHS) plugin commands to open the New document / Cmd + N component.
     * For XD, it is handled differently in XDHost.
     */
    createDocument(args) {
        let pluginManager = this.window.require('uxp').pluginManager;
        if (pluginManager) {
            const pluginId = 'com.adobe.ccx.start';
            const plugin = [...pluginManager.plugins].find(({ id }) => id === pluginId);
            // Command is registered in 'init' method in ccx-start-uxp/blob/main/src/applications/ApplicationBase
            plugin.runtime.invokeCommand('showNewDocumentDialog', args);
        }
    }
    openUXPFinderForFiles(allowedExtensions) {
        const fs = this.window.require('uxp').storage.localFileSystem;
        return fs.getFileForOpening({ allowMultiple: true, types: allowedExtensions });
    }
    launchCCD(path) {
        if (this.cdo.launchCCDWithPath) {
            this.cdo.launchCCDWithPath(path);
        }
        else {
            _stores_Settings__WEBPACK_IMPORTED_MODULE_6__[/* settings */ "b"].logger.warn('Could not open the path in CDO:', path);
        }
    }
}
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", typeof (_a = typeof _ICDOHost__WEBPACK_IMPORTED_MODULE_2__["ICDOHost"] !== "undefined" && _ICDOHost__WEBPACK_IMPORTED_MODULE_2__["ICDOHost"]) === "function" ? _a : Object)
], UXPHost.prototype, "cdo", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", String)
], UXPHost.prototype, "dcxAppId", void 0);


/***/ }),

/***/ "QCnb":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


if (true) {
  module.exports = __webpack_require__("+wdc");
} else {}

/***/ }),

/***/ "QILm":
/***/ (function(module, exports, __webpack_require__) {

var objectWithoutPropertiesLoose = __webpack_require__("8OQS");

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};
  var target = objectWithoutPropertiesLoose(source, excluded);
  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

module.exports = _objectWithoutProperties;
module.exports["default"] = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "QId7":
/***/ (function(module) {

module.exports = JSON.parse("{\"(optional)\":\"(volitelně)\",\"(required)\":\"(požadováno)\"}");

/***/ }),

/***/ "QIyF":
/***/ (function(module, exports, __webpack_require__) {

var root = __webpack_require__("Kz5y");
/**
 * Gets the timestamp of the number of milliseconds that have elapsed since
 * the Unix epoch (1 January 1970 00:00:00 UTC).
 *
 * @static
 * @memberOf _
 * @since 2.4.0
 * @category Date
 * @returns {number} Returns the timestamp.
 * @example
 *
 * _.defer(function(stamp) {
 *   console.log(_.now() - stamp);
 * }, _.now());
 * // => Logs the number of milliseconds it took for the deferred invocation.
 */


var now = function () {
  return root.Date.now();
};

module.exports = now;

/***/ }),

/***/ "QJsb":
/***/ (function(module, exports) {

module.exports = {
  doubles: {
    step: 4,
    points: [['e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a', 'f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821'], ['8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508', '11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf'], ['175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739', 'd3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695'], ['363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640', '4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9'], ['8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c', '4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36'], ['723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda', '96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f'], ['eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa', '5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999'], ['100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0', 'cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09'], ['e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d', '9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d'], ['feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d', 'e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088'], ['da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1', '9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d'], ['53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0', '5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8'], ['8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047', '10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a'], ['385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862', '283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453'], ['6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7', '7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160'], ['3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd', '56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0'], ['85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83', '7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6'], ['948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a', '53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589'], ['6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8', 'bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17'], ['e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d', '4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda'], ['e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725', '7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd'], ['213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754', '4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2'], ['4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c', '17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6'], ['fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6', '6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f'], ['76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39', 'c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01'], ['c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891', '893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3'], ['d895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b', 'febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f'], ['b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03', '2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7'], ['e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d', 'eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78'], ['a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070', '7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1'], ['90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4', 'e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150'], ['8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da', '662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82'], ['e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11', '1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc'], ['8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e', 'efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b'], ['e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41', '2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51'], ['b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef', '67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45'], ['d68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8', 'db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120'], ['324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d', '648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84'], ['4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96', '35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d'], ['9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd', 'ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d'], ['6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5', '9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8'], ['a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266', '40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8'], ['7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71', '34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac'], ['928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac', 'c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f'], ['85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751', '1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962'], ['ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e', '493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907'], ['827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241', 'c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec'], ['eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3', 'be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d'], ['e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f', '4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414'], ['1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19', 'aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd'], ['146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be', 'b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0'], ['fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9', '6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811'], ['da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2', '8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1'], ['a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13', '7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c'], ['174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c', 'ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73'], ['959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba', '2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd'], ['d2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151', 'e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405'], ['64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073', 'd99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589'], ['8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458', '38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e'], ['13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b', '69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27'], ['bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366', 'd3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1'], ['8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa', '40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482'], ['8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0', '620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945'], ['dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787', '7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573'], ['f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e', 'ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82']]
  },
  naf: {
    wnd: 7,
    points: [['f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9', '388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672'], ['2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4', 'd8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6'], ['5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc', '6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da'], ['acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe', 'cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37'], ['774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb', 'd984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b'], ['f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8', 'ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81'], ['d7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e', '581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58'], ['defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34', '4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77'], ['2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c', '85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a'], ['352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5', '321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c'], ['2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f', '2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67'], ['9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714', '73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402'], ['daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729', 'a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55'], ['c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db', '2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482'], ['6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4', 'e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82'], ['1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5', 'b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396'], ['605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479', '2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49'], ['62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d', '80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf'], ['80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f', '1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a'], ['7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb', 'd0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7'], ['d528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9', 'eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933'], ['49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963', '758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a'], ['77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74', '958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6'], ['f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530', 'e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37'], ['463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b', '5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e'], ['f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247', 'cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6'], ['caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1', 'cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476'], ['2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120', '4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40'], ['7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435', '91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61'], ['754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18', '673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683'], ['e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8', '59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5'], ['186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb', '3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b'], ['df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f', '55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417'], ['5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143', 'efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868'], ['290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba', 'e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a'], ['af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45', 'f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6'], ['766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a', '744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996'], ['59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e', 'c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e'], ['f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8', 'e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d'], ['7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c', '30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2'], ['948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519', 'e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e'], ['7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab', '100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437'], ['3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca', 'ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311'], ['d3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf', '8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4'], ['1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610', '68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575'], ['733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4', 'f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d'], ['15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c', 'd56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d'], ['a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940', 'edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629'], ['e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980', 'a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06'], ['311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3', '66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374'], ['34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf', '9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee'], ['f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63', '4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1'], ['d7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448', 'fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b'], ['32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf', '5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661'], ['7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5', '8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6'], ['ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6', '8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e'], ['16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5', '5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d'], ['eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99', 'f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc'], ['78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51', 'f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4'], ['494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5', '42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c'], ['a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5', '204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b'], ['c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997', '4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913'], ['841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881', '73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154'], ['5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5', '39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865'], ['36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66', 'd2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc'], ['336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726', 'ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224'], ['8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede', '6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e'], ['1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94', '60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6'], ['85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31', '3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511'], ['29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51', 'b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b'], ['a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252', 'ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2'], ['4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5', 'cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c'], ['d24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b', '6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3'], ['ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4', '322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d'], ['af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f', '6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700'], ['e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889', '2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4'], ['591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246', 'b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196'], ['11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984', '998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4'], ['3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a', 'b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257'], ['cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030', 'bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13'], ['c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197', '6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096'], ['c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593', 'c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38'], ['a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef', '21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f'], ['347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38', '60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448'], ['da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a', '49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a'], ['c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111', '5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4'], ['4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502', '7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437'], ['3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea', 'be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7'], ['cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26', '8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d'], ['b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986', '39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a'], ['d4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e', '62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54'], ['48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4', '25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77'], ['dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda', 'ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517'], ['6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859', 'cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10'], ['e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f', 'f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125'], ['eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c', '6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e'], ['13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942', 'fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1'], ['ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a', '1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2'], ['b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80', '5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423'], ['ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d', '438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8'], ['8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1', 'cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758'], ['52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63', 'c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375'], ['e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352', '6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d'], ['7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193', 'ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec'], ['5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00', '9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0'], ['32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58', 'ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c'], ['e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7', 'd3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4'], ['8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8', 'c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f'], ['4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e', '67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649'], ['3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d', 'cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826'], ['674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b', '299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5'], ['d32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f', 'f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87'], ['30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6', '462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b'], ['be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297', '62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc'], ['93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a', '7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c'], ['b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c', 'ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f'], ['d5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52', '4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a'], ['d3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb', 'bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46'], ['463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065', 'bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f'], ['7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917', '603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03'], ['74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9', 'cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08'], ['30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3', '553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8'], ['9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57', '712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373'], ['176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66', 'ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3'], ['75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8', '9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8'], ['809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721', '9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1'], ['1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180', '4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9']]
  }
};

/***/ }),

/***/ "QLaP":
/***/ (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 invariant = function (condition, format, a, b, c, d, e, f) {
  if (false) {}

  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;

/***/ }),

/***/ "QMMT":
/***/ (function(module, exports, __webpack_require__) {

// getting tag from 19.1.3.6 Object.prototype.toString()
var cof = __webpack_require__("a0xu");

var TAG = __webpack_require__("UWiX")('toStringTag'); // ES3 wrong here


var ARG = cof(function () {
  return arguments;
}()) == 'Arguments'; // fallback for IE11 Script Access Denied error

var tryGet = function (it, key) {
  try {
    return it[key];
  } catch (e) {
    /* empty */
  }
};

module.exports = function (it) {
  var O, T, B;
  return it === undefined ? 'Undefined' : it === null ? 'Null' // @@toStringTag case
  : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T // builtinTag case
  : ARG ? cof(O) // ES3 arguments fallback
  : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;
};

/***/ }),

/***/ "QO9Y":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return removeCloudExt; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return CCACDownloadUtils; });
/* harmony import */ var _ccxi_ccac_utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("8Ef9");
/* harmony import */ var _interfaces_IDownloadUtils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("om/C");
/* harmony import */ var _libraryUtils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("5L/2");
/* harmony import */ var _mimeTypes__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("sYeI");
/* harmony import */ var _mimeTypeMap__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("k8te");
/* harmony import */ var _utils_UXPUtils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("LbGp");
/* harmony import */ var _stores_Settings__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("5u1M");
/* harmony import */ var _stores_SharedStore__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("jmEq");








const CLOUD_TO_NON_CLOUD = {
    [_libraryUtils__WEBPACK_IMPORTED_MODULE_2__[/* MIMETYPE */ "c"].ILLUSTRATOR_CLOUD_DOCUMENT]: _libraryUtils__WEBPACK_IMPORTED_MODULE_2__[/* MIMETYPE */ "c"].ILLUSTRATOR_DOCUMENT,
    [_libraryUtils__WEBPACK_IMPORTED_MODULE_2__[/* MIMETYPE */ "c"].PS_CLOUD_DOCUMENT]: _libraryUtils__WEBPACK_IMPORTED_MODULE_2__[/* MIMETYPE */ "c"].PS_DOCUMENT,
    [_libraryUtils__WEBPACK_IMPORTED_MODULE_2__[/* MIMETYPE */ "c"].XD_CLOUD_DOCUMENT]: _libraryUtils__WEBPACK_IMPORTED_MODULE_2__[/* MIMETYPE */ "c"].XD_DOCUMENT,
};
/**
 * Cloud document will be converted to its non-cloud document equivalent,
 * so we will need to remove the trailing `c` from its extension
 * i.e. file.xdc => file.xd
 *
 * @param {string} name - The file name with its extension.
 * @returns {string} - If its a cloud document, return the non-cloud document equivalent, otherwise return the unmodified name.
 */
const removeCloudExt = (name, type) => {
    var _a;
    // convert cloud doc to its non-cloud doc equivalent
    if (_libraryUtils__WEBPACK_IMPORTED_MODULE_2__[/* CLOUD_DOCUMENTS */ "a"].includes(type)) {
        const ext = Object(_mimeTypes__WEBPACK_IMPORTED_MODULE_3__[/* getExtension */ "a"])(name);
        const cloudDocType = _mimeTypeMap__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"][type];
        // make sure we're slicing and dicing the file extension and not the name
        if (((_a = cloudDocType === null || cloudDocType === void 0 ? void 0 : cloudDocType.ext) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === ext.toLowerCase()) {
            const nonCloudDocType = CLOUD_TO_NON_CLOUD[type];
            // verify the non-cloud doc equivalent
            if (nonCloudDocType) {
                return { name: name.slice(0, -1), type: nonCloudDocType };
            }
            _stores_Settings__WEBPACK_IMPORTED_MODULE_6__[/* settings */ "b"].logger.warn({
                msg: 'Unexpected cloud document mimetype',
                mimetype: type,
                name: name,
            });
        }
    }
    return { name, type };
};
class CCACDownloadUtils {
    constructor(host) {
        // Divide exportData into 2 groups: 1 for cloud docs that first need conversion and 1 for direct downloads
        this.getDownloadGroups = exportData => {
            const exportStore = this.ensureExportStore();
            return exportData.reduce(([convert, download], item) => {
                const targetCollection = exportStore
                    .getSupportedConversions()
                    .includes(item.mimeType)
                    ? convert
                    : download;
                const fileWithLocalExt = {
                    ...item,
                    fileName: removeCloudExt(item.fileName, item.mimeType).name,
                };
                targetCollection.push(fileWithLocalExt);
                return [convert, download];
            }, [[], []]);
        };
        this.handleExportJob = async (exportData, downloadFn, localPath) => {
            const exportJob = downloadFn(exportData, {});
            return await exportJob.onComplete;
        };
        this.writeFiles = async (localFolder, fileName, buffer) => {
            const file = await localFolder.createFile(fileName);
            return file.write(buffer);
        };
        this.host = host;
    }
    ensureExportStore() {
        if (!this.exportStore) {
            this.exportStore = new _ccxi_ccac_utilities__WEBPACK_IMPORTED_MODULE_0__[/* ExportStore */ "a"]();
            this.exportStore.init({
                environment: _stores_Settings__WEBPACK_IMPORTED_MODULE_6__[/* settings */ "b"].imsData.environment,
                getAccessToken: _stores_SharedStore__WEBPACK_IMPORTED_MODULE_7__[/* sharedStore */ "d"].imsData.fetchToken,
                clientId: _stores_Settings__WEBPACK_IMPORTED_MODULE_6__[/* settings */ "b"].config.CLIENT_ID,
                platform: _utils_UXPUtils__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"].usingUXP() ? 'UXP' : undefined,
            });
        }
        return this.exportStore;
    }
    canDownload() {
        return true;
    }
    async downloadAssets(exportData, localFolder) {
        try {
            // 1. init exportStore & utils
            const exportStore = this.ensureExportStore();
            // 2. Divide exportData into 2 groups: 1 for cloud docs that first need conversion and 1 for direct downloads
            const [toConvert, toDownload] = this.getDownloadGroups(exportData);
            // 3. Start exports
            const progressResults = await Promise.all([
                this.handleExportJob(toConvert, exportStore.convertAndDownloadFiles.bind(exportStore), localFolder),
                this.handleExportJob(toDownload, exportStore.downloadFiles.bind(exportStore), localFolder),
            ]);
            // 4. Count results & report back
            const failedItems = [];
            for (const exportJob of progressResults) {
                for (const progress of exportJob) {
                    const { file, status } = await progress;
                    if (status === _interfaces_IDownloadUtils__WEBPACK_IMPORTED_MODULE_1__[/* DownloadProgress */ "a"].Failed) {
                        failedItems.push(file);
                    }
                }
            }
            if (failedItems.length) {
                return Promise.reject(failedItems);
            }
            return Promise.resolve(exportData);
        }
        catch (err) {
            console.error(err);
            return Promise.reject(exportData);
        }
    }
}


/***/ }),

/***/ "QQmx":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return initAndBind; });
/* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("8LbN");
/* harmony import */ var _hub_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("GIgW");


/** A class object that can instantiate Client objects. */

/**
 * Internal function to create a new SDK client instance. The client is
 * installed and then bound to the current scope.
 *
 * @param clientClass The client class to instantiate.
 * @param options Options to pass to the client.
 */

function initAndBind(clientClass, options) {
  if (options.debug === true) {
    if (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) {
      _sentry_utils__WEBPACK_IMPORTED_MODULE_0__[/* logger */ "c"].enable();
    } else {
      // use `console.warn` rather than `logger.warn` since by non-debug bundles have all `logger.x` statements stripped
      // eslint-disable-next-line no-console
      console.warn('[Sentry] Cannot initialize SDK with `debug` option using a non-debug bundle.');
    }
  }

  const hub = Object(_hub_js__WEBPACK_IMPORTED_MODULE_1__[/* getCurrentHub */ "b"])();
  const scope = hub.getScope();

  if (scope) {
    scope.update(options.initialScope);
  }

  const client = new clientClass(options);
  hub.bindClient(client);
}



/***/ }),

/***/ "QRH4":
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// from https://github.com/indutny/self-signed/blob/gh-pages/lib/asn1.js
// Fedor, you are amazing.


var asn1 = __webpack_require__("f3pb");

exports.certificate = __webpack_require__("VrUr");
var RSAPrivateKey = asn1.define('RSAPrivateKey', function () {
  this.seq().obj(this.key('version').int(), this.key('modulus').int(), this.key('publicExponent').int(), this.key('privateExponent').int(), this.key('prime1').int(), this.key('prime2').int(), this.key('exponent1').int(), this.key('exponent2').int(), this.key('coefficient').int());
});
exports.RSAPrivateKey = RSAPrivateKey;
var RSAPublicKey = asn1.define('RSAPublicKey', function () {
  this.seq().obj(this.key('modulus').int(), this.key('publicExponent').int());
});
exports.RSAPublicKey = RSAPublicKey;
var PublicKey = asn1.define('SubjectPublicKeyInfo', function () {
  this.seq().obj(this.key('algorithm').use(AlgorithmIdentifier), this.key('subjectPublicKey').bitstr());
});
exports.PublicKey = PublicKey;
var AlgorithmIdentifier = asn1.define('AlgorithmIdentifier', function () {
  this.seq().obj(this.key('algorithm').objid(), this.key('none').null_().optional(), this.key('curve').objid().optional(), this.key('params').seq().obj(this.key('p').int(), this.key('q').int(), this.key('g').int()).optional());
});
var PrivateKeyInfo = asn1.define('PrivateKeyInfo', function () {
  this.seq().obj(this.key('version').int(), this.key('algorithm').use(AlgorithmIdentifier), this.key('subjectPrivateKey').octstr());
});
exports.PrivateKey = PrivateKeyInfo;
var EncryptedPrivateKeyInfo = asn1.define('EncryptedPrivateKeyInfo', function () {
  this.seq().obj(this.key('algorithm').seq().obj(this.key('id').objid(), this.key('decrypt').seq().obj(this.key('kde').seq().obj(this.key('id').objid(), this.key('kdeparams').seq().obj(this.key('salt').octstr(), this.key('iters').int())), this.key('cipher').seq().obj(this.key('algo').objid(), this.key('iv').octstr()))), this.key('subjectPrivateKey').octstr());
});
exports.EncryptedPrivateKey = EncryptedPrivateKeyInfo;
var DSAPrivateKey = asn1.define('DSAPrivateKey', function () {
  this.seq().obj(this.key('version').int(), this.key('p').int(), this.key('q').int(), this.key('g').int(), this.key('pub_key').int(), this.key('priv_key').int());
});
exports.DSAPrivateKey = DSAPrivateKey;
exports.DSAparam = asn1.define('DSAparam', function () {
  this.int();
});
var ECPrivateKey = asn1.define('ECPrivateKey', function () {
  this.seq().obj(this.key('version').int(), this.key('privateKey').octstr(), this.key('parameters').optional().explicit(0).use(ECParameters), this.key('publicKey').optional().explicit(1).bitstr());
});
exports.ECPrivateKey = ECPrivateKey;
var ECParameters = asn1.define('ECParameters', function () {
  this.choice({
    namedCurve: this.objid()
  });
});
exports.signature = asn1.define('signature', function () {
  this.seq().obj(this.key('r').int(), this.key('s').int());
});

/***/ }),

/***/ "QTa/":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var curve = exports;
curve.base = __webpack_require__("6lN/");
curve.short = __webpack_require__("MwBp");
curve.mont = __webpack_require__("Z2+3");
curve.edwards = __webpack_require__("Pa+m");

/***/ }),

/***/ "QUI0":
/***/ (function(module) {

module.exports = JSON.parse("{\"a11y.button.canvases\":\"{name}\",\"a11y.button.libraries\":\"{name}, Bibliothek\",\"a11y.button.listGridToggle\":\"Ansicht umschalten, {toggledView, select, grid {Rasteransicht} list {Listenansicht}}\",\"a11y.button.project\":\"{name}, Projekt\",\"a11y.button.published\":\"{name}, {extension}\",\"a11y.button.selectFolder\":\"Ordner auswählen\",\"a11y.button.working\":\"{name}, {extension}, {modified} geändert\",\"a11y.strings.folder\":\"Ordner\",\"header.action.newProject\":\"Neues Projekt\",\"header.action.newLibrary\":\"Neue Bibliothek\",\"header.action.browseAll\":\"Alle durchsuchen\",\"header.Name\":\"Name\",\"header.Size\":\"Größe\",\"header.Sharing\":\"Mitglieder\",\"header.Team\":\"Arbeitsbereich\",\"header.DateModified\":\"Geändert\",\"header.DateCreated\":\"Erstellt\",\"header.Status\":\"Als Favorit gespeichert\",\"header.SortBy\":\"Sortieren nach\",\"header.sort.label\":\"Sortieren\",\"header.ChangeSortDirection\":\"Ändern der Sortierrichtung in\",\"header.SortBy.asc\":\"Aufsteigend\",\"header.SortBy.desc\":\"Absteigend\",\"header.selectAll\":\"Alle auswählen\",\"header.reverseOrder\":\"Reihenfolge umkehren\",\"header.showCompatible\":\"Kompatible Dateien\",\"header.showEverything\":\"Alles\",\"product.illustrator.web\":\"Illustrator Web (Beta)\",\"product.photoshop.web\":\"Photoshop Web (Beta)\",\"status.followed\":\"Ja\",\"status.unfollowed\":\"Nein\",\"team.usm.defaultName\":\"Arbeitsbereich {name}\",\"space.access.private.description\":\"Nur eingeladene Personen\",\"space.access.private.tooltip\":\"Nur eingeladene Personen haben Zugriff auf dieses Projekt\",\"space.access.team.description\":\"Jeder im Arbeitsbereich und eingeladene Benutzer\",\"space.access.team.tooltip\":\"Alle Mitglieder von „{team}“ haben Zugriff auf dieses Projekt.\",\"yourProjects.title\":\"Projekte\",\"yourProjects.librariesTab.title\":\"Team-Bibliotheken\",\"yourProjects.empty.spaces\":\"Erstellen Sie weitere Projekte und laden Sie weitere Arbeitsbereichsmitglieder ein\",\"browseAll.title\":\"Alle durchsuchen\",\"yourFiles.title\":\"Deine Dokumente\",\"yourLibraries.title\":\"Bibliotheken\",\"yourLibraries.metadata\":\"BIBLIOTHEK\",\"canvas.metadata\":\"ARBEITSFLÄCHE\",\"projectInfo.action.view\":\"Info anzeigen\",\"projectInfo.action.edit\":\"Projekt bearbeiten\",\"projectInfo.empty.cta\":\"Neues Projekt erstellen\",\"projectInfo.empty.description\":\"In Creative Cloud-Projekten sammeln Sie alles für Ihre kreativen Projekte an einem Ort, wo Sie es ganz einfach durchsuchen, verwalten, teilen und besprechen können.\",\"projectInfo.empty.heading\":\"Ohne Verzögerungen mehr erreichen.\",\"projectInfo.error.description\":\"Versuche es später erneut.\",\"projectInfo.error.heading\":\"{section} kann nicht geladen werden\",\"projectInfo.new.error.title\":\"Neues Projekt kann nicht erstellt werden\",\"projectInfo.new.noPermission.description\":\"Weitere Informationen erhältst du von deinem Administrator.\",\"projectInfo.title.create\":\"NEUES PROJEKT\",\"projectInfo.title.edit\":\"PROJEKT BEARBEITEN\",\"projectInfo.title.view\":\"PROJEKTINFORMATIONEN\",\"projectInfo.access.title\":\"Wer darf dieses Projekt bearbeiten?\",\"projectInfo.access.warning\":\"Einige Mitglieder verlieren möglicherweise den Zugriff auf das Projekt, wenn Sie die Berechtigung in „Nur eingeladene Personen“ ändern.\",\"projectInfo.organization\":\"Organisation\",\"projectInfo.organization.placeholder\":\"Auswählen\",\"projectInfo.description\":\"Beschreibung\",\"textField.invalid.characters\":\"Folgende Zeichen sind in Namen nicht zulässig: \\\\\\\\ / * ? \\\" | : < >\",\"textField.invalid.duplicateName\":\"In dieser Organisation gibt es bereits ein Projekt mit diesem Namen.\",\"textField.invalid.duplicateName.space\":\"In diesem Workspace gibt es bereits ein Projekt mit diesem Namen.\",\"textField.invalid.duplicateName.team\":\"In dieser Organisation gibt es bereits einen Arbeitsbereich mit diesem Namen.\",\"textField.invalid.empty\":\"Name darf nicht leer sein\",\"textField.invalid.generic\":\"Ungültiger Name\",\"textField.invalid.length\":\"Namen dürfen nicht länger als 50 Zeichen sein.\",\"textField.invalid.nameEndsWithDot\":\"Namen dürfen nicht mit einem Punkt enden.\",\"textField.invalid.offline\":\"Stellen Sie die Verbindung wieder her, um auf alle Arbeitsbereiche und Projekte zuzugreifen. Lokale Dateien aus Ihren Projekten finden Sie auf der Startseite.\",\"projectInfo.textField.placeholder\":\"Projektnamen festlegen\",\"projectInfo.team\":\"Arbeitsbereich\",\"projectInfo.description.placeholder\":\"Beispiel: Dateien, Feedback und Referenzmaterialien für das Kundenprojekt\",\"projectInfo.description.invalidLength\":\"Die Beschreibung darf nicht länger als 1000 Zeichen sein.\",\"projectInfo.toast.success.new\":\"Projekt erfolgreich erstellt: {name}\",\"projectInfo.toast.success.update\":\"Projekt erfolgreich aktualisiert: {name}\",\"projectInfo.toast.error.generic\":\"Projekt konnte nicht {create, select, true {erstellt} other {bearbeitet}} werden\",\"team.empty.heading\":\"Mit Projekten bleiben alle auf dem aktuellen Stand\",\"team.empty.description\":\"Haben Sie genug von gesperrten Dateien, einer verwirrenden Versionsverwaltung und Reviews von Screenshots in E-Mails? Mit Räumen organisieren Sie Projekte, sammeln Ressourcen und Feedback und geben Dateien für das gesamte Team frei.\",\"team.empty.createSpace\":\"Projekt erstellen\",\"team.empty.inviteMembers\":\"Mitglieder einladen\",\"team.empty.startHere\":\"HIER GEHTS LOS\",\"team.create.success\":\"Arbeitsbereich erfolgreich erstellt: {name}\",\"team.create.error.generic\":\"Arbeitsbereich konnte nicht erstellt werden\",\"team.edit.success\":\"Arbeitsbereich erfolgreich aktualisiert: {name}\",\"team.edit.error.generic\":\"Arbeitsbereich konnte nicht aktualisiert werden\",\"team.archive.success\":\"{count, plural, =1 {# Arbeitsbereich} other {# Arbeitsbereiche}} gelöscht\",\"team.archive.error.generic\":\"{count, plural, =1 {# Arbeitsbereich kann} other {# Arbeitsbereiche können}} nicht gelöscht werden.\",\"team.error.generic\":\"Ein Fehler ist aufgetreten.\",\"project1Up.action.projectInfo\":\"Info anzeigen\",\"project1up.region.space.ariaLabel\":\"{projectName}, Projekt\",\"project1Up.section.libraries\":\"Bibliotheken\",\"project1Up.section.libraries.empty.cta\":\"Creative Cloud-Bibliotheken hinzufügen\",\"project1Up.section.libraries.empty.description\":\"Füge Links zu Bibliotheken hinzu, die du für deine Arbeit benötigst.\",\"project1Up.section.libraries.empty.heading\":\"Versammle alle Beteiligten an einem Ort\",\"project1Up.section.filter\":\"Filter\",\"project1Up.section.filter.label\":\"Nach Schlüsselwort filtern\",\"project1Up.section.filter.enterKeyword\":\"Schlüsselwort eingeben\",\"project1Up.section.filterFiles.empty.heading\":\"Keine Ergebnisse zum ausgewählten Filter gefunden\",\"project1Up.section.compatibleFiles.empty.heading\":\"Keine kompatiblen Dateien in diesem Projekt vorhanden\",\"project1Up.section.workingFiles\":\"Arbeitsdateien\",\"project1Up.section.workingFiles.empty.addFiles\":\"Dateien hinzufügen\",\"project1Up.section.workingFiles.empty.createFolder\":\"Neuen Ordner erstellen\",\"project1Up.section.workingFiles.empty.description\":\"Arbeite in allen Projektphasen mit anderen zusammen.\",\"project1Up.section.workingFiles.empty.heading\":\"Ganz nach Belieben an Projekten arbeiten\",\"project1Up.section.published\":\"Veröffentlicht\",\"project1Up.section.published.empty.cta\":\"Veröffentlichen von Links\",\"project1Up.section.published.empty.description\":\"Sende Links mit schreibgeschütztem Lesezugriff, um zur richtigen Zeit von den richtigen Personen Feedback zu erhalten.\",\"project1Up.section.published.empty.description.readonly\":\"Wenn jemand Feedback oder einen Review benötigt, fügt er hier einen Link hinzu.\",\"project1Up.section.published.empty.heading\":\"Mit Verwendungszweck freigeben\",\"project1Up.section.published.empty.heading.readonly\":\"Keine veröffentlichten Elemente in diesem Projekt\",\"project1Up.section.canvases\":\"Arbeitsflächen\",\"project1Up.section.canvases.empty.cta\":\"Creative Cloud-Arbeitsflächen hinzufügen\",\"project1Up.section.canvases.empty.description\":\"Füge Links zu deinem Arbeitsmaterial hinzu.\",\"project1Up.section.canvases.empty.heading\":\"Versammle alle Beteiligten an einem Ort\",\"project1Up.section.files\":\"Dateien\",\"project1Up.error.accessDenied.heading\":\"Sie haben keinen Zugriff\",\"project1Up.error.accessDenied.description\":\"Sie wurden aus diesem Projekt entfernt. Wenden Sie sich an Ihren Administrator, wenn Sie der Meinung sind, dass ein Fehler vorliegt.\",\"project1Up.header.seeAll\":\"Alle anzeigen\",\"project1up.subheader.selected\":\"{count, plural, =1 {# Element} other {# Elemente}} ausgewählt\",\"project1up.subheader.emptyDescription\":\"Beschreibung zu Ihrem Projekt hinzufügen\",\"project1up.subheader.canvases.title\":\"Arbeitsflächen\",\"project1up.subheader.canvases.subtitle\":\"ZU ERLEDIGEN: UNTERTITEL FÜR ARBEITSFLÄCHEN\",\"project1up.subheader.libraries.title\":\"Bibliotheken\",\"project1up.subheader.libraries.subtitle\":\"Mitglieder können hier Links zu Creative Cloud-Bibliotheken hinzufügen.\",\"project1up.subheader.working.title\":\"Arbeitsdateien\",\"project1up.subheader.working.subtitle\":\"Mitglieder dieses Projekts können diese Dateien bearbeiten.\",\"project1up.subheader.output.title\":\"Veröffentlicht\",\"project1up.subheader.output.subtitle\":\"{contributor, select, true {Schreibgeschützte Versionen der Arbeiten für projektfremde Personen freigeben} other {Diese schreibgeschützten Elemente anzeigen und kommentieren}}\",\"project.subtitle\":\"PROJEKT\",\"project.countContributors\":\"{count, plural, =1 {# Mitglied} other {# Mitglieder}}\",\"project.versionError.reload.description\":\"Versuchen Sie, Ihren Browser zu aktualisieren.\",\"project.versionError.reload.title\":\"Kein Zugriff auf das Projekt\",\"project.versionError.update.description\":\"Sie müssen die App erst aktualisieren, um das Projekt zugreifen zu können.\",\"project.versionError.update.title\":\"Zum Öffnen {appName} aktualisieren\",\"project.alreadyDiscarded.title\":\"Projekt wurde gelöscht\",\"project.alreadyDiscarded.description\":\"Wenden Sie sich an Ihren Administrator, wenn Sie der Meinung sind, dass ein Fehler vorliegt, oder durchsuchen Sie andere Inhalte.\",\"project.deleted.title\":\"Dieses Projekt wurde endgültig gelöscht.\",\"project.deleted.description\":\"Sie können auf dieses Projekt nicht zugreifen, da es nicht mehr verfügbar ist.\",\"project.metadataError.backLabel\":\"Zurück zu Projekten\",\"project.metadataError.description\":\"Entweder kann das gesuchte Projekt nicht gefunden werden oder Sie haben keine Zugriffsberechtigung.\",\"project.metadataError.title\":\"Ein Fehler ist aufgetreten.\",\"folder.subtitle\":\"ORDNER\",\"libraries.toast.add.start\":\"{count, plural, =1 {# Bibliothek wird} other {# Bibliotheken werden}} hinzugefügt\",\"libraries.toast.add.success\":\"{count, plural, =1 {# Bibliothek wurde} other {# Bibliotheken wurden}} hinzugefügt\",\"libraries.toast.add.error\":\"{count, plural, =1 {# Bibliothek konnte} other {# Bibliotheken konnten}} nicht hinzugefügt werden. Versuchen Sie es erneut.\",\"libraries.toast.add.duplicate\":\"Bibliothek ist bereits vorhanden\",\"libraries.toast.add.onlyDuplicates\":\"{count, plural, =1 {# Bibliothek kann nicht hinzugefügt werden, da sie bereits vorhanden ist} other {# Bibliotheken können nicht hinzugefügt werden, da sie bereits vorhanden sind.}}.\",\"libraries.toast.delete.success\":\"{count, plural, =1 {# Bibliothek} other {# Bibliotheken}} erfolgreich entfernt.\",\"libraries.toast.delete.error\":\"{count, plural, =1 {# Bibliothek konnte} other {# Bibliotheken konnten}} nicht entfernt werden.\",\"libraries.toast.follow.inProgress\":\"{count, plural, =1 {# Bibliothek} other {# Bibliotheken}} folgen\",\"libraries.toast.follow.success\":\"{count, plural, =1 {# Bibliothek} other {# Bibliotheken}} folgen Sie jetzt.\",\"libraries.toast.follow.error\":\"{count, plural, =1 {# Bibliothek konnte} other {# Bibliotheken konnten}} nicht gefolgt werden\",\"libraries.toast.unfollow.inProgress\":\"{count, plural, =1 {# Bibliothek} other {# Bibliotheken}} entfolgen\",\"libraries.toast.unfollow.success\":\"{count, plural, =1 {# Bibliothek} other {# Bibliotheken}} wird nicht mehr gefolgt\",\"libraries.toast.unfollow.error\":\"{count, plural, =1 {# Bibliothek konnte} other {# Bibliotheken konnten}} nicht entfolgt werden\",\"libraries.modal.empty.heading\":\"Keine Bibliotheken\",\"libraries.modal.empty.description\":\"Deine Organisation hat keine Bibliotheken freigegeben\",\"libraries.modal.error.limitExceeded\":\"Bibliothek kann nicht hinzugefügt werden\",\"libraries.modal.error.limitExceeded.detail\":\"Du kannst bis zu 100 Bibliotheken zu einem Projekt hinzufügen. Entferne einige davon, damit du neue hinzufügen kannst.\",\"libraries.brokenResources\":\"Einige Bibliotheken werden nicht angezeigt, da Sie keine Zugriffsberechtigung haben. Kontaktieren Sie andere Mitglieder, um weitere Informationen zu erhalten.\",\"copy.start\":\"{count, plural, =1 {# Element wird} other {# Elemente werden}} kopiert\",\"copy.failure\":\"{count, plural, =1 {# Element kann} other {# Elemente können}} nicht kopiert werden.\",\"copy.failure.partial\":\"Einige Elemente können nicht kopiert werden.\",\"copy.success\":\"{count, plural, =1 {# Element} other {# Elemente}} kopiert\",\"copy.conflictSuffix\":\"Kopie\",\"move.start\":\"{count, plural, =1 {# Element wird} other {# Elemente werden}} verschoben\",\"move.failure\":\"{count, plural, =1 {# Element kann} other {# Elemente können}} nicht verschoben werden.\",\"move.failure.partial\":\"Einige Elemente können nicht verschoben werden.\",\"move.success\":\"{count, plural, =1 {# Element} other {# Elemente}} verschoben\",\"upload.start\":\"{count, plural, =1 {# Element wird} other {# Elemente werden}} hochgeladen\",\"upload.failure\":\"{count, plural, =1 {# Element kann} other {# Elemente können}} nicht hochgeladen werden.\",\"upload.failure.partial\":\"Einige Elemente können nicht hochgeladen werden\",\"upload.failure.snapshot\":\"Dieses Element wird nicht unterstützt\",\"upload.success\":\"{count, plural, =1 {# Element} other {# Elemente}} hochgeladen\",\"download.start\":\"{count, plural, =1 {# Element wird} other {# Elemente werden}} heruntergeladen\",\"download.failure\":\"{count, plural, =1 {# Element kann} other {# Elemente können}} nicht heruntergeladen werden\",\"download.failure.partial\":\"Einige Elemente können nicht heruntergeladen werden\",\"download.success\":\"{count, plural, =1 {# Element} other {# Elemente}} heruntergeladen\",\"delete.failure\":\"{count, plural, =1 {# Element kann} other {# Elemente können}} nicht gelöscht werden\",\"delete.failure.partial\":\"Einige Elemente können nicht gelöscht werden\",\"delete.success\":\"{count, plural, =1 {# Element wurde} other {# Elemente wurden}} gelöscht\",\"jobs.failure\":\"{count, plural, =1 {# Element} other {# Elemente}} fehlgeschlagen\",\"jobs.inProgress\":\"Vorgang läuft...\",\"jobs.success\":\"{count, plural, =1 {# Element} other {# Elemente}} abgeschlossen\",\"restore.failure\":\"{count, plural, =1 {# Element kann} other {# Elemente können}} nicht wiederhergestellt werden\",\"restore.failure.partial\":\"Einige Elemente können nicht wiederhergestellt werden\",\"restore.success\":\"{count, plural, =1 {# Element wurde} other {# Elemente wurden}} wiederhergestellt\",\"rename.start\":\"Wird umbenannt\",\"rename.success\":\"{count, plural, =1 {# Element wurde} other {# Elemente wurden}} umbenannt\",\"rename.failure\":\"Serverfehler, Element konnte nicht umbenannt werden\",\"rename.failure.conflict\":\"An diesem Ort ist bereits ein Element mit diesem Namen vorhanden\",\"rename.offline.heading\":\"Umbenennen nicht möglich\",\"rename.offline\":\"Sie sind offline und können daher das Element nicht umbenennen. Stellen Sie wieder eine Online-Verbindung her.\",\"bookmark.follow.error\":\"Projekt kann nicht zu Favoriten hinzugefügt werden\",\"bookmark.unfollow.error\":\"Projekt kann nicht aus Favoriten entfernt werden\",\"bookmark.follow.success\":\"{projectName} wurde zu den Favoriten hinzugefügt\",\"bookmark.unfollow.success\":\"{projectName} wurde aus den Favoriten entfernt\",\"bookmark.bulk.follow.success\":\"{count, plural, =1 {# Element wurde} other {# Elemente wurden}} den Favoriten hinzugefügt.\",\"bookmark.bulk.follow.partial\":\"Einige Elemente können den Favoriten nicht hinzugefügt werden\",\"bookmark.bulk.follow.error\":\"{count, plural, =1 {# Element kann} other {# Elemente können}} den Favoriten nicht hinzugefügt werden.\",\"bookmark.bulk.unfollow.success\":\"{count, plural, =1 {# Element wurde} other {# Elemente wurden}} aus den Favoriten entfernt.\",\"bookmark.bulk.unfollow.partial\":\"Einige Elemente können nicht aus den Favoriten entfernt werden\",\"bookmark.bulk.unfollow.error\":\"{count, plural, =1 {# Element kann} other {# Elemente können}} nicht aus den Favoriten entfernt werden.\",\"copyLink.success\":\"Link in Zwischenablage kopiert\",\"copyLink.failure\":\"Link kann nicht kopiert werden\",\"starterUser.project1upNavigation\":\"Das Öffnen von Dokumenten in Projekten ist mit Ihrem Starter-Abo nicht möglich.\",\"starterUser.project1upNavigationCDPSave\":\"Das Speichern von Dokumenten in Projekten ist mit Ihrem Starter-Abo nicht möglich.\",\"invite.failure\":\"Einladungen konnten nicht gesendet werden. Versuchen Sie es erneut.\",\"accessibility.backButton\":\"Zurück\",\"button.role\":\"Schaltfläche\",\"button.actions\":\"Aktionen\",\"button.add\":\"Hinzufügen\",\"button.addFiles\":\"Dateien hinzufügen\",\"button.addLibrary\":\"Bibliothek hinzufügen\",\"button.createDocument\":\"Neue {appName}-Datei\",\"button.library\":\"Bibliothek\",\"button.back\":\"Zurück\",\"button.browse\":\"Alle durchsuchen\",\"button.cancel\":\"Abbrechen\",\"button.okay\":\"OK\",\"button.canvas\":\"Arbeitsfläche\",\"button.addCanvas\":\"Neue Arbeitsfläche\",\"button.changeDefaultApp\":\"Standardprogramm ändern...\",\"button.close\":\"Schließen\",\"button.continue\":\"Weiter\",\"button.copy\":\"Kopieren nach...\",\"button.copyLink\":\"Link kopieren\",\"button.create\":\"Erstellen\",\"button.createNewFolder\":\"Neuen Ordner erstellen\",\"button.newFile\":\"Neue Datei\",\"button.newFolder\":\"Neuer Ordner\",\"button.delete\":\"Löschen\",\"button.deleteResource\":\"Entfernen\",\"button.done\":\"Fertig\",\"button.download\":\"Herunterladen\",\"button.favorite\":\"Favoriten hinzufügen\",\"button.follow\":\"Folgen\",\"button.invite\":\"Einladen\",\"button.inviteLabel\":\"Personen einladen\",\"button.leave\":\"Verlassen\",\"button.leaveProject\":\"Arbeitsbereich verlassen\",\"button.move\":\"Verschieben zu...\",\"button.next\":\"Weiter\",\"button.ok\":\"OK\",\"button.open\":\"Öffnen\",\"button.openWith\":\"Öffnen mit\",\"button.open.appName\":\"{appName} {isDefault, select, true {(Standard)} other {}}\",\"button.redo\":\"Wiederholen\",\"button.reload\":\"Neu laden\",\"button.rename\":\"Umbenennen\",\"button.restore\":\"Wiederherstellen\",\"button.retry\":\"Wiederholen\",\"button.save\":\"Speichern\",\"button.select\":\"Auswählen\",\"button.share\":\"Freigeben\",\"button.skipTour\":\"Tour überspringen\",\"button.undo\":\"Rückgängig\",\"button.unfavorite\":\"Favoriten entfernen\",\"button.unfollow\":\"Nicht mehr folgen\",\"button.update\":\"Aktualisieren\",\"button.upgrade\":\"Buchen Sie ein Upgrade\",\"button.view\":\"Alle anzeigen\",\"button.viewProject\":\"Projekt anzeigen\",\"button.viewTarget\":\"Anzeigen\",\"button.createWeblink\":\"Weblink hinzufügen\",\"button.leaveTeam\":\"Arbeitsbereich verlassen\",\"button.renameTeam\":\"Arbeitsbereich umbenennen\",\"button.editTeam\":\"Arbeitsbereichsinformationen bearbeiten\",\"button.archiveTeam\":\"Arbeitsbereich löschen\",\"button.upload\":\"Dateien hochladen\",\"button.goToDeleted\":\"In gelöschtem Projekt anzeigen\",\"button.viewEverything\":\"Alles anzeigen\",\"button.viewInWeb\":\"Im Web anzeigen\",\"abbreviations.fileSize.byte\":\"B\",\"abbreviations.fileSize.kilobyte\":\"kB\",\"abbreviations.fileSize.megabyte\":\"MB\",\"abbreviations.fileSize.gigabyte\":\"GB\",\"abbreviations.fileSize.terabyte\":\"TB\",\"statusIcon.conflicted\":\"Konflikt bei der Synchronisierung\",\"statusIcon.onlineOnly\":\"Nur online verfügbar\",\"statusIcon.availableOffline\":\"Offline verfügbar\",\"statusIcon.syncing\":\"Synchronisieren...\",\"statusIcon.waitingToSync\":\"Auf Synchronisation warten\",\"statusMessage.offline.description\":\"Stellen Sie die Verbindung wieder her, um auf alle Arbeitsbereiche und Projekte zuzugreifen. Lokale Dateien aus Ihren Projekten finden Sie auf der Startseite.\",\"statusMessage.offline.heading\":\"Verbindung getrennt\",\"statusMessage.offline.toast\":\"Es besteht keine Verbindung, sodass einige Funktionen und Dateien möglicherweise nicht verfügbar sind.\",\"toggle.listView\":\"Listenansicht\",\"toggle.gridView\":\"Miniaturansicht\",\"color.fuchsia\":\"Fuchsie\",\"color.indigo\":\"Indigo\",\"color.celery\":\"Sellerie\",\"color.magenta\":\"Magenta\",\"color.yellow\":\"Gelb\",\"color.seafoam\":\"Meerschaum\",\"color.chartreuse\":\"Hellgrün\",\"color.purple\":\"Lila\",\"color.blue\":\"Blau\",\"color.red\":\"Rot\",\"color.orange\":\"Orange\",\"color.green\":\"Grün\",\"color.label\":\"Projektfarbe\",\"tooltip.offline.general\":\"Online-Verbindung wiederherstellen, um diese Aktion auszuführen\",\"tooltip.moreFaces\":\"+ {number} weitere\",\"action.leave.space.success\":\"Sie haben {count, plural, =1 {# Projekt} other {# Projekte}} verlassen.\",\"action.leave.prototype.success\":\"Zugriff auf {count, plural, =1 {# Prototyp} other {# Prototypen}} entfernt\",\"action.leave.file.success\":\"Zugriff auf {count, plural, =1 {# Datei} other {# Dateien}} entfernt\",\"action.leave.canvas.success\":\"Zugriff auf {count, plural, =1 {# Arbeitsfläche} other {# Arbeitsflächen}} entfernt\",\"action.leave.team.success\":\"Sie haben 1 Arbeitsbereich verlassen.\",\"action.leave.space.error\":\"Verlassen des Projekts nicht möglich\",\"action.leave.prototype.error\":\"Verlassen des Prototyps nicht möglich\",\"action.leave.file.error\":\"Verlassen der Datei nicht möglich\",\"action.leave.team.error\":\"Verlassen des Arbeitsbereichs nicht möglich\",\"action.leave.canvas.error\":\"Verlassen des Canvas nicht möglich\",\"action.leave.space.partial.error\":\"Verlassen aller Projekte nicht möglich\",\"action.leave.prototype.partial.error\":\"Verlassen aller Prototypen nicht möglich\",\"action.leave.file.partial.error\":\"Verlassen aller Dateien nicht möglich\",\"action.leave.canvas.partial.error\":\"Verlassen aller Arbeitsflächen nicht möglich\",\"action.leave.error.onlyContributor\":\"Du bist das einzige Mitglied. Füge vor dem Verlassen ein weiteres hinzu.\",\"action.leave.error.addressBookGroupMember\":\"Verlasse die Gruppe und versuche es dann erneut.\",\"action.leave.error.admin\":\"Verlassen nicht möglich, da du Administrator bist.\",\"action.leave.error.generic\":\"Verlassen ist aufgrund eines Fehlers nicht möglich.\",\"action.reportAbuse\":\"Missbrauch melden\",\"action.reportAbuse.required\":\"Erforderlich\",\"action.reportAbuse.titleText\":\"Wenn Sie der Meinung sind, dass dieser Creative Cloud-Inhalt gegen die Adobe-Nutzungsbedingungen verstößt, können Sie den Inhalt melden, indem Sie dieses kurze Formular ausfüllen.\",\"action.reportAbuse.emailInput\":\"Ihre E-Mail-Adresse\",\"action.reportAbuse.nameInput\":\"Ihr Name\",\"action.reportAbuse.radioButtonText\":\"Warum melden Sie diesen Inhalt?\",\"action.reportAbuse.defamation\":\"Verleumdung\",\"action.reportAbuse.hate\":\"Rassistische oder diskriminierende Inhalte\",\"action.reportAbuse.trademark\":\"Markenverletzung\",\"action.reportAbuse.pornography\":\"Nicht jugendfreie Inhalte\",\"action.reportAbuse.vulgar\":\"Anstößige Inhalte\",\"action.reportAbuse.other\":\"Andere\",\"action.reportAbuse.inappropriate\":\"Unangemessen\",\"action.reportAbuse.age\":\"Falsches Alter\",\"action.reportAbuse.gender\":\"Falsches Geschlecht\",\"action.reportAbuse.textAreaTitle\":\"Beschreiben Sie Ihre Bedenken.\",\"action.reportAbuse.describeConcern\":\"Bedenken beschreiben\",\"action.reportAbuse.success\":\"Missbrauch gemeldet\",\"action.reportAbuse.failure\":\"Melden des Missbrauchs fehlgeschlagen\",\"action.menu.label\":\"Aktionsmenü\",\"action.label\":\"Aktion\",\"dialog.genericError.description\":\"Ein Fehler ist aufgetreten.\",\"dialog.genericError.title\":\"Unerwarteter Fehler\",\"dialog.leave.space.title\":\"{count, plural, =1 {{name}} other {Projekte}} verlassen\",\"dialog.leave.prototype.title\":\"{count, plural, =1 {Diesen Prototyp} other {Prototypen}} verlassen\",\"dialog.leave.file.title\":\"{count, plural, =1 {Diese Datei} other {Dateien}} verlassen\",\"dialog.leave.canvas.title\":\"{count, plural, =1 {Diesen Arbeitsbereich} other {Arbeitsbereiche}} verlassen\",\"dialog.leave.team.title\":\"Team verlassen?\",\"dialog.leave.team.detail\":\"Wenn Sie sich selbst entfernen, können Sie dies nicht rückgängig machen. Wenden Sie sich an einen Administrator, wenn Sie diesem Arbeitsbereich wieder hinzugefügt werden möchten.\",\"dialog.leave.space.detail\":\"Sie verlieren den Zugriff auf die Elemente in diesem Projekt, die Sie nicht besitzen. Ein Verlassen von „{projectName}“ kann nicht rückgängig gemacht werden.\",\"dialog.leave.prototype.detail\":\"Ohne neue Einladung kannst du nicht wieder darauf zugreifen.\",\"dialog.leave.file.detail\":\"Ohne neue Einladung kannst du nicht wieder darauf zugreifen.\",\"dialog.leave.canvas.detail\":\"Ohne neue Einladung kannst du nicht wieder darauf zugreifen.\",\"dialog.leave.detail\":\"{type, select, space {Sie verlieren den Zugriff auf Elemente in {count, plural, =1 {diesem Projekt} other {diesen Projekten}}, deren Eigentümer Sie nicht sind. Ein Verlassen {count, plural, =1 {von „{name}“} other {dieser Projekte}} kann nicht rückgängig gemacht werden.} other {Ohne neue Einladung können Sie nicht wieder {count, plural, =1 {auf dieses Projekt} other {auf diese Projekte}} zugreifen{count, plural, =1 {.} other {:}}}}\",\"dialog.deleteFailed.title\":\"Es können nicht alle Elemente gelöscht werden.\",\"dialog.deleteWarning.description\":\"{type, select, spaces {Durch diese Aktion werden die Inhalte für alle Mitglieder dieser Projekte gelöscht:} other {Durch diese Aktion werden folgende Elemente für alle Mitglieder dieses Projekts gelöscht:}}\",\"dialog.deleteWarning.title\":\"{type, select, space {{count} {count, plural, =1 {Projekt löschen} other {Projekte löschen}}} other {{count} {count, plural, =1 {Element löschen} other {Elemente löschen}}}}\",\"dialog.deleteFailed.description.unauthorized\":\"Löschen ist nicht möglich, da Sie aus dem Projekt entfernt wurden:\",\"dialog.deleteFailed.description.alreadyDeleted\":\"Löschen ist nicht möglich, da ein anderer Benutzer dieses Element bereits gelöscht hat:\",\"dialog.deleteFailed.description.unknown\":\"Löschen ist aufgrund eines Fehlers nicht möglich:\",\"dialog.cantCopyAllItems\":\"Es können nicht alle Elemente kopiert werden.\",\"dialog.cantCopyBecauseSomethingWentWrong\":\"Kopieren ist aufgrund eines Fehlers nicht möglich:\",\"dialog.cantCopyBecauseYouWereSignedOut\":\"Kopieren ist nicht möglich, da du abgemeldet wurdest:\",\"dialog.cantCopyBecauseYouWereRemoved\":\"Kopieren ist nicht möglich, da Sie aus diesem Projekt entfernt wurden:\",\"dialog.cantCopyBecauseItemWasDeleted\":\"Kopieren ist nicht möglich, da ein anderer Benutzer dieses Element gelöscht hat:\",\"dialog.cantCopyBecauseItemExists\":\"Kopieren ist nicht möglich, da es in dem Ordner, in den du es kopieren möchtest, bereits vorhanden ist:\",\"dialog.cantMoveAllItems\":\"Es können nicht alle Elemente verschoben werden.\",\"dialog.cantMoveBecauseSomethingWentWrong\":\"Verschieben ist aufgrund eines Fehlers nicht möglich:\",\"dialog.cantMoveBecauseYouWereSignedOut\":\"Verschieben ist nicht möglich, da du abgemeldet wurdest:\",\"dialog.cantMoveBecauseYouWereRemoved\":\"Verschieben ist nicht möglich, da Sie aus diesem Projekt entfernt wurden:\",\"dialog.cantMoveBecauseItemWasDeleted\":\"Verschieben ist nicht möglich, da ein anderer Benutzer dieses Element gelöscht hat:\",\"dialog.cantMoveBecauseItemExists\":\"Verschieben ist nicht möglich, da es in dem Ordner, in den du es verschieben möchtest, bereits vorhanden ist:\",\"dialog.createFolder.error\":\"Serverfehler, Ordner konnte nicht gespeichert werden\",\"dialog.createFolder.nameConflict\":\"Ein Ordner mit diesem Namen ist bereits vorhanden.\",\"dialog.createFolder.placeholder\":\"Ordnername\",\"dialog.createFolder.title\":\"Ordner erstellen\",\"dialog.createFolder.success\":\"Ordner wurde erfolgreich erstellt\",\"dialog.createWeblink.error\":\"Nicht unterstützte URL\",\"dialog.createWeblink.tooManyRequests\":\"Unerwarteter Netzwerkfehler. Versuchen Sie es erneut.\",\"dialog.createWeblink.success\":\"1 Element hinzugefügt\",\"dialog.createWeblink.nameConflict\":\"Titel ist bereits vorhanden\",\"dialog.createWeblink.name.placeholder\":\"Namen für diesen Link eingeben\",\"dialog.createWeblink.link.placeholder\":\"https://\",\"dialog.createWeblink.name\":\"Benutzerdefinierter Titel\",\"dialog.createWeblink.link\":\"Link\",\"dialog.createWeblink.title\":\"Weblink erstellen\",\"app.type.webLink\":\"WEB-LINK\",\"dialog.createCanvas.error\":\"Arbeitsfläche kann nicht erstellt werden\",\"dialog.move.title\":\"In Projekt „{projectName}“ verschieben\",\"dialog.move.detail\":\"Durch Verschieben dieses Elements ändert sich, wer darauf zugreifen kann.\",\"moveToTeam.confirm.title\":\"In Arbeitsbereich „{name}“ verschieben\",\"moveToTeam.confirm.message\":\"Wenn Sie Ihre Projekte hierher verschieben, ändert sich die Gruppe der Zugriffsberechtigten. Ihre Projekte sind dann für alle zugänglich, die Zugriff auf Ihren Arbeitsbereich haben.\",\"moveToTeam.disabled.differentOrg.tooltip.message\":\"Projekte können nicht in einen Arbeitsbereich einer anderen Organisation verschoben werden.\",\"moveToSpace.disabled.differentOrg.tooltip.message\":\"Elemente können nicht in ein Projekt einer anderen Organisation verschoben werden.\",\"moveToTeam.success\":\"Sie haben {count, plural, =1 {# Projekt} other {# Projekte}} in den Arbeitsbereich „{name}“ verschoben.\",\"confirmationDialog.dontShowAgain\":\"Nicht mehr anzeigen\",\"dialog.open.title\":\"Im Web öffnen\",\"dialog.open.detail\":\"Datei kann in {appName} nicht geöffnet werden, aber du kannst in einem Browser darauf zugreifen.\",\"dialog.renameTeam.title\":\"Arbeitsbereich umbenennen\",\"dialog.renameTeam.placeholder\":\"Namen für diesen Arbeitsbereich eingeben\",\"dialog.renameTeam.error\":\"Ein Fehler ist aufgetreten.\",\"dialog.renameTeam.nameConflict\":\"Dieser Name ist bereits vorhanden\",\"dialog.archiveTeam.title\":\"Arbeitsbereich löschen?\",\"dialog.archiveTeam.detail\":\"Wenn Sie sich selbst entfernen, können Sie dies nicht rückgängig machen. Wenden Sie sich an einen Administrator, wenn Sie diesem Arbeitsbereich wieder beitreten möchten.\",\"dialog.saveToCloud.title\":\"Datei(en) in Creative Cloud gespeichert\",\"dialog.saveToCloud.detail\":\"Ihr Cloud-Dokument unterstützt jetzt unter anderem einen Versionsverlauf, Einladungen und Co-Editing und Sofortzugriff von anderen Geräten. Sie finden es hier und in Ihren Creative Cloud-Anwendungen.\",\"input.invalidCharInput\":\"Folgende Zeichen sind in Namen unzulässig: \\\\\\\\ / * ? \\\" | :\",\"input.invalidEmptyInput\":\"{names, select, true {Namen} other {Titel}} dürfen nicht leer sein.\",\"input.nameTooLong\":\"{names, select, true {Namen} other {Titel}} dürfen nicht mehr als {maxLength} Zeichen umfassen\",\"input.nameEndsWithDot\":\"{names, select, true {Namen} other {Titel}} dürfen nicht mit einem Punkt enden.\",\"input.weblink.nameRestricted\":\"Folgende Titel sind für Weblinks nicht zulässig: „con“, „prn“, „aux“, „nul“, „com#“, „lpt#“\",\"input.nameRestricted\":\"Assets dürfen nicht die folgenden Namen haben: con/prn/aux/nul/com#/lpt#\",\"input.weblink.invalidCharInput\":\"Titel dürfen nicht nur aus Leerzeichen bestehen. Folgende Zeichen sind nicht zulässig: \\\\\\\\ / * ? \\\" | : < > \",\"input.name.invalidCharInput\":\"Namen dürfen nicht nur aus Leerzeichen bestehen. Folgende Zeichen sind nicht zulässig: \\\\\\\\ \\\\/ * ? \\\\\\\" | : < > \",\"cdpFooter.orphanedArtifactsWarning\":\"Wenn Sie Elemente verschieben, bleiben damit verbundene veröffentlichte Links im ursprünglichen Projekt.\",\"cdpFooter.libraryPrivacyWarning\":\"Wenn Sie über Berechtigungen zum erneuten Freigeben einer von Ihnen hinzugefügten Bibliothek verfügen, kann sie von Mitgliedern des Projekts angezeigt werden.\",\"toast.beforeOp.error.documentIsOpen\":\"Schließen Sie {count, plural, =1 {das Dokument} other {die Dokumente}}, um diese Aktion auszuführen.\",\"app.type.designSpecs\":\"DESIGN-SPEZIFIKATION\",\"app.type.prototype\":\"PROTOTYP\",\"app.type.publishedLink\":\"VERÖFFENTLICHTER LINK\",\"popover.header\":\"Arbeite mit anderen an einem Projekt und hole Feedback zu deinen Arbeiten ein.\",\"popover.linkout\":\"Weitere Informationen\",\"team.libraries.filter.all\":\"Alle\",\"team.libraries.filter.addedToYourLibraries\":\"Zu deinen Bibliotheken hinzugefügt\",\"team.libraries.filter.notAdded\":\"Nicht hinzugefügt\",\"team.spaces.filter.all\":\"Alles\",\"team.spaces.filter.favorited\":\"Favoriten\",\"team.filter.empty.heading\":\"Keine Projekte zum ausgewählten Filter gefunden\",\"team.filter.empty.description1\":\"Wir konnten in dieser Liste keine Ergebnisse für \",\"team.filter.empty.description2\":\" finden. Überprüfen Sie die Schreibung oder versuchen Sie es mit anderen Stichwörtern.\",\"team.filter.no.match.description\":\"Wir konnten in dieser Liste keine Ergebnisse finden. Überprüfe die Schreibung oder versuche es mit anderen Filterkriterien.\",\"team.filter.filterText\":\"{filter}\",\"team.header.other.teams\":\"Andere Arbeitsbereiche\",\"space.empty.heading\":\"Alles an einem Ort, alle auf dem neuesten Stand\",\"space.empty.description\":\"Füllen Sie dieses Projekt mit Arbeitsdateien und zugehörigen Materialien. Laden Sie Mitwirkende ein, beizutreten und ihre Arbeiten ebenfalls hinzuzufügen.\",\"space.empty.canvasHeading\":\"CREATIVE CLOUD CANVAS\",\"space.empty.actionsHeading\":\"INHALTE ZU IHREM PROJEKT HINZUFÜGEN\",\"space.empty.createCanvas\":\"Neue Arbeitsfläche\",\"space.empty.upload\":\"Dateien hinzufügen\",\"space.empty.createFolder\":\"Neuer Ordner\",\"space.empty.createWeblink\":\"Weblinks\",\"space.empty.addResource\":\"Bibliothek\",\"folder.empty.heading\":\"Ordner ist leer.\",\"folder.empty.description\":\"Fügen Sie zunächst Dateien hinzu.\",\"folder.discard.heading\":\"Dieser Ordner wurde gelöscht.\",\"folder.discard.description\":\"Wenden Sie sich an Ihren Administrator, wenn Sie der Meinung sind, dass ein Fehler vorliegt, oder durchsuchen Sie andere Inhalte.\",\"folder.error.description\":\"Beim Laden von Inhalten aus diesem Ordner ist ein Problem aufgetreten.„SVG-Filter bearbeiten“.\",\"space.empty.section.createACanvas\":\"Arbeitsfläche erstellen\",\"tooltip.opensInBrowser\":\"Wird im Browser geöffnet\",\"space.empty.workingFiles\":\"Fügen Sie diesem Projekt weitere Assets hinzu\",\"space.empty.canvasPopoverTitle\":\"Creative Cloud Canvas (Beta) testen\",\"space.empty.canvasPopoverContent\":\"Verwende Arbeitsflächen zum Layouten, Visualisieren und Überarbeiten kreativer Projekte.\",\"space.error.heading\":\"Projekt kann nicht geladen werden\",\"space.error.description\":\"Beim Laden von Inhalten aus diesem Projekt ist ein Problem aufgetreten.\",\"createTeamWizard.createTeam.sidebarHeading\":\"Arbeitsbereich erstellen\",\"createTeamWizard.createTeam.sidebarCopy\":\"Erstellen Sie einen Arbeitsbereich, damit alle auf dem gleichen Stand sind und organisiert bleiben.\",\"createTeamWizard.createTeam.sidebarCopy.adminconsole\":\"Richten Sie einen Ort ein, an dem Ihr Team zusammenarbeiten und Dateien austauschen kann.\",\"createTeamWizard.createTeam.sidebarLink\":\"Weitere Informationen\",\"createTeamWizard.createTeam.contentHeading\":\"Neuer Arbeitsbereich\",\"createTeamWizard.createTeam.loading\":\"Arbeitsbereich „{name}“ wird erstellt\",\"createTeamWizard.inviteMembers.sidebarHeading\":\"Laden Sie Mitglieder zum Arbeitsbereich „{name}“ ein\",\"createTeamWizard.inviteMembers.sidebarCopy\":\"Beginnen Sie jetzt mit der Eingabe eines Namens oder einer E-Mail-Adresse, um Mitglieder einzuladen, oder überspringen Sie diesen Schritt und laden Sie sie später ein.\",\"createTeamWizard.inviteMembers.loading\":\"Mitglieder zum Arbeitsbereich „{name}“ einladen\",\"createTeamWizard.inviteMembers.contentHeading\":\"Mitglieder einladen\",\"createTeamWizard.inviteMembers.successToast\":\"Es wurden Mitglieder zu dem neuen Arbeitsbereich hinzugefügt\",\"createTeamWizard.progress\":\"Schritt {current} von {total}\",\"createTeamWizard.skipStep\":\"Überspringen\",\"teamDialog.createTeam.label\":\"Arbeitsbereich erstellen\",\"teamDialog.createTeam.infoBox.description\":\"Die Teilnahme an dem von Ihnen erstellten Arbeitsbereich ist nur auf Einladung möglich. Alle hinzugefügten Personen haben standardmäßig Bearbeitungszugriff.\",\"teamDialog.editTeam.label\":\"Arbeitsbereich bearbeiten\",\"teamDialog.nameSection.placeholder\":\"Namen für neuen Arbeitsbereich eingeben\",\"teamDialog.nameSection.label\":\"Arbeitsbereichsname\",\"teamDialog.permissionsSection.label\":\"Wer darf diesen Arbeitsbereich bearbeiten?\",\"teamDialog.permissionsSection.option.onlyInvited\":\"Nur eingeladene Personen\",\"teamDialog.descriptionSection.label\":\"Beschreibung des Arbeitsbereichs (optional)\",\"teamDialog.descriptionSection.placeholder\":\"Fügen Sie eine kurze Beschreibung Ihres Arbeitsbereichs hinzu\",\"teamsSidebar.noTeams\":\"Keine Arbeitsbereiche\",\"teamsSidebar.newTeamButton\":\"Arbeitsbereich erstellen\",\"teamsSidebar.adminTour.title\":\"Neu: Arbeitsbereiche erstellen\",\"teamsSidebar.adminTour.content\":\"Jetzt können Administratoren Arbeitsbereiche in Creative Cloud im Web erstellen und sich so die Organisation der Zusammenarbeit erleichtern.\",\"teamsSidebarTeam.newSpaceButton\":\"Neues Projekt\",\"teamsSidebarTeam.header.newBadge\":\"NEU\",\"teamsSidebarTeam.header.otherTeams\":\"Aus anderen Arbeitsbereichen\",\"teamsSidebarTeam.header.teams\":\"ARBEITSBEREICHE\",\"teamsSidebarTeam.header.previewLabel\":\"(Vorschau)\",\"teamsSidebarTeam.header.previewCopy\":\"Arbeitsbereiche und Projekte sind in einer privaten Beta-Version verfügbar.\",\"teamsSidebarTeam.header.previewLearnMoreText\":\"Weitere Infos\",\"teamsSidebarTeam.message.loading\":\"Laden...\",\"teamsSidebarTeam.message.noSpaces\":\"Keine Arbeitsbereiche und Projekte vorhanden.\",\"teamsSidebarTeam.message.offline\":\"Keine Verbindung. Stellen Sie die Verbindung wieder her, um Ihre Arbeitsbereiche und Projekte anzuzeigen.\",\"teamsSidebarTeam.message.error\":\"Beim Laden der Arbeitsbereiche und Projekte ist ein Problem aufgetreten.\",\"teams1up.error.description\":\"Beim Laden Ihrer Projekte ist ein Problem aufgetreten.\",\"teams1up.error.heading\":\"Projekte konnten nicht geladen werden\",\"otherTeams.emptyMessage.header\":\"Arbeitsbereichsseite kann nicht angezeigt werden\",\"otherTeams.emptyMessage.description1\":\"Sie wurden entfernt oder haben das letzte Projekt über den Abschnitt \",\"otherTeams.emptyMessage.description2\":\" verlassen. Wenden Sie sich an Ihren Administrator, wenn Sie der Meinung sind, dass ein Fehler vorliegt.\",\"spaceTour.step0.title\":\"Hier werden Ihre Projekte angezeigt\",\"spaceTour.step0.content\":\"In Projekten können Teams Dateien und Ressourcen sammeln, organisieren, freigeben und gemeinsam bearbeiten.\",\"spaceTour.step1.title\":\"Fügen Sie alles hinzu, was Sie für ein Projekt benötigen\",\"spaceTour.step1.content\":\"Versammeln Sie Arbeitsdateien, Referenzbilder und Ressourcen an einem Ort.\",\"spaceTour.step2.title\":\"Einfache Rechteverwaltung\",\"spaceTour.step2.content\":\"Weisen Sie Mitwirkenden den richtigen Zugriff zu, wenn Sie sie einladen, um sich Zeit und Ärger zu sparen. Senden Sie schreibgeschützte Pakete an Stakeholder für Reviews und Feedback.\",\"error.cantCreateSpace\":\"Speicherplatz für den Arbeitsbereich ist belegt\",\"error.exceedQuota.create.detail.description1\":\"Im Moment können Sie keine neuen Elemente erstellen. Wählen Sie \",\"error.exceedQuota.description2\":\" , um Speicherplatz freizugeben.\",\"error.exceedQuota.add.detail.description1\":\"Im Moment können Sie keine neuen Elemente hinzufügen. Wählen Sie \",\"error.move.generic\":\"Verschieben ist aufgrund eines Fehlers nicht möglich\",\"error.move.signedOut\":\"Verschieben ist nicht möglich, da du abgemeldet wurdest\",\"error.move.permissionRevoked\":\"Verschieben ist nicht möglich, da Sie aus diesem Projekt entfernt wurden\",\"error.move.deleted\":\"Verschieben ist nicht möglich, da ein anderer Benutzer dieses Element gelöscht hat\",\"error.move.duplicate\":\"Verschieben ist nicht möglich, da im Zielordner bereits vorhanden\",\"error.copy.generic\":\"Kopieren ist aufgrund eines Fehlers nicht möglich\",\"error.copy.signedOut\":\"Kopieren ist nicht möglich, da du abgemeldet wurdest\",\"error.copy.permissionRevoked\":\"Kopieren ist nicht möglich, da Sie aus diesem Projekt entfernt wurden\",\"error.copy.deleted\":\"Kopieren ist nicht möglich, da ein anderer Benutzer dieses Element gelöscht hat\",\"error.copy.duplicate\":\"Kopieren ist nicht möglich, da im Zielordner bereits vorhanden\",\"checkbox.select\":\"Auswählen\",\"listItem.fileSize\":\"Dateigröße\",\"facepile.additionalMembers\":\"Weitere Mitglieder +{count}\",\"facepile.memberName\":\"{name}, Mitglied\",\"coachmark.information\":\"Informationen\",\"toolbar.tools\":\"Werkzeuge\",\"griditem.error.message\":\"Abrufen nicht möglich\",\"griditem.error.button\":\"Wiederholen\",\"ats.move.extendedNotification\":\"Sie erhalten eine Benachrichtigung, sobald das Verschieben abgeschlossen ist.\",\"file.deleted.error.heading\":\"Sie können die Datei nicht {operation}\",\"file.deleted.error.description\":\"Sie können diese Datei nicht {operation}, da sie gelöscht wurde. Stellen Sie sie unter „Gelöscht“ wieder her oder wählen Sie einen anderen Speicherort aus.\",\"file.deleted.rename.error.description\":\"Sie können diese Datei nicht umbenennen, da sie gelöscht wurde. Wählen Sie „Zu ‚Gelöscht' wechseln“, um die Datei wiederherzustellen.\"}");

/***/ }),

/***/ "QUbw":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

/*************************************************************************
* ADOBE CONFIDENTIAL
* ___________________
*
* Copyright 2019 Adobe
* All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains
* the property of Adobe and its suppliers, if any. The intellectual
* and technical concepts contained herein are proprietary to Adobe
* and its suppliers and are protected by all applicable intellectual
* property laws, including trade secret and copyright laws.
* Dissemination of this information or reproduction of this material
* is strictly forbidden unless prior written permission is obtained
* from Adobe.
**************************************************************************/

module.exports = __webpack_require__("96ti");

/***/ }),

/***/ "QXXi":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _autobindDecorator = _interopRequireDefault(__webpack_require__("gKdT"));

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _Dialog = _interopRequireDefault(__webpack_require__("PxaR"));

var _propTypes = _interopRequireDefault(__webpack_require__("17x9"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

var _UxpDialogButtons = _interopRequireDefault(__webpack_require__("FWm0"));

var _UxpDialogHeader = _interopRequireDefault(__webpack_require__("3XTm"));

__webpack_require__("eWyx");

const _excluded = ["children", "className", "cancelLabel", "confirmLabel", "secondaryLabel", "open", "title", "variant", "mode", "tabIndex", "trapFocus", "isDismissible", "id", "aria-label", "aria-labelledby", "aria-describedby", "aria-modal"];

var _class, _class2, _temp;

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function ownKeys(object, enumerableOnly) {
  var keys = Object.keys(object);

  if (Object.getOwnPropertySymbols) {
    var symbols = Object.getOwnPropertySymbols(object);

    if (enumerableOnly) {
      symbols = symbols.filter(function (sym) {
        return Object.getOwnPropertyDescriptor(object, sym).enumerable;
      });
    }

    keys.push.apply(keys, symbols);
  }

  return keys;
}

function _objectSpread(target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i] != null ? arguments[i] : {};

    if (i % 2) {
      ownKeys(Object(source), true).forEach(function (key) {
        _defineProperty(target, key, source[key]);
      });
    } else if (Object.getOwnPropertyDescriptors) {
      Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
    } else {
      ownKeys(Object(source)).forEach(function (key) {
        Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
      });
    }
  }

  return target;
}

function _defineProperty(obj, key, value) {
  if (key in obj) {
    Object.defineProperty(obj, key, {
      value: value,
      enumerable: true,
      configurable: true,
      writable: true
    });
  } else {
    obj[key] = value;
  }

  return obj;
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

if (false) {} else if (false) {} else {
  __webpack_require__("3Bdy");
}

if (true) __webpack_require__("0YIG");
if (true) __webpack_require__("+Jno");
if (true) __webpack_require__("XPLw");
if (true) __webpack_require__("xEce");
const DefaultSize = {
  width: 'auto',
  height: 'auto'
};
const DefaultOptions = {
  resize: 'none',
  titleVisibility: 'hide',
  size: DefaultSize,
  maxSize: DefaultSize,
  minSize: DefaultSize
};

let UxpNativeDialog = (0, _autobindDecorator.default)(_class = (_temp = _class2 = class UxpNativeDialog extends _Dialog.default {
  componentDidMount() {
    let overrideOptions = null;
    const {
      size
    } = this.props;

    if (this.dialogElementRef) {
      if (size && size.width && size.height) {
        overrideOptions = {
          resize: 'none',
          titleVisibility: 'hide',
          size: size,
          maxSize: DefaultSize,
          minSize: DefaultSize
        };
      }

      this.dialogElementRef.showModal(overrideOptions ? overrideOptions : DefaultOptions).then(() => {}, () => {});
      this.dialogElementRef.addEventListener('close', this.onDialogCloseEvent);
      this.dialogElementRef.addEventListener('cancel', this.onDialogCancelEvent);
      this.dialogElementRef.addEventListener('load', this.onDialogLoadEvent);
    }
  }

  componentWillUnmount() {
    if (this.dialogElementRef) {
      this.dialogElementRef.removeEventListener('close', this.onDialogCloseEvent);
      this.dialogElementRef.removeEventListener('cancel', this.onDialogCancelEvent);
      this.dialogElementRef.removeEventListener('load', this.onDialogLoadEvent);
    }
  }

  onDialogCloseEvent() {
    this.dialogElementRef = null;
  }

  onDialogCancelEvent() {
    this.dialogElementRef = null;
  }

  onDialogLoadEvent() {
    if (this.props.onLoad) {
      this.props.onLoad();
    }
  }

  onConfirm(...args) {
    this._onAction(this.props.onConfirm, ...args);

    this.closeDialog();
  }

  onCancel() {
    this._onAction(this.props.onCancel);

    this.closeDialog();
  }

  closeDialog() {
    this.dialogElementRef.close();
  }

  render() {
    const _this$props = this.props,
          {
      children,
      className = '',
      cancelLabel,
      confirmLabel,
      secondaryLabel,
      open,
      title,
      variant,
      mode,
      tabIndex,
      trapFocus,
      isDismissible,
      id = this.dialogId,
      'aria-label': ariaLabel,
      'aria-labelledby': ariaLabelledby,
      'aria-describedby': ariaDescribedby,
      'aria-modal': ariaModal
    } = _this$props,
          otherProps = _objectWithoutProperties(_this$props, _excluded);

    const fullscreen = mode === 'fullscreen' || mode === 'fullscreenTakeover';
    const derivedVariant = variant || (cancelLabel && confirmLabel ? 'confirmation' : 'information');
    delete otherProps.modalContent;
    delete otherProps.disableEscKey;
    delete otherProps.onLoad;
    return (
      /*#__PURE__*/

      /* eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions */
      _react.default.createElement("dialog", {
        id: id,
        ref: el => this.dialogElementRef = el,
        defaultpreventedkeys: ['Escape'],
        onConfirm: this.onConfirm,
        onCancel: this.onCancel
      }, /*#__PURE__*/_react.default.createElement("div", {
        onFocus: this.onFocus,
        onKeyDown: this.onKeyDown,
        className: (0, _classnames.default)('uxp-Native-Dialog', 'spectrum-Dialog', 'react-spectrum-Dialog', {
          [`spectrum-Dialog--${mode}`]: mode,
          'spectrum-Dialog--error': variant === 'error',
          'is-open': open,
          'spectrum-Dialog--dismissible': isDismissible
        }, 'spectrum-Dialog-Override', className)
        /* eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex */
        ,
        tabIndex: tabIndex === undefined || trapFocus ? 1 : tabIndex,
        "aria-label": ariaLabel,
        "aria-labelledby": ariaLabelledby || (title && !ariaLabel ? `${id}-heading` : null),
        "aria-describedby": ariaDescribedby || (title && children ? `${id}-content` : null),
        "aria-modal": ariaModal || trapFocus
      }, title && /*#__PURE__*/_react.default.createElement(_UxpDialogHeader.default, _extends({
        variant: derivedVariant,
        title: title,
        fullscreen: fullscreen,
        confirmLabel: confirmLabel,
        secondaryLabel: secondaryLabel,
        cancelLabel: cancelLabel,
        isDismissible: isDismissible,
        id: `${id}-heading`
      }, otherProps), /*#__PURE__*/_react.default.createElement("div", {
        className: "dialogSeparator"
      })), title ? /*#__PURE__*/_react.default.createElement("div", {
        className: "spectrum-Dialog-content",
        id: `${id}-content`
      }, children) : children, !isDismissible && !fullscreen && confirmLabel && /*#__PURE__*/_react.default.createElement(_UxpDialogButtons.default, _extends({}, this.props, {
        variant: derivedVariant,
        className: "spectrum-Dialog-footer",
        onConfirm: this.onConfirm,
        onCancel: this.onCancel
      }))))
    );
  }

}, _class2.propTypes = _objectSpread(_objectSpread({}, _Dialog.default.propTypes), {}, {
  /**
   * When custom size for modal is required to render long-content
   */
  size: _propTypes.default.objectOf({
    width: _propTypes.default.number,
    height: _propTypes.default.number
  })
}), _temp)) || _class;

exports.default = UxpNativeDialog;

/***/ }),

/***/ "QXhf":
/***/ (function(module, exports, __webpack_require__) {

var ctx = __webpack_require__("2GTP");

var invoke = __webpack_require__("MCSJ");

var html = __webpack_require__("MvwC");

var cel = __webpack_require__("Hsns");

var global = __webpack_require__("5T2Y");

var process = global.process;
var setTask = global.setImmediate;
var clearTask = global.clearImmediate;
var MessageChannel = global.MessageChannel;
var Dispatch = global.Dispatch;
var counter = 0;
var queue = {};
var ONREADYSTATECHANGE = 'onreadystatechange';
var defer, channel, port;

var run = function () {
  var id = +this; // eslint-disable-next-line no-prototype-builtins

  if (queue.hasOwnProperty(id)) {
    var fn = queue[id];
    delete queue[id];
    fn();
  }
};

var listener = function (event) {
  run.call(event.data);
}; // Node.js 0.9+ & IE10+ has setImmediate, otherwise:


if (!setTask || !clearTask) {
  setTask = function setImmediate(fn) {
    var args = [];
    var i = 1;

    while (arguments.length > i) args.push(arguments[i++]);

    queue[++counter] = function () {
      // eslint-disable-next-line no-new-func
      invoke(typeof fn == 'function' ? fn : Function(fn), args);
    };

    defer(counter);
    return counter;
  };

  clearTask = function clearImmediate(id) {
    delete queue[id];
  }; // Node.js 0.8-


  if (__webpack_require__("a0xu")(process) == 'process') {
    defer = function (id) {
      process.nextTick(ctx(run, id, 1));
    }; // Sphere (JS game engine) Dispatch API

  } else if (Dispatch && Dispatch.now) {
    defer = function (id) {
      Dispatch.now(ctx(run, id, 1));
    }; // Browsers with MessageChannel, includes WebWorkers

  } else if (MessageChannel) {
    channel = new MessageChannel();
    port = channel.port2;
    channel.port1.onmessage = listener;
    defer = ctx(port.postMessage, port, 1); // Browsers with postMessage, skip WebWorkers
    // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'
  } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) {
    defer = function (id) {
      global.postMessage(id + '', '*');
    };

    global.addEventListener('message', listener, false); // IE8-
  } else if (ONREADYSTATECHANGE in cel('script')) {
    defer = function (id) {
      html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () {
        html.removeChild(this);
        run.call(id);
      };
    }; // Rest old browsers

  } else {
    defer = function (id) {
      setTimeout(ctx(run, id, 1), 0);
    };
  }
}

module.exports = {
  set: setTask,
  clear: clearTask
};

/***/ }),

/***/ "QbLZ":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


exports.__esModule = true;

var _assign = __webpack_require__("P2sY");

var _assign2 = _interopRequireDefault(_assign);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

exports.default = _assign2.default || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

/***/ }),

/***/ "QcOe":
/***/ (function(module, exports, __webpack_require__) {

var isObject = __webpack_require__("GoyQ"),
    isPrototype = __webpack_require__("6sVZ"),
    nativeKeysIn = __webpack_require__("7Ix3");
/** Used for built-in method references. */


var objectProto = Object.prototype;
/** Used to check objects for own properties. */

var hasOwnProperty = objectProto.hasOwnProperty;
/**
 * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.
 *
 * @private
 * @param {Object} object The object to query.
 * @returns {Array} Returns the array of property names.
 */

function baseKeysIn(object) {
  if (!isObject(object)) {
    return nativeKeysIn(object);
  }

  var isProto = isPrototype(object),
      result = [];

  for (var key in object) {
    if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {
      result.push(key);
    }
  }

  return result;
}

module.exports = baseKeysIn;

/***/ }),

/***/ "Qd/k":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


const base = exports;
base.Reporter = __webpack_require__("0cit").Reporter;
base.DecoderBuffer = __webpack_require__("YoN+").DecoderBuffer;
base.EncoderBuffer = __webpack_require__("YoN+").EncoderBuffer;
base.Node = __webpack_require__("g2Dh");

/***/ }),

/***/ "Qg89":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("DUhp"),
      24: __webpack_require__("xBww")
    }
  }));
};

WrappedIcon.displayName = 'GlobeGrid';
exports.default = WrappedIcon;

/***/ }),

/***/ "QhJR":
/***/ (function(module, exports) {

/* eslint-disable max-len */
module.exports = {
  'confirmationDialog.dontShowAgain': '다시 표시 안 함',
  'confirmationDialog.confirm.default': '계속',
  'confirmationDialog.cancel.default': '취소',
  'confirmationDialog.learnMore': '자세히 알아보기',
  'toast.warning.place': '연결된 클라우드 문서를 아직 배치할 수 없습니다. 대신 임베드 작업을 계속 수행하십시오.',
  'toast.warning.placeLinkOrEmbed': '배치한 에셋은 이제 기본적으로 원본에 연결됩니다. 즉, 한 곳에서 편집하면 해당 변경 내용이 모든 곳에 반영됩니다.',
  'toast.warning.saveAs.invalidFormat': '죄송합니다. 여기에 {genericFormat} 파일을 저장할 수 없습니다. 파일이 {adobeFormat}(으)로 저장됩니다.',
  'pickerView.recent': '최근 항목',
  'pickerView.cloud_docs': '내 파일',
  'pickerView.shared_with_you': '나와 공유됨',
  'pickerView.projects': '프로젝트',
  'pickerView.files': '파일',
  'pickerView.computer': '내 컴퓨터...',
  'pickerView.saveAsInput': '다른 이름으로 저장',
  'pickerView.exportInput': '내보내기 형식',
  'pickerView.sketch_library': 'Sketch 라이브러리 변환...',
  'pickerView.error.saveAsOrExport.default': '파일 이름이 잘못되었습니다.',
  'pickerView.error.saveAsOrExport.invalidName': '죄송합니다. 이름에 잘못된 문자가 포함되어 있습니다.',
  'pickerView.error.saveAsOrExport.invalidEnd': '이름은 “.” 또는 공백으로 끝날 수 없습니다.',
  'pickerView.error.saveAsOrExport.invalidChar': '이름에는 다음과 같은 문자를 사용할 수 없습니다. {characters}',
  'pickerView.error.saveAsOrExport.charRestriction': '이름의 문자 길이는 200자를 초과할 수 없습니다.',
  'pickerView.error.saveAsOrExport.duplicateName': '동일한 이름의 클라우드 문서가 여기에 이미 존재합니다.',
  'pickerView.error.addALibrary.permission': '이 라이브러리를 추가할 수 있는 권한이 없습니다.',
  'pickerViewFooter.button.add': '추가',
  'pickerViewFooter.button.cancel': '취소',
  'pickerViewFooter.button.copy': '여기에 복사',
  'pickerViewFooter.button.move': '여기로 이동',
  'pickerViewFooter.button.moveToProject': '여기로 이동',
  'pickerViewFooter.button.copyToProject': '여기에 복사',
  'pickerViewFooter.button.choose': '선택',
  'pickerViewFooter.button.save': '저장',
  'pickerViewFooter.button.switchToOSPicker': '내 컴퓨터에서',
  'pickerViewFooter.button.save.offline': '인터넷 연결 필요',
  'pickerViewFooter.button.saveAsCopy': '저장',
  'pickerViewFooter.button.export': '내보내기',
  'pickerViewFooter.button.placeLinkOrEmbed': '가져오기',
  'pickerViewFooter.button.import': '가져오기',
  'pickerViewFooter.checkbox.placeLink': '연결됨',
  'pickerViewFooter.tooltip.placeLink': '이 항목은 연결된 에셋으로만 배치할 수 있습니다.',
  'pickerViewFooter.tooltip.placeEmbed': '이 항목은 임베드된 것으로만 배치할 수 있습니다.',
  'pickerViewFooter.saveAs.format.label': '포맷',
  'pickerViewFooter.button.selectProject': '저장',
  'onboardingCdp.title': '클라우드 문서로 저장하면 더 많은 작업을 수행할 수 있습니다.',
  'onboardingCdp.tooltip': '컴퓨터에 저장하면 클라우드 기능을 사용할 수 없습니다.',
  'onboardingCdp.tooltip.link': '자세히 알아보기',
  'onboardingCdp.table.header.saveToCloud': 'Creative Cloud',
  'onboardingCdp.table.header.saveToLocal': '내 컴퓨터에서',
  'onboardingCdp.button.saveToCloud': 'Creative Cloud에 저장',
  'onboardingCdp.feature.offline': '오프라인 액세스',
  'onboardingCdp.feature.syncing': '모든 디바이스에서 클라우드 동기화',
  'onboardingCdp.feature.autosave': '모든 변경 내용 자동 저장',
  'onboardingCdp.feature.versionHistory': '버전 내역',
  'onboardingCdp.feature.inviteToEdit': '편집 작업을 수행하도록 초대',
  'onboardingCdp.button.saveToLocal': '내 컴퓨터에 저장',
  'onboardingCdp.checkbox.doNotShowAgain': '다시 표시 안 함',
  'uap.title.place': 'Creative Cloud에서 배치',
  'uap.title.import': 'Creative Cloud에서 가져오기',
  'uap.title.placeLinkOrEmbed': 'Creative Cloud에서 배치',
  'uap.title.linkAssets': 'Creative Cloud에서 연결',
  'uap.title.open': 'Creative Cloud에서 열기',
  'uap.title.relink': 'Creative Cloud에서 연결',
  'uap.title.saveAs': 'Creative Cloud에 저장',
  'uap.title.saveAsCopy': 'Creative Cloud에 저장',
  'uap.title.saveToFolder': 'Creative Cloud에 저장',
  'uap.title.export': 'Creative Cloud로 내보내기',
  'uap.title.copy': 'Creative Cloud에 복사',
  'uap.title.move': 'Creative Cloud로 이동',
  'uap.title.moveToProject': 'Creative Cloud로 이동',
  'uap.title.copyToProject': 'Creative Cloud에 복사',
  'uap.title.reference': 'Creative Cloud에 추가',
  'uap.title.selectProject': 'Creative Cloud에 저장',
  'move.toSpace.confirm.title': '버전 내역이 삭제됩니다.',
  'move.toSpace.confirm.message': '이 파일을 이동하면 버전 내역이 삭제됩니다. 버전 내역을 유지하려면 대신 사본을 만드십시오.'
};

/***/ }),

/***/ "Qiau":
/***/ (function(module) {

module.exports = JSON.parse("{\"Breadcrumbs\":\"Morzsák\"}");

/***/ }),

/***/ "QihY":
/***/ (function(module, exports, __webpack_require__) {

var AuthCipher = __webpack_require__("gvAe");

var Buffer = __webpack_require__("hwdV").Buffer;

var MODES = __webpack_require__("usKN");

var StreamCipher = __webpack_require__("CfXC");

var Transform = __webpack_require__("ZDAU");

var aes = __webpack_require__("OfWw");

var ebtk = __webpack_require__("roQf");

var inherits = __webpack_require__("P7XM");

function Decipher(mode, key, iv) {
  Transform.call(this);
  this._cache = new Splitter();
  this._last = void 0;
  this._cipher = new aes.AES(key);
  this._prev = Buffer.from(iv);
  this._mode = mode;
  this._autopadding = true;
}

inherits(Decipher, Transform);

Decipher.prototype._update = function (data) {
  this._cache.add(data);

  var chunk;
  var thing;
  var out = [];

  while (chunk = this._cache.get(this._autopadding)) {
    thing = this._mode.decrypt(this, chunk);
    out.push(thing);
  }

  return Buffer.concat(out);
};

Decipher.prototype._final = function () {
  var chunk = this._cache.flush();

  if (this._autopadding) {
    return unpad(this._mode.decrypt(this, chunk));
  } else if (chunk) {
    throw new Error('data not multiple of block length');
  }
};

Decipher.prototype.setAutoPadding = function (setTo) {
  this._autopadding = !!setTo;
  return this;
};

function Splitter() {
  this.cache = Buffer.allocUnsafe(0);
}

Splitter.prototype.add = function (data) {
  this.cache = Buffer.concat([this.cache, data]);
};

Splitter.prototype.get = function (autoPadding) {
  var out;

  if (autoPadding) {
    if (this.cache.length > 16) {
      out = this.cache.slice(0, 16);
      this.cache = this.cache.slice(16);
      return out;
    }
  } else {
    if (this.cache.length >= 16) {
      out = this.cache.slice(0, 16);
      this.cache = this.cache.slice(16);
      return out;
    }
  }

  return null;
};

Splitter.prototype.flush = function () {
  if (this.cache.length) return this.cache;
};

function unpad(last) {
  var padded = last[15];

  if (padded < 1 || padded > 16) {
    throw new Error('unable to decrypt data');
  }

  var i = -1;

  while (++i < padded) {
    if (last[i + (16 - padded)] !== padded) {
      throw new Error('unable to decrypt data');
    }
  }

  if (padded === 16) return;
  return last.slice(0, 16 - padded);
}

function createDecipheriv(suite, password, iv) {
  var config = MODES[suite.toLowerCase()];
  if (!config) throw new TypeError('invalid suite type');
  if (typeof iv === 'string') iv = Buffer.from(iv);
  if (config.mode !== 'GCM' && iv.length !== config.iv) throw new TypeError('invalid iv length ' + iv.length);
  if (typeof password === 'string') password = Buffer.from(password);
  if (password.length !== config.key / 8) throw new TypeError('invalid key length ' + password.length);

  if (config.type === 'stream') {
    return new StreamCipher(config.module, password, iv, true);
  } else if (config.type === 'auth') {
    return new AuthCipher(config.module, password, iv, true);
  }

  return new Decipher(config.module, password, iv);
}

function createDecipher(suite, password) {
  var config = MODES[suite.toLowerCase()];
  if (!config) throw new TypeError('invalid suite type');
  var keys = ebtk(password, false, config.key, config.iv);
  return createDecipheriv(suite, keys.key, keys.iv);
}

exports.createDecipher = createDecipher;
exports.createDecipheriv = createDecipheriv;

/***/ }),

/***/ "QkVE":
/***/ (function(module, exports, __webpack_require__) {

var isKeyable = __webpack_require__("EpBk");
/**
 * Gets the data for `map`.
 *
 * @private
 * @param {Object} map The map to query.
 * @param {string} key The reference key.
 * @returns {*} Returns the map data.
 */


function getMapData(map, key) {
  var data = map.__data__;
  return isKeyable(key) ? data[typeof key == 'string' ? 'string' : 'hash'] : data.map;
}

module.exports = getMapData;

/***/ }),

/***/ "QkVN":
/***/ (function(module, exports, __webpack_require__) {

var baseMerge = __webpack_require__("+Qka"),
    createAssigner = __webpack_require__("LsHQ");
/**
 * This method is like `_.assign` except that it recursively merges own and
 * inherited enumerable string keyed properties of source objects into the
 * destination object. Source properties that resolve to `undefined` are
 * skipped if a destination value exists. Array and plain object properties
 * are merged recursively. Other objects and value types are overridden by
 * assignment. Source objects are applied from left to right. Subsequent
 * sources overwrite property assignments of previous sources.
 *
 * **Note:** This method mutates `object`.
 *
 * @static
 * @memberOf _
 * @since 0.5.0
 * @category Object
 * @param {Object} object The destination object.
 * @param {...Object} [sources] The source objects.
 * @returns {Object} Returns `object`.
 * @example
 *
 * var object = {
 *   'a': [{ 'b': 2 }, { 'd': 4 }]
 * };
 *
 * var other = {
 *   'a': [{ 'c': 3 }, { 'e': 5 }]
 * };
 *
 * _.merge(object, other);
 * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }
 */


var merge = createAssigner(function (object, source, srcIndex) {
  baseMerge(object, source, srcIndex);
});
module.exports = merge;

/***/ }),

/***/ "QpuX":
/***/ (function(module, exports, __webpack_require__) {

module.exports = __webpack_require__("+qE3").EventEmitter;

/***/ }),

/***/ "Qqsu":
/***/ (function(module, exports, __webpack_require__) {

// extracted by mini-css-extract-plugin

/***/ }),

/***/ "QsLt":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("Dz+C"),
      24: __webpack_require__("mHCn")
    }
  }));
};

WrappedIcon.displayName = 'Link';
exports.default = WrappedIcon;

/***/ }),

/***/ "QtaS":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("iDDY"),
      24: __webpack_require__("J5eH")
    }
  }));
};

WrappedIcon.displayName = 'FolderAdd';
exports.default = WrappedIcon;

/***/ }),

/***/ "QtsC":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

const _excluded = ["styles"];

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }

function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

var _default = _ref => {
  let {
    styles = {}
  } = _ref,
      props = _objectWithoutProperties(_ref, _excluded);

  return /*#__PURE__*/_react.default.createElement("svg", _extends({
    xmlns: "http://www.w3.org/2000/svg",
    className: styles["searchIcon"] || "searchIcon",
    height: "16",
    viewBox: "1 0 24 24",
    width: "16"
  }, props), /*#__PURE__*/_react.default.createElement("path", {
    d: "M21.669 20.149L16.36 14.84a8.02 8.02 0 1 0-1.52 1.52l5.309 5.309a1.078 1.078 0 0 0 1.52-1.52zM10 16a6 6 0 1 1 6-6 6 6 0 0 1-6 6z",
    fill: "#707070"
  }));
};

exports.default = _default;

/***/ }),

/***/ "QuN5":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// UNUSED EXPORTS: FOCUSABLE_ELEMENT_SELECTOR, TABBABLE_ELEMENT_SELECTOR, trapFocus

// EXTERNAL MODULE: ./node_modules/autobind-decorator/lib/index.js
var lib = __webpack_require__("gKdT");
var lib_default = /*#__PURE__*/__webpack_require__.n(lib);

// EXTERNAL MODULE: ./node_modules/prop-types/index.js
var prop_types = __webpack_require__("17x9");
var prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types);

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__("q1tI");
var react_default = /*#__PURE__*/__webpack_require__.n(react);

// EXTERNAL MODULE: ./node_modules/react-dom/index.js
var react_dom = __webpack_require__("i8i4");
var react_dom_default = /*#__PURE__*/__webpack_require__.n(react_dom);

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/packages/FocusManager/events.ts
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
/**
 * Forked from https://git.corp.adobe.com/torq/react-spectrum/blob/develop/src/utils/events.js
 */
function interpretKeyboardEvent(event, orientation = 'vertical') {
    switch (event.key) {
        case 'Enter':
        case ' ':
            if (this.onSelectFocused) {
                this.onSelectFocused(event);
            }
            break;
        case 'Tab':
            if (this.onTab) {
                this.onTab(event);
            }
            break;
        case 'PageUp':
            if (this.onPageUp) {
                this.onPageUp(event);
            }
            else if (this.onFocusFirst) {
                this.onFocusFirst(event);
            }
            break;
        case 'PageDown':
            if (this.onPageDown) {
                this.onPageDown(event);
            }
            else if (this.onFocusLast) {
                this.onFocusLast(event);
            }
            break;
        case 'Home':
            if (this.onFocusFirst) {
                this.onFocusFirst(event);
            }
            break;
        case 'End':
            if (this.onFocusLast) {
                this.onFocusLast(event);
            }
            break;
        case 'ArrowUp':
        case 'Up':
            if (event.altKey && this.onAltArrowUp) {
                this.onAltArrowUp(event);
            }
            else if (this.onFocusPrevious) {
                switch (orientation) {
                    case 'vertical':
                        this.onFocusPrevious(event);
                        break;
                    case 'horizontal':
                        break;
                    default:
                        if (this.props.prevFocusOffset) {
                            this.onFocusPrevious(event, this.props.prevFocusOffset());
                        }
                        else {
                            this.onFocusPrevious(event);
                        }
                        break;
                }
            }
            break;
        case 'ArrowDown':
        case 'Down':
            if (event.altKey && this.onAltArrowDown) {
                this.onAltArrowDown(event);
            }
            else if (this.onFocusNext) {
                switch (orientation) {
                    case 'vertical':
                        this.onFocusNext(event);
                        break;
                    case 'horizontal':
                        break;
                    default:
                        if (this.props.nextFocusOffset) {
                            this.onFocusNext(event, this.props.nextFocusOffset());
                        }
                        else {
                            this.onFocusNext(event);
                        }
                        break;
                }
            }
            break;
        case 'ArrowLeft':
        case 'Left':
            if (orientation !== 'vertical' && this.onFocusPrevious) {
                this.onFocusPrevious(event);
            }
            break;
        case 'ArrowRight':
        case 'Right':
            if (orientation !== 'vertical' && this.onFocusNext) {
                this.onFocusNext(event);
            }
            break;
        case 'Escape':
        case 'Esc':
            if (this.onEscape) {
                this.onEscape(event);
            }
            break;
        default:
        // do nothing
    }
}
function chain(...callbacks) {
    return (...args) => {
        // eslint-disable-next-line no-restricted-syntax
        for (const callback of callbacks) {
            if (typeof callback === 'function') {
                callback(...args);
            }
        }
    };
}
let mouseDownPrevented = false;
function focusAfterMouseEvent(handler, event) {
    // If server side rendering, just call handler method.
    if (!document) {
        handler && handler.call(this, event);
        return;
    }
    // execute the handler
    if (handler) {
        handler.call(this, event);
        if (event.isDefaultPrevented()) {
            mouseDownPrevented = event.type === 'mousedown';
            return;
        }
    }
    // make sure that the element has focus by calling this.focus();
    if (!mouseDownPrevented && typeof this.focus === 'function') {
        this.focus();
    }
    if (event.type === 'mouseup') {
        mouseDownPrevented = false;
    }
}

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/packages/FocusManager/scrollToDOMNode.ts
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2020 Adobe Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Incorporated.
 **************************************************************************/
/**
 * Forked from https://git.corp.adobe.com/torq/react-spectrum/blob/develop/src/utils/scrollToDOMNode.js
 */
/* harmony default export */ var scrollToDOMNode = ((node, parentNode, alignToStart) => {
    if (parentNode && parentNode.contains(node)) {
        const { clientHeight, clientWidth, scrollTop, scrollLeft } = parentNode;
        const { offsetHeight, offsetWidth, offsetTop, offsetLeft } = node;
        const parentPosition = window.getComputedStyle(parentNode).position;
        let parentOffsetTop = parentNode.offsetTop;
        let parentOffsetLeft = parentNode.offsetLeft;
        if (parentPosition !== 'static') {
            // eslint-disable-next-line no-multi-assign
            parentOffsetTop = parentOffsetLeft = 0;
        }
        if (offsetTop < scrollTop) {
            parentNode.scrollTop = offsetTop;
        }
        else {
            const offsetBottom = offsetTop + offsetHeight;
            const scrollBottom = scrollTop + clientHeight;
            if (offsetBottom > scrollBottom) {
                if (alignToStart) {
                    parentNode.scrollTop = offsetTop - parentOffsetTop;
                }
                else {
                    parentNode.scrollTop = offsetBottom - clientHeight - parentOffsetTop;
                }
            }
        }
        if (offsetLeft < scrollLeft) {
            parentNode.scrollLeft = offsetLeft;
        }
        else {
            const offsetRight = offsetLeft + offsetWidth;
            const scrollRight = scrollLeft + clientWidth;
            if (offsetRight > scrollRight) {
                if (alignToStart) {
                    parentNode.scrollLeft = offsetLeft - parentOffsetLeft;
                }
                else {
                    parentNode.scrollLeft = offsetRight - clientWidth - parentOffsetLeft;
                }
            }
        }
    }
});

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/packages/FocusManager/string.ts
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2020 Adobe Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Incorporated.
 **************************************************************************/
/**
 * Forked from https://git.corp.adobe.com/torq/react-spectrum/blob/develop/src/utils/string.js
 */
function isUrl(string) {
    return string && !!string.match(/\/|:|\./g);
}
function normalize(string = '', normalizationForm = 'NFC') {
    if ('normalize' in String.prototype) {
        // eslint-disable-next-line no-param-reassign
        string = string.normalize(normalizationForm);
    }
    return string;
}
function removeDiacritics(string = '', normalizationForm = 'NFD') {
    return normalize(string, normalizationForm.replace('C', 'D')).replace(/[\u0300-\u036f]/g, '');
}
/** adapted from https://github.com/rwu823/react-addons-text-content */
function getTextFromReact(reactChild) {
    let result = '';
    const addChildTextToResult = child => {
        if (typeof child === 'string' || typeof child === 'number') {
            result = `${result} ${child}`;
        }
        else if (Array.isArray(child)) {
            child.forEach(c => addChildTextToResult(c));
        }
        else if (child && child.props) {
            const { children } = child.props;
            if (Array.isArray(children)) {
                children.forEach(c => addChildTextToResult(c));
            }
            else {
                addChildTextToResult(children);
            }
        }
    };
    addChildTextToResult(reactChild);
    // clean up adjacent whitespace in result
    const adjacentWhitespaceRegex = /(\s)(?:\s+)/g;
    return result.trim().replace(adjacentWhitespaceRegex, '$1');
}

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/packages/FocusManager/FocusManager.tsx
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;
};
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2020 Adobe Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Incorporated.
 **************************************************************************/
/**
 * Forked from https://git.corp.adobe.com/torq/react-spectrum/blob/develop/src/utils/FocusManager.js
 */







const WHITESPACE_REGEXP = /[\n\r]+|[\s]{1,}/g;
const DELAY_BEFORE_AUTOFOCUS = 175;
let FocusManager_FocusManager = class FocusManager extends react_default.a.Component {
    constructor() {
        super(...arguments);
        this.keysSoFar = '';
        this.keyClearTimeout = null;
    }
    getItems(selected = false) {
        const { itemSelector, selectedItemSelector, includeSelf } = this.props;
        const selector = selected && selectedItemSelector ? selectedItemSelector : itemSelector;
        // eslint-disable-next-line react/no-find-dom-node
        const node = react_dom_default.a.findDOMNode(this);
        const array = [];
        if (includeSelf && node.matches(selector)) {
            array.push(node);
        }
        const items = array.concat(Array.from(node.querySelectorAll(selector)));
        /* When items have data-order defined, we use the attribute to sort the items.
         * The sort order based on data-order attribute defines the next focus element.
         */
        if (items.length > 0 && !!items[0].getAttribute('data-order')) {
            items.sort((a, b) => {
                const p1 = a.getAttribute('data-order');
                const p2 = b.getAttribute('data-order');
                return parseInt(p1, 10) - parseInt(p2, 10);
            });
        }
        return items;
    }
    keyboardFocusItem(item, index, e) {
        const { onKeyboardFocusChange } = this.props;
        item.focus();
        if (onKeyboardFocusChange) {
            onKeyboardFocusChange(item, index, e);
        }
    }
    // eslint-disable-next-line react/sort-comp
    onFocusFirst(e) {
        const items = this.getItems();
        if (items.length && (!e || items.indexOf(e.target) !== -1)) {
            if (e) {
                e.preventDefault();
            }
            this.keyboardFocusItem(items[0], 0, e);
        }
    }
    onFocusLast(e) {
        const items = this.getItems();
        if (items.length && (!e || items.indexOf(e.target) !== -1)) {
            if (e) {
                e.preventDefault();
            }
            this.keyboardFocusItem(items[items.length - 1], items.length - 1, e);
        }
    }
    onFocusPrevious(e, offset = 1) {
        const { disableCyclicFocus } = this.props;
        const items = this.getItems();
        if (items.length && e && items.indexOf(e.target) !== -1) {
            e.preventDefault();
            let index = items.indexOf(e.target) - offset;
            if (index < 0) {
                if (disableCyclicFocus) {
                    return;
                }
                index = items.length - 1;
            }
            this.keyboardFocusItem(items[index], index, e);
        }
    }
    onFocusNext(e, offset = 1) {
        const { disableCyclicFocus } = this.props;
        const items = this.getItems();
        if (items.length && e && items.indexOf(e.target) !== -1) {
            e.preventDefault();
            let index = items.indexOf(e.target) + offset;
            if (index >= items.length) {
                if (disableCyclicFocus) {
                    return;
                }
                index = 0;
            }
            this.keyboardFocusItem(items[index], index, e);
        }
    }
    onPageUp(e) {
        const { ignorePageUpPageDown } = this.props;
        if (ignorePageUpPageDown) {
            return;
        }
        const items = this.getItems();
        if (items.length && e && items.indexOf(e.target) !== -1) {
            e.preventDefault();
            // eslint-disable-next-line react/no-find-dom-node
            const listNode = react_dom_default.a.findDOMNode(this);
            const nextPage = Math.max(e.target.offsetTop + e.target.offsetHeight - listNode.clientHeight, 0);
            const index = items.indexOf(e.target);
            const item = items
                .slice(0, index)
                .reverse()
                .find(item => item.offsetTop < nextPage);
            if (item) {
                this.keyboardFocusItem(item, index, e);
                scrollToDOMNode(item, listNode, true);
            }
            else {
                this.onFocusFirst(e);
            }
        }
    }
    onPageDown(e) {
        const { ignorePageUpPageDown } = this.props;
        if (ignorePageUpPageDown) {
            return;
        }
        const items = this.getItems();
        if (items.length && e && items.indexOf(e.target) !== -1) {
            e.preventDefault();
            // eslint-disable-next-line react/no-find-dom-node
            const listNode = react_dom_default.a.findDOMNode(this);
            const nextPage = Math.min(e.target.offsetTop + listNode.clientHeight, listNode.scrollHeight + listNode.clientHeight);
            const index = items.indexOf(e.target) + 1;
            const item = items
                .slice(index)
                .find(item => item.offsetTop + item.offsetHeight > nextPage);
            if (item) {
                this.keyboardFocusItem(item, index, e);
                scrollToDOMNode(item, listNode, true);
            }
            else {
                this.onFocusLast(e);
            }
        }
    }
    findItemToFocus(e) {
        const { target, shiftKey, charCode } = e;
        const character = removeDiacritics(String.fromCharCode(charCode)).toUpperCase();
        let items = this.getItems();
        if (this.keysSoFar === '' || character === this.keysSoFar || shiftKey) {
            // reverse order if shiftKey is pressed
            if (shiftKey) {
                items = items.reverse();
            }
            this.searchIndex = items.indexOf(target);
        }
        if (character !== this.keysSoFar) {
            this.keysSoFar += character;
        }
        this.clearKeysSoFarAfterDelay();
        let item = this.findMatchInRange(items, this.searchIndex + 1, items.length);
        if (!item) {
            item = this.findMatchInRange(items, 0, this.searchIndex);
        }
        if (item) {
            item.focus();
        }
    }
    clearKeysSoFarAfterDelay() {
        if (this.keyClearTimeout) {
            clearTimeout(this.keyClearTimeout);
        }
        this.keyClearTimeout = setTimeout(() => {
            this.keysSoFar = '';
            // eslint-disable-next-line @typescript-eslint/no-magic-numbers
        }, 500);
    }
    findMatchInRange(items, startIndex, endIndex) {
        // Find the first item starting with the keysSoFar substring, searching in the specified range of items
        for (let i = startIndex; i < endIndex; i++) {
            const label = items[i].innerText || items[i].textContent;
            if (label &&
                removeDiacritics(label)
                    .replace(WHITESPACE_REGEXP, '')
                    .toUpperCase()
                    .indexOf(this.keysSoFar) === 0) {
                return items[i];
            }
        }
        return null;
    }
    /**
     * Handle keydown event
     * @param {Event} e Event object
     */
    onKeyDown(e) {
        if (e.isPropagationStopped()) {
            return;
        }
        // eslint-disable-next-line react/destructuring-assignment
        interpretKeyboardEvent.call(this, e, this.props.orientation);
    }
    /**
     * Handle keypress event
     * @param {Event} e Event object
     */
    onKeyPress(e) {
        if (e.isPropagationStopped()) {
            return;
        }
        this.findItemToFocus(e);
    }
    /**
     * When an item receives focus, it should have tabIndex === 0 and all other items should have tabIndex === -1
     * @param {Event} e Event object
     */
    onFocus(e) {
        if (e.isPropagationStopped()) {
            return;
        }
        this.getItems().forEach(item => {
            item.tabIndex = item === e.target ? 0 : -1;
        });
    }
    /**
     * When an item loses focus, set the appropriate tabIndex on each item based on its selected state.
     * If the item losing focus is selected,
     * it should be the only item to receive focus on shift+tab or tab back to the control,
     * However, if the item losing focus is not selected,
     * any of the selected items should receive focus on shift+tab or tab.
     * @param {Event} e Event object
     */
    onBlur(e) {
        if (e.isPropagationStopped()) {
            return;
        }
        const selectedItems = this.getItems(true);
        // If there are selected items,
        if (selectedItems.length) {
            // store whether item losing focus is selected.
            const targetSelected = selectedItems.indexOf(e.target) !== -1;
            this.getItems().forEach(item => {
                // store whether the current item is selected.
                const selected = selectedItems.indexOf(item) !== -1;
                // If the current item is the item losing focus and it is selected,
                // or the current item is selected and the item losing focus is not selected,
                // set tabIndex === 0, otherwise set tabIndex === -1.
                item.tabIndex =
                    (item === e.target && targetSelected) || (!targetSelected && selected) ? 0 : -1;
            });
        }
    }
    componentDidMount() {
        const { autoFocus, selectedItemSelector } = this.props;
        if (autoFocus) {
            const selectedItem = selectedItemSelector
                ? react_dom_default.a.findDOMNode(this).querySelector(selectedItemSelector)
                : null;
            // wait a frame before trying to shift focus
            // @ts-ignore
            this.focusTimer = setTimeout(() => {
                if (selectedItem) {
                    selectedItem.focus();
                }
                else {
                    this.onFocusFirst();
                }
            }, DELAY_BEFORE_AUTOFOCUS);
        }
    }
    componentWillUnmount() {
        clearTimeout(this.focusTimer);
    }
    render() {
        const { children, disabled, manageTabIndex, typeToSelect } = this.props;
        const child = react_default.a.Children.only(children);
        const { onKeyDown, onKeyPress, onFocus, onBlur, } = child.props;
        // @ts-ignore
        return react_default.a.cloneElement(child, {
            onKeyDown: !disabled ? chain(onKeyDown, this.onKeyDown) : onKeyDown,
            onKeyPress: typeToSelect && !disabled ? chain(onKeyPress, this.onKeyPress) : onKeyPress,
            onFocus: manageTabIndex && !disabled ? chain(onFocus, this.onFocus) : onFocus,
            onBlur: manageTabIndex && !disabled ? chain(onBlur, this.onBlur) : onBlur,
        });
    }
};
FocusManager_FocusManager.propTypes = {
    /**
     * A selector of focusable elements to manage focus between
     */
    itemSelector: prop_types_default.a.string.isRequired,
    /**
     * Whether to use roving tabIndex so that only one element within the group can receive focus with tab
     * key at a time.
     */
    manageTabIndex: prop_types_default.a.bool,
    /**
     * Orientation of items; "horizontal" orientation ignores up/down arrow keys, "vertical" orientation
     * ignores left/right arrow keys, "both" handles up/left and down/right.
     */
    orientation: prop_types_default.a.oneOf(['horizontal', 'vertical', 'both']),
    /**
     * A selector of selected elements
     */
    selectedItemSelector: prop_types_default.a.string,
    /**
     * Whether to disable focus management
     */
    disabled: prop_types_default.a.bool,
    /**
     * Whether arrow key navigation will wrap around to the other end, such as
     * up arrow from the first item wrapping around to the last item.
     */
    disableCyclicFocus: prop_types_default.a.bool,
    /**
     * Whether to include alphanumeric typing as a way to move focus to items in a list.
     */
    typeToSelect: prop_types_default.a.bool,
    /**
     * Whether to include the child wrapper element in the group of elements that can receive focus.
     */
    includeSelf: prop_types_default.a.bool,
    /**
     * Whether to ignore PageUp and PageDown events to move focus between items.
     */
    ignorePageUpPageDown: prop_types_default.a.bool,
    /**
     * Whether to autoFocus first selected item or first item.
     */
    autoFocus: prop_types_default.a.bool,
};
FocusManager_FocusManager.defaultProps = {
    manageTabIndex: true,
    orientation: 'vertical',
    typeToSelect: false,
    includeSelf: true,
    ignorePageUpPageDown: false,
    autoFocus: false,
    selectedItemSelector: '',
    disabled: false,
    disableCyclicFocus: false,
};
FocusManager_FocusManager = __decorate([
    lib_default.a
], FocusManager_FocusManager);
/* harmony default export */ var packages_FocusManager_FocusManager = __webpack_exports__["a"] = (FocusManager_FocusManager);
const focusableElements = [
    'input:not([disabled]):not([type=hidden])',
    'select:not([disabled])',
    'textarea:not([disabled])',
    'button:not([disabled])',
    'a[href]',
    'area[href]',
    'summary',
    'iframe',
    'object',
    'embed',
    'audio[controls]',
    'video[controls]',
    '[contenteditable]',
];
const FOCUSABLE_ELEMENT_SELECTOR = `${focusableElements.join(',')},[tabindex]`;
focusableElements.push('[tabindex]:not([tabindex="-1"])');
const TABBABLE_ELEMENT_SELECTOR = focusableElements.join(':not([tabindex="-1"]),');
function trapFocus(componentOrElement, event) {
    const { type, key, shiftKey, target } = event;
    let node;
    let tabbables;
    let tabbable;
    let first;
    let last;
    if (type === 'keydown' || type === 'focus') {
        // eslint-disable-next-line react/no-find-dom-node
        node = react_dom_default.a.findDOMNode(componentOrElement);
        if (node) {
            // find tabbable elements within container element
            tabbables = Array.from(node.querySelectorAll(TABBABLE_ELEMENT_SELECTOR)).filter(el => el !== node);
            [first] = tabbables;
            last = tabbables[tabbables.length - 1];
        }
    }
    // If navigating using the tab key,
    if (type === 'keydown' && key === 'Tab') {
        if (node) {
            if (shiftKey) {
                // with focus on first tabbable element, navigating backwards,
                if (target === first) {
                    // focus the last tabbable element
                    tabbable = last;
                }
                // otherwise, with focus on last tabbable element, navigating forwards,
            }
            else if (target === last) {
                // focus the first tabbable element.
                tabbable = first;
            }
        }
    }
    else if (type === 'focus') {
        if (target === node) {
            tabbable = first;
        }
    }
    if (tabbable) {
        event.preventDefault();
        event.stopPropagation();
        if (tabbable !== document.activeElement) {
            tabbable.focus();
        }
    }
}


/***/ }),

/***/ "Qygo":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("path", {
  d: "M24 7.9A16.1 16.1 0 1 1 7.9 24 16.118 16.118 0 0 1 24 7.9zm0-3.8A19.9 19.9 0 1 0 43.9 24 19.9 19.9 0 0 0 24 4.1z"
}), React.createElement("path", {
  d: "M29.724 18.665c0 3.52-4.544 5.536-4.544 7.361a3.363 3.363 0 0 0 .576 1.7.166.166 0 0 1-.16.256h-2.817a.415.415 0 0 1-.384-.16 3.451 3.451 0 0 1-.832-2.176c0-2.561 4.192-4.128 4.192-6.689 0-1.248-1.024-2.336-2.976-2.336a9.241 9.241 0 0 0-3.872.8c-.128.064-.224 0-.224-.128v-2.532c0-.128 0-.256.128-.32a10.943 10.943 0 0 1 4.769-.992c3.744 0 6.144 2.144 6.144 5.216zm-7.969 14.082a2.24 2.24 0 0 1 4.48 0A2.084 2.084 0 0 1 24 34.987a2.116 2.116 0 0 1-2.245-2.24z"
}));

/***/ }),

/***/ "R+7+":
/***/ (function(module, exports, __webpack_require__) {

// all enumerable object keys, includes symbols
var getKeys = __webpack_require__("w6GO");

var gOPS = __webpack_require__("mqlF");

var pIE = __webpack_require__("NV0k");

module.exports = function (it) {
  var result = getKeys(it);
  var getSymbols = gOPS.f;

  if (getSymbols) {
    var symbols = getSymbols(it);
    var isEnum = pIE.f;
    var i = 0;
    var key;

    while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);
  }

  return result;
};

/***/ }),

/***/ "R/Fj":
/***/ (function(module) {

module.exports = JSON.parse("{\"close\":\"Sulje\",\"error\":\"Virhe\",\"info\":\"Tiedot\",\"success\":\"Onnistui\",\"warning\":\"Varoitus\"}");

/***/ }),

/***/ "R358":
/***/ (function(module, exports, __webpack_require__) {

// extracted by mini-css-extract-plugin

/***/ }),

/***/ "R55y":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _autobindDecorator = _interopRequireDefault(__webpack_require__("gKdT"));

var _calculatePosition = _interopRequireDefault(__webpack_require__("7zOy"));

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _convertUnsafeMethod = _interopRequireDefault(__webpack_require__("8nyd"));

var _filterDOMProps = _interopRequireDefault(__webpack_require__("Cv/Q"));

var _getContainer = _interopRequireDefault(__webpack_require__("eF//"));

var _ownerDocument = _interopRequireDefault(__webpack_require__("z9HI"));

var _react = _interopRequireWildcard(__webpack_require__("q1tI"));

var _reactDom = _interopRequireDefault(__webpack_require__("i8i4"));

const _excluded = ["children", "className"];

var _class, _class2, _temp;

function _getRequireWildcardCache(nodeInterop) {
  if (typeof WeakMap !== "function") return null;
  var cacheBabelInterop = new WeakMap();
  var cacheNodeInterop = new WeakMap();
  return (_getRequireWildcardCache = function (nodeInterop) {
    return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
  })(nodeInterop);
}

function _interopRequireWildcard(obj, nodeInterop) {
  if (!nodeInterop && obj && obj.__esModule) {
    return obj;
  }

  if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
    return {
      default: obj
    };
  }

  var cache = _getRequireWildcardCache(nodeInterop);

  if (cache && cache.has(obj)) {
    return cache.get(obj);
  }

  var newObj = {};
  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;

  for (var key in obj) {
    if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
      var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;

      if (desc && (desc.get || desc.set)) {
        Object.defineProperty(newObj, key, desc);
      } else {
        newObj[key] = obj[key];
      }
    }
  }

  newObj.default = obj;

  if (cache) {
    cache.set(obj, newObj);
  }

  return newObj;
}

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function ownKeys(object, enumerableOnly) {
  var keys = Object.keys(object);

  if (Object.getOwnPropertySymbols) {
    var symbols = Object.getOwnPropertySymbols(object);

    if (enumerableOnly) {
      symbols = symbols.filter(function (sym) {
        return Object.getOwnPropertyDescriptor(object, sym).enumerable;
      });
    }

    keys.push.apply(keys, symbols);
  }

  return keys;
}

function _objectSpread(target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i] != null ? arguments[i] : {};

    if (i % 2) {
      ownKeys(Object(source), true).forEach(function (key) {
        _defineProperty(target, key, source[key]);
      });
    } else if (Object.getOwnPropertyDescriptors) {
      Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
    } else {
      ownKeys(Object(source)).forEach(function (key) {
        Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
      });
    }
  }

  return target;
}

function _defineProperty(obj, key, value) {
  if (key in obj) {
    Object.defineProperty(obj, key, {
      value: value,
      enumerable: true,
      configurable: true,
      writable: true
    });
  } else {
    obj[key] = value;
  }

  return obj;
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

let Position =
/**
 * The Position component calculates the coordinates for its child, to position
 * it relative to a `target` component or node. Useful for creating callouts
 * and tooltips, the Position component injects a `style` props with `left` and
 * `top` values for positioning your component.
 *
 * It also injects "arrow" `left`, and `top` values for styling callout arrows
 * for giving your components a sense of directionality.
 */
(0, _convertUnsafeMethod.default)(_class = (0, _autobindDecorator.default)(_class = (_temp = _class2 = class Position extends _react.default.Component {
  constructor(props, context) {
    super(props, context);
    this.state = {
      positionLeft: 0,
      positionTop: 0,
      arrowOffsetLeft: null,
      arrowOffsetTop: null,
      placement: this.props.placement
    };
    this._needsFlush = false;
    this._lastTarget = null;
  }

  componentDidMount() {
    this.updatePosition(this.getTarget());
    window.addEventListener('resize', this.maybeUpdatePosition, false);
  }

  UNSAFE_componentWillReceiveProps() {
    this._needsFlush = true;
  }

  componentDidUpdate(prevProps) {
    if (this._needsFlush) {
      this._needsFlush = false;
      this.maybeUpdatePosition(this.props.placement !== prevProps.placement);
    }
  }

  componentWillUnmount() {
    window.removeEventListener('resize', this.maybeUpdatePosition, false);
  }

  render() {
    const _this$props = this.props,
          {
      children,
      className
    } = _this$props,
          props = _objectWithoutProperties(_this$props, _excluded);

    const {
      positionLeft,
      positionTop,
      maxHeight,
      arrowOffsetLeft,
      arrowOffsetTop,
      placement
    } = this.state;
    delete props.target;

    const child = _react.default.Children.only(children);

    return /*#__PURE__*/(0, _react.cloneElement)(child, _objectSpread(_objectSpread({}, (0, _filterDOMProps.default)(props)), {}, {
      placement,
      className: (0, _classnames.default)(className, child.props.className),
      arrowStyle: {
        left: arrowOffsetLeft,
        top: arrowOffsetTop
      },
      style: _objectSpread(_objectSpread({}, child.props.style), {}, {
        position: 'absolute',
        zIndex: 100000,
        // should match the z-index in ModalTrigger
        left: positionLeft,
        top: positionTop,
        maxHeight: maxHeight
      })
    }));
  }

  getTarget() {
    const target = this.props.target;
    const targetElement = typeof target === 'function' ? target() : target;
    return targetElement && _reactDom.default.findDOMNode(targetElement) || null;
  }

  maybeUpdatePosition(placementChanged) {
    const target = this.getTarget();

    if (!this.props.shouldUpdatePosition && target === this._lastTarget && !placementChanged) {
      return;
    }

    this.updatePosition(target);
  }

  updatePosition(target) {
    const {
      placement,
      containerPadding,
      offset,
      crossOffset,
      flip,
      boundariesElement
    } = this.props;
    this._lastTarget = target;

    if (!target) {
      this.setState({
        positionLeft: 0,
        positionTop: 0,
        arrowOffsetLeft: null,
        arrowOffsetTop: null
      });
      return;
    }

    const overlay = _reactDom.default.findDOMNode(this);

    const container = (0, _getContainer.default)(this.props.container, (0, _ownerDocument.default)(this).body);
    this.setState((0, _calculatePosition.default)(placement, overlay, target, container, containerPadding, flip, boundariesElement, offset, crossOffset));
  }

}, _class2.defaultProps = {
  containerPadding: 10,
  offset: 0,
  crossOffset: 0
}, _temp)) || _class) || _class;

exports.default = Position;

/***/ }),

/***/ "R5Qx":
/***/ (function(module, exports, __webpack_require__) {

// extracted by mini-css-extract-plugin

/***/ }),

/***/ "R5jr":
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// GENERATED FILE


exports["default"] = {
  "locale": "en",
  "pluralRuleFunction": function (n, ord) {
    var s = String(n).split("."),
        v0 = !s[1],
        t0 = Number(s[0]) == n,
        n10 = t0 && s[0].slice(-1),
        n100 = t0 && s[0].slice(-2);
    if (ord) return n10 == 1 && n100 != 11 ? "one" : n10 == 2 && n100 != 12 ? "two" : n10 == 3 && n100 != 13 ? "few" : "other";
    return n == 1 && v0 ? "one" : "other";
  }
};

/***/ }),

/***/ "R5sx":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* unused harmony export ACPLModelErrorCode */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return SAMErrorCodeToHTTPNumberCode; });
/* unused harmony export ACPLModelErrorCodeToSAMErrorCode */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return SpacesError; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return SpacesGenericError; });
/* unused harmony export SpacesAssertionError */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return assert; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return isNetworkError; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return maybeSamHttpError; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return maybeSamError; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "i", function() { return maybeSpacesError; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return maybeKnownErrorCode; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "j", function() { return normalizeSamError; });
/* harmony import */ var _ccx_public_shared_asset_model_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("m4Z2");
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("YVc3");
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/


/**
 * ACPLModelErrorCode is copied from repository acpl-model/modules/uxp/acpl-model-uxp/types
 *
 * While SAM.cpp uses pseudo HTTP status codes from ACPL, as well as its own codes, SAM.js uses simple strings.
 * And now space's working files section can be loaded with SAM.cpp implementation, we should `normalizeSamError`
 * before used.
 *
 * TODO (napham): remove ACPLModelErrorCode references everywhere and only use `maybeSamError`, once SAM-1668
 * (align SAM.js errors with SAM.cpp errors) is implemented (soon).
 */
var ACPLModelErrorCode;
(function (ACPLModelErrorCode) {
    ACPLModelErrorCode[ACPLModelErrorCode["None"] = 0] = "None";
    ACPLModelErrorCode[ACPLModelErrorCode["GenericProgramError"] = 1] = "GenericProgramError";
    ACPLModelErrorCode[ACPLModelErrorCode["GenericRetriableError"] = 2] = "GenericRetriableError";
    ACPLModelErrorCode[ACPLModelErrorCode["FullDiskSpace"] = 3] = "FullDiskSpace";
    ACPLModelErrorCode[ACPLModelErrorCode["FullCloudStorage"] = 4] = "FullCloudStorage";
    ACPLModelErrorCode[ACPLModelErrorCode["NoInternetConnection"] = 5] = "NoInternetConnection";
    ACPLModelErrorCode[ACPLModelErrorCode["RequestTimedOut"] = 6] = "RequestTimedOut";
    ACPLModelErrorCode[ACPLModelErrorCode["UserCancelled"] = 7] = "UserCancelled";
    ACPLModelErrorCode[ACPLModelErrorCode["CoreSyncNotReachable"] = 8] = "CoreSyncNotReachable";
    ACPLModelErrorCode[ACPLModelErrorCode["CoreSyncNotCompatible"] = 9] = "CoreSyncNotCompatible";
    ACPLModelErrorCode[ACPLModelErrorCode["LoggedInUserLimitExceeded"] = 10] = "LoggedInUserLimitExceeded";
    ACPLModelErrorCode[ACPLModelErrorCode["PendingUncommittedChangesFromThisApp"] = 11] = "PendingUncommittedChangesFromThisApp";
    ACPLModelErrorCode[ACPLModelErrorCode["PendingUncommittedChangesFromAnotherApp"] = 12] = "PendingUncommittedChangesFromAnotherApp";
    ACPLModelErrorCode[ACPLModelErrorCode["OutOfBounds"] = 13] = "OutOfBounds";
    ACPLModelErrorCode[ACPLModelErrorCode["NetworkError"] = 14] = "NetworkError";
    ACPLModelErrorCode[ACPLModelErrorCode["OperationIgnored"] = 15] = "OperationIgnored";
    ACPLModelErrorCode[ACPLModelErrorCode["DiskIOError"] = 16] = "DiskIOError";
    ACPLModelErrorCode[ACPLModelErrorCode["ConflictOfSamePathOrName"] = 17] = "ConflictOfSamePathOrName";
    ACPLModelErrorCode[ACPLModelErrorCode["UserDenyListedPleaseContactSupport"] = 18] = "UserDenyListedPleaseContactSupport";
    ACPLModelErrorCode[ACPLModelErrorCode["OperatingOnOnlineOnlyAssetWhileDeviceIsOffline"] = 19] = "OperatingOnOnlineOnlyAssetWhileDeviceIsOffline";
    ACPLModelErrorCode[ACPLModelErrorCode["UnsupportedFeature"] = 20] = "UnsupportedFeature";
    ACPLModelErrorCode[ACPLModelErrorCode["CannotPerformOpWhenAssetNotInSync"] = 21] = "CannotPerformOpWhenAssetNotInSync";
    ACPLModelErrorCode[ACPLModelErrorCode["FilePathInvalid"] = 22] = "FilePathInvalid";
    ACPLModelErrorCode[ACPLModelErrorCode["SyncingFailed"] = 23] = "SyncingFailed";
    ACPLModelErrorCode[ACPLModelErrorCode["ResourceNotFound"] = 24] = "ResourceNotFound";
    ACPLModelErrorCode[ACPLModelErrorCode["NoUserRegistered"] = 25] = "NoUserRegistered";
    ACPLModelErrorCode[ACPLModelErrorCode["UserNotRegisteredForSync"] = 26] = "UserNotRegisteredForSync";
    ACPLModelErrorCode[ACPLModelErrorCode["CannotRenameAssetUsingDCTitle"] = 27] = "CannotRenameAssetUsingDCTitle";
    ACPLModelErrorCode[ACPLModelErrorCode["CoreSyncBinaryNotFound"] = 28] = "CoreSyncBinaryNotFound";
    ACPLModelErrorCode[ACPLModelErrorCode["CoreSyncNotInstalled"] = 29] = "CoreSyncNotInstalled";
    ACPLModelErrorCode[ACPLModelErrorCode["OperationForbidden"] = 30] = "OperationForbidden";
    ACPLModelErrorCode[ACPLModelErrorCode["CannotJoinAsset"] = 31] = "CannotJoinAsset";
    ACPLModelErrorCode[ACPLModelErrorCode["CannotLeaveAsset"] = 32] = "CannotLeaveAsset";
    ACPLModelErrorCode[ACPLModelErrorCode["AssetOpenedByOtherUser"] = 33] = "AssetOpenedByOtherUser";
    ACPLModelErrorCode[ACPLModelErrorCode["PresenceNotEnabledByClient"] = 34] = "PresenceNotEnabledByClient";
    ACPLModelErrorCode[ACPLModelErrorCode["CannotProvideJoinedUsers"] = 35] = "CannotProvideJoinedUsers";
    ACPLModelErrorCode[ACPLModelErrorCode["AlreadyRepoNameMigrated"] = 36] = "AlreadyRepoNameMigrated";
    // 37 is not defined in UserFacingErrorCodes.h
    ACPLModelErrorCode[ACPLModelErrorCode["AssetNotForked"] = 38] = "AssetNotForked";
    ACPLModelErrorCode[ACPLModelErrorCode["ContextNotAvailable"] = 39] = "ContextNotAvailable";
    ACPLModelErrorCode[ACPLModelErrorCode["ClientJsAssetContextNotSet"] = 40] = "ClientJsAssetContextNotSet";
    ACPLModelErrorCode[ACPLModelErrorCode["UnsupportedAssetType"] = 41] = "UnsupportedAssetType";
    ACPLModelErrorCode[ACPLModelErrorCode["CannotProvideExtAssetRef"] = 42] = "CannotProvideExtAssetRef";
    ACPLModelErrorCode[ACPLModelErrorCode["CommitError"] = 43] = "CommitError";
    ACPLModelErrorCode[ACPLModelErrorCode["CommitOfOrphanError"] = 44] = "CommitOfOrphanError";
    ACPLModelErrorCode[ACPLModelErrorCode["MalformedJsonError"] = 45] = "MalformedJsonError";
    ACPLModelErrorCode[ACPLModelErrorCode["UserNotOnline"] = 46] = "UserNotOnline";
    ACPLModelErrorCode[ACPLModelErrorCode["NotAcplV2Asset"] = 47] = "NotAcplV2Asset";
    ACPLModelErrorCode[ACPLModelErrorCode["UnableToMoveToForeground"] = 48] = "UnableToMoveToForeground";
    ACPLModelErrorCode[ACPLModelErrorCode["UnableToMoveToBackground"] = 49] = "UnableToMoveToBackground";
    ACPLModelErrorCode[ACPLModelErrorCode["InvalidContext"] = 50] = "InvalidContext";
    ACPLModelErrorCode[ACPLModelErrorCode["NotAvailableOffline"] = 51] = "NotAvailableOffline";
    ACPLModelErrorCode[ACPLModelErrorCode["CannotPurge"] = 52] = "CannotPurge";
    ACPLModelErrorCode[ACPLModelErrorCode["InvalidParameter"] = 53] = "InvalidParameter";
    ACPLModelErrorCode[ACPLModelErrorCode["CannotDuplicate"] = 54] = "CannotDuplicate";
    ACPLModelErrorCode[ACPLModelErrorCode["IncorrectSpacesMetadataFormat"] = 55] = "IncorrectSpacesMetadataFormat";
    ACPLModelErrorCode[ACPLModelErrorCode["DirectoryNotEmpty"] = 56] = "DirectoryNotEmpty";
    ACPLModelErrorCode[ACPLModelErrorCode["CannotCreateFork"] = 57] = "CannotCreateFork";
    ACPLModelErrorCode[ACPLModelErrorCode["CannotOpenArchivedAsset"] = 58] = "CannotOpenArchivedAsset";
    ACPLModelErrorCode[ACPLModelErrorCode["OperationNotSupported"] = 59] = "OperationNotSupported";
    ACPLModelErrorCode[ACPLModelErrorCode["ParentNotFound"] = 60] = "ParentNotFound";
    ACPLModelErrorCode[ACPLModelErrorCode["UnableToCreateAssetRef"] = 61] = "UnableToCreateAssetRef";
    ACPLModelErrorCode[ACPLModelErrorCode["UnableToPurgeExistingFork"] = 62] = "UnableToPurgeExistingFork";
    ACPLModelErrorCode[ACPLModelErrorCode["SyncFailedEditEdit"] = 63] = "SyncFailedEditEdit";
    ACPLModelErrorCode[ACPLModelErrorCode["SyncFailedEditDelete"] = 64] = "SyncFailedEditDelete";
    ACPLModelErrorCode[ACPLModelErrorCode["AccessToAssetRevoked"] = 65] = "AccessToAssetRevoked";
    ACPLModelErrorCode[ACPLModelErrorCode["FailedToGetAssetPermissions"] = 66] = "FailedToGetAssetPermissions";
    ACPLModelErrorCode[ACPLModelErrorCode["CannotPerformOpWhenCoreSyncPaused"] = 67] = "CannotPerformOpWhenCoreSyncPaused";
})(ACPLModelErrorCode || (ACPLModelErrorCode = {}));
const SAMErrorCodeToHTTPNumberCode = new Map([
    [_constants__WEBPACK_IMPORTED_MODULE_1__[/* SAMErrorCode */ "B"].NO_ACCESS_TOKEN, 401],
    [_constants__WEBPACK_IMPORTED_MODULE_1__[/* SAMErrorCode */ "B"].NOT_FOUND, 404],
    [_constants__WEBPACK_IMPORTED_MODULE_1__[/* SAMErrorCode */ "B"].ACCESS_DENIED, 403],
    [_constants__WEBPACK_IMPORTED_MODULE_1__[/* SAMErrorCode */ "B"].CONFLICT, 409],
]);
// TODO (napham): To update once SAM-1668 is implemented.
// There is no absolute mapping between SAM.cpp errors with SAM.js errors, these are our best judgement.
// The unknown mappings are unused anyway.
const ACPLModelErrorCodeToSAMErrorCode = new Map([
    [ACPLModelErrorCode.AccessToAssetRevoked, _constants__WEBPACK_IMPORTED_MODULE_1__[/* SAMErrorCode */ "B"].ACCESS_DENIED],
    // [ACPLModelErrorCode.None, SAMErrorCode.ASSERTION_ERROR],
    [ACPLModelErrorCode.ConflictOfSamePathOrName, _constants__WEBPACK_IMPORTED_MODULE_1__[/* SAMErrorCode */ "B"].CONFLICT],
    // [ACPLModelErrorCode.InvalidParameter, SAMErrorCode.INVALID_ASSET_TYPE],
    // [ACPLModelErrorCode.None, SAMErrorCode.INVALID_DATA],
    // [ACPLModelErrorCode.None, SAMErrorCode.INVALID_OPERATION],
    // [ACPLModelErrorCode.None, SAMErrorCode.INVALID_PARAMETER],
    [ACPLModelErrorCode.NetworkError, _constants__WEBPACK_IMPORTED_MODULE_1__[/* SAMErrorCode */ "B"].NETWORK_ERROR],
    // [ACPLModelErrorCode.None, SAMErrorCode.NO_ACCESS_TOKEN],
    [ACPLModelErrorCode.ResourceNotFound, _constants__WEBPACK_IMPORTED_MODULE_1__[/* SAMErrorCode */ "B"].NOT_FOUND],
]);
class SpacesError extends Error {
    constructor(code, title) {
        super(`[${code}] ${title}`);
        this.code = code;
        this.title = title;
        // JS Errors break the prototype chain.
        // https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work
        Object.setPrototypeOf(this, new.target.prototype);
    }
    get name() {
        return 'SpacesError';
    }
    /**
     * The underlying error wrapped by the SpacesError.
     */
    get underlyingError() {
        return undefined;
    }
}
class SpacesGenericError extends SpacesError {
    constructor(code, title, underlyingError) {
        // Make sure we don't throw exceptions while trying to invoke toString below.
        let errorStr = '';
        if (underlyingError !== null && underlyingError !== undefined) {
            try {
                errorStr = ` -> ${String(underlyingError)}`;
            }
            catch (_a) {
                // Avoid linter error on empty blocks.
                void 0;
            }
        }
        super(code, `${title}${errorStr}`);
        this._underlyingError = underlyingError;
    }
    get name() {
        return 'SpacesGenericError';
    }
    get underlyingError() {
        return this._underlyingError;
    }
    static wrapErrorIfNeeded(code, title, underlyingError) {
        if (underlyingError instanceof SpacesError || underlyingError instanceof _ccx_public_shared_asset_model_js__WEBPACK_IMPORTED_MODULE_0__[/* SAMError */ "q"]) {
            return underlyingError;
        }
        return new SpacesGenericError(code, title, underlyingError);
    }
}
class SpacesAssertionError extends SpacesError {
    constructor(title) {
        super('ASSERTION_ERROR', title);
    }
}
/**
 * Throws SpacesAssertionError when `assertedCondition` is false.
 * @param assertedCondition
 * @param message
 */
function assert(assertedCondition, message) {
    if (!assertedCondition) {
        throw new SpacesAssertionError(message);
    }
}
function isNetworkError(e) {
    const NETWORK_ERROR_CODES = [
        _constants__WEBPACK_IMPORTED_MODULE_1__[/* SAMErrorCode */ "B"].NETWORK_ERROR,
        _constants__WEBPACK_IMPORTED_MODULE_1__[/* SAMErrorCode */ "B"].NO_ACCESS_TOKEN,
    ];
    const errors = Array.isArray(e) ? e : [e];
    const errorCodes = errors.map(error => { var _a; return (_a = maybeKnownErrorCode(error)) !== null && _a !== void 0 ? _a : ''; });
    return errorCodes.some(code => NETWORK_ERROR_CODES.includes(code));
}
function maybeSamHttpError(e) {
    if (e instanceof _ccx_public_shared_asset_model_js__WEBPACK_IMPORTED_MODULE_0__[/* SAMHttpResponseError */ "s"]) {
        return e;
    }
}
function maybeSamError(e) {
    if (e instanceof _ccx_public_shared_asset_model_js__WEBPACK_IMPORTED_MODULE_0__[/* SAMError */ "q"]) {
        return e;
    }
}
function maybeSpacesError(e) {
    if (e instanceof SpacesError) {
        return e;
    }
}
function maybeKnownErrorCode(e) {
    var _a, _b, _c;
    return (_b = (_a = maybeSpacesError(e)) === null || _a === void 0 ? void 0 : _a.code) !== null && _b !== void 0 ? _b : (_c = maybeSamError(e)) === null || _c === void 0 ? void 0 : _c.code;
}
/**
 * Translates the ACPLModelErrorCode (SAM.cpp) to the SAM.js error code
 */
function normalizeSamError(e) {
    var _a;
    let code = (_a = maybeSamError(e)) === null || _a === void 0 ? void 0 : _a.code;
    if (!code) {
        code = ACPLModelErrorCodeToSAMErrorCode.get(e === null || e === void 0 ? void 0 : e.code);
    }
    return code;
}


/***/ }),

/***/ "R9tb":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("path", {
  d: "M35.293 19.292l-17-17A1 1 0 0 0 17.586 2H3a1 1 0 0 0-1 1v14.585a1 1 0 0 0 .293.708l17 17a1 1 0 0 0 1.414 0l14.586-14.586a1 1 0 0 0 0-1.415zM8 10.6A2.6 2.6 0 1 1 10.6 8 2.6 2.6 0 0 1 8 10.6z"
}));

/***/ }),

/***/ "RDmV":
/***/ (function(module, exports) {

module.exports = function (exec) {
  try {
    return {
      e: false,
      v: exec()
    };
  } catch (e) {
    return {
      e: true,
      v: e
    };
  }
};

/***/ }),

/***/ "RG/p":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("path", {
  d: "M30 17.5V30H6V6h12.5a.5.5 0 0 0 .5-.5v-3a.5.5 0 0 0-.5-.5H3a1 1 0 0 0-1 1v30a1 1 0 0 0 1 1h30a1 1 0 0 0 1-1V17.5a.5.5 0 0 0-.5-.5h-3a.5.5 0 0 0-.5.5z"
}), React.createElement("path", {
  d: "M23.54 2.853l3.389 3.389-9.546 9.546a.5.5 0 0 0 0 .707l2.117 2.122a.5.5 0 0 0 .707 0l9.546-9.546 3.389 3.389a.5.5 0 0 0 .858-.353V2H23.893a.5.5 0 0 0-.353.853z"
}));

/***/ }),

/***/ "RGcl":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var iaw_jsUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("KTUt");
/* harmony import */ var src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("cCFZ");
/* harmony import */ var start_StartIngestAdapter__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("TPr6");
/* harmony import */ var start_StartIngestRenderHandler__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("lKCB");
/* harmony import */ var start_StartIngestClickHandler__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("vEBq");
/* harmony import */ var start_StartIngestMiscHandler__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("3ATF");
/* harmony import */ var start_StartIngestErrorHandler__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("RIz2");
/* harmony import */ var src_applications__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("3UBC");
/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("2vnA");
/* harmony import */ var _ccx_public_ingest__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__("7eMN");
/* harmony import */ var _ccx_public_ingest__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_ccx_public_ingest__WEBPACK_IMPORTED_MODULE_9__);
/* harmony import */ var iaw_imsBridge__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__("Mqyo");
/* harmony import */ var start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__("Db/q");
/* harmony import */ var src_js_start_CommonUtils__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__("5ndN");
/* harmony import */ var src_components_start_constants__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__("/0Ih");
/* harmony import */ var _LoggerWrapper_Logger__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__("43WE");
/* harmony import */ var _ccx_ccx_firstmile_shared_src_common_Utils__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__("sdkb");
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/



/*
    Temporary for now until analytics are cleaned up.
    We either don't need the StartIngestAdapter or we need to remove the
    separate event handlers for misc/error/click/render and send events
    using postEvent directly (the better option). However, this is a bigger
    overhaul/change that we should delay til we have time after pre-release.
 */




////////










/**
 * Property key constants
 */
const PROPERTY_KEYS = start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_11__[/* default */ "c"].KEYS;
const osVersion = src_js_start_CommonUtils__WEBPACK_IMPORTED_MODULE_12__[/* UXPHelpers */ "a"].osVersion;
const osType = src_js_start_CommonUtils__WEBPACK_IMPORTED_MODULE_12__[/* UXPHelpers */ "a"].isWindows ? src_components_start_constants__WEBPACK_IMPORTED_MODULE_13__[/* default */ "k"].OS.windows : src_components_start_constants__WEBPACK_IMPORTED_MODULE_13__[/* default */ "k"].OS.mac;
let _enabled = false;
let _adapter;
let _ingest;
const _logger = _LoggerWrapper_Logger__WEBPACK_IMPORTED_MODULE_14__[/* default */ "a"].get('Analytics');
const _basePayloadData = {
    'source.name': 'CCX-Start',
    'source.version': window.appVersionNumber,
    'source.platform': osType,
    'source.os_version': osVersion,
    'consumer.platform': osType,
    'consumer.os_version': osVersion,
    'event.workflow': null,
    'event.category': PROPERTY_KEYS.CATEGORY_DESKTOP,
    'event.subcategory': null,
    'event.subtype': null,
    'event.value': null,
    'event.device_guid': iaw_jsUtil__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].getDeviceId(),
    'content.id': null,
    'content.name': null,
    'content.type': null,
    'content.category': null,
    'content.status': null,
    'content.action': null,
    'content.author': null,
    'env.com.name': PROPERTY_KEYS.ENV_COM_NAME,
    'env.com.version': window.appVersionNumber,
    'env.fw.name': null,
};
// since many things load asynchronously, some event actions can happen before
// the Ingest lib scripts have completed - therefore we pre-queue some events
// that get processed once the lib is ready
const _prequeuedEvents = [];
const _logEventsSubscriptions = {};
/**
 * Dependencies used by the Ingest.js library object.
 */
const INGESTLIB_DEPENDENCIES = {
    // uncomment the following lines if you want to see ingest events in your console
    // log: function(msg) {
    // 	_logger.log(msg);
    // },
    getAccessToken: function (callback) {
        // There is a bug in the ingest module where it can crash if not
        // given a valid token https://jira.corp.adobe.com/browse/IAW-4042
        // So we need this try catch here.
        try {
            callback(null, src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_1__["mainStore"].user.accessToken);
        }
        catch (e) {
            _logger.warn(`Ingest crashed with error ${e}`);
        }
    },
};
/**
 * Configure the parameters
 *
 * @param enabled 		{Boolean} to indicate if analytics are enabled
 * @param adapter 		{Object} Point product Ingest data adapter to use
 * @param mode          {String} indicating the server mode (prod, stage, or dev)
 */
async function init() {
    _adapter = new start_StartIngestAdapter__WEBPACK_IMPORTED_MODULE_2__[/* default */ "b"]();
    // Wait for the userID to be available. Only then we should request the
    // analytics enabled flag.
    _adapter.isEnabled = true;
    const mode = src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_1__["mainStore"].user.isStaging ? 'stage' : 'prod';
    // Ingest.js library configuration
    const options = _adapter.configurationOptions();
    const libOptions = {
        ENVIRONMENT: mode,
        ANALYTICS_API_KEY: options.API_KEY,
        ANALYTICS_X_PRODUCT: options.X_PRODUCT,
        ANALYTICS_PROJECT: options.PROJECT,
        ANALYTICS_USER_REGION: options.USER_REGION,
        ANALYTICS_INGEST_TYPE: options.INGEST_TYPE,
        ANALYTICS_MAX_QUEUED_EVENTS: 150,
        ANALYTICS_DEBOUNCE: 0,
        TIMESTAMP_PROPERTY_NAME: 'event.dts_end',
        ALLOW_NO_TOKEN: true,
    };
    // setup Ingest.js library
    _ingest = new _ccx_public_ingest__WEBPACK_IMPORTED_MODULE_9___default.a(INGESTLIB_DEPENDENCIES, libOptions);
    // Enable only when we have the user.
    await Object(mobx__WEBPACK_IMPORTED_MODULE_8__[/* when */ "I"])(() => src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_1__["mainStore"].user.isUserAvailable || src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_1__["mainStore"].user.isFRL);
    if (src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_1__["mainStore"].user.isFRL && !src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_1__["mainStore"].online) {
        return;
    }
    const enabled = await src_applications__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].isAnalyticsEnabled();
    _ingest.enable(enabled);
    _enabled = enabled && _adapter && _ingest;
    _logger.log('analytics.ingest: (' + mode + ') ' + (_enabled ? 'active' : 'disabled'));
    // use the service code from the store, or default to 'creativecloud' otherwise
    // do this in init() and not when we build the payload because we can make less calls to the mainStore this way
    _basePayloadData['user.service_code'] = src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_1__["mainStore"].user.serviceCode || 'creativecloud';
    if (_enabled) {
        // now handle any prequeued events
        _processPrequeuedEvents();
    }
}
/**
 * Update the analytics status in a delayed fashion giving time for the session GUID to update.
 * @param {Boolean} enabled Is the user analytics enabled at the product level
 * @param {string} sessionGUID New Session GUID to apply.
 */
function setEnabledDelayed(enabled, sessionGUID) {
    if (_ingest) {
        _enabled = enabled && _adapter;
        _ingest.enable(enabled);
        _processPrequeuedEvents(sessionGUID);
    }
}
/**
 * Create a clone of the Ingest base payload data.
 *
 * @param eventType 		optional {String} containing event type
 * @return A new object based off the preset payload data.
 */
function _createPayload(eventType) {
    const payload = JSON.parse(JSON.stringify(_basePayloadData));
    payload['event.guid'] = iaw_jsUtil__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].generateGUID();
    payload['event.type'] = eventType || null;
    payload['ccxp.hasAccessToken'] = !!src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_1__["mainStore"].user.accessToken; // will log to tell ingest if we have bad/null access token in logs
    payload['source.os_version'] = src_applications__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].osVersion;
    payload['consumer.os_version'] = src_applications__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].osVersion;
    return payload;
}
/**
 * Build the passthrough analytics string for Adobe service URL's.
 *
 * @return {String} containing the query arguments.
 */
function getAnalyticsQueryString() {
    return _adapter ? _adapter.getAnalyticsQueryString() : '';
}
/**
 * Build the passthrough analytics string for Adobe service URL's.
 *
 * @return {String} containing the query arguments.
 */
function getTrackingParamsString(params) {
    return _adapter ? _adapter.getTrackingParamsString(params) : '';
}
/**
 * Compose the passed URL for proper analytics logging - this means
 * adding in analytic query params and moving any deep links to the end.
 * This is primarily for Adobe Learn.
 *
 * @param url	 {String} containing the original URL to add analytic params into
 * @return {String} containing the URL properly ordered with analytics query arguments.
 */
function composeURLWithAnalyticsQueryString(url) {
    let composedURL = url;
    if (composedURL) {
        // check for deep links
        const deepLinkIndex = composedURL.indexOf('#');
        let deepLink = '';
        if (deepLinkIndex >= 0) {
            deepLink = composedURL.substr(deepLinkIndex);
            composedURL = composedURL.substr(0, deepLinkIndex);
        }
        // check for existing query which it could have
        const querySep = composedURL.indexOf('?') < 0 ? '?' : '&';
        const analyticsQuery = getAnalyticsQueryString();
        composedURL += querySep + analyticsQuery + deepLink;
    }
    return composedURL;
}
function completeEventPayload(payload, basePayload) {
    // update base payload properties - dont use iaw.jsUtil.assign here
    // as it would overwrite properties we dont want
    for (const prop in basePayload) {
        if (!payload[prop] && basePayload[prop]) {
            payload[prop] = basePayload[prop];
        }
    }
    return payload;
}
/**
 * Post the analytics call to the Ingest data server.
 *
 * @param payload           {Object} representing payload data to send
 */
function postEvent(payload) {
    payload = payload || {};
    if (_ingest && _enabled) {
        // need these events here as some values may not be ready until _ingest is.
        const base = _createPayload();
        const defaultStartTime = new Date();
        payload['event.offline'] = !src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_1__["mainStore"].online;
        payload['source.client_id'] = iaw_imsBridge__WEBPACK_IMPORTED_MODULE_10__[/* default */ "c"].clientId;
        payload['consumer.name'] = src_applications__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].id;
        payload['consumer.version'] = src_applications__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].version;
        payload['user.service_level'] = 'CS_LVL' + src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_1__["mainStore"].user.LegacyProfile.licenseType;
        payload['event.context_guid'] = src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_1__["mainStore"].prefs.sessionGUID;
        payload['event.user_guid'] = src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_1__["mainStore"].user.UserProfile.userId;
        payload['event.user_agent'] = navigator.userAgent;
        payload['event.language'] = src_applications__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].language;
        payload['event.session_guid'] = src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_1__["mainStore"].radarSessionGUID;
        payload['event.dts_start'] = payload['event.dts_start'] || defaultStartTime.toISOString();
        payload = completeEventPayload(payload, base);
        // This case is only necessary if analytics are enabled but required payload values are missing
        if (payload['event.user_guid'] || payload['event.device_guid']) {
            _ingest.postEvent(payload);
        }
    }
    else {
        _prequeuedEvents.push(payload);
    }
}
/**
 * If the Ingest library is not loaded/configured prior to calling a postEvent,
 * then the event gets pre-queued. So once the library is ready then we process
 * all the events.
 */
function _processPrequeuedEvents(sessionGUID) {
    _prequeuedEvents.forEach(payload => {
        // Add session guid if it is to be updated by force.
        if (sessionGUID) {
            payload['event.context_guid'] = sessionGUID;
        }
        payload = completeEventPayload(payload, _basePayloadData);
        postEvent(payload);
    });
}
/**
 * Log a visual element drawn event.
 *
 * @param eventID			{String} event identifier
 * @param eventData			{Object} optional event data parameters
 * @return {String} containing the query arguments.
 */
function logRenderedEvent(eventID, eventData, { forceLogEventIfHomeScreenHidden = false } = {}) {
    if (!forceLogEventIfHomeScreenHidden && !src_applications__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].isHomeScreenVisible) {
        return '';
    }
    const payload = _createPayload('render');
    if (_adapter) {
        _adapter.processRenderEvent(eventID, eventData, payload);
        if (payload) {
            postEvent(payload);
        }
        return payload;
    }
    else {
        Object(start_StartIngestRenderHandler__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"])(eventID, eventData, payload);
        _prequeuedEvents.push(payload);
    }
}
/**
 * Subscribes a component to the logRenderedEvent function whenever HomeScreen becomes visible (i.e. when the user returns from Workspace view)
 * It returns a GUID that should be used to unsubscribe the component when it unmounts
 *
 * @param renderEventParamsFunction a function that should return an array with the 2 params `eventID` and `eventData?` that `logRenderedEvent` should be called with
 * @returns the GUID of this subscription - this should be used to unsubscribe the component on unmount
 */
function subscribeLogRenderedEvent(renderEventParamsFunction) {
    const newEventGUID = iaw_jsUtil__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].generateGUID();
    _logEventsSubscriptions[newEventGUID] = returnFromWorkspace => {
        const renderEventParams = renderEventParamsFunction();
        // if we don't have enough params exit the function
        if (!(renderEventParams === null || renderEventParams === void 0 ? void 0 : renderEventParams.length))
            return;
        // if we have less than 2 params, add a second `{}` param as a stand-in for eventData
        if (renderEventParams.length === 1) {
            renderEventParams.push({});
        }
        // renderEventParams will have 2 params as we made sure above
        // @ts-ignore
        logRenderedEvent(...renderEventParams, { returnFromWorkspace });
    };
    return newEventGUID;
}
/**
 * Unsubscribes a component based on the passed `eventGUID`. Should be called when a component unmounts
 *
 * @param eventGUID the GUID of the subscription that should be removed
 */
function unsubscribeLogRenderedEvent(eventGUID) {
    if (!eventGUID || !_logEventsSubscriptions[eventGUID]) {
        return;
    }
    delete _logEventsSubscriptions[eventGUID];
}
/**
 * Calls the renderedEvents that were subscribed to be called when HS becomes visible
 *
 * @param isInitialCall if this is the call that initializes host.isHomeScreenVisible
 */
function logSubscribedRenderedEvents(isInitialCall = false) {
    Object.values(_logEventsSubscriptions).forEach(logEvent => {
        // The `logRenderedEvent` will not log if the `host.isHomeScreenVisible` is false
        // Since we consider `host.isHomeScreenVisible` false until we get the right answer from the Host
        // this means that the first renderEvent call that the components will make the first time the app start won't work
        // and will be handled by their subscriptions
        // If this isInitialCall, this means that the answer we got from the host app is that HomeScreen was visible from the begining
        // so we are calling the subscription as regular render-events, not as returns from workspace
        Object(_ccx_ccx_firstmile_shared_src_common_Utils__WEBPACK_IMPORTED_MODULE_15__[/* callIfFunction */ "a"])(logEvent, !isInitialCall);
    });
}
/**
 * Log a user clicked event.
 *
 * @param eventID			{String} event identifier
 * @param eventData			{Object} optional event data parameters
 * @return {String} containing the query arguments.
 */
function logClickedEvent(eventID, eventData) {
    const payload = _createPayload('click');
    if (_adapter) {
        _adapter.processClickEvent(eventID, eventData, payload);
        if (payload) {
            postEvent(payload);
        }
        return payload;
    }
    else {
        Object(start_StartIngestClickHandler__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"])(eventID, eventData, payload);
        _prequeuedEvents.push(payload);
    }
}
/**
 * Log a drop event.
 *
 * @param eventID			{String} event identifier
 * @param eventData			{Object} optional event data parameters
 * @return {String} containing the query arguments.
 */
function logDropEvent(eventID, eventData) {
    const payload = _createPayload('drop');
    if (_adapter) {
        _adapter.processMiscellaneousEvent(eventID, eventData, payload);
        if (payload) {
            postEvent(payload);
        }
    }
    else {
        Object(start_StartIngestMiscHandler__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"])(eventID, eventData, payload);
        _prequeuedEvents.push(payload);
    }
}
/**
 * Log a miscellaneous event.
 *
 * @param eventID			{String} event identifier
 * @param eventData			{Object} optional event data parameters
 * @return {String} containing the query arguments.
 */
function logMiscellaneousEvent(eventID, eventData) {
    const payload = _createPayload();
    if (_adapter) {
        _adapter.processMiscellaneousEvent(eventID, eventData, payload);
        if (payload) {
            postEvent(payload);
        }
    }
    else {
        Object(start_StartIngestMiscHandler__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"])(eventID, eventData, payload);
        _prequeuedEvents.push(payload);
    }
}
function logEvent(componentName, analyticsData, type) {
    switch (type) {
        case 'render':
            logRenderedEvent(componentName, analyticsData);
            break;
        case 'error':
            logErrorEvent(componentName, analyticsData);
            break;
        default:
            logClickedEvent(componentName, analyticsData);
            if (type === 'click') {
                src_applications__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].logCustomAnalytics(componentName + '-click', analyticsData);
            }
            break;
    }
}
/**
 * Log a success event.
 *
 * @param eventID			{String} event identifier
 * @param eventData			{Object} optional event data parameters
 * @return {String} containing the query arguments.
 */
function logSuccessEvent(eventID, eventData) {
    const payload = _createPayload('success');
    if (_adapter) {
        _adapter.processMiscellaneousEvent(eventID, eventData, payload);
        if (payload) {
            postEvent(payload);
        }
    }
    else {
        Object(start_StartIngestMiscHandler__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"])(eventID, eventData, payload);
        _prequeuedEvents.push(payload);
    }
}
/**
 * Log an error event.
 *
 * @param eventID			{String} event identifier
 * @param eventData			{Object} optional event data parameters
 * @return {String} containing the query arguments.
 */
function logErrorEvent(eventID, eventData) {
    const payload = _createPayload('error');
    if (_adapter) {
        _adapter.processErrorEvent(eventID, eventData, payload);
        if (payload) {
            postEvent(payload);
        }
    }
    else {
        Object(start_StartIngestErrorHandler__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"])(eventID, eventData, payload);
        _prequeuedEvents.push(payload);
    }
}
/**
 * Public exports
 */
/* harmony default export */ __webpack_exports__["a"] = ({
    enabled: _enabled,
    /**
     * Configure the parameters
     *
     * @param enabled 		{Boolean} to indicate if analytics are enabled
     */
    init: init,
    /**
     * Build the passthrough analytics string for Adobe service URL's.
     *
     * @return {String} containing the query arguments.
     */
    getAnalyticsQueryString: getAnalyticsQueryString,
    /**
     * Build the passthrough analytics string for Adobe service URL's.
     *
     * @return {String} containing the query arguments.
     */
    getTrackingParamsString: getTrackingParamsString,
    /**
     * Compose the passed URL for proper analytics logging - this means
     * adding in analytic query params and moving any deep links to the end.
     * This is primarily for Adobe Learn.
     *
     * @param url	 {String} containing the original URL to add analytic params into
     * @return {String} containing the URL properly ordered with analytics query arguments.
     */
    composeURLWithAnalyticsQueryString: composeURLWithAnalyticsQueryString,
    /**
     * Post the analytics call to the Ingest data server.
     * Will prequeue events if ingest is not yet initialized.
     *
     * @param payload           {Object} representing payload data to send
     */
    postEvent: postEvent,
    /**
     * Log render, click, error methods based on the @param type
     *
     * @param componentName		Componentent to log the event for
     * @param analyticsData		{Object} Containing both event data parameters and component data
     * @param type 				{String} Log type
     */
    logEvent: logEvent,
    /**
     * Log a user clicked event.
     *
     * @param eventID			{String} event identifier
     * @param eventData			{Object} optional event data parameters
     * @return {String} containing the query arguments.
     */
    logClickedEvent: logClickedEvent,
    /**
     * Log a visual element drawn event.
     *
     * @param eventID			{String} event identifier
     * @param eventData			{Object} optional event data parameters
     * @return {String} containing the query arguments.
     */
    logRenderedEvent: logRenderedEvent,
    /**
     * Log a miscellaneous event.
     *
     * @param eventID			{String} event identifier
     * @param eventData			{Object} optional event data parameters
     */
    logMiscellaneousEvent: logMiscellaneousEvent,
    /**
     * Log a success event.
     *
     * @param eventID			{String} event identifier
     * @param eventData			{Object} optional event data parameters
     */
    logSuccessEvent: logSuccessEvent,
    /**
     * Log an error event.
     *
     * @param eventID			{String} event identifier
     * @param eventData			{Object} optional event data parameters
     */
    logErrorEvent: logErrorEvent,
    /**
     * Log drop event.
     *
     * @param eventID			{String} event identifier
     * @param eventData			{Object} optional event data parameters
     */
    logDropEvent: logDropEvent,
    /**
     * Update the analytics status in a delayed fashion giving time for the session GUID to update.
     *
     * @param {Boolean} enabled Is the user analytics enabled at the product level
     */
    setEnabledDelayed: setEnabledDelayed,
    /**
     * Expose the ingest utils here for a single import when logging in files.
     * Contains the payload keys and other functionalitiy for constructing log
     * payloads.
     */
    ingestUtil: start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_11__[/* default */ "c"],
    /**
     * Subscribes a component to the logRenderedEvent function whenever HomeScreen becomes visible (i.e. when the user returns from Workspace view)
     * It returns a GUID that should be used to unsubscribe the component when it unmounts
     *
     * @param renderEventParamsFunction a function that should return an array with the 2 params `eventID` and `eventData?` that `logRenderedEvent` should be called with
     * @returns the GUID of this subscription - this should be used to unsubscribe the component on unmount
     */
    subscribeLogRenderedEvent: subscribeLogRenderedEvent,
    /**
     * Unsubscribes a component based on the passed `eventGUID`. Should be called when a component unmounts
     *
     * @param eventGUID the GUID of the subscription that should be removed
     */
    unsubscribeLogRenderedEvent: unsubscribeLogRenderedEvent,
    /**
     * Calls the renderedEvents that were subscribed to be called when HS becomes visible
     *
     * @param isInitialCall if this is the call that initializes host.isHomeScreenVisible
     */
    logSubscribedRenderedEvents: logSubscribedRenderedEvents,
});


/***/ }),

/***/ "RHgb":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
// TODO: get SAM to provide a mock/dummy ACPLAsset class for cases where SAM isn't available
class ACPLAssetPlaceholder {
    constructor({ repoPath = '', name = repoPath.split('/').pop(), extension = name.split('.').pop(), assetType, isAvailableOffline = false, isArtifact = false, isFolder = false, isFile = false, isComposite = false, created = Date.now(), modified = Date.now(), shared = 0, mediaType = '', sizeInBytes = 0, localID = '', cloudID = '', assetRefString = '', isNameDCTitle = false, isUserPinned = false, hasOwnership = false, downloadStatus = undefined, uploadStatus = undefined, requestCount = undefined, localSnapshotPath = '', syncStatus = undefined, syncSuspensionReason = undefined, children = undefined, thumbnail = undefined, preview = undefined, isSharedWithYouAsset = false, }) {
        Object.assign(this, {
            repoPath,
            name,
            extension,
            assetType,
            isAvailableOffline,
            isArtifact,
            isFolder,
            isFile,
            isComposite,
            created,
            modified,
            shared,
            mediaType,
            sizeInBytes,
            localID,
            cloudID,
            assetRefString,
            isNameDCTitle,
            isUserPinned,
            hasOwnership,
            downloadStatus,
            uploadStatus,
            requestCount,
            localSnapshotPath,
            syncStatus,
            syncSuspensionReason,
            children,
            thumbnail,
            preview,
            isSharedWithYouAsset,
        });
    }
    /* eslint-disable class-methods-use-this */
    async archive() {
        return undefined;
    }
    async commitDCXChanges() {
        return undefined;
    }
    async copy() {
        return undefined;
    }
    async createComposite() {
        return undefined;
    }
    async createFolder() {
        return undefined;
    }
    downloadComposite() {
        return Promise.resolve(true);
    }
    async duplicate() {
        return undefined;
    }
    async getParentFolder() {
        return undefined;
    }
    async hasUncommittedChanges() {
        return false;
    }
    async move() {
        return undefined;
    }
    async permanentlyDelete() {
        return undefined;
    }
    pin() {
        return Promise.resolve();
    }
    async purge() {
        return undefined;
    }
    async rename() {
        return undefined;
    }
    async resolveConflict(resolution) {
        return undefined;
    }
    restore() {
        return undefined;
    }
    unpin() {
        return undefined;
    }
    copyIntoSnapshot(snapshotPath) {
        return undefined;
    }
    importAssetFromSnapshot(snapshotPath, preferredPath) {
        return undefined;
    }
    metadata() {
        return undefined;
    }
    ownerId() {
        return undefined;
    }
    getSpace() {
        return undefined;
    }
    getArtifactSessionContext() {
        return null;
    }
}
/* harmony default export */ __webpack_exports__["a"] = (ACPLAssetPlaceholder);


/***/ }),

/***/ "RIVm":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("Cwp5"),
      24: __webpack_require__("01TH")
    }
  }));
};

WrappedIcon.displayName = 'DownloadFromCloud';
exports.default = WrappedIcon;

/***/ }),

/***/ "RIqP":
/***/ (function(module, exports, __webpack_require__) {

var arrayWithoutHoles = __webpack_require__("Ijbi");

var iterableToArray = __webpack_require__("EbDI");

var unsupportedIterableToArray = __webpack_require__("ZhPi");

var nonIterableSpread = __webpack_require__("Bnag");

function _toConsumableArray(arr) {
  return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();
}

module.exports = _toConsumableArray;
module.exports["default"] = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "RIxR":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ASSETS_WEB; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return cloudDocsFaqUrl; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return cloudDocsFaqGoUrl; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return knownIssuesUrl; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return localizedGoUrl; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "i", function() { return openExternalLink; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return assetsWebUrl; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return coreSyncTroubleshootUrl; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return cloudQuotaUrl; });
/* harmony import */ var _intl_adobe_locales__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("zSDY");
/* harmony import */ var _intl_adobe_locales__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_intl_adobe_locales__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("+Ots");
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2019 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/


const HELPX = 'https://helpx.adobe.com';
const GOURL = 'https://www.adobe.com/go';
const ASSETS_WEB = {
    stage: 'https://assets-stage.adobecc.com',
    prod: 'https://assets.adobe.com',
};
function cloudDocsFaqUrl(locale, productName) {
    const product = productName.toLowerCase();
    const localizedURL = Object(_intl_adobe_locales__WEBPACK_IMPORTED_MODULE_0__["getLocalizedURL"])(`${HELPX}/${product}/using/cloud-documents-faq.html`, locale);
    return localizedURL;
}
function cloudDocsFaqGoUrl(goUrlJumpToken) {
    return `${GOURL}/${goUrlJumpToken}`;
}
function knownIssuesUrl(locale, hostProductData) {
    const { knownIssuesLink, productName } = hostProductData;
    if (knownIssuesLink) {
        if (knownIssuesLink.substring(0, GOURL.length) === GOURL) {
            return knownIssuesLink;
        }
        return Object(_intl_adobe_locales__WEBPACK_IMPORTED_MODULE_0__["getLocalizedURL"])(knownIssuesLink, locale);
    }
    const product = productName.toLowerCase();
    const localizedURL = Object(_intl_adobe_locales__WEBPACK_IMPORTED_MODULE_0__["getLocalizedURL"])(`${HELPX}/${product}/kb/known-issues.html#Clouddocuments`, locale);
    return localizedURL;
}
function localizedGoUrl(baseToken, locale, queryParams) {
    // Not using URL() because UXP didn't fully implement. :/
    let url = `${GOURL}/${baseToken}_${locale}`;
    if (queryParams) {
        // eslint-disable-next-line prefer-template
        url +=
            '?' +
                [...Object.entries(queryParams)]
                    .map(([param, val]) => `${param}=${encodeURIComponent(val)}`)
                    .join('&');
    }
    return url;
}
function openExternalLink(url, callbacks) {
    if (callbacks.onOpenExternalLink) {
        callbacks.onOpenExternalLink(url);
    }
    else if (_utils__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].usingUXP()) {
        // @ts-ignore
        window.require && window.require('uxp').shell.openExternal(url);
    }
    else {
        window.open(url, '_blank');
    }
}
function assetsWebUrl(environment, viewAsset) {
    let suffix = '';
    if (viewAsset) {
        const { cloudURI, isFolder, locale } = viewAsset;
        const id = cloudURI.substring(cloudURI.lastIndexOf('/') + 1);
        suffix = `/id/${id}?view=${isFolder ? 'difolder' : 'difile'}&locale=${locale}`;
    }
    return `${ASSETS_WEB[environment]}${suffix}`;
}
function coreSyncTroubleshootUrl(locale) {
    return localizedGoUrl('help_restart-cloud-syncing', locale);
}
function cloudQuotaUrl(locale) {
    return Object(_intl_adobe_locales__WEBPACK_IMPORTED_MODULE_0__["getLocalizedURL"])(`${HELPX}/creative-cloud/kb/file-storage-quota.html`, locale);
}


/***/ }),

/***/ "RIz2":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var app_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("/0Ih");
/* harmony import */ var iaw_jsUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("KTUt");
/* harmony import */ var start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("Db/q");
/* harmony import */ var _Sophia__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("nm0P");
/* harmony import */ var _LoggerWrapper_Logger__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("43WE");
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/





const _logger = _LoggerWrapper_Logger__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].get('StartIngestErrorHandler');
/**
 * Property key constants
 */
const PROPERTY_KEYS = start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_2__[/* default */ "c"].KEYS;
/**
 * Setup the Start related error events.
 *
 * @param eventID 				{String} containing the event identifier
 * @param eventData				{Object} or {String} data associated with the event
 * @param payload 				{Object} cloned payload to fill out
 */
/* harmony default export */ __webpack_exports__["a"] = (function (eventID, eventData, payload) {
    var _a, _b, _c, _d, _e, _f, _g, _h, _j;
    if (!eventID) {
        payload = null;
        return;
    }
    // handle the event
    switch (eventID) {
        case 'defaultLayout':
            // Home or Learn layouts could throw errors in components. Separate the workflows for better logging
            payload['event.workflow'] =
                eventData.route === 'home' ? PROPERTY_KEYS.WORKFLOW_DEFAULT : PROPERTY_KEYS.WORKFLOW_LEARN;
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_DEFAULT_LAYOUT;
            payload['event.subtype'] = eventData.subtype
                ? eventData.subtype.toLowerCase()
                : PROPERTY_KEYS.SUBTYPE_FALLBACK;
            payload['content.status'] = PROPERTY_KEYS.STATUS_LOCAL;
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_2__[/* default */ "c"].parseError(payload, eventData.error);
            break;
        case start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_2__[/* INGEST_EVENT_IDS */ "a"].CUSTOM_CONTENT_CONFIGURATION:
            payload['event.subtype'] = eventData.subtype;
            eventData.value && (payload['event.value'] = eventData.value);
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_HOME;
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_SUGGESTIONS;
            payload['ui.view_type'] = eventData.stage + ':' + eventData.layout;
            payload['ccx.signals'] = eventData.recommendationsJson;
            eventData.contentId && (payload['content.id'] = eventData.contentId);
            eventData.contentName && (payload['content.name'] = eventData.contentName);
            eventData.contentType && (payload['content.type'] = eventData.contentType);
            eventData.contentAuthor && (payload['content.author'] = eventData.contentAuthor);
            eventData.ctaData && (payload['content.action'] = eventData.ctaData);
            eventData.cardAnalyticsData &&
                start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_2__[/* default */ "c"].addDynamicRecommendationsModelData(payload, eventData.cardAnalyticsData);
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_2__[/* default */ "c"].addSophiaAnalytics(payload, eventData.containerAnalyticsParams);
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_2__[/* default */ "c"].mapStageConditions(payload, eventData.stage);
            payload['exp.surface_id'] = app_constants__WEBPACK_IMPORTED_MODULE_0__[/* default */ "k"].SURFACES.HOME;
            payload['exp.response_guid'] = (_a = _Sophia__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].data.analyticsData) === null || _a === void 0 ? void 0 : _a.responseGUID;
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_2__[/* default */ "c"].parseError(payload, eventData.error);
            break;
        case start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_2__[/* INGEST_EVENT_IDS */ "a"].CUSTOM_CONTENT_CLICK:
        case start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_2__[/* INGEST_EVENT_IDS */ "a"].RECOMMENDATION_FEEDBACK:
            payload['event.subtype'] = eventData.subtype;
            eventData.value && (payload['event.value'] = eventData.value);
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_HOME;
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_SUGGESTIONS;
            payload['ui.view_type'] = eventData.stage + ':' + eventData.layout;
            payload['ccx.signals'] = eventData.recommendationsJson;
            eventData.contentId && (payload['content.id'] = eventData.contentId);
            eventData.contentName && (payload['content.name'] = eventData.contentName);
            eventData.contentType && (payload['content.type'] = eventData.contentType);
            eventData.contentAuthor && (payload['content.author'] = eventData.contentAuthor);
            eventData.ctaData && (payload['content.action'] = eventData.ctaData);
            eventData.cardAnalyticsData &&
                start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_2__[/* default */ "c"].addDynamicRecommendationsModelData(payload, eventData.cardAnalyticsData);
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_2__[/* default */ "c"].addSophiaAnalytics(payload, eventData.containerAnalyticsParams);
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_2__[/* default */ "c"].mapStageConditions(payload, eventData.stage);
            payload['exp.surface_id'] = app_constants__WEBPACK_IMPORTED_MODULE_0__[/* default */ "k"].SURFACES.HOME;
            payload['exp.response_guid'] = (_b = _Sophia__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].data.analyticsData) === null || _b === void 0 ? void 0 : _b.responseGUID;
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_2__[/* default */ "c"].parseError(payload, eventData.error);
            break;
        case 'initialize':
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_INITIALIZE;
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_INIT;
            payload['event.subtype'] = PROPERTY_KEYS.SUBTYPE_SYSTEM;
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_2__[/* default */ "c"].parseError(payload, eventData.error);
            break;
        case 'neuralFilterRequest':
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_INITIALIZE;
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_NEURAL_FILTER;
            payload['event.subtype'] = PROPERTY_KEYS.SUBTYPE_REQUEST;
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_2__[/* default */ "c"].parseError(payload, eventData.error);
            break;
        case 'neuralFilterContentFailure':
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_WHATS_NEW;
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_NEURAL_FILTER;
            payload['event.subtype'] = PROPERTY_KEYS.SUBTYPE_CONTENT_FAILURE;
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_2__[/* default */ "c"].parseError(payload, eventData.error);
            break;
        case 'learnTab':
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_LEARN;
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_LEARN_SIDEBAR;
            payload['event.subtype'] = PROPERTY_KEYS.SUBTYPE_NO_LEARN_TAB;
            payload['content.size'] = eventData.totalWebTutorials;
            payload['content.type'] = PROPERTY_KEYS.CONTENT_TYPE_WEB;
            payload['exp.response_guid'] = eventData.responseGUID;
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_2__[/* default */ "c"].parseError(payload, eventData.error);
            break;
        case 'toast':
            const guid = (_d = (_c = _Sophia__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].data) === null || _c === void 0 ? void 0 : _c.analyticsData) === null || _d === void 0 ? void 0 : _d.responseGUID;
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_TOAST;
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_TOAST;
            payload['event.subtype'] = PROPERTY_KEYS.SUBTYPE_TOAST;
            payload['content.status'] = PROPERTY_KEYS.STATUS_LOCAL;
            payload['exp.surface_id'] = app_constants__WEBPACK_IMPORTED_MODULE_0__[/* default */ "k"].SURFACES.TOAST;
            ((eventData === null || eventData === void 0 ? void 0 : eventData.ctaURL) || eventData.ctaAction) && (payload['content.action'] = (eventData === null || eventData === void 0 ? void 0 : eventData.ctaURL) || eventData.ctaAction);
            (eventData === null || eventData === void 0 ? void 0 : eventData.componentName) && (payload['content.ctaText'] = eventData === null || eventData === void 0 ? void 0 : eventData.componentName);
            ((_e = eventData === null || eventData === void 0 ? void 0 : eventData.fieldData) === null || _e === void 0 ? void 0 : _e.toastName) && (payload['content.id'] = (_f = eventData === null || eventData === void 0 ? void 0 : eventData.fieldData) === null || _f === void 0 ? void 0 : _f.toastName);
            (eventData === null || eventData === void 0 ? void 0 : eventData.componentName) && (payload['content.name'] = eventData === null || eventData === void 0 ? void 0 : eventData.componentName);
            ((eventData === null || eventData === void 0 ? void 0 : eventData.ctaData) || (eventData === null || eventData === void 0 ? void 0 : eventData.ctaAction)) && (payload['content.type'] = (eventData === null || eventData === void 0 ? void 0 : eventData.ctaData) ? eventData === null || eventData === void 0 ? void 0 : eventData.ctaData.deepLinkType : eventData === null || eventData === void 0 ? void 0 : eventData.ctaAction);
            (eventData === null || eventData === void 0 ? void 0 : eventData._path) && (payload['event.value'] = eventData === null || eventData === void 0 ? void 0 : eventData._path);
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_2__[/* default */ "c"].addSophiaAnalytics(payload, eventData.containerAnalyticsParams);
            guid && (payload['exp.response_guid'] = guid);
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_2__[/* default */ "c"].parseError(payload, eventData.error);
            break;
        case 'sophia':
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_INITIALIZE;
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_SOPHIA;
            payload['event.subtype'] = PROPERTY_KEYS.SUBTYPE_NETWORK;
            eventData.message && (payload['event.value'] = eventData.message);
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_2__[/* default */ "c"].parseError(payload, eventData.error);
            break;
        case 'learn':
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_INITIALIZE;
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_LEARN_SIDEBAR;
            payload['event.subtype'] = PROPERTY_KEYS.SUBTYPE_NETWORK;
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_2__[/* default */ "c"].parseError(payload, eventData.error);
            break;
        case 'process-fetch':
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_INITIALIZE;
            payload['event.subcategory'] = eventData.subcategory || null;
            payload['event.subtype'] = PROPERTY_KEYS.SUBTYPE_NETWORK;
            payload['content.status'] = eventData.cachedData ? PROPERTY_KEYS.STATUS_CACHED : PROPERTY_KEYS.STATUS_LOCAL;
            payload['event.value'] = eventData.message;
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_2__[/* default */ "c"].parseError(payload, eventData.error);
            break;
        case 'cache-fetch':
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_INITIALIZE;
            payload['event.subcategory'] = eventData.subcategory || null;
            payload['event.subtype'] = PROPERTY_KEYS.SUBTYPE_CCXP_FAILURE;
            payload['content.status'] = eventData.cachedData ? PROPERTY_KEYS.STATUS_CACHED : PROPERTY_KEYS.STATUS_LOCAL;
            payload['event.value'] = eventData.message;
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_2__[/* default */ "c"].parseError(payload, eventData.error);
            break;
        case 'localstorage-fetch':
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_INITIALIZE;
            payload['event.subcategory'] = eventData.subcategory || null;
            payload['event.subtype'] = PROPERTY_KEYS.SUBTYPE_LOCAL_FAILURE;
            payload['content.status'] = PROPERTY_KEYS.STATUS_CACHED; // data is always attempted from localstorage
            payload['event.value'] = eventData.message;
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_2__[/* default */ "c"].parseError(payload, eventData.error);
            break;
        case 'ngl-timeout':
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_NGL;
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_NGL;
            payload['event.subtype'] = eventData.subtype || null;
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_2__[/* default */ "c"].parseError(payload, eventData.error);
            break;
        case 'whatsNew':
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_WHATS_NEW;
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_WHATS_NEW;
            payload['event.subtype'] = eventData.subtype;
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_2__[/* default */ "c"].parseError(payload, eventData.error);
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_2__[/* default */ "c"].addSophiaAnalytics(payload, eventData.containerAnalyticsParams);
            break;
        case 'UserIntentDialog':
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_USER_INTENT_DIALOG;
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_USER_INTENT_DIALOG;
            payload['event.subtype'] = eventData.subtype;
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_2__[/* default */ "c"].parseError(payload, eventData.error);
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_2__[/* default */ "c"].addSophiaAnalytics(payload, eventData.containerAnalyticsParams);
            payload['exp.surface_id'] = app_constants__WEBPACK_IMPORTED_MODULE_0__[/* default */ "k"].SURFACES.TUTORIALS;
            break;
        case 'nujToutDownload':
            payload['event.workflow'] = iaw_jsUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].capitalize(eventData.workflow) || PROPERTY_KEYS.WORKFLOW_HOME;
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_CHECKLIST_ITEM;
            payload['event.subtype'] = eventData.subtype || PROPERTY_KEYS.SUBTYPE_CHECKLIST;
            payload['ui.view_type'] = eventData.stage + ':' + eventData.layout;
            payload['content.id'] = eventData.ctaData && eventData.ctaData.assetId;
            payload['content.name'] = eventData.ctaData && eventData.ctaData.filename;
            payload['content.type'] = start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_2__[/* default */ "c"].parseClickAction(eventData.ctaEvent || eventData.ctaAction);
            payload['content.action'] = eventData.ctaURL;
            payload['content.status'] =
                eventData.workflow && eventData.workflow === PROPERTY_KEYS.WORKFLOW_DEFAULT
                    ? PROPERTY_KEYS.STATUS_LOCAL
                    : PROPERTY_KEYS.STATUS_CACHED;
            payload['ccx.signals'] = start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_2__[/* default */ "c"].parseUserSignals(eventData);
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_2__[/* default */ "c"].parseError(payload, eventData.error);
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_2__[/* default */ "c"].addSophiaAnalytics(payload, eventData.containerAnalyticsParams);
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_2__[/* default */ "c"].mapStageConditions(payload, eventData.stage);
            break;
        /* This is not currently called, however we may still need the analytic. */
        case 'nujUserIntentFailure':
            payload['event.workflow'] = iaw_jsUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].capitalize(eventData.workflow) || PROPERTY_KEYS.WORKFLOW_HOME;
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_CHECKLIST;
            payload['event.subtype'] = eventData.subtype || PROPERTY_KEYS.SUBTYPE_CHECKLIST;
            payload['ui.view_type'] = eventData.stage + ':' + eventData.layout;
            payload['content.status'] =
                eventData.workflow && eventData.workflow === PROPERTY_KEYS.WORKFLOW_DEFAULT
                    ? PROPERTY_KEYS.STATUS_LOCAL
                    : PROPERTY_KEYS.STATUS_CACHED;
            payload['ccx.signals'] = start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_2__[/* default */ "c"].parseUserSignals(eventData);
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_2__[/* default */ "c"].parseError(payload, eventData.error);
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_2__[/* default */ "c"].addSophiaAnalytics(payload, eventData.containerAnalyticsParams);
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_2__[/* default */ "c"].mapStageConditions(payload, eventData.stage);
            break;
        case 'avatar':
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_INITIALIZE;
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_AVATAR;
            payload['event.subtype'] = PROPERTY_KEYS.SUBTYPE_NETWORK;
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_2__[/* default */ "c"].parseError(payload, eventData.error);
            break;
        case 'presets-data-invalid':
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_HOME;
            payload['event.subcategory'] = eventData.subcategory || PROPERTY_KEYS.SUBCATEGORY_PRESETS_DROPDOWN;
            payload['event.subtype'] = eventData.subtype || PROPERTY_KEYS.SUBTYPE_PRESETS_DROPDOWN;
            payload['content.status'] = eventData.cachedData ? PROPERTY_KEYS.STATUS_CACHED : PROPERTY_KEYS.STATUS_LOCAL;
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_2__[/* default */ "c"].parseError(payload, eventData.error);
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_2__[/* default */ "c"].addSophiaAnalytics(payload, eventData.containerAnalyticsParams);
            break;
        case 'videoLightbox':
            payload['event.workflow'] = iaw_jsUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].capitalize(eventData.workflow);
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_VIDEO;
            payload['event.subtype'] = PROPERTY_KEYS.SUBTYPE_LIGHTBOX;
            payload['ui.view_type'] = eventData.stage + ':' + eventData.layout;
            payload['content.status'] =
                eventData.workflow && eventData.workflow === PROPERTY_KEYS.WORKFLOW_DEFAULT
                    ? PROPERTY_KEYS.STATUS_LOCAL
                    : PROPERTY_KEYS.STATUS_CACHED;
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_2__[/* default */ "c"].addSophiaAnalytics(payload, eventData.containerAnalyticsParams);
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_2__[/* default */ "c"].mapStageConditions(payload, eventData.stage);
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_2__[/* default */ "c"].appendURLParameters(payload, eventData.tutorialAction);
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_2__[/* default */ "c"].parseError(payload, eventData.error);
            break;
        case 'search-autocomplete-error':
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_SEARCH;
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_SEARCH_BAR;
            payload['event.subtype'] = PROPERTY_KEYS.SUBTYPE_SEARCH_AUTOCOMPLETE;
            payload['search.request_guid'] = eventData.requestGUID;
            payload['ui.search_keyword'] = eventData.term;
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_2__[/* default */ "c"].parseError(payload, eventData.error);
            break;
        case 'suggestions':
            payload['event.subtype'] = eventData.subtype;
            eventData.value && (payload['event.value'] = eventData.value);
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_HOME;
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_SUGGESTIONS;
            payload['ui.view_type'] = eventData.stage + ':' + eventData.layout;
            payload['ccx.signals'] = eventData.recommendationsJson;
            eventData.contentId && (payload['content.id'] = eventData.contentId);
            eventData.contentName && (payload['content.name'] = eventData.contentName);
            eventData.contentType && (payload['content.type'] = eventData.contentType);
            eventData.contentAuthor && (payload['content.author'] = eventData.contentAuthor);
            eventData.ctaData && (payload['content.action'] = eventData.ctaData);
            eventData.uiSequence && (payload['ui.sequence'] = eventData.uiSequence);
            eventData.cardAnalyticsData &&
                start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_2__[/* default */ "c"].addDynamicRecommendationsModelData(payload, eventData.cardAnalyticsData);
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_2__[/* default */ "c"].addSophiaAnalytics(payload, eventData.containerAnalyticsParams);
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_2__[/* default */ "c"].mapStageConditions(payload, eventData.stage);
            payload['exp.surface_id'] = app_constants__WEBPACK_IMPORTED_MODULE_0__[/* default */ "k"].SURFACES.HOME;
            payload['exp.response_guid'] = (_g = _Sophia__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].data.analyticsData) === null || _g === void 0 ? void 0 : _g.responseGUID;
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_2__[/* default */ "c"].parseError(payload, eventData.error);
            break;
        case 'lr-importer':
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_HOME;
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_LIGHTROOM;
            if (eventData.subtype) {
                payload['event.subtype'] = eventData.subtype;
            }
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_2__[/* default */ "c"].parseError(payload, eventData.error);
            break;
        case 'component--standard-tout':
            const toutData = eventData.fieldData;
            const primaryCTA = toutData === null || toutData === void 0 ? void 0 : toutData.primaryCTA;
            payload['event.workflow'] = iaw_jsUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].capitalize(eventData.workflow); // Will return null if string doesn't exist
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_TOUT;
            payload['event.subtype'] = ((_h = eventData.subtype) === null || _h === void 0 ? void 0 : _h.toLowerCase()) || ((_j = primaryCTA === null || primaryCTA === void 0 ? void 0 : primaryCTA.ctaText) === null || _j === void 0 ? void 0 : _j.toLowerCase()) || PROPERTY_KEYS.SUBTYPE_TOUT;
            (primaryCTA === null || primaryCTA === void 0 ? void 0 : primaryCTA.ctaDeeplinkData) && (payload['event.value'] = JSON.stringify(primaryCTA === null || primaryCTA === void 0 ? void 0 : primaryCTA.ctaDeeplinkData));
            payload['ui.view_type'] = eventData.stage + ':' + eventData.layout;
            payload['content.status'] =
                eventData.workflow && eventData.workflow === PROPERTY_KEYS.WORKFLOW_DEFAULT
                    ? PROPERTY_KEYS.STATUS_LOCAL
                    : PROPERTY_KEYS.STATUS_CACHED;
            payload['content.name'] = toutData === null || toutData === void 0 ? void 0 : toutData.headerText;
            payload['content.action'] = eventData.ctaURL || start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_2__[/* default */ "c"].getContentIdFromCTAData(eventData.ctaData);
            payload['ccx.signals'] = start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_2__[/* default */ "c"].parseUserSignals(eventData);
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_2__[/* default */ "c"].addSophiaAnalytics(payload, eventData.containerAnalyticsParams);
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_2__[/* default */ "c"].mapStageConditions(payload, eventData.stage);
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_2__[/* default */ "c"].parseError(payload, eventData.error);
            break;
        default:
            _logger.error(PROPERTY_KEYS.DEFAULT_ERROR + iaw_jsUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].capitalize(eventID) + JSON.stringify(eventData), true);
            break;
    }
});


/***/ }),

/***/ "RKMU":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var BN = __webpack_require__("OZ/i");

var utils = __webpack_require__("86MQ");

var assert = utils.assert;
var cachedProperty = utils.cachedProperty;
var parseBytes = utils.parseBytes;
/**
* @param {EDDSA} eddsa - eddsa instance
* @param {Array<Bytes>|Object} sig -
* @param {Array<Bytes>|Point} [sig.R] - R point as Point or bytes
* @param {Array<Bytes>|bn} [sig.S] - S scalar as bn or bytes
* @param {Array<Bytes>} [sig.Rencoded] - R point encoded
* @param {Array<Bytes>} [sig.Sencoded] - S scalar encoded
*/

function Signature(eddsa, sig) {
  this.eddsa = eddsa;
  if (typeof sig !== 'object') sig = parseBytes(sig);

  if (Array.isArray(sig)) {
    sig = {
      R: sig.slice(0, eddsa.encodingLength),
      S: sig.slice(eddsa.encodingLength)
    };
  }

  assert(sig.R && sig.S, 'Signature without R or S');
  if (eddsa.isPoint(sig.R)) this._R = sig.R;
  if (sig.S instanceof BN) this._S = sig.S;
  this._Rencoded = Array.isArray(sig.R) ? sig.R : sig.Rencoded;
  this._Sencoded = Array.isArray(sig.S) ? sig.S : sig.Sencoded;
}

cachedProperty(Signature, 'S', function S() {
  return this.eddsa.decodeInt(this.Sencoded());
});
cachedProperty(Signature, 'R', function R() {
  return this.eddsa.decodePoint(this.Rencoded());
});
cachedProperty(Signature, 'Rencoded', function Rencoded() {
  return this.eddsa.encodePoint(this.R());
});
cachedProperty(Signature, 'Sencoded', function Sencoded() {
  return this.eddsa.encodeInt(this.S());
});

Signature.prototype.toBytes = function toBytes() {
  return this.Rencoded().concat(this.Sencoded());
};

Signature.prototype.toHex = function toHex() {
  return utils.encode(this.toBytes(), 'hex').toUpperCase();
};

module.exports = Signature;

/***/ }),

/***/ "RLl7":
/***/ (function(module) {

module.exports = JSON.parse("{\"File\":\"File\",\"Folder\":\"Folder\"}");

/***/ }),

/***/ "RMS/":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("rect", {
  height: "18",
  rx: "2",
  ry: "2",
  width: "18",
  x: "4",
  y: "4"
}), React.createElement("rect", {
  height: "18",
  rx: "2",
  ry: "2",
  width: "18",
  x: "26",
  y: "4"
}), React.createElement("rect", {
  height: "18",
  rx: "2",
  ry: "2",
  width: "18",
  x: "4",
  y: "26"
}), React.createElement("rect", {
  height: "18",
  rx: "2",
  ry: "2",
  width: "18",
  x: "26",
  y: "26"
}));

/***/ }),

/***/ "RQ+a":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return CDO_DRAG_MIMETYPE; });
/* unused harmony export CDO_DROP_CONTEXT_ATTR */
/* unused harmony export CDO_DROP_PATH_ATTR */
/* unused harmony export CDO_DROP_INDEX_ATTR */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return CDODropContext; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return clearDragData; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return getDropTargetData; });
/* unused harmony export hasCopyModifierKey */
/* unused harmony export internalForTests */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return isCDODragEvent; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return getDragSource; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return DragSource; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "k", function() { return isValidExternalDropTarget; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "l", function() { return setDragData; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "i", function() { return isFirstDragEnter; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "j", function() { return isLastDragLeave; });
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("a375");
/* harmony import */ var _platform__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("acin");
/* harmony import */ var _valid_move__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("b/AU");



var CDODropContext;
(function (CDODropContext) {
    CDODropContext["SideNav"] = "SideNav";
    CDODropContext["Breadcrumb"] = "Breadcrumb";
    CDODropContext["Shortcuts"] = "Shortcuts";
    CDODropContext["ShortcutsEmptySpace"] = "ShortcutsEmptySpace";
})(CDODropContext || (CDODropContext = {}));
var DragSource;
(function (DragSource) {
    /**
     * The drag originated from within the CDO, dragging a cloud doc or folder
     */
    DragSource["CDO"] = "cdo";
    /**
     * The drag originated from outside of CDO, an external file to import
     */
    DragSource["IMPORT"] = "import";
})(DragSource || (DragSource = {}));
const CDO_DROP_PATH_ATTR = 'data-cdo-drop-path';
const CDO_DROP_CONTEXT_ATTR = 'data-cdo-drop-context';
const CDO_DROP_INDEX_ATTR = 'data-cdo-drop-index';
const CDO_DRAG_MIMETYPE = 'application/ccx-cdo.asset-drag';
function isCDODragEvent(e) {
    var _a, _b, _c;
    return (_c = (_b = (_a = e === null || e === void 0 ? void 0 : e.dataTransfer) === null || _a === void 0 ? void 0 : _a.types) === null || _b === void 0 ? void 0 : _b.includes(CDO_DRAG_MIMETYPE)) !== null && _c !== void 0 ? _c : false;
}
function isImportDragEvent(e) {
    var _a, _b, _c;
    return (_c = (_b = (_a = e === null || e === void 0 ? void 0 : e.dataTransfer) === null || _a === void 0 ? void 0 : _a.types) === null || _b === void 0 ? void 0 : _b.includes('Files')) !== null && _c !== void 0 ? _c : false;
}
const DRAG_CONFIGS = [
    [
        isCDODragEvent,
        {
            source: DragSource.CDO,
            validDropTabs: [_constants__WEBPACK_IMPORTED_MODULE_0__[/* ROOT_FOLDER_PATH */ "q"], _constants__WEBPACK_IMPORTED_MODULE_0__[/* ARCHIVE_FOLDER_PATH */ "a"]],
        },
    ],
    [
        isImportDragEvent,
        {
            source: DragSource.IMPORT,
            validDropTabs: [_constants__WEBPACK_IMPORTED_MODULE_0__[/* ROOT_FOLDER_PATH */ "q"]],
        },
    ],
];
// for ease of testing without exposing `currentDragData` outside tests
const internal = {
    currentDragData: null,
};
/**
 * This should only be used inside CDO.
 *
 * DragEvent.dataTransfer.getData() cannot be read in dragEnter/Over events due to security issues.
 * Since only one thing can be dragged at a time, the DragData can be encapsulated here. External users
 * can use isValidExternalDropTarget to verify the dragged items are valid to drop at the mouse cursor
 * without needing event handlers for every possible source * destination.
 *
 */
function setDragData(sourceView, folders, isOnline, parentPath, hasOnlyFolders) {
    internal.currentDragData = {
        sourceView,
        excludedPaths: folders.map(folder => folder.path),
        isOnline,
        parentPath,
        hasOnlyFolders,
    };
}
function clearDragData() {
    internal.currentDragData = null;
}
function getDragSource(e) {
    const config = getDragConfig(e);
    return config && config.source;
}
function getDragConfig(e) {
    const match = DRAG_CONFIGS.find(([check, cfg]) => check(e));
    if (!match) {
        return undefined;
    }
    const [chk, config] = match;
    return config;
}
function hasCopyModifierKey(e) {
    if (Object(_platform__WEBPACK_IMPORTED_MODULE_1__[/* normalizePlatform */ "c"])(navigator.platform) === _platform__WEBPACK_IMPORTED_MODULE_1__[/* Platform */ "a"].mac) {
        return e.altKey;
    }
    return e.ctrlKey;
}
function getDropTargetData(e) {
    const dropTargetEl = e.target;
    if (!(dropTargetEl && dropTargetEl.getAttribute)) {
        return {};
    }
    const dropPath = dropTargetEl.getAttribute(CDO_DROP_PATH_ATTR);
    const dropContext = dropTargetEl.getAttribute(CDO_DROP_CONTEXT_ATTR);
    const dropIndex = parseInt(dropTargetEl.getAttribute(CDO_DROP_INDEX_ATTR), 10);
    return {
        dropPath,
        dropContext,
        dropIndex,
    };
}
/**
 * Validates whether or not the current drag event (over, enter, drop) is on a valid drop target
 * "external" of grid/list view. For the target to be valid:
 *     - event.dataTransfer is from a CDO drag start or external file drag start
 *     - event.target must have drop path and context attributes
 *     - SideNav: cannot drag from content view to side nav item for that view
 *     - Breadcrumb: cannot move folder into itself or its child
 *
 *  Usage:
 *     onDragOver(e) {
 *         this.setState({validDropTarget: isValidExternalDropTarget(e)});
 *     }
 *     const dropData = {
 *         [CDO_DROP_CONTEXT_ATTR]: CDODropContext.SideNav,
 *         [CDO_DROP_PATH_ATTR]: sideNavItem.route
 *     }
 *     const { validDropTarget } = this.state;
 *     return <div
 *              className={classNames({ validDropTarget })}
 *              {...dropData}
 *              onDragOver={this.onDragOver}
 *            >
 *              {content}
 *            </div>
 *
 */
function isValidExternalDropTarget(e) {
    const dragType = getDragConfig(e);
    if (!dragType) {
        return false;
    }
    if (dragType.source !== DragSource.CDO) {
        return false;
    }
    const { dropPath, dropContext } = getDropTargetData(e);
    // Not marked as valid context
    if (!dropPath || !dropContext) {
        return false;
    }
    const dt = e.dataTransfer;
    const { currentDragData } = internal;
    if (dropContext === CDODropContext.SideNav) {
        dt.effectAllowed = 'move'; // disables copy
        // Can only drop on Cloud Documents and Deleted tab
        if (!dragType.validDropTabs.includes(dropPath)) {
            return false;
        }
        // Can drop from content view to side nav if the side nav item is for a different view
        // or drop item in root folder in side nav from any cloud document sub folder in content view.
        if (currentDragData === null || currentDragData === void 0 ? void 0 : currentDragData.isOnline) {
            if (dropPath !== currentDragData.sourceView ||
                (currentDragData.sourceView === _constants__WEBPACK_IMPORTED_MODULE_0__[/* ROOT_FOLDER_PATH */ "q"] &&
                    currentDragData.parentPath !== _constants__WEBPACK_IMPORTED_MODULE_0__[/* ROOT_FOLDER_PATH */ "q"])) {
                dt.dropEffect = 'move';
                return true;
            }
        }
    }
    if (dropContext === CDODropContext.Breadcrumb &&
        (currentDragData === null || currentDragData === void 0 ? void 0 : currentDragData.sourceView) === _constants__WEBPACK_IMPORTED_MODULE_0__[/* ROOT_FOLDER_PATH */ "q"]) {
        if (!hasCopyModifierKey(e)) {
            if (currentDragData.isOnline &&
                currentDragData.parentPath !== dropPath &&
                !Object(_valid_move__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"])(currentDragData.excludedPaths, dropPath)) {
                dt.dropEffect = 'move';
                return true;
            }
            return false;
        }
        // TODO: add rules for copy
    }
    if (dropContext === CDODropContext.Shortcuts &&
        (currentDragData === null || currentDragData === void 0 ? void 0 : currentDragData.sourceView) === _constants__WEBPACK_IMPORTED_MODULE_0__[/* ROOT_FOLDER_PATH */ "q"]) {
        if (!hasCopyModifierKey(e)) {
            if (currentDragData.isOnline &&
                currentDragData.parentPath !== dropPath &&
                !Object(_valid_move__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"])(currentDragData.excludedPaths, dropPath)) {
                dt.dropEffect = 'move';
                return true;
            }
            return false;
        }
        // TODO: add rules for copy
    }
    if (dropContext === CDODropContext.ShortcutsEmptySpace &&
        (currentDragData === null || currentDragData === void 0 ? void 0 : currentDragData.sourceView) === _constants__WEBPACK_IMPORTED_MODULE_0__[/* ROOT_FOLDER_PATH */ "q"]) {
        const { hasOnlyFolders } = currentDragData;
        if (hasOnlyFolders) {
            dt.dropEffect = 'link';
            return true;
        }
    }
    return false;
}
/**
 * Use to determine if a dragEnter event is for a parent element and not
 * between any of its children elements.
 *
 * ie if this dragEnter event is entering CDOView entirely for the first time
 * rather than entering one of the many children elements within CDOView
 *
 * @param e The DragEvent
 */
function isFirstDragEnter(e) {
    const element = e.currentTarget;
    const entered = e.target;
    const exited = e.relatedTarget;
    return element.contains(entered) && !element.contains(exited);
}
/**
 * Use to determine if a dragLeave event is for a parent element and not
 * between any of its children elements.
 *
 * ie if this dragLeave event is leaving CDOView entirely rather than just
 * leaving a ViewItem
 *
 * @param e The DragEvent
 */
function isLastDragLeave(e) {
    const element = e.currentTarget;
    const exited = e.target;
    const entered = e.relatedTarget;
    return element.contains(exited) && !element.contains(entered);
}
// Only export internal data when running in tests, in order to prevent code outside
// drag-utils.ts and drag-utils.test.ts to view/mutate it.
let internalForTests;
if (false) {}



/***/ }),

/***/ "RQwI":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return isBrowserBundle; });
/*
 * This module exists for optimizations in the build process through rollup and terser.  We define some global
 * constants, which can be overridden during build. By guarding certain pieces of code with functions that return these
 * constants, we can control whether or not they appear in the final bundle. (Any code guarded by a false condition will
 * never run, and will hence be dropped during treeshaking.) The two primary uses for this are stripping out calls to
 * `logger` and preventing node-related code from appearing in browser bundles.
 *
 * Attention:
 * This file should not be used to define constants/flags that are intended to be used for tree-shaking conducted by
 * users. These fags should live in their respective packages, as we identified user tooling (specifically webpack)
 * having issues tree-shaking these constants across package boundaries.
 * An example for this is the __SENTRY_DEBUG__ constant. It is declared in each package individually because we want
 * users to be able to shake away expressions that it guards.
 */

/**
 * Figures out if we're building a browser bundle.
 *
 * @returns true if this is a browser bundle build.
 */
function isBrowserBundle() {
  return typeof __SENTRY_BROWSER_BUNDLE__ !== 'undefined' && !!__SENTRY_BROWSER_BUNDLE__;
}



/***/ }),

/***/ "RRc/":
/***/ (function(module, exports, __webpack_require__) {

var forOf = __webpack_require__("oioR");

module.exports = function (iter, ITERATOR) {
  var result = [];
  forOf(iter, false, result.push, result, ITERATOR);
  return result;
};

/***/ }),

/***/ "RT55":
/***/ (function(module) {

module.exports = JSON.parse("{\"(optional)\":\"(facultatif)\",\"(required)\":\"(requis)\"}");

/***/ }),

/***/ "RU/L":
/***/ (function(module, exports, __webpack_require__) {

__webpack_require__("Rqdy");

var $Object = __webpack_require__("WEpk").Object;

module.exports = function defineProperty(it, key, desc) {
  return $Object.defineProperty(it, key, desc);
};

/***/ }),

/***/ "RVjX":
/***/ (function(module) {

module.exports = JSON.parse("{\"close\":\"關閉\",\"error\":\"錯誤\",\"info\":\"資訊\",\"success\":\"成功\",\"warning\":\"警告\"}");

/***/ }),

/***/ "RcEm":
/***/ (function(module, exports, __webpack_require__) {

module.exports = __webpack_require__.p + "assets/cdo/onboardingIcon.idsn.png";

/***/ }),

/***/ "Rf71":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return isQuotaExceededError; });
/* harmony import */ var _utils_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("YVc3");
/* harmony import */ var _api_adobe_content_platform_ACPRequest__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("r9Sp");


async function isQuotaExceededError(samError) {
    if (samError && (samError === null || samError === void 0 ? void 0 : samError.code) !== _utils_constants__WEBPACK_IMPORTED_MODULE_0__[/* SAMErrorCode */ "B"].CONFLICT) {
        const errorResponseText = await (samError === null || samError === void 0 ? void 0 : samError.response.text());
        const parsedBody = (errorResponseText === null || errorResponseText === void 0 ? void 0 : errorResponseText.length) ? JSON.parse(errorResponseText) : {};
        if ((parsedBody === null || parsedBody === void 0 ? void 0 : parsedBody.type) === _api_adobe_content_platform_ACPRequest__WEBPACK_IMPORTED_MODULE_1__[/* ProblemTypes */ "b"].QUOTA_EXCEEDED) {
            return true;
        }
    }
    return false;
}


/***/ }),

/***/ "RfKB":
/***/ (function(module, exports, __webpack_require__) {

var def = __webpack_require__("2faE").f;

var has = __webpack_require__("B+OT");

var TAG = __webpack_require__("UWiX")('toStringTag');

module.exports = function (it, tag, stat) {
  if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, {
    configurable: true,
    value: tag
  });
};

/***/ }),

/***/ "RoFp":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

/*<replacement>*/

var pna = __webpack_require__("lm0R");
/*</replacement>*/
// undocumented cb() API, needed for core, not for public API


function destroy(err, cb) {
  var _this = this;

  var readableDestroyed = this._readableState && this._readableState.destroyed;
  var writableDestroyed = this._writableState && this._writableState.destroyed;

  if (readableDestroyed || writableDestroyed) {
    if (cb) {
      cb(err);
    } else if (err && (!this._writableState || !this._writableState.errorEmitted)) {
      pna.nextTick(emitErrorNT, this, err);
    }

    return this;
  } // we set destroyed to true before firing error callbacks in order
  // to make it re-entrance safe in case destroy() is called within callbacks


  if (this._readableState) {
    this._readableState.destroyed = true;
  } // if this is a duplex stream mark the writable part as destroyed as well


  if (this._writableState) {
    this._writableState.destroyed = true;
  }

  this._destroy(err || null, function (err) {
    if (!cb && err) {
      pna.nextTick(emitErrorNT, _this, err);

      if (_this._writableState) {
        _this._writableState.errorEmitted = true;
      }
    } else if (cb) {
      cb(err);
    }
  });

  return this;
}

function undestroy() {
  if (this._readableState) {
    this._readableState.destroyed = false;
    this._readableState.reading = false;
    this._readableState.ended = false;
    this._readableState.endEmitted = false;
  }

  if (this._writableState) {
    this._writableState.destroyed = false;
    this._writableState.ended = false;
    this._writableState.ending = false;
    this._writableState.finished = false;
    this._writableState.errorEmitted = false;
  }
}

function emitErrorNT(self, err) {
  self.emit('error', err);
}

module.exports = {
  destroy: destroy,
  undestroy: undestroy
};

/***/ }),

/***/ "Rp86":
/***/ (function(module, exports, __webpack_require__) {

__webpack_require__("bBy9");

__webpack_require__("FlQf");

module.exports = __webpack_require__("fXsU");

/***/ }),

/***/ "Rqdy":
/***/ (function(module, exports, __webpack_require__) {

var $export = __webpack_require__("Y7ZC"); // 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)


$export($export.S + $export.F * !__webpack_require__("jmDH"), 'Object', {
  defineProperty: __webpack_require__("2faE").f
});

/***/ }),

/***/ "Rxj1":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__("q1tI");
var react_default = /*#__PURE__*/__webpack_require__.n(react);

// EXTERNAL MODULE: ./node_modules/react-intl-cdo/lib/index.es.js + 1 modules
var index_es = __webpack_require__("VIzJ");

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/OverlayTrigger/index.js
var OverlayTrigger = __webpack_require__("uYrR");
var OverlayTrigger_default = /*#__PURE__*/__webpack_require__.n(OverlayTrigger);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Tooltip/index.js
var Tooltip = __webpack_require__("DUuf");
var Tooltip_default = /*#__PURE__*/__webpack_require__.n(Tooltip);

// EXTERNAL MODULE: ./node_modules/mobx/lib/mobx.module.js
var mobx_module = __webpack_require__("2vnA");

// EXTERNAL MODULE: ./node_modules/mobx-react/index.module.js
var index_module = __webpack_require__("okNM");

// EXTERNAL MODULE: ./node_modules/classnames/index.js
var classnames = __webpack_require__("TSYQ");
var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Avatar/index.js
var Avatar = __webpack_require__("We7l");
var Avatar_default = /*#__PURE__*/__webpack_require__.n(Avatar);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Icon/js/Icon.js
var Icon = __webpack_require__("trqI");
var Icon_default = /*#__PURE__*/__webpack_require__.n(Icon);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/api/ServiceRequest.ts
var ServiceRequest = __webpack_require__("Cc7P");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/stores/Settings.ts
var Settings = __webpack_require__("5u1M");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/api/behance-service/BehanceServiceRequest.tsx


/**
 * Generalized Behance Service Request Utility Class
 *
 * @export
 * @class BehanceServiceRequest
 * @extends {ServiceRequest}
 */
class BehanceServiceRequest_BehanceServiceRequest extends ServiceRequest["a" /* default */] {
    constructor(apiPath) {
        super();
        /**
         * Behance Service Domain
         *
         * @static
         * @memberof BehanceServiceRequest
         */
        this._url = '';
        this.url(apiPath);
    }
    url(apiPath = '/') {
        let resolvedPath = apiPath;
        // If we have a fully resolved URL, we have followed response links from the API
        if (resolvedPath.startsWith('https://')) {
            this._url = resolvedPath;
            return this;
        }
        // Always prefix your paths with /
        if (!apiPath.startsWith('/')) {
            resolvedPath = `/${apiPath}`;
        }
        // Generate url
        this._url = `${Settings["b" /* settings */].config.BEHANCE_ENDPOINT}${resolvedPath}`;
        return this;
    }
}

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/api/behance-service/getImage.tsx


/* harmony default export */ var getImage = (async (id) => {
    var _a, _b;
    try {
        const { parsedBody } = await new BehanceServiceRequest_BehanceServiceRequest(`v2/users/${id}?api_key=${Settings["b" /* settings */].config.CLIENT_ID}`)
            .fetch()
            .then(BehanceServiceRequest_BehanceServiceRequest.verifyStatus)
            .then(BehanceServiceRequest_BehanceServiceRequest.parseJSONResponse);
        // If responseCode is 203, user has default avatar
        const hasAvatarImage = parsedBody.http_code === 200 && ((_a = parsedBody === null || parsedBody === void 0 ? void 0 : parsedBody.user) === null || _a === void 0 ? void 0 : _a.has_default_image) !== 1;
        if (hasAvatarImage) {
            return (_b = parsedBody === null || parsedBody === void 0 ? void 0 : parsedBody.user) === null || _b === void 0 ? void 0 : _b.images['50'];
        }
        return undefined;
    }
    catch (e) {
        Settings["b" /* settings */].logger.error('Failed to fetch Behance image', e);
        return undefined;
    }
});

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/styles/AvatarWrapper.css
var styles_AvatarWrapper = __webpack_require__("IvX/");
var AvatarWrapper_default = /*#__PURE__*/__webpack_require__.n(styles_AvatarWrapper);

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/components/Facepile/GenericAvatar.tsx

const DEFAULT_PRIMARY_COLOR = '#00cfff';
const DEFAULT_SECONDARY_COLOR = '#001d26';
const DEFAULT_PATH = 'M27.79567,19.5,29.75243,24.177A16.00056,16.00056,0,0,0,17.637.08277L9.07589,19.5Z';
/**
 * Because box-sizing is border-box, avatar size is 32px and border is 2px, default avatar svg size is 28px
 */
const DEFAULT_SIZE = 28;
/**
 * There are 4 illustrations and 8 color options
 * https://spectrum.corp.adobe.com/page/avatar/
 */
const paths = [
    DEFAULT_PATH,
    'M29.59714,24.43146,19.56155.40283A15.99716,15.99716,0,0,1,29.59714,24.43146ZM2.04791,23.82968a15.99246,15.99246,0,0,0,13.278,8.15329L6.98538,12.19556Z',
    'M26,3.51413V28.48584a16.03971,16.03971,0,0,1-1.36374.98L12.4928.39029A15.97762,15.97762,0,0,1,26,3.51413ZM0,16A16.00314,16.00314,0,0,0,10.78824,31.12711L1.53143,9.16586A15.93429,15.93429,0,0,0,0,16Z',
    'M20.029,31.48767A16.02076,16.02076,0,0,0,31.49591,12H11.89Z',
];
const fillColors = [
    {
        primaryColor: DEFAULT_PRIMARY_COLOR,
        secondaryColor: DEFAULT_SECONDARY_COLOR,
    },
    {
        primaryColor: '#00d8af',
        secondaryColor: '#002620',
    },
    {
        primaryColor: '#5d99ff',
        secondaryColor: '#001434',
    },
    {
        primaryColor: '#9b80ff',
        secondaryColor: '#12004f',
    },
    {
        primaryColor: '#80e000',
        secondaryColor: '#152600',
    },
    {
        primaryColor: '#f98e00',
        secondaryColor: '#261900',
    },
    {
        primaryColor: '#ff5ae0',
        secondaryColor: '#2b0028',
    },
    {
        primaryColor: '#ffcd00',
        secondaryColor: '#262000',
    },
];
const GenericAvatar = ({ name, size = DEFAULT_SIZE }) => {
    // Draw a consistent generic avatar based on face info to avoid avatar change per reloading
    const { primaryColor, secondaryColor } = fillColors[name.length % fillColors.length];
    const path = paths[name.length % paths.length];
    return (react_default.a.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: size, height: size, viewBox: "0 0 32 32" },
        react_default.a.createElement("g", { style: { isolation: 'isolate' } },
            react_default.a.createElement("g", { id: "Layer_1", "data-name": "Layer 1" },
                react_default.a.createElement("circle", { style: { fill: primaryColor }, cx: "16", cy: "16", r: "16", "data-test-id": "Facepile-generic-avatar-primary" }),
                react_default.a.createElement("g", { style: { opacity: '0.25', mixBlendMode: 'multiply' } },
                    react_default.a.createElement("path", { style: { fill: secondaryColor }, d: path, "data-test-id": "Facepile-generic-avatar-secondary" }))))));
};
/* harmony default export */ var Facepile_GenericAvatar = (GenericAvatar);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/constants.ts
var constants = __webpack_require__("YVc3");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/components/Facepile/AvatarWrapper.tsx
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;
};
var __metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};













let AvatarWrapper_AvatarWrapper = class AvatarWrapper extends react_default.a.Component {
    constructor(props) {
        super(props);
        this.fetch();
    }
    async fetch() {
        const { id } = this.props;
        if (!id) {
            return;
        }
        try {
            this.imageUrl = await getImage(id);
        }
        catch (e) {
            this.imageUrl = undefined;
        }
    }
    componentDidUpdate(prevProps) {
        if (prevProps.id !== this.props.id) {
            this.fetch();
        }
    }
    render() {
        const { intl, name, size, offset } = this.props;
        const style = { width: size, height: size, marginRight: -offset };
        const nameLabel = intl.formatMessage({ id: 'facepile.memberName' }, { name });
        return (react_default.a.createElement("div", { className: AvatarWrapper_default.a.avatar, "data-test-id": `FacepileAvatar__${name}` },
            react_default.a.createElement(OverlayTrigger_default.a, { placement: 'bottom', trigger: ['hover', 'focus'], delayShow: constants["f" /* DEFAULT_TOOLTIP_DELAY */] },
                react_default.a.createElement("div", { style: style },
                    react_default.a.createElement("div", { className: AvatarWrapper_default.a.genericAvatar, "data-test-id": "Facepile-generic-avatar", tabIndex: 0, "aria-label": nameLabel, role: "button" },
                        react_default.a.createElement(Icon_default.a, null,
                            react_default.a.createElement(Facepile_GenericAvatar, { name: name }))),
                    react_default.a.createElement(Avatar_default.a, { "data-test-id": "Facepile-avatar-image", className: classnames_default()(AvatarWrapper_default.a.faceAvatar, {
                            [AvatarWrapper_default.a.hide]: !this.imageUrl,
                        }), style: { width: size, height: size }, alt: name, src: this.imageUrl })),
                react_default.a.createElement(Tooltip_default.a, null, name))));
    }
};
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", Object)
], AvatarWrapper_AvatarWrapper.prototype, "imageUrl", void 0);
AvatarWrapper_AvatarWrapper = __decorate([
    index_module["e" /* observer */],
    __metadata("design:paramtypes", [Object])
], AvatarWrapper_AvatarWrapper);

/* harmony default export */ var Facepile_AvatarWrapper = (Object(index_es["g" /* injectIntl */])(AvatarWrapper_AvatarWrapper));

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/styles/Facepile.css
var styles_Facepile = __webpack_require__("hKhZ");
var Facepile_default = /*#__PURE__*/__webpack_require__.n(styles_Facepile);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/components/ContributorTooltipList.tsx
var ContributorTooltipList = __webpack_require__("YSDX");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/components/Facepile/Facepile.tsx
var Facepile_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;
};









// Overflow is `+[n]` until you hit 99+ more, then it becomes `99+`, meaning `more than 99`
const OVERFLOW_BREAK_LIMIT = 99;
// Default width and height of the face
const Facepile_DEFAULT_SIZE = 32;
// Offset between faces
const OFFSET = 0.35;
let Facepile_Facepile = class Facepile extends react_default.a.Component {
    get showFacepile() {
        const { users } = this.props;
        return users.length > 0;
    }
    get displayedFaces() {
        const { users, maxFaces } = this.props;
        return users.slice(0, maxFaces);
    }
    get overflowFaces() {
        const { users, maxFaces } = this.props;
        return users.slice(maxFaces);
    }
    get overflowFacesCount() {
        return this.overflowFaces.length;
    }
    get overflowLabel() {
        const { users, maxFaces } = this.props;
        const userCount = users.length;
        if (userCount <= maxFaces) {
            return undefined;
        }
        if (this.overflowFacesCount <= OVERFLOW_BREAK_LIMIT) {
            return `+${this.overflowFacesCount}`;
        }
        return `${OVERFLOW_BREAK_LIMIT}+`;
    }
    get offset() {
        return this.size * OFFSET;
    }
    get size() {
        return this.props.size || Facepile_DEFAULT_SIZE;
    }
    render() {
        return (react_default.a.createElement("span", { className: Facepile_default.a.facepile, "data-test-id": "Facepile" },
            this.showFacepile && (react_default.a.createElement("div", { className: Facepile_default.a.avatars, style: { marginRight: this.offset }, "data-test-id": "Facepile-avatars-container" }, [...this.displayedFaces].map(({ id, name, email }) => (react_default.a.createElement(Facepile_AvatarWrapper, { id: id || '', size: this.size, offset: this.offset, name: name || email || '', key: id || email || name || 'unknown' }))))),
            this.showFacepile && this.overflowLabel && (react_default.a.createElement(OverlayTrigger_default.a, { placement: 'bottom', trigger: ['hover', 'focus'], delayShow: constants["f" /* DEFAULT_TOOLTIP_DELAY */] },
                react_default.a.createElement("div", { className: Facepile_default.a.overflowLabel, "data-test-id": "Facepile-overflow-label", tabIndex: 0, "aria-label": this.props.intl.formatMessage({ id: 'facepile.additionalMembers' }, { count: this.overflowFacesCount }), role: "button" }, this.overflowLabel),
                react_default.a.createElement(Tooltip_default.a, { className: Facepile_default.a.facepileTooltip },
                    react_default.a.createElement(ContributorTooltipList["a" /* default */], { contributors: this.overflowFaces }))))));
    }
};
Facepile_Facepile = Facepile_decorate([
    index_module["e" /* observer */]
], Facepile_Facepile);
/* harmony default export */ var components_Facepile_Facepile = __webpack_exports__["a"] = (Object(index_es["g" /* injectIntl */])(Facepile_Facepile));


/***/ }),

/***/ "S+N7":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("path", {
  d: "M4 14v26a2 2 0 0 0 2 2h36a2 2 0 0 0 2-2V16a2 2 0 0 0-2-2zm14.01-9.39A2 2 0 0 0 16.57 4H8a4 4 0 0 0-4 4v2h19.266z"
}));

/***/ }),

/***/ "S+vr":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// UNUSED EXPORTS: CDOViewForTests

// EXTERNAL MODULE: ./node_modules/classnames/index.js
var classnames = __webpack_require__("TSYQ");
var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);

// EXTERNAL MODULE: ./node_modules/fuse.js/dist/fuse.js
var fuse = __webpack_require__("/+cc");
var fuse_default = /*#__PURE__*/__webpack_require__.n(fuse);

// EXTERNAL MODULE: ./node_modules/lodash/debounce.js
var debounce = __webpack_require__("sEfC");
var debounce_default = /*#__PURE__*/__webpack_require__.n(debounce);

// EXTERNAL MODULE: ./node_modules/lodash/merge.js
var merge = __webpack_require__("QkVN");
var merge_default = /*#__PURE__*/__webpack_require__.n(merge);

// EXTERNAL MODULE: ./node_modules/mobx/lib/mobx.module.js
var mobx_module = __webpack_require__("2vnA");

// EXTERNAL MODULE: ./node_modules/mobx-react/index.module.js
var index_module = __webpack_require__("okNM");

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__("q1tI");
var react_default = /*#__PURE__*/__webpack_require__.n(react);

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/Rename/index.js
var Rename = __webpack_require__("Xr7M");
var Rename_default = /*#__PURE__*/__webpack_require__.n(Rename);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/contexts/ScrollToElementContext.ts
var ScrollToElementContext = __webpack_require__("/jqd");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/stores/Collection/ICollectionItem.ts
var ICollectionItem = __webpack_require__("crLv");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/stores/constants.ts
var constants = __webpack_require__("C0qj");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/drag-utils.ts
var drag_utils = __webpack_require__("RQ+a");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/stores/SelectionStore.ts
var SelectionStore = __webpack_require__("7XYX");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/stores/DragState.ts
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;
};
var __metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var DragState_a, DragState_b;
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2020 Adobe Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Incorporated.
 **************************************************************************/




const DRAG_CARD_OFFSET = 64; // half of drag card size, in px
class DragState_DragState {
    constructor() {
        /**
         * Drag selection is separate from regular selection, because navigating to a folder needs to clear
         * selections while maintaining drag selection.
         */
        this.selectionStore = new SelectionStore["b" /* default */]();
        /**
         * ref for the DOM node of the custom drag image, rendered by CDOView. To use a custom drag image, it
         * must be visible to the user, and manually repositioned to track the mouse pointer.
         */
        this.dragImageRef = react_default.a.createRef();
        /**
         * Navigating or scrolling can cause the DOM node to be unmounted, so it needs to be re-attached and
         * hidden when this happens, and removed again when drag ends.
         */
        this.sourceElWasReattached = false;
        this.dragFiles = [];
        // For convenience, tests
        this.isCDODragEvent = drag_utils["h" /* isCDODragEvent */];
    }
    /***
     * Only used when starting to drag an asset from CDOView.
     */
    startDragAsset(element, allSelectedElements, e) {
        this.element = element;
        this.sourceEl = e.target;
        this.selectionStore.clear();
        this.selectionStore.addSelections(allSelectedElements);
        e.dataTransfer.setData(drag_utils["c" /* CDO_DRAG_MIMETYPE */], ''); // so event handlers can verify this is a CDO drag event
        e.dataTransfer.setDragImage(this.dragImageRef.current, -DRAG_CARD_OFFSET, -DRAG_CARD_OFFSET);
        e.dataTransfer.effectAllowed = 'move';
        this.dragSource = drag_utils["d" /* DragSource */].CDO;
    }
    /**
     * Used for first dragEnter event on CDOView
     */
    startDragImportIfNeeded(e) {
        // When dragging into CDOView the drag payload is
        //   a) Assets: drag started in CDOView, left, then came back;
        //      this.dragSource should already be CDO, and can be ignored.
        //   b) Files: drag started outside CDOView, so start the
        //      import workflow.
        //   c) Other: drag started outside CDOView, but the payload should
        //      be ignored; this.dragSource should be cleaned up by dragEnd,
        //      dragLeave, or drop, so no further work should be done here.
        //
        // If it seems like this is the right place to fix a problem with
        // this.dragSource, try to find what's failing to clean up, as there
        // are likely other bugs.
        if (Object(drag_utils["f" /* getDragSource */])(e) === drag_utils["d" /* DragSource */].IMPORT) {
            this.dragSource = drag_utils["d" /* DragSource */].IMPORT;
        }
    }
    isDraggingElement(element) {
        return this.selectionStore.isSelected(element);
    }
    onDragOver(e) {
        const { clientX: x, clientY: y } = e;
        if (this.dragSource === drag_utils["d" /* DragSource */].CDO) {
            this.reattachSourceEl();
            const dragImage = this.dragImageRef.current;
            dragImage.style.visibility = 'visible';
            // to center the image, both the setDragImage and left/top need to be offset by the same amount
            dragImage.style.left = `${x - DRAG_CARD_OFFSET}px`;
            dragImage.style.top = `${y - DRAG_CARD_OFFSET}px`;
        }
    }
    reattachSourceEl() {
        if (this.sourceEl && !this.sourceEl.isConnected) {
            this.getReattachContainer().appendChild(this.sourceEl);
            this.sourceEl.style.display = 'none';
            this.sourceElWasReattached = true;
        }
    }
    // encapsulate for tests
    // eslint-disable-next-line class-methods-use-this
    getReattachContainer() {
        return document.body;
    }
    cleanUp() {
        if (this.sourceElWasReattached) {
            this.getReattachContainer().removeChild(this.sourceEl);
        }
        this.selectionStore.clear();
        Object(drag_utils["e" /* clearDragData */])();
        this.element = null;
        this.sourceEl = null;
        this.sourceElWasReattached = false;
        if (this.dragImageRef.current) {
            this.dragImageRef.current.style.visibility = 'hidden';
        }
        this.dragSource = undefined;
        this.dragFiles = [];
    }
}
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", Boolean)
], DragState_DragState.prototype, "element", void 0);
__decorate([
    mobx_module["j" /* action */],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [Boolean, Array, typeof (DragState_a = typeof drag_utils["AnyDragEvent"] !== "undefined" && drag_utils["AnyDragEvent"]) === "function" ? DragState_a : Object]),
    __metadata("design:returntype", void 0)
], DragState_DragState.prototype, "startDragAsset", null);
__decorate([
    mobx_module["j" /* action */],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [typeof (DragState_b = typeof drag_utils["AnyDragEvent"] !== "undefined" && drag_utils["AnyDragEvent"]) === "function" ? DragState_b : Object]),
    __metadata("design:returntype", void 0)
], DragState_DragState.prototype, "startDragImportIfNeeded", null);
__decorate([
    mobx_module["j" /* action */],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", []),
    __metadata("design:returntype", void 0)
], DragState_DragState.prototype, "cleanUp", null);
/* harmony default export */ var stores_DragState = (DragState_DragState);


// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/types/CollectionViewMetrics.ts
var CollectionViewMetrics = __webpack_require__("b/7Q");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/action.ts
var utils_action = __webpack_require__("zPGX");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/constants.ts
var utils_constants = __webpack_require__("a375");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/create-placeholder-folder.ts
var create_placeholder_folder = __webpack_require__("brtb");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/derive-parent-path.ts
var derive_parent_path = __webpack_require__("gFix");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/metrics.ts
var utils_metrics = __webpack_require__("jaHz");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/platform.ts
var platform = __webpack_require__("acin");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/stop-propagation.ts
var stop_propagation = __webpack_require__("hLgr");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/Busy.tsx
var Busy = __webpack_require__("cljQ");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/CDOHeader.tsx + 3 modules
var CDOHeader = __webpack_require__("GXLr");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/ImageView.tsx
var ImageView = __webpack_require__("3Irx");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/svgs/FolderGeneral.tsx
var FolderGeneral = __webpack_require__("XY+F");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/styles/DragCard.css
var DragCard = __webpack_require__("27Td");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/components/DragCard.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2020 Adobe Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Incorporated.
 **************************************************************************/






const MAX_COUNT = 99;
const DragCard_DragCard = Object(index_module["e" /* observer */])((props) => {
    const { dragState } = props;
    const { dragImageRef, element, selectionStore } = dragState;
    const dragSelectionSize = selectionStore.size;
    let content;
    if (element) {
        if (Object(ICollectionItem["b" /* isFolder */])(element)) {
            content = react_default.a.createElement(FolderGeneral["a" /* default */], null);
        }
        else {
            content = react_default.a.createElement(ImageView["a" /* default */], { className: "image", image: element.rendition });
        }
    }
    let badge;
    if (dragSelectionSize > 1) {
        badge = (react_default.a.createElement("div", { className: "badge" }, dragSelectionSize > MAX_COUNT ? '99+' : dragSelectionSize));
    }
    return (react_default.a.createElement("div", { ref: dragImageRef, className: "DragCard" },
        react_default.a.createElement("div", { className: "dragImageWrapper" }, content),
        badge));
});
/* harmony default export */ var components_DragCard = (DragCard_DragCard);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/EmptyView.tsx
var EmptyView = __webpack_require__("SZIB");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/GridItem.tsx
var GridItem = __webpack_require__("wxeS");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/GridView.tsx + 1 modules
var GridView = __webpack_require__("q/Z0");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/ListItem.tsx
var ListItem = __webpack_require__("SvrS");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/ListView.tsx + 1 modules
var ListView = __webpack_require__("JRZE");

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Progress/index.js
var Progress = __webpack_require__("eXD0");
var Progress_default = /*#__PURE__*/__webpack_require__.n(Progress);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Dialog/index.js
var Dialog = __webpack_require__("bLbN");
var Dialog_default = /*#__PURE__*/__webpack_require__.n(Dialog);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/utils/FocusManager.js
var FocusManager = __webpack_require__("3C4i");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/types/CDOReactIntlTyped.ts
var CDOReactIntlTyped = __webpack_require__("dSAe");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/utils.ts
var utils = __webpack_require__("+Ots");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/styles/ProgressDialog.css
var styles_ProgressDialog = __webpack_require__("NQY3");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/components/ProgressDialog.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2019 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/







class ProgressDialog_ProgressDialog extends react_default.a.Component {
    constructor(props) {
        super(props);
        this.onFocus = (e) => {
            Object(FocusManager["trapFocus"])(this, e);
        };
        this.onKeyDown = (e) => {
            Object(FocusManager["trapFocus"])(this, e);
        };
        this.onClick = () => {
            if (this.focusTrap.current) {
                this.focusTrap.current.focus();
            }
        };
        this.focusTrap = react_default.a.createRef();
    }
    componentDidMount() {
        const { onDialogStateChange } = this.props;
        onDialogStateChange && onDialogStateChange(true);
        this.focusTrap.current.focus();
    }
    componentWillUnmount() {
        const { onDialogStateChange } = this.props;
        onDialogStateChange && onDialogStateChange(false);
    }
    render() {
        const { batchSize, inProgressNum, progressPercent, msgId, intl } = this.props;
        const label = intl.formatMessage({ id: msgId }, {
            inProgressNum,
            batchSize,
        });
        // This is because the compiler does not like
        // the additional properties that <div> does
        // not support.
        // The properties deafultPreventedKeys is to
        // prevent Photoshop from intercepting the tab key.
        const uxpProps = utils["a" /* default */].usingUXP() ? { defaultPreventedKeys: ['Tab'] } : {};
        return (react_default.a.createElement("div", Object.assign({ id: "CDO_ProgressUnderlay", className: "CDO_ProgressDialogRoot spectrum-Underlay is-open", tabIndex: 0, onFocus: this.onFocus, onKeyDown: this.onKeyDown, onClick: this.onClick, ref: this.focusTrap }, uxpProps),
            react_default.a.createElement(Dialog_default.a, { className: "progress-dialog", tabindex: -1 },
                react_default.a.createElement(Progress_default.a, { label: label, value: progressPercent, labelPosition: "top", tabindex: -1 }))));
    }
}
/* harmony default export */ var components_ProgressDialog = (Object(CDOReactIntlTyped["e" /* injectIntl */])(ProgressDialog_ProgressDialog));


// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/components/svgs/EmptyFilterView.tsx


const DEFAULT_SIZE = {
    width: 128,
    height: 128,
};
const EmptyFilterView = ({ height = DEFAULT_SIZE.height, width = DEFAULT_SIZE.width, className = '', primaryColor = '#b3b3b3', }) => (react_default.a.createElement("svg", { className: classnames_default()('EmptyFilterView', className), xmlns: "http://www.w3.org/2000/svg", width: height, height: width, viewBox: `0 0 ${height} ${width}` },
    react_default.a.createElement("g", { id: "magnifying_glas-5", "data-name": "magnifying glas" },
        react_default.a.createElement("g", null,
            react_default.a.createElement("path", { fill: primaryColor, d: "M34.67139,72.3291a1.49975,1.49975,0,0,0,2.12134,0L43.5,65.62134l6.70728,6.70776A1.5,1.5,0,0,0,52.32886,70.208L45.62134,63.5l6.70752-6.708a1.5,1.5,0,0,0-2.12158-2.12109L43.5,61.37866,36.79272,54.6709A1.5,1.5,0,0,0,34.67114,56.792L41.37866,63.5l-6.70752,6.708A1.49967,1.49967,0,0,0,34.67139,72.3291Z" }),
            react_default.a.createElement("path", { fill: primaryColor, d: "M107.5,50a1.50023,1.50023,0,0,0-1.5,1.5v54a.50081.50081,0,0,1-.5.5h-60a.50081.50081,0,0,1-.5-.5v-14a1.5,1.5,0,0,0-3,0v14a3.50409,3.50409,0,0,0,3.5,3.5h60a3.50409,3.50409,0,0,0,3.5-3.5v-54A1.50023,1.50023,0,0,0,107.5,50Z" }),
            react_default.a.createElement("path", { fill: primaryColor, d: "M109.10083,44.42773l-25.55176-25A1.49482,1.49482,0,0,0,82.52026,19h-.00806c-.00024.00488-.00781,0-.01221,0h-37A3.50409,3.50409,0,0,0,42,22.5v13a1.5,1.5,0,0,0,3,0v-13a.50081.50081,0,0,1,.5-.5H81V43.5A3.50409,3.50409,0,0,0,84.5,47h23.55176a1.5001,1.5001,0,0,0,1.04907-2.57227ZM84.5,44a.50081.50081,0,0,1-.5-.5V24.06641L104.37378,44Z" }),
            react_default.a.createElement("path", { fill: primaryColor, d: "M43.62964,86.76367A23.42114,23.42114,0,1,0,24.35693,76.60913L8.356,92.61035a4.70245,4.70245,0,0,0,6.65015,6.65039L31.092,83.17383c.0144-.01416.01855-.03369.032-.04834A23.24667,23.24667,0,0,0,43.62964,86.76367Zm0-43.78418A20.39209,20.39209,0,1,1,23.2373,63.37207,20.41578,20.41578,0,0,1,43.62964,42.97949ZM12.885,97.13965a1.70286,1.70286,0,0,1-2.4082-2.4082L26.22607,78.98193a23.57614,23.57614,0,0,0,2.45166,2.36377Z" })))));
/* harmony default export */ var svgs_EmptyFilterView = (EmptyFilterView);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Toast/index.js
var Toast = __webpack_require__("bNpM");
var Toast_default = /*#__PURE__*/__webpack_require__.n(Toast);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/styles/ToastContainer.css
var styles_ToastContainer = __webpack_require__("TnFC");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/components/ToastContainer.tsx
var ToastContainer_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;
};





/**
 * Component for displaying various Toast states.
 */
let ToastContainer_ToastContainer = class ToastContainer extends react["Component"] {
    /**
     * Component renderer.
     * @return {ReactElement} markup
     */
    render() {
        const { closeToast, toast, id, intl } = this.props;
        const { message = '', show = false, variant = 'default', values = undefined, action, actionLabelMsgId, closeable, } = toast;
        const msg = message ? `toast.${message}` : '';
        const actionLabel = actionLabelMsgId
            ? intl.formatMessage({ id: actionLabelMsgId })
            : undefined;
        if (show) {
            return (react["createElement"]("div", { id: id, className: "cdo-ToastContainer" },
                react["createElement"](Toast_default.a, { closable: closeable, id: "CDOToast", variant: variant, onClose: closeToast, onAction: action, actionLabel: actionLabel },
                    react["createElement"](CDOReactIntlTyped["a" /* FormattedMessage */], { id: msg, values: values }))));
        }
        return null;
    }
};
ToastContainer_ToastContainer = ToastContainer_decorate([
    index_module["e" /* observer */]
], ToastContainer_ToastContainer);
/* harmony default export */ var components_ToastContainer = (Object(CDOReactIntlTyped["e" /* injectIntl */])(ToastContainer_ToastContainer));


// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/components/viewItems/FolderViewItem.tsx
/*************************************************************************
 *   ADOBE CONFIDENTIAL
 *
 *   Copyright 2022 Adobe
 *   All Rights Reserved.
 *
 *   NOTICE:  All information contained herein is, and remains
 *   the property of Adobe and its suppliers, if any. The intellectual
 *   and technical concepts contained herein are proprietary to Adobe
 *   and its suppliers and are protected by all applicable intellectual
 *   property laws, including trade secret and copyright laws.
 *   Dissemination of this information or reproduction of this material
 *   is strictly forbidden unless prior written permission is obtained
 *   from Adobe.
 **************************************************************************/





const renderFolderRendition = () => react["createElement"](FolderGeneral["a" /* default */], null);
const renderFolderMetadata = () => react["createElement"](CDOReactIntlTyped["a" /* FormattedMessage */], { className: "itemType", id: "folder.subtitle" });
class FolderViewItem_FolderGridItem extends GridItem["a" /* default */] {
    renderRendition() {
        return renderFolderRendition();
    }
    renderMetadata() {
        return renderFolderMetadata();
    }
}
class FolderViewItem_FolderListItem extends ListItem["a" /* default */] {
    renderRendition() {
        return renderFolderRendition();
    }
    renderMetadata() {
        return renderFolderMetadata();
    }
}

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/styles/CDOView.css
var styles_CDOView = __webpack_require__("tPhN");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/Logger.ts
var Logger = __webpack_require__("lmMR");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/components/CDOView.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Incorporated.
 **************************************************************************/
var CDOView_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;
};
var CDOView_metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};




































const FUSE_OPTIONS = {
    shouldSort: false,
    tokenize: false,
    threshold: 0.2,
    location: 0,
    distance: 1000,
    maxPatternLength: 32,
    minMatchCharLength: 1,
    keys: ['title'],
};
let CDOView_CDOView = class CDOView extends react["Component"] {
    constructor(props, ...args) {
        var _a, _b;
        // @ts-ignore
        super(props, ...args);
        this.logger = new Logger["a" /* Logger */](this.constructor.name);
        this.metrics = this.props.metrics;
        this.selectionStore = this.props.selectionStore || new SelectionStore["b" /* default */]();
        this.renderedWithElements = false;
        this.dragState = new stores_DragState();
        this.selectAction = new utils_action["d" /* default */]({
            value: utils_action["a" /* CDOActionValue */].Select,
            label: 'button.select',
            execute: async (ele) => this.onItemSelected(ele[0], SelectionStore["a" /* ExtendSelectionMode */].Toggle),
            resetSelection: false,
            isVisible: platform["b" /* isWindows */],
        });
        this.renameAction = new utils_action["d" /* default */]({
            value: utils_action["a" /* CDOActionValue */].Rename,
            label: 'button.rename',
            icon: react_default.a.createElement(Rename_default.a, null),
            resetSelection: true,
            isVisible: selectionStore => Object(SelectionStore["g" /* hasOnlyOne */])(selectionStore),
            getDisabledTooltipMsgId: selectionStore => {
                var _a, _b;
                const { renameBehavior } = this.props;
                return (_b = (_a = renameBehavior === null || renameBehavior === void 0 ? void 0 : renameBehavior.getDisabledTooltipMsgId) === null || _a === void 0 ? void 0 : _a.call(renameBehavior, selectionStore)) !== null && _b !== void 0 ? _b : '';
            },
            execute: async ([element]) => {
                var _a, _b;
                const disabled = (_b = (_a = this.props.renameBehavior) === null || _a === void 0 ? void 0 : _a.isRenameDisabled) === null || _b === void 0 ? void 0 : _b.call(_a, element);
                const enabled = !disabled;
                if (enabled) {
                    this.setState({ renaming: element });
                }
                return Promise.resolve();
            },
        });
        this.fireFilterMetric = debounce_default()(() => {
            var _a, _b;
            const { ingestSubcategory } = this.props;
            (_b = (_a = this.metrics) === null || _a === void 0 ? void 0 : _a.fireEvent) === null || _b === void 0 ? void 0 : _b.call(_a, {
                event: {
                    subcategory: ingestSubcategory,
                    type: 'render',
                    subtype: 'filter',
                    value: this.getFilteredElements().length,
                },
            });
        }, utils_constants["k" /* INGEST_DEBOUNCE_VALUE */]);
        this.state = {
            filterString: undefined,
            renaming: undefined,
        };
        this.isLoading = () => false;
        this.isBusy = () => {
            const { elements, isLoading = this.isLoading, collection } = this.props;
            // Show spinner when loading and there are no elements, otherwise the user might see the empty view
            // with no indication that content is being fetched. This means that sometimes we will show the spinner
            // when there are is no content to show, causing the empty state to flash.
            // https://jira.corp.adobe.com/browse/CCXCD-1837
            return isLoading() && elements.length === 0 && (!collection || collection.firstFetch);
        };
        this.shouldRenderItemAsDisabled = (element) => {
            const { shouldRenderItemAsDisabled, hostProductData } = this.props;
            // check if enabledTypes exists
            if (hostProductData.enabledTypes) {
                // use it as a reference to disable items by mimetype
                const isEnabledMimetype = 
                // folders are always enabled for navigation
                Object(ICollectionItem["b" /* isFolder */])(element) || hostProductData.enabledTypes.includes(element.type);
                if (!isEnabledMimetype) {
                    return true;
                }
            }
            return shouldRenderItemAsDisabled === null || shouldRenderItemAsDisabled === void 0 ? void 0 : shouldRenderItemAsDisabled(element);
        };
        this.getEmptyViewProps = () => {
            const { ingestSubcategory, hostProductData } = this.props;
            const { filterString } = this.state;
            const { productName } = hostProductData;
            const showEmptyFilterView = filterString && this.getFilteredElements().length === 0;
            const filterEmptyProps = {
                image: react_default.a.createElement(svgs_EmptyFilterView, null),
                subtitleId: 'empty.filter.subtitle',
                titleId: 'empty.filter.title',
                viewName: ingestSubcategory,
                filterString,
                ingestSubcategory,
                productName,
            };
            if (showEmptyFilterView) {
                return filterEmptyProps;
            }
            // other future emptyview conditions here
            return undefined;
        };
        this.onItemDragStart = (element, e) => {
            const { viewRootPath, isOnline } = this.props;
            if (!this.selectionStore.isSelected(element)) {
                this.selectionStore.clear();
                this.selectionStore.addSelections([element]);
            }
            Object(drag_utils["l" /* setDragData */])(viewRootPath, Object(SelectionStore["h" /* selectedFolders */])(this.selectionStore), isOnline, Object(derive_parent_path["a" /* default */])(element.path), Object(SelectionStore["e" /* hasOnlyFolders */])(this.selectionStore));
            this.dragState.startDragAsset(element, this.selectionStore.selectedElements, e);
        };
        this.onItemDragEnter = (element, e) => {
            this.validateDropTarget(element, e);
            const isValidDropTarget = e.defaultPrevented;
            if (isValidDropTarget) {
                this.props.onAssetDragEnter && this.props.onAssetDragEnter(element, e, this.dragState);
            }
        };
        this.onItemDragLeave = (element, e) => {
            this.props.onAssetDragLeave && this.props.onAssetDragLeave(element, e, this.dragState);
        };
        this.onItemDrop = (element, e) => {
            const { onItemDrop, callbacks } = this.props;
            // Must re-validate that the element is a valid drop target
            this.validateDropTarget(element, e);
            if (onItemDrop && e.defaultPrevented) {
                if (this.dragState.dragSource === drag_utils["d" /* DragSource */].IMPORT) {
                    if (callbacks.getDraggedFiles) {
                        this.dragState.dragFiles = callbacks.getDraggedFiles(e.nativeEvent);
                    }
                    else {
                        // extracting file data can only be done during onDrop
                        this.dragState.dragFiles = Object.values(e.dataTransfer.files);
                    }
                }
                onItemDrop(element, this.dragState, e);
                // Clear selection when drop is accepted, but not when cancelled. Other clean-up will happen in onDragEnd.
                this.selectionStore.clear();
                // For internal drag source, drop or Esc key will end the drag operation and fire dragEnd event, but when
                // the source is external, dragEnd is not fired. Cleanup must be done here and in dragEnd.
                if (this.dragState.dragSource === drag_utils["d" /* DragSource */].IMPORT) {
                    callbacks.onDragLeaveCDO &&
                        callbacks.onDragLeaveCDO(e, this.dragState.dragSource);
                    this.dragState.cleanUp();
                }
            }
        };
        this.onDragTimerEnd = (element) => {
            const { onDragTimerEnd } = this.props;
            if (onDragTimerEnd) {
                onDragTimerEnd(element);
            }
        };
        this.onDragOver = (e) => {
            const { isFeatureFlagEnabled } = this.props;
            // To support dragging from external source, preventDefault must
            // be called in both dragOver and dragEnter. CDOView should only
            // call preventDefault in dragEnter if it is a valid drop target
            if (isFeatureFlagEnabled('enableDragDrop') || isFeatureFlagEnabled('enableImportDrop')) {
                e.preventDefault();
            }
            this.dragState.onDragOver(e);
        };
        /**
         * For internal drag source, dragEnd is fired on drop or when cancelled by Esc key.
         * For external drag source, no dragEnd events happen.
         */
        this.onDragEnd = () => {
            this.dragState.cleanUp();
        };
        this.onDragEnter = (e) => {
            const { onViewDragEnter } = this.props;
            const isEnteringCDO = Object(drag_utils["i" /* isFirstDragEnter */])(e);
            if (isEnteringCDO) {
                this.dragState.startDragImportIfNeeded(e);
                this.validateViewDropTarget(e);
                if (!e.defaultPrevented) {
                    return;
                }
                onViewDragEnter && onViewDragEnter(e, this.dragState);
            }
        };
        this.onDragLeave = (e) => {
            const { onViewDragLeave } = this.props;
            const isExitingCDO = Object(drag_utils["j" /* isLastDragLeave */])(e);
            if (isExitingCDO) {
                onViewDragLeave && onViewDragLeave(e, this.dragState);
                // For import, if leaving CDOView, clean up drag state so that next drag enter doesn't
                // get treated as a continuation of the import. That drag enter will need to be re-evaluated.
                if (this.dragState.dragSource === drag_utils["d" /* DragSource */].IMPORT) {
                    this.dragState.cleanUp();
                }
            }
        };
        /**
         * If onItemDrop doesn't handle the drop gesture (it doesn't call stopPropagation()), or if the drop
         * happens on something other than a grid/list item, it'll bubble to CDOView's top-level drop event handler.
         * This allows drop on empty view, or outside a grid/list view to be interpreted as "drop in this collection,
         * whatever that means."
         *
         * @param {React.DragEvent<HTMLDivElement>} e
         */
        this.onViewDrop = (e) => {
            e.preventDefault();
            e.stopPropagation();
            const { onViewDrop, callbacks, onViewDragLeave } = this.props;
            if (!onViewDrop || !this.dragState.dragSource) {
                return;
            }
            if (this.dragState.dragSource === drag_utils["d" /* DragSource */].IMPORT) {
                if (callbacks.getDraggedFiles) {
                    this.dragState.dragFiles = callbacks.getDraggedFiles(e.nativeEvent);
                }
                else {
                    // extracting file data can only be done during onDrop
                    this.dragState.dragFiles = Object.values(e.dataTransfer.files);
                }
            }
            const accepted = onViewDrop(this.dragState);
            // Clear selection when drop is accepted, but not when cancelled. Other clean-up will happen in onDragEnd.
            if (accepted) {
                this.selectionStore.clear();
            }
            // For internal drag source, drop or Esc key will end the drag operation and fire dragEnd event, but when
            // the source is external, dragEnd is not fired. Cleanup must be done here and in dragEnd.
            if (this.dragState.dragSource === drag_utils["d" /* DragSource */].IMPORT) {
                onViewDragLeave && onViewDragLeave(e, this.dragState);
                this.dragState.cleanUp();
            }
        };
        this.onExternalDrop = (e) => {
            const { onExternalDrop } = this.props;
            if (onExternalDrop && Object(drag_utils["k" /* isValidExternalDropTarget */])(e)) {
                e.preventDefault();
                onExternalDrop(this.dragState, Object(drag_utils["g" /* getDropTargetData */])(e));
                this.selectionStore.clear();
            }
        };
        this.onItemClicked = (element) => {
            var _a, _b, _c;
            const { callbacks, ingestSubcategory, onBeforeItemClicked, isFeatureFlagEnabled, mapItemsForLaunch, launchItems, } = this.props;
            let eventSubType = utils_metrics["a" /* ActionAnalyticsValue */].Open;
            if (onBeforeItemClicked && onBeforeItemClicked(element) === false) {
                return;
            }
            if (isFeatureFlagEnabled('doubleClickToPreview')) {
                const docInfo = mapItemsForLaunch(element);
                (_a = callbacks.onPreviewDocument) === null || _a === void 0 ? void 0 : _a.call(callbacks, docInfo);
                eventSubType = utils_metrics["a" /* ActionAnalyticsValue */].Preview;
            }
            else {
                launchItems([element], callbacks.onOpenDocuments);
            }
            (_c = (_b = this.metrics) === null || _b === void 0 ? void 0 : _b.logUsageMetric) === null || _c === void 0 ? void 0 : _c.call(_b, {
                ingestSubcategory,
                element,
                subtype: eventSubType,
                menu: CollectionViewMetrics["c" /* MenuType */].Item,
            });
        };
        this.onDocMounted = (item) => {
            const { fetchRendition, onItemMounted } = this.props;
            fetchRendition === null || fetchRendition === void 0 ? void 0 : fetchRendition(item);
            onItemMounted === null || onItemMounted === void 0 ? void 0 : onItemMounted(item);
        };
        this.onDocUnmounted = (doc) => {
            const { cancelFetchRendition } = this.props;
            cancelFetchRendition === null || cancelFetchRendition === void 0 ? void 0 : cancelFetchRendition(doc);
        };
        this.onFilterChange = (value) => {
            this.setFilterString(value);
            this.selectionStore.clear();
        };
        this.onViewModeChange = (viewMode) => {
            var _a, _b;
            const { ingestSubcategory, setViewMode } = this.props;
            setViewMode === null || setViewMode === void 0 ? void 0 : setViewMode(viewMode);
            (_b = (_a = this.metrics) === null || _a === void 0 ? void 0 : _a.fireEvent) === null || _b === void 0 ? void 0 : _b.call(_a, {
                event: {
                    subcategory: ingestSubcategory,
                    workflow: 'Folder-Operation',
                    type: 'click',
                    subtype: viewMode,
                },
            });
        };
        this.onItemSelected = (element, extendSelectionMode) => {
            const { elements } = this.props;
            this.selectionStore.extendSelection(elements, element, extendSelectionMode, this.singleSelectTogglesSelection);
        };
        this.onActionButtonClick = async (action, menu, selectedElements) => {
            var _a;
            const { ingestSubcategory, setOperationState } = this.props;
            const usageMetricLogger = (_a = this.metrics) === null || _a === void 0 ? void 0 : _a.getUsageMetricLogger(action, ingestSubcategory);
            let filteredElements = selectedElements;
            let moreArgs = [];
            if (action.beforeExecute) {
                // warning: if an action's op is runInBackground: true and a beforeExecute is present,
                // a loading spinner will still show during beforeExecute
                setOperationState === null || setOperationState === void 0 ? void 0 : setOperationState(constants["n" /* ProcessingState */].Pending);
                // Async "confirm" step. Resolves with an array of elements that can be acted on, plus any
                // additional arguments that need to be passed to execute.
                // Resolve with empty array to cancel the action.
                try {
                    [filteredElements, ...moreArgs] = await action.beforeExecute(selectedElements);
                }
                catch (e) {
                    this.logger.error(e);
                    setOperationState === null || setOperationState === void 0 ? void 0 : setOperationState(constants["n" /* ProcessingState */].Idle);
                    return;
                }
            }
            if (filteredElements.length > 0) {
                usageMetricLogger === null || usageMetricLogger === void 0 ? void 0 : usageMetricLogger.start(filteredElements, CollectionViewMetrics["a" /* EventType */].Click, menu);
                if (action.resetSelection) {
                    this.resetSelection();
                }
                try {
                    await action.execute(filteredElements, usageMetricLogger === null || usageMetricLogger === void 0 ? void 0 : usageMetricLogger.correlationId, ...moreArgs);
                    usageMetricLogger === null || usageMetricLogger === void 0 ? void 0 : usageMetricLogger.success();
                }
                catch (e) {
                    this.logger.error(e);
                }
            }
            else {
                // Action was cancelled in beforeExecute.
                // Cancel metric is based on items selected at the time of cancellation
                usageMetricLogger.cancel(selectedElements);
            }
            setOperationState === null || setOperationState === void 0 ? void 0 : setOperationState(constants["n" /* ProcessingState */].Idle);
        };
        this.onHeaderActionButtonClick = (action) => {
            this.onActionButtonClick(action, CollectionViewMetrics["c" /* MenuType */].Header, this.selectionStore.selectedElements);
        };
        this.onItemActionButtonClick = (action, element) => {
            this.onActionButtonClick(action, CollectionViewMetrics["c" /* MenuType */].Context, [element]);
        };
        this.onFolderActionClick = (action) => {
            const { currentPath } = this.props;
            const tempElement = Object(create_placeholder_folder["a" /* default */])('', currentPath);
            this.onActionButtonClick(action, CollectionViewMetrics["c" /* MenuType */].Header, [tempElement]);
        };
        /**
         * The handler for select-all/deselect-all toggle
         * @returns {undefined}
         */
        this.onSelectAllItems = () => {
            if (Object(SelectionStore["c" /* hasAny */])(this.selectionStore)) {
                this.selectionStore.clear();
            }
            else {
                this.selectionStore.addSelections(this.getFilteredElements());
            }
        };
        this.onKeyDown = (e) => {
            const { hideSelectionCheckbox } = this.mergeConfigs();
            if (e.key === 'Escape' && Object(SelectionStore["c" /* hasAny */])(this.selectionStore)) {
                // When checkboxes are shown, user can use esc to deselect
                if (!hideSelectionCheckbox) {
                    this.resetSelection();
                    Object(stop_propagation["a" /* default */])(e, true);
                }
            }
        };
        this.onBackgroundClick = (e) => {
            const { hideSelectionCheckbox } = this.mergeConfigs();
            // When checkboxes are shown, user can use the "select all" checkbox to deselect
            if (!hideSelectionCheckbox) {
                return;
            }
            if (Object(SelectionStore["c" /* hasAny */])(this.selectionStore)) {
                // Ignore clicks on the items or their children
                // Fixes CCXCD-5071
                // UXP does not currently support matches
                // https://jira.corp.adobe.com/browse/UXP-11933
                if (e.target.matches('.ViewItem, .ViewItem *')) {
                    return;
                }
                // With modifier key, selection is being extended
                if (e.shiftKey || (Object(platform["b" /* isWindows */])() ? e.ctrlKey : e.metaKey)) {
                    return;
                }
                this.resetSelection();
            }
        };
        this.renderOperationContent = () => {
            const { getProgressProps, getOperationState, onDialogStateChange, modalIsOpen } = this.props;
            const operationState = getOperationState === null || getOperationState === void 0 ? void 0 : getOperationState();
            const progressProps = getProgressProps === null || getProgressProps === void 0 ? void 0 : getProgressProps();
            if (operationState === constants["n" /* ProcessingState */].Pending) {
                return (react_default.a.createElement("div", { id: "CDO_PendingUnderlay", className: "spectrum-Underlay is-open" }, !modalIsOpen && react_default.a.createElement(Busy["a" /* default */], null)));
            }
            else if (operationState === constants["n" /* ProcessingState */].Processing && progressProps) {
                return react_default.a.createElement(components_ProgressDialog, Object.assign({ onDialogStateChange: onDialogStateChange }, progressProps));
            }
        };
        (_b = (_a = this.metrics) === null || _a === void 0 ? void 0 : _a.fireEvent) === null || _b === void 0 ? void 0 : _b.call(_a, {
            event: {
                subcategory: 'Init',
                subtype: 'component',
                type: 'init',
                workflow: 'Initialize',
            },
        });
    }
    componentDidMount() {
        const { collection, fetchMethod, onSelectionChange, resetSelectionOnPathChange, setActiveCollection, currentPath, } = this.props;
        // if collection is null, then it is a custom collection, like Recents
        if (collection) {
            setActiveCollection === null || setActiveCollection === void 0 ? void 0 : setActiveCollection(collection, fetchMethod);
        }
        this.refreshData();
        // Clear selections when navigating to a new view. This assumes we'll never have multiple CDOView
        // instances visible at the same time (e.g., a split-pane view with different folders in each pane). If the need
        // arises, we'll need to go back to having CDOView responsible for constructing and managing SelectionStore
        // and not expose SelectionStore externally.
        this.selectionStore.clear();
        // Provide clients that need it a way to monitor for selection changes and get a reference
        // to the visible actions and the handler to call to perform the action.
        if (onSelectionChange) {
            const selectionChanged = () => onSelectionChange(this.selectionStore, this.allActionMenuItems, this.onActionButtonClick);
            Object(index_module["c" /* disposeOnUnmount */])(this, Object(mobx_module["B" /* reaction */])(() => this.selectionStore.selectedElements, selectionChanged));
            // call once on mount
            selectionChanged();
        }
        if (resetSelectionOnPathChange) {
            // Reset selection on navigation, such as navigation while dragging, or breadcrumbs in CCD
            Object(index_module["c" /* disposeOnUnmount */])(this, Object(mobx_module["B" /* reaction */])(() => currentPath, () => this.selectionStore.clear()));
        }
        const dragOverEl = this.getDragOverElement();
        // `dragover` needs to be on `document` so that the drag card can
        // be dragged outside CDOView
        dragOverEl.addEventListener('dragover', this.onDragOver);
        dragOverEl.addEventListener('drop', this.onExternalDrop);
        // `dragend` needs to be on `document` because navigating folders via
        // drag does not fire `dragend` when bound via a prop in `render()`
        dragOverEl.addEventListener('dragend', this.onDragEnd);
    }
    componentWillUnmount() {
        const dragOverEl = this.getDragOverElement();
        dragOverEl.removeEventListener('dragover', this.onDragOver);
        dragOverEl.removeEventListener('drop', this.onExternalDrop);
        dragOverEl.removeEventListener('dragend', this.onDragEnd);
        this.dragState.cleanUp();
    }
    // encapsulate for ease of testing
    getDragOverElement() {
        return document;
    }
    get allActionMenuItems() {
        const { actionMenuItems = [], selectionDisabled, renameBehavior } = this.props;
        return [
            renameBehavior && this.renameAction,
            ...actionMenuItems,
            !selectionDisabled && this.selectAction,
        ].filter(Boolean);
    }
    isInSelectionMode() {
        const { lockSelectModeOn } = this.mergeConfigs();
        return lockSelectModeOn || Object(SelectionStore["c" /* hasAny */])(this.selectionStore);
    }
    filterItems(filterString, items) {
        this.fireFilterMetric();
        return new fuse_default.a(items, FUSE_OPTIONS).search(filterString);
    }
    setFilterString(s) {
        this.setState({
            filterString: s.trim().normalize(),
        });
    }
    resetSelection() {
        this.selectionStore.clear();
    }
    refreshData() {
        const { fetchMethod, disableFetchWhenOffline, isOnline } = this.props;
        if ((isOnline || !disableFetchWhenOffline) && fetchMethod) {
            fetchMethod();
        }
    }
    getGridSortOptions() {
        return [constants["t" /* UXSortBy */].modifiedDate, constants["t" /* UXSortBy */].title];
    }
    validateViewDropTarget(e) {
        const { isFeatureFlagEnabled } = this.props;
        // Allow import when enabled
        const enableImportDrop = isFeatureFlagEnabled('enableImportDrop');
        if (enableImportDrop && this.dragState.dragSource === drag_utils["d" /* DragSource */].IMPORT) {
            // preventDefault allows drag/drop
            e.preventDefault();
        }
        // Allow drag/drop from CDOView to CDOView
        const enableDragDrop = isFeatureFlagEnabled('enableDragDrop');
        if (enableDragDrop && this.dragState.dragSource === drag_utils["d" /* DragSource */].CDO) {
            e.preventDefault();
        }
    }
    validateDropTarget(element, e) {
        const { isFeatureFlagEnabled } = this.props;
        // Only CDO/import items are valid for dropping
        if (!this.dragState.dragSource) {
            return;
        }
        // Cannot drop onto element that is part of the drag selection
        if (this.dragState.isDraggingElement(element)) {
            return;
        }
        const enableImportDrop = isFeatureFlagEnabled('enableImportDrop');
        if (!enableImportDrop && this.dragState.dragSource === drag_utils["d" /* DragSource */].IMPORT) {
            return;
        }
        const { isValidDropTarget } = this.props;
        if (isValidDropTarget && isValidDropTarget(element, this.dragState, e)) {
            // preventDefault indicates this is a valid drop target
            e.preventDefault();
        }
    }
    isInCCDMode() {
        const { isFeatureFlagEnabled } = this.props;
        return isFeatureFlagEnabled('useCCDmode');
    }
    /**
     * Returns a subset of props configured with defaults/overrides depending on various conditions
     */
    mergeConfigs() {
        const { isFeatureFlagEnabled } = this.props;
        // Configures props with defaults depending on useCCDmode. Other views can override
        const mergeCCDModeConfig = () => {
            const isInCCDMode = this.isInCCDMode();
            const doubleClickToPreviewEnabled = isFeatureFlagEnabled('doubleClickToPreview');
            const { lockSelectModeOn = isInCCDMode, hideActionMenu = isInCCDMode, hideSelectionCheckbox = isInCCDMode, doubleClickToOpen = isInCCDMode && !doubleClickToPreviewEnabled, doubleClickToPreview = isInCCDMode && doubleClickToPreviewEnabled, arrowKeyMovesSelection = isInCCDMode, } = this.props;
            const showHeader = !isInCCDMode;
            const showGridHeader = !isInCCDMode;
            return {
                lockSelectModeOn,
                hideActionMenu,
                showHeader,
                showGridHeader,
                doubleClickToOpen,
                doubleClickToPreview,
                hideSelectionCheckbox,
                arrowKeyMovesSelection,
            };
        };
        // Configures props with overrides depending on selection behavior
        const mergeSelectionBehaviorConfig = () => {
            const { hideSelectionCheckbox } = this.props;
            const { selectionBehavior } = this.selectionStore;
            const isSingleSelect = selectionBehavior.single;
            // fallback to undefined to get filtered out so we don't override the previous merges
            return {
                lockSelectModeOn: isSingleSelect || undefined,
                doubleClickToOpen: isSingleSelect || undefined,
                arrowKeyMovesSelection: isSingleSelect || undefined,
                hideSelectionCheckbox: (selectionBehavior.hideFolderCheckbox && selectionBehavior.hideFileCheckbox) ||
                    hideSelectionCheckbox,
                hideSelectionCheckboxOnFolders: selectionBehavior.hideFolderCheckbox,
                hideSelectAllCheckbox: selectionBehavior.single,
            };
        };
        return merge_default()(mergeCCDModeConfig(), mergeSelectionBehaviorConfig());
    }
    get singleSelectTogglesSelection() {
        return !this.isInCCDMode();
    }
    get isDragDisabled() {
        const { isFeatureFlagEnabled, dragDisabled = true } = this.props;
        const ffDragEnabled = isFeatureFlagEnabled('enableDragDrop') || this.isInCCDMode();
        // drag & drop is disabled when one of the following:
        // - featureflag is off
        // - we're in UAP (handled by CDOTab)
        // - dragDisabled prop is true
        return !ffDragEnabled || dragDisabled;
    }
    getFilteredElements() {
        const { elements } = this.props;
        const { filterString } = this.state;
        return filterString ? this.filterItems(filterString, elements) : elements;
    }
    get commonViewProps() {
        const { elements, activeSort, activeSortDirection, ingestSubcategory, onSortSelected, isFeatureFlagEnabled, isLoading = this.isLoading, selectionDisabled, scrollElementRef, } = this.props;
        const { hideSelectAllCheckbox, arrowKeyMovesSelection } = this.mergeConfigs();
        // Finds the element and pass the index to Grid/List view to be scrolled upto
        const scrollToElement = this.context;
        const scrollIndex = elements.indexOf(scrollToElement);
        const focusManagementEnabled = isFeatureFlagEnabled('focusManagementEnabled');
        const useAdobeReactVirtualized = isFeatureFlagEnabled('useAdobeReactVirtualized');
        return {
            activeSort,
            activeSortDirection,
            elements: this.getFilteredElements(),
            ingestSubcategory,
            focusManagementEnabled,
            useAdobeReactVirtualized,
            onSelectAllItems: selectionDisabled ? undefined : this.onSelectAllItems,
            onSortSelected,
            selectionStore: this.selectionStore,
            isSelectAllDisabled: isLoading(),
            onItemSelected: selectionDisabled ? undefined : this.onItemSelected,
            scrollIndex,
            arrowKeyMovesSelection,
            hideSelectAllCheckbox,
            metrics: this.props.metrics,
            intl: this.props.intl,
            scrollElementRef,
        };
    }
    get commonItemProps() {
        var _a;
        const { isFeatureFlagEnabled, hostProductData, isOnline, onItemContextMenu, allowClickEventOnDisabled, getSelectionStore, metrics, theme, } = this.props;
        const { hideActionMenu, doubleClickToOpen, doubleClickToPreview, hideSelectionCheckboxOnFolders, } = this.mergeConfigs();
        const { defaultDocumentIcons } = hostProductData;
        const focusManagementEnabled = isFeatureFlagEnabled('focusManagementEnabled');
        const dragDisabled = this.isDragDisabled;
        const hideEllipsesMenu = hideActionMenu || Object(SelectionStore["c" /* hasAny */])(this.selectionStore) || this.allActionMenuItems.length <= 1;
        return {
            actionMenuItems: this.allActionMenuItems,
            focusManagementEnabled,
            defaultDocumentIcons,
            shouldRenderItemAsDisabled: this.shouldRenderItemAsDisabled,
            onActionButtonClick: this.onItemActionButtonClick,
            onDocMounted: this.onDocMounted,
            onDocUnmounted: this.onDocUnmounted,
            onItemClickedHandler: this.onItemClicked,
            selectOnClick: this.isInSelectionMode(),
            doubleClickToOpen,
            doubleClickToPreview,
            hideActionMenu: hideEllipsesMenu,
            isOffline: !isOnline,
            onItemContextMenu,
            onItemDragStart: this.onItemDragStart,
            onItemDragEnter: this.onItemDragEnter,
            onItemDragLeave: this.onItemDragLeave,
            onItemDrop: this.onItemDrop,
            dragDisabled,
            hideSelectionCheckboxOnFolders,
            onDragTimerEnd: this.onDragTimerEnd,
            allowClickEventOnDisabled,
            getSelectionStore,
            metrics,
            theme,
            renaming: this.state.renaming,
            onRenameSubmit: (...args) => {
                var _a, _b;
                this.setState({ renaming: undefined });
                (_b = (_a = this.props.renameBehavior) === null || _a === void 0 ? void 0 : _a.onRenameSubmit) === null || _b === void 0 ? void 0 : _b.call(_a, ...args);
            },
            onRenameCancel: () => {
                var _a, _b;
                this.setState({ renaming: undefined });
                (_b = (_a = this.props.renameBehavior) === null || _a === void 0 ? void 0 : _a.onRenameCancel) === null || _b === void 0 ? void 0 : _b.call(_a);
            },
            nameValidator: (_a = this.props.renameBehavior) === null || _a === void 0 ? void 0 : _a.nameValidator,
        };
    }
    render() {
        var _a;
        const { children, elements, ingestSubcategory, className, view, selectionDisabled, isLoading = this.isLoading, isBusy = this.isBusy, hideActionToolbar, isFeatureFlagEnabled, hostProductData, mode, hideActionColumn, isOnline, isUserLoggedIn, toastConfig, cardSize, closeToast, scrollElementRef, } = this.props;
        const { filterString } = this.state;
        const { productId } = hostProductData;
        const { showHeader, showGridHeader, hideSelectionCheckbox } = this.mergeConfigs();
        const operationContent = this.renderOperationContent();
        const betaMode = isFeatureFlagEnabled('betaMode');
        const enableFilter = isFeatureFlagEnabled('enableFilter');
        const leftColumns = [
            !selectionDisabled && !hideSelectionCheckbox && ListView["a" /* Column */].Select,
            ListView["a" /* Column */].Title,
        ];
        const rightColumns = [!hideActionColumn && ListView["a" /* Column */].Action];
        // ensure React Virtualized re-renders when online/offline status changes
        const defaultChangeProps = [isOnline ? 'isOnline' : 'isOffline'];
        const enablePerformanceMetrics = isFeatureFlagEnabled('enablePerformanceMetrics');
        if (!this.renderedWithElements && elements.length > 0 && !isBusy()) {
            if (enablePerformanceMetrics) {
                (_a = window === null || window === void 0 ? void 0 : window.performance) === null || _a === void 0 ? void 0 : _a.measure('cdo:rendered-with-elements');
            }
            this.renderedWithElements = true;
        }
        return (react_default.a.createElement("div", { className: classnames_default()('CDOView', `CDOView-mode-${mode}`, className, productId.toLowerCase(), Object(platform["b" /* isWindows */])() && 'win', scrollElementRef && 'insideScrollElement'), onKeyDown: this.onKeyDown, onDrop: this.onViewDrop, onClick: this.onBackgroundClick, onDragOver: this.onDragOver, onDragEnter: this.onDragEnter, onDragLeave: this.onDragLeave },
            isBusy() && react_default.a.createElement(Busy["a" /* default */], { id: "CDO_WaitSpinner" }),
            !isBusy() && operationContent,
            react["Children"].map(children, (child) => {
                if (!child) {
                    return;
                }
                const { type: ChildType, props: childProps = {} } = child;
                // NOTE: viewProps will override properties specified below
                const { children: grandChildren, ...viewProps } = childProps;
                const { additionalChangeProps: viewChangeProps = [] } = viewProps;
                // Create a new array on each pass so that it doesn't cause duplicates
                const additionalChangeProps = [
                    ...defaultChangeProps,
                    ...viewChangeProps,
                    ...this.selectionStore.selectedElements.map(e => e.id),
                    this.state.renaming,
                ];
                const emptyViewProps = this.getEmptyViewProps();
                const emptyView = emptyViewProps && react_default.a.createElement(EmptyView["g" /* default */], Object.assign({}, emptyViewProps));
                const getFolderViewItem = (element) => Object(ICollectionItem["b" /* isFolder */])(element)
                    ? {
                        grid: react_default.a.createElement(FolderViewItem_FolderGridItem, Object.assign({}, {})),
                        list: react_default.a.createElement(FolderViewItem_FolderListItem, Object.assign({}, {})),
                    }
                    : undefined;
                switch (ChildType) {
                    case CDOHeader["a" /* default */]:
                        return (showHeader &&
                            react_default.a.cloneElement(child, {
                                selectionStore: this.selectionStore,
                                onActionButtonClick: this.onHeaderActionButtonClick,
                                onFolderActionClick: this.onFolderActionClick,
                                betaMode,
                                isLoadingAdditionalContent: isLoading(),
                                ingestSubcategory,
                                onViewModeChange: this.onViewModeChange,
                                disabled: !isUserLoggedIn,
                                viewMode: view,
                                elements,
                                enableFilter,
                                filterString,
                                onFilterChange: this.onFilterChange,
                                ...viewProps,
                                toolbarItems: hideActionToolbar
                                    ? []
                                    : viewProps.toolbarItems,
                            }));
                    case GridView["b" /* default */]: {
                        const getFolderOrGridViewItem = (element) => {
                            var _a, _b, _c;
                            return react_default.a.cloneElement((_c = (_b = (_a = getFolderViewItem(element)) === null || _a === void 0 ? void 0 : _a.grid) !== null && _b !== void 0 ? _b : grandChildren === null || grandChildren === void 0 ? void 0 : grandChildren(element)) !== null && _c !== void 0 ? _c : react_default.a.createElement(GridItem["a" /* default */], Object.assign({}, {})), this.commonItemProps);
                        };
                        return (view === 'grid' &&
                            (emptyView ||
                                react_default.a.cloneElement(child, {
                                    ...this.commonViewProps,
                                    sortOptions: this.getGridSortOptions(),
                                    isHeaderVisible: showGridHeader,
                                    cardSize,
                                    ...viewProps,
                                    additionalChangeProps,
                                    hideSelectionCheckbox,
                                    children: getFolderOrGridViewItem,
                                })));
                    }
                    case ListView["c" /* default */]: {
                        const getFolderOrListViewItem = (element) => {
                            var _a, _b, _c;
                            return react_default.a.cloneElement((_c = (_b = (_a = getFolderViewItem(element)) === null || _a === void 0 ? void 0 : _a.list) !== null && _b !== void 0 ? _b : grandChildren === null || grandChildren === void 0 ? void 0 : grandChildren(element)) !== null && _c !== void 0 ? _c : react_default.a.createElement(ListItem["a" /* default */], Object.assign({}, {})), this.commonItemProps);
                        };
                        const { columns } = viewProps;
                        const listColumns = [
                            ...leftColumns,
                            ...(columns !== null && columns !== void 0 ? columns : []),
                            ...rightColumns,
                        ];
                        return (view === 'list' &&
                            (emptyView ||
                                react_default.a.cloneElement(child, {
                                    ...this.commonViewProps,
                                    ...viewProps,
                                    columns: listColumns,
                                    additionalChangeProps,
                                    children: getFolderOrListViewItem,
                                })));
                    }
                    default: {
                        return child;
                    }
                }
            }),
            react_default.a.createElement(components_DragCard, { dragState: this.dragState }),
            toastConfig && (react_default.a.createElement(components_ToastContainer, { id: "main-toast-container", toast: toastConfig, closeToast: closeToast }))));
    }
};
CDOView_CDOView.contextType = ScrollToElementContext["a" /* default */].getContext();
CDOView_CDOView = CDOView_decorate([
    index_module["e" /* observer */],
    CDOView_metadata("design:paramtypes", [Object, Object])
], CDOView_CDOView);
/* harmony default export */ var components_CDOView = __webpack_exports__["a"] = (CDOView_CDOView);



/***/ }),

/***/ "S3Uj":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


exports.__esModule = true;
exports.default = exports.EXITING = exports.ENTERED = exports.ENTERING = exports.EXITED = exports.UNMOUNTED = void 0;

var PropTypes = _interopRequireWildcard(__webpack_require__("17x9"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

var _reactDom = _interopRequireDefault(__webpack_require__("i8i4"));

var _reactLifecyclesCompat = __webpack_require__("VCL8");

var _PropTypes = __webpack_require__("xfxO");

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _interopRequireWildcard(obj) {
  if (obj && obj.__esModule) {
    return obj;
  } else {
    var newObj = {};

    if (obj != null) {
      for (var key in obj) {
        if (Object.prototype.hasOwnProperty.call(obj, key)) {
          var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};

          if (desc.get || desc.set) {
            Object.defineProperty(newObj, key, desc);
          } else {
            newObj[key] = obj[key];
          }
        }
      }
    }

    newObj.default = obj;
    return newObj;
  }
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

function _inheritsLoose(subClass, superClass) {
  subClass.prototype = Object.create(superClass.prototype);
  subClass.prototype.constructor = subClass;
  subClass.__proto__ = superClass;
}

var UNMOUNTED = 'unmounted';
exports.UNMOUNTED = UNMOUNTED;
var EXITED = 'exited';
exports.EXITED = EXITED;
var ENTERING = 'entering';
exports.ENTERING = ENTERING;
var ENTERED = 'entered';
exports.ENTERED = ENTERED;
var EXITING = 'exiting';
/**
 * The Transition component lets you describe a transition from one component
 * state to another _over time_ with a simple declarative API. Most commonly
 * it's used to animate the mounting and unmounting of a component, but can also
 * be used to describe in-place transition states as well.
 *
 * ---
 *
 * **Note**: `Transition` is a platform-agnostic base component. If you're using
 * transitions in CSS, you'll probably want to use
 * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)
 * instead. It inherits all the features of `Transition`, but contains
 * additional features necessary to play nice with CSS transitions (hence the
 * name of the component).
 *
 * ---
 *
 * By default the `Transition` component does not alter the behavior of the
 * component it renders, it only tracks "enter" and "exit" states for the
 * components. It's up to you to give meaning and effect to those states. For
 * example we can add styles to a component when it enters or exits:
 *
 * ```jsx
 * import { Transition } from 'react-transition-group';
 *
 * const duration = 300;
 *
 * const defaultStyle = {
 *   transition: `opacity ${duration}ms ease-in-out`,
 *   opacity: 0,
 * }
 *
 * const transitionStyles = {
 *   entering: { opacity: 0 },
 *   entered:  { opacity: 1 },
 * };
 *
 * const Fade = ({ in: inProp }) => (
 *   <Transition in={inProp} timeout={duration}>
 *     {state => (
 *       <div style={{
 *         ...defaultStyle,
 *         ...transitionStyles[state]
 *       }}>
 *         I'm a fade Transition!
 *       </div>
 *     )}
 *   </Transition>
 * );
 * ```
 *
 * There are 4 main states a Transition can be in:
 *  - `'entering'`
 *  - `'entered'`
 *  - `'exiting'`
 *  - `'exited'`
 *
 * Transition state is toggled via the `in` prop. When `true` the component
 * begins the "Enter" stage. During this stage, the component will shift from
 * its current transition state, to `'entering'` for the duration of the
 * transition and then to the `'entered'` stage once it's complete. Let's take
 * the following example (we'll use the
 * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):
 *
 * ```jsx
 * function App() {
 *   const [inProp, setInProp] = useState(false);
 *   return (
 *     <div>
 *       <Transition in={inProp} timeout={500}>
 *         {state => (
 *           // ...
 *         )}
 *       </Transition>
 *       <button onClick={() => setInProp(true)}>
 *         Click to Enter
 *       </button>
 *     </div>
 *   );
 * }
 * ```
 *
 * When the button is clicked the component will shift to the `'entering'` state
 * and stay there for 500ms (the value of `timeout`) before it finally switches
 * to `'entered'`.
 *
 * When `in` is `false` the same thing happens except the state moves from
 * `'exiting'` to `'exited'`.
 */

exports.EXITING = EXITING;

var Transition = /*#__PURE__*/function (_React$Component) {
  _inheritsLoose(Transition, _React$Component);

  function Transition(props, context) {
    var _this;

    _this = _React$Component.call(this, props, context) || this;
    var parentGroup = context.transitionGroup; // In the context of a TransitionGroup all enters are really appears

    var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;
    var initialStatus;
    _this.appearStatus = null;

    if (props.in) {
      if (appear) {
        initialStatus = EXITED;
        _this.appearStatus = ENTERING;
      } else {
        initialStatus = ENTERED;
      }
    } else {
      if (props.unmountOnExit || props.mountOnEnter) {
        initialStatus = UNMOUNTED;
      } else {
        initialStatus = EXITED;
      }
    }

    _this.state = {
      status: initialStatus
    };
    _this.nextCallback = null;
    return _this;
  }

  var _proto = Transition.prototype;

  _proto.getChildContext = function getChildContext() {
    return {
      transitionGroup: null // allows for nested Transitions

    };
  };

  Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {
    var nextIn = _ref.in;

    if (nextIn && prevState.status === UNMOUNTED) {
      return {
        status: EXITED
      };
    }

    return null;
  }; // getSnapshotBeforeUpdate(prevProps) {
  //   let nextStatus = null
  //   if (prevProps !== this.props) {
  //     const { status } = this.state
  //     if (this.props.in) {
  //       if (status !== ENTERING && status !== ENTERED) {
  //         nextStatus = ENTERING
  //       }
  //     } else {
  //       if (status === ENTERING || status === ENTERED) {
  //         nextStatus = EXITING
  //       }
  //     }
  //   }
  //   return { nextStatus }
  // }


  _proto.componentDidMount = function componentDidMount() {
    this.updateStatus(true, this.appearStatus);
  };

  _proto.componentDidUpdate = function componentDidUpdate(prevProps) {
    var nextStatus = null;

    if (prevProps !== this.props) {
      var status = this.state.status;

      if (this.props.in) {
        if (status !== ENTERING && status !== ENTERED) {
          nextStatus = ENTERING;
        }
      } else {
        if (status === ENTERING || status === ENTERED) {
          nextStatus = EXITING;
        }
      }
    }

    this.updateStatus(false, nextStatus);
  };

  _proto.componentWillUnmount = function componentWillUnmount() {
    this.cancelNextCallback();
  };

  _proto.getTimeouts = function getTimeouts() {
    var timeout = this.props.timeout;
    var exit, enter, appear;
    exit = enter = appear = timeout;

    if (timeout != null && typeof timeout !== 'number') {
      exit = timeout.exit;
      enter = timeout.enter; // TODO: remove fallback for next major

      appear = timeout.appear !== undefined ? timeout.appear : enter;
    }

    return {
      exit: exit,
      enter: enter,
      appear: appear
    };
  };

  _proto.updateStatus = function updateStatus(mounting, nextStatus) {
    if (mounting === void 0) {
      mounting = false;
    }

    if (nextStatus !== null) {
      // nextStatus will always be ENTERING or EXITING.
      this.cancelNextCallback();

      var node = _reactDom.default.findDOMNode(this);

      if (nextStatus === ENTERING) {
        this.performEnter(node, mounting);
      } else {
        this.performExit(node);
      }
    } else if (this.props.unmountOnExit && this.state.status === EXITED) {
      this.setState({
        status: UNMOUNTED
      });
    }
  };

  _proto.performEnter = function performEnter(node, mounting) {
    var _this2 = this;

    var enter = this.props.enter;
    var appearing = this.context.transitionGroup ? this.context.transitionGroup.isMounting : mounting;
    var timeouts = this.getTimeouts();
    var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED
    // if we are mounting and running this it means appear _must_ be set

    if (!mounting && !enter) {
      this.safeSetState({
        status: ENTERED
      }, function () {
        _this2.props.onEntered(node);
      });
      return;
    }

    this.props.onEnter(node, appearing);
    this.safeSetState({
      status: ENTERING
    }, function () {
      _this2.props.onEntering(node, appearing);

      _this2.onTransitionEnd(node, enterTimeout, function () {
        _this2.safeSetState({
          status: ENTERED
        }, function () {
          _this2.props.onEntered(node, appearing);
        });
      });
    });
  };

  _proto.performExit = function performExit(node) {
    var _this3 = this;

    var exit = this.props.exit;
    var timeouts = this.getTimeouts(); // no exit animation skip right to EXITED

    if (!exit) {
      this.safeSetState({
        status: EXITED
      }, function () {
        _this3.props.onExited(node);
      });
      return;
    }

    this.props.onExit(node);
    this.safeSetState({
      status: EXITING
    }, function () {
      _this3.props.onExiting(node);

      _this3.onTransitionEnd(node, timeouts.exit, function () {
        _this3.safeSetState({
          status: EXITED
        }, function () {
          _this3.props.onExited(node);
        });
      });
    });
  };

  _proto.cancelNextCallback = function cancelNextCallback() {
    if (this.nextCallback !== null) {
      this.nextCallback.cancel();
      this.nextCallback = null;
    }
  };

  _proto.safeSetState = function safeSetState(nextState, callback) {
    // This shouldn't be necessary, but there are weird race conditions with
    // setState callbacks and unmounting in testing, so always make sure that
    // we can cancel any pending setState callbacks after we unmount.
    callback = this.setNextCallback(callback);
    this.setState(nextState, callback);
  };

  _proto.setNextCallback = function setNextCallback(callback) {
    var _this4 = this;

    var active = true;

    this.nextCallback = function (event) {
      if (active) {
        active = false;
        _this4.nextCallback = null;
        callback(event);
      }
    };

    this.nextCallback.cancel = function () {
      active = false;
    };

    return this.nextCallback;
  };

  _proto.onTransitionEnd = function onTransitionEnd(node, timeout, handler) {
    this.setNextCallback(handler);
    var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;

    if (!node || doesNotHaveTimeoutOrListener) {
      setTimeout(this.nextCallback, 0);
      return;
    }

    if (this.props.addEndListener) {
      this.props.addEndListener(node, this.nextCallback);
    }

    if (timeout != null) {
      setTimeout(this.nextCallback, timeout);
    }
  };

  _proto.render = function render() {
    var status = this.state.status;

    if (status === UNMOUNTED) {
      return null;
    }

    var _this$props = this.props,
        children = _this$props.children,
        childProps = _objectWithoutPropertiesLoose(_this$props, ["children"]); // filter props for Transtition


    delete childProps.in;
    delete childProps.mountOnEnter;
    delete childProps.unmountOnExit;
    delete childProps.appear;
    delete childProps.enter;
    delete childProps.exit;
    delete childProps.timeout;
    delete childProps.addEndListener;
    delete childProps.onEnter;
    delete childProps.onEntering;
    delete childProps.onEntered;
    delete childProps.onExit;
    delete childProps.onExiting;
    delete childProps.onExited;

    if (typeof children === 'function') {
      return children(status, childProps);
    }

    var child = _react.default.Children.only(children);

    return _react.default.cloneElement(child, childProps);
  };

  return Transition;
}(_react.default.Component);

Transition.contextTypes = {
  transitionGroup: PropTypes.object
};
Transition.childContextTypes = {
  transitionGroup: function transitionGroup() {}
};
Transition.propTypes =  false ? undefined : {};

function noop() {}

Transition.defaultProps = {
  in: false,
  mountOnEnter: false,
  unmountOnExit: false,
  appear: false,
  enter: true,
  exit: true,
  onEnter: noop,
  onEntering: noop,
  onEntered: noop,
  onExit: noop,
  onExiting: noop,
  onExited: noop
};
Transition.UNMOUNTED = 0;
Transition.EXITED = 1;
Transition.ENTERING = 2;
Transition.ENTERED = 3;
Transition.EXITING = 4;

var _default = (0, _reactLifecyclesCompat.polyfill)(Transition);

exports.default = _default;

/***/ }),

/***/ "S7gF":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

const _excluded = ["styles"];

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }

function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

var _default = _ref => {
  let {
    styles = {}
  } = _ref,
      props = _objectWithoutProperties(_ref, _excluded);

  return /*#__PURE__*/_react.default.createElement("svg", _extends({
    xmlns: "http://www.w3.org/2000/svg",
    height: "200",
    id: "S_Illu_InDesignFirstMile_520x200",
    viewBox: "0 0 520 200",
    width: "520"
  }, props), /*#__PURE__*/_react.default.createElement("defs", null), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M499.433 15.3a.548.548 0 0 0 0-.057 1.5 1.5 0 0 0 0-.335c0-.03 0-.06-.009-.09a1.464 1.464 0 0 0-.106-.367c-.007-.017-.018-.032-.026-.049a1.518 1.518 0 0 0-.112-.2c-.022-.033-.05-.058-.074-.088-.012-.014-.018-.032-.03-.046s-.024-.019-.035-.03a1.487 1.487 0 0 0-.3-.253.226.226 0 0 0-.022-.011 1.444 1.444 0 0 0-.328-.143 1.05 1.05 0 0 0-.1-.028 1.5 1.5 0 0 0-.372-.046l-.04.005a1.517 1.517 0 0 0-.352.06c-.017.005-.034 0-.051.009l-76.816 25.2a3.513 3.513 0 0 0-.739 6.334l18.2 11.135-.129 16.275a3.161 3.161 0 0 0 2.047 3 3.213 3.213 0 0 0 1.152.215 3.16 3.16 0 0 0 2.375-1.081l6.194-7.009a1.5 1.5 0 0 0-2.248-1.986l-6.194 7.009a.161.161 0 0 1-.206.051.164.164 0 0 1-.12-.176L441 58.066l25.94 15.885a3.513 3.513 0 0 0 5-1.471l27.369-56.775c0-.012.006-.024.011-.037a1.47 1.47 0 0 0 .113-.368zm-78.176 26.811a.493.493 0 0 1 .35-.429L488.623 19.7l-49.047 33.977L421.5 42.608a.492.492 0 0 1-.243-.497zm47.979 29.066a.512.512 0 0 1-.73.215l-26.2-16.041 51.829-35.834z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M257.667 144.078a1.5 1.5 0 0 1-1.441-1.086 44.269 44.269 0 0 1 30.351-54.755 1.5 1.5 0 0 1 1.856 1.028l4.584 15.988a1.5 1.5 0 0 1-1.028 1.855 24.634 24.634 0 0 0-10.934 6.564 24.783 24.783 0 0 0-6.182 11.156 24.626 24.626 0 0 0 .228 12.749 1.5 1.5 0 0 1-1.029 1.856l-15.987 4.584a1.532 1.532 0 0 1-.418.061zm.714-21.814a41 41 0 0 0 .341 18.452l13.117-3.762a27.651 27.651 0 0 1-.2-11.385zm.731-2.91l13.252 3.3a27.786 27.786 0 0 1 5.521-9.96l-9.825-9.488a41.9 41.9 0 0 0-8.948 16.144zm11.029-18.306l9.826 9.49a27.647 27.647 0 0 1 9.764-5.861l-3.761-13.118a40.983 40.983 0 0 0-15.829 9.489z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M323.9 125.086a1.5 1.5 0 0 1-1.439-1.086 24.611 24.611 0 0 0-6.562-10.931 24.624 24.624 0 0 0-23.908-5.958 1.5 1.5 0 0 1-1.856-1.029l-4.584-15.988a1.5 1.5 0 0 1 1.028-1.855 44.04 44.04 0 0 1 22.755-.43c.052.008.105.018.157.031a1.511 1.511 0 0 1 .157.048 44.614 44.614 0 0 1 19.761 10.954 1.365 1.365 0 0 1 .123.107c.038.037.074.075.108.115a44 44 0 0 1 11.7 19.527 1.5 1.5 0 0 1-1.028 1.855l-15.988 4.585a1.5 1.5 0 0 1-.424.055zm-4.872-13.108a27.66 27.66 0 0 1 5.862 9.765l13.117-3.762a40.986 40.986 0 0 0-9.508-15.812zm-12.119-7.6a27.806 27.806 0 0 1 9.96 5.521l9.469-9.806a41.6 41.6 0 0 0-16.132-8.941zm-18.055-13.645l3.761 13.117a27.621 27.621 0 0 1 11.386-.2l3.3-13.231a41 41 0 0 0-18.447.314z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M310.568 173.4a1.5 1.5 0 0 1-1.442-1.087l-4.584-15.988a1.5 1.5 0 0 1 1.028-1.855 24.632 24.632 0 0 0 10.933-6.564 24.768 24.768 0 0 0 6.182-11.156 24.623 24.623 0 0 0-.224-12.75 1.5 1.5 0 0 1 1.029-1.854l15.988-4.585a1.5 1.5 0 0 1 1.855 1.028 44.267 44.267 0 0 1-30.352 54.755 1.488 1.488 0 0 1-.413.056zm-2.74-16.5l3.761 13.118a41 41 0 0 0 15.811-9.507l-9.808-9.472a27.653 27.653 0 0 1-9.764 5.861zm11.846-8.021l9.806 9.47a41.6 41.6 0 0 0 8.942-16.133l-13.227-3.3a27.786 27.786 0 0 1-5.521 9.966zm6.249-12.871l13.23 3.3a40.982 40.982 0 0 0-.316-18.445l-13.117 3.761a27.651 27.651 0 0 1 .203 11.387z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M298.715 175.078a44.329 44.329 0 0 1-42.489-32.086 1.5 1.5 0 0 1 1.028-1.856l15.988-4.584a1.505 1.505 0 0 1 1.856 1.029 24.636 24.636 0 0 0 6.564 10.933 24.778 24.778 0 0 0 11.152 6.182 24.624 24.624 0 0 0 12.751-.227 1.5 1.5 0 0 1 1.855 1.028l4.585 15.989a1.5 1.5 0 0 1-1.029 1.854 44.44 44.44 0 0 1-12.261 1.738zm-8.462-3.889a41.029 41.029 0 0 0 18.452-.341l-3.761-13.118a27.627 27.627 0 0 1-11.387.2zm-19.053-9.68a41.869 41.869 0 0 0 16.143 8.949l3.3-13.253a27.775 27.775 0 0 1-9.96-5.52zM259.549 143.6a40.985 40.985 0 0 0 9.489 15.829l9.489-9.827a27.645 27.645 0 0 1-5.86-9.764z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M316.938 113.486a1.5 1.5 0 0 1-1.041-.42 24.778 24.778 0 0 0-11.158-6.185 1.5 1.5 0 1 1 .729-2.91 27.774 27.774 0 0 1 12.511 6.935 1.5 1.5 0 0 1-1.041 2.58z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M291.575 107.166a1.5 1.5 0 0 1-.413-2.941 27.617 27.617 0 0 1 14.306-.254 1.5 1.5 0 1 1-.729 2.91 24.6 24.6 0 0 0-12.75.227 1.488 1.488 0 0 1-.414.058z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M279.975 114.131a1.5 1.5 0 0 1-1.079-2.541 27.632 27.632 0 0 1 12.266-7.365 1.5 1.5 0 0 1 .827 2.883 24.634 24.634 0 0 0-10.934 6.564 1.493 1.493 0 0 1-1.08.459z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M298.76 158.429a27.466 27.466 0 0 1-6.669-.82 1.5 1.5 0 1 1 .728-2.91 24.624 24.624 0 0 0 12.751-.227 1.5 1.5 0 0 1 .827 2.883 27.686 27.686 0 0 1-7.637 1.074z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M317.583 150.449a1.5 1.5 0 0 1-1.08-2.541 24.764 24.764 0 0 0 6.185-11.159 1.5 1.5 0 0 1 2.911.729 27.794 27.794 0 0 1-6.935 12.512 1.5 1.5 0 0 1-1.081.459z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M273.417 125.966a1.485 1.485 0 0 1-.366-.045 1.5 1.5 0 0 1-1.091-1.819 27.79 27.79 0 0 1 6.94-12.512 1.5 1.5 0 1 1 2.16 2.082 24.784 24.784 0 0 0-6.184 11.158 1.5 1.5 0 0 1-1.459 1.136z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M323.9 125.086a1.5 1.5 0 0 1-1.439-1.086 24.618 24.618 0 0 0-6.564-10.933 1.5 1.5 0 0 1 2.082-2.16 27.628 27.628 0 0 1 7.366 12.267 1.5 1.5 0 0 1-1.443 1.913z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M305.982 157.413a1.5 1.5 0 0 1-.412-2.941 24.632 24.632 0 0 0 10.933-6.564 1.5 1.5 0 0 1 2.161 2.082 27.63 27.63 0 0 1-12.267 7.365 1.485 1.485 0 0 1-.415.058z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M324.145 138.614a1.54 1.54 0 0 1-.366-.045 1.5 1.5 0 0 1-1.091-1.82 24.62 24.62 0 0 0-.227-12.75 1.5 1.5 0 1 1 2.884-.826 27.634 27.634 0 0 1 .254 14.305 1.5 1.5 0 0 1-1.454 1.136z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M273.655 139.494a1.5 1.5 0 0 1-1.441-1.086 27.638 27.638 0 0 1-.254-14.306 1.5 1.5 0 0 1 2.911.728 24.623 24.623 0 0 0 .227 12.751 1.5 1.5 0 0 1-1.029 1.855 1.483 1.483 0 0 1-.414.058z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M292.456 157.654a1.526 1.526 0 0 1-.365-.045 27.767 27.767 0 0 1-12.511-6.935 1.5 1.5 0 1 1 2.082-2.16 24.777 24.777 0 0 0 11.157 6.185 1.5 1.5 0 0 1-.363 2.955z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M280.621 151.094a1.5 1.5 0 0 1-1.041-.42 27.631 27.631 0 0 1-7.366-12.266 1.5 1.5 0 1 1 2.884-.827 24.636 24.636 0 0 0 6.564 10.933 1.5 1.5 0 0 1-1.041 2.58z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M367.756 108.632h-11.88a3.88 3.88 0 0 1-3.876-3.876v-11.88A3.881 3.881 0 0 1 355.876 89h11.88a1.5 1.5 0 0 1 0 3h-11.88a.877.877 0 0 0-.876.876v11.88a.876.876 0 0 0 .876.876h11.88a.876.876 0 0 0 .876-.876v-3.57a1.5 1.5 0 1 1 3 0v3.57a3.879 3.879 0 0 1-3.876 3.876z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M362.932 102.59a1.5 1.5 0 0 1-1.06-.439l-3.565-3.565a1.5 1.5 0 1 1 2.121-2.121l2.553 2.553 12.01-10.918a1.5 1.5 0 0 1 2.018 2.221L363.941 102.2a1.5 1.5 0 0 1-1.009.39z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M367.756 140.708h-11.88a3.88 3.88 0 0 1-3.876-3.876v-11.88a3.88 3.88 0 0 1 3.876-3.875h11.88a1.5 1.5 0 0 1 0 3h-11.88a.876.876 0 0 0-.876.875v11.88a.876.876 0 0 0 .876.876h11.88a.876.876 0 0 0 .876-.876v-3.57a1.5 1.5 0 0 1 3 0v3.57a3.879 3.879 0 0 1-3.876 3.876z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M362.932 134.666a1.5 1.5 0 0 1-1.06-.439l-3.565-3.565a1.5 1.5 0 1 1 2.121-2.121l2.553 2.553 12.01-10.919a1.5 1.5 0 0 1 2.018 2.221l-13.068 11.881a1.5 1.5 0 0 1-1.009.389z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M367.756 172.785h-11.88a3.881 3.881 0 0 1-3.876-3.876v-11.88a3.88 3.88 0 0 1 3.876-3.876h11.88a1.5 1.5 0 0 1 0 3h-11.88a.876.876 0 0 0-.876.876v11.88a.877.877 0 0 0 .876.876h11.88a.877.877 0 0 0 .876-.876v-3.571a1.5 1.5 0 0 1 3 0v3.571a3.88 3.88 0 0 1-3.876 3.876z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M362.932 166.743a1.5 1.5 0 0 1-1.06-.44l-3.565-3.564a1.5 1.5 0 1 1 2.121-2.121l2.553 2.552 12.01-10.918a1.5 1.5 0 0 1 2.018 2.221l-13.068 11.88a1.5 1.5 0 0 1-1.009.39z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M206.723 59.361a17 17 0 1 1 17-17 17.019 17.019 0 0 1-17 17zm0-31a14 14 0 1 0 14 14 14.015 14.015 0 0 0-14-14z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M207 69a1 1 0 0 1-1-1V16.185a1 1 0 0 1 2 0V68a1 1 0 0 1-1 1z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M232.908 43h-51.816a1 1 0 0 1 0-2h51.816a1 1 0 1 1 0 2z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M384.935 140.171c11.877-.329 20.016-10.693 26.188-19.681 8.027-11.688 14.055-25.272 24.055-35.485 1.352-1.38-.768-3.5-2.121-2.121-8.722 8.908-14.434 20.415-21.07 30.843-6.039 9.49-14.37 23.092-27.052 23.444-1.926.053-1.934 3.053 0 3z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M132.056 60.174a1.5 1.5 0 0 1-1.126-2.49A52.035 52.035 0 0 1 170 40a1.5 1.5 0 0 1 0 3 49.038 49.038 0 0 0-36.817 16.664 1.5 1.5 0 0 1-1.127.51z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M247.6 119.368a1.494 1.494 0 0 1-.662-.155c-7.036-3.464-10.409-13.456-13.979-24.036-3.352-9.933-6.819-20.205-13.4-25.509a1.5 1.5 0 0 1 1.882-2.336c7.259 5.854 10.868 16.546 14.357 26.886 3.366 9.972 6.544 19.391 12.462 22.3a1.5 1.5 0 0 1-.663 2.846z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M96.085 95.57l-4.314-10.96c0-.011-.01-.019-.014-.029a1.275 1.275 0 0 0-.066-.127 1.448 1.448 0 0 0-.082-.144c0-.007-.008-.016-.014-.024l-4.114-5.751c.112.006.226.028.338.028a5.215 5.215 0 0 0 3.8-1.479c1.34-1.386 1.915-3.968-.5-7.058-4.655-5.973-9.627-11.79-16.119-18.864a41.086 41.086 0 0 0-8.733-7.286 19.893 19.893 0 0 0-4.729-1.917 1.484 1.484 0 0 0-.253-.042L49.714 25.744a4.356 4.356 0 1 0-7.091 5.063L50.1 41.258a38.378 38.378 0 0 0-9.769 2.342c-2.435.957-4.841 2.065-7.168 3.138-4.871 2.245-9.472 4.365-14.485 5.313A1.5 1.5 0 1 0 19.236 55c5.375-1.016 10.361-3.314 15.182-5.536 2.289-1.054 4.656-2.144 7.01-3.069a35.568 35.568 0 0 1 10.7-2.3l8.625 12.055c-2.336-.277-4.233.605-6.279 1.761a98.39 98.39 0 0 1-.993.552 21.206 21.206 0 0 0-6.035 4.349 36.388 36.388 0 0 1-4.506-1.837 1.5 1.5 0 1 0-1.328 2.689C48.467 67.05 56.1 68.042 63.473 69a117.841 117.841 0 0 1 12.7 2.126c1.848.453 3.71 1.528 3.521 2.627s-2.255 1.612-3.469 1.814A441.061 441.061 0 0 1 21.674 81.2a1.5 1.5 0 0 0 .06 3h.066a444.319 444.319 0 0 0 54.923-5.674c.023 0 .042-.01.064-.013L84.5 89.349c0 .007.012.012.017.019a1.55 1.55 0 0 0 .23.251l8.963 7.64a1.5 1.5 0 0 0 2.369-1.691zM64.772 46.478a38.547 38.547 0 0 1 8.018 6.714c6.435 7.008 11.36 12.772 15.968 18.679 1.042 1.336 1.306 2.506.7 3.127-.752.781-2.61.847-4.179-.3a1.5 1.5 0 0 0-.741-.275L64.411 46.287c.12.065.245.124.361.191zM50.714 63.78a25.822 25.822 0 0 1 4.217-2.69q.516-.285 1.018-.567c2.706-1.53 4.28-2.227 7.748-.058a1.516 1.516 0 0 0 .221.11l4.327 6.048c-1.47-.21-2.937-.408-4.386-.6a110.517 110.517 0 0 1-13.145-2.243zm21.566 3.488a1.493 1.493 0 0 0-.218-.467l-27-37.739a1.356 1.356 0 0 1 .316-1.892 1.362 1.362 0 0 1 1.012-.234 1.343 1.343 0 0 1 .881.552L76.32 68.09a74.268 74.268 0 0 0-4.04-.822zm14.559 20.189l-7.018-9.848a5.326 5.326 0 0 0 2.117-1.666l7.109 9.937 2.053 5.206z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M65.8 173.06a3.705 3.705 0 0 1-2.631-1.085A3.778 3.778 0 0 1 62 169.342v-83.1a1.443 1.443 0 0 1 1.43-1.5A1.558 1.558 0 0 1 65 86.241v83.094a.741.741 0 0 0 .287.513.727.727 0 0 0 .514.212V170h87.465c.261 0 .436-.355.517-.436A.876.876 0 0 0 154 169V67.01a1.741 1.741 0 0 0-.25-.8 3.174 3.174 0 0 0-.665-.215H92.234a1.5 1.5 0 0 1 0-3h60.856a4.268 4.268 0 0 1 2.844 1.143A4.221 4.221 0 0 1 157 67v102a3.8 3.8 0 0 1-1.089 2.68 3.946 3.946 0 0 1-2.635 1.32H65.811z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M101.5 72h-5a1 1 0 0 1 0-2h5a1 1 0 0 1 0 2z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M144.5 72h-6a1 1 0 0 1 0-2h6a1 1 0 0 1 0 2z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M144.5 131h-34a1 1 0 0 1 0-2h34a1 1 0 0 1 0 2z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M144.5 145h-34a1 1 0 0 1 0-2h34a1 1 0 0 1 0 2z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M144.5 159h-34a1 1 0 0 1 0-2h34a1 1 0 0 1 0 2z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M139.5 138h-29a1 1 0 0 1 0-2h29a1 1 0 0 1 0 2z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M139.5 152h-29a1 1 0 0 1 0-2h29a1 1 0 0 1 0 2z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M143 122H78a3 3 0 0 1-3-3V82.417a1 1 0 0 1 2 0V119a1 1 0 0 0 1 1h65a1 1 0 0 0 1-1V80a1 1 0 0 0-1-1H95.719a1 1 0 0 1 0-2H143a3 3 0 0 1 3 3v39a3 3 0 0 1-3 3z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M101 159H78a3 3 0 0 1-3-3v-24a3 3 0 0 1 3-3h23a3 3 0 0 1 3 3v24a3 3 0 0 1-3 3zm-23-28a1 1 0 0 0-1 1v24a1 1 0 0 0 1 1h23a1 1 0 0 0 1-1v-24a1 1 0 0 0-1-1z"
  }));
};

exports.default = _default;

/***/ }),

/***/ "SBuE":
/***/ (function(module, exports) {

module.exports = {};

/***/ }),

/***/ "SDFJ":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXPORTS
__webpack_require__.d(__webpack_exports__, "b", function() { return /* binding */ TileStatus; });
__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ CloudIcon; });
__webpack_require__.d(__webpack_exports__, "c", function() { return /* binding */ highestPriorityStatus; });
__webpack_require__.d(__webpack_exports__, "d", function() { return /* binding */ highestPriorityTile; });
__webpack_require__.d(__webpack_exports__, "e", function() { return /* binding */ renderSubtiles; });
__webpack_require__.d(__webpack_exports__, "f", function() { return /* binding */ renderTiles; });

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__("q1tI");
var react_default = /*#__PURE__*/__webpack_require__.n(react);

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/ChevronLeft/index.js
var ChevronLeft = __webpack_require__("fjGn");
var ChevronLeft_default = /*#__PURE__*/__webpack_require__.n(ChevronLeft);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/types/CDOReactIntlTyped.ts
var CDOReactIntlTyped = __webpack_require__("dSAe");

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/ChevronRight/index.js
var ChevronRight = __webpack_require__("+n3g");
var ChevronRight_default = /*#__PURE__*/__webpack_require__.n(ChevronRight);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Wait/index.js
var Wait = __webpack_require__("czhh");
var Wait_default = /*#__PURE__*/__webpack_require__.n(Wait);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/styles/GenericTile.css
var GenericTile = __webpack_require__("tdIs");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/components/GenericTile.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2020 Adobe Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Incorporated.
 **************************************************************************/




const GenericTile_GenericTile = ({ tile, onClick }) => {
    var _a, _b, _c, _d, _e;
    const { id } = tile;
    const { icon, title, body, progress, buttons = [] } = tile.view();
    const enterButton = {
        icon: react_default.a.createElement(ChevronRight_default.a, { size: "S" }),
        action: async () => { },
    };
    const canEnterTile = ((_c = (_b = (_a = tile.subTiles) === null || _a === void 0 ? void 0 : _a.tiles) === null || _b === void 0 ? void 0 : _b.call(_a)) === null || _c === void 0 ? void 0 : _c.length) && !((_e = (_d = tile.subTiles) === null || _d === void 0 ? void 0 : _d.disabled) === null || _e === void 0 ? void 0 : _e.call(_d));
    const allButtons = [...buttons, canEnterTile && enterButton].filter(Boolean);
    return (react_default.a.createElement("div", { className: "GenericTile", role: "button", tabIndex: 0, onClick: () => canEnterTile && onClick(id) },
        react_default.a.createElement("div", { className: "icon" }, icon),
        react_default.a.createElement("div", { className: "msg" },
            react_default.a.createElement("div", { className: "title" }, title),
            body && react_default.a.createElement("div", { className: "body" }, body)),
        progress && react_default.a.createElement("div", { className: "spinner" }, react_default.a.createElement(Wait_default.a, { size: "S" })),
        react_default.a.createElement("div", { className: "buttons" }, allButtons.map(button => (react_default.a.createElement("div", { className: "button", onClick: button.action }, button.icon))))));
};
/* harmony default export */ var components_GenericTile = (GenericTile_GenericTile);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/ErrorBoundary.tsx
var ErrorBoundary = __webpack_require__("SKw+");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/components/Tile.tsx
/*************************************************************************
 *   ADOBE CONFIDENTIAL
 *
 *   Copyright 2022 Adobe
 *   All Rights Reserved.
 *
 *   NOTICE:  All information contained herein is, and remains
 *   the property of Adobe and its suppliers, if any. The intellectual
 *   and technical concepts contained herein are proprietary to Adobe
 *   and its suppliers and are protected by all applicable intellectual
 *   property laws, including trade secret and copyright laws.
 *   Dissemination of this information or reproduction of this material
 *   is strictly forbidden unless prior written permission is obtained
 *   from Adobe.
 **************************************************************************/





// In priority order. Each of these maps to a Cloud Icon, with some overlap.
var TileStatus;
(function (TileStatus) {
    TileStatus[TileStatus["Critical"] = 0] = "Critical";
    TileStatus[TileStatus["Offline"] = 1] = "Offline";
    TileStatus[TileStatus["Disabled"] = 2] = "Disabled";
    TileStatus[TileStatus["Error"] = 3] = "Error";
    TileStatus[TileStatus["Progress"] = 4] = "Progress";
    TileStatus[TileStatus["Paused"] = 5] = "Paused";
    TileStatus[TileStatus["Default"] = 6] = "Default";
})(TileStatus || (TileStatus = {}));
var CloudIcon;
(function (CloudIcon) {
    CloudIcon["Error"] = "ERROR";
    CloudIcon["Disconnected"] = "DISCONNECTED";
    /** TODO: Support for this will be added later */
    CloudIcon["SlowConnection"] = "SLOW_CONNECTION";
    CloudIcon["Paused"] = "PAUSED";
    CloudIcon["Progress"] = "PROGRESS";
    CloudIcon["Cloud"] = "CLOUD";
})(CloudIcon || (CloudIcon = {}));
function highestPriorityStatus(arr, getStatus) {
    if (!arr.length) {
        /** This should never happen, but reduce() needs an initial value */
        throw new Error('No statuses to determine priority status from');
    }
    /**
     * Find the tile with the highest priority status (by finding the status which is
     * numerically the lowest value due to how TS enums work).
     *
     * When multiple tiles have equal statuses, prefer the earliest tile.
     * This way built-in tiles are prioritized
     */
    return arr.reduce((highest, current) => (getStatus(current) < getStatus(highest) ? current : highest), arr[0]);
}
function highestPriorityTile(tiles) {
    return highestPriorityStatus(tiles, t => t.getStatus().status);
}
function renderSubtiles(tile, onClick) {
    const { onExit, subTiles } = tile;
    return (react_default.a.createElement("div", null,
        react_default.a.createElement("div", { className: "CloudSyncStatus_itemsHeader", onClick: () => {
                onClick('');
                onExit();
            }, role: "button", tabIndex: 0 },
            react_default.a.createElement(ChevronLeft_default.a, { size: "S", className: "linkIndicator" }),
            react_default.a.createElement(CDOReactIntlTyped["a" /* FormattedMessage */], { id: subTiles.header })),
        renderTiles(subTiles.tiles(), () => { })));
}
function renderTiles(allTiles, onClick) {
    const errorMessage = (id) => `Tile ${id} has failed to render`;
    return allTiles.map(tile => {
        const { id, view } = tile;
        const render = typeof view === 'function' ? react_default.a.createElement(components_GenericTile, { tile: tile, onClick: onClick }) : tile.view;
        return (react_default.a.createElement(ErrorBoundary["a" /* default */], { message: errorMessage(id), key: id }, render));
    });
}


/***/ }),

/***/ "SEkw":
/***/ (function(module, exports, __webpack_require__) {

module.exports = {
  "default": __webpack_require__("RU/L"),
  __esModule: true
};

/***/ }),

/***/ "SFQz":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("path", {
  d: "M32.586 24H26V5a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v19h-6.586a1 1 0 0 0-.707 1.707L23 36l10.293-10.293A1 1 0 0 0 32.586 24z"
}), React.createElement("path", {
  d: "M40 33v7H6v-7a1 1 0 0 0-1-1H3a1 1 0 0 0-1 1v9a2 2 0 0 0 2 2h38a2 2 0 0 0 2-2v-9a1 1 0 0 0-1-1h-2a1 1 0 0 0-1 1z"
}));

/***/ }),

/***/ "SJ2Q":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.isUrl = isUrl;
exports.normalize = normalize;
exports.removeDiacritics = removeDiacritics;
exports.getTextFromReact = getTextFromReact;
/*************************************************************************
* ADOBE CONFIDENTIAL
* ___________________
*
* Copyright 2019 Adobe
* All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains
* the property of Adobe and its suppliers, if any. The intellectual
* and technical concepts contained herein are proprietary to Adobe
* and its suppliers and are protected by all applicable intellectual
* property laws, including trade secret and copyright laws.
* Dissemination of this information or reproduction of this material
* is strictly forbidden unless prior written permission is obtained
* from Adobe.
**************************************************************************/

function isUrl(string) {
  return string && !!string.match(/\/|:|\./g);
}

function normalize(string = '', normalizationForm = 'NFC') {
  if ('normalize' in String.prototype) {
    string = string.normalize(normalizationForm);
  }

  return string;
}

function removeDiacritics(string = '', normalizationForm = 'NFD') {
  return normalize(string, normalizationForm.replace('C', 'D')).replace(/[\u0300-\u036f]/g, '');
}
/** adapted from https://github.com/rwu823/react-addons-text-content */


function getTextFromReact(reactChild) {
  let result = '';

  const addChildTextToResult = child => {
    if (typeof child === 'string' || typeof child === 'number') {
      result = `${result} ${child}`;
    } else if (Array.isArray(child)) {
      child.forEach(c => addChildTextToResult(c));
    } else if (child && child.props) {
      const {
        children
      } = child.props;

      if (Array.isArray(children)) {
        children.forEach(c => addChildTextToResult(c));
      } else {
        addChildTextToResult(children);
      }
    }
  };

  addChildTextToResult(reactChild); // clean up adjacent whitespace in result

  const adjacentWhitespaceRegex = /(\s)(?:\s+)/g;
  return result.trim().replace(adjacentWhitespaceRegex, '$1');
}

/***/ }),

/***/ "SKw+":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ErrorBoundary; });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/

class ErrorBoundary extends react__WEBPACK_IMPORTED_MODULE_0__["Component"] {
    constructor() {
        super(...arguments);
        this.state = {
            hasError: false,
        };
    }
    static getDerivedStateFromError(error) {
        return { hasError: true };
    }
    componentDidCatch(error) {
        const { message } = this.props;
        // eslint-disable-next-line no-console
        console.error(`Component Error: ${message}`, error);
    }
    render() {
        const { children, message } = this.props;
        const { hasError } = this.state;
        if (hasError) {
            // You can render any custom fallback UI
            return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("p", null, `Error: ${message}`);
        }
        return children;
    }
}


/***/ }),

/***/ "SWRL":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


exports.__esModule = true;

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _activeElement = __webpack_require__("Ed7I");

var _activeElement2 = _interopRequireDefault(_activeElement);

var _contains = __webpack_require__("61Rg");

var _contains2 = _interopRequireDefault(_contains);

var _inDOM = __webpack_require__("Bp9Y");

var _inDOM2 = _interopRequireDefault(_inDOM);

var _propTypes = __webpack_require__("17x9");

var _propTypes2 = _interopRequireDefault(_propTypes);

var _componentOrElement = __webpack_require__("neHb");

var _componentOrElement2 = _interopRequireDefault(_componentOrElement);

var _deprecated = __webpack_require__("9I8b");

var _deprecated2 = _interopRequireDefault(_deprecated);

var _elementType = __webpack_require__("BGzO");

var _elementType2 = _interopRequireDefault(_elementType);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

var _reactDom = __webpack_require__("i8i4");

var _reactDom2 = _interopRequireDefault(_reactDom);

var _warning = __webpack_require__("6DQo");

var _warning2 = _interopRequireDefault(_warning);

var _ModalManager = __webpack_require__("T1cO");

var _ModalManager2 = _interopRequireDefault(_ModalManager);

var _Portal = __webpack_require__("I/DW");

var _Portal2 = _interopRequireDefault(_Portal);

var _RefHolder = __webpack_require__("EfZK");

var _RefHolder2 = _interopRequireDefault(_RefHolder);

var _addEventListener = __webpack_require__("T9VG");

var _addEventListener2 = _interopRequireDefault(_addEventListener);

var _addFocusListener = __webpack_require__("bapk");

var _addFocusListener2 = _interopRequireDefault(_addFocusListener);

var _getContainer = __webpack_require__("eF//");

var _getContainer2 = _interopRequireDefault(_getContainer);

var _ownerDocument = __webpack_require__("z9HI");

var _ownerDocument2 = _interopRequireDefault(_ownerDocument);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _classCallCheck(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}

function _possibleConstructorReturn(self, call) {
  if (!self) {
    throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
  }

  return call && (typeof call === "object" || typeof call === "function") ? call : self;
}

function _inherits(subClass, superClass) {
  if (typeof superClass !== "function" && superClass !== null) {
    throw new TypeError("Super expression must either be null or a function, not " + typeof superClass);
  }

  subClass.prototype = Object.create(superClass && superClass.prototype, {
    constructor: {
      value: subClass,
      enumerable: false,
      writable: true,
      configurable: true
    }
  });
  if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;
}
/* eslint-disable react/prop-types */


var modalManager = new _ModalManager2.default();
/**
 * Love them or hate them, `<Modal/>` provides a solid foundation for creating dialogs, lightboxes, or whatever else.
 * The Modal component renders its `children` node in front of a backdrop component.
 *
 * The Modal offers a few helpful features over using just a `<Portal/>` component and some styles:
 *
 * - Manages dialog stacking when one-at-a-time just isn't enough.
 * - Creates a backdrop, for disabling interaction below the modal.
 * - It properly manages focus; moving to the modal content, and keeping it there until the modal is closed.
 * - It disables scrolling of the page content while open.
 * - Adds the appropriate ARIA roles are automatically.
 * - Easily pluggable animations via a `<Transition/>` component.
 *
 * Note that, in the same way the backdrop element prevents users from clicking or interacting
 * with the page content underneath the Modal, Screen readers also need to be signaled to not to
 * interact with page content while the Modal is open. To do this, we use a common technique of applying
 * the `aria-hidden='true'` attribute to the non-Modal elements in the Modal `container`. This means that for
 * a Modal to be truly modal, it should have a `container` that is _outside_ your app's
 * React hierarchy (such as the default: document.body).
 */

var Modal = function (_React$Component) {
  _inherits(Modal, _React$Component);

  function Modal() {
    var _temp, _this, _ret;

    _classCallCheck(this, Modal);

    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _initialiseProps.call(_this), _temp), _possibleConstructorReturn(_this, _ret);
  }

  Modal.prototype.omitProps = function omitProps(props, propTypes) {
    var keys = Object.keys(props);
    var newProps = {};
    keys.map(function (prop) {
      if (!Object.prototype.hasOwnProperty.call(propTypes, prop)) {
        newProps[prop] = props[prop];
      }
    });
    return newProps;
  };

  Modal.prototype.render = function render() {
    var _props = this.props,
        show = _props.show,
        container = _props.container,
        children = _props.children,
        Transition = _props.transition,
        backdrop = _props.backdrop,
        className = _props.className,
        style = _props.style,
        onExit = _props.onExit,
        onExiting = _props.onExiting,
        onEnter = _props.onEnter,
        onEntering = _props.onEntering,
        onEntered = _props.onEntered;

    var dialog = _react2.default.Children.only(children);

    var filteredProps = this.omitProps(this.props, Modal.propTypes);
    var mountModal = show || Transition && !this.state.exited;

    if (!mountModal) {
      return null;
    }

    var _dialog$props = dialog.props,
        role = _dialog$props.role,
        tabIndex = _dialog$props.tabIndex;

    if (role === undefined || tabIndex === undefined) {
      dialog = (0, _react.cloneElement)(dialog, {
        role: role === undefined ? 'document' : role,
        tabIndex: tabIndex == null ? '-1' : tabIndex
      });
    }

    if (Transition) {
      dialog = _react2.default.createElement(Transition, {
        appear: true,
        unmountOnExit: true,
        'in': show,
        onExit: onExit,
        onExiting: onExiting,
        onExited: this.handleHidden,
        onEnter: onEnter,
        onEntering: onEntering,
        onEntered: onEntered
      }, dialog);
    }

    return _react2.default.createElement(_Portal2.default, {
      ref: this.setMountNode,
      container: container,
      onRendered: this.onPortalRendered
    }, _react2.default.createElement('div', _extends({
      ref: this.setModalNodeRef,
      role: role || 'dialog'
    }, filteredProps, {
      style: style,
      className: className
    }), backdrop && this.renderBackdrop(), _react2.default.createElement(_RefHolder2.default, {
      ref: this.setDialogRef
    }, dialog)));
  };

  Modal.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {
    if (nextProps.show) {
      this.setState({
        exited: false
      });
    } else if (!nextProps.transition) {
      // Otherwise let handleHidden take care of marking exited.
      this.setState({
        exited: true
      });
    }
  };

  Modal.prototype.componentWillUpdate = function componentWillUpdate(nextProps) {
    if (!this.props.show && nextProps.show) {
      this.checkForFocus();
    }
  };

  Modal.prototype.componentDidMount = function componentDidMount() {
    this._isMounted = true;

    if (this.props.show) {
      this.onShow();
    }
  };

  Modal.prototype.componentDidUpdate = function componentDidUpdate(prevProps) {
    var transition = this.props.transition;

    if (prevProps.show && !this.props.show && !transition) {
      // Otherwise handleHidden will call this.
      this.onHide();
    } else if (!prevProps.show && this.props.show) {
      this.onShow();
    }
  };

  Modal.prototype.componentWillUnmount = function componentWillUnmount() {
    var _props2 = this.props,
        show = _props2.show,
        transition = _props2.transition;
    this._isMounted = false;

    if (show || transition && !this.state.exited) {
      this.onHide();
    }
  };

  Modal.prototype.autoFocus = function autoFocus() {
    if (!this.props.autoFocus) {
      return;
    }

    var dialogElement = this.getDialogElement();
    var currentActiveElement = (0, _activeElement2.default)((0, _ownerDocument2.default)(this));

    if (dialogElement && !(0, _contains2.default)(dialogElement, currentActiveElement)) {
      this.lastFocus = currentActiveElement;

      if (!dialogElement.hasAttribute('tabIndex')) {
        (0, _warning2.default)(false, 'The modal content node does not accept focus. For the benefit of ' + 'assistive technologies, the tabIndex of the node is being set ' + 'to "-1".');
        dialogElement.setAttribute('tabIndex', -1);
      }

      dialogElement.focus();
    }
  };

  Modal.prototype.restoreLastFocus = function restoreLastFocus() {
    // Support: <=IE11 doesn't support `focus()` on svg elements (RB: #917)
    if (this.lastFocus && this.lastFocus.focus) {
      this.lastFocus.focus();
      this.lastFocus = null;
    }
  };

  Modal.prototype.getDialogElement = function getDialogElement() {
    return _reactDom2.default.findDOMNode(this.dialog);
  };

  Modal.prototype.isTopModal = function isTopModal() {
    return this.props.manager.isTopModal(this);
  };

  return Modal;
}(_react2.default.Component);

Modal.propTypes = _extends({}, _Portal2.default.propTypes, {
  /**
   * Set the visibility of the Modal
   */
  show: _propTypes2.default.bool,

  /**
   * A Node, Component instance, or function that returns either. The Modal is appended to it's container element.
   *
   * For the sake of assistive technologies, the container should usually be the document body, so that the rest of the
   * page content can be placed behind a virtual backdrop as well as a visual one.
   */
  container: _propTypes2.default.oneOfType([_componentOrElement2.default, _propTypes2.default.func]),

  /**
   * A callback fired when the Modal is opening.
   */
  onShow: _propTypes2.default.func,

  /**
   * A callback fired when either the backdrop is clicked, or the escape key is pressed.
   *
   * The `onHide` callback only signals intent from the Modal,
   * you must actually set the `show` prop to `false` for the Modal to close.
   */
  onHide: _propTypes2.default.func,

  /**
   * Include a backdrop component.
   */
  backdrop: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.oneOf(['static'])]),

  /**
   * A function that returns a backdrop component. Useful for custom
   * backdrop rendering.
   *
   * ```js
   *  renderBackdrop={props => <MyBackdrop {...props} />}
   * ```
   */
  renderBackdrop: _propTypes2.default.func,

  /**
   * A callback fired when the escape key, if specified in `keyboard`, is pressed.
   */
  onEscapeKeyDown: _propTypes2.default.func,

  /**
   * Support for this function will be deprecated. Please use `onEscapeKeyDown` instead
   * A callback fired when the escape key, if specified in `keyboard`, is pressed.
   * @deprecated
   */
  onEscapeKeyUp: (0, _deprecated2.default)(_propTypes2.default.func, 'Please use onEscapeKeyDown instead for consistency'),

  /**
   * A callback fired when the backdrop, if specified, is clicked.
   */
  onBackdropClick: _propTypes2.default.func,

  /**
   * A style object for the backdrop component.
   */
  backdropStyle: _propTypes2.default.object,

  /**
   * A css class or classes for the backdrop component.
   */
  backdropClassName: _propTypes2.default.string,

  /**
   * A css class or set of classes applied to the modal container when the modal is open,
   * and removed when it is closed.
   */
  containerClassName: _propTypes2.default.string,

  /**
   * Close the modal when escape key is pressed
   */
  keyboard: _propTypes2.default.bool,

  /**
   * A `react-transition-group@2.0.0` `<Transition/>` component used
   * to control animations for the dialog component.
   */
  transition: _elementType2.default,

  /**
   * A `react-transition-group@2.0.0` `<Transition/>` component used
   * to control animations for the backdrop components.
   */
  backdropTransition: _elementType2.default,

  /**
   * When `true` The modal will automatically shift focus to itself when it opens, and
   * replace it to the last focused element when it closes. This also
   * works correctly with any Modal children that have the `autoFocus` prop.
   *
   * Generally this should never be set to `false` as it makes the Modal less
   * accessible to assistive technologies, like screen readers.
   */
  autoFocus: _propTypes2.default.bool,

  /**
   * When `true` The modal will prevent focus from leaving the Modal while open.
   *
   * Generally this should never be set to `false` as it makes the Modal less
   * accessible to assistive technologies, like screen readers.
   */
  enforceFocus: _propTypes2.default.bool,

  /**
   * When `true` The modal will restore focus to previously focused element once
   * modal is hidden
   */
  restoreFocus: _propTypes2.default.bool,

  /**
   * Callback fired before the Modal transitions in
   */
  onEnter: _propTypes2.default.func,

  /**
   * Callback fired as the Modal begins to transition in
   */
  onEntering: _propTypes2.default.func,

  /**
   * Callback fired after the Modal finishes transitioning in
   */
  onEntered: _propTypes2.default.func,

  /**
   * Callback fired right before the Modal transitions out
   */
  onExit: _propTypes2.default.func,

  /**
   * Callback fired as the Modal begins to transition out
   */
  onExiting: _propTypes2.default.func,

  /**
   * Callback fired after the Modal finishes transitioning out
   */
  onExited: _propTypes2.default.func,

  /**
   * A ModalManager instance used to track and manage the state of open
   * Modals. Useful when customizing how modals interact within a container
   */
  manager: _propTypes2.default.object.isRequired
});
Modal.defaultProps = {
  show: false,
  backdrop: true,
  keyboard: true,
  autoFocus: true,
  enforceFocus: true,
  restoreFocus: true,
  onHide: function onHide() {},
  manager: modalManager,
  renderBackdrop: function renderBackdrop(props) {
    return _react2.default.createElement('div', props);
  }
};

var _initialiseProps = function _initialiseProps() {
  var _this2 = this;

  this.state = {
    exited: !this.props.show
  };

  this.renderBackdrop = function () {
    var _props3 = _this2.props,
        backdropStyle = _props3.backdropStyle,
        backdropClassName = _props3.backdropClassName,
        renderBackdrop = _props3.renderBackdrop,
        Transition = _props3.backdropTransition;

    var backdropRef = function backdropRef(ref) {
      return _this2.backdrop = ref;
    };

    var backdrop = renderBackdrop({
      ref: backdropRef,
      style: backdropStyle,
      className: backdropClassName,
      onClick: _this2.handleBackdropClick
    });

    if (Transition) {
      backdrop = _react2.default.createElement(Transition, {
        appear: true,
        'in': _this2.props.show
      }, backdrop);
    }

    return backdrop;
  };

  this.onPortalRendered = function () {
    _this2.autoFocus();

    if (_this2.props.onShow) {
      _this2.props.onShow();
    }
  };

  this.onShow = function () {
    var doc = (0, _ownerDocument2.default)(_this2);
    var container = (0, _getContainer2.default)(_this2.props.container, doc.body);

    _this2.props.manager.add(_this2, container, _this2.props.containerClassName);

    _this2._onDocumentKeydownListener = (0, _addEventListener2.default)(doc, 'keydown', _this2.handleDocumentKeyDown);
    _this2._onDocumentKeyupListener = (0, _addEventListener2.default)(doc, 'keyup', _this2.handleDocumentKeyUp);
    _this2._onFocusinListener = (0, _addFocusListener2.default)(_this2.enforceFocus);
  };

  this.onHide = function () {
    _this2.props.manager.remove(_this2);

    _this2._onDocumentKeydownListener.remove();

    _this2._onDocumentKeyupListener.remove();

    _this2._onFocusinListener.remove();

    if (_this2.props.restoreFocus) {
      _this2.restoreLastFocus();
    }
  };

  this.setMountNode = function (ref) {
    _this2.mountNode = ref ? ref.getMountNode() : ref;
  };

  this.setModalNodeRef = function (ref) {
    _this2.modalNode = ref;
  };

  this.setDialogRef = function (ref) {
    _this2.dialog = ref;
  };

  this.handleHidden = function () {
    _this2.setState({
      exited: true
    });

    _this2.onHide();

    if (_this2.props.onExited) {
      var _props4;

      (_props4 = _this2.props).onExited.apply(_props4, arguments);
    }
  };

  this.handleBackdropClick = function (e) {
    if (e.target !== e.currentTarget) {
      return;
    }

    if (_this2.props.onBackdropClick) {
      _this2.props.onBackdropClick(e);
    }

    if (_this2.props.backdrop === true) {
      _this2.props.onHide();
    }
  };

  this.handleDocumentKeyDown = function (e) {
    if (_this2.props.keyboard && e.keyCode === 27 && _this2.isTopModal()) {
      if (_this2.props.onEscapeKeyDown) {
        _this2.props.onEscapeKeyDown(e);
      }

      _this2.props.onHide();
    }
  };

  this.handleDocumentKeyUp = function (e) {
    if (_this2.props.keyboard && e.keyCode === 27 && _this2.isTopModal()) {
      if (_this2.props.onEscapeKeyUp) {
        _this2.props.onEscapeKeyUp(e);
      }
    }
  };

  this.checkForFocus = function () {
    if (_inDOM2.default) {
      _this2.lastFocus = (0, _activeElement2.default)();
    }
  };

  this.enforceFocus = function () {
    if (!_this2.props.enforceFocus || !_this2._isMounted || !_this2.isTopModal()) {
      return;
    }

    var dialogElement = _this2.getDialogElement();

    var currentActiveElement = (0, _activeElement2.default)((0, _ownerDocument2.default)(_this2));

    if (dialogElement && !(0, _contains2.default)(dialogElement, currentActiveElement)) {
      dialogElement.focus();
    }
  };
};

Modal.Manager = _ModalManager2.default;
exports.default = Modal;
module.exports = exports['default'];

/***/ }),

/***/ "SXLS":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__("q1tI");
var react_default = /*#__PURE__*/__webpack_require__.n(react);

// EXTERNAL MODULE: ./node_modules/react-intl-cdo/lib/index.es.js + 1 modules
var index_es = __webpack_require__("VIzJ");

// EXTERNAL MODULE: ./node_modules/classnames/index.js
var classnames = __webpack_require__("TSYQ");
var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);

// EXTERNAL MODULE: ./node_modules/mobx-react/index.module.js
var index_module = __webpack_require__("okNM");

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Rule/index.js
var Rule = __webpack_require__("BUva");
var Rule_default = /*#__PURE__*/__webpack_require__.n(Rule);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/SortDropdown.tsx
var SortDropdown = __webpack_require__("qv4D");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/components/HeaderAction.tsx
var HeaderAction = __webpack_require__("BGxO");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/constants.ts
var constants = __webpack_require__("YVc3");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/styles/SubHeader.css
var styles_SubHeader = __webpack_require__("0qQO");
var SubHeader_default = /*#__PURE__*/__webpack_require__.n(styles_SubHeader);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Button/index.js
var Button = __webpack_require__("Cn9g");
var Button_default = /*#__PURE__*/__webpack_require__.n(Button);

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/ChevronDown/index.js
var ChevronDown = __webpack_require__("uXGE");
var ChevronDown_default = /*#__PURE__*/__webpack_require__.n(ChevronDown);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Menu/index.js
var Menu = __webpack_require__("kzNO");

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/OverlayTrigger/index.js
var OverlayTrigger = __webpack_require__("uYrR");
var OverlayTrigger_default = /*#__PURE__*/__webpack_require__.n(OverlayTrigger);

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/More/index.js
var More = __webpack_require__("qeeD");
var More_default = /*#__PURE__*/__webpack_require__.n(More);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/actions/newFile.tsx
var newFile = __webpack_require__("P69W");

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Tooltip/index.js
var Tooltip = __webpack_require__("DUuf");
var Tooltip_default = /*#__PURE__*/__webpack_require__.n(Tooltip);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/utils/action.ts
var utils_action = __webpack_require__("duTG");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/hooks/useMeasureElementWidth.ts
var useMeasureElementWidth = __webpack_require__("56Hx");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/hooks/useIntl.ts
var useIntl = __webpack_require__("BuN4");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/styles/HeaderActionList.css
var HeaderActionList = __webpack_require__("p0dp");
var HeaderActionList_default = /*#__PURE__*/__webpack_require__.n(HeaderActionList);

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/components/HeaderActionList.tsx















const ACTION_CLICK_DELAY = 10;
const buttonMargin = 8;
// Hack so that we don't have to track width of the button with label and without label
const buttonIconWidth = 38;
const buttonIconWithMargin = buttonMargin + buttonIconWidth;
//  Shouldn't our application internally use a single common Action interface?
//  We should probably coerce external action formats into ours when they enter our system.
const toHeaderAction = (action) => {
    if (action instanceof utils_action["a" /* default */]) {
        return {
            icon: action.icon,
            id: action.value,
            name: react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: action.label }),
            onClick: action.execute,
        };
    }
    else {
        return {
            icon: action.icon,
            id: action.id,
            menu: action.menu,
            name: action.name,
            onClick: action.onClick,
            additionalContentRenderer: action.additionalContentRenderer,
        };
    }
};
const Action = ({ action, iconOnly, getIsButtonDisabled, updateWidth }) => {
    var _a;
    const [_width, setWidth] = Object(react["useState"])(0);
    const buttonRef = Object(react["useRef"])(null);
    Object(react["useEffect"])(() => {
        const { width } = buttonRef === null || buttonRef === void 0 ? void 0 : buttonRef.current.buttonRef.getBoundingClientRect();
        // TLDR: take the largest width on render
        // * In UXP, `getBoundingClientRect` returns 0 during componentDidMount.
        // * In web, the initial width is icon only, follow by icon + label
        if (updateWidth && width > _width) {
            setWidth(width);
            updateWidth(width + buttonMargin);
        }
    });
    const isButtonDisabled = (_a = getIsButtonDisabled === null || getIsButtonDisabled === void 0 ? void 0 : getIsButtonDisabled(undefined)) !== null && _a !== void 0 ? _a : false;
    const disabledCanvasIcon = isButtonDisabled && action.id === 'createCanvas';
    const getTooltipContent = () => {
        if (isButtonDisabled) {
            return react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "tooltip.offline.general" });
        }
        else if (iconOnly) {
            return action.name;
        }
        return null;
    };
    const tooltipContent = getTooltipContent();
    const button = (react_default.a.createElement("div", { className: classnames_default()(HeaderActionList_default.a.buttonContainer, {
            [HeaderActionList_default.a.disabledCanvasIcon]: disabledCanvasIcon,
        }) },
        react_default.a.createElement(Button_default.a, { ref: buttonRef, "data-test-id": `HeaderAction__${action.id}`, disabled: isButtonDisabled, key: action.id, icon: action.icon, iconOnly: false, label: !iconOnly && action.name, quiet: false, variant: "action", onClick: action.onClick }, action.additionalContentRenderer && (react_default.a.createElement("div", { className: HeaderActionList_default.a.additionalButtonRightContent }, action.additionalContentRenderer)))));
    if (!!tooltipContent) {
        return (react_default.a.createElement(OverlayTrigger_default.a, { delayShow: constants["f" /* DEFAULT_TOOLTIP_DELAY */], placement: "bottom", trigger: "hover", boundariesElement: "container" },
            button,
            react_default.a.createElement(Tooltip_default.a, null, tooltipContent)));
    }
    return button;
};
const renderActionMenuButton = ({ action, buttonRef, iconOnly, intl, isButtonDisabled, quiet }) => (react_default.a.createElement("div", { className: HeaderActionList_default.a.buttonContainer },
    react_default.a.createElement(Button_default.a, { ref: buttonRef, "data-test-id": `HeaderAction__${action.id}`, disabled: isButtonDisabled, icon: action.icon, label: !iconOnly && action.name, key: "buttonActions", variant: "action", "aria-label": intl.formatMessage({ id: 'action.menu.label' }) }, !quiet && react_default.a.createElement(ChevronDown_default.a, null))));
const ActionMenu = ({ action, iconOnly, isOffline, onDropdownOpen, onDropdownClose, updateWidth, quiet, }) => {
    const ActionMenuOverlayRef = Object(react["useRef"])(null);
    const buttonRef = Object(react["useRef"])();
    const [_width, setWidth] = Object(react["useState"])(0);
    Object(react["useEffect"])(() => {
        const { width } = buttonRef.current.buttonRef.getBoundingClientRect();
        // TLDR: take the largest width on render
        // * In UXP, `getBoundingClientRect` returns 0 during componentDidMount.
        // * In web, the initial width is icon only, follow by icon + label
        if (updateWidth && width > _width) {
            setWidth(width);
            updateWidth(width + buttonMargin);
        }
    }, [isOffline]);
    let intl = Object(useIntl["a" /* default */])();
    const disabledDropdownButton = isOffline && !iconOnly;
    const sharedButtonProps = {
        action,
        buttonRef,
        iconOnly,
        intl,
        quiet,
    };
    if (disabledDropdownButton) {
        return (react_default.a.createElement(OverlayTrigger_default.a, { trigger: "hover", placement: "bottom left" },
            renderActionMenuButton({ ...sharedButtonProps, isButtonDisabled: true }),
            react_default.a.createElement(Tooltip_default.a, null,
                react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "tooltip.offline.general" }))));
    }
    else {
        return (react_default.a.createElement(OverlayTrigger_default.a, { placement: "bottom left", trigger: ['click'], ref: ActionMenuOverlayRef, onShow: onDropdownOpen, onHide: onDropdownClose },
            renderActionMenuButton({ ...sharedButtonProps, isButtonDisabled: false }),
            react_default.a.createElement(Menu["Menu"], { autoFocus: true }, action.menu.map(toHeaderAction).map(menuItem => (react_default.a.createElement(Menu["MenuItem"], { className: HeaderActionList_default.a.menuItem, disabled: isOffline, key: menuItem.id, icon: menuItem.icon, 
                // Small delay to let Dropdown menu close and make its focus related changes
                // Otherwise dialogs opened from onClick have focus issues
                onClick: () => {
                    // ActionMenu's OverlayTriggers do not automatically close their overlay so we have to do it manually.
                    ActionMenuOverlayRef.current.hide();
                    setTimeout(menuItem.onClick, ACTION_CLICK_DELAY);
                } },
                react_default.a.createElement("div", { className: HeaderActionList_default.a.menuItemContent },
                    menuItem.name,
                    menuItem.additionalContentRenderer && (react_default.a.createElement("div", { className: HeaderActionList_default.a.additionalMenuItemRightContent }, menuItem.additionalContentRenderer)))))))));
    }
};
function HeaderActionList_HeaderActionList({ actionList, className, onDropdownClose, onDropdownOpen, isOffline, justifyContent, autoCollapse = true, }) {
    var _a;
    const _actionList = actionList.map(toHeaderAction);
    const numChildren = _actionList.length;
    const [numExpanded, setNumExpanded] = Object(react["useState"])(autoCollapse ? 0 : numChildren);
    const [childrenWidth, setChildrenWidth] = Object(react["useState"])(new Array(numChildren).fill(0));
    const containerRef = Object(react["useRef"])(null);
    const containerWidth = Object(useMeasureElementWidth["a" /* default */])(containerRef);
    const [hiddenActions, setHiddenActions] = Object(react["useState"])([]);
    const [hiddenActionsDropdown, setHiddenActionsDropdown] = Object(react["useState"])();
    const [showAfterCalculation, setShowAfterCalculation] = Object(react["useState"])(false);
    // Keep track of the maximum width of buttons, so that if we have a
    // super-long translation string, we'll more-or-less have a better estimate
    // of how big the buttons might be when deciding which ones to collapse.
    const _updateWidth = (index, width) => {
        childrenWidth[index] = width;
        setChildrenWidth(childrenWidth);
    };
    function calcWidth(numExpanded) {
        const expandedChildrenWidth = childrenWidth
            .slice(0, numExpanded)
            .reduce((total, current) => total + current, 0);
        const collapsedChildrenWidth = (numChildren - numExpanded) * buttonIconWithMargin;
        // All buttons (with or without labels) are calculated with a left margin,
        // but first item doesn't have a margin, so we're removing that
        return expandedChildrenWidth + collapsedChildrenWidth - buttonMargin;
    }
    // When the parent and children width changes, update the buttons accordingly:
    // * Progressively remove the button label from right to left
    // * [TODO] Progressively remove the button from right to left and consolidate into more actions button
    Object(react["useEffect"])(() => {
        if (!autoCollapse) {
            setShowAfterCalculation(true);
            return;
        }
        if (containerWidth === 0) {
            return;
        }
        // Find out how many we can expand without running out of room.
        let maxExpanded = 0;
        while (calcWidth(maxExpanded + 1) < containerWidth && maxExpanded < numChildren) {
            maxExpanded++;
        }
        setNumExpanded(maxExpanded);
        setShowAfterCalculation(true);
        let currentHiddenActions;
        if (maxExpanded > 0 || containerWidth === 0) {
            setHiddenActions([]);
            setHiddenActionsDropdown(undefined);
            return;
        }
        const maxIconOnlyWidth = buttonIconWithMargin * _actionList.length;
        const numberOfVisibleButtons = Math.floor((containerWidth - maxIconOnlyWidth) / buttonIconWithMargin);
        if (maxIconOnlyWidth * 2 > containerWidth) {
            if ((_actionList.length - 2) * buttonIconWithMargin * 2 < containerWidth) {
                // When hiding buttons, we want to hide last two items together
                currentHiddenActions = _actionList.slice(-2);
            }
            else {
                // After the initial two actions, we want to hide the rest one by one
                // If encountered an actionMenu, we want to push the actions in the menu individually
                const actions = _actionList.slice(numberOfVisibleButtons);
                let mappableActions = actions.map((action, index) => {
                    if (action === null || action === void 0 ? void 0 : action.menu) {
                        return [...action.menu];
                    }
                    else {
                        return action;
                    }
                });
                currentHiddenActions = mappableActions.flat();
            }
        }
        else {
            currentHiddenActions = [];
        }
        setHiddenActions(currentHiddenActions);
        setHiddenActionsDropdown(Object(newFile["a" /* default */])([...currentHiddenActions], 'button.newFile', true, react_default.a.createElement(More_default.a, null)));
    }, [numExpanded, numChildren, containerWidth, autoCollapse, isOffline]);
    if (!_actionList.length) {
        return react_default.a.createElement(react_default.a.Fragment, null);
    }
    return (react_default.a.createElement("div", { ref: containerRef, className: classnames_default()(HeaderActionList_default.a.headerActionList, className, {
            [HeaderActionList_default.a.autoCollapse]: autoCollapse,
            [HeaderActionList_default.a.allCollapsed]: numExpanded === 0,
            [HeaderActionList_default.a.hidden]: !showAfterCalculation,
        }), style: { justifyContent } },
        _actionList.map((action, index) => {
            if (action.menu) {
                return (react_default.a.createElement(ActionMenu, { key: action.id, action: action, iconOnly: index >= numExpanded, onDropdownOpen: onDropdownOpen, onDropdownClose: onDropdownClose, updateWidth: width => _updateWidth(index, width), isOffline: isOffline }));
            }
            if (index >= _actionList.length - hiddenActions.length) {
                return null;
            }
            return (react_default.a.createElement(Action, { key: action.id, action: action, iconOnly: index >= numExpanded, getIsButtonDisabled: element => { var _a; return !((_a = element === null || element === void 0 ? void 0 : element.isAvailableOffline) !== null && _a !== void 0 ? _a : false) && (isOffline !== null && isOffline !== void 0 ? isOffline : false); }, updateWidth: width => _updateWidth(index, width) }));
        }),
        !!((_a = hiddenActionsDropdown === null || hiddenActionsDropdown === void 0 ? void 0 : hiddenActionsDropdown.menu) === null || _a === void 0 ? void 0 : _a.length) && (react_default.a.createElement(ActionMenu, { isOffline: isOffline, action: hiddenActionsDropdown, iconOnly: true, quiet: true }))));
}

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/components/Facepile/Facepile.tsx + 4 modules
var Facepile = __webpack_require__("Rxj1");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/components/header/OneUpToolbar.tsx
var OneUpToolbar = __webpack_require__("d9IO");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/components/header/AppCompatibleFilterButton.tsx
var AppCompatibleFilterButton = __webpack_require__("oINU");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/components/header/SortDropdownButton.tsx
var SortDropdownButton = __webpack_require__("+K6B");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/components/header/ListGridToggleButton.tsx
var ListGridToggleButton = __webpack_require__("+BsC");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/hosts/Host.ts + 9 modules
var Host = __webpack_require__("Dy/p");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/components/header/Toolbar.tsx + 1 modules
var Toolbar = __webpack_require__("cB30");

// EXTERNAL MODULE: ./node_modules/@ccx-public/shared-asset-model-js/dist/mjs/src/index.js
var src = __webpack_require__("m4Z2");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/stores/SharedStore.ts + 6 modules
var SharedStore = __webpack_require__("jmEq");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/SAMUtils.ts
var SAMUtils = __webpack_require__("x7p6");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/stores/Settings.ts
var Settings = __webpack_require__("5u1M");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/components/YourProjects/TeamMembers/useCollaborators.ts
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2022 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/





const LIST_CACHE = {};
function useCollaborators(teamId) {
    const [list, setList] = Object(react["useState"])(LIST_CACHE[teamId || '']);
    Object(react["useEffect"])(() => {
        var _a;
        if (!teamId) {
            return;
        }
        let newList = LIST_CACHE[teamId];
        try {
            if (!newList) {
                newList = LIST_CACHE[teamId] = (_a = SharedStore["d" /* sharedStore */].collaborationContext) === null || _a === void 0 ? void 0 : _a.getCollaborators(teamId).getList(src["h" /* CollaboratorOrder */].default);
            }
            Object(SAMUtils["b" /* refreshList */])(newList);
        }
        catch (e) {
            Settings["b" /* settings */].logger.warn('Failed to fetch facepile users');
        }
        setList(newList);
    }, [teamId]);
    return list;
}

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/facepile.ts
var facepile = __webpack_require__("H/x4");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/components/SubHeader.tsx
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;
};



















/**
 * Component for displaying list and grid view toggle buttons
 */
let SubHeader_SubHeader = class SubHeader extends react["Component"] {
    constructor() {
        super(...arguments);
        this.state = {
            pendingExecute: false,
        };
        this.createHeaderAction = (action, key) => {
            const { selectionStore } = this.props;
            return (react_default.a.createElement(HeaderAction["a" /* default */], Object.assign({}, action, { "data-test-id": action.dataTestId || `HeaderAction__${action.id}`, onClick: (event, ingest) => {
                    action.onClick && action.onClick(event, undefined, undefined, ingest);
                    if (!action.persistSelection) {
                        selectionStore && selectionStore.clear();
                    }
                }, key: key, value: action.id })));
        };
        this.createHeaderActionList = (actions, justifyContent, autoCollapse, className) => {
            const { browseSession } = this.props;
            return (react_default.a.createElement(HeaderActionList_HeaderActionList, { className: className, actionList: actions, isOffline: browseSession.showOfflineWithFeatureFlag, justifyContent: justifyContent, autoCollapse: autoCollapse, onDropdownOpen: () => browseSession.projectsClient.onDialogStateChange(true), onDropdownClose: () => browseSession.projectsClient.onDialogStateChange(false) }));
        };
        this.createHeaderCDOAction = (action, key, iconOnly) => {
            var _a;
            const { selectionStore } = this.props;
            const childrenIfAny = {};
            if ((_a = action === null || action === void 0 ? void 0 : action.children) === null || _a === void 0 ? void 0 : _a.length) {
                const childActions = action.children
                    .map((item) => typeof item === 'function' ? item(selectionStore) : item)
                    .filter(({ isVisible, supportsMultiple }) => (supportsMultiple || (selectionStore === null || selectionStore === void 0 ? void 0 : selectionStore.size) === 1) &&
                    isVisible(selectionStore));
                childrenIfAny.children = childActions;
            }
            return (react_default.a.createElement(HeaderAction["a" /* default */], Object.assign({}, action, childrenIfAny, { name: react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: action.label }), iconOnly: iconOnly, "data-test-id": `HeaderAction__${action.value}`, onClick: async () => {
                    var _a;
                    if (this.state.pendingExecute) {
                        return;
                    }
                    let isActionCompleted;
                    try {
                        this.setState({ pendingExecute: true });
                        const selectedElements = (selectionStore === null || selectionStore === void 0 ? void 0 : selectionStore.selectedElements) || [];
                        isActionCompleted = await action.execute(selectedElements);
                    }
                    finally {
                        this.setState({ pendingExecute: false });
                    }
                    // Clear file selections if no submenu and action completed (user did not cancel)
                    if (!((_a = action === null || action === void 0 ? void 0 : action.children) === null || _a === void 0 ? void 0 : _a.length) && isActionCompleted !== false) {
                        selectionStore === null || selectionStore === void 0 ? void 0 : selectionStore.clear();
                    }
                }, key: key, selectionStore: selectionStore, value: action.label })));
        };
    }
    renderActionsAndListGridToggle(justifyContent) {
        var _a;
        const { activeCompatibleFilter, browseSession, hideFacepile, onActiveCompatibleFilterBy, isLoading, unselectedHeaderActions = [], showListGridToggle, viewMode, onViewModeChange, teamActions, filter, activeSort, activeSortDirection, sortOptions, onSortBy, inviteAction, autoCollapse, } = { ...this.props, ...this.projectsEmptyStateProps() };
        const headerActions = this.createHeaderActionList(unselectedHeaderActions, justifyContent, autoCollapse, 'spacesFolderViewHeaderActionList');
        const teamActionDropdownButton = !!(teamActions === null || teamActions === void 0 ? void 0 : teamActions.length) &&
            this.createHeaderActionList(teamActions, justifyContent, autoCollapse);
        const showLeftSideDivider = Array.isArray(headerActions)
            ? !!headerActions.length
            : !!headerActions;
        if (!isLoading()) {
            return (react_default.a.createElement(react_default.a.Fragment, null,
                react_default.a.cloneElement(headerActions, {
                    // This key instructs `headerActions` to remount, which
                    // is helpful when we change folders, because it
                    // otherwise doesn't have a way to be notified that the
                    // surrounding breadcrumbs have resized.
                    key: (_a = this.props.browseSession.currentFolder) === null || _a === void 0 ? void 0 : _a.id,
                }),
                react_default.a.createElement(TeamFacePile, { hideFacepile: hideFacepile, hostIsMVP: Host["a" /* default */].isMVP, isTeamView: !browseSession.currentProject, teamId: browseSession.currentTeamId }),
                inviteAction && this.createHeaderCDOAction(inviteAction, 1, true),
                teamActionDropdownButton,
                showListGridToggle && (react_default.a.createElement(react_default.a.Fragment, null,
                    showLeftSideDivider && react_default.a.createElement(Toolbar["a" /* default */].Divider, null),
                    react_default.a.createElement(SortDropdownButton["a" /* default */], { activeSort: activeSort, activeSortDirection: activeSortDirection, sortOptions: sortOptions, onSortBy: onSortBy }),
                    Object(Toolbar["b" /* withDividers */])([
                        react_default.a.createElement(ListGridToggleButton["a" /* default */], { key: "listGridToggleButton", viewMode: viewMode, onViewModeChange: onViewModeChange }),
                        [
                            activeCompatibleFilter && onActiveCompatibleFilterBy && (react_default.a.createElement(AppCompatibleFilterButton["b" /* default */], { key: "appCompatibleFilterButton", activeFilter: activeCompatibleFilter, hideLabel: true, onFilterBy: onActiveCompatibleFilterBy })),
                            filter === null || filter === void 0 ? void 0 : filter(),
                        ],
                    ])))));
        }
    }
    projectsEmptyStateProps() {
        const { isEmpty } = this.props;
        if (isEmpty === null || isEmpty === void 0 ? void 0 : isEmpty()) {
            return {
                showListGridToggle: false,
            };
        }
        return {};
    }
    renderMobileSortAndActions() {
        const { activeSort, activeSortDirection, mobile, unselectedHeaderActions, sortOptions, onSortBy, } = this.props;
        if (!mobile) {
            return;
        }
        const VISIBLE_MOBILE_ACTIONS = ['addReviewer'];
        const headerActions = unselectedHeaderActions === null || unselectedHeaderActions === void 0 ? void 0 : unselectedHeaderActions.filter(action => VISIBLE_MOBILE_ACTIONS.includes(action.id)).map(this.createHeaderAction);
        return (react_default.a.createElement("div", { className: classnames_default()(SubHeader_default.a.header, SubHeader_default.a.mobileSubheader) },
            onSortBy && (react_default.a.createElement(SortDropdown["b" /* default */], { options: sortOptions, id: "SubHeader_SortBy", onSelect: onSortBy, sortBy: activeSort, sortDirection: activeSortDirection })),
            headerActions));
    }
    renderSelectionBar() {
        const { selectionStore, selectedHeaderActions, inCDP, inOneUpRootView } = this.props;
        const selectedHeaderData = selectedHeaderActions === null || selectedHeaderActions === void 0 ? void 0 : selectedHeaderActions.map((item) => 
        // For actions with dynamic content, use the function invocation to get itemData
        typeof item === 'function' ? item(selectionStore) : item);
        if (!inCDP && selectionStore && selectionStore.hasAny) {
            return (react_default.a.createElement("div", { className: classnames_default()(SubHeader_default.a.selectedSubHeader, {
                    [SubHeader_default.a.selectedSubHeaderInSubfolderView]: !inOneUpRootView,
                }) },
                react_default.a.createElement("h2", { "data-test-id": "SubHeader__selectionCount" },
                    react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "project1up.subheader.selected", values: { count: selectionStore.size } })),
                react_default.a.createElement("span", null, selectedHeaderData === null || selectedHeaderData === void 0 ? void 0 : selectedHeaderData.filter(({ isVisible, supportsMultiple }) => (supportsMultiple || selectionStore.size === 1) &&
                    isVisible(selectionStore)).map((action, index) => this.createHeaderCDOAction(action, index)))));
        }
    }
    render() {
        const { selectionStore, expanded, hideHeaderWhenSelected } = this.props;
        const hasSelections = selectionStore === null || selectionStore === void 0 ? void 0 : selectionStore.hasAny;
        const { browseSession, getProjectActions, project, onLeaveAfter, onProjectActionSelected, mobile, openShareSheet, hideSecondRow, title, } = this.props;
        const toolbar = project && (react_default.a.createElement(OneUpToolbar["b" /* default */], { browseSession: browseSession, currentProject: project, getProjectActions: getProjectActions, isOffline: browseSession.showOfflineWithFeatureFlag, onLeaveAfter: onLeaveAfter, onProjectActionSelected: onProjectActionSelected, mobile: mobile, openShareSheet: openShareSheet }));
        const content = expanded ? (react_default.a.createElement(react_default.a.Fragment, null,
            react_default.a.createElement(Toolbar["a" /* default */], null,
                title,
                toolbar),
            react_default.a.createElement("div", { className: SubHeader_default.a.divider },
                react_default.a.createElement(Rule_default.a, { variant: "small" })),
            !mobile && !hasSelections && !(project === null || project === void 0 ? void 0 : project.isReviewer) && !hideSecondRow && (react_default.a.createElement("div", { className: SubHeader_default.a.secondRow },
                react_default.a.createElement(Toolbar["a" /* default */], null, this.renderActionsAndListGridToggle('flex-start')))))) : (react_default.a.createElement(react_default.a.Fragment, null,
            react_default.a.createElement(Toolbar["a" /* default */], null,
                title && (react_default.a.createElement(react_default.a.Fragment, null,
                    title,
                    react_default.a.createElement(Toolbar["a" /* default */].Expander, null))),
                !hideSecondRow && this.renderActionsAndListGridToggle('flex-end')),
            this.props.project && (react_default.a.createElement("div", { className: SubHeader_default.a.divider },
                react_default.a.createElement(Rule_default.a, { variant: "small", className: SubHeader_default.a.divider })))));
        return (react_default.a.createElement("div", { className: classnames_default()(SubHeader_default.a.SubHeader) },
            hideHeaderWhenSelected && hasSelections ? undefined : content,
            this.renderMobileSortAndActions(),
            hasSelections && this.renderSelectionBar()));
    }
};
SubHeader_SubHeader = __decorate([
    index_module["e" /* observer */]
], SubHeader_SubHeader);
const TeamFacePile = ({ hideFacepile, hostIsMVP, isTeamView, teamId }) => {
    const collaboratorsList = useCollaborators(teamId);
    return (react_default.a.createElement(index_module["a" /* Observer */], null, () => {
        const showFacepile = collaboratorsList && !hideFacepile && isTeamView && hostIsMVP;
        if (showFacepile) {
            return (react_default.a.createElement(Facepile["a" /* default */], { maxFaces: constants["o" /* MAX_DISPLAYED_TEAM_CONTRIBUTOR_FACES */], users: Object(facepile["b" /* getWorkspaceFacepileContributors */])(collaboratorsList.items) }));
        }
        return null;
    }));
};
/* harmony default export */ var components_SubHeader = __webpack_exports__["a"] = (SubHeader_SubHeader);


/***/ }),

/***/ "SYqL":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Span; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return SpanRecorder; });
/* unused harmony export spanStatusfromHttpCode */
/* harmony import */ var _sentry_utils_esm_buildPolyfills__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("P/f2");
/* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("9/Zf");
/* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("kdvv");
/* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("8LbN");
/* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("6PXS");


/**
 * Keeps track of finished spans for a given transaction
 * @internal
 * @hideconstructor
 * @hidden
 */

class SpanRecorder {
  __init() {
    this.spans = [];
  }

  constructor(maxlen = 1000) {
    ;

    SpanRecorder.prototype.__init.call(this);

    this._maxlen = maxlen;
  }
  /**
   * This is just so that we don't run out of memory while recording a lot
   * of spans. At some point we just stop and flush out the start of the
   * trace tree (i.e.the first n spans with the smallest
   * start_timestamp).
   */


  add(span) {
    if (this.spans.length > this._maxlen) {
      span.spanRecorder = undefined;
    } else {
      this.spans.push(span);
    }
  }

}
/**
 * Span contains all data about a span
 */


class Span {
  /**
   * @inheritDoc
   */
  __init2() {
    this.traceId = Object(_sentry_utils__WEBPACK_IMPORTED_MODULE_1__[/* uuid4 */ "f"])();
  }
  /**
   * @inheritDoc
   */


  __init3() {
    this.spanId = Object(_sentry_utils__WEBPACK_IMPORTED_MODULE_1__[/* uuid4 */ "f"])().substring(16);
  }
  /**
   * @inheritDoc
   */

  /**
   * Internal keeper of the status
   */

  /**
   * @inheritDoc
   */

  /**
   * Timestamp in seconds when the span was created.
   */


  __init4() {
    this.startTimestamp = Object(_sentry_utils__WEBPACK_IMPORTED_MODULE_2__[/* timestampWithMs */ "d"])();
  }
  /**
   * Timestamp in seconds when the span ended.
   */

  /**
   * @inheritDoc
   */

  /**
   * @inheritDoc
   */

  /**
   * @inheritDoc
   */


  __init5() {
    this.tags = {};
  }
  /**
   * @inheritDoc
   */
  // eslint-disable-next-line @typescript-eslint/no-explicit-any


  __init6() {
    this.data = {};
  }
  /**
   * List of spans that were finalized
   */

  /**
   * @inheritDoc
   */

  /**
   * You should never call the constructor manually, always use `Sentry.startTransaction()`
   * or call `startChild()` on an existing span.
   * @internal
   * @hideconstructor
   * @hidden
   */


  constructor(spanContext) {
    ;

    Span.prototype.__init2.call(this);

    Span.prototype.__init3.call(this);

    Span.prototype.__init4.call(this);

    Span.prototype.__init5.call(this);

    Span.prototype.__init6.call(this);

    if (!spanContext) {
      return this;
    }

    if (spanContext.traceId) {
      this.traceId = spanContext.traceId;
    }

    if (spanContext.spanId) {
      this.spanId = spanContext.spanId;
    }

    if (spanContext.parentSpanId) {
      this.parentSpanId = spanContext.parentSpanId;
    } // We want to include booleans as well here


    if ('sampled' in spanContext) {
      this.sampled = spanContext.sampled;
    }

    if (spanContext.op) {
      this.op = spanContext.op;
    }

    if (spanContext.description) {
      this.description = spanContext.description;
    }

    if (spanContext.data) {
      this.data = spanContext.data;
    }

    if (spanContext.tags) {
      this.tags = spanContext.tags;
    }

    if (spanContext.status) {
      this.status = spanContext.status;
    }

    if (spanContext.startTimestamp) {
      this.startTimestamp = spanContext.startTimestamp;
    }

    if (spanContext.endTimestamp) {
      this.endTimestamp = spanContext.endTimestamp;
    }
  }
  /**
   * @inheritDoc
   */


  startChild(spanContext) {
    const childSpan = new Span({ ...spanContext,
      parentSpanId: this.spanId,
      sampled: this.sampled,
      traceId: this.traceId
    });
    childSpan.spanRecorder = this.spanRecorder;

    if (childSpan.spanRecorder) {
      childSpan.spanRecorder.add(childSpan);
    }

    childSpan.transaction = this.transaction;

    if ((typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && childSpan.transaction) {
      const opStr = spanContext && spanContext.op || '< unknown op >';
      const nameStr = childSpan.transaction.name || '< unknown name >';
      const idStr = childSpan.transaction.spanId;
      const logMessage = `[Tracing] Starting '${opStr}' span on transaction '${nameStr}' (${idStr}).`;
      childSpan.transaction.metadata.spanMetadata[childSpan.spanId] = {
        logMessage
      };
      _sentry_utils__WEBPACK_IMPORTED_MODULE_3__[/* logger */ "c"].log(logMessage);
    }

    return childSpan;
  }
  /**
   * @inheritDoc
   */


  setTag(key, value) {
    this.tags = { ...this.tags,
      [key]: value
    };
    return this;
  }
  /**
   * @inheritDoc
   */
  // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types


  setData(key, value) {
    this.data = { ...this.data,
      [key]: value
    };
    return this;
  }
  /**
   * @inheritDoc
   */


  setStatus(value) {
    this.status = value;
    return this;
  }
  /**
   * @inheritDoc
   */


  setHttpStatus(httpStatus) {
    this.setTag('http.status_code', String(httpStatus));
    const spanStatus = spanStatusfromHttpCode(httpStatus);

    if (spanStatus !== 'unknown_error') {
      this.setStatus(spanStatus);
    }

    return this;
  }
  /**
   * @inheritDoc
   */


  isSuccess() {
    return this.status === 'ok';
  }
  /**
   * @inheritDoc
   */


  finish(endTimestamp) {
    if ((typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && // Don't call this for transactions
    this.transaction && this.transaction.spanId !== this.spanId) {
      const {
        logMessage
      } = this.transaction.metadata.spanMetadata[this.spanId];

      if (logMessage) {
        _sentry_utils__WEBPACK_IMPORTED_MODULE_3__[/* logger */ "c"].log(logMessage.replace('Starting', 'Finishing'));
      }
    }

    this.endTimestamp = typeof endTimestamp === 'number' ? endTimestamp : Object(_sentry_utils__WEBPACK_IMPORTED_MODULE_2__[/* timestampWithMs */ "d"])();
  }
  /**
   * @inheritDoc
   */


  toTraceparent() {
    let sampledString = '';

    if (this.sampled !== undefined) {
      sampledString = this.sampled ? '-1' : '-0';
    }

    return `${this.traceId}-${this.spanId}${sampledString}`;
  }
  /**
   * @inheritDoc
   */


  toContext() {
    return Object(_sentry_utils__WEBPACK_IMPORTED_MODULE_4__[/* dropUndefinedKeys */ "c"])({
      data: this.data,
      description: this.description,
      endTimestamp: this.endTimestamp,
      op: this.op,
      parentSpanId: this.parentSpanId,
      sampled: this.sampled,
      spanId: this.spanId,
      startTimestamp: this.startTimestamp,
      status: this.status,
      tags: this.tags,
      traceId: this.traceId
    });
  }
  /**
   * @inheritDoc
   */


  updateWithContext(spanContext) {
    this.data = Object(_sentry_utils_esm_buildPolyfills__WEBPACK_IMPORTED_MODULE_0__[/* _nullishCoalesce */ "a"])(spanContext.data, () => ({}));
    this.description = spanContext.description;
    this.endTimestamp = spanContext.endTimestamp;
    this.op = spanContext.op;
    this.parentSpanId = spanContext.parentSpanId;
    this.sampled = spanContext.sampled;
    this.spanId = Object(_sentry_utils_esm_buildPolyfills__WEBPACK_IMPORTED_MODULE_0__[/* _nullishCoalesce */ "a"])(spanContext.spanId, () => this.spanId);
    this.startTimestamp = Object(_sentry_utils_esm_buildPolyfills__WEBPACK_IMPORTED_MODULE_0__[/* _nullishCoalesce */ "a"])(spanContext.startTimestamp, () => this.startTimestamp);
    this.status = spanContext.status;
    this.tags = Object(_sentry_utils_esm_buildPolyfills__WEBPACK_IMPORTED_MODULE_0__[/* _nullishCoalesce */ "a"])(spanContext.tags, () => ({}));
    this.traceId = Object(_sentry_utils_esm_buildPolyfills__WEBPACK_IMPORTED_MODULE_0__[/* _nullishCoalesce */ "a"])(spanContext.traceId, () => this.traceId);
    return this;
  }
  /**
   * @inheritDoc
   */


  getTraceContext() {
    return Object(_sentry_utils__WEBPACK_IMPORTED_MODULE_4__[/* dropUndefinedKeys */ "c"])({
      data: Object.keys(this.data).length > 0 ? this.data : undefined,
      description: this.description,
      op: this.op,
      parent_span_id: this.parentSpanId,
      span_id: this.spanId,
      status: this.status,
      tags: Object.keys(this.tags).length > 0 ? this.tags : undefined,
      trace_id: this.traceId
    });
  }
  /**
   * @inheritDoc
   */


  toJSON() {
    return Object(_sentry_utils__WEBPACK_IMPORTED_MODULE_4__[/* dropUndefinedKeys */ "c"])({
      data: Object.keys(this.data).length > 0 ? this.data : undefined,
      description: this.description,
      op: this.op,
      parent_span_id: this.parentSpanId,
      span_id: this.spanId,
      start_timestamp: this.startTimestamp,
      status: this.status,
      tags: Object.keys(this.tags).length > 0 ? this.tags : undefined,
      timestamp: this.endTimestamp,
      trace_id: this.traceId
    });
  }

}
/**
 * Converts a HTTP status code into a {@link SpanStatusType}.
 *
 * @param httpStatus The HTTP response status code.
 * @returns The span status or unknown_error.
 */


function spanStatusfromHttpCode(httpStatus) {
  if (httpStatus < 400 && httpStatus >= 100) {
    return 'ok';
  }

  if (httpStatus >= 400 && httpStatus < 500) {
    switch (httpStatus) {
      case 401:
        return 'unauthenticated';

      case 403:
        return 'permission_denied';

      case 404:
        return 'not_found';

      case 409:
        return 'already_exists';

      case 413:
        return 'failed_precondition';

      case 429:
        return 'resource_exhausted';

      default:
        return 'invalid_argument';
    }
  }

  if (httpStatus >= 500 && httpStatus < 600) {
    switch (httpStatus) {
      case 501:
        return 'unimplemented';

      case 503:
        return 'unavailable';

      case 504:
        return 'deadline_exceeded';

      default:
        return 'internal_error';
    }
  }

  return 'unknown_error';
}



/***/ }),

/***/ "SZIB":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return EMPTYVIEW_PROPS_FOR_ERROR; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return EMPTYVIEW_PROPS_FOR_ERROR_WEB; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return coreSyncDownEmptyViewProps; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return CORESYNC_INCOMPATIBLE_EMPTYVIEW_PROPS; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return CLOUD_STORAGE_DISABLED_EMPTYVIEW_PROPS; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return LOGGED_OUT_EMPTYVIEW_PROPS; });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var mobx_react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("okNM");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("TSYQ");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _react_react_spectrum_Button__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("Cn9g");
/* harmony import */ var _react_react_spectrum_Button__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Button__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _CDOLink__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("b3kR");
/* harmony import */ var _types_CDOReactIntlTyped__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("dSAe");
/* harmony import */ var _utils_stop_propagation__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("hLgr");
/* harmony import */ var _svgs_UserLoggedOut__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("0ee7");
/* harmony import */ var _styles_EmptyView_css__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("MbVj");
/* harmony import */ var _styles_EmptyView_css__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_styles_EmptyView_css__WEBPACK_IMPORTED_MODULE_8__);
/* harmony import */ var _utils_urls__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__("RIxR");
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;
};










const EMPTYVIEW_PROPS_FOR_ERROR = {
    subtitleId: 'empty.subtext.error',
    titleId: 'empty.title.error',
};
const EMPTYVIEW_PROPS_FOR_ERROR_WEB = {
    subtitleId: 'empty.subtext.error.web',
    titleId: 'empty.title.error',
};
const coreSyncDownEmptyViewProps = (locale) => ({
    subtitleId: 'empty.subtext.coresync.down',
    titleId: 'empty.title.coresync.down',
    helpLink: Object(_utils_urls__WEBPACK_IMPORTED_MODULE_9__[/* coreSyncTroubleshootUrl */ "f"])(locale),
});
const CORESYNC_INCOMPATIBLE_EMPTYVIEW_PROPS = {
    subtitleId: 'empty.subtext.coresync.incompatible',
    titleId: 'empty.title.coresync.incompatible',
};
const CLOUD_STORAGE_DISABLED_EMPTYVIEW_PROPS = {
    subtitleId: 'empty.subtext.cloudStorageDisabled',
    titleId: 'empty.title.cloudStorageDisabled',
    helpLink: '',
};
const LOGGED_OUT_EMPTYVIEW_PROPS = {
    image: react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_svgs_UserLoggedOut__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"], null),
    titleId: 'empty.title.logout',
    helpLink: '',
};
const buttonString = {
    createnew: 'button.createnew',
    upload: 'button.upload',
};
/**
 * Container for the EmptyView view.
 */
let EmptyView = class EmptyView extends react__WEBPACK_IMPORTED_MODULE_0__["Component"] {
    constructor() {
        super(...arguments);
        this.metrics = this.props.metrics;
        this._handleClick = (action) => {
            const { callbacks, currentPath } = this.props;
            const { onNewDocument } = callbacks;
            // Keeping Gallery workflow event intact here as it's count is very minimal (0.002%)
            switch (action) {
                case 'createnew':
                    this.fireIngestEventEmptyClick('create-new', 'empty', 'Gallery');
                    if (onNewDocument) {
                        onNewDocument(currentPath);
                    }
                    break;
                default:
                    break;
            }
        };
    }
    componentDidMount() {
        var _a, _b;
        const { ingestSubcategory, renderEventMetricSubtype } = this.props;
        // NOTE: this is for SDM metrics, check before adding new renderEventMetricSubtype
        if (renderEventMetricSubtype) {
            (_b = (_a = this.metrics) === null || _a === void 0 ? void 0 : _a.fireEvent) === null || _b === void 0 ? void 0 : _b.call(_a, {
                event: {
                    type: 'render',
                    value: 'empty',
                    subtype: renderEventMetricSubtype,
                    subcategory: ingestSubcategory,
                },
            });
        }
    }
    fireIngestEventEmptyClick(subtype, value, workflow) {
        var _a, _b;
        const { ingestSubcategory } = this.props;
        (_b = (_a = this.metrics) === null || _a === void 0 ? void 0 : _a.fireEvent) === null || _b === void 0 ? void 0 : _b.call(_a, {
            event: {
                subcategory: ingestSubcategory,
                subtype,
                type: 'click',
                value,
                workflow,
            },
        });
    }
    renderButtons(buttons) {
        const { intl } = this.props;
        return buttons.map(value => (react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_react_react_spectrum_Button__WEBPACK_IMPORTED_MODULE_3___default.a, { id: `button.${value}`, className: "button", variant: "primary", key: value, label: intl.formatMessage({ id: buttonString[value] }), onClick: () => this._handleClick(value) })));
    }
    /**
     * Component renderer.
     * @return {ReactElement} markup
     */
    render() {
        const { helpLink, image, titleId, subtitleId, hideSubtitle, buttons, automationSuffix, className, productName, filterString, } = this.props;
        return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: classnames__WEBPACK_IMPORTED_MODULE_2___default()('EmptyView', className), id: `EmptyView_${automationSuffix}` },
            image && react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: "emptyImage" }, image),
            react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: "message" },
                react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: "title" },
                    react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_types_CDOReactIntlTyped__WEBPACK_IMPORTED_MODULE_5__[/* FormattedMessage */ "a"], { id: titleId, values: { productName, filterString } })),
                !hideSubtitle && subtitleId && (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: "subtitle" },
                    react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_types_CDOReactIntlTyped__WEBPACK_IMPORTED_MODULE_5__[/* FormattedMessage */ "a"], { id: subtitleId, values: { productName } }),
                    helpLink && (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { onClick: _utils_stop_propagation__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"] },
                        react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_CDOLink__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"], { href: helpLink },
                            react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_types_CDOReactIntlTyped__WEBPACK_IMPORTED_MODULE_5__[/* FormattedMessage */ "a"], { id: "empty.learnMore.link" }))))))),
            buttons && (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: "buttons", id: "EmptyView_Buttons" }, this.renderButtons(buttons)))));
    }
};
EmptyView = __decorate([
    Object(mobx_react__WEBPACK_IMPORTED_MODULE_1__[/* inject */ "d"])('callbacks', 'metrics')
], EmptyView);
/* harmony default export */ __webpack_exports__["g"] = (Object(_types_CDOReactIntlTyped__WEBPACK_IMPORTED_MODULE_5__[/* injectIntl */ "e"])(EmptyView));


/***/ }),

/***/ "SZsF":
/***/ (function(module) {

module.exports = JSON.parse("{\"Clear search\":\"Clear search\"}");

/***/ }),

/***/ "SfRM":
/***/ (function(module, exports, __webpack_require__) {

var nativeCreate = __webpack_require__("YESw");
/**
 * Removes all key-value entries from the hash.
 *
 * @private
 * @name clear
 * @memberOf Hash
 */


function hashClear() {
  this.__data__ = nativeCreate ? nativeCreate(null) : {};
  this.size = 0;
}

module.exports = hashClear;

/***/ }),

/***/ "SgDU":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return SortArrow; });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _spectrum_spectrum_iconstore_icons_react_core_ArrowDownSmall__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("h6/1");
/* harmony import */ var _spectrum_spectrum_iconstore_icons_react_core_ArrowDownSmall__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_spectrum_spectrum_iconstore_icons_react_core_ArrowDownSmall__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _spectrum_spectrum_iconstore_icons_react_core_ArrowUpSmall__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("PaYk");
/* harmony import */ var _spectrum_spectrum_iconstore_icons_react_core_ArrowUpSmall__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_spectrum_spectrum_iconstore_icons_react_core_ArrowUpSmall__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _stores_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("C0qj");
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2019 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/

// @ts-ignore -- svg

// @ts-ignore -- svg


const SortArrow = ({ activeSortDirection }) => activeSortDirection === _stores_constants__WEBPACK_IMPORTED_MODULE_3__[/* UXSortDir */ "w"].desc ? (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_spectrum_spectrum_iconstore_icons_react_core_ArrowDownSmall__WEBPACK_IMPORTED_MODULE_1___default.a, { size: "XS", className: "sortDirectionIcon" })) : (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_spectrum_spectrum_iconstore_icons_react_core_ArrowUpSmall__WEBPACK_IMPORTED_MODULE_2___default.a, { size: "XS", className: "sortDirectionIcon" }));


/***/ }),

/***/ "Si88":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


exports.__esModule = true;
exports.default = void 0;

var PropTypes = _interopRequireWildcard(__webpack_require__("17x9"));

var _addClass = _interopRequireDefault(__webpack_require__("ycFn"));

var _removeClass = _interopRequireDefault(__webpack_require__("VOcB"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

var _Transition = _interopRequireDefault(__webpack_require__("S3Uj"));

var _PropTypes = __webpack_require__("xfxO");

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _interopRequireWildcard(obj) {
  if (obj && obj.__esModule) {
    return obj;
  } else {
    var newObj = {};

    if (obj != null) {
      for (var key in obj) {
        if (Object.prototype.hasOwnProperty.call(obj, key)) {
          var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};

          if (desc.get || desc.set) {
            Object.defineProperty(newObj, key, desc);
          } else {
            newObj[key] = obj[key];
          }
        }
      }
    }

    newObj.default = obj;
    return newObj;
  }
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _inheritsLoose(subClass, superClass) {
  subClass.prototype = Object.create(superClass.prototype);
  subClass.prototype.constructor = subClass;
  subClass.__proto__ = superClass;
}

var addClass = function addClass(node, classes) {
  return node && classes && classes.split(' ').forEach(function (c) {
    return (0, _addClass.default)(node, c);
  });
};

var removeClass = function removeClass(node, classes) {
  return node && classes && classes.split(' ').forEach(function (c) {
    return (0, _removeClass.default)(node, c);
  });
};
/**
 * A transition component inspired by the excellent
 * [ng-animate](http://www.nganimate.org/) library, you should use it if you're
 * using CSS transitions or animations. It's built upon the
 * [`Transition`](https://reactcommunity.org/react-transition-group/transition)
 * component, so it inherits all of its props.
 *
 * `CSSTransition` applies a pair of class names during the `appear`, `enter`,
 * and `exit` states of the transition. The first class is applied and then a
 * second `*-active` class in order to activate the CSSS transition. After the
 * transition, matching `*-done` class names are applied to persist the
 * transition state.
 *
 * ```jsx
 * function App() {
 *   const [inProp, setInProp] = useState(false);
 *   return (
 *     <div>
 *       <CSSTransition in={inProp} timeout={200} classNames="my-node">
 *         <div>
 *           {"I'll receive my-node-* classes"}
 *         </div>
 *       </CSSTransition>
 *       <button type="button" onClick={() => setInProp(true)}>
 *         Click to Enter
 *       </button>
 *     </div>
 *   );
 * }
 * ```
 *
 * When the `in` prop is set to `true`, the child component will first receive
 * the class `example-enter`, then the `example-enter-active` will be added in
 * the next tick. `CSSTransition` [forces a
 * reflow](https://github.com/reactjs/react-transition-group/blob/5007303e729a74be66a21c3e2205e4916821524b/src/CSSTransition.js#L208-L215)
 * between before adding the `example-enter-active`. This is an important trick
 * because it allows us to transition between `example-enter` and
 * `example-enter-active` even though they were added immediately one after
 * another. Most notably, this is what makes it possible for us to animate
 * _appearance_.
 *
 * ```css
 * .my-node-enter {
 *   opacity: 0;
 * }
 * .my-node-enter-active {
 *   opacity: 1;
 *   transition: opacity 200ms;
 * }
 * .my-node-exit {
 *   opacity: 1;
 * }
 * .my-node-exit-active {
 *   opacity: 0;
 *   transition: opacity: 200ms;
 * }
 * ```
 *
 * `*-active` classes represent which styles you want to animate **to**.
 */


var CSSTransition = /*#__PURE__*/function (_React$Component) {
  _inheritsLoose(CSSTransition, _React$Component);

  function CSSTransition() {
    var _this;

    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;

    _this.onEnter = function (node, appearing) {
      var _this$getClassNames = _this.getClassNames(appearing ? 'appear' : 'enter'),
          className = _this$getClassNames.className;

      _this.removeClasses(node, 'exit');

      addClass(node, className);

      if (_this.props.onEnter) {
        _this.props.onEnter(node, appearing);
      }
    };

    _this.onEntering = function (node, appearing) {
      var _this$getClassNames2 = _this.getClassNames(appearing ? 'appear' : 'enter'),
          activeClassName = _this$getClassNames2.activeClassName;

      _this.reflowAndAddClass(node, activeClassName);

      if (_this.props.onEntering) {
        _this.props.onEntering(node, appearing);
      }
    };

    _this.onEntered = function (node, appearing) {
      var appearClassName = _this.getClassNames('appear').doneClassName;

      var enterClassName = _this.getClassNames('enter').doneClassName;

      var doneClassName = appearing ? appearClassName + " " + enterClassName : enterClassName;

      _this.removeClasses(node, appearing ? 'appear' : 'enter');

      addClass(node, doneClassName);

      if (_this.props.onEntered) {
        _this.props.onEntered(node, appearing);
      }
    };

    _this.onExit = function (node) {
      var _this$getClassNames3 = _this.getClassNames('exit'),
          className = _this$getClassNames3.className;

      _this.removeClasses(node, 'appear');

      _this.removeClasses(node, 'enter');

      addClass(node, className);

      if (_this.props.onExit) {
        _this.props.onExit(node);
      }
    };

    _this.onExiting = function (node) {
      var _this$getClassNames4 = _this.getClassNames('exit'),
          activeClassName = _this$getClassNames4.activeClassName;

      _this.reflowAndAddClass(node, activeClassName);

      if (_this.props.onExiting) {
        _this.props.onExiting(node);
      }
    };

    _this.onExited = function (node) {
      var _this$getClassNames5 = _this.getClassNames('exit'),
          doneClassName = _this$getClassNames5.doneClassName;

      _this.removeClasses(node, 'exit');

      addClass(node, doneClassName);

      if (_this.props.onExited) {
        _this.props.onExited(node);
      }
    };

    _this.getClassNames = function (type) {
      var classNames = _this.props.classNames;
      var isStringClassNames = typeof classNames === 'string';
      var prefix = isStringClassNames && classNames ? classNames + '-' : '';
      var className = isStringClassNames ? prefix + type : classNames[type];
      var activeClassName = isStringClassNames ? className + '-active' : classNames[type + 'Active'];
      var doneClassName = isStringClassNames ? className + '-done' : classNames[type + 'Done'];
      return {
        className: className,
        activeClassName: activeClassName,
        doneClassName: doneClassName
      };
    };

    return _this;
  }

  var _proto = CSSTransition.prototype;

  _proto.removeClasses = function removeClasses(node, type) {
    var _this$getClassNames6 = this.getClassNames(type),
        className = _this$getClassNames6.className,
        activeClassName = _this$getClassNames6.activeClassName,
        doneClassName = _this$getClassNames6.doneClassName;

    className && removeClass(node, className);
    activeClassName && removeClass(node, activeClassName);
    doneClassName && removeClass(node, doneClassName);
  };

  _proto.reflowAndAddClass = function reflowAndAddClass(node, className) {
    // This is for to force a repaint,
    // which is necessary in order to transition styles when adding a class name.
    if (className) {
      /* eslint-disable no-unused-expressions */
      node && node.scrollTop;
      /* eslint-enable no-unused-expressions */

      addClass(node, className);
    }
  };

  _proto.render = function render() {
    var props = _extends({}, this.props);

    delete props.classNames;
    return _react.default.createElement(_Transition.default, _extends({}, props, {
      onEnter: this.onEnter,
      onEntered: this.onEntered,
      onEntering: this.onEntering,
      onExit: this.onExit,
      onExiting: this.onExiting,
      onExited: this.onExited
    }));
  };

  return CSSTransition;
}(_react.default.Component);

CSSTransition.defaultProps = {
  classNames: ''
};
CSSTransition.propTypes =  false ? undefined : {};
var _default = CSSTransition;
exports.default = _default;
module.exports = exports["default"];

/***/ }),

/***/ "Sklt":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("path", {
  d: "M46.669 24.544L25.456 3.331a2 2 0 0 0-2.828 0L1.414 24.544a2 2 0 0 0 0 2.828l2.042 2.042A2 2 0 0 0 4.87 30H6v12a2 2 0 0 0 2 2h9a1 1 0 0 0 1-1V27a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1l.037 16a1 1 0 0 0 1 1H40a2 2 0 0 0 2-2V30h1.213a2 2 0 0 0 1.414-.586l2.042-2.042a2 2 0 0 0 0-2.828z"
}));

/***/ }),

/***/ "SksO":
/***/ (function(module, exports) {

function _setPrototypeOf(o, p) {
  module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
    o.__proto__ = p;
    return o;
  };

  module.exports["default"] = module.exports, module.exports.__esModule = true;
  return _setPrototypeOf(o, p);
}

module.exports = _setPrototypeOf;
module.exports["default"] = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "Smah":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var _UxpOptions = _interopRequireDefault(__webpack_require__("zvwv"));

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}
/*************************************************************************
* ADOBE CONFIDENTIAL
* ___________________
*
* Copyright 2019 Adobe
* All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains
* the property of Adobe and its suppliers, if any. The intellectual
* and technical concepts contained herein are proprietary to Adobe
* and its suppliers and are protected by all applicable intellectual
* property laws, including trade secret and copyright laws.
* Dissemination of this information or reproduction of this material
* is strictly forbidden unless prior written permission is obtained
* from Adobe.
**************************************************************************/


module.exports = _UxpOptions.default.select('Breadcrumbs', () => __webpack_require__("YXqA"), () => __webpack_require__("t0SB"));

/***/ }),

/***/ "Smhd":
/***/ (function(module) {

module.exports = JSON.parse("{\"(optional)\":\"(valgfritt)\",\"(required)\":\"(obligatorisk)\"}");

/***/ }),

/***/ "SvrS":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return renderDateColumn; });
/* unused harmony export ListItem */
/* harmony import */ var _react_react_spectrum_Checkbox__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("L+OI");
/* harmony import */ var _react_react_spectrum_Checkbox__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Checkbox__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("TSYQ");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var mobx_react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("okNM");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _utils_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("a375");
/* harmony import */ var _utils_stop_propagation__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("hLgr");
/* harmony import */ var _ActionMenu__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("hFXq");
/* harmony import */ var _Dimmer__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("9rbx");
/* harmony import */ var _ListView__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("JRZE");
/* harmony import */ var _Rename__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__("r0HJ");
/* harmony import */ var _ViewItem__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__("0gRt");
/* harmony import */ var _types_CDOReactIntlTyped__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__("dSAe");
/* harmony import */ var _ViewItemIcon__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__("4JXv");
/* harmony import */ var _stores_Collection_ICollectionItem__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__("crLv");
/* harmony import */ var _styles_ListItem_css__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__("KLAg");
/* harmony import */ var _styles_ListItem_css__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(_styles_ListItem_css__WEBPACK_IMPORTED_MODULE_14__);
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
/* eslint-disable max-classes-per-file */
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;
};















function renderDateColumn(date, id) {
    /* eslint-disable react/no-children-prop */
    return (react__WEBPACK_IMPORTED_MODULE_3__["createElement"]("div", { key: `date-${id}`, className: "date column" },
        react__WEBPACK_IMPORTED_MODULE_3__["createElement"](_types_CDOReactIntlTyped__WEBPACK_IMPORTED_MODULE_11__[/* FormattedRelative */ "b"], { value: date, children: (formattedMessage) => (react__WEBPACK_IMPORTED_MODULE_3__["createElement"]("span", { id: `CDOListItem_${id}` }, formattedMessage)) })));
    /* eslint-enable */
}
let ListItem = class ListItem extends _ViewItem__WEBPACK_IMPORTED_MODULE_10__[/* default */ "b"] {
    renderRendition() {
        const { element, defaultDocumentIcons } = this.props;
        return (react__WEBPACK_IMPORTED_MODULE_3__["createElement"](_ViewItemIcon__WEBPACK_IMPORTED_MODULE_12__[/* default */ "a"], { element: element, defaultDocumentIcons: defaultDocumentIcons, id: "CDOListItem_Rendition", draggable: false, theme: this.props.theme }));
    }
    renderTitle() {
        const { element, renderTooltip, onRenameSubmit, onRenameCancel, nameValidator } = this.props;
        return (react__WEBPACK_IMPORTED_MODULE_3__["createElement"]("div", { className: "name", id: "CDOListItem_Name" },
            react__WEBPACK_IMPORTED_MODULE_3__["createElement"](_Rename__WEBPACK_IMPORTED_MODULE_9__[/* default */ "a"], { element: element, name: element.title, tooltip: renderTooltip === null || renderTooltip === void 0 ? void 0 : renderTooltip(element), isRenaming: this.isRenaming, onRenameSubmit: onRenameSubmit, onRenameCancel: onRenameCancel, nameValidator: nameValidator }),
            this.renderMetadata()));
    }
    renderSelectboxColumn() {
        const { isSelected, element, hideSelectionCheckboxOnFolders } = this.props;
        return (react__WEBPACK_IMPORTED_MODULE_3__["createElement"]("div", { key: "selectbox", id: `CDOListItem_Selected_${isSelected}`, className: classnames__WEBPACK_IMPORTED_MODULE_1___default()('checkbox', 'column', {
                selected: isSelected,
            }), onClick: _utils_stop_propagation__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"] }, !(Object(_stores_Collection_ICollectionItem__WEBPACK_IMPORTED_MODULE_13__[/* isFolder */ "b"])(element) && hideSelectionCheckboxOnFolders) && (react__WEBPACK_IMPORTED_MODULE_3__["createElement"](_react_react_spectrum_Checkbox__WEBPACK_IMPORTED_MODULE_0___default.a, { id: "CDOListItem_Checkbox", tabIndex: -1, checked: isSelected, renderLabel: false, onClick: this.onCheckboxSelection }))));
    }
    renderThumbnailAndTitle() {
        const { disabled = false, element, renderBadge, disableThumbnails } = this.props;
        const folder = Object(_stores_Collection_ICollectionItem__WEBPACK_IMPORTED_MODULE_13__[/* isFolder */ "b"])(element);
        return (react__WEBPACK_IMPORTED_MODULE_3__["createElement"]("div", { key: "info", className: "info column" },
            react__WEBPACK_IMPORTED_MODULE_3__["createElement"]("div", { className: "asset" },
                /* Always show folder icon, even if thumbnails are disabled */
                (folder || !disableThumbnails) && (react__WEBPACK_IMPORTED_MODULE_3__["createElement"]("div", { className: "container" },
                    react__WEBPACK_IMPORTED_MODULE_3__["createElement"]("div", { className: "renditionWrapper" },
                        react__WEBPACK_IMPORTED_MODULE_3__["createElement"](_Dimmer__WEBPACK_IMPORTED_MODULE_7__[/* Dimmer */ "a"], { dim: disabled }, this.renderRendition())))),
                react__WEBPACK_IMPORTED_MODULE_3__["createElement"]("div", { className: "nameWrapper" }, this.renderTitle()), renderBadge === null || renderBadge === void 0 ? void 0 :
                renderBadge(element))));
    }
    renderActionColumn() {
        const { element, actionMenuItems = [], hideActionMenu, onActionButtonClick, disabled, getSelectionStore, } = this.props;
        return (react__WEBPACK_IMPORTED_MODULE_3__["createElement"]("div", { key: "action", className: "column action", onClick: _utils_stop_propagation__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"] }, !hideActionMenu && !this.isRenaming && (react__WEBPACK_IMPORTED_MODULE_3__["createElement"](_ActionMenu__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"], { disabled: disabled, element: element, onActionButtonClick: onActionButtonClick, actionMenuItems: actionMenuItems, getSelectionStore: getSelectionStore }))));
    }
    renderCustomColumn({ id, columnType, cellContentRender }) {
        const { element } = this.props;
        return (react__WEBPACK_IMPORTED_MODULE_3__["createElement"]("div", { key: id, className: classnames__WEBPACK_IMPORTED_MODULE_1___default()(`column ${id} ${columnType}`) }, cellContentRender(element)));
    }
    render() {
        const { disabled, element, isSelected, columns, focusManagementEnabled, tabIndex = -1, ariaLabel, } = this.props;
        const folder = Object(_stores_Collection_ICollectionItem__WEBPACK_IMPORTED_MODULE_13__[/* isFolder */ "b"])(element);
        return (react__WEBPACK_IMPORTED_MODULE_3__["createElement"]("div", Object.assign({ "aria-label": ariaLabel, className: classnames__WEBPACK_IMPORTED_MODULE_1___default()('ViewItem', 'ListItem', {
                disabled,
                folder,
                selected: isSelected,
                isValidDropTarget: this.isValidDropTarget,
            }, _utils_constants__WEBPACK_IMPORTED_MODULE_4__[/* FOCUS_ITEM_CLASS */ "h"]), id: "CDOListItem", onClick: this.onClick, onDoubleClick: this.onDoubleClick }, (focusManagementEnabled ? { tabIndex } : {}), { onKeyDown: this.onKeyDown, onContextMenu: this.onContextMenu, onDragStart: this.onDragStart, onDragEnter: this.onDragEnter, onDragLeave: this.onDragLeave, onDrop: this.onDrop, draggable: !this.isDragDisabled, "data-element-id": element.id }), columns.map(column => {
            const columnDefinition = column;
            if (columnDefinition.columnType) {
                return this.renderCustomColumn(columnDefinition);
            }
            switch (column) {
                case _ListView__WEBPACK_IMPORTED_MODULE_8__[/* Column */ "a"].Select:
                    return this.renderSelectboxColumn();
                case _ListView__WEBPACK_IMPORTED_MODULE_8__[/* Column */ "a"].Title:
                    return this.renderThumbnailAndTitle();
                case _ListView__WEBPACK_IMPORTED_MODULE_8__[/* Column */ "a"].Action:
                    return this.renderActionColumn();
                default:
                    // return null so that React doesn't complain about missing key on child
                    return null;
            }
        })));
    }
};
ListItem = __decorate([
    mobx_react__WEBPACK_IMPORTED_MODULE_2__[/* observer */ "e"]
], ListItem);

/* harmony default export */ __webpack_exports__["a"] = (ListItem);


/***/ }),

/***/ "SwKo":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.DocumentState = void 0;
/**
 * Document State
 */

var DocumentState;

(function (DocumentState) {
  DocumentState["active"] = "active";
  DocumentState["archived"] = "archived";
  DocumentState["deleted"] = "deleted";
})(DocumentState || (DocumentState = {}));

exports.DocumentState = DocumentState;

/***/ }),

/***/ "Szud":
/***/ (function(module) {

module.exports = JSON.parse("{\"close\":\"Закрити\",\"error\":\"Помилка\",\"info\":\"Інформація\",\"success\":\"Успішно\",\"warning\":\"Попередження\"}");

/***/ }),

/***/ "T/Fd":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _createClass = function () {
  function defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i];
      descriptor.enumerable = descriptor.enumerable || false;
      descriptor.configurable = true;
      if ("value" in descriptor) descriptor.writable = true;
      Object.defineProperty(target, descriptor.key, descriptor);
    }
  }

  return function (Constructor, protoProps, staticProps) {
    if (protoProps) defineProperties(Constructor.prototype, protoProps);
    if (staticProps) defineProperties(Constructor, staticProps);
    return Constructor;
  };
}();
/**
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe Inc. and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe Inc.
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Inc.
 */


var _Client = __webpack_require__("aETk");

var _Client2 = _interopRequireDefault(_Client);

var _utils = __webpack_require__("VKd2");

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _classCallCheck(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}
/**
 * The Invitations class handles listing invitations for users and creating invitations for a specific resource.
 */


var Invitations = function () {
  /**
   * Instantiates the Invitations class.
   *
   * @example <caption>Initialize the Invitations class</caption>
   * let invitations = new Invitations();
   */
  function Invitations() {
    _classCallCheck(this, Invitations);
  }
  /**
   * Request access to a resource shared with the user. 
   * @param {String} resourceUrl - CC Storage path (ID-based only)
   */


  _createClass(Invitations, [{
    key: 'confirm',
    value: function confirm(resourceUrl) {
      if (resourceUrl && resourceUrl.trim() !== '') {
        return _Client2.default.instance.fetch({
          type: 'invitations.confirm',
          urlPath: '/invitations/path/' + (0, _utils.encodeURIComponentEachSubdomain)((0, _utils.getUrlPath)(resourceUrl)),
          method: 'POST',
          returnRaw: true
        });
      }
    }
    /**
     * Create an invitation
     * @param {Object} request
     *   @param {String} request.resourceUrl - CC Storage path (path based or ID-based)
     *   @param {Array} request.recipients - Array of type recipient. The type recipient is composed of the following properties
     *      recipient - is a string which can be of two types:
     *          Email Address:  The valid format for email address is mailto:{emailAddress}
     *          Address Book Entry: Address Book entries can be of two types
     *            1) Address Book Contact: The valid format for an Address Book Contact is an urn string with format- urn:ab:contact:{AddressBookID}-{ContactID}
     *            2) Address Book Group: The valid format for an Address Book Group is an urn string with format- urn:ab:group:{AddressBookID}-{ContactID}
     *   @param {String} request.role - Role to be assigned to the recipients.
     *   @param {String} request.useMounts - Specifies if a mount (aka mount point) to the resource needs to be created for the invitee. This value cannot be TRUE when acceptanceRequired is FALSE
     *   @param {String} request.acceptanceRequired - Specifies if the invitee needs to accept the invitation to collaborate on the resource. When acceptanceRequired is FALSE, the invitee is added as a collaborator on the resource.
     *   @param {Object} request.ansNotification - (Optional - {} to send ANS notification, null to not send ANS notification
     *   @param {Object} request.emailNotification - (Optional - Required if acceptanceRequired is FALSE)
     *      This parameter is a map of Key = notifType (string) and Value = emailTemplate (object)
     *      There are three possible values for the key in the map:
     *      a) acceptance: Email notification when acceptanceRequired is set to TRUE
     *      b) sharing: Email notification when acceptanceRequired is set to FALSE
     *      c) response: (PHASE 2) Email template that will be used to construct the forwarded invitation request for access response email message.
     *                             The template should have conditional parameters so that it can handle both accepted and rejected scenarios.
     *      emailTemplate contains the following template information used to construct the email:
     *        templateName (Required): ID of template registered with APO (Adobe Post Office)
     *        locale (Required): Specifies the locale to be used to select the appropriate template. It is provided in the form of a language code and country code (e.g., “EN_US”)
     *        parameters (Optional): User provided map of key-value pairs needed to construct the template. The list of predefined parameters will be set in the template.
     *   @param {String} request.message - (Optional) A custom message for the inviter to add to the invite notification. The corresponding email param is Param_Custom_Message.
     *   @param {String} request.resourceViewUrl - (Optional) A custom message for the inviter to add to the invite notification. The corresponding email param is Param_Custom_Message.
     *   @param {String} request.captcha - (Optional) This parameter includes the following properties:
     *                   userResponse: (Optional) recaptcha User Response
     *                   siteKey:(Optional) recaptcha Site Key
     * 
     *
     * @return {Promise} A Promise that invites the list of recipients
     *
     * @example
     *  request: {
     *    resourceUrl: "https://cc-api-storage-stage.adobe.io/id/urn:aaid:sc:US:86633ca9-1c6b-4e03-bfa1-3f7c79a6d8f3",
     *    recipients: [
     *      "recipient": "mailto:user@adobe.com",
     *      "recipient": "urn:ab:contact:Address_Book_ABCD:123456",
     *      "recipient": "urn:ab:group:Address_Book_ABCD:123",
     *    ],
     *    role: "editor",
     *    useMounts: true,
     *    acceptanceRequired: true,
     *    ansNotification: {},
     *    emailNotification: {
     *      "acceptance": {
     *        "templateName": "template_name_123",
     *        "parameters": {
     *          "key1": "value1",
     *          "key2": "value2",
     *          "key3": "value3"
     *        },
     *        "locale": "EN_US"
     *      },
     *      "sharing": {
     *        "templateName": "template_name_123",
     *        "parameters": {
     *          "key1": "value1",
     *          "key2": "value2",
     *          "key3": "value3"
     *        },
     *        "locale": "EN_US"
     *      }
     *    },
     *    message : "this is a comment",
     *    captcha: {
     *      "userResponse": "CAPTCHA_USER_RESPONSE_TOKEN",
     *      "siteKey": "CAPTCHA_SITE_KEY"
     *    }
     *  }
     */

  }, {
    key: 'create',
    value: function create() {
      var request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; // Changed paramater to accept just an request object so the api is more stable, will not have to
      // worry about paramater ordering and it is easier to give resonable defaults

      var resourceUrl = request.resourceUrl,
          recipients = request.recipients,
          role = request.role,
          useMounts = request.useMounts,
          acceptanceRequired = request.acceptanceRequired,
          ansNotification = request.ansNotification,
          emailNotification = request.emailNotification,
          message = request.message,
          resourceViewUrl = request.resourceViewUrl,
          recaptcha = request.recaptcha;

      if (resourceUrl && resourceUrl.trim() !== '') {
        var notification = {
          ans: ansNotification,
          email: emailNotification,
          parameters: {
            resourceViewUrl: resourceViewUrl,
            message: message
          }
        };
        var body = {
          resourceUrl: (0, _utils.encodeURIComponentCCStorageUrl)(resourceUrl),
          recipients: recipients,
          role: role,
          useMounts: useMounts,
          acceptanceRequired: acceptanceRequired,
          notification: notification,
          captcha: recaptcha
        };
        return _Client2.default.instance.fetch({
          type: 'invitations.create',
          urlPath: '/invitations',
          method: 'POST',
          body: body
        });
      }
    }
    /**
     * Update an invitation
     * @param {String} inviteId - id of the invitation
     * @param {String} role - New role to be assigned to the invitee
     * @returns {Promise} A Promise that updates an invitation
     */

  }, {
    key: 'update',
    value: function update(inviteId, role) {
      if (inviteId && role && inviteId.trim() !== '' && role.trim() !== '') {
        var body = {
          role: role
        };
        return _Client2.default.instance.fetch({
          type: 'invitations.update',
          urlPath: '/invitations/' + inviteId,
          method: 'PUT',
          body: body
        });
      }
    }
    /**
     * Delete an invitation
     * @param {String} inviteId - id of the invitation
     * @returns {Promise} A Promise that deletes an invitation
     */

  }, {
    key: 'delete',
    value: function _delete(inviteId) {
      if (inviteId && inviteId.trim() !== '') {
        var encodedRequestURI = '/invitations/' + encodeURIComponent(inviteId);
        return _Client2.default.instance.fetch({
          type: 'invitations.delete',
          urlPath: encodedRequestURI,
          method: 'DELETE'
        });
      }
    }
    /**
     * Get invitation capabilities for a user
     * @param {String} value - the capability we're looking for
     * @returns {Promise} A Promise that returns a response which headers contain user invitation capabilities
     */

  }, {
    key: 'getCapabilities',
    value: function getCapabilities() {
      var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'customization';
      return _Client2.default.instance.fetch({
        type: 'invitations.getCapabilities',
        urlPath: '/invitations?capability=' + value,
        method: 'HEAD',
        returnRaw: true
      });
    }
    /**
     * SDK method that parses and determines if invite is disabled, or if UGC (adding messages) to invite creation is disabled.
     * @returns {String} One of the following values: UGC_ENABLED, UGC_DISABLED, INVITE_DISABLED
     */

  }, {
    key: 'getInviteCapability',
    value: function getInviteCapability() {
      return this.getCapabilities('customization').then(function (response) {
        if (response.status == 403) {
          return 'INVITE_DISABLED';
        } else if (response.headers && response.headers.get('X-Customization') === false) {
          return 'UGC_DISABLED';
        }

        return 'UGC_ENABLED';
      }).catch(function (error) {
        // Return enabled if call failed.
        return 'UGC_ENABLED';
      });
    } // TODO

  }, {
    key: 'get',
    value: function get() {
      return _Client2.default.instance.fetch({
        type: 'invitations.get',
        urlPath: '/invitations'
      });
    } // TODO

  }, {
    key: 'accept',
    value: function accept(inviteId) {
      if (inviteId && inviteId.trim() !== '') {
        return _Client2.default.instance.fetch({
          type: 'invitations.accept',
          urlPath: '/invitations/' + inviteId,
          method: 'POST'
        });
      }
    }
  }, {
    key: 'sendVerificationEmail',
    value: function sendVerificationEmail(url) {
      return _Client2.default.instance.fetchRaw(url, 'GET');
    }
  }]);

  return Invitations;
}();
/**
 * Exports the Invitations class.
 */


exports.default = Invitations;
module.exports = exports['default'];

/***/ }),

/***/ "T1AV":
/***/ (function(module, exports, __webpack_require__) {

var assignMergeValue = __webpack_require__("t2Dn"),
    cloneBuffer = __webpack_require__("5Tg0"),
    cloneTypedArray = __webpack_require__("yP5f"),
    copyArray = __webpack_require__("Q1l4"),
    initCloneObject = __webpack_require__("+iFO"),
    isArguments = __webpack_require__("03A+"),
    isArray = __webpack_require__("Z0cm"),
    isArrayLikeObject = __webpack_require__("3L66"),
    isBuffer = __webpack_require__("DSRE"),
    isFunction = __webpack_require__("lSCD"),
    isObject = __webpack_require__("GoyQ"),
    isPlainObject = __webpack_require__("YO3V"),
    isTypedArray = __webpack_require__("c6wG"),
    safeGet = __webpack_require__("itsj"),
    toPlainObject = __webpack_require__("jeLo");
/**
 * A specialized version of `baseMerge` for arrays and objects which performs
 * deep merges and tracks traversed objects enabling objects with circular
 * references to be merged.
 *
 * @private
 * @param {Object} object The destination object.
 * @param {Object} source The source object.
 * @param {string} key The key of the value to merge.
 * @param {number} srcIndex The index of `source`.
 * @param {Function} mergeFunc The function to merge values.
 * @param {Function} [customizer] The function to customize assigned values.
 * @param {Object} [stack] Tracks traversed source values and their merged
 *  counterparts.
 */


function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {
  var objValue = safeGet(object, key),
      srcValue = safeGet(source, key),
      stacked = stack.get(srcValue);

  if (stacked) {
    assignMergeValue(object, key, stacked);
    return;
  }

  var newValue = customizer ? customizer(objValue, srcValue, key + '', object, source, stack) : undefined;
  var isCommon = newValue === undefined;

  if (isCommon) {
    var isArr = isArray(srcValue),
        isBuff = !isArr && isBuffer(srcValue),
        isTyped = !isArr && !isBuff && isTypedArray(srcValue);
    newValue = srcValue;

    if (isArr || isBuff || isTyped) {
      if (isArray(objValue)) {
        newValue = objValue;
      } else if (isArrayLikeObject(objValue)) {
        newValue = copyArray(objValue);
      } else if (isBuff) {
        isCommon = false;
        newValue = cloneBuffer(srcValue, true);
      } else if (isTyped) {
        isCommon = false;
        newValue = cloneTypedArray(srcValue, true);
      } else {
        newValue = [];
      }
    } else if (isPlainObject(srcValue) || isArguments(srcValue)) {
      newValue = objValue;

      if (isArguments(objValue)) {
        newValue = toPlainObject(objValue);
      } else if (!isObject(objValue) || isFunction(objValue)) {
        newValue = initCloneObject(srcValue);
      }
    } else {
      isCommon = false;
    }
  }

  if (isCommon) {
    // Recursively merge objects and arrays (susceptible to call stack limits).
    stack.set(srcValue, newValue);
    mergeFunc(newValue, srcValue, srcIndex, customizer, stack);
    stack['delete'](srcValue);
  }

  assignMergeValue(object, key, newValue);
}

module.exports = baseMergeDeep;

/***/ }),

/***/ "T1cO":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


exports.__esModule = true;

var _class = __webpack_require__("Muxt");

var _class2 = _interopRequireDefault(_class);

var _style = __webpack_require__("sKrG");

var _style2 = _interopRequireDefault(_style);

var _scrollbarSize = __webpack_require__("xUaa");

var _scrollbarSize2 = _interopRequireDefault(_scrollbarSize);

var _isOverflowing = __webpack_require__("xhNM");

var _isOverflowing2 = _interopRequireDefault(_isOverflowing);

var _manageAriaHidden = __webpack_require__("wSsR");

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _classCallCheck(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}

function findIndexOf(arr, cb) {
  var idx = -1;
  arr.some(function (d, i) {
    if (cb(d, i)) {
      idx = i;
      return true;
    }
  });
  return idx;
}

function findContainer(data, modal) {
  return findIndexOf(data, function (d) {
    return d.modals.indexOf(modal) !== -1;
  });
}

function setContainerStyle(state, container) {
  var style = {
    overflow: 'hidden'
  }; // we are only interested in the actual `style` here
  // becasue we will override it

  state.style = {
    overflow: container.style.overflow,
    paddingRight: container.style.paddingRight
  };

  if (state.overflowing) {
    // use computed style, here to get the real padding
    // to add our scrollbar width
    style.paddingRight = parseInt((0, _style2.default)(container, 'paddingRight') || 0, 10) + (0, _scrollbarSize2.default)() + 'px';
  }

  (0, _style2.default)(container, style);
}

function removeContainerStyle(_ref, container) {
  var style = _ref.style;
  Object.keys(style).forEach(function (key) {
    return container.style[key] = style[key];
  });
}
/**
 * Proper state managment for containers and the modals in those containers.
 *
 * @internal Used by the Modal to ensure proper styling of containers.
 */


var ModalManager = function ModalManager() {
  var _this = this;

  var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
      _ref2$hideSiblingNode = _ref2.hideSiblingNodes,
      hideSiblingNodes = _ref2$hideSiblingNode === undefined ? true : _ref2$hideSiblingNode,
      _ref2$handleContainer = _ref2.handleContainerOverflow,
      handleContainerOverflow = _ref2$handleContainer === undefined ? true : _ref2$handleContainer;

  _classCallCheck(this, ModalManager);

  this.add = function (modal, container, className) {
    var modalIdx = _this.modals.indexOf(modal);

    var containerIdx = _this.containers.indexOf(container);

    if (modalIdx !== -1) {
      return modalIdx;
    }

    modalIdx = _this.modals.length;

    _this.modals.push(modal);

    if (_this.hideSiblingNodes) {
      (0, _manageAriaHidden.hideSiblings)(container, modal.mountNode);
    }

    if (containerIdx !== -1) {
      _this.data[containerIdx].modals.push(modal);

      return modalIdx;
    }

    var data = {
      modals: [modal],
      //right now only the first modal of a container will have its classes applied
      classes: className ? className.split(/\s+/) : [],
      overflowing: (0, _isOverflowing2.default)(container)
    };

    if (_this.handleContainerOverflow) {
      setContainerStyle(data, container);
    }

    data.classes.forEach(_class2.default.addClass.bind(null, container));

    _this.containers.push(container);

    _this.data.push(data);

    return modalIdx;
  };

  this.remove = function (modal) {
    var modalIdx = _this.modals.indexOf(modal);

    if (modalIdx === -1) {
      return;
    }

    var containerIdx = findContainer(_this.data, modal);
    var data = _this.data[containerIdx];
    var container = _this.containers[containerIdx];
    data.modals.splice(data.modals.indexOf(modal), 1);

    _this.modals.splice(modalIdx, 1); // if that was the last modal in a container,
    // clean up the container


    if (data.modals.length === 0) {
      data.classes.forEach(_class2.default.removeClass.bind(null, container));

      if (_this.handleContainerOverflow) {
        removeContainerStyle(data, container);
      }

      if (_this.hideSiblingNodes) {
        (0, _manageAriaHidden.showSiblings)(container, modal.mountNode);
      }

      _this.containers.splice(containerIdx, 1);

      _this.data.splice(containerIdx, 1);
    } else if (_this.hideSiblingNodes) {
      //otherwise make sure the next top modal is visible to a SR
      (0, _manageAriaHidden.ariaHidden)(false, data.modals[data.modals.length - 1].mountNode);
    }
  };

  this.isTopModal = function (modal) {
    return !!_this.modals.length && _this.modals[_this.modals.length - 1] === modal;
  };

  this.hideSiblingNodes = hideSiblingNodes;
  this.handleContainerOverflow = handleContainerOverflow;
  this.modals = [];
  this.containers = [];
  this.data = [];
};

exports.default = ModalManager;
module.exports = exports['default'];

/***/ }),

/***/ "T1qB":
/***/ (function(module, exports, __webpack_require__) {

/* WEBPACK VAR INJECTION */(function(global) {(function (global) {
  /**
   * Polyfill URLSearchParams
   *
   * Inspired from : https://github.com/WebReflection/url-search-params/blob/master/src/url-search-params.js
   */
  var checkIfIteratorIsSupported = function () {
    try {
      return !!Symbol.iterator;
    } catch (error) {
      return false;
    }
  };

  var iteratorSupported = checkIfIteratorIsSupported();

  var createIterator = function (items) {
    var iterator = {
      next: function () {
        var value = items.shift();
        return {
          done: value === void 0,
          value: value
        };
      }
    };

    if (iteratorSupported) {
      iterator[Symbol.iterator] = function () {
        return iterator;
      };
    }

    return iterator;
  };
  /**
   * Search param name and values should be encoded according to https://url.spec.whatwg.org/#urlencoded-serializing
   * encodeURIComponent() produces the same result except encoding spaces as `%20` instead of `+`.
   */


  var serializeParam = function (value) {
    return encodeURIComponent(value).replace(/%20/g, '+');
  };

  var deserializeParam = function (value) {
    return decodeURIComponent(String(value).replace(/\+/g, ' '));
  };

  var polyfillURLSearchParams = function () {
    var URLSearchParams = function (searchString) {
      Object.defineProperty(this, '_entries', {
        writable: true,
        value: {}
      });
      var typeofSearchString = typeof searchString;

      if (typeofSearchString === 'undefined') {// do nothing
      } else if (typeofSearchString === 'string') {
        if (searchString !== '') {
          this._fromString(searchString);
        }
      } else if (searchString instanceof URLSearchParams) {
        var _this = this;

        searchString.forEach(function (value, name) {
          _this.append(name, value);
        });
      } else if (searchString !== null && typeofSearchString === 'object') {
        if (Object.prototype.toString.call(searchString) === '[object Array]') {
          for (var i = 0; i < searchString.length; i++) {
            var entry = searchString[i];

            if (Object.prototype.toString.call(entry) === '[object Array]' || entry.length !== 2) {
              this.append(entry[0], entry[1]);
            } else {
              throw new TypeError('Expected [string, any] as entry at index ' + i + ' of URLSearchParams\'s input');
            }
          }
        } else {
          for (var key in searchString) {
            if (searchString.hasOwnProperty(key)) {
              this.append(key, searchString[key]);
            }
          }
        }
      } else {
        throw new TypeError('Unsupported input\'s type for URLSearchParams');
      }
    };

    var proto = URLSearchParams.prototype;

    proto.append = function (name, value) {
      if (name in this._entries) {
        this._entries[name].push(String(value));
      } else {
        this._entries[name] = [String(value)];
      }
    };

    proto.delete = function (name) {
      delete this._entries[name];
    };

    proto.get = function (name) {
      return name in this._entries ? this._entries[name][0] : null;
    };

    proto.getAll = function (name) {
      return name in this._entries ? this._entries[name].slice(0) : [];
    };

    proto.has = function (name) {
      return name in this._entries;
    };

    proto.set = function (name, value) {
      this._entries[name] = [String(value)];
    };

    proto.forEach = function (callback, thisArg) {
      var entries;

      for (var name in this._entries) {
        if (this._entries.hasOwnProperty(name)) {
          entries = this._entries[name];

          for (var i = 0; i < entries.length; i++) {
            callback.call(thisArg, entries[i], name, this);
          }
        }
      }
    };

    proto.keys = function () {
      var items = [];
      this.forEach(function (value, name) {
        items.push(name);
      });
      return createIterator(items);
    };

    proto.values = function () {
      var items = [];
      this.forEach(function (value) {
        items.push(value);
      });
      return createIterator(items);
    };

    proto.entries = function () {
      var items = [];
      this.forEach(function (value, name) {
        items.push([name, value]);
      });
      return createIterator(items);
    };

    if (iteratorSupported) {
      proto[Symbol.iterator] = proto.entries;
    }

    proto.toString = function () {
      var searchArray = [];
      this.forEach(function (value, name) {
        searchArray.push(serializeParam(name) + '=' + serializeParam(value));
      });
      return searchArray.join('&');
    };

    global.URLSearchParams = URLSearchParams;
  };

  var checkIfURLSearchParamsSupported = function () {
    try {
      var URLSearchParams = global.URLSearchParams;
      return new URLSearchParams('?a=1').toString() === 'a=1' && typeof URLSearchParams.prototype.set === 'function' && typeof URLSearchParams.prototype.entries === 'function';
    } catch (e) {
      return false;
    }
  };

  if (!checkIfURLSearchParamsSupported()) {
    polyfillURLSearchParams();
  }

  var proto = global.URLSearchParams.prototype;

  if (typeof proto.sort !== 'function') {
    proto.sort = function () {
      var _this = this;

      var items = [];
      this.forEach(function (value, name) {
        items.push([name, value]);

        if (!_this._entries) {
          _this.delete(name);
        }
      });
      items.sort(function (a, b) {
        if (a[0] < b[0]) {
          return -1;
        } else if (a[0] > b[0]) {
          return +1;
        } else {
          return 0;
        }
      });

      if (_this._entries) {
        // force reset because IE keeps keys index
        _this._entries = {};
      }

      for (var i = 0; i < items.length; i++) {
        this.append(items[i][0], items[i][1]);
      }
    };
  }

  if (typeof proto._fromString !== 'function') {
    Object.defineProperty(proto, '_fromString', {
      enumerable: false,
      configurable: false,
      writable: false,
      value: function (searchString) {
        if (this._entries) {
          this._entries = {};
        } else {
          var keys = [];
          this.forEach(function (value, name) {
            keys.push(name);
          });

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

        searchString = searchString.replace(/^\?/, '');
        var attributes = searchString.split('&');
        var attribute;

        for (var i = 0; i < attributes.length; i++) {
          attribute = attributes[i].split('=');
          this.append(deserializeParam(attribute[0]), attribute.length > 1 ? deserializeParam(attribute[1]) : '');
        }
      }
    });
  } // HTMLAnchorElement

})(typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : this);

(function (global) {
  /**
   * Polyfill URL
   *
   * Inspired from : https://github.com/arv/DOM-URL-Polyfill/blob/master/src/url.js
   */
  var checkIfURLIsSupported = function () {
    try {
      var u = new global.URL('b', 'http://a');
      u.pathname = 'c d';
      return u.href === 'http://a/c%20d' && u.searchParams;
    } catch (e) {
      return false;
    }
  };

  var polyfillURL = function () {
    var _URL = global.URL;

    var URL = function (url, base) {
      if (typeof url !== 'string') url = String(url);
      if (base && typeof base !== 'string') base = String(base); // Only create another document if the base is different from current location.

      var doc = document,
          baseElement;

      if (base && (global.location === void 0 || base !== global.location.href)) {
        base = base.toLowerCase();
        doc = document.implementation.createHTMLDocument('');
        baseElement = doc.createElement('base');
        baseElement.href = base;
        doc.head.appendChild(baseElement);

        try {
          if (baseElement.href.indexOf(base) !== 0) throw new Error(baseElement.href);
        } catch (err) {
          throw new Error('URL unable to set base ' + base + ' due to ' + err);
        }
      }

      var anchorElement = doc.createElement('a');
      anchorElement.href = url;

      if (baseElement) {
        doc.body.appendChild(anchorElement);
        anchorElement.href = anchorElement.href; // force href to refresh
      }

      var inputElement = doc.createElement('input');
      inputElement.type = 'url';
      inputElement.value = url;

      if (anchorElement.protocol === ':' || !/:/.test(anchorElement.href) || !inputElement.checkValidity() && !base) {
        throw new TypeError('Invalid URL');
      }

      Object.defineProperty(this, '_anchorElement', {
        value: anchorElement
      }); // create a linked searchParams which reflect its changes on URL

      var searchParams = new global.URLSearchParams(this.search);
      var enableSearchUpdate = true;
      var enableSearchParamsUpdate = true;

      var _this = this;

      ['append', 'delete', 'set'].forEach(function (methodName) {
        var method = searchParams[methodName];

        searchParams[methodName] = function () {
          method.apply(searchParams, arguments);

          if (enableSearchUpdate) {
            enableSearchParamsUpdate = false;
            _this.search = searchParams.toString();
            enableSearchParamsUpdate = true;
          }
        };
      });
      Object.defineProperty(this, 'searchParams', {
        value: searchParams,
        enumerable: true
      });
      var search = void 0;
      Object.defineProperty(this, '_updateSearchParams', {
        enumerable: false,
        configurable: false,
        writable: false,
        value: function () {
          if (this.search !== search) {
            search = this.search;

            if (enableSearchParamsUpdate) {
              enableSearchUpdate = false;

              this.searchParams._fromString(this.search);

              enableSearchUpdate = true;
            }
          }
        }
      });
    };

    var proto = URL.prototype;

    var linkURLWithAnchorAttribute = function (attributeName) {
      Object.defineProperty(proto, attributeName, {
        get: function () {
          return this._anchorElement[attributeName];
        },
        set: function (value) {
          this._anchorElement[attributeName] = value;
        },
        enumerable: true
      });
    };

    ['hash', 'host', 'hostname', 'port', 'protocol'].forEach(function (attributeName) {
      linkURLWithAnchorAttribute(attributeName);
    });
    Object.defineProperty(proto, 'search', {
      get: function () {
        return this._anchorElement['search'];
      },
      set: function (value) {
        this._anchorElement['search'] = value;

        this._updateSearchParams();
      },
      enumerable: true
    });
    Object.defineProperties(proto, {
      'toString': {
        get: function () {
          var _this = this;

          return function () {
            return _this.href;
          };
        }
      },
      'href': {
        get: function () {
          return this._anchorElement.href.replace(/\?$/, '');
        },
        set: function (value) {
          this._anchorElement.href = value;

          this._updateSearchParams();
        },
        enumerable: true
      },
      'pathname': {
        get: function () {
          return this._anchorElement.pathname.replace(/(^\/?)/, '/');
        },
        set: function (value) {
          this._anchorElement.pathname = value;
        },
        enumerable: true
      },
      'origin': {
        get: function () {
          // get expected port from protocol
          var expectedPort = {
            'http:': 80,
            'https:': 443,
            'ftp:': 21
          }[this._anchorElement.protocol]; // add port to origin if, expected port is different than actual port
          // and it is not empty f.e http://foo:8080
          // 8080 != 80 && 8080 != ''

          var addPortToOrigin = this._anchorElement.port != expectedPort && this._anchorElement.port !== '';
          return this._anchorElement.protocol + '//' + this._anchorElement.hostname + (addPortToOrigin ? ':' + this._anchorElement.port : '');
        },
        enumerable: true
      },
      'password': {
        // TODO
        get: function () {
          return '';
        },
        set: function (value) {},
        enumerable: true
      },
      'username': {
        // TODO
        get: function () {
          return '';
        },
        set: function (value) {},
        enumerable: true
      }
    });

    URL.createObjectURL = function (blob) {
      return _URL.createObjectURL.apply(_URL, arguments);
    };

    URL.revokeObjectURL = function (url) {
      return _URL.revokeObjectURL.apply(_URL, arguments);
    };

    global.URL = URL;
  };

  if (!checkIfURLIsSupported()) {
    polyfillURL();
  }

  if (global.location !== void 0 && !('origin' in global.location)) {
    var getOrigin = function () {
      return global.location.protocol + '//' + global.location.hostname + (global.location.port ? ':' + global.location.port : '');
    };

    try {
      Object.defineProperty(global.location, 'origin', {
        get: getOrigin,
        enumerable: true
      });
    } catch (e) {
      setInterval(function () {
        global.location.origin = getOrigin();
      }, 100);
    }
  }
})(typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : this);
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("yLpj")))

/***/ }),

/***/ "T1rY":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var _UxpOptions = _interopRequireDefault(__webpack_require__("zvwv"));

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}
/*************************************************************************
* ADOBE CONFIDENTIAL
* ___________________
*
* Copyright 2019 Adobe
* All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains
* the property of Adobe and its suppliers, if any. The intellectual
* and technical concepts contained herein are proprietary to Adobe
* and its suppliers and are protected by all applicable intellectual
* property laws, including trade secret and copyright laws.
* Dissemination of this information or reproduction of this material
* is strictly forbidden unless prior written permission is obtained
* from Adobe.
**************************************************************************/


module.exports = _UxpOptions.default.select('Dropdown', () => __webpack_require__("lDdF"), () => __webpack_require__("omcR"));

/***/ }),

/***/ "T2Bq":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("TSYQ");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_1__);


const DEFAULT_SIZE = {
    width: 216,
    height: 306,
};
const EmptyCloudDocs = ({ height = DEFAULT_SIZE.height, width = DEFAULT_SIZE.width, className = '', primaryColor = '#b3b3b3', secondaryColor = '#1473e6', }) => (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("svg", { className: classnames__WEBPACK_IMPORTED_MODULE_1___default()('EmptyCloudDocs', className), xmlns: "http://www.w3.org/2000/svg", width: height, height: width, viewBox: `0 0 ${height} ${width}` },
    react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", { fill: primaryColor, d: "M239.23,36.79V105a4.71,4.71,0,0,1-4.7,4.7H205.38a1.5,1.5,0,0,1,0-3h29.15a1.7,1.7,0,0,0,1.7-1.7V36.79a1.7,1.7,0,0,0-1.7-1.69H188.74a1.7,1.7,0,0,0-1.7,1.69V47.3a1.5,1.5,0,0,1-3,0V36.79a4.7,4.7,0,0,1,4.7-4.69h45.79A4.7,4.7,0,0,1,239.23,36.79Z" }),
    react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("circle", { fill: primaryColor, cx: "211.64", cy: "37.67", r: "1.15" }),
    react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", { fill: primaryColor, d: "M211.63,105.86a2.51,2.51,0,1,1,2.51-2.51A2.51,2.51,0,0,1,211.63,105.86Zm0-3.77a1.26,1.26,0,1,0,1.27,1.26A1.26,1.26,0,0,0,211.63,102.09Z" }),
    react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", { fill: primaryColor, d: "M214.57,141.26a1.5,1.5,0,1,1-2.77,1.14,15.58,15.58,0,0,0-3.37-4.41l-.7-.73c-1.64-1.74-2.72-2.89-6.19-2a46.91,46.91,0,0,0-9.5,4.11l-.14.07-1.5.78L189,141h-.13v-3.29l1.5-.78.25-.13,1.25-.65a43.86,43.86,0,0,1,8.88-3.7c4.8-1.27,7,.52,9.14,2.82l.67.7A18.1,18.1,0,0,1,214.57,141.26Z" }),
    react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", { fill: primaryColor, d: "M249.52,150.14a1.49,1.49,0,0,1-1.32.8,1.45,1.45,0,0,1-.7-.17c-4-2.1-10.38-8.36-16-13.87-3.18-3.11-6.18-6-8.1-7.57-4.78-3.83-12.8-7.3-19.14-5.87a32.85,32.85,0,0,0-8.29,3.47l-4,2.39-1.5.91-1.5.91v-3.51l1.5-.91,1.5-.89c.82-.49,1.66-1,2.53-1.49a35.81,35.81,0,0,1,9.14-3.81c7.34-1.65,16.18,2,21.68,6.45,2,1.63,4.94,4.47,8.32,7.77,5.23,5.11,11.75,11.47,15.33,13.37A1.49,1.49,0,0,1,249.52,150.14Z" }),
    react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", { fill: primaryColor, d: "M189,87.22,177.44,75.66a10.12,10.12,0,0,0-7.12-3H132A9.3,9.3,0,0,0,122.68,82v66.76A9.3,9.3,0,0,0,132,158h50.64a9.3,9.3,0,0,0,9.22-8.16,8.32,8.32,0,0,0,.07-1.12v-2.23l-1.5-.77-1.5-.77v3.77a6.29,6.29,0,0,1-6.29,6.28H132a6.29,6.29,0,0,1-6.29-6.28V82A6.29,6.29,0,0,1,132,75.7h38.35a7.12,7.12,0,0,1,5,2.08l11.52,11.56a7,7,0,0,1,2.06,5v46.62H189c.46,0,.91.07,1.37.12s1,.1,1.5.17V94.32A10,10,0,0,0,189,87.22Z" }),
    react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", { fill: secondaryColor, d: "M218.86,97.31a1.6,1.6,0,0,1-.47-.08l-9-2.93a1.5,1.5,0,0,1,.93-2.85l7.57,2.47,2.51-7.69a1.5,1.5,0,1,1,2.85.93l-3,9.11A1.51,1.51,0,0,1,218.86,97.31Z" }),
    react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", { fill: primaryColor, d: "M177,136.31H137.58a.68.68,0,1,1,0-1.35H177a.68.68,0,1,1,0,1.35Z" }),
    react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", { fill: primaryColor, d: "M177,143.15H137.58a.68.68,0,0,1,0-1.36H177a.68.68,0,0,1,0,1.36Z" }),
    react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("g", { id: "cloud_lg", "data-name": "cloud lg" },
        react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("g", { id: "cloud_lg-2", "data-name": "cloud lg" },
            react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("g", { id: "cloud_lg-3", "data-name": "cloud lg" },
                react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", { fill: secondaryColor, d: "M172.74,125.21h-35c-5.22,0-7.59-3.68-7.59-7.1a7.82,7.82,0,0,1,2.55-5.38A6.87,6.87,0,0,1,136.1,111a9.17,9.17,0,0,1,2.48-7.5A11.2,11.2,0,0,1,149,100.19a13.11,13.11,0,0,1,12.51-8.62h.08A12,12,0,0,1,170.83,96a11.58,11.58,0,0,1,2.66,8.17c5.69,1,9.3,5.17,9.3,10.81C182.79,122.49,176.78,125.21,172.74,125.21Zm-35.44-11.9a4.28,4.28,0,0,0-2.88,1.22,5.48,5.48,0,0,0-1.76,3.58c0,1.72,1.08,4.63,5.12,4.63h35a7.37,7.37,0,0,0,7.57-7.74c0-4.76-3.19-8-8.33-8.53a1.19,1.19,0,0,1-.87-.49,1.23,1.23,0,0,1-.22-1,9,9,0,0,0-2-7.42A9.55,9.55,0,0,0,161.54,94h-.07c-8.27,0-10.41,7.6-10.49,7.92a1.3,1.3,0,0,1-.58.76,1.28,1.28,0,0,1-.94.12,8.93,8.93,0,0,0-9.07,2.3,6.4,6.4,0,0,0-1.57,6.53,1.24,1.24,0,0,1-1.26,1.65Z" })))),
    react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", { fill: primaryColor, d: "M232,164.51a1.51,1.51,0,0,1-1.47,1.21,1.53,1.53,0,0,1-.3,0c-13.14-2.63-24.76-8.72-36-14.6l-2.35-1.23-1.44-.75-1.49-.77c-1-.5-1.93-1-2.89-1.47-2.86-1.44-4.18-3.21-3.92-5.25.32-2.47,2.88-3.92,6.53-3.7l.28,0q.75,0,1.5.12c.5,0,1,.1,1.5.16,2.73.31,5.43.77,8.07,1.23,6.4,1.1,12.44,2.15,18.51,1.18a1.5,1.5,0,0,1,.48,3c-6.57,1-13.15-.09-19.5-1.18-2.48-.43-5-.87-7.56-1.17-.5-.07-1-.13-1.5-.17s-1-.1-1.5-.13l-.46,0c-1.58-.09-3.27.29-3.37,1.1-.08.61.75,1.4,2.29,2.18l1.54.78,1.5.77,1.5.77,3.67,1.92c11.05,5.79,22.48,11.77,35.2,14.32A1.5,1.5,0,0,1,232,164.51Z" }),
    react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", { fill: primaryColor, d: "M111.76,181.26H60.37a4.07,4.07,0,0,1-4.07-4.07V173.9a1.5,1.5,0,0,1,1.5-1.5h52.58a1.5,1.5,0,0,1,0,3H59.3v1.79a1.07,1.07,0,0,0,1.07,1.07h51.39a1.5,1.5,0,0,1,0,3Z" }),
    react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", { fill: primaryColor, d: "M65.41,174.43a1.5,1.5,0,0,1-1.5-1.5V140.49a3.1,3.1,0,0,1,3.1-3.1h47.76a1.5,1.5,0,0,1,0,3H67a.1.1,0,0,0-.1.1v32.44A1.5,1.5,0,0,1,65.41,174.43Z" }),
    react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", { fill: primaryColor, d: "M97.64,177.63H91.2a1.49,1.49,0,0,1-1.48-1.49v-1.36a.68.68,0,0,1,1.35,0v1.36a.13.13,0,0,0,.13.13h6.44a.13.13,0,0,0,.14-.13v-1.36a.68.68,0,0,1,1.35,0v1.36A1.49,1.49,0,0,1,97.64,177.63Z" }),
    react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("ellipse", { fill: primaryColor, cx: "94.42", cy: "144.54", rx: "1.11", ry: "1.14" }),
    react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", { fill: primaryColor, d: "M115,84.89H99.06a5.25,5.25,0,0,1-5.24-5.24V37.08a5.25,5.25,0,0,1,5.24-5.24H115a5.25,5.25,0,0,1,5.25,5.24V79.65A5.25,5.25,0,0,1,115,84.89Zm-15.9-50a2.24,2.24,0,0,0-2.24,2.24V79.65a2.24,2.24,0,0,0,2.24,2.24H115a2.25,2.25,0,0,0,2.25-2.24V37.08A2.25,2.25,0,0,0,115,34.84Z" }),
    react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", { fill: primaryColor, d: "M109.19,36.53h-4.36a1.33,1.33,0,0,1-1.33-1.33v-.48a.62.62,0,1,1,1.24,0v.48a.09.09,0,0,0,.09.09h4.36a.09.09,0,0,0,.09-.09v-.48a.63.63,0,0,1,1.25,0v.48A1.33,1.33,0,0,1,109.19,36.53Z" }),
    react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", { fill: primaryColor, d: "M108.45,80.67h-1.86a1.76,1.76,0,0,1,0-3.51h1.86a1.76,1.76,0,0,1,0,3.51Zm-1.86-2.26a.51.51,0,1,0,0,1h1.86a.51.51,0,0,0,0-1Z" }),
    react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", { fill: secondaryColor, d: "M119.78,181.93a1.5,1.5,0,0,1-1.42-1l-3-9.1a1.48,1.48,0,0,1,.08-1.15,1.54,1.54,0,0,1,.87-.75l9-3a1.5,1.5,0,0,1,.94,2.85l-7.56,2.5,2.54,7.68a1.49,1.49,0,0,1-1,1.89A1.26,1.26,0,0,1,119.78,181.93Z" }),
    react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", { fill: secondaryColor, d: "M88.48,131A1.49,1.49,0,0,1,87,129.84a69.16,69.16,0,0,1,2.63-38.09,1.5,1.5,0,0,1,2.81,1A66.32,66.32,0,0,0,90,129.22,1.5,1.5,0,0,1,88.8,131,1.73,1.73,0,0,1,88.48,131Z" }),
    react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", { fill: secondaryColor, d: "M154.29,184.16A68.45,68.45,0,0,1,116,172.51a1.5,1.5,0,0,1,1.67-2.49,65.82,65.82,0,0,0,83.17-8.13,1.5,1.5,0,0,1,2.12,2.12A68.36,68.36,0,0,1,154.29,184.16Z" }),
    react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", { fill: secondaryColor, d: "M218.72,97.35a1.52,1.52,0,0,1-1.44-1.06,66.33,66.33,0,0,0-23.42-33.51,65.91,65.91,0,0,0-66.52-7.47,1.5,1.5,0,0,1-1.23-2.73,68.88,68.88,0,0,1,69.56,7.81,69.43,69.43,0,0,1,24.49,35,1.5,1.5,0,0,1-1,1.87A1.59,1.59,0,0,1,218.72,97.35Z" })));
/* harmony default export */ __webpack_exports__["a"] = (EmptyCloudDocs);


/***/ }),

/***/ "T5i7":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__("q1tI");
var react_default = /*#__PURE__*/__webpack_require__.n(react);

// EXTERNAL MODULE: ./node_modules/classnames/index.js
var classnames = __webpack_require__("TSYQ");
var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/UXPUtils.ts
var UXPUtils = __webpack_require__("LbGp");

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/OverlayTrigger/index.js
var OverlayTrigger = __webpack_require__("uYrR");
var OverlayTrigger_default = /*#__PURE__*/__webpack_require__.n(OverlayTrigger);

// EXTERNAL MODULE: ./node_modules/mobx-react/index.module.js
var index_module = __webpack_require__("okNM");

// EXTERNAL MODULE: ./node_modules/react-intl-cdo/lib/index.es.js + 1 modules
var index_es = __webpack_require__("VIzJ");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/components/ContributorTooltipList.tsx
var ContributorTooltipList = __webpack_require__("YSDX");

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Tooltip/index.js
var Tooltip = __webpack_require__("DUuf");
var Tooltip_default = /*#__PURE__*/__webpack_require__.n(Tooltip);

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/components/FlickerFreeTooltip.tsx



const ScrollManager = UXPUtils["a" /* default */].usingUXP() && __webpack_require__("fIF1");
/**
 * Workaround for "tooltips flicker in the wrong position when content changes".
 * See <BUG_URL>.
 *
 * We only need this if the tooltip's contents will change (or load lazily).
 *
 * In UXP, Tooltips can flicker because the tooltip gets rendered before its
 * size gets computed. According to a comment in react-spectrum[1], UXP
 * "calculates [sizes] after the initial render" (unlike browsers, which
 * calculate before rendering).
 *
 * To work around this, whenever this tooltip gets new contents, we hide the
 * tooltip for an instant -- just long enough to obscure the flicker.
 *
 * [1]: https://git.corp.adobe.com/torq/react-spectrum/pull/37/files
 */
class FlickerFreeTooltip_FlickerFreeTooltip extends react_default.a.Component {
    constructor() {
        super(...arguments);
        this.state = {
            hidden: true,
            previousChildren: this.props.children,
        };
        this.getTooltipRef = () => {
            return this.flickerTooltip.tooltipRef;
        };
    }
    static getDerivedStateFromProps(props, state) {
        // If children change, hide the tooltip for a moment,
        // giving UXP time to recalculate (flicker) the position.
        if (props.children !== state.previousChildren) {
            return {
                previousChildren: props.children,
                hidden: true,
            };
        }
        else {
            return null;
        }
    }
    componentDidMount() {
        var _a;
        if (this.flickerTooltip && this.getTooltipRef()) {
            (_a = ScrollManager === null || ScrollManager === void 0 ? void 0 : ScrollManager.default) === null || _a === void 0 ? void 0 : _a.getInstance().toggleScrollBarsVisibility(true, false, this.flickerTooltip, this.getTooltipRef().getBoundingClientRect());
        }
    }
    componentWillUnmount() {
        var _a;
        if (this.flickerTooltip && this.getTooltipRef()) {
            (_a = ScrollManager === null || ScrollManager === void 0 ? void 0 : ScrollManager.default) === null || _a === void 0 ? void 0 : _a.getInstance().toggleScrollBarsVisibility(false, false, this.flickerTooltip, this.getTooltipRef().getBoundingClientRect());
        }
    }
    componentDidUpdate() {
        const { hidden } = this.state;
        if (hidden) {
            // If we've just rendered as hidden, make it visible soon.
            clearTimeout(this.timeout);
            this.timeout = setTimeout(() => {
                this.setState({
                    hidden: false,
                });
            }, 10);
        }
    }
    render() {
        const { style, children } = this.props;
        const { hidden } = this.state;
        return (react_default.a.createElement(Tooltip_default.a, Object.assign({ ref: el => (this.flickerTooltip = el) }, this.props, { style: {
                ...style,
                opacity: children && !hidden ? 1 : 0,
            } })));
    }
}
/* harmony default export */ var components_FlickerFreeTooltip = (FlickerFreeTooltip_FlickerFreeTooltip);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Wait/index.js
var Wait = __webpack_require__("czhh");
var Wait_default = /*#__PURE__*/__webpack_require__.n(Wait);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/styles/LazyContributorOverlay.css
var styles_LazyContributorOverlay = __webpack_require__("9TfL");
var LazyContributorOverlay_default = /*#__PURE__*/__webpack_require__.n(styles_LazyContributorOverlay);

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/components/LazyContributorOverlay.tsx
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;
};










/**
 * Renders the "small share icon with the number of contributors" (e.g. "👥 3"),
 * used in the grid view's metadata. When hovered, shows a tooltip with some of
 * the contributors' names.
 *
 * The collaborator list might not be available when the list is rendered;
 * the tooltip will show when the list loads.
 */
let LazyContributorOverlay_LazyContributorOverlay = class LazyContributorOverlay extends react["Component"] {
    render() {
        const { loading, contributors, children } = this.props;
        return (react_default.a.createElement(OverlayTrigger_default.a
        // Only web supports "shouldUpdatePosition"; on UXP, that causes glitch animation.
        , { 
            // Only web supports "shouldUpdatePosition"; on UXP, that causes glitch animation.
            shouldUpdatePosition: !UXPUtils["a" /* default */].usingUXP(), delayShow: 100, placement: "bottom", onShow: this.props.loadContributors },
            react_default.a.createElement("span", { "data-test-id": "LazyContributorOverlay", className: LazyContributorOverlay_default.a.root }, children),
            react_default.a.createElement(components_FlickerFreeTooltip, { className: classnames_default()(LazyContributorOverlay_default.a.tooltip, { [LazyContributorOverlay_default.a.loading]: !!loading }), placement: "top" }, (loading && react_default.a.createElement(Wait_default.a, { size: "S", centered: true })) || (react_default.a.createElement(ContributorTooltipList["a" /* default */], { contributors: contributors })))));
    }
};
LazyContributorOverlay_LazyContributorOverlay = __decorate([
    index_module["e" /* observer */]
], LazyContributorOverlay_LazyContributorOverlay);
/* harmony default export */ var components_LazyContributorOverlay = (Object(index_es["g" /* injectIntl */])(LazyContributorOverlay_LazyContributorOverlay));

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/components/SpaceAccess.tsx
var SpaceAccess = __webpack_require__("BzLU");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/styles/SpaceContributorMetadata.css
var SpaceContributorMetadata = __webpack_require__("wECU");
var SpaceContributorMetadata_default = /*#__PURE__*/__webpack_require__.n(SpaceContributorMetadata);

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/components/SpaceContributorMetadata.tsx






/* harmony default export */ var components_SpaceContributorMetadata = __webpack_exports__["a"] = (({ space, mode = 'grid', mobileView = false }) => {
    const count = space.contributorCount;
    // Show `# Members` for space contributors only
    if (!count || !space.isContributor) {
        if (mode === 'list' && !mobileView) {
            return react_default.a.createElement(react_default.a.Fragment, null, "\u2014");
        }
        return react_default.a.createElement(react_default.a.Fragment, null);
    }
    const access = space.isSharedToTeam ? SpaceAccess["c" /* AccessTypes */].team : SpaceAccess["c" /* AccessTypes */].private;
    return (react_default.a.createElement(react_default.a.Fragment, null,
        react_default.a.createElement(SpaceAccess["b" /* AccessIconAndTooltip */], { access: access, team: space.teamName }),
        access === SpaceAccess["c" /* AccessTypes */].private && (react_default.a.createElement(components_LazyContributorOverlay, { loadContributors: () => {
                // Load the collaborators if we haven't loaded them before.
                if (!space.isLoadingCollaborators && !space.hasLoadedCollaboratorsOnce) {
                    try {
                        space.loadCollaborators();
                    }
                    catch (e) {
                        // nothing
                    }
                }
            }, loading: space.isLoadingCollaborators, contributors: space.contributorTooltipList },
            react_default.a.createElement("span", { className: classnames_default()(SpaceContributorMetadata_default.a.contributorIconCount, {
                    [SpaceContributorMetadata_default.a.UXP]: UXPUtils["a" /* default */].usingUXP(),
                }) },
                react_default.a.createElement("span", { className: SpaceContributorMetadata_default.a.memberCount, "data-test-id": "ViewItem__memberCount" }, count)))),
        mode === 'grid' && react_default.a.createElement("span", { className: SpaceContributorMetadata_default.a.dotSeparator }, "\u2022")));
});


/***/ }),

/***/ "T8Wu":
/***/ (function(module) {

module.exports = JSON.parse("{\"a11y.button.canvases\":\"{name}\",\"a11y.button.libraries\":\"{name}, biblioteka\",\"a11y.button.listGridToggle\":\"Przełącznik widoku, widok {toggledView, select, grid {siatki} list {listy}}\",\"a11y.button.project\":\"{name}, projekt\",\"a11y.button.published\":\"{name}, {extension}\",\"a11y.button.selectFolder\":\"Wybierz folder\",\"a11y.button.working\":\"{name}, {extension}, zmodyfikowano: {modified}\",\"a11y.strings.folder\":\"folder\",\"header.action.newProject\":\"Nowy projekt\",\"header.action.newLibrary\":\"Nowa biblioteka\",\"header.action.browseAll\":\"Przeglądaj wszystkie\",\"header.Name\":\"Nazwa\",\"header.Size\":\"Rozmiar\",\"header.Sharing\":\"Członkowie\",\"header.Team\":\"Przestrzeń robocza\",\"header.DateModified\":\"Zmodyfikowano\",\"header.DateCreated\":\"Utworzony\",\"header.Status\":\"Polubione\",\"header.SortBy\":\"Sortuj wg\",\"header.sort.label\":\"Sortuj\",\"header.ChangeSortDirection\":\"Zmień kierunek sortowania na\",\"header.SortBy.asc\":\"Rosnąco\",\"header.SortBy.desc\":\"Malejąco\",\"header.selectAll\":\"Wybierz wszystkie\",\"header.reverseOrder\":\"Odwróć kolejność\",\"header.showCompatible\":\"Zgodne pliki\",\"header.showEverything\":\"Wszystko\",\"product.illustrator.web\":\"Illustrator Web (Beta)\",\"product.photoshop.web\":\"Photoshop Web (Beta)\",\"status.followed\":\"Tak\",\"status.unfollowed\":\"Nie\",\"team.usm.defaultName\":\"Przestrzeń robocza „{name}”\",\"space.access.private.description\":\"Tylko zaproszone osoby\",\"space.access.private.tooltip\":\"Dostęp do tego projektu mają tylko zaproszone osoby\",\"space.access.team.description\":\"Każda osoba w przestrzeni roboczej i wszyscy zaproszeni\",\"space.access.team.tooltip\":\"Każdy uczestnik „{team}” ma dostęp do tego projektu\",\"yourProjects.title\":\"Projekty\",\"yourProjects.librariesTab.title\":\"Biblioteki zespołowe\",\"yourProjects.empty.spaces\":\"Utwórz więcej projektów i zaproś kolejnych uczestników przestrzeni roboczej\",\"browseAll.title\":\"Przeglądaj wszystkie\",\"yourFiles.title\":\"Twoje dokumenty\",\"yourLibraries.title\":\"Biblioteki\",\"yourLibraries.metadata\":\"BIBLIOTEKA\",\"canvas.metadata\":\"OBSZAR ROBOCZY\",\"projectInfo.action.view\":\"Pokaż informacje\",\"projectInfo.action.edit\":\"Edytuj projekt\",\"projectInfo.empty.cta\":\"Utwórz nowy projekt\",\"projectInfo.empty.description\":\"Rozwiązanie Creative Cloud Projects upraszcza wyszukiwanie, organizowanie i udostępnianie plików oraz podejmowanie decyzji. W jednym miejscu masz wszystko, czego potrzebujesz do realizacji projektów kreatywnych.\",\"projectInfo.empty.heading\":\"Więcej tworzenia, mniej poszukiwań.\",\"projectInfo.error.description\":\"Spróbuj ponownie później\",\"projectInfo.error.heading\":\"Nie można wczytać sekcji {section}\",\"projectInfo.new.error.title\":\"Nie można utworzyć nowego projektu\",\"projectInfo.new.noPermission.description\":\"Aby uzyskać więcej informacji, skontaktuj się z administratorem.\",\"projectInfo.title.create\":\"NOWY PROJEKT\",\"projectInfo.title.edit\":\"EDYTUJ PROJEKT\",\"projectInfo.title.view\":\"INFORMACJE O PROJEKCIE\",\"projectInfo.access.title\":\"Kto może edytować ten projekt\",\"projectInfo.access.warning\":\"Niektórzy członkowie mogą stracić dostęp do projektu, jeśli zmienisz uprawnienia na „Tylko zaproszone osoby”.\",\"projectInfo.organization\":\"Organizacja\",\"projectInfo.organization.placeholder\":\"Wybierz jedną\",\"projectInfo.description\":\"Opis\",\"textField.invalid.characters\":\"Nazwy nie mogą zawierać następujących znaków: \\\\\\\\ / * ? \\\" | : < >\",\"textField.invalid.duplicateName\":\"W tej organizacji już istnieje projekt o takiej nazwie.\",\"textField.invalid.duplicateName.space\":\"W tej przestrzeni roboczej już istnieje projekt o takiej nazwie.\",\"textField.invalid.duplicateName.team\":\"W tej organizacji już istnieje przestrzeń robocza o takiej nazwie.\",\"textField.invalid.empty\":\"Nazwa nie może być pusta\",\"textField.invalid.generic\":\"Nieprawidłowa nazwa\",\"textField.invalid.length\":\"Nazwy mogą mieć maksymalnie 50 znaków\",\"textField.invalid.nameEndsWithDot\":\"Nazwy nie mogą kończyć się kropką\",\"textField.invalid.offline\":\"Połącz się ponownie, aby uzyskać dostęp do wszystkich swoich przestrzeni roboczych i projektów. Aby wyświetlić lokalne pliki ze swoich projektów, przejdź na stronę główną.\",\"projectInfo.textField.placeholder\":\"Nadaj nazwę projektowi\",\"projectInfo.team\":\"Przestrzeń robocza\",\"projectInfo.description.placeholder\":\"Np. pliki, opinie i materiały referencyjne dotyczące projektu klienta\",\"projectInfo.description.invalidLength\":\"Opis może mieć maksymalnie 1000 znaków\",\"projectInfo.toast.success.new\":\"Pomyślnie utworzono projekt: {name}\",\"projectInfo.toast.success.update\":\"Pomyślnie zaktualizowano projekt: {name}\",\"projectInfo.toast.error.generic\":\"Nie udało się {create, select, true {utworzyć} other {zmodyfikować}} projektu\",\"team.empty.heading\":\"Dzięki projektom wszyscy są zawsze na bieżąco\",\"team.empty.description\":\"Masz dość problemów z zablokowanymi plikami, nieporozumieniami dotyczącymi wersji i wysyłaniem ekranów do sprawdzenia na e-mail? Skorzystaj z przestrzeni, aby uporządkować projekty, zgromadzić zasoby i zebrać opinie oraz przesyłać pliki potrzebne do pracy całemu zespołowi.\",\"team.empty.createSpace\":\"Utwórz projekt\",\"team.empty.inviteMembers\":\"Zaproś uczestników\",\"team.empty.startHere\":\"ZACZNIJ TUTAJ\",\"team.create.success\":\"Pomyślnie utworzono przestrzeń roboczą: {name}\",\"team.create.error.generic\":\"Nie udało się utworzyć przestrzeni roboczej\",\"team.edit.success\":\"Pomyślnie zaktualizowano przestrzeń roboczą: {name}\",\"team.edit.error.generic\":\"Nie udało się zaktualizować przestrzeni roboczej\",\"team.archive.success\":\"Usunięto {count, plural, =1 {# przestrzeń roboczą} few {# przestrzenie robocze} many {# przestrzeni roboczych} other {# przestrzenie robocze}}\",\"team.archive.error.generic\":\"Nie można usunąć {count, plural, =1 {# przestrzeni roboczej} other {# przestrzeni roboczych}}\",\"team.error.generic\":\"Niestety wystąpił nieznany błąd.\",\"project1Up.action.projectInfo\":\"Pokaż informacje\",\"project1up.region.space.ariaLabel\":\"{projectName}, projekt\",\"project1Up.section.libraries\":\"Biblioteki\",\"project1Up.section.libraries.empty.cta\":\"Dodaj biblioteki Creative Cloud\",\"project1Up.section.libraries.empty.description\":\"Dodaj odsyłacze do bibliotek, których potrzebujesz do pracy.\",\"project1Up.section.libraries.empty.heading\":\"Zbierz wszystko w jednym miejscu\",\"project1Up.section.filter\":\"Filtruj\",\"project1Up.section.filter.label\":\"Filtruj według słowa kluczowego\",\"project1Up.section.filter.enterKeyword\":\"Wpisz słowo kluczowe\",\"project1Up.section.filterFiles.empty.heading\":\"Brak wyników zgodnych z wybranym filtrem\",\"project1Up.section.compatibleFiles.empty.heading\":\"W tym projekcie nie ma zgodnych plików\",\"project1Up.section.workingFiles\":\"Pliki robocze\",\"project1Up.section.workingFiles.empty.addFiles\":\"Dodaj pliki\",\"project1Up.section.workingFiles.empty.createFolder\":\"Utwórz nowy folder\",\"project1Up.section.workingFiles.empty.description\":\"Pracuj nad kolejnymi wersjami projektów i współpracuj z innymi użytkownikami.\",\"project1Up.section.workingFiles.empty.heading\":\"Pracuj nad wszystkim, co jest potrzebne i gdy tylko jest potrzebne\",\"project1Up.section.published\":\"Opublikowano\",\"project1Up.section.published.empty.cta\":\"Jak publikować łącza\",\"project1Up.section.published.empty.description\":\"Wyślij łącza tylko do wyświetlenia, aby uzyskać opinie od odpowiednich osób we właściwym czasie.\",\"project1Up.section.published.empty.description.readonly\":\"Osoby proszące o opinię lub recenzję dodadzą tutaj łącze.\",\"project1Up.section.published.empty.heading\":\"Udostępniaj zasoby w konkretnym celu\",\"project1Up.section.published.empty.heading.readonly\":\"W tym projekcie nie ma opublikowanych elementów\",\"project1Up.section.canvases\":\"Obszary robocze\",\"project1Up.section.canvases.empty.cta\":\"Dodaj obszary robocze Canvas do Creative Cloud\",\"project1Up.section.canvases.empty.description\":\"Można tu dodać odsyłacze do rzeczy, których potrzebujesz w pracy.\",\"project1Up.section.canvases.empty.heading\":\"Zbierz wszystko w jednym miejscu\",\"project1Up.section.files\":\"Pliki\",\"project1Up.error.accessDenied.heading\":\"Nie masz dostępu\",\"project1Up.error.accessDenied.description\":\"Usunięto Cię z tego projektu. Skontaktuj się z administratorem, jeśli uważasz, że to pomyłka.\",\"project1Up.header.seeAll\":\"Wyświetl wszystkie\",\"project1up.subheader.selected\":\"Wybrano {count, plural, =1 {# element} few {# elementy} many {# elementów} other {# elementy}}\",\"project1up.subheader.emptyDescription\":\"Dodaj opis do projektu\",\"project1up.subheader.canvases.title\":\"Obszary robocze\",\"project1up.subheader.canvases.subtitle\":\"TODO: CANVASES SUBTITLE\",\"project1up.subheader.libraries.title\":\"Biblioteki\",\"project1up.subheader.libraries.subtitle\":\"Członkowie mogą tutaj dodawać łącza do bibliotek Creative Cloud.\",\"project1up.subheader.working.title\":\"Pliki robocze\",\"project1up.subheader.working.subtitle\":\"Uczestnicy projektu mogą edytować te pliki.\",\"project1up.subheader.output.title\":\"Opublikowano\",\"project1up.subheader.output.subtitle\":\"{contributor, select, true {Tu można udostępnić prace w wersji tylko do odczytu osobom spoza projektu.} other {To elementy tylko do odczytu, które możesz wyświetlać i komentować}}\",\"project.subtitle\":\"PROJEKT\",\"project.countContributors\":\"{count, plural, =1 {# uczestnik} few {# uczestnicy} many {# uczestników} other {# uczestnicy}}\",\"project.versionError.reload.description\":\"Spróbuj odświeżyć przeglądarkę.\",\"project.versionError.reload.title\":\"Nie można uzyskać dostępu do projektu\",\"project.versionError.update.description\":\"Nie możesz uzyskać dostępu do tego projektu, dopóki nie zaktualizujesz aplikacji.\",\"project.versionError.update.title\":\"Zaktualizuj program {appName}, aby otworzyć plik\",\"project.alreadyDiscarded.title\":\"Ten projekt został usunięty\",\"project.alreadyDiscarded.description\":\"Skontaktuj się z administratorem, jeśli uważasz, że to pomyłka, lub przejrzyj inną zawartość.\",\"project.deleted.title\":\"Ten projekt został trwale usunięty\",\"project.deleted.description\":\"Ten projekt nie jest już dostępny.\",\"project.metadataError.backLabel\":\"Wróć do projektów\",\"project.metadataError.description\":\"Nie można znaleźć projektu, którego szukasz, albo nie masz do niego dostępu.\",\"project.metadataError.title\":\"Niestety wystąpił nieznany błąd.\",\"folder.subtitle\":\"FOLDER\",\"libraries.toast.add.start\":\"Dodawanie {count, plural, =1 {# biblioteki} other {# bibliotek}}\",\"libraries.toast.add.success\":\"Dodano {count, plural, =1 {# bibliotekę} few {# biblioteki} many {# bibliotek} other {# biblioteki}}\",\"libraries.toast.add.error\":\"Nie udało się dodać {count, plural, =1 {# biblioteki} other {# bibliotek}}. Spróbuj ponownie.\",\"libraries.toast.add.duplicate\":\"Ta biblioteka już istnieje\",\"libraries.toast.add.onlyDuplicates\":\"Nie można dodać {count, plural, =1 {# biblioteki, ponieważ już istnieje} other {# bibliotek, ponieważ już istnieją}}.\",\"libraries.toast.delete.success\":\"Udało się usunąć {count, plural, =1 {# bibliotekę} few {# biblioteki} many {# bibliotek} other {# biblioteki}}\",\"libraries.toast.delete.error\":\"Nie udało się usunąć {count, plural, =1 {# biblioteki} other {# bibliotek}}\",\"libraries.toast.follow.inProgress\":\"Rozpoczynanie obserwowania {count, plural, =1 {# biblioteki} other {# bibliotek}}\",\"libraries.toast.follow.success\":\"Rozpoczęto obserwowanie {count, plural, =1 {# biblioteki} other {# bibliotek}}\",\"libraries.toast.follow.error\":\"Nie udało się rozpocząć obserwowania {count, plural, =1 {# biblioteki} other {# bibliotek}}\",\"libraries.toast.unfollow.inProgress\":\"Kończenie obserwowania {count, plural, =1 {# biblioteki} other {# bibliotek}}\",\"libraries.toast.unfollow.success\":\"Zakończono obserwowanie {count, plural, =1 {# biblioteki} other {# bibliotek}}\",\"libraries.toast.unfollow.error\":\"Nie udało się zakończyć obserwowania {count, plural, =1 {# biblioteki} other {# bibliotek}}\",\"libraries.modal.empty.heading\":\"Brak bibliotek\",\"libraries.modal.empty.description\":\"Twoja organizacja nie udostępniła żadnych bibliotek\",\"libraries.modal.error.limitExceeded\":\"Nie można dodać biblioteki\",\"libraries.modal.error.limitExceeded.detail\":\"Do projektu można dodać maksymalnie 100 bibliotek. Usuń niektóre biblioteki, aby dodać kolejne.\",\"libraries.brokenResources\":\"Niektóre biblioteki nie zostały wyświetlone, ponieważ nie masz do nich dostępu. Skontaktuj się z innymi uczestnikami, aby uzyskać więcej informacji.\",\"copy.start\":\"Trwa kopiowanie {count, plural, =1 {# elementu} other {# elementów}}\",\"copy.failure\":\"Nie można skopiować {count, plural, =1 {# elementu} other {# elementów}}\",\"copy.failure.partial\":\"Nie udało się skopiować niektórych elementów\",\"copy.success\":\"Skopiowano {count, plural, =1 {# element} few {# elementy} many {# elementów} other {# elementy}}\",\"copy.conflictSuffix\":\"kopia\",\"move.start\":\"Trwa przenoszenie {count, plural, =1 {# elementu} other {# elementów}}\",\"move.failure\":\"Nie można przenieść {count, plural, =1 {# elementu} other {# elementów}}\",\"move.failure.partial\":\"Nie można przenieść niektórych elementów\",\"move.success\":\"Przeniesiono {count, plural, =1 {# element} few {# elementy} many {# elementów} other {# elementy}}\",\"upload.start\":\"Trwa przesyłanie {count, plural, =1 {# elementu} other {# elementów}}\",\"upload.failure\":\"Nie można przesłać {count, plural, =1 {# elementu} other {# elementów}}\",\"upload.failure.partial\":\"Nie można przesłać niektórych elementów\",\"upload.failure.snapshot\":\"Ten element nie jest obsługiwany\",\"upload.success\":\"Przesłano {count, plural, =1 {# element} few {# elementy} many {# elementów} other {# elementy}}\",\"download.start\":\"Trwa pobieranie {count, plural, =1 {# elementu} other {# elementów}}\",\"download.failure\":\"Nie można pobrać {count, plural, =1 {# elementu} other {# elementów}}\",\"download.failure.partial\":\"Nie można pobrać niektórych elementów\",\"download.success\":\"Pobrano {count, plural, =1 {# element} few {# elementy} many {# elementów} other {# elementy}}\",\"delete.failure\":\"Nie można usunąć {count, plural, =1 {# elementu} other {# elementów}}\",\"delete.failure.partial\":\"Nie można usunąć niektórych elementów\",\"delete.success\":\"Usunięto {count, plural, =1 {# element} few {# elementy} many {# elementów} other {# elementy}}\",\"jobs.failure\":\"Błąd przetwarzania {count, plural, =1 {# elementu} other {# elementów}}\",\"jobs.inProgress\":\"Przetwarzanie...\",\"jobs.success\":\"Zakończono przetwarzanie {count, plural, =1 {# elementu} other {# elementów}}\",\"restore.failure\":\"Nie można przywrócić {count, plural, =1 {# elementu} other {# elementów}}\",\"restore.failure.partial\":\"Nie można przywrócić niektórych elementów\",\"restore.success\":\"Przywrócono {count, plural, =1 {# element} few {# elementy} many {# elementów} other {# elementy}}\",\"rename.start\":\"Zmiana nazwy\",\"rename.success\":\"Zmieniono nazwę {count, plural, =1 {# elementu} other {# elementów}}\",\"rename.failure\":\"Błąd serwera. Nie udało się zmienić nazwy elementu.\",\"rename.failure.conflict\":\"Masz już tutaj element o takiej nazwie\",\"rename.offline.heading\":\"Nie można zmienić nazwy\",\"rename.offline\":\"Jesteś w trybie offline i nie możesz zmienić nazwy elementu. Wróć do trybu online, aby to zrobić.\",\"bookmark.follow.error\":\"Nie można dodać tego projektu do ulubionych\",\"bookmark.unfollow.error\":\"Nie można usunąć tego projektu z ulubionych\",\"bookmark.follow.success\":\"Pomyślnie dodano przestrzeń „{projectName}” do ulubionych\",\"bookmark.unfollow.success\":\"Pomyślnie usunięto przestrzeń „{projectName}” z ulubionych\",\"bookmark.bulk.follow.success\":\"Polubiono {count, plural, =1 {# element} few {# elementy} many {# elementów} other {# elementów}}\",\"bookmark.bulk.follow.partial\":\"Nie można polubić niektórych elementów\",\"bookmark.bulk.follow.error\":\"Nie można polubić {count, plural, =1 {# elementu} other {# elementów}}\",\"bookmark.bulk.unfollow.success\":\"Cofnięto polubienie {count, plural, =1 {# elementu} other {# elementów}}\",\"bookmark.bulk.unfollow.partial\":\"Nie można cofnąć polubienia niektórych elementów\",\"bookmark.bulk.unfollow.error\":\"Nie można cofnąć polubienia {count, plural, =1 {# elementu} other {# elementów}}\",\"copyLink.success\":\"Łącze zostało skopiowane do schowka\",\"copyLink.failure\":\"Nie można skopiować łącza\",\"starterUser.project1upNavigation\":\"Twój plan startowy nie obejmuje otwierania dokumentów w projektach\",\"starterUser.project1upNavigationCDPSave\":\"Twój plan startowy nie obejmuje zapisywania dokumentów w projektach\",\"invite.failure\":\"Nie udało się wysłać zaproszeń. Spróbuj ponownie.\",\"accessibility.backButton\":\"Wstecz\",\"button.role\":\"Przycisk\",\"button.actions\":\"Operacje\",\"button.add\":\"Dodaj\",\"button.addFiles\":\"Dodaj pliki\",\"button.addLibrary\":\"Dodaj bibliotekę\",\"button.createDocument\":\"Nowy plik {appName}\",\"button.library\":\"Biblioteka\",\"button.back\":\"Wstecz\",\"button.browse\":\"Przeglądaj wszystkie\",\"button.cancel\":\"Anuluj\",\"button.okay\":\"OK\",\"button.canvas\":\"Obszar roboczy\",\"button.addCanvas\":\"Nowy obszar roboczy\",\"button.changeDefaultApp\":\"Zmień aplikację domyślną...\",\"button.close\":\"Zamknij\",\"button.continue\":\"Kontynuuj\",\"button.copy\":\"Kopiuj do...\",\"button.copyLink\":\"Kopiuj łącze\",\"button.create\":\"Utwórz\",\"button.createNewFolder\":\"Utwórz nowy folder\",\"button.newFile\":\"Nowy plik\",\"button.newFolder\":\"Nowy folder\",\"button.delete\":\"Usuń\",\"button.deleteResource\":\"Usuń\",\"button.done\":\"Gotowe\",\"button.download\":\"Pobierz\",\"button.favorite\":\"Dodaj do ulubionych\",\"button.follow\":\"Obserwuj\",\"button.invite\":\"Zaproś\",\"button.inviteLabel\":\"Zaproś osoby\",\"button.leave\":\"Opuść\",\"button.leaveProject\":\"Opuść przestrzeń roboczą\",\"button.move\":\"Przenieś do...\",\"button.next\":\"Dalej\",\"button.ok\":\"OK\",\"button.open\":\"Otwórz\",\"button.openWith\":\"Otwórz za pomocą\",\"button.open.appName\":\"{appName} {isDefault, select, true {(Domyślny)} other {}}\",\"button.redo\":\"Ponów próbę\",\"button.reload\":\"Wczytaj ponownie\",\"button.rename\":\"Zmień nazwę\",\"button.restore\":\"Przywróć\",\"button.retry\":\"Ponów próbę\",\"button.save\":\"Zapisz\",\"button.select\":\"Wybierz\",\"button.share\":\"Udostępnij\",\"button.skipTour\":\"Pomiń przewodnik\",\"button.undo\":\"Cofnij\",\"button.unfavorite\":\"Usuń z ulubionych\",\"button.unfollow\":\"Przestań obserwować\",\"button.update\":\"Aktualizuj\",\"button.upgrade\":\"Rozszerz\",\"button.view\":\"Wyświetl wszystkie\",\"button.viewProject\":\"Wyświetl projekt\",\"button.viewTarget\":\"Wyświetl\",\"button.createWeblink\":\"Dodaj łącze WWW\",\"button.leaveTeam\":\"Opuść przestrzeń roboczą\",\"button.renameTeam\":\"Zmień nazwę przestrzeni roboczej\",\"button.editTeam\":\"Edytuj informacje o przestrzeni roboczej\",\"button.archiveTeam\":\"Usuń przestrzeń roboczą\",\"button.upload\":\"Prześlij pliki\",\"button.goToDeleted\":\"Wyświetl w usuniętych\",\"button.viewEverything\":\"Wyświetl wszystko\",\"button.viewInWeb\":\"Wyświetl w Internecie\",\"abbreviations.fileSize.byte\":\"B\",\"abbreviations.fileSize.kilobyte\":\"KB\",\"abbreviations.fileSize.megabyte\":\"MB\",\"abbreviations.fileSize.gigabyte\":\"GB\",\"abbreviations.fileSize.terabyte\":\"TB\",\"statusIcon.conflicted\":\"Konflikt synchronizacji\",\"statusIcon.onlineOnly\":\"Wyłącznie online\",\"statusIcon.availableOffline\":\"Dostępne offline\",\"statusIcon.syncing\":\"Synchronizacja...\",\"statusIcon.waitingToSync\":\"Oczekiwanie na synchronizację\",\"statusMessage.offline.description\":\"Połącz się ponownie, aby uzyskać dostęp do wszystkich swoich przestrzeni roboczych i projektów. Aby wyświetlić lokalne pliki ze swoich projektów, przejdź na stronę główną.\",\"statusMessage.offline.heading\":\"Nie masz połączenia\",\"statusMessage.offline.toast\":\"Pracujesz bez połączenia, więc niektóre funkcje i pliki mogą być niedostępne.\",\"toggle.listView\":\"Widok listy\",\"toggle.gridView\":\"Widok miniatur\",\"color.fuchsia\":\"Fuksja\",\"color.indigo\":\"Indygo\",\"color.celery\":\"Jasnozielony\",\"color.magenta\":\"Purpurowy\",\"color.yellow\":\"Żółty\",\"color.seafoam\":\"Jasnoturkusowy\",\"color.chartreuse\":\"Żółtozielony\",\"color.purple\":\"Fioletowy\",\"color.blue\":\"Niebieski\",\"color.red\":\"Czerwony\",\"color.orange\":\"Pomarańczowy\",\"color.green\":\"Zielony\",\"color.label\":\"Kolor projektu\",\"tooltip.offline.general\":\"Połącz się ponownie z Internetem, aby wykonać tę operację\",\"tooltip.moreFaces\":\"+ jeszcze {number}\",\"action.leave.space.success\":\"Opuszczono {count, plural, =1 {# projekt} few {# projekty} many {# projektów} other {# projekty}}\",\"action.leave.prototype.success\":\"Usunięto dostęp do {count, plural, =1 {# prototypu} other {# prototypów}}\",\"action.leave.file.success\":\"Usunięto dostęp do {count, plural, =1 {# pliku} other {# plików}}\",\"action.leave.canvas.success\":\"Usunięto dostęp do {count, plural, =1 {# obszaru roboczego} other {# obszarów roboczych}}\",\"action.leave.team.success\":\"Opuszczono 1 przestrzeń roboczą\",\"action.leave.space.error\":\"Nie można opuścić tego projektu\",\"action.leave.prototype.error\":\"Nie można opuścić tego prototypu\",\"action.leave.file.error\":\"Nie można opuścić tego pliku\",\"action.leave.team.error\":\"Nie można opuścić tej przestrzeni roboczej\",\"action.leave.canvas.error\":\"Nie można opuścić tego obszaru roboczego\",\"action.leave.space.partial.error\":\"Nie można opuścić wszystkich projektów\",\"action.leave.prototype.partial.error\":\"Nie można opuścić wszystkich prototypów\",\"action.leave.file.partial.error\":\"Nie można opuścić wszystkich plików\",\"action.leave.canvas.partial.error\":\"Nie można opuścić wszystkich obszarów roboczych\",\"action.leave.error.onlyContributor\":\"Jesteś jedynym uczestnikiem. Dodaj kolejną osobę, zanim opuścisz przestrzeń.\",\"action.leave.error.addressBookGroupMember\":\"Najpierw opuść grupę, a następnie spróbuj ponownie.\",\"action.leave.error.admin\":\"Nie możesz opuścić tej przestrzeni, ponieważ jesteś administratorem.\",\"action.leave.error.generic\":\"Nie można opuścić przestrzeni, ponieważ wystąpił nieznany błąd.\",\"action.reportAbuse\":\"Zgłoś naruszenie\",\"action.reportAbuse.required\":\"Wymagane\",\"action.reportAbuse.titleText\":\"Jeśli uważasz, że ta treść w serwisie Creative Cloud narusza Warunki użytkowania Adobe, możesz to szybko zgłosić za pomocą tego formularza.\",\"action.reportAbuse.emailInput\":\"Twój adres e-mail\",\"action.reportAbuse.nameInput\":\"Twoje imię i nazwisko\",\"action.reportAbuse.radioButtonText\":\"Dlaczego zgłaszasz te treści?\",\"action.reportAbuse.defamation\":\"Zniesławienie\",\"action.reportAbuse.hate\":\"Treści szerzące nienawiść lub rasistowskie\",\"action.reportAbuse.trademark\":\"Naruszenie znaku towarowego\",\"action.reportAbuse.pornography\":\"Treści erotyczne\",\"action.reportAbuse.vulgar\":\"Treści obraźliwe\",\"action.reportAbuse.other\":\"Inne\",\"action.reportAbuse.inappropriate\":\"Nieodpowiednie treści\",\"action.reportAbuse.age\":\"Nieprawidłowy wiek\",\"action.reportAbuse.gender\":\"Nieprawidłowa płeć\",\"action.reportAbuse.textAreaTitle\":\"Opisz, co Cię zaniepokoiło\",\"action.reportAbuse.describeConcern\":\"Opisz problem\",\"action.reportAbuse.success\":\"Pomyślnie zgłoszono naruszenie\",\"action.reportAbuse.failure\":\"Nie udało się zgłosić naruszenia\",\"action.menu.label\":\"Menu Operacje\",\"action.label\":\"Akcja\",\"dialog.genericError.description\":\"Niestety wystąpił nieznany błąd.\",\"dialog.genericError.title\":\"Nieoczekiwany błąd\",\"dialog.leave.space.title\":\"Opuść {count, plural, =1 {{name}} other {projekty}}\",\"dialog.leave.prototype.title\":\"Opuść {count, plural, =1 {ten prototyp} other {prototypy}}\",\"dialog.leave.file.title\":\"Opuść {count, plural, =1 {ten plik} few {# pliki} many {# plików} other {# pliki}}\",\"dialog.leave.canvas.title\":\"Opuść {count, plural, =1 {ten obszar roboczy} other {obszary robocze}}\",\"dialog.leave.team.title\":\"Czy to pożegnanie?\",\"dialog.leave.team.detail\":\"Jeśli usuniesz siebie, to nie będzie można cofnąć tej operacji. Skontaktuj się z administratorem, jeśli zechcesz ponownie dołączyć do tej przestrzeni roboczej.\",\"dialog.leave.space.detail\":\"Stracisz dostęp do znajdujących się tutaj elementów, które nie należą do Ciebie. Opuszczenia projektu „{projectName}” nie będzie można cofnąć.\",\"dialog.leave.prototype.detail\":\"Nie będziesz mieć do niego dostępu, dopóki nie otrzymasz kolejnego zaproszenia.\",\"dialog.leave.file.detail\":\"Nie będziesz mieć do niego dostępu, dopóki nie otrzymasz kolejnego zaproszenia.\",\"dialog.leave.canvas.detail\":\"Nie będziesz mieć do niego dostępu, dopóki nie otrzymasz kolejnego zaproszenia.\",\"dialog.leave.detail\":\"{type, select, space {Utracisz dostęp do nienależących do Ciebie elementów, które znajdują się w {count, plural, =1 {tym projekcie} other {tych projektach}}. Opuszczenia {count, plural, =1 {projektu „{name}”} other {tych projektów}} nie będzie można cofnąć.} other {Nie będziesz już mieć dostępu do {count, plural, =1 {tego projektu} other {tych projektów}}, dopóki nie dostaniesz nowego zaproszenia{count, plural, =1 {.} other {:}}}}\",\"dialog.deleteFailed.title\":\"Nie można usunąć wszystkich elementów\",\"dialog.deleteWarning.description\":\"{type, select, spaces {To działanie spowoduje usunięcie zawartości u wszystkich użytkowników następujących projektów:} other {To działanie spowoduje usunięcie następujących elementów u wszystkich użytkowników tego projektu:}}\",\"dialog.deleteWarning.title\":\"{type, select, space {Usuń {count} {count, plural, =1 {projekt} few {projekty} many {projektów} other {projekty}}} other {Usuń {count} {count, plural, =1 {element} few {elementy} many {elementów} other {elementy}}}}\",\"dialog.deleteFailed.description.unauthorized\":\"Nie można usunąć, ponieważ usunięto Cię z tego projektu:\",\"dialog.deleteFailed.description.alreadyDeleted\":\"Nie można usunąć, ponieważ ktoś inny już usunął ten element:\",\"dialog.deleteFailed.description.unknown\":\"Nie można usunąć, ponieważ wystąpił nieznany błąd:\",\"dialog.cantCopyAllItems\":\"Nie udało się skopiować wszystkich elementów\",\"dialog.cantCopyBecauseSomethingWentWrong\":\"Nie można skopiować, ponieważ wystąpił nieznany błąd:\",\"dialog.cantCopyBecauseYouWereSignedOut\":\"Nie można skopiować, ponieważ nastąpiło wylogowanie:\",\"dialog.cantCopyBecauseYouWereRemoved\":\"Nie można skopiować, ponieważ usunięto Cię z tego projektu:\",\"dialog.cantCopyBecauseItemWasDeleted\":\"Nie można skopiować, ponieważ ktoś inny już usunął ten element:\",\"dialog.cantCopyBecauseItemExists\":\"Nie można skopiować, ponieważ ten element już istnieje w miejscu docelowym:\",\"dialog.cantMoveAllItems\":\"Nie udało się przenieść wszystkich elementów\",\"dialog.cantMoveBecauseSomethingWentWrong\":\"Nie można przenieść, ponieważ wystąpił nieznany błąd:\",\"dialog.cantMoveBecauseYouWereSignedOut\":\"Nie można przenieść, ponieważ nastąpiło wylogowanie:\",\"dialog.cantMoveBecauseYouWereRemoved\":\"Nie można przenieść, ponieważ usunięto Cię z tego projektu:\",\"dialog.cantMoveBecauseItemWasDeleted\":\"Nie można przenieść, ponieważ ktoś inny już usunął ten element:\",\"dialog.cantMoveBecauseItemExists\":\"Nie można przenieść, ponieważ ten element już istnieje w miejscu docelowym:\",\"dialog.createFolder.error\":\"Błąd serwera — nie można zapisać folderu\",\"dialog.createFolder.nameConflict\":\"Masz już folder o tej nazwie.\",\"dialog.createFolder.placeholder\":\"Nazwa folderu\",\"dialog.createFolder.title\":\"Utwórz folder\",\"dialog.createFolder.success\":\"Pomyślnie utworzono folder\",\"dialog.createWeblink.error\":\"Nieobsługiwany adres URL\",\"dialog.createWeblink.tooManyRequests\":\"Nieoczekiwany błąd sieci. Spróbuj ponownie.\",\"dialog.createWeblink.success\":\"Dodano 1 element\",\"dialog.createWeblink.nameConflict\":\"Ten tytuł już istnieje\",\"dialog.createWeblink.name.placeholder\":\"Wprowadź nazwę tego łącza\",\"dialog.createWeblink.link.placeholder\":\"https://\",\"dialog.createWeblink.name\":\"Własny tytuł\",\"dialog.createWeblink.link\":\"Łącze\",\"dialog.createWeblink.title\":\"Utwórz łącze WWW\",\"app.type.webLink\":\"ŁĄCZE WWW\",\"dialog.createCanvas.error\":\"Nie można utworzyć obszaru roboczego\",\"dialog.move.title\":\"Przenieś do projektu {projectName}\",\"dialog.move.detail\":\"W wyniku przeniesienia tego elementu zmieni się grupa osób, która będzie mieć do niego dostęp.\",\"moveToTeam.confirm.title\":\"Przenieś do przestrzeni roboczej {name}\",\"moveToTeam.confirm.message\":\"Przeniesienie tu projektów spowoduje, że zmieni się ich dostępność dla innych osób. Twoje projekty będą dostępne dla każdego, kto ma dostęp do Twojej przestrzeni roboczej.\",\"moveToTeam.disabled.differentOrg.tooltip.message\":\"Nie można przenosić projektów do przestrzeni roboczej w innej organizacji.\",\"moveToSpace.disabled.differentOrg.tooltip.message\":\"Nie można przenosić elementów do projektu w innej organizacji.\",\"moveToTeam.success\":\"Przeniesiono {count, plural, =1 {# projekt} few {# projekty} many {# projektów} other {# projekty}} do przestrzeni roboczej {name}\",\"confirmationDialog.dontShowAgain\":\"Nie pokazuj ponownie\",\"dialog.open.title\":\"Otwórz w sieci\",\"dialog.open.detail\":\"Tego pliku nie można otworzyć w aplikacji {appName}. Możesz jednak uzyskać do niego dostęp w swojej przeglądarce.\",\"dialog.renameTeam.title\":\"Zmień nazwę przestrzeni roboczej\",\"dialog.renameTeam.placeholder\":\"Wprowadź nazwę tej przestrzeni roboczej\",\"dialog.renameTeam.error\":\"Niestety wystąpił nieznany błąd.\",\"dialog.renameTeam.nameConflict\":\"Taka nazwa już istnieje\",\"dialog.archiveTeam.title\":\"Czy usunąć tę przestrzeń roboczą?\",\"dialog.archiveTeam.detail\":\"Po usunięciu własnego konta nie można cofnąć tej operacji. Skontaktuj się z administratorem, jeśli chcesz ponownie dołączyć do tej przestrzeni roboczej.\",\"dialog.saveToCloud.title\":\"Pliki zapisane w Creative Cloud\",\"dialog.saveToCloud.detail\":\"Dokument w chmurze oferuje teraz historię wersji, zapraszanie do wspólnej edycji, natychmiastowy dostęp na innych urządzeniach i inne funkcje. Znajdziesz go tutaj oraz w swoich aplikacjach Creative Cloud.\",\"input.invalidCharInput\":\"Nazwa nie może zawierać następujących znaków: \\\\\\\\ / * ? \\\" | :\",\"input.invalidEmptyInput\":\"{names, select, true {Nazwy} other {Tytuły}} nie mogą być puste\",\"input.nameTooLong\":\"{names, select, true {Nazwy} other {Tytuły}} nie mogą być dłuższe niż {maxLength} znaków\",\"input.nameEndsWithDot\":\"{names, select, true {Nazwy} other {Tytuły}} nie mogą kończyć się kropką\",\"input.weblink.nameRestricted\":\"Łącza internetowe nie mogą mieć następujących tytułów: „con”, „prn”, „aux”, „nul”, „com#”, „lpt#”\",\"input.nameRestricted\":\"Zasoby nie mogą mieć następujących nazw: con/prn/aux/nul/com#/lpt#\",\"input.weblink.invalidCharInput\":\"Tytuły nie mogą składać się z samych spacji ani zawierać następujących znaków: \\\\\\\\ / * ? \\\" | : < > \",\"input.name.invalidCharInput\":\"Nazwy nie mogą składać się z samych spacji ani zawierać następujących znaków: \\\\\\\\ / * ? \\\" | : < > \",\"cdpFooter.orphanedArtifactsWarning\":\"Opublikowane łącza związane z przenoszonymi elementami pozostaną w oryginalnym projekcie\",\"cdpFooter.libraryPrivacyWarning\":\"Jeśli masz uprawnienia do dalszego udostępniania dodanej przez siebie biblioteki, uczestnicy projektu będą mogli ją wyświetlać\",\"toast.beforeOp.error.documentIsOpen\":\"Zamknij {count, plural, =1 {dokument} other {dokumenty}}, aby wykonać tę akcję.\",\"app.type.designSpecs\":\"SPECYFIKACJE PROJEKTOWE\",\"app.type.prototype\":\"PROTOTYP\",\"app.type.publishedLink\":\"OPUBLIKOWANE ŁĄCZE\",\"popover.header\":\"Współpraca nad projektem z innymi i udostępnianie pracy w celu uzyskania opinii.\",\"popover.linkout\":\"Więcej informacji\",\"team.libraries.filter.all\":\"Wszystkie\",\"team.libraries.filter.addedToYourLibraries\":\"Dodano do Twoich bibliotek\",\"team.libraries.filter.notAdded\":\"Nie dodano\",\"team.spaces.filter.all\":\"Wszystko\",\"team.spaces.filter.favorited\":\"Polubione\",\"team.filter.empty.heading\":\"Żadne projekty nie pasują do wybranego filtru\",\"team.filter.empty.description1\":\"Brak wyników wyszukiwania \",\"team.filter.empty.description2\":\" na tej liście. Sprawdź pisownię lub spróbuj użyć innych słów kluczowych.\",\"team.filter.no.match.description\":\"Nie znaleziono wyników na tej liście. Sprawdź pisownię lub spróbuj użyć innych kryteriów filtru.\",\"team.filter.filterText\":\"{filter}\",\"team.header.other.teams\":\"Inne przestrzenie\",\"space.empty.heading\":\"Wszystko w jednym miejscu, wszyscy na bieżąco\",\"space.empty.description\":\"Wypełnij ten projekt plikami roboczymi i powiązanymi materiałami. Zaproś współpracowników, aby dołączyli do Ciebie i także dodali swoje prace. \",\"space.empty.canvasHeading\":\"CREATIVE CLOUD CANVAS\",\"space.empty.actionsHeading\":\"DODAJ ZAWARTOŚĆ DO PROJEKTU\",\"space.empty.createCanvas\":\"Nowy obszar roboczy\",\"space.empty.upload\":\"Dodaj pliki\",\"space.empty.createFolder\":\"Nowy folder\",\"space.empty.createWeblink\":\"Łącza WWW\",\"space.empty.addResource\":\"Biblioteka\",\"folder.empty.heading\":\"Ten folder jest pusty.\",\"folder.empty.description\":\"Zacznij dodawać pliki, aby go zapełnić.\",\"folder.discard.heading\":\"Ten folder został usunięty.\",\"folder.discard.description\":\"Skontaktuj się z administratorem, jeśli uważasz, że to pomyłka, lub przejrzyj inną zawartość.\",\"folder.error.description\":\"Podczas wczytywania zawartości z tego folderu wystąpił problem..\",\"space.empty.section.createACanvas\":\"Utwórz obszar roboczy\",\"tooltip.opensInBrowser\":\"Otwieranie w przeglądarce\",\"space.empty.workingFiles\":\"Kontynuuj dodawanie do tego projektu\",\"space.empty.canvasPopoverTitle\":\"Wypróbuj Creative Cloud Canvas (Beta)\",\"space.empty.canvasPopoverContent\":\"Za pomocą obszarów roboczych można planować układ utworów graficznych, wizualizować je i prowadzić recenzję.\",\"space.error.heading\":\"Nie można wczytać projektu\",\"space.error.description\":\"Podczas wczytywania zawartości z tego projektu wystąpił problem.\",\"createTeamWizard.createTeam.sidebarHeading\":\"Utwórz przestrzeń\",\"createTeamWizard.createTeam.sidebarCopy\":\"Utwórz przestrzeń, aby zorganizować pracę wszystkich użytkowników i zapewnić im dostęp do aktualnych informacji.\",\"createTeamWizard.createTeam.sidebarCopy.adminconsole\":\"Skonfiguruj miejsce, w którym Twój zespół będzie mógł współpracować i udostępniać pliki.\",\"createTeamWizard.createTeam.sidebarLink\":\"Więcej informacji\",\"createTeamWizard.createTeam.contentHeading\":\"Nowa przestrzeń\",\"createTeamWizard.createTeam.loading\":\"Tworzenie przestrzeni „{name}”\",\"createTeamWizard.inviteMembers.sidebarHeading\":\"Zaproś użytkowników do przestrzeni „{name}”\",\"createTeamWizard.inviteMembers.sidebarCopy\":\"Zacznij teraz wpisywać imię i nazwisko lub adres e-mail, aby zaprosić użytkowników, albo pomiń ten krok i zaproś ich później.\",\"createTeamWizard.inviteMembers.loading\":\"Zapraszanie użytkowników do przestrzeni „{name}”\",\"createTeamWizard.inviteMembers.contentHeading\":\"Zaproś uczestników\",\"createTeamWizard.inviteMembers.successToast\":\"Użytkownicy zostali dodani do nowej przestrzeni\",\"createTeamWizard.progress\":\"Krok {current} z {total}\",\"createTeamWizard.skipStep\":\"Pomiń\",\"teamDialog.createTeam.label\":\"Utwórz przestrzeń\",\"teamDialog.createTeam.infoBox.description\":\"Tworzona przestrzeń robocza jest przeznaczona tylko dla zaproszonych osób. Wszyscy dodani mają domyślnie uprawnienia do edycji.\",\"teamDialog.editTeam.label\":\"Edytuj przestrzeń\",\"teamDialog.nameSection.placeholder\":\"Nadaj nazwę nowej przestrzeni roboczej\",\"teamDialog.nameSection.label\":\"Nazwa przestrzeni roboczej\",\"teamDialog.permissionsSection.label\":\"Kto może edytować tę przestrzeń\",\"teamDialog.permissionsSection.option.onlyInvited\":\"Tylko zaproszone osoby\",\"teamDialog.descriptionSection.label\":\"Opis przestrzeni (opcjonalnie)\",\"teamDialog.descriptionSection.placeholder\":\"Dodaj kilka słów o swojej przestrzeni\",\"teamsSidebar.noTeams\":\"Brak przestrzeni roboczych\",\"teamsSidebar.newTeamButton\":\"Utwórz przestrzeń\",\"teamsSidebar.adminTour.title\":\"Nowość! Tworzenie przestrzeni roboczych\",\"teamsSidebar.adminTour.content\":\"Administratorzy mogą teraz tworzyć przestrzenie robocze w internetowym serwisie Creative Cloud, co ułatwia organizowanie wspólnej pracy.\",\"teamsSidebarTeam.newSpaceButton\":\"Nowy projekt\",\"teamsSidebarTeam.header.newBadge\":\"NOWOŚĆ\",\"teamsSidebarTeam.header.otherTeams\":\"Z innych przestrzeni roboczych\",\"teamsSidebarTeam.header.teams\":\"PRZESTRZENIE ROBOCZE\",\"teamsSidebarTeam.header.previewLabel\":\"(Podgląd)\",\"teamsSidebarTeam.header.previewCopy\":\"Przestrzenie roboczej i projekty są dostępne w prywatnej wersji beta.\",\"teamsSidebarTeam.header.previewLearnMoreText\":\"Więcej informacji\",\"teamsSidebarTeam.message.loading\":\"Wczytywanie...\",\"teamsSidebarTeam.message.noSpaces\":\"Nie masz obecnie żadnych przestrzeni ani projektów.\",\"teamsSidebarTeam.message.offline\":\"Nie masz połączenia. Połącz się ponownie, aby wyświetlić przestrzenie robocze i projekty.\",\"teamsSidebarTeam.message.error\":\"Podczas ładowania przestrzeni roboczych i projektów wystąpił problem.\",\"teams1up.error.description\":\"Podczas ładowania projektów wystąpił problem.\",\"teams1up.error.heading\":\"Nie udało się wczytać projektów\",\"otherTeams.emptyMessage.header\":\"Nie można wyświetlić przestrzeni roboczej\",\"otherTeams.emptyMessage.description1\":\"Do opuszczenia ostatniego projektu lub usunięcia Cię z niego użyto sekcji\",\"otherTeams.emptyMessage.description2\":\"— skontaktuj się z administratorem, jeśli uważasz, że to pomyłka.\",\"spaceTour.step0.title\":\"Tu są Twoje projekty\",\"spaceTour.step0.content\":\"Projekty ułatwiają zespołom współpracę oraz gromadzenie, organizowanie i udostępnianie plików i zasobów.\",\"spaceTour.step1.title\":\"Wszystko, co jest potrzebne przy realizacji projektu\",\"spaceTour.step1.content\":\"Wszystkie pliki robocze, obrazy referencyjne i inne zasoby zebrane w jednym miejscu.\",\"spaceTour.step2.title\":\"Uprawnienia wystarczy ustawić raz\",\"spaceTour.step2.content\":\"Odpowiedni dostęp można przyznać już podczas zapraszania współpracowników, co oszczędza czas i nakłady pracy. Osobom uczestniczącym w projekcie można wysyłać pakiety z dostępem tylko do wyświetlania, aby zgromadzić opinie i komentarze.\",\"error.cantCreateSpace\":\"Zapełniono całe miejsce w przestrzeni roboczej\",\"error.exceedQuota.create.detail.description1\":\"Nie można teraz tworzyć nowej zawartości. Wybierz opcję \",\"error.exceedQuota.description2\":\" aby zwolnić miejsce w pamięci.\",\"error.exceedQuota.add.detail.description1\":\"Nie można teraz dodawać nowej zawartości. Wybierz opcję \",\"error.move.generic\":\"Nie można przenieść, ponieważ wystąpił nieznany błąd\",\"error.move.signedOut\":\"Nie można przenieść, ponieważ nastąpiło wylogowanie\",\"error.move.permissionRevoked\":\"Nie można przenieść, ponieważ usunięto Cię z tego projektu\",\"error.move.deleted\":\"Nie można przenieść, ponieważ ktoś inny już usunął ten element\",\"error.move.duplicate\":\"Nie można przenieść, ponieważ ten element już istnieje w miejscu docelowym\",\"error.copy.generic\":\"Nie można skopiować, ponieważ wystąpił nieznany błąd\",\"error.copy.signedOut\":\"Nie można skopiować, ponieważ nastąpiło wylogowanie\",\"error.copy.permissionRevoked\":\"Nie można skopiować, ponieważ usunięto Cię z tego projektu\",\"error.copy.deleted\":\"Nie można skopiować, ponieważ ktoś inny już usunął ten element\",\"error.copy.duplicate\":\"Nie można skopiować, ponieważ ten element już istnieje w miejscu docelowym\",\"checkbox.select\":\"Wybierz\",\"listItem.fileSize\":\"Rozmiar pliku\",\"facepile.additionalMembers\":\"Dodatkowi uczestnicy: +{count}\",\"facepile.memberName\":\"{name}, uczestnik\",\"coachmark.information\":\"informacje\",\"toolbar.tools\":\"narzędzia\",\"griditem.error.message\":\"Nie można pobrać\",\"griditem.error.button\":\"Ponów próbę\",\"ats.move.extendedNotification\":\"Po zakończeniu operacji przenoszenia otrzymasz powiadomienie.\",\"file.deleted.error.heading\":\"Nie można {operation} pliku\",\"file.deleted.error.description\":\"Nie można {operation} tego pliku, ponieważ został usunięty. Przywróć go z sekcji usuniętych i spróbuj ponownie albo wybierz inną lokalizację.\",\"file.deleted.rename.error.description\":\"Nie można zmienić nazwy tego pliku, ponieważ został usunięty. Wybierz opcję „Przejdź do usuniętych”, aby przywrócić plik.\"}");

/***/ }),

/***/ "T9HO":
/***/ (function(module, exports, __webpack_require__) {

var inherits = __webpack_require__("P7XM");

var Hash = __webpack_require__("tnIz");

var Buffer = __webpack_require__("hwdV").Buffer;

var K = [0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd, 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc, 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019, 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118, 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe, 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2, 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1, 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694, 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3, 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65, 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483, 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5, 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210, 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4, 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725, 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70, 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926, 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df, 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8, 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b, 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001, 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30, 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910, 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8, 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53, 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8, 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb, 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3, 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60, 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec, 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9, 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b, 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207, 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178, 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6, 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b, 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493, 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c, 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a, 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817];
var W = new Array(160);

function Sha512() {
  this.init();
  this._w = W;
  Hash.call(this, 128, 112);
}

inherits(Sha512, Hash);

Sha512.prototype.init = function () {
  this._ah = 0x6a09e667;
  this._bh = 0xbb67ae85;
  this._ch = 0x3c6ef372;
  this._dh = 0xa54ff53a;
  this._eh = 0x510e527f;
  this._fh = 0x9b05688c;
  this._gh = 0x1f83d9ab;
  this._hh = 0x5be0cd19;
  this._al = 0xf3bcc908;
  this._bl = 0x84caa73b;
  this._cl = 0xfe94f82b;
  this._dl = 0x5f1d36f1;
  this._el = 0xade682d1;
  this._fl = 0x2b3e6c1f;
  this._gl = 0xfb41bd6b;
  this._hl = 0x137e2179;
  return this;
};

function Ch(x, y, z) {
  return z ^ x & (y ^ z);
}

function maj(x, y, z) {
  return x & y | z & (x | y);
}

function sigma0(x, xl) {
  return (x >>> 28 | xl << 4) ^ (xl >>> 2 | x << 30) ^ (xl >>> 7 | x << 25);
}

function sigma1(x, xl) {
  return (x >>> 14 | xl << 18) ^ (x >>> 18 | xl << 14) ^ (xl >>> 9 | x << 23);
}

function Gamma0(x, xl) {
  return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ x >>> 7;
}

function Gamma0l(x, xl) {
  return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7 | xl << 25);
}

function Gamma1(x, xl) {
  return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ x >>> 6;
}

function Gamma1l(x, xl) {
  return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6 | xl << 26);
}

function getCarry(a, b) {
  return a >>> 0 < b >>> 0 ? 1 : 0;
}

Sha512.prototype._update = function (M) {
  var W = this._w;
  var ah = this._ah | 0;
  var bh = this._bh | 0;
  var ch = this._ch | 0;
  var dh = this._dh | 0;
  var eh = this._eh | 0;
  var fh = this._fh | 0;
  var gh = this._gh | 0;
  var hh = this._hh | 0;
  var al = this._al | 0;
  var bl = this._bl | 0;
  var cl = this._cl | 0;
  var dl = this._dl | 0;
  var el = this._el | 0;
  var fl = this._fl | 0;
  var gl = this._gl | 0;
  var hl = this._hl | 0;

  for (var i = 0; i < 32; i += 2) {
    W[i] = M.readInt32BE(i * 4);
    W[i + 1] = M.readInt32BE(i * 4 + 4);
  }

  for (; i < 160; i += 2) {
    var xh = W[i - 15 * 2];
    var xl = W[i - 15 * 2 + 1];
    var gamma0 = Gamma0(xh, xl);
    var gamma0l = Gamma0l(xl, xh);
    xh = W[i - 2 * 2];
    xl = W[i - 2 * 2 + 1];
    var gamma1 = Gamma1(xh, xl);
    var gamma1l = Gamma1l(xl, xh); // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]

    var Wi7h = W[i - 7 * 2];
    var Wi7l = W[i - 7 * 2 + 1];
    var Wi16h = W[i - 16 * 2];
    var Wi16l = W[i - 16 * 2 + 1];
    var Wil = gamma0l + Wi7l | 0;
    var Wih = gamma0 + Wi7h + getCarry(Wil, gamma0l) | 0;
    Wil = Wil + gamma1l | 0;
    Wih = Wih + gamma1 + getCarry(Wil, gamma1l) | 0;
    Wil = Wil + Wi16l | 0;
    Wih = Wih + Wi16h + getCarry(Wil, Wi16l) | 0;
    W[i] = Wih;
    W[i + 1] = Wil;
  }

  for (var j = 0; j < 160; j += 2) {
    Wih = W[j];
    Wil = W[j + 1];
    var majh = maj(ah, bh, ch);
    var majl = maj(al, bl, cl);
    var sigma0h = sigma0(ah, al);
    var sigma0l = sigma0(al, ah);
    var sigma1h = sigma1(eh, el);
    var sigma1l = sigma1(el, eh); // t1 = h + sigma1 + ch + K[j] + W[j]

    var Kih = K[j];
    var Kil = K[j + 1];
    var chh = Ch(eh, fh, gh);
    var chl = Ch(el, fl, gl);
    var t1l = hl + sigma1l | 0;
    var t1h = hh + sigma1h + getCarry(t1l, hl) | 0;
    t1l = t1l + chl | 0;
    t1h = t1h + chh + getCarry(t1l, chl) | 0;
    t1l = t1l + Kil | 0;
    t1h = t1h + Kih + getCarry(t1l, Kil) | 0;
    t1l = t1l + Wil | 0;
    t1h = t1h + Wih + getCarry(t1l, Wil) | 0; // t2 = sigma0 + maj

    var t2l = sigma0l + majl | 0;
    var t2h = sigma0h + majh + getCarry(t2l, sigma0l) | 0;
    hh = gh;
    hl = gl;
    gh = fh;
    gl = fl;
    fh = eh;
    fl = el;
    el = dl + t1l | 0;
    eh = dh + t1h + getCarry(el, dl) | 0;
    dh = ch;
    dl = cl;
    ch = bh;
    cl = bl;
    bh = ah;
    bl = al;
    al = t1l + t2l | 0;
    ah = t1h + t2h + getCarry(al, t1l) | 0;
  }

  this._al = this._al + al | 0;
  this._bl = this._bl + bl | 0;
  this._cl = this._cl + cl | 0;
  this._dl = this._dl + dl | 0;
  this._el = this._el + el | 0;
  this._fl = this._fl + fl | 0;
  this._gl = this._gl + gl | 0;
  this._hl = this._hl + hl | 0;
  this._ah = this._ah + ah + getCarry(this._al, al) | 0;
  this._bh = this._bh + bh + getCarry(this._bl, bl) | 0;
  this._ch = this._ch + ch + getCarry(this._cl, cl) | 0;
  this._dh = this._dh + dh + getCarry(this._dl, dl) | 0;
  this._eh = this._eh + eh + getCarry(this._el, el) | 0;
  this._fh = this._fh + fh + getCarry(this._fl, fl) | 0;
  this._gh = this._gh + gh + getCarry(this._gl, gl) | 0;
  this._hh = this._hh + hh + getCarry(this._hl, hl) | 0;
};

Sha512.prototype._hash = function () {
  var H = Buffer.allocUnsafe(64);

  function writeInt64BE(h, l, offset) {
    H.writeInt32BE(h, offset);
    H.writeInt32BE(l, offset + 4);
  }

  writeInt64BE(this._ah, this._al, 0);
  writeInt64BE(this._bh, this._bl, 8);
  writeInt64BE(this._ch, this._cl, 16);
  writeInt64BE(this._dh, this._dl, 24);
  writeInt64BE(this._eh, this._el, 32);
  writeInt64BE(this._fh, this._fl, 40);
  writeInt64BE(this._gh, this._gl, 48);
  writeInt64BE(this._hh, this._hl, 56);
  return H;
};

module.exports = Sha512;

/***/ }),

/***/ "T9VG":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


exports.__esModule = true;

exports.default = function (node, event, handler, capture) {
  (0, _on2.default)(node, event, handler, capture);
  return {
    remove: function remove() {
      (0, _off2.default)(node, event, handler, capture);
    }
  };
};

var _on = __webpack_require__("raBC");

var _on2 = _interopRequireDefault(_on);

var _off = __webpack_require__("c0Fl");

var _off2 = _interopRequireDefault(_off);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

module.exports = exports['default'];

/***/ }),

/***/ "TBbR":
/***/ (function(module) {

module.exports = JSON.parse("{\"steps\":\"{currentStep} de {totalSteps}\"}");

/***/ }),

/***/ "TJAF":
/***/ (function(module, exports, __webpack_require__) {

// extracted by mini-css-extract-plugin

/***/ }),

/***/ "TJWN":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var global = __webpack_require__("5T2Y");

var core = __webpack_require__("WEpk");

var dP = __webpack_require__("2faE");

var DESCRIPTORS = __webpack_require__("jmDH");

var SPECIES = __webpack_require__("UWiX")('species');

module.exports = function (KEY) {
  var C = typeof core[KEY] == 'function' ? core[KEY] : global[KEY];
  if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {
    configurable: true,
    get: function () {
      return this;
    }
  });
};

/***/ }),

/***/ "TJpV":
/***/ (function(module, exports, __webpack_require__) {

module.exports = __webpack_require__.p + "assets/projects/ai_icon.png";

/***/ }),

/***/ "TO8r":
/***/ (function(module, exports) {

/** Used to match a single whitespace character. */
var reWhitespace = /\s/;
/**
 * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace
 * character of `string`.
 *
 * @private
 * @param {string} string The string to inspect.
 * @returns {number} Returns the index of the last non-whitespace character.
 */

function trimmedEndIndex(string) {
  var index = string.length;

  while (index-- && reWhitespace.test(string.charAt(index))) {}

  return index;
}

module.exports = trimmedEndIndex;

/***/ }),

/***/ "TOmJ":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _autobindDecorator = _interopRequireDefault(__webpack_require__("gKdT"));

var _convertUnsafeMethod = _interopRequireDefault(__webpack_require__("8nyd"));

var _FocusManager = _interopRequireDefault(__webpack_require__("3C4i"));

var _focusRing = _interopRequireDefault(__webpack_require__("PBY+"));

var _propTypes = _interopRequireDefault(__webpack_require__("17x9"));

var _react = _interopRequireWildcard(__webpack_require__("q1tI"));

var _class;

function _getRequireWildcardCache(nodeInterop) {
  if (typeof WeakMap !== "function") return null;
  var cacheBabelInterop = new WeakMap();
  var cacheNodeInterop = new WeakMap();
  return (_getRequireWildcardCache = function (nodeInterop) {
    return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
  })(nodeInterop);
}

function _interopRequireWildcard(obj, nodeInterop) {
  if (!nodeInterop && obj && obj.__esModule) {
    return obj;
  }

  if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
    return {
      default: obj
    };
  }

  var cache = _getRequireWildcardCache(nodeInterop);

  if (cache && cache.has(obj)) {
    return cache.get(obj);
  }

  var newObj = {};
  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;

  for (var key in obj) {
    if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
      var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;

      if (desc && (desc.get || desc.set)) {
        Object.defineProperty(newObj, key, desc);
      } else {
        newObj[key] = obj[key];
      }
    }
  }

  newObj.default = obj;

  if (cache) {
    cache.set(obj, newObj);
  }

  return newObj;
}

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function ownKeys(object, enumerableOnly) {
  var keys = Object.keys(object);

  if (Object.getOwnPropertySymbols) {
    var symbols = Object.getOwnPropertySymbols(object);

    if (enumerableOnly) {
      symbols = symbols.filter(function (sym) {
        return Object.getOwnPropertyDescriptor(object, sym).enumerable;
      });
    }

    keys.push.apply(keys, symbols);
  }

  return keys;
}

function _objectSpread(target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i] != null ? arguments[i] : {};

    if (i % 2) {
      ownKeys(Object(source), true).forEach(function (key) {
        _defineProperty(target, key, source[key]);
      });
    } else if (Object.getOwnPropertyDescriptors) {
      Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
    } else {
      ownKeys(Object(source)).forEach(function (key) {
        Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
      });
    }
  }

  return target;
}

function _defineProperty(obj, key, value) {
  if (key in obj) {
    Object.defineProperty(obj, key, {
      value: value,
      enumerable: true,
      configurable: true,
      writable: true
    });
  } else {
    obj[key] = value;
  }

  return obj;
}

const TAB_ITEM_SELECTOR = '[role=tab]:not([aria-disabled])';
const TAB_ITEM_SELECTED_SELECTOR = TAB_ITEM_SELECTOR + '[aria-selected=true]';
const NAVIGATION_KEYS = ['PageUp', 'PageDown', 'Home', 'End', 'ArrowUp', 'Up', 'ArrowDown', 'Down', 'ArrowLeft', 'Left', 'ArrowRight', 'Right'];
/**
 * selectedIndex: The index of the StepList that should be selected. When selectedIndex is
 * specified, the component is in a controlled state and a Step can only be selected by changing the
 * selectedIndex prop value. By default, the first Step will be selected.
 *
 * defaultSelectedIndex: The same as selectedIndex except that the component is in an uncontrolled
 * state.
 *
 * onChange: A function that will be called when an Step is selected or deselected.
 * It will be passed the updated selected index.
 *
 * childMappingFunction: allows you to map additional properties for each tab child
 * @private
 */

let TabListBase = (0, _convertUnsafeMethod.default)(_class = (0, _focusRing.default)(_class = (0, _autobindDecorator.default)(_class = class TabListBase extends _react.Component {
  constructor(...args) {
    var _temp;

    return _temp = super(...args), this.state = {
      selectedIndex: TabListBase.getDefaultSelectedIndex(this.props)
    }, _temp;
  }

  static getDefaultSelectedIndex(props) {
    if (props.selectedIndex != null) {
      return props.selectedIndex;
    }

    if (props.defaultSelectedIndex != null) {
      return props.defaultSelectedIndex;
    }

    let firstSelected = _react.default.Children.toArray(props.children).findIndex(c => c && c.props.selected);

    if (firstSelected !== -1) {
      return firstSelected;
    }

    return 0;
  }

  UNSAFE_componentWillReceiveProps(nextProps) {
    if ('selectedIndex' in nextProps) {
      this.setState({
        selectedIndex: nextProps.selectedIndex
      });
    }
  }

  onClickItem(selectedIndex, e) {
    this.setSelectedIndex(selectedIndex, e);
  }

  onFocus(selectedIndex, e) {
    if (this.props.keyboardActivation === 'automatic' && this.isNavigationKeyDown && !this.isMouseDown) {
      this.setSelectedIndex(selectedIndex, e);
    }
  }

  onMouseDown(e) {
    this.isMouseDown = true;
    window.addEventListener('mouseup', this.onMouseUp); // ensure Tab receives keyboard focus in Safari

    e.currentTarget.focus();
  }

  onMouseUp() {
    this.isMouseDown = false;
    window.removeEventListener('mouseup', this.onMouseUp);
  }

  onKeyDown(selectedIndex, e) {
    switch (e.key) {
      case 'Enter':
      case ' ':
        e.preventDefault();
        this.onClickItem(selectedIndex, e);
        break;

      default:
        this.isNavigationKeyDown = NAVIGATION_KEYS.indexOf(e.key) !== -1;
    }
  }

  onKeyUp() {
    this.isNavigationKeyDown = false;
  }

  setSelectedIndex(selectedIndex, e) {
    const lastSelectedIndex = this.state.selectedIndex; // If selectedIndex is defined on props then this is a controlled component and we shouldn't
    // change our own state.

    if (!('selectedIndex' in this.props)) {
      this.setState({
        selectedIndex
      });
    }

    if (lastSelectedIndex !== selectedIndex) {
      this.props.onChange(selectedIndex, e);
    }
  }

  getChildProps(child, index) {
    const selectedIndex = this.state.selectedIndex;
    const selected = +selectedIndex === index;
    const disabled = this.props.disabled ? true : child.props.disabled;
    return _objectSpread(_objectSpread({}, this.getMappedChildProps(child, index)), {}, {
      selected,
      disabled,
      tabIndex: selected ? 0 : -1,
      onClick: this.getChildOnClick(child, index),
      onFocus: this.getChildOnFocus(child, index),
      onMouseDown: this.getChildOnMouseDown(child, index),
      onKeyDown: this.getChildOnKeyDown(child, index),
      onKeyUp: this.getChildOnKeyUp(child, index)
    });
  }

  getMappedChildProps(child, index) {
    const {
      childMappingFunction
    } = this.props;

    if (!childMappingFunction) {
      return {};
    }

    return childMappingFunction(this, child, index);
  }

  getChildOnClick(child, index) {
    if (this.props.disabled) {
      return null;
    }

    const tabListOnClick = this.onClickItem.bind(this, index);
    return e => {
      if (child.props.onClick) {
        child.props.onClick(index, e);
      }

      tabListOnClick(e);
    };
  }

  getChildOnFocus(child, index) {
    if (this.props.disabled) {
      return null;
    }

    return e => {
      if (child.props.onFocus) {
        child.props.onFocus(index, e);
      }

      this.onFocus(index, e);
    };
  }

  getChildOnMouseDown(child, index) {
    if (this.props.disabled) {
      return null;
    }

    return e => {
      if (child.props.onMouseDown) {
        child.props.onMouseDown(e, index);
      }

      this.onMouseDown(e);
    };
  }

  getChildOnKeyDown(child, index) {
    if (this.props.disabled) {
      return null;
    }

    return e => {
      if (child.props.onKeyDown) {
        child.props.onKeyDown(e, index);
      }

      this.onKeyDown(index, e);
    };
  }

  getChildOnKeyUp(child, index) {
    if (this.props.disabled) {
      return null;
    }

    return e => {
      if (child.props.onKeyUp) {
        child.props.onKeyUp(e, index);
      }

      this.onKeyUp(index, e);
    };
  }

  getItems() {
    const {
      children
    } = this.props;
    return _react.default.Children.toArray(children).map((child, index) => child ? /*#__PURE__*/_react.default.cloneElement(child, this.getChildProps(child, index)) : null);
  }

  cleanProps() {
    // todo filterdomprops?
    const otherProps = _extends({}, this.props);

    delete otherProps.autoFocus;
    delete otherProps.defaultSelectedIndex;
    delete otherProps.selectedIndex; // We don't need/want to add onChange to the div because we call it manually when we hear that
    // a tab has been clicked. If we were to add the handler to the div, it would be
    // called every time any input inside a tab is changed.

    delete otherProps.onChange;
    delete otherProps.disabled;
    delete otherProps.childMappingFunction;
    delete otherProps.keyboardActivation; // div element should have aria-orientation rather than orientation

    otherProps['aria-orientation'] = otherProps.orientation;
    delete otherProps.orientation;
    return otherProps;
  }

  render() {
    return /*#__PURE__*/_react.default.createElement(_FocusManager.default, {
      autoFocus: this.props.autoFocus,
      disabled: this.props.disabled,
      itemSelector: TAB_ITEM_SELECTOR,
      selectedItemSelector: TAB_ITEM_SELECTED_SELECTOR,
      orientation: this.props.orientation === 'vertical' ? 'both' : 'horizontal'
    }, /*#__PURE__*/_react.default.createElement("div", _extends({}, this.cleanProps(), {
      role: "tablist"
    }), this.getItems()));
  }

}) || _class) || _class) || _class;

exports.default = TabListBase;
TabListBase.propTypes = {
  autoFocus: _propTypes.default.bool,
  defaultSelectedIndex: _propTypes.default.number,
  disabled: _propTypes.default.bool,
  orientation: _propTypes.default.oneOf(['horizontal', 'vertical']),
  keyboardActivation: _propTypes.default.oneOf(['automatic', 'manual']),

  onChange() {}

};
TabListBase.defaultProps = {
  autoFocus: false,
  defaultSelectedIndex: 0,
  disabled: false,
  orientation: 'horizontal',
  keyboardActivation: 'automatic',

  onChange() {}

};
TabListBase.displayName = 'TabListBase';

/***/ }),

/***/ "TOwV":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


if (true) {
  module.exports = __webpack_require__("qT12");
} else {}

/***/ }),

/***/ "TPr6":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* unused harmony export CCXSTART_AS_CHANNEL */
/* unused harmony export CCXSTART_AS_CAMPCLASS */
/* unused harmony export CCXSTART_AS_SOURCE */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return CCXSTART_AS_CONTENT_ASSET; });
/* unused harmony export CCXSTART_AS_CONTENT_SEE_ALL */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return StartIngestAdapter; });
/* harmony import */ var src_applications__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("3UBC");
/* harmony import */ var start_stores_MainStore__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("cCFZ");
/* harmony import */ var start_StartIngestRenderHandler__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("lKCB");
/* harmony import */ var start_StartIngestClickHandler__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("vEBq");
/* harmony import */ var start_StartIngestMiscHandler__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("3ATF");
/* harmony import */ var start_StartIngestErrorHandler__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("RIz2");
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/






const CCXSTART_AS_CHANNEL = 'adobe_apps';
const CCXSTART_AS_CAMPCLASS = 'brand';
const CCXSTART_AS_SOURCE = 'app';
const CCXSTART_AS_CONTENT_ASSET = 'asset-thumbnail';
const CCXSTART_AS_CONTENT_SEE_ALL = 'see-all';
/**
 * Ingest analytics point product data adapter.
 */
class StartIngestAdapter {
    constructor() {
        /**
         * Event handlers
         */
        this.processRenderEvent = start_StartIngestRenderHandler__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"];
        this.processClickEvent = start_StartIngestClickHandler__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"];
        this.processMiscellaneousEvent = start_StartIngestMiscHandler__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"];
        this.processErrorEvent = start_StartIngestErrorHandler__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"];
        this.isEnabled = false;
    }
    /**
     * Get the Ingest.js configuration options for this adapter
     *
     * @return {Object} containing the configuration.
     */
    configurationOptions() {
        return {
            INGEST_TYPE: 'dunamis',
            PROJECT: 'ccx-start-fm-service',
            API_KEY: 'ccx-start-fm-service',
            X_PRODUCT: src_applications__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].id + '%2F' + src_applications__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].version,
            USER_REGION: start_stores_MainStore__WEBPACK_IMPORTED_MODULE_1__["mainStore"].user.UserProfile.countryCode,
        };
    }
    getTrackingParamsString(params) {
        return ('x-product=' +
            src_applications__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].id +
            '%2F' +
            src_applications__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].version +
            '&x-product-location=CCXStart-welcome' +
            '%2F' +
            window.appVersionNumber +
            `&as_channel=${CCXSTART_AS_CHANNEL}` +
            `&as_campclass=${CCXSTART_AS_CAMPCLASS}` +
            `&as_campaign=templates_${src_applications__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].id}` +
            `&as_source=${CCXSTART_AS_SOURCE}` +
            `&as_camptype=${src_applications__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].id}` +
            `&as_content=${(params && params.content) || CCXSTART_AS_CONTENT_SEE_ALL}`);
    }
    /**
     * Build the passthrough analytics string for Adobe service URL's.
     *
     * @return {String} containing the query arguments.
     */
    getAnalyticsQueryString() {
        let acctType = '';
        switch (start_stores_MainStore__WEBPACK_IMPORTED_MODULE_1__["mainStore"].user.UserProfile.accountType) {
            case 'type1':
            case 'type2':
            case 'type3':
                acctType =
                    '&uast=' +
                        start_stores_MainStore__WEBPACK_IMPORTED_MODULE_1__["mainStore"].user.UserProfile.accountType.substr(start_stores_MainStore__WEBPACK_IMPORTED_MODULE_1__["mainStore"].user.UserProfile.accountType.length - 1);
                break;
            // case volume serial number...???
            default:
                break;
        }
        return ('locale=' +
            src_applications__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].language +
            `&${this.getTrackingParamsString({ content: CCXSTART_AS_CONTENT_SEE_ALL })}` +
            '&x-radarSession=' +
            start_stores_MainStore__WEBPACK_IMPORTED_MODULE_1__["mainStore"].radarSessionGUID +
            '&x-appSession=' +
            start_stores_MainStore__WEBPACK_IMPORTED_MODULE_1__["mainStore"].prefs.sessionGUID +
            '&ute=' +
            this.isEnabled +
            acctType);
    }
}


/***/ }),

/***/ "TSYQ":
/***/ (function(module, exports, __webpack_require__) {

var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
  Copyright (c) 2018 Jed Watson.
  Licensed under the MIT License (MIT), see
  http://jedwatson.github.io/classnames
*/

/* global define */
(function () {
  'use strict';

  var hasOwn = {}.hasOwnProperty;

  function classNames() {
    var classes = [];

    for (var i = 0; i < arguments.length; i++) {
      var arg = arguments[i];
      if (!arg) continue;
      var argType = typeof arg;

      if (argType === 'string' || argType === 'number') {
        classes.push(arg);
      } else if (Array.isArray(arg)) {
        if (arg.length) {
          var inner = classNames.apply(null, arg);

          if (inner) {
            classes.push(inner);
          }
        }
      } else if (argType === 'object') {
        if (arg.toString === Object.prototype.toString) {
          for (var key in arg) {
            if (hasOwn.call(arg, key) && arg[key]) {
              classes.push(key);
            }
          }
        } else {
          classes.push(arg.toString());
        }
      }
    }

    return classes.join(' ');
  }

  if ( true && module.exports) {
    classNames.default = classNames;
    module.exports = classNames;
  } else if (true) {
    // register as 'classnames', consistent with npm package name
    !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function () {
      return classNames;
    }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
				__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
  } else {}
})();

/***/ }),

/***/ "TUmM":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("iMIL");
/* harmony import */ var _ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("2vnA");
/* harmony import */ var _utils_Logger__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("lmMR");
/* harmony import */ var _types_ISpace__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("j9B6");
/* harmony import */ var _types_ISpace__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_types_ISpace__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _utils_derive_parent_path__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("gFix");
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2020 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
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;
};
var __metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var _a, _b, _c, _d, _e, _f, _g;





class BaseAssetModel {
    constructor(config) {
        this.hasFetchedRendition = false;
        this.lastRenditionFetchFailed = false;
        this.logger = new _utils_Logger__WEBPACK_IMPORTED_MODULE_2__[/* Logger */ "a"](this.constructor.name);
        Object.assign(this, config);
    }
    get normalizedTitle() {
        // used by HS for searching files
        return this.title.normalize();
    }
    get docUriForHost() {
        return (this.assetRef ||
            this.stableUri ||
            this.cloudUri ||
            this.path ||
            this.localUri ||
            this.id);
    }
    get docUriForACP() {
        return this.cloudUri || this.localUri;
    }
    // ACPF on web returns the `cloudID` as `id`. NOTE: for ACPF on ACPL, this could be `localID`, but
    // there are no clients that currently use ACPF on ACPL
    get cloudID() {
        return this.id;
    }
    // For ACPF on web, this will be an empty string. For ACPF on ACPL, even though it is a URI, it works
    // wherever ACPF on ACPL calls for `localID`. But there are no clients that currently use ACPF on ACPL.
    get localID() {
        return this.localUri;
    }
    /*
     * @deprecated
     * Use `cloudID` instead
     */
    get urn() {
        return this.id;
    }
    /*
     * @deprecated
     * Use `localID` instead
     */
    get localUrn() {
        return this.localUri;
    }
    get needsSyncErrorResolution() {
        return (this.isSyncSuspended &&
            this.syncSuspensionReason === _ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_0__["SyncSuspensionReason"].localContentCorrupted);
    }
    isMatch(otherModel) {
        let isMatch = false;
        if (this.cloudUri && otherModel.cloudUri) {
            isMatch = this.cloudUri === otherModel.cloudUri;
        }
        else if (this.localUri && otherModel.localUri) {
            isMatch = this.localUri === otherModel.localUri;
        }
        else if (this.path && otherModel.path) {
            // See note in Collection.mergeElements for why matching on path is important
            isMatch = this.path === otherModel.path;
        }
        return isMatch;
    }
    setHasPendingOperation(isPending) {
        this.hasPendingOperation = isPending;
    }
    /**
     * Updates/replaces externalData. Used by outside clients that may need to store additional
     * data on the model without adding additional fields that are only used by single clients.
     */
    setExternalData(newData, shouldReplace = false) {
        if (shouldReplace || !this.externalData) {
            this.externalData = newData;
        }
        else {
            this.externalData = {
                ...this.externalData,
                ...newData,
            };
        }
    }
    // Only use this for CDOHeader.onFolderActionClick. The logic
    // for deriving `title`, `fileExtension`, and other fields is
    // handled in acp-fetch. Rather than duplicate that logic here,
    // `setRepoName` is only updating `path`.
    setRepoName(name) {
        this.repoName = name;
        this.path = `${Object(_utils_derive_parent_path__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"])(this.path)}/${name}`;
    }
    // Only for use in renameOp, as a fix for CCXCD-2048. The logic
    // for deriving `title` lives in acp-fetch, so circumventing
    // that logic should be reserved for very limited use-cases. This
    // problem should be resolved when we move to the shared model.
    setTitle(title) {
        this.title = title;
    }
    // temp change from string to any
    setRendition(renditionUrl) {
        this.rendition = renditionUrl;
    }
    setLastFetchedCollaborators() {
        this.lastCollaboratorsFetch = new Date();
    }
    setHasFetchedRendition(isFetched) {
        this.hasFetchedRendition = isFetched;
    }
    setLastRenditionFetchFailed(isFailed) {
        this.lastRenditionFetchFailed = isFailed;
    }
}
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* observable */ "z"],
    __metadata("design:type", String)
], BaseAssetModel.prototype, "id", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* observable */ "z"],
    __metadata("design:type", String)
], BaseAssetModel.prototype, "cloudUri", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* observable */ "z"],
    __metadata("design:type", String)
], BaseAssetModel.prototype, "localUri", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* observable */ "z"],
    __metadata("design:type", String)
], BaseAssetModel.prototype, "path", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* observable */ "z"],
    __metadata("design:type", String)
], BaseAssetModel.prototype, "title", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* observable */ "z"],
    __metadata("design:type", String)
], BaseAssetModel.prototype, "repoName", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* observable */ "z"],
    __metadata("design:type", String)
], BaseAssetModel.prototype, "displayName", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* observable */ "z"],
    __metadata("design:type", String)
], BaseAssetModel.prototype, "fileExtension", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* observable */ "z"],
    __metadata("design:type", typeof (_a = typeof Date !== "undefined" && Date) === "function" ? _a : Object)
], BaseAssetModel.prototype, "accessDate", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* observable */ "z"],
    __metadata("design:type", typeof (_b = typeof Date !== "undefined" && Date) === "function" ? _b : Object)
], BaseAssetModel.prototype, "modifiedDate", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* observable */ "z"],
    __metadata("design:type", typeof (_c = typeof Date !== "undefined" && Date) === "function" ? _c : Object)
], BaseAssetModel.prototype, "repoModifiedDate", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* observable */ "z"],
    __metadata("design:type", typeof (_d = typeof Date !== "undefined" && Date) === "function" ? _d : Object)
], BaseAssetModel.prototype, "createDate", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* observable */ "z"],
    __metadata("design:type", String)
], BaseAssetModel.prototype, "recoveredDate", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* observable */ "z"],
    __metadata("design:type", typeof (_e = typeof _ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_0__["DocumentState"] !== "undefined" && _ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_0__["DocumentState"]) === "function" ? _e : Object)
], BaseAssetModel.prototype, "docState", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* observable */ "z"],
    __metadata("design:type", Boolean)
], BaseAssetModel.prototype, "isCached", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* observable */ "z"],
    __metadata("design:type", Boolean)
], BaseAssetModel.prototype, "isConflicted", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* observable */ "z"],
    __metadata("design:type", Boolean)
], BaseAssetModel.prototype, "isUserPinned", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* observable */ "z"],
    __metadata("design:type", Boolean)
], BaseAssetModel.prototype, "isSyncing", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* observable */ "z"],
    __metadata("design:type", Boolean)
], BaseAssetModel.prototype, "isSpaceAsset", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* observable */ "z"],
    __metadata("design:type", Boolean)
], BaseAssetModel.prototype, "isPendingSync", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* observable */ "z"],
    __metadata("design:type", Boolean)
], BaseAssetModel.prototype, "hasPendingOperation", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* observable */ "z"],
    __metadata("design:type", Boolean)
], BaseAssetModel.prototype, "isSyncSuspended", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* observable */ "z"],
    __metadata("design:type", typeof (_f = typeof _ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_0__["SyncSuspensionReason"] !== "undefined" && _ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_0__["SyncSuspensionReason"]) === "function" ? _f : Object)
], BaseAssetModel.prototype, "syncSuspensionReason", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* observable */ "z"],
    __metadata("design:type", Number)
], BaseAssetModel.prototype, "size", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* observable */ "z"],
    __metadata("design:type", String)
], BaseAssetModel.prototype, "renditionTemplate", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* observable */ "z"],
    __metadata("design:type", String)
], BaseAssetModel.prototype, "rendition", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* observable */ "z"],
    __metadata("design:type", String)
], BaseAssetModel.prototype, "type", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* observable */ "z"],
    __metadata("design:type", Array)
], BaseAssetModel.prototype, "collaborators", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* observable */ "z"],
    __metadata("design:type", String)
], BaseAssetModel.prototype, "stableUri", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* observable */ "z"],
    __metadata("design:type", String)
], BaseAssetModel.prototype, "assetRef", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* observable */ "z"],
    __metadata("design:type", Object)
], BaseAssetModel.prototype, "externalData", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* observable */ "z"],
    __metadata("design:type", Object)
], BaseAssetModel.prototype, "shareDate", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* observable */ "z"],
    __metadata("design:type", Object)
], BaseAssetModel.prototype, "lastCollaboratorsFetch", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* observable */ "z"],
    __metadata("design:type", Boolean)
], BaseAssetModel.prototype, "hasFetchedRendition", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* observable */ "z"],
    __metadata("design:type", Boolean)
], BaseAssetModel.prototype, "lastRenditionFetchFailed", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* observable */ "z"],
    __metadata("design:type", Boolean)
], BaseAssetModel.prototype, "isArtifact", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* observable */ "z"],
    __metadata("design:type", Boolean)
], BaseAssetModel.prototype, "isRenameDisabled", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* observable */ "z"],
    __metadata("design:type", typeof (_g = typeof _types_ISpace__WEBPACK_IMPORTED_MODULE_3___default.a !== "undefined" && _types_ISpace__WEBPACK_IMPORTED_MODULE_3___default.a) === "function" ? _g : Object)
], BaseAssetModel.prototype, "space", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* computed */ "l"],
    __metadata("design:type", String),
    __metadata("design:paramtypes", [])
], BaseAssetModel.prototype, "normalizedTitle", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* computed */ "l"],
    __metadata("design:type", String),
    __metadata("design:paramtypes", [])
], BaseAssetModel.prototype, "docUriForHost", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* computed */ "l"],
    __metadata("design:type", String),
    __metadata("design:paramtypes", [])
], BaseAssetModel.prototype, "docUriForACP", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* computed */ "l"],
    __metadata("design:type", String),
    __metadata("design:paramtypes", [])
], BaseAssetModel.prototype, "cloudID", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* computed */ "l"],
    __metadata("design:type", String),
    __metadata("design:paramtypes", [])
], BaseAssetModel.prototype, "localID", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* computed */ "l"],
    __metadata("design:type", String),
    __metadata("design:paramtypes", [])
], BaseAssetModel.prototype, "urn", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* computed */ "l"],
    __metadata("design:type", String),
    __metadata("design:paramtypes", [])
], BaseAssetModel.prototype, "localUrn", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* computed */ "l"],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [])
], BaseAssetModel.prototype, "needsSyncErrorResolution", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [Boolean]),
    __metadata("design:returntype", void 0)
], BaseAssetModel.prototype, "setHasPendingOperation", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [Object, Object]),
    __metadata("design:returntype", void 0)
], BaseAssetModel.prototype, "setExternalData", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [String]),
    __metadata("design:returntype", void 0)
], BaseAssetModel.prototype, "setRepoName", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [String]),
    __metadata("design:returntype", void 0)
], BaseAssetModel.prototype, "setTitle", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [Object]),
    __metadata("design:returntype", void 0)
], BaseAssetModel.prototype, "setRendition", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [Boolean]),
    __metadata("design:returntype", void 0)
], BaseAssetModel.prototype, "setHasFetchedRendition", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [Boolean]),
    __metadata("design:returntype", void 0)
], BaseAssetModel.prototype, "setLastRenditionFetchFailed", null);
/* harmony default export */ __webpack_exports__["a"] = (BaseAssetModel);


/***/ }),

/***/ "TYVA":
/***/ (function(module, exports, __webpack_require__) {

!function (e, t) {
   true ? module.exports = t() : undefined;
}(this, function () {
  "use strict";

  return [{
    locale: "ko",
    pluralRuleFunction: function (e, t) {
      return "other";
    },
    fields: {
      year: {
        displayName: "년",
        relative: {
          0: "올해",
          1: "내년",
          "-1": "작년"
        },
        relativeTime: {
          future: {
            other: "{0}년 후"
          },
          past: {
            other: "{0}년 전"
          }
        }
      },
      "year-short": {
        displayName: "년",
        relative: {
          0: "올해",
          1: "내년",
          "-1": "작년"
        },
        relativeTime: {
          future: {
            other: "{0}년 후"
          },
          past: {
            other: "{0}년 전"
          }
        }
      },
      month: {
        displayName: "월",
        relative: {
          0: "이번 달",
          1: "다음 달",
          "-1": "지난달"
        },
        relativeTime: {
          future: {
            other: "{0}개월 후"
          },
          past: {
            other: "{0}개월 전"
          }
        }
      },
      "month-short": {
        displayName: "월",
        relative: {
          0: "이번 달",
          1: "다음 달",
          "-1": "지난달"
        },
        relativeTime: {
          future: {
            other: "{0}개월 후"
          },
          past: {
            other: "{0}개월 전"
          }
        }
      },
      day: {
        displayName: "일",
        relative: {
          0: "오늘",
          1: "내일",
          2: "모레",
          "-2": "그저께",
          "-1": "어제"
        },
        relativeTime: {
          future: {
            other: "{0}일 후"
          },
          past: {
            other: "{0}일 전"
          }
        }
      },
      "day-short": {
        displayName: "일",
        relative: {
          0: "오늘",
          1: "내일",
          2: "모레",
          "-2": "그저께",
          "-1": "어제"
        },
        relativeTime: {
          future: {
            other: "{0}일 후"
          },
          past: {
            other: "{0}일 전"
          }
        }
      },
      hour: {
        displayName: "시",
        relative: {
          0: "현재 시간"
        },
        relativeTime: {
          future: {
            other: "{0}시간 후"
          },
          past: {
            other: "{0}시간 전"
          }
        }
      },
      "hour-short": {
        displayName: "시",
        relative: {
          0: "현재 시간"
        },
        relativeTime: {
          future: {
            other: "{0}시간 후"
          },
          past: {
            other: "{0}시간 전"
          }
        }
      },
      minute: {
        displayName: "분",
        relative: {
          0: "현재 분"
        },
        relativeTime: {
          future: {
            other: "{0}분 후"
          },
          past: {
            other: "{0}분 전"
          }
        }
      },
      "minute-short": {
        displayName: "분",
        relative: {
          0: "현재 분"
        },
        relativeTime: {
          future: {
            other: "{0}분 후"
          },
          past: {
            other: "{0}분 전"
          }
        }
      },
      second: {
        displayName: "초",
        relative: {
          0: "지금"
        },
        relativeTime: {
          future: {
            other: "{0}초 후"
          },
          past: {
            other: "{0}초 전"
          }
        }
      },
      "second-short": {
        displayName: "초",
        relative: {
          0: "지금"
        },
        relativeTime: {
          future: {
            other: "{0}초 후"
          },
          past: {
            other: "{0}초 전"
          }
        }
      }
    }
  }, {
    locale: "ko-KP",
    parentLocale: "ko"
  }];
});

/***/ }),

/***/ "TbOD":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
// tslint:disable max-line-length

var __importDefault = this && this.__importDefault || function (mod) {
  return mod && mod.__esModule ? mod : {
    "default": mod
  };
};

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.SortOrderDirEnum = exports.SortByEnum = exports.AcplSearchMode = void 0;

var SortByEnum_1 = __importDefault(__webpack_require__("hWyH"));

exports.SortByEnum = SortByEnum_1.default;

var SortOrderDirEnum_1 = __importDefault(__webpack_require__("v99S"));

exports.SortOrderDirEnum = SortOrderDirEnum_1.default;

var AcplSearchMode_1 = __importDefault(__webpack_require__("b0cz"));

exports.AcplSearchMode = AcplSearchMode_1.default;

/***/ }),

/***/ "TdD3":
/***/ (function(module, exports, __webpack_require__) {

// adapted from https://github.com/apatil/pemstrip
var findProc = /Proc-Type: 4,ENCRYPTED[\n\r]+DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)[\n\r]+([0-9A-z\n\r+/=]+)[\n\r]+/m;
var startRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----/m;
var fullRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----([0-9A-z\n\r+/=]+)-----END \1-----$/m;

var evp = __webpack_require__("roQf");

var ciphers = __webpack_require__("/ab2");

var Buffer = __webpack_require__("hwdV").Buffer;

module.exports = function (okey, password) {
  var key = okey.toString();
  var match = key.match(findProc);
  var decrypted;

  if (!match) {
    var match2 = key.match(fullRegex);
    decrypted = Buffer.from(match2[2].replace(/[\r\n]/g, ''), 'base64');
  } else {
    var suite = 'aes' + match[1];
    var iv = Buffer.from(match[2], 'hex');
    var cipherText = Buffer.from(match[3].replace(/[\r\n]/g, ''), 'base64');
    var cipherKey = evp(password, iv.slice(0, 8), parseInt(match[1], 10)).key;
    var out = [];
    var cipher = ciphers.createDecipheriv(suite, cipherKey, iv);
    out.push(cipher.update(cipherText));
    out.push(cipher.final());
    decrypted = Buffer.concat(out);
  }

  var tag = key.match(startRegex)[1];
  return {
    tag: tag,
    data: decrypted
  };
};

/***/ }),

/***/ "TeVw":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("path", {
  d: "M24 4.1A19.9 19.9 0 1 0 43.9 24 19.9 19.9 0 0 0 24 4.1zm12.563 12.587L22.018 35.341a1.208 1.208 0 0 1-.875.461h-.072a1.2 1.2 0 0 1-.85-.352l-7.785-7.795a1.2 1.2 0 0 1 0-1.7l1.326-1.325a1.2 1.2 0 0 1 1.7 0l5.338 5.351 12.408-15.9a1.2 1.2 0 0 1 1.686-.21L36.352 15a1.2 1.2 0 0 1 .211 1.687z"
}));

/***/ }),

/***/ "TgqB":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _OpenTransition = _interopRequireDefault(__webpack_require__("u6xD"));

var _UxpOverlay = _interopRequireDefault(__webpack_require__("Koem"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

var _RootCloseWrapper = _interopRequireDefault(__webpack_require__("wewx"));

const _excluded = ["rootClose", "children"];

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
} // The component is overriden to have a native platform flyout implementation for overlay
// In Photoshop and Illustrator, the input widget comes at the top of non-native overlays, thus the requirement.


class UxpFlyoutOverlay extends _UxpOverlay.default {
  render() {
    // Fix unused vars
    let _this$props = this.props,
        {
      rootClose,
      children
    } = _this$props,
        props = _objectWithoutProperties(_this$props, _excluded); // Don't un-render the overlay while it's transitioning out.


    const mountOverlay = props.show || !this.state.exited;

    if (!mountOverlay) {
      // Don't bother showing anything if we don't have to.
      return null;
    }

    let child = children; // This animates the child node by injecting props, so it must precede
    // anything that adds a wrapping div.

    let {
      onExit,
      onExiting,
      onEnter,
      onEntering
    } = props;
    child = /*#__PURE__*/_react.default.createElement(_OpenTransition.default, {
      in: props.show,
      appear: true,
      onExit: onExit,
      onExiting: onExiting,
      onExited: this.onExited,
      onEnter: onEnter,
      onEntering: onEntering,
      onEntered: this.onEntered
    }, child); // This goes after everything else because it adds a wrapping div.

    if (rootClose) {
      child = /*#__PURE__*/_react.default.createElement(_RootCloseWrapper.default, {
        onRootClose: this.hide
      }, child);
    }

    return child;
  }

}

exports.default = UxpFlyoutOverlay;

/***/ }),

/***/ "Titl":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var assert = __webpack_require__("2j6C");

var inherits = __webpack_require__("P7XM");

var utils = __webpack_require__("Xudb");

var Cipher = __webpack_require__("AYSA");

function DESState() {
  this.tmp = new Array(2);
  this.keys = null;
}

function DES(options) {
  Cipher.call(this, options);
  var state = new DESState();
  this._desState = state;
  this.deriveKeys(state, options.key);
}

inherits(DES, Cipher);
module.exports = DES;

DES.create = function create(options) {
  return new DES(options);
};

var shiftTable = [1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1];

DES.prototype.deriveKeys = function deriveKeys(state, key) {
  state.keys = new Array(16 * 2);
  assert.equal(key.length, this.blockSize, 'Invalid key length');
  var kL = utils.readUInt32BE(key, 0);
  var kR = utils.readUInt32BE(key, 4);
  utils.pc1(kL, kR, state.tmp, 0);
  kL = state.tmp[0];
  kR = state.tmp[1];

  for (var i = 0; i < state.keys.length; i += 2) {
    var shift = shiftTable[i >>> 1];
    kL = utils.r28shl(kL, shift);
    kR = utils.r28shl(kR, shift);
    utils.pc2(kL, kR, state.keys, i);
  }
};

DES.prototype._update = function _update(inp, inOff, out, outOff) {
  var state = this._desState;
  var l = utils.readUInt32BE(inp, inOff);
  var r = utils.readUInt32BE(inp, inOff + 4); // Initial Permutation

  utils.ip(l, r, state.tmp, 0);
  l = state.tmp[0];
  r = state.tmp[1];
  if (this.type === 'encrypt') this._encrypt(state, l, r, state.tmp, 0);else this._decrypt(state, l, r, state.tmp, 0);
  l = state.tmp[0];
  r = state.tmp[1];
  utils.writeUInt32BE(out, l, outOff);
  utils.writeUInt32BE(out, r, outOff + 4);
};

DES.prototype._pad = function _pad(buffer, off) {
  var value = buffer.length - off;

  for (var i = off; i < buffer.length; i++) buffer[i] = value;

  return true;
};

DES.prototype._unpad = function _unpad(buffer) {
  var pad = buffer[buffer.length - 1];

  for (var i = buffer.length - pad; i < buffer.length; i++) assert.equal(buffer[i], pad);

  return buffer.slice(0, buffer.length - pad);
};

DES.prototype._encrypt = function _encrypt(state, lStart, rStart, out, off) {
  var l = lStart;
  var r = rStart; // Apply f() x16 times

  for (var i = 0; i < state.keys.length; i += 2) {
    var keyL = state.keys[i];
    var keyR = state.keys[i + 1]; // f(r, k)

    utils.expand(r, state.tmp, 0);
    keyL ^= state.tmp[0];
    keyR ^= state.tmp[1];
    var s = utils.substitute(keyL, keyR);
    var f = utils.permute(s);
    var t = r;
    r = (l ^ f) >>> 0;
    l = t;
  } // Reverse Initial Permutation


  utils.rip(r, l, out, off);
};

DES.prototype._decrypt = function _decrypt(state, lStart, rStart, out, off) {
  var l = rStart;
  var r = lStart; // Apply f() x16 times

  for (var i = state.keys.length - 2; i >= 0; i -= 2) {
    var keyL = state.keys[i];
    var keyR = state.keys[i + 1]; // f(r, k)

    utils.expand(l, state.tmp, 0);
    keyL ^= state.tmp[0];
    keyR ^= state.tmp[1];
    var s = utils.substitute(keyL, keyR);
    var f = utils.permute(s);
    var t = l;
    l = (r ^ f) >>> 0;
    r = t;
  } // Reverse Initial Permutation


  utils.rip(l, r, out, off);
};

/***/ }),

/***/ "Tkqu":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("path", {
  d: "M4 6v36a2 2 0 0 0 2 2h14V33a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1v11h14a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2zm12 30H8v-4h8zm0-8H8v-4h8zm0-8H8v-4h8zm0-8H8V8h8zm12 16h-8v-4h8zm0-8h-8v-4h8zm0-8h-8V8h8zm12 24h-8v-4h8zm0-8h-8v-4h8zm0-8h-8v-4h8zm0-8h-8V8h8z"
}));

/***/ }),

/***/ "TkyF":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("path", {
  d: "M38.143 36a7.857 7.857 0 0 0 0-15.714 7.94 7.94 0 0 0-.887.05 9.954 9.954 0 1 0-19.46-3.954A8.386 8.386 0 0 0 7.522 26.64 4.715 4.715 0 1 0 6.714 36z"
}));

/***/ }),

/***/ "ToAJ":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("dmfS"),
      24: __webpack_require__("u3CA")
    }
  }));
};

WrappedIcon.displayName = 'Export';
exports.default = WrappedIcon;

/***/ }),

/***/ "TqDl":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("path", {
  d: "M32.455 12H16V4.5a.5.5 0 0 0-.84-.366L4 15l11.16 10.865A.5.5 0 0 0 16 25.5V18h16.6a7.267 7.267 0 0 1 7.386 6.623A7 7 0 0 1 33 32h-8a1 1 0 0 0-1 1v4a1 1 0 0 0 1 1h8a13 13 0 0 0 12.994-13.4C45.781 17.485 39.573 12 32.455 12z"
}));

/***/ }),

/***/ "TqRt":
/***/ (function(module, exports) {

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    "default": obj
  };
}

module.exports = _interopRequireDefault;
module.exports["default"] = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "TuGD":
/***/ (function(module, exports, __webpack_require__) {

var ITERATOR = __webpack_require__("UWiX")('iterator');

var SAFE_CLOSING = false;

try {
  var riter = [7][ITERATOR]();

  riter['return'] = function () {
    SAFE_CLOSING = true;
  }; // eslint-disable-next-line no-throw-literal


  Array.from(riter, function () {
    throw 2;
  });
} catch (e) {
  /* empty */
}

module.exports = function (exec, skipClosing) {
  if (!skipClosing && !SAFE_CLOSING) return false;
  var safe = false;

  try {
    var arr = [7];
    var iter = arr[ITERATOR]();

    iter.next = function () {
      return {
        done: safe = true
      };
    };

    arr[ITERATOR] = function () {
      return iter;
    };

    exec(arr);
  } catch (e) {
    /* empty */
  }

  return safe;
};

/***/ }),

/***/ "TxTg":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* unused harmony export isRecentlyCreated */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return formatTimeAgo; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return epochToISODate; });
// Check recency of an element by comparing the created date to current time
function isRecentlyCreated(date) {
    const timeGap = new Date(Date.now()).getTime() - date.getTime();
    return timeGap < 10000;
}
const cachedRelativeTimeFormats = new Map();
function getRelativeTimeFormat(locale) {
    let value = cachedRelativeTimeFormats.get(locale);
    if (value == null) {
        cachedRelativeTimeFormats.set(locale, (value = new Intl.RelativeTimeFormat(locale, {
            numeric: 'auto',
        })));
    }
    return value;
}
const DIVISIONS = [
    { amount: 60, name: 'seconds' },
    { amount: 60, name: 'minutes' },
    { amount: 24, name: 'hours' },
    { amount: 7, name: 'days' },
    { amount: 4.34524, name: 'weeks' },
    { amount: 12, name: 'months' },
    { amount: Number.POSITIVE_INFINITY, name: 'years' },
];
function formatTimeAgo(date, locale) {
    let formatter = getRelativeTimeFormat(locale);
    let duration = (date - new Date().getTime()) / 1000;
    for (let i = 0; i <= DIVISIONS.length; i++) {
        const division = DIVISIONS[i];
        if (Math.abs(duration) < division.amount) {
            return formatter.format(Math.round(duration), division.name);
        }
        duration /= division.amount;
    }
}
/**
 *
 * @param maybeDate
 * @returns
 */
function epochToISODate(maybeDate) {
    return maybeDate instanceof Date ? maybeDate : new Date(maybeDate * 1000);
}


/***/ }),

/***/ "TxkD":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ProjectLinks; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return ProjectsServiceRequest; });
/* harmony import */ var _ServiceRequest__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("Cc7P");
/* harmony import */ var _utils_parseAcpLinks__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Cgfd");
/* harmony import */ var _stores_Settings__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("5u1M");
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2020 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/



var ProjectLinks;
(function (ProjectLinks) {
    ProjectLinks["ACCESS"] = "http://ns.adobe.com/ccprojects/rel/access";
    ProjectLinks["PRIMARY"] = "http://ns.adobe.com/ccprojects/rel/primary";
    ProjectLinks["LIBRARIES_PAGE"] = "http://ns.adobe.com/ccprojects/rel/libraries/page";
    ProjectLinks["LIBRARIES_CREATE"] = "http://ns.adobe.com/ccprojects/rel/libraries/create";
    ProjectLinks["LIBRARIES_BATCH"] = "http://ns.adobe.com/ccprojects/rel/libraries/batch";
})(ProjectLinks || (ProjectLinks = {}));
/**
 * Generalized Adobe Projects Service Request Utility Class
 *
 * @export
 * @class ProjectsServiceRequest
 * @extends {ServiceRequest}
 */
class ProjectsServiceRequest extends _ServiceRequest__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"] {
    /**
     * Creates an instance of ProjectServiceRequest.
     *
     * @param {string} apiPath
     * @memberof ProjectsServiceRequest
     */
    constructor(apiPath) {
        super();
        this.headers({
            Authorization: '',
            'X-Api-Key': _stores_Settings__WEBPACK_IMPORTED_MODULE_2__[/* settings */ "b"].config.CLIENT_ID,
        });
        this.url(apiPath);
    }
    /**
     * Set url on XHR request.
     *
     * Override ServiceRequest's set url method so it plays well with
     * how the assets site will use the API.
     *
     * @param {string} [apiPath='/']
     * @returns {ProjectsServiceRequest}
     * @memberof ProjectsServiceRequest
     */
    url(apiPath = '/') {
        let resolvedPath = apiPath;
        // If we have a fully resolved URL, we have followed response links from the API
        if (resolvedPath.startsWith('https://')) {
            this._url = resolvedPath;
            return this;
        }
        // Always prefix your paths with /
        if (!apiPath.startsWith('/')) {
            resolvedPath = `/${apiPath}`;
        }
        // Generate url
        this._url = `${_stores_Settings__WEBPACK_IMPORTED_MODULE_2__[/* settings */ "b"].config.PROJECTS_SERVICE_ENDPOINT}${resolvedPath}`;
        return this;
    }
    async fetch() {
        return super.fetch();
    }
    paginatedFetch() {
        return this.fetch()
            .then(ProjectsServiceRequest.verifyStatus)
            .then(ProjectsServiceRequest.parseJSONResponse)
            .then((response) => {
            response.next = this.next(response.parsedBody);
            return response;
        });
    }
    next(responseData) {
        const link = Object(_utils_parseAcpLinks__WEBPACK_IMPORTED_MODULE_1__[/* parseAcpBodyLink */ "a"])(responseData === null || responseData === void 0 ? void 0 : responseData._links, 'next');
        // Temporary fix for CC Projects not encoding response
        // https://jira.corp.adobe.com/browse/CCXB-9207
        const next = link === null || link === void 0 ? void 0 : link.replace('+name', encodeURIComponent('+name'));
        if (next) {
            this.url(next);
            return this.paginatedFetch.bind(this);
        }
        return undefined;
    }
}


/***/ }),

/***/ "U+KD":
/***/ (function(module, exports, __webpack_require__) {

// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)
var has = __webpack_require__("B+OT");

var toObject = __webpack_require__("JB68");

var IE_PROTO = __webpack_require__("VVlx")('IE_PROTO');

var ObjectProto = Object.prototype;

module.exports = Object.getPrototypeOf || function (O) {
  O = toObject(O);
  if (has(O, IE_PROTO)) return O[IE_PROTO];

  if (typeof O.constructor == 'function' && O instanceof O.constructor) {
    return O.constructor.prototype;
  }

  return O instanceof Object ? ObjectProto : null;
};

/***/ }),

/***/ "U6dR":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var _interopRequireDefault = __webpack_require__("TqRt");

exports.__esModule = true;
exports.default = closest;

var _matches = _interopRequireDefault(__webpack_require__("sHtf"));

var isDoc = function isDoc(obj) {
  return obj != null && obj.nodeType === obj.DOCUMENT_NODE;
};

function closest(node, selector, context) {
  while (node && (isDoc(node) || !(0, _matches.default)(node, selector))) {
    node = node !== context && !isDoc(node) ? node.parentNode : undefined;
  }

  return node;
}

module.exports = exports["default"];

/***/ }),

/***/ "U9ri":
/***/ (function(module, exports, __webpack_require__) {

!function (e, a) {
   true ? module.exports = a() : undefined;
}(this, function () {
  "use strict";

  return [{
    locale: "en",
    pluralRuleFunction: function (e, a) {
      var t = String(e).split("."),
          o = !t[1],
          n = Number(t[0]) == e,
          r = n && t[0].slice(-1),
          i = n && t[0].slice(-2);
      return a ? 1 == r && 11 != i ? "one" : 2 == r && 12 != i ? "two" : 3 == r && 13 != i ? "few" : "other" : 1 == e && o ? "one" : "other";
    },
    fields: {
      year: {
        displayName: "year",
        relative: {
          0: "this year",
          1: "next year",
          "-1": "last year"
        },
        relativeTime: {
          future: {
            one: "in {0} year",
            other: "in {0} years"
          },
          past: {
            one: "{0} year ago",
            other: "{0} years ago"
          }
        }
      },
      "year-short": {
        displayName: "yr.",
        relative: {
          0: "this yr.",
          1: "next yr.",
          "-1": "last yr."
        },
        relativeTime: {
          future: {
            one: "in {0} yr.",
            other: "in {0} yr."
          },
          past: {
            one: "{0} yr. ago",
            other: "{0} yr. ago"
          }
        }
      },
      month: {
        displayName: "month",
        relative: {
          0: "this month",
          1: "next month",
          "-1": "last month"
        },
        relativeTime: {
          future: {
            one: "in {0} month",
            other: "in {0} months"
          },
          past: {
            one: "{0} month ago",
            other: "{0} months ago"
          }
        }
      },
      "month-short": {
        displayName: "mo.",
        relative: {
          0: "this mo.",
          1: "next mo.",
          "-1": "last mo."
        },
        relativeTime: {
          future: {
            one: "in {0} mo.",
            other: "in {0} mo."
          },
          past: {
            one: "{0} mo. ago",
            other: "{0} mo. ago"
          }
        }
      },
      day: {
        displayName: "day",
        relative: {
          0: "today",
          1: "tomorrow",
          "-1": "yesterday"
        },
        relativeTime: {
          future: {
            one: "in {0} day",
            other: "in {0} days"
          },
          past: {
            one: "{0} day ago",
            other: "{0} days ago"
          }
        }
      },
      "day-short": {
        displayName: "day",
        relative: {
          0: "today",
          1: "tomorrow",
          "-1": "yesterday"
        },
        relativeTime: {
          future: {
            one: "in {0} day",
            other: "in {0} days"
          },
          past: {
            one: "{0} day ago",
            other: "{0} days ago"
          }
        }
      },
      hour: {
        displayName: "hour",
        relative: {
          0: "this hour"
        },
        relativeTime: {
          future: {
            one: "in {0} hour",
            other: "in {0} hours"
          },
          past: {
            one: "{0} hour ago",
            other: "{0} hours ago"
          }
        }
      },
      "hour-short": {
        displayName: "hr.",
        relative: {
          0: "this hour"
        },
        relativeTime: {
          future: {
            one: "in {0} hr.",
            other: "in {0} hr."
          },
          past: {
            one: "{0} hr. ago",
            other: "{0} hr. ago"
          }
        }
      },
      minute: {
        displayName: "minute",
        relative: {
          0: "this minute"
        },
        relativeTime: {
          future: {
            one: "in {0} minute",
            other: "in {0} minutes"
          },
          past: {
            one: "{0} minute ago",
            other: "{0} minutes ago"
          }
        }
      },
      "minute-short": {
        displayName: "min.",
        relative: {
          0: "this minute"
        },
        relativeTime: {
          future: {
            one: "in {0} min.",
            other: "in {0} min."
          },
          past: {
            one: "{0} min. ago",
            other: "{0} min. ago"
          }
        }
      },
      second: {
        displayName: "second",
        relative: {
          0: "now"
        },
        relativeTime: {
          future: {
            one: "in {0} second",
            other: "in {0} seconds"
          },
          past: {
            one: "{0} second ago",
            other: "{0} seconds ago"
          }
        }
      },
      "second-short": {
        displayName: "sec.",
        relative: {
          0: "now"
        },
        relativeTime: {
          future: {
            one: "in {0} sec.",
            other: "in {0} sec."
          },
          past: {
            one: "{0} sec. ago",
            other: "{0} sec. ago"
          }
        }
      }
    }
  }, {
    locale: "en-001",
    parentLocale: "en",
    fields: {
      year: {
        displayName: "year",
        relative: {
          0: "this year",
          1: "next year",
          "-1": "last year"
        },
        relativeTime: {
          future: {
            one: "in {0} year",
            other: "in {0} years"
          },
          past: {
            one: "{0} year ago",
            other: "{0} years ago"
          }
        }
      },
      "year-short": {
        displayName: "yr",
        relative: {
          0: "this yr.",
          1: "next yr.",
          "-1": "last yr."
        },
        relativeTime: {
          future: {
            one: "in {0} yr",
            other: "in {0} yr"
          },
          past: {
            one: "{0} yr ago",
            other: "{0} yr ago"
          }
        }
      },
      month: {
        displayName: "month",
        relative: {
          0: "this month",
          1: "next month",
          "-1": "last month"
        },
        relativeTime: {
          future: {
            one: "in {0} month",
            other: "in {0} months"
          },
          past: {
            one: "{0} month ago",
            other: "{0} months ago"
          }
        }
      },
      "month-short": {
        displayName: "mo",
        relative: {
          0: "this mo.",
          1: "next mo.",
          "-1": "last mo."
        },
        relativeTime: {
          future: {
            one: "in {0} mo",
            other: "in {0} mo"
          },
          past: {
            one: "{0} mo ago",
            other: "{0} mo ago"
          }
        }
      },
      day: {
        displayName: "day",
        relative: {
          0: "today",
          1: "tomorrow",
          "-1": "yesterday"
        },
        relativeTime: {
          future: {
            one: "in {0} day",
            other: "in {0} days"
          },
          past: {
            one: "{0} day ago",
            other: "{0} days ago"
          }
        }
      },
      "day-short": {
        displayName: "day",
        relative: {
          0: "today",
          1: "tomorrow",
          "-1": "yesterday"
        },
        relativeTime: {
          future: {
            one: "in {0} day",
            other: "in {0} days"
          },
          past: {
            one: "{0} day ago",
            other: "{0} days ago"
          }
        }
      },
      hour: {
        displayName: "hour",
        relative: {
          0: "this hour"
        },
        relativeTime: {
          future: {
            one: "in {0} hour",
            other: "in {0} hours"
          },
          past: {
            one: "{0} hour ago",
            other: "{0} hours ago"
          }
        }
      },
      "hour-short": {
        displayName: "hr",
        relative: {
          0: "this hour"
        },
        relativeTime: {
          future: {
            one: "in {0} hr",
            other: "in {0} hr"
          },
          past: {
            one: "{0} hr ago",
            other: "{0} hr ago"
          }
        }
      },
      minute: {
        displayName: "minute",
        relative: {
          0: "this minute"
        },
        relativeTime: {
          future: {
            one: "in {0} minute",
            other: "in {0} minutes"
          },
          past: {
            one: "{0} minute ago",
            other: "{0} minutes ago"
          }
        }
      },
      "minute-short": {
        displayName: "min",
        relative: {
          0: "this minute"
        },
        relativeTime: {
          future: {
            one: "in {0} min",
            other: "in {0} min"
          },
          past: {
            one: "{0} min ago",
            other: "{0} min ago"
          }
        }
      },
      second: {
        displayName: "second",
        relative: {
          0: "now"
        },
        relativeTime: {
          future: {
            one: "in {0} second",
            other: "in {0} seconds"
          },
          past: {
            one: "{0} second ago",
            other: "{0} seconds ago"
          }
        }
      },
      "second-short": {
        displayName: "sec",
        relative: {
          0: "now"
        },
        relativeTime: {
          future: {
            one: "in {0} sec",
            other: "in {0} sec"
          },
          past: {
            one: "{0} sec ago",
            other: "{0} sec ago"
          }
        }
      }
    }
  }, {
    locale: "en-150",
    parentLocale: "en-001"
  }, {
    locale: "en-AG",
    parentLocale: "en-001"
  }, {
    locale: "en-AI",
    parentLocale: "en-001"
  }, {
    locale: "en-AS",
    parentLocale: "en"
  }, {
    locale: "en-AT",
    parentLocale: "en-150"
  }, {
    locale: "en-AU",
    parentLocale: "en-001",
    fields: {
      year: {
        displayName: "year",
        relative: {
          0: "this year",
          1: "next year",
          "-1": "last year"
        },
        relativeTime: {
          future: {
            one: "in {0} year",
            other: "in {0} years"
          },
          past: {
            one: "{0} year ago",
            other: "{0} years ago"
          }
        }
      },
      "year-short": {
        displayName: "yr",
        relative: {
          0: "this yr.",
          1: "next yr.",
          "-1": "last yr."
        },
        relativeTime: {
          future: {
            one: "in {0} yr",
            other: "in {0} yrs"
          },
          past: {
            one: "{0} yr ago",
            other: "{0} yrs ago"
          }
        }
      },
      month: {
        displayName: "month",
        relative: {
          0: "this month",
          1: "next month",
          "-1": "last month"
        },
        relativeTime: {
          future: {
            one: "in {0} month",
            other: "in {0} months"
          },
          past: {
            one: "{0} month ago",
            other: "{0} months ago"
          }
        }
      },
      "month-short": {
        displayName: "mo.",
        relative: {
          0: "this mo.",
          1: "next mo.",
          "-1": "last mo."
        },
        relativeTime: {
          future: {
            one: "in {0} mo.",
            other: "in {0} mo."
          },
          past: {
            one: "{0} mo. ago",
            other: "{0} mo. ago"
          }
        }
      },
      day: {
        displayName: "day",
        relative: {
          0: "today",
          1: "tomorrow",
          "-1": "yesterday"
        },
        relativeTime: {
          future: {
            one: "in {0} day",
            other: "in {0} days"
          },
          past: {
            one: "{0} day ago",
            other: "{0} days ago"
          }
        }
      },
      "day-short": {
        displayName: "day",
        relative: {
          0: "today",
          1: "tomorrow",
          "-1": "yesterday"
        },
        relativeTime: {
          future: {
            one: "in {0} day",
            other: "in {0} days"
          },
          past: {
            one: "{0} day ago",
            other: "{0} days ago"
          }
        }
      },
      hour: {
        displayName: "hour",
        relative: {
          0: "this hour"
        },
        relativeTime: {
          future: {
            one: "in {0} hour",
            other: "in {0} hours"
          },
          past: {
            one: "{0} hour ago",
            other: "{0} hours ago"
          }
        }
      },
      "hour-short": {
        displayName: "h",
        relative: {
          0: "this hour"
        },
        relativeTime: {
          future: {
            one: "in {0} hr",
            other: "in {0} hrs"
          },
          past: {
            one: "{0} hr ago",
            other: "{0} hrs ago"
          }
        }
      },
      minute: {
        displayName: "minute",
        relative: {
          0: "this minute"
        },
        relativeTime: {
          future: {
            one: "in {0} minute",
            other: "in {0} minutes"
          },
          past: {
            one: "{0} minute ago",
            other: "{0} minutes ago"
          }
        }
      },
      "minute-short": {
        displayName: "min.",
        relative: {
          0: "this minute"
        },
        relativeTime: {
          future: {
            one: "in {0} min.",
            other: "in {0} mins"
          },
          past: {
            one: "{0} min. ago",
            other: "{0} mins ago"
          }
        }
      },
      second: {
        displayName: "second",
        relative: {
          0: "now"
        },
        relativeTime: {
          future: {
            one: "in {0} second",
            other: "in {0} seconds"
          },
          past: {
            one: "{0} second ago",
            other: "{0} seconds ago"
          }
        }
      },
      "second-short": {
        displayName: "sec.",
        relative: {
          0: "now"
        },
        relativeTime: {
          future: {
            one: "in {0} sec.",
            other: "in {0} secs"
          },
          past: {
            one: "{0} sec. ago",
            other: "{0} secs ago"
          }
        }
      }
    }
  }, {
    locale: "en-BB",
    parentLocale: "en-001"
  }, {
    locale: "en-BE",
    parentLocale: "en-001"
  }, {
    locale: "en-BI",
    parentLocale: "en"
  }, {
    locale: "en-BM",
    parentLocale: "en-001"
  }, {
    locale: "en-BS",
    parentLocale: "en-001"
  }, {
    locale: "en-BW",
    parentLocale: "en-001"
  }, {
    locale: "en-BZ",
    parentLocale: "en-001"
  }, {
    locale: "en-CA",
    parentLocale: "en-001",
    fields: {
      year: {
        displayName: "year",
        relative: {
          0: "this year",
          1: "next year",
          "-1": "last year"
        },
        relativeTime: {
          future: {
            one: "in {0} year",
            other: "in {0} years"
          },
          past: {
            one: "{0} year ago",
            other: "{0} years ago"
          }
        }
      },
      "year-short": {
        displayName: "yr.",
        relative: {
          0: "this yr.",
          1: "next yr.",
          "-1": "last yr."
        },
        relativeTime: {
          future: {
            one: "in {0} yr.",
            other: "in {0} yrs."
          },
          past: {
            one: "{0} yr. ago",
            other: "{0} yrs. ago"
          }
        }
      },
      month: {
        displayName: "month",
        relative: {
          0: "this month",
          1: "next month",
          "-1": "last month"
        },
        relativeTime: {
          future: {
            one: "in {0} month",
            other: "in {0} months"
          },
          past: {
            one: "{0} month ago",
            other: "{0} months ago"
          }
        }
      },
      "month-short": {
        displayName: "mo.",
        relative: {
          0: "this mo.",
          1: "next mo.",
          "-1": "last mo."
        },
        relativeTime: {
          future: {
            one: "in {0} mo.",
            other: "in {0} mos."
          },
          past: {
            one: "{0} mo. ago",
            other: "{0} mos. ago"
          }
        }
      },
      day: {
        displayName: "day",
        relative: {
          0: "today",
          1: "tomorrow",
          "-1": "yesterday"
        },
        relativeTime: {
          future: {
            one: "in {0} day",
            other: "in {0} days"
          },
          past: {
            one: "{0} day ago",
            other: "{0} days ago"
          }
        }
      },
      "day-short": {
        displayName: "day",
        relative: {
          0: "today",
          1: "tomorrow",
          "-1": "yesterday"
        },
        relativeTime: {
          future: {
            one: "in {0} day",
            other: "in {0} days"
          },
          past: {
            one: "{0} day ago",
            other: "{0} days ago"
          }
        }
      },
      hour: {
        displayName: "hour",
        relative: {
          0: "this hour"
        },
        relativeTime: {
          future: {
            one: "in {0} hour",
            other: "in {0} hours"
          },
          past: {
            one: "{0} hour ago",
            other: "{0} hours ago"
          }
        }
      },
      "hour-short": {
        displayName: "hr.",
        relative: {
          0: "this hour"
        },
        relativeTime: {
          future: {
            one: "in {0} hr.",
            other: "in {0} hrs."
          },
          past: {
            one: "{0} hr. ago",
            other: "{0} hrs. ago"
          }
        }
      },
      minute: {
        displayName: "minute",
        relative: {
          0: "this minute"
        },
        relativeTime: {
          future: {
            one: "in {0} minute",
            other: "in {0} minutes"
          },
          past: {
            one: "{0} minute ago",
            other: "{0} minutes ago"
          }
        }
      },
      "minute-short": {
        displayName: "min.",
        relative: {
          0: "this minute"
        },
        relativeTime: {
          future: {
            one: "in {0} min.",
            other: "in {0} mins."
          },
          past: {
            one: "{0} min. ago",
            other: "{0} mins. ago"
          }
        }
      },
      second: {
        displayName: "second",
        relative: {
          0: "now"
        },
        relativeTime: {
          future: {
            one: "in {0} second",
            other: "in {0} seconds"
          },
          past: {
            one: "{0} second ago",
            other: "{0} seconds ago"
          }
        }
      },
      "second-short": {
        displayName: "sec.",
        relative: {
          0: "now"
        },
        relativeTime: {
          future: {
            one: "in {0} sec.",
            other: "in {0} secs."
          },
          past: {
            one: "{0} sec. ago",
            other: "{0} secs. ago"
          }
        }
      }
    }
  }, {
    locale: "en-CC",
    parentLocale: "en-001"
  }, {
    locale: "en-CH",
    parentLocale: "en-150"
  }, {
    locale: "en-CK",
    parentLocale: "en-001"
  }, {
    locale: "en-CM",
    parentLocale: "en-001"
  }, {
    locale: "en-CX",
    parentLocale: "en-001"
  }, {
    locale: "en-CY",
    parentLocale: "en-001"
  }, {
    locale: "en-DE",
    parentLocale: "en-150"
  }, {
    locale: "en-DG",
    parentLocale: "en-001"
  }, {
    locale: "en-DK",
    parentLocale: "en-150"
  }, {
    locale: "en-DM",
    parentLocale: "en-001"
  }, {
    locale: "en-Dsrt",
    pluralRuleFunction: function (e, a) {
      return "other";
    },
    fields: {
      year: {
        displayName: "Year",
        relative: {
          0: "this year",
          1: "next year",
          "-1": "last year"
        },
        relativeTime: {
          future: {
            other: "+{0} y"
          },
          past: {
            other: "-{0} y"
          }
        }
      },
      "year-short": {
        displayName: "Year",
        relative: {
          0: "this year",
          1: "next year",
          "-1": "last year"
        },
        relativeTime: {
          future: {
            other: "+{0} y"
          },
          past: {
            other: "-{0} y"
          }
        }
      },
      month: {
        displayName: "Month",
        relative: {
          0: "this month",
          1: "next month",
          "-1": "last month"
        },
        relativeTime: {
          future: {
            other: "+{0} m"
          },
          past: {
            other: "-{0} m"
          }
        }
      },
      "month-short": {
        displayName: "Month",
        relative: {
          0: "this month",
          1: "next month",
          "-1": "last month"
        },
        relativeTime: {
          future: {
            other: "+{0} m"
          },
          past: {
            other: "-{0} m"
          }
        }
      },
      day: {
        displayName: "Day",
        relative: {
          0: "today",
          1: "tomorrow",
          "-1": "yesterday"
        },
        relativeTime: {
          future: {
            other: "+{0} d"
          },
          past: {
            other: "-{0} d"
          }
        }
      },
      "day-short": {
        displayName: "Day",
        relative: {
          0: "today",
          1: "tomorrow",
          "-1": "yesterday"
        },
        relativeTime: {
          future: {
            other: "+{0} d"
          },
          past: {
            other: "-{0} d"
          }
        }
      },
      hour: {
        displayName: "Hour",
        relative: {
          0: "this hour"
        },
        relativeTime: {
          future: {
            other: "+{0} h"
          },
          past: {
            other: "-{0} h"
          }
        }
      },
      "hour-short": {
        displayName: "Hour",
        relative: {
          0: "this hour"
        },
        relativeTime: {
          future: {
            other: "+{0} h"
          },
          past: {
            other: "-{0} h"
          }
        }
      },
      minute: {
        displayName: "Minute",
        relative: {
          0: "this minute"
        },
        relativeTime: {
          future: {
            other: "+{0} min"
          },
          past: {
            other: "-{0} min"
          }
        }
      },
      "minute-short": {
        displayName: "Minute",
        relative: {
          0: "this minute"
        },
        relativeTime: {
          future: {
            other: "+{0} min"
          },
          past: {
            other: "-{0} min"
          }
        }
      },
      second: {
        displayName: "Second",
        relative: {
          0: "now"
        },
        relativeTime: {
          future: {
            other: "+{0} s"
          },
          past: {
            other: "-{0} s"
          }
        }
      },
      "second-short": {
        displayName: "Second",
        relative: {
          0: "now"
        },
        relativeTime: {
          future: {
            other: "+{0} s"
          },
          past: {
            other: "-{0} s"
          }
        }
      }
    }
  }, {
    locale: "en-ER",
    parentLocale: "en-001"
  }, {
    locale: "en-FI",
    parentLocale: "en-150"
  }, {
    locale: "en-FJ",
    parentLocale: "en-001"
  }, {
    locale: "en-FK",
    parentLocale: "en-001"
  }, {
    locale: "en-FM",
    parentLocale: "en-001"
  }, {
    locale: "en-GB",
    parentLocale: "en-001"
  }, {
    locale: "en-GD",
    parentLocale: "en-001"
  }, {
    locale: "en-GG",
    parentLocale: "en-001"
  }, {
    locale: "en-GH",
    parentLocale: "en-001"
  }, {
    locale: "en-GI",
    parentLocale: "en-001"
  }, {
    locale: "en-GM",
    parentLocale: "en-001"
  }, {
    locale: "en-GU",
    parentLocale: "en"
  }, {
    locale: "en-GY",
    parentLocale: "en-001"
  }, {
    locale: "en-HK",
    parentLocale: "en-001"
  }, {
    locale: "en-IE",
    parentLocale: "en-001"
  }, {
    locale: "en-IL",
    parentLocale: "en-001"
  }, {
    locale: "en-IM",
    parentLocale: "en-001"
  }, {
    locale: "en-IN",
    parentLocale: "en-001"
  }, {
    locale: "en-IO",
    parentLocale: "en-001"
  }, {
    locale: "en-JE",
    parentLocale: "en-001"
  }, {
    locale: "en-JM",
    parentLocale: "en-001"
  }, {
    locale: "en-KE",
    parentLocale: "en-001"
  }, {
    locale: "en-KI",
    parentLocale: "en-001"
  }, {
    locale: "en-KN",
    parentLocale: "en-001"
  }, {
    locale: "en-KY",
    parentLocale: "en-001"
  }, {
    locale: "en-LC",
    parentLocale: "en-001"
  }, {
    locale: "en-LR",
    parentLocale: "en-001"
  }, {
    locale: "en-LS",
    parentLocale: "en-001"
  }, {
    locale: "en-MG",
    parentLocale: "en-001"
  }, {
    locale: "en-MH",
    parentLocale: "en"
  }, {
    locale: "en-MO",
    parentLocale: "en-001"
  }, {
    locale: "en-MP",
    parentLocale: "en"
  }, {
    locale: "en-MS",
    parentLocale: "en-001"
  }, {
    locale: "en-MT",
    parentLocale: "en-001"
  }, {
    locale: "en-MU",
    parentLocale: "en-001"
  }, {
    locale: "en-MW",
    parentLocale: "en-001"
  }, {
    locale: "en-MY",
    parentLocale: "en-001"
  }, {
    locale: "en-NA",
    parentLocale: "en-001"
  }, {
    locale: "en-NF",
    parentLocale: "en-001"
  }, {
    locale: "en-NG",
    parentLocale: "en-001"
  }, {
    locale: "en-NL",
    parentLocale: "en-150"
  }, {
    locale: "en-NR",
    parentLocale: "en-001"
  }, {
    locale: "en-NU",
    parentLocale: "en-001"
  }, {
    locale: "en-NZ",
    parentLocale: "en-001"
  }, {
    locale: "en-PG",
    parentLocale: "en-001"
  }, {
    locale: "en-PH",
    parentLocale: "en-001"
  }, {
    locale: "en-PK",
    parentLocale: "en-001"
  }, {
    locale: "en-PN",
    parentLocale: "en-001"
  }, {
    locale: "en-PR",
    parentLocale: "en"
  }, {
    locale: "en-PW",
    parentLocale: "en-001"
  }, {
    locale: "en-RW",
    parentLocale: "en-001"
  }, {
    locale: "en-SB",
    parentLocale: "en-001"
  }, {
    locale: "en-SC",
    parentLocale: "en-001"
  }, {
    locale: "en-SD",
    parentLocale: "en-001"
  }, {
    locale: "en-SE",
    parentLocale: "en-150"
  }, {
    locale: "en-SG",
    parentLocale: "en-001",
    fields: {
      year: {
        displayName: "year",
        relative: {
          0: "this year",
          1: "next year",
          "-1": "last year"
        },
        relativeTime: {
          future: {
            one: "in {0} year",
            other: "in {0} years"
          },
          past: {
            one: "{0} year ago",
            other: "{0} years ago"
          }
        }
      },
      "year-short": {
        displayName: "yr",
        relative: {
          0: "this yr",
          1: "next yr",
          "-1": "last yr"
        },
        relativeTime: {
          future: {
            one: "in {0} yr",
            other: "in {0} yr"
          },
          past: {
            one: "{0} yr ago",
            other: "{0} yr ago"
          }
        }
      },
      month: {
        displayName: "month",
        relative: {
          0: "this month",
          1: "next month",
          "-1": "last month"
        },
        relativeTime: {
          future: {
            one: "in {0} month",
            other: "in {0} months"
          },
          past: {
            one: "{0} month ago",
            other: "{0} months ago"
          }
        }
      },
      "month-short": {
        displayName: "mth",
        relative: {
          0: "this mth",
          1: "next mth",
          "-1": "last mth"
        },
        relativeTime: {
          future: {
            one: "in {0} mth",
            other: "in {0} mth"
          },
          past: {
            one: "{0} mth ago",
            other: "{0} mth ago"
          }
        }
      },
      day: {
        displayName: "day",
        relative: {
          0: "today",
          1: "tomorrow",
          "-1": "yesterday"
        },
        relativeTime: {
          future: {
            one: "in {0} day",
            other: "in {0} days"
          },
          past: {
            one: "{0} day ago",
            other: "{0} days ago"
          }
        }
      },
      "day-short": {
        displayName: "day",
        relative: {
          0: "today",
          1: "tomorrow",
          "-1": "yesterday"
        },
        relativeTime: {
          future: {
            one: "in {0} day",
            other: "in {0} days"
          },
          past: {
            one: "{0} day ago",
            other: "{0} days ago"
          }
        }
      },
      hour: {
        displayName: "hour",
        relative: {
          0: "this hour"
        },
        relativeTime: {
          future: {
            one: "in {0} hour",
            other: "in {0} hours"
          },
          past: {
            one: "{0} hour ago",
            other: "{0} hours ago"
          }
        }
      },
      "hour-short": {
        displayName: "hr",
        relative: {
          0: "this hour"
        },
        relativeTime: {
          future: {
            one: "in {0} hr",
            other: "in {0} hr"
          },
          past: {
            one: "{0} hr ago",
            other: "{0} hr ago"
          }
        }
      },
      minute: {
        displayName: "minute",
        relative: {
          0: "this minute"
        },
        relativeTime: {
          future: {
            one: "in {0} minute",
            other: "in {0} minutes"
          },
          past: {
            one: "{0} minute ago",
            other: "{0} minutes ago"
          }
        }
      },
      "minute-short": {
        displayName: "min",
        relative: {
          0: "this minute"
        },
        relativeTime: {
          future: {
            one: "in {0} min",
            other: "in {0} min"
          },
          past: {
            one: "{0} min ago",
            other: "{0} min ago"
          }
        }
      },
      second: {
        displayName: "second",
        relative: {
          0: "now"
        },
        relativeTime: {
          future: {
            one: "in {0} second",
            other: "in {0} seconds"
          },
          past: {
            one: "{0} second ago",
            other: "{0} seconds ago"
          }
        }
      },
      "second-short": {
        displayName: "sec",
        relative: {
          0: "now"
        },
        relativeTime: {
          future: {
            one: "in {0} sec",
            other: "in {0} sec"
          },
          past: {
            one: "{0} sec ago",
            other: "{0} sec ago"
          }
        }
      }
    }
  }, {
    locale: "en-SH",
    parentLocale: "en-001"
  }, {
    locale: "en-SI",
    parentLocale: "en-150"
  }, {
    locale: "en-SL",
    parentLocale: "en-001"
  }, {
    locale: "en-SS",
    parentLocale: "en-001"
  }, {
    locale: "en-SX",
    parentLocale: "en-001"
  }, {
    locale: "en-SZ",
    parentLocale: "en-001"
  }, {
    locale: "en-Shaw",
    pluralRuleFunction: function (e, a) {
      return "other";
    },
    fields: {
      year: {
        displayName: "Year",
        relative: {
          0: "this year",
          1: "next year",
          "-1": "last year"
        },
        relativeTime: {
          future: {
            other: "+{0} y"
          },
          past: {
            other: "-{0} y"
          }
        }
      },
      "year-short": {
        displayName: "Year",
        relative: {
          0: "this year",
          1: "next year",
          "-1": "last year"
        },
        relativeTime: {
          future: {
            other: "+{0} y"
          },
          past: {
            other: "-{0} y"
          }
        }
      },
      month: {
        displayName: "Month",
        relative: {
          0: "this month",
          1: "next month",
          "-1": "last month"
        },
        relativeTime: {
          future: {
            other: "+{0} m"
          },
          past: {
            other: "-{0} m"
          }
        }
      },
      "month-short": {
        displayName: "Month",
        relative: {
          0: "this month",
          1: "next month",
          "-1": "last month"
        },
        relativeTime: {
          future: {
            other: "+{0} m"
          },
          past: {
            other: "-{0} m"
          }
        }
      },
      day: {
        displayName: "Day",
        relative: {
          0: "today",
          1: "tomorrow",
          "-1": "yesterday"
        },
        relativeTime: {
          future: {
            other: "+{0} d"
          },
          past: {
            other: "-{0} d"
          }
        }
      },
      "day-short": {
        displayName: "Day",
        relative: {
          0: "today",
          1: "tomorrow",
          "-1": "yesterday"
        },
        relativeTime: {
          future: {
            other: "+{0} d"
          },
          past: {
            other: "-{0} d"
          }
        }
      },
      hour: {
        displayName: "Hour",
        relative: {
          0: "this hour"
        },
        relativeTime: {
          future: {
            other: "+{0} h"
          },
          past: {
            other: "-{0} h"
          }
        }
      },
      "hour-short": {
        displayName: "Hour",
        relative: {
          0: "this hour"
        },
        relativeTime: {
          future: {
            other: "+{0} h"
          },
          past: {
            other: "-{0} h"
          }
        }
      },
      minute: {
        displayName: "Minute",
        relative: {
          0: "this minute"
        },
        relativeTime: {
          future: {
            other: "+{0} min"
          },
          past: {
            other: "-{0} min"
          }
        }
      },
      "minute-short": {
        displayName: "Minute",
        relative: {
          0: "this minute"
        },
        relativeTime: {
          future: {
            other: "+{0} min"
          },
          past: {
            other: "-{0} min"
          }
        }
      },
      second: {
        displayName: "Second",
        relative: {
          0: "now"
        },
        relativeTime: {
          future: {
            other: "+{0} s"
          },
          past: {
            other: "-{0} s"
          }
        }
      },
      "second-short": {
        displayName: "Second",
        relative: {
          0: "now"
        },
        relativeTime: {
          future: {
            other: "+{0} s"
          },
          past: {
            other: "-{0} s"
          }
        }
      }
    }
  }, {
    locale: "en-TC",
    parentLocale: "en-001"
  }, {
    locale: "en-TK",
    parentLocale: "en-001"
  }, {
    locale: "en-TO",
    parentLocale: "en-001"
  }, {
    locale: "en-TT",
    parentLocale: "en-001"
  }, {
    locale: "en-TV",
    parentLocale: "en-001"
  }, {
    locale: "en-TZ",
    parentLocale: "en-001"
  }, {
    locale: "en-UG",
    parentLocale: "en-001"
  }, {
    locale: "en-UM",
    parentLocale: "en"
  }, {
    locale: "en-US",
    parentLocale: "en"
  }, {
    locale: "en-VC",
    parentLocale: "en-001"
  }, {
    locale: "en-VG",
    parentLocale: "en-001"
  }, {
    locale: "en-VI",
    parentLocale: "en"
  }, {
    locale: "en-VU",
    parentLocale: "en-001"
  }, {
    locale: "en-WS",
    parentLocale: "en-001"
  }, {
    locale: "en-ZA",
    parentLocale: "en-001"
  }, {
    locale: "en-ZM",
    parentLocale: "en-001"
  }, {
    locale: "en-ZW",
    parentLocale: "en-001"
  }];
});

/***/ }),

/***/ "UApw":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _CDOAssetModel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("s8Eg");

class LocalAssetModel extends _CDOAssetModel__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"] {
    constructor(config) {
        super(config);
        this.isCached = true;
        this.isShared = false;
    }
    rename(correlationId, newName, oldTitle, parentPath) {
        throw new Error('Method not implemented.');
    }
    archive(correlationId) {
        throw new Error('Method not implemented.');
    }
    restore(correlationId) {
        throw new Error('Method not implemented.');
    }
    delete(correlationId) {
        throw new Error('Method not implemented.');
    }
    move(correlationId, newParentPath) {
        throw new Error('Method not implemented.');
    }
    duplicate(correlationId, parentPath, nameSuffix) {
        throw new Error('Method not implemented.');
    }
    pin(correlationId) {
        throw new Error('Method not implemented.');
    }
    unpin(correlationId) {
        throw new Error('Method not implemented.');
    }
    export(correlationId, destinationUri) {
        throw new Error('Method not implemented.');
    }
    createFolder(correlationId, newName) {
        throw new Error('Method not implemented.');
    }
    purge(correlationId) {
        throw new Error('Method not implemented.');
    }
    updateFrom(otherModel) {
        throw new Error('Method not implemented.');
    }
    /**
     * No-op to prevent DocumentStore error. Local docs use getLocalRendition()
     */
    getRendition() {
        return new Promise(() => { });
    }
}
/* harmony default export */ __webpack_exports__["a"] = (LocalAssetModel);


/***/ }),

/***/ "UBvv":
/***/ (function(module, exports, __webpack_require__) {

!function (e, t) {
   true ? module.exports = t() : undefined;
}(this, function () {
  "use strict";

  return [{
    locale: "pl",
    pluralRuleFunction: function (e, t) {
      var a = String(e).split("."),
          m = a[0],
          i = !a[1],
          n = m.slice(-1),
          u = m.slice(-2);
      return t ? "other" : 1 == e && i ? "one" : i && n >= 2 && n <= 4 && (u < 12 || u > 14) ? "few" : i && 1 != m && (0 == n || 1 == n) || i && n >= 5 && n <= 9 || i && u >= 12 && u <= 14 ? "many" : "other";
    },
    fields: {
      year: {
        displayName: "rok",
        relative: {
          0: "w tym roku",
          1: "w przyszłym roku",
          "-1": "w zeszłym roku"
        },
        relativeTime: {
          future: {
            one: "za {0} rok",
            few: "za {0} lata",
            many: "za {0} lat",
            other: "za {0} roku"
          },
          past: {
            one: "{0} rok temu",
            few: "{0} lata temu",
            many: "{0} lat temu",
            other: "{0} roku temu"
          }
        }
      },
      "year-short": {
        displayName: "r.",
        relative: {
          0: "w tym roku",
          1: "w przyszłym roku",
          "-1": "w zeszłym roku"
        },
        relativeTime: {
          future: {
            one: "za {0} rok",
            few: "za {0} lata",
            many: "za {0} lat",
            other: "za {0} roku"
          },
          past: {
            one: "{0} rok temu",
            few: "{0} lata temu",
            many: "{0} lat temu",
            other: "{0} roku temu"
          }
        }
      },
      month: {
        displayName: "miesiąc",
        relative: {
          0: "w tym miesiącu",
          1: "w przyszłym miesiącu",
          "-1": "w zeszłym miesiącu"
        },
        relativeTime: {
          future: {
            one: "za {0} miesiąc",
            few: "za {0} miesiące",
            many: "za {0} miesięcy",
            other: "za {0} miesiąca"
          },
          past: {
            one: "{0} miesiąc temu",
            few: "{0} miesiące temu",
            many: "{0} miesięcy temu",
            other: "{0} miesiąca temu"
          }
        }
      },
      "month-short": {
        displayName: "mies.",
        relative: {
          0: "w tym miesiącu",
          1: "w przyszłym miesiącu",
          "-1": "w zeszłym miesiącu"
        },
        relativeTime: {
          future: {
            one: "za {0} mies.",
            few: "za {0} mies.",
            many: "za {0} mies.",
            other: "za {0} mies."
          },
          past: {
            one: "{0} mies. temu",
            few: "{0} mies. temu",
            many: "{0} mies. temu",
            other: "{0} mies. temu"
          }
        }
      },
      day: {
        displayName: "dzień",
        relative: {
          0: "dzisiaj",
          1: "jutro",
          2: "pojutrze",
          "-2": "przedwczoraj",
          "-1": "wczoraj"
        },
        relativeTime: {
          future: {
            one: "za {0} dzień",
            few: "za {0} dni",
            many: "za {0} dni",
            other: "za {0} dnia"
          },
          past: {
            one: "{0} dzień temu",
            few: "{0} dni temu",
            many: "{0} dni temu",
            other: "{0} dnia temu"
          }
        }
      },
      "day-short": {
        displayName: "dzień",
        relative: {
          0: "dzisiaj",
          1: "jutro",
          2: "pojutrze",
          "-2": "przedwczoraj",
          "-1": "wczoraj"
        },
        relativeTime: {
          future: {
            one: "za {0} dzień",
            few: "za {0} dni",
            many: "za {0} dni",
            other: "za {0} dnia"
          },
          past: {
            one: "{0} dzień temu",
            few: "{0} dni temu",
            many: "{0} dni temu",
            other: "{0} dnia temu"
          }
        }
      },
      hour: {
        displayName: "godzina",
        relative: {
          0: "ta godzina"
        },
        relativeTime: {
          future: {
            one: "za {0} godzinę",
            few: "za {0} godziny",
            many: "za {0} godzin",
            other: "za {0} godziny"
          },
          past: {
            one: "{0} godzinę temu",
            few: "{0} godziny temu",
            many: "{0} godzin temu",
            other: "{0} godziny temu"
          }
        }
      },
      "hour-short": {
        displayName: "godz.",
        relative: {
          0: "ta godzina"
        },
        relativeTime: {
          future: {
            one: "za {0} godz.",
            few: "za {0} godz.",
            many: "za {0} godz.",
            other: "za {0} godz."
          },
          past: {
            one: "{0} godz. temu",
            few: "{0} godz. temu",
            many: "{0} godz. temu",
            other: "{0} godz. temu"
          }
        }
      },
      minute: {
        displayName: "minuta",
        relative: {
          0: "ta minuta"
        },
        relativeTime: {
          future: {
            one: "za {0} minutę",
            few: "za {0} minuty",
            many: "za {0} minut",
            other: "za {0} minuty"
          },
          past: {
            one: "{0} minutę temu",
            few: "{0} minuty temu",
            many: "{0} minut temu",
            other: "{0} minuty temu"
          }
        }
      },
      "minute-short": {
        displayName: "min",
        relative: {
          0: "ta minuta"
        },
        relativeTime: {
          future: {
            one: "za {0} min",
            few: "za {0} min",
            many: "za {0} min",
            other: "za {0} min"
          },
          past: {
            one: "{0} min temu",
            few: "{0} min temu",
            many: "{0} min temu",
            other: "{0} min temu"
          }
        }
      },
      second: {
        displayName: "sekunda",
        relative: {
          0: "teraz"
        },
        relativeTime: {
          future: {
            one: "za {0} sekundę",
            few: "za {0} sekundy",
            many: "za {0} sekund",
            other: "za {0} sekundy"
          },
          past: {
            one: "{0} sekundę temu",
            few: "{0} sekundy temu",
            many: "{0} sekund temu",
            other: "{0} sekundy temu"
          }
        }
      },
      "second-short": {
        displayName: "sek.",
        relative: {
          0: "teraz"
        },
        relativeTime: {
          future: {
            one: "za {0} sek.",
            few: "za {0} sek.",
            many: "za {0} sek.",
            other: "za {0} sek."
          },
          past: {
            one: "{0} sek. temu",
            few: "{0} sek. temu",
            many: "{0} sek. temu",
            other: "{0} sek. temu"
          }
        }
      }
    }
  }];
});

/***/ }),

/***/ "UDOJ":
/***/ (function(module) {

module.exports = JSON.parse("{\"File\":\"Fil\",\"Folder\":\"Mappe\"}");

/***/ }),

/***/ "UDep":
/***/ (function(module, exports, __webpack_require__) {

__webpack_require__("wgeU");

__webpack_require__("FlQf");

__webpack_require__("bBy9");

__webpack_require__("g33z");

__webpack_require__("XLbu");

__webpack_require__("/h46");

__webpack_require__("dVTT");

module.exports = __webpack_require__("WEpk").Map;

/***/ }),

/***/ "UE8u":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

var _UxpNativeDialog = _interopRequireDefault(__webpack_require__("QXXi"));

var _UxpNonNativeDialog = _interopRequireDefault(__webpack_require__("Ondd"));

var _UxpOptions = _interopRequireDefault(__webpack_require__("zvwv"));

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
} // if isNative props is supplied as true AND platform has compositing (z-index) issues 
// use the native modal dialogs provided by the platform
// else use the default spectrum dialog


const UxpDialog = /*#__PURE__*/_react.default.forwardRef((props, ref) => {
  if (_UxpOptions.default.productNeedsOverlayFix && props && props.isNative === true) {
    return /*#__PURE__*/_react.default.createElement(_UxpNativeDialog.default, _extends({}, props, {
      ref: ref
    }));
  } else {
    return /*#__PURE__*/_react.default.createElement(_UxpNonNativeDialog.default, _extends({}, props, {
      ref: ref
    }));
  }
});

var _default = UxpDialog;
exports.default = _default;

/***/ }),

/***/ "UJ/E":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* unused harmony export dsnFromString */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return dsnToString; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return makeDsn; });
/* harmony import */ var _error_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("9Pyj");

/** Regular expression used to parse a Dsn. */

const DSN_REGEX = /^(?:(\w+):)\/\/(?:(\w+)(?::(\w+)?)?@)([\w.-]+)(?::(\d+))?\/(.+)/;

function isValidProtocol(protocol) {
  return protocol === 'http' || protocol === 'https';
}
/**
 * Renders the string representation of this Dsn.
 *
 * By default, this will render the public representation without the password
 * component. To get the deprecated private representation, set `withPassword`
 * to true.
 *
 * @param withPassword When set to true, the password will be included.
 */


function dsnToString(dsn, withPassword = false) {
  const {
    host,
    path,
    pass,
    port,
    projectId,
    protocol,
    publicKey
  } = dsn;
  return `${protocol}://${publicKey}${withPassword && pass ? `:${pass}` : ''}` + `@${host}${port ? `:${port}` : ''}/${path ? `${path}/` : path}${projectId}`;
}
/**
 * Parses a Dsn from a given string.
 *
 * @param str A Dsn as string
 * @returns Dsn as DsnComponents
 */


function dsnFromString(str) {
  const match = DSN_REGEX.exec(str);

  if (!match) {
    throw new _error_js__WEBPACK_IMPORTED_MODULE_0__[/* SentryError */ "a"](`Invalid Sentry Dsn: ${str}`);
  }

  const [protocol, publicKey, pass = '', host, port = '', lastPath] = match.slice(1);
  let path = '';
  let projectId = lastPath;
  const split = projectId.split('/');

  if (split.length > 1) {
    path = split.slice(0, -1).join('/');
    projectId = split.pop();
  }

  if (projectId) {
    const projectMatch = projectId.match(/^\d+/);

    if (projectMatch) {
      projectId = projectMatch[0];
    }
  }

  return dsnFromComponents({
    host,
    pass,
    path,
    projectId,
    port,
    protocol: protocol,
    publicKey
  });
}

function dsnFromComponents(components) {
  return {
    protocol: components.protocol,
    publicKey: components.publicKey || '',
    pass: components.pass || '',
    host: components.host,
    port: components.port || '',
    path: components.path || '',
    projectId: components.projectId
  };
}

function validateDsn(dsn) {
  if (!(typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__)) {
    return;
  }

  const {
    port,
    projectId,
    protocol
  } = dsn;
  const requiredComponents = ['protocol', 'publicKey', 'host', 'projectId'];
  requiredComponents.forEach(component => {
    if (!dsn[component]) {
      throw new _error_js__WEBPACK_IMPORTED_MODULE_0__[/* SentryError */ "a"](`Invalid Sentry Dsn: ${component} missing`);
    }
  });

  if (!projectId.match(/^\d+$/)) {
    throw new _error_js__WEBPACK_IMPORTED_MODULE_0__[/* SentryError */ "a"](`Invalid Sentry Dsn: Invalid projectId ${projectId}`);
  }

  if (!isValidProtocol(protocol)) {
    throw new _error_js__WEBPACK_IMPORTED_MODULE_0__[/* SentryError */ "a"](`Invalid Sentry Dsn: Invalid protocol ${protocol}`);
  }

  if (port && isNaN(parseInt(port, 10))) {
    throw new _error_js__WEBPACK_IMPORTED_MODULE_0__[/* SentryError */ "a"](`Invalid Sentry Dsn: Invalid port ${port}`);
  }

  return true;
}
/** The Sentry Dsn, identifying a Sentry instance and project. */


function makeDsn(from) {
  const components = typeof from === 'string' ? dsnFromString(from) : dsnFromComponents(from);
  validateDsn(components);
  return components;
}



/***/ }),

/***/ "UJi9":
/***/ (function(module) {

module.exports = JSON.parse("{\"a11y.button.canvases\":\"{name}\",\"a11y.button.libraries\":\"{name}, бібліотека\",\"a11y.button.listGridToggle\":\"перемикач подання, {toggledView, select, grid {сітка} list {список}}\",\"a11y.button.project\":\"{name}, проєкт\",\"a11y.button.published\":\"{name}, {extension}\",\"a11y.button.selectFolder\":\"Виділити теку\",\"a11y.button.working\":\"{name}, {extension}, змінено {modified}\",\"a11y.strings.folder\":\"тека\",\"header.action.newProject\":\"Новий проект\",\"header.action.newLibrary\":\"Створити бібліотеку\",\"header.action.browseAll\":\"Переглянути всі\",\"header.Name\":\"Назва\",\"header.Size\":\"Розмір\",\"header.Sharing\":\"Учасники\",\"header.Team\":\"Робоче середовище\",\"header.DateModified\":\"Змінено\",\"header.DateCreated\":\"Створено\",\"header.Status\":\"В улюбленому\",\"header.SortBy\":\"Сортувати за\",\"header.sort.label\":\"Сортувати\",\"header.ChangeSortDirection\":\"Змінити напрямок сортування на\",\"header.SortBy.asc\":\"За зростанням\",\"header.SortBy.desc\":\"За спаданням\",\"header.selectAll\":\"Вибрати все\",\"header.reverseOrder\":\"Зворотний порядок\",\"header.showCompatible\":\"Сумісні файли\",\"header.showEverything\":\"Усе\",\"product.illustrator.web\":\"Illustrator Web (бета-версія)\",\"product.photoshop.web\":\"Photoshop Web (бета-версія)\",\"status.followed\":\"Так\",\"status.unfollowed\":\"Ні\",\"team.usm.defaultName\":\"Робоче середовище {name}\",\"space.access.private.description\":\"Лише запрошені\",\"space.access.private.tooltip\":\"Доступ до цього проєкту мають лише запрошені особи\",\"space.access.team.description\":\"Будь-хто в робочому середовищі й запрошені\",\"space.access.team.tooltip\":\"Будь-хто з «{team}» має доступ до цього проєкту\",\"yourProjects.title\":\"Проєкти\",\"yourProjects.librariesTab.title\":\"Бібліотеки робочої групи\",\"yourProjects.empty.spaces\":\"Створюйте більше проєктів і запрошуйте більше учасників робочого середовища\",\"browseAll.title\":\"Переглянути всі\",\"yourFiles.title\":\"Ваші документи\",\"yourLibraries.title\":\"Бібліотеки\",\"yourLibraries.metadata\":\"БІБЛІОТЕКА\",\"canvas.metadata\":\"ПОЛОТНО\",\"projectInfo.action.view\":\"Переглянути інформацію\",\"projectInfo.action.edit\":\"Редагувати проєкт\",\"projectInfo.empty.cta\":\"Створити новий проект\",\"projectInfo.empty.description\":\"Creative Cloud Projects спрощують пошук, організацію, спільний доступ і прийняття рішень, надаючи змогу розмістити все необхідне для творчих проектів в одному місці.\",\"projectInfo.empty.heading\":\"Більше творить, менше наздоганяйте.\",\"projectInfo.error.description\":\"Повторіть спробу пізніше\",\"projectInfo.error.heading\":\"Неможливо завантажити {section}\",\"projectInfo.new.error.title\":\"Не вдалося створити проєкт\",\"projectInfo.new.noPermission.description\":\"Щоб отримати додаткову інформацію, зв’яжіться зі своїм адміністратором.\",\"projectInfo.title.create\":\"НОВИЙ ПРОЄКТ\",\"projectInfo.title.edit\":\"РЕДАГУВАТИ ПРОЄКТ\",\"projectInfo.title.view\":\"ВІДОМОСТІ ПРО ПРОЄКТ\",\"projectInfo.access.title\":\"Хто може редагувати цей проєкт\",\"projectInfo.access.warning\":\"Якщо змінити дозвіл на «Лише запрошені», деякі учасники можуть втратити доступ до цього проєкту.\",\"projectInfo.organization\":\"Організація\",\"projectInfo.organization.placeholder\":\"Зробіть вибір\",\"projectInfo.description\":\"Опис\",\"textField.invalid.characters\":\"Імена не можуть містити такі символи: \\\\\\\\ / * ? \\\" | : < >\",\"textField.invalid.duplicateName\":\"Проєкт із таким ім'ям уже існує в цій організації.\",\"textField.invalid.duplicateName.space\":\"Проєкт із таким ім’ям уже існує в цьому робочому середовищі.\",\"textField.invalid.duplicateName.team\":\"Робоче середовище із такою назвою вже існує у цій організації.\",\"textField.invalid.empty\":\"Ім’я не може бути порожнім\",\"textField.invalid.generic\":\"Неприпустиме ім’я\",\"textField.invalid.length\":\"Довжина імен не може перевищувати 50 символів\",\"textField.invalid.nameEndsWithDot\":\"Імена не можуть закінчуватися крапкою\",\"textField.invalid.offline\":\"Підключіться повторно, щоб отримати доступ до всіх ваших робочих середовищ і проєктів. Щоб переглянути локальні файли зі своїх проєктів, перейдіть на домашню сторінку.\",\"projectInfo.textField.placeholder\":\"Назвіть цей проєкт\",\"projectInfo.team\":\"Робоче середовище\",\"projectInfo.description.placeholder\":\"Приклад. Файли, відгуки й довідкові матеріали для проєкту клієнта\",\"projectInfo.description.invalidLength\":\"Опис не може перевищувати 1000 символів\",\"projectInfo.toast.success.new\":\"Проєкт успішно створено: {name}\",\"projectInfo.toast.success.update\":\"Проєкт успішно оновлено: {name}\",\"projectInfo.toast.error.generic\":\"Не вдалося {create, select, true {створити} other {змінити}} проєкт\",\"team.empty.heading\":\"Проєкти допомагають усім працювати злагоджено й узгоджено\",\"team.empty.description\":\"Набридло блокування файлів, плутанина з версіями та надсилання скріншотів електронною поштою для перевірки? Використовуйте простори для впорядкування проєктів, збирання ресурсів і зворотного зв'язку й обміну файлами, над якими має працювати вся команда.\",\"team.empty.createSpace\":\"Створити проєкт\",\"team.empty.inviteMembers\":\"Запросіть учасників\",\"team.empty.startHere\":\"ПОЧНІТЬ ТУТ\",\"team.create.success\":\"Успішно створено робоче середовище: {name}\",\"team.create.error.generic\":\"Не вдалося створити робоче середовище\",\"team.edit.success\":\"Успішно оновлено робоче середовище: {name}\",\"team.edit.error.generic\":\"Не вдалося оновити робоче середовище\",\"team.archive.success\":\"{count, plural, =1 {# робоче середовище} few {# робочі середовища} other {# робочих середовищ}} видалено\",\"team.archive.error.generic\":\"Не вдається видалити {count, plural, =1 {# робоче середовище} few {# робочі середовища} other {# робочих середовищ}}\",\"team.error.generic\":\"На жаль, сталася помилка.\",\"project1Up.action.projectInfo\":\"Переглянути інформацію\",\"project1up.region.space.ariaLabel\":\"{projectName}, проєкт\",\"project1Up.section.libraries\":\"Бібліотеки\",\"project1Up.section.libraries.empty.cta\":\"Додати бібліотеки Creative Cloud Libraries\",\"project1Up.section.libraries.empty.description\":\"Додайте посилання на бібліотеки, необхідні вам для роботи.\",\"project1Up.section.libraries.empty.heading\":\"Зберіть усе в одному місці\",\"project1Up.section.filter\":\"Фільтр\",\"project1Up.section.filter.label\":\"Фільтрувати за ключовим словом\",\"project1Up.section.filter.enterKeyword\":\"Введіть ключове слово\",\"project1Up.section.filterFiles.empty.heading\":\"Немає результатів за вибраним фільтром\",\"project1Up.section.compatibleFiles.empty.heading\":\"У цьому проєкті немає сумісних файлів\",\"project1Up.section.workingFiles\":\"Робочі файли\",\"project1Up.section.workingFiles.empty.addFiles\":\"Додати файли\",\"project1Up.section.workingFiles.empty.createFolder\":\"Створити нову папку\",\"project1Up.section.workingFiles.empty.description\":\"Переглядайте проекти й співпрацюйте з колегами.\",\"project1Up.section.workingFiles.empty.heading\":\"Працюйте над потрібним проектом у потрібний вам час\",\"project1Up.section.published\":\"Опубліковано\",\"project1Up.section.published.empty.cta\":\"Публікація посилань\",\"project1Up.section.published.empty.description\":\"Надсилайте посилання лише для перегляду, щоб отримувати відгук від потрібних людей у потрібний час.\",\"project1Up.section.published.empty.description.readonly\":\"Коли комусь знадобиться відгук або рецензія, тут буде додано посилання.\",\"project1Up.section.published.empty.heading\":\"Поділіться з метою\",\"project1Up.section.published.empty.heading.readonly\":\"У цьому проєкті немає опублікованих елементів\",\"project1Up.section.canvases\":\"Полотна\",\"project1Up.section.canvases.empty.cta\":\"Додати полотна Creative Cloud\",\"project1Up.section.canvases.empty.description\":\"Додайте посилання на елементи, необхідні для роботи.\",\"project1Up.section.canvases.empty.heading\":\"Зберіть усе в одному місці\",\"project1Up.section.files\":\"Файли\",\"project1Up.error.accessDenied.heading\":\"У вас немає доступу\",\"project1Up.error.accessDenied.description\":\"Вас було видалено із цього проєкту. Зв'яжіться з адміністратором, якщо вважаєте, що це помилка.\",\"project1Up.header.seeAll\":\"Переглянути все\",\"project1up.subheader.selected\":\"Вибрано {count, plural, =1 {# елемент} few {# елементи} other {# елементів}}\",\"project1up.subheader.emptyDescription\":\"Додайте опис до свого проєкту\",\"project1up.subheader.canvases.title\":\"Полотна\",\"project1up.subheader.canvases.subtitle\":\"ВИКОНАТИ: ЗАГОЛОВКИ ПОЛОТЕН\",\"project1up.subheader.libraries.title\":\"Бібліотеки\",\"project1up.subheader.libraries.subtitle\":\"Учасники можуть додавати тут посилання на Creative Cloud Libraries.\",\"project1up.subheader.working.title\":\"Робочі файли\",\"project1up.subheader.working.subtitle\":\"Учасники цього проєкту можуть редагувати ці файли.\",\"project1up.subheader.output.title\":\"Опубліковано\",\"project1up.subheader.output.subtitle\":\"{contributor, select, true {Поширюйте версії роботи лише для читання серед людей, які не беруть участі у проєкті.} other {Переглядайте й коментуйте ці елементи лише для читання}}\",\"project.subtitle\":\"ПРОЄКТ\",\"project.countContributors\":\"{count, plural, =1 {# учасник} few {# учасники} other {# учасників}}\",\"project.versionError.reload.description\":\"Спробуйте оновити браузер.\",\"project.versionError.reload.title\":\"Не вдалось отримати доступ до проєкта\",\"project.versionError.update.description\":\"Ви не зможете отримати доступ до проєкту, доки не оновите програму.\",\"project.versionError.update.title\":\"Оновіть {appName}, щоб відкрити\",\"project.alreadyDiscarded.title\":\"Цей проєкт було видалено\",\"project.alreadyDiscarded.description\":\"Зв'яжіться з адміністратором, якщо вважаєте, що це помилка, або перегляньте інший вміст.\",\"project.deleted.title\":\"Цей проєкт було видалено остаточно\",\"project.deleted.description\":\"Ви не можете отримати доступ до цього проєкту, оскільки він більше недоступний.\",\"project.metadataError.backLabel\":\"Назад до проєктів\",\"project.metadataError.description\":\"Або нам не вдалося знайти потрібний вам проєкт, або у вас немає доступу.\",\"project.metadataError.title\":\"На жаль, сталася помилка.\",\"folder.subtitle\":\"ПАПКА\",\"libraries.toast.add.start\":\"Додавання {count, plural, =1 {бібліотеки} other {# бібліотек}}\",\"libraries.toast.add.success\":\"Додано {count, plural, =1 {бібліотеку} few {# бібліотеки} other {# бібліотек}}\",\"libraries.toast.add.error\":\"Не вдалося додати {count, plural, =1 {# бібліотеку} few {# бібліотеки} other {# бібліотек}}. Повторіть спробу.\",\"libraries.toast.add.duplicate\":\"Така бібліотека вже існує\",\"libraries.toast.add.onlyDuplicates\":\"Не вдається додати {count, plural, =1 {# бібліотеку, оскільки бібліотека вже існує} few {# бібліотеки, оскільки бібліотеки вже існують} other {# бібліотек, оскільки бібліотеки вже існують}}.\",\"libraries.toast.delete.success\":\"Успішно видалено {count, plural, =1 {# бібліотеку} few {# бібліотеки} other {# бібліотек}}\",\"libraries.toast.delete.error\":\"Не вдалося видалити {count, plural, =1 {# бібліотеку} few {# бібліотеки} other {# бібліотек}}\",\"libraries.toast.follow.inProgress\":\"Ви відстежуєте {count, plural, =1 {# бібліотеку} few {# бібліотеки} other {# бібліотек}}\",\"libraries.toast.follow.success\":\"Ви відстежуєте {count, plural, =1 {# бібліотеку} few {# бібліотеки} other {# бібліотек}}\",\"libraries.toast.follow.error\":\"Не вдалося підписатися на {count, plural, =1 {# бібліотеку} few {# бібліотеки} other {# бібліотек}}\",\"libraries.toast.unfollow.inProgress\":\"Ви припиняєте відстеження {count, plural, =1 {# бібліотеки} other {# бібліотек}}\",\"libraries.toast.unfollow.success\":\"Ви припинили відстеження {count, plural, =1 {# бібліотеки} other {# бібліотек}}\",\"libraries.toast.unfollow.error\":\"Не вдалося припинити відстеження {count, plural, =1 {# бібліотек} few {# бібліотек} other {# бібліотек}}\",\"libraries.modal.empty.heading\":\"Немає бібліотек\",\"libraries.modal.empty.description\":\"Із вашою організацією не поділилися жодною бібліотекою\",\"libraries.modal.error.limitExceeded\":\"Не вдалося додати бібліотеку\",\"libraries.modal.error.limitExceeded.detail\":\"До проєкту можна додати до 100 бібліотек. Видаліть якісь, щоб додати більше.\",\"libraries.brokenResources\":\"Деякі бібліотеки не відображаються, оскільки у вас немає доступу. Щоб отримати додаткову інформацію, зв’яжіться з іншими учасниками.\",\"copy.start\":\"Копіювання {count, plural, =1 {# елемента} other {# елементів}}\",\"copy.failure\":\"Не вдається скопіювати {count, plural, =1 {# елемент} few {# елементи} other {# елементів}}\",\"copy.failure.partial\":\"Не вдається скопіювати деякі елементи\",\"copy.success\":\"{count, plural, =1 {# елемент} few {# елементи} other {# елементів}} скопійовано\",\"copy.conflictSuffix\":\"копія\",\"move.start\":\"Перенесення {count, plural, =1 {# елемента} other {# елементів}}\",\"move.failure\":\"Не вдається перенести {count, plural, =1 {# елемент} few {# елементи} other {# елементів}}\",\"move.failure.partial\":\"Не вдається перемістити деякі елементи\",\"move.success\":\"{count, plural, =1 {# елемент} few {# елементи} other {# елементів}} перенесено.\",\"upload.start\":\"Передавання {count, plural, =1 {# елемента} other {# елементів}}\",\"upload.failure\":\"Не вдається передати {count, plural, =1 {# елемент} few {# елементи} other {# елементів}}\",\"upload.failure.partial\":\"Не вдається передати деякі елементи\",\"upload.failure.snapshot\":\"Цей елемент не підтримується\",\"upload.success\":\"Передано {count, plural, =1 {# елемент} few {# елементи} other {# елементів}}\",\"download.start\":\"Завантаження {count, plural, =1 {# елемента} other {# елементів}}\",\"download.failure\":\"Не вдається завантажити {count, plural, =1 {# елемент} few {# елементи} other {# елементів}}\",\"download.failure.partial\":\"Не вдається завантажити деякі елементи\",\"download.success\":\"Завантажено {count, plural, =1 {# елемент} few {# елементи} other {# елементів}}\",\"delete.failure\":\"Не вдається видалити {count, plural, =1 {# елемент} few {# елементи} other {# елементів}}\",\"delete.failure.partial\":\"Не вдається видалити деякі елементи\",\"delete.success\":\"{count, plural, =1 {# елемент} few {# елементи} other {# елементів}} видалено\",\"jobs.failure\":\"{count, plural, =1 {# елемент} few {# елементи} other {# елементів}} завершено невдало\",\"jobs.inProgress\":\"Обробка...\",\"jobs.success\":\"{count, plural, =1 {# елемент} few {# елементи} other {# елементів}} завершено\",\"restore.failure\":\"Не вдається відновити {count, plural, =1 {# елемент} few {# елементи} other {# елементів}}\",\"restore.failure.partial\":\"Не вдається відновити деякі елементи\",\"restore.success\":\"{count, plural, =1 {# елемент} few {# елементи} other {# елементів}} відновлено\",\"rename.start\":\"Перейменування\",\"rename.success\":\"{count, plural, =1 {# елемент} few {# елементи} other {# елементів}} перейменовано\",\"rename.failure\":\"Не вдалося перейменувати елемент через помилку на сервері\",\"rename.failure.conflict\":\"У вас тут уже є елемент з таким ім’ям\",\"rename.offline.heading\":\"Не вдається перейменувати\",\"rename.offline\":\"Немає зв'язку з мережею, тому ви не можете перейменувати елемент. Відновіть зв'язок із мережею, щоб виконати цю дію.\",\"bookmark.follow.error\":\"Не вдалося додати цей проєкт до обраного\",\"bookmark.unfollow.error\":\"Не вдалося видалити цей проєкт з обраного\",\"bookmark.follow.success\":\"Успішно додано до обраного {projectName}\",\"bookmark.unfollow.success\":\"Успішно видалено з обраного {projectName}\",\"bookmark.bulk.follow.success\":\"Успішно додано до обраного {count, plural, =1 {# елемент} few {# елементи} other {# елементів}}\",\"bookmark.bulk.follow.partial\":\"Не вдалося додати до обраного деякі елементи\",\"bookmark.bulk.follow.error\":\"Не вдалося додати до обраного {count, plural, =1 {# елемент} few {# елементи} other {# елементів}}\",\"bookmark.bulk.unfollow.success\":\"Успішно видалено з обраного {count, plural, =1 {# елемент} few {# елементи} other {# елементів}}\",\"bookmark.bulk.unfollow.partial\":\"Не вдалося видалити з обраного деякі елементи\",\"bookmark.bulk.unfollow.error\":\"Не вдалося видалити з обраного {count, plural, =1 {# елемент} few {# елементи} other {# елементів}}\",\"copyLink.success\":\"Посилання скопійовано до буфера обміну\",\"copyLink.failure\":\"Не вдається скопіювати посилання\",\"starterUser.project1upNavigation\":\"Ваш план для початківців не передбачає відкриття документів у проєктах\",\"starterUser.project1upNavigationCDPSave\":\"Ваш план для початківців не передбачає збереження документів у проєктах\",\"invite.failure\":\"Не вдалося надіслати запрошення, повторіть спробу\",\"accessibility.backButton\":\"Назад\",\"button.role\":\"Кнопка\",\"button.actions\":\"Дії\",\"button.add\":\"Додати\",\"button.addFiles\":\"Додати файли\",\"button.addLibrary\":\"Додати бібліотеку\",\"button.createDocument\":\"Новий файл {appName}\",\"button.library\":\"Бібліотека\",\"button.back\":\"Назад\",\"button.browse\":\"Переглянути всі\",\"button.cancel\":\"Скасувати\",\"button.okay\":\"ОК\",\"button.canvas\":\"Полотно\",\"button.addCanvas\":\"Нове полотно\",\"button.changeDefaultApp\":\"Змінити програму за замовчуванням...\",\"button.close\":\"Закрити\",\"button.continue\":\"Продовжити\",\"button.copy\":\"Копіювати до...\",\"button.copyLink\":\"Копіювати посилання\",\"button.create\":\"Створити\",\"button.createNewFolder\":\"Створити нову папку\",\"button.newFile\":\"Новий файл\",\"button.newFolder\":\"Нова папка\",\"button.delete\":\"Видалити\",\"button.deleteResource\":\"Видалити\",\"button.done\":\"Готово\",\"button.download\":\"Завантажити\",\"button.favorite\":\"Обране\",\"button.follow\":\"Відстежувати\",\"button.invite\":\"Запросити\",\"button.inviteLabel\":\"Запросити людей\",\"button.leave\":\"Залишити\",\"button.leaveProject\":\"Залишити робоче середовище\",\"button.move\":\"Перемістити до...\",\"button.next\":\"Далі\",\"button.ok\":\"ОК\",\"button.open\":\"Відкрити\",\"button.openWith\":\"Відкрити за допомогою\",\"button.open.appName\":\"{appName} {isDefault, select, true {(за замовчуванням)} other {}}\",\"button.redo\":\"Спробувати ще раз\",\"button.reload\":\"Перезавантажити\",\"button.rename\":\"Перейменувати\",\"button.restore\":\"Відновити\",\"button.retry\":\"Повторити\",\"button.save\":\"Зберегти\",\"button.select\":\"Вибрати\",\"button.share\":\"Поділитися\",\"button.skipTour\":\"Пропустити огляд\",\"button.undo\":\"Скасувати\",\"button.unfavorite\":\"Видалити з обраного\",\"button.unfollow\":\"Припинити відстеження\",\"button.update\":\"Оновити\",\"button.upgrade\":\"Виконайте оновлення\",\"button.view\":\"Переглянути все\",\"button.viewProject\":\"Переглянути проєкт\",\"button.viewTarget\":\"Переглянути\\n\",\"button.createWeblink\":\"Додати вебпосилання\",\"button.leaveTeam\":\"Залишити робоче середовище\",\"button.renameTeam\":\"Перейменувати робоче середовище\",\"button.editTeam\":\"Редагувати інформацію про робоче середовище\",\"button.archiveTeam\":\"Видалити робоче середовище\",\"button.upload\":\"Передати файли\",\"button.goToDeleted\":\"Переглянути у видалених\",\"button.viewEverything\":\"Переглянути все\",\"button.viewInWeb\":\"Переглянути в Інтернеті\",\"abbreviations.fileSize.byte\":\"Б\",\"abbreviations.fileSize.kilobyte\":\"КБ\",\"abbreviations.fileSize.megabyte\":\"MБ\",\"abbreviations.fileSize.gigabyte\":\"ГБ\",\"abbreviations.fileSize.terabyte\":\"ТБ\",\"statusIcon.conflicted\":\"Конфлікт синхронізації\",\"statusIcon.onlineOnly\":\"Тільки мережний\",\"statusIcon.availableOffline\":\"Доступний в автономному режимі\",\"statusIcon.syncing\":\"Синхронізація...\",\"statusIcon.waitingToSync\":\"Очікування синхронізації\",\"statusMessage.offline.description\":\"Підключіться повторно, щоб отримати доступ до всіх ваших робочих середовищ і проєктів. Щоб переглянути локальні файли зі своїх проєктів, перейдіть на домашню сторінку.\",\"statusMessage.offline.heading\":\"Зв’язок із мережею відсутній\",\"statusMessage.offline.toast\":\"З’єднання розірвано, тому деякі функції і файли можуть бути недоступними.\",\"toggle.listView\":\"Список\",\"toggle.gridView\":\"Мініатюри\",\"color.fuchsia\":\"Фуксія\",\"color.indigo\":\"Індиго\",\"color.celery\":\"Селера\",\"color.magenta\":\"Малиновий\",\"color.yellow\":\"Жовтий\",\"color.seafoam\":\"Морська піна\",\"color.chartreuse\":\"Шартрез\",\"color.purple\":\"Пурпуровий\",\"color.blue\":\"Синій\",\"color.red\":\"Червоний\",\"color.orange\":\"Оранжевий\",\"color.green\":\"Зелений\",\"color.label\":\"Колір проєкту\",\"tooltip.offline.general\":\"Поверніться в мережу, щоб виконати цю дію\",\"tooltip.moreFaces\":\"+ {number} ще\",\"action.leave.space.success\":\"Ви залишили {count, plural, =1 {# проєкт} other {# проєкти}}\",\"action.leave.prototype.success\":\"Доступ до {count, plural, =1 {# прототипу} other {# прототипів}} видалено\",\"action.leave.file.success\":\"Доступ до {count, plural, =1 {# файлу} other {# файлів}} видалено\",\"action.leave.canvas.success\":\"Доступ до {count, plural, =1 {# полотна} other {# полотен}} видалено\",\"action.leave.team.success\":\"Ви залишили 1 робоче середовище\",\"action.leave.space.error\":\"Не вдалося залишити цей проєкт\",\"action.leave.prototype.error\":\"Не вдалося залишити цей прототип\",\"action.leave.file.error\":\"Не вдалося залишити цей файл\",\"action.leave.team.error\":\"Не вдалося залишити це робоче середовище\",\"action.leave.canvas.error\":\"Не вдалося залишити це полотно\",\"action.leave.space.partial.error\":\"Не вдається залишити всі проєкти\",\"action.leave.prototype.partial.error\":\"Не вдалося залишити всі прототипи\",\"action.leave.file.partial.error\":\"Не вдалося залишити всі файли\",\"action.leave.canvas.partial.error\":\"Не вдається залишити всі полотна\",\"action.leave.error.onlyContributor\":\"Ви єдиний учасник. Перш ніж піти, додайте ще одного.\",\"action.leave.error.addressBookGroupMember\":\"Залиште групу і спробуйте ще раз.\",\"action.leave.error.admin\":\"Ви не можете залишити, оскільки ви адміністратор.\",\"action.leave.error.generic\":\"Не вдається залишити, оскільки сталась якась помилка.\",\"action.reportAbuse\":\"Повідомити про порушення\",\"action.reportAbuse.required\":\"Обов’язкові\",\"action.reportAbuse.titleText\":\"Якщо ви вважаєте, що цей контент Creative Cloud порушує умови використання Adobe, повідомте про нього за допомогою цієї короткої форми.\",\"action.reportAbuse.emailInput\":\"Ваша адреса ел. пошти\",\"action.reportAbuse.nameInput\":\"Ваше ім’я\",\"action.reportAbuse.radioButtonText\":\"Чому ви повідомляєте про цей контент?\",\"action.reportAbuse.defamation\":\"Наклеп\",\"action.reportAbuse.hate\":\"Расистський/ненависницький вміст\",\"action.reportAbuse.trademark\":\"Зазіхання на торговий знак\",\"action.reportAbuse.pornography\":\"Непристойний вміст\",\"action.reportAbuse.vulgar\":\"Образливий вміст\",\"action.reportAbuse.other\":\"Інше\",\"action.reportAbuse.inappropriate\":\"Недоречно\",\"action.reportAbuse.age\":\"Неточність щодо віку\",\"action.reportAbuse.gender\":\"Неточність щодо статі\",\"action.reportAbuse.textAreaTitle\":\"Поясніть, що вас непокоїть\",\"action.reportAbuse.describeConcern\":\"Опишіть проблему\",\"action.reportAbuse.success\":\"Звіт про порушення успішно надіслано\",\"action.reportAbuse.failure\":\"Не вдалося повідомити про порушення\",\"action.menu.label\":\"Меню «Дія»\",\"action.label\":\"Дія\",\"dialog.genericError.description\":\"На жаль, сталася помилка.\",\"dialog.genericError.title\":\"Неочікувана помилка\",\"dialog.leave.space.title\":\"Залишити {count, plural, =1 {{name}} other {проєкти}}\",\"dialog.leave.prototype.title\":\"Залишити {count, plural, =1 {цей прототип} other {прототипи}}\",\"dialog.leave.file.title\":\"Залишити {count, plural, =1 {цей файл} other {файли}}\",\"dialog.leave.canvas.title\":\"Залишити {count, plural, =1 {це полотно} other {полотна}}\",\"dialog.leave.team.title\":\"Кажете бувай?\",\"dialog.leave.team.detail\":\"Ви не зможете скасувати цю дію, якщо видалите себе. Зв'яжіться з адміністратором, якщо хочете повернутися до цього робочого середовища.\",\"dialog.leave.space.detail\":\"Ви втратите доступ до елементів у цьому проєкті, які вам не належать. Вихід із «{projectName}» не можна скасувати.\",\"dialog.leave.prototype.detail\":\"Ви не зможете знову отримати доступ до цього без ще одного запрошення.\",\"dialog.leave.file.detail\":\"Ви не зможете знову отримати доступ до цього без ще одного запрошення.\",\"dialog.leave.canvas.detail\":\"Ви не зможете знову отримати доступ до цього без ще одного запрошення.\",\"dialog.leave.detail\":\"{type, select, space {Ви втратите доступ до елементів, що вам не належать, розташованих у {count, plural, =1 {цьому проєкті} other {цих проєктах}}. Вихід із {count, plural, =1 {«{name}»} other {цих проєктів}} скасувати неможливо.} other {Ви не зможете знову отримати доступ до {count, plural, =1 {цього проєкту} other {цих проєктів}} без ще одного запрошення{count, plural, =1 {.} other {:}}}}\",\"dialog.deleteFailed.title\":\"Не вдається видалити всі елементи\",\"dialog.deleteWarning.description\":\"{type, select, spaces {Ця дія видалить вміст для всіх учасників цих проєктів} other {Ця дія видалить такі елементи для всіх участників цього проєкту:}}\",\"dialog.deleteWarning.title\":\"{type, select, space {Видалити {count} {count, plural, =1 {проєкт} few {проєкти} other {проєктівів}}} other {Видалити {count} {count, plural, =1 {елемент} few {елементи} other {елементів}}}}\",\"dialog.deleteFailed.description.unauthorized\":\"Не вдається видалити, оскільки вас було видалено з проєкту:\",\"dialog.deleteFailed.description.alreadyDeleted\":\"Не вдається видалити, оскільки хтось уже видалив цей елемент:\",\"dialog.deleteFailed.description.unknown\":\"Не вдається видалити, оскільки сталась якась помилка:\",\"dialog.cantCopyAllItems\":\"Не вдається скопіювати всі елементи\",\"dialog.cantCopyBecauseSomethingWentWrong\":\"Не вдається скопіювати, оскільки сталась якась помилка:\",\"dialog.cantCopyBecauseYouWereSignedOut\":\"Не вдається скопіювати, оскільки ви вийшли з системи:\",\"dialog.cantCopyBecauseYouWereRemoved\":\"Не вдається скопіювати, оскільки вас було видалено з цього проєкту:\",\"dialog.cantCopyBecauseItemWasDeleted\":\"Не вдається скопіювати, оскільки хтось видалив цей елемент:\",\"dialog.cantCopyBecauseItemExists\":\"Не вдається скопіювати, оскільки цей ресурс уже існує в тому розташуванні, куди ви намагалися скопіювати:\",\"dialog.cantMoveAllItems\":\"Не вдається перемістити всі елементи\",\"dialog.cantMoveBecauseSomethingWentWrong\":\"Не вдається перемістити, оскільки сталась якась помилка:\",\"dialog.cantMoveBecauseYouWereSignedOut\":\"Не вдається перемістити, оскільки ви вийшли з системи:\",\"dialog.cantMoveBecauseYouWereRemoved\":\"Не вдається перемістити, оскільки вас було видалено з цього проєкту\",\"dialog.cantMoveBecauseItemWasDeleted\":\"Не вдається перемістити, оскільки хтось видалив цей елемент:\",\"dialog.cantMoveBecauseItemExists\":\"Не вдається перемістити, оскільки цей ресурс уже існує в тому розташуванні, куди ви намагалися перемістити:\",\"dialog.createFolder.error\":\"Помилка на сервері, не вдалося зберегти папку\",\"dialog.createFolder.nameConflict\":\"У вас уже є папка з таким ім'ям.\",\"dialog.createFolder.placeholder\":\"Ім'я папки\",\"dialog.createFolder.title\":\"Створити папку\",\"dialog.createFolder.success\":\"Папку успішно створено\",\"dialog.createWeblink.error\":\"Непідтримувана URL-адреса\",\"dialog.createWeblink.tooManyRequests\":\"Неочікувана помилка мережі. Спробуйте ще раз.\",\"dialog.createWeblink.success\":\"Додано 1 елемент\",\"dialog.createWeblink.nameConflict\":\"Такий заголовок вже існує\",\"dialog.createWeblink.name.placeholder\":\"Введіть назву цього посилання\",\"dialog.createWeblink.link.placeholder\":\"https://\",\"dialog.createWeblink.name\":\"Спеціальна назва\",\"dialog.createWeblink.link\":\"Посилання\",\"dialog.createWeblink.title\":\"Створити веб-посилання\",\"app.type.webLink\":\"ВЕБ-ПОСИЛАННЯ\",\"dialog.createCanvas.error\":\"Не вдається створити полотно\",\"dialog.move.title\":\"Перемістити до проєкту {projectName}\",\"dialog.move.detail\":\"У разі переміщення цього елемента можливість доступу до нього буде змінено.\",\"moveToTeam.confirm.title\":\"Перемістити до робочого середовища {name}\",\"moveToTeam.confirm.message\":\"Переміщення сюди ваших проєктів змінить коло тих, хто має до них доступ. Ваші проєкти будуть доступні всім, хто має доступ до вашого робочого середовища.\",\"moveToTeam.disabled.differentOrg.tooltip.message\":\"Не можна перемістити проєкти до робочого середовища в іншій організації.\",\"moveToSpace.disabled.differentOrg.tooltip.message\":\"Не можна перемістити елементи до проєкту в іншій організації.\",\"moveToTeam.success\":\"Ви перемістили {count, plural, =1 {# проєкт} few {# проєкти} other {# проєктів}} до робочого середовища {name}\",\"confirmationDialog.dontShowAgain\":\"Більше не показувати\",\"dialog.open.title\":\"Відкрити в Інтернеті\",\"dialog.open.detail\":\"Цей файл не можна відкрити в програмі {appName}, але можна отримати доступ до нього в браузері.\",\"dialog.renameTeam.title\":\"Перейменувати робоче середовище\",\"dialog.renameTeam.placeholder\":\"Введіть назву цього робочого середовища\",\"dialog.renameTeam.error\":\"На жаль, сталася помилка.\",\"dialog.renameTeam.nameConflict\":\"Така назва вже існує\",\"dialog.archiveTeam.title\":\"Видаляєте це робоче середовище?\",\"dialog.archiveTeam.detail\":\"Ви не зможете скасувати цю дію, якщо видалите себе. Зв‘яжіться з адміністратором, якщо захочете приєднатися до цього робочого середовища знову. \",\"dialog.saveToCloud.title\":\"Файли збережено в Creative Cloud\",\"dialog.saveToCloud.detail\":\"Тепер ваш хмарний документ пропонує історію версій, запрошення й спільне редагування, миттєвий доступ на інших пристроях тощо. Ви можете знайти його тут і у своїх програмах Creative Cloud.\",\"input.invalidCharInput\":\"Назва не може містити такі символи: \\\\\\\\ / * ? \\\" | :\",\"input.invalidEmptyInput\":\"{names, select, true {Імена} other {Заголовки}} не можуть бути порожніми\",\"input.nameTooLong\":\"{names, select, true {Імена} other {Заголовки}} можуть містити не більше ніж {maxLength} символів\",\"input.nameEndsWithDot\":\"{names, select, true {Імена} other {Заголовки}} не можуть завершуватися крапкою.\",\"input.weblink.nameRestricted\":\"Вебпосилання не можуть мати такі заголовки: «con», «prn», «aux», «nul», «com», «lpt#»\",\"input.nameRestricted\":\"Ресурси не можуть мати такі назви: con/prn/aux/nul/com#/lpt#\",\"input.weblink.invalidCharInput\":\"Заголовки не можуть складатися лише з пробілів або містити один із таких символів: \\\\\\\\ / * ? \\\" | : < > \",\"input.name.invalidCharInput\":\"Імена не можуть складатися лише з пробілів або містити один із таких символів: \\\\\\\\ / * ? \\\" | : < > \",\"cdpFooter.orphanedArtifactsWarning\":\"Опубліковані посилання, підключені до переміщуваних елементів, залишаться у вихідному проєкті.\",\"cdpFooter.libraryPrivacyWarning\":\"Якщо ви маєте дозвіл на повторне поширення бібліотеки, яку додаєте, учасники проєкту зможуть її переглянути.\",\"toast.beforeOp.error.documentIsOpen\":\"Закрийте {count, plural, =1 {документ} few {{count} документи} other {{count} документів}}, щоб виконати цю дію.\",\"app.type.designSpecs\":\"СПЕЦИФІКАЦІЇ ПРОЕКТУ\",\"app.type.prototype\":\"ПРОТОТИП\",\"app.type.publishedLink\":\"ОПУБЛІКОВАНЕ ПОСИЛАННЯ\",\"popover.header\":\"Співпрацюйте над проектом з іншими і діліться своєю роботою для зворотного зв'язку.\",\"popover.linkout\":\"Докладніше\",\"team.libraries.filter.all\":\"Усі\",\"team.libraries.filter.addedToYourLibraries\":\"Додано до ваших бібліотек\",\"team.libraries.filter.notAdded\":\"Не додано\",\"team.spaces.filter.all\":\"Все\",\"team.spaces.filter.favorited\":\"В улюбленому\",\"team.filter.empty.heading\":\"Проєкти не відповідають вибраному фільтру\",\"team.filter.empty.description1\":\"Не знайдено жодних результатів за запитом \",\"team.filter.empty.description2\":\" у цьому списку. Перевірте правопис або спробуйте використати інші ключові слова.\",\"team.filter.no.match.description\":\"Не вдалося знайти результати в цьому списку. Перевірте правопис або спробуйте критерії фільтрування.\",\"team.filter.filterText\":\"{filter}\",\"team.header.other.teams\":\"Інші робочі середовища\",\"space.empty.heading\":\"Усе в одному місці, всі працюють злагоджено й організовано\",\"space.empty.description\":\"Заповніть цей проєкт робочими файлами та пов'язаними матеріалами. Запрошуйте співавторів приєднуватися й додавати те, над чим вони працюють.\",\"space.empty.canvasHeading\":\"CREATIVE CLOUD CANVAS\",\"space.empty.actionsHeading\":\"ДОДАЙТЕ КОНТЕНТ ДО ВАШОГО ПРОЄКТУ\",\"space.empty.createCanvas\":\"Нове полотно\",\"space.empty.upload\":\"Додати файли\",\"space.empty.createFolder\":\"Нова папка\",\"space.empty.createWeblink\":\"Веб-посилання\",\"space.empty.addResource\":\"Бібліотека\",\"folder.empty.heading\":\"Ця папка порожня.\",\"folder.empty.description\":\"Почніть додавати файли, щоб заповнити його.\",\"folder.discard.heading\":\"Цю папку було видалено.\",\"folder.discard.description\":\"Зв'яжіться з адміністратором, якщо вважаєте, що це помилка, або перегляньте інший вміст.\",\"folder.error.description\":\"Виникла проблема із завантаженням вмісту з цієї папки.\",\"space.empty.section.createACanvas\":\"Створити полотно\",\"tooltip.opensInBrowser\":\"Відкриває в браузері\",\"space.empty.workingFiles\":\"Продовжуйте додавати до цього проєкту\",\"space.empty.canvasPopoverTitle\":\"Спробуйте Creative Cloud Canvas (бета-версія)\",\"space.empty.canvasPopoverContent\":\"Використовуйте полотна, щоб компонувати, візуалізувати й переглядати творчі роботи.\",\"space.error.heading\":\"Не вдалося завантажити проєкт\",\"space.error.description\":\"Виникла проблема із завантаженням вмісту з цього проєкту.\",\"createTeamWizard.createTeam.sidebarHeading\":\"Створити\",\"createTeamWizard.createTeam.sidebarCopy\":\"Створіть робочий простір, щоб зібрати всіх разом та організувати спільну роботу.\",\"createTeamWizard.createTeam.sidebarCopy.adminconsole\":\"Створіть місце, де ваша робоча група зможе співпрацювати й ділитися файлами.\",\"createTeamWizard.createTeam.sidebarLink\":\"Докладніше\",\"createTeamWizard.createTeam.contentHeading\":\"Новий робочий простір\",\"createTeamWizard.createTeam.loading\":\"Створення робочого простору «{name}».\",\"createTeamWizard.inviteMembers.sidebarHeading\":\"Запросіть учасників до робочого простору «{name}».\",\"createTeamWizard.inviteMembers.sidebarCopy\":\"Почніть вводити ім'я чи електронну адресу, щоб запросити учасників зараз, або пропустіть цей крок і запросіть їх пізніше.\",\"createTeamWizard.inviteMembers.loading\":\"Запрошення учасників до робочого простору «{name}».\",\"createTeamWizard.inviteMembers.contentHeading\":\"Запросіть учасників\",\"createTeamWizard.inviteMembers.successToast\":\"Учасників додано до нового робочого простору\",\"createTeamWizard.progress\":\"Крок {current} із {total}\",\"createTeamWizard.skipStep\":\"Пропустити\",\"teamDialog.createTeam.label\":\"Створити\",\"teamDialog.createTeam.infoBox.description\":\"Робоче середовище, яке ви створюєте, працює лише з запрошеннями, і всі додані до нього мають доступ із правом редагування за замовчуванням.\",\"teamDialog.editTeam.label\":\"Редагувати робочий простір\",\"teamDialog.nameSection.placeholder\":\"Дайте назву новому робочому середовищу\",\"teamDialog.nameSection.label\":\"Назва робочого середовища\",\"teamDialog.permissionsSection.label\":\"Хто може редагувати цей робочий простір\",\"teamDialog.permissionsSection.option.onlyInvited\":\"Лише запрошені\",\"teamDialog.descriptionSection.label\":\"Опис робочого простору (необов'язково)\",\"teamDialog.descriptionSection.placeholder\":\"Додайте кілька слів про свій робочий простір\",\"teamsSidebar.noTeams\":\"Немає робочих середовищ\",\"teamsSidebar.newTeamButton\":\"Створити\",\"teamsSidebar.adminTour.title\":\"Нове! Створюйте робочі середовища\",\"teamsSidebar.adminTour.content\":\"Тепер адміністратори можуть створювати робочі середовища в Creative Cloud в Інтернеті, що полегшує організацію спільної роботи.\",\"teamsSidebarTeam.newSpaceButton\":\"Новий проект\",\"teamsSidebarTeam.header.newBadge\":\"СТВОРИТИ\",\"teamsSidebarTeam.header.otherTeams\":\"Від інших робочих середовищ\",\"teamsSidebarTeam.header.teams\":\"РОБОЧІ СЕРЕДОВИЩА\",\"teamsSidebarTeam.header.previewLabel\":\"(Переглянути)\",\"teamsSidebarTeam.header.previewCopy\":\"Робочі середовища й проєкти доступні в приватній бета-версії.\",\"teamsSidebarTeam.header.previewLearnMoreText\":\"Докладніше\",\"teamsSidebarTeam.message.loading\":\"Завантаження...\",\"teamsSidebarTeam.message.noSpaces\":\"На даний момент у вас немає робочих середовищ або проєктів.\",\"teamsSidebarTeam.message.offline\":\"Зв'язок відсутній. Підключіться знову, щоб переглянути свої робочі середовища й проєкти.\",\"teamsSidebarTeam.message.error\":\"Виникла проблема під час завантаження ваших робочих середовищ і проєктів.\",\"teams1up.error.description\":\"Виникла проблема під час завантаження проєктів.\",\"teams1up.error.heading\":\"Не вдалося завантажити проєкти\",\"otherTeams.emptyMessage.header\":\"Не вдається переглянути сторінку робочого середовища\",\"otherTeams.emptyMessage.description1\":\"Вас було видалено або ви залишили останній проєкт за допомогою розділу \",\"otherTeams.emptyMessage.description2\":\" Зв'яжіться з адміністратором, якщо вважаєте, що це помилка.\",\"spaceTour.step0.title\":\"Ваші проєкти тут\",\"spaceTour.step0.content\":\"Проєкти допомагають командам співпрацювати, збирати, упорядковувати та поширювати файли й ресурси.\",\"spaceTour.step1.title\":\"Додайте все необхідне для проєкту\",\"spaceTour.step1.content\":\"Об'єднайте робочі файли, довідкові зображення, ресурси тощо в одному місці.\",\"spaceTour.step2.title\":\"Установіть дозволи і забудьте про них\",\"spaceTour.step2.content\":\"Надайте потрібний доступ співавторам, коли запрошуєте їх, щоб заощадити час і зусилля. Надсилайте пакети лише для перегляду зацікавленим особам, щоб вони мали змогу ознайомитись із ними й надати вам зворотний зв'язок.\",\"error.cantCreateSpace\":\"Сховище робочого середовища заповнене\",\"error.exceedQuota.create.detail.description1\":\"Зараз не можна створити нічого нового. Виберіть \",\"error.exceedQuota.description2\":\" , щоб звільнити місце.\",\"error.exceedQuota.add.detail.description1\":\"Зараз не можна додати нічого нового. Виберіть \",\"error.move.generic\":\"Не вдається перемістити, оскільки сталась якась помилка\",\"error.move.signedOut\":\"Не вдається перемістити, оскільки ви вийшли з системи\",\"error.move.permissionRevoked\":\"Не вдається перемістити, оскільки вас було видалено з цього проєкту.\",\"error.move.deleted\":\"Не вдається перемістити, оскільки хтось видалив цей елемент\",\"error.move.duplicate\":\"Не вдається перемістити, оскільки цей ресурс уже існує в тому розташуванні, куди ви намагалися перемістити\",\"error.copy.generic\":\"Не вдається скопіювати, оскільки сталась якась помилка\",\"error.copy.signedOut\":\"Не вдається скопіювати, оскільки ви вийшли з системи\",\"error.copy.permissionRevoked\":\"Не вдається скопіювати, оскільки вас було видалено з цього проєкту\",\"error.copy.deleted\":\"Не вдається скопіювати, оскільки хтось видалив цей елемент\",\"error.copy.duplicate\":\"Не вдається скопіювати, оскільки цей ресурс уже існує в тому розташуванні, куди ви намагалися скопіювати\",\"checkbox.select\":\"Вибрати\",\"listItem.fileSize\":\"Розмір файлу\",\"facepile.additionalMembers\":\"Додаткові учасники +{count}\",\"facepile.memberName\":\"{name}, учасник\",\"coachmark.information\":\"інформація\",\"toolbar.tools\":\"інструменти\",\"griditem.error.message\":\"Не вдалося отримати\",\"griditem.error.button\":\"Повторити\",\"ats.move.extendedNotification\":\"Ви отримаєте сповіщення, коли переміщення буде завершено.\",\"file.deleted.error.heading\":\"Неможливо {operation} файл\",\"file.deleted.error.description\":\"Неможливо {operation} цей файл, оскільки його було видалено. Відновіть файл із видалених і повторіть спробу або виберіть інше розташування.\",\"file.deleted.rename.error.description\":\"Цей файл неможливо перейменувати, оскільки його було видалено. Виберіть «Перейти до видалених», щоб відновити файл.\"}");

/***/ }),

/***/ "UNi/":
/***/ (function(module, exports) {

/**
 * The base implementation of `_.times` without support for iteratee shorthands
 * or max array length checks.
 *
 * @private
 * @param {number} n The number of times to invoke `iteratee`.
 * @param {Function} iteratee The function invoked per iteration.
 * @returns {Array} Returns the array of results.
 */
function baseTimes(n, iteratee) {
  var index = -1,
      result = Array(n);

  while (++index < n) {
    result[index] = iteratee(index);
  }

  return result;
}

module.exports = baseTimes;

/***/ }),

/***/ "UO39":
/***/ (function(module, exports) {

module.exports = function (done, value) {
  return {
    value: value,
    done: !!done
  };
};

/***/ }),

/***/ "UPFO":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("path", {
  d: "M15 27a12 12 0 0 1 9.529-11.743A11.557 11.557 0 0 0 25.388 11c0-5.547-2.942-8.647-7.387-8.647s-7.47 3.222-7.47 8.647a11.874 11.874 0 0 0 2.8 7.329 1.539 1.539 0 0 1 .392.993v2.214a1.528 1.528 0 0 1-1.333 1.542c-8.931.777-10.326 6.886-10.326 9.3 0 .268.031 1.321.051 1.585h15.122A11.933 11.933 0 0 1 15 27z"
}), React.createElement("path", {
  d: "M27 18.1a8.9 8.9 0 1 0 8.9 8.9 8.9 8.9 0 0 0-8.9-8.9zm5 9.4a.5.5 0 0 1-.5.5H28v3.5a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5V28h-3.5a.5.5 0 0 1-.5-.5v-1a.5.5 0 0 1 .5-.5H26v-3.5a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 .5.5V26h3.5a.5.5 0 0 1 .5.5z"
}));

/***/ }),

/***/ "URgk":
/***/ (function(module, exports, __webpack_require__) {

/* WEBPACK VAR INJECTION */(function(global) {var scope = typeof global !== "undefined" && global || typeof self !== "undefined" && self || window;
var apply = Function.prototype.apply; // DOM APIs, for completeness

exports.setTimeout = function () {
  return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);
};

exports.setInterval = function () {
  return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);
};

exports.clearTimeout = exports.clearInterval = function (timeout) {
  if (timeout) {
    timeout.close();
  }
};

function Timeout(id, clearFn) {
  this._id = id;
  this._clearFn = clearFn;
}

Timeout.prototype.unref = Timeout.prototype.ref = function () {};

Timeout.prototype.close = function () {
  this._clearFn.call(scope, this._id);
}; // Does not start the time, just sets up the members needed.


exports.enroll = function (item, msecs) {
  clearTimeout(item._idleTimeoutId);
  item._idleTimeout = msecs;
};

exports.unenroll = function (item) {
  clearTimeout(item._idleTimeoutId);
  item._idleTimeout = -1;
};

exports._unrefActive = exports.active = function (item) {
  clearTimeout(item._idleTimeoutId);
  var msecs = item._idleTimeout;

  if (msecs >= 0) {
    item._idleTimeoutId = setTimeout(function onTimeout() {
      if (item._onTimeout) item._onTimeout();
    }, msecs);
  }
}; // setimmediate attaches itself to the global object


__webpack_require__("YBdB"); // On some exotic environments, it's not clear which object `setimmediate` was
// able to install onto.  Search each possibility in the same order as the
// `setimmediate` library.


exports.setImmediate = typeof self !== "undefined" && self.setImmediate || typeof global !== "undefined" && global.setImmediate || this && this.setImmediate;
exports.clearImmediate = typeof self !== "undefined" && self.clearImmediate || typeof global !== "undefined" && global.clearImmediate || this && this.clearImmediate;
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("yLpj")))

/***/ }),

/***/ "UTaQ":
/***/ (function(module) {

module.exports = JSON.parse("{\"Clear search\":\"검색 지우기\"}");

/***/ }),

/***/ "UWVS":
/***/ (function(module, exports, __webpack_require__) {

/* WEBPACK VAR INJECTION */(function(Buffer) {var xor = __webpack_require__("jIre");

function getBlock(self) {
  self._prev = self._cipher.encryptBlock(self._prev);
  return self._prev;
}

exports.encrypt = function (self, chunk) {
  while (self._cache.length < chunk.length) {
    self._cache = Buffer.concat([self._cache, getBlock(self)]);
  }

  var pad = self._cache.slice(0, chunk.length);

  self._cache = self._cache.slice(chunk.length);
  return xor(chunk, pad);
};
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("HDXh").Buffer))

/***/ }),

/***/ "UWiX":
/***/ (function(module, exports, __webpack_require__) {

var store = __webpack_require__("29s/")('wks');

var uid = __webpack_require__("YqAc");

var Symbol = __webpack_require__("5T2Y").Symbol;

var USE_SYMBOL = typeof Symbol == 'function';

var $exports = module.exports = function (name) {
  return store[name] || (store[name] = USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));
};

$exports.store = store;

/***/ }),

/***/ "UaZ8":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXPORTS
__webpack_require__.d(__webpack_exports__, "a", function() { return /* reexport */ es_ColumnSizer_ColumnSizer; });
__webpack_require__.d(__webpack_exports__, "b", function() { return /* reexport */ es_Grid_Grid; });
__webpack_require__.d(__webpack_exports__, "c", function() { return /* reexport */ es_InfiniteLoader_InfiniteLoader; });
__webpack_require__.d(__webpack_exports__, "d", function() { return /* reexport */ es_List_List; });

// UNUSED EXPORTS: ArrowKeyStepper, AutoSizer, CellMeasurer, CellMeasurerCache, Collection, accessibilityOverscanIndicesGetter, defaultCellRangeRenderer, defaultOverscanIndicesGetter, createMasonryCellPositioner, Masonry, MultiGrid, ScrollSync, createTableMultiSort, defaultTableCellDataGetter, defaultTableCellRenderer, defaultTableHeaderRenderer, defaultTableHeaderRowRenderer, defaultTableRowRenderer, Table, Column, SortDirection, SortIndicator, WindowScroller

// EXTERNAL MODULE: ./node_modules/babel-runtime/core-js/object/get-prototype-of.js
var get_prototype_of = __webpack_require__("Yz+Y");
var get_prototype_of_default = /*#__PURE__*/__webpack_require__.n(get_prototype_of);

// EXTERNAL MODULE: ./node_modules/babel-runtime/helpers/classCallCheck.js
var classCallCheck = __webpack_require__("iCc5");
var classCallCheck_default = /*#__PURE__*/__webpack_require__.n(classCallCheck);

// EXTERNAL MODULE: ./node_modules/babel-runtime/helpers/createClass.js
var createClass = __webpack_require__("V7oC");
var createClass_default = /*#__PURE__*/__webpack_require__.n(createClass);

// EXTERNAL MODULE: ./node_modules/babel-runtime/helpers/possibleConstructorReturn.js
var possibleConstructorReturn = __webpack_require__("FYw3");
var possibleConstructorReturn_default = /*#__PURE__*/__webpack_require__.n(possibleConstructorReturn);

// EXTERNAL MODULE: ./node_modules/babel-runtime/helpers/inherits.js
var inherits = __webpack_require__("mRg0");
var inherits_default = /*#__PURE__*/__webpack_require__.n(inherits);

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__("q1tI");

// EXTERNAL MODULE: ./node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js
var react_lifecycles_compat_es = __webpack_require__("VCL8");

// EXTERNAL MODULE: ./node_modules/babel-runtime/core-js/object/assign.js
var object_assign = __webpack_require__("P2sY");
var assign_default = /*#__PURE__*/__webpack_require__.n(object_assign);

// EXTERNAL MODULE: ./node_modules/babel-runtime/helpers/extends.js
var helpers_extends = __webpack_require__("QbLZ");
var extends_default = /*#__PURE__*/__webpack_require__.n(helpers_extends);

// EXTERNAL MODULE: ./node_modules/clsx/dist/clsx.m.js
var clsx_m = __webpack_require__("iuhU");

// CONCATENATED MODULE: ./node_modules/@adobe/react-virtualized/dist/es/Grid/utils/calculateSizeAndPositionDataAndUpdateScrollOffset.js
function calculateSizeAndPositionDataAndUpdateScrollOffset(_ref) {
  var cellCount = _ref.cellCount,
      cellSize = _ref.cellSize,
      computeMetadataCallback = _ref.computeMetadataCallback,
      computeMetadataCallbackProps = _ref.computeMetadataCallbackProps,
      nextCellsCount = _ref.nextCellsCount,
      nextCellSize = _ref.nextCellSize,
      nextScrollToIndex = _ref.nextScrollToIndex,
      scrollToIndex = _ref.scrollToIndex,
      updateScrollOffsetForScrollToIndex = _ref.updateScrollOffsetForScrollToIndex; // Don't compare cell sizes if they are functions because inline functions would cause infinite loops.
  // In that event users should use the manual recompute methods to inform of changes.

  if (cellCount !== nextCellsCount || (typeof cellSize === 'number' || typeof nextCellSize === 'number') && cellSize !== nextCellSize) {
    computeMetadataCallback(computeMetadataCallbackProps); // Updated cell metadata may have hidden the previous scrolled-to item.
    // In this case we should also update the scrollTop to ensure it stays visible.

    if (scrollToIndex >= 0 && scrollToIndex === nextScrollToIndex) {
      updateScrollOffsetForScrollToIndex();
    }
  }
}
/**
 * Helper method that determines when to recalculate row or column metadata.
 */
// EXTERNAL MODULE: ./node_modules/babel-runtime/helpers/objectWithoutProperties.js
var objectWithoutProperties = __webpack_require__("jo6Y");
var objectWithoutProperties_default = /*#__PURE__*/__webpack_require__.n(objectWithoutProperties);

// EXTERNAL MODULE: ./node_modules/prop-types/index.js
var prop_types = __webpack_require__("17x9");

// CONCATENATED MODULE: ./node_modules/@adobe/react-virtualized/dist/es/Grid/types.js


var bpfrpt_proptype_CellPosition =  true ? null : undefined;
var bpfrpt_proptype_CellRendererParams =  true ? null : undefined;
var bpfrpt_proptype_CellRenderer =  true ? null : undefined;
var bpfrpt_proptype_CellCache =  true ? null : undefined;
var bpfrpt_proptype_StyleCache =  true ? null : undefined;
var bpfrpt_proptype_CellRangeRendererParams =  true ? null : undefined;
var bpfrpt_proptype_CellRangeRenderer =  true ? null : undefined;
var bpfrpt_proptype_CellSizeGetter =  true ? null : undefined;
var bpfrpt_proptype_CellSize =  true ? null : undefined;
var bpfrpt_proptype_NoContentRenderer =  true ? null : undefined;
var bpfrpt_proptype_Scroll =  true ? null : undefined;
var bpfrpt_proptype_ScrollbarPresenceChange =  true ? null : undefined;
var bpfrpt_proptype_RenderedSection =  true ? null : undefined;
var bpfrpt_proptype_OverscanIndicesGetterParams =  true ? null : undefined;
var bpfrpt_proptype_OverscanIndices =  true ? null : undefined;
var bpfrpt_proptype_OverscanIndicesGetter =  true ? null : undefined;
var bpfrpt_proptype_Alignment =  true ? null : undefined;
var bpfrpt_proptype_VisibleCellRange =  true ? null : undefined;



















// CONCATENATED MODULE: ./node_modules/@adobe/react-virtualized/dist/es/Grid/utils/CellSizeAndPositionManager.js


/**
 * Just-in-time calculates and caches size and position information for a collection of cells.
 */

var CellSizeAndPositionManager_CellSizeAndPositionManager = function () {
  // Used in deferred mode to track which cells have been queued for measurement.
  // Cache of size and position data for cells, mapped by cell index.
  // Note that invalid values may exist in this map so only rely on cells up to this._lastMeasuredIndex
  function CellSizeAndPositionManager(_ref) {
    var cellCount = _ref.cellCount,
        cellSizeGetter = _ref.cellSizeGetter,
        estimatedCellSize = _ref.estimatedCellSize;

    classCallCheck_default()(this, CellSizeAndPositionManager);

    this._cellSizeAndPositionData = {};
    this._lastMeasuredIndex = -1;
    this._lastBatchedIndex = -1;
    this._cellSizeGetter = cellSizeGetter;
    this._cellCount = cellCount;
    this._estimatedCellSize = estimatedCellSize;
  } // Measurements for cells up to this index can be trusted; cells afterward should be estimated.


  createClass_default()(CellSizeAndPositionManager, [{
    key: 'areOffsetsAdjusted',
    value: function areOffsetsAdjusted() {
      return false;
    }
  }, {
    key: 'configure',
    value: function configure(_ref2) {
      var cellCount = _ref2.cellCount,
          estimatedCellSize = _ref2.estimatedCellSize,
          cellSizeGetter = _ref2.cellSizeGetter;
      this._cellCount = cellCount;
      this._estimatedCellSize = estimatedCellSize;
      this._cellSizeGetter = cellSizeGetter;
    }
  }, {
    key: 'getCellCount',
    value: function getCellCount() {
      return this._cellCount;
    }
  }, {
    key: 'getEstimatedCellSize',
    value: function getEstimatedCellSize() {
      return this._estimatedCellSize;
    }
  }, {
    key: 'getLastMeasuredIndex',
    value: function getLastMeasuredIndex() {
      return this._lastMeasuredIndex;
    }
  }, {
    key: 'getOffsetAdjustment',
    value: function getOffsetAdjustment() {
      return 0;
    }
    /**
     * This method returns the size and position for the cell at the specified index.
     * It just-in-time calculates (or used cached values) for cells leading up to the index.
     */

  }, {
    key: 'getSizeAndPositionOfCell',
    value: function getSizeAndPositionOfCell(index) {
      if (index < 0 || index >= this._cellCount) {
        throw Error('Requested index ' + index + ' is outside of range 0..' + this._cellCount);
      }

      if (index > this._lastMeasuredIndex) {
        var lastMeasuredCellSizeAndPosition = this.getSizeAndPositionOfLastMeasuredCell();

        var _offset = lastMeasuredCellSizeAndPosition.offset + lastMeasuredCellSizeAndPosition.size;

        for (var i = this._lastMeasuredIndex + 1; i <= index; i++) {
          var _size = this._cellSizeGetter({
            index: i
          }); // undefined or NaN probably means a logic error in the size getter.
          // null means we're using CellMeasurer and haven't yet measured a given index.


          if (_size === undefined || isNaN(_size)) {
            throw Error('Invalid size returned for cell ' + i + ' of value ' + _size);
          } else if (_size === null) {
            this._cellSizeAndPositionData[i] = {
              offset: _offset,
              size: 0
            };
            this._lastBatchedIndex = index;
          } else {
            this._cellSizeAndPositionData[i] = {
              offset: _offset,
              size: _size
            };
            _offset += _size;
            this._lastMeasuredIndex = index;
          }
        }
      }

      return this._cellSizeAndPositionData[index];
    }
  }, {
    key: 'getSizeAndPositionOfLastMeasuredCell',
    value: function getSizeAndPositionOfLastMeasuredCell() {
      return this._lastMeasuredIndex >= 0 ? this._cellSizeAndPositionData[this._lastMeasuredIndex] : {
        offset: 0,
        size: 0
      };
    }
    /**
     * Total size of all cells being measured.
     * This value will be completely estimated initially.
     * As cells are measured, the estimate will be updated.
     */

  }, {
    key: 'getTotalSize',
    value: function getTotalSize() {
      var lastMeasuredCellSizeAndPosition = this.getSizeAndPositionOfLastMeasuredCell();
      var totalSizeOfMeasuredCells = lastMeasuredCellSizeAndPosition.offset + lastMeasuredCellSizeAndPosition.size;
      var numUnmeasuredCells = this._cellCount - this._lastMeasuredIndex - 1;
      var totalSizeOfUnmeasuredCells = numUnmeasuredCells * this._estimatedCellSize;
      return totalSizeOfMeasuredCells + totalSizeOfUnmeasuredCells;
    }
    /**
     * Determines a new offset that ensures a certain cell is visible, given the current offset.
     * If the cell is already visible then the current offset will be returned.
     * If the current offset is too great or small, it will be adjusted just enough to ensure the specified index is visible.
     *
     * @param align Desired alignment within container; one of "auto" (default), "start", or "end"
     * @param containerSize Size (width or height) of the container viewport
     * @param currentOffset Container's current (x or y) offset
     * @param totalSize Total size (width or height) of all cells
     * @return Offset to use to ensure the specified cell is visible
     */

  }, {
    key: 'getUpdatedOffsetForIndex',
    value: function getUpdatedOffsetForIndex(_ref3) {
      var _ref3$align = _ref3.align,
          align = _ref3$align === undefined ? 'auto' : _ref3$align,
          containerSize = _ref3.containerSize,
          currentOffset = _ref3.currentOffset,
          targetIndex = _ref3.targetIndex;

      if (containerSize <= 0) {
        return 0;
      }

      var datum = this.getSizeAndPositionOfCell(targetIndex);
      var maxOffset = datum.offset;
      var minOffset = maxOffset - containerSize + datum.size;
      var idealOffset = void 0;

      switch (align) {
        case 'start':
          idealOffset = maxOffset;
          break;

        case 'end':
          idealOffset = minOffset;
          break;

        case 'center':
          idealOffset = maxOffset - (containerSize - datum.size) / 2;
          break;

        default:
          idealOffset = Math.max(minOffset, Math.min(maxOffset, currentOffset));
          break;
      }

      var totalSize = this.getTotalSize();
      return Math.max(0, Math.min(totalSize - containerSize, idealOffset));
    }
  }, {
    key: 'getVisibleCellRange',
    value: function getVisibleCellRange(params) {
      var containerSize = params.containerSize,
          offset = params.offset;
      var totalSize = this.getTotalSize();

      if (totalSize === 0) {
        return {};
      }

      var maxOffset = offset + containerSize;

      var start = this._findNearestCell(offset);

      var datum = this.getSizeAndPositionOfCell(start);
      offset = datum.offset + datum.size;
      var stop = start;

      while (offset < maxOffset && stop < this._cellCount - 1) {
        stop++;
        offset += this.getSizeAndPositionOfCell(stop).size;
      }

      return {
        start: start,
        stop: stop
      };
    }
    /**
     * Clear all cached values for cells after the specified index.
     * This method should be called for any cell that has changed its size.
     * It will not immediately perform any calculations; they'll be performed the next time getSizeAndPositionOfCell() is called.
     */

  }, {
    key: 'resetCell',
    value: function resetCell(index) {
      this._lastMeasuredIndex = Math.min(this._lastMeasuredIndex, index - 1);
    }
  }, {
    key: '_binarySearch',
    value: function _binarySearch(high, low, offset) {
      while (low <= high) {
        var middle = low + Math.floor((high - low) / 2);
        var _currentOffset = this.getSizeAndPositionOfCell(middle).offset;

        if (_currentOffset === offset) {
          return middle;
        } else if (_currentOffset < offset) {
          low = middle + 1;
        } else if (_currentOffset > offset) {
          high = middle - 1;
        }
      }

      if (low > 0) {
        return low - 1;
      } else {
        return 0;
      }
    }
  }, {
    key: '_exponentialSearch',
    value: function _exponentialSearch(index, offset) {
      var interval = 1;

      while (index < this._cellCount && this.getSizeAndPositionOfCell(index).offset < offset) {
        index += interval;
        interval *= 2;
      }

      return this._binarySearch(Math.min(index, this._cellCount - 1), Math.floor(index / 2), offset);
    }
    /**
     * Searches for the cell (index) nearest the specified offset.
     *
     * If no exact match is found the next lowest cell index will be returned.
     * This allows partially visible cells (with offsets just before/above the fold) to be visible.
     */

  }, {
    key: '_findNearestCell',
    value: function _findNearestCell(offset) {
      if (isNaN(offset)) {
        throw Error('Invalid offset ' + offset + ' specified');
      } // Our search algorithms find the nearest match at or below the specified offset.
      // So make sure the offset is at least 0 or no match will be found.


      offset = Math.max(0, offset);
      var lastMeasuredCellSizeAndPosition = this.getSizeAndPositionOfLastMeasuredCell();
      var lastMeasuredIndex = Math.max(0, this._lastMeasuredIndex);

      if (lastMeasuredCellSizeAndPosition.offset >= offset) {
        // If we've already measured cells within this range just use a binary search as it's faster.
        return this._binarySearch(lastMeasuredIndex, 0, offset);
      } else {
        // If we haven't yet measured this high, fallback to an exponential search with an inner binary search.
        // The exponential search avoids pre-computing sizes for the full set of cells as a binary search would.
        // The overall complexity for this approach is O(log n).
        return this._exponentialSearch(lastMeasuredIndex, offset);
      }
    }
  }]);

  return CellSizeAndPositionManager;
}();

/* harmony default export */ var utils_CellSizeAndPositionManager = (CellSizeAndPositionManager_CellSizeAndPositionManager);



// CONCATENATED MODULE: ./node_modules/@adobe/react-virtualized/dist/es/Grid/utils/maxElementSize.js
var DEFAULT_MAX_ELEMENT_SIZE = 1500000;
var CHROME_MAX_ELEMENT_SIZE = 1.67771e7;

var isBrowser = function isBrowser() {
  return typeof window !== 'undefined';
};

var isChrome = function isChrome() {
  return !!window.chrome && !!window.chrome.webstore;
};

var getMaxElementSize = function getMaxElementSize() {
  if (isBrowser()) {
    if (isChrome()) {
      return CHROME_MAX_ELEMENT_SIZE;
    }
  }

  return DEFAULT_MAX_ELEMENT_SIZE;
};
// CONCATENATED MODULE: ./node_modules/@adobe/react-virtualized/dist/es/Grid/utils/ScalingCellSizeAndPositionManager.js





/**
 * Browsers have scroll offset limitations (eg Chrome stops scrolling at ~33.5M pixels where as Edge tops out at ~1.5M pixels).
 * After a certain position, the browser won't allow the user to scroll further (even via JavaScript scroll offset adjustments).
 * This util picks a lower ceiling for max size and artificially adjusts positions within to make it transparent for users.
 */

/**
 * Extends CellSizeAndPositionManager and adds scaling behavior for lists that are too large to fit within a browser's native limits.
 */

var ScalingCellSizeAndPositionManager_ScalingCellSizeAndPositionManager = function () {
  function ScalingCellSizeAndPositionManager(_ref) {
    var _ref$maxScrollSize = _ref.maxScrollSize,
        maxScrollSize = _ref$maxScrollSize === undefined ? getMaxElementSize() : _ref$maxScrollSize,
        params = objectWithoutProperties_default()(_ref, ['maxScrollSize']);

    classCallCheck_default()(this, ScalingCellSizeAndPositionManager); // Favor composition over inheritance to simplify IE10 support


    this._cellSizeAndPositionManager = new utils_CellSizeAndPositionManager(params);
    this._maxScrollSize = maxScrollSize;
  }

  createClass_default()(ScalingCellSizeAndPositionManager, [{
    key: 'areOffsetsAdjusted',
    value: function areOffsetsAdjusted() {
      return this._cellSizeAndPositionManager.getTotalSize() > this._maxScrollSize;
    }
  }, {
    key: 'configure',
    value: function configure(params) {
      this._cellSizeAndPositionManager.configure(params);
    }
  }, {
    key: 'getCellCount',
    value: function getCellCount() {
      return this._cellSizeAndPositionManager.getCellCount();
    }
  }, {
    key: 'getEstimatedCellSize',
    value: function getEstimatedCellSize() {
      return this._cellSizeAndPositionManager.getEstimatedCellSize();
    }
  }, {
    key: 'getLastMeasuredIndex',
    value: function getLastMeasuredIndex() {
      return this._cellSizeAndPositionManager.getLastMeasuredIndex();
    }
    /**
     * Number of pixels a cell at the given position (offset) should be shifted in order to fit within the scaled container.
     * The offset passed to this function is scaled (safe) as well.
     */

  }, {
    key: 'getOffsetAdjustment',
    value: function getOffsetAdjustment(_ref2) {
      var containerSize = _ref2.containerSize,
          offset = _ref2.offset;

      var totalSize = this._cellSizeAndPositionManager.getTotalSize();

      var safeTotalSize = this.getTotalSize();

      var offsetPercentage = this._getOffsetPercentage({
        containerSize: containerSize,
        offset: offset,
        totalSize: safeTotalSize
      });

      return Math.round(offsetPercentage * (safeTotalSize - totalSize));
    }
  }, {
    key: 'getSizeAndPositionOfCell',
    value: function getSizeAndPositionOfCell(index) {
      return this._cellSizeAndPositionManager.getSizeAndPositionOfCell(index);
    }
  }, {
    key: 'getSizeAndPositionOfLastMeasuredCell',
    value: function getSizeAndPositionOfLastMeasuredCell() {
      return this._cellSizeAndPositionManager.getSizeAndPositionOfLastMeasuredCell();
    }
    /** See CellSizeAndPositionManager#getTotalSize */

  }, {
    key: 'getTotalSize',
    value: function getTotalSize() {
      return Math.min(this._maxScrollSize, this._cellSizeAndPositionManager.getTotalSize());
    }
    /** See CellSizeAndPositionManager#getUpdatedOffsetForIndex */

  }, {
    key: 'getUpdatedOffsetForIndex',
    value: function getUpdatedOffsetForIndex(_ref3) {
      var _ref3$align = _ref3.align,
          align = _ref3$align === undefined ? 'auto' : _ref3$align,
          containerSize = _ref3.containerSize,
          currentOffset = _ref3.currentOffset,
          targetIndex = _ref3.targetIndex;
      currentOffset = this._safeOffsetToOffset({
        containerSize: containerSize,
        offset: currentOffset
      });

      var offset = this._cellSizeAndPositionManager.getUpdatedOffsetForIndex({
        align: align,
        containerSize: containerSize,
        currentOffset: currentOffset,
        targetIndex: targetIndex
      });

      return this._offsetToSafeOffset({
        containerSize: containerSize,
        offset: offset
      });
    }
    /** See CellSizeAndPositionManager#getVisibleCellRange */

  }, {
    key: 'getVisibleCellRange',
    value: function getVisibleCellRange(_ref4) {
      var containerSize = _ref4.containerSize,
          offset = _ref4.offset;
      offset = this._safeOffsetToOffset({
        containerSize: containerSize,
        offset: offset
      });
      return this._cellSizeAndPositionManager.getVisibleCellRange({
        containerSize: containerSize,
        offset: offset
      });
    }
  }, {
    key: 'resetCell',
    value: function resetCell(index) {
      this._cellSizeAndPositionManager.resetCell(index);
    }
  }, {
    key: '_getOffsetPercentage',
    value: function _getOffsetPercentage(_ref5) {
      var containerSize = _ref5.containerSize,
          offset = _ref5.offset,
          totalSize = _ref5.totalSize;
      return totalSize <= containerSize ? 0 : offset / (totalSize - containerSize);
    }
  }, {
    key: '_offsetToSafeOffset',
    value: function _offsetToSafeOffset(_ref6) {
      var containerSize = _ref6.containerSize,
          offset = _ref6.offset;

      var totalSize = this._cellSizeAndPositionManager.getTotalSize();

      var safeTotalSize = this.getTotalSize();

      if (totalSize === safeTotalSize) {
        return offset;
      } else {
        var offsetPercentage = this._getOffsetPercentage({
          containerSize: containerSize,
          offset: offset,
          totalSize: totalSize
        });

        return Math.round(offsetPercentage * (safeTotalSize - containerSize));
      }
    }
  }, {
    key: '_safeOffsetToOffset',
    value: function _safeOffsetToOffset(_ref7) {
      var containerSize = _ref7.containerSize,
          offset = _ref7.offset;

      var totalSize = this._cellSizeAndPositionManager.getTotalSize();

      var safeTotalSize = this.getTotalSize();

      if (totalSize === safeTotalSize) {
        return offset;
      } else {
        var offsetPercentage = this._getOffsetPercentage({
          containerSize: containerSize,
          offset: offset,
          totalSize: safeTotalSize
        });

        return Math.round(offsetPercentage * (totalSize - containerSize));
      }
    }
  }]);

  return ScalingCellSizeAndPositionManager;
}();

/* harmony default export */ var utils_ScalingCellSizeAndPositionManager = (ScalingCellSizeAndPositionManager_ScalingCellSizeAndPositionManager);



// EXTERNAL MODULE: ./node_modules/babel-runtime/core-js/object/keys.js
var object_keys = __webpack_require__("GQeE");
var keys_default = /*#__PURE__*/__webpack_require__.n(object_keys);

// CONCATENATED MODULE: ./node_modules/@adobe/react-virtualized/dist/es/utils/createCallbackMemoizer.js

/**
 * Helper utility that updates the specified callback whenever any of the specified indices have changed.
 */

function createCallbackMemoizer() {
  var requireAllKeys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
  var cachedIndices = {};
  return function (_ref) {
    var callback = _ref.callback,
        indices = _ref.indices;

    var keys = keys_default()(indices);

    var allInitialized = !requireAllKeys || keys.every(function (key) {
      var value = indices[key];
      return Array.isArray(value) ? value.length > 0 : value >= 0;
    });
    var indexChanged = keys.length !== keys_default()(cachedIndices).length || keys.some(function (key) {
      var cachedValue = cachedIndices[key];
      var value = indices[key];
      return Array.isArray(value) ? cachedValue.join(',') !== value.join(',') : cachedValue !== value;
    });
    cachedIndices = indices;

    if (allInitialized && indexChanged) {
      callback(indices);
    }
  };
}
// CONCATENATED MODULE: ./node_modules/@adobe/react-virtualized/dist/es/Grid/defaultOverscanIndicesGetter.js
var SCROLL_DIRECTION_BACKWARD = -1;
var SCROLL_DIRECTION_FORWARD = 1;
var SCROLL_DIRECTION_HORIZONTAL = 'horizontal';
var SCROLL_DIRECTION_VERTICAL = 'vertical';
/**
 * Calculates the number of cells to overscan before and after a specified range.
 * This function ensures that overscanning doesn't exceed the available cells.
 */

function defaultOverscanIndicesGetter(_ref) {
  var cellCount = _ref.cellCount,
      overscanCellsCount = _ref.overscanCellsCount,
      scrollDirection = _ref.scrollDirection,
      startIndex = _ref.startIndex,
      stopIndex = _ref.stopIndex; // Making buffer cells in both directions

  return {
    overscanStartIndex: Math.max(0, startIndex - overscanCellsCount),
    overscanStopIndex: Math.min(cellCount - 1, stopIndex + overscanCellsCount)
  };
}


// CONCATENATED MODULE: ./node_modules/@adobe/react-virtualized/dist/es/Grid/utils/updateScrollIndexHelper.js

/**
 * Helper function that determines when to update scroll offsets to ensure that a scroll-to-index remains visible.
 * This function also ensures that the scroll ofset isn't past the last column/row of cells.
 */

function updateScrollIndexHelper(_ref) {
  var cellSize = _ref.cellSize,
      cellSizeAndPositionManager = _ref.cellSizeAndPositionManager,
      previousCellsCount = _ref.previousCellsCount,
      previousCellSize = _ref.previousCellSize,
      previousScrollToAlignment = _ref.previousScrollToAlignment,
      previousScrollToIndex = _ref.previousScrollToIndex,
      previousSize = _ref.previousSize,
      scrollOffset = _ref.scrollOffset,
      scrollToAlignment = _ref.scrollToAlignment,
      scrollToIndex = _ref.scrollToIndex,
      size = _ref.size,
      sizeJustIncreasedFromZero = _ref.sizeJustIncreasedFromZero,
      updateScrollIndexCallback = _ref.updateScrollIndexCallback;
  var cellCount = cellSizeAndPositionManager.getCellCount();
  var hasScrollToIndex = scrollToIndex >= 0 && scrollToIndex < cellCount;
  var sizeHasChanged = size !== previousSize || sizeJustIncreasedFromZero || !previousCellSize || typeof cellSize === 'number' && cellSize !== previousCellSize; // If we have a new scroll target OR if height/row-height has changed,
  // We should ensure that the scroll target is visible.

  if (hasScrollToIndex && (sizeHasChanged || scrollToAlignment !== previousScrollToAlignment || scrollToIndex !== previousScrollToIndex)) {
    updateScrollIndexCallback(scrollToIndex); // If we don't have a selected item but list size or number of children have decreased,
    // Make sure we aren't scrolled too far past the current content.
  } else if (!hasScrollToIndex && cellCount > 0 && (size < previousSize || cellCount < previousCellsCount)) {
    // We need to ensure that the current scroll offset is still within the collection's range.
    // To do this, we don't need to measure everything; CellMeasurer would perform poorly.
    // Just check to make sure we're still okay.
    // Only adjust the scroll position if we've scrolled below the last set of rows.
    if (scrollOffset > cellSizeAndPositionManager.getTotalSize() - size) {
      updateScrollIndexCallback(cellCount - 1);
    }
  }
}


// EXTERNAL MODULE: ./node_modules/babel-runtime/core-js/symbol.js
var symbol = __webpack_require__("+JPL");
var symbol_default = /*#__PURE__*/__webpack_require__.n(symbol);

// EXTERNAL MODULE: ./node_modules/babel-runtime/core-js/map.js
var map = __webpack_require__("ODRq");
var map_default = /*#__PURE__*/__webpack_require__.n(map);

// CONCATENATED MODULE: ./node_modules/@adobe/react-virtualized/dist/es/Grid/defaultCellRangeRenderer.js






function foreachKey(rowStartIndex, rowStopIndex, columnStartIndex, columnStopIndex, callback) {
  for (var rowIndex = rowStartIndex; rowIndex <= rowStopIndex; rowIndex++) {
    for (var columnIndex = columnStartIndex; columnIndex <= columnStopIndex; columnIndex++) {
      var key = getKey(rowIndex, columnIndex);
      callback(key);
    }
  }
}

var defaultCellRangeRenderer_ReusableKeyCache = function () {
  function ReusableKeyCache() {
    classCallCheck_default()(this, ReusableKeyCache);

    this.lastMap = new map_default.a();
  }

  createClass_default()(ReusableKeyCache, [{
    key: 'getReusableKeyMap',
    value: function getReusableKeyMap(rowStartIndex, rowStopIndex, columnStartIndex, columnStopIndex) {
      var newMap = new map_default.a();
      var usedKeys = [];
      var lastMap = this.lastMap;
      var nextKey = 1;
      foreachKey(rowStartIndex, rowStopIndex, columnStartIndex, columnStopIndex, function (key) {
        var lastKey = lastMap.get(key);

        if (lastKey != null) {
          newMap.set(key, lastKey);
          usedKeys[lastKey] = true;
        }
      });
      foreachKey(rowStartIndex, rowStopIndex, columnStartIndex, columnStopIndex, function (key) {
        var newKey = newMap.get(key);

        if (newKey == null) {
          // find new key for this
          while (newKey == null) {
            if (!usedKeys[nextKey]) {
              newKey = nextKey;
            }

            nextKey++;
          }
        }

        newMap.set(key, newKey);
        usedKeys[newKey] = true;
      });
      this.lastMap = newMap;
      return newMap;
    }
  }], [{
    key: 'getReusableKeyCache',
    value: function getReusableKeyCache(cacheOnThisObject) {
      var reusableKeyCache = cacheOnThisObject[ReusableKeyCache.symbol];

      if (reusableKeyCache == null) {
        reusableKeyCache = cacheOnThisObject[ReusableKeyCache.symbol] = new ReusableKeyCache();
      }

      return reusableKeyCache;
    }
  }]);

  return ReusableKeyCache;
}();

defaultCellRangeRenderer_ReusableKeyCache.symbol = symbol_default()('ReusableKeyCache_symbol');

function getKey(rowIndex, columnIndex) {
  return rowIndex + '-' + columnIndex;
}
/**
 * Default implementation of cellRangeRenderer used by Grid.
 * This renderer supports cell-caching while the user is scrolling.
 */


function defaultCellRangeRenderer(_ref) {
  var cellCache = _ref.cellCache,
      cellRenderer = _ref.cellRenderer,
      columnSizeAndPositionManager = _ref.columnSizeAndPositionManager,
      columnStartIndex = _ref.columnStartIndex,
      columnStopIndex = _ref.columnStopIndex,
      deferredMeasurementCache = _ref.deferredMeasurementCache,
      horizontalOffsetAdjustment = _ref.horizontalOffsetAdjustment,
      isScrolling = _ref.isScrolling,
      isScrollingOptOut = _ref.isScrollingOptOut,
      parent = _ref.parent,
      rowSizeAndPositionManager = _ref.rowSizeAndPositionManager,
      rowStartIndex = _ref.rowStartIndex,
      rowStopIndex = _ref.rowStopIndex,
      styleCache = _ref.styleCache,
      verticalOffsetAdjustment = _ref.verticalOffsetAdjustment,
      visibleColumnIndices = _ref.visibleColumnIndices,
      visibleRowIndices = _ref.visibleRowIndices,
      overscanCellCount = _ref.overscanCellCount;
  var renderedCells = [];
  var reusableKeyCache = defaultCellRangeRenderer_ReusableKeyCache.getReusableKeyCache(parent);
  var reusableKeyMap = reusableKeyCache.getReusableKeyMap(rowStartIndex, rowStopIndex, columnStartIndex, columnStopIndex); // Browsers have native size limits for elements (eg Chrome 33M pixels, IE 1.5M pixes).
  // User cannot scroll beyond these size limitations.
  // In order to work around this, ScalingCellSizeAndPositionManager compresses offsets.
  // We should never cache styles for compressed offsets though as this can lead to bugs.
  // See issue #576 for more.

  var areOffsetsAdjusted = columnSizeAndPositionManager.areOffsetsAdjusted() || rowSizeAndPositionManager.areOffsetsAdjusted();
  var canCacheStyle = !isScrolling && !areOffsetsAdjusted;
  var dataOrder = overscanCellCount;

  for (var rowIndex = rowStartIndex; rowIndex <= rowStopIndex; rowIndex++) {
    var rowDatum = rowSizeAndPositionManager.getSizeAndPositionOfCell(rowIndex);

    for (var columnIndex = columnStartIndex; columnIndex <= columnStopIndex; columnIndex++) {
      var columnDatum = columnSizeAndPositionManager.getSizeAndPositionOfCell(columnIndex);
      var isVisible = columnIndex >= visibleColumnIndices.start && columnIndex <= visibleColumnIndices.stop && rowIndex >= visibleRowIndices.start && rowIndex <= visibleRowIndices.stop;
      var key = getKey(rowIndex, columnIndex);
      var reuseKey = reusableKeyMap.get(key).toString();
      var style = void 0; // Cache style objects so shallow-compare doesn't re-render unnecessarily.

      if (canCacheStyle && styleCache[key]) {
        style = styleCache[key];
      } else {
        // In deferred mode, cells will be initially rendered before we know their size.
        // Don't interfere with CellMeasurer's measurements by setting an invalid size.
        if (deferredMeasurementCache && !deferredMeasurementCache.has(rowIndex, columnIndex)) {
          // Position not-yet-measured cells at top/left 0,0,
          // And give them width/height of 'auto' so they can grow larger than the parent Grid if necessary.
          // Positioning them further to the right/bottom influences their measured size.
          style = {
            height: 'auto',
            left: 0,
            position: 'absolute',
            top: 0,
            width: 'auto'
          };
        } else {
          style = {
            height: rowDatum.size,
            left: columnDatum.offset + horizontalOffsetAdjustment,
            position: 'absolute',
            top: rowDatum.offset + verticalOffsetAdjustment,
            width: columnDatum.size
          };
          styleCache[key] = style;
        }
      }

      var cellRendererParams = {
        columnIndex: columnIndex,
        isScrolling: isScrolling,
        isVisible: isVisible,
        key: reuseKey,
        parent: parent,
        rowIndex: rowIndex,
        style: style,
        dataOrder: dataOrder++
      };
      var renderedCell = void 0; // Avoid re-creating cells while scrolling.
      // This can lead to the same cell being created many times and can cause performance issues for "heavy" cells.
      // If a scroll is in progress- cache and reuse cells.
      // This cache will be thrown away once scrolling completes.
      // However if we are scaling scroll positions and sizes, we should also avoid caching.
      // This is because the offset changes slightly as scroll position changes and caching leads to stale values.
      // For more info refer to issue #395
      //
      // If isScrollingOptOut is specified, we always cache cells.
      // For more info refer to issue #1028

      if ((isScrollingOptOut || isScrolling) && !horizontalOffsetAdjustment && !verticalOffsetAdjustment) {
        if (!cellCache[key]) {
          cellCache[key] = cellRenderer(cellRendererParams);
        }

        renderedCell = cellCache[key];

        if (renderedCell && renderedCell.key !== reuseKey) {
          // this prevents a previously cached cell from using a wrong and possibly duplicate key
          renderedCell = assign_default()({}, renderedCell, {
            key: reuseKey
          });
        } // If the user is no longer scrolling, don't cache cells.
        // This makes dynamic cell content difficult for users and would also lead to a heavier memory footprint.

      } else {
        renderedCell = cellRenderer(cellRendererParams);
      }

      if (renderedCell == null || renderedCell === false) {
        continue;
      }

      if (false) {}

      renderedCells.push(renderedCell);
    }
  }

  renderedCells.sort(function (a, b) {
    return parseInt(a.key) - parseInt(b.key);
  });
  return renderedCells;
}

function warnAboutMissingStyle(parent, renderedCell) {
  if (false) {}
}


// EXTERNAL MODULE: ./node_modules/dom-helpers/util/scrollbarSize.js
var util_scrollbarSize = __webpack_require__("xUaa");
var scrollbarSize_default = /*#__PURE__*/__webpack_require__.n(util_scrollbarSize);

// EXTERNAL MODULE: ./node_modules/babel-runtime/core-js/promise.js
var promise = __webpack_require__("4d7F");
var promise_default = /*#__PURE__*/__webpack_require__.n(promise);

// CONCATENATED MODULE: ./node_modules/@adobe/react-virtualized/dist/es/utils/animationFrame.js
// Properly handle server-side rendering.
var win = void 0;

if (typeof window !== 'undefined') {
  win = window;
} else if (typeof self !== 'undefined') {
  win = self;
} else {
  win = {};
} // requestAnimationFrame() shim by Paul Irish
// http://paulirish.com/2011/requestanimationframe-for-smart-animating/


var request = win.requestAnimationFrame || win.webkitRequestAnimationFrame || win.mozRequestAnimationFrame || win.oRequestAnimationFrame || win.msRequestAnimationFrame || function (callback) {
  return win.setTimeout(callback, 1000 / 60);
};

var cancel = win.cancelAnimationFrame || win.webkitCancelAnimationFrame || win.mozCancelAnimationFrame || win.oCancelAnimationFrame || win.msCancelAnimationFrame || function (id) {
  win.clearTimeout(id);
};

var raf = request;
var caf = cancel;
// CONCATENATED MODULE: ./node_modules/@adobe/react-virtualized/dist/es/utils/requestAnimationTimeout.js


var bpfrpt_proptype_AnimationTimeoutId =  true ? null : undefined;
var requestAnimationTimeout_cancelAnimationTimeout = function cancelAnimationTimeout(frame) {
  return caf(frame.id);
};
/**
 * Recursively calls requestAnimationFrame until a specified delay has been met or exceeded.
 * When the delay time has been reached the function you're timing out will be called.
 *
 * Credit: Joe Lambert (https://gist.github.com/joelambert/1002116#file-requesttimeout-js)
 */

var requestAnimationTimeout_requestAnimationTimeout = function requestAnimationTimeout(callback, delay) {
  var start = void 0; // wait for end of processing current event handler, because event handler may be long

  promise_default.a.resolve().then(function () {
    start = Date.now();
  });

  var timeout = function timeout() {
    if (Date.now() - start >= delay) {
      callback.call();
    } else {
      frame.id = raf(timeout);
    }
  };

  var frame = {
    id: raf(timeout)
  };
  return frame;
};


// CONCATENATED MODULE: ./node_modules/@adobe/react-virtualized/dist/es/Grid/Grid.js


















/**
 * Specifies the number of milliseconds during which to disable pointer events while a scroll is in progress.
 * This improves performance and makes scrolling smoother.
 */

var DEFAULT_SCROLLING_RESET_TIME_INTERVAL = 150;
/**
 * Controls whether the Grid updates the DOM element's scrollLeft/scrollTop based on the current state or just observes it.
 * This prevents Grid from interrupting mouse-wheel animations (see issue #2).
 */

var SCROLL_POSITION_CHANGE_REASONS = {
  OBSERVED: 'observed',
  REQUESTED: 'requested'
};

var renderNull = function renderNull() {
  return null;
};
/**
 * Renders tabular data with virtualization along the vertical and horizontal axes.
 * Row heights and column widths must be known ahead of time and specified as properties.
 */


var Grid_Grid = function (_React$PureComponent) {
  inherits_default()(Grid, _React$PureComponent); // Invokes onSectionRendered callback only when start/stop row or column indices change


  function Grid(props) {
    classCallCheck_default()(this, Grid);

    var _this = possibleConstructorReturn_default()(this, (Grid.__proto__ || get_prototype_of_default()(Grid)).call(this, props));

    _this._onGridRenderedMemoizer = createCallbackMemoizer();
    _this._onScrollMemoizer = createCallbackMemoizer(false);
    _this._deferredInvalidateColumnIndex = null;
    _this._deferredInvalidateRowIndex = null;
    _this._recomputeScrollLeftFlag = false;
    _this._recomputeScrollTopFlag = false;
    _this._horizontalScrollBarSize = 0;
    _this._verticalScrollBarSize = 0;
    _this._scrollbarPresenceChanged = false;
    _this._renderedColumnStartIndex = 0;
    _this._renderedColumnStopIndex = 0;
    _this._maxRenderedColumnCount = 0;
    _this._renderedRowStartIndex = 0;
    _this._renderedRowStopIndex = 0;
    _this._maxRenderedRowCount = 0;
    _this._styleCache = {};
    _this._cellCache = {};

    _this._debounceScrollEndedCallback = function () {
      _this._disablePointerEventsTimeoutId = null; // isScrolling is used to determine if we reset styleCache

      _this.setState({
        isScrolling: false,
        needToResetStyleCache: false
      });
    };

    _this._invokeOnGridRenderedHelper = function () {
      var onSectionRendered = _this.props.onSectionRendered;

      _this._onGridRenderedMemoizer({
        callback: onSectionRendered,
        indices: {
          columnOverscanStartIndex: _this._columnStartIndex,
          columnOverscanStopIndex: _this._columnStopIndex,
          columnStartIndex: _this._renderedColumnStartIndex,
          columnStopIndex: _this._renderedColumnStopIndex,
          rowOverscanStartIndex: _this._rowStartIndex,
          rowOverscanStopIndex: _this._rowStopIndex,
          rowStartIndex: _this._renderedRowStartIndex,
          rowStopIndex: _this._renderedRowStopIndex
        }
      });
    };

    _this._setScrollingContainerRef = function (ref) {
      _this._scrollingContainer = ref;
    };

    _this._onScroll = function (event) {
      // In certain edge-cases React dispatches an onScroll event with an invalid target.scrollLeft / target.scrollTop.
      // This invalid event can be detected by comparing event.target to this component's scrollable DOM element.
      // See issue #404 for more information.
      if (event.target === _this._scrollingContainer) {
        _this.handleScrollEvent(event.target);
      }
    };

    var columnSizeAndPositionManager = new utils_ScalingCellSizeAndPositionManager({
      cellCount: props.columnCount,
      cellSizeGetter: function cellSizeGetter(params) {
        return Grid._wrapSizeGetter(props.columnWidth)(params);
      },
      estimatedCellSize: Grid._getEstimatedColumnSize(props)
    });
    var rowSizeAndPositionManager = new utils_ScalingCellSizeAndPositionManager({
      cellCount: props.rowCount,
      cellSizeGetter: function cellSizeGetter(params) {
        return Grid._wrapSizeGetter(props.rowHeight)(params);
      },
      estimatedCellSize: Grid._getEstimatedRowSize(props)
    });
    _this.state = {
      instanceProps: {
        columnSizeAndPositionManager: columnSizeAndPositionManager,
        rowSizeAndPositionManager: rowSizeAndPositionManager,
        prevColumnWidth: props.columnWidth,
        prevRowHeight: props.rowHeight,
        prevWidth: props.width,
        prevHeight: props.height,
        prevColumnCount: props.columnCount,
        prevRowCount: props.rowCount,
        prevIsScrolling: props.isScrolling === true,
        prevScrollToColumn: props.scrollToColumn,
        prevScrollToRow: props.scrollToRow,
        scrollbarSize: 0,
        scrollbarSizeMeasured: false
      },
      isScrolling: false,
      scrollDirectionHorizontal: SCROLL_DIRECTION_FORWARD,
      scrollDirectionVertical: SCROLL_DIRECTION_FORWARD,
      scrollLeft: 0,
      scrollTop: 0,
      scrollPositionChangeReason: null,
      needToResetStyleCache: false
    };

    if (props.scrollToRow > 0) {
      _this._initialScrollTop = _this._getCalculatedScrollTop(props, _this.state);
    }

    if (props.scrollToColumn > 0) {
      _this._initialScrollLeft = _this._getCalculatedScrollLeft(props, _this.state);
    }

    return _this;
  }
  /**
   * Gets offsets for a given cell and alignment.
   */


  createClass_default()(Grid, [{
    key: 'getOffsetForCell',
    value: function getOffsetForCell() {
      var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
          _ref$alignment = _ref.alignment,
          alignment = _ref$alignment === undefined ? this.props.scrollToAlignment : _ref$alignment,
          _ref$columnIndex = _ref.columnIndex,
          columnIndex = _ref$columnIndex === undefined ? this.props.scrollToColumn : _ref$columnIndex,
          _ref$rowIndex = _ref.rowIndex,
          rowIndex = _ref$rowIndex === undefined ? this.props.scrollToRow : _ref$rowIndex;

      var offsetProps = extends_default()({}, this.props, {
        scrollToAlignment: alignment,
        scrollToColumn: columnIndex,
        scrollToRow: rowIndex
      });

      return {
        scrollLeft: this._getCalculatedScrollLeft(offsetProps),
        scrollTop: this._getCalculatedScrollTop(offsetProps)
      };
    }
    /**
     * Gets estimated total rows' height.
     */

  }, {
    key: 'getTotalRowsHeight',
    value: function getTotalRowsHeight() {
      return this.state.instanceProps.rowSizeAndPositionManager.getTotalSize();
    }
    /**
     * Gets estimated total columns' width.
     */

  }, {
    key: 'getTotalColumnsWidth',
    value: function getTotalColumnsWidth() {
      return this.state.instanceProps.columnSizeAndPositionManager.getTotalSize();
    }
    /**
     * This method handles a scroll event originating from an external scroll control.
     * It's an advanced method and should probably not be used unless you're implementing a custom scroll-bar solution.
     */

  }, {
    key: 'handleScrollEvent',
    value: function handleScrollEvent(_ref2) {
      var _ref2$scrollLeft = _ref2.scrollLeft,
          scrollLeftParam = _ref2$scrollLeft === undefined ? 0 : _ref2$scrollLeft,
          _ref2$scrollTop = _ref2.scrollTop,
          scrollTopParam = _ref2$scrollTop === undefined ? 0 : _ref2$scrollTop; // To prevent flicker here, we treat negative values as if they are zero

      if (scrollTopParam < 0) {
        scrollTopParam = 0;
      } // Prevent pointer events from interrupting a smooth scroll


      this._debounceScrollEnded();

      var _props = this.props,
          autoHeight = _props.autoHeight,
          autoWidth = _props.autoWidth,
          height = _props.height,
          width = _props.width;
      var instanceProps = this.state.instanceProps; // When this component is shrunk drastically, React dispatches a series of back-to-back scroll events,
      // Gradually converging on a scrollTop that is within the bounds of the new, smaller height.
      // This causes a series of rapid renders that is slow for long lists.
      // We can avoid that by doing some simple bounds checking to ensure that scroll offsets never exceed their bounds.

      var scrollbarSize = instanceProps.scrollbarSize;
      var totalRowsHeight = instanceProps.rowSizeAndPositionManager.getTotalSize();
      var totalColumnsWidth = instanceProps.columnSizeAndPositionManager.getTotalSize();
      var scrollLeft = Math.min(Math.max(0, totalColumnsWidth - width + scrollbarSize), scrollLeftParam);
      var scrollTop = Math.min(Math.max(0, totalRowsHeight - height + scrollbarSize), scrollTopParam); // Certain devices (like Apple touchpad) rapid-fire duplicate events.
      // Don't force a re-render if this is the case.
      // The mouse may move faster then the animation frame does.
      // Use requestAnimationFrame to avoid over-updating.

      if (this.state.scrollLeft !== scrollLeft || this.state.scrollTop !== scrollTop) {
        // Track scrolling direction so we can more efficiently overscan rows to reduce empty space around the edges while scrolling.
        // Don't change direction for an axis unless scroll offset has changed.
        var _scrollDirectionHorizontal = scrollLeft !== this.state.scrollLeft ? scrollLeft > this.state.scrollLeft ? SCROLL_DIRECTION_FORWARD : SCROLL_DIRECTION_BACKWARD : this.state.scrollDirectionHorizontal;

        var _scrollDirectionVertical = scrollTop !== this.state.scrollTop ? scrollTop > this.state.scrollTop ? SCROLL_DIRECTION_FORWARD : SCROLL_DIRECTION_BACKWARD : this.state.scrollDirectionVertical;

        var newState = {
          isScrolling: true,
          scrollDirectionHorizontal: _scrollDirectionHorizontal,
          scrollDirectionVertical: _scrollDirectionVertical,
          scrollPositionChangeReason: SCROLL_POSITION_CHANGE_REASONS.OBSERVED
        };

        if (!autoHeight) {
          newState.scrollTop = scrollTop;
        }

        if (!autoWidth) {
          newState.scrollLeft = scrollLeft;
        }

        newState.needToResetStyleCache = false;
        this.setState(newState);
      }

      this._invokeOnScrollMemoizer({
        scrollLeft: scrollLeft,
        scrollTop: scrollTop,
        totalColumnsWidth: totalColumnsWidth,
        totalRowsHeight: totalRowsHeight
      });
    }
    /**
     * Invalidate Grid size and recompute visible cells.
     * This is a deferred wrapper for recomputeGridSize().
     * It sets a flag to be evaluated on cDM/cDU to avoid unnecessary renders.
     * This method is intended for advanced use-cases like CellMeasurer.
     */
    // @TODO (bvaughn) Add automated test coverage for this.

  }, {
    key: 'invalidateCellSizeAfterRender',
    value: function invalidateCellSizeAfterRender(_ref3) {
      var columnIndex = _ref3.columnIndex,
          rowIndex = _ref3.rowIndex;
      this._deferredInvalidateColumnIndex = typeof this._deferredInvalidateColumnIndex === 'number' ? Math.min(this._deferredInvalidateColumnIndex, columnIndex) : columnIndex;
      this._deferredInvalidateRowIndex = typeof this._deferredInvalidateRowIndex === 'number' ? Math.min(this._deferredInvalidateRowIndex, rowIndex) : rowIndex;
    }
    /**
     * Pre-measure all columns and rows in a Grid.
     * Typically cells are only measured as needed and estimated sizes are used for cells that have not yet been measured.
     * This method ensures that the next call to getTotalSize() returns an exact size (as opposed to just an estimated one).
     */

  }, {
    key: 'measureAllCells',
    value: function measureAllCells() {
      var _props2 = this.props,
          columnCount = _props2.columnCount,
          rowCount = _props2.rowCount;
      var instanceProps = this.state.instanceProps;
      instanceProps.columnSizeAndPositionManager.getSizeAndPositionOfCell(columnCount - 1);
      instanceProps.rowSizeAndPositionManager.getSizeAndPositionOfCell(rowCount - 1);
    }
    /**
     * Forced recompute of row heights and column widths.
     * This function should be called if dynamic column or row sizes have changed but nothing else has.
     * Since Grid only receives :columnCount and :rowCount it has no way of detecting when the underlying data changes.
     */

  }, {
    key: 'recomputeGridSize',
    value: function recomputeGridSize() {
      var _ref4 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
          _ref4$columnIndex = _ref4.columnIndex,
          columnIndex = _ref4$columnIndex === undefined ? 0 : _ref4$columnIndex,
          _ref4$rowIndex = _ref4.rowIndex,
          rowIndex = _ref4$rowIndex === undefined ? 0 : _ref4$rowIndex;

      var _props3 = this.props,
          scrollToColumn = _props3.scrollToColumn,
          scrollToRow = _props3.scrollToRow;
      var instanceProps = this.state.instanceProps;
      instanceProps.columnSizeAndPositionManager.resetCell(columnIndex);
      instanceProps.rowSizeAndPositionManager.resetCell(rowIndex); // Cell sizes may be determined by a function property.
      // In this case the cDU handler can't know if they changed.
      // Store this flag to let the next cDU pass know it needs to recompute the scroll offset.

      this._recomputeScrollLeftFlag = scrollToColumn >= 0 && (this.state.scrollDirectionHorizontal === SCROLL_DIRECTION_FORWARD ? columnIndex <= scrollToColumn : columnIndex >= scrollToColumn);
      this._recomputeScrollTopFlag = scrollToRow >= 0 && (this.state.scrollDirectionVertical === SCROLL_DIRECTION_FORWARD ? rowIndex <= scrollToRow : rowIndex >= scrollToRow); // Clear cell cache in case we are scrolling;
      // Invalid row heights likely mean invalid cached content as well.

      this._styleCache = {};
      this._cellCache = {};
      this.forceUpdate();
    }
    /**
     * Ensure column and row are visible.
     */

  }, {
    key: 'scrollToCell',
    value: function scrollToCell(_ref5) {
      var columnIndex = _ref5.columnIndex,
          rowIndex = _ref5.rowIndex;
      var columnCount = this.props.columnCount;
      var props = this.props; // Don't adjust scroll offset for single-column grids (eg List, Table).
      // This can cause a funky scroll offset because of the vertical scrollbar width.

      if (columnCount > 1 && columnIndex !== undefined) {
        this._updateScrollLeftForScrollToColumn(extends_default()({}, props, {
          scrollToColumn: columnIndex
        }));
      }

      if (rowIndex !== undefined) {
        this._updateScrollTopForScrollToRow(extends_default()({}, props, {
          scrollToRow: rowIndex
        }));
      }
    }
  }, {
    key: 'componentDidMount',
    value: function componentDidMount() {
      var _props4 = this.props,
          getScrollbarSize = _props4.getScrollbarSize,
          height = _props4.height,
          scrollLeft = _props4.scrollLeft,
          scrollToColumn = _props4.scrollToColumn,
          scrollTop = _props4.scrollTop,
          scrollToRow = _props4.scrollToRow,
          width = _props4.width;
      var instanceProps = this.state.instanceProps; // Reset initial offsets to be ignored in browser

      this._initialScrollTop = 0;
      this._initialScrollLeft = 0; // If cell sizes have been invalidated (eg we are using CellMeasurer) then reset cached positions.
      // We must do this at the start of the method as we may calculate and update scroll position below.

      this._handleInvalidatedGridSize(); // If this component was first rendered server-side, scrollbar size will be undefined.
      // In that event we need to remeasure.


      if (!instanceProps.scrollbarSizeMeasured) {
        this.setState(function (prevState) {
          var stateUpdate = extends_default()({}, prevState, {
            needToResetStyleCache: false
          });

          stateUpdate.instanceProps.scrollbarSize = getScrollbarSize();
          stateUpdate.instanceProps.scrollbarSizeMeasured = true;
          return stateUpdate;
        });
      }

      if (typeof scrollLeft === 'number' && scrollLeft >= 0 || typeof scrollTop === 'number' && scrollTop >= 0) {
        var stateUpdate = Grid._getScrollToPositionStateUpdate({
          prevState: this.state,
          scrollLeft: scrollLeft,
          scrollTop: scrollTop
        });

        if (stateUpdate) {
          stateUpdate.needToResetStyleCache = false;
          this.setState(stateUpdate);
        }
      } // refs don't work in `react-test-renderer`


      if (this._scrollingContainer) {
        // setting the ref's scrollLeft and scrollTop.
        // Somehow in MultiGrid the main grid doesn't trigger a update on mount.
        if (this._scrollingContainer.scrollLeft !== this.state.scrollLeft) {
          this._scrollingContainer.scrollLeft = this.state.scrollLeft;
        }

        if (this._scrollingContainer.scrollTop !== this.state.scrollTop) {
          this._scrollingContainer.scrollTop = this.state.scrollTop;
        }
      } // Don't update scroll offset if the size is 0; we don't render any cells in this case.
      // Setting a state may cause us to later thing we've updated the offce when we haven't.


      var sizeIsBiggerThanZero = height > 0 && width > 0;

      if (scrollToColumn >= 0 && sizeIsBiggerThanZero) {
        this._updateScrollLeftForScrollToColumn();
      }

      if (scrollToRow >= 0 && sizeIsBiggerThanZero) {
        this._updateScrollTopForScrollToRow();
      } // Update onRowsRendered callback


      this._invokeOnGridRenderedHelper(); // Initialize onScroll callback


      this._invokeOnScrollMemoizer({
        scrollLeft: scrollLeft || 0,
        scrollTop: scrollTop || 0,
        totalColumnsWidth: instanceProps.columnSizeAndPositionManager.getTotalSize(),
        totalRowsHeight: instanceProps.rowSizeAndPositionManager.getTotalSize()
      });

      this._maybeCallOnScrollbarPresenceChange();
    }
    /**
     * @private
     * This method updates scrollLeft/scrollTop in state for the following conditions:
     * 1) New scroll-to-cell props have been set
     */

  }, {
    key: 'componentDidUpdate',
    value: function componentDidUpdate(prevProps, prevState) {
      var _this2 = this;

      var _props5 = this.props,
          autoHeight = _props5.autoHeight,
          autoWidth = _props5.autoWidth,
          columnCount = _props5.columnCount,
          height = _props5.height,
          rowCount = _props5.rowCount,
          scrollToAlignment = _props5.scrollToAlignment,
          scrollToColumn = _props5.scrollToColumn,
          scrollToRow = _props5.scrollToRow,
          width = _props5.width;
      var _state = this.state,
          scrollLeft = _state.scrollLeft,
          scrollPositionChangeReason = _state.scrollPositionChangeReason,
          scrollTop = _state.scrollTop,
          instanceProps = _state.instanceProps; // If cell sizes have been invalidated (eg we are using CellMeasurer) then reset cached positions.
      // We must do this at the start of the method as we may calculate and update scroll position below.

      this._handleInvalidatedGridSize(); // Handle edge case where column or row count has only just increased over 0.
      // In this case we may have to restore a previously-specified scroll offset.
      // For more info see bvaughn/react-virtualized/issues/218


      var columnOrRowCountJustIncreasedFromZero = columnCount > 0 && prevProps.columnCount === 0 || rowCount > 0 && prevProps.rowCount === 0; // Make sure requested changes to :scrollLeft or :scrollTop get applied.
      // Assigning to scrollLeft/scrollTop tells the browser to interrupt any running scroll animations,
      // And to discard any pending async changes to the scroll position that may have happened in the meantime (e.g. on a separate scrolling thread).
      // So we only set these when we require an adjustment of the scroll position.
      // See issue #2 for more information.

      if (scrollPositionChangeReason === SCROLL_POSITION_CHANGE_REASONS.REQUESTED) {
        // @TRICKY :autoHeight and :autoWidth properties instructs Grid to leave :scrollTop and :scrollLeft management to an external HOC (eg WindowScroller).
        // In this case we should avoid checking scrollingContainer.scrollTop and scrollingContainer.scrollLeft since it forces layout/flow.
        if (!autoWidth && scrollLeft >= 0 && (scrollLeft !== this._scrollingContainer.scrollLeft || columnOrRowCountJustIncreasedFromZero)) {
          this._scrollingContainer.scrollLeft = scrollLeft;
        }

        if (!autoHeight && scrollTop >= 0 && (scrollTop !== this._scrollingContainer.scrollTop || columnOrRowCountJustIncreasedFromZero)) {
          this._scrollingContainer.scrollTop = scrollTop;
        }
      } // Special case where the previous size was 0:
      // In this case we don't show any windowed cells at all.
      // So we should always recalculate offset afterwards.


      var sizeJustIncreasedFromZero = (prevProps.width === 0 || prevProps.height === 0) && height > 0 && width > 0; // Update scroll offsets if the current :scrollToColumn or :scrollToRow values requires it
      // @TODO Do we also need this check or can the one in componentWillUpdate() suffice?

      if (this._recomputeScrollLeftFlag) {
        this._recomputeScrollLeftFlag = false;

        this._updateScrollLeftForScrollToColumn(this.props);
      } else {
        updateScrollIndexHelper({
          cellSizeAndPositionManager: instanceProps.columnSizeAndPositionManager,
          previousCellsCount: prevProps.columnCount,
          previousCellSize: prevProps.columnWidth,
          previousScrollToAlignment: prevProps.scrollToAlignment,
          previousScrollToIndex: prevProps.scrollToColumn,
          previousSize: prevProps.width,
          scrollOffset: scrollLeft,
          scrollToAlignment: scrollToAlignment,
          scrollToIndex: scrollToColumn,
          size: width,
          sizeJustIncreasedFromZero: sizeJustIncreasedFromZero,
          updateScrollIndexCallback: function updateScrollIndexCallback() {
            return _this2._updateScrollLeftForScrollToColumn(_this2.props);
          }
        });
      }

      if (this._recomputeScrollTopFlag) {
        this._recomputeScrollTopFlag = false;

        this._updateScrollTopForScrollToRow(this.props);
      } else {
        updateScrollIndexHelper({
          cellSizeAndPositionManager: instanceProps.rowSizeAndPositionManager,
          previousCellsCount: prevProps.rowCount,
          previousCellSize: prevProps.rowHeight,
          previousScrollToAlignment: prevProps.scrollToAlignment,
          previousScrollToIndex: prevProps.scrollToRow,
          previousSize: prevProps.height,
          scrollOffset: scrollTop,
          scrollToAlignment: scrollToAlignment,
          scrollToIndex: scrollToRow,
          size: height,
          sizeJustIncreasedFromZero: sizeJustIncreasedFromZero,
          updateScrollIndexCallback: function updateScrollIndexCallback() {
            return _this2._updateScrollTopForScrollToRow(_this2.props);
          }
        });
      } // Update onRowsRendered callback if start/stop indices have changed


      this._invokeOnGridRenderedHelper(); // Changes to :scrollLeft or :scrollTop should also notify :onScroll listeners


      if (scrollLeft !== prevState.scrollLeft || scrollTop !== prevState.scrollTop) {
        var totalRowsHeight = instanceProps.rowSizeAndPositionManager.getTotalSize();
        var totalColumnsWidth = instanceProps.columnSizeAndPositionManager.getTotalSize();

        this._invokeOnScrollMemoizer({
          scrollLeft: scrollLeft,
          scrollTop: scrollTop,
          totalColumnsWidth: totalColumnsWidth,
          totalRowsHeight: totalRowsHeight
        });
      }

      this._maybeCallOnScrollbarPresenceChange();
    }
  }, {
    key: 'componentWillUnmount',
    value: function componentWillUnmount() {
      if (this._disablePointerEventsTimeoutId) {
        requestAnimationTimeout_cancelAnimationTimeout(this._disablePointerEventsTimeoutId);
      }
    }
    /**
     * This method updates scrollLeft/scrollTop in state for the following conditions:
     * 1) Empty content (0 rows or columns)
     * 2) New scroll props overriding the current state
     * 3) Cells-count or cells-size has changed, making previous scroll offsets invalid
     */

  }, {
    key: 'render',
    value: function render() {
      var _props6 = this.props,
          autoContainerWidth = _props6.autoContainerWidth,
          autoHeight = _props6.autoHeight,
          autoWidth = _props6.autoWidth,
          className = _props6.className,
          containerProps = _props6.containerProps,
          containerRole = _props6.containerRole,
          containerStyle = _props6.containerStyle,
          height = _props6.height,
          id = _props6.id,
          noContentRenderer = _props6.noContentRenderer,
          role = _props6.role,
          style = _props6.style,
          tabIndex = _props6.tabIndex,
          width = _props6.width;
      var _state2 = this.state,
          instanceProps = _state2.instanceProps,
          needToResetStyleCache = _state2.needToResetStyleCache;

      var isScrolling = this._isScrolling();

      var gridStyle = {
        boxSizing: 'border-box',
        direction: 'ltr',
        height: autoHeight ? 'auto' : height,
        position: 'relative',
        width: autoWidth ? 'auto' : width,
        WebkitOverflowScrolling: 'touch',
        willChange: 'transform'
      };

      if (needToResetStyleCache) {
        this._styleCache = {};
      } // calculate _styleCache here
      // if state.isScrolling (not from _isScrolling) then reset


      if (!this.state.isScrolling) {
        this._resetStyleCache();
      }

      var visibleColumnIndices = instanceProps.columnSizeAndPositionManager.getVisibleCellRange({
        containerSize: width,
        offset: 0
      });
      this._maxRenderedColumnCount = visibleColumnIndices.stop - visibleColumnIndices.start + 1;
      var visibleRowIndices = instanceProps.rowSizeAndPositionManager.getVisibleCellRange({
        containerSize: height,
        offset: 0
      });
      this._maxRenderedRowCount = visibleRowIndices.stop - visibleRowIndices.start + 1; // calculate children to render here

      this._calculateChildrenToRender(this.props, this.state);

      var totalColumnsWidth = instanceProps.columnSizeAndPositionManager.getTotalSize();
      var totalRowsHeight = instanceProps.rowSizeAndPositionManager.getTotalSize(); // Force browser to hide scrollbars when we know they aren't necessary.
      // Otherwise once scrollbars appear they may not disappear again.
      // For more info see issue #116

      var verticalScrollBarSize = totalRowsHeight > height ? instanceProps.scrollbarSize : 0;
      var horizontalScrollBarSize = totalColumnsWidth > width ? instanceProps.scrollbarSize : 0;

      if (horizontalScrollBarSize !== this._horizontalScrollBarSize || verticalScrollBarSize !== this._verticalScrollBarSize) {
        this._horizontalScrollBarSize = horizontalScrollBarSize;
        this._verticalScrollBarSize = verticalScrollBarSize;
        this._scrollbarPresenceChanged = true;
      } // Also explicitly init styles to 'auto' if scrollbars are required.
      // This works around an obscure edge case where external CSS styles have not yet been loaded,
      // But an initial scroll index of offset is set as an external prop.
      // Without this style, Grid would render the correct range of cells but would NOT update its internal offset.
      // This was originally reported via clauderic/react-infinite-calendar/issues/23


      gridStyle.overflowX = totalColumnsWidth + verticalScrollBarSize <= width ? 'hidden' : 'auto';
      gridStyle.overflowY = totalRowsHeight + horizontalScrollBarSize <= height ? 'hidden' : 'auto';
      var childrenToDisplay = this._childrenToDisplay;
      var showNoContentRenderer = childrenToDisplay.length === 0 && height > 0 && width > 0;
      return react["createElement"]('div', extends_default()({
        ref: this._setScrollingContainerRef
      }, containerProps, {
        'aria-label': this.props['aria-label'],
        'aria-readonly': this.props['aria-readonly'],
        className: Object(clsx_m["a" /* default */])('ReactVirtualized__Grid', className),
        id: id,
        onScroll: this._onScroll,
        role: role,
        style: extends_default()({}, gridStyle, style),
        tabIndex: tabIndex
      }), childrenToDisplay.length > 0 && react["createElement"]('div', {
        className: 'ReactVirtualized__Grid__innerScrollContainer',
        role: containerRole,
        style: extends_default()({
          width: autoContainerWidth ? 'auto' : totalColumnsWidth,
          height: totalRowsHeight,
          maxWidth: totalColumnsWidth,
          maxHeight: totalRowsHeight,
          overflow: 'hidden',
          pointerEvents: isScrolling ? 'none' : '',
          position: 'relative'
        }, containerStyle)
      }, childrenToDisplay), showNoContentRenderer && noContentRenderer());
    }
    /* ---------------------------- Helper methods ---------------------------- */

  }, {
    key: '_calculateChildrenToRender',
    value: function _calculateChildrenToRender() {
      var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;
      var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.state;
      var cellRenderer = props.cellRenderer,
          cellRangeRenderer = props.cellRangeRenderer,
          columnCount = props.columnCount,
          deferredMeasurementCache = props.deferredMeasurementCache,
          height = props.height,
          overscanColumnCount = props.overscanColumnCount,
          overscanIndicesGetter = props.overscanIndicesGetter,
          overscanRowCount = props.overscanRowCount,
          rowCount = props.rowCount,
          width = props.width,
          isScrollingOptOut = props.isScrollingOptOut;
      var scrollDirectionHorizontal = state.scrollDirectionHorizontal,
          scrollDirectionVertical = state.scrollDirectionVertical,
          instanceProps = state.instanceProps;
      var scrollTop = this._initialScrollTop > 0 ? this._initialScrollTop : state.scrollTop;
      var scrollLeft = this._initialScrollLeft > 0 ? this._initialScrollLeft : state.scrollLeft;

      var isScrolling = this._isScrolling(props, state);

      this._childrenToDisplay = []; // Render only enough columns and rows to cover the visible area of the grid.

      if (height > 0 && width > 0) {
        var visibleColumnIndices = instanceProps.columnSizeAndPositionManager.getVisibleCellRange({
          containerSize: width,
          offset: scrollLeft
        });
        var visibleRowIndices = instanceProps.rowSizeAndPositionManager.getVisibleCellRange({
          containerSize: height,
          offset: scrollTop
        }); // Adjust rows/columns count for max values within visible area

        this.adjustForOverlapping(visibleColumnIndices, visibleRowIndices);
        var horizontalOffsetAdjustment = instanceProps.columnSizeAndPositionManager.getOffsetAdjustment({
          containerSize: width,
          offset: scrollLeft
        });
        var verticalOffsetAdjustment = instanceProps.rowSizeAndPositionManager.getOffsetAdjustment({
          containerSize: height,
          offset: scrollTop
        }); // Store for _invokeOnGridRenderedHelper()

        this._renderedColumnStartIndex = visibleColumnIndices.start;
        this._renderedColumnStopIndex = visibleColumnIndices.stop;
        this._renderedRowStartIndex = visibleRowIndices.start;
        this._renderedRowStopIndex = visibleRowIndices.stop;
        var overscanColumnIndices = overscanIndicesGetter({
          direction: 'horizontal',
          cellCount: columnCount,
          overscanCellsCount: overscanColumnCount,
          scrollDirection: scrollDirectionHorizontal,
          startIndex: typeof visibleColumnIndices.start === 'number' ? visibleColumnIndices.start : 0,
          stopIndex: typeof visibleColumnIndices.stop === 'number' ? visibleColumnIndices.stop : -1
        });
        var overscanRowIndices = overscanIndicesGetter({
          direction: 'vertical',
          cellCount: rowCount,
          overscanCellsCount: overscanRowCount,
          scrollDirection: scrollDirectionVertical,
          startIndex: typeof visibleRowIndices.start === 'number' ? visibleRowIndices.start : 0,
          stopIndex: typeof visibleRowIndices.stop === 'number' ? visibleRowIndices.stop : -1
        }); // Store for _invokeOnGridRenderedHelper()

        var columnStartIndex = overscanColumnIndices.overscanStartIndex;
        var columnStopIndex = overscanColumnIndices.overscanStopIndex;
        var rowStartIndex = overscanRowIndices.overscanStartIndex;
        var rowStopIndex = overscanRowIndices.overscanStopIndex; // Advanced use-cases (eg CellMeasurer) require batched measurements to determine accurate sizes.

        if (deferredMeasurementCache) {
          // If rows have a dynamic height, scan the rows we are about to render.
          // If any have not yet been measured, then we need to render all columns initially,
          // Because the height of the row is equal to the tallest cell within that row,
          // (And so we can't know the height without measuring all column-cells first).
          if (!deferredMeasurementCache.hasFixedHeight()) {
            for (var rowIndex = rowStartIndex; rowIndex <= rowStopIndex; rowIndex++) {
              if (!deferredMeasurementCache.has(rowIndex, 0)) {
                columnStartIndex = 0;
                columnStopIndex = columnCount - 1;
                break;
              }
            }
          } // If columns have a dynamic width, scan the columns we are about to render.
          // If any have not yet been measured, then we need to render all rows initially,
          // Because the width of the column is equal to the widest cell within that column,
          // (And so we can't know the width without measuring all row-cells first).


          if (!deferredMeasurementCache.hasFixedWidth()) {
            for (var columnIndex = columnStartIndex; columnIndex <= columnStopIndex; columnIndex++) {
              if (!deferredMeasurementCache.has(0, columnIndex)) {
                rowStartIndex = 0;
                rowStopIndex = rowCount - 1;
                break;
              }
            }
          }
        }

        var overscanRows = this._renderedRowStartIndex == 0 ? 0 : rowStartIndex - this._renderedRowStartIndex;
        var overScanCols = columnStartIndex == 0 ? columnStopIndex + 1 : columnStopIndex - columnStartIndex;
        var overscanCellCount = overscanRows * overScanCols;
        this._childrenToDisplay = cellRangeRenderer({
          cellCache: this._cellCache,
          cellRenderer: cellRenderer,
          columnSizeAndPositionManager: instanceProps.columnSizeAndPositionManager,
          columnStartIndex: columnStartIndex,
          columnStopIndex: columnStopIndex,
          deferredMeasurementCache: deferredMeasurementCache,
          horizontalOffsetAdjustment: horizontalOffsetAdjustment,
          isScrolling: isScrolling,
          isScrollingOptOut: isScrollingOptOut,
          parent: this,
          rowSizeAndPositionManager: instanceProps.rowSizeAndPositionManager,
          rowStartIndex: rowStartIndex,
          rowStopIndex: rowStopIndex,
          scrollLeft: scrollLeft,
          scrollTop: scrollTop,
          styleCache: this._styleCache,
          verticalOffsetAdjustment: verticalOffsetAdjustment,
          visibleColumnIndices: visibleColumnIndices,
          visibleRowIndices: visibleRowIndices,
          overscanCellCount: overscanCellCount
        }); // update the indices

        this._columnStartIndex = columnStartIndex;
        this._columnStopIndex = columnStopIndex;
        this._rowStartIndex = rowStartIndex;
        this._rowStopIndex = rowStopIndex;
      }
    }
  }, {
    key: 'adjustForOverlapping',
    value: function adjustForOverlapping(visibleColumnIndices, visibleRowIndices) {
      if (this._maxRenderedColumnCount != visibleColumnIndices.stop - visibleColumnIndices.start) {
        if (visibleColumnIndices.start > 0) visibleColumnIndices.start--;else visibleColumnIndices.stop++;
      }

      if (this._maxRenderedRowCount != visibleRowIndices.stop - visibleRowIndices.start) {
        if (visibleRowIndices.start > 0) visibleRowIndices.start--;else visibleRowIndices.stop++;
      }
    }
    /**
     * Sets an :isScrolling flag for a small window of time.
     * This flag is used to disable pointer events on the scrollable portion of the Grid.
     * This prevents jerky/stuttery mouse-wheel scrolling.
     */

  }, {
    key: '_debounceScrollEnded',
    value: function _debounceScrollEnded() {
      var scrollingResetTimeInterval = this.props.scrollingResetTimeInterval;

      if (this._disablePointerEventsTimeoutId) {
        requestAnimationTimeout_cancelAnimationTimeout(this._disablePointerEventsTimeoutId);
      }

      this._disablePointerEventsTimeoutId = requestAnimationTimeout_requestAnimationTimeout(this._debounceScrollEndedCallback, scrollingResetTimeInterval);
    }
  }, {
    key: '_handleInvalidatedGridSize',

    /**
     * Check for batched CellMeasurer size invalidations.
     * This will occur the first time one or more previously unmeasured cells are rendered.
     */
    value: function _handleInvalidatedGridSize() {
      if (typeof this._deferredInvalidateColumnIndex === 'number' && typeof this._deferredInvalidateRowIndex === 'number') {
        var columnIndex = this._deferredInvalidateColumnIndex;
        var rowIndex = this._deferredInvalidateRowIndex;
        this._deferredInvalidateColumnIndex = null;
        this._deferredInvalidateRowIndex = null;
        this.recomputeGridSize({
          columnIndex: columnIndex,
          rowIndex: rowIndex
        });
      }
    }
  }, {
    key: '_invokeOnScrollMemoizer',
    value: function _invokeOnScrollMemoizer(_ref6) {
      var _this3 = this;

      var scrollLeft = _ref6.scrollLeft,
          scrollTop = _ref6.scrollTop,
          totalColumnsWidth = _ref6.totalColumnsWidth,
          totalRowsHeight = _ref6.totalRowsHeight;

      this._onScrollMemoizer({
        callback: function callback(_ref7) {
          var scrollLeft = _ref7.scrollLeft,
              scrollTop = _ref7.scrollTop;
          var _props7 = _this3.props,
              height = _props7.height,
              onScroll = _props7.onScroll,
              width = _props7.width;
          onScroll({
            clientHeight: height,
            clientWidth: width,
            scrollHeight: totalRowsHeight,
            scrollLeft: scrollLeft,
            scrollTop: scrollTop,
            scrollWidth: totalColumnsWidth
          });
        },
        indices: {
          scrollLeft: scrollLeft,
          scrollTop: scrollTop
        }
      });
    }
  }, {
    key: '_isScrolling',
    value: function _isScrolling() {
      var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;
      var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.state; // If isScrolling is defined in props, use it to override the value in state
      // This is a performance optimization for WindowScroller + Grid

      return Object.hasOwnProperty.call(props, 'isScrolling') ? Boolean(props.isScrolling) : Boolean(state.isScrolling);
    }
  }, {
    key: '_maybeCallOnScrollbarPresenceChange',
    value: function _maybeCallOnScrollbarPresenceChange() {
      if (this._scrollbarPresenceChanged) {
        var _onScrollbarPresenceChange = this.props.onScrollbarPresenceChange;
        this._scrollbarPresenceChanged = false;

        _onScrollbarPresenceChange({
          horizontal: this._horizontalScrollBarSize > 0,
          size: this.state.instanceProps.scrollbarSize,
          vertical: this._verticalScrollBarSize > 0
        });
      }
    }
  }, {
    key: 'scrollToPosition',

    /**
     * Scroll to the specified offset(s).
     * Useful for animating position changes.
     */
    value: function scrollToPosition(_ref8) {
      var scrollLeft = _ref8.scrollLeft,
          scrollTop = _ref8.scrollTop;

      var stateUpdate = Grid._getScrollToPositionStateUpdate({
        prevState: this.state,
        scrollLeft: scrollLeft,
        scrollTop: scrollTop
      });

      if (stateUpdate) {
        stateUpdate.needToResetStyleCache = false;
        this.setState(stateUpdate);
      }
    }
  }, {
    key: '_getCalculatedScrollLeft',
    value: function _getCalculatedScrollLeft() {
      var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;
      var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.state;
      return Grid._getCalculatedScrollLeft(props, state);
    }
  }, {
    key: '_updateScrollLeftForScrollToColumn',
    value: function _updateScrollLeftForScrollToColumn() {
      var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;
      var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.state;

      var stateUpdate = Grid._getScrollLeftForScrollToColumnStateUpdate(props, state);

      if (stateUpdate) {
        stateUpdate.needToResetStyleCache = false;
        this.setState(stateUpdate);
      }
    }
  }, {
    key: '_getCalculatedScrollTop',
    value: function _getCalculatedScrollTop() {
      var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;
      var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.state;
      return Grid._getCalculatedScrollTop(props, state);
    }
  }, {
    key: '_resetStyleCache',
    value: function _resetStyleCache() {
      var styleCache = this._styleCache;
      var cellCache = this._cellCache;
      var isScrollingOptOut = this.props.isScrollingOptOut; // Reset cell and style caches once scrolling stops.
      // This makes Grid simpler to use (since cells commonly change).
      // And it keeps the caches from growing too large.
      // Performance is most sensitive when a user is scrolling.
      // Don't clear visible cells from cellCache if isScrollingOptOut is specified.
      // This keeps the cellCache to a resonable size.

      this._cellCache = {};
      this._styleCache = {}; // Copy over the visible cell styles so avoid unnecessary re-render.

      for (var rowIndex = this._rowStartIndex; rowIndex <= this._rowStopIndex; rowIndex++) {
        for (var columnIndex = this._columnStartIndex; columnIndex <= this._columnStopIndex; columnIndex++) {
          var key = rowIndex + '-' + columnIndex;
          this._styleCache[key] = styleCache[key];

          if (isScrollingOptOut) {
            this._cellCache[key] = cellCache[key];
          }
        }
      }
    }
  }, {
    key: '_updateScrollTopForScrollToRow',
    value: function _updateScrollTopForScrollToRow() {
      var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;
      var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.state;

      var stateUpdate = Grid._getScrollTopForScrollToRowStateUpdate(props, state);

      if (stateUpdate) {
        stateUpdate.needToResetStyleCache = false;
        this.setState(stateUpdate);
      }
    }
  }], [{
    key: 'getDerivedStateFromProps',
    value: function getDerivedStateFromProps(nextProps, prevState) {
      var newState = {};

      if (nextProps.columnCount === 0 && prevState.scrollLeft !== 0 || nextProps.rowCount === 0 && prevState.scrollTop !== 0) {
        newState.scrollLeft = 0;
        newState.scrollTop = 0; // only use scroll{Left,Top} from props if scrollTo{Column,Row} isn't specified
        // scrollTo{Column,Row} should override scroll{Left,Top}
      } else if (nextProps.scrollLeft !== prevState.scrollLeft && nextProps.scrollToColumn < 0 || nextProps.scrollTop !== prevState.scrollTop && nextProps.scrollToRow < 0) {
        assign_default()(newState, Grid._getScrollToPositionStateUpdate({
          prevState: prevState,
          scrollLeft: nextProps.scrollLeft,
          scrollTop: nextProps.scrollTop
        }));
      }

      var instanceProps = prevState.instanceProps; // Initially we should not clearStyleCache

      newState.needToResetStyleCache = false;

      if (nextProps.columnWidth !== instanceProps.prevColumnWidth || nextProps.rowHeight !== instanceProps.prevRowHeight) {
        // Reset cache. set it to {} in render
        newState.needToResetStyleCache = true;
      }

      instanceProps.columnSizeAndPositionManager.configure({
        cellCount: nextProps.columnCount,
        estimatedCellSize: Grid._getEstimatedColumnSize(nextProps),
        cellSizeGetter: Grid._wrapSizeGetter(nextProps.columnWidth)
      });
      instanceProps.rowSizeAndPositionManager.configure({
        cellCount: nextProps.rowCount,
        estimatedCellSize: Grid._getEstimatedRowSize(nextProps),
        cellSizeGetter: Grid._wrapSizeGetter(nextProps.rowHeight)
      });

      if (instanceProps.prevColumnCount === 0 || instanceProps.prevRowCount === 0) {
        instanceProps.prevColumnCount = 0;
        instanceProps.prevRowCount = 0;
      } // If scrolling is controlled outside this component, clear cache when scrolling stops


      if (nextProps.autoHeight && nextProps.isScrolling === false && instanceProps.prevIsScrolling === true) {
        assign_default()(newState, {
          isScrolling: false
        });
      }

      var maybeStateA = void 0;
      var maybeStateB = void 0;
      calculateSizeAndPositionDataAndUpdateScrollOffset({
        cellCount: instanceProps.prevColumnCount,
        cellSize: typeof instanceProps.prevColumnWidth === 'number' ? instanceProps.prevColumnWidth : null,
        computeMetadataCallback: function computeMetadataCallback() {
          return instanceProps.columnSizeAndPositionManager.resetCell(0);
        },
        computeMetadataCallbackProps: nextProps,
        nextCellsCount: nextProps.columnCount,
        nextCellSize: typeof nextProps.columnWidth === 'number' ? nextProps.columnWidth : null,
        nextScrollToIndex: nextProps.scrollToColumn,
        scrollToIndex: instanceProps.prevScrollToColumn,
        updateScrollOffsetForScrollToIndex: function updateScrollOffsetForScrollToIndex() {
          maybeStateA = Grid._getScrollLeftForScrollToColumnStateUpdate(nextProps, prevState);
        }
      });
      calculateSizeAndPositionDataAndUpdateScrollOffset({
        cellCount: instanceProps.prevRowCount,
        cellSize: typeof instanceProps.prevRowHeight === 'number' ? instanceProps.prevRowHeight : null,
        computeMetadataCallback: function computeMetadataCallback() {
          return instanceProps.rowSizeAndPositionManager.resetCell(0);
        },
        computeMetadataCallbackProps: nextProps,
        nextCellsCount: nextProps.rowCount,
        nextCellSize: typeof nextProps.rowHeight === 'number' ? nextProps.rowHeight : null,
        nextScrollToIndex: nextProps.scrollToRow,
        scrollToIndex: instanceProps.prevScrollToRow,
        updateScrollOffsetForScrollToIndex: function updateScrollOffsetForScrollToIndex() {
          maybeStateB = Grid._getScrollTopForScrollToRowStateUpdate(nextProps, prevState);
        }
      });
      instanceProps.prevColumnCount = nextProps.columnCount;
      instanceProps.prevColumnWidth = nextProps.columnWidth;
      instanceProps.prevIsScrolling = nextProps.isScrolling === true;
      instanceProps.prevRowCount = nextProps.rowCount;
      instanceProps.prevRowHeight = nextProps.rowHeight;
      instanceProps.prevScrollToColumn = nextProps.scrollToColumn;
      instanceProps.prevScrollToRow = nextProps.scrollToRow; // getting scrollBarSize (moved from componentWillMount)

      instanceProps.scrollbarSize = nextProps.getScrollbarSize();

      if (instanceProps.scrollbarSize === undefined) {
        instanceProps.scrollbarSizeMeasured = false;
        instanceProps.scrollbarSize = 0;
      } else {
        instanceProps.scrollbarSizeMeasured = true;
      }

      newState.instanceProps = instanceProps;
      return extends_default()({}, newState, maybeStateA, maybeStateB);
    }
  }, {
    key: '_getEstimatedColumnSize',
    value: function _getEstimatedColumnSize(props) {
      return typeof props.columnWidth === 'number' ? props.columnWidth : props.estimatedColumnSize;
    }
  }, {
    key: '_getEstimatedRowSize',
    value: function _getEstimatedRowSize(props) {
      return typeof props.rowHeight === 'number' ? props.rowHeight : props.estimatedRowSize;
    }
  }, {
    key: '_getScrollToPositionStateUpdate',

    /**
     * Get the updated state after scrolling to
     * scrollLeft and scrollTop
     */
    value: function _getScrollToPositionStateUpdate(_ref9) {
      var prevState = _ref9.prevState,
          scrollLeft = _ref9.scrollLeft,
          scrollTop = _ref9.scrollTop;
      var newState = {
        scrollPositionChangeReason: SCROLL_POSITION_CHANGE_REASONS.REQUESTED
      };

      if (typeof scrollLeft === 'number' && scrollLeft >= 0) {
        newState.scrollDirectionHorizontal = scrollLeft > prevState.scrollLeft ? SCROLL_DIRECTION_FORWARD : SCROLL_DIRECTION_BACKWARD;
        newState.scrollLeft = scrollLeft;
      }

      if (typeof scrollTop === 'number' && scrollTop >= 0) {
        newState.scrollDirectionVertical = scrollTop > prevState.scrollTop ? SCROLL_DIRECTION_FORWARD : SCROLL_DIRECTION_BACKWARD;
        newState.scrollTop = scrollTop;
      }

      if (typeof scrollLeft === 'number' && scrollLeft >= 0 && scrollLeft !== prevState.scrollLeft || typeof scrollTop === 'number' && scrollTop >= 0 && scrollTop !== prevState.scrollTop) {
        return newState;
      }

      return null;
    }
  }, {
    key: '_wrapSizeGetter',
    value: function _wrapSizeGetter(value) {
      return typeof value === 'function' ? value : function () {
        return value;
      };
    }
  }, {
    key: '_getCalculatedScrollLeft',
    value: function _getCalculatedScrollLeft(nextProps, prevState) {
      var columnCount = nextProps.columnCount,
          height = nextProps.height,
          scrollToAlignment = nextProps.scrollToAlignment,
          scrollToColumn = nextProps.scrollToColumn,
          width = nextProps.width;
      var scrollLeft = prevState.scrollLeft,
          instanceProps = prevState.instanceProps;

      if (columnCount > 0) {
        var finalColumn = columnCount - 1;
        var targetIndex = scrollToColumn < 0 ? finalColumn : Math.min(finalColumn, scrollToColumn);
        var totalRowsHeight = instanceProps.rowSizeAndPositionManager.getTotalSize();
        var scrollBarSize = instanceProps.scrollbarSizeMeasured && totalRowsHeight > height ? instanceProps.scrollbarSize : 0;
        return instanceProps.columnSizeAndPositionManager.getUpdatedOffsetForIndex({
          align: scrollToAlignment,
          containerSize: width - scrollBarSize,
          currentOffset: scrollLeft,
          targetIndex: targetIndex
        });
      }

      return 0;
    }
  }, {
    key: '_getScrollLeftForScrollToColumnStateUpdate',
    value: function _getScrollLeftForScrollToColumnStateUpdate(nextProps, prevState) {
      var scrollLeft = prevState.scrollLeft;

      var calculatedScrollLeft = Grid._getCalculatedScrollLeft(nextProps, prevState);

      if (typeof calculatedScrollLeft === 'number' && calculatedScrollLeft >= 0 && scrollLeft !== calculatedScrollLeft) {
        return Grid._getScrollToPositionStateUpdate({
          prevState: prevState,
          scrollLeft: calculatedScrollLeft,
          scrollTop: -1
        });
      }

      return null;
    }
  }, {
    key: '_getCalculatedScrollTop',
    value: function _getCalculatedScrollTop(nextProps, prevState) {
      var height = nextProps.height,
          rowCount = nextProps.rowCount,
          scrollToAlignment = nextProps.scrollToAlignment,
          scrollToRow = nextProps.scrollToRow,
          width = nextProps.width;
      var scrollTop = prevState.scrollTop,
          instanceProps = prevState.instanceProps;

      if (rowCount > 0) {
        var finalRow = rowCount - 1;
        var targetIndex = scrollToRow < 0 ? finalRow : Math.min(finalRow, scrollToRow);
        var totalColumnsWidth = instanceProps.columnSizeAndPositionManager.getTotalSize();
        var scrollBarSize = instanceProps.scrollbarSizeMeasured && totalColumnsWidth > width ? instanceProps.scrollbarSize : 0;
        return instanceProps.rowSizeAndPositionManager.getUpdatedOffsetForIndex({
          align: scrollToAlignment,
          containerSize: height - scrollBarSize,
          currentOffset: scrollTop,
          targetIndex: targetIndex
        });
      }

      return 0;
    }
  }, {
    key: '_getScrollTopForScrollToRowStateUpdate',
    value: function _getScrollTopForScrollToRowStateUpdate(nextProps, prevState) {
      var scrollTop = prevState.scrollTop;

      var calculatedScrollTop = Grid._getCalculatedScrollTop(nextProps, prevState);

      if (typeof calculatedScrollTop === 'number' && calculatedScrollTop >= 0 && scrollTop !== calculatedScrollTop) {
        return Grid._getScrollToPositionStateUpdate({
          prevState: prevState,
          scrollLeft: -1,
          scrollTop: calculatedScrollTop
        });
      }

      return null;
    }
  }]);

  return Grid;
}(react["PureComponent"]);

Grid_Grid.defaultProps = {
  'aria-label': 'grid',
  'aria-readonly': true,
  autoContainerWidth: false,
  autoHeight: false,
  autoWidth: false,
  cellRangeRenderer: defaultCellRangeRenderer,
  containerRole: 'rowgroup',
  containerStyle: {},
  estimatedColumnSize: 100,
  estimatedRowSize: 30,
  getScrollbarSize: scrollbarSize_default.a,
  noContentRenderer: renderNull,
  onScroll: function onScroll() {},
  onScrollbarPresenceChange: function onScrollbarPresenceChange() {},
  onSectionRendered: function onSectionRendered() {},
  overscanColumnCount: 0,
  overscanIndicesGetter: defaultOverscanIndicesGetter,
  overscanRowCount: 10,
  role: 'grid',
  scrollingResetTimeInterval: DEFAULT_SCROLLING_RESET_TIME_INTERVAL,
  scrollToAlignment: 'auto',
  scrollToColumn: -1,
  scrollToRow: -1,
  style: {},
  tabIndex: 0,
  isScrollingOptOut: false
};
Grid_Grid.propTypes =  true ? null : undefined;
Object(react_lifecycles_compat_es["polyfill"])(Grid_Grid);
/* harmony default export */ var es_Grid_Grid = (Grid_Grid);















// CONCATENATED MODULE: ./node_modules/@adobe/react-virtualized/dist/es/Grid/accessibilityOverscanIndicesGetter.js
var accessibilityOverscanIndicesGetter_SCROLL_DIRECTION_BACKWARD = -1;
var accessibilityOverscanIndicesGetter_SCROLL_DIRECTION_FORWARD = 1;
var accessibilityOverscanIndicesGetter_SCROLL_DIRECTION_HORIZONTAL = 'horizontal';
var accessibilityOverscanIndicesGetter_SCROLL_DIRECTION_VERTICAL = 'vertical';
/**
 * Calculates the number of cells to overscan before and after a specified range.
 * This function ensures that overscanning doesn't exceed the available cells.
 */

function accessibilityOverscanIndicesGetter_defaultOverscanIndicesGetter(_ref) {
  var cellCount = _ref.cellCount,
      overscanCellsCount = _ref.overscanCellsCount,
      scrollDirection = _ref.scrollDirection,
      startIndex = _ref.startIndex,
      stopIndex = _ref.stopIndex; // Make sure we render at least 1 cell extra before and after (except near boundaries)
  // This is necessary in order to support keyboard navigation (TAB/SHIFT+TAB) in some cases
  // For more info see issues #625

  overscanCellsCount = Math.max(1, overscanCellsCount);

  if (scrollDirection === accessibilityOverscanIndicesGetter_SCROLL_DIRECTION_FORWARD) {
    return {
      overscanStartIndex: Math.max(0, startIndex - 1),
      overscanStopIndex: Math.min(cellCount - 1, stopIndex + overscanCellsCount)
    };
  } else {
    return {
      overscanStartIndex: Math.max(0, startIndex - overscanCellsCount),
      overscanStopIndex: Math.min(cellCount - 1, stopIndex + 1)
    };
  }
}


// CONCATENATED MODULE: ./node_modules/@adobe/react-virtualized/dist/es/Grid/index.js





















// CONCATENATED MODULE: ./node_modules/@adobe/react-virtualized/dist/es/ArrowKeyStepper/types.js
var bpfrpt_proptype_ScrollIndices =  true ? null : undefined;


// CONCATENATED MODULE: ./node_modules/@adobe/react-virtualized/dist/es/ArrowKeyStepper/ArrowKeyStepper.js







/**
 * This HOC decorates a virtualized component and responds to arrow-key events by scrolling one row or column at a time.
 */

var ArrowKeyStepper_ArrowKeyStepper = function (_React$PureComponent) {
  inherits_default()(ArrowKeyStepper, _React$PureComponent);

  function ArrowKeyStepper() {
    var _ref;

    var _temp, _this, _ret;

    classCallCheck_default()(this, ArrowKeyStepper);

    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    return _ret = (_temp = (_this = possibleConstructorReturn_default()(this, (_ref = ArrowKeyStepper.__proto__ || get_prototype_of_default()(ArrowKeyStepper)).call.apply(_ref, [this].concat(args))), _this), _this.state = {
      scrollToColumn: 0,
      scrollToRow: 0
    }, _this._columnStartIndex = 0, _this._columnStopIndex = 0, _this._rowStartIndex = 0, _this._rowStopIndex = 0, _this._onKeyDown = function (event) {
      var _this$props = _this.props,
          columnCount = _this$props.columnCount,
          disabled = _this$props.disabled,
          mode = _this$props.mode,
          rowCount = _this$props.rowCount;

      if (disabled) {
        return;
      }

      var _this$_getScrollState = _this._getScrollState(),
          scrollToColumnPrevious = _this$_getScrollState.scrollToColumn,
          scrollToRowPrevious = _this$_getScrollState.scrollToRow;

      var _this$_getScrollState2 = _this._getScrollState(),
          scrollToColumn = _this$_getScrollState2.scrollToColumn,
          scrollToRow = _this$_getScrollState2.scrollToRow; // The above cases all prevent default event event behavior.
      // This is to keep the grid from scrolling after the snap-to update.


      switch (event.key) {
        case 'ArrowDown':
          scrollToRow = mode === 'cells' ? Math.min(scrollToRow + 1, rowCount - 1) : Math.min(_this._rowStopIndex + 1, rowCount - 1);
          break;

        case 'ArrowLeft':
          scrollToColumn = mode === 'cells' ? Math.max(scrollToColumn - 1, 0) : Math.max(_this._columnStartIndex - 1, 0);
          break;

        case 'ArrowRight':
          scrollToColumn = mode === 'cells' ? Math.min(scrollToColumn + 1, columnCount - 1) : Math.min(_this._columnStopIndex + 1, columnCount - 1);
          break;

        case 'ArrowUp':
          scrollToRow = mode === 'cells' ? Math.max(scrollToRow - 1, 0) : Math.max(_this._rowStartIndex - 1, 0);
          break;
      }

      if (scrollToColumn !== scrollToColumnPrevious || scrollToRow !== scrollToRowPrevious) {
        event.preventDefault();

        _this._updateScrollState({
          scrollToColumn: scrollToColumn,
          scrollToRow: scrollToRow
        });
      }
    }, _this._onSectionRendered = function (_ref2) {
      var columnStartIndex = _ref2.columnStartIndex,
          columnStopIndex = _ref2.columnStopIndex,
          rowStartIndex = _ref2.rowStartIndex,
          rowStopIndex = _ref2.rowStopIndex;
      _this._columnStartIndex = columnStartIndex;
      _this._columnStopIndex = columnStopIndex;
      _this._rowStartIndex = rowStartIndex;
      _this._rowStopIndex = rowStopIndex;
    }, _temp), possibleConstructorReturn_default()(_this, _ret);
  }

  createClass_default()(ArrowKeyStepper, [{
    key: 'setScrollIndexes',
    value: function setScrollIndexes(_ref3) {
      var scrollToColumn = _ref3.scrollToColumn,
          scrollToRow = _ref3.scrollToRow;
      this.setState({
        scrollToRow: scrollToRow,
        scrollToColumn: scrollToColumn
      });
    }
  }, {
    key: 'render',
    value: function render() {
      var _props = this.props,
          className = _props.className,
          children = _props.children;

      var _getScrollState2 = this._getScrollState(),
          scrollToColumn = _getScrollState2.scrollToColumn,
          scrollToRow = _getScrollState2.scrollToRow;

      return react["createElement"]('div', {
        className: className,
        onKeyDown: this._onKeyDown
      }, children({
        onSectionRendered: this._onSectionRendered,
        scrollToColumn: scrollToColumn,
        scrollToRow: scrollToRow
      }));
    }
  }, {
    key: '_getScrollState',
    value: function _getScrollState() {
      return this.props.isControlled ? this.props : this.state;
    }
  }, {
    key: '_updateScrollState',
    value: function _updateScrollState(_ref4) {
      var scrollToColumn = _ref4.scrollToColumn,
          scrollToRow = _ref4.scrollToRow;
      var _props2 = this.props,
          isControlled = _props2.isControlled,
          onScrollToChange = _props2.onScrollToChange;

      if (typeof onScrollToChange === 'function') {
        onScrollToChange({
          scrollToColumn: scrollToColumn,
          scrollToRow: scrollToRow
        });
      }

      if (!isControlled) {
        this.setState({
          scrollToColumn: scrollToColumn,
          scrollToRow: scrollToRow
        });
      }
    }
  }], [{
    key: 'getDerivedStateFromProps',
    value: function getDerivedStateFromProps(nextProps, prevState) {
      if (nextProps.isControlled) {
        return null;
      }

      if (nextProps.scrollToColumn !== prevState.scrollToColumn || nextProps.scrollToRow !== prevState.scrollToRow) {
        return {
          scrollToColumn: nextProps.scrollToColumn,
          scrollToRow: nextProps.scrollToRow
        };
      }

      return null;
    }
  }]);

  return ArrowKeyStepper;
}(react["PureComponent"]);

ArrowKeyStepper_ArrowKeyStepper.defaultProps = {
  disabled: false,
  isControlled: false,
  mode: 'edges',
  scrollToColumn: 0,
  scrollToRow: 0
};
ArrowKeyStepper_ArrowKeyStepper.propTypes =  true ? null : undefined;
Object(react_lifecycles_compat_es["polyfill"])(ArrowKeyStepper_ArrowKeyStepper);
/* harmony default export */ var es_ArrowKeyStepper_ArrowKeyStepper = (ArrowKeyStepper_ArrowKeyStepper);



// CONCATENATED MODULE: ./node_modules/@adobe/react-virtualized/dist/es/ArrowKeyStepper/index.js




// EXTERNAL MODULE: ./node_modules/@adobe/react-virtualized/dist/es/vendor/detectElementResize.js
var detectElementResize = __webpack_require__("2pph");

// CONCATENATED MODULE: ./node_modules/@adobe/react-virtualized/dist/es/AutoSizer/AutoSizer.js









var AutoSizer_AutoSizer = function (_React$PureComponent) {
  inherits_default()(AutoSizer, _React$PureComponent);

  function AutoSizer() {
    var _ref;

    var _temp, _this, _ret;

    classCallCheck_default()(this, AutoSizer);

    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    return _ret = (_temp = (_this = possibleConstructorReturn_default()(this, (_ref = AutoSizer.__proto__ || get_prototype_of_default()(AutoSizer)).call.apply(_ref, [this].concat(args))), _this), _this.state = {
      height: _this.props.defaultHeight || 0,
      width: _this.props.defaultWidth || 0
    }, _this._onResize = function () {
      var _this$props = _this.props,
          disableHeight = _this$props.disableHeight,
          disableWidth = _this$props.disableWidth,
          onResize = _this$props.onResize;

      if (_this._parentNode) {
        // Guard against AutoSizer component being removed from the DOM immediately after being added.
        // This can result in invalid style values which can result in NaN values if we don't handle them.
        // See issue #150 for more context.
        var _height = _this._parentNode.offsetHeight || 0;

        var _width = _this._parentNode.offsetWidth || 0;

        var _style = window.getComputedStyle(_this._parentNode) || {};

        var paddingLeft = parseInt(_style.paddingLeft, 10) || 0;
        var paddingRight = parseInt(_style.paddingRight, 10) || 0;
        var paddingTop = parseInt(_style.paddingTop, 10) || 0;
        var paddingBottom = parseInt(_style.paddingBottom, 10) || 0;
        var newHeight = _height - paddingTop - paddingBottom;
        var newWidth = _width - paddingLeft - paddingRight;

        if (!disableHeight && _this.state.height !== newHeight || !disableWidth && _this.state.width !== newWidth) {
          _this.setState({
            height: _height - paddingTop - paddingBottom,
            width: _width - paddingLeft - paddingRight
          });

          onResize({
            height: _height,
            width: _width
          });
        }
      }
    }, _this._setRef = function (autoSizer) {
      _this._autoSizer = autoSizer;
    }, _temp), possibleConstructorReturn_default()(_this, _ret);
  }

  createClass_default()(AutoSizer, [{
    key: 'componentDidMount',
    value: function componentDidMount() {
      var nonce = this.props.nonce;

      if (this._autoSizer && this._autoSizer.parentNode && this._autoSizer.parentNode.ownerDocument && this._autoSizer.parentNode.ownerDocument.defaultView && this._autoSizer.parentNode instanceof this._autoSizer.parentNode.ownerDocument.defaultView.HTMLElement) {
        // Delay access of parentNode until mount.
        // This handles edge-cases where the component has already been unmounted before its ref has been set,
        // As well as libraries like react-lite which have a slightly different lifecycle.
        this._parentNode = this._autoSizer.parentNode; // Defer requiring resize handler in order to support server-side rendering.
        // See issue #41

        this._detectElementResize = Object(detectElementResize["a" /* default */])(nonce);

        this._detectElementResize.addResizeListener(this._parentNode, this._onResize);

        this._onResize();
      }
    }
  }, {
    key: 'componentWillUnmount',
    value: function componentWillUnmount() {
      if (this._detectElementResize && this._parentNode) {
        this._detectElementResize.removeResizeListener(this._parentNode, this._onResize);
      }
    }
  }, {
    key: 'render',
    value: function render() {
      var _props = this.props,
          children = _props.children,
          className = _props.className,
          disableHeight = _props.disableHeight,
          disableWidth = _props.disableWidth,
          style = _props.style;
      var _state = this.state,
          height = _state.height,
          width = _state.width; // Outer div should not force width/height since that may prevent containers from shrinking.
      // Inner component should overflow and use calculated width/height.
      // See issue #68 for more information.

      var outerStyle = {
        overflow: 'visible'
      };
      var childParams = {};

      if (!disableHeight) {
        outerStyle.height = 0;
        childParams.height = height;
      }

      if (!disableWidth) {
        outerStyle.width = 0;
        childParams.width = width;
      }
      /**
       * TODO: Avoid rendering children before the initial measurements have been collected.
       * At best this would just be wasting cycles.
       * Add this check into version 10 though as it could break too many ref callbacks in version 9.
       * Note that if default width/height props were provided this would still work with SSR.
      if (
        height !== 0 &&
        width !== 0
      ) {
        child = children({ height, width })
      }
      */


      return react["createElement"]('div', {
        className: className,
        ref: this._setRef,
        style: extends_default()({}, outerStyle, style)
      }, children(childParams));
    }
  }]);

  return AutoSizer;
}(react["PureComponent"]);

AutoSizer_AutoSizer.defaultProps = {
  onResize: function onResize() {},
  disableHeight: false,
  disableWidth: false,
  style: {}
};
AutoSizer_AutoSizer.propTypes =  true ? null : undefined;
/* harmony default export */ var es_AutoSizer_AutoSizer = (AutoSizer_AutoSizer);

// CONCATENATED MODULE: ./node_modules/@adobe/react-virtualized/dist/es/AutoSizer/index.js


// EXTERNAL MODULE: ./node_modules/react-dom/index.js
var react_dom = __webpack_require__("i8i4");

// CONCATENATED MODULE: ./node_modules/@adobe/react-virtualized/dist/es/CellMeasurer/types.js
var bpfrpt_proptype_CellMeasureCache =  true ? null : undefined;


// CONCATENATED MODULE: ./node_modules/@adobe/react-virtualized/dist/es/CellMeasurer/CellMeasurer.js







/**
 * Wraps a cell and measures its rendered content.
 * Measurements are stored in a per-cell cache.
 * Cached-content is not be re-measured.
 */

var CellMeasurer_CellMeasurer = function (_React$PureComponent) {
  inherits_default()(CellMeasurer, _React$PureComponent);

  function CellMeasurer() {
    var _ref;

    var _temp, _this, _ret;

    classCallCheck_default()(this, CellMeasurer);

    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    return _ret = (_temp = (_this = possibleConstructorReturn_default()(this, (_ref = CellMeasurer.__proto__ || get_prototype_of_default()(CellMeasurer)).call.apply(_ref, [this].concat(args))), _this), _this._measure = function () {
      var _this$props = _this.props,
          cache = _this$props.cache,
          _this$props$columnInd = _this$props.columnIndex,
          columnIndex = _this$props$columnInd === undefined ? 0 : _this$props$columnInd,
          parent = _this$props.parent,
          _this$props$rowIndex = _this$props.rowIndex,
          rowIndex = _this$props$rowIndex === undefined ? _this.props.index || 0 : _this$props$rowIndex;

      var _this$_getCellMeasure = _this._getCellMeasurements(),
          height = _this$_getCellMeasure.height,
          width = _this$_getCellMeasure.width;

      if (height !== cache.getHeight(rowIndex, columnIndex) || width !== cache.getWidth(rowIndex, columnIndex)) {
        cache.set(rowIndex, columnIndex, width, height);

        if (parent && typeof parent.recomputeGridSize === 'function') {
          parent.recomputeGridSize({
            columnIndex: columnIndex,
            rowIndex: rowIndex
          });
        }
      }
    }, _temp), possibleConstructorReturn_default()(_this, _ret);
  }

  createClass_default()(CellMeasurer, [{
    key: 'componentDidMount',
    value: function componentDidMount() {
      this._maybeMeasureCell();
    }
  }, {
    key: 'componentDidUpdate',
    value: function componentDidUpdate() {
      this._maybeMeasureCell();
    }
  }, {
    key: 'render',
    value: function render() {
      var children = this.props.children;
      return typeof children === 'function' ? children({
        measure: this._measure
      }) : children;
    }
  }, {
    key: '_getCellMeasurements',
    value: function _getCellMeasurements() {
      var cache = this.props.cache;
      var node = Object(react_dom["findDOMNode"])(this); // TODO Check for a bad combination of fixedWidth and missing numeric width or vice versa with height

      if (node && node.ownerDocument && node.ownerDocument.defaultView && node instanceof node.ownerDocument.defaultView.HTMLElement) {
        var styleWidth = node.style.width;
        var styleHeight = node.style.height; // If we are re-measuring a cell that has already been measured,
        // It will have a hard-coded width/height from the previous measurement.
        // The fact that we are measuring indicates this measurement is probably stale,
        // So explicitly clear it out (eg set to "auto") so we can recalculate.
        // See issue #593 for more info.
        // Even if we are measuring initially- if we're inside of a MultiGrid component,
        // Explicitly clear width/height before measuring to avoid being tainted by another Grid.
        // eg top/left Grid renders before bottom/right Grid
        // Since the CellMeasurerCache is shared between them this taints derived cell size values.

        if (!cache.hasFixedWidth()) {
          node.style.width = 'auto';
        }

        if (!cache.hasFixedHeight()) {
          node.style.height = 'auto';
        }

        var height = Math.ceil(node.offsetHeight);
        var width = Math.ceil(node.offsetWidth); // Reset after measuring to avoid breaking styles; see #660

        if (styleWidth) {
          node.style.width = styleWidth;
        }

        if (styleHeight) {
          node.style.height = styleHeight;
        }

        return {
          height: height,
          width: width
        };
      } else {
        return {
          height: 0,
          width: 0
        };
      }
    }
  }, {
    key: '_maybeMeasureCell',
    value: function _maybeMeasureCell() {
      var _props = this.props,
          cache = _props.cache,
          _props$columnIndex = _props.columnIndex,
          columnIndex = _props$columnIndex === undefined ? 0 : _props$columnIndex,
          parent = _props.parent,
          _props$rowIndex = _props.rowIndex,
          rowIndex = _props$rowIndex === undefined ? this.props.index || 0 : _props$rowIndex;

      if (!cache.has(rowIndex, columnIndex)) {
        var _getCellMeasurements2 = this._getCellMeasurements(),
            height = _getCellMeasurements2.height,
            width = _getCellMeasurements2.width;

        cache.set(rowIndex, columnIndex, width, height); // If size has changed, let Grid know to re-render.

        if (parent && typeof parent.invalidateCellSizeAfterRender === 'function') {
          parent.invalidateCellSizeAfterRender({
            columnIndex: columnIndex,
            rowIndex: rowIndex
          });
        }
      }
    }
  }]);

  return CellMeasurer;
}(react["PureComponent"]); // Used for DEV mode warning check


CellMeasurer_CellMeasurer.__internalCellMeasurerFlag = false;
CellMeasurer_CellMeasurer.propTypes =  true ? null : undefined;
/* harmony default export */ var es_CellMeasurer_CellMeasurer = (CellMeasurer_CellMeasurer);

if (false) {}



// CONCATENATED MODULE: ./node_modules/@adobe/react-virtualized/dist/es/CellMeasurer/CellMeasurerCache.js


var DEFAULT_HEIGHT = 30;
var DEFAULT_WIDTH = 100; // Enables more intelligent mapping of a given column and row index to an item ID.
// This prevents a cell cache from being invalidated when its parent collection is modified.

/**
 * Caches measurements for a given cell.
 */

var CellMeasurerCache_CellMeasurerCache = function () {
  function CellMeasurerCache() {
    var _this = this;

    var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};

    classCallCheck_default()(this, CellMeasurerCache);

    this._cellHeightCache = {};
    this._cellWidthCache = {};
    this._columnWidthCache = {};
    this._rowHeightCache = {};
    this._columnCount = 0;
    this._rowCount = 0;

    this.columnWidth = function (_ref) {
      var index = _ref.index;

      var key = _this._keyMapper(0, index);

      return _this._columnWidthCache.hasOwnProperty(key) ? _this._columnWidthCache[key] : _this._defaultWidth;
    };

    this.rowHeight = function (_ref2) {
      var index = _ref2.index;

      var key = _this._keyMapper(index, 0);

      return _this._rowHeightCache.hasOwnProperty(key) ? _this._rowHeightCache[key] : _this._defaultHeight;
    };

    var defaultHeight = params.defaultHeight,
        defaultWidth = params.defaultWidth,
        fixedHeight = params.fixedHeight,
        fixedWidth = params.fixedWidth,
        keyMapper = params.keyMapper,
        minHeight = params.minHeight,
        minWidth = params.minWidth;
    this._hasFixedHeight = fixedHeight === true;
    this._hasFixedWidth = fixedWidth === true;
    this._minHeight = minHeight || 0;
    this._minWidth = minWidth || 0;
    this._keyMapper = keyMapper || defaultKeyMapper;
    this._defaultHeight = Math.max(this._minHeight, typeof defaultHeight === 'number' ? defaultHeight : DEFAULT_HEIGHT);
    this._defaultWidth = Math.max(this._minWidth, typeof defaultWidth === 'number' ? defaultWidth : DEFAULT_WIDTH);

    if (false) {}
  }

  createClass_default()(CellMeasurerCache, [{
    key: 'clear',
    value: function clear(rowIndex) {
      var columnIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;

      var key = this._keyMapper(rowIndex, columnIndex);

      delete this._cellHeightCache[key];
      delete this._cellWidthCache[key];

      this._updateCachedColumnAndRowSizes(rowIndex, columnIndex);
    }
  }, {
    key: 'clearAll',
    value: function clearAll() {
      this._cellHeightCache = {};
      this._cellWidthCache = {};
      this._columnWidthCache = {};
      this._rowHeightCache = {};
      this._rowCount = 0;
      this._columnCount = 0;
    }
  }, {
    key: 'hasFixedHeight',
    value: function hasFixedHeight() {
      return this._hasFixedHeight;
    }
  }, {
    key: 'hasFixedWidth',
    value: function hasFixedWidth() {
      return this._hasFixedWidth;
    }
  }, {
    key: 'getHeight',
    value: function getHeight(rowIndex) {
      var columnIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;

      if (this._hasFixedHeight) {
        return this._defaultHeight;
      } else {
        var _key = this._keyMapper(rowIndex, columnIndex);

        return this._cellHeightCache.hasOwnProperty(_key) ? Math.max(this._minHeight, this._cellHeightCache[_key]) : this._defaultHeight;
      }
    }
  }, {
    key: 'getWidth',
    value: function getWidth(rowIndex) {
      var columnIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;

      if (this._hasFixedWidth) {
        return this._defaultWidth;
      } else {
        var _key2 = this._keyMapper(rowIndex, columnIndex);

        return this._cellWidthCache.hasOwnProperty(_key2) ? Math.max(this._minWidth, this._cellWidthCache[_key2]) : this._defaultWidth;
      }
    }
  }, {
    key: 'has',
    value: function has(rowIndex) {
      var columnIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;

      var key = this._keyMapper(rowIndex, columnIndex);

      return this._cellHeightCache.hasOwnProperty(key);
    }
  }, {
    key: 'set',
    value: function set(rowIndex, columnIndex, width, height) {
      var key = this._keyMapper(rowIndex, columnIndex);

      if (columnIndex >= this._columnCount) {
        this._columnCount = columnIndex + 1;
      }

      if (rowIndex >= this._rowCount) {
        this._rowCount = rowIndex + 1;
      } // Size is cached per cell so we don't have to re-measure if cells are re-ordered.


      this._cellHeightCache[key] = height;
      this._cellWidthCache[key] = width;

      this._updateCachedColumnAndRowSizes(rowIndex, columnIndex);
    }
  }, {
    key: '_updateCachedColumnAndRowSizes',
    value: function _updateCachedColumnAndRowSizes(rowIndex, columnIndex) {
      // :columnWidth and :rowHeight are derived based on all cells in a column/row.
      // Pre-cache these derived values for faster lookup later.
      // Reads are expected to occur more frequently than writes in this case.
      // Only update non-fixed dimensions though to avoid doing unnecessary work.
      if (!this._hasFixedWidth) {
        var columnWidth = 0;

        for (var i = 0; i < this._rowCount; i++) {
          columnWidth = Math.max(columnWidth, this.getWidth(i, columnIndex));
        }

        var columnKey = this._keyMapper(0, columnIndex);

        this._columnWidthCache[columnKey] = columnWidth;
      }

      if (!this._hasFixedHeight) {
        var rowHeight = 0;

        for (var _i = 0; _i < this._columnCount; _i++) {
          rowHeight = Math.max(rowHeight, this.getHeight(rowIndex, _i));
        }

        var rowKey = this._keyMapper(rowIndex, 0);

        this._rowHeightCache[rowKey] = rowHeight;
      }
    }
  }, {
    key: 'defaultHeight',
    get: function get() {
      return this._defaultHeight;
    }
  }, {
    key: 'defaultWidth',
    get: function get() {
      return this._defaultWidth;
    }
  }]);

  return CellMeasurerCache;
}();

/* harmony default export */ var CellMeasurer_CellMeasurerCache = (CellMeasurerCache_CellMeasurerCache);

function defaultKeyMapper(rowIndex, columnIndex) {
  return rowIndex + '-' + columnIndex;
}


// CONCATENATED MODULE: ./node_modules/@adobe/react-virtualized/dist/es/CellMeasurer/index.js


/* harmony default export */ var es_CellMeasurer = (es_CellMeasurer_CellMeasurer);

// CONCATENATED MODULE: ./node_modules/@adobe/react-virtualized/dist/es/Collection/CollectionView.js











 // @TODO Merge Collection and CollectionView

/**
 * Specifies the number of milliseconds during which to disable pointer events while a scroll is in progress.
 * This improves performance and makes scrolling smoother.
 */

var IS_SCROLLING_TIMEOUT = 150;
/**
 * Controls whether the Grid updates the DOM element's scrollLeft/scrollTop based on the current state or just observes it.
 * This prevents Grid from interrupting mouse-wheel animations (see issue #2).
 */

var CollectionView_SCROLL_POSITION_CHANGE_REASONS = {
  OBSERVED: 'observed',
  REQUESTED: 'requested'
};
/**
 * Monitors changes in properties (eg. cellCount) and state (eg. scroll offsets) to determine when rendering needs to occur.
 * This component does not render any visible content itself; it defers to the specified :cellLayoutManager.
 */

var CollectionView_CollectionView = function (_React$PureComponent) {
  inherits_default()(CollectionView, _React$PureComponent); // Invokes callbacks only when their values have changed.


  function CollectionView() {
    var _ref;

    classCallCheck_default()(this, CollectionView);

    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    } // If this component is being rendered server-side, getScrollbarSize() will return undefined.
    // We handle this case in componentDidMount()


    var _this = possibleConstructorReturn_default()(this, (_ref = CollectionView.__proto__ || get_prototype_of_default()(CollectionView)).call.apply(_ref, [this].concat(args)));

    _this.state = {
      isScrolling: false,
      scrollLeft: 0,
      scrollTop: 0
    };
    _this._calculateSizeAndPositionDataOnNextUpdate = false;
    _this._onSectionRenderedMemoizer = createCallbackMemoizer();
    _this._onScrollMemoizer = createCallbackMemoizer(false);

    _this._invokeOnSectionRenderedHelper = function () {
      var _this$props = _this.props,
          cellLayoutManager = _this$props.cellLayoutManager,
          onSectionRendered = _this$props.onSectionRendered;

      _this._onSectionRenderedMemoizer({
        callback: onSectionRendered,
        indices: {
          indices: cellLayoutManager.getLastRenderedIndices()
        }
      });
    };

    _this._setScrollingContainerRef = function (ref) {
      _this._scrollingContainer = ref;
    };

    _this._updateScrollPositionForScrollToCell = function () {
      var _this$props2 = _this.props,
          cellLayoutManager = _this$props2.cellLayoutManager,
          height = _this$props2.height,
          scrollToAlignment = _this$props2.scrollToAlignment,
          scrollToCell = _this$props2.scrollToCell,
          width = _this$props2.width;
      var _this$state = _this.state,
          scrollLeft = _this$state.scrollLeft,
          scrollTop = _this$state.scrollTop;

      if (scrollToCell >= 0) {
        var scrollPosition = cellLayoutManager.getScrollPositionForCell({
          align: scrollToAlignment,
          cellIndex: scrollToCell,
          height: height,
          scrollLeft: scrollLeft,
          scrollTop: scrollTop,
          width: width
        });

        if (scrollPosition.scrollLeft !== scrollLeft || scrollPosition.scrollTop !== scrollTop) {
          _this._setScrollPosition(scrollPosition);
        }
      }
    };

    _this._onScroll = function (event) {
      // In certain edge-cases React dispatches an onScroll event with an invalid target.scrollLeft / target.scrollTop.
      // This invalid event can be detected by comparing event.target to this component's scrollable DOM element.
      // See issue #404 for more information.
      if (event.target !== _this._scrollingContainer) {
        return;
      } // Prevent pointer events from interrupting a smooth scroll


      _this._enablePointerEventsAfterDelay(); // When this component is shrunk drastically, React dispatches a series of back-to-back scroll events,
      // Gradually converging on a scrollTop that is within the bounds of the new, smaller height.
      // This causes a series of rapid renders that is slow for long lists.
      // We can avoid that by doing some simple bounds checking to ensure that scrollTop never exceeds the total height.


      var _this$props3 = _this.props,
          cellLayoutManager = _this$props3.cellLayoutManager,
          height = _this$props3.height,
          isScrollingChange = _this$props3.isScrollingChange,
          width = _this$props3.width;
      var scrollbarSize = _this._scrollbarSize;

      var _cellLayoutManager$ge = cellLayoutManager.getTotalSize(),
          totalHeight = _cellLayoutManager$ge.height,
          totalWidth = _cellLayoutManager$ge.width;

      var scrollLeft = Math.max(0, Math.min(totalWidth - width + scrollbarSize, event.target.scrollLeft));
      var scrollTop = Math.max(0, Math.min(totalHeight - height + scrollbarSize, event.target.scrollTop)); // Certain devices (like Apple touchpad) rapid-fire duplicate events.
      // Don't force a re-render if this is the case.
      // The mouse may move faster then the animation frame does.
      // Use requestAnimationFrame to avoid over-updating.

      if (_this.state.scrollLeft !== scrollLeft || _this.state.scrollTop !== scrollTop) {
        // Browsers with cancelable scroll events (eg. Firefox) interrupt scrolling animations if scrollTop/scrollLeft is set.
        // Other browsers (eg. Safari) don't scroll as well without the help under certain conditions (DOM or style changes during scrolling).
        // All things considered, this seems to be the best current work around that I'm aware of.
        // For more information see https://github.com/bvaughn/react-virtualized/pull/124
        var scrollPositionChangeReason = event.cancelable ? CollectionView_SCROLL_POSITION_CHANGE_REASONS.OBSERVED : CollectionView_SCROLL_POSITION_CHANGE_REASONS.REQUESTED; // Synchronously set :isScrolling the first time (since _setNextState will reschedule its animation frame each time it's called)

        if (!_this.state.isScrolling) {
          isScrollingChange(true);
        }

        _this.setState({
          isScrolling: true,
          scrollLeft: scrollLeft,
          scrollPositionChangeReason: scrollPositionChangeReason,
          scrollTop: scrollTop
        });
      }

      _this._invokeOnScrollMemoizer({
        scrollLeft: scrollLeft,
        scrollTop: scrollTop,
        totalWidth: totalWidth,
        totalHeight: totalHeight
      });
    };

    _this._scrollbarSize = scrollbarSize_default()();

    if (_this._scrollbarSize === undefined) {
      _this._scrollbarSizeMeasured = false;
      _this._scrollbarSize = 0;
    } else {
      _this._scrollbarSizeMeasured = true;
    }

    return _this;
  }
  /**
   * Forced recompute of cell sizes and positions.
   * This function should be called if cell sizes have changed but nothing else has.
   * Since cell positions are calculated by callbacks, the collection view has no way of detecting when the underlying data has changed.
   */


  createClass_default()(CollectionView, [{
    key: 'recomputeCellSizesAndPositions',
    value: function recomputeCellSizesAndPositions() {
      this._calculateSizeAndPositionDataOnNextUpdate = true;
      this.forceUpdate();
    }
    /* ---------------------------- Component lifecycle methods ---------------------------- */

    /**
     * @private
     * This method updates scrollLeft/scrollTop in state for the following conditions:
     * 1) Empty content (0 rows or columns)
     * 2) New scroll props overriding the current state
     * 3) Cells-count or cells-size has changed, making previous scroll offsets invalid
     */

  }, {
    key: 'componentDidMount',
    value: function componentDidMount() {
      var _props = this.props,
          cellLayoutManager = _props.cellLayoutManager,
          scrollLeft = _props.scrollLeft,
          scrollToCell = _props.scrollToCell,
          scrollTop = _props.scrollTop; // If this component was first rendered server-side, scrollbar size will be undefined.
      // In that event we need to remeasure.

      if (!this._scrollbarSizeMeasured) {
        this._scrollbarSize = scrollbarSize_default()();
        this._scrollbarSizeMeasured = true;
        this.setState({});
      }

      if (scrollToCell >= 0) {
        this._updateScrollPositionForScrollToCell();
      } else if (scrollLeft >= 0 || scrollTop >= 0) {
        this._setScrollPosition({
          scrollLeft: scrollLeft,
          scrollTop: scrollTop
        });
      } // Update onSectionRendered callback.


      this._invokeOnSectionRenderedHelper();

      var _cellLayoutManager$ge2 = cellLayoutManager.getTotalSize(),
          totalHeight = _cellLayoutManager$ge2.height,
          totalWidth = _cellLayoutManager$ge2.width; // Initialize onScroll callback.


      this._invokeOnScrollMemoizer({
        scrollLeft: scrollLeft || 0,
        scrollTop: scrollTop || 0,
        totalHeight: totalHeight,
        totalWidth: totalWidth
      });
    }
  }, {
    key: 'componentDidUpdate',
    value: function componentDidUpdate(prevProps, prevState) {
      var _props2 = this.props,
          height = _props2.height,
          scrollToAlignment = _props2.scrollToAlignment,
          scrollToCell = _props2.scrollToCell,
          width = _props2.width;
      var _state = this.state,
          scrollLeft = _state.scrollLeft,
          scrollPositionChangeReason = _state.scrollPositionChangeReason,
          scrollTop = _state.scrollTop; // Make sure requested changes to :scrollLeft or :scrollTop get applied.
      // Assigning to scrollLeft/scrollTop tells the browser to interrupt any running scroll animations,
      // And to discard any pending async changes to the scroll position that may have happened in the meantime (e.g. on a separate scrolling thread).
      // So we only set these when we require an adjustment of the scroll position.
      // See issue #2 for more information.

      if (scrollPositionChangeReason === CollectionView_SCROLL_POSITION_CHANGE_REASONS.REQUESTED) {
        if (scrollLeft >= 0 && scrollLeft !== prevState.scrollLeft && scrollLeft !== this._scrollingContainer.scrollLeft) {
          this._scrollingContainer.scrollLeft = scrollLeft;
        }

        if (scrollTop >= 0 && scrollTop !== prevState.scrollTop && scrollTop !== this._scrollingContainer.scrollTop) {
          this._scrollingContainer.scrollTop = scrollTop;
        }
      } // Update scroll offsets if the current :scrollToCell values requires it


      if (height !== prevProps.height || scrollToAlignment !== prevProps.scrollToAlignment || scrollToCell !== prevProps.scrollToCell || width !== prevProps.width) {
        this._updateScrollPositionForScrollToCell();
      } // Update onRowsRendered callback if start/stop indices have changed


      this._invokeOnSectionRenderedHelper();
    }
  }, {
    key: 'componentWillUnmount',
    value: function componentWillUnmount() {
      if (this._disablePointerEventsTimeoutId) {
        clearTimeout(this._disablePointerEventsTimeoutId);
      }
    }
  }, {
    key: 'render',
    value: function render() {
      var _props3 = this.props,
          autoHeight = _props3.autoHeight,
          cellCount = _props3.cellCount,
          cellLayoutManager = _props3.cellLayoutManager,
          className = _props3.className,
          height = _props3.height,
          horizontalOverscanSize = _props3.horizontalOverscanSize,
          id = _props3.id,
          noContentRenderer = _props3.noContentRenderer,
          style = _props3.style,
          verticalOverscanSize = _props3.verticalOverscanSize,
          width = _props3.width;
      var _state2 = this.state,
          isScrolling = _state2.isScrolling,
          scrollLeft = _state2.scrollLeft,
          scrollTop = _state2.scrollTop; // Memoization reset

      if (this._lastRenderedCellCount !== cellCount || this._lastRenderedCellLayoutManager !== cellLayoutManager || this._calculateSizeAndPositionDataOnNextUpdate) {
        this._lastRenderedCellCount = cellCount;
        this._lastRenderedCellLayoutManager = cellLayoutManager;
        this._calculateSizeAndPositionDataOnNextUpdate = false;
        cellLayoutManager.calculateSizeAndPositionData();
      }

      var _cellLayoutManager$ge3 = cellLayoutManager.getTotalSize(),
          totalHeight = _cellLayoutManager$ge3.height,
          totalWidth = _cellLayoutManager$ge3.width; // Safely expand the rendered area by the specified overscan amount


      var left = Math.max(0, scrollLeft - horizontalOverscanSize);
      var top = Math.max(0, scrollTop - verticalOverscanSize);
      var right = Math.min(totalWidth, scrollLeft + width + horizontalOverscanSize);
      var bottom = Math.min(totalHeight, scrollTop + height + verticalOverscanSize);
      var childrenToDisplay = height > 0 && width > 0 ? cellLayoutManager.cellRenderers({
        height: bottom - top,
        isScrolling: isScrolling,
        width: right - left,
        x: left,
        y: top
      }) : [];
      var collectionStyle = {
        boxSizing: 'border-box',
        direction: 'ltr',
        height: autoHeight ? 'auto' : height,
        position: 'relative',
        WebkitOverflowScrolling: 'touch',
        width: width,
        willChange: 'transform'
      }; // Force browser to hide scrollbars when we know they aren't necessary.
      // Otherwise once scrollbars appear they may not disappear again.
      // For more info see issue #116

      var verticalScrollBarSize = totalHeight > height ? this._scrollbarSize : 0;
      var horizontalScrollBarSize = totalWidth > width ? this._scrollbarSize : 0; // Also explicitly init styles to 'auto' if scrollbars are required.
      // This works around an obscure edge case where external CSS styles have not yet been loaded,
      // But an initial scroll index of offset is set as an external prop.
      // Without this style, Grid would render the correct range of cells but would NOT update its internal offset.
      // This was originally reported via clauderic/react-infinite-calendar/issues/23

      collectionStyle.overflowX = totalWidth + verticalScrollBarSize <= width ? 'hidden' : 'auto';
      collectionStyle.overflowY = totalHeight + horizontalScrollBarSize <= height ? 'hidden' : 'auto';
      return react["createElement"]('div', {
        ref: this._setScrollingContainerRef,
        'aria-label': this.props['aria-label'],
        className: Object(clsx_m["a" /* default */])('ReactVirtualized__Collection', className),
        id: id,
        onScroll: this._onScroll,
        role: 'grid',
        style: extends_default()({}, collectionStyle, style),
        tabIndex: 0
      }, cellCount > 0 && react["createElement"]('div', {
        className: 'ReactVirtualized__Collection__innerScrollContainer',
        style: {
          height: totalHeight,
          maxHeight: totalHeight,
          maxWidth: totalWidth,
          overflow: 'hidden',
          pointerEvents: isScrolling ? 'none' : '',
          width: totalWidth
        }
      }, childrenToDisplay), cellCount === 0 && noContentRenderer());
    }
    /* ---------------------------- Helper methods ---------------------------- */

    /**
     * Sets an :isScrolling flag for a small window of time.
     * This flag is used to disable pointer events on the scrollable portion of the Collection.
     * This prevents jerky/stuttery mouse-wheel scrolling.
     */

  }, {
    key: '_enablePointerEventsAfterDelay',
    value: function _enablePointerEventsAfterDelay() {
      var _this2 = this;

      if (this._disablePointerEventsTimeoutId) {
        clearTimeout(this._disablePointerEventsTimeoutId);
      }

      this._disablePointerEventsTimeoutId = setTimeout(function () {
        var isScrollingChange = _this2.props.isScrollingChange;
        isScrollingChange(false);
        _this2._disablePointerEventsTimeoutId = null;

        _this2.setState({
          isScrolling: false
        });
      }, IS_SCROLLING_TIMEOUT);
    }
  }, {
    key: '_invokeOnScrollMemoizer',
    value: function _invokeOnScrollMemoizer(_ref2) {
      var _this3 = this;

      var scrollLeft = _ref2.scrollLeft,
          scrollTop = _ref2.scrollTop,
          totalHeight = _ref2.totalHeight,
          totalWidth = _ref2.totalWidth;

      this._onScrollMemoizer({
        callback: function callback(_ref3) {
          var scrollLeft = _ref3.scrollLeft,
              scrollTop = _ref3.scrollTop;
          var _props4 = _this3.props,
              height = _props4.height,
              onScroll = _props4.onScroll,
              width = _props4.width;
          onScroll({
            clientHeight: height,
            clientWidth: width,
            scrollHeight: totalHeight,
            scrollLeft: scrollLeft,
            scrollTop: scrollTop,
            scrollWidth: totalWidth
          });
        },
        indices: {
          scrollLeft: scrollLeft,
          scrollTop: scrollTop
        }
      });
    }
  }, {
    key: '_setScrollPosition',
    value: function _setScrollPosition(_ref4) {
      var scrollLeft = _ref4.scrollLeft,
          scrollTop = _ref4.scrollTop;
      var newState = {
        scrollPositionChangeReason: CollectionView_SCROLL_POSITION_CHANGE_REASONS.REQUESTED
      };

      if (scrollLeft >= 0) {
        newState.scrollLeft = scrollLeft;
      }

      if (scrollTop >= 0) {
        newState.scrollTop = scrollTop;
      }

      if (scrollLeft >= 0 && scrollLeft !== this.state.scrollLeft || scrollTop >= 0 && scrollTop !== this.state.scrollTop) {
        this.setState(newState);
      }
    }
  }], [{
    key: 'getDerivedStateFromProps',
    value: function getDerivedStateFromProps(nextProps, prevState) {
      if (nextProps.cellCount === 0 && (prevState.scrollLeft !== 0 || prevState.scrollTop !== 0)) {
        return {
          scrollLeft: 0,
          scrollTop: 0
        };
      } else if (nextProps.scrollLeft !== prevState.scrollLeft || nextProps.scrollTop !== prevState.scrollTop) {
        return {
          scrollLeft: nextProps.scrollLeft != null ? nextProps.scrollLeft : prevState.scrollLeft,
          scrollTop: nextProps.scrollTop != null ? nextProps.scrollTop : prevState.scrollTop
        };
      }

      return null;
    }
  }]);

  return CollectionView;
}(react["PureComponent"]);

CollectionView_CollectionView.defaultProps = {
  'aria-label': 'grid',
  horizontalOverscanSize: 0,
  noContentRenderer: function noContentRenderer() {
    return null;
  },
  onScroll: function onScroll() {
    return null;
  },
  onSectionRendered: function onSectionRendered() {
    return null;
  },
  scrollToAlignment: 'auto',
  scrollToCell: -1,
  style: {},
  verticalOverscanSize: 0
};
CollectionView_CollectionView.propTypes =  false ? undefined : {};
Object(react_lifecycles_compat_es["polyfill"])(CollectionView_CollectionView);
/* harmony default export */ var Collection_CollectionView = (CollectionView_CollectionView);
// CONCATENATED MODULE: ./node_modules/@adobe/react-virtualized/dist/es/Collection/types.js
var bpfrpt_proptype_Index =  true ? null : undefined;
var bpfrpt_proptype_PositionInfo =  true ? null : undefined;
var bpfrpt_proptype_ScrollPosition =  true ? null : undefined;
var bpfrpt_proptype_SizeAndPositionInfo =  true ? null : undefined;
var bpfrpt_proptype_SizeInfo =  true ? null : undefined;






// CONCATENATED MODULE: ./node_modules/@adobe/react-virtualized/dist/es/Collection/Section.js


/**
 * A section of the Window.
 * Window Sections are used to group nearby cells.
 * This enables us to more quickly determine which cells to display in a given region of the Window.
 * Sections have a fixed size and contain 0 to many cells (tracked by their indices).
 */

var Section_Section = function () {
  function Section(_ref) {
    var height = _ref.height,
        width = _ref.width,
        x = _ref.x,
        y = _ref.y;

    classCallCheck_default()(this, Section);

    this.height = height;
    this.width = width;
    this.x = x;
    this.y = y;
    this._indexMap = {};
    this._indices = [];
  }
  /** Add a cell to this section. */


  createClass_default()(Section, [{
    key: 'addCellIndex',
    value: function addCellIndex(_ref2) {
      var index = _ref2.index;

      if (!this._indexMap[index]) {
        this._indexMap[index] = true;

        this._indices.push(index);
      }
    }
    /** Get all cell indices that have been added to this section. */

  }, {
    key: 'getCellIndices',
    value: function getCellIndices() {
      return this._indices;
    }
    /** Intended for debugger/test purposes only */

  }, {
    key: 'toString',
    value: function toString() {
      return this.x + ',' + this.y + ' ' + this.width + 'x' + this.height;
    }
  }]);

  return Section;
}();

/* harmony default export */ var Collection_Section = (Section_Section);


// CONCATENATED MODULE: ./node_modules/@adobe/react-virtualized/dist/es/Collection/SectionManager.js



/**
 * Window Sections are used to group nearby cells.
 * This enables us to more quickly determine which cells to display in a given region of the Window.
 * 
 */


var SECTION_SIZE = 100;
/**
 * Contains 0 to many Sections.
 * Grows (and adds Sections) dynamically as cells are registered.
 * Automatically adds cells to the appropriate Section(s).
 */

var SectionManager_SectionManager = function () {
  function SectionManager() {
    var sectionSize = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : SECTION_SIZE;

    classCallCheck_default()(this, SectionManager);

    this._sectionSize = sectionSize;
    this._cellMetadata = [];
    this._sections = {};
  }
  /**
   * Gets all cell indices contained in the specified region.
   * A region may encompass 1 or more Sections.
   */


  createClass_default()(SectionManager, [{
    key: 'getCellIndices',
    value: function getCellIndices(_ref) {
      var height = _ref.height,
          width = _ref.width,
          x = _ref.x,
          y = _ref.y;
      var indices = {};
      this.getSections({
        height: height,
        width: width,
        x: x,
        y: y
      }).forEach(function (section) {
        return section.getCellIndices().forEach(function (index) {
          indices[index] = index;
        });
      }); // Object keys are strings; this function returns numbers

      return keys_default()(indices).map(function (index) {
        return indices[index];
      });
    }
    /** Get size and position information for the cell specified. */

  }, {
    key: 'getCellMetadata',
    value: function getCellMetadata(_ref2) {
      var index = _ref2.index;
      return this._cellMetadata[index];
    }
    /** Get all Sections overlapping the specified region. */

  }, {
    key: 'getSections',
    value: function getSections(_ref3) {
      var height = _ref3.height,
          width = _ref3.width,
          x = _ref3.x,
          y = _ref3.y;
      var sectionXStart = Math.floor(x / this._sectionSize);
      var sectionXStop = Math.floor((x + width - 1) / this._sectionSize);
      var sectionYStart = Math.floor(y / this._sectionSize);
      var sectionYStop = Math.floor((y + height - 1) / this._sectionSize);
      var sections = [];

      for (var sectionX = sectionXStart; sectionX <= sectionXStop; sectionX++) {
        for (var sectionY = sectionYStart; sectionY <= sectionYStop; sectionY++) {
          var key = sectionX + '.' + sectionY;

          if (!this._sections[key]) {
            this._sections[key] = new Collection_Section({
              height: this._sectionSize,
              width: this._sectionSize,
              x: sectionX * this._sectionSize,
              y: sectionY * this._sectionSize
            });
          }

          sections.push(this._sections[key]);
        }
      }

      return sections;
    }
    /** Total number of Sections based on the currently registered cells. */

  }, {
    key: 'getTotalSectionCount',
    value: function getTotalSectionCount() {
      return keys_default()(this._sections).length;
    }
    /** Intended for debugger/test purposes only */

  }, {
    key: 'toString',
    value: function toString() {
      var _this = this;

      return keys_default()(this._sections).map(function (index) {
        return _this._sections[index].toString();
      });
    }
    /** Adds a cell to the appropriate Sections and registers it metadata for later retrievable. */

  }, {
    key: 'registerCell',
    value: function registerCell(_ref4) {
      var cellMetadatum = _ref4.cellMetadatum,
          index = _ref4.index;
      this._cellMetadata[index] = cellMetadatum;
      this.getSections(cellMetadatum).forEach(function (section) {
        return section.addCellIndex({
          index: index
        });
      });
    }
  }]);

  return SectionManager;
}();

/* harmony default export */ var Collection_SectionManager = (SectionManager_SectionManager);


// CONCATENATED MODULE: ./node_modules/@adobe/react-virtualized/dist/es/Collection/utils/calculateSizeAndPositionData.js

function calculateSizeAndPositionData_calculateSizeAndPositionData(_ref) {
  var cellCount = _ref.cellCount,
      cellSizeAndPositionGetter = _ref.cellSizeAndPositionGetter,
      sectionSize = _ref.sectionSize;
  var cellMetadata = [];
  var sectionManager = new Collection_SectionManager(sectionSize);
  var height = 0;
  var width = 0;

  for (var index = 0; index < cellCount; index++) {
    var cellMetadatum = cellSizeAndPositionGetter({
      index: index
    });

    if (cellMetadatum.height == null || isNaN(cellMetadatum.height) || cellMetadatum.width == null || isNaN(cellMetadatum.width) || cellMetadatum.x == null || isNaN(cellMetadatum.x) || cellMetadatum.y == null || isNaN(cellMetadatum.y)) {
      throw Error('Invalid metadata returned for cell ' + index + ':\n        x:' + cellMetadatum.x + ', y:' + cellMetadatum.y + ', width:' + cellMetadatum.width + ', height:' + cellMetadatum.height);
    }

    height = Math.max(height, cellMetadatum.y + cellMetadatum.height);
    width = Math.max(width, cellMetadatum.x + cellMetadatum.width);
    cellMetadata[index] = cellMetadatum;
    sectionManager.registerCell({
      cellMetadatum: cellMetadatum,
      index: index
    });
  }

  return {
    cellMetadata: cellMetadata,
    height: height,
    sectionManager: sectionManager,
    width: width
  };
}
// CONCATENATED MODULE: ./node_modules/@adobe/react-virtualized/dist/es/utils/getUpdatedOffsetForIndex.js
/**
 * Determines a new offset that ensures a certain cell is visible, given the current offset.
 * If the cell is already visible then the current offset will be returned.
 * If the current offset is too great or small, it will be adjusted just enough to ensure the specified index is visible.
 *
 * @param align Desired alignment within container; one of "auto" (default), "start", or "end"
 * @param cellOffset Offset (x or y) position for cell
 * @param cellSize Size (width or height) of cell
 * @param containerSize Total size (width or height) of the container
 * @param currentOffset Container's current (x or y) offset
 * @return Offset to use to ensure the specified cell is visible
 */
function getUpdatedOffsetForIndex(_ref) {
  var _ref$align = _ref.align,
      align = _ref$align === undefined ? 'auto' : _ref$align,
      cellOffset = _ref.cellOffset,
      cellSize = _ref.cellSize,
      containerSize = _ref.containerSize,
      currentOffset = _ref.currentOffset;
  var maxOffset = cellOffset;
  var minOffset = maxOffset - containerSize + cellSize;

  switch (align) {
    case 'start':
      return maxOffset;

    case 'end':
      return minOffset;

    case 'center':
      return maxOffset - (containerSize - cellSize) / 2;

    default:
      return Math.max(minOffset, Math.min(maxOffset, currentOffset));
  }
}
// CONCATENATED MODULE: ./node_modules/@adobe/react-virtualized/dist/es/Collection/Collection.js












/**
 * Renders scattered or non-linear data.
 * Unlike Grid, which renders checkerboard data, Collection can render arbitrarily positioned- even overlapping- data.
 */

var Collection_Collection = function (_React$PureComponent) {
  inherits_default()(Collection, _React$PureComponent);

  function Collection(props, context) {
    classCallCheck_default()(this, Collection);

    var _this = possibleConstructorReturn_default()(this, (Collection.__proto__ || get_prototype_of_default()(Collection)).call(this, props, context));

    _this._cellMetadata = [];
    _this._lastRenderedCellIndices = []; // Cell cache during scroll (for perforamnce)

    _this._cellCache = [];
    _this._isScrollingChange = _this._isScrollingChange.bind(_this);
    _this._setCollectionViewRef = _this._setCollectionViewRef.bind(_this);
    return _this;
  }

  createClass_default()(Collection, [{
    key: 'forceUpdate',
    value: function forceUpdate() {
      if (this._collectionView !== undefined) {
        this._collectionView.forceUpdate();
      }
    }
    /** See Collection#recomputeCellSizesAndPositions */

  }, {
    key: 'recomputeCellSizesAndPositions',
    value: function recomputeCellSizesAndPositions() {
      this._cellCache = [];

      this._collectionView.recomputeCellSizesAndPositions();
    }
    /** React lifecycle methods */

  }, {
    key: 'render',
    value: function render() {
      var props = objectWithoutProperties_default()(this.props, []);

      return react["createElement"](Collection_CollectionView, extends_default()({
        cellLayoutManager: this,
        isScrollingChange: this._isScrollingChange,
        ref: this._setCollectionViewRef
      }, props));
    }
    /** CellLayoutManager interface */

  }, {
    key: 'calculateSizeAndPositionData',
    value: function calculateSizeAndPositionData() {
      var _props = this.props,
          cellCount = _props.cellCount,
          cellSizeAndPositionGetter = _props.cellSizeAndPositionGetter,
          sectionSize = _props.sectionSize;

      var data = calculateSizeAndPositionData_calculateSizeAndPositionData({
        cellCount: cellCount,
        cellSizeAndPositionGetter: cellSizeAndPositionGetter,
        sectionSize: sectionSize
      });

      this._cellMetadata = data.cellMetadata;
      this._sectionManager = data.sectionManager;
      this._height = data.height;
      this._width = data.width;
    }
    /**
     * Returns the most recently rendered set of cell indices.
     */

  }, {
    key: 'getLastRenderedIndices',
    value: function getLastRenderedIndices() {
      return this._lastRenderedCellIndices;
    }
    /**
     * Calculates the minimum amount of change from the current scroll position to ensure the specified cell is (fully) visible.
     */

  }, {
    key: 'getScrollPositionForCell',
    value: function getScrollPositionForCell(_ref) {
      var align = _ref.align,
          cellIndex = _ref.cellIndex,
          height = _ref.height,
          scrollLeft = _ref.scrollLeft,
          scrollTop = _ref.scrollTop,
          width = _ref.width;
      var cellCount = this.props.cellCount;

      if (cellIndex >= 0 && cellIndex < cellCount) {
        var cellMetadata = this._cellMetadata[cellIndex];
        scrollLeft = getUpdatedOffsetForIndex({
          align: align,
          cellOffset: cellMetadata.x,
          cellSize: cellMetadata.width,
          containerSize: width,
          currentOffset: scrollLeft,
          targetIndex: cellIndex
        });
        scrollTop = getUpdatedOffsetForIndex({
          align: align,
          cellOffset: cellMetadata.y,
          cellSize: cellMetadata.height,
          containerSize: height,
          currentOffset: scrollTop,
          targetIndex: cellIndex
        });
      }

      return {
        scrollLeft: scrollLeft,
        scrollTop: scrollTop
      };
    }
  }, {
    key: 'getTotalSize',
    value: function getTotalSize() {
      return {
        height: this._height,
        width: this._width
      };
    }
  }, {
    key: 'cellRenderers',
    value: function cellRenderers(_ref2) {
      var _this2 = this;

      var height = _ref2.height,
          isScrolling = _ref2.isScrolling,
          width = _ref2.width,
          x = _ref2.x,
          y = _ref2.y;
      var _props2 = this.props,
          cellGroupRenderer = _props2.cellGroupRenderer,
          cellRenderer = _props2.cellRenderer; // Store for later calls to getLastRenderedIndices()

      this._lastRenderedCellIndices = this._sectionManager.getCellIndices({
        height: height,
        width: width,
        x: x,
        y: y
      });
      return cellGroupRenderer({
        cellCache: this._cellCache,
        cellRenderer: cellRenderer,
        cellSizeAndPositionGetter: function cellSizeAndPositionGetter(_ref3) {
          var index = _ref3.index;
          return _this2._sectionManager.getCellMetadata({
            index: index
          });
        },
        indices: this._lastRenderedCellIndices,
        isScrolling: isScrolling
      });
    }
  }, {
    key: '_isScrollingChange',
    value: function _isScrollingChange(isScrolling) {
      if (!isScrolling) {
        this._cellCache = [];
      }
    }
  }, {
    key: '_setCollectionViewRef',
    value: function _setCollectionViewRef(ref) {
      this._collectionView = ref;
    }
  }]);

  return Collection;
}(react["PureComponent"]);

Collection_Collection.defaultProps = {
  'aria-label': 'grid',
  cellGroupRenderer: defaultCellGroupRenderer
};
/* harmony default export */ var es_Collection_Collection = (Collection_Collection);
Collection_Collection.propTypes =  false ? undefined : {};

function defaultCellGroupRenderer(_ref4) {
  var cellCache = _ref4.cellCache,
      cellRenderer = _ref4.cellRenderer,
      cellSizeAndPositionGetter = _ref4.cellSizeAndPositionGetter,
      indices = _ref4.indices,
      isScrolling = _ref4.isScrolling;
  return indices.map(function (index) {
    var cellMetadata = cellSizeAndPositionGetter({
      index: index
    });
    var cellRendererProps = {
      index: index,
      isScrolling: isScrolling,
      key: index,
      style: {
        height: cellMetadata.height,
        left: cellMetadata.x,
        position: 'absolute',
        top: cellMetadata.y,
        width: cellMetadata.width
      }
    }; // Avoid re-creating cells while scrolling.
    // This can lead to the same cell being created many times and can cause performance issues for "heavy" cells.
    // If a scroll is in progress- cache and reuse cells.
    // This cache will be thrown away once scrolling complets.

    if (isScrolling) {
      if (!(index in cellCache)) {
        cellCache[index] = cellRenderer(cellRendererProps);
      }

      return cellCache[index];
    } else {
      return cellRenderer(cellRendererProps);
    }
  }).filter(function (renderedCell) {
    return !!renderedCell;
  });
}



// CONCATENATED MODULE: ./node_modules/@adobe/react-virtualized/dist/es/Collection/index.js

/* harmony default export */ var es_Collection = (es_Collection_Collection);

// CONCATENATED MODULE: ./node_modules/@adobe/react-virtualized/dist/es/ColumnSizer/ColumnSizer.js







/**
 * High-order component that auto-calculates column-widths for `Grid` cells.
 */

var ColumnSizer_ColumnSizer = function (_React$PureComponent) {
  inherits_default()(ColumnSizer, _React$PureComponent);

  function ColumnSizer(props, context) {
    classCallCheck_default()(this, ColumnSizer);

    var _this = possibleConstructorReturn_default()(this, (ColumnSizer.__proto__ || get_prototype_of_default()(ColumnSizer)).call(this, props, context));

    _this._registerChild = _this._registerChild.bind(_this);
    return _this;
  }

  createClass_default()(ColumnSizer, [{
    key: 'componentDidUpdate',
    value: function componentDidUpdate(prevProps) {
      var _props = this.props,
          columnMaxWidth = _props.columnMaxWidth,
          columnMinWidth = _props.columnMinWidth,
          columnCount = _props.columnCount,
          width = _props.width;

      if (columnMaxWidth !== prevProps.columnMaxWidth || columnMinWidth !== prevProps.columnMinWidth || columnCount !== prevProps.columnCount || width !== prevProps.width) {
        if (this._registeredChild) {
          this._registeredChild.recomputeGridSize();
        }
      }
    }
  }, {
    key: 'render',
    value: function render() {
      var _props2 = this.props,
          children = _props2.children,
          columnMaxWidth = _props2.columnMaxWidth,
          columnMinWidth = _props2.columnMinWidth,
          columnCount = _props2.columnCount,
          width = _props2.width;
      var safeColumnMinWidth = columnMinWidth || 1;
      var safeColumnMaxWidth = columnMaxWidth ? Math.min(columnMaxWidth, width) : width;
      var columnWidth = width / columnCount;
      columnWidth = Math.max(safeColumnMinWidth, columnWidth);
      columnWidth = Math.min(safeColumnMaxWidth, columnWidth);
      columnWidth = Math.floor(columnWidth);
      var adjustedWidth = Math.min(width, columnWidth * columnCount);
      return children({
        adjustedWidth: adjustedWidth,
        columnWidth: columnWidth,
        getColumnWidth: function getColumnWidth() {
          return columnWidth;
        },
        registerChild: this._registerChild
      });
    }
  }, {
    key: '_registerChild',
    value: function _registerChild(child) {
      if (child && typeof child.recomputeGridSize !== 'function') {
        throw Error('Unexpected child type registered; only Grid/MultiGrid children are supported.');
      }

      this._registeredChild = child;

      if (this._registeredChild) {
        this._registeredChild.recomputeGridSize();
      }
    }
  }]);

  return ColumnSizer;
}(react["PureComponent"]);

/* harmony default export */ var es_ColumnSizer_ColumnSizer = (ColumnSizer_ColumnSizer);
ColumnSizer_ColumnSizer.propTypes =  false ? undefined : {};
// CONCATENATED MODULE: ./node_modules/@adobe/react-virtualized/dist/es/ColumnSizer/index.js

/* harmony default export */ var es_ColumnSizer = (es_ColumnSizer_ColumnSizer);

// EXTERNAL MODULE: ./node_modules/babel-runtime/helpers/toConsumableArray.js
var toConsumableArray = __webpack_require__("m1cH");
var toConsumableArray_default = /*#__PURE__*/__webpack_require__.n(toConsumableArray);

// CONCATENATED MODULE: ./node_modules/@adobe/react-virtualized/dist/es/InfiniteLoader/InfiniteLoader.js









/**
 * Higher-order component that manages lazy-loading for "infinite" data.
 * This component decorates a virtual component and just-in-time prefetches rows as a user scrolls.
 * It is intended as a convenience component; fork it if you'd like finer-grained control over data-loading.
 */

var InfiniteLoader_InfiniteLoader = function (_React$PureComponent) {
  inherits_default()(InfiniteLoader, _React$PureComponent);

  function InfiniteLoader(props, context) {
    classCallCheck_default()(this, InfiniteLoader);

    var _this = possibleConstructorReturn_default()(this, (InfiniteLoader.__proto__ || get_prototype_of_default()(InfiniteLoader)).call(this, props, context));

    _this._loadMoreRowsMemoizer = createCallbackMemoizer();
    _this._onRowsRendered = _this._onRowsRendered.bind(_this);
    _this._registerChild = _this._registerChild.bind(_this);
    return _this;
  }

  createClass_default()(InfiniteLoader, [{
    key: 'resetLoadMoreRowsCache',
    value: function resetLoadMoreRowsCache(autoReload) {
      this._loadMoreRowsMemoizer = createCallbackMemoizer();

      if (autoReload) {
        this._doStuff(this._lastRenderedStartIndex, this._lastRenderedStopIndex);
      }
    }
  }, {
    key: 'render',
    value: function render() {
      var children = this.props.children;
      return children({
        onRowsRendered: this._onRowsRendered,
        registerChild: this._registerChild
      });
    }
  }, {
    key: '_loadUnloadedRanges',
    value: function _loadUnloadedRanges(unloadedRanges) {
      var _this2 = this;

      var loadMoreRows = this.props.loadMoreRows;
      unloadedRanges.forEach(function (unloadedRange) {
        var promise = loadMoreRows(unloadedRange);

        if (promise) {
          promise.then(function () {
            // Refresh the visible rows if any of them have just been loaded.
            // Otherwise they will remain in their unloaded visual state.
            if (isRangeVisible({
              lastRenderedStartIndex: _this2._lastRenderedStartIndex,
              lastRenderedStopIndex: _this2._lastRenderedStopIndex,
              startIndex: unloadedRange.startIndex,
              stopIndex: unloadedRange.stopIndex
            })) {
              if (_this2._registeredChild) {
                forceUpdateReactVirtualizedComponent(_this2._registeredChild, _this2._lastRenderedStartIndex);
              }
            }
          });
        }
      });
    }
  }, {
    key: '_onRowsRendered',
    value: function _onRowsRendered(_ref) {
      var startIndex = _ref.startIndex,
          stopIndex = _ref.stopIndex;
      this._lastRenderedStartIndex = startIndex;
      this._lastRenderedStopIndex = stopIndex;

      this._doStuff(startIndex, stopIndex);
    }
  }, {
    key: '_doStuff',
    value: function _doStuff(startIndex, stopIndex) {
      var _ref2,
          _this3 = this;

      var _props = this.props,
          isRowLoaded = _props.isRowLoaded,
          minimumBatchSize = _props.minimumBatchSize,
          rowCount = _props.rowCount,
          threshold = _props.threshold;
      var unloadedRanges = scanForUnloadedRanges({
        isRowLoaded: isRowLoaded,
        minimumBatchSize: minimumBatchSize,
        rowCount: rowCount,
        startIndex: Math.max(0, startIndex - threshold),
        stopIndex: Math.min(rowCount - 1, stopIndex + threshold)
      }); // For memoize comparison

      var squashedUnloadedRanges = (_ref2 = []).concat.apply(_ref2, toConsumableArray_default()(unloadedRanges.map(function (_ref3) {
        var startIndex = _ref3.startIndex,
            stopIndex = _ref3.stopIndex;
        return [startIndex, stopIndex];
      })));

      this._loadMoreRowsMemoizer({
        callback: function callback() {
          _this3._loadUnloadedRanges(unloadedRanges);
        },
        indices: {
          squashedUnloadedRanges: squashedUnloadedRanges
        }
      });
    }
  }, {
    key: '_registerChild',
    value: function _registerChild(registeredChild) {
      this._registeredChild = registeredChild;
    }
  }]);

  return InfiniteLoader;
}(react["PureComponent"]);
/**
 * Determines if the specified start/stop range is visible based on the most recently rendered range.
 */


InfiniteLoader_InfiniteLoader.defaultProps = {
  minimumBatchSize: 10,
  rowCount: 0,
  threshold: 15
};
/* harmony default export */ var es_InfiniteLoader_InfiniteLoader = (InfiniteLoader_InfiniteLoader);
InfiniteLoader_InfiniteLoader.propTypes =  false ? undefined : {};
function isRangeVisible(_ref4) {
  var lastRenderedStartIndex = _ref4.lastRenderedStartIndex,
      lastRenderedStopIndex = _ref4.lastRenderedStopIndex,
      startIndex = _ref4.startIndex,
      stopIndex = _ref4.stopIndex;
  return !(startIndex > lastRenderedStopIndex || stopIndex < lastRenderedStartIndex);
}
/**
 * Returns all of the ranges within a larger range that contain unloaded rows.
 */

function scanForUnloadedRanges(_ref5) {
  var isRowLoaded = _ref5.isRowLoaded,
      minimumBatchSize = _ref5.minimumBatchSize,
      rowCount = _ref5.rowCount,
      startIndex = _ref5.startIndex,
      stopIndex = _ref5.stopIndex;
  var unloadedRanges = [];
  var rangeStartIndex = null;
  var rangeStopIndex = null;

  for (var index = startIndex; index <= stopIndex; index++) {
    var loaded = isRowLoaded({
      index: index
    });

    if (!loaded) {
      rangeStopIndex = index;

      if (rangeStartIndex === null) {
        rangeStartIndex = index;
      }
    } else if (rangeStopIndex !== null) {
      unloadedRanges.push({
        startIndex: rangeStartIndex,
        stopIndex: rangeStopIndex
      });
      rangeStartIndex = rangeStopIndex = null;
    }
  } // If :rangeStopIndex is not null it means we haven't ran out of unloaded rows.
  // Scan forward to try filling our :minimumBatchSize.


  if (rangeStopIndex !== null) {
    var potentialStopIndex = Math.min(Math.max(rangeStopIndex, rangeStartIndex + minimumBatchSize - 1), rowCount - 1);

    for (var _index = rangeStopIndex + 1; _index <= potentialStopIndex; _index++) {
      if (!isRowLoaded({
        index: _index
      })) {
        rangeStopIndex = _index;
      } else {
        break;
      }
    }

    unloadedRanges.push({
      startIndex: rangeStartIndex,
      stopIndex: rangeStopIndex
    });
  } // Check to see if our first range ended prematurely.
  // In this case we should scan backwards to try filling our :minimumBatchSize.


  if (unloadedRanges.length) {
    var firstUnloadedRange = unloadedRanges[0];

    while (firstUnloadedRange.stopIndex - firstUnloadedRange.startIndex + 1 < minimumBatchSize && firstUnloadedRange.startIndex > 0) {
      var _index2 = firstUnloadedRange.startIndex - 1;

      if (!isRowLoaded({
        index: _index2
      })) {
        firstUnloadedRange.startIndex = _index2;
      } else {
        break;
      }
    }
  }

  return unloadedRanges;
}
/**
 * Since RV components use shallowCompare we need to force a render (even though props haven't changed).
 * However InfiniteLoader may wrap a Grid or it may wrap a Table or List.
 * In the first case the built-in React forceUpdate() method is sufficient to force a re-render,
 * But in the latter cases we need to use the RV-specific forceUpdateGrid() method.
 * Else the inner Grid will not be re-rendered and visuals may be stale.
 *
 * Additionally, while a Grid is scrolling the cells can be cached,
 * So it's important to invalidate that cache by recalculating sizes
 * before forcing a rerender.
 */

function forceUpdateReactVirtualizedComponent(component) {
  var currentIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
  var recomputeSize = typeof component.recomputeGridSize === 'function' ? component.recomputeGridSize : component.recomputeRowHeights;

  if (recomputeSize) {
    recomputeSize.call(component, currentIndex);
  } else {
    component.forceUpdate();
  }
}
// CONCATENATED MODULE: ./node_modules/@adobe/react-virtualized/dist/es/InfiniteLoader/index.js

/* harmony default export */ var es_InfiniteLoader = (es_InfiniteLoader_InfiniteLoader);

// EXTERNAL MODULE: ./node_modules/babel-runtime/core-js/object/get-own-property-descriptor.js
var get_own_property_descriptor = __webpack_require__("JO7F");
var get_own_property_descriptor_default = /*#__PURE__*/__webpack_require__.n(get_own_property_descriptor);

// CONCATENATED MODULE: ./node_modules/@adobe/react-virtualized/dist/es/List/types.js

var bpfrpt_proptype_RowRendererParams =  true ? null : undefined;
var bpfrpt_proptype_RowRenderer =  true ? null : undefined;
var bpfrpt_proptype_RenderedRows =  true ? null : undefined;
var types_bpfrpt_proptype_Scroll =  true ? null : undefined;





// CONCATENATED MODULE: ./node_modules/@adobe/react-virtualized/dist/es/List/List.js










/**
 * It is inefficient to create and manage a large list of DOM elements within a scrolling container
 * if only a few of those elements are visible. The primary purpose of this component is to improve
 * performance by only rendering the DOM nodes that a user is able to see based on their current
 * scroll position.
 *
 * This component renders a virtualized list of elements with either fixed or dynamic heights.
 */

var List_List = function (_React$PureComponent) {
  inherits_default()(List, _React$PureComponent);

  function List() {
    var _ref;

    var _temp, _this, _ret;

    classCallCheck_default()(this, List);

    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    return _ret = (_temp = (_this = possibleConstructorReturn_default()(this, (_ref = List.__proto__ || get_prototype_of_default()(List)).call.apply(_ref, [this].concat(args))), _this), _this._cellRenderer = function (_ref2) {
      var parent = _ref2.parent,
          rowIndex = _ref2.rowIndex,
          style = _ref2.style,
          isScrolling = _ref2.isScrolling,
          isVisible = _ref2.isVisible,
          key = _ref2.key,
          dataOrder = _ref2.dataOrder;
      var rowRenderer = _this.props.rowRenderer; // TRICKY The style object is sometimes cached by Grid.
      // This prevents new style objects from bypassing shallowCompare().
      // However as of React 16, style props are auto-frozen (at least in dev mode)
      // Check to make sure we can still modify the style before proceeding.
      // https://github.com/facebook/react/commit/977357765b44af8ff0cfea327866861073095c12#commitcomment-20648713

      var _Object$getOwnPropert = get_own_property_descriptor_default()(style, 'width'),
          writable = _Object$getOwnPropert.writable;

      if (writable) {
        // By default, List cells should be 100% width.
        // This prevents them from flowing under a scrollbar (if present).
        style.width = '100%';
      }

      return rowRenderer({
        index: rowIndex,
        style: style,
        isScrolling: isScrolling,
        isVisible: isVisible,
        key: key,
        parent: parent,
        dataOrder: dataOrder
      });
    }, _this._setRef = function (ref) {
      _this.Grid = ref;
    }, _this._onScroll = function (_ref3) {
      var clientHeight = _ref3.clientHeight,
          scrollHeight = _ref3.scrollHeight,
          scrollTop = _ref3.scrollTop;
      var onScroll = _this.props.onScroll;
      onScroll({
        clientHeight: clientHeight,
        scrollHeight: scrollHeight,
        scrollTop: scrollTop
      });
    }, _this._onSectionRendered = function (_ref4) {
      var rowOverscanStartIndex = _ref4.rowOverscanStartIndex,
          rowOverscanStopIndex = _ref4.rowOverscanStopIndex,
          rowStartIndex = _ref4.rowStartIndex,
          rowStopIndex = _ref4.rowStopIndex;
      var onRowsRendered = _this.props.onRowsRendered;
      onRowsRendered({
        overscanStartIndex: rowOverscanStartIndex,
        overscanStopIndex: rowOverscanStopIndex,
        startIndex: rowStartIndex,
        stopIndex: rowStopIndex
      });
    }, _temp), possibleConstructorReturn_default()(_this, _ret);
  }

  createClass_default()(List, [{
    key: 'forceUpdateGrid',
    value: function forceUpdateGrid() {
      if (this.Grid) {
        this.Grid.forceUpdate();
      }
    }
    /** See Grid#getOffsetForCell */

  }, {
    key: 'getOffsetForRow',
    value: function getOffsetForRow(_ref5) {
      var alignment = _ref5.alignment,
          index = _ref5.index;

      if (this.Grid) {
        var _Grid$getOffsetForCel = this.Grid.getOffsetForCell({
          alignment: alignment,
          rowIndex: index,
          columnIndex: 0
        }),
            _scrollTop = _Grid$getOffsetForCel.scrollTop;

        return _scrollTop;
      }

      return 0;
    }
    /** CellMeasurer compatibility */

  }, {
    key: 'invalidateCellSizeAfterRender',
    value: function invalidateCellSizeAfterRender(_ref6) {
      var columnIndex = _ref6.columnIndex,
          rowIndex = _ref6.rowIndex;

      if (this.Grid) {
        this.Grid.invalidateCellSizeAfterRender({
          rowIndex: rowIndex,
          columnIndex: columnIndex
        });
      }
    }
    /** See Grid#measureAllCells */

  }, {
    key: 'measureAllRows',
    value: function measureAllRows() {
      if (this.Grid) {
        this.Grid.measureAllCells();
      }
    }
    /** CellMeasurer compatibility */

  }, {
    key: 'recomputeGridSize',
    value: function recomputeGridSize() {
      var _ref7 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
          _ref7$columnIndex = _ref7.columnIndex,
          columnIndex = _ref7$columnIndex === undefined ? 0 : _ref7$columnIndex,
          _ref7$rowIndex = _ref7.rowIndex,
          rowIndex = _ref7$rowIndex === undefined ? 0 : _ref7$rowIndex;

      if (this.Grid) {
        this.Grid.recomputeGridSize({
          rowIndex: rowIndex,
          columnIndex: columnIndex
        });
      }
    }
    /** See Grid#recomputeGridSize */

  }, {
    key: 'recomputeRowHeights',
    value: function recomputeRowHeights() {
      var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;

      if (this.Grid) {
        this.Grid.recomputeGridSize({
          rowIndex: index,
          columnIndex: 0
        });
      }
    }
    /** See Grid#scrollToPosition */

  }, {
    key: 'scrollToPosition',
    value: function scrollToPosition() {
      var scrollTop = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;

      if (this.Grid) {
        this.Grid.scrollToPosition({
          scrollTop: scrollTop
        });
      }
    }
    /** See Grid#scrollToCell */

  }, {
    key: 'scrollToRow',
    value: function scrollToRow() {
      var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;

      if (this.Grid) {
        this.Grid.scrollToCell({
          columnIndex: 0,
          rowIndex: index
        });
      }
    }
  }, {
    key: 'render',
    value: function render() {
      var _props = this.props,
          className = _props.className,
          noRowsRenderer = _props.noRowsRenderer,
          scrollToIndex = _props.scrollToIndex,
          width = _props.width;
      var classNames = Object(clsx_m["a" /* default */])('ReactVirtualized__List', className);
      return react["createElement"](es_Grid_Grid, extends_default()({}, this.props, {
        autoContainerWidth: true,
        cellRenderer: this._cellRenderer,
        className: classNames,
        columnWidth: width,
        columnCount: 1,
        noContentRenderer: noRowsRenderer,
        onScroll: this._onScroll,
        onSectionRendered: this._onSectionRendered,
        ref: this._setRef,
        scrollToRow: scrollToIndex
      }));
    }
  }]);

  return List;
}(react["PureComponent"]);

List_List.defaultProps = {
  autoHeight: false,
  estimatedRowSize: 30,
  onScroll: function onScroll() {},
  noRowsRenderer: function noRowsRenderer() {
    return null;
  },
  onRowsRendered: function onRowsRendered() {},
  overscanIndicesGetter: accessibilityOverscanIndicesGetter_defaultOverscanIndicesGetter,
  overscanRowCount: 10,
  scrollToAlignment: 'auto',
  scrollToIndex: -1,
  style: {}
};
List_List.propTypes =  true ? null : undefined;
/* harmony default export */ var es_List_List = (List_List);












// CONCATENATED MODULE: ./node_modules/@adobe/react-virtualized/dist/es/List/index.js




// EXTERNAL MODULE: ./node_modules/babel-runtime/helpers/defineProperty.js
var defineProperty = __webpack_require__("YEIV");
var defineProperty_default = /*#__PURE__*/__webpack_require__.n(defineProperty);

// EXTERNAL MODULE: ./node_modules/babel-runtime/helpers/slicedToArray.js
var slicedToArray = __webpack_require__("sk9p");
var slicedToArray_default = /*#__PURE__*/__webpack_require__.n(slicedToArray);

// CONCATENATED MODULE: ./node_modules/@adobe/react-virtualized/dist/es/vendor/binarySearchBounds.js
/**
 * Binary Search Bounds
 * https://github.com/mikolalysenko/binary-search-bounds
 * Mikola Lysenko
 *
 * Inlined because of Content Security Policy issue caused by the use of `new Function(...)` syntax.
 * Issue reported here: https://github.com/mikolalysenko/binary-search-bounds/issues/5
 **/
function _GEA(a, l, h, y) {
  var i = h + 1;

  while (l <= h) {
    var m = l + h >>> 1,
        x = a[m];

    if (x >= y) {
      i = m;
      h = m - 1;
    } else {
      l = m + 1;
    }
  }

  return i;
}

function _GEP(a, l, h, y, c) {
  var i = h + 1;

  while (l <= h) {
    var m = l + h >>> 1,
        x = a[m];

    if (c(x, y) >= 0) {
      i = m;
      h = m - 1;
    } else {
      l = m + 1;
    }
  }

  return i;
}

function dispatchBsearchGE(a, y, c, l, h) {
  if (typeof c === 'function') {
    return _GEP(a, l === void 0 ? 0 : l | 0, h === void 0 ? a.length - 1 : h | 0, y, c);
  } else {
    return _GEA(a, c === void 0 ? 0 : c | 0, l === void 0 ? a.length - 1 : l | 0, y);
  }
}

function _GTA(a, l, h, y) {
  var i = h + 1;

  while (l <= h) {
    var m = l + h >>> 1,
        x = a[m];

    if (x > y) {
      i = m;
      h = m - 1;
    } else {
      l = m + 1;
    }
  }

  return i;
}

function _GTP(a, l, h, y, c) {
  var i = h + 1;

  while (l <= h) {
    var m = l + h >>> 1,
        x = a[m];

    if (c(x, y) > 0) {
      i = m;
      h = m - 1;
    } else {
      l = m + 1;
    }
  }

  return i;
}

function dispatchBsearchGT(a, y, c, l, h) {
  if (typeof c === 'function') {
    return _GTP(a, l === void 0 ? 0 : l | 0, h === void 0 ? a.length - 1 : h | 0, y, c);
  } else {
    return _GTA(a, c === void 0 ? 0 : c | 0, l === void 0 ? a.length - 1 : l | 0, y);
  }
}

function _LTA(a, l, h, y) {
  var i = l - 1;

  while (l <= h) {
    var m = l + h >>> 1,
        x = a[m];

    if (x < y) {
      i = m;
      l = m + 1;
    } else {
      h = m - 1;
    }
  }

  return i;
}

function _LTP(a, l, h, y, c) {
  var i = l - 1;

  while (l <= h) {
    var m = l + h >>> 1,
        x = a[m];

    if (c(x, y) < 0) {
      i = m;
      l = m + 1;
    } else {
      h = m - 1;
    }
  }

  return i;
}

function dispatchBsearchLT(a, y, c, l, h) {
  if (typeof c === 'function') {
    return _LTP(a, l === void 0 ? 0 : l | 0, h === void 0 ? a.length - 1 : h | 0, y, c);
  } else {
    return _LTA(a, c === void 0 ? 0 : c | 0, l === void 0 ? a.length - 1 : l | 0, y);
  }
}

function _LEA(a, l, h, y) {
  var i = l - 1;

  while (l <= h) {
    var m = l + h >>> 1,
        x = a[m];

    if (x <= y) {
      i = m;
      l = m + 1;
    } else {
      h = m - 1;
    }
  }

  return i;
}

function _LEP(a, l, h, y, c) {
  var i = l - 1;

  while (l <= h) {
    var m = l + h >>> 1,
        x = a[m];

    if (c(x, y) <= 0) {
      i = m;
      l = m + 1;
    } else {
      h = m - 1;
    }
  }

  return i;
}

function dispatchBsearchLE(a, y, c, l, h) {
  if (typeof c === 'function') {
    return _LEP(a, l === void 0 ? 0 : l | 0, h === void 0 ? a.length - 1 : h | 0, y, c);
  } else {
    return _LEA(a, c === void 0 ? 0 : c | 0, l === void 0 ? a.length - 1 : l | 0, y);
  }
}

function _EQA(a, l, h, y) {
  l - 1;

  while (l <= h) {
    var m = l + h >>> 1,
        x = a[m];

    if (x === y) {
      return m;
    } else if (x <= y) {
      l = m + 1;
    } else {
      h = m - 1;
    }
  }

  return -1;
}

function _EQP(a, l, h, y, c) {
  l - 1;

  while (l <= h) {
    var m = l + h >>> 1,
        x = a[m];
    var p = c(x, y);

    if (p === 0) {
      return m;
    } else if (p <= 0) {
      l = m + 1;
    } else {
      h = m - 1;
    }
  }

  return -1;
}

function dispatchBsearchEQ(a, y, c, l, h) {
  if (typeof c === 'function') {
    return _EQP(a, l === void 0 ? 0 : l | 0, h === void 0 ? a.length - 1 : h | 0, y, c);
  } else {
    return _EQA(a, c === void 0 ? 0 : c | 0, l === void 0 ? a.length - 1 : l | 0, y);
  }
}

/* harmony default export */ var binarySearchBounds = ({
  ge: dispatchBsearchGE,
  gt: dispatchBsearchGT,
  lt: dispatchBsearchLT,
  le: dispatchBsearchLE,
  eq: dispatchBsearchEQ
});
// CONCATENATED MODULE: ./node_modules/@adobe/react-virtualized/dist/es/vendor/intervalTree.js
/**
 * Binary Search Bounds
 * https://github.com/mikolalysenko/interval-tree-1d
 * Mikola Lysenko
 *
 * Inlined because of Content Security Policy issue caused by the use of `new Function(...)` syntax in an upstream dependency.
 * Issue reported here: https://github.com/mikolalysenko/binary-search-bounds/issues/5
 **/

var NOT_FOUND = 0;
var SUCCESS = 1;
var EMPTY = 2;

function IntervalTreeNode(mid, left, right, leftPoints, rightPoints) {
  this.mid = mid;
  this.left = left;
  this.right = right;
  this.leftPoints = leftPoints;
  this.rightPoints = rightPoints;
  this.count = (left ? left.count : 0) + (right ? right.count : 0) + leftPoints.length;
}

var proto = IntervalTreeNode.prototype;

function copy(a, b) {
  a.mid = b.mid;
  a.left = b.left;
  a.right = b.right;
  a.leftPoints = b.leftPoints;
  a.rightPoints = b.rightPoints;
  a.count = b.count;
}

function rebuild(node, intervals) {
  var ntree = createIntervalTree(intervals);
  node.mid = ntree.mid;
  node.left = ntree.left;
  node.right = ntree.right;
  node.leftPoints = ntree.leftPoints;
  node.rightPoints = ntree.rightPoints;
  node.count = ntree.count;
}

function rebuildWithInterval(node, interval) {
  var intervals = node.intervals([]);
  intervals.push(interval);
  rebuild(node, intervals);
}

function rebuildWithoutInterval(node, interval) {
  var intervals = node.intervals([]);
  var idx = intervals.indexOf(interval);

  if (idx < 0) {
    return NOT_FOUND;
  }

  intervals.splice(idx, 1);
  rebuild(node, intervals);
  return SUCCESS;
}

proto.intervals = function (result) {
  result.push.apply(result, this.leftPoints);

  if (this.left) {
    this.left.intervals(result);
  }

  if (this.right) {
    this.right.intervals(result);
  }

  return result;
};

proto.insert = function (interval) {
  var weight = this.count - this.leftPoints.length;
  this.count += 1;

  if (interval[1] < this.mid) {
    if (this.left) {
      if (4 * (this.left.count + 1) > 3 * (weight + 1)) {
        rebuildWithInterval(this, interval);
      } else {
        this.left.insert(interval);
      }
    } else {
      this.left = createIntervalTree([interval]);
    }
  } else if (interval[0] > this.mid) {
    if (this.right) {
      if (4 * (this.right.count + 1) > 3 * (weight + 1)) {
        rebuildWithInterval(this, interval);
      } else {
        this.right.insert(interval);
      }
    } else {
      this.right = createIntervalTree([interval]);
    }
  } else {
    var l = binarySearchBounds.ge(this.leftPoints, interval, compareBegin);
    var r = binarySearchBounds.ge(this.rightPoints, interval, compareEnd);
    this.leftPoints.splice(l, 0, interval);
    this.rightPoints.splice(r, 0, interval);
  }
};

proto.remove = function (interval) {
  var weight = this.count - this.leftPoints;

  if (interval[1] < this.mid) {
    if (!this.left) {
      return NOT_FOUND;
    }

    var rw = this.right ? this.right.count : 0;

    if (4 * rw > 3 * (weight - 1)) {
      return rebuildWithoutInterval(this, interval);
    }

    var r = this.left.remove(interval);

    if (r === EMPTY) {
      this.left = null;
      this.count -= 1;
      return SUCCESS;
    } else if (r === SUCCESS) {
      this.count -= 1;
    }

    return r;
  } else if (interval[0] > this.mid) {
    if (!this.right) {
      return NOT_FOUND;
    }

    var lw = this.left ? this.left.count : 0;

    if (4 * lw > 3 * (weight - 1)) {
      return rebuildWithoutInterval(this, interval);
    }

    var r = this.right.remove(interval);

    if (r === EMPTY) {
      this.right = null;
      this.count -= 1;
      return SUCCESS;
    } else if (r === SUCCESS) {
      this.count -= 1;
    }

    return r;
  } else {
    if (this.count === 1) {
      if (this.leftPoints[0] === interval) {
        return EMPTY;
      } else {
        return NOT_FOUND;
      }
    }

    if (this.leftPoints.length === 1 && this.leftPoints[0] === interval) {
      if (this.left && this.right) {
        var p = this;
        var n = this.left;

        while (n.right) {
          p = n;
          n = n.right;
        }

        if (p === this) {
          n.right = this.right;
        } else {
          var l = this.left;
          var r = this.right;
          p.count -= n.count;
          p.right = n.left;
          n.left = l;
          n.right = r;
        }

        copy(this, n);
        this.count = (this.left ? this.left.count : 0) + (this.right ? this.right.count : 0) + this.leftPoints.length;
      } else if (this.left) {
        copy(this, this.left);
      } else {
        copy(this, this.right);
      }

      return SUCCESS;
    }

    for (var l = binarySearchBounds.ge(this.leftPoints, interval, compareBegin); l < this.leftPoints.length; ++l) {
      if (this.leftPoints[l][0] !== interval[0]) {
        break;
      }

      if (this.leftPoints[l] === interval) {
        this.count -= 1;
        this.leftPoints.splice(l, 1);

        for (var r = binarySearchBounds.ge(this.rightPoints, interval, compareEnd); r < this.rightPoints.length; ++r) {
          if (this.rightPoints[r][1] !== interval[1]) {
            break;
          } else if (this.rightPoints[r] === interval) {
            this.rightPoints.splice(r, 1);
            return SUCCESS;
          }
        }
      }
    }

    return NOT_FOUND;
  }
};

function reportLeftRange(arr, hi, cb) {
  for (var i = 0; i < arr.length && arr[i][0] <= hi; ++i) {
    var r = cb(arr[i]);

    if (r) {
      return r;
    }
  }
}

function reportRightRange(arr, lo, cb) {
  for (var i = arr.length - 1; i >= 0 && arr[i][1] >= lo; --i) {
    var r = cb(arr[i]);

    if (r) {
      return r;
    }
  }
}

function reportRange(arr, cb) {
  for (var i = 0; i < arr.length; ++i) {
    var r = cb(arr[i]);

    if (r) {
      return r;
    }
  }
}

proto.queryPoint = function (x, cb) {
  if (x < this.mid) {
    if (this.left) {
      var r = this.left.queryPoint(x, cb);

      if (r) {
        return r;
      }
    }

    return reportLeftRange(this.leftPoints, x, cb);
  } else if (x > this.mid) {
    if (this.right) {
      var r = this.right.queryPoint(x, cb);

      if (r) {
        return r;
      }
    }

    return reportRightRange(this.rightPoints, x, cb);
  } else {
    return reportRange(this.leftPoints, cb);
  }
};

proto.queryInterval = function (lo, hi, cb) {
  if (lo < this.mid && this.left) {
    var r = this.left.queryInterval(lo, hi, cb);

    if (r) {
      return r;
    }
  }

  if (hi > this.mid && this.right) {
    var r = this.right.queryInterval(lo, hi, cb);

    if (r) {
      return r;
    }
  }

  if (hi < this.mid) {
    return reportLeftRange(this.leftPoints, hi, cb);
  } else if (lo > this.mid) {
    return reportRightRange(this.rightPoints, lo, cb);
  } else {
    return reportRange(this.leftPoints, cb);
  }
};

function compareNumbers(a, b) {
  return a - b;
}

function compareBegin(a, b) {
  var d = a[0] - b[0];

  if (d) {
    return d;
  }

  return a[1] - b[1];
}

function compareEnd(a, b) {
  var d = a[1] - b[1];

  if (d) {
    return d;
  }

  return a[0] - b[0];
}

function createIntervalTree(intervals) {
  if (intervals.length === 0) {
    return null;
  }

  var pts = [];

  for (var i = 0; i < intervals.length; ++i) {
    pts.push(intervals[i][0], intervals[i][1]);
  }

  pts.sort(compareNumbers);
  var mid = pts[pts.length >> 1];
  var leftIntervals = [];
  var rightIntervals = [];
  var centerIntervals = [];

  for (var i = 0; i < intervals.length; ++i) {
    var s = intervals[i];

    if (s[1] < mid) {
      leftIntervals.push(s);
    } else if (mid < s[0]) {
      rightIntervals.push(s);
    } else {
      centerIntervals.push(s);
    }
  } //Split center intervals


  var leftPoints = centerIntervals;
  var rightPoints = centerIntervals.slice();
  leftPoints.sort(compareBegin);
  rightPoints.sort(compareEnd);
  return new IntervalTreeNode(mid, createIntervalTree(leftIntervals), createIntervalTree(rightIntervals), leftPoints, rightPoints);
} //User friendly wrapper that makes it possible to support empty trees


function IntervalTree(root) {
  this.root = root;
}

var tproto = IntervalTree.prototype;

tproto.insert = function (interval) {
  if (this.root) {
    this.root.insert(interval);
  } else {
    this.root = new IntervalTreeNode(interval[0], null, null, [interval], [interval]);
  }
};

tproto.remove = function (interval) {
  if (this.root) {
    var r = this.root.remove(interval);

    if (r === EMPTY) {
      this.root = null;
    }

    return r !== NOT_FOUND;
  }

  return false;
};

tproto.queryPoint = function (p, cb) {
  if (this.root) {
    return this.root.queryPoint(p, cb);
  }
};

tproto.queryInterval = function (lo, hi, cb) {
  if (lo <= hi && this.root) {
    return this.root.queryInterval(lo, hi, cb);
  }
};

Object.defineProperty(tproto, 'count', {
  get: function get() {
    if (this.root) {
      return this.root.count;
    }

    return 0;
  }
});
Object.defineProperty(tproto, 'intervals', {
  get: function get() {
    if (this.root) {
      return this.root.intervals([]);
    }

    return [];
  }
});
function createWrapper(intervals) {
  if (!intervals || intervals.length === 0) {
    return new IntervalTree(null);
  }

  return new IntervalTree(createIntervalTree(intervals));
}
// CONCATENATED MODULE: ./node_modules/@adobe/react-virtualized/dist/es/Masonry/PositionCache.js



 // Position cache requirements:
//   O(log(n)) lookup of cells to render for a given viewport size
//   O(1) lookup of shortest measured column (so we know when to enter phase 1)

var PositionCache_PositionCache = function () {
  function PositionCache() {
    classCallCheck_default()(this, PositionCache);

    this._columnSizeMap = {};
    this._intervalTree = createWrapper();
    this._leftMap = {};
  } // Tracks the height of each column
  // Store tops and bottoms of each cell for fast intersection lookup.
  // Maps cell index to x coordinates for quick lookup.


  createClass_default()(PositionCache, [{
    key: 'estimateTotalHeight',
    value: function estimateTotalHeight(cellCount, columnCount, defaultCellHeight) {
      var unmeasuredCellCount = cellCount - this.count;
      return this.tallestColumnSize + Math.ceil(unmeasuredCellCount / columnCount) * defaultCellHeight;
    } // Render all cells visible within the viewport range defined.

  }, {
    key: 'range',
    value: function range(scrollTop, clientHeight, renderCallback) {
      var _this = this;

      this._intervalTree.queryInterval(scrollTop, scrollTop + clientHeight, function (_ref) {
        var _ref2 = slicedToArray_default()(_ref, 3),
            top = _ref2[0],
            _ = _ref2[1],
            index = _ref2[2];

        return renderCallback(index, _this._leftMap[index], top);
      });
    }
  }, {
    key: 'setPosition',
    value: function setPosition(index, left, top, height) {
      this._intervalTree.insert([top, top + height, index]);

      this._leftMap[index] = left;
      var columnSizeMap = this._columnSizeMap;
      var columnHeight = columnSizeMap[left];

      if (columnHeight === undefined) {
        columnSizeMap[left] = top + height;
      } else {
        columnSizeMap[left] = Math.max(columnHeight, top + height);
      }
    }
  }, {
    key: 'count',
    get: function get() {
      return this._intervalTree.count;
    }
  }, {
    key: 'shortestColumnSize',
    get: function get() {
      var columnSizeMap = this._columnSizeMap;
      var size = 0;

      for (var i in columnSizeMap) {
        var height = columnSizeMap[i];
        size = size === 0 ? height : Math.min(size, height);
      }

      return size;
    }
  }, {
    key: 'tallestColumnSize',
    get: function get() {
      var columnSizeMap = this._columnSizeMap;
      var size = 0;

      for (var i in columnSizeMap) {
        var height = columnSizeMap[i];
        size = Math.max(size, height);
      }

      return size;
    }
  }]);

  return PositionCache;
}();

/* harmony default export */ var Masonry_PositionCache = (PositionCache_PositionCache);
// CONCATENATED MODULE: ./node_modules/@adobe/react-virtualized/dist/es/Masonry/Masonry.js












var emptyObject = {};
/**
 * Specifies the number of miliseconds during which to disable pointer events while a scroll is in progress.
 * This improves performance and makes scrolling smoother.
 */

var Masonry_DEFAULT_SCROLLING_RESET_TIME_INTERVAL = 150;
/**
 * This component efficiently displays arbitrarily positioned cells using windowing techniques.
 * Cell position is determined by an injected `cellPositioner` property.
 * Windowing is vertical; this component does not support horizontal scrolling.
 *
 * Rendering occurs in two phases:
 * 1) First pass uses estimated cell sizes (provided by the cache) to determine how many cells to measure in a batch.
 *    Batch size is chosen using a fast, naive layout algorithm that stacks images in order until the viewport has been filled.
 *    After measurement is complete (componentDidMount or componentDidUpdate) this component evaluates positioned cells
 *    in order to determine if another measurement pass is required (eg if actual cell sizes were less than estimated sizes).
 *    All measurements are permanently cached (keyed by `keyMapper`) for performance purposes.
 * 2) Second pass uses the external `cellPositioner` to layout cells.
 *    At this time the positioner has access to cached size measurements for all cells.
 *    The positions it returns are cached by Masonry for fast access later.
 *    Phase one is repeated if the user scrolls beyond the current layout's bounds.
 *    If the layout is invalidated due to eg a resize, cached positions can be cleared using `recomputeCellPositions()`.
 *
 * Animation constraints:
 *   Simple animations are supported (eg translate/slide into place on initial reveal).
 *   More complex animations are not (eg flying from one position to another on resize).
 *
 * Layout constraints:
 *   This component supports multi-column layout.
 *   The height of each item may vary.
 *   The width of each item must not exceed the width of the column it is "in".
 *   The left position of all items within a column must align.
 *   (Items may not span multiple columns.)
 */

var Masonry_Masonry = function (_React$PureComponent) {
  inherits_default()(Masonry, _React$PureComponent);

  function Masonry() {
    var _ref;

    var _temp, _this, _ret;

    classCallCheck_default()(this, Masonry);

    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    return _ret = (_temp = (_this = possibleConstructorReturn_default()(this, (_ref = Masonry.__proto__ || get_prototype_of_default()(Masonry)).call.apply(_ref, [this].concat(args))), _this), _this.state = {
      isScrolling: false,
      scrollTop: 0
    }, _this._invalidateOnUpdateStartIndex = null, _this._invalidateOnUpdateStopIndex = null, _this._positionCache = new Masonry_PositionCache(), _this._startIndex = null, _this._startIndexMemoized = null, _this._stopIndex = null, _this._stopIndexMemoized = null, _this._debounceResetIsScrollingCallback = function () {
      _this.setState({
        isScrolling: false
      });
    }, _this._setScrollingContainerRef = function (ref) {
      _this._scrollingContainer = ref;
    }, _this._onScroll = function (event) {
      var height = _this.props.height;
      var eventScrollTop = event.target.scrollTop; // When this component is shrunk drastically, React dispatches a series of back-to-back scroll events,
      // Gradually converging on a scrollTop that is within the bounds of the new, smaller height.
      // This causes a series of rapid renders that is slow for long lists.
      // We can avoid that by doing some simple bounds checking to ensure that scroll offsets never exceed their bounds.

      var scrollTop = Math.min(Math.max(0, _this._getEstimatedTotalHeight() - height), eventScrollTop); // On iOS, we can arrive at negative offsets by swiping past the start or end.
      // Avoid re-rendering in this case as it can cause problems; see #532 for more.

      if (eventScrollTop !== scrollTop) {
        return;
      } // Prevent pointer events from interrupting a smooth scroll


      _this._debounceResetIsScrolling(); // Certain devices (like Apple touchpad) rapid-fire duplicate events.
      // Don't force a re-render if this is the case.
      // The mouse may move faster then the animation frame does.
      // Use requestAnimationFrame to avoid over-updating.


      if (_this.state.scrollTop !== scrollTop) {
        _this.setState({
          isScrolling: true,
          scrollTop: scrollTop
        });
      }
    }, _temp), possibleConstructorReturn_default()(_this, _ret);
  }

  createClass_default()(Masonry, [{
    key: 'clearCellPositions',
    value: function clearCellPositions() {
      this._positionCache = new Masonry_PositionCache();
      this.forceUpdate();
    } // HACK This method signature was intended for Grid

  }, {
    key: 'invalidateCellSizeAfterRender',
    value: function invalidateCellSizeAfterRender(_ref2) {
      var index = _ref2.rowIndex;

      if (this._invalidateOnUpdateStartIndex === null) {
        this._invalidateOnUpdateStartIndex = index;
        this._invalidateOnUpdateStopIndex = index;
      } else {
        this._invalidateOnUpdateStartIndex = Math.min(this._invalidateOnUpdateStartIndex, index);
        this._invalidateOnUpdateStopIndex = Math.max(this._invalidateOnUpdateStopIndex, index);
      }
    }
  }, {
    key: 'recomputeCellPositions',
    value: function recomputeCellPositions() {
      var stopIndex = this._positionCache.count - 1;
      this._positionCache = new Masonry_PositionCache();

      this._populatePositionCache(0, stopIndex);

      this.forceUpdate();
    }
  }, {
    key: 'componentDidMount',
    value: function componentDidMount() {
      this._checkInvalidateOnUpdate();

      this._invokeOnScrollCallback();

      this._invokeOnCellsRenderedCallback();
    }
  }, {
    key: 'componentDidUpdate',
    value: function componentDidUpdate(prevProps, prevState) {
      this._checkInvalidateOnUpdate();

      this._invokeOnScrollCallback();

      this._invokeOnCellsRenderedCallback();

      if (this.props.scrollTop !== prevProps.scrollTop) {
        this._debounceResetIsScrolling();
      }
    }
  }, {
    key: 'componentWillUnmount',
    value: function componentWillUnmount() {
      if (this._debounceResetIsScrollingId) {
        requestAnimationTimeout_cancelAnimationTimeout(this._debounceResetIsScrollingId);
      }
    }
  }, {
    key: 'render',
    value: function render() {
      var _this2 = this;

      var _props = this.props,
          autoHeight = _props.autoHeight,
          cellCount = _props.cellCount,
          cellMeasurerCache = _props.cellMeasurerCache,
          cellRenderer = _props.cellRenderer,
          className = _props.className,
          height = _props.height,
          id = _props.id,
          keyMapper = _props.keyMapper,
          overscanByPixels = _props.overscanByPixels,
          role = _props.role,
          style = _props.style,
          tabIndex = _props.tabIndex,
          width = _props.width,
          rowDirection = _props.rowDirection;
      var _state = this.state,
          isScrolling = _state.isScrolling,
          scrollTop = _state.scrollTop;
      var children = [];

      var estimateTotalHeight = this._getEstimatedTotalHeight();

      var shortestColumnSize = this._positionCache.shortestColumnSize;
      var measuredCellCount = this._positionCache.count;
      var startIndex = 0;
      var stopIndex = void 0;

      this._positionCache.range(Math.max(0, scrollTop - overscanByPixels), height + overscanByPixels * 2, function (index, left, top) {
        var _style;

        if (typeof stopIndex === 'undefined') {
          startIndex = index;
          stopIndex = index;
        } else {
          startIndex = Math.min(startIndex, index);
          stopIndex = Math.max(stopIndex, index);
        }

        children.push(cellRenderer({
          index: index,
          isScrolling: isScrolling,
          key: keyMapper(index),
          parent: _this2,
          style: (_style = {
            height: cellMeasurerCache.getHeight(index)
          }, defineProperty_default()(_style, rowDirection === 'ltr' ? 'left' : 'right', left), defineProperty_default()(_style, 'position', 'absolute'), defineProperty_default()(_style, 'top', top), defineProperty_default()(_style, 'width', cellMeasurerCache.getWidth(index)), _style)
        }));
      }); // We need to measure additional cells for this layout


      if (shortestColumnSize < scrollTop + height + overscanByPixels && measuredCellCount < cellCount) {
        var batchSize = Math.min(cellCount - measuredCellCount, Math.ceil((scrollTop + height + overscanByPixels - shortestColumnSize) / cellMeasurerCache.defaultHeight * width / cellMeasurerCache.defaultWidth));

        for (var _index = measuredCellCount; _index < measuredCellCount + batchSize; _index++) {
          stopIndex = _index;
          children.push(cellRenderer({
            index: _index,
            isScrolling: isScrolling,
            key: keyMapper(_index),
            parent: this,
            style: {
              width: cellMeasurerCache.getWidth(_index)
            }
          }));
        }
      }

      this._startIndex = startIndex;
      this._stopIndex = stopIndex;
      return react["createElement"]('div', {
        ref: this._setScrollingContainerRef,
        'aria-label': this.props['aria-label'],
        className: Object(clsx_m["a" /* default */])('ReactVirtualized__Masonry', className),
        id: id,
        onScroll: this._onScroll,
        role: role,
        style: extends_default()({
          boxSizing: 'border-box',
          direction: 'ltr',
          height: autoHeight ? 'auto' : height,
          overflowX: 'hidden',
          overflowY: estimateTotalHeight < height ? 'hidden' : 'auto',
          position: 'relative',
          width: width,
          WebkitOverflowScrolling: 'touch',
          willChange: 'transform'
        }, style),
        tabIndex: tabIndex
      }, react["createElement"]('div', {
        className: 'ReactVirtualized__Masonry__innerScrollContainer',
        style: {
          width: '100%',
          height: estimateTotalHeight,
          maxWidth: '100%',
          maxHeight: estimateTotalHeight,
          overflow: 'hidden',
          pointerEvents: isScrolling ? 'none' : '',
          position: 'relative'
        }
      }, children));
    }
  }, {
    key: '_checkInvalidateOnUpdate',
    value: function _checkInvalidateOnUpdate() {
      if (typeof this._invalidateOnUpdateStartIndex === 'number') {
        var _startIndex = this._invalidateOnUpdateStartIndex;
        var _stopIndex = this._invalidateOnUpdateStopIndex;
        this._invalidateOnUpdateStartIndex = null;
        this._invalidateOnUpdateStopIndex = null; // Query external layout logic for position of newly-measured cells

        this._populatePositionCache(_startIndex, _stopIndex);

        this.forceUpdate();
      }
    }
  }, {
    key: '_debounceResetIsScrolling',
    value: function _debounceResetIsScrolling() {
      var scrollingResetTimeInterval = this.props.scrollingResetTimeInterval;

      if (this._debounceResetIsScrollingId) {
        requestAnimationTimeout_cancelAnimationTimeout(this._debounceResetIsScrollingId);
      }

      this._debounceResetIsScrollingId = requestAnimationTimeout_requestAnimationTimeout(this._debounceResetIsScrollingCallback, scrollingResetTimeInterval);
    }
  }, {
    key: '_getEstimatedTotalHeight',
    value: function _getEstimatedTotalHeight() {
      var _props2 = this.props,
          cellCount = _props2.cellCount,
          cellMeasurerCache = _props2.cellMeasurerCache,
          width = _props2.width;
      var estimatedColumnCount = Math.max(1, Math.floor(width / cellMeasurerCache.defaultWidth));
      return this._positionCache.estimateTotalHeight(cellCount, estimatedColumnCount, cellMeasurerCache.defaultHeight);
    }
  }, {
    key: '_invokeOnScrollCallback',
    value: function _invokeOnScrollCallback() {
      var _props3 = this.props,
          height = _props3.height,
          onScroll = _props3.onScroll;
      var scrollTop = this.state.scrollTop;

      if (this._onScrollMemoized !== scrollTop) {
        onScroll({
          clientHeight: height,
          scrollHeight: this._getEstimatedTotalHeight(),
          scrollTop: scrollTop
        });
        this._onScrollMemoized = scrollTop;
      }
    }
  }, {
    key: '_invokeOnCellsRenderedCallback',
    value: function _invokeOnCellsRenderedCallback() {
      if (this._startIndexMemoized !== this._startIndex || this._stopIndexMemoized !== this._stopIndex) {
        var _onCellsRendered = this.props.onCellsRendered;

        _onCellsRendered({
          startIndex: this._startIndex,
          stopIndex: this._stopIndex
        });

        this._startIndexMemoized = this._startIndex;
        this._stopIndexMemoized = this._stopIndex;
      }
    }
  }, {
    key: '_populatePositionCache',
    value: function _populatePositionCache(startIndex, stopIndex) {
      var _props4 = this.props,
          cellMeasurerCache = _props4.cellMeasurerCache,
          cellPositioner = _props4.cellPositioner;

      for (var _index2 = startIndex; _index2 <= stopIndex; _index2++) {
        var _cellPositioner = cellPositioner(_index2),
            _left = _cellPositioner.left,
            _top = _cellPositioner.top;

        this._positionCache.setPosition(_index2, _left, _top, cellMeasurerCache.getHeight(_index2));
      }
    }
  }], [{
    key: 'getDerivedStateFromProps',
    value: function getDerivedStateFromProps(nextProps, prevState) {
      if (nextProps.scrollTop !== undefined && prevState.scrollTop !== nextProps.scrollTop) {
        return {
          isScrolling: true,
          scrollTop: nextProps.scrollTop
        };
      }

      return null;
    }
  }]);

  return Masonry;
}(react["PureComponent"]);

Masonry_Masonry.defaultProps = {
  autoHeight: false,
  keyMapper: identity,
  onCellsRendered: noop,
  onScroll: noop,
  overscanByPixels: 20,
  role: 'grid',
  scrollingResetTimeInterval: Masonry_DEFAULT_SCROLLING_RESET_TIME_INTERVAL,
  style: emptyObject,
  tabIndex: 0,
  rowDirection: 'ltr'
};
Masonry_Masonry.propTypes =  true ? null : undefined;

function identity(value) {
  return value;
}

function noop() {}

var bpfrpt_proptype_CellMeasurerCache =  true ? null : undefined;
Object(react_lifecycles_compat_es["polyfill"])(Masonry_Masonry);
/* harmony default export */ var es_Masonry_Masonry = (Masonry_Masonry);
var bpfrpt_proptype_Positioner =  true ? null : undefined;




// CONCATENATED MODULE: ./node_modules/@adobe/react-virtualized/dist/es/Masonry/createCellPositioner.js
function createCellPositioner(_ref) {
  var cellMeasurerCache = _ref.cellMeasurerCache,
      columnCount = _ref.columnCount,
      columnWidth = _ref.columnWidth,
      _ref$spacer = _ref.spacer,
      spacer = _ref$spacer === undefined ? 0 : _ref$spacer;
  var columnHeights = void 0;
  initOrResetDerivedValues();

  function cellPositioner(index) {
    // Find the shortest column and use it.
    var columnIndex = 0;

    for (var i = 1; i < columnHeights.length; i++) {
      if (columnHeights[i] < columnHeights[columnIndex]) {
        columnIndex = i;
      }
    }

    var left = columnIndex * (columnWidth + spacer);
    var top = columnHeights[columnIndex] || 0;
    columnHeights[columnIndex] = top + cellMeasurerCache.getHeight(index) + spacer;
    return {
      left: left,
      top: top
    };
  }

  function initOrResetDerivedValues() {
    // Track the height of each column.
    // Layout algorithm below always inserts into the shortest column.
    columnHeights = [];

    for (var i = 0; i < columnCount; i++) {
      columnHeights[i] = 0;
    }
  }

  function reset(params) {
    columnCount = params.columnCount;
    columnWidth = params.columnWidth;
    spacer = params.spacer;
    initOrResetDerivedValues();
  }

  cellPositioner.reset = reset;
  return cellPositioner;
}


// CONCATENATED MODULE: ./node_modules/@adobe/react-virtualized/dist/es/Masonry/index.js


/* harmony default export */ var es_Masonry = (es_Masonry_Masonry);

// CONCATENATED MODULE: ./node_modules/@adobe/react-virtualized/dist/es/MultiGrid/CellMeasurerCacheDecorator.js



/**
 * Caches measurements for a given cell.
 */

var CellMeasurerCacheDecorator_CellMeasurerCacheDecorator = function () {
  function CellMeasurerCacheDecorator() {
    var _this = this;

    var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};

    classCallCheck_default()(this, CellMeasurerCacheDecorator);

    this.columnWidth = function (_ref) {
      var index = _ref.index;

      _this._cellMeasurerCache.columnWidth({
        index: index + _this._columnIndexOffset
      });
    };

    this.rowHeight = function (_ref2) {
      var index = _ref2.index;

      _this._cellMeasurerCache.rowHeight({
        index: index + _this._rowIndexOffset
      });
    };

    var cellMeasurerCache = params.cellMeasurerCache,
        _params$columnIndexOf = params.columnIndexOffset,
        columnIndexOffset = _params$columnIndexOf === undefined ? 0 : _params$columnIndexOf,
        _params$rowIndexOffse = params.rowIndexOffset,
        rowIndexOffset = _params$rowIndexOffse === undefined ? 0 : _params$rowIndexOffse;
    this._cellMeasurerCache = cellMeasurerCache;
    this._columnIndexOffset = columnIndexOffset;
    this._rowIndexOffset = rowIndexOffset;
  }

  createClass_default()(CellMeasurerCacheDecorator, [{
    key: 'clear',
    value: function clear(rowIndex, columnIndex) {
      this._cellMeasurerCache.clear(rowIndex + this._rowIndexOffset, columnIndex + this._columnIndexOffset);
    }
  }, {
    key: 'clearAll',
    value: function clearAll() {
      this._cellMeasurerCache.clearAll();
    }
  }, {
    key: 'hasFixedHeight',
    value: function hasFixedHeight() {
      return this._cellMeasurerCache.hasFixedHeight();
    }
  }, {
    key: 'hasFixedWidth',
    value: function hasFixedWidth() {
      return this._cellMeasurerCache.hasFixedWidth();
    }
  }, {
    key: 'getHeight',
    value: function getHeight(rowIndex) {
      var columnIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
      return this._cellMeasurerCache.getHeight(rowIndex + this._rowIndexOffset, columnIndex + this._columnIndexOffset);
    }
  }, {
    key: 'getWidth',
    value: function getWidth(rowIndex) {
      var columnIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
      return this._cellMeasurerCache.getWidth(rowIndex + this._rowIndexOffset, columnIndex + this._columnIndexOffset);
    }
  }, {
    key: 'has',
    value: function has(rowIndex) {
      var columnIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
      return this._cellMeasurerCache.has(rowIndex + this._rowIndexOffset, columnIndex + this._columnIndexOffset);
    }
  }, {
    key: 'set',
    value: function set(rowIndex, columnIndex, width, height) {
      this._cellMeasurerCache.set(rowIndex + this._rowIndexOffset, columnIndex + this._columnIndexOffset, width, height);
    }
  }, {
    key: 'defaultHeight',
    get: function get() {
      return this._cellMeasurerCache.defaultHeight;
    }
  }, {
    key: 'defaultWidth',
    get: function get() {
      return this._cellMeasurerCache.defaultWidth;
    }
  }]);

  return CellMeasurerCacheDecorator;
}();

/* harmony default export */ var MultiGrid_CellMeasurerCacheDecorator = (CellMeasurerCacheDecorator_CellMeasurerCacheDecorator);
// CONCATENATED MODULE: ./node_modules/@adobe/react-virtualized/dist/es/MultiGrid/MultiGrid.js












var SCROLLBAR_SIZE_BUFFER = 20;
/**
 * Renders 1, 2, or 4 Grids depending on configuration.
 * A main (body) Grid will always be rendered.
 * Optionally, 1-2 Grids for sticky header rows will also be rendered.
 * If no sticky columns, only 1 sticky header Grid will be rendered.
 * If sticky columns, 2 sticky header Grids will be rendered.
 */

var MultiGrid_MultiGrid = function (_React$PureComponent) {
  inherits_default()(MultiGrid, _React$PureComponent);

  function MultiGrid(props, context) {
    classCallCheck_default()(this, MultiGrid);

    var _this = possibleConstructorReturn_default()(this, (MultiGrid.__proto__ || get_prototype_of_default()(MultiGrid)).call(this, props, context));

    MultiGrid_initialiseProps.call(_this);

    var deferredMeasurementCache = props.deferredMeasurementCache,
        fixedColumnCount = props.fixedColumnCount,
        fixedRowCount = props.fixedRowCount;

    _this._maybeCalculateCachedStyles(true);

    if (deferredMeasurementCache) {
      _this._deferredMeasurementCacheBottomLeftGrid = fixedRowCount > 0 ? new MultiGrid_CellMeasurerCacheDecorator({
        cellMeasurerCache: deferredMeasurementCache,
        columnIndexOffset: 0,
        rowIndexOffset: fixedRowCount
      }) : deferredMeasurementCache;
      _this._deferredMeasurementCacheBottomRightGrid = fixedColumnCount > 0 || fixedRowCount > 0 ? new MultiGrid_CellMeasurerCacheDecorator({
        cellMeasurerCache: deferredMeasurementCache,
        columnIndexOffset: fixedColumnCount,
        rowIndexOffset: fixedRowCount
      }) : deferredMeasurementCache;
      _this._deferredMeasurementCacheTopRightGrid = fixedColumnCount > 0 ? new MultiGrid_CellMeasurerCacheDecorator({
        cellMeasurerCache: deferredMeasurementCache,
        columnIndexOffset: fixedColumnCount,
        rowIndexOffset: 0
      }) : deferredMeasurementCache;
    }

    return _this;
  }

  createClass_default()(MultiGrid, [{
    key: 'forceUpdateGrids',
    value: function forceUpdateGrids() {
      this._bottomLeftGrid && this._bottomLeftGrid.forceUpdate();
      this._bottomRightGrid && this._bottomRightGrid.forceUpdate();
      this._topLeftGrid && this._topLeftGrid.forceUpdate();
      this._topRightGrid && this._topRightGrid.forceUpdate();
    }
    /** See Grid#invalidateCellSizeAfterRender */

  }, {
    key: 'invalidateCellSizeAfterRender',
    value: function invalidateCellSizeAfterRender() {
      var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
          _ref$columnIndex = _ref.columnIndex,
          columnIndex = _ref$columnIndex === undefined ? 0 : _ref$columnIndex,
          _ref$rowIndex = _ref.rowIndex,
          rowIndex = _ref$rowIndex === undefined ? 0 : _ref$rowIndex;

      this._deferredInvalidateColumnIndex = typeof this._deferredInvalidateColumnIndex === 'number' ? Math.min(this._deferredInvalidateColumnIndex, columnIndex) : columnIndex;
      this._deferredInvalidateRowIndex = typeof this._deferredInvalidateRowIndex === 'number' ? Math.min(this._deferredInvalidateRowIndex, rowIndex) : rowIndex;
    }
    /** See Grid#measureAllCells */

  }, {
    key: 'measureAllCells',
    value: function measureAllCells() {
      this._bottomLeftGrid && this._bottomLeftGrid.measureAllCells();
      this._bottomRightGrid && this._bottomRightGrid.measureAllCells();
      this._topLeftGrid && this._topLeftGrid.measureAllCells();
      this._topRightGrid && this._topRightGrid.measureAllCells();
    }
    /** See Grid#recomputeGridSize */

  }, {
    key: 'recomputeGridSize',
    value: function recomputeGridSize() {
      var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
          _ref2$columnIndex = _ref2.columnIndex,
          columnIndex = _ref2$columnIndex === undefined ? 0 : _ref2$columnIndex,
          _ref2$rowIndex = _ref2.rowIndex,
          rowIndex = _ref2$rowIndex === undefined ? 0 : _ref2$rowIndex;

      var _props = this.props,
          fixedColumnCount = _props.fixedColumnCount,
          fixedRowCount = _props.fixedRowCount;
      var adjustedColumnIndex = Math.max(0, columnIndex - fixedColumnCount);
      var adjustedRowIndex = Math.max(0, rowIndex - fixedRowCount);
      this._bottomLeftGrid && this._bottomLeftGrid.recomputeGridSize({
        columnIndex: columnIndex,
        rowIndex: adjustedRowIndex
      });
      this._bottomRightGrid && this._bottomRightGrid.recomputeGridSize({
        columnIndex: adjustedColumnIndex,
        rowIndex: adjustedRowIndex
      });
      this._topLeftGrid && this._topLeftGrid.recomputeGridSize({
        columnIndex: columnIndex,
        rowIndex: rowIndex
      });
      this._topRightGrid && this._topRightGrid.recomputeGridSize({
        columnIndex: adjustedColumnIndex,
        rowIndex: rowIndex
      });
      this._leftGridWidth = null;
      this._topGridHeight = null;

      this._maybeCalculateCachedStyles(true);
    }
  }, {
    key: 'componentDidMount',
    value: function componentDidMount() {
      var _props2 = this.props,
          scrollLeft = _props2.scrollLeft,
          scrollTop = _props2.scrollTop;

      if (scrollLeft > 0 || scrollTop > 0) {
        var newState = {};

        if (scrollLeft > 0) {
          newState.scrollLeft = scrollLeft;
        }

        if (scrollTop > 0) {
          newState.scrollTop = scrollTop;
        }

        this.setState(newState);
      }

      this._handleInvalidatedGridSize();
    }
  }, {
    key: 'componentDidUpdate',
    value: function componentDidUpdate() {
      this._handleInvalidatedGridSize();
    }
  }, {
    key: 'render',
    value: function render() {
      var _props3 = this.props,
          onScroll = _props3.onScroll,
          onSectionRendered = _props3.onSectionRendered,
          onScrollbarPresenceChange = _props3.onScrollbarPresenceChange,
          scrollLeftProp = _props3.scrollLeft,
          scrollToColumn = _props3.scrollToColumn,
          scrollTopProp = _props3.scrollTop,
          scrollToRow = _props3.scrollToRow,
          rest = objectWithoutProperties_default()(_props3, ['onScroll', 'onSectionRendered', 'onScrollbarPresenceChange', 'scrollLeft', 'scrollToColumn', 'scrollTop', 'scrollToRow']);

      this._prepareForRender(); // Don't render any of our Grids if there are no cells.
      // This mirrors what Grid does,
      // And prevents us from recording inaccurage measurements when used with CellMeasurer.


      if (this.props.width === 0 || this.props.height === 0) {
        return null;
      } // scrollTop and scrollLeft props are explicitly filtered out and ignored


      var _state = this.state,
          scrollLeft = _state.scrollLeft,
          scrollTop = _state.scrollTop;
      return react["createElement"]('div', {
        style: this._containerOuterStyle
      }, react["createElement"]('div', {
        style: this._containerTopStyle
      }, this._renderTopLeftGrid(rest), this._renderTopRightGrid(extends_default()({}, rest, {
        onScroll: onScroll,
        scrollLeft: scrollLeft
      }))), react["createElement"]('div', {
        style: this._containerBottomStyle
      }, this._renderBottomLeftGrid(extends_default()({}, rest, {
        onScroll: onScroll,
        scrollTop: scrollTop
      })), this._renderBottomRightGrid(extends_default()({}, rest, {
        onScroll: onScroll,
        onSectionRendered: onSectionRendered,
        scrollLeft: scrollLeft,
        scrollToColumn: scrollToColumn,
        scrollToRow: scrollToRow,
        scrollTop: scrollTop
      }))));
    }
  }, {
    key: '_getBottomGridHeight',
    value: function _getBottomGridHeight(props) {
      var height = props.height;

      var topGridHeight = this._getTopGridHeight(props);

      return height - topGridHeight;
    }
  }, {
    key: '_getLeftGridWidth',
    value: function _getLeftGridWidth(props) {
      var fixedColumnCount = props.fixedColumnCount,
          columnWidth = props.columnWidth;

      if (this._leftGridWidth == null) {
        if (typeof columnWidth === 'function') {
          var leftGridWidth = 0;

          for (var index = 0; index < fixedColumnCount; index++) {
            leftGridWidth += columnWidth({
              index: index
            });
          }

          this._leftGridWidth = leftGridWidth;
        } else {
          this._leftGridWidth = columnWidth * fixedColumnCount;
        }
      }

      return this._leftGridWidth;
    }
  }, {
    key: '_getRightGridWidth',
    value: function _getRightGridWidth(props) {
      var width = props.width;

      var leftGridWidth = this._getLeftGridWidth(props);

      return width - leftGridWidth;
    }
  }, {
    key: '_getTopGridHeight',
    value: function _getTopGridHeight(props) {
      var fixedRowCount = props.fixedRowCount,
          rowHeight = props.rowHeight;

      if (this._topGridHeight == null) {
        if (typeof rowHeight === 'function') {
          var topGridHeight = 0;

          for (var index = 0; index < fixedRowCount; index++) {
            topGridHeight += rowHeight({
              index: index
            });
          }

          this._topGridHeight = topGridHeight;
        } else {
          this._topGridHeight = rowHeight * fixedRowCount;
        }
      }

      return this._topGridHeight;
    }
  }, {
    key: '_handleInvalidatedGridSize',
    value: function _handleInvalidatedGridSize() {
      if (typeof this._deferredInvalidateColumnIndex === 'number') {
        var columnIndex = this._deferredInvalidateColumnIndex;
        var rowIndex = this._deferredInvalidateRowIndex;
        this._deferredInvalidateColumnIndex = null;
        this._deferredInvalidateRowIndex = null;
        this.recomputeGridSize({
          columnIndex: columnIndex,
          rowIndex: rowIndex
        });
        this.forceUpdate();
      }
    }
    /**
     * Avoid recreating inline styles each render; this bypasses Grid's shallowCompare.
     * This method recalculates styles only when specific props change.
     */

  }, {
    key: '_maybeCalculateCachedStyles',
    value: function _maybeCalculateCachedStyles(resetAll) {
      var _props4 = this.props,
          columnWidth = _props4.columnWidth,
          enableFixedColumnScroll = _props4.enableFixedColumnScroll,
          enableFixedRowScroll = _props4.enableFixedRowScroll,
          height = _props4.height,
          fixedColumnCount = _props4.fixedColumnCount,
          fixedRowCount = _props4.fixedRowCount,
          rowHeight = _props4.rowHeight,
          style = _props4.style,
          styleBottomLeftGrid = _props4.styleBottomLeftGrid,
          styleBottomRightGrid = _props4.styleBottomRightGrid,
          styleTopLeftGrid = _props4.styleTopLeftGrid,
          styleTopRightGrid = _props4.styleTopRightGrid,
          width = _props4.width;
      var sizeChange = resetAll || height !== this._lastRenderedHeight || width !== this._lastRenderedWidth;
      var leftSizeChange = resetAll || columnWidth !== this._lastRenderedColumnWidth || fixedColumnCount !== this._lastRenderedFixedColumnCount;
      var topSizeChange = resetAll || fixedRowCount !== this._lastRenderedFixedRowCount || rowHeight !== this._lastRenderedRowHeight;

      if (resetAll || sizeChange || style !== this._lastRenderedStyle) {
        this._containerOuterStyle = extends_default()({
          height: height,
          overflow: 'visible',
          // Let :focus outline show through
          width: width
        }, style);
      }

      if (resetAll || sizeChange || topSizeChange) {
        this._containerTopStyle = {
          height: this._getTopGridHeight(this.props),
          position: 'relative',
          width: width
        };
        this._containerBottomStyle = {
          height: height - this._getTopGridHeight(this.props),
          overflow: 'visible',
          // Let :focus outline show through
          position: 'relative',
          width: width
        };
      }

      if (resetAll || styleBottomLeftGrid !== this._lastRenderedStyleBottomLeftGrid) {
        this._bottomLeftGridStyle = extends_default()({
          left: 0,
          overflowX: 'hidden',
          overflowY: enableFixedColumnScroll ? 'auto' : 'hidden',
          position: 'absolute'
        }, styleBottomLeftGrid);
      }

      if (resetAll || leftSizeChange || styleBottomRightGrid !== this._lastRenderedStyleBottomRightGrid) {
        this._bottomRightGridStyle = extends_default()({
          left: this._getLeftGridWidth(this.props),
          position: 'absolute'
        }, styleBottomRightGrid);
      }

      if (resetAll || styleTopLeftGrid !== this._lastRenderedStyleTopLeftGrid) {
        this._topLeftGridStyle = extends_default()({
          left: 0,
          overflowX: 'hidden',
          overflowY: 'hidden',
          position: 'absolute',
          top: 0
        }, styleTopLeftGrid);
      }

      if (resetAll || leftSizeChange || styleTopRightGrid !== this._lastRenderedStyleTopRightGrid) {
        this._topRightGridStyle = extends_default()({
          left: this._getLeftGridWidth(this.props),
          overflowX: enableFixedRowScroll ? 'auto' : 'hidden',
          overflowY: 'hidden',
          position: 'absolute',
          top: 0
        }, styleTopRightGrid);
      }

      this._lastRenderedColumnWidth = columnWidth;
      this._lastRenderedFixedColumnCount = fixedColumnCount;
      this._lastRenderedFixedRowCount = fixedRowCount;
      this._lastRenderedHeight = height;
      this._lastRenderedRowHeight = rowHeight;
      this._lastRenderedStyle = style;
      this._lastRenderedStyleBottomLeftGrid = styleBottomLeftGrid;
      this._lastRenderedStyleBottomRightGrid = styleBottomRightGrid;
      this._lastRenderedStyleTopLeftGrid = styleTopLeftGrid;
      this._lastRenderedStyleTopRightGrid = styleTopRightGrid;
      this._lastRenderedWidth = width;
    }
  }, {
    key: '_prepareForRender',
    value: function _prepareForRender() {
      if (this._lastRenderedColumnWidth !== this.props.columnWidth || this._lastRenderedFixedColumnCount !== this.props.fixedColumnCount) {
        this._leftGridWidth = null;
      }

      if (this._lastRenderedFixedRowCount !== this.props.fixedRowCount || this._lastRenderedRowHeight !== this.props.rowHeight) {
        this._topGridHeight = null;
      }

      this._maybeCalculateCachedStyles();

      this._lastRenderedColumnWidth = this.props.columnWidth;
      this._lastRenderedFixedColumnCount = this.props.fixedColumnCount;
      this._lastRenderedFixedRowCount = this.props.fixedRowCount;
      this._lastRenderedRowHeight = this.props.rowHeight;
    }
  }, {
    key: '_renderBottomLeftGrid',
    value: function _renderBottomLeftGrid(props) {
      var enableFixedColumnScroll = props.enableFixedColumnScroll,
          fixedColumnCount = props.fixedColumnCount,
          fixedRowCount = props.fixedRowCount,
          rowCount = props.rowCount,
          hideBottomLeftGridScrollbar = props.hideBottomLeftGridScrollbar;
      var showVerticalScrollbar = this.state.showVerticalScrollbar;

      if (!fixedColumnCount) {
        return null;
      }

      var additionalRowCount = showVerticalScrollbar ? 1 : 0,
          height = this._getBottomGridHeight(props),
          width = this._getLeftGridWidth(props),
          scrollbarSize = this.state.showVerticalScrollbar ? this.state.scrollbarSize : 0,
          gridWidth = hideBottomLeftGridScrollbar ? width + scrollbarSize : width;

      var bottomLeftGrid = react["createElement"](es_Grid_Grid, extends_default()({}, props, {
        cellRenderer: this._cellRendererBottomLeftGrid,
        className: this.props.classNameBottomLeftGrid,
        columnCount: fixedColumnCount,
        deferredMeasurementCache: this._deferredMeasurementCacheBottomLeftGrid,
        height: height,
        onScroll: enableFixedColumnScroll ? this._onScrollTop : undefined,
        ref: this._bottomLeftGridRef,
        rowCount: Math.max(0, rowCount - fixedRowCount) + additionalRowCount,
        rowHeight: this._rowHeightBottomGrid,
        style: this._bottomLeftGridStyle,
        tabIndex: null,
        width: gridWidth
      }));

      if (hideBottomLeftGridScrollbar) {
        return react["createElement"]('div', {
          className: 'BottomLeftGrid_ScrollWrapper',
          style: extends_default()({}, this._bottomLeftGridStyle, {
            height: height,
            width: width,
            overflowY: 'hidden'
          })
        }, bottomLeftGrid);
      }

      return bottomLeftGrid;
    }
  }, {
    key: '_renderBottomRightGrid',
    value: function _renderBottomRightGrid(props) {
      var columnCount = props.columnCount,
          fixedColumnCount = props.fixedColumnCount,
          fixedRowCount = props.fixedRowCount,
          rowCount = props.rowCount,
          scrollToColumn = props.scrollToColumn,
          scrollToRow = props.scrollToRow;
      return react["createElement"](es_Grid_Grid, extends_default()({}, props, {
        cellRenderer: this._cellRendererBottomRightGrid,
        className: this.props.classNameBottomRightGrid,
        columnCount: Math.max(0, columnCount - fixedColumnCount),
        columnWidth: this._columnWidthRightGrid,
        deferredMeasurementCache: this._deferredMeasurementCacheBottomRightGrid,
        height: this._getBottomGridHeight(props),
        onScroll: this._onScroll,
        onScrollbarPresenceChange: this._onScrollbarPresenceChange,
        ref: this._bottomRightGridRef,
        rowCount: Math.max(0, rowCount - fixedRowCount),
        rowHeight: this._rowHeightBottomGrid,
        scrollToColumn: scrollToColumn - fixedColumnCount,
        scrollToRow: scrollToRow - fixedRowCount,
        style: this._bottomRightGridStyle,
        width: this._getRightGridWidth(props)
      }));
    }
  }, {
    key: '_renderTopLeftGrid',
    value: function _renderTopLeftGrid(props) {
      var fixedColumnCount = props.fixedColumnCount,
          fixedRowCount = props.fixedRowCount;

      if (!fixedColumnCount || !fixedRowCount) {
        return null;
      }

      return react["createElement"](es_Grid_Grid, extends_default()({}, props, {
        className: this.props.classNameTopLeftGrid,
        columnCount: fixedColumnCount,
        height: this._getTopGridHeight(props),
        ref: this._topLeftGridRef,
        rowCount: fixedRowCount,
        style: this._topLeftGridStyle,
        tabIndex: null,
        width: this._getLeftGridWidth(props)
      }));
    }
  }, {
    key: '_renderTopRightGrid',
    value: function _renderTopRightGrid(props) {
      var columnCount = props.columnCount,
          enableFixedRowScroll = props.enableFixedRowScroll,
          fixedColumnCount = props.fixedColumnCount,
          fixedRowCount = props.fixedRowCount,
          scrollLeft = props.scrollLeft,
          hideTopRightGridScrollbar = props.hideTopRightGridScrollbar;
      var _state2 = this.state,
          showHorizontalScrollbar = _state2.showHorizontalScrollbar,
          scrollbarSize = _state2.scrollbarSize;

      if (!fixedRowCount) {
        return null;
      }

      var additionalColumnCount = showHorizontalScrollbar ? 1 : 0,
          height = this._getTopGridHeight(props),
          width = this._getRightGridWidth(props),
          additionalHeight = showHorizontalScrollbar ? scrollbarSize : 0;

      var gridHeight = height,
          style = this._topRightGridStyle;

      if (hideTopRightGridScrollbar) {
        gridHeight = height + additionalHeight;
        style = extends_default()({}, this._topRightGridStyle, {
          left: 0
        });
      }

      var topRightGrid = react["createElement"](es_Grid_Grid, extends_default()({}, props, {
        cellRenderer: this._cellRendererTopRightGrid,
        className: this.props.classNameTopRightGrid,
        columnCount: Math.max(0, columnCount - fixedColumnCount) + additionalColumnCount,
        columnWidth: this._columnWidthRightGrid,
        deferredMeasurementCache: this._deferredMeasurementCacheTopRightGrid,
        height: gridHeight,
        onScroll: enableFixedRowScroll ? this._onScrollLeft : undefined,
        ref: this._topRightGridRef,
        rowCount: fixedRowCount,
        scrollLeft: scrollLeft,
        style: style,
        tabIndex: null,
        width: width
      }));

      if (hideTopRightGridScrollbar) {
        return react["createElement"]('div', {
          className: 'TopRightGrid_ScrollWrapper',
          style: extends_default()({}, this._topRightGridStyle, {
            height: height,
            width: width,
            overflowX: 'hidden'
          })
        }, topRightGrid);
      }

      return topRightGrid;
    }
  }], [{
    key: 'getDerivedStateFromProps',
    value: function getDerivedStateFromProps(nextProps, prevState) {
      if (nextProps.scrollLeft !== prevState.scrollLeft || nextProps.scrollTop !== prevState.scrollTop) {
        return {
          scrollLeft: nextProps.scrollLeft != null && nextProps.scrollLeft >= 0 ? nextProps.scrollLeft : prevState.scrollLeft,
          scrollTop: nextProps.scrollTop != null && nextProps.scrollTop >= 0 ? nextProps.scrollTop : prevState.scrollTop
        };
      }

      return null;
    }
  }]);

  return MultiGrid;
}(react["PureComponent"]);

MultiGrid_MultiGrid.defaultProps = {
  classNameBottomLeftGrid: '',
  classNameBottomRightGrid: '',
  classNameTopLeftGrid: '',
  classNameTopRightGrid: '',
  enableFixedColumnScroll: false,
  enableFixedRowScroll: false,
  fixedColumnCount: 0,
  fixedRowCount: 0,
  scrollToColumn: -1,
  scrollToRow: -1,
  style: {},
  styleBottomLeftGrid: {},
  styleBottomRightGrid: {},
  styleTopLeftGrid: {},
  styleTopRightGrid: {},
  hideTopRightGridScrollbar: false,
  hideBottomLeftGridScrollbar: false
};

var MultiGrid_initialiseProps = function _initialiseProps() {
  var _this2 = this;

  this.state = {
    scrollLeft: 0,
    scrollTop: 0,
    scrollbarSize: 0,
    showHorizontalScrollbar: false,
    showVerticalScrollbar: false
  };
  this._deferredInvalidateColumnIndex = null;
  this._deferredInvalidateRowIndex = null;

  this._bottomLeftGridRef = function (ref) {
    _this2._bottomLeftGrid = ref;
  };

  this._bottomRightGridRef = function (ref) {
    _this2._bottomRightGrid = ref;
  };

  this._cellRendererBottomLeftGrid = function (_ref3) {
    var rowIndex = _ref3.rowIndex,
        rest = objectWithoutProperties_default()(_ref3, ['rowIndex']);

    var _props5 = _this2.props,
        cellRenderer = _props5.cellRenderer,
        fixedRowCount = _props5.fixedRowCount,
        rowCount = _props5.rowCount;

    if (rowIndex === rowCount - fixedRowCount) {
      return react["createElement"]('div', {
        key: rest.key,
        style: extends_default()({}, rest.style, {
          height: SCROLLBAR_SIZE_BUFFER
        })
      });
    } else {
      return cellRenderer(extends_default()({}, rest, {
        parent: _this2,
        rowIndex: rowIndex + fixedRowCount
      }));
    }
  };

  this._cellRendererBottomRightGrid = function (_ref4) {
    var columnIndex = _ref4.columnIndex,
        rowIndex = _ref4.rowIndex,
        rest = objectWithoutProperties_default()(_ref4, ['columnIndex', 'rowIndex']);

    var _props6 = _this2.props,
        cellRenderer = _props6.cellRenderer,
        fixedColumnCount = _props6.fixedColumnCount,
        fixedRowCount = _props6.fixedRowCount;
    return cellRenderer(extends_default()({}, rest, {
      columnIndex: columnIndex + fixedColumnCount,
      parent: _this2,
      rowIndex: rowIndex + fixedRowCount
    }));
  };

  this._cellRendererTopRightGrid = function (_ref5) {
    var columnIndex = _ref5.columnIndex,
        rest = objectWithoutProperties_default()(_ref5, ['columnIndex']);

    var _props7 = _this2.props,
        cellRenderer = _props7.cellRenderer,
        columnCount = _props7.columnCount,
        fixedColumnCount = _props7.fixedColumnCount;

    if (columnIndex === columnCount - fixedColumnCount) {
      return react["createElement"]('div', {
        key: rest.key,
        style: extends_default()({}, rest.style, {
          width: SCROLLBAR_SIZE_BUFFER
        })
      });
    } else {
      return cellRenderer(extends_default()({}, rest, {
        columnIndex: columnIndex + fixedColumnCount,
        parent: _this2
      }));
    }
  };

  this._columnWidthRightGrid = function (_ref6) {
    var index = _ref6.index;
    var _props8 = _this2.props,
        columnCount = _props8.columnCount,
        fixedColumnCount = _props8.fixedColumnCount,
        columnWidth = _props8.columnWidth;
    var _state3 = _this2.state,
        scrollbarSize = _state3.scrollbarSize,
        showHorizontalScrollbar = _state3.showHorizontalScrollbar; // An extra cell is added to the count
    // This gives the smaller Grid extra room for offset,
    // In case the main (bottom right) Grid has a scrollbar
    // If no scrollbar, the extra space is overflow:hidden anyway

    if (showHorizontalScrollbar && index === columnCount - fixedColumnCount) {
      return scrollbarSize;
    }

    return typeof columnWidth === 'function' ? columnWidth({
      index: index + fixedColumnCount
    }) : columnWidth;
  };

  this._onScroll = function (scrollInfo) {
    var scrollLeft = scrollInfo.scrollLeft,
        scrollTop = scrollInfo.scrollTop;

    _this2.setState({
      scrollLeft: scrollLeft,
      scrollTop: scrollTop
    });

    var onScroll = _this2.props.onScroll;

    if (onScroll) {
      onScroll(scrollInfo);
    }
  };

  this._onScrollbarPresenceChange = function (_ref7) {
    var horizontal = _ref7.horizontal,
        size = _ref7.size,
        vertical = _ref7.vertical;
    var _state4 = _this2.state,
        showHorizontalScrollbar = _state4.showHorizontalScrollbar,
        showVerticalScrollbar = _state4.showVerticalScrollbar;

    if (horizontal !== showHorizontalScrollbar || vertical !== showVerticalScrollbar) {
      _this2.setState({
        scrollbarSize: size,
        showHorizontalScrollbar: horizontal,
        showVerticalScrollbar: vertical
      });

      var onScrollbarPresenceChange = _this2.props.onScrollbarPresenceChange;

      if (typeof onScrollbarPresenceChange === 'function') {
        onScrollbarPresenceChange({
          horizontal: horizontal,
          size: size,
          vertical: vertical
        });
      }
    }
  };

  this._onScrollLeft = function (scrollInfo) {
    var scrollLeft = scrollInfo.scrollLeft;

    _this2._onScroll({
      scrollLeft: scrollLeft,
      scrollTop: _this2.state.scrollTop
    });
  };

  this._onScrollTop = function (scrollInfo) {
    var scrollTop = scrollInfo.scrollTop;

    _this2._onScroll({
      scrollTop: scrollTop,
      scrollLeft: _this2.state.scrollLeft
    });
  };

  this._rowHeightBottomGrid = function (_ref8) {
    var index = _ref8.index;
    var _props9 = _this2.props,
        fixedRowCount = _props9.fixedRowCount,
        rowCount = _props9.rowCount,
        rowHeight = _props9.rowHeight;
    var _state5 = _this2.state,
        scrollbarSize = _state5.scrollbarSize,
        showVerticalScrollbar = _state5.showVerticalScrollbar; // An extra cell is added to the count
    // This gives the smaller Grid extra room for offset,
    // In case the main (bottom right) Grid has a scrollbar
    // If no scrollbar, the extra space is overflow:hidden anyway

    if (showVerticalScrollbar && index === rowCount - fixedRowCount) {
      return scrollbarSize;
    }

    return typeof rowHeight === 'function' ? rowHeight({
      index: index + fixedRowCount
    }) : rowHeight;
  };

  this._topLeftGridRef = function (ref) {
    _this2._topLeftGrid = ref;
  };

  this._topRightGridRef = function (ref) {
    _this2._topRightGrid = ref;
  };
};

MultiGrid_MultiGrid.propTypes =  false ? undefined : {};
Object(react_lifecycles_compat_es["polyfill"])(MultiGrid_MultiGrid);
/* harmony default export */ var es_MultiGrid_MultiGrid = (MultiGrid_MultiGrid);
// CONCATENATED MODULE: ./node_modules/@adobe/react-virtualized/dist/es/MultiGrid/index.js

/* harmony default export */ var es_MultiGrid = (es_MultiGrid_MultiGrid);

// CONCATENATED MODULE: ./node_modules/@adobe/react-virtualized/dist/es/ScrollSync/ScrollSync.js







/**
 * HOC that simplifies the process of synchronizing scrolling between two or more virtualized components.
 */

var ScrollSync_ScrollSync = function (_React$PureComponent) {
  inherits_default()(ScrollSync, _React$PureComponent);

  function ScrollSync(props, context) {
    classCallCheck_default()(this, ScrollSync);

    var _this = possibleConstructorReturn_default()(this, (ScrollSync.__proto__ || get_prototype_of_default()(ScrollSync)).call(this, props, context));

    _this.state = {
      clientHeight: 0,
      clientWidth: 0,
      scrollHeight: 0,
      scrollLeft: 0,
      scrollTop: 0,
      scrollWidth: 0
    };
    _this._onScroll = _this._onScroll.bind(_this);
    return _this;
  }

  createClass_default()(ScrollSync, [{
    key: 'render',
    value: function render() {
      var children = this.props.children;
      var _state = this.state,
          clientHeight = _state.clientHeight,
          clientWidth = _state.clientWidth,
          scrollHeight = _state.scrollHeight,
          scrollLeft = _state.scrollLeft,
          scrollTop = _state.scrollTop,
          scrollWidth = _state.scrollWidth;
      return children({
        clientHeight: clientHeight,
        clientWidth: clientWidth,
        onScroll: this._onScroll,
        scrollHeight: scrollHeight,
        scrollLeft: scrollLeft,
        scrollTop: scrollTop,
        scrollWidth: scrollWidth
      });
    }
  }, {
    key: '_onScroll',
    value: function _onScroll(_ref) {
      var clientHeight = _ref.clientHeight,
          clientWidth = _ref.clientWidth,
          scrollHeight = _ref.scrollHeight,
          scrollLeft = _ref.scrollLeft,
          scrollTop = _ref.scrollTop,
          scrollWidth = _ref.scrollWidth;
      this.setState({
        clientHeight: clientHeight,
        clientWidth: clientWidth,
        scrollHeight: scrollHeight,
        scrollLeft: scrollLeft,
        scrollTop: scrollTop,
        scrollWidth: scrollWidth
      });
    }
  }]);

  return ScrollSync;
}(react["PureComponent"]);

/* harmony default export */ var es_ScrollSync_ScrollSync = (ScrollSync_ScrollSync);
ScrollSync_ScrollSync.propTypes =  false ? undefined : {};
// CONCATENATED MODULE: ./node_modules/@adobe/react-virtualized/dist/es/ScrollSync/index.js

/* harmony default export */ var es_ScrollSync = (es_ScrollSync_ScrollSync);

// CONCATENATED MODULE: ./node_modules/@adobe/react-virtualized/dist/es/Table/createMultiSort.js

function createMultiSort(sortCallback) {
  var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
      defaultSortBy = _ref.defaultSortBy,
      _ref$defaultSortDirec = _ref.defaultSortDirection,
      defaultSortDirection = _ref$defaultSortDirec === undefined ? {} : _ref$defaultSortDirec;

  if (!sortCallback) {
    throw Error('Required parameter "sortCallback" not specified');
  }

  var sortBy = defaultSortBy || [];
  var sortDirection = {};
  sortBy.forEach(function (dataKey) {
    sortDirection[dataKey] = defaultSortDirection.hasOwnProperty(dataKey) ? defaultSortDirection[dataKey] : 'ASC';
  });

  function sort(_ref2) {
    var defaultSortDirection = _ref2.defaultSortDirection,
        event = _ref2.event,
        dataKey = _ref2.sortBy;

    if (event.shiftKey) {
      // Shift + click appends a column to existing criteria
      if (sortDirection.hasOwnProperty(dataKey)) {
        sortDirection[dataKey] = sortDirection[dataKey] === 'ASC' ? 'DESC' : 'ASC';
      } else {
        sortDirection[dataKey] = defaultSortDirection;
        sortBy.push(dataKey);
      }
    } else if (event.ctrlKey || event.metaKey) {
      // Control + click removes column from sort (if pressent)
      var index = sortBy.indexOf(dataKey);

      if (index >= 0) {
        sortBy.splice(index, 1);
        delete sortDirection[dataKey];
      }
    } else {
      // Clear sortBy array of all non-selected keys
      sortBy.length = 0;
      sortBy.push(dataKey); // Clear sortDirection object of all non-selected keys

      var sortDirectionKeys = keys_default()(sortDirection);

      sortDirectionKeys.forEach(function (key) {
        if (key !== dataKey) delete sortDirection[key];
      }); // If key is already selected, reverse sort direction.
      // Else, set sort direction to default direction.

      if (sortDirection.hasOwnProperty(dataKey)) {
        sortDirection[dataKey] = sortDirection[dataKey] === 'ASC' ? 'DESC' : 'ASC';
      } else {
        sortDirection[dataKey] = defaultSortDirection;
      }
    } // Notify application code


    sortCallback({
      sortBy: sortBy,
      sortDirection: sortDirection
    });
  }

  return {
    sort: sort,
    sortBy: sortBy,
    sortDirection: sortDirection
  };
}
// CONCATENATED MODULE: ./node_modules/@adobe/react-virtualized/dist/es/Table/types.js
var bpfrpt_proptype_CellDataGetterParams =  true ? null : undefined;
var types_bpfrpt_proptype_CellRendererParams =  true ? null : undefined;
var bpfrpt_proptype_HeaderRowRendererParams =  true ? null : undefined;
var bpfrpt_proptype_HeaderRendererParams =  true ? null : undefined;
var types_bpfrpt_proptype_RowRendererParams =  true ? null : undefined;






// CONCATENATED MODULE: ./node_modules/@adobe/react-virtualized/dist/es/Table/defaultCellDataGetter.js
/**
 * Default accessor for returning a cell value for a given attribute.
 * This function expects to operate on either a vanilla Object or an Immutable Map.
 * You should override the column's cellDataGetter if your data is some other type of object.
 */
function defaultCellDataGetter(_ref) {
  var dataKey = _ref.dataKey,
      rowData = _ref.rowData;

  if (typeof rowData.get === 'function') {
    return rowData.get(dataKey);
  } else {
    return rowData[dataKey];
  }
}

// CONCATENATED MODULE: ./node_modules/@adobe/react-virtualized/dist/es/Table/defaultCellRenderer.js
/**
 * Default cell renderer that displays an attribute as a simple string
 * You should override the column's cellRenderer if your data is some other type of object.
 */
function defaultCellRenderer(_ref) {
  var cellData = _ref.cellData;

  if (cellData == null) {
    return '';
  } else {
    return String(cellData);
  }
}

// CONCATENATED MODULE: ./node_modules/@adobe/react-virtualized/dist/es/Table/defaultHeaderRowRenderer.js

function defaultHeaderRowRenderer(_ref) {
  var className = _ref.className,
      columns = _ref.columns,
      style = _ref.style;
  return react["createElement"]('div', {
    className: className,
    role: 'row',
    style: style
  }, columns);
}
defaultHeaderRowRenderer.propTypes =  true ? null : undefined;


// CONCATENATED MODULE: ./node_modules/@adobe/react-virtualized/dist/es/Table/SortDirection.js
var SortDirection = {
  /**
   * Sort items in ascending order.
   * This means arranging from the lowest value to the highest (e.g. a-z, 0-9).
   */
  ASC: 'ASC',

  /**
   * Sort items in descending order.
   * This means arranging from the highest value to the lowest (e.g. z-a, 9-0).
   */
  DESC: 'DESC'
};
/* harmony default export */ var Table_SortDirection = (SortDirection);
// CONCATENATED MODULE: ./node_modules/@adobe/react-virtualized/dist/es/Table/SortIndicator.js




/**
 * Displayed beside a header to indicate that a Table is currently sorted by this column.
 */

function SortIndicator(_ref) {
  var sortDirection = _ref.sortDirection;
  var classNames = Object(clsx_m["a" /* default */])('ReactVirtualized__Table__sortableHeaderIcon', {
    'ReactVirtualized__Table__sortableHeaderIcon--ASC': sortDirection === Table_SortDirection.ASC,
    'ReactVirtualized__Table__sortableHeaderIcon--DESC': sortDirection === Table_SortDirection.DESC
  });
  return react["createElement"]('svg', {
    className: classNames,
    width: 18,
    height: 18,
    viewBox: '0 0 24 24'
  }, sortDirection === Table_SortDirection.ASC ? react["createElement"]('path', {
    d: 'M7 14l5-5 5 5z'
  }) : react["createElement"]('path', {
    d: 'M7 10l5 5 5-5z'
  }), react["createElement"]('path', {
    d: 'M0 0h24v24H0z',
    fill: 'none'
  }));
}
SortIndicator.propTypes =  false ? undefined : {};
// CONCATENATED MODULE: ./node_modules/@adobe/react-virtualized/dist/es/Table/defaultHeaderRenderer.js


/**
 * Default table header renderer.
 */

function defaultHeaderRenderer(_ref) {
  var dataKey = _ref.dataKey,
      label = _ref.label,
      sortBy = _ref.sortBy,
      sortDirection = _ref.sortDirection;
  var showSortIndicator = sortBy === dataKey;
  var children = [react["createElement"]('span', {
    className: 'ReactVirtualized__Table__headerTruncatedText',
    key: 'label',
    title: label
  }, label)];

  if (showSortIndicator) {
    children.push(react["createElement"](SortIndicator, {
      key: 'SortIndicator',
      sortDirection: sortDirection
    }));
  }

  return children;
}
defaultHeaderRenderer.propTypes =  true ? null : undefined;


// CONCATENATED MODULE: ./node_modules/@adobe/react-virtualized/dist/es/Table/defaultRowRenderer.js


/**
 * Default row renderer for Table.
 */

function defaultRowRenderer(_ref) {
  var className = _ref.className,
      columns = _ref.columns,
      index = _ref.index,
      key = _ref.key,
      onRowClick = _ref.onRowClick,
      onRowDoubleClick = _ref.onRowDoubleClick,
      onRowMouseOut = _ref.onRowMouseOut,
      onRowMouseOver = _ref.onRowMouseOver,
      onRowRightClick = _ref.onRowRightClick,
      rowData = _ref.rowData,
      style = _ref.style;
  var a11yProps = {
    'aria-rowindex': index + 1
  };

  if (onRowClick || onRowDoubleClick || onRowMouseOut || onRowMouseOver || onRowRightClick) {
    a11yProps['aria-label'] = 'row';
    a11yProps.tabIndex = 0;

    if (onRowClick) {
      a11yProps.onClick = function (event) {
        return onRowClick({
          event: event,
          index: index,
          rowData: rowData
        });
      };
    }

    if (onRowDoubleClick) {
      a11yProps.onDoubleClick = function (event) {
        return onRowDoubleClick({
          event: event,
          index: index,
          rowData: rowData
        });
      };
    }

    if (onRowMouseOut) {
      a11yProps.onMouseOut = function (event) {
        return onRowMouseOut({
          event: event,
          index: index,
          rowData: rowData
        });
      };
    }

    if (onRowMouseOver) {
      a11yProps.onMouseOver = function (event) {
        return onRowMouseOver({
          event: event,
          index: index,
          rowData: rowData
        });
      };
    }

    if (onRowRightClick) {
      a11yProps.onContextMenu = function (event) {
        return onRowRightClick({
          event: event,
          index: index,
          rowData: rowData
        });
      };
    }
  }

  return react["createElement"]('div', extends_default()({}, a11yProps, {
    className: className,
    key: key,
    role: 'row',
    style: style
  }), columns);
}
defaultRowRenderer.propTypes =  true ? null : undefined;


// CONCATENATED MODULE: ./node_modules/@adobe/react-virtualized/dist/es/Table/Column.js










/**
 * Describes the header and cell contents of a table column.
 */

var Column_Column = function (_React$Component) {
  inherits_default()(Column, _React$Component);

  function Column() {
    classCallCheck_default()(this, Column);

    return possibleConstructorReturn_default()(this, (Column.__proto__ || get_prototype_of_default()(Column)).apply(this, arguments));
  }

  return Column;
}(react["Component"]);

Column_Column.defaultProps = {
  cellDataGetter: defaultCellDataGetter,
  cellRenderer: defaultCellRenderer,
  defaultSortDirection: Table_SortDirection.ASC,
  flexGrow: 0,
  flexShrink: 1,
  headerRenderer: defaultHeaderRenderer,
  style: {}
};
/* harmony default export */ var Table_Column = (Column_Column);
Column_Column.propTypes =  false ? undefined : {};
// CONCATENATED MODULE: ./node_modules/@adobe/react-virtualized/dist/es/Table/Table.js















/**
 * Table component with fixed headers and virtualized rows for improved performance with large data sets.
 * This component expects explicit width, height, and padding parameters.
 */

var Table_Table = function (_React$PureComponent) {
  inherits_default()(Table, _React$PureComponent);

  function Table(props) {
    classCallCheck_default()(this, Table);

    var _this = possibleConstructorReturn_default()(this, (Table.__proto__ || get_prototype_of_default()(Table)).call(this, props));

    _this.state = {
      scrollbarWidth: 0
    };
    _this._createColumn = _this._createColumn.bind(_this);
    _this._createRow = _this._createRow.bind(_this);
    _this._onScroll = _this._onScroll.bind(_this);
    _this._onSectionRendered = _this._onSectionRendered.bind(_this);
    _this._setRef = _this._setRef.bind(_this);
    return _this;
  }

  createClass_default()(Table, [{
    key: 'forceUpdateGrid',
    value: function forceUpdateGrid() {
      if (this.Grid) {
        this.Grid.forceUpdate();
      }
    }
    /** See Grid#getOffsetForCell */

  }, {
    key: 'getOffsetForRow',
    value: function getOffsetForRow(_ref) {
      var alignment = _ref.alignment,
          index = _ref.index;

      if (this.Grid) {
        var _Grid$getOffsetForCel = this.Grid.getOffsetForCell({
          alignment: alignment,
          rowIndex: index
        }),
            scrollTop = _Grid$getOffsetForCel.scrollTop;

        return scrollTop;
      }

      return 0;
    }
    /** CellMeasurer compatibility */

  }, {
    key: 'invalidateCellSizeAfterRender',
    value: function invalidateCellSizeAfterRender(_ref2) {
      var columnIndex = _ref2.columnIndex,
          rowIndex = _ref2.rowIndex;

      if (this.Grid) {
        this.Grid.invalidateCellSizeAfterRender({
          rowIndex: rowIndex,
          columnIndex: columnIndex
        });
      }
    }
    /** See Grid#measureAllCells */

  }, {
    key: 'measureAllRows',
    value: function measureAllRows() {
      if (this.Grid) {
        this.Grid.measureAllCells();
      }
    }
    /** CellMeasurer compatibility */

  }, {
    key: 'recomputeGridSize',
    value: function recomputeGridSize() {
      var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
          _ref3$columnIndex = _ref3.columnIndex,
          columnIndex = _ref3$columnIndex === undefined ? 0 : _ref3$columnIndex,
          _ref3$rowIndex = _ref3.rowIndex,
          rowIndex = _ref3$rowIndex === undefined ? 0 : _ref3$rowIndex;

      if (this.Grid) {
        this.Grid.recomputeGridSize({
          rowIndex: rowIndex,
          columnIndex: columnIndex
        });
      }
    }
    /** See Grid#recomputeGridSize */

  }, {
    key: 'recomputeRowHeights',
    value: function recomputeRowHeights() {
      var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;

      if (this.Grid) {
        this.Grid.recomputeGridSize({
          rowIndex: index
        });
      }
    }
    /** See Grid#scrollToPosition */

  }, {
    key: 'scrollToPosition',
    value: function scrollToPosition() {
      var scrollTop = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;

      if (this.Grid) {
        this.Grid.scrollToPosition({
          scrollTop: scrollTop
        });
      }
    }
    /** See Grid#scrollToCell */

  }, {
    key: 'scrollToRow',
    value: function scrollToRow() {
      var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;

      if (this.Grid) {
        this.Grid.scrollToCell({
          columnIndex: 0,
          rowIndex: index
        });
      }
    }
  }, {
    key: 'componentDidMount',
    value: function componentDidMount() {
      this._setScrollbarWidth();
    }
  }, {
    key: 'componentDidUpdate',
    value: function componentDidUpdate() {
      this._setScrollbarWidth();
    }
  }, {
    key: 'render',
    value: function render() {
      var _this2 = this;

      var _props = this.props,
          children = _props.children,
          className = _props.className,
          disableHeader = _props.disableHeader,
          gridClassName = _props.gridClassName,
          gridStyle = _props.gridStyle,
          headerHeight = _props.headerHeight,
          headerRowRenderer = _props.headerRowRenderer,
          height = _props.height,
          id = _props.id,
          noRowsRenderer = _props.noRowsRenderer,
          rowClassName = _props.rowClassName,
          rowStyle = _props.rowStyle,
          scrollToIndex = _props.scrollToIndex,
          style = _props.style,
          width = _props.width;
      var scrollbarWidth = this.state.scrollbarWidth;
      var availableRowsHeight = disableHeader ? height : height - headerHeight;
      var rowClass = typeof rowClassName === 'function' ? rowClassName({
        index: -1
      }) : rowClassName;
      var rowStyleObject = typeof rowStyle === 'function' ? rowStyle({
        index: -1
      }) : rowStyle; // Precompute and cache column styles before rendering rows and columns to speed things up

      this._cachedColumnStyles = [];
      react["Children"].toArray(children).forEach(function (column, index) {
        var flexStyles = _this2._getFlexStyleForColumn(column, column.props.style);

        _this2._cachedColumnStyles[index] = extends_default()({}, flexStyles, {
          overflow: 'hidden'
        });
      }); // Note that we specify :rowCount, :scrollbarWidth, :sortBy, and :sortDirection as properties on Grid even though these have nothing to do with Grid.
      // This is done because Grid is a pure component and won't update unless its properties or state has changed.
      // Any property that should trigger a re-render of Grid then is specified here to avoid a stale display.

      return react["createElement"]('div', {
        'aria-label': this.props['aria-label'],
        'aria-labelledby': this.props['aria-labelledby'],
        'aria-colcount': react["Children"].toArray(children).length,
        'aria-rowcount': this.props.rowCount,
        className: Object(clsx_m["a" /* default */])('ReactVirtualized__Table', className),
        id: id,
        role: 'grid',
        style: style
      }, !disableHeader && headerRowRenderer({
        className: Object(clsx_m["a" /* default */])('ReactVirtualized__Table__headerRow', rowClass),
        columns: this._getHeaderColumns(),
        style: extends_default()({
          height: headerHeight,
          overflow: 'hidden',
          paddingRight: scrollbarWidth,
          width: width
        }, rowStyleObject)
      }), react["createElement"](es_Grid_Grid, extends_default()({}, this.props, {
        autoContainerWidth: true,
        className: Object(clsx_m["a" /* default */])('ReactVirtualized__Table__Grid', gridClassName),
        cellRenderer: this._createRow,
        columnWidth: width,
        columnCount: 1,
        height: availableRowsHeight,
        id: undefined,
        noContentRenderer: noRowsRenderer,
        onScroll: this._onScroll,
        onSectionRendered: this._onSectionRendered,
        ref: this._setRef,
        role: 'rowgroup',
        scrollbarWidth: scrollbarWidth,
        scrollToRow: scrollToIndex,
        style: extends_default()({}, gridStyle, {
          overflowX: 'hidden'
        })
      })));
    }
  }, {
    key: '_createColumn',
    value: function _createColumn(_ref4) {
      var column = _ref4.column,
          columnIndex = _ref4.columnIndex,
          isScrolling = _ref4.isScrolling,
          parent = _ref4.parent,
          rowData = _ref4.rowData,
          rowIndex = _ref4.rowIndex;
      var onColumnClick = this.props.onColumnClick;
      var _column$props = column.props,
          cellDataGetter = _column$props.cellDataGetter,
          cellRenderer = _column$props.cellRenderer,
          className = _column$props.className,
          columnData = _column$props.columnData,
          dataKey = _column$props.dataKey,
          id = _column$props.id;
      var cellData = cellDataGetter({
        columnData: columnData,
        dataKey: dataKey,
        rowData: rowData
      });
      var renderedCell = cellRenderer({
        cellData: cellData,
        columnData: columnData,
        columnIndex: columnIndex,
        dataKey: dataKey,
        isScrolling: isScrolling,
        parent: parent,
        rowData: rowData,
        rowIndex: rowIndex
      });

      var onClick = function onClick(event) {
        onColumnClick && onColumnClick({
          columnData: columnData,
          dataKey: dataKey,
          event: event
        });
      };

      var style = this._cachedColumnStyles[columnIndex];
      var title = typeof renderedCell === 'string' ? renderedCell : null; // Avoid using object-spread syntax with multiple objects here,
      // Since it results in an extra method call to 'babel-runtime/helpers/extends'
      // See PR https://github.com/bvaughn/react-virtualized/pull/942

      return react["createElement"]('div', {
        'aria-colindex': columnIndex + 1,
        'aria-describedby': id,
        className: Object(clsx_m["a" /* default */])('ReactVirtualized__Table__rowColumn', className),
        key: 'Row' + rowIndex + '-' + 'Col' + columnIndex,
        onClick: onClick,
        role: 'gridcell',
        style: style,
        title: title
      }, renderedCell);
    }
  }, {
    key: '_createHeader',
    value: function _createHeader(_ref5) {
      var column = _ref5.column,
          index = _ref5.index;
      var _props2 = this.props,
          headerClassName = _props2.headerClassName,
          headerStyle = _props2.headerStyle,
          onHeaderClick = _props2.onHeaderClick,
          sort = _props2.sort,
          sortBy = _props2.sortBy,
          sortDirection = _props2.sortDirection;
      var _column$props2 = column.props,
          columnData = _column$props2.columnData,
          dataKey = _column$props2.dataKey,
          defaultSortDirection = _column$props2.defaultSortDirection,
          disableSort = _column$props2.disableSort,
          headerRenderer = _column$props2.headerRenderer,
          id = _column$props2.id,
          label = _column$props2.label;
      var sortEnabled = !disableSort && sort;
      var classNames = Object(clsx_m["a" /* default */])('ReactVirtualized__Table__headerColumn', headerClassName, column.props.headerClassName, {
        ReactVirtualized__Table__sortableHeaderColumn: sortEnabled
      });

      var style = this._getFlexStyleForColumn(column, extends_default()({}, headerStyle, column.props.headerStyle));

      var renderedHeader = headerRenderer({
        columnData: columnData,
        dataKey: dataKey,
        disableSort: disableSort,
        label: label,
        sortBy: sortBy,
        sortDirection: sortDirection
      });
      var headerOnClick = void 0,
          headerOnKeyDown = void 0,
          headerTabIndex = void 0,
          headerAriaSort = void 0,
          headerAriaLabel = void 0;

      if (sortEnabled || onHeaderClick) {
        // If this is a sortable header, clicking it should update the table data's sorting.
        var isFirstTimeSort = sortBy !== dataKey; // If this is the firstTime sort of this column, use the column default sort order.
        // Otherwise, invert the direction of the sort.

        var newSortDirection = isFirstTimeSort ? defaultSortDirection : sortDirection === Table_SortDirection.DESC ? Table_SortDirection.ASC : Table_SortDirection.DESC;

        var onClick = function onClick(event) {
          sortEnabled && sort({
            defaultSortDirection: defaultSortDirection,
            event: event,
            sortBy: dataKey,
            sortDirection: newSortDirection
          });
          onHeaderClick && onHeaderClick({
            columnData: columnData,
            dataKey: dataKey,
            event: event
          });
        };

        var onKeyDown = function onKeyDown(event) {
          if (event.key === 'Enter' || event.key === ' ') {
            onClick(event);
          }
        };

        headerAriaLabel = column.props['aria-label'] || label || dataKey;
        headerAriaSort = 'none';
        headerTabIndex = 0;
        headerOnClick = onClick;
        headerOnKeyDown = onKeyDown;
      }

      if (sortBy === dataKey) {
        headerAriaSort = sortDirection === Table_SortDirection.ASC ? 'ascending' : 'descending';
      } // Avoid using object-spread syntax with multiple objects here,
      // Since it results in an extra method call to 'babel-runtime/helpers/extends'
      // See PR https://github.com/bvaughn/react-virtualized/pull/942


      return react["createElement"]('div', {
        'aria-label': headerAriaLabel,
        'aria-sort': headerAriaSort,
        className: classNames,
        id: id,
        key: 'Header-Col' + index,
        onClick: headerOnClick,
        onKeyDown: headerOnKeyDown,
        role: 'columnheader',
        style: style,
        tabIndex: headerTabIndex
      }, renderedHeader);
    }
  }, {
    key: '_createRow',
    value: function _createRow(_ref6) {
      var _this3 = this;

      var index = _ref6.rowIndex,
          isScrolling = _ref6.isScrolling,
          key = _ref6.key,
          parent = _ref6.parent,
          style = _ref6.style;
      var _props3 = this.props,
          children = _props3.children,
          onRowClick = _props3.onRowClick,
          onRowDoubleClick = _props3.onRowDoubleClick,
          onRowRightClick = _props3.onRowRightClick,
          onRowMouseOver = _props3.onRowMouseOver,
          onRowMouseOut = _props3.onRowMouseOut,
          rowClassName = _props3.rowClassName,
          rowGetter = _props3.rowGetter,
          rowRenderer = _props3.rowRenderer,
          rowStyle = _props3.rowStyle;
      var scrollbarWidth = this.state.scrollbarWidth;
      var rowClass = typeof rowClassName === 'function' ? rowClassName({
        index: index
      }) : rowClassName;
      var rowStyleObject = typeof rowStyle === 'function' ? rowStyle({
        index: index
      }) : rowStyle;
      var rowData = rowGetter({
        index: index
      });
      var columns = react["Children"].toArray(children).map(function (column, columnIndex) {
        return _this3._createColumn({
          column: column,
          columnIndex: columnIndex,
          isScrolling: isScrolling,
          parent: parent,
          rowData: rowData,
          rowIndex: index,
          scrollbarWidth: scrollbarWidth
        });
      });
      var className = Object(clsx_m["a" /* default */])('ReactVirtualized__Table__row', rowClass);

      var flattenedStyle = extends_default()({}, style, {
        height: this._getRowHeight(index),
        overflow: 'hidden',
        paddingRight: scrollbarWidth
      }, rowStyleObject);

      return rowRenderer({
        className: className,
        columns: columns,
        index: index,
        isScrolling: isScrolling,
        key: key,
        onRowClick: onRowClick,
        onRowDoubleClick: onRowDoubleClick,
        onRowRightClick: onRowRightClick,
        onRowMouseOver: onRowMouseOver,
        onRowMouseOut: onRowMouseOut,
        rowData: rowData,
        style: flattenedStyle
      });
    }
    /**
     * Determines the flex-shrink, flex-grow, and width values for a cell (header or column).
     */

  }, {
    key: '_getFlexStyleForColumn',
    value: function _getFlexStyleForColumn(column) {
      var customStyle = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
      var flexValue = column.props.flexGrow + ' ' + column.props.flexShrink + ' ' + column.props.width + 'px';

      var style = extends_default()({}, customStyle, {
        flex: flexValue,
        msFlex: flexValue,
        WebkitFlex: flexValue
      });

      if (column.props.maxWidth) {
        style.maxWidth = column.props.maxWidth;
      }

      if (column.props.minWidth) {
        style.minWidth = column.props.minWidth;
      }

      return style;
    }
  }, {
    key: '_getHeaderColumns',
    value: function _getHeaderColumns() {
      var _this4 = this;

      var _props4 = this.props,
          children = _props4.children,
          disableHeader = _props4.disableHeader;
      var items = disableHeader ? [] : react["Children"].toArray(children);
      return items.map(function (column, index) {
        return _this4._createHeader({
          column: column,
          index: index
        });
      });
    }
  }, {
    key: '_getRowHeight',
    value: function _getRowHeight(rowIndex) {
      var rowHeight = this.props.rowHeight;
      return typeof rowHeight === 'function' ? rowHeight({
        index: rowIndex
      }) : rowHeight;
    }
  }, {
    key: '_onScroll',
    value: function _onScroll(_ref7) {
      var clientHeight = _ref7.clientHeight,
          scrollHeight = _ref7.scrollHeight,
          scrollTop = _ref7.scrollTop;
      var onScroll = this.props.onScroll;
      onScroll({
        clientHeight: clientHeight,
        scrollHeight: scrollHeight,
        scrollTop: scrollTop
      });
    }
  }, {
    key: '_onSectionRendered',
    value: function _onSectionRendered(_ref8) {
      var rowOverscanStartIndex = _ref8.rowOverscanStartIndex,
          rowOverscanStopIndex = _ref8.rowOverscanStopIndex,
          rowStartIndex = _ref8.rowStartIndex,
          rowStopIndex = _ref8.rowStopIndex;
      var onRowsRendered = this.props.onRowsRendered;
      onRowsRendered({
        overscanStartIndex: rowOverscanStartIndex,
        overscanStopIndex: rowOverscanStopIndex,
        startIndex: rowStartIndex,
        stopIndex: rowStopIndex
      });
    }
  }, {
    key: '_setRef',
    value: function _setRef(ref) {
      this.Grid = ref;
    }
  }, {
    key: '_setScrollbarWidth',
    value: function _setScrollbarWidth() {
      if (this.Grid) {
        var _Grid = Object(react_dom["findDOMNode"])(this.Grid);

        var clientWidth = _Grid.clientWidth || 0;
        var offsetWidth = _Grid.offsetWidth || 0;
        var scrollbarWidth = offsetWidth - clientWidth;
        this.setState({
          scrollbarWidth: scrollbarWidth
        });
      }
    }
  }]);

  return Table;
}(react["PureComponent"]);

Table_Table.defaultProps = {
  disableHeader: false,
  estimatedRowSize: 30,
  headerHeight: 0,
  headerStyle: {},
  noRowsRenderer: function noRowsRenderer() {
    return null;
  },
  onRowsRendered: function onRowsRendered() {
    return null;
  },
  onScroll: function onScroll() {
    return null;
  },
  overscanIndicesGetter: accessibilityOverscanIndicesGetter_defaultOverscanIndicesGetter,
  overscanRowCount: 10,
  rowRenderer: defaultRowRenderer,
  headerRowRenderer: defaultHeaderRowRenderer,
  rowStyle: {},
  scrollToAlignment: 'auto',
  scrollToIndex: -1,
  style: {}
};
/* harmony default export */ var es_Table_Table = (Table_Table);
Table_Table.propTypes =  false ? undefined : {};

// CONCATENATED MODULE: ./node_modules/@adobe/react-virtualized/dist/es/Table/index.js










/* harmony default export */ var es_Table = (es_Table_Table);

// CONCATENATED MODULE: ./node_modules/@adobe/react-virtualized/dist/es/WindowScroller/utils/onScroll.js

var mountedInstances = [];
var originalBodyPointerEvents = null;
var disablePointerEventsTimeoutId = null;

function enablePointerEventsIfDisabled() {
  if (disablePointerEventsTimeoutId) {
    disablePointerEventsTimeoutId = null;

    if (document.body && originalBodyPointerEvents != null) {
      document.body.style.pointerEvents = originalBodyPointerEvents;
    }

    originalBodyPointerEvents = null;
  }
}

function enablePointerEventsAfterDelayCallback() {
  enablePointerEventsIfDisabled();
  mountedInstances.forEach(function (instance) {
    return instance.__resetIsScrolling();
  });
}

function enablePointerEventsAfterDelay() {
  if (disablePointerEventsTimeoutId) {
    requestAnimationTimeout_cancelAnimationTimeout(disablePointerEventsTimeoutId);
  }

  var maximumTimeout = 0;
  mountedInstances.forEach(function (instance) {
    maximumTimeout = Math.max(maximumTimeout, instance.props.scrollingResetTimeInterval);
  });
  disablePointerEventsTimeoutId = requestAnimationTimeout_requestAnimationTimeout(enablePointerEventsAfterDelayCallback, maximumTimeout);
}

function onScrollWindow(event) {
  if (event.currentTarget === window && originalBodyPointerEvents == null && document.body) {
    originalBodyPointerEvents = document.body.style.pointerEvents;
    document.body.style.pointerEvents = 'none';
  }

  enablePointerEventsAfterDelay();
  mountedInstances.forEach(function (instance) {
    if (instance.props.scrollElement === event.currentTarget) {
      instance.__handleWindowScrollEvent();
    }
  });
}

function registerScrollListener(component, element) {
  if (!mountedInstances.some(function (instance) {
    return instance.props.scrollElement === element;
  })) {
    element.addEventListener('scroll', onScrollWindow);
  }

  mountedInstances.push(component);
}
function unregisterScrollListener(component, element) {
  mountedInstances = mountedInstances.filter(function (instance) {
    return instance !== component;
  });

  if (!mountedInstances.length) {
    element.removeEventListener('scroll', onScrollWindow);

    if (disablePointerEventsTimeoutId) {
      requestAnimationTimeout_cancelAnimationTimeout(disablePointerEventsTimeoutId);
      enablePointerEventsIfDisabled();
    }
  }
}

// CONCATENATED MODULE: ./node_modules/@adobe/react-virtualized/dist/es/WindowScroller/utils/dimensions.js
/**
 * Gets the dimensions of the element, accounting for API differences between
 * `window` and other DOM elements.
 */
var isWindow = function isWindow(element) {
  return element === window;
}; // TODO Move this into WindowScroller and import from there


var getBoundingBox = function getBoundingBox(element) {
  return element.getBoundingClientRect();
};

function getDimensions(scrollElement, props) {
  if (!scrollElement) {
    return {
      height: props.serverHeight,
      width: props.serverWidth
    };
  } else if (isWindow(scrollElement)) {
    var _window = window,
        innerHeight = _window.innerHeight,
        innerWidth = _window.innerWidth;
    return {
      height: typeof innerHeight === 'number' ? innerHeight : 0,
      width: typeof innerWidth === 'number' ? innerWidth : 0
    };
  } else {
    return getBoundingBox(scrollElement);
  }
}
/**
 * Gets the vertical and horizontal position of an element within its scroll container.
 * Elements that have been “scrolled past” return negative values.
 * Handles edge-case where a user is navigating back (history) from an already-scrolled page.
 * In this case the body’s top or left position will be a negative number and this element’s top or left will be increased (by that amount).
 */

function getPositionOffset(element, container) {
  if (isWindow(container) && document.documentElement) {
    var containerElement = document.documentElement;
    var elementRect = getBoundingBox(element);
    var containerRect = getBoundingBox(containerElement);
    return {
      top: elementRect.top - containerRect.top,
      left: elementRect.left - containerRect.left
    };
  } else {
    var scrollOffset = getScrollOffset(container);

    var _elementRect = getBoundingBox(element);

    var _containerRect = getBoundingBox(container);

    return {
      top: _elementRect.top + scrollOffset.top - _containerRect.top,
      left: _elementRect.left + scrollOffset.left - _containerRect.left
    };
  }
}
/**
 * Gets the vertical and horizontal scroll amount of the element, accounting for IE compatibility
 * and API differences between `window` and other DOM elements.
 */

function getScrollOffset(element) {
  if (isWindow(element) && document.documentElement) {
    return {
      top: 'scrollY' in window ? window.scrollY : document.documentElement.scrollTop,
      left: 'scrollX' in window ? window.scrollX : document.documentElement.scrollLeft
    };
  } else {
    return {
      top: element.scrollTop,
      left: element.scrollLeft
    };
  }
}
// CONCATENATED MODULE: ./node_modules/@adobe/react-virtualized/dist/es/WindowScroller/WindowScroller.js











/**
 * Specifies the number of miliseconds during which to disable pointer events while a scroll is in progress.
 * This improves performance and makes scrolling smoother.
 */

var WindowScroller_IS_SCROLLING_TIMEOUT = 150;

var getWindow = function getWindow() {
  return typeof window !== 'undefined' ? window : undefined;
};

var WindowScroller_WindowScroller = function (_React$PureComponent) {
  inherits_default()(WindowScroller, _React$PureComponent);

  function WindowScroller() {
    var _ref;

    var _temp, _this, _ret;

    classCallCheck_default()(this, WindowScroller);

    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    return _ret = (_temp = (_this = possibleConstructorReturn_default()(this, (_ref = WindowScroller.__proto__ || get_prototype_of_default()(WindowScroller)).call.apply(_ref, [this].concat(args))), _this), _this._window = getWindow(), _this._isMounted = false, _this._positionFromTop = 0, _this._positionFromLeft = 0, _this.state = extends_default()({}, getDimensions(_this.props.scrollElement, _this.props), {
      isScrolling: false,
      scrollLeft: 0,
      scrollTop: 0
    }), _this._registerChild = function (element) {
      if (element && !(element instanceof Element)) {
        console.warn('WindowScroller registerChild expects to be passed Element or null');
      }

      _this._child = element;

      _this.updatePosition();
    }, _this._onChildScroll = function (_ref2) {
      var scrollTop = _ref2.scrollTop;

      if (_this.state.scrollTop === scrollTop) {
        return;
      }

      var scrollElement = _this.props.scrollElement;

      if (scrollElement) {
        if (typeof scrollElement.scrollTo === 'function') {
          scrollElement.scrollTo(0, scrollTop + _this._positionFromTop);
        } else {
          scrollElement.scrollTop = scrollTop + _this._positionFromTop;
        }
      }
    }, _this._registerResizeListener = function (element) {
      if (element === window) {
        window.addEventListener('resize', _this._onResize, false);
      } else {
        _this._detectElementResize.addResizeListener(element, _this._onResize);
      }
    }, _this._unregisterResizeListener = function (element) {
      if (element === window) {
        window.removeEventListener('resize', _this._onResize, false);
      } else if (element) {
        _this._detectElementResize.removeResizeListener(element, _this._onResize);
      }
    }, _this._onResize = function () {
      _this.updatePosition();
    }, _this.__handleWindowScrollEvent = function () {
      if (!_this._isMounted) {
        return;
      }

      var onScroll = _this.props.onScroll;
      var scrollElement = _this.props.scrollElement;

      if (scrollElement) {
        var scrollOffset = getScrollOffset(scrollElement);

        var _scrollLeft = Math.max(0, scrollOffset.left - _this._positionFromLeft);

        var _scrollTop = Math.max(0, scrollOffset.top - _this._positionFromTop);

        _this.setState({
          isScrolling: true,
          scrollLeft: _scrollLeft,
          scrollTop: _scrollTop
        });

        onScroll({
          scrollLeft: _scrollLeft,
          scrollTop: _scrollTop
        });
      }
    }, _this.__resetIsScrolling = function () {
      _this.setState({
        isScrolling: false
      });
    }, _temp), possibleConstructorReturn_default()(_this, _ret);
  }

  createClass_default()(WindowScroller, [{
    key: 'updatePosition',
    value: function updatePosition() {
      var scrollElement = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props.scrollElement;
      var onResize = this.props.onResize;
      var _state = this.state,
          height = _state.height,
          width = _state.width;
      var thisNode = this._child || react_dom["findDOMNode"](this);

      if (thisNode instanceof Element && scrollElement) {
        var offset = getPositionOffset(thisNode, scrollElement);
        this._positionFromTop = offset.top;
        this._positionFromLeft = offset.left;
      }

      var dimensions = getDimensions(scrollElement, this.props);

      if (height !== dimensions.height || width !== dimensions.width) {
        this.setState({
          height: dimensions.height,
          width: dimensions.width
        });
        onResize({
          height: dimensions.height,
          width: dimensions.width
        });
      }
    }
  }, {
    key: 'componentDidMount',
    value: function componentDidMount() {
      var scrollElement = this.props.scrollElement;
      this._detectElementResize = Object(detectElementResize["a" /* default */])();
      this.updatePosition(scrollElement);

      if (scrollElement) {
        registerScrollListener(this, scrollElement);

        this._registerResizeListener(scrollElement);
      }

      this._isMounted = true;
    }
  }, {
    key: 'componentDidUpdate',
    value: function componentDidUpdate(prevProps, prevState) {
      var scrollElement = this.props.scrollElement;
      var prevScrollElement = prevProps.scrollElement;

      if (prevScrollElement !== scrollElement && prevScrollElement != null && scrollElement != null) {
        this.updatePosition(scrollElement);
        unregisterScrollListener(this, prevScrollElement);
        registerScrollListener(this, scrollElement);

        this._unregisterResizeListener(prevScrollElement);

        this._registerResizeListener(scrollElement);
      }
    }
  }, {
    key: 'componentWillUnmount',
    value: function componentWillUnmount() {
      var scrollElement = this.props.scrollElement;

      if (scrollElement) {
        unregisterScrollListener(this, scrollElement);

        this._unregisterResizeListener(scrollElement);
      }

      this._isMounted = false;
    }
  }, {
    key: 'render',
    value: function render() {
      var children = this.props.children;
      var _state2 = this.state,
          isScrolling = _state2.isScrolling,
          scrollTop = _state2.scrollTop,
          scrollLeft = _state2.scrollLeft,
          height = _state2.height,
          width = _state2.width;
      return children({
        onChildScroll: this._onChildScroll,
        registerChild: this._registerChild,
        height: height,
        isScrolling: isScrolling,
        scrollLeft: scrollLeft,
        scrollTop: scrollTop,
        width: width
      });
    } // Referenced by utils/onScroll
    // Referenced by utils/onScroll

  }]);

  return WindowScroller;
}(react["PureComponent"]);

WindowScroller_WindowScroller.defaultProps = {
  onResize: function onResize() {},
  onScroll: function onScroll() {},
  scrollingResetTimeInterval: WindowScroller_IS_SCROLLING_TIMEOUT,
  scrollElement: getWindow(),
  serverHeight: 0,
  serverWidth: 0
};
WindowScroller_WindowScroller.propTypes =  true ? null : undefined;
/* harmony default export */ var es_WindowScroller_WindowScroller = (WindowScroller_WindowScroller);

// CONCATENATED MODULE: ./node_modules/@adobe/react-virtualized/dist/es/WindowScroller/index.js

/* harmony default export */ var es_WindowScroller = (es_WindowScroller_WindowScroller);

// CONCATENATED MODULE: ./node_modules/@adobe/react-virtualized/dist/es/index.js














/***/ }),

/***/ "UbbE":
/***/ (function(module, exports, __webpack_require__) {

__webpack_require__("o8NH");

module.exports = __webpack_require__("WEpk").Object.assign;

/***/ }),

/***/ "UeGx":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

const _excluded = ["styles"];

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }

function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

var _default = _ref => {
  let {
    styles = {}
  } = _ref,
      props = _objectWithoutProperties(_ref, _excluded);

  return /*#__PURE__*/_react.default.createElement("svg", _extends({
    xmlns: "http://www.w3.org/2000/svg",
    width: "96",
    height: "96",
    viewBox: "0 0 96 96"
  }, props), /*#__PURE__*/_react.default.createElement("defs", null), /*#__PURE__*/_react.default.createElement("g", {
    id: "ICONS_96",
    "data-name": "ICONS 96"
  }, /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M69 35H58a3 3 0 0 1-3-3V21a1 1 0 0 1 1.707-.707l13 13A1 1 0 0 1 69 35zM57 23.415V32a1 1 0 0 0 1 1h8.586z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M67 76H30a3 3 0 0 1-3-3V23a3 3 0 0 1 3-3h22a1 1 0 1 1 0 2H30a1 1 0 0 0-1 1v50a1 1 0 0 0 1 1h37a1 1 0 0 0 1-1V37.94a1 1 0 0 1 2 0V73a3 3 0 0 1-3 3z"
  })));
};

exports.default = _default;

/***/ }),

/***/ "UfgM":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = SideNavHeading;

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

var _SideNavItem = _interopRequireDefault(__webpack_require__("aJa9"));

const _excluded = ["label"];

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

function SideNavHeading(_ref) {
  let {
    label
  } = _ref,
      props = _objectWithoutProperties(_ref, _excluded);

  return /*#__PURE__*/_react.default.createElement(_SideNavItem.default, _extends({
    header: label
  }, props, {
    defaultExpanded: true
  }));
}

/***/ }),

/***/ "Ujlg":
/***/ (function(module, exports, __webpack_require__) {

var Buffer = __webpack_require__("hwdV").Buffer;

function encryptByte(self, byteParam, decrypt) {
  var pad;
  var i = -1;
  var len = 8;
  var out = 0;
  var bit, value;

  while (++i < len) {
    pad = self._cipher.encryptBlock(self._prev);
    bit = byteParam & 1 << 7 - i ? 0x80 : 0;
    value = pad[0] ^ bit;
    out += (value & 0x80) >> i % 8;
    self._prev = shiftIn(self._prev, decrypt ? bit : value);
  }

  return out;
}

function shiftIn(buffer, value) {
  var len = buffer.length;
  var i = -1;
  var out = Buffer.allocUnsafe(buffer.length);
  buffer = Buffer.concat([buffer, Buffer.from([value])]);

  while (++i < len) {
    out[i] = buffer[i] << 1 | buffer[i + 1] >> 7;
  }

  return out;
}

exports.encrypt = function (self, chunk, decrypt) {
  var len = chunk.length;
  var out = Buffer.allocUnsafe(len);
  var i = -1;

  while (++i < len) {
    out[i] = encryptByte(self, chunk[i], decrypt);
  }

  return out;
};

/***/ }),

/***/ "UnS2":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return CCD_ROUTES; });
const CCD_ROUTES = {
    /**
     * Open CCD (Creative Cloud Desktop) to the Updates page,
     * so that the user can update the host application.
     */
    Update: '/apps/updates/',
    /**
     * Open CCD (Creative Cloud Desktop) to the Libraries page,
     * To direct to a specific library, append the library GUID (not URN)
     */
    Libraries: '/assets/libraries/',
    /**
     * Open CCD (Creative Cloud Desktop) to the Team Libraries page.
     */
    TeamLibraries: '/assets/libraries/teamLibs',
};


/***/ }),

/***/ "UnXY":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


exports.__esModule = true;
exports.default = void 0;

var _propTypes = _interopRequireDefault(__webpack_require__("17x9"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

var _reactLifecyclesCompat = __webpack_require__("VCL8");

var _ChildMapping = __webpack_require__("8PcY");

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _inheritsLoose(subClass, superClass) {
  subClass.prototype = Object.create(superClass.prototype);
  subClass.prototype.constructor = subClass;
  subClass.__proto__ = superClass;
}

function _assertThisInitialized(self) {
  if (self === void 0) {
    throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
  }

  return self;
}

var values = Object.values || function (obj) {
  return Object.keys(obj).map(function (k) {
    return obj[k];
  });
};

var defaultProps = {
  component: 'div',
  childFactory: function childFactory(child) {
    return child;
  }
  /**
   * The `<TransitionGroup>` component manages a set of transition components
   * (`<Transition>` and `<CSSTransition>`) in a list. Like with the transition
   * components, `<TransitionGroup>` is a state machine for managing the mounting
   * and unmounting of components over time.
   *
   * Consider the example below. As items are removed or added to the TodoList the
   * `in` prop is toggled automatically by the `<TransitionGroup>`.
   *
   * Note that `<TransitionGroup>`  does not define any animation behavior!
   * Exactly _how_ a list item animates is up to the individual transition
   * component. This means you can mix and match animations across different list
   * items.
   */

};

var TransitionGroup = /*#__PURE__*/function (_React$Component) {
  _inheritsLoose(TransitionGroup, _React$Component);

  function TransitionGroup(props, context) {
    var _this;

    _this = _React$Component.call(this, props, context) || this;

    var handleExited = _this.handleExited.bind(_assertThisInitialized(_assertThisInitialized(_this))); // Initial children should all be entering, dependent on appear


    _this.state = {
      handleExited: handleExited,
      firstRender: true
    };
    return _this;
  }

  var _proto = TransitionGroup.prototype;

  _proto.getChildContext = function getChildContext() {
    return {
      transitionGroup: {
        isMounting: !this.appeared
      }
    };
  };

  _proto.componentDidMount = function componentDidMount() {
    this.appeared = true;
    this.mounted = true;
  };

  _proto.componentWillUnmount = function componentWillUnmount() {
    this.mounted = false;
  };

  TransitionGroup.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, _ref) {
    var prevChildMapping = _ref.children,
        handleExited = _ref.handleExited,
        firstRender = _ref.firstRender;
    return {
      children: firstRender ? (0, _ChildMapping.getInitialChildMapping)(nextProps, handleExited) : (0, _ChildMapping.getNextChildMapping)(nextProps, prevChildMapping, handleExited),
      firstRender: false
    };
  };

  _proto.handleExited = function handleExited(child, node) {
    var currentChildMapping = (0, _ChildMapping.getChildMapping)(this.props.children);
    if (child.key in currentChildMapping) return;

    if (child.props.onExited) {
      child.props.onExited(node);
    }

    if (this.mounted) {
      this.setState(function (state) {
        var children = _extends({}, state.children);

        delete children[child.key];
        return {
          children: children
        };
      });
    }
  };

  _proto.render = function render() {
    var _this$props = this.props,
        Component = _this$props.component,
        childFactory = _this$props.childFactory,
        props = _objectWithoutPropertiesLoose(_this$props, ["component", "childFactory"]);

    var children = values(this.state.children).map(childFactory);
    delete props.appear;
    delete props.enter;
    delete props.exit;

    if (Component === null) {
      return children;
    }

    return _react.default.createElement(Component, props, children);
  };

  return TransitionGroup;
}(_react.default.Component);

TransitionGroup.childContextTypes = {
  transitionGroup: _propTypes.default.object.isRequired
};
TransitionGroup.propTypes =  false ? undefined : {};
TransitionGroup.defaultProps = defaultProps;

var _default = (0, _reactLifecyclesCompat.polyfill)(TransitionGroup);

exports.default = _default;
module.exports = exports["default"];

/***/ }),

/***/ "UoXk":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__("q1tI");

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/OverlayTrigger/index.js
var OverlayTrigger = __webpack_require__("uYrR");
var OverlayTrigger_default = /*#__PURE__*/__webpack_require__.n(OverlayTrigger);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Tooltip/index.js
var Tooltip = __webpack_require__("DUuf");
var Tooltip_default = /*#__PURE__*/__webpack_require__.n(Tooltip);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/components/Textfield.tsx
var Textfield = __webpack_require__("fGqG");

// EXTERNAL MODULE: ./node_modules/classnames/index.js
var classnames = __webpack_require__("TSYQ");
var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/utils/stop-propagation.ts
var stop_propagation = __webpack_require__("m8Tk");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/utils/validate-filename.ts
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
const MAX_NAME_LENGTH = 200;
const INVALID_REGEX = {
    //   \ : * ? " / | < >
    badPrintableCharacters: /[\\:*?"/|<>]/,
    // ASCII character codes 0 - 31
    badUnprintableCharacters: /[\x00-\x1F]/,
    // Files cannot be one of these names, with or without an extension
    // CON PRN AUX NUL COM1 COM2 ... COM9 LPT1 ... LPT9
    restrictedFileNames: /^((?:CON|PRN|AUX|NUL|COM[1-9]|LPT[1-9])(?:\.[^.]*)?$)/,
    // Files cannot end with space or period
    badFileEnding: /[\s.]$/,
};
const VALIDATION_INVALID_CHARS = '\\ / * ? " | :';
var ReactSpectrumValidationState;
(function (ReactSpectrumValidationState) {
    ReactSpectrumValidationState["invalid"] = "invalid";
    ReactSpectrumValidationState["valid"] = "valid";
    ReactSpectrumValidationState["indeterminate"] = "";
})(ReactSpectrumValidationState || (ReactSpectrumValidationState = {}));
var ValidationStatus;
(function (ValidationStatus) {
    ValidationStatus["valid"] = "valid";
    ValidationStatus["invalidChar"] = "invalidChar";
    ValidationStatus["invalidName"] = "invalidName";
    // 'charRestriction' means 'too many characters'
    // TODO: maybe rename to `invalidLength` and fix string ids to match
    // Jira: https://jira.corp.adobe.com/browse/CCXCD-2978
    ValidationStatus["charRestriction"] = "charRestriction";
    ValidationStatus["duplicateName"] = "duplicateName";
})(ValidationStatus || (ValidationStatus = {}));
function fileNameValidator(newName) {
    if (newName.length > MAX_NAME_LENGTH) {
        return ValidationStatus.charRestriction;
    }
    // We can show these characters in an error message, so there's a specific ValidationStatus for this case
    if (INVALID_REGEX.badPrintableCharacters.test(newName)) {
        return ValidationStatus.invalidChar;
    }
    // It would be too confusing to describe "bad characters" as an ASCII range. It's also too confusing to
    // explain that not every file name works on all OSes. So these two cases get lumped into a generic "invalid"
    // case.
    if (INVALID_REGEX.badUnprintableCharacters.test(newName) ||
        INVALID_REGEX.restrictedFileNames.test(newName)) {
        return ValidationStatus.invalidName;
    }
    // Currently, we don't have a separate error message to show about invalid filename endings, so it's
    // also grouped with the generic "invalid" category
    if (INVALID_REGEX.badFileEnding.test(newName)) {
        return ValidationStatus.invalidName;
    }
    // None of the above applies, so it's good
    return ValidationStatus.valid;
}

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/utils/constants.ts
var constants = __webpack_require__("bXP0");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/styles/Rename.css
var styles_Rename = __webpack_require__("nQq2");
var Rename_default = /*#__PURE__*/__webpack_require__.n(styles_Rename);

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/Rename.tsx









class Rename_Rename extends react["Component"] {
    constructor() {
        super(...arguments);
        this.state = {
            name: this.props.name,
            validationState: '',
        };
        this.handleChange = name => {
            this.setState({
                name,
                validationState: '',
            });
        };
        this.handleKeyDown = e => {
            var _a, _b;
            let stopAllPropagation = false;
            switch (e.key) {
                case ' ':
                    stopAllPropagation = true;
                    break;
                case 'Escape':
                    stopAllPropagation = true;
                    // Ignore keyDown events during IME interaction
                    !((_a = e.nativeEvent) === null || _a === void 0 ? void 0 : _a.isComposing) && this.cancelRename();
                    break;
                case 'Enter':
                    stopAllPropagation = true;
                    // Ignore keyDown events during IME interaction
                    !((_b = e.nativeEvent) === null || _b === void 0 ? void 0 : _b.isComposing) && this.onSubmit();
                    break;
                default:
                    break;
            }
            if (stopAllPropagation) {
                Object(stop_propagation["a" /* default */])(e, true);
            }
        };
        this.handleOnBlur = e => {
            this.onSubmit();
        };
    }
    componentDidUpdate(prevProps) {
        const { name, renameState } = this.props;
        // If the prop.name changed, then the model changed.
        // Even if the user's input hasn't been saved, it should show the updated name.
        if (prevProps.name !== name) {
            this.setState({ name }); // eslint-disable-line react/no-did-update-set-state
        }
        if (renameState === 'none' && prevProps.renameState === 'renaming') {
            this.setState({
                name,
                validationState: '',
            });
        }
    }
    cancelRename() {
        var _a;
        const { renameCallbacks, name: originalName } = this.props;
        this.setState({
            validationState: '',
            name: originalName,
        });
        (_a = renameCallbacks === null || renameCallbacks === void 0 ? void 0 : renameCallbacks.onCancel) === null || _a === void 0 ? void 0 : _a.call(renameCallbacks);
    }
    onSubmit() {
        var _a;
        const { name: originalName, renameCallbacks } = this.props;
        const { name: newName, validationState: previousValidationState } = this.state;
        let validator = (renameCallbacks === null || renameCallbacks === void 0 ? void 0 : renameCallbacks.nameValidator) || (() => ValidationStatus.valid);
        let validationStatus = previousValidationState;
        if (previousValidationState === '') {
            validationStatus = validator(newName);
        }
        if (newName === originalName || newName === '') {
            this.cancelRename();
        }
        else if (validationStatus === ValidationStatus.valid) {
            (_a = renameCallbacks === null || renameCallbacks === void 0 ? void 0 : renameCallbacks.onConfirm) === null || _a === void 0 ? void 0 : _a.call(renameCallbacks, newName, () => this.cancelRename());
        }
        else {
            this.setState({ validationState: validationStatus });
        }
    }
    // Break into its own function to make it testable
    renderTooltip() {
        const { name } = this.state;
        const { tooltip = name } = this.props;
        // Default to &nbsp; as empty tooltip can cause a fatal error. This should never happen.
        return react["createElement"](Tooltip_default.a, { className: Rename_default.a['CDO-ItemTitleTooltip'] }, tooltip || '&nbsp;');
    }
    renderOverlayTrigger(children) {
        const { name } = this.state;
        const { renameState, tooltip = name } = this.props;
        return (react["createElement"](OverlayTrigger_default.a, { placement: "bottom", trigger: ['hover'], disabled: renameState === 'renaming' || !tooltip, delayShow: constants["c" /* DEFAULT_TOOLTIP_DELAY */] },
            children,
            this.renderTooltip()));
    }
    /**
     * Component renderer.
     * @return {ReactElement} markup
     */
    render() {
        const { name, validationState } = this.state;
        const { renameState, multiline, ...otherProps } = this.props;
        const isRenaming = renameState === 'renaming';
        // RS Textfield starts with '' as its default for validationState, but its
        // propTypes do not allow it, so to prevent spurious React warning, only pass
        // validationState if there is something to show
        const validationStateProp = validationState && {
            validationState: ReactSpectrumValidationState.invalid,
        };
        return this.renderOverlayTrigger(react["createElement"]("div", Object.assign({ className: classnames_default()(Rename_default.a.rename, {
                [Rename_default.a.multiline]: multiline,
                [Rename_default.a['rename--renaming']]: isRenaming,
            }) }, otherProps), isRenaming ? (react["createElement"](Textfield["a" /* default */], Object.assign({ className: classnames_default()(Rename_default.a.nameInput, 'globalSpacesTextfield'), defaultPreventedKeys: ['Escape'] }, validationStateProp, { id: "Rename_Input", autoFocus: true, value: name, onClick: stop_propagation["a" /* default */], onChange: this.handleChange, onKeyDown: this.handleKeyDown, onBlur: this.handleOnBlur }))) : (name)));
    }
}
/* harmony default export */ var CDOView_Rename = __webpack_exports__["b"] = (Rename_Rename);


/***/ }),

/***/ "Up8U":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return sleep; });
/* istanbul ignore file */
function sleep(time) {
    return new Promise(resolve => setTimeout(resolve, time));
}


/***/ }),

/***/ "UpF+":
/***/ (function(module, exports, __webpack_require__) {

var BN = __webpack_require__("OZ/i");

var Buffer = __webpack_require__("hwdV").Buffer;

function withPublic(paddedMsg, key) {
  return Buffer.from(paddedMsg.toRed(BN.mont(key.modulus)).redPow(new BN(key.publicExponent)).fromRed().toArray());
}

module.exports = withPublic;

/***/ }),

/***/ "UrLY":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = OpenTransition;

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

var _Transition = _interopRequireDefault(__webpack_require__("S3Uj"));

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

const OPEN_STATES = {
  entering: false,
  entered: true
};
/**
 * timeout issues adding css animations to enter may be related to
 * https://github.com/reactjs/react-transition-group/issues/189 or
 * https://github.com/reactjs/react-transition-group/issues/22
 * my VM isn't good enough to debug accurately and get a better answer
 *
 * as a result, use enter 0 so that is-open is applied once entered
 * it doesn't matter if we know when the css-animation is done on entering
 * for exiting though, give time for the css-animation to play
 * before removing from the DOM
 * **note** hitting esc bypasses exit animation for anyone testing
 */

function OpenTransition(props) {
  return /*#__PURE__*/_react.default.createElement(_Transition.default, _extends({
    timeout: {
      enter: 0,
      exit: 125
    }
  }, props), state => /*#__PURE__*/_react.default.cloneElement(props.children, {
    open: !!OPEN_STATES[state]
  }));
}

/***/ }),

/***/ "UryZ":
/***/ (function(module) {

module.exports = JSON.parse("{\"Breadcrumbs\":\"Navigasjonsstier\"}");

/***/ }),

/***/ "UwQE":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return CDOOperationResponseEnum; });
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
var CDOOperationResponseEnum;
(function (CDOOperationResponseEnum) {
    /**
     * CDO can proceed with the operation
     */
    CDOOperationResponseEnum["ok"] = "ok";
    /**
     * CDO will silently skip the operation for this asset, perhaps because the host application
     * performs the operation instead
     */
    CDOOperationResponseEnum["cancel"] = "cancel";
    /**
     * CDO will skip the operation for this asset, and notify the user that it could not be performed
     * because the asset is open in the host application.
     */
    CDOOperationResponseEnum["cancelOpen"] = "cancel-open";
})(CDOOperationResponseEnum || (CDOOperationResponseEnum = {}));


/***/ }),

/***/ "UxHR":
/***/ (function(module) {

module.exports = JSON.parse("{\"steps\":\"{currentStep} of {totalSteps}\"}");

/***/ }),

/***/ "V02A":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("VIzJ");
/* harmony import */ var mobx_react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("okNM");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("TSYQ");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _packages_CDOView__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("te/g");
/* harmony import */ var _packages_CDOView_stores_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("q0hk");
/* harmony import */ var _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("mm/P");
/* harmony import */ var _utils_constants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("YVc3");
/* harmony import */ var _packages_CDOView_Busy__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("izVQ");
/* harmony import */ var _oneup_Filter__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__("b2OE");
/* harmony import */ var _styles_ContentViewer_css__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__("wsE/");
/* harmony import */ var _styles_ContentViewer_css__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(_styles_ContentViewer_css__WEBPACK_IMPORTED_MODULE_10__);
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;
};











let ContentViewer = class ContentViewer extends react__WEBPACK_IMPORTED_MODULE_0___default.a.Component {
    constructor() {
        super(...arguments);
        this.renderTracked = false;
    }
    componentDidUpdate(prevProps) {
        if (this.props.tab !== prevProps.tab) {
            this.renderTracked = false;
        }
    }
    trackRenderEvent() {
        const { currentProject, ingestSubcategory, tab } = this.props;
        const { id, name } = currentProject;
        if (this.workflow && this.subtype && ingestSubcategory && !this.renderTracked) {
            _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_6__[/* default */ "g"].fireEvent({
                ..._utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_6__[/* default */ "g"].scaffoldEvent(ingestSubcategory, this.subtype, _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_6__[/* Type */ "e"].render, this.workflow),
                content: { id, name, type: 'project' },
                ui: this.props.projectList.uiConfig.cdoUISettings,
            });
            this.renderTracked = true;
        }
    }
    // Component render event subtypes
    get subtype() {
        const { mode, tab } = this.props;
        const hasElements = this.getVisibleElements()[0].length;
        switch (tab) {
            case _utils_constants__WEBPACK_IMPORTED_MODULE_7__[/* OneUpTabs */ "q"].Libraries:
                return hasElements ? _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_6__[/* Subtype */ "d"].librariesPage : _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_6__[/* Subtype */ "d"].librariesPageEmptyState;
            case _utils_constants__WEBPACK_IMPORTED_MODULE_7__[/* OneUpTabs */ "q"].Working:
                if (mode === _utils_constants__WEBPACK_IMPORTED_MODULE_7__[/* PickerMode */ "w"].copy) {
                    return _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_6__[/* Subtype */ "d"].modal;
                }
                else {
                    return hasElements
                        ? _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_6__[/* Subtype */ "d"].workingFilesPage
                        : _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_6__[/* Subtype */ "d"].workingFilesPageEmptyState;
                }
        }
    }
    getVisibleElements() {
        let visible = this.props.elements.filter(element => !element.isHidden);
        let filtered = [];
        let unfiltered = [];
        for (let element of visible) {
            (this.isFiltered(element) ? filtered : unfiltered).push(element);
        }
        //  anything unfiltered (still displayed) is sorted to the top.
        //  anything filtered out is sorted to the end.
        //  we retain the same count of items so that the scroll position doesn't jump while filtering.
        //  the actual visual filtering will happen in the GridItem by setting 'filtered' css flag.
        return [unfiltered, filtered];
    }
    isFiltered(element) {
        return ((this.props.filter &&
            !Object(_oneup_Filter__WEBPACK_IMPORTED_MODULE_9__[/* matches */ "b"])(this.props.filter, element, this.props.intl, this.props.metadataFormat)) ||
            false);
    }
    get workflow() {
        const { mode, tab } = this.props;
        if (tab === _utils_constants__WEBPACK_IMPORTED_MODULE_7__[/* OneUpTabs */ "q"].Libraries) {
            return _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_6__[/* Workflow */ "f"].Libraries;
        }
        else if (tab === _utils_constants__WEBPACK_IMPORTED_MODULE_7__[/* OneUpTabs */ "q"].Working) {
            return mode === _utils_constants__WEBPACK_IMPORTED_MODULE_7__[/* PickerMode */ "w"].copy ? _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_6__[/* Workflow */ "f"].CopyFiles : _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_6__[/* Workflow */ "f"].WorkingFiles;
        }
    }
    renderContent(elements, actionMenuItems = []) {
        const { ingestSubcategory, mobile, mode, launchedFromCDP, isMobileLayout, onItemClick, projectList, selectionStore, supportSelectionInUAP, selectAllDisabled, singleSelection, shouldRenderItemAsDisabled, renditionType, metadataFormat, uiConfig, contentBelowHeader, isHeaderVisible, limitRowCount, onRendered, onSelectionChange, onSortChange, listViewColumns, renderOnboardingOnFirstRow, onboardingRowHeight, renderOnboardingItem, className, tab, viewMode, activeRenameState, } = this.props;
        this.trackRenderEvent();
        const selectionDisabled = launchedFromCDP && !supportSelectionInUAP;
        const collectionType = tab;
        return (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_packages_CDOView__WEBPACK_IMPORTED_MODULE_4__[/* CDOView */ "a"], { projectList: projectList, className: classnames__WEBPACK_IMPORTED_MODULE_3___default()('Project1Up', className), collectionType: collectionType, elements: elements, ingestSubcategory: ingestSubcategory, view: viewMode !== null && viewMode !== void 0 ? viewMode : (isMobileLayout ? _utils_constants__WEBPACK_IMPORTED_MODULE_7__[/* ViewMode */ "L"].List : uiConfig.view), activeSort: uiConfig.sortBy, activeSortDirection: uiConfig.sortDirection, activeRenameState: activeRenameState, onItemClicked: onItemClick, sortOptions: [_packages_CDOView_stores_constants__WEBPACK_IMPORTED_MODULE_5__[/* UXSortBy */ "f"].name, _packages_CDOView_stores_constants__WEBPACK_IMPORTED_MODULE_5__[/* UXSortBy */ "f"].modifiedDate], selectionStore: selectionStore, onSortSelected: onSortChange, actionMenuItems: actionMenuItems, selectionDisabled: selectionDisabled, selectAllDisabled: selectAllDisabled || selectionDisabled || singleSelection, singleSelection: singleSelection, shouldRenderItemAsDisabled: shouldRenderItemAsDisabled, ccxIngest: _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_6__[/* default */ "g"].ingestController, contentBelowHeader: contentBelowHeader, onRendered: onRendered === null || onRendered === void 0 ? void 0 : onRendered.bind(this, this.props.tab), onSelectionChange: onSelectionChange },
            react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_packages_CDOView__WEBPACK_IMPORTED_MODULE_4__[/* GridViewPlaceholder */ "c"], { className: "Project1Up", isHeaderVisible: isHeaderVisible, limitRowCount: limitRowCount, renditionType: renditionType, preferSmallerGridSizes: launchedFromCDP, renderOnboardingOnFirstRow: renderOnboardingOnFirstRow, renderOnboardingItem: renderOnboardingItem, ccxIngest: _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_6__[/* default */ "g"].ingestController },
                react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_packages_CDOView__WEBPACK_IMPORTED_MODULE_4__[/* GridItemPlaceholder */ "b"], { metadataFormat: metadataFormat, isFiltered: this.isFiltered.bind(this) })),
            react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_packages_CDOView__WEBPACK_IMPORTED_MODULE_4__[/* ListViewPlaceholder */ "e"], { className: "Project1Up", columns: listViewColumns, mobile: mobile, unsortableColumns: true ? ['size'] : undefined, 
                // Do not show 'create date' sorting option
                dateSortOptions: _packages_CDOView_stores_constants__WEBPACK_IMPORTED_MODULE_5__[/* UX_DATE_SORT_MENU_ITEMS */ "i"].filter(item => item.value === 'modifiedDate'), renditionType: renditionType, isHeaderVisible: isHeaderVisible, onboardingRowHeight: onboardingRowHeight, renderOnboardingItem: renderOnboardingItem, ccxIngest: _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_6__[/* default */ "g"].ingestController, limitRowCount: limitRowCount },
                react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_packages_CDOView__WEBPACK_IMPORTED_MODULE_4__[/* ListItemPlaceholder */ "d"], { mobile: mobile, metadataFormat: metadataFormat, isFiltered: this.isFiltered.bind(this) }))));
    }
    render() {
        const { actionMenuItems, isLoading, errorState, renderEmptyState, renderErrorState, emptyStateClassname, } = this.props;
        const [visible, filtered] = this.getVisibleElements();
        return (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null, isLoading() ? (
        // Because Spectrum <Wait centered /> itself uses abosulute position, use the wrapper <Busy />
        // component instead to centralize the loading indicator within relative container.
        react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_packages_CDOView_Busy__WEBPACK_IMPORTED_MODULE_8__[/* default */ "a"], { size: "L" })) : visible.length ? (this.renderContent([...visible, ...filtered], actionMenuItems)) : errorState ? (renderErrorState()) : (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", { className: classnames__WEBPACK_IMPORTED_MODULE_3___default()(_styles_ContentViewer_css__WEBPACK_IMPORTED_MODULE_10___default.a.EmptyStateContainer, emptyStateClassname) }, renderEmptyState()))));
    }
};
ContentViewer.defaultProps = {
    isHeaderVisible: true,
};
ContentViewer = __decorate([
    mobx_react__WEBPACK_IMPORTED_MODULE_2__[/* observer */ "e"]
], ContentViewer);
/* harmony default export */ __webpack_exports__["a"] = (Object(react_intl__WEBPACK_IMPORTED_MODULE_1__[/* injectIntl */ "g"])(ContentViewer));


/***/ }),

/***/ "V2gg":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _propTypes = _interopRequireDefault(__webpack_require__("17x9"));

var _react = _interopRequireWildcard(__webpack_require__("q1tI"));

function _getRequireWildcardCache(nodeInterop) {
  if (typeof WeakMap !== "function") return null;
  var cacheBabelInterop = new WeakMap();
  var cacheNodeInterop = new WeakMap();
  return (_getRequireWildcardCache = function (nodeInterop) {
    return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
  })(nodeInterop);
}

function _interopRequireWildcard(obj, nodeInterop) {
  if (!nodeInterop && obj && obj.__esModule) {
    return obj;
  }

  if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
    return {
      default: obj
    };
  }

  var cache = _getRequireWildcardCache(nodeInterop);

  if (cache && cache.has(obj)) {
    return cache.get(obj);
  }

  var newObj = {};
  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;

  for (var key in obj) {
    if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
      var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;

      if (desc && (desc.get || desc.set)) {
        Object.defineProperty(newObj, key, desc);
      } else {
        newObj[key] = obj[key];
      }
    }
  }

  newObj.default = obj;

  if (cache) {
    cache.set(obj, newObj);
  }

  return newObj;
}

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

class Video extends _react.Component {
  render() {
    // Fix lint: Media elements such as <audio> and <video> must have a <track> for captions.
    return /*#__PURE__*/_react.default.createElement("video", this.props, this.props.children);
  }

}

exports.default = Video;
Video.propTypes = {
  autoplay: _propTypes.default.bool,
  controls: _propTypes.default.bool,
  enableFullScreen: _propTypes.default.bool,
  fVideoHeight: _propTypes.default.number,
  fVideoWidth: _propTypes.default.number,
  height: _propTypes.default.string,
  loop: _propTypes.default.bool,
  muted: _propTypes.default.bool,
  src: _propTypes.default.string,
  width: _propTypes.default.string,
  cclang: _propTypes.default.string
};

/***/ }),

/***/ "V7Et":
/***/ (function(module, exports, __webpack_require__) {

// 0 -> Array#forEach
// 1 -> Array#map
// 2 -> Array#filter
// 3 -> Array#some
// 4 -> Array#every
// 5 -> Array#find
// 6 -> Array#findIndex
var ctx = __webpack_require__("2GTP");

var IObject = __webpack_require__("M1xp");

var toObject = __webpack_require__("JB68");

var toLength = __webpack_require__("tEej");

var asc = __webpack_require__("v6xn");

module.exports = function (TYPE, $create) {
  var IS_MAP = TYPE == 1;
  var IS_FILTER = TYPE == 2;
  var IS_SOME = TYPE == 3;
  var IS_EVERY = TYPE == 4;
  var IS_FIND_INDEX = TYPE == 6;
  var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
  var create = $create || asc;
  return function ($this, callbackfn, that) {
    var O = toObject($this);
    var self = IObject(O);
    var f = ctx(callbackfn, that, 3);
    var length = toLength(self.length);
    var index = 0;
    var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;
    var val, res;

    for (; length > index; index++) if (NO_HOLES || index in self) {
      val = self[index];
      res = f(val, index, O);

      if (TYPE) {
        if (IS_MAP) result[index] = res; // map
        else if (res) switch (TYPE) {
          case 3:
            return true;
          // some

          case 5:
            return val;
          // find

          case 6:
            return index;
          // findIndex

          case 2:
            result.push(val);
          // filter
        } else if (IS_EVERY) return false; // every
      }
    }

    return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;
  };
};

/***/ }),

/***/ "V7oC":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


exports.__esModule = true;

var _defineProperty = __webpack_require__("SEkw");

var _defineProperty2 = _interopRequireDefault(_defineProperty);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

exports.default = function () {
  function defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i];
      descriptor.enumerable = descriptor.enumerable || false;
      descriptor.configurable = true;
      if ("value" in descriptor) descriptor.writable = true;
      (0, _defineProperty2.default)(target, descriptor.key, descriptor);
    }
  }

  return function (Constructor, protoProps, staticProps) {
    if (protoProps) defineProperties(Constructor.prototype, protoProps);
    if (staticProps) defineProperties(Constructor, staticProps);
    return Constructor;
  };
}();

/***/ }),

/***/ "V7tf":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("path", {
  d: "M31.5 4H24V2a2 2 0 0 0-2-2H12a2 2 0 0 0-2 2v2H2.5a.5.5 0 0 0-.5.5v3a.5.5 0 0 0 .5.5h2l2.413 25.1a1 1 0 0 0 1 .9h18.179a1 1 0 0 0 1-.9L29.5 8h2a.5.5 0 0 0 .5-.5v-3a.5.5 0 0 0-.5-.5zM12 2h10v2H12zm-.458 26.944l-1 .06a.5.5 0 0 1-.529-.469L8.87 11.49a.5.5 0 0 1 .469-.529l1-.06a.5.5 0 0 1 .529.469l1.145 17.045a.5.5 0 0 1-.471.529zM18 28.48a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5V11.4a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 .5.5zm5.985.056a.5.5 0 0 1-.529.469l-1-.06a.5.5 0 0 1-.469-.529l1.147-17.046a.5.5 0 0 1 .529-.469l1 .06a.5.5 0 0 1 .469.529z"
}));

/***/ }),

/***/ "V8Xo":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return isElementVisible; });
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2019 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
function isElementVisible(element) {
    // By default, body is visible
    if (element === document.body) {
        return true;
    }
    // It isn't visible if it isn't attached to the DOM
    if (!document.body.contains(element)) {
        return false;
    }
    // If the element or any parent is hidden, then this element is hidden.
    let curEl = element;
    while (curEl && curEl !== document.body) {
        const style = window.getComputedStyle(curEl);
        if (style.display === 'none' || style.visibility === 'hidden') {
            return false;
        }
        curEl = curEl.parentElement;
    }
    return true;
}


/***/ }),

/***/ "VCL8":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "polyfill", function() { return polyfill; });
/**
 * 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 componentWillMount() {
  // Call this.constructor.gDSFP to support sub-classes.
  var state = this.constructor.getDerivedStateFromProps(this.props, this.state);

  if (state !== null && state !== undefined) {
    this.setState(state);
  }
}

function componentWillReceiveProps(nextProps) {
  // Call this.constructor.gDSFP to support sub-classes.
  // Use the setState() updater to ensure state isn't stale in certain edge cases.
  function updater(prevState) {
    var state = this.constructor.getDerivedStateFromProps(nextProps, prevState);
    return state !== null && state !== undefined ? state : null;
  } // Binding "this" is important for shallow renderer support.


  this.setState(updater.bind(this));
}

function componentWillUpdate(nextProps, nextState) {
  try {
    var prevProps = this.props;
    var prevState = this.state;
    this.props = nextProps;
    this.state = nextState;
    this.__reactInternalSnapshotFlag = true;
    this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(prevProps, prevState);
  } finally {
    this.props = prevProps;
    this.state = prevState;
  }
} // React may warn about cWM/cWRP/cWU methods being deprecated.
// Add a flag to suppress these warnings for this special case.


componentWillMount.__suppressDeprecationWarning = true;
componentWillReceiveProps.__suppressDeprecationWarning = true;
componentWillUpdate.__suppressDeprecationWarning = true;

function polyfill(Component) {
  var prototype = Component.prototype;

  if (!prototype || !prototype.isReactComponent) {
    throw new Error('Can only polyfill class components');
  }

  if (typeof Component.getDerivedStateFromProps !== 'function' && typeof prototype.getSnapshotBeforeUpdate !== 'function') {
    return Component;
  } // If new component APIs are defined, "unsafe" lifecycles won't be called.
  // Error if any of these lifecycles are present,
  // Because they would work differently between older and newer (16.3+) versions of React.


  var foundWillMountName = null;
  var foundWillReceivePropsName = null;
  var foundWillUpdateName = null;

  if (typeof prototype.componentWillMount === 'function') {
    foundWillMountName = 'componentWillMount';
  } else if (typeof prototype.UNSAFE_componentWillMount === 'function') {
    foundWillMountName = 'UNSAFE_componentWillMount';
  }

  if (typeof prototype.componentWillReceiveProps === 'function') {
    foundWillReceivePropsName = 'componentWillReceiveProps';
  } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') {
    foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';
  }

  if (typeof prototype.componentWillUpdate === 'function') {
    foundWillUpdateName = 'componentWillUpdate';
  } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') {
    foundWillUpdateName = 'UNSAFE_componentWillUpdate';
  }

  if (foundWillMountName !== null || foundWillReceivePropsName !== null || foundWillUpdateName !== null) {
    var componentName = Component.displayName || Component.name;
    var newApiName = typeof Component.getDerivedStateFromProps === 'function' ? 'getDerivedStateFromProps()' : 'getSnapshotBeforeUpdate()';
    throw Error('Unsafe legacy lifecycles will not be called for components using new component APIs.\n\n' + componentName + ' uses ' + newApiName + ' but also contains the following legacy lifecycles:' + (foundWillMountName !== null ? '\n  ' + foundWillMountName : '') + (foundWillReceivePropsName !== null ? '\n  ' + foundWillReceivePropsName : '') + (foundWillUpdateName !== null ? '\n  ' + foundWillUpdateName : '') + '\n\nThe above lifecycles should be removed. Learn more about this warning here:\n' + 'https://fb.me/react-async-component-lifecycle-hooks');
  } // React <= 16.2 does not support static getDerivedStateFromProps.
  // As a workaround, use cWM and cWRP to invoke the new static lifecycle.
  // Newer versions of React will ignore these lifecycles if gDSFP exists.


  if (typeof Component.getDerivedStateFromProps === 'function') {
    prototype.componentWillMount = componentWillMount;
    prototype.componentWillReceiveProps = componentWillReceiveProps;
  } // React <= 16.2 does not support getSnapshotBeforeUpdate.
  // As a workaround, use cWU to invoke the new lifecycle.
  // Newer versions of React will ignore that lifecycle if gSBU exists.


  if (typeof prototype.getSnapshotBeforeUpdate === 'function') {
    if (typeof prototype.componentDidUpdate !== 'function') {
      throw new Error('Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype');
    }

    prototype.componentWillUpdate = componentWillUpdate;
    var componentDidUpdate = prototype.componentDidUpdate;

    prototype.componentDidUpdate = function componentDidUpdatePolyfill(prevProps, prevState, maybeSnapshot) {
      // 16.3+ will not execute our will-update method;
      // It will pass a snapshot value to did-update though.
      // Older versions will require our polyfilled will-update value.
      // We need to handle both cases, but can't just check for the presence of "maybeSnapshot",
      // Because for <= 15.x versions this might be a "prevContext" object.
      // We also can't just check "__reactInternalSnapshot",
      // Because get-snapshot might return a falsy value.
      // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior.
      var snapshot = this.__reactInternalSnapshotFlag ? this.__reactInternalSnapshot : maybeSnapshot;
      componentDidUpdate.call(this, prevProps, prevState, snapshot);
    };
  }

  return Component;
}



/***/ }),

/***/ "VExq":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return LicenseType; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return UserState; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return TeamTrialMode; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return TeamTrialState; });
/* unused harmony export AnalyticsParamsModel */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return User; });
/* harmony import */ var mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("99Ma");
/* harmony import */ var app_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("/0Ih");
/* harmony import */ var iaw_localstorage__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("p789");
/* harmony import */ var _MainStore__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("cCFZ");
/* harmony import */ var _LoggerWrapper_Logger__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("43WE");
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/





const logger = _LoggerWrapper_Logger__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].get('UserStore');
var LicenseType;
(function (LicenseType) {
    LicenseType[LicenseType["NONE"] = 0] = "NONE";
    LicenseType[LicenseType["TRIAL"] = 1] = "TRIAL";
    LicenseType[LicenseType["RETAIL_SERIALIZED"] = 2] = "RETAIL_SERIALIZED";
    LicenseType[LicenseType["SUBSCRIPTION"] = 3] = "SUBSCRIPTION";
    LicenseType[LicenseType["VOLUME_SERIALIZED"] = 4] = "VOLUME_SERIALIZED";
    LicenseType[LicenseType["FRL"] = 5] = "FRL";
    LicenseType[LicenseType["UNKNOWN"] = 6] = "UNKNOWN";
})(LicenseType || (LicenseType = {}));
var UserState;
(function (UserState) {
    UserState["NO_USER"] = "No User";
    UserState["SIGNED_IN"] = "Signed In";
    UserState["SIGNED_OUT"] = "Signed Out";
    UserState["USER_CHANGED"] = "User Changed";
})(UserState || (UserState = {}));
var TeamTrialMode;
(function (TeamTrialMode) {
    TeamTrialMode[TeamTrialMode["NONE"] = 0] = "NONE";
    TeamTrialMode[TeamTrialMode["ADMIN"] = 1] = "ADMIN";
    TeamTrialMode[TeamTrialMode["DELEGATE"] = 2] = "DELEGATE";
})(TeamTrialMode || (TeamTrialMode = {}));
var TeamTrialState;
(function (TeamTrialState) {
    TeamTrialState[TeamTrialState["NONE"] = 0] = "NONE";
    TeamTrialState[TeamTrialState["ACTIVE"] = 1] = "ACTIVE";
    TeamTrialState[TeamTrialState["EXPIRED"] = 2] = "EXPIRED";
})(TeamTrialState || (TeamTrialState = {}));
let lastSignedInUser = '';
const UnprocessedAnalyticsParamsModel = mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].model('analyticsParams', {
    surfaceId: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].maybe(mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].string),
    campaignId: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].maybe(mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].string),
    treatmentId: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].maybe(mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].string),
    variationId: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].maybe(mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].string),
});
const AnalyticsParamsModel = mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].snapshotProcessor(UnprocessedAnalyticsParamsModel, {
    preProcessor(snapshot) {
        if (!snapshot) {
            return snapshot;
        }
        let modifiedSnapshot = snapshot;
        try {
            modifiedSnapshot = JSON.parse(JSON.stringify(snapshot));
            // we'll receive the surface ID in the "surface" field, moving it so that this integrates better with our Ingest handlers.
            modifiedSnapshot.surfaceId = modifiedSnapshot.surface || modifiedSnapshot.surfaceId;
        }
        catch (error) {
            logger.warn('Failed to process analytics params');
        }
        return modifiedSnapshot;
    },
});
// appEntitlementStatus, workflowInProgress, activationType and billingStatus used to be MobX State Tree enums
// This broke when NGL added a new Activation Type, because MST does runtime type-checking, and we didn't have the new type in our enum.
// Storing the old enum values here for reference.
// appEntitlementStatus: ['TRIAL', 'SUBSCRIPTION', 'PERPETUAL', 'EXPIRED', 'DENIED']
// workflowInProgress: ['NONE', 'HYBRID', 'INAPP']
// activationType: ['NAMED_USER', 'FRL_ONLINE', 'FRL_ISOLATED', 'FRL_LAN', 'LAB_NAMED_USER', 'FRL_CONNECTED']
// billingStatus: ['NORMAL', 'BILL_FAILURE', 'AUTH_FAILURE', 'CC_EXPIRED', 'PAYMENT_INSTRUMENT_MISSING'])
// switchPlanInfo.type : ['RESTART', 'REACTIVATE', 'UPGRADE', 'FREEMIUM_UPGRADE', 'CROSS_SELL']
const User = mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"]
    .model('User', {
    // NGL Profile see https://wiki.corp.adobe.com/display/NGL/NGL+Components
    RelationshipProfile: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].optional(mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].array(mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].model('RelationshipProfile', {
        appEntitlementStatus: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].optional(mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].string, 'DENIED'),
        workflowInProgress: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].optional(mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].string, 'NONE'),
        activationType: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].optional(mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].string, 'NAMED_USER'),
        profileGenerationTimestamp: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].optional(mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].number, -1),
        licenseExpiryTimestamp: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].optional(mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].number, -1),
        billingStatus: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].optional(mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].string, 'NORMAL'),
        usedForLegacyProfile: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].optional(mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].boolean, false),
        chicletMode: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].optional(mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].string, ''),
        switchPlanInfo: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].maybe(mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].model('switchPlanInfo', {
            type: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].string,
            isPromo: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].boolean,
            offerId: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].string,
        })),
        // enhancement for IAW-10918
        analyticsParams: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].maybe(AnalyticsParamsModel)
    })), []),
    UserProfile: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].optional(mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].model('UserProfile', {
        firstName: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].optional(mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].string, ''),
        lastName: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].optional(mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].string, ''),
        accountType: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].optional(mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].string, ''),
        countryCode: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].optional(mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].string, ''),
        userId: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].optional(mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].string, ''),
        displayName: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].optional(mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].string, ''),
        userEmail: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].optional(mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].string, ''),
    }), {}),
    LegacyProfile: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].optional(mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].model('LegacyProfile', {
        licenseType: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].optional(mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].number, LicenseType.UNKNOWN),
    }), {}),
    accessToken: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].optional(mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].string, ''),
    avatar: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].maybeNull(mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].string),
    formerSubscriptionStatus: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].optional(mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].string, ''),
    serviceCode: mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].optional(mobx_state_tree__WEBPACK_IMPORTED_MODULE_0__[/* types */ "h"].string, 'creativecloud'),
})
    .volatile(self => ({
    isStaging: false,
    originalUserShown: false,
    state: UserState.NO_USER,
    initialized: false,
}))
    .views(self => ({
    get isChineseUser() {
        return self.UserProfile.countryCode === 'CN';
    },
    get isUserAvailable() {
        return self.UserProfile.userId.length > 0;
    },
    get isEnterprise() {
        return self.UserProfile.accountType !== 'type1';
    },
    get isFRL() {
        return ((self.initialized && !self.UserProfile) ||
            (self.initialized && !self.UserProfile.userId) ||
            _MainStore__WEBPACK_IMPORTED_MODULE_3__["mainStore"].sidekickStore.frlOverride);
    },
    get service_code() {
        return self.serviceCode;
    },
    get isTeamTrialUser() {
        const profile = self.RelationshipProfile.find(x => x.usedForLegacyProfile);
        return !!(profile &&
            (profile.appEntitlementStatus === 'TEAM_TRIAL' || profile.appEntitlementStatus === 'TEAM_TRIAL_EXPIRED'));
    },
    get teamTrialState() {
        const profile = self.RelationshipProfile.find(x => x.usedForLegacyProfile);
        if (profile) {
            return profile.appEntitlementStatus === 'TEAM_TRIAL'
                ? TeamTrialState.ACTIVE
                : profile.appEntitlementStatus === 'TEAM_TRIAL_EXPIRED'
                    ? TeamTrialState.EXPIRED
                    : TeamTrialState.NONE;
        }
        return TeamTrialState.NONE;
    },
    get teamTrialMode() {
        if (this.isTeamTrialUser) {
            const profile = self.RelationshipProfile.find(x => x.usedForLegacyProfile);
            return profile.chicletMode === 'ADMIN_MODE'
                ? TeamTrialMode.ADMIN
                : profile.chicletMode === 'DELEGATE_MODE'
                    ? TeamTrialMode.DELEGATE
                    : TeamTrialMode.NONE;
        }
        return TeamTrialMode.NONE;
    },
    get entitlementStatus() {
        const profile = self.RelationshipProfile.find(x => x.usedForLegacyProfile);
        return profile ? profile.appEntitlementStatus : '';
    },
    get subscriptionStatus() {
        return self.LegacyProfile.licenseType === LicenseType.TRIAL ? 'trial' : 'paid';
    },
    get fetchOptions() {
        return {
            headers: {
                Authorization: `Bearer ${self.accessToken}`,
            },
        };
    },
    get legacyRelationshipProfile() {
        return self.RelationshipProfile.find(profile => profile.usedForLegacyProfile);
    }
}))
    .views(self => ({
    get cloudDocsDisabled() {
        return self.isChineseUser;
    },
}))
    .actions(self => ({
    updateFormerSubscriptionStatus() {
        self.formerSubscriptionStatus = self.subscriptionStatus;
        iaw_localstorage__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].setUserItem(app_constants__WEBPACK_IMPORTED_MODULE_1__[/* default */ "k"].LOCALSTORE_KEYS.SUBSCRIPTION_STATUS, self.subscriptionStatus);
    },
    markOriginalUserShown() {
        self.originalUserShown = true;
    },
    setServiceCode(serviceCode) {
        if (serviceCode) {
            self.serviceCode = serviceCode;
        }
    },
    setStaging(staging) {
        self.isStaging = staging;
    },
    setAccessToken(token) {
        self.accessToken = token;
    },
    setAvatar(avatar) {
        self.avatar = avatar;
    },
    setInitialized(initialized) {
        self.initialized = initialized;
    },
    setUserProfile(data) {
        var _a, _b, _c;
        lastSignedInUser = lastSignedInUser || self.UserProfile.userId;
        self.LegacyProfile = data.LegacyProfile;
        self.UserProfile = {
            ...data === null || data === void 0 ? void 0 : data.UserProfile,
            accountType: (_b = (_a = data === null || data === void 0 ? void 0 : data.UserProfile) === null || _a === void 0 ? void 0 : _a.accountType) === null || _b === void 0 ? void 0 : _b.toLowerCase(),
        };
        self.RelationshipProfile = (_c = data === null || data === void 0 ? void 0 : data.RelationshipProfile) === null || _c === void 0 ? void 0 : _c.map(relationshipProfiles => {
            var _a, _b, _c, _d;
            return {
                ...relationshipProfiles,
                appEntitlementStatus: (_a = relationshipProfiles === null || relationshipProfiles === void 0 ? void 0 : relationshipProfiles.appEntitlementStatus) === null || _a === void 0 ? void 0 : _a.toUpperCase(),
                workflowInProgress: (_b = relationshipProfiles === null || relationshipProfiles === void 0 ? void 0 : relationshipProfiles.workflowInProgress) === null || _b === void 0 ? void 0 : _b.toUpperCase(),
                billingStatus: (_c = relationshipProfiles === null || relationshipProfiles === void 0 ? void 0 : relationshipProfiles.billingStatus) === null || _c === void 0 ? void 0 : _c.toUpperCase(),
                chicletMode: (_d = relationshipProfiles === null || relationshipProfiles === void 0 ? void 0 : relationshipProfiles.chicletMode) === null || _d === void 0 ? void 0 : _d.toUpperCase(),
            };
        });
        if (!lastSignedInUser && self.UserProfile.userId) {
            self.state = UserState.SIGNED_IN;
        }
        else if (lastSignedInUser && !self.UserProfile.userId) {
            self.state = UserState.SIGNED_OUT;
        }
        else if (!lastSignedInUser && !self.UserProfile.userId) {
            self.state = UserState.NO_USER;
        }
        else if (lastSignedInUser !== self.UserProfile.userId) {
            self.state = UserState.USER_CHANGED;
        }
        else {
            self.state = UserState.SIGNED_IN;
        }
        const formerSubscriptionStatus = iaw_localstorage__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].getUserItem(app_constants__WEBPACK_IMPORTED_MODULE_1__[/* default */ "k"].LOCALSTORE_KEYS.SUBSCRIPTION_STATUS);
        self.formerSubscriptionStatus = formerSubscriptionStatus || '';
        self.initialized = true;
    },
}));


/***/ }),

/***/ "VGQ+":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = filterReactDomProps;
/*************************************************************************
* ADOBE CONFIDENTIAL
* ___________________
*
* Copyright 2019 Adobe
* All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains
* the property of Adobe and its suppliers, if any. The intellectual
* and technical concepts contained herein are proprietary to Adobe
* and its suppliers and are protected by all applicable intellectual
* property laws, including trade secret and copyright laws.
* Dissemination of this information or reproduction of this material
* is strictly forbidden unless prior written permission is obtained
* from Adobe.
**************************************************************************/

const DOMProps = {
  'abbr': 1,
  'accept': 1,
  'acceptCharset': 1,
  'accessKey': 1,
  'action': 1,
  'allowFullScreen': 1,
  'allowTransparency': 1,
  'alt': 1,
  'async': 1,
  'autoComplete': 1,
  'autoFocus': 1,
  'autoPlay': 1,
  'boundariesElement': 1,
  'cellPadding': 1,
  'cellSpacing': 1,
  'challenge': 1,
  'charset': 1,
  'checked': 1,
  'cite': 1,
  'class': 1,
  'className': 1,
  'cols': 1,
  'colSpan': 1,
  'command': 1,
  'content': 1,
  'contentEditable': 1,
  'contextMenu': 1,
  'controls': 1,
  'coords': 1,
  'crossOrigin': 1,
  'data': 1,
  'dateTime': 1,
  'default': 1,
  'defaultPreventedKeys': 1,
  'defaultpreventedkeys': 1,
  'defaultPreventedEvents': 1,
  'defaultpreventedevents': 1,
  'defer': 1,
  'dir': 1,
  'disabled': 1,
  'download': 1,
  'draggable': 1,
  'dropzone': 1,
  'encType': 1,
  'for': 1,
  'form': 1,
  'formAction': 1,
  'formEncType': 1,
  'formMethod': 1,
  'formNoValidate': 1,
  'formTarget': 1,
  'frameBorder': 1,
  'headers': 1,
  'height': 1,
  'hidden': 1,
  'high': 1,
  'href': 1,
  'hrefLang': 1,
  'htmlFor': 1,
  'httpEquiv': 1,
  'icon': 1,
  'id': 1,
  'inputMode': 1,
  'isMap': 1,
  'itemId': 1,
  'itemProp': 1,
  'itemRef': 1,
  'itemScope': 1,
  'itemType': 1,
  'kind': 1,
  'label': 1,
  'lang': 1,
  'list': 1,
  'loop': 1,
  'manifest': 1,
  'max': 1,
  'maxLength': 1,
  'media': 1,
  'mediaGroup': 1,
  'method': 1,
  'min': 1,
  'minLength': 1,
  'multiple': 1,
  'muted': 1,
  'name': 1,
  'noValidate': 1,
  'open': 1,
  'optimum': 1,
  'pattern': 1,
  'ping': 1,
  'placeholder': 1,
  'poster': 1,
  'preload': 1,
  'radioGroup': 1,
  'readOnly': 1,
  'rel': 1,
  'required': 1,
  'role': 1,
  'rows': 1,
  'rowSpan': 1,
  'sandbox': 1,
  'scope': 1,
  'scoped': 1,
  'scrolling': 1,
  'seamless': 1,
  'selected': 1,
  'shape': 1,
  'size': 1,
  'sizes': 1,
  'sortable': 1,
  'span': 1,
  'spellCheck': 1,
  'src': 1,
  'srcDoc': 1,
  'srcSet': 1,
  'start': 1,
  'step': 1,
  'style': 1,
  'tabIndex': 1,
  'target': 1,
  'title': 1,
  'translate': 1,
  'type': 1,
  'typeMustMatch': 1,
  'useMap': 1,
  'value': 1,
  'width': 1,
  'wmode': 1,
  'wrap': 1,
  'onCopy': 1,
  'onCut': 1,
  'onPaste': 1,
  'onLoad': 1,
  'onError': 1,
  'onWheel': 1,
  'onScroll': 1,
  'onCompositionEnd': 1,
  'onCompositionStart': 1,
  'onCompositionUpdate': 1,
  'onKeyDown': 1,
  'onKeyPress': 1,
  'onKeyUp': 1,
  'onFocus': 1,
  'onBlur': 1,
  'onChange': 1,
  'onInput': 1,
  'onSubmit': 1,
  'onClick': 1,
  'onContextMenu': 1,
  'onDoubleClick': 1,
  'onDrag': 1,
  'onDragEnd': 1,
  'onDragEnter': 1,
  'onDragExit': 1,
  'onDragLeave': 1,
  'onDragOver': 1,
  'onDragStart': 1,
  'onDrop': 1,
  'onMouseDown': 1,
  'onMouseEnter': 1,
  'onMouseLeave': 1,
  'onMouseMove': 1,
  'onMouseOut': 1,
  'onMouseOver': 1,
  'onMouseUp': 1,
  'onSelect': 1,
  'onTouchCancel': 1,
  'onTouchEnd': 1,
  'onTouchMove': 1,
  'onTouchStart': 1,
  'onAnimationStart': 1,
  'onAnimationEnd': 1,
  'onAnimationIteration': 1,
  'onTransitionEnd': 1
};
/**
 * Checking for aria-* and data-* props
 */

const propRe = /^((data|aria)-.*)$/;

function filterReactDomProps(props) {
  const filterProps = {};

  for (const prop in props) {
    if (props.hasOwnProperty(prop) && (DOMProps[prop] || propRe.test(prop))) {
      filterProps[prop] = props[prop];
    }
  }

  return filterProps;
}

/***/ }),

/***/ "VIzJ":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXPORTS
__webpack_require__.d(__webpack_exports__, "f", function() { return /* binding */ addLocaleData; });
__webpack_require__.d(__webpack_exports__, "g", function() { return /* binding */ injectIntl; });
__webpack_require__.d(__webpack_exports__, "e", function() { return /* binding */ index_es_IntlProvider; });
__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ index_es_FormattedDate; });
__webpack_require__.d(__webpack_exports__, "d", function() { return /* binding */ index_es_FormattedRelative; });
__webpack_require__.d(__webpack_exports__, "c", function() { return /* binding */ index_es_FormattedMessage; });
__webpack_require__.d(__webpack_exports__, "b", function() { return /* binding */ index_es_FormattedHTMLMessage; });

// UNUSED EXPORTS: intlShape, defineMessages, FormattedTime, FormattedNumber, FormattedPlural

// EXTERNAL MODULE: ../locale-data/index.js (ignored)
var locale_data_ignored_ = __webpack_require__(1);
var locale_data_ignored_default = /*#__PURE__*/__webpack_require__.n(locale_data_ignored_);

// EXTERNAL MODULE: ./node_modules/intl-messageformat/index.js
var intl_messageformat = __webpack_require__("2UD4");
var intl_messageformat_default = /*#__PURE__*/__webpack_require__.n(intl_messageformat);

// EXTERNAL MODULE: ./node_modules/intl-relativeformat/index.js
var intl_relativeformat = __webpack_require__("7Inb");
var intl_relativeformat_default = /*#__PURE__*/__webpack_require__.n(intl_relativeformat);

// EXTERNAL MODULE: ./node_modules/prop-types/index.js
var prop_types = __webpack_require__("17x9");
var prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types);

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__("q1tI");
var react_default = /*#__PURE__*/__webpack_require__.n(react);

// EXTERNAL MODULE: ./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js
var hoist_non_react_statics_cjs = __webpack_require__("2mql");
var hoist_non_react_statics_cjs_default = /*#__PURE__*/__webpack_require__.n(hoist_non_react_statics_cjs);

// EXTERNAL MODULE: ./node_modules/invariant/browser.js
var browser = __webpack_require__("QLaP");
var browser_default = /*#__PURE__*/__webpack_require__.n(browser);

// CONCATENATED MODULE: ./node_modules/intl-format-cache/lib/index.js
/*
Copyright (c) 2014, Yahoo! Inc. All rights reserved.
Copyrights licensed under the New BSD License.
See the accompanying LICENSE file for terms.
*/
var RelativeTimeFormat; // -- Utilities ----------------------------------------------------------------

function getCacheId(inputs) {
  return JSON.stringify(inputs.map(function (input) {
    return input && typeof input === 'object' ? orderedProps(input) : input;
  }));
}

function orderedProps(obj) {
  return Object.keys(obj).sort().map(function (k) {
    var _a;

    return _a = {}, _a[k] = obj[k], _a;
  });
}

var memoizeFormatConstructor = function (FormatConstructor, cache) {
  if (cache === void 0) {
    cache = {};
  }

  return function () {
    var _a;

    var args = [];

    for (var _i = 0; _i < arguments.length; _i++) {
      args[_i] = arguments[_i];
    }

    var cacheId = getCacheId(args);
    var format = cacheId && cache[cacheId];

    if (!format) {
      format = new ((_a = FormatConstructor).bind.apply(_a, [void 0].concat(args)))();

      if (cacheId) {
        cache[cacheId] = format;
      }
    }

    return format;
  };
};

/* harmony default export */ var lib = (memoizeFormatConstructor);
// CONCATENATED MODULE: ./node_modules/react-intl-cdo/lib/index.es.js
/*
 * Copyright 2019, Yahoo Inc.
 * Copyrights licensed under the New BSD License.
 * See the accompanying LICENSE file for terms.
 */







 // GENERATED FILE

var defaultLocaleData = {
  "locale": "en",
  "pluralRuleFunction": function pluralRuleFunction(n, ord) {
    var s = String(n).split("."),
        v0 = !s[1],
        t0 = Number(s[0]) == n,
        n10 = t0 && s[0].slice(-1),
        n100 = t0 && s[0].slice(-2);
    if (ord) return n10 == 1 && n100 != 11 ? "one" : n10 == 2 && n100 != 12 ? "two" : n10 == 3 && n100 != 13 ? "few" : "other";
    return n == 1 && v0 ? "one" : "other";
  },
  "fields": {
    "year": {
      "displayName": "year",
      "relative": {
        "0": "this year",
        "1": "next year",
        "-1": "last year"
      },
      "relativeTime": {
        "future": {
          "one": "in {0} year",
          "other": "in {0} years"
        },
        "past": {
          "one": "{0} year ago",
          "other": "{0} years ago"
        }
      }
    },
    "year-short": {
      "displayName": "yr.",
      "relative": {
        "0": "this yr.",
        "1": "next yr.",
        "-1": "last yr."
      },
      "relativeTime": {
        "future": {
          "one": "in {0} yr.",
          "other": "in {0} yr."
        },
        "past": {
          "one": "{0} yr. ago",
          "other": "{0} yr. ago"
        }
      }
    },
    "month": {
      "displayName": "month",
      "relative": {
        "0": "this month",
        "1": "next month",
        "-1": "last month"
      },
      "relativeTime": {
        "future": {
          "one": "in {0} month",
          "other": "in {0} months"
        },
        "past": {
          "one": "{0} month ago",
          "other": "{0} months ago"
        }
      }
    },
    "month-short": {
      "displayName": "mo.",
      "relative": {
        "0": "this mo.",
        "1": "next mo.",
        "-1": "last mo."
      },
      "relativeTime": {
        "future": {
          "one": "in {0} mo.",
          "other": "in {0} mo."
        },
        "past": {
          "one": "{0} mo. ago",
          "other": "{0} mo. ago"
        }
      }
    },
    "day": {
      "displayName": "day",
      "relative": {
        "0": "today",
        "1": "tomorrow",
        "-1": "yesterday"
      },
      "relativeTime": {
        "future": {
          "one": "in {0} day",
          "other": "in {0} days"
        },
        "past": {
          "one": "{0} day ago",
          "other": "{0} days ago"
        }
      }
    },
    "day-short": {
      "displayName": "day",
      "relative": {
        "0": "today",
        "1": "tomorrow",
        "-1": "yesterday"
      },
      "relativeTime": {
        "future": {
          "one": "in {0} day",
          "other": "in {0} days"
        },
        "past": {
          "one": "{0} day ago",
          "other": "{0} days ago"
        }
      }
    },
    "hour": {
      "displayName": "hour",
      "relative": {
        "0": "this hour"
      },
      "relativeTime": {
        "future": {
          "one": "in {0} hour",
          "other": "in {0} hours"
        },
        "past": {
          "one": "{0} hour ago",
          "other": "{0} hours ago"
        }
      }
    },
    "hour-short": {
      "displayName": "hr.",
      "relative": {
        "0": "this hour"
      },
      "relativeTime": {
        "future": {
          "one": "in {0} hr.",
          "other": "in {0} hr."
        },
        "past": {
          "one": "{0} hr. ago",
          "other": "{0} hr. ago"
        }
      }
    },
    "minute": {
      "displayName": "minute",
      "relative": {
        "0": "this minute"
      },
      "relativeTime": {
        "future": {
          "one": "in {0} minute",
          "other": "in {0} minutes"
        },
        "past": {
          "one": "{0} minute ago",
          "other": "{0} minutes ago"
        }
      }
    },
    "minute-short": {
      "displayName": "min.",
      "relative": {
        "0": "this minute"
      },
      "relativeTime": {
        "future": {
          "one": "in {0} min.",
          "other": "in {0} min."
        },
        "past": {
          "one": "{0} min. ago",
          "other": "{0} min. ago"
        }
      }
    },
    "second": {
      "displayName": "second",
      "relative": {
        "0": "now"
      },
      "relativeTime": {
        "future": {
          "one": "in {0} second",
          "other": "in {0} seconds"
        },
        "past": {
          "one": "{0} second ago",
          "other": "{0} seconds ago"
        }
      }
    },
    "second-short": {
      "displayName": "sec.",
      "relative": {
        "0": "now"
      },
      "relativeTime": {
        "future": {
          "one": "in {0} sec.",
          "other": "in {0} sec."
        },
        "past": {
          "one": "{0} sec. ago",
          "other": "{0} sec. ago"
        }
      }
    }
  }
};
/*
 * Copyright 2015, Yahoo Inc.
 * Copyrights licensed under the New BSD License.
 * See the accompanying LICENSE file for terms.
 */

function addLocaleData() {
  var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
  var locales = Array.isArray(data) ? data : [data];
  locales.forEach(function (localeData) {
    if (localeData && localeData.locale) {
      intl_messageformat_default.a.__addLocaleData(localeData);

      intl_relativeformat_default.a.__addLocaleData(localeData);
    }
  });
}

function hasLocaleData(locale) {
  var localeParts = (locale || '').split('-');

  while (localeParts.length > 0) {
    if (hasIMFAndIRFLocaleData(localeParts.join('-'))) {
      return true;
    }

    localeParts.pop();
  }

  return false;
}

function hasIMFAndIRFLocaleData(locale) {
  var normalizedLocale = locale && locale.toLowerCase();
  return !!(intl_messageformat_default.a.__localeData__[normalizedLocale] && intl_relativeformat_default.a.__localeData__[normalizedLocale]);
}

var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) {
  return typeof obj;
} : function (obj) {
  return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
};

var asyncGenerator = function () {
  function AwaitValue(value) {
    this.value = value;
  }

  function AsyncGenerator(gen) {
    var front, back;

    function send(key, arg) {
      return new Promise(function (resolve, reject) {
        var request = {
          key: key,
          arg: arg,
          resolve: resolve,
          reject: reject,
          next: null
        };

        if (back) {
          back = back.next = request;
        } else {
          front = back = request;
          resume(key, arg);
        }
      });
    }

    function resume(key, arg) {
      try {
        var result = gen[key](arg);
        var value = result.value;

        if (value instanceof AwaitValue) {
          Promise.resolve(value.value).then(function (arg) {
            resume("next", arg);
          }, function (arg) {
            resume("throw", arg);
          });
        } else {
          settle(result.done ? "return" : "normal", result.value);
        }
      } catch (err) {
        settle("throw", err);
      }
    }

    function settle(type, value) {
      switch (type) {
        case "return":
          front.resolve({
            value: value,
            done: true
          });
          break;

        case "throw":
          front.reject(value);
          break;

        default:
          front.resolve({
            value: value,
            done: false
          });
          break;
      }

      front = front.next;

      if (front) {
        resume(front.key, front.arg);
      } else {
        back = null;
      }
    }

    this._invoke = send;

    if (typeof gen.return !== "function") {
      this.return = undefined;
    }
  }

  if (typeof Symbol === "function" && Symbol.asyncIterator) {
    AsyncGenerator.prototype[Symbol.asyncIterator] = function () {
      return this;
    };
  }

  AsyncGenerator.prototype.next = function (arg) {
    return this._invoke("next", arg);
  };

  AsyncGenerator.prototype.throw = function (arg) {
    return this._invoke("throw", arg);
  };

  AsyncGenerator.prototype.return = function (arg) {
    return this._invoke("return", arg);
  };

  return {
    wrap: function (fn) {
      return function () {
        return new AsyncGenerator(fn.apply(this, arguments));
      };
    },
    await: function (value) {
      return new AwaitValue(value);
    }
  };
}();

var classCallCheck = function (instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
};

var createClass = function () {
  function defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i];
      descriptor.enumerable = descriptor.enumerable || false;
      descriptor.configurable = true;
      if ("value" in descriptor) descriptor.writable = true;
      Object.defineProperty(target, descriptor.key, descriptor);
    }
  }

  return function (Constructor, protoProps, staticProps) {
    if (protoProps) defineProperties(Constructor.prototype, protoProps);
    if (staticProps) defineProperties(Constructor, staticProps);
    return Constructor;
  };
}();

var defineProperty = function (obj, key, value) {
  if (key in obj) {
    Object.defineProperty(obj, key, {
      value: value,
      enumerable: true,
      configurable: true,
      writable: true
    });
  } else {
    obj[key] = value;
  }

  return obj;
};

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var inherits = function (subClass, superClass) {
  if (typeof superClass !== "function" && superClass !== null) {
    throw new TypeError("Super expression must either be null or a function, not " + typeof superClass);
  }

  subClass.prototype = Object.create(superClass && superClass.prototype, {
    constructor: {
      value: subClass,
      enumerable: false,
      writable: true,
      configurable: true
    }
  });
  if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;
};

var objectWithoutProperties = function (obj, keys) {
  var target = {};

  for (var i in obj) {
    if (keys.indexOf(i) >= 0) continue;
    if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;
    target[i] = obj[i];
  }

  return target;
};

var possibleConstructorReturn = function (self, call) {
  if (!self) {
    throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
  }

  return call && (typeof call === "object" || typeof call === "function") ? call : self;
};

var toConsumableArray = function (arr) {
  if (Array.isArray(arr)) {
    for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];

    return arr2;
  } else {
    return Array.from(arr);
  }
};
/*
 * Copyright 2015, Yahoo Inc.
 * Copyrights licensed under the New BSD License.
 * See the accompanying LICENSE file for terms.
 */


var bool = prop_types_default.a.bool;
var number = prop_types_default.a.number;
var string = prop_types_default.a.string;
var func = prop_types_default.a.func;
var object = prop_types_default.a.object;
var oneOf = prop_types_default.a.oneOf;
var shape = prop_types_default.a.shape;
var any = prop_types_default.a.any;
var oneOfType = prop_types_default.a.oneOfType;
var localeMatcher = oneOf(['best fit', 'lookup']);
var narrowShortLong = oneOf(['narrow', 'short', 'long']);
var numeric2digit = oneOf(['numeric', '2-digit']);
var funcReq = func.isRequired;
var intlConfigPropTypes = {
  locale: string,
  timeZone: string,
  formats: object,
  messages: object,
  textComponent: any,
  defaultLocale: string,
  defaultFormats: object,
  onError: func
};
var intlFormatPropTypes = {
  formatDate: funcReq,
  formatTime: funcReq,
  formatRelative: funcReq,
  formatNumber: funcReq,
  formatPlural: funcReq,
  formatMessage: funcReq,
  formatHTMLMessage: funcReq
};
var intlShape = shape(_extends({}, intlConfigPropTypes, intlFormatPropTypes, {
  formatters: object,
  now: funcReq
}));
var messageDescriptorPropTypes = {
  id: string.isRequired,
  description: oneOfType([string, object]),
  defaultMessage: string
};
var dateTimeFormatPropTypes = {
  localeMatcher: localeMatcher,
  formatMatcher: oneOf(['basic', 'best fit']),
  timeZone: string,
  hour12: bool,
  weekday: narrowShortLong,
  era: narrowShortLong,
  year: numeric2digit,
  month: oneOf(['numeric', '2-digit', 'narrow', 'short', 'long']),
  day: numeric2digit,
  hour: numeric2digit,
  minute: numeric2digit,
  second: numeric2digit,
  timeZoneName: oneOf(['short', 'long'])
};
var numberFormatPropTypes = {
  localeMatcher: localeMatcher,
  style: oneOf(['decimal', 'currency', 'percent']),
  currency: string,
  currencyDisplay: oneOf(['symbol', 'code', 'name']),
  useGrouping: bool,
  minimumIntegerDigits: number,
  minimumFractionDigits: number,
  maximumFractionDigits: number,
  minimumSignificantDigits: number,
  maximumSignificantDigits: number
};
var relativeFormatPropTypes = {
  style: oneOf(['best fit', 'numeric']),
  units: oneOf(['second', 'minute', 'hour', 'day', 'month', 'year', 'second-short', 'minute-short', 'hour-short', 'day-short', 'month-short', 'year-short'])
};
var pluralFormatPropTypes = {
  style: oneOf(['cardinal', 'ordinal'])
};
/*
HTML escaping and shallow-equals implementations are the same as React's
(on purpose.) Therefore, it has the following Copyright and Licensing:

Copyright 2013-2014, Facebook, Inc.
All rights reserved.

This source code is licensed under the BSD-style license found in the LICENSE
file in the root directory of React's source tree.
*/

var intlConfigPropNames = Object.keys(intlConfigPropTypes);
var ESCAPED_CHARS = {
  '&': '&amp;',
  '>': '&gt;',
  '<': '&lt;',
  '"': '&quot;',
  "'": '&#x27;'
};
var UNSAFE_CHARS_REGEX = /[&><"']/g;

function index_es_escape(str) {
  return ('' + str).replace(UNSAFE_CHARS_REGEX, function (match) {
    return ESCAPED_CHARS[match];
  });
}

function filterProps(props, whitelist) {
  var defaults$$1 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
  return whitelist.reduce(function (filtered, name) {
    if (props.hasOwnProperty(name)) {
      filtered[name] = props[name];
    } else if (defaults$$1.hasOwnProperty(name)) {
      filtered[name] = defaults$$1[name];
    }

    return filtered;
  }, {});
}

function invariantIntlContext() {
  var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
      intl = _ref.intl;

  browser_default()(intl, '[React Intl] Could not find required `intl` object. ' + '<IntlProvider> needs to exist in the component ancestry.');
}

function shallowEquals(objA, objB) {
  if (objA === objB) {
    return true;
  }

  if ((typeof objA === 'undefined' ? 'undefined' : _typeof(objA)) !== 'object' || objA === null || (typeof objB === 'undefined' ? 'undefined' : _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.


  var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);

  for (var i = 0; i < keysA.length; i++) {
    if (!bHasOwnProperty(keysA[i]) || objA[keysA[i]] !== objB[keysA[i]]) {
      return false;
    }
  }

  return true;
}

function shouldIntlComponentUpdate(_ref2, nextProps, nextState) {
  var props = _ref2.props,
      state = _ref2.state,
      _ref2$context = _ref2.context,
      context = _ref2$context === undefined ? {} : _ref2$context;
  var nextContext = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
  var _context$intl = context.intl,
      intl = _context$intl === undefined ? {} : _context$intl;
  var _nextContext$intl = nextContext.intl,
      nextIntl = _nextContext$intl === undefined ? {} : _nextContext$intl;
  return !shallowEquals(nextProps, props) || !shallowEquals(nextState, state) || !(nextIntl === intl || shallowEquals(filterProps(nextIntl, intlConfigPropNames), filterProps(intl, intlConfigPropNames)));
}

function createError(message, exception) {
  var eMsg = exception ? '\n' + exception : '';
  return '[React Intl] ' + message + eMsg;
}

function defaultErrorHandler(error) {
  if (false) {}
}
/*
 * Copyright 2015, Yahoo Inc.
 * Copyrights licensed under the New BSD License.
 * See the accompanying LICENSE file for terms.
 */
// Inspired by react-redux's `connect()` HOC factory function implementation:
// https://github.com/rackt/react-redux


function getDisplayName(Component$$1) {
  return Component$$1.displayName || Component$$1.name || 'Component';
}

function injectIntl(WrappedComponent) {
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
  var _options$intlPropName = options.intlPropName,
      intlPropName = _options$intlPropName === undefined ? 'intl' : _options$intlPropName,
      _options$withRef = options.withRef,
      withRef = _options$withRef === undefined ? false : _options$withRef;

  var InjectIntl = function (_Component) {
    inherits(InjectIntl, _Component);

    function InjectIntl(props, context) {
      classCallCheck(this, InjectIntl);

      var _this = possibleConstructorReturn(this, (InjectIntl.__proto__ || Object.getPrototypeOf(InjectIntl)).call(this, props, context));

      invariantIntlContext(context);
      return _this;
    }

    createClass(InjectIntl, [{
      key: 'getWrappedInstance',
      value: function getWrappedInstance() {
        browser_default()(withRef, '[React Intl] To access the wrapped instance, ' + 'the `{withRef: true}` option must be set when calling: ' + '`injectIntl()`');
        return this._wrappedInstance;
      }
    }, {
      key: 'render',
      value: function render() {
        var _this2 = this;

        return react_default.a.createElement(WrappedComponent, _extends({}, this.props, defineProperty({}, intlPropName, this.context.intl), {
          ref: withRef ?
          /* istanbul ignore next */
          function (ref) {
            return _this2._wrappedInstance = ref;
          } : null
        }));
      }
    }]);
    return InjectIntl;
  }(react["Component"]);

  InjectIntl.displayName = 'InjectIntl(' + getDisplayName(WrappedComponent) + ')';
  InjectIntl.contextTypes = {
    intl: intlShape
  };
  InjectIntl.WrappedComponent = WrappedComponent;
  return hoist_non_react_statics_cjs_default()(InjectIntl, WrappedComponent);
}
/*
 * Copyright 2015, Yahoo Inc.
 * Copyrights licensed under the New BSD License.
 * See the accompanying LICENSE file for terms.
 */


function defineMessages(messageDescriptors) {
  // This simply returns what's passed-in because it's meant to be a hook for
  // babel-plugin-react-intl.
  return messageDescriptors;
}
/*
 * Copyright 2015, Yahoo Inc.
 * Copyrights licensed under the New BSD License.
 * See the accompanying LICENSE file for terms.
 */
// This is a "hack" until a proper `intl-pluralformat` package is created.


function resolveLocale(locales) {
  // IntlMessageFormat#_resolveLocale() does not depend on `this`.
  return intl_messageformat_default.a.prototype._resolveLocale(locales);
}

function findPluralFunction(locale) {
  // IntlMessageFormat#_findPluralFunction() does not depend on `this`.
  return intl_messageformat_default.a.prototype._findPluralRuleFunction(locale);
}

var IntlPluralFormat = function IntlPluralFormat(locales) {
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
  classCallCheck(this, IntlPluralFormat);
  var useOrdinal = options.style === 'ordinal';
  var pluralFn = findPluralFunction(resolveLocale(locales));

  this.format = function (value) {
    return pluralFn(value, useOrdinal);
  };
};
/*
 * Copyright 2015, Yahoo Inc.
 * Copyrights licensed under the New BSD License.
 * See the accompanying LICENSE file for terms.
 */


var DATE_TIME_FORMAT_OPTIONS = Object.keys(dateTimeFormatPropTypes);
var NUMBER_FORMAT_OPTIONS = Object.keys(numberFormatPropTypes);
var RELATIVE_FORMAT_OPTIONS = Object.keys(relativeFormatPropTypes);
var PLURAL_FORMAT_OPTIONS = Object.keys(pluralFormatPropTypes);
var RELATIVE_FORMAT_THRESHOLDS = {
  second: 60,
  // seconds to minute
  minute: 60,
  // minutes to hour
  hour: 24,
  // hours to day
  day: 30,
  // days to month
  month: 12
};

function updateRelativeFormatThresholds(newThresholds) {
  var thresholds = intl_relativeformat_default.a.thresholds;
  thresholds.second = newThresholds.second;
  thresholds.minute = newThresholds.minute;
  thresholds.hour = newThresholds.hour;
  thresholds.day = newThresholds.day;
  thresholds.month = newThresholds.month;
  thresholds['second-short'] = newThresholds['second-short'];
  thresholds['minute-short'] = newThresholds['minute-short'];
  thresholds['hour-short'] = newThresholds['hour-short'];
  thresholds['day-short'] = newThresholds['day-short'];
  thresholds['month-short'] = newThresholds['month-short'];
}

function getNamedFormat(formats, type, name, onError) {
  var format = formats && formats[type] && formats[type][name];

  if (format) {
    return format;
  }

  onError(createError('No ' + type + ' format named: ' + name));
}

function index_es_formatDate(config, state, value) {
  var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
  var locale = config.locale,
      formats = config.formats,
      timeZone = config.timeZone;
  var format = options.format;
  var onError = config.onError || defaultErrorHandler;
  var date = new Date(value);

  var defaults$$1 = _extends({}, timeZone && {
    timeZone: timeZone
  }, format && getNamedFormat(formats, 'date', format, onError));

  var filteredOptions = filterProps(options, DATE_TIME_FORMAT_OPTIONS, defaults$$1);

  try {
    return state.getDateTimeFormat(locale, filteredOptions).format(date);
  } catch (e) {
    onError(createError('Error formatting date.', e));
  }

  return String(date);
}

function index_es_formatTime(config, state, value) {
  var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
  var locale = config.locale,
      formats = config.formats,
      timeZone = config.timeZone;
  var format = options.format;
  var onError = config.onError || defaultErrorHandler;
  var date = new Date(value);

  var defaults$$1 = _extends({}, timeZone && {
    timeZone: timeZone
  }, format && getNamedFormat(formats, 'time', format, onError));

  var filteredOptions = filterProps(options, DATE_TIME_FORMAT_OPTIONS, defaults$$1);

  if (!filteredOptions.hour && !filteredOptions.minute && !filteredOptions.second) {
    // Add default formatting options if hour, minute, or second isn't defined.
    filteredOptions = _extends({}, filteredOptions, {
      hour: 'numeric',
      minute: 'numeric'
    });
  }

  try {
    return state.getDateTimeFormat(locale, filteredOptions).format(date);
  } catch (e) {
    onError(createError('Error formatting time.', e));
  }

  return String(date);
}

function index_es_formatRelative(config, state, value) {
  var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
  var locale = config.locale,
      formats = config.formats;
  var format = options.format;
  var onError = config.onError || defaultErrorHandler;
  var date = new Date(value);
  var now = new Date(options.now);
  var defaults$$1 = format && getNamedFormat(formats, 'relative', format, onError);
  var filteredOptions = filterProps(options, RELATIVE_FORMAT_OPTIONS, defaults$$1); // Capture the current threshold values, then temporarily override them with
  // specific values just for this render.

  var oldThresholds = _extends({}, intl_relativeformat_default.a.thresholds);

  updateRelativeFormatThresholds(RELATIVE_FORMAT_THRESHOLDS);

  try {
    return state.getRelativeFormat(locale, filteredOptions).format(date, {
      now: isFinite(now) ? now : state.now()
    });
  } catch (e) {
    onError(createError('Error formatting relative time.', e));
  } finally {
    updateRelativeFormatThresholds(oldThresholds);
  }

  return String(date);
}

function index_es_formatNumber(config, state, value) {
  var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
  var locale = config.locale,
      formats = config.formats;
  var format = options.format;
  var onError = config.onError || defaultErrorHandler;
  var defaults$$1 = format && getNamedFormat(formats, 'number', format, onError);
  var filteredOptions = filterProps(options, NUMBER_FORMAT_OPTIONS, defaults$$1);

  try {
    return state.getNumberFormat(locale, filteredOptions).format(value);
  } catch (e) {
    onError(createError('Error formatting number.', e));
  }

  return String(value);
}

function index_es_formatPlural(config, state, value) {
  var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
  var locale = config.locale;
  var filteredOptions = filterProps(options, PLURAL_FORMAT_OPTIONS);
  var onError = config.onError || defaultErrorHandler;

  try {
    return state.getPluralFormat(locale, filteredOptions).format(value);
  } catch (e) {
    onError(createError('Error formatting plural.', e));
  }

  return 'other';
}

function formatMessage(config, state) {
  var messageDescriptor = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
  var values = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
  var locale = config.locale,
      formats = config.formats,
      messages = config.messages,
      defaultLocale = config.defaultLocale,
      defaultFormats = config.defaultFormats;
  var id = messageDescriptor.id,
      defaultMessage = messageDescriptor.defaultMessage; // Produce a better error if the user calls `intl.formatMessage(element)`

  if (false) {} // `id` is a required field of a Message Descriptor.


  browser_default()(id, '[React Intl] An `id` must be provided to format a message.');
  var message = messages && messages[id];
  var hasValues = Object.keys(values).length > 0; // Avoid expensive message formatting for simple messages without values. In
  // development messages will always be formatted in case of missing values.

  if (!hasValues && "production" === 'production') {
    return message || defaultMessage || id;
  }

  var formattedMessage = void 0;
  var onError = config.onError || defaultErrorHandler;

  if (message) {
    try {
      var formatter = state.getMessageFormat(message, locale, formats);
      formattedMessage = formatter.format(values);
    } catch (e) {
      onError(createError('Error formatting message: "' + id + '" for locale: "' + locale + '"' + (defaultMessage ? ', using default message as fallback.' : ''), e));
    }
  } else {
    // This prevents warnings from littering the console in development
    // when no `messages` are passed into the <IntlProvider> for the
    // default locale, and a default message is in the source.
    if (!defaultMessage || locale && locale.toLowerCase() !== defaultLocale.toLowerCase()) {
      onError(createError('Missing message: "' + id + '" for locale: "' + locale + '"' + (defaultMessage ? ', using default message as fallback.' : '')));
    }
  }

  if (!formattedMessage && defaultMessage) {
    try {
      var _formatter = state.getMessageFormat(defaultMessage, defaultLocale, defaultFormats);

      formattedMessage = _formatter.format(values);
    } catch (e) {
      onError(createError('Error formatting the default message for: "' + id + '"', e));
    }
  }

  if (!formattedMessage) {
    onError(createError('Cannot format message: "' + id + '", ' + ('using message ' + (message || defaultMessage ? 'source' : 'id') + ' as fallback.')));
  }

  return formattedMessage || message || defaultMessage || id;
}

function index_es_formatHTMLMessage(config, state, messageDescriptor) {
  var rawValues = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {}; // Process all the values before they are used when formatting the ICU
  // Message string. Since the formatted message might be injected via
  // `innerHTML`, all String-based values need to be HTML-escaped.

  var escapedValues = Object.keys(rawValues).reduce(function (escaped, name) {
    var value = rawValues[name];
    escaped[name] = typeof value === 'string' ? index_es_escape(value) : value;
    return escaped;
  }, {});
  return formatMessage(config, state, messageDescriptor, escapedValues);
}

var index_es_format = Object.freeze({
  formatDate: index_es_formatDate,
  formatTime: index_es_formatTime,
  formatRelative: index_es_formatRelative,
  formatNumber: index_es_formatNumber,
  formatPlural: index_es_formatPlural,
  formatMessage: formatMessage,
  formatHTMLMessage: index_es_formatHTMLMessage
});
/*
 * Copyright 2015, Yahoo Inc.
 * Copyrights licensed under the New BSD License.
 * See the accompanying LICENSE file for terms.
 */

var intlConfigPropNames$1 = Object.keys(intlConfigPropTypes);
var intlFormatPropNames = Object.keys(intlFormatPropTypes); // These are not a static property on the `IntlProvider` class so the intl
// config values can be inherited from an <IntlProvider> ancestor.

var defaultProps = {
  formats: {},
  messages: {},
  timeZone: null,
  textComponent: 'span',
  defaultLocale: 'en',
  defaultFormats: {},
  onError: defaultErrorHandler
};

var index_es_IntlProvider = function (_Component) {
  inherits(IntlProvider, _Component);

  function IntlProvider(props) {
    var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
    classCallCheck(this, IntlProvider);

    var _this = possibleConstructorReturn(this, (IntlProvider.__proto__ || Object.getPrototypeOf(IntlProvider)).call(this, props, context));

    browser_default()(typeof Intl !== 'undefined', '[React Intl] The `Intl` APIs must be available in the runtime, ' + 'and do not appear to be built-in. An `Intl` polyfill should be loaded.\n' + 'See: http://formatjs.io/guides/runtime-environments/');
    var intlContext = context.intl; // Used to stabilize time when performing an initial rendering so that
    // all relative times use the same reference "now" time.

    var initialNow = void 0;

    if (isFinite(props.initialNow)) {
      initialNow = Number(props.initialNow);
    } else {
      // When an `initialNow` isn't provided via `props`, look to see an
      // <IntlProvider> exists in the ancestry and call its `now()`
      // function to propagate its value for "now".
      initialNow = intlContext ? intlContext.now() : Date.now();
    } // Creating `Intl*` formatters is expensive. If there's a parent
    // `<IntlProvider>`, then its formatters will be used. Otherwise, this
    // memoize the `Intl*` constructors and cache them for the lifecycle of
    // this IntlProvider instance.


    var _ref = intlContext || {},
        _ref$formatters = _ref.formatters,
        formatters = _ref$formatters === undefined ? {
      getDateTimeFormat: lib(Intl.DateTimeFormat),
      getNumberFormat: lib(Intl.NumberFormat),
      getMessageFormat: lib(intl_messageformat_default.a),
      getRelativeFormat: lib(intl_relativeformat_default.a),
      getPluralFormat: lib(IntlPluralFormat)
    } : _ref$formatters;

    _this.state = _extends({}, formatters, {
      // Wrapper to provide stable "now" time for initial render.
      now: function now() {
        return _this._didDisplay ? Date.now() : initialNow;
      }
    });
    return _this;
  }

  createClass(IntlProvider, [{
    key: 'getConfig',
    value: function getConfig() {
      var intlContext = this.context.intl; // Build a whitelisted config object from `props`, defaults, and
      // `context.intl`, if an <IntlProvider> exists in the ancestry.

      var config = filterProps(this.props, intlConfigPropNames$1, intlContext); // Apply default props. This must be applied last after the props have
      // been resolved and inherited from any <IntlProvider> in the ancestry.
      // This matches how React resolves `defaultProps`.

      for (var propName in defaultProps) {
        if (config[propName] === undefined) {
          config[propName] = defaultProps[propName];
        }
      }

      if (!hasLocaleData(config.locale)) {
        var _config = config,
            locale = _config.locale,
            defaultLocale = _config.defaultLocale,
            defaultFormats = _config.defaultFormats,
            onError = _config.onError;
        onError(createError('Missing locale data for locale: "' + locale + '". ' + ('Using default locale: "' + defaultLocale + '" as fallback.'))); // Since there's no registered locale data for `locale`, this will
        // fallback to the `defaultLocale` to make sure things can render.
        // The `messages` are overridden to the `defaultProps` empty object
        // to maintain referential equality across re-renders. It's assumed
        // each <FormattedMessage> contains a `defaultMessage` prop.

        config = _extends({}, config, {
          locale: defaultLocale,
          formats: defaultFormats,
          messages: defaultProps.messages
        });
      }

      return config;
    }
  }, {
    key: 'getBoundFormatFns',
    value: function getBoundFormatFns(config, state) {
      return intlFormatPropNames.reduce(function (boundFormatFns, name) {
        boundFormatFns[name] = index_es_format[name].bind(null, config, state);
        return boundFormatFns;
      }, {});
    }
  }, {
    key: 'getChildContext',
    value: function getChildContext() {
      var config = this.getConfig(); // Bind intl factories and current config to the format functions.

      var boundFormatFns = this.getBoundFormatFns(config, this.state);
      var _state = this.state,
          now = _state.now,
          formatters = objectWithoutProperties(_state, ['now']);
      return {
        intl: _extends({}, config, boundFormatFns, {
          formatters: formatters,
          now: now
        })
      };
    }
  }, {
    key: 'shouldComponentUpdate',
    value: function shouldComponentUpdate() {
      for (var _len = arguments.length, next = Array(_len), _key = 0; _key < _len; _key++) {
        next[_key] = arguments[_key];
      }

      return shouldIntlComponentUpdate.apply(undefined, [this].concat(next));
    }
  }, {
    key: 'componentDidMount',
    value: function componentDidMount() {
      this._didDisplay = true;
    }
  }, {
    key: 'render',
    value: function render() {
      return react["Children"].only(this.props.children);
    }
  }]);
  return IntlProvider;
}(react["Component"]);

index_es_IntlProvider.displayName = 'IntlProvider';
index_es_IntlProvider.contextTypes = {
  intl: intlShape
};
index_es_IntlProvider.childContextTypes = {
  intl: intlShape.isRequired
};
 false ? undefined : void 0;
/*
 * Copyright 2015, Yahoo Inc.
 * Copyrights licensed under the New BSD License.
 * See the accompanying LICENSE file for terms.
 */

var index_es_FormattedDate = function (_Component) {
  inherits(FormattedDate, _Component);

  function FormattedDate(props, context) {
    classCallCheck(this, FormattedDate);

    var _this = possibleConstructorReturn(this, (FormattedDate.__proto__ || Object.getPrototypeOf(FormattedDate)).call(this, props, context));

    invariantIntlContext(context);
    return _this;
  }

  createClass(FormattedDate, [{
    key: 'shouldComponentUpdate',
    value: function shouldComponentUpdate() {
      for (var _len = arguments.length, next = Array(_len), _key = 0; _key < _len; _key++) {
        next[_key] = arguments[_key];
      }

      return shouldIntlComponentUpdate.apply(undefined, [this].concat(next));
    }
  }, {
    key: 'render',
    value: function render() {
      var _context$intl = this.context.intl,
          formatDate = _context$intl.formatDate,
          Text = _context$intl.textComponent;
      var _props = this.props,
          value = _props.value,
          children = _props.children;
      var formattedDate = formatDate(value, this.props);

      if (typeof children === 'function') {
        return children(formattedDate);
      }

      return react_default.a.createElement(Text, null, formattedDate);
    }
  }]);
  return FormattedDate;
}(react["Component"]);

index_es_FormattedDate.displayName = 'FormattedDate';
index_es_FormattedDate.contextTypes = {
  intl: intlShape
};
 false ? undefined : void 0;
/*
 * Copyright 2015, Yahoo Inc.
 * Copyrights licensed under the New BSD License.
 * See the accompanying LICENSE file for terms.
 */

var index_es_FormattedTime = function (_Component) {
  inherits(FormattedTime, _Component);

  function FormattedTime(props, context) {
    classCallCheck(this, FormattedTime);

    var _this = possibleConstructorReturn(this, (FormattedTime.__proto__ || Object.getPrototypeOf(FormattedTime)).call(this, props, context));

    invariantIntlContext(context);
    return _this;
  }

  createClass(FormattedTime, [{
    key: 'shouldComponentUpdate',
    value: function shouldComponentUpdate() {
      for (var _len = arguments.length, next = Array(_len), _key = 0; _key < _len; _key++) {
        next[_key] = arguments[_key];
      }

      return shouldIntlComponentUpdate.apply(undefined, [this].concat(next));
    }
  }, {
    key: 'render',
    value: function render() {
      var _context$intl = this.context.intl,
          formatTime = _context$intl.formatTime,
          Text = _context$intl.textComponent;
      var _props = this.props,
          value = _props.value,
          children = _props.children;
      var formattedTime = formatTime(value, this.props);

      if (typeof children === 'function') {
        return children(formattedTime);
      }

      return react_default.a.createElement(Text, null, formattedTime);
    }
  }]);
  return FormattedTime;
}(react["Component"]);

index_es_FormattedTime.displayName = 'FormattedTime';
index_es_FormattedTime.contextTypes = {
  intl: intlShape
};
 false ? undefined : void 0;
/*
 * Copyright 2015, Yahoo Inc.
 * Copyrights licensed under the New BSD License.
 * See the accompanying LICENSE file for terms.
 */

var SECOND = 1000;
var MINUTE = 1000 * 60;
var HOUR = 1000 * 60 * 60;
var DAY = 1000 * 60 * 60 * 24; // The maximum timer delay value is a 32-bit signed integer.
// See: https://mdn.io/setTimeout

var MAX_TIMER_DELAY = 2147483647;

function selectUnits(delta) {
  var absDelta = Math.abs(delta);

  if (absDelta < MINUTE) {
    return 'second';
  }

  if (absDelta < HOUR) {
    return 'minute';
  }

  if (absDelta < DAY) {
    return 'hour';
  } // The maximum scheduled delay will be measured in days since the maximum
  // timer delay is less than the number of milliseconds in 25 days.


  return 'day';
}

function getUnitDelay(units) {
  switch (units) {
    case 'second':
      return SECOND;

    case 'minute':
      return MINUTE;

    case 'hour':
      return HOUR;

    case 'day':
      return DAY;

    default:
      return MAX_TIMER_DELAY;
  }
}

function isSameDate(a, b) {
  if (a === b) {
    return true;
  }

  var aTime = new Date(a).getTime();
  var bTime = new Date(b).getTime();
  return isFinite(aTime) && isFinite(bTime) && aTime === bTime;
}

var index_es_FormattedRelative = function (_Component) {
  inherits(FormattedRelative, _Component);

  function FormattedRelative(props, context) {
    classCallCheck(this, FormattedRelative);

    var _this = possibleConstructorReturn(this, (FormattedRelative.__proto__ || Object.getPrototypeOf(FormattedRelative)).call(this, props, context));

    invariantIntlContext(context);
    var now = isFinite(props.initialNow) ? Number(props.initialNow) : context.intl.now(); // `now` is stored as state so that `render()` remains a function of
    // props + state, instead of accessing `Date.now()` inside `render()`.

    _this.state = {
      now: now
    };
    return _this;
  }

  createClass(FormattedRelative, [{
    key: 'scheduleNextUpdate',
    value: function scheduleNextUpdate(props, state) {
      var _this2 = this; // Cancel and pending update because we're scheduling a new update.


      clearTimeout(this._timer);
      var value = props.value,
          units = props.units,
          updateInterval = props.updateInterval;
      var time = new Date(value).getTime(); // If the `updateInterval` is falsy, including `0` or we don't have a
      // valid date, then auto updates have been turned off, so we bail and
      // skip scheduling an update.

      if (!updateInterval || !isFinite(time)) {
        return;
      }

      var delta = time - state.now;
      var unitDelay = getUnitDelay(units || selectUnits(delta));
      var unitRemainder = Math.abs(delta % unitDelay); // We want the largest possible timer delay which will still display
      // accurate information while reducing unnecessary re-renders. The delay
      // should be until the next "interesting" moment, like a tick from
      // "1 minute ago" to "2 minutes ago" when the delta is 120,000ms.

      var delay = delta < 0 ? Math.max(updateInterval, unitDelay - unitRemainder) : Math.max(updateInterval, unitRemainder);
      this._timer = setTimeout(function () {
        _this2.setState({
          now: _this2.context.intl.now()
        });
      }, delay);
    }
  }, {
    key: 'componentDidMount',
    value: function componentDidMount() {
      this.scheduleNextUpdate(this.props, this.state);
    }
  }, {
    key: 'componentWillReceiveProps',
    value: function componentWillReceiveProps(_ref) {
      var nextValue = _ref.value; // When the `props.value` date changes, `state.now` needs to be updated,
      // and the next update can be rescheduled.

      if (!isSameDate(nextValue, this.props.value)) {
        this.setState({
          now: this.context.intl.now()
        });
      }
    }
  }, {
    key: 'shouldComponentUpdate',
    value: function shouldComponentUpdate() {
      for (var _len = arguments.length, next = Array(_len), _key = 0; _key < _len; _key++) {
        next[_key] = arguments[_key];
      }

      return shouldIntlComponentUpdate.apply(undefined, [this].concat(next));
    }
  }, {
    key: 'componentWillUpdate',
    value: function componentWillUpdate(nextProps, nextState) {
      this.scheduleNextUpdate(nextProps, nextState);
    }
  }, {
    key: 'componentWillUnmount',
    value: function componentWillUnmount() {
      clearTimeout(this._timer);
    }
  }, {
    key: 'render',
    value: function render() {
      var _context$intl = this.context.intl,
          formatRelative = _context$intl.formatRelative,
          Text = _context$intl.textComponent;
      var _props = this.props,
          value = _props.value,
          children = _props.children;
      var formattedRelative = formatRelative(value, _extends({}, this.props, this.state));

      if (typeof children === 'function') {
        return children(formattedRelative);
      }

      return react_default.a.createElement(Text, null, formattedRelative);
    }
  }]);
  return FormattedRelative;
}(react["Component"]);

index_es_FormattedRelative.displayName = 'FormattedRelative';
index_es_FormattedRelative.contextTypes = {
  intl: intlShape
};
index_es_FormattedRelative.defaultProps = {
  updateInterval: 1000 * 10
};
 false ? undefined : void 0;
/*
 * Copyright 2015, Yahoo Inc.
 * Copyrights licensed under the New BSD License.
 * See the accompanying LICENSE file for terms.
 */

var index_es_FormattedNumber = function (_Component) {
  inherits(FormattedNumber, _Component);

  function FormattedNumber(props, context) {
    classCallCheck(this, FormattedNumber);

    var _this = possibleConstructorReturn(this, (FormattedNumber.__proto__ || Object.getPrototypeOf(FormattedNumber)).call(this, props, context));

    invariantIntlContext(context);
    return _this;
  }

  createClass(FormattedNumber, [{
    key: 'shouldComponentUpdate',
    value: function shouldComponentUpdate() {
      for (var _len = arguments.length, next = Array(_len), _key = 0; _key < _len; _key++) {
        next[_key] = arguments[_key];
      }

      return shouldIntlComponentUpdate.apply(undefined, [this].concat(next));
    }
  }, {
    key: 'render',
    value: function render() {
      var _context$intl = this.context.intl,
          formatNumber = _context$intl.formatNumber,
          Text = _context$intl.textComponent;
      var _props = this.props,
          value = _props.value,
          children = _props.children;
      var formattedNumber = formatNumber(value, this.props);

      if (typeof children === 'function') {
        return children(formattedNumber);
      }

      return react_default.a.createElement(Text, null, formattedNumber);
    }
  }]);
  return FormattedNumber;
}(react["Component"]);

index_es_FormattedNumber.displayName = 'FormattedNumber';
index_es_FormattedNumber.contextTypes = {
  intl: intlShape
};
 false ? undefined : void 0;
/*
 * Copyright 2015, Yahoo Inc.
 * Copyrights licensed under the New BSD License.
 * See the accompanying LICENSE file for terms.
 */

var index_es_FormattedPlural = function (_Component) {
  inherits(FormattedPlural, _Component);

  function FormattedPlural(props, context) {
    classCallCheck(this, FormattedPlural);

    var _this = possibleConstructorReturn(this, (FormattedPlural.__proto__ || Object.getPrototypeOf(FormattedPlural)).call(this, props, context));

    invariantIntlContext(context);
    return _this;
  }

  createClass(FormattedPlural, [{
    key: 'shouldComponentUpdate',
    value: function shouldComponentUpdate() {
      for (var _len = arguments.length, next = Array(_len), _key = 0; _key < _len; _key++) {
        next[_key] = arguments[_key];
      }

      return shouldIntlComponentUpdate.apply(undefined, [this].concat(next));
    }
  }, {
    key: 'render',
    value: function render() {
      var _context$intl = this.context.intl,
          formatPlural = _context$intl.formatPlural,
          Text = _context$intl.textComponent;
      var _props = this.props,
          value = _props.value,
          other = _props.other,
          children = _props.children;
      var pluralCategory = formatPlural(value, this.props);
      var formattedPlural = this.props[pluralCategory] || other;

      if (typeof children === 'function') {
        return children(formattedPlural);
      }

      return react_default.a.createElement(Text, null, formattedPlural);
    }
  }]);
  return FormattedPlural;
}(react["Component"]);

index_es_FormattedPlural.displayName = 'FormattedPlural';
index_es_FormattedPlural.contextTypes = {
  intl: intlShape
};
index_es_FormattedPlural.defaultProps = {
  style: 'cardinal'
};
 false ? undefined : void 0;
/*
 * Copyright 2015, Yahoo Inc.
 * Copyrights licensed under the New BSD License.
 * See the accompanying LICENSE file for terms.
 */

var index_es_defaultFormatMessage = function defaultFormatMessage(descriptor, values) {
  if (false) {}

  return formatMessage({}, {
    getMessageFormat: lib(intl_messageformat_default.a)
  }, descriptor, values);
};

var index_es_FormattedMessage = function (_Component) {
  inherits(FormattedMessage, _Component);

  function FormattedMessage(props, context) {
    classCallCheck(this, FormattedMessage);

    var _this = possibleConstructorReturn(this, (FormattedMessage.__proto__ || Object.getPrototypeOf(FormattedMessage)).call(this, props, context));

    if (!props.defaultMessage) {
      invariantIntlContext(context);
    }

    return _this;
  }

  createClass(FormattedMessage, [{
    key: 'shouldComponentUpdate',
    value: function shouldComponentUpdate(nextProps) {
      var values = this.props.values;
      var nextValues = nextProps.values;

      if (!shallowEquals(nextValues, values)) {
        return true;
      } // Since `values` has already been checked, we know they're not
      // different, so the current `values` are carried over so the shallow
      // equals comparison on the other props isn't affected by the `values`.


      var nextPropsToCheck = _extends({}, nextProps, {
        values: values
      });

      for (var _len = arguments.length, next = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
        next[_key - 1] = arguments[_key];
      }

      return shouldIntlComponentUpdate.apply(undefined, [this, nextPropsToCheck].concat(next));
    }
  }, {
    key: 'render',
    value: function render() {
      var _ref = this.context.intl || {},
          _ref$formatMessage = _ref.formatMessage,
          formatMessage$$1 = _ref$formatMessage === undefined ? index_es_defaultFormatMessage : _ref$formatMessage,
          _ref$textComponent = _ref.textComponent,
          Text = _ref$textComponent === undefined ? 'span' : _ref$textComponent;

      var _props = this.props,
          id = _props.id,
          description = _props.description,
          defaultMessage = _props.defaultMessage,
          values = _props.values,
          _props$tagName = _props.tagName,
          Component$$1 = _props$tagName === undefined ? Text : _props$tagName,
          children = _props.children;
      var tokenDelimiter = void 0;
      var tokenizedValues = void 0;
      var elements = void 0;
      var hasValues = values && Object.keys(values).length > 0;

      if (hasValues) {
        // Creates a token with a random UID that should not be guessable or
        // conflict with other parts of the `message` string.
        var uid = Math.floor(Math.random() * 0x10000000000).toString(16);

        var generateToken = function () {
          var counter = 0;
          return function () {
            return 'ELEMENT-' + uid + '-' + (counter += 1);
          };
        }(); // Splitting with a delimiter to support IE8. When using a regex
        // with a capture group IE8 does not include the capture group in
        // the resulting array.


        tokenDelimiter = '@__' + uid + '__@';
        tokenizedValues = {};
        elements = {}; // Iterates over the `props` to keep track of any React Element
        // values so they can be represented by the `token` as a placeholder
        // when the `message` is formatted. This allows the formatted
        // message to then be broken-up into parts with references to the
        // React Elements inserted back in.

        Object.keys(values).forEach(function (name) {
          var value = values[name];

          if (Object(react["isValidElement"])(value)) {
            var token = generateToken();
            tokenizedValues[name] = tokenDelimiter + token + tokenDelimiter;
            elements[token] = value;
          } else {
            tokenizedValues[name] = value;
          }
        });
      }

      var descriptor = {
        id: id,
        description: description,
        defaultMessage: defaultMessage
      };
      var formattedMessage = formatMessage$$1(descriptor, tokenizedValues || values);
      var nodes = void 0;
      var hasElements = elements && Object.keys(elements).length > 0;

      if (hasElements) {
        // Split the message into parts so the React Element values captured
        // above can be inserted back into the rendered message. This
        // approach allows messages to render with React Elements while
        // keeping React's virtual diffing working properly.
        nodes = formattedMessage.split(tokenDelimiter).filter(function (part) {
          return !!part;
        }).map(function (part) {
          return elements[part] || part;
        });
      } else {
        nodes = [formattedMessage];
      }

      if (typeof children === 'function') {
        return children.apply(undefined, toConsumableArray(nodes));
      } // Needs to use `createElement()` instead of JSX, otherwise React will
      // warn about a missing `key` prop with rich-text message formatting.


      return react["createElement"].apply(undefined, [Component$$1, null].concat(toConsumableArray(nodes)));
    }
  }]);
  return FormattedMessage;
}(react["Component"]);

index_es_FormattedMessage.displayName = 'FormattedMessage';
index_es_FormattedMessage.contextTypes = {
  intl: intlShape
};
index_es_FormattedMessage.defaultProps = {
  values: {}
};
 false ? undefined : void 0;
/*
 * Copyright 2015, Yahoo Inc.
 * Copyrights licensed under the New BSD License.
 * See the accompanying LICENSE file for terms.
 */

var index_es_FormattedHTMLMessage = function (_Component) {
  inherits(FormattedHTMLMessage, _Component);

  function FormattedHTMLMessage(props, context) {
    classCallCheck(this, FormattedHTMLMessage);

    var _this = possibleConstructorReturn(this, (FormattedHTMLMessage.__proto__ || Object.getPrototypeOf(FormattedHTMLMessage)).call(this, props, context));

    invariantIntlContext(context);
    return _this;
  }

  createClass(FormattedHTMLMessage, [{
    key: 'shouldComponentUpdate',
    value: function shouldComponentUpdate(nextProps) {
      var values = this.props.values;
      var nextValues = nextProps.values;

      if (!shallowEquals(nextValues, values)) {
        return true;
      } // Since `values` has already been checked, we know they're not
      // different, so the current `values` are carried over so the shallow
      // equals comparison on the other props isn't affected by the `values`.


      var nextPropsToCheck = _extends({}, nextProps, {
        values: values
      });

      for (var _len = arguments.length, next = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
        next[_key - 1] = arguments[_key];
      }

      return shouldIntlComponentUpdate.apply(undefined, [this, nextPropsToCheck].concat(next));
    }
  }, {
    key: 'render',
    value: function render() {
      var _context$intl = this.context.intl,
          formatHTMLMessage = _context$intl.formatHTMLMessage,
          Text = _context$intl.textComponent;
      var _props = this.props,
          id = _props.id,
          description = _props.description,
          defaultMessage = _props.defaultMessage,
          rawValues = _props.values,
          _props$tagName = _props.tagName,
          Component$$1 = _props$tagName === undefined ? Text : _props$tagName,
          children = _props.children;
      var descriptor = {
        id: id,
        description: description,
        defaultMessage: defaultMessage
      };
      var formattedHTMLMessage = formatHTMLMessage(descriptor, rawValues);

      if (typeof children === 'function') {
        return children(formattedHTMLMessage);
      } // Since the message presumably has HTML in it, we need to set
      // `innerHTML` in order for it to be rendered and not escaped by React.
      // To be safe, all string prop values were escaped when formatting the
      // message. It is assumed that the message is not UGC, and came from the
      // developer making it more like a template.
      //
      // Note: There's a perf impact of using this component since there's no
      // way for React to do its virtual DOM diffing.


      var html = {
        __html: formattedHTMLMessage
      };
      return react_default.a.createElement(Component$$1, {
        dangerouslySetInnerHTML: html
      });
    }
  }]);
  return FormattedHTMLMessage;
}(react["Component"]);

index_es_FormattedHTMLMessage.displayName = 'FormattedHTMLMessage';
index_es_FormattedHTMLMessage.contextTypes = {
  intl: intlShape
};
index_es_FormattedHTMLMessage.defaultProps = {
  values: {}
};
 false ? undefined : void 0;
/*
 * Copyright 2015, Yahoo Inc.
 * Copyrights licensed under the New BSD License.
 * See the accompanying LICENSE file for terms.
 */

addLocaleData(defaultLocaleData);
/*
 * Copyright 2015, Yahoo Inc.
 * Copyrights licensed under the New BSD License.
 * See the accompanying LICENSE file for terms.
 */

addLocaleData(locale_data_ignored_default.a);


/***/ }),

/***/ "VJ0h":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _createClass = function () {
  function defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i];
      descriptor.enumerable = descriptor.enumerable || false;
      descriptor.configurable = true;
      if ("value" in descriptor) descriptor.writable = true;
      Object.defineProperty(target, descriptor.key, descriptor);
    }
  }

  return function (Constructor, protoProps, staticProps) {
    if (protoProps) defineProperties(Constructor.prototype, protoProps);
    if (staticProps) defineProperties(Constructor, staticProps);
    return Constructor;
  };
}();

exports.default = function (controllerKey) {
  return function Component(WrappedComponent) {
    return function (_React$Component) {
      _inherits(DecoratedComponent, _React$Component);
      /**
       * constructor - bind passed down methods and set init state
       * @param {Object} props [description]
       */


      function DecoratedComponent(props) {
        _classCallCheck(this, DecoratedComponent);

        var _this = _possibleConstructorReturn(this, (DecoratedComponent.__proto__ || Object.getPrototypeOf(DecoratedComponent)).call(this, props));

        _this.handleWrappedRef = _this.handleWrappedRef.bind(_this);
        return _this;
      }
      /**
       * Provides access to the wrapped component
       * @returns {ReactElement} wrapped component
       */


      _createClass(DecoratedComponent, [{
        key: 'getWrappedInstance',
        value: function getWrappedInstance() {
          return this._wrappedRef;
        }
        /**
         * Gets ref for the wrapped component
         * @param {ReactComponent} ref - the raw input component
         * @return {undefined}
         */

      }, {
        key: 'handleWrappedRef',
        value: function handleWrappedRef(ref) {
          this._wrappedRef = ref;
        }
        /**
         * Lifecycle method for render
         * @returns {ReactElement} markup
         */

      }, {
        key: 'render',
        value: function render() {
          var _this2 = this;

          return _react2.default.createElement(_context.IngestContext.Consumer, null, function (ccxIngest) {
            var ccxIngestResult = void 0;

            if (controllerKey && ccxIngest && ccxIngest[controllerKey]) {
              ccxIngestResult = ccxIngest[controllerKey];
            } else {
              ccxIngestResult = ccxIngest;
            }

            return _react2.default.createElement(WrappedComponent, _extends({
              ref: _this2.handleWrappedRef
            }, _this2.props, {
              ccxIngest: ccxIngestResult
            }));
          });
        }
      }]);

      return DecoratedComponent;
    }(_react2.default.Component);
  };
};

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

var _context = __webpack_require__("ld/C");

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _classCallCheck(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}

function _possibleConstructorReturn(self, call) {
  if (!self) {
    throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
  }

  return call && (typeof call === "object" || typeof call === "function") ? call : self;
}

function _inherits(subClass, superClass) {
  if (typeof superClass !== "function" && superClass !== null) {
    throw new TypeError("Super expression must either be null or a function, not " + typeof superClass);
  }

  subClass.prototype = Object.create(superClass && superClass.prototype, {
    constructor: {
      value: subClass,
      enumerable: false,
      writable: true,
      configurable: true
    }
  });
  if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;
}
/**
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe. All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe Inc. and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe Inc.
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Inc.
 */

/**
 * Decorator for ccxIngest
 * @param {string} controllerKey - key that will be used to return controller instance
 * @returns {object} decorated component
 */

/***/ }),

/***/ "VJsP":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var ctx = __webpack_require__("2GTP");

var $export = __webpack_require__("Y7ZC");

var toObject = __webpack_require__("JB68");

var call = __webpack_require__("sNwI");

var isArrayIter = __webpack_require__("NwJ3");

var toLength = __webpack_require__("tEej");

var createProperty = __webpack_require__("IP1Z");

var getIterFn = __webpack_require__("fNZA");

$export($export.S + $export.F * !__webpack_require__("TuGD")(function (iter) {
  Array.from(iter);
}), 'Array', {
  // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)
  from: function from(arrayLike
  /* , mapfn = undefined, thisArg = undefined */
  ) {
    var O = toObject(arrayLike);
    var C = typeof this == 'function' ? this : Array;
    var aLen = arguments.length;
    var mapfn = aLen > 1 ? arguments[1] : undefined;
    var mapping = mapfn !== undefined;
    var index = 0;
    var iterFn = getIterFn(O);
    var length, result, step, iterator;
    if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2); // if object isn't iterable or it's array with default iterator - use simple case

    if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {
      for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {
        createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);
      }
    } else {
      length = toLength(O.length);

      for (result = new C(length); length > index; index++) {
        createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);
      }
    }

    result.length = index;
    return result;
  }
});

/***/ }),

/***/ "VKFn":
/***/ (function(module, exports, __webpack_require__) {

__webpack_require__("bBy9");

__webpack_require__("FlQf");

module.exports = __webpack_require__("ldVq");

/***/ }),

/***/ "VKd2":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.isValidUrl = isValidUrl;
exports.getUrlPath = getUrlPath;
exports.encodeURIComponentEachSubdomain = encodeURIComponentEachSubdomain;
exports.encodeURIComponentCCStorageUrl = encodeURIComponentCCStorageUrl;
exports.responseHandler = responseHandler;
exports.InstanceCreator = InstanceCreator;

__webpack_require__("T1qB");
/**
 * isValidUrl - url validator regex
 * @param  {String} [value=''] - string to test if is in correct formate
 * @return {Boolean}           - result of check
 */


function isValidUrl() {
  var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
  return /((([A-Za-z]{3,9}:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+|(?:www.|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+~%\/.\w-_ ]*)?\??(?:[-\+=&;%@.\w_]*)#?(?:[\w]*))?)/.test(value);
}
/**
 * getUrlPath - get the URL path without the host name. e.g. 'http://www.adobe.com/this/is/the/path#$%^' will return 'this/is/the/path#$%^'
 * @param  {String} [value=''] - url string to extract the path from
 * @return {String}            - the path of the url string. If the passed in string is not a valid url, the same string will be returned.
 */

/**
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 */


function getUrlPath(value) {
  if (isValidUrl(value)) {
    var origin = new URL(value).origin; // Gets the `http://www.adobe.com` part

    var urlPath = value.substring(origin.length); // urlPath is the rest, including any special characters. i.e. /this/is/the/path#$%^

    return urlPath.charAt(0) === '/' ? urlPath.substring(1) : urlPath;
  } else {
    return value;
  }
}
/**
 * encodeURIComponentEachSubdomain
 * @param  {String} string - string to encode
 * @return {String} - that has encodeURIComponent but leaving the '/' intact
 */


function encodeURIComponentEachSubdomain(string) {
  if (string) {
    return string.split('/').map(encodeURIComponent).join('/');
  }

  return string;
}
/**
 * encodeURIComponentCCStorageUrl
 * @param  {String} string - string to encode
 * @return {String} - that is encoded safely to be put into the body
 */


function encodeURIComponentCCStorageUrl(string) {
  if (isValidUrl(string)) {
    var origin = new URL(string).origin; // Gets the `http://www.adobe.com` part

    var urlPath = string.substring(origin.length); // gets the rest

    return origin + encodeURIComponentEachSubdomain(urlPath);
  }

  return string;
}
/**
 * responseHandler - handles normalizing response based on status number
 * @param  {Response} response - raw fetch response object, will be normalized and return in all cases except 500.
 * @return {?Object}          [description]
 */


function responseHandler(response) {
  if (response.status === 500) {
    return {
      error: response,
      status: 500
    };
  }

  return response.json();
}
/**
 * @param  {Class} ServiceClass - Class to be created and returned.
 * @param  {Object} InstanceConfig - reference to module instance singlton and params;
 * @return {Function} - function used for getting instance of singleton or new class instance
 */


function InstanceCreator(ServiceClass, InstanceConfig) {
  function Instance(params) {
    // RETURN SINGLETON
    var instance = InstanceConfig.instance,
        instanceParams = InstanceConfig.params;

    if (!params && instance) {
      return instance;
    } // RETURN NEW INSTANCE IF WAS CALLED WITH NEW PARAMS


    if (params && instance) {
      InstanceConfig.params = params;
      InstanceConfig.instance = new ServiceClass(params);
      return InstanceConfig.instance;
    }

    if (!instanceParams && !params) {
      throw new Error('Service Class is not configured.');
    }

    InstanceConfig.params = params || instanceParams;
    InstanceConfig.instance = new ServiceClass(InstanceConfig.params);
    return InstanceConfig.instance;
  } // ONLY CALL CONFIGURE IF YOU WANT A SINGLETON RETURNED


  Instance.configure = function (params) {
    InstanceConfig.params = params;
  };

  return Instance;
}

/***/ }),

/***/ "VOcB":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


function replaceClassName(origClass, classToRemove) {
  return origClass.replace(new RegExp('(^|\\s)' + classToRemove + '(?:\\s|$)', 'g'), '$1').replace(/\s+/g, ' ').replace(/^\s*|\s*$/g, '');
}

module.exports = function removeClass(element, className) {
  if (element.classList) element.classList.remove(className);else if (typeof element.className === 'string') element.className = replaceClassName(element.className, className);else element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className));
};

/***/ }),

/***/ "VQdv":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("Q+5J"),
      24: __webpack_require__("ol2I")
    }
  }));
};

WrappedIcon.displayName = 'Alert';
exports.default = WrappedIcon;

/***/ }),

/***/ "VTDZ":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("IPox"),
      24: __webpack_require__("W+dh")
    }
  }));
};

WrappedIcon.displayName = 'History';
exports.default = WrappedIcon;

/***/ }),

/***/ "VUR+":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _createClass = function () {
  function defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i];
      descriptor.enumerable = descriptor.enumerable || false;
      descriptor.configurable = true;
      if ("value" in descriptor) descriptor.writable = true;
      Object.defineProperty(target, descriptor.key, descriptor);
    }
  }

  return function (Constructor, protoProps, staticProps) {
    if (protoProps) defineProperties(Constructor.prototype, protoProps);
    if (staticProps) defineProperties(Constructor, staticProps);
    return Constructor;
  };
}();

var _DAO2 = __webpack_require__("io2S");

var _DAO3 = _interopRequireDefault(_DAO2);

var _utils = __webpack_require__("VKd2");

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _classCallCheck(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}

function _possibleConstructorReturn(self, call) {
  if (!self) {
    throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
  }

  return call && (typeof call === "object" || typeof call === "function") ? call : self;
}

function _inherits(subClass, superClass) {
  if (typeof superClass !== "function" && superClass !== null) {
    throw new TypeError("Super expression must either be null or a function, not " + typeof superClass);
  }

  subClass.prototype = Object.create(superClass && superClass.prototype, {
    constructor: {
      value: subClass,
      enumerable: false,
      writable: true,
      configurable: true
    }
  });
  if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;
}
/**
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 */


var InstanceConfig = {};
/**
 * The CollaborationService class handles listing collaboration data (i.e. collaborators and invitations) for a specific resource.
 */

var CollaborationService = function (_DAO) {
  _inherits(CollaborationService, _DAO);

  function CollaborationService() {
    _classCallCheck(this, CollaborationService);

    return _possibleConstructorReturn(this, (CollaborationService.__proto__ || Object.getPrototypeOf(CollaborationService)).apply(this, arguments));
  }

  _createClass(CollaborationService, [{
    key: 'get',

    /**
     * Get collaborations for the user.
     * @param {String} resourceUrl - CC Storage path (path based or ID-based)
     * @returns {Promise}
     */
    value: function get(resourceUrl) {
      if (resourceUrl && resourceUrl.trim() !== '') {
        return Client.instance.fetch('collaboration.get', '/collaboration/' + (0, _utils.getUrlPath)(resourceUrl));
      }
    }
  }]);

  return CollaborationService;
}(_DAO3.default);

exports.default = (0, _utils.InstanceCreator)(CollaborationService, InstanceConfig);
module.exports = exports['default'];

/***/ }),

/***/ "VVlx":
/***/ (function(module, exports, __webpack_require__) {

var shared = __webpack_require__("29s/")('keys');

var uid = __webpack_require__("YqAc");

module.exports = function (key) {
  return shared[key] || (shared[key] = uid(key));
};

/***/ }),

/***/ "VXw4":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

/*************************************************************************
* ADOBE CONFIDENTIAL
* ___________________
*
* Copyright 2019 Adobe
* All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains
* the property of Adobe and its suppliers, if any. The intellectual
* and technical concepts contained herein are proprietary to Adobe
* and its suppliers and are protected by all applicable intellectual
* property laws, including trade secret and copyright laws.
* Dissemination of this information or reproduction of this material
* is strictly forbidden unless prior written permission is obtained
* from Adobe.
**************************************************************************/

module.exports = __webpack_require__("sy2j");

/***/ }),

/***/ "VZGw":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXTERNAL MODULE: ./src/applications/index.tsx + 7 modules
var applications = __webpack_require__("3UBC");

// EXTERNAL MODULE: ./src/js/start/stores/MainStore.tsx + 3 modules
var MainStore = __webpack_require__("cCFZ");

// EXTERNAL MODULE: ./node_modules/react-intl-cdo/lib/index.es.js + 1 modules
var index_es = __webpack_require__("VIzJ");

// CONCATENATED MODULE: ./src/js/iaw/goURL.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
/* harmony default export */ var goURL = ({
    common: {
        cs_CZ: 'cz',
        da_DK: 'dk',
        en_US: 'en',
        ja_JP: 'jp',
        fr_FR: 'fr',
        de_DE: 'de',
        en_AU: 'au',
        en_BE: 'en',
        en_GB: 'en',
        en_AE: 'ae',
        en_IL: 'il',
        fr_BE: 'fr',
        en_CA: 'en',
        fr_CA: 'fr',
        de_CH: 'de',
        fr_CH: 'fr',
        en_CY: 'en',
        en_GR: 'en',
        en_HK: 'en',
        es_ES: 'es',
        es_MX: 'mx',
        fi_FI: 'fi',
        fr_MA: 'fr',
        hu_HU: 'hu',
        it_IT: 'it',
        ko_KR: 'kr',
        nb_NO: 'no',
        nl_NL: 'nl',
        pl_PL: 'pl',
        pt_BR: 'br',
        ru_RU: 'ru',
        sv_SE: 'se',
        tr_TR: 'tr',
        uk_UA: 'ua',
        zh_CN: 'cn',
        zh_TW: 'tw',
    },
    account: {
        ja_JP: 'ja',
        en_AU: 'en',
    },
});

// EXTERNAL MODULE: ./src/components-start/performance.tsx
var performance = __webpack_require__("r1jx");

// CONCATENATED MODULE: ./src/js/iaw/i18n.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
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;
};
var __metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};





/**
 * Module container for holding the internationalization tables (I18N).
 */
class i18n_I18N {
    async init() {
        let locale = applications["a" /* default */].language;
        if (locale === 'es_MX') {
            locale = 'es_ES';
        }
        if (locale === 'fr_MA') {
            locale = 'fr_FR';
        }
        // Add English strings first, and then override them with the localized strings - this way if a localized
        // string is missing, we'll fall back to English, rather than rendering variable names into the UI.
        const [defaultStrings, localeStrings] = await Promise.all([
            (await fetch(`./locale/en_US/strings.json`)).json(),
            (await fetch(`./locale/${locale}/strings.json`)).json(),
        ]);
        const strings = { ...defaultStrings, ...localeStrings };
        MainStore["mainStore"].setMessages(strings);
        Object(index_es["f" /* addLocaleData */])(await this.getLocaleData(locale));
    }
    async getLocaleData(locale) {
        const language = locale.substr(0, 2);
        const REACT_DATASETS = {
            cs: __webpack_require__("gdxS"),
            da: __webpack_require__("x+Ei"),
            de: __webpack_require__("eZNI"),
            en: __webpack_require__("U9ri"),
            es: __webpack_require__("HpW/"),
            fi: __webpack_require__("oqCq"),
            fr: __webpack_require__("Hp/b"),
            hu: __webpack_require__("nqsH"),
            it: __webpack_require__("dEZ4"),
            ja: __webpack_require__("qmEL"),
            ko: __webpack_require__("TYVA"),
            nb: __webpack_require__("Pcmv"),
            nl: __webpack_require__("Q4ZP"),
            pl: __webpack_require__("UBvv"),
            pt: __webpack_require__("Mwd1"),
            ru: __webpack_require__("456K"),
            sv: __webpack_require__("JLB2"),
            tr: __webpack_require__("AN/Y"),
            uk: __webpack_require__("Yyt1"),
            zh: __webpack_require__("mw44"),
        };
        const mod = REACT_DATASETS[language] || REACT_DATASETS.en;
        return mod;
    }
    /**
     * Retrieve a localized string to the object's string table. If the string
     * is not present, then a standard error string is returned instead.
     *
     * @param stringID      {String} key index into the table
     * @return {String} translated value to associated with the key
     */
    getLocalizedString(stringID) {
        if (!MainStore["mainStore"].messages || !stringID) {
            return '';
        }
        let defaultDelimiter = stringID.indexOf('=');
        if (defaultDelimiter < 0) {
            // no default value included with the key
            defaultDelimiter = stringID.length;
        }
        const strKey = stringID.slice(0, defaultDelimiter);
        const strDefaultValue = stringID.slice(defaultDelimiter + 1);
        const locStr = MainStore["mainStore"].messages[strKey];
        let translatedStr = locStr ? locStr.replace('^n', '<br>') : null;
        translatedStr = translatedStr || strDefaultValue;
        return translatedStr || stringID;
    }
    /**
     * Get language country code for Go URL's.
     *
     * @param appLang       {String} containing language id xx_XX from app, such like, en_US
     * @param tableID		optional {String} key for specialized table
     * @return {String} value to associated with the app language's country code for Go URL's.
     */
    getLocalizedGoURLSuffix(appLang, tableID) {
        let suffixTable = null;
        if (goURL) {
            suffixTable = goURL[tableID] || goURL.common;
        }
        const suffix = suffixTable && appLang ? suffixTable[appLang] : null;
        return suffix || 'en';
    }
}
__decorate([
    Object(performance["b" /* Time */])('Locale Init'),
    __metadata("design:type", Function),
    __metadata("design:paramtypes", []),
    __metadata("design:returntype", Promise)
], i18n_I18N.prototype, "init", null);
/**
 * public exports
 */
/* harmony default export */ var i18n = __webpack_exports__["a"] = (new i18n_I18N());


/***/ }),

/***/ "VZJT":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("4LMb"),
      24: __webpack_require__("RMS/")
    }
  }));
};

WrappedIcon.displayName = 'ClassicGridView';
exports.default = WrappedIcon;

/***/ }),

/***/ "VaNO":
/***/ (function(module, exports) {

/**
 * Checks if a stack value for `key` exists.
 *
 * @private
 * @name has
 * @memberOf Stack
 * @param {string} key The key of the entry to check.
 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
 */
function stackHas(key) {
  return this.__data__.has(key);
}

module.exports = stackHas;

/***/ }),

/***/ "Vh22":
/***/ (function(module, exports, __webpack_require__) {

/* WEBPACK VAR INJECTION */(function(Buffer) {var BN = __webpack_require__("OZ/i");

var MillerRabin = __webpack_require__("ehAg");

var millerRabin = new MillerRabin();
var TWENTYFOUR = new BN(24);
var ELEVEN = new BN(11);
var TEN = new BN(10);
var THREE = new BN(3);
var SEVEN = new BN(7);

var primes = __webpack_require__("WKKt");

var randomBytes = __webpack_require__("Edxu");

module.exports = DH;

function setPublicKey(pub, enc) {
  enc = enc || 'utf8';

  if (!Buffer.isBuffer(pub)) {
    pub = new Buffer(pub, enc);
  }

  this._pub = new BN(pub);
  return this;
}

function setPrivateKey(priv, enc) {
  enc = enc || 'utf8';

  if (!Buffer.isBuffer(priv)) {
    priv = new Buffer(priv, enc);
  }

  this._priv = new BN(priv);
  return this;
}

var primeCache = {};

function checkPrime(prime, generator) {
  var gen = generator.toString('hex');
  var hex = [gen, prime.toString(16)].join('_');

  if (hex in primeCache) {
    return primeCache[hex];
  }

  var error = 0;

  if (prime.isEven() || !primes.simpleSieve || !primes.fermatTest(prime) || !millerRabin.test(prime)) {
    //not a prime so +1
    error += 1;

    if (gen === '02' || gen === '05') {
      // we'd be able to check the generator
      // it would fail so +8
      error += 8;
    } else {
      //we wouldn't be able to test the generator
      // so +4
      error += 4;
    }

    primeCache[hex] = error;
    return error;
  }

  if (!millerRabin.test(prime.shrn(1))) {
    //not a safe prime
    error += 2;
  }

  var rem;

  switch (gen) {
    case '02':
      if (prime.mod(TWENTYFOUR).cmp(ELEVEN)) {
        // unsuidable generator
        error += 8;
      }

      break;

    case '05':
      rem = prime.mod(TEN);

      if (rem.cmp(THREE) && rem.cmp(SEVEN)) {
        // prime mod 10 needs to equal 3 or 7
        error += 8;
      }

      break;

    default:
      error += 4;
  }

  primeCache[hex] = error;
  return error;
}

function DH(prime, generator, malleable) {
  this.setGenerator(generator);
  this.__prime = new BN(prime);
  this._prime = BN.mont(this.__prime);
  this._primeLen = prime.length;
  this._pub = undefined;
  this._priv = undefined;
  this._primeCode = undefined;

  if (malleable) {
    this.setPublicKey = setPublicKey;
    this.setPrivateKey = setPrivateKey;
  } else {
    this._primeCode = 8;
  }
}

Object.defineProperty(DH.prototype, 'verifyError', {
  enumerable: true,
  get: function () {
    if (typeof this._primeCode !== 'number') {
      this._primeCode = checkPrime(this.__prime, this.__gen);
    }

    return this._primeCode;
  }
});

DH.prototype.generateKeys = function () {
  if (!this._priv) {
    this._priv = new BN(randomBytes(this._primeLen));
  }

  this._pub = this._gen.toRed(this._prime).redPow(this._priv).fromRed();
  return this.getPublicKey();
};

DH.prototype.computeSecret = function (other) {
  other = new BN(other);
  other = other.toRed(this._prime);
  var secret = other.redPow(this._priv).fromRed();
  var out = new Buffer(secret.toArray());
  var prime = this.getPrime();

  if (out.length < prime.length) {
    var front = new Buffer(prime.length - out.length);
    front.fill(0);
    out = Buffer.concat([front, out]);
  }

  return out;
};

DH.prototype.getPublicKey = function getPublicKey(enc) {
  return formatReturnValue(this._pub, enc);
};

DH.prototype.getPrivateKey = function getPrivateKey(enc) {
  return formatReturnValue(this._priv, enc);
};

DH.prototype.getPrime = function (enc) {
  return formatReturnValue(this.__prime, enc);
};

DH.prototype.getGenerator = function (enc) {
  return formatReturnValue(this._gen, enc);
};

DH.prototype.setGenerator = function (gen, enc) {
  enc = enc || 'utf8';

  if (!Buffer.isBuffer(gen)) {
    gen = new Buffer(gen, enc);
  }

  this.__gen = gen;
  this._gen = new BN(gen);
  return this;
};

function formatReturnValue(bn, enc) {
  var buf = new Buffer(bn.toArray());

  if (!enc) {
    return buf;
  } else {
    return buf.toString(enc);
  }
}
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("HDXh").Buffer))

/***/ }),

/***/ "Vj/U":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Capability; });
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2020 Adobe Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Incorporated.
 **************************************************************************/
var Capability;
(function (Capability) {
    Capability["ShareSheetInvite"] = "invite";
    Capability["ShareSheetLink"] = "getLink";
    Capability["ShareSheetAction"] = "share";
})(Capability || (Capability = {}));
class FileCapabilities {
    constructor(capabilities) {
        this.mimeTypeToCapabilities = new Map();
        if (!capabilities) {
            return;
        }
        Object.entries(capabilities).forEach(([key, value]) => {
            if (key && value) {
                this.mimeTypeToCapabilities.set(key, value);
            }
        });
    }
    /**
     *
     * Checks if the fileType is supported by the capability
     *
     * @param {string} fileType
     * @param {IItemCapability} capability
     */
    isCapable(fileType, capability) {
        const capabilites = this.mimeTypeToCapabilities.get(fileType);
        return capabilites ? capabilites.includes(capability) : false;
    }
    /**
     *
     * Gets all the supported capabilites for a filetype.
     *
     * @param {string} fileType
     */
    getCapabilities(fileType) {
        return this.mimeTypeToCapabilities.get(fileType) || [];
    }
}
/* harmony default export */ __webpack_exports__["c"] = (FileCapabilities);



/***/ }),

/***/ "Vmve":
/***/ (function(module) {

module.exports = JSON.parse("{\"(optional)\":\"(선택 사항)\",\"(required)\":\"(필수 사항)\"}");

/***/ }),

/***/ "Vplr":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.ACPL_INFO_STATUS_CODES = exports.AcplStatusCodes = void 0;

var AcplStatusCodes =
/** @class */
function () {
  function AcplStatusCodes() {}

  AcplStatusCodes.ACPL_SUCCESS = 20000;
  AcplStatusCodes.ACPL_SUCCESS_ACCEPTED = 20200;
  AcplStatusCodes.ACPL_BAD_REQUEST = 40000;
  AcplStatusCodes.ACPL_UNAUTHORIZED = 40100;
  AcplStatusCodes.ACPL_FORBIDDEN = 40300;
  AcplStatusCodes.ACPL_RESOURCE_NOT_FOUND = 40400;
  /**
   * This property is considered deprecated, please do not use.
   * @deprecated
   */

  AcplStatusCodes.ACPL_USER_CANCELLED = 45000;
  AcplStatusCodes.ACPL_CLOUD_DISK_FULL = 50700;
  AcplStatusCodes.ACPL_LOCAL_DISK_FULL = 50701;
  AcplStatusCodes.ACPL_NETWORK_ERROR = 50303;
  return AcplStatusCodes;
}();

exports.AcplStatusCodes = AcplStatusCodes;
/**
 * Errors caused by user circumstances
 */

exports.ACPL_INFO_STATUS_CODES = new Set([AcplStatusCodes.ACPL_FORBIDDEN, AcplStatusCodes.ACPL_USER_CANCELLED, AcplStatusCodes.ACPL_CLOUD_DISK_FULL, AcplStatusCodes.ACPL_LOCAL_DISK_FULL, AcplStatusCodes.ACPL_NETWORK_ERROR]);

/***/ }),

/***/ "VrUr":
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// from https://github.com/Rantanen/node-dtls/blob/25a7dc861bda38cfeac93a723500eea4f0ac2e86/Certificate.js
// thanks to @Rantanen


var asn = __webpack_require__("f3pb");

var Time = asn.define('Time', function () {
  this.choice({
    utcTime: this.utctime(),
    generalTime: this.gentime()
  });
});
var AttributeTypeValue = asn.define('AttributeTypeValue', function () {
  this.seq().obj(this.key('type').objid(), this.key('value').any());
});
var AlgorithmIdentifier = asn.define('AlgorithmIdentifier', function () {
  this.seq().obj(this.key('algorithm').objid(), this.key('parameters').optional(), this.key('curve').objid().optional());
});
var SubjectPublicKeyInfo = asn.define('SubjectPublicKeyInfo', function () {
  this.seq().obj(this.key('algorithm').use(AlgorithmIdentifier), this.key('subjectPublicKey').bitstr());
});
var RelativeDistinguishedName = asn.define('RelativeDistinguishedName', function () {
  this.setof(AttributeTypeValue);
});
var RDNSequence = asn.define('RDNSequence', function () {
  this.seqof(RelativeDistinguishedName);
});
var Name = asn.define('Name', function () {
  this.choice({
    rdnSequence: this.use(RDNSequence)
  });
});
var Validity = asn.define('Validity', function () {
  this.seq().obj(this.key('notBefore').use(Time), this.key('notAfter').use(Time));
});
var Extension = asn.define('Extension', function () {
  this.seq().obj(this.key('extnID').objid(), this.key('critical').bool().def(false), this.key('extnValue').octstr());
});
var TBSCertificate = asn.define('TBSCertificate', function () {
  this.seq().obj(this.key('version').explicit(0).int().optional(), this.key('serialNumber').int(), this.key('signature').use(AlgorithmIdentifier), this.key('issuer').use(Name), this.key('validity').use(Validity), this.key('subject').use(Name), this.key('subjectPublicKeyInfo').use(SubjectPublicKeyInfo), this.key('issuerUniqueID').implicit(1).bitstr().optional(), this.key('subjectUniqueID').implicit(2).bitstr().optional(), this.key('extensions').explicit(3).seqof(Extension).optional());
});
var X509Certificate = asn.define('X509Certificate', function () {
  this.seq().obj(this.key('tbsCertificate').use(TBSCertificate), this.key('signatureAlgorithm').use(AlgorithmIdentifier), this.key('signatureValue').bitstr());
});
module.exports = X509Certificate;

/***/ }),

/***/ "W+Dz":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
Object.defineProperty(exports, "SideNav", {
  enumerable: true,
  get: function () {
    return _SideNav.default;
  }
});
Object.defineProperty(exports, "SideNavItem", {
  enumerable: true,
  get: function () {
    return _SideNavItem.default;
  }
});
Object.defineProperty(exports, "SideNavHeading", {
  enumerable: true,
  get: function () {
    return _SideNavHeading.default;
  }
});

var _SideNav = _interopRequireDefault(__webpack_require__("OZPJ"));

var _SideNavItem = _interopRequireDefault(__webpack_require__("aJa9"));

var _SideNavHeading = _interopRequireDefault(__webpack_require__("UfgM"));

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

/***/ }),

/***/ "W+dh":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("path", {
  d: "M26 22.086V11a1 1 0 0 0-1-1h-2a1 1 0 0 0-1 1v12.586a1 1 0 0 0 .293.707l6.3 6.3a1 1 0 0 0 1.414 0l1.336-1.336a1 1 0 0 0 0-1.414l-5.054-5.054a1 1 0 0 1-.289-.703z"
}), React.createElement("path", {
  d: "M24.647 4A20 20 0 0 0 5.182 18H1.25a.5.5 0 0 0-.4.8l5.4 7.2 7.15-7.146a.5.5 0 0 0-.358-.854H9.215a16.2 16.2 0 1 1 3.933 17.787.493.493 0 0 0-.69.005l-1.987 1.987a.507.507 0 0 0 0 .722 20 20 0 0 0 33.75-15.586A20.14 20.14 0 0 0 24.647 4z"
}));

/***/ }),

/***/ "W070":
/***/ (function(module, exports, __webpack_require__) {

// false -> Array#indexOf
// true  -> Array#includes
var toIObject = __webpack_require__("NsO/");

var toLength = __webpack_require__("tEej");

var toAbsoluteIndex = __webpack_require__("D8kY");

module.exports = function (IS_INCLUDES) {
  return function ($this, el, fromIndex) {
    var O = toIObject($this);
    var length = toLength(O.length);
    var index = toAbsoluteIndex(fromIndex, length);
    var value; // Array#includes uses SameValueZero equality algorithm
    // eslint-disable-next-line no-self-compare

    if (IS_INCLUDES && el != el) while (length > index) {
      value = O[index++]; // eslint-disable-next-line no-self-compare

      if (value != value) return true; // Array#indexOf ignores holes, Array#includes - not
    } else for (; length > index; index++) if (IS_INCLUDES || index in O) {
      if (O[index] === el) return IS_INCLUDES || index || 0;
    }
    return !IS_INCLUDES && -1;
  };
};

/***/ }),

/***/ "W087":
/***/ (function(module) {

module.exports = JSON.parse("{\"Breadcrumbs\":\"Brødkrummer\"}");

/***/ }),

/***/ "W1IK":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = Progress;

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _createId = _interopRequireDefault(__webpack_require__("b7KY"));

var _filterDOMProps = _interopRequireDefault(__webpack_require__("Cv/Q"));

var _propTypes = _interopRequireDefault(__webpack_require__("17x9"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

const _excluded = ["value", "size", "showPercent", "variant", "labelPosition", "isIndeterminate", "label", "className", "id", "min", "max", "valueLabel"];

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

if (false) {} else if (false) {} else {
  __webpack_require__("aLrj");
}

if (true) __webpack_require__("vXvL");
if (true) __webpack_require__("ifr8");
if (true) __webpack_require__("VyWb");
if (true) __webpack_require__("rLLE");
const SIZES = {
  S: 'small',
  M: 'medium'
};

function Progress(_ref) {
  let {
    value = 0,
    // number between 0 - 100
    size = 'M',
    // 'S', 'M'
    showPercent = false,
    // Whether the label should be shown or not
    variant,
    // Either undef or 'overBackground', 'positive', 'warning', 'critical'
    labelPosition = 'left',
    // 'left', 'top', 'bottom'
    isIndeterminate = false,
    label,
    className,
    id = (0, _createId.default)(),
    min = 0,
    max = 100,
    valueLabel
  } = _ref,
      otherProps = _objectWithoutProperties(_ref, _excluded);

  let fillProps = {};
  let ariaValueProps = {};
  const sizeClassPart = SIZES[size];
  value = Math.min(Math.max(+value, min), max);
  let percentage = 100 * value / (max - min);
  let labelId;
  let ariaLabelledby = [];

  if (otherProps['aria-labelledby']) {
    ariaLabelledby.push(otherProps['aria-labelledby']);
    delete otherProps['aria-labelledby'];
  }

  if (label) {
    labelId = (0, _createId.default)() + '-label';
    ariaLabelledby.push(labelId);
  }

  if (otherProps['aria-label']) {
    ariaLabelledby.length > 0 && ariaLabelledby.push(id);
  }

  ariaLabelledby = ariaLabelledby.length ? ariaLabelledby.join(' ') : null; // only add width to bar fill if determinate

  if (!isIndeterminate) {
    fillProps = {
      style: {
        width: `${percentage}%`
      }
    };
    ariaValueProps = {
      'aria-valuemin': min,
      'aria-valuemax': max,
      'aria-valuenow': value,
      'aria-valuetext': valueLabel ? valueLabel : `${Math.round(percentage * 10) / 10}%`
    };
  }

  return /*#__PURE__*/_react.default.createElement("div", _extends({
    className: (0, _classnames.default)('spectrum-BarLoader', `spectrum-BarLoader--${sizeClassPart}`, {
      'spectrum-BarLoader--indeterminate': isIndeterminate,
      'spectrum-BarLoader--sideLabel': labelPosition === 'left',
      'spectrum-BarLoader--overBackground': variant === 'overBackground',
      'is-positive': variant === 'positive',
      'is-warning': variant === 'warning',
      'is-critical': variant === 'critical'
    }, className),
    role: "progressbar"
  }, ariaValueProps, {
    "aria-labelledby": ariaLabelledby,
    id: id
  }, (0, _filterDOMProps.default)(otherProps)), label && /*#__PURE__*/_react.default.createElement("div", {
    className: "spectrum-BarLoader-label",
    id: labelId
  }, label), (showPercent || valueLabel) && /*#__PURE__*/_react.default.createElement("div", {
    className: "spectrum-BarLoader-percentage"
  }, valueLabel ? valueLabel : `${Math.round(percentage)}%`), /*#__PURE__*/_react.default.createElement("div", {
    className: "spectrum-BarLoader-track"
  }, /*#__PURE__*/_react.default.createElement("div", _extends({
    className: "spectrum-BarLoader-fill"
  }, fillProps))));
}

Progress.propTypes = {
  /**
  * Value between the min and max that specifies the progression of the progress bar.
  * Calculated percentage is automatically clamped to 0-100.
  */
  value: _propTypes.default.number,

  /**
  * Minimum value for the progress bar. Defaults to 0.
  */
  min: _propTypes.default.number,

  /**
  * Maximum value for the progress bar. Defaults to 100.
  */
  max: _propTypes.default.number,

  /**
  * Size of the Progress component. Limited to small (S) or medium (M).
  */
  size: _propTypes.default.oneOf(['S', 'M']),

  /**
  * Whether to show a percentage for the progress bar's current value
  */
  showPercent: _propTypes.default.bool,

  /**
   * This is for custom value labels. Useful for more decimal places or currency, etc. It will display in place of the percent from 'showPercent'
   */
  valueLabel: _propTypes.default.string,

  /**
   * Boolean to determine if the Progress component should endlessly scroll (indeterminate)
   */
  isIndeterminate: _propTypes.default.bool,

  /**
  * What type of progress bar to show: 'positive' (green), 'warning' (orange), 'critical' (red)
  */
  variant: _propTypes.default.oneOf(['positive', 'warning', 'critical', 'overBackground']),

  /**
  * Determines the positioning of the provided label.
  * Limited to 'left', 'top', or 'bottom'
  */
  labelPosition: _propTypes.default.oneOf(['left', 'top', 'bottom']),

  /**
  * Determines the label for the Progress component.
  */
  label: _propTypes.default.string
};
Progress.displayName = 'Progress';

/***/ }),

/***/ "W5/T":
/***/ (function(module, exports, __webpack_require__) {

// extracted by mini-css-extract-plugin

/***/ }),

/***/ "W6Rk":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

/* jslint esnext: true */

Object.defineProperty(exports, "__esModule", {
  value: true
});

var core_1 = __webpack_require__("HKjm");

var en_1 = __webpack_require__("HzlJ");

core_1.default.__addLocaleData(en_1.default);

core_1.default.defaultLocale = 'en';
exports.default = core_1.default;

/***/ }),

/***/ "W8MJ":
/***/ (function(module, exports) {

function _defineProperties(target, props) {
  for (var i = 0; i < props.length; i++) {
    var descriptor = props[i];
    descriptor.enumerable = descriptor.enumerable || false;
    descriptor.configurable = true;
    if ("value" in descriptor) descriptor.writable = true;
    Object.defineProperty(target, descriptor.key, descriptor);
  }
}

function _createClass(Constructor, protoProps, staticProps) {
  if (protoProps) _defineProperties(Constructor.prototype, protoProps);
  if (staticProps) _defineProperties(Constructor, staticProps);
  return Constructor;
}

module.exports = _createClass;
module.exports["default"] = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "WEkX":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/

Object.defineProperty(exports, "__esModule", {
  value: true
});
var OpType;

(function (OpType) {
  OpType["ARCHIVE"] = "archive";
  OpType["UNARCHIVE"] = "unarchive";
  OpType["MOVE"] = "move";
  OpType["COPY"] = "copy";
  OpType["USER_PIN"] = "user_pin";
  OpType["USER_UNPIN"] = "user_unpin";
  OpType["APP_PIN"] = "app_pin";
  OpType["APP_UNPIN"] = "app_unpin";
  OpType["PURGE_ALL"] = "purge_all";
  OpType["PURGE_ASSET"] = "purge_asset";
})(OpType || (OpType = {}));

exports.default = OpType;

/***/ }),

/***/ "WEpk":
/***/ (function(module, exports) {

var core = module.exports = {
  version: '2.6.12'
};
if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef

/***/ }),

/***/ "WFqU":
/***/ (function(module, exports, __webpack_require__) {

/* WEBPACK VAR INJECTION */(function(global) {/** Detect free variable `global` from Node.js. */
var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;
module.exports = freeGlobal;
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("yLpj")))

/***/ }),

/***/ "WKKt":
/***/ (function(module, exports, __webpack_require__) {

var randomBytes = __webpack_require__("Edxu");

module.exports = findPrime;
findPrime.simpleSieve = simpleSieve;
findPrime.fermatTest = fermatTest;

var BN = __webpack_require__("OZ/i");

var TWENTYFOUR = new BN(24);

var MillerRabin = __webpack_require__("ehAg");

var millerRabin = new MillerRabin();
var ONE = new BN(1);
var TWO = new BN(2);
var FIVE = new BN(5);
var SIXTEEN = new BN(16);
var EIGHT = new BN(8);
var TEN = new BN(10);
var THREE = new BN(3);
var SEVEN = new BN(7);
var ELEVEN = new BN(11);
var FOUR = new BN(4);
var TWELVE = new BN(12);
var primes = null;

function _getPrimes() {
  if (primes !== null) return primes;
  var limit = 0x100000;
  var res = [];
  res[0] = 2;

  for (var i = 1, k = 3; k < limit; k += 2) {
    var sqrt = Math.ceil(Math.sqrt(k));

    for (var j = 0; j < i && res[j] <= sqrt; j++) if (k % res[j] === 0) break;

    if (i !== j && res[j] <= sqrt) continue;
    res[i++] = k;
  }

  primes = res;
  return res;
}

function simpleSieve(p) {
  var primes = _getPrimes();

  for (var i = 0; i < primes.length; i++) if (p.modn(primes[i]) === 0) {
    if (p.cmpn(primes[i]) === 0) {
      return true;
    } else {
      return false;
    }
  }

  return true;
}

function fermatTest(p) {
  var red = BN.mont(p);
  return TWO.toRed(red).redPow(p.subn(1)).fromRed().cmpn(1) === 0;
}

function findPrime(bits, gen) {
  if (bits < 16) {
    // this is what openssl does
    if (gen === 2 || gen === 5) {
      return new BN([0x8c, 0x7b]);
    } else {
      return new BN([0x8c, 0x27]);
    }
  }

  gen = new BN(gen);
  var num, n2;

  while (true) {
    num = new BN(randomBytes(Math.ceil(bits / 8)));

    while (num.bitLength() > bits) {
      num.ishrn(1);
    }

    if (num.isEven()) {
      num.iadd(ONE);
    }

    if (!num.testn(1)) {
      num.iadd(TWO);
    }

    if (!gen.cmp(TWO)) {
      while (num.mod(TWENTYFOUR).cmp(ELEVEN)) {
        num.iadd(FOUR);
      }
    } else if (!gen.cmp(FIVE)) {
      while (num.mod(TEN).cmp(THREE)) {
        num.iadd(FOUR);
      }
    }

    n2 = num.shrn(1);

    if (simpleSieve(n2) && simpleSieve(num) && fermatTest(n2) && fermatTest(num) && millerRabin.test(n2) && millerRabin.test(num)) {
      return num;
    }
  }
}

/***/ }),

/***/ "WLpg":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("path", {
  d: "M20.5 36a15.493 15.493 0 0 1 10.4-14.622 18.66 18.66 0 0 0 1.689-7.465c0-7-3.419-10.3-8.585-10.3s-8.683 3.456-8.683 10.3a17.633 17.633 0 0 0 3.253 9.86 2.038 2.038 0 0 1 .455 1.253v2.794a1.888 1.888 0 0 1-1.549 1.946C6.182 30.881 4 38.96 4 42c0 .338.037 1.667.06 2h18.683a15.405 15.405 0 0 1-2.243-8z"
}), React.createElement("path", {
  d: "M36 24.1A11.9 11.9 0 1 0 47.9 36 11.9 11.9 0 0 0 36 24.1zm8 13.4a.5.5 0 0 1-.5.5H38v5.5a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5V38h-5.5a.5.5 0 0 1-.5-.5v-3a.5.5 0 0 1 .5-.5H34v-5.5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5V34h5.5a.5.5 0 0 1 .5.5z"
}));

/***/ }),

/***/ "WQMI":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

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

function Title({ children }) {
    return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", { style: { color: 'var(--ccac-projects-spectrum-gray-900)' } }, children);
}


/***/ }),

/***/ "WQQT":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = exports.ImageCache = void 0;

function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
  try {
    var info = gen[key](arg);
    var value = info.value;
  } catch (error) {
    reject(error);
    return;
  }

  if (info.done) {
    resolve(value);
  } else {
    Promise.resolve(value).then(_next, _throw);
  }
}

function _asyncToGenerator(fn) {
  return function () {
    var self = this,
        args = arguments;
    return new Promise(function (resolve, reject) {
      var gen = fn.apply(self, args);

      function _next(value) {
        asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
      }

      function _throw(err) {
        asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
      }

      _next(undefined);
    });
  };
}
/*************************************************************************
* ADOBE CONFIDENTIAL
* ___________________
*
* Copyright 2019 Adobe
* All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains
* the property of Adobe and its suppliers, if any. The intellectual
* and technical concepts contained herein are proprietary to Adobe
* and its suppliers and are protected by all applicable intellectual
* property laws, including trade secret and copyright laws.
* Dissemination of this information or reproduction of this material
* is strictly forbidden unless prior written permission is obtained
* from Adobe.
**************************************************************************/


const DEFAULT_OPTIONS = {
  cacheSize: 500,
  maxConcurrentDownloads: 10
}; // static callback for use when preloading images.

const PRELOAD_CB = function () {};
/**
 * This class caches images locally during a browser session,
 * and ensures that images are not reloaded from the network
 * as users scroll around. It can also preload images in advance.
 */


class ImageCache {
  constructor(options) {
    this.options = Object.assign({}, DEFAULT_OPTIONS, options);
    this._cache = new Map();
    this._callbacks = {};
    this._xhr = {};
    this._queue = [];
    this._active = 0;
  }

  _loadImage(url, options, callback) {
    // If the image is already loading, just add the callback
    if (this._callbacks[url]) {
      this._callbacks[url].add(callback);

      return;
    } // Save callback, and enqueue the url to load.


    this._callbacks[url] = new Set([callback]);

    this._enqueue(this._load.bind(this, url, options));
  }

  _enqueue(fn) {
    this._queue.push(fn);

    this._runQueue();
  }

  _runQueue() {
    // Run items from the queue until we reach the maximum concurrency limit
    while (this._queue.length > 0 && this._active < this.options.maxConcurrentDownloads) {
      let fn = this._queue.shift();

      this._active++;
      fn(() => {
        this._active--;

        this._runQueue();
      });
    }
  }

  _load(url, options, callback) {
    var _this = this;

    return _asyncToGenerator(function* () {
      if (!_this._callbacks[url]) {
        callback();
        return;
      }

      let xhr = new XMLHttpRequest();
      xhr.open('GET', url);
      xhr.responseType = 'blob';

      if (options.headers) {
        for (let key in options.headers) {
          xhr.setRequestHeader(key, options.headers[key]);
        }
      }

      xhr.addEventListener('load', () => {
        let blobURL = URL.createObjectURL(xhr.response);

        _this.set(url, blobURL);

        _this._callback(url, null, blobURL);

        callback();
      });
      xhr.addEventListener('error', err => {
        _this._callback(url, err);

        callback();
      });
      xhr.addEventListener('abort', () => {
        callback();
      });
      _this._xhr[url] = xhr;
      xhr.send();
    })();
  }

  _callback(url, err, blobURL) {
    for (var callback of this._callbacks[url]) {
      callback(err, blobURL);
    }

    delete this._callbacks[url];
    delete this._xhr[url];
  }

  set(url, blobURL) {
    // If the cache exceeds the maximum, delete the first key in the map,
    // which corresponds to the least recently used item.
    if (this._cache.size >= this.options.cacheSize) {
      let toDelete = this._cache.keys().next().value;

      this.delete(toDelete);
    }

    this._cache.set(url, blobURL);
  }

  delete(url) {
    let blobURL = this._cache.get(url);

    if (blobURL) {
      URL.revokeObjectURL(blobURL);

      this._cache.delete(url);
    }
  }
  /**
   * Checks whether an image URL exists in the cache.
   */


  has(url) {
    return this._cache.has(url);
  }
  /**
   * Gets a blob URL for an image if it exists already in the cache.
   */


  getCached(url) {
    let blobURL = this._cache.get(url);

    if (blobURL) {
      // re-insert the blob url at the end of the map for LRU eviction strategy.
      this._cache.delete(url);

      this._cache.set(url, blobURL);
    }

    return blobURL;
  }
  /**
   * Gets a blob url for an image and calls the callback. If the image is not already cached, 
   * it will be queued and loaded.
   * @param {string} url
   * @param {?object} options
   * @param {function} callback
   */


  get(url, options, callback) {
    if (typeof options === 'function') {
      callback = options;
      options = {};
    }

    if (/^blob:/.test(url)) {
      return callback(null, url);
    }

    var blobURL = this.getCached(url);

    if (blobURL) {
      return callback(null, blobURL);
    }

    this._loadImage(url, options, callback);
  }
  /**
   * Aborts loading an image by URL for the provided callback function.
   */


  abort(url, callback) {
    // Ignore if this url is not currently loading, or the callback wasn't found.
    if (!this._callbacks[url] || !this._callbacks[url].has(callback)) {
      return;
    } // Delete the callback from the list. If it is the last one, continue.


    this._callbacks[url].delete(callback);

    if (this._callbacks[url].size > 0) {
      return;
    } // Abort the request, if one is in progress.


    if (this._xhr[url]) {
      this._xhr[url].abort();

      delete this._xhr[url];
    }

    delete this._callbacks[url];
  }
  /**
   * Queues an image to be preloaded
   */


  preload(url) {
    this.get(url, PRELOAD_CB);
  }
  /**
   * Aborts an image preload
   */


  abortPreload(url) {
    this.abort(url, PRELOAD_CB);
  }

}

exports.ImageCache = ImageCache;

var _default = new ImageCache();

exports.default = _default;

/***/ }),

/***/ "WR0c":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _autobindDecorator = _interopRequireDefault(__webpack_require__("gKdT"));

var _calculatePosition = _interopRequireDefault(__webpack_require__("aTew"));

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _filterDOMProps = _interopRequireDefault(__webpack_require__("VGQ+"));

var _getContainer = _interopRequireDefault(__webpack_require__("eF//"));

var _ownerDocument = _interopRequireDefault(__webpack_require__("z9HI"));

var _Position = _interopRequireDefault(__webpack_require__("mCmI"));

var _react = _interopRequireWildcard(__webpack_require__("q1tI"));

var _reactDom = _interopRequireDefault(__webpack_require__("i8i4"));

var _setOverlayOnProvider = _interopRequireDefault(__webpack_require__("2B4m"));

var _class;

function _getRequireWildcardCache() {
  if (typeof WeakMap !== "function") return null;
  var cache = new WeakMap();

  _getRequireWildcardCache = function () {
    return cache;
  };

  return cache;
}

function _interopRequireWildcard(obj) {
  if (obj && obj.__esModule) {
    return obj;
  }

  if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
    return {
      default: obj
    };
  }

  var cache = _getRequireWildcardCache();

  if (cache && cache.has(obj)) {
    return cache.get(obj);
  }

  var newObj = {};
  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;

  for (var key in obj) {
    if (Object.prototype.hasOwnProperty.call(obj, key)) {
      var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;

      if (desc && (desc.get || desc.set)) {
        Object.defineProperty(newObj, key, desc);
      } else {
        newObj[key] = obj[key];
      }
    }
  }

  newObj.default = obj;

  if (cache) {
    cache.set(obj, newObj);
  }

  return newObj;
}

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function ownKeys(object, enumerableOnly) {
  var keys = Object.keys(object);

  if (Object.getOwnPropertySymbols) {
    var symbols = Object.getOwnPropertySymbols(object);
    if (enumerableOnly) symbols = symbols.filter(function (sym) {
      return Object.getOwnPropertyDescriptor(object, sym).enumerable;
    });
    keys.push.apply(keys, symbols);
  }

  return keys;
}

function _objectSpread(target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i] != null ? arguments[i] : {};

    if (i % 2) {
      ownKeys(Object(source), true).forEach(function (key) {
        _defineProperty(target, key, source[key]);
      });
    } else if (Object.getOwnPropertyDescriptors) {
      Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
    } else {
      ownKeys(Object(source)).forEach(function (key) {
        Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
      });
    }
  }

  return target;
}

function _defineProperty(obj, key, value) {
  if (key in obj) {
    Object.defineProperty(obj, key, {
      value: value,
      enumerable: true,
      configurable: true,
      writable: true
    });
  } else {
    obj[key] = value;
  }

  return obj;
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

let UxpPosition = (0, _autobindDecorator.default)(_class = class UxpPosition extends _Position.default {
  /* https://jira.corp.adobe.com/browse/UXP-8669
  Dropdown flickering occurs because UXP calculates client offset and size after the initial render, 
  unlike the browsers which do so before the initial render happens.
  To avoid the flicker, we need to hide the dropdown button till the layout is rendered again.
  This can be directly merged to react-spectrum if they agree to do that, because this will not impact them much. */
  componentDidMount() {
    if (this.props.autoComplete) {
      this.updatePosition(this.getTarget(), 'visible');
    } else {
      this.updatePosition(this.getTarget(), 'hidden');
    }

    window.addEventListener('resize', this.maybeUpdatePosition, false);
  }

  componentDidUpdate(prevProps) {
    if (this._needsFlush) {
      this._needsFlush = false;
      this.maybeUpdatePosition(this.props.placement !== prevProps.placement, 'visible');
    }
  }

  render() {
    const _this$props = this.props,
          {
      children,
      className
    } = _this$props,
          props = _objectWithoutProperties(_this$props, ["children", "className"]);

    const {
      positionLeft,
      positionTop,
      // maxHeight, 
      arrowOffsetLeft,
      arrowOffsetTop,
      placement
    } = this.state;
    delete props.target;

    const child = _react.default.Children.only(children);

    return /*#__PURE__*/(0, _react.cloneElement)(child, _objectSpread(_objectSpread({}, (0, _filterDOMProps.default)(props)), {}, {
      placement,
      className: (0, _classnames.default)(className, child.props.className),
      arrowStyle: {
        left: arrowOffsetLeft,
        top: arrowOffsetTop
      },
      ref: overlay => this.overlay = overlay,
      style: _objectSpread(_objectSpread({}, child.props.style), {}, {
        position: 'absolute',
        zIndex: 100000,
        // should match the z-index in ModalTrigger
        left: positionLeft,
        top: positionTop
        /* maxHeight: maxHeight
        JIRA BUG: https://jira.corp.adobe.com/browse/UXP-9371
        The issue persists in UXP because UXP doesn't know the size of overlay and hence the endEdgeOffset, and so cannot flip the dropdown unless the layout is drawn once on the bottom 
        The workaround is to remove the incorrect maxHeight of the popover which is being calculated due to this.*/

      })
    }));
  } // https://jira.corp.adobe.com/browse/UXP-10711
  // resize event is not triggered when there is no change in size of the overlay
  // hence, update the bounding rect manually since the clone element has the same reference as the tooltip component and set it on provider


  updateOverlayBoundingRect() {
    if (this.overlay) {
      if (this.overlay.tooltipRef) {
        const tooltipNode = _reactDom.default.findDOMNode(this.overlay.tooltipRef);

        if (tooltipNode) {
          let boundingRect = tooltipNode.getBoundingClientRect();
          boundingRect.x = this.state.positionLeft;
          boundingRect.y = this.state.positionTop;
          (0, _setOverlayOnProvider.default)(this.overlay.tooltipRef, true, this.overlay.hide, boundingRect);
        } else {
          (0, _setOverlayOnProvider.default)(this.overlay.tooltipRef, true, this.overlay.hide);
        }
      }

      if (this.overlay.popoverRef) {
        // https://jira.corp.adobe.com/browse/CCPROJ-6320
        // Adding similar fix for popover as tooltip.
        const popoverNode = _reactDom.default.findDOMNode(this.overlay.popoverRef);

        if (popoverNode) {
          let boundingRect = popoverNode.getBoundingClientRect();
          boundingRect.x = this.state.positionLeft;
          boundingRect.y = this.state.positionTop;
          (0, _setOverlayOnProvider.default)(popoverNode, true, this.overlay.hide, boundingRect);
        }
      }
    }
  }

  maybeUpdatePosition(placementChanged, visibility) {
    const target = this.getTarget();

    if (!this.props.shouldUpdatePosition && target === this._lastTarget && !placementChanged) {
      return;
    }

    this.updatePosition(target, visibility);
  }

  updatePosition(target, visibility) {
    const {
      placement,
      containerPadding,
      offset,
      crossOffset,
      flip,
      boundariesElement
    } = this.props;
    this._lastTarget = target;

    if (!target) {
      this.setState({
        positionLeft: 0,
        positionTop: 0,
        arrowOffsetLeft: null,
        arrowOffsetTop: null
      });
      return;
    }

    const overlay = _reactDom.default.findDOMNode(this);
    /* 
      JIRA BUG: https://jira.corp.adobe.com/browse/UXP-18863
    */


    if (!overlay) {
      return;
    }

    overlay.style.visibility = visibility;
    const container = (0, _getContainer.default)(this.props.container, (0, _ownerDocument.default)(this).body);
    this.setState((0, _calculatePosition.default)(placement, overlay, target, container, containerPadding, flip, boundariesElement, offset, crossOffset));
    /*
    Related issue : maxHeight not set before initial rendering JIRA BUG: https://jira.corp.adobe.com/browse/UXP-9371
    This adds and removes scrollbar to dropdown on overflow or on small window after first render
    */

    const overlayHeight = overlay.getBoundingClientRect().height;
    const scrollHeight = overlay.scrollHeight;

    if (overlayHeight && (this.state.maxHeight < overlayHeight || scrollHeight > overlayHeight && scrollHeight < this.state.maxHeight)) {
      overlay.style.maxHeight = this.state.maxHeight;
    }

    if (this.overlay) {
      this.updateOverlayBoundingRect();
    }
  }

}) || _class;

exports.default = UxpPosition;

/***/ }),

/***/ "WRkp":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


exports.sha1 = __webpack_require__("E+IA");
exports.sha224 = __webpack_require__("B/J0");
exports.sha256 = __webpack_require__("bu2F");
exports.sha384 = __webpack_require__("i5UE");
exports.sha512 = __webpack_require__("tSWc");

/***/ }),

/***/ "WYLd":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("path", {
  d: "M38 35V16l-3.405-.011a.5.5 0 0 1-.349-.862L40 9.385l5.766 5.742a.5.5 0 0 1-.349.862L42 16v19a1 1 0 0 1-1 1h-2a1 1 0 0 1-1-1z"
}), React.createElement("rect", {
  height: "4",
  rx: "1",
  ry: "1",
  width: "28",
  x: "4",
  y: "32"
}), React.createElement("rect", {
  height: "4",
  rx: "1",
  ry: "1",
  width: "24",
  x: "4",
  y: "22"
}), React.createElement("rect", {
  height: "4",
  rx: "1",
  ry: "1",
  width: "20",
  x: "4",
  y: "12"
}));

/***/ }),

/***/ "WYcM":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("rect", {
  height: "40",
  rx: "2",
  ry: "2",
  width: "12",
  x: "8",
  y: "4"
}), React.createElement("rect", {
  height: "40",
  rx: "2",
  ry: "2",
  width: "12",
  x: "28",
  y: "4"
}));

/***/ }),

/***/ "WZg1":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _Checkbox = _interopRequireDefault(__webpack_require__("th6M"));

var _convertUnsafeMethod = _interopRequireDefault(__webpack_require__("8nyd"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

__webpack_require__("XSG9");

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _propTypes = _interopRequireDefault(__webpack_require__("17x9"));

const _excluded = ["label", "className", "labelClassName", "children", "style"];

var _class, _class2, _temp, _initialiseProps;

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
} // pulled from react-spectrum-uxp, should come from spectrum-dna


const CheckboxMetrics = {
  labelGap: '8px',
  marginTop: '3px',
  height: '18px',
  width: '18px'
};
const labelStyle = {
  display: 'flex',
  flexDirection: 'row',
  alignItems: 'center',
  marginTop: CheckboxMetrics.marginTop,
  marginBottom: CheckboxMetrics.marginTop,
  height: CheckboxMetrics.height
};
const spanStyle = {
  marginLeft: CheckboxMetrics.labelGap
};
const inputStyle = {
  width: CheckboxMetrics.width
};

let UxpCheckbox = (0, _convertUnsafeMethod.default)(_class = (_temp = _class2 = class UxpCheckbox extends _Checkbox.default {
  constructor(props) {
    super(props);

    _initialiseProps.call(this);

    const {
      checked,
      defaultChecked
    } = props;
    this.state = {
      checked: checked !== undefined ? checked : defaultChecked || false
    };
  }

  UNSAFE_componentWillReceiveProps(nextProps) {
    if ('checked' in nextProps) {
      this.setState({
        checked: nextProps.checked
      });
    }
  }

  setChecked(checked) {
    if (!('checked' in this.props)) {
      this.setState({
        checked
      });
    }
  }

  setIndeterminate() {
    const {
      indeterminate
    } = this.props;
    const input = this.inputRef;

    if (indeterminate != null && input) {
      input.indeterminate = indeterminate;
    }
  }

  render() {
    const _this$props = this.props,
          {
      label,
      className,
      labelClassName,
      children,
      style
    } = _this$props,
          otherProps = _objectWithoutProperties(_this$props, _excluded); // Removing the unsupported attributes for input element to avoid warnings.


    delete otherProps.renderLabel;
    delete otherProps.indeterminate;
    delete otherProps.invalid;
    delete otherProps.quiet;
    let labelContents = label || (typeof children === 'string' ? children : null);
    const {
      checked
    } = this.state;
    return /*#__PURE__*/_react.default.createElement("label", {
      style: Object.assign({}, labelStyle, style)
    }, /*#__PURE__*/_react.default.createElement("input", _extends({
      style: inputStyle,
      ref: el => this.inputRef = el
    }, otherProps, {
      type: "checkbox",
      checked: checked,
      onChange: this.handleChange,
      className: className
    })), labelContents && labelContents.length > 0 && /*#__PURE__*/_react.default.createElement("span", {
      style: spanStyle,
      className: (0, _classnames.default)({
        'spectrum-Checkbox-span-disabled': this.props.disabled
      }, labelClassName)
    }, labelContents));
  }

}, _class2.propTypes = {
  /**
   * For providing custom styling on label/span for the checkbox
   */
  labelClassName: _propTypes.default.string
}, _initialiseProps = function () {
  this.handleChange = e => {
    const {
      onChange
    } = this.props;
    const {
      checked
    } = e.target;
    this.setChecked(checked);

    if (onChange) {
      onChange(checked, e);
    }
  };
}, _temp)) || _class;

exports.default = UxpCheckbox;

/***/ }),

/***/ "WbBG":
/***/ (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;

/***/ }),

/***/ "We7l":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

/*************************************************************************
* ADOBE CONFIDENTIAL
* ___________________
*
* Copyright 2019 Adobe
* All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains
* the property of Adobe and its suppliers, if any. The intellectual
* and technical concepts contained herein are proprietary to Adobe
* and its suppliers and are protected by all applicable intellectual
* property laws, including trade secret and copyright laws.
* Dissemination of this information or reproduction of this material
* is strictly forbidden unless prior written permission is obtained
* from Adobe.
**************************************************************************/

module.exports = __webpack_require__("uyWG");

/***/ }),

/***/ "WgUl":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var _UxpOptions = _interopRequireDefault(__webpack_require__("zvwv"));

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}
/*************************************************************************
* ADOBE CONFIDENTIAL
* ___________________
*
* Copyright 2019 Adobe
* All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains
* the property of Adobe and its suppliers, if any. The intellectual
* and technical concepts contained herein are proprietary to Adobe
* and its suppliers and are protected by all applicable intellectual
* property laws, including trade secret and copyright laws.
* Dissemination of this information or reproduction of this material
* is strictly forbidden unless prior written permission is obtained
* from Adobe.
**************************************************************************/


module.exports = _UxpOptions.default.select('Textfield', () => __webpack_require__("pxfz"), () => __webpack_require__("YsQy"), () => __webpack_require__("gFrX"));

/***/ }),

/***/ "WkPL":
/***/ (function(module, exports) {

function _arrayLikeToArray(arr, len) {
  if (len == null || len > arr.length) len = arr.length;

  for (var i = 0, arr2 = new Array(len); i < len; i++) {
    arr2[i] = arr[i];
  }

  return arr2;
}

module.exports = _arrayLikeToArray;
module.exports["default"] = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "Wn8L":
/***/ (function(module) {

module.exports = JSON.parse("{\"Clear search\":\"Suche zurücksetzen\"}");

/***/ }),

/***/ "WnY+":
/***/ (function(module, exports, __webpack_require__) {

var MD5 = __webpack_require__("9XZ3");

module.exports = function (buffer) {
  return new MD5().update(buffer).digest();
};

/***/ }),

/***/ "WqqV":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("rect", {
  height: "24",
  rx: "2",
  ry: "2",
  width: "28",
  x: "10",
  y: "12"
}), React.createElement("path", {
  d: "M6 2.5V8H.5a.5.5 0 0 0-.5.5v3a.5.5 0 0 0 .5.5H10V2.5a.5.5 0 0 0-.5-.5h-3a.5.5 0 0 0-.5.5zM42 8V2.5a.5.5 0 0 0-.5-.5h-3a.5.5 0 0 0-.5.5V12h9.5a.5.5 0 0 0 .5-.5v-3a.5.5 0 0 0-.5-.5zM0 36.5v3a.5.5 0 0 0 .5.5H6v5.5a.5.5 0 0 0 .5.5h3a.5.5 0 0 0 .5-.5V36H.5a.5.5 0 0 0-.5.5zM42 40h5.5a.5.5 0 0 0 .5-.5v-3a.5.5 0 0 0-.5-.5H38v9.5a.5.5 0 0 0 .5.5h3a.5.5 0 0 0 .5-.5z"
}));

/***/ }),

/***/ "WrHg":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXPORTS
__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ TabCrumbs; });

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__("q1tI");
var react_default = /*#__PURE__*/__webpack_require__.n(react);

// EXTERNAL MODULE: ./node_modules/react-intl-cdo/lib/index.es.js + 1 modules
var index_es = __webpack_require__("VIzJ");

// EXTERNAL MODULE: ./node_modules/classnames/index.js
var classnames = __webpack_require__("TSYQ");
var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Breadcrumbs/index.js
var Breadcrumbs = __webpack_require__("Smah");
var Breadcrumbs_default = /*#__PURE__*/__webpack_require__.n(Breadcrumbs);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Icon/js/Icon.js
var Icon = __webpack_require__("trqI");
var Icon_default = /*#__PURE__*/__webpack_require__.n(Icon);

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/images/FolderBreadcrumb.svg
function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}


/* harmony default export */ var FolderBreadcrumb = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", _extends({
  xmlns: "http://www.w3.org/2000/svg",
  height: "18",
  viewBox: "0 0 18 18",
  width: "18"
}, props), /*#__PURE__*/react_default.a.createElement("path", {
  d: "M16.5 4l-7.166.004-1.652-1.7A1 1 0 0 0 6.965 2H2a1 1 0 0 0-1 1v11.5a.5.5 0 0 0 .5.5h15a.5.5 0 0 0 .5-.5v-10a.5.5 0 0 0-.5-.5zM2 3h4.965l1.943 2H2zm10.354 5.854l-3 3a.5.5 0 0 1-.707 0l-3-3a.5.5 0 0 1 .707-.707L9 10.793l2.646-2.646a.5.5 0 0 1 .707.707z"
})));
// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Button/index.js
var Button = __webpack_require__("Cn9g");
var Button_default = /*#__PURE__*/__webpack_require__.n(Button);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Dropdown/index.js
var Dropdown = __webpack_require__("T1rY");
var Dropdown_default = /*#__PURE__*/__webpack_require__.n(Dropdown);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Menu/index.js
var Menu = __webpack_require__("kzNO");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/hooks/useIntl.ts
var useIntl = __webpack_require__("BuN4");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/components/header/BreadCrumbs.css
var BreadCrumbs = __webpack_require__("U361");
var BreadCrumbs_default = /*#__PURE__*/__webpack_require__.n(BreadCrumbs);

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/components/header/Breadcrumbs.tsx










const dropdownKey = '...';
function Breadcrumbs_Breadcrumbs({ children, onAction, onlyShowOneLevel, ...otherProps }) {
    const intl = Object(useIntl["a" /* default */])();
    let items = children.map((item, index) => ({
        key: item.key,
        title: item.title || item.content,
        label: item.content,
    }));
    const leftoverItemCount = onlyShowOneLevel ? 1 : 2;
    if (items.length > leftoverItemCount) {
        // then we collapse any of the earlier ones into a folder dropdown menu.
        let expanded = items.slice(-leftoverItemCount);
        let collapsed = items.slice(0, -leftoverItemCount).reverse();
        items = [
            {
                key: dropdownKey,
                title: '',
                label: (react_default.a.createElement(Dropdown_default.a, { className: BreadCrumbs_default.a.dropdownWrapper, onSelect: fireAction },
                    react_default.a.createElement(Button_default.a, { "aria-label": intl.formatMessage({ id: 'a11y.button.selectFolder' }), className: classnames_default()('spectrum-Breadcrumbs-itemLink'), quiet: true, type: "button", variant: "field" },
                        react_default.a.createElement(Icon_default.a, { size: "S" },
                            react_default.a.createElement(FolderBreadcrumb, null))),
                    react_default.a.createElement(Menu["Menu"], { className: BreadCrumbs_default.a.BreadcrumbsMenu }, collapsed.map(item => {
                        return (react_default.a.createElement(Menu["MenuItem"], { key: item.key, id: item.key, value: item.key }, item.label));
                    })))),
            },
            ...expanded,
        ];
    }
    function fireAction(itemKey) {
        onAction(itemKey);
        // HACK: Temporary react-spectrum fix to hide the underline-on-focus behavior:
        // <https://jira.corp.adobe.com/projects/RSP/issues/RSP-555>
        if (document.activeElement instanceof HTMLElement) {
            document.activeElement.blur();
        }
    }
    return (react_default.a.createElement(Breadcrumbs_default.a, { items: items, renderLink: ({ 'aria-current': ariaCurrent, label, onClick, onFocus, onBlur }) => {
            // using custom renderer to suppress 'link' role and consolidate focus rings
            return (react_default.a.createElement("div", { "data-test-id": 'spectrum-Breadcrumbs-item', className: 'spectrum-Breadcrumbs-itemLink', "aria-current": ariaCurrent, onClick: onClick, onFocus: onFocus, onBlur: onBlur }, label));
        }, onBreadcrumbClick: item => {
            if (item.key === dropdownKey) {
                return;
            }
            fireAction(item.key);
        } }));
}

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/hooks/AppContext.ts
var AppContext = __webpack_require__("m/KA");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/components/header/ProjectColorWrapper.tsx
var ProjectColorWrapper = __webpack_require__("LMy0");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/UXPUtils.ts
var UXPUtils = __webpack_require__("LbGp");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/stores/SharedStore.ts + 6 modules
var SharedStore = __webpack_require__("jmEq");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/hooks/useMeasureElementWidth.ts
var useMeasureElementWidth = __webpack_require__("56Hx");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/components/header/TabCrumbs.tsx









const style = __webpack_require__("j/3r");
const spacesRootPath = '::';
// Escape all Regex special characters so that they're treated as string literals if they appear in the name.
const escapePath = name => name.replace(/[[\](){}?*+^$\\.|]/g, '\\$&');
function usePath(browseSession, props) {
    var _a, _b;
    const { path = '', rootPath = '/', rootName } = props;
    // match the first occurrence of the `rootPath`
    const expression = new RegExp(rootPath === '/' ? '^/' : `^(.*?)(${escapePath(rootPath)})`);
    const parts = path.replace(expression, '').split('/');
    const lastItem = parts.length - 1;
    const teamName = (_b = (_a = SharedStore["d" /* sharedStore */].teams) === null || _a === void 0 ? void 0 : _a.items.find(team => team.id === browseSession.currentTeamId)) === null || _b === void 0 ? void 0 : _b.name;
    return [
        // new one up design always includes 'Spaces' link to top level.
        {
            label: teamName || react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "yourProjects.title" }),
            path: spacesRootPath,
        },
        ...parts.map((part, index) => {
            let isProjectRoot = part === '';
            if (isProjectRoot) {
                return {
                    title: rootName,
                    label: (react_default.a.createElement(ProjectColorWrapper["a" /* ProjectColorWrapper */], { className: style.spaceNameBreadcrumbItem, projectColor: props.projectColor },
                        react_default.a.createElement("a", { tabIndex: 0, className: style.spaceNameText }, rootName))),
                    path: `/${parts[0]}`,
                };
            }
            const folderTabIndex = index === lastItem ? undefined : 0;
            return {
                label: (react_default.a.createElement("span", { tabIndex: folderTabIndex, className: style.folderNameBreadcrumbItem }, part)),
                path: parts.slice(0, index + 1).join('/'),
            };
        }),
    ];
}
/** If the width of the component is smaller than this, we'll only show one breadcrumb level. */
const MIN_WIDTH_TO_SHOW_TWO_LEVELS = 1000;
/**
 * Generate the breadcrumb based on the path.
 * When path is not provided yet (could be loaded async) or user is at the root, show the `rootName`.
 *
 * The `rootPath` is used when the root is not `/`.
 * i.e. the root of cloud documents is `/cloud-content` whereas the root of the working file could be `/content/assets/Everyone/[SPACE_FOLDER]/working_files`.
 */
function TabCrumbs(props) {
    let app = Object(react["useContext"])(AppContext["a" /* default */]);
    let path = usePath(app, props);
    const ref = Object(react["useRef"])(null);
    const width = Object(useMeasureElementWidth["b" /* useMeasureRootWidth */])(ref);
    return (react_default.a.createElement("div", { ref: ref, className: classnames_default()(style.breadcrumbs, {
            [style.breadcrumbsUxp]: UXPUtils["a" /* default */].usingUXP(),
        }) },
        react_default.a.createElement(Breadcrumbs_Breadcrumbs, { onlyShowOneLevel: width < MIN_WIDTH_TO_SHOW_TWO_LEVELS, "data-test-id": "TabCrumbs", onAction: value => {
                if (value === spacesRootPath) {
                    props.onNavigateSpacesRoot();
                }
                else {
                    props.onClick({ path: value });
                }
            } }, path.map(item => ({ key: item.path, title: item.title, content: item.label })))));
}


/***/ }),

/***/ "WreY":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("path", {
  d: "M31 0h2v36h-2zm-5.412 31.7L15.633 4.21c-.041-.169-.083-.21-.252-.21h-4.152a.2.2 0 0 0-.21.21 4.559 4.559 0 0 1-.3 1.738L1.485 31.662c-.041.21.045.338.255.338h2.88a.3.3 0 0 0 .338-.255L8.09 23H18.7l3.161 8.79a.378.378 0 0 0 .339.21h3.218c.214 0 .256-.128.17-.3zM13.347 6.88h.041c.759 2.707 3.355 9.972 4.44 13.12h-8.87c1.59-4.584 3.704-10.546 4.389-13.12z"
}));

/***/ }),

/***/ "Ws/i":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("rect", {
  height: "24",
  rx: "2",
  ry: "2",
  width: "28",
  x: "10",
  y: "12"
}), React.createElement("path", {
  d: "M42 34.5V40h-5.5a.5.5 0 0 0-.5.5v3a.5.5 0 0 0 .5.5H46v-9.5a.5.5 0 0 0-.5-.5h-3a.5.5 0 0 0-.5.5zM6 40v-5.5a.5.5 0 0 0-.5-.5h-3a.5.5 0 0 0-.5.5V44h9.5a.5.5 0 0 0 .5-.5v-3a.5.5 0 0 0-.5-.5zM36 4.5v3a.5.5 0 0 0 .5.5H42v5.5a.5.5 0 0 0 .5.5h3a.5.5 0 0 0 .5-.5V4h-9.5a.5.5 0 0 0-.5.5zM6 8h5.5a.5.5 0 0 0 .5-.5v-3a.5.5 0 0 0-.5-.5H2v9.5a.5.5 0 0 0 .5.5h3a.5.5 0 0 0 .5-.5z"
}));

/***/ }),

/***/ "Wu5q":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var dP = __webpack_require__("2faE").f;

var create = __webpack_require__("oVml");

var redefineAll = __webpack_require__("XJU/");

var ctx = __webpack_require__("2GTP");

var anInstance = __webpack_require__("EXMj");

var forOf = __webpack_require__("oioR");

var $iterDefine = __webpack_require__("MPFp");

var step = __webpack_require__("UO39");

var setSpecies = __webpack_require__("TJWN");

var DESCRIPTORS = __webpack_require__("jmDH");

var fastKey = __webpack_require__("6/1s").fastKey;

var validate = __webpack_require__("n3ko");

var SIZE = DESCRIPTORS ? '_s' : 'size';

var getEntry = function (that, key) {
  // fast case
  var index = fastKey(key);
  var entry;
  if (index !== 'F') return that._i[index]; // frozen object case

  for (entry = that._f; entry; entry = entry.n) {
    if (entry.k == key) return entry;
  }
};

module.exports = {
  getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {
    var C = wrapper(function (that, iterable) {
      anInstance(that, C, NAME, '_i');
      that._t = NAME; // collection type

      that._i = create(null); // index

      that._f = undefined; // first entry

      that._l = undefined; // last entry

      that[SIZE] = 0; // size

      if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);
    });
    redefineAll(C.prototype, {
      // 23.1.3.1 Map.prototype.clear()
      // 23.2.3.2 Set.prototype.clear()
      clear: function clear() {
        for (var that = validate(this, NAME), data = that._i, entry = that._f; entry; entry = entry.n) {
          entry.r = true;
          if (entry.p) entry.p = entry.p.n = undefined;
          delete data[entry.i];
        }

        that._f = that._l = undefined;
        that[SIZE] = 0;
      },
      // 23.1.3.3 Map.prototype.delete(key)
      // 23.2.3.4 Set.prototype.delete(value)
      'delete': function (key) {
        var that = validate(this, NAME);
        var entry = getEntry(that, key);

        if (entry) {
          var next = entry.n;
          var prev = entry.p;
          delete that._i[entry.i];
          entry.r = true;
          if (prev) prev.n = next;
          if (next) next.p = prev;
          if (that._f == entry) that._f = next;
          if (that._l == entry) that._l = prev;
          that[SIZE]--;
        }

        return !!entry;
      },
      // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)
      // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)
      forEach: function forEach(callbackfn
      /* , that = undefined */
      ) {
        validate(this, NAME);
        var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);
        var entry;

        while (entry = entry ? entry.n : this._f) {
          f(entry.v, entry.k, this); // revert to the last existing entry

          while (entry && entry.r) entry = entry.p;
        }
      },
      // 23.1.3.7 Map.prototype.has(key)
      // 23.2.3.7 Set.prototype.has(value)
      has: function has(key) {
        return !!getEntry(validate(this, NAME), key);
      }
    });
    if (DESCRIPTORS) dP(C.prototype, 'size', {
      get: function () {
        return validate(this, NAME)[SIZE];
      }
    });
    return C;
  },
  def: function (that, key, value) {
    var entry = getEntry(that, key);
    var prev, index; // change existing entry

    if (entry) {
      entry.v = value; // create new entry
    } else {
      that._l = entry = {
        i: index = fastKey(key, true),
        // <- index
        k: key,
        // <- key
        v: value,
        // <- value
        p: prev = that._l,
        // <- previous entry
        n: undefined,
        // <- next entry
        r: false // <- removed

      };
      if (!that._f) that._f = entry;
      if (prev) prev.n = entry;
      that[SIZE]++; // add to index

      if (index !== 'F') that._i[index] = entry;
    }

    return that;
  },
  getEntry: getEntry,
  setStrong: function (C, NAME, IS_MAP) {
    // add .keys, .values, .entries, [@@iterator]
    // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11
    $iterDefine(C, NAME, function (iterated, kind) {
      this._t = validate(iterated, NAME); // target

      this._k = kind; // kind

      this._l = undefined; // previous
    }, function () {
      var that = this;
      var kind = that._k;
      var entry = that._l; // revert to the last existing entry

      while (entry && entry.r) entry = entry.p; // get next entry


      if (!that._t || !(that._l = entry = entry ? entry.n : that._t._f)) {
        // or finish the iteration
        that._t = undefined;
        return step(1);
      } // return step by kind


      if (kind == 'keys') return step(0, entry.k);
      if (kind == 'values') return step(0, entry.v);
      return step(0, [entry.k, entry.v]);
    }, IS_MAP ? 'entries' : 'values', !IS_MAP, true); // add [@@species], 23.1.2.2, 23.2.2.2

    setSpecies(NAME);
  }
};

/***/ }),

/***/ "Wvmx":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _createClass = function () {
  function defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i];
      descriptor.enumerable = descriptor.enumerable || false;
      descriptor.configurable = true;
      if ("value" in descriptor) descriptor.writable = true;
      Object.defineProperty(target, descriptor.key, descriptor);
    }
  }

  return function (Constructor, protoProps, staticProps) {
    if (protoProps) defineProperties(Constructor.prototype, protoProps);
    if (staticProps) defineProperties(Constructor, staticProps);
    return Constructor;
  };
}();

var _DAO2 = __webpack_require__("io2S");

var _DAO3 = _interopRequireDefault(_DAO2);

var _utils = __webpack_require__("VKd2");

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _classCallCheck(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}

function _possibleConstructorReturn(self, call) {
  if (!self) {
    throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
  }

  return call && (typeof call === "object" || typeof call === "function") ? call : self;
}

function _inherits(subClass, superClass) {
  if (typeof superClass !== "function" && superClass !== null) {
    throw new TypeError("Super expression must either be null or a function, not " + typeof superClass);
  }

  subClass.prototype = Object.create(superClass && superClass.prototype, {
    constructor: {
      value: subClass,
      enumerable: false,
      writable: true,
      configurable: true
    }
  });
  if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;
}
/**
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 */


var InstanceConfig = {};

var ShareContentService = function (_DAO) {
  _inherits(ShareContentService, _DAO);

  function ShareContentService() {
    _classCallCheck(this, ShareContentService);

    return _possibleConstructorReturn(this, (ShareContentService.__proto__ || Object.getPrototypeOf(ShareContentService)).apply(this, arguments));
  }

  _createClass(ShareContentService, [{
    key: 'get',

    /**
     * x-sharing-password: required when accessing a password protected public resource. Base64 encoded.
     * @param {String} resourceUrn
     * @param {Boolean} cdnAcceleration - Whether to return CDN URLs. Note CDN URLs can only be used for read access.
     */
    value: function get(resourceUrn) {
      var cdnAcceleration = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
      var url = this._endpoint + '/share/urn/' + resourceUrn;
      var params = {
        cdnAcceleration: cdnAcceleration
      };
      var headers = {
        'x-sharing-password': btoa(this.sharingPassword)
      };
      return this.getRequest({
        url: url,
        headers: headers,
        params: params
      });
    }
  }]);

  return ShareContentService;
}(_DAO3.default);

exports.default = (0, _utils.InstanceCreator)(ShareContentService, InstanceConfig);
module.exports = exports['default'];

/***/ }),

/***/ "X6X4":
/***/ (function(module) {

module.exports = JSON.parse("{\"Clear search\":\"Borrar búsqueda\"}");

/***/ }),

/***/ "X9D3":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var _interopRequireDefault = __webpack_require__("TqRt");

exports.__esModule = true;
exports.default = hyphenateStyleName;

var _hyphenate = _interopRequireDefault(__webpack_require__("2DY1"));
/**
 * Copyright 2013-2014, Facebook, Inc.
 * All rights reserved.
 * https://github.com/facebook/react/blob/2aeb8a2a6beb00617a4217f7f8284924fa2ad819/src/vendor/core/hyphenateStyleName.js
 */


var msPattern = /^ms-/;

function hyphenateStyleName(string) {
  return (0, _hyphenate.default)(string).replace(msPattern, '-ms-');
}

module.exports = exports["default"];

/***/ }),

/***/ "X9Wd":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

const _excluded = ["styles"];

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }

function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

var _default = _ref => {
  let {
    styles = {}
  } = _ref,
      props = _objectWithoutProperties(_ref, _excluded);

  return /*#__PURE__*/_react.default.createElement("svg", _extends({
    xmlns: "http://www.w3.org/2000/svg",
    width: "280",
    height: "160",
    viewBox: "0 0 280 160"
  }, props), /*#__PURE__*/_react.default.createElement("path", {
    d: "M106.246 59.055a5.584 5.584 0 0 1 3.333-7.148l11.975-4.359a1.5 1.5 0 0 1 1.027 2.82l-11.976 4.358a2.58 2.58 0 0 0-1.54 3.302l17.894 49.163a2.577 2.577 0 0 0 3.3 1.54l33.037-12a2.576 2.576 0 0 0 1.541-3.303l-2.507-6.89a1.5 1.5 0 0 1 2.819-1.025l2.508 6.89a5.577 5.577 0 0 1-3.337 7.148l-33.036 12a5.577 5.577 0 0 1-7.144-3.334zm26.043 40.094a1.003 1.003 0 0 0 .342-.06l22.646-8.243a1 1 0 1 0-.684-1.88l-22.646 8.244a1 1 0 0 0 .342 1.94zm8.756-13.464a1.002 1.002 0 0 0-1.293-.573l-10.721 4.144a1 1 0 1 0 .72 1.865l10.722-4.143a1 1 0 0 0 .572-1.293zM126 75.772V30.228A6.263 6.263 0 0 1 132.283 24h26.327a6.26 6.26 0 0 1 4.436 1.827l8.11 8.045A6.275 6.275 0 0 1 173 38.297v37.475A6.263 6.263 0 0 1 166.717 82h-34.434A6.263 6.263 0 0 1 126 75.772zm3 0A3.26 3.26 0 0 0 132.283 79h34.434A3.26 3.26 0 0 0 170 75.772V38.297a3.255 3.255 0 0 0-.956-2.295l-8.11-8.045A3.28 3.28 0 0 0 158.61 27h-26.327A3.26 3.26 0 0 0 129 30.228zm55.916 14.216c1.84-11.566-2.57-19.393-6.702-23.982a1.5 1.5 0 1 0-2.23 2.008c3.851 4.276 7.968 11.72 5.716 22.905a1.5 1.5 0 0 0 1.247 1.78c18.466 2.778 25.921 16.805 25.034 28.663-.775 10.366-8.194 20.824-23.022 20.824l-97.916-.003c-8.594 0-12.506-3.857-14.274-7.091-2.636-4.821-2.203-11.497 1.077-16.612a13.707 13.707 0 0 1 12.74-6.602 1.476 1.476 0 0 0 1.3-.589 1.5 1.5 0 0 0 .218-1.41 19.425 19.425 0 0 1 2.012-16.484 24.842 24.842 0 0 1 17.799-11.645 1.5 1.5 0 0 0-.444-2.967 27.832 27.832 0 0 0-19.928 13.069 22.726 22.726 0 0 0-2.867 17.011 16.68 16.68 0 0 0-13.355 7.996c-3.855 6.012-4.33 13.917-1.185 19.671 3.05 5.58 9.055 8.653 16.907 8.653l97.916.003c16.75 0 25.135-11.853 26.014-23.6.962-12.86-6.814-28.004-26.057-31.598zm-28.96-32.391a3.962 3.962 0 0 1 4.016-3.926 3.913 3.913 0 0 1 2.78 1.214 3.99 3.99 0 0 1-2.84 6.757h-.06a3.976 3.976 0 0 1-3.895-4.045zm2 .03a1.955 1.955 0 1 0 3.355-1.356 1.927 1.927 0 0 0-1.37-.6 1.973 1.973 0 0 0-1.984 1.956zm-23.558 15.809a1 1 0 0 1 .218-1.092l10.706-10.662a1.527 1.527 0 0 1 1.197-.482 1.654 1.654 0 0 1 1.176.512l4.412 4.696 1.85-1.908a1.835 1.835 0 0 1 2.6.02l7.317 7.795a1 1 0 0 1-.727 1.685l-27.823.053a1.003 1.003 0 0 1-.926-.617zm19.08-5.569l3.893 4.144 3.468-.007-5.594-5.96zm-15.73 4.181l16.884-.032-8.147-8.67z",
    fill: "#5c5c5c"
  }));
};

exports.default = _default;

/***/ }),

/***/ "XFcg":
/***/ (function(module, exports, __webpack_require__) {

module.exports = __webpack_require__.p + "assets/projects/S_Illu_EmptyCanvasFile_Color01.png";

/***/ }),

/***/ "XJU/":
/***/ (function(module, exports, __webpack_require__) {

var hide = __webpack_require__("NegM");

module.exports = function (target, src, safe) {
  for (var key in src) {
    if (safe && target[key]) target[key] = src[key];else hide(target, key, src[key]);
  }

  return target;
};

/***/ }),

/***/ "XKPU":
/***/ (function(module, exports, __webpack_require__) {

module.exports = __webpack_require__.p + "assets/start/XD_Join_The_Daily_Creative_Challenge@2x.jpg";

/***/ }),

/***/ "XLbu":
/***/ (function(module, exports, __webpack_require__) {

// https://github.com/DavidBruant/Map-Set.prototype.toJSON
var $export = __webpack_require__("Y7ZC");

$export($export.P + $export.R, 'Map', {
  toJSON: __webpack_require__("8iia")('Map')
});

/***/ }),

/***/ "XN0l":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("path", {
  d: "M28.286 28a5.714 5.714 0 1 0 0-11.429 5.777 5.777 0 0 0-.645.037 7.239 7.239 0 1 0-14.153-2.876 6.1 6.1 0 0 0-7.473 7.461A3.429 3.429 0 1 0 5.43 28z"
}));

/***/ }),

/***/ "XO7w":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

var _UxpVideoHelper = _interopRequireDefault(__webpack_require__("y008"));

var _Video = _interopRequireDefault(__webpack_require__("V2gg"));

const _excluded = ["height", "width"];

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

class UxpVideo extends _Video.default {
  constructor(props) {
    super(props);
    this.state = {
      seekTo: 0,
      dialogClosed: true
    };
    this.fVideoHeight = this.props.fVideoHeight || 576;
    this.fVideoWidth = this.props.fVideoWidth || 1024;
  }

  toggleMaximize(seconds, dialogClosed) {
    if (this.state.dialogClosed) {
      this.videoDialogRef.showModal();
    } else {
      this.videoDialogRef.close();
    }

    this.setState({
      seekTo: seconds,
      dialogClosed: dialogClosed
    });
  }

  handleCCIconClick(enableCC) {
    let height = this.fVideoHeight + 60;
    let width = this.fVideoWidth;
    let captionedHeight = this.fVideoHeight + 98;

    if (enableCC) {
      this.videoDialogRef.resizeTo(width, captionedHeight);
    } else {
      this.videoDialogRef.resizeTo(width, height);
    }
  }

  render() {
    const _this$props = this.props,
          {
      height,
      width
    } = _this$props,
          otherProps = _objectWithoutProperties(_this$props, _excluded);

    return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_UxpVideoHelper.default, _extends({
      height: height,
      width: width,
      seekTo: this.state.seekTo,
      toggleMaximize: (seconds, dialogClosed) => this.toggleMaximize(seconds, dialogClosed)
    }, otherProps), this.props.children), this.props.enableFullScreen && /*#__PURE__*/_react.default.createElement("dialog", {
      ref: r => this.videoDialogRef = r,
      onClose: () => {
        this.setState({
          dialogClosed: true
        });
      }
    }, /*#__PURE__*/_react.default.createElement(_UxpVideoHelper.default, _extends({
      height: this.fVideoHeight,
      width: this.fVideoWidth,
      seekTo: this.state.seekTo,
      handleCCIconClick: enableCC => this.handleCCIconClick(enableCC),
      toggleMaximize: (seconds, dialogClosed) => this.toggleMaximize(seconds, dialogClosed),
      isModalVideo: true
    }, otherProps), this.props.children)));
  }

}

exports.default = UxpVideo;

/***/ }),

/***/ "XQlG":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(process) {/* unused harmony export Env */
/* unused harmony export LogLevel */
/* unused harmony export LecLogLevel */
/* unused harmony export LicenseStatus */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return AssetType; });
/* unused harmony export OrderDirection */
/* unused harmony export OrderField */
/* unused harmony export AssetListStatus */
/* unused harmony export ConflictResolution */
/* unused harmony export AssetSyncStatus */
/* unused harmony export AssetSyncOperation */
/* unused harmony export AssetSyncDirection */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return AssetSyncSuspensionReason; });
/* unused harmony export CloudSyncStatus */
/* unused harmony export NetworkStatus */
/* unused harmony export CommitStatus */
/* unused harmony export ACPLModelErrorCode */
/* unused harmony export AcplV2RoutingMode */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ACPLModel; });
//
//  ADOBE CONFIDENTIAL
//  __________________
//
//  Copyright 2020 Adobe
//  All Rights Reserved.
//
//  NOTICE:  All information contained herein is, and remains
//  the property of Adobe and its suppliers, if any. The intellectual
//  and technical concepts contained herein are proprietary to Adobe
//  and its suppliers and are protected by all applicable intellectual
//  property laws, including trade secret and copyright laws.
//  Dissemination of this information or reproduction of this material
//  is strictly forbidden unless prior written permission is obtained
//  from Adobe.
//
var _a;
// copied from Environment.ts
var Env;
(function (Env) {
    Env[Env["Stage"] = 0] = "Stage";
    Env[Env["Production"] = 1] = "Production";
})(Env || (Env = {}));
// Matches ACPL log level enum
var LogLevel;
(function (LogLevel) {
    LogLevel[LogLevel["Off"] = 0] = "Off";
    LogLevel[LogLevel["Err"] = 1] = "Err";
    LogLevel[LogLevel["Warn"] = 2] = "Warn";
    LogLevel[LogLevel["Info"] = 3] = "Info";
    LogLevel[LogLevel["Debug"] = 4] = "Debug";
})(LogLevel || (LogLevel = {}));
var LecLogLevel;
(function (LecLogLevel) {
    LecLogLevel[LecLogLevel["Off"] = 0] = "Off";
    LecLogLevel[LecLogLevel["Print"] = 1] = "Print";
    LecLogLevel[LecLogLevel["Err"] = 2] = "Err";
    LecLogLevel[LecLogLevel["Warn"] = 3] = "Warn";
    LecLogLevel[LecLogLevel["Prof"] = 4] = "Prof";
    LecLogLevel[LecLogLevel["Info"] = 5] = "Info";
    LecLogLevel[LecLogLevel["Debug"] = 6] = "Debug";
    LecLogLevel[LecLogLevel["Trace"] = 7] = "Trace";
})(LecLogLevel || (LecLogLevel = {}));
// TODO: find values for this or verify it is unused and remove.
//       The enum is not exposed in JS bindings.
var LicenseStatus;
(function (LicenseStatus) {
})(LicenseStatus || (LicenseStatus = {}));
// copied from AdobeAsset.ts
var AssetType;
(function (AssetType) {
    AssetType[AssetType["Folder"] = 256] = "Folder";
    AssetType[AssetType["File"] = 512] = "File";
    AssetType[AssetType["Composite"] = 1024] = "Composite";
})(AssetType || (AssetType = {}));
var OrderDirection;
(function (OrderDirection) {
    OrderDirection[OrderDirection["Ascending"] = 0] = "Ascending";
    OrderDirection[OrderDirection["Descending"] = 1] = "Descending";
})(OrderDirection || (OrderDirection = {}));
var OrderField;
(function (OrderField) {
    OrderField[OrderField["Name"] = 0] = "Name";
    OrderField[OrderField["Modified"] = 1] = "Modified";
    OrderField[OrderField["Created"] = 2] = "Created";
    OrderField[OrderField["Shared"] = 3] = "Shared";
})(OrderField || (OrderField = {}));
// copied from SAM.js
// Must match GenericListStatus enum from SAM.cpp
var AssetListStatus;
(function (AssetListStatus) {
    AssetListStatus[AssetListStatus["NotStarted"] = 1] = "NotStarted";
    AssetListStatus[AssetListStatus["HadLoaderErrors"] = 2] = "HadLoaderErrors";
    AssetListStatus[AssetListStatus["Loading"] = 3] = "Loading";
    AssetListStatus[AssetListStatus["ReadyHasMorePages"] = 4] = "ReadyHasMorePages";
    AssetListStatus[AssetListStatus["ReadyFullyLoaded"] = 5] = "ReadyFullyLoaded";
})(AssetListStatus || (AssetListStatus = {}));
// TODO: find values for this or verify it is unused and remove.
//       The enum is not exposed in JS bindings.
var ConflictResolution;
(function (ConflictResolution) {
})(ConflictResolution || (ConflictResolution = {}));
var AssetSyncStatus;
(function (AssetSyncStatus) {
    AssetSyncStatus[AssetSyncStatus["InSync"] = 0] = "InSync";
    AssetSyncStatus[AssetSyncStatus["OutOfSync"] = 1] = "OutOfSync";
    AssetSyncStatus[AssetSyncStatus["SyncConflict"] = 2] = "SyncConflict";
    AssetSyncStatus[AssetSyncStatus["SyncError"] = 3] = "SyncError";
    AssetSyncStatus[AssetSyncStatus["Syncing"] = 4] = "Syncing";
})(AssetSyncStatus || (AssetSyncStatus = {}));
var AssetSyncOperation;
(function (AssetSyncOperation) {
    AssetSyncOperation[AssetSyncOperation["Create"] = 0] = "Create";
    AssetSyncOperation[AssetSyncOperation["Update"] = 1] = "Update";
    AssetSyncOperation[AssetSyncOperation["Archive"] = 2] = "Archive";
    AssetSyncOperation[AssetSyncOperation["Deleted"] = 3] = "Deleted";
})(AssetSyncOperation || (AssetSyncOperation = {}));
var AssetSyncDirection;
(function (AssetSyncDirection) {
    AssetSyncDirection[AssetSyncDirection["SyncToCloud"] = 0] = "SyncToCloud";
    AssetSyncDirection[AssetSyncDirection["SyncFromCloud"] = 1] = "SyncFromCloud";
})(AssetSyncDirection || (AssetSyncDirection = {}));
var AssetSyncSuspensionReason;
(function (AssetSyncSuspensionReason) {
    AssetSyncSuspensionReason[AssetSyncSuspensionReason["None"] = 0] = "None";
    AssetSyncSuspensionReason[AssetSyncSuspensionReason["CloudContentCorrupted"] = 1] = "CloudContentCorrupted";
    AssetSyncSuspensionReason[AssetSyncSuspensionReason["LocalContentCorrupted"] = 2] = "LocalContentCorrupted";
    AssetSyncSuspensionReason[AssetSyncSuspensionReason["HasTooManyComponents"] = 3] = "HasTooManyComponents";
    AssetSyncSuspensionReason[AssetSyncSuspensionReason["HasTooManyChildren"] = 4] = "HasTooManyChildren";
    AssetSyncSuspensionReason[AssetSyncSuspensionReason["MaximumSizeExceeded"] = 5] = "MaximumSizeExceeded";
    AssetSyncSuspensionReason[AssetSyncSuspensionReason["Unknown"] = 6] = "Unknown";
})(AssetSyncSuspensionReason || (AssetSyncSuspensionReason = {}));
var CloudSyncStatus;
(function (CloudSyncStatus) {
    CloudSyncStatus[CloudSyncStatus["Initializing"] = 0] = "Initializing";
    CloudSyncStatus[CloudSyncStatus["Offline"] = 1] = "Offline";
    CloudSyncStatus[CloudSyncStatus["NotStarted"] = 2] = "NotStarted";
    CloudSyncStatus[CloudSyncStatus["Disabled"] = 3] = "Disabled";
    CloudSyncStatus[CloudSyncStatus["Synchronized"] = 4] = "Synchronized";
    CloudSyncStatus[CloudSyncStatus["InProgress"] = 5] = "InProgress";
    CloudSyncStatus[CloudSyncStatus["ErrorQuotaExceeded"] = 6] = "ErrorQuotaExceeded";
    CloudSyncStatus[CloudSyncStatus["ErrorSyncDown"] = 7] = "ErrorSyncDown";
    CloudSyncStatus[CloudSyncStatus["ErrorOther"] = 8] = "ErrorOther";
})(CloudSyncStatus || (CloudSyncStatus = {}));
var NetworkStatus;
(function (NetworkStatus) {
    NetworkStatus[NetworkStatus["Offline"] = 0] = "Offline";
    NetworkStatus[NetworkStatus["Wan"] = 1] = "Wan";
    NetworkStatus[NetworkStatus["Cellular"] = 2] = "Cellular";
})(NetworkStatus || (NetworkStatus = {}));
var CommitStatus;
(function (CommitStatus) {
    CommitStatus[CommitStatus["NoErr"] = 0] = "NoErr";
    CommitStatus[CommitStatus["Conflict"] = 1] = "Conflict";
    CommitStatus[CommitStatus["DeleteConflict"] = 2] = "DeleteConflict";
    CommitStatus[CommitStatus["ParentDeletedConflict"] = 3] = "ParentDeletedConflict";
})(CommitStatus || (CommitStatus = {}));
var ACPLModelErrorCode;
(function (ACPLModelErrorCode) {
    ACPLModelErrorCode[ACPLModelErrorCode["None"] = 0] = "None";
    ACPLModelErrorCode[ACPLModelErrorCode["GenericProgramError"] = 1] = "GenericProgramError";
    ACPLModelErrorCode[ACPLModelErrorCode["GenericRetriableError"] = 2] = "GenericRetriableError";
    ACPLModelErrorCode[ACPLModelErrorCode["FullDiskSpace"] = 3] = "FullDiskSpace";
    ACPLModelErrorCode[ACPLModelErrorCode["FullCloudStorage"] = 4] = "FullCloudStorage";
    ACPLModelErrorCode[ACPLModelErrorCode["NoInternetConnection"] = 5] = "NoInternetConnection";
    ACPLModelErrorCode[ACPLModelErrorCode["RequestTimedOut"] = 6] = "RequestTimedOut";
    ACPLModelErrorCode[ACPLModelErrorCode["UserCancelled"] = 7] = "UserCancelled";
    ACPLModelErrorCode[ACPLModelErrorCode["CoreSyncNotReachable"] = 8] = "CoreSyncNotReachable";
    ACPLModelErrorCode[ACPLModelErrorCode["CoreSyncNotCompatible"] = 9] = "CoreSyncNotCompatible";
    ACPLModelErrorCode[ACPLModelErrorCode["LoggedInUserLimitExceeded"] = 10] = "LoggedInUserLimitExceeded";
    ACPLModelErrorCode[ACPLModelErrorCode["PendingUncommittedChangesFromThisApp"] = 11] = "PendingUncommittedChangesFromThisApp";
    ACPLModelErrorCode[ACPLModelErrorCode["PendingUncommittedChangesFromAnotherApp"] = 12] = "PendingUncommittedChangesFromAnotherApp";
    ACPLModelErrorCode[ACPLModelErrorCode["OutOfBounds"] = 13] = "OutOfBounds";
    ACPLModelErrorCode[ACPLModelErrorCode["NetworkError"] = 14] = "NetworkError";
    ACPLModelErrorCode[ACPLModelErrorCode["OperationIgnored"] = 15] = "OperationIgnored";
    ACPLModelErrorCode[ACPLModelErrorCode["DiskIOError"] = 16] = "DiskIOError";
    ACPLModelErrorCode[ACPLModelErrorCode["ConflictOfSamePathOrName"] = 17] = "ConflictOfSamePathOrName";
    ACPLModelErrorCode[ACPLModelErrorCode["UserDenyListedPleaseContactSupport"] = 18] = "UserDenyListedPleaseContactSupport";
    ACPLModelErrorCode[ACPLModelErrorCode["OperatingOnOnlineOnlyAssetWhileDeviceIsOffline"] = 19] = "OperatingOnOnlineOnlyAssetWhileDeviceIsOffline";
    ACPLModelErrorCode[ACPLModelErrorCode["UnsupportedFeature"] = 20] = "UnsupportedFeature";
    ACPLModelErrorCode[ACPLModelErrorCode["CannotPerformOpWhenAssetNotInSync"] = 21] = "CannotPerformOpWhenAssetNotInSync";
    ACPLModelErrorCode[ACPLModelErrorCode["FilePathInvalid"] = 22] = "FilePathInvalid";
    ACPLModelErrorCode[ACPLModelErrorCode["SyncingFailed"] = 23] = "SyncingFailed";
    ACPLModelErrorCode[ACPLModelErrorCode["ResourceNotFound"] = 24] = "ResourceNotFound";
    ACPLModelErrorCode[ACPLModelErrorCode["NoUserRegistered"] = 25] = "NoUserRegistered";
    ACPLModelErrorCode[ACPLModelErrorCode["UserNotRegisteredForSync"] = 26] = "UserNotRegisteredForSync";
    ACPLModelErrorCode[ACPLModelErrorCode["CannotRenameAssetUsingDCTitle"] = 27] = "CannotRenameAssetUsingDCTitle";
    ACPLModelErrorCode[ACPLModelErrorCode["CoreSyncBinaryNotFound"] = 28] = "CoreSyncBinaryNotFound";
    ACPLModelErrorCode[ACPLModelErrorCode["CoreSyncNotInstalled"] = 29] = "CoreSyncNotInstalled";
    ACPLModelErrorCode[ACPLModelErrorCode["OperationForbidden"] = 30] = "OperationForbidden";
    ACPLModelErrorCode[ACPLModelErrorCode["CannotJoinAsset"] = 31] = "CannotJoinAsset";
    ACPLModelErrorCode[ACPLModelErrorCode["CannotLeaveAsset"] = 32] = "CannotLeaveAsset";
    ACPLModelErrorCode[ACPLModelErrorCode["AssetOpenedByOtherUser"] = 33] = "AssetOpenedByOtherUser";
    ACPLModelErrorCode[ACPLModelErrorCode["PresenceNotEnabledByClient"] = 34] = "PresenceNotEnabledByClient";
    ACPLModelErrorCode[ACPLModelErrorCode["CannotProvideJoinedUsers"] = 35] = "CannotProvideJoinedUsers";
    ACPLModelErrorCode[ACPLModelErrorCode["AlreadyRepoNameMigrated"] = 36] = "AlreadyRepoNameMigrated";
    // 37 is not defined in UserFacingErrorCodes.h
    ACPLModelErrorCode[ACPLModelErrorCode["AssetNotForked"] = 38] = "AssetNotForked";
    ACPLModelErrorCode[ACPLModelErrorCode["ContextNotAvailable"] = 39] = "ContextNotAvailable";
    ACPLModelErrorCode[ACPLModelErrorCode["ClientJsAssetContextNotSet"] = 40] = "ClientJsAssetContextNotSet";
    ACPLModelErrorCode[ACPLModelErrorCode["UnsupportedAssetType"] = 41] = "UnsupportedAssetType";
    ACPLModelErrorCode[ACPLModelErrorCode["CannotProvideExtAssetRef"] = 42] = "CannotProvideExtAssetRef";
    ACPLModelErrorCode[ACPLModelErrorCode["CommitError"] = 43] = "CommitError";
    ACPLModelErrorCode[ACPLModelErrorCode["CommitOfOrphanError"] = 44] = "CommitOfOrphanError";
    ACPLModelErrorCode[ACPLModelErrorCode["MalformedJsonError"] = 45] = "MalformedJsonError";
    ACPLModelErrorCode[ACPLModelErrorCode["UserNotOnline"] = 46] = "UserNotOnline";
    ACPLModelErrorCode[ACPLModelErrorCode["NotAcplV2Asset"] = 47] = "NotAcplV2Asset";
    ACPLModelErrorCode[ACPLModelErrorCode["UnableToMoveToForeground"] = 48] = "UnableToMoveToForeground";
    ACPLModelErrorCode[ACPLModelErrorCode["UnableToMoveToBackground"] = 49] = "UnableToMoveToBackground";
    ACPLModelErrorCode[ACPLModelErrorCode["InvalidContext"] = 50] = "InvalidContext";
    ACPLModelErrorCode[ACPLModelErrorCode["NotAvailableOffline"] = 51] = "NotAvailableOffline";
    ACPLModelErrorCode[ACPLModelErrorCode["CannotPurge"] = 52] = "CannotPurge";
    ACPLModelErrorCode[ACPLModelErrorCode["InvalidParameter"] = 53] = "InvalidParameter";
    ACPLModelErrorCode[ACPLModelErrorCode["CannotDuplicate"] = 54] = "CannotDuplicate";
    ACPLModelErrorCode[ACPLModelErrorCode["IncorrectSpacesMetadataFormat"] = 55] = "IncorrectSpacesMetadataFormat";
    ACPLModelErrorCode[ACPLModelErrorCode["DirectoryNotEmpty"] = 56] = "DirectoryNotEmpty";
    ACPLModelErrorCode[ACPLModelErrorCode["CannotCreateFork"] = 57] = "CannotCreateFork";
    ACPLModelErrorCode[ACPLModelErrorCode["CannotOpenArchivedAsset"] = 58] = "CannotOpenArchivedAsset";
    ACPLModelErrorCode[ACPLModelErrorCode["OperationNotSupported"] = 59] = "OperationNotSupported";
    ACPLModelErrorCode[ACPLModelErrorCode["ParentNotFound"] = 60] = "ParentNotFound";
    ACPLModelErrorCode[ACPLModelErrorCode["UnableToCreateAssetRef"] = 61] = "UnableToCreateAssetRef";
    ACPLModelErrorCode[ACPLModelErrorCode["UnableToPurgeExistingFork"] = 62] = "UnableToPurgeExistingFork";
    ACPLModelErrorCode[ACPLModelErrorCode["SyncFailedEditEdit"] = 63] = "SyncFailedEditEdit";
    ACPLModelErrorCode[ACPLModelErrorCode["SyncFailedEditDelete"] = 64] = "SyncFailedEditDelete";
    ACPLModelErrorCode[ACPLModelErrorCode["AccessToAssetRevoked"] = 65] = "AccessToAssetRevoked";
    ACPLModelErrorCode[ACPLModelErrorCode["FailedToGetAssetPermissions"] = 66] = "FailedToGetAssetPermissions";
    ACPLModelErrorCode[ACPLModelErrorCode["CannotPerformOpWhenCoreSyncPaused"] = 67] = "CannotPerformOpWhenCoreSyncPaused";
    ACPLModelErrorCode[ACPLModelErrorCode["UnableToRetrieveOwnerId"] = 68] = "UnableToRetrieveOwnerId";
    ACPLModelErrorCode[ACPLModelErrorCode["UnableToRetrieveXMPMetadata"] = 69] = "UnableToRetrieveXMPMetadata";
    ACPLModelErrorCode[ACPLModelErrorCode["UnableToSetArtifactMetadata"] = 70] = "UnableToSetArtifactMetadata";
    ACPLModelErrorCode[ACPLModelErrorCode["UnableToGetArtifactMetadata"] = 71] = "UnableToGetArtifactMetadata";
    ACPLModelErrorCode[ACPLModelErrorCode["UnableToCreateArtifact"] = 72] = "UnableToCreateArtifact";
    ACPLModelErrorCode[ACPLModelErrorCode["UnableToUpdateArtifact"] = 73] = "UnableToUpdateArtifact";
    ACPLModelErrorCode[ACPLModelErrorCode["UnableToReplaceArtifactContent"] = 74] = "UnableToReplaceArtifactContent";
    ACPLModelErrorCode[ACPLModelErrorCode["UnableToRetrieveSpace"] = 75] = "UnableToRetrieveSpace";
})(ACPLModelErrorCode || (ACPLModelErrorCode = {}));
var AcplV2RoutingMode;
(function (AcplV2RoutingMode) {
    AcplV2RoutingMode[AcplV2RoutingMode["None"] = 0] = "None";
    AcplV2RoutingMode[AcplV2RoutingMode["Legacy"] = 1] = "Legacy";
    AcplV2RoutingMode[AcplV2RoutingMode["Hybrid"] = 2] = "Hybrid";
    AcplV2RoutingMode[AcplV2RoutingMode["All"] = 3] = "All";
})(AcplV2RoutingMode || (AcplV2RoutingMode = {}));
const isUnitTestEnv = ((_a = process === null || process === void 0 ? void 0 : process.env) === null || _a === void 0 ? void 0 : _a.JEST_WORKER_ID) !== undefined;
if (!window.acplModel && !isUnitTestEnv) {
    // notify developers using sam bindings that their host app hasn't provided
    // the acplModel global object via seal
    const message = 'SAM JS Bindings Error\n'
        + 'The host app must meet the following requirements to be compatible with the SAM JS bindings:\n'
        + '  1. The host app must be built with SAMv2\'s C++ library.\n'
        + '  2. The host app must provide the ACPLModel global object via SEAL\n'
        + 'Visit https://git.corp.adobe.com/torq/acpl-model/blob/main/README.md for more info';
    // eslint-disable-next-line no-console
    console.warn(message);
}
if (!window.acplModel && isUnitTestEnv) {
    /*
     * For unit tests in JS clients, it is difficult to mock out the C++ constants. This implementation is meant
     * to act as a placeholder for JS unit test frameworks to use to generate mocks easily.
     */
    // eslint-disable-next-line no-console
    console.info('[acpl-model-uxp-types] Constructing mock ACPLModel for unit tests. Some web clients may'
        + ' see this message if a component imports SAM dependencies, which is not harmful.');
    const notImplemented = () => console.error('[acpl-model-uxp-types] ACPLModel is not implemented. It is for unit'
        + ' testing only.');
    const acplModelMock = {
        version: '0.0.0',
        acplVersion: '0.0.0',
        applicationAssetContext: null,
        HostConfig: notImplemented,
        Environment: Env,
        DeviceInfo: {},
        LogsConfig: {},
        AcplLogLevel: LogLevel,
        LecLogLevel,
        AssetType,
        OrderDirection,
        OrderField,
        ACPLModelErrorCode,
        AssetListStatus,
        AssetSyncStatus,
        AssetSyncOperation,
        AssetSyncDirection,
        AssetSyncSuspensionReason,
        CommitStatus,
        CloudSyncStatus,
        NetworkStatus,
        AcplV2RoutingMode,
        Workflows: notImplemented,
        getHostAssetContext: async () => notImplemented(),
        off: notImplemented,
        on: notImplemented,
        waitForApplicationContextReady: async () => notImplemented()
    };
    window.acplModel = acplModelMock;
}
const ACPLModel = window.acplModel;

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("8oxB")))

/***/ }),

/***/ "XRuF":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("2vnA");
/* harmony import */ var _types_IAssetModel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("avlf");
/* harmony import */ var _types_IAssetModel__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_types_IAssetModel__WEBPACK_IMPORTED_MODULE_1__);
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2019 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
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;
};
var __metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var _a, _b, _c, _d, _e, _f;


/**
 * Default (lowest priority) error category for assetOp() operations
 */
const OP_ERR_DEFAULT_CATEGORY = 'general';
class BatchState {
    constructor(config) {
        this.successCount = 0;
        this.errorCountByCategory = new Map([[OP_ERR_DEFAULT_CATEGORY, 0]]);
        this.toastItemName = '';
        this.criticalErrCategory = '';
        this.isUndo = false;
        Object.assign(this, config);
    }
    static create(config) {
        return new BatchState(config);
    }
    get errorCount() {
        // Add up the counts by category
        return [...this.errorCountByCategory.values()].reduce((sum, count) => sum + count, 0);
    }
    get hasCriticalErrors() {
        // Critical errors are any non-generic error
        return Boolean(this.criticalErrCategory);
    }
    get criticalErrCount() {
        return this.errorCountByCategory.get(this.criticalErrCategory) || 0;
    }
    get hasErrors() {
        return this.errorCount > 0;
    }
    get completedCount() {
        return this.successCount + this.errorCount;
    }
    get inProgressNum() {
        // Assume one item is under progress now, clamp to batchSize
        return Math.min(this.completedCount + 1, this.batchSize);
    }
    get toastData() {
        let count;
        if (this.hasCriticalErrors) {
            count = this.criticalErrCount;
        }
        else if (this.hasErrors) {
            count = this.errorCount;
        }
        else {
            count = this.successCount;
        }
        const variant = this.hasErrors ? 'error' : 'success';
        // e.g. 'operation.move.success' or 'operation.archive.error' or 'operation.rename.error.duplicateName'
        //      NOTE: DocumentStore.showToast will prefix message with 'toast.'
        const message = [
            'operation',
            this.opName,
            this.isUndo && 'undo',
            variant,
            this.criticalErrCategory,
        ]
            .filter(Boolean)
            .join('.');
        let actionProps = {};
        if (this.undoOp && !this.isUndo && !this.hasErrors) {
            actionProps = {
                action: this.undoOp,
                actionLabelMsgId: 'toast.operation.undoLabel',
            };
        }
        return {
            message,
            variant,
            values: {
                name: this.toastItemName,
                count,
            },
            ...actionProps,
        };
    }
    get progressData() {
        return {
            msgId: `operation.progress.${this.opName}`,
            inProgressNum: this.inProgressNum,
            // eslint-disable-next-line @typescript-eslint/no-magic-numbers
            progressPercent: Math.round((this.completedCount / this.batchSize) * 100),
            batchSize: this.batchSize,
        };
    }
    setUndoOp(undoOp) {
        this.undoOp = undoOp;
    }
    addSuccess(element) {
        this.successCount++;
        if (!this.errorCount) {
            this.toastItemName = element.title;
        }
    }
    addError(element, category = OP_ERR_DEFAULT_CATEGORY) {
        if (category !== OP_ERR_DEFAULT_CATEGORY) {
            this.criticalErrCategory = category;
            // Even if there's a mix of success/error/critical error, only show the critical error
            this.toastItemName = element.title;
        }
        if (!this.criticalErrCategory) {
            // If there's a mix of success/error but not critical errors, on show the general error
            this.toastItemName = element.title;
        }
        if (!this.errorCountByCategory.has(category)) {
            this.errorCountByCategory.set(category, 1);
        }
        else {
            const curCount = this.errorCountByCategory.get(category);
            this.errorCountByCategory.set(category, curCount + 1);
        }
    }
    /**
     * Clear all fields for "idle" state when nothing is being processed
     */
    reset() {
        this.opName = '';
        this.successCount = 0;
        this.errorCountByCategory.clear();
        this.toastItemName = '';
        this.criticalErrCategory = '';
        this.batchSize = 1; // avoid divide by zero
        this.undoOp = undefined;
    }
    /**
     *
     * @param opName
     * @param batchSize
     * @private
     */
    _set__FOR_TEST_ONLY({ 
    // eslint-disable-line camelcase
    opName, batchSize, successCount, toastItemName, }) {
        this.opName = opName || this.opName;
        this.batchSize = batchSize || this.batchSize;
        this.successCount = successCount === undefined ? this.successCount : successCount;
        this.toastItemName = toastItemName === undefined ? this.toastItemName : toastItemName;
    }
}
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", Number)
], BatchState.prototype, "successCount", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", typeof (_a = typeof Map !== "undefined" && Map) === "function" ? _a : Object)
], BatchState.prototype, "errorCountByCategory", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", String)
], BatchState.prototype, "criticalErrCategory", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", typeof (_b = typeof Function !== "undefined" && Function) === "function" ? _b : Object)
], BatchState.prototype, "undoOp", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], BatchState.prototype, "errorCount", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], BatchState.prototype, "hasCriticalErrors", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], BatchState.prototype, "criticalErrCount", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], BatchState.prototype, "hasErrors", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], BatchState.prototype, "completedCount", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], BatchState.prototype, "inProgressNum", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], BatchState.prototype, "toastData", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [typeof (_c = typeof Function !== "undefined" && Function) === "function" ? _c : Object]),
    __metadata("design:returntype", void 0)
], BatchState.prototype, "setUndoOp", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [typeof (_d = typeof _types_IAssetModel__WEBPACK_IMPORTED_MODULE_1___default.a !== "undefined" && _types_IAssetModel__WEBPACK_IMPORTED_MODULE_1___default.a) === "function" ? _d : Object]),
    __metadata("design:returntype", void 0)
], BatchState.prototype, "addSuccess", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [typeof (_e = typeof _types_IAssetModel__WEBPACK_IMPORTED_MODULE_1___default.a !== "undefined" && _types_IAssetModel__WEBPACK_IMPORTED_MODULE_1___default.a) === "function" ? _e : Object, String]),
    __metadata("design:returntype", void 0)
], BatchState.prototype, "addError", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", []),
    __metadata("design:returntype", void 0)
], BatchState.prototype, "reset", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [typeof (_f = typeof Partial !== "undefined" && Partial) === "function" ? _f : Object]),
    __metadata("design:returntype", void 0)
], BatchState.prototype, "_set__FOR_TEST_ONLY", null);
/* harmony default export */ __webpack_exports__["a"] = (BatchState);


/***/ }),

/***/ "XSG9":
/***/ (function(module, exports, __webpack_require__) {

// extracted by mini-css-extract-plugin

/***/ }),

/***/ "XU6Z":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.removeEventProps = removeEventProps;
exports.attachEventListeners = attachEventListeners;
exports.removeEventListeners = removeEventListeners;
exports.updateEventListeners = updateEventListeners;
/*************************************************************************
* ADOBE CONFIDENTIAL
* ___________________
*
* Copyright 2021 Adobe
* All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains
* the property of Adobe and its suppliers, if any. The intellectual
* and technical concepts contained herein are proprietary to Adobe
* and its suppliers and are protected by all applicable intellectual
* property laws, including trade secret and copyright laws.
* Dissemination of this information or reproduction of this material
* is strictly forbidden unless prior written permission is obtained
* from Adobe.
**************************************************************************/

/**
* Remove the event props
*/

function removeEventProps(props) {
  const filteredProps = {}; // Remove all event related props to avoid duplicate handling of events.

  for (const prop in props) {
    if (!prop.startsWith('on')) {
      filteredProps[prop] = props[prop];
    }
  }

  return filteredProps;
}
/**
* Add event listeners for the all the event props for a given component
*/


function attachEventListeners(component, props, handleEvent) {
  if (component) {
    const eventProps = Object.keys(props).filter(propName => propName.startsWith('on'));
    eventProps.forEach(eventName => component.addEventListener(eventName.substr(2).toLowerCase(), handleEvent));
  }
}
/**
 * Remove event listeners for all the event props for a given component
 */


function removeEventListeners(component, props, handleEvent) {
  if (component) {
    const eventProps = Object.keys(props).filter(propName => propName.startsWith('on'));
    eventProps.forEach(([eventName]) => component.removeEventListener(eventName.substr(2).toLowerCase(), handleEvent));
  }
}
/**
 * Update the event listeners by adding event listeners for any newly added props.
 * returns true if it has updated otherwise false.
 */


function updateEventListeners(component, prevProps, props, handleEvent, updateAllEventListeners) {
  if (component && updateAllEventListeners) {
    attachEventListeners(component, props, handleEvent);
    return true;
  } else if (component) {
    const eventProps = Object.keys(props).filter(propName => !prevProps[propName] && propName.startsWith('on'));
    eventProps.forEach(eventName => component.addEventListener(eventName.substr(2).toLowerCase(), handleEvent));
    return true;
  } else {
    return false;
  }
}

/***/ }),

/***/ "XUei":
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/*
Copyright (c) 2014, Yahoo! Inc. All rights reserved.
Copyrights licensed under the New BSD License.
See the accompanying LICENSE file for terms.
*/

/* jslint esnext: true */


exports["default"] = Compiler;

function Compiler(locales, formats, pluralFn) {
  this.locales = locales;
  this.formats = formats;
  this.pluralFn = pluralFn;
}

Compiler.prototype.compile = function (ast) {
  this.pluralStack = [];
  this.currentPlural = null;
  this.pluralNumberFormat = null;
  return this.compileMessage(ast);
};

Compiler.prototype.compileMessage = function (ast) {
  if (!(ast && ast.type === 'messageFormatPattern')) {
    throw new Error('Message AST is not of type: "messageFormatPattern"');
  }

  var elements = ast.elements,
      pattern = [];
  var i, len, element;

  for (i = 0, len = elements.length; i < len; i += 1) {
    element = elements[i];

    switch (element.type) {
      case 'messageTextElement':
        pattern.push(this.compileMessageText(element));
        break;

      case 'argumentElement':
        pattern.push(this.compileArgument(element));
        break;

      default:
        throw new Error('Message element does not have a valid type');
    }
  }

  return pattern;
};

Compiler.prototype.compileMessageText = function (element) {
  // When this `element` is part of plural sub-pattern and its value contains
  // an unescaped '#', use a `PluralOffsetString` helper to properly output
  // the number with the correct offset in the string.
  if (this.currentPlural && /(^|[^\\])#/g.test(element.value)) {
    // Create a cache a NumberFormat instance that can be reused for any
    // PluralOffsetString instance in this message.
    if (!this.pluralNumberFormat) {
      this.pluralNumberFormat = new Intl.NumberFormat(this.locales);
    }

    return new PluralOffsetString(this.currentPlural.id, this.currentPlural.format.offset, this.pluralNumberFormat, element.value);
  } // Unescape the escaped '#'s in the message text.


  return element.value.replace(/\\#/g, '#');
};

Compiler.prototype.compileArgument = function (element) {
  var format = element.format;

  if (!format) {
    return new StringFormat(element.id);
  }

  var formats = this.formats,
      locales = this.locales,
      pluralFn = this.pluralFn,
      options;

  switch (format.type) {
    case 'numberFormat':
      options = formats.number[format.style];
      return {
        id: element.id,
        format: new Intl.NumberFormat(locales, options).format
      };

    case 'dateFormat':
      options = formats.date[format.style];
      return {
        id: element.id,
        format: new Intl.DateTimeFormat(locales, options).format
      };

    case 'timeFormat':
      options = formats.time[format.style];
      return {
        id: element.id,
        format: new Intl.DateTimeFormat(locales, options).format
      };

    case 'pluralFormat':
      options = this.compileOptions(element);
      return new PluralFormat(element.id, format.ordinal, format.offset, options, pluralFn);

    case 'selectFormat':
      options = this.compileOptions(element);
      return new SelectFormat(element.id, options);

    default:
      throw new Error('Message element does not have a valid format type');
  }
};

Compiler.prototype.compileOptions = function (element) {
  var format = element.format,
      options = format.options,
      optionsHash = {}; // Save the current plural element, if any, then set it to a new value when
  // compiling the options sub-patterns. This conforms the spec's algorithm
  // for handling `"#"` syntax in message text.

  this.pluralStack.push(this.currentPlural);
  this.currentPlural = format.type === 'pluralFormat' ? element : null;
  var i, len, option;

  for (i = 0, len = options.length; i < len; i += 1) {
    option = options[i]; // Compile the sub-pattern and save it under the options's selector.

    optionsHash[option.selector] = this.compileMessage(option.value);
  } // Pop the plural stack to put back the original current plural value.


  this.currentPlural = this.pluralStack.pop();
  return optionsHash;
}; // -- Compiler Helper Classes --------------------------------------------------


function StringFormat(id) {
  this.id = id;
}

StringFormat.prototype.format = function (value) {
  if (!value && typeof value !== 'number') {
    return '';
  }

  return typeof value === 'string' ? value : String(value);
};

function PluralFormat(id, useOrdinal, offset, options, pluralFn) {
  this.id = id;
  this.useOrdinal = useOrdinal;
  this.offset = offset;
  this.options = options;
  this.pluralFn = pluralFn;
}

PluralFormat.prototype.getOption = function (value) {
  var options = this.options;
  var option = options['=' + value] || options[this.pluralFn(value - this.offset, this.useOrdinal)];
  return option || options.other;
};

function PluralOffsetString(id, offset, numberFormat, string) {
  this.id = id;
  this.offset = offset;
  this.numberFormat = numberFormat;
  this.string = string;
}

PluralOffsetString.prototype.format = function (value) {
  var number = this.numberFormat.format(value - this.offset);
  return this.string.replace(/(^|[^\\])#/g, '$1' + number).replace(/\\#/g, '#');
};

function SelectFormat(id, options) {
  this.id = id;
  this.options = options;
}

SelectFormat.prototype.getOption = function (value) {
  var options = this.options;
  return options[value] || options.other;
};

/***/ }),

/***/ "XW3W":
/***/ (function(module, exports, __webpack_require__) {

/* WEBPACK VAR INJECTION */(function(global) {/**
 * lodash (Custom Build) <https://lodash.com/>
 * Build: `lodash modularize exports="npm" -o ./`
 * Copyright jQuery Foundation and other contributors <https://jquery.org/>
 * Released under MIT license <https://lodash.com/license>
 * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
 * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
 */

/** Used as references for various `Number` constants. */
var INFINITY = 1 / 0,
    MAX_SAFE_INTEGER = 9007199254740991;
/** `Object#toString` result references. */

var argsTag = '[object Arguments]',
    funcTag = '[object Function]',
    genTag = '[object GeneratorFunction]';
/** Detect free variable `global` from Node.js. */

var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;
/** Detect free variable `self`. */

var freeSelf = typeof self == 'object' && self && self.Object === Object && self;
/** Used as a reference to the global object. */

var root = freeGlobal || freeSelf || Function('return this')();
/**
 * Appends the elements of `values` to `array`.
 *
 * @private
 * @param {Array} array The array to modify.
 * @param {Array} values The values to append.
 * @returns {Array} Returns `array`.
 */

function arrayPush(array, values) {
  var index = -1,
      length = values.length,
      offset = array.length;

  while (++index < length) {
    array[offset + index] = values[index];
  }

  return array;
}
/** Used for built-in method references. */


var objectProto = Object.prototype;
/** Used to check objects for own properties. */

var hasOwnProperty = objectProto.hasOwnProperty;
/**
 * Used to resolve the
 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
 * of values.
 */

var objectToString = objectProto.toString;
/** Built-in value references. */

var Symbol = root.Symbol,
    propertyIsEnumerable = objectProto.propertyIsEnumerable,
    spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;
/**
 * The base implementation of `_.flatten` with support for restricting flattening.
 *
 * @private
 * @param {Array} array The array to flatten.
 * @param {number} depth The maximum recursion depth.
 * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.
 * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.
 * @param {Array} [result=[]] The initial result value.
 * @returns {Array} Returns the new flattened array.
 */

function baseFlatten(array, depth, predicate, isStrict, result) {
  var index = -1,
      length = array.length;
  predicate || (predicate = isFlattenable);
  result || (result = []);

  while (++index < length) {
    var value = array[index];

    if (depth > 0 && predicate(value)) {
      if (depth > 1) {
        // Recursively flatten arrays (susceptible to call stack limits).
        baseFlatten(value, depth - 1, predicate, isStrict, result);
      } else {
        arrayPush(result, value);
      }
    } else if (!isStrict) {
      result[result.length] = value;
    }
  }

  return result;
}
/**
 * Checks if `value` is a flattenable `arguments` object or array.
 *
 * @private
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.
 */


function isFlattenable(value) {
  return isArray(value) || isArguments(value) || !!(spreadableSymbol && value && value[spreadableSymbol]);
}
/**
 * Recursively flattens `array`.
 *
 * @static
 * @memberOf _
 * @since 3.0.0
 * @category Array
 * @param {Array} array The array to flatten.
 * @returns {Array} Returns the new flattened array.
 * @example
 *
 * _.flattenDeep([1, [2, [3, [4]], 5]]);
 * // => [1, 2, 3, 4, 5]
 */


function flattenDeep(array) {
  var length = array ? array.length : 0;
  return length ? baseFlatten(array, INFINITY) : [];
}
/**
 * Checks if `value` is likely an `arguments` object.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is an `arguments` object,
 *  else `false`.
 * @example
 *
 * _.isArguments(function() { return arguments; }());
 * // => true
 *
 * _.isArguments([1, 2, 3]);
 * // => false
 */


function isArguments(value) {
  // Safari 8.1 makes `arguments.callee` enumerable in strict mode.
  return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') && (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);
}
/**
 * Checks if `value` is classified as an `Array` object.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is an array, else `false`.
 * @example
 *
 * _.isArray([1, 2, 3]);
 * // => true
 *
 * _.isArray(document.body.children);
 * // => false
 *
 * _.isArray('abc');
 * // => false
 *
 * _.isArray(_.noop);
 * // => false
 */


var isArray = Array.isArray;
/**
 * Checks if `value` is array-like. A value is considered array-like if it's
 * not a function and has a `value.length` that's an integer greater than or
 * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is array-like, else `false`.
 * @example
 *
 * _.isArrayLike([1, 2, 3]);
 * // => true
 *
 * _.isArrayLike(document.body.children);
 * // => true
 *
 * _.isArrayLike('abc');
 * // => true
 *
 * _.isArrayLike(_.noop);
 * // => false
 */

function isArrayLike(value) {
  return value != null && isLength(value.length) && !isFunction(value);
}
/**
 * This method is like `_.isArrayLike` except that it also checks if `value`
 * is an object.
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is an array-like object,
 *  else `false`.
 * @example
 *
 * _.isArrayLikeObject([1, 2, 3]);
 * // => true
 *
 * _.isArrayLikeObject(document.body.children);
 * // => true
 *
 * _.isArrayLikeObject('abc');
 * // => false
 *
 * _.isArrayLikeObject(_.noop);
 * // => false
 */


function isArrayLikeObject(value) {
  return isObjectLike(value) && isArrayLike(value);
}
/**
 * Checks if `value` is classified as a `Function` object.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a function, else `false`.
 * @example
 *
 * _.isFunction(_);
 * // => true
 *
 * _.isFunction(/abc/);
 * // => false
 */


function isFunction(value) {
  // The use of `Object#toString` avoids issues with the `typeof` operator
  // in Safari 8-9 which returns 'object' for typed array and other constructors.
  var tag = isObject(value) ? objectToString.call(value) : '';
  return tag == funcTag || tag == genTag;
}
/**
 * Checks if `value` is a valid array-like length.
 *
 * **Note:** This method is loosely based on
 * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
 * @example
 *
 * _.isLength(3);
 * // => true
 *
 * _.isLength(Number.MIN_VALUE);
 * // => false
 *
 * _.isLength(Infinity);
 * // => false
 *
 * _.isLength('3');
 * // => false
 */


function isLength(value) {
  return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
}
/**
 * Checks if `value` is the
 * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
 * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is an object, else `false`.
 * @example
 *
 * _.isObject({});
 * // => true
 *
 * _.isObject([1, 2, 3]);
 * // => true
 *
 * _.isObject(_.noop);
 * // => true
 *
 * _.isObject(null);
 * // => false
 */


function isObject(value) {
  var type = typeof value;
  return !!value && (type == 'object' || type == 'function');
}
/**
 * Checks if `value` is object-like. A value is object-like if it's not `null`
 * and has a `typeof` result of "object".
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
 * @example
 *
 * _.isObjectLike({});
 * // => true
 *
 * _.isObjectLike([1, 2, 3]);
 * // => true
 *
 * _.isObjectLike(_.noop);
 * // => false
 *
 * _.isObjectLike(null);
 * // => false
 */


function isObjectLike(value) {
  return !!value && typeof value == 'object';
}

module.exports = flattenDeep;
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("yLpj")))

/***/ }),

/***/ "XWHH":
/***/ (function(module, exports, __webpack_require__) {

var __root__ = function (root) {
  function F() {
    this.fetch = false;
  }

  F.prototype = root;
  return new F();
}(typeof self !== 'undefined' ? self : this);

(function (self) {
  (function (self) {
    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(); // Replace instances of \r\n and \n followed by at least one space or horizontal tab with a space
      // https://tools.ietf.org/html/rfc7230#section-3.2

      var preProcessedHeaders = rawHeaders.replace(/\r?\n[\t ]+/g, ' ');
      preProcessedHeaders.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 = options.status === undefined ? 200 : options.status;
      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;
        } else if (request.credentials === 'omit') {
          xhr.withCredentials = false;
        }

        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);
}).call(__root__, void 0);
var fetch = __root__.fetch;
var Response = fetch.Response = __root__.Response;
var Request = fetch.Request = __root__.Request;
var Headers = fetch.Headers = __root__.Headers;

if ( true && module.exports) {
  module.exports = fetch;
}

/***/ }),

/***/ "XY+F":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("TSYQ");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_1__);


const DEFAULT_SIZE = {
    width: 130,
    height: 130,
};
const FolderGeneral = ({ height = DEFAULT_SIZE.height, width = DEFAULT_SIZE.width, className = '', }) => (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("svg", { className: classnames__WEBPACK_IMPORTED_MODULE_1___default()('FolderGeneral', className), xmlns: "http://www.w3.org/2000/svg", width: width, height: height, viewBox: `0 0 ${height} ${width}` },
    react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", { className: "foreground", d: "M12,118c-5.5,0-10-4.5-10-10V20c0-5.5,4.5-10,10-10h40.3c2.1,0,4.1,0.8,5.7,2.3l12.5,12.5\n\t\tc0.7,0.7,1.8,1.2,2.8,1.2H116c5.5,0,10,4.5,10,10v72c0,5.5-4.5,10-10,10H12z" }),
    react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", { className: "background", d: "M116,24H73.3c-0.5,0-1-0.2-1.4-0.6L59.4,10.9C57.5,9,55,8,52.3,8H12C5.4,8,0,13.4,0,20v88c0,6.6,5.4,12,12,12\n\t\th104c6.6,0,12-5.4,12-12V36C128,29.4,122.6,24,116,24z M124,108c0,4.4-3.6,8-8,8H12c-4.4,0-8-3.6-8-8V28h112c4.4,0,8,3.6,8,8V108z" })));
/* harmony default export */ __webpack_exports__["a"] = (FolderGeneral);


/***/ }),

/***/ "XZyv":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return BaseHost; });
/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("2vnA");
/* harmony import */ var _react_react_spectrum_Dialog__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("bLbN");
/* harmony import */ var _react_react_spectrum_Dialog__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Dialog__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _HostId__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("m3S7");
/* harmony import */ var _ISpacesFeatureFlags__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("NBbZ");
/* harmony import */ var _ISpacesFeatureFlags__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_ISpacesFeatureFlags__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _stores_Settings__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("5u1M");
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;
};
var __metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var _a, _b;





/**
 * Host exposes properties and features potentially specific to each host application.
 */
class BaseHost {
    constructor(args, w = window) {
        var _a, _b, _c, _d;
        this.canShare = true;
        this.useSamCpp = false;
        this.defaultFeatureFlags = {
            mvp: true,
        };
        this.window = w;
        let { uxp, osVersion } = args;
        this.name = (_a = uxp === null || uxp === void 0 ? void 0 : uxp.name) !== null && _a !== void 0 ? _a : 'Web';
        this.platform = (_b = uxp === null || uxp === void 0 ? void 0 : uxp.platform) !== null && _b !== void 0 ? _b : navigator.platform;
        this.version = (_c = uxp === null || uxp === void 0 ? void 0 : uxp.version) !== null && _c !== void 0 ? _c : navigator.appVersion;
        this.id = ((_d = uxp === null || uxp === void 0 ? void 0 : uxp.appCode.toLowerCase()) !== null && _d !== void 0 ? _d : _HostId__WEBPACK_IMPORTED_MODULE_2__[/* HostId */ "a"].AssetsWeb);
        this.platformVersion = osVersion;
        this.featureFlags = this.defaultFeatureFlags;
    }
    get supportsNativeSAM() {
        return false; // By default, assume hosts don't access SAM natively.
    }
    get shouldDisableACPL() {
        // For non-UXP hosts, we should disable ACPL to force network requests for CDO/UAP.
        return true;
    }
    get hasOpenUtils() {
        var _a;
        return !!((_a = this.openUtils) === null || _a === void 0 ? void 0 : _a.open);
    }
    get InXD() {
        return this.id === _HostId__WEBPACK_IMPORTED_MODULE_2__[/* HostId */ "a"].XD;
    }
    get InAI() {
        return this.id === _HostId__WEBPACK_IMPORTED_MODULE_2__[/* HostId */ "a"].AI;
    }
    get InPS() {
        return this.id === _HostId__WEBPACK_IMPORTED_MODULE_2__[/* HostId */ "a"].PS;
    }
    get InAssetsWeb() {
        return this.id === _HostId__WEBPACK_IMPORTED_MODULE_2__[/* HostId */ "a"].AssetsWeb;
    }
    get InCCD() {
        return this.id === _HostId__WEBPACK_IMPORTED_MODULE_2__[/* HostId */ "a"].CCD;
    }
    configureFeatureFlags(featureFlags) {
        this.featureFlags = {
            ...this.defaultFeatureFlags,
            ...featureFlags,
        };
    }
    openDocuments(docs, sapcode) {
        var _a;
        if (this.hasOpenUtils) {
            (_a = this.openUtils) === null || _a === void 0 ? void 0 : _a.open(docs, sapcode);
        }
        else {
            _stores_Settings__WEBPACK_IMPORTED_MODULE_4__[/* settings */ "b"].logger.error('openDocument failed! Method `open` not defined in openUtils');
        }
    }
    launchCCD(path) {
        _stores_Settings__WEBPACK_IMPORTED_MODULE_4__[/* settings */ "b"].logger.warn('Could not launch CCD with path:', path);
    }
    /**
     * Returns the component to use for dialogs on this host.
     * This is only necessary now because of some bugs requiring extra theming in dialogs in PS/Windows.
     */
    get Dialog() {
        return _react_react_spectrum_Dialog__WEBPACK_IMPORTED_MODULE_1___default.a;
    }
    get isMVP() {
        return Boolean(this.featureFlags.mvp);
    }
    createDocument(args) { }
    get canCreateDocument() {
        return false;
    }
    get showStarterUserToast() {
        return false;
    }
}
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", String)
], BaseHost.prototype, "name", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", String)
], BaseHost.prototype, "platform", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", String)
], BaseHost.prototype, "version", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", typeof (_a = typeof _HostId__WEBPACK_IMPORTED_MODULE_2__[/* HostId */ "a"] !== "undefined" && _HostId__WEBPACK_IMPORTED_MODULE_2__[/* HostId */ "a"]) === "function" ? _a : Object)
], BaseHost.prototype, "id", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", String)
], BaseHost.prototype, "platformVersion", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", typeof (_b = typeof _ISpacesFeatureFlags__WEBPACK_IMPORTED_MODULE_3__["ISpacesFeatureFlags"] !== "undefined" && _ISpacesFeatureFlags__WEBPACK_IMPORTED_MODULE_3__["ISpacesFeatureFlags"]) === "function" ? _b : Object)
], BaseHost.prototype, "featureFlags", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", Object)
], BaseHost.prototype, "canShare", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", Object)
], BaseHost.prototype, "useSamCpp", void 0);


/***/ }),

/***/ "XaGS":
/***/ (function(module, exports, __webpack_require__) {

/* WEBPACK VAR INJECTION */(function(global, module) {/**
 * Lodash (Custom Build) <https://lodash.com/>
 * Build: `lodash modularize exports="npm" -o ./`
 * Copyright JS Foundation and other contributors <https://js.foundation/>
 * Released under MIT license <https://lodash.com/license>
 * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
 * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
 */

/** Used as the size to enable large array optimizations. */
var LARGE_ARRAY_SIZE = 200;
/** Used to stand-in for `undefined` hash values. */

var HASH_UNDEFINED = '__lodash_hash_undefined__';
/** Used to compose bitmasks for value comparisons. */

var COMPARE_PARTIAL_FLAG = 1,
    COMPARE_UNORDERED_FLAG = 2;
/** Used as references for various `Number` constants. */

var MAX_SAFE_INTEGER = 9007199254740991;
/** `Object#toString` result references. */

var 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]';
var 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]';
/**
 * Used to match `RegExp`
 * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).
 */

var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
/** Used to detect host constructors (Safari). */

var reIsHostCtor = /^\[object .+?Constructor\]$/;
/** Used to detect unsigned integer values. */

var reIsUint = /^(?:0|[1-9]\d*)$/;
/** Used to identify `toStringTag` values of typed arrays. */

var typedArrayTags = {};
typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = typedArrayTags[uint32Tag] = true;
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] = false;
/** Detect free variable `global` from Node.js. */

var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;
/** Detect free variable `self`. */

var freeSelf = typeof self == 'object' && self && self.Object === Object && self;
/** Used as a reference to the global object. */

var root = freeGlobal || freeSelf || Function('return this')();
/** Detect free variable `exports`. */

var freeExports =  true && exports && !exports.nodeType && exports;
/** Detect free variable `module`. */

var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;
/** Detect the popular CommonJS extension `module.exports`. */

var moduleExports = freeModule && freeModule.exports === freeExports;
/** Detect free variable `process` from Node.js. */

var freeProcess = moduleExports && freeGlobal.process;
/** Used to access faster Node.js helpers. */

var nodeUtil = function () {
  try {
    return freeProcess && freeProcess.binding && freeProcess.binding('util');
  } catch (e) {}
}();
/* Node.js helper references. */


var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;
/**
 * A specialized version of `_.filter` for arrays without support for
 * iteratee shorthands.
 *
 * @private
 * @param {Array} [array] The array to iterate over.
 * @param {Function} predicate The function invoked per iteration.
 * @returns {Array} Returns the new filtered array.
 */

function arrayFilter(array, predicate) {
  var index = -1,
      length = array == null ? 0 : array.length,
      resIndex = 0,
      result = [];

  while (++index < length) {
    var value = array[index];

    if (predicate(value, index, array)) {
      result[resIndex++] = value;
    }
  }

  return result;
}
/**
 * Appends the elements of `values` to `array`.
 *
 * @private
 * @param {Array} array The array to modify.
 * @param {Array} values The values to append.
 * @returns {Array} Returns `array`.
 */


function arrayPush(array, values) {
  var index = -1,
      length = values.length,
      offset = array.length;

  while (++index < length) {
    array[offset + index] = values[index];
  }

  return array;
}
/**
 * A specialized version of `_.some` for arrays without support for iteratee
 * shorthands.
 *
 * @private
 * @param {Array} [array] The array to iterate over.
 * @param {Function} predicate The function invoked per iteration.
 * @returns {boolean} Returns `true` if any element passes the predicate check,
 *  else `false`.
 */


function arraySome(array, predicate) {
  var index = -1,
      length = array == null ? 0 : array.length;

  while (++index < length) {
    if (predicate(array[index], index, array)) {
      return true;
    }
  }

  return false;
}
/**
 * The base implementation of `_.times` without support for iteratee shorthands
 * or max array length checks.
 *
 * @private
 * @param {number} n The number of times to invoke `iteratee`.
 * @param {Function} iteratee The function invoked per iteration.
 * @returns {Array} Returns the array of results.
 */


function baseTimes(n, iteratee) {
  var index = -1,
      result = Array(n);

  while (++index < n) {
    result[index] = iteratee(index);
  }

  return result;
}
/**
 * The base implementation of `_.unary` without support for storing metadata.
 *
 * @private
 * @param {Function} func The function to cap arguments for.
 * @returns {Function} Returns the new capped function.
 */


function baseUnary(func) {
  return function (value) {
    return func(value);
  };
}
/**
 * Checks if a `cache` value for `key` exists.
 *
 * @private
 * @param {Object} cache The cache to query.
 * @param {string} key The key of the entry to check.
 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
 */


function cacheHas(cache, key) {
  return cache.has(key);
}
/**
 * Gets the value at `key` of `object`.
 *
 * @private
 * @param {Object} [object] The object to query.
 * @param {string} key The key of the property to get.
 * @returns {*} Returns the property value.
 */


function getValue(object, key) {
  return object == null ? undefined : object[key];
}
/**
 * Converts `map` to its key-value pairs.
 *
 * @private
 * @param {Object} map The map to convert.
 * @returns {Array} Returns the key-value pairs.
 */


function mapToArray(map) {
  var index = -1,
      result = Array(map.size);
  map.forEach(function (value, key) {
    result[++index] = [key, value];
  });
  return result;
}
/**
 * Creates a unary function that invokes `func` with its argument transformed.
 *
 * @private
 * @param {Function} func The function to wrap.
 * @param {Function} transform The argument transform.
 * @returns {Function} Returns the new function.
 */


function overArg(func, transform) {
  return function (arg) {
    return func(transform(arg));
  };
}
/**
 * Converts `set` to an array of its values.
 *
 * @private
 * @param {Object} set The set to convert.
 * @returns {Array} Returns the values.
 */


function setToArray(set) {
  var index = -1,
      result = Array(set.size);
  set.forEach(function (value) {
    result[++index] = value;
  });
  return result;
}
/** Used for built-in method references. */


var arrayProto = Array.prototype,
    funcProto = Function.prototype,
    objectProto = Object.prototype;
/** Used to detect overreaching core-js shims. */

var coreJsData = root['__core-js_shared__'];
/** Used to resolve the decompiled source of functions. */

var funcToString = funcProto.toString;
/** Used to check objects for own properties. */

var hasOwnProperty = objectProto.hasOwnProperty;
/** Used to detect methods masquerading as native. */

var maskSrcKey = function () {
  var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');
  return uid ? 'Symbol(src)_1.' + uid : '';
}();
/**
 * Used to resolve the
 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
 * of values.
 */


var nativeObjectToString = objectProto.toString;
/** Used to detect if a method is native. */

var reIsNative = RegExp('^' + funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&').replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$');
/** Built-in value references. */

var Buffer = moduleExports ? root.Buffer : undefined,
    Symbol = root.Symbol,
    Uint8Array = root.Uint8Array,
    propertyIsEnumerable = objectProto.propertyIsEnumerable,
    splice = arrayProto.splice,
    symToStringTag = Symbol ? Symbol.toStringTag : undefined;
/* Built-in method references for those with the same name as other `lodash` methods. */

var nativeGetSymbols = Object.getOwnPropertySymbols,
    nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,
    nativeKeys = overArg(Object.keys, Object);
/* Built-in method references that are verified to be native. */

var DataView = getNative(root, 'DataView'),
    Map = getNative(root, 'Map'),
    Promise = getNative(root, 'Promise'),
    Set = getNative(root, 'Set'),
    WeakMap = getNative(root, 'WeakMap'),
    nativeCreate = getNative(Object, 'create');
/** Used to detect maps, sets, and weakmaps. */

var dataViewCtorString = toSource(DataView),
    mapCtorString = toSource(Map),
    promiseCtorString = toSource(Promise),
    setCtorString = toSource(Set),
    weakMapCtorString = toSource(WeakMap);
/** Used to convert symbols to primitives and strings. */

var symbolProto = Symbol ? Symbol.prototype : undefined,
    symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;
/**
 * Creates a hash object.
 *
 * @private
 * @constructor
 * @param {Array} [entries] The key-value pairs to cache.
 */

function Hash(entries) {
  var index = -1,
      length = entries == null ? 0 : entries.length;
  this.clear();

  while (++index < length) {
    var entry = entries[index];
    this.set(entry[0], entry[1]);
  }
}
/**
 * Removes all key-value entries from the hash.
 *
 * @private
 * @name clear
 * @memberOf Hash
 */


function hashClear() {
  this.__data__ = nativeCreate ? nativeCreate(null) : {};
  this.size = 0;
}
/**
 * Removes `key` and its value from the hash.
 *
 * @private
 * @name delete
 * @memberOf Hash
 * @param {Object} hash The hash to modify.
 * @param {string} key The key of the value to remove.
 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
 */


function hashDelete(key) {
  var result = this.has(key) && delete this.__data__[key];
  this.size -= result ? 1 : 0;
  return result;
}
/**
 * Gets the hash value for `key`.
 *
 * @private
 * @name get
 * @memberOf Hash
 * @param {string} key The key of the value to get.
 * @returns {*} Returns the entry value.
 */


function hashGet(key) {
  var data = this.__data__;

  if (nativeCreate) {
    var result = data[key];
    return result === HASH_UNDEFINED ? undefined : result;
  }

  return hasOwnProperty.call(data, key) ? data[key] : undefined;
}
/**
 * Checks if a hash value for `key` exists.
 *
 * @private
 * @name has
 * @memberOf Hash
 * @param {string} key The key of the entry to check.
 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
 */


function hashHas(key) {
  var data = this.__data__;
  return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);
}
/**
 * Sets the hash `key` to `value`.
 *
 * @private
 * @name set
 * @memberOf Hash
 * @param {string} key The key of the value to set.
 * @param {*} value The value to set.
 * @returns {Object} Returns the hash instance.
 */


function hashSet(key, value) {
  var data = this.__data__;
  this.size += this.has(key) ? 0 : 1;
  data[key] = nativeCreate && value === undefined ? HASH_UNDEFINED : value;
  return this;
} // Add methods to `Hash`.


Hash.prototype.clear = hashClear;
Hash.prototype['delete'] = hashDelete;
Hash.prototype.get = hashGet;
Hash.prototype.has = hashHas;
Hash.prototype.set = hashSet;
/**
 * Creates an list cache object.
 *
 * @private
 * @constructor
 * @param {Array} [entries] The key-value pairs to cache.
 */

function ListCache(entries) {
  var index = -1,
      length = entries == null ? 0 : entries.length;
  this.clear();

  while (++index < length) {
    var entry = entries[index];
    this.set(entry[0], entry[1]);
  }
}
/**
 * Removes all key-value entries from the list cache.
 *
 * @private
 * @name clear
 * @memberOf ListCache
 */


function listCacheClear() {
  this.__data__ = [];
  this.size = 0;
}
/**
 * Removes `key` and its value from the list cache.
 *
 * @private
 * @name delete
 * @memberOf ListCache
 * @param {string} key The key of the value to remove.
 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
 */


function listCacheDelete(key) {
  var data = this.__data__,
      index = assocIndexOf(data, key);

  if (index < 0) {
    return false;
  }

  var lastIndex = data.length - 1;

  if (index == lastIndex) {
    data.pop();
  } else {
    splice.call(data, index, 1);
  }

  --this.size;
  return true;
}
/**
 * Gets the list cache value for `key`.
 *
 * @private
 * @name get
 * @memberOf ListCache
 * @param {string} key The key of the value to get.
 * @returns {*} Returns the entry value.
 */


function listCacheGet(key) {
  var data = this.__data__,
      index = assocIndexOf(data, key);
  return index < 0 ? undefined : data[index][1];
}
/**
 * Checks if a list cache value for `key` exists.
 *
 * @private
 * @name has
 * @memberOf ListCache
 * @param {string} key The key of the entry to check.
 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
 */


function listCacheHas(key) {
  return assocIndexOf(this.__data__, key) > -1;
}
/**
 * Sets the list cache `key` to `value`.
 *
 * @private
 * @name set
 * @memberOf ListCache
 * @param {string} key The key of the value to set.
 * @param {*} value The value to set.
 * @returns {Object} Returns the list cache instance.
 */


function listCacheSet(key, value) {
  var data = this.__data__,
      index = assocIndexOf(data, key);

  if (index < 0) {
    ++this.size;
    data.push([key, value]);
  } else {
    data[index][1] = value;
  }

  return this;
} // Add methods to `ListCache`.


ListCache.prototype.clear = listCacheClear;
ListCache.prototype['delete'] = listCacheDelete;
ListCache.prototype.get = listCacheGet;
ListCache.prototype.has = listCacheHas;
ListCache.prototype.set = listCacheSet;
/**
 * Creates a map cache object to store key-value pairs.
 *
 * @private
 * @constructor
 * @param {Array} [entries] The key-value pairs to cache.
 */

function MapCache(entries) {
  var index = -1,
      length = entries == null ? 0 : entries.length;
  this.clear();

  while (++index < length) {
    var entry = entries[index];
    this.set(entry[0], entry[1]);
  }
}
/**
 * Removes all key-value entries from the map.
 *
 * @private
 * @name clear
 * @memberOf MapCache
 */


function mapCacheClear() {
  this.size = 0;
  this.__data__ = {
    'hash': new Hash(),
    'map': new (Map || ListCache)(),
    'string': new Hash()
  };
}
/**
 * Removes `key` and its value from the map.
 *
 * @private
 * @name delete
 * @memberOf MapCache
 * @param {string} key The key of the value to remove.
 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
 */


function mapCacheDelete(key) {
  var result = getMapData(this, key)['delete'](key);
  this.size -= result ? 1 : 0;
  return result;
}
/**
 * Gets the map value for `key`.
 *
 * @private
 * @name get
 * @memberOf MapCache
 * @param {string} key The key of the value to get.
 * @returns {*} Returns the entry value.
 */


function mapCacheGet(key) {
  return getMapData(this, key).get(key);
}
/**
 * Checks if a map value for `key` exists.
 *
 * @private
 * @name has
 * @memberOf MapCache
 * @param {string} key The key of the entry to check.
 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
 */


function mapCacheHas(key) {
  return getMapData(this, key).has(key);
}
/**
 * Sets the map `key` to `value`.
 *
 * @private
 * @name set
 * @memberOf MapCache
 * @param {string} key The key of the value to set.
 * @param {*} value The value to set.
 * @returns {Object} Returns the map cache instance.
 */


function mapCacheSet(key, value) {
  var data = getMapData(this, key),
      size = data.size;
  data.set(key, value);
  this.size += data.size == size ? 0 : 1;
  return this;
} // Add methods to `MapCache`.


MapCache.prototype.clear = mapCacheClear;
MapCache.prototype['delete'] = mapCacheDelete;
MapCache.prototype.get = mapCacheGet;
MapCache.prototype.has = mapCacheHas;
MapCache.prototype.set = mapCacheSet;
/**
 *
 * Creates an array cache object to store unique values.
 *
 * @private
 * @constructor
 * @param {Array} [values] The values to cache.
 */

function SetCache(values) {
  var index = -1,
      length = values == null ? 0 : values.length;
  this.__data__ = new MapCache();

  while (++index < length) {
    this.add(values[index]);
  }
}
/**
 * Adds `value` to the array cache.
 *
 * @private
 * @name add
 * @memberOf SetCache
 * @alias push
 * @param {*} value The value to cache.
 * @returns {Object} Returns the cache instance.
 */


function setCacheAdd(value) {
  this.__data__.set(value, HASH_UNDEFINED);

  return this;
}
/**
 * Checks if `value` is in the array cache.
 *
 * @private
 * @name has
 * @memberOf SetCache
 * @param {*} value The value to search for.
 * @returns {number} Returns `true` if `value` is found, else `false`.
 */


function setCacheHas(value) {
  return this.__data__.has(value);
} // Add methods to `SetCache`.


SetCache.prototype.add = SetCache.prototype.push = setCacheAdd;
SetCache.prototype.has = setCacheHas;
/**
 * Creates a stack cache object to store key-value pairs.
 *
 * @private
 * @constructor
 * @param {Array} [entries] The key-value pairs to cache.
 */

function Stack(entries) {
  var data = this.__data__ = new ListCache(entries);
  this.size = data.size;
}
/**
 * Removes all key-value entries from the stack.
 *
 * @private
 * @name clear
 * @memberOf Stack
 */


function stackClear() {
  this.__data__ = new ListCache();
  this.size = 0;
}
/**
 * Removes `key` and its value from the stack.
 *
 * @private
 * @name delete
 * @memberOf Stack
 * @param {string} key The key of the value to remove.
 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
 */


function stackDelete(key) {
  var data = this.__data__,
      result = data['delete'](key);
  this.size = data.size;
  return result;
}
/**
 * Gets the stack value for `key`.
 *
 * @private
 * @name get
 * @memberOf Stack
 * @param {string} key The key of the value to get.
 * @returns {*} Returns the entry value.
 */


function stackGet(key) {
  return this.__data__.get(key);
}
/**
 * Checks if a stack value for `key` exists.
 *
 * @private
 * @name has
 * @memberOf Stack
 * @param {string} key The key of the entry to check.
 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
 */


function stackHas(key) {
  return this.__data__.has(key);
}
/**
 * Sets the stack `key` to `value`.
 *
 * @private
 * @name set
 * @memberOf Stack
 * @param {string} key The key of the value to set.
 * @param {*} value The value to set.
 * @returns {Object} Returns the stack cache instance.
 */


function stackSet(key, value) {
  var data = this.__data__;

  if (data instanceof ListCache) {
    var pairs = data.__data__;

    if (!Map || pairs.length < LARGE_ARRAY_SIZE - 1) {
      pairs.push([key, value]);
      this.size = ++data.size;
      return this;
    }

    data = this.__data__ = new MapCache(pairs);
  }

  data.set(key, value);
  this.size = data.size;
  return this;
} // Add methods to `Stack`.


Stack.prototype.clear = stackClear;
Stack.prototype['delete'] = stackDelete;
Stack.prototype.get = stackGet;
Stack.prototype.has = stackHas;
Stack.prototype.set = stackSet;
/**
 * Creates an array of the enumerable property names of the array-like `value`.
 *
 * @private
 * @param {*} value The value to query.
 * @param {boolean} inherited Specify returning inherited property names.
 * @returns {Array} Returns the array of property names.
 */

function arrayLikeKeys(value, inherited) {
  var isArr = isArray(value),
      isArg = !isArr && isArguments(value),
      isBuff = !isArr && !isArg && isBuffer(value),
      isType = !isArr && !isArg && !isBuff && isTypedArray(value),
      skipIndexes = isArr || isArg || isBuff || isType,
      result = skipIndexes ? baseTimes(value.length, String) : [],
      length = result.length;

  for (var key in value) {
    if ((inherited || hasOwnProperty.call(value, key)) && !(skipIndexes && ( // Safari 9 has enumerable `arguments.length` in strict mode.
    key == 'length' || // Node.js 0.10 has enumerable non-index properties on buffers.
    isBuff && (key == 'offset' || key == 'parent') || // PhantomJS 2 has enumerable non-index properties on typed arrays.
    isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset') || // Skip index properties.
    isIndex(key, length)))) {
      result.push(key);
    }
  }

  return result;
}
/**
 * Gets the index at which the `key` is found in `array` of key-value pairs.
 *
 * @private
 * @param {Array} array The array to inspect.
 * @param {*} key The key to search for.
 * @returns {number} Returns the index of the matched value, else `-1`.
 */


function assocIndexOf(array, key) {
  var length = array.length;

  while (length--) {
    if (eq(array[length][0], key)) {
      return length;
    }
  }

  return -1;
}
/**
 * The base implementation of `getAllKeys` and `getAllKeysIn` which uses
 * `keysFunc` and `symbolsFunc` to get the enumerable property names and
 * symbols of `object`.
 *
 * @private
 * @param {Object} object The object to query.
 * @param {Function} keysFunc The function to get the keys of `object`.
 * @param {Function} symbolsFunc The function to get the symbols of `object`.
 * @returns {Array} Returns the array of property names and symbols.
 */


function baseGetAllKeys(object, keysFunc, symbolsFunc) {
  var result = keysFunc(object);
  return isArray(object) ? result : arrayPush(result, symbolsFunc(object));
}
/**
 * The base implementation of `getTag` without fallbacks for buggy environments.
 *
 * @private
 * @param {*} value The value to query.
 * @returns {string} Returns the `toStringTag`.
 */


function baseGetTag(value) {
  if (value == null) {
    return value === undefined ? undefinedTag : nullTag;
  }

  return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString(value);
}
/**
 * The base implementation of `_.isArguments`.
 *
 * @private
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is an `arguments` object,
 */


function baseIsArguments(value) {
  return isObjectLike(value) && baseGetTag(value) == argsTag;
}
/**
 * The base implementation of `_.isEqual` which supports partial comparisons
 * and tracks traversed objects.
 *
 * @private
 * @param {*} value The value to compare.
 * @param {*} other The other value to compare.
 * @param {boolean} bitmask The bitmask flags.
 *  1 - Unordered comparison
 *  2 - Partial comparison
 * @param {Function} [customizer] The function to customize comparisons.
 * @param {Object} [stack] Tracks traversed `value` and `other` objects.
 * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
 */


function baseIsEqual(value, other, bitmask, customizer, stack) {
  if (value === other) {
    return true;
  }

  if (value == null || other == null || !isObjectLike(value) && !isObjectLike(other)) {
    return value !== value && other !== other;
  }

  return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);
}
/**
 * A specialized version of `baseIsEqual` for arrays and objects which performs
 * deep comparisons and tracks traversed objects enabling objects with circular
 * references to be compared.
 *
 * @private
 * @param {Object} object The object to compare.
 * @param {Object} other The other object to compare.
 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
 * @param {Function} customizer The function to customize comparisons.
 * @param {Function} equalFunc The function to determine equivalents of values.
 * @param {Object} [stack] Tracks traversed `object` and `other` objects.
 * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
 */


function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {
  var objIsArr = isArray(object),
      othIsArr = isArray(other),
      objTag = objIsArr ? arrayTag : getTag(object),
      othTag = othIsArr ? arrayTag : getTag(other);
  objTag = objTag == argsTag ? objectTag : objTag;
  othTag = othTag == argsTag ? objectTag : othTag;
  var objIsObj = objTag == objectTag,
      othIsObj = othTag == objectTag,
      isSameTag = objTag == othTag;

  if (isSameTag && isBuffer(object)) {
    if (!isBuffer(other)) {
      return false;
    }

    objIsArr = true;
    objIsObj = false;
  }

  if (isSameTag && !objIsObj) {
    stack || (stack = new Stack());
    return objIsArr || isTypedArray(object) ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);
  }

  if (!(bitmask & COMPARE_PARTIAL_FLAG)) {
    var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),
        othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');

    if (objIsWrapped || othIsWrapped) {
      var objUnwrapped = objIsWrapped ? object.value() : object,
          othUnwrapped = othIsWrapped ? other.value() : other;
      stack || (stack = new Stack());
      return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);
    }
  }

  if (!isSameTag) {
    return false;
  }

  stack || (stack = new Stack());
  return equalObjects(object, other, bitmask, customizer, equalFunc, stack);
}
/**
 * The base implementation of `_.isNative` without bad shim checks.
 *
 * @private
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a native function,
 *  else `false`.
 */


function baseIsNative(value) {
  if (!isObject(value) || isMasked(value)) {
    return false;
  }

  var pattern = isFunction(value) ? reIsNative : reIsHostCtor;
  return pattern.test(toSource(value));
}
/**
 * The base implementation of `_.isTypedArray` without Node.js optimizations.
 *
 * @private
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.
 */


function baseIsTypedArray(value) {
  return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[baseGetTag(value)];
}
/**
 * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.
 *
 * @private
 * @param {Object} object The object to query.
 * @returns {Array} Returns the array of property names.
 */


function baseKeys(object) {
  if (!isPrototype(object)) {
    return nativeKeys(object);
  }

  var result = [];

  for (var key in Object(object)) {
    if (hasOwnProperty.call(object, key) && key != 'constructor') {
      result.push(key);
    }
  }

  return result;
}
/**
 * A specialized version of `baseIsEqualDeep` for arrays with support for
 * partial deep comparisons.
 *
 * @private
 * @param {Array} array The array to compare.
 * @param {Array} other The other array to compare.
 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
 * @param {Function} customizer The function to customize comparisons.
 * @param {Function} equalFunc The function to determine equivalents of values.
 * @param {Object} stack Tracks traversed `array` and `other` objects.
 * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.
 */


function equalArrays(array, other, bitmask, customizer, equalFunc, stack) {
  var isPartial = bitmask & COMPARE_PARTIAL_FLAG,
      arrLength = array.length,
      othLength = other.length;

  if (arrLength != othLength && !(isPartial && othLength > arrLength)) {
    return false;
  } // Assume cyclic values are equal.


  var stacked = stack.get(array);

  if (stacked && stack.get(other)) {
    return stacked == other;
  }

  var index = -1,
      result = true,
      seen = bitmask & COMPARE_UNORDERED_FLAG ? new SetCache() : undefined;
  stack.set(array, other);
  stack.set(other, array); // Ignore non-index properties.

  while (++index < arrLength) {
    var arrValue = array[index],
        othValue = other[index];

    if (customizer) {
      var compared = isPartial ? customizer(othValue, arrValue, index, other, array, stack) : customizer(arrValue, othValue, index, array, other, stack);
    }

    if (compared !== undefined) {
      if (compared) {
        continue;
      }

      result = false;
      break;
    } // Recursively compare arrays (susceptible to call stack limits).


    if (seen) {
      if (!arraySome(other, function (othValue, othIndex) {
        if (!cacheHas(seen, othIndex) && (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {
          return seen.push(othIndex);
        }
      })) {
        result = false;
        break;
      }
    } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {
      result = false;
      break;
    }
  }

  stack['delete'](array);
  stack['delete'](other);
  return result;
}
/**
 * A specialized version of `baseIsEqualDeep` for comparing objects of
 * the same `toStringTag`.
 *
 * **Note:** This function only supports comparing values with tags of
 * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.
 *
 * @private
 * @param {Object} object The object to compare.
 * @param {Object} other The other object to compare.
 * @param {string} tag The `toStringTag` of the objects to compare.
 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
 * @param {Function} customizer The function to customize comparisons.
 * @param {Function} equalFunc The function to determine equivalents of values.
 * @param {Object} stack Tracks traversed `object` and `other` objects.
 * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
 */


function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {
  switch (tag) {
    case dataViewTag:
      if (object.byteLength != other.byteLength || object.byteOffset != other.byteOffset) {
        return false;
      }

      object = object.buffer;
      other = other.buffer;

    case arrayBufferTag:
      if (object.byteLength != other.byteLength || !equalFunc(new Uint8Array(object), new Uint8Array(other))) {
        return false;
      }

      return true;

    case boolTag:
    case dateTag:
    case numberTag:
      // Coerce booleans to `1` or `0` and dates to milliseconds.
      // Invalid dates are coerced to `NaN`.
      return eq(+object, +other);

    case errorTag:
      return object.name == other.name && object.message == other.message;

    case regexpTag:
    case stringTag:
      // Coerce regexes to strings and treat strings, primitives and objects,
      // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring
      // for more details.
      return object == other + '';

    case mapTag:
      var convert = mapToArray;

    case setTag:
      var isPartial = bitmask & COMPARE_PARTIAL_FLAG;
      convert || (convert = setToArray);

      if (object.size != other.size && !isPartial) {
        return false;
      } // Assume cyclic values are equal.


      var stacked = stack.get(object);

      if (stacked) {
        return stacked == other;
      }

      bitmask |= COMPARE_UNORDERED_FLAG; // Recursively compare objects (susceptible to call stack limits).

      stack.set(object, other);
      var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);
      stack['delete'](object);
      return result;

    case symbolTag:
      if (symbolValueOf) {
        return symbolValueOf.call(object) == symbolValueOf.call(other);
      }

  }

  return false;
}
/**
 * A specialized version of `baseIsEqualDeep` for objects with support for
 * partial deep comparisons.
 *
 * @private
 * @param {Object} object The object to compare.
 * @param {Object} other The other object to compare.
 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
 * @param {Function} customizer The function to customize comparisons.
 * @param {Function} equalFunc The function to determine equivalents of values.
 * @param {Object} stack Tracks traversed `object` and `other` objects.
 * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
 */


function equalObjects(object, other, bitmask, customizer, equalFunc, stack) {
  var isPartial = bitmask & COMPARE_PARTIAL_FLAG,
      objProps = getAllKeys(object),
      objLength = objProps.length,
      othProps = getAllKeys(other),
      othLength = othProps.length;

  if (objLength != othLength && !isPartial) {
    return false;
  }

  var index = objLength;

  while (index--) {
    var key = objProps[index];

    if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {
      return false;
    }
  } // Assume cyclic values are equal.


  var stacked = stack.get(object);

  if (stacked && stack.get(other)) {
    return stacked == other;
  }

  var result = true;
  stack.set(object, other);
  stack.set(other, object);
  var skipCtor = isPartial;

  while (++index < objLength) {
    key = objProps[index];
    var objValue = object[key],
        othValue = other[key];

    if (customizer) {
      var compared = isPartial ? customizer(othValue, objValue, key, other, object, stack) : customizer(objValue, othValue, key, object, other, stack);
    } // Recursively compare objects (susceptible to call stack limits).


    if (!(compared === undefined ? objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack) : compared)) {
      result = false;
      break;
    }

    skipCtor || (skipCtor = key == 'constructor');
  }

  if (result && !skipCtor) {
    var objCtor = object.constructor,
        othCtor = other.constructor; // Non `Object` object instances with different constructors are not equal.

    if (objCtor != othCtor && 'constructor' in object && 'constructor' in other && !(typeof objCtor == 'function' && objCtor instanceof objCtor && typeof othCtor == 'function' && othCtor instanceof othCtor)) {
      result = false;
    }
  }

  stack['delete'](object);
  stack['delete'](other);
  return result;
}
/**
 * Creates an array of own enumerable property names and symbols of `object`.
 *
 * @private
 * @param {Object} object The object to query.
 * @returns {Array} Returns the array of property names and symbols.
 */


function getAllKeys(object) {
  return baseGetAllKeys(object, keys, getSymbols);
}
/**
 * Gets the data for `map`.
 *
 * @private
 * @param {Object} map The map to query.
 * @param {string} key The reference key.
 * @returns {*} Returns the map data.
 */


function getMapData(map, key) {
  var data = map.__data__;
  return isKeyable(key) ? data[typeof key == 'string' ? 'string' : 'hash'] : data.map;
}
/**
 * Gets the native function at `key` of `object`.
 *
 * @private
 * @param {Object} object The object to query.
 * @param {string} key The key of the method to get.
 * @returns {*} Returns the function if it's native, else `undefined`.
 */


function getNative(object, key) {
  var value = getValue(object, key);
  return baseIsNative(value) ? value : undefined;
}
/**
 * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.
 *
 * @private
 * @param {*} value The value to query.
 * @returns {string} Returns the raw `toStringTag`.
 */


function getRawTag(value) {
  var isOwn = hasOwnProperty.call(value, symToStringTag),
      tag = value[symToStringTag];

  try {
    value[symToStringTag] = undefined;
    var unmasked = true;
  } catch (e) {}

  var result = nativeObjectToString.call(value);

  if (unmasked) {
    if (isOwn) {
      value[symToStringTag] = tag;
    } else {
      delete value[symToStringTag];
    }
  }

  return result;
}
/**
 * Creates an array of the own enumerable symbols of `object`.
 *
 * @private
 * @param {Object} object The object to query.
 * @returns {Array} Returns the array of symbols.
 */


var getSymbols = !nativeGetSymbols ? stubArray : function (object) {
  if (object == null) {
    return [];
  }

  object = Object(object);
  return arrayFilter(nativeGetSymbols(object), function (symbol) {
    return propertyIsEnumerable.call(object, symbol);
  });
};
/**
 * Gets the `toStringTag` of `value`.
 *
 * @private
 * @param {*} value The value to query.
 * @returns {string} Returns the `toStringTag`.
 */

var getTag = baseGetTag; // Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.

if (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 (value) {
    var result = baseGetTag(value),
        Ctor = result == objectTag ? value.constructor : undefined,
        ctorString = Ctor ? toSource(Ctor) : '';

    if (ctorString) {
      switch (ctorString) {
        case dataViewCtorString:
          return dataViewTag;

        case mapCtorString:
          return mapTag;

        case promiseCtorString:
          return promiseTag;

        case setCtorString:
          return setTag;

        case weakMapCtorString:
          return weakMapTag;
      }
    }

    return result;
  };
}
/**
 * Checks if `value` is a valid array-like index.
 *
 * @private
 * @param {*} value The value to check.
 * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.
 * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.
 */


function isIndex(value, length) {
  length = length == null ? MAX_SAFE_INTEGER : length;
  return !!length && (typeof value == 'number' || reIsUint.test(value)) && value > -1 && value % 1 == 0 && value < length;
}
/**
 * Checks if `value` is suitable for use as unique object key.
 *
 * @private
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is suitable, else `false`.
 */


function isKeyable(value) {
  var type = typeof value;
  return type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean' ? value !== '__proto__' : value === null;
}
/**
 * Checks if `func` has its source masked.
 *
 * @private
 * @param {Function} func The function to check.
 * @returns {boolean} Returns `true` if `func` is masked, else `false`.
 */


function isMasked(func) {
  return !!maskSrcKey && maskSrcKey in func;
}
/**
 * Checks if `value` is likely a prototype object.
 *
 * @private
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.
 */


function isPrototype(value) {
  var Ctor = value && value.constructor,
      proto = typeof Ctor == 'function' && Ctor.prototype || objectProto;
  return value === proto;
}
/**
 * Converts `value` to a string using `Object.prototype.toString`.
 *
 * @private
 * @param {*} value The value to convert.
 * @returns {string} Returns the converted string.
 */


function objectToString(value) {
  return nativeObjectToString.call(value);
}
/**
 * Converts `func` to its source code.
 *
 * @private
 * @param {Function} func The function to convert.
 * @returns {string} Returns the source code.
 */


function toSource(func) {
  if (func != null) {
    try {
      return funcToString.call(func);
    } catch (e) {}

    try {
      return func + '';
    } catch (e) {}
  }

  return '';
}
/**
 * Performs a
 * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
 * comparison between two values to determine if they are equivalent.
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to compare.
 * @param {*} other The other value to compare.
 * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
 * @example
 *
 * var object = { 'a': 1 };
 * var other = { 'a': 1 };
 *
 * _.eq(object, object);
 * // => true
 *
 * _.eq(object, other);
 * // => false
 *
 * _.eq('a', 'a');
 * // => true
 *
 * _.eq('a', Object('a'));
 * // => false
 *
 * _.eq(NaN, NaN);
 * // => true
 */


function eq(value, other) {
  return value === other || value !== value && other !== other;
}
/**
 * Checks if `value` is likely an `arguments` object.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is an `arguments` object,
 *  else `false`.
 * @example
 *
 * _.isArguments(function() { return arguments; }());
 * // => true
 *
 * _.isArguments([1, 2, 3]);
 * // => false
 */


var isArguments = baseIsArguments(function () {
  return arguments;
}()) ? baseIsArguments : function (value) {
  return isObjectLike(value) && hasOwnProperty.call(value, 'callee') && !propertyIsEnumerable.call(value, 'callee');
};
/**
 * Checks if `value` is classified as an `Array` object.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is an array, else `false`.
 * @example
 *
 * _.isArray([1, 2, 3]);
 * // => true
 *
 * _.isArray(document.body.children);
 * // => false
 *
 * _.isArray('abc');
 * // => false
 *
 * _.isArray(_.noop);
 * // => false
 */

var isArray = Array.isArray;
/**
 * Checks if `value` is array-like. A value is considered array-like if it's
 * not a function and has a `value.length` that's an integer greater than or
 * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is array-like, else `false`.
 * @example
 *
 * _.isArrayLike([1, 2, 3]);
 * // => true
 *
 * _.isArrayLike(document.body.children);
 * // => true
 *
 * _.isArrayLike('abc');
 * // => true
 *
 * _.isArrayLike(_.noop);
 * // => false
 */

function isArrayLike(value) {
  return value != null && isLength(value.length) && !isFunction(value);
}
/**
 * Checks if `value` is a buffer.
 *
 * @static
 * @memberOf _
 * @since 4.3.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.
 * @example
 *
 * _.isBuffer(new Buffer(2));
 * // => true
 *
 * _.isBuffer(new Uint8Array(2));
 * // => false
 */


var isBuffer = nativeIsBuffer || stubFalse;
/**
 * Performs a deep comparison between two values to determine if they are
 * equivalent.
 *
 * **Note:** This method supports comparing arrays, array buffers, booleans,
 * date objects, error objects, maps, numbers, `Object` objects, regexes,
 * sets, strings, symbols, and typed arrays. `Object` objects are compared
 * by their own, not inherited, enumerable properties. Functions and DOM
 * nodes are compared by strict equality, i.e. `===`.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Lang
 * @param {*} value The value to compare.
 * @param {*} other The other value to compare.
 * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
 * @example
 *
 * var object = { 'a': 1 };
 * var other = { 'a': 1 };
 *
 * _.isEqual(object, other);
 * // => true
 *
 * object === other;
 * // => false
 */

function isEqual(value, other) {
  return baseIsEqual(value, other);
}
/**
 * Checks if `value` is classified as a `Function` object.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a function, else `false`.
 * @example
 *
 * _.isFunction(_);
 * // => true
 *
 * _.isFunction(/abc/);
 * // => false
 */


function isFunction(value) {
  if (!isObject(value)) {
    return false;
  } // The use of `Object#toString` avoids issues with the `typeof` operator
  // in Safari 9 which returns 'object' for typed arrays and other constructors.


  var tag = baseGetTag(value);
  return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;
}
/**
 * Checks if `value` is a valid array-like length.
 *
 * **Note:** This method is loosely based on
 * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
 * @example
 *
 * _.isLength(3);
 * // => true
 *
 * _.isLength(Number.MIN_VALUE);
 * // => false
 *
 * _.isLength(Infinity);
 * // => false
 *
 * _.isLength('3');
 * // => false
 */


function isLength(value) {
  return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
}
/**
 * Checks if `value` is the
 * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
 * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is an object, else `false`.
 * @example
 *
 * _.isObject({});
 * // => true
 *
 * _.isObject([1, 2, 3]);
 * // => true
 *
 * _.isObject(_.noop);
 * // => true
 *
 * _.isObject(null);
 * // => false
 */


function isObject(value) {
  var type = typeof value;
  return value != null && (type == 'object' || type == 'function');
}
/**
 * Checks if `value` is object-like. A value is object-like if it's not `null`
 * and has a `typeof` result of "object".
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
 * @example
 *
 * _.isObjectLike({});
 * // => true
 *
 * _.isObjectLike([1, 2, 3]);
 * // => true
 *
 * _.isObjectLike(_.noop);
 * // => false
 *
 * _.isObjectLike(null);
 * // => false
 */


function isObjectLike(value) {
  return value != null && typeof value == 'object';
}
/**
 * Checks if `value` is classified as a typed array.
 *
 * @static
 * @memberOf _
 * @since 3.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.
 * @example
 *
 * _.isTypedArray(new Uint8Array);
 * // => true
 *
 * _.isTypedArray([]);
 * // => false
 */


var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;
/**
 * Creates an array of the own enumerable property names of `object`.
 *
 * **Note:** Non-object values are coerced to objects. See the
 * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)
 * for more details.
 *
 * @static
 * @since 0.1.0
 * @memberOf _
 * @category Object
 * @param {Object} object The object to query.
 * @returns {Array} Returns the array of property names.
 * @example
 *
 * function Foo() {
 *   this.a = 1;
 *   this.b = 2;
 * }
 *
 * Foo.prototype.c = 3;
 *
 * _.keys(new Foo);
 * // => ['a', 'b'] (iteration order is not guaranteed)
 *
 * _.keys('hi');
 * // => ['0', '1']
 */

function keys(object) {
  return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);
}
/**
 * This method returns a new empty array.
 *
 * @static
 * @memberOf _
 * @since 4.13.0
 * @category Util
 * @returns {Array} Returns the new empty array.
 * @example
 *
 * var arrays = _.times(2, _.stubArray);
 *
 * console.log(arrays);
 * // => [[], []]
 *
 * console.log(arrays[0] === arrays[1]);
 * // => false
 */


function stubArray() {
  return [];
}
/**
 * This method returns `false`.
 *
 * @static
 * @memberOf _
 * @since 4.13.0
 * @category Util
 * @returns {boolean} Returns `false`.
 * @example
 *
 * _.times(2, _.stubFalse);
 * // => [false, false]
 */


function stubFalse() {
  return false;
}

module.exports = isEqual;
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("yLpj"), __webpack_require__("YuTi")(module)))

/***/ }),

/***/ "XctL":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return sortByName; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return sortByModifiedDate; });
function sortByName(items, getName, direction) {
    function compare(a, b) {
        const aName = getName(a).toLowerCase();
        const bName = getName(b).toLowerCase();
        if (aName < bName) {
            return direction === 'asc' ? -1 : 1;
        }
        if (aName > bName) {
            return direction === 'asc' ? 1 : -1;
        }
        return 0;
    }
    // The slice() silences a warning from MobX (that MobX will not sort in-place).
    return items.slice().sort(compare);
}
function sortByModifiedDate(items, getDate, direction) {
    function compare(a, b) {
        const aName = getDate(a);
        const bName = getDate(b);
        if (aName < bName) {
            return direction === 'asc' ? -1 : 1;
        }
        if (aName > bName) {
            return direction === 'asc' ? 1 : -1;
        }
        return 0;
    }
    return items.slice().sort(compare);
}


/***/ }),

/***/ "Xf/+":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXPORTS
__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ ProjectNameWithBackButton_ProjectNameWithBackButton; });

// EXTERNAL MODULE: ./node_modules/mobx-react/index.module.js
var index_module = __webpack_require__("okNM");

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__("q1tI");
var react_default = /*#__PURE__*/__webpack_require__.n(react);

// EXTERNAL MODULE: ./node_modules/react-intl-cdo/lib/index.es.js + 1 modules
var index_es = __webpack_require__("VIzJ");

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Button/index.js
var Button = __webpack_require__("Cn9g");
var Button_default = /*#__PURE__*/__webpack_require__.n(Button);

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/ChevronLeft/index.js
var ChevronLeft = __webpack_require__("fjGn");
var ChevronLeft_default = /*#__PURE__*/__webpack_require__.n(ChevronLeft);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/hooks/useIntl.ts
var useIntl = __webpack_require__("BuN4");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/components/header/BackButton.tsx




function BackButton({ onPress, className }) {
    let intl = Object(useIntl["a" /* default */])();
    return (react_default.a.createElement(Button_default.a, { className: className, variant: "tool", onClick: onPress, key: "backButton", icon: react_default.a.createElement(ChevronLeft_default.a, null), quiet: true, "aria-label": intl.formatMessage({ id: 'button.back' }) }));
}

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/components/header/ProjectColorWrapper.tsx
var ProjectColorWrapper = __webpack_require__("LMy0");

// EXTERNAL MODULE: ./node_modules/classnames/index.js
var classnames = __webpack_require__("TSYQ");
var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Heading/index.js
var Heading = __webpack_require__("8bOP");
var Heading_default = /*#__PURE__*/__webpack_require__.n(Heading);

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/InfoOutline/index.js
var InfoOutline = __webpack_require__("AiiT");
var InfoOutline_default = /*#__PURE__*/__webpack_require__.n(InfoOutline);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/OverlayTrigger/index.js
var OverlayTrigger = __webpack_require__("uYrR");
var OverlayTrigger_default = /*#__PURE__*/__webpack_require__.n(OverlayTrigger);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Tooltip/index.js
var Tooltip = __webpack_require__("DUuf");
var Tooltip_default = /*#__PURE__*/__webpack_require__.n(Tooltip);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/components/SpaceAccess.tsx
var SpaceAccess = __webpack_require__("BzLU");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/components/header/Title.css
var Title = __webpack_require__("j3T8");
var Title_default = /*#__PURE__*/__webpack_require__.n(Title);

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/components/header/Title.tsx









function toUpperCase(value) {
    return typeof value === 'string' ? value.toLocaleUpperCase() : value;
}
/* harmony default export */ var header_Title = (({ access, description, inUAP, name, repositoryName, teamName }) => {
    const descriptionOrPlaceholder = description || (react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "project1up.subheader.emptyDescription" }));
    const showTeam = inUAP && teamName;
    return (react_default.a.createElement("div", { className: Title_default.a.Title },
        react_default.a.createElement(OverlayTrigger_default.a, { trigger: ['hover'], placement: 'right', boundariesElement: "container" },
            react_default.a.createElement(Heading_default.a, { className: Title_default.a.name, "data-test-id": "Project1UpHeader__title" }, name),
            react_default.a.createElement(Tooltip_default.a, { className: Title_default.a.spaceNameTooltip }, name === null || name === void 0 ? void 0 : name.toString())),
        react_default.a.createElement("span", { className: Title_default.a.teamMetadata }, showTeam ? (react_default.a.createElement(react_default.a.Fragment, null,
            react_default.a.createElement(SpaceAccess["b" /* AccessIconAndTooltip */], { access: access, team: teamName }),
            react_default.a.createElement("span", { className: Title_default.a.dotSeparator }, "\u2022"),
            react_default.a.createElement(OverlayTrigger_default.a, { placement: 'bottom' },
                react_default.a.createElement(Heading_default.a, { className: Title_default.a.description, "data-test-id": "Project1UpHeader__description", variant: "subtitle2" },
                    react_default.a.createElement(InfoOutline_default.a, { className: Title_default.a.icon, size: "XS" })),
                react_default.a.createElement("div", { className: Title_default.a.descriptionContainer },
                    react_default.a.createElement(Tooltip_default.a, { className: Title_default.a.descriptionTooltip }, descriptionOrPlaceholder))))) : (react_default.a.createElement(OverlayTrigger_default.a, { placement: 'bottom' },
            react_default.a.createElement(Heading_default.a, { className: classnames_default()(Title_default.a.description, {
                    [Title_default.a.placeholder]: description === '',
                }), "data-test-id": "Project1UpHeader__description", variant: "subtitle2" }, descriptionOrPlaceholder),
            react_default.a.createElement("div", { className: Title_default.a.descriptionContainer },
                react_default.a.createElement(Tooltip_default.a, { className: Title_default.a.descriptionTooltip }, descriptionOrPlaceholder)))))));
});

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/hooks/ProjectContext.ts
var ProjectContext = __webpack_require__("dCkJ");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/components/header/ProjectNameWithBackButton.css
var ProjectNameWithBackButton = __webpack_require__("vTmA");
var ProjectNameWithBackButton_default = /*#__PURE__*/__webpack_require__.n(ProjectNameWithBackButton);

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/components/header/ProjectNameWithBackButton.tsx









function ProjectNameWithBackButton_ProjectNameWithBackButton({ inUAP, onBack, showSpaceInfo, hideBackButton = false, }) {
    const project = Object(react["useContext"])(ProjectContext["a" /* default */]);
    const { description, isSharedToTeam, name, repositoryName, teamName } = project;
    const showBackButton = !hideBackButton;
    return (react_default.a.createElement("div", { className: ProjectNameWithBackButton_default.a.root },
        showBackButton && react_default.a.createElement(BackButton, { className: ProjectNameWithBackButton_default.a.backButton, onPress: onBack }),
        react_default.a.createElement(ProjectColorWrapper["a" /* ProjectColorWrapper */], { large: true, projectColor: project.color, showSpaceInfo: showSpaceInfo },
            react_default.a.createElement(index_module["a" /* Observer */], null, () => (react_default.a.createElement(header_Title, { access: isSharedToTeam ? SpaceAccess["c" /* AccessTypes */].team : SpaceAccess["c" /* AccessTypes */].private, description: description, inUAP: inUAP, name: project.reloadFailure ? (react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "project.metadataError.backLabel" })) : (name), teamName: teamName, repositoryName: repositoryName }))))));
}


/***/ }),

/***/ "XhRW":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("KRrC"),
      24: __webpack_require__("PAs4")
    }
  }));
};

WrappedIcon.displayName = 'ArrowUp';
exports.default = WrappedIcon;

/***/ }),

/***/ "Xhqo":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


function _classCallCheck(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}

var Buffer = __webpack_require__("hwdV").Buffer;

var util = __webpack_require__(5);

function copyBuffer(src, target, offset) {
  src.copy(target, offset);
}

module.exports = function () {
  function BufferList() {
    _classCallCheck(this, BufferList);

    this.head = null;
    this.tail = null;
    this.length = 0;
  }

  BufferList.prototype.push = function push(v) {
    var entry = {
      data: v,
      next: null
    };
    if (this.length > 0) this.tail.next = entry;else this.head = entry;
    this.tail = entry;
    ++this.length;
  };

  BufferList.prototype.unshift = function unshift(v) {
    var entry = {
      data: v,
      next: this.head
    };
    if (this.length === 0) this.tail = entry;
    this.head = entry;
    ++this.length;
  };

  BufferList.prototype.shift = function shift() {
    if (this.length === 0) return;
    var ret = this.head.data;
    if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;
    --this.length;
    return ret;
  };

  BufferList.prototype.clear = function clear() {
    this.head = this.tail = null;
    this.length = 0;
  };

  BufferList.prototype.join = function join(s) {
    if (this.length === 0) return '';
    var p = this.head;
    var ret = '' + p.data;

    while (p = p.next) {
      ret += s + p.data;
    }

    return ret;
  };

  BufferList.prototype.concat = function concat(n) {
    if (this.length === 0) return Buffer.alloc(0);
    if (this.length === 1) return this.head.data;
    var ret = Buffer.allocUnsafe(n >>> 0);
    var p = this.head;
    var i = 0;

    while (p) {
      copyBuffer(p.data, ret, i);
      i += p.data.length;
      p = p.next;
    }

    return ret;
  };

  return BufferList;
}();

if (util && util.inspect && util.inspect.custom) {
  module.exports.prototype[util.inspect.custom] = function () {
    var obj = util.inspect({
      length: this.length
    });
    return this.constructor.name + ' ' + obj;
  };
}

/***/ }),

/***/ "Xi7e":
/***/ (function(module, exports, __webpack_require__) {

var listCacheClear = __webpack_require__("KMkd"),
    listCacheDelete = __webpack_require__("adU4"),
    listCacheGet = __webpack_require__("tMB7"),
    listCacheHas = __webpack_require__("+6XX"),
    listCacheSet = __webpack_require__("Z8oC");
/**
 * Creates an list cache object.
 *
 * @private
 * @constructor
 * @param {Array} [entries] The key-value pairs to cache.
 */


function ListCache(entries) {
  var index = -1,
      length = entries == null ? 0 : entries.length;
  this.clear();

  while (++index < length) {
    var entry = entries[index];
    this.set(entry[0], entry[1]);
  }
} // Add methods to `ListCache`.


ListCache.prototype.clear = listCacheClear;
ListCache.prototype['delete'] = listCacheDelete;
ListCache.prototype.get = listCacheGet;
ListCache.prototype.has = listCacheHas;
ListCache.prototype.set = listCacheSet;
module.exports = ListCache;

/***/ }),

/***/ "XmUd":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return offlineController; });
/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("2vnA");
/* harmony import */ var _EventEmitter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("/XAQ");
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
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;
};
var __metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var _a;


// Switch DEBUGGING_ONLINE_STATES to true to toggle online/offline with
// window.__projects_internals__.simulateOnline() or window.__projects_internals__.simulateOffline() in dev console
const DEBUGGING_ONLINE_STATES = false;
const SIMULATE_ONLINE_AFTER = 5 * 1000;
class OfflineController extends _EventEmitter__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"] {
    constructor() {
        super();
        this._isOnline = navigator.onLine;
        // use this variable to simulate transitions to online/offline
        //   undefined = use navigator.onLine
        //   true = online
        //   false = offline
        this.simulatedOnlineState = undefined;
        this.simulationChangeDelay = SIMULATE_ONLINE_AFTER;
        this.simulateOnlineState = () => {
            console.log(`Check for simulating online state happening in 5 seconds...`);
            setTimeout(() => {
                if (this.simulatedOnlineState !== undefined) {
                    this._isOnline = this.simulatedOnlineState;
                    this.emit(this.simulatedOnlineState ? 'online' : 'offline');
                    console.log(`simulating online state: ${this.simulatedOnlineState ? 'online' : 'offline'}`);
                }
            }, this.simulationChangeDelay);
        };
        this.updateOnlineState = () => {
            if (this.simulatedOnlineState !== undefined) {
                console.log(`Online state changed ${navigator.onLine}; ignored while simulating online state.`);
                return;
            }
            const wasOnline = this.isOnline;
            const isOnline = navigator.onLine;
            if (!wasOnline && isOnline) {
                this._isOnline = true;
                this.emit('online');
            }
            else if (wasOnline && !isOnline) {
                this._isOnline = false;
                this.emit('offline');
            }
        };
        // Add hooks to update online and offline state to show state for app based on current network setting
        window.addEventListener('online', this.updateOnlineState);
        window.addEventListener('offline', this.updateOnlineState);
        if (DEBUGGING_ONLINE_STATES) {
            window.addEventListener('keydown', (e) => {
                if (e.key === 'F8') {
                    const { simulateOffline, simulateOnline } = window
                        .__projects_internals__;
                    if (this.simulatedOnlineState) {
                        simulateOffline(e.shiftKey ? 0 : undefined);
                    }
                    else {
                        simulateOnline(e.shiftKey ? 0 : undefined);
                    }
                }
            });
            this.simulatedOnlineState = true;
        }
    }
    get isOnline() {
        return this._isOnline;
    }
}
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", Object)
], OfflineController.prototype, "_isOnline", void 0);
const offlineController = new OfflineController();
if (DEBUGGING_ONLINE_STATES && window) {
    console.log('DEBUGGING_ONLINE_STATES');
    const w = window;
    const simulateOnlineStatus = (online, delay) => {
        offlineController.simulatedOnlineState = online;
        offlineController.simulationChangeDelay = delay !== null && delay !== void 0 ? delay : SIMULATE_ONLINE_AFTER;
        offlineController.simulateOnlineState();
    };
    const simulateOnline = (delay) => simulateOnlineStatus(true, delay);
    const simulateOffline = (delay) => simulateOnlineStatus(false, delay);
    w.__projects_internals__ = Object.assign((_a = w.__projects_internals__) !== null && _a !== void 0 ? _a : {}, {
        simulateOnline,
        simulateOffline,
    });
}



/***/ }),

/***/ "Xpp+":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return ProxyOnClose; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return LoaderDialog; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return withSuspense; });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("VIzJ");
/* harmony import */ var _react_react_spectrum_Wait__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("czhh");
/* harmony import */ var _react_react_spectrum_Wait__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Wait__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _components_Dialog__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("dKUG");
/* harmony import */ var _components_ErrorDialog__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("vQKl");
/* harmony import */ var _styles_Dialog_css__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("SFhd");
/* harmony import */ var _styles_Dialog_css__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_styles_Dialog_css__WEBPACK_IMPORTED_MODULE_5__);






/**
 * React Spectrum 2 clones dialog components so ModalContainer is able listen to its children's onClose handler
 * This works out of the box with direct component ancestry (<ModalTrigger><Dialog /></ModalTrigger>), but
 * interleaving components (for example, IntlProvider or Suspense) without passing an onClose prop down to the
 * dialog would sever that connection. ProxyOnClose will take care of it for you
 *
 * @example Proxying between deeply nested components

    ModalContainer.show(
        <ProxyOnClose element={dialog}>                         <-- Listens for onClose()
            {(proxiedElement) => (
                <IntlProvider locale="en-US">                   <-- No onClose() awareness
                    <Suspense fallback={<LoadingDialog />}>     <-- No onClose() awareness
                        {proxiedElement}                        <-- Listens for onClose()
                    </Suspense>
                </IntlProvider>
            )}
        </ProxyOnClose>
    );

 * @example Binding onClose listener to a predefined dialog
 * NOTE <ProxyOnClose /> is self-closed in this example so the dialog will be a direct child of that component,
 * as opposed to the deep nesting mentioned above. Combine the two for even more powerful results.

    function openModal(dialog) {
        let modalKey;
        const handleOnClose = () => {
            if (modalKey) {
                console.log('Hiding the modal...');
                ModalContainer.hide(modalKey);
            }
        }

        modalKey = ModalContainer.show(
            <ProxyOnClose element={dialog} onClose={handleOnClose} />
        )
    }

    openModal(<Dialog confirmLabel="OK" onClose={console.log('User clicked OK')}>Please click the button</Dialog>);

    // [After user interacts]
    // >>> User clicked OK
    // >>> Hiding the modal...
    // [Modal is removed]

 */
const ProxyOnClose = ({ children, element, onClose, }) => {
    const proxied = Object(react__WEBPACK_IMPORTED_MODULE_0__["cloneElement"])(element, {
        onClose: () => {
            var _a, _b;
            (_b = (_a = element.props).onClose) === null || _b === void 0 ? void 0 : _b.call(_a);
            onClose === null || onClose === void 0 ? void 0 : onClose();
        },
    });
    return typeof children === 'function' ? children(proxied) : proxied;
};
const LoaderDialog = () => (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_Dialog__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"], { className: _styles_Dialog_css__WEBPACK_IMPORTED_MODULE_5___default.a.dialog },
    react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", { className: _styles_Dialog_css__WEBPACK_IMPORTED_MODULE_5___default.a.content },
        react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_react_react_spectrum_Wait__WEBPACK_IMPORTED_MODULE_2___default.a, { size: "M" }))));
const withSuspense = (Component, errorConfig) => promise => Object(react__WEBPACK_IMPORTED_MODULE_0__["lazy"])(async () => {
    var _a, _b, _c, _d;
    try {
        await promise;
        return { default: Component };
    }
    catch (err) {
        const title = (_b = (_a = err === null || err === void 0 ? void 0 : err.error) === null || _a === void 0 ? void 0 : _a.title) !== null && _b !== void 0 ? _b : 'dialog.genericError.title';
        const description = (_d = (_c = err === null || err === void 0 ? void 0 : err.error) === null || _c === void 0 ? void 0 : _c.description) !== null && _d !== void 0 ? _d : 'dialog.genericError.description';
        const ErrorUI = Object(react_intl__WEBPACK_IMPORTED_MODULE_1__[/* injectIntl */ "g"])(({ onClose }) => {
            return (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_ErrorDialog__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"], Object.assign({ errorMessageId: description, errorTitleId: title, onClose: onClose, variant: 'error' }, errorConfig)));
        });
        return { default: ErrorUI };
    }
});


/***/ }),

/***/ "Xr7M":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("WreY"),
      24: __webpack_require__("KLR1")
    }
  }));
};

WrappedIcon.displayName = 'Rename';
exports.default = WrappedIcon;

/***/ }),

/***/ "Xt1Y":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var isValue = __webpack_require__("k2qM"); // prettier-ignore


var possibleTypes = {
  "object": true,
  "function": true,
  "undefined": true
  /* document.all */

};

module.exports = function (value) {
  if (!isValue(value)) return false;
  return hasOwnProperty.call(possibleTypes, typeof value);
};

/***/ }),

/***/ "Xtod":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return InvitationServiceRequest; });
/* harmony import */ var _ServiceRequest__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("Cc7P");
/* harmony import */ var _stores_Settings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("5u1M");


/**
 * Generalized Invitation Service Request Utility Class
 *
 * @export
 * @class InvitationServiceRequest
 * @extends {ServiceRequest}
 */
class InvitationServiceRequest extends _ServiceRequest__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"] {
    constructor(apiPath) {
        super();
        /**
         * Invitation Service Domain
         *
         * @static
         * @memberof InvitationServiceRequest
         */
        this._url = '';
        this.headers({
            Authorization: '',
            'X-Api-Key': _stores_Settings__WEBPACK_IMPORTED_MODULE_1__[/* settings */ "b"].config.CLIENT_ID,
        });
        this.url(apiPath);
    }
    url(apiPath = '/') {
        let resolvedPath = apiPath;
        // If we have a fully resolved URL, we have followed response links from the API
        if (resolvedPath.startsWith('https://')) {
            this._url = resolvedPath;
            return this;
        }
        // Always prefix your paths with /
        if (!apiPath.startsWith('/')) {
            resolvedPath = `/${apiPath}`;
        }
        // Generate url
        this._url = `${_stores_Settings__WEBPACK_IMPORTED_MODULE_1__[/* settings */ "b"].config.INVITATIONS_SERVICE_ENDPOINT}${resolvedPath}`;
        return this;
    }
    async fetch() {
        return super.fetch();
    }
}


/***/ }),

/***/ "XtrC":
/***/ (function(module) {

module.exports = JSON.parse("{\"steps\":\"{currentStep} sur {totalSteps}\"}");

/***/ }),

/***/ "Xudb":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


exports.readUInt32BE = function readUInt32BE(bytes, off) {
  var res = bytes[0 + off] << 24 | bytes[1 + off] << 16 | bytes[2 + off] << 8 | bytes[3 + off];
  return res >>> 0;
};

exports.writeUInt32BE = function writeUInt32BE(bytes, value, off) {
  bytes[0 + off] = value >>> 24;
  bytes[1 + off] = value >>> 16 & 0xff;
  bytes[2 + off] = value >>> 8 & 0xff;
  bytes[3 + off] = value & 0xff;
};

exports.ip = function ip(inL, inR, out, off) {
  var outL = 0;
  var outR = 0;

  for (var i = 6; i >= 0; i -= 2) {
    for (var j = 0; j <= 24; j += 8) {
      outL <<= 1;
      outL |= inR >>> j + i & 1;
    }

    for (var j = 0; j <= 24; j += 8) {
      outL <<= 1;
      outL |= inL >>> j + i & 1;
    }
  }

  for (var i = 6; i >= 0; i -= 2) {
    for (var j = 1; j <= 25; j += 8) {
      outR <<= 1;
      outR |= inR >>> j + i & 1;
    }

    for (var j = 1; j <= 25; j += 8) {
      outR <<= 1;
      outR |= inL >>> j + i & 1;
    }
  }

  out[off + 0] = outL >>> 0;
  out[off + 1] = outR >>> 0;
};

exports.rip = function rip(inL, inR, out, off) {
  var outL = 0;
  var outR = 0;

  for (var i = 0; i < 4; i++) {
    for (var j = 24; j >= 0; j -= 8) {
      outL <<= 1;
      outL |= inR >>> j + i & 1;
      outL <<= 1;
      outL |= inL >>> j + i & 1;
    }
  }

  for (var i = 4; i < 8; i++) {
    for (var j = 24; j >= 0; j -= 8) {
      outR <<= 1;
      outR |= inR >>> j + i & 1;
      outR <<= 1;
      outR |= inL >>> j + i & 1;
    }
  }

  out[off + 0] = outL >>> 0;
  out[off + 1] = outR >>> 0;
};

exports.pc1 = function pc1(inL, inR, out, off) {
  var outL = 0;
  var outR = 0; // 7, 15, 23, 31, 39, 47, 55, 63
  // 6, 14, 22, 30, 39, 47, 55, 63
  // 5, 13, 21, 29, 39, 47, 55, 63
  // 4, 12, 20, 28

  for (var i = 7; i >= 5; i--) {
    for (var j = 0; j <= 24; j += 8) {
      outL <<= 1;
      outL |= inR >> j + i & 1;
    }

    for (var j = 0; j <= 24; j += 8) {
      outL <<= 1;
      outL |= inL >> j + i & 1;
    }
  }

  for (var j = 0; j <= 24; j += 8) {
    outL <<= 1;
    outL |= inR >> j + i & 1;
  } // 1, 9, 17, 25, 33, 41, 49, 57
  // 2, 10, 18, 26, 34, 42, 50, 58
  // 3, 11, 19, 27, 35, 43, 51, 59
  // 36, 44, 52, 60


  for (var i = 1; i <= 3; i++) {
    for (var j = 0; j <= 24; j += 8) {
      outR <<= 1;
      outR |= inR >> j + i & 1;
    }

    for (var j = 0; j <= 24; j += 8) {
      outR <<= 1;
      outR |= inL >> j + i & 1;
    }
  }

  for (var j = 0; j <= 24; j += 8) {
    outR <<= 1;
    outR |= inL >> j + i & 1;
  }

  out[off + 0] = outL >>> 0;
  out[off + 1] = outR >>> 0;
};

exports.r28shl = function r28shl(num, shift) {
  return num << shift & 0xfffffff | num >>> 28 - shift;
};

var pc2table = [// inL => outL
14, 11, 17, 4, 27, 23, 25, 0, 13, 22, 7, 18, 5, 9, 16, 24, 2, 20, 12, 21, 1, 8, 15, 26, // inR => outR
15, 4, 25, 19, 9, 1, 26, 16, 5, 11, 23, 8, 12, 7, 17, 0, 22, 3, 10, 14, 6, 20, 27, 24];

exports.pc2 = function pc2(inL, inR, out, off) {
  var outL = 0;
  var outR = 0;
  var len = pc2table.length >>> 1;

  for (var i = 0; i < len; i++) {
    outL <<= 1;
    outL |= inL >>> pc2table[i] & 0x1;
  }

  for (var i = len; i < pc2table.length; i++) {
    outR <<= 1;
    outR |= inR >>> pc2table[i] & 0x1;
  }

  out[off + 0] = outL >>> 0;
  out[off + 1] = outR >>> 0;
};

exports.expand = function expand(r, out, off) {
  var outL = 0;
  var outR = 0;
  outL = (r & 1) << 5 | r >>> 27;

  for (var i = 23; i >= 15; i -= 4) {
    outL <<= 6;
    outL |= r >>> i & 0x3f;
  }

  for (var i = 11; i >= 3; i -= 4) {
    outR |= r >>> i & 0x3f;
    outR <<= 6;
  }

  outR |= (r & 0x1f) << 1 | r >>> 31;
  out[off + 0] = outL >>> 0;
  out[off + 1] = outR >>> 0;
};

var sTable = [14, 0, 4, 15, 13, 7, 1, 4, 2, 14, 15, 2, 11, 13, 8, 1, 3, 10, 10, 6, 6, 12, 12, 11, 5, 9, 9, 5, 0, 3, 7, 8, 4, 15, 1, 12, 14, 8, 8, 2, 13, 4, 6, 9, 2, 1, 11, 7, 15, 5, 12, 11, 9, 3, 7, 14, 3, 10, 10, 0, 5, 6, 0, 13, 15, 3, 1, 13, 8, 4, 14, 7, 6, 15, 11, 2, 3, 8, 4, 14, 9, 12, 7, 0, 2, 1, 13, 10, 12, 6, 0, 9, 5, 11, 10, 5, 0, 13, 14, 8, 7, 10, 11, 1, 10, 3, 4, 15, 13, 4, 1, 2, 5, 11, 8, 6, 12, 7, 6, 12, 9, 0, 3, 5, 2, 14, 15, 9, 10, 13, 0, 7, 9, 0, 14, 9, 6, 3, 3, 4, 15, 6, 5, 10, 1, 2, 13, 8, 12, 5, 7, 14, 11, 12, 4, 11, 2, 15, 8, 1, 13, 1, 6, 10, 4, 13, 9, 0, 8, 6, 15, 9, 3, 8, 0, 7, 11, 4, 1, 15, 2, 14, 12, 3, 5, 11, 10, 5, 14, 2, 7, 12, 7, 13, 13, 8, 14, 11, 3, 5, 0, 6, 6, 15, 9, 0, 10, 3, 1, 4, 2, 7, 8, 2, 5, 12, 11, 1, 12, 10, 4, 14, 15, 9, 10, 3, 6, 15, 9, 0, 0, 6, 12, 10, 11, 1, 7, 13, 13, 8, 15, 9, 1, 4, 3, 5, 14, 11, 5, 12, 2, 7, 8, 2, 4, 14, 2, 14, 12, 11, 4, 2, 1, 12, 7, 4, 10, 7, 11, 13, 6, 1, 8, 5, 5, 0, 3, 15, 15, 10, 13, 3, 0, 9, 14, 8, 9, 6, 4, 11, 2, 8, 1, 12, 11, 7, 10, 1, 13, 14, 7, 2, 8, 13, 15, 6, 9, 15, 12, 0, 5, 9, 6, 10, 3, 4, 0, 5, 14, 3, 12, 10, 1, 15, 10, 4, 15, 2, 9, 7, 2, 12, 6, 9, 8, 5, 0, 6, 13, 1, 3, 13, 4, 14, 14, 0, 7, 11, 5, 3, 11, 8, 9, 4, 14, 3, 15, 2, 5, 12, 2, 9, 8, 5, 12, 15, 3, 10, 7, 11, 0, 14, 4, 1, 10, 7, 1, 6, 13, 0, 11, 8, 6, 13, 4, 13, 11, 0, 2, 11, 14, 7, 15, 4, 0, 9, 8, 1, 13, 10, 3, 14, 12, 3, 9, 5, 7, 12, 5, 2, 10, 15, 6, 8, 1, 6, 1, 6, 4, 11, 11, 13, 13, 8, 12, 1, 3, 4, 7, 10, 14, 7, 10, 9, 15, 5, 6, 0, 8, 15, 0, 14, 5, 2, 9, 3, 2, 12, 13, 1, 2, 15, 8, 13, 4, 8, 6, 10, 15, 3, 11, 7, 1, 4, 10, 12, 9, 5, 3, 6, 14, 11, 5, 0, 0, 14, 12, 9, 7, 2, 7, 2, 11, 1, 4, 14, 1, 7, 9, 4, 12, 10, 14, 8, 2, 13, 0, 15, 6, 12, 10, 9, 13, 0, 15, 3, 3, 5, 5, 6, 8, 11];

exports.substitute = function substitute(inL, inR) {
  var out = 0;

  for (var i = 0; i < 4; i++) {
    var b = inL >>> 18 - i * 6 & 0x3f;
    var sb = sTable[i * 0x40 + b];
    out <<= 4;
    out |= sb;
  }

  for (var i = 0; i < 4; i++) {
    var b = inR >>> 18 - i * 6 & 0x3f;
    var sb = sTable[4 * 0x40 + i * 0x40 + b];
    out <<= 4;
    out |= sb;
  }

  return out >>> 0;
};

var permuteTable = [16, 25, 12, 11, 3, 20, 4, 15, 31, 17, 9, 6, 27, 14, 1, 22, 30, 24, 8, 18, 0, 5, 29, 23, 13, 19, 2, 26, 10, 21, 28, 7];

exports.permute = function permute(num) {
  var out = 0;

  for (var i = 0; i < permuteTable.length; i++) {
    out <<= 1;
    out |= num >>> permuteTable[i] & 0x1;
  }

  return out >>> 0;
};

exports.padSplit = function padSplit(num, size, group) {
  var str = num.toString(2);

  while (str.length < size) str = '0' + str;

  var out = [];

  for (var i = 0; i < size; i += group) out.push(str.slice(i, i + group));

  return out.join(' ');
};

/***/ }),

/***/ "XxdM":
/***/ (function(module) {

module.exports = JSON.parse("{\"Breadcrumbs\":\"Sökvägar\"}");

/***/ }),

/***/ "Y7ZC":
/***/ (function(module, exports, __webpack_require__) {

var global = __webpack_require__("5T2Y");

var core = __webpack_require__("WEpk");

var ctx = __webpack_require__("2GTP");

var hide = __webpack_require__("NegM");

var has = __webpack_require__("B+OT");

var PROTOTYPE = 'prototype';

var $export = function (type, name, source) {
  var IS_FORCED = type & $export.F;
  var IS_GLOBAL = type & $export.G;
  var IS_STATIC = type & $export.S;
  var IS_PROTO = type & $export.P;
  var IS_BIND = type & $export.B;
  var IS_WRAP = type & $export.W;
  var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});
  var expProto = exports[PROTOTYPE];
  var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];
  var key, own, out;
  if (IS_GLOBAL) source = name;

  for (key in source) {
    // contains in native
    own = !IS_FORCED && target && target[key] !== undefined;
    if (own && has(exports, key)) continue; // export native or passed

    out = own ? target[key] : source[key]; // prevent global pollution for namespaces

    exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key] // bind timers to global for call from export context
    : IS_BIND && own ? ctx(out, global) // wrap global constructors for prevent change them in library
    : IS_WRAP && target[key] == out ? function (C) {
      var F = function (a, b, c) {
        if (this instanceof C) {
          switch (arguments.length) {
            case 0:
              return new C();

            case 1:
              return new C(a);

            case 2:
              return new C(a, b);
          }

          return new C(a, b, c);
        }

        return C.apply(this, arguments);
      };

      F[PROTOTYPE] = C[PROTOTYPE];
      return F; // make static versions for prototype methods
    }(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%

    if (IS_PROTO) {
      (exports.virtual || (exports.virtual = {}))[key] = out; // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%

      if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);
    }
  }
}; // type bitmap


$export.F = 1; // forced

$export.G = 2; // global

$export.S = 4; // static

$export.P = 8; // proto

$export.B = 16; // bind

$export.W = 32; // wrap

$export.U = 64; // safe

$export.R = 128; // real proto method for `library`

module.exports = $export;

/***/ }),

/***/ "YABZ":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

const _excluded = ["styles"];

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }

function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

var _default = _ref => {
  let {
    styles = {}
  } = _ref,
      props = _objectWithoutProperties(_ref, _excluded);

  return /*#__PURE__*/_react.default.createElement("svg", _extends({
    xmlns: "http://www.w3.org/2000/svg",
    width: "96",
    height: "96",
    viewBox: "0 0 96 96"
  }, props), /*#__PURE__*/_react.default.createElement("defs", null), /*#__PURE__*/_react.default.createElement("g", {
    id: "ICONS_96",
    "data-name": "ICONS 96"
  }, /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M78 67H19a3 3 0 0 1-3-3V33a3 3 0 0 1 3-3h59a3 3 0 0 1 3 3v31a3 3 0 0 1-3 3zM19 32a1 1 0 0 0-1 1v31a1 1 0 0 0 1 1h59a1 1 0 0 0 1-1V33a1 1 0 0 0-1-1z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M77 39.283H20a.75.75 0 0 1 0-1.5h57a.75.75 0 0 1 0 1.5z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M24.57 36.01h-2a.75.75 0 0 1 0-1.5h2a.75.75 0 0 1 0 1.5z"
  })));
};

exports.default = _default;

/***/ }),

/***/ "YBdB":
/***/ (function(module, exports, __webpack_require__) {

/* WEBPACK VAR INJECTION */(function(global, process) {(function (global, undefined) {
  "use strict";

  if (global.setImmediate) {
    return;
  }

  var nextHandle = 1; // Spec says greater than zero

  var tasksByHandle = {};
  var currentlyRunningATask = false;
  var doc = global.document;
  var registerImmediate;

  function setImmediate(callback) {
    // Callback can either be a function or a string
    if (typeof callback !== "function") {
      callback = new Function("" + callback);
    } // Copy function arguments


    var args = new Array(arguments.length - 1);

    for (var i = 0; i < args.length; i++) {
      args[i] = arguments[i + 1];
    } // Store and register the task


    var task = {
      callback: callback,
      args: args
    };
    tasksByHandle[nextHandle] = task;
    registerImmediate(nextHandle);
    return nextHandle++;
  }

  function clearImmediate(handle) {
    delete tasksByHandle[handle];
  }

  function run(task) {
    var callback = task.callback;
    var args = task.args;

    switch (args.length) {
      case 0:
        callback();
        break;

      case 1:
        callback(args[0]);
        break;

      case 2:
        callback(args[0], args[1]);
        break;

      case 3:
        callback(args[0], args[1], args[2]);
        break;

      default:
        callback.apply(undefined, args);
        break;
    }
  }

  function runIfPresent(handle) {
    // From the spec: "Wait until any invocations of this algorithm started before this one have completed."
    // So if we're currently running a task, we'll need to delay this invocation.
    if (currentlyRunningATask) {
      // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a
      // "too much recursion" error.
      setTimeout(runIfPresent, 0, handle);
    } else {
      var task = tasksByHandle[handle];

      if (task) {
        currentlyRunningATask = true;

        try {
          run(task);
        } finally {
          clearImmediate(handle);
          currentlyRunningATask = false;
        }
      }
    }
  }

  function installNextTickImplementation() {
    registerImmediate = function (handle) {
      process.nextTick(function () {
        runIfPresent(handle);
      });
    };
  }

  function canUsePostMessage() {
    // The test against `importScripts` prevents this implementation from being installed inside a web worker,
    // where `global.postMessage` means something completely different and can't be used for this purpose.
    if (global.postMessage && !global.importScripts) {
      var postMessageIsAsynchronous = true;
      var oldOnMessage = global.onmessage;

      global.onmessage = function () {
        postMessageIsAsynchronous = false;
      };

      global.postMessage("", "*");
      global.onmessage = oldOnMessage;
      return postMessageIsAsynchronous;
    }
  }

  function installPostMessageImplementation() {
    // Installs an event handler on `global` for the `message` event: see
    // * https://developer.mozilla.org/en/DOM/window.postMessage
    // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages
    var messagePrefix = "setImmediate$" + Math.random() + "$";

    var onGlobalMessage = function (event) {
      if (event.source === global && typeof event.data === "string" && event.data.indexOf(messagePrefix) === 0) {
        runIfPresent(+event.data.slice(messagePrefix.length));
      }
    };

    if (global.addEventListener) {
      global.addEventListener("message", onGlobalMessage, false);
    } else {
      global.attachEvent("onmessage", onGlobalMessage);
    }

    registerImmediate = function (handle) {
      global.postMessage(messagePrefix + handle, "*");
    };
  }

  function installMessageChannelImplementation() {
    var channel = new MessageChannel();

    channel.port1.onmessage = function (event) {
      var handle = event.data;
      runIfPresent(handle);
    };

    registerImmediate = function (handle) {
      channel.port2.postMessage(handle);
    };
  }

  function installReadyStateChangeImplementation() {
    var html = doc.documentElement;

    registerImmediate = function (handle) {
      // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted
      // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.
      var script = doc.createElement("script");

      script.onreadystatechange = function () {
        runIfPresent(handle);
        script.onreadystatechange = null;
        html.removeChild(script);
        script = null;
      };

      html.appendChild(script);
    };
  }

  function installSetTimeoutImplementation() {
    registerImmediate = function (handle) {
      setTimeout(runIfPresent, 0, handle);
    };
  } // If supported, we should attach to the prototype of global, since that is where setTimeout et al. live.


  var attachTo = Object.getPrototypeOf && Object.getPrototypeOf(global);
  attachTo = attachTo && attachTo.setTimeout ? attachTo : global; // Don't get fooled by e.g. browserify environments.

  if ({}.toString.call(global.process) === "[object process]") {
    // For Node.js before 0.9
    installNextTickImplementation();
  } else if (canUsePostMessage()) {
    // For non-IE10 modern browsers
    installPostMessageImplementation();
  } else if (global.MessageChannel) {
    // For web workers, where supported
    installMessageChannelImplementation();
  } else if (doc && "onreadystatechange" in doc.createElement("script")) {
    // For IE 6–8
    installReadyStateChangeImplementation();
  } else {
    // For older browsers
    installSetTimeoutImplementation();
  }

  attachTo.setImmediate = setImmediate;
  attachTo.clearImmediate = clearImmediate;
})(typeof self === "undefined" ? typeof global === "undefined" ? this : global : self);
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("yLpj"), __webpack_require__("8oxB")))

/***/ }),

/***/ "YEIV":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


exports.__esModule = true;

var _defineProperty = __webpack_require__("SEkw");

var _defineProperty2 = _interopRequireDefault(_defineProperty);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

exports.default = function (obj, key, value) {
  if (key in obj) {
    (0, _defineProperty2.default)(obj, key, {
      value: value,
      enumerable: true,
      configurable: true,
      writable: true
    });
  } else {
    obj[key] = value;
  }

  return obj;
};

/***/ }),

/***/ "YESw":
/***/ (function(module, exports, __webpack_require__) {

var getNative = __webpack_require__("Cwc5");
/* Built-in method references that are verified to be native. */


var nativeCreate = getNative(Object, 'create');
module.exports = nativeCreate;

/***/ }),

/***/ "YHHX":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("path", {
  d: "M23 18.1a8.9 8.9 0 1 0 8.9 8.9 8.9 8.9 0 0 0-8.9-8.9zM16 27a6.935 6.935 0 0 1 1.475-4.252l9.777 9.777A6.966 6.966 0 0 1 16 27zm12.525 4.252l-9.777-9.777a6.966 6.966 0 0 1 9.777 9.777zM10.7 27.1A12.28 12.28 0 0 1 16 16.993V5a.726.726 0 0 0-1.194-.571l-7.127 7.3a1.436 1.436 0 0 1-.934.345h-5.29A1.473 1.473 0 0 0 0 13.563v8.942A1.473 1.473 0 0 0 1.455 24h5.29a1.429 1.429 0 0 1 .931.345l3.041 3.1c-.003-.121-.017-.231-.017-.345z"
}));

/***/ }),

/***/ "YO3V":
/***/ (function(module, exports, __webpack_require__) {

var baseGetTag = __webpack_require__("NykK"),
    getPrototype = __webpack_require__("LcsW"),
    isObjectLike = __webpack_require__("ExA7");
/** `Object#toString` result references. */


var objectTag = '[object Object]';
/** Used for built-in method references. */

var funcProto = Function.prototype,
    objectProto = Object.prototype;
/** Used to resolve the decompiled source of functions. */

var funcToString = funcProto.toString;
/** Used to check objects for own properties. */

var hasOwnProperty = objectProto.hasOwnProperty;
/** Used to infer the `Object` constructor. */

var objectCtorString = funcToString.call(Object);
/**
 * Checks if `value` is a plain object, that is, an object created by the
 * `Object` constructor or one with a `[[Prototype]]` of `null`.
 *
 * @static
 * @memberOf _
 * @since 0.8.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.
 * @example
 *
 * function Foo() {
 *   this.a = 1;
 * }
 *
 * _.isPlainObject(new Foo);
 * // => false
 *
 * _.isPlainObject([1, 2, 3]);
 * // => false
 *
 * _.isPlainObject({ 'x': 0, 'y': 0 });
 * // => true
 *
 * _.isPlainObject(Object.create(null));
 * // => true
 */

function isPlainObject(value) {
  if (!isObjectLike(value) || baseGetTag(value) != objectTag) {
    return false;
  }

  var proto = getPrototype(value);

  if (proto === null) {
    return true;
  }

  var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;
  return typeof Ctor == 'function' && Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString;
}

module.exports = isPlainObject;

/***/ }),

/***/ "YSDX":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var mobx_react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("okNM");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("VIzJ");
/* harmony import */ var _styles_ContributorTooltipList_css__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("g5NR");
/* harmony import */ var _styles_ContributorTooltipList_css__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_styles_ContributorTooltipList_css__WEBPACK_IMPORTED_MODULE_3__);
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;
};




// Show up to this many names, then "+[n] more".
const MAX_NAMES = 14;
/**
 * Renders the list of collaborators shown in the tooltips (for facepile and grid view).
 */
let ContributorTooltipList = class ContributorTooltipList extends react__WEBPACK_IMPORTED_MODULE_1__["Component"] {
    constructor() {
        super(...arguments);
        this.formatCollaboratorItem = (item) => {
            const { name, email, orgName } = item;
            const label = name || email;
            if (orgName) {
                return `${label} - ${orgName}`;
            }
            return label;
        };
    }
    render() {
        const { contributors = [], intl } = this.props;
        // TODO: The collaborators are returned in a random order.
        // To prevent UI churn, we must implement https://jira.corp.adobe.com/browse/CCPROJ-2258.
        const visibleItems = contributors.slice(0, MAX_NAMES);
        const overflowCount = Math.max(contributors.length - MAX_NAMES, 0);
        const lines = visibleItems.map(this.formatCollaboratorItem);
        if (overflowCount > 0) {
            lines.push(intl.formatMessage({ id: 'tooltip.moreFaces' }, { number: overflowCount }));
        }
        return (react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("ul", { "data-test-id": "ContributorTooltipList", className: _styles_ContributorTooltipList_css__WEBPACK_IMPORTED_MODULE_3___default.a.tooltipList }, lines.map((line, index) => (react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("li", { key: index, className: _styles_ContributorTooltipList_css__WEBPACK_IMPORTED_MODULE_3___default.a.tooltipListItem }, line)))));
    }
};
ContributorTooltipList = __decorate([
    mobx_react__WEBPACK_IMPORTED_MODULE_0__[/* observer */ "e"]
], ContributorTooltipList);
/* harmony default export */ __webpack_exports__["a"] = (Object(react_intl__WEBPACK_IMPORTED_MODULE_2__[/* injectIntl */ "g"])(ContributorTooltipList));


/***/ }),

/***/ "YVIP":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("D5xS"),
      24: __webpack_require__("BGCk")
    }
  }));
};

WrappedIcon.displayName = 'LinkOutLight';
exports.default = WrappedIcon;

/***/ }),

/***/ "YVc3":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "K", function() { return VALID_REQUEST_METHODS; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "L", function() { return ViewMode; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "w", function() { return PickerMode; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "q", function() { return OneUpTabs; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "I", function() { return TeamsOneUpTabs; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "l", function() { return INGEST_PROJECT_KEY; });
/* unused harmony export StorageServiceLink */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Q", function() { return maxNameLength; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "O", function() { return maxFolderNameLength; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "S", function() { return maxSpaceTeamNameLength; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "P", function() { return maxLibraryReferences; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "R", function() { return maxProjectDescriptionLength; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "T", function() { return maxTeamDescriptionLength; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "F", function() { return SupportedProjectVersions; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "U", function() { return projectColors; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "N", function() { return defaultProjectColor; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return ENTER_KEY; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "C", function() { return SPACE_KEY; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "M", function() { return YEAR_IN_MS; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "x", function() { return ProductLocation; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return CDO_FEATURE_FLAGS; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "u", function() { return PROJECTS_PAGE_SIZE; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "t", function() { return PROJECTS_MAX_PAGE_SIZE; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "J", function() { return UiConfigNamespaces; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "D", function() { return SUPPORTED_PUBLISHED_LINKS; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "o", function() { return MAX_DISPLAYED_TEAM_CONTRIBUTOR_FACES; });
/* unused harmony export WEBLINKS_FETCH_TIMEOUT */
/* unused harmony export SPACE_REFRESH_DELAY */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "y", function() { return REPORT_ABUSE_DESCRIPTION_MAX_LENGTH; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "A", function() { return REPORT_ABUSE_REPORTER_NAME_MAX_LENGTH; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "z", function() { return REPORT_ABUSE_REPORTER_EMAIL_MAX_LENGTH; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "s", function() { return PRODUCT_NAMES; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return CCPROJECTS_PREFERENCES; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return CLOUD_DOCUMENT_EXTENSIONS; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "p", function() { return ONE_MINUTE; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "i", function() { return FIVE_MINUTES; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "G", function() { return TOAST_TIMEOUT; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "B", function() { return SAMErrorCode; });
/* unused harmony export DEFAULTS */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "k", function() { return FOLDER_MIMETYPES; });
/* unused harmony export ARTIFACT_MIMETYPES */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "r", function() { return PHOTOSHOP_CLOUD_DOCUMENT_MIMETYPES; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return CANVAS_MIMETYPE; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "v", function() { return PROJECT_MIMETYPE; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "n", function() { return LIBRARY_MIMETYPE; });
/* unused harmony export WEBLINK_MIMETYPE */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ADOBE_PILOT_REPOSITORY_ID; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return DEFAULT_TOOLTIP_DELAY; });
/* unused harmony export PROJECT_CARD_COLOR_BAND_HEIGHT */
/* unused harmony export INGEST_MAX_QUEUED_EVENTS */
/* unused harmony export INGEST_DEBOUNCE_VALUE */
/* unused harmony export INGEST_PROJECT_VALUE */
/* unused harmony export MAX_RECENTS */
/* unused harmony export MINIMUM_ACCEPTED_TIMEOUT */
/* unused harmony export RETRY_ATTEMPTS */
/* unused harmony export RETRY_INTERVAL */
/* unused harmony export REPO_MODIFIED_BUFFER_SECONDS */
/* unused harmony export ARCHIVE_BUFFER_SECONDS */
/* unused harmony export SINGLE_CLICK_THROTTLE */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "j", function() { return FOCUS_ITEM_CLASS; });
/* unused harmony export SELECTED_ITEM_CLASS */
/* unused harmony export ENTER_KEY_CODE */
/* unused harmony export SPACE_KEY_CODE */
/* unused harmony export ModeType */
/* unused harmony export Themes */
/* harmony import */ var _libraryUtils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("5L/2");
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2020 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/

const VALID_REQUEST_METHODS = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT', 'PATCH'];
var ViewMode;
(function (ViewMode) {
    ViewMode["List"] = "list";
    ViewMode["Grid"] = "grid";
})(ViewMode || (ViewMode = {}));
var PickerMode;
(function (PickerMode) {
    PickerMode["copy"] = "copy";
    PickerMode["copyToProject"] = "copyToProject";
    PickerMode["export"] = "export";
    PickerMode["import"] = "import";
    PickerMode["move"] = "move";
    PickerMode["moveToProject"] = "moveToProject";
    PickerMode["open"] = "open";
    PickerMode["place"] = "place";
    PickerMode["placeLinkOrEmbed"] = "placeLinkOrEmbed";
    PickerMode["reference"] = "reference";
    PickerMode["saveAs"] = "saveAs";
    PickerMode["saveAsCopy"] = "saveAsCopy";
    PickerMode["selectProject"] = "selectProject";
})(PickerMode || (PickerMode = {}));
var OneUpTabs;
(function (OneUpTabs) {
    OneUpTabs["Libraries"] = "libraries";
    OneUpTabs["Working"] = "working";
    OneUpTabs["Published"] = "published";
})(OneUpTabs || (OneUpTabs = {}));
var TeamsOneUpTabs;
(function (TeamsOneUpTabs) {
    TeamsOneUpTabs["Spaces"] = "teamSpaces";
    TeamsOneUpTabs["Libraries"] = "teamLibraries";
})(TeamsOneUpTabs || (TeamsOneUpTabs = {}));
const INGEST_PROJECT_KEY = 'cc-projects'; // this is a bug from original projects implementation - this has two issues (1) this is not a valid Dunamis Project key and (2) project key should be passed from the host
const StorageServiceLink = 'https://cc-api-storage-stage.adobe.io';
const maxNameLength = 200;
const maxFolderNameLength = 50;
const maxSpaceTeamNameLength = 50;
const maxLibraryReferences = 100;
const maxProjectDescriptionLength = 1000;
const maxTeamDescriptionLength = 1000; // per https://git.corp.adobe.com/pages/Stormcloud/apidocs/service/ccteams.html
// Future proofing project versioning. Allow for the setting of
// lower and upper bound of a project version. Design dictates that warnings should
// be displayed to the user suggesting upgrade of their client and limiting access
// to actions of those projects in case deprecation / future versions break functionality
// https://jira.corp.adobe.com/browse/CCPROJ-614
var SupportedProjectVersions;
(function (SupportedProjectVersions) {
    SupportedProjectVersions[SupportedProjectVersions["MAX"] = 5] = "MAX";
    SupportedProjectVersions[SupportedProjectVersions["DEPRECATED_CANVAS"] = 3] = "DEPRECATED_CANVAS";
})(SupportedProjectVersions || (SupportedProjectVersions = {}));
const projectColors = [
    {
        value: '#C038CC',
        id: 'fuchsia',
    },
    {
        value: '#6767EC',
        id: 'indigo',
    },
    {
        value: '#44B556',
        id: 'celery',
    },
    {
        value: '#D83790',
        id: 'magenta',
    },
    {
        value: '#DFBF00',
        id: 'yellow',
    },
    {
        value: '#1B959A',
        id: 'seafoam',
    },
    {
        value: '#85D044',
        id: 'chartreuse',
    },
    {
        value: '#9256D9',
        id: 'purple',
    },
    {
        value: '#1473E6',
        id: 'blue',
    },
    {
        value: '#D7373F',
        id: 'red',
    },
    {
        value: '#DA7B11',
        id: 'orange',
    },
    {
        value: '#268E6C',
        id: 'green',
    },
];
const defaultProjectColor = projectColors[0]; // Fuchsia
const ENTER_KEY = 'Enter';
const SPACE_KEY = ' ';
const YEAR_IN_MS = 1000 * 60 * 60 * 24 * 365;
var ProductLocation;
(function (ProductLocation) {
    ProductLocation["Projects"] = "com.adobe.ccx.projects";
    ProductLocation["CCD"] = "com.adobe.creativecloud.desktop";
    ProductLocation["CDP"] = "com.adobe.ccx.document-picker";
    ProductLocation["AssetsWeb"] = "com.adobe.assets";
    ProductLocation["HomeScreen"] = "com.adobe.ccx.start";
})(ProductLocation || (ProductLocation = {}));
const CDO_FEATURE_FLAGS = {
    themingSupport: true,
    enableCloudDocFolders: true,
    enableCloudDocMultiSelectOpen: true,
    focusManagementEnabled: true,
    useAdobeReactVirtualized: false,
    enableCloudDocRename: true,
    emptyViewLoggedOutMessage: false,
    enableOnboarding: false,
    enableProjects: true,
    hideSizeColumn: true,
};
// Page size for paginated fetching project list
const PROJECTS_PAGE_SIZE = 50;
const PROJECTS_MAX_PAGE_SIZE = 100;
var UiConfigNamespaces;
(function (UiConfigNamespaces) {
    UiConfigNamespaces["Project1Up"] = "Project1Up";
    UiConfigNamespaces["Project1UpViewAll"] = "Project1UpViewAll";
    UiConfigNamespaces["YourProjects"] = "YourProjects";
    UiConfigNamespaces["YourProjectsLibraries"] = "YourProjectsLibraries";
    UiConfigNamespaces["Libraries"] = "Libraries";
    UiConfigNamespaces["Empty"] = "Empty";
    UiConfigNamespaces["ConfirmationDialog"] = "ConfirmationDialog";
})(UiConfigNamespaces || (UiConfigNamespaces = {}));
const SUPPORTED_PUBLISHED_LINKS = [
    _libraryUtils__WEBPACK_IMPORTED_MODULE_0__[/* MIMETYPE */ "c"].XD_DESIGN_SPECS,
    _libraryUtils__WEBPACK_IMPORTED_MODULE_0__[/* MIMETYPE */ "c"].XD_PROTOTYPE,
    _libraryUtils__WEBPACK_IMPORTED_MODULE_0__[/* MIMETYPE */ "c"].XD_SHAREDARTIFACT,
];
const MAX_DISPLAYED_TEAM_CONTRIBUTOR_FACES = 3;
const WEBLINKS_FETCH_TIMEOUT = 5000;
const SPACE_REFRESH_DELAY = 2000;
const REPORT_ABUSE_DESCRIPTION_MAX_LENGTH = 1000;
const REPORT_ABUSE_REPORTER_NAME_MAX_LENGTH = 100;
const REPORT_ABUSE_REPORTER_EMAIL_MAX_LENGTH = 250;
const PRODUCT_NAMES = {
    ccd: 'Creative Cloud Desktop',
    sprk: 'XD',
    phxs: 'Photoshop',
    ilst: 'Illustrator',
    idsn: 'InDesign',
    web: 'Assets Web',
};
const CCPROJECTS_PREFERENCES = 'ccprojects_preferences';
const CLOUD_DOCUMENT_EXTENSIONS = ['xdc', 'aic', 'psdc', 'inddc'];
const ONE_MINUTE = 60 * 1000;
const FIVE_MINUTES = 5 * 60 * 1000;
// Default toast timeout limit
const TOAST_TIMEOUT = 5000;
// TODO (napham): To import from SAM.js
var SAMErrorCode;
(function (SAMErrorCode) {
    SAMErrorCode["ACCESS_DENIED"] = "ACCESS_DENIED";
    SAMErrorCode["ASSERTION_ERROR"] = "ASSERTION_ERROR";
    SAMErrorCode["CONFLICT"] = "CONFLICT";
    SAMErrorCode["INVALID_ASSET_TYPE"] = "INVALID_ASSET_TYPE";
    SAMErrorCode["INVALID_DATA"] = "INVALID_DATA";
    SAMErrorCode["INVALID_OPERATION"] = "INVALID_OPERATION";
    SAMErrorCode["INVALID_PARAMETER"] = "INVALID_PARAMETER";
    SAMErrorCode["NETWORK_ERROR"] = "NETWORK_ERROR";
    SAMErrorCode["NO_ACCESS_TOKEN"] = "NO_ACCESS_TOKEN";
    SAMErrorCode["NOT_FOUND"] = "NOT_FOUND";
    SAMErrorCode["NOT_IMPLEMENTED"] = "NOT_IMPLEMENTED";
    SAMErrorCode["NOT_MODIFIED"] = "NOT_MODIFIED";
    SAMErrorCode["UNEXPECTED_RESPONSE"] = "UNEXPECTED_RESPONSE";
})(SAMErrorCode || (SAMErrorCode = {}));
const DEFAULTS = {
    LOCALE: 'en',
    MESSAGES: {},
    SERVICE_ENVIRONMENT: 'stage',
};
const FOLDER_MIMETYPES = [
    'application/vnd.adobe.directory+json',
    'application/vnd.adobecloud.directory+json',
];
const ARTIFACT_MIMETYPES = [
    'application/vnd.adobe.xd.sharedartifact+dcx',
    'application/vnd.adobe.uxdesign.designspec+dcx',
    'application/vnd.adobe.uxdesign.prototype+dcx',
];
const PHOTOSHOP_CLOUD_DOCUMENT_MIMETYPES = [
    'document/vnd.adobe.psdc+dcx',
    'document/vnd.adobe.cpsd+dcx',
];
const CANVAS_MIMETYPE = 'application/vnd.adobe.hz.canvas+dcx';
const PROJECT_MIMETYPE = 'project';
// For our own use in the 1up only, not to be confused with the actual mimetype
// of libraries on the platform (much like PROJECT_MIMETYPE).
const LIBRARY_MIMETYPE = 'library';
const WEBLINK_MIMETYPE = 'application/vnd.adobe.weblink+dcx';
const ADOBE_PILOT_REPOSITORY_ID = '7F4976816092B9A60A495C71@AdobeOrg';
const DEFAULT_TOOLTIP_DELAY = 500;
// In Your Spaces grid view, the default color band's height is 6px
const PROJECT_CARD_COLOR_BAND_HEIGHT = 6;
const INGEST_MAX_QUEUED_EVENTS = 500;
const INGEST_DEBOUNCE_VALUE = 5000;
const INGEST_PROJECT_VALUE = 'cdo-service';
const MAX_RECENTS = 15;
/**
 * The setTimeout amount for this component.
 */
const MINIMUM_ACCEPTED_TIMEOUT = 100;
const RETRY_ATTEMPTS = 50;
const RETRY_INTERVAL = 500;
const REPO_MODIFIED_BUFFER_SECONDS = 5;
const ARCHIVE_BUFFER_SECONDS = 20;
const SINGLE_CLICK_THROTTLE = 500;
const FOCUS_ITEM_CLASS = 'CCProjectsFocusItem';
const SELECTED_ITEM_CLASS = 'selectedItem';
const ENTER_KEY_CODE = 13;
const SPACE_KEY_CODE = 32;
var ModeType;
(function (ModeType) {
    ModeType["organizer"] = "organizer";
    ModeType["open"] = "open";
    ModeType["relink"] = "relink";
    ModeType["saveAs"] = "saveAs";
    ModeType["saveToFolder"] = "saveToFolder";
})(ModeType || (ModeType = {}));
/* host app theme names */
var Themes;
(function (Themes) {
    Themes["light"] = "light";
    Themes["lightest"] = "lightest";
    Themes["dark"] = "dark";
    Themes["darkest"] = "darkest";
})(Themes || (Themes = {}));


/***/ }),

/***/ "YXqA":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _Breadcrumbs = _interopRequireDefault(__webpack_require__("t0SB"));

var _ChevronRightSmall = _interopRequireDefault(__webpack_require__("7Tov"));

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _icon = __webpack_require__("vo16");

var _intl = __webpack_require__("Lpon");

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

__webpack_require__("BtiA");

const _excluded = ["items", "icon", "className", "variant", "ariaLevel", "id"];

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

function ownKeys(object, enumerableOnly) {
  var keys = Object.keys(object);

  if (Object.getOwnPropertySymbols) {
    var symbols = Object.getOwnPropertySymbols(object);

    if (enumerableOnly) {
      symbols = symbols.filter(function (sym) {
        return Object.getOwnPropertyDescriptor(object, sym).enumerable;
      });
    }

    keys.push.apply(keys, symbols);
  }

  return keys;
}

function _objectSpread(target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i] != null ? arguments[i] : {};

    if (i % 2) {
      ownKeys(Object(source), true).forEach(function (key) {
        _defineProperty(target, key, source[key]);
      });
    } else if (Object.getOwnPropertyDescriptors) {
      Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
    } else {
      ownKeys(Object(source)).forEach(function (key) {
        Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
      });
    }
  }

  return target;
}

function _defineProperty(obj, key, value) {
  if (key in obj) {
    Object.defineProperty(obj, key, {
      value: value,
      enumerable: true,
      configurable: true,
      writable: true
    });
  } else {
    obj[key] = value;
  }

  return obj;
}

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

const intlMessages = {
  "cs-CZ": _interopRequireDefault(__webpack_require__("LslX")).default,
  "da-DK": _interopRequireDefault(__webpack_require__("W087")).default,
  "de-DE": _interopRequireDefault(__webpack_require__("v/9w")).default,
  "en-US": _interopRequireDefault(__webpack_require__("Jh3V")).default,
  "es-ES": _interopRequireDefault(__webpack_require__("9dg4")).default,
  "fi-FI": _interopRequireDefault(__webpack_require__("7GSu")).default,
  "fr-FR": _interopRequireDefault(__webpack_require__("pngP")).default,
  "hu-HU": _interopRequireDefault(__webpack_require__("Qiau")).default,
  "it-IT": _interopRequireDefault(__webpack_require__("BOzh")).default,
  "ja-JP": _interopRequireDefault(__webpack_require__("fLe2")).default,
  "ko-KR": _interopRequireDefault(__webpack_require__("0l7b")).default,
  "nb-NO": _interopRequireDefault(__webpack_require__("UryZ")).default,
  "nl-NL": _interopRequireDefault(__webpack_require__("rLYe")).default,
  "pl-PL": _interopRequireDefault(__webpack_require__("3y+x")).default,
  "pt-BR": _interopRequireDefault(__webpack_require__("6X9h")).default,
  "ru-RU": _interopRequireDefault(__webpack_require__("0sQS")).default,
  "sv-SE": _interopRequireDefault(__webpack_require__("XxdM")).default,
  "tr-TR": _interopRequireDefault(__webpack_require__("53oI")).default,
  "uk-UA": _interopRequireDefault(__webpack_require__("z7QN")).default,
  "zh-CN": _interopRequireDefault(__webpack_require__("nNaB")).default,
  "zh-TW": _interopRequireDefault(__webpack_require__("IftT")).default
};
const formatMessage = (0, _intl.messageFormatter)(intlMessages);

class UxpBreadcrumbs extends _Breadcrumbs.default {
  handleBreadcrumbClick(item, itemIndexFromEnd, e) {
    if (this.props.onBreadcrumbClick) {
      this.props.onBreadcrumbClick(item, itemIndexFromEnd);
    }

    if (e && item.href) {
      //  removing href and navigating here fixes PS+CDO breadcrumbs warning bug.
      //  https://jira.corp.adobe.com/browse/UXP-8395
      document.location = item.href;
    }

    if (this.focussedItem && this.focussedItem !== e.target) {
      this.focussedItem.classList.remove('focus-ring');
    }

    if (e.target && (!this.focussedItem || this.focussedItem !== e.target)) {
      e.target.classList.add('focus-ring');
      this.focussedItem = e.target;
    }
  }

  onKeyDown(item, itemIndexFromEnd, e) {
    switch (e.key) {
      case 'Enter':
        this.handleBreadcrumbClick(item, itemIndexFromEnd, e);
        break;
    }
  }

  renderLink(item, i) {
    let {
      items,
      renderLink
    } = this.props;
    let isHref = !!item.href;
    let isCurrent = this.isCurrent(i);
    let hasItems = items.length > 1;
    let linkProps = {
      className: 'spectrum-Breadcrumbs-itemLink',
      role: !isHref ? 'link' : null,
      href: !isCurrent ? item.href : null,
      target: !isCurrent && isHref ? '_self' : null,
      onClick: hasItems && !isCurrent ? this.handleBreadcrumbClick.bind(this, item, items.length - i - 1) : undefined,
      onFocus: hasItems && !isCurrent ? this.handleFocus.bind(this) : null,
      onBlur: hasItems && !isCurrent ? this.handleBlur.bind(this) : null,
      'aria-current': isCurrent ? 'page' : null,

      /* eslint-disable */
      tabIndex: !isCurrent ? this.props.tabIndex ? this.props.tabIndex : 0 : -1,

      /* eslint-enable */
      onKeyDown: hasItems && !isCurrent ? this.onKeyDown.bind(this, item, items.length - i - 1) : undefined
    };

    if (renderLink) {
      return renderLink(_objectSpread(_objectSpread({}, linkProps), {}, {
        label: item.label
      }));
    }

    let Element = !isHref ? 'div' : 'a';
    return /*#__PURE__*/_react.default.createElement(Element, linkProps, item.label);
  }

  render() {
    const _this$props = this.props,
          {
      items,
      icon,
      className,
      variant,
      ariaLevel,
      id
    } = _this$props,
          otherProps = _objectWithoutProperties(_this$props, _excluded);

    this.focussedItem = null;
    const isTitleVariant = variant === _Breadcrumbs.default.variant.TITLE;

    if (!otherProps['aria-label']) {
      otherProps['aria-label'] = formatMessage('Breadcrumbs');
    }

    return /*#__PURE__*/_react.default.createElement("nav", {
      id: id,
      "aria-label": otherProps['aria-label'],
      "aria-labelledby": otherProps['aria-labelledby']
    }, (0, _icon.cloneIcon)(icon, {
      size: 'S',
      className: 'react-spectrum-Breadcrumbs-icon'
    }), /*#__PURE__*/_react.default.createElement("ul", {
      //  begin fix for UXP 3.0
      style: {
        display: 'flex',
        flexDirection: 'row',
        flexWrap: 'wrap'
      } //  end fix for UXP 3.0
      ,
      className: (0, _classnames.default)('spectrum-Breadcrumbs', {
        'spectrum-Breadcrumbs--title': isTitleVariant
      }, 'spectrum-Breadcrumbs-Override', className)
    }, items.map((item, i) => /*#__PURE__*/_react.default.createElement("li", {
      key: `spectrum-Breadcrumb-${i}`,
      className: "spectrum-Breadcrumbs-item"
    }, this.isCurrent(i) && isTitleVariant ? /*#__PURE__*/_react.default.createElement("h1", {
      className: "spectrum-Heading--pageTitle",
      "aria-level": ariaLevel
    }, this.renderLink(item, i)) : this.renderLink(item, i), !this.isCurrent(i) && /*#__PURE__*/_react.default.createElement(_ChevronRightSmall.default, {
      size: null,
      className: "spectrum-Breadcrumbs-itemSeparator"
    })))));
  }

}

exports.default = UxpBreadcrumbs;

/***/ }),

/***/ "Yb34":
/***/ (function(module) {

module.exports = JSON.parse("{\"steps\":\"{currentStep} de {totalSteps}\"}");

/***/ }),

/***/ "YkWA":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return FolderCollection; });
/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("2vnA");
/* harmony import */ var _utils_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("a375");
/* harmony import */ var _stores_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("C0qj");
/* harmony import */ var _AssetCollection__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("Q5CW");
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2020 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
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;
};
var __metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var _a;




class FolderCollection extends _AssetCollection__WEBPACK_IMPORTED_MODULE_3__[/* default */ "c"] {
    constructor() {
        super(...arguments);
        this.types = new Set();
    }
    get foldersSortedByName() {
        return this.elements
            .filter(element => element.isFolder)
            .sort(Object(_stores_constants__WEBPACK_IMPORTED_MODULE_2__[/* createComparator */ "y"])(_stores_constants__WEBPACK_IMPORTED_MODULE_2__[/* UXSortBy */ "t"].title, _stores_constants__WEBPACK_IMPORTED_MODULE_2__[/* UXSortDir */ "w"].asc, this.locale));
    }
    get filteredElements() {
        if (this.types.size === 0) {
            // no filtering needed
            return this.elements;
        }
        return this.elements.filter(element => this.types.has(element.type.toLowerCase()));
    }
    get assetModel() {
        this.error('assetModel not implemented');
        return undefined;
    }
    get canHaveMultipleMimetypes() {
        const nonFolderMimetypes = [...this.types].filter(type => !_utils_constants__WEBPACK_IMPORTED_MODULE_1__[/* FOLDER_MIMETYPES */ "j"].includes(type));
        // no mimetypes means all types
        return nonFolderMimetypes.length !== 1;
    }
    setTypes(types) {
        this.types = new Set(types.map(type => type.toLowerCase()));
        // If there are any filters, assume folders should also be included.
        // This matches typical use case. If there's a need to exclude folders,
        // add a new filesSortedByName getter.
        if (this.types.size) {
            _utils_constants__WEBPACK_IMPORTED_MODULE_1__[/* FOLDER_MIMETYPES */ "j"].forEach(type => this.types.add(type));
        }
    }
}
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", typeof (_a = typeof Set !== "undefined" && Set) === "function" ? _a : Object)
], FolderCollection.prototype, "types", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], FolderCollection.prototype, "foldersSortedByName", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], FolderCollection.prototype, "filteredElements", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [Array]),
    __metadata("design:returntype", void 0)
], FolderCollection.prototype, "setTypes", null);


/***/ }),

/***/ "YnKX":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
Object.defineProperty(exports, "Asset", {
  enumerable: true,
  get: function () {
    return _Asset.default;
  }
});
Object.defineProperty(exports, "AssetFile", {
  enumerable: true,
  get: function () {
    return _AssetFile.default;
  }
});
Object.defineProperty(exports, "AssetFolder", {
  enumerable: true,
  get: function () {
    return _AssetFolder.default;
  }
});
Object.defineProperty(exports, "AssetImage", {
  enumerable: true,
  get: function () {
    return _AssetImage.default;
  }
});

var _Asset = _interopRequireDefault(__webpack_require__("61LE"));

var _AssetFile = _interopRequireDefault(__webpack_require__("dcWq"));

var _AssetFolder = _interopRequireDefault(__webpack_require__("heC6"));

var _AssetImage = _interopRequireDefault(__webpack_require__("7SRV"));

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

/***/ }),

/***/ "Ynvm":
/***/ (function(module) {

module.exports = JSON.parse("{\"(optional)\":\"(facoltativo)\",\"(required)\":\"(obbligatorio)\"}");

/***/ }),

/***/ "Yo2G":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(setImmediate) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return CanvasHeaderCoachMark; });
/* unused harmony export CoachMarkContent */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return SpacesCoachMark; });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var mobx_react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("okNM");
/* harmony import */ var uuid__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("EcEN");
/* harmony import */ var uuid__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(uuid__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("VIzJ");
/* harmony import */ var _hooks_useIntl__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("BuN4");
/* harmony import */ var _react_react_spectrum_Link__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("v7z/");
/* harmony import */ var _react_react_spectrum_Link__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Link__WEBPACK_IMPORTED_MODULE_5__);
/* harmony import */ var _react_react_spectrum_Icon_InfoOutline__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("AiiT");
/* harmony import */ var _react_react_spectrum_Icon_InfoOutline__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Icon_InfoOutline__WEBPACK_IMPORTED_MODULE_6__);
/* harmony import */ var _react_react_spectrum_OverlayTrigger__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("uYrR");
/* harmony import */ var _react_react_spectrum_OverlayTrigger__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_OverlayTrigger__WEBPACK_IMPORTED_MODULE_7__);
/* harmony import */ var _react_react_spectrum_Button__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("Cn9g");
/* harmony import */ var _react_react_spectrum_Button__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Button__WEBPACK_IMPORTED_MODULE_8__);
/* harmony import */ var _styles_CoachMarks_css__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__("tYEo");
/* harmony import */ var _styles_CoachMarks_css__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_styles_CoachMarks_css__WEBPACK_IMPORTED_MODULE_9__);
/* harmony import */ var _utils_constants__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__("YVc3");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__("TSYQ");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_11__);
/* harmony import */ var _stores_SharedStore__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__("jmEq");
/* harmony import */ var _utils_UXPUtils__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__("LbGp");
/* harmony import */ var _utils_viewport__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__("I7EI");
/* harmony import */ var _react_react_spectrum_CoachMark__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__("7x5w");
/* harmony import */ var _react_react_spectrum_CoachMark__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_CoachMark__WEBPACK_IMPORTED_MODULE_15__);
/* harmony import */ var _utils_urls__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__("/YLX");
/* harmony import */ var _images_onboarding_Illu_CreativeCloud_Canvas_Card_svg__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__("i+eI");
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
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;
};


















const isUxp = _utils_UXPUtils__WEBPACK_IMPORTED_MODULE_13__[/* default */ "a"].usingUXP();
function CanvasHeaderCoachMark() {
    const ref = react__WEBPACK_IMPORTED_MODULE_0___default.a.createRef();
    const dismiss = () => {
        if (ref.current) {
            ref.current.hide();
        }
    };
    const [state, setState] = Object(react__WEBPACK_IMPORTED_MODULE_0__["useState"])();
    const intl = Object(_hooks_useIntl__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"])();
    const ariaLabel = intl.formatMessage({ id: 'coachmark.information' });
    return (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null,
        react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_react_react_spectrum_OverlayTrigger__WEBPACK_IMPORTED_MODULE_7___default.a, { ref: ref, placement: "right", trigger: ['hover'], delayShow: _utils_constants__WEBPACK_IMPORTED_MODULE_10__[/* DEFAULT_TOOLTIP_DELAY */ "f"], offset: _react_react_spectrum_CoachMark__WEBPACK_IMPORTED_MODULE_15___default.a.INDICATOR_OFFSET, onShow: () => setState({ showCoachMarks: _stores_SharedStore__WEBPACK_IMPORTED_MODULE_12__[/* sharedStore */ "d"].hideCoachMarks() }), onHide: () => { var _a; return (_a = state === null || state === void 0 ? void 0 : state.showCoachMarks) === null || _a === void 0 ? void 0 : _a.call(state); } },
            react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", { className: _styles_CoachMarks_css__WEBPACK_IMPORTED_MODULE_9___default.a.InfoIcon, tabIndex: 0, role: "button", "aria-label": ariaLabel },
                react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_react_react_spectrum_Icon_InfoOutline__WEBPACK_IMPORTED_MODULE_6___default.a, { size: "XS" })),
            react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", { className: classnames__WEBPACK_IMPORTED_MODULE_11___default()('spectrum-CoachMarkPopover', _styles_CoachMarks_css__WEBPACK_IMPORTED_MODULE_9___default.a.CoachMarkContainer) },
                react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_images_onboarding_Illu_CreativeCloud_Canvas_Card_svg__WEBPACK_IMPORTED_MODULE_17__[/* default */ "a"], { className: "spectrum-CoachMarkPopover-image" }),
                react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", { className: "spectrum-CoachMarkPopover-header" },
                    react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", { className: "spectrum-CoachMarkPopover-title" },
                        react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_3__[/* FormattedMessage */ "c"], { id: "space.empty.canvasPopoverTitle" }))),
                react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", { className: "spectrum-CoachMarkPopover-content" },
                    react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", null,
                        react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_3__[/* FormattedMessage */ "c"], { id: "space.empty.canvasPopoverContent" })),
                    react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", { className: _styles_CoachMarks_css__WEBPACK_IMPORTED_MODULE_9___default.a.LearnMore },
                        react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_react_react_spectrum_Link__WEBPACK_IMPORTED_MODULE_5___default.a, { href: Object(_utils_urls__WEBPACK_IMPORTED_MODULE_16__[/* localizedGoUrl */ "j"])(_utils_urls__WEBPACK_IMPORTED_MODULE_16__[/* LEARN_MORE_CANVAS */ "a"], _stores_SharedStore__WEBPACK_IMPORTED_MODULE_12__[/* sharedStore */ "d"].locale || 'en'), target: "_blank" },
                            react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_3__[/* FormattedMessage */ "c"], { id: "popover.linkout" })))),
                react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", { className: "spectrum-CoachMarkPopover-footer" },
                    react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_react_react_spectrum_Button__WEBPACK_IMPORTED_MODULE_8___default.a, { variant: "primary", onClick: dismiss },
                        react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_3__[/* FormattedMessage */ "c"], { id: "button.ok" })))))));
}
let CoachMarkContent = class CoachMarkContent extends react__WEBPACK_IMPORTED_MODULE_0___default.a.Component {
    render() {
        const { step } = this.props;
        return (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null,
            react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", null,
                react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_3__[/* FormattedMessage */ "c"], { id: step.contentId })),
            step.link && (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", { className: _styles_CoachMarks_css__WEBPACK_IMPORTED_MODULE_9___default.a.LearnMore },
                react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_react_react_spectrum_Link__WEBPACK_IMPORTED_MODULE_5___default.a, { href: Object(_utils_urls__WEBPACK_IMPORTED_MODULE_16__[/* localizedGoUrl */ "j"])(step.link, _stores_SharedStore__WEBPACK_IMPORTED_MODULE_12__[/* sharedStore */ "d"].locale || 'en'), target: "_blank" },
                    react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_3__[/* FormattedMessage */ "c"], { id: "popover.linkout" }))))));
    }
};
CoachMarkContent = __decorate([
    mobx_react__WEBPACK_IMPORTED_MODULE_1__[/* observer */ "e"]
], CoachMarkContent);

let SpacesCoachMark = class SpacesCoachMark extends react__WEBPACK_IMPORTED_MODULE_0___default.a.Component {
    constructor() {
        super(...arguments);
        this._instanceId = uuid__WEBPACK_IMPORTED_MODULE_2___default()();
        this.elementRef = react__WEBPACK_IMPORTED_MODULE_0___default.a.createRef();
        this.onConfirm = () => {
            // Do not change the step right away because the "click" event can hide the next coachmark in the tour
            // if it displays before the overlay manager handles the hide event.
            setImmediate(() => {
                var _a;
                (_a = this.tour) === null || _a === void 0 ? void 0 : _a.nextStep();
            });
        };
        this.onCancel = () => {
            var _a;
            (_a = this.tour) === null || _a === void 0 ? void 0 : _a.skipTour();
        };
    }
    get tour() {
        return this.props.browseSession.coachMarks.getTourById(this.props.tourId);
    }
    get step() {
        var _a, _b;
        return (_a = this.tour) === null || _a === void 0 ? void 0 : _a.stepAt((_b = this.props.step) !== null && _b !== void 0 ? _b : 0);
    }
    get isPendingScroll() {
        // UXP does not support scrolling into view.
        if (isUxp) {
            return false;
        }
        // Can't determine visibility yet.
        if (!this.elementRef.current) {
            return false;
        }
        // Should scroll to reveal the element if it's not visible.
        return !Object(_utils_viewport__WEBPACK_IMPORTED_MODULE_14__[/* isVisibleElement */ "d"])(this.elementRef.current);
    }
    render() {
        const { step, props } = this;
        return (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null,
            react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", { id: step === null || step === void 0 ? void 0 : step.selectorId, className: props.className, ref: this.elementRef }, props.children),
            step && this._renderCoachMark(step)));
    }
    _registerStep() {
        var _a, _b;
        const { step } = this;
        (_a = this._stepRegistration) === null || _a === void 0 ? void 0 : _a.call(this);
        this._stepRegistration = step ? (_b = this.tour) === null || _b === void 0 ? void 0 : _b.registerStep(step, this._instanceId) : undefined;
    }
    componentDidUpdate() {
        this._registerStep();
    }
    componentDidMount() {
        this._registerStep();
    }
    componentWillUnmount() {
        var _a;
        (_a = this._stepRegistration) === null || _a === void 0 ? void 0 : _a.call(this);
    }
    isVisible(rect) {
        return (rect.top >= 0 &&
            rect.left >= 0 &&
            rect.bottom <= document.documentElement.clientHeight &&
            rect.right <= document.documentElement.clientWidth);
    }
    _renderCoachMark(step) {
        var _a, _b;
        const { tour } = this;
        if (!tour || !tour.isAvailable || !tour.canDisplayCardForStep(step)) {
            return;
        }
        const { hasMoreStepsInActiveTour, isOneStepTour } = tour;
        if (this.isPendingScroll) {
            (_a = this.elementRef.current) === null || _a === void 0 ? void 0 : _a.scrollIntoView();
        }
        return (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_react_react_spectrum_CoachMark__WEBPACK_IMPORTED_MODULE_15___default.a, { scrollIntoView: true, flip: true, "data-spaces-coachmark": _utils_UXPUtils__WEBPACK_IMPORTED_MODULE_13__[/* default */ "a"].usingUXP() ? 'uxp' : 'web', selector: `#${step.selectorId}`, placement: step.placement, title: react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_3__[/* FormattedMessage */ "c"], { id: step.titleId }), cancelLabel: hasMoreStepsInActiveTour && react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_3__[/* FormattedMessage */ "c"], { id: "button.skipTour" }), image: (_b = step.image) === null || _b === void 0 ? void 0 : _b.source, confirmLabel: react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_3__[/* FormattedMessage */ "c"], { id: isOneStepTour
                    ? 'button.ok'
                    : hasMoreStepsInActiveTour
                        ? 'button.next'
                        : 'button.done' }), currentStep: isOneStepTour ? undefined : tour.currentStepNumber, totalSteps: isOneStepTour ? undefined : tour.activeStepCount, onCancel: this.onCancel, onConfirm: this.onConfirm, trapFocus: false },
            react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(CoachMarkContent, { step: step })));
    }
};
SpacesCoachMark = __decorate([
    mobx_react__WEBPACK_IMPORTED_MODULE_1__[/* observer */ "e"]
], SpacesCoachMark);


/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("URgk").setImmediate))

/***/ }),

/***/ "YoN+":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


const inherits = __webpack_require__("P7XM");

const Reporter = __webpack_require__("0cit").Reporter;

const Buffer = __webpack_require__("xZGU").Buffer;

function DecoderBuffer(base, options) {
  Reporter.call(this, options);

  if (!Buffer.isBuffer(base)) {
    this.error('Input not Buffer');
    return;
  }

  this.base = base;
  this.offset = 0;
  this.length = base.length;
}

inherits(DecoderBuffer, Reporter);
exports.DecoderBuffer = DecoderBuffer;

DecoderBuffer.isDecoderBuffer = function isDecoderBuffer(data) {
  if (data instanceof DecoderBuffer) {
    return true;
  } // Or accept compatible API


  const isCompatible = typeof data === 'object' && Buffer.isBuffer(data.base) && data.constructor.name === 'DecoderBuffer' && typeof data.offset === 'number' && typeof data.length === 'number' && typeof data.save === 'function' && typeof data.restore === 'function' && typeof data.isEmpty === 'function' && typeof data.readUInt8 === 'function' && typeof data.skip === 'function' && typeof data.raw === 'function';
  return isCompatible;
};

DecoderBuffer.prototype.save = function save() {
  return {
    offset: this.offset,
    reporter: Reporter.prototype.save.call(this)
  };
};

DecoderBuffer.prototype.restore = function restore(save) {
  // Return skipped data
  const res = new DecoderBuffer(this.base);
  res.offset = save.offset;
  res.length = this.offset;
  this.offset = save.offset;
  Reporter.prototype.restore.call(this, save.reporter);
  return res;
};

DecoderBuffer.prototype.isEmpty = function isEmpty() {
  return this.offset === this.length;
};

DecoderBuffer.prototype.readUInt8 = function readUInt8(fail) {
  if (this.offset + 1 <= this.length) return this.base.readUInt8(this.offset++, true);else return this.error(fail || 'DecoderBuffer overrun');
};

DecoderBuffer.prototype.skip = function skip(bytes, fail) {
  if (!(this.offset + bytes <= this.length)) return this.error(fail || 'DecoderBuffer overrun');
  const res = new DecoderBuffer(this.base); // Share reporter state

  res._reporterState = this._reporterState;
  res.offset = this.offset;
  res.length = this.offset + bytes;
  this.offset += bytes;
  return res;
};

DecoderBuffer.prototype.raw = function raw(save) {
  return this.base.slice(save ? save.offset : this.offset, this.length);
};

function EncoderBuffer(value, reporter) {
  if (Array.isArray(value)) {
    this.length = 0;
    this.value = value.map(function (item) {
      if (!EncoderBuffer.isEncoderBuffer(item)) item = new EncoderBuffer(item, reporter);
      this.length += item.length;
      return item;
    }, this);
  } else if (typeof value === 'number') {
    if (!(0 <= value && value <= 0xff)) return reporter.error('non-byte EncoderBuffer value');
    this.value = value;
    this.length = 1;
  } else if (typeof value === 'string') {
    this.value = value;
    this.length = Buffer.byteLength(value);
  } else if (Buffer.isBuffer(value)) {
    this.value = value;
    this.length = value.length;
  } else {
    return reporter.error('Unsupported type: ' + typeof value);
  }
}

exports.EncoderBuffer = EncoderBuffer;

EncoderBuffer.isEncoderBuffer = function isEncoderBuffer(data) {
  if (data instanceof EncoderBuffer) {
    return true;
  } // Or accept compatible API


  const isCompatible = typeof data === 'object' && data.constructor.name === 'EncoderBuffer' && typeof data.length === 'number' && typeof data.join === 'function';
  return isCompatible;
};

EncoderBuffer.prototype.join = function join(out, offset) {
  if (!out) out = Buffer.alloc(this.length);
  if (!offset) offset = 0;
  if (this.length === 0) return out;

  if (Array.isArray(this.value)) {
    this.value.forEach(function (item) {
      item.join(out, offset);
      offset += item.length;
    });
  } else {
    if (typeof this.value === 'number') out[offset] = this.value;else if (typeof this.value === 'string') out.write(this.value, offset);else if (Buffer.isBuffer(this.value)) this.value.copy(out, offset);
    offset += this.length;
  }

  return out;
};

/***/ }),

/***/ "Yol4":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("path", {
  d: "M41.321 43.926l-6.784-6.784a10.1 10.1 0 1 0-3.395 3.395l6.784 6.784c.469.469 2.5.89 3.395 0a2.445 2.445 0 0 0 0-3.395zM19.8 32a6.2 6.2 0 1 1 6.2 6.2 6.2 6.2 0 0 1-6.2-6.2zM44 28.008z"
}), React.createElement("path", {
  d: "M42 6H2a2 2 0 0 0-2 2v32a2 2 0 0 0 2 2h14.211a14.021 14.021 0 0 1-2.846-4H4V14h36v21.257l4 4V8a2 2 0 0 0-2-2z"
}));

/***/ }),

/***/ "YqAc":
/***/ (function(module, exports) {

var id = 0;
var px = Math.random();

module.exports = function (key) {
  return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
};

/***/ }),

/***/ "YsQy":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _autobindDecorator = _interopRequireDefault(__webpack_require__("gKdT"));

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _filterDOMProps = _interopRequireDefault(__webpack_require__("Cv/Q"));

var _propTypes = _interopRequireDefault(__webpack_require__("17x9"));

var _react = _interopRequireWildcard(__webpack_require__("q1tI"));

var _reactDom = _interopRequireDefault(__webpack_require__("i8i4"));

const _excluded = ["className", "quiet", "disabled", "required", "invalid", "readOnly", "multiLine", "validationState"];

var _class, _class2, _temp;

function _getRequireWildcardCache(nodeInterop) {
  if (typeof WeakMap !== "function") return null;
  var cacheBabelInterop = new WeakMap();
  var cacheNodeInterop = new WeakMap();
  return (_getRequireWildcardCache = function (nodeInterop) {
    return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
  })(nodeInterop);
}

function _interopRequireWildcard(obj, nodeInterop) {
  if (!nodeInterop && obj && obj.__esModule) {
    return obj;
  }

  if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
    return {
      default: obj
    };
  }

  var cache = _getRequireWildcardCache(nodeInterop);

  if (cache && cache.has(obj)) {
    return cache.get(obj);
  }

  var newObj = {};
  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;

  for (var key in obj) {
    if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
      var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;

      if (desc && (desc.get || desc.set)) {
        Object.defineProperty(newObj, key, desc);
      } else {
        newObj[key] = obj[key];
      }
    }
  }

  newObj.default = obj;

  if (cache) {
    cache.set(obj, newObj);
  }

  return newObj;
}

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

if (false) {} else if (false) {} else {
  __webpack_require__("1Nnd");
}

if (true) __webpack_require__("jaDn");
if (true) __webpack_require__("8zoJ");
if (true) __webpack_require__("EX2l");
if (true) __webpack_require__("jMQp");

let Textfield = (0, _autobindDecorator.default)(_class = (_temp = _class2 = class Textfield extends _react.Component {
  componentDidMount() {
    if (this.props.autoFocus) {
      // wait a frame to make sure the textfield in the DOM and focusable
      requestAnimationFrame(() => this.focus());
    }
  }

  focus() {
    if (!this.props.disabled) {
      _reactDom.default.findDOMNode(this).focus();
    }
  }

  onChange(e) {
    if (this.props.onChange) {
      this.props.onChange(e.target.value, e);
    }
  }

  render() {
    const _this$props = this.props,
          {
      className,
      quiet,
      disabled,
      required,
      invalid,
      readOnly,
      multiLine,
      validationState
    } = _this$props,
          otherProps = _objectWithoutProperties(_this$props, _excluded);

    var Tag = multiLine ? 'textarea' : 'input';
    const isInvalid = invalid || validationState === 'invalid';
    delete otherProps.autoFocus;
    delete otherProps.autocompleteInput;

    if (invalid) {
      console.warn('The "invalid" prop of Textfield is deprecated. Please use validationState="invalid" instead.');
    }

    return /*#__PURE__*/_react.default.createElement(Tag, _extends({
      type: "text",
      className: (0, _classnames.default)('spectrum-Textfield', {
        'spectrum-Textfield--multiline': multiLine,
        'is-invalid': isInvalid,
        'is-valid': validationState === 'valid',
        'spectrum-Textfield--quiet': quiet
      }, className),
      disabled: disabled,
      required: required,
      readOnly: readOnly,
      "aria-invalid": isInvalid || null,
      defaultValue: otherProps.defaultValue
    }, (0, _filterDOMProps.default)(otherProps), {
      onChange: this.onChange,
      rows: multiLine && !quiet ? otherProps.rows : 1
    }));
  }

}, _class2.propTypes = {
  /** Whether to automatically focus this text field */
  autoFocus: _propTypes.default.bool,

  /** Custom CSS class to add to the text field */
  className: _propTypes.default.string,

  /** Whether to disable the text field */
  disabled: _propTypes.default.bool,

  /** Whether to show the warning icon and red border. DEPRECATED: use validationState instead */
  invalid: _propTypes.default.bool,

  /** Whether to render a textfield that accepts multiple lines of text */
  multiLine: _propTypes.default.bool,

  /** Function called when focus is taken away from the text field */
  onBlur: _propTypes.default.func,

  /** Function called when the text field value is changed */
  onChange: _propTypes.default.func,

  /** Function called when focus is put on the text field */
  onFocus: _propTypes.default.func,

  /** String to show in the text field when nothing has been input */
  placeholder: _propTypes.default.string,

  /** Whether the text field should render using a quiet variant */
  quiet: _propTypes.default.bool,

  /** Whether the text field can only be read */
  readOnly: _propTypes.default.bool,

  /** Whether the text field requires user input (shows warning if empty) */
  required: _propTypes.default.bool,

  /** Show either checkmark or warning icons */
  validationState: _propTypes.default.oneOf(['valid', 'invalid'])
}, _class2.defaultProps = {
  autoFocus: false,
  disabled: false,
  quiet: false,
  required: false,
  invalid: false,
  readOnly: false
}, _temp)) || _class;

exports.default = Textfield;
Textfield.displayName = 'Textfield';

/***/ }),

/***/ "YsTz":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var _undefined = __webpack_require__("52x2")(); // Support ES3 engines


module.exports = function (val) {
  return val !== _undefined && val !== null;
};

/***/ }),

/***/ "YskG":
/***/ (function(module, exports, __webpack_require__) {

var Buffer = __webpack_require__("hwdV").Buffer;

function encryptByte(self, byteParam, decrypt) {
  var pad = self._cipher.encryptBlock(self._prev);

  var out = pad[0] ^ byteParam;
  self._prev = Buffer.concat([self._prev.slice(1), Buffer.from([decrypt ? byteParam : out])]);
  return out;
}

exports.encrypt = function (self, chunk, decrypt) {
  var len = chunk.length;
  var out = Buffer.allocUnsafe(len);
  var i = -1;

  while (++i < len) {
    out[i] = encryptByte(self, chunk[i], decrypt);
  }

  return out;
};

/***/ }),

/***/ "YuTi":
/***/ (function(module, exports) {

module.exports = function (module) {
  if (!module.webpackPolyfill) {
    module.deprecate = function () {};

    module.paths = []; // module.parent = undefined by default

    if (!module.children) module.children = [];
    Object.defineProperty(module, "loaded", {
      enumerable: true,
      get: function () {
        return module.l;
      }
    });
    Object.defineProperty(module, "id", {
      enumerable: true,
      get: function () {
        return module.i;
      }
    });
    module.webpackPolyfill = 1;
  }

  return module;
};

/***/ }),

/***/ "YyF0":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var isPrototype = __webpack_require__("kBPl");

module.exports = function (value) {
  if (typeof value !== "function") return false;
  if (!hasOwnProperty.call(value, "length")) return false;

  try {
    if (typeof value.length !== "number") return false;
    if (typeof value.call !== "function") return false;
    if (typeof value.apply !== "function") return false;
  } catch (error) {
    return false;
  }

  return !isPrototype(value);
};

/***/ }),

/***/ "Yyt1":
/***/ (function(module, exports, __webpack_require__) {

!function (e, t) {
   true ? module.exports = t() : undefined;
}(this, function () {
  "use strict";

  return [{
    locale: "uk",
    pluralRuleFunction: function (e, t) {
      var a = String(e).split("."),
          r = a[0],
          o = !a[1],
          n = Number(a[0]) == e,
          i = n && a[0].slice(-1),
          m = n && a[0].slice(-2),
          l = r.slice(-1),
          f = r.slice(-2);
      return t ? 3 == i && 13 != m ? "few" : "other" : o && 1 == l && 11 != f ? "one" : o && l >= 2 && l <= 4 && (f < 12 || f > 14) ? "few" : o && 0 == l || o && l >= 5 && l <= 9 || o && f >= 11 && f <= 14 ? "many" : "other";
    },
    fields: {
      year: {
        displayName: "рік",
        relative: {
          0: "цього року",
          1: "наступного року",
          "-1": "торік"
        },
        relativeTime: {
          future: {
            one: "через {0} рік",
            few: "через {0} роки",
            many: "через {0} років",
            other: "через {0} року"
          },
          past: {
            one: "{0} рік тому",
            few: "{0} роки тому",
            many: "{0} років тому",
            other: "{0} року тому"
          }
        }
      },
      "year-short": {
        displayName: "р.",
        relative: {
          0: "цього року",
          1: "наступного року",
          "-1": "торік"
        },
        relativeTime: {
          future: {
            one: "через {0} р.",
            few: "через {0} р.",
            many: "через {0} р.",
            other: "через {0} р."
          },
          past: {
            one: "{0} р. тому",
            few: "{0} р. тому",
            many: "{0} р. тому",
            other: "{0} р. тому"
          }
        }
      },
      month: {
        displayName: "місяць",
        relative: {
          0: "цього місяця",
          1: "наступного місяця",
          "-1": "минулого місяця"
        },
        relativeTime: {
          future: {
            one: "через {0} місяць",
            few: "через {0} місяці",
            many: "через {0} місяців",
            other: "через {0} місяця"
          },
          past: {
            one: "{0} місяць тому",
            few: "{0} місяці тому",
            many: "{0} місяців тому",
            other: "{0} місяця тому"
          }
        }
      },
      "month-short": {
        displayName: "міс.",
        relative: {
          0: "цього місяця",
          1: "наступного місяця",
          "-1": "минулого місяця"
        },
        relativeTime: {
          future: {
            one: "через {0} міс.",
            few: "через {0} міс.",
            many: "через {0} міс.",
            other: "через {0} міс."
          },
          past: {
            one: "{0} міс. тому",
            few: "{0} міс. тому",
            many: "{0} міс. тому",
            other: "{0} міс. тому"
          }
        }
      },
      day: {
        displayName: "день",
        relative: {
          0: "сьогодні",
          1: "завтра",
          2: "післязавтра",
          "-2": "позавчора",
          "-1": "учора"
        },
        relativeTime: {
          future: {
            one: "через {0} день",
            few: "через {0} дні",
            many: "через {0} днів",
            other: "через {0} дня"
          },
          past: {
            one: "{0} день тому",
            few: "{0} дні тому",
            many: "{0} днів тому",
            other: "{0} дня тому"
          }
        }
      },
      "day-short": {
        displayName: "д.",
        relative: {
          0: "сьогодні",
          1: "завтра",
          2: "післязавтра",
          "-2": "позавчора",
          "-1": "учора"
        },
        relativeTime: {
          future: {
            one: "через {0} дн.",
            few: "через {0} дн.",
            many: "через {0} дн.",
            other: "через {0} дн."
          },
          past: {
            one: "{0} дн. тому",
            few: "{0} дн. тому",
            many: "{0} дн. тому",
            other: "{0} дн. тому"
          }
        }
      },
      hour: {
        displayName: "година",
        relative: {
          0: "цієї години"
        },
        relativeTime: {
          future: {
            one: "через {0} годину",
            few: "через {0} години",
            many: "через {0} годин",
            other: "через {0} години"
          },
          past: {
            one: "{0} годину тому",
            few: "{0} години тому",
            many: "{0} годин тому",
            other: "{0} години тому"
          }
        }
      },
      "hour-short": {
        displayName: "год.",
        relative: {
          0: "цієї години"
        },
        relativeTime: {
          future: {
            one: "через {0} год",
            few: "через {0} год",
            many: "через {0} год",
            other: "через {0} год"
          },
          past: {
            one: "{0} год тому",
            few: "{0} год тому",
            many: "{0} год тому",
            other: "{0} год тому"
          }
        }
      },
      minute: {
        displayName: "хвилина",
        relative: {
          0: "цієї хвилини"
        },
        relativeTime: {
          future: {
            one: "через {0} хвилину",
            few: "через {0} хвилини",
            many: "через {0} хвилин",
            other: "через {0} хвилини"
          },
          past: {
            one: "{0} хвилину тому",
            few: "{0} хвилини тому",
            many: "{0} хвилин тому",
            other: "{0} хвилини тому"
          }
        }
      },
      "minute-short": {
        displayName: "хв.",
        relative: {
          0: "цієї хвилини"
        },
        relativeTime: {
          future: {
            one: "через {0} хв",
            few: "через {0} хв",
            many: "через {0} хв",
            other: "через {0} хв"
          },
          past: {
            one: "{0} хв тому",
            few: "{0} хв тому",
            many: "{0} хв тому",
            other: "{0} хв тому"
          }
        }
      },
      second: {
        displayName: "секунда",
        relative: {
          0: "зараз"
        },
        relativeTime: {
          future: {
            one: "через {0} секунду",
            few: "через {0} секунди",
            many: "через {0} секунд",
            other: "через {0} секунди"
          },
          past: {
            one: "{0} секунду тому",
            few: "{0} секунди тому",
            many: "{0} секунд тому",
            other: "{0} секунди тому"
          }
        }
      },
      "second-short": {
        displayName: "с",
        relative: {
          0: "зараз"
        },
        relativeTime: {
          future: {
            one: "через {0} с",
            few: "через {0} с",
            many: "через {0} с",
            other: "через {0} с"
          },
          past: {
            one: "{0} с тому",
            few: "{0} с тому",
            many: "{0} с тому",
            other: "{0} с тому"
          }
        }
      }
    }
  }];
});

/***/ }),

/***/ "Yz+Y":
/***/ (function(module, exports, __webpack_require__) {

module.exports = {
  "default": __webpack_require__("+plK"),
  __esModule: true
};

/***/ }),

/***/ "Z0Ie":
/***/ (function(module, exports) {

/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2019 Adobe Inc.
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/


/***/ }),

/***/ "Z0QQ":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("circle", {
  cx: "18",
  cy: "18",
  r: "4.1"
}), React.createElement("circle", {
  cx: "30",
  cy: "18",
  r: "4.1"
}), React.createElement("circle", {
  cx: "6",
  cy: "18",
  r: "4.1"
}));

/***/ }),

/***/ "Z0ZO":
/***/ (function(module, exports) {



/***/ }),

/***/ "Z0cm":
/***/ (function(module, exports) {

/**
 * Checks if `value` is classified as an `Array` object.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is an array, else `false`.
 * @example
 *
 * _.isArray([1, 2, 3]);
 * // => true
 *
 * _.isArray(document.body.children);
 * // => false
 *
 * _.isArray('abc');
 * // => false
 *
 * _.isArray(_.noop);
 * // => false
 */
var isArray = Array.isArray;
module.exports = isArray;

/***/ }),

/***/ "Z2+3":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var BN = __webpack_require__("OZ/i");

var inherits = __webpack_require__("P7XM");

var Base = __webpack_require__("6lN/");

var utils = __webpack_require__("86MQ");

function MontCurve(conf) {
  Base.call(this, 'mont', conf);
  this.a = new BN(conf.a, 16).toRed(this.red);
  this.b = new BN(conf.b, 16).toRed(this.red);
  this.i4 = new BN(4).toRed(this.red).redInvm();
  this.two = new BN(2).toRed(this.red);
  this.a24 = this.i4.redMul(this.a.redAdd(this.two));
}

inherits(MontCurve, Base);
module.exports = MontCurve;

MontCurve.prototype.validate = function validate(point) {
  var x = point.normalize().x;
  var x2 = x.redSqr();
  var rhs = x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x);
  var y = rhs.redSqrt();
  return y.redSqr().cmp(rhs) === 0;
};

function Point(curve, x, z) {
  Base.BasePoint.call(this, curve, 'projective');

  if (x === null && z === null) {
    this.x = this.curve.one;
    this.z = this.curve.zero;
  } else {
    this.x = new BN(x, 16);
    this.z = new BN(z, 16);
    if (!this.x.red) this.x = this.x.toRed(this.curve.red);
    if (!this.z.red) this.z = this.z.toRed(this.curve.red);
  }
}

inherits(Point, Base.BasePoint);

MontCurve.prototype.decodePoint = function decodePoint(bytes, enc) {
  return this.point(utils.toArray(bytes, enc), 1);
};

MontCurve.prototype.point = function point(x, z) {
  return new Point(this, x, z);
};

MontCurve.prototype.pointFromJSON = function pointFromJSON(obj) {
  return Point.fromJSON(this, obj);
};

Point.prototype.precompute = function precompute() {// No-op
};

Point.prototype._encode = function _encode() {
  return this.getX().toArray('be', this.curve.p.byteLength());
};

Point.fromJSON = function fromJSON(curve, obj) {
  return new Point(curve, obj[0], obj[1] || curve.one);
};

Point.prototype.inspect = function inspect() {
  if (this.isInfinity()) return '<EC Point Infinity>';
  return '<EC Point x: ' + this.x.fromRed().toString(16, 2) + ' z: ' + this.z.fromRed().toString(16, 2) + '>';
};

Point.prototype.isInfinity = function isInfinity() {
  // XXX This code assumes that zero is always zero in red
  return this.z.cmpn(0) === 0;
};

Point.prototype.dbl = function dbl() {
  // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#doubling-dbl-1987-m-3
  // 2M + 2S + 4A
  // A = X1 + Z1
  var a = this.x.redAdd(this.z); // AA = A^2

  var aa = a.redSqr(); // B = X1 - Z1

  var b = this.x.redSub(this.z); // BB = B^2

  var bb = b.redSqr(); // C = AA - BB

  var c = aa.redSub(bb); // X3 = AA * BB

  var nx = aa.redMul(bb); // Z3 = C * (BB + A24 * C)

  var nz = c.redMul(bb.redAdd(this.curve.a24.redMul(c)));
  return this.curve.point(nx, nz);
};

Point.prototype.add = function add() {
  throw new Error('Not supported on Montgomery curve');
};

Point.prototype.diffAdd = function diffAdd(p, diff) {
  // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#diffadd-dadd-1987-m-3
  // 4M + 2S + 6A
  // A = X2 + Z2
  var a = this.x.redAdd(this.z); // B = X2 - Z2

  var b = this.x.redSub(this.z); // C = X3 + Z3

  var c = p.x.redAdd(p.z); // D = X3 - Z3

  var d = p.x.redSub(p.z); // DA = D * A

  var da = d.redMul(a); // CB = C * B

  var cb = c.redMul(b); // X5 = Z1 * (DA + CB)^2

  var nx = diff.z.redMul(da.redAdd(cb).redSqr()); // Z5 = X1 * (DA - CB)^2

  var nz = diff.x.redMul(da.redISub(cb).redSqr());
  return this.curve.point(nx, nz);
};

Point.prototype.mul = function mul(k) {
  var t = k.clone();
  var a = this; // (N / 2) * Q + Q

  var b = this.curve.point(null, null); // (N / 2) * Q

  var c = this; // Q

  for (var bits = []; t.cmpn(0) !== 0; t.iushrn(1)) bits.push(t.andln(1));

  for (var i = bits.length - 1; i >= 0; i--) {
    if (bits[i] === 0) {
      // N * Q + Q = ((N / 2) * Q + Q)) + (N / 2) * Q
      a = a.diffAdd(b, c); // N * Q = 2 * ((N / 2) * Q + Q))

      b = b.dbl();
    } else {
      // N * Q = ((N / 2) * Q + Q) + ((N / 2) * Q)
      b = a.diffAdd(b, c); // N * Q + Q = 2 * ((N / 2) * Q + Q)

      a = a.dbl();
    }
  }

  return b;
};

Point.prototype.mulAdd = function mulAdd() {
  throw new Error('Not supported on Montgomery curve');
};

Point.prototype.jumlAdd = function jumlAdd() {
  throw new Error('Not supported on Montgomery curve');
};

Point.prototype.eq = function eq(other) {
  return this.getX().cmp(other.getX()) === 0;
};

Point.prototype.normalize = function normalize() {
  this.x = this.x.redMul(this.z.redInvm());
  this.z = this.curve.one;
  return this;
};

Point.prototype.getX = function getX() {
  // Normalize coordinates
  this.normalize();
  return this.x.fromRed();
};

/***/ }),

/***/ "Z4Cq":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXPORTS
__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ getCDCGlobalStore; });
__webpack_require__.d(__webpack_exports__, "b", function() { return /* binding */ getExistingCDCGlobalStore; });

// UNUSED EXPORTS: $CDC_GLOBAL_STORE, deleteCDCGlobalStore, createCDCGlobalStore

// EXTERNAL MODULE: ./node_modules/mobx/lib/mobx.module.js
var mobx_module = __webpack_require__("2vnA");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/types/IHostProductData.ts
var IHostProductData = __webpack_require__("zOc0");
var IHostProductData_default = /*#__PURE__*/__webpack_require__.n(IHostProductData);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/types/IIMSData.ts
var IIMSData = __webpack_require__("9oP/");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/CDOMetrics.ts
var CDOMetrics = __webpack_require__("0zmA");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/stores/AssetSyncStateStore.ts
var AssetSyncStateStore = __webpack_require__("bFaP");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/stores/DocumentStore.ts
var DocumentStore = __webpack_require__("xjsA");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/stores/QuotaStore.ts
var QuotaStore = __webpack_require__("8A/5");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/init-cdo-stores.ts + 1 modules
var init_cdo_stores = __webpack_require__("eks+");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/constants.ts
var constants = __webpack_require__("a375");

// EXTERNAL MODULE: ./node_modules/@ccx/acp-fetch/dist/index.js
var dist = __webpack_require__("iMIL");

// EXTERNAL MODULE: ./node_modules/@ccx-public/acpl-model-mobx/src/ACPLTypes.ts
var ACPLTypes = __webpack_require__("x2z8");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/Tile.tsx + 1 modules
var Tile = __webpack_require__("SDFJ");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/sam-utils.ts
var sam_utils = __webpack_require__("O7FO");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/CloudSyncStatusPopdown.tsx
var CloudSyncStatusPopdown = __webpack_require__("5xHT");

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__("q1tI");
var react_default = /*#__PURE__*/__webpack_require__.n(react);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Wait/index.js
var Wait = __webpack_require__("czhh");
var Wait_default = /*#__PURE__*/__webpack_require__.n(Wait);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/types/CDOReactIntlTyped.ts
var CDOReactIntlTyped = __webpack_require__("dSAe");

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/ArrowUp/index.js
var ArrowUp = __webpack_require__("XhRW");
var ArrowUp_default = /*#__PURE__*/__webpack_require__.n(ArrowUp);

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/ArrowDown/index.js
var ArrowDown = __webpack_require__("8pff");
var ArrowDown_default = /*#__PURE__*/__webpack_require__.n(ArrowDown);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/utils.ts
var utils = __webpack_require__("+Ots");

// EXTERNAL MODULE: ./node_modules/classnames/index.js
var classnames = __webpack_require__("TSYQ");
var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/components/svgs/CheckmarkCircle.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
// tslint:disable:max-line-length


const DEFAULT_ICON_SIZE = 18;
const CheckmarkCircle = ({ height = DEFAULT_ICON_SIZE, width = DEFAULT_ICON_SIZE, className = '', primaryColor = '#fff', secondaryColor = '#2b9d7a', }) => (react_default.a.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", className: classnames_default()('CheckmarkCircle', className), width: width, height: height, viewBox: `0 0 ${width} ${height}` },
    react_default.a.createElement("circle", { fill: primaryColor, cx: "9", cy: "9", r: "8.95" }),
    react_default.a.createElement("path", { fill: secondaryColor, className: "a", d: "M9,1a8,8,0,1,0,8,8A8,8,0,0,0,9,1Zm5.333,4.54L8.009,13.6705a.603.603,0,0,1-.4375.2305H7.535a.6.6,0,0,1-.4245-.1755L3.218,9.829a.6.6,0,0,1-.00147-.84853L3.218,8.979l.663-.6625A.6.6,0,0,1,4.72953,8.315L4.731,8.3165,7.4,10.991l5.257-6.7545a.6.6,0,0,1,.8419-.10586L13.5,4.1315l.7275.5685A.6.6,0,0,1,14.333,5.54Z" })));
/* harmony default export */ var svgs_CheckmarkCircle = (CheckmarkCircle);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/styles/ItemSyncStatus.css
var styles_ItemSyncStatus = __webpack_require__("zbY7");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/components/ItemSyncStatus.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/









class ItemSyncStatus_ItemSyncStatus extends react_default.a.PureComponent {
    get statusIcon() {
        const { status } = this.props;
        switch (status) {
            case AssetSyncStateStore["b" /* SyncStatus */].syncing:
                return react_default.a.createElement(Wait_default.a, { size: "S", className: "syncingIndicator" });
            default:
                return react_default.a.createElement(svgs_CheckmarkCircle, { className: "syncingIndicator" });
        }
    }
    renderStatusMessage(status) {
        const { bytesTransferred, bytesTotal, transferDirection, intl } = this.props;
        const bytesTransferredString = utils["a" /* default */].formatFileSizeDisplay(bytesTransferred, intl);
        const bytesTotalString = utils["a" /* default */].formatFileSizeDisplay(bytesTotal, intl);
        const isSyncing = status === AssetSyncStateStore["b" /* SyncStatus */].syncing;
        // item complete status
        let syncMsg = react_default.a.createElement(CDOReactIntlTyped["a" /* FormattedMessage */], { id: "cloudsync.item.complete" });
        // item syncing status
        if (isSyncing) {
            const hasProgress = bytesTransferred !== undefined && bytesTotal !== undefined;
            syncMsg = hasProgress ? (react_default.a.createElement(CDOReactIntlTyped["a" /* FormattedMessage */], { id: "cloudsync.item.progress.determinate", values: { progress: bytesTransferredString, total: bytesTotalString } })) : (react_default.a.createElement(CDOReactIntlTyped["a" /* FormattedMessage */], { id: "cloudsync.item.progress.indeterminate" }));
        }
        let syncArrow;
        if (transferDirection === AssetSyncStateStore["a" /* SyncDirection */].UPLOAD) {
            syncArrow = react_default.a.createElement(ArrowUp_default.a, { size: "XS" });
        }
        else if (transferDirection === AssetSyncStateStore["a" /* SyncDirection */].DOWNLOAD) {
            syncArrow = react_default.a.createElement(ArrowDown_default.a, { size: "XS" });
        }
        return (react_default.a.createElement("div", { className: "ItemSyncStatus_syncStatus" },
            isSyncing && react_default.a.createElement("div", { className: "icon" }, syncArrow),
            react_default.a.createElement("div", { className: "message" }, syncMsg)));
    }
    render() {
        const { status, name } = this.props;
        return (react_default.a.createElement("div", { className: "ItemSyncStatus" },
            this.statusIcon,
            react_default.a.createElement("div", { className: "ItemSyncStatus_info" },
                react_default.a.createElement("div", { className: "ItemSyncStatus_name" }, name),
                this.renderStatusMessage(status))));
    }
}
/* harmony default export */ var components_ItemSyncStatus = (Object(CDOReactIntlTyped["e" /* injectIntl */])(ItemSyncStatus_ItemSyncStatus));


// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/components/svgs/CheckmarkCircleBorderless.tsx
/*************************************************************************
 *   ADOBE CONFIDENTIAL
 *
 *   Copyright 2022 Adobe
 *   All Rights Reserved.
 *
 *   NOTICE:  All information contained herein is, and remains
 *   the property of Adobe and its suppliers, if any. The intellectual
 *   and technical concepts contained herein are proprietary to Adobe
 *   and its suppliers and are protected by all applicable intellectual
 *   property laws, including trade secret and copyright laws.
 *   Dissemination of this information or reproduction of this material
 *   is strictly forbidden unless prior written permission is obtained
 *   from Adobe.
 **************************************************************************/
// tslint:disable:max-line-length


const CheckmarkCircleBorderless_DEFAULT_ICON_SIZE = 18;
const CheckmarkCircleBorderless = ({ height = CheckmarkCircleBorderless_DEFAULT_ICON_SIZE, width = CheckmarkCircleBorderless_DEFAULT_ICON_SIZE, className = '', primaryColor = '#fff', secondaryColor = '#2b9d7a', }) => (react_default.a.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", className: classnames_default()('CheckmarkCircle', className), width: width, height: height, viewBox: `0 0 ${width} ${height}` },
    react_default.a.createElement("path", { fill: secondaryColor, d: "M9,1a8,8,0,1,0,8,8A8.00007,8.00007,0,0,0,9,1Z" }),
    react_default.a.createElement("path", { fill: primaryColor, d: "M7.62024,13.18327,4.15377,9.7637a.5.5,0,0,1-.00485-.70706l.7021-.71186a.5.5,0,0,1,.70712-.00486l2.26754,2.23674,4.23091-5.42075a.5.5,0,0,1,.70183-.08648l.78793.61511a.5.5,0,0,1,.08648.70176L8.36553,13.135A.5.5,0,0,1,7.62024,13.18327Z" })));
/* harmony default export */ var svgs_CheckmarkCircleBorderless = (CheckmarkCircleBorderless);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/components/tiles/cloudDocsSyncingTile.tsx
/*************************************************************************
 *   ADOBE CONFIDENTIAL
 *
 *   Copyright 2022 Adobe
 *   All Rights Reserved.
 *
 *   NOTICE:  All information contained herein is, and remains
 *   the property of Adobe and its suppliers, if any. The intellectual
 *   and technical concepts contained herein are proprietary to Adobe
 *   and its suppliers and are protected by all applicable intellectual
 *   property laws, including trade secret and copyright laws.
 *   Dissemination of this information or reproduction of this material
 *   is strictly forbidden unless prior written permission is obtained
 *   from Adobe.
 **************************************************************************/







const statusMap = {
    [Tile["b" /* TileStatus */].Critical]: {
        suffix: 'disabled',
        showBody: true,
        icon: undefined,
    },
    [Tile["b" /* TileStatus */].Disabled]: {
        suffix: 'disabled',
        showBody: true,
        icon: undefined,
    },
    [Tile["b" /* TileStatus */].Error]: {
        suffix: 'disabled',
        showBody: true,
        icon: undefined,
    },
    [Tile["b" /* TileStatus */].Offline]: {
        suffix: 'offline',
        showBody: true,
        icon: undefined,
    },
    [Tile["b" /* TileStatus */].Progress]: {
        suffix: 'syncing',
        showBody: true,
        icon: react["createElement"](Wait_default.a, { size: "S" }),
    },
    [Tile["b" /* TileStatus */].Default]: {
        suffix: 'complete',
        showBody: false,
        icon: react["createElement"](svgs_CheckmarkCircleBorderless, null),
    },
};
function cloudDocsSyncingTileFactory({ onClickTile, getCurrentTile, assetSyncStateStore, cloudStore, }) {
    const getStatus = () => getTileStatus(cloudStore.intl, [
        cloudStore.getCloudStatus(),
        cloudStore.getCloudDocsSyncingStatus(),
    ]);
    const { allAssets, syncingAssets, finishedAssets } = assetSyncStateStore;
    const view = () => {
        const { suffix, showBody, icon } = statusMap[getStatus().status];
        const ROOT = 'cloudsync.status';
        const LOCALE_BASE = `${ROOT}.${suffix}`;
        const title = react["createElement"](CDOReactIntlTyped["a" /* FormattedMessage */], { id: `${LOCALE_BASE}.title` });
        const body = (react["createElement"](CDOReactIntlTyped["a" /* FormattedMessage */], { id: `${LOCALE_BASE}.descr`, values: { progress: finishedAssets.length, total: allAssets.length } }));
        return {
            title,
            icon,
            body: showBody && body,
        };
    };
    const clearCompletedItems = () => assetSyncStateStore.clearComplete();
    const TILE_ID = 'syncing-assets';
    return {
        id: TILE_ID,
        view,
        getStatus,
        subTiles: {
            disabled: () => !syncingAssets.length,
            header: cloudStore.intl.formatMessage({ id: 'cloudsync.items.header' }),
            tiles: () => allAssets.map(a => ({
                id: a.cloudAssetId,
                view: (react["createElement"](components_ItemSyncStatus, { status: a.syncStatus, name: a.assetRef.displayName, key: a.assetRef.displayName, bytesTransferred: a.bytesTransferred, bytesTotal: a.bytesTotal, transferDirection: a.transferDirection })),
            })),
        },
        onExit: clearCompletedItems,
        onShow: () => {
            assetSyncStateStore.subscribe('onAssetSyncTimeout', TILE_ID, () => {
                var _a;
                if (allAssets.length === 1 && ((_a = getCurrentTile()) === null || _a === void 0 ? void 0 : _a.id) === TILE_ID) {
                    // exit the subTiles view
                    onClickTile('');
                }
            });
            // clear any items that completed between now and the last time sync status closed
            // so we don't display a leftover item for every sync that's happened between then and now
            clearCompletedItems();
        },
        onHide: () => {
            assetSyncStateStore.unsubscribe('onAssetSyncTimeout', TILE_ID);
        },
    };
}

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/urls.ts
var urls = __webpack_require__("RIxR");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/CDOLink.tsx
var CDOLink = __webpack_require__("b3kR");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/components/svgs/AlertIconBorderless.tsx
/*************************************************************************
 *   ADOBE CONFIDENTIAL
 *
 *   Copyright 2022 Adobe
 *   All Rights Reserved.
 *
 *   NOTICE:  All information contained herein is, and remains
 *   the property of Adobe and its suppliers, if any. The intellectual
 *   and technical concepts contained herein are proprietary to Adobe
 *   and its suppliers and are protected by all applicable intellectual
 *   property laws, including trade secret and copyright laws.
 *   Dissemination of this information or reproduction of this material
 *   is strictly forbidden unless prior written permission is obtained
 *   from Adobe.
 **************************************************************************/


const AlertIconBorderless_DEFAULT_ICON_SIZE = 18;
const AlertIconBorderless = ({ height = AlertIconBorderless_DEFAULT_ICON_SIZE, width = AlertIconBorderless_DEFAULT_ICON_SIZE, className = '', primaryColor = '#e34850', secondaryColor = '#fff', }) => (react_default.a.createElement("svg", { className: classnames_default()('AlertIcon', className), xmlns: "http://www.w3.org/2000/svg", width: height, height: width, viewBox: `0 0 ${height} ${width}` },
    react_default.a.createElement("path", { fill: primaryColor, d: "M9,1.2A7.8,7.8,0,1,0,16.8,9,7.8,7.8,0,0,0,9,1.2Z" }),
    react_default.a.createElement("path", { fill: secondaryColor, d: "M7.851,3.646a.242.242,0,0,1,.114-.24,3.042,3.042,0,0,1,1.049-.212,3.311,3.311,0,0,1,1.061.16.272.272,0,0,1,.136.241v1.22c0,1.439-.287,5.413-.34,5.936,0,.1-.063.157-.18.157H8.336a.171.171,0,0,1-.178-.149c-.049-.663-.307-4.52-.307-5.893Z" }),
    react_default.a.createElement("path", { fill: secondaryColor, d: "M9.014,14.772a1.175,1.175,0,0,1-1.281-1.2,1.214,1.214,0,0,1,1.281-1.23,1.2,1.2,0,0,1,1.281,1.23A1.163,1.163,0,0,1,9.014,14.772Z" })));
/* harmony default export */ var svgs_AlertIconBorderless = (AlertIconBorderless);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/components/tiles/alertTile.tsx
/*************************************************************************
 *   ADOBE CONFIDENTIAL
 *
 *   Copyright 2022 Adobe
 *   All Rights Reserved.
 *
 *   NOTICE:  All information contained herein is, and remains
 *   the property of Adobe and its suppliers, if any. The intellectual
 *   and technical concepts contained herein are proprietary to Adobe
 *   and its suppliers and are protected by all applicable intellectual
 *   property laws, including trade secret and copyright laws.
 *   Dissemination of this information or reproduction of this material
 *   is strictly forbidden unless prior written permission is obtained
 *   from Adobe.
 **************************************************************************/






function alertTileFactory({ callbacks, cloudStore, }) {
    const learnMoreUrl = Object(urls["f" /* coreSyncTroubleshootUrl */])(cloudStore.intl.locale);
    return {
        id: 'alert',
        view: () => ({
            title: react["createElement"](CDOReactIntlTyped["a" /* FormattedMessage */], { id: 'cloudsync.alert.title.coresync.down' }),
            body: (react["createElement"](react["Fragment"], null,
                react["createElement"](CDOReactIntlTyped["a" /* FormattedMessage */], { id: 'cloudsync.alert.subtext.coresync.down' }),
                react["createElement"]("br", null),
                react["createElement"](CDOLink["a" /* default */], { callbacks: callbacks, href: learnMoreUrl },
                    react["createElement"](CDOReactIntlTyped["a" /* FormattedMessage */], { id: 'cloudsync.alert.subtext.coresync.down.learnmore' })))),
            icon: react["createElement"](svgs_AlertIconBorderless, null),
        }),
        getStatus: () => getTileStatus(cloudStore.intl, [cloudStore.getCloudNotificationErrorStatus()]),
    };
}

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Progress/index.js
var Progress = __webpack_require__("eXD0");
var Progress_default = /*#__PURE__*/__webpack_require__.n(Progress);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Button/index.js
var Button = __webpack_require__("Cn9g");
var Button_default = /*#__PURE__*/__webpack_require__.n(Button);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/stores/constants.ts
var stores_constants = __webpack_require__("C0qj");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/styles/CloudQuotaStatus.css
var styles_CloudQuotaStatus = __webpack_require__("7iXW");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/components/CloudQuotaStatus.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/











const CloudQuotaStatus_LOCALE_BASE = 'cloudsync.quota';
var ReactSpectrumProgressState;
(function (ReactSpectrumProgressState) {
    ReactSpectrumProgressState["positive"] = "positive";
    ReactSpectrumProgressState["warning"] = "warning";
    ReactSpectrumProgressState["critical"] = "critical";
})(ReactSpectrumProgressState || (ReactSpectrumProgressState = {}));
class CloudQuotaStatus_CloudQuotaStatus extends react_default.a.PureComponent {
    getPercentage() {
        const { usedCloudQuota, maxCloudQuota } = this.props;
        const base = 100;
        const percentage = (usedCloudQuota / maxCloudQuota) * base;
        return Math.round(percentage < base ? percentage : base);
    }
    get upgradeUrl() {
        const { intl } = this.props;
        return Object(urls["e" /* cloudQuotaUrl */])(intl.locale);
    }
    onUpgradeClicked(e) {
        const { callbacks } = this.props;
        if (callbacks.onOpenExternalLink) {
            callbacks.onOpenExternalLink(this.upgradeUrl);
            e.preventDefault();
        }
    }
    renderStorageInfo() {
        const { usedCloudQuota, maxCloudQuota, quotaState, fetchState, accountType, intl } = this.props;
        // quota data error, return correct message
        if (fetchState === stores_constants["n" /* ProcessingState */].Error) {
            return react_default.a.createElement(CDOReactIntlTyped["a" /* FormattedMessage */], { id: `${CloudQuotaStatus_LOCALE_BASE}.error` });
        }
        const usedCloudQuotaString = utils["a" /* default */].formatFileSizeDisplay(usedCloudQuota, intl);
        const maxCloudQuotaString = utils["a" /* default */].formatFileSizeDisplay(maxCloudQuota, intl);
        // quota data available, return storage info
        return (react_default.a.createElement(react_default.a.Fragment, null,
            react_default.a.createElement("div", null,
                react_default.a.createElement(CDOReactIntlTyped["a" /* FormattedMessage */], { id: `${CloudQuotaStatus_LOCALE_BASE}.usage`, values: { usedCloudQuotaString, maxCloudQuotaString } })),
            quotaState === dist["NotificationStatus"].QUOTA_EXCEEDED &&
                accountType === IIMSData["a" /* AccountType */].Personal && (react_default.a.createElement("div", { className: "upgrade_wrapper" },
                react_default.a.createElement("a", { href: this.upgradeUrl },
                    react_default.a.createElement(Button_default.a, { variant: "primary", label: intl.formatMessage({ id: `${CloudQuotaStatus_LOCALE_BASE}.upgrade` }), onClick: (e) => this.onUpgradeClicked(e) }))))));
    }
    render() {
        const { fetchState, quotaState } = this.props;
        const percentageUsed = this.getPercentage();
        let currentQuotaStatus = ReactSpectrumProgressState.positive;
        if (quotaState === dist["NotificationStatus"].QUOTA_EXCEEDED) {
            currentQuotaStatus = ReactSpectrumProgressState.critical;
        }
        // haven't finished fetching quota
        if (fetchState === stores_constants["n" /* ProcessingState */].Pending ||
            (fetchState === stores_constants["n" /* ProcessingState */].Fetching && quotaState === undefined)) {
            return (react_default.a.createElement("div", { className: "CloudQuotaStatus" },
                react_default.a.createElement("div", { className: "CloudQuotaStatus_waiting" },
                    react_default.a.createElement(Wait_default.a, { size: "S" }))));
        }
        return (react_default.a.createElement("div", { className: "CloudQuotaStatus" },
            react_default.a.createElement("div", { className: "CloudQuotaStatus_progress" },
                react_default.a.createElement("div", { className: "CloudQuotaStatus_percentage_label" },
                    react_default.a.createElement("div", { className: "CloudQuotaStatus_label" },
                        react_default.a.createElement(CDOReactIntlTyped["a" /* FormattedMessage */], { id: `${CloudQuotaStatus_LOCALE_BASE}.title` })),
                    fetchState === stores_constants["n" /* ProcessingState */].Done && (react_default.a.createElement("div", { className: "CloudQuotaStatus_percentage" },
                        react_default.a.createElement(CDOReactIntlTyped["a" /* FormattedMessage */], { id: `${CloudQuotaStatus_LOCALE_BASE}.percentage`, values: { percentageUsed } })))),
                currentQuotaStatus === ReactSpectrumProgressState.critical && (react_default.a.createElement("div", { className: "CloudQuotaStatus_warning" },
                    react_default.a.createElement(CDOReactIntlTyped["a" /* FormattedMessage */], { id: `${CloudQuotaStatus_LOCALE_BASE}.warning` }))),
                react_default.a.createElement(Progress_default.a, { className: "progress", size: "S", value: percentageUsed, variant: currentQuotaStatus }),
                react_default.a.createElement("div", { className: "CloudQuotaStatus_storageInfo" }, this.renderStorageInfo()))));
    }
}
/* harmony default export */ var components_CloudQuotaStatus = (Object(CDOReactIntlTyped["e" /* injectIntl */])(CloudQuotaStatus_CloudQuotaStatus));


// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/components/tiles/cloudQuotaTile.tsx
/*************************************************************************
 *   ADOBE CONFIDENTIAL
 *
 *   Copyright 2022 Adobe
 *   All Rights Reserved.
 *
 *   NOTICE:  All information contained herein is, and remains
 *   the property of Adobe and its suppliers, if any. The intellectual
 *   and technical concepts contained herein are proprietary to Adobe
 *   and its suppliers and are protected by all applicable intellectual
 *   property laws, including trade secret and copyright laws.
 *   Dissemination of this information or reproduction of this material
 *   is strictly forbidden unless prior written permission is obtained
 *   from Adobe.
 **************************************************************************/



function cloudQuotaTileFactory({ imsData, callbacks, quotaStore, cloudStore, }) {
    const { usedCloudQuota, maxCloudQuota, quotaState, fetchState } = quotaStore;
    const getStatus = () => getTileStatus(cloudStore.intl, [cloudStore.getCloudQuotaStatus()]);
    return {
        id: 'quota',
        // TODO: Can we convert to GenericTile instead?
        view: (react["createElement"](components_CloudQuotaStatus, { usedCloudQuota: usedCloudQuota, maxCloudQuota: maxCloudQuota, fetchState: fetchState, quotaState: quotaState, accountType: imsData.accountType, callbacks: callbacks })),
        getStatus,
    };
}

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/styles/CloudSyncStatus.css
var CloudSyncStatus = __webpack_require__("ImBD");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/components/tiles/global.tsx





function globalTiles({ callbacks, imsData, quotaStore, assetSyncStateStore, onClickTile, getCurrentTile, cloudStore, }) {
    const alert = alertTileFactory({
        callbacks,
        cloudStore,
    });
    const cloudQuota = cloudQuotaTileFactory({
        imsData,
        callbacks,
        quotaStore,
        cloudStore,
    });
    const cloudDocsSyncing = cloudDocsSyncingTileFactory({
        assetSyncStateStore,
        onClickTile,
        getCurrentTile,
        cloudStore,
    });
    const showAlertTile = alert.getStatus().status < Tile["b" /* TileStatus */].Default;
    return [showAlertTile && alert, cloudQuota, cloudDocsSyncing].filter(Boolean);
}

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/components/tiles/assetSyncStatusTile.tsx
/*************************************************************************
 *   ADOBE CONFIDENTIAL
 *
 *   Copyright 2022 Adobe
 *   All Rights Reserved.
 *
 *   NOTICE:  All information contained herein is, and remains
 *   the property of Adobe and its suppliers, if any. The intellectual
 *   and technical concepts contained herein are proprietary to Adobe
 *   and its suppliers and are protected by all applicable intellectual
 *   property laws, including trade secret and copyright laws.
 *   Dissemination of this information or reproduction of this material
 *   is strictly forbidden unless prior written permission is obtained
 *   from Adobe.
 **************************************************************************/







const assetSyncStatusTile_statusMap = {
    [Tile["b" /* TileStatus */].Error]: {
        suffix: 'error',
        showDescription: true,
        showLastModified: false,
        icon: react["createElement"](svgs_AlertIconBorderless, null),
    },
    [Tile["b" /* TileStatus */].Progress]: {
        suffix: 'syncing',
        showDescription: true,
        showLastModified: false,
        icon: react["createElement"](Wait_default.a, { size: "S" }),
    },
    [Tile["b" /* TileStatus */].Default]: {
        suffix: 'complete',
        showDescription: false,
        showLastModified: true,
        icon: react["createElement"](svgs_CheckmarkCircleBorderless, null),
    },
};
function assetSyncStatusTileFactory({ asset, assetId, cloudStore, }) {
    const getStatus = () => getTileStatus(cloudStore.intl, [cloudStore.getAssetSyncStatus(assetId)]);
    const view = () => {
        const { status, reasonSuffix } = getStatus();
        const { icon, showDescription, showLastModified, suffix } = assetSyncStatusTile_statusMap[status];
        const ROOT = 'cloudsync.singleDoc';
        const LOCALE_BASE = `${ROOT}.${suffix}${reasonSuffix ? `.${reasonSuffix}` : ''}`;
        const title = react["createElement"](CDOReactIntlTyped["a" /* FormattedMessage */], { id: `${LOCALE_BASE}.title` });
        const description = (react["createElement"]("p", null,
            react["createElement"](CDOReactIntlTyped["a" /* FormattedMessage */], { id: `${LOCALE_BASE}.descr` })));
        const timestamp = (react["createElement"]("p", null,
            react["createElement"](CDOReactIntlTyped["b" /* FormattedRelative */], { value: asset.modifiedDate, id: "AssetSyncStatusTile_timestamp" }, (msg) => (react["createElement"](CDOReactIntlTyped["a" /* FormattedMessage */], { id: `${ROOT}.complete.timestamp`, values: { time: msg } })))));
        const body = (react["createElement"](react["Fragment"], null,
            showDescription && description,
            showLastModified && timestamp));
        return {
            body: (showDescription || showLastModified) && body,
            title,
            icon,
        };
    };
    const TILE_ID = 'single-document-asset-status';
    return {
        id: TILE_ID,
        view,
        getStatus,
    };
}

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/CloseCircle/index.js
var CloseCircle = __webpack_require__("DYGA");
var CloseCircle_default = /*#__PURE__*/__webpack_require__.n(CloseCircle);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/components/tiles/simpleCloudStatusTile.tsx
/*************************************************************************
 *   ADOBE CONFIDENTIAL
 *
 *   Copyright 2022 Adobe
 *   All Rights Reserved.
 *
 *   NOTICE:  All information contained herein is, and remains
 *   the property of Adobe and its suppliers, if any. The intellectual
 *   and technical concepts contained herein are proprietary to Adobe
 *   and its suppliers and are protected by all applicable intellectual
 *   property laws, including trade secret and copyright laws.
 *   Dissemination of this information or reproduction of this material
 *   is strictly forbidden unless prior written permission is obtained
 *   from Adobe.
 **************************************************************************/








const simpleCloudStatusTile_statusMap = {
    [Tile["b" /* TileStatus */].Critical]: {
        suffix: 'error',
        showDescription: true,
        showLastModified: false,
        icon: react["createElement"](svgs_AlertIconBorderless, null),
    },
    [Tile["b" /* TileStatus */].Disabled]: {
        suffix: 'disabled',
        showDescription: true,
        showLastModified: false,
        icon: react["createElement"](svgs_AlertIconBorderless, null),
    },
    [Tile["b" /* TileStatus */].Error]: {
        suffix: 'error',
        showDescription: true,
        showLastModified: false,
        icon: react["createElement"](svgs_AlertIconBorderless, null),
        learnMoreUrl: urls["f" /* coreSyncTroubleshootUrl */],
    },
    [Tile["b" /* TileStatus */].Offline]: {
        suffix: 'offline',
        showDescription: true,
        showLastModified: true,
        icon: react["createElement"](CloseCircle_default.a, { size: "S" }),
    },
};
function simpleCloudStatusTileFactory({ asset, cloudStore, callbacks, }) {
    const getStatus = () => getTileStatus(cloudStore.intl, [cloudStore.getCloudStatus()]);
    const view = () => {
        const { status, reasonSuffix } = getStatus();
        const { suffix, showDescription, showLastModified, icon, learnMoreUrl } = simpleCloudStatusTile_statusMap[status];
        const ROOT = 'cloudsync.singleDoc';
        const LOCALE_BASE = `${ROOT}.${suffix}${reasonSuffix ? `.${reasonSuffix}` : ''}`;
        const title = react["createElement"](CDOReactIntlTyped["a" /* FormattedMessage */], { id: `${LOCALE_BASE}.title` });
        const learnMoreLink = (react["createElement"](CDOLink["a" /* default */], { callbacks: callbacks, href: learnMoreUrl === null || learnMoreUrl === void 0 ? void 0 : learnMoreUrl(cloudStore.intl.locale) },
            react["createElement"](CDOReactIntlTyped["a" /* FormattedMessage */], { id: 'cloudsync.singleDoc.error.learnMore' })));
        const description = (react["createElement"]("p", null,
            react["createElement"](CDOReactIntlTyped["a" /* FormattedMessage */], { id: `${LOCALE_BASE}.descr` }),
            learnMoreUrl && learnMoreLink));
        const timestamp = (react["createElement"]("p", null,
            react["createElement"](CDOReactIntlTyped["b" /* FormattedRelative */], { value: asset.modifiedDate, id: "SimpleCloudStatusTile_timestamp" }, (msg) => (react["createElement"](CDOReactIntlTyped["a" /* FormattedMessage */], { id: `${ROOT}.offline.timestamp`, values: { time: msg } })))));
        const body = (react["createElement"](react["Fragment"], null,
            showDescription && description,
            showLastModified && timestamp));
        return {
            body: (showDescription || showLastModified) && body,
            title,
            icon,
        };
    };
    const TILE_ID = 'single-document-global-status';
    return {
        id: TILE_ID,
        view,
        getStatus,
    };
}

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/components/tiles/singleDocument.tsx



function singleDocumentTiles({ asset, assetId, cloudStore, callbacks, }) {
    const singleDocTiles = [
        assetSyncStatusTileFactory({
            asset,
            assetId,
            cloudStore,
        }),
        simpleCloudStatusTileFactory({
            asset,
            cloudStore,
            callbacks,
        }),
    ];
    // We only want one or the other singleDoc tile to display at a time.
    // They're separated by scope (asset-scope vs global-scope states)
    // to keep the logic organized
    return [Object(Tile["d" /* highestPriorityTile */])(singleDocTiles)];
}

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/Logger.ts
var Logger = __webpack_require__("lmMR");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/stores/Subscribable.ts
var Subscribable = __webpack_require__("1E+m");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/stores/CloudStatusStore.ts
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;
};
var __metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var _a, _b, _c, _d, _e, _f;
/*************************************************************************
 *   ADOBE CONFIDENTIAL
 *
 *   Copyright 2022 Adobe
 *   All Rights Reserved.
 *
 *   NOTICE:  All information contained herein is, and remains
 *   the property of Adobe and its suppliers, if any. The intellectual
 *   and technical concepts contained herein are proprietary to Adobe
 *   and its suppliers and are protected by all applicable intellectual
 *   property laws, including trade secret and copyright laws.
 *   Dissemination of this information or reproduction of this material
 *   is strictly forbidden unless prior written permission is obtained
 *   from Adobe.
 **************************************************************************/














const TOOLTIP_BASE = 'cloudsync.tooltip';
// Global Store for the CloudSyncStatus component
class CloudStatusStore_CloudStatusStore extends Subscribable["a" /* Subscribable */] {
    constructor({ intl, imsData, docStore, assetSyncStateStore, quotaStore, }) {
        super();
        this.logger = new Logger["a" /* Logger */](this.constructor.name);
        this.connectionState = navigator.onLine
            ? dist["NotificationStatus"].HAS_INTERNET_ACCESS
            : dist["NotificationStatus"].NO_INTERNET_ACCESS;
        this.openAssets = new Map();
        this.onDocumentOpened = async ({ detail: { assetId }, }) => this.onAssetOpened(assetId);
        this.onDocumentClosed = async ({ detail: { assetId }, }) => this.onAssetClosed(assetId);
        this.initSAMAssetContext = async (waitForSAMAssetContext) => {
            this.logger.debug('waiting for SAMAssetContext');
            this.SAMAssetContext = await waitForSAMAssetContext();
            this.logger.debug('SAMAssetContext ready');
        };
        this.monitorAssetTileUpdates = (type, assetId, asset, externalTiles) => {
            this.logger.debug(`monitoring tiles for asset: ${assetId} (${type})`);
            this.openAssets.set(assetId, {
                type,
                asset,
                externalTiles,
                reactionDisposer: Object(mobx_module["B" /* reaction */])(() => Object(Tile["d" /* highestPriorityTile */])(this.getAllTiles(assetId)), tile => this.updateCloudIcon(tile, assetId), 
                // don't let the cloud icon/tooltip be stale until the first status change
                { fireImmediately: true }),
            });
        };
        this.onAssetOpened = async (assetId) => {
            this.logger.debug(`onAssetOpened(${assetId})`);
            const asset = await Object(sam_utils["d" /* getAssetModelWithUnknownAssetID */])(this.SAMAssetContext, assetId);
            this.monitorAssetTileUpdates(CloudSyncStatusPopdown["a" /* CloudSyncType */].SINGLE, assetId, asset, []);
        };
        this.onAssetClosed = async (assetId) => {
            this.logger.debug(`onAssetClosed(${assetId})`);
            const { reactionDisposer } = this.openAssets.get(assetId);
            reactionDisposer();
            this.openAssets.delete(assetId);
        };
        this.getAllTiles = (assetId, rendering) => {
            const { asset, type, externalTiles } = this.openAssets.get(assetId);
            const { callbacks, onClickTile, getCurrentTile } = rendering !== null && rendering !== void 0 ? rendering : {};
            const commonBuiltInTileConfig = {
                cloudStore: this,
                callbacks,
            };
            const builtInTiles = {
                [CloudSyncStatusPopdown["a" /* CloudSyncType */].GLOBAL]: globalTiles({
                    ...commonBuiltInTileConfig,
                    assetSyncStateStore: this.assetSyncStateStore,
                    quotaStore: this.quotaStore,
                    imsData: this.imsData,
                    onClickTile,
                    getCurrentTile,
                }),
                [CloudSyncStatusPopdown["a" /* CloudSyncType */].SINGLE]: singleDocumentTiles({
                    ...commonBuiltInTileConfig,
                    asset,
                    assetId,
                }),
            };
            return [...builtInTiles[type], ...externalTiles];
        };
        this.setExternalTiles = async (assetId, tiles) => {
            this.logger.debug(`setExternalTiles(${assetId}, ${JSON.stringify(tiles.map(t => t.id).join(','))})`);
            const openAsset = this.openAssets.get(assetId);
            if (openAsset) {
                this.logger.debug('updating monitoring of tiles');
                const { type, asset, reactionDisposer } = openAsset;
                reactionDisposer();
                this.monitorAssetTileUpdates(type, assetId, asset, tiles);
            }
            else {
                this.logger.debug('setExternalTiles called before asset exists in openAssets. awaiting onAssetOpened...');
                await this.onAssetOpened(assetId);
                await this.setExternalTiles(assetId, tiles);
            }
        };
        this.getCloudNotificationErrorStatus = () => {
            if (this.docStore.hasNotificationErrorStatus) {
                return {
                    status: Tile["b" /* TileStatus */].Error,
                    tooltip: `${TOOLTIP_BASE}.error`,
                };
            }
        };
        this.getCloudQuotaStatus = () => {
            if (this.quotaStore.isSyncDisabled) {
                return {
                    status: Tile["b" /* TileStatus */].Disabled,
                    tooltip: `${TOOLTIP_BASE}.error`,
                    reasonSuffix: 'quotaExceeded',
                };
            }
        };
        this.getCloudStatus = () => {
            const { didSAMInitFail, hasCloudNotificationErrorStatus } = this.docStore;
            if (didSAMInitFail) {
                return {
                    status: Tile["b" /* TileStatus */].Critical,
                    tooltip: `${TOOLTIP_BASE}.error`,
                    reasonSuffix: 'samInitFail',
                };
            }
            if (this.isOffline) {
                return {
                    status: Tile["b" /* TileStatus */].Offline,
                    tooltip: `${TOOLTIP_BASE}.offline`,
                };
            }
            const quotaStatus = this.getCloudQuotaStatus();
            if (quotaStatus) {
                return quotaStatus;
            }
            if (hasCloudNotificationErrorStatus) {
                return {
                    status: Tile["b" /* TileStatus */].Error,
                    tooltip: `${TOOLTIP_BASE}.error`,
                };
            }
        };
        this.getCloudDocsSyncingStatus = () => {
            if (this.assetSyncStateStore.syncingAssets.length) {
                return {
                    status: Tile["b" /* TileStatus */].Progress,
                    tooltip: `${TOOLTIP_BASE}.syncing`,
                };
            }
        };
        this.getAssetSyncStatus = (assetId) => {
            if (!assetId) {
                // GLOBAL variant has no associated assetId
                return;
            }
            const { asset } = this.openAssets.get(assetId);
            if (this.assetSyncStateStore.isSyncing(asset).get()) {
                return {
                    status: Tile["b" /* TileStatus */].Progress,
                    tooltip: `${TOOLTIP_BASE}.syncing`,
                };
            }
            if (asset.isSyncSuspended) {
                return {
                    status: Tile["b" /* TileStatus */].Error,
                    tooltip: `${TOOLTIP_BASE}.error`,
                    reasonSuffix: 'syncSuspended',
                };
            }
        };
        this.updateConnectionState = (state) => {
            this.connectionState = state;
        };
        this.updateCloudIcon = (tile, assetId) => {
            const STATUS_ICON_MAP = {
                [Tile["b" /* TileStatus */].Critical]: Tile["a" /* CloudIcon */].Error,
                [Tile["b" /* TileStatus */].Disabled]: Tile["a" /* CloudIcon */].Error,
                [Tile["b" /* TileStatus */].Error]: Tile["a" /* CloudIcon */].Error,
                [Tile["b" /* TileStatus */].Offline]: Tile["a" /* CloudIcon */].Disconnected,
                [Tile["b" /* TileStatus */].Progress]: Tile["a" /* CloudIcon */].Progress,
                [Tile["b" /* TileStatus */].Paused]: Tile["a" /* CloudIcon */].Paused,
                [Tile["b" /* TileStatus */].Default]: Tile["a" /* CloudIcon */].Cloud,
            };
            const { status, tooltip } = tile.getStatus();
            const icon = STATUS_ICON_MAP[status];
            this.logger.debug(`updateCloudIcon(${assetId}, ${icon}, ${tooltip}) (from tile: ${tile.id})`);
            this.notifySubscribers('updateCloudIcon', assetId, icon, tooltip);
        };
        this.intl = intl;
        this.imsData = imsData;
        this.docStore = docStore;
        this.assetSyncStateStore = assetSyncStateStore;
        this.quotaStore = quotaStore;
        /**
         * DocumentStore.isOnline depends on CoreSync availability in desktop apps, but
         * we want to override CoreSync Down messaging with Offline messaging if not online.
         *
         * Also, if CoreSync is down or in a corrupted state, SAM does not reliably
         * update online/offline status, so use navigator.onLine (works in UXP and browsers/CEF)
         */
        window.addEventListener('online', () => this.updateConnectionState(dist["NotificationStatus"].HAS_INTERNET_ACCESS));
        window.addEventListener('offline', () => this.updateConnectionState(dist["NotificationStatus"].NO_INTERNET_ACCESS));
        this.logger.debug('monitoring global tiles');
        this.monitorAssetTileUpdates(CloudSyncStatusPopdown["a" /* CloudSyncType */].GLOBAL, undefined, undefined, []);
    }
    get isOffline() {
        return this.connectionState === dist["NotificationStatus"].NO_INTERNET_ACCESS;
    }
}
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", typeof (_a = typeof stores_constants["ConnectionState"] !== "undefined" && stores_constants["ConnectionState"]) === "function" ? _a : Object)
], CloudStatusStore_CloudStatusStore.prototype, "connectionState", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", typeof (_b = typeof ACPLTypes["IACPLAssetContext"] !== "undefined" && ACPLTypes["IACPLAssetContext"]) === "function" ? _b : Object)
], CloudStatusStore_CloudStatusStore.prototype, "SAMAssetContext", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", typeof (_c = typeof DocumentStore["b" /* DocumentStore */] !== "undefined" && DocumentStore["b" /* DocumentStore */]) === "function" ? _c : Object)
], CloudStatusStore_CloudStatusStore.prototype, "docStore", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", typeof (_d = typeof AssetSyncStateStore["c" /* default */] !== "undefined" && AssetSyncStateStore["c" /* default */]) === "function" ? _d : Object)
], CloudStatusStore_CloudStatusStore.prototype, "assetSyncStateStore", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", typeof (_e = typeof QuotaStore["a" /* default */] !== "undefined" && QuotaStore["a" /* default */]) === "function" ? _e : Object)
], CloudStatusStore_CloudStatusStore.prototype, "quotaStore", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", typeof (_f = typeof Map !== "undefined" && Map) === "function" ? _f : Object)
], CloudStatusStore_CloudStatusStore.prototype, "openAssets", void 0);
__decorate([
    mobx_module["j" /* action */],
    __metadata("design:type", Object)
], CloudStatusStore_CloudStatusStore.prototype, "onDocumentOpened", void 0);
__decorate([
    mobx_module["j" /* action */],
    __metadata("design:type", Object)
], CloudStatusStore_CloudStatusStore.prototype, "onDocumentClosed", void 0);
__decorate([
    mobx_module["j" /* action */],
    __metadata("design:type", Object)
], CloudStatusStore_CloudStatusStore.prototype, "initSAMAssetContext", void 0);
__decorate([
    mobx_module["j" /* action */],
    __metadata("design:type", Object)
], CloudStatusStore_CloudStatusStore.prototype, "monitorAssetTileUpdates", void 0);
__decorate([
    mobx_module["j" /* action */],
    __metadata("design:type", Object)
], CloudStatusStore_CloudStatusStore.prototype, "onAssetOpened", void 0);
__decorate([
    mobx_module["j" /* action */],
    __metadata("design:type", Object)
], CloudStatusStore_CloudStatusStore.prototype, "onAssetClosed", void 0);
__decorate([
    mobx_module["j" /* action */],
    __metadata("design:type", Object)
], CloudStatusStore_CloudStatusStore.prototype, "setExternalTiles", void 0);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [])
], CloudStatusStore_CloudStatusStore.prototype, "isOffline", null);
__decorate([
    mobx_module["j" /* action */],
    __metadata("design:type", Object)
], CloudStatusStore_CloudStatusStore.prototype, "updateConnectionState", void 0);
__decorate([
    mobx_module["j" /* action */],
    __metadata("design:type", Object)
], CloudStatusStore_CloudStatusStore.prototype, "updateCloudIcon", void 0);
/** Convenience function for built-in CloudSyncStatus tiles that rely on CloudStatusStore */
function getTileStatus(intl, statuses, defaultStatus = {
    status: Tile["b" /* TileStatus */].Default,
    tooltip: `${TOOLTIP_BASE}.default`,
}) {
    const { status, tooltip, reasonSuffix } = Object(Tile["c" /* highestPriorityStatus */])([...statuses.filter(Boolean), defaultStatus], x => x.status);
    return {
        status,
        tooltip: intl.formatMessage({ id: tooltip }),
        reasonSuffix,
    };
}

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/polyfills/react-intl.ts
var react_intl = __webpack_require__("dAeb");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/i18n.ts
var i18n = __webpack_require__("oSp+");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/containers/SetupCloudSyncPanel.tsx
var SetupCloudSyncPanel = __webpack_require__("uGpw");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/stores/UXPStore.ts
/*************************************************************************
 *   ADOBE CONFIDENTIAL
 *
 *   Copyright 2022 Adobe
 *   All Rights Reserved.
 *
 *   NOTICE:  All information contained herein is, and remains
 *   the property of Adobe and its suppliers, if any. The intellectual
 *   and technical concepts contained herein are proprietary to Adobe
 *   and its suppliers and are protected by all applicable intellectual
 *   property laws, including trade secret and copyright laws.
 *   Dissemination of this information or reproduction of this material
 *   is strictly forbidden unless prior written permission is obtained
 *   from Adobe.
 **************************************************************************/

// TODO: Encapsulate all UXP-specific integration logic into UXPStore
// https://jira.corp.adobe.com/browse/CCXCD-10459
class UXPStore_UXPStore {
    constructor() {
        this.logger = new Logger["a" /* Logger */](this.constructor.name);
    }
    subscribeToCloudSyncStatusEvents(cloudStore) {
        if (window.cdoHost) {
            window.cdoHost.addEventListener('onDocumentOpened', event => 
            // @ts-ignore
            cloudStore.onDocumentOpened(JSON.parse(event)));
            window.cdoHost.addEventListener('onDocumentClosed', event => 
            // @ts-ignore
            cloudStore.onDocumentClosed(JSON.parse(event)));
            this.logger.debug('subscribing updateCloudIcon() => window.cdoHost.updateCloudIcon()');
            cloudStore.subscribe('updateCloudIcon', 'UXP_cdoHost', (...args) => { var _a, _b; return (_b = (_a = window.cdoHost).updateCloudIcon) === null || _b === void 0 ? void 0 : _b.call(_a, ...args); });
        }
    }
}

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/sleep.ts
var sleep = __webpack_require__("4CRX");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/stores/CDCGlobalStore.ts
var CDCGlobalStore_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;
};
var CDCGlobalStore_metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var CDCGlobalStore_a, CDCGlobalStore_b, CDCGlobalStore_c, CDCGlobalStore_d, CDCGlobalStore_e, CDCGlobalStore_f, _g, _h, _j;
/*************************************************************************
 *   ADOBE CONFIDENTIAL
 *
 *   Copyright 2022 Adobe
 *   All Rights Reserved.
 *
 *   NOTICE:  All information contained herein is, and remains
 *   the property of Adobe and its suppliers, if any. The intellectual
 *   and technical concepts contained herein are proprietary to Adobe
 *   and its suppliers and are protected by all applicable intellectual
 *   property laws, including trade secret and copyright laws.
 *   Dissemination of this information or reproduction of this material
 *   is strictly forbidden unless prior written permission is obtained
 *   from Adobe.
 **************************************************************************/
















// key for the global store
const $CDC_GLOBAL_STORE = Symbol.for('com.adobe.ccac.cdc.global-cloud-store');
// Global Store for CDC
// TODO: Use in CDO/UAP. Currently only used for CloudSyncStatus.
class CDCGlobalStore_CDCGlobalStore {
    constructor(config) {
        this.logger = new Logger["a" /* Logger */](this.constructor.name);
        this.uxpStore = new UXPStore_UXPStore();
        const { hostProductData, imsData } = config;
        this.imsData = imsData;
        this.hostProductData = hostProductData;
        const normalizedLocale = i18n["a" /* default */].normalizeLocale(this.hostProductData.uiLocale);
        this.intl = Object(react_intl["c" /* createIntl */])({ uiLocale: normalizedLocale });
        this.logger.debug('initCDOStores()');
        const { assetSyncStateStore, docStore, quotaStore, cdoMetrics, waitForSAMAssetContext } = Object(init_cdo_stores["b" /* initCDOStores */])({
            hostProductData: this.hostProductData,
            imsData: {
                // @ts-ignore (object spread overwrite)
                environment: constants["d" /* DEFAULTS */].SERVICE_ENVIRONMENT,
                ...this.imsData,
            },
            // TODO: https://jira.corp.adobe.com/browse/CCXCD-9869
            suspendRefresh: true,
            removeAssetOnSyncComplete: false,
            mode: constants["p" /* ModeType */].organizer,
            cloudURLProtocol: '',
            quotaRefreshEnabled: true,
        });
        this.assetSyncStateStore = assetSyncStateStore;
        this.docStore = docStore;
        this.quotaStore = quotaStore;
        this.cdoMetrics = cdoMetrics;
        this.logger.debug('initializing CloudStatusStore');
        this.cloudStore = new CloudStatusStore_CloudStatusStore({
            intl: this.intl,
            imsData: this.imsData,
            docStore,
            assetSyncStateStore,
            quotaStore,
        });
        this.cloudStore.initSAMAssetContext(waitForSAMAssetContext);
        this.uxpStore.subscribeToCloudSyncStatusEvents(this.cloudStore);
        Object(SetupCloudSyncPanel["a" /* setupCloudSyncPanel */])();
    }
}
CDCGlobalStore_decorate([
    mobx_module["z" /* observable */],
    CDCGlobalStore_metadata("design:type", typeof (CDCGlobalStore_a = typeof DocumentStore["b" /* DocumentStore */] !== "undefined" && DocumentStore["b" /* DocumentStore */]) === "function" ? CDCGlobalStore_a : Object)
], CDCGlobalStore_CDCGlobalStore.prototype, "docStore", void 0);
CDCGlobalStore_decorate([
    mobx_module["z" /* observable */],
    CDCGlobalStore_metadata("design:type", typeof (CDCGlobalStore_b = typeof AssetSyncStateStore["c" /* default */] !== "undefined" && AssetSyncStateStore["c" /* default */]) === "function" ? CDCGlobalStore_b : Object)
], CDCGlobalStore_CDCGlobalStore.prototype, "assetSyncStateStore", void 0);
CDCGlobalStore_decorate([
    mobx_module["z" /* observable */],
    CDCGlobalStore_metadata("design:type", typeof (CDCGlobalStore_c = typeof CDOMetrics["a" /* default */] !== "undefined" && CDOMetrics["a" /* default */]) === "function" ? CDCGlobalStore_c : Object)
], CDCGlobalStore_CDCGlobalStore.prototype, "cdoMetrics", void 0);
CDCGlobalStore_decorate([
    mobx_module["z" /* observable */],
    CDCGlobalStore_metadata("design:type", typeof (CDCGlobalStore_d = typeof QuotaStore["a" /* default */] !== "undefined" && QuotaStore["a" /* default */]) === "function" ? CDCGlobalStore_d : Object)
], CDCGlobalStore_CDCGlobalStore.prototype, "quotaStore", void 0);
CDCGlobalStore_decorate([
    mobx_module["z" /* observable */],
    CDCGlobalStore_metadata("design:type", typeof (CDCGlobalStore_e = typeof CloudStatusStore_CloudStatusStore !== "undefined" && CloudStatusStore_CloudStatusStore) === "function" ? CDCGlobalStore_e : Object)
], CDCGlobalStore_CDCGlobalStore.prototype, "cloudStore", void 0);
CDCGlobalStore_decorate([
    mobx_module["z" /* observable */],
    CDCGlobalStore_metadata("design:type", typeof (CDCGlobalStore_f = typeof react_intl["ExtendedInjectedIntl"] !== "undefined" && react_intl["ExtendedInjectedIntl"]) === "function" ? CDCGlobalStore_f : Object)
], CDCGlobalStore_CDCGlobalStore.prototype, "intl", void 0);
CDCGlobalStore_decorate([
    mobx_module["z" /* observable */],
    CDCGlobalStore_metadata("design:type", typeof (_g = typeof IIMSData["default"] !== "undefined" && IIMSData["default"]) === "function" ? _g : Object)
], CDCGlobalStore_CDCGlobalStore.prototype, "imsData", void 0);
CDCGlobalStore_decorate([
    mobx_module["z" /* observable */].ref,
    CDCGlobalStore_metadata("design:type", typeof (_h = typeof IHostProductData_default.a !== "undefined" && IHostProductData_default.a) === "function" ? _h : Object)
], CDCGlobalStore_CDCGlobalStore.prototype, "hostProductData", void 0);
CDCGlobalStore_decorate([
    mobx_module["z" /* observable */],
    CDCGlobalStore_metadata("design:type", typeof (_j = typeof UXPStore_UXPStore !== "undefined" && UXPStore_UXPStore) === "function" ? _j : Object)
], CDCGlobalStore_CDCGlobalStore.prototype, "uxpStore", void 0);
function deleteCDCGlobalStore() {
    delete window[$CDC_GLOBAL_STORE];
}
function createCDCGlobalStore(config) {
    window[$CDC_GLOBAL_STORE] = new CDCGlobalStore_CDCGlobalStore(config);
    return window[$CDC_GLOBAL_STORE];
}
function getCDCGlobalStore(config) {
    var _a;
    return (_a = window[$CDC_GLOBAL_STORE]) !== null && _a !== void 0 ? _a : createCDCGlobalStore(config);
}
/**
 * Some components need to access stuff from the store, but don't
 * have easy access to ICommonCDCConfiguration fields and can
 * rely on some other entity having created the global store
 * @returns {CDCGlobalStore}
 */
async function getExistingCDCGlobalStore() {
    while (!window[$CDC_GLOBAL_STORE]) {
        await Object(sleep["a" /* default */])(200);
    }
    return window[$CDC_GLOBAL_STORE];
}
/* harmony default export */ var stores_CDCGlobalStore = (CDCGlobalStore_CDCGlobalStore);


/***/ }),

/***/ "Z4Qv":
/***/ (function(module) {

module.exports = JSON.parse("{\"Clear search\":\"Ryd søgning\"}");

/***/ }),

/***/ "Z8oC":
/***/ (function(module, exports, __webpack_require__) {

var assocIndexOf = __webpack_require__("y1pI");
/**
 * Sets the list cache `key` to `value`.
 *
 * @private
 * @name set
 * @memberOf ListCache
 * @param {string} key The key of the value to set.
 * @param {*} value The value to set.
 * @returns {Object} Returns the list cache instance.
 */


function listCacheSet(key, value) {
  var data = this.__data__,
      index = assocIndexOf(data, key);

  if (index < 0) {
    ++this.size;
    data.push([key, value]);
  } else {
    data[index][1] = value;
  }

  return this;
}

module.exports = listCacheSet;

/***/ }),

/***/ "ZDAU":
/***/ (function(module, exports, __webpack_require__) {

var Buffer = __webpack_require__("hwdV").Buffer;

var Transform = __webpack_require__("1IWx").Transform;

var StringDecoder = __webpack_require__("fXKp").StringDecoder;

var inherits = __webpack_require__("P7XM");

function CipherBase(hashMode) {
  Transform.call(this);
  this.hashMode = typeof hashMode === 'string';

  if (this.hashMode) {
    this[hashMode] = this._finalOrDigest;
  } else {
    this.final = this._finalOrDigest;
  }

  if (this._final) {
    this.__final = this._final;
    this._final = null;
  }

  this._decoder = null;
  this._encoding = null;
}

inherits(CipherBase, Transform);

CipherBase.prototype.update = function (data, inputEnc, outputEnc) {
  if (typeof data === 'string') {
    data = Buffer.from(data, inputEnc);
  }

  var outData = this._update(data);

  if (this.hashMode) return this;

  if (outputEnc) {
    outData = this._toString(outData, outputEnc);
  }

  return outData;
};

CipherBase.prototype.setAutoPadding = function () {};

CipherBase.prototype.getAuthTag = function () {
  throw new Error('trying to get auth tag in unsupported state');
};

CipherBase.prototype.setAuthTag = function () {
  throw new Error('trying to set auth tag in unsupported state');
};

CipherBase.prototype.setAAD = function () {
  throw new Error('trying to set aad in unsupported state');
};

CipherBase.prototype._transform = function (data, _, next) {
  var err;

  try {
    if (this.hashMode) {
      this._update(data);
    } else {
      this.push(this._update(data));
    }
  } catch (e) {
    err = e;
  } finally {
    next(err);
  }
};

CipherBase.prototype._flush = function (done) {
  var err;

  try {
    this.push(this.__final());
  } catch (e) {
    err = e;
  }

  done(err);
};

CipherBase.prototype._finalOrDigest = function (outputEnc) {
  var outData = this.__final() || Buffer.alloc(0);

  if (outputEnc) {
    outData = this._toString(outData, outputEnc, true);
  }

  return outData;
};

CipherBase.prototype._toString = function (value, enc, fin) {
  if (!this._decoder) {
    this._decoder = new StringDecoder(enc);
    this._encoding = enc;
  }

  if (this._encoding !== enc) throw new Error('can\'t switch encodings');

  var out = this._decoder.write(value);

  if (fin) {
    out += this._decoder.end();
  }

  return out;
};

module.exports = CipherBase;

/***/ }),

/***/ "ZEK9":
/***/ (function(module, exports, __webpack_require__) {

exports.publicEncrypt = __webpack_require__("rSVQ");
exports.privateDecrypt = __webpack_require__("DyzK");

exports.privateEncrypt = function privateEncrypt(key, buf) {
  return exports.publicEncrypt(key, buf, true);
};

exports.publicDecrypt = function publicDecrypt(key, buf) {
  return exports.privateDecrypt(key, buf, true);
};

/***/ }),

/***/ "ZFOp":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = function (str) {
  return encodeURIComponent(str).replace(/[!'()*]/g, function (c) {
    return '%' + c.charCodeAt(0).toString(16).toUpperCase();
  });
};

/***/ }),

/***/ "ZG73":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("lcsq");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("p9XE"),
      24: __webpack_require__("u+8+")
    }
  }));
};

WrappedIcon.displayName = 'CreativeCloud';
exports.default = WrappedIcon;

/***/ }),

/***/ "ZLGm":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__("q1tI");
var react_default = /*#__PURE__*/__webpack_require__.n(react);

// EXTERNAL MODULE: ./node_modules/react-intl-cdo/lib/index.es.js + 1 modules
var index_es = __webpack_require__("VIzJ");

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Icon/js/Icon.js
var Icon = __webpack_require__("trqI");
var Icon_default = /*#__PURE__*/__webpack_require__.n(Icon);

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/images/onboarding/S_Illu_AddAFolder.svg
function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}


/* harmony default export */ var S_Illu_AddAFolder = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", _extends({
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 72 72"
}, props), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["spaces_svg_icon_gray"] || "spaces_svg_icon_gray",
  d: "M67.4 27.85a.76.76 0 0 1-.75-.75v-2.51a3 3 0 0 0-3-3H39.21a2.29 2.29 0 0 1-1.63-.67L32.73 16a2.26 2.26 0 0 0-1.63-.68H16.8a3.08 3.08 0 0 0-3.08 3.08v6.89a.75.75 0 0 1-1.5 0v-6.86a4.59 4.59 0 0 1 4.58-4.58h14.3A3.77 3.77 0 0 1 33.79 15l4.85 4.85a.79.79 0 0 0 .57.23h24.4a4.55 4.55 0 0 1 4.54 4.54v2.48a.76.76 0 0 1-.75.75z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["spaces_svg_icon_gray"] || "spaces_svg_icon_gray",
  d: "M63.61 57.38H16.76a4.54 4.54 0 0 1-4.54-4.54v-2.16a.75.75 0 0 1 1.5 0v2.16a3 3 0 0 0 3 3h46.89a3 3 0 0 0 3-3V27.1a.75.75 0 1 1 1.5 0v25.74a4.55 4.55 0 0 1-4.5 4.54z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["spaces_svg_icon_gray"] || "spaces_svg_icon_gray",
  d: "M41.22 21.55H17.79a.75.75 0 0 1 0-1.5h23.43a.75.75 0 0 1 0 1.5z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["spaces_svg_icon_tint"] || "spaces_svg_icon_tint",
  d: "M13 46.14a.75.75 0 0 1-.75-.75V29.25a.75.75 0 0 1 1.5 0v16.14a.76.76 0 0 1-.75.75z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["spaces_svg_icon_tint"] || "spaces_svg_icon_tint",
  d: "M21.33 37.77H4.6a.75.75 0 1 1 0-1.5h16.73a.75.75 0 0 1 0 1.5z"
})));
// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/Folder/index.js
var Folder = __webpack_require__("/sUK");
var Folder_default = /*#__PURE__*/__webpack_require__.n(Folder);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/components/TextInputDialog.tsx
var TextInputDialog = __webpack_require__("m9U2");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/constants.ts
var constants = __webpack_require__("YVc3");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/components/CreateFolderDialog.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2020 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/





class CreateFolderDialog_CreateFolderDialog extends react["Component"] {
    render() {
        const { intl, onConfirm, onClose } = this.props;
        return (react_default.a.createElement(TextInputDialog["a" /* default */], { title: intl.formatMessage({ id: 'dialog.createFolder.title' }), placeholderText: intl.formatMessage({
                id: 'dialog.createFolder.placeholder',
            }), rendition: react_default.a.createElement(Folder_default.a, { size: "L" }), confirmLabelId: intl.formatMessage({ id: 'button.create' }), maxNameLength: constants["O" /* maxFolderNameLength */], onConfirm: onConfirm, onClose: onClose }));
    }
}
/* harmony default export */ var components_CreateFolderDialog = (Object(index_es["g" /* injectIntl */])(CreateFolderDialog_CreateFolderDialog));

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/components/QuotaExceededDialog.tsx
var QuotaExceededDialog = __webpack_require__("juov");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/quotaExceedCheck.ts
var quotaExceedCheck = __webpack_require__("Rf71");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/SpacesError.ts
var SpacesError = __webpack_require__("R5sx");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/SentryUtils.ts + 37 modules
var SentryUtils = __webpack_require__("mk41");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/actions/createFolder.tsx










const createFolderAction = (app, onComplete) => ({
    ariaLabelID: 'button.newFolder',
    icon: (react_default.a.createElement(Icon_default.a, { size: "M" },
        react_default.a.createElement(S_Illu_AddAFolder, null))),
    iconOnly: false,
    id: 'createFolder',
    name: react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "button.newFolder" }),
    emptyStateIcon: react_default.a.createElement(S_Illu_AddAFolder, null),
    quiet: false,
    supportsMultiple: false,
    variant: 'action',
    onClick: async () => {
        app.projectsClient.showModal(react_default.a.createElement(components_CreateFolderDialog, { onConfirm: async (name) => {
                var _a, _b, _c;
                try {
                    // TODO: [SAM-1668] Unlike SAM js, SAM cpp always auto retries and resolves conflict name,
                    // even though `retryOnConflict` is false here)
                    const asset = await ((_b = (_a = app.currentFolder) === null || _a === void 0 ? void 0 : _a.samAsset) === null || _b === void 0 ? void 0 : _b.createFolder(name, false));
                    app.projectsClient.toastManager.addToast(app.intl.formatMessage({ id: 'dialog.createFolder.success' }), {
                        closable: true,
                        variant: 'success',
                    });
                    onComplete === null || onComplete === void 0 ? void 0 : onComplete(asset);
                }
                catch (e) {
                    const samErr = Object(SpacesError["h" /* maybeSamHttpError */])(e);
                    const isQuotaFull = await Object(quotaExceedCheck["a" /* isQuotaExceededError */])(samErr);
                    if (isQuotaFull) {
                        app.projectsClient.showModal(react_default.a.createElement(QuotaExceededDialog["a" /* default */], { app: app }));
                    }
                    else if (Object(SpacesError["j" /* normalizeSamError */])(e) === 'CONFLICT') {
                        return app.intl.formatMessage({
                            id: 'dialog.createFolder.nameConflict',
                        });
                    }
                    else if (Object(SpacesError["j" /* normalizeSamError */])(e) === constants["B" /* SAMErrorCode */].ACCESS_DENIED ||
                        Object(SpacesError["j" /* normalizeSamError */])(e) === constants["B" /* SAMErrorCode */].NOT_FOUND) {
                        (_c = app.currentProject) === null || _c === void 0 ? void 0 : _c.refreshFolderState(app);
                    }
                    else {
                        app.projectsClient.toastManager.addToast(app.intl.formatMessage({ id: 'dialog.createFolder.error' }), {
                            closable: true,
                            variant: 'error',
                        });
                        SentryUtils["a" /* sentryUtils */].captureException(e, {
                            tags: {
                                'action.error': 'create-folder',
                            },
                        });
                    }
                }
            } }));
    },
});
/* harmony default export */ var createFolder = __webpack_exports__["a"] = (createFolderAction);


/***/ }),

/***/ "ZW5q":
/***/ (function(module, exports, __webpack_require__) {

"use strict";
 // 25.4.1.5 NewPromiseCapability(C)

var aFunction = __webpack_require__("eaoh");

function PromiseCapability(C) {
  var resolve, reject;
  this.promise = new C(function ($$resolve, $$reject) {
    if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');
    resolve = $$resolve;
    reject = $$reject;
  });
  this.resolve = aFunction(resolve);
  this.reject = aFunction(reject);
}

module.exports.f = function (C) {
  return new PromiseCapability(C);
};

/***/ }),

/***/ "ZYPJ":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2019 Adobe Inc
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/

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 __());
  };
}();

var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {
  function adopt(value) {
    return value instanceof P ? value : new P(function (resolve) {
      resolve(value);
    });
  }

  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) : adopt(result.value).then(fulfilled, rejected);
    }

    step((generator = generator.apply(thisArg, _arguments || [])).next());
  });
};

var __generator = this && this.__generator || function (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
    };
  }
};

var __importDefault = this && this.__importDefault || function (mod) {
  return mod && mod.__esModule ? mod : {
    "default": mod
  };
};

Object.defineProperty(exports, "__esModule", {
  value: true
});

__webpack_require__("cnSC");

var RequestProcessor_1 = __importDefault(__webpack_require__("HyxP"));
/**
 * Handles service-specific response processing for acp.local interaction
 */


var CacheOpRequestProcessor =
/** @class */
function (_super) {
  __extends(CacheOpRequestProcessor, _super);

  function CacheOpRequestProcessor() {
    return _super !== null && _super.apply(this, arguments) || this;
  }
  /**
   * Transforms the request for direct interaction with services, if needed
   * @param request
   * @param bodyJson
   */


  CacheOpRequestProcessor.prototype.requestTransformWeb = function (request, additionalParams) {
    return __awaiter(this, void 0, void 0, function () {
      return __generator(this, function (_a) {
        return [2
        /*return*/
        , Promise.reject(new Error('Cache operations are not available on the web client, ACP.Local only.'))];
      });
    });
  };
  /**
   * Transforms the request for ACP.local, if needed
   * @param request
   * @param bodyJson
   */


  CacheOpRequestProcessor.prototype.requestTransformAcpLocal = function (request, additionalParams) {
    return __awaiter(this, void 0, void 0, function () {
      var _this = this;

      return __generator(this, function (_a) {
        return [2
        /*return*/
        , new Promise(function (resolve, reject) {
          return __awaiter(_this, void 0, void 0, function () {
            var requestComponents, bodyJson, operationType, cacheOpDesc;
            return __generator(this, function (_a) {
              switch (_a.label) {
                case 0:
                  return [4
                  /*yield*/
                  , _super.prototype.requestTransformAcpLocal.call(this, request)];

                case 1:
                  requestComponents = _a.sent();
                  return [4
                  /*yield*/
                  , request.json()];

                case 2:
                  bodyJson = _a.sent();
                  operationType = acplocaljs.CacheOperationDescription[bodyJson.op.toUpperCase()];
                  cacheOpDesc = new acplocaljs.CacheOperationDescription(operationType, bodyJson.target ? bodyJson.target.href : null);
                  requestComponents.element = cacheOpDesc;
                  resolve(requestComponents);
                  return [2
                  /*return*/
                  ];
              }
            });
          });
        })];
      });
    });
  };

  CacheOpRequestProcessor.urlRegex = new RegExp("/cache/ops$");
  CacheOpRequestProcessor.method = ['POST'];
  return CacheOpRequestProcessor;
}(RequestProcessor_1.default);

exports.default = CacheOpRequestProcessor;

/***/ }),

/***/ "ZdiK":
/***/ (function(module) {

module.exports = JSON.parse("{\"File\":\"Archivo\",\"Folder\":\"Carpeta\"}");

/***/ }),

/***/ "ZfQF":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var _interopRequireDefault = __webpack_require__("TqRt");

exports.__esModule = true;
exports.default = scrollTop;

var _isWindow = _interopRequireDefault(__webpack_require__("8Y+z"));

function scrollTop(node, val) {
  var win = (0, _isWindow.default)(node);
  if (val === undefined) return win ? 'pageYOffset' in win ? win.pageYOffset : win.document.documentElement.scrollTop : node.scrollTop;
  if (win) win.scrollTo('pageXOffset' in win ? win.pageXOffset : win.document.documentElement.scrollLeft, val);else node.scrollTop = val;
}

module.exports = exports["default"];

/***/ }),

/***/ "ZgEJ":
/***/ (function(module) {

module.exports = JSON.parse("{\"close\":\"关闭\",\"error\":\"错误\",\"info\":\"信息\",\"success\":\"成功\",\"warning\":\"警告\"}");

/***/ }),

/***/ "ZgbK":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _autobindDecorator = _interopRequireDefault(__webpack_require__("gKdT"));

var _closest = _interopRequireDefault(__webpack_require__("U6dR"));

var _createId = _interopRequireDefault(__webpack_require__("b7KY"));

var _UxpFlyoutOverlay = _interopRequireDefault(__webpack_require__("TgqB"));

var _ModalContainer = __webpack_require__("Kqiy");

var _UxpOverlay = _interopRequireDefault(__webpack_require__("Koem"));

var _OverlayTrigger = _interopRequireDefault(__webpack_require__("mThF"));

var _react = _interopRequireWildcard(__webpack_require__("q1tI"));

var _reactDom = _interopRequireDefault(__webpack_require__("i8i4"));

__webpack_require__("ACDc");

var _ScrollManager = __webpack_require__("8VRs");

const _excluded = ["rootClose"];

var _class;

function _getRequireWildcardCache(nodeInterop) {
  if (typeof WeakMap !== "function") return null;
  var cacheBabelInterop = new WeakMap();
  var cacheNodeInterop = new WeakMap();
  return (_getRequireWildcardCache = function (nodeInterop) {
    return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
  })(nodeInterop);
}

function _interopRequireWildcard(obj, nodeInterop) {
  if (!nodeInterop && obj && obj.__esModule) {
    return obj;
  }

  if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
    return {
      default: obj
    };
  }

  var cache = _getRequireWildcardCache(nodeInterop);

  if (cache && cache.has(obj)) {
    return cache.get(obj);
  }

  var newObj = {};
  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;

  for (var key in obj) {
    if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
      var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;

      if (desc && (desc.get || desc.set)) {
        Object.defineProperty(newObj, key, desc);
      } else {
        newObj[key] = obj[key];
      }
    }
  }

  newObj.default = obj;

  if (cache) {
    cache.set(obj, newObj);
  }

  return newObj;
}

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function ownKeys(object, enumerableOnly) {
  var keys = Object.keys(object);

  if (Object.getOwnPropertySymbols) {
    var symbols = Object.getOwnPropertySymbols(object);

    if (enumerableOnly) {
      symbols = symbols.filter(function (sym) {
        return Object.getOwnPropertyDescriptor(object, sym).enumerable;
      });
    }

    keys.push.apply(keys, symbols);
  }

  return keys;
}

function _objectSpread(target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i] != null ? arguments[i] : {};

    if (i % 2) {
      ownKeys(Object(source), true).forEach(function (key) {
        _defineProperty(target, key, source[key]);
      });
    } else if (Object.getOwnPropertyDescriptors) {
      Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
    } else {
      ownKeys(Object(source)).forEach(function (key) {
        Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
      });
    }
  }

  return target;
}

function _defineProperty(obj, key, value) {
  if (key in obj) {
    Object.defineProperty(obj, key, {
      value: value,
      enumerable: true,
      configurable: true,
      writable: true
    });
  } else {
    obj[key] = value;
  }

  return obj;
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

let UxpOverlayTrigger = (0, _autobindDecorator.default)(_class = class UxpOverlayTrigger extends _OverlayTrigger.default {
  constructor(props, context) {
    super(props, context);
    this.overlayId = (0, _createId.default)();
    this._mountNode = null;
    this.popup = null;
    this.state = {
      show: props.show === undefined ? props.defaultShow : props.show
    };
    this._scrollParents = new Map();
    this.overlayChild = _react.default.Children.toArray(this.props.children)[1];
    this.isFlyout = this.overlayChild ? this.overlayChild.props.flyoutMenu : false;
  }

  getFlyoutOverlayContainer() {
    const closestContainer = (0, _closest.default)(_reactDom.default.findDOMNode(this), '.react-spectrum-provider');
    return closestContainer || document.querySelector('.react-spectrum-provider') || document.body;
  }

  componentDidMount() {
    this._mountNode = document.createElement('div');

    if (this.isFlyout) {
      this.popup = document.createElement('popup');
      this.popup.className = 'uxp-flyout';
    }

    this.renderOverlay();
    document.body.addEventListener('mouseUp', this.windowMouseUp);
  }

  show(e) {
    this._immediateFlyoutContainer = this.getFlyoutOverlayContainer();

    if (!this.state.show && !this.props.disabled) {
      this._lastFocus = this.rememberedFocus();
      this.listenToScrollParents();
      this.setState({
        show: true
      });

      if (this.isFlyout) {
        this._immediateFlyoutContainer.appendChild(this.popup);

        this.popup.addEventListener('close', this.hide);
        this.popup.showFlyout(_reactDom.default.findDOMNode(this), {
          placement: 'bottom left'
        });
      }

      if (this.props.onShow) {
        this.props.onShow(e);
      }
    }
  }

  listenToScrollParents() {
    this.removeListenersFromScrollParents();
    var scrollParents = (0, _ScrollManager.getScrollParents)(_reactDom.default.findDOMNode(this));

    for (let node of scrollParents) {
      this._scrollParents.set(node, {
        left: node.scrollLeft,
        top: node.scrollTop
      });

      node.addEventListener('scroll', this.hide, false);
    }
  } // if we have any listeners on parents, remove them


  removeListenersFromScrollParents() {
    if (this._scrollParents.size !== 0) {
      for (let node of this._scrollParents) {
        node[0].removeEventListener('scroll', this.hide, false);
      }
    }
  }

  hide(e) {
    if (e && e.type === 'scroll' && e.target) {
      var scrollInfo = this._scrollParents.get(e.target); // https://jira.corp.adobe.com/browse/UXP-19352


      if (e.target.scrollLeft === scrollInfo.left && e.target.scrollTop === scrollInfo.top) {
        return;
      }
    }

    this.removeListenersFromScrollParents();

    if (this.state.show) {
      this.setState({
        show: false
      });

      if (this.isFlyout) {
        this.popup.close();
        this.popup.removeEventListener('close', this.hide);

        this._immediateFlyoutContainer.removeChild(this.popup);
      }

      if (this.props.onHide) {
        this.props.onHide(e);
      }
    }
  }

  componentWillUnmount() {
    _ModalContainer.modalManager.removeFromModal(this._overlay);

    _reactDom.default.unmountComponentAtNode(this._mountNode);

    this._mountNode = null;
    clearTimeout(this._hoverShowDelay);
    clearTimeout(this._hoverHideDelay);
    this.removeListenersFromScrollParents();
    this._scrollParents = null;
    document.body.removeEventListener('mouseUp', this.windowMouseUp);
  }

  renderOverlay() {
    if (this._overlay.props.show) {
      _ModalContainer.modalManager.addToModal(this._overlay, true);
    }

    if (this.isFlyout) {
      // show native flyout when select component overlay is being shown
      _reactDom.default.render(this._overlay, this.popup);
    } else {
      _reactDom.default.unstable_renderSubtreeIntoContainer(this, this._overlay, this._mountNode);
    }
  }

  makeOverlay(overlay, props) {
    let {
      target = this
    } = this.props;

    let {
      rootClose = true
    } = props,
        overlayProps = _objectWithoutProperties(props, _excluded);

    delete overlayProps.crossOffset;
    delete overlayProps.defaultShow;
    delete overlayProps.flip;

    let topOverlayProps = _objectSpread({
      id: overlay.props.id || overlayProps.id
    }, props);

    if (!overlay.props.id) {
      overlayProps.id = this.overlayId;
    }

    return this.isFlyout ? /*#__PURE__*/_react.default.createElement(_UxpFlyoutOverlay.default, _extends({}, topOverlayProps, {
      show: this.state.show,
      onHide: this.hide,
      rootClose: rootClose
    }), /*#__PURE__*/(0, _react.cloneElement)(overlay, overlayProps)) : /*#__PURE__*/_react.default.createElement(_UxpOverlay.default, _extends({}, topOverlayProps, {
      show: this.state.show,
      onExited: this.onExited,
      onHide: this.onHide,
      target: target,
      rootClose: rootClose
    }), /*#__PURE__*/(0, _react.cloneElement)(overlay, overlayProps));
  }

}) || _class;

exports.default = UxpOverlayTrigger;

/***/ }),

/***/ "ZhPi":
/***/ (function(module, exports, __webpack_require__) {

var arrayLikeToArray = __webpack_require__("WkPL");

function _unsupportedIterableToArray(o, minLen) {
  if (!o) return;
  if (typeof o === "string") return arrayLikeToArray(o, minLen);
  var n = Object.prototype.toString.call(o).slice(8, -1);
  if (n === "Object" && o.constructor) n = o.constructor.name;
  if (n === "Map" || n === "Set") return Array.from(o);
  if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);
}

module.exports = _unsupportedIterableToArray;
module.exports["default"] = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "ZhqB":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = getTorqVersion;
/*************************************************************************
* ADOBE CONFIDENTIAL
* ___________________
*
* Copyright 2019 Adobe
* All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains
* the property of Adobe and its suppliers, if any. The intellectual
* and technical concepts contained herein are proprietary to Adobe
* and its suppliers and are protected by all applicable intellectual
* property laws, including trade secret and copyright laws.
* Dissemination of this information or reproduction of this material
* is strictly forbidden unless prior written permission is obtained
* from Adobe.
**************************************************************************/

function getTorqVersion() {
  if (window.require('uxp').versions.torq) {
    let uxpVersion = window.require('uxp').versions.torq;

    var versions = uxpVersion.match(/^([^.]+)\.([^.]+)\.(.*?)$/);
    let majorVersion = parseInt(versions[1].replace(/[^0-9]/g, ''), 10);
    let minorVersion = parseInt(versions[2], 10);
    return [majorVersion, minorVersion];
  }
}

/***/ }),

/***/ "ZigE":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);

const styles = {
    light: {
        st0: '#e1e1e1',
        st1: '#b3b3b3',
    },
    lightest: {
        st0: '#e1e1e1',
        st1: '#b3b3b3',
    },
    dark: {
        st0: '#393939',
        st1: '#5c5c5c',
    },
    darkest: {
        st0: '#393939',
        st1: '#5c5c5c',
    },
};
/* harmony default export */ __webpack_exports__["a"] = (({ theme = 'light' }) => (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("svg", { version: "1.1", viewBox: "0 0 130 130", xmlns: "http://www.w3.org/2000/svg" },
    react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", { fill: styles[theme].st0, d: "M12,118c-5.5,0-10-4.5-10-10V20c0-5.5,4.5-10,10-10h40.3c2.1,0,4.1,0.8,5.7,2.3l12.5,12.5\n        c0.7,0.7,1.8,1.2,2.8,1.2H116c5.5,0,10,4.5,10,10v72c0,5.5-4.5,10-10,10H12z" }),
    react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", { fill: styles[theme].st1, d: "M116,24H73.3c-0.5,0-1-0.2-1.4-0.6L59.4,10.9C57.5,9,55,8,52.3,8H12C5.4,8,0,13.4,0,20v88c0,6.6,5.4,12,12,12\n        h104c6.6,0,12-5.4,12-12V36C128,29.4,122.6,24,116,24z M124,108c0,4.4-3.6,8-8,8H12c-4.4,0-8-3.6-8-8V28h112c4.4,0,8,3.6,8,8V108z" }))));


/***/ }),

/***/ "Zrr/":
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/*!
 * media-typer
 * Copyright(c) 2014-2017 Douglas Christopher Wilson
 * MIT Licensed
 */

/**
 * RegExp to match type in RFC 6838
 *
 * type-name = restricted-name
 * subtype-name = restricted-name
 * restricted-name = restricted-name-first *126restricted-name-chars
 * restricted-name-first  = ALPHA / DIGIT
 * restricted-name-chars  = ALPHA / DIGIT / "!" / "#" /
 *                          "$" / "&" / "-" / "^" / "_"
 * restricted-name-chars =/ "." ; Characters before first dot always
 *                              ; specify a facet name
 * restricted-name-chars =/ "+" ; Characters after last plus always
 *                              ; specify a structured syntax suffix
 * ALPHA =  %x41-5A / %x61-7A   ; A-Z / a-z
 * DIGIT =  %x30-39             ; 0-9
 */

var SUBTYPE_NAME_REGEXP = /^[A-Za-z0-9][A-Za-z0-9!#$&^_.-]{0,126}$/;
var TYPE_NAME_REGEXP = /^[A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126}$/;
var TYPE_REGEXP = /^ *([A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126})\/([A-Za-z0-9][A-Za-z0-9!#$&^_.+-]{0,126}) *$/;
/**
 * Module exports.
 */

exports.format = format;
exports.parse = parse;
exports.test = test;
/**
 * Format object to media type.
 *
 * @param {object} obj
 * @return {string}
 * @public
 */

function format(obj) {
  if (!obj || typeof obj !== 'object') {
    throw new TypeError('argument obj is required');
  }

  var subtype = obj.subtype;
  var suffix = obj.suffix;
  var type = obj.type;

  if (!type || !TYPE_NAME_REGEXP.test(type)) {
    throw new TypeError('invalid type');
  }

  if (!subtype || !SUBTYPE_NAME_REGEXP.test(subtype)) {
    throw new TypeError('invalid subtype');
  } // format as type/subtype


  var string = type + '/' + subtype; // append +suffix

  if (suffix) {
    if (!TYPE_NAME_REGEXP.test(suffix)) {
      throw new TypeError('invalid suffix');
    }

    string += '+' + suffix;
  }

  return string;
}
/**
 * Test media type.
 *
 * @param {string} string
 * @return {object}
 * @public
 */


function test(string) {
  if (!string) {
    throw new TypeError('argument string is required');
  }

  if (typeof string !== 'string') {
    throw new TypeError('argument string is required to be a string');
  }

  return TYPE_REGEXP.test(string.toLowerCase());
}
/**
 * Parse media type to object.
 *
 * @param {string} string
 * @return {object}
 * @public
 */


function parse(string) {
  if (!string) {
    throw new TypeError('argument string is required');
  }

  if (typeof string !== 'string') {
    throw new TypeError('argument string is required to be a string');
  }

  var match = TYPE_REGEXP.exec(string.toLowerCase());

  if (!match) {
    throw new TypeError('invalid media type');
  }

  var type = match[1];
  var subtype = match[2];
  var suffix; // suffix after last +

  var index = subtype.lastIndexOf('+');

  if (index !== -1) {
    suffix = subtype.substr(index + 1);
    subtype = subtype.substr(0, index);
  }

  return new MediaType(type, subtype, suffix);
}
/**
 * Class for MediaType object.
 * @public
 */


function MediaType(type, subtype, suffix) {
  this.type = type;
  this.subtype = subtype;
  this.suffix = suffix;
}

/***/ }),

/***/ "Zt3U":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = hostStyleConfig;

function hostStyleConfig() {
  const uxp = window.require && window.require('uxp');

  const product = uxp && uxp.host ? uxp.host.name : 'Browser';

  switch (product) {
    case 'Illustrator':
      addIllustratorStyles();

      if (window.navigator.platform === 'darwin') {
        addIllustratorMacOverride();
      }

      break;

    case 'Photoshop':
      addPhotoshopStyles();
      break;

    default:
      return null;
  }
}

function addIllustratorMacOverride() {
  let css = `.react-spectrum-provider:lang(zh-Hant) .spectrum-Menu-item {
        font-size: 13px;
    }
    
    .react-spectrum-provider:lang(zh-Hant) .spectrum-Textfield {
        font-size: 13px;
    } 
    
    .react-spectrum-provider:lang(zh-Hans) .spectrum-Menu-item {
        font-size: 13px;
    }
    
    .react-spectrum-provider:lang(zh-Hans) .spectrum-Textfield {
        font-size: 13px;
    }
    `;
  let head = document.head || document.getElementsByTagName('head')[0];
  let style = document.createElement('style');
  head.appendChild(style);
  style.type = 'text/css';
  style.appendChild(document.createTextNode(css));
}

function addIllustratorStyles() {
  let css = `:root {
        --host-background-color-darkest: #323232;
        --host-background-color-dark: #535353;
        --host-background-color-light: #B8B8B8;
        --host-background-color-lightest: #F0F0F0;
    }
    
    .react-spectrum-provider {
        font-family: Lucida Grande, Tahoma, sans-serif !important;
    }
    
    .react-spectrum-provider:lang(ja) {
        font-family: HiraKakuProN-W3, Meiryo, sans-serif !important;
    }
    
    .react-spectrum-provider:lang(zh-Hant) {
        font-family: LiHeiPro, Tahoma, sans-serif !important;
    }
    
    .react-spectrum-provider:lang(zh-Hans) {
        font-family: STXihei, SimSun, sans-serif !important;
    }
    
    .react-spectrum-provider:lang(ko) {
        font-family: AppleGothic, Malgun Gothic, sans-serif !important;
    }
    
    .react-spectrum-provider.spectrum--darkest {
        background-color: #323232;
    }
    
    .react-spectrum-provider.spectrum--dark {
        background-color: #535353;
    }
    
    .react-spectrum-provider.spectrum--light {
        background-color: #B8B8B8;
    }
    
    .react-spectrum-provider.spectrum--lightest {
        background-color: #F0F0F0;
    }
    
    .react-spectrum-provider .spectrum-Menu-item {
        font-size: 10px;
    }
    
    .react-spectrum-provider .spectrum-Textfield {
        font-size: 10px;
    } 
    
    .react-spectrum-provider:lang(ja) .spectrum-Menu-item {
        font-size: 12px;
    }
    
    .react-spectrum-provider:lang(ja) .spectrum-Textfield {
        font-size: 12px;
    } 
    
    .react-spectrum-provider:lang(zh-Hant) .spectrum-Menu-item {
        font-size: 12px;
    }
    
    .react-spectrum-provider:lang(zh-Hant) .spectrum-Textfield {
        font-size: 12px;
    } 
    
    .react-spectrum-provider:lang(zh-Hans) .spectrum-Menu-item {
        font-size: 12px;
    }
    
    .react-spectrum-provider:lang(zh-Hans) .spectrum-Textfield {
        font-size: 12px;
    }
    
    .react-spectrum-provider.spectrum--lightest .spectrum-Menu, .react-spectrum-provider.spectrum--lightest .spectrum-Menu-item, .react-spectrum-provider.spectrum--lightest .spectrum-Popover {
        background-color: rgb(240, 240, 240);
    }
    
    .react-spectrum-provider.spectrum--light .spectrum-Menu, .react-spectrum-provider.spectrum--light .spectrum-Menu-item, .react-spectrum-provider.spectrum--light .spectrum-Popover {
        background-color: rgb(184, 184, 184);
    }
    
    .react-spectrum-provider.spectrum--dark .spectrum-Menu, .react-spectrum-provider.spectrum--dark .spectrum-Menu-item, .react-spectrum-provider.spectrum--dark .spectrum-Popover {
        background-color: rgb(83, 83, 83);
    }
    
    .react-spectrum-provider.spectrum--darkest .spectrum-Menu, .react-spectrum-provider.spectrum--darkest .spectrum-Menu-item, .react-spectrum-provider.spectrum--darkest .spectrum-Popover {
        background-color: rgb(50, 50, 50);
    }
    
    .react-spectrum-provider.spectrum--lightest .spectrum-Menu-item:hover {
        background-color: rgb(220, 220, 220);
        color: rgb(72, 72, 72);
    }
    
    .react-spectrum-provider.spectrum--light .spectrum-Menu-item:hover {
        background-color: rgb(167, 167, 167);
        color: rgb(34, 34, 34);
    }
    
    .react-spectrum-provider.spectrum--dark .spectrum-Menu-item:hover {
        background-color: rgb(95, 95, 95);
        color: rgb(255, 255, 255);
    }
    
    .react-spectrum-provider.spectrum--darkest .spectrum-Menu-item:hover {
        background-color: rgb(62, 62, 62);
        color: rgb(205, 205, 205);
    }
    
    .react-spectrum-provider.spectrum--lightest .spectrum-Textfield, .react-spectrum-provider.spectrum--lightest .spectrum-Textfield .inputText {
        background-color: rgb(255, 255, 255) !important;
        color: rgb(72, 72, 72);
    }
    
    .react-spectrum-provider.spectrum--light .spectrum-Textfield, .react-spectrum-provider.spectrum--light .spectrum-Textfield .inputText {
        background-color: rgb(226, 226, 226) !important;
        color: rgb(34, 34, 34);
    }
    
    .react-spectrum-provider.spectrum--dark .spectrum-Textfield, .react-spectrum-provider.spectrum--dark .spectrum-Textfield .inputText {
        background-color: rgb(255, 255, 255) !important;
        color: rgb(75, 75, 75);
    }
    
    .react-spectrum-provider.spectrum--darkest .spectrum-Textfield, .react-spectrum-provider.spectrum--darkest .spectrum-Textfield .inputText {
        background-color: rgb(252, 252, 252) !important;
        color: rgb(42, 42, 42);
    }
    `;
  let head = document.head || document.getElementsByTagName('head')[0];
  let style = document.createElement('style');
  head.appendChild(style);
  style.type = 'text/css';
  style.appendChild(document.createTextNode(css));
}

function addPhotoshopStyles() {
  let css = `
    
    .react-spectrum-provider {
        background-color: var(--uxp-host-background-color);
    }
    
    .react-spectrum-provider .spectrum-Menu-item, .react-spectrum-provider .spectrum-Textfield {
        font-size: 10px;
        color: var(--uxp-host-text-color);
    }
    
    .react-spectrum-provider .spectrum-Menu, .react-spectrum-provider .spectrum-Menu-item, .react-spectrum-provider .spectrum-Popover {
        background-color: var(--uxp-host-background-color);
    }
    
    .react-spectrum-provider .spectrum-Menu-item:hover {
        background-color: var(--uxp-host-link-text-color);
        color: #FFFFFF;
    }

    .react-spectrum-provider .spectrum-Textfield, .react-spectrum-provider .spectrum-Textfield .inputText {
        background-color: var(--uxp-host-background-color) !important;
    }
    
    `;
  let head = document.head || document.getElementsByTagName('head')[0];
  let style = document.createElement('style');
  head.appendChild(style);
  style.type = 'text/css';
  style.appendChild(document.createTextNode(css));
}

/***/ }),

/***/ "Zxgi":
/***/ (function(module, exports, __webpack_require__) {

var global = __webpack_require__("5T2Y");

var core = __webpack_require__("WEpk");

var LIBRARY = __webpack_require__("uOPS");

var wksExt = __webpack_require__("zLkG");

var defineProperty = __webpack_require__("2faE").f;

module.exports = function (name) {
  var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});
  if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, {
    value: wksExt.f(name)
  });
};

/***/ }),

/***/ "Zy53":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


exports = module.exports = __webpack_require__("oOsv")['default'];
exports['default'] = exports;

/***/ }),

/***/ "a0xu":
/***/ (function(module, exports) {

var toString = {}.toString;

module.exports = function (it) {
  return toString.call(it).slice(8, -1);
};

/***/ }),

/***/ "a1gu":
/***/ (function(module, exports, __webpack_require__) {

var _typeof = __webpack_require__("cDf5")["default"];

var assertThisInitialized = __webpack_require__("PJYZ");

function _possibleConstructorReturn(self, call) {
  if (call && (_typeof(call) === "object" || typeof call === "function")) {
    return call;
  } else if (call !== void 0) {
    throw new TypeError("Derived constructors may only return object or undefined");
  }

  return assertThisInitialized(self);
}

module.exports = _possibleConstructorReturn;
module.exports["default"] = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "a375":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* unused harmony export ADOBE_SERVICE_ENDPOINTS */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return DEFAULTS; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "q", function() { return ROOT_FOLDER_PATH; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ARCHIVE_FOLDER_PATH; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "s", function() { return SHARED_WITH_YOU_PATH; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return CANVAS_MIMETYPE; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "i", function() { return FOLDER_MIMETYPE; });
/* unused harmony export RAPI_FOLDER_MIMETYPE */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "j", function() { return FOLDER_MIMETYPES; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return DEFAULT_TOOLTIP_DELAY; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "l", function() { return INGEST_MAX_QUEUED_EVENTS; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "k", function() { return INGEST_DEBOUNCE_VALUE; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "m", function() { return INGEST_PROJECT_VALUE; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "n", function() { return MAX_RECENTS; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return BYTE_CONVERSION_BASE; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "o", function() { return MINIMUM_ACCEPTED_TIMEOUT; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return FOCUS_ITEM_CLASS; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return ENTER_KEY_CODE; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "t", function() { return SPACE_KEY_CODE; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "p", function() { return ModeType; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return EmptyViewType; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "u", function() { return Themes; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "r", function() { return SAMLogLevel; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "v", function() { return ViewMode; });
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
const ADOBE_SERVICE_ENDPOINTS = {
    hosts: {
        prod: {
            search: 'adobesearch.adobe.io',
            storage: 'cc-api-storage.adobe.io',
        },
        stage: {
            search: 'adobesearch-stage.adobe.io',
            storage: 'cc-api-storage-stage.adobe.io',
        },
    },
    protocol: 'https',
};
const DEFAULTS = {
    LOCALE: 'en',
    MESSAGES: {},
    SERVICE_ENVIRONMENT: 'stage',
};
const ROOT_FOLDER_PATH = 'cloud-content';
const ARCHIVE_FOLDER_PATH = 'cloud-content-archive';
// SHARED_WITH_YOU_PATH only used for host apps that use routing, like CCD
const SHARED_WITH_YOU_PATH = 'shared-with-you';
const CANVAS_MIMETYPE = 'application/vnd.adobe.hz.canvas+dcx';
const FOLDER_MIMETYPE = 'application/vnd.adobe.directory+json';
const RAPI_FOLDER_MIMETYPE = 'application/vnd.adobecloud.directory+json';
const FOLDER_MIMETYPES = [FOLDER_MIMETYPE, RAPI_FOLDER_MIMETYPE];
const DEFAULT_TOOLTIP_DELAY = 500;
const INGEST_MAX_QUEUED_EVENTS = 500;
const INGEST_DEBOUNCE_VALUE = 5000;
const INGEST_PROJECT_VALUE = 'cdo-service';
const MAX_RECENTS = 15;
// matching Assets Web 'BYTE_CONVERSION_BASE'
// (https://git.corp.adobe.com/CCX/assets/blob/kodiak/src/utils/byteConversion.tsx)
const BYTE_CONVERSION_BASE = 1024;
/**
 * The setTimeout amount for this component.
 */
const MINIMUM_ACCEPTED_TIMEOUT = 100;
const FOCUS_ITEM_CLASS = 'focusItem';
const ENTER_KEY_CODE = 13;
const SPACE_KEY_CODE = 32;
var ModeType;
(function (ModeType) {
    ModeType["organizer"] = "organizer";
    ModeType["open"] = "open";
    ModeType["relink"] = "relink";
    ModeType["saveAs"] = "saveAs";
    ModeType["saveToFolder"] = "saveToFolder";
    ModeType["linkAssets"] = "linkAssets";
    ModeType["place"] = "place";
    ModeType["placeLinkOrEmbed"] = "placeLinkOrEmbed";
    ModeType["move"] = "move";
})(ModeType || (ModeType = {}));
var EmptyViewType;
(function (EmptyViewType) {
    EmptyViewType["unfilteredEmpty"] = "trueEmpty";
    EmptyViewType["filteredEmpty"] = "empty";
})(EmptyViewType || (EmptyViewType = {}));
/* host app theme names */
var Themes;
(function (Themes) {
    Themes["light"] = "light";
    Themes["lightest"] = "lightest";
    Themes["dark"] = "dark";
    Themes["darkest"] = "darkest";
})(Themes || (Themes = {}));
/* SAM log levels */
var SAMLogLevel;
(function (SAMLogLevel) {
    SAMLogLevel[SAMLogLevel["Off"] = 0] = "Off";
    SAMLogLevel[SAMLogLevel["Medium"] = 1] = "Medium";
    SAMLogLevel[SAMLogLevel["High"] = 2] = "High";
})(SAMLogLevel || (SAMLogLevel = {}));
var ViewMode;
(function (ViewMode) {
    ViewMode["List"] = "list";
    ViewMode["Grid"] = "grid";
})(ViewMode || (ViewMode = {}));


/***/ }),

/***/ "a413":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


exports.__esModule = true;
exports.default = removeStyle;

function removeStyle(node, key) {
  return 'removeProperty' in node.style ? node.style.removeProperty(key) : node.style.removeAttribute(key);
}

module.exports = exports["default"];

/***/ }),

/***/ "a6hi":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("grWt"),
      24: __webpack_require__("LOp4")
    }
  }));
};

WrappedIcon.displayName = 'FileAdd';
exports.default = WrappedIcon;

/***/ }),

/***/ "aETk":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _createClass = function () {
  function defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i];
      descriptor.enumerable = descriptor.enumerable || false;
      descriptor.configurable = true;
      if ("value" in descriptor) descriptor.writable = true;
      Object.defineProperty(target, descriptor.key, descriptor);
    }
  }

  return function (Constructor, protoProps, staticProps) {
    if (protoProps) defineProperties(Constructor.prototype, protoProps);
    if (staticProps) defineProperties(Constructor, staticProps);
    return Constructor;
  };
}();
/**
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe Inc. and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe Inc.
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Inc.
 */


var _isomorphicFetch = __webpack_require__("LpSC");

var _isomorphicFetch2 = _interopRequireDefault(_isomorphicFetch);

var _es6Symbol = __webpack_require__("HEoz");

var _es6Symbol2 = _interopRequireDefault(_es6Symbol);

var _constants = __webpack_require__("Ijf8");

var _utils = __webpack_require__("VKd2");

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _classCallCheck(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}

var singleton = (0, _es6Symbol2.default)();
var singletonEnforcer = (0, _es6Symbol2.default)();
/**
 * A singleton Client class is used for communicating with the Invitation Service.
 */

var Client = function () {
  /**
   * Constructor for Client.
   * @access private
   * @param {Symbol} enforcer used to ensure we have a singleton
   */
  function Client(enforcer) {
    _classCallCheck(this, Client);

    this._token = null;
    this._environment = 'stage';
    this._apiKey = null;

    if (enforcer !== singletonEnforcer && enforcer !== 'test') {
      throw new Error('Cannot create singleton');
    }
  }
  /**
   * Get the single instance of the Client class.
   * @access private
   * @return {Object} The single instance of the Client class.
   */


  _createClass(Client, [{
    key: 'configure',

    /**
     * Configure the Invitation Service Access Layer.
     * @param {object} settings -
     *    settings.token : The user's authorization token.
     *    settings.environment : The environment (stage, prod).
     *    settings.apiKey : The api key
     * @example <caption>Configuring the Client</caption>
     * Client.instance.configure({
     *   token: 'Bearer <token>',
     *   environment: 'stage',
     *   apiKey: '<apiKey>'
     * });
     * @returns {undefined}
     */
    value: function configure(settings) {
      if (settings.token) {
        this._token = settings.token;
      }

      if (settings.environment) {
        this._environment = settings.environment;
        this._endpoint = (0, _constants.getConfigValue)(this._environment, 'INVITATIONS_SERVICE_ENDPOINT');
      }

      if (settings.apiKey) {
        this._apiKey = settings.apiKey;
      }
    }
    /**
     * Set the authorization token
     * @param {string} token - The new token.
     * @example <caption>Setting the token</caption>
     * Client.instance.token = 'Bearer <token>';
     */

  }, {
    key: 'fetch',

    /**
     * Fetch from Invitation services
     * @access private
     *   @param {Object} options
     *   @param {String} options.type - A unique type to identify the call.
     *   @param {string} options.urlPath - The url path to the API (not including the <domain name>/api/v2/)
     *   @param {string} options.method - GET, POST, PUT, UPDATE, or DELETE.
     *   @param {Object} options.body - The body object.
     *   @param {Object} options.headers - The request headers.
     *   @param {Boolean} options.returnRaw - boolean whether to return the raw response to the client or not
     * @return {Promise} A promise that calls a given url
     */
    value: function fetch() {
      var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
      var body = options.body,
          headers = options.headers,
          method = options.method,
          returnRaw = options.returnRaw,
          type = options.type,
          urlPath = options.urlPath; // Check if we have a token

      if (!this._token) {
        throw new Error('Authorization not configured. Please set the bearer token before calling this method.');
      }

      if (!this._apiKey) {
        throw new Error('API key not configured. Please set apiKey before calling this method.');
      } // Setup the default headers


      var _headers = {
        'Content-Type': 'application/json',
        'X-API-Key': this._apiKey,
        'Authorization': this._token.indexOf('Bearer ') > -1 ? this._token : 'Bearer ' + this._token,
        'If-Modified-Since': Date.now()
      }; // Setup the method (or default)

      var curMethod = options.method || 'GET';

      var checkStatus = function checkStatus(response) {
        // For getCapabilities call, we don't return an error.
        // For the rest, we check the status.
        if (returnRaw || type === 'invitations.create' || response.status >= 200 && response.status < 304) {
          return response;
        } else {
          var error = new Error(response.statusText);
          error.response = response;
          throw error;
        }
      };

      var parseJSON = function parseJSON(response) {
        if (returnRaw) {
          return response;
        }

        return new Promise(function (resolve, reject) {
          // If there are cases when headers needs to be returned, this is the place to extract/resolve it.
          if (method === 'DELETE' || method === 'HEAD') {
            // No body in response to parse for
            return resolve(response); // Return the json part
          } else {
            response.json().then(function (data) {
              resolve(data);
            });
          }
        });
      }; // If the urlPath contains the endpoint, only use the endpoint. This is useful for following the
      // _links.next.href for pagination.


      var fetchUrl = urlPath.startsWith(this._endpoint) ? urlPath : this._endpoint + urlPath;
      return (0, _isomorphicFetch2.default)(fetchUrl, {
        method: curMethod,
        headers: _headers,
        body: body ? JSON.stringify(body) : undefined
      }).then(checkStatus).then(parseJSON);
    }
    /**
     * fetchRaw - fetch method for non-invitation end points
     * @param  {String} [url=''] - request url that fetch will use.
     * @param  {String} [method='POST'] - the menthod to use.
     * @return {Object} - fetch results after responseHandler results
     */

  }, {
    key: 'fetchRaw',
    value: function fetchRaw() {
      var url = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
      var method = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'POST';
      var headers = {
        accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
        'content-type': 'application/x-www-form-urlencoded;multipart/form-data;text/plain',
        'Authorization': this._token.indexOf('Bearer ') > -1 ? this._token : 'Bearer ' + this._token
      };
      var params = {
        headers: headers,
        method: method
      };
      return (0, _isomorphicFetch2.default)(url, headers).then(_utils.responseHandler);
    }
  }, {
    key: 'token',
    set: function set(token) {
      this._token = token;
    }
    /**
     * Get the token
     * @return {string} The current token
     * @example <caption>Get the token</caption>
     * let token = Client.instance.token;
     */
    ,
    get: function get() {
      return this._token;
    }
    /**
     * Set the api key
     * @param {string} apiKey - The new key.
     */

  }, {
    key: 'apiKey',
    set: function set(apiKey) {
      this._apiKey = apiKey;
    }
    /**
     * Get the api key
     * @return {string} The current api key
     * @example <caption>Get the api key</caption>
     * let apiKey = Client.instance.apiKey;
     */
    ,
    get: function get() {
      return this._apiKey;
    }
    /**
     * Set the environment.
     * @param {string} environment - The new environment
     * @example <caption>Setting the environment</caption>
     * Client.instance.environment = 'stage';
     */

  }, {
    key: 'environment',
    set: function set(environment) {
      var acceptedEnvironments = ['stage', 'prod'];
      var acceptedEnvironmentsString = ''; // Create the string based on acceptedEnvironments.

      acceptedEnvironments.forEach(function (acceptedEnvironment, index) {
        var endString = index + 1 === acceptedEnvironments.length ? '' : ', ';
        acceptedEnvironmentsString += acceptedEnvironment + endString;
      }); // If the value specified is not accepted, throw an error.

      if (acceptedEnvironments.indexOf(environment) === -1) {
        throw new Error('Setting the environment to ' + environment + ' is not accepted. Acceptable values are ' + acceptedEnvironmentsString);
      } // Set the environment variable


      this._environment = environment;
      this._endpoint = (0, _constants.getConfigValue)(this._environment, 'INVITATIONS_SERVICE_ENDPOINT');
    }
    /**
     * Get the environment
     * @return {string} The current environment
     * @example <caption>Get the environment</caption>
     * let environment = Client.instance.environment;
     */
    ,
    get: function get() {
      return this._environment;
    }
  }], [{
    key: 'instance',
    get: function get() {
      if (!this[singleton]) {
        this[singleton] = new Client(singletonEnforcer);
      }

      return this[singleton];
    }
  }]);

  return Client;
}();
/**
 * Exports the Client class.
 */


exports.default = Client;
module.exports = exports['default'];

/***/ }),

/***/ "aGJD":
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/*
Copyright (c) 2014, Yahoo! Inc. All rights reserved.
Copyrights licensed under the New BSD License.
See the accompanying LICENSE file for terms.
*/

/* jslint esnext: true */


var src$utils$$ = __webpack_require__("JbWX"); // Purposely using the same implementation as the Intl.js `Intl` polyfill.
// Copyright 2013 Andy Earnshaw, MIT License


var realDefineProp = function () {
  try {
    return !!Object.defineProperty({}, 'a', {});
  } catch (e) {
    return false;
  }
}();

var es3 = !realDefineProp && !Object.prototype.__defineGetter__;
var defineProperty = realDefineProp ? Object.defineProperty : function (obj, name, desc) {
  if ('get' in desc && obj.__defineGetter__) {
    obj.__defineGetter__(name, desc.get);
  } else if (!src$utils$$.hop.call(obj, name) || 'value' in desc) {
    obj[name] = desc.value;
  }
};

var objCreate = Object.create || function (proto, props) {
  var obj, k;

  function F() {}

  F.prototype = proto;
  obj = new F();

  for (k in props) {
    if (src$utils$$.hop.call(props, k)) {
      defineProperty(obj, k, props[k]);
    }
  }

  return obj;
};

exports.defineProperty = defineProperty, exports.objCreate = objCreate;

/***/ }),

/***/ "aHM1":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("path", {
  d: "M29.585 29.5c.249.25.417.583 0 .917l-5.168 3.333c-.417.25-.583.083-.75-.334l-6.416-11.168L8.833 31.5c-.083.167-.334.333-.583 0l-4-4.167c-.417-.25-.334-.5 0-.75l9.5-7.917L2.917 14.58c-.168 0-.417-.333-.251-.75L5.5 8.164A.439.439 0 0 1 6.25 8l9.5 6.167L16.335 2a.438.438 0 0 1 .5-.5l6.917.916c.417 0 .5.167.417.583l-3.25 11.917 11-3.333c.249-.167.5-.167.666.333l1.084 6.167c.083.417 0 .583-.334.583l-11.5.917z"
}));

/***/ }),

/***/ "aHq5":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("path", {
  d: "M36.917 9.289a24.851 24.851 0 0 0-5.379.593 1.429 1.429 0 0 1-1.7-1.418V6.809a1.978 1.978 0 0 0-1.509-1.945 25.515 25.515 0 0 0-5.579-.614A25.048 25.048 0 0 0 10 7.712v19.832a24.98 24.98 0 0 1 12.765-3.461 1.44 1.44 0 0 1 1.4 1.439v3.807a2.01 2.01 0 0 0 2.843 1.812 25.245 25.245 0 0 1 14.637-1.569A1.982 1.982 0 0 0 44 27.619V11.848A1.978 1.978 0 0 0 42.491 9.9a25.515 25.515 0 0 0-5.574-.611z"
}), React.createElement("rect", {
  height: "42",
  rx: "1",
  ry: "1",
  width: "4",
  x: "2",
  y: "4"
}));

/***/ }),

/***/ "aJa9":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _autobindDecorator = _interopRequireDefault(__webpack_require__("gKdT"));

var _events = __webpack_require__("mdZ3");

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _icon = __webpack_require__("vo16");

var _convertUnsafeMethod = _interopRequireDefault(__webpack_require__("8nyd"));

var _createId = _interopRequireDefault(__webpack_require__("b7KY"));

var _filterDOMProps = _interopRequireDefault(__webpack_require__("Cv/Q"));

var _focusRing = _interopRequireDefault(__webpack_require__("PBY+"));

var _propTypes = _interopRequireDefault(__webpack_require__("17x9"));

var _react = _interopRequireWildcard(__webpack_require__("q1tI"));

var _reactDom = _interopRequireDefault(__webpack_require__("i8i4"));

var _SideNav = _interopRequireDefault(__webpack_require__("OZPJ"));

const _excluded = ["header", "className", "children", "disabled", "isMultiLevel", "renderLink", "id", "value", "_isSelected", "_nestedNavValue", "manageTabIndex", "onSelect", "ariaLevel", "hidden"];

var _class, _class2, _temp;

function _getRequireWildcardCache(nodeInterop) {
  if (typeof WeakMap !== "function") return null;
  var cacheBabelInterop = new WeakMap();
  var cacheNodeInterop = new WeakMap();
  return (_getRequireWildcardCache = function (nodeInterop) {
    return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
  })(nodeInterop);
}

function _interopRequireWildcard(obj, nodeInterop) {
  if (!nodeInterop && obj && obj.__esModule) {
    return obj;
  }

  if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
    return {
      default: obj
    };
  }

  var cache = _getRequireWildcardCache(nodeInterop);

  if (cache && cache.has(obj)) {
    return cache.get(obj);
  }

  var newObj = {};
  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;

  for (var key in obj) {
    if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
      var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;

      if (desc && (desc.get || desc.set)) {
        Object.defineProperty(newObj, key, desc);
      } else {
        newObj[key] = obj[key];
      }
    }
  }

  newObj.default = obj;

  if (cache) {
    cache.set(obj, newObj);
  }

  return newObj;
}

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

function ownKeys(object, enumerableOnly) {
  var keys = Object.keys(object);

  if (Object.getOwnPropertySymbols) {
    var symbols = Object.getOwnPropertySymbols(object);

    if (enumerableOnly) {
      symbols = symbols.filter(function (sym) {
        return Object.getOwnPropertyDescriptor(object, sym).enumerable;
      });
    }

    keys.push.apply(keys, symbols);
  }

  return keys;
}

function _objectSpread(target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i] != null ? arguments[i] : {};

    if (i % 2) {
      ownKeys(Object(source), true).forEach(function (key) {
        _defineProperty(target, key, source[key]);
      });
    } else if (Object.getOwnPropertyDescriptors) {
      Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
    } else {
      ownKeys(Object(source)).forEach(function (key) {
        Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
      });
    }
  }

  return target;
}

function _defineProperty(obj, key, value) {
  if (key in obj) {
    Object.defineProperty(obj, key, {
      value: value,
      enumerable: true,
      configurable: true,
      writable: true
    });
  } else {
    obj[key] = value;
  }

  return obj;
}

const NOOP = () => {};

const FOCUSABLE_SIDENAV_ITEMLINK_SELECTOR = '.spectrum-SideNav-itemLink[tabIndex]';
/**
 * An item in a sidenav
 */

let SideNavItem = (0, _convertUnsafeMethod.default)(_class = (0, _autobindDecorator.default)(_class = (0, _focusRing.default)(_class = (_temp = _class2 = class SideNavItem extends _react.Component {
  constructor(props) {
    super(props);
    this.state = {
      expanded: this.props.defaultExpanded || this.props.expanded,
      focused: false
    };

    this.setSideNavItemRef = s => this.sideNavItemRef = s;

    this.id = (0, _createId.default)();
  }

  get hasNestedNav() {
    const {
      children
    } = this.props;
    return children && typeof children !== 'string';
  }

  UNSAFE_componentWillReceiveProps(nextProps) {
    const {
      expanded
    } = nextProps;

    if (expanded !== this.props.expanded) {
      this.setState(prevState => _objectSpread(_objectSpread({}, prevState), {}, {
        expanded
      }));
    }
  }

  handleClick(e) {
    this.props.onClick(e);
    this.onSelectFocused(e);
  }

  onSelectFocused(e) {
    const {
      onSelect,
      value,
      expanded,
      href = e.target ? e.target.href : undefined
    } = this.props;
    let isKeyDown = e.type === 'keydown';

    if (!href || isKeyDown) {
      // When there is no href or if triggered from a keyboard event,
      // preventDefault and stopPropagation.
      e.preventDefault();
      e.stopPropagation(); // If Enter of Space key pressed, trigger click event on event target

      if (isKeyDown && (e.key === 'Enter' || e.key === ' ')) {
        e.target.click();
        return;
      }
    }

    if (expanded === undefined) {
      this.setState(prevState => _objectSpread(_objectSpread({}, prevState), {}, {
        expanded: !prevState.expanded
      }));
    }

    onSelect(value, e);
  }
  /**
   * Keyboard event handler to interperet ArrowLeft/ArrowRight to collapse/expand section in multiLevel variant.
   * @param {KeyboardEvent} e Keyboard event
   */


  onKeyDown(e) {
    const {
      isMultiLevel
    } = this.props;
    const {
      expanded
    } = this.state;
    const isExpandableItem = isMultiLevel && this.hasNestedNav;

    switch (e.key) {
      case 'ArrowLeft':
      case 'Left':
        if (isExpandableItem) {
          if (expanded) {
            if (this.sideNavItemRef && this.sideNavItemRef.querySelector(FOCUSABLE_SIDENAV_ITEMLINK_SELECTOR) === document.activeElement) {
              this.onSelectFocused(e);
            } else {
              e.preventDefault();
              e.stopPropagation();
            }

            this.focus();
          }
        }

        break;

      case 'ArrowRight':
      case 'Right':
        if (isExpandableItem) {
          if (!expanded) {
            this.onSelectFocused(e);
          } else if (this.sideNavItemRef) {
            const links = Array.from(this.sideNavItemRef.querySelectorAll(FOCUSABLE_SIDENAV_ITEMLINK_SELECTOR));

            if (links.indexOf(e.target) === 0) {
              links[1].focus();
            }
          }
        }

        break;
    }
  }

  onFocus() {
    this.setState({
      focused: true
    });
  }

  onBlur() {
    this.setState({
      focused: false
    });
  }

  focus() {
    if (this.sideNavItemRef) {
      const link = this.sideNavItemRef.querySelector(FOCUSABLE_SIDENAV_ITEMLINK_SELECTOR);
      link.focus();
    }
  }

  getDescendantId(postfix) {
    const {
      id = this.id
    } = this.props;
    return postfix ? `${id}-${postfix}` : id;
  }

  sideNavStyle() {
    return {};
  }

  renderLink(label, tabIndex) {
    let {
      hidden,
      id = this.id,
      icon,
      disabled,
      href,
      renderLink,
      isMultiLevel,
      target,
      _isSelected,
      'aria-current': ariaCurrent
    } = this.props;
    const {
      expanded,
      focused
    } = this.state;
    const isMultiLevelHeading = this.hasNestedNav && isMultiLevel;
    let role = disabled || !href ? 'link' : undefined;
    const props = {
      href: disabled ? undefined : href,
      onClick: disabled ? undefined : this.handleClick,
      onFocus: disabled ? undefined : this.onFocus,
      onBlur: disabled ? undefined : this.onBlur,
      tabIndex: disabled ? undefined : tabIndex,
      className: (0, _classnames.default)('spectrum-SideNav-itemLink', {
        'is-selected': _isSelected,
        'is-disabled': disabled,
        'is-focused': focused,
        'is-hidden': hidden
      }),
      id,
      role,
      'aria-disabled': disabled || undefined,
      'aria-expanded': isMultiLevelHeading ? expanded : undefined,
      'aria-controls': isMultiLevelHeading && expanded ? this.getDescendantId('child-list') : undefined,
      'aria-current': _isSelected && !isMultiLevelHeading ? ariaCurrent : undefined,
      target: disabled || !href ? undefined : target
    };

    if (renderLink) {
      return renderLink(props);
    }

    return /*#__PURE__*/_react.default.createElement("a", props, (0, _icon.cloneIcon)(icon, {
      className: 'spectrum-SideNav-itemIcon',
      size: 'S'
    }), label);
  }

  render() {
    let _this$props = this.props,
        {
      header,
      className,
      children,
      disabled,
      isMultiLevel,
      renderLink,
      id = this.id,
      value,
      _isSelected,
      _nestedNavValue,
      manageTabIndex,
      onSelect,
      ariaLevel,
      hidden
    } = _this$props,
        otherProps = _objectWithoutProperties(_this$props, _excluded);

    const {
      expanded,
      focused
    } = this.state;
    let {
      label,
      tabIndex = 0
    } = this.props;

    if (!label && !header) {
      label = children;
    }

    let isCurrent = !!_nestedNavValue && value === _nestedNavValue;

    if (isMultiLevel || manageTabIndex) {
      tabIndex = isCurrent ? tabIndex : -1;
    }

    delete otherProps.label;
    delete otherProps.target;
    delete otherProps['aria-current'];
    return /*#__PURE__*/_react.default.createElement("li", _extends({
      className: (0, _classnames.default)('spectrum-SideNav-item', {
        'is-selected': _isSelected,
        'is-disabled': disabled,
        'is-focused': focused
      }, className),
      onKeyDown: disabled ? undefined : (0, _events.chain)(this.onKeyDown, _events.interpretKeyboardEvent.bind(this)),
      ref: this.setSideNavItemRef
    }, (0, _filterDOMProps.default)(otherProps)), (label || renderLink) && this.renderLink(label, tabIndex, isMultiLevel), header && /*#__PURE__*/_react.default.createElement("h2", {
      className: "spectrum-SideNav-heading",
      id: this.getDescendantId('header')
    }, header), this.hasNestedNav && /*#__PURE__*/_react.default.createElement(_SideNav.default, {
      isNested: true,
      variant: isMultiLevel ? 'multiLevel' : undefined,
      id: this.getDescendantId('child'),
      "aria-labelledby": header ? this.getDescendantId('header') : id,
      ariaLevel: ariaLevel + 1,
      hidden: hidden || (isMultiLevel ? !expanded : undefined),
      value: _nestedNavValue,
      onSelect: onSelect
    }, children));
  }

}, _class2.propTypes = {
  /**
   * Custom className of sidenav to apply
   */
  className: _propTypes.default.string,

  /**
   * Whether the item is disabled
   */
  disabled: _propTypes.default.bool,

  /**
   * The label to display in the item
   */
  label: _propTypes.default.string,

  /**
   * The value of item
   */
  value: _propTypes.default.string,

  /**
   * The href of item
   */
  href: _propTypes.default.string,

  /**
   * The target type for item link
   */
  target: _propTypes.default.string,

  /**
   * Icon for item
   */
  icon: _propTypes.default.node,

  /**
   * Whether item should represent the current page within a set of pages or current location within an environment or context when selected.
   * See <a href="https://www.w3.org/TR/wai-aria-1.1/#aria-current" class="spectrum-Link">WAI-ARIA 1.1 definition of `aria-current (state)`</a>
   * attribute.
   */
  'aria-current': _propTypes.default.oneOf(['page', 'location']),

  /**
   * Whether the item is expanded in case of multi-level sidenav item
   */
  expanded: _propTypes.default.bool,

  /**
   * Whether the item is expanded at initialization in case of multi-level sidenav item
   */
  defaultExpanded: _propTypes.default.bool,

  /**
   * A function that returns a href wrapper component.
   * Useful in providing custom href component(eg. Link from react-router-dom).
   *
   * ```js
   *  <SideNavItem renderLink={(props) => <Link {...props} to="/">Foo</Link>}>
   *  </SideNavItem>
   * ```
   */
  renderLink: _propTypes.default.func,

  /**
   * A click handler for the item
   */
  onClick: _propTypes.default.func,

  /**
   * A select handler for the item
   */
  onSelect: _propTypes.default.func
}, _class2.defaultProps = {
  'aria-current': 'page',
  disabled: false,
  target: '_self',
  onSelect: NOOP,
  onClick: NOOP
}, _temp)) || _class) || _class) || _class;

exports.default = SideNavItem;

/***/ }),

/***/ "aLAm":
/***/ (function(module, exports) {



/***/ }),

/***/ "aPfg":
/***/ (function(module, exports, __webpack_require__) {

"use strict";
 // https://tc39.github.io/proposal-setmap-offrom/

var $export = __webpack_require__("Y7ZC");

var aFunction = __webpack_require__("eaoh");

var ctx = __webpack_require__("2GTP");

var forOf = __webpack_require__("oioR");

module.exports = function (COLLECTION) {
  $export($export.S, COLLECTION, {
    from: function from(source
    /* , mapFn, thisArg */
    ) {
      var mapFn = arguments[1];
      var mapping, A, n, cb;
      aFunction(this);
      mapping = mapFn !== undefined;
      if (mapping) aFunction(mapFn);
      if (source == undefined) return new this();
      A = [];

      if (mapping) {
        n = 0;
        cb = ctx(mapFn, arguments[2], 2);
        forOf(source, false, function (nextItem) {
          A.push(cb(nextItem, n++));
        });
      } else {
        forOf(source, false, A.push, A);
      }

      return new this(A);
    }
  });
};

/***/ }),

/***/ "aTew":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.calculatePositionInternal = calculatePositionInternal;
exports.default = calculatePosition;

var _style = _interopRequireDefault(__webpack_require__("sKrG"));

var _offset = _interopRequireDefault(__webpack_require__("A63a"));

var _position = _interopRequireDefault(__webpack_require__("fpU1"));

var _scrollLeft = _interopRequireDefault(__webpack_require__("+i7v"));

var _scrollTop = _interopRequireDefault(__webpack_require__("ZfQF"));

var _ownerDocument = _interopRequireDefault(__webpack_require__("o43f"));

var _reactDom = _interopRequireDefault(__webpack_require__("i8i4"));

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}
/*************************************************************************
* ADOBE CONFIDENTIAL
* ___________________
*
* Copyright 2019 Adobe
* All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains
* the property of Adobe and its suppliers, if any. The intellectual
* and technical concepts contained herein are proprietary to Adobe
* and its suppliers and are protected by all applicable intellectual
* property laws, including trade secret and copyright laws.
* Dissemination of this information or reproduction of this material
* is strictly forbidden unless prior written permission is obtained
* from Adobe.
**************************************************************************/


const AXIS = {
  top: 'top',
  bottom: 'top',
  left: 'left',
  right: 'left',
  center: 'left'
};
const FLIPPED_DIRECTION = {
  top: 'bottom',
  bottom: 'top',
  left: 'right',
  right: 'left'
};
const CROSS_AXIS = {
  top: 'left',
  left: 'top'
};
const AXIS_SIZE = {
  top: 'height',
  left: 'width'
};
const PARSED_PLACEMENT_CACHE = {};

function getContainerDimensions(containerNode) {
  let width,
      height,
      top = 0,
      left = 0;
  let scroll = {};

  const containerDOMNode = _reactDom.default.findDOMNode(containerNode);

  if (containerDOMNode.tagName === 'BODY') {
    width = window.innerWidth || containerNode.clientWidth;
    height = window.innerHeight || containerNode.clientHeight;
    scroll.top = (0, _scrollTop.default)((0, _ownerDocument.default)(containerDOMNode).documentElement) || (0, _scrollTop.default)(containerDOMNode);
    scroll.left = (0, _scrollLeft.default)((0, _ownerDocument.default)(containerDOMNode).documentElement) || (0, _scrollLeft.default)(containerDOMNode);
  } else {
    ({
      width,
      height,
      top,
      left
    } = (0, _offset.default)(containerDOMNode));
    scroll.top = (0, _scrollTop.default)(containerDOMNode);
    scroll.left = (0, _scrollLeft.default)(containerDOMNode);
  }

  return {
    width,
    height,
    scroll,
    top,
    left
  };
}

function getDelta(axis, offset, size, containerDimensions, padding) {
  const containerScroll = containerDimensions.scroll[axis];
  const containerHeight = containerDimensions[AXIS_SIZE[axis]];
  const startEdgeOffset = offset - padding - containerScroll;
  const endEdgeOffset = offset + padding - containerScroll + size;

  if (startEdgeOffset < 0) {
    return -startEdgeOffset;
  } else if (endEdgeOffset > containerHeight) {
    return Math.max(containerHeight - endEdgeOffset, -startEdgeOffset);
  } else {
    return 0;
  }
}

function shouldFlip(axis, offset, size, padding, placement, flipContainerDimensions, containerOffsetWithBoundary) {
  const containerScroll = flipContainerDimensions.scroll[axis];
  const containerHeight = flipContainerDimensions[AXIS_SIZE[axis]];
  const startEdgeOffset = containerOffsetWithBoundary[axis] + offset - padding - containerScroll;
  const endEdgeOffset = containerOffsetWithBoundary[axis] + offset + padding - containerScroll + size;

  if (startEdgeOffset < 0 && (placement === 'top' || placement === 'left')) {
    return true;
  } else if (endEdgeOffset > containerHeight && (placement === 'bottom' || placement === 'right')) {
    return true;
  } else {
    return false;
  }
}

function getMargins(node) {
  const style = window.getComputedStyle(node);
  return {
    top: parseInt(style.marginTop, 10) || 0,
    bottom: parseInt(style.marginBottom, 10) || 0,
    left: parseInt(style.marginLeft, 10) || 0,
    right: parseInt(style.marginRight, 10) || 0
  };
}

function parsePlacement(input) {
  if (PARSED_PLACEMENT_CACHE[input]) {
    return PARSED_PLACEMENT_CACHE[input];
  }

  let [placement, crossPlacement] = input.split(' ');
  let axis = AXIS[placement] || 'right';
  let crossAxis = CROSS_AXIS[axis];

  if (!AXIS[crossPlacement]) {
    crossPlacement = 'center';
  }

  let size = AXIS_SIZE[axis];
  let crossSize = AXIS_SIZE[crossAxis];
  PARSED_PLACEMENT_CACHE[input] = {
    placement,
    crossPlacement,
    axis,
    crossAxis,
    size,
    crossSize
  };
  return PARSED_PLACEMENT_CACHE[input];
}

function computePosition(childOffset, containerDimensions, overlaySize, placementInfo, offset, crossOffset) {
  const {
    placement,
    crossPlacement,
    axis,
    crossAxis,
    size,
    crossSize
  } = placementInfo;
  let position = {};
  position[crossAxis] = childOffset[crossAxis] + crossOffset;

  if (crossPlacement === 'center') {
    position[crossAxis] += (childOffset[crossSize] - overlaySize[crossSize]) / 2;
  } else if (crossPlacement !== crossAxis) {
    position[crossAxis] += childOffset[crossSize] - overlaySize[crossSize];
  } // Ensure overlay sticks to target(ignore for overlays smaller than target)


  if (childOffset[crossSize] < overlaySize[crossSize]) {
    const positionForPositiveSideOverflow = Math.min(position[crossAxis], childOffset[crossAxis]);
    position[crossAxis] = Math.max(positionForPositiveSideOverflow, childOffset[crossAxis] - overlaySize[crossSize] + childOffset[crossSize]);
  }

  if (placement === axis) {
    position[axis] = childOffset[axis] - overlaySize[size] + offset;
  } else {
    position[axis] = childOffset[axis] + childOffset[size] + offset;
  }

  return position;
}

function calculatePositionInternal(placementInput, containerDimensions, childOffset, overlaySize, margins, padding, flip, boundaryDimensions, containerOffsetWithBoundary, offset, crossOffset) {
  let placementInfo = parsePlacement(placementInput);
  const {
    axis,
    size,
    crossAxis,
    crossSize,
    placement,
    crossPlacement
  } = placementInfo;
  let position = computePosition(childOffset, containerDimensions, overlaySize, placementInfo, offset, crossOffset);
  let normalizedOffset = offset; // First check if placement should be flipped

  if (flip && shouldFlip(axis, position[axis], overlaySize[size], padding, placement, boundaryDimensions, containerOffsetWithBoundary)) {
    const flippedPlacementInfo = parsePlacement(`${FLIPPED_DIRECTION[placement]} ${crossPlacement}`);
    const {
      axis,
      size
    } = flippedPlacementInfo;
    const flippedPosition = computePosition(childOffset, containerDimensions, overlaySize, flippedPlacementInfo, -1 * offset, crossOffset); // Check if flipped placement has enough space otherwise flip is not possible

    if (!shouldFlip(axis, flippedPosition[axis], overlaySize[size], padding, FLIPPED_DIRECTION[placement], boundaryDimensions, containerOffsetWithBoundary)) {
      placementInfo = flippedPlacementInfo;
      position = flippedPosition;
      normalizedOffset = -1 * offset;
    }
  }

  let delta = getDelta(crossAxis, position[crossAxis], overlaySize[crossSize], boundaryDimensions, padding);
  position[crossAxis] += delta;
  let maxHeight = Math.max(0, boundaryDimensions.height + boundaryDimensions.top + boundaryDimensions.scroll.top - containerOffsetWithBoundary.top - position.top - margins.top - margins.bottom - padding);
  overlaySize.height = Math.min(overlaySize.height, maxHeight);
  position = computePosition(childOffset, containerDimensions, overlaySize, placementInfo, normalizedOffset, crossOffset);
  delta = delta = getDelta(crossAxis, position[crossAxis], overlaySize[crossSize], boundaryDimensions, padding);
  position[crossAxis] += delta;
  const arrowPosition = {};
  arrowPosition[crossAxis] = childOffset[crossSize] > overlaySize[crossSize] ? null : childOffset[crossAxis] - position[crossAxis] + childOffset[crossSize] / 2;
  return {
    positionLeft: position.left,
    positionTop: position.top,
    maxHeight: maxHeight,
    arrowOffsetLeft: arrowPosition.left,
    arrowOffsetTop: arrowPosition.top,
    placement: placementInfo.placement
  };
}

function calculatePosition(placementInput, overlayNode, target, container, padding, flip, boundariesElement, offset, crossOffset) {
  const isBodyContainer = container.tagName === 'BODY';
  const childOffset = isBodyContainer ? (0, _offset.default)(target) : (0, _position.default)(target, container);

  if (!isBodyContainer) {
    childOffset.top += parseInt((0, _style.default)(target, 'marginTop'), 10) || 0;
    childOffset.left += parseInt((0, _style.default)(target, 'marginLeft'), 10) || 0;
  }

  const overlaySize = (0, _offset.default)(overlayNode);
  const margins = getMargins(overlayNode);
  overlaySize.width += margins.left + margins.right;
  overlaySize.height += margins.top + margins.bottom;
  const containerDimensions = getContainerDimensions(container);
  const boundaryContainer = boundariesElement === 'container' ? container : boundariesElement();
  const boundaryDimensions = getContainerDimensions(boundaryContainer);
  const containerOffsetWithBoundary = boundaryContainer.tagName === 'BODY' ? (0, _offset.default)(container) : (0, _position.default)(container, boundaryContainer);
  return calculatePositionInternal(placementInput, containerDimensions, childOffset, overlaySize, margins, padding, flip, boundaryDimensions, containerOffsetWithBoundary, offset, crossOffset);
}

/***/ }),

/***/ "aW4N":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("bK75"),
      24: __webpack_require__("OmNF")
    }
  }));
};

WrappedIcon.displayName = 'UploadToCloud';
exports.default = WrappedIcon;

/***/ }),

/***/ "aW7e":
/***/ (function(module, exports, __webpack_require__) {

__webpack_require__("wgeU");

__webpack_require__("FlQf");

__webpack_require__("bBy9");

__webpack_require__("JMW+");

__webpack_require__("PBE1");

__webpack_require__("Q/yX");

module.exports = __webpack_require__("WEpk").Promise;

/***/ }),

/***/ "aYdr":
/***/ (function(module, exports) {

/* eslint-disable max-len */
module.exports = {
  'confirmationDialog.dontShowAgain': 'Ne plus afficher',
  'confirmationDialog.confirm.default': 'Continuer',
  'confirmationDialog.cancel.default': 'Annuler',
  'confirmationDialog.learnMore': 'En savoir plus',
  'toast.warning.place': 'Il n’est pas encore possible de placer des documents en ligne liés. Continuez à les intégrer.',
  'toast.warning.placeLinkOrEmbed': 'Les ressources que vous placez sont désormais liées à la version originale par défaut. Cela signifie que si vous la modifiez à un seul endroit, ces changements sont reflétés partout.',
  'toast.warning.saveAs.invalidFormat': 'Désolé, vous ne pouvez pas enregistrer de fichiers {genericFormat} ici. Votre fichier sera enregistré sous {adobeFormat}.',
  'pickerView.recent': 'Récent',
  'pickerView.cloud_docs': 'Vos fichiers',
  'pickerView.shared_with_you': 'Partagé(s) avec vous',
  'pickerView.projects': 'Projets',
  'pickerView.files': 'Fichiers',
  'pickerView.computer': 'Votre ordinateur...',
  'pickerView.saveAsInput': 'Enregistrer sous',
  'pickerView.exportInput': 'Exporter sous',
  'pickerView.sketch_library': 'Convertir la bibliothèque Sketch...',
  'pickerView.error.saveAsOrExport.default': 'Nom de fichier non valide.',
  'pickerView.error.saveAsOrExport.invalidName': 'Désolé, le nom de ce dossier contient un ou plusieurs caractères non valides.',
  'pickerView.error.saveAsOrExport.invalidEnd': 'Un nom ne doit pas se terminer par « . » ni par un espace.',
  'pickerView.error.saveAsOrExport.invalidChar': 'Un nom ne doit pas contenir les caractères suivants : {characters}',
  'pickerView.error.saveAsOrExport.charRestriction': 'Les noms de dossier ne peuvent pas dépasser 200 caractères.',
  'pickerView.error.saveAsOrExport.duplicateName': 'Vous avez déjà un document en ligne ici portant le même nom.',
  'pickerView.error.addALibrary.permission': 'Vous n’avez pas l’autorisation d’ajouter cette bibliothèque.',
  'pickerViewFooter.button.add': 'Ajouter',
  'pickerViewFooter.button.cancel': 'Annuler',
  'pickerViewFooter.button.copy': 'Copier ici',
  'pickerViewFooter.button.move': 'Déplacer ici',
  'pickerViewFooter.button.moveToProject': 'Déplacer ici',
  'pickerViewFooter.button.copyToProject': 'Copier ici',
  'pickerViewFooter.button.choose': 'Sélectionner',
  'pickerViewFooter.button.save': 'Enregistrer',
  'pickerViewFooter.button.switchToOSPicker': 'Sur votre ordinateur',
  'pickerViewFooter.button.save.offline': 'Connexion Internet requise.',
  'pickerViewFooter.button.saveAsCopy': 'Enregistrer',
  'pickerViewFooter.button.export': 'Exporter',
  'pickerViewFooter.button.placeLinkOrEmbed': 'Importer',
  'pickerViewFooter.button.import': 'Importation',
  'pickerViewFooter.checkbox.placeLink': 'Lié',
  'pickerViewFooter.tooltip.placeLink': 'Vous ne pouvez placer cet élément qu’en tant qu’actif lié.',
  'pickerViewFooter.tooltip.placeEmbed': 'Vous ne pouvez placer cette ressource qu’en l’intégrant.',
  'pickerViewFooter.saveAs.format.label': 'Format',
  'pickerViewFooter.button.selectProject': 'Enregistrer',
  'onboardingCdp.title': 'Vous pouvez faire bien plus si vous enregistrez un document en ligne',
  'onboardingCdp.tooltip': 'Si vous enregistrez le document sur votre ordinateur, vous ne pourrez plus utiliser les fonctionnalités du cloud.',
  'onboardingCdp.tooltip.link': 'En savoir plus',
  'onboardingCdp.table.header.saveToCloud': 'Creative Cloud',
  'onboardingCdp.table.header.saveToLocal': 'Sur votre ordinateur',
  'onboardingCdp.button.saveToCloud': 'Enregistrer dans Creative Cloud',
  'onboardingCdp.feature.offline': 'Accès hors ligne',
  'onboardingCdp.feature.syncing': 'Synchronisation sur le cloud avec tous vos appareils',
  'onboardingCdp.feature.autosave': 'Enregistrement automatique de chaque modification',
  'onboardingCdp.feature.versionHistory': 'Historique des versions',
  'onboardingCdp.feature.inviteToEdit': 'Inviter à modifier',
  'onboardingCdp.button.saveToLocal': 'Enregistrer sur votre ordinateur',
  'onboardingCdp.checkbox.doNotShowAgain': 'Ne plus afficher',
  'uap.title.place': 'Placer depuis Creative Cloud',
  'uap.title.import': 'Importer depuis Creative Cloud',
  'uap.title.placeLinkOrEmbed': 'Placer depuis Creative Cloud',
  'uap.title.linkAssets': 'Lier depuis Creative Cloud',
  'uap.title.open': 'Ouvrir depuis Creative Cloud',
  'uap.title.relink': 'Lier depuis Creative Cloud',
  'uap.title.saveAs': 'Enregistrer dans Creative Cloud',
  'uap.title.saveAsCopy': 'Enregistrer dans Creative Cloud',
  'uap.title.saveToFolder': 'Enregistrer dans Creative Cloud',
  'uap.title.export': 'Exporter vers Creative Cloud',
  'uap.title.copy': 'Copier dans Creative Cloud',
  'uap.title.move': 'Déplacer dans Creative Cloud',
  'uap.title.moveToProject': 'Déplacer dans Creative Cloud',
  'uap.title.copyToProject': 'Copier dans Creative Cloud',
  'uap.title.reference': 'Ajouter à Creative Cloud',
  'uap.title.selectProject': 'Enregistrer dans Creative Cloud',
  'move.toSpace.confirm.title': 'L’historique des versions sera supprimé',
  'move.toSpace.confirm.message': 'Le déplacement de ce fichier entraînera la suppression de l’historique des versions. Si vous souhaitez conserver votre historique des versions, faites-en une copie à la place.'
};

/***/ }),

/***/ "aaYb":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, props, _react2.default.createElement("svg", {
    className: "spectrum-UIIcon-ChevronRightMedium"
  }, _react2.default.createElement("path", {
    d: "M5.99 5a1 1 0 0 0-.29-.707L1.717.3A1 1 0 1 0 .3 1.717L3.586 5 .3 8.283A1 1 0 1 0 1.717 9.7L5.7 5.707A1 1 0 0 0 5.99 5z",
    className: "spectrum-UIIcon--medium"
  }), _react2.default.createElement("path", {
    d: "M7.5 6a1 1 0 0 0-.293-.707L2.217.3A1 1 0 1 0 .8 1.717L5.086 6 .8 10.283A1 1 0 1 0 2.217 11.7l4.99-4.99A1 1 0 0 0 7.5 6z",
    className: "spectrum-UIIcon--large"
  })));
};

WrappedIcon.displayName = 'ChevronRightMedium';
exports.default = WrappedIcon;

/***/ }),

/***/ "acin":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Platform; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return isWindows; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return normalizePlatform; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return platformOsVersion; });
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("+Ots");
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/

var Platform;
(function (Platform) {
    Platform["mac"] = "mac";
    Platform["win"] = "win";
    Platform["web"] = "web";
    Platform["unset"] = "unset";
})(Platform || (Platform = {}));
/**
 * Utility for checking if windows
 */
function isWindows() {
    return normalizePlatform(navigator.platform) === Platform.win;
}
/**
 * Get the normalized platform enum based on a provided platform string.
 *
 * @param platformString        platform string to check
 * @return normalized Platform enum.
 */
function normalizePlatform(platformString) {
    if (!platformString) {
        // '' is falsey
        return Platform.unset;
    }
    const platform = platformString.toLowerCase();
    // UXP can return `darwin` when platform is queried by accessing
    // the .navigator property; or global.process.platform however,
    // host data will usually return 'mac' for the platform - so we
    // need to normalize it for use so we dont have multiple checks
    if (platform.indexOf('darwin') > -1 || platform.indexOf('mac') > -1) {
        return Platform.mac;
    }
    if (platform.indexOf('win') > -1 || platform.indexOf('uwp') > -1) {
        return Platform.win;
    }
    return Platform.web;
}
/**
 * Get the platform OS version.
 *
 * @return {String} containing the plaform's OS version.
 */
function platformOsVersion() {
    let osVer = 'Unknown';
    const wdow = window; // get by TypeScript warnings
    if (_utils__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].usingUXP() && wdow && wdow.require) {
        // pull in the UXP 'os' bindings
        osVer = wdow.require('os').release();
    }
    return osVer;
}


/***/ }),

/***/ "adOz":
/***/ (function(module, exports, __webpack_require__) {

__webpack_require__("Zxgi")('asyncIterator');

/***/ }),

/***/ "adU4":
/***/ (function(module, exports, __webpack_require__) {

var assocIndexOf = __webpack_require__("y1pI");
/** Used for built-in method references. */


var arrayProto = Array.prototype;
/** Built-in value references. */

var splice = arrayProto.splice;
/**
 * Removes `key` and its value from the list cache.
 *
 * @private
 * @name delete
 * @memberOf ListCache
 * @param {string} key The key of the value to remove.
 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
 */

function listCacheDelete(key) {
  var data = this.__data__,
      index = assocIndexOf(data, key);

  if (index < 0) {
    return false;
  }

  var lastIndex = data.length - 1;

  if (index == lastIndex) {
    data.pop();
  } else {
    splice.call(data, index, 1);
  }

  --this.size;
  return true;
}

module.exports = listCacheDelete;

/***/ }),

/***/ "adqC":
/***/ (function(module) {

module.exports = JSON.parse("{\"File\":\"檔案\",\"Folder\":\"資料夾\"}");

/***/ }),

/***/ "afKu":
/***/ (function(module, exports, __webpack_require__) {

var exports = module.exports = function SHA(algorithm) {
  algorithm = algorithm.toLowerCase();
  var Algorithm = exports[algorithm];
  if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)');
  return new Algorithm();
};

exports.sha = __webpack_require__("CH9F");
exports.sha1 = __webpack_require__("fnjI");
exports.sha224 = __webpack_require__("cqoG");
exports.sha256 = __webpack_require__("olUY");
exports.sha384 = __webpack_require__("uDfV");
exports.sha512 = __webpack_require__("T9HO");

/***/ }),

/***/ "aqI/":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var hash = __webpack_require__("fZJM");

var utils = __webpack_require__("dlgc");

var assert = __webpack_require__("2j6C");

function HmacDRBG(options) {
  if (!(this instanceof HmacDRBG)) return new HmacDRBG(options);
  this.hash = options.hash;
  this.predResist = !!options.predResist;
  this.outLen = this.hash.outSize;
  this.minEntropy = options.minEntropy || this.hash.hmacStrength;
  this._reseed = null;
  this.reseedInterval = null;
  this.K = null;
  this.V = null;
  var entropy = utils.toArray(options.entropy, options.entropyEnc || 'hex');
  var nonce = utils.toArray(options.nonce, options.nonceEnc || 'hex');
  var pers = utils.toArray(options.pers, options.persEnc || 'hex');
  assert(entropy.length >= this.minEntropy / 8, 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');

  this._init(entropy, nonce, pers);
}

module.exports = HmacDRBG;

HmacDRBG.prototype._init = function init(entropy, nonce, pers) {
  var seed = entropy.concat(nonce).concat(pers);
  this.K = new Array(this.outLen / 8);
  this.V = new Array(this.outLen / 8);

  for (var i = 0; i < this.V.length; i++) {
    this.K[i] = 0x00;
    this.V[i] = 0x01;
  }

  this._update(seed);

  this._reseed = 1;
  this.reseedInterval = 0x1000000000000; // 2^48
};

HmacDRBG.prototype._hmac = function hmac() {
  return new hash.hmac(this.hash, this.K);
};

HmacDRBG.prototype._update = function update(seed) {
  var kmac = this._hmac().update(this.V).update([0x00]);

  if (seed) kmac = kmac.update(seed);
  this.K = kmac.digest();
  this.V = this._hmac().update(this.V).digest();
  if (!seed) return;
  this.K = this._hmac().update(this.V).update([0x01]).update(seed).digest();
  this.V = this._hmac().update(this.V).digest();
};

HmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) {
  // Optional entropy enc
  if (typeof entropyEnc !== 'string') {
    addEnc = add;
    add = entropyEnc;
    entropyEnc = null;
  }

  entropy = utils.toArray(entropy, entropyEnc);
  add = utils.toArray(add, addEnc);
  assert(entropy.length >= this.minEntropy / 8, 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');

  this._update(entropy.concat(add || []));

  this._reseed = 1;
};

HmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) {
  if (this._reseed > this.reseedInterval) throw new Error('Reseed is required'); // Optional encoding

  if (typeof enc !== 'string') {
    addEnc = add;
    add = enc;
    enc = null;
  } // Optional additional data


  if (add) {
    add = utils.toArray(add, addEnc || 'hex');

    this._update(add);
  }

  var temp = [];

  while (temp.length < len) {
    this.V = this._hmac().update(this.V).digest();
    temp = temp.concat(this.V);
  }

  var res = temp.slice(0, len);

  this._update(add);

  this._reseed++;
  return utils.encode(res, enc);
};

/***/ }),

/***/ "ar/p":
/***/ (function(module, exports, __webpack_require__) {

// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)
var $keys = __webpack_require__("5vMV");

var hiddenKeys = __webpack_require__("FpHa").concat('length', 'prototype');

exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
  return $keys(O, hiddenKeys);
};

/***/ }),

/***/ "at63":
/***/ (function(module, exports, __webpack_require__) {

var xor = __webpack_require__("jIre");

var Buffer = __webpack_require__("hwdV").Buffer;

var incr32 = __webpack_require__("vZ2G");

function getBlock(self) {
  var out = self._cipher.encryptBlockRaw(self._prev);

  incr32(self._prev);
  return out;
}

var blockSize = 16;

exports.encrypt = function (self, chunk) {
  var chunkNum = Math.ceil(chunk.length / blockSize);
  var start = self._cache.length;
  self._cache = Buffer.concat([self._cache, Buffer.allocUnsafe(chunkNum * blockSize)]);

  for (var i = 0; i < chunkNum; i++) {
    var out = getBlock(self);
    var offset = start + i * blockSize;

    self._cache.writeUInt32BE(out[0], offset + 0);

    self._cache.writeUInt32BE(out[1], offset + 4);

    self._cache.writeUInt32BE(out[2], offset + 8);

    self._cache.writeUInt32BE(out[3], offset + 12);
  }

  var pad = self._cache.slice(0, chunk.length);

  self._cache = self._cache.slice(chunk.length);
  return xor(chunk, pad);
};

/***/ }),

/***/ "avlf":
/***/ (function(module, exports) {

/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2020 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/


/***/ }),

/***/ "b+Df":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("path", {
  d: "M2 4v38a2 2 0 0 0 2 2h40a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2zm40 36H6V6h36z"
}), React.createElement("path", {
  d: "M12.85 12.623c0-.116.25-.2.4-.2 1.139-.058 2.811-.087 4.562-.087 4.905 0 6.816 2.679 6.816 6.114 0 4.484-3.261 6.406-7.261 6.406-.672 0-.905-.029-1.372-.029V31.6c0 .146-.058.2-.2.2h-2.74c-.146 0-.2-.058-.2-.2zM15.991 22c.409.029.73.029 1.431.029 2.073 0 4.02-.728 4.02-3.523 0-2.242-1.392-3.377-3.757-3.377-.7 0-1.372.029-1.693.058zm15.231-2.1c-1.4 0-1.869.7-1.869 1.281 0 .641.321 1.077 2.19 2.038 2.774 1.339 3.65 2.62 3.65 4.513 0 2.824-2.161 4.338-5.08 4.338a7.726 7.726 0 0 1-3.624-.757c-.117-.058-.146-.145-.146-.291v-2.59c0-.175.088-.233.2-.146a6.568 6.568 0 0 0 3.565 1.048c1.4 0 1.985-.582 1.985-1.369 0-.641-.409-1.194-2.19-2.125-2.511-1.194-3.562-2.417-3.562-4.455 0-2.271 1.781-4.164 4.876-4.164a8.261 8.261 0 0 1 3.174.495.38.38 0 0 1 .175.349v2.417c0 .145-.088.233-.263.175a6.363 6.363 0 0 0-3.08-.757z"
}));

/***/ }),

/***/ "b+dc":
/***/ (function(module, exports, __webpack_require__) {

// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js
var Buffer = __webpack_require__("hwdV").Buffer;

var createHmac = __webpack_require__("Giow");

var crt = __webpack_require__("qVij");

var EC = __webpack_require__("MzeL").ec;

var BN = __webpack_require__("OZ/i");

var parseKeys = __webpack_require__("Ku4m");

var curves = __webpack_require__("zZGF");

function sign(hash, key, hashType, signType, tag) {
  var priv = parseKeys(key);

  if (priv.curve) {
    // rsa keys can be interpreted as ecdsa ones in openssl
    if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') throw new Error('wrong private key type');
    return ecSign(hash, priv);
  } else if (priv.type === 'dsa') {
    if (signType !== 'dsa') throw new Error('wrong private key type');
    return dsaSign(hash, priv, hashType);
  } else {
    if (signType !== 'rsa' && signType !== 'ecdsa/rsa') throw new Error('wrong private key type');
  }

  hash = Buffer.concat([tag, hash]);
  var len = priv.modulus.byteLength();
  var pad = [0, 1];

  while (hash.length + pad.length + 1 < len) pad.push(0xff);

  pad.push(0x00);
  var i = -1;

  while (++i < hash.length) pad.push(hash[i]);

  var out = crt(pad, priv);
  return out;
}

function ecSign(hash, priv) {
  var curveId = curves[priv.curve.join('.')];
  if (!curveId) throw new Error('unknown curve ' + priv.curve.join('.'));
  var curve = new EC(curveId);
  var key = curve.keyFromPrivate(priv.privateKey);
  var out = key.sign(hash);
  return Buffer.from(out.toDER());
}

function dsaSign(hash, priv, algo) {
  var x = priv.params.priv_key;
  var p = priv.params.p;
  var q = priv.params.q;
  var g = priv.params.g;
  var r = new BN(0);
  var k;
  var H = bits2int(hash, q).mod(q);
  var s = false;
  var kv = getKey(x, q, hash, algo);

  while (s === false) {
    k = makeKey(q, kv, algo);
    r = makeR(g, k, p, q);
    s = k.invm(q).imul(H.add(x.mul(r))).mod(q);

    if (s.cmpn(0) === 0) {
      s = false;
      r = new BN(0);
    }
  }

  return toDER(r, s);
}

function toDER(r, s) {
  r = r.toArray();
  s = s.toArray(); // Pad values

  if (r[0] & 0x80) r = [0].concat(r);
  if (s[0] & 0x80) s = [0].concat(s);
  var total = r.length + s.length + 4;
  var res = [0x30, total, 0x02, r.length];
  res = res.concat(r, [0x02, s.length], s);
  return Buffer.from(res);
}

function getKey(x, q, hash, algo) {
  x = Buffer.from(x.toArray());

  if (x.length < q.byteLength()) {
    var zeros = Buffer.alloc(q.byteLength() - x.length);
    x = Buffer.concat([zeros, x]);
  }

  var hlen = hash.length;
  var hbits = bits2octets(hash, q);
  var v = Buffer.alloc(hlen);
  v.fill(1);
  var k = Buffer.alloc(hlen);
  k = createHmac(algo, k).update(v).update(Buffer.from([0])).update(x).update(hbits).digest();
  v = createHmac(algo, k).update(v).digest();
  k = createHmac(algo, k).update(v).update(Buffer.from([1])).update(x).update(hbits).digest();
  v = createHmac(algo, k).update(v).digest();
  return {
    k: k,
    v: v
  };
}

function bits2int(obits, q) {
  var bits = new BN(obits);
  var shift = (obits.length << 3) - q.bitLength();
  if (shift > 0) bits.ishrn(shift);
  return bits;
}

function bits2octets(bits, q) {
  bits = bits2int(bits, q);
  bits = bits.mod(q);
  var out = Buffer.from(bits.toArray());

  if (out.length < q.byteLength()) {
    var zeros = Buffer.alloc(q.byteLength() - out.length);
    out = Buffer.concat([zeros, out]);
  }

  return out;
}

function makeKey(q, kv, algo) {
  var t;
  var k;

  do {
    t = Buffer.alloc(0);

    while (t.length * 8 < q.bitLength()) {
      kv.v = createHmac(algo, kv.k).update(kv.v).digest();
      t = Buffer.concat([t, kv.v]);
    }

    k = bits2int(t, q);
    kv.k = createHmac(algo, kv.k).update(kv.v).update(Buffer.from([0])).digest();
    kv.v = createHmac(algo, kv.k).update(kv.v).digest();
  } while (k.cmp(q) !== -1);

  return k;
}

function makeR(g, k, p, q) {
  return g.toRed(BN.mont(p)).redPow(k).fromRed().mod(q);
}

module.exports = sign;
module.exports.getKey = getKey;
module.exports.makeKey = makeKey;

/***/ }),

/***/ "b+eW":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("path", {
  d: "M42 8H6a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6h36a6 6 0 0 0 6-6V14a6 6 0 0 0-6-6zM22.217 18.149a1.08 1.08 0 0 1-.492.953l-.432.267-.611-.243a7.929 7.929 0 0 0-3.123-.5 4.962 4.962 0 0 0-5.36 5.335c0 5.129 4.51 5.389 5.415 5.389a8.779 8.779 0 0 0 3.038-.41l.412-.145.508.218a1.049 1.049 0 0 1 .481.922v2.416a1.247 1.247 0 0 1-.76 1.2 12.846 12.846 0 0 1-4.086.555C11 34.1 6.984 30.152 6.984 24.041c0-6.066 4.272-10.141 10.629-10.141a10.1 10.1 0 0 1 3.9.538 1.212 1.212 0 0 1 .707 1.131zm18 0a1.08 1.08 0 0 1-.492.953l-.432.267-.611-.243a7.929 7.929 0 0 0-3.123-.5 4.962 4.962 0 0 0-5.36 5.335c0 5.129 4.51 5.389 5.415 5.389a8.779 8.779 0 0 0 3.038-.41l.412-.145.508.218a1.049 1.049 0 0 1 .481.922v2.416a1.247 1.247 0 0 1-.76 1.2 12.846 12.846 0 0 1-4.086.555c-6.21 0-10.223-3.948-10.223-10.059 0-6.066 4.272-10.141 10.629-10.141a10.1 10.1 0 0 1 3.9.538 1.212 1.212 0 0 1 .707 1.131z"
}));

/***/ }),

/***/ "b+sl":
/***/ (function(module) {

module.exports = JSON.parse("{\"a11y.button.canvases\":\"{name}\",\"a11y.button.libraries\":\"{name}，库\",\"a11y.button.listGridToggle\":\"视图切换，{toggledView, select, grid {网格} list {列表}}视图\",\"a11y.button.project\":\"{name}，项目\",\"a11y.button.published\":\"{name}，{extension}\",\"a11y.button.selectFolder\":\"选择文件夹\",\"a11y.button.working\":\"{name}，{extension}，修改时间为 {modified}\",\"a11y.strings.folder\":\"文件夹\",\"header.action.newProject\":\"新项目\",\"header.action.newLibrary\":\"新建库\",\"header.action.browseAll\":\"浏览全部\",\"header.Name\":\"名称\",\"header.Size\":\"大小\",\"header.Sharing\":\"成员\",\"header.Team\":\"工作区\",\"header.DateModified\":\"修改时间\",\"header.DateCreated\":\"创建时间\",\"header.Status\":\"已收藏\",\"header.SortBy\":\"排序依据\",\"header.sort.label\":\"排序\",\"header.ChangeSortDirection\":\"将排序方向更改为\",\"header.SortBy.asc\":\"升序\",\"header.SortBy.desc\":\"降序\",\"header.selectAll\":\"全选\",\"header.reverseOrder\":\"倒序\",\"header.showCompatible\":\"兼容文件\",\"header.showEverything\":\"全部\",\"product.illustrator.web\":\"Illustrator Web (Beta)\",\"product.photoshop.web\":\"Photoshop Web (Beta)\",\"status.followed\":\"是\",\"status.unfollowed\":\"否\",\"team.usm.defaultName\":\"工作区 {name}\",\"space.access.private.description\":\"仅受邀请人员\",\"space.access.private.tooltip\":\"只有受邀请的人员才能访问此项目\",\"space.access.team.description\":\"工作区中的任何人和受邀者\",\"space.access.team.tooltip\":\"“{team}”中的任何人均有权访问此项目\",\"yourProjects.title\":\"项目\",\"yourProjects.librariesTab.title\":\"团队库\",\"yourProjects.empty.spaces\":\"创建更多项目并邀请更多工作区成员\",\"browseAll.title\":\"浏览全部\",\"yourFiles.title\":\"您的文档\",\"yourLibraries.title\":\"库\",\"yourLibraries.metadata\":\"库\",\"canvas.metadata\":\"画布\",\"projectInfo.action.view\":\"查看信息\",\"projectInfo.action.edit\":\"编辑项目\",\"projectInfo.empty.cta\":\"新建项目\",\"projectInfo.empty.description\":\"Creative Cloud 项目简化了查找、组织、共享和决策的过程，将创意项目所需的一切都集中在一处。\",\"projectInfo.empty.heading\":\"专心创作，无需追赶。\",\"projectInfo.error.description\":\"请稍后重试\",\"projectInfo.error.heading\":\"无法加载 {section}\",\"projectInfo.new.error.title\":\"无法新建项目\",\"projectInfo.new.noPermission.description\":\"有关更多信息，请与管理员联系。\",\"projectInfo.title.create\":\"新建项目\",\"projectInfo.title.edit\":\"编辑项目\",\"projectInfo.title.view\":\"项目信息\",\"projectInfo.access.title\":\"谁可编辑此项目\",\"projectInfo.access.warning\":\"如果将权限更改为“仅受邀请人员”，则某些成员可能无法访问该项目。\",\"projectInfo.organization\":\"组织\",\"projectInfo.organization.placeholder\":\"请选择一项\",\"projectInfo.description\":\"说明\",\"textField.invalid.characters\":\"名称不能包含以下字符：\\\\\\\\ / * ? \\\" | : < >\",\"textField.invalid.duplicateName\":\"此组织中已有项目具有此名称。\",\"textField.invalid.duplicateName.space\":\"该工作区中已经有一个具有此名称的项目。\",\"textField.invalid.duplicateName.team\":\"此组织中已有工作区具有此名称。\",\"textField.invalid.empty\":\"名称不能为空\",\"textField.invalid.generic\":\"名称无效\",\"textField.invalid.length\":\"名称不能超过 50 个字符\",\"textField.invalid.nameEndsWithDot\":\"名称不能以句点结尾\",\"textField.invalid.offline\":\"重新连接以访问您的所有工作区和项目。要从您的项目查看本地文件，请转到主页。\",\"projectInfo.textField.placeholder\":\"命名此项目\",\"projectInfo.team\":\"工作区\",\"projectInfo.description.placeholder\":\"例如：客户项目的文件、反馈和参考资料\",\"projectInfo.description.invalidLength\":\"描述不得超过 1000 个字符\",\"projectInfo.toast.success.new\":\"已成功创建项目: {name}\",\"projectInfo.toast.success.update\":\"成功更新了项目：{name}\",\"projectInfo.toast.error.generic\":\"无法{create, select, true {创建} other {编辑}}项目\",\"team.empty.heading\":\"项目让每个人的想法保持一致\",\"team.empty.description\":\"厌倦了被锁在文件之外、管控关于版本造成的混乱以及通过电子邮件发送屏幕快照以供审核？请使用空间组织项目、收集资源和反馈并共享整个团队需要处理的文件。\",\"team.empty.createSpace\":\"创建项目\",\"team.empty.inviteMembers\":\"邀请会员\",\"team.empty.startHere\":\"从此处开始\",\"team.create.success\":\"成功创建了工作区：{name}\",\"team.create.error.generic\":\"无法创建工作区\",\"team.edit.success\":\"成功更新了工作区：{name}\",\"team.edit.error.generic\":\"无法更新工作区\",\"team.archive.success\":\"{count, plural, =1 {个工作区} other {{count} 个工作区}} 已删除\",\"team.archive.error.generic\":\"无法删除 {count, plural, =1 {# 个工作区} other {# 个工作区}}\",\"team.error.generic\":\"抱歉，出现错误。\",\"project1Up.action.projectInfo\":\"查看信息\",\"project1up.region.space.ariaLabel\":\"{projectName}，项目\",\"project1Up.section.libraries\":\"库\",\"project1Up.section.libraries.empty.cta\":\"添加 Creative Cloud Libraries\",\"project1Up.section.libraries.empty.description\":\"添加指向工作所需的库的链接。\",\"project1Up.section.libraries.empty.heading\":\"将所有内容集中在一起\",\"project1Up.section.filter\":\"筛选条件\",\"project1Up.section.filter.label\":\"按关键字筛选\",\"project1Up.section.filter.enterKeyword\":\"输入关键字\",\"project1Up.section.filterFiles.empty.heading\":\"没有与所选筛选条件匹配的结果\",\"project1Up.section.compatibleFiles.empty.heading\":\"此项目中没有兼容的文件\",\"project1Up.section.workingFiles\":\"工作文件\",\"project1Up.section.workingFiles.empty.addFiles\":\"添加文件\",\"project1Up.section.workingFiles.empty.createFolder\":\"创建新文件夹\",\"project1Up.section.workingFiles.empty.description\":\"对项目进行迭代并与其他成员协作。\",\"project1Up.section.workingFiles.empty.heading\":\"在需要时处理所需的工作\",\"project1Up.section.published\":\"已发布\",\"project1Up.section.published.empty.cta\":\"如何发布链接\",\"project1Up.section.published.empty.description\":\"发送仅限查看的链接以在适当时间从适当人员获得反馈。\",\"project1Up.section.published.empty.description.readonly\":\"当有人需要反馈或评论时，他们会在此处添加链接。\",\"project1Up.section.published.empty.heading\":\"让共享更有意义\",\"project1Up.section.published.empty.heading.readonly\":\"此项目中没有已发布的项\",\"project1Up.section.canvases\":\"画布\",\"project1Up.section.canvases.empty.cta\":\"添加 Creative Cloud 画布\",\"project1Up.section.canvases.empty.description\":\"添加指向需要完成工作所需的内容的链接。\",\"project1Up.section.canvases.empty.heading\":\"将所有内容集中在一起\",\"project1Up.section.files\":\"文件\",\"project1Up.error.accessDenied.heading\":\"您没有访问权限\",\"project1Up.error.accessDenied.description\":\"已从此项目删除了您。如果您认为有误，请与您的管理员联系。\",\"project1Up.header.seeAll\":\"查看全部\",\"project1up.subheader.selected\":\"已选择 {count, plural, =1 {# 个项目} other {# 个项目}}\",\"project1up.subheader.emptyDescription\":\"向您的项目添加描述\",\"project1up.subheader.canvases.title\":\"画布\",\"project1up.subheader.canvases.subtitle\":\"TODO: 画布副标题\",\"project1up.subheader.libraries.title\":\"库\",\"project1up.subheader.libraries.subtitle\":\"成员可在此处添加 Creative Cloud 库的链接。\",\"project1up.subheader.working.title\":\"工作文件\",\"project1up.subheader.working.subtitle\":\"此项目的成员可编辑这些文件。\",\"project1up.subheader.output.title\":\"已发布\",\"project1up.subheader.output.subtitle\":\"{contributor, select, true {与项目外部人员共享工作的只读版本} other {查看并评论这些只读项}}\",\"project.subtitle\":\"项目\",\"project.countContributors\":\"{count, plural, =1 {# 位成员} other {# 位成员}}\",\"project.versionError.reload.description\":\"请尝试刷新您的浏览器。\",\"project.versionError.reload.title\":\"无法访问项目\",\"project.versionError.update.description\":\"直到更新应用程序后才能访问项目。\",\"project.versionError.update.title\":\"更新 {appName} 以打开\",\"project.alreadyDiscarded.title\":\"删除了此项目\",\"project.alreadyDiscarded.description\":\"如果认为这是误操作，请与管理员联系，如果不是误操作，请浏览其他内容。\",\"project.deleted.title\":\"永久删除了此项目\",\"project.deleted.description\":\"您无法访问此项目，因为它不再可用。\",\"project.metadataError.backLabel\":\"返回到项目\",\"project.metadataError.description\":\"我们找不到您想要的项目，或者您没有访问权限。\",\"project.metadataError.title\":\"抱歉，出现错误。\",\"folder.subtitle\":\"文件夹\",\"libraries.toast.add.start\":\"正在添加 {count, plural, =1 {# 个库} other {# 个库}}\",\"libraries.toast.add.success\":\"已添加 {count, plural, =1 {# 个库} other {# 个库}}\",\"libraries.toast.add.error\":\"无法添加 {count, plural, =1 {# 个库} other {# 个库}}，请重试。\",\"libraries.toast.add.duplicate\":\"此库已存在\",\"libraries.toast.add.onlyDuplicates\":\"无法添加 {count, plural, =1 {# 个库，因为已存在该库} other {# 个库，因为已存在这些库}}。\",\"libraries.toast.delete.success\":\"成功删除了 {count, plural, =1 {# 个库} other {# 个库}}\",\"libraries.toast.delete.error\":\"无法删除 {count, plural, =1 {# 个库} other {# 个库}}\",\"libraries.toast.follow.inProgress\":\"正在关注 {count, plural, =1 {# 个库} other {# 个库}}\",\"libraries.toast.follow.success\":\"已关注 {count, plural, =1 {# 个库} other {# 个库}}\",\"libraries.toast.follow.error\":\"无法关注 {count, plural, =1 {# 个库} other {# 个库}}\",\"libraries.toast.unfollow.inProgress\":\"正在取消关注 {count, plural, =1 {# 个库} other {# 个库}}\",\"libraries.toast.unfollow.success\":\"已取消关注 {count, plural, =1 {# 个库} other {# 个库}}\",\"libraries.toast.unfollow.error\":\"无法取消关注 {count, plural, =1 {# 个库} other {# 个库}}\",\"libraries.modal.empty.heading\":\"没有库\",\"libraries.modal.empty.description\":\"您的组织尚未共享任何库\",\"libraries.modal.error.limitExceeded\":\"无法添加库\",\"libraries.modal.error.limitExceeded.detail\":\"最多可将 100 个库添加到一个项目。删除一些库即可添加更多库。\",\"libraries.brokenResources\":\"由于您无权访问，因此未显示某些库。请联系其他会员以获取更多信息。\",\"copy.start\":\"正在复制{count, plural, =1 {# 个项目} other {# 个项目}}\",\"copy.failure\":\"无法复制{count, plural, =1 {# 个项目} other {# 个项目}}\",\"copy.failure.partial\":\"无法复制某些项目\",\"copy.success\":\"{count, plural, =1 {# 个项目} other {# 个项目}}已复制\",\"copy.conflictSuffix\":\"副本\",\"move.start\":\"正在移动 {count, plural, =1 {# 个项目} other {# 个项目}}\",\"move.failure\":\"无法移动 {count, plural, =1 {# 个项目} other {# 个项目}}\",\"move.failure.partial\":\"无法移动某些项目\",\"move.success\":\"{count, plural, =1 {# 个项目} other {# 个项目}}已移动\",\"upload.start\":\"正在上传 {count, plural, =1 {# 个项目} other {# 个项目}}\",\"upload.failure\":\"无法上传 {count, plural, =1 {# 个项目} other {# 个项目}}\",\"upload.failure.partial\":\"无法上传某些项目\",\"upload.failure.snapshot\":\"不支持此项目\",\"upload.success\":\"{count, plural, =1 {# 个项目} other {# 个项目}} 已上传\",\"download.start\":\"正在下载 {count, plural, =1 {# 个项目} other {# 个项目}}\",\"download.failure\":\"无法下载 {count, plural, =1 {# 个项目} other {# 项目}}\",\"download.failure.partial\":\"无法下载某些项目\",\"download.success\":\"已经下载 {count, plural, =1 {# 个项目} other {# 个项目}}\",\"delete.failure\":\"无法删除 {count, plural, =1 {# 个项目} other {# 个项目}}\",\"delete.failure.partial\":\"无法删除某些项目\",\"delete.success\":\"删除了 {count, plural, =1 {# 个项目} other {# 个项目}}\",\"jobs.failure\":\"{count, plural, =1 {# 个项目} other {# 个项目}}已失败\",\"jobs.inProgress\":\"正在处理...\",\"jobs.success\":\"已完成 {count, plural, =1 {# 个项目} other {# 个项目}}\",\"restore.failure\":\"无法还原 {count, plural, =1 {# 个项目} other {# 项目}}\",\"restore.failure.partial\":\"无法还原某些项目\",\"restore.success\":\"{count, plural, =1 {# 个项目} other {# 项目}}已还原\",\"rename.start\":\"正在重命名\",\"rename.success\":\"{count, plural, =1 {# 个项目} other {# 个项目}}已重命名\",\"rename.failure\":\"服务器错误，无法重命名项目\",\"rename.failure.conflict\":\"此处已存在具有此名称的项目\",\"rename.offline.heading\":\"无法重命名\",\"rename.offline\":\"您已离线，因此无法重命名该项。请重新上线以执行此操作。\",\"bookmark.follow.error\":\"无法收藏此项目\",\"bookmark.unfollow.error\":\"无法取消收藏此项目\",\"bookmark.follow.success\":\"已成功收藏 {projectName}\",\"bookmark.unfollow.success\":\"已成功取消收藏 {projectName}\",\"bookmark.bulk.follow.success\":\"已成功收藏 {count, plural, =1 {# 项} other {# 项}}\",\"bookmark.bulk.follow.partial\":\"无法收藏某些项\",\"bookmark.bulk.follow.error\":\"无法收藏 {count, plural, =1 {# 项} other {# 项}}\",\"bookmark.bulk.unfollow.success\":\"已成功取消收藏 {count, plural, =1 {# 项} other {# 项}}\",\"bookmark.bulk.unfollow.partial\":\"无法取消收藏某些项\",\"bookmark.bulk.unfollow.error\":\"无法取消收藏 {count, plural, =1 {# 项} other {# 项}}\",\"copyLink.success\":\"已将链接复制到剪贴板\",\"copyLink.failure\":\"无法复制链接\",\"starterUser.project1upNavigation\":\"您的入门计划不包括在项目中打开文档\",\"starterUser.project1upNavigationCDPSave\":\"您的入门计划不包括在项目中保存文档\",\"invite.failure\":\"无法发送邀请，请重试。\",\"accessibility.backButton\":\"返回\",\"button.role\":\"按钮\",\"button.actions\":\"操作\",\"button.add\":\"添加\",\"button.addFiles\":\"添加文件\",\"button.addLibrary\":\"添加 库\",\"button.createDocument\":\"新 {appName} 文件\",\"button.library\":\"库\",\"button.back\":\"返回\",\"button.browse\":\"浏览全部\",\"button.cancel\":\"取消\",\"button.okay\":\"确定\",\"button.canvas\":\"画布\",\"button.addCanvas\":\"新建画布\",\"button.changeDefaultApp\":\"更改默认应用程序...\",\"button.close\":\"关闭\",\"button.continue\":\"继续\",\"button.copy\":\"复制到...\",\"button.copyLink\":\"复制链接\",\"button.create\":\"创建\",\"button.createNewFolder\":\"创建新文件夹\",\"button.newFile\":\"新文件\",\"button.newFolder\":\"新建文件夹\",\"button.delete\":\"删除\",\"button.deleteResource\":\"删除\",\"button.done\":\"完成\",\"button.download\":\"下载\",\"button.favorite\":\"收藏\",\"button.follow\":\"关注\",\"button.invite\":\"邀请\",\"button.inviteLabel\":\"邀请他人\",\"button.leave\":\"离开\",\"button.leaveProject\":\"离开工作区\",\"button.move\":\"移动到...\",\"button.next\":\"下一步\",\"button.ok\":\"确定\",\"button.open\":\"打开\",\"button.openWith\":\"打开方式\",\"button.open.appName\":\"{appName} {isDefault, select, true {(Default)} other {}}\",\"button.redo\":\"重试\",\"button.reload\":\"重新加载\",\"button.rename\":\"重命名\",\"button.restore\":\"恢复\",\"button.retry\":\"重试\",\"button.save\":\"保存\",\"button.select\":\"选择\",\"button.share\":\"共享\",\"button.skipTour\":\"跳过介绍\",\"button.undo\":\"还原\",\"button.unfavorite\":\"取消收藏\",\"button.unfollow\":\"取消关注\",\"button.update\":\"更新\",\"button.upgrade\":\"升级\",\"button.view\":\"查看全部\",\"button.viewProject\":\"查看项目\",\"button.viewTarget\":\"查看\",\"button.createWeblink\":\"添加 Web 链接\",\"button.leaveTeam\":\"离开工作区\",\"button.renameTeam\":\"重命名工作区\",\"button.editTeam\":\"编辑工作区信息\",\"button.archiveTeam\":\"删除工作区\",\"button.upload\":\"上传文件\",\"button.goToDeleted\":\"查看已删除的内容\",\"button.viewEverything\":\"查看所有内容\",\"button.viewInWeb\":\"通过 Web 查看\",\"abbreviations.fileSize.byte\":\"B\",\"abbreviations.fileSize.kilobyte\":\"KB\",\"abbreviations.fileSize.megabyte\":\"MB\",\"abbreviations.fileSize.gigabyte\":\"GB\",\"abbreviations.fileSize.terabyte\":\"TB\",\"statusIcon.conflicted\":\"同步冲突\",\"statusIcon.onlineOnly\":\"仅限联机\",\"statusIcon.availableOffline\":\"可离线使用\",\"statusIcon.syncing\":\"正在同步...\",\"statusIcon.waitingToSync\":\"正在等待同步\",\"statusMessage.offline.description\":\"重新连接以访问您的所有工作区和项目。要从您的项目查看本地文件，请转到主页。\",\"statusMessage.offline.heading\":\"您已断开连接\",\"statusMessage.offline.toast\":\"您已断开连接，因此某些功能和文件可能不可用。\",\"toggle.listView\":\"列表视图\",\"toggle.gridView\":\"缩览图视图\",\"color.fuchsia\":\"紫红\",\"color.indigo\":\"靛青\",\"color.celery\":\"深绿\",\"color.magenta\":\"品红\",\"color.yellow\":\"黄色\",\"color.seafoam\":\"水蓝\",\"color.chartreuse\":\"黄绿\",\"color.purple\":\"紫色\",\"color.blue\":\"蓝色\",\"color.red\":\"红色\",\"color.orange\":\"橙色\",\"color.green\":\"绿色\",\"color.label\":\"项目颜色\",\"tooltip.offline.general\":\"请重新上线以执行此操作\",\"tooltip.moreFaces\":\"+ 另外 {number} 个\",\"action.leave.space.success\":\"您离开了 {count, plural, =1 {# 个项目} other {# 个项目}}\",\"action.leave.prototype.success\":\"解除了对 {count, plural, =1 {# 个原型} other {# 个原型}}的访问权限\",\"action.leave.file.success\":\"解除了对 {count, plural, =1 {# 个文件} other {# 个文件}}的访问权限\",\"action.leave.canvas.success\":\"解除了对 {count, plural, =1 {# 个画布} other {# 个画布}}的访问权限\",\"action.leave.team.success\":\"您离开了 1 个工作区\",\"action.leave.space.error\":\"无法离开此项目\",\"action.leave.prototype.error\":\"无法离开此原型\",\"action.leave.file.error\":\"无法离开此文件\",\"action.leave.team.error\":\"无法离开此工作区\",\"action.leave.canvas.error\":\"无法离开此画布\",\"action.leave.space.partial.error\":\"无法离开所有项目\",\"action.leave.prototype.partial.error\":\"无法离开所有原型\",\"action.leave.file.partial.error\":\"无法离开所有文件\",\"action.leave.canvas.partial.error\":\"无法离开所有画布\",\"action.leave.error.onlyContributor\":\"您是唯一的成员。离开前添加其他成员。\",\"action.leave.error.addressBookGroupMember\":\"离开组并重试。\",\"action.leave.error.admin\":\"由于您是管理员，因此您无法离开。\",\"action.leave.error.generic\":\"您无法离开，因为出现了错误。\",\"action.reportAbuse\":\"举报滥用\",\"action.reportAbuse.required\":\"必填\",\"action.reportAbuse.titleText\":\"如果您认为此 Creative Cloud 内容违反了 Adobe 使用条款，您可以通过填写此简易表格来举报此内容。\",\"action.reportAbuse.emailInput\":\"您的电子邮件\",\"action.reportAbuse.nameInput\":\"您的姓名\",\"action.reportAbuse.radioButtonText\":\"为何举报此内容？\",\"action.reportAbuse.defamation\":\"诽谤\",\"action.reportAbuse.hate\":\"种族主义或煽动仇恨内容\",\"action.reportAbuse.trademark\":\"商标侵权\",\"action.reportAbuse.pornography\":\"露骨的涉性内容\",\"action.reportAbuse.vulgar\":\"冒犯性内容\",\"action.reportAbuse.other\":\"其它\",\"action.reportAbuse.inappropriate\":\"不恰当\",\"action.reportAbuse.age\":\"年龄不准确\",\"action.reportAbuse.gender\":\"性别不正确\",\"action.reportAbuse.textAreaTitle\":\"请说明您的疑虑\",\"action.reportAbuse.describeConcern\":\"说明疑虑\",\"action.reportAbuse.success\":\"成功举报滥用行为\",\"action.reportAbuse.failure\":\"无法举报滥用行为\",\"action.menu.label\":\"动作菜单\",\"action.label\":\"动作\",\"dialog.genericError.description\":\"抱歉，出现错误。\",\"dialog.genericError.title\":\"意外错误\",\"dialog.leave.space.title\":\"离开{count, plural, =1 {{name}} other {项目}}\",\"dialog.leave.prototype.title\":\"离开{count, plural, =1 {此原型} other {原型}}\",\"dialog.leave.file.title\":\"离开{count, plural, =1 {此文件} other {文件}}\",\"dialog.leave.canvas.title\":\"离开{count, plural, =1 {此画布} other {画布}}\",\"dialog.leave.team.title\":\"告别？\",\"dialog.leave.team.detail\":\"如果您删除自己，则无法撤消此结果。如果要将您添加回此工作区，请与管理员联系。\",\"dialog.leave.space.detail\":\"您将无法访问此项目中不属于您的项。无法撤消离开“{projectName}”的操作。\",\"dialog.leave.prototype.detail\":\"如果没有其他邀请，您将无法再次访问此项。\",\"dialog.leave.file.detail\":\"如果没有其他邀请，您将无法再次访问此项。\",\"dialog.leave.canvas.detail\":\"如果没有其他邀请，您将无法再次访问此项。\",\"dialog.leave.detail\":\"{type, select, space {您将无法访问{count, plural, =1 {此项目} other {这些项目}}中不属于您的项。无法撤销离开{count, plural, =1 {“{name}”} other {这些项目}}的操作。} other {如果没有另一邀请，则您将无法再次访问{count, plural, =1 {此} other {这些}}项目{count, plural, =1 {。} other {：}}}}\",\"dialog.deleteFailed.title\":\"无法删除所有项目\",\"dialog.deleteWarning.description\":\"{type, select, spaces {此操作将删除这些项目的所有成员的内容：} other {此操作将删除此空间的所有成员的内容：}}\",\"dialog.deleteWarning.title\":\"{type, select, space {删除 {count} {count, plural, =1 {个项目} other {个项目}}} other {删除 {count} {count, plural, =1 {项} other {项}}}}\",\"dialog.deleteFailed.description.unauthorized\":\"无法删除，因为已从此项目中删除了您：\",\"dialog.deleteFailed.description.alreadyDeleted\":\"无法删除，因为其他人已经删除了此项目:\",\"dialog.deleteFailed.description.unknown\":\"无法删除，因为出现了错误:\",\"dialog.cantCopyAllItems\":\"无法复制所有项目\",\"dialog.cantCopyBecauseSomethingWentWrong\":\"无法复制，因为出现了错误:\",\"dialog.cantCopyBecauseYouWereSignedOut\":\"无法复制，因为您已注销：\",\"dialog.cantCopyBecauseYouWereRemoved\":\"无法复制，因为已从此项目中删除了您：\",\"dialog.cantCopyBecauseItemWasDeleted\":\"无法复制，因为其他人删除了此项目：\",\"dialog.cantCopyBecauseItemExists\":\"无法复制，因为您尝试复制所在的位置中已经存在此项：\",\"dialog.cantMoveAllItems\":\"无法移动所有项目\",\"dialog.cantMoveBecauseSomethingWentWrong\":\"无法移动，因为出现了错误:\",\"dialog.cantMoveBecauseYouWereSignedOut\":\"无法移动，因为您已注销：\",\"dialog.cantMoveBecauseYouWereRemoved\":\"无法移动，因为已从此项目中删除了您：\",\"dialog.cantMoveBecauseItemWasDeleted\":\"无法移动，因为其他人删除了此项目：\",\"dialog.cantMoveBecauseItemExists\":\"无法移动，因为您尝试移动所在的位置中已经存在此项：\",\"dialog.createFolder.error\":\"服务器错误，无法保存文件夹\",\"dialog.createFolder.nameConflict\":\"您已有采用此名称的文件夹。\",\"dialog.createFolder.placeholder\":\"文件夹名称\",\"dialog.createFolder.title\":\"创建文件夹\",\"dialog.createFolder.success\":\"已成功创建文件夹\",\"dialog.createWeblink.error\":\"不支持的 url\",\"dialog.createWeblink.tooManyRequests\":\"意外网络错误。请重试。\",\"dialog.createWeblink.success\":\"添加了 1 项\",\"dialog.createWeblink.nameConflict\":\"此标题已存在\",\"dialog.createWeblink.name.placeholder\":\"输入此链接的名称\",\"dialog.createWeblink.link.placeholder\":\"https://\",\"dialog.createWeblink.name\":\"自定义标题\",\"dialog.createWeblink.link\":\"链接\",\"dialog.createWeblink.title\":\"创建 Web 链接\",\"app.type.webLink\":\"Web 链接\",\"dialog.createCanvas.error\":\"无法创建画布\",\"dialog.move.title\":\"移动到项目 {projectName}\",\"dialog.move.detail\":\"如果移动此项目，则将更改可以访问此项目的人员。\",\"moveToTeam.confirm.title\":\"移至 {name} 工作区\",\"moveToTeam.confirm.message\":\"将您的项目移至此处将改变谁可访问它们。任何有权访问您工作区的人均可访问您的项目。\",\"moveToTeam.disabled.differentOrg.tooltip.message\":\"您无法将项目移至不同组织中的工作区。\",\"moveToSpace.disabled.differentOrg.tooltip.message\":\"您无法将项移至不同组织中的项目。\",\"moveToTeam.success\":\"您已将 {count, plural, =1 {# 个项目} other {# 个项目}}移至 {name} 工作区\",\"confirmationDialog.dontShowAgain\":\"不再显示\",\"dialog.open.title\":\"在 Web 上打开\",\"dialog.open.detail\":\"您无法在 {appName} 中打开此文件，但是您可以在浏览器中访问它。\",\"dialog.renameTeam.title\":\"重命名工作区\",\"dialog.renameTeam.placeholder\":\"输入此工作区的名称\",\"dialog.renameTeam.error\":\"抱歉，出现错误。\",\"dialog.renameTeam.nameConflict\":\"此名称已存在\",\"dialog.archiveTeam.title\":\"是否要删除此工作区？\",\"dialog.archiveTeam.detail\":\"如果您删除自己，则无法撤消此结果。如果要再次加入此工作区，请与管理员联系。\",\"dialog.saveToCloud.title\":\"文件已保存到 Creative Cloud\",\"dialog.saveToCloud.detail\":\"您的云文档现在提供版本历史记录、邀请和共同编辑、在其他设备上即时访问等功能。您可以在此处以及在您的 Creative Cloud 应用程序中找到它。\",\"input.invalidCharInput\":\"名称不得包含以下字符：\\\\\\\\ / * ? \\\" | :\",\"input.invalidEmptyInput\":\"{names, select, true {名称} other {标题}}不得为空\",\"input.nameTooLong\":\"{names, select, true {名称} other {标题}} 不得超过 {maxLength} 个字符\",\"input.nameEndsWithDot\":\"{names, select, true {姓名} other {头衔}} 不得以句点结尾\",\"input.weblink.nameRestricted\":\"Web 链接不能具有以下标题：“con”、“prn”、“aux”、“nul”、“com”、“lpt#”\",\"input.nameRestricted\":\"资源不能具有以下名称：con/prn/aux/nul/com#/lpt#\",\"input.weblink.invalidCharInput\":\"标题不得仅包含空格或包含以下字符：\\\\\\\\ / * ? \\\" | : < > \",\"input.name.invalidCharInput\":\"名称不得仅包含空格或包含以下字符：\\\\\\\\ / * ? \\\" | : < > \",\"cdpFooter.orphanedArtifactsWarning\":\"将在原有项目中保留与所移动的项有关的已发布链接\",\"cdpFooter.libraryPrivacyWarning\":\"如果您具有所添加的某个库的重新共享权限，则项目成员将可查看该库\",\"toast.beforeOp.error.documentIsOpen\":\"关闭{count, plural, =1{文档}other{文档}}以执行此操作。\",\"app.type.designSpecs\":\"设计规范\",\"app.type.prototype\":\"原型\",\"app.type.publishedLink\":\"已发布链接\",\"popover.header\":\"与他人合作进行项目，并分享您的工作以获取反馈。\",\"popover.linkout\":\"了解详情\",\"team.libraries.filter.all\":\"全部\",\"team.libraries.filter.addedToYourLibraries\":\"已添加到您的库\",\"team.libraries.filter.notAdded\":\"未添加\",\"team.spaces.filter.all\":\"全部\",\"team.spaces.filter.favorited\":\"已收藏\",\"team.filter.empty.heading\":\"没有项目与所选的筛选条件匹配\",\"team.filter.empty.description1\":\"我们在此列表中找不到 \",\"team.filter.empty.description2\":\" 的结果。检查您的拼写或尝试使用其他关键字。\",\"team.filter.no.match.description\":\"我们在此列表中找不到结果。检查您的拼写或尝试使用其他筛选条件。\",\"team.filter.filterText\":\"{filter}\",\"team.header.other.teams\":\"其他工作区\",\"space.empty.heading\":\"集中处理，人人发挥作用\",\"space.empty.description\":\"可将工作文件和相关材料填入此项目。还可邀请协作者加入并添加他们正在处理的内容。\",\"space.empty.canvasHeading\":\"CREATIVE CLOUD CANVAS\",\"space.empty.actionsHeading\":\"将内容添加到您的项目\",\"space.empty.createCanvas\":\"新建画布\",\"space.empty.upload\":\"添加文件\",\"space.empty.createFolder\":\"新建文件夹\",\"space.empty.createWeblink\":\"Web 链接\",\"space.empty.addResource\":\"库\",\"folder.empty.heading\":\"此文件夹为空。\",\"folder.empty.description\":\"开始添加文件以进行填充。\",\"folder.discard.heading\":\"已删除此文件夹。\",\"folder.discard.description\":\"如果认为这是误操作，请与管理员联系，如果不是误操作，请浏览其他内容。\",\"folder.error.description\":\"从此文件夹加载内容时有问题。\",\"space.empty.section.createACanvas\":\"创建画布\",\"tooltip.opensInBrowser\":\"在浏览器中打开\",\"space.empty.workingFiles\":\"继续添加到此项目\",\"space.empty.canvasPopoverTitle\":\"试用 Creative Cloud Canvas（测试版）\",\"space.empty.canvasPopoverContent\":\"使用画布实现创意作品的版面设计、可视化和预览。\",\"space.error.heading\":\"无法加载项目\",\"space.error.description\":\"从该项目加载内容时出现问题。\",\"createTeamWizard.createTeam.sidebarHeading\":\"创建工作区\",\"createTeamWizard.createTeam.sidebarCopy\":\"创建一个工作区，让每个人都使用同一页面，有序开展工作。\",\"createTeamWizard.createTeam.sidebarCopy.adminconsole\":\"设置一个您的团队可以协作和共享文件的地方。\",\"createTeamWizard.createTeam.sidebarLink\":\"了解详细信息\",\"createTeamWizard.createTeam.contentHeading\":\"新建工作区\",\"createTeamWizard.createTeam.loading\":\"正在创建“{name}”工作区\",\"createTeamWizard.inviteMembers.sidebarHeading\":\"邀请成员加入“{name}”工作区\",\"createTeamWizard.inviteMembers.sidebarCopy\":\"立即开始输入姓名或电子邮件以邀请成员，或跳过此步骤并稍后邀请他们。\",\"createTeamWizard.inviteMembers.loading\":\"邀请成员加入“{name}”工作区\",\"createTeamWizard.inviteMembers.contentHeading\":\"邀请会员\",\"createTeamWizard.inviteMembers.successToast\":\"成员已添加到新工作区\",\"createTeamWizard.progress\":\"第 {current} 步/共 {total} 步\",\"createTeamWizard.skipStep\":\"跳过\",\"teamDialog.createTeam.label\":\"创建工作区\",\"teamDialog.createTeam.infoBox.description\":\"您创建的工作区仅限受邀用户加入，默认情况下添加的每位成员都具有编辑访问权限。\",\"teamDialog.editTeam.label\":\"编辑工作区\",\"teamDialog.nameSection.placeholder\":\"为新工作区命名\",\"teamDialog.nameSection.label\":\"工作区名称\",\"teamDialog.permissionsSection.label\":\"谁可编辑此工作区\",\"teamDialog.permissionsSection.option.onlyInvited\":\"仅受邀请人员\",\"teamDialog.descriptionSection.label\":\"工作区说明（可选）\",\"teamDialog.descriptionSection.placeholder\":\"添加一些关于您的工作空间的描述\",\"teamsSidebar.noTeams\":\"无工作区\",\"teamsSidebar.newTeamButton\":\"创建工作区\",\"teamsSidebar.adminTour.title\":\"新增功能：创建工作区\",\"teamsSidebar.adminTour.content\":\"现在，管理员可以在 Creative Cloud Web 版中创建工作区，从而更轻松地围绕共享工作进行组织。\",\"teamsSidebarTeam.newSpaceButton\":\"新项目\",\"teamsSidebarTeam.header.newBadge\":\"全新\",\"teamsSidebarTeam.header.otherTeams\":\"来自其他工作区\",\"teamsSidebarTeam.header.teams\":\"工作区\",\"teamsSidebarTeam.header.previewLabel\":\"（预览）\",\"teamsSidebarTeam.header.previewCopy\":\"在专用测试版中有工作区和项目可用。\",\"teamsSidebarTeam.header.previewLearnMoreText\":\"了解详细信息\",\"teamsSidebarTeam.message.loading\":\"正在加载...\",\"teamsSidebarTeam.message.noSpaces\":\"您没有工作区或项目。\",\"teamsSidebarTeam.message.offline\":\"您已断开连接。请重新连接以查看您的工作区和项目。\",\"teamsSidebarTeam.message.error\":\"加载您的工作区和项目时有问题。\",\"teams1up.error.description\":\"加载您的项目时有问题。\",\"teams1up.error.heading\":\"无法加载项目\",\"otherTeams.emptyMessage.header\":\"无法查看工作区页面\",\"otherTeams.emptyMessage.description1\":\"已将您从使用\",\"otherTeams.emptyMessage.description2\":\"分区的上一个空间移除或您已离开该空间。如果您认为这是误操作，请联系您的管理员。\",\"spaceTour.step0.title\":\"您的项目在此处\",\"spaceTour.step0.content\":\"项目可帮助团队进行协作以及收集、整理和共享文件与资源。\",\"spaceTour.step1.title\":\"添加项目所需的一切\",\"spaceTour.step1.content\":\"将工作文件、参考图像、资源等集中在一处。\",\"spaceTour.step2.title\":\"设置（和忘记）权限\",\"spaceTour.step2.content\":\"当您邀请合作者时，为他们分配正确的访问权限，以便省时省事。将仅供查看的包发送给利益相关者以供审查和反馈。\",\"error.cantCreateSpace\":\"工作区存储空间已满\",\"error.exceedQuota.create.detail.description1\":\"目前无法创建任何新内容。请选择\",\"error.exceedQuota.description2\":\"以释放存储空间。\",\"error.exceedQuota.add.detail.description1\":\"您目前无法添加任何新内容。选择\",\"error.move.generic\":\"无法移动，因为出现了错误\",\"error.move.signedOut\":\"无法移动，因为您已注销\",\"error.move.permissionRevoked\":\"无法移动，因为已从此项目中将您移除\",\"error.move.deleted\":\"无法移动，因为其他人删除了此项\",\"error.move.duplicate\":\"无法移动，因为您尝试移至的位置已存在此项\",\"error.copy.generic\":\"无法复制，因为出现了错误\",\"error.copy.signedOut\":\"无法复制，因为您已注销\",\"error.copy.permissionRevoked\":\"无法复制，因为已从此项目中将您移除\",\"error.copy.deleted\":\"无法复制，因为其他人删除了此项\",\"error.copy.duplicate\":\"无法复制，因为您尝试复制到的位置已存在此项\",\"checkbox.select\":\"选择\",\"listItem.fileSize\":\"文件大小\",\"facepile.additionalMembers\":\"其他成员 +{count}\",\"facepile.memberName\":\"{name}，成员\",\"coachmark.information\":\"信息\",\"toolbar.tools\":\"工具\",\"griditem.error.message\":\"无法获取\",\"griditem.error.button\":\"重试\",\"ats.move.extendedNotification\":\"当您的移动完成时，您将收到通知。\",\"file.deleted.error.heading\":\"无法{operation}文件\",\"file.deleted.error.description\":\"无法{operation}此文件，因为已删除了它。请从已删除的文件还原并重试，或选取不同的位置。\",\"file.deleted.rename.error.description\":\"无法重命名此文件，因为已删除了它。请选择“转到‘已删除’”以还原此文件。\"}");

/***/ }),

/***/ "b/7Q":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return MenuType; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return EventType; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return ItemViewEventType; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return Workflow; });
/*************************************************************************
 *   ADOBE CONFIDENTIAL
 *
 *   Copyright 2022 Adobe
 *   All Rights Reserved.
 *
 *   NOTICE:  All information contained herein is, and remains
 *   the property of Adobe and its suppliers, if any. The intellectual
 *   and technical concepts contained herein are proprietary to Adobe
 *   and its suppliers and are protected by all applicable intellectual
 *   property laws, including trade secret and copyright laws.
 *   Dissemination of this information or reproduction of this material
 *   is strictly forbidden unless prior written permission is obtained
 *   from Adobe.
 **************************************************************************/
var MenuType;
(function (MenuType) {
    MenuType["CCDRightRail"] = "right-nav";
    MenuType["Context"] = "context-menu";
    MenuType["Dialog"] = "dialog";
    MenuType["DragBreadcrumb"] = "drag-breadcrumb";
    MenuType["DragFolder"] = "drag-folder";
    MenuType["DragShortcut"] = "drag-shortcut";
    MenuType["DragSideNav"] = "drag-side-nav";
    MenuType["DragView"] = "drag-view";
    MenuType["Header"] = "header";
    MenuType["Item"] = "item";
    MenuType["Desktop"] = "desktop";
})(MenuType || (MenuType = {}));
/**
 * String representations of statuses for analytics
 */
var EventType;
(function (EventType) {
    EventType["Click"] = "click";
    EventType["Drag"] = "drag";
    EventType["Error"] = "error";
    EventType["Success"] = "success";
    EventType["Undo"] = "undo";
    EventType["Info"] = "info";
})(EventType || (EventType = {}));
var ItemViewEventType;
(function (ItemViewEventType) {
    ItemViewEventType["Render"] = "render";
    ItemViewEventType["Click"] = "click";
    ItemViewEventType["DragNav"] = "drag-nav";
})(ItemViewEventType || (ItemViewEventType = {}));
/**
 * String representations of different SDM Workflows
 */
var Workflow;
(function (Workflow) {
    Workflow["Document"] = "Document-Operation";
    Workflow["Folder"] = "Folder-Operation";
    Workflow["Asset"] = "Asset-Operation";
})(Workflow || (Workflow = {}));


/***/ }),

/***/ "b/AU":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/normalize-path.ts
var normalize_path = __webpack_require__("7L8R");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/is-ancestor.ts
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2019 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/

function convertToSegments(path) {
    return path.split('/').filter(segment => segment.length);
}
/**
 * determines if the `potentialParent` is an ancestor of the `potentialChild`
 *
 * @param potentialParent - the path which may be the parent
 * @param potentialChild - the path which may be the child
 *
 * @example
 *     isParent('/cloud-content', '/cloud-content/a);    // true
 *     isParent('/cloud-content/a', '/cloud-content/a);  // false
 *     isParent('/cloud-content/ab', '/cloud-content/a); // false
 *
 */
function isAncestor(potentialParent, potentialChild) {
    if (potentialParent === potentialChild) {
        return false;
    }
    const parentSegments = convertToSegments(Object(normalize_path["a" /* default */])(potentialParent));
    const childSegments = convertToSegments(Object(normalize_path["a" /* default */])(potentialChild));
    return parentSegments.every((parentSegment, index) => childSegments[index] === parentSegment);
}

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/valid-move.ts
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2020 Adobe Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Incorporated.
 **************************************************************************/

/**
 * Detect if moving any folder into itself or its child
 */
function isValidMove(disabledPaths, targetPath) {
    // TODO: isValidMove returns false when the move is VALID. Either rename or change return value
    const movingParentInsideChild = disabledPaths.some(path => isAncestor(path, targetPath));
    const movingSelfIntoSelf = disabledPaths.includes(targetPath);
    return movingParentInsideChild || movingSelfIntoSelf;
}
/* harmony default export */ var valid_move = __webpack_exports__["a"] = (isValidMove);


/***/ }),

/***/ "b0cz":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/

Object.defineProperty(exports, "__esModule", {
  value: true
});
var AcplSearchMode;

(function (AcplSearchMode) {
  AcplSearchMode["ALL"] = "all";
  AcplSearchMode["ONLINE_ONLY"] = "online";
  AcplSearchMode["OFFLINE_ONLY"] = "offline";
})(AcplSearchMode || (AcplSearchMode = {}));

exports.default = AcplSearchMode;

/***/ }),

/***/ "b0oQ":
/***/ (function(module) {

module.exports = JSON.parse("{\"Clear search\":\"Effacer la recherche\"}");

/***/ }),

/***/ "b2OE":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return matches; });
/* harmony import */ var _packages_CDOView_ViewItem__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("lqMc");
/* harmony import */ var _teams_SpacesFilter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("lPCU");
/* harmony import */ var _utils_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("YVc3");



function getText(asset) {
    return asset.displayName;
}
function matches(filterText, asset, intl, metadataFormat) {
    // Since libraries have dedicated pages which only include items of those types, we should exclude their mime types
    // from the filter text. Otherwise, some characters might match all items, since they have the mimetype in common.
    const appendMetadata = asset.type !== _utils_constants__WEBPACK_IMPORTED_MODULE_2__[/* LIBRARY_MIMETYPE */ "n"];
    let text = getText(asset).toLowerCase();
    if (appendMetadata) {
        text += ' ' + Object(_packages_CDOView_ViewItem__WEBPACK_IMPORTED_MODULE_0__[/* getMetadataFilterText */ "b"])(asset, intl, metadataFormat).toLowerCase();
    }
    return filterText
        .trim()
        .toLowerCase()
        .split(/\s+/g)
        .every(word => text.indexOf(word) >= 0);
}
// TODO: Refactor this usage of the same filter component.
/* harmony default export */ __webpack_exports__["a"] = (_teams_SpacesFilter__WEBPACK_IMPORTED_MODULE_1__[/* default */ "b"]);


/***/ }),

/***/ "b3kR":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _react_react_spectrum_Link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("v7z/");
/* harmony import */ var _react_react_spectrum_Link__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Link__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var mobx_react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("okNM");
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2020 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
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;
};



let CDOLink = class CDOLink extends react__WEBPACK_IMPORTED_MODULE_0__["Component"] {
    constructor() {
        super(...arguments);
        this.openExternal = (e) => {
            const { href, callbacks } = this.props;
            e.preventDefault();
            callbacks.onOpenExternalLink && callbacks.onOpenExternalLink(href);
        };
    }
    render() {
        const { className, href, variant, onClick, id, callbacks, children } = this.props;
        // If onClick is provided, then there is custom click behavior for this link.
        // If callbacks.onOpenExternalLink is provided, then use host's method of opening
        // external links. Otherwise, use the normal behavior for links.
        const onClickHandler = onClick || ((callbacks === null || callbacks === void 0 ? void 0 : callbacks.onOpenExternalLink) && this.openExternal);
        return (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_react_react_spectrum_Link__WEBPACK_IMPORTED_MODULE_1___default.a, { className: className, href: href, target: "_blank", variant: variant, onClick: onClickHandler, id: id }, children));
    }
};
CDOLink = __decorate([
    Object(mobx_react__WEBPACK_IMPORTED_MODULE_2__[/* inject */ "d"])('callbacks')
], CDOLink);
/* harmony default export */ __webpack_exports__["a"] = (CDOLink);


/***/ }),

/***/ "b7KY":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;
/*************************************************************************
* ADOBE CONFIDENTIAL
* ___________________
*
* Copyright 2019 Adobe
* All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains
* the property of Adobe and its suppliers, if any. The intellectual
* and technical concepts contained herein are proprietary to Adobe
* and its suppliers and are protected by all applicable intellectual
* property laws, including trade secret and copyright laws.
* Dissemination of this information or reproduction of this material
* is strictly forbidden unless prior written permission is obtained
* from Adobe.
**************************************************************************/

const PREFIX = 'react-spectrum-';
let incrementor = 0;

var _default = () => PREFIX + ++incrementor;

exports.default = _default;

/***/ }),

/***/ "b80T":
/***/ (function(module, exports, __webpack_require__) {

var baseTimes = __webpack_require__("UNi/"),
    isArguments = __webpack_require__("03A+"),
    isArray = __webpack_require__("Z0cm"),
    isBuffer = __webpack_require__("DSRE"),
    isIndex = __webpack_require__("wJg7"),
    isTypedArray = __webpack_require__("c6wG");
/** Used for built-in method references. */


var objectProto = Object.prototype;
/** Used to check objects for own properties. */

var hasOwnProperty = objectProto.hasOwnProperty;
/**
 * Creates an array of the enumerable property names of the array-like `value`.
 *
 * @private
 * @param {*} value The value to query.
 * @param {boolean} inherited Specify returning inherited property names.
 * @returns {Array} Returns the array of property names.
 */

function arrayLikeKeys(value, inherited) {
  var isArr = isArray(value),
      isArg = !isArr && isArguments(value),
      isBuff = !isArr && !isArg && isBuffer(value),
      isType = !isArr && !isArg && !isBuff && isTypedArray(value),
      skipIndexes = isArr || isArg || isBuff || isType,
      result = skipIndexes ? baseTimes(value.length, String) : [],
      length = result.length;

  for (var key in value) {
    if ((inherited || hasOwnProperty.call(value, key)) && !(skipIndexes && ( // Safari 9 has enumerable `arguments.length` in strict mode.
    key == 'length' || // Node.js 0.10 has enumerable non-index properties on buffers.
    isBuff && (key == 'offset' || key == 'parent') || // PhantomJS 2 has enumerable non-index properties on typed arrays.
    isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset') || // Skip index properties.
    isIndex(key, length)))) {
      result.push(key);
    }
  }

  return result;
}

module.exports = arrayLikeKeys;

/***/ }),

/***/ "bBy9":
/***/ (function(module, exports, __webpack_require__) {

__webpack_require__("w2d+");

var global = __webpack_require__("5T2Y");

var hide = __webpack_require__("NegM");

var Iterators = __webpack_require__("SBuE");

var TO_STRING_TAG = __webpack_require__("UWiX")('toStringTag');

var DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' + 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' + 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' + 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' + 'TextTrackList,TouchList').split(',');

for (var i = 0; i < DOMIterables.length; i++) {
  var NAME = DOMIterables[i];
  var Collection = global[NAME];
  var proto = Collection && Collection.prototype;
  if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);
  Iterators[NAME] = Iterators.Array;
}

/***/ }),

/***/ "bFaP":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return SyncStatus; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return SyncDirection; });
/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("2vnA");
/* harmony import */ var _DocumentStore__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("xjsA");
/* harmony import */ var _utils_Logger__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("lmMR");
/* harmony import */ var _Subscribable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("1E+m");
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2019 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
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;
};
var __metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};




// Regardless of network speed SyncProgress notifications seems to reliably
// fire at least every couple of seconds, so 10 seconds should be fine.
//
// TODO: When Cancel Download sends a notification, we can remove this.
// (https://jira.corp.adobe.com/browse/ACPL-8755)
const SYNC_TIMEOUT = 10 * 1000; // eslint-disable-line @typescript-eslint/no-magic-numbers
/**
 * https://git.corp.adobe.com/ACPLocal/acp-local/blob/581076908c358be896482cfc74fde8f284586cec/acp.local/public/include/notification/NotificationRequest.h#L429
 */
var SyncDirection;
(function (SyncDirection) {
    SyncDirection[SyncDirection["NONE"] = 0] = "NONE";
    SyncDirection[SyncDirection["UPLOAD"] = 2] = "UPLOAD";
    SyncDirection[SyncDirection["DOWNLOAD"] = 4] = "DOWNLOAD";
})(SyncDirection || (SyncDirection = {}));
/**
 * This enum is a representation of ACPLocal's SyncStatus enum, which can be found here:
 * https://git.corp.adobe.com/ACPLocal/acp-local/blob/development/acp.local/public/include/notification/AssetSyncNotification.h
 */
var SyncStatus;
(function (SyncStatus) {
    SyncStatus[SyncStatus["syncing"] = 0] = "syncing";
    SyncStatus[SyncStatus["complete"] = 1] = "complete";
    SyncStatus[SyncStatus["error"] = 2] = "error";
})(SyncStatus || (SyncStatus = {}));
/**
 * MobX Store that maintains the state of syncing assets
 *
 * @info
 * This was implemented separately from the DocumentStore and DocumentModel for the
 * following reasons:
 *   - An element may take longer to sync than its DocumentModel instance persists. We create
 *     new DocumentModels every time a collection is marked dirty
 *   - An element may be syncing that hasn't been loaded into our document collection by the user yet.
 */
class AssetSyncStateStore extends _Subscribable__WEBPACK_IMPORTED_MODULE_3__[/* Subscribable */ "a"] {
    constructor(removeOnSyncComplete = true) {
        super();
        this.removeOnSyncComplete = removeOnSyncComplete;
        this.logger = new _utils_Logger__WEBPACK_IMPORTED_MODULE_2__[/* Logger */ "a"](this.constructor.name);
        this.syncState = new Map();
        this.syncTimeouts = new Map();
        this.documentsPendingSync = new Set();
        /**
         * Used to listen for asset sync events from acp-fetch
         *
         * @info
         * This shouldn't be called manually
         *
         * @param syncPayload - asset sync event payload
         */
        this.onAssetSyncEvent = (syncPayload, error) => {
            const { assetRef, syncStatus, cloudAssetId } = syncPayload;
            this.logger.debug('onAssetSyncEvent', cloudAssetId, syncStatus, syncPayload);
            if (syncStatus === SyncStatus.syncing) {
                this.setAssetIsSyncing(syncPayload);
            }
            else if (syncStatus === SyncStatus.complete) {
                this.setAssetIsComplete(syncPayload);
            }
            else if (syncStatus === SyncStatus.error) {
                this.logger.debug('...SyncStatus error', assetRef);
                this.notifySubscribers('onAssetSyncFail', error);
                this.removeSyncingAsset(syncPayload);
            }
        };
        this.setAssetIsSyncing = (syncPayload) => {
            const elementSyncKey = AssetSyncStateStore.determineElementSyncKey(syncPayload);
            if (!elementSyncKey || this.syncState.has(elementSyncKey)) {
                // if we're not given cloudID/localID/path or we already know
                // the asset is syncing (sometimes SyncProgress notifs fire first)
                // then ignore
                return;
            }
            this.logger.debug('...sync start', elementSyncKey);
            this.resetSyncTimeout(elementSyncKey);
            this.syncState.set(elementSyncKey, syncPayload);
        };
        this.setAssetIsComplete = (syncPayload) => {
            const { assetRef } = syncPayload;
            const elementSyncKey = this.getElementSyncKey(assetRef);
            this.logger.debug('...sync complete', elementSyncKey);
            this.clearSyncTimeout(elementSyncKey);
            if (assetRef.cloudID) {
                this.documentsPendingSync.delete(assetRef.cloudID);
            }
            if (assetRef.localID) {
                this.documentsPendingSync.delete(assetRef.localID);
            }
            if (this.removeOnSyncComplete) {
                this.removeSyncingAsset(syncPayload);
            }
            else {
                this.syncState.set(elementSyncKey, syncPayload);
            }
            this.notifySubscribers('onAssetSyncComplete');
        };
        this.removeSyncingAsset = (syncPayload) => {
            const { assetRef } = syncPayload;
            const elementSyncKey = this.getElementSyncKey(assetRef);
            this.logger.debug('...removing sync', elementSyncKey);
            this.syncState.delete(elementSyncKey);
        };
        /**
         * Used to listen for sync progress events from acp-fetch
         *
         * @info
         * This shouldn't be called manually
         *
         * @param syncPayload - sync progress event payload
         */
        this.onSyncProgressEvent = (syncPayload) => {
            const { cloudAssetId, assetRef, bytesTotalEx, bytesTransferredEx, transferDirection } = syncPayload;
            this.logger.debug('onSyncProgressEvent', cloudAssetId, syncPayload);
            const elementSyncKey = this.getElementSyncKey(assetRef);
            if (assetRef.cloudID) {
                this.documentsPendingSync.delete(assetRef.cloudID);
            }
            const newSyncState = (prevState) => ({
                // can assume syncing because SyncProgress notif
                syncStatus: SyncStatus.syncing,
                assetRef: prevState.assetRef,
                bytesTransferred: bytesTransferredEx,
                bytesTotal: bytesTotalEx,
                transferDirection,
            });
            if (elementSyncKey) {
                // don't update already-completed items
                if (this.syncState.get(elementSyncKey).syncStatus !== SyncStatus.complete) {
                    this.resetSyncTimeout(elementSyncKey);
                    const syncState = newSyncState(this.syncState.get(elementSyncKey));
                    this.syncState.set(elementSyncKey, syncState);
                }
            }
            else {
                // Sync Progress events sometimes fire before Asset Sync events
                const syncState = newSyncState(syncPayload);
                this.setAssetIsSyncing(syncState);
            }
        };
        /**
         * We should only listen to notifications onAssetChange OFFLINE here since we are checking
         * if a document is being modified offline to show the pending sync status
         *
         * @param changeOperation {ChangeOperation} numeric representation of the operation
         * @param cloudAssetId {String} cloud id of the document modified
         * @param localAssetId {String} local id of the document created
         */
        this.onAssetChange = ({ changeOperation, cloudAssetId, localAssetId, }) => {
            if (changeOperation === _DocumentStore__WEBPACK_IMPORTED_MODULE_1__[/* AssetChangeOperation */ "a"].UPDATE) {
                this.documentsPendingSync.add(cloudAssetId);
            }
            if (changeOperation === _DocumentStore__WEBPACK_IMPORTED_MODULE_1__[/* AssetChangeOperation */ "a"].ADD) {
                this.documentsPendingSync.add(localAssetId);
            }
        };
        this.clearComplete = () => {
            this.syncState.forEach((data, id) => {
                if (data.syncStatus === SyncStatus.complete) {
                    this.syncState.delete(id);
                }
            });
        };
        this.clear = () => {
            this.syncState.clear();
        };
        // TODO: before CDO/UAP can use CDCGlobalStore
        // `removeOnSyncComplete` functionality needs to be moved to CloudStatusStore instead
        this.removeOnSyncComplete = removeOnSyncComplete;
    }
    /**
     * If removeOnSyncComplete is false, this will include assets
     * which have completed syncing since the last clearComplete() call
     */
    get allAssets() {
        return [...this.syncState.values()];
    }
    /**
     * Only the assets which are actively syncing
     */
    get syncingAssets() {
        return this.allAssets.filter(x => x.syncStatus === SyncStatus.syncing);
    }
    /**
     * All assets which have either errored or completed syncing.
     * If removeOnSyncComplete is true, this will be empty
     */
    get finishedAssets() {
        return this.allAssets.filter(x => x.syncStatus !== SyncStatus.syncing);
    }
    /**
     * Returns true if the element is currently syncing, otherwise returns false
     * @param element
     */
    isSyncing(element) {
        return Object(mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"])(() => {
            // SAM assets track their own sync status.
            // TODO: only check SAM sync status here in AssetSyncStateStore, so we can ensure
            //       parity between ACPL and SAM models. Once ACPF models are removed, also refactor
            //       to remove AssetSyncStateStore.
            // https://jira.corp.adobe.com/browse/CCXCD-4801
            if (element.isSyncing) {
                return true;
            }
            const elementSyncKey = this.getElementSyncKey(element);
            const syncPayload = this.syncState.get(elementSyncKey);
            if (!syncPayload) {
                return false;
            }
            return syncPayload.syncStatus === SyncStatus.syncing;
        });
    }
    /**
     * Returns true if the element is pending syncing, otherwise returns false
     * @param element
     */
    isPendingSync(element) {
        return Object(mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"])(() => {
            // SAM assets track their own sync status.
            // TODO: only check SAM sync status here in AssetSyncStateStore, so we can ensure
            //       parity between ACPL and SAM models. Once ACPF models are removed, also refactor
            //       to remove AssetSyncStateStore.
            // https://jira.corp.adobe.com/browse/CCXCD-4801
            if (element.isPendingSync) {
                return true;
            }
            return this.documentsPendingSync.has(element.id);
        });
    }
    resetSyncTimeout(key) {
        this.clearSyncTimeout(key);
        const timeoutId = setTimeout(() => Object(mobx__WEBPACK_IMPORTED_MODULE_0__[/* runInAction */ "C"])(() => {
            this.logger.debug(`sync timed out for ${key}`);
            const syncPayload = this.syncState.get(key);
            this.notifySubscribers('onAssetSyncTimeout', syncPayload);
            this.syncState.delete(key);
        }), SYNC_TIMEOUT);
        this.syncTimeouts.set(key, timeoutId);
    }
    clearSyncTimeout(key) {
        const timeoutId = this.syncTimeouts.get(key);
        timeoutId && clearTimeout(timeoutId);
        this.syncTimeouts.delete(key);
    }
    /**
     * Retrieves the ID of an element used as the key to the syncStatus Map. Returns
     * undefined if the element is not syncing
     *
     * We have to do this because new documents may not have a cloud ID when they begin
     * syncing, but they will have a cloud ID when syncing is complete.
     */
    getElementSyncKey(element) {
        let inCacheKey;
        if (this.syncState.has(element.cloudID)) {
            inCacheKey = element.cloudID;
        }
        else if (this.syncState.has(element.localID)) {
            inCacheKey = element.localID;
        }
        else if (this.syncState.has(element.path)) {
            inCacheKey = element.path;
        }
        return inCacheKey;
    }
    /**
     * Determines which assetRef component to use for SyncState cache key
     */
    static determineElementSyncKey(syncPayload) {
        const { cloudID, localID, path } = syncPayload.assetRef;
        let inCacheKey;
        if (cloudID) {
            inCacheKey = cloudID;
        }
        else if (localID) {
            inCacheKey = localID;
        }
        else if (path) {
            inCacheKey = path;
        }
        return inCacheKey;
    }
}
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", Object)
], AssetSyncStateStore.prototype, "syncState", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", Object)
], AssetSyncStateStore.prototype, "documentsPendingSync", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], AssetSyncStateStore.prototype, "allAssets", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], AssetSyncStateStore.prototype, "syncingAssets", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], AssetSyncStateStore.prototype, "finishedAssets", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* action */ "j"],
    __metadata("design:type", Object)
], AssetSyncStateStore.prototype, "onAssetSyncEvent", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* action */ "j"],
    __metadata("design:type", Object)
], AssetSyncStateStore.prototype, "setAssetIsSyncing", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* action */ "j"],
    __metadata("design:type", Object)
], AssetSyncStateStore.prototype, "setAssetIsComplete", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* action */ "j"],
    __metadata("design:type", Object)
], AssetSyncStateStore.prototype, "removeSyncingAsset", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* action */ "j"],
    __metadata("design:type", Object)
], AssetSyncStateStore.prototype, "onSyncProgressEvent", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* action */ "j"],
    __metadata("design:type", Object)
], AssetSyncStateStore.prototype, "onAssetChange", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* action */ "j"],
    __metadata("design:type", Object)
], AssetSyncStateStore.prototype, "clearComplete", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* action */ "j"],
    __metadata("design:type", Object)
], AssetSyncStateStore.prototype, "clear", void 0);
/* harmony default export */ __webpack_exports__["c"] = (AssetSyncStateStore);



/***/ }),

/***/ "bI7j":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("8YL7"),
      24: __webpack_require__("mSHx")
    }
  }));
};

WrappedIcon.displayName = 'DeleteOutline';
exports.default = WrappedIcon;

/***/ }),

/***/ "bK75":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("path", {
  d: "M20 26h-4v9.485a.5.5 0 0 0 .5.5h3a.5.5 0 0 0 .5-.5zm9.144-14.758a7.415 7.415 0 0 0 .12-1.271c0-4.5-3.106-8.515-8.075-8.515-4.2 0-7.024 3.422-8.011 6.953a7.723 7.723 0 0 0-2.213-.325 6.779 6.779 0 0 0-6.75 6.776 5.841 5.841 0 0 0 .28 1.772c-.094-.006-.184-.026-.28-.026C1.79 16.607.04 19.445.04 21.374S1.766 26 3.9 26H16v-6h-4.331a.5.5 0 0 1-.352-.855L18 12.51l6.683 6.635a.5.5 0 0 1-.352.855H20v6h9.6l1.285-.211C33.821 25.248 36 22.755 36 18.874c0-4.174-3.864-7.134-6.856-7.632z"
}));

/***/ }),

/***/ "bLbN":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var _UxpOptions = _interopRequireDefault(__webpack_require__("zvwv"));

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}
/*************************************************************************
* ADOBE CONFIDENTIAL
* ___________________
*
* Copyright 2019 Adobe
* All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains
* the property of Adobe and its suppliers, if any. The intellectual
* and technical concepts contained herein are proprietary to Adobe
* and its suppliers and are protected by all applicable intellectual
* property laws, including trade secret and copyright laws.
* Dissemination of this information or reproduction of this material
* is strictly forbidden unless prior written permission is obtained
* from Adobe.
**************************************************************************/


module.exports = _UxpOptions.default.select('Dialog', () => __webpack_require__("UE8u"), () => __webpack_require__("PxaR"), () => __webpack_require__("K4vZ"));

/***/ }),

/***/ "bNpM":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
Object.defineProperty(exports, "default", {
  enumerable: true,
  get: function () {
    return _MaybeUxpToast.default;
  }
});
Object.defineProperty(exports, "Toast", {
  enumerable: true,
  get: function () {
    return _MaybeUxpToast.default;
  }
});

var _MaybeUxpToast = _interopRequireDefault(__webpack_require__("Fad1"));

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

/***/ }),

/***/ "bUsb":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var _UxpOptions = _interopRequireDefault(__webpack_require__("zvwv"));

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}
/*************************************************************************
* ADOBE CONFIDENTIAL
* ___________________
*
* Copyright 2019 Adobe
* All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains
* the property of Adobe and its suppliers, if any. The intellectual
* and technical concepts contained herein are proprietary to Adobe
* and its suppliers and are protected by all applicable intellectual
* property laws, including trade secret and copyright laws.
* Dissemination of this information or reproduction of this material
* is strictly forbidden unless prior written permission is obtained
* from Adobe.
**************************************************************************/


module.exports = _UxpOptions.default.select('Provider', () => __webpack_require__("HGBq"), () => __webpack_require__("htpE"));

/***/ }),

/***/ "bXP0":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* unused harmony export ADOBE_SERVICE_ENDPOINTS */
/* unused harmony export DEFAULTS */
/* unused harmony export ROOT_FOLDER_PATH */
/* unused harmony export ARCHIVE_FOLDER_PATH */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return FOLDER_MIMETYPES; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ARTIFACT_MIMETYPES; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return CANVAS_MIMETYPE; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "j", function() { return PROJECT_MIMETYPE; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return LIBRARY_MIMETYPE; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "m", function() { return WEBLINK_MIMETYPE; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return DEFAULT_TOOLTIP_DELAY; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "i", function() { return PROJECT_CARD_COLOR_BAND_HEIGHT; });
/* unused harmony export INGEST_MAX_QUEUED_EVENTS */
/* unused harmony export INGEST_DEBOUNCE_VALUE */
/* unused harmony export INGEST_PROJECT_VALUE */
/* unused harmony export MAX_RECENTS */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return MINIMUM_ACCEPTED_TIMEOUT; });
/* unused harmony export RETRY_ATTEMPTS */
/* unused harmony export RETRY_INTERVAL */
/* unused harmony export REPO_MODIFIED_BUFFER_SECONDS */
/* unused harmony export ARCHIVE_BUFFER_SECONDS */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "k", function() { return SINGLE_CLICK_THROTTLE; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return FOCUS_ITEM_CLASS; });
/* unused harmony export SELECTED_ITEM_CLASS */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return ENTER_KEY_CODE; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "l", function() { return SPACE_KEY_CODE; });
/* unused harmony export ModeType */
/* unused harmony export Themes */
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
const ADOBE_SERVICE_ENDPOINTS = {
    hosts: {
        prod: {
            search: 'adobesearch.adobe.io',
            storage: 'cc-api-storage.adobe.io',
        },
        stage: {
            search: 'adobesearch-stage.adobe.io',
            storage: 'cc-api-storage-stage.adobe.io',
        },
    },
    protocol: 'https',
};
const DEFAULTS = {
    LOCALE: 'en',
    MESSAGES: {},
    SERVICE_ENVIRONMENT: 'stage',
};
const ROOT_FOLDER_PATH = 'cloud-content';
const ARCHIVE_FOLDER_PATH = 'cloud-content-archive';
const FOLDER_MIMETYPES = [
    'application/vnd.adobe.directory+json',
    'application/vnd.adobecloud.directory+json',
];
const ARTIFACT_MIMETYPES = [
    'application/vnd.adobe.xd.sharedartifact+dcx',
    'application/vnd.adobe.uxdesign.designspec+dcx',
    'application/vnd.adobe.uxdesign.prototype+dcx',
];
const CANVAS_MIMETYPE = 'application/vnd.adobe.hz.canvas+dcx';
const PROJECT_MIMETYPE = 'project';
// For our own use in the 1up only, not to be confused with the actual mimetype
// of libraries on the platform (much like PROJECT_MIMETYPE).
const LIBRARY_MIMETYPE = 'library';
const WEBLINK_MIMETYPE = 'application/vnd.adobe.weblink+dcx';
const DEFAULT_TOOLTIP_DELAY = 500;
// In Your Spaces grid view, the default color band's height is 6px
const PROJECT_CARD_COLOR_BAND_HEIGHT = 6;
const INGEST_MAX_QUEUED_EVENTS = 500;
const INGEST_DEBOUNCE_VALUE = 5000;
const INGEST_PROJECT_VALUE = 'cdo-service';
const MAX_RECENTS = 15;
/**
 * The setTimeout amount for this component.
 */
const MINIMUM_ACCEPTED_TIMEOUT = 100;
const RETRY_ATTEMPTS = 50;
const RETRY_INTERVAL = 500;
const REPO_MODIFIED_BUFFER_SECONDS = 5;
const ARCHIVE_BUFFER_SECONDS = 20;
const SINGLE_CLICK_THROTTLE = 500;
const FOCUS_ITEM_CLASS = 'CCProjectsFocusItem';
const SELECTED_ITEM_CLASS = 'selectedItem';
const ENTER_KEY_CODE = 13;
const SPACE_KEY_CODE = 32;
var ModeType;
(function (ModeType) {
    ModeType["organizer"] = "organizer";
    ModeType["open"] = "open";
    ModeType["relink"] = "relink";
    ModeType["saveAs"] = "saveAs";
    ModeType["saveToFolder"] = "saveToFolder";
})(ModeType || (ModeType = {}));
/* host app theme names */
var Themes;
(function (Themes) {
    Themes["light"] = "light";
    Themes["lightest"] = "lightest";
    Themes["dark"] = "dark";
    Themes["darkest"] = "darkest";
})(Themes || (Themes = {}));


/***/ }),

/***/ "bZMm":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Headers", function() { return Headers; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Request", function() { return Request; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Response", function() { return Response; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DOMException", function() { return DOMException; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fetch", function() { return fetch; });
var global = typeof globalThis !== 'undefined' && globalThis || typeof self !== 'undefined' && self || typeof global !== 'undefined' && global;
var support = {
  searchParams: 'URLSearchParams' in global,
  iterable: 'Symbol' in global && 'iterator' in Symbol,
  blob: 'FileReader' in global && 'Blob' in global && function () {
    try {
      new Blob();
      return true;
    } catch (e) {
      return false;
    }
  }(),
  formData: 'FormData' in global,
  arrayBuffer: 'ArrayBuffer' in global
};

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

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

  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) || name === '') {
    throw new TypeError('Invalid character in header field name: "' + 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) {
    /*
      fetch-mock wraps the Response object in an ES6 Proxy to
      provide useful test harness features such as flush. However, on
      ES5 browsers without fetch or Proxy support pollyfills must be used;
      the proxy-pollyfill is unable to proxy an attribute unless it exists
      on the object before the Proxy is created. This change ensures
      Response.bodyUsed exists on the instance, while maintaining the
      semantic of setting Request.bodyUsed in the constructor before
      _initBody is called.
    */
    this.bodyUsed = this.bodyUsed;
    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 {
      this._bodyText = body = Object.prototype.toString.call(body);
    }

    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) {
        var isConsumed = consumed(this);

        if (isConsumed) {
          return isConsumed;
        }

        if (ArrayBuffer.isView(this._bodyArrayBuffer)) {
          return Promise.resolve(this._bodyArrayBuffer.buffer.slice(this._bodyArrayBuffer.byteOffset, this._bodyArrayBuffer.byteOffset + this._bodyArrayBuffer.byteLength));
        } else {
          return 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) {
  if (!(this instanceof Request)) {
    throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');
  }

  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;
    this.signal = input.signal;

    if (!body && input._bodyInit != null) {
      body = input._bodyInit;
      input.bodyUsed = true;
    }
  } else {
    this.url = String(input);
  }

  this.credentials = options.credentials || this.credentials || 'same-origin';

  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.signal = options.signal || this.signal;
  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);

  if (this.method === 'GET' || this.method === 'HEAD') {
    if (options.cache === 'no-store' || options.cache === 'no-cache') {
      // Search for a '_' parameter in the query string
      var reParamSearch = /([?&])_=[^&]*/;

      if (reParamSearch.test(this.url)) {
        // If it already exists then set the value with the current time
        this.url = this.url.replace(reParamSearch, '$1_=' + new Date().getTime());
      } else {
        // Otherwise add a new '_' parameter to the end with the current time
        var reQueryString = /\?/;
        this.url += (reQueryString.test(this.url) ? '&' : '?') + '_=' + new Date().getTime();
      }
    }
  }
}

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(); // Replace instances of \r\n and \n followed by at least one space or horizontal tab with a space
  // https://tools.ietf.org/html/rfc7230#section-3.2

  var preProcessedHeaders = rawHeaders.replace(/\r?\n[\t ]+/g, ' '); // Avoiding split via regex to work around a common IE11 bug with the core-js 3.6.0 regex polyfill
  // https://github.com/github/fetch/issues/748
  // https://github.com/zloirock/core-js/issues/751

  preProcessedHeaders.split('\r').map(function (header) {
    return header.indexOf('\n') === 0 ? header.substr(1, header.length) : header;
  }).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 (!(this instanceof Response)) {
    throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');
  }

  if (!options) {
    options = {};
  }

  this.type = 'default';
  this.status = options.status === undefined ? 200 : options.status;
  this.ok = this.status >= 200 && this.status < 300;
  this.statusText = options.statusText === undefined ? '' : '' + options.statusText;
  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
    }
  });
};

var DOMException = global.DOMException;

try {
  new DOMException();
} catch (err) {
  DOMException = function (message, name) {
    this.message = message;
    this.name = name;
    var error = Error(message);
    this.stack = error.stack;
  };

  DOMException.prototype = Object.create(Error.prototype);
  DOMException.prototype.constructor = DOMException;
}

function fetch(input, init) {
  return new Promise(function (resolve, reject) {
    var request = new Request(input, init);

    if (request.signal && request.signal.aborted) {
      return reject(new DOMException('Aborted', 'AbortError'));
    }

    var xhr = new XMLHttpRequest();

    function abortXhr() {
      xhr.abort();
    }

    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;
      setTimeout(function () {
        resolve(new Response(body, options));
      }, 0);
    };

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

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

    xhr.onabort = function () {
      setTimeout(function () {
        reject(new DOMException('Aborted', 'AbortError'));
      }, 0);
    };

    function fixUrl(url) {
      try {
        return url === '' && global.location.href ? global.location.href : url;
      } catch (e) {
        return url;
      }
    }

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

    if (request.credentials === 'include') {
      xhr.withCredentials = true;
    } else if (request.credentials === 'omit') {
      xhr.withCredentials = false;
    }

    if ('responseType' in xhr) {
      if (support.blob) {
        xhr.responseType = 'blob';
      } else if (support.arrayBuffer && request.headers.get('Content-Type') && request.headers.get('Content-Type').indexOf('application/octet-stream') !== -1) {
        xhr.responseType = 'arraybuffer';
      }
    }

    if (init && typeof init.headers === 'object' && !(init.headers instanceof Headers)) {
      Object.getOwnPropertyNames(init.headers).forEach(function (name) {
        xhr.setRequestHeader(name, normalizeValue(init.headers[name]));
      });
    } else {
      request.headers.forEach(function (value, name) {
        xhr.setRequestHeader(name, value);
      });
    }

    if (request.signal) {
      request.signal.addEventListener('abort', abortXhr);

      xhr.onreadystatechange = function () {
        // DONE (success or failure)
        if (xhr.readyState === 4) {
          request.signal.removeEventListener('abort', abortXhr);
        }
      };
    }

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

if (!global.fetch) {
  global.fetch = fetch;
  global.Headers = Headers;
  global.Request = Request;
  global.Response = Response;
}

/***/ }),

/***/ "bapk":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


exports.__esModule = true;
exports.default = addFocusListener;
/**
 * Firefox doesn't have a focusin event so using capture is easiest way to get bubbling
 * IE8 can't do addEventListener, but does have onfocusin, so we use that in ie8
 *
 * We only allow one Listener at a time to avoid stack overflows
 */

function addFocusListener(handler) {
  var useFocusin = !document.addEventListener;
  var remove = void 0;

  if (useFocusin) {
    document.attachEvent('onfocusin', handler);

    remove = function remove() {
      return document.detachEvent('onfocusin', handler);
    };
  } else {
    document.addEventListener('focus', handler, true);

    remove = function remove() {
      return document.removeEventListener('focus', handler, true);
    };
  }

  return {
    remove: remove
  };
}

module.exports = exports['default'];

/***/ }),

/***/ "bcRB":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = DialogButtons;

var _Button = _interopRequireDefault(__webpack_require__("Cn9g"));

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

__webpack_require__("R358");

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}
/*************************************************************************
* ADOBE CONFIDENTIAL
* ___________________
*
* Copyright 2019 Adobe
* All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains
* the property of Adobe and its suppliers, if any. The intellectual
* and technical concepts contained herein are proprietary to Adobe
* and its suppliers and are protected by all applicable intellectual
* property laws, including trade secret and copyright laws.
* Dissemination of this information or reproduction of this material
* is strictly forbidden unless prior written permission is obtained
* from Adobe.
**************************************************************************/


const BUTTON_VARIANTS = {
  confirmation: 'cta',
  information: 'primary',
  error: 'primary',
  destructive: 'warning'
};

function DialogButtons({
  autoFocusButton,
  confirmLabel,
  secondaryLabel,
  cancelLabel,
  confirmDisabled,
  onConfirm,
  onCancel,
  className,
  variant
}) {
  const confirmVariant = BUTTON_VARIANTS[variant] || 'primary';

  let onKeyDown = event => {
    if (event.key === ' ' || event.key === 'Enter') {
      event.stopPropagation();
    }
  };

  return /*#__PURE__*/_react.default.createElement("div", {
    className: (0, _classnames.default)('react-spectrum-Dialog-buttons', className)
  }, cancelLabel && /*#__PURE__*/_react.default.createElement(_Button.default, {
    variant: "secondary",
    label: cancelLabel,
    onClick: onCancel,
    autoFocus: autoFocusButton === 'cancel',
    onKeyDown: onKeyDown,
    uxpUseNative: false
  }), secondaryLabel && /*#__PURE__*/_react.default.createElement(_Button.default, {
    variant: "secondary",
    label: secondaryLabel,
    onClick: onConfirm ? onConfirm.bind(null, 'secondary') : null,
    autoFocus: autoFocusButton === 'secondary',
    disabled: confirmDisabled || null,
    onKeyDown: onKeyDown,
    uxpUseNative: false
  }), confirmLabel && /*#__PURE__*/_react.default.createElement(_Button.default, {
    variant: confirmVariant,
    label: confirmLabel,
    onClick: onConfirm ? onConfirm.bind(null, 'primary') : null,
    autoFocus: autoFocusButton === 'confirm',
    disabled: confirmDisabled || null,
    onKeyDown: onKeyDown,
    uxpUseNative: false
  }));
}

/***/ }),

/***/ "bep9":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

const _excluded = ["styles"];

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }

function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

var _default = _ref => {
  let {
    styles = {}
  } = _ref,
      props = _objectWithoutProperties(_ref, _excluded);

  return /*#__PURE__*/_react.default.createElement("svg", _extends({
    xmlns: "http://www.w3.org/2000/svg",
    "data-name": "S_Illu_PresetEmptyDoc_172_L@2x",
    height: "344",
    viewBox: "0 0 344 344",
    width: "344"
  }, props), /*#__PURE__*/_react.default.createElement("path", {
    d: "M231 276H113a21.023 21.023 0 0 1-21-21V101a21.023 21.023 0 0 1 21-21h88.867a22.888 22.888 0 0 1 16.052 6.526l27.132 26.438A23.128 23.128 0 0 1 252 129.437V255a21.024 21.024 0 0 1-21 21zM113 86a15.017 15.017 0 0 0-15 15v154a15.017 15.017 0 0 0 15 15h118a15.017 15.017 0 0 0 15-15V129.437a17.091 17.091 0 0 0-5.137-12.176l-27.132-26.437A16.912 16.912 0 0 0 201.867 86z",
    fill: "#b3b3b3"
  }));
};

exports.default = _default;

/***/ }),

/***/ "bgu4":
/***/ (function(module, exports) {

/* eslint-disable max-len */
module.exports = {
  'confirmationDialog.dontShowAgain': 'Nicht mehr anzeigen',
  'confirmationDialog.confirm.default': 'Weiter',
  'confirmationDialog.cancel.default': 'Abbrechen',
  'confirmationDialog.learnMore': 'Weitere Infos',
  'toast.warning.place': 'Verknüpfte Cloud-Dokumente können noch nicht platziert werden. Betten Sie sie stattdessen ein.',
  'toast.warning.placeLinkOrEmbed': 'Von Ihnen platzierte Assets sind jetzt standardmäßig mit dem Original verknüpft. Das heißt, wenn Sie es an einer Stelle bearbeiten, werden diese Änderungen überall widergespiegelt.',
  'toast.warning.saveAs.invalidFormat': '{genericFormat}-Dateien können hier nicht gespeichert werden. Die Datei wird als {adobeFormat} gespeichert.',
  'pickerView.recent': 'Zuletzt verwendet',
  'pickerView.cloud_docs': 'Ihre Dateien',
  'pickerView.shared_with_you': 'Für Sie freigegeben',
  'pickerView.projects': 'Projekte',
  'pickerView.files': 'Dateien',
  'pickerView.computer': 'Ihr Computer…',
  'pickerView.saveAsInput': 'Speichern unter',
  'pickerView.exportInput': 'Exportieren als',
  'pickerView.sketch_library': 'Sketch-Bibliothek konvertieren...',
  'pickerView.error.saveAsOrExport.default': 'Der Dateiname ist ungültig.',
  'pickerView.error.saveAsOrExport.invalidName': 'Dieser Name enthält unzulässige Zeichen.',
  'pickerView.error.saveAsOrExport.invalidEnd': 'Der Name darf nicht mit „.“ oder einem Leerzeichen enden.',
  'pickerView.error.saveAsOrExport.invalidChar': 'Folgende Zeichen sind für Namen unzulässig: {characters}',
  'pickerView.error.saveAsOrExport.charRestriction': 'Namen dürfen nicht mehr als 200 Zeichen umfassen.',
  'pickerView.error.saveAsOrExport.duplicateName': 'An diesem Ort ist bereits ein Cloud-Dokument mit diesem Namen vorhanden.',
  'pickerView.error.addALibrary.permission': 'Sie sind nicht berechtigt, diese Bibliothek hinzuzufügen',
  'pickerViewFooter.button.add': 'Hinzufügen',
  'pickerViewFooter.button.cancel': 'Abbrechen',
  'pickerViewFooter.button.copy': 'Kopie hier einfügen',
  'pickerViewFooter.button.move': 'Hierher verschieben',
  'pickerViewFooter.button.moveToProject': 'Hierher verschieben',
  'pickerViewFooter.button.copyToProject': 'Kopie hier einfügen',
  'pickerViewFooter.button.choose': 'Wählen',
  'pickerViewFooter.button.save': 'Speichern',
  'pickerViewFooter.button.switchToOSPicker': 'Auf Ihrem Computer',
  'pickerViewFooter.button.save.offline': 'Internetverbindung erforderlich',
  'pickerViewFooter.button.saveAsCopy': 'Speichern',
  'pickerViewFooter.button.export': 'Exportieren',
  'pickerViewFooter.button.placeLinkOrEmbed': 'Platzieren',
  'pickerViewFooter.button.import': 'Importieren',
  'pickerViewFooter.checkbox.placeLink': 'Verknüpft',
  'pickerViewFooter.tooltip.placeLink': 'Sie können dieses Element nur als verknüpftes Asset platzieren.',
  'pickerViewFooter.tooltip.placeEmbed': 'Sie können dieses Element nur als eingebettet platzieren.',
  'pickerViewFooter.saveAs.format.label': 'Format',
  'pickerViewFooter.button.selectProject': 'Speichern',
  'onboardingCdp.title': 'Sie haben viel mehr Möglichkeiten, wenn Sie das Dokument als Cloud-Dokument speichern',
  'onboardingCdp.tooltip': 'Wenn Sie das Dokument auf Ihrem Computer speichern, können Sie die Cloud-Funktionen nicht nutzen.',
  'onboardingCdp.tooltip.link': 'Weitere Infos',
  'onboardingCdp.table.header.saveToCloud': 'Creative Cloud',
  'onboardingCdp.table.header.saveToLocal': 'Auf Ihrem Computer',
  'onboardingCdp.button.saveToCloud': 'In Creative Cloud speichern',
  'onboardingCdp.feature.offline': 'Offline-Zugriff',
  'onboardingCdp.feature.syncing': 'Cloud-Synchronisierung mit all Ihren Geräten',
  'onboardingCdp.feature.autosave': 'Automatisches Speichern jeder Änderung',
  'onboardingCdp.feature.versionHistory': 'Versionsverlauf',
  'onboardingCdp.feature.inviteToEdit': 'Zum Bearbeiten einladen',
  'onboardingCdp.button.saveToLocal': 'Auf Ihrem Computer speichern',
  'onboardingCdp.checkbox.doNotShowAgain': 'Nicht mehr anzeigen',
  'uap.title.place': 'Aus Creative Cloud platzieren',
  'uap.title.import': 'Aus Creative Cloud importieren',
  'uap.title.placeLinkOrEmbed': 'Aus Creative Cloud platzieren',
  'uap.title.linkAssets': 'Von Creative Cloud aus verknüpfen',
  'uap.title.open': 'Aus Creative Cloud öffnen',
  'uap.title.relink': 'Von Creative Cloud aus verknüpfen',
  'uap.title.saveAs': 'In Creative Cloud speichern',
  'uap.title.saveAsCopy': 'In Creative Cloud speichern',
  'uap.title.saveToFolder': 'In Creative Cloud speichern',
  'uap.title.export': 'Zu Creative Cloud exportieren',
  'uap.title.copy': 'Nach Creative Cloud kopieren',
  'uap.title.move': 'In Creative Cloud verschieben',
  'uap.title.moveToProject': 'In Creative Cloud verschieben',
  'uap.title.copyToProject': 'Nach Creative Cloud kopieren',
  'uap.title.reference': 'Zu Creative Cloud hinzufügen',
  'uap.title.selectProject': 'In Creative Cloud speichern',
  'move.toSpace.confirm.title': 'Versionsverlauf wird gelöscht',
  'move.toSpace.confirm.message': 'Durch das Verschieben dieser Datei wird der Versionsverlauf gelöscht. Wenn Sie Ihren Versionsverlauf behalten möchten, erstellen Sie stattdessen eine Kopie.'
};

/***/ }),

/***/ "bitV":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return InternalPreferencesStore; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return emptyPreferencesStore; });
class InternalPreferencesStore {
    async getValue(key) {
        return localStorage.getItem(key);
    }
    async setValue(key, value) {
        localStorage.setItem(key, value);
    }
}
/** A preferences store that is always empty. */
const emptyPreferencesStore = {
    getValue: async (key) => {
        return undefined;
    },
    setValue: async (key, value) => { },
};


/***/ }),

/***/ "brtb":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _stores_AssetModel_CDOAssetModel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("s8Eg");
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("a375");
/* harmony import */ var _normalize_path__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("7L8R");



class DummyFolderAsset extends _stores_AssetModel_CDOAssetModel__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"] {
    /* eslint-disable class-methods-use-this,no-empty-function */
    async archive() { }
    async createFolder() { }
    async delete() { }
    async duplicate() { }
    async export() { }
    async getRendition() { }
    async move() { }
    async pin() { }
    async rename() { }
    async restore() { }
    async unpin() { }
    async purge() { }
    updateFrom() { }
}
/**
 * Creates an IAssetModel representing a Folder. Callers should supply a parent path and name, or a full path;
 *  E.g., these lines create identical models
 *  <code>
 *     const folder1 = createPlaceholderfolder('cloud-content/foo', 'bar');  // parent path and name
 *     const folder2 = createPlaceholderFolder('', 'cloud-content/foo/bar'); // full path
 *  </code>
 */
function createPlaceholderFolder(parentPath, nameOrFullPath = 'untitled', 
// TODO: temporary, to support rename of folder from CCDHeader. Remove when FolderCollection
// has a model to reference
cloudUri = '') {
    const currentDate = new Date(Date.now());
    const newFolderPath = parentPath
        ? `/${Object(_normalize_path__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"])(parentPath)}/${nameOrFullPath}`
        : `/${Object(_normalize_path__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"])(nameOrFullPath)}`;
    const newName = newFolderPath.split('/').slice(-1)[0];
    return new DummyFolderAsset({
        id: `folder${newFolderPath}`,
        path: newFolderPath,
        title: newName,
        repoName: newName,
        accessDate: currentDate,
        modifiedDate: currentDate,
        repoModifiedDate: currentDate,
        createDate: currentDate,
        type: _constants__WEBPACK_IMPORTED_MODULE_1__[/* FOLDER_MIMETYPE */ "i"],
        cloudUri,
        isCached: false,
        hasPendingOperation: false,
        isConflicted: false,
        isUserPinned: false,
        rendition: '',
        externalData: {},
        isRenameDisabled: false,
    });
}
/* harmony default export */ __webpack_exports__["a"] = (createPlaceholderFolder);


/***/ }),

/***/ "btsv":
/***/ (function(module) {

module.exports = JSON.parse("{\"a11y.button.canvases\":\"{name}\",\"a11y.button.libraries\":\"{name}, libreria\",\"a11y.button.listGridToggle\":\"alterna visualizzazione, visualizzazione a {toggledView, select, grid {griglia} list {elenco}}\",\"a11y.button.project\":\"{name}, progetto\",\"a11y.button.published\":\"{name}, {extension}\",\"a11y.button.selectFolder\":\"Seleziona cartella\",\"a11y.button.working\":\"{name}, {extension}, modificato {modified}\",\"a11y.strings.folder\":\"cartella\",\"header.action.newProject\":\"Nuovo progetto\",\"header.action.newLibrary\":\"Nuova libreria\",\"header.action.browseAll\":\"Sfoglia tutto\",\"header.Name\":\"Nome\",\"header.Size\":\"Dimensione\",\"header.Sharing\":\"Iscritti\",\"header.Team\":\"Area di lavoro\",\"header.DateModified\":\"Modificato\",\"header.DateCreated\":\"Creato\",\"header.Status\":\"Preferito\",\"header.SortBy\":\"Ordina per\",\"header.sort.label\":\"Ordina\",\"header.ChangeSortDirection\":\"Modifica la direzione dell'ordinamento in\",\"header.SortBy.asc\":\"Ascendente\",\"header.SortBy.desc\":\"Discendente\",\"header.selectAll\":\"Seleziona tutto\",\"header.reverseOrder\":\"Ordine inverso\",\"header.showCompatible\":\"File compatibili\",\"header.showEverything\":\"Tutto\",\"product.illustrator.web\":\"Illustrator Web (beta)\",\"product.photoshop.web\":\"Photoshop Web (Beta)\",\"status.followed\":\"Sì\",\"status.unfollowed\":\"No\",\"team.usm.defaultName\":\"Area di lavoro {name}\",\"space.access.private.description\":\"Solo utenti invitati\",\"space.access.private.tooltip\":\"Solo le persone che sono state invitate possono accedere a questo progetto\",\"space.access.team.description\":\"Chiunque nell'area di lavoro e gli invitati.\",\"space.access.team.tooltip\":\"Chiunque all'interno del \\\"{team}\\\" può accedere a questo progetto\",\"yourProjects.title\":\"Progetti\",\"yourProjects.librariesTab.title\":\"Librerie del team\",\"yourProjects.empty.spaces\":\"Crea più progetti e invita più iscritti all'area di lavoro\",\"browseAll.title\":\"Sfoglia tutto\",\"yourFiles.title\":\"I tuoi documenti\",\"yourLibraries.title\":\"Librerie\",\"yourLibraries.metadata\":\"LIBRERIA\",\"canvas.metadata\":\"AREA DI LAVORO\",\"projectInfo.action.view\":\"Visualizza info\",\"projectInfo.action.edit\":\"Modifica progetto\",\"projectInfo.empty.cta\":\"Crea un nuovo progetto\",\"projectInfo.empty.description\":\"I progetti Creative Cloud semplificano la ricerca, l'organizzazione, la condivisione e il processo decisionale, riunendo tutto ciò di cui hai bisogno per i tuoi progetti creativi in un unico posto.\",\"projectInfo.empty.heading\":\"Più creazione, meno problemi.\",\"projectInfo.error.description\":\"Riprova più tardi\",\"projectInfo.error.heading\":\"Impossibile caricare {section}\",\"projectInfo.new.error.title\":\"Impossibile creare un nuovo progetto\",\"projectInfo.new.noPermission.description\":\"Contatta l’amministratore per maggiori informazioni.\",\"projectInfo.title.create\":\"NUOVO PROGETTO\",\"projectInfo.title.edit\":\"MODIFICA PROGETTO\",\"projectInfo.title.view\":\"INFO PROGETTO\",\"projectInfo.access.title\":\"Chi può modificare questo progetto\",\"projectInfo.access.warning\":\"Alcuni iscritti potrebbero perdere l'accesso al progetto se cambi l'autorizzazione in \\\"Solo utenti invitati\\\".\",\"projectInfo.organization\":\"Organizzazione\",\"projectInfo.organization.placeholder\":\"Effettuare una selezione\",\"projectInfo.description\":\"Descrizione\",\"textField.invalid.characters\":\"I nomi non possono contenere i caratteri seguenti: \\\\\\\\ / * ? \\\" | : < >\",\"textField.invalid.duplicateName\":\"Esiste già un progetto con questo nome in questa organizzazione.\",\"textField.invalid.duplicateName.space\":\"Esiste già un progetto con questo nome in questa area di lavoro.\",\"textField.invalid.duplicateName.team\":\"Esiste già un'area di lavoro con questo nome in questa organizzazione.\",\"textField.invalid.empty\":\"Il nome non può essere vuoto\",\"textField.invalid.generic\":\"Nome non valido\",\"textField.invalid.length\":\"I nomi non possono contenere più di 50 caratteri.\",\"textField.invalid.nameEndsWithDot\":\"I nomi non possono terminare con un punto\",\"textField.invalid.offline\":\"Riconnettiti per accedere a tutte le aree di lavoro e progetti. Per visualizzare i file locali dai tuoi progetti, vai a Home.\",\"projectInfo.textField.placeholder\":\"Denomina questo progetto\",\"projectInfo.team\":\"Area di lavoro\",\"projectInfo.description.placeholder\":\"Es: file, feedback e materiali di riferimento per il progetto del cliente\",\"projectInfo.description.invalidLength\":\"La descrizione non può contenere più di 1000 caratteri\",\"projectInfo.toast.success.new\":\"Progetto creato: {name}\",\"projectInfo.toast.success.update\":\"Progetto aggiornato correttamente: {name}\",\"projectInfo.toast.error.generic\":\"Impossibile {create, select, true {creare} other {modificare}} il progetto\",\"team.empty.heading\":\"I progetti riuniscono tutti in modo ottimale\",\"team.empty.description\":\"Vuoi accedere senza problemi ai file, gestire facilmente più versioni e inviare schermate via e-mail per la revisione? Usa gli spazi per organizzare progetti, raccogliere risorse e feedback e condividere i file che tutto il team deve utilizzare.\",\"team.empty.createSpace\":\"Crea un progetto\",\"team.empty.inviteMembers\":\"Invita gli iscritti\",\"team.empty.startHere\":\"INIZIA QUI\",\"team.create.success\":\"Area di lavoro creata correttamente: {name}\",\"team.create.error.generic\":\"Impossibile creare l'area di lavoro\",\"team.edit.success\":\"Area di lavoro aggiornata correttamente: {name}\",\"team.edit.error.generic\":\"Impossibile aggiornare l'area di lavoro\",\"team.archive.success\":\"{count, plural, =1 {# area di lavoro} other {# aree di lavoro}}\",\"team.archive.error.generic\":\"Impossibile eliminare {count, plural, =1 {# area di lavoro} other {# aree di lavoro}}\",\"team.error.generic\":\"Si è verificato un errore.\",\"project1Up.action.projectInfo\":\"Visualizza info\",\"project1up.region.space.ariaLabel\":\"{projectName}, progetto\",\"project1Up.section.libraries\":\"Librerie\",\"project1Up.section.libraries.empty.cta\":\"Aggiungi Creative Cloud Libraries\",\"project1Up.section.libraries.empty.description\":\"Aggiungi collegamenti alle librerie necessarie per il tuo lavoro.\",\"project1Up.section.libraries.empty.heading\":\"Riunisci tutto in un unico posto\",\"project1Up.section.filter\":\"Filtro\",\"project1Up.section.filter.label\":\"Filtra per parola chiave\",\"project1Up.section.filter.enterKeyword\":\"Immetti parole chiave\",\"project1Up.section.filterFiles.empty.heading\":\"Nessuno risultato corrispondente al filtro selezionato\",\"project1Up.section.compatibleFiles.empty.heading\":\"Nessun file compatibile in questo progetto\",\"project1Up.section.workingFiles\":\"File di lavoro\",\"project1Up.section.workingFiles.empty.addFiles\":\"Aggiungi file\",\"project1Up.section.workingFiles.empty.createFolder\":\"Crea nuova cartella\",\"project1Up.section.workingFiles.empty.description\":\"Esegui l'iterazione dei progetti e collabora con gli altri iscritti.\",\"project1Up.section.workingFiles.empty.heading\":\"Lavora su ciò che vuoi quando ne hai bisogno\",\"project1Up.section.published\":\"Pubblicata\",\"project1Up.section.published.empty.cta\":\"Come pubblicare i collegamenti\",\"project1Up.section.published.empty.description\":\"Invia collegamenti di sola visualizzazione per ricevere feedback dalle persone giuste al momento giusto.\",\"project1Up.section.published.empty.description.readonly\":\"Quando un utente richiede un feedback o una revisione, aggiungerà un collegamento qui.\",\"project1Up.section.published.empty.heading\":\"Condividi con scopo\",\"project1Up.section.published.empty.heading.readonly\":\"Nessun elemento pubblicato in questo progetto\",\"project1Up.section.canvases\":\"Aree di lavoro\",\"project1Up.section.canvases.empty.cta\":\"Aggiungi aree di lavoro Creative Cloud\",\"project1Up.section.canvases.empty.description\":\"Aggiungi collegamenti a risorse necessarie per svolgere il tuo lavoro.\",\"project1Up.section.canvases.empty.heading\":\"Riunisci tutto in un unico posto\",\"project1Up.section.files\":\"File\",\"project1Up.error.accessDenied.heading\":\"Non disponi dell’accesso\",\"project1Up.error.accessDenied.description\":\"Sei stato rimosso da questo progetto. Contatta il tuo amministratore se ritieni che si tratti di un errore.\",\"project1Up.header.seeAll\":\"Visualizza tutto\",\"project1up.subheader.selected\":\"{count, plural, =1 {# elemento} other {# elementi}} selezionato/i\",\"project1up.subheader.emptyDescription\":\"Aggiungi una descrizione al progetto\",\"project1up.subheader.canvases.title\":\"Aree di lavoro\",\"project1up.subheader.canvases.subtitle\":\"TODO: SOTTOTITOLI AREE DI LAVORO\",\"project1up.subheader.libraries.title\":\"Librerie\",\"project1up.subheader.libraries.subtitle\":\"Gli iscritti possono aggiungere collegamenti a Creative Cloud Libraries qui.\",\"project1up.subheader.working.title\":\"File di lavoro\",\"project1up.subheader.working.subtitle\":\"Gli iscritti di questo progetto possono modificare questi file.\",\"project1up.subheader.output.title\":\"Pubblicata\",\"project1up.subheader.output.subtitle\":\"{contributor, select, true {Condividi le versioni di sola lettura del lavoro con persone esterne al tuo progetto} other {Visualizza e commenta questi elementi di sola lettura}}\",\"project.subtitle\":\"PROGETTO\",\"project.countContributors\":\"{count, plural, =1 {# iscritto} other {# iscritti}}\",\"project.versionError.reload.description\":\"Prova ad aggiornare il browser.\",\"project.versionError.reload.title\":\"Impossibile accedere al progetto\",\"project.versionError.update.description\":\"Non puoi accedere al progetto finché non aggiorni l'app.\",\"project.versionError.update.title\":\"Aggiorna {appName} per aprire\",\"project.alreadyDiscarded.title\":\"Questo progetto è stato eliminato\",\"project.alreadyDiscarded.description\":\"Contatta il tuo amministratore se ritieni che si tratti di un errore o sfoglia altri contenuti.\",\"project.deleted.title\":\"Questo progetto è stato eliminato definitivamente\",\"project.deleted.description\":\"Non puoi accedere a questo progetto perché non è più disponibile.\",\"project.metadataError.backLabel\":\"Torna ai progetti\",\"project.metadataError.description\":\"Non è possibile trovare il progetto che stai cercando o non disponi dell'accesso.\",\"project.metadataError.title\":\"Si è verificato un errore.\",\"folder.subtitle\":\"CARTELLA\",\"libraries.toast.add.start\":\"Aggiunta di {count, plural, =1 {# libreria} other {# librerie}}\",\"libraries.toast.add.success\":\"{count, plural, =1 {# libreria aggiunta} other {# librerie aggiunte}}\",\"libraries.toast.add.error\":\"Impossibile aggiungere {count, plural, =1 {# libreria} other {# librerie}}. Riprova.\",\"libraries.toast.add.duplicate\":\"Questa libreria esiste già\",\"libraries.toast.add.onlyDuplicates\":\"Impossibile aggiungere {count, plural, =1 {# libreria perché la libreria esiste già} other {# librerie perché le librerie esistono già}}.\",\"libraries.toast.delete.success\":\"Rimozione di {count, plural, =1 {# libreria} other {# librerie}} riuscita\",\"libraries.toast.delete.error\":\"Impossibile rimuovere {count, plural, =1 {# libreria} other {# librerie}}\",\"libraries.toast.follow.inProgress\":\"Stai seguendo {count, plural, =1 {# libreria} other {# librerie}}\",\"libraries.toast.follow.success\":\"Stai seguendo {count, plural, =1 {# libreria} other {# librerie}}\",\"libraries.toast.follow.error\":\"Impossibile seguire {count, plural, =1 {# libreria} other {# librerie}}\",\"libraries.toast.unfollow.inProgress\":\"Non stai più seguendo {count, plural, =1 {# libreria} other {# librerie}}\",\"libraries.toast.unfollow.success\":\"Non segui più {count, plural, =1 {# libreria} other {# librerie}}\",\"libraries.toast.unfollow.error\":\"Impossibile non seguire più {count, plural, =1 {# libreria} other {# librerie}}\",\"libraries.modal.empty.heading\":\"Nessuna libreria\",\"libraries.modal.empty.description\":\"La tua organizzazione non ha condiviso alcuna libreria\",\"libraries.modal.error.limitExceeded\":\"Impossibile aggiungere la libreria\",\"libraries.modal.error.limitExceeded.detail\":\"Puoi aggiungere fino a 100 librerie a un progetto. Rimuovi alcune per aggiungerne altre.\",\"libraries.brokenResources\":\"Alcune librerie non vengono visualizzate perché non disponi dell'accesso. Contatta altri iscritti per maggiori informazioni.\",\"copy.start\":\"Copia {count, plural, =1 {# elemento} other {# elementi}}\",\"copy.failure\":\"Impossibile copiare {count, plural, =1 {# elemento} other {# elementi}}\",\"copy.failure.partial\":\"Impossibile copiare alcuni elementi\",\"copy.success\":\"{count, plural, =1 {# elemento copiato} other {# elementi copiati}}\",\"copy.conflictSuffix\":\"copia\",\"move.start\":\"Spostamento di {count, plural, =1 {# elemento} other {# elementi}}\",\"move.failure\":\"Impossibile spostare {count, plural, =1 {# elemento} other {# elementi}}\",\"move.failure.partial\":\"Impossibile spostare alcuni elementi\",\"move.success\":\"{count, plural, =1 {# elemento spostato} other {# elementi spostati}}\",\"upload.start\":\"Caricamento {count, plural, =1 {# elemento} other {# elementi}}\",\"upload.failure\":\"Impossibile caricare {count, plural, =1 {# elemento} other {# elementi}}\",\"upload.failure.partial\":\"Impossibile caricare alcuni elementi\",\"upload.failure.snapshot\":\"Questo elemento non è supportato\",\"upload.success\":\"{count, plural, =1 {# elemento caricato} other {# elemento caricati}}\",\"download.start\":\"Download di {count, plural, =1 {# elemento} other {# elementi}}\",\"download.failure\":\"Impossibile scaricare {count, plural, =1 {# elemento} other {# elementi}}\",\"download.failure.partial\":\"Impossibile scaricare alcuni elementi\",\"download.success\":\"{count, plural, =1 {# elemento scaricato} other {# elementi scaricati}}\",\"delete.failure\":\"Impossibile eliminare {count, plural, =1 {# elemento} other {# elementi}}\",\"delete.failure.partial\":\"Impossibile eliminare alcuni elementi\",\"delete.success\":\"{count, plural, =1 {# elemento eliminato} other {# elementi eliminati}}\",\"jobs.failure\":\"{count, plural, =1 {# elemento} other {# elementi}} failed\",\"jobs.inProgress\":\"In corso...\",\"jobs.success\":\"{count, plural, =1 {# elemento} other {# elementi}} completato/i\",\"restore.failure\":\"Impossibile ripristinare {count, plural, =1 {# elemento} other {# elementi}}\",\"restore.failure.partial\":\"Impossibile ripristinare alcuni elementi\",\"restore.success\":\"{count, plural, =1 {# elemento} other {# elemento}} ripristinato/i\",\"rename.start\":\"Ridenominazione in corso\",\"rename.success\":\"{count, plural, =1 {# elemento} other {# elemento}} rinominato/i\",\"rename.failure\":\"Errore del server: impossibile rinominare l'elemento\",\"rename.failure.conflict\":\"Un elemento con questo nome è già presente\",\"rename.offline.heading\":\"Impossibile rinominare\",\"rename.offline\":\"Sei offline e non puoi rinominare l'elemento. Torna online per eseguire questa azione.\",\"bookmark.follow.error\":\"Impossibile aggiungere ai preferiti questo progetto\",\"bookmark.unfollow.error\":\"Impossibile eliminare dai preferiti questo progetto\",\"bookmark.follow.success\":\"{projectName} aggiunto correttamente ai preferiti\",\"bookmark.unfollow.success\":\"{projectName} eliminato correttamente dai preferiti\",\"bookmark.bulk.follow.success\":\"Aggiunta ai preferiti di {count, plural, =1 {# elemento} other {# elementi}} riuscita\",\"bookmark.bulk.follow.partial\":\"Impossibile aggiungere ai preferiti alcuni elementi\",\"bookmark.bulk.follow.error\":\"Impossibile aggiungere ai preferiti {count, plural, =1 {# elemento} other {# elementi}}\",\"bookmark.bulk.unfollow.success\":\"Rimozione dai preferiti di {count, plural, =1 {# elemento} other {# elementi}} riuscita\",\"bookmark.bulk.unfollow.partial\":\"Impossibile rimuovere dai preferiti alcuni elementi\",\"bookmark.bulk.unfollow.error\":\"Impossibile rimuovere dai preferiti {count, plural, =1 {# elemento} other {# elementi}}\",\"copyLink.success\":\"Colleg. copiato negli appunti\",\"copyLink.failure\":\"Impossibile copiare il collegamento\",\"starterUser.project1upNavigation\":\"Il tuo piano Starter non include l'apertura di documenti nei progetti\",\"starterUser.project1upNavigationCDPSave\":\"Il tuo piano Starter non include il salvataggio di documenti nei progetti\",\"invite.failure\":\"Impossibile inviare gli inviti. Riprova\",\"accessibility.backButton\":\"Torna indietro\",\"button.role\":\"Pulsante\",\"button.actions\":\"Azioni\",\"button.add\":\"Aggiungi\",\"button.addFiles\":\"Aggiungi file\",\"button.addLibrary\":\"Aggiungi libreria\",\"button.createDocument\":\"Nuovo file {appName}\",\"button.library\":\"Libreria\",\"button.back\":\"Indietro\",\"button.browse\":\"Sfoglia tutto\",\"button.cancel\":\"Annulla\",\"button.okay\":\"OK\",\"button.canvas\":\"Area di lavoro\",\"button.addCanvas\":\"Nuove aree di lavoro\",\"button.changeDefaultApp\":\"Cambia applicazione predefinita...\",\"button.close\":\"Chiudi\",\"button.continue\":\"Continua\",\"button.copy\":\"Copia in...\",\"button.copyLink\":\"Copia collegamento\",\"button.create\":\"Crea\",\"button.createNewFolder\":\"Crea nuova cartella\",\"button.newFile\":\"Nuovo file\",\"button.newFolder\":\"Nuova cartella\",\"button.delete\":\"Elimina\",\"button.deleteResource\":\"Rimuovi\",\"button.done\":\"Chiudi\",\"button.download\":\"Scarica\",\"button.favorite\":\"Preferiti\",\"button.follow\":\"Segui\",\"button.invite\":\"Invita\",\"button.inviteLabel\":\"Invita persone\",\"button.leave\":\"Esci\",\"button.leaveProject\":\"Esci dall'area di lavoro\",\"button.move\":\"Sposta in...\",\"button.next\":\"Successivo\",\"button.ok\":\"OK\",\"button.open\":\"Apri\",\"button.openWith\":\"Apri con\",\"button.open.appName\":\"{appName} {isDefault, select, true {(Default)} other {}}\",\"button.redo\":\"Riprova\",\"button.reload\":\"Riavvia\",\"button.rename\":\"Rinomina\",\"button.restore\":\"Ripristina\",\"button.retry\":\"Riprova\",\"button.save\":\"Salva\",\"button.select\":\"Seleziona\",\"button.share\":\"Condividi\",\"button.skipTour\":\"Salta il tour\",\"button.undo\":\"Annulla\",\"button.unfavorite\":\"Elimina dai preferiti\",\"button.unfollow\":\"Non seguire più\",\"button.update\":\"Aggiorna\",\"button.upgrade\":\"Aggiorna\",\"button.view\":\"Visualizza tutto\",\"button.viewProject\":\"Visualizza il progetto\",\"button.viewTarget\":\"Visualizza\",\"button.createWeblink\":\"Aggiungi collegamento Web\",\"button.leaveTeam\":\"Esci dall'area di lavoro\",\"button.renameTeam\":\"Rinomina area di lavoro\",\"button.editTeam\":\"Modifica informazioni area di lavoro\",\"button.archiveTeam\":\"Elimina area di lavoro\",\"button.upload\":\"Carica file\",\"button.goToDeleted\":\"Visualizza in eliminati\",\"button.viewEverything\":\"Visualizza tutto\",\"button.viewInWeb\":\"Visualizza sul Web\",\"abbreviations.fileSize.byte\":\"B\",\"abbreviations.fileSize.kilobyte\":\"KB\",\"abbreviations.fileSize.megabyte\":\"MB\",\"abbreviations.fileSize.gigabyte\":\"GB\",\"abbreviations.fileSize.terabyte\":\"TB\",\"statusIcon.conflicted\":\"Conflitto sincronizzazione\",\"statusIcon.onlineOnly\":\"Solo online\",\"statusIcon.availableOffline\":\"Disponibile offline\",\"statusIcon.syncing\":\"Sincronizzazione...\",\"statusIcon.waitingToSync\":\"In attesa di sincronizzare\",\"statusMessage.offline.description\":\"Riconnettiti per accedere a tutte le aree di lavoro e progetti. Per visualizzare i file locali dai tuoi progetti, vai a Home.\",\"statusMessage.offline.heading\":\"Connessione assente\",\"statusMessage.offline.toast\":\"Sei disconnesso, quindi alcune funzionalità e file potrebbero non essere disponibili.\",\"toggle.listView\":\"Visualizzazione a elenco\",\"toggle.gridView\":\"Visualizzazione miniature\",\"color.fuchsia\":\"Fucsia\",\"color.indigo\":\"Indaco\",\"color.celery\":\"Sedano\",\"color.magenta\":\"Magenta\",\"color.yellow\":\"Giallo\",\"color.seafoam\":\"Schiuma marina\",\"color.chartreuse\":\"Chartreuse\",\"color.purple\":\"Viola\",\"color.blue\":\"Blu\",\"color.red\":\"Rosso\",\"color.orange\":\"Arancione\",\"color.green\":\"Verde\",\"color.label\":\"Colore progetto\",\"tooltip.offline.general\":\"Torna online per eseguire questa operazione\",\"tooltip.moreFaces\":\"+ {number} altri\",\"action.leave.space.success\":\"Hai lasciato {count, plural, =1 {# progetto} other {# progetti}}\",\"action.leave.prototype.success\":\"Accesso a {count, plural, =1 {# prototipo} other {# prototipi}} rimosso\",\"action.leave.file.success\":\"Accedere a {count, plural, =1 {# file} other {# file}} removed\",\"action.leave.canvas.success\":\"Accedere a {count, plural, =1 {# area di lavoro} other {# aree di lavoro}} rimosse\",\"action.leave.team.success\":\"Hai lasciato 1 area di lavoro\",\"action.leave.space.error\":\"Impossibile uscire da questo progetto\",\"action.leave.prototype.error\":\"Impossibile lasciare questo prototipo\",\"action.leave.file.error\":\"Impossibile lasciare questo file\",\"action.leave.team.error\":\"Impossibile lasciare quest'area di lavoro\",\"action.leave.canvas.error\":\"Impossibile lasciare questa area di lavoro\",\"action.leave.space.partial.error\":\"Impossibile lasciare tutti i progetti\",\"action.leave.prototype.partial.error\":\"Impossibile lasciare tutti i prototipi\",\"action.leave.file.partial.error\":\"Impossibile lasciare tutti i file\",\"action.leave.canvas.partial.error\":\"Impossibile lasciare tutte le aree di lavoro\",\"action.leave.error.onlyContributor\":\"Sei l'unico iscritto. Aggiungi un altro utente prima di lasciare questo spazio.\",\"action.leave.error.addressBookGroupMember\":\"Lascia il gruppo e riprova.\",\"action.leave.error.admin\":\"Non puoi uscire perché sei un amministratore.\",\"action.leave.error.generic\":\"Impossibile uscire. Si è verificato un errore.\",\"action.reportAbuse\":\"Segnala abuso\",\"action.reportAbuse.required\":\"Obbligatorio\",\"action.reportAbuse.titleText\":\"Se ritieni che questo contenuto Creative Cloud sia in violazione delle Condizioni d’uso di Adobe, puoi segnalarlo compilando questo breve modulo.\",\"action.reportAbuse.emailInput\":\"Il tuo indirizzo e-mail\",\"action.reportAbuse.nameInput\":\"Il tuo nome\",\"action.reportAbuse.radioButtonText\":\"Perché segnali questo contenuto?\",\"action.reportAbuse.defamation\":\"Diffamazione\",\"action.reportAbuse.hate\":\"Contenuto razzista o xenofobo\",\"action.reportAbuse.trademark\":\"Violazione di un marchio\",\"action.reportAbuse.pornography\":\"Contenuto sessualmente esplicito\",\"action.reportAbuse.vulgar\":\"Contenuto offensivo\",\"action.reportAbuse.other\":\"Altro\",\"action.reportAbuse.inappropriate\":\"Inappropriato\",\"action.reportAbuse.age\":\"Imprecisione età\",\"action.reportAbuse.gender\":\"Imprecisione sesso\",\"action.reportAbuse.textAreaTitle\":\"Inserisci una descrizione del problema\",\"action.reportAbuse.describeConcern\":\"Descrivi il problema\",\"action.reportAbuse.success\":\"Segnalazione abuso riuscita\",\"action.reportAbuse.failure\":\"Errore durante la segnalazione dell’abuso\",\"action.menu.label\":\"Menu Azioni\",\"action.label\":\"Azione\",\"dialog.genericError.description\":\"Si è verificato un errore.\",\"dialog.genericError.title\":\"Errore imprevisto\",\"dialog.leave.space.title\":\"Uscita {count, plural, =1 {da {name}} other {dai progetti}}\",\"dialog.leave.prototype.title\":\"Lascia {count, plural, =1 {questo prototipo} other {prototipi}}\",\"dialog.leave.file.title\":\"Lasciare {count, plural, =1 {questo file} other {file}}\",\"dialog.leave.canvas.title\":\"Lascia {count, plural, =1 {questa area di lavoro} other {aree di lavoro}}\",\"dialog.leave.team.title\":\"Ci stai lasciando?\",\"dialog.leave.team.detail\":\"Non potrai più annullare questa operazione se ti rimuovi. Contatta un amministratore se vuoi essere aggiunto nuovamente a quest'area di lavoro.\",\"dialog.leave.space.detail\":\"Perderai l'accesso agli elementi che non possiedi che si trovano in questo progetto. L'uscita da \\\"{projectName}\\\" non può essere annullata.\",\"dialog.leave.prototype.detail\":\"Non potrai più accedervi senza un altro invito.\",\"dialog.leave.file.detail\":\"Non potrai più accedervi senza un altro invito.\",\"dialog.leave.canvas.detail\":\"Non potrai più accedervi senza un altro invito.\",\"dialog.leave.detail\":\"{type, select, space {Perderai l'accesso agli elementi che non possiedi che si trovano in {count, plural, =1 {questo progetto} other {questi progetti}}. L'uscita da {count, plural, =1 {\\\"{name}\\\"} other {questi progetti}} non può essere annullata.} other {Non potrai accedere nuovamente a {count, plural, =1 {questo} other {questi}} senza un altro invito{count, plural, =1 {.} other {:}}}}\",\"dialog.deleteFailed.title\":\"Impossibile eliminare tutti gli elementi\",\"dialog.deleteWarning.description\":\"{type, select, spaces {Questa azione eliminerà i contenuti di tutti gli iscritti di questi progetti:} other {Questa azione eliminerà quanto segue per tutti gli iscritti di questo progetto:}}\",\"dialog.deleteWarning.title\":\"{type, select, space {Elimina {count} {count, plural, =1 {progetto} other {progetti}}} other {Elimina {count} {count, plural, =1 {elemento} other {elementi}}}}\",\"dialog.deleteFailed.description.unauthorized\":\"Impossibile eliminare questo elemento perché sei stato rimosso dal progetto:\",\"dialog.deleteFailed.description.alreadyDeleted\":\"Impossibile eliminare questo elemento perché è già stato eliminato da un altro utente:\",\"dialog.deleteFailed.description.unknown\":\"Si è verificato un errore durante l'eliminazione:\",\"dialog.cantCopyAllItems\":\"Impossibile copiare tutti gli elementi\",\"dialog.cantCopyBecauseSomethingWentWrong\":\"Si è verificato un errore durante la copia:\",\"dialog.cantCopyBecauseYouWereSignedOut\":\"Impossibile copiare perché sei stato disconnesso:\",\"dialog.cantCopyBecauseYouWereRemoved\":\"Impossibile copiare perché sei stato rimosso da questo progetto:\",\"dialog.cantCopyBecauseItemWasDeleted\":\"Impossibile copiare questo elemento perché è stato eliminato da un altro utente:\",\"dialog.cantCopyBecauseItemExists\":\"Impossibile copiare questo elemento perché esiste nel percorso di copia selezionato:\",\"dialog.cantMoveAllItems\":\"Impossibile spostare tutti gli elementi\",\"dialog.cantMoveBecauseSomethingWentWrong\":\"Si è verificato un errore durante lo spostamento:\",\"dialog.cantMoveBecauseYouWereSignedOut\":\"Impossibile spostare perché sei stato disconnesso:\",\"dialog.cantMoveBecauseYouWereRemoved\":\"Impossibile spostare perché sei stato rimosso da questo progetto:\",\"dialog.cantMoveBecauseItemWasDeleted\":\"Impossibile spostare questo elemento perché è stato eliminato da un altro utente:\",\"dialog.cantMoveBecauseItemExists\":\"Impossibile spostare questo elemento perché esiste già nel percorso selezionato:\",\"dialog.createFolder.error\":\"Errore del server, impossibile salvare la cartella\",\"dialog.createFolder.nameConflict\":\"Una cartella con questo nome è già presente.\",\"dialog.createFolder.placeholder\":\"Nome cartella\",\"dialog.createFolder.title\":\"Crea cartella\",\"dialog.createFolder.success\":\"Cartella creata correttamente\",\"dialog.createWeblink.error\":\"URL non supportato\",\"dialog.createWeblink.tooManyRequests\":\"Si è verificato un errore di rete imprevisto. Riprova.\",\"dialog.createWeblink.success\":\"1 elemento aggiunto\",\"dialog.createWeblink.nameConflict\":\"Questo titolo esiste già\",\"dialog.createWeblink.name.placeholder\":\"Immetti un nome per questo collegamento\",\"dialog.createWeblink.link.placeholder\":\"https://\",\"dialog.createWeblink.name\":\"Titolo personalizzato\",\"dialog.createWeblink.link\":\"Collegamento\",\"dialog.createWeblink.title\":\"Crea un collegamento Web\",\"app.type.webLink\":\"COLLEGAMENTO WEB\",\"dialog.createCanvas.error\":\"Impossibile creare un'area di lavoro\",\"dialog.move.title\":\"Passa al progetto {projectName}\",\"dialog.move.detail\":\"Lo spostamento di questo elemento modificherà gli utenti che possono accedervi.\",\"moveToTeam.confirm.title\":\"Sposta nell'area di lavoro {name}\",\"moveToTeam.confirm.message\":\"Spostare qui i progetti consente di modificare chi potrà accedervi. I tuoi progetti saranno accessibili a chiunque abbia accesso alla tua area di lavoro.\",\"moveToTeam.disabled.differentOrg.tooltip.message\":\"Non puoi spostare progetti in un'area di lavoro di un'organizzazione diversa.\",\"moveToSpace.disabled.differentOrg.tooltip.message\":\"Non puoi spostare elementi in un progetto di un'organizzazione diversa.\",\"moveToTeam.success\":\"Hai spostato {count, plural, =1 {# progetto} other {# progetti}} nell'area di lavoro {name}\",\"confirmationDialog.dontShowAgain\":\"Non mostrare più\",\"dialog.open.title\":\"Apri sul Web\",\"dialog.open.detail\":\"Non puoi aprire questo file in {appName}, ma puoi accedervi in un browser.\",\"dialog.renameTeam.title\":\"Rinomina area di lavoro\",\"dialog.renameTeam.placeholder\":\"Immetti un nome per quest'area di lavoro\",\"dialog.renameTeam.error\":\"Si è verificato un errore.\",\"dialog.renameTeam.nameConflict\":\"Questo nome esiste già\",\"dialog.archiveTeam.title\":\"Stai eliminando quest'area di lavoro?\",\"dialog.archiveTeam.detail\":\"Non puoi annullare questa operazione se ti rimuovi. Contatta un amministratore se vuoi unirti di nuovo a quest'area di lavoro.\",\"dialog.saveToCloud.title\":\"File salvati in Creative Cloud\",\"dialog.saveToCloud.detail\":\"Il tuo documento cloud ora offre cronologia delle versioni, invito e modifica in comproprietà, accesso immediato su altri dispositivi e altro ancora. Lo trovi qui e nelle tue app Creative Cloud.\",\"input.invalidCharInput\":\"Il nome non può contenere i caratteri seguenti: \\\\\\\\ / * ? \\\" | :\",\"input.invalidEmptyInput\":\"{names, select, true {Nomi} other {Titoli}} non deve essere vuoto\",\"input.nameTooLong\":\"{names, select, true {Nomi} other {Titoli}} non può contenere più di {maxLength} caratteri\",\"input.nameEndsWithDot\":\"{names, select, true {I nomi} other {I titoli}} non possono terminare con un punto\",\"input.weblink.nameRestricted\":\"I collegamenti Web non possono avere i seguenti titoli: \\\"con\\\", \\\"prn\\\", \\\"aux\\\", \\\"nul\\\", \\\"com#\\\", \\\"lpt#\\\"\",\"input.nameRestricted\":\"Le risorse non possono avere i seguenti nomi: con/prn/aux/nul/com#/lpt#\",\"input.weblink.invalidCharInput\":\"I titoli non possono contenere solo spazi o i seguenti caratteri: \\\\\\\\ / * ? \\\" | : < > \",\"input.name.invalidCharInput\":\"I nomi non possono contenere solo spazi o i seguenti caratteri: \\\\\\\\ / * ? \\\" | : < > \",\"cdpFooter.orphanedArtifactsWarning\":\"I collegamenti pubblicati connessi agli elementi che stai spostando rimarranno nel progetto originale\",\"cdpFooter.libraryPrivacyWarning\":\"Se disponi delle autorizzazioni di ricondivisione di una libreria che aggiungi, gli iscritti al progetto potranno visualizzarla\",\"toast.beforeOp.error.documentIsOpen\":\"Per eseguire questa azione chiudi {count, plural, =1 {il documento} other {i documenti}}.\",\"app.type.designSpecs\":\"SPECIFICHE DI PROGETTAZIONE\",\"app.type.prototype\":\"PROTOTIPO\",\"app.type.publishedLink\":\"COLLEGAMENTO PUBBLICATO\",\"popover.header\":\"Collabora a un progetto con altri utenti e condividi il tuo lavoro per ricevere un feedback.\",\"popover.linkout\":\"Ulteriori informazioni\",\"team.libraries.filter.all\":\"Tutto\",\"team.libraries.filter.addedToYourLibraries\":\"Aggiunto alle tue librerie\",\"team.libraries.filter.notAdded\":\"Non aggiunto\",\"team.spaces.filter.all\":\"Tutto\",\"team.spaces.filter.favorited\":\"Preferito\",\"team.filter.empty.heading\":\"Nessun progetto corrispondente al filtro selezionato\",\"team.filter.empty.description1\":\"Nessun risultato trovato per \",\"team.filter.empty.description2\":\" in questo elenco. Controlla l'ortografia o prova a utilizzare parole chiave diverse.\",\"team.filter.no.match.description\":\"Non siamo riusciti a trovare risultati per {filter} in questo elenco. Controlla l'ortografia o prova a utilizzare criteri di filtro diversi.\",\"team.filter.filterText\":\"{filter}\",\"team.header.other.teams\":\"Altre aree di lavoro\",\"space.empty.heading\":\"Tutto in un unico posto, tutto sempre sincronizzato\",\"space.empty.description\":\"Riempi questo progetto con file di lavoro e materiali correlati. Invita i collaboratori a partecipare e aggiungi anche ciò su cui stanno lavorando.\",\"space.empty.canvasHeading\":\"CREATIVE CLOUD CANVAS\",\"space.empty.actionsHeading\":\"AGGIUNGI CONTENUTI AL TUO PROGETTO\",\"space.empty.createCanvas\":\"Nuove aree di lavoro\",\"space.empty.upload\":\"Aggiungi file\",\"space.empty.createFolder\":\"Nuova cartella\",\"space.empty.createWeblink\":\"Collegamenti Web\",\"space.empty.addResource\":\"Libreria\",\"folder.empty.heading\":\"La cartella è vuota.\",\"folder.empty.description\":\"Inizia ad aggiungere file per riempirlo.\",\"folder.discard.heading\":\"Questa cartella è stata eliminata.\",\"folder.discard.description\":\"Contatta il tuo amministratore se ritieni che si tratti di un errore o sfoglia altri contenuti.\",\"folder.error.description\":\"Si è verificato un problema durante il caricamento da questa cartella.\",\"space.empty.section.createACanvas\":\"Crea un'area di lavoro\",\"tooltip.opensInBrowser\":\"Si apre nel browser\",\"space.empty.workingFiles\":\"Continua ad aggiungere a questo progetto\",\"space.empty.canvasPopoverTitle\":\"Prova Creative Cloud Canvas (Beta)\",\"space.empty.canvasPopoverContent\":\"Usa le aree di lavoro per disporre, visualizzare e rivedere il lavoro creativo.\",\"space.error.heading\":\"Impossibile caricare il progetto\",\"space.error.description\":\"Si è verificato un problema durante il caricamento del contenuto da questo progetto.\",\"createTeamWizard.createTeam.sidebarHeading\":\"Crea un'area di lavoro\",\"createTeamWizard.createTeam.sidebarCopy\":\"Crea un'area di lavoro per mantenere tutti sulla stessa pagina e organizzati.\",\"createTeamWizard.createTeam.sidebarCopy.adminconsole\":\"Configura un luogo in cui il tuo team può collaborare e condividere file.\",\"createTeamWizard.createTeam.sidebarLink\":\"Altro\",\"createTeamWizard.createTeam.contentHeading\":\"Nuova area di lavoro\",\"createTeamWizard.createTeam.loading\":\"Creazione dell'area di lavoro “{name}”\",\"createTeamWizard.inviteMembers.sidebarHeading\":\"Invita i membri nell'area di lavoro “{name}”\",\"createTeamWizard.inviteMembers.sidebarCopy\":\"Inizia subito a digitare un nome o un'e-mail per invitare i membri ora, oppure ignora questo passaggio e invitali in un secondo momento.\",\"createTeamWizard.inviteMembers.loading\":\"Invitare i membri nell'area di lavoro “{name}”\",\"createTeamWizard.inviteMembers.contentHeading\":\"Invita gli iscritti\",\"createTeamWizard.inviteMembers.successToast\":\"I membri sono stati aggiunti alla nuova area di lavoro\",\"createTeamWizard.progress\":\"Passo {current} di {total}\",\"createTeamWizard.skipStep\":\"Ignora\",\"teamDialog.createTeam.label\":\"Crea un'area di lavoro\",\"teamDialog.createTeam.infoBox.description\":\"L'area di lavoro che crei è solo su invito e tutti gli utenti aggiunti dispongono di accesso in modifica per impostazione predefinita.\",\"teamDialog.editTeam.label\":\"Modifica area di lavoro\",\"teamDialog.nameSection.placeholder\":\"Assegna un nome alla nuova area di lavoro\",\"teamDialog.nameSection.label\":\"Nome area di lavoro\",\"teamDialog.permissionsSection.label\":\"Chi può modificare questa area di lavoro\",\"teamDialog.permissionsSection.option.onlyInvited\":\"Solo utenti invitati\",\"teamDialog.descriptionSection.label\":\"Descrizione area di lavoro (facoltativo)\",\"teamDialog.descriptionSection.placeholder\":\"Aggiungi alcune parole sull'area di lavoro\",\"teamsSidebar.noTeams\":\"Nessuna area di lavoro\",\"teamsSidebar.newTeamButton\":\"Crea un'area di lavoro\",\"teamsSidebar.adminTour.title\":\"Novità! Crea aree di lavoro\",\"teamsSidebar.adminTour.content\":\"Ora gli amministratori possono creare aree di lavoro in Creative Cloud sul Web, semplificando l'organizzazione del lavoro condiviso.\",\"teamsSidebarTeam.newSpaceButton\":\"Nuovo progetto\",\"teamsSidebarTeam.header.newBadge\":\"NOVITÀ\",\"teamsSidebarTeam.header.otherTeams\":\"Da altre aree di lavoro\",\"teamsSidebarTeam.header.teams\":\"AREE DI LAVORO\",\"teamsSidebarTeam.header.previewLabel\":\"(Anteprima)\",\"teamsSidebarTeam.header.previewCopy\":\"Le aree di lavoro e i progetti sono disponibili in una beta privata.\",\"teamsSidebarTeam.header.previewLearnMoreText\":\"Ulteriori informazioni\",\"teamsSidebarTeam.message.loading\":\"Caricamento...\",\"teamsSidebarTeam.message.noSpaces\":\"Attualmente non hai aree di lavoro o progetti.\",\"teamsSidebarTeam.message.offline\":\"Sei disconnesso. Riconnettiti per visualizzare le tue aree di lavoro e i progetti.\",\"teamsSidebarTeam.message.error\":\"Si è verificato un problema durante il caricamento delle aree di lavoro e dei progetti.\",\"teams1up.error.description\":\"Si è verificato un problema durante il caricamento dei progetti\",\"teams1up.error.heading\":\"Impossibile caricare i progetti\",\"otherTeams.emptyMessage.header\":\"Impossibile visualizzare la pagina dell'area di lavoro\",\"otherTeams.emptyMessage.description1\":\"Sei stato rimosso o sei uscito dall'ultimo progetto usando la sezione  \",\"otherTeams.emptyMessage.description2\":\". Contatta il tuo amministratore se ritieni che si tratti di un errore.\",\"spaceTour.step0.title\":\"I tuoi progetti sono qui\",\"spaceTour.step0.content\":\"I progetti consentono ai team di collaborare e raccogliere, organizzare e condividere file e risorse.\",\"spaceTour.step1.title\":\"Aggiungi tutti gli elementi necessari per un progetto\",\"spaceTour.step1.content\":\"Riunisci file di lavoro, immagini di riferimento, risorse e altro ancora in un unico posto.\",\"spaceTour.step2.title\":\"Imposta (e salva) le autorizzazioni\",\"spaceTour.step2.content\":\"Assegna il diritto di accesso ai collaboratori quando li inviti per risparmiare tempo e lavoro. Invia pacchetti di sola visualizzazione agli stakeholder per la revisione e il feedback.\",\"error.cantCreateSpace\":\"Spazio di archiviazione dell'area di lavoro pieno\",\"error.exceedQuota.create.detail.description1\":\"Non puoi creare nuovi elementi in questo momento. Seleziona \",\"error.exceedQuota.description2\":\" per liberare spazio di archiviazione\",\"error.exceedQuota.add.detail.description1\":\"Non puoi aggiungere nuovi elementi in questo momento. Seleziona \",\"error.move.generic\":\"Si è verificato un errore durante lo spostamento\",\"error.move.signedOut\":\"Impossibile spostare perché sei stato disconnesso\",\"error.move.permissionRevoked\":\"Impossibile spostare perché sei stato rimosso da questo progetto\",\"error.move.deleted\":\"Impossibile spostare questo elemento perché è stato eliminato da un altro utente\",\"error.move.duplicate\":\"Impossibile spostare questo elemento perché esiste già nel percorso selezionato\",\"error.copy.generic\":\"Si è verificato un errore durante la copia\",\"error.copy.signedOut\":\"Impossibile copiare perché sei stato disconnesso\",\"error.copy.permissionRevoked\":\"Impossibile copiare perché sei stato rimosso da questo progetto\",\"error.copy.deleted\":\"Impossibile copiare questo elemento perché è stato eliminato da un altro utente\",\"error.copy.duplicate\":\"Impossibile copiare questo elemento perché esiste nel percorso di copia selezionato\",\"checkbox.select\":\"Seleziona\",\"listItem.fileSize\":\"Dimensione del file\",\"facepile.additionalMembers\":\"Iscritti aggiuntivi +{count}\",\"facepile.memberName\":\"{name}, iscritto\",\"coachmark.information\":\"informazioni\",\"toolbar.tools\":\"strumenti\",\"griditem.error.message\":\"Impossibile recuperare\",\"griditem.error.button\":\"Riprova\",\"ats.move.extendedNotification\":\"Riceverai una notifica quando il tuo Spostamento sarà completo.\",\"file.deleted.error.heading\":\"Impossibile {operation} il file\",\"file.deleted.error.description\":\"Impossibile {operation} questo file poiché è stato eliminato. Ripristinarlo dai file eliminati e riprovare o selezionare una posizione diversa.\",\"file.deleted.rename.error.description\":\"Impossibile rinominare questo file poiché è stato eliminato. Per ripristinare il file, seleziona Vai a Eliminato.\"}");

/***/ }),

/***/ "bu2F":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var utils = __webpack_require__("w8CP");

var common = __webpack_require__("7ckf");

var shaCommon = __webpack_require__("qlaj");

var assert = __webpack_require__("2j6C");

var sum32 = utils.sum32;
var sum32_4 = utils.sum32_4;
var sum32_5 = utils.sum32_5;
var ch32 = shaCommon.ch32;
var maj32 = shaCommon.maj32;
var s0_256 = shaCommon.s0_256;
var s1_256 = shaCommon.s1_256;
var g0_256 = shaCommon.g0_256;
var g1_256 = shaCommon.g1_256;
var BlockHash = common.BlockHash;
var sha256_K = [0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2];

function SHA256() {
  if (!(this instanceof SHA256)) return new SHA256();
  BlockHash.call(this);
  this.h = [0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19];
  this.k = sha256_K;
  this.W = new Array(64);
}

utils.inherits(SHA256, BlockHash);
module.exports = SHA256;
SHA256.blockSize = 512;
SHA256.outSize = 256;
SHA256.hmacStrength = 192;
SHA256.padLength = 64;

SHA256.prototype._update = function _update(msg, start) {
  var W = this.W;

  for (var i = 0; i < 16; i++) W[i] = msg[start + i];

  for (; i < W.length; i++) W[i] = sum32_4(g1_256(W[i - 2]), W[i - 7], g0_256(W[i - 15]), W[i - 16]);

  var a = this.h[0];
  var b = this.h[1];
  var c = this.h[2];
  var d = this.h[3];
  var e = this.h[4];
  var f = this.h[5];
  var g = this.h[6];
  var h = this.h[7];
  assert(this.k.length === W.length);

  for (i = 0; i < W.length; i++) {
    var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]);
    var T2 = sum32(s0_256(a), maj32(a, b, c));
    h = g;
    g = f;
    f = e;
    e = sum32(d, T1);
    d = c;
    c = b;
    b = a;
    a = sum32(T1, T2);
  }

  this.h[0] = sum32(this.h[0], a);
  this.h[1] = sum32(this.h[1], b);
  this.h[2] = sum32(this.h[2], c);
  this.h[3] = sum32(this.h[3], d);
  this.h[4] = sum32(this.h[4], e);
  this.h[5] = sum32(this.h[5], f);
  this.h[6] = sum32(this.h[6], g);
  this.h[7] = sum32(this.h[7], h);
};

SHA256.prototype._digest = function digest(enc) {
  if (enc === 'hex') return utils.toHex32(this.h, 'big');else return utils.split32(this.h, 'big');
};

/***/ }),

/***/ "bu2Z":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = THead;

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _filterDOMProps = _interopRequireDefault(__webpack_require__("Cv/Q"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

const _excluded = ["className", "children"];

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}
/**
 * A table header row
 */


function THead(_ref) {
  let {
    className,
    children
  } = _ref,
      otherProps = _objectWithoutProperties(_ref, _excluded);

  return /*#__PURE__*/_react.default.createElement("thead", _extends({
    className: (0, _classnames.default)('spectrum-Table-head', className)
  }, (0, _filterDOMProps.default)(otherProps)), /*#__PURE__*/_react.default.createElement("tr", null, children));
}

THead.displayName = 'THead';

/***/ }),

/***/ "buEm":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

var _reactDom = _interopRequireDefault(__webpack_require__("i8i4"));

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}
/*************************************************************************
* ADOBE CONFIDENTIAL
* ___________________
*
* Copyright 2019 Adobe
* All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains
* the property of Adobe and its suppliers, if any. The intellectual
* and technical concepts contained herein are proprietary to Adobe
* and its suppliers and are protected by all applicable intellectual
* property laws, including trade secret and copyright laws.
* Dissemination of this information or reproduction of this material
* is strictly forbidden unless prior written permission is obtained
* from Adobe.
**************************************************************************/


let children = {};
/*
 * A global portal that lives in the document body which can be used to add
 * overlays like modals outside the normal React component tree.
 */

class PortalContainer {
  /**
   * Renders the child
   * @param child component to be render
   * @param context Parent with the context
   */
  static add(child, context) {
    let node = children[child.key] || document.createElement('div');

    if (!context) {
      _reactDom.default.render(child, node);
    } else {
      _reactDom.default.unstable_renderSubtreeIntoContainer(context, child, node);
    }

    children[child.key] = node;
  }
  /**
   * Remove child from the dom
   * @param child
   */


  static remove(child) {
    _reactDom.default.unmountComponentAtNode(children[child.key]);

    delete children[child.key];
  }
  /**
   * Remove all portals from the dom
   */


  static removeAll() {
    for (let child in children) {
      // skip loop if the property is from prototype
      if (!children.hasOwnProperty(child)) {
        continue;
      }

      _reactDom.default.unmountComponentAtNode(children[child]);

      delete children[child];
    }
  }

}

exports.default = PortalContainer;

/***/ }),

/***/ "bwol":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/

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 __());
  };
}();

var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {
  function adopt(value) {
    return value instanceof P ? value : new P(function (resolve) {
      resolve(value);
    });
  }

  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) : adopt(result.value).then(fulfilled, rejected);
    }

    step((generator = generator.apply(thisArg, _arguments || [])).next());
  });
};

var __generator = this && this.__generator || function (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
    };
  }
};

var __importDefault = this && this.__importDefault || function (mod) {
  return mod && mod.__esModule ? mod : {
    "default": mod
  };
};

Object.defineProperty(exports, "__esModule", {
  value: true
});

__webpack_require__("cnSC");

__webpack_require__("T1qB"); // For IE11


var RequestProcessor_1 = __importDefault(__webpack_require__("HyxP"));

var httpLinkHeader = __webpack_require__("x+K8");

var constants_1 = __webpack_require__("uBoz");
/**
 * Handles service-specific response processing for cloud service (non-acp.local) interaction
 */


var HeadAssetRequestProcessor =
/** @class */
function (_super) {
  __extends(HeadAssetRequestProcessor, _super);

  function HeadAssetRequestProcessor() {
    return _super !== null && _super.apply(this, arguments) || this;
  }
  /**
   * Transforms the response for direct interaction with services, if needed
   * @param response
   * @param additionalParams
   */


  HeadAssetRequestProcessor.prototype.responseTransformWeb = function (response, additionalParams) {
    return __awaiter(this, void 0, void 0, function () {
      var assetType, path, cloudUri, stableUri, metadataUri, renditionTemplate, url, urlBase_1, parsedLinks, result, newResponse;
      return __generator(this, function (_a) {
        assetType = '';
        path = '';
        cloudUri = '';
        stableUri = '';
        metadataUri = '';
        renditionTemplate = '';

        if (response.headers.get('content-type')) {
          assetType = response.headers.get('content-type');
        }

        try {
          url = new URL(response.url);
          urlBase_1 = url.protocol + "//" + url.hostname;

          if (response.headers.get('link')) {
            parsedLinks = httpLinkHeader.parse(response.headers.get('link'));
            parsedLinks.refs.forEach(function (parsedLink) {
              if (parsedLink.rel === constants_1.PATH_RELTYPE) {
                path = urlBase_1 + parsedLink.uri;
              }

              if (parsedLink.rel === constants_1.STABLE_URI_RELTYPE) {
                stableUri = urlBase_1 + parsedLink.uri;
              }

              if (parsedLink.rel === constants_1.CLOUD_URI_RELTYPE) {
                cloudUri = urlBase_1 + parsedLink.uri;
              }

              if (parsedLink.rel === constants_1.METADATA_RELTYPE) {
                metadataUri = urlBase_1 + parsedLink.uri;
              }

              if (parsedLink.rel === constants_1.RENDITION_RELTYPE) {
                renditionTemplate = urlBase_1 + parsedLink.uri;
              }
            });
          }
        } catch (error) {
          console.log("Error processing Head Asset response: " + error);
        }

        result = {
          asset_type: assetType,
          path: path,
          stableUri: stableUri,
          cloudUri: cloudUri,
          metadataUri: metadataUri,
          renditionTemplate: renditionTemplate
        };
        newResponse = RequestProcessor_1.default.createResponse(response.status, response.statusText, result);
        return [2
        /*return*/
        , Promise.resolve(newResponse)];
      });
    });
  };

  HeadAssetRequestProcessor.urlRegex = new RegExp("/cloud-content/|/files/|/id/");
  HeadAssetRequestProcessor.method = ['HEAD'];
  return HeadAssetRequestProcessor;
}(RequestProcessor_1.default);

exports.default = HeadAssetRequestProcessor;

/***/ }),

/***/ "byaY":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// UNUSED EXPORTS: FOCUSABLE_ELEMENT_SELECTOR, TABBABLE_ELEMENT_SELECTOR, trapFocus

// EXTERNAL MODULE: ./node_modules/autobind-decorator/lib/index.js
var lib = __webpack_require__("gKdT");
var lib_default = /*#__PURE__*/__webpack_require__.n(lib);

// EXTERNAL MODULE: ./node_modules/prop-types/index.js
var prop_types = __webpack_require__("17x9");
var prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types);

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__("q1tI");
var react_default = /*#__PURE__*/__webpack_require__.n(react);

// EXTERNAL MODULE: ./node_modules/react-dom/index.js
var react_dom = __webpack_require__("i8i4");
var react_dom_default = /*#__PURE__*/__webpack_require__.n(react_dom);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/thirdparty/events.ts
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
// @ts-nocheck -- forked
/**
 * Forked from https://git.corp.adobe.com/torq/react-spectrum/blob/develop/src/utils/events.js
 */
function interpretKeyboardEvent(event, orientation = 'vertical') {
    switch (event.key) {
        case 'Enter':
        case ' ':
            if (this.onSelectFocused) {
                this.onSelectFocused(event);
            }
            break;
        case 'Tab':
            if (this.onTab) {
                this.onTab(event);
            }
            break;
        case 'PageUp':
            if (this.onPageUp) {
                this.onPageUp(event);
            }
            else if (this.onFocusFirst) {
                this.onFocusFirst(event);
            }
            break;
        case 'PageDown':
            if (this.onPageDown) {
                this.onPageDown(event);
            }
            else if (this.onFocusLast) {
                this.onFocusLast(event);
            }
            break;
        case 'Home':
            if (this.onFocusFirst) {
                this.onFocusFirst(event);
            }
            break;
        case 'End':
            if (this.onFocusLast) {
                this.onFocusLast(event);
            }
            break;
        case 'ArrowUp':
        case 'Up':
            if (event.altKey && this.onAltArrowUp) {
                this.onAltArrowUp(event);
            }
            else if (this.onFocusPrevious) {
                switch (orientation) {
                    case 'vertical':
                        this.onFocusPrevious(event);
                        break;
                    case 'horizontal':
                        break;
                    default:
                        if (this.props.prevFocusOffset) {
                            this.onFocusPrevious(event, this.props.prevFocusOffset());
                        }
                        else {
                            this.onFocusPrevious(event);
                        }
                        break;
                }
            }
            break;
        case 'ArrowDown':
        case 'Down':
            if (event.altKey && this.onAltArrowDown) {
                this.onAltArrowDown(event);
            }
            else if (this.onFocusNext) {
                switch (orientation) {
                    case 'vertical':
                        this.onFocusNext(event);
                        break;
                    case 'horizontal':
                        break;
                    default:
                        if (this.props.nextFocusOffset) {
                            this.onFocusNext(event, this.props.nextFocusOffset());
                        }
                        else {
                            this.onFocusNext(event);
                        }
                        break;
                }
            }
            break;
        case 'ArrowLeft':
        case 'Left':
            if (orientation !== 'vertical' && this.onFocusPrevious) {
                this.onFocusPrevious(event);
            }
            break;
        case 'ArrowRight':
        case 'Right':
            if (orientation !== 'vertical' && this.onFocusNext) {
                this.onFocusNext(event);
            }
            break;
        case 'Escape':
        case 'Esc':
            if (this.onEscape) {
                this.onEscape(event);
            }
            break;
        default:
        // do nothing
    }
}
function chain(...callbacks) {
    return (...args) => {
        // eslint-disable-next-line no-restricted-syntax
        for (const callback of callbacks) {
            if (typeof callback === 'function') {
                callback(...args);
            }
        }
    };
}
let mouseDownPrevented = false;
function focusAfterMouseEvent(handler, event) {
    // If server side rendering, just call handler method.
    if (!document) {
        handler && handler.call(this, event);
        return;
    }
    // execute the handler
    if (handler) {
        handler.call(this, event);
        if (event.isDefaultPrevented()) {
            mouseDownPrevented = event.type === 'mousedown';
            return;
        }
    }
    // make sure that the element has focus by calling this.focus();
    if (!mouseDownPrevented && typeof this.focus === 'function') {
        this.focus();
    }
    if (event.type === 'mouseup') {
        mouseDownPrevented = false;
    }
}

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/thirdparty/scrollToDOMNode.ts
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2020 Adobe Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Incorporated.
 **************************************************************************/
// @ts-nocheck -- forked
/**
 * Forked from https://git.corp.adobe.com/torq/react-spectrum/blob/develop/src/utils/scrollToDOMNode.js
 */
/* harmony default export */ var scrollToDOMNode = ((node, parentNode, alignToStart) => {
    if (parentNode && parentNode.contains(node)) {
        const { clientHeight, clientWidth, scrollTop, scrollLeft } = parentNode;
        const { offsetHeight, offsetWidth, offsetTop, offsetLeft } = node;
        const parentPosition = window.getComputedStyle(parentNode).position;
        let parentOffsetTop = parentNode.offsetTop;
        let parentOffsetLeft = parentNode.offsetLeft;
        if (parentPosition !== 'static') {
            // eslint-disable-next-line no-multi-assign
            parentOffsetTop = parentOffsetLeft = 0;
        }
        if (offsetTop < scrollTop) {
            parentNode.scrollTop = offsetTop;
        }
        else {
            const offsetBottom = offsetTop + offsetHeight;
            const scrollBottom = scrollTop + clientHeight;
            if (offsetBottom > scrollBottom) {
                if (alignToStart) {
                    parentNode.scrollTop = offsetTop - parentOffsetTop;
                }
                else {
                    parentNode.scrollTop = offsetBottom - clientHeight - parentOffsetTop;
                }
            }
        }
        if (offsetLeft < scrollLeft) {
            parentNode.scrollLeft = offsetLeft;
        }
        else {
            const offsetRight = offsetLeft + offsetWidth;
            const scrollRight = scrollLeft + clientWidth;
            if (offsetRight > scrollRight) {
                if (alignToStart) {
                    parentNode.scrollLeft = offsetLeft - parentOffsetLeft;
                }
                else {
                    parentNode.scrollLeft = offsetRight - clientWidth - parentOffsetLeft;
                }
            }
        }
    }
});

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/thirdparty/string.ts
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2020 Adobe Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Incorporated.
 **************************************************************************/
// @ts-nocheck -- forked
/**
 * Forked from https://git.corp.adobe.com/torq/react-spectrum/blob/develop/src/utils/string.js
 */
function isUrl(string) {
    return string && !!string.match(/\/|:|\./g);
}
function normalize(string = '', normalizationForm = 'NFC') {
    if ('normalize' in String.prototype) {
        // eslint-disable-next-line no-param-reassign
        string = string.normalize(normalizationForm);
    }
    return string;
}
function removeDiacritics(string = '', normalizationForm = 'NFD') {
    return normalize(string, normalizationForm.replace('C', 'D')).replace(/[\u0300-\u036f]/g, '');
}
/** adapted from https://github.com/rwu823/react-addons-text-content */
function getTextFromReact(reactChild) {
    let result = '';
    const addChildTextToResult = child => {
        if (typeof child === 'string' || typeof child === 'number') {
            result = `${result} ${child}`;
        }
        else if (Array.isArray(child)) {
            child.forEach(c => addChildTextToResult(c));
        }
        else if (child && child.props) {
            const { children } = child.props;
            if (Array.isArray(children)) {
                children.forEach(c => addChildTextToResult(c));
            }
            else {
                addChildTextToResult(children);
            }
        }
    };
    addChildTextToResult(reactChild);
    // clean up adjacent whitespace in result
    const adjacentWhitespaceRegex = /(\s)(?:\s+)/g;
    return result.trim().replace(adjacentWhitespaceRegex, '$1');
}

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/thirdparty/FocusManager.ts
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;
};
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2020 Adobe Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Incorporated.
 **************************************************************************/
// @ts-nocheck -- Disabling TS for the entire file because this file is maintained by UXP, but
//                we have to keep a copy because the UXP implementation deviates from the RS
//                implementation and isn't available to non-UXP clients (web, CCD). If we add
//                types here, we'll have to do it again if we need to take updates from UXP.
/**
 * Forked from https://git.corp.adobe.com/torq/react-spectrum/blob/develop/src/utils/FocusManager.js
 */







const WHITESPACE_REGEXP = /[\n\r]+|[\s]{1,}/g;
const DELAY_BEFORE_AUTOFOCUS = 175;
let FocusManager_FocusManager = class FocusManager extends react_default.a.Component {
    constructor() {
        super(...arguments);
        this.keysSoFar = '';
        this.keyClearTimeout = null;
    }
    getItems(selected = false) {
        const { itemSelector, selectedItemSelector, includeSelf } = this.props;
        const selector = selected && selectedItemSelector ? selectedItemSelector : itemSelector;
        // eslint-disable-next-line react/no-find-dom-node
        const node = react_dom_default.a.findDOMNode(this);
        const array = [];
        if (includeSelf && node.matches(selector)) {
            array.push(node);
        }
        const items = array.concat(Array.from(node.querySelectorAll(selector)));
        /* When items have data-order defined, we use the attribute to sort the items.
         * The sort order based on data-order attribute defines the next focus element.
         */
        if (items.length > 0 && items[0].getAttribute('data-order') !== undefined) {
            items.sort((a, b) => {
                const p1 = a.getAttribute('data-order');
                const p2 = b.getAttribute('data-order');
                return parseInt(p1, 10) - parseInt(p2, 10);
            });
        }
        return items;
    }
    keyboardFocusItem(item, index, e) {
        const { onKeyboardFocusChange } = this.props;
        item.focus();
        if (onKeyboardFocusChange) {
            onKeyboardFocusChange(item, index, e);
        }
    }
    // eslint-disable-next-line react/sort-comp
    onFocusFirst(e) {
        const items = this.getItems();
        if (items.length && (!e || items.indexOf(e.target) !== -1)) {
            if (e) {
                e.preventDefault();
            }
            this.keyboardFocusItem(items[0], 0, e);
        }
    }
    onFocusLast(e) {
        const items = this.getItems();
        if (items.length && (!e || items.indexOf(e.target) !== -1)) {
            if (e) {
                e.preventDefault();
            }
            this.keyboardFocusItem(items[items.length - 1], items.length - 1, e);
        }
    }
    onFocusPrevious(e, offset = 1) {
        const { disableCyclicFocus } = this.props;
        const items = this.getItems();
        if (items.length && e && items.indexOf(e.target) !== -1) {
            e.preventDefault();
            let index = items.indexOf(e.target) - offset;
            if (index < 0) {
                if (disableCyclicFocus) {
                    return;
                }
                index = items.length - 1;
            }
            this.keyboardFocusItem(items[index], index, e);
        }
    }
    onFocusNext(e, offset = 1) {
        const { disableCyclicFocus } = this.props;
        const items = this.getItems();
        if (items.length && e && items.indexOf(e.target) !== -1) {
            e.preventDefault();
            let index = items.indexOf(e.target) + offset;
            if (index >= items.length) {
                if (disableCyclicFocus) {
                    return;
                }
                index = 0;
            }
            this.keyboardFocusItem(items[index], index, e);
        }
    }
    onPageUp(e) {
        const { ignorePageUpPageDown } = this.props;
        if (ignorePageUpPageDown) {
            return;
        }
        const items = this.getItems();
        if (items.length && e && items.indexOf(e.target) !== -1) {
            e.preventDefault();
            // eslint-disable-next-line react/no-find-dom-node
            const listNode = react_dom_default.a.findDOMNode(this);
            const nextPage = Math.max(e.target.offsetTop + e.target.offsetHeight - listNode.clientHeight, 0);
            const index = items.indexOf(e.target);
            const item = items
                .slice(0, index)
                .reverse()
                .find(item => item.offsetTop < nextPage);
            if (item) {
                this.keyboardFocusItem(item, index, e);
                scrollToDOMNode(item, listNode, true);
            }
            else {
                this.onFocusFirst(e);
            }
        }
    }
    onPageDown(e) {
        const { ignorePageUpPageDown } = this.props;
        if (ignorePageUpPageDown) {
            return;
        }
        const items = this.getItems();
        if (items.length && e && items.indexOf(e.target) !== -1) {
            e.preventDefault();
            // eslint-disable-next-line react/no-find-dom-node
            const listNode = react_dom_default.a.findDOMNode(this);
            const nextPage = Math.min(e.target.offsetTop + listNode.clientHeight, listNode.scrollHeight + listNode.clientHeight);
            const index = items.indexOf(e.target) + 1;
            const item = items
                .slice(index)
                .find(item => item.offsetTop + item.offsetHeight > nextPage);
            if (item) {
                this.keyboardFocusItem(item, index, e);
                scrollToDOMNode(item, listNode, true);
            }
            else {
                this.onFocusLast(e);
            }
        }
    }
    findItemToFocus(e) {
        const { target, shiftKey, charCode } = e;
        const character = removeDiacritics(String.fromCharCode(charCode)).toUpperCase();
        let items = this.getItems();
        if (this.keysSoFar === '' || character === this.keysSoFar || shiftKey) {
            // reverse order if shiftKey is pressed
            if (shiftKey) {
                items = items.reverse();
            }
            this.searchIndex = items.indexOf(target);
        }
        if (character !== this.keysSoFar) {
            this.keysSoFar += character;
        }
        this.clearKeysSoFarAfterDelay();
        let item = this.findMatchInRange(items, this.searchIndex + 1, items.length);
        if (!item) {
            item = this.findMatchInRange(items, 0, this.searchIndex);
        }
        if (item) {
            item.focus();
        }
    }
    clearKeysSoFarAfterDelay() {
        if (this.keyClearTimeout) {
            clearTimeout(this.keyClearTimeout);
        }
        this.keyClearTimeout = setTimeout(() => {
            this.keysSoFar = '';
            // eslint-disable-next-line @typescript-eslint/no-magic-numbers
        }, 500);
    }
    findMatchInRange(items, startIndex, endIndex) {
        // Find the first item starting with the keysSoFar substring, searching in the specified range of items
        for (let i = startIndex; i < endIndex; i++) {
            const label = items[i].innerText || items[i].textContent;
            if (label &&
                removeDiacritics(label)
                    .replace(WHITESPACE_REGEXP, '')
                    .toUpperCase()
                    .indexOf(this.keysSoFar) === 0) {
                return items[i];
            }
        }
        return null;
    }
    /**
     * Handle keydown event
     * @param {Event} e Event object
     */
    onKeyDown(e) {
        if (e.isPropagationStopped()) {
            return;
        }
        // eslint-disable-next-line react/destructuring-assignment
        interpretKeyboardEvent.call(this, e, this.props.orientation);
    }
    /**
     * Handle keypress event
     * @param {Event} e Event object
     */
    onKeyPress(e) {
        if (e.isPropagationStopped()) {
            return;
        }
        this.findItemToFocus(e);
    }
    /**
     * When an item receives focus, it should have tabIndex === 0 and all other items should have tabIndex === -1
     * @param {Event} e Event object
     */
    onFocus(e) {
        if (e.isPropagationStopped()) {
            return;
        }
        this.getItems().forEach(item => {
            item.tabIndex = item === e.target ? 0 : -1;
        });
    }
    /**
     * When an item loses focus, set the appropriate tabIndex on each item based on its selected state.
     * If the item losing focus is selected,
     * it should be the only item to receive focus on shift+tab or tab back to the control,
     * However, if the item losing focus is not selected,
     * any of the selected items should receive focus on shift+tab or tab.
     * @param {Event} e Event object
     */
    onBlur(e) {
        if (e.isPropagationStopped()) {
            return;
        }
        const selectedItems = this.getItems(true);
        // If there are selected items,
        if (selectedItems.length) {
            // store whether item losing focus is selected.
            const targetSelected = selectedItems.indexOf(e.target) !== -1;
            this.getItems().forEach(item => {
                // store whether the current item is selected.
                const selected = selectedItems.indexOf(item) !== -1;
                // If the current item is the item losing focus and it is selected,
                // or the current item is selected and the item losing focus is not selected,
                // set tabIndex === 0, otherwise set tabIndex === -1.
                item.tabIndex =
                    (item === e.target && targetSelected) || (!targetSelected && selected) ? 0 : -1;
            });
        }
    }
    componentDidMount() {
        const { autoFocus, selectedItemSelector } = this.props;
        if (autoFocus) {
            // @ts-ignore
            // eslint-disable-next-line react/no-find-dom-node
            const selectedItem = selectedItemSelector
                ? react_dom_default.a.findDOMNode(this).querySelector(selectedItemSelector)
                : null;
            // wait a frame before trying to shift focus
            // @ts-ignore
            this.focusTimer = setTimeout(() => {
                if (selectedItem) {
                    selectedItem.focus();
                }
                else {
                    this.onFocusFirst();
                }
            }, DELAY_BEFORE_AUTOFOCUS);
        }
    }
    componentWillUnmount() {
        clearTimeout(this.focusTimer);
    }
    render() {
        const { children, disabled, manageTabIndex, typeToSelect } = this.props;
        const child = react_default.a.Children.only(children);
        const { onKeyDown, onKeyPress, onFocus, onBlur, } = child.props;
        // @ts-ignore
        return react_default.a.cloneElement(child, {
            onKeyDown: !disabled ? chain(onKeyDown, this.onKeyDown) : onKeyDown,
            onKeyPress: typeToSelect && !disabled ? chain(onKeyPress, this.onKeyPress) : onKeyPress,
            onFocus: manageTabIndex && !disabled ? chain(onFocus, this.onFocus) : onFocus,
            onBlur: manageTabIndex && !disabled ? chain(onBlur, this.onBlur) : onBlur,
        });
    }
};
FocusManager_FocusManager.propTypes = {
    /**
     * A selector of focusable elements to manage focus between
     */
    itemSelector: prop_types_default.a.string.isRequired,
    /**
     * Whether to use roving tabIndex so that only one element within the group can receive focus with tab
     * key at a time.
     */
    manageTabIndex: prop_types_default.a.bool,
    /**
     * Orientation of items; "horizontal" orientation ignores up/down arrow keys, "vertical" orientation
     * ignores left/right arrow keys, "both" handles up/left and down/right.
     */
    orientation: prop_types_default.a.oneOf(['horizontal', 'vertical', 'both']),
    /**
     * A selector of selected elements
     */
    selectedItemSelector: prop_types_default.a.string,
    /**
     * Whether to disable focus management
     */
    disabled: prop_types_default.a.bool,
    /**
     * Whether arrow key navigation will wrap around to the other end, such as
     * up arrow from the first item wrapping around to the last item.
     */
    disableCyclicFocus: prop_types_default.a.bool,
    /**
     * Whether to include alphanumeric typing as a way to move focus to items in a list.
     */
    typeToSelect: prop_types_default.a.bool,
    /**
     * Whether to include the child wrapper element in the group of elements that can receive focus.
     */
    includeSelf: prop_types_default.a.bool,
    /**
     * Whether to ignore PageUp and PageDown events to move focus between items.
     */
    ignorePageUpPageDown: prop_types_default.a.bool,
    /**
     * Whether to autoFocus first selected item or first item.
     */
    autoFocus: prop_types_default.a.bool,
};
FocusManager_FocusManager.defaultProps = {
    manageTabIndex: true,
    orientation: 'vertical',
    typeToSelect: false,
    includeSelf: false,
    ignorePageUpPageDown: false,
    autoFocus: false,
    selectedItemSelector: '',
    disabled: false,
    disableCyclicFocus: false,
};
FocusManager_FocusManager = __decorate([
    lib_default.a
], FocusManager_FocusManager);
/* harmony default export */ var thirdparty_FocusManager = __webpack_exports__["a"] = (FocusManager_FocusManager);
const focusableElements = [
    'input:not([disabled]):not([type=hidden])',
    'select:not([disabled])',
    'textarea:not([disabled])',
    'button:not([disabled])',
    'a[href]',
    'area[href]',
    'summary',
    'iframe',
    'object',
    'embed',
    'audio[controls]',
    'video[controls]',
    '[contenteditable]',
];
const FOCUSABLE_ELEMENT_SELECTOR = `${focusableElements.join(',')},[tabindex]`;
focusableElements.push('[tabindex]:not([tabindex="-1"])');
const TABBABLE_ELEMENT_SELECTOR = focusableElements.join(':not([tabindex="-1"]),');
function trapFocus(componentOrElement, event) {
    const { type, key, shiftKey, target } = event;
    let node;
    let tabbables;
    let tabbable;
    let first;
    let last;
    if (type === 'keydown' || type === 'focus') {
        // eslint-disable-next-line react/no-find-dom-node
        node = react_dom_default.a.findDOMNode(componentOrElement);
        if (node) {
            // find tabbable elements within container element
            tabbables = Array.from(node.querySelectorAll(TABBABLE_ELEMENT_SELECTOR)).filter(el => el !== node);
            [first] = tabbables;
            last = tabbables[tabbables.length - 1];
        }
    }
    // If navigating using the tab key,
    if (type === 'keydown' && key === 'Tab') {
        if (node) {
            if (shiftKey) {
                // with focus on first tabbable element, navigating backwards,
                if (target === first) {
                    // focus the last tabbable element
                    tabbable = last;
                }
                // otherwise, with focus on last tabbable element, navigating forwards,
            }
            else if (target === last) {
                // focus the first tabbable element.
                tabbable = first;
            }
        }
    }
    else if (type === 'focus') {
        if (target === node) {
            tabbable = first;
        }
    }
    if (tabbable) {
        event.preventDefault();
        event.stopPropagation();
        if (tabbable !== document.activeElement) {
            tabbable.focus();
        }
    }
}


/***/ }),

/***/ "c0Fl":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var _interopRequireDefault = __webpack_require__("TqRt");

exports.__esModule = true;
exports.default = void 0;

var _inDOM = _interopRequireDefault(__webpack_require__("Bp9Y"));

var off = function off() {};

if (_inDOM.default) {
  off = function () {
    if (document.addEventListener) return function (node, eventName, handler, capture) {
      return node.removeEventListener(eventName, handler, capture || false);
    };else if (document.attachEvent) return function (node, eventName, handler) {
      return node.detachEvent('on' + eventName, handler);
    };
  }();
}

var _default = off;
exports.default = _default;
module.exports = exports["default"];

/***/ }),

/***/ "c0ty":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("path", {
  d: "M18 16.564a.5.5 0 0 1 .858-.349l6.989 7.431a.5.5 0 0 1 0 .708l-6.989 7.457a.5.5 0 0 1-.858-.349V26H3a1 1 0 0 1-1-1v-2a1 1 0 0 1 1-1h15z"
}), React.createElement("path", {
  d: "M42 6H12a2 2 0 0 0-2 2v10h4v-8h26v28H14v-8h-4v10a2 2 0 0 0 2 2h30a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2z"
}));

/***/ }),

/***/ "c0vI":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return SessionFlusher; });
/* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("6PXS");
/* harmony import */ var _hub_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("GIgW");


/**
 * @inheritdoc
 */

class SessionFlusher {
  __init() {
    this.flushTimeout = 60;
  }

  __init2() {
    this._pendingAggregates = {};
  }

  __init3() {
    this._isEnabled = true;
  }

  constructor(client, attrs) {
    ;

    SessionFlusher.prototype.__init.call(this);

    SessionFlusher.prototype.__init2.call(this);

    SessionFlusher.prototype.__init3.call(this);

    this._client = client; // Call to setInterval, so that flush is called every 60 seconds

    this._intervalId = setInterval(() => this.flush(), this.flushTimeout * 1000);
    this._sessionAttrs = attrs;
  }
  /** Checks if `pendingAggregates` has entries, and if it does flushes them by calling `sendSession` */


  flush() {
    const sessionAggregates = this.getSessionAggregates();

    if (sessionAggregates.aggregates.length === 0) {
      return;
    }

    this._pendingAggregates = {};

    this._client.sendSession(sessionAggregates);
  }
  /** Massages the entries in `pendingAggregates` and returns aggregated sessions */


  getSessionAggregates() {
    const aggregates = Object.keys(this._pendingAggregates).map(key => {
      return this._pendingAggregates[parseInt(key)];
    });
    const sessionAggregates = {
      attrs: this._sessionAttrs,
      aggregates
    };
    return Object(_sentry_utils__WEBPACK_IMPORTED_MODULE_0__[/* dropUndefinedKeys */ "c"])(sessionAggregates);
  }
  /** JSDoc */


  close() {
    clearInterval(this._intervalId);
    this._isEnabled = false;
    this.flush();
  }
  /**
   * Wrapper function for _incrementSessionStatusCount that checks if the instance of SessionFlusher is enabled then
   * fetches the session status of the request from `Scope.getRequestSession().status` on the scope and passes them to
   * `_incrementSessionStatusCount` along with the start date
   */


  incrementSessionStatusCount() {
    if (!this._isEnabled) {
      return;
    }

    const scope = Object(_hub_js__WEBPACK_IMPORTED_MODULE_1__[/* getCurrentHub */ "b"])().getScope();
    const requestSession = scope && scope.getRequestSession();

    if (requestSession && requestSession.status) {
      this._incrementSessionStatusCount(requestSession.status, new Date()); // This is not entirely necessarily but is added as a safe guard to indicate the bounds of a request and so in
      // case captureRequestSession is called more than once to prevent double count


      if (scope) {
        scope.setRequestSession(undefined);
      }
      /* eslint-enable @typescript-eslint/no-unsafe-member-access */

    }
  }
  /**
   * Increments status bucket in pendingAggregates buffer (internal state) corresponding to status of
   * the session received
   */


  _incrementSessionStatusCount(status, date) {
    // Truncate minutes and seconds on Session Started attribute to have one minute bucket keys
    const sessionStartedTrunc = new Date(date).setSeconds(0, 0);
    this._pendingAggregates[sessionStartedTrunc] = this._pendingAggregates[sessionStartedTrunc] || {}; // corresponds to aggregated sessions in one specific minute bucket
    // for example, {"started":"2021-03-16T08:00:00.000Z","exited":4, "errored": 1}

    const aggregationCounts = this._pendingAggregates[sessionStartedTrunc];

    if (!aggregationCounts.started) {
      aggregationCounts.started = new Date(sessionStartedTrunc).toISOString();
    }

    switch (status) {
      case 'errored':
        aggregationCounts.errored = (aggregationCounts.errored || 0) + 1;
        return aggregationCounts.errored;

      case 'ok':
        aggregationCounts.exited = (aggregationCounts.exited || 0) + 1;
        return aggregationCounts.exited;

      default:
        aggregationCounts.crashed = (aggregationCounts.crashed || 0) + 1;
        return aggregationCounts.crashed;
    }
  }

}



/***/ }),

/***/ "c2D/":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("path", {
  d: "M32 26.956v-15h2.565a.431.431 0 0 0 .262-.724l-3.971-3.956a.5.5 0 0 0-.706 0l-3.963 3.954a.431.431 0 0 0 .262.724h2.565l.006 15a1 1 0 0 0 1 1h.993a.988.988 0 0 0 .987-.998z"
}), React.createElement("rect", {
  height: "4",
  rx: "1",
  ry: "1",
  width: "12",
  x: "2",
  y: "8"
}), React.createElement("rect", {
  height: "4",
  rx: "1",
  ry: "1",
  width: "16",
  x: "2",
  y: "16"
}), React.createElement("rect", {
  height: "4",
  rx: "1",
  ry: "1",
  width: "20",
  x: "2",
  y: "24"
}));

/***/ }),

/***/ "c3AU":
/***/ (function(module) {

module.exports = JSON.parse("{\"a11y.button.canvases\":\"{name}\",\"a11y.button.libraries\":\"{name}, bibliotek\",\"a11y.button.listGridToggle\":\"visning til/fra, {toggledView, select, grid {gitter} list {liste}} visning\",\"a11y.button.project\":\"{name}, projekt\",\"a11y.button.published\":\"{name}, {extension}\",\"a11y.button.selectFolder\":\"Vælg mappe\",\"a11y.button.working\":\"{name}, {extension}, ændret {modified}\",\"a11y.strings.folder\":\"mappe\",\"header.action.newProject\":\"Nyt projekt\",\"header.action.newLibrary\":\"Nyt bibliotek\",\"header.action.browseAll\":\"Gennemse alle\",\"header.Name\":\"Navn\",\"header.Size\":\"Størrelse\",\"header.Sharing\":\"Medlemmer\",\"header.Team\":\"Arbejdsområde\",\"header.DateModified\":\"Ændret\",\"header.DateCreated\":\"Oprettet\",\"header.Status\":\"Valgt som favorit\",\"header.SortBy\":\"Sortér efter\",\"header.sort.label\":\"Sorter\",\"header.ChangeSortDirection\":\"Skift sorteringsretning til\",\"header.SortBy.asc\":\"Stigende\",\"header.SortBy.desc\":\"Faldende\",\"header.selectAll\":\"Markér alle\",\"header.reverseOrder\":\"Omvendt rækkefølge\",\"header.showCompatible\":\"Kompatible filer\",\"header.showEverything\":\"Alt\",\"product.illustrator.web\":\"Illustrator Web (beta)\",\"product.photoshop.web\":\"Photoshop Web (beta)\",\"status.followed\":\"Ja\",\"status.unfollowed\":\"Nej\",\"team.usm.defaultName\":\"Arbejdsrum {name}\",\"space.access.private.description\":\"Kun inviterede\",\"space.access.private.tooltip\":\"Kun personer, der er blevet inviteret, har adgang til dette projekt\",\"space.access.team.description\":\"Alle i arbejdsrummet og de inviterede\",\"space.access.team.tooltip\":\"Alle i \\\"{team}\\\" har adgang til dette projekt\",\"yourProjects.title\":\"Projekter\",\"yourProjects.librariesTab.title\":\"Teambiblioteker\",\"yourProjects.empty.spaces\":\"Opret flere projekter, og inviter flere arbejdsrum-medlemmer\",\"browseAll.title\":\"Gennemse alle\",\"yourFiles.title\":\"Dine dokumenter\",\"yourLibraries.title\":\"Biblioteker\",\"yourLibraries.metadata\":\"BIBLIOTEK\",\"canvas.metadata\":\"LÆRRED\",\"projectInfo.action.view\":\"Se oplysninger\",\"projectInfo.action.edit\":\"Rediger projekt\",\"projectInfo.empty.cta\":\"Opret nyt projekt\",\"projectInfo.empty.description\":\"Med Creative Cloud-projekter forenkles søgning, organisering, deling og beslutningstagning, og alt, hvad du har brug for til dine kreative projekter, placeres på ét sted.\",\"projectInfo.empty.heading\":\"Mere skabelse, mindre indhentning.\",\"projectInfo.error.description\":\"Prøv igen senere\",\"projectInfo.error.heading\":\"{section} kan ikke indlæses\",\"projectInfo.new.error.title\":\"Det er ikke muligt at oprette nyt projekt\",\"projectInfo.new.noPermission.description\":\"Kontakt din administrator for at få flere oplysninger.\",\"projectInfo.title.create\":\"NYT PROJEKT\",\"projectInfo.title.edit\":\"REDIGER PROJEKT\",\"projectInfo.title.view\":\"OPLYSNINGER OM PROJEKT\",\"projectInfo.access.title\":\"Hvem kan redigere dette projekt?\",\"projectInfo.access.warning\":\"Nogle medlemmer kan miste adgangen til projektet, hvis du ændrer tilladelsen til \\\"Kun inviterede\\\".\",\"projectInfo.organization\":\"Organisation\",\"projectInfo.organization.placeholder\":\"Vælg én\",\"projectInfo.description\":\"Beskrivelse\",\"textField.invalid.characters\":\"Navne må ikke indeholde følgende tegn: \\\\\\\\ / * ? \\\" | : < >\",\"textField.invalid.duplicateName\":\"Der er allerede et projekt med dette navn i denne organisation.\",\"textField.invalid.duplicateName.space\":\"Der er allerede et projekt med dette navn i dette arbejdsrum\",\"textField.invalid.duplicateName.team\":\"Der er allerede et arbejdsrum med dette navn i denne organisation.\",\"textField.invalid.empty\":\"Navn må ikke være tomt\",\"textField.invalid.generic\":\"Ugyldigt navn\",\"textField.invalid.length\":\"Navne må ikke indeholde mere end 50 tegn\",\"textField.invalid.nameEndsWithDot\":\"Navne må ikke slutte med et punktum\",\"textField.invalid.offline\":\"Opret forbindelse igen for at få adgang til alle dine arbejdsrum og projekter. Gå til Hjem for at se lokale filer fra dine projekter.\",\"projectInfo.textField.placeholder\":\"Navngiv dette projekt\",\"projectInfo.team\":\"Arbejdsområde\",\"projectInfo.description.placeholder\":\"Eksempel: Filer, feedback og referencemateriale til kundeprojektet\",\"projectInfo.description.invalidLength\":\"Beskrivelsen kan ikke være længere end 1000 tegn\",\"projectInfo.toast.success.new\":\"Projektet blev oprettet: {name}\",\"projectInfo.toast.success.update\":\"Projektet blev opdateret: {name}\",\"projectInfo.toast.error.generic\":\"Det var ikke muligt at {create, select, true {oprette} other {redigere}} projektet\",\"team.empty.heading\":\"Projekter gør, at alle er med i processen\",\"team.empty.description\":\"Er du træt af at blive låst ude af filer, at skulle håndtere forvirring omkring versioner og sende skærmbilleder til gennemgang via e-mail? Brug rum til at organisere projekter, indsamle ressourcer og feedback og dele filer, som hele teamet har brug for at arbejde med.\",\"team.empty.createSpace\":\"Opret et projekt\",\"team.empty.inviteMembers\":\"Inviter medlemmer\",\"team.empty.startHere\":\"START HER\",\"team.create.success\":\"Arbejdsrummet blev oprettet: {name}\",\"team.create.error.generic\":\"Arbejdsrummet kunne ikke oprettes\",\"team.edit.success\":\"Arbejdsrummet blev opdateret: {name}\",\"team.edit.error.generic\":\"Arbejdsrummet kunne ikke opdateres\",\"team.archive.success\":\"{count, plural, =1 {arbejdsrum} other {{count} arbejdsrum}} blev slettet\",\"team.archive.error.generic\":\"Det er ikke muligt at slette {count, plural, =1 {# arbejdsrum} other {# arbejdsrum}}\",\"team.error.generic\":\"Beklager, men noget gik galt.\",\"project1Up.action.projectInfo\":\"Se oplysninger\",\"project1up.region.space.ariaLabel\":\"{projectName}, projekt\",\"project1Up.section.libraries\":\"Biblioteker\",\"project1Up.section.libraries.empty.cta\":\"Tilføj Creative Cloud Libraries\",\"project1Up.section.libraries.empty.description\":\"Tilføj links til biblioteker, som du har brug for i dit arbejde.\",\"project1Up.section.libraries.empty.heading\":\"Saml alt på ét sted\",\"project1Up.section.filter\":\"Filter\",\"project1Up.section.filter.label\":\"Filtrer efter nøgleord\",\"project1Up.section.filter.enterKeyword\":\"Skriv nøgleord\",\"project1Up.section.filterFiles.empty.heading\":\"Ingen resultater matcher det valgte filter\",\"project1Up.section.compatibleFiles.empty.heading\":\"Der er ingen kompatible filer i dette projekt\",\"project1Up.section.workingFiles\":\"Arbejdsfiler\",\"project1Up.section.workingFiles.empty.addFiles\":\"Tilføj filer\",\"project1Up.section.workingFiles.empty.createFolder\":\"Opret ny mappe\",\"project1Up.section.workingFiles.empty.description\":\"Genoptag arbejdet på projekter og samarbejd med andre medlemmer.\",\"project1Up.section.workingFiles.empty.heading\":\"Arbejd med det, du vil, når du har behov for det\",\"project1Up.section.published\":\"Publicerede\",\"project1Up.section.published.empty.cta\":\"Sådan udgiver du links\",\"project1Up.section.published.empty.description\":\"Send links med kun visning for at få feedback fra de rette personer på det rette tidspunkt.\",\"project1Up.section.published.empty.description.readonly\":\"Når nogen har brug for feedback eller gennemgang, tilføjer de et link her.\",\"project1Up.section.published.empty.heading\":\"Del med formål\",\"project1Up.section.published.empty.heading.readonly\":\"Der er ingen udgivne elementer i dette projekt\",\"project1Up.section.canvases\":\"Lærreder\",\"project1Up.section.canvases.empty.cta\":\"Føj skrifttyper til Creative Cloud-lærreder\",\"project1Up.section.canvases.empty.description\":\"Tilføj links til ting, du har brug for for at udføre dit arbejde.\",\"project1Up.section.canvases.empty.heading\":\"Saml alt på ét sted\",\"project1Up.section.files\":\"Filer\",\"project1Up.error.accessDenied.heading\":\"Du har ikke adgang\",\"project1Up.error.accessDenied.description\":\"Du er blevet fjernet fra dette projekt. Kontakt din administrator, hvis du mener, at dette er en fejl.\",\"project1Up.header.seeAll\":\"Vis alle\",\"project1up.subheader.selected\":\"{count, plural, =1 {# element} other {# elementer}} valgt\",\"project1up.subheader.emptyDescription\":\"Føj en beskrivelse til dit projekt\",\"project1up.subheader.canvases.title\":\"Lærreder\",\"project1up.subheader.canvases.subtitle\":\"TODO: LÆRREDER – UNDERTITEL\",\"project1up.subheader.libraries.title\":\"Biblioteker\",\"project1up.subheader.libraries.subtitle\":\"Medlemmerne kan føje links til Creative Cloud Libraries her.\",\"project1up.subheader.working.title\":\"Arbejdsfiler\",\"project1up.subheader.working.subtitle\":\"Medlemmerne af dette projekt kan redigere disse filer.\",\"project1up.subheader.output.title\":\"Publicerede\",\"project1up.subheader.output.subtitle\":\"{contributor, select, true {Del skrivebeskyttede versioner af projektarbejde med personer uden for dit projekt.} other {Se og kommenter på disse skrivebeskyttede elementer}}\",\"project.subtitle\":\"PROJEKT\",\"project.countContributors\":\"{count, plural, =1 {# medlem} other {# medlemmer}}\",\"project.versionError.reload.description\":\"Prøv at opdatere browseren.\",\"project.versionError.reload.title\":\"Det er ikke muligt at få adgang til projektet\",\"project.versionError.update.description\":\"Du kan ikke få adgang til projektet, før du har opdateret appen.\",\"project.versionError.update.title\":\"Opdater {appName} for at åbne\",\"project.alreadyDiscarded.title\":\"Dette projekt er blevet slettet\",\"project.alreadyDiscarded.description\":\"Kontakt din administrator, hvis du mener, at dette er en fejl, eller gennemse andet indhold.\",\"project.deleted.title\":\"Dette projekt er blevet slettet permanent\",\"project.deleted.description\":\"Du kan ikke få adgang til dette projekt, fordi det ikke længere er tilgængeligt.\",\"project.metadataError.backLabel\":\"Tilbage til projekter\",\"project.metadataError.description\":\"Enten kan vi ikke finde det projekt, du leder efter, eller også har du ikke adgang.\",\"project.metadataError.title\":\"Beklager, men noget gik galt.\",\"folder.subtitle\":\"MAPPE\",\"libraries.toast.add.start\":\"Tilføjer {count, plural, =1 {# bibliotek} other {# biblioteker}}\",\"libraries.toast.add.success\":\"{count, plural, =1 {# bibliotek} other {# biblioteker}} blev tilføjet\",\"libraries.toast.add.error\":\"Det mislykkedes at tilføje {count, plural, =1 {# bibliotek} other {# biblioteker}}.  Prøv igen.\",\"libraries.toast.add.duplicate\":\"Dette bibliotek findes allerede\",\"libraries.toast.add.onlyDuplicates\":\"Det er ikke muligt at tilføje {count, plural, =1 {# bibliotek, fordi biblioteket allerede eksisterer} other {# biblioteker, fordi bibliotekerne allerede eksisterer}}.\",\"libraries.toast.delete.success\":\"{count, plural, =1 {# bibliotek} other {# biblioteker}} blev fjernet\",\"libraries.toast.delete.error\":\"Det mislykkedes at fjerne {count, plural, =1 {# bibliotek} other {# biblioteker}}\",\"libraries.toast.follow.inProgress\":\"Følger {count, plural, =1 {# bibliotek} other {# biblioteker}}\",\"libraries.toast.follow.success\":\"{count, plural, =1 {# bibliotek} other {# biblioteker}} følges\",\"libraries.toast.follow.error\":\"Det mislykkedes at følge {count, plural, =1 {# bibliotek} other {# biblioteker}}\",\"libraries.toast.unfollow.inProgress\":\"Følger ikke {count, plural, =1 {# bibliotek} other {# biblioteker}}\",\"libraries.toast.unfollow.success\":\"Du stoppede med at følge {count, plural, =1 {# bibliotek} other {# biblioteker}}\",\"libraries.toast.unfollow.error\":\"Det mislykkedes at stoppe med at følge {count, plural, =1 {# bibliotek} other {# biblioteker}}\",\"libraries.modal.empty.heading\":\"Ingen biblioteker\",\"libraries.modal.empty.description\":\"Din organisation har ikke delt nogen biblioteker\",\"libraries.modal.error.limitExceeded\":\"Biblioteket kan ikke tilføjes\",\"libraries.modal.error.limitExceeded.detail\":\"Du kan føje op til 100 biblioteker til et projekt. Fjern nogle for at tilføje flere.\",\"libraries.brokenResources\":\"Nogle biblioteker vises ikke, fordi du ikke har adgang. Kontakt andre medlemmer for at få flere oplysninger.\",\"copy.start\":\"Kopierer {count, plural, =1 {# element} other {# elementer}}\",\"copy.failure\":\"Det er ikke muligt at kopiere {count, plural, =1 {# element} other {# elementer}}\",\"copy.failure.partial\":\"Det er ikke muligt at kopiere nogle elementer\",\"copy.success\":\"{count, plural, =1 {# element} other {# elementer}} blev kopieret\",\"copy.conflictSuffix\":\"kopier\",\"move.start\":\"Flytter {count, plural, =1 {# element} other {# elementer}}\",\"move.failure\":\"Det er ikke muligt at flytte {count, plural, =1 {# element} other {# elementer}}\",\"move.failure.partial\":\"Det er ikke muligt at flytte nogle elementer\",\"move.success\":\"{count, plural, =1 {# element} other {# elementer}} blev flyttet\",\"upload.start\":\"Uploader {count, plural, =1 {# element} other {# elementer}}\",\"upload.failure\":\"{count, plural, =1 {# element} other {# elementer}} kan ikke uploades\",\"upload.failure.partial\":\"Nogle elementer kan ikke uploades\",\"upload.failure.snapshot\":\"Dette element understøttes ikke\",\"upload.success\":\"{count, plural, =1 {# element} other {# elementer}} blev uploadet\",\"download.start\":\"Downloader {count, plural, =1 {# element} other {# elementer}}\",\"download.failure\":\"{count, plural, =1 {# element} other {# elementer}} kan ikke downloades\",\"download.failure.partial\":\"Nogle elementer kan ikke downloades\",\"download.success\":\"{count, plural, =1 {# element} other {# elementer}} blev downloadet\",\"delete.failure\":\"{count, plural, =1 {# element} other {# elementer}} kan ikke slettes\",\"delete.failure.partial\":\"Nogle elementer kan ikke slettes\",\"delete.success\":\"{count, plural, =1 {# element} other {# elementer}} blev slettet\",\"jobs.failure\":\"{count, plural, =1 {# element} other {# elementer}} mislykkedes\",\"jobs.inProgress\":\"Arbejder...\",\"jobs.success\":\"{count, plural, =1 {# element} other {# elementer}} blev fuldført\",\"restore.failure\":\"{count, plural, =1 {# element} other {# elementer}} kan ikke gendannes\",\"restore.failure.partial\":\"Nogle elementer kan ikke gendannes\",\"restore.success\":\"{count, plural, =1 {# element} other {# elementer}} blev gendannet\",\"rename.start\":\"Omdøber\",\"rename.success\":\"{count, plural, =1 {# element} other {# elementer}} blev omdøbt\",\"rename.failure\":\"Serverfejl, elementet kunne ikke omdøbes\",\"rename.failure.conflict\":\"Du har allerede et element her med dette navn\",\"rename.offline.heading\":\"Det er ikke muligt at omdøbe\",\"rename.offline\":\"Du er offline og kan ikke omdøbe elementet. Gå online igen for at udføre denne handling.\",\"bookmark.follow.error\":\"Det er ikke muligt at vælge dette projekt som favorit\",\"bookmark.unfollow.error\":\"Det er ikke muligt at fjerne dette projekt som favorit\",\"bookmark.follow.success\":\"Du har valgt {projectName} som favorit\",\"bookmark.unfollow.success\":\"Du har fjernet {projectName} som favorit\",\"bookmark.bulk.follow.success\":\"Der blev valgt {count, plural, =1 {# element} other {# elementer}} som favorit\",\"bookmark.bulk.follow.partial\":\"Nogle elementer kan ikke vælges som favorit\",\"bookmark.bulk.follow.error\":\"Det er ikke muligt at vælge {count, plural, =1 {# element} other {# elementer}} som favorit\",\"bookmark.bulk.unfollow.success\":\"Der blev fjernet {count, plural, =1 {# element} other {# elementer}} som favorit\",\"bookmark.bulk.unfollow.partial\":\"Nogle elementer kan ikke fjernes som favorit\",\"bookmark.bulk.unfollow.error\":\"Det er ikke muligt at fjerne {count, plural, =1 {# element} other {# elementer}} som favorit\",\"copyLink.success\":\"Link kopieret til udklipsholder\",\"copyLink.failure\":\"Linket kan ikke kopieres\",\"starterUser.project1upNavigation\":\"Din begynderplan omfatter ikke åbning af dokumenter i projekter\",\"starterUser.project1upNavigationCDPSave\":\"Din begynderplan omfatter ikke, at dokumenter kan gemmes i projekter\",\"invite.failure\":\"Invitationerne kunne ikke sendes. Prøv igen\",\"accessibility.backButton\":\"Gå tilbage\",\"button.role\":\"Knap\",\"button.actions\":\"Handlinger\",\"button.add\":\"Tilføj\",\"button.addFiles\":\"Tilføj filer\",\"button.addLibrary\":\"Tilføj bibliotek\",\"button.createDocument\":\"Ny {appName}-fil\",\"button.library\":\"Bibliotek\",\"button.back\":\"Tilbage\",\"button.browse\":\"Gennemse alle\",\"button.cancel\":\"Annuller\",\"button.okay\":\"OK\",\"button.canvas\":\"Lærred\",\"button.addCanvas\":\"Nyt lærred\",\"button.changeDefaultApp\":\"Skift standardprogram...\",\"button.close\":\"Luk\",\"button.continue\":\"Fortsæt\",\"button.copy\":\"Kopiér til...\",\"button.copyLink\":\"Kopiér link\",\"button.create\":\"Opret\",\"button.createNewFolder\":\"Opret ny mappe\",\"button.newFile\":\"Ny fil\",\"button.newFolder\":\"Ny mappe\",\"button.delete\":\"Slet\",\"button.deleteResource\":\"Fjern\",\"button.done\":\"Udført\",\"button.download\":\"Download\",\"button.favorite\":\"Favorit\",\"button.follow\":\"Følg\",\"button.invite\":\"Inviter\",\"button.inviteLabel\":\"Inviter personer\",\"button.leave\":\"Forlad\",\"button.leaveProject\":\"Forlad arbejdsrum\",\"button.move\":\"Flyt til...\",\"button.next\":\"Næste\",\"button.ok\":\"OK\",\"button.open\":\"Åbn\",\"button.openWith\":\"Åbn med\",\"button.open.appName\":\"{appName} {isDefault, select, true {(Standard)} other {}}\",\"button.redo\":\"Prøv igen.\",\"button.reload\":\"Genindlæs\",\"button.rename\":\"Omdøb\",\"button.restore\":\"Gendan\",\"button.retry\":\"Prøv igen\",\"button.save\":\"Gem\",\"button.select\":\"Vælg\",\"button.share\":\"Del\",\"button.skipTour\":\"Spring turen over\",\"button.undo\":\"Fortryd\",\"button.unfavorite\":\"Fjern som favorit\",\"button.unfollow\":\"Stop med at følge\",\"button.update\":\"Opdater\",\"button.upgrade\":\"Opgrader\",\"button.view\":\"Se alle\",\"button.viewProject\":\"Vis projekt\",\"button.viewTarget\":\"Vis\",\"button.createWeblink\":\"Tilføj weblink\",\"button.leaveTeam\":\"Forlad arbejdsrum\",\"button.renameTeam\":\"Omdøb arbejdsrum\",\"button.editTeam\":\"Rediger oplysninger om arbejdsrum\",\"button.archiveTeam\":\"Slet arbejdsrum\",\"button.upload\":\"Upload filer\",\"button.goToDeleted\":\"Vis i slettede\",\"button.viewEverything\":\"Vis alt\",\"button.viewInWeb\":\"Få vist på nettet\",\"abbreviations.fileSize.byte\":\"B\",\"abbreviations.fileSize.kilobyte\":\"KB\",\"abbreviations.fileSize.megabyte\":\"MB\",\"abbreviations.fileSize.gigabyte\":\"GB\",\"abbreviations.fileSize.terabyte\":\"TB\",\"statusIcon.conflicted\":\"Synk.-konflikt\",\"statusIcon.onlineOnly\":\"Kun online\",\"statusIcon.availableOffline\":\"Tilgængelig offline\",\"statusIcon.syncing\":\"Synkroniserer...\",\"statusIcon.waitingToSync\":\"Venter på at synkronisere\",\"statusMessage.offline.description\":\"Opret forbindelse igen for at få adgang til alle dine arbejdsrum og projekter. Gå til Hjem for at se lokale filer fra dine projekter.\",\"statusMessage.offline.heading\":\"Forbindelsen er blevet afbrudt\",\"statusMessage.offline.toast\":\"Forbindelsen er afbrudt, så nogle funktioner og filer er muligvis ikke tilgængelige.\",\"toggle.listView\":\"Listevisning\",\"toggle.gridView\":\"Miniaturevisning\",\"color.fuchsia\":\"Fuksia\",\"color.indigo\":\"Indigo\",\"color.celery\":\"Selleri\",\"color.magenta\":\"Magenta\",\"color.yellow\":\"Gul\",\"color.seafoam\":\"Havskum\",\"color.chartreuse\":\"Chartreuse\",\"color.purple\":\"Lilla\",\"color.blue\":\"Blå\",\"color.red\":\"Rød\",\"color.orange\":\"Orange\",\"color.green\":\"Grøn\",\"color.label\":\"Projektfarve\",\"tooltip.offline.general\":\"Gå tilbage online for at foretage denne handling\",\"tooltip.moreFaces\":\"+ {number} yderligere\",\"action.leave.space.success\":\"Du har forladt {count, plural, =1 {# projekt} other {# projekter}}\",\"action.leave.prototype.success\":\"Adgangen til {count, plural, =1 {# prototype} other {# prototyper}} blev fjernet\",\"action.leave.file.success\":\"Adgangen til {count, plural, =1 {# fil} other {# filer}} blev fjernet\",\"action.leave.canvas.success\":\"Adgangen til {count, plural, =1 {# lærred} other {# lærreder}} blev fjernet\",\"action.leave.team.success\":\"Du har forladt 1 arbejdsrum\",\"action.leave.space.error\":\"Det er ikke muligt at forlade dette projekt\",\"action.leave.prototype.error\":\"Det er ikke muligt at forlade denne prototype\",\"action.leave.file.error\":\"Det er ikke muligt at forlade denne fil\",\"action.leave.team.error\":\"Det er ikke muligt at forlade dette arbejdsrum\",\"action.leave.canvas.error\":\"Det er ikke muligt at forlade dette lærred\",\"action.leave.space.partial.error\":\"Det er ikke muligt at forlade alle projekter\",\"action.leave.prototype.partial.error\":\"Det er ikke muligt at forlade alle prototyper\",\"action.leave.file.partial.error\":\"Det er ikke muligt at forlade alle filer\",\"action.leave.canvas.partial.error\":\"Det er ikke muligt at forlade alle lærreder\",\"action.leave.error.onlyContributor\":\"Du er det eneste medlem. Tilføj et andet medlem, inden du forlader dette.\",\"action.leave.error.addressBookGroupMember\":\"Forlad gruppen, og prøv igen.\",\"action.leave.error.admin\":\"Du kan ikke forlade rummet, fordi du er administrator.\",\"action.leave.error.generic\":\"Du kan ikke forlade rummet, fordi noget gik galt.\",\"action.reportAbuse\":\"Rapportér misbrug\",\"action.reportAbuse.required\":\"Påkrævet\",\"action.reportAbuse.titleText\":\"Hvis du føler, at dette Creative Cloud-indhold krænker Adobes Vilkår for brug, kan du rapportere indholdet ved at udfylde denne ekspresformular.\",\"action.reportAbuse.emailInput\":\"Din e-mailadresse\",\"action.reportAbuse.nameInput\":\"Dit navn\",\"action.reportAbuse.radioButtonText\":\"Hvorfor rapporterer du dette indhold?\",\"action.reportAbuse.defamation\":\"Ærekrænkelse\",\"action.reportAbuse.hate\":\"Racistisk eller diskriminerende indhold\",\"action.reportAbuse.trademark\":\"Krænkelse af varemærker\",\"action.reportAbuse.pornography\":\"Pornografisk indhold\",\"action.reportAbuse.vulgar\":\"Krænkende indhold\",\"action.reportAbuse.other\":\"Andet\",\"action.reportAbuse.inappropriate\":\"Ikke passende\",\"action.reportAbuse.age\":\"Unøjagtighed i forbindelse med alder\",\"action.reportAbuse.gender\":\"Unøjagtighed i forbindelse med køn\",\"action.reportAbuse.textAreaTitle\":\"Beskriv din bekymring\",\"action.reportAbuse.describeConcern\":\"Beskriv din bekymring\",\"action.reportAbuse.success\":\"Misbrug blev rapporteret\",\"action.reportAbuse.failure\":\"Rapportering af misbrug mislykkedes\",\"action.menu.label\":\"Handling-menu\",\"action.label\":\"Handling\",\"dialog.genericError.description\":\"Beklager, men noget gik galt.\",\"dialog.genericError.title\":\"Uventet fejl\",\"dialog.leave.space.title\":\"Forlad {count, plural, =1 {{name}} other {projekter}}\",\"dialog.leave.prototype.title\":\"Forlad {count, plural, =1 {denne prototype} other {prototyper}}\",\"dialog.leave.file.title\":\"Forlad {count, plural, =1 {denne fil} other {filer}}\",\"dialog.leave.canvas.title\":\"Forlad {count, plural, =1 {dette lærred} other {lærreder}}\",\"dialog.leave.team.title\":\"Siger du farvel?\",\"dialog.leave.team.detail\":\"Du vil ikke kunne fortryde dette, hvis du fjerner dig selv. Kontakt en administrator, hvis du ønsker at blive tilføjet til dette arbejdsrum igen.\",\"dialog.leave.space.detail\":\"Du vil miste adgangen til elementer, du ikke ejer, der er i dette projekt. Hvis du forlader \\\"{projectName}\\\", kan det ikke fortrydes.\",\"dialog.leave.prototype.detail\":\"Du vil ikke kunne få adgang til denne igen uden en ny invitation.\",\"dialog.leave.file.detail\":\"Du vil ikke kunne få adgang til denne igen uden en ny invitation.\",\"dialog.leave.canvas.detail\":\"Du vil ikke kunne få adgang til denne igen uden en ny invitation.\",\"dialog.leave.detail\":\"{type, select, space {Du vil miste adgangen til elementer, du ikke ejer, der er i {count, plural, =1 {dette projekt} other {disse projekter}}. Hvis du forlader {count, plural, =1 {\\\"{name}\\\"} other {disse projekter}}, kan det ikke fortrydes.} other {Du vil ikke kunne få adgang til {count, plural, =1 {dette} other {disse}} igen uden en ny invitation{count, plural, =1 {.} other {:}}}}\",\"dialog.deleteFailed.title\":\"Det er ikke muligt at slette alle elementer\",\"dialog.deleteWarning.description\":\"{type, select, spaces {Denne handling vil slette indholdet for alle medlemmer af disse projekter:} other {Denne handling vil slette følgende for alle medlemmer af dette projekt:}}\",\"dialog.deleteWarning.title\":\"{type, select, space {Slet {count} {count, plural, =1 {projekt} other {projekter}}} other {Slet {count} {count, plural, =1 {element} other {elementer}}}}\",\"dialog.deleteFailed.description.unauthorized\":\"Det er ikke muligt at slette, fordi du er blevet fjernet fra projektet:\",\"dialog.deleteFailed.description.alreadyDeleted\":\"Det er ikke muligt at slette, fordi en anden allerede har slettet dette element:\",\"dialog.deleteFailed.description.unknown\":\"Det er ikke muligt at slette, fordi noget gik galt:\",\"dialog.cantCopyAllItems\":\"Det er ikke muligt at kopiere alle elementer\",\"dialog.cantCopyBecauseSomethingWentWrong\":\"Det er ikke muligt at kopiere, fordi noget gik galt:\",\"dialog.cantCopyBecauseYouWereSignedOut\":\"Det er ikke muligt at kopiere, fordi du blev logget ud:\",\"dialog.cantCopyBecauseYouWereRemoved\":\"Det er ikke muligt at kopiere, fordi du er blevet fjernet fra dette projekt:\",\"dialog.cantCopyBecauseItemWasDeleted\":\"Det er ikke muligt at kopiere, fordi en anden har slettet dette element:\",\"dialog.cantCopyBecauseItemExists\":\"Det er ikke muligt at kopiere, fordi dette allerede eksisterer, hvor du har forsøgt at kopiere:\",\"dialog.cantMoveAllItems\":\"Det er ikke muligt at flytte alle elementer\",\"dialog.cantMoveBecauseSomethingWentWrong\":\"Det er ikke muligt at flytte, fordi noget gik galt:\",\"dialog.cantMoveBecauseYouWereSignedOut\":\"Det er ikke muligt at flytte, fordi du blev logget ud:\",\"dialog.cantMoveBecauseYouWereRemoved\":\"Det er ikke muligt at flytte, fordi du er blevet fjernet fra dette projekt:\",\"dialog.cantMoveBecauseItemWasDeleted\":\"Det er ikke muligt at flytte, fordi en anden har slettet dette element:\",\"dialog.cantMoveBecauseItemExists\":\"Det er ikke muligt at flytte, fordi dette allerede eksisterer, hvor du har forsøgt at flytte:\",\"dialog.createFolder.error\":\"Serverfejl, mappen kunne ikke gemmes\",\"dialog.createFolder.nameConflict\":\"Du har allerede en mappe med dette navn.\",\"dialog.createFolder.placeholder\":\"Mappenavn\",\"dialog.createFolder.title\":\"Opret mappe\",\"dialog.createFolder.success\":\"Mappen blev oprettet\",\"dialog.createWeblink.error\":\"Ikke-understøttet URL\",\"dialog.createWeblink.tooManyRequests\":\"Uventet netværksfejl. Prøv igen.\",\"dialog.createWeblink.success\":\"1 element blev tilføjet\",\"dialog.createWeblink.nameConflict\":\"Denne titel findes allerede\",\"dialog.createWeblink.name.placeholder\":\"Angiv et navn til dette link\",\"dialog.createWeblink.link.placeholder\":\"https://\",\"dialog.createWeblink.name\":\"Brugerdefineret titel\",\"dialog.createWeblink.link\":\"Link\",\"dialog.createWeblink.title\":\"Opret et weblink\",\"app.type.webLink\":\"WEBLINK\",\"dialog.createCanvas.error\":\"Det er ikke muligt at oprette et lærred\",\"dialog.move.title\":\"Flyt til projektet {projectName}\",\"dialog.move.detail\":\"Hvis dette element flyttes, vil hvem, der kan få adgang til det, blive ændret.\",\"moveToTeam.confirm.title\":\"Flyt til {name}-arbejdsrummet\",\"moveToTeam.confirm.message\":\"Hvis du flytter dine projekter hertil, ændres, hvem der kan få adgang til dem. Dine projekter vil være tilgængelige for alle, der har adgang til dit arbejdsrum.\",\"moveToTeam.disabled.differentOrg.tooltip.message\":\"Du kan ikke flytte projekter til et arbejdsrum i en anden organisation.\",\"moveToSpace.disabled.differentOrg.tooltip.message\":\"Du kan ikke flytte elementer til et projekt i en anden organisation.\",\"moveToTeam.success\":\"Du har flyttet {count, plural, =1 {# projekt} other {# projekter}} til {name}-arbejdsrummet\",\"confirmationDialog.dontShowAgain\":\"Vis ikke igen\",\"dialog.open.title\":\"Åbn på web\",\"dialog.open.detail\":\"Du kan ikke åbne denne fil i {appName}, men du kan få adgang til den i en browser.\",\"dialog.renameTeam.title\":\"Omdøb arbejdsrum\",\"dialog.renameTeam.placeholder\":\"Angiv et navn på dette arbejdsrum\",\"dialog.renameTeam.error\":\"Beklager, men noget gik galt.\",\"dialog.renameTeam.nameConflict\":\"Dette navn findes allerede\",\"dialog.archiveTeam.title\":\"Vil du slette dette arbejdsrum?\",\"dialog.archiveTeam.detail\":\"Du kan ikke fortryde dette, hvis du fjerner dig selv. Kontakt en administrator, hvis du ønsker at blive en del af dette arbejdsrum igen.\",\"dialog.saveToCloud.title\":\"Filen/filerne blev gemt i Creative Cloud\",\"dialog.saveToCloud.detail\":\"Dit cloud-dokument tilbyder nu versionshistorik, muligheden for at invitere og redigere sammen, øjeblikkelig adgang på andre enheder med mere. Du kan finde det her og i dine Creative Cloud-apps.\",\"input.invalidCharInput\":\"Navnet må ikke indeholde følgende tegn: \\\\\\\\ / * ? \\\" | :\",\"input.invalidEmptyInput\":\"{names, select, true {Navne} other {Titler}} må ikke være tom\",\"input.nameTooLong\":\"{names, select, true {Navne} other {Titler}} må ikke indeholde mere end {maxLength} tegn\",\"input.nameEndsWithDot\":\"{names, select, true {Navne} other {Titler}} må ikke slutte med et punktum\",\"input.weblink.nameRestricted\":\"Weblinks kan ikke have følgende titler: \\\"con\\\", \\\"prn\\\", \\\"aux\\\", \\\"nul\\\", \\\"com#\\\", \\\"lpt#\\\"\",\"input.nameRestricted\":\"Aktiver kan ikke have følgende navne: con/prn/aux/nul/com#/lpt#\",\"input.weblink.invalidCharInput\":\"Titler må ikke kun indeholde mellemrum eller indeholde følgende tegn: \\\\\\\\ / * ? \\\" | : < > \",\"input.name.invalidCharInput\":\"Navne må ikke kun indeholde mellemrum eller indeholde følgende tegn: \\\\\\\\ / * ? \\\" | : < > \",\"cdpFooter.orphanedArtifactsWarning\":\"Udgivne links, der er tilknyttet elementer, du flytter, vil forblive i det oprindelige projekt\",\"cdpFooter.libraryPrivacyWarning\":\"Hvis du har tilladelse til at dele et bibliotek, som du tilføjer, igen, vil medlemmer af projektet kunne se det\",\"toast.beforeOp.error.documentIsOpen\":\"Luk {count, plural, =1 {dokumentet} other {dokumenterne}} for at udføre denne handling.\",\"app.type.designSpecs\":\"DESIGNSPEC\",\"app.type.prototype\":\"PROTOTYPE\",\"app.type.publishedLink\":\"UDGIVET LINK\",\"popover.header\":\"Samarbejd om et projekt med andre, og del dit arbejde for at få feedback.\",\"popover.linkout\":\"Få mere at vide\",\"team.libraries.filter.all\":\"Alle\",\"team.libraries.filter.addedToYourLibraries\":\"Føjet til dine biblioteker\",\"team.libraries.filter.notAdded\":\"Ikke tilføjet\",\"team.spaces.filter.all\":\"Alt\",\"team.spaces.filter.favorited\":\"Favorit\",\"team.filter.empty.heading\":\"Der er ingen projekter, der matcher det valgte filter\",\"team.filter.empty.description1\":\"Vi kunne ikke finde nogen resultater for \",\"team.filter.empty.description2\":\" på denne liste. Tjek stavningen, eller prøv at bruge andre nøgleord.\",\"team.filter.no.match.description\":\"Vi kunne ikke finde resultater på denne liste. Tjek stavningen, eller prøv at bruge andre filterkriterier.\",\"team.filter.filterText\":\"{filter}\",\"team.header.other.teams\":\"Andre arbejdsrum\",\"space.empty.heading\":\"Alt på ét sted, alle holdes ajour\",\"space.empty.description\":\"Fyld dette projekt med arbejdsfiler og tilhørende materialer. Inviter samarbejdspartnere til at være med, og tilføj også det, de arbejder på.\",\"space.empty.canvasHeading\":\"CREATIVE CLOUD CANVAS\",\"space.empty.actionsHeading\":\"FØJ INDHOLD TIL DIT PROJEKT\",\"space.empty.createCanvas\":\"Nyt lærred\",\"space.empty.upload\":\"Tilføj filer\",\"space.empty.createFolder\":\"Ny mappe\",\"space.empty.createWeblink\":\"Weblinks\",\"space.empty.addResource\":\"Bibliotek\",\"folder.empty.heading\":\"Denne mappe er tom.\",\"folder.empty.description\":\"Begynd at tilføje filer for at udfylde den.\",\"folder.discard.heading\":\"Denne mappe er blevet slettet.\",\"folder.discard.description\":\"Kontakt din administrator, hvis du mener, at dette er en fejl, eller gennemse andet indhold.\",\"folder.error.description\":\"Der opstod et problem ved indlæsning af indhold fra denne mappe.\",\"space.empty.section.createACanvas\":\"Opret et lærred\",\"tooltip.opensInBrowser\":\"Åbner i browser\",\"space.empty.workingFiles\":\"Fortsæt med at tilføje til dette projekt\",\"space.empty.canvasPopoverTitle\":\"Prøv Creative Cloud Canvas (beta)\",\"space.empty.canvasPopoverContent\":\"Brug lærreder til at layoute, visualisere og gennemgå kreativt arbejde.\",\"space.error.heading\":\"Projektet kan ikke indlæses\",\"space.error.description\":\"Der opstod et problem ved indlæsning af indhold fra dette projekt.\",\"createTeamWizard.createTeam.sidebarHeading\":\"Opret et arbejdsrum\",\"createTeamWizard.createTeam.sidebarCopy\":\"Opret et arbejdsrum, så alle kan holde sig opdateret og organiseret.\",\"createTeamWizard.createTeam.sidebarCopy.adminconsole\":\"Konfigurer et sted, hvor dit team kan samarbejde og dele filer.\",\"createTeamWizard.createTeam.sidebarLink\":\"Få mere at vide\",\"createTeamWizard.createTeam.contentHeading\":\"Nyt arbejdsrum\",\"createTeamWizard.createTeam.loading\":\"Arbejdsrummet \\\"{name}\\\" oprettes\",\"createTeamWizard.inviteMembers.sidebarHeading\":\"Inviter medlemmer til arbejdsrummet \\\"{name}\\\"\",\"createTeamWizard.inviteMembers.sidebarCopy\":\"Begynd at skrive et navn eller en e-mailadresse for at invitere medlemmer nu, eller spring dette trin over, og inviter dem senere.\",\"createTeamWizard.inviteMembers.loading\":\"Inviterer medlemmer til arbejdsrummet \\\"{name}\\\"\",\"createTeamWizard.inviteMembers.contentHeading\":\"Inviter medlemmer\",\"createTeamWizard.inviteMembers.successToast\":\"Der er føjet medlemmer til det nye arbejdsrum\",\"createTeamWizard.progress\":\"Trin {current} af {total}\",\"createTeamWizard.skipStep\":\"Ignorer\",\"teamDialog.createTeam.label\":\"Opret et arbejdsrum\",\"teamDialog.createTeam.infoBox.description\":\"Det arbejdsrum, du opretter, er kun for inviterede personer, og alle, der tilføjes, har som standard redigeringsadgang.\",\"teamDialog.editTeam.label\":\"Rediger arbejdsrum\",\"teamDialog.nameSection.placeholder\":\"Giv dit nye arbejdsrum et navn\",\"teamDialog.nameSection.label\":\"Navn på arbejdsrum\",\"teamDialog.permissionsSection.label\":\"Hvem kan redigere dette arbejdsrum?\",\"teamDialog.permissionsSection.option.onlyInvited\":\"Kun inviterede\",\"teamDialog.descriptionSection.label\":\"Beskrivelse af arbejdsrum (valgfrit)\",\"teamDialog.descriptionSection.placeholder\":\"Tilføj et par ord om arbejdsrummet\",\"teamsSidebar.noTeams\":\"Ingen arbejdsrum\",\"teamsSidebar.newTeamButton\":\"Opret et arbejdsrum\",\"teamsSidebar.adminTour.title\":\"Nyhed! Opret arbejdsrum\",\"teamsSidebar.adminTour.content\":\"Nu kan administratorer oprette arbejdsrum i Creative Cloud på web, hvilket gør det nemmere at organisere delt arbejde.\",\"teamsSidebarTeam.newSpaceButton\":\"Nyt projekt\",\"teamsSidebarTeam.header.newBadge\":\"NY\",\"teamsSidebarTeam.header.otherTeams\":\"Fra andre arbejdsrum\",\"teamsSidebarTeam.header.teams\":\"ARBEJDSRUM\",\"teamsSidebarTeam.header.previewLabel\":\"(prøveversion)\",\"teamsSidebarTeam.header.previewCopy\":\"Arbejdsrum og projekter er tilgængelige i en privat beta.\",\"teamsSidebarTeam.header.previewLearnMoreText\":\"Få mere at vide\",\"teamsSidebarTeam.message.loading\":\"Indlæser...\",\"teamsSidebarTeam.message.noSpaces\":\"Du har ingen arbejdsrum eller projekter.\",\"teamsSidebarTeam.message.offline\":\"Forbindelsen er afbrudt. Opret forbindelse igen for at se dine arbejdsrum og projekter.\",\"teamsSidebarTeam.message.error\":\"Der opstod et problem ved indlæsning af dine arbejdsrum og projekter.\",\"teams1up.error.description\":\"Der opstod et problem ved indlæsning af dine projekter.\",\"teams1up.error.heading\":\"Projekterne kunne ikke indlæses\",\"otherTeams.emptyMessage.header\":\"Arbejdsrum-siden kan ikke vises\",\"otherTeams.emptyMessage.description1\":\"Du blev fjernet eller forlod det sidste projekt ved hjælp af \",\"otherTeams.emptyMessage.description2\":\"Kontakt din administrator, hvis du mener, at dette er en fejl.\",\"spaceTour.step0.title\":\"Dine projekter er her\",\"spaceTour.step0.content\":\"Projekter gør det nemmere for teams at samarbejde og indsamle, organisere og dele filer og ressourcer.\",\"spaceTour.step1.title\":\"Tilføj alt, hvad du har brug for til et projekt\",\"spaceTour.step1.content\":\"Saml arbejdsfiler, referencebilleder, ressourcer med mere under ét tag.\",\"spaceTour.step2.title\":\"Angiv (og glem) tilladelser\",\"spaceTour.step2.content\":\"Tildel den rigtige adgang til samarbejdspartnere, når du inviterer dem, for at spare tid og undgå besvær. Send pakker med kun visning til interessenter til gennemgang og feedback.\",\"error.cantCreateSpace\":\"Arbejdsrum-lagerpladsen er fyldt op\",\"error.exceedQuota.create.detail.description1\":\"Du kan ikke oprette noget nyt i øjeblikket. Vælg Gå til slettede for at frigøre lagerplads.\",\"error.exceedQuota.description2\":\" for at frigøre lagerplads.\",\"error.exceedQuota.add.detail.description1\":\"Du kan ikke tilføje noget nyt lige nu. Vælg \",\"error.move.generic\":\"Det er ikke muligt at flytte, fordi noget gik galt\",\"error.move.signedOut\":\"Det er ikke muligt at flytte, fordi du blev logget ud\",\"error.move.permissionRevoked\":\"Det er ikke muligt at flytte, fordi du er blevet fjernet fra dette projekt\",\"error.move.deleted\":\"Det er ikke muligt at flytte, fordi en anden har slettet dette element\",\"error.move.duplicate\":\"Det er ikke muligt at flytte, fordi dette allerede eksisterer, hvor du har forsøgt at flytte\",\"error.copy.generic\":\"Det er ikke muligt at kopiere, fordi noget gik galt\",\"error.copy.signedOut\":\"Det er ikke muligt at kopiere, fordi du blev logget ud\",\"error.copy.permissionRevoked\":\"Det er ikke muligt at kopiere, fordi du er blevet fjernet fra dette projekt\",\"error.copy.deleted\":\"Det er ikke muligt at kopiere, fordi en anden har slettet dette element\",\"error.copy.duplicate\":\"Det er ikke muligt at kopiere, fordi dette allerede eksisterer, hvor du har forsøgt at kopiere\",\"checkbox.select\":\"Vælg\",\"listItem.fileSize\":\"Filstørrelse\",\"facepile.additionalMembers\":\"Yderligere medlemmer +{count}\",\"facepile.memberName\":\"{name}, medlem\",\"coachmark.information\":\"oplysninger\",\"toolbar.tools\":\"værktøjer\",\"griditem.error.message\":\"Det er ikke muligt at hente\",\"griditem.error.button\":\"Prøv igen\",\"ats.move.extendedNotification\":\"Du modtager en notifikation, når flytningen er fuldført.\",\"file.deleted.error.heading\":\"Det er ikke muligt at {operation} filen\",\"file.deleted.error.description\":\"Du kan ikke {operation} denne fil, fordi den er blevet slettet. Gendan fra slettet, og prøv igen, eller vælg en anden placering.\",\"file.deleted.rename.error.description\":\"Du kan ikke omdøbe denne fil, fordi den er blevet slettet. Vælg Gå til slettet for at gendanne filen.\"}");

/***/ }),

/***/ "c3ME":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var isValue = __webpack_require__("YsTz");

var keys = Object.keys;

module.exports = function (object) {
  return keys(isValue(object) ? Object(object) : object);
};

/***/ }),

/***/ "c4pS":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("path", {
  d: "M24.025 28.479v-2.694a1.958 1.958 0 0 1 .438-1.2 16.805 16.805 0 0 0 2.98-9.465c0-6.72-3.283-9.89-8.242-9.89s-8.336 3.317-8.336 9.89a16.925 16.925 0 0 0 3.126 9.469 1.948 1.948 0 0 1 .434 1.2v2.683a1.947 1.947 0 0 1-1.67 1.887C2.071 31.494 0 38.7 0 41.6V44h38v-2.4c0-2.782-1.59-10.024-12.319-11.235a1.949 1.949 0 0 1-1.656-1.886z"
}), React.createElement("path", {
  d: "M36.559 27.851a1.755 1.755 0 0 1-1.5-1.7v-2.422a1.762 1.762 0 0 1 .394-1.083 15.125 15.125 0 0 0 2.682-8.519c0-6.048-2.954-8.9-7.418-8.9a8.337 8.337 0 0 0-2.289.338c1.729 2.17 2.851 5.273 2.851 9.552a20.732 20.732 0 0 1-3.417 11.32v.369C37.706 28.6 41.816 35.42 42 40h6v-2.4c0-2.5-1.787-8.664-11.441-9.749z"
}));

/***/ }),

/***/ "c4wt":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("path", {
  d: "M9.275 16.1H2a1.994 1.994 0 0 0-2 1.987v11.921A1.994 1.994 0 0 0 2 32h7.275a2 2 0 0 1 1.279.46l9.8 9.245A1 1 0 0 0 22 40.938V7.155a1 1 0 0 0-1.642-.762l-9.8 9.245a2.012 2.012 0 0 1-1.283.462zM28.05 24a5.936 5.936 0 0 1-1.142 3.5 1.959 1.959 0 0 0-.382 1.142 1.684 1.684 0 0 0 .407 1.11l.186.217a1.845 1.845 0 0 0 1.24.635 1.677 1.677 0 0 0 1.493-.635 9.725 9.725 0 0 0 0-11.944 1.665 1.665 0 0 0-1.35-.641 1.847 1.847 0 0 0-1.383.642l-.186.217a1.68 1.68 0 0 0-.405 1.038 1.949 1.949 0 0 0 .381 1.214A5.936 5.936 0 0 1 28.05 24z"
}), React.createElement("path", {
  d: "M36.05 24a13.977 13.977 0 0 1-3.774 9.567 1.761 1.761 0 0 0-.474 1.177 1.791 1.791 0 0 0 .433 1.2l.16.187a1.8 1.8 0 0 0 1.192.621 1.823 1.823 0 0 0 1.519-.574 17.851 17.851 0 0 0 0-24.348 1.822 1.822 0 0 0-1.368-.582 1.8 1.8 0 0 0-1.343.63l-.16.187a1.791 1.791 0 0 0-.433 1.2 1.761 1.761 0 0 0 .474 1.177A13.977 13.977 0 0 1 36.05 24z"
}));

/***/ }),

/***/ "c6RX":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Deferred; });
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
class Deferred {
    constructor() {
        this._promise = new Promise((resolve, reject) => {
            this._resolve = resolve;
            this._reject = reject;
        });
    }
    resolve(val) {
        this._resolve(val);
    }
    reject(e) {
        this._reject(e);
    }
    get promise() {
        return this._promise;
    }
}


/***/ }),

/***/ "c6wG":
/***/ (function(module, exports, __webpack_require__) {

var baseIsTypedArray = __webpack_require__("dD9F"),
    baseUnary = __webpack_require__("sEf8"),
    nodeUtil = __webpack_require__("mdPL");
/* Node.js helper references. */


var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;
/**
 * Checks if `value` is classified as a typed array.
 *
 * @static
 * @memberOf _
 * @since 3.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.
 * @example
 *
 * _.isTypedArray(new Uint8Array);
 * // => true
 *
 * _.isTypedArray([]);
 * // => false
 */

var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;
module.exports = isTypedArray;

/***/ }),

/***/ "c7k8":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXPORTS
__webpack_require__.d(__webpack_exports__, "a", function() { return /* reexport */ ColumnSizer_ColumnSizer; });
__webpack_require__.d(__webpack_exports__, "f", function() { return /* reexport */ accessibilityOverscanIndicesGetter_defaultOverscanIndicesGetter; });
__webpack_require__.d(__webpack_exports__, "b", function() { return /* reexport */ es_Grid_Grid; });
__webpack_require__.d(__webpack_exports__, "c", function() { return /* reexport */ InfiniteLoader_InfiniteLoader; });
__webpack_require__.d(__webpack_exports__, "d", function() { return /* reexport */ List_List; });
__webpack_require__.d(__webpack_exports__, "e", function() { return /* reexport */ WindowScroller_WindowScroller; });

// UNUSED EXPORTS: ArrowKeyStepper, AutoSizer, CellMeasurer, CellMeasurerCache, Collection, defaultCellRangeRenderer, defaultOverscanIndicesGetter, createMasonryCellPositioner, Masonry, MultiGrid, ScrollSync, createTableMultiSort, defaultTableCellDataGetter, defaultTableCellRenderer, defaultTableHeaderRenderer, defaultTableHeaderRowRenderer, defaultTableRowRenderer, Table, Column, SortDirection, SortIndicator

// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/classCallCheck.js
var classCallCheck = __webpack_require__("lwsE");
var classCallCheck_default = /*#__PURE__*/__webpack_require__.n(classCallCheck);

// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/createClass.js
var createClass = __webpack_require__("W8MJ");
var createClass_default = /*#__PURE__*/__webpack_require__.n(createClass);

// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js
var possibleConstructorReturn = __webpack_require__("a1gu");
var possibleConstructorReturn_default = /*#__PURE__*/__webpack_require__.n(possibleConstructorReturn);

// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/getPrototypeOf.js
var getPrototypeOf = __webpack_require__("Nsbk");
var getPrototypeOf_default = /*#__PURE__*/__webpack_require__.n(getPrototypeOf);

// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/assertThisInitialized.js
var assertThisInitialized = __webpack_require__("PJYZ");
var assertThisInitialized_default = /*#__PURE__*/__webpack_require__.n(assertThisInitialized);

// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/inherits.js
var inherits = __webpack_require__("7W2i");
var inherits_default = /*#__PURE__*/__webpack_require__.n(inherits);

// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/defineProperty.js
var defineProperty = __webpack_require__("lSNA");
var defineProperty_default = /*#__PURE__*/__webpack_require__.n(defineProperty);

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__("q1tI");

// EXTERNAL MODULE: ./node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js
var react_lifecycles_compat_es = __webpack_require__("VCL8");

// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/extends.js
var helpers_extends = __webpack_require__("pVnL");
var extends_default = /*#__PURE__*/__webpack_require__.n(helpers_extends);

// EXTERNAL MODULE: ./node_modules/clsx/dist/clsx.m.js
var clsx_m = __webpack_require__("iuhU");

// CONCATENATED MODULE: ./node_modules/react-virtualized/dist/es/Grid/utils/calculateSizeAndPositionDataAndUpdateScrollOffset.js
/**
 * Helper method that determines when to recalculate row or column metadata.
 */
function calculateSizeAndPositionDataAndUpdateScrollOffset(_ref) {
  var cellCount = _ref.cellCount,
      cellSize = _ref.cellSize,
      computeMetadataCallback = _ref.computeMetadataCallback,
      computeMetadataCallbackProps = _ref.computeMetadataCallbackProps,
      nextCellsCount = _ref.nextCellsCount,
      nextCellSize = _ref.nextCellSize,
      nextScrollToIndex = _ref.nextScrollToIndex,
      scrollToIndex = _ref.scrollToIndex,
      updateScrollOffsetForScrollToIndex = _ref.updateScrollOffsetForScrollToIndex; // Don't compare cell sizes if they are functions because inline functions would cause infinite loops.
  // In that event users should use the manual recompute methods to inform of changes.

  if (cellCount !== nextCellsCount || (typeof cellSize === 'number' || typeof nextCellSize === 'number') && cellSize !== nextCellSize) {
    computeMetadataCallback(computeMetadataCallbackProps); // Updated cell metadata may have hidden the previous scrolled-to item.
    // In this case we should also update the scrollTop to ensure it stays visible.

    if (scrollToIndex >= 0 && scrollToIndex === nextScrollToIndex) {
      updateScrollOffsetForScrollToIndex();
    }
  }
}
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/objectWithoutProperties.js
var objectWithoutProperties = __webpack_require__("QILm");
var objectWithoutProperties_default = /*#__PURE__*/__webpack_require__.n(objectWithoutProperties);

// EXTERNAL MODULE: ./node_modules/prop-types/index.js
var prop_types = __webpack_require__("17x9");

// CONCATENATED MODULE: ./node_modules/react-virtualized/dist/es/Grid/types.js


var bpfrpt_proptype_CellPosition =  true ? null : undefined;
var bpfrpt_proptype_CellRendererParams =  true ? null : undefined;
var bpfrpt_proptype_CellRenderer =  true ? null : undefined;
var bpfrpt_proptype_CellCache =  true ? null : undefined;
var bpfrpt_proptype_StyleCache =  true ? null : undefined;
var bpfrpt_proptype_CellRangeRendererParams =  true ? null : undefined;
var bpfrpt_proptype_CellRangeRenderer =  true ? null : undefined;
var bpfrpt_proptype_CellSizeGetter =  true ? null : undefined;
var bpfrpt_proptype_CellSize =  true ? null : undefined;
var bpfrpt_proptype_NoContentRenderer =  true ? null : undefined;
var bpfrpt_proptype_Scroll =  true ? null : undefined;
var bpfrpt_proptype_ScrollbarPresenceChange =  true ? null : undefined;
var bpfrpt_proptype_RenderedSection =  true ? null : undefined;
var bpfrpt_proptype_OverscanIndicesGetterParams =  true ? null : undefined;
var bpfrpt_proptype_OverscanIndices =  true ? null : undefined;
var bpfrpt_proptype_OverscanIndicesGetter =  true ? null : undefined;
var bpfrpt_proptype_Alignment =  true ? null : undefined;
var bpfrpt_proptype_VisibleCellRange =  true ? null : undefined;



















// CONCATENATED MODULE: ./node_modules/react-virtualized/dist/es/Grid/utils/CellSizeAndPositionManager.js



/**
 * Just-in-time calculates and caches size and position information for a collection of cells.
 */

var CellSizeAndPositionManager_CellSizeAndPositionManager = /*#__PURE__*/function () {
  // Cache of size and position data for cells, mapped by cell index.
  // Note that invalid values may exist in this map so only rely on cells up to this._lastMeasuredIndex
  // Measurements for cells up to this index can be trusted; cells afterward should be estimated.
  // Used in deferred mode to track which cells have been queued for measurement.
  function CellSizeAndPositionManager(_ref) {
    var cellCount = _ref.cellCount,
        cellSizeGetter = _ref.cellSizeGetter,
        estimatedCellSize = _ref.estimatedCellSize;

    classCallCheck_default()(this, CellSizeAndPositionManager);

    defineProperty_default()(this, "_cellSizeAndPositionData", {});

    defineProperty_default()(this, "_lastMeasuredIndex", -1);

    defineProperty_default()(this, "_lastBatchedIndex", -1);

    defineProperty_default()(this, "_cellCount", void 0);

    defineProperty_default()(this, "_cellSizeGetter", void 0);

    defineProperty_default()(this, "_estimatedCellSize", void 0);

    this._cellSizeGetter = cellSizeGetter;
    this._cellCount = cellCount;
    this._estimatedCellSize = estimatedCellSize;
  }

  createClass_default()(CellSizeAndPositionManager, [{
    key: "areOffsetsAdjusted",
    value: function areOffsetsAdjusted() {
      return false;
    }
  }, {
    key: "configure",
    value: function configure(_ref2) {
      var cellCount = _ref2.cellCount,
          estimatedCellSize = _ref2.estimatedCellSize,
          cellSizeGetter = _ref2.cellSizeGetter;
      this._cellCount = cellCount;
      this._estimatedCellSize = estimatedCellSize;
      this._cellSizeGetter = cellSizeGetter;
    }
  }, {
    key: "getCellCount",
    value: function getCellCount() {
      return this._cellCount;
    }
  }, {
    key: "getEstimatedCellSize",
    value: function getEstimatedCellSize() {
      return this._estimatedCellSize;
    }
  }, {
    key: "getLastMeasuredIndex",
    value: function getLastMeasuredIndex() {
      return this._lastMeasuredIndex;
    }
  }, {
    key: "getOffsetAdjustment",
    value: function getOffsetAdjustment() {
      return 0;
    }
    /**
     * This method returns the size and position for the cell at the specified index.
     * It just-in-time calculates (or used cached values) for cells leading up to the index.
     */

  }, {
    key: "getSizeAndPositionOfCell",
    value: function getSizeAndPositionOfCell(index) {
      if (index < 0 || index >= this._cellCount) {
        throw Error("Requested index ".concat(index, " is outside of range 0..").concat(this._cellCount));
      }

      if (index > this._lastMeasuredIndex) {
        var lastMeasuredCellSizeAndPosition = this.getSizeAndPositionOfLastMeasuredCell();
        var offset = lastMeasuredCellSizeAndPosition.offset + lastMeasuredCellSizeAndPosition.size;

        for (var i = this._lastMeasuredIndex + 1; i <= index; i++) {
          var size = this._cellSizeGetter({
            index: i
          }); // undefined or NaN probably means a logic error in the size getter.
          // null means we're using CellMeasurer and haven't yet measured a given index.


          if (size === undefined || isNaN(size)) {
            throw Error("Invalid size returned for cell ".concat(i, " of value ").concat(size));
          } else if (size === null) {
            this._cellSizeAndPositionData[i] = {
              offset: offset,
              size: 0
            };
            this._lastBatchedIndex = index;
          } else {
            this._cellSizeAndPositionData[i] = {
              offset: offset,
              size: size
            };
            offset += size;
            this._lastMeasuredIndex = index;
          }
        }
      }

      return this._cellSizeAndPositionData[index];
    }
  }, {
    key: "getSizeAndPositionOfLastMeasuredCell",
    value: function getSizeAndPositionOfLastMeasuredCell() {
      return this._lastMeasuredIndex >= 0 ? this._cellSizeAndPositionData[this._lastMeasuredIndex] : {
        offset: 0,
        size: 0
      };
    }
    /**
     * Total size of all cells being measured.
     * This value will be completely estimated initially.
     * As cells are measured, the estimate will be updated.
     */

  }, {
    key: "getTotalSize",
    value: function getTotalSize() {
      var lastMeasuredCellSizeAndPosition = this.getSizeAndPositionOfLastMeasuredCell();
      var totalSizeOfMeasuredCells = lastMeasuredCellSizeAndPosition.offset + lastMeasuredCellSizeAndPosition.size;
      var numUnmeasuredCells = this._cellCount - this._lastMeasuredIndex - 1;
      var totalSizeOfUnmeasuredCells = numUnmeasuredCells * this._estimatedCellSize;
      return totalSizeOfMeasuredCells + totalSizeOfUnmeasuredCells;
    }
    /**
     * Determines a new offset that ensures a certain cell is visible, given the current offset.
     * If the cell is already visible then the current offset will be returned.
     * If the current offset is too great or small, it will be adjusted just enough to ensure the specified index is visible.
     *
     * @param align Desired alignment within container; one of "auto" (default), "start", or "end"
     * @param containerSize Size (width or height) of the container viewport
     * @param currentOffset Container's current (x or y) offset
     * @param totalSize Total size (width or height) of all cells
     * @return Offset to use to ensure the specified cell is visible
     */

  }, {
    key: "getUpdatedOffsetForIndex",
    value: function getUpdatedOffsetForIndex(_ref3) {
      var _ref3$align = _ref3.align,
          align = _ref3$align === void 0 ? 'auto' : _ref3$align,
          containerSize = _ref3.containerSize,
          currentOffset = _ref3.currentOffset,
          targetIndex = _ref3.targetIndex;

      if (containerSize <= 0) {
        return 0;
      }

      var datum = this.getSizeAndPositionOfCell(targetIndex);
      var maxOffset = datum.offset;
      var minOffset = maxOffset - containerSize + datum.size;
      var idealOffset;

      switch (align) {
        case 'start':
          idealOffset = maxOffset;
          break;

        case 'end':
          idealOffset = minOffset;
          break;

        case 'center':
          idealOffset = maxOffset - (containerSize - datum.size) / 2;
          break;

        default:
          idealOffset = Math.max(minOffset, Math.min(maxOffset, currentOffset));
          break;
      }

      var totalSize = this.getTotalSize();
      return Math.max(0, Math.min(totalSize - containerSize, idealOffset));
    }
  }, {
    key: "getVisibleCellRange",
    value: function getVisibleCellRange(params) {
      var containerSize = params.containerSize,
          offset = params.offset;
      var totalSize = this.getTotalSize();

      if (totalSize === 0) {
        return {};
      }

      var maxOffset = offset + containerSize;

      var start = this._findNearestCell(offset);

      var datum = this.getSizeAndPositionOfCell(start);
      offset = datum.offset + datum.size;
      var stop = start;

      while (offset < maxOffset && stop < this._cellCount - 1) {
        stop++;
        offset += this.getSizeAndPositionOfCell(stop).size;
      }

      return {
        start: start,
        stop: stop
      };
    }
    /**
     * Clear all cached values for cells after the specified index.
     * This method should be called for any cell that has changed its size.
     * It will not immediately perform any calculations; they'll be performed the next time getSizeAndPositionOfCell() is called.
     */

  }, {
    key: "resetCell",
    value: function resetCell(index) {
      this._lastMeasuredIndex = Math.min(this._lastMeasuredIndex, index - 1);
    }
  }, {
    key: "_binarySearch",
    value: function _binarySearch(high, low, offset) {
      while (low <= high) {
        var middle = low + Math.floor((high - low) / 2);
        var currentOffset = this.getSizeAndPositionOfCell(middle).offset;

        if (currentOffset === offset) {
          return middle;
        } else if (currentOffset < offset) {
          low = middle + 1;
        } else if (currentOffset > offset) {
          high = middle - 1;
        }
      }

      if (low > 0) {
        return low - 1;
      } else {
        return 0;
      }
    }
  }, {
    key: "_exponentialSearch",
    value: function _exponentialSearch(index, offset) {
      var interval = 1;

      while (index < this._cellCount && this.getSizeAndPositionOfCell(index).offset < offset) {
        index += interval;
        interval *= 2;
      }

      return this._binarySearch(Math.min(index, this._cellCount - 1), Math.floor(index / 2), offset);
    }
    /**
     * Searches for the cell (index) nearest the specified offset.
     *
     * If no exact match is found the next lowest cell index will be returned.
     * This allows partially visible cells (with offsets just before/above the fold) to be visible.
     */

  }, {
    key: "_findNearestCell",
    value: function _findNearestCell(offset) {
      if (isNaN(offset)) {
        throw Error("Invalid offset ".concat(offset, " specified"));
      } // Our search algorithms find the nearest match at or below the specified offset.
      // So make sure the offset is at least 0 or no match will be found.


      offset = Math.max(0, offset);
      var lastMeasuredCellSizeAndPosition = this.getSizeAndPositionOfLastMeasuredCell();
      var lastMeasuredIndex = Math.max(0, this._lastMeasuredIndex);

      if (lastMeasuredCellSizeAndPosition.offset >= offset) {
        // If we've already measured cells within this range just use a binary search as it's faster.
        return this._binarySearch(lastMeasuredIndex, 0, offset);
      } else {
        // If we haven't yet measured this high, fallback to an exponential search with an inner binary search.
        // The exponential search avoids pre-computing sizes for the full set of cells as a binary search would.
        // The overall complexity for this approach is O(log n).
        return this._exponentialSearch(lastMeasuredIndex, offset);
      }
    }
  }]);

  return CellSizeAndPositionManager;
}();





// CONCATENATED MODULE: ./node_modules/react-virtualized/dist/es/Grid/utils/maxElementSize.js
var DEFAULT_MAX_ELEMENT_SIZE = 1500000;
var CHROME_MAX_ELEMENT_SIZE = 1.67771e7;

var isBrowser = function isBrowser() {
  return typeof window !== 'undefined';
};

var isChrome = function isChrome() {
  return !!window.chrome;
};

var getMaxElementSize = function getMaxElementSize() {
  if (isBrowser()) {
    if (isChrome()) {
      return CHROME_MAX_ELEMENT_SIZE;
    }
  }

  return DEFAULT_MAX_ELEMENT_SIZE;
};
// CONCATENATED MODULE: ./node_modules/react-virtualized/dist/es/Grid/utils/ScalingCellSizeAndPositionManager.js






/**
 * Extends CellSizeAndPositionManager and adds scaling behavior for lists that are too large to fit within a browser's native limits.
 */

var ScalingCellSizeAndPositionManager_ScalingCellSizeAndPositionManager = /*#__PURE__*/function () {
  function ScalingCellSizeAndPositionManager(_ref) {
    var _ref$maxScrollSize = _ref.maxScrollSize,
        maxScrollSize = _ref$maxScrollSize === void 0 ? getMaxElementSize() : _ref$maxScrollSize,
        params = objectWithoutProperties_default()(_ref, ["maxScrollSize"]);

    classCallCheck_default()(this, ScalingCellSizeAndPositionManager);

    defineProperty_default()(this, "_cellSizeAndPositionManager", void 0);

    defineProperty_default()(this, "_maxScrollSize", void 0); // Favor composition over inheritance to simplify IE10 support


    this._cellSizeAndPositionManager = new CellSizeAndPositionManager_CellSizeAndPositionManager(params);
    this._maxScrollSize = maxScrollSize;
  }

  createClass_default()(ScalingCellSizeAndPositionManager, [{
    key: "areOffsetsAdjusted",
    value: function areOffsetsAdjusted() {
      return this._cellSizeAndPositionManager.getTotalSize() > this._maxScrollSize;
    }
  }, {
    key: "configure",
    value: function configure(params) {
      this._cellSizeAndPositionManager.configure(params);
    }
  }, {
    key: "getCellCount",
    value: function getCellCount() {
      return this._cellSizeAndPositionManager.getCellCount();
    }
  }, {
    key: "getEstimatedCellSize",
    value: function getEstimatedCellSize() {
      return this._cellSizeAndPositionManager.getEstimatedCellSize();
    }
  }, {
    key: "getLastMeasuredIndex",
    value: function getLastMeasuredIndex() {
      return this._cellSizeAndPositionManager.getLastMeasuredIndex();
    }
    /**
     * Number of pixels a cell at the given position (offset) should be shifted in order to fit within the scaled container.
     * The offset passed to this function is scaled (safe) as well.
     */

  }, {
    key: "getOffsetAdjustment",
    value: function getOffsetAdjustment(_ref2) {
      var containerSize = _ref2.containerSize,
          offset = _ref2.offset;

      var totalSize = this._cellSizeAndPositionManager.getTotalSize();

      var safeTotalSize = this.getTotalSize();

      var offsetPercentage = this._getOffsetPercentage({
        containerSize: containerSize,
        offset: offset,
        totalSize: safeTotalSize
      });

      return Math.round(offsetPercentage * (safeTotalSize - totalSize));
    }
  }, {
    key: "getSizeAndPositionOfCell",
    value: function getSizeAndPositionOfCell(index) {
      return this._cellSizeAndPositionManager.getSizeAndPositionOfCell(index);
    }
  }, {
    key: "getSizeAndPositionOfLastMeasuredCell",
    value: function getSizeAndPositionOfLastMeasuredCell() {
      return this._cellSizeAndPositionManager.getSizeAndPositionOfLastMeasuredCell();
    }
    /** See CellSizeAndPositionManager#getTotalSize */

  }, {
    key: "getTotalSize",
    value: function getTotalSize() {
      return Math.min(this._maxScrollSize, this._cellSizeAndPositionManager.getTotalSize());
    }
    /** See CellSizeAndPositionManager#getUpdatedOffsetForIndex */

  }, {
    key: "getUpdatedOffsetForIndex",
    value: function getUpdatedOffsetForIndex(_ref3) {
      var _ref3$align = _ref3.align,
          align = _ref3$align === void 0 ? 'auto' : _ref3$align,
          containerSize = _ref3.containerSize,
          currentOffset = _ref3.currentOffset,
          targetIndex = _ref3.targetIndex;
      currentOffset = this._safeOffsetToOffset({
        containerSize: containerSize,
        offset: currentOffset
      });

      var offset = this._cellSizeAndPositionManager.getUpdatedOffsetForIndex({
        align: align,
        containerSize: containerSize,
        currentOffset: currentOffset,
        targetIndex: targetIndex
      });

      return this._offsetToSafeOffset({
        containerSize: containerSize,
        offset: offset
      });
    }
    /** See CellSizeAndPositionManager#getVisibleCellRange */

  }, {
    key: "getVisibleCellRange",
    value: function getVisibleCellRange(_ref4) {
      var containerSize = _ref4.containerSize,
          offset = _ref4.offset;
      offset = this._safeOffsetToOffset({
        containerSize: containerSize,
        offset: offset
      });
      return this._cellSizeAndPositionManager.getVisibleCellRange({
        containerSize: containerSize,
        offset: offset
      });
    }
  }, {
    key: "resetCell",
    value: function resetCell(index) {
      this._cellSizeAndPositionManager.resetCell(index);
    }
  }, {
    key: "_getOffsetPercentage",
    value: function _getOffsetPercentage(_ref5) {
      var containerSize = _ref5.containerSize,
          offset = _ref5.offset,
          totalSize = _ref5.totalSize;
      return totalSize <= containerSize ? 0 : offset / (totalSize - containerSize);
    }
  }, {
    key: "_offsetToSafeOffset",
    value: function _offsetToSafeOffset(_ref6) {
      var containerSize = _ref6.containerSize,
          offset = _ref6.offset;

      var totalSize = this._cellSizeAndPositionManager.getTotalSize();

      var safeTotalSize = this.getTotalSize();

      if (totalSize === safeTotalSize) {
        return offset;
      } else {
        var offsetPercentage = this._getOffsetPercentage({
          containerSize: containerSize,
          offset: offset,
          totalSize: totalSize
        });

        return Math.round(offsetPercentage * (safeTotalSize - containerSize));
      }
    }
  }, {
    key: "_safeOffsetToOffset",
    value: function _safeOffsetToOffset(_ref7) {
      var containerSize = _ref7.containerSize,
          offset = _ref7.offset;

      var totalSize = this._cellSizeAndPositionManager.getTotalSize();

      var safeTotalSize = this.getTotalSize();

      if (totalSize === safeTotalSize) {
        return offset;
      } else {
        var offsetPercentage = this._getOffsetPercentage({
          containerSize: containerSize,
          offset: offset,
          totalSize: safeTotalSize
        });

        return Math.round(offsetPercentage * (totalSize - containerSize));
      }
    }
  }]);

  return ScalingCellSizeAndPositionManager;
}();





// CONCATENATED MODULE: ./node_modules/react-virtualized/dist/es/utils/createCallbackMemoizer.js
/**
 * Helper utility that updates the specified callback whenever any of the specified indices have changed.
 */
function createCallbackMemoizer() {
  var requireAllKeys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
  var cachedIndices = {};
  return function (_ref) {
    var callback = _ref.callback,
        indices = _ref.indices;
    var keys = Object.keys(indices);
    var allInitialized = !requireAllKeys || keys.every(function (key) {
      var value = indices[key];
      return Array.isArray(value) ? value.length > 0 : value >= 0;
    });
    var indexChanged = keys.length !== Object.keys(cachedIndices).length || keys.some(function (key) {
      var cachedValue = cachedIndices[key];
      var value = indices[key];
      return Array.isArray(value) ? cachedValue.join(',') !== value.join(',') : cachedValue !== value;
    });
    cachedIndices = indices;

    if (allInitialized && indexChanged) {
      callback(indices);
    }
  };
}
// CONCATENATED MODULE: ./node_modules/react-virtualized/dist/es/Grid/defaultOverscanIndicesGetter.js
var SCROLL_DIRECTION_BACKWARD = -1;
var SCROLL_DIRECTION_FORWARD = 1;
var SCROLL_DIRECTION_HORIZONTAL = 'horizontal';
var SCROLL_DIRECTION_VERTICAL = 'vertical';
/**
 * Calculates the number of cells to overscan before and after a specified range.
 * This function ensures that overscanning doesn't exceed the available cells.
 */

function defaultOverscanIndicesGetter(_ref) {
  var cellCount = _ref.cellCount,
      overscanCellsCount = _ref.overscanCellsCount,
      scrollDirection = _ref.scrollDirection,
      startIndex = _ref.startIndex,
      stopIndex = _ref.stopIndex;

  if (scrollDirection === SCROLL_DIRECTION_FORWARD) {
    return {
      overscanStartIndex: Math.max(0, startIndex),
      overscanStopIndex: Math.min(cellCount - 1, stopIndex + overscanCellsCount)
    };
  } else {
    return {
      overscanStartIndex: Math.max(0, startIndex - overscanCellsCount),
      overscanStopIndex: Math.min(cellCount - 1, stopIndex)
    };
  }
}


// CONCATENATED MODULE: ./node_modules/react-virtualized/dist/es/Grid/utils/updateScrollIndexHelper.js

/**
 * Helper function that determines when to update scroll offsets to ensure that a scroll-to-index remains visible.
 * This function also ensures that the scroll ofset isn't past the last column/row of cells.
 */

function updateScrollIndexHelper(_ref) {
  var cellSize = _ref.cellSize,
      cellSizeAndPositionManager = _ref.cellSizeAndPositionManager,
      previousCellsCount = _ref.previousCellsCount,
      previousCellSize = _ref.previousCellSize,
      previousScrollToAlignment = _ref.previousScrollToAlignment,
      previousScrollToIndex = _ref.previousScrollToIndex,
      previousSize = _ref.previousSize,
      scrollOffset = _ref.scrollOffset,
      scrollToAlignment = _ref.scrollToAlignment,
      scrollToIndex = _ref.scrollToIndex,
      size = _ref.size,
      sizeJustIncreasedFromZero = _ref.sizeJustIncreasedFromZero,
      updateScrollIndexCallback = _ref.updateScrollIndexCallback;
  var cellCount = cellSizeAndPositionManager.getCellCount();
  var hasScrollToIndex = scrollToIndex >= 0 && scrollToIndex < cellCount;
  var sizeHasChanged = size !== previousSize || sizeJustIncreasedFromZero || !previousCellSize || typeof cellSize === 'number' && cellSize !== previousCellSize; // If we have a new scroll target OR if height/row-height has changed,
  // We should ensure that the scroll target is visible.

  if (hasScrollToIndex && (sizeHasChanged || scrollToAlignment !== previousScrollToAlignment || scrollToIndex !== previousScrollToIndex)) {
    updateScrollIndexCallback(scrollToIndex); // If we don't have a selected item but list size or number of children have decreased,
    // Make sure we aren't scrolled too far past the current content.
  } else if (!hasScrollToIndex && cellCount > 0 && (size < previousSize || cellCount < previousCellsCount)) {
    // We need to ensure that the current scroll offset is still within the collection's range.
    // To do this, we don't need to measure everything; CellMeasurer would perform poorly.
    // Just check to make sure we're still okay.
    // Only adjust the scroll position if we've scrolled below the last set of rows.
    if (scrollOffset > cellSizeAndPositionManager.getTotalSize() - size) {
      updateScrollIndexCallback(cellCount - 1);
    }
  }
}


// CONCATENATED MODULE: ./node_modules/react-virtualized/dist/es/Grid/defaultCellRangeRenderer.js
/**
 * Default implementation of cellRangeRenderer used by Grid.
 * This renderer supports cell-caching while the user is scrolling.
 */
function defaultCellRangeRenderer(_ref) {
  var cellCache = _ref.cellCache,
      cellRenderer = _ref.cellRenderer,
      columnSizeAndPositionManager = _ref.columnSizeAndPositionManager,
      columnStartIndex = _ref.columnStartIndex,
      columnStopIndex = _ref.columnStopIndex,
      deferredMeasurementCache = _ref.deferredMeasurementCache,
      horizontalOffsetAdjustment = _ref.horizontalOffsetAdjustment,
      isScrolling = _ref.isScrolling,
      isScrollingOptOut = _ref.isScrollingOptOut,
      parent = _ref.parent,
      rowSizeAndPositionManager = _ref.rowSizeAndPositionManager,
      rowStartIndex = _ref.rowStartIndex,
      rowStopIndex = _ref.rowStopIndex,
      styleCache = _ref.styleCache,
      verticalOffsetAdjustment = _ref.verticalOffsetAdjustment,
      visibleColumnIndices = _ref.visibleColumnIndices,
      visibleRowIndices = _ref.visibleRowIndices;
  var renderedCells = []; // Browsers have native size limits for elements (eg Chrome 33M pixels, IE 1.5M pixes).
  // User cannot scroll beyond these size limitations.
  // In order to work around this, ScalingCellSizeAndPositionManager compresses offsets.
  // We should never cache styles for compressed offsets though as this can lead to bugs.
  // See issue #576 for more.

  var areOffsetsAdjusted = columnSizeAndPositionManager.areOffsetsAdjusted() || rowSizeAndPositionManager.areOffsetsAdjusted();
  var canCacheStyle = !isScrolling && !areOffsetsAdjusted;

  for (var rowIndex = rowStartIndex; rowIndex <= rowStopIndex; rowIndex++) {
    var rowDatum = rowSizeAndPositionManager.getSizeAndPositionOfCell(rowIndex);

    for (var columnIndex = columnStartIndex; columnIndex <= columnStopIndex; columnIndex++) {
      var columnDatum = columnSizeAndPositionManager.getSizeAndPositionOfCell(columnIndex);
      var isVisible = columnIndex >= visibleColumnIndices.start && columnIndex <= visibleColumnIndices.stop && rowIndex >= visibleRowIndices.start && rowIndex <= visibleRowIndices.stop;
      var key = "".concat(rowIndex, "-").concat(columnIndex);
      var style = void 0; // Cache style objects so shallow-compare doesn't re-render unnecessarily.

      if (canCacheStyle && styleCache[key]) {
        style = styleCache[key];
      } else {
        // In deferred mode, cells will be initially rendered before we know their size.
        // Don't interfere with CellMeasurer's measurements by setting an invalid size.
        if (deferredMeasurementCache && !deferredMeasurementCache.has(rowIndex, columnIndex)) {
          // Position not-yet-measured cells at top/left 0,0,
          // And give them width/height of 'auto' so they can grow larger than the parent Grid if necessary.
          // Positioning them further to the right/bottom influences their measured size.
          style = {
            height: 'auto',
            left: 0,
            position: 'absolute',
            top: 0,
            width: 'auto'
          };
        } else {
          style = {
            height: rowDatum.size,
            left: columnDatum.offset + horizontalOffsetAdjustment,
            position: 'absolute',
            top: rowDatum.offset + verticalOffsetAdjustment,
            width: columnDatum.size
          };
          styleCache[key] = style;
        }
      }

      var cellRendererParams = {
        columnIndex: columnIndex,
        isScrolling: isScrolling,
        isVisible: isVisible,
        key: key,
        parent: parent,
        rowIndex: rowIndex,
        style: style
      };
      var renderedCell = void 0; // Avoid re-creating cells while scrolling.
      // This can lead to the same cell being created many times and can cause performance issues for "heavy" cells.
      // If a scroll is in progress- cache and reuse cells.
      // This cache will be thrown away once scrolling completes.
      // However if we are scaling scroll positions and sizes, we should also avoid caching.
      // This is because the offset changes slightly as scroll position changes and caching leads to stale values.
      // For more info refer to issue #395
      //
      // If isScrollingOptOut is specified, we always cache cells.
      // For more info refer to issue #1028

      if ((isScrollingOptOut || isScrolling) && !horizontalOffsetAdjustment && !verticalOffsetAdjustment) {
        if (!cellCache[key]) {
          cellCache[key] = cellRenderer(cellRendererParams);
        }

        renderedCell = cellCache[key]; // If the user is no longer scrolling, don't cache cells.
        // This makes dynamic cell content difficult for users and would also lead to a heavier memory footprint.
      } else {
        renderedCell = cellRenderer(cellRendererParams);
      }

      if (renderedCell == null || renderedCell === false) {
        continue;
      }

      if (false) {}

      renderedCells.push(renderedCell);
    }
  }

  return renderedCells;
}

function warnAboutMissingStyle(parent, renderedCell) {
  if (false) {}
}


// CONCATENATED MODULE: ./node_modules/react-virtualized/node_modules/dom-helpers/esm/canUseDOM.js
/* harmony default export */ var canUseDOM = (!!(typeof window !== 'undefined' && window.document && window.document.createElement));
// CONCATENATED MODULE: ./node_modules/react-virtualized/node_modules/dom-helpers/esm/scrollbarSize.js

var size;
function scrollbarSize_scrollbarSize(recalc) {
  if (!size && size !== 0 || recalc) {
    if (canUseDOM) {
      var scrollDiv = document.createElement('div');
      scrollDiv.style.position = 'absolute';
      scrollDiv.style.top = '-9999px';
      scrollDiv.style.width = '50px';
      scrollDiv.style.height = '50px';
      scrollDiv.style.overflow = 'scroll';
      document.body.appendChild(scrollDiv);
      size = scrollDiv.offsetWidth - scrollDiv.clientWidth;
      document.body.removeChild(scrollDiv);
    }
  }

  return size;
}
// CONCATENATED MODULE: ./node_modules/react-virtualized/dist/es/utils/animationFrame.js
// Properly handle server-side rendering.
var win;

if (typeof window !== 'undefined') {
  win = window;
} else if (typeof self !== 'undefined') {
  win = self;
} else {
  win = {};
} // requestAnimationFrame() shim by Paul Irish
// http://paulirish.com/2011/requestanimationframe-for-smart-animating/


var request = win.requestAnimationFrame || win.webkitRequestAnimationFrame || win.mozRequestAnimationFrame || win.oRequestAnimationFrame || win.msRequestAnimationFrame || function (callback) {
  return win.setTimeout(callback, 1000 / 60);
};

var cancel = win.cancelAnimationFrame || win.webkitCancelAnimationFrame || win.mozCancelAnimationFrame || win.oCancelAnimationFrame || win.msCancelAnimationFrame || function (id) {
  win.clearTimeout(id);
};

var raf = request;
var caf = cancel;
// CONCATENATED MODULE: ./node_modules/react-virtualized/dist/es/utils/requestAnimationTimeout.js

var bpfrpt_proptype_AnimationTimeoutId =  true ? null : undefined;
var requestAnimationTimeout_cancelAnimationTimeout = function cancelAnimationTimeout(frame) {
  return caf(frame.id);
};
/**
 * Recursively calls requestAnimationFrame until a specified delay has been met or exceeded.
 * When the delay time has been reached the function you're timing out will be called.
 *
 * Credit: Joe Lambert (https://gist.github.com/joelambert/1002116#file-requesttimeout-js)
 */

var requestAnimationTimeout_requestAnimationTimeout = function requestAnimationTimeout(callback, delay) {
  var start; // wait for end of processing current event handler, because event handler may be long

  Promise.resolve().then(function () {
    start = Date.now();
  });

  var timeout = function timeout() {
    if (Date.now() - start >= delay) {
      callback.call();
    } else {
      frame.id = raf(timeout);
    }
  };

  var frame = {
    id: raf(timeout)
  };
  return frame;
};


// CONCATENATED MODULE: ./node_modules/react-virtualized/dist/es/Grid/Grid.js









var _class, _temp;

function ownKeys(object, enumerableOnly) {
  var keys = Object.keys(object);

  if (Object.getOwnPropertySymbols) {
    var symbols = Object.getOwnPropertySymbols(object);
    if (enumerableOnly) symbols = symbols.filter(function (sym) {
      return Object.getOwnPropertyDescriptor(object, sym).enumerable;
    });
    keys.push.apply(keys, symbols);
  }

  return keys;
}

function _objectSpread(target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i] != null ? arguments[i] : {};

    if (i % 2) {
      ownKeys(source, true).forEach(function (key) {
        defineProperty_default()(target, key, source[key]);
      });
    } else if (Object.getOwnPropertyDescriptors) {
      Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
    } else {
      ownKeys(source).forEach(function (key) {
        Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
      });
    }
  }

  return target;
}












/**
 * Specifies the number of milliseconds during which to disable pointer events while a scroll is in progress.
 * This improves performance and makes scrolling smoother.
 */

var DEFAULT_SCROLLING_RESET_TIME_INTERVAL = 150;
/**
 * Controls whether the Grid updates the DOM element's scrollLeft/scrollTop based on the current state or just observes it.
 * This prevents Grid from interrupting mouse-wheel animations (see issue #2).
 */

var SCROLL_POSITION_CHANGE_REASONS = {
  OBSERVED: 'observed',
  REQUESTED: 'requested'
};

var renderNull = function renderNull() {
  return null;
};
/**
 * Renders tabular data with virtualization along the vertical and horizontal axes.
 * Row heights and column widths must be known ahead of time and specified as properties.
 */


var Grid_Grid = (_temp = _class = /*#__PURE__*/function (_React$PureComponent) {
  inherits_default()(Grid, _React$PureComponent); // Invokes onSectionRendered callback only when start/stop row or column indices change


  function Grid(props) {
    var _this;

    classCallCheck_default()(this, Grid);

    _this = possibleConstructorReturn_default()(this, getPrototypeOf_default()(Grid).call(this, props));

    defineProperty_default()(assertThisInitialized_default()(_this), "_onGridRenderedMemoizer", createCallbackMemoizer());

    defineProperty_default()(assertThisInitialized_default()(_this), "_onScrollMemoizer", createCallbackMemoizer(false));

    defineProperty_default()(assertThisInitialized_default()(_this), "_deferredInvalidateColumnIndex", null);

    defineProperty_default()(assertThisInitialized_default()(_this), "_deferredInvalidateRowIndex", null);

    defineProperty_default()(assertThisInitialized_default()(_this), "_recomputeScrollLeftFlag", false);

    defineProperty_default()(assertThisInitialized_default()(_this), "_recomputeScrollTopFlag", false);

    defineProperty_default()(assertThisInitialized_default()(_this), "_horizontalScrollBarSize", 0);

    defineProperty_default()(assertThisInitialized_default()(_this), "_verticalScrollBarSize", 0);

    defineProperty_default()(assertThisInitialized_default()(_this), "_scrollbarPresenceChanged", false);

    defineProperty_default()(assertThisInitialized_default()(_this), "_scrollingContainer", void 0);

    defineProperty_default()(assertThisInitialized_default()(_this), "_childrenToDisplay", void 0);

    defineProperty_default()(assertThisInitialized_default()(_this), "_columnStartIndex", void 0);

    defineProperty_default()(assertThisInitialized_default()(_this), "_columnStopIndex", void 0);

    defineProperty_default()(assertThisInitialized_default()(_this), "_rowStartIndex", void 0);

    defineProperty_default()(assertThisInitialized_default()(_this), "_rowStopIndex", void 0);

    defineProperty_default()(assertThisInitialized_default()(_this), "_renderedColumnStartIndex", 0);

    defineProperty_default()(assertThisInitialized_default()(_this), "_renderedColumnStopIndex", 0);

    defineProperty_default()(assertThisInitialized_default()(_this), "_renderedRowStartIndex", 0);

    defineProperty_default()(assertThisInitialized_default()(_this), "_renderedRowStopIndex", 0);

    defineProperty_default()(assertThisInitialized_default()(_this), "_initialScrollTop", void 0);

    defineProperty_default()(assertThisInitialized_default()(_this), "_initialScrollLeft", void 0);

    defineProperty_default()(assertThisInitialized_default()(_this), "_disablePointerEventsTimeoutId", void 0);

    defineProperty_default()(assertThisInitialized_default()(_this), "_styleCache", {});

    defineProperty_default()(assertThisInitialized_default()(_this), "_cellCache", {});

    defineProperty_default()(assertThisInitialized_default()(_this), "_debounceScrollEndedCallback", function () {
      _this._disablePointerEventsTimeoutId = null; // isScrolling is used to determine if we reset styleCache

      _this.setState({
        isScrolling: false,
        needToResetStyleCache: false
      });
    });

    defineProperty_default()(assertThisInitialized_default()(_this), "_invokeOnGridRenderedHelper", function () {
      var onSectionRendered = _this.props.onSectionRendered;

      _this._onGridRenderedMemoizer({
        callback: onSectionRendered,
        indices: {
          columnOverscanStartIndex: _this._columnStartIndex,
          columnOverscanStopIndex: _this._columnStopIndex,
          columnStartIndex: _this._renderedColumnStartIndex,
          columnStopIndex: _this._renderedColumnStopIndex,
          rowOverscanStartIndex: _this._rowStartIndex,
          rowOverscanStopIndex: _this._rowStopIndex,
          rowStartIndex: _this._renderedRowStartIndex,
          rowStopIndex: _this._renderedRowStopIndex
        }
      });
    });

    defineProperty_default()(assertThisInitialized_default()(_this), "_setScrollingContainerRef", function (ref) {
      _this._scrollingContainer = ref;
    });

    defineProperty_default()(assertThisInitialized_default()(_this), "_onScroll", function (event) {
      // In certain edge-cases React dispatches an onScroll event with an invalid target.scrollLeft / target.scrollTop.
      // This invalid event can be detected by comparing event.target to this component's scrollable DOM element.
      // See issue #404 for more information.
      if (event.target === _this._scrollingContainer) {
        _this.handleScrollEvent(event.target);
      }
    });

    var columnSizeAndPositionManager = new ScalingCellSizeAndPositionManager_ScalingCellSizeAndPositionManager({
      cellCount: props.columnCount,
      cellSizeGetter: function cellSizeGetter(params) {
        return Grid._wrapSizeGetter(props.columnWidth)(params);
      },
      estimatedCellSize: Grid._getEstimatedColumnSize(props)
    });
    var rowSizeAndPositionManager = new ScalingCellSizeAndPositionManager_ScalingCellSizeAndPositionManager({
      cellCount: props.rowCount,
      cellSizeGetter: function cellSizeGetter(params) {
        return Grid._wrapSizeGetter(props.rowHeight)(params);
      },
      estimatedCellSize: Grid._getEstimatedRowSize(props)
    });
    _this.state = {
      instanceProps: {
        columnSizeAndPositionManager: columnSizeAndPositionManager,
        rowSizeAndPositionManager: rowSizeAndPositionManager,
        prevColumnWidth: props.columnWidth,
        prevRowHeight: props.rowHeight,
        prevColumnCount: props.columnCount,
        prevRowCount: props.rowCount,
        prevIsScrolling: props.isScrolling === true,
        prevScrollToColumn: props.scrollToColumn,
        prevScrollToRow: props.scrollToRow,
        scrollbarSize: 0,
        scrollbarSizeMeasured: false
      },
      isScrolling: false,
      scrollDirectionHorizontal: SCROLL_DIRECTION_FORWARD,
      scrollDirectionVertical: SCROLL_DIRECTION_FORWARD,
      scrollLeft: 0,
      scrollTop: 0,
      scrollPositionChangeReason: null,
      needToResetStyleCache: false
    };

    if (props.scrollToRow > 0) {
      _this._initialScrollTop = _this._getCalculatedScrollTop(props, _this.state);
    }

    if (props.scrollToColumn > 0) {
      _this._initialScrollLeft = _this._getCalculatedScrollLeft(props, _this.state);
    }

    return _this;
  }
  /**
   * Gets offsets for a given cell and alignment.
   */


  createClass_default()(Grid, [{
    key: "getOffsetForCell",
    value: function getOffsetForCell() {
      var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
          _ref$alignment = _ref.alignment,
          alignment = _ref$alignment === void 0 ? this.props.scrollToAlignment : _ref$alignment,
          _ref$columnIndex = _ref.columnIndex,
          columnIndex = _ref$columnIndex === void 0 ? this.props.scrollToColumn : _ref$columnIndex,
          _ref$rowIndex = _ref.rowIndex,
          rowIndex = _ref$rowIndex === void 0 ? this.props.scrollToRow : _ref$rowIndex;

      var offsetProps = _objectSpread({}, this.props, {
        scrollToAlignment: alignment,
        scrollToColumn: columnIndex,
        scrollToRow: rowIndex
      });

      return {
        scrollLeft: this._getCalculatedScrollLeft(offsetProps),
        scrollTop: this._getCalculatedScrollTop(offsetProps)
      };
    }
    /**
     * Gets estimated total rows' height.
     */

  }, {
    key: "getTotalRowsHeight",
    value: function getTotalRowsHeight() {
      return this.state.instanceProps.rowSizeAndPositionManager.getTotalSize();
    }
    /**
     * Gets estimated total columns' width.
     */

  }, {
    key: "getTotalColumnsWidth",
    value: function getTotalColumnsWidth() {
      return this.state.instanceProps.columnSizeAndPositionManager.getTotalSize();
    }
    /**
     * This method handles a scroll event originating from an external scroll control.
     * It's an advanced method and should probably not be used unless you're implementing a custom scroll-bar solution.
     */

  }, {
    key: "handleScrollEvent",
    value: function handleScrollEvent(_ref2) {
      var _ref2$scrollLeft = _ref2.scrollLeft,
          scrollLeftParam = _ref2$scrollLeft === void 0 ? 0 : _ref2$scrollLeft,
          _ref2$scrollTop = _ref2.scrollTop,
          scrollTopParam = _ref2$scrollTop === void 0 ? 0 : _ref2$scrollTop; // On iOS, we can arrive at negative offsets by swiping past the start.
      // To prevent flicker here, we make playing in the negative offset zone cause nothing to happen.

      if (scrollTopParam < 0) {
        return;
      } // Prevent pointer events from interrupting a smooth scroll


      this._debounceScrollEnded();

      var _this$props = this.props,
          autoHeight = _this$props.autoHeight,
          autoWidth = _this$props.autoWidth,
          height = _this$props.height,
          width = _this$props.width;
      var instanceProps = this.state.instanceProps; // When this component is shrunk drastically, React dispatches a series of back-to-back scroll events,
      // Gradually converging on a scrollTop that is within the bounds of the new, smaller height.
      // This causes a series of rapid renders that is slow for long lists.
      // We can avoid that by doing some simple bounds checking to ensure that scroll offsets never exceed their bounds.

      var scrollbarSize = instanceProps.scrollbarSize;
      var totalRowsHeight = instanceProps.rowSizeAndPositionManager.getTotalSize();
      var totalColumnsWidth = instanceProps.columnSizeAndPositionManager.getTotalSize();
      var scrollLeft = Math.min(Math.max(0, totalColumnsWidth - width + scrollbarSize), scrollLeftParam);
      var scrollTop = Math.min(Math.max(0, totalRowsHeight - height + scrollbarSize), scrollTopParam); // Certain devices (like Apple touchpad) rapid-fire duplicate events.
      // Don't force a re-render if this is the case.
      // The mouse may move faster then the animation frame does.
      // Use requestAnimationFrame to avoid over-updating.

      if (this.state.scrollLeft !== scrollLeft || this.state.scrollTop !== scrollTop) {
        // Track scrolling direction so we can more efficiently overscan rows to reduce empty space around the edges while scrolling.
        // Don't change direction for an axis unless scroll offset has changed.
        var scrollDirectionHorizontal = scrollLeft !== this.state.scrollLeft ? scrollLeft > this.state.scrollLeft ? SCROLL_DIRECTION_FORWARD : SCROLL_DIRECTION_BACKWARD : this.state.scrollDirectionHorizontal;
        var scrollDirectionVertical = scrollTop !== this.state.scrollTop ? scrollTop > this.state.scrollTop ? SCROLL_DIRECTION_FORWARD : SCROLL_DIRECTION_BACKWARD : this.state.scrollDirectionVertical;
        var newState = {
          isScrolling: true,
          scrollDirectionHorizontal: scrollDirectionHorizontal,
          scrollDirectionVertical: scrollDirectionVertical,
          scrollPositionChangeReason: SCROLL_POSITION_CHANGE_REASONS.OBSERVED
        };

        if (!autoHeight) {
          newState.scrollTop = scrollTop;
        }

        if (!autoWidth) {
          newState.scrollLeft = scrollLeft;
        }

        newState.needToResetStyleCache = false;
        this.setState(newState);
      }

      this._invokeOnScrollMemoizer({
        scrollLeft: scrollLeft,
        scrollTop: scrollTop,
        totalColumnsWidth: totalColumnsWidth,
        totalRowsHeight: totalRowsHeight
      });
    }
    /**
     * Invalidate Grid size and recompute visible cells.
     * This is a deferred wrapper for recomputeGridSize().
     * It sets a flag to be evaluated on cDM/cDU to avoid unnecessary renders.
     * This method is intended for advanced use-cases like CellMeasurer.
     */
    // @TODO (bvaughn) Add automated test coverage for this.

  }, {
    key: "invalidateCellSizeAfterRender",
    value: function invalidateCellSizeAfterRender(_ref3) {
      var columnIndex = _ref3.columnIndex,
          rowIndex = _ref3.rowIndex;
      this._deferredInvalidateColumnIndex = typeof this._deferredInvalidateColumnIndex === 'number' ? Math.min(this._deferredInvalidateColumnIndex, columnIndex) : columnIndex;
      this._deferredInvalidateRowIndex = typeof this._deferredInvalidateRowIndex === 'number' ? Math.min(this._deferredInvalidateRowIndex, rowIndex) : rowIndex;
    }
    /**
     * Pre-measure all columns and rows in a Grid.
     * Typically cells are only measured as needed and estimated sizes are used for cells that have not yet been measured.
     * This method ensures that the next call to getTotalSize() returns an exact size (as opposed to just an estimated one).
     */

  }, {
    key: "measureAllCells",
    value: function measureAllCells() {
      var _this$props2 = this.props,
          columnCount = _this$props2.columnCount,
          rowCount = _this$props2.rowCount;
      var instanceProps = this.state.instanceProps;
      instanceProps.columnSizeAndPositionManager.getSizeAndPositionOfCell(columnCount - 1);
      instanceProps.rowSizeAndPositionManager.getSizeAndPositionOfCell(rowCount - 1);
    }
    /**
     * Forced recompute of row heights and column widths.
     * This function should be called if dynamic column or row sizes have changed but nothing else has.
     * Since Grid only receives :columnCount and :rowCount it has no way of detecting when the underlying data changes.
     */

  }, {
    key: "recomputeGridSize",
    value: function recomputeGridSize() {
      var _ref4 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
          _ref4$columnIndex = _ref4.columnIndex,
          columnIndex = _ref4$columnIndex === void 0 ? 0 : _ref4$columnIndex,
          _ref4$rowIndex = _ref4.rowIndex,
          rowIndex = _ref4$rowIndex === void 0 ? 0 : _ref4$rowIndex;

      var _this$props3 = this.props,
          scrollToColumn = _this$props3.scrollToColumn,
          scrollToRow = _this$props3.scrollToRow;
      var instanceProps = this.state.instanceProps;
      instanceProps.columnSizeAndPositionManager.resetCell(columnIndex);
      instanceProps.rowSizeAndPositionManager.resetCell(rowIndex); // Cell sizes may be determined by a function property.
      // In this case the cDU handler can't know if they changed.
      // Store this flag to let the next cDU pass know it needs to recompute the scroll offset.

      this._recomputeScrollLeftFlag = scrollToColumn >= 0 && (this.state.scrollDirectionHorizontal === SCROLL_DIRECTION_FORWARD ? columnIndex <= scrollToColumn : columnIndex >= scrollToColumn);
      this._recomputeScrollTopFlag = scrollToRow >= 0 && (this.state.scrollDirectionVertical === SCROLL_DIRECTION_FORWARD ? rowIndex <= scrollToRow : rowIndex >= scrollToRow); // Clear cell cache in case we are scrolling;
      // Invalid row heights likely mean invalid cached content as well.

      this._styleCache = {};
      this._cellCache = {};
      this.forceUpdate();
    }
    /**
     * Ensure column and row are visible.
     */

  }, {
    key: "scrollToCell",
    value: function scrollToCell(_ref5) {
      var columnIndex = _ref5.columnIndex,
          rowIndex = _ref5.rowIndex;
      var columnCount = this.props.columnCount;
      var props = this.props; // Don't adjust scroll offset for single-column grids (eg List, Table).
      // This can cause a funky scroll offset because of the vertical scrollbar width.

      if (columnCount > 1 && columnIndex !== undefined) {
        this._updateScrollLeftForScrollToColumn(_objectSpread({}, props, {
          scrollToColumn: columnIndex
        }));
      }

      if (rowIndex !== undefined) {
        this._updateScrollTopForScrollToRow(_objectSpread({}, props, {
          scrollToRow: rowIndex
        }));
      }
    }
  }, {
    key: "componentDidMount",
    value: function componentDidMount() {
      var _this$props4 = this.props,
          getScrollbarSize = _this$props4.getScrollbarSize,
          height = _this$props4.height,
          scrollLeft = _this$props4.scrollLeft,
          scrollToColumn = _this$props4.scrollToColumn,
          scrollTop = _this$props4.scrollTop,
          scrollToRow = _this$props4.scrollToRow,
          width = _this$props4.width;
      var instanceProps = this.state.instanceProps; // Reset initial offsets to be ignored in browser

      this._initialScrollTop = 0;
      this._initialScrollLeft = 0; // If cell sizes have been invalidated (eg we are using CellMeasurer) then reset cached positions.
      // We must do this at the start of the method as we may calculate and update scroll position below.

      this._handleInvalidatedGridSize(); // If this component was first rendered server-side, scrollbar size will be undefined.
      // In that event we need to remeasure.


      if (!instanceProps.scrollbarSizeMeasured) {
        this.setState(function (prevState) {
          var stateUpdate = _objectSpread({}, prevState, {
            needToResetStyleCache: false
          });

          stateUpdate.instanceProps.scrollbarSize = getScrollbarSize();
          stateUpdate.instanceProps.scrollbarSizeMeasured = true;
          return stateUpdate;
        });
      }

      if (typeof scrollLeft === 'number' && scrollLeft >= 0 || typeof scrollTop === 'number' && scrollTop >= 0) {
        var stateUpdate = Grid._getScrollToPositionStateUpdate({
          prevState: this.state,
          scrollLeft: scrollLeft,
          scrollTop: scrollTop
        });

        if (stateUpdate) {
          stateUpdate.needToResetStyleCache = false;
          this.setState(stateUpdate);
        }
      } // refs don't work in `react-test-renderer`


      if (this._scrollingContainer) {
        // setting the ref's scrollLeft and scrollTop.
        // Somehow in MultiGrid the main grid doesn't trigger a update on mount.
        if (this._scrollingContainer.scrollLeft !== this.state.scrollLeft) {
          this._scrollingContainer.scrollLeft = this.state.scrollLeft;
        }

        if (this._scrollingContainer.scrollTop !== this.state.scrollTop) {
          this._scrollingContainer.scrollTop = this.state.scrollTop;
        }
      } // Don't update scroll offset if the size is 0; we don't render any cells in this case.
      // Setting a state may cause us to later thing we've updated the offce when we haven't.


      var sizeIsBiggerThanZero = height > 0 && width > 0;

      if (scrollToColumn >= 0 && sizeIsBiggerThanZero) {
        this._updateScrollLeftForScrollToColumn();
      }

      if (scrollToRow >= 0 && sizeIsBiggerThanZero) {
        this._updateScrollTopForScrollToRow();
      } // Update onRowsRendered callback


      this._invokeOnGridRenderedHelper(); // Initialize onScroll callback


      this._invokeOnScrollMemoizer({
        scrollLeft: scrollLeft || 0,
        scrollTop: scrollTop || 0,
        totalColumnsWidth: instanceProps.columnSizeAndPositionManager.getTotalSize(),
        totalRowsHeight: instanceProps.rowSizeAndPositionManager.getTotalSize()
      });

      this._maybeCallOnScrollbarPresenceChange();
    }
    /**
     * @private
     * This method updates scrollLeft/scrollTop in state for the following conditions:
     * 1) New scroll-to-cell props have been set
     */

  }, {
    key: "componentDidUpdate",
    value: function componentDidUpdate(prevProps, prevState) {
      var _this2 = this;

      var _this$props5 = this.props,
          autoHeight = _this$props5.autoHeight,
          autoWidth = _this$props5.autoWidth,
          columnCount = _this$props5.columnCount,
          height = _this$props5.height,
          rowCount = _this$props5.rowCount,
          scrollToAlignment = _this$props5.scrollToAlignment,
          scrollToColumn = _this$props5.scrollToColumn,
          scrollToRow = _this$props5.scrollToRow,
          width = _this$props5.width;
      var _this$state = this.state,
          scrollLeft = _this$state.scrollLeft,
          scrollPositionChangeReason = _this$state.scrollPositionChangeReason,
          scrollTop = _this$state.scrollTop,
          instanceProps = _this$state.instanceProps; // If cell sizes have been invalidated (eg we are using CellMeasurer) then reset cached positions.
      // We must do this at the start of the method as we may calculate and update scroll position below.

      this._handleInvalidatedGridSize(); // Handle edge case where column or row count has only just increased over 0.
      // In this case we may have to restore a previously-specified scroll offset.
      // For more info see bvaughn/react-virtualized/issues/218


      var columnOrRowCountJustIncreasedFromZero = columnCount > 0 && prevProps.columnCount === 0 || rowCount > 0 && prevProps.rowCount === 0; // Make sure requested changes to :scrollLeft or :scrollTop get applied.
      // Assigning to scrollLeft/scrollTop tells the browser to interrupt any running scroll animations,
      // And to discard any pending async changes to the scroll position that may have happened in the meantime (e.g. on a separate scrolling thread).
      // So we only set these when we require an adjustment of the scroll position.
      // See issue #2 for more information.

      if (scrollPositionChangeReason === SCROLL_POSITION_CHANGE_REASONS.REQUESTED) {
        // @TRICKY :autoHeight and :autoWidth properties instructs Grid to leave :scrollTop and :scrollLeft management to an external HOC (eg WindowScroller).
        // In this case we should avoid checking scrollingContainer.scrollTop and scrollingContainer.scrollLeft since it forces layout/flow.
        if (!autoWidth && scrollLeft >= 0 && (scrollLeft !== this._scrollingContainer.scrollLeft || columnOrRowCountJustIncreasedFromZero)) {
          this._scrollingContainer.scrollLeft = scrollLeft;
        }

        if (!autoHeight && scrollTop >= 0 && (scrollTop !== this._scrollingContainer.scrollTop || columnOrRowCountJustIncreasedFromZero)) {
          this._scrollingContainer.scrollTop = scrollTop;
        }
      } // Special case where the previous size was 0:
      // In this case we don't show any windowed cells at all.
      // So we should always recalculate offset afterwards.


      var sizeJustIncreasedFromZero = (prevProps.width === 0 || prevProps.height === 0) && height > 0 && width > 0; // Update scroll offsets if the current :scrollToColumn or :scrollToRow values requires it
      // @TODO Do we also need this check or can the one in componentWillUpdate() suffice?

      if (this._recomputeScrollLeftFlag) {
        this._recomputeScrollLeftFlag = false;

        this._updateScrollLeftForScrollToColumn(this.props);
      } else {
        updateScrollIndexHelper({
          cellSizeAndPositionManager: instanceProps.columnSizeAndPositionManager,
          previousCellsCount: prevProps.columnCount,
          previousCellSize: prevProps.columnWidth,
          previousScrollToAlignment: prevProps.scrollToAlignment,
          previousScrollToIndex: prevProps.scrollToColumn,
          previousSize: prevProps.width,
          scrollOffset: scrollLeft,
          scrollToAlignment: scrollToAlignment,
          scrollToIndex: scrollToColumn,
          size: width,
          sizeJustIncreasedFromZero: sizeJustIncreasedFromZero,
          updateScrollIndexCallback: function updateScrollIndexCallback() {
            return _this2._updateScrollLeftForScrollToColumn(_this2.props);
          }
        });
      }

      if (this._recomputeScrollTopFlag) {
        this._recomputeScrollTopFlag = false;

        this._updateScrollTopForScrollToRow(this.props);
      } else {
        updateScrollIndexHelper({
          cellSizeAndPositionManager: instanceProps.rowSizeAndPositionManager,
          previousCellsCount: prevProps.rowCount,
          previousCellSize: prevProps.rowHeight,
          previousScrollToAlignment: prevProps.scrollToAlignment,
          previousScrollToIndex: prevProps.scrollToRow,
          previousSize: prevProps.height,
          scrollOffset: scrollTop,
          scrollToAlignment: scrollToAlignment,
          scrollToIndex: scrollToRow,
          size: height,
          sizeJustIncreasedFromZero: sizeJustIncreasedFromZero,
          updateScrollIndexCallback: function updateScrollIndexCallback() {
            return _this2._updateScrollTopForScrollToRow(_this2.props);
          }
        });
      } // Update onRowsRendered callback if start/stop indices have changed


      this._invokeOnGridRenderedHelper(); // Changes to :scrollLeft or :scrollTop should also notify :onScroll listeners


      if (scrollLeft !== prevState.scrollLeft || scrollTop !== prevState.scrollTop) {
        var totalRowsHeight = instanceProps.rowSizeAndPositionManager.getTotalSize();
        var totalColumnsWidth = instanceProps.columnSizeAndPositionManager.getTotalSize();

        this._invokeOnScrollMemoizer({
          scrollLeft: scrollLeft,
          scrollTop: scrollTop,
          totalColumnsWidth: totalColumnsWidth,
          totalRowsHeight: totalRowsHeight
        });
      }

      this._maybeCallOnScrollbarPresenceChange();
    }
  }, {
    key: "componentWillUnmount",
    value: function componentWillUnmount() {
      if (this._disablePointerEventsTimeoutId) {
        requestAnimationTimeout_cancelAnimationTimeout(this._disablePointerEventsTimeoutId);
      }
    }
    /**
     * This method updates scrollLeft/scrollTop in state for the following conditions:
     * 1) Empty content (0 rows or columns)
     * 2) New scroll props overriding the current state
     * 3) Cells-count or cells-size has changed, making previous scroll offsets invalid
     */

  }, {
    key: "render",
    value: function render() {
      var _this$props6 = this.props,
          autoContainerWidth = _this$props6.autoContainerWidth,
          autoHeight = _this$props6.autoHeight,
          autoWidth = _this$props6.autoWidth,
          className = _this$props6.className,
          containerProps = _this$props6.containerProps,
          containerRole = _this$props6.containerRole,
          containerStyle = _this$props6.containerStyle,
          height = _this$props6.height,
          id = _this$props6.id,
          noContentRenderer = _this$props6.noContentRenderer,
          role = _this$props6.role,
          style = _this$props6.style,
          tabIndex = _this$props6.tabIndex,
          width = _this$props6.width;
      var _this$state2 = this.state,
          instanceProps = _this$state2.instanceProps,
          needToResetStyleCache = _this$state2.needToResetStyleCache;

      var isScrolling = this._isScrolling();

      var gridStyle = {
        boxSizing: 'border-box',
        direction: 'ltr',
        height: autoHeight ? 'auto' : height,
        position: 'relative',
        width: autoWidth ? 'auto' : width,
        WebkitOverflowScrolling: 'touch',
        willChange: 'transform'
      };

      if (needToResetStyleCache) {
        this._styleCache = {};
      } // calculate _styleCache here
      // if state.isScrolling (not from _isScrolling) then reset


      if (!this.state.isScrolling) {
        this._resetStyleCache();
      } // calculate children to render here


      this._calculateChildrenToRender(this.props, this.state);

      var totalColumnsWidth = instanceProps.columnSizeAndPositionManager.getTotalSize();
      var totalRowsHeight = instanceProps.rowSizeAndPositionManager.getTotalSize(); // Force browser to hide scrollbars when we know they aren't necessary.
      // Otherwise once scrollbars appear they may not disappear again.
      // For more info see issue #116

      var verticalScrollBarSize = totalRowsHeight > height ? instanceProps.scrollbarSize : 0;
      var horizontalScrollBarSize = totalColumnsWidth > width ? instanceProps.scrollbarSize : 0;

      if (horizontalScrollBarSize !== this._horizontalScrollBarSize || verticalScrollBarSize !== this._verticalScrollBarSize) {
        this._horizontalScrollBarSize = horizontalScrollBarSize;
        this._verticalScrollBarSize = verticalScrollBarSize;
        this._scrollbarPresenceChanged = true;
      } // Also explicitly init styles to 'auto' if scrollbars are required.
      // This works around an obscure edge case where external CSS styles have not yet been loaded,
      // But an initial scroll index of offset is set as an external prop.
      // Without this style, Grid would render the correct range of cells but would NOT update its internal offset.
      // This was originally reported via clauderic/react-infinite-calendar/issues/23


      gridStyle.overflowX = totalColumnsWidth + verticalScrollBarSize <= width ? 'hidden' : 'auto';
      gridStyle.overflowY = totalRowsHeight + horizontalScrollBarSize <= height ? 'hidden' : 'auto';
      var childrenToDisplay = this._childrenToDisplay;
      var showNoContentRenderer = childrenToDisplay.length === 0 && height > 0 && width > 0;
      return react["createElement"]("div", extends_default()({
        ref: this._setScrollingContainerRef
      }, containerProps, {
        "aria-label": this.props['aria-label'],
        "aria-readonly": this.props['aria-readonly'],
        className: Object(clsx_m["a" /* default */])('ReactVirtualized__Grid', className),
        id: id,
        onScroll: this._onScroll,
        role: role,
        style: _objectSpread({}, gridStyle, {}, style),
        tabIndex: tabIndex
      }), childrenToDisplay.length > 0 && react["createElement"]("div", {
        className: "ReactVirtualized__Grid__innerScrollContainer",
        role: containerRole,
        style: _objectSpread({
          width: autoContainerWidth ? 'auto' : totalColumnsWidth,
          height: totalRowsHeight,
          maxWidth: totalColumnsWidth,
          maxHeight: totalRowsHeight,
          overflow: 'hidden',
          pointerEvents: isScrolling ? 'none' : '',
          position: 'relative'
        }, containerStyle)
      }, childrenToDisplay), showNoContentRenderer && noContentRenderer());
    }
    /* ---------------------------- Helper methods ---------------------------- */

  }, {
    key: "_calculateChildrenToRender",
    value: function _calculateChildrenToRender() {
      var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;
      var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.state;
      var cellRenderer = props.cellRenderer,
          cellRangeRenderer = props.cellRangeRenderer,
          columnCount = props.columnCount,
          deferredMeasurementCache = props.deferredMeasurementCache,
          height = props.height,
          overscanColumnCount = props.overscanColumnCount,
          overscanIndicesGetter = props.overscanIndicesGetter,
          overscanRowCount = props.overscanRowCount,
          rowCount = props.rowCount,
          width = props.width,
          isScrollingOptOut = props.isScrollingOptOut;
      var scrollDirectionHorizontal = state.scrollDirectionHorizontal,
          scrollDirectionVertical = state.scrollDirectionVertical,
          instanceProps = state.instanceProps;
      var scrollTop = this._initialScrollTop > 0 ? this._initialScrollTop : state.scrollTop;
      var scrollLeft = this._initialScrollLeft > 0 ? this._initialScrollLeft : state.scrollLeft;

      var isScrolling = this._isScrolling(props, state);

      this._childrenToDisplay = []; // Render only enough columns and rows to cover the visible area of the grid.

      if (height > 0 && width > 0) {
        var visibleColumnIndices = instanceProps.columnSizeAndPositionManager.getVisibleCellRange({
          containerSize: width,
          offset: scrollLeft
        });
        var visibleRowIndices = instanceProps.rowSizeAndPositionManager.getVisibleCellRange({
          containerSize: height,
          offset: scrollTop
        });
        var horizontalOffsetAdjustment = instanceProps.columnSizeAndPositionManager.getOffsetAdjustment({
          containerSize: width,
          offset: scrollLeft
        });
        var verticalOffsetAdjustment = instanceProps.rowSizeAndPositionManager.getOffsetAdjustment({
          containerSize: height,
          offset: scrollTop
        }); // Store for _invokeOnGridRenderedHelper()

        this._renderedColumnStartIndex = visibleColumnIndices.start;
        this._renderedColumnStopIndex = visibleColumnIndices.stop;
        this._renderedRowStartIndex = visibleRowIndices.start;
        this._renderedRowStopIndex = visibleRowIndices.stop;
        var overscanColumnIndices = overscanIndicesGetter({
          direction: 'horizontal',
          cellCount: columnCount,
          overscanCellsCount: overscanColumnCount,
          scrollDirection: scrollDirectionHorizontal,
          startIndex: typeof visibleColumnIndices.start === 'number' ? visibleColumnIndices.start : 0,
          stopIndex: typeof visibleColumnIndices.stop === 'number' ? visibleColumnIndices.stop : -1
        });
        var overscanRowIndices = overscanIndicesGetter({
          direction: 'vertical',
          cellCount: rowCount,
          overscanCellsCount: overscanRowCount,
          scrollDirection: scrollDirectionVertical,
          startIndex: typeof visibleRowIndices.start === 'number' ? visibleRowIndices.start : 0,
          stopIndex: typeof visibleRowIndices.stop === 'number' ? visibleRowIndices.stop : -1
        }); // Store for _invokeOnGridRenderedHelper()

        var columnStartIndex = overscanColumnIndices.overscanStartIndex;
        var columnStopIndex = overscanColumnIndices.overscanStopIndex;
        var rowStartIndex = overscanRowIndices.overscanStartIndex;
        var rowStopIndex = overscanRowIndices.overscanStopIndex; // Advanced use-cases (eg CellMeasurer) require batched measurements to determine accurate sizes.

        if (deferredMeasurementCache) {
          // If rows have a dynamic height, scan the rows we are about to render.
          // If any have not yet been measured, then we need to render all columns initially,
          // Because the height of the row is equal to the tallest cell within that row,
          // (And so we can't know the height without measuring all column-cells first).
          if (!deferredMeasurementCache.hasFixedHeight()) {
            for (var rowIndex = rowStartIndex; rowIndex <= rowStopIndex; rowIndex++) {
              if (!deferredMeasurementCache.has(rowIndex, 0)) {
                columnStartIndex = 0;
                columnStopIndex = columnCount - 1;
                break;
              }
            }
          } // If columns have a dynamic width, scan the columns we are about to render.
          // If any have not yet been measured, then we need to render all rows initially,
          // Because the width of the column is equal to the widest cell within that column,
          // (And so we can't know the width without measuring all row-cells first).


          if (!deferredMeasurementCache.hasFixedWidth()) {
            for (var columnIndex = columnStartIndex; columnIndex <= columnStopIndex; columnIndex++) {
              if (!deferredMeasurementCache.has(0, columnIndex)) {
                rowStartIndex = 0;
                rowStopIndex = rowCount - 1;
                break;
              }
            }
          }
        }

        this._childrenToDisplay = cellRangeRenderer({
          cellCache: this._cellCache,
          cellRenderer: cellRenderer,
          columnSizeAndPositionManager: instanceProps.columnSizeAndPositionManager,
          columnStartIndex: columnStartIndex,
          columnStopIndex: columnStopIndex,
          deferredMeasurementCache: deferredMeasurementCache,
          horizontalOffsetAdjustment: horizontalOffsetAdjustment,
          isScrolling: isScrolling,
          isScrollingOptOut: isScrollingOptOut,
          parent: this,
          rowSizeAndPositionManager: instanceProps.rowSizeAndPositionManager,
          rowStartIndex: rowStartIndex,
          rowStopIndex: rowStopIndex,
          scrollLeft: scrollLeft,
          scrollTop: scrollTop,
          styleCache: this._styleCache,
          verticalOffsetAdjustment: verticalOffsetAdjustment,
          visibleColumnIndices: visibleColumnIndices,
          visibleRowIndices: visibleRowIndices
        }); // update the indices

        this._columnStartIndex = columnStartIndex;
        this._columnStopIndex = columnStopIndex;
        this._rowStartIndex = rowStartIndex;
        this._rowStopIndex = rowStopIndex;
      }
    }
    /**
     * Sets an :isScrolling flag for a small window of time.
     * This flag is used to disable pointer events on the scrollable portion of the Grid.
     * This prevents jerky/stuttery mouse-wheel scrolling.
     */

  }, {
    key: "_debounceScrollEnded",
    value: function _debounceScrollEnded() {
      var scrollingResetTimeInterval = this.props.scrollingResetTimeInterval;

      if (this._disablePointerEventsTimeoutId) {
        requestAnimationTimeout_cancelAnimationTimeout(this._disablePointerEventsTimeoutId);
      }

      this._disablePointerEventsTimeoutId = requestAnimationTimeout_requestAnimationTimeout(this._debounceScrollEndedCallback, scrollingResetTimeInterval);
    }
  }, {
    key: "_handleInvalidatedGridSize",

    /**
     * Check for batched CellMeasurer size invalidations.
     * This will occur the first time one or more previously unmeasured cells are rendered.
     */
    value: function _handleInvalidatedGridSize() {
      if (typeof this._deferredInvalidateColumnIndex === 'number' && typeof this._deferredInvalidateRowIndex === 'number') {
        var columnIndex = this._deferredInvalidateColumnIndex;
        var rowIndex = this._deferredInvalidateRowIndex;
        this._deferredInvalidateColumnIndex = null;
        this._deferredInvalidateRowIndex = null;
        this.recomputeGridSize({
          columnIndex: columnIndex,
          rowIndex: rowIndex
        });
      }
    }
  }, {
    key: "_invokeOnScrollMemoizer",
    value: function _invokeOnScrollMemoizer(_ref6) {
      var _this3 = this;

      var scrollLeft = _ref6.scrollLeft,
          scrollTop = _ref6.scrollTop,
          totalColumnsWidth = _ref6.totalColumnsWidth,
          totalRowsHeight = _ref6.totalRowsHeight;

      this._onScrollMemoizer({
        callback: function callback(_ref7) {
          var scrollLeft = _ref7.scrollLeft,
              scrollTop = _ref7.scrollTop;
          var _this3$props = _this3.props,
              height = _this3$props.height,
              onScroll = _this3$props.onScroll,
              width = _this3$props.width;
          onScroll({
            clientHeight: height,
            clientWidth: width,
            scrollHeight: totalRowsHeight,
            scrollLeft: scrollLeft,
            scrollTop: scrollTop,
            scrollWidth: totalColumnsWidth
          });
        },
        indices: {
          scrollLeft: scrollLeft,
          scrollTop: scrollTop
        }
      });
    }
  }, {
    key: "_isScrolling",
    value: function _isScrolling() {
      var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;
      var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.state; // If isScrolling is defined in props, use it to override the value in state
      // This is a performance optimization for WindowScroller + Grid

      return Object.hasOwnProperty.call(props, 'isScrolling') ? Boolean(props.isScrolling) : Boolean(state.isScrolling);
    }
  }, {
    key: "_maybeCallOnScrollbarPresenceChange",
    value: function _maybeCallOnScrollbarPresenceChange() {
      if (this._scrollbarPresenceChanged) {
        var onScrollbarPresenceChange = this.props.onScrollbarPresenceChange;
        this._scrollbarPresenceChanged = false;
        onScrollbarPresenceChange({
          horizontal: this._horizontalScrollBarSize > 0,
          size: this.state.instanceProps.scrollbarSize,
          vertical: this._verticalScrollBarSize > 0
        });
      }
    }
  }, {
    key: "scrollToPosition",

    /**
     * Scroll to the specified offset(s).
     * Useful for animating position changes.
     */
    value: function scrollToPosition(_ref8) {
      var scrollLeft = _ref8.scrollLeft,
          scrollTop = _ref8.scrollTop;

      var stateUpdate = Grid._getScrollToPositionStateUpdate({
        prevState: this.state,
        scrollLeft: scrollLeft,
        scrollTop: scrollTop
      });

      if (stateUpdate) {
        stateUpdate.needToResetStyleCache = false;
        this.setState(stateUpdate);
      }
    }
  }, {
    key: "_getCalculatedScrollLeft",
    value: function _getCalculatedScrollLeft() {
      var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;
      var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.state;
      return Grid._getCalculatedScrollLeft(props, state);
    }
  }, {
    key: "_updateScrollLeftForScrollToColumn",
    value: function _updateScrollLeftForScrollToColumn() {
      var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;
      var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.state;

      var stateUpdate = Grid._getScrollLeftForScrollToColumnStateUpdate(props, state);

      if (stateUpdate) {
        stateUpdate.needToResetStyleCache = false;
        this.setState(stateUpdate);
      }
    }
  }, {
    key: "_getCalculatedScrollTop",
    value: function _getCalculatedScrollTop() {
      var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;
      var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.state;
      return Grid._getCalculatedScrollTop(props, state);
    }
  }, {
    key: "_resetStyleCache",
    value: function _resetStyleCache() {
      var styleCache = this._styleCache;
      var cellCache = this._cellCache;
      var isScrollingOptOut = this.props.isScrollingOptOut; // Reset cell and style caches once scrolling stops.
      // This makes Grid simpler to use (since cells commonly change).
      // And it keeps the caches from growing too large.
      // Performance is most sensitive when a user is scrolling.
      // Don't clear visible cells from cellCache if isScrollingOptOut is specified.
      // This keeps the cellCache to a resonable size.

      this._cellCache = {};
      this._styleCache = {}; // Copy over the visible cell styles so avoid unnecessary re-render.

      for (var rowIndex = this._rowStartIndex; rowIndex <= this._rowStopIndex; rowIndex++) {
        for (var columnIndex = this._columnStartIndex; columnIndex <= this._columnStopIndex; columnIndex++) {
          var key = "".concat(rowIndex, "-").concat(columnIndex);
          this._styleCache[key] = styleCache[key];

          if (isScrollingOptOut) {
            this._cellCache[key] = cellCache[key];
          }
        }
      }
    }
  }, {
    key: "_updateScrollTopForScrollToRow",
    value: function _updateScrollTopForScrollToRow() {
      var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;
      var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.state;

      var stateUpdate = Grid._getScrollTopForScrollToRowStateUpdate(props, state);

      if (stateUpdate) {
        stateUpdate.needToResetStyleCache = false;
        this.setState(stateUpdate);
      }
    }
  }], [{
    key: "getDerivedStateFromProps",
    value: function getDerivedStateFromProps(nextProps, prevState) {
      var newState = {};

      if (nextProps.columnCount === 0 && prevState.scrollLeft !== 0 || nextProps.rowCount === 0 && prevState.scrollTop !== 0) {
        newState.scrollLeft = 0;
        newState.scrollTop = 0; // only use scroll{Left,Top} from props if scrollTo{Column,Row} isn't specified
        // scrollTo{Column,Row} should override scroll{Left,Top}
      } else if (nextProps.scrollLeft !== prevState.scrollLeft && nextProps.scrollToColumn < 0 || nextProps.scrollTop !== prevState.scrollTop && nextProps.scrollToRow < 0) {
        Object.assign(newState, Grid._getScrollToPositionStateUpdate({
          prevState: prevState,
          scrollLeft: nextProps.scrollLeft,
          scrollTop: nextProps.scrollTop
        }));
      }

      var instanceProps = prevState.instanceProps; // Initially we should not clearStyleCache

      newState.needToResetStyleCache = false;

      if (nextProps.columnWidth !== instanceProps.prevColumnWidth || nextProps.rowHeight !== instanceProps.prevRowHeight) {
        // Reset cache. set it to {} in render
        newState.needToResetStyleCache = true;
      }

      instanceProps.columnSizeAndPositionManager.configure({
        cellCount: nextProps.columnCount,
        estimatedCellSize: Grid._getEstimatedColumnSize(nextProps),
        cellSizeGetter: Grid._wrapSizeGetter(nextProps.columnWidth)
      });
      instanceProps.rowSizeAndPositionManager.configure({
        cellCount: nextProps.rowCount,
        estimatedCellSize: Grid._getEstimatedRowSize(nextProps),
        cellSizeGetter: Grid._wrapSizeGetter(nextProps.rowHeight)
      });

      if (instanceProps.prevColumnCount === 0 || instanceProps.prevRowCount === 0) {
        instanceProps.prevColumnCount = 0;
        instanceProps.prevRowCount = 0;
      } // If scrolling is controlled outside this component, clear cache when scrolling stops


      if (nextProps.autoHeight && nextProps.isScrolling === false && instanceProps.prevIsScrolling === true) {
        Object.assign(newState, {
          isScrolling: false
        });
      }

      var maybeStateA;
      var maybeStateB;
      calculateSizeAndPositionDataAndUpdateScrollOffset({
        cellCount: instanceProps.prevColumnCount,
        cellSize: typeof instanceProps.prevColumnWidth === 'number' ? instanceProps.prevColumnWidth : null,
        computeMetadataCallback: function computeMetadataCallback() {
          return instanceProps.columnSizeAndPositionManager.resetCell(0);
        },
        computeMetadataCallbackProps: nextProps,
        nextCellsCount: nextProps.columnCount,
        nextCellSize: typeof nextProps.columnWidth === 'number' ? nextProps.columnWidth : null,
        nextScrollToIndex: nextProps.scrollToColumn,
        scrollToIndex: instanceProps.prevScrollToColumn,
        updateScrollOffsetForScrollToIndex: function updateScrollOffsetForScrollToIndex() {
          maybeStateA = Grid._getScrollLeftForScrollToColumnStateUpdate(nextProps, prevState);
        }
      });
      calculateSizeAndPositionDataAndUpdateScrollOffset({
        cellCount: instanceProps.prevRowCount,
        cellSize: typeof instanceProps.prevRowHeight === 'number' ? instanceProps.prevRowHeight : null,
        computeMetadataCallback: function computeMetadataCallback() {
          return instanceProps.rowSizeAndPositionManager.resetCell(0);
        },
        computeMetadataCallbackProps: nextProps,
        nextCellsCount: nextProps.rowCount,
        nextCellSize: typeof nextProps.rowHeight === 'number' ? nextProps.rowHeight : null,
        nextScrollToIndex: nextProps.scrollToRow,
        scrollToIndex: instanceProps.prevScrollToRow,
        updateScrollOffsetForScrollToIndex: function updateScrollOffsetForScrollToIndex() {
          maybeStateB = Grid._getScrollTopForScrollToRowStateUpdate(nextProps, prevState);
        }
      });
      instanceProps.prevColumnCount = nextProps.columnCount;
      instanceProps.prevColumnWidth = nextProps.columnWidth;
      instanceProps.prevIsScrolling = nextProps.isScrolling === true;
      instanceProps.prevRowCount = nextProps.rowCount;
      instanceProps.prevRowHeight = nextProps.rowHeight;
      instanceProps.prevScrollToColumn = nextProps.scrollToColumn;
      instanceProps.prevScrollToRow = nextProps.scrollToRow; // getting scrollBarSize (moved from componentWillMount)

      instanceProps.scrollbarSize = nextProps.getScrollbarSize();

      if (instanceProps.scrollbarSize === undefined) {
        instanceProps.scrollbarSizeMeasured = false;
        instanceProps.scrollbarSize = 0;
      } else {
        instanceProps.scrollbarSizeMeasured = true;
      }

      newState.instanceProps = instanceProps;
      return _objectSpread({}, newState, {}, maybeStateA, {}, maybeStateB);
    }
  }, {
    key: "_getEstimatedColumnSize",
    value: function _getEstimatedColumnSize(props) {
      return typeof props.columnWidth === 'number' ? props.columnWidth : props.estimatedColumnSize;
    }
  }, {
    key: "_getEstimatedRowSize",
    value: function _getEstimatedRowSize(props) {
      return typeof props.rowHeight === 'number' ? props.rowHeight : props.estimatedRowSize;
    }
  }, {
    key: "_getScrollToPositionStateUpdate",

    /**
     * Get the updated state after scrolling to
     * scrollLeft and scrollTop
     */
    value: function _getScrollToPositionStateUpdate(_ref9) {
      var prevState = _ref9.prevState,
          scrollLeft = _ref9.scrollLeft,
          scrollTop = _ref9.scrollTop;
      var newState = {
        scrollPositionChangeReason: SCROLL_POSITION_CHANGE_REASONS.REQUESTED
      };

      if (typeof scrollLeft === 'number' && scrollLeft >= 0) {
        newState.scrollDirectionHorizontal = scrollLeft > prevState.scrollLeft ? SCROLL_DIRECTION_FORWARD : SCROLL_DIRECTION_BACKWARD;
        newState.scrollLeft = scrollLeft;
      }

      if (typeof scrollTop === 'number' && scrollTop >= 0) {
        newState.scrollDirectionVertical = scrollTop > prevState.scrollTop ? SCROLL_DIRECTION_FORWARD : SCROLL_DIRECTION_BACKWARD;
        newState.scrollTop = scrollTop;
      }

      if (typeof scrollLeft === 'number' && scrollLeft >= 0 && scrollLeft !== prevState.scrollLeft || typeof scrollTop === 'number' && scrollTop >= 0 && scrollTop !== prevState.scrollTop) {
        return newState;
      }

      return {};
    }
  }, {
    key: "_wrapSizeGetter",
    value: function _wrapSizeGetter(value) {
      return typeof value === 'function' ? value : function () {
        return value;
      };
    }
  }, {
    key: "_getCalculatedScrollLeft",
    value: function _getCalculatedScrollLeft(nextProps, prevState) {
      var columnCount = nextProps.columnCount,
          height = nextProps.height,
          scrollToAlignment = nextProps.scrollToAlignment,
          scrollToColumn = nextProps.scrollToColumn,
          width = nextProps.width;
      var scrollLeft = prevState.scrollLeft,
          instanceProps = prevState.instanceProps;

      if (columnCount > 0) {
        var finalColumn = columnCount - 1;
        var targetIndex = scrollToColumn < 0 ? finalColumn : Math.min(finalColumn, scrollToColumn);
        var totalRowsHeight = instanceProps.rowSizeAndPositionManager.getTotalSize();
        var scrollBarSize = instanceProps.scrollbarSizeMeasured && totalRowsHeight > height ? instanceProps.scrollbarSize : 0;
        return instanceProps.columnSizeAndPositionManager.getUpdatedOffsetForIndex({
          align: scrollToAlignment,
          containerSize: width - scrollBarSize,
          currentOffset: scrollLeft,
          targetIndex: targetIndex
        });
      }

      return 0;
    }
  }, {
    key: "_getScrollLeftForScrollToColumnStateUpdate",
    value: function _getScrollLeftForScrollToColumnStateUpdate(nextProps, prevState) {
      var scrollLeft = prevState.scrollLeft;

      var calculatedScrollLeft = Grid._getCalculatedScrollLeft(nextProps, prevState);

      if (typeof calculatedScrollLeft === 'number' && calculatedScrollLeft >= 0 && scrollLeft !== calculatedScrollLeft) {
        return Grid._getScrollToPositionStateUpdate({
          prevState: prevState,
          scrollLeft: calculatedScrollLeft,
          scrollTop: -1
        });
      }

      return {};
    }
  }, {
    key: "_getCalculatedScrollTop",
    value: function _getCalculatedScrollTop(nextProps, prevState) {
      var height = nextProps.height,
          rowCount = nextProps.rowCount,
          scrollToAlignment = nextProps.scrollToAlignment,
          scrollToRow = nextProps.scrollToRow,
          width = nextProps.width;
      var scrollTop = prevState.scrollTop,
          instanceProps = prevState.instanceProps;

      if (rowCount > 0) {
        var finalRow = rowCount - 1;
        var targetIndex = scrollToRow < 0 ? finalRow : Math.min(finalRow, scrollToRow);
        var totalColumnsWidth = instanceProps.columnSizeAndPositionManager.getTotalSize();
        var scrollBarSize = instanceProps.scrollbarSizeMeasured && totalColumnsWidth > width ? instanceProps.scrollbarSize : 0;
        return instanceProps.rowSizeAndPositionManager.getUpdatedOffsetForIndex({
          align: scrollToAlignment,
          containerSize: height - scrollBarSize,
          currentOffset: scrollTop,
          targetIndex: targetIndex
        });
      }

      return 0;
    }
  }, {
    key: "_getScrollTopForScrollToRowStateUpdate",
    value: function _getScrollTopForScrollToRowStateUpdate(nextProps, prevState) {
      var scrollTop = prevState.scrollTop;

      var calculatedScrollTop = Grid._getCalculatedScrollTop(nextProps, prevState);

      if (typeof calculatedScrollTop === 'number' && calculatedScrollTop >= 0 && scrollTop !== calculatedScrollTop) {
        return Grid._getScrollToPositionStateUpdate({
          prevState: prevState,
          scrollLeft: -1,
          scrollTop: calculatedScrollTop
        });
      }

      return {};
    }
  }]);

  return Grid;
}(react["PureComponent"]), defineProperty_default()(_class, "propTypes",  true ? null : undefined), _temp);

defineProperty_default()(Grid_Grid, "defaultProps", {
  'aria-label': 'grid',
  'aria-readonly': true,
  autoContainerWidth: false,
  autoHeight: false,
  autoWidth: false,
  cellRangeRenderer: defaultCellRangeRenderer,
  containerRole: 'rowgroup',
  containerStyle: {},
  estimatedColumnSize: 100,
  estimatedRowSize: 30,
  getScrollbarSize: scrollbarSize_scrollbarSize,
  noContentRenderer: renderNull,
  onScroll: function onScroll() {},
  onScrollbarPresenceChange: function onScrollbarPresenceChange() {},
  onSectionRendered: function onSectionRendered() {},
  overscanColumnCount: 0,
  overscanIndicesGetter: defaultOverscanIndicesGetter,
  overscanRowCount: 10,
  role: 'grid',
  scrollingResetTimeInterval: DEFAULT_SCROLLING_RESET_TIME_INTERVAL,
  scrollToAlignment: 'auto',
  scrollToColumn: -1,
  scrollToRow: -1,
  style: {},
  tabIndex: 0,
  isScrollingOptOut: false
});

Object(react_lifecycles_compat_es["polyfill"])(Grid_Grid);
/* harmony default export */ var es_Grid_Grid = (Grid_Grid);















// CONCATENATED MODULE: ./node_modules/react-virtualized/dist/es/Grid/accessibilityOverscanIndicesGetter.js
var accessibilityOverscanIndicesGetter_SCROLL_DIRECTION_BACKWARD = -1;
var accessibilityOverscanIndicesGetter_SCROLL_DIRECTION_FORWARD = 1;
var accessibilityOverscanIndicesGetter_SCROLL_DIRECTION_HORIZONTAL = 'horizontal';
var accessibilityOverscanIndicesGetter_SCROLL_DIRECTION_VERTICAL = 'vertical';
/**
 * Calculates the number of cells to overscan before and after a specified range.
 * This function ensures that overscanning doesn't exceed the available cells.
 */

function accessibilityOverscanIndicesGetter_defaultOverscanIndicesGetter(_ref) {
  var cellCount = _ref.cellCount,
      overscanCellsCount = _ref.overscanCellsCount,
      scrollDirection = _ref.scrollDirection,
      startIndex = _ref.startIndex,
      stopIndex = _ref.stopIndex; // Make sure we render at least 1 cell extra before and after (except near boundaries)
  // This is necessary in order to support keyboard navigation (TAB/SHIFT+TAB) in some cases
  // For more info see issues #625

  overscanCellsCount = Math.max(1, overscanCellsCount);

  if (scrollDirection === accessibilityOverscanIndicesGetter_SCROLL_DIRECTION_FORWARD) {
    return {
      overscanStartIndex: Math.max(0, startIndex - 1),
      overscanStopIndex: Math.min(cellCount - 1, stopIndex + overscanCellsCount)
    };
  } else {
    return {
      overscanStartIndex: Math.max(0, startIndex - overscanCellsCount),
      overscanStopIndex: Math.min(cellCount - 1, stopIndex + 1)
    };
  }
}


// CONCATENATED MODULE: ./node_modules/react-virtualized/dist/es/Grid/index.js





















// CONCATENATED MODULE: ./node_modules/react-virtualized/dist/es/ArrowKeyStepper/types.js
var bpfrpt_proptype_ScrollIndices =  true ? null : undefined;


// CONCATENATED MODULE: ./node_modules/react-virtualized/dist/es/ArrowKeyStepper/ArrowKeyStepper.js








var ArrowKeyStepper_class, ArrowKeyStepper_temp;

function ArrowKeyStepper_ownKeys(object, enumerableOnly) {
  var keys = Object.keys(object);

  if (Object.getOwnPropertySymbols) {
    var symbols = Object.getOwnPropertySymbols(object);
    if (enumerableOnly) symbols = symbols.filter(function (sym) {
      return Object.getOwnPropertyDescriptor(object, sym).enumerable;
    });
    keys.push.apply(keys, symbols);
  }

  return keys;
}

function ArrowKeyStepper_objectSpread(target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i] != null ? arguments[i] : {};

    if (i % 2) {
      ArrowKeyStepper_ownKeys(source, true).forEach(function (key) {
        defineProperty_default()(target, key, source[key]);
      });
    } else if (Object.getOwnPropertyDescriptors) {
      Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
    } else {
      ArrowKeyStepper_ownKeys(source).forEach(function (key) {
        Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
      });
    }
  }

  return target;
}



/**
 * This HOC decorates a virtualized component and responds to arrow-key events by scrolling one row or column at a time.
 */

var ArrowKeyStepper_ArrowKeyStepper = (ArrowKeyStepper_temp = ArrowKeyStepper_class = /*#__PURE__*/function (_React$PureComponent) {
  inherits_default()(ArrowKeyStepper, _React$PureComponent);

  function ArrowKeyStepper() {
    var _getPrototypeOf2;

    var _this;

    classCallCheck_default()(this, ArrowKeyStepper);

    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    _this = possibleConstructorReturn_default()(this, (_getPrototypeOf2 = getPrototypeOf_default()(ArrowKeyStepper)).call.apply(_getPrototypeOf2, [this].concat(args)));

    defineProperty_default()(assertThisInitialized_default()(_this), "state", {
      scrollToColumn: 0,
      scrollToRow: 0,
      instanceProps: {
        prevScrollToColumn: 0,
        prevScrollToRow: 0
      }
    });

    defineProperty_default()(assertThisInitialized_default()(_this), "_columnStartIndex", 0);

    defineProperty_default()(assertThisInitialized_default()(_this), "_columnStopIndex", 0);

    defineProperty_default()(assertThisInitialized_default()(_this), "_rowStartIndex", 0);

    defineProperty_default()(assertThisInitialized_default()(_this), "_rowStopIndex", 0);

    defineProperty_default()(assertThisInitialized_default()(_this), "_onKeyDown", function (event) {
      var _this$props = _this.props,
          columnCount = _this$props.columnCount,
          disabled = _this$props.disabled,
          mode = _this$props.mode,
          rowCount = _this$props.rowCount;

      if (disabled) {
        return;
      }

      var _this$_getScrollState = _this._getScrollState(),
          scrollToColumnPrevious = _this$_getScrollState.scrollToColumn,
          scrollToRowPrevious = _this$_getScrollState.scrollToRow;

      var _this$_getScrollState2 = _this._getScrollState(),
          scrollToColumn = _this$_getScrollState2.scrollToColumn,
          scrollToRow = _this$_getScrollState2.scrollToRow; // The above cases all prevent default event event behavior.
      // This is to keep the grid from scrolling after the snap-to update.


      switch (event.key) {
        case 'ArrowDown':
          scrollToRow = mode === 'cells' ? Math.min(scrollToRow + 1, rowCount - 1) : Math.min(_this._rowStopIndex + 1, rowCount - 1);
          break;

        case 'ArrowLeft':
          scrollToColumn = mode === 'cells' ? Math.max(scrollToColumn - 1, 0) : Math.max(_this._columnStartIndex - 1, 0);
          break;

        case 'ArrowRight':
          scrollToColumn = mode === 'cells' ? Math.min(scrollToColumn + 1, columnCount - 1) : Math.min(_this._columnStopIndex + 1, columnCount - 1);
          break;

        case 'ArrowUp':
          scrollToRow = mode === 'cells' ? Math.max(scrollToRow - 1, 0) : Math.max(_this._rowStartIndex - 1, 0);
          break;
      }

      if (scrollToColumn !== scrollToColumnPrevious || scrollToRow !== scrollToRowPrevious) {
        event.preventDefault();

        _this._updateScrollState({
          scrollToColumn: scrollToColumn,
          scrollToRow: scrollToRow
        });
      }
    });

    defineProperty_default()(assertThisInitialized_default()(_this), "_onSectionRendered", function (_ref) {
      var columnStartIndex = _ref.columnStartIndex,
          columnStopIndex = _ref.columnStopIndex,
          rowStartIndex = _ref.rowStartIndex,
          rowStopIndex = _ref.rowStopIndex;
      _this._columnStartIndex = columnStartIndex;
      _this._columnStopIndex = columnStopIndex;
      _this._rowStartIndex = rowStartIndex;
      _this._rowStopIndex = rowStopIndex;
    });

    return _this;
  }

  createClass_default()(ArrowKeyStepper, [{
    key: "setScrollIndexes",
    value: function setScrollIndexes(_ref2) {
      var scrollToColumn = _ref2.scrollToColumn,
          scrollToRow = _ref2.scrollToRow;
      this.setState({
        scrollToRow: scrollToRow,
        scrollToColumn: scrollToColumn
      });
    }
  }, {
    key: "render",
    value: function render() {
      var _this$props2 = this.props,
          className = _this$props2.className,
          children = _this$props2.children;

      var _this$_getScrollState3 = this._getScrollState(),
          scrollToColumn = _this$_getScrollState3.scrollToColumn,
          scrollToRow = _this$_getScrollState3.scrollToRow;

      return react["createElement"]("div", {
        className: className,
        onKeyDown: this._onKeyDown
      }, children({
        onSectionRendered: this._onSectionRendered,
        scrollToColumn: scrollToColumn,
        scrollToRow: scrollToRow
      }));
    }
  }, {
    key: "_getScrollState",
    value: function _getScrollState() {
      return this.props.isControlled ? this.props : this.state;
    }
  }, {
    key: "_updateScrollState",
    value: function _updateScrollState(_ref3) {
      var scrollToColumn = _ref3.scrollToColumn,
          scrollToRow = _ref3.scrollToRow;
      var _this$props3 = this.props,
          isControlled = _this$props3.isControlled,
          onScrollToChange = _this$props3.onScrollToChange;

      if (typeof onScrollToChange === 'function') {
        onScrollToChange({
          scrollToColumn: scrollToColumn,
          scrollToRow: scrollToRow
        });
      }

      if (!isControlled) {
        this.setState({
          scrollToColumn: scrollToColumn,
          scrollToRow: scrollToRow
        });
      }
    }
  }], [{
    key: "getDerivedStateFromProps",
    value: function getDerivedStateFromProps(nextProps, prevState) {
      if (nextProps.isControlled) {
        return {};
      }

      if (nextProps.scrollToColumn !== prevState.instanceProps.prevScrollToColumn || nextProps.scrollToRow !== prevState.instanceProps.prevScrollToRow) {
        return ArrowKeyStepper_objectSpread({}, prevState, {
          scrollToColumn: nextProps.scrollToColumn,
          scrollToRow: nextProps.scrollToRow,
          instanceProps: {
            prevScrollToColumn: nextProps.scrollToColumn,
            prevScrollToRow: nextProps.scrollToRow
          }
        });
      }

      return {};
    }
  }]);

  return ArrowKeyStepper;
}(react["PureComponent"]), defineProperty_default()(ArrowKeyStepper_class, "propTypes",  true ? null : undefined), ArrowKeyStepper_temp);

defineProperty_default()(ArrowKeyStepper_ArrowKeyStepper, "defaultProps", {
  disabled: false,
  isControlled: false,
  mode: 'edges',
  scrollToColumn: 0,
  scrollToRow: 0
});

Object(react_lifecycles_compat_es["polyfill"])(ArrowKeyStepper_ArrowKeyStepper);
/* harmony default export */ var es_ArrowKeyStepper_ArrowKeyStepper = (ArrowKeyStepper_ArrowKeyStepper);



// CONCATENATED MODULE: ./node_modules/react-virtualized/dist/es/ArrowKeyStepper/index.js




// EXTERNAL MODULE: ./node_modules/react-virtualized/dist/es/vendor/detectElementResize.js
var detectElementResize = __webpack_require__("m0Av");

// CONCATENATED MODULE: ./node_modules/react-virtualized/dist/es/AutoSizer/AutoSizer.js








var AutoSizer_class, AutoSizer_temp;

function AutoSizer_ownKeys(object, enumerableOnly) {
  var keys = Object.keys(object);

  if (Object.getOwnPropertySymbols) {
    var symbols = Object.getOwnPropertySymbols(object);
    if (enumerableOnly) symbols = symbols.filter(function (sym) {
      return Object.getOwnPropertyDescriptor(object, sym).enumerable;
    });
    keys.push.apply(keys, symbols);
  }

  return keys;
}

function AutoSizer_objectSpread(target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i] != null ? arguments[i] : {};

    if (i % 2) {
      AutoSizer_ownKeys(source, true).forEach(function (key) {
        defineProperty_default()(target, key, source[key]);
      });
    } else if (Object.getOwnPropertyDescriptors) {
      Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
    } else {
      AutoSizer_ownKeys(source).forEach(function (key) {
        Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
      });
    }
  }

  return target;
}



var AutoSizer_AutoSizer = (AutoSizer_temp = AutoSizer_class = /*#__PURE__*/function (_React$Component) {
  inherits_default()(AutoSizer, _React$Component);

  function AutoSizer() {
    var _getPrototypeOf2;

    var _this;

    classCallCheck_default()(this, AutoSizer);

    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    _this = possibleConstructorReturn_default()(this, (_getPrototypeOf2 = getPrototypeOf_default()(AutoSizer)).call.apply(_getPrototypeOf2, [this].concat(args)));

    defineProperty_default()(assertThisInitialized_default()(_this), "state", {
      height: _this.props.defaultHeight || 0,
      width: _this.props.defaultWidth || 0
    });

    defineProperty_default()(assertThisInitialized_default()(_this), "_parentNode", void 0);

    defineProperty_default()(assertThisInitialized_default()(_this), "_autoSizer", void 0);

    defineProperty_default()(assertThisInitialized_default()(_this), "_window", void 0);

    defineProperty_default()(assertThisInitialized_default()(_this), "_detectElementResize", void 0);

    defineProperty_default()(assertThisInitialized_default()(_this), "_onResize", function () {
      var _this$props = _this.props,
          disableHeight = _this$props.disableHeight,
          disableWidth = _this$props.disableWidth,
          onResize = _this$props.onResize;

      if (_this._parentNode) {
        // Guard against AutoSizer component being removed from the DOM immediately after being added.
        // This can result in invalid style values which can result in NaN values if we don't handle them.
        // See issue #150 for more context.
        var height = _this._parentNode.offsetHeight || 0;
        var width = _this._parentNode.offsetWidth || 0;
        var win = _this._window || window;
        var style = win.getComputedStyle(_this._parentNode) || {};
        var paddingLeft = parseInt(style.paddingLeft, 10) || 0;
        var paddingRight = parseInt(style.paddingRight, 10) || 0;
        var paddingTop = parseInt(style.paddingTop, 10) || 0;
        var paddingBottom = parseInt(style.paddingBottom, 10) || 0;
        var newHeight = height - paddingTop - paddingBottom;
        var newWidth = width - paddingLeft - paddingRight;

        if (!disableHeight && _this.state.height !== newHeight || !disableWidth && _this.state.width !== newWidth) {
          _this.setState({
            height: height - paddingTop - paddingBottom,
            width: width - paddingLeft - paddingRight
          });

          onResize({
            height: height,
            width: width
          });
        }
      }
    });

    defineProperty_default()(assertThisInitialized_default()(_this), "_setRef", function (autoSizer) {
      _this._autoSizer = autoSizer;
    });

    return _this;
  }

  createClass_default()(AutoSizer, [{
    key: "componentDidMount",
    value: function componentDidMount() {
      var nonce = this.props.nonce;

      if (this._autoSizer && this._autoSizer.parentNode && this._autoSizer.parentNode.ownerDocument && this._autoSizer.parentNode.ownerDocument.defaultView && this._autoSizer.parentNode instanceof this._autoSizer.parentNode.ownerDocument.defaultView.HTMLElement) {
        // Delay access of parentNode until mount.
        // This handles edge-cases where the component has already been unmounted before its ref has been set,
        // As well as libraries like react-lite which have a slightly different lifecycle.
        this._parentNode = this._autoSizer.parentNode;
        this._window = this._autoSizer.parentNode.ownerDocument.defaultView; // Defer requiring resize handler in order to support server-side rendering.
        // See issue #41

        this._detectElementResize = Object(detectElementResize["a" /* default */])(nonce, this._window);

        this._detectElementResize.addResizeListener(this._parentNode, this._onResize);

        this._onResize();
      }
    }
  }, {
    key: "componentWillUnmount",
    value: function componentWillUnmount() {
      if (this._detectElementResize && this._parentNode) {
        this._detectElementResize.removeResizeListener(this._parentNode, this._onResize);
      }
    }
  }, {
    key: "render",
    value: function render() {
      var _this$props2 = this.props,
          children = _this$props2.children,
          className = _this$props2.className,
          disableHeight = _this$props2.disableHeight,
          disableWidth = _this$props2.disableWidth,
          style = _this$props2.style;
      var _this$state = this.state,
          height = _this$state.height,
          width = _this$state.width; // Outer div should not force width/height since that may prevent containers from shrinking.
      // Inner component should overflow and use calculated width/height.
      // See issue #68 for more information.

      var outerStyle = {
        overflow: 'visible'
      };
      var childParams = {};

      if (!disableHeight) {
        outerStyle.height = 0;
        childParams.height = height;
      }

      if (!disableWidth) {
        outerStyle.width = 0;
        childParams.width = width;
      }
      /**
       * TODO: Avoid rendering children before the initial measurements have been collected.
       * At best this would just be wasting cycles.
       * Add this check into version 10 though as it could break too many ref callbacks in version 9.
       * Note that if default width/height props were provided this would still work with SSR.
      if (
        height !== 0 &&
        width !== 0
      ) {
        child = children({ height, width })
      }
      */


      return react["createElement"]("div", {
        className: className,
        ref: this._setRef,
        style: AutoSizer_objectSpread({}, outerStyle, {}, style)
      }, children(childParams));
    }
  }]);

  return AutoSizer;
}(react["Component"]), defineProperty_default()(AutoSizer_class, "propTypes",  true ? null : undefined), AutoSizer_temp);

defineProperty_default()(AutoSizer_AutoSizer, "defaultProps", {
  onResize: function onResize() {},
  disableHeight: false,
  disableWidth: false,
  style: {}
});



// CONCATENATED MODULE: ./node_modules/react-virtualized/dist/es/AutoSizer/index.js


// EXTERNAL MODULE: ./node_modules/react-dom/index.js
var react_dom = __webpack_require__("i8i4");

// CONCATENATED MODULE: ./node_modules/react-virtualized/dist/es/CellMeasurer/types.js
var bpfrpt_proptype_CellMeasureCache =  true ? null : undefined;


// CONCATENATED MODULE: ./node_modules/react-virtualized/dist/es/CellMeasurer/CellMeasurer.js








var CellMeasurer_class, CellMeasurer_temp;



/**
 * Wraps a cell and measures its rendered content.
 * Measurements are stored in a per-cell cache.
 * Cached-content is not be re-measured.
 */

var CellMeasurer_CellMeasurer = (CellMeasurer_temp = CellMeasurer_class = /*#__PURE__*/function (_React$PureComponent) {
  inherits_default()(CellMeasurer, _React$PureComponent);

  function CellMeasurer() {
    var _getPrototypeOf2;

    var _this;

    classCallCheck_default()(this, CellMeasurer);

    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    _this = possibleConstructorReturn_default()(this, (_getPrototypeOf2 = getPrototypeOf_default()(CellMeasurer)).call.apply(_getPrototypeOf2, [this].concat(args)));

    defineProperty_default()(assertThisInitialized_default()(_this), "_child", void 0);

    defineProperty_default()(assertThisInitialized_default()(_this), "_measure", function () {
      var _this$props = _this.props,
          cache = _this$props.cache,
          _this$props$columnInd = _this$props.columnIndex,
          columnIndex = _this$props$columnInd === void 0 ? 0 : _this$props$columnInd,
          parent = _this$props.parent,
          _this$props$rowIndex = _this$props.rowIndex,
          rowIndex = _this$props$rowIndex === void 0 ? _this.props.index || 0 : _this$props$rowIndex;

      var _this$_getCellMeasure = _this._getCellMeasurements(),
          height = _this$_getCellMeasure.height,
          width = _this$_getCellMeasure.width;

      if (height !== cache.getHeight(rowIndex, columnIndex) || width !== cache.getWidth(rowIndex, columnIndex)) {
        cache.set(rowIndex, columnIndex, width, height);

        if (parent && typeof parent.recomputeGridSize === 'function') {
          parent.recomputeGridSize({
            columnIndex: columnIndex,
            rowIndex: rowIndex
          });
        }
      }
    });

    defineProperty_default()(assertThisInitialized_default()(_this), "_registerChild", function (element) {
      if (element && !(element instanceof Element)) {
        console.warn('CellMeasurer registerChild expects to be passed Element or null');
      }

      _this._child = element;

      if (element) {
        _this._maybeMeasureCell();
      }
    });

    return _this;
  }

  createClass_default()(CellMeasurer, [{
    key: "componentDidMount",
    value: function componentDidMount() {
      this._maybeMeasureCell();
    }
  }, {
    key: "componentDidUpdate",
    value: function componentDidUpdate() {
      this._maybeMeasureCell();
    }
  }, {
    key: "render",
    value: function render() {
      var children = this.props.children;
      return typeof children === 'function' ? children({
        measure: this._measure,
        registerChild: this._registerChild
      }) : children;
    }
  }, {
    key: "_getCellMeasurements",
    value: function _getCellMeasurements() {
      var cache = this.props.cache;
      var node = this._child || Object(react_dom["findDOMNode"])(this); // TODO Check for a bad combination of fixedWidth and missing numeric width or vice versa with height

      if (node && node.ownerDocument && node.ownerDocument.defaultView && node instanceof node.ownerDocument.defaultView.HTMLElement) {
        var styleWidth = node.style.width;
        var styleHeight = node.style.height; // If we are re-measuring a cell that has already been measured,
        // It will have a hard-coded width/height from the previous measurement.
        // The fact that we are measuring indicates this measurement is probably stale,
        // So explicitly clear it out (eg set to "auto") so we can recalculate.
        // See issue #593 for more info.
        // Even if we are measuring initially- if we're inside of a MultiGrid component,
        // Explicitly clear width/height before measuring to avoid being tainted by another Grid.
        // eg top/left Grid renders before bottom/right Grid
        // Since the CellMeasurerCache is shared between them this taints derived cell size values.

        if (!cache.hasFixedWidth()) {
          node.style.width = 'auto';
        }

        if (!cache.hasFixedHeight()) {
          node.style.height = 'auto';
        }

        var height = Math.ceil(node.offsetHeight);
        var width = Math.ceil(node.offsetWidth); // Reset after measuring to avoid breaking styles; see #660

        if (styleWidth) {
          node.style.width = styleWidth;
        }

        if (styleHeight) {
          node.style.height = styleHeight;
        }

        return {
          height: height,
          width: width
        };
      } else {
        return {
          height: 0,
          width: 0
        };
      }
    }
  }, {
    key: "_maybeMeasureCell",
    value: function _maybeMeasureCell() {
      var _this$props2 = this.props,
          cache = _this$props2.cache,
          _this$props2$columnIn = _this$props2.columnIndex,
          columnIndex = _this$props2$columnIn === void 0 ? 0 : _this$props2$columnIn,
          parent = _this$props2.parent,
          _this$props2$rowIndex = _this$props2.rowIndex,
          rowIndex = _this$props2$rowIndex === void 0 ? this.props.index || 0 : _this$props2$rowIndex;

      if (!cache.has(rowIndex, columnIndex)) {
        var _this$_getCellMeasure2 = this._getCellMeasurements(),
            height = _this$_getCellMeasure2.height,
            width = _this$_getCellMeasure2.width;

        cache.set(rowIndex, columnIndex, width, height); // If size has changed, let Grid know to re-render.

        if (parent && typeof parent.invalidateCellSizeAfterRender === 'function') {
          parent.invalidateCellSizeAfterRender({
            columnIndex: columnIndex,
            rowIndex: rowIndex
          });
        }
      }
    }
  }]);

  return CellMeasurer;
}(react["PureComponent"]), defineProperty_default()(CellMeasurer_class, "propTypes",  true ? null : undefined), CellMeasurer_temp); // Used for DEV mode warning check

defineProperty_default()(CellMeasurer_CellMeasurer, "__internalCellMeasurerFlag", false);



if (false) {}



// CONCATENATED MODULE: ./node_modules/react-virtualized/dist/es/CellMeasurer/CellMeasurerCache.js



var DEFAULT_HEIGHT = 30;
var DEFAULT_WIDTH = 100; // Enables more intelligent mapping of a given column and row index to an item ID.
// This prevents a cell cache from being invalidated when its parent collection is modified.

/**
 * Caches measurements for a given cell.
 */

var CellMeasurerCache_CellMeasurerCache = /*#__PURE__*/function () {
  function CellMeasurerCache() {
    var _this = this;

    var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};

    classCallCheck_default()(this, CellMeasurerCache);

    defineProperty_default()(this, "_cellHeightCache", {});

    defineProperty_default()(this, "_cellWidthCache", {});

    defineProperty_default()(this, "_columnWidthCache", {});

    defineProperty_default()(this, "_rowHeightCache", {});

    defineProperty_default()(this, "_defaultHeight", void 0);

    defineProperty_default()(this, "_defaultWidth", void 0);

    defineProperty_default()(this, "_minHeight", void 0);

    defineProperty_default()(this, "_minWidth", void 0);

    defineProperty_default()(this, "_keyMapper", void 0);

    defineProperty_default()(this, "_hasFixedHeight", void 0);

    defineProperty_default()(this, "_hasFixedWidth", void 0);

    defineProperty_default()(this, "_columnCount", 0);

    defineProperty_default()(this, "_rowCount", 0);

    defineProperty_default()(this, "columnWidth", function (_ref) {
      var index = _ref.index;

      var key = _this._keyMapper(0, index);

      return _this._columnWidthCache[key] !== undefined ? _this._columnWidthCache[key] : _this._defaultWidth;
    });

    defineProperty_default()(this, "rowHeight", function (_ref2) {
      var index = _ref2.index;

      var key = _this._keyMapper(index, 0);

      return _this._rowHeightCache[key] !== undefined ? _this._rowHeightCache[key] : _this._defaultHeight;
    });

    var defaultHeight = params.defaultHeight,
        defaultWidth = params.defaultWidth,
        fixedHeight = params.fixedHeight,
        fixedWidth = params.fixedWidth,
        keyMapper = params.keyMapper,
        minHeight = params.minHeight,
        minWidth = params.minWidth;
    this._hasFixedHeight = fixedHeight === true;
    this._hasFixedWidth = fixedWidth === true;
    this._minHeight = minHeight || 0;
    this._minWidth = minWidth || 0;
    this._keyMapper = keyMapper || defaultKeyMapper;
    this._defaultHeight = Math.max(this._minHeight, typeof defaultHeight === 'number' ? defaultHeight : DEFAULT_HEIGHT);
    this._defaultWidth = Math.max(this._minWidth, typeof defaultWidth === 'number' ? defaultWidth : DEFAULT_WIDTH);

    if (false) {}
  }

  createClass_default()(CellMeasurerCache, [{
    key: "clear",
    value: function clear(rowIndex) {
      var columnIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;

      var key = this._keyMapper(rowIndex, columnIndex);

      delete this._cellHeightCache[key];
      delete this._cellWidthCache[key];

      this._updateCachedColumnAndRowSizes(rowIndex, columnIndex);
    }
  }, {
    key: "clearAll",
    value: function clearAll() {
      this._cellHeightCache = {};
      this._cellWidthCache = {};
      this._columnWidthCache = {};
      this._rowHeightCache = {};
      this._rowCount = 0;
      this._columnCount = 0;
    }
  }, {
    key: "hasFixedHeight",
    value: function hasFixedHeight() {
      return this._hasFixedHeight;
    }
  }, {
    key: "hasFixedWidth",
    value: function hasFixedWidth() {
      return this._hasFixedWidth;
    }
  }, {
    key: "getHeight",
    value: function getHeight(rowIndex) {
      var columnIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;

      if (this._hasFixedHeight) {
        return this._defaultHeight;
      } else {
        var _key = this._keyMapper(rowIndex, columnIndex);

        return this._cellHeightCache[_key] !== undefined ? Math.max(this._minHeight, this._cellHeightCache[_key]) : this._defaultHeight;
      }
    }
  }, {
    key: "getWidth",
    value: function getWidth(rowIndex) {
      var columnIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;

      if (this._hasFixedWidth) {
        return this._defaultWidth;
      } else {
        var _key2 = this._keyMapper(rowIndex, columnIndex);

        return this._cellWidthCache[_key2] !== undefined ? Math.max(this._minWidth, this._cellWidthCache[_key2]) : this._defaultWidth;
      }
    }
  }, {
    key: "has",
    value: function has(rowIndex) {
      var columnIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;

      var key = this._keyMapper(rowIndex, columnIndex);

      return this._cellHeightCache[key] !== undefined;
    }
  }, {
    key: "set",
    value: function set(rowIndex, columnIndex, width, height) {
      var key = this._keyMapper(rowIndex, columnIndex);

      if (columnIndex >= this._columnCount) {
        this._columnCount = columnIndex + 1;
      }

      if (rowIndex >= this._rowCount) {
        this._rowCount = rowIndex + 1;
      } // Size is cached per cell so we don't have to re-measure if cells are re-ordered.


      this._cellHeightCache[key] = height;
      this._cellWidthCache[key] = width;

      this._updateCachedColumnAndRowSizes(rowIndex, columnIndex);
    }
  }, {
    key: "_updateCachedColumnAndRowSizes",
    value: function _updateCachedColumnAndRowSizes(rowIndex, columnIndex) {
      // :columnWidth and :rowHeight are derived based on all cells in a column/row.
      // Pre-cache these derived values for faster lookup later.
      // Reads are expected to occur more frequently than writes in this case.
      // Only update non-fixed dimensions though to avoid doing unnecessary work.
      if (!this._hasFixedWidth) {
        var columnWidth = 0;

        for (var i = 0; i < this._rowCount; i++) {
          columnWidth = Math.max(columnWidth, this.getWidth(i, columnIndex));
        }

        var columnKey = this._keyMapper(0, columnIndex);

        this._columnWidthCache[columnKey] = columnWidth;
      }

      if (!this._hasFixedHeight) {
        var rowHeight = 0;

        for (var _i = 0; _i < this._columnCount; _i++) {
          rowHeight = Math.max(rowHeight, this.getHeight(rowIndex, _i));
        }

        var rowKey = this._keyMapper(rowIndex, 0);

        this._rowHeightCache[rowKey] = rowHeight;
      }
    }
  }, {
    key: "defaultHeight",
    get: function get() {
      return this._defaultHeight;
    }
  }, {
    key: "defaultWidth",
    get: function get() {
      return this._defaultWidth;
    }
  }]);

  return CellMeasurerCache;
}();



function defaultKeyMapper(rowIndex, columnIndex) {
  return "".concat(rowIndex, "-").concat(columnIndex);
}


// CONCATENATED MODULE: ./node_modules/react-virtualized/dist/es/CellMeasurer/index.js


/* harmony default export */ var es_CellMeasurer = (CellMeasurer_CellMeasurer);

// CONCATENATED MODULE: ./node_modules/react-virtualized/dist/es/Collection/CollectionView.js








function CollectionView_ownKeys(object, enumerableOnly) {
  var keys = Object.keys(object);

  if (Object.getOwnPropertySymbols) {
    var symbols = Object.getOwnPropertySymbols(object);
    if (enumerableOnly) symbols = symbols.filter(function (sym) {
      return Object.getOwnPropertyDescriptor(object, sym).enumerable;
    });
    keys.push.apply(keys, symbols);
  }

  return keys;
}

function CollectionView_objectSpread(target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i] != null ? arguments[i] : {};

    if (i % 2) {
      CollectionView_ownKeys(source, true).forEach(function (key) {
        defineProperty_default()(target, key, source[key]);
      });
    } else if (Object.getOwnPropertyDescriptors) {
      Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
    } else {
      CollectionView_ownKeys(source).forEach(function (key) {
        Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
      });
    }
  }

  return target;
}






 // @TODO Merge Collection and CollectionView

/**
 * Specifies the number of milliseconds during which to disable pointer events while a scroll is in progress.
 * This improves performance and makes scrolling smoother.
 */

var IS_SCROLLING_TIMEOUT = 150;
/**
 * Controls whether the Grid updates the DOM element's scrollLeft/scrollTop based on the current state or just observes it.
 * This prevents Grid from interrupting mouse-wheel animations (see issue #2).
 */

var CollectionView_SCROLL_POSITION_CHANGE_REASONS = {
  OBSERVED: 'observed',
  REQUESTED: 'requested'
};
/**
 * Monitors changes in properties (eg. cellCount) and state (eg. scroll offsets) to determine when rendering needs to occur.
 * This component does not render any visible content itself; it defers to the specified :cellLayoutManager.
 */

var CollectionView_CollectionView = /*#__PURE__*/function (_React$PureComponent) {
  inherits_default()(CollectionView, _React$PureComponent); // Invokes callbacks only when their values have changed.


  function CollectionView() {
    var _getPrototypeOf2;

    var _this;

    classCallCheck_default()(this, CollectionView);

    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    _this = possibleConstructorReturn_default()(this, (_getPrototypeOf2 = getPrototypeOf_default()(CollectionView)).call.apply(_getPrototypeOf2, [this].concat(args))); // If this component is being rendered server-side, getScrollbarSize() will return undefined.
    // We handle this case in componentDidMount()

    defineProperty_default()(assertThisInitialized_default()(_this), "state", {
      isScrolling: false,
      scrollLeft: 0,
      scrollTop: 0
    });

    defineProperty_default()(assertThisInitialized_default()(_this), "_calculateSizeAndPositionDataOnNextUpdate", false);

    defineProperty_default()(assertThisInitialized_default()(_this), "_onSectionRenderedMemoizer", createCallbackMemoizer());

    defineProperty_default()(assertThisInitialized_default()(_this), "_onScrollMemoizer", createCallbackMemoizer(false));

    defineProperty_default()(assertThisInitialized_default()(_this), "_invokeOnSectionRenderedHelper", function () {
      var _this$props = _this.props,
          cellLayoutManager = _this$props.cellLayoutManager,
          onSectionRendered = _this$props.onSectionRendered;

      _this._onSectionRenderedMemoizer({
        callback: onSectionRendered,
        indices: {
          indices: cellLayoutManager.getLastRenderedIndices()
        }
      });
    });

    defineProperty_default()(assertThisInitialized_default()(_this), "_setScrollingContainerRef", function (ref) {
      _this._scrollingContainer = ref;
    });

    defineProperty_default()(assertThisInitialized_default()(_this), "_updateScrollPositionForScrollToCell", function () {
      var _this$props2 = _this.props,
          cellLayoutManager = _this$props2.cellLayoutManager,
          height = _this$props2.height,
          scrollToAlignment = _this$props2.scrollToAlignment,
          scrollToCell = _this$props2.scrollToCell,
          width = _this$props2.width;
      var _this$state = _this.state,
          scrollLeft = _this$state.scrollLeft,
          scrollTop = _this$state.scrollTop;

      if (scrollToCell >= 0) {
        var scrollPosition = cellLayoutManager.getScrollPositionForCell({
          align: scrollToAlignment,
          cellIndex: scrollToCell,
          height: height,
          scrollLeft: scrollLeft,
          scrollTop: scrollTop,
          width: width
        });

        if (scrollPosition.scrollLeft !== scrollLeft || scrollPosition.scrollTop !== scrollTop) {
          _this._setScrollPosition(scrollPosition);
        }
      }
    });

    defineProperty_default()(assertThisInitialized_default()(_this), "_onScroll", function (event) {
      // In certain edge-cases React dispatches an onScroll event with an invalid target.scrollLeft / target.scrollTop.
      // This invalid event can be detected by comparing event.target to this component's scrollable DOM element.
      // See issue #404 for more information.
      if (event.target !== _this._scrollingContainer) {
        return;
      } // Prevent pointer events from interrupting a smooth scroll


      _this._enablePointerEventsAfterDelay(); // When this component is shrunk drastically, React dispatches a series of back-to-back scroll events,
      // Gradually converging on a scrollTop that is within the bounds of the new, smaller height.
      // This causes a series of rapid renders that is slow for long lists.
      // We can avoid that by doing some simple bounds checking to ensure that scrollTop never exceeds the total height.


      var _this$props3 = _this.props,
          cellLayoutManager = _this$props3.cellLayoutManager,
          height = _this$props3.height,
          isScrollingChange = _this$props3.isScrollingChange,
          width = _this$props3.width;
      var scrollbarSize = _this._scrollbarSize;

      var _cellLayoutManager$ge = cellLayoutManager.getTotalSize(),
          totalHeight = _cellLayoutManager$ge.height,
          totalWidth = _cellLayoutManager$ge.width;

      var scrollLeft = Math.max(0, Math.min(totalWidth - width + scrollbarSize, event.target.scrollLeft));
      var scrollTop = Math.max(0, Math.min(totalHeight - height + scrollbarSize, event.target.scrollTop)); // Certain devices (like Apple touchpad) rapid-fire duplicate events.
      // Don't force a re-render if this is the case.
      // The mouse may move faster then the animation frame does.
      // Use requestAnimationFrame to avoid over-updating.

      if (_this.state.scrollLeft !== scrollLeft || _this.state.scrollTop !== scrollTop) {
        // Browsers with cancelable scroll events (eg. Firefox) interrupt scrolling animations if scrollTop/scrollLeft is set.
        // Other browsers (eg. Safari) don't scroll as well without the help under certain conditions (DOM or style changes during scrolling).
        // All things considered, this seems to be the best current work around that I'm aware of.
        // For more information see https://github.com/bvaughn/react-virtualized/pull/124
        var scrollPositionChangeReason = event.cancelable ? CollectionView_SCROLL_POSITION_CHANGE_REASONS.OBSERVED : CollectionView_SCROLL_POSITION_CHANGE_REASONS.REQUESTED; // Synchronously set :isScrolling the first time (since _setNextState will reschedule its animation frame each time it's called)

        if (!_this.state.isScrolling) {
          isScrollingChange(true);
        }

        _this.setState({
          isScrolling: true,
          scrollLeft: scrollLeft,
          scrollPositionChangeReason: scrollPositionChangeReason,
          scrollTop: scrollTop
        });
      }

      _this._invokeOnScrollMemoizer({
        scrollLeft: scrollLeft,
        scrollTop: scrollTop,
        totalWidth: totalWidth,
        totalHeight: totalHeight
      });
    });

    _this._scrollbarSize = scrollbarSize_scrollbarSize();

    if (_this._scrollbarSize === undefined) {
      _this._scrollbarSizeMeasured = false;
      _this._scrollbarSize = 0;
    } else {
      _this._scrollbarSizeMeasured = true;
    }

    return _this;
  }
  /**
   * Forced recompute of cell sizes and positions.
   * This function should be called if cell sizes have changed but nothing else has.
   * Since cell positions are calculated by callbacks, the collection view has no way of detecting when the underlying data has changed.
   */


  createClass_default()(CollectionView, [{
    key: "recomputeCellSizesAndPositions",
    value: function recomputeCellSizesAndPositions() {
      this._calculateSizeAndPositionDataOnNextUpdate = true;
      this.forceUpdate();
    }
    /* ---------------------------- Component lifecycle methods ---------------------------- */

    /**
     * @private
     * This method updates scrollLeft/scrollTop in state for the following conditions:
     * 1) Empty content (0 rows or columns)
     * 2) New scroll props overriding the current state
     * 3) Cells-count or cells-size has changed, making previous scroll offsets invalid
     */

  }, {
    key: "componentDidMount",
    value: function componentDidMount() {
      var _this$props4 = this.props,
          cellLayoutManager = _this$props4.cellLayoutManager,
          scrollLeft = _this$props4.scrollLeft,
          scrollToCell = _this$props4.scrollToCell,
          scrollTop = _this$props4.scrollTop; // If this component was first rendered server-side, scrollbar size will be undefined.
      // In that event we need to remeasure.

      if (!this._scrollbarSizeMeasured) {
        this._scrollbarSize = scrollbarSize_scrollbarSize();
        this._scrollbarSizeMeasured = true;
        this.setState({});
      }

      if (scrollToCell >= 0) {
        this._updateScrollPositionForScrollToCell();
      } else if (scrollLeft >= 0 || scrollTop >= 0) {
        this._setScrollPosition({
          scrollLeft: scrollLeft,
          scrollTop: scrollTop
        });
      } // Update onSectionRendered callback.


      this._invokeOnSectionRenderedHelper();

      var _cellLayoutManager$ge2 = cellLayoutManager.getTotalSize(),
          totalHeight = _cellLayoutManager$ge2.height,
          totalWidth = _cellLayoutManager$ge2.width; // Initialize onScroll callback.


      this._invokeOnScrollMemoizer({
        scrollLeft: scrollLeft || 0,
        scrollTop: scrollTop || 0,
        totalHeight: totalHeight,
        totalWidth: totalWidth
      });
    }
  }, {
    key: "componentDidUpdate",
    value: function componentDidUpdate(prevProps, prevState) {
      var _this$props5 = this.props,
          height = _this$props5.height,
          scrollToAlignment = _this$props5.scrollToAlignment,
          scrollToCell = _this$props5.scrollToCell,
          width = _this$props5.width;
      var _this$state2 = this.state,
          scrollLeft = _this$state2.scrollLeft,
          scrollPositionChangeReason = _this$state2.scrollPositionChangeReason,
          scrollTop = _this$state2.scrollTop; // Make sure requested changes to :scrollLeft or :scrollTop get applied.
      // Assigning to scrollLeft/scrollTop tells the browser to interrupt any running scroll animations,
      // And to discard any pending async changes to the scroll position that may have happened in the meantime (e.g. on a separate scrolling thread).
      // So we only set these when we require an adjustment of the scroll position.
      // See issue #2 for more information.

      if (scrollPositionChangeReason === CollectionView_SCROLL_POSITION_CHANGE_REASONS.REQUESTED) {
        if (scrollLeft >= 0 && scrollLeft !== prevState.scrollLeft && scrollLeft !== this._scrollingContainer.scrollLeft) {
          this._scrollingContainer.scrollLeft = scrollLeft;
        }

        if (scrollTop >= 0 && scrollTop !== prevState.scrollTop && scrollTop !== this._scrollingContainer.scrollTop) {
          this._scrollingContainer.scrollTop = scrollTop;
        }
      } // Update scroll offsets if the current :scrollToCell values requires it


      if (height !== prevProps.height || scrollToAlignment !== prevProps.scrollToAlignment || scrollToCell !== prevProps.scrollToCell || width !== prevProps.width) {
        this._updateScrollPositionForScrollToCell();
      } // Update onRowsRendered callback if start/stop indices have changed


      this._invokeOnSectionRenderedHelper();
    }
  }, {
    key: "componentWillUnmount",
    value: function componentWillUnmount() {
      if (this._disablePointerEventsTimeoutId) {
        clearTimeout(this._disablePointerEventsTimeoutId);
      }
    }
  }, {
    key: "render",
    value: function render() {
      var _this$props6 = this.props,
          autoHeight = _this$props6.autoHeight,
          cellCount = _this$props6.cellCount,
          cellLayoutManager = _this$props6.cellLayoutManager,
          className = _this$props6.className,
          height = _this$props6.height,
          horizontalOverscanSize = _this$props6.horizontalOverscanSize,
          id = _this$props6.id,
          noContentRenderer = _this$props6.noContentRenderer,
          style = _this$props6.style,
          verticalOverscanSize = _this$props6.verticalOverscanSize,
          width = _this$props6.width;
      var _this$state3 = this.state,
          isScrolling = _this$state3.isScrolling,
          scrollLeft = _this$state3.scrollLeft,
          scrollTop = _this$state3.scrollTop; // Memoization reset

      if (this._lastRenderedCellCount !== cellCount || this._lastRenderedCellLayoutManager !== cellLayoutManager || this._calculateSizeAndPositionDataOnNextUpdate) {
        this._lastRenderedCellCount = cellCount;
        this._lastRenderedCellLayoutManager = cellLayoutManager;
        this._calculateSizeAndPositionDataOnNextUpdate = false;
        cellLayoutManager.calculateSizeAndPositionData();
      }

      var _cellLayoutManager$ge3 = cellLayoutManager.getTotalSize(),
          totalHeight = _cellLayoutManager$ge3.height,
          totalWidth = _cellLayoutManager$ge3.width; // Safely expand the rendered area by the specified overscan amount


      var left = Math.max(0, scrollLeft - horizontalOverscanSize);
      var top = Math.max(0, scrollTop - verticalOverscanSize);
      var right = Math.min(totalWidth, scrollLeft + width + horizontalOverscanSize);
      var bottom = Math.min(totalHeight, scrollTop + height + verticalOverscanSize);
      var childrenToDisplay = height > 0 && width > 0 ? cellLayoutManager.cellRenderers({
        height: bottom - top,
        isScrolling: isScrolling,
        width: right - left,
        x: left,
        y: top
      }) : [];
      var collectionStyle = {
        boxSizing: 'border-box',
        direction: 'ltr',
        height: autoHeight ? 'auto' : height,
        position: 'relative',
        WebkitOverflowScrolling: 'touch',
        width: width,
        willChange: 'transform'
      }; // Force browser to hide scrollbars when we know they aren't necessary.
      // Otherwise once scrollbars appear they may not disappear again.
      // For more info see issue #116

      var verticalScrollBarSize = totalHeight > height ? this._scrollbarSize : 0;
      var horizontalScrollBarSize = totalWidth > width ? this._scrollbarSize : 0; // Also explicitly init styles to 'auto' if scrollbars are required.
      // This works around an obscure edge case where external CSS styles have not yet been loaded,
      // But an initial scroll index of offset is set as an external prop.
      // Without this style, Grid would render the correct range of cells but would NOT update its internal offset.
      // This was originally reported via clauderic/react-infinite-calendar/issues/23

      collectionStyle.overflowX = totalWidth + verticalScrollBarSize <= width ? 'hidden' : 'auto';
      collectionStyle.overflowY = totalHeight + horizontalScrollBarSize <= height ? 'hidden' : 'auto';
      return react["createElement"]("div", {
        ref: this._setScrollingContainerRef,
        "aria-label": this.props['aria-label'],
        className: Object(clsx_m["a" /* default */])('ReactVirtualized__Collection', className),
        id: id,
        onScroll: this._onScroll,
        role: "grid",
        style: CollectionView_objectSpread({}, collectionStyle, {}, style),
        tabIndex: 0
      }, cellCount > 0 && react["createElement"]("div", {
        className: "ReactVirtualized__Collection__innerScrollContainer",
        style: {
          height: totalHeight,
          maxHeight: totalHeight,
          maxWidth: totalWidth,
          overflow: 'hidden',
          pointerEvents: isScrolling ? 'none' : '',
          width: totalWidth
        }
      }, childrenToDisplay), cellCount === 0 && noContentRenderer());
    }
    /* ---------------------------- Helper methods ---------------------------- */

    /**
     * Sets an :isScrolling flag for a small window of time.
     * This flag is used to disable pointer events on the scrollable portion of the Collection.
     * This prevents jerky/stuttery mouse-wheel scrolling.
     */

  }, {
    key: "_enablePointerEventsAfterDelay",
    value: function _enablePointerEventsAfterDelay() {
      var _this2 = this;

      if (this._disablePointerEventsTimeoutId) {
        clearTimeout(this._disablePointerEventsTimeoutId);
      }

      this._disablePointerEventsTimeoutId = setTimeout(function () {
        var isScrollingChange = _this2.props.isScrollingChange;
        isScrollingChange(false);
        _this2._disablePointerEventsTimeoutId = null;

        _this2.setState({
          isScrolling: false
        });
      }, IS_SCROLLING_TIMEOUT);
    }
  }, {
    key: "_invokeOnScrollMemoizer",
    value: function _invokeOnScrollMemoizer(_ref) {
      var _this3 = this;

      var scrollLeft = _ref.scrollLeft,
          scrollTop = _ref.scrollTop,
          totalHeight = _ref.totalHeight,
          totalWidth = _ref.totalWidth;

      this._onScrollMemoizer({
        callback: function callback(_ref2) {
          var scrollLeft = _ref2.scrollLeft,
              scrollTop = _ref2.scrollTop;
          var _this3$props = _this3.props,
              height = _this3$props.height,
              onScroll = _this3$props.onScroll,
              width = _this3$props.width;
          onScroll({
            clientHeight: height,
            clientWidth: width,
            scrollHeight: totalHeight,
            scrollLeft: scrollLeft,
            scrollTop: scrollTop,
            scrollWidth: totalWidth
          });
        },
        indices: {
          scrollLeft: scrollLeft,
          scrollTop: scrollTop
        }
      });
    }
  }, {
    key: "_setScrollPosition",
    value: function _setScrollPosition(_ref3) {
      var scrollLeft = _ref3.scrollLeft,
          scrollTop = _ref3.scrollTop;
      var newState = {
        scrollPositionChangeReason: CollectionView_SCROLL_POSITION_CHANGE_REASONS.REQUESTED
      };

      if (scrollLeft >= 0) {
        newState.scrollLeft = scrollLeft;
      }

      if (scrollTop >= 0) {
        newState.scrollTop = scrollTop;
      }

      if (scrollLeft >= 0 && scrollLeft !== this.state.scrollLeft || scrollTop >= 0 && scrollTop !== this.state.scrollTop) {
        this.setState(newState);
      }
    }
  }], [{
    key: "getDerivedStateFromProps",
    value: function getDerivedStateFromProps(nextProps, prevState) {
      if (nextProps.cellCount === 0 && (prevState.scrollLeft !== 0 || prevState.scrollTop !== 0)) {
        return {
          scrollLeft: 0,
          scrollTop: 0,
          scrollPositionChangeReason: CollectionView_SCROLL_POSITION_CHANGE_REASONS.REQUESTED
        };
      } else if (nextProps.scrollLeft !== prevState.scrollLeft || nextProps.scrollTop !== prevState.scrollTop) {
        return {
          scrollLeft: nextProps.scrollLeft != null ? nextProps.scrollLeft : prevState.scrollLeft,
          scrollTop: nextProps.scrollTop != null ? nextProps.scrollTop : prevState.scrollTop,
          scrollPositionChangeReason: CollectionView_SCROLL_POSITION_CHANGE_REASONS.REQUESTED
        };
      }

      return null;
    }
  }]);

  return CollectionView;
}(react["PureComponent"]);

defineProperty_default()(CollectionView_CollectionView, "defaultProps", {
  'aria-label': 'grid',
  horizontalOverscanSize: 0,
  noContentRenderer: function noContentRenderer() {
    return null;
  },
  onScroll: function onScroll() {
    return null;
  },
  onSectionRendered: function onSectionRendered() {
    return null;
  },
  scrollToAlignment: 'auto',
  scrollToCell: -1,
  style: {},
  verticalOverscanSize: 0
});

CollectionView_CollectionView.propTypes =  false ? undefined : {};
Object(react_lifecycles_compat_es["polyfill"])(CollectionView_CollectionView);
/* harmony default export */ var Collection_CollectionView = (CollectionView_CollectionView);
// CONCATENATED MODULE: ./node_modules/react-virtualized/dist/es/Collection/types.js
var bpfrpt_proptype_Index =  true ? null : undefined;
var bpfrpt_proptype_PositionInfo =  true ? null : undefined;
var bpfrpt_proptype_ScrollPosition =  true ? null : undefined;
var bpfrpt_proptype_SizeAndPositionInfo =  true ? null : undefined;
var bpfrpt_proptype_SizeInfo =  true ? null : undefined;






// CONCATENATED MODULE: ./node_modules/react-virtualized/dist/es/Collection/Section.js


/**
 * A section of the Window.
 * Window Sections are used to group nearby cells.
 * This enables us to more quickly determine which cells to display in a given region of the Window.
 * Sections have a fixed size and contain 0 to many cells (tracked by their indices).
 */

var Section_Section = /*#__PURE__*/function () {
  function Section(_ref) {
    var height = _ref.height,
        width = _ref.width,
        x = _ref.x,
        y = _ref.y;

    classCallCheck_default()(this, Section);

    this.height = height;
    this.width = width;
    this.x = x;
    this.y = y;
    this._indexMap = {};
    this._indices = [];
  }
  /** Add a cell to this section. */


  createClass_default()(Section, [{
    key: "addCellIndex",
    value: function addCellIndex(_ref2) {
      var index = _ref2.index;

      if (!this._indexMap[index]) {
        this._indexMap[index] = true;

        this._indices.push(index);
      }
    }
    /** Get all cell indices that have been added to this section. */

  }, {
    key: "getCellIndices",
    value: function getCellIndices() {
      return this._indices;
    }
    /** Intended for debugger/test purposes only */

  }, {
    key: "toString",
    value: function toString() {
      return "".concat(this.x, ",").concat(this.y, " ").concat(this.width, "x").concat(this.height);
    }
  }]);

  return Section;
}();




// CONCATENATED MODULE: ./node_modules/react-virtualized/dist/es/Collection/SectionManager.js


/**
 * Window Sections are used to group nearby cells.
 * This enables us to more quickly determine which cells to display in a given region of the Window.
 * 
 */


var SECTION_SIZE = 100;
/**
 * Contains 0 to many Sections.
 * Grows (and adds Sections) dynamically as cells are registered.
 * Automatically adds cells to the appropriate Section(s).
 */

var SectionManager_SectionManager = /*#__PURE__*/function () {
  function SectionManager() {
    var sectionSize = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : SECTION_SIZE;

    classCallCheck_default()(this, SectionManager);

    this._sectionSize = sectionSize;
    this._cellMetadata = [];
    this._sections = {};
  }
  /**
   * Gets all cell indices contained in the specified region.
   * A region may encompass 1 or more Sections.
   */


  createClass_default()(SectionManager, [{
    key: "getCellIndices",
    value: function getCellIndices(_ref) {
      var height = _ref.height,
          width = _ref.width,
          x = _ref.x,
          y = _ref.y;
      var indices = {};
      this.getSections({
        height: height,
        width: width,
        x: x,
        y: y
      }).forEach(function (section) {
        return section.getCellIndices().forEach(function (index) {
          indices[index] = index;
        });
      }); // Object keys are strings; this function returns numbers

      return Object.keys(indices).map(function (index) {
        return indices[index];
      });
    }
    /** Get size and position information for the cell specified. */

  }, {
    key: "getCellMetadata",
    value: function getCellMetadata(_ref2) {
      var index = _ref2.index;
      return this._cellMetadata[index];
    }
    /** Get all Sections overlapping the specified region. */

  }, {
    key: "getSections",
    value: function getSections(_ref3) {
      var height = _ref3.height,
          width = _ref3.width,
          x = _ref3.x,
          y = _ref3.y;
      var sectionXStart = Math.floor(x / this._sectionSize);
      var sectionXStop = Math.floor((x + width - 1) / this._sectionSize);
      var sectionYStart = Math.floor(y / this._sectionSize);
      var sectionYStop = Math.floor((y + height - 1) / this._sectionSize);
      var sections = [];

      for (var sectionX = sectionXStart; sectionX <= sectionXStop; sectionX++) {
        for (var sectionY = sectionYStart; sectionY <= sectionYStop; sectionY++) {
          var key = "".concat(sectionX, ".").concat(sectionY);

          if (!this._sections[key]) {
            this._sections[key] = new Section_Section({
              height: this._sectionSize,
              width: this._sectionSize,
              x: sectionX * this._sectionSize,
              y: sectionY * this._sectionSize
            });
          }

          sections.push(this._sections[key]);
        }
      }

      return sections;
    }
    /** Total number of Sections based on the currently registered cells. */

  }, {
    key: "getTotalSectionCount",
    value: function getTotalSectionCount() {
      return Object.keys(this._sections).length;
    }
    /** Intended for debugger/test purposes only */

  }, {
    key: "toString",
    value: function toString() {
      var _this = this;

      return Object.keys(this._sections).map(function (index) {
        return _this._sections[index].toString();
      });
    }
    /** Adds a cell to the appropriate Sections and registers it metadata for later retrievable. */

  }, {
    key: "registerCell",
    value: function registerCell(_ref4) {
      var cellMetadatum = _ref4.cellMetadatum,
          index = _ref4.index;
      this._cellMetadata[index] = cellMetadatum;
      this.getSections(cellMetadatum).forEach(function (section) {
        return section.addCellIndex({
          index: index
        });
      });
    }
  }]);

  return SectionManager;
}();




// CONCATENATED MODULE: ./node_modules/react-virtualized/dist/es/Collection/utils/calculateSizeAndPositionData.js

function calculateSizeAndPositionData_calculateSizeAndPositionData(_ref) {
  var cellCount = _ref.cellCount,
      cellSizeAndPositionGetter = _ref.cellSizeAndPositionGetter,
      sectionSize = _ref.sectionSize;
  var cellMetadata = [];
  var sectionManager = new SectionManager_SectionManager(sectionSize);
  var height = 0;
  var width = 0;

  for (var index = 0; index < cellCount; index++) {
    var cellMetadatum = cellSizeAndPositionGetter({
      index: index
    });

    if (cellMetadatum.height == null || isNaN(cellMetadatum.height) || cellMetadatum.width == null || isNaN(cellMetadatum.width) || cellMetadatum.x == null || isNaN(cellMetadatum.x) || cellMetadatum.y == null || isNaN(cellMetadatum.y)) {
      throw Error("Invalid metadata returned for cell ".concat(index, ":\n        x:").concat(cellMetadatum.x, ", y:").concat(cellMetadatum.y, ", width:").concat(cellMetadatum.width, ", height:").concat(cellMetadatum.height));
    }

    height = Math.max(height, cellMetadatum.y + cellMetadatum.height);
    width = Math.max(width, cellMetadatum.x + cellMetadatum.width);
    cellMetadata[index] = cellMetadatum;
    sectionManager.registerCell({
      cellMetadatum: cellMetadatum,
      index: index
    });
  }

  return {
    cellMetadata: cellMetadata,
    height: height,
    sectionManager: sectionManager,
    width: width
  };
}
// CONCATENATED MODULE: ./node_modules/react-virtualized/dist/es/utils/getUpdatedOffsetForIndex.js
/**
 * Determines a new offset that ensures a certain cell is visible, given the current offset.
 * If the cell is already visible then the current offset will be returned.
 * If the current offset is too great or small, it will be adjusted just enough to ensure the specified index is visible.
 *
 * @param align Desired alignment within container; one of "auto" (default), "start", or "end"
 * @param cellOffset Offset (x or y) position for cell
 * @param cellSize Size (width or height) of cell
 * @param containerSize Total size (width or height) of the container
 * @param currentOffset Container's current (x or y) offset
 * @return Offset to use to ensure the specified cell is visible
 */
function getUpdatedOffsetForIndex(_ref) {
  var _ref$align = _ref.align,
      align = _ref$align === void 0 ? 'auto' : _ref$align,
      cellOffset = _ref.cellOffset,
      cellSize = _ref.cellSize,
      containerSize = _ref.containerSize,
      currentOffset = _ref.currentOffset;
  var maxOffset = cellOffset;
  var minOffset = maxOffset - containerSize + cellSize;

  switch (align) {
    case 'start':
      return maxOffset;

    case 'end':
      return minOffset;

    case 'center':
      return maxOffset - (containerSize - cellSize) / 2;

    default:
      return Math.max(minOffset, Math.min(maxOffset, currentOffset));
  }
}
// CONCATENATED MODULE: ./node_modules/react-virtualized/dist/es/Collection/Collection.js













/**
 * Renders scattered or non-linear data.
 * Unlike Grid, which renders checkerboard data, Collection can render arbitrarily positioned- even overlapping- data.
 */

var Collection_Collection = /*#__PURE__*/function (_React$PureComponent) {
  inherits_default()(Collection, _React$PureComponent);

  function Collection(props, context) {
    var _this;

    classCallCheck_default()(this, Collection);

    _this = possibleConstructorReturn_default()(this, getPrototypeOf_default()(Collection).call(this, props, context));
    _this._cellMetadata = [];
    _this._lastRenderedCellIndices = []; // Cell cache during scroll (for performance)

    _this._cellCache = [];
    _this._isScrollingChange = _this._isScrollingChange.bind(assertThisInitialized_default()(_this));
    _this._setCollectionViewRef = _this._setCollectionViewRef.bind(assertThisInitialized_default()(_this));
    return _this;
  }

  createClass_default()(Collection, [{
    key: "forceUpdate",
    value: function forceUpdate() {
      if (this._collectionView !== undefined) {
        this._collectionView.forceUpdate();
      }
    }
    /** See Collection#recomputeCellSizesAndPositions */

  }, {
    key: "recomputeCellSizesAndPositions",
    value: function recomputeCellSizesAndPositions() {
      this._cellCache = [];

      this._collectionView.recomputeCellSizesAndPositions();
    }
    /** React lifecycle methods */

  }, {
    key: "render",
    value: function render() {
      var props = extends_default()({}, this.props);

      return react["createElement"](Collection_CollectionView, extends_default()({
        cellLayoutManager: this,
        isScrollingChange: this._isScrollingChange,
        ref: this._setCollectionViewRef
      }, props));
    }
    /** CellLayoutManager interface */

  }, {
    key: "calculateSizeAndPositionData",
    value: function calculateSizeAndPositionData() {
      var _this$props = this.props,
          cellCount = _this$props.cellCount,
          cellSizeAndPositionGetter = _this$props.cellSizeAndPositionGetter,
          sectionSize = _this$props.sectionSize;

      var data = calculateSizeAndPositionData_calculateSizeAndPositionData({
        cellCount: cellCount,
        cellSizeAndPositionGetter: cellSizeAndPositionGetter,
        sectionSize: sectionSize
      });

      this._cellMetadata = data.cellMetadata;
      this._sectionManager = data.sectionManager;
      this._height = data.height;
      this._width = data.width;
    }
    /**
     * Returns the most recently rendered set of cell indices.
     */

  }, {
    key: "getLastRenderedIndices",
    value: function getLastRenderedIndices() {
      return this._lastRenderedCellIndices;
    }
    /**
     * Calculates the minimum amount of change from the current scroll position to ensure the specified cell is (fully) visible.
     */

  }, {
    key: "getScrollPositionForCell",
    value: function getScrollPositionForCell(_ref) {
      var align = _ref.align,
          cellIndex = _ref.cellIndex,
          height = _ref.height,
          scrollLeft = _ref.scrollLeft,
          scrollTop = _ref.scrollTop,
          width = _ref.width;
      var cellCount = this.props.cellCount;

      if (cellIndex >= 0 && cellIndex < cellCount) {
        var cellMetadata = this._cellMetadata[cellIndex];
        scrollLeft = getUpdatedOffsetForIndex({
          align: align,
          cellOffset: cellMetadata.x,
          cellSize: cellMetadata.width,
          containerSize: width,
          currentOffset: scrollLeft,
          targetIndex: cellIndex
        });
        scrollTop = getUpdatedOffsetForIndex({
          align: align,
          cellOffset: cellMetadata.y,
          cellSize: cellMetadata.height,
          containerSize: height,
          currentOffset: scrollTop,
          targetIndex: cellIndex
        });
      }

      return {
        scrollLeft: scrollLeft,
        scrollTop: scrollTop
      };
    }
  }, {
    key: "getTotalSize",
    value: function getTotalSize() {
      return {
        height: this._height,
        width: this._width
      };
    }
  }, {
    key: "cellRenderers",
    value: function cellRenderers(_ref2) {
      var _this2 = this;

      var height = _ref2.height,
          isScrolling = _ref2.isScrolling,
          width = _ref2.width,
          x = _ref2.x,
          y = _ref2.y;
      var _this$props2 = this.props,
          cellGroupRenderer = _this$props2.cellGroupRenderer,
          cellRenderer = _this$props2.cellRenderer; // Store for later calls to getLastRenderedIndices()

      this._lastRenderedCellIndices = this._sectionManager.getCellIndices({
        height: height,
        width: width,
        x: x,
        y: y
      });
      return cellGroupRenderer({
        cellCache: this._cellCache,
        cellRenderer: cellRenderer,
        cellSizeAndPositionGetter: function cellSizeAndPositionGetter(_ref3) {
          var index = _ref3.index;
          return _this2._sectionManager.getCellMetadata({
            index: index
          });
        },
        indices: this._lastRenderedCellIndices,
        isScrolling: isScrolling
      });
    }
  }, {
    key: "_isScrollingChange",
    value: function _isScrollingChange(isScrolling) {
      if (!isScrolling) {
        this._cellCache = [];
      }
    }
  }, {
    key: "_setCollectionViewRef",
    value: function _setCollectionViewRef(ref) {
      this._collectionView = ref;
    }
  }]);

  return Collection;
}(react["PureComponent"]);

defineProperty_default()(Collection_Collection, "defaultProps", {
  'aria-label': 'grid',
  cellGroupRenderer: defaultCellGroupRenderer
});


Collection_Collection.propTypes =  false ? undefined : {};

function defaultCellGroupRenderer(_ref4) {
  var cellCache = _ref4.cellCache,
      cellRenderer = _ref4.cellRenderer,
      cellSizeAndPositionGetter = _ref4.cellSizeAndPositionGetter,
      indices = _ref4.indices,
      isScrolling = _ref4.isScrolling;
  return indices.map(function (index) {
    var cellMetadata = cellSizeAndPositionGetter({
      index: index
    });
    var cellRendererProps = {
      index: index,
      isScrolling: isScrolling,
      key: index,
      style: {
        height: cellMetadata.height,
        left: cellMetadata.x,
        position: 'absolute',
        top: cellMetadata.y,
        width: cellMetadata.width
      }
    }; // Avoid re-creating cells while scrolling.
    // This can lead to the same cell being created many times and can cause performance issues for "heavy" cells.
    // If a scroll is in progress- cache and reuse cells.
    // This cache will be thrown away once scrolling complets.

    if (isScrolling) {
      if (!(index in cellCache)) {
        cellCache[index] = cellRenderer(cellRendererProps);
      }

      return cellCache[index];
    } else {
      return cellRenderer(cellRendererProps);
    }
  }).filter(function (renderedCell) {
    return !!renderedCell;
  });
}



// CONCATENATED MODULE: ./node_modules/react-virtualized/dist/es/Collection/index.js

/* harmony default export */ var es_Collection = (Collection_Collection);

// CONCATENATED MODULE: ./node_modules/react-virtualized/dist/es/ColumnSizer/ColumnSizer.js








/**
 * High-order component that auto-calculates column-widths for `Grid` cells.
 */

var ColumnSizer_ColumnSizer = /*#__PURE__*/function (_React$PureComponent) {
  inherits_default()(ColumnSizer, _React$PureComponent);

  function ColumnSizer(props, context) {
    var _this;

    classCallCheck_default()(this, ColumnSizer);

    _this = possibleConstructorReturn_default()(this, getPrototypeOf_default()(ColumnSizer).call(this, props, context));
    _this._registerChild = _this._registerChild.bind(assertThisInitialized_default()(_this));
    return _this;
  }

  createClass_default()(ColumnSizer, [{
    key: "componentDidUpdate",
    value: function componentDidUpdate(prevProps) {
      var _this$props = this.props,
          columnMaxWidth = _this$props.columnMaxWidth,
          columnMinWidth = _this$props.columnMinWidth,
          columnCount = _this$props.columnCount,
          width = _this$props.width;

      if (columnMaxWidth !== prevProps.columnMaxWidth || columnMinWidth !== prevProps.columnMinWidth || columnCount !== prevProps.columnCount || width !== prevProps.width) {
        if (this._registeredChild) {
          this._registeredChild.recomputeGridSize();
        }
      }
    }
  }, {
    key: "render",
    value: function render() {
      var _this$props2 = this.props,
          children = _this$props2.children,
          columnMaxWidth = _this$props2.columnMaxWidth,
          columnMinWidth = _this$props2.columnMinWidth,
          columnCount = _this$props2.columnCount,
          width = _this$props2.width;
      var safeColumnMinWidth = columnMinWidth || 1;
      var safeColumnMaxWidth = columnMaxWidth ? Math.min(columnMaxWidth, width) : width;
      var columnWidth = width / columnCount;
      columnWidth = Math.max(safeColumnMinWidth, columnWidth);
      columnWidth = Math.min(safeColumnMaxWidth, columnWidth);
      columnWidth = Math.floor(columnWidth);
      var adjustedWidth = Math.min(width, columnWidth * columnCount);
      return children({
        adjustedWidth: adjustedWidth,
        columnWidth: columnWidth,
        getColumnWidth: function getColumnWidth() {
          return columnWidth;
        },
        registerChild: this._registerChild
      });
    }
  }, {
    key: "_registerChild",
    value: function _registerChild(child) {
      if (child && typeof child.recomputeGridSize !== 'function') {
        throw Error('Unexpected child type registered; only Grid/MultiGrid children are supported.');
      }

      this._registeredChild = child;

      if (this._registeredChild) {
        this._registeredChild.recomputeGridSize();
      }
    }
  }]);

  return ColumnSizer;
}(react["PureComponent"]);


ColumnSizer_ColumnSizer.propTypes =  false ? undefined : {};
// CONCATENATED MODULE: ./node_modules/react-virtualized/dist/es/ColumnSizer/index.js

/* harmony default export */ var es_ColumnSizer = (ColumnSizer_ColumnSizer);

// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/toConsumableArray.js
var toConsumableArray = __webpack_require__("RIqP");
var toConsumableArray_default = /*#__PURE__*/__webpack_require__.n(toConsumableArray);

// CONCATENATED MODULE: ./node_modules/react-virtualized/dist/es/InfiniteLoader/InfiniteLoader.js











/**
 * Higher-order component that manages lazy-loading for "infinite" data.
 * This component decorates a virtual component and just-in-time prefetches rows as a user scrolls.
 * It is intended as a convenience component; fork it if you'd like finer-grained control over data-loading.
 */

var InfiniteLoader_InfiniteLoader = /*#__PURE__*/function (_React$PureComponent) {
  inherits_default()(InfiniteLoader, _React$PureComponent);

  function InfiniteLoader(props, context) {
    var _this;

    classCallCheck_default()(this, InfiniteLoader);

    _this = possibleConstructorReturn_default()(this, getPrototypeOf_default()(InfiniteLoader).call(this, props, context));
    _this._loadMoreRowsMemoizer = createCallbackMemoizer();
    _this._onRowsRendered = _this._onRowsRendered.bind(assertThisInitialized_default()(_this));
    _this._registerChild = _this._registerChild.bind(assertThisInitialized_default()(_this));
    return _this;
  }

  createClass_default()(InfiniteLoader, [{
    key: "resetLoadMoreRowsCache",
    value: function resetLoadMoreRowsCache(autoReload) {
      this._loadMoreRowsMemoizer = createCallbackMemoizer();

      if (autoReload) {
        this._doStuff(this._lastRenderedStartIndex, this._lastRenderedStopIndex);
      }
    }
  }, {
    key: "render",
    value: function render() {
      var children = this.props.children;
      return children({
        onRowsRendered: this._onRowsRendered,
        registerChild: this._registerChild
      });
    }
  }, {
    key: "_loadUnloadedRanges",
    value: function _loadUnloadedRanges(unloadedRanges) {
      var _this2 = this;

      var loadMoreRows = this.props.loadMoreRows;
      unloadedRanges.forEach(function (unloadedRange) {
        var promise = loadMoreRows(unloadedRange);

        if (promise) {
          promise.then(function () {
            // Refresh the visible rows if any of them have just been loaded.
            // Otherwise they will remain in their unloaded visual state.
            if (isRangeVisible({
              lastRenderedStartIndex: _this2._lastRenderedStartIndex,
              lastRenderedStopIndex: _this2._lastRenderedStopIndex,
              startIndex: unloadedRange.startIndex,
              stopIndex: unloadedRange.stopIndex
            })) {
              if (_this2._registeredChild) {
                forceUpdateReactVirtualizedComponent(_this2._registeredChild, _this2._lastRenderedStartIndex);
              }
            }
          });
        }
      });
    }
  }, {
    key: "_onRowsRendered",
    value: function _onRowsRendered(_ref) {
      var startIndex = _ref.startIndex,
          stopIndex = _ref.stopIndex;
      this._lastRenderedStartIndex = startIndex;
      this._lastRenderedStopIndex = stopIndex;

      this._doStuff(startIndex, stopIndex);
    }
  }, {
    key: "_doStuff",
    value: function _doStuff(startIndex, stopIndex) {
      var _ref2,
          _this3 = this;

      var _this$props = this.props,
          isRowLoaded = _this$props.isRowLoaded,
          minimumBatchSize = _this$props.minimumBatchSize,
          rowCount = _this$props.rowCount,
          threshold = _this$props.threshold;
      var unloadedRanges = scanForUnloadedRanges({
        isRowLoaded: isRowLoaded,
        minimumBatchSize: minimumBatchSize,
        rowCount: rowCount,
        startIndex: Math.max(0, startIndex - threshold),
        stopIndex: Math.min(rowCount - 1, stopIndex + threshold)
      }); // For memoize comparison

      var squashedUnloadedRanges = (_ref2 = []).concat.apply(_ref2, toConsumableArray_default()(unloadedRanges.map(function (_ref3) {
        var startIndex = _ref3.startIndex,
            stopIndex = _ref3.stopIndex;
        return [startIndex, stopIndex];
      })));

      this._loadMoreRowsMemoizer({
        callback: function callback() {
          _this3._loadUnloadedRanges(unloadedRanges);
        },
        indices: {
          squashedUnloadedRanges: squashedUnloadedRanges
        }
      });
    }
  }, {
    key: "_registerChild",
    value: function _registerChild(registeredChild) {
      this._registeredChild = registeredChild;
    }
  }]);

  return InfiniteLoader;
}(react["PureComponent"]);
/**
 * Determines if the specified start/stop range is visible based on the most recently rendered range.
 */


defineProperty_default()(InfiniteLoader_InfiniteLoader, "defaultProps", {
  minimumBatchSize: 10,
  rowCount: 0,
  threshold: 15
});


InfiniteLoader_InfiniteLoader.propTypes =  false ? undefined : {};
function isRangeVisible(_ref4) {
  var lastRenderedStartIndex = _ref4.lastRenderedStartIndex,
      lastRenderedStopIndex = _ref4.lastRenderedStopIndex,
      startIndex = _ref4.startIndex,
      stopIndex = _ref4.stopIndex;
  return !(startIndex > lastRenderedStopIndex || stopIndex < lastRenderedStartIndex);
}
/**
 * Returns all of the ranges within a larger range that contain unloaded rows.
 */

function scanForUnloadedRanges(_ref5) {
  var isRowLoaded = _ref5.isRowLoaded,
      minimumBatchSize = _ref5.minimumBatchSize,
      rowCount = _ref5.rowCount,
      startIndex = _ref5.startIndex,
      stopIndex = _ref5.stopIndex;
  var unloadedRanges = [];
  var rangeStartIndex = null;
  var rangeStopIndex = null;

  for (var index = startIndex; index <= stopIndex; index++) {
    var loaded = isRowLoaded({
      index: index
    });

    if (!loaded) {
      rangeStopIndex = index;

      if (rangeStartIndex === null) {
        rangeStartIndex = index;
      }
    } else if (rangeStopIndex !== null) {
      unloadedRanges.push({
        startIndex: rangeStartIndex,
        stopIndex: rangeStopIndex
      });
      rangeStartIndex = rangeStopIndex = null;
    }
  } // If :rangeStopIndex is not null it means we haven't ran out of unloaded rows.
  // Scan forward to try filling our :minimumBatchSize.


  if (rangeStopIndex !== null) {
    var potentialStopIndex = Math.min(Math.max(rangeStopIndex, rangeStartIndex + minimumBatchSize - 1), rowCount - 1);

    for (var _index = rangeStopIndex + 1; _index <= potentialStopIndex; _index++) {
      if (!isRowLoaded({
        index: _index
      })) {
        rangeStopIndex = _index;
      } else {
        break;
      }
    }

    unloadedRanges.push({
      startIndex: rangeStartIndex,
      stopIndex: rangeStopIndex
    });
  } // Check to see if our first range ended prematurely.
  // In this case we should scan backwards to try filling our :minimumBatchSize.


  if (unloadedRanges.length) {
    var firstUnloadedRange = unloadedRanges[0];

    while (firstUnloadedRange.stopIndex - firstUnloadedRange.startIndex + 1 < minimumBatchSize && firstUnloadedRange.startIndex > 0) {
      var _index2 = firstUnloadedRange.startIndex - 1;

      if (!isRowLoaded({
        index: _index2
      })) {
        firstUnloadedRange.startIndex = _index2;
      } else {
        break;
      }
    }
  }

  return unloadedRanges;
}
/**
 * Since RV components use shallowCompare we need to force a render (even though props haven't changed).
 * However InfiniteLoader may wrap a Grid or it may wrap a Table or List.
 * In the first case the built-in React forceUpdate() method is sufficient to force a re-render,
 * But in the latter cases we need to use the RV-specific forceUpdateGrid() method.
 * Else the inner Grid will not be re-rendered and visuals may be stale.
 *
 * Additionally, while a Grid is scrolling the cells can be cached,
 * So it's important to invalidate that cache by recalculating sizes
 * before forcing a rerender.
 */

function forceUpdateReactVirtualizedComponent(component) {
  var currentIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
  var recomputeSize = typeof component.recomputeGridSize === 'function' ? component.recomputeGridSize : component.recomputeRowHeights;

  if (recomputeSize) {
    recomputeSize.call(component, currentIndex);
  } else {
    component.forceUpdate();
  }
}
// CONCATENATED MODULE: ./node_modules/react-virtualized/dist/es/InfiniteLoader/index.js

/* harmony default export */ var es_InfiniteLoader = (InfiniteLoader_InfiniteLoader);

// CONCATENATED MODULE: ./node_modules/react-virtualized/dist/es/List/types.js

var bpfrpt_proptype_RowRendererParams =  true ? null : undefined;
var bpfrpt_proptype_RowRenderer =  true ? null : undefined;
var bpfrpt_proptype_RenderedRows =  true ? null : undefined;
var types_bpfrpt_proptype_Scroll =  true ? null : undefined;





// CONCATENATED MODULE: ./node_modules/react-virtualized/dist/es/List/List.js









var List_class, List_temp;




/**
 * It is inefficient to create and manage a large list of DOM elements within a scrolling container
 * if only a few of those elements are visible. The primary purpose of this component is to improve
 * performance by only rendering the DOM nodes that a user is able to see based on their current
 * scroll position.
 *
 * This component renders a virtualized list of elements with either fixed or dynamic heights.
 */

var List_List = (List_temp = List_class = /*#__PURE__*/function (_React$PureComponent) {
  inherits_default()(List, _React$PureComponent);

  function List() {
    var _getPrototypeOf2;

    var _this;

    classCallCheck_default()(this, List);

    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    _this = possibleConstructorReturn_default()(this, (_getPrototypeOf2 = getPrototypeOf_default()(List)).call.apply(_getPrototypeOf2, [this].concat(args)));

    defineProperty_default()(assertThisInitialized_default()(_this), "Grid", void 0);

    defineProperty_default()(assertThisInitialized_default()(_this), "_cellRenderer", function (_ref) {
      var parent = _ref.parent,
          rowIndex = _ref.rowIndex,
          style = _ref.style,
          isScrolling = _ref.isScrolling,
          isVisible = _ref.isVisible,
          key = _ref.key;
      var rowRenderer = _this.props.rowRenderer; // TRICKY The style object is sometimes cached by Grid.
      // This prevents new style objects from bypassing shallowCompare().
      // However as of React 16, style props are auto-frozen (at least in dev mode)
      // Check to make sure we can still modify the style before proceeding.
      // https://github.com/facebook/react/commit/977357765b44af8ff0cfea327866861073095c12#commitcomment-20648713

      var widthDescriptor = Object.getOwnPropertyDescriptor(style, 'width');

      if (widthDescriptor && widthDescriptor.writable) {
        // By default, List cells should be 100% width.
        // This prevents them from flowing under a scrollbar (if present).
        style.width = '100%';
      }

      return rowRenderer({
        index: rowIndex,
        style: style,
        isScrolling: isScrolling,
        isVisible: isVisible,
        key: key,
        parent: parent
      });
    });

    defineProperty_default()(assertThisInitialized_default()(_this), "_setRef", function (ref) {
      _this.Grid = ref;
    });

    defineProperty_default()(assertThisInitialized_default()(_this), "_onScroll", function (_ref2) {
      var clientHeight = _ref2.clientHeight,
          scrollHeight = _ref2.scrollHeight,
          scrollTop = _ref2.scrollTop;
      var onScroll = _this.props.onScroll;
      onScroll({
        clientHeight: clientHeight,
        scrollHeight: scrollHeight,
        scrollTop: scrollTop
      });
    });

    defineProperty_default()(assertThisInitialized_default()(_this), "_onSectionRendered", function (_ref3) {
      var rowOverscanStartIndex = _ref3.rowOverscanStartIndex,
          rowOverscanStopIndex = _ref3.rowOverscanStopIndex,
          rowStartIndex = _ref3.rowStartIndex,
          rowStopIndex = _ref3.rowStopIndex;
      var onRowsRendered = _this.props.onRowsRendered;
      onRowsRendered({
        overscanStartIndex: rowOverscanStartIndex,
        overscanStopIndex: rowOverscanStopIndex,
        startIndex: rowStartIndex,
        stopIndex: rowStopIndex
      });
    });

    return _this;
  }

  createClass_default()(List, [{
    key: "forceUpdateGrid",
    value: function forceUpdateGrid() {
      if (this.Grid) {
        this.Grid.forceUpdate();
      }
    }
    /** See Grid#getOffsetForCell */

  }, {
    key: "getOffsetForRow",
    value: function getOffsetForRow(_ref4) {
      var alignment = _ref4.alignment,
          index = _ref4.index;

      if (this.Grid) {
        var _this$Grid$getOffsetF = this.Grid.getOffsetForCell({
          alignment: alignment,
          rowIndex: index,
          columnIndex: 0
        }),
            scrollTop = _this$Grid$getOffsetF.scrollTop;

        return scrollTop;
      }

      return 0;
    }
    /** CellMeasurer compatibility */

  }, {
    key: "invalidateCellSizeAfterRender",
    value: function invalidateCellSizeAfterRender(_ref5) {
      var columnIndex = _ref5.columnIndex,
          rowIndex = _ref5.rowIndex;

      if (this.Grid) {
        this.Grid.invalidateCellSizeAfterRender({
          rowIndex: rowIndex,
          columnIndex: columnIndex
        });
      }
    }
    /** See Grid#measureAllCells */

  }, {
    key: "measureAllRows",
    value: function measureAllRows() {
      if (this.Grid) {
        this.Grid.measureAllCells();
      }
    }
    /** CellMeasurer compatibility */

  }, {
    key: "recomputeGridSize",
    value: function recomputeGridSize() {
      var _ref6 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
          _ref6$columnIndex = _ref6.columnIndex,
          columnIndex = _ref6$columnIndex === void 0 ? 0 : _ref6$columnIndex,
          _ref6$rowIndex = _ref6.rowIndex,
          rowIndex = _ref6$rowIndex === void 0 ? 0 : _ref6$rowIndex;

      if (this.Grid) {
        this.Grid.recomputeGridSize({
          rowIndex: rowIndex,
          columnIndex: columnIndex
        });
      }
    }
    /** See Grid#recomputeGridSize */

  }, {
    key: "recomputeRowHeights",
    value: function recomputeRowHeights() {
      var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;

      if (this.Grid) {
        this.Grid.recomputeGridSize({
          rowIndex: index,
          columnIndex: 0
        });
      }
    }
    /** See Grid#scrollToPosition */

  }, {
    key: "scrollToPosition",
    value: function scrollToPosition() {
      var scrollTop = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;

      if (this.Grid) {
        this.Grid.scrollToPosition({
          scrollTop: scrollTop
        });
      }
    }
    /** See Grid#scrollToCell */

  }, {
    key: "scrollToRow",
    value: function scrollToRow() {
      var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;

      if (this.Grid) {
        this.Grid.scrollToCell({
          columnIndex: 0,
          rowIndex: index
        });
      }
    }
  }, {
    key: "render",
    value: function render() {
      var _this$props = this.props,
          className = _this$props.className,
          noRowsRenderer = _this$props.noRowsRenderer,
          scrollToIndex = _this$props.scrollToIndex,
          width = _this$props.width;
      var classNames = Object(clsx_m["a" /* default */])('ReactVirtualized__List', className);
      return react["createElement"](es_Grid_Grid, extends_default()({}, this.props, {
        autoContainerWidth: true,
        cellRenderer: this._cellRenderer,
        className: classNames,
        columnWidth: width,
        columnCount: 1,
        noContentRenderer: noRowsRenderer,
        onScroll: this._onScroll,
        onSectionRendered: this._onSectionRendered,
        ref: this._setRef,
        scrollToRow: scrollToIndex
      }));
    }
  }]);

  return List;
}(react["PureComponent"]), defineProperty_default()(List_class, "propTypes",  true ? null : undefined), List_temp);

defineProperty_default()(List_List, "defaultProps", {
  autoHeight: false,
  estimatedRowSize: 30,
  onScroll: function onScroll() {},
  noRowsRenderer: function noRowsRenderer() {
    return null;
  },
  onRowsRendered: function onRowsRendered() {},
  overscanIndicesGetter: accessibilityOverscanIndicesGetter_defaultOverscanIndicesGetter,
  overscanRowCount: 10,
  scrollToAlignment: 'auto',
  scrollToIndex: -1,
  style: {}
});














// CONCATENATED MODULE: ./node_modules/react-virtualized/dist/es/List/index.js




// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/slicedToArray.js
var slicedToArray = __webpack_require__("J4zp");
var slicedToArray_default = /*#__PURE__*/__webpack_require__.n(slicedToArray);

// CONCATENATED MODULE: ./node_modules/react-virtualized/dist/es/vendor/binarySearchBounds.js
/**
 * Binary Search Bounds
 * https://github.com/mikolalysenko/binary-search-bounds
 * Mikola Lysenko
 *
 * Inlined because of Content Security Policy issue caused by the use of `new Function(...)` syntax.
 * Issue reported here: https://github.com/mikolalysenko/binary-search-bounds/issues/5
 **/
function _GEA(a, l, h, y) {
  var i = h + 1;

  while (l <= h) {
    var m = l + h >>> 1,
        x = a[m];

    if (x >= y) {
      i = m;
      h = m - 1;
    } else {
      l = m + 1;
    }
  }

  return i;
}

function _GEP(a, l, h, y, c) {
  var i = h + 1;

  while (l <= h) {
    var m = l + h >>> 1,
        x = a[m];

    if (c(x, y) >= 0) {
      i = m;
      h = m - 1;
    } else {
      l = m + 1;
    }
  }

  return i;
}

function dispatchBsearchGE(a, y, c, l, h) {
  if (typeof c === 'function') {
    return _GEP(a, l === void 0 ? 0 : l | 0, h === void 0 ? a.length - 1 : h | 0, y, c);
  } else {
    return _GEA(a, c === void 0 ? 0 : c | 0, l === void 0 ? a.length - 1 : l | 0, y);
  }
}

function _GTA(a, l, h, y) {
  var i = h + 1;

  while (l <= h) {
    var m = l + h >>> 1,
        x = a[m];

    if (x > y) {
      i = m;
      h = m - 1;
    } else {
      l = m + 1;
    }
  }

  return i;
}

function _GTP(a, l, h, y, c) {
  var i = h + 1;

  while (l <= h) {
    var m = l + h >>> 1,
        x = a[m];

    if (c(x, y) > 0) {
      i = m;
      h = m - 1;
    } else {
      l = m + 1;
    }
  }

  return i;
}

function dispatchBsearchGT(a, y, c, l, h) {
  if (typeof c === 'function') {
    return _GTP(a, l === void 0 ? 0 : l | 0, h === void 0 ? a.length - 1 : h | 0, y, c);
  } else {
    return _GTA(a, c === void 0 ? 0 : c | 0, l === void 0 ? a.length - 1 : l | 0, y);
  }
}

function _LTA(a, l, h, y) {
  var i = l - 1;

  while (l <= h) {
    var m = l + h >>> 1,
        x = a[m];

    if (x < y) {
      i = m;
      l = m + 1;
    } else {
      h = m - 1;
    }
  }

  return i;
}

function _LTP(a, l, h, y, c) {
  var i = l - 1;

  while (l <= h) {
    var m = l + h >>> 1,
        x = a[m];

    if (c(x, y) < 0) {
      i = m;
      l = m + 1;
    } else {
      h = m - 1;
    }
  }

  return i;
}

function dispatchBsearchLT(a, y, c, l, h) {
  if (typeof c === 'function') {
    return _LTP(a, l === void 0 ? 0 : l | 0, h === void 0 ? a.length - 1 : h | 0, y, c);
  } else {
    return _LTA(a, c === void 0 ? 0 : c | 0, l === void 0 ? a.length - 1 : l | 0, y);
  }
}

function _LEA(a, l, h, y) {
  var i = l - 1;

  while (l <= h) {
    var m = l + h >>> 1,
        x = a[m];

    if (x <= y) {
      i = m;
      l = m + 1;
    } else {
      h = m - 1;
    }
  }

  return i;
}

function _LEP(a, l, h, y, c) {
  var i = l - 1;

  while (l <= h) {
    var m = l + h >>> 1,
        x = a[m];

    if (c(x, y) <= 0) {
      i = m;
      l = m + 1;
    } else {
      h = m - 1;
    }
  }

  return i;
}

function dispatchBsearchLE(a, y, c, l, h) {
  if (typeof c === 'function') {
    return _LEP(a, l === void 0 ? 0 : l | 0, h === void 0 ? a.length - 1 : h | 0, y, c);
  } else {
    return _LEA(a, c === void 0 ? 0 : c | 0, l === void 0 ? a.length - 1 : l | 0, y);
  }
}

function _EQA(a, l, h, y) {
  l - 1;

  while (l <= h) {
    var m = l + h >>> 1,
        x = a[m];

    if (x === y) {
      return m;
    } else if (x <= y) {
      l = m + 1;
    } else {
      h = m - 1;
    }
  }

  return -1;
}

function _EQP(a, l, h, y, c) {
  l - 1;

  while (l <= h) {
    var m = l + h >>> 1,
        x = a[m];
    var p = c(x, y);

    if (p === 0) {
      return m;
    } else if (p <= 0) {
      l = m + 1;
    } else {
      h = m - 1;
    }
  }

  return -1;
}

function dispatchBsearchEQ(a, y, c, l, h) {
  if (typeof c === 'function') {
    return _EQP(a, l === void 0 ? 0 : l | 0, h === void 0 ? a.length - 1 : h | 0, y, c);
  } else {
    return _EQA(a, c === void 0 ? 0 : c | 0, l === void 0 ? a.length - 1 : l | 0, y);
  }
}

/* harmony default export */ var binarySearchBounds = ({
  ge: dispatchBsearchGE,
  gt: dispatchBsearchGT,
  lt: dispatchBsearchLT,
  le: dispatchBsearchLE,
  eq: dispatchBsearchEQ
});
// CONCATENATED MODULE: ./node_modules/react-virtualized/dist/es/vendor/intervalTree.js
/**
 * Binary Search Bounds
 * https://github.com/mikolalysenko/interval-tree-1d
 * Mikola Lysenko
 *
 * Inlined because of Content Security Policy issue caused by the use of `new Function(...)` syntax in an upstream dependency.
 * Issue reported here: https://github.com/mikolalysenko/binary-search-bounds/issues/5
 **/

var NOT_FOUND = 0;
var SUCCESS = 1;
var EMPTY = 2;

function IntervalTreeNode(mid, left, right, leftPoints, rightPoints) {
  this.mid = mid;
  this.left = left;
  this.right = right;
  this.leftPoints = leftPoints;
  this.rightPoints = rightPoints;
  this.count = (left ? left.count : 0) + (right ? right.count : 0) + leftPoints.length;
}

var proto = IntervalTreeNode.prototype;

function copy(a, b) {
  a.mid = b.mid;
  a.left = b.left;
  a.right = b.right;
  a.leftPoints = b.leftPoints;
  a.rightPoints = b.rightPoints;
  a.count = b.count;
}

function rebuild(node, intervals) {
  var ntree = createIntervalTree(intervals);
  node.mid = ntree.mid;
  node.left = ntree.left;
  node.right = ntree.right;
  node.leftPoints = ntree.leftPoints;
  node.rightPoints = ntree.rightPoints;
  node.count = ntree.count;
}

function rebuildWithInterval(node, interval) {
  var intervals = node.intervals([]);
  intervals.push(interval);
  rebuild(node, intervals);
}

function rebuildWithoutInterval(node, interval) {
  var intervals = node.intervals([]);
  var idx = intervals.indexOf(interval);

  if (idx < 0) {
    return NOT_FOUND;
  }

  intervals.splice(idx, 1);
  rebuild(node, intervals);
  return SUCCESS;
}

proto.intervals = function (result) {
  result.push.apply(result, this.leftPoints);

  if (this.left) {
    this.left.intervals(result);
  }

  if (this.right) {
    this.right.intervals(result);
  }

  return result;
};

proto.insert = function (interval) {
  var weight = this.count - this.leftPoints.length;
  this.count += 1;

  if (interval[1] < this.mid) {
    if (this.left) {
      if (4 * (this.left.count + 1) > 3 * (weight + 1)) {
        rebuildWithInterval(this, interval);
      } else {
        this.left.insert(interval);
      }
    } else {
      this.left = createIntervalTree([interval]);
    }
  } else if (interval[0] > this.mid) {
    if (this.right) {
      if (4 * (this.right.count + 1) > 3 * (weight + 1)) {
        rebuildWithInterval(this, interval);
      } else {
        this.right.insert(interval);
      }
    } else {
      this.right = createIntervalTree([interval]);
    }
  } else {
    var l = binarySearchBounds.ge(this.leftPoints, interval, compareBegin);
    var r = binarySearchBounds.ge(this.rightPoints, interval, compareEnd);
    this.leftPoints.splice(l, 0, interval);
    this.rightPoints.splice(r, 0, interval);
  }
};

proto.remove = function (interval) {
  var weight = this.count - this.leftPoints;

  if (interval[1] < this.mid) {
    if (!this.left) {
      return NOT_FOUND;
    }

    var rw = this.right ? this.right.count : 0;

    if (4 * rw > 3 * (weight - 1)) {
      return rebuildWithoutInterval(this, interval);
    }

    var r = this.left.remove(interval);

    if (r === EMPTY) {
      this.left = null;
      this.count -= 1;
      return SUCCESS;
    } else if (r === SUCCESS) {
      this.count -= 1;
    }

    return r;
  } else if (interval[0] > this.mid) {
    if (!this.right) {
      return NOT_FOUND;
    }

    var lw = this.left ? this.left.count : 0;

    if (4 * lw > 3 * (weight - 1)) {
      return rebuildWithoutInterval(this, interval);
    }

    var r = this.right.remove(interval);

    if (r === EMPTY) {
      this.right = null;
      this.count -= 1;
      return SUCCESS;
    } else if (r === SUCCESS) {
      this.count -= 1;
    }

    return r;
  } else {
    if (this.count === 1) {
      if (this.leftPoints[0] === interval) {
        return EMPTY;
      } else {
        return NOT_FOUND;
      }
    }

    if (this.leftPoints.length === 1 && this.leftPoints[0] === interval) {
      if (this.left && this.right) {
        var p = this;
        var n = this.left;

        while (n.right) {
          p = n;
          n = n.right;
        }

        if (p === this) {
          n.right = this.right;
        } else {
          var l = this.left;
          var r = this.right;
          p.count -= n.count;
          p.right = n.left;
          n.left = l;
          n.right = r;
        }

        copy(this, n);
        this.count = (this.left ? this.left.count : 0) + (this.right ? this.right.count : 0) + this.leftPoints.length;
      } else if (this.left) {
        copy(this, this.left);
      } else {
        copy(this, this.right);
      }

      return SUCCESS;
    }

    for (var l = binarySearchBounds.ge(this.leftPoints, interval, compareBegin); l < this.leftPoints.length; ++l) {
      if (this.leftPoints[l][0] !== interval[0]) {
        break;
      }

      if (this.leftPoints[l] === interval) {
        this.count -= 1;
        this.leftPoints.splice(l, 1);

        for (var r = binarySearchBounds.ge(this.rightPoints, interval, compareEnd); r < this.rightPoints.length; ++r) {
          if (this.rightPoints[r][1] !== interval[1]) {
            break;
          } else if (this.rightPoints[r] === interval) {
            this.rightPoints.splice(r, 1);
            return SUCCESS;
          }
        }
      }
    }

    return NOT_FOUND;
  }
};

function reportLeftRange(arr, hi, cb) {
  for (var i = 0; i < arr.length && arr[i][0] <= hi; ++i) {
    var r = cb(arr[i]);

    if (r) {
      return r;
    }
  }
}

function reportRightRange(arr, lo, cb) {
  for (var i = arr.length - 1; i >= 0 && arr[i][1] >= lo; --i) {
    var r = cb(arr[i]);

    if (r) {
      return r;
    }
  }
}

function reportRange(arr, cb) {
  for (var i = 0; i < arr.length; ++i) {
    var r = cb(arr[i]);

    if (r) {
      return r;
    }
  }
}

proto.queryPoint = function (x, cb) {
  if (x < this.mid) {
    if (this.left) {
      var r = this.left.queryPoint(x, cb);

      if (r) {
        return r;
      }
    }

    return reportLeftRange(this.leftPoints, x, cb);
  } else if (x > this.mid) {
    if (this.right) {
      var r = this.right.queryPoint(x, cb);

      if (r) {
        return r;
      }
    }

    return reportRightRange(this.rightPoints, x, cb);
  } else {
    return reportRange(this.leftPoints, cb);
  }
};

proto.queryInterval = function (lo, hi, cb) {
  if (lo < this.mid && this.left) {
    var r = this.left.queryInterval(lo, hi, cb);

    if (r) {
      return r;
    }
  }

  if (hi > this.mid && this.right) {
    var r = this.right.queryInterval(lo, hi, cb);

    if (r) {
      return r;
    }
  }

  if (hi < this.mid) {
    return reportLeftRange(this.leftPoints, hi, cb);
  } else if (lo > this.mid) {
    return reportRightRange(this.rightPoints, lo, cb);
  } else {
    return reportRange(this.leftPoints, cb);
  }
};

function compareNumbers(a, b) {
  return a - b;
}

function compareBegin(a, b) {
  var d = a[0] - b[0];

  if (d) {
    return d;
  }

  return a[1] - b[1];
}

function compareEnd(a, b) {
  var d = a[1] - b[1];

  if (d) {
    return d;
  }

  return a[0] - b[0];
}

function createIntervalTree(intervals) {
  if (intervals.length === 0) {
    return null;
  }

  var pts = [];

  for (var i = 0; i < intervals.length; ++i) {
    pts.push(intervals[i][0], intervals[i][1]);
  }

  pts.sort(compareNumbers);
  var mid = pts[pts.length >> 1];
  var leftIntervals = [];
  var rightIntervals = [];
  var centerIntervals = [];

  for (var i = 0; i < intervals.length; ++i) {
    var s = intervals[i];

    if (s[1] < mid) {
      leftIntervals.push(s);
    } else if (mid < s[0]) {
      rightIntervals.push(s);
    } else {
      centerIntervals.push(s);
    }
  } //Split center intervals


  var leftPoints = centerIntervals;
  var rightPoints = centerIntervals.slice();
  leftPoints.sort(compareBegin);
  rightPoints.sort(compareEnd);
  return new IntervalTreeNode(mid, createIntervalTree(leftIntervals), createIntervalTree(rightIntervals), leftPoints, rightPoints);
} //User friendly wrapper that makes it possible to support empty trees


function IntervalTree(root) {
  this.root = root;
}

var tproto = IntervalTree.prototype;

tproto.insert = function (interval) {
  if (this.root) {
    this.root.insert(interval);
  } else {
    this.root = new IntervalTreeNode(interval[0], null, null, [interval], [interval]);
  }
};

tproto.remove = function (interval) {
  if (this.root) {
    var r = this.root.remove(interval);

    if (r === EMPTY) {
      this.root = null;
    }

    return r !== NOT_FOUND;
  }

  return false;
};

tproto.queryPoint = function (p, cb) {
  if (this.root) {
    return this.root.queryPoint(p, cb);
  }
};

tproto.queryInterval = function (lo, hi, cb) {
  if (lo <= hi && this.root) {
    return this.root.queryInterval(lo, hi, cb);
  }
};

Object.defineProperty(tproto, 'count', {
  get: function get() {
    if (this.root) {
      return this.root.count;
    }

    return 0;
  }
});
Object.defineProperty(tproto, 'intervals', {
  get: function get() {
    if (this.root) {
      return this.root.intervals([]);
    }

    return [];
  }
});
function createWrapper(intervals) {
  if (!intervals || intervals.length === 0) {
    return new IntervalTree(null);
  }

  return new IntervalTree(createIntervalTree(intervals));
}
// CONCATENATED MODULE: ./node_modules/react-virtualized/dist/es/Masonry/PositionCache.js




 // Position cache requirements:
//   O(log(n)) lookup of cells to render for a given viewport size
//   O(1) lookup of shortest measured column (so we know when to enter phase 1)

var PositionCache_PositionCache = /*#__PURE__*/function () {
  function PositionCache() {
    classCallCheck_default()(this, PositionCache);

    defineProperty_default()(this, "_columnSizeMap", {});

    defineProperty_default()(this, "_intervalTree", createWrapper());

    defineProperty_default()(this, "_leftMap", {});
  }

  createClass_default()(PositionCache, [{
    key: "estimateTotalHeight",
    value: function estimateTotalHeight(cellCount, columnCount, defaultCellHeight) {
      var unmeasuredCellCount = cellCount - this.count;
      return this.tallestColumnSize + Math.ceil(unmeasuredCellCount / columnCount) * defaultCellHeight;
    } // Render all cells visible within the viewport range defined.

  }, {
    key: "range",
    value: function range(scrollTop, clientHeight, renderCallback) {
      var _this = this;

      this._intervalTree.queryInterval(scrollTop, scrollTop + clientHeight, function (_ref) {
        var _ref2 = slicedToArray_default()(_ref, 3),
            top = _ref2[0],
            _ = _ref2[1],
            index = _ref2[2];

        return renderCallback(index, _this._leftMap[index], top);
      });
    }
  }, {
    key: "setPosition",
    value: function setPosition(index, left, top, height) {
      this._intervalTree.insert([top, top + height, index]);

      this._leftMap[index] = left;
      var columnSizeMap = this._columnSizeMap;
      var columnHeight = columnSizeMap[left];

      if (columnHeight === undefined) {
        columnSizeMap[left] = top + height;
      } else {
        columnSizeMap[left] = Math.max(columnHeight, top + height);
      }
    }
  }, {
    key: "count",
    get: function get() {
      return this._intervalTree.count;
    }
  }, {
    key: "shortestColumnSize",
    get: function get() {
      var columnSizeMap = this._columnSizeMap;
      var size = 0;

      for (var i in columnSizeMap) {
        var height = columnSizeMap[i];
        size = size === 0 ? height : Math.min(size, height);
      }

      return size;
    }
  }, {
    key: "tallestColumnSize",
    get: function get() {
      var columnSizeMap = this._columnSizeMap;
      var size = 0;

      for (var i in columnSizeMap) {
        var height = columnSizeMap[i];
        size = Math.max(size, height);
      }

      return size;
    }
  }]);

  return PositionCache;
}();


// CONCATENATED MODULE: ./node_modules/react-virtualized/dist/es/Masonry/Masonry.js








var Masonry_class, Masonry_temp;

function Masonry_ownKeys(object, enumerableOnly) {
  var keys = Object.keys(object);

  if (Object.getOwnPropertySymbols) {
    var symbols = Object.getOwnPropertySymbols(object);
    if (enumerableOnly) symbols = symbols.filter(function (sym) {
      return Object.getOwnPropertyDescriptor(object, sym).enumerable;
    });
    keys.push.apply(keys, symbols);
  }

  return keys;
}

function Masonry_objectSpread(target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i] != null ? arguments[i] : {};

    if (i % 2) {
      Masonry_ownKeys(source, true).forEach(function (key) {
        defineProperty_default()(target, key, source[key]);
      });
    } else if (Object.getOwnPropertyDescriptors) {
      Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
    } else {
      Masonry_ownKeys(source).forEach(function (key) {
        Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
      });
    }
  }

  return target;
}






var emptyObject = {};
/**
 * Specifies the number of miliseconds during which to disable pointer events while a scroll is in progress.
 * This improves performance and makes scrolling smoother.
 */

var Masonry_DEFAULT_SCROLLING_RESET_TIME_INTERVAL = 150;
/**
 * This component efficiently displays arbitrarily positioned cells using windowing techniques.
 * Cell position is determined by an injected `cellPositioner` property.
 * Windowing is vertical; this component does not support horizontal scrolling.
 *
 * Rendering occurs in two phases:
 * 1) First pass uses estimated cell sizes (provided by the cache) to determine how many cells to measure in a batch.
 *    Batch size is chosen using a fast, naive layout algorithm that stacks images in order until the viewport has been filled.
 *    After measurement is complete (componentDidMount or componentDidUpdate) this component evaluates positioned cells
 *    in order to determine if another measurement pass is required (eg if actual cell sizes were less than estimated sizes).
 *    All measurements are permanently cached (keyed by `keyMapper`) for performance purposes.
 * 2) Second pass uses the external `cellPositioner` to layout cells.
 *    At this time the positioner has access to cached size measurements for all cells.
 *    The positions it returns are cached by Masonry for fast access later.
 *    Phase one is repeated if the user scrolls beyond the current layout's bounds.
 *    If the layout is invalidated due to eg a resize, cached positions can be cleared using `recomputeCellPositions()`.
 *
 * Animation constraints:
 *   Simple animations are supported (eg translate/slide into place on initial reveal).
 *   More complex animations are not (eg flying from one position to another on resize).
 *
 * Layout constraints:
 *   This component supports multi-column layout.
 *   The height of each item may vary.
 *   The width of each item must not exceed the width of the column it is "in".
 *   The left position of all items within a column must align.
 *   (Items may not span multiple columns.)
 */

var Masonry_Masonry = (Masonry_temp = Masonry_class = /*#__PURE__*/function (_React$PureComponent) {
  inherits_default()(Masonry, _React$PureComponent);

  function Masonry() {
    var _getPrototypeOf2;

    var _this;

    classCallCheck_default()(this, Masonry);

    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    _this = possibleConstructorReturn_default()(this, (_getPrototypeOf2 = getPrototypeOf_default()(Masonry)).call.apply(_getPrototypeOf2, [this].concat(args)));

    defineProperty_default()(assertThisInitialized_default()(_this), "state", {
      isScrolling: false,
      scrollTop: 0
    });

    defineProperty_default()(assertThisInitialized_default()(_this), "_debounceResetIsScrollingId", void 0);

    defineProperty_default()(assertThisInitialized_default()(_this), "_invalidateOnUpdateStartIndex", null);

    defineProperty_default()(assertThisInitialized_default()(_this), "_invalidateOnUpdateStopIndex", null);

    defineProperty_default()(assertThisInitialized_default()(_this), "_positionCache", new PositionCache_PositionCache());

    defineProperty_default()(assertThisInitialized_default()(_this), "_startIndex", null);

    defineProperty_default()(assertThisInitialized_default()(_this), "_startIndexMemoized", null);

    defineProperty_default()(assertThisInitialized_default()(_this), "_stopIndex", null);

    defineProperty_default()(assertThisInitialized_default()(_this), "_stopIndexMemoized", null);

    defineProperty_default()(assertThisInitialized_default()(_this), "_debounceResetIsScrollingCallback", function () {
      _this.setState({
        isScrolling: false
      });
    });

    defineProperty_default()(assertThisInitialized_default()(_this), "_setScrollingContainerRef", function (ref) {
      _this._scrollingContainer = ref;
    });

    defineProperty_default()(assertThisInitialized_default()(_this), "_onScroll", function (event) {
      var height = _this.props.height;
      var eventScrollTop = event.currentTarget.scrollTop; // When this component is shrunk drastically, React dispatches a series of back-to-back scroll events,
      // Gradually converging on a scrollTop that is within the bounds of the new, smaller height.
      // This causes a series of rapid renders that is slow for long lists.
      // We can avoid that by doing some simple bounds checking to ensure that scroll offsets never exceed their bounds.

      var scrollTop = Math.min(Math.max(0, _this._getEstimatedTotalHeight() - height), eventScrollTop); // On iOS, we can arrive at negative offsets by swiping past the start or end.
      // Avoid re-rendering in this case as it can cause problems; see #532 for more.

      if (eventScrollTop !== scrollTop) {
        return;
      } // Prevent pointer events from interrupting a smooth scroll


      _this._debounceResetIsScrolling(); // Certain devices (like Apple touchpad) rapid-fire duplicate events.
      // Don't force a re-render if this is the case.
      // The mouse may move faster then the animation frame does.
      // Use requestAnimationFrame to avoid over-updating.


      if (_this.state.scrollTop !== scrollTop) {
        _this.setState({
          isScrolling: true,
          scrollTop: scrollTop
        });
      }
    });

    return _this;
  }

  createClass_default()(Masonry, [{
    key: "clearCellPositions",
    value: function clearCellPositions() {
      this._positionCache = new PositionCache_PositionCache();
      this.forceUpdate();
    } // HACK This method signature was intended for Grid

  }, {
    key: "invalidateCellSizeAfterRender",
    value: function invalidateCellSizeAfterRender(_ref) {
      var index = _ref.rowIndex;

      if (this._invalidateOnUpdateStartIndex === null) {
        this._invalidateOnUpdateStartIndex = index;
        this._invalidateOnUpdateStopIndex = index;
      } else {
        this._invalidateOnUpdateStartIndex = Math.min(this._invalidateOnUpdateStartIndex, index);
        this._invalidateOnUpdateStopIndex = Math.max(this._invalidateOnUpdateStopIndex, index);
      }
    }
  }, {
    key: "recomputeCellPositions",
    value: function recomputeCellPositions() {
      var stopIndex = this._positionCache.count - 1;
      this._positionCache = new PositionCache_PositionCache();

      this._populatePositionCache(0, stopIndex);

      this.forceUpdate();
    }
  }, {
    key: "componentDidMount",
    value: function componentDidMount() {
      this._checkInvalidateOnUpdate();

      this._invokeOnScrollCallback();

      this._invokeOnCellsRenderedCallback();
    }
  }, {
    key: "componentDidUpdate",
    value: function componentDidUpdate(prevProps, prevState) {
      this._checkInvalidateOnUpdate();

      this._invokeOnScrollCallback();

      this._invokeOnCellsRenderedCallback();

      if (this.props.scrollTop !== prevProps.scrollTop) {
        this._debounceResetIsScrolling();
      }
    }
  }, {
    key: "componentWillUnmount",
    value: function componentWillUnmount() {
      if (this._debounceResetIsScrollingId) {
        requestAnimationTimeout_cancelAnimationTimeout(this._debounceResetIsScrollingId);
      }
    }
  }, {
    key: "render",
    value: function render() {
      var _this2 = this;

      var _this$props = this.props,
          autoHeight = _this$props.autoHeight,
          cellCount = _this$props.cellCount,
          cellMeasurerCache = _this$props.cellMeasurerCache,
          cellRenderer = _this$props.cellRenderer,
          className = _this$props.className,
          height = _this$props.height,
          id = _this$props.id,
          keyMapper = _this$props.keyMapper,
          overscanByPixels = _this$props.overscanByPixels,
          role = _this$props.role,
          style = _this$props.style,
          tabIndex = _this$props.tabIndex,
          width = _this$props.width,
          rowDirection = _this$props.rowDirection;
      var _this$state = this.state,
          isScrolling = _this$state.isScrolling,
          scrollTop = _this$state.scrollTop;
      var children = [];

      var estimateTotalHeight = this._getEstimatedTotalHeight();

      var shortestColumnSize = this._positionCache.shortestColumnSize;
      var measuredCellCount = this._positionCache.count;
      var startIndex = 0;
      var stopIndex;

      this._positionCache.range(Math.max(0, scrollTop - overscanByPixels), height + overscanByPixels * 2, function (index, left, top) {
        var _style;

        if (typeof stopIndex === 'undefined') {
          startIndex = index;
          stopIndex = index;
        } else {
          startIndex = Math.min(startIndex, index);
          stopIndex = Math.max(stopIndex, index);
        }

        children.push(cellRenderer({
          index: index,
          isScrolling: isScrolling,
          key: keyMapper(index),
          parent: _this2,
          style: (_style = {
            height: cellMeasurerCache.getHeight(index)
          }, defineProperty_default()(_style, rowDirection === 'ltr' ? 'left' : 'right', left), defineProperty_default()(_style, "position", 'absolute'), defineProperty_default()(_style, "top", top), defineProperty_default()(_style, "width", cellMeasurerCache.getWidth(index)), _style)
        }));
      }); // We need to measure additional cells for this layout


      if (shortestColumnSize < scrollTop + height + overscanByPixels && measuredCellCount < cellCount) {
        var batchSize = Math.min(cellCount - measuredCellCount, Math.ceil((scrollTop + height + overscanByPixels - shortestColumnSize) / cellMeasurerCache.defaultHeight * width / cellMeasurerCache.defaultWidth));

        for (var _index = measuredCellCount; _index < measuredCellCount + batchSize; _index++) {
          stopIndex = _index;
          children.push(cellRenderer({
            index: _index,
            isScrolling: isScrolling,
            key: keyMapper(_index),
            parent: this,
            style: {
              width: cellMeasurerCache.getWidth(_index)
            }
          }));
        }
      }

      this._startIndex = startIndex;
      this._stopIndex = stopIndex;
      return react["createElement"]("div", {
        ref: this._setScrollingContainerRef,
        "aria-label": this.props['aria-label'],
        className: Object(clsx_m["a" /* default */])('ReactVirtualized__Masonry', className),
        id: id,
        onScroll: this._onScroll,
        role: role,
        style: Masonry_objectSpread({
          boxSizing: 'border-box',
          direction: 'ltr',
          height: autoHeight ? 'auto' : height,
          overflowX: 'hidden',
          overflowY: estimateTotalHeight < height ? 'hidden' : 'auto',
          position: 'relative',
          width: width,
          WebkitOverflowScrolling: 'touch',
          willChange: 'transform'
        }, style),
        tabIndex: tabIndex
      }, react["createElement"]("div", {
        className: "ReactVirtualized__Masonry__innerScrollContainer",
        style: {
          width: '100%',
          height: estimateTotalHeight,
          maxWidth: '100%',
          maxHeight: estimateTotalHeight,
          overflow: 'hidden',
          pointerEvents: isScrolling ? 'none' : '',
          position: 'relative'
        }
      }, children));
    }
  }, {
    key: "_checkInvalidateOnUpdate",
    value: function _checkInvalidateOnUpdate() {
      if (typeof this._invalidateOnUpdateStartIndex === 'number') {
        var startIndex = this._invalidateOnUpdateStartIndex;
        var stopIndex = this._invalidateOnUpdateStopIndex;
        this._invalidateOnUpdateStartIndex = null;
        this._invalidateOnUpdateStopIndex = null; // Query external layout logic for position of newly-measured cells

        this._populatePositionCache(startIndex, stopIndex);

        this.forceUpdate();
      }
    }
  }, {
    key: "_debounceResetIsScrolling",
    value: function _debounceResetIsScrolling() {
      var scrollingResetTimeInterval = this.props.scrollingResetTimeInterval;

      if (this._debounceResetIsScrollingId) {
        requestAnimationTimeout_cancelAnimationTimeout(this._debounceResetIsScrollingId);
      }

      this._debounceResetIsScrollingId = requestAnimationTimeout_requestAnimationTimeout(this._debounceResetIsScrollingCallback, scrollingResetTimeInterval);
    }
  }, {
    key: "_getEstimatedTotalHeight",
    value: function _getEstimatedTotalHeight() {
      var _this$props2 = this.props,
          cellCount = _this$props2.cellCount,
          cellMeasurerCache = _this$props2.cellMeasurerCache,
          width = _this$props2.width;
      var estimatedColumnCount = Math.max(1, Math.floor(width / cellMeasurerCache.defaultWidth));
      return this._positionCache.estimateTotalHeight(cellCount, estimatedColumnCount, cellMeasurerCache.defaultHeight);
    }
  }, {
    key: "_invokeOnScrollCallback",
    value: function _invokeOnScrollCallback() {
      var _this$props3 = this.props,
          height = _this$props3.height,
          onScroll = _this$props3.onScroll;
      var scrollTop = this.state.scrollTop;

      if (this._onScrollMemoized !== scrollTop) {
        onScroll({
          clientHeight: height,
          scrollHeight: this._getEstimatedTotalHeight(),
          scrollTop: scrollTop
        });
        this._onScrollMemoized = scrollTop;
      }
    }
  }, {
    key: "_invokeOnCellsRenderedCallback",
    value: function _invokeOnCellsRenderedCallback() {
      if (this._startIndexMemoized !== this._startIndex || this._stopIndexMemoized !== this._stopIndex) {
        var onCellsRendered = this.props.onCellsRendered;
        onCellsRendered({
          startIndex: this._startIndex,
          stopIndex: this._stopIndex
        });
        this._startIndexMemoized = this._startIndex;
        this._stopIndexMemoized = this._stopIndex;
      }
    }
  }, {
    key: "_populatePositionCache",
    value: function _populatePositionCache(startIndex, stopIndex) {
      var _this$props4 = this.props,
          cellMeasurerCache = _this$props4.cellMeasurerCache,
          cellPositioner = _this$props4.cellPositioner;

      for (var _index2 = startIndex; _index2 <= stopIndex; _index2++) {
        var _cellPositioner = cellPositioner(_index2),
            left = _cellPositioner.left,
            top = _cellPositioner.top;

        this._positionCache.setPosition(_index2, left, top, cellMeasurerCache.getHeight(_index2));
      }
    }
  }], [{
    key: "getDerivedStateFromProps",
    value: function getDerivedStateFromProps(nextProps, prevState) {
      if (nextProps.scrollTop !== undefined && prevState.scrollTop !== nextProps.scrollTop) {
        return {
          isScrolling: true,
          scrollTop: nextProps.scrollTop
        };
      }

      return null;
    }
  }]);

  return Masonry;
}(react["PureComponent"]), defineProperty_default()(Masonry_class, "propTypes",  true ? null : undefined), Masonry_temp);

defineProperty_default()(Masonry_Masonry, "defaultProps", {
  autoHeight: false,
  keyMapper: identity,
  onCellsRendered: noop,
  onScroll: noop,
  overscanByPixels: 20,
  role: 'grid',
  scrollingResetTimeInterval: Masonry_DEFAULT_SCROLLING_RESET_TIME_INTERVAL,
  style: emptyObject,
  tabIndex: 0,
  rowDirection: 'ltr'
});

function identity(value) {
  return value;
}

function noop() {}

var bpfrpt_proptype_CellMeasurerCache =  true ? null : undefined;
Object(react_lifecycles_compat_es["polyfill"])(Masonry_Masonry);
/* harmony default export */ var es_Masonry_Masonry = (Masonry_Masonry);
var bpfrpt_proptype_Positioner =  true ? null : undefined;




// CONCATENATED MODULE: ./node_modules/react-virtualized/dist/es/Masonry/createCellPositioner.js
function createCellPositioner(_ref) {
  var cellMeasurerCache = _ref.cellMeasurerCache,
      columnCount = _ref.columnCount,
      columnWidth = _ref.columnWidth,
      _ref$spacer = _ref.spacer,
      spacer = _ref$spacer === void 0 ? 0 : _ref$spacer;
  var columnHeights;
  initOrResetDerivedValues();

  function cellPositioner(index) {
    // Find the shortest column and use it.
    var columnIndex = 0;

    for (var i = 1; i < columnHeights.length; i++) {
      if (columnHeights[i] < columnHeights[columnIndex]) {
        columnIndex = i;
      }
    }

    var left = columnIndex * (columnWidth + spacer);
    var top = columnHeights[columnIndex] || 0;
    columnHeights[columnIndex] = top + cellMeasurerCache.getHeight(index) + spacer;
    return {
      left: left,
      top: top
    };
  }

  function initOrResetDerivedValues() {
    // Track the height of each column.
    // Layout algorithm below always inserts into the shortest column.
    columnHeights = [];

    for (var i = 0; i < columnCount; i++) {
      columnHeights[i] = 0;
    }
  }

  function reset(params) {
    columnCount = params.columnCount;
    columnWidth = params.columnWidth;
    spacer = params.spacer;
    initOrResetDerivedValues();
  }

  cellPositioner.reset = reset;
  return cellPositioner;
}


// CONCATENATED MODULE: ./node_modules/react-virtualized/dist/es/Masonry/index.js


/* harmony default export */ var es_Masonry = (es_Masonry_Masonry);

// CONCATENATED MODULE: ./node_modules/react-virtualized/dist/es/MultiGrid/CellMeasurerCacheDecorator.js




/**
 * Caches measurements for a given cell.
 */

var CellMeasurerCacheDecorator_CellMeasurerCacheDecorator = /*#__PURE__*/function () {
  function CellMeasurerCacheDecorator() {
    var _this = this;

    var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};

    classCallCheck_default()(this, CellMeasurerCacheDecorator);

    defineProperty_default()(this, "_cellMeasurerCache", void 0);

    defineProperty_default()(this, "_columnIndexOffset", void 0);

    defineProperty_default()(this, "_rowIndexOffset", void 0);

    defineProperty_default()(this, "columnWidth", function (_ref) {
      var index = _ref.index;

      _this._cellMeasurerCache.columnWidth({
        index: index + _this._columnIndexOffset
      });
    });

    defineProperty_default()(this, "rowHeight", function (_ref2) {
      var index = _ref2.index;

      _this._cellMeasurerCache.rowHeight({
        index: index + _this._rowIndexOffset
      });
    });

    var cellMeasurerCache = params.cellMeasurerCache,
        _params$columnIndexOf = params.columnIndexOffset,
        columnIndexOffset = _params$columnIndexOf === void 0 ? 0 : _params$columnIndexOf,
        _params$rowIndexOffse = params.rowIndexOffset,
        rowIndexOffset = _params$rowIndexOffse === void 0 ? 0 : _params$rowIndexOffse;
    this._cellMeasurerCache = cellMeasurerCache;
    this._columnIndexOffset = columnIndexOffset;
    this._rowIndexOffset = rowIndexOffset;
  }

  createClass_default()(CellMeasurerCacheDecorator, [{
    key: "clear",
    value: function clear(rowIndex, columnIndex) {
      this._cellMeasurerCache.clear(rowIndex + this._rowIndexOffset, columnIndex + this._columnIndexOffset);
    }
  }, {
    key: "clearAll",
    value: function clearAll() {
      this._cellMeasurerCache.clearAll();
    }
  }, {
    key: "hasFixedHeight",
    value: function hasFixedHeight() {
      return this._cellMeasurerCache.hasFixedHeight();
    }
  }, {
    key: "hasFixedWidth",
    value: function hasFixedWidth() {
      return this._cellMeasurerCache.hasFixedWidth();
    }
  }, {
    key: "getHeight",
    value: function getHeight(rowIndex) {
      var columnIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
      return this._cellMeasurerCache.getHeight(rowIndex + this._rowIndexOffset, columnIndex + this._columnIndexOffset);
    }
  }, {
    key: "getWidth",
    value: function getWidth(rowIndex) {
      var columnIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
      return this._cellMeasurerCache.getWidth(rowIndex + this._rowIndexOffset, columnIndex + this._columnIndexOffset);
    }
  }, {
    key: "has",
    value: function has(rowIndex) {
      var columnIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
      return this._cellMeasurerCache.has(rowIndex + this._rowIndexOffset, columnIndex + this._columnIndexOffset);
    }
  }, {
    key: "set",
    value: function set(rowIndex, columnIndex, width, height) {
      this._cellMeasurerCache.set(rowIndex + this._rowIndexOffset, columnIndex + this._columnIndexOffset, width, height);
    }
  }, {
    key: "defaultHeight",
    get: function get() {
      return this._cellMeasurerCache.defaultHeight;
    }
  }, {
    key: "defaultWidth",
    get: function get() {
      return this._cellMeasurerCache.defaultWidth;
    }
  }]);

  return CellMeasurerCacheDecorator;
}();


// CONCATENATED MODULE: ./node_modules/react-virtualized/dist/es/MultiGrid/MultiGrid.js










function MultiGrid_ownKeys(object, enumerableOnly) {
  var keys = Object.keys(object);

  if (Object.getOwnPropertySymbols) {
    var symbols = Object.getOwnPropertySymbols(object);
    if (enumerableOnly) symbols = symbols.filter(function (sym) {
      return Object.getOwnPropertyDescriptor(object, sym).enumerable;
    });
    keys.push.apply(keys, symbols);
  }

  return keys;
}

function MultiGrid_objectSpread(target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i] != null ? arguments[i] : {};

    if (i % 2) {
      MultiGrid_ownKeys(source, true).forEach(function (key) {
        defineProperty_default()(target, key, source[key]);
      });
    } else if (Object.getOwnPropertyDescriptors) {
      Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
    } else {
      MultiGrid_ownKeys(source).forEach(function (key) {
        Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
      });
    }
  }

  return target;
}






var SCROLLBAR_SIZE_BUFFER = 20;
/**
 * Renders 1, 2, or 4 Grids depending on configuration.
 * A main (body) Grid will always be rendered.
 * Optionally, 1-2 Grids for sticky header rows will also be rendered.
 * If no sticky columns, only 1 sticky header Grid will be rendered.
 * If sticky columns, 2 sticky header Grids will be rendered.
 */

var MultiGrid_MultiGrid = /*#__PURE__*/function (_React$PureComponent) {
  inherits_default()(MultiGrid, _React$PureComponent);

  function MultiGrid(props, context) {
    var _this;

    classCallCheck_default()(this, MultiGrid);

    _this = possibleConstructorReturn_default()(this, getPrototypeOf_default()(MultiGrid).call(this, props, context));

    defineProperty_default()(assertThisInitialized_default()(_this), "state", {
      scrollLeft: 0,
      scrollTop: 0,
      scrollbarSize: 0,
      showHorizontalScrollbar: false,
      showVerticalScrollbar: false
    });

    defineProperty_default()(assertThisInitialized_default()(_this), "_deferredInvalidateColumnIndex", null);

    defineProperty_default()(assertThisInitialized_default()(_this), "_deferredInvalidateRowIndex", null);

    defineProperty_default()(assertThisInitialized_default()(_this), "_bottomLeftGridRef", function (ref) {
      _this._bottomLeftGrid = ref;
    });

    defineProperty_default()(assertThisInitialized_default()(_this), "_bottomRightGridRef", function (ref) {
      _this._bottomRightGrid = ref;
    });

    defineProperty_default()(assertThisInitialized_default()(_this), "_cellRendererBottomLeftGrid", function (_ref) {
      var rowIndex = _ref.rowIndex,
          rest = objectWithoutProperties_default()(_ref, ["rowIndex"]);

      var _this$props = _this.props,
          cellRenderer = _this$props.cellRenderer,
          fixedRowCount = _this$props.fixedRowCount,
          rowCount = _this$props.rowCount;

      if (rowIndex === rowCount - fixedRowCount) {
        return react["createElement"]("div", {
          key: rest.key,
          style: MultiGrid_objectSpread({}, rest.style, {
            height: SCROLLBAR_SIZE_BUFFER
          })
        });
      } else {
        return cellRenderer(MultiGrid_objectSpread({}, rest, {
          parent: assertThisInitialized_default()(_this),
          rowIndex: rowIndex + fixedRowCount
        }));
      }
    });

    defineProperty_default()(assertThisInitialized_default()(_this), "_cellRendererBottomRightGrid", function (_ref2) {
      var columnIndex = _ref2.columnIndex,
          rowIndex = _ref2.rowIndex,
          rest = objectWithoutProperties_default()(_ref2, ["columnIndex", "rowIndex"]);

      var _this$props2 = _this.props,
          cellRenderer = _this$props2.cellRenderer,
          fixedColumnCount = _this$props2.fixedColumnCount,
          fixedRowCount = _this$props2.fixedRowCount;
      return cellRenderer(MultiGrid_objectSpread({}, rest, {
        columnIndex: columnIndex + fixedColumnCount,
        parent: assertThisInitialized_default()(_this),
        rowIndex: rowIndex + fixedRowCount
      }));
    });

    defineProperty_default()(assertThisInitialized_default()(_this), "_cellRendererTopRightGrid", function (_ref3) {
      var columnIndex = _ref3.columnIndex,
          rest = objectWithoutProperties_default()(_ref3, ["columnIndex"]);

      var _this$props3 = _this.props,
          cellRenderer = _this$props3.cellRenderer,
          columnCount = _this$props3.columnCount,
          fixedColumnCount = _this$props3.fixedColumnCount;

      if (columnIndex === columnCount - fixedColumnCount) {
        return react["createElement"]("div", {
          key: rest.key,
          style: MultiGrid_objectSpread({}, rest.style, {
            width: SCROLLBAR_SIZE_BUFFER
          })
        });
      } else {
        return cellRenderer(MultiGrid_objectSpread({}, rest, {
          columnIndex: columnIndex + fixedColumnCount,
          parent: assertThisInitialized_default()(_this)
        }));
      }
    });

    defineProperty_default()(assertThisInitialized_default()(_this), "_columnWidthRightGrid", function (_ref4) {
      var index = _ref4.index;
      var _this$props4 = _this.props,
          columnCount = _this$props4.columnCount,
          fixedColumnCount = _this$props4.fixedColumnCount,
          columnWidth = _this$props4.columnWidth;
      var _this$state = _this.state,
          scrollbarSize = _this$state.scrollbarSize,
          showHorizontalScrollbar = _this$state.showHorizontalScrollbar; // An extra cell is added to the count
      // This gives the smaller Grid extra room for offset,
      // In case the main (bottom right) Grid has a scrollbar
      // If no scrollbar, the extra space is overflow:hidden anyway

      if (showHorizontalScrollbar && index === columnCount - fixedColumnCount) {
        return scrollbarSize;
      }

      return typeof columnWidth === 'function' ? columnWidth({
        index: index + fixedColumnCount
      }) : columnWidth;
    });

    defineProperty_default()(assertThisInitialized_default()(_this), "_onScroll", function (scrollInfo) {
      var scrollLeft = scrollInfo.scrollLeft,
          scrollTop = scrollInfo.scrollTop;

      _this.setState({
        scrollLeft: scrollLeft,
        scrollTop: scrollTop
      });

      var onScroll = _this.props.onScroll;

      if (onScroll) {
        onScroll(scrollInfo);
      }
    });

    defineProperty_default()(assertThisInitialized_default()(_this), "_onScrollbarPresenceChange", function (_ref5) {
      var horizontal = _ref5.horizontal,
          size = _ref5.size,
          vertical = _ref5.vertical;
      var _this$state2 = _this.state,
          showHorizontalScrollbar = _this$state2.showHorizontalScrollbar,
          showVerticalScrollbar = _this$state2.showVerticalScrollbar;

      if (horizontal !== showHorizontalScrollbar || vertical !== showVerticalScrollbar) {
        _this.setState({
          scrollbarSize: size,
          showHorizontalScrollbar: horizontal,
          showVerticalScrollbar: vertical
        });

        var onScrollbarPresenceChange = _this.props.onScrollbarPresenceChange;

        if (typeof onScrollbarPresenceChange === 'function') {
          onScrollbarPresenceChange({
            horizontal: horizontal,
            size: size,
            vertical: vertical
          });
        }
      }
    });

    defineProperty_default()(assertThisInitialized_default()(_this), "_onScrollLeft", function (scrollInfo) {
      var scrollLeft = scrollInfo.scrollLeft;

      _this._onScroll({
        scrollLeft: scrollLeft,
        scrollTop: _this.state.scrollTop
      });
    });

    defineProperty_default()(assertThisInitialized_default()(_this), "_onScrollTop", function (scrollInfo) {
      var scrollTop = scrollInfo.scrollTop;

      _this._onScroll({
        scrollTop: scrollTop,
        scrollLeft: _this.state.scrollLeft
      });
    });

    defineProperty_default()(assertThisInitialized_default()(_this), "_rowHeightBottomGrid", function (_ref6) {
      var index = _ref6.index;
      var _this$props5 = _this.props,
          fixedRowCount = _this$props5.fixedRowCount,
          rowCount = _this$props5.rowCount,
          rowHeight = _this$props5.rowHeight;
      var _this$state3 = _this.state,
          scrollbarSize = _this$state3.scrollbarSize,
          showVerticalScrollbar = _this$state3.showVerticalScrollbar; // An extra cell is added to the count
      // This gives the smaller Grid extra room for offset,
      // In case the main (bottom right) Grid has a scrollbar
      // If no scrollbar, the extra space is overflow:hidden anyway

      if (showVerticalScrollbar && index === rowCount - fixedRowCount) {
        return scrollbarSize;
      }

      return typeof rowHeight === 'function' ? rowHeight({
        index: index + fixedRowCount
      }) : rowHeight;
    });

    defineProperty_default()(assertThisInitialized_default()(_this), "_topLeftGridRef", function (ref) {
      _this._topLeftGrid = ref;
    });

    defineProperty_default()(assertThisInitialized_default()(_this), "_topRightGridRef", function (ref) {
      _this._topRightGrid = ref;
    });

    var deferredMeasurementCache = props.deferredMeasurementCache,
        _fixedColumnCount = props.fixedColumnCount,
        _fixedRowCount = props.fixedRowCount;

    _this._maybeCalculateCachedStyles(true);

    if (deferredMeasurementCache) {
      _this._deferredMeasurementCacheBottomLeftGrid = _fixedRowCount > 0 ? new CellMeasurerCacheDecorator_CellMeasurerCacheDecorator({
        cellMeasurerCache: deferredMeasurementCache,
        columnIndexOffset: 0,
        rowIndexOffset: _fixedRowCount
      }) : deferredMeasurementCache;
      _this._deferredMeasurementCacheBottomRightGrid = _fixedColumnCount > 0 || _fixedRowCount > 0 ? new CellMeasurerCacheDecorator_CellMeasurerCacheDecorator({
        cellMeasurerCache: deferredMeasurementCache,
        columnIndexOffset: _fixedColumnCount,
        rowIndexOffset: _fixedRowCount
      }) : deferredMeasurementCache;
      _this._deferredMeasurementCacheTopRightGrid = _fixedColumnCount > 0 ? new CellMeasurerCacheDecorator_CellMeasurerCacheDecorator({
        cellMeasurerCache: deferredMeasurementCache,
        columnIndexOffset: _fixedColumnCount,
        rowIndexOffset: 0
      }) : deferredMeasurementCache;
    }

    return _this;
  }

  createClass_default()(MultiGrid, [{
    key: "forceUpdateGrids",
    value: function forceUpdateGrids() {
      this._bottomLeftGrid && this._bottomLeftGrid.forceUpdate();
      this._bottomRightGrid && this._bottomRightGrid.forceUpdate();
      this._topLeftGrid && this._topLeftGrid.forceUpdate();
      this._topRightGrid && this._topRightGrid.forceUpdate();
    }
    /** See Grid#invalidateCellSizeAfterRender */

  }, {
    key: "invalidateCellSizeAfterRender",
    value: function invalidateCellSizeAfterRender() {
      var _ref7 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
          _ref7$columnIndex = _ref7.columnIndex,
          columnIndex = _ref7$columnIndex === void 0 ? 0 : _ref7$columnIndex,
          _ref7$rowIndex = _ref7.rowIndex,
          rowIndex = _ref7$rowIndex === void 0 ? 0 : _ref7$rowIndex;

      this._deferredInvalidateColumnIndex = typeof this._deferredInvalidateColumnIndex === 'number' ? Math.min(this._deferredInvalidateColumnIndex, columnIndex) : columnIndex;
      this._deferredInvalidateRowIndex = typeof this._deferredInvalidateRowIndex === 'number' ? Math.min(this._deferredInvalidateRowIndex, rowIndex) : rowIndex;
    }
    /** See Grid#measureAllCells */

  }, {
    key: "measureAllCells",
    value: function measureAllCells() {
      this._bottomLeftGrid && this._bottomLeftGrid.measureAllCells();
      this._bottomRightGrid && this._bottomRightGrid.measureAllCells();
      this._topLeftGrid && this._topLeftGrid.measureAllCells();
      this._topRightGrid && this._topRightGrid.measureAllCells();
    }
    /** See Grid#recomputeGridSize */

  }, {
    key: "recomputeGridSize",
    value: function recomputeGridSize() {
      var _ref8 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
          _ref8$columnIndex = _ref8.columnIndex,
          columnIndex = _ref8$columnIndex === void 0 ? 0 : _ref8$columnIndex,
          _ref8$rowIndex = _ref8.rowIndex,
          rowIndex = _ref8$rowIndex === void 0 ? 0 : _ref8$rowIndex;

      var _this$props6 = this.props,
          fixedColumnCount = _this$props6.fixedColumnCount,
          fixedRowCount = _this$props6.fixedRowCount;
      var adjustedColumnIndex = Math.max(0, columnIndex - fixedColumnCount);
      var adjustedRowIndex = Math.max(0, rowIndex - fixedRowCount);
      this._bottomLeftGrid && this._bottomLeftGrid.recomputeGridSize({
        columnIndex: columnIndex,
        rowIndex: adjustedRowIndex
      });
      this._bottomRightGrid && this._bottomRightGrid.recomputeGridSize({
        columnIndex: adjustedColumnIndex,
        rowIndex: adjustedRowIndex
      });
      this._topLeftGrid && this._topLeftGrid.recomputeGridSize({
        columnIndex: columnIndex,
        rowIndex: rowIndex
      });
      this._topRightGrid && this._topRightGrid.recomputeGridSize({
        columnIndex: adjustedColumnIndex,
        rowIndex: rowIndex
      });
      this._leftGridWidth = null;
      this._topGridHeight = null;

      this._maybeCalculateCachedStyles(true);
    }
  }, {
    key: "componentDidMount",
    value: function componentDidMount() {
      var _this$props7 = this.props,
          scrollLeft = _this$props7.scrollLeft,
          scrollTop = _this$props7.scrollTop;

      if (scrollLeft > 0 || scrollTop > 0) {
        var newState = {};

        if (scrollLeft > 0) {
          newState.scrollLeft = scrollLeft;
        }

        if (scrollTop > 0) {
          newState.scrollTop = scrollTop;
        }

        this.setState(newState);
      }

      this._handleInvalidatedGridSize();
    }
  }, {
    key: "componentDidUpdate",
    value: function componentDidUpdate() {
      this._handleInvalidatedGridSize();
    }
  }, {
    key: "render",
    value: function render() {
      var _this$props8 = this.props,
          onScroll = _this$props8.onScroll,
          onSectionRendered = _this$props8.onSectionRendered,
          onScrollbarPresenceChange = _this$props8.onScrollbarPresenceChange,
          scrollLeftProp = _this$props8.scrollLeft,
          scrollToColumn = _this$props8.scrollToColumn,
          scrollTopProp = _this$props8.scrollTop,
          scrollToRow = _this$props8.scrollToRow,
          rest = objectWithoutProperties_default()(_this$props8, ["onScroll", "onSectionRendered", "onScrollbarPresenceChange", "scrollLeft", "scrollToColumn", "scrollTop", "scrollToRow"]);

      this._prepareForRender(); // Don't render any of our Grids if there are no cells.
      // This mirrors what Grid does,
      // And prevents us from recording inaccurage measurements when used with CellMeasurer.


      if (this.props.width === 0 || this.props.height === 0) {
        return null;
      } // scrollTop and scrollLeft props are explicitly filtered out and ignored


      var _this$state4 = this.state,
          scrollLeft = _this$state4.scrollLeft,
          scrollTop = _this$state4.scrollTop;
      return react["createElement"]("div", {
        style: this._containerOuterStyle
      }, react["createElement"]("div", {
        style: this._containerTopStyle
      }, this._renderTopLeftGrid(rest), this._renderTopRightGrid(MultiGrid_objectSpread({}, rest, {
        onScroll: onScroll,
        scrollLeft: scrollLeft
      }))), react["createElement"]("div", {
        style: this._containerBottomStyle
      }, this._renderBottomLeftGrid(MultiGrid_objectSpread({}, rest, {
        onScroll: onScroll,
        scrollTop: scrollTop
      })), this._renderBottomRightGrid(MultiGrid_objectSpread({}, rest, {
        onScroll: onScroll,
        onSectionRendered: onSectionRendered,
        scrollLeft: scrollLeft,
        scrollToColumn: scrollToColumn,
        scrollToRow: scrollToRow,
        scrollTop: scrollTop
      }))));
    }
  }, {
    key: "_getBottomGridHeight",
    value: function _getBottomGridHeight(props) {
      var height = props.height;

      var topGridHeight = this._getTopGridHeight(props);

      return height - topGridHeight;
    }
  }, {
    key: "_getLeftGridWidth",
    value: function _getLeftGridWidth(props) {
      var fixedColumnCount = props.fixedColumnCount,
          columnWidth = props.columnWidth;

      if (this._leftGridWidth == null) {
        if (typeof columnWidth === 'function') {
          var leftGridWidth = 0;

          for (var index = 0; index < fixedColumnCount; index++) {
            leftGridWidth += columnWidth({
              index: index
            });
          }

          this._leftGridWidth = leftGridWidth;
        } else {
          this._leftGridWidth = columnWidth * fixedColumnCount;
        }
      }

      return this._leftGridWidth;
    }
  }, {
    key: "_getRightGridWidth",
    value: function _getRightGridWidth(props) {
      var width = props.width;

      var leftGridWidth = this._getLeftGridWidth(props);

      return width - leftGridWidth;
    }
  }, {
    key: "_getTopGridHeight",
    value: function _getTopGridHeight(props) {
      var fixedRowCount = props.fixedRowCount,
          rowHeight = props.rowHeight;

      if (this._topGridHeight == null) {
        if (typeof rowHeight === 'function') {
          var topGridHeight = 0;

          for (var index = 0; index < fixedRowCount; index++) {
            topGridHeight += rowHeight({
              index: index
            });
          }

          this._topGridHeight = topGridHeight;
        } else {
          this._topGridHeight = rowHeight * fixedRowCount;
        }
      }

      return this._topGridHeight;
    }
  }, {
    key: "_handleInvalidatedGridSize",
    value: function _handleInvalidatedGridSize() {
      if (typeof this._deferredInvalidateColumnIndex === 'number') {
        var columnIndex = this._deferredInvalidateColumnIndex;
        var rowIndex = this._deferredInvalidateRowIndex;
        this._deferredInvalidateColumnIndex = null;
        this._deferredInvalidateRowIndex = null;
        this.recomputeGridSize({
          columnIndex: columnIndex,
          rowIndex: rowIndex
        });
        this.forceUpdate();
      }
    }
    /**
     * Avoid recreating inline styles each render; this bypasses Grid's shallowCompare.
     * This method recalculates styles only when specific props change.
     */

  }, {
    key: "_maybeCalculateCachedStyles",
    value: function _maybeCalculateCachedStyles(resetAll) {
      var _this$props9 = this.props,
          columnWidth = _this$props9.columnWidth,
          enableFixedColumnScroll = _this$props9.enableFixedColumnScroll,
          enableFixedRowScroll = _this$props9.enableFixedRowScroll,
          height = _this$props9.height,
          fixedColumnCount = _this$props9.fixedColumnCount,
          fixedRowCount = _this$props9.fixedRowCount,
          rowHeight = _this$props9.rowHeight,
          style = _this$props9.style,
          styleBottomLeftGrid = _this$props9.styleBottomLeftGrid,
          styleBottomRightGrid = _this$props9.styleBottomRightGrid,
          styleTopLeftGrid = _this$props9.styleTopLeftGrid,
          styleTopRightGrid = _this$props9.styleTopRightGrid,
          width = _this$props9.width;
      var sizeChange = resetAll || height !== this._lastRenderedHeight || width !== this._lastRenderedWidth;
      var leftSizeChange = resetAll || columnWidth !== this._lastRenderedColumnWidth || fixedColumnCount !== this._lastRenderedFixedColumnCount;
      var topSizeChange = resetAll || fixedRowCount !== this._lastRenderedFixedRowCount || rowHeight !== this._lastRenderedRowHeight;

      if (resetAll || sizeChange || style !== this._lastRenderedStyle) {
        this._containerOuterStyle = MultiGrid_objectSpread({
          height: height,
          overflow: 'visible',
          // Let :focus outline show through
          width: width
        }, style);
      }

      if (resetAll || sizeChange || topSizeChange) {
        this._containerTopStyle = {
          height: this._getTopGridHeight(this.props),
          position: 'relative',
          width: width
        };
        this._containerBottomStyle = {
          height: height - this._getTopGridHeight(this.props),
          overflow: 'visible',
          // Let :focus outline show through
          position: 'relative',
          width: width
        };
      }

      if (resetAll || styleBottomLeftGrid !== this._lastRenderedStyleBottomLeftGrid) {
        this._bottomLeftGridStyle = MultiGrid_objectSpread({
          left: 0,
          overflowX: 'hidden',
          overflowY: enableFixedColumnScroll ? 'auto' : 'hidden',
          position: 'absolute'
        }, styleBottomLeftGrid);
      }

      if (resetAll || leftSizeChange || styleBottomRightGrid !== this._lastRenderedStyleBottomRightGrid) {
        this._bottomRightGridStyle = MultiGrid_objectSpread({
          left: this._getLeftGridWidth(this.props),
          position: 'absolute'
        }, styleBottomRightGrid);
      }

      if (resetAll || styleTopLeftGrid !== this._lastRenderedStyleTopLeftGrid) {
        this._topLeftGridStyle = MultiGrid_objectSpread({
          left: 0,
          overflowX: 'hidden',
          overflowY: 'hidden',
          position: 'absolute',
          top: 0
        }, styleTopLeftGrid);
      }

      if (resetAll || leftSizeChange || styleTopRightGrid !== this._lastRenderedStyleTopRightGrid) {
        this._topRightGridStyle = MultiGrid_objectSpread({
          left: this._getLeftGridWidth(this.props),
          overflowX: enableFixedRowScroll ? 'auto' : 'hidden',
          overflowY: 'hidden',
          position: 'absolute',
          top: 0
        }, styleTopRightGrid);
      }

      this._lastRenderedColumnWidth = columnWidth;
      this._lastRenderedFixedColumnCount = fixedColumnCount;
      this._lastRenderedFixedRowCount = fixedRowCount;
      this._lastRenderedHeight = height;
      this._lastRenderedRowHeight = rowHeight;
      this._lastRenderedStyle = style;
      this._lastRenderedStyleBottomLeftGrid = styleBottomLeftGrid;
      this._lastRenderedStyleBottomRightGrid = styleBottomRightGrid;
      this._lastRenderedStyleTopLeftGrid = styleTopLeftGrid;
      this._lastRenderedStyleTopRightGrid = styleTopRightGrid;
      this._lastRenderedWidth = width;
    }
  }, {
    key: "_prepareForRender",
    value: function _prepareForRender() {
      if (this._lastRenderedColumnWidth !== this.props.columnWidth || this._lastRenderedFixedColumnCount !== this.props.fixedColumnCount) {
        this._leftGridWidth = null;
      }

      if (this._lastRenderedFixedRowCount !== this.props.fixedRowCount || this._lastRenderedRowHeight !== this.props.rowHeight) {
        this._topGridHeight = null;
      }

      this._maybeCalculateCachedStyles();

      this._lastRenderedColumnWidth = this.props.columnWidth;
      this._lastRenderedFixedColumnCount = this.props.fixedColumnCount;
      this._lastRenderedFixedRowCount = this.props.fixedRowCount;
      this._lastRenderedRowHeight = this.props.rowHeight;
    }
  }, {
    key: "_renderBottomLeftGrid",
    value: function _renderBottomLeftGrid(props) {
      var enableFixedColumnScroll = props.enableFixedColumnScroll,
          fixedColumnCount = props.fixedColumnCount,
          fixedRowCount = props.fixedRowCount,
          rowCount = props.rowCount,
          hideBottomLeftGridScrollbar = props.hideBottomLeftGridScrollbar;
      var showVerticalScrollbar = this.state.showVerticalScrollbar;

      if (!fixedColumnCount) {
        return null;
      }

      var additionalRowCount = showVerticalScrollbar ? 1 : 0,
          height = this._getBottomGridHeight(props),
          width = this._getLeftGridWidth(props),
          scrollbarSize = this.state.showVerticalScrollbar ? this.state.scrollbarSize : 0,
          gridWidth = hideBottomLeftGridScrollbar ? width + scrollbarSize : width;

      var bottomLeftGrid = react["createElement"](es_Grid_Grid, extends_default()({}, props, {
        cellRenderer: this._cellRendererBottomLeftGrid,
        className: this.props.classNameBottomLeftGrid,
        columnCount: fixedColumnCount,
        deferredMeasurementCache: this._deferredMeasurementCacheBottomLeftGrid,
        height: height,
        onScroll: enableFixedColumnScroll ? this._onScrollTop : undefined,
        ref: this._bottomLeftGridRef,
        rowCount: Math.max(0, rowCount - fixedRowCount) + additionalRowCount,
        rowHeight: this._rowHeightBottomGrid,
        style: this._bottomLeftGridStyle,
        tabIndex: null,
        width: gridWidth
      }));

      if (hideBottomLeftGridScrollbar) {
        return react["createElement"]("div", {
          className: "BottomLeftGrid_ScrollWrapper",
          style: MultiGrid_objectSpread({}, this._bottomLeftGridStyle, {
            height: height,
            width: width,
            overflowY: 'hidden'
          })
        }, bottomLeftGrid);
      }

      return bottomLeftGrid;
    }
  }, {
    key: "_renderBottomRightGrid",
    value: function _renderBottomRightGrid(props) {
      var columnCount = props.columnCount,
          fixedColumnCount = props.fixedColumnCount,
          fixedRowCount = props.fixedRowCount,
          rowCount = props.rowCount,
          scrollToColumn = props.scrollToColumn,
          scrollToRow = props.scrollToRow;
      return react["createElement"](es_Grid_Grid, extends_default()({}, props, {
        cellRenderer: this._cellRendererBottomRightGrid,
        className: this.props.classNameBottomRightGrid,
        columnCount: Math.max(0, columnCount - fixedColumnCount),
        columnWidth: this._columnWidthRightGrid,
        deferredMeasurementCache: this._deferredMeasurementCacheBottomRightGrid,
        height: this._getBottomGridHeight(props),
        onScroll: this._onScroll,
        onScrollbarPresenceChange: this._onScrollbarPresenceChange,
        ref: this._bottomRightGridRef,
        rowCount: Math.max(0, rowCount - fixedRowCount),
        rowHeight: this._rowHeightBottomGrid,
        scrollToColumn: scrollToColumn - fixedColumnCount,
        scrollToRow: scrollToRow - fixedRowCount,
        style: this._bottomRightGridStyle,
        width: this._getRightGridWidth(props)
      }));
    }
  }, {
    key: "_renderTopLeftGrid",
    value: function _renderTopLeftGrid(props) {
      var fixedColumnCount = props.fixedColumnCount,
          fixedRowCount = props.fixedRowCount;

      if (!fixedColumnCount || !fixedRowCount) {
        return null;
      }

      return react["createElement"](es_Grid_Grid, extends_default()({}, props, {
        className: this.props.classNameTopLeftGrid,
        columnCount: fixedColumnCount,
        height: this._getTopGridHeight(props),
        ref: this._topLeftGridRef,
        rowCount: fixedRowCount,
        style: this._topLeftGridStyle,
        tabIndex: null,
        width: this._getLeftGridWidth(props)
      }));
    }
  }, {
    key: "_renderTopRightGrid",
    value: function _renderTopRightGrid(props) {
      var columnCount = props.columnCount,
          enableFixedRowScroll = props.enableFixedRowScroll,
          fixedColumnCount = props.fixedColumnCount,
          fixedRowCount = props.fixedRowCount,
          scrollLeft = props.scrollLeft,
          hideTopRightGridScrollbar = props.hideTopRightGridScrollbar;
      var _this$state5 = this.state,
          showHorizontalScrollbar = _this$state5.showHorizontalScrollbar,
          scrollbarSize = _this$state5.scrollbarSize;

      if (!fixedRowCount) {
        return null;
      }

      var additionalColumnCount = showHorizontalScrollbar ? 1 : 0,
          height = this._getTopGridHeight(props),
          width = this._getRightGridWidth(props),
          additionalHeight = showHorizontalScrollbar ? scrollbarSize : 0;

      var gridHeight = height,
          style = this._topRightGridStyle;

      if (hideTopRightGridScrollbar) {
        gridHeight = height + additionalHeight;
        style = MultiGrid_objectSpread({}, this._topRightGridStyle, {
          left: 0
        });
      }

      var topRightGrid = react["createElement"](es_Grid_Grid, extends_default()({}, props, {
        cellRenderer: this._cellRendererTopRightGrid,
        className: this.props.classNameTopRightGrid,
        columnCount: Math.max(0, columnCount - fixedColumnCount) + additionalColumnCount,
        columnWidth: this._columnWidthRightGrid,
        deferredMeasurementCache: this._deferredMeasurementCacheTopRightGrid,
        height: gridHeight,
        onScroll: enableFixedRowScroll ? this._onScrollLeft : undefined,
        ref: this._topRightGridRef,
        rowCount: fixedRowCount,
        scrollLeft: scrollLeft,
        style: style,
        tabIndex: null,
        width: width
      }));

      if (hideTopRightGridScrollbar) {
        return react["createElement"]("div", {
          className: "TopRightGrid_ScrollWrapper",
          style: MultiGrid_objectSpread({}, this._topRightGridStyle, {
            height: height,
            width: width,
            overflowX: 'hidden'
          })
        }, topRightGrid);
      }

      return topRightGrid;
    }
  }], [{
    key: "getDerivedStateFromProps",
    value: function getDerivedStateFromProps(nextProps, prevState) {
      if (nextProps.scrollLeft !== prevState.scrollLeft || nextProps.scrollTop !== prevState.scrollTop) {
        return {
          scrollLeft: nextProps.scrollLeft != null && nextProps.scrollLeft >= 0 ? nextProps.scrollLeft : prevState.scrollLeft,
          scrollTop: nextProps.scrollTop != null && nextProps.scrollTop >= 0 ? nextProps.scrollTop : prevState.scrollTop
        };
      }

      return null;
    }
  }]);

  return MultiGrid;
}(react["PureComponent"]);

defineProperty_default()(MultiGrid_MultiGrid, "defaultProps", {
  classNameBottomLeftGrid: '',
  classNameBottomRightGrid: '',
  classNameTopLeftGrid: '',
  classNameTopRightGrid: '',
  enableFixedColumnScroll: false,
  enableFixedRowScroll: false,
  fixedColumnCount: 0,
  fixedRowCount: 0,
  scrollToColumn: -1,
  scrollToRow: -1,
  style: {},
  styleBottomLeftGrid: {},
  styleBottomRightGrid: {},
  styleTopLeftGrid: {},
  styleTopRightGrid: {},
  hideTopRightGridScrollbar: false,
  hideBottomLeftGridScrollbar: false
});

MultiGrid_MultiGrid.propTypes =  false ? undefined : {};
Object(react_lifecycles_compat_es["polyfill"])(MultiGrid_MultiGrid);
/* harmony default export */ var es_MultiGrid_MultiGrid = (MultiGrid_MultiGrid);
// CONCATENATED MODULE: ./node_modules/react-virtualized/dist/es/MultiGrid/index.js

/* harmony default export */ var es_MultiGrid = (es_MultiGrid_MultiGrid);

// CONCATENATED MODULE: ./node_modules/react-virtualized/dist/es/ScrollSync/ScrollSync.js








/**
 * HOC that simplifies the process of synchronizing scrolling between two or more virtualized components.
 */

var ScrollSync_ScrollSync = /*#__PURE__*/function (_React$PureComponent) {
  inherits_default()(ScrollSync, _React$PureComponent);

  function ScrollSync(props, context) {
    var _this;

    classCallCheck_default()(this, ScrollSync);

    _this = possibleConstructorReturn_default()(this, getPrototypeOf_default()(ScrollSync).call(this, props, context));
    _this.state = {
      clientHeight: 0,
      clientWidth: 0,
      scrollHeight: 0,
      scrollLeft: 0,
      scrollTop: 0,
      scrollWidth: 0
    };
    _this._onScroll = _this._onScroll.bind(assertThisInitialized_default()(_this));
    return _this;
  }

  createClass_default()(ScrollSync, [{
    key: "render",
    value: function render() {
      var children = this.props.children;
      var _this$state = this.state,
          clientHeight = _this$state.clientHeight,
          clientWidth = _this$state.clientWidth,
          scrollHeight = _this$state.scrollHeight,
          scrollLeft = _this$state.scrollLeft,
          scrollTop = _this$state.scrollTop,
          scrollWidth = _this$state.scrollWidth;
      return children({
        clientHeight: clientHeight,
        clientWidth: clientWidth,
        onScroll: this._onScroll,
        scrollHeight: scrollHeight,
        scrollLeft: scrollLeft,
        scrollTop: scrollTop,
        scrollWidth: scrollWidth
      });
    }
  }, {
    key: "_onScroll",
    value: function _onScroll(_ref) {
      var clientHeight = _ref.clientHeight,
          clientWidth = _ref.clientWidth,
          scrollHeight = _ref.scrollHeight,
          scrollLeft = _ref.scrollLeft,
          scrollTop = _ref.scrollTop,
          scrollWidth = _ref.scrollWidth;
      this.setState({
        clientHeight: clientHeight,
        clientWidth: clientWidth,
        scrollHeight: scrollHeight,
        scrollLeft: scrollLeft,
        scrollTop: scrollTop,
        scrollWidth: scrollWidth
      });
    }
  }]);

  return ScrollSync;
}(react["PureComponent"]);


ScrollSync_ScrollSync.propTypes =  false ? undefined : {};
// CONCATENATED MODULE: ./node_modules/react-virtualized/dist/es/ScrollSync/index.js

/* harmony default export */ var es_ScrollSync = (ScrollSync_ScrollSync);

// CONCATENATED MODULE: ./node_modules/react-virtualized/dist/es/Table/createMultiSort.js
function createMultiSort(sortCallback) {
  var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
      defaultSortBy = _ref.defaultSortBy,
      _ref$defaultSortDirec = _ref.defaultSortDirection,
      defaultSortDirection = _ref$defaultSortDirec === void 0 ? {} : _ref$defaultSortDirec;

  if (!sortCallback) {
    throw Error("Required parameter \"sortCallback\" not specified");
  }

  var sortBy = defaultSortBy || [];
  var sortDirection = {};
  sortBy.forEach(function (dataKey) {
    sortDirection[dataKey] = defaultSortDirection[dataKey] !== undefined ? defaultSortDirection[dataKey] : 'ASC';
  });

  function sort(_ref2) {
    var defaultSortDirection = _ref2.defaultSortDirection,
        event = _ref2.event,
        dataKey = _ref2.sortBy;

    if (event.shiftKey) {
      // Shift + click appends a column to existing criteria
      if (sortDirection[dataKey] !== undefined) {
        sortDirection[dataKey] = sortDirection[dataKey] === 'ASC' ? 'DESC' : 'ASC';
      } else {
        sortDirection[dataKey] = defaultSortDirection;
        sortBy.push(dataKey);
      }
    } else if (event.ctrlKey || event.metaKey) {
      // Control + click removes column from sort (if pressent)
      var index = sortBy.indexOf(dataKey);

      if (index >= 0) {
        sortBy.splice(index, 1);
        delete sortDirection[dataKey];
      }
    } else {
      // Clear sortBy array of all non-selected keys
      sortBy.length = 0;
      sortBy.push(dataKey); // Clear sortDirection object of all non-selected keys

      var sortDirectionKeys = Object.keys(sortDirection);
      sortDirectionKeys.forEach(function (key) {
        if (key !== dataKey) delete sortDirection[key];
      }); // If key is already selected, reverse sort direction.
      // Else, set sort direction to default direction.

      if (sortDirection[dataKey] !== undefined) {
        sortDirection[dataKey] = sortDirection[dataKey] === 'ASC' ? 'DESC' : 'ASC';
      } else {
        sortDirection[dataKey] = defaultSortDirection;
      }
    } // Notify application code


    sortCallback({
      sortBy: sortBy,
      sortDirection: sortDirection
    });
  }

  return {
    sort: sort,
    sortBy: sortBy,
    sortDirection: sortDirection
  };
}
// CONCATENATED MODULE: ./node_modules/react-virtualized/dist/es/Table/types.js
var bpfrpt_proptype_CellDataGetterParams =  true ? null : undefined;
var types_bpfrpt_proptype_CellRendererParams =  true ? null : undefined;
var bpfrpt_proptype_HeaderRowRendererParams =  true ? null : undefined;
var bpfrpt_proptype_HeaderRendererParams =  true ? null : undefined;
var types_bpfrpt_proptype_RowRendererParams =  true ? null : undefined;






// CONCATENATED MODULE: ./node_modules/react-virtualized/dist/es/Table/defaultCellDataGetter.js
/**
 * Default accessor for returning a cell value for a given attribute.
 * This function expects to operate on either a vanilla Object or an Immutable Map.
 * You should override the column's cellDataGetter if your data is some other type of object.
 */
function defaultCellDataGetter(_ref) {
  var dataKey = _ref.dataKey,
      rowData = _ref.rowData;

  if (typeof rowData.get === 'function') {
    return rowData.get(dataKey);
  } else {
    return rowData[dataKey];
  }
}

// CONCATENATED MODULE: ./node_modules/react-virtualized/dist/es/Table/defaultCellRenderer.js
/**
 * Default cell renderer that displays an attribute as a simple string
 * You should override the column's cellRenderer if your data is some other type of object.
 */
function defaultCellRenderer(_ref) {
  var cellData = _ref.cellData;

  if (cellData == null) {
    return '';
  } else {
    return String(cellData);
  }
}

// CONCATENATED MODULE: ./node_modules/react-virtualized/dist/es/Table/defaultHeaderRowRenderer.js

function defaultHeaderRowRenderer(_ref) {
  var className = _ref.className,
      columns = _ref.columns,
      style = _ref.style;
  return react["createElement"]("div", {
    className: className,
    role: "row",
    style: style
  }, columns);
}
defaultHeaderRowRenderer.propTypes =  true ? null : undefined;


// CONCATENATED MODULE: ./node_modules/react-virtualized/dist/es/Table/SortDirection.js
var SortDirection = {
  /**
   * Sort items in ascending order.
   * This means arranging from the lowest value to the highest (e.g. a-z, 0-9).
   */
  ASC: 'ASC',

  /**
   * Sort items in descending order.
   * This means arranging from the highest value to the lowest (e.g. z-a, 9-0).
   */
  DESC: 'DESC'
};
/* harmony default export */ var Table_SortDirection = (SortDirection);
// CONCATENATED MODULE: ./node_modules/react-virtualized/dist/es/Table/SortIndicator.js




/**
 * Displayed beside a header to indicate that a Table is currently sorted by this column.
 */

function SortIndicator(_ref) {
  var sortDirection = _ref.sortDirection;
  var classNames = Object(clsx_m["a" /* default */])('ReactVirtualized__Table__sortableHeaderIcon', {
    'ReactVirtualized__Table__sortableHeaderIcon--ASC': sortDirection === Table_SortDirection.ASC,
    'ReactVirtualized__Table__sortableHeaderIcon--DESC': sortDirection === Table_SortDirection.DESC
  });
  return react["createElement"]("svg", {
    className: classNames,
    width: 18,
    height: 18,
    viewBox: "0 0 24 24"
  }, sortDirection === Table_SortDirection.ASC ? react["createElement"]("path", {
    d: "M7 14l5-5 5 5z"
  }) : react["createElement"]("path", {
    d: "M7 10l5 5 5-5z"
  }), react["createElement"]("path", {
    d: "M0 0h24v24H0z",
    fill: "none"
  }));
}
SortIndicator.propTypes =  false ? undefined : {};
// CONCATENATED MODULE: ./node_modules/react-virtualized/dist/es/Table/defaultHeaderRenderer.js


/**
 * Default table header renderer.
 */

function defaultHeaderRenderer(_ref) {
  var dataKey = _ref.dataKey,
      label = _ref.label,
      sortBy = _ref.sortBy,
      sortDirection = _ref.sortDirection;
  var showSortIndicator = sortBy === dataKey;
  var children = [react["createElement"]("span", {
    className: "ReactVirtualized__Table__headerTruncatedText",
    key: "label",
    title: typeof label === 'string' ? label : null
  }, label)];

  if (showSortIndicator) {
    children.push(react["createElement"](SortIndicator, {
      key: "SortIndicator",
      sortDirection: sortDirection
    }));
  }

  return children;
}
defaultHeaderRenderer.propTypes =  true ? null : undefined;


// CONCATENATED MODULE: ./node_modules/react-virtualized/dist/es/Table/defaultRowRenderer.js


/**
 * Default row renderer for Table.
 */

function defaultRowRenderer(_ref) {
  var className = _ref.className,
      columns = _ref.columns,
      index = _ref.index,
      key = _ref.key,
      onRowClick = _ref.onRowClick,
      onRowDoubleClick = _ref.onRowDoubleClick,
      onRowMouseOut = _ref.onRowMouseOut,
      onRowMouseOver = _ref.onRowMouseOver,
      onRowRightClick = _ref.onRowRightClick,
      rowData = _ref.rowData,
      style = _ref.style;
  var a11yProps = {
    'aria-rowindex': index + 1
  };

  if (onRowClick || onRowDoubleClick || onRowMouseOut || onRowMouseOver || onRowRightClick) {
    a11yProps['aria-label'] = 'row';
    a11yProps.tabIndex = 0;

    if (onRowClick) {
      a11yProps.onClick = function (event) {
        return onRowClick({
          event: event,
          index: index,
          rowData: rowData
        });
      };
    }

    if (onRowDoubleClick) {
      a11yProps.onDoubleClick = function (event) {
        return onRowDoubleClick({
          event: event,
          index: index,
          rowData: rowData
        });
      };
    }

    if (onRowMouseOut) {
      a11yProps.onMouseOut = function (event) {
        return onRowMouseOut({
          event: event,
          index: index,
          rowData: rowData
        });
      };
    }

    if (onRowMouseOver) {
      a11yProps.onMouseOver = function (event) {
        return onRowMouseOver({
          event: event,
          index: index,
          rowData: rowData
        });
      };
    }

    if (onRowRightClick) {
      a11yProps.onContextMenu = function (event) {
        return onRowRightClick({
          event: event,
          index: index,
          rowData: rowData
        });
      };
    }
  }

  return react["createElement"]("div", extends_default()({}, a11yProps, {
    className: className,
    key: key,
    role: "row",
    style: style
  }), columns);
}
defaultRowRenderer.propTypes =  true ? null : undefined;


// CONCATENATED MODULE: ./node_modules/react-virtualized/dist/es/Table/Column.js











/**
 * Describes the header and cell contents of a table column.
 */

var Column_Column = /*#__PURE__*/function (_React$Component) {
  inherits_default()(Column, _React$Component);

  function Column() {
    classCallCheck_default()(this, Column);

    return possibleConstructorReturn_default()(this, getPrototypeOf_default()(Column).apply(this, arguments));
  }

  return Column;
}(react["Component"]);

defineProperty_default()(Column_Column, "defaultProps", {
  cellDataGetter: defaultCellDataGetter,
  cellRenderer: defaultCellRenderer,
  defaultSortDirection: Table_SortDirection.ASC,
  flexGrow: 0,
  flexShrink: 1,
  headerRenderer: defaultHeaderRenderer,
  style: {}
});


Column_Column.propTypes =  false ? undefined : {};
// CONCATENATED MODULE: ./node_modules/react-virtualized/dist/es/Table/Table.js









function Table_ownKeys(object, enumerableOnly) {
  var keys = Object.keys(object);

  if (Object.getOwnPropertySymbols) {
    var symbols = Object.getOwnPropertySymbols(object);
    if (enumerableOnly) symbols = symbols.filter(function (sym) {
      return Object.getOwnPropertyDescriptor(object, sym).enumerable;
    });
    keys.push.apply(keys, symbols);
  }

  return keys;
}

function Table_objectSpread(target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i] != null ? arguments[i] : {};

    if (i % 2) {
      Table_ownKeys(source, true).forEach(function (key) {
        defineProperty_default()(target, key, source[key]);
      });
    } else if (Object.getOwnPropertyDescriptors) {
      Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
    } else {
      Table_ownKeys(source).forEach(function (key) {
        Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
      });
    }
  }

  return target;
}










/**
 * Table component with fixed headers and virtualized rows for improved performance with large data sets.
 * This component expects explicit width, height, and padding parameters.
 */

var Table_Table = /*#__PURE__*/function (_React$PureComponent) {
  inherits_default()(Table, _React$PureComponent);

  function Table(props) {
    var _this;

    classCallCheck_default()(this, Table);

    _this = possibleConstructorReturn_default()(this, getPrototypeOf_default()(Table).call(this, props));
    _this.state = {
      scrollbarWidth: 0
    };
    _this._createColumn = _this._createColumn.bind(assertThisInitialized_default()(_this));
    _this._createRow = _this._createRow.bind(assertThisInitialized_default()(_this));
    _this._onScroll = _this._onScroll.bind(assertThisInitialized_default()(_this));
    _this._onSectionRendered = _this._onSectionRendered.bind(assertThisInitialized_default()(_this));
    _this._setRef = _this._setRef.bind(assertThisInitialized_default()(_this));
    return _this;
  }

  createClass_default()(Table, [{
    key: "forceUpdateGrid",
    value: function forceUpdateGrid() {
      if (this.Grid) {
        this.Grid.forceUpdate();
      }
    }
    /** See Grid#getOffsetForCell */

  }, {
    key: "getOffsetForRow",
    value: function getOffsetForRow(_ref) {
      var alignment = _ref.alignment,
          index = _ref.index;

      if (this.Grid) {
        var _this$Grid$getOffsetF = this.Grid.getOffsetForCell({
          alignment: alignment,
          rowIndex: index
        }),
            scrollTop = _this$Grid$getOffsetF.scrollTop;

        return scrollTop;
      }

      return 0;
    }
    /** CellMeasurer compatibility */

  }, {
    key: "invalidateCellSizeAfterRender",
    value: function invalidateCellSizeAfterRender(_ref2) {
      var columnIndex = _ref2.columnIndex,
          rowIndex = _ref2.rowIndex;

      if (this.Grid) {
        this.Grid.invalidateCellSizeAfterRender({
          rowIndex: rowIndex,
          columnIndex: columnIndex
        });
      }
    }
    /** See Grid#measureAllCells */

  }, {
    key: "measureAllRows",
    value: function measureAllRows() {
      if (this.Grid) {
        this.Grid.measureAllCells();
      }
    }
    /** CellMeasurer compatibility */

  }, {
    key: "recomputeGridSize",
    value: function recomputeGridSize() {
      var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
          _ref3$columnIndex = _ref3.columnIndex,
          columnIndex = _ref3$columnIndex === void 0 ? 0 : _ref3$columnIndex,
          _ref3$rowIndex = _ref3.rowIndex,
          rowIndex = _ref3$rowIndex === void 0 ? 0 : _ref3$rowIndex;

      if (this.Grid) {
        this.Grid.recomputeGridSize({
          rowIndex: rowIndex,
          columnIndex: columnIndex
        });
      }
    }
    /** See Grid#recomputeGridSize */

  }, {
    key: "recomputeRowHeights",
    value: function recomputeRowHeights() {
      var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;

      if (this.Grid) {
        this.Grid.recomputeGridSize({
          rowIndex: index
        });
      }
    }
    /** See Grid#scrollToPosition */

  }, {
    key: "scrollToPosition",
    value: function scrollToPosition() {
      var scrollTop = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;

      if (this.Grid) {
        this.Grid.scrollToPosition({
          scrollTop: scrollTop
        });
      }
    }
    /** See Grid#scrollToCell */

  }, {
    key: "scrollToRow",
    value: function scrollToRow() {
      var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;

      if (this.Grid) {
        this.Grid.scrollToCell({
          columnIndex: 0,
          rowIndex: index
        });
      }
    }
  }, {
    key: "getScrollbarWidth",
    value: function getScrollbarWidth() {
      if (this.Grid) {
        var _Grid = Object(react_dom["findDOMNode"])(this.Grid);

        var clientWidth = _Grid.clientWidth || 0;
        var offsetWidth = _Grid.offsetWidth || 0;
        return offsetWidth - clientWidth;
      }

      return 0;
    }
  }, {
    key: "componentDidMount",
    value: function componentDidMount() {
      this._setScrollbarWidth();
    }
  }, {
    key: "componentDidUpdate",
    value: function componentDidUpdate() {
      this._setScrollbarWidth();
    }
  }, {
    key: "render",
    value: function render() {
      var _this2 = this;

      var _this$props = this.props,
          children = _this$props.children,
          className = _this$props.className,
          disableHeader = _this$props.disableHeader,
          gridClassName = _this$props.gridClassName,
          gridStyle = _this$props.gridStyle,
          headerHeight = _this$props.headerHeight,
          headerRowRenderer = _this$props.headerRowRenderer,
          height = _this$props.height,
          id = _this$props.id,
          noRowsRenderer = _this$props.noRowsRenderer,
          rowClassName = _this$props.rowClassName,
          rowStyle = _this$props.rowStyle,
          scrollToIndex = _this$props.scrollToIndex,
          style = _this$props.style,
          width = _this$props.width;
      var scrollbarWidth = this.state.scrollbarWidth;
      var availableRowsHeight = disableHeader ? height : height - headerHeight;
      var rowClass = typeof rowClassName === 'function' ? rowClassName({
        index: -1
      }) : rowClassName;
      var rowStyleObject = typeof rowStyle === 'function' ? rowStyle({
        index: -1
      }) : rowStyle; // Precompute and cache column styles before rendering rows and columns to speed things up

      this._cachedColumnStyles = [];
      react["Children"].toArray(children).forEach(function (column, index) {
        var flexStyles = _this2._getFlexStyleForColumn(column, column.props.style);

        _this2._cachedColumnStyles[index] = Table_objectSpread({
          overflow: 'hidden'
        }, flexStyles);
      }); // Note that we specify :rowCount, :scrollbarWidth, :sortBy, and :sortDirection as properties on Grid even though these have nothing to do with Grid.
      // This is done because Grid is a pure component and won't update unless its properties or state has changed.
      // Any property that should trigger a re-render of Grid then is specified here to avoid a stale display.

      return react["createElement"]("div", {
        "aria-label": this.props['aria-label'],
        "aria-labelledby": this.props['aria-labelledby'],
        "aria-colcount": react["Children"].toArray(children).length,
        "aria-rowcount": this.props.rowCount,
        className: Object(clsx_m["a" /* default */])('ReactVirtualized__Table', className),
        id: id,
        role: "grid",
        style: style
      }, !disableHeader && headerRowRenderer({
        className: Object(clsx_m["a" /* default */])('ReactVirtualized__Table__headerRow', rowClass),
        columns: this._getHeaderColumns(),
        style: Table_objectSpread({
          height: headerHeight,
          overflow: 'hidden',
          paddingRight: scrollbarWidth,
          width: width
        }, rowStyleObject)
      }), react["createElement"](es_Grid_Grid, extends_default()({}, this.props, {
        "aria-readonly": null,
        autoContainerWidth: true,
        className: Object(clsx_m["a" /* default */])('ReactVirtualized__Table__Grid', gridClassName),
        cellRenderer: this._createRow,
        columnWidth: width,
        columnCount: 1,
        height: availableRowsHeight,
        id: undefined,
        noContentRenderer: noRowsRenderer,
        onScroll: this._onScroll,
        onSectionRendered: this._onSectionRendered,
        ref: this._setRef,
        role: "rowgroup",
        scrollbarWidth: scrollbarWidth,
        scrollToRow: scrollToIndex,
        style: Table_objectSpread({}, gridStyle, {
          overflowX: 'hidden'
        })
      })));
    }
  }, {
    key: "_createColumn",
    value: function _createColumn(_ref4) {
      var column = _ref4.column,
          columnIndex = _ref4.columnIndex,
          isScrolling = _ref4.isScrolling,
          parent = _ref4.parent,
          rowData = _ref4.rowData,
          rowIndex = _ref4.rowIndex;
      var onColumnClick = this.props.onColumnClick;
      var _column$props = column.props,
          cellDataGetter = _column$props.cellDataGetter,
          cellRenderer = _column$props.cellRenderer,
          className = _column$props.className,
          columnData = _column$props.columnData,
          dataKey = _column$props.dataKey,
          id = _column$props.id;
      var cellData = cellDataGetter({
        columnData: columnData,
        dataKey: dataKey,
        rowData: rowData
      });
      var renderedCell = cellRenderer({
        cellData: cellData,
        columnData: columnData,
        columnIndex: columnIndex,
        dataKey: dataKey,
        isScrolling: isScrolling,
        parent: parent,
        rowData: rowData,
        rowIndex: rowIndex
      });

      var onClick = function onClick(event) {
        onColumnClick && onColumnClick({
          columnData: columnData,
          dataKey: dataKey,
          event: event
        });
      };

      var style = this._cachedColumnStyles[columnIndex];
      var title = typeof renderedCell === 'string' ? renderedCell : null; // Avoid using object-spread syntax with multiple objects here,
      // Since it results in an extra method call to 'babel-runtime/helpers/extends'
      // See PR https://github.com/bvaughn/react-virtualized/pull/942

      return react["createElement"]("div", {
        "aria-colindex": columnIndex + 1,
        "aria-describedby": id,
        className: Object(clsx_m["a" /* default */])('ReactVirtualized__Table__rowColumn', className),
        key: 'Row' + rowIndex + '-' + 'Col' + columnIndex,
        onClick: onClick,
        role: "gridcell",
        style: style,
        title: title
      }, renderedCell);
    }
  }, {
    key: "_createHeader",
    value: function _createHeader(_ref5) {
      var column = _ref5.column,
          index = _ref5.index;
      var _this$props2 = this.props,
          headerClassName = _this$props2.headerClassName,
          headerStyle = _this$props2.headerStyle,
          onHeaderClick = _this$props2.onHeaderClick,
          sort = _this$props2.sort,
          sortBy = _this$props2.sortBy,
          sortDirection = _this$props2.sortDirection;
      var _column$props2 = column.props,
          columnData = _column$props2.columnData,
          dataKey = _column$props2.dataKey,
          defaultSortDirection = _column$props2.defaultSortDirection,
          disableSort = _column$props2.disableSort,
          headerRenderer = _column$props2.headerRenderer,
          id = _column$props2.id,
          label = _column$props2.label;
      var sortEnabled = !disableSort && sort;
      var classNames = Object(clsx_m["a" /* default */])('ReactVirtualized__Table__headerColumn', headerClassName, column.props.headerClassName, {
        ReactVirtualized__Table__sortableHeaderColumn: sortEnabled
      });

      var style = this._getFlexStyleForColumn(column, Table_objectSpread({}, headerStyle, {}, column.props.headerStyle));

      var renderedHeader = headerRenderer({
        columnData: columnData,
        dataKey: dataKey,
        disableSort: disableSort,
        label: label,
        sortBy: sortBy,
        sortDirection: sortDirection
      });
      var headerOnClick, headerOnKeyDown, headerTabIndex, headerAriaSort, headerAriaLabel;

      if (sortEnabled || onHeaderClick) {
        // If this is a sortable header, clicking it should update the table data's sorting.
        var isFirstTimeSort = sortBy !== dataKey; // If this is the firstTime sort of this column, use the column default sort order.
        // Otherwise, invert the direction of the sort.

        var newSortDirection = isFirstTimeSort ? defaultSortDirection : sortDirection === Table_SortDirection.DESC ? Table_SortDirection.ASC : Table_SortDirection.DESC;

        var onClick = function onClick(event) {
          sortEnabled && sort({
            defaultSortDirection: defaultSortDirection,
            event: event,
            sortBy: dataKey,
            sortDirection: newSortDirection
          });
          onHeaderClick && onHeaderClick({
            columnData: columnData,
            dataKey: dataKey,
            event: event
          });
        };

        var onKeyDown = function onKeyDown(event) {
          if (event.key === 'Enter' || event.key === ' ') {
            onClick(event);
          }
        };

        headerAriaLabel = column.props['aria-label'] || label || dataKey;
        headerAriaSort = 'none';
        headerTabIndex = 0;
        headerOnClick = onClick;
        headerOnKeyDown = onKeyDown;
      }

      if (sortBy === dataKey) {
        headerAriaSort = sortDirection === Table_SortDirection.ASC ? 'ascending' : 'descending';
      } // Avoid using object-spread syntax with multiple objects here,
      // Since it results in an extra method call to 'babel-runtime/helpers/extends'
      // See PR https://github.com/bvaughn/react-virtualized/pull/942


      return react["createElement"]("div", {
        "aria-label": headerAriaLabel,
        "aria-sort": headerAriaSort,
        className: classNames,
        id: id,
        key: 'Header-Col' + index,
        onClick: headerOnClick,
        onKeyDown: headerOnKeyDown,
        role: "columnheader",
        style: style,
        tabIndex: headerTabIndex
      }, renderedHeader);
    }
  }, {
    key: "_createRow",
    value: function _createRow(_ref6) {
      var _this3 = this;

      var index = _ref6.rowIndex,
          isScrolling = _ref6.isScrolling,
          key = _ref6.key,
          parent = _ref6.parent,
          style = _ref6.style;
      var _this$props3 = this.props,
          children = _this$props3.children,
          onRowClick = _this$props3.onRowClick,
          onRowDoubleClick = _this$props3.onRowDoubleClick,
          onRowRightClick = _this$props3.onRowRightClick,
          onRowMouseOver = _this$props3.onRowMouseOver,
          onRowMouseOut = _this$props3.onRowMouseOut,
          rowClassName = _this$props3.rowClassName,
          rowGetter = _this$props3.rowGetter,
          rowRenderer = _this$props3.rowRenderer,
          rowStyle = _this$props3.rowStyle;
      var scrollbarWidth = this.state.scrollbarWidth;
      var rowClass = typeof rowClassName === 'function' ? rowClassName({
        index: index
      }) : rowClassName;
      var rowStyleObject = typeof rowStyle === 'function' ? rowStyle({
        index: index
      }) : rowStyle;
      var rowData = rowGetter({
        index: index
      });
      var columns = react["Children"].toArray(children).map(function (column, columnIndex) {
        return _this3._createColumn({
          column: column,
          columnIndex: columnIndex,
          isScrolling: isScrolling,
          parent: parent,
          rowData: rowData,
          rowIndex: index,
          scrollbarWidth: scrollbarWidth
        });
      });
      var className = Object(clsx_m["a" /* default */])('ReactVirtualized__Table__row', rowClass);

      var flattenedStyle = Table_objectSpread({}, style, {
        height: this._getRowHeight(index),
        overflow: 'hidden',
        paddingRight: scrollbarWidth
      }, rowStyleObject);

      return rowRenderer({
        className: className,
        columns: columns,
        index: index,
        isScrolling: isScrolling,
        key: key,
        onRowClick: onRowClick,
        onRowDoubleClick: onRowDoubleClick,
        onRowRightClick: onRowRightClick,
        onRowMouseOver: onRowMouseOver,
        onRowMouseOut: onRowMouseOut,
        rowData: rowData,
        style: flattenedStyle
      });
    }
    /**
     * Determines the flex-shrink, flex-grow, and width values for a cell (header or column).
     */

  }, {
    key: "_getFlexStyleForColumn",
    value: function _getFlexStyleForColumn(column) {
      var customStyle = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
      var flexValue = "".concat(column.props.flexGrow, " ").concat(column.props.flexShrink, " ").concat(column.props.width, "px");

      var style = Table_objectSpread({}, customStyle, {
        flex: flexValue,
        msFlex: flexValue,
        WebkitFlex: flexValue
      });

      if (column.props.maxWidth) {
        style.maxWidth = column.props.maxWidth;
      }

      if (column.props.minWidth) {
        style.minWidth = column.props.minWidth;
      }

      return style;
    }
  }, {
    key: "_getHeaderColumns",
    value: function _getHeaderColumns() {
      var _this4 = this;

      var _this$props4 = this.props,
          children = _this$props4.children,
          disableHeader = _this$props4.disableHeader;
      var items = disableHeader ? [] : react["Children"].toArray(children);
      return items.map(function (column, index) {
        return _this4._createHeader({
          column: column,
          index: index
        });
      });
    }
  }, {
    key: "_getRowHeight",
    value: function _getRowHeight(rowIndex) {
      var rowHeight = this.props.rowHeight;
      return typeof rowHeight === 'function' ? rowHeight({
        index: rowIndex
      }) : rowHeight;
    }
  }, {
    key: "_onScroll",
    value: function _onScroll(_ref7) {
      var clientHeight = _ref7.clientHeight,
          scrollHeight = _ref7.scrollHeight,
          scrollTop = _ref7.scrollTop;
      var onScroll = this.props.onScroll;
      onScroll({
        clientHeight: clientHeight,
        scrollHeight: scrollHeight,
        scrollTop: scrollTop
      });
    }
  }, {
    key: "_onSectionRendered",
    value: function _onSectionRendered(_ref8) {
      var rowOverscanStartIndex = _ref8.rowOverscanStartIndex,
          rowOverscanStopIndex = _ref8.rowOverscanStopIndex,
          rowStartIndex = _ref8.rowStartIndex,
          rowStopIndex = _ref8.rowStopIndex;
      var onRowsRendered = this.props.onRowsRendered;
      onRowsRendered({
        overscanStartIndex: rowOverscanStartIndex,
        overscanStopIndex: rowOverscanStopIndex,
        startIndex: rowStartIndex,
        stopIndex: rowStopIndex
      });
    }
  }, {
    key: "_setRef",
    value: function _setRef(ref) {
      this.Grid = ref;
    }
  }, {
    key: "_setScrollbarWidth",
    value: function _setScrollbarWidth() {
      var scrollbarWidth = this.getScrollbarWidth();
      this.setState({
        scrollbarWidth: scrollbarWidth
      });
    }
  }]);

  return Table;
}(react["PureComponent"]);

defineProperty_default()(Table_Table, "defaultProps", {
  disableHeader: false,
  estimatedRowSize: 30,
  headerHeight: 0,
  headerStyle: {},
  noRowsRenderer: function noRowsRenderer() {
    return null;
  },
  onRowsRendered: function onRowsRendered() {
    return null;
  },
  onScroll: function onScroll() {
    return null;
  },
  overscanIndicesGetter: accessibilityOverscanIndicesGetter_defaultOverscanIndicesGetter,
  overscanRowCount: 10,
  rowRenderer: defaultRowRenderer,
  headerRowRenderer: defaultHeaderRowRenderer,
  rowStyle: {},
  scrollToAlignment: 'auto',
  scrollToIndex: -1,
  style: {}
});


Table_Table.propTypes =  false ? undefined : {};

// CONCATENATED MODULE: ./node_modules/react-virtualized/dist/es/Table/index.js










/* harmony default export */ var es_Table = (Table_Table);

// CONCATENATED MODULE: ./node_modules/react-virtualized/dist/es/WindowScroller/utils/onScroll.js

var mountedInstances = [];
var originalBodyPointerEvents = null;
var disablePointerEventsTimeoutId = null;

function enablePointerEventsIfDisabled() {
  if (disablePointerEventsTimeoutId) {
    disablePointerEventsTimeoutId = null;

    if (document.body && originalBodyPointerEvents != null) {
      document.body.style.pointerEvents = originalBodyPointerEvents;
    }

    originalBodyPointerEvents = null;
  }
}

function enablePointerEventsAfterDelayCallback() {
  enablePointerEventsIfDisabled();
  mountedInstances.forEach(function (instance) {
    return instance.__resetIsScrolling();
  });
}

function enablePointerEventsAfterDelay() {
  if (disablePointerEventsTimeoutId) {
    requestAnimationTimeout_cancelAnimationTimeout(disablePointerEventsTimeoutId);
  }

  var maximumTimeout = 0;
  mountedInstances.forEach(function (instance) {
    maximumTimeout = Math.max(maximumTimeout, instance.props.scrollingResetTimeInterval);
  });
  disablePointerEventsTimeoutId = requestAnimationTimeout_requestAnimationTimeout(enablePointerEventsAfterDelayCallback, maximumTimeout);
}

function onScrollWindow(event) {
  if (event.currentTarget === window && originalBodyPointerEvents == null && document.body) {
    originalBodyPointerEvents = document.body.style.pointerEvents;
    document.body.style.pointerEvents = 'none';
  }

  enablePointerEventsAfterDelay();
  mountedInstances.forEach(function (instance) {
    if (instance.props.scrollElement === event.currentTarget) {
      instance.__handleWindowScrollEvent();
    }
  });
}

function registerScrollListener(component, element) {
  if (!mountedInstances.some(function (instance) {
    return instance.props.scrollElement === element;
  })) {
    element.addEventListener('scroll', onScrollWindow);
  }

  mountedInstances.push(component);
}
function unregisterScrollListener(component, element) {
  mountedInstances = mountedInstances.filter(function (instance) {
    return instance !== component;
  });

  if (!mountedInstances.length) {
    element.removeEventListener('scroll', onScrollWindow);

    if (disablePointerEventsTimeoutId) {
      requestAnimationTimeout_cancelAnimationTimeout(disablePointerEventsTimeoutId);
      enablePointerEventsIfDisabled();
    }
  }
}

// CONCATENATED MODULE: ./node_modules/react-virtualized/dist/es/WindowScroller/utils/dimensions.js
/**
 * Gets the dimensions of the element, accounting for API differences between
 * `window` and other DOM elements.
 */
// TODO Move this into WindowScroller and import from there
var isWindow = function isWindow(element) {
  return element === window;
};

var getBoundingBox = function getBoundingBox(element) {
  return element.getBoundingClientRect();
};

function getDimensions(scrollElement, props) {
  if (!scrollElement) {
    return {
      height: props.serverHeight,
      width: props.serverWidth
    };
  } else if (isWindow(scrollElement)) {
    var _window = window,
        innerHeight = _window.innerHeight,
        innerWidth = _window.innerWidth;
    return {
      height: typeof innerHeight === 'number' ? innerHeight : 0,
      width: typeof innerWidth === 'number' ? innerWidth : 0
    };
  } else {
    return getBoundingBox(scrollElement);
  }
}
/**
 * Gets the vertical and horizontal position of an element within its scroll container.
 * Elements that have been “scrolled past” return negative values.
 * Handles edge-case where a user is navigating back (history) from an already-scrolled page.
 * In this case the body’s top or left position will be a negative number and this element’s top or left will be increased (by that amount).
 */

function getPositionOffset(element, container) {
  if (isWindow(container) && document.documentElement) {
    var containerElement = document.documentElement;
    var elementRect = getBoundingBox(element);
    var containerRect = getBoundingBox(containerElement);
    return {
      top: elementRect.top - containerRect.top,
      left: elementRect.left - containerRect.left
    };
  } else {
    var scrollOffset = getScrollOffset(container);

    var _elementRect = getBoundingBox(element);

    var _containerRect = getBoundingBox(container);

    return {
      top: _elementRect.top + scrollOffset.top - _containerRect.top,
      left: _elementRect.left + scrollOffset.left - _containerRect.left
    };
  }
}
/**
 * Gets the vertical and horizontal scroll amount of the element, accounting for IE compatibility
 * and API differences between `window` and other DOM elements.
 */

function getScrollOffset(element) {
  if (isWindow(element) && document.documentElement) {
    return {
      top: 'scrollY' in window ? window.scrollY : document.documentElement.scrollTop,
      left: 'scrollX' in window ? window.scrollX : document.documentElement.scrollLeft
    };
  } else {
    return {
      top: element.scrollTop,
      left: element.scrollLeft
    };
  }
}
// CONCATENATED MODULE: ./node_modules/react-virtualized/dist/es/WindowScroller/WindowScroller.js








var WindowScroller_class, WindowScroller_temp;

function WindowScroller_ownKeys(object, enumerableOnly) {
  var keys = Object.keys(object);

  if (Object.getOwnPropertySymbols) {
    var symbols = Object.getOwnPropertySymbols(object);
    if (enumerableOnly) symbols = symbols.filter(function (sym) {
      return Object.getOwnPropertyDescriptor(object, sym).enumerable;
    });
    keys.push.apply(keys, symbols);
  }

  return keys;
}

function WindowScroller_objectSpread(target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i] != null ? arguments[i] : {};

    if (i % 2) {
      WindowScroller_ownKeys(source, true).forEach(function (key) {
        defineProperty_default()(target, key, source[key]);
      });
    } else if (Object.getOwnPropertyDescriptors) {
      Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
    } else {
      WindowScroller_ownKeys(source).forEach(function (key) {
        Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
      });
    }
  }

  return target;
}






/**
 * Specifies the number of miliseconds during which to disable pointer events while a scroll is in progress.
 * This improves performance and makes scrolling smoother.
 */

var WindowScroller_IS_SCROLLING_TIMEOUT = 150;

var getWindow = function getWindow() {
  return typeof window !== 'undefined' ? window : undefined;
};

var WindowScroller_WindowScroller = (WindowScroller_temp = WindowScroller_class = /*#__PURE__*/function (_React$PureComponent) {
  inherits_default()(WindowScroller, _React$PureComponent);

  function WindowScroller() {
    var _getPrototypeOf2;

    var _this;

    classCallCheck_default()(this, WindowScroller);

    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }

    _this = possibleConstructorReturn_default()(this, (_getPrototypeOf2 = getPrototypeOf_default()(WindowScroller)).call.apply(_getPrototypeOf2, [this].concat(args)));

    defineProperty_default()(assertThisInitialized_default()(_this), "_window", getWindow());

    defineProperty_default()(assertThisInitialized_default()(_this), "_isMounted", false);

    defineProperty_default()(assertThisInitialized_default()(_this), "_positionFromTop", 0);

    defineProperty_default()(assertThisInitialized_default()(_this), "_positionFromLeft", 0);

    defineProperty_default()(assertThisInitialized_default()(_this), "_detectElementResize", void 0);

    defineProperty_default()(assertThisInitialized_default()(_this), "_child", void 0);

    defineProperty_default()(assertThisInitialized_default()(_this), "state", WindowScroller_objectSpread({}, getDimensions(_this.props.scrollElement, _this.props), {
      isScrolling: false,
      scrollLeft: 0,
      scrollTop: 0
    }));

    defineProperty_default()(assertThisInitialized_default()(_this), "_registerChild", function (element) {
      if (element && !(element instanceof Element)) {
        console.warn('WindowScroller registerChild expects to be passed Element or null');
      }

      _this._child = element;

      _this.updatePosition();
    });

    defineProperty_default()(assertThisInitialized_default()(_this), "_onChildScroll", function (_ref) {
      var scrollTop = _ref.scrollTop;

      if (_this.state.scrollTop === scrollTop) {
        return;
      }

      var scrollElement = _this.props.scrollElement;

      if (scrollElement) {
        if (typeof scrollElement.scrollTo === 'function') {
          scrollElement.scrollTo(0, scrollTop + _this._positionFromTop);
        } else {
          scrollElement.scrollTop = scrollTop + _this._positionFromTop;
        }
      }
    });

    defineProperty_default()(assertThisInitialized_default()(_this), "_registerResizeListener", function (element) {
      if (element === window) {
        window.addEventListener('resize', _this._onResize, false);
      } else {
        _this._detectElementResize.addResizeListener(element, _this._onResize);
      }
    });

    defineProperty_default()(assertThisInitialized_default()(_this), "_unregisterResizeListener", function (element) {
      if (element === window) {
        window.removeEventListener('resize', _this._onResize, false);
      } else if (element) {
        _this._detectElementResize.removeResizeListener(element, _this._onResize);
      }
    });

    defineProperty_default()(assertThisInitialized_default()(_this), "_onResize", function () {
      _this.updatePosition();
    });

    defineProperty_default()(assertThisInitialized_default()(_this), "__handleWindowScrollEvent", function () {
      if (!_this._isMounted) {
        return;
      }

      var onScroll = _this.props.onScroll;
      var scrollElement = _this.props.scrollElement;

      if (scrollElement) {
        var scrollOffset = getScrollOffset(scrollElement);
        var scrollLeft = Math.max(0, scrollOffset.left - _this._positionFromLeft);
        var scrollTop = Math.max(0, scrollOffset.top - _this._positionFromTop);

        _this.setState({
          isScrolling: true,
          scrollLeft: scrollLeft,
          scrollTop: scrollTop
        });

        onScroll({
          scrollLeft: scrollLeft,
          scrollTop: scrollTop
        });
      }
    });

    defineProperty_default()(assertThisInitialized_default()(_this), "__resetIsScrolling", function () {
      _this.setState({
        isScrolling: false
      });
    });

    return _this;
  }

  createClass_default()(WindowScroller, [{
    key: "updatePosition",
    value: function updatePosition() {
      var scrollElement = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props.scrollElement;
      var onResize = this.props.onResize;
      var _this$state = this.state,
          height = _this$state.height,
          width = _this$state.width;
      var thisNode = this._child || react_dom["findDOMNode"](this);

      if (thisNode instanceof Element && scrollElement) {
        var offset = getPositionOffset(thisNode, scrollElement);
        this._positionFromTop = offset.top;
        this._positionFromLeft = offset.left;
      }

      var dimensions = getDimensions(scrollElement, this.props);

      if (height !== dimensions.height || width !== dimensions.width) {
        this.setState({
          height: dimensions.height,
          width: dimensions.width
        });
        onResize({
          height: dimensions.height,
          width: dimensions.width
        });
      }
    }
  }, {
    key: "componentDidMount",
    value: function componentDidMount() {
      var scrollElement = this.props.scrollElement;
      this._detectElementResize = Object(detectElementResize["a" /* default */])();
      this.updatePosition(scrollElement);

      if (scrollElement) {
        registerScrollListener(this, scrollElement);

        this._registerResizeListener(scrollElement);
      }

      this._isMounted = true;
    }
  }, {
    key: "componentDidUpdate",
    value: function componentDidUpdate(prevProps, prevState) {
      var scrollElement = this.props.scrollElement;
      var prevScrollElement = prevProps.scrollElement;

      if (prevScrollElement !== scrollElement && prevScrollElement != null && scrollElement != null) {
        this.updatePosition(scrollElement);
        unregisterScrollListener(this, prevScrollElement);
        registerScrollListener(this, scrollElement);

        this._unregisterResizeListener(prevScrollElement);

        this._registerResizeListener(scrollElement);
      }
    }
  }, {
    key: "componentWillUnmount",
    value: function componentWillUnmount() {
      var scrollElement = this.props.scrollElement;

      if (scrollElement) {
        unregisterScrollListener(this, scrollElement);

        this._unregisterResizeListener(scrollElement);
      }

      this._isMounted = false;
    }
  }, {
    key: "render",
    value: function render() {
      var children = this.props.children;
      var _this$state2 = this.state,
          isScrolling = _this$state2.isScrolling,
          scrollTop = _this$state2.scrollTop,
          scrollLeft = _this$state2.scrollLeft,
          height = _this$state2.height,
          width = _this$state2.width;
      return children({
        onChildScroll: this._onChildScroll,
        registerChild: this._registerChild,
        height: height,
        isScrolling: isScrolling,
        scrollLeft: scrollLeft,
        scrollTop: scrollTop,
        width: width
      });
    }
  }]);

  return WindowScroller;
}(react["PureComponent"]), defineProperty_default()(WindowScroller_class, "propTypes",  true ? null : undefined), WindowScroller_temp);

defineProperty_default()(WindowScroller_WindowScroller, "defaultProps", {
  onResize: function onResize() {},
  onScroll: function onScroll() {},
  scrollingResetTimeInterval: WindowScroller_IS_SCROLLING_TIMEOUT,
  scrollElement: getWindow(),
  serverHeight: 0,
  serverWidth: 0
});



// CONCATENATED MODULE: ./node_modules/react-virtualized/dist/es/WindowScroller/index.js

/* harmony default export */ var es_WindowScroller = (WindowScroller_WindowScroller);

// CONCATENATED MODULE: ./node_modules/react-virtualized/dist/es/index.js














/***/ }),

/***/ "cB30":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXPORTS
__webpack_require__.d(__webpack_exports__, "b", function() { return /* binding */ withDividers; });

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__("q1tI");
var react_default = /*#__PURE__*/__webpack_require__.n(react);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/hooks/useIntl.ts
var useIntl = __webpack_require__("BuN4");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/utils/intersperse.ts
/**
 * Put an item between each entry of an array.
 * Example:
 *   > intersperse([1, 2, 3], 0)
 *   [1, 0, 2, 0, 3]
 */
function intersperse(array, separator) {
    return intersperseWith(array, (_) => separator);
}
function intersperseWith(array, getSeparator) {
    return array.reduce((result, item, index) => index < array.length - 1
        ? result.concat(item, getSeparator(index))
        : result.concat(item), []);
}

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/components/header/Toolbar.css
var Toolbar = __webpack_require__("I86r");
var Toolbar_default = /*#__PURE__*/__webpack_require__.n(Toolbar);

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/components/header/Toolbar.tsx




function Toolbar_Toolbar({ children, justifyContent }) {
    const intl = Object(useIntl["a" /* default */])();
    const ariaLabel = intl.formatMessage({ id: 'toolbar.tools' });
    return (react_default.a.createElement("div", { className: Toolbar_default.a.Toolbar, style: { justifyContent }, role: "region", "aria-label": ariaLabel }, children));
}
function Spacer() {
    return react_default.a.createElement("div", { className: Toolbar_default.a.Spacer });
}
function Divider() {
    return react_default.a.createElement("div", { className: Toolbar_default.a.Divider });
}
function Expander() {
    return react_default.a.createElement("div", { className: Toolbar_default.a.Expander });
}
/**
 * Insert a Toolbar Divider in between each set of elements, being careful to
 * not show two adjacent dividers if one section is empty or falsey.
 */
function withDividers(elements) {
    return intersperseWith(elements.reduce((result, item) => {
        if (Array.isArray(item)) {
            const nonEmptyItems = item.filter(Boolean);
            if (nonEmptyItems.length) {
                return [...result, nonEmptyItems];
            }
            else {
                return result;
            }
        }
        else if (item) {
            return [...result, item];
        }
        else {
            return result;
        }
    }, []), (index) => react_default.a.createElement(Divider, { key: index.toString() }));
}
/* harmony default export */ var header_Toolbar = __webpack_exports__["a"] = (Object.assign(Toolbar_Toolbar, { Spacer, Divider, Expander }));


/***/ }),

/***/ "cCFZ":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);

// EXPORTS
__webpack_require__.d(__webpack_exports__, "LicenseType", function() { return /* binding */ LicenseType; });
__webpack_require__.d(__webpack_exports__, "ToastalName", function() { return /* binding */ ToastalName; });
__webpack_require__.d(__webpack_exports__, "RouteName", function() { return /* binding */ RouteName; });
__webpack_require__.d(__webpack_exports__, "mainStore", function() { return /* binding */ mainStore; });
__webpack_require__.d(__webpack_exports__, "storeComponent", function() { return /* binding */ storeComponent; });

// EXTERNAL MODULE: ./src/js/start/stores/RecentFilesStore.tsx
var RecentFilesStore = __webpack_require__("s0Tu");

// EXTERNAL MODULE: ./node_modules/@ccx-public/acpl-model-uxp-types/src/index.ts
var src = __webpack_require__("XQlG");

// EXTERNAL MODULE: ./src/js/start/stores/StoreUtil.tsx
var StoreUtil = __webpack_require__("L55F");

// EXTERNAL MODULE: ./src/js/start/stores/UserStore.tsx
var UserStore = __webpack_require__("VExq");

// EXTERNAL MODULE: ./src/components-start/constants.tsx
var constants = __webpack_require__("/0Ih");

// EXTERNAL MODULE: ./src/js/iaw/localstorage.tsx
var localstorage = __webpack_require__("p789");

// EXTERNAL MODULE: ./src/js/iaw/analytics.tsx
var analytics = __webpack_require__("RGcl");

// EXTERNAL MODULE: ./src/js/iaw/jsUtil.tsx
var jsUtil = __webpack_require__("KTUt");

// EXTERNAL MODULE: ./node_modules/mobx-state-tree/dist/mobx-state-tree.module.js
var mobx_state_tree_module = __webpack_require__("99Ma");

// EXTERNAL MODULE: ./src/applications/index.tsx + 7 modules
var applications = __webpack_require__("3UBC");

// EXTERNAL MODULE: ./src/components-start/performance.tsx
var performance = __webpack_require__("r1jx");

// EXTERNAL MODULE: ./node_modules/mobx/lib/mobx.module.js
var mobx_module = __webpack_require__("2vnA");

// EXTERNAL MODULE: ./src/components/Search/Federer.tsx + 1 modules
var Federer = __webpack_require__("xw8E");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/index.tsx + 12 modules
var ccx_cdo = __webpack_require__("t+6E");

// EXTERNAL MODULE: ./src/components/Search/NetUtil.tsx
var NetUtil = __webpack_require__("1lnv");

// CONCATENATED MODULE: ./src/components/Search/AutocompleteMenuItem.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2020 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/

const AutocompleteMenuItem = mobx_state_tree_module["h" /* types */].model('AutocompleteMenuItem', {
    label: mobx_state_tree_module["h" /* types */].string,
    value: mobx_state_tree_module["h" /* types */].string,
    icon: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].string),
});

// CONCATENATED MODULE: ./src/components/Search/AutocompleteHandler.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2020 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/




const AUTOCOMPLETE_QUERY_LIMIT = 10;
const SEARCH_DROPDOWN_ITEMS_COUNT = 6;
const SEARCH_HISTORY_MIN_ITEMS_COUNT = 2;
const AUTOCOMPLETE_URL = {
    STAGE: 'https://adobesearch-atc-stage.adobe.io/autocomplete/authcompletions',
    PRODUCTION: 'https://adobesearch-atc.adobe.io/autocomplete/authcompletions',
};
const HOMESCREEN_SURFACE_STRING = 'CCXInAppWelcomeUXP3';
const API_KEY = 'CCXInAppWelcomeUXP3';
class AutocompleteHandler_AutocompleteHandler {
    constructor() {
        this.autocompleteEnabled = false;
        this.autocompleteEnabled = !!(applications["a" /* default */] && applications["a" /* default */].isSearchSupported && applications["a" /* default */].isSearchAutocompleteEnabled);
    }
    getSearchUrl(isStaging = true) {
        return isStaging ? AUTOCOMPLETE_URL.STAGE : AUTOCOMPLETE_URL.PRODUCTION;
    }
    /**
     * This function makes the call to the autocomplete service and returns suggestions.
     * @param isStaging True if we're on Stage.
     * @param term Search term used for filtering suggestions.
     */
    async fetchAutocompleteTerms(isStaging, term) {
        if (!this.autocompleteEnabled || !term || term.trim().length === 0) {
            return [];
        }
        // excluding product_list filtering for now, will add it later on if ID filtering works as expected
        // product_list: [host.name && host.name.toLocaleLowerCase()],
        const payload = {
            q: term,
            locale: applications["a" /* default */].language,
            scope: ['cc_search'],
            text_type: ['query'],
            limit: {
                query_limit: AUTOCOMPLETE_QUERY_LIMIT,
            },
            context: {
                source: {
                    name: applications["a" /* default */].id,
                    platform: navigator.platform,
                    surface: HOMESCREEN_SURFACE_STRING,
                },
            },
        };
        // we're using the POST endpoint at the Search team's recommendation
        const requestOptions = {
            url: this.getSearchUrl(isStaging),
            method: 'POST',
            json: true,
            retries: 3,
            headers: {
                'x-api-key': API_KEY,
                'Content-Type': 'application/json',
            },
            body: payload,
        };
        try {
            const response = await NetUtil["a" /* default */].requestWithAccessToken(requestOptions, true);
            const autocompleteResponse = await response.json();
            return ((autocompleteResponse &&
                autocompleteResponse.suggested_completions &&
                autocompleteResponse.suggested_completions.map(item => item.name)) ||
                []);
        }
        catch (error) {
            // Disabled logging, in case it becomes too verbose
            // console.warn('Failed to load autocompletions: ', error);
            analytics["a" /* default */].logErrorEvent('search-autocomplete-error', {
                error: {
                    desc: `Failed to load autocomplete suggestions for search term: ${term}: ${error && error.message}`,
                    type: 'initialization',
                },
                term: term,
            });
        }
        return [];
    }
    /**
     * Removes the autocomplete suggestions that are also present in the search history.
     * Original CC Search code here: https://git.corp.adobe.com/cchome/search/blob/bcb50c210e5d0e40cbdd9baff81225020e8992a3/src/utils/SearchUtils.js#L673
     *
     * @param autocompleteItems Array of strings containing autocomplete options.
     * @param historyItems Array of strings containing the most recent searches.
     * @returns An array of autocomplete suggestions that are not present in the search history.
     */
    removeAutocompleteHistoryDuplicates(autocompleteItems, historyItems) {
        if (!autocompleteItems || autocompleteItems.length === 0) {
            return [];
        }
        let filteredItems = [];
        if (historyItems && historyItems.length > 0) {
            // this is the number of suggestions we can show, in addition to the ones we already have in our history
            const autocompleteItemsCount = Math.max(SEARCH_DROPDOWN_ITEMS_COUNT - historyItems.length, 0);
            // if there's no more space left for suggestions, there's no point in filtering
            if (autocompleteItemsCount > 0) {
                const historyItemsLC = historyItems.map(item => item.toLocaleLowerCase());
                const autocompleteItemsLC = autocompleteItems.map(item => item.toLocaleLowerCase());
                // only keep the items that aren't already in our history
                filteredItems = autocompleteItemsLC.filter(searchAutoCompleteItemLC => !historyItemsLC.includes(searchAutoCompleteItemLC));
                // reduce number of suggestions to show at most SEARCH_DROPDOWN_ITEMS_COUNT items
                filteredItems = filteredItems.splice(0, autocompleteItemsCount);
            }
        }
        else {
            filteredItems = autocompleteItems.splice(0, SEARCH_DROPDOWN_ITEMS_COUNT);
        }
        return filteredItems;
    }
    /**
     * Returns a filtered list of history items.
     * @param searchTerm Query string.
     * @param searchHistoryItems Complete list of history items.
     * @returns The list of Search History Items filtered by search query.
     */
    getFilteredSearchHistoryItems(searchTerm, searchHistoryItems) {
        let list = [];
        if (typeof searchTerm === 'string' && searchHistoryItems && searchHistoryItems.length > 0) {
            if (searchTerm !== '') {
                // Filters Search History Items based on Search Query
                const lowerCaseSearchQuery = searchTerm.toLocaleLowerCase();
                // Match Search Query from the start
                const re = new RegExp(`^${this.escapeRegExSpecialCharacters(lowerCaseSearchQuery)}`, 'g');
                list = searchHistoryItems.filter(item => item.match(re));
                if (this.autocompleteEnabled) {
                    // Return only the top SEARCH_HISTORY_MIN_ITEMS_COUNT search history items
                    list = list.slice(0, SEARCH_HISTORY_MIN_ITEMS_COUNT);
                }
            }
            else {
                list = searchHistoryItems;
                // Return only the top SEARCH_DROPDOWN_ITEMS_COUNT search history items
                list = list.slice(0, SEARCH_DROPDOWN_ITEMS_COUNT);
            }
        }
        return list;
    }
    /**
     * Escapes the special characters in the query.
     * @param query Query string.
     * @returns Escaped query string.
     */
    escapeRegExSpecialCharacters(query) {
        return query.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
    }
    /**
     * Returns a merged list of history items and autocomplete suggestions. This list can be used directly by the Autocomplete.
     * @param searchTerm Query string.
     * @param autocompleteItems List of autocomplete suggestions returned based on the searchTerm.
     * @param historyItems Search history items.
     * @returns A merged list of history items and autocomplete suggestions.
     */
    mergeAutocompleteItemsWithHistory(searchTerm, autocompleteItems, historyItems) {
        // filter the history items based on the current query
        const filteredHistoryItems = this.getFilteredSearchHistoryItems(searchTerm, historyItems);
        // keep the suggestions that aren't present in the search history
        const filteredAutocompleteItems = this.removeAutocompleteHistoryDuplicates(autocompleteItems, filteredHistoryItems);
        let result;
        // add the history items to the result list
        result =
            (filteredHistoryItems &&
                filteredHistoryItems.map(term => AutocompleteMenuItem.create({
                    label: term,
                    value: term,
                    // if autocomplete is not enabled, we don't want to display an icon
                    icon: this.autocompleteEnabled ? 'History' : undefined,
                }))) ||
                [];
        if (this.autocompleteEnabled && filteredAutocompleteItems && filteredAutocompleteItems.length > 0) {
            // add the suggestions to the list
            result = result.concat(filteredAutocompleteItems.map(term => AutocompleteMenuItem.create({
                label: term,
                value: term,
                icon: 'Search',
            })));
        }
        return result;
    }
}
/* harmony default export */ var Search_AutocompleteHandler = (new AutocompleteHandler_AutocompleteHandler());

// EXTERNAL MODULE: ./node_modules/fuse.js/dist/fuse.js
var fuse = __webpack_require__("/+cc");
var fuse_default = /*#__PURE__*/__webpack_require__.n(fuse);

// EXTERNAL MODULE: ./src/LoggerWrapper/Logger.tsx
var Logger = __webpack_require__("43WE");

// CONCATENATED MODULE: ./src/components/Search/UniversalSearchStore.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/










const _logger = Logger["a" /* default */].get('Search');
const RECENT_SEARCH_TERM_SIZE = 6; // setting this to 6 to match the behavior of CC Search
const LEARN_RESULTS_SIZE = 3;
const FUSE_OPTIONS = {
    shouldSort: true,
    tokenize: true,
    matchAllTokens: true,
    threshold: 0.4,
    location: 0,
    distance: 1000,
    maxPatternLength: 32,
    minMatchCharLength: 1,
    keys: ['normalizedTitle'],
};
let _renderEventGUIDs = [];
/**
 * Return the first rendition above a certain size.
 * If nothing found above minPixels the largest rendition will be chosen.
 */
function findRendition(renditions, minPixels = 76000) {
    let len = renditions ? renditions.length : 0; // there's a small chance that renditions is undefined
    let bestRendition;
    let maxRendition = renditions ? renditions[0] : null;
    let bestFit = Number.POSITIVE_INFINITY;
    let currentPixelCount = 0;
    if (len === 0) {
        // sometimes USS will return empty arrays, so we'll use a placeholder to handle that situation to keep the user informed.
        return {
            href: './images/filetypes/none.png',
            width: 350,
            height: 350,
            aspectRatio: 1,
        };
    }
    while (len--) {
        if (!renditions[len].height || !renditions[len].width) {
            continue;
        }
        currentPixelCount = renditions[len].height * renditions[len].width;
        if (currentPixelCount > maxRendition.height * maxRendition.width) {
            maxRendition = renditions[len];
        }
        if (currentPixelCount > minPixels && currentPixelCount < bestFit) {
            bestFit = currentPixelCount;
            bestRendition = renditions[len];
        }
    }
    // if nothing found, return max rendition
    if (!bestRendition) {
        return maxRendition;
    }
    return bestRendition;
}
const UniversalSearchStore = mobx_state_tree_module["h" /* types */]
    .model('UniversalSearchStore', {
    showSearch: false,
    term: '',
    recentsTerms: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].array(mobx_state_tree_module["h" /* types */].string), () => localstorage["a" /* default */].getGlobalItem('searchTerms') || []),
    recentFilesResults: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].array(ccx_cdo["l" /* Document */]), []),
    abandoned: false,
    totalSearchResults: 0,
    requestGUID: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].string),
    learnResults: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].array(mobx_state_tree_module["h" /* types */].frozen()), []),
    learnResultsTotal: 0,
    learnApplicableProducts: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].array(mobx_state_tree_module["h" /* types */].frozen()), []),
    stockResults: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].array(mobx_state_tree_module["h" /* types */].frozen()), []),
    stockResultsTotal: 0,
    stockInitialCount: 0,
    ccPhotosResults: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].array(mobx_state_tree_module["h" /* types */].frozen()), []),
    ccPhotosResultsTotal: 0,
    ccPhotosInitialCount: 0,
    ccCloudResults: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].array(mobx_state_tree_module["h" /* types */].frozen()), []),
    ccCloudResultsTotal: 0,
    // Temporary placeholder list until USS contains inapp tutorials
    inAppTutorialResults: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].array(mobx_state_tree_module["h" /* types */].frozen()), []),
    messageTitle: '',
    message: '',
    messageState: '',
    autocompleteTerms: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].array(mobx_state_tree_module["h" /* types */].string), []),
    autocompleteTermsChanged: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].boolean, false),
    autocompleteMenuItems: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].array(AutocompleteMenuItem), []),
})
    .views(self => ({
    get recentFilesTotal() {
        return self.recentFilesResults.length;
    },
    get maxLearnResultsToShow() {
        return LEARN_RESULTS_SIZE;
    },
}))
    .actions(selfie => {
    const self = selfie;
    let exitSearchCallback = null;
    return {
        setShowSearch(flag) {
            if (applications["a" /* default */].isCloudProjectsEnabled && flag && !exitSearchCallback) {
                const { sharedStore } = __webpack_require__("BuQ2");
                exitSearchCallback = sharedStore.hideCoachMarks();
            }
            self.showSearch = flag;
            if (!flag && exitSearchCallback) {
                exitSearchCallback === null || exitSearchCallback === void 0 ? void 0 : exitSearchCallback();
                exitSearchCallback = null;
            }
        },
        panelOpened() {
            self.abandoned = false;
        },
        userSearchInput() {
            self.abandoned = true;
        },
        panelClosed() {
            if (self.abandoned) {
                // Michaels abandoned ingest code here
            }
        },
        setMessage(obj) {
            self.message = obj.message;
            self.messageState = obj.state;
            self.messageTitle = obj.title;
        },
        clearMessage() {
            self.message = '';
            self.messageTitle = '';
            self.messageState = '';
        },
        clearResults() {
            self.recentFilesResults.clear();
            self.learnResults.clear();
            self.stockResults.clear();
            self.ccPhotosResults.clear();
            self.stockResultsTotal = 0;
            self.learnResultsTotal = 0;
            self.ccPhotosResultsTotal = 0;
            self.ccCloudResultsTotal = 0;
            self.requestGUID = '';
            // Temporary placeholder list until USS contains inapp tutorials
            self.inAppTutorialResults.clear();
            // when we clear the results we also clear any subscribed logs
            _renderEventGUIDs.forEach(renderEventGUID => analytics["a" /* default */].unsubscribeLogRenderedEvent(renderEventGUID));
            _renderEventGUIDs = [];
        },
        addSearchTerm(recentFiles, term) {
            self.abandoned = false;
            self.term = term;
            const idx = self.recentsTerms.indexOf(term);
            if (idx > -1) {
                self.recentsTerms.splice(idx, 1);
            }
            self.recentsTerms.unshift(term);
            // limit size
            self.recentsTerms.replace(self.recentsTerms.splice(0, RECENT_SEARCH_TERM_SIZE));
            localstorage["a" /* default */].setGlobalItem('searchTerms', self.recentsTerms);
            const results = new fuse_default.a(recentFiles.slice(), FUSE_OPTIONS).search(term.normalize());
            const test = results.map(item => Object(mobx_state_tree_module["c" /* clone */])(item));
            try {
                // @ts-ignore
                self.recentFilesResults.replace(test);
            }
            catch (e) {
                _logger.log('Fail Recent files results', e);
                debugger;
            }
            self.totalSearchResults = results.length;
        },
        fillAutocompleteTerms: Object(mobx_state_tree_module["d" /* flow */])(function* fillAutocompleteTerms(isStaging, term) {
            const autocompleteTerms = yield Search_AutocompleteHandler.fetchAutocompleteTerms(isStaging, term);
            self.autocompleteTerms = autocompleteTerms;
            self.autocompleteTermsChanged = true;
        }),
        clearAutocomplete() {
            self.autocompleteTerms.clear();
            self.autocompleteTermsChanged = true;
            self.autocompleteMenuItems.clear();
        },
        setRequestGuid(guid) {
            self.requestGUID = guid;
        },
        setMetrics(metrics) {
            self.totalSearchResults = metrics.total_hits + self.recentFilesTotal;
        },
        logRecentFilesRenderedEvent() {
            if (!self.recentFilesResults) {
                return;
            }
            // handle logging of MRU item renders - since event can be called more than once
            self.recentFilesResults.forEach(item => {
                // item.setRequestGUID(self.requestGUID);
                analytics["a" /* default */].logRenderedEvent('search-card', item);
                _renderEventGUIDs.push(analytics["a" /* default */].subscribeLogRenderedEvent(() => ['search-card', item]));
            });
            const renderEventParams = [
                'search-category',
                {
                    contentType: 'recentfiles',
                    count: self.recentFilesResults.length,
                    term: self.term,
                    requestGUID: self.requestGUID,
                }
            ];
            analytics["a" /* default */].logRenderedEvent(renderEventParams[0], renderEventParams[1]);
            _renderEventGUIDs.push(analytics["a" /* default */].subscribeLogRenderedEvent(() => renderEventParams));
        },
        setLearnResults(results) {
            self.learnResults =
                !results || !results.items
                    ? []
                    : results.items.slice(0, LEARN_RESULTS_SIZE).map((item, index) => {
                        const updatedItem = Object.assign({}, item, {
                            position: index,
                            contentType: 'learn',
                            term: self.term,
                            requestGUID: self.requestGUID,
                        });
                        analytics["a" /* default */].logRenderedEvent('search-card', updatedItem);
                        _renderEventGUIDs.push(analytics["a" /* default */].subscribeLogRenderedEvent(() => ['search-card', updatedItem]));
                        return updatedItem;
                    });
            self.learnResultsTotal = !results ? 0 : results.total_items;
            const renderEventParams = [
                'search-category',
                {
                    contentType: 'learn',
                    count: self.learnResultsTotal,
                    term: self.term,
                    requestGUID: self.requestGUID,
                }
            ];
            analytics["a" /* default */].logRenderedEvent(renderEventParams[0], renderEventParams[1]);
            _renderEventGUIDs.push(analytics["a" /* default */].subscribeLogRenderedEvent(() => renderEventParams));
            let prod = []; // assume there's nothing
            if (results && results.items && results.items[0]) {
                // drill into the obj completely before assuming a prop is on it (fixes IAW-2628)
                prod = results.items[0].learn_applicable_products || [];
            }
            self.learnApplicableProducts.replace(prod);
        },
        setInAppTutorialResults(results) {
            self.inAppTutorialResults = results;
        },
        setStockInitialCount(count) {
            self.stockInitialCount = count;
        },
        setStockResults(results) {
            if (results && Array.isArray(results.items)) {
                // Filter out Stock video assets as they don't have a rendition property.
                // Currently filtering by asset types via Federer API doesn't return
                // matching cc files. It's not an ideal solution, but a temporary
                // workaround until Federer becomes more stable with their filters.
                results.items = results.items.filter(item => {
                    return item.asset_type !== 'video';
                });
            }
            let rendition;
            self.stockResults =
                !results || results.total_items === 0
                    ? []
                    : results.items.map((image, index) => {
                        rendition = findRendition(image._links && image._links.rendition);
                        const updatedImage = Object.assign({}, image, {
                            thumb: {
                                href: rendition.href,
                                width: rendition.width,
                                height: rendition.height,
                                aspectRatio: rendition.width / rendition.height,
                            },
                            position: index,
                            contentType: 'stock',
                            term: self.term,
                            requestGUID: self.requestGUID,
                        });
                        analytics["a" /* default */].logRenderedEvent('search-card', updatedImage);
                        _renderEventGUIDs.push(analytics["a" /* default */].subscribeLogRenderedEvent(() => ['search-card', updatedImage]));
                        return updatedImage;
                    });
            self.stockResultsTotal = !results ? 0 : results.total_items;
            const renderEventParams = [
                'search-category',
                {
                    contentType: 'stock',
                    count: self.stockResultsTotal,
                    term: self.term,
                    requestGUID: self.requestGUID,
                }
            ];
            analytics["a" /* default */].logRenderedEvent(renderEventParams[0], renderEventParams[1]);
            _renderEventGUIDs.push(analytics["a" /* default */].subscribeLogRenderedEvent(() => renderEventParams));
        },
        setCcPhotosInitialCount(count) {
            self.ccPhotosInitialCount = count;
        },
        setCcPhotosResults(results) {
            if (!results) {
                return;
            }
            const newItems = results.items || [];
            // if a new query was executed. don't run for pagination
            if (self.ccPhotosResults.length === 0) {
                self.ccPhotosResultsTotal = results.total_items;
                const renderEventParams = [
                    'search-category',
                    {
                        contentType: 'ccphotos',
                        count: self.ccPhotosResultsTotal,
                        term: self.term,
                        requestGUID: self.requestGUID,
                    }
                ];
                analytics["a" /* default */].logRenderedEvent(renderEventParams[0], renderEventParams[1]);
                _renderEventGUIDs.push(analytics["a" /* default */].subscribeLogRenderedEvent(() => renderEventParams));
            }
            let rendition;
            self.ccPhotosResults.replace(self.ccPhotosResults.concat(newItems.map((image, index) => {
                rendition = findRendition(image._links && image._links.rendition);
                const updatedImage = Object.assign({}, image, {
                    thumb: {
                        href: rendition.href,
                        rendition: rendition.href,
                        width: rendition.width,
                        height: rendition.height,
                        id: Math.random(),
                        aspectRatio: rendition.width / rendition.height,
                        text: '',
                    },
                    position: index,
                    term: self.term,
                    requestGUID: self.requestGUID,
                    contentType: 'ccphotos',
                    get href() {
                        if (image._links && image._links.source) {
                            return image._links.source.href;
                        }
                        return this.largestRendition;
                    },
                    isFullRendition: image._links && image._links.source
                        ? image._links.source.href.endsWith('/master')
                        : false,
                    largestRendition: findRendition(image._links && image._links.rendition, Number.POSITIVE_INFINITY).href,
                });
                analytics["a" /* default */].logRenderedEvent('search-card', updatedImage);
                _renderEventGUIDs.push(analytics["a" /* default */].subscribeLogRenderedEvent(() => ['search-card', updatedImage]));
                return updatedImage;
            })));
        },
        getMoreCcPhotos() {
            if (self.ccPhotosResults.length < self.ccPhotosResultsTotal) {
                const promise = Federer["a" /* default */].loadCCPhotos(self.term, self.ccPhotosResults.length, 100);
                return promise.then(resp => {
                    self.setCcPhotosResults(resp.result_sets[0]);
                });
            }
            else {
                return Promise.resolve();
            }
        },
        setCcCloudResults(results) {
            self.ccCloudResults.replace(!results ? [] : results.items);
            self.ccCloudResultsTotal = !results ? 0 : results.total_items;
        },
        getAutocompleteMenuItems(searchTerm = '') {
            // If we know the list of autocomplete terms changed, then also change the cached menu items.
            // If nothing changed, return the same list of suggestions.
            if (self.autocompleteTermsChanged) {
                const mergedItems = Search_AutocompleteHandler.mergeAutocompleteItemsWithHistory(searchTerm, self.autocompleteTerms, self.recentsTerms);
                // If there are new suggestions or history items, update the menu items.
                // Otherwise, show the same suggestions.
                // This behavior is different than CC Search, but the Autocomplete component behaves weird when there are no completions.
                if (mergedItems.length > 0) {
                    self.autocompleteMenuItems.clear();
                    self.autocompleteMenuItems.push(...mergedItems);
                }
                self.autocompleteTermsChanged = false;
            }
            return self.autocompleteMenuItems;
        },
    };
});

// CONCATENATED MODULE: ./src/js/start/stores/MainStore.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/














var LicenseType;
(function (LicenseType) {
    LicenseType[LicenseType["NONE"] = 0] = "NONE";
    LicenseType[LicenseType["TRIAL"] = 1] = "TRIAL";
    LicenseType[LicenseType["RETAIL_SERIALIZED"] = 2] = "RETAIL_SERIALIZED";
    LicenseType[LicenseType["SUBSCRIPTION"] = 3] = "SUBSCRIPTION";
    LicenseType[LicenseType["VOLUME_SERIALIZED"] = 4] = "VOLUME_SERIALIZED";
    LicenseType[LicenseType["UNKNOWN"] = 5] = "UNKNOWN";
})(LicenseType || (LicenseType = {}));
var ToastalName;
(function (ToastalName) {
    ToastalName["WHATS_NEW"] = "WhatsNew";
    ToastalName["USER_INTENT_DIALOG"] = "UserIntentDialog";
})(ToastalName || (ToastalName = {}));
var RouteName;
(function (RouteName) {
    RouteName["ccphotos"] = "ccphotos";
    RouteName["cdo"] = "cdo";
    RouteName["cdo_deleted"] = "cdo_deleted";
    RouteName["cdo_shared_with_you"] = "cdo_shared_with_you";
    RouteName["custom"] = "custom";
    RouteName["home"] = "home";
    RouteName["learn"] = "learn";
    RouteName["projects"] = "projects";
    RouteName["startertemplate"] = "startertemplate";
    RouteName["sync"] = "sync";
})(RouteName || (RouteName = {}));
const RouteNameType = mobx_state_tree_module["h" /* types */].enumeration(Object.values(RouteName));
const ToastalNameType = mobx_state_tree_module["h" /* types */].enumeration(Object.values(ToastalName));
const MainStore_logger = Logger["a" /* default */].get('MainStore');
// For LocalStorage
const AppPrefsStore = mobx_state_tree_module["h" /* types */]
    .model('AppPrefsStore', {
    // Navigation State
    currentRoute: mobx_state_tree_module["h" /* types */].optional(RouteNameType, RouteName.home),
    // Used By Projects Component. Set to a URN to specify a project 1 up to launch on mount
    deepLink: mobx_state_tree_module["h" /* types */].maybeNull(mobx_state_tree_module["h" /* types */].string),
    currentItemView: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].map(mobx_state_tree_module["h" /* types */].string), {}),
    // Session Metrics
    launchCount: 0,
    sessionGUID: mobx_state_tree_module["h" /* types */].maybeNull(mobx_state_tree_module["h" /* types */].string),
    lastLoggedInUser: mobx_state_tree_module["h" /* types */].maybeNull(mobx_state_tree_module["h" /* types */].string),
})
    .actions(self => ({
    setSessionGuid(guid) {
        // trim() to make sure the guid isn't a blank space string that we've seen before (this breaks the analytics params)
        self.sessionGUID = guid && guid.trim();
    },
    save() {
        const prefs = Object.assign({}, Object(mobx_state_tree_module["f" /* getSnapshot */])(self));
        localstorage["a" /* default */].setGlobalItem(constants["k" /* default */].LOCALSTORE_KEYS.MAIN_PREFS, prefs);
    },
    load() {
        const savedPrefs = localstorage["a" /* default */].getGlobalItem(constants["k" /* default */].LOCALSTORE_KEYS.MAIN_PREFS);
        if (savedPrefs) {
            Object(mobx_state_tree_module["a" /* applySnapshot */])(self, savedPrefs);
        }
        if (applications["a" /* default */].shouldResetToHomeTab) {
            self.currentRoute = RouteName.home;
        }
        // Since start is a persistent extension, increment launch count with each
        // launch is a valid approach.
        self.launchCount++;
        this.save();
        MainStore_logger.info('self.launchCount', self.launchCount);
    },
    changeLaunchCount(value) {
        self.launchCount = value;
    },
}));
const SidekickStore = mobx_state_tree_module["h" /* types */]
    .model('SidekickStore', {
    frlOverride: false,
})
    .volatile(self => ({
    sidekickVisible: false,
    homeExperienceOverride: null,
    toastOverride: null,
    toastIdOverride: null,
    whatsNewOverride: null,
    toastalIdOverride: null,
    tutorialOverride: null,
    assetsPathOverride: null,
    restartSlideShow: false,
    carouselCardType: null,
    customContentDCRHS: null,
    isCustomContentLoaded: false,
    logs: '',
}))
    .actions(self => ({
    toggleSidekick() {
        self.sidekickVisible = !self.sidekickVisible;
    },
    setFRLOverride(frl) {
        self.frlOverride = frl;
        localstorage["a" /* default */].setGlobalItem(constants["k" /* default */].LOCALSTORE_KEYS.SIDEKICK_PREFS, { frlOverride: self.frlOverride });
    },
    setRestartSlideShow() {
        self.restartSlideShow = !self.restartSlideShow;
    },
    setHomeExperienceOverride(experience) {
        // @ts-ignore
        Object(mobx_state_tree_module["e" /* getParent */])(self).setShouldUseDefaultLayoutInFallbackMode(false); // Clear fallback state when setting a home override
        self.homeExperienceOverride = experience;
    },
    setToastOverride(experience) {
        self.toastOverride = experience;
    },
    setToastIdOverride(id) {
        self.toastIdOverride = id;
    },
    setWhatsNewOverride(experience) {
        self.whatsNewOverride = experience;
    },
    setToastalIdOverride(id) {
        self.toastalIdOverride = id;
    },
    setTutorialOverride(tutorialContent) {
        self.tutorialOverride = tutorialContent;
    },
    setAssetsPathOverride(path) {
        self.assetsPathOverride = path;
    },
    setLogs(logs) {
        self.logs = logs;
    },
    setCarouselCardType(type) {
        self.carouselCardType = type;
    },
    setCustomContentOverride(data) {
        self.customContentDCRHS = data;
    },
    load() {
        const savedPrefs = localstorage["a" /* default */].getGlobalItem(constants["k" /* default */].LOCALSTORE_KEYS.SIDEKICK_PREFS);
        if (savedPrefs && savedPrefs.frlOverride) {
            self.frlOverride = savedPrefs.frlOverride;
        }
    },
}));
const MainStore = mobx_state_tree_module["h" /* types */]
    .model('MainStore', {
    online: !!navigator.onLine,
    radarSessionGUID: jsUtil["a" /* default */].generateGUID(),
    prefs: mobx_state_tree_module["h" /* types */].optional(AppPrefsStore, {}),
    recentFilesStore: mobx_state_tree_module["h" /* types */].optional(RecentFilesStore["a" /* RecentFilesStore */], {}),
    sidekickStore: mobx_state_tree_module["h" /* types */].optional(SidekickStore, {}),
    user: mobx_state_tree_module["h" /* types */].optional(UserStore["d" /* User */], {}),
    messages: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].frozen(), null),
    colorTheme: 'dark',
    disableNativeControls: false,
    nujDropdownSelection: mobx_state_tree_module["h" /* types */].maybeNull(mobx_state_tree_module["h" /* types */].string),
    activeToastal: mobx_state_tree_module["h" /* types */].maybe(ToastalNameType),
    isToastalOpen: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].boolean),
    isToastalSettled: false,
    isLoading: true,
    searchStore: mobx_state_tree_module["h" /* types */].optional(UniversalSearchStore, {}),
    isGenuine: true,
    nonGenuineContent: mobx_state_tree_module["h" /* types */].maybeNull(mobx_state_tree_module["h" /* types */].model('NonGenuineContent', {
        position: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].string, ''),
        contentEnglish: mobx_state_tree_module["h" /* types */].string,
        contentLocalised: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].string, ''),
        locale: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].string, ''),
        ctaTextEnglish: mobx_state_tree_module["h" /* types */].string,
        ctaTextLocalised: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].string, ''),
        ctaUrl: mobx_state_tree_module["h" /* types */].string,
        color: mobx_state_tree_module["h" /* types */].string,
        ackSuccessStr: mobx_state_tree_module["h" /* types */].string,
        ackFailureStr: mobx_state_tree_module["h" /* types */].string,
    })),
    forceImage: mobx_state_tree_module["h" /* types */].maybeNull(mobx_state_tree_module["h" /* types */].model('ForceImage', {
        imagePath: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].string, ''),
        initializing: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].boolean, false),
    }))
})
    .volatile(self => ({
    didViewWelcomeMessagePerSession: false,
    // Force default layout flag if using fallback layout (in case of sophia data or components errors)
    shouldUseDefaultLayoutInFallbackMode: false,
    // Error message for why we're using default layout for debug panel
    errorMessageForDefaultLayout: '',
    cdoStatus: {},
}))
    .views(self => ({
    get shouldRenderFallback() {
        return self.shouldUseDefaultLayoutInFallbackMode;
    },
    get currentItemView() {
        switch (self.prefs.currentRoute) {
            case 'home':
                // @ts-ignore
                return self.recentFilesStore.prefs.currentItemView;
            default:
                return self.prefs.currentItemView.get(self.prefs.currentRoute) || constants["k" /* default */].DEFAULT_ITEM_VIEW;
        }
    },
    get cdoLocale() {
        // CDO locales only need the first 2 characters.
        // It doesnt support sub-locales.
        switch (applications["a" /* default */].language) {
            case 'zh_CN':
                return 'zh-hans';
            case 'zh_TW':
                return 'zh-hant';
            default:
                return applications["a" /* default */].language.slice(0, 2);
        }
    },
}))
    .actions(self => {
    return {
        async init() {
            await Object(performance["c" /* measure */])('MainStore Init', async () => {
                self.prefs.load();
                self.sidekickStore.load();
                self.recentFilesStore.init();
                self.prefs.setSessionGuid(await applications["a" /* default */].getSessionId());
                this._samContextPromise = src["a" /* ACPLModel */].getHostAssetContext()
                    .then(acplAssetContext => {
                    this._logger.log('SAMAssetContext succeeded');
                    this._samAssetContext = wrapAssetContext(acplAssetContext);
                    return this._samAssetContext;
                })
                    .catch(error => {
                    this._logger.error('SAMAssetContext failed', error);
                    this._samContextPromise = null;
                });
            });
        },
        async lateLoad() {
            // Update the message seen flag if the app goes to the background.
            // after being in foreground once.
            let wasVisible = applications["a" /* default */].isHomeScreenVisible;
            const dispose = Object(mobx_module["B" /* reaction */])(() => applications["a" /* default */].isHomeScreenVisible, () => {
                if (applications["a" /* default */].isHomeScreenVisible) {
                    wasVisible = true;
                }
                else if (wasVisible) {
                    MainStore_logger.info('Hiding Welcome Banner');
                    mainStore.setMessageSeenFlag(true);
                    dispose();
                }
            });
        },
        /**
         * Clear the path of the cahced data for the given request
         *
         * @param type		{String} type of path to lookup. (Home, Utut)
         */
        clearCache(type) {
            const path = StoreUtil["a" /* default */].routeToCache(type);
            if (path) {
                localstorage["a" /* default */].setUserItem(StoreUtil["a" /* default */].cachePath(path), {});
            }
            return;
        },
        setMessages(messages) {
            self.messages = messages;
        },
        setOnline(isOnline) {
            self.online = isOnline;
        },
        setCdoStatus(status) {
            self.cdoStatus = { ...self.cdoStatus, [status.type]: status.value };
        },
        navigate(page, deepLinkId) {
            var _a, _b;
            self.prefs.currentRoute = page;
            self.prefs.deepLink = deepLinkId || null;
            self.prefs.lastLoggedInUser = (_b = (_a = self.user) === null || _a === void 0 ? void 0 : _a.UserProfile) === null || _b === void 0 ? void 0 : _b.userId;
            self.prefs.save();
            applications["a" /* default */].onRouteNavigate(page);
        },
        setMessageSeenFlag(seen) {
            self.didViewWelcomeMessagePerSession = seen;
        },
        openToastal() {
            self.disableNativeControls = true;
            self.isToastalOpen = true;
        },
        closeToastal() {
            self.disableNativeControls = false;
            self.isToastalOpen = undefined; // Tell the WhatsNew/UserIntent Dialog component to manage its own visibility based on SharedSettings
        },
        setActiveToastal(toastalName, forceToastal = false) {
            if (!self.isToastalSettled || !applications["a" /* default */].isUserIntentDialogEnabled || forceToastal) {
                self.activeToastal = toastalName;
            }
        },
        setToastalSettled() {
            self.isToastalSettled = true;
        },
        async setShouldUseDefaultLayoutInFallbackMode(shouldUse, errorMessage = '', eventData = {}, shouldLog = false) {
            // in case there was an error, make sure we redirect to home
            self.shouldUseDefaultLayoutInFallbackMode = shouldUse;
            self.errorMessageForDefaultLayout = errorMessage;
            if (applications["a" /* default */].isCloudProjectsVisible) {
                const { sharedStore } = await __webpack_require__("BuQ2");
                sharedStore.updateStore({
                    displayCoachMarks: shouldUse,
                });
            }
            if (shouldLog) {
                const error = eventData.error
                    ? {
                        ...eventData.error,
                        //@ts-ignore
                        desc: `${errorMessage}: ${eventData.error.desc || eventData.error.stack}`,
                    }
                    : { desc: errorMessage };
                analytics["a" /* default */].logMiscellaneousEvent('fallback', {
                    ...eventData,
                    error,
                });
                MainStore_logger.error(`Rendering default layout in fallback mode. Reason: ${error.desc}`);
            }
        },
        /**
         * Sets the error for the default layout only if there is no error.
         *
         * If there is already an error that is being used to display the default
         * layout we do not want to change it as the current data might not even
         * get patched. But if we don't have that and there is an error that sophia
         * has sent us, we should be displaying that in the UI just in case we end
         * up with the default layout.
         *
         * @param {string} error
         */
        setPotentialErrorMessageForDefaultLayout(error) {
            self.errorMessageForDefaultLayout = self.errorMessageForDefaultLayout || error;
        },
        setColorTheme(theme) {
            self.colorTheme = theme;
        },
        setLoading(isLoading) {
            self.isLoading = isLoading;
        },
        setUserData(data) {
            self.user = data;
        },
        setDisableNativeControls(value) {
            self.disableNativeControls = value;
        },
        // Setting nuj dropdown selection to persist for single user session
        setNujDropdownForSession(value) {
            self.nujDropdownSelection = value;
        },
        setGenuine(isGenuine) {
            self.isGenuine = isGenuine;
        },
        setNonGenuineContent(nonGenuineContent) {
            self.nonGenuineContent = nonGenuineContent;
        },
        setForceImage(imagePath, initializing) {
            self.forceImage = {
                imagePath,
                initializing,
            };
        },
    };
});
const mainStore = MainStore.create({});
/* harmony default export */ var stores_MainStore = __webpack_exports__["default"] = (MainStore);
//(props: P & { children?: ReactNode }, context?: any): ReactElement<any> | null
function storeComponent(fn) {
    return props => fn(mainStore, props);
}


/***/ }),

/***/ "cDf5":
/***/ (function(module, exports) {

function _typeof(obj) {
  "@babel/helpers - typeof";

  if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
    module.exports = _typeof = function _typeof(obj) {
      return typeof obj;
    };

    module.exports["default"] = module.exports, module.exports.__esModule = true;
  } else {
    module.exports = _typeof = function _typeof(obj) {
      return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
    };

    module.exports["default"] = module.exports, module.exports.__esModule = true;
  }

  return _typeof(obj);
}

module.exports = _typeof;
module.exports["default"] = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "cHUd":
/***/ (function(module, exports, __webpack_require__) {

"use strict";
 // https://tc39.github.io/proposal-setmap-offrom/

var $export = __webpack_require__("Y7ZC");

module.exports = function (COLLECTION) {
  $export($export.S, COLLECTION, {
    of: function of() {
      var length = arguments.length;
      var A = new Array(length);

      while (length--) A[length] = arguments[length];

      return new this(A);
    }
  });
};

/***/ }),

/***/ "cK3p":
/***/ (function(module) {

module.exports = JSON.parse("{\"File\":\"Soubor\",\"Folder\":\"Složka\"}");

/***/ }),

/***/ "cON6":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _SpEventUtils = __webpack_require__("XU6Z");

var _autobindDecorator = _interopRequireDefault(__webpack_require__("gKdT"));

var _Button = _interopRequireDefault(__webpack_require__("pM4T"));

var _icon = __webpack_require__("vo16");

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

var _UxpButton = _interopRequireDefault(__webpack_require__("ueNY"));

const _excluded = ["label", "children", "variant", "logic", "quiet", "icon", "selected", "block", "className", "disabled", "invalid", "uxpUseNative", "autoFocus", "holdAffordance", "dropdownButton"];

var _class, _class2, _temp;

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

const VARIANTS = {
  quiet: {
    variant: 'primary',
    quiet: true
  },
  minimal: {
    variant: 'secondary',
    quiet: true
  },
  icon: {
    variant: 'action',
    quiet: true
  }
};
const SpVariants = {
  action: 'sp-action-button',
  toggle: 'sp-action-button',
  primary: 'sp-button',
  secondary: 'sp-button',
  cta: 'sp-button',
  warning: 'sp-button',
  overBackground: 'sp-button'
};

let SpUxpButton = (0, _autobindDecorator.default)(_class = (_temp = _class2 = class SpUxpButton extends _Button.default {
  constructor(props) {
    super(props);
    this.spButtonRef = /*#__PURE__*/_react.default.createRef();
  }

  handleEvent(event) {
    const eventName = Object.keys(this.props).filter(propName => propName.substr(2).toLowerCase() === event.type);

    if (this.props[eventName]) {
      this.props[eventName].call(event.target, event);
    }
  }

  componentDidMount() {
    (0, _SpEventUtils.attachEventListeners)(this.spButtonRef.current, this.props, this.handleEvent);
  }

  componentWillUnmount() {
    (0, _SpEventUtils.removeEventListeners)(this.spButtonRef.current, this.props, this.handleEvent);
  }

  componentDidUpdate(prevProps) {
    this.updateAllEventListeners = !(0, _SpEventUtils.updateEventListeners)(this.spButtonRef.current, prevProps, this.props, this.handleEvent, this.updateAllEventListeners);
  }
  /**
   * Focus the button
   */


  focus() {
    const spbuttonRef = this.spButtonRef.current;

    if (spbuttonRef) {
      spbuttonRef.focus();
    }
  }

  render() {
    let _this$props = this.props,
        {
      label,
      children,
      variant = 'secondary',
      logic,
      quiet,
      icon,
      selected,
      block,
      className,
      disabled,
      invalid,
      uxpUseNative = true,
      autoFocus,
      holdAffordance,
      dropdownButton = false
    } = _this$props,
        otherProps = _objectWithoutProperties(_this$props, _excluded); // Map variants for backwards compatibility


    if (VARIANTS[variant]) {
      let mappedVariant = VARIANTS[variant];
      let variantName = (mappedVariant.quiet ? 'quiet ' : '') + `"${mappedVariant.variant}"`;
      console.warn(`The "${variant}" variant of Button is deprecated. Please use the ${variantName} variant instead.`);
      ({
        variant,
        quiet
      } = mappedVariant);
    }

    let isSpVariantSupported = false;
    let SpElement = 'sp-button';

    if (SpVariants[variant] && !logic && !block && !invalid && !dropdownButton) {
      isSpVariantSupported = true;
      SpElement = SpVariants[variant];
    }

    const isIconPresent = icon !== undefined && icon !== null;
    const isChildrenOfTypeElement = children && typeof children !== 'string';
    const renderNonNativeButton = !uxpUseNative || isIconPresent || isChildrenOfTypeElement;
    const shouldRenderSpComponent = isSpVariantSupported && renderNonNativeButton;

    if (!isSpVariantSupported && renderNonNativeButton) {
      return super.render(); // this will create a non-native button (using span tag)
    }

    let labelContents = label || (typeof children === 'string' ? children : null);

    if (shouldRenderSpComponent) {
      return /*#__PURE__*/_react.default.createElement(SpElement, _extends({
        ref: this.spButtonRef,
        class: className,
        disabled: disabled ? true : null,
        quiet: quiet ? true : null,
        selected: selected ? true : null,
        "hold-affordance": holdAffordance ? true : null,
        variant: variant,
        autofocus: autoFocus ? true : null
      }, (0, _SpEventUtils.removeEventProps)(otherProps)), icon && /*#__PURE__*/_react.default.createElement("div", {
        slot: "icon"
      }, " ", (0, _icon.cloneIcon)(icon, {
        size: 'S'
      })), labelContents, typeof children !== 'string' && children);
    }

    return /*#__PURE__*/_react.default.createElement(_UxpButton.default, this.props);
  }

}, _class2.defaultProps = {
  autoFocus: false,
  block: false,
  disabled: false,
  element: 'span',
  invalid: false,
  label: '',
  logic: false,
  quiet: false,
  selected: false,
  variant: 'secondary',
  holdAffordance: false
}, _temp)) || _class;

exports.default = SpUxpButton;

/***/ }),

/***/ "cTZj":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("2Kj/"),
      24: __webpack_require__("Yol4")
    }
  }));
};

WrappedIcon.displayName = 'Preview';
exports.default = WrappedIcon;

/***/ }),

/***/ "cU/i":
/***/ (function(module, exports, __webpack_require__) {

module.exports = __webpack_require__.p + "assets/projects/S_Illu_EmptyCanvasFile_Color05.png";

/***/ }),

/***/ "cU50":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXTERNAL MODULE: ./node_modules/@ccx-public/shared-asset-model-js/dist/mjs/src/index.js
var src = __webpack_require__("m4Z2");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/getDisplayName.tsx
var getDisplayName = __webpack_require__("500B");

// EXTERNAL MODULE: ./node_modules/mobx/lib/mobx.module.js
var mobx_module = __webpack_require__("2vnA");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/BaseAssetModel.ts
var BaseAssetModel = __webpack_require__("qpZ1");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/mimeTypes.tsx
var utils_mimeTypes = __webpack_require__("sYeI");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/getAssetRef.ts
var getAssetRef = __webpack_require__("NIJf");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/api/adobe-content-platform/ACPRequest.ts
var ACPRequest = __webpack_require__("r9Sp");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/api/adobe-content-platform/getManifest.ts
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2020 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/

async function getManifest(path) {
    const { parsedBody } = await new ACPRequest["c" /* default */](path)
        .fetch()
        .then(ACPRequest["c" /* default */].verifyStatus)
        .then(ACPRequest["c" /* default */].parseJSONResponse);
    return parsedBody;
}

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/api/adobe-content-platform/resolve.ts + 1 modules
var resolve = __webpack_require__("Ove7");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/dateUtils.tsx
var dateUtils = __webpack_require__("TxTg");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/stores/Settings.ts
var Settings = __webpack_require__("5u1M");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/constants.ts
var constants = __webpack_require__("YVc3");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/urls.ts
var urls = __webpack_require__("/YLX");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/SAMAssetModel.ts
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;
};
var __metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var SAMAssetModel_a, _b;













class SAMAssetModel_SAMAssetModel extends BaseAssetModel["b" /* default */] {
    constructor(config, asset) {
        super();
        this.spacesSection = config.spacesSection;
        this._samAsset = asset;
    }
    get id() {
        return this._samAsset.id;
    }
    get isHidden() {
        return this._samAsset.isDiscarded;
    }
    get cloudUri() {
        return this._samAsset.cloudID;
    }
    get path() {
        return this._samAsset.repoPath;
    }
    get title() {
        return this.displayName;
    }
    get name() {
        return this._samAsset.name;
    }
    get displayName() {
        const [displayName, _] = Object(getDisplayName["a" /* default */])(this.name, this.type);
        return displayName;
    }
    get fileExtension() {
        const [_, extensionFromName] = Object(getDisplayName["a" /* default */])(this.name, this.type);
        return extensionFromName || this._samAsset.extension;
    }
    get fileTrueExtension() {
        let trueExtension = this.fileExtension;
        if (['jpg', 'jpeg'].includes(trueExtension !== null && trueExtension !== void 0 ? trueExtension : '')) {
            trueExtension = Object(utils_mimeTypes["b" /* getExtensionFromMimeType */])(this.type) || trueExtension;
        }
        return trueExtension;
    }
    get modifiedDate() {
        return Object(dateUtils["a" /* epochToISODate */])(this._samAsset.modified);
    }
    get repoModifiedDate() {
        return Object(dateUtils["a" /* epochToISODate */])(this._samAsset.modified);
    }
    get createDate() {
        return Object(dateUtils["a" /* epochToISODate */])(this._samAsset.created);
    }
    get repositoryId() {
        return this._samAsset.repositoryID;
    }
    get hasSize() {
        return this._samAsset.sizeInBytes !== undefined;
    }
    get size() {
        return this._samAsset.sizeInBytes;
    }
    get rendition() {
        if (this._samAsset.thumbnailURL && this.etag) {
            const url = new URL(this._samAsset.thumbnailURL);
            let cacheBuster = `_cachebuster=${this.etag}`;
            if (url.search) {
                cacheBuster = `&${cacheBuster}`;
            }
            url.search = url.search + cacheBuster;
            return url.toString();
        }
        return this._samAsset.thumbnailURL;
    }
    get type() {
        return this._samAsset.mediaType; // dc:format
    }
    get assetRef() {
        return Object(getAssetRef["a" /* default */])({
            cloudId: this.cloudUri,
            name: this.name,
            path: this.path,
            repositoryId: this.repositoryId,
        });
    }
    hasPermission(...permissions) {
        return this._samAsset.hasPermission(...permissions);
    }
    get etag() {
        return this._samAsset.etag;
    }
    get isAvailableOffline() {
        return this._samAsset.isAvailableOffline;
    }
    get syncStatus() {
        return this._samAsset.syncStatus;
    }
    async setManifest() {
        var _a;
        if (!this._manifest) {
            // TODO: [SAM-1842] Revisit once SAM js returns the real links object from SAM cpp
            // parseAcpBodyLink(this.samAsset.links, ACPLinks.MANIFEST)
            const res = await Object(resolve["a" /* resolveById */])(this.id);
            const manifest = (_a = res.links.find(ref => ref.rel === ACPRequest["a" /* ACPLinks */].MANIFEST)) === null || _a === void 0 ? void 0 : _a.uri;
            if (manifest) {
                this._manifest = await getManifest(manifest);
            }
        }
    }
    // If the asset type is supported by a web application, we should redirect to their web app.
    async getWeblink() {
        let link;
        if (this.isWeblink) {
            await this.setManifest();
            if (this.manifest) {
                link = Object(urls["h" /* getUnicodeUrl */])(this.manifest['weblink#url']);
            }
        }
        else if (constants["r" /* PHOTOSHOP_CLOUD_DOCUMENT_MIMETYPES */].includes(this.type)) {
            link = `${Settings["b" /* settings */].config.PSWEB_ENDPOINT}/id/${this.id}`;
        }
        else {
            // [CCPROJ-7516] Default to asset 1-up view (https://<assetsWeb>/id/<urn>?view=spaces).
            // This matches ShareSheet `resourceViewUrl` (`targetUrl` in AssetData 2.0) default logic.
            link = `${Settings["b" /* settings */].config.ASSETS_WEB}/id/${this.id}?view=spaces`;
        }
        return link;
    }
    get manifest() {
        return this._manifest;
    }
    async getRendition() { }
    async rename(newName) {
        return await this._samAsset.rename(newName);
    }
    async archive() {
        return await this._samAsset.discard();
    }
    async copy(destFolder, destName) {
        return await this._samAsset.copy(destFolder, destName);
    }
    async move(destFolder) {
        return await this._samAsset.move(destFolder);
    }
    async restore(name) {
        return await this._samAsset.restore(name);
    }
    async transfer(space) {
        return await this._samAsset.transferToSpace(space);
    }
}
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", typeof (SAMAssetModel_a = typeof src["AdobeAsset"] !== "undefined" && src["AdobeAsset"]) === "function" ? SAMAssetModel_a : Object)
], SAMAssetModel_SAMAssetModel.prototype, "_samAsset", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", typeof (_b = typeof Promise !== "undefined" && Promise) === "function" ? _b : Object)
], SAMAssetModel_SAMAssetModel.prototype, "_manifest", void 0);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], SAMAssetModel_SAMAssetModel.prototype, "id", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], SAMAssetModel_SAMAssetModel.prototype, "isHidden", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], SAMAssetModel_SAMAssetModel.prototype, "cloudUri", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], SAMAssetModel_SAMAssetModel.prototype, "path", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], SAMAssetModel_SAMAssetModel.prototype, "title", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], SAMAssetModel_SAMAssetModel.prototype, "name", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], SAMAssetModel_SAMAssetModel.prototype, "displayName", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], SAMAssetModel_SAMAssetModel.prototype, "fileExtension", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], SAMAssetModel_SAMAssetModel.prototype, "fileTrueExtension", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], SAMAssetModel_SAMAssetModel.prototype, "modifiedDate", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], SAMAssetModel_SAMAssetModel.prototype, "repoModifiedDate", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], SAMAssetModel_SAMAssetModel.prototype, "createDate", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], SAMAssetModel_SAMAssetModel.prototype, "repositoryId", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], SAMAssetModel_SAMAssetModel.prototype, "hasSize", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], SAMAssetModel_SAMAssetModel.prototype, "size", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], SAMAssetModel_SAMAssetModel.prototype, "rendition", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], SAMAssetModel_SAMAssetModel.prototype, "type", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], SAMAssetModel_SAMAssetModel.prototype, "assetRef", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], SAMAssetModel_SAMAssetModel.prototype, "etag", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], SAMAssetModel_SAMAssetModel.prototype, "isAvailableOffline", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], SAMAssetModel_SAMAssetModel.prototype, "syncStatus", null);
__decorate([
    mobx_module["j" /* action */],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", []),
    __metadata("design:returntype", Promise)
], SAMAssetModel_SAMAssetModel.prototype, "setManifest", null);
/* harmony default export */ var CDOView_SAMAssetModel = __webpack_exports__["a"] = (SAMAssetModel_SAMAssetModel);


/***/ }),

/***/ "cW9B":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("path", {
  d: "M29 16h-9V7a1 1 0 0 0-1-1h-2a1 1 0 0 0-1 1v9H7a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h9v9a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1v-9h9a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1z"
}));

/***/ }),

/***/ "cXda":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("p5z0"),
      24: __webpack_require__("MQ2T")
    }
  }));
};

WrappedIcon.displayName = 'ChevronUp';
exports.default = WrappedIcon;

/***/ }),

/***/ "cY0z":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("YHHX"),
      24: __webpack_require__("0GNN")
    }
  }));
};

WrappedIcon.displayName = 'VolumeMute';
exports.default = WrappedIcon;

/***/ }),

/***/ "cZcK":
/***/ (function(module, exports) {

/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
module.exports = {
  'ccd.infoPanel.detail.created': '创建时间',
  'ccd.infoPanel.detail.modified': '修改时间',
  'ccd.infoPanel.detail.size': '大小',
  'ccd.infoPanel.detail.shared': '共享',
  'ccd.header.renameFolder': '重命名文件夹',
  'ccd.menu.addToFavourites': '添加到快捷方式',
  'ccd.menu.removeFromFavourites': '删除快捷方式',
  'ccd.menu.viewonweb': '在 Web 上查看',
  'ccd.menu.share': '共享',
  'ccd.menu.openWith': '打开方式',
  'ccd.menu.changeDefaultApp': '更改默认应用程序...',
  'ccd.menu.default': '（默认值）',
  'ccd.menu.export': '导出为本地副本',
  'ccd.menu.download': '下载',
  'ccd.menu.createNew': '新建...',
  'ccd.menu.launch': '启动',
  'actionMenuItem.permdelete': '永久删除',
  'tab.Cloud Documents': '您的文件',
  'tab.Home': '主页',
  'header.CloudDocuments': '您的文件',
  'header.SharedWithYou': '已与您共享',
  'header.Deleted': '已删除',
  'header.Deleted.AssetsWebLink': '要查看所有已删除的项目，请转到 Assets Web',
  'header.SelectedDocuments': '已选择 {numSelected, plural, =1 {#} other {#}} 个',
  'header.size': '大小',
  'header.title': '名称',
  'header.modifiedDate': '修改日期',
  'header.createDate': '创建日期',
  'header.shareDate': '共享日期',
  'header.SortBy': '排序依据',
  'header.infoPopover.body': '仅显示兼容文件。要查看所有文件，请在 Web 上访问 Creative Cloud。',
  'header.infoPopover.link': '转到 Creative Cloud',
  'header.dragImport': '上传到: {displayName}',
  'collaborators.onlyYou': '仅限您',
  'collaborators.Owner': '{displayName}（所有者）',
  'collaborators.More': '{numItems, plural, other {另外 # 个}}',
  'empty.offline.root.title': '您已断开连接',
  'empty.offline.root.subtitle': '当您重新连接时，在线时可见的项目将显示在此处。',
  'empty.offline.folder.title': '无法加载文件夹',
  'empty.offline.folder.subtitle': '无 Internet 连接。重新连接以查看所有内容。',
  'empty.online.cdp.saveas.root.title': '无云文档可显示',
  'empty.online.cdp.saveas.root.subtitle': '云文档意味着您的作品始终会在每台设备上更新，无论您身在何处 — 只需连接到 Internet 即可。',
  'empty.online.cdp.saveas.root.subtitle.sprk': 'XD 中的所有云文档都将显示在此处。随时随地工作，即使在离线状态下也不例外。云文档的更改将自动保存并在文档历史记录中显示。',
  'empty.online.cdp.saveas.root.subtitle.phxs': '您在 Mac、Windows 和 iPad 上的 Photoshop 中的所有云文档都存放在此处。',
  'empty.online.cdp.saveas.root.subtitle.ilst': '您在 Mac 和 Windows 上的 Illustrator 中的所有云文档都存放在此处。',
  'empty.online.cdp.saveas.root.subtitle.idsn': '您在 Mac 和 Windows 上的 InDesign 中的所有云文档都保存在此处。',
  'empty.online.cdp.saveas.folder.title': '无云文档可显示',
  'empty.online.cdp.saveas.folder.subtitle': '将兼容的云文档放入此文件夹时，它将出现在此处。',
  'empty.online.cdp.open.root.title': '无云文档可显示',
  'empty.online.cdp.open.root.subtitle': '将兼容的云文档放入此文件夹时，它将出现在此处。',
  'empty.online.cdp.open.root.subtitle.sprk': 'XD 中的所有云文档都将显示在此处。随时随地工作，即使在离线状态下也不例外。云文档的更改将自动保存并在文档历史记录中显示。',
  'empty.online.cdp.open.root.subtitle.phxs': '您在 Mac、Windows 和 iPad 上的 Photoshop 中的所有云文档都存放在此处。',
  'empty.online.cdp.open.root.subtitle.ilst': '您在 Mac 和 Windows 上的 Illustrator 中的所有云文档都存放在此处。',
  'empty.online.cdp.open.root.subtitle.idsn': '您在 Mac 和 Windows 上的 InDesign 中的所有云文档都保存在此处。',
  'empty.online.cdp.open.folder.title': '无云文档可显示',
  'empty.online.cdp.open.folder.subtitle': '将兼容的云文档放入此文件夹时，它将出现在此处。',
  'empty.online.cdo.root.title': '您没有云文档',
  'empty.online.cdo.root.subtitle': '与他人进行无缝协作，即使在离线状态下也可以随时随地开展工作。更改将自动保存并可在文件历史记录中显示。',
  'empty.online.cdo.root.subtitle.sprk': '与他人进行实时无缝协作，即使在离线状态下也可以随时随地开展工作。更改将自动保存并可在文件历史记录中显示。',
  'empty.online.cdo.root.subtitle.phxs': '登录 Photoshop，与他人进行无缝协作，即使在离线状态下也可以随时随地开展工作。更改将自动保存并可在文件历史记录中显示。',
  'empty.online.cdo.root.subtitle.ilst': '登录 Illustrator，与他人进行无缝协作，即使在离线状态下也可以随时随地开展工作。更改将自动保存并可在文件历史记录中显示。',
  'empty.online.cdo.root.subtitle.idsn': '从您登录 InDesign 的任何位置访问所需文档。更改会自动保存。',
  'empty.online.cdo.folder.title': '无云文档可显示',
  'empty.online.cdo.folder.subtitle': '将兼容的云文档放入此文件夹时，它将出现在此处。',
  'empty.title.deleted': '您没有任何已删除文件',
  'empty.title.deleted_offline': '您已断开连接',
  'empty.title.recent': '您没有最近使用的文件',
  'empty.subtext.deleted_offline': '当您重新连接时，在线时删除的项目将显示在此处。',
  'empty.title.shared_with_you': '您没有共享云文档',
  'empty.subtext.shared_with_you': '他人与您共享的云文档会在此处显示。',
  'empty.title.shared_with_you_offline': '您已断开连接',
  'empty.subtext.shared_with_you_offline': '连接恢复后，您可以查看并编辑共享文档。',
  'empty.title.error': '发生错误',
  'empty.subtext.error': '请重新启动应用程序并重试。',
  'empty.subtext.error.web': '刷新浏览器并重试。',
  'empty.title.coresync.down': '无法加载',
  'empty.subtext.coresync.down': '云未同步。请务必更新 Creative Cloud 桌面，或尝试重新启动此应用程序。',
  'empty.title.coresync.incompatible': '无法加载云文件',
  'empty.subtext.coresync.incompatible': '当前无法显示项目。请更新您的 Creative Cloud 应用程序版本，然后重试。',
  'empty.title.cloudStorageDisabled': '云文档不可用',
  'empty.subtext.cloudStorageDisabled': '您可以使用 {productName} 仅处理设备上的文件。请联系您的 IT 管理员以获取更多信息。',
  'empty.title.logout': '请登录以访问云文档。',
  'empty.learnMore.link': '了解详情',
  'trueEmpty.online.cdo.folder.title': '此文件夹中没有任何内容',
  'trueEmpty.online.cdo.folder.subtitle': '在此处添加内容以开始填充它。',
  'trueEmpty.online.cdp.saveas.folder.title': '目前尚无云文档',
  'trueEmpty.online.cdp.saveas.folder.subtitle': '云文档意味着您的作品始终会在每台设备上更新，无论您身在何处 — 只需连接到 Internet 即可。',
  'trueEmpty.online.cdp.open.folder.title': '目前尚无云文档',
  'trueEmpty.online.cdp.open.folder.subtitle': '云文档意味着您的作品始终会在每台设备上更新，无论您身在何处 — 只需连接到 Internet 即可。',
  'filter.prompt': '输入关键字',
  'filter.title': '筛选',
  'empty.filter.title': '无“{filterString}”的结果',
  'empty.filter.subtitle': '检查拼写，尝试使用更广泛的关键字，或过滤其他位置。',
  'beta.title': '跨设备同步您的作品',
  'beta.subtitle': '使用云文档在 iPad 和桌面上的 Photoshop 中无缝工作。但该功能仍在测试阶段，因此可能无法始终正常使用。在首选项中可将其打开和关闭。',
  'beta.button': '在首选项中打开',
  'beta.tag': 'BETA',
  'beta.feedback.link': '提供关于测试版的反馈',
  'button.add-folder': '创建新文件夹',
  'button.upload': '上传...',
  'button.createnew': '新建',
  'button.reportAbuse': '举报滥用行为',
  'button.open': '打开',
  'button.select': '选择',
  'button.rename': '重命名',
  'button.pin.header': '使其始终离线可用',
  'button.pin': '使其始终离线可用',
  'button.unpin.header': '使其仅在线可用',
  'button.unpin': '使其仅在线可用',
  'button.duplicate': '重复',
  'button.download': '下载',
  'button.move': '移动',
  'button.delete': '删除',
  'button.restore': '恢复',
  'button.permdelete': '永久删除',
  'button.listview': '查看列表',
  'button.gridview': '查看网格',
  'button.sharesheetinvite': '邀请编辑',
  'button.sharesheetLink': '获取链接',
  'button.shareSheetAction': '共享',
  'button.preview': '预览',
  'button.schedule': '安排',
  'action.duplicate.suffix': '（重复）',
  'action.resolve_sync_error.suffix': '副本',
  'statusIcon.conflicted': '同步冲突',
  'statusIcon.onlineOnly': '仅联机时可用',
  'statusIcon.availableOffline': '可离线使用',
  'statusIcon.syncing': '正在同步...',
  'statusIcon.waitingToSync': '正在等待同步',
  'tooltip.error': '打开文档以检查保存冲突',
  'toast.error.documentIsOpen': '关闭{count, plural, =1{文档}other{文档}}以执行此操作。',
  'toast.error.exceedsQuota.personal': '您的帐户已用尽存储空间',
  'toast.error.exceedsQuota.enterprise': '用尽存储空间，有关详细信息，请与您的管理员联系。',
  'toast.operation.duplicate.error': '未能重复{count, plural, =1 {目} other { {count} 项}}。',
  'toast.operation.duplicate.success': '重复了{count, plural, =1 {项} other { {count} 项}}。',
  'toast.operation.archive.error': '无法删除 {count, plural, =1 {项目} other {{count} 个项目}}。',
  'toast.operation.archive.error.otherAppUncommittedChanges': '您无法删除其他应用程序中打开的文件。请关闭这些文件，然后重试。',
  'toast.operation.archive.undo.error': '无法删除 {count, plural, =1 {个项目} other {{count} 个项目}}。',
  'toast.operation.archive.success': '{count, plural, =1 {项目} other {{count} 个项目}}已删除。',
  'toast.operation.archive.undo.success': '“恢复”已撤销。',
  'toast.operation.permdelete.error': '无法永久删除 {count, plural, =1 {项目} other {{count} 个项目}}。',
  'toast.operation.permdelete.success': '{count, plural, =1 {项目} other {{count} 个项目}}已被永久删除。',
  'toast.operation.rename.error': '无法重命名项目。',
  'toast.operation.rename.undo.error': '无法重命名项目。',
  'toast.operation.rename.error.duplicateName': '此处已存在具有此名称的项目。',
  'toast.operation.rename.undo.error.duplicateName': '此处已存在具有此名称的项目。',
  'toast.operation.rename.success': '项目已重命名。',
  'toast.operation.rename.undo.success': '“重命名”已撤销。',
  'toast.operation.move.error': '无法移动{count, plural, =1 {项目} other {{count} 个项目}}。',
  'toast.operation.move.undo.error': '无法移动{count, plural, =1 {项目} other {{count} 个项目}}。',
  'toast.operation.move.error.duplicateFolderName': '此处已存在具有此名称的文件夹。',
  'toast.operation.move.undo.error.duplicateFolderName': '此处已存在具有此名称的文件夹。',
  'toast.operation.move.error.duplicateDocName': '{count, plural, =1 {该文件夹中已存在具有此名称的文档。重命名并重试。} other {由于存在具有相同名称的文档，因此无法移动文档。}}',
  'toast.operation.move.undo.error.duplicateDocName': '{count, plural, =1 {该文件夹中已存在具有此名称的文档。重命名并重试。} other {由于存在具有相同名称的文档，因此无法移动文档。}}',
  'toast.operation.move.success': '{count, plural, =1 {项目} other {{count} 个项目}}已移动。',
  'toast.operation.move.undo.success': '“移动”已撤销。',
  'toast.operation.unarchive.error': '无法还原 {count, plural, =1 {项目} other {{count} 个项目}}。',
  'toast.operation.unarchive.undo.error': '无法还原 {count, plural, =1 {个项目} other {{count} 个项目}}。',
  'toast.operation.unarchive.success': '{count, plural, =1 {项目} other {{count} 个项目}}已还原。',
  'toast.operation.unarchive.undo.success': '“删除”已撤销。',
  'toast.operation.create_new_folder.success': '文件夹已创建。',
  'toast.operation.create_new_folder.error': '无法创建新文件夹。',
  'toast.operation.create_new_folder.error.duplicateName': '此处已存在具有此名称的文件夹。',
  'toast.operation.user_pin.success': '{count, plural, =1 {项目} other {{count} 个项目}}为离线可用。',
  'toast.operation.user_pin.error': '无法使 {count, plural, =1 {项} other {{count} 项}}离线可用。',
  'toast.operation.user_unpin.success': '{count, plural, =1 {项目} other {{count} 个项目}}仅可线上使用。',
  'toast.operation.user_unpin.error': '无法将 {count, plural, =1 {项目} other {{count}项目}}设置为仅联机时可用。',
  'toast.operation.resolve_sync_error.success': '已创建“{name}”的副本。您可以比较这两个文档并调和任何差异。',
  'toast.ccd.scroll_to_item.fetching': '正在提取文件...',
  'toast.ccd.scroll_to_item.error': '未找到文件',
  'toast.info.disabled_rename_to_open_item': '旧版 XD 文档必须先打开，然后才能在此处重命名。',
  'toast.action.disabled_rename_to_open_item': '打开文档',
  'toast.error.rename.invalidName': '抱歉，此名称包含无效字符。',
  'toast.error.rename.invalidChar': '名称不得包含以下字符: {characters}',
  'toast.error.rename.invalidEnd': '名称不能以 "." 或空格结尾。',
  'toast.error.rename.charRestriction': '名称不能超过 200 个字符。',
  'toast.error.rename.duplicateName': '此处已存在具有此名称的云文档。',
  'toast.success.reportAbuse': '成功举报滥用行为',
  'toast.error.reportAbuse': '无法举报滥用行为',
  'toast.operation.undoLabel': '还原',
  'dialog.permdelete.heading': '永久删除',
  'dialog.permdelete.warning': '您无法还原此操作。以下内容将永久消失:',
  'dialog.permdelete.cancelButton': '取消',
  'dialog.permdelete.confirmButton': '永久删除',
  'dialog.permdelete.countItems': '{count, plural, =1 {# 个项目} other {# 个项目}}',
  'dialog.nonemptyfolder.heading': '是否确实要删除{count, plural, =1 {此文件夹} other {这些文件夹}}？',
  'dialog.nonemptyfolder.warning': '{count, plural, =1 {此文件夹} other {这些文件夹}}不为空，并可能包含在 {appName} 中不可见的文件。可继续删除，或在 Web 上查看{count, plural, =1 {该文件夹} other {这些文件夹}}以查看{count, plural, =1 {其} other {其}}内容。{viewOnWebLink}',
  'dialog.nonemptyfolder.cancelButton': '取消',
  'dialog.nonemptyfolder.confirmButton': '删除',
  'dialog.nonemptyfolder.viewOnWebButton': '在 Web 上查看',
  'dialog.addfolder.heading': '创建新文件夹',
  'dialog.addfolder.cancelButton': '取消',
  'dialog.addfolder.confirmButton': '保存',
  'dialog.addfolder.placeholder': '新建文件夹',
  'dialog.addfolder.invalidChar': '名称不得包含以下字符：{characters}',
  'dialog.addfolder.invalidName': '抱歉，此文件夹包含无效字符。',
  'dialog.addfolder.invalidEnd': '名称不能以 "." 或空格结尾。',
  'dialog.addfolder.duplicateName': '此处已存在具有此名称的文件夹。',
  'dialog.addfolder.charRestriction': '名称不能超过 200 个字符。',
  'dialog.moveFolder.heading': '移动到...',
  'dialog.moveFolder.cancelButton': '取消',
  'dialog.moveFolder.moveButton': '移动',
  'dialog.moveFolder.createNewFolderButton': '添加文件夹',
  'dialog.reportAbuse.cancelButton': '取消',
  'dialog.reportAbuse.reportAbuseButton': '举报滥用行为',
  'dialog.reportAbuse.heading': '举报滥用行为',
  'dialog.reportAbuse.emailInput': '您的电子邮件',
  'dialog.reportAbuse.nameInput': '您的姓名',
  'dialog.reportAbuse.radioButtonText': '为何举报此内容？',
  'dialog.reportAbuse.defamation': '诽谤',
  'dialog.reportAbuse.hate': '种族主义或煽动仇恨内容',
  'dialog.reportAbuse.trademark': '商标侵权',
  'dialog.reportAbuse.pornography': '露骨的涉性内容',
  'dialog.reportAbuse.vulgar': '冒犯性内容',
  'dialog.reportAbuse.other': '其它',
  'dialog.reportAbuse.inappropriate': '不恰当',
  'dialog.reportAbuse.age': '年龄不准确',
  'dialog.reportAbuse.gender': '性别不正确',
  'dialog.reportAbuse.description': '如果您认为此 Creative Cloud 内容违反了 Adobe 使用条款，您可以通过填写此简易表格来举报此内容。',
  'dialog.reportAbuse.describeConcern': '说明疑虑',
  'dialog.reportAbuse.success': '成功举报滥用行为',
  'dialog.reportAbuse.failure': '无法举报滥用行为',
  'dialog.reportAbuse.textAreaTitle': '请说明您的疑虑',
  'dialog.reportAbuse.required': '必填',
  'dialog.cachefull.title': '无法设置为脱机时可用',
  'dialog.cachefull.message': '您的设备空间不足。请将文档设置为仅在线可用以释放空间。',
  'dialog.cachefull.confirm': '确定',
  'dialog.syncError.heading': '该文档已停止同步到云',
  'dialog.syncError.body1': '我们建议您将最新版本保存为副本，并将文档还原为云中上次保存的版本。',
  'dialog.syncError.body2': '您可以打开此文档并进行编辑，但是所做的更改将不会保存到云中。',
  'dialog.syncError.offline': '您必须在线才能保存副本和还原原始文档。',
  'dialog.syncError.learnMore': '了解详情',
  'dialog.syncError.resolveButton': '保存副本并还原',
  'dialog.syncError.openButton': '打开',
  'dialog.syncErrorCopyFail.heading': '不能保存副本',
  'dialog.syncErrorCopyFail.body1': '您仍然可以打开此文档并进行编辑，但是您所做的更改将不会保存到云中。',
  'dialog.syncErrorCopyFail.body2': '请联系 Adobe 客户关怀部门以获取进一步协助。（错误：LocalContentSyncSuspended）',
  'dialog.syncErrorCopyFail.closeButton': '关闭',
  'dialog.syncErrorCopyFail.contactUs': '联系我们',
  'dialog.syncErrorPurgeFail.heading': '无法还原到云中保存的上一个版本',
  'dialog.syncErrorPurgeFail.body1': '已创建您的文档副本，但是我们无法将您的文档还原到云中上次保存的版本。',
  'dialog.syncErrorPurgeFail.body2': '请联系 Adobe 客户关怀部门以获取进一步协助。（错误：LocalContentSyncSuspended）',
  'dialog.syncErrorPurgeFail.closeButton': '关闭',
  'dialog.syncErrorPurgeFail.contactUs': '联系我们',
  'onboardingCdo.banner.title.sprk': '更好的工作方式',
  'onboardingCdo.banner.title.phxs': '正在 iPad 上使用 Photoshop？试试云文档',
  'onboardingCdo.banner.title.ilst': '现在，您可以在 Illustrator 中使用云文档',
  'onboardingCdo.banner.title.idsn': '现在，您可以在 InDesign 中使用云文档',
  'onboardingCdo.banner.message.sprk': '随时随地编辑云文档，即使在离线状态下也不例外。更改将自动保存并在文档历史记录中显示。与他人共享这些内容，确保实时的无缝协作。',
  'onboardingCdo.banner.message.phxs': '云文档会在您工作时自动保存到 Adobe 云中，因此您可以访问您在桌面或 iPad 上的文件。',
  'onboardingCdo.banner.message.ilst': 'Illustrator 中的云文档将在您工作的同时自动保存到 Adobe 的云中。您也可以查看版本历史记录，了解工作的演变过程。',
  'onboardingCdo.banner.message.idsn': '在您工作时，InDesign 中的云文档会自动保存到 Adobe 的云中。',
  'onboardingCdo.banner.linkTitle': '了解详情',
  'onboardingCdo.banner.confirm': '确定',
  'operation.progress.archive': '{batchSize, plural, =1 {正在删除 1 项} other {正在删除第 {inProgressNum} 项（共 {batchSize} 项）}}...',
  'operation.progress.unarchive': '{batchSize, plural, =1 {正在还原 1 项} other {正在还原第 {inProgressNum} 项（共 {batchSize} 项）}}...',
  'operation.progress.move': '{batchSize, plural, =1 {正在移动 1 项} other {正在移动第 {inProgressNum} 项（共 {batchSize} 项）}}...',
  'operation.progress.permdelete': '{batchSize, plural, =1 {正在永久删除 1 项} other {正在永久删除第 {inProgressNum} 项（共 {batchSize} 项）}}...',
  'operation.progress.rename': '{batchSize, plural, =1 {正在重命名 1 项} other {正在重命名第 {inProgressNum} 项（共 {batchSize} 项）}}...',
  'operation.progress.create_new_folder': '正在创建新文件夹...',
  'operation.progress.duplicate': '{batchSize, plural, =1 {正在复制 1 项} other {正在复制第 {inProgressNum} 项（共 {batchSize} 项）}}...',
  'operation.progress.user_pin': '{batchSize, plural, =1 {正在使 1 项} other {正在使第 {inProgressNum} 项（共 {batchSize} 项）}}离线可用...',
  'operation.progress.user_unpin': '{batchSize, plural, =1 {正在使 1 项} other {正在使第 {inProgressNum} 项（共 {batchSize} 项）}}仅在线可用...',
  'operation.progress.resolve_sync_error': '正在复制并还原到云中上次保存的版本...',
  'tooltip.offline.general': '需要 Internet 连接。',
  'tooltip.offline.create-new-folder': '创建文件夹需要 Internet 连接。',
  'tooltip.offline.move': '移动项目需要 Internet 连接。',
  'tooltip.syncing.disabled': '同步待完成',
  'tooltip.rename.disabled': '所选文档无法重命名。请在主机应用程序中打开以启用重命名。',
  'tooltip.rename.disabled.sprk': '必须在 XD 中打开该文件才能对其重命名。',
  'tooltip.syncSuspended.needsAction': '同步已停止。请打开文档以进行操作。',
  'tooltip.syncSuspended.noAction': '同步已停止。目前不允许执行此操作。',
  'Recents.title': '最近使用项',
  'Recents.cloudDocTitle': '云文档',
  'Recents.error.subtext.coreSync': '由于 Creative Cloud Sync 未正常运行，因此“最近使用项”目前不可用。',
  'item.saveForOfflineIconToolTip': '此文档已下载，可完全脱机使用。',
  'item.disconnected.cloudonly': '您已经断开连接。请重新连接以打开文档。',
  'item.coresyncdown.cloudonly': '无法加载文件。更新或重新启动 Creative Cloud 也许能解决此问题。',
  'folder.subtitle': '文件夹',
  'review.subtitle': '审阅',
  'prototype.subtitle': '原型',
  'designspecs.subtitle': '设计规范',
  'project.subtitle': '项目',
  'library.subtitle': '库',
  'webLink.subtitle': 'Web 链接',
  'abbreviations.fileSize.byte': 'B',
  'abbreviations.fileSize.kilobyte': 'KB',
  'abbreviations.fileSize.megabyte': 'MB',
  'abbreviations.fileSize.gigabyte': 'GB',
  'abbreviations.fileSize.terabyte': 'TB',
  'sam.copyNameFormat': '%@ 副本',
  'cloudsync.quota.title': '云存储',
  'cloudsync.quota.percentage': '{percentageUsed}%',
  'cloudsync.quota.usage': '已使用 {usedCloudQuotaString}，共 {maxCloudQuotaString}',
  'cloudsync.quota.warning': '您的云存储已满。请升级以继续同步您的作品。',
  'cloudsync.quota.error': '无可用存储信息...',
  'cloudsync.quota.upgrade': '升级',
  'cloudsync.status.complete.title': '已同步并备份',
  'cloudsync.status.syncing.title': '正在同步云文档',
  'cloudsync.status.syncing.descr': '{progress}/{total}',
  'cloudsync.status.offline.title': '正在脱机工作',
  'cloudsync.status.offline.descr': '我们目前将其保存在本地。当您重新连接后，文档将同步到云端。',
  'cloudsync.status.disabled.title': '已禁用同步',
  'cloudsync.status.disabled.descr': '我们目前保存在本地。当有存储可用时，文档将同步到云。',
  'cloudsync.item.progress.determinate': '{progress}/{total}',
  'cloudsync.item.progress.indeterminate': '正在同步...',
  'cloudsync.item.complete': '完成',
  'cloudsync.items.header': '网络活动',
  'cloudsync.alert.title.coresync.down': '无法加载',
  'cloudsync.alert.subtext.coresync.down': '云未同步。请务必更新 Creative Cloud 桌面，或尝试重新启动此应用程序。',
  'cloudsync.alert.subtext.coresync.down.learnmore': '了解详情',
  'cloudsync.tooltip.offline': '已断开连接',
  'cloudsync.tooltip.error': '错误',
  'cloudsync.tooltip.syncing': '正在保存...',
  'cloudsync.tooltip.default': '已保存',
  'cloudsync.singleDoc.offline.title': '已断开连接',
  'cloudsync.singleDoc.offline.descr': '正在尝试重新连接...',
  'cloudsync.singleDoc.offline.timestamp': '上次同步 {time}',
  'cloudsync.singleDoc.error.samInitFail.title': '云停止同步',
  'cloudsync.singleDoc.error.samInitFail.descr': '请重新启动此应用程序以继续同步您的工作。',
  'cloudsync.singleDoc.error.syncSuspended.title': '云停止同步',
  'cloudsync.singleDoc.error.syncSuspended.descr': '请重新启动此应用程序以继续同步您的工作。',
  'cloudsync.singleDoc.error.title': '无法加载',
  'cloudsync.singleDoc.error.descr': '云未同步。请务必更新 Creative Cloud 桌面，或尝试重新启动此应用程序。',
  'cloudsync.singleDoc.error.learnMore': '了解详情',
  'cloudsync.singleDoc.disabled.quotaExceeded.title': '您的云存储空间已满',
  'cloudsync.singleDoc.disabled.quotaExceeded.descr': '请升级 Creative Cloud 以继续同步您的工作。',
  'cloudsync.singleDoc.syncing.title': '正在保存...',
  'cloudsync.singleDoc.syncing.descr': '进行中',
  'cloudsync.singleDoc.disabled.title': '无法保存',
  'cloudsync.singleDoc.disabled.descr': '您的帐户已用尽存储空间。',
  'cloudsync.singleDoc.complete.title': '已保存文件',
  'cloudsync.singleDoc.complete.timestamp': '上次同步 {time}'
};

/***/ }),

/***/ "ccD0":
/***/ (function(module, exports, __webpack_require__) {

module.exports = __webpack_require__.p + "assets/cdo/onboardingIcon.png";

/***/ }),

/***/ "ccE7":
/***/ (function(module, exports, __webpack_require__) {

var toInteger = __webpack_require__("Ojgd");

var defined = __webpack_require__("Jes0"); // true  -> String#at
// false -> String#codePointAt


module.exports = function (TO_STRING) {
  return function (that, pos) {
    var s = String(defined(that));
    var i = toInteger(pos);
    var l = s.length;
    var a, b;
    if (i < 0 || i >= l) return TO_STRING ? '' : undefined;
    a = s.charCodeAt(i);
    return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff ? TO_STRING ? s.charAt(i) : a : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;
  };
};

/***/ }),

/***/ "ci8G":
/***/ (function(module) {

module.exports = JSON.parse("{\"Clear search\":\"Tyhjennä haku\"}");

/***/ }),

/***/ "cljQ":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("TSYQ");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _react_react_spectrum_Wait__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("czhh");
/* harmony import */ var _react_react_spectrum_Wait__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Wait__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _styles_Busy_css__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("Q3W2");
/* harmony import */ var _styles_Busy_css__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_styles_Busy_css__WEBPACK_IMPORTED_MODULE_3__);
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2019 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/




const Busy = ({ id = 'WaitSpinner', size = 'L', className = '', ...props }) => (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", Object.assign({ className: classnames__WEBPACK_IMPORTED_MODULE_1___default()('cdoSpinner', className) }, props, { id: id }),
    react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_react_react_spectrum_Wait__WEBPACK_IMPORTED_MODULE_2___default.a, { size: size })));
/* harmony default export */ __webpack_exports__["a"] = (Busy);


/***/ }),

/***/ "cnSC":
/***/ (function(module, exports) {

(function (self) {
  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(); // Replace instances of \r\n and \n followed by at least one space or horizontal tab with a space
    // https://tools.ietf.org/html/rfc7230#section-3.2

    var preProcessedHeaders = rawHeaders.replace(/\r?\n[\t ]+/g, ' ');
    preProcessedHeaders.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 = options.status === undefined ? 200 : options.status;
    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;
      } else if (request.credentials === 'omit') {
        xhr.withCredentials = false;
      }

      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);

/***/ }),

/***/ "cq/+":
/***/ (function(module, exports, __webpack_require__) {

var createBaseFor = __webpack_require__("mc0g");
/**
 * The base implementation of `baseForOwn` which iterates over `object`
 * properties returned by `keysFunc` and invokes `iteratee` for each property.
 * Iteratee functions may exit iteration early by explicitly returning `false`.
 *
 * @private
 * @param {Object} object The object to iterate over.
 * @param {Function} iteratee The function invoked per iteration.
 * @param {Function} keysFunc The function to get the keys of `object`.
 * @returns {Object} Returns `object`.
 */


var baseFor = createBaseFor();
module.exports = baseFor;

/***/ }),

/***/ "cqoG":
/***/ (function(module, exports, __webpack_require__) {

/**
 * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined
 * in FIPS 180-2
 * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.
 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
 *
 */
var inherits = __webpack_require__("P7XM");

var Sha256 = __webpack_require__("olUY");

var Hash = __webpack_require__("tnIz");

var Buffer = __webpack_require__("hwdV").Buffer;

var W = new Array(64);

function Sha224() {
  this.init();
  this._w = W; // new Array(64)

  Hash.call(this, 64, 56);
}

inherits(Sha224, Sha256);

Sha224.prototype.init = function () {
  this._a = 0xc1059ed8;
  this._b = 0x367cd507;
  this._c = 0x3070dd17;
  this._d = 0xf70e5939;
  this._e = 0xffc00b31;
  this._f = 0x68581511;
  this._g = 0x64f98fa7;
  this._h = 0xbefa4fa4;
  return this;
};

Sha224.prototype._hash = function () {
  var H = Buffer.allocUnsafe(28);
  H.writeInt32BE(this._a, 0);
  H.writeInt32BE(this._b, 4);
  H.writeInt32BE(this._c, 8);
  H.writeInt32BE(this._d, 12);
  H.writeInt32BE(this._e, 16);
  H.writeInt32BE(this._f, 20);
  H.writeInt32BE(this._g, 24);
  return H;
};

module.exports = Sha224;

/***/ }),

/***/ "cr+I":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var strictUriEncode = __webpack_require__("ZFOp");

var objectAssign = __webpack_require__("MgzW");

function encoderForArrayFormat(opts) {
  switch (opts.arrayFormat) {
    case 'index':
      return function (key, value, index) {
        return value === null ? [encode(key, opts), '[', index, ']'].join('') : [encode(key, opts), '[', encode(index, opts), ']=', encode(value, opts)].join('');
      };

    case 'bracket':
      return function (key, value) {
        return value === null ? encode(key, opts) : [encode(key, opts), '[]=', encode(value, opts)].join('');
      };

    default:
      return function (key, value) {
        return value === null ? encode(key, opts) : [encode(key, opts), '=', encode(value, opts)].join('');
      };
  }
}

function parserForArrayFormat(opts) {
  var result;

  switch (opts.arrayFormat) {
    case 'index':
      return function (key, value, accumulator) {
        result = /\[(\d*)\]$/.exec(key);
        key = key.replace(/\[\d*\]$/, '');

        if (!result) {
          accumulator[key] = value;
          return;
        }

        if (accumulator[key] === undefined) {
          accumulator[key] = {};
        }

        accumulator[key][result[1]] = value;
      };

    case 'bracket':
      return function (key, value, accumulator) {
        result = /(\[\])$/.exec(key);
        key = key.replace(/\[\]$/, '');

        if (!result) {
          accumulator[key] = value;
          return;
        } else if (accumulator[key] === undefined) {
          accumulator[key] = [value];
          return;
        }

        accumulator[key] = [].concat(accumulator[key], value);
      };

    default:
      return function (key, value, accumulator) {
        if (accumulator[key] === undefined) {
          accumulator[key] = value;
          return;
        }

        accumulator[key] = [].concat(accumulator[key], value);
      };
  }
}

function encode(value, opts) {
  if (opts.encode) {
    return opts.strict ? strictUriEncode(value) : encodeURIComponent(value);
  }

  return value;
}

function keysSorter(input) {
  if (Array.isArray(input)) {
    return input.sort();
  } else if (typeof input === 'object') {
    return keysSorter(Object.keys(input)).sort(function (a, b) {
      return Number(a) - Number(b);
    }).map(function (key) {
      return input[key];
    });
  }

  return input;
}

exports.extract = function (str) {
  return str.split('?')[1] || '';
};

exports.parse = function (str, opts) {
  opts = objectAssign({
    arrayFormat: 'none'
  }, opts);
  var formatter = parserForArrayFormat(opts); // Create an object with no prototype
  // https://github.com/sindresorhus/query-string/issues/47

  var ret = Object.create(null);

  if (typeof str !== 'string') {
    return ret;
  }

  str = str.trim().replace(/^(\?|#|&)/, '');

  if (!str) {
    return ret;
  }

  str.split('&').forEach(function (param) {
    var parts = param.replace(/\+/g, ' ').split('='); // Firefox (pre 40) decodes `%3D` to `=`
    // https://github.com/sindresorhus/query-string/pull/37

    var key = parts.shift();
    var val = parts.length > 0 ? parts.join('=') : undefined; // missing `=` should be `null`:
    // http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters

    val = val === undefined ? null : decodeURIComponent(val);
    formatter(decodeURIComponent(key), val, ret);
  });
  return Object.keys(ret).sort().reduce(function (result, key) {
    var val = ret[key];

    if (Boolean(val) && typeof val === 'object' && !Array.isArray(val)) {
      // Sort object keys, not values
      result[key] = keysSorter(val);
    } else {
      result[key] = val;
    }

    return result;
  }, Object.create(null));
};

exports.stringify = function (obj, opts) {
  var defaults = {
    encode: true,
    strict: true,
    arrayFormat: 'none'
  };
  opts = objectAssign(defaults, opts);
  var formatter = encoderForArrayFormat(opts);
  return obj ? Object.keys(obj).sort().map(function (key) {
    var val = obj[key];

    if (val === undefined) {
      return '';
    }

    if (val === null) {
      return encode(key, opts);
    }

    if (Array.isArray(val)) {
      var result = [];
      val.slice().forEach(function (val2) {
        if (val2 === undefined) {
          return;
        }

        result.push(formatter(key, val2, result.length));
      });
      return result.join('&');
    }

    return encode(key, opts) + '=' + encode(val, opts);
  }).filter(function (x) {
    return x.length > 0;
  }).join('&') : '';
};

/***/ }),

/***/ "crLv":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return CollectionItemKind; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return isFolder; });
/* unused harmony export isItem */
/*************************************************************************
 *   ADOBE CONFIDENTIAL
 *
 *   Copyright 2022 Adobe
 *   All Rights Reserved.
 *
 *   NOTICE:  All information contained herein is, and remains
 *   the property of Adobe and its suppliers, if any. The intellectual
 *   and technical concepts contained herein are proprietary to Adobe
 *   and its suppliers and are protected by all applicable intellectual
 *   property laws, including trade secret and copyright laws.
 *   Dissemination of this information or reproduction of this material
 *   is strictly forbidden unless prior written permission is obtained
 *   from Adobe.
 **************************************************************************/
var CollectionItemKind;
(function (CollectionItemKind) {
    CollectionItemKind["Item"] = "item";
    CollectionItemKind["Folder"] = "folder";
})(CollectionItemKind || (CollectionItemKind = {}));
/** For convenience */
function isFolder(item) {
    return item.kind === CollectionItemKind.Folder;
}
/** For convenience */
function isItem(item) {
    return item.kind === CollectionItemKind.Item;
}


/***/ }),

/***/ "crf9":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;
/*************************************************************************
* ADOBE CONFIDENTIAL
* ___________________
*
* Copyright 2019 Adobe
* All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains
* the property of Adobe and its suppliers, if any. The intellectual
* and technical concepts contained herein are proprietary to Adobe
* and its suppliers and are protected by all applicable intellectual
* property laws, including trade secret and copyright laws.
* Dissemination of this information or reproduction of this material
* is strictly forbidden unless prior written permission is obtained
* from Adobe.
**************************************************************************/

var _default = (node, parentNode, alignToStart) => {
  if (parentNode && parentNode.contains(node)) {
    const {
      clientHeight,
      clientWidth,
      scrollTop,
      scrollLeft
    } = parentNode;
    const {
      offsetHeight,
      offsetWidth,
      offsetTop,
      offsetLeft
    } = node;
    const parentPosition = window.getComputedStyle(parentNode).position;
    let parentOffsetTop = parentNode.offsetTop;
    let parentOffsetLeft = parentNode.offsetLeft;

    if (parentPosition !== 'static') {
      parentOffsetTop = parentOffsetLeft = 0;
    }

    if (offsetTop < scrollTop) {
      parentNode.scrollTop = offsetTop;
    } else {
      const offsetBottom = offsetTop + offsetHeight;
      const scrollBottom = scrollTop + clientHeight;

      if (offsetBottom > scrollBottom) {
        parentNode.scrollTop = alignToStart ? offsetTop - parentOffsetTop : offsetBottom - clientHeight - parentOffsetTop;
      }
    }

    if (offsetLeft < scrollLeft) {
      parentNode.scrollLeft = offsetLeft;
    } else {
      const offsetRight = offsetLeft + offsetWidth;
      const scrollRight = scrollLeft + clientWidth;

      if (offsetRight > scrollRight) {
        parentNode.scrollLeft = alignToStart ? offsetLeft - parentOffsetLeft : offsetRight - clientWidth - parentOffsetLeft;
      }
    }
  }
};

exports.default = _default;

/***/ }),

/***/ "cvCv":
/***/ (function(module, exports) {

/**
 * Creates a function that returns `value`.
 *
 * @static
 * @memberOf _
 * @since 2.4.0
 * @category Util
 * @param {*} value The value to return from the new function.
 * @returns {Function} Returns the new constant function.
 * @example
 *
 * var objects = _.times(2, _.constant({ 'a': 1 }));
 *
 * console.log(objects);
 * // => [{ 'a': 1 }, { 'a': 1 }]
 *
 * console.log(objects[0] === objects[1]);
 * // => true
 */
function constant(value) {
  return function () {
    return value;
  };
}

module.exports = constant;

/***/ }),

/***/ "czhh":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var _UxpOptions = _interopRequireDefault(__webpack_require__("zvwv"));

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}
/*************************************************************************
* ADOBE CONFIDENTIAL
* ___________________
*
* Copyright 2019 Adobe
* All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains
* the property of Adobe and its suppliers, if any. The intellectual
* and technical concepts contained herein are proprietary to Adobe
* and its suppliers and are protected by all applicable intellectual
* property laws, including trade secret and copyright laws.
* Dissemination of this information or reproduction of this material
* is strictly forbidden unless prior written permission is obtained
* from Adobe.
**************************************************************************/


module.exports = _UxpOptions.default.select('Wait', () => __webpack_require__("oJ88"), () => __webpack_require__("nxZz"));

/***/ }),

/***/ "d5/D":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _autobindDecorator = _interopRequireDefault(__webpack_require__("gKdT"));

var _dna = _interopRequireDefault(__webpack_require__("AnWb"));

var _Popover = _interopRequireDefault(__webpack_require__("0Y3e"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

var _setOverlayOnProvider = _interopRequireDefault(__webpack_require__("l0xv"));

var _UxpProvider = __webpack_require__("HGBq");

var _class;

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function ownKeys(object, enumerableOnly) {
  var keys = Object.keys(object);

  if (Object.getOwnPropertySymbols) {
    var symbols = Object.getOwnPropertySymbols(object);

    if (enumerableOnly) {
      symbols = symbols.filter(function (sym) {
        return Object.getOwnPropertyDescriptor(object, sym).enumerable;
      });
    }

    keys.push.apply(keys, symbols);
  }

  return keys;
}

function _objectSpread(target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i] != null ? arguments[i] : {};

    if (i % 2) {
      ownKeys(Object(source), true).forEach(function (key) {
        _defineProperty(target, key, source[key]);
      });
    } else if (Object.getOwnPropertyDescriptors) {
      Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
    } else {
      ownKeys(Object(source)).forEach(function (key) {
        Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
      });
    }
  }

  return target;
}

function _defineProperty(obj, key, value) {
  if (key in obj) {
    Object.defineProperty(obj, key, {
      value: value,
      enumerable: true,
      configurable: true,
      writable: true
    });
  } else {
    obj[key] = value;
  }

  return obj;
}

function getSizePathStyle(placement) {
  const size = 10;
  const width = size * 2;
  const height = width;

  if (placement.split(' ')[0] === 'right') {
    return [width, height, `M ${size * 2} 0 l ${-size} ${size} l ${size} ${size}`, {
      left: -width
    }];
  }

  if (placement.split(' ')[0] === 'left') {
    return [width, height, `M 0 0 l ${size} ${size} l ${-size} ${size}`, {
      right: -width
    }];
  }

  if (placement.split(' ')[0] === 'top') {
    return [width, height, `M 0 0 l ${size} ${size} l ${size} ${-size}`, {
      bottom: -height + 0.5
    }];
  }

  if (placement.split(' ')[0] === 'bottom') {
    return [width, height, `M 0 ${size * 2} l ${size} ${-size} l ${size} ${size}`, {
      top: -height
    }];
  }
}

let UxpPopover = (0, _autobindDecorator.default)(_class = class UxpPopover extends _Popover.default {
  constructor(...args) {
    var _temp;

    return _temp = super(...args), this.setOverlayVisible = () => {
      if (!this.props.flyoutMenu) {
        (0, _setOverlayOnProvider.default)(this.popoverRef, true, this.hide);
      }
    }, this.setOverlayHidden = () => {
      if (!this.props.flyoutMenu) {
        (0, _setOverlayOnProvider.default)(this.popoverRef, false);
      }
    }, this.hide = () => {
      if (this.popoverRef) {
        this.popoverRef.style.display = 'none';
      }
    }, _temp;
  }

  componentDidMount() {
    if (this.popoverRef) {
      this.popoverRef.addEventListener('resize', this.setOverlayVisible);
    }
  }

  componentWillUnmount() {
    if (this.popoverRef) {
      this.popoverRef.removeEventListener('resize', this.setOverlayVisible);
    }

    this.setOverlayHidden();
  }

  renderTip() {
    const {
      placement
    } = this.props;
    let [pathMetrics] = Array.of(getSizePathStyle(placement)); // Array.of used to remove error for uniterable return value

    let [width, height, pathData, style] = pathMetrics;
    return /*#__PURE__*/_react.default.createElement(_UxpProvider.SpectrumContext.Consumer, null, ({
      scale,
      theme
    } = {}) => /*#__PURE__*/_react.default.createElement("svg", {
      className: "spectrum-Popover-tip",
      style: _objectSpread({
        width,
        height,
        border: 'none',
        background: 'none',
        fill: _dna.default.elements[theme][scale].popover.default.states.default['background-color'],
        stroke: _dna.default.elements[theme][scale].popover.default.states.default['border-color']
      }, style)
    }, /*#__PURE__*/_react.default.createElement("path", {
      d: pathData
    })));
  }

}) || _class;

exports.default = UxpPopover;

/***/ }),

/***/ "d9IO":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MAX_DISPLAYED_CONTRIBUTOR_FACES; });
/* harmony import */ var _react_react_spectrum_DropdownButton__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("6y7h");
/* harmony import */ var _react_react_spectrum_DropdownButton__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_DropdownButton__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _react_react_spectrum_Menu__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("kzNO");
/* harmony import */ var _react_react_spectrum_Menu__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Menu__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _react_react_spectrum_Icon_Star__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("tBqN");
/* harmony import */ var _react_react_spectrum_Icon_Star__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Icon_Star__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _react_react_spectrum_Icon_StarOutline__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("68KS");
/* harmony import */ var _react_react_spectrum_Icon_StarOutline__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Icon_StarOutline__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var mobx_react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("okNM");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_5__);
/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("VIzJ");
/* harmony import */ var _SpaceAccess__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("BzLU");
/* harmony import */ var _actions_addMember__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("1+hv");
/* harmony import */ var _components_Facepile_Facepile__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__("Rxj1");
/* harmony import */ var _components_HeaderAction__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__("BGxO");
/* harmony import */ var _hosts_Host__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__("Dy/p");
/* harmony import */ var _stores_User__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__("CJr9");
/* harmony import */ var _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__("mm/P");
/* harmony import */ var _CoachMarks__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__("Yo2G");
/* harmony import */ var _utils_projectToDocument__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__("+dgH");
/* harmony import */ var _Toolbar__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__("cB30");
/* harmony import */ var _utils_wait__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__("3hUS");
/* harmony import */ var _styles_HeaderAction_css__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__("pRdk");
/* harmony import */ var _styles_HeaderAction_css__WEBPACK_IMPORTED_MODULE_18___default = /*#__PURE__*/__webpack_require__.n(_styles_HeaderAction_css__WEBPACK_IMPORTED_MODULE_18__);
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;
};



















const MAX_DISPLAYED_CONTRIBUTOR_FACES = 5;
let OneUpToolbar = class OneUpToolbar extends react__WEBPACK_IMPORTED_MODULE_5__["Component"] {
    get projectActions() {
        var _a, _b, _c;
        const { browseSession, currentProject } = this.props;
        const allActions = (_b = (_a = this.props).getProjectActions) === null || _b === void 0 ? void 0 : _b.call(_a, {
            archive: browseSession.projectList.deleteProjects,
            workflow: _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_13__[/* Workflow */ "f"].Project1Up,
        });
        let _actions = [
            currentProject.isEditable ? allActions.get('editSpace') : allActions.get('viewInfo'),
        ];
        // Leave the space.
        // CCI team owner can't leave spaces that in their own team.
        const teamId = currentProject.teamId;
        if (currentProject.isContributor && teamId && !_stores_User__WEBPACK_IMPORTED_MODULE_12__[/* default */ "a"].isOwnerOfCCITeam(teamId)) {
            _actions.push(allActions.get('leaveProject'));
        }
        if (currentProject.bookmarked) {
            _actions.splice(1, 0, allActions.get('unfollow'));
        }
        else {
            _actions.splice(1, 0, allActions.get('follow'));
        }
        if (currentProject.isEditable && !this.props.mobile) {
            // Move spaces to new team. Disabled for CCI Teams. Each CCI team is considered an independent
            // repository and we don't allow move content across repositories.
            if (((_c = _stores_User__WEBPACK_IMPORTED_MODULE_12__[/* default */ "a"].getTeamFromId(teamId)) === null || _c === void 0 ? void 0 : _c.repositoryOwnerType) === 'org') {
                _actions.push(allActions.get('move'));
            }
            _actions.push(allActions.get('archive'));
        }
        return _actions;
    }
    render() {
        const { browseSession, currentProject, intl, isOffline, mobile, onLeaveAfter, onProjectActionSelected, openShareSheet, } = this.props;
        if (currentProject.isArchived || currentProject.reloadFailure) {
            return null;
        }
        const showFacepile = !mobile &&
            currentProject.isContributor &&
            currentProject.facepileContributors.length > 0;
        const invite = Object(_actions_addMember__WEBPACK_IMPORTED_MODULE_8__[/* collaboratorAction */ "a"])({
            role: 'editor',
            getSpace: () => currentProject,
            getIsButtonDisabled: () => isOffline,
            openShareSheet: openShareSheet,
            onLeaveAfter: () => onLeaveAfter === null || onLeaveAfter === void 0 ? void 0 : onLeaveAfter(),
        });
        return (react__WEBPACK_IMPORTED_MODULE_5___default.a.createElement(_Toolbar__WEBPACK_IMPORTED_MODULE_16__[/* default */ "a"], { key: "toolbar", justifyContent: "flex-end" },
            react__WEBPACK_IMPORTED_MODULE_5___default.a.createElement(_components_HeaderAction__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"], { className: currentProject.bookmarked ? _styles_HeaderAction_css__WEBPACK_IMPORTED_MODULE_18___default.a.favoriteIcon : '', name: react__WEBPACK_IMPORTED_MODULE_5___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_6__[/* FormattedMessage */ "c"], { id: 'button.favorite' }), value: currentProject.bookmarked ? 'button.favorite' : 'button.unfavorite', icon: currentProject.bookmarked ? react__WEBPACK_IMPORTED_MODULE_5___default.a.createElement(_react_react_spectrum_Icon_Star__WEBPACK_IMPORTED_MODULE_2___default.a, { size: "S" }) : react__WEBPACK_IMPORTED_MODULE_5___default.a.createElement(_react_react_spectrum_Icon_StarOutline__WEBPACK_IMPORTED_MODULE_3___default.a, { size: "S" }), iconOnly: true, getIsButtonDisabled: () => isOffline, onClick: () => currentProject.bookmarked
                    ? currentProject.unFollow(this.props.browseSession)
                    : currentProject.follow(this.props.browseSession), "data-test-id": `OneUpToolbar__${currentProject.bookmarked ? 'favorite' : 'unfavorite'}` }),
            react__WEBPACK_IMPORTED_MODULE_5___default.a.createElement(_Toolbar__WEBPACK_IMPORTED_MODULE_16__[/* default */ "a"].Divider, null),
            react__WEBPACK_IMPORTED_MODULE_5___default.a.createElement(_Toolbar__WEBPACK_IMPORTED_MODULE_16__[/* default */ "a"].Spacer, null),
            showFacepile && (react__WEBPACK_IMPORTED_MODULE_5___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_5___default.a.Fragment, null,
                react__WEBPACK_IMPORTED_MODULE_5___default.a.createElement(_SpaceAccess__WEBPACK_IMPORTED_MODULE_7__[/* AccessIconAndTooltip */ "b"], { access: currentProject.isSharedToTeam
                        ? _SpaceAccess__WEBPACK_IMPORTED_MODULE_7__[/* AccessTypes */ "c"].team
                        : _SpaceAccess__WEBPACK_IMPORTED_MODULE_7__[/* AccessTypes */ "c"].private, size: "S", team: currentProject.teamName }),
                react__WEBPACK_IMPORTED_MODULE_5___default.a.createElement(_components_Facepile_Facepile__WEBPACK_IMPORTED_MODULE_9__[/* default */ "a"], { maxFaces: MAX_DISPLAYED_CONTRIBUTOR_FACES, users: currentProject.facepileContributors }),
                react__WEBPACK_IMPORTED_MODULE_5___default.a.createElement(_Toolbar__WEBPACK_IMPORTED_MODULE_16__[/* default */ "a"].Spacer, null))),
            currentProject.isContributor && _hosts_Host__WEBPACK_IMPORTED_MODULE_11__[/* default */ "a"].canShare && (react__WEBPACK_IMPORTED_MODULE_5___default.a.createElement("div", { key: "sharesheetButton" },
                react__WEBPACK_IMPORTED_MODULE_5___default.a.createElement(_CoachMarks__WEBPACK_IMPORTED_MODULE_14__[/* SpacesCoachMark */ "b"], { tourId: "spaces", step: 2, browseSession: browseSession },
                    react__WEBPACK_IMPORTED_MODULE_5___default.a.createElement(_components_HeaderAction__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"], Object.assign({}, invite, { className: _styles_HeaderAction_css__WEBPACK_IMPORTED_MODULE_18___default.a.invite, "data-test-id": "OneUpToolbar__invite", iconOnly: true, name: intl.formatMessage({ id: 'button.share' }), onClick: () => {
                            browseSession.refreshCurrentSpace();
                            invite.execute(Object(_utils_projectToDocument__WEBPACK_IMPORTED_MODULE_15__[/* default */ "a"])([currentProject]));
                        }, quiet: true, value: 'button.invite' }))))),
            react__WEBPACK_IMPORTED_MODULE_5___default.a.createElement(_react_react_spectrum_DropdownButton__WEBPACK_IMPORTED_MODULE_0___default.a, { key: "buttonActions", "aria-label": intl.formatMessage({ id: 'button.actions' }), alignRight: true, onClick: e => {
                    const start = performance.now();
                    // Track only ellipsis menu clicks (...) Action item clicks are instrumented elsewhere
                    // Event object will be undefined when activated via keyboard navigation according to RS2 source code
                    if (e === null || e === void 0 ? void 0 : e.target.classList.contains('spectrum-ActionButton')) {
                        const scaffoldEvent = _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_13__[/* default */ "g"].scaffoldEvent(_utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_13__[/* Subcategory */ "c"].Actions, _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_13__[/* Subtype */ "d"].navigation, _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_13__[/* Type */ "e"].click, _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_13__[/* Workflow */ "f"].Project1Up);
                        const elapsedTime = performance.now() - start;
                        // Dunamis Analytics
                        _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_13__[/* default */ "g"].fireEvent({
                            event: {
                                ...scaffoldEvent.event,
                                value: elapsedTime,
                                context_guid: null,
                            },
                            content: {
                                id: currentProject.id,
                                author: currentProject.isContributor ? 'contributor' : 'viewer',
                            },
                            ui: {
                                view_type: _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_13__[/* Workflow */ "f"].Project1Up,
                            },
                            custom: {
                                team_id: currentProject.teamId,
                            },
                        });
                    }
                }, onSelect: async (value) => {
                    var _a;
                    await Object(_utils_wait__WEBPACK_IMPORTED_MODULE_17__[/* waitUntil */ "a"])((_a = document.activeElement) === null || _a === void 0 ? void 0 : _a.className.includes('spectrum-Menu-item'));
                    onProjectActionSelected === null || onProjectActionSelected === void 0 ? void 0 : onProjectActionSelected(value);
                }, onOpen: () => browseSession.projectsClient.onDialogStateChange(true), onClose: () => browseSession.projectsClient.onDialogStateChange(false), "data-test-id": "OneUpToolbar__actions" }, this.projectActions.map(action => (react__WEBPACK_IMPORTED_MODULE_5___default.a.createElement(_react_react_spectrum_Menu__WEBPACK_IMPORTED_MODULE_1__["MenuItem"], { disabled: isOffline, key: action.value, value: action.value, icon: action.icon },
                react__WEBPACK_IMPORTED_MODULE_5___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_6__[/* FormattedMessage */ "c"], { id: action.label })))))));
    }
};
OneUpToolbar = __decorate([
    mobx_react__WEBPACK_IMPORTED_MODULE_4__[/* observer */ "e"]
], OneUpToolbar);
/* harmony default export */ __webpack_exports__["b"] = (Object(react_intl__WEBPACK_IMPORTED_MODULE_6__[/* injectIntl */ "g"])(OneUpToolbar));


/***/ }),

/***/ "d9MD":
/***/ (function(module, exports, __webpack_require__) {

// extracted by mini-css-extract-plugin

/***/ }),

/***/ "dAeb":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return RawIntlProvider; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return createIntl; });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("17x9");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _types_CDOReactIntlTyped__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("dSAe");
/* harmony import */ var _utils_i18n__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("oSp+");
/*************************************************************************
 *   ADOBE CONFIDENTIAL
 *
 *   Copyright 2022 Adobe
 *   All Rights Reserved.
 *
 *   NOTICE:  All information contained herein is, and remains
 *   the property of Adobe and its suppliers, if any. The intellectual
 *   and technical concepts contained herein are proprietary to Adobe
 *   and its suppliers and are protected by all applicable intellectual
 *   property laws, including trade secret and copyright laws.
 *   Dissemination of this information or reproduction of this material
 *   is strictly forbidden unless prior written permission is obtained
 *   from Adobe.
 *************************************************************************/




/**
 * This is a polyfill for react-intl's "createIntl", which is only available in react-intl 3.x.x
 *
 * This polyfill was copied from @ccx/projects due to conflicts managing dependency versions
 * between repos when trying to upgrade react-intl from 2.8.0 to 3.x.x
 * (See https://git.corp.adobe.com/CCX/projects/blob/8f855db91f69fadaf86ecddffcaa9bbd37b268be/src/utils/createIntl.tsx#L20)
 */
function createIntl({ uiLocale, systemLocale }) {
    // Application language for messages (`messages` prop)
    const appLanguage = uiLocale || 'en';
    const localeStrings = _utils_i18n__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].getStringsForLocale(appLanguage);
    // System locale take precedence over app language for formatting language-sensitive API such as Number, Date,
    // Percentage Formatters (`locale` prop). So, intl.locale is systemLocale (if systemLocale is provided)
    const formatterLocale = _utils_i18n__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].getSupportedSystemLocale(systemLocale || appLanguage || 'en-US');
    // TODO: figure out how to use this IntlProvider that already exists instead of RawIntlProvider polyfill
    const provider = new _types_CDOReactIntlTyped__WEBPACK_IMPORTED_MODULE_2__[/* IntlProvider */ "c"]({
        locale: formatterLocale,
        messages: localeStrings,
    });
    // Need to reserve app language (as `intl.appLanguage`) and system locale (as `intl.locale`)
    // values (to pass to UAP...)
    const intl = {
        ...provider.getChildContext().intl,
        appLanguage,
        // override now() because RelativeFormat otherwise calls now() on an unmounted IntlProvider
        // that returns the time of instantiation and not the current time
        now: () => Date.now(),
    };
    return intl;
}
/**
 * This is a polyfill for react-intl's "RawIntlProvider", which is only available in react-intl 3.x.x
 *
 * We're not able to use the new Context API since we need to take the place of react-intl 2.x.x's IntlProvider
 */
class RawIntlProvider extends react__WEBPACK_IMPORTED_MODULE_0__["Component"] {
    getChildContext() {
        const { value } = this.props;
        return { intl: value };
    }
    render() {
        const { children } = this.props;
        return children;
    }
}
RawIntlProvider.childContextTypes = {
    // eslint-disable-next-line react/forbid-prop-types
    intl: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object.isRequired,
};



/***/ }),

/***/ "dBqt":
/***/ (function(module, exports) {

/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
module.exports = {
  'ccd.infoPanel.detail.created': 'Created',
  'ccd.infoPanel.detail.modified': 'Modified',
  'ccd.infoPanel.detail.size': 'Size',
  'ccd.infoPanel.detail.shared': 'Shared',
  'ccd.header.renameFolder': 'Rename folder',
  'ccd.menu.addToFavourites': 'Add to Shortcuts',
  'ccd.menu.removeFromFavourites': 'Remove shortcut',
  'ccd.menu.viewonweb': 'View on web',
  'ccd.menu.share': 'Share',
  'ccd.menu.openWith': 'Open in',
  'ccd.menu.changeDefaultApp': 'Change default application...',
  'ccd.menu.default': '(Default)',
  'ccd.menu.export': 'Export as local copy',
  'ccd.menu.download': 'Download',
  'ccd.menu.createNew': 'Create new...',
  'ccd.menu.launch': 'LAUNCH',
  'actionMenuItem.permdelete': 'Delete permanently',
  'tab.Cloud Documents': 'Your files',
  'tab.Home': 'Home',
  'header.CloudDocuments': 'Your files',
  'header.SharedWithYou': 'Shared with you',
  'header.Deleted': 'Deleted',
  'header.Deleted.AssetsWebLink': 'To view all deleted items, go to Assets Web',
  'header.SelectedDocuments': '{numSelected, plural, =1 {#} other {#}} selected',
  'header.size': 'Size',
  'header.title': 'Name',
  'header.modifiedDate': 'Date modified',
  'header.createDate': 'Date created',
  'header.shareDate': 'Date shared',
  'header.SortBy': 'Sort by',
  'header.infoPopover.body': 'Only compatible files are shown. To view all files, visit Creative Cloud on the web.',
  'header.infoPopover.link': 'Go to Creative Cloud',
  'header.dragImport': 'Upload to: {displayName}',
  'collaborators.onlyYou': 'Only you',
  'collaborators.Owner': '{displayName} (owner)',
  'collaborators.More': '{numItems, plural, other {+# more}}',
  'empty.offline.root.title': 'You\'re disconnected',
  'empty.offline.root.subtitle': 'Items visible while you were online will appear here when you reconnect.',
  'empty.offline.folder.title': 'Couldn\'t load folder',
  'empty.offline.folder.subtitle': 'No internet connection. Reconnect to view everything.',
  'empty.online.cdp.saveas.root.title': 'No cloud documents to show',
  'empty.online.cdp.saveas.root.subtitle': 'Cloud documents mean your work is always updated, across every device, wherever you are – just connect to the internet and go.',
  'empty.online.cdp.saveas.root.subtitle.sprk': 'All your cloud documents from XD will be right here. Work anywhere, even offline. Changes on cloud documents are auto saved and viewable in document history.',
  'empty.online.cdp.saveas.root.subtitle.phxs': 'All your cloud documents from Photoshop on Mac, Windows, and iPad will be right here.',
  'empty.online.cdp.saveas.root.subtitle.ilst': 'All your cloud documents from Illustrator on Mac and Windows will be right here.',
  'empty.online.cdp.saveas.root.subtitle.idsn': 'All your cloud documents from InDesign on Mac and Windows will be right here.',
  'empty.online.cdp.saveas.folder.title': 'No cloud documents to show',
  'empty.online.cdp.saveas.folder.subtitle': 'When you put a compatible cloud document in this folder, it will show up here.',
  'empty.online.cdp.open.root.title': 'No cloud documents to show',
  'empty.online.cdp.open.root.subtitle': 'When you put a compatible cloud document in this folder, it will show up here.',
  'empty.online.cdp.open.root.subtitle.sprk': 'All your cloud documents from XD will be right here. Work anywhere, even offline. Changes on cloud documents are auto saved and viewable in document history.',
  'empty.online.cdp.open.root.subtitle.phxs': 'All your cloud documents from Photoshop on Mac, Windows, and iPad will be right here.',
  'empty.online.cdp.open.root.subtitle.ilst': 'All your cloud documents from Illustrator on Mac and Windows will be right here.',
  'empty.online.cdp.open.root.subtitle.idsn': 'All your cloud documents from InDesign on Mac and Windows will be right here.',
  'empty.online.cdp.open.folder.title': 'No cloud documents to show',
  'empty.online.cdp.open.folder.subtitle': 'When you put a compatible cloud document in this folder, it will show up here.',
  'empty.online.cdo.root.title': 'You have no cloud documents',
  'empty.online.cdo.root.subtitle': 'Collaborate seamlessly with others and work anywhere, even when you’re offline. Changes are autosaved and viewable in file history.',
  'empty.online.cdo.root.subtitle.sprk': 'Collaborate seamlessly in real time with others and work anywhere, even offline. Changes are autosaved and viewable in file history.',
  'empty.online.cdo.root.subtitle.phxs': 'Collaborate seamlessly with others and work anywhere you sign in to Photoshop, even when you’re offline. Changes are autosaved and viewable in file history.',
  'empty.online.cdo.root.subtitle.ilst': 'Collaborate seamlessly with others and work anywhere you sign in to Illustrator, even when you’re offline. Changes are autosaved and viewable in file history.',
  'empty.online.cdo.root.subtitle.idsn': 'Access your documents from anywhere you sign in to InDesign. Changes are autosaved.',
  'empty.online.cdo.folder.title': 'No cloud documents to show',
  'empty.online.cdo.folder.subtitle': 'When you put a compatible cloud document in this folder, it will show up here.',
  'empty.title.deleted': 'You don\'t have any deleted files',
  'empty.title.deleted_offline': 'You\'re disconnected',
  'empty.title.recent': 'You have no recent files',
  'empty.subtext.deleted_offline': 'Items deleted while you were online will appear here when you reconnect.',
  'empty.title.shared_with_you': 'You have no shared cloud documents',
  'empty.subtext.shared_with_you': 'When someone shares cloud documents with you, they will show up here.',
  'empty.title.shared_with_you_offline': 'You\'re disconnected',
  'empty.subtext.shared_with_you_offline': 'You can view and edit shared documents when your connection is back.',
  'empty.title.error': 'Something went wrong',
  'empty.subtext.error': 'Please restart the app and try again.',
  'empty.subtext.error.web': 'Refresh your browser and try again.',
  'empty.title.coresync.down': 'Unable to load',
  'empty.subtext.coresync.down': 'The cloud isn\’t syncing. Make sure Creative Cloud desktop is updated or try restarting the app.',
  'empty.title.coresync.incompatible': 'Can\'t load cloud documents',
  'empty.subtext.coresync.incompatible': 'We can\'t show items right now. Please update your version of the Creative Cloud application and try again.',
  'empty.title.cloudStorageDisabled': 'Cloud documents are not available',
  'empty.subtext.cloudStorageDisabled': 'You can use {productName} to work on files on your device only. Contact your IT administrator for more info.',
  'empty.title.logout': 'Sign in to access cloud documents.',
  'empty.learnMore.link': 'Learn more',
  'trueEmpty.online.cdo.folder.title': 'There\'s nothing in this folder',
  'trueEmpty.online.cdo.folder.subtitle': 'Add things here to start filling it.',
  'trueEmpty.online.cdp.saveas.folder.title': 'No cloud documents—yet',
  'trueEmpty.online.cdp.saveas.folder.subtitle': 'Cloud documents mean your work is always updated, across every device, wherever you are—just connect to the internet and go.',
  'trueEmpty.online.cdp.open.folder.title': 'No cloud documents—yet',
  'trueEmpty.online.cdp.open.folder.subtitle': 'Cloud documents mean your work is always updated, across every device, wherever you are—just connect to the internet and go.',
  'filter.prompt': 'Enter keyword',
  'filter.title': 'Filter',
  'empty.filter.title': 'No results for "{filterString}"',
  'empty.filter.subtitle': 'Check your spelling, try a broader keyword, or filter a different location.',
  'beta.title': 'Sync your work across your devices',
  'beta.subtitle': 'Work seamlessly in Photoshop on your iPad and desktop with cloud documents. But the feature is in beta, so it might not always work as expected. Turn it on and off in preferences.',
  'beta.button': 'Turn On In Preferences',
  'beta.tag': 'BETA',
  'beta.feedback.link': 'Give Feedback On The Beta',
  'button.add-folder': 'Create new folder',
  'button.upload': 'Upload...',
  'button.createnew': 'Create New',
  'button.reportAbuse': 'Report Abuse',
  'button.open': 'Open',
  'button.select': 'Select',
  'button.rename': 'Rename',
  'button.pin.header': 'Make available offline always',
  'button.pin': 'Make available offline always',
  'button.unpin.header': 'Make available online-only',
  'button.unpin': 'Make available online-only',
  'button.duplicate': 'Duplicate',
  'button.download': 'Download',
  'button.move': 'Move',
  'button.delete': 'Delete',
  'button.restore': 'Restore',
  'button.permdelete': 'Delete Permanently',
  'button.listview': 'View List',
  'button.gridview': 'View Grid',
  'button.sharesheetinvite': 'Invite to edit',
  'button.sharesheetLink': 'Get link',
  'button.shareSheetAction': 'Share',
  'button.preview': 'Preview',
  'button.schedule': 'Schedule',
  'action.duplicate.suffix': '(Duplicate)',
  'action.resolve_sync_error.suffix': 'copy',
  'statusIcon.conflicted': 'Sync conflict',
  'statusIcon.onlineOnly': 'Online-only',
  'statusIcon.availableOffline': 'Available offline',
  'statusIcon.syncing': 'Syncing...',
  'statusIcon.waitingToSync': 'Waiting to sync',
  'tooltip.error': 'Open document to review save conflict',
  'toast.error.documentIsOpen': 'Close the {count, plural, =1 {document} other {documents}} to perform this action.',
  'toast.error.exceedsQuota.personal': 'Your account is out of storage',
  'toast.error.exceedsQuota.enterprise': 'Out of storage, contact your admin for more info',
  'toast.operation.duplicate.error': 'Couldn\'t duplicate {count, plural, =1 {item} other {{count} items}}.',
  'toast.operation.duplicate.success': '{count, plural, =1 {Item} other {{count} items}} duplicated.',
  'toast.operation.archive.error': 'Couldn\'t delete {count, plural, =1 {item} other {{count} items}}.',
  'toast.operation.archive.error.otherAppUncommittedChanges': 'You can\'t delete files open in other apps. Close them and then try again.',
  'toast.operation.archive.undo.error': 'Couldn\'t delete {count, plural, =1 {item} other {{count} items}}.',
  'toast.operation.archive.success': '{count, plural, =1 {Item} other {{count} items}} deleted.',
  'toast.operation.archive.undo.success': 'Restore undone.',
  'toast.operation.permdelete.error': 'Couldn\'t permanently delete {count, plural, =1 {item} other {{count} items}}.',
  'toast.operation.permdelete.success': '{count, plural, =1 {Item} other {{count} items}} permanently deleted.',
  'toast.operation.rename.error': 'Couldn\'t rename item.',
  'toast.operation.rename.undo.error': 'Couldn\'t rename item.',
  'toast.operation.rename.error.duplicateName': 'You already have an item here with this name.',
  'toast.operation.rename.undo.error.duplicateName': 'You already have an item here with this name.',
  'toast.operation.rename.success': 'Item renamed.',
  'toast.operation.rename.undo.success': 'Rename undone.',
  'toast.operation.move.error': 'Couldn\'t move {count, plural, =1 {item} other {{count} items}}.',
  'toast.operation.move.undo.error': 'Couldn\'t move {count, plural, =1 {item} other {{count} items}}.',
  'toast.operation.move.error.duplicateFolderName': 'You already have a folder here with this name.',
  'toast.operation.move.undo.error.duplicateFolderName': 'You already have a folder here with this name.',
  'toast.operation.move.error.duplicateDocName': '{count, plural, =1 {There’s already a document with this name in that folder. Rename and try again.} other {Documents can’t be moved because there are documents with the same name.}}',
  'toast.operation.move.undo.error.duplicateDocName': '{count, plural, =1 {There’s already a document with this name in that folder. Rename and try again.} other {Documents can’t be moved because there are documents with the same name.}}',
  'toast.operation.move.success': '{count, plural, =1 {Item} other {{count} items}} moved.',
  'toast.operation.move.undo.success': 'Move undone.',
  'toast.operation.unarchive.error': 'Couldn\'t restore {count, plural, =1 {item} other {{count} items}}.',
  'toast.operation.unarchive.undo.error': 'Couldn\'t restore {count, plural, =1 {item} other {{count} items}}.',
  'toast.operation.unarchive.success': '{count, plural, =1 {Item} other {{count} items}} restored.',
  'toast.operation.unarchive.undo.success': 'Delete undone.',
  'toast.operation.create_new_folder.success': 'Folder created.',
  'toast.operation.create_new_folder.error': 'Couldn\'t create new folder.',
  'toast.operation.create_new_folder.error.duplicateName': 'You already have a folder here with this name.',
  'toast.operation.user_pin.success': '{count, plural, =1 {Item} other {{count} items}} available offline.',
  'toast.operation.user_pin.error': 'Couldn\'t make {count, plural, =1 {item} other {{count} items}} available offline.',
  'toast.operation.user_unpin.success': '{count, plural, =1 {Item} other {{count} items}} available online-only.',
  'toast.operation.user_unpin.error': 'Couldn\'t make {count, plural, =1 {item} other {{count} items}} available online-only.',
  'toast.operation.resolve_sync_error.success': 'Copy of "{name}" created. You can compare both documents and reconcile any differences.',
  'toast.ccd.scroll_to_item.fetching': 'Fetching file…',
  'toast.ccd.scroll_to_item.error': 'File not found',
  'toast.info.disabled_rename_to_open_item': 'Legacy XD documents must first be opened before they can be renamed here.',
  'toast.action.disabled_rename_to_open_item': 'Open Document',
  'toast.error.rename.invalidName': 'Sorry, this name contains invalid character(s).',
  'toast.error.rename.invalidChar': 'Name cannot contain the following characters: {characters}',
  'toast.error.rename.invalidEnd': 'Name cannot end with "." or empty space.',
  'toast.error.rename.charRestriction': 'Names can\'t be longer than 200 characters.',
  'toast.error.rename.duplicateName': 'You already have a cloud document here with this name.',
  'toast.success.reportAbuse': 'Successfully reported abuse',
  'toast.error.reportAbuse': 'Failed to report abuse',
  'toast.operation.undoLabel': 'Undo',
  'dialog.permdelete.heading': 'Delete permanently',
  'dialog.permdelete.warning': 'You cannot undo this action. Here\'s what will be gone for good:',
  'dialog.permdelete.cancelButton': 'Cancel',
  'dialog.permdelete.confirmButton': 'Delete permanently',
  'dialog.permdelete.countItems': '{count, plural, =1 {# item} other {# items}}',
  'dialog.nonemptyfolder.heading': 'Are you sure you want to delete {count, plural, =1 {this folder} other {these folders}}?',
  'dialog.nonemptyfolder.warning': '{count, plural, =1 {This folder is} other {These folders are}} not empty, and may contain files that are not visible in {appName}. You can continue deleting, or view the {count, plural, =1 {folder} other {folders}} on the web to check out {count, plural, =1 {its} other {their}} contents.  {viewOnWebLink}',
  'dialog.nonemptyfolder.cancelButton': 'Cancel',
  'dialog.nonemptyfolder.confirmButton': 'Delete',
  'dialog.nonemptyfolder.viewOnWebButton': 'View on the web',
  'dialog.addfolder.heading': 'Create new folder',
  'dialog.addfolder.cancelButton': 'Cancel',
  'dialog.addfolder.confirmButton': 'Save',
  'dialog.addfolder.placeholder': 'New Folder',
  'dialog.addfolder.invalidChar': 'Names can\'t contain the following characters: {characters}',
  'dialog.addfolder.invalidName': 'Sorry, this folder contains invalid character(s).',
  'dialog.addfolder.invalidEnd': 'Name cannot end with "." or empty space.',
  'dialog.addfolder.duplicateName': 'You already have a folder here with this name.',
  'dialog.addfolder.charRestriction': 'Names can\'t be longer than 200 characters.',
  'dialog.moveFolder.heading': 'Move to...',
  'dialog.moveFolder.cancelButton': 'Cancel',
  'dialog.moveFolder.moveButton': 'Move',
  'dialog.moveFolder.createNewFolderButton': 'Add folder',
  'dialog.reportAbuse.cancelButton': 'Cancel',
  'dialog.reportAbuse.reportAbuseButton': 'Report Abuse',
  'dialog.reportAbuse.heading': 'Report Abuse',
  'dialog.reportAbuse.emailInput': 'Your Email',
  'dialog.reportAbuse.nameInput': 'Your Name',
  'dialog.reportAbuse.radioButtonText': 'Why are you reporting this content?',
  'dialog.reportAbuse.defamation': 'Defamation',
  'dialog.reportAbuse.hate': 'Racist or Hate content',
  'dialog.reportAbuse.trademark': 'Trademark Infringment',
  'dialog.reportAbuse.pornography': 'Sexually Explicit Content',
  'dialog.reportAbuse.vulgar': 'Offensive Content',
  'dialog.reportAbuse.other': 'Other',
  'dialog.reportAbuse.inappropriate': 'Inappropriate',
  'dialog.reportAbuse.age': 'Age inaccuracy',
  'dialog.reportAbuse.gender': 'Gender inaccuracy',
  'dialog.reportAbuse.description': 'If you feel that this Creative Cloud content violates the Adobe Terms of Use, you may report this content by filling out this quick form.',
  'dialog.reportAbuse.describeConcern': 'Describe Concern',
  'dialog.reportAbuse.success': 'Successfully reported abuse',
  'dialog.reportAbuse.failure': 'Failed to report abuse',
  'dialog.reportAbuse.textAreaTitle': 'Please provide a description of your concern',
  'dialog.reportAbuse.required': 'Required',
  'dialog.cachefull.title': 'Can\'t make available offline',
  'dialog.cachefull.message': 'You\'re out of space on your device. Make documents online-only to free up space.',
  'dialog.cachefull.confirm': 'Ok',
  'dialog.syncError.heading': 'This document has stopped syncing to the cloud',
  'dialog.syncError.body1': 'We recommend you save your latest version as a copy and restore the document to the last version saved in the cloud.',
  'dialog.syncError.body2': 'You can open this document and make edits, but your changes will not be saved to the cloud.',
  'dialog.syncError.offline': 'You must be online to save a copy and restore the original.',
  'dialog.syncError.learnMore': 'Learn more',
  'dialog.syncError.resolveButton': 'Save a copy and restore',
  'dialog.syncError.openButton': 'Open',
  'dialog.syncErrorCopyFail.heading': 'Could not save a copy',
  'dialog.syncErrorCopyFail.body1': 'You can still open this document and make edits, but your changes will not be saved to the cloud.',
  'dialog.syncErrorCopyFail.body2': 'Please contact Adobe Customer Care for further assistance. (Error: LocalContentSyncSuspended)',
  'dialog.syncErrorCopyFail.closeButton': 'Close',
  'dialog.syncErrorCopyFail.contactUs': 'Contact us',
  'dialog.syncErrorPurgeFail.heading': 'Could not restore to last version saved in cloud',
  'dialog.syncErrorPurgeFail.body1': 'A copy of your document has been created, but we could not restore your document to the last saved version in the cloud.',
  'dialog.syncErrorPurgeFail.body2': 'Please contact Adobe Customer Care for further assistance. (Error: LocalContentSyncSuspended)',
  'dialog.syncErrorPurgeFail.closeButton': 'Close',
  'dialog.syncErrorPurgeFail.contactUs': 'Contact us',
  'onboardingCdo.banner.title.sprk': 'A better way to work',
  'onboardingCdo.banner.title.phxs': 'Using Photoshop on iPad? Try cloud documents',
  'onboardingCdo.banner.title.ilst': 'Now you can use cloud documents in Illustrator',
  'onboardingCdo.banner.title.idsn': 'Now you can use cloud documents in InDesign',
  'onboardingCdo.banner.message.sprk': 'Edit your cloud documents anywhere, even offline. Changes are auto saved and viewable in document history. Share them with others to collaborate seamlessly in real time.',
  'onboardingCdo.banner.message.phxs': 'Cloud documents save automatically to Adobe\’s cloud as you work, so you can access your files on desktop or iPad.',
  'onboardingCdo.banner.message.ilst': 'Cloud documents in Illustrator automatically save to Adobe\’s cloud as you work. You can also view the version history to see how your work has evolved.',
  'onboardingCdo.banner.message.idsn': 'Cloud documents in InDesign automatically save to Adobe\'s cloud as you work.',
  'onboardingCdo.banner.linkTitle': 'Learn more',
  'onboardingCdo.banner.confirm': 'OK',
  'operation.progress.archive': 'Deleting {batchSize, plural, =1 {1 item} other {{inProgressNum} of {batchSize} items}}...',
  'operation.progress.unarchive': 'Restoring {batchSize, plural, =1 {1 item} other {{inProgressNum} of {batchSize} items}}...',
  'operation.progress.move': 'Moving {batchSize, plural, =1 {1 item} other {{inProgressNum} of {batchSize} items}}...',
  'operation.progress.permdelete': 'Permanently deleting {batchSize, plural, =1 {1 item} other {{inProgressNum} of {batchSize} items}}...',
  'operation.progress.rename': 'Renaming {batchSize, plural, =1 {1 item} other {{inProgressNum} of {batchSize} items}}...',
  'operation.progress.create_new_folder': 'Creating new folder...',
  'operation.progress.duplicate': 'Duplicating {batchSize, plural, =1 {1 item} other {{inProgressNum} of {batchSize} items}}...',
  'operation.progress.user_pin': 'Making {batchSize, plural, =1 {1 item} other {{inProgressNum} of {batchSize} items}} available offline...',
  'operation.progress.user_unpin': 'Making {batchSize, plural, =1 {1 item} other {{inProgressNum} of {batchSize} items}} available online-only...',
  'operation.progress.resolve_sync_error': 'Copying and restoring to last saved version in the cloud...',
  'tooltip.offline.general': 'Internet connection is required.',
  'tooltip.offline.create-new-folder': 'Internet connection is required to create folders.',
  'tooltip.offline.move': 'Internet connection is required to move items.',
  'tooltip.syncing.disabled': 'Pending sync completion',
  'tooltip.rename.disabled': 'A selected document cannot be renamed. Please open in host application to enable renaming.',
  'tooltip.rename.disabled.sprk': 'This file can’t be renamed until you open it in XD.',
  'tooltip.syncSuspended.needsAction': 'Syncing has stopped. Open to take action.',
  'tooltip.syncSuspended.noAction': 'Syncing has stopped.  This action is not allowed at this time.',
  'Recents.title': 'Recent',
  'Recents.cloudDocTitle': 'CLOUD DOCUMENT',
  'Recents.error.subtext.coreSync': 'Recents are unavailable right now because Creative Cloud Sync is not running properly.',
  'item.saveForOfflineIconToolTip': 'This document has been downloaded and is fully available offline.',
  'item.disconnected.cloudonly': 'You\'re disconnected. Please reconnect to open the document.',
  'item.coresyncdown.cloudonly': 'Can\'t load file. Updating or restarting Creative Cloud may fix this.',
  'folder.subtitle': 'FOLDER',
  'review.subtitle': 'REVIEW',
  'prototype.subtitle': 'PROTOTYPE',
  'designspecs.subtitle': 'DESIGN SPECS',
  'project.subtitle': 'PROJECT',
  'library.subtitle': 'LIBRARY',
  'webLink.subtitle': 'WEB LINK',
  'abbreviations.fileSize.byte': 'B',
  'abbreviations.fileSize.kilobyte': 'KB',
  'abbreviations.fileSize.megabyte': 'MB',
  'abbreviations.fileSize.gigabyte': 'GB',
  'abbreviations.fileSize.terabyte': 'TB',
  'sam.copyNameFormat': '%@ copy',
  'cloudsync.quota.title': 'CLOUD STORAGE',
  'cloudsync.quota.percentage': '{percentageUsed}%',
  'cloudsync.quota.usage': '{usedCloudQuotaString} of {maxCloudQuotaString} used',
  'cloudsync.quota.warning': 'Your cloud storage is full. Upgrade to continue syncing your work.',
  'cloudsync.quota.error': 'No storage information available...',
  'cloudsync.quota.upgrade': 'Upgrade',
  'cloudsync.status.complete.title': 'Synced and backed up',
  'cloudsync.status.syncing.title': 'Syncing cloud documents',
  'cloudsync.status.syncing.descr': '{progress}/{total}',
  'cloudsync.status.offline.title': 'Working offline',
  'cloudsync.status.offline.descr': 'We\'re saving locally. Documents will sync to the cloud when you\'re connected again.',
  'cloudsync.status.disabled.title': 'Sync disabled',
  'cloudsync.status.disabled.descr': 'We\'re saving locally. Documents will sync to the cloud when storage is available.',
  'cloudsync.item.progress.determinate': '{progress}/{total}',
  'cloudsync.item.progress.indeterminate': 'Syncing...',
  'cloudsync.item.complete': 'Complete',
  'cloudsync.items.header': 'Network activity',
  'cloudsync.alert.title.coresync.down': 'Unable to load',
  'cloudsync.alert.subtext.coresync.down': 'The cloud isn\’t syncing. Make sure Creative Cloud desktop is updated or try restarting the app.',
  'cloudsync.alert.subtext.coresync.down.learnmore': 'Learn more',
  'cloudsync.tooltip.offline': 'Disconnected',
  'cloudsync.tooltip.error': 'Error',
  'cloudsync.tooltip.syncing': 'Saving...',
  'cloudsync.tooltip.default': 'Saved',
  'cloudsync.singleDoc.offline.title': 'Disconnected',
  'cloudsync.singleDoc.offline.descr': 'Trying to reconnect...',
  'cloudsync.singleDoc.offline.timestamp': 'Last synced {time}',
  'cloudsync.singleDoc.error.samInitFail.title': 'The cloud stopped syncing',
  'cloudsync.singleDoc.error.samInitFail.descr': 'Please restart this app to continue syncing your work.',
  'cloudsync.singleDoc.error.syncSuspended.title': 'The cloud stopped syncing',
  'cloudsync.singleDoc.error.syncSuspended.descr': 'Please restart this app to continue syncing your work.',
  'cloudsync.singleDoc.error.title': 'Unable to load',
  'cloudsync.singleDoc.error.descr': 'The cloud isn\’t syncing. Make sure Creative Cloud desktop is updated or try restarting the app.',
  'cloudsync.singleDoc.error.learnMore': 'Learn more',
  'cloudsync.singleDoc.disabled.quotaExceeded.title': 'Your cloud storage is full',
  'cloudsync.singleDoc.disabled.quotaExceeded.descr': 'Please upgrade Creative Cloud to continue syncing your work.',
  'cloudsync.singleDoc.syncing.title': 'Saving...',
  'cloudsync.singleDoc.syncing.descr': 'In progress',
  'cloudsync.singleDoc.disabled.title': 'Can\'t save',
  'cloudsync.singleDoc.disabled.descr': 'Your account is out of storage.',
  'cloudsync.singleDoc.complete.title': 'File Saved',
  'cloudsync.singleDoc.complete.timestamp': 'Last synced {time}'
};

/***/ }),

/***/ "dCkJ":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);

/* harmony default export */ __webpack_exports__["a"] = (Object(react__WEBPACK_IMPORTED_MODULE_0__["createContext"])(null));


/***/ }),

/***/ "dD9F":
/***/ (function(module, exports, __webpack_require__) {

var baseGetTag = __webpack_require__("NykK"),
    isLength = __webpack_require__("shjB"),
    isObjectLike = __webpack_require__("ExA7");
/** `Object#toString` result references. */


var argsTag = '[object Arguments]',
    arrayTag = '[object Array]',
    boolTag = '[object Boolean]',
    dateTag = '[object Date]',
    errorTag = '[object Error]',
    funcTag = '[object Function]',
    mapTag = '[object Map]',
    numberTag = '[object Number]',
    objectTag = '[object Object]',
    regexpTag = '[object RegExp]',
    setTag = '[object Set]',
    stringTag = '[object String]',
    weakMapTag = '[object WeakMap]';
var 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]';
/** Used to identify `toStringTag` values of typed arrays. */

var typedArrayTags = {};
typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = typedArrayTags[uint32Tag] = true;
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] = false;
/**
 * The base implementation of `_.isTypedArray` without Node.js optimizations.
 *
 * @private
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.
 */

function baseIsTypedArray(value) {
  return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[baseGetTag(value)];
}

module.exports = baseIsTypedArray;

/***/ }),

/***/ "dEIx":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("path", {
  d: "M41 8h-9V6a4 4 0 0 0-4-4H18a4 4 0 0 0-4 4v2H5a1 1 0 0 0-1 1v4a1 1 0 0 0 1 1h1.2l2 28a2 2 0 0 0 2 2h25.6a2 2 0 0 0 2-2l2-28H41a1 1 0 0 0 1-1V9a1 1 0 0 0-1-1zM15.982 39.353a1.013 1.013 0 0 1-.7.331l-.4.021h-.023a1.011 1.011 0 0 1-1.027-.951l-1.23-21.362a1 1 0 0 1 .951-1.052l.447-.023a1 1 0 0 1 1 .953l1.227 21.361a.992.992 0 0 1-.245.722zM24.2 38.7a1 1 0 0 1-1 1h-.4a1 1 0 0 1-1-1V17.3a1 1 0 0 1 1-1h.4a1 1 0 0 1 1 1zM28 8H18V6h10zm4.2 30.76a.992.992 0 0 1-.33.7 1.025 1.025 0 0 1-.682.258h-.033l-.4-.02a1 1 0 0 1-.693-.327.987.987 0 0 1-.258-.717l1.152-21.377a1 1 0 0 1 1-.95l.447.021a1 1 0 0 1 .693.327.977.977 0 0 1 .26.717z"
}));

/***/ }),

/***/ "dEZ4":
/***/ (function(module, exports, __webpack_require__) {

!function (e, a) {
   true ? module.exports = a() : undefined;
}(this, function () {
  "use strict";

  return [{
    locale: "it",
    pluralRuleFunction: function (e, a) {
      var t = !String(e).split(".")[1];
      return a ? 11 == e || 8 == e || 80 == e || 800 == e ? "many" : "other" : 1 == e && t ? "one" : "other";
    },
    fields: {
      year: {
        displayName: "anno",
        relative: {
          0: "quest’anno",
          1: "anno prossimo",
          "-1": "anno scorso"
        },
        relativeTime: {
          future: {
            one: "tra {0} anno",
            other: "tra {0} anni"
          },
          past: {
            one: "{0} anno fa",
            other: "{0} anni fa"
          }
        }
      },
      "year-short": {
        displayName: "anno",
        relative: {
          0: "quest’anno",
          1: "anno prossimo",
          "-1": "anno scorso"
        },
        relativeTime: {
          future: {
            one: "tra {0} anno",
            other: "tra {0} anni"
          },
          past: {
            one: "{0} anno fa",
            other: "{0} anni fa"
          }
        }
      },
      month: {
        displayName: "mese",
        relative: {
          0: "questo mese",
          1: "mese prossimo",
          "-1": "mese scorso"
        },
        relativeTime: {
          future: {
            one: "tra {0} mese",
            other: "tra {0} mesi"
          },
          past: {
            one: "{0} mese fa",
            other: "{0} mesi fa"
          }
        }
      },
      "month-short": {
        displayName: "mese",
        relative: {
          0: "questo mese",
          1: "mese prossimo",
          "-1": "mese scorso"
        },
        relativeTime: {
          future: {
            one: "tra {0} mese",
            other: "tra {0} mesi"
          },
          past: {
            one: "{0} mese fa",
            other: "{0} mesi fa"
          }
        }
      },
      day: {
        displayName: "giorno",
        relative: {
          0: "oggi",
          1: "domani",
          2: "dopodomani",
          "-2": "l’altro ieri",
          "-1": "ieri"
        },
        relativeTime: {
          future: {
            one: "tra {0} giorno",
            other: "tra {0} giorni"
          },
          past: {
            one: "{0} giorno fa",
            other: "{0} giorni fa"
          }
        }
      },
      "day-short": {
        displayName: "g",
        relative: {
          0: "oggi",
          1: "domani",
          2: "dopodomani",
          "-2": "l’altro ieri",
          "-1": "ieri"
        },
        relativeTime: {
          future: {
            one: "tra {0} g",
            other: "tra {0} gg"
          },
          past: {
            one: "{0} g fa",
            other: "{0} gg fa"
          }
        }
      },
      hour: {
        displayName: "ora",
        relative: {
          0: "quest’ora"
        },
        relativeTime: {
          future: {
            one: "tra {0} ora",
            other: "tra {0} ore"
          },
          past: {
            one: "{0} ora fa",
            other: "{0} ore fa"
          }
        }
      },
      "hour-short": {
        displayName: "h.",
        relative: {
          0: "quest’ora"
        },
        relativeTime: {
          future: {
            one: "tra {0} h",
            other: "tra {0} h"
          },
          past: {
            one: "{0} h fa",
            other: "{0} h fa"
          }
        }
      },
      minute: {
        displayName: "minuto",
        relative: {
          0: "questo minuto"
        },
        relativeTime: {
          future: {
            one: "tra {0} minuto",
            other: "tra {0} minuti"
          },
          past: {
            one: "{0} minuto fa",
            other: "{0} minuti fa"
          }
        }
      },
      "minute-short": {
        displayName: "min",
        relative: {
          0: "questo minuto"
        },
        relativeTime: {
          future: {
            one: "tra {0} min",
            other: "tra {0} min"
          },
          past: {
            one: "{0} min fa",
            other: "{0} min fa"
          }
        }
      },
      second: {
        displayName: "secondo",
        relative: {
          0: "ora"
        },
        relativeTime: {
          future: {
            one: "tra {0} secondo",
            other: "tra {0} secondi"
          },
          past: {
            one: "{0} secondo fa",
            other: "{0} secondi fa"
          }
        }
      },
      "second-short": {
        displayName: "s",
        relative: {
          0: "ora"
        },
        relativeTime: {
          future: {
            one: "tra {0} s",
            other: "tra {0} sec."
          },
          past: {
            one: "{0} s fa",
            other: "{0} sec. fa"
          }
        }
      }
    }
  }, {
    locale: "it-CH",
    parentLocale: "it"
  }, {
    locale: "it-SM",
    parentLocale: "it"
  }, {
    locale: "it-VA",
    parentLocale: "it"
  }];
});

/***/ }),

/***/ "dFVR":
/***/ (function(module) {

module.exports = JSON.parse("{\"(optional)\":\"(valinnainen)\",\"(required)\":\"(pakollinen)\"}");

/***/ }),

/***/ "dKUG":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Dialog; });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _react_react_spectrum_Dialog__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("bLbN");
/* harmony import */ var _react_react_spectrum_Dialog__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Dialog__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _stores_SharedStore__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("jmEq");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("TSYQ");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _styles_colors_css__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("Y1fu");
/* harmony import */ var _styles_colors_css__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_styles_colors_css__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var mobx_react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("okNM");
/* harmony import */ var _utils_platform__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("0ubR");







//  This dialog fixes CCPROJ-3924 UXP: Text input fields have white background even in dark theme
//  This should no longer be necessary once the underlying bug is fixed.
function Dialog(props) {
    let { children, ...other } = props;
    return (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(mobx_react__WEBPACK_IMPORTED_MODULE_5__[/* Observer */ "a"], null, () => {
        const { theme, useDarkestPaletteForDark } = _stores_SharedStore__WEBPACK_IMPORTED_MODULE_2__[/* sharedStore */ "d"];
        const _theme = theme === 'dark' && useDarkestPaletteForDark ? 'darkest' : theme;
        return (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_react_react_spectrum_Dialog__WEBPACK_IMPORTED_MODULE_1___default.a, Object.assign({}, other, { className: classnames__WEBPACK_IMPORTED_MODULE_3___default()(other.className, 'ProjectsFocusRings', 'ReactScrollViewNode', 
            // CCPROJ-8381: Having ReactSpectrumProvider wrap <Dialog> causes layout issues in XD
            // where dropdown popups aren't positioned correctly. But putting ReactSpectrumProvider
            // _inside_ dialog also causes different positioning issues (because ReactSpectrumProvider
            // acts as a container for popups). In order to provide the right theme without affecting
            // layout, we provide the "spectrum--{theme}" class directly instead.
            // (Perhaps revisit this in a later RS upgrade, or when we migrate to RS3.)
            `spectrum--${_stores_SharedStore__WEBPACK_IMPORTED_MODULE_2__[/* sharedStore */ "d"].theme}`, _styles_colors_css__WEBPACK_IMPORTED_MODULE_4___default.a[_theme], { ['is-mac']: !Object(_utils_platform__WEBPACK_IMPORTED_MODULE_6__[/* isWindows */ "a"])() }) }), children));
    }));
}


/***/ }),

/***/ "dO2t":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("path", {
  d: "M12 18a1.988 1.988 0 0 0 .585 1.409l7.983 7.98a2 2 0 1 0 2.871-2.772l-.049-.049L16.819 18l6.572-6.57a2 2 0 0 0-2.773-2.87l-.049.049-7.983 7.98A1.988 1.988 0 0 0 12 18z"
}));

/***/ }),

/***/ "dSAe":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return injectIntl; });
/* harmony import */ var react_intl_cdo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("VIzJ");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "d", function() { return react_intl_cdo__WEBPACK_IMPORTED_MODULE_0__["f"]; });

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

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

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


function injectIntl(component) {
    return Object(react_intl_cdo__WEBPACK_IMPORTED_MODULE_0__[/* injectIntl */ "g"])(component);
}



/***/ }),

/***/ "dTAl":
/***/ (function(module, exports, __webpack_require__) {

var isObject = __webpack_require__("GoyQ");
/** Built-in value references. */


var objectCreate = Object.create;
/**
 * The base implementation of `_.create` without support for assigning
 * properties to the created object.
 *
 * @private
 * @param {Object} proto The object to inherit from.
 * @returns {Object} Returns the new object.
 */

var baseCreate = function () {
  function object() {}

  return function (proto) {
    if (!isObject(proto)) {
      return {};
    }

    if (objectCreate) {
      return objectCreate(proto);
    }

    object.prototype = proto;
    var result = new object();
    object.prototype = undefined;
    return result;
  };
}();

module.exports = baseCreate;

/***/ }),

/***/ "dVTT":
/***/ (function(module, exports, __webpack_require__) {

// https://tc39.github.io/proposal-setmap-offrom/#sec-map.from
__webpack_require__("aPfg")('Map');

/***/ }),

/***/ "dcWq":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _intl = __webpack_require__("Lpon");

var _react = _interopRequireWildcard(__webpack_require__("q1tI"));

function _getRequireWildcardCache(nodeInterop) {
  if (typeof WeakMap !== "function") return null;
  var cacheBabelInterop = new WeakMap();
  var cacheNodeInterop = new WeakMap();
  return (_getRequireWildcardCache = function (nodeInterop) {
    return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
  })(nodeInterop);
}

function _interopRequireWildcard(obj, nodeInterop) {
  if (!nodeInterop && obj && obj.__esModule) {
    return obj;
  }

  if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
    return {
      default: obj
    };
  }

  var cache = _getRequireWildcardCache(nodeInterop);

  if (cache && cache.has(obj)) {
    return cache.get(obj);
  }

  var newObj = {};
  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;

  for (var key in obj) {
    if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
      var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;

      if (desc && (desc.get || desc.set)) {
        Object.defineProperty(newObj, key, desc);
      } else {
        newObj[key] = obj[key];
      }
    }
  }

  newObj.default = obj;

  if (cache) {
    cache.set(obj, newObj);
  }

  return newObj;
}

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

const intlMessages = {
  "cs-CZ": _interopRequireDefault(__webpack_require__("cK3p")).default,
  "da-DK": _interopRequireDefault(__webpack_require__("D+ak")).default,
  "de-DE": _interopRequireDefault(__webpack_require__("vDnC")).default,
  "en-US": _interopRequireDefault(__webpack_require__("RLl7")).default,
  "es-ES": _interopRequireDefault(__webpack_require__("ZdiK")).default,
  "fi-FI": _interopRequireDefault(__webpack_require__("pJ3W")).default,
  "fr-FR": _interopRequireDefault(__webpack_require__("8nA0")).default,
  "hu-HU": _interopRequireDefault(__webpack_require__("xGae")).default,
  "it-IT": _interopRequireDefault(__webpack_require__("87G+")).default,
  "ja-JP": _interopRequireDefault(__webpack_require__("tnUB")).default,
  "ko-KR": _interopRequireDefault(__webpack_require__("8eA+")).default,
  "nb-NO": _interopRequireDefault(__webpack_require__("UDOJ")).default,
  "nl-NL": _interopRequireDefault(__webpack_require__("n+km")).default,
  "pl-PL": _interopRequireDefault(__webpack_require__("zoNf")).default,
  "pt-BR": _interopRequireDefault(__webpack_require__("FsjF")).default,
  "ru-RU": _interopRequireDefault(__webpack_require__("76nN")).default,
  "sv-SE": _interopRequireDefault(__webpack_require__("J4O+")).default,
  "tr-TR": _interopRequireDefault(__webpack_require__("7Fyl")).default,
  "uk-UA": _interopRequireDefault(__webpack_require__("8RO3")).default,
  "zh-CN": _interopRequireDefault(__webpack_require__("1btc")).default,
  "zh-TW": _interopRequireDefault(__webpack_require__("adqC")).default
};
const formatMessage = (0, _intl.messageFormatter)(intlMessages);
/*
 * An AssetFile displays a generic file icon within an Asset component
 */

class AssetFile extends _react.Component {
  render() {
    const {
      alt = formatMessage('File'),
      className,
      decorative
    } = this.props;
    return /*#__PURE__*/_react.default.createElement("svg", {
      viewBox: "0 0 128 128",
      className: (0, _classnames.default)('spectrum-Asset-file', className),
      "aria-label": alt,
      "aria-hidden": decorative || null,
      role: "img"
    }, /*#__PURE__*/_react.default.createElement("g", null, /*#__PURE__*/_react.default.createElement("path", {
      className: "spectrum-Asset-fileBackground",
      d: "M24,126c-5.5,0-10-4.5-10-10V12c0-5.5,4.5-10,10-10h61.5c2.1,0,4.1,0.8,5.6,2.3l20.5,20.4c1.5,1.5,2.4,3.5,2.4,5.7V116c0,5.5-4.5,10-10,10H24z"
    }), /*#__PURE__*/_react.default.createElement("g", null, /*#__PURE__*/_react.default.createElement("path", {
      className: "spectrum-Asset-fileOutline",
      d: "M113.1,23.3L92.6,2.9C90.7,1,88.2,0,85.5,0H24c-6.6,0-12,5.4-12,12v104c0,6.6,5.4,12,12,12h80c6.6,0,12-5.4,12-12V30.4C116,27.8,114.9,25.2,113.1,23.3z M90,6l20.1,20H92c-1.1,0-2-0.9-2-2V6z M112,116c0,4.4-3.6,8-8,8H24c-4.4,0-8-3.6-8-8V12c0-4.4,3.6-8,8-8h61.5c0.2,0,0.3,0,0.5,0v20c0,3.3,2.7,6,6,6h20c0,0.1,0,0.3,0,0.4V116z"
    }))));
  }

}

exports.default = AssetFile;

/***/ }),

/***/ "dcwN":
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(global, process) {

function oldBrowser() {
  throw new Error('secure random number generation not supported by this browser\nuse chrome, FireFox or Internet Explorer 11');
}

var safeBuffer = __webpack_require__("hwdV");

var randombytes = __webpack_require__("Edxu");

var Buffer = safeBuffer.Buffer;
var kBufferMaxLength = safeBuffer.kMaxLength;
var crypto = global.crypto || global.msCrypto;
var kMaxUint32 = Math.pow(2, 32) - 1;

function assertOffset(offset, length) {
  if (typeof offset !== 'number' || offset !== offset) {
    // eslint-disable-line no-self-compare
    throw new TypeError('offset must be a number');
  }

  if (offset > kMaxUint32 || offset < 0) {
    throw new TypeError('offset must be a uint32');
  }

  if (offset > kBufferMaxLength || offset > length) {
    throw new RangeError('offset out of range');
  }
}

function assertSize(size, offset, length) {
  if (typeof size !== 'number' || size !== size) {
    // eslint-disable-line no-self-compare
    throw new TypeError('size must be a number');
  }

  if (size > kMaxUint32 || size < 0) {
    throw new TypeError('size must be a uint32');
  }

  if (size + offset > length || size > kBufferMaxLength) {
    throw new RangeError('buffer too small');
  }
}

if (crypto && crypto.getRandomValues || !process.browser) {
  exports.randomFill = randomFill;
  exports.randomFillSync = randomFillSync;
} else {
  exports.randomFill = oldBrowser;
  exports.randomFillSync = oldBrowser;
}

function randomFill(buf, offset, size, cb) {
  if (!Buffer.isBuffer(buf) && !(buf instanceof global.Uint8Array)) {
    throw new TypeError('"buf" argument must be a Buffer or Uint8Array');
  }

  if (typeof offset === 'function') {
    cb = offset;
    offset = 0;
    size = buf.length;
  } else if (typeof size === 'function') {
    cb = size;
    size = buf.length - offset;
  } else if (typeof cb !== 'function') {
    throw new TypeError('"cb" argument must be a function');
  }

  assertOffset(offset, buf.length);
  assertSize(size, offset, buf.length);
  return actualFill(buf, offset, size, cb);
}

function actualFill(buf, offset, size, cb) {
  if (process.browser) {
    var ourBuf = buf.buffer;
    var uint = new Uint8Array(ourBuf, offset, size);
    crypto.getRandomValues(uint);

    if (cb) {
      process.nextTick(function () {
        cb(null, buf);
      });
      return;
    }

    return buf;
  }

  if (cb) {
    randombytes(size, function (err, bytes) {
      if (err) {
        return cb(err);
      }

      bytes.copy(buf, offset);
      cb(null, buf);
    });
    return;
  }

  var bytes = randombytes(size);
  bytes.copy(buf, offset);
  return buf;
}

function randomFillSync(buf, offset, size) {
  if (typeof offset === 'undefined') {
    offset = 0;
  }

  if (!Buffer.isBuffer(buf) && !(buf instanceof global.Uint8Array)) {
    throw new TypeError('"buf" argument must be a Buffer or Uint8Array');
  }

  assertOffset(offset, buf.length);
  if (size === undefined) size = buf.length - offset;
  assertSize(size, offset, buf.length);
  return actualFill(buf, offset, size);
}
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("yLpj"), __webpack_require__("8oxB")))

/***/ }),

/***/ "dgy4":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("path", {
  d: "M16.3 22.585L26.949 11.94a2 2 0 0 1 2.828 0l.282.282a2.006 2.006 0 0 1 0 2.828L21.112 24l8.948 8.949a2.006 2.006 0 0 1 0 2.828l-.282.282a2 2 0 0 1-2.828 0L16.3 25.414a2 2 0 0 1 0-2.829z"
}));

/***/ }),

/***/ "dl0q":
/***/ (function(module, exports, __webpack_require__) {

__webpack_require__("Zxgi")('observable');

/***/ }),

/***/ "dlgc":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var utils = exports;

function toArray(msg, enc) {
  if (Array.isArray(msg)) return msg.slice();
  if (!msg) return [];
  var res = [];

  if (typeof msg !== 'string') {
    for (var i = 0; i < msg.length; i++) res[i] = msg[i] | 0;

    return res;
  }

  if (enc === 'hex') {
    msg = msg.replace(/[^a-z0-9]+/ig, '');
    if (msg.length % 2 !== 0) msg = '0' + msg;

    for (var i = 0; i < msg.length; i += 2) res.push(parseInt(msg[i] + msg[i + 1], 16));
  } else {
    for (var i = 0; i < msg.length; i++) {
      var c = msg.charCodeAt(i);
      var hi = c >> 8;
      var lo = c & 0xff;
      if (hi) res.push(hi, lo);else res.push(lo);
    }
  }

  return res;
}

utils.toArray = toArray;

function zero2(word) {
  if (word.length === 1) return '0' + word;else return word;
}

utils.zero2 = zero2;

function toHex(msg) {
  var res = '';

  for (var i = 0; i < msg.length; i++) res += zero2(msg[i].toString(16));

  return res;
}

utils.toHex = toHex;

utils.encode = function encode(arr, enc) {
  if (enc === 'hex') return toHex(arr);else return arr;
};

/***/ }),

/***/ "dmfS":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("path", {
  d: "M28 11.207V16H14.5a.5.5 0 0 0-.5.5v3a.5.5 0 0 0 .5.5H28v4.793a.5.5 0 0 0 .854.354L35.913 18l-7.06-7.146a.5.5 0 0 0-.853.353z"
}), React.createElement("path", {
  d: "M1 4h22a1 1 0 0 1 1 1v7h-2V6H2v24h20v-6h2v7a1 1 0 0 1-1 1H1a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1z"
}));

/***/ }),

/***/ "dpcn":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("hPp7"),
      24: __webpack_require__("Sklt")
    }
  }));
};

WrappedIcon.displayName = 'Home';
exports.default = WrappedIcon;

/***/ }),

/***/ "drBI":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("path", {
  d: "M31.7 25.414L21.05 36.059a2 2 0 0 1-2.828 0l-.282-.282a2.006 2.006 0 0 1 0-2.828L26.888 24l-8.948-8.949a2.006 2.006 0 0 1 0-2.828l.282-.282a2 2 0 0 1 2.828 0L31.7 22.585a2 2 0 0 1 0 2.829z"
}));

/***/ }),

/***/ "duTG":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* unused harmony export DEFAULT_DISABLED_TOOLTIP_MSG_ID */
/* harmony import */ var _stores_Settings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("5u1M");

const DEFAULT_DISABLED_TOOLTIP_MSG_ID = 'tooltip.offline.general';
class Action {
    constructor({ value, label, actionMenuLabel = undefined, analyticsValue = value, children, resetSelection = true, beforeExecute = async (elements) => [elements], execute = async (_) => {
        _stores_Settings__WEBPACK_IMPORTED_MODULE_0__[/* settings */ "b"].logger.error('execute not implemented');
    }, icon = undefined, buttonVariant = 'action', buttonQuiet = true, isVisible = selectionStore => selectionStore.hasAny, getDisabledTooltipMsgId = _ => '', getIsButtonDisabled, supportsMultiple = false, }) {
        this.value = value;
        this.label = label;
        this.actionMenuLabel = actionMenuLabel;
        this.analyticsValue = analyticsValue;
        this.resetSelection = resetSelection;
        this.execute = execute;
        this.beforeExecute = beforeExecute;
        this.icon = icon;
        this.buttonVariant = buttonVariant;
        this.buttonQuiet = buttonQuiet;
        this.isVisible = isVisible;
        this.getDisabledTooltipMsgId = getDisabledTooltipMsgId;
        this.getIsButtonDisabled = getIsButtonDisabled;
        this.supportsMultiple = supportsMultiple;
        if (children) {
            this.children = children;
        }
    }
    isEnabled(selectionStore) {
        return this.getDisabledTooltipMsgId(selectionStore) === '';
    }
}
/* harmony default export */ __webpack_exports__["a"] = (Action);



/***/ }),

/***/ "e0ae":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(process) {/* unused harmony export BrowserInfo */
/* unused harmony export NodeInfo */
/* unused harmony export SearchBotDeviceInfo */
/* unused harmony export BotInfo */
/* unused harmony export ReactNativeInfo */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return detect; });
/* unused harmony export browserName */
/* unused harmony export parseUserAgent */
/* unused harmony export detectOS */
/* unused harmony export getNodeVersion */
var __spreadArrays = undefined && undefined.__spreadArrays || function () {
  for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;

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

  return r;
};

var BrowserInfo =
/** @class */
function () {
  function BrowserInfo(name, version, os) {
    this.name = name;
    this.version = version;
    this.os = os;
    this.type = 'browser';
  }

  return BrowserInfo;
}();



var NodeInfo =
/** @class */
function () {
  function NodeInfo(version) {
    this.version = version;
    this.type = 'node';
    this.name = 'node';
    this.os = process.platform;
  }

  return NodeInfo;
}();



var SearchBotDeviceInfo =
/** @class */
function () {
  function SearchBotDeviceInfo(name, version, os, bot) {
    this.name = name;
    this.version = version;
    this.os = os;
    this.bot = bot;
    this.type = 'bot-device';
  }

  return SearchBotDeviceInfo;
}();



var BotInfo =
/** @class */
function () {
  function BotInfo() {
    this.type = 'bot';
    this.bot = true; // NOTE: deprecated test name instead

    this.name = 'bot';
    this.version = null;
    this.os = null;
  }

  return BotInfo;
}();



var ReactNativeInfo =
/** @class */
function () {
  function ReactNativeInfo() {
    this.type = 'react-native';
    this.name = 'react-native';
    this.version = null;
    this.os = null;
  }

  return ReactNativeInfo;
}();

 // tslint:disable-next-line:max-line-length

var SEARCHBOX_UA_REGEX = /alexa|bot|crawl(er|ing)|facebookexternalhit|feedburner|google web preview|nagios|postrank|pingdom|slurp|spider|yahoo!|yandex/;
var SEARCHBOT_OS_REGEX = /(nuhk|Googlebot|Yammybot|Openbot|Slurp|MSNBot|Ask\ Jeeves\/Teoma|ia_archiver)/;
var REQUIRED_VERSION_PARTS = 3;
var userAgentRules = [['aol', /AOLShield\/([0-9\._]+)/], ['edge', /Edge\/([0-9\._]+)/], ['edge-ios', /EdgiOS\/([0-9\._]+)/], ['yandexbrowser', /YaBrowser\/([0-9\._]+)/], ['kakaotalk', /KAKAOTALK\s([0-9\.]+)/], ['samsung', /SamsungBrowser\/([0-9\.]+)/], ['silk', /\bSilk\/([0-9._-]+)\b/], ['miui', /MiuiBrowser\/([0-9\.]+)$/], ['beaker', /BeakerBrowser\/([0-9\.]+)/], ['edge-chromium', /EdgA?\/([0-9\.]+)/], ['chromium-webview', /(?!Chrom.*OPR)wv\).*Chrom(?:e|ium)\/([0-9\.]+)(:?\s|$)/], ['chrome', /(?!Chrom.*OPR)Chrom(?:e|ium)\/([0-9\.]+)(:?\s|$)/], ['phantomjs', /PhantomJS\/([0-9\.]+)(:?\s|$)/], ['crios', /CriOS\/([0-9\.]+)(:?\s|$)/], ['firefox', /Firefox\/([0-9\.]+)(?:\s|$)/], ['fxios', /FxiOS\/([0-9\.]+)/], ['opera-mini', /Opera Mini.*Version\/([0-9\.]+)/], ['opera', /Opera\/([0-9\.]+)(?:\s|$)/], ['opera', /OPR\/([0-9\.]+)(:?\s|$)/], ['ie', /Trident\/7\.0.*rv\:([0-9\.]+).*\).*Gecko$/], ['ie', /MSIE\s([0-9\.]+);.*Trident\/[4-7].0/], ['ie', /MSIE\s(7\.0)/], ['bb10', /BB10;\sTouch.*Version\/([0-9\.]+)/], ['android', /Android\s([0-9\.]+)/], ['ios', /Version\/([0-9\._]+).*Mobile.*Safari.*/], ['safari', /Version\/([0-9\._]+).*Safari/], ['facebook', /FBAV\/([0-9\.]+)/], ['instagram', /Instagram\s([0-9\.]+)/], ['ios-webview', /AppleWebKit\/([0-9\.]+).*Mobile/], ['ios-webview', /AppleWebKit\/([0-9\.]+).*Gecko\)$/], ['searchbot', SEARCHBOX_UA_REGEX]];
var operatingSystemRules = [['iOS', /iP(hone|od|ad)/], ['Android OS', /Android/], ['BlackBerry OS', /BlackBerry|BB10/], ['Windows Mobile', /IEMobile/], ['Amazon OS', /Kindle/], ['Windows 3.11', /Win16/], ['Windows 95', /(Windows 95)|(Win95)|(Windows_95)/], ['Windows 98', /(Windows 98)|(Win98)/], ['Windows 2000', /(Windows NT 5.0)|(Windows 2000)/], ['Windows XP', /(Windows NT 5.1)|(Windows XP)/], ['Windows Server 2003', /(Windows NT 5.2)/], ['Windows Vista', /(Windows NT 6.0)/], ['Windows 7', /(Windows NT 6.1)/], ['Windows 8', /(Windows NT 6.2)/], ['Windows 8.1', /(Windows NT 6.3)/], ['Windows 10', /(Windows NT 10.0)/], ['Windows ME', /Windows ME/], ['Open BSD', /OpenBSD/], ['Sun OS', /SunOS/], ['Chrome OS', /CrOS/], ['Linux', /(Linux)|(X11)/], ['Mac OS', /(Mac_PowerPC)|(Macintosh)/], ['QNX', /QNX/], ['BeOS', /BeOS/], ['OS/2', /OS\/2/]];
function detect(userAgent) {
  if (!!userAgent) {
    return parseUserAgent(userAgent);
  }

  if (typeof document === 'undefined' && typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {
    return new ReactNativeInfo();
  }

  if (typeof navigator !== 'undefined') {
    return parseUserAgent(navigator.userAgent);
  }

  return getNodeVersion();
}

function matchUserAgent(ua) {
  // opted for using reduce here rather than Array#first with a regex.test call
  // this is primarily because using the reduce we only perform the regex
  // execution once rather than once for the test and for the exec again below
  // probably something that needs to be benchmarked though
  return ua !== '' && userAgentRules.reduce(function (matched, _a) {
    var browser = _a[0],
        regex = _a[1];

    if (matched) {
      return matched;
    }

    var uaMatch = regex.exec(ua);
    return !!uaMatch && [browser, uaMatch];
  }, false);
}

function browserName(ua) {
  var data = matchUserAgent(ua);
  return data ? data[0] : null;
}
function parseUserAgent(ua) {
  var matchedRule = matchUserAgent(ua);

  if (!matchedRule) {
    return null;
  }

  var name = matchedRule[0],
      match = matchedRule[1];

  if (name === 'searchbot') {
    return new BotInfo();
  }

  var versionParts = match[1] && match[1].split(/[._]/).slice(0, 3);

  if (versionParts) {
    if (versionParts.length < REQUIRED_VERSION_PARTS) {
      versionParts = __spreadArrays(versionParts, createVersionParts(REQUIRED_VERSION_PARTS - versionParts.length));
    }
  } else {
    versionParts = [];
  }

  var version = versionParts.join('.');
  var os = detectOS(ua);
  var searchBotMatch = SEARCHBOT_OS_REGEX.exec(ua);

  if (searchBotMatch && searchBotMatch[1]) {
    return new SearchBotDeviceInfo(name, version, os, searchBotMatch[1]);
  }

  return new BrowserInfo(name, version, os);
}
function detectOS(ua) {
  for (var ii = 0, count = operatingSystemRules.length; ii < count; ii++) {
    var _a = operatingSystemRules[ii],
        os = _a[0],
        regex = _a[1];
    var match = regex.exec(ua);

    if (match) {
      return os;
    }
  }

  return null;
}
function getNodeVersion() {
  var isNode = typeof process !== 'undefined' && process.version;
  return isNode ? new NodeInfo(process.version.slice(1)) : null;
}

function createVersionParts(count) {
  var output = [];

  for (var ii = 0; ii < count; ii++) {
    output.push('0');
  }

  return output;
}
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("8oxB")))

/***/ }),

/***/ "e4Nc":
/***/ (function(module, exports, __webpack_require__) {

var mapCacheClear = __webpack_require__("fGT3"),
    mapCacheDelete = __webpack_require__("k+1r"),
    mapCacheGet = __webpack_require__("JHgL"),
    mapCacheHas = __webpack_require__("pSRY"),
    mapCacheSet = __webpack_require__("H8j4");
/**
 * Creates a map cache object to store key-value pairs.
 *
 * @private
 * @constructor
 * @param {Array} [entries] The key-value pairs to cache.
 */


function MapCache(entries) {
  var index = -1,
      length = entries == null ? 0 : entries.length;
  this.clear();

  while (++index < length) {
    var entry = entries[index];
    this.set(entry[0], entry[1]);
  }
} // Add methods to `MapCache`.


MapCache.prototype.clear = mapCacheClear;
MapCache.prototype['delete'] = mapCacheDelete;
MapCache.prototype.get = mapCacheGet;
MapCache.prototype.has = mapCacheHas;
MapCache.prototype.set = mapCacheSet;
module.exports = MapCache;

/***/ }),

/***/ "e989":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = __webpack_require__("7PmA")() ? Object.keys : __webpack_require__("c3ME");

/***/ }),

/***/ "eA/Y":
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright Joyent, Inc. and other Node contributors.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to permit
// persons to whom the Software is furnished to do so, subject to the
// following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
// USE OR OTHER DEALINGS IN THE SOFTWARE.
// a passthrough stream.
// basically just the most minimal sort of Transform stream.
// Every written chunk gets output as-is.


module.exports = PassThrough;

var Transform = __webpack_require__("J78i");
/*<replacement>*/


var util = Object.create(__webpack_require__("Onz0"));
util.inherits = __webpack_require__("P7XM");
/*</replacement>*/

util.inherits(PassThrough, Transform);

function PassThrough(options) {
  if (!(this instanceof PassThrough)) return new PassThrough(options);
  Transform.call(this, options);
}

PassThrough.prototype._transform = function (chunk, encoding, cb) {
  cb(null, chunk);
};

/***/ }),

/***/ "eD7O":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("r/9v"),
      24: __webpack_require__("zapQ")
    }
  }));
};

WrappedIcon.displayName = 'Close';
exports.default = WrappedIcon;

/***/ }),

/***/ "eDm5":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

const _excluded = ["styles"];

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }

function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

var _default = _ref => {
  let {
    styles = {}
  } = _ref,
      props = _objectWithoutProperties(_ref, _excluded);

  return /*#__PURE__*/_react.default.createElement("svg", _extends({
    xmlns: "http://www.w3.org/2000/svg",
    "data-name": "S_Illu_PresetWeb_172_L@2x",
    height: "344",
    id: "S_Illu_PresetWeb_172_L_2x",
    viewBox: "0 0 344 344",
    width: "344"
  }, props), /*#__PURE__*/_react.default.createElement("defs", null), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M89.3 114H75.278a2.9 2.9 0 0 1-2.99-2.8 3.588 3.588 0 0 1 2.99-3.2H89.3a3.588 3.588 0 0 1 2.991 3.2A2.9 2.9 0 0 1 89.3 114z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M277.482 96H66.517A6.525 6.525 0 0 0 60 102.518v140.964A6.525 6.525 0 0 0 66.517 250h210.965a6.525 6.525 0 0 0 6.518-6.518V102.518A6.525 6.525 0 0 0 277.482 96zm-210.965 6h210.965a.518.518 0 0 1 .518.518V118H66v-15.482a.518.518 0 0 1 .517-.518zm210.965 142H66.517a.518.518 0 0 1-.517-.518V123.988h212v119.494a.518.518 0 0 1-.518.518z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M171 139a44 44 0 1 0 44 44 44.049 44.049 0 0 0-44-44zm-39.95 46h16.014a64.818 64.818 0 0 0 2.572 16h-14.352a39.717 39.717 0 0 1-4.234-16zM173 161v-17.95a39.866 39.866 0 0 1 4.645.5 80.721 80.721 0 0 1 9.4 17.448zm15.422 4a58.777 58.777 0 0 1 2.638 16H173v-16zM169 161h-13.878a86.164 86.164 0 0 1 9.243-17.45 39.935 39.935 0 0 1 4.635-.5zm0 4v16h-18.054a60.467 60.467 0 0 1 2.786-16zm-21.936 16H131.05a39.717 39.717 0 0 1 4.234-16h14.352a64.818 64.818 0 0 0-2.572 16zm3.882 4H169v16h-15.268a60.467 60.467 0 0 1-2.786-16zM169 205v17.95a39.935 39.935 0 0 1-4.635-.5 86.164 86.164 0 0 1-9.243-17.45zm4 0h13.7a91.88 91.88 0 0 1-9.071 17.451 39.769 39.769 0 0 1-4.624.5zm0-4v-16h18.014a62.44 62.44 0 0 1-2.921 16zm21.9-16h16.05a39.717 39.717 0 0 1-4.234 16H192.2a66.678 66.678 0 0 0 2.7-16zm.042-4a63.3 63.3 0 0 0-2.43-16h14.206a39.717 39.717 0 0 1 4.234 16zm9.453-20h-13.156a79.571 79.571 0 0 0-7.858-16.04A40.192 40.192 0 0 1 204.393 161zm-45.68-16.07a84.375 84.375 0 0 0-7.791 16.07h-13.317a40.192 40.192 0 0 1 21.106-16.07zM137.607 205h13.317a84.375 84.375 0 0 0 7.789 16.07A40.192 40.192 0 0 1 137.607 205zm45.586 16.1a89.682 89.682 0 0 0 7.7-16.1h13.5a40.185 40.185 0 0 1-21.2 16.1z"
  }));
};

exports.default = _default;

/***/ }),

/***/ "eF//":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


exports.__esModule = true;
exports.default = getContainer;

var _reactDom = __webpack_require__("i8i4");

var _reactDom2 = _interopRequireDefault(_reactDom);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function getContainer(container, defaultContainer) {
  container = typeof container === 'function' ? container() : container;
  return _reactDom2.default.findDOMNode(container) || defaultContainer;
}

module.exports = exports['default'];

/***/ }),

/***/ "eHop":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _convertUnsafeMethod = _interopRequireDefault(__webpack_require__("8nyd"));

var _List = __webpack_require__("5r/s");

var _propTypes = _interopRequireDefault(__webpack_require__("17x9"));

var _react = _interopRequireWildcard(__webpack_require__("q1tI"));

const _excluded = ["options", "multiple", "disabled", "invalid", "required", "className"];

var _class, _class2, _temp;

function _getRequireWildcardCache(nodeInterop) {
  if (typeof WeakMap !== "function") return null;
  var cacheBabelInterop = new WeakMap();
  var cacheNodeInterop = new WeakMap();
  return (_getRequireWildcardCache = function (nodeInterop) {
    return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
  })(nodeInterop);
}

function _interopRequireWildcard(obj, nodeInterop) {
  if (!nodeInterop && obj && obj.__esModule) {
    return obj;
  }

  if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
    return {
      default: obj
    };
  }

  var cache = _getRequireWildcardCache(nodeInterop);

  if (cache && cache.has(obj)) {
    return cache.get(obj);
  }

  var newObj = {};
  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;

  for (var key in obj) {
    if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
      var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;

      if (desc && (desc.get || desc.set)) {
        Object.defineProperty(newObj, key, desc);
      } else {
        newObj[key] = obj[key];
      }
    }
  }

  newObj.default = obj;

  if (cache) {
    cache.set(obj, newObj);
  }

  return newObj;
}

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

let SelectList = (0, _convertUnsafeMethod.default)(_class = (_temp = _class2 = class SelectList extends _react.Component {
  constructor(props) {
    super(props);

    this.renderListOfOptions = options => options.map((option, index) => /*#__PURE__*/_react.default.createElement(_List.ListItem, {
      key: index,
      icon: option.icon,
      selected: this.isSelected(option),
      disabled: this.props.disabled || option.disabled,
      onSelect: this.handleSelect.bind(this, option),
      onTab: this.props.onTab,
      defaultpreventedkeys: ['Escape'],
      onKeyDown: this.handleKeyDown.bind(this)
    }, this.props.renderItem ? this.props.renderItem(option) : option.label));

    this.state = {
      value: props.value
    };
  }

  UNSAFE_componentWillReceiveProps(props) {
    if (props.value && props.value !== this.state.value) {
      this.setState({
        value: props.value
      });
    }
  }

  addSelection(option) {
    return [...(this.state.value || []), option.value];
  }

  removeSelection(option) {
    let value = this.state.value || [];
    const index = value.indexOf(option.value);
    return [...value.slice(0, index), ...value.slice(index + 1, value.length)];
  }

  handleKeyDown(e) {
    switch (e.key) {
      case 'Escape':
        if (this.props.onClose) {
          this.props.onClose();
        }

        break;
    }
  }

  handleSelect(option) {
    let nextOptions;

    if (this.props.multiple) {
      if (this.isSelected(option)) {
        nextOptions = this.removeSelection(option);
      } else {
        nextOptions = this.addSelection(option);
      }
    } else {
      nextOptions = option.value;
    } // Set state if in uncontrolled mode


    if (!('value' in this.props)) {
      this.setState({
        value: nextOptions
      });
    }

    if (this.props.onChange) {
      this.props.onChange(nextOptions);
    }
  }

  isSelected(option) {
    return this.props.multiple ? this.state.value && this.state.value.indexOf(option.value) >= 0 : this.state.value === option.value;
  }

  render() {
    const _this$props = this.props,
          {
      options = [],
      multiple = false,
      disabled = false,
      invalid = false,
      required = false,
      className
    } = _this$props,
          otherProps = _objectWithoutProperties(_this$props, _excluded);

    delete otherProps.onTab;
    delete otherProps.renderItem;
    return /*#__PURE__*/_react.default.createElement(_List.List, _extends({
      className: className,
      "aria-multiselectable": multiple,
      "aria-disabled": disabled,
      "aria-invalid": invalid,
      "aria-required": required,
      selectable: true
    }, otherProps), this.renderListOfOptions(options));
  }

}, _class2.propTypes = {
  /** Whether the SelectList is disabled */
  disabled: _propTypes.default.bool,

  /** Whether to show the invalid icon and styling */
  invalid: _propTypes.default.bool,

  /** Whether multiple options are able to be selected */
  multiple: _propTypes.default.bool,

  /** Function called when the selected options are changed */
  onChange: _propTypes.default.func,

  /** Array of strings of options in list */
  options: _propTypes.default.arrayOf(_propTypes.default.object),

  /** Whether an input is required */
  required: _propTypes.default.bool,

  /** Array of pre-selected values*/
  value: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.string), _propTypes.default.arrayOf(_propTypes.default.number), _propTypes.default.string, _propTypes.default.number]),

  /**
   * A function that returns a wrapper component to render a list item label.
   * Useful in providing custom html to the rendered label.
   */
  renderItem: _propTypes.default.func
}, _class2.defaultProps = {
  options: [],
  multiple: false,
  disabled: false,
  invalid: false,
  required: false
}, _temp)) || _class;

exports.default = SelectList;

/***/ }),

/***/ "eIzu":
/***/ (function(module) {

module.exports = JSON.parse("{\"a11y.button.canvases\":\"{name}\",\"a11y.button.libraries\":\"{name}, 라이브러리\",\"a11y.button.listGridToggle\":\"보기 모드 전환, {toggledView, select, grid {격자} list {목록}} 보기\",\"a11y.button.project\":\"{name}, 프로젝트\",\"a11y.button.published\":\"{name}, {extension}\",\"a11y.button.selectFolder\":\"폴더 선택\",\"a11y.button.working\":\"{name}, {extension}, {modified} 수정됨\",\"a11y.strings.folder\":\"폴더\",\"header.action.newProject\":\"새 프로젝트\",\"header.action.newLibrary\":\"새 라이브러리\",\"header.action.browseAll\":\"모두 검색\",\"header.Name\":\"이름\",\"header.Size\":\"크기\",\"header.Sharing\":\"멤버\",\"header.Team\":\"작업 영역\",\"header.DateModified\":\"수정일\",\"header.DateCreated\":\"제작일\",\"header.Status\":\"즐겨찾기에 추가됨\",\"header.SortBy\":\"정렬 기준\",\"header.sort.label\":\"정렬\",\"header.ChangeSortDirection\":\"정렬 방향을 다음으로 변경\",\"header.SortBy.asc\":\"오름차순\",\"header.SortBy.desc\":\"내림차순\",\"header.selectAll\":\"모두 선택\",\"header.reverseOrder\":\"순서 바꾸기\",\"header.showCompatible\":\"호환되는 파일\",\"header.showEverything\":\"모두\",\"product.illustrator.web\":\"Illustrator Web (Beta)\",\"product.photoshop.web\":\"Photoshop Web (Beta)\",\"status.followed\":\"예\",\"status.unfollowed\":\"아니오\",\"team.usm.defaultName\":\"작업 영역 {name}\",\"space.access.private.description\":\"초대된 사용자만\",\"space.access.private.tooltip\":\"초대된 사용자만 이 프로젝트에 액세스할 수 있음\",\"space.access.team.description\":\"작업 영역의 모든 사용자 및 초대된 사용자\",\"space.access.team.tooltip\":\"“{team}”에 소속된 모든 사용자가 이 프로젝트에 액세스할 수 있음\",\"yourProjects.title\":\"프로젝트\",\"yourProjects.librariesTab.title\":\"팀 라이브러리\",\"yourProjects.empty.spaces\":\"프로젝트를 추가로 만들고 더 많은 작업 영역 멤버를 초대하세요.\",\"browseAll.title\":\"모두 검색\",\"yourFiles.title\":\"내 문서\",\"yourLibraries.title\":\"라이브러리\",\"yourLibraries.metadata\":\"라이브러리\",\"canvas.metadata\":\"캔버스\",\"projectInfo.action.view\":\"정보 보기\",\"projectInfo.action.edit\":\"프로젝트 편집\",\"projectInfo.empty.cta\":\"새 프로젝트 만들기\",\"projectInfo.empty.description\":\"Creative Cloud 프로젝트는 크리에이티브 프로젝트에 필요한 모든 것을 한 곳에서 제공하므로 찾기, 구성, 공유 및 의사 결정 과정을 간소화해 줍니다.\",\"projectInfo.empty.heading\":\"늘어난 창작 시간, 줄어든 잡무\",\"projectInfo.error.description\":\"나중에 다시 시도해 주십시오.\",\"projectInfo.error.heading\":\"{section}을(를) 로드할 수 없음\",\"projectInfo.new.error.title\":\"새 프로젝트를 만들 수 없음\",\"projectInfo.new.noPermission.description\":\"자세한 내용은 관리자에게 문의하십시오.\",\"projectInfo.title.create\":\"새 프로젝트\",\"projectInfo.title.edit\":\"프로젝트 편집\",\"projectInfo.title.view\":\"프로젝트 정보\",\"projectInfo.access.title\":\"이 프로젝트를 편집할 수 있는 사용자\",\"projectInfo.access.warning\":\"권한을 “초대된 사용자만”으로 변경하면 일부 멤버의 프로젝트에 대한 액세스 권한이 상실될 수 있습니다.\",\"projectInfo.organization\":\"조직\",\"projectInfo.organization.placeholder\":\"선택\",\"projectInfo.description\":\"설명\",\"textField.invalid.characters\":\"이름에는 다음과 같은 문자를 사용할 수 없습니다. \\\\\\\\ / * ? \\\" | : < >\",\"textField.invalid.duplicateName\":\"이 조직에 해당 이름을 가진 프로젝트가 이미 존재합니다.\",\"textField.invalid.duplicateName.space\":\"이 작업 영역에 해당 이름을 가진 프로젝트가 이미 존재합니다.\",\"textField.invalid.duplicateName.team\":\"이 조직에 해당 이름을 가진 작업 영역이 이미 존재합니다.\",\"textField.invalid.empty\":\"이름은 비워 둘 수 없습니다.\",\"textField.invalid.generic\":\"잘못된 이름\",\"textField.invalid.length\":\"이름의 문자 길이는 50자를 초과할 수 없습니다.\",\"textField.invalid.nameEndsWithDot\":\"이름은 마침표로 끝날 수 없습니다.\",\"textField.invalid.offline\":\"모든 작업 영역과 프로젝트에 액세스하려면 다시 연결하십시오. 프로젝트에서 로컬 파일을 보려면 홈으로 이동하십시오.\",\"projectInfo.textField.placeholder\":\"이 프로젝트 이름 지정\",\"projectInfo.team\":\"작업 영역\",\"projectInfo.description.placeholder\":\"예: 클라이언트 프로젝트에 대한 파일, 피드백 및 참조 자료\",\"projectInfo.description.invalidLength\":\"설명의 문자 길이는 1000자를 초과할 수 없습니다.\",\"projectInfo.toast.success.new\":\"프로젝트가 정상적으로 생성됨: {name}\",\"projectInfo.toast.success.update\":\"프로젝트가 정상적으로 업데이트됨: {name}\",\"projectInfo.toast.error.generic\":\"프로젝트 {create, select, true {생성} other {편집}} 실패\",\"team.empty.heading\":\"프로젝트를 통해 모든 사용자가 일관성을 유지할 수 있습니다.\",\"team.empty.description\":\"파일을 잠그고, 버전에 대한 혼란을 관리하고, 검토를 위해 이메일로 스크린샷을 보내는 데 지치셨습니까? 스페이스를 사용하여 프로젝트를 구성하고, 리소스와 피드백을 수집하고, 팀 전체에서 작업을 수행해야 하는 파일을 공유하세요.\",\"team.empty.createSpace\":\"프로젝트 만들기\",\"team.empty.inviteMembers\":\"멤버 초대\",\"team.empty.startHere\":\"여기에서 시작\",\"team.create.success\":\"작업 영역이 정상적으로 생성됨: {name}\",\"team.create.error.generic\":\"작업 영역 생성 실패\",\"team.edit.success\":\"작업 영역이 정상적으로 업데이트됨: {name}\",\"team.edit.error.generic\":\"작업 영역 업데이트 실패\",\"team.archive.success\":\"{count, plural, =1 {#개 작업 영역} other {#개 작업 영역}} 삭제됨\",\"team.archive.error.generic\":\"{count, plural, =1 {#개 작업 영역} other {#개 작업 영역}}을 삭제할 수 없음\",\"team.error.generic\":\"죄송합니다. 문제가 발생했습니다.\",\"project1Up.action.projectInfo\":\"정보 보기\",\"project1up.region.space.ariaLabel\":\"{projectName}, 프로젝트\",\"project1Up.section.libraries\":\"라이브러리\",\"project1Up.section.libraries.empty.cta\":\"Creative Cloud Libraries 추가\",\"project1Up.section.libraries.empty.description\":\"작업에 필요한 라이브러리로의 링크를 추가하십시오.\",\"project1Up.section.libraries.empty.heading\":\"필요한 모든 것을 한 곳에서\",\"project1Up.section.filter\":\"필터\",\"project1Up.section.filter.label\":\"키워드로 필터링\",\"project1Up.section.filter.enterKeyword\":\"키워드 입력\",\"project1Up.section.filterFiles.empty.heading\":\"선택한 필터에 일치하는 결과 없음\",\"project1Up.section.compatibleFiles.empty.heading\":\"이 프로젝트에 호환되는 파일 없음\",\"project1Up.section.workingFiles\":\"작업 파일\",\"project1Up.section.workingFiles.empty.addFiles\":\"파일 추가\",\"project1Up.section.workingFiles.empty.createFolder\":\"새 폴더 만들기\",\"project1Up.section.workingFiles.empty.description\":\"프로젝트에서 반복 작업을 수행하고 다른 멤버들과 공동 작업을 진행하세요.\",\"project1Up.section.workingFiles.empty.heading\":\"필요할 때 원하는 작업 수행\",\"project1Up.section.published\":\"게시됨\",\"project1Up.section.published.empty.cta\":\"링크 게시 방법\",\"project1Up.section.published.empty.description\":\"보기 전용 링크를 보내 적시에 적임자로부터 피드백을 받으세요.\",\"project1Up.section.published.empty.description.readonly\":\"누군가 피드백이나 검토가 필요할 때 여기에 링크를 추가하게 됩니다.\",\"project1Up.section.published.empty.heading\":\"목적으로 공유\",\"project1Up.section.published.empty.heading.readonly\":\"이 프로젝트에 게시된 항목 없음\",\"project1Up.section.canvases\":\"캔버스\",\"project1Up.section.canvases.empty.cta\":\"Creative Cloud 캔버스 추가\",\"project1Up.section.canvases.empty.description\":\"작업에 필요한 항목으로의 링크를 추가하십시오.\",\"project1Up.section.canvases.empty.heading\":\"필요한 모든 것을 한 곳에서\",\"project1Up.section.files\":\"파일\",\"project1Up.error.accessDenied.heading\":\"액세스 권한이 없습니다.\",\"project1Up.error.accessDenied.description\":\"이 프로젝트에서 제거되셨습니다. 실수에 의한 것이라 판단되는 경우 관리자에게 문의하십시오.\",\"project1Up.header.seeAll\":\"모두 보기\",\"project1up.subheader.selected\":\"{count, plural, =1 {#개 항목} other {#개 항목}} 선택됨\",\"project1up.subheader.emptyDescription\":\"프로젝트에 설명 추가\",\"project1up.subheader.canvases.title\":\"캔버스\",\"project1up.subheader.canvases.subtitle\":\"TODO: 캔버스 부제\",\"project1up.subheader.libraries.title\":\"라이브러리\",\"project1up.subheader.libraries.subtitle\":\"멤버들은 여기에서 Creative Cloud Libraries에 대한 링크를 추가할 수 있습니다.\",\"project1up.subheader.working.title\":\"작업 파일\",\"project1up.subheader.working.subtitle\":\"이 프로젝트의 멤버는 이들 파일을 편집할 수 있습니다.\",\"project1up.subheader.output.title\":\"게시됨\",\"project1up.subheader.output.subtitle\":\"{contributor, select, true {읽기 전용 버전의 작업을 내 프로젝트 외부의 사람들과 공유} other {이들 읽기 전용 항목 보기 및 댓글 달기}}\",\"project.subtitle\":\"프로젝트\",\"project.countContributors\":\"{count, plural, =1 {#명 멤버} other {#명 멤버}}\",\"project.versionError.reload.description\":\"브라우저를 새로 고쳐 보십시오.\",\"project.versionError.reload.title\":\"프로젝트에 액세스할 수 없음\",\"project.versionError.update.description\":\"앱을 업데이트하기 전까지 프로젝트에 액세스할 수 없습니다.\",\"project.versionError.update.title\":\"열려면 {appName} 업데이트\",\"project.alreadyDiscarded.title\":\"이 프로젝트는 삭제되었습니다.\",\"project.alreadyDiscarded.description\":\"이것이 실수라고 생각되거나 다른 콘텐츠를 찾아보려면 관리자에게 문의하십시오.\",\"project.deleted.title\":\"이 프로젝트는 영구적으로 삭제되었습니다.\",\"project.deleted.description\":\"더 이상 이 프로젝트를 사용할 수 없으므로 액세스할 수 없습니다.\",\"project.metadataError.backLabel\":\"프로젝트로 돌아가기\",\"project.metadataError.description\":\"검색 중인 프로젝트를 찾을 수 없거나 액세스 권한이 없습니다.\",\"project.metadataError.title\":\"죄송합니다. 문제가 발생했습니다.\",\"folder.subtitle\":\"폴더\",\"libraries.toast.add.start\":\"{count, plural, =1 {#개 라이브러리} other {#개 라이브러리}} 추가 중\",\"libraries.toast.add.success\":\"{count, plural, =1 {#개 라이브러리} other {#개 라이브러리}} 추가됨\",\"libraries.toast.add.error\":\"{count, plural, =1 {#개 라이브러리} other {#개 라이브러리}}를 추가하지 못했습니다. 다시 시도하십시오.\",\"libraries.toast.add.duplicate\":\"이 라이브러리는 이미 존재합니다.\",\"libraries.toast.add.onlyDuplicates\":\"{count, plural, =1 {라이브러리가 이미 존재하므로 #개 라이브러리} other {라이브러리가 이미 존재하므로 #개 라이브러리}}를 추가할 수 없습니다.\",\"libraries.toast.delete.success\":\"{count, plural, =1 {#개 라이브러리} other {#개 라이브러리}}가 정상적으로 제거됨\",\"libraries.toast.delete.error\":\"{count, plural, =1 {#개 라이브러리} other {#개 라이브러리}} 제거 실패\",\"libraries.toast.follow.inProgress\":\"{count, plural, =1 {#개 라이브러리} other {#개 라이브러리}} 팔로우 중\",\"libraries.toast.follow.success\":\"{count, plural, =1 {#개 라이브러리} other {#개 라이브러리}} 팔로우됨\",\"libraries.toast.follow.error\":\"{count, plural, =1 {#개 라이브러리} other {#개 라이브러리}} 팔로우 실패\",\"libraries.toast.unfollow.inProgress\":\"{count, plural, =1 {#개 라이브러리} other {#개 라이브러리}} 언팔로우 중\",\"libraries.toast.unfollow.success\":\"{count, plural, =1 {#개 라이브러리} other {#개 라이브러리}} 언팔로우됨\",\"libraries.toast.unfollow.error\":\"{count, plural, =1 {#개 라이브러리} other {#개 라이브러리}} 언팔로우 실패\",\"libraries.modal.empty.heading\":\"라이브러리 없음\",\"libraries.modal.empty.description\":\"귀사에서 공유한 라이브러리가 없습니다.\",\"libraries.modal.error.limitExceeded\":\"라이브러리를 추가할 수 없음\",\"libraries.modal.error.limitExceeded.detail\":\"프로젝트에 최대 100개의 라이브러리를 추가할 수 있습니다. 더 추가하려면 일부 라이브러리를 제거하십시오.\",\"libraries.brokenResources\":\"액세스 권한이 없어 일부 라이브러리가 표시되지 않습니다. 자세한 내용은 다른 멤버에게 문의하십시오.\",\"copy.start\":\"{count, plural, =1 {#개 항목} other {#개 항목}} 복사 중\",\"copy.failure\":\"{count, plural, =1 {#개 항목} other {#개 항목}}을 복사할 수 없음\",\"copy.failure.partial\":\"일부 항목을 복사할 수 없음\",\"copy.success\":\"{count, plural, =1 {#개 항목} other {#개 항목}} 복사됨\",\"copy.conflictSuffix\":\"사본\",\"move.start\":\"{count, plural, =1 {#개 항목} other {#개 항목}} 이동 중\",\"move.failure\":\"{count, plural, =1 {#개 항목} other {#개 항목}}을 이동할 수 없음\",\"move.failure.partial\":\"일부 항목을 이동할 수 없음\",\"move.success\":\"{count, plural, =1 {#개 항목} other {#개 항목}} 이동됨\",\"upload.start\":\"{count, plural, =1 {#개 항목} other {#개 항목}} 업로드 중\",\"upload.failure\":\"{count, plural, =1 {#개 항목} other {#개 항목}}을 업로드할 수 없음\",\"upload.failure.partial\":\"일부 항목을 업로드할 수 없음\",\"upload.failure.snapshot\":\"이 항목은 지원되지 않습니다.\",\"upload.success\":\"{count, plural, =1 {#개 항목} other {#개 항목}} 업로드됨\",\"download.start\":\"{count, plural, =1 {#개 항목} other {#개 항목}} 다운로드 중\",\"download.failure\":\"{count, plural, =1 {#개 항목} other {#개 항목}}을 다운로드할 수 없음\",\"download.failure.partial\":\"일부 항목을 다운로드할 수 없음\",\"download.success\":\"{count, plural, =1 {#개 항목} other {#개 항목}} 다운로드됨\",\"delete.failure\":\"{count, plural, =1 {#개 항목} other {#개 항목}}을 삭제할 수 없음\",\"delete.failure.partial\":\"일부 항목을 삭제할 수 없음\",\"delete.success\":\"{count, plural, =1 {#개 항목} other {#개 항목}} 삭제됨\",\"jobs.failure\":\"{count, plural, =1 {#개 항목} other {#개 항목}} 실패\",\"jobs.inProgress\":\"작업 중...\",\"jobs.success\":\"{count, plural, =1 {#개 항목} other {#개 항목}} 완료\",\"restore.failure\":\"{count, plural, =1 {#개 항목} other {#개 항목}}을 복원할 수 없음\",\"restore.failure.partial\":\"일부 항목을 복원할 수 없음\",\"restore.success\":\"{count, plural, =1 {#개 항목} other {#개 항목}} 복원됨\",\"rename.start\":\"이름 변경 중\",\"rename.success\":\"{count, plural, =1 {#개 항목} other {#개 항목}} 이름 변경됨\",\"rename.failure\":\"서버 오류로 인해 항목의 이름을 바꿀 수 없음\",\"rename.failure.conflict\":\"동일한 이름의 항목이 여기에 이미 있음\",\"rename.offline.heading\":\"이름을 바꿀 수 없음\",\"rename.offline\":\"현재 오프라인 상태이며 항목의 이름을 변경할 수 없습니다. 이 작업을 수행하려면 다시 온라인으로 전환하십시오.\",\"bookmark.follow.error\":\"이 프로젝트를 즐겨찾기에 추가할 수 없음\",\"bookmark.unfollow.error\":\"이 프로젝트를 즐겨찾기에서 제거할 수 없음\",\"bookmark.follow.success\":\"{projectName}이(가) 즐겨찾기에 추가되었습니다.\",\"bookmark.unfollow.success\":\"{projectName}이(가) 즐겨찾기에서 제거되었습니다.\",\"bookmark.bulk.follow.success\":\"{count, plural, =1 {#개 항목} other {#개 항목}}이 즐겨찾기에 추가됨\",\"bookmark.bulk.follow.partial\":\"일부 항목을 즐겨찾기에 추가할 수 없음\",\"bookmark.bulk.follow.error\":\"{count, plural, =1 {#개 항목} other {#개 항목}}을 즐겨찾기에 추가할 수 없음\",\"bookmark.bulk.unfollow.success\":\"{count, plural, =1 {#개 항목} other {#개 항목}}이 즐겨찾기에서 제거됨\",\"bookmark.bulk.unfollow.partial\":\"일부 항목을 즐겨찾기에서 제거할 수 없음\",\"bookmark.bulk.unfollow.error\":\"{count, plural, =1 {#개 항목} other {#개 항목}}을 즐겨찾기에서 제거할 수 없음\",\"copyLink.success\":\"클립보드에 링크 복사됨\",\"copyLink.failure\":\"링크를 복사할 수 없음\",\"starterUser.project1upNavigation\":\"스타터 플랜에는 프로젝트에서 문서 열기 기능이 포함되어 있지 않습니다.\",\"starterUser.project1upNavigationCDPSave\":\"스타터 플랜에는 프로젝트에서 문서 저장 기능이 포함되어 있지 않습니다.\",\"invite.failure\":\"초대를 전송하지 못했습니다. 다시 시도해 주십시오.\",\"accessibility.backButton\":\"돌아가기\",\"button.role\":\"단추\",\"button.actions\":\"액션\",\"button.add\":\"추가\",\"button.addFiles\":\"파일 추가\",\"button.addLibrary\":\"라이브러리 추가\",\"button.createDocument\":\"새 {appName} 파일\",\"button.library\":\"라이브러리\",\"button.back\":\"뒤로\",\"button.browse\":\"모두 검색\",\"button.cancel\":\"취소\",\"button.okay\":\"확인\",\"button.canvas\":\"캔버스\",\"button.addCanvas\":\"새 캔버스\",\"button.changeDefaultApp\":\"기본 애플리케이션 변경...\",\"button.close\":\"닫기\",\"button.continue\":\"계속\",\"button.copy\":\"다음 위치에 복사...\",\"button.copyLink\":\"링크 복사\",\"button.create\":\"만들기\",\"button.createNewFolder\":\"새 폴더 만들기\",\"button.newFile\":\"새 파일\",\"button.newFolder\":\"새 폴더\",\"button.delete\":\"삭제\",\"button.deleteResource\":\"제거\",\"button.done\":\"완료\",\"button.download\":\"다운로드\",\"button.favorite\":\"즐겨찾기\",\"button.follow\":\"팔로우\",\"button.invite\":\"초대\",\"button.inviteLabel\":\"초대하기\",\"button.leave\":\"나가기\",\"button.leaveProject\":\"작업 영역 나가기\",\"button.move\":\"다음으로 이동...\",\"button.next\":\"다음\",\"button.ok\":\"확인\",\"button.open\":\"열기\",\"button.openWith\":\"연결 프로그램\",\"button.open.appName\":\"{appName} {isDefault, select, true {(기본)} other {}}\",\"button.redo\":\"다시 시도\",\"button.reload\":\"다시 로드\",\"button.rename\":\"이름 바꾸기\",\"button.restore\":\"복원\",\"button.retry\":\"재시도\",\"button.save\":\"저장\",\"button.select\":\"선택\",\"button.share\":\"공유\",\"button.skipTour\":\"둘러보기 건너뛰기\",\"button.undo\":\"실행 취소\",\"button.unfavorite\":\"즐겨찾기에서 제거\",\"button.unfollow\":\"팔로우 취소\",\"button.update\":\"업데이트\",\"button.upgrade\":\"업그레이드\",\"button.view\":\"모두 보기\",\"button.viewProject\":\"프로젝트 보기\",\"button.viewTarget\":\"보기\",\"button.createWeblink\":\"웹 링크 추가\",\"button.leaveTeam\":\"작업 영역 나가기\",\"button.renameTeam\":\"작업 영역 이름 바꾸기\",\"button.editTeam\":\"작업 영역 정보 편집\",\"button.archiveTeam\":\"작업 영역 삭제\",\"button.upload\":\"파일 업로드\",\"button.goToDeleted\":\"삭제된 항목에서 보기\",\"button.viewEverything\":\"모든 항목 보기\",\"button.viewInWeb\":\"웹에서 보기\",\"abbreviations.fileSize.byte\":\"B\",\"abbreviations.fileSize.kilobyte\":\"KB\",\"abbreviations.fileSize.megabyte\":\"MB\",\"abbreviations.fileSize.gigabyte\":\"GB\",\"abbreviations.fileSize.terabyte\":\"TB\",\"statusIcon.conflicted\":\"동기화 충돌\",\"statusIcon.onlineOnly\":\"온라인 전용\",\"statusIcon.availableOffline\":\"오프라인에서 사용 가능\",\"statusIcon.syncing\":\"동기화 중...\",\"statusIcon.waitingToSync\":\"동기화 대기 중\",\"statusMessage.offline.description\":\"모든 작업 영역과 프로젝트에 액세스하려면 다시 연결하십시오. 프로젝트에서 로컬 파일을 보려면 홈으로 이동하십시오.\",\"statusMessage.offline.heading\":\"연결 해제됨\",\"statusMessage.offline.toast\":\"연결이 해제되어 일부 기능과 파일을 사용하지 못할 수 있습니다.\",\"toggle.listView\":\"목록 보기\",\"toggle.gridView\":\"썸네일 보기\",\"color.fuchsia\":\"진분홍\",\"color.indigo\":\"남색\",\"color.celery\":\"연한초록\",\"color.magenta\":\"자주색\",\"color.yellow\":\"노랑\",\"color.seafoam\":\"청녹\",\"color.chartreuse\":\"연두\",\"color.purple\":\"보라\",\"color.blue\":\"파랑\",\"color.red\":\"빨강\",\"color.orange\":\"주황\",\"color.green\":\"초록\",\"color.label\":\"프로젝트 색상\",\"tooltip.offline.general\":\"이 작업을 수행하려면 온라인으로 돌아가십시오.\",\"tooltip.moreFaces\":\"및 기타 {number}\",\"action.leave.space.success\":\"{count, plural, =1 {#개 프로젝트} other {#개 프로젝트}}에서 나왔습니다.\",\"action.leave.prototype.success\":\"{count, plural, =1 {#개 프로토타입} other {#개 프로토타입}}에 대한 액세스 권한 제거됨\",\"action.leave.file.success\":\"{count, plural, =1 {#개 파일} other {#개 파일}}에 대한 액세스 권한 제거됨\",\"action.leave.canvas.success\":\"{count, plural, =1 {#개 캔버스} other {#개 캔버스}}에 대한 액세스 권한 제거됨\",\"action.leave.team.success\":\"1개 작업 영역에서 나감\",\"action.leave.space.error\":\"이 프로젝트에서 나갈 수 없음\",\"action.leave.prototype.error\":\"이 프로토타입에서 나갈 수 없음\",\"action.leave.file.error\":\"이 파일에서 나갈 수 없음\",\"action.leave.team.error\":\"이 작업 영역에서 나갈 수 없음\",\"action.leave.canvas.error\":\"이 캔버스에서 나갈 수 없음\",\"action.leave.space.partial.error\":\"모든 프로젝트에서 나갈 수 없음\",\"action.leave.prototype.partial.error\":\"모든 프로토타입에서 나갈 수 없음\",\"action.leave.file.partial.error\":\"모든 파일에서 나갈 수 없음\",\"action.leave.canvas.partial.error\":\"모든 캔버스에서 나갈 수 없음\",\"action.leave.error.onlyContributor\":\"현재 유일한 멤버입니다. 나가기 전에 다른 멤버를 추가해 주십시오.\",\"action.leave.error.addressBookGroupMember\":\"그룹에서 나간 후 다시 시도하십시오.\",\"action.leave.error.admin\":\"현재 관리자이므로 나갈 수 없습니다.\",\"action.leave.error.generic\":\"문제가 발생하여 나갈 수 없습니다.\",\"action.reportAbuse\":\"오용 신고\",\"action.reportAbuse.required\":\"필수\",\"action.reportAbuse.titleText\":\"이 Creative Cloud 콘텐츠가 Adobe 사용 약관을 위반한다고 판단되는 경우, 이 간이 양식을 작성하여 해당 콘텐츠를 신고할 수 있습니다.\",\"action.reportAbuse.emailInput\":\"이메일\",\"action.reportAbuse.nameInput\":\"이름\",\"action.reportAbuse.radioButtonText\":\"이 콘텐츠를 신고하는 이유는 무엇입니까?\",\"action.reportAbuse.defamation\":\"명예 훼손\",\"action.reportAbuse.hate\":\"인종 차별 또는 인신 공격성 콘텐츠\",\"action.reportAbuse.trademark\":\"상표권 위반\",\"action.reportAbuse.pornography\":\"노골적인 성적 콘텐츠\",\"action.reportAbuse.vulgar\":\"공격적 내용\",\"action.reportAbuse.other\":\"기타\",\"action.reportAbuse.inappropriate\":\"부적합\",\"action.reportAbuse.age\":\"나이 부정확\",\"action.reportAbuse.gender\":\"성별 부정확\",\"action.reportAbuse.textAreaTitle\":\"문제에 대해 설명해 주십시오.\",\"action.reportAbuse.describeConcern\":\"문제 설명\",\"action.reportAbuse.success\":\"정상적으로 오용 신고됨\",\"action.reportAbuse.failure\":\"오용 신고 실패\",\"action.menu.label\":\"액션 메뉴\",\"action.label\":\"동작\",\"dialog.genericError.description\":\"죄송합니다. 문제가 발생했습니다.\",\"dialog.genericError.title\":\"예기치 않은 오류\",\"dialog.leave.space.title\":\"{count, plural, =1 {{name}} other {프로젝트}}에서 나가기\",\"dialog.leave.prototype.title\":\"{count, plural, =1 {이 프로토타입} other {프로토타입}}에서 나가기\",\"dialog.leave.file.title\":\"{count, plural, =1 {이 파일} other {파일}}에서 나가기\",\"dialog.leave.canvas.title\":\"{count, plural, =1 {이 캔버스} other {캔버스}}에서 나가기\",\"dialog.leave.team.title\":\"나가고자 하십니까?\",\"dialog.leave.team.detail\":\"자신을 제거하고 나면 실행 취소할 수 없습니다. 이 작업 영역에 다시 추가되기를 원한다면 관리자에게 문의하십시오.\",\"dialog.leave.space.detail\":\"이 프로젝트에 있지만 소유하지 않은 항목에 대한 액세스 권한이 손실됩니다. “{projectName}”에서 나가면 이를 되돌릴 수 없습니다.\",\"dialog.leave.prototype.detail\":\"다른 초대 없이는 이 항목에 다시 액세스할 수 없습니다.\",\"dialog.leave.file.detail\":\"다른 초대 없이는 이 항목에 다시 액세스할 수 없습니다.\",\"dialog.leave.canvas.detail\":\"다른 초대 없이는 이 항목에 다시 액세스할 수 없습니다.\",\"dialog.leave.detail\":\"{type, select, space {{count, plural, =1 {이 프로젝트} other {이들 프로젝트}}에 있지만 소유하지 않은 항목에 대한 액세스 권한이 손실됩니다. {count, plural, =1 {“{name}”} other {이들 프로젝트}}에서 나가면 이를 되돌릴 수 없습니다.} other {다른 초대 없이는 {count, plural, =1 {이 항목} other {이들 항목}}에 다시 액세스할 수 없습니다{count, plural, =1 {.} other {.}}}}\",\"dialog.deleteFailed.title\":\"모든 항목을 삭제할 수 없음\",\"dialog.deleteWarning.description\":\"{type, select, spaces {이 작업은 이들 프로젝트의 모든 멤버에 대한 콘텐츠를 삭제합니다.} other {이 작업은 이 프로젝트의 모든 멤버에 대해 다음 항목을 삭제합니다.}}\",\"dialog.deleteWarning.title\":\"{type, select, space {{count}개 {count, plural, =1 {프로젝트} other {프로젝트}} 삭제} other {{count}개 {count, plural, =1 {항목} other {항목}} 삭제}}\",\"dialog.deleteFailed.description.unauthorized\":\"프로젝트에서 제거되었으므로 삭제할 수 없음:\",\"dialog.deleteFailed.description.alreadyDeleted\":\"다른 사용자가 이미 삭제했으므로 이 항목을 삭제할 수 없습니다.\",\"dialog.deleteFailed.description.unknown\":\"문제가 발생하여 삭제할 수 없습니다.\",\"dialog.cantCopyAllItems\":\"모든 항목을 복사할 수 없음\",\"dialog.cantCopyBecauseSomethingWentWrong\":\"문제가 발생하여 복사할 수 없습니다.\",\"dialog.cantCopyBecauseYouWereSignedOut\":\"로그아웃 상태이므로 복사할 수 없음:\",\"dialog.cantCopyBecauseYouWereRemoved\":\"이 프로젝트에서 제거되었으므로 복사할 수 없음:\",\"dialog.cantCopyBecauseItemWasDeleted\":\"다른 사용자가 이미 삭제했으므로 이 항목을 복사할 수 없음:\",\"dialog.cantCopyBecauseItemExists\":\"복사하려는 위치에 이미 존재하므로 이 항목을 복사할 수 없음:\",\"dialog.cantMoveAllItems\":\"모든 항목을 이동할 수 없음\",\"dialog.cantMoveBecauseSomethingWentWrong\":\"문제가 발생하여 이동할 수 없습니다.\",\"dialog.cantMoveBecauseYouWereSignedOut\":\"로그아웃 상태이므로 이동할 수 없음:\",\"dialog.cantMoveBecauseYouWereRemoved\":\"이 프로젝트에서 제거되었으므로 이동할 수 없음:\",\"dialog.cantMoveBecauseItemWasDeleted\":\"다른 사용자가 이미 삭제했으므로 이 항목을 이동할 수 없음:\",\"dialog.cantMoveBecauseItemExists\":\"이동하려는 위치에 이미 존재하므로 이 항목을 이동할 수 없음:\",\"dialog.createFolder.error\":\"서버 오류. 폴더를 저장할 수 없음\",\"dialog.createFolder.nameConflict\":\"동일한 이름의 폴더가 이미 존재합니다.\",\"dialog.createFolder.placeholder\":\"폴더 이름\",\"dialog.createFolder.title\":\"폴더 만들기\",\"dialog.createFolder.success\":\"폴더가 정상적으로 생성됨\",\"dialog.createWeblink.error\":\"지원되지 않는 URL\",\"dialog.createWeblink.tooManyRequests\":\"예기치 않은 네트워크 오류가 발생했습니다. 다시 시도해 주십시오.\",\"dialog.createWeblink.success\":\"1개 항목 추가됨\",\"dialog.createWeblink.nameConflict\":\"이 제목은 이미 존재합니다.\",\"dialog.createWeblink.name.placeholder\":\"이 링크의 이름을 입력하십시오.\",\"dialog.createWeblink.link.placeholder\":\"https://\",\"dialog.createWeblink.name\":\"사용자 정의 제목\",\"dialog.createWeblink.link\":\"링크\",\"dialog.createWeblink.title\":\"웹 링크 만들기\",\"app.type.webLink\":\"웹 링크\",\"dialog.createCanvas.error\":\"캔버스를 만들 수 없음\",\"dialog.move.title\":\"{projectName} 프로젝트로 이동\",\"dialog.move.detail\":\"이 항목을 이동하면 여기에 액세스할 수 있는 사용자가 변경됩니다.\",\"moveToTeam.confirm.title\":\"{name} 작업 영역으로 이동\",\"moveToTeam.confirm.message\":\"프로젝트를 여기로 옮기면 액세스할 수 있는 사용자가 변경됩니다. 귀하의 작업 영역에 액세스할 수 있는 모든 사용자가 귀하의 프로젝트에 액세스할 수 있습니다.\",\"moveToTeam.disabled.differentOrg.tooltip.message\":\"프로젝트를 다른 조직의 작업 영역으로 이동할 수 없습니다.\",\"moveToSpace.disabled.differentOrg.tooltip.message\":\"항목을 다른 조직의 프로젝트로 이동할 수 없습니다.\",\"moveToTeam.success\":\"{count, plural, =1 {#개 프로젝트가} other {#개 프로젝트가}} {name} 작업 영역으로 이동됨\",\"confirmationDialog.dontShowAgain\":\"다시 표시 안 함\",\"dialog.open.title\":\"웹에서 열기\",\"dialog.open.detail\":\"{appName}에서 이 파일을 열 수 없지만 브라우저에서는 액세스할 수 있습니다.\",\"dialog.renameTeam.title\":\"작업 영역 이름 바꾸기\",\"dialog.renameTeam.placeholder\":\"이 작업 영역의 이름을 입력하십시오.\",\"dialog.renameTeam.error\":\"죄송합니다. 문제가 발생했습니다.\",\"dialog.renameTeam.nameConflict\":\"이 이름은 이미 존재합니다.\",\"dialog.archiveTeam.title\":\"이 작업 영역을 삭제하시겠습니까?\",\"dialog.archiveTeam.detail\":\"자신을 제거하고 나면 실행 취소할 수 없습니다. 이 작업 영역에 다시 참여하기를 원한다면 관리자에게 문의하십시오.\",\"dialog.saveToCloud.title\":\"파일이 Creative Cloud에 저장됨\",\"dialog.saveToCloud.detail\":\"이제 클라우드 문서가 버전 내역, 초대 및 공동 편집, 다른 디바이스에서의 즉각적인 액세스 기능 등을 제공합니다. 여기와 Creative Cloud 앱에서 찾아볼 수 있습니다.\",\"input.invalidCharInput\":\"이름에는 \\\\\\\\ / * ? \\\" | : 문자를 사용할 수 없습니다.\",\"input.invalidEmptyInput\":\"{names, select, true {이름은} other {제목은}} 비워 둘 수 없습니다.\",\"input.nameTooLong\":\"{names, select, true {이름은} other {제목은}} {maxLength}자를 초과할 수 없습니다.\",\"input.nameEndsWithDot\":\"{names, select, true {이름은} other {제목은}} 마침표로 끝날 수 없습니다.\",\"input.weblink.nameRestricted\":\"웹 링크는 다음과 같은 제목을 가질 수 없습니다. “con”, “prn”, “aux”, “nul”, “com#”, “lpt#”\",\"input.nameRestricted\":\"에셋은 다음과 같은 이름을 가질 수 없습니다. con/prn/aux/nul/com#/lpt#\",\"input.weblink.invalidCharInput\":\"제목에는 공백만 포함하거나 다음과 같은 문자를 포함할 수 없습니다. \\\\\\\\ / * ? \\\" | : < > \",\"input.name.invalidCharInput\":\"이름에는 공백만 포함하거나 다음과 같은 문자를 포함할 수 없습니다. \\\\\\\\ / * ? \\\" | : < > \",\"cdpFooter.orphanedArtifactsWarning\":\"이동 중인 항목에 연결된 게시 링크는 원래 프로젝트에 남아 있게 됩니다.\",\"cdpFooter.libraryPrivacyWarning\":\"추가한 라이브러리에 대해 재공유 권한이 있다면 프로젝트의 멤버에게 해당 라이브러리가 표시됩니다.\",\"toast.beforeOp.error.documentIsOpen\":\"이 작업을 수행하려면 {count, plural, =1 {문서} other {문서}}를 닫으십시오.\",\"app.type.designSpecs\":\"디자인 사양\",\"app.type.prototype\":\"프로토타입\",\"app.type.publishedLink\":\"게시 링크\",\"popover.header\":\"프로젝트에서 다른 사람들과 공동 작업을 수행하고, 작업을 공유하여 피드백을 받아 보세요.\",\"popover.linkout\":\"자세히 알아보기\",\"team.libraries.filter.all\":\"모두\",\"team.libraries.filter.addedToYourLibraries\":\"내 라이브러리에 추가됨\",\"team.libraries.filter.notAdded\":\"추가되지 않음\",\"team.spaces.filter.all\":\"모두\",\"team.spaces.filter.favorited\":\"즐겨찾기에 추가됨\",\"team.filter.empty.heading\":\"선택한 필터에 일치하는 프로젝트 없음\",\"team.filter.empty.description1\":\"이 목록에서 \",\"team.filter.empty.description2\":\" 대한 결과를 찾을 수 없습니다. 맞춤법을 확인하거나 다른 키워드를 사용해 보십시오.\",\"team.filter.no.match.description\":\"이 목록에서 결과를 찾을 수 없습니다. 맞춤법을 확인하거나 다른 필터링 조건을 사용해 보십시오.\",\"team.filter.filterText\":\"{filter}에\",\"team.header.other.teams\":\"기타 작업 영역\",\"space.empty.heading\":\"모든 자료가 한 곳에, 모든 사람이 함께\",\"space.empty.description\":\"작업 파일 및 관련 자료로 이 프로젝트를 채우세요. 공동 작업자를 초대하여 이들이 작업 중인 항목을 추가할 수도 있습니다.\",\"space.empty.canvasHeading\":\"CREATIVE CLOUD CANVAS\",\"space.empty.actionsHeading\":\"내 프로젝트에 콘텐츠 추가\",\"space.empty.createCanvas\":\"새 캔버스\",\"space.empty.upload\":\"파일 추가\",\"space.empty.createFolder\":\"새 폴더\",\"space.empty.createWeblink\":\"웹 링크\",\"space.empty.addResource\":\"라이브러리\",\"folder.empty.heading\":\"이 폴더는 비어 있습니다.\",\"folder.empty.description\":\"파일을 추가하여 채우세요.\",\"folder.discard.heading\":\"이 폴더는 삭제되었습니다.\",\"folder.discard.description\":\"이것이 실수라고 생각되거나 다른 콘텐츠를 찾아보려면 관리자에게 문의하십시오.\",\"folder.error.description\":\"이 폴더에서 콘텐츠를 로드하는 도중 문제가 발생했습니다.\",\"space.empty.section.createACanvas\":\"캔버스 만들기\",\"tooltip.opensInBrowser\":\"브라우저에서 열림\",\"space.empty.workingFiles\":\"이 프로젝트에 계속 추가\",\"space.empty.canvasPopoverTitle\":\"Creative Cloud Canvas (Beta) 사용해 보기\",\"space.empty.canvasPopoverContent\":\"캔버스를 사용하여 크리에이티브 작업의 레이아웃을 지정하고, 시각화하고, 검토하세요.\",\"space.error.heading\":\"프로젝트를 로드할 수 없음\",\"space.error.description\":\"이 프로젝트에서 콘텐츠를 로드하는 도중 문제가 발생했습니다.\",\"createTeamWizard.createTeam.sidebarHeading\":\"작업 영역 만들기\",\"createTeamWizard.createTeam.sidebarCopy\":\"작업 영역을 생성하여 모든 사용자를 같은 페이지에 모아 관리하세요.\",\"createTeamWizard.createTeam.sidebarCopy.adminconsole\":\"팀이 협업하고 파일을 공유할 수 있는 장소를 마련해 보세요.\",\"createTeamWizard.createTeam.sidebarLink\":\"자세히 알아보기\",\"createTeamWizard.createTeam.contentHeading\":\"새 작업 영역\",\"createTeamWizard.createTeam.loading\":\"“{name}” 작업 영역 생성\",\"createTeamWizard.inviteMembers.sidebarHeading\":\"“{name}” 작업 영역에 멤버 초대\",\"createTeamWizard.inviteMembers.sidebarCopy\":\"이름이나 이메일을 입력하여 지금 멤버를 초대하거나 이 단계를 건너뛰고 나중에 초대하세요.\",\"createTeamWizard.inviteMembers.loading\":\"“{name}” 작업 영역에 멤버 초대\",\"createTeamWizard.inviteMembers.contentHeading\":\"멤버 초대\",\"createTeamWizard.inviteMembers.successToast\":\"멤버를 새 작업 영역에 추가함\",\"createTeamWizard.progress\":\"{current}/{total}단계\",\"createTeamWizard.skipStep\":\"건너뛰기\",\"teamDialog.createTeam.label\":\"작업 영역 만들기\",\"teamDialog.createTeam.infoBox.description\":\"귀하가 만든 작업 영역은 초대 전용이며 추가된 모든 사람은 기본적으로 편집 액세스 권한을 갖습니다.\",\"teamDialog.editTeam.label\":\"작업 영역 편집\",\"teamDialog.nameSection.placeholder\":\"새 작업 영역 이름 입력\",\"teamDialog.nameSection.label\":\"작업 영역 이름\",\"teamDialog.permissionsSection.label\":\"이 작업 영역을 편집할 수 있는 사용자\",\"teamDialog.permissionsSection.option.onlyInvited\":\"초대된 사용자만\",\"teamDialog.descriptionSection.label\":\"작업 영역 설명(선택 사항)\",\"teamDialog.descriptionSection.placeholder\":\"작업 영역에 대한 간단한 소개 추가\",\"teamsSidebar.noTeams\":\"작업 영역 없음\",\"teamsSidebar.newTeamButton\":\"작업 영역 만들기\",\"teamsSidebar.adminTour.title\":\"신규! 작업 영역 만들기\",\"teamsSidebar.adminTour.content\":\"이제 관리자가 웹용 Creative Cloud에서 작업 영역을 만들 수 있으며, 이를 통해 공유 작업을 관리하기가 더욱 쉬워졌습니다.\",\"teamsSidebarTeam.newSpaceButton\":\"새 프로젝트\",\"teamsSidebarTeam.header.newBadge\":\"신규\",\"teamsSidebarTeam.header.otherTeams\":\"다른 작업 영역으로부터\",\"teamsSidebarTeam.header.teams\":\"작업 영역\",\"teamsSidebarTeam.header.previewLabel\":\"(미리보기)\",\"teamsSidebarTeam.header.previewCopy\":\"작업 영역과 프로젝트는 비공개 Beta로 제공됩니다.\",\"teamsSidebarTeam.header.previewLearnMoreText\":\"자세히 알아보기\",\"teamsSidebarTeam.message.loading\":\"로드 중...\",\"teamsSidebarTeam.message.noSpaces\":\"현재 보유 중인 작업 영역 또는 프로젝트가 없습니다.\",\"teamsSidebarTeam.message.offline\":\"연결이 끊어졌습니다. 작업 영역 및 프로젝트를 보려면 다시 연결하십시오.\",\"teamsSidebarTeam.message.error\":\"작업 영역 및 프로젝트를 로드하는 도중 문제가 발생했습니다.\",\"teams1up.error.description\":\"프로젝트를 로드하는 도중 문제가 발생했습니다.\",\"teams1up.error.heading\":\"프로젝트를 로드할 수 없음\",\"otherTeams.emptyMessage.header\":\"작업 영역 페이지를 볼 수 없습니다.\",\"otherTeams.emptyMessage.description1\":\"귀하는 제거되었거나 다음을 사용하여 마지막 프로젝트에서 나가셨습니다. \",\"otherTeams.emptyMessage.description2\":\" 섹션. 이것이 실수라고 생각되는 경우 관리자에게 문의하십시오.\",\"spaceTour.step0.title\":\"내 프로젝트가 여기에\",\"spaceTour.step0.content\":\"프로젝트는 팀이 공동 작업을 수행하고 파일과 리소스를 수집, 구성 및 공유하는 데 유용합니다.\",\"spaceTour.step1.title\":\"프로젝트에 필요한 모든 것을 추가하세요.\",\"spaceTour.step1.content\":\"작업 파일, 참조 이미지, 리소스 등을 모두 한 곳으로 가져오세요.\",\"spaceTour.step2.title\":\"간단하게 권한 설정\",\"spaceTour.step2.content\":\"공동 작업자를 초대할 때 적절한 액세스 권한을 할당하여 시간과 번거로움을 줄이세요. 검토 및 피드백을 위해 관련자들에게 보기 전용 패키지를 전송하세요.\",\"error.cantCreateSpace\":\"작업 영역 스토리지 가득 참\",\"error.exceedQuota.create.detail.description1\":\"지금은 새 항목을 만들 수 없습니다. \",\"error.exceedQuota.description2\":\" 후 스토리지 여유 공간을 확보하십시오.\",\"error.exceedQuota.add.detail.description1\":\"지금은 새 항목을 추가할 수 없습니다. \",\"error.move.generic\":\"문제가 발생하여 이동할 수 없음\",\"error.move.signedOut\":\"로그아웃 상태이므로 이동할 수 없음\",\"error.move.permissionRevoked\":\"이 프로젝트에서 제거되었으므로 이동할 수 없음\",\"error.move.deleted\":\"다른 사용자가 이미 삭제했으므로 이 항목을 이동할 수 없음\",\"error.move.duplicate\":\"이동하려는 위치에 이미 존재하므로 이 항목을 이동할 수 없음\",\"error.copy.generic\":\"문제가 발생하여 복사할 수 없음\",\"error.copy.signedOut\":\"로그아웃 상태이므로 복사할 수 없음\",\"error.copy.permissionRevoked\":\"이 프로젝트에서 제거되었으므로 복사할 수 없음\",\"error.copy.deleted\":\"다른 사용자가 이미 삭제했으므로 이 항목을 복사할 수 없음\",\"error.copy.duplicate\":\"복사하려는 위치에 이미 존재하므로 이 항목을 복사할 수 없음\",\"checkbox.select\":\"선택\",\"listItem.fileSize\":\"파일 크기\",\"facepile.additionalMembers\":\"추가 멤버 +{count}\",\"facepile.memberName\":\"{name}, 멤버\",\"coachmark.information\":\"정보\",\"toolbar.tools\":\"도구\",\"griditem.error.message\":\"가져올 수 없음\",\"griditem.error.button\":\"다시 시도\",\"ats.move.extendedNotification\":\"이동이 완료되면 알림을 받게 됩니다.\",\"file.deleted.error.heading\":\"파일을 {operation}할 수 없음\",\"file.deleted.error.description\":\"파일이 삭제되었으므로 {operation}할 수 없습니다. 삭제된 항목에서 복원하고 다시 시도하거나 다른 위치를 선택하십시오.\",\"file.deleted.rename.error.description\":\"파일이 삭제되었으므로 이름을 변경할 수 없습니다. 해당 파일을 복원하려면 [삭제된 항목으로 이동]을 선택하십시오.\"}");

/***/ }),

/***/ "eS3o":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _autobindDecorator = _interopRequireDefault(__webpack_require__("gKdT"));

var _closest = _interopRequireDefault(__webpack_require__("U6dR"));

var _convertUnsafeMethod = _interopRequireDefault(__webpack_require__("8nyd"));

var _OpenTransition = _interopRequireDefault(__webpack_require__("u6xD"));

var _ownerDocument = _interopRequireDefault(__webpack_require__("z9HI"));

var _Portal = _interopRequireDefault(__webpack_require__("I/DW"));

var _Position = _interopRequireDefault(__webpack_require__("R55y"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

var _reactDom = _interopRequireDefault(__webpack_require__("i8i4"));

var _RootCloseWrapper = _interopRequireDefault(__webpack_require__("wewx"));

var _class, _class2, _temp;

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function ownKeys(object, enumerableOnly) {
  var keys = Object.keys(object);

  if (Object.getOwnPropertySymbols) {
    var symbols = Object.getOwnPropertySymbols(object);

    if (enumerableOnly) {
      symbols = symbols.filter(function (sym) {
        return Object.getOwnPropertyDescriptor(object, sym).enumerable;
      });
    }

    keys.push.apply(keys, symbols);
  }

  return keys;
}

function _objectSpread(target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i] != null ? arguments[i] : {};

    if (i % 2) {
      ownKeys(Object(source), true).forEach(function (key) {
        _defineProperty(target, key, source[key]);
      });
    } else if (Object.getOwnPropertyDescriptors) {
      Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
    } else {
      ownKeys(Object(source)).forEach(function (key) {
        Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
      });
    }
  }

  return target;
}

function _defineProperty(obj, key, value) {
  if (key in obj) {
    Object.defineProperty(obj, key, {
      value: value,
      enumerable: true,
      configurable: true,
      writable: true
    });
  } else {
    obj[key] = value;
  }

  return obj;
}

const VISIBLE_OVERLAYS = new Map();
const DEFAULT_BUCKET_KEY = 'all';

let Overlay = (0, _convertUnsafeMethod.default)(_class = (0, _autobindDecorator.default)(_class = (_temp = _class2 = class Overlay extends _react.default.Component {
  constructor(props) {
    super(props);
    this.state = {
      exited: !this.props.show
    };
  }

  get overlayBucketKey() {
    const {
      children
    } = this.props;

    if (children && children.props) {
      return children.props.role === 'tooltip' ? 'tooltip' : DEFAULT_BUCKET_KEY;
    }

    return DEFAULT_BUCKET_KEY;
  }

  componentDidMount() {
    this.setState({
      targetNode: _reactDom.default.findDOMNode(this.props.target)
    });
    this.mounted = true;
    this.addOverlay();
  }

  componentWillUnmount() {
    this.mounted = false;
    this.removeOverlay();
  }

  addOverlay(props = this.props) {
    const {
      overlayBucketKey
    } = this;
    let visibleOverlays = VISIBLE_OVERLAYS.get(overlayBucketKey);

    if (!visibleOverlays) {
      VISIBLE_OVERLAYS.set(overlayBucketKey, []);
      visibleOverlays = VISIBLE_OVERLAYS.get(overlayBucketKey);
    }

    if (props.show && this.mounted && !visibleOverlays.includes(this)) {
      visibleOverlays.push(this);
    }
  }

  removeOverlay() {
    // Remove overlay from the stack of visible overlays
    const visibleOverlays = VISIBLE_OVERLAYS.get(this.overlayBucketKey);
    let index = visibleOverlays.indexOf(this);

    if (index >= 0) {
      visibleOverlays.splice(index, 1);
    }
  }

  UNSAFE_componentWillReceiveProps(nextProps) {
    if (nextProps.target && nextProps.target !== this.props.target) {
      this.setState(_objectSpread(_objectSpread({}, this.state), {}, {
        targetNode: _reactDom.default.findDOMNode(nextProps.target)
      }));
    }
  }

  onEntered(...args) {
    this.setState(_objectSpread(_objectSpread({}, this.state), {}, {
      exited: false
    }));
    this.addOverlay();

    if (this.props.onEntered) {
      this.props.onEntered(...args);
    }
  }

  onExited(...args) {
    this.setState(_objectSpread(_objectSpread({}, this.state), {}, {
      exited: true
    }));
    this.removeOverlay();

    if (this.props.onExited) {
      this.props.onExited(...args);
    }
  }

  getOverlayContainer(target) {
    let immediateAvailableContainer = (0, _closest.default)(this.state.targetNode, '.react-spectrum-provider');
    return this.props.container || immediateAvailableContainer;
  }

  hide(e) {
    const visibleOverlays = VISIBLE_OVERLAYS.get(this.overlayBucketKey); // Only hide if this is the top overlay

    if (visibleOverlays[visibleOverlays.length - 1] === this && this.props.onHide) {
      this.props.onHide(e);
    }
  }

  render() {
    let {
      containerPadding,
      target,
      container = this.getOverlayContainer(target),
      placement,
      offset,
      crossOffset,
      flip,
      boundariesElement = () => (0, _ownerDocument.default)(this).body,
      shouldUpdatePosition,
      rootClose,
      children,
      show,
      onExit,
      onExiting,
      onEnter,
      onEntering
    } = this.props; // Don't un-render the overlay while it's transitioning out.

    const mountOverlay = show || !this.state.exited;

    if (!mountOverlay) {
      // Don't bother showing anything if we don't have to.
      return null;
    }

    let child = children; // Position is be inner-most because it adds inline styles into the child,
    // which the other wrappers don't forward correctly.

    child = /*#__PURE__*/_react.default.createElement(_Position.default, {
      container,
      containerPadding,
      target,
      placement,
      shouldUpdatePosition,
      offset,
      crossOffset,
      flip,
      boundariesElement,
      autoComplete: true
    }, child); // This animates the child node by injecting props, so it must precede
    // anything that adds a wrapping div.

    child = /*#__PURE__*/_react.default.createElement(_OpenTransition.default, {
      in: show,
      appear: true,
      onExit: onExit,
      onExiting: onExiting,
      onExited: this.onExited,
      onEnter: onEnter,
      onEntering: onEntering,
      onEntered: this.onEntered
    }, child); // This goes after everything else because it adds a wrapping div.

    if (rootClose) {
      child = /*#__PURE__*/_react.default.createElement(_RootCloseWrapper.default, {
        onRootClose: this.hide
      }, child);
    }

    return /*#__PURE__*/_react.default.createElement(_Portal.default, {
      container: container
    }, child);
  }

}, _class2.defaultProps = {
  placement: 'left'
}, _temp)) || _class) || _class;

exports.default = Overlay;

/***/ }),

/***/ "eUtF":
/***/ (function(module, exports, __webpack_require__) {

module.exports = !__webpack_require__("jmDH") && !__webpack_require__("KUxP")(function () {
  return Object.defineProperty(__webpack_require__("Hsns")('div'), 'a', {
    get: function () {
      return 7;
    }
  }).a != 7;
});

/***/ }),

/***/ "eWyx":
/***/ (function(module, exports, __webpack_require__) {

// extracted by mini-css-extract-plugin

/***/ }),

/***/ "eXD0":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var _UxpOptions = _interopRequireDefault(__webpack_require__("zvwv"));

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}
/*************************************************************************
* ADOBE CONFIDENTIAL
* ___________________
*
* Copyright 2019 Adobe
* All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains
* the property of Adobe and its suppliers, if any. The intellectual
* and technical concepts contained herein are proprietary to Adobe
* and its suppliers and are protected by all applicable intellectual
* property laws, including trade secret and copyright laws.
* Dissemination of this information or reproduction of this material
* is strictly forbidden unless prior written permission is obtained
* from Adobe.
**************************************************************************/


module.exports = _UxpOptions.default.select('Progress', () => __webpack_require__("Ke8n"), () => __webpack_require__("W1IK"), () => __webpack_require__("hw8n"));

/***/ }),

/***/ "eZNI":
/***/ (function(module, exports, __webpack_require__) {

!function (e, t) {
   true ? module.exports = t() : undefined;
}(this, function () {
  "use strict";

  return [{
    locale: "de",
    pluralRuleFunction: function (e, t) {
      var n = !String(e).split(".")[1];
      return t ? "other" : 1 == e && n ? "one" : "other";
    },
    fields: {
      year: {
        displayName: "Jahr",
        relative: {
          0: "dieses Jahr",
          1: "nächstes Jahr",
          "-1": "letztes Jahr"
        },
        relativeTime: {
          future: {
            one: "in {0} Jahr",
            other: "in {0} Jahren"
          },
          past: {
            one: "vor {0} Jahr",
            other: "vor {0} Jahren"
          }
        }
      },
      "year-short": {
        displayName: "Jahr",
        relative: {
          0: "dieses Jahr",
          1: "nächstes Jahr",
          "-1": "letztes Jahr"
        },
        relativeTime: {
          future: {
            one: "in {0} Jahr",
            other: "in {0} Jahren"
          },
          past: {
            one: "vor {0} Jahr",
            other: "vor {0} Jahren"
          }
        }
      },
      month: {
        displayName: "Monat",
        relative: {
          0: "diesen Monat",
          1: "nächsten Monat",
          "-1": "letzten Monat"
        },
        relativeTime: {
          future: {
            one: "in {0} Monat",
            other: "in {0} Monaten"
          },
          past: {
            one: "vor {0} Monat",
            other: "vor {0} Monaten"
          }
        }
      },
      "month-short": {
        displayName: "Monat",
        relative: {
          0: "diesen Monat",
          1: "nächsten Monat",
          "-1": "letzten Monat"
        },
        relativeTime: {
          future: {
            one: "in {0} Monat",
            other: "in {0} Monaten"
          },
          past: {
            one: "vor {0} Monat",
            other: "vor {0} Monaten"
          }
        }
      },
      day: {
        displayName: "Tag",
        relative: {
          0: "heute",
          1: "morgen",
          2: "übermorgen",
          "-2": "vorgestern",
          "-1": "gestern"
        },
        relativeTime: {
          future: {
            one: "in {0} Tag",
            other: "in {0} Tagen"
          },
          past: {
            one: "vor {0} Tag",
            other: "vor {0} Tagen"
          }
        }
      },
      "day-short": {
        displayName: "Tag",
        relative: {
          0: "heute",
          1: "morgen",
          2: "übermorgen",
          "-2": "vorgestern",
          "-1": "gestern"
        },
        relativeTime: {
          future: {
            one: "in {0} Tag",
            other: "in {0} Tagen"
          },
          past: {
            one: "vor {0} Tag",
            other: "vor {0} Tagen"
          }
        }
      },
      hour: {
        displayName: "Stunde",
        relative: {
          0: "in dieser Stunde"
        },
        relativeTime: {
          future: {
            one: "in {0} Stunde",
            other: "in {0} Stunden"
          },
          past: {
            one: "vor {0} Stunde",
            other: "vor {0} Stunden"
          }
        }
      },
      "hour-short": {
        displayName: "Std.",
        relative: {
          0: "in dieser Stunde"
        },
        relativeTime: {
          future: {
            one: "in {0} Std.",
            other: "in {0} Std."
          },
          past: {
            one: "vor {0} Std.",
            other: "vor {0} Std."
          }
        }
      },
      minute: {
        displayName: "Minute",
        relative: {
          0: "in dieser Minute"
        },
        relativeTime: {
          future: {
            one: "in {0} Minute",
            other: "in {0} Minuten"
          },
          past: {
            one: "vor {0} Minute",
            other: "vor {0} Minuten"
          }
        }
      },
      "minute-short": {
        displayName: "Min.",
        relative: {
          0: "in dieser Minute"
        },
        relativeTime: {
          future: {
            one: "in {0} Min.",
            other: "in {0} Min."
          },
          past: {
            one: "vor {0} Min.",
            other: "vor {0} Min."
          }
        }
      },
      second: {
        displayName: "Sekunde",
        relative: {
          0: "jetzt"
        },
        relativeTime: {
          future: {
            one: "in {0} Sekunde",
            other: "in {0} Sekunden"
          },
          past: {
            one: "vor {0} Sekunde",
            other: "vor {0} Sekunden"
          }
        }
      },
      "second-short": {
        displayName: "Sek.",
        relative: {
          0: "jetzt"
        },
        relativeTime: {
          future: {
            one: "in {0} Sek.",
            other: "in {0} Sek."
          },
          past: {
            one: "vor {0} Sek.",
            other: "vor {0} Sek."
          }
        }
      }
    }
  }, {
    locale: "de-AT",
    parentLocale: "de"
  }, {
    locale: "de-BE",
    parentLocale: "de"
  }, {
    locale: "de-CH",
    parentLocale: "de"
  }, {
    locale: "de-IT",
    parentLocale: "de"
  }, {
    locale: "de-LI",
    parentLocale: "de"
  }, {
    locale: "de-LU",
    parentLocale: "de"
  }];
});

/***/ }),

/***/ "eaoh":
/***/ (function(module, exports) {

module.exports = function (it) {
  if (typeof it != 'function') throw TypeError(it + ' is not a function!');
  return it;
};

/***/ }),

/***/ "ebwN":
/***/ (function(module, exports, __webpack_require__) {

var getNative = __webpack_require__("Cwc5"),
    root = __webpack_require__("Kz5y");
/* Built-in method references that are verified to be native. */


var Map = getNative(root, 'Map');
module.exports = Map;

/***/ }),

/***/ "ehAg":
/***/ (function(module, exports, __webpack_require__) {

var bn = __webpack_require__("OZ/i");

var brorand = __webpack_require__("/ayr");

function MillerRabin(rand) {
  this.rand = rand || new brorand.Rand();
}

module.exports = MillerRabin;

MillerRabin.create = function create(rand) {
  return new MillerRabin(rand);
};

MillerRabin.prototype._randbelow = function _randbelow(n) {
  var len = n.bitLength();
  var min_bytes = Math.ceil(len / 8); // Generage random bytes until a number less than n is found.
  // This ensures that 0..n-1 have an equal probability of being selected.

  do var a = new bn(this.rand.generate(min_bytes)); while (a.cmp(n) >= 0);

  return a;
};

MillerRabin.prototype._randrange = function _randrange(start, stop) {
  // Generate a random number greater than or equal to start and less than stop.
  var size = stop.sub(start);
  return start.add(this._randbelow(size));
};

MillerRabin.prototype.test = function test(n, k, cb) {
  var len = n.bitLength();
  var red = bn.mont(n);
  var rone = new bn(1).toRed(red);
  if (!k) k = Math.max(1, len / 48 | 0); // Find d and s, (n - 1) = (2 ^ s) * d;

  var n1 = n.subn(1);

  for (var s = 0; !n1.testn(s); s++) {}

  var d = n.shrn(s);
  var rn1 = n1.toRed(red);
  var prime = true;

  for (; k > 0; k--) {
    var a = this._randrange(new bn(2), n1);

    if (cb) cb(a);
    var x = a.toRed(red).redPow(d);
    if (x.cmp(rone) === 0 || x.cmp(rn1) === 0) continue;

    for (var i = 1; i < s; i++) {
      x = x.redSqr();
      if (x.cmp(rone) === 0) return false;
      if (x.cmp(rn1) === 0) break;
    }

    if (i === s) return false;
  }

  return prime;
};

MillerRabin.prototype.getDivisor = function getDivisor(n, k) {
  var len = n.bitLength();
  var red = bn.mont(n);
  var rone = new bn(1).toRed(red);
  if (!k) k = Math.max(1, len / 48 | 0); // Find d and s, (n - 1) = (2 ^ s) * d;

  var n1 = n.subn(1);

  for (var s = 0; !n1.testn(s); s++) {}

  var d = n.shrn(s);
  var rn1 = n1.toRed(red);

  for (; k > 0; k--) {
    var a = this._randrange(new bn(2), n1);

    var g = n.gcd(a);
    if (g.cmpn(1) !== 0) return g;
    var x = a.toRed(red).redPow(d);
    if (x.cmp(rone) === 0 || x.cmp(rn1) === 0) continue;

    for (var i = 1; i < s; i++) {
      x = x.redSqr();
      if (x.cmp(rone) === 0) return x.fromRed().subn(1).gcd(n);
      if (x.cmp(rn1) === 0) break;
    }

    if (i === s) {
      x = x.redSqr();
      return x.fromRed().subn(1).gcd(n);
    }
  }

  return false;
};

/***/ }),

/***/ "ekgI":
/***/ (function(module, exports, __webpack_require__) {

var nativeCreate = __webpack_require__("YESw");
/** Used for built-in method references. */


var objectProto = Object.prototype;
/** Used to check objects for own properties. */

var hasOwnProperty = objectProto.hasOwnProperty;
/**
 * Checks if a hash value for `key` exists.
 *
 * @private
 * @name has
 * @memberOf Hash
 * @param {string} key The key of the entry to check.
 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
 */

function hashHas(key) {
  var data = this.__data__;
  return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);
}

module.exports = hashHas;

/***/ }),

/***/ "eks+":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXPORTS
__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ INGEST_API_KEY; });
__webpack_require__.d(__webpack_exports__, "b", function() { return /* binding */ initCDOStores; });

// EXTERNAL MODULE: ./node_modules/@ccx-public/acpl-model-mobx/src/ACPLUtils.ts + 4 modules
var ACPLUtils = __webpack_require__("9Hzb");

// EXTERNAL MODULE: ./node_modules/@ccx-public/acpl-model-uxp-types/src/index.ts
var src = __webpack_require__("XQlG");

// EXTERNAL MODULE: ./node_modules/@ccx-public/shared-asset-model-js/dist/mjs/src/index.js
var mjs_src = __webpack_require__("m4Z2");

// EXTERNAL MODULE: ./node_modules/@ccx-public/ccx-ingest/index.js
var ccx_ingest = __webpack_require__("j6Ri");

// EXTERNAL MODULE: ./node_modules/@ccx/acp-fetch/dist/index.js
var dist = __webpack_require__("iMIL");

// EXTERNAL MODULE: ./node_modules/@ccx/acp-fetch/dist/src/utils/constants.js
var constants = __webpack_require__("uBoz");

// EXTERNAL MODULE: ./node_modules/flat/index.js
var flat = __webpack_require__("EUkQ");

// EXTERNAL MODULE: ./node_modules/lodash.merge/index.js
var lodash_merge = __webpack_require__("2oH+");
var lodash_merge_default = /*#__PURE__*/__webpack_require__.n(lodash_merge);

// EXTERNAL MODULE: ./node_modules/mobx/lib/mobx.module.js
var mobx_module = __webpack_require__("2vnA");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/stores/AssetSyncStateStore.ts
var AssetSyncStateStore = __webpack_require__("bFaP");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/stores/CDOStore.ts
var CDOStore = __webpack_require__("+Hsl");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/stores/DocumentStore.ts
var DocumentStore = __webpack_require__("xjsA");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/stores/RecentStore.ts
var RecentStore = __webpack_require__("5sgQ");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/metrics.ts
var metrics = __webpack_require__("jaHz");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/version.js
var version = __webpack_require__("gtay");
var version_default = /*#__PURE__*/__webpack_require__.n(version);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/constants.ts
var utils_constants = __webpack_require__("a375");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/i18n.ts
var i18n = __webpack_require__("oSp+");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/Logger.ts
var Logger = __webpack_require__("lmMR");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/platform.ts
var platform = __webpack_require__("acin");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/sleep.ts
var sleep = __webpack_require__("4CRX");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/storage.ts
var storage = __webpack_require__("OB0k");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/stores/QuotaStore.ts
var QuotaStore = __webpack_require__("8A/5");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/CDOApi.ts
var CDOApi = __webpack_require__("noa1");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/stores/AssetModel/SAMAssetModel.ts + 2 modules
var SAMAssetModel = __webpack_require__("4Cys");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/stores/SAMSyncingAssets.ts
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
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;
};
var __metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};





class SAMSyncingAssets_SAMSyncingAssets {
    constructor(docStore, assetContext, onAssetSyncEvent = undefined, onSyncProgressEvent = undefined) {
        this.docStore = docStore;
        this.onAssetSyncEvent = onAssetSyncEvent;
        this.onSyncProgressEvent = onSyncProgressEvent;
        this.logger = new Logger["a" /* Logger */](this.constructor.name);
        this.syncingSource = assetContext.syncingSource;
        this.init();
    }
    get syncingAssets() {
        return this.syncingSource
            .getList(src["a" /* ACPLModel */].OrderDirection.Descending, src["a" /* ACPLModel */].OrderField.Modified)
            .items.map(asset => SAMAssetModel["a" /* default */].fromSamAsset(asset));
    }
    async init() {
        await this.docStore.waitForInitialization('SAMSyncingAssets');
        const getSyncEventPayload = (asset, syncStatus) => ({
            assetRef: {
                cloudID: asset.cloudUri,
                localID: asset.localUri,
                path: asset.path,
                displayName: asset.title,
            },
            syncStatus,
            cloudAssetId: asset.cloudUri,
        });
        const sendAssetSyncEvent = (asset, syncStatus, error) => {
            var _a;
            this.logger.debug('onAssetSyncEvent', asset, AssetSyncStateStore["b" /* SyncStatus */][syncStatus]);
            (_a = this.onAssetSyncEvent) === null || _a === void 0 ? void 0 : _a.call(this, getSyncEventPayload(asset, syncStatus), error);
        };
        const sendSyncProgressEvent = (asset) => {
            var _a;
            const transferStatus = asset.downloadStatus || asset.uploadStatus;
            const transferDirection = asset.downloadStatus
                ? AssetSyncStateStore["a" /* SyncDirection */].DOWNLOAD
                : AssetSyncStateStore["a" /* SyncDirection */].UPLOAD;
            this.logger.debug('onSyncProgressEvent', asset, AssetSyncStateStore["b" /* SyncStatus */][AssetSyncStateStore["b" /* SyncStatus */].syncing]);
            (_a = this.onSyncProgressEvent) === null || _a === void 0 ? void 0 : _a.call(this, {
                bytesTransferredEx: transferStatus === null || transferStatus === void 0 ? void 0 : transferStatus.bytesTransferred,
                bytesTotalEx: transferStatus === null || transferStatus === void 0 ? void 0 : transferStatus.bytesTotal,
                transferDirection,
                ...getSyncEventPayload(asset, AssetSyncStateStore["b" /* SyncStatus */].syncing),
            });
        };
        let prevSyncingAssets = [];
        Object(mobx_module["B" /* reaction */])(() => this.syncingAssets, syncingAssets => {
            this.logger.debug('total syncing assets', syncingAssets);
            const newlySyncing = syncingAssets.filter(asset => !prevSyncingAssets.find(a => a.id === asset.id));
            const doneSyncing = prevSyncingAssets.filter(asset => !syncingAssets.find(a => a.id === asset.id));
            const stillSyncing = prevSyncingAssets.filter(asset => !doneSyncing.find(a => a.id === asset.id));
            this.logger.debug('newly syncing assets', newlySyncing);
            this.logger.debug('done syncing assets', doneSyncing);
            this.logger.debug('still syncing assets', stillSyncing);
            newlySyncing.forEach(asset => {
                sendAssetSyncEvent(asset, AssetSyncStateStore["b" /* SyncStatus */].syncing);
                // watch for changes to update bytes transferred UI
                Object(mobx_module["k" /* autorun */])(() => sendSyncProgressEvent(asset));
                // watch for sync errors
                Object(mobx_module["k" /* autorun */])(() => {
                    if ((asset.downloadStatus && asset.downloadStatus.hadError) ||
                        (asset.uploadStatus && asset.uploadStatus.hadError)) {
                        const error = (asset.downloadStatus || asset.uploadStatus).errorType;
                        sendAssetSyncEvent(asset, AssetSyncStateStore["b" /* SyncStatus */].error, error);
                    }
                });
            });
            doneSyncing.forEach(asset => sendAssetSyncEvent(asset, AssetSyncStateStore["b" /* SyncStatus */].complete));
            // update prevSyncingAssets to match new total set (remove doneSyncing)
            // maintain references to existing objects in memory
            prevSyncingAssets = [...newlySyncing, ...stillSyncing];
        });
    }
}
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Array),
    __metadata("design:paramtypes", [])
], SAMSyncingAssets_SAMSyncingAssets.prototype, "syncingAssets", null);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/CDOMetrics.ts
var CDOMetrics = __webpack_require__("0zmA");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/stores/AssetSelectionStore.ts
var AssetSelectionStore = __webpack_require__("54FZ");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/stores/CDCGlobalStore.ts + 14 modules
var CDCGlobalStore = __webpack_require__("Z4Cq");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/init-cdo-stores.ts














// @ts-ignore -- cannot provide type since it is auto-generated













const INGEST_API_KEY = 'cdo-service';
const logger = new Logger["a" /* Logger */]('initCDOStores');
const PERFORMANCE_MARK_NAME = 'cdo:init-cdo-stores';
const PERFORMANCE_MARK_NAME_APP_READY = 'cdo:init-cdo-stores-waitForApplicationReady';
const PERFORMANCE_MARK_NAME_INIT_SAMASSETCONTEXT = 'cdo:init-cdo-stores-initSAMAssetContext';
/**
 * docStore.isOnline assumes offline mode until initialization completes, which is
 * incorrect while initialization is underway. To prevent that, get the online
 * status from `navigator.onLine` (works in UXP and browsers/CEF) when not initialized.
 */
const isOffline = (docStore) => docStore.isClientInitialized ? !docStore.isOnline : !navigator.onLine;
function initCDOStores({ hostProductData, imsData, mode, cloudURLProtocol, suspendRefresh = false, analyticsData, fileCapabilities, cardSize, removeAssetOnSyncComplete = true, onAssetChange, quotaRefreshEnabled, selectionBehavior, 
// eslint-disable-next-line camelcase
__acplModelInstance_forTestingOnly, }) {
    var _a, _b, _c;
    const featureFlags = hostProductData.featureFlags || {};
    // We don't want data on the CloudSyncStatus widget at this time, just the main init,
    // so use quotaRefreshEnabled to determine the difference
    const capturePerformanceData = !quotaRefreshEnabled && featureFlags.enablePerformanceMetrics;
    if (capturePerformanceData) {
        // we only care about the main init, not the quota init right now
        (_a = window === null || window === void 0 ? void 0 : window.performance) === null || _a === void 0 ? void 0 : _a.measure('cdo:init-cdo-stores-invocation');
        (_b = window === null || window === void 0 ? void 0 : window.performance) === null || _b === void 0 ? void 0 : _b.mark(PERFORMANCE_MARK_NAME);
    }
    // if not the initCDOStores call from CDCGlobalStore, then try to init CDCGlobalStore
    if (!suspendRefresh && removeAssetOnSyncComplete) {
        Object(CDCGlobalStore["a" /* getCDCGlobalStore */])({
            imsData,
            hostProductData,
        });
    }
    const { cdoLogLevel } = hostProductData;
    if (cdoLogLevel !== undefined) {
        Logger["a" /* Logger */].setLogLevel(cdoLogLevel);
    }
    const normalizedLocale = i18n["a" /* default */].normalizeLocale(hostProductData.uiLocale);
    const isUsingACPL = featureFlags[constants["FEATURE_FLAGS"].disableACPL] !== true;
    // By default, use the global ACPLModel instance, but allow override for unit tests and
    // CDO Harness.
    // eslint-disable-next-line camelcase
    const acplModelInstance = __acplModelInstance_forTestingOnly || src["a" /* ACPLModel */];
    const ingestController = new ccx_ingest["ccxController"]({
        allowNoToken: true,
        apiKey: INGEST_API_KEY,
        env: imsData.environment,
        data: getIngestProviderData(imsData, normalizedLocale, analyticsData, hostProductData),
        maxQueuedEvents: utils_constants["l" /* INGEST_MAX_QUEUED_EVENTS */],
        debounce: utils_constants["k" /* INGEST_DEBOUNCE_VALUE */],
        product: version_default.a,
        project: utils_constants["m" /* INGEST_PROJECT_VALUE */],
    });
    if (hostProductData.allowedToSendAnalyticsEvents !== undefined) {
        ingestController._ingestApi.enable(hostProductData.allowedToSendAnalyticsEvents);
    }
    const view = Object(storage["getStorage"])(storage["LOCAL_STORAGE_KEY"].VIEW_STATE) || utils_constants["v" /* ViewMode */].Grid;
    const cdoMetrics = new CDOMetrics["a" /* default */](ingestController, hostProductData);
    // set-up application store
    const cdoStore = new CDOStore["a" /* CDOStore */]({
        hostProductData,
        imsData,
        mode,
        view,
        docStore: new DocumentStore["b" /* DocumentStore */]({
            cloudURLProtocol,
            locale: normalizedLocale,
            enableCloudFolders: featureFlags.enableCloudDocFolders,
            enableAssetRef: featureFlags.enableAssetRef,
            enableSAM: featureFlags.enableSAM,
            enableActionUndo: featureFlags.enableActionUndo || featureFlags.useCCDmode,
            alwaysDisableToasts: mode !== utils_constants["p" /* ModeType */].organizer,
            refreshOnViewChange: featureFlags.refreshOnViewChange,
            // @ts-ignore -- isUsingACPL is private but needs configuring here
            isUsingACPL,
            enablePerformanceMetrics: capturePerformanceData,
            cardSize,
        }),
    });
    cdoStore.setFileCapabilites(fileCapabilities);
    const { docStore } = cdoStore;
    cdoMetrics.setIsOffline(() => isOffline(docStore));
    cdoMetrics.setGetView(() => cdoStore.view);
    docStore.setCDOMetrics(cdoMetrics);
    const quotaStore = new QuotaStore["a" /* default */](docStore, cdoMetrics, quotaRefreshEnabled, imsData, (...args) => docStore.openToast(...args));
    docStore.setQuotaStore(quotaStore);
    quotaStore.fetch();
    const recentStore = new RecentStore["a" /* default */]({
        cloudURLProtocol,
        isUsingACPL,
        enableSAM: featureFlags.enableSAM,
    });
    const assetSyncStateStore = new AssetSyncStateStore["c" /* default */](removeAssetOnSyncComplete);
    assetSyncStateStore.subscribe('onAssetSyncComplete', 'quota-store', quotaStore.onAssetSyncComplete.bind(quotaStore));
    // TODO: DRY: have initCDOStores construct cdoMetrics rather than using CDOMetricProvider
    // and use cdoMetrics in getAnalyticsEventHandler
    // https://jira.corp.adobe.com/browse/CCXCD-4677
    const onAnalyticsEvent = getAnalyticsEventHandler(cdoStore, docStore, ingestController);
    createSamJSHostAssetContext(hostProductData, imsData, docStore);
    // use Shared Asset Model (SAM) if 'enableSAM' flag ON
    if (featureFlags.enableSAM) {
        if (featureFlags.useCCDmode && !featureFlags.useCCDAssetContext) {
            // TODO: remove this block once CDO no longer needs to create the SAM AssetContext for CCD
            logger.warn('CDO is creating SAM AssetContext instead of getting it from ACPLModel.');
            createSAMAssetContext(hostProductData, imsData, onAnalyticsEvent, normalizedLocale, docStore)
                .then(assetContextCreated => {
                logger.log('CDO created AssetContext');
                docStore.initSAMAssetContext(assetContextCreated);
                recentStore.initSAMAssetContext(assetContextCreated);
                quotaStore.initSAMAssetContext(assetContextCreated);
                // Do not delete. This isn't referenced anywhere, but internally uses mobx to react to changes
                const samSyncingAssets = new SAMSyncingAssets_SAMSyncingAssets(docStore, assetContextCreated, (...args) => assetSyncStateStore.onAssetSyncEvent(...args), payload => assetSyncStateStore.onSyncProgressEvent(payload));
                docStore.initClients(hostProductData, imsData);
            })
                .catch((err) => {
                logger.error('createCCAssetContext failed', err);
                const cosyNotCompatibleCodes = [
                    src["a" /* ACPLModel */].ACPLModelErrorCode.CoreSyncNotCompatible,
                    src["a" /* ACPLModel */].ACPLModelErrorCode.CoreSyncBinaryNotFound,
                    src["a" /* ACPLModel */].ACPLModelErrorCode.CoreSyncNotInstalled,
                ];
                docStore.setSAMInitFailed(`(${err.code}) ${err.message}`);
                if (cosyNotCompatibleCodes.includes(err.code)) {
                    docStore.onNotificationStatusChange(dist["NotificationStatus"].CORESYNC_REACHABLE_NOT_COMPATIBLE);
                }
            });
        }
        else {
            // CDO should show a spinner while waiting for AssetContext to arrive for some fixed
            // amount of time. Afterwards, it should show an error message, while still waiting
            // for AssetContext in the background. This way, the spinner is shown for a reasonable
            // amount of time, and CDO can still recover when AssetContext arrives late.
            waitForSAMAssetContext(docStore, recentStore, quotaStore, assetSyncStateStore, acplModelInstance, capturePerformanceData).then(() => {
                docStore.initClients(hostProductData, imsData);
            });
        }
    }
    else {
        // CloudDocumentsClient needs DocumentStore to exist first, so it can bind listeners to the
        // onNotificationStatusChange and onAssetChange callbacks.
        logger.log('Constructing CloudDocumentsClient since enableSAM feature flag is off');
        const cloudDocumentsClient = new dist["CloudDocumentsClient"]({
            hostProductData,
            imsData,
            onNotificationStatusChange: (status) => {
                docStore.onNotificationStatusChange(status);
                quotaStore.onNotificationStatusChange(status);
            },
            onAssetChange: (state) => {
                docStore.onAssetChange(state);
                quotaStore.onAssetChange(state);
                // sync store only needs these notifications when offline
                isOffline(docStore) && assetSyncStateStore.onAssetChange(state);
                onAssetChange && onAssetChange(state);
            },
            onAssetSyncEvent: (syncPayload) => {
                assetSyncStateStore.onAssetSyncEvent(syncPayload);
                // Refresh SWY thumbnails when SWY document is modified
                const { cloudAssetId, syncStatus } = syncPayload;
                if (docStore.sharedWithYouCollection && syncStatus === AssetSyncStateStore["b" /* SyncStatus */].complete) {
                    if (docStore.sharedWithYouCollection.findByUrn(cloudAssetId)) {
                        logger.debug('Sync complete for SWY doc', cloudAssetId);
                        docStore.sharedWithYouCollection.setIsDirty();
                        if (docStore.activeCollection === docStore.sharedWithYouCollection) {
                            docStore.refreshActiveCollections();
                        }
                    }
                }
            },
            onSyncProgressEvent: assetSyncStateStore.onSyncProgressEvent,
            onAnalyticsEvent,
        });
        docStore.initClients(hostProductData, imsData, cloudDocumentsClient);
        quotaStore.getStorageMetadata = async () => {
            const { usedCloudQuota, maxCloudQuota } = await cloudDocumentsClient.getStorageMetadata();
            // map fields to SAM fields
            return {
                used: usedCloudQuota,
                total: maxCloudQuota,
            };
        };
        recentStore.initClients(cloudDocumentsClient);
    }
    docStore.setSuspendRefresh(suspendRefresh);
    docStore.setOnAnalyticsEvent(onAnalyticsEvent);
    const selectionStore = new AssetSelectionStore["a" /* default */]();
    selectionStore.setSelectionBehavior(selectionBehavior);
    const api = new CDOApi["a" /* CDOApi */](docStore, selectionStore);
    if (capturePerformanceData) {
        (_c = window === null || window === void 0 ? void 0 : window.performance) === null || _c === void 0 ? void 0 : _c.measure('cdo:init-cdo-stores', PERFORMANCE_MARK_NAME);
    }
    return {
        cdoStore,
        docStore,
        assetSyncStateStore,
        recentStore,
        featureFlags,
        locale: normalizedLocale,
        ingestController,
        quotaStore,
        selectionStore,
        cdoMetrics,
        api,
        waitForSAMAssetContext: async () => {
            const samReadyIfNeeded = () => !featureFlags.enableSAM ||
                (featureFlags.enableSAM &&
                    (Boolean(docStore['SAMAssetContext']) || docStore.didSAMInitFail));
            await Object(mobx_module["I" /* when */])(() => samReadyIfNeeded());
            return docStore['SAMAssetContext'];
        },
    };
}
/**
 * Get the base data set for ingest events
 * @return {object} base data set for ingest event
 */
function getIngestProviderData(imsData, locale, analyticsData = {}, hostProductData) {
    const userId = imsData.fetchUserId();
    const defaultAnalyticsData = {
        custom: {
            country_code: imsData.countryCode,
            user_type: imsData.accountType,
        },
        env: {
            fw: {
                version: version_default.a,
                name: 'CDO',
            },
            svc: {
                name: 'CDO',
                version: version_default.a,
            },
        },
        event: {
            category: 'DESKTOP',
            context_guid: hostProductData.sessionGuid,
            language: locale,
            user_guid: userId,
            user_agent: navigator.userAgent,
            build: hostProductData.productBuildNumber,
        },
        source: {
            client_id: hostProductData.productId,
            name: hostProductData.productName,
            platform: hostProductData.platform,
            // TODO: using platformOsVersion for backward compatibility until all clients
            //       provide it.
            os_version: hostProductData.platformVersion || Object(platform["d" /* platformOsVersion */])(),
            version: hostProductData.productVersion,
        },
        user: {
            service_code: imsData.serviceCode,
            service_level: imsData.serviceLevel,
        },
    };
    return lodash_merge_default()(defaultAnalyticsData, analyticsData);
}
function getAnalyticsEventHandler(cdoStore, docStore, ingestController) {
    return (eventData, useHostProject) => {
        let hostProductData;
        if (useHostProject && cdoStore) {
            hostProductData = cdoStore.hostProductData;
        }
        metrics["i" /* default */].fireEvent(ingestController, eventData, isOffline(docStore), hostProductData);
    };
}
async function waitForSAMAssetContext(docStore, recentStore, quotaStore, assetSyncStateStore, acplModelInstance, capturePerformanceData) {
    var _a, _b, _c, _d;
    let hostAssetContext;
    // CDO shows a spinner for 10 sec, then shows error empty view
    // eslint-disable-next-line @typescript-eslint/no-magic-numbers
    Object(sleep["a" /* default */])(10 * 1000).then(() => {
        if (!hostAssetContext) {
            docStore.setSAMInitFailed('Timed out');
        }
    });
    try {
        let unwrapped = acplModelInstance.applicationAssetContext;
        if (unwrapped) {
            logger.log('ACPLModel.applicationAssetContext is already present');
        }
        else {
            logger.log('ACPLModel.waitForApplicationContextReady()');
            if (capturePerformanceData) {
                (_a = window === null || window === void 0 ? void 0 : window.performance) === null || _a === void 0 ? void 0 : _a.mark(PERFORMANCE_MARK_NAME_APP_READY);
            }
            unwrapped = await acplModelInstance.waitForApplicationContextReady();
            if (capturePerformanceData) {
                (_b = window === null || window === void 0 ? void 0 : window.performance) === null || _b === void 0 ? void 0 : _b.measure('cdo:init-cdo-stores waitForApplicationContextReady', PERFORMANCE_MARK_NAME_APP_READY);
            }
            logger.log('...received response from waitForApplicationContextReady');
        }
        if (capturePerformanceData) {
            (_c = window === null || window === void 0 ? void 0 : window.performance) === null || _c === void 0 ? void 0 : _c.mark(PERFORMANCE_MARK_NAME_INIT_SAMASSETCONTEXT);
        }
        hostAssetContext = Object(ACPLUtils["b" /* wrapAssetContext */])(unwrapped);
        // NOTE: docStore.initSAMAssetContext will clear didSAMInitFail, allowing it to
        // recover even after showing the "something went wrong" error.
        docStore.initSAMAssetContext(hostAssetContext);
        recentStore.initSAMAssetContext(hostAssetContext);
        quotaStore.initSAMAssetContext(hostAssetContext);
        // Do not delete. This isn't referenced anywhere, but internally uses mobx to react to changes
        const samSyncingAssets = new SAMSyncingAssets_SAMSyncingAssets(docStore, hostAssetContext, (...args) => assetSyncStateStore.onAssetSyncEvent(...args), payload => assetSyncStateStore.onSyncProgressEvent(payload));
        if (capturePerformanceData) {
            (_d = window === null || window === void 0 ? void 0 : window.performance) === null || _d === void 0 ? void 0 : _d.measure('cdo:init-cdo-stores initSAMAssetContext', PERFORMANCE_MARK_NAME_INIT_SAMASSETCONTEXT);
        }
    }
    catch (e) {
        // e may be ACPLModelErrorCode
        logger.error('waitForApplicationContextReady() rejected:', e);
        docStore.setSAMInitFailed(JSON.stringify(e));
    }
}
async function createSAMAssetContext(hostProductData, imsData, onAnalyticsEvent, locale, docStore) {
    const { Stage, Production } = src["a" /* ACPLModel */].Environment;
    const environment = imsData.environment === 'stage' ? Stage : Production;
    const logLevelMap = new Map([
        [utils_constants["r" /* SAMLogLevel */].Off, src["a" /* ACPLModel */].AcplLogLevel.Off],
        [utils_constants["r" /* SAMLogLevel */].Medium, src["a" /* ACPLModel */].AcplLogLevel.Warn],
        [utils_constants["r" /* SAMLogLevel */].High, src["a" /* ACPLModel */].AcplLogLevel.Err],
    ]);
    const vulcanId = hostProductData.vulcanId || hostProductData.dcxId;
    const hostConfig = new src["a" /* ACPLModel */].HostConfig(hostProductData.apiKey, // service API key
    hostProductData.dcxId, // dcx app ID
    vulcanId, // vulcan IPC app ID
    hostProductData.productVersion, environment, {
        acplLogLevel: logLevelMap.get(hostProductData.samLogLevel || utils_constants["r" /* SAMLogLevel */].Off),
    }, 
    // TODO: until SAM supports changing filters on demand, do filtering client-side
    // (see FolderCollection.ts)
    [], async (callback) => {
        try {
            const prevToken = await imsData.fetchToken();
            const newToken = await imsData.fetchToken(prevToken);
            hostConfig.accessToken = newToken;
            callback(true);
        }
        catch (e) {
            logger.error('cannot refresh token for SAM', e);
            callback(false);
        }
    });
    const { token, userId } = await waitToInitSAM(imsData, () => !isOffline(docStore));
    hostConfig.accessToken = token;
    hostConfig.adobeID = userId;
    // TODO: get real displayName once hosts provide it
    hostConfig.displayName = imsData.fetchUserEmail();
    hostConfig.email = imsData.fetchUserEmail();
    if (hostProductData.allowedToSendAnalyticsEvents !== undefined) {
        hostConfig.allowedToSendAnalyticsEvents = hostProductData.allowedToSendAnalyticsEvents;
        hostConfig.analyticsLogCallback = (eventType, eventData) => {
            const samAnalyticsData = Object(flat["unflatten"])({ ...eventData, 'event.type': eventType });
            onAnalyticsEvent(samAnalyticsData, true);
        };
    }
    const messageTable = i18n["a" /* default */].getStringsForLocale(locale);
    hostConfig.copyNameFormat = messageTable['sam.copyNameFormat'];
    hostConfig.conflictNameFormat = messageTable['sam.copyNameFormat'];
    return Object(ACPLUtils["b" /* wrapAssetContext */])(await hostConfig.createCCAssetContext());
}
async function createSamJSHostAssetContext(hostProductData, imsData, docStore) {
    const { token, userId } = await waitToInitSAM(imsData, () => !isOffline(docStore));
    const env = imsData.environment === 'stage' ? mjs_src["i" /* Env */].Stage : mjs_src["i" /* Env */].Production;
    const clientId = hostProductData.clientId || hostProductData.apiKey;
    const assetModel = await Object(mjs_src["z" /* createSharedAssetModel */])({
        ACCESS_TOKEN: token,
        CLIENT_ID: clientId,
        USER_ID: userId,
        ENVIRONMENT: env,
        HOST_PRODUCT_DATA: {
            PRODUCT_ID: clientId,
            PRODUCT_LOCATION: 'CDO',
        },
    }, {
        refreshAccessToken: async (failedToken) => imsData.fetchToken(failedToken),
    });
    docStore.initSAMJSHostAssetContext(assetModel.hostAssetContext);
}
async function waitToInitSAM(imsData, isOnline, 
// eslint-disable-next-line @typescript-eslint/no-magic-numbers
retryDelay = 300) {
    /*
    Hosts have different ways of getting and updating the auth token and profile data, and may not
    guarantee availability of this data when requested below. Since SAM requires this data up front,
    the code below waits for the data to be available before initialization.

    TODO: all host apps should provide profile data in a standard way so the asset context can be
          managed like it is in the SAM sample app.
          (modules/uxp/acpl-demo-uxp/src/js/app/data/AppController.ts autorun in constructor)
    */
    // TODO: add timeout logic
    let id;
    let token;
    do {
        id = imsData.fetchUserId();
        token = await imsData.fetchToken();
        await Object(sleep["a" /* default */])(retryDelay);
    } while ((isOnline() && !token) || // token is only expected when online
        !id);
    return {
        token,
        userId: id,
    };
}


/***/ }),

/***/ "euTv":
/***/ (function(module, exports) {

/* eslint-disable max-len */
module.exports = {
  'confirmationDialog.dontShowAgain': 'Non mostrare più',
  'confirmationDialog.confirm.default': 'Continua',
  'confirmationDialog.cancel.default': 'Annulla',
  'confirmationDialog.learnMore': 'Ulteriori informazioni',
  'toast.warning.place': 'Non è ancora possibile posizionare documenti cloud collegati. Continua a incorporare.',
  'toast.warning.placeLinkOrEmbed': "Le risorse posizionate ora sono collegate all'originale per impostazione predefinita. Ciò significa che se le modifichi in un punto, le modifiche si rifletteranno ovunque.",
  'toast.warning.saveAs.invalidFormat': 'Non puoi salvare file {genericFormat} qui. Il tuo file verrà salvato come {adobeFormat}.',
  'pickerView.recent': 'Recenti',
  'pickerView.cloud_docs': 'I tuoi file',
  'pickerView.shared_with_you': 'Condiviso con te',
  'pickerView.projects': 'Progetti',
  'pickerView.files': 'File',
  'pickerView.computer': 'Il tuo computer...',
  'pickerView.saveAsInput': 'Salva con nome',
  'pickerView.exportInput': 'Esporta come',
  'pickerView.sketch_library': 'Converti libreria di Sketch...',
  'pickerView.error.saveAsOrExport.default': 'Nome file non valido.',
  'pickerView.error.saveAsOrExport.invalidName': 'Il nome contiene caratteri non validi.',
  'pickerView.error.saveAsOrExport.invalidEnd': 'Il nome non può terminare con “.” o uno spazio vuoto.',
  'pickerView.error.saveAsOrExport.invalidChar': 'Il nome non può contenere i caratteri seguenti: {characters}',
  'pickerView.error.saveAsOrExport.charRestriction': 'I nomi non possono contenere più di 200 caratteri.',
  'pickerView.error.saveAsOrExport.duplicateName': 'Un documento cloud con questo nome è già presente qui.',
  'pickerView.error.addALibrary.permission': 'Non disponi delle autorizzazioni per aggiungere questa libreria',
  'pickerViewFooter.button.add': 'Aggiungi',
  'pickerViewFooter.button.cancel': 'Annulla',
  'pickerViewFooter.button.copy': 'Copia qui',
  'pickerViewFooter.button.move': 'Sposta qui',
  'pickerViewFooter.button.moveToProject': 'Sposta qui',
  'pickerViewFooter.button.copyToProject': 'Copia qui',
  'pickerViewFooter.button.choose': 'Scegli',
  'pickerViewFooter.button.save': 'Salva',
  'pickerViewFooter.button.switchToOSPicker': 'Nel tuo computer',
  'pickerViewFooter.button.save.offline': 'Connessione a Internet richiesta',
  'pickerViewFooter.button.saveAsCopy': 'Salva',
  'pickerViewFooter.button.export': 'Esporta',
  'pickerViewFooter.button.placeLinkOrEmbed': 'Inserisci',
  'pickerViewFooter.button.import': 'Importa',
  'pickerViewFooter.checkbox.placeLink': 'Collegato',
  'pickerViewFooter.tooltip.placeLink': 'Puoi inserire questo elemento solo come una risorsa collegata.',
  'pickerViewFooter.tooltip.placeEmbed': 'Puoi inserire questo elemento solo come incorporato.',
  'pickerViewFooter.saveAs.format.label': 'Formato',
  'pickerViewFooter.button.selectProject': 'Salva',
  'onboardingCdp.title': 'Salvando il file come documento cloud, potrete fare molto di più',
  'onboardingCdp.tooltip': 'Salvando il file sul computer, non potrai utilizzare le funzioni cloud.',
  'onboardingCdp.tooltip.link': 'Altre info',
  'onboardingCdp.table.header.saveToCloud': 'Creative Cloud',
  'onboardingCdp.table.header.saveToLocal': 'Nel tuo computer',
  'onboardingCdp.button.saveToCloud': 'Salva in Creative Cloud',
  'onboardingCdp.feature.offline': 'Accesso offline',
  'onboardingCdp.feature.syncing': 'Sincronizzazione in cloud di tutti i dispositivi',
  'onboardingCdp.feature.autosave': 'Salvataggio automatico delle modifiche',
  'onboardingCdp.feature.versionHistory': 'Cronologia versioni',
  'onboardingCdp.feature.inviteToEdit': 'Invito a modificare',
  'onboardingCdp.button.saveToLocal': 'Salva nel tuo computer',
  'onboardingCdp.checkbox.doNotShowAgain': 'Non mostrare più',
  'uap.title.place': 'Inserisci da Creative Cloud',
  'uap.title.import': 'Importa da Creative Cloud',
  'uap.title.placeLinkOrEmbed': 'Inserisci da Creative Cloud',
  'uap.title.linkAssets': 'Collega da Creative Cloud',
  'uap.title.open': 'Apri da Creative Cloud',
  'uap.title.relink': 'Collega da Creative Cloud',
  'uap.title.saveAs': 'Salva in Creative Cloud',
  'uap.title.saveAsCopy': 'Salva in Creative Cloud',
  'uap.title.saveToFolder': 'Salva in Creative Cloud',
  'uap.title.export': 'Esporta in Creative Cloud',
  'uap.title.copy': 'Copia in Creative Cloud',
  'uap.title.move': 'Sposta in Creative Cloud',
  'uap.title.moveToProject': 'Sposta in Creative Cloud',
  'uap.title.copyToProject': 'Copia in Creative Cloud',
  'uap.title.reference': 'Aggiungi a Creative Cloud',
  'uap.title.selectProject': 'Salva in Creative Cloud',
  'move.toSpace.confirm.title': 'La cronologia delle versioni verrà eliminata',
  'move.toSpace.confirm.message': "Lo spostamento di questo file comporta l'eliminazione della cronologia delle versioni. Se desideri conservare la cronologia delle versioni, creane una copia."
};

/***/ }),

/***/ "ewT/":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
// tslint:disable no-string-literal

var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {
  function adopt(value) {
    return value instanceof P ? value : new P(function (resolve) {
      resolve(value);
    });
  }

  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) : adopt(result.value).then(fulfilled, rejected);
    }

    step((generator = generator.apply(thisArg, _arguments || [])).next());
  });
};

var __generator = this && this.__generator || function (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
    };
  }
};

var __importDefault = this && this.__importDefault || function (mod) {
  return mod && mod.__esModule ? mod : {
    "default": mod
  };
};

Object.defineProperty(exports, "__esModule", {
  value: true
});

__webpack_require__("cnSC");

var AcplSourceMode_1 = __importDefault(__webpack_require__("v3Z9"));

var ACPFetch_1 = __importDefault(__webpack_require__("yVbG"));

var AcplSearchMode_1 = __importDefault(__webpack_require__("b0cz"));

var OpType_1 = __importDefault(__webpack_require__("WEkX"));

var SortByEnum_1 = __importDefault(__webpack_require__("hWyH"));

var SortOrderDirEnum_1 = __importDefault(__webpack_require__("v99S"));

var StorageSortByEnum_1 = __importDefault(__webpack_require__("hwY+"));

var IDocumentElement_1 = __webpack_require__("SwKo");

var constants_1 = __webpack_require__("uBoz");

var Utils_1 = __importDefault(__webpack_require__("CyGC"));

var ends_with_xd_sentinel_character_1 = __importDefault(__webpack_require__("LU1c"));

var uriTemplates = __webpack_require__("qPad"); // Flag to determine if singleton warning has been displayed


var instanceDeprecationWarning = false;
/**
 * Singleton client for working with Cloud Documents
 */

var CloudDocumentsClient =
/** @class */
function () {
  /**
   * CloudDocumentsClient supports two modes of operation: As a singleton, or multi-instance. As a singleton,
   * you must call `configure` before use, and always work with the `CloudDocumentsClient.instance` variable:
   *
   *      CloudDocumentsClient.instance.configure(...);       // only do this once
   *      CloudDocumentsClient.instance.getDocuments(...);
   *
   * The first use of  `CloudDocumentsClient.instance` will instantiate the singleton.
   * NOTE: singleton pattern will be deprecated in the future.
   *
   * For multi-instance, call the constructor with the same arguments passed to `configure`:
   *
   *      this.cloudDocumentsClient = new CloudDocumentsClient(...);
   *      this.cloudDocumentsClient.getDocuments(...);
   *
   * @param options
   */
  function CloudDocumentsClient(options) {
    var _this = this;

    this._disableACPL = false;
    this._enableAssetRef = false;
    /**
     * Used to filter out documents from processStorageResponse() & processCloudDocsResponse()
     */

    this.isDisplayableDocument = function (doc) {
      return !_this.isTeamDocument(doc) && !_this.isFork(doc);
    };
    /**
     * Removes Teams folders & documents within from listing results
     */


    this.isTeamDocument = function (doc) {
      return doc.path.includes("" + constants_1.TEAMS_FULL_PATH);
    };
    /**
     * Returns true if IDocumentElement is an ACP fork. These assets are used by ACP for resolving conflicts - They
     * aren't meant to be viewed by our users. This filtering occurs in ACPL. We have to filter forks for web requests.
     */


    this.isFork = function (doc) {
      return doc.derivation_type === 'fork';
    };

    if (options) {
      this.configure(options);
    }
  }
  /**
   * adds storage URI if its missing from the data
   * @param pathOrId {String} containing the asset path or ID
   * @return {String} containing the storage URI
   */


  CloudDocumentsClient.prototype._addStorageUriIfMissing = function (pathOrId) {
    var decodedPathOrId;
    var storageUrl = Utils_1.default.getStorageUrl(this._imsData.environment);

    try {
      decodedPathOrId = decodeURIComponent(pathOrId);
    } catch (e) {
      decodedPathOrId = pathOrId;
    }

    if (decodedPathOrId.indexOf(storageUrl) > -1) {
      return decodedPathOrId;
    } else if (decodedPathOrId.startsWith("urn:")) {
      return storageUrl + "/id/" + decodedPathOrId;
    }

    return storageUrl + "/" + decodedPathOrId;
  };
  /**
   * get a specific document from acp.local
   * @param pathOrId
   */


  CloudDocumentsClient.prototype._getDocumentLinks = function (pathOrId) {
    return __awaiter(this, void 0, void 0, function () {
      var _this = this;

      return __generator(this, function (_a) {
        return [2
        /*return*/
        , new Promise(function (resolve, reject) {
          return __awaiter(_this, void 0, void 0, function () {
            var pathUri, request, response, asset, error_1;
            return __generator(this, function (_a) {
              switch (_a.label) {
                case 0:
                  pathUri = this._addStorageUriIfMissing(pathOrId);
                  request = new Request(pathUri, {
                    method: 'HEAD',
                    headers: this.commonHeaders
                  });
                  _a.label = 1;

                case 1:
                  _a.trys.push([1, 4,, 5]);

                  return [4
                  /*yield*/
                  , this._acpFetch.acpFetch(request)];

                case 2:
                  response = _a.sent();
                  return [4
                  /*yield*/
                  , response.json()];

                case 3:
                  asset = _a.sent();
                  resolve(asset);
                  return [3
                  /*break*/
                  , 5];

                case 4:
                  error_1 = _a.sent();
                  console.warn("Failed to get document links " + pathOrId + ": " + error_1.statusMessage);
                  reject(error_1);
                  return [3
                  /*break*/
                  , 5];

                case 5:
                  return [2
                  /*return*/
                  ];
              }
            });
          });
        })];
      });
    });
  };
  /**
   * Detect if the operation is complete, and if not, monitor until complete.
   * @param response
   */


  CloudDocumentsClient.prototype.processOperationResponse = function (response, acpFetchAdditionalParams) {
    return __awaiter(this, void 0, void 0, function () {
      var assetOpJson;
      return __generator(this, function (_a) {
        switch (_a.label) {
          case 0:
            if (!(response.status === constants_1.HTTP_STATUS_ACCEPTED)) return [3
            /*break*/
            , 3];
            return [4
            /*yield*/
            , response.json()];

          case 1:
            assetOpJson = _a.sent();
            if (!assetOpJson.monitorLink) return [3
            /*break*/
            , 3];
            return [4
            /*yield*/
            , this.monitorOperation(assetOpJson.monitorLink, acpFetchAdditionalParams)];

          case 2:
            return [2
            /*return*/
            , _a.sent()];

          case 3:
            // Otherwise, assume the operation completed successfully
            return [2
            /*return*/
            , {}];
        }
      });
    });
  };
  /**
   * For asynchronous operations, monitor the operation until complete
   * @param monitorLink
   */


  CloudDocumentsClient.prototype.monitorOperation = function (monitorLink, acpFetchAdditionalParams) {
    return __awaiter(this, void 0, void 0, function () {
      var headers, request, response, json;
      return __generator(this, function (_a) {
        switch (_a.label) {
          case 0:
            headers = new Headers(this.commonHeaders);
            request = new Request(monitorLink, {
              headers: headers
            });
            return [4
            /*yield*/
            , this._acpFetch.acpFetch(request, undefined, acpFetchAdditionalParams)];

          case 1:
            response = _a.sent();
            if (!response.ok) return [3
            /*break*/
            , 6];
            return [4
            /*yield*/
            , response.json()];

          case 2:
            json = _a.sent();
            if (!json.monitorLink) return [3
            /*break*/
            , 5]; // Operation is not complete

            return [4
            /*yield*/
            , Utils_1.default.sleep(json.retryAfter)];

          case 3:
            // Operation is not complete
            _a.sent();

            return [4
            /*yield*/
            , this.monitorOperation(json.monitorLink, acpFetchAdditionalParams)];

          case 4:
            json = _a.sent();
            _a.label = 5;

          case 5:
            return [2
            /*return*/
            , json];

          case 6:
            // Operation ultimately failed, reject with the response
            throw response;
        }
      });
    });
  };
  /**
   * Create rendition href from template
   * @param template
   * @param options
   */


  CloudDocumentsClient.doRenditionTemplateSubstitution = function (template, options) {
    if (options === void 0) {
      options = {};
    }

    options.size = options.size !== undefined && options.size !== 'undefined' ? options.size : "" + constants_1.RENDITION_SIZE;
    options.page = options.page !== undefined && options.page !== 'undefined' ? options.page : '0'; // NOTE: Passing in "version=0" as a default does not work, because shared cloud tends to return blank images
    // for cloud documents when we specify version=0.

    var uriTemplate = new uriTemplates(template);
    return uriTemplate.fill(function (param) {
      return options[param];
    });
  };
  /**
   * Creates array of DocumentElements from cloud docs response
   * @param response
   * @param searchQuery
   */


  CloudDocumentsClient.prototype.processCloudDocsResponse = function (response, searchQuery) {
    return __awaiter(this, void 0, void 0, function () {
      var responseJson, responseItems, cloudDocList, nextPageAvailable, nextPageSearchQuery, currentIndex, nextPageOptions, result;

      var _this = this;

      return __generator(this, function (_a) {
        switch (_a.label) {
          case 0:
            return [4
            /*yield*/
            , response.json()];

          case 1:
            responseJson = _a.sent();
            responseItems = responseJson.items || [];
            cloudDocList = responseItems.map(function (item) {
              var type = item.asset_type || item.type;
              var title;
              var isRenameDisabled = false;

              var _a = Utils_1.default.splitFilenameByLastDelimeter(item.displayName || item['repo:name']),
                  fileName = _a[0],
                  fileExtension = _a[1];

              if (type === constants_1.XD_MIMETYPE && !ends_with_xd_sentinel_character_1.default(item['dc:title'])) {
                title = item['dc:title'];
                isRenameDisabled = true;
              } else {
                title = fileName;
              }

              var assetRef;

              if (item.assetRef) {
                var _b = item.assetRef,
                    cloudID = _b.cloudID,
                    localID = _b.localID,
                    displayName = _b.displayName,
                    path = _b.path;
                assetRef = {
                  cloud_id: cloudID,
                  local_id: localID,
                  display_name: displayName,
                  path: path
                };
              }

              assetRef = JSON.stringify(assetRef);
              var doc = {
                accessDate: item.access_date ? new Date(item.access_date) : new Date(item.create_date),
                assetName: item.asset_name,
                assetRef: _this._enableAssetRef ? assetRef : undefined,
                cloudUri: item.cloud_uri,
                createDate: new Date(item.create_date),
                derivation_type: item.derivation_type,
                displayName: item.displayName,
                docState: item.isArchived || item.is_archived ? IDocumentElement_1.DocumentState.archived : IDocumentElement_1.DocumentState.active,
                hasSize: false,
                id: item.id,
                isCached: item.isInLocalStore,
                isConflicted: item.isConflicted,
                isUserPinned: item.isUserPinned,
                localUri: item.local_uri,
                modifiedDate: new Date(item.modify_date),
                path: item.path,
                repoModifiedDate: new Date(item.repository_last_modified_date),
                recoveredDate: item.recoveredDate,
                renditionTemplate: item.rendition_template,
                rendition: '',
                repoName: item['repo:name'],
                size: '',
                stableUri: item.stable_uri,
                title: title.normalize('NFC'),
                fileExtension: fileExtension,
                type: type,
                dcTitle: item['dc:title'],
                isRenameDisabled: isRenameDisabled,
                isSyncSuspended: item.sync_suspended,
                syncSuspensionReason: item.sync_suspension_reason
              };

              if (item.size) {
                doc.size = item.size.toString();
                doc.hasSize = true;
              }

              return doc;
            }).filter(this.isDisplayableDocument);
            nextPageAvailable = false;

            if (this._acpFetch.usingACPLocal) {
              if (responseJson.nextPageLink) {
                nextPageAvailable = true;
              }
            } else {
              if (searchQuery) {
                currentIndex = searchQuery.start_index + cloudDocList.length;

                if (currentIndex < responseJson.totalHits) {
                  nextPageAvailable = true; // Next page query should be the same, but with a new start_index

                  nextPageSearchQuery = Object.assign({}, searchQuery);
                  nextPageSearchQuery.start_index = currentIndex;
                }
              }
            }

            if (nextPageAvailable) {
              nextPageOptions = {
                totalHits: responseJson.totalHits,
                searchQuery: nextPageSearchQuery,
                nextPageLink: responseJson.nextPageLink
              };
            }

            result = {
              docs: cloudDocList,
              nextPageOptions: nextPageOptions
            }; // console.info(`USS cloud docs result:\n${JSON.stringify(result, null, 2)}`);

            return [2
            /*return*/
            , Promise.resolve(result)];
        }
      });
    });
  };
  /**
   * Creates array of DocumentElements from directory listing
   * @param response
   */


  CloudDocumentsClient.prototype.processStorageResponse = function (response) {
    return __awaiter(this, void 0, void 0, function () {
      var responseJson, responseItems, cloudDocList, nextPageOptions, result;

      var _this = this;

      return __generator(this, function (_a) {
        switch (_a.label) {
          case 0:
            return [4
            /*yield*/
            , response.json()];

          case 1:
            responseJson = _a.sent();
            responseItems = responseJson.children || [];
            cloudDocList = responseItems.map(function (item) {
              var _a;

              var title;
              var isRenameDisabled = false;
              var fileName = item.display_name || item.name;
              var fileExtension = '';

              if (item.type !== constants_1.FOLDER_MIMETYPE) {
                _a = Utils_1.default.splitFilenameByLastDelimeter(fileName), fileName = _a[0], fileExtension = _a[1];
              }

              if (item.dcx_name && item.type === constants_1.XD_MIMETYPE && !ends_with_xd_sentinel_character_1.default(item.dcx_name)) {
                title = item.dcx_name;
                isRenameDisabled = true;
              } else {
                title = fileName;
              }

              var doc = {
                accessDate: item.accessed ? new Date(item.accessed) : new Date(item.modified),
                assetName: item.name,
                cloudUri: item.cloud_uri,
                createDate: new Date(item.created),
                derivation_type: item.derivation_type,
                displayName: item.display_name,
                docState: IDocumentElement_1.DocumentState.active,
                hasSize: false,
                id: item.urn,
                isCached: item.cached,
                isConflicted: item.conflicted,
                isUserPinned: item.user_pinned,
                localUri: item.local_uri,
                modifiedDate: new Date(item.modified),
                path: item.path,
                repoModifiedDate: new Date(item.modified),
                renditionTemplate: item.rendition_template,
                rendition: '',
                repoName: item.name,
                size: '',
                stableUri: item.stable_uri,
                title: title.normalize('NFC'),
                fileExtension: fileExtension,
                type: item.type,
                assetRef: _this._enableAssetRef ? item.assetRef : undefined,
                isRenameDisabled: isRenameDisabled,
                dcTitle: item.dcx_name,
                isSyncSuspended: item.sync_suspended,
                syncSuspensionReason: item.sync_suspension_reason
              };

              if (item.size) {
                doc.size = item.size.toString();
                doc.hasSize = true;
              }

              return doc;
            }).filter(this.isDisplayableDocument);

            if (responseJson.nextPageLink) {
              nextPageOptions = {
                totalHits: responseJson.total_children,
                nextPageLink: responseJson.nextPageLink
              };
            }

            result = {
              docs: cloudDocList,
              nextPageOptions: nextPageOptions,
              isCached: responseJson.local_uri ? true : undefined // Keep it undefined for web results

            }; // console.info(`Storage cloud docs result:\n${JSON.stringify(result, null, 2)}`);

            return [2
            /*return*/
            , Promise.resolve(result)];
        }
      });
    });
  };

  Object.defineProperty(CloudDocumentsClient.prototype, "commonHeaders", {
    /**
     * Get the common set of request headers.
     *
     * @return {Headers} object containing the default headers
     */
    get: function () {
      var apiKey = this._hostProductData.apiKey && this._hostProductData.apiKey !== '' ? this._hostProductData.apiKey : constants_1.DEFAULT_API_KEY;
      return new Headers({
        'X-api-key': apiKey,
        'x-product': this._hostProductData.productId,
        'x-product-location': this._hostProductData.productLocation // removing till USS allows for the x-request-id in the CORS
        // 'x-request-id': Utils.generateGUID(false)

      });
    },
    enumerable: false,
    configurable: true
  });
  /**
   * Get the default document icon associated with the specified
   * document mime type.
   *
   * @param mimeType      {String} containing doc type
   * @return {any} containing the associated icon object of string to resource (could be base64 encoded)
   */

  CloudDocumentsClient.prototype.defaultIconForType = function (mimeType) {
    if (!this._hostProductData.defaultDocumentIcons || !mimeType || mimeType === '') {
      return '';
    }

    var defaultIcon = this._hostProductData.defaultDocumentIcons[mimeType]; // so we didnt find the specified type, so fallback to the generic default

    if (!defaultIcon) {
      var defaultId = 'default';
      defaultIcon = this._hostProductData.defaultDocumentIcons[defaultId];
    }

    return defaultIcon || ''; // because we dont want to set it to undefined
  };

  Object.defineProperty(CloudDocumentsClient, "instance", {
    /**
     * Constructs the instance the first time, just returns it after that
     * @deprecated
     */
    get: function () {
      if (!instanceDeprecationWarning) {
        instanceDeprecationWarning = true;
        console.warn('CloudDocumentsClient.instance will be deprecated.');
      }

      return this._instance || (this._instance = new this());
    },
    enumerable: false,
    configurable: true
  });
  /**
   * Configure needs to be called at least once before using the client
   *
   * @param hostProductData
   * @param imsData
   * @param onNotificationStatusChange
   */

  CloudDocumentsClient.prototype.configure = function (options) {
    var imsData = options.imsData;
    var hostProductData = options.hostProductData;
    this._imsData = imsData;
    this._hostProductData = hostProductData;

    if (hostProductData.featureFlags) {
      this._disableACPL = hostProductData.featureFlags[constants_1.FEATURE_FLAGS.disableACPL];
      this._enableAssetRef = hostProductData.featureFlags[constants_1.FEATURE_FLAGS.enableAssetRef];
    } // configure ACPFetch client


    this._acpFetch = new ACPFetch_1.default({
      environment: imsData.environment,
      dcxAppId: hostProductData.dcxId,
      fetchUserId: imsData.fetchUserId,
      fetchUserEmail: imsData.fetchUserEmail,
      fetchToken: imsData.fetchToken,
      cloudId: constants_1.CC_CLOUD_ID,
      productVersion: hostProductData.productVersion,
      onAnalyticsEvent: options.onAnalyticsEvent,
      onNotificationStatusChange: options.onNotificationStatusChange,
      onAssetChange: options.onAssetChange,
      onAssetSyncEvent: options.onAssetSyncEvent,
      onSyncProgressEvent: options.onSyncProgressEvent,
      featureFlags: hostProductData.featureFlags,
      minimumCoreSyncVersionRequired: hostProductData.minimumCoreSyncVersionRequired,
      xApiKey: hostProductData.xApiKey,
      appAgentName: hostProductData.appAgentName
    });
  };
  /**
   * Get a rendition associated with a doc.
   * @param renditionTemplate
   * @param docType
   * @param modifiedDate
   * @param size
   * @param analyticsData
   */


  CloudDocumentsClient.prototype.getRendition = function (renditionTemplate, docType, modifiedDate, size, analyticsData, preferCloudThumbnails) {
    return __awaiter(this, void 0, void 0, function () {
      var renditionHref;

      var _this = this;

      return __generator(this, function (_a) {
        renditionHref = CloudDocumentsClient.doRenditionTemplateSubstitution(renditionTemplate, {
          size: "" + size
        });
        return [2
        /*return*/
        , new Promise(function (resolve, reject) {
          return __awaiter(_this, void 0, void 0, function () {
            var renditionSrc, request, additionalParams, response, error_2, msg;
            return __generator(this, function (_a) {
              switch (_a.label) {
                case 0:
                  renditionSrc = this.defaultIconForType(docType);

                  if (!renditionHref) {
                    resolve(renditionSrc);
                    return [2
                    /*return*/
                    ];
                  }

                  request = new Request(renditionHref, {
                    method: 'GET',
                    headers: this.commonHeaders
                  });
                  additionalParams = {};

                  if (modifiedDate) {
                    additionalParams['modifiedDate'] = modifiedDate;
                  }

                  if (analyticsData) {
                    additionalParams['analyticsData'] = analyticsData;
                  }

                  if (preferCloudThumbnails) {
                    additionalParams['preferCloudThumbnails'] = true;
                  }

                  _a.label = 1;

                case 1:
                  _a.trys.push([1, 4,, 5]);

                  return [4
                  /*yield*/
                  , this._acpFetch.acpFetch(request, undefined, additionalParams)];

                case 2:
                  response = _a.sent();

                  if (!response.ok) {
                    // Expected error case: reject with response so the client can decide how to respond
                    console.warn("Requested rendition not fetched due to: " + response.statusText);
                    return [2
                    /*return*/
                    , reject(response)];
                  }

                  return [4
                  /*yield*/
                  , response.text()];

                case 3:
                  renditionSrc = _a.sent();
                  return [3
                  /*break*/
                  , 5];

                case 4:
                  error_2 = _a.sent();
                  msg = error_2.statusMessage || error_2.message;
                  console.warn("Failed rendition request for " + renditionHref + ": " + msg);
                  return [2
                  /*return*/
                  , reject({
                    status: undefined,
                    statusText: msg
                  })];

                case 5:
                  resolve(renditionSrc);
                  return [2
                  /*return*/
                  ];
              }
            });
          });
        })];
      });
    });
  };
  /**
   * Gets the list of cloud documents
   *
   * @param options
   */


  CloudDocumentsClient.prototype.getDocuments = function (options, analyticsData) {
    return __awaiter(this, void 0, void 0, function () {
      var collectionName, searchQuery;

      var _this = this;

      return __generator(this, function (_a) {
        collectionName = options.archived ? ['cloud-content', 'cloud-content-archive'] : ['cloud-content'];
        searchQuery = {
          limit: options.limit || constants_1.DEFAULTS.SEARCH_PAGE_SIZE,
          creative_cloud_archive: !!options.archived,
          creative_cloud_toplevel_collection_name: collectionName,
          creative_cloud_discarded_directly: !!options.archived,
          ownership_types: 'owned',
          hints: {
            creative_cloud_rendition_v2: true
          },
          is_orphan: false,
          op_none_of: {
            xmp_metadata_derv_type: 'FORK'
          },
          type: this._hostProductData.documentFilter || undefined,
          scope: 'creative_cloud',
          sort_orderby: options.sort_orderby || SortByEnum_1.default.modifyDate,
          sort_order: options.sort_order || SortOrderDirEnum_1.default.desc
        }; // per: https://jira.corp.adobe.com/browse/ACPL-1724
        // removing start_index and creative_cloud_asset_type
        // from search query sent to ACPL

        if (!this._acpFetch.usingACPLocal) {
          searchQuery.start_index = 0;
          searchQuery.creative_cloud_asset_type = 'dcx';
        }

        return [2
        /*return*/
        , new Promise(function (resolve, reject) {
          return __awaiter(_this, void 0, void 0, function () {
            var searchUri, headers_1, request, additionalParams, response, error_3;
            return __generator(this, function (_a) {
              switch (_a.label) {
                case 0:
                  _a.trys.push([0, 2,, 3]);

                  searchUri = Utils_1.default.getSearchUrl(this._imsData.environment);
                  headers_1 = new Headers(this.commonHeaders);
                  headers_1.append('Content-Type', constants_1.SEARCH_CONTENT_TYPE);
                  request = new Request(searchUri, {
                    method: 'POST',
                    body: JSON.stringify(searchQuery),
                    headers: headers_1
                  });
                  additionalParams = {};

                  if (options.acplMode) {
                    additionalParams['acplMode'] = options.acplMode;
                  }

                  if (analyticsData) {
                    additionalParams['analyticsData'] = analyticsData;
                  }

                  return [4
                  /*yield*/
                  , this._acpFetch.acpFetch(request, undefined, additionalParams)];

                case 1:
                  response = _a.sent();
                  resolve(this.processCloudDocsResponse(response, searchQuery));
                  return [3
                  /*break*/
                  , 3];

                case 2:
                  error_3 = _a.sent();
                  return [2
                  /*return*/
                  , reject("Failed search request: " + error_3.message)];

                case 3:
                  return [2
                  /*return*/
                  ];
              }
            });
          });
        })];
      });
    });
  };
  /**
   * Gets the next page of cloud documents
   *
   * @param options
   */


  CloudDocumentsClient.prototype.getDocumentsNextPage = function (options, analyticsData) {
    return __awaiter(this, void 0, void 0, function () {
      var request, headers, searchUri, additionalParams, response, error_4;
      return __generator(this, function (_a) {
        switch (_a.label) {
          case 0:
            headers = new Headers(this.commonHeaders);
            headers.append('Content-Type', constants_1.SEARCH_CONTENT_TYPE);

            if (options.nextPageLink) {
              request = new Request(options.nextPageLink, {
                method: 'GET',
                headers: headers
              });
            } else if (options.searchQuery) {
              searchUri = Utils_1.default.getSearchUrl(this._imsData.environment);
              request = new Request(searchUri, {
                method: 'POST',
                body: JSON.stringify(options.searchQuery),
                headers: headers
              });
            }

            _a.label = 1;

          case 1:
            _a.trys.push([1, 3,, 4]);

            additionalParams = {};

            if (analyticsData) {
              additionalParams['analyticsData'] = analyticsData;
            }

            return [4
            /*yield*/
            , this._acpFetch.acpFetch(request, undefined, additionalParams)];

          case 2:
            response = _a.sent();
            return [2
            /*return*/
            , Promise.resolve(this.processCloudDocsResponse(response, options.searchQuery))];

          case 3:
            error_4 = _a.sent();
            return [2
            /*return*/
            , Promise.reject("Failed next page search request: " + error_4.message)];

          case 4:
            return [2
            /*return*/
            ];
        }
      });
    });
  };
  /**
   * Get listing of a folder's children
   *
   * NOTE: ACPL parameters differ from Storage service API.
   *       ACPL: https://wiki.corp.adobe.com/pages/viewpage.action?spaceKey=CFS&title=Directory+Listing
   *       Storage: https://acpcs.corp.adobe.com/docs/sdks/storage/v1/cloudcontent/get_files
   *
   *  CloudDocumentsClient will use the Storage interface and translate as needed for ACPL.
   *
   * @param path
   * @param acplMode
   * @param limit
   * @param start
   * @param orderby
   * @param order
   * @param type
   * @param filter
   * @param version
   */


  CloudDocumentsClient.prototype.getFolderListing = function (_a, analyticsData) {
    var path = _a.path,
        cloudUri = _a.cloudUri,
        localOnly = _a.localOnly,
        _b = _a.limit,
        limit = _b === void 0 ? constants_1.DEFAULTS.FOLDER_LISTING_PAGE_SIZE : _b,
        start = _a.start,
        _c = _a.orderby,
        orderby = _c === void 0 ? StorageSortByEnum_1.default.modifyDate : _c,
        _d = _a.order,
        order = _d === void 0 ? SortOrderDirEnum_1.default.desc : _d,
        type = _a.type,
        filter = _a.filter,
        version = _a.version;
    return __awaiter(this, void 0, void 0, function () {
      var _this = this;

      return __generator(this, function (_e) {
        return [2
        /*return*/
        , new Promise(function (resolve, reject) {
          return __awaiter(_this, void 0, void 0, function () {
            var query, storageUri, encodedPath, normalizedPath, headers_2, additionalParams, request, response, retryResponse, e_1, error_5;
            return __generator(this, function (_a) {
              switch (_a.label) {
                case 0:
                  _a.trys.push([0, 8,, 9]);

                  query = {
                    limit: limit,
                    start: start,
                    orderby: orderby,
                    order: order,
                    type: type,
                    filter: filter,
                    version: version
                  };

                  if (localOnly && cloudUri && !path) {
                    console.error('[acp-fetch] getFolderListing requires path for localOnly listing by cloudUri');
                    reject('getFolderListing requires path for localOnly listing by cloudUri');
                    return [2
                    /*return*/
                    ];
                  }

                  if (!cloudUri && !path) {
                    console.error('[acp-fetch] getFolderListing requires path or cloudUri');
                    reject('getFolderListing requires path or cloudUri');
                    return [2
                    /*return*/
                    ];
                  } // ACPL needs orderby=[-]<field> and no "order" parameter, or it breaks


                  if (this._acpFetch.usingACPLocal) {
                    query.orderby = (order === SortOrderDirEnum_1.default.desc ? '-' : '') + orderby;
                    query.order = undefined;
                  }

                  storageUri = void 0; // Prefer cloudUri, if it's available. This is especially important for offline listings,
                  //  because if the folder has been renamed (in the cloud) and not yet synced, the paths
                  //  for the offline and online listings will differ. In this case, getting by path could
                  //  result in the offline and online listings not being merged correctly

                  if (cloudUri) {
                    storageUri = cloudUri;
                  } else {
                    encodedPath = path.split('/').map(encodeURIComponent).join('/');
                    normalizedPath = encodedPath.endsWith('cloud-content') ? encodedPath + '/' : encodedPath;
                    storageUri = Utils_1.default.getStorageUrl(this._imsData.environment) + ("/" + normalizedPath);
                  }

                  storageUri += Utils_1.default.toQueryString(query);
                  headers_2 = new Headers(this.commonHeaders);
                  headers_2.append('Accept', constants_1.FOLDER_MIMETYPE);
                  additionalParams = {};

                  if (analyticsData) {
                    additionalParams['analyticsData'] = analyticsData;
                  }

                  if (localOnly) {
                    headers_2.append(constants_1.ACPL_SOURCE_HEADER, AcplSourceMode_1.default.OFFLINE_ONLY); // Bypass logging metric for localOnly 404. It may show up in the cloud listing. Clients should only
                    // report "not found" error to the user if a) the folder is cached and network is offline, or
                    // b) folder is not cached and network is online.

                    additionalParams['noLogOn404'] = true;
                  }

                  request = new Request(storageUri, {
                    method: 'GET',
                    headers: headers_2
                  });
                  return [4
                  /*yield*/
                  , this._acpFetch.acpFetch(request, undefined, additionalParams)];

                case 1:
                  response = _a.sent();
                  if (!!response.ok) return [3
                  /*break*/
                  , 6];
                  if (!(localOnly && response.status === constants_1.HTTP_STATUS_NOT_FOUND && cloudUri)) return [3
                  /*break*/
                  , 5];
                  _a.label = 2;

                case 2:
                  _a.trys.push([2, 4,, 5]);

                  return [4
                  /*yield*/
                  , this.getFolderListing({
                    path: path,
                    localOnly: localOnly,
                    limit: limit,
                    start: start,
                    orderby: orderby,
                    order: order,
                    type: type,
                    filter: filter,
                    version: version
                  })];

                case 3:
                  retryResponse = _a.sent(); // retried getFolderListing resolved, so resolve again

                  resolve(retryResponse);
                  return [3
                  /*break*/
                  , 5];

                case 4:
                  e_1 = _a.sent(); // retried getFolderListing rejected, so reject again

                  reject(e_1);
                  return [3
                  /*break*/
                  , 5];

                case 5:
                  // Expected error case: reject with response so the client can decide how to respond
                  reject(response);
                  return [3
                  /*break*/
                  , 7];

                case 6:
                  resolve(this.processStorageResponse(response));
                  _a.label = 7;

                case 7:
                  return [3
                  /*break*/
                  , 9];

                case 8:
                  error_5 = _a.sent();
                  error_5 = Utils_1.default.normalizeError(error_5);
                  reject("Failed folder listing: " + error_5.message);
                  return [3
                  /*break*/
                  , 9];

                case 9:
                  return [2
                  /*return*/
                  ];
              }
            });
          });
        })];
      });
    });
  };
  /**
   * Gets the next page of a folder listing
   *
   * @param options {object} key/value pairs for getting the next page
   * @param localOnly {boolean} Pass `true` to only return ACPL-cached items
   */


  CloudDocumentsClient.prototype.getFolderListingNextPage = function (options, localOnly, analyticsData) {
    return __awaiter(this, void 0, void 0, function () {
      var request, headers, additionalParams, response, error_6;
      return __generator(this, function (_a) {
        switch (_a.label) {
          case 0:
            headers = new Headers(this.commonHeaders);
            headers.append('Accept', constants_1.FOLDER_MIMETYPE);

            if (localOnly) {
              headers.append(constants_1.ACPL_SOURCE_HEADER, AcplSourceMode_1.default.OFFLINE_ONLY);
            }

            if (options.nextPageLink) {
              request = new Request(options.nextPageLink, {
                method: 'GET',
                headers: headers
              });
            }

            _a.label = 1;

          case 1:
            _a.trys.push([1, 3,, 4]);

            additionalParams = {};

            if (analyticsData) {
              additionalParams['analyticsData'] = analyticsData;
            }

            return [4
            /*yield*/
            , this._acpFetch.acpFetch(request, undefined, additionalParams)];

          case 2:
            response = _a.sent();

            if (!response.ok) {
              // Expected error case: reject with response so the client can decide how to respond
              return [2
              /*return*/
              , Promise.reject(response)];
            } else {
              return [2
              /*return*/
              , this.processStorageResponse(response)];
            }

            return [3
            /*break*/
            , 4];

          case 3:
            error_6 = _a.sent();
            error_6 = Utils_1.default.normalizeError(error_6); // Unexpected error case: likely an ACPL error that did not get returned as a Response object,
            // or an Ajax pre-condition failure (CORS policy violation, no network).

            return [2
            /*return*/
            , Promise.reject("Failed folder listing next page request: " + error_6.message)];

          case 4:
            return [2
            /*return*/
            ];
        }
      });
    });
  };
  /**
   * Gets a list of recent cloud & local documents
   * @param {IRecentsQueryOptions} options
   * @param cloudURLProtocol
   * @returns {Promise<DocumentElement[]>}
   */


  CloudDocumentsClient.prototype.getRecents = function (options, cloudURLProtocol, analyticsData) {
    return __awaiter(this, void 0, void 0, function () {
      var _this = this;

      return __generator(this, function (_a) {
        return [2
        /*return*/
        , new Promise(function (getRecentsResolve, getRecentsReject) {
          return __awaiter(_this, void 0, void 0, function () {
            var sanitizeProtocol_1, allDocs, docsMap_1, includesCloudDocs_1, results, docsMapKeys_1, finalResults_1, error_7, message;

            var _this = this;

            return __generator(this, function (_a) {
              switch (_a.label) {
                case 0:
                  _a.trys.push([0, 4,, 5]);

                  sanitizeProtocol_1 = cloudURLProtocol !== 'https://' ? cloudURLProtocol : '';
                  return [4
                  /*yield*/
                  , options.getLocalRecents()];

                case 1:
                  allDocs = _a.sent();
                  docsMap_1 = {};
                  includesCloudDocs_1 = false;
                  allDocs.forEach(function (thisDoc) {
                    return __awaiter(_this, void 0, void 0, function () {
                      var url, isLocalDoc, recoveredDate, localDocType, now, defaultOptions, urlKey;
                      return __generator(this, function (_a) {
                        url = thisDoc.url;
                        isLocalDoc = !thisDoc.isCloudDoc;
                        recoveredDate = thisDoc.recoveredDate && thisDoc.recoveredDate.length;
                        localDocType = recoveredDate ? 'recovered' : 'local';
                        now = new Date(Date.now());
                        defaultOptions = {
                          id: url,
                          path: url,
                          assetName: '',
                          title: decodeURIComponent(thisDoc.title).normalize('NFC'),
                          // @TODO client does not return repo name
                          fileExtension: '',
                          displayName: decodeURIComponent(thisDoc.title).normalize('NFC'),
                          modifiedDate: now,
                          // @TODO replace with lastAccessed once XD pipes it back to us
                          // https://jira.corp.adobe.com/browse/CCX-3366
                          repoModifiedDate: now,
                          accessDate: now,
                          createDate: now,
                          recoveredDate: thisDoc.recoveredDate,
                          rendition: '',
                          repoName: '',
                          size: '',
                          hasSize: false,
                          docState: IDocumentElement_1.DocumentState.active,
                          isCached: false,
                          isConflicted: false,
                          isUserPinned: false
                        }; // 1. add metadata for local docs

                        if (isLocalDoc) {
                          docsMap_1[url] = Object.assign({
                            cloudUri: '',
                            localUri: url,
                            stableUri: url,
                            renditionTemplate: '',
                            type: localDocType
                          }, defaultOptions);
                        } else {
                          // 2. add metadata to non-local docs that works for SWY docs
                          includesCloudDocs_1 = true;
                          urlKey = Utils_1.default.sanitizeCloudDocPath(url, sanitizeProtocol_1);
                          docsMap_1[urlKey] = Object.assign({
                            cloudUri: urlKey,
                            localUri: urlKey,
                            stableUri: urlKey,
                            // [mm] this renditionTemplate will break if the `urlKey`
                            // returned is acutally a stable ID....
                            renditionTemplate: urlKey + "/:rendition{?page,size,version}",
                            type: ''
                          }, defaultOptions);
                        }

                        return [2
                        /*return*/
                        ];
                      });
                    });
                  });
                  if (!(includesCloudDocs_1 && !this._disableACPL)) return [3
                  /*break*/
                  , 3];
                  return [4
                  /*yield*/
                  , this.getDocuments({
                    acplMode: AcplSearchMode_1.default.OFFLINE_ONLY
                  }, analyticsData)];

                case 2:
                  results = _a.sent();
                  docsMapKeys_1 = Object.keys(docsMap_1);
                  results.docs.forEach(function (doc) {
                    var matchingKey = docsMapKeys_1.find(function (key) {
                      return _this._acpFetch.acplCompareUriStrings(doc.stableUri, key);
                    });

                    if (matchingKey) {
                      docsMap_1[matchingKey] = doc;
                    } // Might this be a cloudUri, in the SWY case?
                    else if (docsMap_1[doc.cloudUri]) {
                      docsMap_1[doc.cloudUri] = doc;
                    }
                  });
                  _a.label = 3;

                case 3:
                  finalResults_1 = [];
                  allDocs.forEach(function (thisDoc) {
                    var isLocalDoc = !thisDoc.isCloudDoc;
                    var mapKey = !isLocalDoc ? Utils_1.default.sanitizeCloudDocPath(thisDoc.url, sanitizeProtocol_1) : thisDoc.url;

                    if (docsMap_1[mapKey] && !docsMap_1[mapKey].isArchived) {
                      finalResults_1.push(docsMap_1[mapKey]);
                    }
                  });
                  return [2
                  /*return*/
                  , getRecentsResolve(finalResults_1)];

                case 4:
                  error_7 = _a.sent();
                  message = "[acp-fetch] CloudDocumentClient.getRecents Error trying to retrieve local docs from host " + error_7;
                  console.warn(message);
                  return [2
                  /*return*/
                  , getRecentsReject(message)];

                case 5:
                  return [2
                  /*return*/
                  ];
              }
            });
          });
        })];
      });
    });
  };
  /**
   * Get a specific doc. Web only, until acp.local supports getting metadata.
   * @param pathOrId
   */


  CloudDocumentsClient.prototype.getDocument = function (pathOrId) {
    return __awaiter(this, void 0, void 0, function () {
      var _this = this;

      return __generator(this, function (_a) {
        return [2
        /*return*/
        , new Promise(function (resolve, reject) {
          return __awaiter(_this, void 0, void 0, function () {
            var doc, links, request, response, metadata, _a, fileName, fileExtension, error_8, errMsg, error_9;

            return __generator(this, function (_b) {
              switch (_b.label) {
                case 0:
                  _b.trys.push([0, 7,, 8]);

                  doc = void 0;
                  return [4
                  /*yield*/
                  , this._getDocumentLinks(pathOrId)];

                case 1:
                  links = _b.sent();
                  if (!links.metadataUri) return [3
                  /*break*/
                  , 6];
                  request = new Request(links.metadataUri, {
                    method: 'GET',
                    headers: this.commonHeaders
                  });
                  _b.label = 2;

                case 2:
                  _b.trys.push([2, 5,, 6]);

                  return [4
                  /*yield*/
                  , this._acpFetch.acpFetch(request)];

                case 3:
                  response = _b.sent();
                  return [4
                  /*yield*/
                  , response.json()];

                case 4:
                  metadata = _b.sent();
                  _a = Utils_1.default.splitFilenameByLastDelimeter(metadata.name), fileName = _a[0], fileExtension = _a[1];
                  doc = {
                    assetName: metadata.name,
                    accessDate: new Date(metadata.modified),
                    createDate: new Date(metadata.created),
                    cloudUri: links.cloudUri,
                    stableUri: links.stableUri,
                    collaboration: metadata.collaboration || '',
                    displayName: metadata['name'],
                    docState: IDocumentElement_1.DocumentState.active,
                    hasSize: false,
                    id: metadata.urn,
                    isCached: false,
                    isConflicted: false,
                    isUserPinned: false,
                    localUri: '',
                    modifiedDate: new Date(metadata.modified),
                    path: this._addStorageUriIfMissing(metadata.path || metadata.urn),
                    renditionTemplate: this._addStorageUriIfMissing(links.renditionTemplate),
                    rendition: '',
                    repoName: metadata['name'] || '',
                    size: '',
                    title: metadata.dcx_name ? metadata.dcx_name.normalize('NFC') : fileName.normalize('NFC'),
                    fileExtension: fileExtension,
                    type: links.asset_type,
                    isSyncSuspended: metadata.sync_suspended,
                    syncSuspensionReason: metadata.sync_suspension_reason
                  };

                  if (metadata.size) {
                    doc.size = metadata.size.toString();
                    doc.hasSize = true;
                  }

                  return [3
                  /*break*/
                  , 6];

                case 5:
                  error_8 = _b.sent();
                  console.warn("Failed to get metadata " + pathOrId + ": " + error_8.statusMessage);
                  reject(error_8);
                  return [3
                  /*break*/
                  , 6];

                case 6:
                  if (doc) {
                    resolve(doc);
                  } else {
                    errMsg = "Document not found";
                    console.warn(errMsg);
                    reject(new Error(errMsg));
                  }

                  return [3
                  /*break*/
                  , 8];

                case 7:
                  error_9 = _b.sent();
                  console.warn("Failed to get document " + pathOrId + ": " + error_9.statusMessage);
                  reject(error_9);
                  return [3
                  /*break*/
                  , 8];

                case 8:
                  return [2
                  /*return*/
                  ];
              }
            });
          });
        })];
      });
    });
  };
  /**
   * Creates a folder at a given path
   *
   * @param newFolderPath
   */


  CloudDocumentsClient.prototype.createFolder = function (newFolderPath, analyticsData) {
    return __awaiter(this, void 0, void 0, function () {
      var storageUrl, newFolderUri, headers, request, additionalParams, response, error_10;
      return __generator(this, function (_a) {
        switch (_a.label) {
          case 0:
            if (!newFolderPath) {
              return [2
              /*return*/
              , Promise.reject('Create Folder error: Missing path')];
            }

            storageUrl = Utils_1.default.getStorageUrl(this._imsData.environment);
            newFolderUri = Utils_1.default.buildUri(storageUrl, newFolderPath);
            headers = new Headers(this.commonHeaders);
            headers.append('Content-Type', constants_1.FOLDER_MIMETYPE);
            request = new Request(newFolderUri, {
              method: this._acpFetch.usingACPLocal ? 'POST' : 'PUT',
              headers: headers
            });
            _a.label = 1;

          case 1:
            _a.trys.push([1, 3,, 4]);

            additionalParams = {};

            if (analyticsData) {
              additionalParams['analyticsData'] = analyticsData;
            }

            return [4
            /*yield*/
            , this._acpFetch.acpFetch(request, undefined, additionalParams)];

          case 2:
            response = _a.sent();

            if (response.ok) {
              return [2
              /*return*/
              , Promise.resolve(response)];
            } else {
              return [2
              /*return*/
              , Promise.reject(response)];
            }

            return [3
            /*break*/
            , 4];

          case 3:
            error_10 = _a.sent();
            console.error("Create Folder error", error_10);
            return [2
            /*return*/
            , Promise.reject(error_10)];

          case 4:
            return [2
            /*return*/
            ];
        }
      });
    });
  };
  /**
   * assetOp (archive || unarchive || move || pin) cloud document
   * @param itemUri
   * @param opType
   * @param additionalParams
   */


  CloudDocumentsClient.prototype.assetOp = function (itemUri, opType, additionalParams, analyticsData) {
    return __awaiter(this, void 0, void 0, function () {
      var storageUrl, opsUri, targetUri, acpFetchAdditionalParams, body, headers, request, response, error_11;
      return __generator(this, function (_a) {
        switch (_a.label) {
          case 0:
            storageUrl = Utils_1.default.getStorageUrl(this._imsData.environment);
            opsUri = storageUrl + "/ops";
            targetUri = additionalParams && additionalParams.targetUri || '';
            acpFetchAdditionalParams = additionalParams ? Object.assign({}, additionalParams) : {};

            if (analyticsData) {
              acpFetchAdditionalParams['analyticsData'] = analyticsData;
            }

            body = {
              op: opType,
              target: {
                href: encodeURI("" + itemUri)
              }
            };

            if (opType === 'move' || opType === 'copy') {
              // moveOp needs a target & source
              body = Object.assign(body, {
                target: {
                  href: Utils_1.default.buildUri(storageUrl, targetUri)
                },
                source: {
                  href: encodeURI("" + itemUri)
                }
              });
            }

            headers = new Headers(this.commonHeaders);
            headers.append('Content-Type', constants_1.OP_CONTENT_TYPE);
            request = new Request(opsUri, {
              method: 'POST',
              body: JSON.stringify(body),
              headers: headers
            });
            _a.label = 1;

          case 1:
            _a.trys.push([1, 6,, 7]);

            return [4
            /*yield*/
            , this._acpFetch.acpFetch(request, undefined, acpFetchAdditionalParams)];

          case 2:
            response = _a.sent();
            if (!response.ok) return [3
            /*break*/
            , 4];
            return [4
            /*yield*/
            , this.processOperationResponse(response, acpFetchAdditionalParams)];

          case 3:
            return [2
            /*return*/
            , _a.sent()];

          case 4:
            return [2
            /*return*/
            , Promise.reject(response)];

          case 5:
            return [3
            /*break*/
            , 7];

          case 6:
            error_11 = _a.sent();
            console.error(opType + " error", error_11);
            return [2
            /*return*/
            , Promise.reject(error_11)];

          case 7:
            return [2
            /*return*/
            ];
        }
      });
    });
  };
  /**
   * deleteOp (permdelete) cloud document
   *
   * @param itemUri
   */


  CloudDocumentsClient.prototype.deleteOp = function (itemUri, analyticsData) {
    return __awaiter(this, void 0, void 0, function () {
      var elementUri, headers, request, additionalParams, response, error_12;
      return __generator(this, function (_a) {
        switch (_a.label) {
          case 0:
            elementUri = itemUri + "?recursive=true";
            headers = new Headers(this.commonHeaders);
            headers.append('if-Match', '*');
            request = new Request(elementUri, {
              method: 'DELETE',
              headers: headers
            });
            _a.label = 1;

          case 1:
            _a.trys.push([1, 6,, 7]);

            additionalParams = {};

            if (analyticsData) {
              additionalParams['analyticsData'] = analyticsData;
            }

            return [4
            /*yield*/
            , this._acpFetch.acpFetch(request, undefined, additionalParams)];

          case 2:
            response = _a.sent();
            if (!response.ok) return [3
            /*break*/
            , 4];
            return [4
            /*yield*/
            , this.processOperationResponse(response, additionalParams)];

          case 3:
            // ACPL seems to always respond with 204 for perm delete. 204 means there's no body.
            // But ACPL returns a json body, including an empty links array, so it's not clear if perm
            // delete will have a monitorLink or not.
            return [2
            /*return*/
            , _a.sent()];

          case 4:
            return [2
            /*return*/
            , Promise.reject(response)];

          case 5:
            return [3
            /*break*/
            , 7];

          case 6:
            error_12 = _a.sent();
            console.error("delete error: " + JSON.stringify(error_12));
            return [2
            /*return*/
            , Promise.reject(error_12)];

          case 7:
            return [2
            /*return*/
            ];
        }
      });
    });
  };
  /**
   * cacheOp (pin/unpin) cloud document
   *
   * @param itemUri
   * @param opType
   * @param additionalParams (optional)
   */


  CloudDocumentsClient.prototype.cacheOp = function (itemUri, opType, additionalParams, analyticsData) {
    return __awaiter(this, void 0, void 0, function () {
      var acpFetchAdditionalParams, body, headers, request, response, error_13;
      return __generator(this, function (_a) {
        switch (_a.label) {
          case 0:
            acpFetchAdditionalParams = additionalParams ? Object.assign({}, additionalParams) : {};

            if (analyticsData) {
              acpFetchAdditionalParams['analyticsData'] = analyticsData;
            }

            body = {
              op: opType,
              target: {
                href: encodeURI("" + itemUri)
              }
            };
            headers = new Headers(this.commonHeaders); // TODO: unit tests

            if (opType === OpType_1.default.PURGE_ASSET) {
              // ACPL rejects PURGE_ASSET requests if there is uncommitted changes unless explicitly asked to discard
              // them, but the only use case for PURGE_ASSET is to get rid of uncommitted changes, so acp-fetch will
              // tell ACPL to ignore uncommitted changes by default.
              headers.set('xacplIgnoreUncommittedChanges', 'true');
            }

            request = new Request(constants_1.ACPL_CACHE_OPS_URI, {
              method: 'POST',
              body: JSON.stringify(body),
              headers: headers
            });
            _a.label = 1;

          case 1:
            _a.trys.push([1, 6,, 7]);

            return [4
            /*yield*/
            , this._acpFetch.acpFetch(request, undefined, acpFetchAdditionalParams)];

          case 2:
            response = _a.sent();
            if (!response.ok) return [3
            /*break*/
            , 4];
            return [4
            /*yield*/
            , this.processOperationResponse(response, acpFetchAdditionalParams)];

          case 3:
            return [2
            /*return*/
            , _a.sent()];

          case 4:
            return [2
            /*return*/
            , Promise.reject(response)];

          case 5:
            return [3
            /*break*/
            , 7];

          case 6:
            error_13 = _a.sent();
            console.error(opType + " error", error_13);
            return [2
            /*return*/
            , Promise.reject(error_13)];

          case 7:
            return [2
            /*return*/
            ];
        }
      });
    });
  };
  /**
   * exportOp (export/download) cloud document
   *
   * @param doc
   * @param destinationUri
   */


  CloudDocumentsClient.prototype.exportOp = function (doc, destinationUri, analyticsData) {
    return __awaiter(this, void 0, void 0, function () {
      var headers, extension, request, additionalParams, response, error_14;
      return __generator(this, function (_a) {
        switch (_a.label) {
          case 0:
            headers = new Headers(this.commonHeaders);
            extension = Utils_1.default.getExtByMimeType(doc.type);
            headers.append('x-acpl-operation', 'export');
            headers.append('x-acpl-file-uri', encodeURI("file://" + destinationUri + doc.assetName + "." + extension));
            headers.append('x-acpl-overwrite-existing', 'true');
            request = new Request(doc.docUriForACP, {
              method: 'GET',
              headers: headers
            });
            _a.label = 1;

          case 1:
            _a.trys.push([1, 6,, 7]);

            additionalParams = {};

            if (analyticsData) {
              additionalParams['analyticsData'] = analyticsData;
            }

            return [4
            /*yield*/
            , this._acpFetch.acpFetch(request, undefined, additionalParams)];

          case 2:
            response = _a.sent();
            if (!response.ok) return [3
            /*break*/
            , 4];
            return [4
            /*yield*/
            , this.processOperationResponse(response, additionalParams)];

          case 3:
            return [2
            /*return*/
            , _a.sent()];

          case 4:
            return [2
            /*return*/
            , Promise.reject(response)];

          case 5:
            return [3
            /*break*/
            , 7];

          case 6:
            error_14 = _a.sent();
            console.error("export error: " + JSON.stringify(error_14));
            return [2
            /*return*/
            , Promise.reject(error_14)];

          case 7:
            return [2
            /*return*/
            ];
        }
      });
    });
  };
  /**
   * getStorageMetadata for current user
   */


  CloudDocumentsClient.prototype.getStorageMetadata = function () {
    return __awaiter(this, void 0, void 0, function () {
      var error_15;
      return __generator(this, function (_a) {
        switch (_a.label) {
          case 0:
            _a.trys.push([0, 2,, 3]);

            return [4
            /*yield*/
            , this._acpFetch.acplGetStorageMetadata()];

          case 1:
            return [2
            /*return*/
            , _a.sent()];

          case 2:
            error_15 = _a.sent();
            console.error("getStorageMetadata error: " + JSON.stringify(error_15));
            return [2
            /*return*/
            , Promise.reject(error_15)];

          case 3:
            return [2
            /*return*/
            ];
        }
      });
    });
  };

  return CloudDocumentsClient;
}();

exports.default = CloudDocumentsClient;

/***/ }),

/***/ "f+s4":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.setToastPlacement = setToastPlacement;
exports.TOAST_PLACEMENT = exports.TOAST_CONTAINERS = void 0;
/*************************************************************************
* ADOBE CONFIDENTIAL
* ___________________
*
* Copyright 2019 Adobe
* All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains
* the property of Adobe and its suppliers, if any. The intellectual
* and technical concepts contained herein are proprietary to Adobe
* and its suppliers and are protected by all applicable intellectual
* property laws, including trade secret and copyright laws.
* Dissemination of this information or reproduction of this material
* is strictly forbidden unless prior written permission is obtained
* from Adobe.
**************************************************************************/

const TOAST_CONTAINERS = new Map();
exports.TOAST_CONTAINERS = TOAST_CONTAINERS;
let TOAST_PLACEMENT = 'top center';
exports.TOAST_PLACEMENT = TOAST_PLACEMENT;

function setToastPlacement(placement) {
  exports.TOAST_PLACEMENT = TOAST_PLACEMENT = placement;

  for (let container of TOAST_CONTAINERS.values()) {
    container.setState({
      placement
    });
  }
}

/***/ }),

/***/ "f1H2":
/***/ (function(module, exports, __webpack_require__) {

// extracted by mini-css-extract-plugin

/***/ }),

/***/ "f3pb":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


const asn1 = exports;
asn1.bignum = __webpack_require__("OZ/i");
asn1.define = __webpack_require__("7zrB").define;
asn1.base = __webpack_require__("Qd/k");
asn1.constants = __webpack_require__("AhHn");
asn1.decoders = __webpack_require__("IPZY");
asn1.encoders = __webpack_require__("ND7S");

/***/ }),

/***/ "f6DC":
/***/ (function(module) {

module.exports = JSON.parse("{\"(optional)\":\"(дополнительно)\",\"(required)\":\"(требуется)\"}");

/***/ }),

/***/ "fEpb":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


module.exports = __webpack_require__("/1Vs")() ? globalThis : __webpack_require__("wsAV");

/***/ }),

/***/ "fFHZ":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return createIMSAppDataForProjects; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return initializeProjectsStore; });
/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("2vnA");
/* harmony import */ var start_stores_MainStore__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("cCFZ");
/* harmony import */ var _components_helpers_DisposerManager__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("JdbT");
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2021 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/



function createIMSAppDataForProjects(fetchTokenFn) {
    return {
        environment: start_stores_MainStore__WEBPACK_IMPORTED_MODULE_1__["mainStore"].user.isStaging ? 'stage' : 'prod',
        subscriptionType: start_stores_MainStore__WEBPACK_IMPORTED_MODULE_1__["mainStore"].user.subscriptionStatus,
        userId: start_stores_MainStore__WEBPACK_IMPORTED_MODULE_1__["mainStore"].user.UserProfile.userId,
        userEmail: start_stores_MainStore__WEBPACK_IMPORTED_MODULE_1__["mainStore"].user.UserProfile.userEmail,
        accountType: start_stores_MainStore__WEBPACK_IMPORTED_MODULE_1__["mainStore"].user.UserProfile.accountType,
        displayName: start_stores_MainStore__WEBPACK_IMPORTED_MODULE_1__["mainStore"].user.UserProfile.displayName,
        fetchToken: fetchTokenFn,
    };
}
let projectsStoreInitialized = false;
const _disposerManager = new _components_helpers_DisposerManager__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"]();
function initializeProjectsStore(sharedStore, hostSystemLocale, enableCoachMarks) {
    if (!projectsStoreInitialized) {
        projectsStoreInitialized = true;
        _disposerManager.register(Object(mobx__WEBPACK_IMPORTED_MODULE_0__[/* autorun */ "k"])(() => sharedStore.updateStore({
            locale: start_stores_MainStore__WEBPACK_IMPORTED_MODULE_1__["mainStore"].cdoLocale,
            systemLocale: hostSystemLocale,
            theme: start_stores_MainStore__WEBPACK_IMPORTED_MODULE_1__["mainStore"].colorTheme,
            useDarkestPaletteForDark: true,
            displayCoachMarks: enableCoachMarks,
        })), 'sharedStoreAutorun');
    }
}


/***/ }),

/***/ "fGT3":
/***/ (function(module, exports, __webpack_require__) {

var Hash = __webpack_require__("4kuk"),
    ListCache = __webpack_require__("Xi7e"),
    Map = __webpack_require__("ebwN");
/**
 * Removes all key-value entries from the map.
 *
 * @private
 * @name clear
 * @memberOf MapCache
 */


function mapCacheClear() {
  this.size = 0;
  this.__data__ = {
    'hash': new Hash(),
    'map': new (Map || ListCache)(),
    'string': new Hash()
  };
}

module.exports = mapCacheClear;

/***/ }),

/***/ "fGqG":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _react_react_spectrum_Provider__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("bUsb");
/* harmony import */ var _react_react_spectrum_Provider__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Provider__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _react_react_spectrum_Textfield__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("WgUl");
/* harmony import */ var _react_react_spectrum_Textfield__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Textfield__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _stores_SharedStore__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("jmEq");
/* harmony import */ var mobx_react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("okNM");





// Wrapper for fixing CCPROJ-6538 (component doesn't update its theme when host theme changes)
// This should no longer be necessary once the underlying bug is fixed.
const Textfield = react__WEBPACK_IMPORTED_MODULE_0___default.a.forwardRef((props, ref) => {
    let { children, ...other } = props;
    return (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(mobx_react__WEBPACK_IMPORTED_MODULE_4__[/* Observer */ "a"], null, () => (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_react_react_spectrum_Provider__WEBPACK_IMPORTED_MODULE_1___default.a, { theme: _stores_SharedStore__WEBPACK_IMPORTED_MODULE_3__[/* sharedStore */ "d"].theme },
        react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_react_react_spectrum_Textfield__WEBPACK_IMPORTED_MODULE_2___default.a, Object.assign({ ref: ref }, other), children)))));
});
/* harmony default export */ __webpack_exports__["a"] = (Textfield);


/***/ }),

/***/ "fIF1":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

/*************************************************************************
* ADOBE CONFIDENTIAL
* ___________________
*
* Copyright 2021 Adobe
* All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains
* the property of Adobe and its suppliers, if any. The intellectual
* and technical concepts contained herein are proprietary to Adobe
* and its suppliers and are protected by all applicable intellectual
* property laws, including trade secret and copyright laws.
* Dissemination of this information or reproduction of this material
* is strictly forbidden unless prior written permission is obtained
* from Adobe.
**************************************************************************/

module.exports = __webpack_require__("BXEU");

/***/ }),

/***/ "fLe2":
/***/ (function(module) {

module.exports = JSON.parse("{\"Breadcrumbs\":\"パンくずリスト\"}");

/***/ }),

/***/ "fNJh":
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/*
Copyright (c) 2014, Yahoo! Inc. All rights reserved.
Copyrights licensed under the New BSD License.
See the accompanying LICENSE file for terms.
*/

/* jslint esnext: true */


var src$utils$$ = __webpack_require__("JbWX"),
    src$es5$$ = __webpack_require__("aGJD"),
    src$compiler$$ = __webpack_require__("XUei"),
    intl$messageformat$parser$$ = __webpack_require__("Zy53");

exports["default"] = MessageFormat; // -- MessageFormat --------------------------------------------------------

function MessageFormat(message, locales, formats) {
  // Parse string messages into an AST.
  var ast = typeof message === 'string' ? MessageFormat.__parse(message) : message;

  if (!(ast && ast.type === 'messageFormatPattern')) {
    throw new TypeError('A message must be provided as a String or AST.');
  } // Creates a new object with the specified `formats` merged with the default
  // formats.


  formats = this._mergeFormats(MessageFormat.formats, formats); // Defined first because it's used to build the format pattern.

  src$es5$$.defineProperty(this, '_locale', {
    value: this._resolveLocale(locales)
  }); // Compile the `ast` to a pattern that is highly optimized for repeated
  // `format()` invocations. **Note:** This passes the `locales` set provided
  // to the constructor instead of just the resolved locale.

  var pluralFn = this._findPluralRuleFunction(this._locale);

  var pattern = this._compilePattern(ast, locales, formats, pluralFn); // "Bind" `format()` method to `this` so it can be passed by reference like
  // the other `Intl` APIs.


  var messageFormat = this;

  this.format = function (values) {
    try {
      return messageFormat._format(pattern, values);
    } catch (e) {
      if (e.variableId) {
        throw new Error('The intl string context variable \'' + e.variableId + '\'' + ' was not provided to the string \'' + message + '\'');
      } else {
        throw e;
      }
    }
  };
} // Default format options used as the prototype of the `formats` provided to the
// constructor. These are used when constructing the internal Intl.NumberFormat
// and Intl.DateTimeFormat instances.


src$es5$$.defineProperty(MessageFormat, 'formats', {
  enumerable: true,
  value: {
    number: {
      'currency': {
        style: 'currency'
      },
      'percent': {
        style: 'percent'
      }
    },
    date: {
      'short': {
        month: 'numeric',
        day: 'numeric',
        year: '2-digit'
      },
      'medium': {
        month: 'short',
        day: 'numeric',
        year: 'numeric'
      },
      'long': {
        month: 'long',
        day: 'numeric',
        year: 'numeric'
      },
      'full': {
        weekday: 'long',
        month: 'long',
        day: 'numeric',
        year: 'numeric'
      }
    },
    time: {
      'short': {
        hour: 'numeric',
        minute: 'numeric'
      },
      'medium': {
        hour: 'numeric',
        minute: 'numeric',
        second: 'numeric'
      },
      'long': {
        hour: 'numeric',
        minute: 'numeric',
        second: 'numeric',
        timeZoneName: 'short'
      },
      'full': {
        hour: 'numeric',
        minute: 'numeric',
        second: 'numeric',
        timeZoneName: 'short'
      }
    }
  }
}); // Define internal private properties for dealing with locale data.

src$es5$$.defineProperty(MessageFormat, '__localeData__', {
  value: src$es5$$.objCreate(null)
});
src$es5$$.defineProperty(MessageFormat, '__addLocaleData', {
  value: function (data) {
    if (!(data && data.locale)) {
      throw new Error('Locale data provided to IntlMessageFormat is missing a ' + '`locale` property');
    }

    MessageFormat.__localeData__[data.locale.toLowerCase()] = data;
  }
}); // Defines `__parse()` static method as an exposed private.

src$es5$$.defineProperty(MessageFormat, '__parse', {
  value: intl$messageformat$parser$$["default"].parse
}); // Define public `defaultLocale` property which defaults to English, but can be
// set by the developer.

src$es5$$.defineProperty(MessageFormat, 'defaultLocale', {
  enumerable: true,
  writable: true,
  value: undefined
});

MessageFormat.prototype.resolvedOptions = function () {
  // TODO: Provide anything else?
  return {
    locale: this._locale
  };
};

MessageFormat.prototype._compilePattern = function (ast, locales, formats, pluralFn) {
  var compiler = new src$compiler$$["default"](locales, formats, pluralFn);
  return compiler.compile(ast);
};

MessageFormat.prototype._findPluralRuleFunction = function (locale) {
  var localeData = MessageFormat.__localeData__;
  var data = localeData[locale.toLowerCase()]; // The locale data is de-duplicated, so we have to traverse the locale's
  // hierarchy until we find a `pluralRuleFunction` to return.

  while (data) {
    if (data.pluralRuleFunction) {
      return data.pluralRuleFunction;
    }

    data = data.parentLocale && localeData[data.parentLocale.toLowerCase()];
  }

  throw new Error('Locale data added to IntlMessageFormat is missing a ' + '`pluralRuleFunction` for :' + locale);
};

MessageFormat.prototype._format = function (pattern, values) {
  var result = '',
      i,
      len,
      part,
      id,
      value,
      err;

  for (i = 0, len = pattern.length; i < len; i += 1) {
    part = pattern[i]; // Exist early for string parts.

    if (typeof part === 'string') {
      result += part;
      continue;
    }

    id = part.id; // Enforce that all required values are provided by the caller.

    if (!(values && src$utils$$.hop.call(values, id))) {
      err = new Error('A value must be provided for: ' + id);
      err.variableId = id;
      throw err;
    }

    value = values[id]; // Recursively format plural and select parts' option — which can be a
    // nested pattern structure. The choosing of the option to use is
    // abstracted-by and delegated-to the part helper object.

    if (part.options) {
      result += this._format(part.getOption(value), values);
    } else {
      result += part.format(value);
    }
  }

  return result;
};

MessageFormat.prototype._mergeFormats = function (defaults, formats) {
  var mergedFormats = {},
      type,
      mergedType;

  for (type in defaults) {
    if (!src$utils$$.hop.call(defaults, type)) {
      continue;
    }

    mergedFormats[type] = mergedType = src$es5$$.objCreate(defaults[type]);

    if (formats && src$utils$$.hop.call(formats, type)) {
      src$utils$$.extend(mergedType, formats[type]);
    }
  }

  return mergedFormats;
};

MessageFormat.prototype._resolveLocale = function (locales) {
  if (typeof locales === 'string') {
    locales = [locales];
  } // Create a copy of the array so we can push on the default locale.


  locales = (locales || []).concat(MessageFormat.defaultLocale);
  var localeData = MessageFormat.__localeData__;
  var i, len, localeParts, data; // Using the set of locales + the default locale, we look for the first one
  // which that has been registered. When data does not exist for a locale, we
  // traverse its ancestors to find something that's been registered within
  // its hierarchy of locales. Since we lack the proper `parentLocale` data
  // here, we must take a naive approach to traversal.

  for (i = 0, len = locales.length; i < len; i += 1) {
    localeParts = locales[i].toLowerCase().split('-');

    while (localeParts.length) {
      data = localeData[localeParts.join('-')];

      if (data) {
        // Return the normalized locale string; e.g., we return "en-US",
        // instead of "en-us".
        return data.locale;
      }

      localeParts.pop();
    }
  }

  var defaultLocale = locales.pop();
  throw new Error('No locale data has been added to IntlMessageFormat for: ' + locales.join(', ') + ', or the default locale: ' + defaultLocale);
};

/***/ }),

/***/ "fNZA":
/***/ (function(module, exports, __webpack_require__) {

var classof = __webpack_require__("QMMT");

var ITERATOR = __webpack_require__("UWiX")('iterator');

var Iterators = __webpack_require__("SBuE");

module.exports = __webpack_require__("WEpk").getIteratorMethod = function (it) {
  if (it != undefined) return it[ITERATOR] || it['@@iterator'] || Iterators[classof(it)];
};

/***/ }),

/***/ "fSpj":
/***/ (function(module, exports) {

var MAX_ALLOC = Math.pow(2, 30) - 1; // default in iojs

module.exports = function (iterations, keylen) {
  if (typeof iterations !== 'number') {
    throw new TypeError('Iterations not a number');
  }

  if (iterations < 0) {
    throw new TypeError('Bad iterations');
  }

  if (typeof keylen !== 'number') {
    throw new TypeError('Key length not a number');
  }

  if (keylen < 0 || keylen > MAX_ALLOC || keylen !== keylen) {
    /* eslint no-self-compare: 0 */
    throw new TypeError('Bad key length');
  }
};

/***/ }),

/***/ "fXKp":
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright Joyent, Inc. and other Node contributors.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to permit
// persons to whom the Software is furnished to do so, subject to the
// following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
// USE OR OTHER DEALINGS IN THE SOFTWARE.

/*<replacement>*/

var Buffer = __webpack_require__("hwdV").Buffer;
/*</replacement>*/


var isEncoding = Buffer.isEncoding || function (encoding) {
  encoding = '' + encoding;

  switch (encoding && encoding.toLowerCase()) {
    case 'hex':
    case 'utf8':
    case 'utf-8':
    case 'ascii':
    case 'binary':
    case 'base64':
    case 'ucs2':
    case 'ucs-2':
    case 'utf16le':
    case 'utf-16le':
    case 'raw':
      return true;

    default:
      return false;
  }
};

function _normalizeEncoding(enc) {
  if (!enc) return 'utf8';
  var retried;

  while (true) {
    switch (enc) {
      case 'utf8':
      case 'utf-8':
        return 'utf8';

      case 'ucs2':
      case 'ucs-2':
      case 'utf16le':
      case 'utf-16le':
        return 'utf16le';

      case 'latin1':
      case 'binary':
        return 'latin1';

      case 'base64':
      case 'ascii':
      case 'hex':
        return enc;

      default:
        if (retried) return; // undefined

        enc = ('' + enc).toLowerCase();
        retried = true;
    }
  }
}

; // Do not cache `Buffer.isEncoding` when checking encoding names as some
// modules monkey-patch it to support additional encodings

function normalizeEncoding(enc) {
  var nenc = _normalizeEncoding(enc);

  if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);
  return nenc || enc;
} // StringDecoder provides an interface for efficiently splitting a series of
// buffers into a series of JS strings without breaking apart multi-byte
// characters.


exports.StringDecoder = StringDecoder;

function StringDecoder(encoding) {
  this.encoding = normalizeEncoding(encoding);
  var nb;

  switch (this.encoding) {
    case 'utf16le':
      this.text = utf16Text;
      this.end = utf16End;
      nb = 4;
      break;

    case 'utf8':
      this.fillLast = utf8FillLast;
      nb = 4;
      break;

    case 'base64':
      this.text = base64Text;
      this.end = base64End;
      nb = 3;
      break;

    default:
      this.write = simpleWrite;
      this.end = simpleEnd;
      return;
  }

  this.lastNeed = 0;
  this.lastTotal = 0;
  this.lastChar = Buffer.allocUnsafe(nb);
}

StringDecoder.prototype.write = function (buf) {
  if (buf.length === 0) return '';
  var r;
  var i;

  if (this.lastNeed) {
    r = this.fillLast(buf);
    if (r === undefined) return '';
    i = this.lastNeed;
    this.lastNeed = 0;
  } else {
    i = 0;
  }

  if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);
  return r || '';
};

StringDecoder.prototype.end = utf8End; // Returns only complete characters in a Buffer

StringDecoder.prototype.text = utf8Text; // Attempts to complete a partial non-UTF-8 character using bytes from a Buffer

StringDecoder.prototype.fillLast = function (buf) {
  if (this.lastNeed <= buf.length) {
    buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);
    return this.lastChar.toString(this.encoding, 0, this.lastTotal);
  }

  buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);
  this.lastNeed -= buf.length;
}; // Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a
// continuation byte. If an invalid byte is detected, -2 is returned.


function utf8CheckByte(byte) {
  if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;
  return byte >> 6 === 0x02 ? -1 : -2;
} // Checks at most 3 bytes at the end of a Buffer in order to detect an
// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)
// needed to complete the UTF-8 character (if applicable) are returned.


function utf8CheckIncomplete(self, buf, i) {
  var j = buf.length - 1;
  if (j < i) return 0;
  var nb = utf8CheckByte(buf[j]);

  if (nb >= 0) {
    if (nb > 0) self.lastNeed = nb - 1;
    return nb;
  }

  if (--j < i || nb === -2) return 0;
  nb = utf8CheckByte(buf[j]);

  if (nb >= 0) {
    if (nb > 0) self.lastNeed = nb - 2;
    return nb;
  }

  if (--j < i || nb === -2) return 0;
  nb = utf8CheckByte(buf[j]);

  if (nb >= 0) {
    if (nb > 0) {
      if (nb === 2) nb = 0;else self.lastNeed = nb - 3;
    }

    return nb;
  }

  return 0;
} // Validates as many continuation bytes for a multi-byte UTF-8 character as
// needed or are available. If we see a non-continuation byte where we expect
// one, we "replace" the validated continuation bytes we've seen so far with
// a single UTF-8 replacement character ('\ufffd'), to match v8's UTF-8 decoding
// behavior. The continuation byte check is included three times in the case
// where all of the continuation bytes for a character exist in the same buffer.
// It is also done this way as a slight performance increase instead of using a
// loop.


function utf8CheckExtraBytes(self, buf, p) {
  if ((buf[0] & 0xC0) !== 0x80) {
    self.lastNeed = 0;
    return '\ufffd';
  }

  if (self.lastNeed > 1 && buf.length > 1) {
    if ((buf[1] & 0xC0) !== 0x80) {
      self.lastNeed = 1;
      return '\ufffd';
    }

    if (self.lastNeed > 2 && buf.length > 2) {
      if ((buf[2] & 0xC0) !== 0x80) {
        self.lastNeed = 2;
        return '\ufffd';
      }
    }
  }
} // Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.


function utf8FillLast(buf) {
  var p = this.lastTotal - this.lastNeed;
  var r = utf8CheckExtraBytes(this, buf, p);
  if (r !== undefined) return r;

  if (this.lastNeed <= buf.length) {
    buf.copy(this.lastChar, p, 0, this.lastNeed);
    return this.lastChar.toString(this.encoding, 0, this.lastTotal);
  }

  buf.copy(this.lastChar, p, 0, buf.length);
  this.lastNeed -= buf.length;
} // Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a
// partial character, the character's bytes are buffered until the required
// number of bytes are available.


function utf8Text(buf, i) {
  var total = utf8CheckIncomplete(this, buf, i);
  if (!this.lastNeed) return buf.toString('utf8', i);
  this.lastTotal = total;
  var end = buf.length - (total - this.lastNeed);
  buf.copy(this.lastChar, 0, end);
  return buf.toString('utf8', i, end);
} // For UTF-8, a replacement character is added when ending on a partial
// character.


function utf8End(buf) {
  var r = buf && buf.length ? this.write(buf) : '';
  if (this.lastNeed) return r + '\ufffd';
  return r;
} // UTF-16LE typically needs two bytes per character, but even if we have an even
// number of bytes available, we need to check if we end on a leading/high
// surrogate. In that case, we need to wait for the next two bytes in order to
// decode the last character properly.


function utf16Text(buf, i) {
  if ((buf.length - i) % 2 === 0) {
    var r = buf.toString('utf16le', i);

    if (r) {
      var c = r.charCodeAt(r.length - 1);

      if (c >= 0xD800 && c <= 0xDBFF) {
        this.lastNeed = 2;
        this.lastTotal = 4;
        this.lastChar[0] = buf[buf.length - 2];
        this.lastChar[1] = buf[buf.length - 1];
        return r.slice(0, -1);
      }
    }

    return r;
  }

  this.lastNeed = 1;
  this.lastTotal = 2;
  this.lastChar[0] = buf[buf.length - 1];
  return buf.toString('utf16le', i, buf.length - 1);
} // For UTF-16LE we do not explicitly append special replacement characters if we
// end on a partial character, we simply let v8 handle that.


function utf16End(buf) {
  var r = buf && buf.length ? this.write(buf) : '';

  if (this.lastNeed) {
    var end = this.lastTotal - this.lastNeed;
    return r + this.lastChar.toString('utf16le', 0, end);
  }

  return r;
}

function base64Text(buf, i) {
  var n = (buf.length - i) % 3;
  if (n === 0) return buf.toString('base64', i);
  this.lastNeed = 3 - n;
  this.lastTotal = 3;

  if (n === 1) {
    this.lastChar[0] = buf[buf.length - 1];
  } else {
    this.lastChar[0] = buf[buf.length - 2];
    this.lastChar[1] = buf[buf.length - 1];
  }

  return buf.toString('base64', i, buf.length - n);
}

function base64End(buf) {
  var r = buf && buf.length ? this.write(buf) : '';
  if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);
  return r;
} // Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)


function simpleWrite(buf) {
  return buf.toString(this.encoding);
}

function simpleEnd(buf) {
  return buf && buf.length ? this.write(buf) : '';
}

/***/ }),

/***/ "fXsU":
/***/ (function(module, exports, __webpack_require__) {

var anObject = __webpack_require__("5K7Z");

var get = __webpack_require__("fNZA");

module.exports = __webpack_require__("WEpk").getIterator = function (it) {
  var iterFn = get(it);
  if (typeof iterFn != 'function') throw TypeError(it + ' is not iterable!');
  return anObject(iterFn.call(it));
};

/***/ }),

/***/ "fZJM":
/***/ (function(module, exports, __webpack_require__) {

var hash = exports;
hash.utils = __webpack_require__("w8CP");
hash.common = __webpack_require__("7ckf");
hash.sha = __webpack_require__("WRkp");
hash.ripemd = __webpack_require__("u0Sq");
hash.hmac = __webpack_require__("ITfd"); // Proxy hash functions to the main object

hash.sha1 = hash.sha.sha1;
hash.sha256 = hash.sha.sha256;
hash.sha224 = hash.sha.sha224;
hash.sha384 = hash.sha.sha384;
hash.sha512 = hash.sha.sha512;
hash.ripemd160 = hash.ripemd.ripemd160;

/***/ }),

/***/ "feQ5":
/***/ (function(module) {

module.exports = JSON.parse("{\"close\":\"Sluiten\",\"error\":\"Fout\",\"info\":\"Informatie\",\"success\":\"Geslaagd\",\"warning\":\"Waarschuwing\"}");

/***/ }),

/***/ "fjGn":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("dO2t"),
      24: __webpack_require__("dgy4")
    }
  }));
};

WrappedIcon.displayName = 'ChevronLeft';
exports.default = WrappedIcon;

/***/ }),

/***/ "fja1":
/***/ (function(module) {

module.exports = JSON.parse("{\"steps\":\"{currentStep} von {totalSteps}\"}");

/***/ }),

/***/ "flbR":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _createClass = function () {
  function defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i];
      descriptor.enumerable = descriptor.enumerable || false;
      descriptor.configurable = true;
      if ("value" in descriptor) descriptor.writable = true;
      Object.defineProperty(target, descriptor.key, descriptor);
    }
  }

  return function (Constructor, protoProps, staticProps) {
    if (protoProps) defineProperties(Constructor.prototype, protoProps);
    if (staticProps) defineProperties(Constructor, staticProps);
    return Constructor;
  };
}();

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

var _propTypes = __webpack_require__("17x9");

var _propTypes2 = _interopRequireDefault(_propTypes);

var _IngestController = __webpack_require__("r+vD");

var _IngestController2 = _interopRequireDefault(_IngestController);

var _context = __webpack_require__("ld/C");

var _lodash = __webpack_require__("XaGS");

var _lodash2 = _interopRequireDefault(_lodash);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _classCallCheck(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}

function _possibleConstructorReturn(self, call) {
  if (!self) {
    throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
  }

  return call && (typeof call === "object" || typeof call === "function") ? call : self;
}

function _inherits(subClass, superClass) {
  if (typeof superClass !== "function" && superClass !== null) {
    throw new TypeError("Super expression must either be null or a function, not " + typeof superClass);
  }

  subClass.prototype = Object.create(superClass && superClass.prototype, {
    constructor: {
      value: subClass,
      enumerable: false,
      writable: true,
      configurable: true
    }
  });
  if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;
}
/**
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe. All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe Inc. and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe Inc.
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Inc.
 */

/**
 * IngestProvider component
 */


var IngestProvider = function (_React$Component) {
  _inherits(IngestProvider, _React$Component);
  /**
   * Constructor for child component
   * @param {object} props - props sent to the component
   * @returns {undefined}
   */


  function IngestProvider(props) {
    _classCallCheck(this, IngestProvider);

    var _this = _possibleConstructorReturn(this, (IngestProvider.__proto__ || Object.getPrototypeOf(IngestProvider)).call(this, props));

    var state = {};

    if (!props.project) {
      if (props.env !== 'prod' && props.env !== 'production') {
        console.error('When instantiated the Ingest Provider component must be given a project prop.');
      }
    } else if (!props.apiKey) {
      if (props.env !== 'prod' && props.env !== 'production') {
        console.error('When instantiated the Ingest Provider component must be given an api prop.');
      }
    } else if (!props.token && !props.allowNoToken) {
      if (props.env !== 'prod' && props.env !== 'production') {
        console.error('When instantiated the Ingest Provider component must be given a token prop.');
      }
    } else {
      state = {
        controller: new _IngestController2.default(props)
      };
    }

    _this.state = state;
    return _this;
  }
  /**
   * Lifecycle method for when a component will get new props
   * @param {object} prevProps - old props sent to the component
   * @returns {undefined}
   */


  _createClass(IngestProvider, [{
    key: 'componentDidUpdate',
    value: function componentDidUpdate(prevProps) {
      var reset = false;

      if (this.props.token !== prevProps.token) {
        reset = true;
      }

      if (!(0, _lodash2.default)(prevProps.data, this.props.data)) {
        reset = true;
      }

      if (reset) {
        var newController = new _IngestController2.default(this.props);
        this.setState({
          controller: newController
        });
      }
    }
    /**
     * Function to provide access to controller instance
     * @returns {object} ingest controller instance
     */

  }, {
    key: 'getController',
    value: function getController() {
      return this.state.controller;
    }
    /**
     * Lifecycle method for render
     * @returns {ReactElement} markup
     */

  }, {
    key: 'render',
    value: function render() {
      var existingContext = this.context || {};
      existingContext[this.props.project] = this.state.controller;
      return _react2.default.createElement(_context.IngestContext.Provider, {
        value: existingContext
      }, this.props.children);
    }
  }]);

  return IngestProvider;
}(_react2.default.Component);

IngestProvider.contextType = _context.IngestContext;
exports.default = IngestProvider;
IngestProvider.defaultProps = {
  env: 'stage'
};
IngestProvider.propTypes = {
  allowNoToken: _propTypes2.default.bool,
  apiKey: _propTypes2.default.string.isRequired,
  data: _propTypes2.default.object,
  debounce: _propTypes2.default.number,
  children: _propTypes2.default.node,
  env: _propTypes2.default.string,
  ingestType: _propTypes2.default.string,
  maQueuedEvents: _propTypes2.default.number,
  onLog: _propTypes2.default.func,
  product: _propTypes2.default.string,
  productLocation: _propTypes2.default.string,
  project: _propTypes2.default.string.isRequired,
  timestampPropertyName: _propTypes2.default.string,
  token: _propTypes2.default.string,
  userRegion: _propTypes2.default.string
};

/***/ }),

/***/ "fmRc":
/***/ (function(module, exports, __webpack_require__) {

var ListCache = __webpack_require__("Xi7e"),
    stackClear = __webpack_require__("77Zs"),
    stackDelete = __webpack_require__("L8xA"),
    stackGet = __webpack_require__("gCq4"),
    stackHas = __webpack_require__("VaNO"),
    stackSet = __webpack_require__("0Cz8");
/**
 * Creates a stack cache object to store key-value pairs.
 *
 * @private
 * @constructor
 * @param {Array} [entries] The key-value pairs to cache.
 */


function Stack(entries) {
  var data = this.__data__ = new ListCache(entries);
  this.size = data.size;
} // Add methods to `Stack`.


Stack.prototype.clear = stackClear;
Stack.prototype['delete'] = stackDelete;
Stack.prototype.get = stackGet;
Stack.prototype.has = stackHas;
Stack.prototype.set = stackSet;
module.exports = Stack;

/***/ }),

/***/ "fnSZ":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("path", {
  d: "M8 14.02a2 2 0 0 1 3.411-1.411l6.578 6.572 6.578-6.572a2 2 0 0 1 2.874 2.773l-.049.049-7.992 7.984a2 2 0 0 1-2.825 0l-7.989-7.983A1.989 1.989 0 0 1 8 14.02z"
}));

/***/ }),

/***/ "fnjI":
/***/ (function(module, exports, __webpack_require__) {

/*
 * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined
 * in FIPS PUB 180-1
 * Version 2.1a Copyright Paul Johnston 2000 - 2002.
 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
 * Distributed under the BSD License
 * See http://pajhome.org.uk/crypt/md5 for details.
 */
var inherits = __webpack_require__("P7XM");

var Hash = __webpack_require__("tnIz");

var Buffer = __webpack_require__("hwdV").Buffer;

var K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0];
var W = new Array(80);

function Sha1() {
  this.init();
  this._w = W;
  Hash.call(this, 64, 56);
}

inherits(Sha1, Hash);

Sha1.prototype.init = function () {
  this._a = 0x67452301;
  this._b = 0xefcdab89;
  this._c = 0x98badcfe;
  this._d = 0x10325476;
  this._e = 0xc3d2e1f0;
  return this;
};

function rotl1(num) {
  return num << 1 | num >>> 31;
}

function rotl5(num) {
  return num << 5 | num >>> 27;
}

function rotl30(num) {
  return num << 30 | num >>> 2;
}

function ft(s, b, c, d) {
  if (s === 0) return b & c | ~b & d;
  if (s === 2) return b & c | b & d | c & d;
  return b ^ c ^ d;
}

Sha1.prototype._update = function (M) {
  var W = this._w;
  var a = this._a | 0;
  var b = this._b | 0;
  var c = this._c | 0;
  var d = this._d | 0;
  var e = this._e | 0;

  for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4);

  for (; i < 80; ++i) W[i] = rotl1(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16]);

  for (var j = 0; j < 80; ++j) {
    var s = ~~(j / 20);
    var t = rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s] | 0;
    e = d;
    d = c;
    c = rotl30(b);
    b = a;
    a = t;
  }

  this._a = a + this._a | 0;
  this._b = b + this._b | 0;
  this._c = c + this._c | 0;
  this._d = d + this._d | 0;
  this._e = e + this._e | 0;
};

Sha1.prototype._hash = function () {
  var H = Buffer.allocUnsafe(20);
  H.writeInt32BE(this._a | 0, 0);
  H.writeInt32BE(this._b | 0, 4);
  H.writeInt32BE(this._c | 0, 8);
  H.writeInt32BE(this._d | 0, 12);
  H.writeInt32BE(this._e | 0, 16);
  return H;
};

module.exports = Sha1;

/***/ }),

/***/ "foFK":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = configureTypekit;
/*************************************************************************
* ADOBE CONFIDENTIAL
* ___________________
*
* Copyright 2019 Adobe
* All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains
* the property of Adobe and its suppliers, if any. The intellectual
* and technical concepts contained herein are proprietary to Adobe
* and its suppliers and are protected by all applicable intellectual
* property laws, including trade secret and copyright laws.
* Dissemination of this information or reproduction of this material
* is strictly forbidden unless prior written permission is obtained
* from Adobe.
**************************************************************************/

function configureTypekit(typeKitId) {
  const config = {
    kitId: typeKitId,
    scriptTimeout: 3000
  };

  if (!window.Typekit) {
    // we load the typescript only once
    const h = document.getElementsByTagName('html')[0];
    h.className += ' wf-loading';
    const t = setTimeout(() => {
      h.className = h.className.replace(/(\s|^)wf-loading(\s|$)/g, ' ');
      h.className += ' wf-inactive';
    }, config.scriptTimeout);
    const tk = document.createElement('script');
    let d = false;
    tk.src = `https://use.typekit.net/${config.kitId}.js`;
    tk.type = 'text/javascript';
    tk.async = 'true';

    tk.onload = tk.onreadystatechange = function onload() {
      const a = this.readyState;

      if (d || a && a !== 'complete' && a !== 'loaded') {
        return;
      }

      d = true;
      clearTimeout(t);

      try {
        window.Typekit.load(config);
      } catch (b) {
        /* empty */
      }
    };

    const s = document.getElementsByTagName('script')[0];
    s.parentNode.insertBefore(tk, s);
  }
}

/***/ }),

/***/ "fpC5":
/***/ (function(module, exports, __webpack_require__) {

var dP = __webpack_require__("2faE");

var anObject = __webpack_require__("5K7Z");

var getKeys = __webpack_require__("w6GO");

module.exports = __webpack_require__("jmDH") ? Object.defineProperties : function defineProperties(O, Properties) {
  anObject(O);
  var keys = getKeys(Properties);
  var length = keys.length;
  var i = 0;
  var P;

  while (length > i) dP.f(O, P = keys[i++], Properties[P]);

  return O;
};

/***/ }),

/***/ "fpU1":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var _interopRequireDefault = __webpack_require__("TqRt");

exports.__esModule = true;
exports.default = position;

var _extends2 = _interopRequireDefault(__webpack_require__("pVnL"));

var _offset = _interopRequireDefault(__webpack_require__("A63a"));

var _offsetParent = _interopRequireDefault(__webpack_require__("AXck"));

var _scrollTop = _interopRequireDefault(__webpack_require__("ZfQF"));

var _scrollLeft = _interopRequireDefault(__webpack_require__("+i7v"));

var _style = _interopRequireDefault(__webpack_require__("sKrG"));

function nodeName(node) {
  return node.nodeName && node.nodeName.toLowerCase();
}

function position(node, offsetParent) {
  var parentOffset = {
    top: 0,
    left: 0
  },
      offset; // Fixed elements are offset from window (parentOffset = {top:0, left: 0},
  // because it is its only offset parent

  if ((0, _style.default)(node, 'position') === 'fixed') {
    offset = node.getBoundingClientRect();
  } else {
    offsetParent = offsetParent || (0, _offsetParent.default)(node);
    offset = (0, _offset.default)(node);
    if (nodeName(offsetParent) !== 'html') parentOffset = (0, _offset.default)(offsetParent);
    parentOffset.top += parseInt((0, _style.default)(offsetParent, 'borderTopWidth'), 10) - (0, _scrollTop.default)(offsetParent) || 0;
    parentOffset.left += parseInt((0, _style.default)(offsetParent, 'borderLeftWidth'), 10) - (0, _scrollLeft.default)(offsetParent) || 0;
  } // Subtract parent offsets and node margins


  return (0, _extends2.default)({}, offset, {
    top: offset.top - parentOffset.top - (parseInt((0, _style.default)(node, 'marginTop'), 10) || 0),
    left: offset.left - parentOffset.left - (parseInt((0, _style.default)(node, 'marginLeft'), 10) || 0)
  });
}

module.exports = exports["default"];

/***/ }),

/***/ "fqQG":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _optionalChain; });
/**
 * Polyfill for the optional chain operator, `?.`, given previous conversion of the expression into an array of values,
 * descriptors, and functions.
 *
 * Adapted from Sucrase (https://github.com/alangpierce/sucrase)
 * See https://github.com/alangpierce/sucrase/blob/265887868966917f3b924ce38dfad01fbab1329f/src/transformers/OptionalChainingNullishTransformer.ts#L15
 *
 * @param ops Array result of expression conversion
 * @returns The value of the expression
 */
function _optionalChain(ops) {
  let lastAccessLHS = undefined;
  let value = ops[0];
  let i = 1;

  while (i < ops.length) {
    const op = ops[i];
    const fn = ops[i + 1];
    i += 2; // by checking for loose equality to `null`, we catch both `null` and `undefined`

    if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {
      // really we're meaning to return `undefined` as an actual value here, but it saves bytes not to write it
      return;
    }

    if (op === 'access' || op === 'optionalAccess') {
      lastAccessLHS = value;
      value = fn(value);
    } else if (op === 'call' || op === 'optionalCall') {
      value = fn((...args) => value.call(lastAccessLHS, ...args));
      lastAccessLHS = undefined;
    }
  }

  return value;
} // Sucrase version
// function _optionalChain(ops) {
//   let lastAccessLHS = undefined;
//   let value = ops[0];
//   let i = 1;
//   while (i < ops.length) {
//     const op = ops[i];
//     const fn = ops[i + 1];
//     i += 2;
//     if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) {
//       return undefined;
//     }
//     if (op === 'access' || op === 'optionalAccess') {
//       lastAccessLHS = value;
//       value = fn(value);
//     } else if (op === 'call' || op === 'optionalCall') {
//       value = fn((...args) => value.call(lastAccessLHS, ...args));
//       lastAccessLHS = undefined;
//     }
//   }
//   return value;
// }




/***/ }),

/***/ "fr3g":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("2vnA");
/* harmony import */ var _types_IAssetModel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Z0ZO");
/* harmony import */ var _types_IAssetModel__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_types_IAssetModel__WEBPACK_IMPORTED_MODULE_1__);
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2019 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
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;
};
var __metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var _a, _b, _c, _d, _e;


let nextStoreId = 0;
class SelectionStore {
    constructor(elements = []) {
        this.storeId = nextStoreId++;
        this.updateId = mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"].box(0);
        this.addSelection = (element) => {
            this.selections.set(element.id, element);
        };
        this.removeSelection = (element) => {
            this.selections.delete(element.id);
        };
        this.selections = new Map(elements.map(e => [e.id, e]));
        // Increment updateid any time `selections` changes, so that React-virtualized can be notified of changes to
        // to selection (alternative would be to pass all selections.keys
        // @ts-ignore
        Object(mobx__WEBPACK_IMPORTED_MODULE_0__[/* observe */ "A"])(this.selections, () => this.updateId++);
    }
    addSelections(elements) {
        elements.forEach(this.addSelection);
    }
    removeSelections(elements) {
        elements.forEach(this.removeSelection);
    }
    toggleSelection(element, isStartingItem) {
        if (this.selections.has(element.id)) {
            this.removeSelection(element);
            if (isStartingItem) {
                this.startItem = undefined;
            }
        }
        else {
            this.addSelection(element);
            if (isStartingItem) {
                this.startItem = element;
            }
        }
        this.endItem = undefined;
    }
    setEndItem(element) {
        this.endItem = element;
    }
    clear() {
        this.selections.clear();
    }
    isSelected(element) {
        return this.selections.has(element.id);
    }
    get size() {
        return this.selections.size;
    }
    get hasAny() {
        return this.size > 0;
    }
    get hasOnlyOne() {
        return this.size === 1;
    }
    get hasMultiple() {
        return this.size > 1;
    }
    get canMakeAvailableOffline() {
        return this.hasAny && !this.hasOnlyOfflineFiles;
    }
    get canMakeOnlineOnly() {
        return this.hasOnlyOfflineFiles;
    }
    get hasOnlineOnlyItems() {
        return this.hasAny && this.selectedElements.some((el) => !el.isCached);
    }
    get hasOnlyOfflineFiles() {
        return this.hasAny && this.selectedElements.every((el) => el.isUserPinned);
    }
    get hasFolders() {
        return this.selectedElements.some((el) => el.isFolder);
    }
    get hasOnlyFolders() {
        return this.selectedElements.every((el) => el.isFolder);
    }
    get hasOnlyNonFolders() {
        return this.hasAny && !this.hasFolders;
    }
    get selectedElements() {
        return [...this.selections.values()];
    }
    get selectedIds() {
        return [...this.selections.keys()];
    }
    get storeUpdateId() {
        // Use storeId and updateId to ensure that different instances of SelectionStore
        // return unique values regardless of how many updates have happened.
        return `selectionStore-${this.storeId}-${this.updateId}`;
    }
    every(mapper) {
        return this.selectedElements.every(mapper);
    }
    some(mapper) {
        return this.selectedElements.some(mapper);
    }
    everyItemIsInSection(spacesSection) {
        return this.selectedElements.every(item => item.spacesSection === spacesSection);
    }
    hasOnlyActionableItemsWhileOffline(isOnline) {
        if (this.hasFolders) {
            // all actions on folders require the user to be online
            return isOnline;
        }
        return isOnline || !this.hasOnlineOnlyItems;
    }
}
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", typeof (_a = typeof mobx__WEBPACK_IMPORTED_MODULE_0__["IObservableValue"] !== "undefined" && mobx__WEBPACK_IMPORTED_MODULE_0__["IObservableValue"]) === "function" ? _a : Object)
], SelectionStore.prototype, "updateId", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", typeof (_b = typeof Map !== "undefined" && Map) === "function" ? _b : Object)
], SelectionStore.prototype, "selections", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", Object)
], SelectionStore.prototype, "startItem", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", Object)
], SelectionStore.prototype, "endItem", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [Array]),
    __metadata("design:returntype", void 0)
], SelectionStore.prototype, "addSelections", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [Array]),
    __metadata("design:returntype", void 0)
], SelectionStore.prototype, "removeSelections", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [typeof (_e = typeof _types_IAssetModel__WEBPACK_IMPORTED_MODULE_1___default.a !== "undefined" && _types_IAssetModel__WEBPACK_IMPORTED_MODULE_1___default.a) === "function" ? _e : Object, Boolean]),
    __metadata("design:returntype", void 0)
], SelectionStore.prototype, "toggleSelection", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [Object]),
    __metadata("design:returntype", void 0)
], SelectionStore.prototype, "setEndItem", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", []),
    __metadata("design:returntype", void 0)
], SelectionStore.prototype, "clear", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [])
], SelectionStore.prototype, "hasOnlineOnlyItems", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [])
], SelectionStore.prototype, "hasOnlyOfflineFiles", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [])
], SelectionStore.prototype, "hasFolders", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [])
], SelectionStore.prototype, "hasOnlyFolders", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [])
], SelectionStore.prototype, "hasOnlyNonFolders", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Array),
    __metadata("design:paramtypes", [])
], SelectionStore.prototype, "selectedElements", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Array),
    __metadata("design:paramtypes", [])
], SelectionStore.prototype, "selectedIds", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", String),
    __metadata("design:paramtypes", [])
], SelectionStore.prototype, "storeUpdateId", null);
/* harmony default export */ __webpack_exports__["a"] = (SelectionStore);


/***/ }),

/***/ "fwSh":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("path", {
  d: "M23.683 14.13a7.886 7.886 0 0 1 1.843-.118 9.64 9.64 0 0 1 1.98.368 12.619 12.619 0 0 0 .886-4.433c0-4.61-2.88-7.923-7.148-7.518a10.914 10.914 0 0 1 3 8.066 12.623 12.623 0 0 1-.561 3.635zM14 25.013a3.005 3.005 0 0 1 2.141-2.875 8.929 8.929 0 0 1 4.574-6.981 10.908 10.908 0 0 0 1.134-4.657c0-5.2-2.756-8.1-6.919-8.1s-7 3.018-7 8.1a11.121 11.121 0 0 0 2.622 6.865 1.439 1.439 0 0 1 .367.93v2.074a1.431 1.431 0 0 1-1.248 1.444C1.307 22.537 0 28.259 0 30.516c0 .25.029 3.237.048 3.484H14z"
}), React.createElement("path", {
  d: "M33 24h-.955v-1.008a7 7 0 0 0-14 0V24H17a1 1 0 0 0-1 1v10a1 1 0 0 0 1 1h16a1 1 0 0 0 1-1V25a1 1 0 0 0-1-1zm-6.566 7.422v1.928a.694.694 0 0 1-.694.694h-1.388a.694.694 0 0 1-.694-.694v-1.928a2.082 2.082 0 1 1 2.776 0zM29.545 24h-9v-1.008a4.5 4.5 0 0 1 9 0z"
}));

/***/ }),

/***/ "g+Pt":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _createClass = function () {
  function defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i];
      descriptor.enumerable = descriptor.enumerable || false;
      descriptor.configurable = true;
      if ("value" in descriptor) descriptor.writable = true;
      Object.defineProperty(target, descriptor.key, descriptor);
    }
  }

  return function (Constructor, protoProps, staticProps) {
    if (protoProps) defineProperties(Constructor.prototype, protoProps);
    if (staticProps) defineProperties(Constructor, staticProps);
    return Constructor;
  };
}();

var _lodash = __webpack_require__("4Dm8");

var _lodash2 = _interopRequireDefault(_lodash);

var _DAO2 = __webpack_require__("io2S");

var _DAO3 = _interopRequireDefault(_DAO2);

var _utils = __webpack_require__("VKd2");

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _classCallCheck(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}

function _possibleConstructorReturn(self, call) {
  if (!self) {
    throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
  }

  return call && (typeof call === "object" || typeof call === "function") ? call : self;
}

function _inherits(subClass, superClass) {
  if (typeof superClass !== "function" && superClass !== null) {
    throw new TypeError("Super expression must either be null or a function, not " + typeof superClass);
  }

  subClass.prototype = Object.create(superClass && superClass.prototype, {
    constructor: {
      value: subClass,
      enumerable: false,
      writable: true,
      configurable: true
    }
  });
  if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;
}
/**
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 */


var InstanceConfig = {};
/**
 * PATH - in the API can be in one of the following forms:
 * A storage service path. Example: cloud-content/56475bf9-dd79-401b-8978-9b88780bae41.xdc
 * A storage service id-based path. Example: id/urn:aaid:sc:US:2f86d5e2-0fd2-49b8-a05e-6a47cd056486
 * A full storage service path-based URL. Example: https://cc-api-storage-stage.adobe.io/cloud-content/56475bf9-dd79-401b-8978-9b88780bae41.xdc
 * A full storage service id-based URL. Example: https://cc-api-storage-stage.adobe.io/id/urn:aaid:sc:US:05286244-1eae-4e51-89a9-9ac99d6647f5
 */

/**
 * Share endpoint for api version three.
 */

var ShareService = function (_DAO) {
  _inherits(ShareService, _DAO);

  function ShareService() {
    _classCallCheck(this, ShareService);

    return _possibleConstructorReturn(this, (ShareService.__proto__ || Object.getPrototypeOf(ShareService)).apply(this, arguments));
  }

  _createClass(ShareService, [{
    key: 'delete',

    /**
     * Delete self
     * @param {String} resourceUrl - CC Storage path (path based or ID-based)
     *
     * @returns {Promise} A Promise that removes the collaborator for a particular resource URL
     */
    value: function _delete(resourceUrl) {
      var url = this.endpoint + '/share/' + (0, _utils.getUrlPath)(resourceUrl);

      if (!resourceUrl) {
        throw new Error('Missing Resource Path Url');
      }

      return this.deleteRequest({
        url: url
      });
    }
    /**
    * get - get sharing information for a resource
    * @param {String} resourceUrl - CC Storage path (path based or ID-based)
    * @returns {Promise}
    */

  }, {
    key: 'get',
    value: function get(resourceUrl) {
      var url = this.endpoint + '/share/' + (0, _utils.getUrlPath)(resourceUrl);

      if (!resourceUrl) {
        throw new Error('Missing Resource resource Url');
      }

      return this.getRequest({
        url: url
      });
    }
    /**
     * patch - modify or remove sharing for a resource
     * @param {String} resourceUrl - resource path.
     * @param {Object} request - object with all the entities that you want to change.
     * @returns {Promise}
     */

  }, {
    key: 'patch',
    value: function patch(resourceUrl) {
      var request = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
      var url = this.endpoint + '/share/' + (0, _utils.getUrlPath)(resourceUrl);

      if (!resourceUrl || (0, _lodash2.default)(request) < 1) {
        throw new Error('Missing Resource Path or Request paramaters');
      }

      return this.patchRequest({
        url: url,
        params: request
      });
    }
    /**
     * post - add collaborators or invitations for a resource
     * @param {String} resourceUrl - resource path.
     * @param {Object} request - object with all the paramaters to send request to individual entities.
     * @returns {Promise} 
     */

  }, {
    key: 'post',
    value: function post(resourceUrl) {
      var request = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
      var url = this.endpoint + '/share/' + (0, _utils.getUrlPath)(resourceUrl);

      if (!resourceUrl || (0, _lodash2.default)(request) < 1) {
        throw new Error('Missing Resource Path or Request paramaters');
      }

      return this.postRequest({
        url: url,
        params: request
      });
    }
  }]);

  return ShareService;
}(_DAO3.default);

exports.default = (0, _utils.InstanceCreator)(ShareService, InstanceConfig);
module.exports = exports['default'];

/***/ }),

/***/ "g2Dh":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


const Reporter = __webpack_require__("0cit").Reporter;

const EncoderBuffer = __webpack_require__("YoN+").EncoderBuffer;

const DecoderBuffer = __webpack_require__("YoN+").DecoderBuffer;

const assert = __webpack_require__("2j6C"); // Supported tags


const tags = ['seq', 'seqof', 'set', 'setof', 'objid', 'bool', 'gentime', 'utctime', 'null_', 'enum', 'int', 'objDesc', 'bitstr', 'bmpstr', 'charstr', 'genstr', 'graphstr', 'ia5str', 'iso646str', 'numstr', 'octstr', 'printstr', 't61str', 'unistr', 'utf8str', 'videostr']; // Public methods list

const methods = ['key', 'obj', 'use', 'optional', 'explicit', 'implicit', 'def', 'choice', 'any', 'contains'].concat(tags); // Overrided methods list

const overrided = ['_peekTag', '_decodeTag', '_use', '_decodeStr', '_decodeObjid', '_decodeTime', '_decodeNull', '_decodeInt', '_decodeBool', '_decodeList', '_encodeComposite', '_encodeStr', '_encodeObjid', '_encodeTime', '_encodeNull', '_encodeInt', '_encodeBool'];

function Node(enc, parent, name) {
  const state = {};
  this._baseState = state;
  state.name = name;
  state.enc = enc;
  state.parent = parent || null;
  state.children = null; // State

  state.tag = null;
  state.args = null;
  state.reverseArgs = null;
  state.choice = null;
  state.optional = false;
  state.any = false;
  state.obj = false;
  state.use = null;
  state.useDecoder = null;
  state.key = null;
  state['default'] = null;
  state.explicit = null;
  state.implicit = null;
  state.contains = null; // Should create new instance on each method

  if (!state.parent) {
    state.children = [];

    this._wrap();
  }
}

module.exports = Node;
const stateProps = ['enc', 'parent', 'children', 'tag', 'args', 'reverseArgs', 'choice', 'optional', 'any', 'obj', 'use', 'alteredUse', 'key', 'default', 'explicit', 'implicit', 'contains'];

Node.prototype.clone = function clone() {
  const state = this._baseState;
  const cstate = {};
  stateProps.forEach(function (prop) {
    cstate[prop] = state[prop];
  });
  const res = new this.constructor(cstate.parent);
  res._baseState = cstate;
  return res;
};

Node.prototype._wrap = function wrap() {
  const state = this._baseState;
  methods.forEach(function (method) {
    this[method] = function _wrappedMethod() {
      const clone = new this.constructor(this);
      state.children.push(clone);
      return clone[method].apply(clone, arguments);
    };
  }, this);
};

Node.prototype._init = function init(body) {
  const state = this._baseState;
  assert(state.parent === null);
  body.call(this); // Filter children

  state.children = state.children.filter(function (child) {
    return child._baseState.parent === this;
  }, this);
  assert.equal(state.children.length, 1, 'Root node can have only one child');
};

Node.prototype._useArgs = function useArgs(args) {
  const state = this._baseState; // Filter children and args

  const children = args.filter(function (arg) {
    return arg instanceof this.constructor;
  }, this);
  args = args.filter(function (arg) {
    return !(arg instanceof this.constructor);
  }, this);

  if (children.length !== 0) {
    assert(state.children === null);
    state.children = children; // Replace parent to maintain backward link

    children.forEach(function (child) {
      child._baseState.parent = this;
    }, this);
  }

  if (args.length !== 0) {
    assert(state.args === null);
    state.args = args;
    state.reverseArgs = args.map(function (arg) {
      if (typeof arg !== 'object' || arg.constructor !== Object) return arg;
      const res = {};
      Object.keys(arg).forEach(function (key) {
        if (key == (key | 0)) key |= 0;
        const value = arg[key];
        res[value] = key;
      });
      return res;
    });
  }
}; //
// Overrided methods
//


overrided.forEach(function (method) {
  Node.prototype[method] = function _overrided() {
    const state = this._baseState;
    throw new Error(method + ' not implemented for encoding: ' + state.enc);
  };
}); //
// Public methods
//

tags.forEach(function (tag) {
  Node.prototype[tag] = function _tagMethod() {
    const state = this._baseState;
    const args = Array.prototype.slice.call(arguments);
    assert(state.tag === null);
    state.tag = tag;

    this._useArgs(args);

    return this;
  };
});

Node.prototype.use = function use(item) {
  assert(item);
  const state = this._baseState;
  assert(state.use === null);
  state.use = item;
  return this;
};

Node.prototype.optional = function optional() {
  const state = this._baseState;
  state.optional = true;
  return this;
};

Node.prototype.def = function def(val) {
  const state = this._baseState;
  assert(state['default'] === null);
  state['default'] = val;
  state.optional = true;
  return this;
};

Node.prototype.explicit = function explicit(num) {
  const state = this._baseState;
  assert(state.explicit === null && state.implicit === null);
  state.explicit = num;
  return this;
};

Node.prototype.implicit = function implicit(num) {
  const state = this._baseState;
  assert(state.explicit === null && state.implicit === null);
  state.implicit = num;
  return this;
};

Node.prototype.obj = function obj() {
  const state = this._baseState;
  const args = Array.prototype.slice.call(arguments);
  state.obj = true;
  if (args.length !== 0) this._useArgs(args);
  return this;
};

Node.prototype.key = function key(newKey) {
  const state = this._baseState;
  assert(state.key === null);
  state.key = newKey;
  return this;
};

Node.prototype.any = function any() {
  const state = this._baseState;
  state.any = true;
  return this;
};

Node.prototype.choice = function choice(obj) {
  const state = this._baseState;
  assert(state.choice === null);
  state.choice = obj;

  this._useArgs(Object.keys(obj).map(function (key) {
    return obj[key];
  }));

  return this;
};

Node.prototype.contains = function contains(item) {
  const state = this._baseState;
  assert(state.use === null);
  state.contains = item;
  return this;
}; //
// Decoding
//


Node.prototype._decode = function decode(input, options) {
  const state = this._baseState; // Decode root node

  if (state.parent === null) return input.wrapResult(state.children[0]._decode(input, options));
  let result = state['default'];
  let present = true;
  let prevKey = null;
  if (state.key !== null) prevKey = input.enterKey(state.key); // Check if tag is there

  if (state.optional) {
    let tag = null;
    if (state.explicit !== null) tag = state.explicit;else if (state.implicit !== null) tag = state.implicit;else if (state.tag !== null) tag = state.tag;

    if (tag === null && !state.any) {
      // Trial and Error
      const save = input.save();

      try {
        if (state.choice === null) this._decodeGeneric(state.tag, input, options);else this._decodeChoice(input, options);
        present = true;
      } catch (e) {
        present = false;
      }

      input.restore(save);
    } else {
      present = this._peekTag(input, tag, state.any);
      if (input.isError(present)) return present;
    }
  } // Push object on stack


  let prevObj;
  if (state.obj && present) prevObj = input.enterObject();

  if (present) {
    // Unwrap explicit values
    if (state.explicit !== null) {
      const explicit = this._decodeTag(input, state.explicit);

      if (input.isError(explicit)) return explicit;
      input = explicit;
    }

    const start = input.offset; // Unwrap implicit and normal values

    if (state.use === null && state.choice === null) {
      let save;
      if (state.any) save = input.save();

      const body = this._decodeTag(input, state.implicit !== null ? state.implicit : state.tag, state.any);

      if (input.isError(body)) return body;
      if (state.any) result = input.raw(save);else input = body;
    }

    if (options && options.track && state.tag !== null) options.track(input.path(), start, input.length, 'tagged');
    if (options && options.track && state.tag !== null) options.track(input.path(), input.offset, input.length, 'content'); // Select proper method for tag

    if (state.any) {// no-op
    } else if (state.choice === null) {
      result = this._decodeGeneric(state.tag, input, options);
    } else {
      result = this._decodeChoice(input, options);
    }

    if (input.isError(result)) return result; // Decode children

    if (!state.any && state.choice === null && state.children !== null) {
      state.children.forEach(function decodeChildren(child) {
        // NOTE: We are ignoring errors here, to let parser continue with other
        // parts of encoded data
        child._decode(input, options);
      });
    } // Decode contained/encoded by schema, only in bit or octet strings


    if (state.contains && (state.tag === 'octstr' || state.tag === 'bitstr')) {
      const data = new DecoderBuffer(result);
      result = this._getUse(state.contains, input._reporterState.obj)._decode(data, options);
    }
  } // Pop object


  if (state.obj && present) result = input.leaveObject(prevObj); // Set key

  if (state.key !== null && (result !== null || present === true)) input.leaveKey(prevKey, state.key, result);else if (prevKey !== null) input.exitKey(prevKey);
  return result;
};

Node.prototype._decodeGeneric = function decodeGeneric(tag, input, options) {
  const state = this._baseState;
  if (tag === 'seq' || tag === 'set') return null;
  if (tag === 'seqof' || tag === 'setof') return this._decodeList(input, tag, state.args[0], options);else if (/str$/.test(tag)) return this._decodeStr(input, tag, options);else if (tag === 'objid' && state.args) return this._decodeObjid(input, state.args[0], state.args[1], options);else if (tag === 'objid') return this._decodeObjid(input, null, null, options);else if (tag === 'gentime' || tag === 'utctime') return this._decodeTime(input, tag, options);else if (tag === 'null_') return this._decodeNull(input, options);else if (tag === 'bool') return this._decodeBool(input, options);else if (tag === 'objDesc') return this._decodeStr(input, tag, options);else if (tag === 'int' || tag === 'enum') return this._decodeInt(input, state.args && state.args[0], options);

  if (state.use !== null) {
    return this._getUse(state.use, input._reporterState.obj)._decode(input, options);
  } else {
    return input.error('unknown tag: ' + tag);
  }
};

Node.prototype._getUse = function _getUse(entity, obj) {
  const state = this._baseState; // Create altered use decoder if implicit is set

  state.useDecoder = this._use(entity, obj);
  assert(state.useDecoder._baseState.parent === null);
  state.useDecoder = state.useDecoder._baseState.children[0];

  if (state.implicit !== state.useDecoder._baseState.implicit) {
    state.useDecoder = state.useDecoder.clone();
    state.useDecoder._baseState.implicit = state.implicit;
  }

  return state.useDecoder;
};

Node.prototype._decodeChoice = function decodeChoice(input, options) {
  const state = this._baseState;
  let result = null;
  let match = false;
  Object.keys(state.choice).some(function (key) {
    const save = input.save();
    const node = state.choice[key];

    try {
      const value = node._decode(input, options);

      if (input.isError(value)) return false;
      result = {
        type: key,
        value: value
      };
      match = true;
    } catch (e) {
      input.restore(save);
      return false;
    }

    return true;
  }, this);
  if (!match) return input.error('Choice not matched');
  return result;
}; //
// Encoding
//


Node.prototype._createEncoderBuffer = function createEncoderBuffer(data) {
  return new EncoderBuffer(data, this.reporter);
};

Node.prototype._encode = function encode(data, reporter, parent) {
  const state = this._baseState;
  if (state['default'] !== null && state['default'] === data) return;

  const result = this._encodeValue(data, reporter, parent);

  if (result === undefined) return;
  if (this._skipDefault(result, reporter, parent)) return;
  return result;
};

Node.prototype._encodeValue = function encode(data, reporter, parent) {
  const state = this._baseState; // Decode root node

  if (state.parent === null) return state.children[0]._encode(data, reporter || new Reporter());
  let result = null; // Set reporter to share it with a child class

  this.reporter = reporter; // Check if data is there

  if (state.optional && data === undefined) {
    if (state['default'] !== null) data = state['default'];else return;
  } // Encode children first


  let content = null;
  let primitive = false;

  if (state.any) {
    // Anything that was given is translated to buffer
    result = this._createEncoderBuffer(data);
  } else if (state.choice) {
    result = this._encodeChoice(data, reporter);
  } else if (state.contains) {
    content = this._getUse(state.contains, parent)._encode(data, reporter);
    primitive = true;
  } else if (state.children) {
    content = state.children.map(function (child) {
      if (child._baseState.tag === 'null_') return child._encode(null, reporter, data);
      if (child._baseState.key === null) return reporter.error('Child should have a key');
      const prevKey = reporter.enterKey(child._baseState.key);
      if (typeof data !== 'object') return reporter.error('Child expected, but input is not object');

      const res = child._encode(data[child._baseState.key], reporter, data);

      reporter.leaveKey(prevKey);
      return res;
    }, this).filter(function (child) {
      return child;
    });
    content = this._createEncoderBuffer(content);
  } else {
    if (state.tag === 'seqof' || state.tag === 'setof') {
      // TODO(indutny): this should be thrown on DSL level
      if (!(state.args && state.args.length === 1)) return reporter.error('Too many args for : ' + state.tag);
      if (!Array.isArray(data)) return reporter.error('seqof/setof, but data is not Array');
      const child = this.clone();
      child._baseState.implicit = null;
      content = this._createEncoderBuffer(data.map(function (item) {
        const state = this._baseState;
        return this._getUse(state.args[0], data)._encode(item, reporter);
      }, child));
    } else if (state.use !== null) {
      result = this._getUse(state.use, parent)._encode(data, reporter);
    } else {
      content = this._encodePrimitive(state.tag, data);
      primitive = true;
    }
  } // Encode data itself


  if (!state.any && state.choice === null) {
    const tag = state.implicit !== null ? state.implicit : state.tag;
    const cls = state.implicit === null ? 'universal' : 'context';

    if (tag === null) {
      if (state.use === null) reporter.error('Tag could be omitted only for .use()');
    } else {
      if (state.use === null) result = this._encodeComposite(tag, primitive, cls, content);
    }
  } // Wrap in explicit


  if (state.explicit !== null) result = this._encodeComposite(state.explicit, false, 'context', result);
  return result;
};

Node.prototype._encodeChoice = function encodeChoice(data, reporter) {
  const state = this._baseState;
  const node = state.choice[data.type];

  if (!node) {
    assert(false, data.type + ' not found in ' + JSON.stringify(Object.keys(state.choice)));
  }

  return node._encode(data.value, reporter);
};

Node.prototype._encodePrimitive = function encodePrimitive(tag, data) {
  const state = this._baseState;
  if (/str$/.test(tag)) return this._encodeStr(data, tag);else if (tag === 'objid' && state.args) return this._encodeObjid(data, state.reverseArgs[0], state.args[1]);else if (tag === 'objid') return this._encodeObjid(data, null, null);else if (tag === 'gentime' || tag === 'utctime') return this._encodeTime(data, tag);else if (tag === 'null_') return this._encodeNull();else if (tag === 'int' || tag === 'enum') return this._encodeInt(data, state.args && state.reverseArgs[0]);else if (tag === 'bool') return this._encodeBool(data);else if (tag === 'objDesc') return this._encodeStr(data, tag);else throw new Error('Unsupported tag: ' + tag);
};

Node.prototype._isNumstr = function isNumstr(str) {
  return /^[0-9 ]*$/.test(str);
};

Node.prototype._isPrintstr = function isPrintstr(str) {
  return /^[A-Za-z0-9 '()+,-./:=?]*$/.test(str);
};

/***/ }),

/***/ "g33z":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var strong = __webpack_require__("Wu5q");

var validate = __webpack_require__("n3ko");

var MAP = 'Map'; // 23.1 Map Objects

module.exports = __webpack_require__("raTm")(MAP, function (get) {
  return function Map() {
    return get(this, arguments.length > 0 ? arguments[0] : undefined);
  };
}, {
  // 23.1.3.6 Map.prototype.get(key)
  get: function get(key) {
    var entry = strong.getEntry(validate(this, MAP), key);
    return entry && entry.v;
  },
  // 23.1.3.9 Map.prototype.set(key, value)
  set: function set(key, value) {
    return strong.def(validate(this, MAP), key === 0 ? 0 : key, value);
  }
}, strong, true);

/***/ }),

/***/ "g9U9":
/***/ (function(module, exports) {

module.exports = function xor(a, b) {
  var len = a.length;
  var i = -1;

  while (++i < len) {
    a[i] ^= b[i];
  }

  return a;
};

/***/ }),

/***/ "gCq4":
/***/ (function(module, exports) {

/**
 * Gets the stack value for `key`.
 *
 * @private
 * @name get
 * @memberOf Stack
 * @param {string} key The key of the value to get.
 * @returns {*} Returns the entry value.
 */
function stackGet(key) {
  return this.__data__.get(key);
}

module.exports = stackGet;

/***/ }),

/***/ "gDss":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _react_react_spectrum_Icon_Info__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("O/GH");
/* harmony import */ var _react_react_spectrum_Icon_Info__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Icon_Info__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("VIzJ");
/* harmony import */ var _styles_BrokenResourcesBanner_css__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("57F1");
/* harmony import */ var _styles_BrokenResourcesBanner_css__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_styles_BrokenResourcesBanner_css__WEBPACK_IMPORTED_MODULE_3__);




const BrokenResourcesBanner = () => (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", { className: _styles_BrokenResourcesBanner_css__WEBPACK_IMPORTED_MODULE_3___default.a.root },
    react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_react_react_spectrum_Icon_Info__WEBPACK_IMPORTED_MODULE_1___default.a, { className: _styles_BrokenResourcesBanner_css__WEBPACK_IMPORTED_MODULE_3___default.a.icon, size: "S" }),
    react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_2__[/* FormattedMessage */ "c"], { id: "libraries.brokenResources" })));
/* harmony default export */ __webpack_exports__["a"] = (BrokenResourcesBanner);


/***/ }),

/***/ "gFix":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _normalize_path__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("7L8R");
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("a375");
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2019 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/


/**
 * Given a file or folder path, return the normalized parent path.
 *
 * @param path {String} the folder or file path
 */
function deriveParentPath(path, root = _constants__WEBPACK_IMPORTED_MODULE_1__[/* ROOT_FOLDER_PATH */ "q"]) {
    const normalized = Object(_normalize_path__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(path, root);
    return normalized.split('/').slice(0, -1).join('/');
}
/* harmony default export */ __webpack_exports__["a"] = (deriveParentPath);


/***/ }),

/***/ "gFrX":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _autobindDecorator = _interopRequireDefault(__webpack_require__("gKdT"));

var _boundingRectOverlapping = _interopRequireDefault(__webpack_require__("rjik"));

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _dna = _interopRequireDefault(__webpack_require__("AnWb"));

var _validationStateSvg = __webpack_require__("Md/b");

var _propTypes = _interopRequireDefault(__webpack_require__("17x9"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

var _UxpProvider = __webpack_require__("HGBq");

var _Textfield = _interopRequireDefault(__webpack_require__("YsQy"));

var _UxpOptions = _interopRequireDefault(__webpack_require__("zvwv"));

__webpack_require__("CuaI");

__webpack_require__("Qqsu");

var _icon = __webpack_require__("vo16");

var _SpEventUtils = __webpack_require__("XU6Z");

const _excluded = ["className", "icon", "quiet", "style", "disabled", "required", "invalid", "readOnly", "multiLine", "validationState", "disableOnOverlay", "alwaysNative", "hideValidationIcon"];

var _class, _class2, _temp;

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function ownKeys(object, enumerableOnly) {
  var keys = Object.keys(object);

  if (Object.getOwnPropertySymbols) {
    var symbols = Object.getOwnPropertySymbols(object);

    if (enumerableOnly) {
      symbols = symbols.filter(function (sym) {
        return Object.getOwnPropertyDescriptor(object, sym).enumerable;
      });
    }

    keys.push.apply(keys, symbols);
  }

  return keys;
}

function _objectSpread(target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i] != null ? arguments[i] : {};

    if (i % 2) {
      ownKeys(Object(source), true).forEach(function (key) {
        _defineProperty(target, key, source[key]);
      });
    } else if (Object.getOwnPropertyDescriptors) {
      Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
    } else {
      ownKeys(Object(source)).forEach(function (key) {
        Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
      });
    }
  }

  return target;
}

function _defineProperty(obj, key, value) {
  if (key in obj) {
    Object.defineProperty(obj, key, {
      value: value,
      enumerable: true,
      configurable: true,
      writable: true
    });
  } else {
    obj[key] = value;
  }

  return obj;
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

const uxp = window.require && window.require('uxp');

if (false) {} else if (false) {} else {
  __webpack_require__("1Nnd");
}

if (true) __webpack_require__("jaDn");
if (true) __webpack_require__("8zoJ");
if (true) __webpack_require__("EX2l");
if (true) __webpack_require__("jMQp");

let SpUxpTextfield = (0, _autobindDecorator.default)(_class = (_temp = _class2 = class SpUxpTextfield extends _Textfield.default {
  constructor(props) {
    super(props);

    this.getFontStyle = () => {
      if (this.inputContainer) {
        this.fontFamily = window.getComputedStyle(this.inputContainer).getPropertyValue('font-family');
        this.fontSize = window.getComputedStyle(this.inputContainer).getPropertyValue('font-size');
        this.fontVariant = window.getComputedStyle(this.inputContainer).getPropertyValue('font-variant');
        this.inputContainer.removeEventListener('resize', this.getFontStyle);
      }
    };

    this.focusInput = () => {
      this.inputContainer.focus();
      this.inputContainer.removeEventListener('resize', this.focusInput);
    };

    this.resize = () => {
      if (this.inputContainer) {
        this.inputContainer.focus();
        this.inFocus = true;
        this.inputContainer.removeEventListener('resize', this.resize);
      }
    };

    this.state = {
      inputText: '',
      showFocus: false,
      overlayPresent: false
    };
    this.overlaysMap = new Map();
    this.inputActive = true; // This event array will be used to avoid calling clients method directly as we want our method to be called instead.
    // We have called clients method inside our method
    // onChange is not required since we are calling onChange on onInput event

    this.eventArray = ['onFocus', 'onBlur', 'onInput', 'onChange'];
  }

  handleEvent(event) {
    const eventName = Object.keys(this.props).filter(propName => propName.substr(2).toLowerCase() === event.type);

    if (this.props[eventName]) {
      this.props[eventName].call(event.target, event);
    }
  }

  hasPlaceholderText() {
    if (this.props.placeholder && !this.props.value && !this.state.inputText) {
      return true;
    }

    return false;
  }

  updateSpanStyle() {
    //  https://git.corp.adobe.com/torq/torq-native/pull/3818
    //  Using the font styles provided by the host application if any
    this.inputContainer.style.fontFamily = this.fontFamily;
    this.inputContainer.style.fontSize = this.fontSize;
    this.inputContainer.style.fontVariant = this.fontVariant;

    if (uxp.host && uxp.host.name === 'Photoshop') {
      if (this.hasPlaceholderText()) {
        this.inputContainer.style.fontStyle = 'italic';
        this.inputContainer.style.paddingBottom = '1px';
      }
    }
  }

  addSptextfieldEvent() {
    if (this.inputContainer) {
      this.inputContainer.addEventListener('input', this.onInput);
      const eventProps = Object.entries(this.props).filter(([k, v]) => k.startsWith('on') && !this.eventArray.includes(k));
      eventProps.forEach(([k, v]) => this.inputContainer.addEventListener(k.substr(2).toLowerCase(), this.handleEvent));

      if (!this.props.disabled) {
        this.inputContainer.addEventListener('focus', this.handleFocus);
        this.inputContainer.addEventListener('blur', this.handleBlur);
      }
    }
  }

  componentDidMount() {
    this.addSptextfieldEvent();

    if (this.inputContainer) {
      this.inputContainer.addEventListener('resize', this.getFontStyle);

      if (!this.props.disabled) {
        if (this.props.autoFocus) {
          // wait till the native node is created.
          this.inputContainer.addEventListener('resize', this.resize);
        }
      }
    }
  }

  componentDidUpdate() {
    // After overlay comes all events are removed so need to bbe applied again.
    this.addSptextfieldEvent();

    if (this.inputContainer && this.inputContainer.nodeName === 'SPAN') {
      this.updateSpanStyle();
    }

    if (this.inFocus === true) {
      const ov = this.isAnyOverlayVisible();

      if (ov) {
        this.inputActive = false;
        this.inputContainer.addEventListener('resize', this.focusInput);
      }

      if (!this.inputActive && !ov) {
        this.inputContainer.addEventListener('resize', this.focusInput);
        this.inputActive = true;
      }
    } // This is required to get update call in C++ side with value property.


    if (this.inputContainer && this.props.value !== undefined) {
      this.inputContainer.setAttribute('value', this.props.value);
    }
  }

  componentWillUnmount() {
    if (this.inputContainer) {
      this.inputContainer.removeEventListener('input', this.onInput);
      const eventProps = Object.entries(this.props).filter(([k, v]) => k.startsWith('on') && !this.eventArray.includes(k));
      eventProps.forEach(([k, v]) => this.inputContainer.removeEventListener(k.substr(2).toLowerCase(), this.handleEvent));

      if (!this.props.disabled) {
        this.inputContainer.removeEventListener('focus', this.handleFocus);
        this.inputContainer.removeEventListener('blur', this.handleBlur);

        if (this.props.autoFocus) {
          this.inputContainer.removeEventListener('resize', this.resize);
        }
      }
    }
  }

  focus() {
    if (!this.props.disabled && this.inputContainer) {
      this.inputContainer.focus();
    }
  }

  isAnyOverlayVisible() {
    var values = this.overlaysMap.values();

    for (var obj of values) {
      if (obj.visible) {
        return true;
      }
    }

    return false;
  }

  onInput(e) {
    // As setState is async call, saving the target value and passing that to onInput
    let newValue = e.target.value;
    this.setState({
      inputText: e.target.value
    });

    if (this.props.onChange) {
      this.props.onChange(newValue, e);
    }
  }

  handleClick(e) {
    this.inputContainer.focus();
    this.inFocus = true;

    if (this.props.onClick) {
      this.props.onClick(e);
    }
  }

  handleFocus(e) {
    this.setState({
      showFocus: true
    });

    if (this.props.onFocus) {
      this.props.onFocus(e);
    }

    this.inFocus = true;
  }

  handleBlur(e) {
    this.setState({
      showFocus: false
    });

    if (this.props.onBlur) {
      this.props.onBlur(e);
    }

    this.inFocus = false;
  }

  executeOverlayCallbacks() {
    var values = this.overlaysMap.values();

    for (var obj of values) {
      if (obj.callback) {
        obj.callback();
      }
    }
  }

  handleSpanKeyUp(e) {
    if (this.props.onKeyUp) {
      this.props.onKeyUp(e);
    }

    this.executeOverlayCallbacks();
    e.target.value = e.target.innerHTML;

    if (e.key.length === 1) {
      e.target.value += e.key;
    }

    switch (e.keyCode) {
      case 8:
        // Backspace
        if (e.target.value && e.target.value.length > 0) {
          let orgStr = e.target.value;
          e.target.value = orgStr.substring(0, orgStr.length - 1);
        }

        break;
    }

    this.onInput(e);
  }

  removeOverlay(overlay) {
    if (overlay && this.overlaysMap) {
      this.overlaysMap.delete(overlay.overlayRef);
    }
  }

  showInput(overlay) {
    this.updateOverlayMap(overlay);
    return this.overlaysMap.size === 0;
  }

  updateOverlayMap(overlay) {
    if (!this.searchContainer) {
      return;
    }

    const searchContainerBoundingRect = this.searchContainer.getBoundingClientRect();

    if (searchContainerBoundingRect.height === 0 || searchContainerBoundingRect.width === 0) {
      return;
    }

    if (overlay) {
      if (overlay.data.visible && (0, _boundingRectOverlapping.default)(searchContainerBoundingRect, overlay.data.boundingRect)) {
        this.overlaysMap.set(overlay.overlayRef, overlay.data);
      } else {
        this.removeOverlay(overlay);
      }

      const overlayPresentInMap = this.overlaysMap.has(overlay.overlayRef);
      const {
        overlayPresent
      } = this.state;

      if (overlayPresentInMap !== overlayPresent) {
        this.setState({
          overlayPresent: overlayPresentInMap
        });
      }
    }
  }

  render() {
    const _this$props = this.props,
          {
      className,
      icon,
      quiet,
      style,
      disabled,
      required,
      invalid,
      readOnly,
      multiLine,
      validationState,
      disableOnOverlay,
      alwaysNative,
      hideValidationIcon
    } = _this$props,
          otherProps = _objectWithoutProperties(_this$props, _excluded);

    var showFocus = this.state.showFocus;
    var Tag = multiLine ? 'sp-textarea' : 'sp-textfield';
    const isInvalid = invalid || validationState === 'invalid' || required && !this.state.inputText;
    const isValid = validationState === 'valid';
    delete otherProps.autocompleteInput;
    delete otherProps.onFocus;
    delete otherProps.onBlur;

    if (invalid) {
      console.warn('The "invalid" prop of Textfield is deprecated. Please use validationState="invalid" instead.');
    }

    let displayValidationIcon = required && !this.state.inputText || isInvalid || isValid;
    let validationIcon = _validationStateSvg.invalidSvg;

    if (isValid) {
      validationIcon = _validationStateSvg.validSvg;
    }

    let isDisabled = disabled ? 'disabled' : 'default';
    let bgStyle = {};
    return /*#__PURE__*/_react.default.createElement(_UxpProvider.SpectrumContext.Consumer, null, ({
      scale,
      theme,
      productId,
      disableNativeControls,
      overlay
    } = {}) => {
      if (alwaysNative || !_UxpOptions.default.productNeedsOverlayFix || !(!this.showInput(overlay) || disableOnOverlay && disableNativeControls)) {
        return /*#__PURE__*/_react.default.createElement(Tag, _extends({
          ref: s => this.inputContainer = s,
          class: className,
          disabled: disabled ? true : null,
          quiet: quiet ? true : null,
          invalid: isInvalid ? true : null,
          valid: isValid ? true : null,
          readOnly: readOnly ? true : null,
          "show-icon": hideValidationIcon ? false : null,
          "background-color": otherProps.backgroundColor,
          value: this.state.inputText
        }, (0, _SpEventUtils.removeEventProps)(otherProps)), icon && /*#__PURE__*/_react.default.createElement("div", {
          slot: "icon"
        }, " ", (0, _icon.cloneIcon)(icon, {
          size: 'S'
        })));
      } else {
        if (showFocus && !isInvalid) {
          bgStyle['borderColor'] = _dna.default.elements[theme][scale].textfield['default'].states['mouse-focus']['border-color'];
        }

        let bgColor = _dna.default.elements[theme][scale].textfield['default'].states[isDisabled]['background-color'];
        bgStyle['backgroundColor'] = bgColor;
        return (
          /*#__PURE__*/
          // Fix lint : Visible, non-interactive elements with click handlers must have at least one keyboard listener.
          //  This is a workaround to handle the input and overlay overlap issues in Ps and Ai
          //  https://wiki.corp.adobe.com/pages/viewpage.action?spaceKey=UXP&title=Proposal+for+overlapping+textedit+and+overlays
          //  https://wiki.corp.adobe.com/display/UXP/PS+UXP+Overlay+Issues// Fix lint: Static HTML elements with event handlers require a role, `tabIndex` should only be declared on interactive elements, Avoid positive integer values for tabIndex
          _react.default.createElement("div", {
            className: (0, _classnames.default)('spectrum-Textfield', `spectrum--${theme}`, {
              'spectrum-Textfield--multiline': multiLine,
              'is-invalid': isInvalid,
              'is-disabled': disabled,
              'is-valid': isValid,
              'spectrum-Textfield--quiet': quiet
            }, className),
            style: Object.assign({}, bgStyle, style),
            ref: s => this.searchContainer = s,
            disabled: disabled,
            onClick: !disabled ? this.handleClick : undefined
          }, /*#__PURE__*/_react.default.createElement("span", {
            className: "inputSpan",
            target: this.props.value || this.state.inputText ? 'value' : 'placeholder'
            /* eslint-disable-next-line */
            ,
            tabIndex: 0,
            ref: s => this.inputContainer = s,
            onKeyUp: this.handleSpanKeyUp,
            onFocus: !disabled ? this.handleFocus : undefined,
            onBlur: !disabled ? this.handleBlur : undefined
          }, this.props.value || this.state.inputText || this.props.placeholder), displayValidationIcon && /*#__PURE__*/_react.default.cloneElement(validationIcon))
        );
      }
    });
  }

}, _class2.propTypes = _objectSpread(_objectSpread({}, _Textfield.default.propTypes), {}, {
  alwaysNative: _propTypes.default.bool,

  /** Hide validation icon , by default it will be visible */
  hideValidationIcon: _propTypes.default.bool,

  /** Sets backround color of input.For quiet state the background color of parent should be passed 
   * since PS doesn't have transparent support */
  backgroundColor: _propTypes.default.string
}), _class2.defaultProps = _objectSpread(_objectSpread({}, _Textfield.default.defaultProps), {}, {
  alwaysNative: false
}), _temp)) || _class;

exports.default = SpUxpTextfield;
SpUxpTextfield.displayName = 'SpUxpTextfield';

/***/ }),

/***/ "gKdT":
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/**
 * @copyright 2015, Andrey Popp <8mayday@gmail.com>
 *
 * The decorator may be used on classes or methods
 * ```
 * @autobind
 * class FullBound {}
 *
 * class PartBound {
 *   @autobind
 *   method () {}
 * }
 * ```
 */


Object.defineProperty(exports, '__esModule', {
  value: true
});
exports['default'] = autobind;

function autobind() {
  for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
    args[_key] = arguments[_key];
  }

  if (args.length === 1) {
    return boundClass.apply(undefined, args);
  } else {
    return boundMethod.apply(undefined, args);
  }
}
/**
 * Use boundMethod to bind all methods on the target.prototype
 */


function boundClass(target) {
  // (Using reflect to get all keys including symbols)
  var keys = undefined; // Use Reflect if exists

  if (typeof Reflect !== 'undefined' && typeof Reflect.ownKeys === 'function') {
    keys = Reflect.ownKeys(target.prototype);
  } else {
    keys = Object.getOwnPropertyNames(target.prototype); // use symbols if support is provided

    if (typeof Object.getOwnPropertySymbols === 'function') {
      keys = keys.concat(Object.getOwnPropertySymbols(target.prototype));
    }
  }

  keys.forEach(function (key) {
    // Ignore special case target method
    if (key === 'constructor') {
      return;
    }

    var descriptor = Object.getOwnPropertyDescriptor(target.prototype, key); // Only methods need binding

    if (typeof descriptor.value === 'function') {
      Object.defineProperty(target.prototype, key, boundMethod(target, key, descriptor));
    }
  });
  return target;
}
/**
 * Return a descriptor removing the value and returning a getter
 * The getter will return a .bind version of the function
 * and memoize the result against a symbol on the instance
 */


function boundMethod(target, key, descriptor) {
  var fn = descriptor.value;

  if (typeof fn !== 'function') {
    throw new Error('@autobind decorator can only be applied to methods not: ' + typeof fn);
  } // In IE11 calling Object.defineProperty has a side-effect of evaluating the
  // getter for the property which is being replaced. This causes infinite
  // recursion and an "Out of stack space" error.


  var definingProperty = false;
  return {
    configurable: true,
    get: function get() {
      if (definingProperty || this === target.prototype || this.hasOwnProperty(key)) {
        return fn;
      }

      var boundFn = fn.bind(this);
      definingProperty = true;
      Object.defineProperty(this, key, {
        value: boundFn,
        configurable: true,
        writable: true
      });
      definingProperty = false;
      return boundFn;
    }
  };
}

module.exports = exports['default'];

/***/ }),

/***/ "gOQU":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}


/* harmony default export */ __webpack_exports__["a"] = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("svg", _extends({
  id: "Layer_1",
  xmlns: "http://www.w3.org/2000/svg",
  xmlnsXlink: "http://www.w3.org/1999/xlink",
  x: "0",
  y: "0",
  viewBox: "0 0 200 200",
  xmlSpace: "preserve"
}, props), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("defs", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  id: "SVGID_1_",
  d: "M0 0h200v200H0z"
})), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("clipPath", {
  id: "SVGID_00000111191931587475512460000006109043257864839349_"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("use", {
  xlinkHref: "#SVGID_1_",
  overflow: "visible"
})), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("g", {
  id: "Permanently_deleted_200x200",
  clipPath: "url(#SVGID_00000111191931587475512460000006109043257864839349_)"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("g", {
  id: "Group_41",
  transform: "translate(-30 -23.969)"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("g", {
  id: "delete_trash_can_lg",
  transform: "translate(35.871 148.853)"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("g", {
  id: "delete_trash_can_lg-2"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["st1"] || "st1",
  d: "M31.9 47.1H8.5c-2.3 0-4.2-1.8-4.4-4.1L1.7 9.4c-.1-1 .7-1.8 1.6-1.9 1-.1 1.8.7 1.9 1.6l2.4 33.7c0 .5.4.8.9.8h23.4c.5 0 .8-.4.9-.8l2.4-33.7c.1-1 .9-1.7 1.9-1.6 1 .1 1.7.9 1.6 1.9l-2.4 33.7c-.2 2.3-2.1 4-4.4 4z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["st1"] || "st1",
  d: "M13 40.1c-.5 0-1-.4-1-.9l-1.8-24.7c0-.6.4-1 .9-1.1.6 0 1 .4 1.1.9L14 39.1c0 .5-.4 1-1 1z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["st1"] || "st1",
  d: "M26.8 40.1c-.6 0-1-.5-1-1.1l1.8-24.7c0-.5.5-1 1.1-.9.6 0 1 .5.9 1.1l-1.8 24.7c0 .5-.5.9-1 .9z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["st1"] || "st1",
  d: "M20 40.1c-.6 0-1-.4-1-1V14.5c0-.6.4-1 1-1s1 .4 1 1v24.6c0 .6-.5 1-1 1z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["st1"] || "st1",
  d: "M40.5 3.7H29.1v-1c0-2.4-2-4.4-4.4-4.4h-8.9c-2.4 0-4.4 2-4.4 4.4v1.1H0c-1 0-1.8.8-1.8 1.8S-1 7.2 0 7.2h40.5c1 0 1.8-.8 1.8-1.8s-.9-1.7-1.8-1.7zm-25.6-1c0-.5.4-.9.9-.9h8.9c.5 0 .9.4.9.9v1.1H14.9V2.7z"
}))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("g", {
  transform: "translate(30 44)",
  id: "Group_40"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("defs", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  id: "SVGID_00000000207148404366913660000002906718474309284737_",
  d: "M0 0h200v148.5H0z"
})), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("clipPath", {
  id: "SVGID_00000026849444661442215230000009513557659949752224_"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("use", {
  xlinkHref: "#SVGID_00000000207148404366913660000002906718474309284737_",
  overflow: "visible"
})), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("g", {
  id: "Group_38",
  clipPath: "url(#SVGID_00000026849444661442215230000009513557659949752224_)"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  id: "Path_206",
  className: styles["st3"] || "st3",
  d: "M8.9 40l16.8 22.5c.4.6.6 1.4.6 2.2v26.6c0 1.5-.3 2.7-2 2.7-1.4.1-2.2-1-2.2-2.8V73.4c0-8.5 0-8.5-5.1-15.3-5.4-7.2-10.7-14.5-16-21.8-.7-.9-1.2-1.9-.3-3.1s2-1 3.2-.5c17.8 7.4 35.7 14.8 53.5 22.2 7.3 3 14.6 6.1 21.8 9.1 1 .4 1.8 1.1 2.5 2 6.1 8 12.2 16.1 18.2 24.2.6 1.2 2 1.6 3.2 1 .1 0 .1-.1.2-.1 21.1-8.7 42.2-17.4 63.4-26 1.4-.6 2.8-1.2 4.4-1.9-1.6-1-3.3-1.7-5.1-2.3-16.8-7.1-33.7-14.1-50.6-21.1-4.4-1.8-8.9-3.7-13.3-5.6-.8-.4-1.7-.4-2.5 0C86.2 39.7 73 45.3 59.8 50.8c-2.2.9-3.6.8-4.2-.5-.7-1.4.1-2.5 2.5-3.5 13.3-5.6 26.7-11.2 40-16.8.8-.3 1.4-.8 1.9-1.5 6.2-8.5 12.5-17 18.7-25.5C120.6.3 123-.7 126.5.7c5.8 2.4 11.5 4.8 17.3 7.1 12.3 5.1 24.5 10.2 36.8 15.3l15.3 6.3c4.3 1.8 5.3 5.1 2.5 8.8-6.1 8.1-12.2 16.2-18.4 24.3-.6.8-.9 1.8-.9 2.8v46.5c0 3.5-1 4.8-4.2 6.1l-49.8 20.7-22.5 9.3c-1.5.7-3.2.7-4.8.1-9.7-3.7-19.2-7.9-28.8-11.8-3.2-1.3-6.4-2.7-9.7-4-1.3-.5-2.2-1.4-1.7-2.8.5-1.4 1.7-1.6 3-1.2 4.7 1.6 9.3 3.4 13.9 5.4 8.3 3.5 16.6 6.9 24.9 10.4.5.2 1 .1 1.5-.2 21.3-8.8 42.6-17.6 64-26.5 2.8-1.2 5.6-2.3 8.4-3.5 1.1-.3 1.8-1.3 1.6-2.3-.1-14.4 0-28.9 0-43.3 0-2 0-2-1.8-1.2-23.6 9.7-47.2 19.3-70.8 29-2.2.9-2.7.7-4.2-1.2-6.4-8.5-12.8-16.9-19.3-25.4-.7-.9-1.6-1.6-2.6-2C58 60 39.9 52.5 21.7 45c-4.2-1.7-8.4-3.5-12.6-5.3l-.2.3M123.8 4.3c-.7-.1-1 .4-1.3.9-1.8 2.5-3.6 5-5.5 7.5-4 5.5-8 11-12.1 16.5-.7 1-.7 1.4.5 1.8 1.7.6 3.4 1.4 5.1 2.1 11.3 4.7 22.6 9.3 33.8 14l30 12.6c1.6.6 1.7.5 3-.7 5.8-7.8 11.7-15.6 17.6-23.3.9-1.2.7-1.7-.6-2.2-5.2-2.1-10.4-4.3-15.6-6.5-16.5-6.8-33-13.7-49.5-20.5-1.8-.7-3.6-1.5-5.4-2.2"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  id: "Path_207",
  className: styles["st3"] || "st3",
  d: "M36.1 67.8c1.3.6 3.2 1.3 4.9 2 14.8 6.3 29.5 12.6 44.3 18.9.9.4 1.8.9 1.3 2.1-.5 1.1-1.4 1.2-2.5.7C68.2 84.7 52.2 77.8 36.2 71c-.5-.2-1.1-.5-1.6-.8-.6-.3-.8-1.1-.5-1.7.3-.6.8-1 2-.7"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  id: "Path_208",
  d: "M102.2 119.3v15.3c0 .5 0 .9-.1 1.4-.1.8-.9.9-1.5 1.1-.7.1-1-.4-1.1-.9-.1-.5-.2-1-.2-1.6v-30.5-1.1c.1-.9.5-1.6 1.6-1.6 1.2 0 1.3.8 1.3 1.7v16.2",
  fill: "#b2b2b2"
})))))));

/***/ }),

/***/ "gQ8F":
/***/ (function(module, exports) {

/* eslint-disable max-len */
module.exports = {
  'confirmationDialog.dontShowAgain': '不再显示',
  'confirmationDialog.confirm.default': '继续',
  'confirmationDialog.cancel.default': '取消',
  'confirmationDialog.learnMore': '了解详情',
  'toast.warning.place': '还无法放置带有链接的云文档。请继续采用嵌入方式。',
  'toast.warning.placeLinkOrEmbed': '您放置的资源现在默认链接到原始资源。这意味着如果您在一个地方对资源进行编辑，则这些更改会在所有位置反映出来。',
  'toast.warning.saveAs.invalidFormat': '抱歉，您无法在此处保存 {genericFormat} 文件。您的文件将另存为 {adobeFormat}。',
  'pickerView.recent': '最近使用项',
  'pickerView.cloud_docs': '您的文件',
  'pickerView.shared_with_you': '已与您共享',
  'pickerView.projects': '项目',
  'pickerView.files': '文件',
  'pickerView.computer': '您的计算机...',
  'pickerView.saveAsInput': '另存为',
  'pickerView.exportInput': '导出为',
  'pickerView.sketch_library': '转换 Sketch 库...',
  'pickerView.error.saveAsOrExport.default': '文件名无效。',
  'pickerView.error.saveAsOrExport.invalidName': '抱歉，此名称包含无效字符。',
  'pickerView.error.saveAsOrExport.invalidEnd': '名称不能以“.”或空格结尾。',
  'pickerView.error.saveAsOrExport.invalidChar': '名称不得包含以下字符：{characters}',
  'pickerView.error.saveAsOrExport.charRestriction': '名称不能超过 200 个字符。',
  'pickerView.error.saveAsOrExport.duplicateName': '此处已存在具有此名称的云文档。',
  'pickerView.error.addALibrary.permission': '您无权添加此库',
  'pickerViewFooter.button.add': '添加',
  'pickerViewFooter.button.cancel': '取消',
  'pickerViewFooter.button.copy': '复制到此处',
  'pickerViewFooter.button.move': '移到此处',
  'pickerViewFooter.button.moveToProject': '移到此处',
  'pickerViewFooter.button.copyToProject': '复制到此处',
  'pickerViewFooter.button.choose': '选取',
  'pickerViewFooter.button.save': '保存',
  'pickerViewFooter.button.switchToOSPicker': '在您的计算机上',
  'pickerViewFooter.button.save.offline': '需要 Internet 连接',
  'pickerViewFooter.button.saveAsCopy': '保存',
  'pickerViewFooter.button.export': '导出',
  'pickerViewFooter.button.placeLinkOrEmbed': '置入',
  'pickerViewFooter.button.import': '导入',
  'pickerViewFooter.checkbox.placeLink': '已链接',
  'pickerViewFooter.tooltip.placeLink': '您只能将此项目放置为链接的资源。',
  'pickerViewFooter.tooltip.placeEmbed': '您只能将此项目放置为嵌入内容。',
  'pickerViewFooter.saveAs.format.label': '格式',
  'pickerViewFooter.button.selectProject': '保存',
  'onboardingCdp.title': '如果另存为云文档，您将可以享用更多功能',
  'onboardingCdp.tooltip': '如果保存到您的计算机，您将无法使用云功能。',
  'onboardingCdp.tooltip.link': '了解详情',
  'onboardingCdp.table.header.saveToCloud': 'Creative Cloud',
  'onboardingCdp.table.header.saveToLocal': '在您的计算机上',
  'onboardingCdp.button.saveToCloud': '保存到 Creative Cloud',
  'onboardingCdp.feature.offline': '离线访问',
  'onboardingCdp.feature.syncing': '云同步到您的所有设备',
  'onboardingCdp.feature.autosave': '自动存储每项更改',
  'onboardingCdp.feature.versionHistory': '版本历史记录',
  'onboardingCdp.feature.inviteToEdit': '邀请编辑',
  'onboardingCdp.button.saveToLocal': '保存在您的计算机上',
  'onboardingCdp.checkbox.doNotShowAgain': '不再显示',
  'uap.title.place': '从 Creative Cloud 中放置',
  'uap.title.import': '从 Creative Cloud 中导入',
  'uap.title.placeLinkOrEmbed': '从 Creative Cloud 中放置',
  'uap.title.linkAssets': '从 Creative Cloud 中链接',
  'uap.title.open': '从 Creative Cloud 中打开',
  'uap.title.relink': '从 Creative Cloud 中链接',
  'uap.title.saveAs': '保存到 Creative Cloud',
  'uap.title.saveAsCopy': '保存到 Creative Cloud',
  'uap.title.saveToFolder': '保存到 Creative Cloud',
  'uap.title.export': '导出至 Creative Cloud',
  'uap.title.copy': '复制到 Creative Cloud',
  'uap.title.move': '在 Creative Cloud 中移动',
  'uap.title.moveToProject': '在 Creative Cloud 中移动',
  'uap.title.copyToProject': '复制到 Creative Cloud',
  'uap.title.reference': '添加到 Creative Cloud',
  'uap.title.selectProject': '保存到 Creative Cloud',
  'move.toSpace.confirm.title': '将删除版本历史记录',
  'move.toSpace.confirm.message': '移动此文件将导致删除版本历史记录。如果要保留版本历史记录，请改为制作副本。'
};

/***/ }),

/***/ "gdxS":
/***/ (function(module, exports, __webpack_require__) {

!function (e, a) {
   true ? module.exports = a() : undefined;
}(this, function () {
  "use strict";

  return [{
    locale: "cs",
    pluralRuleFunction: function (e, a) {
      var n = String(e).split("."),
          t = n[0],
          m = !n[1];
      return a ? "other" : 1 == e && m ? "one" : t >= 2 && t <= 4 && m ? "few" : m ? "other" : "many";
    },
    fields: {
      year: {
        displayName: "rok",
        relative: {
          0: "tento rok",
          1: "příští rok",
          "-1": "minulý rok"
        },
        relativeTime: {
          future: {
            one: "za {0} rok",
            few: "za {0} roky",
            many: "za {0} roku",
            other: "za {0} let"
          },
          past: {
            one: "před {0} rokem",
            few: "před {0} lety",
            many: "před {0} roku",
            other: "před {0} lety"
          }
        }
      },
      "year-short": {
        displayName: "r.",
        relative: {
          0: "tento rok",
          1: "příští rok",
          "-1": "minulý rok"
        },
        relativeTime: {
          future: {
            one: "za {0} r.",
            few: "za {0} r.",
            many: "za {0} r.",
            other: "za {0} l."
          },
          past: {
            one: "před {0} r.",
            few: "před {0} r.",
            many: "před {0} r.",
            other: "před {0} l."
          }
        }
      },
      month: {
        displayName: "měsíc",
        relative: {
          0: "tento měsíc",
          1: "příští měsíc",
          "-1": "minulý měsíc"
        },
        relativeTime: {
          future: {
            one: "za {0} měsíc",
            few: "za {0} měsíce",
            many: "za {0} měsíce",
            other: "za {0} měsíců"
          },
          past: {
            one: "před {0} měsícem",
            few: "před {0} měsíci",
            many: "před {0} měsíce",
            other: "před {0} měsíci"
          }
        }
      },
      "month-short": {
        displayName: "měs.",
        relative: {
          0: "tento měs.",
          1: "příští měs.",
          "-1": "minulý měs."
        },
        relativeTime: {
          future: {
            one: "za {0} měs.",
            few: "za {0} měs.",
            many: "za {0} měs.",
            other: "za {0} měs."
          },
          past: {
            one: "před {0} měs.",
            few: "před {0} měs.",
            many: "před {0} měs.",
            other: "před {0} měs."
          }
        }
      },
      day: {
        displayName: "den",
        relative: {
          0: "dnes",
          1: "zítra",
          2: "pozítří",
          "-2": "předevčírem",
          "-1": "včera"
        },
        relativeTime: {
          future: {
            one: "za {0} den",
            few: "za {0} dny",
            many: "za {0} dne",
            other: "za {0} dní"
          },
          past: {
            one: "před {0} dnem",
            few: "před {0} dny",
            many: "před {0} dne",
            other: "před {0} dny"
          }
        }
      },
      "day-short": {
        displayName: "den",
        relative: {
          0: "dnes",
          1: "zítra",
          2: "pozítří",
          "-2": "předevčírem",
          "-1": "včera"
        },
        relativeTime: {
          future: {
            one: "za {0} den",
            few: "za {0} dny",
            many: "za {0} dne",
            other: "za {0} dní"
          },
          past: {
            one: "před {0} dnem",
            few: "před {0} dny",
            many: "před {0} dne",
            other: "před {0} dny"
          }
        }
      },
      hour: {
        displayName: "hodina",
        relative: {
          0: "tuto hodinu"
        },
        relativeTime: {
          future: {
            one: "za {0} hodinu",
            few: "za {0} hodiny",
            many: "za {0} hodiny",
            other: "za {0} hodin"
          },
          past: {
            one: "před {0} hodinou",
            few: "před {0} hodinami",
            many: "před {0} hodiny",
            other: "před {0} hodinami"
          }
        }
      },
      "hour-short": {
        displayName: "h",
        relative: {
          0: "tuto hodinu"
        },
        relativeTime: {
          future: {
            one: "za {0} h",
            few: "za {0} h",
            many: "za {0} h",
            other: "za {0} h"
          },
          past: {
            one: "před {0} h",
            few: "před {0} h",
            many: "před {0} h",
            other: "před {0} h"
          }
        }
      },
      minute: {
        displayName: "minuta",
        relative: {
          0: "tuto minutu"
        },
        relativeTime: {
          future: {
            one: "za {0} minutu",
            few: "za {0} minuty",
            many: "za {0} minuty",
            other: "za {0} minut"
          },
          past: {
            one: "před {0} minutou",
            few: "před {0} minutami",
            many: "před {0} minuty",
            other: "před {0} minutami"
          }
        }
      },
      "minute-short": {
        displayName: "min",
        relative: {
          0: "tuto minutu"
        },
        relativeTime: {
          future: {
            one: "za {0} min",
            few: "za {0} min",
            many: "za {0} min",
            other: "za {0} min"
          },
          past: {
            one: "před {0} min",
            few: "před {0} min",
            many: "před {0} min",
            other: "před {0} min"
          }
        }
      },
      second: {
        displayName: "sekunda",
        relative: {
          0: "nyní"
        },
        relativeTime: {
          future: {
            one: "za {0} sekundu",
            few: "za {0} sekundy",
            many: "za {0} sekundy",
            other: "za {0} sekund"
          },
          past: {
            one: "před {0} sekundou",
            few: "před {0} sekundami",
            many: "před {0} sekundy",
            other: "před {0} sekundami"
          }
        }
      },
      "second-short": {
        displayName: "s",
        relative: {
          0: "nyní"
        },
        relativeTime: {
          future: {
            one: "za {0} s",
            few: "za {0} s",
            many: "za {0} s",
            other: "za {0} s"
          },
          past: {
            one: "před {0} s",
            few: "před {0} s",
            many: "před {0} s",
            other: "před {0} s"
          }
        }
      }
    }
  }];
});

/***/ }),

/***/ "ge8y":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _filterDOMProps = _interopRequireDefault(__webpack_require__("Cv/Q"));

var _react = _interopRequireWildcard(__webpack_require__("q1tI"));

const _excluded = ["label", "children", "role", "aria-level"];

function _getRequireWildcardCache(nodeInterop) {
  if (typeof WeakMap !== "function") return null;
  var cacheBabelInterop = new WeakMap();
  var cacheNodeInterop = new WeakMap();
  return (_getRequireWildcardCache = function (nodeInterop) {
    return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
  })(nodeInterop);
}

function _interopRequireWildcard(obj, nodeInterop) {
  if (!nodeInterop && obj && obj.__esModule) {
    return obj;
  }

  if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
    return {
      default: obj
    };
  }

  var cache = _getRequireWildcardCache(nodeInterop);

  if (cache && cache.has(obj)) {
    return cache.get(obj);
  }

  var newObj = {};
  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;

  for (var key in obj) {
    if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
      var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;

      if (desc && (desc.get || desc.set)) {
        Object.defineProperty(newObj, key, desc);
      } else {
        newObj[key] = obj[key];
      }
    }
  }

  newObj.default = obj;

  if (cache) {
    cache.set(obj, newObj);
  }

  return newObj;
}

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

class MenuHeading extends _react.Component {
  render() {
    const _this$props = this.props,
          {
      label,
      children,
      role = 'presentation',
      'aria-level': ariaLevel
    } = _this$props,
          otherProps = _objectWithoutProperties(_this$props, _excluded);

    return /*#__PURE__*/_react.default.createElement("li", _extends({
      role: role,
      className: "spectrum-Menu-sectionHeading"
    }, (0, _filterDOMProps.default)(otherProps)), /*#__PURE__*/_react.default.createElement("span", {
      role: "heading",
      "aria-level": ariaLevel || 3
    }, label || children));
  }

}

exports.default = MenuHeading;
MenuHeading.displayName = 'MenuHeading';

/***/ }),

/***/ "ggm0":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _packages_CDOView_utils_action__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("duTG");
/* harmony import */ var _react_react_spectrum_Icon_Delete__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("5/H/");
/* harmony import */ var _react_react_spectrum_Icon_Delete__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Icon_Delete__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("mm/P");
/* harmony import */ var _utils_performance__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("P5RH");
/* harmony import */ var _stores_User__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("CJr9");






const deleteResourceAction = (app, isVisible) => new _packages_CDOView_utils_action__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"]({
    value: 'deleteResource',
    label: 'button.deleteResource',
    icon: react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_react_react_spectrum_Icon_Delete__WEBPACK_IMPORTED_MODULE_2___default.a, null),
    supportsMultiple: true,
    getDisabledTooltipMsgId: () => 'tooltip.offline.general',
    isVisible,
    execute: async (elements) => {
        const project = app.currentProject;
        let startTime = _utils_performance__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].now();
        await app.projectList.deleteResources(elements, project);
        let endTime = _utils_performance__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].now();
        Object(_utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_3__[/* trackForEach */ "j"])(elements, element => {
            var _a;
            return ({
                env: {
                    api: {
                        name: _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_3__[/* EnvApiName */ "b"].FILE_DELETE,
                    },
                },
                content: {
                    id: project.id,
                    type: element.type,
                    author: project.role,
                },
                event: {
                    subcategory: _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_3__[/* Subcategory */ "c"].Resource,
                    subtype: _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_3__[/* Subtype */ "d"].delete,
                    type: _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_3__[/* Type */ "e"].success,
                    workflow: _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_3__[/* Workflow */ "f"].Spaces,
                    cloud_id: element.id,
                    context_guid: element.id,
                    value: endTime - startTime,
                    org_guid: (_a = _stores_User__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"].getTeamFromId(project.teamId)) === null || _a === void 0 ? void 0 : _a.repositoryID,
                },
                custom: {
                    team_id: project.teamId,
                },
            });
        });
        project.resources.load();
    },
});
/* harmony default export */ __webpack_exports__["a"] = (deleteResourceAction);


/***/ }),

/***/ "gh7h":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* unused harmony export DCRType */
/* harmony import */ var _SophiaBase__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("hVfy");
/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("2vnA");
/* harmony import */ var src_components_start_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("/0Ih");
/* harmony import */ var _stores_MainStore__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("cCFZ");
/* harmony import */ var src_applications__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("3UBC");
/* harmony import */ var src_components_start_performance__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("r1jx");
/* harmony import */ var _iaw_analytics__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("RGcl");
/* harmony import */ var _LoggerWrapper_Logger__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("43WE");
/* harmony import */ var _js_iaw_VulcanAPI__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("9PyL");
/* harmony import */ var src_js_start_Sophia__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__("nm0P");
/* harmony import */ var _iaw_HomescreenError__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__("LDAD");
/* harmony import */ var _iaw_fs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__("xZA7");
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
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;
};
var __metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var _a, _b, _c, _d;














var DCRType;
(function (DCRType) {
    DCRType["PHXS"] = "PHXS";
    DCRType["ILST"] = "ILST";
    DCRType["USER_INTENT_DIALOG"] = "UserIntentDialog";
})(DCRType || (DCRType = {}));
var TUTORIAL_CATEGORY;
(function (TUTORIAL_CATEGORY) {
    TUTORIAL_CATEGORY["EXPLORE"] = "Get started";
    TUTORIAL_CATEGORY["ILLUSTRATION"] = "illustration";
    TUTORIAL_CATEGORY["LAYOUT"] = "layouts";
    TUTORIAL_CATEGORY["LOGO"] = "logo-design";
})(TUTORIAL_CATEGORY || (TUTORIAL_CATEGORY = {}));
const placeholders = {
    [DCRType.PHXS]: [
        'images/dynamic-homescreen/S_Illu_PsHelpXArticleCover_1.jpg',
        'images/dynamic-homescreen/S_Illu_PsHelpXArticleCover_2.jpg',
        'images/dynamic-homescreen/S_Illu_PsHelpXArticleCover_3.jpg',
        'images/dynamic-homescreen/S_Illu_PsHelpXArticleCover_4.jpg',
        'images/dynamic-homescreen/S_Illu_PsHelpXArticleCover_5.jpg',
    ],
    [DCRType.ILST]: [
        'images/dynamic-homescreen/S_Illu_HelpxArticlesOnAiHomeScreen_1.jpg',
        'images/dynamic-homescreen/S_Illu_HelpxArticlesOnAiHomeScreen_2.jpg',
        'images/dynamic-homescreen/S_Illu_HelpxArticlesOnAiHomeScreen_3.jpg',
        'images/dynamic-homescreen/S_Illu_HelpxArticlesOnAiHomeScreen_4.jpg',
        'images/dynamic-homescreen/S_Illu_HelpxArticlesOnAiHomeScreen_5.jpg',
    ],
    [DCRType.USER_INTENT_DIALOG]: {
        [TUTORIAL_CATEGORY.EXPLORE]: ['images/dynamic-homescreen/S_Illu_UserIntentOnAi_Explore.png'],
        [TUTORIAL_CATEGORY.ILLUSTRATION]: ['images/dynamic-homescreen/S_Illu_UserIntentOnAi_Illustration.png'],
        [TUTORIAL_CATEGORY.LAYOUT]: ['images/dynamic-homescreen/S_Illu_UserIntentOnAi_Layout.png'],
        [TUTORIAL_CATEGORY.LOGO]: ['images/dynamic-homescreen/S_Illu_UserIntentOnAi_Logo.png'],
    },
};
const _logger = _LoggerWrapper_Logger__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].get('Ututs');
const MAXIMUM_WAIT_FOR_HOME_SURFACE = 2000; // in ms
const THUMBNAIL_PATHS = {
    HERO_PATH: "heroPath",
    THUMBNAIL_PATH: "thumbnailPath",
    THUMBNAIL_URL: "thumbnail",
    LARGE_THUMBNAIL_URL: "largeThumbnail",
};
const RECOMMENDATIONS_SOURCES = {
    UTUT_SERVICE: "ututService",
};
/**
 * Utility class that wraps sophia access.
 */
class Ututs extends _SophiaBase__WEBPACK_IMPORTED_MODULE_0__[/* SophiaBase */ "b"] {
    constructor() {
        super(...arguments);
        this._webContainer = {};
        this._appContainer = {};
        this._recommendationsContainer = {};
        // User Intent
        this._userIntentContainer = {};
        this._userIntent = {};
        this._userIntentQuestionnaire = {};
        this._userIntentRecommendations = {};
        this._userIntentContainerAnalyticsParams = {};
        this._recommendationsWithMetadata = [];
        //initially set on true, because we don't want to display the
        // old banner for 1-2 seconds and then switch to carousel
        this._hasValidRecommendations = true;
        // TODO :  update this after UTUS will setup flag and data
        this._hasMultipleCards = true;
        this._highlightTutorialCardIDs = [];
        this._localPathName = THUMBNAIL_PATHS.HERO_PATH;
        this.placeholderCount = 0;
    }
    /**
     * Initializes the utut data that is shown to the end user.
     */
    async init() {
        await super.init();
    }
    static findWebContainer(data) {
        return (data.surfaces[src_components_start_constants__WEBPACK_IMPORTED_MODULE_2__[/* default */ "k"].SURFACES.TUTORIALS].containers.find(x => {
            if (x.content && Array.isArray(x.content.tutorials)) {
                const tut = x.content.tutorials[0];
                // type
                if (tut && tut.metadata && Array.isArray(tut.metadata.platforms)) {
                    const isApp = tut.metadata.platforms.includes(src_components_start_constants__WEBPACK_IMPORTED_MODULE_2__[/* default */ "k"].LEARN_PLATFORMS.IN_APP[0]) ||
                        tut.metadata.platforms.includes(src_components_start_constants__WEBPACK_IMPORTED_MODULE_2__[/* default */ "k"].LEARN_PLATFORMS.IN_APP[1]);
                    if (!isApp) {
                        return true;
                    }
                }
            }
        }) || {});
    }
    static findRecommendationsContainer(data) {
        return (data.surfaces[src_components_start_constants__WEBPACK_IMPORTED_MODULE_2__[/* default */ "k"].SURFACES.TUTORIALS].containers.find(x => { var _a; return ((_a = x.content) === null || _a === void 0 ? void 0 : _a.data) && Array.isArray(x.content.data.recommendations); }) || {});
    }
    static findAppContainer(data) {
        const webContainer = Ututs.findWebContainer(data);
        const recommendationsContainer = Ututs.findRecommendationsContainer(data);
        return data.surfaces[src_components_start_constants__WEBPACK_IMPORTED_MODULE_2__[/* default */ "k"].SURFACES.TUTORIALS].containers.find(container => container !== webContainer && container !== recommendationsContainer);
    }
    static findTutorialsContainerByLabel(data, label) {
        return data.surfaces[src_components_start_constants__WEBPACK_IMPORTED_MODULE_2__[/* default */ "k"].SURFACES.TUTORIALS].containers.find(x => x.containerLabel === label);
    }
    getLocalPathNameFromRecommendationFetchType(isFetchableRecommendation) {
        var _a, _b, _c, _d;
        if (isFetchableRecommendation) {
            return THUMBNAIL_PATHS.HERO_PATH;
        }
        else {
            const homeSurface = _stores_MainStore__WEBPACK_IMPORTED_MODULE_3__["mainStore"].sidekickStore.homeExperienceOverride || src_js_start_Sophia__WEBPACK_IMPORTED_MODULE_9__[/* default */ "a"].getSurfaceContent(src_components_start_constants__WEBPACK_IMPORTED_MODULE_2__[/* default */ "k"].SURFACES.HOME);
            const homeContent = (_b = (_a = homeSurface === null || homeSurface === void 0 ? void 0 : homeSurface.data) === null || _a === void 0 ? void 0 : _a.experienceHomeMx19ByPath) === null || _b === void 0 ? void 0 : _b.item;
            const multipleCards = ((_c = homeContent === null || homeContent === void 0 ? void 0 : homeContent.stage1) === null || _c === void 0 ? void 0 : _c.multipleCards) || ((_d = homeContent === null || homeContent === void 0 ? void 0 : homeContent.stage2) === null || _d === void 0 ? void 0 : _d.multipleCards);
            return multipleCards
                ? THUMBNAIL_PATHS.THUMBNAIL_URL
                : THUMBNAIL_PATHS.LARGE_THUMBNAIL_URL;
        }
    }
    setRecommendationsWithMetadata(recsWithMetadata, validRecs) {
        // filter out the undefineds
        this._recommendationsWithMetadata = recsWithMetadata.filter(rec => rec);
        this._hasValidRecommendations = validRecs === undefined ? !!this._recommendationsWithMetadata.length : validRecs;
    }
    isUtutServiceRecommendation(initialRec) {
        var _a;
        return ((_a = initialRec === null || initialRec === void 0 ? void 0 : initialRec.content) === null || _a === void 0 ? void 0 : _a.source) === RECOMMENDATIONS_SOURCES.UTUT_SERVICE;
    }
    // Fetchable recommendations are ututService recommendations that have a secondary JSON holding the metadata
    // i.e. helpKb, helpUsing, inApp, helpLearn tutorials
    isFetchableRecommendation(rec) {
        var _a, _b;
        // use online data if there is no path to local data
        return (rec === null || rec === void 0 ? void 0 : rec.path) || ((_a = rec === null || rec === void 0 ? void 0 : rec.content) === null || _a === void 0 ? void 0 : _a.path) || ((_b = rec === null || rec === void 0 ? void 0 : rec.content) === null || _b === void 0 ? void 0 : _b.downloadUrl) || '';
    }
    isDisplayable(rec, isFetchableRecommendation, isPlaylist = false) {
        var _a, _b, _c, _d, _e, _f, _g, _h;
        return isFetchableRecommendation
            ? isPlaylist
                ? (_a = rec === null || rec === void 0 ? void 0 : rec.playlists) === null || _a === void 0 ? void 0 : _a[0] : (_c = (_b = rec === null || rec === void 0 ? void 0 : rec.tutorials) === null || _b === void 0 ? void 0 : _b[0]) === null || _c === void 0 ? void 0 : _c.metadata
            : !this.isUtutServiceRecommendation(rec) && ((_d = rec === null || rec === void 0 ? void 0 : rec.content) === null || _d === void 0 ? void 0 : _d.id) && ((_f = (_e = rec.content) === null || _e === void 0 ? void 0 : _e.assetUrls) === null || _f === void 0 ? void 0 : _f.sampleFile) && ((_g = rec === null || rec === void 0 ? void 0 : rec.content) === null || _g === void 0 ? void 0 : _g.group) && ((_h = rec === null || rec === void 0 ? void 0 : rec.content) === null || _h === void 0 ? void 0 : _h.description);
    }
    getCurrentPlaceholderImage(dcrType = DCRType.PHXS, type) {
        // New content can be loaded even when the hosts are running
        // We repopulate the array with placeholder images when running out of them
        let placeholdersToUse;
        if (dcrType === DCRType.USER_INTENT_DIALOG) {
            placeholdersToUse = type
                ? placeholders[dcrType][type]
                : placeholders[dcrType][Object.keys(placeholders[dcrType])[0]];
        }
        else {
            placeholdersToUse = placeholders[dcrType];
        }
        const item = this.placeholderCount % (placeholdersToUse === null || placeholdersToUse === void 0 ? void 0 : placeholdersToUse.length);
        return placeholdersToUse === null || placeholdersToUse === void 0 ? void 0 : placeholdersToUse[item];
    }
    getImagesUrls(rec, isFetchableRecommendation, isPlaylist) {
        var _a, _b, _c, _d, _e, _f;
        return isFetchableRecommendation
            ? (isPlaylist
                ? (_b = (_a = rec === null || rec === void 0 ? void 0 : rec.playlists) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.images : (_e = (_d = (_c = rec === null || rec === void 0 ? void 0 : rec.tutorials) === null || _c === void 0 ? void 0 : _c[0]) === null || _d === void 0 ? void 0 : _d.metadata) === null || _e === void 0 ? void 0 : _e.images)
            : (_f = rec === null || rec === void 0 ? void 0 : rec.content) === null || _f === void 0 ? void 0 : _f.assetPaths;
    }
    getRecommendationThumbnailPath(rec, isFetchableRecommendation, dcrType, isPlaylist = false, recCategory) {
        var _a, _b, _c, _d;
        let placeholderImage;
        let images = this.getImagesUrls(rec, isFetchableRecommendation, isPlaylist);
        const localPathOverride = this.getLocalPathNameFromRecommendationFetchType(isFetchableRecommendation);
        const imagePaths = images === null || images === void 0 ? void 0 : images[localPathOverride];
        // If recommendations(tutorials) don't have images add default ones
        // or if the tutorial already exists in the carousel
        // keep the already added placeholder image
        if (!imagePaths) {
            const contentLocation = isPlaylist ? 'playlists' : 'tutorials';
            const recommendation = this._recommendationsWithMetadata.find(recWithMetadata => { var _a, _b; return isFetchableRecommendation ? recWithMetadata.aem_id === ((_b = (_a = rec[contentLocation]) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.aem_id) : recWithMetadata.id === rec.id; });
            if (isFetchableRecommendation && ((_b = (_a = recommendation === null || recommendation === void 0 ? void 0 : recommendation.metadata) === null || _a === void 0 ? void 0 : _a.images) === null || _b === void 0 ? void 0 : _b.hero) &&
                !_stores_MainStore__WEBPACK_IMPORTED_MODULE_3__["mainStore"].sidekickStore.assetsPathOverride) {
                images = recommendation.metadata.images;
            }
            else if (!isFetchableRecommendation && ((_d = (_c = recommendation === null || recommendation === void 0 ? void 0 : recommendation.content) === null || _c === void 0 ? void 0 : _c.assetPaths) === null || _d === void 0 ? void 0 : _d[localPathOverride]) &&
                !_stores_MainStore__WEBPACK_IMPORTED_MODULE_3__["mainStore"].sidekickStore.assetsPathOverride) {
                images = recommendation.content.assetPaths[localPathOverride];
            }
            else {
                placeholderImage = this.getCurrentPlaceholderImage(dcrType, recCategory);
                this.placeholderCount++;
                return placeholderImage;
            }
        }
        return this.getFullAssetPath(images, { createFileURI: true }, localPathOverride);
    }
    getImagesPaths(rec, dcrType, isPlaylist = false, recCategory) {
        const images = this.getImagesUrls(rec, true, isPlaylist);
        if (!images || (_stores_MainStore__WEBPACK_IMPORTED_MODULE_3__["mainStore"].sidekickStore.assetsPathOverride && _stores_MainStore__WEBPACK_IMPORTED_MODULE_3__["mainStore"].sidekickStore.tutorialOverride)) {
            // Don't increase placeholderCount here because it would have
            // already been increased in getRecommendationThumbnailPath
            const placeHolderImage = this.getCurrentPlaceholderImage(dcrType, recCategory);
            return {
                heroPath: placeHolderImage,
                thumbnailPath: placeHolderImage,
            };
        }
        let heroPath = this.getFullAssetPath(images, { createFileURI: true }, THUMBNAIL_PATHS.HERO_PATH);
        let thumbnailPath = this.getFullAssetPath(images, { createFileURI: true }, THUMBNAIL_PATHS.THUMBNAIL_PATH);
        if (!heroPath || !thumbnailPath) {
            const placeHolderImage = this.getCurrentPlaceholderImage(dcrType, recCategory);
            heroPath = heroPath || placeHolderImage;
            thumbnailPath = thumbnailPath || placeHolderImage;
        }
        return {
            heroPath,
            thumbnailPath,
        };
    }
    getRecommendationContent(rec, fetchedRecommendations, isFetchableRecommendation, dcrType) {
        var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
        const isPlaylist = ((_a = rec === null || rec === void 0 ? void 0 : rec.content) === null || _a === void 0 ? void 0 : _a.type) === 'playlist';
        const contentLocation = isPlaylist ? 'playlists' : 'tutorials';
        // i.e. Quick actions & Try it now are not fetchable =>  they have all the data in rec && they don't have an extra JSON
        let recommendation = isFetchableRecommendation
            ? fetchedRecommendations === null || fetchedRecommendations === void 0 ? void 0 : fetchedRecommendations.find(r => { var _a, _b, _c, _d; return ((_a = r === null || r === void 0 ? void 0 : r[contentLocation]) === null || _a === void 0 ? void 0 : _a.length) && ((_c = (_b = r[contentLocation]) === null || _b === void 0 ? void 0 : _b[0]) === null || _c === void 0 ? void 0 : _c.aem_id) === ((_d = rec.content) === null || _d === void 0 ? void 0 : _d.id); }) : rec;
        if (rec.content.type === src_components_start_constants__WEBPACK_IMPORTED_MODULE_2__[/* RECOMMENDATION_TYPE */ "f"].customContent) {
            src_applications__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].hasCustomContentRecommendation = true;
            const placeholderImage = this.getCurrentPlaceholderImage();
            this.placeholderCount++;
            return {
                fullImagePath: placeholderImage,
                ...rec,
                ...(_d = (_c = (_b = fetchedRecommendations[0]) === null || _b === void 0 ? void 0 : _b.data) === null || _c === void 0 ? void 0 : _c.componentStandardToutByPath) === null || _d === void 0 ? void 0 : _d.item
            };
        }
        if (!recommendation) {
            recommendation = rec;
        }
        if (this.isDisplayable(recommendation, isFetchableRecommendation, isPlaylist)) {
            // We keep both fullImagePath and thumbnailPath for backwards compatibility (i.e. in the HS carousel)
            // getRecommendationThumbnailPath's result will be used only for HS carousels (check YukonParsers.tsx -> prepareCarouselCards)
            // getImagesPaths's result will be used only for user intent dialog (check YukonContainers.tsx -> getUserIntentDialogContent)
            const thumbnailPath = this.getRecommendationThumbnailPath(recommendation, isFetchableRecommendation, dcrType, isPlaylist, (_e = rec.categories) === null || _e === void 0 ? void 0 : _e[0]);
            const images = this.getImagesPaths(recommendation, dcrType, isPlaylist, (_f = rec.categories) === null || _f === void 0 ? void 0 : _f[0]);
            return {
                ...(isFetchableRecommendation && { ...(_g = recommendation === null || recommendation === void 0 ? void 0 : recommendation[contentLocation]) === null || _g === void 0 ? void 0 : _g[0] }),
                ...(!isFetchableRecommendation && { tutorialUUID: (_h = rec === null || rec === void 0 ? void 0 : rec.content) === null || _h === void 0 ? void 0 : _h.uuid }),
                ...rec,
                fullImagePath: thumbnailPath,
                ...images,
                metadata: { ...rec.metadata, ...(isFetchableRecommendation ? { ...(_k = (_j = recommendation === null || recommendation === void 0 ? void 0 : recommendation[contentLocation]) === null || _j === void 0 ? void 0 : _j[0]) === null || _k === void 0 ? void 0 : _k.metadata } : { ...rec.content }) },
                modelMetadata: rec.metadata,
            };
        }
        else {
            _logger.warn('There is not enough data to load the recommendation card.', rec);
            _iaw_analytics__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"].logErrorEvent('suggestions', {
                error: {
                    desc: 'There is not enough data to load the recommendation card.',
                    type: 'network',
                },
                recommendationsJson: this.recommendationsJsonData,
                stage: _stores_MainStore__WEBPACK_IMPORTED_MODULE_3__["mainStore"].recentFilesStore.realOrArtificialLength > 0 ? 'stage2' : 'stage1',
                layout: 'carousel',
                containerAnalyticsParams: src_js_start_Sophia__WEBPACK_IMPORTED_MODULE_9__[/* default */ "a"].getAnalyticsData(src_components_start_constants__WEBPACK_IMPORTED_MODULE_2__[/* default */ "k"].SURFACES.HOME),
                cardAnalyticsData: {
                    id: rec.id,
                    title: rec.title,
                    category: rec.type,
                    source: rec.source,
                    metadata: rec.metadata,
                    type: rec.type,
                },
            });
        }
        // Return nothing, otherwise an empty card will be displayed.
        return;
    }
    async fetchRecommendations(initialRecs, dcrType) {
        // Fetchable recs, with a second JSON. i.e. helpKb, helpUsing, inApp, helpLearn tutorials
        const recsToFetch = (initialRecs === null || initialRecs === void 0 ? void 0 : initialRecs.filter(rec => this.isFetchableRecommendation(rec))) || [];
        this.placeholderCount = 0;
        if (!recsToFetch || recsToFetch.length === 0) {
            // Non fetchable recs, with all the needed data in initialRecs, i.e. Try it now, Quick actions
            const nonFetchableRecs = initialRecs.filter(rec => !this.isFetchableRecommendation(rec) && this.isDisplayable(rec, false));
            const recsToDisplay = nonFetchableRecs.map(rec => this.getRecommendationContent(rec, undefined, false, dcrType));
            return { recommendations: recsToDisplay };
        }
        else if (recsToFetch === null || recsToFetch === void 0 ? void 0 : recsToFetch.length) {
            try {
                const responses = await Promise.all(recsToFetch.map(async (element) => {
                    try {
                        const parentPath = dcrType === DCRType.USER_INTENT_DIALOG ? element : element.content;
                        return await fetch(this.getFullRecommendationPath(parentPath, { createFileURI: true }, parentPath ? 'path' : 'downloadUrl'));
                    }
                    catch (error) {
                        const errorPayload = {
                            message: `Fetching or loading from local path failed for asset with id: ${element.content.id}. Error: ${error === null || error === void 0 ? void 0 : error.message}`,
                            type: _iaw_HomescreenError__WEBPACK_IMPORTED_MODULE_10__[/* HomescreenErrorTypes */ "c"].RECOMMENDATIONS,
                            code: _iaw_HomescreenError__WEBPACK_IMPORTED_MODULE_10__[/* HomescreenErrorCodes */ "b"].RECOMMENDATION_FETCH_FAILURE,
                        };
                        this.logRecommendationsErrorEvent(dcrType, errorPayload);
                    }
                }));
                const fetchedRecommendations = await Promise.all(await responses.filter(res => res).map((res) => res.json()));
                const recsWithMetadata = initialRecs === null || initialRecs === void 0 ? void 0 : initialRecs.map(rec => {
                    const isFetchable = this.isFetchableRecommendation(rec);
                    return this.getRecommendationContent(rec, fetchedRecommendations, isFetchable, dcrType);
                });
                return { recommendations: recsWithMetadata.filter(rec => rec) };
            }
            catch (error) {
                const errorPayload = {
                    message: `Could not fetch recommendations: ${error === null || error === void 0 ? void 0 : error.toString()}`,
                    type: _iaw_HomescreenError__WEBPACK_IMPORTED_MODULE_10__[/* HomescreenErrorTypes */ "c"].RECOMMENDATIONS,
                    code: _iaw_HomescreenError__WEBPACK_IMPORTED_MODULE_10__[/* HomescreenErrorCodes */ "b"].RECOMMENDATIONS_BATCH_FETCH_FAILURE,
                };
                this.logRecommendationsErrorEvent(dcrType, errorPayload);
                return { recommendations: initialRecs, hasValidRecommendations: false };
            }
        }
        else {
            return { recommendations: initialRecs, hasValidRecommendations: false };
        }
    }
    async populateRecommendations() {
        var _a, _b;
        if ((_b = (_a = this._recommendationsContainer) === null || _a === void 0 ? void 0 : _a.content) === null || _b === void 0 ? void 0 : _b.data) {
            const initialRecs = this._recommendationsContainer.content.data.recommendations || [];
            const recommendationsErrors = this._recommendationsContainer.content.errors || [];
            // Log Recommendations errors
            if (recommendationsErrors.length) {
                const message = 'Dynamic Content Recommendations errors: ' + JSON.stringify(recommendationsErrors);
                _logger.error(message);
                _iaw_analytics__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"].logErrorEvent('suggestions', {
                    error: {
                        desc: message,
                        type: _iaw_HomescreenError__WEBPACK_IMPORTED_MODULE_10__[/* HomescreenErrorTypes */ "c"].CUSTOM_CONTENT_CONFIGURATION_CARDS,
                        code: _iaw_HomescreenError__WEBPACK_IMPORTED_MODULE_10__[/* HomescreenErrorCodes */ "b"].RECOMMENDATIONS_ERRORS
                    },
                    stage: _stores_MainStore__WEBPACK_IMPORTED_MODULE_3__["mainStore"].recentFilesStore.realOrArtificialLength > 0 ? 'stage2' : 'stage1',
                    layout: 'populateRecommendations',
                    recommendationsJson: this.recommendationsJsonData,
                    containerAnalyticsParams: src_js_start_Sophia__WEBPACK_IMPORTED_MODULE_9__[/* default */ "a"].getAnalyticsData(src_components_start_constants__WEBPACK_IMPORTED_MODULE_2__[/* default */ "k"].SURFACES.HOME),
                });
            }
            if (_stores_MainStore__WEBPACK_IMPORTED_MODULE_3__["mainStore"].sidekickStore.assetsPathOverride) {
                const assetsPath = _stores_MainStore__WEBPACK_IMPORTED_MODULE_3__["mainStore"].sidekickStore.assetsPathOverride;
                initialRecs.forEach(rec => {
                    // i.e. Quick actions & Try it now are not fetchable =>  they have all the data in rec && they don't have an extra JSON
                    if (this.isFetchableRecommendation(rec)) {
                        rec.content.path = `file://${assetsPath}${rec.content.path}`;
                    }
                });
            }
            const { recommendations, hasValidRecommendations } = await this.fetchRecommendations(initialRecs, src_applications__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].id);
            this.setRecommendationsWithMetadata(recommendations, hasValidRecommendations);
        }
        else {
            this._hasValidRecommendations = false;
        }
    }
    async populateUserIntentDialog() {
        var _a, _b, _c, _d, _e;
        // populate analytics 
        if (this._userIntentContainer) {
            this._userIntentContainerAnalyticsParams = this._userIntentContainer.containerAnalyticsData;
        }
        let errorMessage;
        try {
            errorMessage = `There is not enough data to load User Intent: ${JSON.stringify(this._userIntentContainer)}`;
        }
        catch (error) {
            errorMessage = `Error on populating UserIntent Dialog data. UserIntentContainer error: ${error}`;
        }
        const errorPayload = {
            message: errorMessage,
            type: _iaw_HomescreenError__WEBPACK_IMPORTED_MODULE_10__[/* HomescreenErrorTypes */ "c"].USER_INTENT_DIALOG,
            code: _iaw_HomescreenError__WEBPACK_IMPORTED_MODULE_10__[/* HomescreenErrorCodes */ "b"].MISSING_CONTAINER_MAJOR_FIELDS,
        };
        // populate user intent content
        if ((_a = this._userIntentContainer) === null || _a === void 0 ? void 0 : _a.path) {
            const basePath = _stores_MainStore__WEBPACK_IMPORTED_MODULE_3__["mainStore"].sidekickStore.assetsPathOverride || this.basePath;
            const userIntent = await _iaw_fs__WEBPACK_IMPORTED_MODULE_11__[/* default */ "a"].readJson(`${basePath}${this._userIntentContainer.path}`);
            this._userIntent = (_c = (_b = userIntent === null || userIntent === void 0 ? void 0 : userIntent.data) === null || _b === void 0 ? void 0 : _b.userintentByPath) === null || _c === void 0 ? void 0 : _c.item;
            if (!this._userIntent || !this._userIntent.pages) {
                this.logRecommendationsErrorEvent(DCRType.USER_INTENT_DIALOG, errorPayload);
                src_js_start_Sophia__WEBPACK_IMPORTED_MODULE_9__[/* default */ "a"].defaultToastalToWhatsNew();
                return;
            }
            const references = (_e = (_d = userIntent === null || userIntent === void 0 ? void 0 : userIntent.data) === null || _d === void 0 ? void 0 : _d.userintentByPath) === null || _e === void 0 ? void 0 : _e._references;
            const { questionnaire, recommendations } = this._userIntent.pages;
            this._userIntentQuestionnaire = {
                ...questionnaire,
                items: questionnaire.items.map(item => {
                    return {
                        ...item,
                        answers: item.answers.map(answer => {
                            return {
                                ...answer,
                                ...(answer.primaryThumbnailUrl && {
                                    primaryThumbnailPath: src_js_start_Sophia__WEBPACK_IMPORTED_MODULE_9__[/* default */ "a"].getFullAssetPathFromReferences(answer.primaryThumbnailUrl, { createFileURI: true }, references, basePath, 'path')
                                }),
                                ...(answer.secondaryThumbnailUrl && {
                                    secondaryThumbnailPath: src_js_start_Sophia__WEBPACK_IMPORTED_MODULE_9__[/* default */ "a"].getFullAssetPathFromReferences(answer.secondaryThumbnailUrl, { createFileURI: true }, references, basePath, 'path')
                                }),
                            };
                        }),
                    };
                }),
            };
            const { recommendations: fetchedRecommendations, hasValidRecommendations: validRecs, } = await this.fetchRecommendations(recommendations === null || recommendations === void 0 ? void 0 : recommendations.items, DCRType.USER_INTENT_DIALOG);
            this._userIntentRecommendations = {
                ...recommendations,
                items: fetchedRecommendations,
            };
            if (!_stores_MainStore__WEBPACK_IMPORTED_MODULE_3__["mainStore"].isToastalSettled) {
                const hasValidRecommendations = validRecs === undefined ? !!fetchedRecommendations.length : validRecs;
                if (hasValidRecommendations) {
                    _stores_MainStore__WEBPACK_IMPORTED_MODULE_3__["mainStore"].setActiveToastal(_stores_MainStore__WEBPACK_IMPORTED_MODULE_3__["ToastalName"].USER_INTENT_DIALOG);
                    _stores_MainStore__WEBPACK_IMPORTED_MODULE_3__["mainStore"].setToastalSettled();
                }
                else {
                    this.logRecommendationsErrorEvent(DCRType.USER_INTENT_DIALOG, errorPayload);
                    src_js_start_Sophia__WEBPACK_IMPORTED_MODULE_9__[/* default */ "a"].defaultToastalToWhatsNew();
                }
            }
            if (_stores_MainStore__WEBPACK_IMPORTED_MODULE_3__["mainStore"].sidekickStore.assetsPathOverride && _stores_MainStore__WEBPACK_IMPORTED_MODULE_3__["mainStore"].sidekickStore.tutorialOverride) {
                _stores_MainStore__WEBPACK_IMPORTED_MODULE_3__["mainStore"].setActiveToastal(_stores_MainStore__WEBPACK_IMPORTED_MODULE_3__["ToastalName"].USER_INTENT_DIALOG, true);
            }
        }
        else {
            src_js_start_Sophia__WEBPACK_IMPORTED_MODULE_9__[/* default */ "a"].defaultToastalToWhatsNew();
            if (this._userIntentContainer) {
                // We have the userIntent container successful, but we don't have the path
                this.logRecommendationsErrorEvent(DCRType.USER_INTENT_DIALOG, errorPayload);
            }
        }
    }
    handleDataError(homeScreenError) {
        _iaw_analytics__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"].logErrorEvent('learnTab', {
            totalWebTutorials: this.webTutorials.length,
            error: homeScreenError,
            containerAnalyticsParams: this.appAnalyticsData,
        });
        src_js_start_Sophia__WEBPACK_IMPORTED_MODULE_9__[/* default */ "a"].defaultToastalToWhatsNew();
        this._hasValidRecommendations = false;
    }
    /**
     * Messages data to apply onto the screen and make live
     * @param data Data to apply
     */
    async apply(data) {
        try {
            if (data &&
                data.surfaces &&
                data.surfaces[src_components_start_constants__WEBPACK_IMPORTED_MODULE_2__[/* default */ "k"].SURFACES.TUTORIALS] &&
                Array.isArray(data.surfaces[src_components_start_constants__WEBPACK_IMPORTED_MODULE_2__[/* default */ "k"].SURFACES.TUTORIALS].containers)) {
                const containers = data.surfaces[src_components_start_constants__WEBPACK_IMPORTED_MODULE_2__[/* default */ "k"].SURFACES.TUTORIALS].containers;
                this._webContainer = Ututs.findWebContainer(data);
                this._appContainer =
                    containers.find(container => container.content !== this._webContainer.content) || {};
                // get the recommendations and fetch their complete content
                this._recommendationsContainer = Ututs.findRecommendationsContainer(data);
                await this.populateRecommendations();
                this._userIntentContainer = Ututs.findTutorialsContainerByLabel(data, src_components_start_constants__WEBPACK_IMPORTED_MODULE_2__[/* CONTAINER_LABELS */ "d"].USER_INTENT_DIALOG);
                await this.populateUserIntentDialog();
                if (this.webTutorials.length === 0) {
                    _logger.log(`No valid web tutorials to apply`);
                    const homeScreenError = new _iaw_HomescreenError__WEBPACK_IMPORTED_MODULE_10__[/* HomescreenError */ "a"]('missing-tutorials', 'learntab', _iaw_HomescreenError__WEBPACK_IMPORTED_MODULE_10__[/* HomescreenErrorCodes */ "b"].LEARN_TAB_TUTORIALS_MISSING);
                    _iaw_analytics__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"].logErrorEvent('learnTab', {
                        totalWebTutorials: this.webTutorials.length,
                        error: homeScreenError,
                        containerAnalyticsParams: this.appAnalyticsData,
                    });
                }
                else {
                    _logger.log(`User has ${this.webTutorials.length} web tutorials`);
                    _iaw_analytics__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"].logRenderedEvent('learn-menu', {
                        totalWebTutorials: this.webTutorials.length,
                    }, { forceLogEventIfHomeScreenHidden: true });
                }
            }
            else if (data && data.surfaces && !data.surfaces[src_components_start_constants__WEBPACK_IMPORTED_MODULE_2__[/* default */ "k"].SURFACES.TUTORIALS]) {
                _logger.warn(`Missing tutorial surface completely`);
                const homeScreenError = new _iaw_HomescreenError__WEBPACK_IMPORTED_MODULE_10__[/* HomescreenError */ "a"]('Missing Tutorial Surface', 'learntab', _iaw_HomescreenError__WEBPACK_IMPORTED_MODULE_10__[/* HomescreenErrorCodes */ "b"].LEARN_TAB_SURFACE_MISSING);
                this.handleDataError(homeScreenError);
            }
            else if (!data || (data && !data.surfaces)) {
                _logger.warn(`Empty response from CCX Process`);
                const homeScreenError = new _iaw_HomescreenError__WEBPACK_IMPORTED_MODULE_10__[/* HomescreenError */ "a"]('Empty response from CCX Process', 'learntab', _iaw_HomescreenError__WEBPACK_IMPORTED_MODULE_10__[/* HomescreenErrorCodes */ "b"].LEARN_TAB_RESPONSE_MISSING);
                this.handleDataError(homeScreenError);
            }
        }
        catch (e) {
            _logger.error(`Error fetching learn data: ${e.toString()}`);
            const homeScreenError = new _iaw_HomescreenError__WEBPACK_IMPORTED_MODULE_10__[/* HomescreenError */ "a"](e.toString(), 'learntab', _iaw_HomescreenError__WEBPACK_IMPORTED_MODULE_10__[/* HomescreenErrorCodes */ "b"].LEARN_TAB_FETCH_FAILED);
            this.handleDataError(homeScreenError);
        }
    }
    /**
     * Mark the usage of learn for caching purposes.
     */
    markUsage() {
        Object(_js_iaw_VulcanAPI__WEBPACK_IMPORTED_MODULE_8__[/* vulcanAPI */ "a"])().dispatch({ type: 'ccxprocess.TutorialUsageMarker', data: this.requestData });
    }
    /**
     * The list of tutorials that open within the app.
     */
    get appTutorials() {
        if (_stores_MainStore__WEBPACK_IMPORTED_MODULE_3__["mainStore"].sidekickStore.tutorialOverride) {
            try {
                const sidekickAppContainer = Ututs.findAppContainer(_stores_MainStore__WEBPACK_IMPORTED_MODULE_3__["mainStore"].sidekickStore.tutorialOverride);
                const sidekickAppTuts = JSON.parse(sidekickAppContainer.data);
                return sidekickAppTuts.tutorials || [];
            }
            catch (e) {
                _logger.error('Sidekick Tutorial Override failed', e);
                return [];
            }
        }
        return (this._appContainer.content && this._appContainer.content.tutorials) || [];
    }
    get recommendations() {
        var _a, _b;
        return this._recommendationsWithMetadata || ((_b = (_a = this._recommendationsContainer.content) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.recommendations) || [];
    }
    get hasValidRecommendations() {
        return this._hasValidRecommendations;
    }
    get hasMultipleCards() {
        return this._hasMultipleCards;
    }
    /**
     * List of tutorials that open in the web browser
     */
    get webTutorials() {
        if (_stores_MainStore__WEBPACK_IMPORTED_MODULE_3__["mainStore"].sidekickStore.tutorialOverride) {
            try {
                const sidekickWebContainer = Ututs.findWebContainer(_stores_MainStore__WEBPACK_IMPORTED_MODULE_3__["mainStore"].sidekickStore.tutorialOverride);
                const sidekickWebTuts = JSON.parse(sidekickWebContainer.data);
                return sidekickWebTuts.tutorials || [];
            }
            catch (e) {
                _logger.error('Sidekick Tutorial Override failed', e);
                return [];
            }
        }
        return (this._webContainer.content && this._webContainer.content.tutorials) || [];
    }
    get hasThirdPartyContent() {
        return this.webTutorials.some(({ metadata }) => metadata.source && metadata.source.third_party);
    }
    /**
     * Analytics data for web browser tutorials
     */
    get webAnalyticsData() {
        return this._webContainer.containerAnalyticsData || {};
    }
    /**
     * Analytics data for in-app tutorials
     */
    get appAnalyticsData() {
        return this._appContainer.containerAnalyticsData || {};
    }
    /**
     * Analytics data for dynamic recommendations
     */
    get recommendationsAnalyticsData() {
        return this._recommendationsContainer.containerAnalyticsData || {};
    }
    /**
     * Recommendations Json Data needed for analytics
     */
    get recommendationsJsonData() {
        return this._recommendationsContainer.data;
    }
    set highlightedTutorialCardIDs(cardIDs) {
        this._highlightTutorialCardIDs = cardIDs;
    }
    get highlightedTutorialCardIDs() {
        return this._highlightTutorialCardIDs;
    }
    clearHighlightedTutorialCardIDs() {
        this._highlightTutorialCardIDs = [];
    }
    getAnalyticsComponentName(contentType) {
        switch (contentType) {
            case DCRType.USER_INTENT_DIALOG:
                return DCRType.USER_INTENT_DIALOG;
            default:
                return 'suggestions';
        }
    }
    getAnalyticsData(contentType) {
        switch (contentType) {
            case DCRType.USER_INTENT_DIALOG:
                return this._userIntentContainerAnalyticsParams;
            default:
                return src_js_start_Sophia__WEBPACK_IMPORTED_MODULE_9__[/* default */ "a"].getAnalyticsData(src_components_start_constants__WEBPACK_IMPORTED_MODULE_2__[/* default */ "k"].SURFACES.HOME);
        }
    }
    logRecommendationsErrorEvent(dcrType, error) {
        var _a;
        _logger.warn(error.message);
        _iaw_analytics__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"].logErrorEvent(this.getAnalyticsComponentName(dcrType), {
            error: {
                desc: (_a = JSON.stringify(error.message)) === null || _a === void 0 ? void 0 : _a.substring(0, 997),
                type: error.type || _stores_MainStore__WEBPACK_IMPORTED_MODULE_3__["mainStore"].online ? _iaw_HomescreenError__WEBPACK_IMPORTED_MODULE_10__[/* RenderErrorTypes */ "d"].LAYOUT : _iaw_HomescreenError__WEBPACK_IMPORTED_MODULE_10__[/* RenderErrorTypes */ "d"].NETWORK,
                code: error.code,
            },
            recommendationsJson: this.recommendationsJsonData,
            containerAnalyticsParams: this.getAnalyticsData(dcrType)
        });
    }
    /////////////////////////////////////////////////////////////
    // User Intent
    //////////////////////////////////////////////////////////////
    get userIntentEdition() {
        var _a;
        return (_a = this._userIntent) === null || _a === void 0 ? void 0 : _a.edition;
    }
    get userIntentQuestionnaire() {
        return this._userIntentQuestionnaire;
    }
    get userIntentRecommendations() {
        return this._userIntentRecommendations;
    }
    get userIntentContainerAnalyticsParams() {
        return this._userIntentContainerAnalyticsParams;
    }
    get userIntentJson() {
        var _a;
        return (_a = this._userIntentContainer) === null || _a === void 0 ? void 0 : _a.data;
    }
    /////////////////////////////////////////////////////////////
    // Configuration
    //////////////////////////////////////////////////////////////
    get isViewHidden() {
        return src_applications__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].isHomeScreenVisible == false || !['learn'].includes(_stores_MainStore__WEBPACK_IMPORTED_MODULE_3__["mainStore"].prefs.currentRoute);
    }
    /*
     * Return true if it is safe or necessary to patch data in to the user
     * Used to tell if data is missing.
     */
    get safeToPatch() {
        return this.webTutorials.length === 0;
    }
    isValidBroadcast(message) {
        return message.productCode === src_applications__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].id && message.productVersion === src_applications__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].version;
    }
    get paramField() {
        return 'params';
    }
    get placeholderPath() {
        return 'sophia/learn.json';
    }
    get requestType() {
        return 'ccxprocess.Tutorial';
    }
    get type() {
        return 'Utut';
    }
    get imageUrlProperty() {
        return 'hero';
    }
    get localPathName() {
        return this._localPathName;
    }
    get requiredSurface() {
        return src_components_start_constants__WEBPACK_IMPORTED_MODULE_2__[/* default */ "k"].SURFACES.TUTORIALS;
    }
    // Parameter to track the client name
    get frameworkName() {
        return 'UXP Learn Panel';
    }
}
__decorate([
    Object(src_components_start_performance__WEBPACK_IMPORTED_MODULE_5__[/* Time */ "b"])('Ututs Init'),
    __metadata("design:type", Function),
    __metadata("design:paramtypes", []),
    __metadata("design:returntype", Promise)
], Ututs.prototype, "init", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* computed */ "l"],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], Ututs.prototype, "recommendations", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* computed */ "l"],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], Ututs.prototype, "hasValidRecommendations", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* computed */ "l"],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], Ututs.prototype, "hasMultipleCards", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* computed */ "l"],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], Ututs.prototype, "isViewHidden", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* observable */ "z"].shallow,
    __metadata("design:type", typeof (_a = typeof _SophiaBase__WEBPACK_IMPORTED_MODULE_0__["Card"] !== "undefined" && _SophiaBase__WEBPACK_IMPORTED_MODULE_0__["Card"]) === "function" ? _a : Object)
], Ututs.prototype, "_webContainer", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* observable */ "z"].shallow,
    __metadata("design:type", typeof (_b = typeof _SophiaBase__WEBPACK_IMPORTED_MODULE_0__["Card"] !== "undefined" && _SophiaBase__WEBPACK_IMPORTED_MODULE_0__["Card"]) === "function" ? _b : Object)
], Ututs.prototype, "_appContainer", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* observable */ "z"].shallow,
    __metadata("design:type", typeof (_c = typeof _SophiaBase__WEBPACK_IMPORTED_MODULE_0__["Card"] !== "undefined" && _SophiaBase__WEBPACK_IMPORTED_MODULE_0__["Card"]) === "function" ? _c : Object)
], Ututs.prototype, "_recommendationsContainer", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* observable */ "z"].shallow,
    __metadata("design:type", typeof (_d = typeof _SophiaBase__WEBPACK_IMPORTED_MODULE_0__["Card"] !== "undefined" && _SophiaBase__WEBPACK_IMPORTED_MODULE_0__["Card"]) === "function" ? _d : Object)
], Ututs.prototype, "_userIntentContainer", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* observable */ "z"],
    __metadata("design:type", Object)
], Ututs.prototype, "_recommendationsWithMetadata", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* observable */ "z"],
    __metadata("design:type", Boolean)
], Ututs.prototype, "_hasValidRecommendations", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* observable */ "z"],
    __metadata("design:type", Boolean)
], Ututs.prototype, "_hasMultipleCards", void 0);
const ututs = new Ututs();
/* harmony default export */ __webpack_exports__["a"] = (ututs);


/***/ }),

/***/ "gkEg":
/***/ (function(module, exports) {

/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/


/***/ }),

/***/ "gmyS":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _filterDOMProps = _interopRequireDefault(__webpack_require__("Cv/Q"));

var _events = __webpack_require__("mdZ3");

var _string = __webpack_require__("SJ2Q");

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

var _SwitchBase = _interopRequireDefault(__webpack_require__("Fm3E"));

__webpack_require__("TJAF");

const _excluded = ["label", "value", "name", "disabled", "required", "invalid", "readOnly", "className", "style", "children", "inputType", "renderLabel", "inputClassName", "markClassName", "markIcon", "labelClassName", "onMouseDown", "onMouseUp"];

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

class UxpSwitchBase extends _SwitchBase.default {
  constructor(...args) {
    var _temp;

    return _temp = super(...args), this.onClickSpan = evt => {
      evt.stopPropagation();
    }, _temp;
  }

  render() {
    const _this$props = this.props,
          {
      label,
      value,
      name,
      disabled,
      required,
      invalid,
      readOnly,
      className,
      style,
      children,
      inputType,
      renderLabel,
      inputClassName,
      markClassName,
      markIcon,
      labelClassName,
      onMouseDown,
      onMouseUp
    } = _this$props,
          otherProps = _objectWithoutProperties(_this$props, _excluded);

    const {
      checked
    } = this.state;
    const shouldRenderLabel = renderLabel && (label || children);
    const Element = 'label'; // Fix for ESLint error: The attribute aria-checked is not supported by the role textbox. This role is implicit on the element input  jsx-a11y/role-supports-aria-props

    if (inputType && !otherProps['aria-checked']) {
      otherProps['aria-checked'] = checked;
    } // Don't let native browser change events bubble up to the root div.
    // Otherwise we double dispatch.


    delete otherProps.onChange; // Add aria-label that concatenates label and children
    // when renderLabel is false and no other aria-label is provided.

    let ariaLabel = null;

    if (otherProps['aria-label']) {
      ariaLabel = otherProps['aria-label'];
      delete otherProps['aria-label'];
    } else if (!renderLabel && (label || children)) {
      let labels = [];

      if (label) {
        labels.push(label);
      }

      if (children) {
        let str = (0, _string.getTextFromReact)(children);

        if (str !== label) {
          labels.push(str);
        }
      }

      ariaLabel = labels.join(' ');
    }

    return /*#__PURE__*/_react.default.createElement(Element, {
      className: (0, _classnames.default)(className, {
        'is-invalid': invalid,
        'is-disabled': disabled
      }),
      style: style
    }, /*#__PURE__*/_react.default.createElement("input", _extends({
      ref: el => this.inputRef = el,
      type: inputType,
      className: (0, _classnames.default)(inputClassName, 'uxp-switchBase'),
      checked: checked,
      disabled: disabled,
      name: name,
      value: value,
      required: required ? true : null,
      readOnly: readOnly,
      onChange: this.handleChange,
      onMouseDown: _events.focusAfterMouseEvent.bind(this, onMouseDown),
      onMouseUp: _events.focusAfterMouseEvent.bind(this, onMouseUp),
      "aria-invalid": invalid || null,
      "aria-label": ariaLabel
    }, (0, _filterDOMProps.default)(otherProps))), /*#__PURE__*/_react.default.createElement("span", {
      onClick: this.onClickSpan,
      className: markClassName
    }, markIcon), shouldRenderLabel && /*#__PURE__*/_react.default.createElement("span", {
      onClick: this.onClickSpan,
      className: labelClassName
    }, label,
    /* When both label and children are present,
     include a space character so that the text
     doesn't get smushed together. */
    label && children && ' ', children));
  }

}

exports.default = UxpSwitchBase;
UxpSwitchBase.displayName = 'UxpSwitchBase';

/***/ }),

/***/ "gqqD":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2019 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/

Object.defineProperty(exports, "__esModule", {
  value: true
});
var SyncSuspensionReason;

(function (SyncSuspensionReason) {
  /**
   * If an asset can sync then SyncSuspensionReason will return NONE
   */
  SyncSuspensionReason[SyncSuspensionReason["none"] = 0] = "none";
  /**
   * Asset stored on the cloud is corrupted. Content sync of the asset is suspended.
   */

  SyncSuspensionReason[SyncSuspensionReason["contentCorrupted"] = 1] = "contentCorrupted";
  /**
   * Asset stored in local store is corrupted. Content sync of the asset is suspended.
   */

  SyncSuspensionReason[SyncSuspensionReason["localContentCorrupted"] = 2] = "localContentCorrupted";
  /**
   * Composite has reached upper limit on number of component supported.
   * Content sync of the composite asset is suspended.
   */

  SyncSuspensionReason[SyncSuspensionReason["hasTooManyComponents"] = 4] = "hasTooManyComponents";
  /**
   * This is kept for all other case
   */

  SyncSuspensionReason[SyncSuspensionReason["unknown"] = 256] = "unknown";
})(SyncSuspensionReason || (SyncSuspensionReason = {}));

exports.default = SyncSuspensionReason;

/***/ }),

/***/ "grWt":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("path", {
  d: "M16 2v10H6L16 2z"
}), React.createElement("path", {
  d: "M14.7 27A12.309 12.309 0 0 1 30 15.069V3a1 1 0 0 0-1-1H18v11a1 1 0 0 1-1 1H6v19a1 1 0 0 0 1 1h9.886a12.241 12.241 0 0 1-2.186-7z"
}), React.createElement("path", {
  d: "M27 18.1a8.9 8.9 0 1 0 8.9 8.9 8.9 8.9 0 0 0-8.9-8.9zm5 9.4a.5.5 0 0 1-.5.5H28v3.5a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5V28h-3.5a.5.5 0 0 1-.5-.5v-1a.5.5 0 0 1 .5-.5H26v-3.5a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 .5.5V26h3.5a.5.5 0 0 1 .5.5z"
}));

/***/ }),

/***/ "gtay":
/***/ (function(module, exports) {

// generated by genversion
module.exports = '1.136.2';

/***/ }),

/***/ "gvAe":
/***/ (function(module, exports, __webpack_require__) {

var aes = __webpack_require__("OfWw");

var Buffer = __webpack_require__("hwdV").Buffer;

var Transform = __webpack_require__("ZDAU");

var inherits = __webpack_require__("P7XM");

var GHASH = __webpack_require__("P2KE");

var xor = __webpack_require__("jIre");

var incr32 = __webpack_require__("vZ2G");

function xorTest(a, b) {
  var out = 0;
  if (a.length !== b.length) out++;
  var len = Math.min(a.length, b.length);

  for (var i = 0; i < len; ++i) {
    out += a[i] ^ b[i];
  }

  return out;
}

function calcIv(self, iv, ck) {
  if (iv.length === 12) {
    self._finID = Buffer.concat([iv, Buffer.from([0, 0, 0, 1])]);
    return Buffer.concat([iv, Buffer.from([0, 0, 0, 2])]);
  }

  var ghash = new GHASH(ck);
  var len = iv.length;
  var toPad = len % 16;
  ghash.update(iv);

  if (toPad) {
    toPad = 16 - toPad;
    ghash.update(Buffer.alloc(toPad, 0));
  }

  ghash.update(Buffer.alloc(8, 0));
  var ivBits = len * 8;
  var tail = Buffer.alloc(8);
  tail.writeUIntBE(ivBits, 0, 8);
  ghash.update(tail);
  self._finID = ghash.state;
  var out = Buffer.from(self._finID);
  incr32(out);
  return out;
}

function StreamCipher(mode, key, iv, decrypt) {
  Transform.call(this);
  var h = Buffer.alloc(4, 0);
  this._cipher = new aes.AES(key);

  var ck = this._cipher.encryptBlock(h);

  this._ghash = new GHASH(ck);
  iv = calcIv(this, iv, ck);
  this._prev = Buffer.from(iv);
  this._cache = Buffer.allocUnsafe(0);
  this._secCache = Buffer.allocUnsafe(0);
  this._decrypt = decrypt;
  this._alen = 0;
  this._len = 0;
  this._mode = mode;
  this._authTag = null;
  this._called = false;
}

inherits(StreamCipher, Transform);

StreamCipher.prototype._update = function (chunk) {
  if (!this._called && this._alen) {
    var rump = 16 - this._alen % 16;

    if (rump < 16) {
      rump = Buffer.alloc(rump, 0);

      this._ghash.update(rump);
    }
  }

  this._called = true;

  var out = this._mode.encrypt(this, chunk);

  if (this._decrypt) {
    this._ghash.update(chunk);
  } else {
    this._ghash.update(out);
  }

  this._len += chunk.length;
  return out;
};

StreamCipher.prototype._final = function () {
  if (this._decrypt && !this._authTag) throw new Error('Unsupported state or unable to authenticate data');
  var tag = xor(this._ghash.final(this._alen * 8, this._len * 8), this._cipher.encryptBlock(this._finID));
  if (this._decrypt && xorTest(tag, this._authTag)) throw new Error('Unsupported state or unable to authenticate data');
  this._authTag = tag;

  this._cipher.scrub();
};

StreamCipher.prototype.getAuthTag = function getAuthTag() {
  if (this._decrypt || !Buffer.isBuffer(this._authTag)) throw new Error('Attempting to get auth tag in unsupported state');
  return this._authTag;
};

StreamCipher.prototype.setAuthTag = function setAuthTag(tag) {
  if (!this._decrypt) throw new Error('Attempting to set auth tag in unsupported state');
  this._authTag = tag;
};

StreamCipher.prototype.setAAD = function setAAD(buf) {
  if (this._called) throw new Error('Attempting to set AAD in unsupported state');

  this._ghash.update(buf);

  this._alen += buf.length;
};

module.exports = StreamCipher;

/***/ }),

/***/ "gvlE":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("IBDh"),
      24: __webpack_require__("KAOZ")
    }
  }));
};

WrappedIcon.displayName = 'SortOrderDown';
exports.default = WrappedIcon;

/***/ }),

/***/ "gwKa":
/***/ (function(module, exports) {

/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2022 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/


/***/ }),

/***/ "gwPG":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _closest = _interopRequireDefault(__webpack_require__("U6dR"));

var _Provider = _interopRequireDefault(__webpack_require__("bUsb"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

var _reactDom = _interopRequireDefault(__webpack_require__("i8i4"));

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}
/*************************************************************************
* ADOBE CONFIDENTIAL
* ___________________
*
* Copyright 2021 Adobe
* All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains
* the property of Adobe and its suppliers, if any. The intellectual
* and technical concepts contained herein are proprietary to Adobe
* and its suppliers and are protected by all applicable intellectual
* property laws, including trade secret and copyright laws.
* Dissemination of this information or reproduction of this material
* is strictly forbidden unless prior written permission is obtained
* from Adobe.
**************************************************************************/


let children = {};
/*
 * A global portal that lives in the document body which can be used to add
 * overlays like modals outside the normal React component tree.
 */

class UxpPortalContainer {
  /**
   * Renders the child
   * @param child component to be render
   * @param context Parent with the context
   */
  static add(child, context) {
    let node = children[child.key] || document.createElement('div');
    children[child.key] = node;

    if (!context) {
      _reactDom.default.render(child, node);
    } else {
      // unstable_renderSubtreeIntoContainer api has an issue of passing provider
      // This is a temporary fix to pass theme and scale
      // Actual fix requires to use createPortal (UXP-17937)
      let providerClass = (0, _closest.default)(_reactDom.default.findDOMNode(context), '.react-spectrum-provider').className;
      let theme = 'light';
      let scale = 'medium';
      var provideArray = providerClass.split(' ');
      provideArray.forEach(string => {
        switch (string) {
          case 'spectrum--light':
            theme = 'light';
            break;

          case 'spectrum--lightest':
            theme = 'lightest';
            break;

          case 'spectrum--dark':
            theme = 'dark';
            break;

          case 'spectrum--darkest':
            theme = 'darkest';
            break;

          case 'spectrum--medium':
            scale = 'medium';
            break;

          case 'spectrum--large':
            scale = 'large';
            break;
        }
      });
      child = /*#__PURE__*/_react.default.createElement(_Provider.default, {
        theme: theme,
        scale: scale
      }, child);

      _reactDom.default.unstable_renderSubtreeIntoContainer(context, child, node);
    }
  }
  /**
   * Remove child from the dom
   * @param child
   */


  static remove(child) {
    _reactDom.default.unmountComponentAtNode(children[child.key]);

    delete children[child.key];
  }
  /**
   * Remove all portals from the dom
   */


  static removeAll() {
    for (let child in children) {
      // skip loop if the property is from prototype
      if (!children.hasOwnProperty(child)) {
        continue;
      }

      _reactDom.default.unmountComponentAtNode(children[child]);

      delete children[child];
    }
  }

}

exports.default = UxpPortalContainer;

/***/ }),

/***/ "gyt0":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _createClass = function () {
  function defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i];
      descriptor.enumerable = descriptor.enumerable || false;
      descriptor.configurable = true;
      if ("value" in descriptor) descriptor.writable = true;
      Object.defineProperty(target, descriptor.key, descriptor);
    }
  }

  return function (Constructor, protoProps, staticProps) {
    if (protoProps) defineProperties(Constructor.prototype, protoProps);
    if (staticProps) defineProperties(Constructor, staticProps);
    return Constructor;
  };
}();
/**
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe Inc. and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe Inc.
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Inc.
 */


var _Client = __webpack_require__("aETk");

var _Client2 = _interopRequireDefault(_Client);

var _utils = __webpack_require__("VKd2");

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _classCallCheck(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}
/**
 * The Collaborators class handles operation around collaborators.
 */


var Collaborators = function () {
  function Collaborators() {
    _classCallCheck(this, Collaborators);
  }

  _createClass(Collaborators, [{
    key: 'update',

    /**
     * Update a collaborator
     * @param {String} resourceUrl - CC Storage path (path based or ID-based)
     * @param {String} userId - AdobeID of collaborator whose privileges need to be updated
     * @param {String} role - Updated role to be granted to the collaborator
     *
     * @returns {Promise} A Promise that updates the collaborator for a particular resource URL
     */
    value: function update(resourceUrl, userId, role) {
      if (resourceUrl && userId && role && resourceUrl.trim() !== '' && userId.trim() !== '' && role.trim() !== '') {
        var body = [{
          role: role,
          collaborator: userId
        }];
        return this.batchUpdate(resourceUrl, body);
      }
    }
    /**
     * Batch update collaborators
     * @param {String} resourceUrl - CC Storage path (path based or ID-based)
     * @param {Array<{role: string, collaborator: string}>} collaborators - list of collaborators whose roles need to be updated
     * 
     * @returns {Promise} A Promise that updates the collaborators for a particular resource URL
     */

  }, {
    key: 'batchUpdate',
    value: function batchUpdate(resourceUrl, collaborators) {
      if (resourceUrl && resourceUrl.trim() !== '' && Array.isArray(collaborators)) {
        return _Client2.default.instance.fetch({
          type: 'collaborators.update',
          urlPath: '/collaborators/' + (0, _utils.encodeURIComponentEachSubdomain)((0, _utils.getUrlPath)(resourceUrl)),
          method: 'PUT',
          body: collaborators
        });
      }
    }
    /**
     * Delete a collaborator
     * @param {String} resourceUrl - CC Storage path (path based or ID-based)
     * @param {String} userId - AdobeID of collaborator whose privileges need to be removed
     *
     * @returns {Promise} A Promise that removes the collaborator for a particular resource URL
     */

  }, {
    key: 'delete',
    value: function _delete(resourceUrl, userId) {
      if (resourceUrl && userId && resourceUrl.trim() !== '' && userId.trim() !== '') {
        var encodedRequestURI = '/collaborators/' + (0, _utils.encodeURIComponentEachSubdomain)((0, _utils.getUrlPath)(resourceUrl)) + '?collaborator=' + encodeURIComponent(userId);
        return _Client2.default.instance.fetch({
          type: 'collaborators.delete',
          urlPath: encodedRequestURI,
          method: 'DELETE'
        });
      }
    }
    /**
     * Delete all collaborators
     * @param {String} resourceUrl - CC Storage path (path based or ID-based)
     *
     * @returns {Promise} A Promise that removes all the collaborators for a particular resource URL
     */

  }, {
    key: 'deleteAll',
    value: function deleteAll(resourceUrl) {
      if (resourceUrl && resourceUrl.trim() !== '') {
        return _Client2.default.instance.fetch({
          type: 'collaborators.deleteAll',
          urlPath: '/collaborators/' + (0, _utils.encodeURIComponentEachSubdomain)((0, _utils.getUrlPath)(resourceUrl)),
          method: 'DELETE'
        });
      }
    }
  }]);

  return Collaborators;
}();
/**
 * Exports the Collaboration class.
 */


exports.default = Collaborators;
module.exports = exports['default'];

/***/ }),

/***/ "h0Kx":
/***/ (function(module, exports) {

/* eslint-disable max-len */
module.exports = {
  'confirmationDialog.dontShowAgain': 'No volver a mostrar',
  'confirmationDialog.confirm.default': 'Continuar',
  'confirmationDialog.cancel.default': 'Cancelar',
  'confirmationDialog.learnMore': 'Más información',
  'toast.warning.place': 'Todavía no se pueden insertar documentos en la nube vinculados. En su lugar, sigue usando el modo de incrustación.',
  'toast.warning.placeLinkOrEmbed': 'Los activos que coloques ahora quedan vinculados al original de forma predeterminada. Esto quiere decir que si los editas en un lugar, los cambios se reflejarán en todas partes.',
  'toast.warning.saveAs.invalidFormat': 'No puedes guardar archivos {genericFormat} aquí. El archivo se guardará como {adobeFormat}.',
  'pickerView.recent': 'Recientes',
  'pickerView.cloud_docs': 'Tus archivos',
  'pickerView.shared_with_you': 'Compartido contigo',
  'pickerView.projects': 'Proyectos',
  'pickerView.files': 'Archivos',
  'pickerView.computer': 'Tu ordenador...',
  'pickerView.saveAsInput': 'Guardar como',
  'pickerView.exportInput': 'Exportar como',
  'pickerView.sketch_library': 'Convertir biblioteca de Sketch...',
  'pickerView.error.saveAsOrExport.default': 'El nombre del archivo no es válido.',
  'pickerView.error.saveAsOrExport.invalidName': 'Este nombre incluye caracteres que no son válidos.',
  'pickerView.error.saveAsOrExport.invalidEnd': 'El nombre no puede terminar con “.“ o un espacio vacío.',
  'pickerView.error.saveAsOrExport.invalidChar': 'El nombre no puede incluir los siguientes caracteres: {characters}',
  'pickerView.error.saveAsOrExport.charRestriction': 'Los nombres no pueden tener más de 200 caracteres.',
  'pickerView.error.saveAsOrExport.duplicateName': 'Ya hay un documento en la nube aquí con este nombre.',
  'pickerView.error.addALibrary.permission': 'No tienes permiso para añadir esta biblioteca',
  'pickerViewFooter.button.add': 'Añadir',
  'pickerViewFooter.button.cancel': 'Cancelar',
  'pickerViewFooter.button.copy': 'Copiar aquí',
  'pickerViewFooter.button.move': 'Mover aquí',
  'pickerViewFooter.button.moveToProject': 'Mover aquí',
  'pickerViewFooter.button.copyToProject': 'Copiar aquí',
  'pickerViewFooter.button.choose': 'Seleccionar',
  'pickerViewFooter.button.save': 'Guardar',
  'pickerViewFooter.button.switchToOSPicker': 'En tu ordenador',
  'pickerViewFooter.button.save.offline': 'Se requiere conexión a Internet',
  'pickerViewFooter.button.saveAsCopy': 'Guardar',
  'pickerViewFooter.button.export': 'Exportar',
  'pickerViewFooter.button.placeLinkOrEmbed': 'Colocar',
  'pickerViewFooter.button.import': 'Importar',
  'pickerViewFooter.checkbox.placeLink': 'Enlazado',
  'pickerViewFooter.tooltip.placeLink': 'Solo puedes colocar este elemento como activo vinculado.',
  'pickerViewFooter.tooltip.placeEmbed': 'Solo puedes colocar este elemento como incrustado.',
  'pickerViewFooter.saveAs.format.label': 'Formato',
  'pickerViewFooter.button.selectProject': 'Guardar',
  'onboardingCdp.title': 'Puedes hacer mucho más si guardas tus archivos como documentos en la nube',
  'onboardingCdp.tooltip': 'Si guardas los archivos en el equipo, no podrás utilizar las funciones de la nube.',
  'onboardingCdp.tooltip.link': 'Más información',
  'onboardingCdp.table.header.saveToCloud': 'Creative Cloud',
  'onboardingCdp.table.header.saveToLocal': 'En el ordenador',
  'onboardingCdp.button.saveToCloud': 'Guardar en Creative Cloud',
  'onboardingCdp.feature.offline': 'Acceso sin conexión',
  'onboardingCdp.feature.syncing': 'Sincronizando en la nube con todos tus dispositivos',
  'onboardingCdp.feature.autosave': 'Guardando automáticamente todos los cambios',
  'onboardingCdp.feature.versionHistory': 'Historial de versiones',
  'onboardingCdp.feature.inviteToEdit': 'Invitar a editar',
  'onboardingCdp.button.saveToLocal': 'Guardar en el ordenador',
  'onboardingCdp.checkbox.doNotShowAgain': 'No volver a mostrar',
  'uap.title.place': 'Colocar desde Creative Cloud',
  'uap.title.import': 'Importar desde Creative Cloud',
  'uap.title.placeLinkOrEmbed': 'Colocar desde Creative Cloud',
  'uap.title.linkAssets': 'Vincular desde Creative Cloud',
  'uap.title.open': 'Abrir desde Creative Cloud',
  'uap.title.relink': 'Vincular desde Creative Cloud',
  'uap.title.saveAs': 'Guardar en Creative Cloud',
  'uap.title.saveAsCopy': 'Guardar en Creative Cloud',
  'uap.title.saveToFolder': 'Guardar en Creative Cloud',
  'uap.title.export': 'Exportar a Creative Cloud',
  'uap.title.copy': 'Copiar en Creative Cloud',
  'uap.title.move': 'Mover en Creative Cloud',
  'uap.title.moveToProject': 'Mover en Creative Cloud',
  'uap.title.copyToProject': 'Copiar en Creative Cloud',
  'uap.title.reference': 'Añadir a Creative Cloud',
  'uap.title.selectProject': 'Guardar en Creative Cloud',
  'move.toSpace.confirm.title': 'El historial de versiones se eliminará',
  'move.toSpace.confirm.message': 'Si se mueve este archivo, se eliminará el historial de versiones. Si deseas conservar el historial de versiones, haz una copia.'
};

/***/ }),

/***/ "h2jO":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _autobindDecorator = _interopRequireDefault(__webpack_require__("gKdT"));

var _Button = _interopRequireDefault(__webpack_require__("Cn9g"));

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _icon = __webpack_require__("vo16");

var _convertUnsafeMethod = _interopRequireDefault(__webpack_require__("8nyd"));

var _createId = _interopRequireDefault(__webpack_require__("b7KY"));

var _CrossSmall = _interopRequireDefault(__webpack_require__("JBog"));

var _Magnifier = _interopRequireDefault(__webpack_require__("0l93"));

var _intl = __webpack_require__("Lpon");

var _propTypes = _interopRequireDefault(__webpack_require__("17x9"));

var _react = _interopRequireWildcard(__webpack_require__("q1tI"));

var _Textfield = _interopRequireDefault(__webpack_require__("WgUl"));

const _excluded = ["disabled", "className", "icon", "id"];

var _class, _class2, _temp;

function _getRequireWildcardCache(nodeInterop) {
  if (typeof WeakMap !== "function") return null;
  var cacheBabelInterop = new WeakMap();
  var cacheNodeInterop = new WeakMap();
  return (_getRequireWildcardCache = function (nodeInterop) {
    return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
  })(nodeInterop);
}

function _interopRequireWildcard(obj, nodeInterop) {
  if (!nodeInterop && obj && obj.__esModule) {
    return obj;
  }

  if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
    return {
      default: obj
    };
  }

  var cache = _getRequireWildcardCache(nodeInterop);

  if (cache && cache.has(obj)) {
    return cache.get(obj);
  }

  var newObj = {};
  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;

  for (var key in obj) {
    if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
      var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;

      if (desc && (desc.get || desc.set)) {
        Object.defineProperty(newObj, key, desc);
      } else {
        newObj[key] = obj[key];
      }
    }
  }

  newObj.default = obj;

  if (cache) {
    cache.set(obj, newObj);
  }

  return newObj;
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

const intlMessages = {
  "cs-CZ": _interopRequireDefault(__webpack_require__("9BkY")).default,
  "da-DK": _interopRequireDefault(__webpack_require__("Z4Qv")).default,
  "de-DE": _interopRequireDefault(__webpack_require__("Wn8L")).default,
  "en-US": _interopRequireDefault(__webpack_require__("SZsF")).default,
  "es-ES": _interopRequireDefault(__webpack_require__("X6X4")).default,
  "fi-FI": _interopRequireDefault(__webpack_require__("ci8G")).default,
  "fr-FR": _interopRequireDefault(__webpack_require__("b0oQ")).default,
  "hu-HU": _interopRequireDefault(__webpack_require__("2VgK")).default,
  "it-IT": _interopRequireDefault(__webpack_require__("43Oz")).default,
  "ja-JP": _interopRequireDefault(__webpack_require__("LTJJ")).default,
  "ko-KR": _interopRequireDefault(__webpack_require__("UTaQ")).default,
  "nb-NO": _interopRequireDefault(__webpack_require__("ij7w")).default,
  "nl-NL": _interopRequireDefault(__webpack_require__("tK/0")).default,
  "pl-PL": _interopRequireDefault(__webpack_require__("88qO")).default,
  "pt-BR": _interopRequireDefault(__webpack_require__("CsEq")).default,
  "ru-RU": _interopRequireDefault(__webpack_require__("rJ5o")).default,
  "sv-SE": _interopRequireDefault(__webpack_require__("wzac")).default,
  "tr-TR": _interopRequireDefault(__webpack_require__("l5XG")).default,
  "uk-UA": _interopRequireDefault(__webpack_require__("lhlH")).default,
  "zh-CN": _interopRequireDefault(__webpack_require__("o2vJ")).default,
  "zh-TW": _interopRequireDefault(__webpack_require__("Cr+W")).default
};

if (false) {} else if (false) {} else {
  __webpack_require__("sR/5");
}

if (true) __webpack_require__("ywVk");
if (true) __webpack_require__("ovpu");
if (true) __webpack_require__("ReGk");
if (true) __webpack_require__("Oe9V");
const formatMessage = (0, _intl.messageFormatter)(intlMessages);

const normalizeValue = value => value || '';

let Search = (0, _convertUnsafeMethod.default)(_class = (0, _autobindDecorator.default)(_class = (_temp = _class2 = class Search extends _react.Component {
  constructor(props) {
    super(props);
    this.searchId = (0, _createId.default)();
    const {
      value,
      defaultValue
    } = props;
    this.state = {
      value: normalizeValue(value || defaultValue)
    };
  }

  UNSAFE_componentWillReceiveProps(props) {
    if (normalizeValue(props.value) !== this.state.value) {
      this.setState({
        value: props.value
      });
    }
  }

  handleTextKeyDown(e) {
    const {
      onSubmit,
      onKeyDown,
      disabled
    } = this.props;
    const {
      value
    } = this.state;
    const key = e.which;

    if (key === 13 || key === 27) {
      e.preventDefault();
    }

    if (disabled) {
      return;
    }

    if (key === 13) {
      onSubmit(value);
    }

    if (key === 27) {
      this.handleTextChange('', e, 'escapeKey');
    }

    if (onKeyDown) {
      onKeyDown(e);
    }
  }

  handleTextChange(value, e, from = 'input') {
    const {
      onChange,
      disabled
    } = this.props;

    if (disabled || value === this.state.value) {
      return;
    }

    if (!('value' in this.props)) {
      this.setState({
        value
      });
    }

    onChange(value, e, {
      from
    });
  }

  handleClearButtonClick(e) {
    this.handleTextChange('', e, 'clearButton'); // restore focus to the searchbox

    if (this.searchbox) {
      this.searchbox.focus();
    }
  }

  render() {
    const _this$props = this.props,
          {
      disabled,
      className,
      icon,
      id = this.searchId
    } = _this$props,
          otherProps = _objectWithoutProperties(_this$props, _excluded);

    const {
      value
    } = this.state;
    return /*#__PURE__*/_react.default.createElement("div", {
      className: (0, _classnames.default)('spectrum-Search', {
        'is-disabled': disabled
      }, className)
    }, /*#__PURE__*/_react.default.createElement(_Textfield.default, _extends({
      type: "search",
      ref: s => this.searchbox = s,
      className: "spectrum-Search-input",
      value: value,
      disabled: disabled,
      id: id
    }, otherProps, {
      onKeyDown: this.handleTextKeyDown,
      onChange: this.handleTextChange
    })), (0, _icon.cloneIcon)(icon, {
      className: 'spectrum-Search-icon',
      size: 'S'
    }), value !== '' && /*#__PURE__*/_react.default.createElement(_Button.default, {
      "aria-label": formatMessage('Clear search'),
      "aria-labelledby": `${id} ${id}-clear-button`,
      variant: "clear",
      icon: /*#__PURE__*/_react.default.createElement(_CrossSmall.default, null),
      id: `${id}-clear-button`,
      disabled: disabled,
      onClick: this.handleClearButtonClick
    }));
  }

}, _class2.propTypes = {
  /** Sets the search field value (controlled). */
  value: _propTypes.default.string,

  /** Sets the default search field value (uncontrolled). */
  defaultValue: _propTypes.default.string,

  /** Sets the icon displayed in the search field. Magnifier icon by default. */
  icon: _propTypes.default.node
}, _class2.defaultProps = {
  icon: /*#__PURE__*/_react.default.createElement(_Magnifier.default, {
    "data-testid": "searchicon"
  }),
  onChange: function () {},
  onSubmit: function () {}
}, _temp)) || _class) || _class;

exports.default = Search;
Search.displayName = 'Search';

/***/ }),

/***/ "h6/1":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _Icon = __webpack_require__("lcsq");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, props, _react2.default.createElement('svg', null, _react2.default.createElement('path', {
    d: 'M9.99 7.01a1 1 0 0 0-1.707-.707L6 8.586V1.01a1 1 0 0 0-2 0v7.576L1.717 6.303A1 1 0 1 0 .303 7.717l3.99 3.98a1 1 0 0 0 1.414 0l3.99-3.98a.997.997 0 0 0 .293-.707z',
    'className': 'spectrum-UIIcon--large ' + props.pathClassName
  }), _react2.default.createElement('path', {
    d: 'M7.99 6.01a1 1 0 0 0-1.707-.707L5 6.586V1a1 1 0 0 0-2 0v5.586L1.717 5.303A1 1 0 1 0 .303 6.717l2.99 2.98a1 1 0 0 0 1.414 0l2.99-2.98a.997.997 0 0 0 .293-.707z',
    'className': 'spectrum-UIIcon--medium ' + props.pathClassName
  })));
};

WrappedIcon.displayName = 'ArrowDownSmall';
exports.default = WrappedIcon;

/***/ }),

/***/ "hBd1":
/***/ (function(module, exports) {

/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
module.exports = {
  'ccd.infoPanel.detail.created': 'Vytvořeno',
  'ccd.infoPanel.detail.modified': 'Upraveno',
  'ccd.infoPanel.detail.size': 'Velikost',
  'ccd.infoPanel.detail.shared': 'Sdílené',
  'ccd.header.renameFolder': 'Přejmenovat složku',
  'ccd.menu.addToFavourites': 'Přidat ke zkratkám',
  'ccd.menu.removeFromFavourites': 'Odebrat zkratku',
  'ccd.menu.viewonweb': 'Zobrazit na webu',
  'ccd.menu.share': 'Sdílet',
  'ccd.menu.openWith': 'Otevřít v',
  'ccd.menu.changeDefaultApp': 'Změnit výchozí aplikaci...',
  'ccd.menu.default': '(výchozí)',
  'ccd.menu.export': 'Exportovat jako místní kopii',
  'ccd.menu.download': 'Stáhnout',
  'ccd.menu.createNew': 'Vytvořit nový...',
  'ccd.menu.launch': 'SPUSTIT',
  'actionMenuItem.permdelete': 'Trvale odstranit',
  'tab.Cloud Documents': 'Vaše soubory',
  'tab.Home': 'Domovská stránka',
  'header.CloudDocuments': 'Vaše soubory',
  'header.SharedWithYou': 'Sdíleno s vámi',
  'header.Deleted': 'Odstraněno',
  'header.Deleted.AssetsWebLink': 'Všechny odstraněné položky si můžete zobrazit na webu Assets.',
  'header.SelectedDocuments': '{numSelected, plural, =1 {# vybraný} few {# vybrané} other {# vybraných}}',
  'header.size': 'Velikost',
  'header.title': 'Název',
  'header.modifiedDate': 'Datum úpravy',
  'header.createDate': 'Datum vytvoření',
  'header.shareDate': 'Datum sdílení',
  'header.SortBy': 'Uspořádat podle',
  'header.infoPopover.body': 'Zobrazí se pouze kompatibilní soubory. Pokud chcete vidět všechny soubory, přejděte na web Creative Cloud.',
  'header.infoPopover.link': 'Přejít na web Creative Cloud',
  'header.dragImport': 'Cíl nahrávání: {displayName}',
  'collaborators.onlyYou': 'Pouze vy',
  'collaborators.Owner': '{displayName} (vlastník)',
  'collaborators.More': '{numItems, plural, few {+# další} other {+# dalších}}',
  'empty.offline.root.title': 'Nejste připojeni',
  'empty.offline.root.subtitle': 'Až se znovu připojíte, objeví se tady položky, které jste předtím viděli online.',
  'empty.offline.folder.title': 'Složku nelze načíst',
  'empty.offline.folder.subtitle': 'Nejste připojeni k internetu. Znovu se připojte, aby bylo zobrazení kompletní.',
  'empty.online.cdp.saveas.root.title': 'Žádné dokumenty v cloudu k zobrazení',
  'empty.online.cdp.saveas.root.subtitle': 'Cloudové dokumenty vám zajistí, že vaše tvorba bude vždy aktuální a dostupná v každém zařízení, ať jste kdekoli. Stačí se jen připojit k internetu.',
  'empty.online.cdp.saveas.root.subtitle.sprk': 'Všechny vaše cloudové dokumenty z aplikace XD najdete zde. Pracujte kdekoli, dokonce i v režimu offline. Změny v cloudových dokumentech se automaticky ukládají a jsou viditelné v historii dokumentu.',
  'empty.online.cdp.saveas.root.subtitle.phxs': 'Všechny svoje cloudové dokumenty z aplikace Photoshop na Macu, ve Windows a na iPadu najdete právě zde.',
  'empty.online.cdp.saveas.root.subtitle.ilst': 'Všechny svoje cloudové dokumenty z aplikace Illustrator na Macu, v systému Windows a na iPadu najdete právě zde.',
  'empty.online.cdp.saveas.root.subtitle.idsn': 'Všechny svoje cloudové dokumenty z aplikace InDesign na Macu, v systému Windows a na iPadu najdete právě zde.',
  'empty.online.cdp.saveas.folder.title': 'Žádné dokumenty v cloudu k zobrazení',
  'empty.online.cdp.saveas.folder.subtitle': 'Až do této složky umístíte kompatibilní dokument v cloudu, zobrazí se tady.',
  'empty.online.cdp.open.root.title': 'Žádné dokumenty v cloudu k zobrazení',
  'empty.online.cdp.open.root.subtitle': 'Až do této složky umístíte kompatibilní dokument v cloudu, zobrazí se tady.',
  'empty.online.cdp.open.root.subtitle.sprk': 'Všechny vaše cloudové dokumenty z aplikace XD najdete zde. Pracujte kdekoli, dokonce i v režimu offline. Změny v cloudových dokumentech se automaticky ukládají a jsou viditelné v historii dokumentu.',
  'empty.online.cdp.open.root.subtitle.phxs': 'Všechny svoje cloudové dokumenty z aplikace Photoshop na Macu, ve Windows a na iPadu najdete právě zde.',
  'empty.online.cdp.open.root.subtitle.ilst': 'Všechny svoje cloudové dokumenty z aplikace Illustrator na Macu, v systému Windows a na iPadu najdete právě zde.',
  'empty.online.cdp.open.root.subtitle.idsn': 'Všechny svoje cloudové dokumenty z aplikace InDesign na Macu, v systému Windows a na iPadu najdete právě zde.',
  'empty.online.cdp.open.folder.title': 'Žádné dokumenty v cloudu k zobrazení',
  'empty.online.cdp.open.folder.subtitle': 'Až do této složky umístíte kompatibilní dokument v cloudu, zobrazí se tady.',
  'empty.online.cdo.root.title': 'V cloudu nemáte žádné dokumenty.',
  'empty.online.cdo.root.subtitle': 'Spolupracujte bez problémů s ostatními. Pracovat můžete kdekoli, i když jste zrovna offline. Změny se automaticky ukládají a jsou viditelné v historii souboru.',
  'empty.online.cdo.root.subtitle.sprk': 'Spolupracujte bez problémů s ostatními v reálném čase. Pracovat můžete kdekoli, dokonce i offline. Změny se automaticky ukládají a jsou viditelné v historii souboru.',
  'empty.online.cdo.root.subtitle.phxs': 'Spolupracujte bez problémů s ostatními. Po přihlášení do aplikace Photoshop můžete pracovat kdekoli, i když jste zrovna offline. Změny se automaticky ukládají a jsou viditelné v historii souboru.',
  'empty.online.cdo.root.subtitle.ilst': 'Spolupracujte bez problémů s ostatními. Po přihlášení do aplikace Illustrator můžete pracovat kdekoli, i když jste zrovna offline. Změny se automaticky ukládají a jsou viditelné v historii souboru.',
  'empty.online.cdo.root.subtitle.idsn': 'Získejte přístup ke svým dokumentům odkudkoli po přihlášení k aplikaci InDesign. Změny se ukládají automaticky.',
  'empty.online.cdo.folder.title': 'Žádné dokumenty v cloudu k zobrazení',
  'empty.online.cdo.folder.subtitle': 'Až do této složky umístíte kompatibilní dokument v cloudu, zobrazí se tady.',
  'empty.title.deleted': 'Nemáte žádné odstraněné soubory',
  'empty.title.deleted_offline': 'Nejste připojeni',
  'empty.title.recent': 'Nemáte žádné nedávno otevřené soubory',
  'empty.subtext.deleted_offline': 'Položky, které byly odstraněny v době, kdy jste byli online, se při opětovném připojení objeví zde.',
  'empty.title.shared_with_you': 'Nemáte žádné sdílené cloudové dokumenty.',
  'empty.subtext.shared_with_you': 'Zde budou uvedeny cloudové dokumenty, které s vámi někdo sdílí.',
  'empty.title.shared_with_you_offline': 'Nejste připojeni',
  'empty.subtext.shared_with_you_offline': 'Sdílené dokumenty budete moct zobrazit a upravovat, až se znovu připojíte.',
  'empty.title.error': 'Něco se pokazilo',
  'empty.subtext.error': 'Restartujte aplikaci a zkuste to znovu.',
  'empty.subtext.error.web': 'Stránku prohlížeče načtěte znovu a akci opakujte.',
  'empty.title.coresync.down': 'Nelze načíst',
  'empty.subtext.coresync.down': 'Obsah cloudu se nesynchronizuje. Ujistěte se, že máte aktuální verzi aplikace Creative Cloud pro počítače nebo zkuste aplikaci restartovat.',
  'empty.title.coresync.incompatible': 'Cloudové dokumenty nelze načíst',
  'empty.subtext.coresync.incompatible': 'Položky teď nelze zobrazit. Nainstalujte aktuální verzi aplikace Creative Cloud a zkuste to znovu.',
  'empty.title.cloudStorageDisabled': 'Dokumenty v cloudu nejsou dostupné',
  'empty.subtext.cloudStorageDisabled': 'Pomocí aplikace {productName} můžete na souborech pracovat pouze na vašem zařízení. Další informace získáte od správce IT.',
  'empty.title.logout': 'Pro přístup ke cloudovým dokumentům se přihlaste.',
  'empty.learnMore.link': 'Další informace',
  'trueEmpty.online.cdo.folder.title': 'V této složce nic není.',
  'trueEmpty.online.cdo.folder.subtitle': 'Až sem přidáte nějaké položky, začne se zaplňovat.',
  'trueEmpty.online.cdp.saveas.folder.title': 'Zatím žádné cloudové dokumenty.',
  'trueEmpty.online.cdp.saveas.folder.subtitle': 'Cloudové dokumenty vám zajistí, že vaše tvorba bude vždy aktuální a dostupná v každém zařízení, ať jste kdekoli. Stačí se jen připojit k internetu.',
  'trueEmpty.online.cdp.open.folder.title': 'Zatím žádné cloudové dokumenty.',
  'trueEmpty.online.cdp.open.folder.subtitle': 'Cloudové dokumenty vám zajistí, že vaše tvorba bude vždy aktuální a dostupná v každém zařízení, ať jste kdekoli. Stačí se jen připojit k internetu.',
  'filter.prompt': 'Zadejte klíčové slovo',
  'filter.title': 'Filtrovat',
  'empty.filter.title': 'Pro výraz „{filterString}“ nebyly nalezeny žádné výsledky',
  'empty.filter.subtitle': 'Zkontrolujte pravopis, zkuste klíčové slovo s širším významem nebo vyfiltrujte jiné umístění.',
  'beta.title': 'Synchronizujte svoji práci na svá zařízení',
  'beta.subtitle': 'S cloudovými dokumenty můžete v aplikaci Photoshop bez problémů pracovat na iPadu i na stolním počítači. Tato funkce je však ve verzi Beta, takže nemusí vždy fungovat očekávaným způsobem. Zapnout a vypnout ji lze v předvolbách.',
  'beta.button': 'Zapnout v předvolbách',
  'beta.tag': 'BETA',
  'beta.feedback.link': 'Sdělte nám svůj názor na verzi Beta',
  'button.add-folder': 'Vytvořit novou složku',
  'button.upload': 'Nahrát...',
  'button.createnew': 'Vytvořit nový',
  'button.reportAbuse': 'Nahlásit zneužití',
  'button.open': 'Otevřít',
  'button.select': 'Vybrat',
  'button.rename': 'Přejmenovat',
  'button.pin.header': 'Zpřístupnit offline vždy',
  'button.pin': 'Zpřístupnit offline vždy',
  'button.unpin.header': 'Zpřístupnit pouze online',
  'button.unpin': 'Zpřístupnit pouze online',
  'button.duplicate': 'Duplikovat',
  'button.download': 'Stáhnout',
  'button.move': 'Přesunout',
  'button.delete': 'Odstranit',
  'button.restore': 'Obnovit',
  'button.permdelete': 'Trvale odstranit',
  'button.listview': 'Zobrazit seznam',
  'button.gridview': 'Zobrazit mřížku',
  'button.sharesheetinvite': 'Přizvat k úpravám',
  'button.sharesheetLink': 'Získat odkaz',
  'button.shareSheetAction': 'Sdílet',
  'button.preview': 'Náhled',
  'button.schedule': 'Naplánovat',
  'action.duplicate.suffix': '(Duplikovat)',
  'action.resolve_sync_error.suffix': 'kopie',
  'statusIcon.conflicted': 'Problém při synchronizaci',
  'statusIcon.onlineOnly': 'Pouze online',
  'statusIcon.availableOffline': 'K dispozici offline',
  'statusIcon.syncing': 'Synchronizace...',
  'statusIcon.waitingToSync': 'Čeká se na synchronizaci',
  'tooltip.error': 'Otevřít dokument ke kontrole konfliktu při ukládání',
  'toast.error.documentIsOpen': 'Chcete-li tuto akci provést, zavřete {count, plural, =1 {dokument} few {dokumenty} other {dokumentů}}.',
  'toast.error.exceedsQuota.personal': 'Na vašem účtu došel úložný prostor.',
  'toast.error.exceedsQuota.enterprise': 'Došlo místo v úložišti. O další informace požádejte správce.',
  'toast.operation.duplicate.error': 'Nebylo možné duplikovat {count, plural, =1 {položku} few {{count} položky} other {{count} položek}}.',
  'toast.operation.duplicate.success': '{count, plural, =1 {Položka byla duplikována} few {{count} položky byly duplikovány} other {{count} položek bylo duplikováno}}.',
  'toast.operation.archive.error': 'Nebylo možné odstranit {count, plural, =1 {položku} few {{count} položky} other {{count} položek}}.',
  'toast.operation.archive.error.otherAppUncommittedChanges': 'Soubory otevřené v jiných aplikacích nemůžete odstranit. Zavřete je a zkuste to znovu.',
  'toast.operation.archive.undo.error': 'Nebylo možné odstranit {count, plural, =1 {položku} few {{count} položky} other {{count} položek}}.',
  'toast.operation.archive.success': '{count, plural, =1 {Položka byla odstraněna} few {{count} položky byly odstraněny} other {{count} položek bylo odstraněno}}.',
  'toast.operation.archive.undo.success': 'Obnovení bylo vzato zpět.',
  'toast.operation.permdelete.error': 'Nebylo možné trvale odstranit {count, plural, =1 {položku} few {{count} položky} other {{count} položek}}.',
  'toast.operation.permdelete.success': '{count, plural, =1 {Položka byla trvale odstraněna} few {{count} položky byly trvale odstraněny} other {{count} položek bylo trvale odstraněno}}.',
  'toast.operation.rename.error': 'Položku nelze přejmenovat.',
  'toast.operation.rename.undo.error': 'Položku nelze přejmenovat.',
  'toast.operation.rename.error.duplicateName': 'Již máte položku s tímto názvem.',
  'toast.operation.rename.undo.error.duplicateName': 'Položku s tímto názvem už máte.',
  'toast.operation.rename.success': 'Položka byla přejmenována.',
  'toast.operation.rename.undo.success': 'Přejmenování bylo vzato zpět.',
  'toast.operation.move.error': 'Nebylo možné přesunout {count, plural, =1 {položku} few {{count} položky} other {{count} položek}}.',
  'toast.operation.move.undo.error': 'Nebylo možné přesunout {count, plural, =1 {položku} few {{count} položky} other {{count} položek}}.',
  'toast.operation.move.error.duplicateFolderName': 'Složku s tímto názvem už tu máte.',
  'toast.operation.move.undo.error.duplicateFolderName': 'Složku s tímto názvem už tu máte.',
  'toast.operation.move.error.duplicateDocName': '{count, plural, =1 {Dokument s tímto názvem už v dané složce je. Jeden z dokumentů se stejným názvem přejmenujte a zkuste to znovu.} other {Některé dokumenty nelze přesunout, protože existují dokumenty se stejnými názvy.}}',
  'toast.operation.move.undo.error.duplicateDocName': '{count, plural, =1 {Dokument s tímto názvem už v dané složce je. Jeden z dokumentů se stejným názvem přejmenujte a zkuste to znovu.} other {Některé dokumenty nelze přesunout, protože existují dokumenty se stejnými názvy.}}',
  'toast.operation.move.success': '{count, plural, =1 {Položka byla přesunuta} few {{count} položky byly přesunuty} other {{count} položek bylo přesunuto}}.',
  'toast.operation.move.undo.success': 'Přesunutí bylo vzato zpět.',
  'toast.operation.unarchive.error': 'Nebylo možné obnovit {count, plural, =1 {položku} few {{count} položky} other {{count} položek}}.',
  'toast.operation.unarchive.undo.error': 'Nebylo možné obnovit {count, plural, =1 {položku} few {{count} položky} other {{count} položek}}.',
  'toast.operation.unarchive.success': '{count, plural, =1 {Položka byla obnovena} few {{count} položky byly obnoveny} other {{count} položek bylo obnoveno}}.',
  'toast.operation.unarchive.undo.success': 'Odstranění bylo vzato zpět.',
  'toast.operation.create_new_folder.success': 'Složka byla vytvořena.',
  'toast.operation.create_new_folder.error': 'Novou složku nelze vytvořit.',
  'toast.operation.create_new_folder.error.duplicateName': 'Složku s tímto názvem už tu máte.',
  'toast.operation.user_pin.success': '{count, plural, =1 {Položka je dostupná} few {{count} položky jsou dostupné} other {{count} položek je dostupných}} offline.',
  'toast.operation.user_pin.error': '{count, plural, =1 {Položku} few {{count} položky} other {{count} položek}} se nepodařilo zpřístupnit offline.',
  'toast.operation.user_unpin.success': '{count, plural, =1 {Položka dostupná} other {{count} položky dostupné}} pouze online.',
  'toast.operation.user_unpin.error': '{count, plural, =1 {Položku} few {{count} položky} other {{count} položek}} se nepodařilo zpřístupnit pouze online.',
  'toast.operation.resolve_sync_error.success': 'Byla vytvořena kopie souboru {name}. Oba dokumenty můžete porovnat a odsouhlasit případné rozdíly.',
  'toast.ccd.scroll_to_item.fetching': 'Načítání souboru...',
  'toast.ccd.scroll_to_item.error': 'Soubor nebyl nalezen',
  'toast.info.disabled_rename_to_open_item': 'Aby tu bylo možné starší dokumenty aplikace XD přejmenovat, je třeba je nejdřív otevřít.',
  'toast.action.disabled_rename_to_open_item': 'Otevřít dokument',
  'toast.error.rename.invalidName': 'Tento název obsahuje neplatné znaky.',
  'toast.error.rename.invalidChar': 'Název nesmí obsahovat tyto znaky: {characters}',
  'toast.error.rename.invalidEnd': 'Název nesmí končit tečkou ani mezerou.',
  'toast.error.rename.charRestriction': 'Názvy můžou mít maximálně 200 znaků.',
  'toast.error.rename.duplicateName': 'Cloudový dokument s tímto názvem už tu máte.',
  'toast.success.reportAbuse': 'Zneužití bylo úspěšně nahlášeno',
  'toast.error.reportAbuse': 'Zneužití se nepodařilo nahlásit',
  'toast.operation.undoLabel': 'Zpět',
  'dialog.permdelete.heading': 'Trvale odstranit',
  'dialog.permdelete.warning': 'Tuto akci nemůžete vrátit zpět. Trvale ztratíte následující:',
  'dialog.permdelete.cancelButton': 'Zrušit',
  'dialog.permdelete.confirmButton': 'Trvale odstranit',
  'dialog.permdelete.countItems': '{count, plural, =1 {# položka} few {# položky} many {# položky} other {# položek}}',
  'dialog.nonemptyfolder.heading': 'Opravdu chcete {count, plural, =1 {tuto složku} other {tyto složky}} odstranit?',
  'dialog.nonemptyfolder.warning': '{count, plural, =1 {Tato složka není prázdná a může} other {Tyto složky nejsou prázdné a mohou}} obsahovat soubory, které nejsou viditelné v aplikaci {appName}. Můžete pokračovat v odstraňování nebo si {count, plural, =1 {složku} other {složky}} můžete prohlédnout na webu a podívat se na {count, plural, =1 {její} other {jejich}} obsah. {viewOnWebLink}',
  'dialog.nonemptyfolder.cancelButton': 'Zrušit',
  'dialog.nonemptyfolder.confirmButton': 'Odstranit',
  'dialog.nonemptyfolder.viewOnWebButton': 'Zobrazit na webu',
  'dialog.addfolder.heading': 'Vytvořit novou složku',
  'dialog.addfolder.cancelButton': 'Zrušit',
  'dialog.addfolder.confirmButton': 'Uložit',
  'dialog.addfolder.placeholder': 'Nová složka',
  'dialog.addfolder.invalidChar': 'Název nesmí obsahovat tyto znaky: {characters}',
  'dialog.addfolder.invalidName': 'Tato složka obsahuje neplatné znaky.',
  'dialog.addfolder.invalidEnd': 'Název nesmí končit tečkou ani mezerou.',
  'dialog.addfolder.duplicateName': 'Složka s tímto názvem již v tomto umístění existuje.',
  'dialog.addfolder.charRestriction': 'Názvy můžou mít maximálně 200 znaků.',
  'dialog.moveFolder.heading': 'Přesunout do...',
  'dialog.moveFolder.cancelButton': 'Zrušit',
  'dialog.moveFolder.moveButton': 'Přesunout',
  'dialog.moveFolder.createNewFolderButton': 'Přidat složku',
  'dialog.reportAbuse.cancelButton': 'Zrušit',
  'dialog.reportAbuse.reportAbuseButton': 'Nahlásit zneužití',
  'dialog.reportAbuse.heading': 'Nahlásit zneužití',
  'dialog.reportAbuse.emailInput': 'Váš e-mail',
  'dialog.reportAbuse.nameInput': 'Vaše jméno',
  'dialog.reportAbuse.radioButtonText': 'Proč tento obsah hlásíte?',
  'dialog.reportAbuse.defamation': 'Pomluva',
  'dialog.reportAbuse.hate': 'Rasist./nenávistný obsah',
  'dialog.reportAbuse.trademark': 'Porušení ochranné známky',
  'dialog.reportAbuse.pornography': 'Sexuálně explicitní obsah',
  'dialog.reportAbuse.vulgar': 'Urážlivý obsah',
  'dialog.reportAbuse.other': 'Jiné',
  'dialog.reportAbuse.inappropriate': 'Nevhodné',
  'dialog.reportAbuse.age': 'Nepřesný věk',
  'dialog.reportAbuse.gender': 'Nepřesné pohlaví',
  'dialog.reportAbuse.description': 'Pokud se domníváte, že tento obsah služby Creative Cloud není v souladu s podmínkami použití stanovenými společností Adobe, můžete ho prostřednictvím tohoto stručného formuláře nahlásit.',
  'dialog.reportAbuse.describeConcern': 'Popište problém',
  'dialog.reportAbuse.success': 'Zneužití bylo úspěšně nahlášeno',
  'dialog.reportAbuse.failure': 'Zneužití se nepodařilo nahlásit',
  'dialog.reportAbuse.textAreaTitle': 'Popište problém',
  'dialog.reportAbuse.required': 'Povinné',
  'dialog.cachefull.title': 'Nelze zpřístupnit offline',
  'dialog.cachefull.message': 'V zařízení vám dochází volné místo. K uvolnění místa začněte vytvářet dokumenty ukládané pouze online.',
  'dialog.cachefull.confirm': 'OK',
  'dialog.syncError.heading': 'Dokument se přestal synchronizovat do cloudu',
  'dialog.syncError.body1': 'Doporučujeme nejnovější verzi uložit jako kopii a obnovit poslední verzi dokumentu uloženou v cloudu.',
  'dialog.syncError.body2': 'Dokument můžete otvírat a upravovat, ale změny se nebudou ukládat do cloudu.',
  'dialog.syncError.offline': 'Chcete‑li uložit kopii a obnovit originál, musíte být online.',
  'dialog.syncError.learnMore': 'Další informace',
  'dialog.syncError.resolveButton': 'Uložit kopii a obnovit',
  'dialog.syncError.openButton': 'Otevřít',
  'dialog.syncErrorCopyFail.heading': 'Kopii se nepodařilo uložit',
  'dialog.syncErrorCopyFail.body1': 'Dokument můžete dál otvírat a upravovat, ale změny se nebudou ukládat do cloudu.',
  'dialog.syncErrorCopyFail.body2': 'O další pomoc požádejte péči o zákazníky společnosti Adobe. (Chyba: LocalContentSyncSuspended)',
  'dialog.syncErrorCopyFail.closeButton': 'Zavřít',
  'dialog.syncErrorCopyFail.contactUs': 'Kontaktujte nás',
  'dialog.syncErrorPurgeFail.heading': 'Poslední verzi uloženou v cloudu se nepodařilo obnovit',
  'dialog.syncErrorPurgeFail.body1': 'Byla vytvořena kopie dokumentu, ale jeho poslední verzi uloženou v cloudu se nepodařilo obnovit.',
  'dialog.syncErrorPurgeFail.body2': 'O další pomoc požádejte péči o zákazníky společnosti Adobe. (Chyba: LocalContentSyncSuspended)',
  'dialog.syncErrorPurgeFail.closeButton': 'Zavřít',
  'dialog.syncErrorPurgeFail.contactUs': 'Kontaktujte nás',
  'onboardingCdo.banner.title.sprk': 'Lepší způsob práce',
  'onboardingCdo.banner.title.phxs': 'Jak používat aplikaci Photoshop v iPadu? Vyzkoušejte cloudové dokumenty.',
  'onboardingCdo.banner.title.ilst': 'Cloudové dokumenty můžete nově používat v aplikaci Illustrator',
  'onboardingCdo.banner.title.idsn': 'Cloudové dokumenty můžete nově používat v aplikaci InDesign',
  'onboardingCdo.banner.message.sprk': 'Upravujte své dokumenty odkudkoli, dokonce i v režimu offline. Změny se automaticky ukládají a jsou viditelné v historii dokumentu. Soubory sdílejte s ostatními a jednoduše tak spolupracujte v reálném čase.',
  'onboardingCdo.banner.message.phxs': 'Cloudové dokumenty se při práci automaticky ukládají do cloudu Adobe, takže k nim máte přístup na stolním počítači i na iPadu.',
  'onboardingCdo.banner.message.ilst': 'Cloudové dokumenty v aplikaci Illustrator se při práci automaticky ukládají do cloud Adobe. Podle potřeby si také můžete prohlédnout historii verzí a sledovat, jak se váš projekt vyvíjí.',
  'onboardingCdo.banner.message.idsn': 'Cloudové dokumenty v aplikaci InDesign se během vaší práce automaticky ukládají do cloudu Adobe.',
  'onboardingCdo.banner.linkTitle': 'Další informace',
  'onboardingCdo.banner.confirm': 'OK',
  'operation.progress.archive': 'Odstranění {batchSize, plural, =1 {1 položky} other {{inProgressNum} z {batchSize} položek}}...',
  'operation.progress.unarchive': 'Obnovování {batchSize, plural, =1 {1 položky} other {{inProgressNum} z {batchSize} položek}}...',
  'operation.progress.move': 'Přesouvání {batchSize, plural, =1 {1 položky} other {{inProgressNum} z {batchSize} položek}}...',
  'operation.progress.permdelete': 'Trvalé odstranění {batchSize, plural, =1 {1 položky} other {{inProgressNum} z {batchSize} položek}}...',
  'operation.progress.rename': 'Přejmenovávání {batchSize, plural, =1 {1 položky} other {{inProgressNum} z {batchSize} položek}}...',
  'operation.progress.create_new_folder': 'Vytváří se nová složka...',
  'operation.progress.duplicate': 'Duplikování {batchSize, plural, =1 {1 položky} other {{inProgressNum} z {batchSize} položek}}...',
  'operation.progress.user_pin': 'Probíhá zpřístupnění {batchSize, plural, =1 {1 položky} other {{inProgressNum}. z {batchSize} položek}} offline...',
  'operation.progress.user_unpin': 'Probíhá zpřístupnění {batchSize, plural, =1 {položky} other {{inProgressNum}. z {batchSize} položek}} pouze online...',
  'operation.progress.resolve_sync_error': 'Vytváří se kopie a obnovuje se poslední verze uložená v cloudu...',
  'tooltip.offline.general': 'Je požadováno připojení k internetu.',
  'tooltip.offline.create-new-folder': 'Vytváření složek vyžaduje připojení k internetu.',
  'tooltip.offline.move': 'Přesouvání položek vyžaduje připojení k internetu.',
  'tooltip.syncing.disabled': 'Čeká se na dokončení synchronizace',
  'tooltip.rename.disabled': 'Vybraný dokument nelze přejmenovat. Chcete-li umožnit jeho přejmenování, otevřete jej v hostitelské aplikaci.',
  'tooltip.rename.disabled.sprk': 'Tento soubor nelze přejmenovat, dokud ho neotevřete v aplikaci XD.',
  'tooltip.syncSuspended.needsAction': 'Dokument se přestal synchronizovat. Otevřete ho, abyste mohli provést příslušné kroky.',
  'tooltip.syncSuspended.noAction': 'Synchronizace byla zastavena. Tato akce není v tuto chvíli povolena.',
  'Recents.title': 'Poslední',
  'Recents.cloudDocTitle': 'DOKUMENT V CLOUDU',
  'Recents.error.subtext.coreSync': 'Momentálně nejsou dostupné poslední položky, protože aplikace Creative Cloud Sync nefunguje správně.',
  'item.saveForOfflineIconToolTip': 'Tento dokument byl stažen a je plně dostupný offline.',
  'item.disconnected.cloudonly': 'Byli jste odpojeni. Pokud chcete dokument otevřít, znovu se připojte.',
  'item.coresyncdown.cloudonly': 'Soubor nelze načíst. Tento problém může vyřešit aktualizace nebo restartování služby Creative Cloud.',
  'folder.subtitle': 'SLOŽKA',
  'review.subtitle': 'RECENZE',
  'prototype.subtitle': 'PROTOTYP',
  'designspecs.subtitle': 'SPECIFIKACE NÁVRHŮ',
  'project.subtitle': 'PROJEKT',
  'library.subtitle': 'KNIHOVNA',
  'webLink.subtitle': 'WEBOVÝ ODKAZ',
  'abbreviations.fileSize.byte': 'B',
  'abbreviations.fileSize.kilobyte': 'KB',
  'abbreviations.fileSize.megabyte': 'MB',
  'abbreviations.fileSize.gigabyte': 'GB',
  'abbreviations.fileSize.terabyte': 'TB',
  'sam.copyNameFormat': '%@ kopie',
  'cloudsync.quota.title': 'CLOUDOVÉ ÚLOŽIŠTĚ',
  'cloudsync.quota.percentage': '{percentageUsed} %',
  'cloudsync.quota.usage': 'Je využito {usedCloudQuotaString} z {maxCloudQuotaString}',
  'cloudsync.quota.warning': 'Vaše cloudové úložiště je plné. Aby bylo možné pokračovat v synchronizaci, je třeba navýšit jeho kapacitu.',
  'cloudsync.quota.error': 'Nejsou dostupné žádné informace o úložišti...',
  'cloudsync.quota.upgrade': 'Upgradovat',
  'cloudsync.status.complete.title': 'Synchronizováno a zálohováno',
  'cloudsync.status.syncing.title': 'Synchronizace dokumentů v cloudu',
  'cloudsync.status.syncing.descr': '{progress}/{total}',
  'cloudsync.status.offline.title': 'Pracujete offline',
  'cloudsync.status.offline.descr': 'Dokumenty se ukládají lokálně. Do cloudu se synchronizují, až se znovu připojíte.',
  'cloudsync.status.disabled.title': 'Synchronizace je vypnuta',
  'cloudsync.status.disabled.descr': 'Dokumenty se ukládají lokálně. Do cloudu se synchronizují, až na ně bude v úložišti místo.',
  'cloudsync.item.progress.determinate': '{progress}/{total}',
  'cloudsync.item.progress.indeterminate': 'Synchronizace...',
  'cloudsync.item.complete': 'Dokončeno',
  'cloudsync.items.header': 'Aktivita v síti',
  'cloudsync.alert.title.coresync.down': 'Nelze načíst',
  'cloudsync.alert.subtext.coresync.down': 'Obsah cloudu se nesynchronizuje. Ujistěte se, že máte aktuální verzi aplikace Creative Cloud pro počítače nebo zkuste aplikaci restartovat.',
  'cloudsync.alert.subtext.coresync.down.learnmore': 'Další informace',
  'cloudsync.tooltip.offline': 'Odpojeno',
  'cloudsync.tooltip.error': 'Chyba',
  'cloudsync.tooltip.syncing': 'Ukládání...',
  'cloudsync.tooltip.default': 'Uložené',
  'cloudsync.singleDoc.offline.title': 'Odpojeno',
  'cloudsync.singleDoc.offline.descr': 'Opakovaný pokus o připojení...',
  'cloudsync.singleDoc.offline.timestamp': 'Poslední synchronizace: {time}',
  'cloudsync.singleDoc.error.samInitFail.title': 'Cloud se přestal synchronizovat',
  'cloudsync.singleDoc.error.samInitFail.descr': 'Abyste mohli v synchronizaci své práce pokračovat, restartujte tuto aplikaci.',
  'cloudsync.singleDoc.error.syncSuspended.title': 'Cloud se přestal synchronizovat',
  'cloudsync.singleDoc.error.syncSuspended.descr': 'Abyste mohli v synchronizaci své práce pokračovat, restartujte tuto aplikaci.',
  'cloudsync.singleDoc.error.title': 'Načtení nelze provést',
  'cloudsync.singleDoc.error.descr': 'Obsah cloudu se nesynchronizuje. Zkontrolujte, zda máte aktuální verzi aplikace Creative Cloud pro počítače, případně zkuste aplikaci restartovat.',
  'cloudsync.singleDoc.error.learnMore': 'Další informace',
  'cloudsync.singleDoc.disabled.quotaExceeded.title': 'Vaše cloudové úložiště je plné',
  'cloudsync.singleDoc.disabled.quotaExceeded.descr': 'Abyste mohli v synchronizaci své práce pokračovat, upgradujte aplikaci Creative Cloud.',
  'cloudsync.singleDoc.syncing.title': 'Ukládání...',
  'cloudsync.singleDoc.syncing.descr': 'Probíhá',
  'cloudsync.singleDoc.disabled.title': 'Nelze uložit',
  'cloudsync.singleDoc.disabled.descr': 'Na vašem účtu došel úložný prostor.',
  'cloudsync.singleDoc.complete.title': 'Soubor byl uložen',
  'cloudsync.singleDoc.complete.timestamp': 'Poslední synchronizace: {time}'
};

/***/ }),

/***/ "hDam":
/***/ (function(module, exports) {

module.exports = function () {
  /* empty */
};

/***/ }),

/***/ "hFXq":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* unused harmony export ActionMenuForTests */
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var mobx_react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("okNM");
/* harmony import */ var _react_react_spectrum_DropdownButton__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("6y7h");
/* harmony import */ var _react_react_spectrum_DropdownButton__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_DropdownButton__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _react_react_spectrum_Menu__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("kzNO");
/* harmony import */ var _react_react_spectrum_Menu__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Menu__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _react_react_spectrum_Icon_More__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("qeeD");
/* harmony import */ var _react_react_spectrum_Icon_More__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Icon_More__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var _utils_stop_propagation__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("hLgr");
/* harmony import */ var _stores_SelectionStore__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("7XYX");
/* harmony import */ var _types_CDOReactIntlTyped__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("dSAe");
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;
};








let ActionMenu = class ActionMenu extends react__WEBPACK_IMPORTED_MODULE_0__["Component"] {
    constructor() {
        super(...arguments);
        this.onSelect = (value) => {
            const { element, onActionButtonClick } = this.props;
            const action = this.getActiveItems().find(a => a.value === value);
            onActionButtonClick(action, element);
        };
    }
    getActiveItems() {
        const { actionMenuItems } = this.props;
        return actionMenuItems.filter(item => Boolean(item) &&
            item.isVisible(this.props.getSelectionStore([this.props.element])));
    }
    /**
     * Component renderer.
     * @return {ReactElement} markup
     */
    render() {
        const { disabled, intl } = this.props;
        // Remove disabled/hidden actions, which are represented as 'false'
        const buttons = this.getActiveItems();
        if (!buttons.length) {
            return null;
        }
        return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: "ActionMenu", onClick: _utils_stop_propagation__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"], onKeyDown: _utils_stop_propagation__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"] },
            react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_react_react_spectrum_DropdownButton__WEBPACK_IMPORTED_MODULE_2___default.a, { disabled: disabled, icon: react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_react_react_spectrum_Icon_More__WEBPACK_IMPORTED_MODULE_4___default.a, null), alignRight: true, id: "CDOItem_ActionMenu", onSelect: this.onSelect, tabIndex: -1 }, buttons.map(button => (react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_react_react_spectrum_Menu__WEBPACK_IMPORTED_MODULE_3__["MenuItem"], { key: button.value, id: `CDOItem_ActionMenu_${button.value}`, value: button.value, label: intl.formatMessage({
                    id: `${button.actionMenuLabel || button.label}`,
                }), disabled: !button.isEnabled(this.props.getSelectionStore([this.props.element])), tabIndex: -1 }))))));
    }
};
ActionMenu.defaultProps = {
    disabled: false,
    actionMenuItems: [],
    getSelectionStore: items => new _stores_SelectionStore__WEBPACK_IMPORTED_MODULE_6__[/* default */ "b"](items),
};
ActionMenu = __decorate([
    mobx_react__WEBPACK_IMPORTED_MODULE_1__[/* observer */ "e"]
], ActionMenu);
/* harmony default export */ __webpack_exports__["a"] = (Object(_types_CDOReactIntlTyped__WEBPACK_IMPORTED_MODULE_7__[/* injectIntl */ "e"])(ActionMenu));



/***/ }),

/***/ "hG/T":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("path", {
  d: "M24.793 20H20V2.5a.5.5 0 0 0-.5-.5h-3a.5.5 0 0 0-.5.5V20h-4.793a.5.5 0 0 0-.354.854L18 28l7.146-7.146a.5.5 0 0 0-.353-.854z"
}), React.createElement("path", {
  d: "M30 26.5V30H6v-3.5a.5.5 0 0 0-.5-.5h-3a.5.5 0 0 0-.5.5V33a1 1 0 0 0 1 1h30a1 1 0 0 0 1-1v-6.5a.5.5 0 0 0-.5-.5h-3a.5.5 0 0 0-.5.5z"
}));

/***/ }),

/***/ "hGjE":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("rect", {
  height: "28",
  rx: "1",
  ry: "1",
  width: "8",
  x: "6",
  y: "4"
}), React.createElement("rect", {
  height: "28",
  rx: "1",
  ry: "1",
  width: "8",
  x: "20",
  y: "4"
}));

/***/ }),

/***/ "hJwU":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return AnswerType; });
/* unused harmony export Action */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return UserIntentDialogErrorCodes; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return UserIntentDialogErrorType; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return COMPONENT_KEY; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return USER_INTENT_DIALOG_ERROR_KEY; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return MAX_RECOMMENDATIONS_COUNT; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return RECOMMENDATION_LEVELS; });
/* unused harmony export RECOMMENDATION_CATEGORIES */
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2022 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var AnswerType;
(function (AnswerType) {
    AnswerType["CARDS"] = "cards";
    AnswerType["BUTTONS"] = "buttons";
})(AnswerType || (AnswerType = {}));
var Action;
(function (Action) {
    Action["NEXT"] = "next";
    Action["BACK"] = "back";
    Action["MORE"] = "more";
})(Action || (Action = {}));
// this continues the User Intent Dialog errors codes found in HS
var UserIntentDialogErrorCodes;
(function (UserIntentDialogErrorCodes) {
    UserIntentDialogErrorCodes[UserIntentDialogErrorCodes["RENDER_FAILURE"] = 200005] = "RENDER_FAILURE";
    UserIntentDialogErrorCodes[UserIntentDialogErrorCodes["QUESTION_WITH_MISSING_TITLE"] = 200006] = "QUESTION_WITH_MISSING_TITLE";
    UserIntentDialogErrorCodes[UserIntentDialogErrorCodes["ANSWERS_WITH_MISSING_TITLE_OR_METADATA"] = 200007] = "ANSWERS_WITH_MISSING_TITLE_OR_METADATA";
    UserIntentDialogErrorCodes[UserIntentDialogErrorCodes["QUESTION_WITHOUT_ANSWERS"] = 200008] = "QUESTION_WITHOUT_ANSWERS";
    UserIntentDialogErrorCodes[UserIntentDialogErrorCodes["NO_RECOMMENDATIONS_FOUND"] = 200009] = "NO_RECOMMENDATIONS_FOUND";
})(UserIntentDialogErrorCodes || (UserIntentDialogErrorCodes = {}));
// this matches the User Intent Dialog error type found in HS
const UserIntentDialogErrorType = 'User-Intent-Dialog';
const COMPONENT_KEY = 'userIntentDialog';
/*  This is used in logErrorEvent and calls in UserIntentDialog + CallToActionHandler,
    matching the case value expected in StartIngestErrorHandler: 'UserIntentDialog'
    See IAW-11788 for a little more details. We add this instead of changing COMPONENT_KEY
    in order to keep things backwards compatible. */
const USER_INTENT_DIALOG_ERROR_KEY = 'UserIntentDialog';
const MAX_RECOMMENDATIONS_COUNT = 7; // 1 hero and 6 in carousel
const RECOMMENDATION_LEVELS = {
    BEGINNER: 'beginner',
    EXPERT: 'expert',
};
const RECOMMENDATION_CATEGORIES = {
    LOGO: 'logo-design',
    ILLUSTRATION: 'illustration',
    LAYOUTS: 'layouts',
    GET_STARTED: 'Get started',
};


/***/ }),

/***/ "hKI/":
/***/ (function(module, exports, __webpack_require__) {

/* WEBPACK VAR INJECTION */(function(global) {/**
 * lodash (Custom Build) <https://lodash.com/>
 * Build: `lodash modularize exports="npm" -o ./`
 * Copyright jQuery Foundation and other contributors <https://jquery.org/>
 * Released under MIT license <https://lodash.com/license>
 * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
 * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
 */

/** Used as the `TypeError` message for "Functions" methods. */
var FUNC_ERROR_TEXT = 'Expected a function';
/** Used as references for various `Number` constants. */

var NAN = 0 / 0;
/** `Object#toString` result references. */

var symbolTag = '[object Symbol]';
/** Used to match leading and trailing whitespace. */

var reTrim = /^\s+|\s+$/g;
/** Used to detect bad signed hexadecimal string values. */

var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;
/** Used to detect binary string values. */

var reIsBinary = /^0b[01]+$/i;
/** Used to detect octal string values. */

var reIsOctal = /^0o[0-7]+$/i;
/** Built-in method references without a dependency on `root`. */

var freeParseInt = parseInt;
/** Detect free variable `global` from Node.js. */

var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;
/** Detect free variable `self`. */

var freeSelf = typeof self == 'object' && self && self.Object === Object && self;
/** Used as a reference to the global object. */

var root = freeGlobal || freeSelf || Function('return this')();
/** Used for built-in method references. */

var objectProto = Object.prototype;
/**
 * Used to resolve the
 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
 * of values.
 */

var objectToString = objectProto.toString;
/* Built-in method references for those with the same name as other `lodash` methods. */

var nativeMax = Math.max,
    nativeMin = Math.min;
/**
 * Gets the timestamp of the number of milliseconds that have elapsed since
 * the Unix epoch (1 January 1970 00:00:00 UTC).
 *
 * @static
 * @memberOf _
 * @since 2.4.0
 * @category Date
 * @returns {number} Returns the timestamp.
 * @example
 *
 * _.defer(function(stamp) {
 *   console.log(_.now() - stamp);
 * }, _.now());
 * // => Logs the number of milliseconds it took for the deferred invocation.
 */

var now = function () {
  return root.Date.now();
};
/**
 * Creates a debounced function that delays invoking `func` until after `wait`
 * milliseconds have elapsed since the last time the debounced function was
 * invoked. The debounced function comes with a `cancel` method to cancel
 * delayed `func` invocations and a `flush` method to immediately invoke them.
 * Provide `options` to indicate whether `func` should be invoked on the
 * leading and/or trailing edge of the `wait` timeout. The `func` is invoked
 * with the last arguments provided to the debounced function. Subsequent
 * calls to the debounced function return the result of the last `func`
 * invocation.
 *
 * **Note:** If `leading` and `trailing` options are `true`, `func` is
 * invoked on the trailing edge of the timeout only if the debounced function
 * is invoked more than once during the `wait` timeout.
 *
 * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred
 * until to the next tick, similar to `setTimeout` with a timeout of `0`.
 *
 * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)
 * for details over the differences between `_.debounce` and `_.throttle`.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Function
 * @param {Function} func The function to debounce.
 * @param {number} [wait=0] The number of milliseconds to delay.
 * @param {Object} [options={}] The options object.
 * @param {boolean} [options.leading=false]
 *  Specify invoking on the leading edge of the timeout.
 * @param {number} [options.maxWait]
 *  The maximum time `func` is allowed to be delayed before it's invoked.
 * @param {boolean} [options.trailing=true]
 *  Specify invoking on the trailing edge of the timeout.
 * @returns {Function} Returns the new debounced function.
 * @example
 *
 * // Avoid costly calculations while the window size is in flux.
 * jQuery(window).on('resize', _.debounce(calculateLayout, 150));
 *
 * // Invoke `sendMail` when clicked, debouncing subsequent calls.
 * jQuery(element).on('click', _.debounce(sendMail, 300, {
 *   'leading': true,
 *   'trailing': false
 * }));
 *
 * // Ensure `batchLog` is invoked once after 1 second of debounced calls.
 * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });
 * var source = new EventSource('/stream');
 * jQuery(source).on('message', debounced);
 *
 * // Cancel the trailing debounced invocation.
 * jQuery(window).on('popstate', debounced.cancel);
 */


function debounce(func, wait, options) {
  var lastArgs,
      lastThis,
      maxWait,
      result,
      timerId,
      lastCallTime,
      lastInvokeTime = 0,
      leading = false,
      maxing = false,
      trailing = true;

  if (typeof func != 'function') {
    throw new TypeError(FUNC_ERROR_TEXT);
  }

  wait = toNumber(wait) || 0;

  if (isObject(options)) {
    leading = !!options.leading;
    maxing = 'maxWait' in options;
    maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;
    trailing = 'trailing' in options ? !!options.trailing : trailing;
  }

  function invokeFunc(time) {
    var args = lastArgs,
        thisArg = lastThis;
    lastArgs = lastThis = undefined;
    lastInvokeTime = time;
    result = func.apply(thisArg, args);
    return result;
  }

  function leadingEdge(time) {
    // Reset any `maxWait` timer.
    lastInvokeTime = time; // Start the timer for the trailing edge.

    timerId = setTimeout(timerExpired, wait); // Invoke the leading edge.

    return leading ? invokeFunc(time) : result;
  }

  function remainingWait(time) {
    var timeSinceLastCall = time - lastCallTime,
        timeSinceLastInvoke = time - lastInvokeTime,
        result = wait - timeSinceLastCall;
    return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;
  }

  function shouldInvoke(time) {
    var timeSinceLastCall = time - lastCallTime,
        timeSinceLastInvoke = time - lastInvokeTime; // Either this is the first call, activity has stopped and we're at the
    // trailing edge, the system time has gone backwards and we're treating
    // it as the trailing edge, or we've hit the `maxWait` limit.

    return lastCallTime === undefined || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait;
  }

  function timerExpired() {
    var time = now();

    if (shouldInvoke(time)) {
      return trailingEdge(time);
    } // Restart the timer.


    timerId = setTimeout(timerExpired, remainingWait(time));
  }

  function trailingEdge(time) {
    timerId = undefined; // Only invoke if we have `lastArgs` which means `func` has been
    // debounced at least once.

    if (trailing && lastArgs) {
      return invokeFunc(time);
    }

    lastArgs = lastThis = undefined;
    return result;
  }

  function cancel() {
    if (timerId !== undefined) {
      clearTimeout(timerId);
    }

    lastInvokeTime = 0;
    lastArgs = lastCallTime = lastThis = timerId = undefined;
  }

  function flush() {
    return timerId === undefined ? result : trailingEdge(now());
  }

  function debounced() {
    var time = now(),
        isInvoking = shouldInvoke(time);
    lastArgs = arguments;
    lastThis = this;
    lastCallTime = time;

    if (isInvoking) {
      if (timerId === undefined) {
        return leadingEdge(lastCallTime);
      }

      if (maxing) {
        // Handle invocations in a tight loop.
        timerId = setTimeout(timerExpired, wait);
        return invokeFunc(lastCallTime);
      }
    }

    if (timerId === undefined) {
      timerId = setTimeout(timerExpired, wait);
    }

    return result;
  }

  debounced.cancel = cancel;
  debounced.flush = flush;
  return debounced;
}
/**
 * Creates a throttled function that only invokes `func` at most once per
 * every `wait` milliseconds. The throttled function comes with a `cancel`
 * method to cancel delayed `func` invocations and a `flush` method to
 * immediately invoke them. Provide `options` to indicate whether `func`
 * should be invoked on the leading and/or trailing edge of the `wait`
 * timeout. The `func` is invoked with the last arguments provided to the
 * throttled function. Subsequent calls to the throttled function return the
 * result of the last `func` invocation.
 *
 * **Note:** If `leading` and `trailing` options are `true`, `func` is
 * invoked on the trailing edge of the timeout only if the throttled function
 * is invoked more than once during the `wait` timeout.
 *
 * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred
 * until to the next tick, similar to `setTimeout` with a timeout of `0`.
 *
 * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)
 * for details over the differences between `_.throttle` and `_.debounce`.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Function
 * @param {Function} func The function to throttle.
 * @param {number} [wait=0] The number of milliseconds to throttle invocations to.
 * @param {Object} [options={}] The options object.
 * @param {boolean} [options.leading=true]
 *  Specify invoking on the leading edge of the timeout.
 * @param {boolean} [options.trailing=true]
 *  Specify invoking on the trailing edge of the timeout.
 * @returns {Function} Returns the new throttled function.
 * @example
 *
 * // Avoid excessively updating the position while scrolling.
 * jQuery(window).on('scroll', _.throttle(updatePosition, 100));
 *
 * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.
 * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });
 * jQuery(element).on('click', throttled);
 *
 * // Cancel the trailing throttled invocation.
 * jQuery(window).on('popstate', throttled.cancel);
 */


function throttle(func, wait, options) {
  var leading = true,
      trailing = true;

  if (typeof func != 'function') {
    throw new TypeError(FUNC_ERROR_TEXT);
  }

  if (isObject(options)) {
    leading = 'leading' in options ? !!options.leading : leading;
    trailing = 'trailing' in options ? !!options.trailing : trailing;
  }

  return debounce(func, wait, {
    'leading': leading,
    'maxWait': wait,
    'trailing': trailing
  });
}
/**
 * Checks if `value` is the
 * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
 * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is an object, else `false`.
 * @example
 *
 * _.isObject({});
 * // => true
 *
 * _.isObject([1, 2, 3]);
 * // => true
 *
 * _.isObject(_.noop);
 * // => true
 *
 * _.isObject(null);
 * // => false
 */


function isObject(value) {
  var type = typeof value;
  return !!value && (type == 'object' || type == 'function');
}
/**
 * Checks if `value` is object-like. A value is object-like if it's not `null`
 * and has a `typeof` result of "object".
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
 * @example
 *
 * _.isObjectLike({});
 * // => true
 *
 * _.isObjectLike([1, 2, 3]);
 * // => true
 *
 * _.isObjectLike(_.noop);
 * // => false
 *
 * _.isObjectLike(null);
 * // => false
 */


function isObjectLike(value) {
  return !!value && typeof value == 'object';
}
/**
 * Checks if `value` is classified as a `Symbol` primitive or object.
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.
 * @example
 *
 * _.isSymbol(Symbol.iterator);
 * // => true
 *
 * _.isSymbol('abc');
 * // => false
 */


function isSymbol(value) {
  return typeof value == 'symbol' || isObjectLike(value) && objectToString.call(value) == symbolTag;
}
/**
 * Converts `value` to a number.
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to process.
 * @returns {number} Returns the number.
 * @example
 *
 * _.toNumber(3.2);
 * // => 3.2
 *
 * _.toNumber(Number.MIN_VALUE);
 * // => 5e-324
 *
 * _.toNumber(Infinity);
 * // => Infinity
 *
 * _.toNumber('3.2');
 * // => 3.2
 */


function toNumber(value) {
  if (typeof value == 'number') {
    return value;
  }

  if (isSymbol(value)) {
    return NAN;
  }

  if (isObject(value)) {
    var other = typeof value.valueOf == 'function' ? value.valueOf() : value;
    value = isObject(other) ? other + '' : other;
  }

  if (typeof value != 'string') {
    return value === 0 ? value : +value;
  }

  value = value.replace(reTrim, '');
  var isBinary = reIsBinary.test(value);
  return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value;
}

module.exports = throttle;
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("yLpj")))

/***/ }),

/***/ "hL0j":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var _UxpOptions = _interopRequireDefault(__webpack_require__("zvwv"));

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
} //  so, we are defining this module which forks behavior here so that
//  SwitchBase can import the appropriate Switch instance either Uxp or normal.


module.exports = _UxpOptions.default.select('SwitchBase', () => __webpack_require__("gmyS"), () => __webpack_require__("Fm3E"));

/***/ }),

/***/ "hLgr":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return stopPropagation; });
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
function stopPropagation(event, stopNative = false) {
    event.stopPropagation();
    if (stopNative && event.nativeEvent) {
        event.nativeEvent.stopImmediatePropagation();
    }
}


/***/ }),

/***/ "hO8q":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("path", {
  d: "M16 2a16 16 0 1 0 16 16A16 16 0 0 0 16 2zm10.666 9.08L14.018 27.341a1.208 1.208 0 0 1-.875.461h-.072a1.2 1.2 0 0 1-.85-.352l-7.785-7.793a1.2 1.2 0 0 1 0-1.7l1.326-1.325a1.2 1.2 0 0 1 1.7 0l5.338 5.349L23.315 8.473A1.2 1.2 0 0 1 25 8.263L26.455 9.4a1.2 1.2 0 0 1 .211 1.68z"
}));

/***/ }),

/***/ "hPp7":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("path", {
  d: "M35.332 20.25L18.75 3.668a1.06 1.06 0 0 0-1.5 0L.668 20.25a1.06 1.06 0 0 0 0 1.5l1.958 1.958a1 1 0 0 0 .707.292H4v9a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1V23a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1v10a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1v-9h.667a1 1 0 0 0 .707-.293l1.958-1.958a1.06 1.06 0 0 0 0-1.499z"
}));

/***/ }),

/***/ "hR+R":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = Heading;

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _filterDOMProps = _interopRequireDefault(__webpack_require__("Cv/Q"));

var _propTypes = _interopRequireDefault(__webpack_require__("17x9"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

const _excluded = ["variant", "size", "children", "className"];

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

const VARIANTS = {
  1: 'display',
  2: 'pageTitle',
  3: 'subtitle1',
  4: 'subtitle2',
  5: 'subtitle3',
  6: 'subtitle3'
};
const ELEMENTS = {
  'display': 'h1',
  'pageTitle': 'h2',
  'subtitle1': 'h2',
  'subtitle2': 'h3',
  'subtitle3': 'h4'
};

function Heading(_ref) {
  let {
    variant,
    size = 1,
    // back-compat
    children,
    className
  } = _ref,
      otherProps = _objectWithoutProperties(_ref, _excluded);

  variant = variant || VARIANTS[size] || 'display';
  const Element = ELEMENTS[variant];
  return /*#__PURE__*/_react.default.createElement(Element, _extends({
    className: (0, _classnames.default)('spectrum-Heading', `spectrum-Heading--${variant}`, className)
  }, (0, _filterDOMProps.default)(otherProps)), children);
}

Heading.displayName = 'Heading';
Heading.propTypes = {
  /**
   * Variant of the heading to display. This maps to different heading HTML elements:
   * - display: h1
   * - pageTitle: h2
   * - subtitle1: h2
   * - subtitle2: h3
   * - subtitle3: h4
   */
  variant: _propTypes.default.oneOf(['display', 'pageTitle', 'subtitle1', 'subtitle2', 'subtitle3']),

  /**
   * Custom classname to apply to the heading.
   */
  className: _propTypes.default.string
};

/***/ }),

/***/ "hVSB":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("03+3"),
      24: __webpack_require__("OTDy")
    }
  }));
};

WrappedIcon.displayName = 'AddCircle';
exports.default = WrappedIcon;

/***/ }),

/***/ "hVfy":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return SophiaBase; });
/* harmony import */ var iaw_jsUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("KTUt");
/* harmony import */ var _stores_MainStore__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("cCFZ");
/* harmony import */ var start_stores_StoreUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("L55F");
/* harmony import */ var src_applications__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("3UBC");
/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("2vnA");
/* harmony import */ var iaw_fs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("xZA7");
/* harmony import */ var _iaw_platform__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("lKWN");
/* harmony import */ var _iaw_localstorage__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("p789");
/* harmony import */ var src_components_start_performance__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("r1jx");
/* harmony import */ var start_SharedSettings__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__("zWgm");
/* harmony import */ var _iaw_analytics__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__("RGcl");
/* harmony import */ var _CommonUtils__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__("5ndN");
/* harmony import */ var src_js_start_stores_UserStore__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__("VExq");
/* harmony import */ var _LoggerWrapper_Logger__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__("43WE");
/* harmony import */ var _iaw_VulcanAPI__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__("9PyL");
/* harmony import */ var _components_helpers_DisposerManager__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__("JdbT");
/* harmony import */ var src_components_start_constants__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__("/0Ih");
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
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;
};
var __metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};

















// time in ms between fetching attempts when user signs in
const DATA_REFETCH_INTERVAL_TIME = 5000;
// how many times should attempt to fetch the data when a user signs in
// sometimes an immediate fetch doesn't return data
const DATA_REFETCH_ATTEMPT_COUNT = 3;
/**
 * Checks the below campaigns if the user is targeted by them.
 * @param {string} containerLabel - Container Label
 * @return true - if user is not targeted
 * @return false - if user is targeted
 */
const shouldLogNoTargetingCampaignErrors = (containerLabel) => {
    const shouldLogErrorForContainers = {
        // CCX Start Screen (v4.0) - Home
        [src_components_start_constants__WEBPACK_IMPORTED_MODULE_16__[/* CONTAINER_LABELS */ "d"].HOME]: true,
        // Dynamic Recommendations
        [src_components_start_constants__WEBPACK_IMPORTED_MODULE_16__[/* CONTAINER_LABELS */ "d"].DYNAMIC_RECOMMENDATIONS]: src_applications__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].shouldHaveDynamicRecommendations,
        // Custom Content Configuration Cards
        [src_components_start_constants__WEBPACK_IMPORTED_MODULE_16__[/* CONTAINER_LABELS */ "d"].CUSTOM_CONTENT_CONFIGURATION_CARDS]: src_applications__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].hasCustomContentRecommendation,
        // User Intent
        [src_components_start_constants__WEBPACK_IMPORTED_MODULE_16__[/* CONTAINER_LABELS */ "d"].USER_INTENT]: false,
        // User Intent Dialog
        [src_components_start_constants__WEBPACK_IMPORTED_MODULE_16__[/* CONTAINER_LABELS */ "d"].USER_INTENT_DIALOG]: false,
    };
    return Object.keys(shouldLogErrorForContainers).includes(containerLabel) ? !shouldLogErrorForContainers[containerLabel] : false;
};
/**
 * Utility class that wraps sophia access
 * for both ututs and home data
 */
class SophiaBase {
    constructor() {
        this._logger = _LoggerWrapper_Logger__WEBPACK_IMPORTED_MODULE_13__[/* default */ "a"].get('SophiaBase');
        this._disposerManager = new _components_helpers_DisposerManager__WEBPACK_IMPORTED_MODULE_15__[/* default */ "a"]();
        this._isBackgroundFetching = false;
        this._dataIsCached = false;
    }
    // With NUJ implentation we use CCXP response before cached data. If we can
    // change that we can use cached data first and not call CCXP.
    /**
     * Coverts the relative to absolute path for images.
     *
     * @param asset Asset object that contains the property
     * @param options { createFileURI: boolean }
     * @param localPathOverride A custom local path that overrides this.localPathName
     */
    getFullAssetPath(asset, options = { createFileURI: true }, localPathOverride) {
        const pathName = localPathOverride || this.localPathName;
        const basePath = _stores_MainStore__WEBPACK_IMPORTED_MODULE_1__["mainStore"].sidekickStore.assetsPathOverride || this.basePath;
        if (asset[pathName] && !!basePath) {
            const filePath = `${basePath}${asset[pathName]}`;
            return options.createFileURI ? Object(_CommonUtils__WEBPACK_IMPORTED_MODULE_11__[/* getFileURIForPath */ "d"])(filePath) : filePath;
        }
        // Use HTTPS
        const url = asset[this.imageUrlProperty];
        if (url === null || url === void 0 ? void 0 : url.startsWith('//')) {
            return `https:${url}`;
        }
        else {
            return url;
        }
    }
    getFullRecommendationPath(asset, options = { createFileURI: true }, pathPropertyName) {
        const pathProperty = pathPropertyName || this.recommendationPathName || 'contentPath';
        const basePath = _stores_MainStore__WEBPACK_IMPORTED_MODULE_1__["mainStore"].sidekickStore.assetsPathOverride || this.basePath;
        if (asset[pathProperty] && !!basePath) {
            // online
            if (['http', 'https', 'file://'].some(protocol => asset[pathProperty].startsWith(protocol))) {
                return asset[pathProperty];
            }
            // local
            const filePath = `${basePath}${asset[pathProperty]}`;
            return options.createFileURI ? Object(_CommonUtils__WEBPACK_IMPORTED_MODULE_11__[/* getFileURIForPath */ "d"])(filePath) : filePath;
        }
        return asset[pathProperty];
    }
    /**
     * Initializes the sophia data that is shown to the end user.
     */
    async init() {
        this.addBroadcastListener();
        // We give fetch all the time PS is in background with a minimum of 800ms
        // if PS HS is visible early.
        const minWaitPromise = Promise.all([_iaw_platform__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"].ready, Object(_CommonUtils__WEBPACK_IMPORTED_MODULE_11__[/* timeout */ "i"])(4000)]);
        const data = await Promise.race([minWaitPromise, this.fetch()]);
        /*
            data will never be null here. If in the event the timeout of 4 seconds completes
            and the fetch has not come back yet this will be [null, null]
            Source of "MISSING DATA: NO SURFACES FOUND" error
        */
        if (data) {
            this.apply(data);
        }
        // Handle user change
        this._disposerManager.register(Object(mobx__WEBPACK_IMPORTED_MODULE_4__[/* observe */ "A"])(_stores_MainStore__WEBPACK_IMPORTED_MODULE_1__["mainStore"].user, 'state', async () => {
            if (_stores_MainStore__WEBPACK_IMPORTED_MODULE_1__["mainStore"].user.state !== src_js_start_stores_UserStore__WEBPACK_IMPORTED_MODULE_12__[/* UserState */ "e"].SIGNED_IN) {
                this._logger.log(`User signed out. Clearing ${this.type} data`);
                _stores_MainStore__WEBPACK_IMPORTED_MODULE_1__["mainStore"].setPotentialErrorMessageForDefaultLayout('User signed out.');
                this.apply({});
            }
            else {
                this._logger.log(`User signed in. Setting ${this.type} data`);
                // when the user signs in attempt to fetch the data
                // multiple attempts may be needed as the first one
                // may still not return data as CCXP might still consider the user signed out
                let attemptCount = DATA_REFETCH_ATTEMPT_COUNT;
                const dataFetchInterval = setInterval(async () => {
                    const fetchedData = await Promise.race([Object(_CommonUtils__WEBPACK_IMPORTED_MODULE_11__[/* timeout */ "i"])(DATA_REFETCH_INTERVAL_TIME), this.fetch()]);
                    if (fetchedData && Object.keys(fetchedData).length) {
                        this.apply(fetchedData);
                        clearInterval(dataFetchInterval);
                    }
                    if (attemptCount-- === 0) {
                        clearInterval(dataFetchInterval);
                    }
                }, DATA_REFETCH_INTERVAL_TIME);
            }
        }), 'userStateObserve');
        // Handle subscription status change
        this._disposerManager.register(Object(mobx__WEBPACK_IMPORTED_MODULE_4__[/* observe */ "A"])(_stores_MainStore__WEBPACK_IMPORTED_MODULE_1__["mainStore"].user, 'subscriptionStatus', async () => {
            this._logger.log(`Subscription status changed. Re-fetching ${this.type} data.`);
            this.apply(await this.fetch({ force: { type: 'always' } }));
        }), 'subscriptionStatusObserve');
        this._disposerManager.register(Object(mobx__WEBPACK_IMPORTED_MODULE_4__[/* observe */ "A"])(src_applications__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"], 'isHomeScreenVisible', async () => {
            // Only fetch if the view is hidden and it is relevant to patch data in.
            if (this.safeToPatch && !this.isBackgroundFetching) {
                this.isBackgroundFetching = true;
                this.apply(await this.fetch());
                this.isBackgroundFetching = false;
            }
        }), 'homeScreenVisibleObserve');
    }
    /**
     * Fetches the data from the CCXProcess
     */
    async fetch({ force } = { force: { type: 'none' } }) {
        var _a, _b;
        const cachePath = this.cachePath;
        if (!_CommonUtils__WEBPACK_IMPORTED_MODULE_11__[/* UXPHelpers */ "a"].isUXP) {
            this.basePath = '';
            const response = await fetch(`./placeholder/${this.placeholderPath}`);
            return (await response.json());
        }
        // Need to wait on the user to get the sophia data.
        await Object(mobx__WEBPACK_IMPORTED_MODULE_4__[/* when */ "I"])(() => _stores_MainStore__WEBPACK_IMPORTED_MODULE_1__["mainStore"].user.isUserAvailable || _stores_MainStore__WEBPACK_IMPORTED_MODULE_1__["mainStore"].user.isFRL);
        if (_stores_MainStore__WEBPACK_IMPORTED_MODULE_1__["mainStore"].user.isFRL) {
            _stores_MainStore__WEBPACK_IMPORTED_MODULE_1__["mainStore"].setPotentialErrorMessageForDefaultLayout('User is FRL');
            return {};
        }
        Object(src_components_start_performance__WEBPACK_IMPORTED_MODULE_8__[/* LogPerformance */ "a"])(`Fetching ${this.type} data`); // using default start time here is fine.
        /*
            We will always call CCXProcess for new data, but we will fallback to our cached data if something goes wrong.
        */
        this._logger.log(`Calling CCX Process for ${this.type} data.`);
        const start = new Date(); // start timer for when request to ccxp was made
        const subscriptionStatusChanged = _stores_MainStore__WEBPACK_IMPORTED_MODULE_1__["mainStore"].user.formerSubscriptionStatus &&
            _stores_MainStore__WEBPACK_IMPORTED_MODULE_1__["mainStore"].user.formerSubscriptionStatus !== _stores_MainStore__WEBPACK_IMPORTED_MODULE_1__["mainStore"].user.subscriptionStatus;
        /*
            Using an await function wrapped in a promise to ensure we can do both of the following:
            1. Listen and resolve when progress events return the minimum surface required (ie, Home, Tutorials).
               Without the wrapped resolved we are not returning anything even though the progress event has
               indicated that the surface is completed.
            2. If there are no progress events, the content has already been downloaded and we need to be able to
               get that off the request as well.
        */
        const data = await new Promise(async (resolve, reject) => {
            try {
                const data = await Object(_iaw_VulcanAPI__WEBPACK_IMPORTED_MODULE_14__[/* vulcanAPI */ "a"])()
                    .get({
                    type: this.requestType,
                    // To Do: Do we want this to be quicker? The 4 second app timeout includes the vulcan request.
                    // So it's possible that this request takes the full 4 seconds but that is in addition to anything
                    // else happening? Should we shorten this to try and read from the cache sooner?
                    timeout: 4000,
                    data: {
                        ...this.requestData,
                        force: { type: subscriptionStatusChanged ? 'always' : force.type },
                        urgent: subscriptionStatusChanged ? false : true,
                    },
                    progress: progressData => {
                        const surfaces = progressData.complete && progressData.complete.length > 0;
                        // No need going any further if we do not have complete surfaces.
                        if (!surfaces) {
                            return;
                        }
                        const fetched = progressData.complete.some(entry => entry.includes(this.requiredSurface));
                        if (fetched) {
                            this._logger.log(`Received ${this.type} Surface Progress Completion`);
                            Object(src_components_start_performance__WEBPACK_IMPORTED_MODULE_8__[/* LogPerformance */ "a"])(`Received ${this.type} Progress Completion`, start.toISOString());
                            return resolve(progressData);
                        }
                    },
                })
                    .then(d => {
                    // Wnat to check for both the presence of data response and the error respone.
                    // This will also catch the USER_SIGNED_OUT errors as well as other CCXP error responses
                    // In these cases we try to read from the cache if content is available there.
                    if (d === null || d === void 0 ? void 0 : d.err) {
                        const e = new Error(JSON.stringify(d.err));
                        throw JSON.stringify(d.err);
                    }
                    else if (d === null || d === void 0 ? void 0 : d.path) {
                        resolve(d);
                    }
                    else {
                        throw `Missing data response from CCXP: ${JSON.stringify(d)}`;
                    }
                })
                    .catch(e => {
                    // We've already checked the cached data so there isn't anything to send back here.
                    this._logger.error(`Failed to get data from CCX Process for ${this.type}: ${e}`);
                    _iaw_analytics__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"].logErrorEvent('process-fetch', {
                        subcategory: this.type,
                        cachedData: this.dataIsCached,
                        message: `Failed to get data from CCX Process for ${this.type}`,
                        error: e,
                    });
                    throw e;
                });
                /*
                        If we have a response from CCXP, there is a chance that it could be an error response.
                        In this case, we want to read from the cache in all instances except when the error
                        is that "USER_SIGNED_OUT".
                    */
                Object(src_components_start_performance__WEBPACK_IMPORTED_MODULE_8__[/* LogPerformance */ "a"])(`Received ${this.type} CCXP response`);
                _stores_MainStore__WEBPACK_IMPORTED_MODULE_1__["mainStore"].user.updateFormerSubscriptionStatus();
                resolve(data);
            }
            catch (e) {
                this._logger.error(`Error Loading ${this.type} data from CCXProcess: ${e}`);
                _iaw_analytics__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"].logErrorEvent('process-fetch', {
                    subcategory: this.type,
                    cachedData: this.dataIsCached,
                    message: `Error Loading ${this.type} data from CCXProcess`,
                    error: e,
                });
                // Attempt to resolve with the cache.
                const dataInLocalStorage = await this.getDataLocationFromLocalstorage();
                // If we have data in local storage, return that.
                if (dataInLocalStorage && !!dataInLocalStorage.path) {
                    // We have read from the cache and received a response with a path.
                    this._logger.log(`Path for cached data is ${JSON.stringify(dataInLocalStorage.path)}`);
                    this.dataIsCached = true;
                    resolve(dataInLocalStorage);
                }
                else {
                    // if the stored data has no 'path' value, reject it
                    reject(e);
                }
            }
        });
        start_SharedSettings__WEBPACK_IMPORTED_MODULE_9__[/* default */ "a"].makeSettingsRequest();
        // It is still posible that the cache is empty and the ccxp response returned an error.
        // In this case we return empty content to HS while logging the underlying error message.
        if (data && !data.path) {
            const msg = `path is missing, parsedData: ${JSON.stringify(data)}`;
            _stores_MainStore__WEBPACK_IMPORTED_MODULE_1__["mainStore"].setPotentialErrorMessageForDefaultLayout(msg);
            this._logger.error(`Error with ${this.dataIsCached ? 'Local' : 'CCXP'} ${this.type} data from CCXProcess: ${msg}`);
            return {};
        }
        // Here we have the data response object from CCXP or the cached value of it.
        // Read the JSON file and load the data.
        const parsedJSONData = (await this.readDataFile(data));
        Object(src_components_start_performance__WEBPACK_IMPORTED_MODULE_8__[/* LogPerformance */ "a"])(`Parsed JSON file for ${this.type}`);
        if (parsedJSONData === null || parsedJSONData === void 0 ? void 0 : parsedJSONData.surfaces) {
            for (const [surfaceName, surface] of Object.entries(parsedJSONData.surfaces)) {
                (_a = surface.containers) === null || _a === void 0 ? void 0 : _a.forEach((container) => {
                    // log the containers that don’t have the `data` field set
                    if (container.data === undefined) {
                        const errorMessage = `Missing data for container with label '${container.containerLabel}' for Surface '${surfaceName}'${this._dataIsCached ? ' (Cached content)' : ''}`;
                        this._logger.log(errorMessage);
                        _iaw_analytics__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"].logErrorEvent('sophia', {
                            message: errorMessage,
                        });
                    }
                });
                if (surfaceName === src_components_start_constants__WEBPACK_IMPORTED_MODULE_16__[/* default */ "k"].SURFACES.WHATS_NEW && !_stores_MainStore__WEBPACK_IMPORTED_MODULE_1__["mainStore"].activeToastal) {
                    _stores_MainStore__WEBPACK_IMPORTED_MODULE_1__["mainStore"].setActiveToastal(_stores_MainStore__WEBPACK_IMPORTED_MODULE_1__["ToastalName"].WHATS_NEW);
                    if (!src_applications__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].isUserIntentDialogEnabled) {
                        _stores_MainStore__WEBPACK_IMPORTED_MODULE_1__["mainStore"].setToastalSettled();
                    }
                }
            }
        }
        // Will be called from both Sophia (Home) and Ututs (Learn/Recommendations)
        this.checkDataForFailedContainers(parsedJSONData);
        if ((_b = parsedJSONData === null || parsedJSONData === void 0 ? void 0 : parsedJSONData.surfaces) === null || _b === void 0 ? void 0 : _b[this.requiredSurface]) {
            this._logger.log(`Received ${this.dataIsCached ? 'cached' : 'fresh'} data from CCXProcess for ${this.type} with path ${data.path}`);
            Object(src_components_start_performance__WEBPACK_IMPORTED_MODULE_8__[/* LogPerformance */ "a"])(`Finished parsing CCXP data for ${this.type}`);
            // Only store in the cache if it was fresh data. Otherwise we already have it there.
            // Do not store if the required surface is not present to avoid storing data that will not work.
            if (!this.dataIsCached) {
                this._logger.log(`Setting data to the cache for ${this.type}`);
                data.expirationDTS = parsedJSONData.expirationDTS;
                _iaw_localstorage__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].setUserItem(cachePath, data);
            }
            this.basePath = Object(_CommonUtils__WEBPACK_IMPORTED_MODULE_11__[/* getBaseDirForPath */ "c"])(data.path);
            try {
                // log surface data
                (parsedJSONData === null || parsedJSONData === void 0 ? void 0 : parsedJSONData.surfaces) &&
                    Object.keys(parsedJSONData === null || parsedJSONData === void 0 ? void 0 : parsedJSONData.surfaces).forEach(surfaceKey => {
                        var _a;
                        const surface = parsedJSONData.surfaces && (parsedJSONData === null || parsedJSONData === void 0 ? void 0 : parsedJSONData.surfaces[surfaceKey]);
                        (_a = surface === null || surface === void 0 ? void 0 : surface.containers) === null || _a === void 0 ? void 0 : _a.forEach((surfaceContainer) => {
                            var _a;
                            const logData = {
                                surface: surfaceKey,
                                campaignId: (_a = surfaceContainer === null || surfaceContainer === void 0 ? void 0 : surfaceContainer.containerAnalyticsData) === null || _a === void 0 ? void 0 : _a.campaignId,
                                url: (surfaceContainer === null || surfaceContainer === void 0 ? void 0 : surfaceContainer.dataType) === 'URL' ? surfaceContainer.data : undefined,
                            };
                            this._logger.log('Surface data', logData);
                        });
                    });
            }
            catch (e) {
                this._logger.warn('Error logging Surface data', e);
            }
            return await this.processFetchedData(parsedJSONData);
        }
        else {
            _stores_MainStore__WEBPACK_IMPORTED_MODULE_1__["mainStore"].setPotentialErrorMessageForDefaultLayout(`${this.type} JSON data missing required surface: ${this.requiredSurface}`);
            this._logger.warn(`${this.type} JSON data missing required surface: ${this.requiredSurface}`);
            this._logger.log(`Data: ${JSON.stringify(parsedJSONData)}`);
            return {};
        }
    }
    /*
     * Function to get the data object response from cache
     */
    async getDataLocationFromLocalstorage() {
        let cacheData = {};
        try {
            cacheData = _iaw_localstorage__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].getUserItem(this.cachePath);
            this._logger.log(`Received data from localstorage`);
        }
        catch (e) {
            this._logger.error(`Error trying to get data from localstorage for ${this.type}`);
            _iaw_analytics__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"].logErrorEvent('localstorage-fetch', {
                subcategory: this.type,
                message: `Error getting ${this.type} data from localstorage`,
                error: e,
            });
        }
        return cacheData;
    }
    /*
     * Function to process the data response and read the json file
     */
    async readDataFile(data) {
        if (data === null || data === void 0 ? void 0 : data.path) {
            return await iaw_fs__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"]
                .readJson(data.path)
                .then(d => {
                Object(src_components_start_performance__WEBPACK_IMPORTED_MODULE_8__[/* LogPerformance */ "a"])(`Loaded JSON Data: ${this.type}`);
                _iaw_localstorage__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].setUserItem(this.cachePath, data);
                return d;
            })
                .catch(e => {
                // Clear cache as the data stored is corrupted
                this._logger.error(`Error parsing ${this.type} JSON`, e);
                _iaw_analytics__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"].logErrorEvent('cache-fetch', {
                    subcategory: this.type,
                    cachedData: this.dataIsCached,
                    message: `Error parsing ${this.type} JSON. Clearing corrupted cached data for ${this.type}`,
                    error: e,
                });
                if (this.dataIsCached) {
                    // Only clear the cache if that is where we got the data from.
                    // No need to go to localstorage if we do not have to.
                    this._logger.log(`Clearing corrupted cached data for ${this.type}`);
                    _iaw_localstorage__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].setUserItem(this.cachePath, {});
                }
                _stores_MainStore__WEBPACK_IMPORTED_MODULE_1__["mainStore"].setPotentialErrorMessageForDefaultLayout('Reading data from disk failed.');
                return null;
            });
        }
        else {
            return null;
        }
    }
    checkForDynamicRecommendationsFlag(parsedJSONData) {
        var _a, _b, _c, _d;
        if (this.requiredSurface !== src_components_start_constants__WEBPACK_IMPORTED_MODULE_16__[/* default */ "k"].SURFACES.HOME)
            return;
        // we need to check if the user should have dynamic recommendations
        // we receive this flag through the Home surface
        const homeSurface = this.getSurfaceContentFromParsedData(src_components_start_constants__WEBPACK_IMPORTED_MODULE_16__[/* default */ "k"].SURFACES.HOME, parsedJSONData);
        const homeContent = (_b = (_a = homeSurface === null || homeSurface === void 0 ? void 0 : homeSurface.data) === null || _a === void 0 ? void 0 : _a.experienceHomeMx19ByPath) === null || _b === void 0 ? void 0 : _b.item;
        if (((_c = homeContent === null || homeContent === void 0 ? void 0 : homeContent.stage1) === null || _c === void 0 ? void 0 : _c.renderDynamicRecommendations) || ((_d = homeContent === null || homeContent === void 0 ? void 0 : homeContent.stage2) === null || _d === void 0 ? void 0 : _d.renderDynamicRecommendations)) {
            src_applications__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].shouldHaveDynamicRecommendations = true;
        }
    }
    /**
     * Checks data for failedContainers and logs the failed containers found.
     * Only checks the requiredSurface
     *
     * @param data the data that should be checked
     */
    checkDataForFailedContainers(parsedJSONData) {
        var _a, _b, _c;
        try {
            this.checkForDynamicRecommendationsFlag(parsedJSONData);
            // log any failed containers that Sophia failed to send for this requiredSurface
            (_c = (_b = (_a = parsedJSONData === null || parsedJSONData === void 0 ? void 0 : parsedJSONData.surfaces) === null || _a === void 0 ? void 0 : _a[this.requiredSurface]) === null || _b === void 0 ? void 0 : _b.failedContainers) === null || _c === void 0 ? void 0 : _c.forEach((failedContainer) => {
                // Check if user should be targeted by campaigns and if not skip the error logging
                if (failedContainer.errorCode === src_components_start_constants__WEBPACK_IMPORTED_MODULE_16__[/* CAMPAIGN_TARGETING_ERRORS */ "b"].NO_TARGETING_CAMPAIGN.ERROR_CODE && shouldLogNoTargetingCampaignErrors(failedContainer.containerLabel)) {
                    return;
                }
                // otherwise log all other failedContainer errors including NO_TARGETING_CAMPAIGN errors
                const errorMessage = `Failed container with label '${failedContainer.containerLabel}' for Surface '${this.requiredSurface}'${this._dataIsCached ? ' (Cached content)' : ''}`;
                this._logger.log(errorMessage);
                _iaw_analytics__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"].logErrorEvent('sophia', {
                    message: errorMessage,
                    error: {
                        code: failedContainer.errorCode,
                        desc: failedContainer.errorMessage
                    }
                });
            });
        }
        catch (e) {
            this._logger.warn('Error logging Surface failed container', e);
        }
    }
    /*
     * Function to process the data post fetch
     */
    async processFetchedData(data) {
        return data;
    }
    /**
     * Listen for update broadcasts from the process
     */
    async addBroadcastListener() {
        Object(_iaw_VulcanAPI__WEBPACK_IMPORTED_MODULE_14__[/* vulcanAPI */ "a"])().on(this.requestType + 'Broadcast', this.updateContent.bind(this));
        // Listen to CCXProcess Launch message.
        Object(_iaw_VulcanAPI__WEBPACK_IMPORTED_MODULE_14__[/* vulcanAPI */ "a"])().on('ccxprocess.Initialized', () => {
            this._logger.log('CCX Process launched. Re-fetching');
            this.updateContent(undefined, true);
        });
    }
    /**
     * Default request data for most sophia related requests
     */
    get requestData() {
        return {
            requestId: iaw_jsUtil__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].generateGUID(),
            [this.paramField]: {
                productCode: src_applications__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].id,
                productVersion: src_applications__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].version,
                productLanguage: src_applications__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].language,
                countryCode: _stores_MainStore__WEBPACK_IMPORTED_MODULE_1__["mainStore"].user.UserProfile.countryCode,
                ccxVersion: window.appVersionNumber,
                vmStatus: src_applications__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].vmStatus,
            },
            urgent: true,
            version: 1,
            analytics: {
                'event.context_guid': _stores_MainStore__WEBPACK_IMPORTED_MODULE_1__["mainStore"].radarSessionGUID,
                'env.fw.name': this.frameworkName,
                'env.fw.version': this.frameworkVersion,
            },
        };
    }
    /**
     * Update the content in response to a new fetch from the process.
     */
    async updateContent(message = {}, treatAlwaysValid = false) {
        if (!treatAlwaysValid && !this.isValidBroadcast(message)) {
            return;
        }
        const data = await this.fetch();
        await Object(mobx__WEBPACK_IMPORTED_MODULE_4__[/* when */ "I"])(() => this.isViewHidden);
        this._logger.log('Applying broadcast data for ', this.type);
        this.apply(data);
    }
    /**
     * Return true if there is currently a request to process that we're waiting on.
     */
    get isBackgroundFetching() {
        return this._isBackgroundFetching;
    }
    /**
     * In case we want to override this with side effects etc in classes that inherit
     */
    set isBackgroundFetching(fetching) {
        this._isBackgroundFetching = !!fetching;
    }
    /**
     * Return true if we are using data from the localstorage cache
     */
    get dataIsCached() {
        return this._dataIsCached;
    }
    /**
     * Set this value for presence/usage of data in the local storage.
     */
    set dataIsCached(cached) {
        this._dataIsCached = !!cached;
    }
    /**
     * Mark the usage of data for caching purposes.
     */
    markUsage() {
        return;
    }
    get isCached() {
        return false;
    }
    /*
     * Return true if it is safe or necessary to patch data in to the user
     * Used to tell if data is missing.
     */
    get safeToPatch() {
        return false;
    }
    /**
     * Checks if the message from the CCXProcess is valid for the current user case.
     * @param message Message from the CCXProcess
     */
    isValidBroadcast(message) {
        return true;
    }
    /**
     * Observable property to determine if the view is hidden and the content
     * should be updated in the UI.
     */
    get isViewHidden() {
        return false;
    }
    /**
     * Massages data to apply onto the screen and make live
     * @param data Data to apply
     */
    apply(data) { }
    /**
     * Form field to send the params to got to the server in.
     */
    get paramField() {
        return '';
    }
    /**
     * Path to placeholder data on disk.
     */
    get placeholderPath() {
        return '';
    }
    /**
     * The name of the request sent to CCXProcess
     */
    get requestType() {
        return '';
    }
    /**
     * The type of the data managed
     */
    get type() {
        return '';
    }
    /**
     * The field used in the content to get the
     * local path to files on disk.
     */
    get localPathName() {
        return 'path';
    }
    /**
     * Property used to describe image URLs
     */
    get imageUrlProperty() {
        return '_publishUrl';
    }
    get requiredSurface() {
        return '';
    }
    // Parameter to track the client name
    get frameworkName() {
        return '';
    }
    get recommendationPathName() {
        return 'contentPath';
    }
    // Parameter to track the cilent version
    get frameworkVersion() {
        return window.appVersionNumber;
    }
    get cachePath() {
        return start_stores_StoreUtil__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].cachePath(this.type);
    }
    /**
     * Gets the content for the surface with the given id from parsedData
     * @param id Id of the surface to get the content for
     * @param parsedData Object with the surfaces
     */
    getSurfaceContentFromParsedData(id, parsedData) {
        var _a, _b, _c, _d;
        return (_d = (_c = (_b = (_a = parsedData === null || parsedData === void 0 ? void 0 : parsedData.surfaces) === null || _a === void 0 ? void 0 : _a[id]) === null || _b === void 0 ? void 0 : _b.containers) === null || _c === void 0 ? void 0 : _c[0]) === null || _d === void 0 ? void 0 : _d.content;
    }
}
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_4__[/* computed */ "l"],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], SophiaBase.prototype, "isViewHidden", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_4__[/* observable */ "z"],
    __metadata("design:type", String)
], SophiaBase.prototype, "basePath", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_4__[/* observable */ "z"],
    __metadata("design:type", Object)
], SophiaBase.prototype, "_settings", void 0);


/***/ }),

/***/ "hWyH":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/

Object.defineProperty(exports, "__esModule", {
  value: true
});
/**
 * Available sorting options from the Search Service.
 */

var SortByEnum;

(function (SortByEnum) {
  SortByEnum["title"] = "dc:title";
  SortByEnum["size"] = "size";
  SortByEnum["createDate"] = "sync_created_date";
  SortByEnum["modifyDate"] = "sync_updated_date";
  SortByEnum["accessDate"] = "access_date";
})(SortByEnum || (SortByEnum = {}));

exports.default = SortByEnum;

/***/ }),

/***/ "hbMA":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


const inherits = __webpack_require__("P7XM");

const DEREncoder = __webpack_require__("N2jm");

function PEMEncoder(entity) {
  DEREncoder.call(this, entity);
  this.enc = 'pem';
}

inherits(PEMEncoder, DEREncoder);
module.exports = PEMEncoder;

PEMEncoder.prototype.encode = function encode(data, options) {
  const buf = DEREncoder.prototype.encode.call(this, data);
  const p = buf.toString('base64');
  const out = ['-----BEGIN ' + options.label + '-----'];

  for (let i = 0; i < p.length; i += 64) out.push(p.slice(i, i + 64));

  out.push('-----END ' + options.label + '-----');
  return out.join('\n');
};

/***/ }),

/***/ "heC6":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _intl = __webpack_require__("Lpon");

var _react = _interopRequireWildcard(__webpack_require__("q1tI"));

function _getRequireWildcardCache(nodeInterop) {
  if (typeof WeakMap !== "function") return null;
  var cacheBabelInterop = new WeakMap();
  var cacheNodeInterop = new WeakMap();
  return (_getRequireWildcardCache = function (nodeInterop) {
    return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
  })(nodeInterop);
}

function _interopRequireWildcard(obj, nodeInterop) {
  if (!nodeInterop && obj && obj.__esModule) {
    return obj;
  }

  if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
    return {
      default: obj
    };
  }

  var cache = _getRequireWildcardCache(nodeInterop);

  if (cache && cache.has(obj)) {
    return cache.get(obj);
  }

  var newObj = {};
  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;

  for (var key in obj) {
    if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
      var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;

      if (desc && (desc.get || desc.set)) {
        Object.defineProperty(newObj, key, desc);
      } else {
        newObj[key] = obj[key];
      }
    }
  }

  newObj.default = obj;

  if (cache) {
    cache.set(obj, newObj);
  }

  return newObj;
}

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

const intlMessages = {
  "cs-CZ": _interopRequireDefault(__webpack_require__("cK3p")).default,
  "da-DK": _interopRequireDefault(__webpack_require__("D+ak")).default,
  "de-DE": _interopRequireDefault(__webpack_require__("vDnC")).default,
  "en-US": _interopRequireDefault(__webpack_require__("RLl7")).default,
  "es-ES": _interopRequireDefault(__webpack_require__("ZdiK")).default,
  "fi-FI": _interopRequireDefault(__webpack_require__("pJ3W")).default,
  "fr-FR": _interopRequireDefault(__webpack_require__("8nA0")).default,
  "hu-HU": _interopRequireDefault(__webpack_require__("xGae")).default,
  "it-IT": _interopRequireDefault(__webpack_require__("87G+")).default,
  "ja-JP": _interopRequireDefault(__webpack_require__("tnUB")).default,
  "ko-KR": _interopRequireDefault(__webpack_require__("8eA+")).default,
  "nb-NO": _interopRequireDefault(__webpack_require__("UDOJ")).default,
  "nl-NL": _interopRequireDefault(__webpack_require__("n+km")).default,
  "pl-PL": _interopRequireDefault(__webpack_require__("zoNf")).default,
  "pt-BR": _interopRequireDefault(__webpack_require__("FsjF")).default,
  "ru-RU": _interopRequireDefault(__webpack_require__("76nN")).default,
  "sv-SE": _interopRequireDefault(__webpack_require__("J4O+")).default,
  "tr-TR": _interopRequireDefault(__webpack_require__("7Fyl")).default,
  "uk-UA": _interopRequireDefault(__webpack_require__("8RO3")).default,
  "zh-CN": _interopRequireDefault(__webpack_require__("1btc")).default,
  "zh-TW": _interopRequireDefault(__webpack_require__("adqC")).default
};
const formatMessage = (0, _intl.messageFormatter)(intlMessages);
/*
 * An AssetFolder displays a generic folder icon within an Asset component
 */

class AssetFolder extends _react.Component {
  render() {
    const {
      alt = formatMessage('Folder'),
      className,
      decorative
    } = this.props;
    return /*#__PURE__*/_react.default.createElement("svg", {
      viewBox: "0 0 32 32",
      className: (0, _classnames.default)('spectrum-Asset-folder', className),
      "aria-label": alt,
      "aria-hidden": decorative || null,
      role: "img"
    }, /*#__PURE__*/_react.default.createElement("path", {
      className: "spectrum-Asset-folderBackground",
      d: "M3,29.5c-1.4,0-2.5-1.1-2.5-2.5V5c0-1.4,1.1-2.5,2.5-2.5h10.1c0.5,0,1,0.2,1.4,0.6l3.1,3.1c0.2,0.2,0.4,0.3,0.7,0.3H29c1.4,0,2.5,1.1,2.5,2.5v18c0,1.4-1.1,2.5-2.5,2.5H3z"
    }), /*#__PURE__*/_react.default.createElement("path", {
      className: "spectrum-Asset-folderOutline",
      d: "M29,6H18.3c-0.1,0-0.2,0-0.4-0.2l-3.1-3.1C14.4,2.3,13.8,2,13.1,2H3C1.3,2,0,3.3,0,5v22c0,1.6,1.3,3,3,3h26c1.7,0,3-1.4,3-3V9C32,7.3,30.7,6,29,6z M31,27c0,1.1-0.9,2-2,2H3c-1.1,0-2-0.9-2-2V7h28c1.1,0,2,0.9,2,2V27z"
    }));
  }

}

exports.default = AssetFolder;

/***/ }),

/***/ "heJ0":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}


/* harmony default export */ __webpack_exports__["a"] = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("svg", _extends({
  id: "Layer_1",
  "data-name": "Layer 1",
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 226 226"
}, props), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("defs", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("clipPath", {
  id: "clip-path"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M168.23 51a1.84 1.84 0 0 1-.33 0l-30.71-7a1.46 1.46 0 0 1-1-.8l-3.5-7.2a1.5 1.5 0 1 1 2.7-1.32l3.17 6.54 27 6.15-16.38-33.75-27-6.15 6.71 13.84a1.5 1.5 0 0 1-2.7 1.31L118.16 6a1.5 1.5 0 0 1 .7-2 1.44 1.44 0 0 1 1-.11l30.71 7a1.49 1.49 0 0 1 1 .81l18 37.19a1.5 1.5 0 0 1-.69 2 1.52 1.52 0 0 1-.66.15z"
})), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("clipPath", {
  id: "clip-path-2"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M135.43 80.9a1.86 1.86 0 0 1-.33 0l-30.71-7a1.49 1.49 0 0 1-1-.81l-18-37.19a1.5 1.5 0 0 1 .69-2 1.54 1.54 0 0 1 1-.12l30.71 7a1.5 1.5 0 0 1 1 .8l18 37.19a1.5 1.5 0 0 1-.7 2 1.44 1.44 0 0 1-.65.15zm-29.67-9.81l27 6.15-16.38-33.73-27-6.15z"
})), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("clipPath", {
  id: "clip-path-3"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M135.43 80.9a1.86 1.86 0 0 1-.33 0l-30.71-7a1.5 1.5 0 0 1-.68-2.57l11.09-10.15a1.5 1.5 0 0 1 2 2.22l-9 8.17 27.2 6.19 30.1-27.43-27.1-6.19-8.3 7.56a1.5 1.5 0 0 1-2-2.21l8.88-8.1a1.51 1.51 0 0 1 1.35-.35l30.71 7a1.51 1.51 0 0 1 1.13 1.8 1.46 1.46 0 0 1-.46.77l-32.8 29.9a1.52 1.52 0 0 1-1.08.39z"
})), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("clipPath", {
  id: "clip-path-4"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M117.42 43.71a1.27 1.27 0 0 1-.34 0l-30.7-7a1.5 1.5 0 0 1-1.13-1.8 1.38 1.38 0 0 1 .45-.77L118.5 4.2a1.49 1.49 0 0 1 1.34-.35l30.71 7a1.5 1.5 0 0 1 1.13 1.8 1.44 1.44 0 0 1-.45.77l-32.8 29.9a1.52 1.52 0 0 1-1.01.39zm-27.58-9.33L117 40.57l30.1-27.43L119.94 7z"
}))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("g", {
  id: "cube_3D_sm",
  "data-name": "cube 3D sm"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("g", {
  id: "cube_3D_sm-2",
  "data-name": "cube 3D sm-2"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-2"] || "cls-2",
  d: "M168.23 51a1.84 1.84 0 0 1-.33 0l-30.71-7a1.46 1.46 0 0 1-1-.8l-3.5-7.2a1.5 1.5 0 1 1 2.7-1.32l3.17 6.54 27 6.15-16.38-33.75-27-6.15 6.71 13.84a1.5 1.5 0 0 1-2.7 1.31L118.16 6a1.5 1.5 0 0 1 .7-2 1.44 1.44 0 0 1 1-.11l30.71 7a1.49 1.49 0 0 1 1 .81l18 37.19a1.5 1.5 0 0 1-.69 2 1.52 1.52 0 0 1-.66.15z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("g", {
  clipPath: "url(#clip-path)"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-2"] || "cls-2",
  d: "M168.23 51a1.84 1.84 0 0 1-.33 0l-30.71-7a1.46 1.46 0 0 1-1-.8L132.7 36a1.5 1.5 0 0 1 2.69-1.31l3.17 6.54 27 6.15-16.38-33.76-27-6.15 6.22 12.84a1.5 1.5 0 0 1-2.7 1.31L118.16 6a1.5 1.5 0 0 1 .7-2 1.44 1.44 0 0 1 1-.11l30.71 7a1.49 1.49 0 0 1 1 .81l18 37.19a1.5 1.5 0 0 1-.69 2 1.52 1.52 0 0 1-.66.15z"
})), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-2"] || "cls-2",
  d: "M135.43 80.9a1.86 1.86 0 0 1-.33 0l-30.71-7a1.49 1.49 0 0 1-1-.81l-18-37.19a1.5 1.5 0 0 1 .69-2 1.54 1.54 0 0 1 1-.12l30.71 7a1.5 1.5 0 0 1 1 .8l18 37.19a1.5 1.5 0 0 1-.7 2 1.44 1.44 0 0 1-.65.15zm-29.67-9.81l27 6.15-16.38-33.73-27-6.15z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("g", {
  clipPath: "url(#clip-path-2)"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-2"] || "cls-2",
  d: "M135.43 80.9a1.86 1.86 0 0 1-.33 0l-30.71-7a1.49 1.49 0 0 1-1-.81l-18-37.19a1.5 1.5 0 0 1 .69-2 1.54 1.54 0 0 1 1-.12l30.71 7a1.5 1.5 0 0 1 1 .8l18 37.19a1.5 1.5 0 0 1-.7 2 1.44 1.44 0 0 1-.65.15zm-29.67-9.81l27 6.15-16.38-33.73-27-6.15z"
})), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("g", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-2"] || "cls-2",
  d: "M135.43 80.9a1.86 1.86 0 0 1-.33 0l-30.71-7a1.5 1.5 0 0 1-.68-2.57l11.09-10.15a1.5 1.5 0 0 1 2 2.22l-9 8.17 27.2 6.19 30.1-27.43-27.1-6.19-8.3 7.56a1.5 1.5 0 0 1-2-2.21l8.88-8.1a1.51 1.51 0 0 1 1.35-.35l30.71 7a1.51 1.51 0 0 1 1.13 1.8 1.46 1.46 0 0 1-.46.77l-32.8 29.9a1.52 1.52 0 0 1-1.08.39z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("g", {
  clipPath: "url(#clip-path-3)"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-2"] || "cls-2",
  d: "M135.43 80.9a1.86 1.86 0 0 1-.33 0l-30.71-7a1.5 1.5 0 0 1-.68-2.57l11.09-10.15a1.5 1.5 0 0 1 2 2.22l-9 8.17 27.2 6.19 30.1-27.43-27.1-6.19-8.3 7.56a1.5 1.5 0 0 1-2-2.21l8.88-8.1a1.51 1.51 0 0 1 1.35-.35l30.71 7a1.51 1.51 0 0 1 1.13 1.8 1.46 1.46 0 0 1-.46.77l-32.8 29.9a1.52 1.52 0 0 1-1.08.39z"
}))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("g", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-2"] || "cls-2",
  d: "M117.42 43.71a1.27 1.27 0 0 1-.34 0l-30.7-7a1.5 1.5 0 0 1-1.13-1.8 1.38 1.38 0 0 1 .45-.77L118.5 4.2a1.49 1.49 0 0 1 1.34-.35l30.71 7a1.5 1.5 0 0 1 1.13 1.8 1.44 1.44 0 0 1-.45.77l-32.8 29.9a1.52 1.52 0 0 1-1.01.39zm-27.58-9.33L117 40.57l30.1-27.43L119.94 7z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("g", {
  clipPath: "url(#clip-path-4)"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-2"] || "cls-2",
  d: "M117.42 43.71a1.27 1.27 0 0 1-.34 0l-30.7-7a1.5 1.5 0 0 1-1.13-1.8 1.38 1.38 0 0 1 .45-.77L118.5 4.2a1.49 1.49 0 0 1 1.34-.35l30.71 7a1.5 1.5 0 0 1 1.13 1.8 1.44 1.44 0 0 1-.45.77l-32.8 29.9a1.52 1.52 0 0 1-1.01.39zm-27.58-9.33L117 40.57l30.1-27.43L119.94 7z"
}))))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("g", {
  id: "a_type_font_sm",
  "data-name": "a type font sm"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-2"] || "cls-2",
  d: "M114.09 150c-13.57 0-22-7.2-22-18.8s9.75-18.36 26.07-18.36c2.83 0 4.77.05 6.11.12v-1c0-2.24-.79-9.52-11-9.52A27.86 27.86 0 0 0 100 105.5l-.25.11a2.13 2.13 0 0 1-1.91-.27 2.05 2.05 0 0 1-.83-1.71v-6.72a2.48 2.48 0 0 1 1.22-2.13l.17-.1a38.23 38.23 0 0 1 16.31-3.46c13.42 0 21.44 8.31 21.44 22.22V138a39.48 39.48 0 0 0 .21 5.1 1.28 1.28 0 0 1 0 .19 1.84 1.84 0 0 1-1 1.78 47 47 0 0 1-21.27 4.93zm4.07-34.16c-5.41 0-23.07 1.11-23.07 15.36 0 9.89 7.1 15.8 19 15.8a43.9 43.9 0 0 0 19.25-4.26c-.15-1.58-.15-3.11-.15-4.71v-24.59c0-5.78-1.8-19.22-18.44-19.22a35.27 35.27 0 0 0-14.7 3v4.9a31.59 31.59 0 0 1 13.27-2.76c6.43 0 14 3.28 14 12.52v2.64a1.5 1.5 0 0 1-1.5 1.5h-.14c-.94-.02-3.09-.2-7.52-.2zm-2.42 26.67c-7.07 0-14.61-3-14.61-11.31 0-4.22 2.25-11.31 17.36-11.31a53.52 53.52 0 0 1 7.49.46 1.5 1.5 0 0 1 1.29 1.48v17.3a1.5 1.5 0 0 1-.93 1.39 27.31 27.31 0 0 1-10.6 2zm2.75-19.62c-6.55 0-14.36 1.44-14.36 8.31 0 5.28 4.23 8.31 11.61 8.31a25 25 0 0 0 8.53-1.4v-15a55.77 55.77 0 0 0-5.78-.27z",
  id: "a_type_font_sm-2",
  "data-name": "a type font sm-2"
})), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-2"] || "cls-2",
  d: "M27.83 120.83a17.51 17.51 0 1 1 17-21.8 17.54 17.54 0 0 1-12.74 21.27 17.94 17.94 0 0 1-4.26.53zm0-32a14.51 14.51 0 1 0 14.51 14.5 14.69 14.69 0 0 0-.44-3.55 14.55 14.55 0 0 0-14.07-11z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-2"] || "cls-2",
  d: "M60.89 134.73a9.5 9.5 0 1 1 9.23-11.83 9.49 9.49 0 0 1-6.88 11.54 9.34 9.34 0 0 1-2.35.29zm0-16a6.08 6.08 0 0 0-1.59.2 6.5 6.5 0 1 0 7.89 4.71 6.49 6.49 0 0 0-6.28-4.91z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-2"] || "cls-2",
  d: "M53.72 121.73a1.48 1.48 0 0 1-.79-.23l-12.76-8a1.51 1.51 0 0 1 1.6-2.55l12.75 8A1.5 1.5 0 0 1 55 121a1.53 1.53 0 0 1-1.28.7z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-2"] || "cls-2",
  d: "M197.82 114H167.5a1.5 1.5 0 0 1-1.5-1.5V82.15a1.5 1.5 0 0 1 1.5-1.5h8.66a1.5 1.5 0 0 1 0 3H169V111h27.32v-7.16a1.5 1.5 0 0 1 3 0v8.66a1.5 1.5 0 0 1-1.5 1.5z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-2"] || "cls-2",
  d: "M206.48 105.31h-30.32a1.5 1.5 0 0 1-1.5-1.5V73.49a1.5 1.5 0 0 1 1.5-1.5h8.66a1.5 1.5 0 0 1 0 3h-7.16v27.32H205v-7.16a1.5 1.5 0 0 1 3 0v8.66a1.5 1.5 0 0 1-1.52 1.5z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-2"] || "cls-2",
  d: "M215.14 96.65h-30.32a1.5 1.5 0 0 1-1.5-1.5V64.83a1.5 1.5 0 0 1 1.5-1.5h30.32a1.5 1.5 0 0 1 1.5 1.5v30.32a1.5 1.5 0 0 1-1.5 1.5zm-28.82-3h27.32V66.33h-27.32z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("g", {
  id: "box_package_open_empty_lg",
  "data-name": "box package open empty lg"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("g", {
  id: "box_package_open_empty",
  "data-name": "box package open empty"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-2"] || "cls-2",
  d: "M82.71 150.7a1.5 1.5 0 0 1-1.5-1.5 1.48 1.48 0 0 1 .92-1.38l9.67-4.06a1.5 1.5 0 1 1 1.2 2.76l-9.67 4.06a1.47 1.47 0 0 1-.62.12z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-2"] || "cls-2",
  d: "M169.47 160.66a1.42 1.42 0 0 1-.57-.12l-28.49-11.88a1.5 1.5 0 0 1 1.15-2.77L169 157.32l14-18.59a.57.57 0 0 0 .08-.49.56.56 0 0 0-.34-.38l-37.45-15.53a1.5 1.5 0 0 1 1.15-2.77l37.45 15.53a3.58 3.58 0 0 1 1.94 4.68 3.44 3.44 0 0 1-.42.75l-14.78 19.54a1.49 1.49 0 0 1-1.16.6z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-2"] || "cls-2",
  d: "M113.64 221.19a3.56 3.56 0 0 1-1.37-.27l-53.88-22.34a3.55 3.55 0 0 1-2.2-3.3v-35.73l-14.92-20.27a1.5 1.5 0 0 1 .32-2.09 1.52 1.52 0 0 1 1.47-.18L99 160.21a1.45 1.45 0 0 1 .62.47l14.77 19.47 54.66-22.43a1.5 1.5 0 0 1 2 .82 1.56 1.56 0 0 1 .11.57v36.16a3.57 3.57 0 0 1-2.21 3.31L115 220.92a3.6 3.6 0 0 1-1.36.27zm-54.45-61.62v35.71a.58.58 0 0 0 .35.53l53.88 22.33a.56.56 0 0 0 .44 0l53.87-22.33a.59.59 0 0 0 .36-.54v-33.93l-53.66 22a1.49 1.49 0 0 1-1.76-.48l-15.19-20.04-50.6-21L59 158.25a1.52 1.52 0 0 1 .19 1.32z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-2"] || "cls-2",
  d: "M114.17 213.44a1.5 1.5 0 0 1-1.5-1.5V188.1a1.5 1.5 0 0 1 3 0v23.84a1.5 1.5 0 0 1-1.5 1.5z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-2"] || "cls-2",
  d: "M102.88 180.5a1.45 1.45 0 0 1-.59-.12L66.07 164.9a1.5 1.5 0 0 1 1.17-2.76l36.22 15.47a1.5 1.5 0 0 1-.59 2.88z"
}))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("g", {
  id: "image_generic_lg",
  "data-name": "image generic lg"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-2"] || "cls-2",
  d: "M65.81 86.88a2.31 2.31 0 0 1-1.12-.29l-40.48-22a2.36 2.36 0 0 1-.95-3.2l14.19-26.1a2.36 2.36 0 0 1 3.2-1l40.48 22a2.36 2.36 0 0 1 1 3.2L67.89 85.64a2.37 2.37 0 0 1-2.08 1.24zm-.56-2.67zm-39-22l39.36 21.4 13.58-25-39.41-21.34zM79.7 59zM39.22 37z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-2"] || "cls-2",
  d: "M68.48 66.85a5.42 5.42 0 0 1-2.61-.67 5.47 5.47 0 0 1-2.63-3.29A5.55 5.55 0 0 1 67 56a5.45 5.45 0 0 1 6.8 3.64v.08a5.55 5.55 0 0 1-3.8 6.91 6.07 6.07 0 0 1-1.52.22zm.08-8a2.5 2.5 0 0 0-.72.1 2.56 2.56 0 0 0-1.72 3.15 2.44 2.44 0 0 0 1.19 1.48 2.45 2.45 0 0 0 1.89.2 2.56 2.56 0 0 0 1.72-3.15 2.45 2.45 0 0 0-2.36-1.78z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-2"] || "cls-2",
  d: "M65.46 84.12A1.49 1.49 0 0 1 64 83l-4-13.84a.14.14 0 0 0-.08-.07.12.12 0 0 0-.1 0l-4.67 1.52a1.5 1.5 0 0 1-.94-2.85L59 66.2a3.18 3.18 0 0 1 4 2.13l4 13.88a1.5 1.5 0 0 1-1 1.86 1.84 1.84 0 0 1-.54.05z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-2"] || "cls-2",
  d: "M55.7 79a1.49 1.49 0 0 1-1.44-1.08l-6-20.6-20.62 5.96a1.5 1.5 0 0 1-.83-2.88l20.77-6a2.85 2.85 0 0 1 3.53 1.93l6 20.75a1.5 1.5 0 0 1-1 1.86 1.52 1.52 0 0 1-.42.06zm-7.27-21.71z"
}))));

/***/ }),

/***/ "heNW":
/***/ (function(module, exports) {

/**
 * A faster alternative to `Function#apply`, this function invokes `func`
 * with the `this` binding of `thisArg` and the arguments of `args`.
 *
 * @private
 * @param {Function} func The function to invoke.
 * @param {*} thisArg The `this` binding of `func`.
 * @param {Array} args The arguments to invoke `func` with.
 * @returns {*} Returns the result of `func`.
 */
function apply(func, thisArg, args) {
  switch (args.length) {
    case 0:
      return func.call(thisArg);

    case 1:
      return func.call(thisArg, args[0]);

    case 2:
      return func.call(thisArg, args[0], args[1]);

    case 3:
      return func.call(thisArg, args[0], args[1], args[2]);
  }

  return func.apply(thisArg, args);
}

module.exports = apply;

/***/ }),

/***/ "hfog":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("3UBC");
/* harmony import */ var _LoggerWrapper_Logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("43WE");
/* harmony import */ var src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("cCFZ");
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2021 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/



function detectCDOHost() {
    const _logger = _LoggerWrapper_Logger__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].get('CDPLocationHook');
    const wdow = window;
    try {
        return (wdow === null || wdow === void 0 ? void 0 : wdow.cdoHost) || (wdow === null || wdow === void 0 ? void 0 : wdow.require('cdoHost'));
    }
    catch (e) {
        _logger.log(e);
    }
}
/**
 * Implementing automatic navigation to Projects inside CDP
 * as specified here: https://jira.corp.adobe.com/browse/CCPROJ-5180
 * Basic idea is - this hook will listen hook into various parts of the application:
 *    - will hook into host's functions used to open files from different sources.
 *    - will listen for events from Projects to see when navigation happens.
 *
 * There will be one global "lastProjectsRoute" which will be used as a default initial navigation route for UAP.
 * Every time user navigates inside Home Screen's Projects - we store the navigation information in "lastProjectsRoute".
 * When the user navigates away from the Projects, we reset "lastProjectsRoute".
 *
 * When a picker is open, we store the picker navigation in a temporary space, and we push it to "lastProjectsRoute"
 * only if there is an action coming after the navigation is performed (e.g. open document, import, etc.).
 *
 * If a file was open with other APIs (e.g. from recents, CDO) we reset the "lastProjectsRoute".
 *
 * When a picker is open (via a command or a panel), we inject "lastProjectsRoute" into that UAP, unless the host has already provided one.
 *
 * In the long term, this logic should move to the native (so that the native manages "lastProjectsRoute"), then this file will be removed.
 */
class CDPLocationHook {
    constructor() {
        this._logger = _LoggerWrapper_Logger__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].get('CDPLocationHook');
    }
    async installHooks() {
        const cdoHost = detectCDOHost();
        if (!cdoHost) {
            return;
        }
        const { placeLinkOrEmbedDocuments, executePickerAction, openDocuments, openDocument, openCDODocument, placeDocuments, importDocuments, openLocalDocument, } = cdoHost;
        if (executePickerAction) {
            cdoHost.executePickerAction = (state, ...args) => {
                state && this.storeInfoFromExecuteAction(state);
                return executePickerAction.call(cdoHost, state, ...args);
            };
        }
        if (openCDODocument) {
            cdoHost.openCDODocument = (...args) => {
                // never called from UAP, only if the file is open from home screen.
                this.resetProjectsRoute();
                return openCDODocument.call(cdoHost, ...args);
            };
        }
        if (openLocalDocument) {
            cdoHost.openLocalDocument = (...args) => {
                this.resetProjectsRoute();
                return openLocalDocument.call(cdoHost, ...args);
            };
        }
        if (openDocuments) {
            cdoHost.openDocuments = (infoArray, ...args) => {
                if (infoArray && infoArray.length > 0) {
                    this.storeInfoFromOpenDocument(infoArray[0]);
                }
                return openDocuments.call(cdoHost, infoArray, ...args);
            };
        }
        if (openDocument) {
            cdoHost.openDocument = (doc, ...args) => {
                // This function is called when user clicks on a document from the recents.
                // it is never called from UAP.
                this.resetProjectsRoute();
                return openDocument.call(cdoHost, doc, ...args);
            };
        }
        if (placeLinkOrEmbedDocuments) {
            cdoHost.placeLinkOrEmbedDocuments = (infoArray, ...args) => {
                if (infoArray && infoArray.length > 0) {
                    this.storeInfoFromOpenDocument(infoArray[0]);
                }
                return placeLinkOrEmbedDocuments.call(cdoHost, infoArray, ...args);
            };
        }
        if (placeDocuments) {
            cdoHost.placeDocuments = (infoArray, ...args) => {
                if (infoArray && infoArray.length > 0) {
                    this.storeInfoFromOpenDocument(infoArray[0]);
                }
                return placeDocuments.call(cdoHost, infoArray, ...args);
            };
        }
        if (importDocuments) {
            cdoHost.importDocuments = (infoArray, ...args) => {
                if (infoArray && infoArray.length > 0) {
                    this.storeInfoFromOpenDocument(infoArray[0]);
                }
                return importDocuments.call(cdoHost, infoArray, ...args);
            };
        }
        if (___WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].isCloudProjectsEnabled) {
            // only import & initialize the store if Projects are enabled
            const { sharedStore, Route } = await __webpack_require__("BuQ2");
            sharedStore.on('sessionNavigated', session => {
                const { route, productLocation } = session;
                if (productLocation === 'com.adobe.ccx.document-picker') {
                    this.lastPickerNavigatedRoute = route;
                }
                else if (productLocation === 'com.adobe.ccx.start') {
                    this.lastProjectsRoute = route && Route.createFromString(route.serialize({ skipView: true }));
                    this.lastPickerNavigatedRoute = undefined;
                }
            });
        }
    }
    storeInfoFromOpenDocument(doc) {
        const { assetRefStr, spaceInfo: spaceInfoStr } = doc;
        let assetRef = null;
        try {
            assetRef = assetRefStr && JSON.parse(assetRefStr);
        }
        catch (e) {
            this._logger.log(e);
        }
        if (assetRef && assetRef.cloud_id && spaceInfoStr) {
            this.lastProjectsRoute = this.lastPickerNavigatedRoute || this.lastProjectsRoute;
        }
        else {
            this.lastProjectsRoute = undefined;
        }
        this.lastPickerNavigatedRoute = undefined;
    }
    storeInfoFromExecuteAction(state) {
        const { action, selectedTab } = state;
        if (action === 'cancel') {
            return;
        }
        this.lastProjectsRoute = selectedTab === 'Projects' ? this.lastPickerNavigatedRoute : undefined;
    }
    resetProjectsRoute() {
        this.lastProjectsRoute = undefined;
    }
    adjustDataForEvent(event) {
        const data = event.data || {};
        const { folder, defaultTab } = data;
        if (folder || (defaultTab && defaultTab !== 'projects')) {
            // The information is already provided by the host app.
            return event;
        }
        if (src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_2__["mainStore"].prefs.currentRoute === src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_2__["RouteName"].cdo_shared_with_you) {
            data.route = '/shared';
        }
        if (!this.lastProjectsRoute) {
            // The user did not navigate to Projects before.
            return event;
        }
        data.defaultTab = 'projects';
        data.defaultProjectsRoute = this.lastProjectsRoute;
        if (!event.data) {
            return new Proxy(event, {
                get: function (target, prop, receiver) {
                    if (prop === 'data') {
                        return data;
                    }
                    return Reflect.get(...arguments);
                },
            });
        }
        return event;
    }
    wrapCommandHandler(handler) {
        if (!handler) {
            return handler;
        }
        return (event, ...otherArgs) => {
            event = this.adjustDataForEvent(event);
            return handler(event, ...otherArgs);
        };
    }
    wrapPanelHandler(handler) {
        if (!handler || !___WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].isCloudProjectsEnabled) {
            return handler;
        }
        return (event, ...otherArgs) => {
            event = this.adjustDataForEvent(event);
            return handler(event, ...otherArgs);
        };
    }
}
/* harmony default export */ __webpack_exports__["a"] = (new CDPLocationHook());


/***/ }),

/***/ "hgTI":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.addToast = addToast;
exports.removeToast = removeToast;
exports.success = success;
exports.warning = warning;
exports.error = error;
exports.info = info;
exports.default = void 0;

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _createId = _interopRequireDefault(__webpack_require__("b7KY"));

var _CSSTransition = _interopRequireDefault(__webpack_require__("Si88"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

var _reactDom = _interopRequireDefault(__webpack_require__("i8i4"));

var _timer = _interopRequireDefault(__webpack_require__("IZDi"));

var _MaybeUxpToast = _interopRequireDefault(__webpack_require__("Fad1"));

var _state = __webpack_require__("f+s4");

var _TransitionGroup = _interopRequireDefault(__webpack_require__("UnXY"));

__webpack_require__("JGgT");

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

const TOAST_TIMEOUT = 5000;
const TOAST_ANIMATION_TIME = 200;
/**
 * @type {Map<Toast, {Timer, int}>}
 * Maps allow us to use objects as keys
 * timer - a Timer object
 * id - a unique integer to identify the toast by, used
 *   to keep the key so React doesn't clobber our DOM and
 *   cause use to lose focus while other elements are
 *   being removed around it
 */

const TOAST_DATA = new Map();

class ToastContainer extends _react.default.Component {
  constructor(...args) {
    var _temp;

    return _temp = super(...args), this.state = {
      placement: _state.TOAST_PLACEMENT,
      toasts: []
    }, _temp;
  }

  timerAction(toast, action) {
    if (TOAST_DATA.has(toast)) {
      let timer = TOAST_DATA.get(toast).timer;

      if (timer) {
        timer[action]();
      }
    }
  }

  add(toast, timeout = TOAST_TIMEOUT) {
    if (timeout < 0) {
      timeout = TOAST_TIMEOUT;
    }

    TOAST_DATA.set(toast, {
      timer: timeout === 0 ? null : new _timer.default(this.remove.bind(this, toast), timeout),
      id: (0, _createId.default)()
    });
    this.setState({
      toasts: [...this.state.toasts, toast]
    });
  }

  remove(toast, e) {
    const {
      toasts: currentToasts
    } = this.state;
    const toasts = currentToasts.filter(t => t !== toast);

    if (toasts.length !== currentToasts.length && toast.props.onClose) {
      toast.props.onClose(e);
    }

    this.setState({
      toasts
    });
    this.timerAction(toast, 'pause');
    TOAST_DATA.delete(toast);
  }

  onFocus(toast, e) {
    this.timerAction(toast, 'pause');

    if (toast.props.onFocus) {
      toast.props.onFocus();
    }
  }

  onBlur(toast, e) {
    this.timerAction(toast, 'resume');

    if (toast.props.onBlur) {
      toast.props.onBlur();
    }
  }

  render() {
    let [position, containerPlacement] = this.state.placement.split(' ');
    let className = (0, _classnames.default)('react-spectrum-ToastContainer', `react-spectrum-ToastContainer--${position}`, containerPlacement && `react-spectrum-ToastContainer--${containerPlacement}`);
    return /*#__PURE__*/_react.default.createElement(_TransitionGroup.default, {
      className: className
    }, this.state.toasts.map(toast => /*#__PURE__*/_react.default.createElement(_CSSTransition.default, {
      key: TOAST_DATA.get(toast).id,
      classNames: `react-spectrum-Toast-slide-${position}`,
      timeout: TOAST_ANIMATION_TIME
    }, /*#__PURE__*/_react.default.cloneElement(toast, {
      onClose: this.remove.bind(this, toast),
      onFocus: this.onFocus.bind(this, toast),
      onBlur: this.onBlur.bind(this, toast)
    }))));
  }

}

exports.default = ToastContainer;

function createToastNode(container) {
  let parent = container || document.querySelector('.react-spectrum-provider') || document.body;
  let node = document.createElement('div');
  parent.appendChild(node);
  return node;
}

function ensureToastContainer(container, callback) {
  let toastContainer = _state.TOAST_CONTAINERS.get(container); // Make sure that toastContainer is a real DOM node, not only a memory footprint of previously cached node.


  if (toastContainer && document.body.contains(_reactDom.default.findDOMNode(toastContainer))) {
    callback(toastContainer);
  } else {
    let toastContainerRef;

    _reactDom.default.render( /*#__PURE__*/_react.default.createElement(ToastContainer, {
      ref: ref => toastContainerRef = ref
    }), createToastNode(container), () => {
      _state.TOAST_CONTAINERS.set(container, toastContainerRef);

      callback(toastContainerRef);
    });
  }
}

function addToast(toast, timeout, container) {
  ensureToastContainer(container, toastContainer => toastContainer.add(toast, timeout));
}

function removeToast(toast, container) {
  ensureToastContainer(container, toastContainer => toastContainer.remove(toast));
}

function success(message, options = {}) {
  addToast( /*#__PURE__*/_react.default.createElement(_MaybeUxpToast.default, _extends({
    closable: true,
    variant: "success"
  }, options), message), options.timeout, options.container);
}

function warning(message, options = {}) {
  addToast( /*#__PURE__*/_react.default.createElement(_MaybeUxpToast.default, _extends({
    closable: true,
    variant: "warning"
  }, options), message), options.timeout, options.container);
}

function error(message, options = {}) {
  addToast( /*#__PURE__*/_react.default.createElement(_MaybeUxpToast.default, _extends({
    closable: true,
    variant: "error"
  }, options), message), options.timeout, options.container);
}

function info(message, options = {}) {
  addToast( /*#__PURE__*/_react.default.createElement(_MaybeUxpToast.default, _extends({
    closable: true,
    variant: "info"
  }, options), message), options.timeout, options.container);
}

/***/ }),

/***/ "hr23":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, props, _react2.default.createElement("svg", {
    className: "spectrum-UIIcon-AlertMedium"
  }, _react2.default.createElement("path", {
    d: "M8.564 1.289L.2 16.256A.5.5 0 0 0 .636 17h16.728a.5.5 0 0 0 .5-.5.494.494 0 0 0-.064-.244L9.436 1.289a.5.5 0 0 0-.872 0zM10 14.75a.25.25 0 0 1-.25.25h-1.5a.25.25 0 0 1-.25-.25v-1.5a.25.25 0 0 1 .25-.25h1.5a.25.25 0 0 1 .25.25zm0-3a.25.25 0 0 1-.25.25h-1.5a.25.25 0 0 1-.25-.25v-6a.25.25 0 0 1 .25-.25h1.5a.25.25 0 0 1 .25.25z",
    className: "spectrum-UIIcon--medium"
  }), _react2.default.createElement("path", {
    d: "M10.563 2.206l-9.249 16.55a.5.5 0 0 0 .436.744h18.5a.5.5 0 0 0 .5-.5.494.494 0 0 0-.064-.244l-9.251-16.55a.5.5 0 0 0-.872 0zM12 17.25a.25.25 0 0 1-.25.25h-1.5a.25.25 0 0 1-.25-.25v-1.5a.25.25 0 0 1 .25-.25h1.5a.25.25 0 0 1 .25.25zm0-3.5a.25.25 0 0 1-.25.25h-1.5a.25.25 0 0 1-.25-.25v-6a.25.25 0 0 1 .25-.25h1.5a.25.25 0 0 1 .25.25z",
    className: "spectrum-UIIcon--large"
  })));
};

WrappedIcon.displayName = 'AlertMedium';
exports.default = WrappedIcon;

/***/ }),

/***/ "htpE":
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(process) {

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _configureTypekit = _interopRequireDefault(__webpack_require__("foFK"));

var _convertUnsafeMethod = _interopRequireDefault(__webpack_require__("8nyd"));

var _filterDOMProps = _interopRequireDefault(__webpack_require__("Cv/Q"));

var _propTypes = _interopRequireDefault(__webpack_require__("17x9"));

var _react = _interopRequireWildcard(__webpack_require__("q1tI"));

var _intl = __webpack_require__("Lpon");

var _state = __webpack_require__("f+s4");

__webpack_require__("Fp+v");

__webpack_require__("n9/T");

const _excluded = ["theme", "className", "children", "scale"];

var _class, _class2, _temp;

function _getRequireWildcardCache(nodeInterop) {
  if (typeof WeakMap !== "function") return null;
  var cacheBabelInterop = new WeakMap();
  var cacheNodeInterop = new WeakMap();
  return (_getRequireWildcardCache = function (nodeInterop) {
    return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
  })(nodeInterop);
}

function _interopRequireWildcard(obj, nodeInterop) {
  if (!nodeInterop && obj && obj.__esModule) {
    return obj;
  }

  if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
    return {
      default: obj
    };
  }

  var cache = _getRequireWildcardCache(nodeInterop);

  if (cache && cache.has(obj)) {
    return cache.get(obj);
  }

  var newObj = {};
  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;

  for (var key in obj) {
    if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
      var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;

      if (desc && (desc.get || desc.set)) {
        Object.defineProperty(newObj, key, desc);
      } else {
        newObj[key] = obj[key];
      }
    }
  }

  newObj.default = obj;

  if (cache) {
    cache.set(obj, newObj);
  }

  return newObj;
}

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

if (false) {} else if (false) {} else {
  __webpack_require__("cn/N");
}

if (true) __webpack_require__("8hfI");
if (true) __webpack_require__("MKsS");
if (true) __webpack_require__("jE8u");
if (true) __webpack_require__("YU/E");

if (false) {} else if (false) {} else {
  __webpack_require__("XkUF");
}

if (true) __webpack_require__("3iu+");
if (true) __webpack_require__("35Vt");
if (true) __webpack_require__("Iqan");
if (true) __webpack_require__("EZvW");

let Provider = (0, _convertUnsafeMethod.default)(_class = (_temp = _class2 = class Provider extends _react.Component {
  // Expose the current theme etc. on the context for children to read if needed.
  constructor(props) {
    super(props);

    if (props.locale) {
      (0, _intl.setLocale)(props.locale);
    }

    this.configureTypekit();
  }

  configureTypekit() {
    if (process.browser) {
      (0, _configureTypekit.default)(this.props.typekitId);
    }

    if (this.props.toastPlacement) {
      (0, _state.setToastPlacement)(this.props.toastPlacement);
    }
  }

  UNSAFE_componentWillReceiveProps(nextProps) {
    if ('locale' in nextProps) {
      (0, _intl.setLocale)(nextProps.locale);
    }

    if (nextProps.toastPlacement) {
      (0, _state.setToastPlacement)(nextProps.toastPlacement);
    }
  }

  getChildContext() {
    return {
      theme: this.props.theme,
      scale: this.props.scale,
      locale: this.props.locale
    };
  }

  render() {
    let _this$props = this.props,
        {
      theme,
      className,
      children,
      scale
    } = _this$props,
        props = _objectWithoutProperties(_this$props, _excluded);

    return /*#__PURE__*/_react.default.createElement("div", _extends({
      className: (0, _classnames.default)(className, 'react-spectrum-provider', 'spectrum', `spectrum--${theme}`, `spectrum--${scale}`)
    }, (0, _filterDOMProps.default)(props)), children);
  }

}, _class2.propTypes = {
  /**
   * Theme.
   */
  theme: _propTypes.default.oneOf(['light', 'lightest', 'dark', 'darkest']),

  /**
   * Scale.
   */
  scale: _propTypes.default.oneOf(['medium', 'large']),

  /**
   * The placement of the toasts. By default position is top- shorthand for "top center".
   */
  toastPlacement: _propTypes.default.oneOf(['top', 'top left', 'top center', 'top right', 'bottom', 'bottom left', 'bottom center', 'bottom right']),

  /**
   * Type kit ID. This is required and products must get their own id's.
   * https://typekit.com/account/kits
   * There is a default provided, but it's only intended for prototyping work.
   */
  typekitId: _propTypes.default.string,

  /**
   * Locale, takes format primary-region ex. en-US, cs-CZ
   */
  locale: _propTypes.default.string,

  /**
   * CSS class name.
   */
  className: _propTypes.default.string
}, _class2.defaultProps = {
  theme: 'light',
  scale: 'medium',
  typekitId: 'ruf7eed'
}, _class2.childContextTypes = {
  theme: _propTypes.default.oneOf(['light', 'lightest', 'dark', 'darkest']),
  scale: _propTypes.default.oneOf(['medium', 'large']),
  locale: _propTypes.default.string
}, _temp)) || _class;

exports.default = Provider;
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("8oxB")))

/***/ }),

/***/ "huwD":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("tQZC"),
      24: __webpack_require__("xnKR")
    }
  }));
};

WrappedIcon.displayName = 'DeviceLaptop';
exports.default = WrappedIcon;

/***/ }),

/***/ "hvlN":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("path", {
  d: "M45 12h-6.5a.5.5 0 0 0-.5.5v3a.5.5 0 0 0 .5.5H42v22H6V16h3.5a.5.5 0 0 0 .5-.5v-3a.5.5 0 0 0-.5-.5H3a1 1 0 0 0-1 1v28a1 1 0 0 0 1 1h42a1 1 0 0 0 1-1V13a1 1 0 0 0-1-1z"
}), React.createElement("path", {
  d: "M33.722 10.331L24 0l-9.708 10.331A1 1 0 0 0 15.035 12H20v13.5a.5.5 0 0 0 .5.5h7a.5.5 0 0 0 .5-.5V12h4.979a1 1 0 0 0 .743-1.669z"
}));

/***/ }),

/***/ "hw8n":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _createId = _interopRequireDefault(__webpack_require__("b7KY"));

var _propTypes = _interopRequireDefault(__webpack_require__("17x9"));

var _react = _interopRequireWildcard(__webpack_require__("q1tI"));

var _UxpProgress = _interopRequireDefault(__webpack_require__("Ke8n"));

const _excluded = ["size", "showPercent", "variant", "labelPosition", "isIndeterminate", "label", "className", "id", "min", "max", "valueLabel"];

function _getRequireWildcardCache(nodeInterop) {
  if (typeof WeakMap !== "function") return null;
  var cacheBabelInterop = new WeakMap();
  var cacheNodeInterop = new WeakMap();
  return (_getRequireWildcardCache = function (nodeInterop) {
    return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
  })(nodeInterop);
}

function _interopRequireWildcard(obj, nodeInterop) {
  if (!nodeInterop && obj && obj.__esModule) {
    return obj;
  }

  if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
    return {
      default: obj
    };
  }

  var cache = _getRequireWildcardCache(nodeInterop);

  if (cache && cache.has(obj)) {
    return cache.get(obj);
  }

  var newObj = {};
  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;

  for (var key in obj) {
    if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
      var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;

      if (desc && (desc.get || desc.set)) {
        Object.defineProperty(newObj, key, desc);
      } else {
        newObj[key] = obj[key];
      }
    }
  }

  newObj.default = obj;

  if (cache) {
    cache.set(obj, newObj);
  }

  return newObj;
}

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function ownKeys(object, enumerableOnly) {
  var keys = Object.keys(object);

  if (Object.getOwnPropertySymbols) {
    var symbols = Object.getOwnPropertySymbols(object);

    if (enumerableOnly) {
      symbols = symbols.filter(function (sym) {
        return Object.getOwnPropertyDescriptor(object, sym).enumerable;
      });
    }

    keys.push.apply(keys, symbols);
  }

  return keys;
}

function _objectSpread(target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i] != null ? arguments[i] : {};

    if (i % 2) {
      ownKeys(Object(source), true).forEach(function (key) {
        _defineProperty(target, key, source[key]);
      });
    } else if (Object.getOwnPropertyDescriptors) {
      Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
    } else {
      ownKeys(Object(source)).forEach(function (key) {
        Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
      });
    }
  }

  return target;
}

function _defineProperty(obj, key, value) {
  if (key in obj) {
    Object.defineProperty(obj, key, {
      value: value,
      enumerable: true,
      configurable: true,
      writable: true
    });
  } else {
    obj[key] = value;
  }

  return obj;
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

const SPUXP_SIZES = {
  S: 'small',
  M: 'large'
};
const SPUXP_VARIANTS = {
  overBackground: 'overBackground',
  positive: 'positive',
  warning: 'notice',
  critical: 'negative'
};

class SpUxpProgress extends _react.Component {
  constructor(...args) {
    var _temp;

    return _temp = super(...args), this.renderSpElement = (progress, props) => {
      const {
        children
      } = props;
      let SpElement = progress ? 'sp-progressbar' : 'sp-meter';
      return /*#__PURE__*/_react.default.createElement(SpElement, props, children);
    }, _temp;
  }

  render() {
    const _this$props = this.props,
          {
      size = 'M',
      // 'S', 'M'
      showPercent = false,
      // Whether the label should be shown or not
      variant,
      // Either undef or 'overBackground', 'positive', 'warning', 'critical'
      labelPosition = 'left',
      // 'left', 'top', 'bottom'
      isIndeterminate = false,
      label,
      className,
      id = (0, _createId.default)(),
      min = 0,
      max = 100,
      valueLabel
    } = _this$props,
          otherProps = _objectWithoutProperties(_this$props, _excluded); // Spectrum UXP progressbar and meter don't support indeterminate variant.
    // Use existing RS2 progress when indeterminate


    if (isIndeterminate) {
      return /*#__PURE__*/_react.default.createElement(_UxpProgress.default, this.props);
    }

    let {
      value = 0
    } = this.props; // number between 0 - 100

    value = Math.min(Math.max(+value, min), max);
    let percentage = 100 * value / (max - min);
    let spUxpVariant = variant === undefined ? 'default' : SPUXP_VARIANTS[variant]; // Use progressbar for default and overbackground, meter for others

    let useSpProgress = spUxpVariant === 'default' || spUxpVariant === 'overBackground';

    let spElementProps = _objectSpread({
      'id': id,
      'size': SPUXP_SIZES[size],
      'value': value,
      'min': min,
      // Only for sp-meter, ignored for sp-progressbar
      'max': max,
      'variant': spUxpVariant,
      // Explicitly set to false by default because sp-progressbar and sp-meter use true as default.
      'show-value': 'false'
    }, otherProps);

    if (labelPosition === 'top' && (showPercent || valueLabel)) {
      spElementProps['show-value'] = 'true';

      if (valueLabel) {
        spElementProps['value-label'] = valueLabel;
      }
    } // If labelPosition is left and any label is present, compose using sp-label (side variant) and sp-progressbar/meter.
    // Composition is done because sp-progressbar/meter don't support side variant out of the box.


    if (labelPosition === 'left' && (label || showPercent || valueLabel)) {
      let spLabelVariant = spUxpVariant !== 'overBackground' ? 'side' : 'side-overBackground';
      return /*#__PURE__*/_react.default.createElement("div", {
        style: {
          display: 'inline-flex',
          alignItems: 'center'
        },
        className: className
      }, label && /*#__PURE__*/_react.default.createElement("sp-label", {
        variant: spLabelVariant
      }, label), this.renderSpElement(useSpProgress, spElementProps), (showPercent || valueLabel) && /*#__PURE__*/_react.default.createElement("sp-label", {
        variant: spLabelVariant,
        "value-label": true
      }, valueLabel ? valueLabel : `${Math.round(percentage)}%`));
    } else {
      // For no labels or top labelPosition, use sp-progressbar/meter out of the box
      spElementProps['class'] = className;

      if (label) {
        spElementProps.children = /*#__PURE__*/_react.default.createElement("sp-label", {
          slot: "label"
        }, label);
      }

      return this.renderSpElement(useSpProgress, spElementProps);
    }
  }

}

exports.default = SpUxpProgress;
SpUxpProgress.propTypes = {
  /**
   * Value between the min and max that specifies the progression of the progress bar.
   * Calculated percentage is automatically clamped to 0-100.
   */
  value: _propTypes.default.number,

  /**
   * Minimum value for the progress bar. Defaults to 0.
   */
  min: _propTypes.default.number,

  /**
   * Maximum value for the progress bar. Defaults to 100.
   */
  max: _propTypes.default.number,

  /**
   * Size of the Progress component. Limited to small (S) or medium (M).
   */
  size: _propTypes.default.oneOf(['S', 'M']),

  /**
   * Whether to show a percentage for the progress bar's current value
   */
  showPercent: _propTypes.default.bool,

  /**
   * This is for custom value labels. Useful for more decimal places or currency, etc. It will display in place of the percent from 'showPercent'
   */
  valueLabel: _propTypes.default.string,

  /**
   * Boolean to determine if the Progress component should endlessly scroll (indeterminate)
   */
  isIndeterminate: _propTypes.default.bool,

  /**
   * What type of progress bar to show: 'positive' (green), 'warning' (orange), 'critical' (red)
   */
  variant: _propTypes.default.oneOf(['positive', 'warning', 'critical', 'overBackground']),

  /**
   * Determines the positioning of the provided label.
   * Limited to 'left', 'top', or 'bottom'
   */
  labelPosition: _propTypes.default.oneOf(['left', 'top', 'bottom']),

  /**
   * Determines the label for the Progress component.
   */
  label: _propTypes.default.string
};

/***/ }),

/***/ "hwY+":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2019 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/

Object.defineProperty(exports, "__esModule", {
  value: true
});
var StorageSortByEnum;

(function (StorageSortByEnum) {
  StorageSortByEnum["title"] = "name";
  StorageSortByEnum["modifyDate"] = "modified";
})(StorageSortByEnum || (StorageSortByEnum = {}));

exports.default = StorageSortByEnum;

/***/ }),

/***/ "hwdV":
/***/ (function(module, exports, __webpack_require__) {

/*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */

/* eslint-disable node/no-deprecated-api */
var buffer = __webpack_require__("HDXh");

var Buffer = buffer.Buffer; // alternative to using Object.keys for old browsers

function copyProps(src, dst) {
  for (var key in src) {
    dst[key] = src[key];
  }
}

if (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {
  module.exports = buffer;
} else {
  // Copy properties from require('buffer')
  copyProps(buffer, exports);
  exports.Buffer = SafeBuffer;
}

function SafeBuffer(arg, encodingOrOffset, length) {
  return Buffer(arg, encodingOrOffset, length);
}

SafeBuffer.prototype = Object.create(Buffer.prototype); // Copy static methods from Buffer

copyProps(Buffer, SafeBuffer);

SafeBuffer.from = function (arg, encodingOrOffset, length) {
  if (typeof arg === 'number') {
    throw new TypeError('Argument must not be a number');
  }

  return Buffer(arg, encodingOrOffset, length);
};

SafeBuffer.alloc = function (size, fill, encoding) {
  if (typeof size !== 'number') {
    throw new TypeError('Argument must be a number');
  }

  var buf = Buffer(size);

  if (fill !== undefined) {
    if (typeof encoding === 'string') {
      buf.fill(fill, encoding);
    } else {
      buf.fill(fill);
    }
  } else {
    buf.fill(0);
  }

  return buf;
};

SafeBuffer.allocUnsafe = function (size) {
  if (typeof size !== 'number') {
    throw new TypeError('Argument must be a number');
  }

  return Buffer(size);
};

SafeBuffer.allocUnsafeSlow = function (size) {
  if (typeof size !== 'number') {
    throw new TypeError('Argument must be a number');
  }

  return buffer.SlowBuffer(size);
};

/***/ }),

/***/ "hypo":
/***/ (function(module, exports, __webpack_require__) {

var defineProperty = __webpack_require__("O0oS");
/**
 * The base implementation of `assignValue` and `assignMergeValue` without
 * value checks.
 *
 * @private
 * @param {Object} object The object to modify.
 * @param {string} key The key of the property to assign.
 * @param {*} value The value to assign.
 */


function baseAssignValue(object, key, value) {
  if (key == '__proto__' && defineProperty) {
    defineProperty(object, key, {
      'configurable': true,
      'enumerable': true,
      'value': value,
      'writable': true
    });
  } else {
    object[key] = value;
  }
}

module.exports = baseAssignValue;

/***/ }),

/***/ "i+bA":
/***/ (function(module, exports, __webpack_require__) {

var Buffer = __webpack_require__("hwdV").Buffer;

module.exports = function (thing, encoding, name) {
  if (Buffer.isBuffer(thing)) {
    return thing;
  } else if (typeof thing === 'string') {
    return Buffer.from(thing, encoding);
  } else if (ArrayBuffer.isView(thing)) {
    return Buffer.from(thing.buffer);
  } else {
    throw new TypeError(name + ' must be a string, a Buffer, a typed array or a DataView');
  }
};

/***/ }),

/***/ "i+eI":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}


/* harmony default export */ __webpack_exports__["a"] = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("svg", _extends({
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 292 216",
  style: {
    width: "292px",
    height: "216px"
  }
}, props), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  fill: "#FFD11F",
  d: "M253.19 59.51v62.376H292V59.509h-38.113z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  fill: "#FFD11F",
  d: "M183.04 0v6.786h64.491a5.94 5.94 0 0 1 11.878.25v.107a5.945 5.945 0 0 1-5.945 5.945c-.092 0-.182-.01-.273-.014V58.51H292V0H183.04z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  fill: "#FFD11F",
  d: "M111.336 6.786h29.334a5.94 5.94 0 0 1 5.933-5.695 5.94 5.94 0 0 1 5.932 5.695h29.505V0h-70.704v6.786z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  fill: "#FFD11F",
  d: "M253.19 122.886v38.585c8.578-7.173 20.4-16.829 38.81-21.276v-17.31h-38.809z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  fill: "#FFD11F",
  d: "M5.909 42.325c6.288-12.83 19.185-21.773 34.17-22.495v-7.016a5.944 5.944 0 0 1-4.627-5.793v-.107a5.942 5.942 0 0 1 11.883-.128h63.001V0H0v42.088l2.667.055c1.089.022 2.168.089 3.242.182z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  fill: "#EC6850",
  d: "M253.19 202.642c.07-.002.138-.01.208-.01a5.945 5.945 0 0 1 5.945 5.945v.106a5.945 5.945 0 1 1-11.89 0v-.093h-89.557V216H292v-75.805c-18.41 4.447-30.232 14.103-38.81 21.276v41.171z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  fill: "#852AAF",
  d: "M111.336 59.509h70.704v62.377h-70.704z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  fill: "#852AAF",
  d: "M110.336 59.51H95.709l5.21 16.53c.74 2.346-1.042 4.725-3.501 4.674l-6.54-.133a3.845 3.845 0 0 0-3.923 3.766l-.257 18.578c-.094 6.823-5.726 12.265-12.549 12.126l-12.705-.26c-4.797-.099-8.934 2.866-10.573 7.095h59.465V59.509z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  fill: "#852AAF",
  d: "M110.336 122.886H50.538c-.25.888-.405 1.816-.424 2.78l-.185 9.012c-.287 14 10.83 25.582 24.83 25.869l23.441.271c3.46-2.881 7.438-6.11 12.136-9.22v-28.712z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  fill: "#852AAF",
  d: "M111.336 150.942c7.452-4.799 16.678-9.228 28.448-11.527 5.35-1.045 11.226-1.65 17.7-1.65 9.368 0 17.474 1.273 24.556 3.307v-18.186h-70.704v28.056z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  fill: "none",
  d: "M247.453 208.59l-89.557-.001"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  fill: "none",
  d: "M139.785 139.415c5.35-1.045 11.226-1.65 17.7-1.65"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  fill: "none",
  d: "M204.586 151.573a91.424 91.424 0 0 0-2.76-1.758"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  fill: "none",
  d: "M208.723 154.46c-.35-.256-.705-.513-1.063-.77"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  fill: "none",
  d: "M214.505 158.96a158.775 158.775 0 0 0-3.98-3.15"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  fill: "#F7F7F7",
  d: "M247.519 7.143a5.94 5.94 0 0 0 5.672 5.931c.09.004.18.014.273.014a5.945 5.945 0 0 0 5.945-5.945v-.107a5.94 5.94 0 0 0-11.877-.25c-.004.084-.013.166-.013.25v.107z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  fill: "#F7F7F7",
  d: "M146.602 1.091a5.94 5.94 0 0 0-5.932 5.695c-.003.084-.012.166-.012.25v.107a5.945 5.945 0 1 0 11.89 0v-.107c0-.084-.01-.166-.013-.25a5.94 5.94 0 0 0-5.933-5.694z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  fill: "#F7F7F7",
  d: "M41.397.97a5.945 5.945 0 0 0-5.945 5.944v.107a5.943 5.943 0 0 0 4.628 5.793c.424.096.864.152 1.317.152a5.945 5.945 0 0 0 5.945-5.945v-.107c0-.043-.005-.085-.006-.128A5.941 5.941 0 0 0 41.397.969z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  fill: "#F7F7F7",
  d: "M247.453 208.577v.013h5.738-5.738v.093a5.945 5.945 0 1 0 11.89 0v-.106a5.945 5.945 0 0 0-5.945-5.945c-.07 0-.138.008-.207.01a5.94 5.94 0 0 0-5.738 5.935z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  fill: "none",
  d: "M253.191 208.59h-5.738"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  fill: "#FFD11F",
  d: "M110.336 59.51v62.376H50.87c-.127.326-.237.66-.333 1h59.798v28.712c-4.698 3.11-8.677 6.339-12.136 9.22l12.136.14 1 .012 3.445.04c23.892.277 43.115 19.724 43.115 43.617v3.962h89.557v-.012a5.94 5.94 0 0 1 5.738-5.935v-41.17l-.555.463c-8.472 7.096-10.288 8.437-17.265 8.437-6.056 0-8.237-1.016-14.223-5.904a203.77 203.77 0 0 1-1.25-1.03c-.524-.434-1.07-.89-1.651-1.375l-.152-.128c-1.136-.95-2.33-1.947-3.59-2.974a158.775 158.775 0 0 0-3.98-3.15 119.808 119.808 0 0 0-2.865-2.12c-.99-.71-2.013-1.416-3.074-2.118a86.78 86.78 0 0 0-5.216-3.204 81.233 81.233 0 0 0-6.908-3.495 79.189 79.189 0 0 0-6.938-2.72 78.23 78.23 0 0 0-2.484-.793v-18.475h70.15v-1h-70.15V59.509h7.641c.005-.334.009-.668.025-1h-7.666V6.786h-1V58.51h-70.704V6.786h-1V58.51H95.394l.315 1h14.627zm71.704 81.562c-7.082-2.034-15.188-3.307-24.556-3.307-6.474 0-12.35.605-17.7 1.65-11.77 2.3-20.996 6.728-28.448 11.527v-28.056h70.704v18.186zm0-81.563v62.377h-70.704V59.509h70.704z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  fill: "#FFD11F",
  d: "M253.19 59.51v-1h-7.982c.017.33.021.665.026 1h7.956z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  fill: "#F7F7F7",
  d: "M114.781 161.01l-3.445-.04-1-.011-12.136-.14-23.44-.272c-14-.287-25.118-11.869-24.831-25.869l.184-9.011c.02-.965.175-1.893.425-2.781.095-.34.206-.674.333-1 1.64-4.229 5.776-7.194 10.573-7.095l12.705.26c6.823.14 12.455-5.303 12.55-12.126l.256-18.578a3.845 3.845 0 0 1 3.923-3.766l6.54.134c2.459.05 4.24-2.329 3.501-4.675l-5.21-16.53-.315-1-1.358-4.308C87.708 34.125 69.28 20.32 48.235 19.89l-5.358-.11c-.94-.02-1.872.006-2.798.05-14.985.722-27.882 9.666-34.17 22.495a49.072 49.072 0 0 1 34.17 18.354 48.98 48.98 0 0 1 8.389 15.776l6.883 21.839c.74 2.345-1.043 4.724-3.502 4.674l-6.539-.134a3.845 3.845 0 0 0-3.923 3.766l-.211 15.286-.014 1-.032 2.292a12.258 12.258 0 0 1-1.05 4.812c-1.949 4.392-6.39 7.418-11.499 7.314l-12.705-.26c-1.835-.038-3.57.38-5.11 1.136-3.61 1.773-6.133 5.442-6.22 9.74l-.185 9.011c-.287 14 10.83 25.582 24.83 25.87l10.888.125 29.134.338c17.362.2 32.249 10.529 39.095 25.326a43.283 43.283 0 0 1 2.65 7.41h46.938v-11.372c0-23.894-19.223-43.341-43.115-43.618z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  fill: "none",
  d: "M140.658 208.589h-32.35"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  fill: "none",
  d: "M152.547 208.589h5.349"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  fill: "none",
  d: "M140.658 208.589h11.889"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  fill: "#F8D34A",
  d: "M108.308 208.59c-6.846-14.797-21.733-25.126-39.095-25.327l-29.133-.337-10.888-.126c-14-.287-25.118-11.868-24.83-25.869l.183-9.011c.088-4.298 2.61-7.968 6.22-9.74a11.046 11.046 0 0 1 5.111-1.137l12.705.26c5.11.105 9.55-2.921 11.499-7.314a12.258 12.258 0 0 0 1.05-4.811l.032-2.292.014-1 .211-15.286a3.845 3.845 0 0 1 3.924-3.766l6.539.133c2.459.05 4.24-2.328 3.501-4.674l-6.883-21.838a48.978 48.978 0 0 0-8.388-15.776A49.071 49.071 0 0 0 5.909 42.324a49.264 49.264 0 0 0-3.242-.181L0 42.088V216h110.958a43.28 43.28 0 0 0-2.65-7.41z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  fill: "none",
  d: "M40.08 208.589h7.195"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  fill: "#F7F7F7",
  d: "M190.672 59.89c0 15.07 12.216 27.286 27.285 27.286s27.286-12.216 27.286-27.286c0-.127-.008-.253-.01-.38-.004-.335-.008-.67-.025-1-.719-14.428-12.644-25.905-27.25-25.905s-26.532 11.477-27.251 25.904c-.017.331-.021.666-.026 1-.002.128-.01.254-.01.381z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  fill: "#852AAF",
  d: "M253.19 58.51V13.073a5.94 5.94 0 0 1-5.671-5.931v-.107c0-.084.009-.166.012-.25H183.04V0h-1v6.786h-29.505c.003.084.012.166.012.25v.107a5.945 5.945 0 1 1-11.89 0v-.107c0-.084.01-.166.013-.25h-29.334V0h-1v6.786h-63c0 .043.006.085.006.128v.107a5.945 5.945 0 0 1-5.945 5.944c-.453 0-.893-.055-1.317-.151v7.016c.926-.045 1.856-.07 2.797-.05l5.358.11c21.046.43 39.473 14.235 45.801 34.312l1.358 4.307h14.942V6.786h1V58.51h70.704V6.786h1V58.51h7.667c.719-14.428 12.644-25.904 27.25-25.904s26.532 11.476 27.251 25.904h7.982v1h-7.956c.001.128.01.253.01.381 0 15.07-12.217 27.286-27.287 27.286S190.672 74.96 190.672 59.89c0-.128.008-.253.01-.38h-7.642v62.376h70.15v1h-70.15v18.474a77.973 77.973 0 0 1 9.422 3.514 81.233 81.233 0 0 1 6.908 3.495 86.4 86.4 0 0 1 5.216 3.204 100.418 100.418 0 0 1 4.137 2.888c.614.45 1.214.9 1.802 1.35a158.363 158.363 0 0 1 3.98 3.15 376.83 376.83 0 0 1 3.59 2.974l.152.128c.58.486 1.127.941 1.65 1.375.435.361.851.704 1.25 1.03 5.986 4.888 8.168 5.904 14.224 5.904 6.977 0 8.792-1.341 17.265-8.437l.555-.464v-38.585H292v-1h-38.809V59.509H292v-1h-38.809z"
})));

/***/ }),

/***/ "i0ur":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

/*************************************************************************
* ADOBE CONFIDENTIAL
* ___________________
*
* Copyright 2019 Adobe
* All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains
* the property of Adobe and its suppliers, if any. The intellectual
* and technical concepts contained herein are proprietary to Adobe
* and its suppliers and are protected by all applicable intellectual
* property laws, including trade secret and copyright laws.
* Dissemination of this information or reproduction of this material
* is strictly forbidden unless prior written permission is obtained
* from Adobe.
**************************************************************************/

module.exports = __webpack_require__("Kqiy");

/***/ }),

/***/ "i32c":
/***/ (function(module, exports) {

/* eslint-disable max-len */
module.exports = {
  'confirmationDialog.dontShowAgain': 'Більше не показувати',
  'confirmationDialog.confirm.default': 'Продовжити',
  'confirmationDialog.cancel.default': 'Скасувати',
  'confirmationDialog.learnMore': 'Докладніше',
  'toast.warning.place': 'Неможливо розмістити зв’язані хмарні документи. Перейдіть до вкладення натомість.',
  'toast.warning.placeLinkOrEmbed': "Ресурси, які ви розміщуєте, тепер за замовчуванням пов'язані з оригіналом. Це означає, що якщо ви редагуєте його в одному місці, ці зміни відображаються всюди.",
  'toast.warning.saveAs.invalidFormat': 'На жаль, тут не можна зберігати файли у форматі {genericFormat}. Ваш фал буде збережено у форматі {adobeFormat}.',
  'pickerView.recent': 'Нещодавні',
  'pickerView.cloud_docs': 'Ваші файли',
  'pickerView.shared_with_you': 'Відкрито для вас',
  'pickerView.projects': 'Проєкти',
  'pickerView.files': 'Файли',
  'pickerView.computer': 'Ваш комп’ютер...',
  'pickerView.saveAsInput': 'Зберегти як',
  'pickerView.exportInput': 'Експортувати як',
  'pickerView.sketch_library': 'Перетворити бібліотеку Sketch...',
  'pickerView.error.saveAsOrExport.default': 'Неприпустима назва файлу.',
  'pickerView.error.saveAsOrExport.invalidName': 'На жаль, ця назва містить неприпустимі символи.',
  'pickerView.error.saveAsOrExport.invalidEnd': 'Назва не може закінчуватися крапкою («.») або пробілом.',
  'pickerView.error.saveAsOrExport.invalidChar': 'Назва не може містити такі символи: {characters}',
  'pickerView.error.saveAsOrExport.charRestriction': 'Довжина імен не може перевищувати 200 символів.',
  'pickerView.error.saveAsOrExport.duplicateName': 'У вас тут уже є хмарний документ із таким ім’ям.',
  'pickerView.error.addALibrary.permission': 'У вас немає дозволу на доступ до цієї бібліотеки',
  'pickerViewFooter.button.add': 'Додати',
  'pickerViewFooter.button.cancel': 'Скасувати',
  'pickerViewFooter.button.copy': 'Скопіювати сюди',
  'pickerViewFooter.button.move': 'Перемістити сюди',
  'pickerViewFooter.button.moveToProject': 'Перемістити сюди',
  'pickerViewFooter.button.copyToProject': 'Скопіювати сюди',
  'pickerViewFooter.button.choose': 'Виберіть',
  'pickerViewFooter.button.save': 'Зберегти',
  'pickerViewFooter.button.switchToOSPicker': 'На вашому комп’ютері',
  'pickerViewFooter.button.save.offline': 'Потребує з’єднання з Інтернетом',
  'pickerViewFooter.button.saveAsCopy': 'Зберегти',
  'pickerViewFooter.button.export': 'Експорт',
  'pickerViewFooter.button.placeLinkOrEmbed': 'Помістити',
  'pickerViewFooter.button.import': 'Імпорт',
  'pickerViewFooter.checkbox.placeLink': "Зв'язаний",
  'pickerViewFooter.tooltip.placeLink': "Цей ресурс можна розмістити лише як прив'язаний.",
  'pickerViewFooter.tooltip.placeEmbed': 'Цей елемент можна розмістити лише як вбудований.',
  'pickerViewFooter.saveAs.format.label': 'Формат',
  'pickerViewFooter.button.selectProject': 'Зберегти',
  'onboardingCdp.title': 'Ви матимете більше можливостей, якщо збережете файл як хмарний документ',
  'onboardingCdp.tooltip': "У разі збереження файлу на комп'ютер ви не зможете використовувати хмарні функції.",
  'onboardingCdp.tooltip.link': 'Докладніше',
  'onboardingCdp.table.header.saveToCloud': 'Creative Cloud',
  'onboardingCdp.table.header.saveToLocal': 'На вашому комп’ютері...',
  'onboardingCdp.button.saveToCloud': 'Зберегти в Creative Cloud',
  'onboardingCdp.feature.offline': 'Доступ офлайн',
  'onboardingCdp.feature.syncing': 'Синхронізація з хмарою на всіх ваших пристроях',
  'onboardingCdp.feature.autosave': 'Автозбереження кожної зміни',
  'onboardingCdp.feature.versionHistory': 'Історія версій',
  'onboardingCdp.feature.inviteToEdit': 'Запросити для редагування',
  'onboardingCdp.button.saveToLocal': 'Збереження на комп’ютері',
  'onboardingCdp.checkbox.doNotShowAgain': 'Більше не показувати',
  'uap.title.place': 'Розмістити з Creative Cloud',
  'uap.title.import': 'Імпортувати з Creative Cloud',
  'uap.title.placeLinkOrEmbed': 'Розмістити з Creative Cloud',
  'uap.title.linkAssets': "Прив'язати з Creative Cloud",
  'uap.title.open': 'Відкрити з Creative Cloud',
  'uap.title.relink': "Прив'язати з Creative Cloud",
  'uap.title.saveAs': 'Зберегти в Creative Cloud',
  'uap.title.saveAsCopy': 'Зберегти в Creative Cloud',
  'uap.title.saveToFolder': 'Зберегти в Creative Cloud',
  'uap.title.export': 'Експортувати до Creative Cloud',
  'uap.title.copy': 'Копіювати до Creative Cloud',
  'uap.title.move': 'Перемістити в Creative Cloud',
  'uap.title.moveToProject': 'Перемістити в Creative Cloud',
  'uap.title.copyToProject': 'Копіювати до Creative Cloud',
  'uap.title.reference': 'Додати до Creative Cloud',
  'uap.title.selectProject': 'Зберегти в Creative Cloud',
  'move.toSpace.confirm.title': 'Історію версій буде видалено',
  'move.toSpace.confirm.message': 'Якщо перемістити цей файл, історію версій буде видалено. Якщо ви хочете зберегти свою історію версій, зробіть копію.'
};

/***/ }),

/***/ "i3FT":
/***/ (function(module, exports, __webpack_require__) {

"use strict";
 // Helper

function reverse(map) {
  const res = {};
  Object.keys(map).forEach(function (key) {
    // Convert key to integer if it is stringified
    if ((key | 0) == key) key = key | 0;
    const value = map[key];
    res[value] = key;
  });
  return res;
}

exports.tagClass = {
  0: 'universal',
  1: 'application',
  2: 'context',
  3: 'private'
};
exports.tagClassByName = reverse(exports.tagClass);
exports.tag = {
  0x00: 'end',
  0x01: 'bool',
  0x02: 'int',
  0x03: 'bitstr',
  0x04: 'octstr',
  0x05: 'null_',
  0x06: 'objid',
  0x07: 'objDesc',
  0x08: 'external',
  0x09: 'real',
  0x0a: 'enum',
  0x0b: 'embed',
  0x0c: 'utf8str',
  0x0d: 'relativeOid',
  0x10: 'seq',
  0x11: 'set',
  0x12: 'numstr',
  0x13: 'printstr',
  0x14: 't61str',
  0x15: 'videostr',
  0x16: 'ia5str',
  0x17: 'utctime',
  0x18: 'gentime',
  0x19: 'graphstr',
  0x1a: 'iso646str',
  0x1b: 'genstr',
  0x1c: 'unistr',
  0x1d: 'charstr',
  0x1e: 'bmpstr'
};
exports.tagByName = reverse(exports.tag);

/***/ }),

/***/ "i5UE":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var utils = __webpack_require__("w8CP");

var SHA512 = __webpack_require__("tSWc");

function SHA384() {
  if (!(this instanceof SHA384)) return new SHA384();
  SHA512.call(this);
  this.h = [0xcbbb9d5d, 0xc1059ed8, 0x629a292a, 0x367cd507, 0x9159015a, 0x3070dd17, 0x152fecd8, 0xf70e5939, 0x67332667, 0xffc00b31, 0x8eb44a87, 0x68581511, 0xdb0c2e0d, 0x64f98fa7, 0x47b5481d, 0xbefa4fa4];
}

utils.inherits(SHA384, SHA512);
module.exports = SHA384;
SHA384.blockSize = 1024;
SHA384.outSize = 384;
SHA384.hmacStrength = 192;
SHA384.padLength = 128;

SHA384.prototype._digest = function digest(enc) {
  if (enc === 'hex') return utils.toHex32(this.h.slice(0, 12), 'big');else return utils.split32(this.h.slice(0, 12), 'big');
};

/***/ }),

/***/ "i8i4":
/***/ (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 (false) {}

  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 (true) {
  // DCE check should happen before ReactDOM bundle executes so that
  // DevTools can report bad minification during injection.
  checkDCE();
  module.exports = __webpack_require__("yl30");
} else {}

/***/ }),

/***/ "iCc5":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


exports.__esModule = true;

exports.default = function (instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
};

/***/ }),

/***/ "iDDY":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("path", {
  d: "M14.7 27A12.293 12.293 0 0 1 34 16.893V11a1 1 0 0 0-1-1H2v21a1 1 0 0 0 1 1h12.769a12.24 12.24 0 0 1-1.069-5z"
}), React.createElement("path", {
  d: "M27 18.1a8.9 8.9 0 1 0 8.9 8.9 8.9 8.9 0 0 0-8.9-8.9zm5 9.4a.5.5 0 0 1-.5.5H28v3.5a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5V28h-3.5a.5.5 0 0 1-.5-.5v-1a.5.5 0 0 1 .5-.5H26v-3.5a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 .5.5V26h3.5a.5.5 0 0 1 .5.5zM16 8H2V5.5A1.5 1.5 0 0 1 3.5 4h7.672a2 2 0 0 1 1.414.586z"
}));

/***/ }),

/***/ "iKaH":
/***/ (function(module) {

module.exports = JSON.parse("{\"steps\":\"{currentStep}/{totalSteps}\"}");

/***/ }),

/***/ "iMIL":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/

var __importDefault = this && this.__importDefault || function (mod) {
  return mod && mod.__esModule ? mod : {
    "default": mod
  };
};

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.OpType = exports.DocumentState = exports.NotificationStatus = exports.NotificationType = exports.SyncSuspensionReason = exports.StorageSortByEnum = exports.SortOrderDirEnum = exports.SortByEnum = exports.AcplSearchMode = exports.CloudDocumentsClient = exports.ACPFetch = void 0;

var ACPFetch_1 = __importDefault(__webpack_require__("yVbG"));

exports.ACPFetch = ACPFetch_1.default;

var CloudDocumentsClient_1 = __importDefault(__webpack_require__("ewT/"));

exports.CloudDocumentsClient = CloudDocumentsClient_1.default;

var IGetDocumentsOptions_1 = __webpack_require__("TbOD");

Object.defineProperty(exports, "AcplSearchMode", {
  enumerable: true,
  get: function () {
    return IGetDocumentsOptions_1.AcplSearchMode;
  }
});
Object.defineProperty(exports, "SortByEnum", {
  enumerable: true,
  get: function () {
    return IGetDocumentsOptions_1.SortByEnum;
  }
});
Object.defineProperty(exports, "SortOrderDirEnum", {
  enumerable: true,
  get: function () {
    return IGetDocumentsOptions_1.SortOrderDirEnum;
  }
});

var StorageSortByEnum_1 = __importDefault(__webpack_require__("hwY+"));

exports.StorageSortByEnum = StorageSortByEnum_1.default;

var SyncSuspensionReason_1 = __importDefault(__webpack_require__("gqqD"));

exports.SyncSuspensionReason = SyncSuspensionReason_1.default;

var NotificationStatus_1 = __webpack_require__("ljP9");

Object.defineProperty(exports, "NotificationStatus", {
  enumerable: true,
  get: function () {
    return NotificationStatus_1.NotificationStatus;
  }
});
Object.defineProperty(exports, "NotificationType", {
  enumerable: true,
  get: function () {
    return NotificationStatus_1.NotificationType;
  }
});

var IDocumentElement_1 = __webpack_require__("SwKo");

Object.defineProperty(exports, "DocumentState", {
  enumerable: true,
  get: function () {
    return IDocumentElement_1.DocumentState;
  }
});

var OpType_1 = __importDefault(__webpack_require__("WEkX"));

exports.OpType = OpType_1.default;

/***/ }),

/***/ "iUdu":
/***/ (function(module, exports, __webpack_require__) {

var MODES = __webpack_require__("usKN");

var AuthCipher = __webpack_require__("gvAe");

var Buffer = __webpack_require__("hwdV").Buffer;

var StreamCipher = __webpack_require__("CfXC");

var Transform = __webpack_require__("ZDAU");

var aes = __webpack_require__("OfWw");

var ebtk = __webpack_require__("roQf");

var inherits = __webpack_require__("P7XM");

function Cipher(mode, key, iv) {
  Transform.call(this);
  this._cache = new Splitter();
  this._cipher = new aes.AES(key);
  this._prev = Buffer.from(iv);
  this._mode = mode;
  this._autopadding = true;
}

inherits(Cipher, Transform);

Cipher.prototype._update = function (data) {
  this._cache.add(data);

  var chunk;
  var thing;
  var out = [];

  while (chunk = this._cache.get()) {
    thing = this._mode.encrypt(this, chunk);
    out.push(thing);
  }

  return Buffer.concat(out);
};

var PADDING = Buffer.alloc(16, 0x10);

Cipher.prototype._final = function () {
  var chunk = this._cache.flush();

  if (this._autopadding) {
    chunk = this._mode.encrypt(this, chunk);

    this._cipher.scrub();

    return chunk;
  }

  if (!chunk.equals(PADDING)) {
    this._cipher.scrub();

    throw new Error('data not multiple of block length');
  }
};

Cipher.prototype.setAutoPadding = function (setTo) {
  this._autopadding = !!setTo;
  return this;
};

function Splitter() {
  this.cache = Buffer.allocUnsafe(0);
}

Splitter.prototype.add = function (data) {
  this.cache = Buffer.concat([this.cache, data]);
};

Splitter.prototype.get = function () {
  if (this.cache.length > 15) {
    var out = this.cache.slice(0, 16);
    this.cache = this.cache.slice(16);
    return out;
  }

  return null;
};

Splitter.prototype.flush = function () {
  var len = 16 - this.cache.length;
  var padBuff = Buffer.allocUnsafe(len);
  var i = -1;

  while (++i < len) {
    padBuff.writeUInt8(len, i);
  }

  return Buffer.concat([this.cache, padBuff]);
};

function createCipheriv(suite, password, iv) {
  var config = MODES[suite.toLowerCase()];
  if (!config) throw new TypeError('invalid suite type');
  if (typeof password === 'string') password = Buffer.from(password);
  if (password.length !== config.key / 8) throw new TypeError('invalid key length ' + password.length);
  if (typeof iv === 'string') iv = Buffer.from(iv);
  if (config.mode !== 'GCM' && iv.length !== config.iv) throw new TypeError('invalid iv length ' + iv.length);

  if (config.type === 'stream') {
    return new StreamCipher(config.module, password, iv);
  } else if (config.type === 'auth') {
    return new AuthCipher(config.module, password, iv);
  }

  return new Cipher(config.module, password, iv);
}

function createCipher(suite, password) {
  var config = MODES[suite.toLowerCase()];
  if (!config) throw new TypeError('invalid suite type');
  var keys = ebtk(password, false, config.key, config.iv);
  return createCipheriv(suite, keys.key, keys.iv);
}

exports.createCipheriv = createCipheriv;
exports.createCipher = createCipher;

/***/ }),

/***/ "iUn+":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("uoMj"),
      24: __webpack_require__("hvlN")
    }
  }));
};

WrappedIcon.displayName = 'Share';
exports.default = WrappedIcon;

/***/ }),

/***/ "iaGj":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

const _excluded = ["styles"];

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }

function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

var _default = _ref => {
  let {
    styles = {}
  } = _ref,
      props = _objectWithoutProperties(_ref, _excluded);

  return /*#__PURE__*/_react.default.createElement("svg", _extends({
    xmlns: "http://www.w3.org/2000/svg",
    width: "96",
    height: "96",
    viewBox: "0 0 96 96"
  }, props), /*#__PURE__*/_react.default.createElement("defs", null), /*#__PURE__*/_react.default.createElement("g", {
    id: "ICONS_96",
    "data-name": "ICONS 96"
  }, /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M67 79H29a3 3 0 0 1-3-3V20a3 3 0 0 1 3-3h23a1 1 0 0 1 0 2H29a1 1 0 0 0-1 1v56a1 1 0 0 0 1 1h38a1 1 0 0 0 1-1V35a1 1 0 0 1 2 0v41a3 3 0 0 1-3 3z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M69 32H58a3 3 0 0 1-3-3V18a1 1 0 0 1 1.707-.707l13 13A1 1 0 0 1 69 32zM57 20.414V29a1 1 0 0 0 1 1h8.586z"
  })));
};

exports.default = _default;

/***/ }),

/***/ "ieUK":
/***/ (function(module, exports) {



/***/ }),

/***/ "ij7w":
/***/ (function(module) {

module.exports = JSON.parse("{\"Clear search\":\"Tøm søk\"}");

/***/ }),

/***/ "io2S":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) {
  return typeof obj;
} : function (obj) {
  return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
};

var _createClass = function () {
  function defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i];
      descriptor.enumerable = descriptor.enumerable || false;
      descriptor.configurable = true;
      if ("value" in descriptor) descriptor.writable = true;
      Object.defineProperty(target, descriptor.key, descriptor);
    }
  }

  return function (Constructor, protoProps, staticProps) {
    if (protoProps) defineProperties(Constructor.prototype, protoProps);
    if (staticProps) defineProperties(Constructor, staticProps);
    return Constructor;
  };
}();
/**
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 */


var _isomorphicFetch = __webpack_require__("LpSC");

var _isomorphicFetch2 = _interopRequireDefault(_isomorphicFetch);

var _lodash = __webpack_require__("4Dm8");

var _lodash2 = _interopRequireDefault(_lodash);

var _lodash3 = __webpack_require__("qm8e");

var _lodash4 = _interopRequireDefault(_lodash3);

var _config = __webpack_require__("yKwB");

var _config2 = _interopRequireDefault(_config);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _classCallCheck(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}
/**
 * Data Access Object for all crud methods using fetch
 */


var DataAccessObject = function () {
  /**
   * Constructor for DAO.
   * @access private
   * @param {Object} params - request configuration paramaters.
   */
  function DataAccessObject() {
    var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};

    _classCallCheck(this, DataAccessObject);

    _initialiseProps.call(this);

    var apiKey = params.apiKey,
        _params$environment = params.environment,
        environment = _params$environment === undefined ? 'stage' : _params$environment,
        sharingPassword = params.sharingPassword,
        token = params.token;
    this._apiKey = apiKey;
    this._environment = environment;
    this._endpoint = _config2.default[environment]['INVITATIONS_SERVICE_ENDPOINT']; // x-sharing-password: required when accessing a password protected public resource. Base64 encoded.

    this._sharingPassword = sharingPassword;
    this._token = token;
  }
  /**
   * Set the api key
   * @param {String} apiKey - The new key.
   */


  _createClass(DataAccessObject, [{
    key: 'buildParamUrl',

    /**
     * buildParamUrl - recursive method for building a get url from a key value paired object.
     * @example params = { name : 'Bob', value : 'person', key : 'test' }
     * @param {Object} params - key values or get request
     * @param {String} currentPath - current string to append next key value pair
     * @returns {String} - name=Bob&value=person&key=test i.e. example param above
     */
    value: function buildParamUrl(params, currentPath) {
      var _this = this;

      var url = '';
      (0, _lodash4.default)(params, function (param, key) {
        if (param instanceof Array || (typeof param === 'undefined' ? 'undefined' : _typeof(param)) === 'object') {
          var path = currentPath ? currentPath + '[' + key + ']' : key;
          url = url ? url + '&' + _this.buildParamUrl(param, path) : _this.buildParamUrl(param, path);
        } else {
          var wKey = isNaN(parseInt(key, 10)) ? key : '';
          var wPath = currentPath ? currentPath + '[' + wKey + ']' : wKey;
          var encodeParam = encodeURIComponent(param);
          url = url ? url + '&' + wPath + '=' + encodeParam : wPath + '=' + encodeParam;
        }
      });
      return url;
    }
    /**
     * configures the request headers
     * @param {Object} headers - extra hader values
     * @param {Boolean} override - if the headers should be overriden without the defaults
     * @returns {Object} - returns the request headers
     */

  }, {
    key: 'getHeaders',
    value: function getHeaders(headers, override) {
      var apiKey = this.apiKey,
          token = this.token;
      var defaultHeaders = {
        'content-type': 'application/json',
        'x-api-key': apiKey
      };

      if (token) {
        defaultHeaders.authorization = typeof token === 'string' && token.indexOf('Bearer ') > -1 ? token : 'Bearer ' + token;
      }

      if (headers) {
        // just send the user headers with out defaults
        if (override) {
          return headers;
        } // spread in extra header values and override


        return _extends({}, defaultHeaders, headers);
      }

      return defaultHeaders;
    }
    /**
     * @method normalizeApiResponse - Normalizes an fetch response by parsing the request and returning it,
     * or catching the error and returning object with server code.
     * @param {Promise} - the fetch promise request
     * @returns {Promise} - parses the response.
     */

  }, {
    key: 'normalizeApiResponse',
    value: function normalizeApiResponse(promise) {
      var success = function success(response) {
        try {
          if (!response.ok) {
            throw response;
          }

          if (response.headers.get('content-type').indexOf('application/json') >= 0) {
            var results = response.json();
            var etag = response.headers.get('etag'); // If there is a etag in header add it to response body.  

            return !etag ? results : results.then(function (json) {
              return _extends({}, json, {
                etag: etag
              });
            });
          }

          return response;
        } catch (error) {
          return {
            error: error,
            statusCode: error.status,
            statusText: error.statusText
          };
        }
      };

      return promise.then(success, function (response) {
        return response;
      });
    }
    /**
     * @method deleteRequest
     * Sets delete request
     *
     * @param {Object} request
     *   @property {String} request.url - url to make the request to.
     *   @property {Object} request.params - request object to send as body or added to request url depending on request type
     *   @property {Object} request.headers - extra headers to send in the request or only headers to send if headersOverride is true.
     *   @property {Boolean} request.headersOverride - if the request should send the default headers or override and send user header.
     *   . If headers property is pass, and headersOverride is false, headers will be spread in with defaults 
     * @returns {Promise} - the request promise with the response parsed and normalized.
     */

    /**
    * @method getRequest
    * Sets get request
    *
     * @param {Object} request
     *   @property {String} request.url - url to make the request to.
     *   @property {Object} request.params - request object to send as body or added to request url depending on request type
     *   @property {Object} request.headers - extra headers to send in the request or only headers to send if headersOverride is true.
     *   @property {Boolean} request.headersOverride - if the request should send the default headers or override and send user header.
     *   . If headers property is pass, and headersOverride is false, headers will be spread in with defaults 
     * @returns {Promise} - the request promise with the response parsed and normalized.
    */

    /**
    * @method headRequest
    * Sets get request
    *
     * @param {Object} request
     *   @property {String} request.url - url to make the request to.
     *   @property {Object} request.params - request object to send as body or added to request url depending on request type
     *   @property {Object} request.headers - extra headers to send in the request or only headers to send if headersOverride is true.
     *   @property {Boolean} request.headersOverride - if the request should send the default headers or override and send user header.
     *   . If headers property is pass, and headersOverride is false, headers will be spread in with defaults 
     * @returns {Promise} - the request promise with the response parsed and normalized.
    */

    /**
     * @method optionsRequest
     * Sets options request
     *
     * @param {Object} request
     *   @property {String} request.url - url to make the request to.
     *   @property {Object} request.params - request object to send as body or added to request url depending on request type
     *   @property {Object} request.headers - extra headers to send in the request or only headers to send if headersOverride is true.
     *   @property {Boolean} request.headersOverride - if the request should send the default headers or override and send user header.
     *   . If headers property is pass, and headersOverride is false, headers will be spread in with defaults 
     * @returns {Promise} - the request promise with the response parsed and normalized.
     */

    /**
     * @method patchRequest
     * Sets patch request
     *
     * @param {Object} request
     *   @property {String} request.url - url to make the request to.
     *   @property {Object} request.params - request object to send as body or added to request url depending on request type
     *   @property {Object} request.headers - extra headers to send in the request or only headers to send if headersOverride is true.
     *   @property {Boolean} request.headersOverride - if the request should send the default headers or override and send user header.
     *   . If headers property is pass, and headersOverride is false, headers will be spread in with defaults 
     * @returns {Promise} - the request promise with the response parsed and normalized.
     */

    /**
     * @method postRequest
     * Sets post request
     *
     * @param {Object} request
     *   @property {String} request.url - url to make the request to.
     *   @property {Object} request.params - request object to send as body or added to request url depending on request type
     *   @property {Object} request.headers - extra headers to send in the request or only headers to send if headersOverride is true.
     *   @property {Boolean} request.headersOverride - if the request should send the default headers or override and send user header.
     *   . If headers property is pass, and headersOverride is false, headers will be spread in with defaults 
     * @returns {Promise} - the request promise with the response parsed and normalized.
     */

    /**
     * @method putRequest
     * Sets put request
     *
     * @param {Object} request
     *   @property {String} request.url - url to make the request to.
     *   @property {Object} request.params - request object to send as body or added to request url depending on request type
     *   @property {Object} request.headers - extra headers to send in the request or only headers to send if headersOverride is true.
     *   @property {Boolean} request.headersOverride - if the request should send the default headers or override and send user header.
     *   . If headers property is pass, and headersOverride is false, headers will be spread in with defaults 
     * @returns {Promise} - the request promise with the response parsed and normalized.
     */

  }, {
    key: 'apiKey',
    set: function set(apiKey) {
      this._apiKey = apiKey;
    }
    /**
     * Get the api key
     * @return {String} The current api key
     */
    ,
    get: function get() {
      return this._apiKey;
    }
    /**
     * Get the endpoint
     * @return {String} The current endpoint
     */

  }, {
    key: 'endpoint',
    get: function get() {
      return this._endpoint;
    }
    /**
     * Set the environment.
     * @param {String} environment - The new environment
     */
    ,
    set: function set(environment) {
      var _environment = this._environment;
      var env = environment || _environment;
      this._endpoint = _config2.default[env]['INVITATIONS_SERVICE_ENDPOINT'];
    }
    /**
     * Set the environment.
     * @param {String} environment - The new environment
     */

  }, {
    key: 'environment',
    set: function set(environment) {
      // If the value specified is not accepted, throw an error.
      if (!_config2.default[environment]) {
        throw new Error('Setting the environment to ' + environment + ' is not accepted. Acceptable values are ' + acceptedEnvironmentsString);
      } // Set the environment variable


      this._environment = environment;
      this._endpoint = _config2.default[environment]['INVITATIONS_SERVICE_ENDPOINT'];
    }
    /**
     * Get the environment
     * @return {String} The current environment
     */
    ,
    get: function get() {
      return this._environment;
    }
    /**
     * Set the authorization sharingPassword
     * @param {String} token - The new sharingPassword.
     */

  }, {
    key: 'sharingPassword',
    set: function set(password) {
      this._sharingPassword = password;
    }
    /**
     * Get the sharingPassword
     * @return {String} The current sharingPassword
     */
    ,
    get: function get() {
      return this._sharingPassword;
    }
    /**
     * Set the authorization token
     * @param {String} token - The new token.
     */

  }, {
    key: 'token',
    set: function set(token) {
      this._token = token;
    }
    /**
     * Get the token
     * @return {string} The current token
     * @example <caption>Get the token</caption>
     */
    ,
    get: function get() {
      return this._token;
    }
  }]);

  return DataAccessObject;
}();

var _initialiseProps = function _initialiseProps() {
  var _this2 = this;

  this.deleteRequest = function (_ref) {
    var _ref$url = _ref.url,
        url = _ref$url === undefined ? '' : _ref$url,
        _ref$params = _ref.params,
        params = _ref$params === undefined ? {} : _ref$params;
    var requestObj = {
      body: JSON.stringify(params),
      headers: _this2.getHeaders(),
      method: 'DELETE'
    };
    return _this2.normalizeApiResponse((0, _isomorphicFetch2.default)(url, requestObj));
  };

  this.getRequest = function (_ref2) {
    var _ref2$url = _ref2.url,
        url = _ref2$url === undefined ? '' : _ref2$url,
        _ref2$params = _ref2.params,
        params = _ref2$params === undefined ? {} : _ref2$params,
        headers = _ref2.headers,
        headersOverride = _ref2.headersOverride;
    var requestUrl = (0, _lodash2.default)(params) ? url + '?' + _this2.buildParamUrl(params) : url;
    var requestObj = {
      headers: _this2.getHeaders(headers, headersOverride),
      method: 'GET'
    };
    return _this2.normalizeApiResponse((0, _isomorphicFetch2.default)(requestUrl, requestObj));
  };

  this.headRequest = function (_ref3) {
    var _ref3$url = _ref3.url,
        url = _ref3$url === undefined ? '' : _ref3$url,
        _ref3$params = _ref3.params,
        params = _ref3$params === undefined ? {} : _ref3$params,
        headers = _ref3.headers,
        headersOverride = _ref3.headersOverride;
    var requestUrl = (0, _lodash2.default)(params) ? url + '?' + _this2.buildParamUrl(params) : url;
    var requestObj = {
      headers: _this2.getHeaders(headers, headersOverride),
      method: 'HEAD'
    };
    return _this2.normalizeApiResponse((0, _isomorphicFetch2.default)(requestUrl, requestObj));
  };

  this.optionsRequest = function (_ref4) {
    var _ref4$url = _ref4.url,
        url = _ref4$url === undefined ? '' : _ref4$url,
        _ref4$params = _ref4.params,
        params = _ref4$params === undefined ? {} : _ref4$params;
    var requestUrl = (0, _lodash2.default)(params) ? url + '?' + _this2.buildParamUrl(params) : url;
    var requestObj = {
      body: JSON.stringify(params),
      headers: headers || _this2.getHeaders(),
      method: 'OPTIONS'
    };
    return _this2.normalizeApiResponse((0, _isomorphicFetch2.default)(requestUrl, requestObj));
  };

  this.patchRequest = function (_ref5) {
    var _ref5$url = _ref5.url,
        url = _ref5$url === undefined ? '' : _ref5$url,
        _ref5$params = _ref5.params,
        params = _ref5$params === undefined ? {} : _ref5$params,
        headers = _ref5.headers;
    var patchObj = {
      body: JSON.stringify(params),
      headers: headers || _this2.getHeaders(),
      method: 'PATCH'
    };
    return _this2.normalizeApiResponse((0, _isomorphicFetch2.default)(url, patchObj));
  };

  this.postRequest = function (_ref6) {
    var _ref6$url = _ref6.url,
        url = _ref6$url === undefined ? '' : _ref6$url,
        _ref6$params = _ref6.params,
        params = _ref6$params === undefined ? {} : _ref6$params,
        headers = _ref6.headers;
    var requestObj = {
      body: JSON.stringify(params),
      headers: headers || _this2.getHeaders(),
      method: 'POST'
    };
    return _this2.normalizeApiResponse((0, _isomorphicFetch2.default)(url, requestObj));
  };

  this.putRequest = function (_ref7) {
    var _ref7$url = _ref7.url,
        url = _ref7$url === undefined ? '' : _ref7$url,
        _ref7$params = _ref7.params,
        params = _ref7$params === undefined ? {} : _ref7$params;
    var requestObj = {
      body: JSON.stringify(params),
      headers: _this2.getHeaders(),
      method: 'PUT'
    };
    return _this2.normalizeApiResponse((0, _isomorphicFetch2.default)(url, requestObj));
  };
};

exports.default = DataAccessObject;
module.exports = exports['default'];

/***/ }),

/***/ "iq4v":
/***/ (function(module, exports, __webpack_require__) {

__webpack_require__("Mqbl");

module.exports = __webpack_require__("WEpk").Object.keys;

/***/ }),

/***/ "itsj":
/***/ (function(module, exports) {

/**
 * Gets the value at `key`, unless `key` is "__proto__" or "constructor".
 *
 * @private
 * @param {Object} object The object to query.
 * @param {string} key The key of the property to get.
 * @returns {*} Returns the property value.
 */
function safeGet(object, key) {
  if (key === 'constructor' && typeof object[key] === 'function') {
    return;
  }

  if (key == '__proto__') {
    return;
  }

  return object[key];
}

module.exports = safeGet;

/***/ }),

/***/ "iuhU":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
function toVal(mix) {
  var k,
      y,
      str = '';

  if (typeof mix === 'string' || typeof mix === 'number') {
    str += mix;
  } else if (typeof mix === 'object') {
    if (Array.isArray(mix)) {
      for (k = 0; k < mix.length; k++) {
        if (mix[k]) {
          if (y = toVal(mix[k])) {
            str && (str += ' ');
            str += y;
          }
        }
      }
    } else {
      for (k in mix) {
        if (mix[k]) {
          str && (str += ' ');
          str += k;
        }
      }
    }
  }

  return str;
}

/* harmony default export */ __webpack_exports__["a"] = (function () {
  var i = 0,
      tmp,
      x,
      str = '';

  while (i < arguments.length) {
    if (tmp = arguments[i++]) {
      if (x = toVal(tmp)) {
        str && (str += ' ');
        str += x;
      }
    }
  }

  return str;
});

/***/ }),

/***/ "iv+e":
/***/ (function(module) {

module.exports = JSON.parse("{\"a11y.button.canvases\":\"{name}\",\"a11y.button.libraries\":\"{name}, kirjasto\",\"a11y.button.listGridToggle\":\"näytä vaihtopainike, {toggledView, select, grid {ruudukko} list {luettelo}}näkymä\",\"a11y.button.project\":\"{name}, projekti\",\"a11y.button.published\":\"{name}, {extension}\",\"a11y.button.selectFolder\":\"Valitse kansio\",\"a11y.button.working\":\"{name}, {extension}, muutettu {modified}\",\"a11y.strings.folder\":\"kansio\",\"header.action.newProject\":\"Uusi projekti\",\"header.action.newLibrary\":\"Uusi kirjasto\",\"header.action.browseAll\":\"Selaa kaikkea\",\"header.Name\":\"Nimi\",\"header.Size\":\"Koko\",\"header.Sharing\":\"Jäsenet\",\"header.Team\":\"Työtila\",\"header.DateModified\":\"Muokattu\",\"header.DateCreated\":\"Luotu\",\"header.Status\":\"Merkitty suosikiksi\",\"header.SortBy\":\"Lajitteluperuste\",\"header.sort.label\":\"Lajittele\",\"header.ChangeSortDirection\":\"Vaihda lajittelusuunnaksi\",\"header.SortBy.asc\":\"Nouseva\",\"header.SortBy.desc\":\"Laskeva\",\"header.selectAll\":\"Valitse kaikki\",\"header.reverseOrder\":\"Käänteinen järjestys\",\"header.showCompatible\":\"Yhteensopivat tiedostot\",\"header.showEverything\":\"Kaikki\",\"product.illustrator.web\":\"Illustrator Web (Beta)\",\"product.photoshop.web\":\"Photoshop Web (Beta)\",\"status.followed\":\"Kyllä\",\"status.unfollowed\":\"Ei\",\"team.usm.defaultName\":\"Työtila {name}\",\"space.access.private.description\":\"Vain kutsutut ihmiset\",\"space.access.private.tooltip\":\"Vain kutsutut ihmiset voivat käyttää tätä projektia\",\"space.access.team.description\":\"Kaikki työtilan jäsenet ja kutsutut\",\"space.access.team.tooltip\":\"Kaikki työryhmän {team} jäsenet voivat käyttää tätä projektia.\",\"yourProjects.title\":\"Projektit\",\"yourProjects.librariesTab.title\":\"Työryhmäkirjastot\",\"yourProjects.empty.spaces\":\"Luo lisää projekteja ja kutsu muita työtilan jäseniä\",\"browseAll.title\":\"Selaa kaikkea\",\"yourFiles.title\":\"Omat dokumentit\",\"yourLibraries.title\":\"Kirjastot\",\"yourLibraries.metadata\":\"KIRJASTO\",\"canvas.metadata\":\"PIIRTOALUE\",\"projectInfo.action.view\":\"Näytä tiedot\",\"projectInfo.action.edit\":\"Muokkaa projektia\",\"projectInfo.empty.cta\":\"Luo uusi projekti\",\"projectInfo.empty.description\":\"Creative Cloud -projektit tekevät tietojen etsimisestä, organisoinnista, jakamisesta ja päätöksenteosta yksinkertaisempaa keskittämällä kaikki luovaan työskentelyyn tarvittavat projektit yhteen paikkaan.\",\"projectInfo.empty.heading\":\"Luo enemmän, hae vähemmän.\",\"projectInfo.error.description\":\"Yritä myöhemmin uudelleen\",\"projectInfo.error.heading\":\"Osiota {section} ei voi ladata.\",\"projectInfo.new.error.title\":\"Uutta projektia ei voi luoda\",\"projectInfo.new.noPermission.description\":\"Saat lisätietoja järjestelmänvalvojalta.\",\"projectInfo.title.create\":\"UUSI PROJEKTI\",\"projectInfo.title.edit\":\"MUOKKAA PROJEKTIA\",\"projectInfo.title.view\":\"PROJEKTIN TIEDOT\",\"projectInfo.access.title\":\"Kuka voi muokata tätä projektia?\",\"projectInfo.access.warning\":\"Jotkin jäsenet voivat menettää projektin käyttöoikeudet, jos muutat käyttöoikeudeksi ”Vain kutsutut ihmiset”.\",\"projectInfo.organization\":\"Organisaatio\",\"projectInfo.organization.placeholder\":\"Valitse yksi\",\"projectInfo.description\":\"Kuvaus\",\"textField.invalid.characters\":\"Nimissä ei voi olla seuraavia merkkejä: \\\\\\\\ / * ? \\\" | : < >\",\"textField.invalid.duplicateName\":\"Tässä organisaatiossa on jo tämän niminen projekti.\",\"textField.invalid.duplicateName.space\":\"Tässä työtilassa on jo tämän niminen projekti.\",\"textField.invalid.duplicateName.team\":\"Tässä organisaatiossa on jo tämän niminen työtila.\",\"textField.invalid.empty\":\"Nimi ei saa olla tyhjä.\",\"textField.invalid.generic\":\"Virheellinen nimi\",\"textField.invalid.length\":\"Nimet voivat olla enintään 50 merkkiä pitkiä.\",\"textField.invalid.nameEndsWithDot\":\"Nimien lopussa ei voi olla pistettä.\",\"textField.invalid.offline\":\"Muodosta yhteys uudelleen käyttääksesi kaikkia työtilojasi ja projektejasi. Siirry Aloitus-sivulle nähdäksesi projektiesi paikalliset tiedostot.\",\"projectInfo.textField.placeholder\":\"Anna tälle projektille nimi\",\"projectInfo.team\":\"Työtila\",\"projectInfo.description.placeholder\":\"Esimerkki: asiakasprojektin tiedostot, palaute ja viiteaineisto\",\"projectInfo.description.invalidLength\":\"Kuvaus voi olla enintään 1 000 merkkiä pitkä.\",\"projectInfo.toast.success.new\":\"Projektin luonti onnistui: {name}.\",\"projectInfo.toast.success.update\":\"Projektin päivitys onnistui: {name}\",\"projectInfo.toast.error.generic\":\"Projektin {create, select, true {luonti} other {muokkaus}} epäonnistui.\",\"team.empty.heading\":\"Projektien avulla kaikki pysyvät ajan tasalla\",\"team.empty.description\":\"Oletko kyllästynyt siihen, että sinut lukitaan tiedostoista ulos, joudut selvittämään versioista johtuvia sekaannuksia ja lähettämään näyttökuvia tarkistettaviksi? Tilojen avulla voit järjestellä projekteja, kerätä resursseja ja palautetta sekä jakaa tiedostoja, joita koko työryhmän on käsiteltävä.\",\"team.empty.createSpace\":\"Luo projekti\",\"team.empty.inviteMembers\":\"Kutsu jäseniä\",\"team.empty.startHere\":\"ALOITA TÄÄLTÄ\",\"team.create.success\":\"Työtila luotiin onnistuneesti: {name}\",\"team.create.error.generic\":\"Työtilan luonti epäonnistui\",\"team.edit.success\":\"Työtila päivitettiin onnistuneesti: {name}\",\"team.edit.error.generic\":\"Työtilan päivitys epäonnistui\",\"team.archive.success\":\"{count, plural, =1 {# työtila} other {# työtilaa}} poistettiin\",\"team.archive.error.generic\":\"{count, plural, =1 {# työtilaa} other {# työtilaa}} ei voi poistaa\",\"team.error.generic\":\"Jokin meni valitettavasti vikaan.\",\"project1Up.action.projectInfo\":\"Näytä tiedot\",\"project1up.region.space.ariaLabel\":\"{projectName}, projekti\",\"project1Up.section.libraries\":\"Kirjastot\",\"project1Up.section.libraries.empty.cta\":\"Lisää Creative Cloud -kirjastot\",\"project1Up.section.libraries.empty.description\":\"Lisää linkkejä kirjastoihin, joita tarvitset työhösi.\",\"project1Up.section.libraries.empty.heading\":\"Keskitä kaikki yhteen paikkaan\",\"project1Up.section.filter\":\"Suodatin\",\"project1Up.section.filter.label\":\"Suodata avainsanan mukaan\",\"project1Up.section.filter.enterKeyword\":\"Anna avainsana\",\"project1Up.section.filterFiles.empty.heading\":\"Valittua suodatinta vastaavia tuloksia ei ole.\",\"project1Up.section.compatibleFiles.empty.heading\":\"Tässä projektissa ei ole yhteensopivia tiedostoja\",\"project1Up.section.workingFiles\":\"Työtiedostot\",\"project1Up.section.workingFiles.empty.addFiles\":\"Lisää tiedostoja\",\"project1Up.section.workingFiles.empty.createFolder\":\"Luo uusi kansio\",\"project1Up.section.workingFiles.empty.description\":\"Iteroi projekteja ja tee yhteistyötä muiden jäsenten kanssa.\",\"project1Up.section.workingFiles.empty.heading\":\"Käsittele mitä tahansa haluamaasi aikaan\",\"project1Up.section.published\":\"Julkaistu\",\"project1Up.section.published.empty.cta\":\"Linkkien julkaiseminen\",\"project1Up.section.published.empty.description\":\"Lähetä vain katseluoikeudet sisältäviä linkkejä, jotta saat palautetta oikeilta ihmisiltä oikeaan aikaan.\",\"project1Up.section.published.empty.description.readonly\":\"Kun joku tarvitsee palautetta tai tarkistuksen, hän lisää linkin tänne.\",\"project1Up.section.published.empty.heading\":\"Jaa tarkoituksella\",\"project1Up.section.published.empty.heading.readonly\":\"Tässä projektissa ei ole julkaistuja kohteita\",\"project1Up.section.canvases\":\"Piirtoalueet\",\"project1Up.section.canvases.empty.cta\":\"Lisää Creative Cloud -piirtoalueita\",\"project1Up.section.canvases.empty.description\":\"Lisää linkkejä työhösi tarvittaviin resursseihin.\",\"project1Up.section.canvases.empty.heading\":\"Keskitä kaikki yhteen paikkaan\",\"project1Up.section.files\":\"Tiedostot\",\"project1Up.error.accessDenied.heading\":\"Sinulla ei ole käyttöoikeuksia.\",\"project1Up.error.accessDenied.description\":\"Sinut poistettiin tästä projektista. Ota yhteyttä järjestelmänvalvojaan, jos tässä on mielestäsi tapahtunut virhe.\",\"project1Up.header.seeAll\":\"Näytä kaikki\",\"project1up.subheader.selected\":\"{count, plural, =1 {# kohde} other {# kohdetta}} valittu\",\"project1up.subheader.emptyDescription\":\"Lisää projektiisi kuvaus\",\"project1up.subheader.canvases.title\":\"Piirtoalueet\",\"project1up.subheader.canvases.subtitle\":\"TEHTÄVÄ: PIIRTOALUEET, ALAOTSIKKO\",\"project1up.subheader.libraries.title\":\"Kirjastot\",\"project1up.subheader.libraries.subtitle\":\"Jäsenet voivat lisätä linkkejä Creative Cloud -kirjastoihin täällä.\",\"project1up.subheader.working.title\":\"Työtiedostot\",\"project1up.subheader.working.subtitle\":\"Tämän projektin jäsenet voivat muokata näitä tiedostoja.\",\"project1up.subheader.output.title\":\"Julkaistu\",\"project1up.subheader.output.subtitle\":\"{contributor, select, true {Jaa työstä vain luku -muotoiset versiot projektin ulkopuolisten henkilöiden kanssa.} other {Tarkastele ja kommentoi näitä Vain luku -muotoisia kohteita}}\",\"project.subtitle\":\"PROJEKTI\",\"project.countContributors\":\"{count, plural, =1 {# jäsen} other {# jäsentä}}\",\"project.versionError.reload.description\":\"Yritä päivittää selaimesi.\",\"project.versionError.reload.title\":\"Projektia ei voi käyttää\",\"project.versionError.update.description\":\"Et voi käyttää projektia ennen kuin päivität sovelluksen.\",\"project.versionError.update.title\":\"Päivitä {appName} avausta varten\",\"project.alreadyDiscarded.title\":\"Tämä projekti poistettiin\",\"project.alreadyDiscarded.description\":\"Ota yhteyttä järjestelmänvalvojaan, jos tässä on mielestäsi tapahtunut virhe, tai selaa muuta sisältöä.\",\"project.deleted.title\":\"Tämä projekti poistettiin lopullisesti\",\"project.deleted.description\":\"Et voi käyttää tätä projektia, koska se ei ole enää käytettävissä.\",\"project.metadataError.backLabel\":\"Takaisin projekteihin\",\"project.metadataError.description\":\"Emme löytäneet etsimääsi projektia tai sinulla ei ole sen käyttöoikeutta.\",\"project.metadataError.title\":\"Jokin meni valitettavasti vikaan.\",\"folder.subtitle\":\"KANSIO\",\"libraries.toast.add.start\":\"Lisätään {count, plural, =1 {# kirjasto} other {# kirjastoa}}\",\"libraries.toast.add.success\":\"{count, plural, =1 {# kirjasto} other {# kirjastoa}} lisätty\",\"libraries.toast.add.error\":\"{count, plural, =1 {# kirjaston} other {# kirjaston}} lisääminen epäonnistui. Yritä uudelleen.\",\"libraries.toast.add.duplicate\":\"Tämä kirjasto on jo olemassa.\",\"libraries.toast.add.onlyDuplicates\":\"{count, plural, =1 {# kirjaston lisääminen epäonnistui, sillä kirjasto on jo olemassa} other {# kirjaston lisääminen epäonnistui, sillä kirjastot ovat jo olemassa}}.\",\"libraries.toast.delete.success\":\"{count, plural, =1 {# kirjaston} other {# kirjaston}} poistaminen onnistui.\",\"libraries.toast.delete.error\":\"{count, plural, =1 {# kirjaston} other {# kirjaston}} poistaminen epäonnistui.\",\"libraries.toast.follow.inProgress\":\"Seurataan {count, plural, =1 {# kirjastoa} other {# kirjastoa}}\",\"libraries.toast.follow.success\":\"Seurattu {count, plural, =1 {# kirjastoa} other {# kirjastoa}}\",\"libraries.toast.follow.error\":\"{count, plural, =1 {# kirjaston} other {# kirjaston}} seuraaminen epäonnistui.\",\"libraries.toast.unfollow.inProgress\":\"{count, plural, =1 {# kirjaston} other {# kirjaston}} seuranta lopetetaan\",\"libraries.toast.unfollow.success\":\"{count, plural, =1 {# kirjaston} other {# kirjaston}} seuranta lopetettu\",\"libraries.toast.unfollow.error\":\"{count, plural, =1 {# kirjaston} other {# kirjaston}} seurannan lopettaminen epäonnistui.\",\"libraries.modal.empty.heading\":\"Kirjastoja ei ole.\",\"libraries.modal.empty.description\":\"Organisaatiosi ei ole jakanut kirjastoja.\",\"libraries.modal.error.limitExceeded\":\"Kirjastoa ei voi lisätä.\",\"libraries.modal.error.limitExceeded.detail\":\"Voit lisätä projektiin enintään 100 kirjastoa. Poista joitakin kirjastoja, jos haluat lisätä muita kirjastoja.\",\"libraries.brokenResources\":\"Joitakin kirjastoja ei näytetä, koska sinulla ei ole oikeutta niiden käyttöön. Saat lisätietoja ottamalla yhteyttä muihin jäseniin.\",\"copy.start\":\"Kopioidaan {count, plural, =1 {# kohde} other {# kohdetta}}.\",\"copy.failure\":\"{count, plural, =1 {# kohdetta} other {# kohdetta}} ei voi kopioida.\",\"copy.failure.partial\":\"Joitakin kohteita ei voi kopioida.\",\"copy.success\":\"{count, plural, =1 {# kohde} other {# kohdetta}} on kopioitu.\",\"copy.conflictSuffix\":\"kopio\",\"move.start\":\"Siirretään {count, plural, =1 {# kohde} other {# kohdetta}}.\",\"move.failure\":\"{count, plural, =1 {# kohdetta} other {# kohdetta}} ei voi siirtää.\",\"move.failure.partial\":\"Joitakin kohteita ei voi siirtää.\",\"move.success\":\"{count, plural, =1 {# kohde} other {# kohdetta}} on siirretty.\",\"upload.start\":\"Lähetetään {count, plural, =1 {# kohde} other {# kohdetta}}.\",\"upload.failure\":\"{count, plural, =1 {# kohdetta} other {# kohdetta}} ei voi lähettää.\",\"upload.failure.partial\":\"Joitakin kohteita ei voi lähettää.\",\"upload.failure.snapshot\":\"Tätä kohdetta ei tueta.\",\"upload.success\":\"{count, plural, =1 {# kohde} other {# kohdetta}} lähetetty\",\"download.start\":\"Ladataan {count, plural, =1 {# kohde} other {# kohdetta}}.\",\"download.failure\":\"{count, plural, =1 {# kohdetta} other {# kohdetta}} ei voi ladata.\",\"download.failure.partial\":\"Joitakin kohteita ei voi ladata.\",\"download.success\":\"{count, plural, =1 {# kohde} other {# kohdetta}} ladattu\",\"delete.failure\":\"{count, plural, =1 {# kohdetta} other {# kohdetta}} ei voi poistaa.\",\"delete.failure.partial\":\"Joitakin kohteita ei voi poistaa.\",\"delete.success\":\"{count, plural, =1 {# kohde} other {# kohdetta}} on poistettu.\",\"jobs.failure\":\"{count, plural, =1 {# kohde} other {# kohdetta}} epäonnistui\",\"jobs.inProgress\":\"Käsitellään...\",\"jobs.success\":\"{count, plural, =1 {# kohde} other {# kohdetta}} suoritettu\",\"restore.failure\":\"{count, plural, =1 {# kohdetta} other {# kohdetta}} ei voi palauttaa.\",\"restore.failure.partial\":\"Joitakin kohteita ei voi palauttaa.\",\"restore.success\":\"{count, plural, =1 {# kohde} other {# kohdetta}} on palautettu.\",\"rename.start\":\"Nimetään uudelleen\",\"rename.success\":\"{count, plural, =1 {# kohde} other {# kohdetta}} nimetty uudelleen\",\"rename.failure\":\"Palvelinvirhe, kohteen uudelleennimeäminen epäonnistui.\",\"rename.failure.conflict\":\"Sinulla on jo tämänniminen kohde.\",\"rename.offline.heading\":\"Ei voi nimetä uudelleen\",\"rename.offline\":\"Olet offline-tilassa, eikä kohdetta voi nimetä uudelleen. Palaa online-tilaan tämän toiminnon suorittamista varten.\",\"bookmark.follow.error\":\"Tätä projektia ei voi lisätä suosikkeihin\",\"bookmark.unfollow.error\":\"Tätä projektia ei voi poistaa suosikeista\",\"bookmark.follow.success\":\"Projektin {projectName} lisääminen suosikkeihin onnistui.\",\"bookmark.unfollow.success\":\"Projektin {projectName} poistaminen suosikeista onnistui.\",\"bookmark.bulk.follow.success\":\"{count, plural, =1 {# kohteen} other {# kohteen}} lisääminen suosikiksi onnistui.\",\"bookmark.bulk.follow.partial\":\"Joitakin kohteita ei voi lisätä suosikiksi.\",\"bookmark.bulk.follow.error\":\"{count, plural, =1 {# kohdetta} other {# kohdetta}} ei voi lisätä suosikiksi.\",\"bookmark.bulk.unfollow.success\":\"{count, plural, =1 {# kohteen} other {# kohteen}} poistaminen suosikeista onnistui.\",\"bookmark.bulk.unfollow.partial\":\"Joitakin kohteita ei voi poistaa suosikeista.\",\"bookmark.bulk.unfollow.error\":\"{count, plural, =1 {# kohdetta} other {# kohdetta}} ei voi poistaa suosikeista.\",\"copyLink.success\":\"Linkki kopioitu leikepöydälle\",\"copyLink.failure\":\"Linkkiä ei voi kopioida.\",\"starterUser.project1upNavigation\":\"Aloitussopimuksesi ei sisällä dokumenttien avaamista projekteissa\",\"starterUser.project1upNavigationCDPSave\":\"Aloitussopimuksesi ei sisällä dokumenttien tallentamista projekteihin\",\"invite.failure\":\"Kutsujen lähettäminen epäonnistui. Yritä uudelleen.\",\"accessibility.backButton\":\"Siirry taaksepäin\",\"button.role\":\"Painike\",\"button.actions\":\"Toiminnot\",\"button.add\":\"Lisää\",\"button.addFiles\":\"Lisää tiedostoja\",\"button.addLibrary\":\"Lisää kirjasto\",\"button.createDocument\":\"Uusi {appName}-tiedosto\",\"button.library\":\"Kirjasto\",\"button.back\":\"Takaisin\",\"button.browse\":\"Selaa kaikkea\",\"button.cancel\":\"Peruuta\",\"button.okay\":\"Selvä\",\"button.canvas\":\"Piirtoalue\",\"button.addCanvas\":\"Uusi piirtoalue\",\"button.changeDefaultApp\":\"Vaihda oletussovellus...\",\"button.close\":\"Sulje\",\"button.continue\":\"Jatka\",\"button.copy\":\"Kopioi kohteeseen...\",\"button.copyLink\":\"Kopioi linkki\",\"button.create\":\"Luo\",\"button.createNewFolder\":\"Luo uusi kansio\",\"button.newFile\":\"Uusi tiedosto\",\"button.newFolder\":\"Uusi kansio\",\"button.delete\":\"Poista\",\"button.deleteResource\":\"Poista\",\"button.done\":\"Valmis\",\"button.download\":\"Lataa\",\"button.favorite\":\"Lisää suosikkeihin\",\"button.follow\":\"Seuraa\",\"button.invite\":\"Kutsu\",\"button.inviteLabel\":\"Kutsu ihmisiä\",\"button.leave\":\"Poistu\",\"button.leaveProject\":\"Poistu työtilasta\",\"button.move\":\"Siirrä kohteeseen...\",\"button.next\":\"Seuraava\",\"button.ok\":\"OK\",\"button.open\":\"Avaa\",\"button.openWith\":\"Avaa sovelluksessa\",\"button.open.appName\":\"{appName} {isDefault, select, true {(Oletus)} other {}}\",\"button.redo\":\"Yritä uudelleen\",\"button.reload\":\"Lataa uudelleen\",\"button.rename\":\"Nimeä uudelleen\",\"button.restore\":\"Palauta\",\"button.retry\":\"Yritä uudelleen\",\"button.save\":\"Tallenna\",\"button.select\":\"Valitse\",\"button.share\":\"Jaa\",\"button.skipTour\":\"Ohita esittely\",\"button.undo\":\"Kumoa\",\"button.unfavorite\":\"Poista suosikeista\",\"button.unfollow\":\"Lopeta seuranta\",\"button.update\":\"Päivitä\",\"button.upgrade\":\"Päivitä\",\"button.view\":\"Näytä kaikki\",\"button.viewProject\":\"Näytä projekti\",\"button.viewTarget\":\"Näytä\",\"button.createWeblink\":\"Lisää verkkolinkki\",\"button.leaveTeam\":\"Poistu työtilasta\",\"button.renameTeam\":\"Nimeä työtila uudelleen\",\"button.editTeam\":\"Muokkaa työtilan tietoja\",\"button.archiveTeam\":\"Poista työtila\",\"button.upload\":\"Lähetä tiedostot\",\"button.goToDeleted\":\"Näytä poistetuissa\",\"button.viewEverything\":\"Näytä kaikki\",\"button.viewInWeb\":\"Näytä verkossa\",\"abbreviations.fileSize.byte\":\"t\",\"abbreviations.fileSize.kilobyte\":\"kt\",\"abbreviations.fileSize.megabyte\":\"Mt\",\"abbreviations.fileSize.gigabyte\":\"Gt\",\"abbreviations.fileSize.terabyte\":\"Tt\",\"statusIcon.conflicted\":\"Synkronoinnin ristiriita\",\"statusIcon.onlineOnly\":\"Vain online-käyttö\",\"statusIcon.availableOffline\":\"Käytettävissä offline-tilassa\",\"statusIcon.syncing\":\"Synkronoidaan...\",\"statusIcon.waitingToSync\":\"Odotetaan synkronointia\",\"statusMessage.offline.description\":\"Muodosta yhteys uudelleen käyttääksesi kaikkia työtilojasi ja projektejasi. Siirry Aloitus-sivulle nähdäksesi projektiesi paikalliset tiedostot.\",\"statusMessage.offline.heading\":\"Yhteys on katkaistu.\",\"statusMessage.offline.toast\":\"Yhteys on katkaistu, joten jotkin ominaisuudet ja tiedostot eivät ehkä ole käytettävissä.\",\"toggle.listView\":\"Luettelonäyttö\",\"toggle.gridView\":\"Miniatyyrinäyttö\",\"color.fuchsia\":\"Fuksianpunainen\",\"color.indigo\":\"Indigonsininen\",\"color.celery\":\"Selleri\",\"color.magenta\":\"Magenta\",\"color.yellow\":\"Keltainen\",\"color.seafoam\":\"Merenvaahto\",\"color.chartreuse\":\"Keltaisenvihreä\",\"color.purple\":\"Purppura\",\"color.blue\":\"Sininen\",\"color.red\":\"Punainen\",\"color.orange\":\"Oranssi\",\"color.green\":\"Vihreä\",\"color.label\":\"Projektin väri\",\"tooltip.offline.general\":\"Siirry online-tilaan tämän toiminnon suorittamista varten\",\"tooltip.moreFaces\":\"+ {number} lisää\",\"action.leave.space.success\":\"Poistuit {count, plural, =1 {# projektista} other {# projektista}}.\",\"action.leave.prototype.success\":\"{count, plural, =1 {# prototyypin} other {# prototyypin}} käyttöoikeudet on poistettu.\",\"action.leave.file.success\":\"{count, plural, =1 {# tiedoston} other {# tiedoston}} käyttöoikeudet on poistettu.\",\"action.leave.canvas.success\":\"{count, plural, =1 {# piirtoalueen} other {# piirtoalueen}} käyttöoikeudet on poistettu.\",\"action.leave.team.success\":\"Poistuit yhdestä työtilasta\",\"action.leave.space.error\":\"Tästä projektista ei voi poistua\",\"action.leave.prototype.error\":\"Tästä prototyypistä ei voi poistua.\",\"action.leave.file.error\":\"Tästä tiedostosta ei voi poistua.\",\"action.leave.team.error\":\"Tästä työtilasta ei voi poistua\",\"action.leave.canvas.error\":\"Tältä piirtoalueelta ei voi poistua.\",\"action.leave.space.partial.error\":\"Kaikista projekteista ei voi poistua.\",\"action.leave.prototype.partial.error\":\"Kaikista prototyypeistä ei voi poistua.\",\"action.leave.file.partial.error\":\"Kaikista tiedostoista ei voi poistua.\",\"action.leave.canvas.partial.error\":\"Kaikilta piirtoalueilta ei voi poistua.\",\"action.leave.error.onlyContributor\":\"Olet ainoa jäsen. Lisää toinen jäsen, ennen kuin poistut.\",\"action.leave.error.addressBookGroupMember\":\"Poistu ryhmästä ja yritä uudelleen.\",\"action.leave.error.admin\":\"Et voi poistua, sillä olet järjestelmänvalvoja.\",\"action.leave.error.generic\":\"Ei voi poistua, sillä jokin meni vikaan.\",\"action.reportAbuse\":\"Ilmoita väärinkäytöstä\",\"action.reportAbuse.required\":\"Pakollinen\",\"action.reportAbuse.titleText\":\"Jos tämä Creative Cloudin sisältö rikkoo mielestäsi Adoben käyttöehtoja, voit tehdä sisällöstä ilmoituksen täyttämällä tämän lyhyen lomakkeen.\",\"action.reportAbuse.emailInput\":\"Sähköpostiosoitteesi\",\"action.reportAbuse.nameInput\":\"Nimesi\",\"action.reportAbuse.radioButtonText\":\"Miksi teet ilmoituksen tästä sisällöstä?\",\"action.reportAbuse.defamation\":\"Herjaus\",\"action.reportAbuse.hate\":\"Rasistinen tai vihaa lietsova sisältö\",\"action.reportAbuse.trademark\":\"Tavaramerkkiloukkaus\",\"action.reportAbuse.pornography\":\"Seksuaalinen sisältö\",\"action.reportAbuse.vulgar\":\"Loukkaava sisältö\",\"action.reportAbuse.other\":\"Muu\",\"action.reportAbuse.inappropriate\":\"Asiaton\",\"action.reportAbuse.age\":\"Ikä väärin\",\"action.reportAbuse.gender\":\"Sukupuoli väärin\",\"action.reportAbuse.textAreaTitle\":\"Kerro huolenaiheistasi\",\"action.reportAbuse.describeConcern\":\"Kuvaile ongelma\",\"action.reportAbuse.success\":\"Väärinkäytöstä ilmoittaminen onnistui.\",\"action.reportAbuse.failure\":\"Väärinkäytöstä ilmoittaminen epäonnistui\",\"action.menu.label\":\"Toimintovalikko\",\"action.label\":\"Makro\",\"dialog.genericError.description\":\"Jokin meni valitettavasti vikaan.\",\"dialog.genericError.title\":\"Odottamaton virhe\",\"dialog.leave.space.title\":\"Jätä {count, plural, =1 {{name}} other {projektia}}\",\"dialog.leave.prototype.title\":\"Poistu {count, plural, =1 {tästä prototyypistä} other {prototyypeistä}}.\",\"dialog.leave.file.title\":\"Poistu {count, plural, =1 {tästä tiedostosta} other {tiedostoista}}\",\"dialog.leave.canvas.title\":\"Poistu {count, plural, =1 {tältä piirtoalueelta} other {piirtoalueilta}}.\",\"dialog.leave.team.title\":\"Oletko sanomassa hyvästit?\",\"dialog.leave.team.detail\":\"Et voi kumota tätä toimintoa, jos poistat itsesi. Ota yhteyttä järjestelmänvalvojaan, jos haluat, että sinut lisätään takaisin tähän työtilaan.\",\"dialog.leave.space.detail\":\"Menetät oikeutesi käyttää tässä projektissa olevia kohteita, joita et omista. Projektista {projectName} poistumista ei voi kumota.\",\"dialog.leave.prototype.detail\":\"Et voi käyttää tätä uudelleen ilman toista kutsua.\",\"dialog.leave.file.detail\":\"Et voi käyttää tätä uudelleen ilman toista kutsua.\",\"dialog.leave.canvas.detail\":\"Et voi käyttää tätä uudelleen ilman toista kutsua.\",\"dialog.leave.detail\":\"{type, select, space {Menetät oikeutesi sellaisten kohteiden käyttöön, jotka ovat {count, plural, =1 {tässä projektissa} other {näissä projekteissa}}. Poistumista {count, plural, =1 {projektista {name}} other {näistä projekteista}} ei voi kumota.} other {{count, plural, =1 {Tätä projektia} other {Näitä projekteja}} ei voi käyttää uudelleen ilman toista kutsua{count, plural, =1 {.} other {:}}}}\",\"dialog.deleteFailed.title\":\"Kaikkia kohteita ei voi poistaa.\",\"dialog.deleteWarning.description\":\"{type, select, spaces {Tämä toiminto poistaa näiden projektien kaikkien jäsenten sisällöt:} other {Tämä toiminto poistaa kaikkien tämän projektin kaikkien jäsenten seuraavat sisällöt:}}\",\"dialog.deleteWarning.title\":\"{type, select, space {Poista {count} {count, plural, =1 {projekti} other {projektit}}} other {Poista {count} {count, plural, =1 {kohde} other {kohteet}}}}\",\"dialog.deleteFailed.description.unauthorized\":\"Poistaminen epäonnistui, koska sinut poistettiin projektista:\",\"dialog.deleteFailed.description.alreadyDeleted\":\"Ei voi poistaa, koska joku muu on jo poistanut tämän kohteen:\",\"dialog.deleteFailed.description.unknown\":\"Ei voi poistaa, koska jokin meni vikaan:\",\"dialog.cantCopyAllItems\":\"Kaikkia kohteita ei voi kopioida.\",\"dialog.cantCopyBecauseSomethingWentWrong\":\"Ei voi kopioida, koska jokin meni vikaan:\",\"dialog.cantCopyBecauseYouWereSignedOut\":\"Ei voi kopioida, koska sinut kirjattiin ulos:\",\"dialog.cantCopyBecauseYouWereRemoved\":\"Kopiointi epäonnistui, koska sinut poistettiin tästä projektista:\",\"dialog.cantCopyBecauseItemWasDeleted\":\"Ei voi kopioida, koska joku muu on poistanut tämän kohteen:\",\"dialog.cantCopyBecauseItemExists\":\"Ei voi kopioida, koska tämä on jo olemassa sijainnissa, jonne yritit kopioida:\",\"dialog.cantMoveAllItems\":\"Kaikkia kohteita ei voi siirtää.\",\"dialog.cantMoveBecauseSomethingWentWrong\":\"Ei voi siirtää, koska jokin meni vikaan:\",\"dialog.cantMoveBecauseYouWereSignedOut\":\"Ei voi siirtää, koska sinut kirjattiin ulos:\",\"dialog.cantMoveBecauseYouWereRemoved\":\"Ei voi siirtää, koska sinut poistettiin tästä projektista:\",\"dialog.cantMoveBecauseItemWasDeleted\":\"Ei voi siirtää, koska joku muu on poistanut tämän kohteen:\",\"dialog.cantMoveBecauseItemExists\":\"Ei voi siirtää, koska tämä on jo olemassa sijainnissa, jonne yritit siirtää:\",\"dialog.createFolder.error\":\"Palvelinvirhe, kansion tallennus epäonnistui.\",\"dialog.createFolder.nameConflict\":\"Sinulla on jo tämänniminen kansio.\",\"dialog.createFolder.placeholder\":\"Kansion nimi\",\"dialog.createFolder.title\":\"Luo kansio\",\"dialog.createFolder.success\":\"Kansion luonti onnistui.\",\"dialog.createWeblink.error\":\"Tukematon URL-osoite\",\"dialog.createWeblink.tooManyRequests\":\"Odottamaton verkkovirhe. Yritä uudelleen.\",\"dialog.createWeblink.success\":\"1 kohde lisätty\",\"dialog.createWeblink.nameConflict\":\"Tämä otsikko on jo olemassa.\",\"dialog.createWeblink.name.placeholder\":\"Anna tälle linkille nimi\",\"dialog.createWeblink.link.placeholder\":\"https://\",\"dialog.createWeblink.name\":\"Mukautettu otsikko\",\"dialog.createWeblink.link\":\"Linkki\",\"dialog.createWeblink.title\":\"Luo verkkolinkki\",\"app.type.webLink\":\"VERKKOLINKKI\",\"dialog.createCanvas.error\":\"Piirtoaluetta ei voi luoda.\",\"dialog.move.title\":\"Siirrä projektiin {projectName}\",\"dialog.move.detail\":\"Jos siirrät tämän kohteen, se muuttaa sitä, kuka voi käyttää sitä.\",\"moveToTeam.confirm.title\":\"Siirrä työtilaan {name}\",\"moveToTeam.confirm.message\":\"Projektiesi siirtäminen tähän muuttaa, kuka voi käyttää niitä. Projektisi ovat kaikkien sellaisten käyttäjien käytettävissä, jotka pääsevät työtilaasi.\",\"moveToTeam.disabled.differentOrg.tooltip.message\":\"Et voi siirtää projekteja toisessa organisaatiossa olevaan työtilaan.\",\"moveToSpace.disabled.differentOrg.tooltip.message\":\"Et voi siirtää kohteita toisessa organisaatiossa olevaan projektiin.\",\"moveToTeam.success\":\"Siirsit {count, plural, =1 {# projektin} other {# projektia}} työtilaan {name}\",\"confirmationDialog.dontShowAgain\":\"Älä näytä uudelleen\",\"dialog.open.title\":\"Avaa verkossa\",\"dialog.open.detail\":\"Et voi avata tätä tiedostoa sovelluksella {appName}, mutta voit käyttää sitä selaimessa.\",\"dialog.renameTeam.title\":\"Nimeä työtila uudelleen\",\"dialog.renameTeam.placeholder\":\"Anna tälle työtilalle nimi\",\"dialog.renameTeam.error\":\"Jokin meni valitettavasti vikaan.\",\"dialog.renameTeam.nameConflict\":\"Tämä nimi on jo olemassa.\",\"dialog.archiveTeam.title\":\"Oletko poistamassa tätä työtilaa?\",\"dialog.archiveTeam.detail\":\"Et voi kumota tätä toimintoa, jos poistat itsesi. Ota yhteyttä järjestelmänvalvojaan, jos haluat liittyä tähän työtilaan uudelleen.\",\"dialog.saveToCloud.title\":\"Tiedosto(t) tallennettu Creative Cloudiin\",\"dialog.saveToCloud.detail\":\"Pilvidokumenttisi sisältää nyt muun muassa versiohistorian, kutsun ja yhteismuokkauksen sekä välittömän käyttömahdollisuuden muilla laitteilla. Löydät sen täältä ja Creative Cloud -sovelluksista.\",\"input.invalidCharInput\":\"Nimessä ei voi olla seuraavia merkkejä: \\\\\\\\ / * ? \\\" | :\",\"input.invalidEmptyInput\":\"{names, select, true {Nimet} other {Otsikot}} eivät saa olla tyhjiä.\",\"input.nameTooLong\":\"{names, select, true {Nimissä} other {Otsikoissa}} ei voi olla yli {maxLength} merkkiä.\",\"input.nameEndsWithDot\":\"{names, select, true {Nimien} other {Otsikoiden}} lopussa ei voi olla pistettä.\",\"input.weblink.nameRestricted\":\"Verkkolinkeillä ei voi olla seuraavia otsikoita: con, prn, aux, nul, com#, lpt#\",\"input.nameRestricted\":\"Resursseilla ei voi olla seuraavia nimiä: con/prn/aux/nul/com#/lpt#\",\"input.weblink.invalidCharInput\":\"Otsikoissa ei saa olla vain välilyöntejä tai seuraavia merkkejä: \\\\\\\\ / * ? \\\" | : < > \",\"input.name.invalidCharInput\":\"Nimissä ei saa olla vain välilyöntejä tai seuraavia merkkejä: \\\\\\\\ / * ? \\\" | : < > \",\"cdpFooter.orphanedArtifactsWarning\":\"Siirtämiisi kohteisiin liittyvät julkaistut linkit pysyvät alkuperäisessä projektissa\",\"cdpFooter.libraryPrivacyWarning\":\"Jos sinulla on uudelleenjako-oikeudet lisäämääsi kirjastoon, projektin jäsenet voivat tarkastella sitä\",\"toast.beforeOp.error.documentIsOpen\":\"Sulje {count, plural, =1 {dokumentti} other {dokumentit}}, jotta tämä toimi voidaan suorittaa.\",\"app.type.designSpecs\":\"MALLIN TIEDOT\",\"app.type.prototype\":\"PROTOTYYPPI\",\"app.type.publishedLink\":\"JULKAISTU LINKKI\",\"popover.header\":\"Tee yhteistyötä projektin parissa muiden kanssa ja jaa työsi, jotta saat siitä palautetta.\",\"popover.linkout\":\"Lue lisää\",\"team.libraries.filter.all\":\"Kaikki\",\"team.libraries.filter.addedToYourLibraries\":\"Lisätty kirjastoihisi\",\"team.libraries.filter.notAdded\":\"Ei lisätty\",\"team.spaces.filter.all\":\"Kaikki\",\"team.spaces.filter.favorited\":\"Merkitty suosikiksi\",\"team.filter.empty.heading\":\"Valittua suodatinta vastaavia projekteja ei ole\",\"team.filter.empty.description1\":\"Emme löytäneet tuloksia haulle \",\"team.filter.empty.description2\":\" tästä luettelosta. Tarkista oikeinkirjoitus tai yritä käyttää muita avainsanoja.\",\"team.filter.no.match.description\":\"Emme löytäneet tuloksia tästä luettelosta. Tarkista oikeinkirjoitus tai yritä käyttää muita suodatusehtoja.\",\"team.filter.filterText\":\"{filter}\",\"team.header.other.teams\":\"Muut työtilat\",\"space.empty.heading\":\"Kaikki yhdessä paikassa, jokainen ajan tasalla\",\"space.empty.description\":\"Täytä tämä projekti työtiedostoilla ja niihin liittyvillä materiaaleilla. Kutsu avustajia mukaan ja lisää myös heidän työnsä.\",\"space.empty.canvasHeading\":\"CREATIVE CLOUD CANVAS\",\"space.empty.actionsHeading\":\"LISÄÄ SISÄLTÖÄ PROJEKTIISI\",\"space.empty.createCanvas\":\"Uusi piirtoalue\",\"space.empty.upload\":\"Lisää tiedostoja\",\"space.empty.createFolder\":\"Uusi kansio\",\"space.empty.createWeblink\":\"Verkkolinkit\",\"space.empty.addResource\":\"Kirjasto\",\"folder.empty.heading\":\"Tämä kansio on tyhjä.\",\"folder.empty.description\":\"Ryhdy lisäämään tiedostoja sen täyttämiseksi.\",\"folder.discard.heading\":\"Tämä kansio on poistettu.\",\"folder.discard.description\":\"Ota yhteyttä järjestelmänvalvojaan, jos tässä on mielestäsi tapahtunut virhe, tai selaa muuta sisältöä.\",\"folder.error.description\":\"Sisältöä tästä kansiosta ladattaessa ilmeni ongelma.\",\"space.empty.section.createACanvas\":\"Luo piirtoalue\",\"tooltip.opensInBrowser\":\"Avataan selaimessa\",\"space.empty.workingFiles\":\"Jatka lisäämistä tähän projektiin\",\"space.empty.canvasPopoverTitle\":\"Kokeile Creative Cloud Canvas (Beta) -sovellusta\",\"space.empty.canvasPopoverContent\":\"Käytä piirtoalueita luovien töiden asetteluun, visualisointiin ja tarkistukseen.\",\"space.error.heading\":\"Projektin lataaminen epäonnistui\",\"space.error.description\":\"Sisältöä ladattaessa tästä projektista ilmeni ongelma.\",\"createTeamWizard.createTeam.sidebarHeading\":\"Luo työtila\",\"createTeamWizard.createTeam.sidebarCopy\":\"Luo työtila, jossa voit pitää kaikki ajan tasalla ja järjestyksessä.\",\"createTeamWizard.createTeam.sidebarCopy.adminconsole\":\"Luo paikka, jossa työryhmäsi voi tehdä yhteistyötä ja jakaa tiedostoja.\",\"createTeamWizard.createTeam.sidebarLink\":\"Lue lisää\",\"createTeamWizard.createTeam.contentHeading\":\"Uusi työtila\",\"createTeamWizard.createTeam.loading\":\"Luodaan työtilaa {name}.\",\"createTeamWizard.inviteMembers.sidebarHeading\":\"Kutsu jäseniä työtilaan {name}\",\"createTeamWizard.inviteMembers.sidebarCopy\":\"Ryhdy kirjoittamaan nimeä tai sähköpostiosoitetta, jos haluat kutsua jäseniä nyt, tai ohita tämä vaihe ja kutsu heidät myöhemmin.\",\"createTeamWizard.inviteMembers.loading\":\"Kutsutaan jäseniä työtilaan {name}.\",\"createTeamWizard.inviteMembers.contentHeading\":\"Kutsu jäseniä\",\"createTeamWizard.inviteMembers.successToast\":\"Uuteen työtilaan on lisätty jäseniä.\",\"createTeamWizard.progress\":\"Vaihe {current}/{total}\",\"createTeamWizard.skipStep\":\"Ohita\",\"teamDialog.createTeam.label\":\"Luo työtila\",\"teamDialog.createTeam.infoBox.description\":\"Luomaasi työtilaan voi liittyä vain kutsusta, ja kaikilla siihen lisätyillä jäsenillä on oletusarvoisesti muokkausoikeudet.\",\"teamDialog.editTeam.label\":\"Muokkaa työtilaa\",\"teamDialog.nameSection.placeholder\":\"Anna uudelle työtilallesi nimi\",\"teamDialog.nameSection.label\":\"Työtilan nimi\",\"teamDialog.permissionsSection.label\":\"Kuka voi muokata tätä työtilaa?\",\"teamDialog.permissionsSection.option.onlyInvited\":\"Vain kutsutut ihmiset\",\"teamDialog.descriptionSection.label\":\"Työtilan kuvaus (valinnainen)\",\"teamDialog.descriptionSection.placeholder\":\"Lisää muutama sana työtilastasi\",\"teamsSidebar.noTeams\":\"Ei työtiloja\",\"teamsSidebar.newTeamButton\":\"Luo työtila\",\"teamsSidebar.adminTour.title\":\"Uutta! Luo työtiloja\",\"teamsSidebar.adminTour.content\":\"Nyt järjestelmänvalvojat voivat luoda työtiloja Creative Cloudin verkkopalvelussa, mikä helpottaa jaettujen töiden pitämistä järjestyksessä.\",\"teamsSidebarTeam.newSpaceButton\":\"Uusi projekti\",\"teamsSidebarTeam.header.newBadge\":\"UUSI\",\"teamsSidebarTeam.header.otherTeams\":\"Muista työtiloista\",\"teamsSidebarTeam.header.teams\":\"TYÖTILAT\",\"teamsSidebarTeam.header.previewLabel\":\"(Esikatselu)\",\"teamsSidebarTeam.header.previewCopy\":\"Työtilat ja projektit ovat käytettävissä yksityisessä beetaversiossa.\",\"teamsSidebarTeam.header.previewLearnMoreText\":\"Lue lisää\",\"teamsSidebarTeam.message.loading\":\"Ladataan...\",\"teamsSidebarTeam.message.noSpaces\":\"Sinulla ei ole työtiloja tai projekteja.\",\"teamsSidebarTeam.message.offline\":\"Yhteys on katkaistu. Muodosta yhteys uudelleen, jotta voit tarkastella työtilojasi ja projektejasi.\",\"teamsSidebarTeam.message.error\":\"Työtilojasi ja projektejasi ladattaessa ilmeni ongelma.\",\"teams1up.error.description\":\"Projektejasi ladattaessa ilmeni ongelma.\",\"teams1up.error.heading\":\"Projektien lataaminen epäonnistui\",\"otherTeams.emptyMessage.header\":\"Työtilan sivua ei voida näyttää\",\"otherTeams.emptyMessage.description1\":\"Sinut poistettiin tai poistuit viimeisestä projektista käyttämällä osiota \",\"otherTeams.emptyMessage.description2\":\". Ota yhteyttä järjestelmänvalvojaan, jos tässä on mielestäsi tapahtunut virhe.\",\"spaceTour.step0.title\":\"Projektisi löytyvät tästä\",\"spaceTour.step0.content\":\"Projektit auttavat työryhmiä tekemään yhteistyötä sekä keräämään, järjestämään ja jakamaan tiedostoja ja resursseja.\",\"spaceTour.step1.title\":\"Lisää kaikki projektiin tarvittavat asiat\",\"spaceTour.step1.content\":\"Kerää muun muassa työtiedostot, viitekuvat ja resurssit yhteen paikkaan.\",\"spaceTour.step2.title\":\"Määritä (ja unohda) käyttöoikeudet\",\"spaceTour.step2.content\":\"Säästä aikaa ja vaivaa määrittämällä avustajille käyttöoikeudet jo kutsuhetkellä. Lähetä sidosryhmille vain katseluoikeudet sisältäviä paketteja tarkistamista ja palautteen antamista varten.\",\"error.cantCreateSpace\":\"Työtilan tallennustila on täynnä\",\"error.exceedQuota.create.detail.description1\":\"Et voi luoda mitään uutta juuri nyt. Valitse \",\"error.exceedQuota.description2\":\" tallennustilan vapauttamiseksi.\",\"error.exceedQuota.add.detail.description1\":\"Et voi lisätä mitään uutta juuri nyt. Valitse \",\"error.move.generic\":\"Ei voi siirtää, koska jokin meni vikaan\",\"error.move.signedOut\":\"Ei voi siirtää, koska sinut kirjattiin ulos\",\"error.move.permissionRevoked\":\"Siirto epäonnistui, koska sinut poistettiin tästä projektista\",\"error.move.deleted\":\"Ei voi siirtää, koska joku muu on poistanut tämän kohteen\",\"error.move.duplicate\":\"Ei voi siirtää, koska tämä on jo olemassa sijainnissa, jonne yritit siirtää\",\"error.copy.generic\":\"Ei voi kopioida, koska jokin meni vikaan\",\"error.copy.signedOut\":\"Ei voi kopioida, koska sinut kirjattiin ulos\",\"error.copy.permissionRevoked\":\"Kopiointi epäonnistui, koska sinut poistettiin tästä projektista\",\"error.copy.deleted\":\"Ei voi kopioida, koska joku muu on poistanut tämän kohteen\",\"error.copy.duplicate\":\"Ei voi kopioida, koska tämä on jo olemassa sijainnissa, jonne yritit kopioida\",\"checkbox.select\":\"Valitse\",\"listItem.fileSize\":\"Tiedoston koko\",\"facepile.additionalMembers\":\"Muita jäseniä +{count}\",\"facepile.memberName\":\"{name}, jäsen\",\"coachmark.information\":\"tiedot\",\"toolbar.tools\":\"työkalut\",\"griditem.error.message\":\"Ei voi hakea\",\"griditem.error.button\":\"Yritä uudelleen\",\"ats.move.extendedNotification\":\"Saat ilmoituksen, kun siirto on suoritettu.\",\"file.deleted.error.heading\":\"Tiedostoa ei voi {operation}.\",\"file.deleted.error.description\":\"Tätä tiedostoa ei voi {operation}, sillä se on poistettu. Palauta poistetuista ja yritä uudelleen tai valitse toinen sijainti.\",\"file.deleted.rename.error.description\":\"Tätä tiedostoa ei voi nimetä uudelleen, sillä se on poistettu. Valitse Siirry poistettuihin tiedoston palauttamista varten.\"}");

/***/ }),

/***/ "izVQ":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("TSYQ");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _react_react_spectrum_Wait__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("czhh");
/* harmony import */ var _react_react_spectrum_Wait__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Wait__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _styles_Busy_css__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("C+ds");
/* harmony import */ var _styles_Busy_css__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_styles_Busy_css__WEBPACK_IMPORTED_MODULE_3__);
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2019 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/




const Busy = ({ id = 'WaitSpinner', size = 'L', className = '', ...props }) => (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", Object.assign({ className: classnames__WEBPACK_IMPORTED_MODULE_1___default()(_styles_Busy_css__WEBPACK_IMPORTED_MODULE_3___default.a.activityIndicator, _styles_Busy_css__WEBPACK_IMPORTED_MODULE_3___default.a[className]) }, props, { id: id }),
    react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_react_react_spectrum_Wait__WEBPACK_IMPORTED_MODULE_2___default.a, { size: size })));
/* harmony default export */ __webpack_exports__["a"] = (Busy);


/***/ }),

/***/ "j2DC":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var create = __webpack_require__("oVml");

var descriptor = __webpack_require__("rr1i");

var setToStringTag = __webpack_require__("RfKB");

var IteratorPrototype = {}; // 25.1.2.1.1 %IteratorPrototype%[@@iterator]()

__webpack_require__("NegM")(IteratorPrototype, __webpack_require__("UWiX")('iterator'), function () {
  return this;
});

module.exports = function (Constructor, NAME, next) {
  Constructor.prototype = create(IteratorPrototype, {
    next: descriptor(1, next)
  });
  setToStringTag(Constructor, NAME + ' Iterator');
};

/***/ }),

/***/ "j3cW":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

const _excluded = ["styles"];

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }

function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

var _default = _ref => {
  let {
    styles = {}
  } = _ref,
      props = _objectWithoutProperties(_ref, _excluded);

  return /*#__PURE__*/_react.default.createElement("svg", _extends({
    xmlns: "http://www.w3.org/2000/svg",
    height: "200",
    id: "S_Illu_IllustratorFirstMile_520x200",
    viewBox: "0 0 520 200",
    width: "520"
  }, props), /*#__PURE__*/_react.default.createElement("defs", null), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M460.91 147.011c-7.743-2.007-19.477-5.805-20.837-6.545-.51-.277-3.149-1.8-6.49-3.726-6.025-3.475-14.613-8.427-19.14-10.945l11.922-8.7a4.344 4.344 0 1 0-5.11-7.027L406 121.2c-3.256-1.593-6.762-2.746-10.439-2-4.012.811-14.616 4.011-20.58 5.846a7.905 7.905 0 0 0-5.545 6.746l-.522 4.993c-.262-.074-.5-.139-.706-.188a4.57 4.57 0 0 0-3.657.617 7.634 7.634 0 0 0-3 5.044c-.636 3.5 2.013 6.091 4.589 7.785l-2.858 2.247a1.51 1.51 0 0 0-.222.216l-7.421 8.856c-2.356 1.8-18.335 13.531-33.4 13.531-10.164 0-25.427-9.682-26.21-24.852-.246-4.779-.48-8.629-.707-12.371-.5-8.266-.977-16.086-1.488-32.4 3.456-.716 16.17-4.1 20.844-15.785a106.641 106.641 0 0 0 5.7-18.262 6.5 6.5 0 0 0-12.758-2.463 99.925 99.925 0 0 1-5.011 15.895c-1.677 4.193-6.311 6.322-9.174 7.267-.243-10.085-.4-31.121-.4-31.3a8.893 8.893 0 0 0-17.786 0c0 .523-.149 12.136-.377 19.284a31.451 31.451 0 0 1-2.327-1.251 22.863 22.863 0 0 1-7.961-8.519 5.5 5.5 0 0 0-9.934 4.723 33.767 33.767 0 0 0 12.3 13.268 32.941 32.941 0 0 0 7.454 3.375c-.338 8.39-.552 16.238-.76 23.837-.434 15.853-.809 29.543-2.137 41.5a18.019 18.019 0 0 1-8 13.317c-7.812 5.41-20.446 6.8-32.972 3.617-13.58-3.446-14.07-10.119-14.084-10.4v-.156a1.5 1.5 0 0 0 .113-.483c.086-1.562.549-6.03 1.653-7.93a4.974 4.974 0 0 1 3.487-2.158 1.5 1.5 0 0 0 1.358-1.687c-.283-2.194.39-4.054 1.8-4.974 1.675-1.091 6.229-1.684 8.385-.584.048 2.166-2.491 5.415-4.416 6.67a4.438 4.438 0 0 1-3.987.26 1.5 1.5 0 0 0-1.014 2.825 7.357 7.357 0 0 0 6.639-.572c2.4-1.565 6.655-6.388 5.617-10.445a1.507 1.507 0 0 0-.527-.808c-3.136-2.462-9.646-1.613-12.335.14a7.515 7.515 0 0 0-3.224 6.493 7.817 7.817 0 0 0-3.663 2.325c-.016-3.633.024-6.452.03-6.843.041-.568.16-3.583-1.76-5.181-.683-.568-1.009-3.345-.4-5.653.7-2.67 4.054-6.879 6.558-7.909 1.449 1.975 1.882 6.834 1.1 9.786a7.068 7.068 0 0 1-3.35 4.367 1.5 1.5 0 1 0 1.49 2.6 10.047 10.047 0 0 0 4.762-6.207c.882-3.353.764-10.7-2.614-13.405a1.5 1.5 0 0 0-1.178-.31c-4.149.673-8.729 6.719-9.674 10.311-.632 2.4-.814 6.893 1.384 8.724.636.528.736 2.033.686 2.673 0 .036 0 .071-.006.106s-.038 2.408-.034 5.682a40.167 40.167 0 0 0-2.647-2.236 10.142 10.142 0 0 0-2.826-9.679c-2.682-2.577-9.343-6.717-13.32-5.095a1.5 1.5 0 0 0-.844.878c-1.476 4.08 2.435 11.344 4.973 13.783a11.135 11.135 0 0 0 4.938 2.362 1.5 1.5 0 1 0 .56-2.947 8.349 8.349 0 0 1-3.419-1.579c-2.141-2.056-4.542-7.237-4.371-9.866 2.357-.152 6.913 2.233 9.405 4.628a7.14 7.14 0 0 1 1.759 7.574 1.5 1.5 0 0 0 .522 1.718c1.717 1.262 4.485 3.6 4.975 4.619a4.339 4.339 0 0 1 .344 1.366c.01.581.021 1.166.035 1.752-.019.3-.046.551-.071.72a1.53 1.53 0 0 0-.017.271l.128 4.147c.008.372.367 9.172 16.344 13.227a56.668 56.668 0 0 0 13.874 1.766c8.352 0 16.019-2 21.545-5.825a21.171 21.171 0 0 0 9.269-15.451c1.342-12.081 1.718-25.829 2.154-41.749.217-7.955.442-16.18.808-25.008a1.5 1.5 0 0 0-1.182-1.529 27 27 0 0 1-7.793-3.34 30.463 30.463 0 0 1-11.115-11.967 2.5 2.5 0 0 1 4.52-2.137 25.926 25.926 0 0 0 9.138 9.8 28.075 28.075 0 0 0 4.77 2.305 1.5 1.5 0 0 0 2-1.351c.287-6.987.458-21.465.458-21.57a5.893 5.893 0 0 1 11.786 0c0 .184.176 24.214.452 33.323a1.5 1.5 0 0 0 1.849 1.413c2.393-.574 10.407-2.961 13.058-9.586a101.228 101.228 0 0 0 5.17-16.438 3.5 3.5 0 0 1 6.871 1.331 103.449 103.449 0 0 1-5.543 17.707c-4.686 11.715-18.77 14-19.357 14.09a1.853 1.853 0 0 1-.21.015l-.118.007a1.5 1.5 0 0 0-1.414 1.543c.528 17.277 1.016 25.317 1.533 33.829.227 3.734.46 7.575.706 12.344.885 17.16 17.608 27.7 29.206 27.7 16.117 0 32.455-12.02 35.189-14.123l10.683-4.309a1.335 1.335 0 0 0 .156-.089 4.406 4.406 0 0 0 2.459 3.475 5.541 5.541 0 0 0 3.672.391 3.877 3.877 0 0 0 2.809 3.292 5.587 5.587 0 0 0 1.636.25 6.08 6.08 0 0 0 3.71-1.37 3.631 3.631 0 0 0 2.391.886h.022a8.525 8.525 0 0 0 5.888-3.252c6.263 3.891 14.718 6.917 20.5 7.19 3.651.176 7.686-.952 11.249-1.944 2.9-.807 5.648-1.576 7.119-1.305 2.637.479 14.649 6.01 22.08 9.612a1.48 1.48 0 0 0 .653.15 1.5 1.5 0 0 0 .655-2.849c-1.929-.936-18.966-9.159-22.852-9.864-2.145-.389-5.072.424-8.46 1.366-3.345.931-7.144 1.969-10.3 1.838-6.117-.289-15.54-3.962-21.452-8.363-4.336-3.227-8.217-4.877-12.71-6.787-1.958-.833-3.984-1.693-6.281-2.775-4.73-2.228-6.935-4.42-6.553-6.518a4.783 4.783 0 0 1 1.684-3.067 1.6 1.6 0 0 1 1.318-.215c1.918.462 7.435 2.41 12.3 4.129 2.914 1.029 5.667 2 7.308 2.533 4.792 1.552 12 .346 15.933-1.66a1.5 1.5 0 1 0-1.364-2.672 22.8 22.8 0 0 1-11.8 1.881l21.892-15.979c3.947 2.154 13.689 7.771 20.315 11.592 3.49 2.013 6.012 3.468 6.555 3.763 1.822.992 14.291 4.94 21.518 6.814a1.5 1.5 0 0 0 .753-2.9zm-72.658 14.272l.082.058a5.6 5.6 0 0 1-3.383 1.956c-.535 0-.822-.668-.825-.676a1.5 1.5 0 0 0-2.612-.352c-.015.02-1.483 1.982-3.428 1.392-1.161-.353-.656-2.261-.637-2.334a1.5 1.5 0 0 0-2.355-1.6 3.25 3.25 0 0 1-3.069.416c-1.1-.527-.847-2.339-.692-3.075l3.587-2.747 1.244.53c4.489 1.909 8.036 3.418 12.088 6.432zm-16.477-8.336l-4.975 3.81-5.123 2.066 3.578-4.27 3.706-2.914c.305.149.587.283.813.39.693.326 1.354.627 2.001.918zm7.943-12.515c-2.839-1-5.657-1.992-7.889-2.731l.586-5.595a4.911 4.911 0 0 1 3.442-4.192c5.912-1.818 16.409-4.987 20.294-5.773a12 12 0 0 1 7.07 1.085l-23.249 16.966a1.527 1.527 0 0 0-.254.24zm6.594 2.181a1.07 1.07 0 0 0-.106.095c-.92-.316-1.974-.684-3.108-1.083l23.172-16.91c.732.395 1.462.8 2.187 1.214l.4.226zm25.219-18.407c-.527-.288-1.058-.584-1.6-.89l-.985-.553 14.077-10.272a1.344 1.344 0 1 1 1.578 2.176z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M161.8 177.994c-24.025 0-45.739-5.822-61.548-16.8a1.5 1.5 0 1 1 1.711-2.463c19.8 13.754 49.292 19.148 80.91 14.8a141.394 141.394 0 0 0 23.422-5.219 1.5 1.5 0 0 1 .964 2.841 141.574 141.574 0 0 1-23.977 5.35 157.952 157.952 0 0 1-21.482 1.491z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M387.893 93.433a2.482 2.482 0 0 1-.829-.144 2.412 2.412 0 0 1-1.624-2.3V60.036a2.44 2.44 0 0 1 4.181-1.709L411.7 80.846a2.439 2.439 0 0 1-2.089 4.122L397.332 83.2l-7.557 9.328a2.414 2.414 0 0 1-1.882.905zm.547-32.025v28l7.1-8.761a1.494 1.494 0 0 1 1.379-.54l11.481 1.655z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M156.212 24.055a22.518 22.518 0 0 0-31.312.129 22.81 22.81 0 0 0-6.863 16.387c0 7.967 3.825 12.644 9.617 19.724.752.92 1.539 1.883 2.359 2.9a1.517 1.517 0 0 1 .334.947v.916A64.48 64.48 0 0 0 93.918 78.2c-12.185 9.417-18.9 22.446-18.9 36.686a1.5 1.5 0 1 0 3 0c0-27.261 26.645-45.818 52.324-46.834v7.482a4.092 4.092 0 0 0 .928 2.591l4.232 5.151a4.072 4.072 0 0 0 3.154 1.489h3.752a4.064 4.064 0 0 0 3.153-1.49l4.228-5.144a4.1 4.1 0 0 0 .933-2.6v-6.725a14.738 14.738 0 0 1 3.289-9.3c5.593-6.847 9.021-11.427 9.021-19a22.869 22.869 0 0 0-6.82-16.451zm-4.52 33.545a17.749 17.749 0 0 0-3.965 11.2v6.719a1.1 1.1 0 0 1-.25.7l-4.228 5.145a1.079 1.079 0 0 1-.836.394h-3.752a1.079 1.079 0 0 1-.837-.394l-4.231-5.15a1.088 1.088 0 0 1-.246-.687V68h11.166a1.5 1.5 0 0 0 0-3h-11.166v-.855a4.525 4.525 0 0 0-1-2.826c-.825-1.028-1.618-2-2.375-2.923-5.575-6.815-8.939-10.929-8.939-17.825A19.835 19.835 0 0 1 127 26.323a18.919 18.919 0 0 1 13.327-5.54h.365a18.554 18.554 0 0 1 13.417 5.417 19.886 19.886 0 0 1 5.928 14.31c0 6.559-3.016 10.569-8.345 17.09z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M125.9 136.433l-18.931-30.423a2.6 2.6 0 0 0-3.485-.874l-20.9 11.754-31.335 9a2.586 2.586 0 0 0-1.559 1.249 2.469 2.469 0 0 0-.179 1.924L60.264 162.9a2.6 2.6 0 0 0 3.183 1.669l5.881-1.689 2.546 4.091a2.573 2.573 0 0 0 2.192 1.213 2.625 2.625 0 0 0 1.289-.339l24.329-13.682 18.962-5.445a2.573 2.573 0 0 0 1.556-1.249 2.465 2.465 0 0 0 .18-1.924l-.815-2.563 5.418-3.047a2.544 2.544 0 0 0 1.214-1.576 2.459 2.459 0 0 0-.299-1.926zm-21.269-28.5l1.387 2.228-10.927 3.139zM74.21 165.048l-1.884-3.028 14.851-4.265zm-11.218-3.469l-10.467-32.936 54.375-15.615 9.436 29.694v.016l1.025 3.227zm55.647-21.517l-6.246-19.657 10.681 17.164z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M99.693 130.4a6.025 6.025 0 0 1-5.769-4.124 5.573 5.573 0 0 1 .414-4.352 5.867 5.867 0 0 1 3.6-2.865 6.076 6.076 0 0 1 7.455 3.89 5.57 5.57 0 0 1-.413 4.351 5.869 5.869 0 0 1-3.6 2.864 6.182 6.182 0 0 1-1.687.236zm-.061-9.578a4.142 4.142 0 0 0-1.148.161 3.883 3.883 0 0 0-2.385 1.889 3.592 3.592 0 0 0-.268 2.8 4.057 4.057 0 0 0 5 2.566 3.874 3.874 0 0 0 2.384-1.888 3.589 3.589 0 0 0 .268-2.8 4.012 4.012 0 0 0-3.851-2.724z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M114.964 139.019a1 1 0 0 0-1.237-.685c-.737.212-1.569.425-2.452.63h-.007c-4.605 1.069-10.723 1.878-13.541.669l-11.979-6.223a2.638 2.638 0 0 0-3.46 1.024l-2.236 4.25-10.216-5.292a2.3 2.3 0 0 0-3.053.889l-2.249 4a1 1 0 0 0 1.743.98l2.25-4a.3.3 0 0 1 .39-.092l15.766 8.168a1 1 0 0 0 .92-1.775l-3.775-1.962 2.218-4.218a.632.632 0 0 1 .78-.2l12.043 6.257a10.73 10.73 0 0 0 3.287.715l-12.871 3.7c-1.222.35-4.1 1.334-4.493 2.889a1.381 1.381 0 0 0 .389 1.357c.361.349 1.463 1.413 8.339-.563a45.684 45.684 0 0 1 4.755-1.139 40.54 40.54 0 0 1-4.544 1.554l-1.9.58a3.794 3.794 0 0 0-2.376 1.531 1.554 1.554 0 0 0-.112 1.213 1 1 0 0 0 1.953-.334 3.78 3.78 0 0 1 1.118-.5l1.888-.575c8.62-2.475 8.167-4.055 8-4.649-.212-.738-.605-2.11-9.326.394a23.88 23.88 0 0 1-5.452 1.081 11.264 11.264 0 0 1 2.321-.92l23.988-6.889c.007 0 .012-.008.019-.01 1.377-.32 2.3-.582 2.435-.62a1 1 0 0 0 .677-1.235z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M70.581 141.69a1 1 0 1 0 .4-1.959 6.563 6.563 0 0 0-6.054 2.368 6.362 6.362 0 0 0-7.011-1.395 1 1 0 1 0 .8 1.832 3.985 3.985 0 0 1 3.5.091 6.631 6.631 0 0 0-3.8 2.557 1 1 0 1 0 1.6 1.195 4.787 4.787 0 0 1 3.744-1.962 18.316 18.316 0 0 0-.209 11.3 1 1 0 0 0 1.912-.584 16.336 16.336 0 0 1 .344-10.5 5.148 5.148 0 0 1 4.136 1.694 1 1 0 1 0 1.572-1.237 6.565 6.565 0 0 0-4.329-2.367 4.231 4.231 0 0 1 3.395-1.033z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M389.769 54.939a5.046 5.046 0 0 0-9.363 2.616 5.037 5.037 0 0 0 .41 1.988L364.085 83.8a3.23 3.23 0 0 0-.7-.081h-.176a27.515 27.515 0 0 0-.175-17.113c-3.657-10.88-13.846-19.4-26.787-22.517a15.636 15.636 0 0 0 .253-2.772c0-10.438-10.093-18.93-22.5-18.93a25.487 25.487 0 0 0-12 2.933c-10.663-11.076-27.958-15.76-44.45-11.941-18.814 4.357-31.74 19.123-31.125 35.348-13.644 7.3-20.075 21.347-15.662 34.476 5.5 16.362 25.906 25.984 45.493 21.448a36.375 36.375 0 0 0 7.975-3.039 27.664 27.664 0 0 0 2.717 5.272 1.5 1.5 0 0 0 2.507-1.648 24.333 24.333 0 0 1-2.942-6.2 1.5 1.5 0 0 0-2.142-.881 37.044 37.044 0 0 1-8.792 3.571c-18.125 4.191-36.952-4.544-41.972-19.481-4.018-11.955 2.168-24.824 15.043-31.3a1.5 1.5 0 0 0 .822-1.447c-1.087-15.13 11.006-29.094 28.755-33.2 15.635-3.614 32.661 1.168 42.37 11.912a1.5 1.5 0 0 0 1.886.279A22.33 22.33 0 0 1 314 25.39c10.752 0 19.5 7.146 19.5 15.93a13.215 13.215 0 0 1-.5 3.509 1.5 1.5 0 0 0 1.144 1.87c12.606 2.585 22.584 10.58 26.041 20.865a24.6 24.6 0 0 1-.14 16.158h-.342a3.245 3.245 0 0 0-3.241 3.241v3.565c-4.7 6.537-12.266 11.363-21.238 13.441a43.336 43.336 0 0 1-6.812 1.007 1.5 1.5 0 0 0-1.136.649C321.43 114.184 310.4 119.5 298.5 119.5a1.5 1.5 0 0 0 0 3c12.6 0 24.343-5.571 30.839-14.586a46.013 46.013 0 0 0 6.567-1.023 41.185 41.185 0 0 0 17.121-8.336l-4.8 6.6c-.009 0-.016-.009-.024-.012a5.091 5.091 0 1 0 1.682 1.133l9.074-12.5a3.207 3.207 0 0 0 .745.094h3.677a3.244 3.244 0 0 0 3.24-3.24v-3.667a3.216 3.216 0 0 0-.82-2.133l16.247-23.558a5.119 5.119 0 0 0 1.064.753 1.5 1.5 0 0 0 1.4-2.655 2.053 2.053 0 0 1-1.108-1.815 2.046 2.046 0 0 1 3.8-1.054 1.5 1.5 0 0 0 2.561-1.562zm-42.687 56.771a2.049 2.049 0 0 1-1.582-3.781 2.039 2.039 0 0 1 1.569-.006 2.05 2.05 0 0 1 .013 3.787zm16.543-21.07a.24.24 0 0 1-.24.24h-3.677a.24.24 0 0 1-.241-.24v-3.677a.241.241 0 0 1 .241-.241h3.677a.241.241 0 0 1 .24.241z"
  }));
};

exports.default = _default;

/***/ }),

/***/ "j6Ri":
/***/ (function(module, exports, __webpack_require__) {

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = __webpack_require__("flbR").default;
exports.ccxController = __webpack_require__("r+vD").default;
exports.ccxIngest = __webpack_require__("VJ0h").default;
exports.ccxIngestContext = __webpack_require__("ld/C").IngestContext;

/***/ }),

/***/ "j7sy":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("F8Hq"),
      24: __webpack_require__("c0ty")
    }
  }));
};

WrappedIcon.displayName = 'Import';
exports.default = WrappedIcon;

/***/ }),

/***/ "j9B6":
/***/ (function(module, exports) {



/***/ }),

/***/ "jAHb":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("path", {
  d: "M27.314 6.686a16 16 0 1 0 0 22.627 16 16 0 0 0 0-22.627zm-2.687 18.527l-1.414 1.414a1.2 1.2 0 0 1-1.7 0L16 21.111l-5.516 5.516a1.2 1.2 0 0 1-1.7 0l-1.409-1.415a1.2 1.2 0 0 1 0-1.7L12.889 18l-5.514-5.516a1.2 1.2 0 0 1 0-1.7l1.414-1.411a1.2 1.2 0 0 1 1.7 0L16 14.888l5.516-5.515a1.2 1.2 0 0 1 1.7 0l1.414 1.414a1.2 1.2 0 0 1 0 1.7L19.112 18l5.516 5.516a1.2 1.2 0 0 1 0 1.7z"
}));

/***/ }),

/***/ "jBYB":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

/*
Copyright (c) 2014, Yahoo! Inc. All rights reserved.
Copyrights licensed under the New BSD License.
See the accompanying LICENSE file for terms.
*/

Object.defineProperty(exports, "__esModule", {
  value: true
});
/* jslint esnext: true */

var round = Math.round;

function daysToYears(days) {
  // 400 years have 146097 days (taking into account leap year rules)
  return days * 400 / 146097;
} // Thanks to date-fns
// https://github.com/date-fns/date-fns
// MIT © Sasha Koss


var MILLISECONDS_IN_MINUTE = 60000;
var MILLISECONDS_IN_DAY = 86400000;

function startOfDay(dirtyDate) {
  var date = new Date(dirtyDate);
  date.setHours(0, 0, 0, 0);
  return date;
}

function differenceInCalendarDays(dirtyDateLeft, dirtyDateRight) {
  var startOfDayLeft = startOfDay(dirtyDateLeft);
  var startOfDayRight = startOfDay(dirtyDateRight);
  var timestampLeft = startOfDayLeft.getTime() - startOfDayLeft.getTimezoneOffset() * MILLISECONDS_IN_MINUTE;
  var timestampRight = startOfDayRight.getTime() - startOfDayRight.getTimezoneOffset() * MILLISECONDS_IN_MINUTE; // Round the number of days to the nearest integer
  // because the number of milliseconds in a day is not constant
  // (e.g. it's different in the day of the daylight saving time clock shift)

  return Math.round((timestampLeft - timestampRight) / MILLISECONDS_IN_DAY);
}

function default_1(from, to) {
  // Convert to ms timestamps.
  from = +from;
  to = +to;
  var millisecond = round(to - from),
      second = round(millisecond / 1000),
      minute = round(second / 60),
      hour = round(minute / 60); // We expect a more precision in rounding when dealing with
  // days as it feels wrong when something happended 13 hours ago and
  // is regarded as "yesterday" even if the time was this morning.

  var day = differenceInCalendarDays(to, from);
  var week = round(day / 7);
  var rawYears = daysToYears(day),
      month = round(rawYears * 12),
      year = round(rawYears);
  return {
    millisecond: millisecond,
    second: second,
    'second-short': second,
    minute: minute,
    'minute-short': minute,
    hour: hour,
    'hour-short': hour,
    day: day,
    'day-short': day,
    week: week,
    'week-short': week,
    month: month,
    'month-short': month,
    year: year,
    'year-short': year
  };
}

exports.default = default_1;

/***/ }),

/***/ "jIre":
/***/ (function(module, exports, __webpack_require__) {

/* WEBPACK VAR INJECTION */(function(Buffer) {module.exports = function xor(a, b) {
  var length = Math.min(a.length, b.length);
  var buffer = new Buffer(length);

  for (var i = 0; i < length; ++i) {
    buffer[i] = a[i] ^ b[i];
  }

  return buffer;
};
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("HDXh").Buffer))

/***/ }),

/***/ "jN/6":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("path", {
  d: "M6.745 12.073h-5.29A1.473 1.473 0 0 0 0 13.564v8.942A1.473 1.473 0 0 0 1.455 24h5.29a1.429 1.429 0 0 1 .93.345l7.13 7.259A.727.727 0 0 0 16 31.029V5a.726.726 0 0 0-1.194-.571l-7.127 7.3a1.437 1.437 0 0 1-.934.344zM22.04 18a6.936 6.936 0 0 1-1.408 4.192.981.981 0 0 0 .087 1.288l.016.016a.991.991 0 0 0 1.486-.09 8.954 8.954 0 0 0-.021-10.853.991.991 0 0 0-1.484-.087l-.016.016a.982.982 0 0 0-.084 1.293A6.944 6.944 0 0 1 22.04 18z"
}));

/***/ }),

/***/ "jOmW":
/***/ (function(module, exports) {

/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
module.exports = {
  'ccd.infoPanel.detail.created': 'Oprettet',
  'ccd.infoPanel.detail.modified': 'Ændret',
  'ccd.infoPanel.detail.size': 'Størrelse',
  'ccd.infoPanel.detail.shared': 'Delt',
  'ccd.header.renameFolder': 'Omdøb mappe',
  'ccd.menu.addToFavourites': 'Føj til genveje',
  'ccd.menu.removeFromFavourites': 'Fjern genvej',
  'ccd.menu.viewonweb': 'Vis på web',
  'ccd.menu.share': 'Del',
  'ccd.menu.openWith': 'Åbn i',
  'ccd.menu.changeDefaultApp': 'Skift standardprogram...',
  'ccd.menu.default': '(standard)',
  'ccd.menu.export': 'Eksportér som lokal kopi',
  'ccd.menu.download': 'Download',
  'ccd.menu.createNew': 'Opret ny...',
  'ccd.menu.launch': 'START',
  'actionMenuItem.permdelete': 'Slet permanent',
  'tab.Cloud Documents': 'Dine filer',
  'tab.Home': 'Hjem',
  'header.CloudDocuments': 'Dine filer',
  'header.SharedWithYou': 'Delt med dig',
  'header.Deleted': 'Slettet',
  'header.Deleted.AssetsWebLink': 'Gå til Assets Web for at se alle slettede poster',
  'header.SelectedDocuments': '{numSelected, plural, =1 {#} other {#}} valgt',
  'header.size': 'Størrelse',
  'header.title': 'Navn',
  'header.modifiedDate': 'Ændringsdato',
  'header.createDate': 'Oprettelsesdato',
  'header.shareDate': 'Delingsdato',
  'header.SortBy': 'Sortér efter',
  'header.infoPopover.body': 'Kun kompatible filer vises. Gå til Creative Cloud på web for at se alle filer.',
  'header.infoPopover.link': 'Gå til Creative Cloud',
  'header.dragImport': 'Upload til: {displayName}',
  'collaborators.onlyYou': 'Kun dig',
  'collaborators.Owner': '{displayName} (ejer)',
  'collaborators.More': '{numItems, plural, other {+# flere}}',
  'empty.offline.root.title': 'Forbindelsen er blevet afbrudt',
  'empty.offline.root.subtitle': 'Elementer, der var synlige, mens du var online, vises her, når du opretter forbindelse igen.',
  'empty.offline.folder.title': 'Mappen kunne ikke indlæses',
  'empty.offline.folder.subtitle': 'Ingen internetforbindelse. Opret forbindelse igen for at få vist alt.',
  'empty.online.cdp.saveas.root.title': 'Der er ingen cloud-dokumenter, der kan vises',
  'empty.online.cdp.saveas.root.subtitle': 'Med cloud-dokumenter er dit arbejde altid opdateret på tværs af alle enheder, uanset hvor du er. Du skal blot oprette forbindelse til internettet og gå i gang.',
  'empty.online.cdp.saveas.root.subtitle.sprk': 'Alle dine cloud-dokumenter fra XD vil være lige her. Arbejd overalt, også offline. Ændringer på cloud-dokumenter gemmes automatisk og kan ses i dokumenthistorikken.',
  'empty.online.cdp.saveas.root.subtitle.phxs': 'Alle dine cloud-dokumenter fra Photoshop på Mac, Windows og iPad vil være lige her.',
  'empty.online.cdp.saveas.root.subtitle.ilst': 'Alle dine cloud-dokumenter fra Illustrator på Mac og Windows vil være lige her.',
  'empty.online.cdp.saveas.root.subtitle.idsn': 'Alle dine cloud-dokumenter fra InDesign på Mac og Windows vil være lige her.',
  'empty.online.cdp.saveas.folder.title': 'Der er ingen cloud-dokumenter, der kan vises',
  'empty.online.cdp.saveas.folder.subtitle': 'Når du lægger et kompatibelt cloud-dokument i denne mappe, vises det her.',
  'empty.online.cdp.open.root.title': 'Der er ingen cloud-dokumenter, der kan vises',
  'empty.online.cdp.open.root.subtitle': 'Når du lægger et kompatibelt cloud-dokument i denne mappe, vises det her.',
  'empty.online.cdp.open.root.subtitle.sprk': 'Alle dine cloud-dokumenter fra XD vil være lige her. Arbejd overalt, også offline. Ændringer på cloud-dokumenter gemmes automatisk og kan ses i dokumenthistorikken.',
  'empty.online.cdp.open.root.subtitle.phxs': 'Alle dine cloud-dokumenter fra Photoshop på Mac, Windows og iPad vil være lige her.',
  'empty.online.cdp.open.root.subtitle.ilst': 'Alle dine cloud-dokumenter fra Illustrator på Mac og Windows vil være lige her.',
  'empty.online.cdp.open.root.subtitle.idsn': 'Alle dine cloud-dokumenter fra InDesign på Mac og Windows vil være lige her.',
  'empty.online.cdp.open.folder.title': 'Der er ingen cloud-dokumenter, der kan vises',
  'empty.online.cdp.open.folder.subtitle': 'Når du lægger et kompatibelt cloud-dokument i denne mappe, vises det her.',
  'empty.online.cdo.root.title': 'Du har ingen cloud-dokumenter',
  'empty.online.cdo.root.subtitle': 'Samarbejd problemfrit med andre, og arbejd hvor som helst, også selvom du er offline. Ændringer gemmes automatisk og kan ses i filhistorikken.',
  'empty.online.cdo.root.subtitle.sprk': 'Samarbejd problemfrit i realtid med andre, og arbejd hvor som helst, også selvom du er offline. Ændringer gemmes automatisk og kan ses i filhistorikken.',
  'empty.online.cdo.root.subtitle.phxs': 'Samarbejd problemfrit i realtid med andre, og arbejd hvor som helst, hvor du logger på Photoshop, også selvom du er offline. Ændringer gemmes automatisk og kan ses i filhistorikken.',
  'empty.online.cdo.root.subtitle.ilst': 'Samarbejd problemfrit i realtid med andre, og arbejd hvor som helst, hvor du logger på Illustrator, også selvom du er offline. Ændringer gemmes automatisk og kan ses i filhistorikken.',
  'empty.online.cdo.root.subtitle.idsn': 'Få adgang til dine dokumenter, uanset hvor du logger ind på InDesign. Ændringer gemmes automatisk.',
  'empty.online.cdo.folder.title': 'Der er ingen cloud-dokumenter, der kan vises',
  'empty.online.cdo.folder.subtitle': 'Når du lægger et kompatibelt cloud-dokument i denne mappe, vises det her.',
  'empty.title.deleted': 'Du har ingen slettede filer',
  'empty.title.deleted_offline': 'Forbindelsen er blevet afbrudt',
  'empty.title.recent': 'Du har ingen seneste filer',
  'empty.subtext.deleted_offline': 'Elementer, der blev slettet, mens du var online, vises her, når du opretter forbindelse igen.',
  'empty.title.shared_with_you': 'Du har ingen delte cloud-dokumenter',
  'empty.subtext.shared_with_you': 'Når nogen deler cloud-dokumenter med dig, vil de blive vist her.',
  'empty.title.shared_with_you_offline': 'Forbindelsen er blevet afbrudt',
  'empty.subtext.shared_with_you_offline': 'Du kan se og redigere delte dokumenter, når forbindelsen er genoprettet.',
  'empty.title.error': 'Noget gik galt',
  'empty.subtext.error': 'Genstart appen, og prøv igen.',
  'empty.subtext.error.web': 'Opdater din browser, og prøv igen.',
  'empty.title.coresync.down': 'Kan ikke indlæse',
  'empty.subtext.coresync.down': 'Clouden synkroniseres ikke. Sørg for, at Creative Cloud til computer er opdateret, eller prøv at genstarte appen.',
  'empty.title.coresync.incompatible': 'Cloud-dokumenter kan ikke indlæses',
  'empty.subtext.coresync.incompatible': 'Vi kan ikke vise elementer lige nu. Opdater din version af Creative Cloud-programmet, og prøv igen.',
  'empty.title.cloudStorageDisabled': 'Cloud-dokumenter er ikke tilgængelige',
  'empty.subtext.cloudStorageDisabled': 'Du kan kun bruge {productName} til at arbejde på filer på din enhed. Kontakt din it-administrator for at få flere oplysninger.',
  'empty.title.logout': 'Log ind for at få adgang til cloud-dokumenter.',
  'empty.learnMore.link': 'Få mere at vide',
  'trueEmpty.online.cdo.folder.title': 'Der er ikke noget i denne mappe',
  'trueEmpty.online.cdo.folder.subtitle': 'Tilføj ting her for at begynde at udfylde den.',
  'trueEmpty.online.cdp.saveas.folder.title': 'Ingen cloud-dokumenter – endnu',
  'trueEmpty.online.cdp.saveas.folder.subtitle': 'Med cloud-dokumenter er dit arbejde altid opdateret på tværs af alle enheder, uanset hvor du er. Du skal blot oprette forbindelse til internettet og gå i gang.',
  'trueEmpty.online.cdp.open.folder.title': 'Ingen cloud-dokumenter – endnu',
  'trueEmpty.online.cdp.open.folder.subtitle': 'Med cloud-dokumenter er dit arbejde altid opdateret på tværs af alle enheder, uanset hvor du er. Du skal blot oprette forbindelse til internettet og gå i gang.',
  'filter.prompt': 'Skriv nøgleord',
  'filter.title': 'Filtrer',
  'empty.filter.title': 'Ingen resultater for "{filterString}"',
  'empty.filter.subtitle': 'Kontrollér din stavning, prøv et bredere nøgleord, eller filtrer en anden placering.',
  'beta.title': 'Synkroniser dit arbejde på tværs af dine enheder',
  'beta.subtitle': 'Arbejd problemfrit i Photoshop på din iPad og computer med cloud-dokumenter. Funktionen er i beta, så den fungerer muligvis ikke altid som forventet. Du kan aktivere og deaktivere den i Indstillinger.',
  'beta.button': 'Aktivér i Indstillinger',
  'beta.tag': 'BETA',
  'beta.feedback.link': 'Giv feedback på betaen',
  'button.add-folder': 'Opret ny mappe',
  'button.upload': 'Upload...',
  'button.createnew': 'Opret nyt',
  'button.reportAbuse': 'Rapportér misbrug',
  'button.open': 'Åbn',
  'button.select': 'Vælg',
  'button.rename': 'Omdøb',
  'button.pin.header': 'Gør altid tilgængelig offline',
  'button.pin': 'Gør altid tilgængelig offline',
  'button.unpin.header': 'Gør tilgængelig kun online',
  'button.unpin': 'Gør tilgængelig kun online',
  'button.duplicate': 'Dupliker',
  'button.download': 'Download',
  'button.move': 'Flyt',
  'button.delete': 'Slet',
  'button.restore': 'Gendan',
  'button.permdelete': 'Slet permanent',
  'button.listview': 'Vis liste',
  'button.gridview': 'Vis gitter',
  'button.sharesheetinvite': 'Invitation til at redigere',
  'button.sharesheetLink': 'Hent link',
  'button.shareSheetAction': 'Del',
  'button.preview': 'Forhåndsvisning',
  'button.schedule': 'Planlæg',
  'action.duplicate.suffix': '(Dupliker)',
  'action.resolve_sync_error.suffix': 'kopi',
  'statusIcon.conflicted': 'Synk.-konflikt',
  'statusIcon.onlineOnly': 'Kun online',
  'statusIcon.availableOffline': 'Tilgængelig offline',
  'statusIcon.syncing': 'Synkroniserer...',
  'statusIcon.waitingToSync': 'Venter på at synkronisere',
  'tooltip.error': 'Åbn dokument for at gennemgå lagringskonflikt',
  'toast.error.documentIsOpen': 'Luk {count, plural, =1 {dokumentet} other {dokumenterne}} for at udføre denne handling.',
  'toast.error.exceedsQuota.personal': 'Din konto er løbet tør for lagerplads',
  'toast.error.exceedsQuota.enterprise': 'Der er ikke mere lagerplads. Kontakt din administrator for at få flere oplysninger',
  'toast.operation.duplicate.error': '{count, plural, =1 {Elementet} other {{count} elementer}} kunne ikke dublikeres.',
  'toast.operation.duplicate.success': '{count, plural, =1 {Elementet} other {{count} elementer}} er dublikeret.',
  'toast.operation.archive.error': '{count, plural, =1 {element} other {{count} elementer}} kunne ikke slettes.',
  'toast.operation.archive.error.otherAppUncommittedChanges': 'Du kan ikke slette filer, der er åbne i andre apps. Luk dem, og prøv derefter igen.',
  'toast.operation.archive.undo.error': '{count, plural, =1 {element} other {{count} elementer}} kunne ikke slettes.',
  'toast.operation.archive.success': '{count, plural, =1 {element} other {{count} elementer}} er slettet.',
  'toast.operation.archive.undo.success': 'Gendan fortryd.',
  'toast.operation.permdelete.error': '{count, plural, =1 {element} other {{count} elementer}} kunne ikke slettes permanent.',
  'toast.operation.permdelete.success': '{count, plural, =1 {element} other {{count} elementer}} er slettet permanent.',
  'toast.operation.rename.error': 'Elementet kunne ikke omdøbes.',
  'toast.operation.rename.undo.error': 'Elementet kunne ikke omdøbes.',
  'toast.operation.rename.error.duplicateName': 'Du har allerede et element her med dette navn.',
  'toast.operation.rename.undo.error.duplicateName': 'Du har allerede et element her med dette navn.',
  'toast.operation.rename.success': 'Elementet er omdøbt.',
  'toast.operation.rename.undo.success': 'Omdøb fortryd.',
  'toast.operation.move.error': '{count, plural, =1 {element} other {{count} elementer}} kunne ikke flyttes.',
  'toast.operation.move.undo.error': '{count, plural, =1 {element} other {{count} elementer}} kunne ikke flyttes.',
  'toast.operation.move.error.duplicateFolderName': 'Du har allerede en mappe her med dette navn.',
  'toast.operation.move.undo.error.duplicateFolderName': 'Du har allerede en mappe her med dette navn.',
  'toast.operation.move.error.duplicateDocName': '{count, plural, =1 {Der er allerede et dokument med dette navn i den mappe. Omdøb, og prøv igen} other {Dokumenter kan ikke flyttes, fordi der er dokumenter med samme navn.}}',
  'toast.operation.move.undo.error.duplicateDocName': '{count, plural, =1 {Der er allerede et dokument med dette navn i den mappe. Omdøb, og prøv igen} other {Dokumenter kan ikke flyttes, fordi der er dokumenter med samme navn.}}',
  'toast.operation.move.success': '{count, plural, =1 {element} other {{count} elementer}} er flyttet.',
  'toast.operation.move.undo.success': 'Flyt fortryd.',
  'toast.operation.unarchive.error': '{count, plural, =1 {element} other {{count} elementer}} kunne ikke gendannes.',
  'toast.operation.unarchive.undo.error': '{count, plural, =1 {element} other {{count} elementer}} kunne ikke gendannes.',
  'toast.operation.unarchive.success': '{count, plural, =1 {element} other {{count} elementer}} er gendannet.',
  'toast.operation.unarchive.undo.success': 'Slet fortryd.',
  'toast.operation.create_new_folder.success': 'Mappe oprettet.',
  'toast.operation.create_new_folder.error': 'En ny mappe kunne ikke oprettes.',
  'toast.operation.create_new_folder.error.duplicateName': 'Du har allerede en mappe her med dette navn.',
  'toast.operation.user_pin.success': '{count, plural, =1 {Elementet er tilgængeligt} other {{count} elementer er tilgængelige}} offline.',
  'toast.operation.user_pin.error': 'Det var ikke muligt at gøre {count, plural, =1 {elementet tilgængeligt} other {{count} elementer tilgængelige}} offline.',
  'toast.operation.user_unpin.success': '{count, plural, =1 {Element kun tilgængeligt} other {{count} elementer kun tilgængelige}} online.',
  'toast.operation.user_unpin.error': 'Det var ikke muligt at gøre {count, plural, =1 {element tilgængeligt} other {{count} elementer tilgængelige}} kun online.',
  'toast.operation.resolve_sync_error.success': 'Kopi af "{name}" er oprettet. Du kan sammenligne begge dokumenter og afstemme eventuelle forskelle.',
  'toast.ccd.scroll_to_item.fetching': 'Henter fil…',
  'toast.ccd.scroll_to_item.error': 'Filen blev ikke fundet',
  'toast.info.disabled_rename_to_open_item': 'Ældre XD-dokumenter skal først åbnes, inden de kan omdøbes her.',
  'toast.action.disabled_rename_to_open_item': 'Åbn dokument',
  'toast.error.rename.invalidName': 'Beklager, men navnet indeholder ugyldige tegn.',
  'toast.error.rename.invalidChar': 'Navnet må ikke indeholde følgende tegn: {characters}',
  'toast.error.rename.invalidEnd': 'Navnet må ikke slutte med "." eller tomt mellemrum.',
  'toast.error.rename.charRestriction': 'Navne må ikke indeholde mere end 200 tegn.',
  'toast.error.rename.duplicateName': 'Du har allerede et cloud-dokument her med dette navn.',
  'toast.success.reportAbuse': 'Misbrug blev rapporteret',
  'toast.error.reportAbuse': 'Rapportering af misbrug mislykkedes',
  'toast.operation.undoLabel': 'Fortryd',
  'dialog.permdelete.heading': 'Slet permanent',
  'dialog.permdelete.warning': 'Du kan ikke fortryde denne handling. Her kan du se, hvad der vil forsvinde permanent:',
  'dialog.permdelete.cancelButton': 'Annuller',
  'dialog.permdelete.confirmButton': 'Slet permanent',
  'dialog.permdelete.countItems': '{count, plural, =1 {# element} other {# elementer}}',
  'dialog.nonemptyfolder.heading': 'Er du sikker på, du vil slette {count, plural, =1 {denne mappe} other {disse mapper}}?',
  'dialog.nonemptyfolder.warning': '{count, plural, =1 {Denne mappe er ikke tom} other {Disse mapper er ikke tomme}} og kan indeholde filer, der ikke er synlige i {appName}. Du kan fortsætte med at slette, eller du kan se {count, plural, =1 {mappen} other {mapperne}} på web for at se {count, plural, =1 {dens} other {deres}} indhold.  {viewOnWebLink}',
  'dialog.nonemptyfolder.cancelButton': 'Annuller',
  'dialog.nonemptyfolder.confirmButton': 'Slet',
  'dialog.nonemptyfolder.viewOnWebButton': 'Se på web',
  'dialog.addfolder.heading': 'Opret ny mappe',
  'dialog.addfolder.cancelButton': 'Annuller',
  'dialog.addfolder.confirmButton': 'Gem',
  'dialog.addfolder.placeholder': 'Ny mappe',
  'dialog.addfolder.invalidChar': 'Navne må ikke indeholde følgende tegn: {characters}',
  'dialog.addfolder.invalidName': 'Beklager, men mappen indeholder ugyldige tegn.',
  'dialog.addfolder.invalidEnd': 'Navnet må ikke slutte med "." eller tomt mellemrum.',
  'dialog.addfolder.duplicateName': 'Du har allerede en mappe her med dette navn.',
  'dialog.addfolder.charRestriction': 'Navne må ikke indeholde mere end 200 tegn.',
  'dialog.moveFolder.heading': 'Flyt til...',
  'dialog.moveFolder.cancelButton': 'Annuller',
  'dialog.moveFolder.moveButton': 'Flyt',
  'dialog.moveFolder.createNewFolderButton': 'Tilføj mappe',
  'dialog.reportAbuse.cancelButton': 'Annuller',
  'dialog.reportAbuse.reportAbuseButton': 'Rapportér misbrug',
  'dialog.reportAbuse.heading': 'Rapportér misbrug',
  'dialog.reportAbuse.emailInput': 'Din e-mailadresse',
  'dialog.reportAbuse.nameInput': 'Dit navn',
  'dialog.reportAbuse.radioButtonText': 'Hvorfor rapporterer du dette indhold?',
  'dialog.reportAbuse.defamation': 'Ærekrænkelse',
  'dialog.reportAbuse.hate': 'Racistisk eller diskriminerende indhold',
  'dialog.reportAbuse.trademark': 'Krænkelse af varemærker',
  'dialog.reportAbuse.pornography': 'Pornografisk indhold',
  'dialog.reportAbuse.vulgar': 'Krænkende indhold',
  'dialog.reportAbuse.other': 'Andet',
  'dialog.reportAbuse.inappropriate': 'Ikke passende',
  'dialog.reportAbuse.age': 'Unøjagtighed i forbindelse med alder',
  'dialog.reportAbuse.gender': 'Unøjagtighed i forbindelse med køn',
  'dialog.reportAbuse.description': 'Hvis du føler, at dette Creative Cloud-indhold krænker Adobes Vilkår for brug, kan du rapportere indholdet ved at udfylde denne ekspresformular.',
  'dialog.reportAbuse.describeConcern': 'Beskriv din bekymring',
  'dialog.reportAbuse.success': 'Misbrug blev rapporteret',
  'dialog.reportAbuse.failure': 'Rapportering af misbrug mislykkedes',
  'dialog.reportAbuse.textAreaTitle': 'Beskriv din bekymring',
  'dialog.reportAbuse.required': 'Påkrævet',
  'dialog.cachefull.title': 'Kan ikke gøre tilgængelig offline',
  'dialog.cachefull.message': 'Du er løbet tør for plads på enheden. Gør dokumenter tilgængelige kun online for at frigøre noget plads.',
  'dialog.cachefull.confirm': 'OK',
  'dialog.syncError.heading': 'Dette dokument er stoppet med at synkronisere med clouden',
  'dialog.syncError.body1': 'Vi anbefaler, at du gemmer din seneste version som en kopi og gendanner dokumentet til den sidste version, der er gemt i clouden.',
  'dialog.syncError.body2': 'Du kan åbne dette dokument og foretage redigeringer, men ændringerne gemmes ikke i clouden.',
  'dialog.syncError.offline': 'Du skal være online for at kunne gemme en kopi og gendanne originalen.',
  'dialog.syncError.learnMore': 'Få mere at vide',
  'dialog.syncError.resolveButton': 'Gem en kopi og gendan',
  'dialog.syncError.openButton': 'Åbn',
  'dialog.syncErrorCopyFail.heading': 'Det var ikke muligt at gemme en kopi',
  'dialog.syncErrorCopyFail.body1': 'Du kan stadig åbne dette dokument og foretage redigeringer, men ændringerne gemmes ikke i clouden.',
  'dialog.syncErrorCopyFail.body2': 'Kontakt Adobe Kundepleje for at få yderligere hjælp. (Fejl: LocalContentSyncSuspended)',
  'dialog.syncErrorCopyFail.closeButton': 'Luk',
  'dialog.syncErrorCopyFail.contactUs': 'Kontakt os',
  'dialog.syncErrorPurgeFail.heading': 'Det var ikke muligt at gendanne til den seneste version, der er gemt i clouden',
  'dialog.syncErrorPurgeFail.body1': 'En kopi af dit dokument er blevet oprettet, men vi kunne ikke gendanne dit dokument til den senest gemte version i clouden.',
  'dialog.syncErrorPurgeFail.body2': 'Kontakt Adobe Kundepleje for at få yderligere hjælp. (Fejl: LocalContentSyncSuspended)',
  'dialog.syncErrorPurgeFail.closeButton': 'Luk',
  'dialog.syncErrorPurgeFail.contactUs': 'Kontakt os',
  'onboardingCdo.banner.title.sprk': 'En bedre måde at arbejde på',
  'onboardingCdo.banner.title.phxs': 'Bruger du Photoshop på iPad? Prøv cloud-dokumenter',
  'onboardingCdo.banner.title.ilst': 'Nu kan du bruge cloud-dokumenter i Illustrator',
  'onboardingCdo.banner.title.idsn': 'Nu kan du bruge cloud-dokumenter i InDesign',
  'onboardingCdo.banner.message.sprk': 'Rediger dine cloud-dokumenter overalt, også offline. Ændringer gemmes automatisk og kan ses i dokumentoversigten. Del dem med andre for at samarbejde uden problemer i realtid.',
  'onboardingCdo.banner.message.phxs': 'Cloud-dokumenter gemmes automatisk i Adobes cloud, mens du arbejder, så du kan få adgang til dine filer på computer og iPad.',
  'onboardingCdo.banner.message.ilst': 'Cloud-dokumenter i Illustrator gemmes automatisk i Adobes cloud, mens du arbejder. Du kan også få vist versionshistorikken for at se, hvordan dit arbejde har udviklet sig.',
  'onboardingCdo.banner.message.idsn': 'Cloud-dokumenter i InDesign gemmes automatisk i Adobes cloud, mens du arbejder.',
  'onboardingCdo.banner.linkTitle': 'Få mere at vide',
  'onboardingCdo.banner.confirm': 'OK',
  'operation.progress.archive': 'Sletter {batchSize, plural, =1 {1 element} other {{inProgressNum} ud af {batchSize} elementer}}...',
  'operation.progress.unarchive': 'Gendanner {batchSize, plural, =1 {1 element} other {{inProgressNum} ud af {batchSize} elementer}}...',
  'operation.progress.move': 'Flytter {batchSize, plural, =1 {1 element} other {{inProgressNum} ud af {batchSize} elementer}}...',
  'operation.progress.permdelete': 'Sletter permanent {batchSize, plural, =1 {1 element} other {{inProgressNum} ud af {batchSize} elementer}}...',
  'operation.progress.rename': 'Omdøber {batchSize, plural, =1 {1 element} other {{inProgressNum} ud af {batchSize} elementer}}...',
  'operation.progress.create_new_folder': 'Opretter ny mappe...',
  'operation.progress.duplicate': 'Dublikerer {batchSize, plural, =1 {1 element} other {{inProgressNum} ud af {batchSize} elementer}}...',
  'operation.progress.user_pin': 'Gør {batchSize, plural, =1 {1 element tilgængeligt} other {{inProgressNum} ud af {batchSize} elementer tilgængelige}} offline...',
  'operation.progress.user_unpin': 'Gør {batchSize, plural, =1 {1 element tilgængeligt} other {{inProgressNum} ud af {batchSize} elementer tilgængelige}} kun online...',
  'operation.progress.resolve_sync_error': 'Kopierer og gendanner til senest gemte version i clouden...',
  'tooltip.offline.general': 'Der kræves en internetforbindelse.',
  'tooltip.offline.create-new-folder': 'Der kræves en internetforbindelse for at oprette mapper.',
  'tooltip.offline.move': 'Der kræves en internetforbindelse for at flytte elementer.',
  'tooltip.syncing.disabled': 'Afventer fuldførelse af synkronisering',
  'tooltip.rename.disabled': 'Et valgt dokument kan ikke omdøbes. Åbn i værtsprogrammet for at aktivere omdøbning.',
  'tooltip.rename.disabled.sprk': 'Denne fil kan ikke omdøbes, før du åbner den i XD.',
  'tooltip.syncSuspended.needsAction': 'Synkroniseringen er stoppet. Åbn for at foretage en handling.',
  'tooltip.syncSuspended.noAction': 'Synkroniseringen er stoppet. Denne handling er ikke tilladt på nuværende tidspunkt.',
  'Recents.title': 'Seneste',
  'Recents.cloudDocTitle': 'CLOUD-DOKUMENT',
  'Recents.error.subtext.coreSync': 'Seneste er ikke tilgængelige i øjeblikket, da Creative Cloud-synkronisering ikke kører korrekt.',
  'item.saveForOfflineIconToolTip': 'Dette dokument er blevet downloadet og er fuldt tilgængeligt offline.',
  'item.disconnected.cloudonly': 'Du er offline. Opret forbindelse igen for at åbne dokumentet.',
  'item.coresyncdown.cloudonly': 'Filen kan ikke indlæses. Problemet kan muligvis løses ved at opdatere eller genstarte Creative Cloud.',
  'folder.subtitle': 'MAPPE',
  'review.subtitle': 'GENNEMGÅ',
  'prototype.subtitle': 'PROTOTYPE',
  'designspecs.subtitle': 'DESIGNSPEC',
  'project.subtitle': 'PROJEKT',
  'library.subtitle': 'BIBLIOTEK',
  'webLink.subtitle': 'WEBLINK',
  'abbreviations.fileSize.byte': 'B',
  'abbreviations.fileSize.kilobyte': 'KB',
  'abbreviations.fileSize.megabyte': 'MB',
  'abbreviations.fileSize.gigabyte': 'GB',
  'abbreviations.fileSize.terabyte': 'TB',
  'sam.copyNameFormat': '%@ kopi',
  'cloudsync.quota.title': 'CLOUD-LAGERPLADS',
  'cloudsync.quota.percentage': '{percentageUsed} %',
  'cloudsync.quota.usage': '{usedCloudQuotaString} ud af {maxCloudQuotaString} brugt',
  'cloudsync.quota.warning': 'Din cloud-lagerplads er fuld. Opgrader for at fortsætte med at synkronisere dit arbejde.',
  'cloudsync.quota.error': 'Der er ikke nogen tilgængelige lageroplysninger...',
  'cloudsync.quota.upgrade': 'Opgrader',
  'cloudsync.status.complete.title': 'Synkroniseret og sikkerhedskopieret',
  'cloudsync.status.syncing.title': 'Synkroniserer cloud-dokumenter',
  'cloudsync.status.syncing.descr': '{progress}/{total}',
  'cloudsync.status.offline.title': 'Arbejder offline',
  'cloudsync.status.offline.descr': 'Vi gemmer lokalt. Dokumenterne vil blive synkroniseret med clouden, når du har forbindelse igen.',
  'cloudsync.status.disabled.title': 'Synkronisering deaktiveret',
  'cloudsync.status.disabled.descr': 'Vi gemmer lokalt. Dokumenterne vil blive synkroniseret med clouden, når der er tilgængelig lagerplads.',
  'cloudsync.item.progress.determinate': '{progress}/{total}',
  'cloudsync.item.progress.indeterminate': 'Synkroniserer...',
  'cloudsync.item.complete': 'Fuldfør',
  'cloudsync.items.header': 'Netværksaktivitet',
  'cloudsync.alert.title.coresync.down': 'Kan ikke indlæse',
  'cloudsync.alert.subtext.coresync.down': 'Clouden synkroniseres ikke. Sørg for, at Creative Cloud til computer er opdateret, eller prøv at genstarte appen.',
  'cloudsync.alert.subtext.coresync.down.learnmore': 'Få mere at vide',
  'cloudsync.tooltip.offline': 'Afbrudt',
  'cloudsync.tooltip.error': 'Fejl',
  'cloudsync.tooltip.syncing': 'Gemmer...',
  'cloudsync.tooltip.default': 'Gemt',
  'cloudsync.singleDoc.offline.title': 'Afbrudt',
  'cloudsync.singleDoc.offline.descr': 'Prøver at oprette forbindelse igen...',
  'cloudsync.singleDoc.offline.timestamp': 'Sidst synkroniseret {time}',
  'cloudsync.singleDoc.error.samInitFail.title': 'Clouden stoppede med at synkronisere',
  'cloudsync.singleDoc.error.samInitFail.descr': 'Genstart denne app for at fortsætte med at synkronisere dit arbejde.',
  'cloudsync.singleDoc.error.syncSuspended.title': 'Clouden stoppede med at synkronisere',
  'cloudsync.singleDoc.error.syncSuspended.descr': 'Genstart denne app for at fortsætte med at synkronisere dit arbejde.',
  'cloudsync.singleDoc.error.title': 'Kan ikke indlæse',
  'cloudsync.singleDoc.error.descr': 'Clouden synkroniseres ikke. Sørg for, at Creative Cloud til computer er opdateret, eller prøv at genstarte appen.',
  'cloudsync.singleDoc.error.learnMore': 'Få mere at vide',
  'cloudsync.singleDoc.disabled.quotaExceeded.title': 'Dit cloudlager er fyldt op',
  'cloudsync.singleDoc.disabled.quotaExceeded.descr': 'Opgrader Creative Cloud for at fortsætte med at synkronisere dit arbejde.',
  'cloudsync.singleDoc.syncing.title': 'Gemmer...',
  'cloudsync.singleDoc.syncing.descr': 'I gang',
  'cloudsync.singleDoc.disabled.title': 'Kan ikke gemme',
  'cloudsync.singleDoc.disabled.descr': 'Din konto er løbet tør for lagerplads.',
  'cloudsync.singleDoc.complete.title': 'Filen blev gemt',
  'cloudsync.singleDoc.complete.timestamp': 'Sidst synkroniseret {time}'
};

/***/ }),

/***/ "jQ0c":
/***/ (function(module) {

module.exports = JSON.parse("{\"(optional)\":\"(opcjonalne)\",\"(required)\":\"(wymagane)\"}");

/***/ }),

/***/ "jR+r":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}


/* harmony default export */ __webpack_exports__["a"] = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("svg", _extends({
  id: "outlined",
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 120 120"
}, props), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("defs", null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M80.084 23.18a1.5 1.5 0 0 0 1.5-1.5v-4.607a.426.426 0 0 1 .426-.426h27.606a.426.426 0 0 1 .426.426v41.089a.426.426 0 0 1-.426.425H90.042a1.5 1.5 0 0 0 0 3h19.574a3.43 3.43 0 0 0 3.426-3.425v-41.09a3.43 3.43 0 0 0-3.426-3.425H82.01a3.43 3.43 0 0 0-3.426 3.426v4.606a1.5 1.5 0 0 0 1.5 1.5z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M95.242 18.496a.808.808 0 1 0 1.143 0 .808.808 0 0 0-1.143 0z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M98.65 54.496a2.837 2.837 0 1 0-2.837 2.838 2.84 2.84 0 0 0 2.837-2.838zm-3.674 0a.837.837 0 1 1 .837.838.838.838 0 0 1-.837-.838z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M118.558 83.658c-2.086-1.106-5.979-4.906-9.107-7.96-2.046-1.997-3.813-3.722-5.06-4.72-3.426-2.742-8.955-5.045-13.569-4.007a22.138 22.138 0 0 0-5.68 2.362c-.215.125-.42.25-.632.374V51.755a6.617 6.617 0 0 0-1.943-4.701l-6.944-6.97a6.617 6.617 0 0 0-4.719-1.96H47.786a6.2 6.2 0 0 0-6.192 6.192v40.24a6.2 6.2 0 0 0 6.192 6.193h30.531a6.198 6.198 0 0 0 5.982-4.616c.238.124.478.245.716.37 6.81 3.567 13.853 7.256 21.864 8.857a1.454 1.454 0 0 0 .296.03 1.5 1.5 0 0 0 .292-2.971c-7.588-1.518-14.132-4.945-21.06-8.573a334.828 334.828 0 0 0-4.959-2.563 3.773 3.773 0 0 1-1.005-.668 3.108 3.108 0 0 1 1.351-.18 60.648 60.648 0 0 1 6.577.893c3.881.67 7.896 1.364 11.95.717a1.5 1.5 0 1 0-.472-2.963 17.881 17.881 0 0 1-1.997.19 13.108 13.108 0 0 0-2.242-2.86l-.4-.42c-1.384-1.468-2.895-2.714-6.096-1.866a23.969 23.969 0 0 0-4.604 1.841v-2.773c.708-.423 1.414-.845 2.143-1.27a18.941 18.941 0 0 1 4.827-2.026c3.466-.78 8.176 1.133 11.037 3.422 1.13.906 2.932 2.663 4.839 4.525 3.435 3.354 7.329 7.156 9.797 8.464a1.5 1.5 0 0 0 1.405-2.65zm-41.145-3.47c-.136 1.038.22 2.534 2.687 3.775.468.236.93.483 1.397.722a3.189 3.189 0 0 1-3.18 3.064h-30.53a3.196 3.196 0 0 1-3.193-3.192v-40.24a3.196 3.196 0 0 1 3.192-3.193h23.118a3.639 3.639 0 0 1 2.594 1.077l6.944 6.97a3.638 3.638 0 0 1 1.068 2.584v25.686c-2.278 0-3.874 1.041-4.097 2.747zm12.469-3.162c1.742-.46 2.183.003 3.145 1.024l.421.44c.208.216.415.434.617.653-1.694-.174-3.415-.466-5.183-.77q-.896-.156-1.807-.307a17.834 17.834 0 0 1 2.807-1.04z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M74.904 75.658H51.171a1 1 0 0 0 0 2h23.733a1 1 0 0 0 0-2z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M74.904 79.78H51.171a1 1 0 1 0 0 2h23.733a1 1 0 0 0 0-2z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M73.086 57.496a7.258 7.258 0 0 0-1.675-4.877 7.496 7.496 0 0 0-5.79-2.78h-.046a8.142 8.142 0 0 0-7.706 5.169 6.965 6.965 0 0 0-6.284 2.083A5.807 5.807 0 0 0 50 61.586a4.472 4.472 0 0 0-1.922 1.076 4.996 4.996 0 0 0-1.619 3.43 4.534 4.534 0 0 0 4.83 4.54h21.077a6.178 6.178 0 0 0 6.312-6.412 6.628 6.628 0 0 0-5.591-6.724zm-.72 11.136H51.288a2.53 2.53 0 0 1-2.831-2.54 2.988 2.988 0 0 1 .983-1.967 2.31 2.31 0 0 1 1.56-.669c.046 0 .094.002.142.005a1 1 0 0 0 1.012-1.332 3.61 3.61 0 0 1 .898-3.679 5.124 5.124 0 0 1 5.211-1.317 1 1 0 0 0 1.228-.706 6.306 6.306 0 0 1 6.083-4.588h.036a5.502 5.502 0 0 1 4.25 2.043 5.221 5.221 0 0 1 1.138 4.259 1 1 0 0 0 .883 1.192c3.003.293 4.795 2.12 4.795 4.887a4.198 4.198 0 0 1-4.312 4.412z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M36.42 70.071H8.334a2.579 2.579 0 0 0-2.576 2.576V97.71H2.145a1.5 1.5 0 0 0-1.5 1.5v3.858a3.228 3.228 0 0 0 3.225 3.225h31.527a1.5 1.5 0 0 0 0-3H3.87a.225.225 0 0 1-.225-.225v-2.358H23.04v.748a1.547 1.547 0 0 0 1.544 1.545h4.327a1.547 1.547 0 0 0 1.545-1.545v-.748h4.012a1.5 1.5 0 0 0 0-3H8.757V73.071h27.664a1.5 1.5 0 0 0 0-3zm-7.963 30.932H25.04v-.293h3.416z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M25.435 75.998a1.314 1.314 0 1 0 1.314-1.353 1.334 1.334 0 0 0-1.314 1.353z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M26.422 46.664h9.587a3.76 3.76 0 0 0 3.756-3.756v-25.66a3.76 3.76 0 0 0-3.756-3.756h-9.587a3.76 3.76 0 0 0-3.756 3.756v25.66a3.76 3.76 0 0 0 3.756 3.756zm-.756-29.416a.756.756 0 0 1 .756-.756h9.587a.756.756 0 0 1 .756.756v25.66a.756.756 0 0 1-.756.756h-9.587a.756.756 0 0 1-.756-.756z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M29.902 20.542h2.627a1.431 1.431 0 0 0 1.43-1.43v-.288a1 1 0 0 0-1.96-.282h-1.566a1 1 0 0 0-1.96.282v.289a1.431 1.431 0 0 0 1.43 1.43z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M30.128 42.887h2.175a2.32 2.32 0 1 0 0-4.64h-2.175a2.32 2.32 0 0 0 0 4.64zm0-2.64h2.175a.32.32 0 1 1 0 .64h-2.175a.32.32 0 0 1 0-.64z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M20.781 68.135c.038 0 .076-.001.114-.004a1.5 1.5 0 0 0 1.383-1.609 40.015 40.015 0 0 1-.111-2.976 38.951 38.951 0 0 1 2.36-13.406 1.5 1.5 0 0 0-2.818-1.03 41.948 41.948 0 0 0-2.542 14.436c0 1.065.04 2.142.12 3.201a1.5 1.5 0 0 0 1.494 1.388z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M88.871 92.064a39.079 39.079 0 0 1-45.139 7.304l1.83-.605a1.5 1.5 0 1 0-.941-2.848l-5.418 1.791a1.5 1.5 0 0 0-.953 1.895l1.814 5.486a1.5 1.5 0 0 0 2.848-.942l-.725-2.193a42.09 42.09 0 0 0 48.805-7.766 1.5 1.5 0 0 0-2.12-2.122z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M45.242 28.781a38.768 38.768 0 0 1 16.001-3.416 39.324 39.324 0 0 1 34.063 19.936l-1.908-.622a1.5 1.5 0 1 0-.93 2.852l5.426 1.77a1.499 1.499 0 0 0 1.89-.96l1.792-5.494a1.5 1.5 0 1 0-2.851-.931l-.694 2.127a42.334 42.334 0 0 0-36.788-21.678 41.754 41.754 0 0 0-17.232 3.68 1.5 1.5 0 1 0 1.23 2.736z"
})));

/***/ }),

/***/ "jSb8":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ErrorBoundary; });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _stores_Settings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("5u1M");
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/


class ErrorBoundary extends react__WEBPACK_IMPORTED_MODULE_0__["Component"] {
    constructor(props) {
        super(props);
        this.state = {
            hasError: false,
        };
    }
    componentDidCatch(error, info) {
        /* eslint-disable @typescript-eslint/no-magic-numbers */
        const { message } = this.props;
        this.setState({ hasError: true });
        _stores_Settings__WEBPACK_IMPORTED_MODULE_1__[/* settings */ "b"].logger.error(message, `Error information: ${JSON.stringify(info, null, 2)}`, `The Error: ${JSON.stringify(error, null, 2)}`);
        /* eslint-enable */
    }
    render() {
        const { children, message } = this.props;
        const { hasError } = this.state;
        if (hasError) {
            // You can render any custom fallback UI
            return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("p", null, `Error: ${message}`);
        }
        return children;
    }
}


/***/ }),

/***/ "jU2i":
/***/ (function(module, exports) {

/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
module.exports = {
  'ccd.infoPanel.detail.created': 'Oluşturma tarihi',
  'ccd.infoPanel.detail.modified': 'Değiştirme tarihi',
  'ccd.infoPanel.detail.size': 'Boyut',
  'ccd.infoPanel.detail.shared': 'Paylaşılan',
  'ccd.header.renameFolder': 'Klasörü yeniden adlandır',
  'ccd.menu.addToFavourites': 'Kısayollara Ekle',
  'ccd.menu.removeFromFavourites': 'Kısayolu kaldır',
  'ccd.menu.viewonweb': 'Web\'de görüntüle',
  'ccd.menu.share': 'Paylaş',
  'ccd.menu.openWith': 'Birlikte Aç',
  'ccd.menu.changeDefaultApp': 'Varsayılan uygulamayı değiştir...',
  'ccd.menu.default': '(Varsayılan)',
  'ccd.menu.export': 'Yerel kopya olarak dışa aktar',
  'ccd.menu.download': 'İndir',
  'ccd.menu.createNew': 'Yeni oluştur...',
  'ccd.menu.launch': 'BAŞLAT',
  'actionMenuItem.permdelete': 'Kalıcı olarak sil',
  'tab.Cloud Documents': 'Dosyalarınız',
  'tab.Home': 'Giriş',
  'header.CloudDocuments': 'Dosyalarınız',
  'header.SharedWithYou': 'Sizinle paylaşılanlar',
  'header.Deleted': 'Silinenler',
  'header.Deleted.AssetsWebLink': 'Silinen tüm öğeleri görüntülemek için Varlıklar Web sayfasına gidin',
  'header.SelectedDocuments': '{numSelected, plural, =1 {#} other {#}} seçili',
  'header.size': 'Boyut',
  'header.title': 'Adı',
  'header.modifiedDate': 'Değiştirme tarihi',
  'header.createDate': 'Oluşturma tarihi',
  'header.shareDate': 'Paylaşım tarihi',
  'header.SortBy': 'Sıralama ölçütü',
  'header.infoPopover.body': 'Yalnızca uyumlu dosyalar gösterilir. Tüm dosyaları görüntülemek için Web\'de Creative Cloud\'a gidin.',
  'header.infoPopover.link': 'Creative Cloud\'a Git',
  'header.dragImport': 'Yükleme konumu: {displayName}',
  'collaborators.onlyYou': 'Yalnızca siz',
  'collaborators.Owner': '{displayName} (sahibi)',
  'collaborators.More': '{numItems, plural, other {+# daha}}',
  'empty.offline.root.title': 'Bağlı değilsiniz',
  'empty.offline.root.subtitle': 'Siz çevrimiçi durumdayken görünebilir öğeler tekrar bağlandığınızda burada görünür.',
  'empty.offline.folder.title': 'Klasör yüklenemedi',
  'empty.offline.folder.subtitle': 'İnternet bağlantısı yok. Tüm içeriği görmek için yeniden bağlantı kurun.',
  'empty.online.cdp.saveas.root.title': 'Gösterilecek bulut belgesi yok',
  'empty.online.cdp.saveas.root.subtitle': 'Bulut belgeleri, nerede olursanız olun çalışmalarınızın tüm cihazlarda daima güncel olacağı anlamına gelir. İnternet\'e bağlı olmanız yeterlidir.',
  'empty.online.cdp.saveas.root.subtitle.sprk': 'XD\'den gelen tüm bulut belgelerinize buradan ulaşabilirsiniz. Çevrimdışı olsanız bile dilediğiniz yerden çalışın. Bulut belgelerinde yapılan değişiklikler otomatik olarak kaydedilir ve belge geçmişinde görüntülenebilir.',
  'empty.online.cdp.saveas.root.subtitle.phxs': 'Mac, Windows ve iPad üzerinde Photoshop\'tan kaydedilen tüm bulut belgelerinizi burada bulabilirsiniz.',
  'empty.online.cdp.saveas.root.subtitle.ilst': 'Mac ve Windows üzerinde Illustrator\'dan kaydedilen tüm bulut belgelerinizi burada bulabilirsiniz.',
  'empty.online.cdp.saveas.root.subtitle.idsn': 'Mac ve Windows\'ta InDesign\'dan kaydedilen tüm bulut belgelerinizi burada bulabilirsiniz.',
  'empty.online.cdp.saveas.folder.title': 'Gösterilecek bulut belgesi yok',
  'empty.online.cdp.saveas.folder.subtitle': 'Bu klasöre uyumlu bir bulut belgesi koyduğunuzda burada görünecektir.',
  'empty.online.cdp.open.root.title': 'Gösterilecek bulut belgesi yok',
  'empty.online.cdp.open.root.subtitle': 'Bu klasöre uyumlu bir bulut belgesi koyduğunuzda burada görünecektir.',
  'empty.online.cdp.open.root.subtitle.sprk': 'XD\'den gelen tüm bulut belgelerinize buradan ulaşabilirsiniz. Çevrimdışı olsanız bile dilediğiniz yerden çalışın. Bulut belgelerinde yapılan değişiklikler otomatik olarak kaydedilir ve belge geçmişinde görüntülenebilir.',
  'empty.online.cdp.open.root.subtitle.phxs': 'Mac, Windows ve iPad üzerinde Photoshop\'tan kaydedilen tüm bulut belgelerinizi burada bulabilirsiniz.',
  'empty.online.cdp.open.root.subtitle.ilst': 'Mac ve Windows üzerinde Illustrator\'dan kaydedilen tüm bulut belgelerinizi burada bulabilirsiniz.',
  'empty.online.cdp.open.root.subtitle.idsn': 'Mac ve Windows\'ta InDesign\'dan kaydedilen tüm bulut belgelerinizi burada bulabilirsiniz.',
  'empty.online.cdp.open.folder.title': 'Gösterilecek bulut belgesi yok',
  'empty.online.cdp.open.folder.subtitle': 'Bu klasöre uyumlu bir bulut belgesi koyduğunuzda burada görünecektir.',
  'empty.online.cdo.root.title': 'Bulut belgeniz yok',
  'empty.online.cdo.root.subtitle': 'Başkalarıyla sorunsuz bir şekilde iş birliği yapın ve çevrimdışı olsanız bile dilediğiniz yerden çalışın. Değişiklikler otomatik olarak kaydedilir ve dosya geçmişinde görüntülenebilir.',
  'empty.online.cdo.root.subtitle.sprk': 'Başkalarıyla gerçek zamanlı olarak sorunsuz bir şekilde birlikte çalışın ve çevrimdışı olsanız bile dilediğiniz yerden çalışın. Değişiklikler otomatik olarak kaydedilir ve dosya geçmişinde görüntülenebilir.',
  'empty.online.cdo.root.subtitle.phxs': 'Başkalarıyla sorunsuz bir şekilde iş birliği yapın ve çevrimdışı olsanız bile Photoshop\'a giriş yaptığınız her yerden çalışın. Değişiklikler otomatik olarak kaydedilir ve dosya geçmişinde görüntülenebilir.',
  'empty.online.cdo.root.subtitle.ilst': 'Başkalarıyla sorunsuz bir şekilde iş birliği yapın ve çevrimdışı olsanız bile Illustrator\'a giriş yaptığınız her yerden çalışın. Değişiklikler otomatik olarak kaydedilir ve dosya geçmişinde görüntülenebilir.',
  'empty.online.cdo.root.subtitle.idsn': 'InDesign\'a giriş yaptığınız her yerden belgelerinize erişin. Değişiklikler otomatik olarak kaydedilir.',
  'empty.online.cdo.folder.title': 'Gösterilecek bulut belgesi yok',
  'empty.online.cdo.folder.subtitle': 'Bu klasöre uyumlu bir bulut belgesi koyduğunuzda burada görünecektir.',
  'empty.title.deleted': 'Hiç silinmiş dosyanız yok',
  'empty.title.deleted_offline': 'Bağlı değilsiniz',
  'empty.title.recent': 'Son kullanılan dosyanız yok',
  'empty.subtext.deleted_offline': 'Siz çevrimiçi durumdayken silinen öğeler yeniden bağlandığınızda burada görünür.',
  'empty.title.shared_with_you': 'Paylaşılan bulut belgeniz yok',
  'empty.subtext.shared_with_you': 'Sizinle paylaşılan bulut belgeleri burada görünür.',
  'empty.title.shared_with_you_offline': 'Bağlı değilsiniz',
  'empty.subtext.shared_with_you_offline': 'Tekrar bağlantı kurduğunuzda paylaşılan belgeleri görüntüleyebilir ve düzenleyebilirsiniz.',
  'empty.title.error': 'Bir sorun oluştu',
  'empty.subtext.error': 'Lütfen uygulamayı yeniden başlatın ve tekrar deneyin.',
  'empty.subtext.error.web': 'Tarayıcınızı yenileyin ve tekrar deneyin.',
  'empty.title.coresync.down': 'Yüklenemedi',
  'empty.subtext.coresync.down': 'Bulut eşitlenmiyor. Creative Cloud masaüstü uygulamasının güncellendiğinden emin olun veya uygulamayı yeniden başlatmayı deneyin.',
  'empty.title.coresync.incompatible': 'Bulut belgeleri yüklenemedi',
  'empty.subtext.coresync.incompatible': 'Şu anda öğeleri gösteremiyoruz. Lütfen Creative Cloud uygulamanızın sürümünü güncelleyin ve tekrar deneyin.',
  'empty.title.cloudStorageDisabled': 'Bulut belgeleri kullanılamıyor',
  'empty.subtext.cloudStorageDisabled': 'Yalnızca cihazınızdaki dosyalar üzerinde çalışmak için {productName} kullanabilirsiniz. Daha fazla bilgi için BT yöneticinize başvurun.',
  'empty.title.logout': 'Bulut belgelerine erişmek için giriş yapın.',
  'empty.learnMore.link': 'Daha fazla bilgi',
  'trueEmpty.online.cdo.folder.title': 'Bu klasörde hiç içerik yok',
  'trueEmpty.online.cdo.folder.subtitle': 'Doldurmaya başlamak için buraya ekleyin.',
  'trueEmpty.online.cdp.saveas.folder.title': 'Henüz hiç bulut belgesi yok',
  'trueEmpty.online.cdp.saveas.folder.subtitle': 'Bulut belgeleri, nerede olursanız olun çalışmalarınızın tüm cihazlarda daima güncel olacağı anlamına gelir. İnternet\'e bağlı olmanız yeterlidir.',
  'trueEmpty.online.cdp.open.folder.title': 'Henüz hiç bulut belgesi yok',
  'trueEmpty.online.cdp.open.folder.subtitle': 'Bulut belgeleri, nerede olursanız olun çalışmalarınızın tüm cihazlarda daima güncel olacağı anlamına gelir. İnternet\'e bağlı olmanız yeterlidir.',
  'filter.prompt': 'Anahtar sözcüğü girin',
  'filter.title': 'Filtrele',
  'empty.filter.title': '"{filterString}" için hiçbir sonuç bulunamadı',
  'empty.filter.subtitle': 'Yazım denetimi yapın, aramanızı genişletmeyi deneyin veya farklı bir konumu filtreleyin.',
  'beta.title': 'Çalışmalarınızı cihazlarınızda eşitleyin',
  'beta.subtitle': 'iPad\'inizde ve masaüstünüzde bulut belgelerinizle Photoshop\'ta sorunsuzca çalışın. Bu özellik beta sürümünde olduğundan her zaman beklendiği gibi çalışmayabilir. Özelliği tercihler altından açıp kapatabilirsiniz.',
  'beta.button': 'Tercihler Altından Açın',
  'beta.tag': 'BETA',
  'beta.feedback.link': 'Beta Sürüm Hakkında Geri Bildirimde Bulunun',
  'button.add-folder': 'Yeni klasör oluştur',
  'button.upload': 'Yükle...',
  'button.createnew': 'Yeni Oluştur',
  'button.reportAbuse': 'Kötüye Kullanımı Bildirin',
  'button.open': 'Aç',
  'button.select': 'Seç',
  'button.rename': 'Yeniden Adlandır',
  'button.pin.header': 'Her zaman çevrimdışı kullanılabilir yap',
  'button.pin': 'Her zaman çevrimdışı kullanılabilir yap',
  'button.unpin.header': 'Yalnızca çevrimiçi kullanılabilir yap',
  'button.unpin': 'Yalnızca çevrimiçi kullanılabilir yap',
  'button.duplicate': 'Çoğalt',
  'button.download': 'İndir',
  'button.move': 'Taşı',
  'button.delete': 'Sil',
  'button.restore': 'Geri Yükle',
  'button.permdelete': 'Kalıcı Olarak Sil',
  'button.listview': 'Listeyi Görüntüle',
  'button.gridview': 'Izgarayı Görüntüle',
  'button.sharesheetinvite': 'Düzenlemeye davet et',
  'button.sharesheetLink': 'Bağlantıyı al',
  'button.shareSheetAction': 'Paylaş',
  'button.preview': 'Önizleme',
  'button.schedule': 'Planla',
  'action.duplicate.suffix': '(Çoğalt)',
  'action.resolve_sync_error.suffix': 'kopyası',
  'statusIcon.conflicted': 'Eşitleme çakışması',
  'statusIcon.onlineOnly': 'Yalnızca çevrimiçi',
  'statusIcon.availableOffline': 'Çevrimdışı kullanılabilir',
  'statusIcon.syncing': 'Eşitleniyor...',
  'statusIcon.waitingToSync': 'Eşitlenmesi bekleniyor',
  'tooltip.error': 'Kayıt çakışmasını gözden geçirmek için belgeyi aç',
  'toast.error.documentIsOpen': 'Bu işlemi gerçekleştirmek için {count, plural, =1 {belgeyi} other {belgeleri}} kapatın.',
  'toast.error.exceedsQuota.personal': 'Hesabınızın depolama alanı doldu',
  'toast.error.exceedsQuota.enterprise': 'Depolama alanı doldu, daha fazla bilgi için yöneticiniz ile iletişime geçin',
  'toast.operation.duplicate.error': '{count, plural, =1 {Öğe} other {{count} öğe}} çoğaltılamadı.',
  'toast.operation.duplicate.success': '{count, plural, =1 {Öğe} other {{count} öğe}} çoğaltıldı.',
  'toast.operation.archive.error': '{count, plural, =1 {öğe} other {{count} öğe}} silinemedi.',
  'toast.operation.archive.error.otherAppUncommittedChanges': 'Diğer uygulamalarda açık olan dosyaları silemezsiniz. Bu dosyaları kapatıp tekrar deneyin.',
  'toast.operation.archive.undo.error': '{count, plural, =1 {öğe} other {{count} öğe}} silinemedi.',
  'toast.operation.archive.success': '{count, plural, =1 {Öğe} other {{count} öğe}} silindi.',
  'toast.operation.archive.undo.success': 'Geri yükleme işlemi geri alındı.',
  'toast.operation.permdelete.error': '{count, plural, =1 {öğe} other {{count} öğe}} kalıcı olarak silinemedi.',
  'toast.operation.permdelete.success': '{count, plural, =1 {Öğe} other {{count} öğe}} kalıcı olarak silindi.',
  'toast.operation.rename.error': 'Öğe yeniden adlandırılamadı.',
  'toast.operation.rename.undo.error': 'Öğe yeniden adlandırılamadı.',
  'toast.operation.rename.error.duplicateName': 'Bu ada sahip bir öğeniz zaten var.',
  'toast.operation.rename.undo.error.duplicateName': 'Bu ada sahip bir öğeniz zaten var.',
  'toast.operation.rename.success': 'Öğe yeniden adlandırıldı.',
  'toast.operation.rename.undo.success': 'Yeniden adlandırma işlemi geri alındı.',
  'toast.operation.move.error': '{count, plural, =1 {öğe} other {{count} öğe}} taşınamadı.',
  'toast.operation.move.undo.error': '{count, plural, =1 {öğe} other {{count} öğe}} taşınamadı.',
  'toast.operation.move.error.duplicateFolderName': 'Bu ada sahip bir klasörünüz zaten var.',
  'toast.operation.move.undo.error.duplicateFolderName': 'Bu ada sahip bir klasörünüz zaten var.',
  'toast.operation.move.error.duplicateDocName': '{count, plural, =1 {Bu klasörde bu ada sahip bir belge zaten var. Belgeyi yeniden adlandırın ve tekrar deneyin.} other {Aynı ada sahip belgeler olduğundan belgeler taşınamıyor.}}',
  'toast.operation.move.undo.error.duplicateDocName': '{count, plural, =1 {Bu klasörde bu ada sahip bir belge zaten var. Belgeyi yeniden adlandırın ve tekrar deneyin.} other {Aynı ada sahip belgeler olduğundan belgeler taşınamıyor.}}',
  'toast.operation.move.success': '{count, plural, =1 {Öğe} other {{count} öğe}} taşındı.',
  'toast.operation.move.undo.success': 'Taşıma işlemi geri alındı.',
  'toast.operation.unarchive.error': '{count, plural, =1 {öğe} other {{count} öğe}} geri yüklenemedi.',
  'toast.operation.unarchive.undo.error': '{count, plural, =1 {öğe} other {{count} öğe}} geri yüklenemedi.',
  'toast.operation.unarchive.success': '{count, plural, =1 {Öğe} other {{count} öğe}} geri yüklendi.',
  'toast.operation.unarchive.undo.success': 'Silme işlemi geri alındı.',
  'toast.operation.create_new_folder.success': 'Klasör oluşturuldu.',
  'toast.operation.create_new_folder.error': 'Yeni klasör oluşturulamadı.',
  'toast.operation.create_new_folder.error.duplicateName': 'Bu ada sahip bir klasörünüz zaten var.',
  'toast.operation.user_pin.success': '{count, plural, =1 {Öğe} other {{count} öğe}} çevrimdışı kullanılabilir.',
  'toast.operation.user_pin.error': '{count, plural, =1 {Öğe} other {{count} öğe}} çevrimdışı kullanılabilir yapılamadı.',
  'toast.operation.user_unpin.success': '{count, plural, =1 {Öğe} other {{count} öğe}} yalnızca çevrimiçi kullanılabilir.',
  'toast.operation.user_unpin.error': '{count, plural, =1 {Öğe} other {{count} öğe}} yalnızca çevrimiçi kullanılabilir yapılamadı.',
  'toast.operation.resolve_sync_error.success': '“{name}” kopyası oluşturuldu. Bu iki belgeyi karşılaştırabilir ve farklılıkları ortadan kaldırabilirsiniz.',
  'toast.ccd.scroll_to_item.fetching': 'Dosya alınıyor…',
  'toast.ccd.scroll_to_item.error': 'Dosya bulunamadı',
  'toast.info.disabled_rename_to_open_item': 'Eski XD belgelerinin yeniden adlandırılması için önce burada açılması gerekir.',
  'toast.action.disabled_rename_to_open_item': 'Belgeyi Aç',
  'toast.error.rename.invalidName': 'Üzgünüz, bu ad geçersiz karakterler içeriyor.',
  'toast.error.rename.invalidChar': 'Ad şu karakterleri içeremez: {characters}',
  'toast.error.rename.invalidEnd': 'Adın sonunda “.” veya boşluk karakteri olamaz.',
  'toast.error.rename.charRestriction': 'Adlar 200 karakterden uzun olamaz.',
  'toast.error.rename.duplicateName': 'Bu ada sahip bir bulut belgeniz zaten var.',
  'toast.success.reportAbuse': 'Kötü amaçlı kullanım bildirildi',
  'toast.error.reportAbuse': 'Kötü amaçlı kullanım bildirilemedi',
  'toast.operation.undoLabel': 'Geri Al',
  'dialog.permdelete.heading': 'Kalıcı olarak sil',
  'dialog.permdelete.warning': 'Bu işlemi geri alamazsınız. İşleme devam ederseniz şu içeriği kaybedeceksiniz:',
  'dialog.permdelete.cancelButton': 'İptal',
  'dialog.permdelete.confirmButton': 'Kalıcı olarak sil',
  'dialog.permdelete.countItems': '{count, plural, =1 {# öğe} other {# öğe}}',
  'dialog.nonemptyfolder.heading': '{count, plural, =1 {Bu klasörü} other {Bu klasörleri}} silmek istediğinizden emin misiniz?',
  'dialog.nonemptyfolder.warning': '{count, plural, =1 {Bu klasör} other {Bu klasörler}} boş ve {appName} uygulamasında görünmeyen dosyalar içeriyor olabilir. Silme işlemine devam edebilir veya {count, plural, =1 {klasörün} other {klasörlerin}} içeriğine göz atmak için web\'de {count, plural, =1 {klasörü} other {klasörleri}} görüntüleyebilirsiniz.  {viewOnWebLink}',
  'dialog.nonemptyfolder.cancelButton': 'İptal',
  'dialog.nonemptyfolder.confirmButton': 'Sil',
  'dialog.nonemptyfolder.viewOnWebButton': 'Web\'de görüntüle',
  'dialog.addfolder.heading': 'Yeni klasör oluştur',
  'dialog.addfolder.cancelButton': 'İptal',
  'dialog.addfolder.confirmButton': 'Kaydet',
  'dialog.addfolder.placeholder': 'Yeni Klasör',
  'dialog.addfolder.invalidChar': 'Adlar şu karakterleri içeremez: {characters}',
  'dialog.addfolder.invalidName': 'Üzgünüz, bu klasör geçersiz karakterler içeriyor.',
  'dialog.addfolder.invalidEnd': 'Adın sonunda “.” veya boşluk karakteri olamaz.',
  'dialog.addfolder.duplicateName': 'Bu ada sahip bir klasörünüz zaten var.',
  'dialog.addfolder.charRestriction': 'Adlar 200 karakterden uzun olamaz.',
  'dialog.moveFolder.heading': 'Taşı...',
  'dialog.moveFolder.cancelButton': 'İptal',
  'dialog.moveFolder.moveButton': 'Taşı',
  'dialog.moveFolder.createNewFolderButton': 'Klasör ekle',
  'dialog.reportAbuse.cancelButton': 'İptal',
  'dialog.reportAbuse.reportAbuseButton': 'Kötüye Kullanımı Bildirin',
  'dialog.reportAbuse.heading': 'Kötüye Kullanımı Bildirin',
  'dialog.reportAbuse.emailInput': 'E-posta Adresiniz',
  'dialog.reportAbuse.nameInput': 'Adınız',
  'dialog.reportAbuse.radioButtonText': 'Bu içeriği neden bildiriyorsunuz?',
  'dialog.reportAbuse.defamation': 'Hakaret',
  'dialog.reportAbuse.hate': 'Irkçı veya Nefret İçeriği',
  'dialog.reportAbuse.trademark': 'Ticari Marka İhlali',
  'dialog.reportAbuse.pornography': 'Müstehcen İçerik',
  'dialog.reportAbuse.vulgar': 'Rahatsız Edici İçerik',
  'dialog.reportAbuse.other': 'Diğer',
  'dialog.reportAbuse.inappropriate': 'Uygun değil',
  'dialog.reportAbuse.age': 'Yaş yanlış',
  'dialog.reportAbuse.gender': 'Cinsiyet yanlış',
  'dialog.reportAbuse.description': 'Bu Creative Cloud içeriğinin Adobe Kullanım Koşulları\'nı ihlal ettiğini düşünüyorsanız bu hızlı formu doldurarak içeriği bildirebilirsiniz.',
  'dialog.reportAbuse.describeConcern': 'Endişenizi Açıklayın',
  'dialog.reportAbuse.success': 'Kötü amaçlı kullanım bildirildi',
  'dialog.reportAbuse.failure': 'Kötü amaçlı kullanım bildirilemedi',
  'dialog.reportAbuse.textAreaTitle': 'Lütfen endişe ettiğiniz konuyu kısaca açıklayın',
  'dialog.reportAbuse.required': 'Gereklidir',
  'dialog.cachefull.title': 'Çevrimdışı kullanılabilir yapılamadı',
  'dialog.cachefull.message': 'Cihazınızda yer kalmadı. Depolama alanı açmak için belgeleri yalnızca çevrimiçi yapın.',
  'dialog.cachefull.confirm': 'Tamam',
  'dialog.syncError.heading': 'Bu belge, bulut ile eşitlemeyi durdurdu',
  'dialog.syncError.body1': 'En son sürümünüzü bir kopya olarak kaydetmenizi ve belgeyi bulutta kayıtlı son sürüme geri yüklemenizi öneririz.',
  'dialog.syncError.body2': 'Bu belgeyi açıp düzenlemeler yapabilirsiniz ancak değişiklikleriniz buluta kaydedilmeyecektir.',
  'dialog.syncError.offline': 'Kopyasını kaydetmek ve orijinali geri yüklemek için çevrimiçi olmanız gerekiyor.',
  'dialog.syncError.learnMore': 'Daha fazla bilgi',
  'dialog.syncError.resolveButton': 'Kopyasını kaydet ve geri yükle',
  'dialog.syncError.openButton': 'Aç',
  'dialog.syncErrorCopyFail.heading': 'Kopyası kaydedilemedi',
  'dialog.syncErrorCopyFail.body1': 'Bu belgeyi açıp düzenlemeler yapabilirsiniz ancak değişiklikleriniz buluta kaydedilmeyecektir.',
  'dialog.syncErrorCopyFail.body2': 'Daha fazla yardım için Adobe Müşteri Hizmetleri ile iletişime geçin. (Hata: LocalContentSyncSuspended)',
  'dialog.syncErrorCopyFail.closeButton': 'Kapat',
  'dialog.syncErrorCopyFail.contactUs': 'Bize ulaşın',
  'dialog.syncErrorPurgeFail.heading': 'Bulutta kayıtlı son sürüme geri yüklenemedi',
  'dialog.syncErrorPurgeFail.body1': 'Belgenizin bir kopyası oluşturuldu ancak belgenizi bulutta son kaydedilen sürüme geri yükleyemedik.',
  'dialog.syncErrorPurgeFail.body2': 'Daha fazla yardım için Adobe Müşteri Hizmetleri ile iletişime geçin. (Hata: LocalContentSyncSuspended)',
  'dialog.syncErrorPurgeFail.closeButton': 'Kapat',
  'dialog.syncErrorPurgeFail.contactUs': 'Bize ulaşın',
  'onboardingCdo.banner.title.sprk': 'Çalışmanın daha iyi bir yolu',
  'onboardingCdo.banner.title.phxs': 'iPad\'de Photoshop mu kullanıyorsunuz? Bulut belgelerini deneyin',
  'onboardingCdo.banner.title.ilst': 'Artık Illustrator\'da bulut belgelerini kullanabilirsiniz',
  'onboardingCdo.banner.title.idsn': 'Artık InDesign\'da bulut belgelerini kullanabilirsiniz',
  'onboardingCdo.banner.message.sprk': 'Bulut belgelerinizi çevrimdışı olsanız bile dilediğiniz yerden düzenleyin. Değişiklikler otomatik olarak kaydedilir ve belge geçmişinde görüntülenebilir. Gerçek zamanlı olarak sorunsuz bir şekilde iş birliği için belgelerinizi başkalarıyla paylaşın.',
  'onboardingCdo.banner.message.phxs': 'Bulut belgeleri siz çalışırken Adobe\'nin bulutuna otomatik olarak kaydedilir. Böylece dosyalarınıza masaüstünden veya iPad\'den erişebilirsiniz.',
  'onboardingCdo.banner.message.ilst': 'Siz çalışırken Illustrator\'daki bulut belgeleri Adobe\'nin bulutuna otomatik olarak kaydedilir. Çalışmanızın gelişimini görmek için sürüm geçmişini de görüntüleyebilirsiniz.',
  'onboardingCdo.banner.message.idsn': 'InDesign\'daki bulut belgeleri, çalıştığınız sırada otomatik olarak Adobe\'nin bulutuna kaydedilir.',
  'onboardingCdo.banner.linkTitle': 'Daha fazla bilgi',
  'onboardingCdo.banner.confirm': 'Tamam',
  'operation.progress.archive': '{batchSize, plural, =1 {1 öğe} other {{inProgressNum} / {batchSize} öğe}} siliniyor...',
  'operation.progress.unarchive': '{batchSize, plural, =1 {1 öğe} other {{inProgressNum} / {batchSize} öğe}} geri yükleniyor...',
  'operation.progress.move': '{batchSize, plural, =1 {1 öğe} other {{inProgressNum} / {batchSize} öğe}} taşınıyor...',
  'operation.progress.permdelete': '{batchSize, plural, =1 {1 öğe} other {{inProgressNum} / {batchSize} öğe}} kalıcı olarak siliniyor...',
  'operation.progress.rename': '{batchSize, plural, =1 {1 öğe} other {{inProgressNum} / {batchSize} öğe}} yeniden adlandırılıyor...',
  'operation.progress.create_new_folder': 'Yeni klasör oluşturuluyor...',
  'operation.progress.duplicate': '{batchSize, plural, =1 {1 öğe} other {{inProgressNum} / {batchSize} öğe}} çoğaltılıyor...',
  'operation.progress.user_pin': '{batchSize, plural, =1 {1 öğe} other {{inProgressNum} of {batchSize} öğe}} çevrimdışı kullanılabilir yapılıyor...',
  'operation.progress.user_unpin': '{batchSize, plural, =1 {1 öğe} other {{inProgressNum} / {batchSize} öğe}} yalnızca çevrimiçi kullanılabilir yapılıyor...',
  'operation.progress.resolve_sync_error': 'Bulutta son kaydedilen sürüme kopyalanıyor ve geri yükleniyor...',
  'tooltip.offline.general': 'İnternet bağlantısı gereklidir.',
  'tooltip.offline.create-new-folder': 'Klasör oluşturmak için internet bağlantısı gereklidir.',
  'tooltip.offline.move': 'Öğeleri taşımak için internet bağlantısı gereklidir.',
  'tooltip.syncing.disabled': 'Eşitlemenin tamamlanması bekleniyor',
  'tooltip.rename.disabled': 'Seçili bir belge yeniden adlandırılamaz. Yeniden adlandırmayı etkinleştirmek için belgeyi ana uygulamada açın.',
  'tooltip.rename.disabled.sprk': 'Bu dosyayı XD\'de açıncaya kadar yeniden adlandıramazsınız.',
  'tooltip.syncSuspended.needsAction': 'Eşitleme durduruldu. İşlem gerçekleştirmek için açın.',
  'tooltip.syncSuspended.noAction': 'Eşitleme durduruldu. Bu işleme şu anda izin verilmiyor.',
  'Recents.title': 'En Son',
  'Recents.cloudDocTitle': 'BULUT BELGESİ',
  'Recents.error.subtext.coreSync': 'Creative Cloud\'u Eşitle düzgün çalışmadığından En Son içeriği şu anda kullanılamıyor.',
  'item.saveForOfflineIconToolTip': 'Bu belge indirildi ve artık tamamen çevrimdışı olarak kullanılabilir.',
  'item.disconnected.cloudonly': 'Bağlı değilsiniz. Belgeyi açmak için lütfen tekrar bağlanın.',
  'item.coresyncdown.cloudonly': 'Dosya yüklenemiyor. Creative Cloud\'u güncellemek veya yeniden başlatmak bu sorunu çözebilir.',
  'folder.subtitle': 'KLASÖR',
  'review.subtitle': 'İNCELE',
  'prototype.subtitle': 'PROTOTİP',
  'designspecs.subtitle': 'TASARIM ÖZELLİKLERİ',
  'project.subtitle': 'PROJE',
  'library.subtitle': 'KİTAPLIK',
  'webLink.subtitle': 'WEB BAĞLANTISI',
  'abbreviations.fileSize.byte': 'B',
  'abbreviations.fileSize.kilobyte': 'KB',
  'abbreviations.fileSize.megabyte': 'MB',
  'abbreviations.fileSize.gigabyte': 'GB',
  'abbreviations.fileSize.terabyte': 'TB',
  'sam.copyNameFormat': '%@ kopya',
  'cloudsync.quota.title': 'BULUT DEPOLAMA ALANI',
  'cloudsync.quota.percentage': '%{percentageUsed}',
  'cloudsync.quota.usage': '{usedCloudQuotaString} / {maxCloudQuotaString} kullanılıyor',
  'cloudsync.quota.warning': 'Bulut depolama alanınız dolu. Çalışmalarınızı eşitlemeye devam etmek için yükseltin.',
  'cloudsync.quota.error': 'Depolama alanı bilgisi yok...',
  'cloudsync.quota.upgrade': 'Yükseltin',
  'cloudsync.status.complete.title': 'Eşitlendi ve yedeklendi',
  'cloudsync.status.syncing.title': 'Bulut belgeleri eşitleniyor',
  'cloudsync.status.syncing.descr': '{progress}/{total}',
  'cloudsync.status.offline.title': 'Çevrimdışı çalışılıyor',
  'cloudsync.status.offline.descr': 'Yerel olarak kaydediyoruz. Belgeler, tekrar bağlandığınızda bulut ile eşitlenecektir.',
  'cloudsync.status.disabled.title': 'Eşitleme devre dışı bırakıldı',
  'cloudsync.status.disabled.descr': 'Yerel olarak kaydediyoruz. Belgeler, depolama alanı kullanılabilir olduğunda bulut ile eşitlenecektir.',
  'cloudsync.item.progress.determinate': '{progress}/{total}',
  'cloudsync.item.progress.indeterminate': 'Eşitleniyor...',
  'cloudsync.item.complete': 'Tamamlandı',
  'cloudsync.items.header': 'Ağ etkinliği',
  'cloudsync.alert.title.coresync.down': 'Yüklenemedi',
  'cloudsync.alert.subtext.coresync.down': 'Bulut eşitlenmiyor. Creative Cloud masaüstü uygulamasının güncellendiğinden emin olun veya uygulamayı yeniden başlatmayı deneyin.',
  'cloudsync.alert.subtext.coresync.down.learnmore': 'Daha fazla bilgi',
  'cloudsync.tooltip.offline': 'Bağlı Değil',
  'cloudsync.tooltip.error': 'Hata',
  'cloudsync.tooltip.syncing': 'Kaydediliyor...',
  'cloudsync.tooltip.default': 'Kaydedildi',
  'cloudsync.singleDoc.offline.title': 'Bağlı Değil',
  'cloudsync.singleDoc.offline.descr': 'Yeniden bağlanmaya çalışılıyor...',
  'cloudsync.singleDoc.offline.timestamp': 'Son eşitleme {time}',
  'cloudsync.singleDoc.error.samInitFail.title': 'Bulut artık eşitlenmiyor',
  'cloudsync.singleDoc.error.samInitFail.descr': 'Çalışmanızı eşitlemeye devam etmek için lütfen bu uygulamayı yeniden başlatın.',
  'cloudsync.singleDoc.error.syncSuspended.title': 'Bulut artık eşitlenmiyor',
  'cloudsync.singleDoc.error.syncSuspended.descr': 'Çalışmanızı eşitlemeye devam etmek için lütfen bu uygulamayı yeniden başlatın.',
  'cloudsync.singleDoc.error.title': 'Yüklenemedi',
  'cloudsync.singleDoc.error.descr': 'Bulut senkronize edilmiyor. Creative Cloud masaüstü uygulamasının güncellendiğinden emin olun veya uygulamayı yeniden başlatmayı deneyin.',
  'cloudsync.singleDoc.error.learnMore': 'Daha fazla bilgi',
  'cloudsync.singleDoc.disabled.quotaExceeded.title': 'Bulut depolama alanınız dolu',
  'cloudsync.singleDoc.disabled.quotaExceeded.descr': 'Çalışmanızı senkronize etmeye devam etmek için lütfen Creative Cloud\'u yükseltin.',
  'cloudsync.singleDoc.syncing.title': 'Kaydediliyor...',
  'cloudsync.singleDoc.syncing.descr': 'Devam ediyor',
  'cloudsync.singleDoc.disabled.title': 'Kaydedilemedi',
  'cloudsync.singleDoc.disabled.descr': 'Hesabınızın depolama alanı doldu.',
  'cloudsync.singleDoc.complete.title': 'Dosya Kaydedildi',
  'cloudsync.singleDoc.complete.timestamp': 'Son eşitleme {time}'
};

/***/ }),

/***/ "jV1G":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("Fxbb"),
      24: __webpack_require__("Pis8")
    }
  }));
};

WrappedIcon.displayName = 'VolumeThree';
exports.default = WrappedIcon;

/***/ }),

/***/ "jVok":
/***/ (function(module, exports, __webpack_require__) {

// extracted by mini-css-extract-plugin

/***/ }),

/***/ "jVwZ":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("Gpwp"),
      24: __webpack_require__("b+Df")
    }
  }));
};

WrappedIcon.displayName = 'Photoshop';
exports.default = WrappedIcon;

/***/ }),

/***/ "jXQH":
/***/ (function(module, exports, __webpack_require__) {

var trimmedEndIndex = __webpack_require__("TO8r");
/** Used to match leading whitespace. */


var reTrimStart = /^\s+/;
/**
 * The base implementation of `_.trim`.
 *
 * @private
 * @param {string} string The string to trim.
 * @returns {string} Returns the trimmed string.
 */

function baseTrim(string) {
  return string ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '') : string;
}

module.exports = baseTrim;

/***/ }),

/***/ "jaHz":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return NOTIFICATIONS_SUBCATEGORY; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ActionAnalyticsValue; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return AssetType; });
/* unused harmony export CacheStatus */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return Workflow; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return UsageMetricPhase; });
/* harmony import */ var uuid__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("EcEN");
/* harmony import */ var uuid__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(uuid__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var lodash_merge__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("2oH+");
/* harmony import */ var lodash_merge__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_merge__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _types_CollectionViewMetrics__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("b/7Q");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "c", function() { return _types_CollectionViewMetrics__WEBPACK_IMPORTED_MODULE_2__["a"]; });

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

/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2019 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
 // This import style was easier to mock than ''uuid/v1'


// TS enums can't be inherited, but this works
const Workflow = {
    ..._types_CollectionViewMetrics__WEBPACK_IMPORTED_MODULE_2__[/* Workflow */ "d"],
    CloudDocuments: 'Cloud Documents',
    ResolveSyncError: 'Resolve-Sync-Error',
};
var ActionAnalyticsValue;
(function (ActionAnalyticsValue) {
    ActionAnalyticsValue["AddFolder"] = "create";
    ActionAnalyticsValue["Archive"] = "archive";
    ActionAnalyticsValue["Duplicate"] = "duplicate";
    // NOTE: there is no SDM definition for this
    ActionAnalyticsValue["Export"] = "export";
    // NOTE: there is no SDM definition for this
    ActionAnalyticsValue["Import"] = "import";
    ActionAnalyticsValue["Move"] = "move";
    // NOTE: there is no SDM definition for this
    ActionAnalyticsValue["Open"] = "open";
    ActionAnalyticsValue["PermDelete"] = "delete";
    ActionAnalyticsValue["Pin"] = "make-available-offline";
    ActionAnalyticsValue["Rename"] = "rename";
    ActionAnalyticsValue["Restore"] = "unarchive";
    // NOTE: there is no SDM definition for this
    ActionAnalyticsValue["UnPin"] = "make-available-online";
    ActionAnalyticsValue["Preview"] = "preview";
    ActionAnalyticsValue["Schedule"] = "schedule";
})(ActionAnalyticsValue || (ActionAnalyticsValue = {}));
const OPERATION_ANALYTICS_VALUE_OVERRIDE = {
    [ActionAnalyticsValue.Move]: 'move_asset',
};
/**
 * String representations of different SDM Categories
 */
var AssetType;
(function (AssetType) {
    AssetType["Document"] = "Composite";
    AssetType["Folder"] = "Folder";
    AssetType["File"] = "File";
})(AssetType || (AssetType = {}));
var CacheStatus;
(function (CacheStatus) {
    CacheStatus["Cached"] = "Cached";
    CacheStatus["Uncached"] = "Uncached";
})(CacheStatus || (CacheStatus = {}));
var UsageMetricPhase;
(function (UsageMetricPhase) {
    UsageMetricPhase["ActionStart"] = "start";
    UsageMetricPhase["ActionComplete"] = "complete";
    UsageMetricPhase["ActionCancelled"] = "cancelled";
})(UsageMetricPhase || (UsageMetricPhase = {}));
const OPERATIONS_SUBCATEGORY = 'Performance';
const NOTIFICATIONS_SUBCATEGORY = 'Notification';
class Metrics {
    static createCorrelationId() {
        return uuid__WEBPACK_IMPORTED_MODULE_0___default.a.v1();
    }
    /**
     * Fire the ingest event
     *
     * @param ccxIngest       IngestController object from provider
     * @param data            analytics data
     * @param isOffline       offline connection status
     * @param hostProductData
     */
    static fireEvent(ccxIngest, data, isOffline, hostProductData) {
        let ingestOptions;
        if (hostProductData && hostProductData.analyticsProjectKey !== '') {
            ingestOptions = { ANALYTICS_PROJECT: hostProductData.analyticsProjectKey };
        }
        data.event.offline = isOffline;
        ccxIngest.fireEvent(data, false, ingestOptions).catch(e => {
            if (!isOffline) {
                // Promise will always reject if offline, even though the events are queued
                // No need to clutter the console log
                // eslint-disable-next-line no-console
                console.error(`[ccx-cdo] ccxIngest.fireEvent failed ${e}`);
            }
        });
    }
    /**
     * Workflow based on element type
     */
    static determineUsageSDMWorkflow(element) {
        if (element) {
            return element.isFolder ? Workflow.Folder : Workflow.Document;
        }
        return Workflow.Asset;
    }
    static determineAssetType(element) {
        if (element.isComposite) {
            return AssetType.Document;
        }
        if (element.isFolder) {
            return AssetType.Folder;
        }
        if (element.isFile) {
            return AssetType.File;
        }
    }
    static determineCacheStatus(element) {
        return element.isCached ? CacheStatus.Cached : CacheStatus.Uncached;
    }
    static getCancelledSubtype(subtype) {
        return `${subtype}-cancelled`;
    }
    static getAssetData(element) {
        const data = { content: {}, event: {} };
        data.content.category = Metrics.determineAssetType(element);
        data.content.cache_status = Metrics.determineCacheStatus(element);
        if (element.fileExtension) {
            data.content.extension = element.fileExtension;
        }
        if (element.type) {
            data.content.mimetype = element.type;
        }
        // Per SDM the content.id field should be the local id, if one exists
        if (element.localUrn) {
            data.content.id = element.localUrn;
        }
        // Per SDM the event.context_guid field should be the cloud id, if one exists
        if (element.cloudID) {
            data.event.context_guid = element.cloudID;
        }
        return data;
    }
    static getCorrelationData(correlationId = Metrics.createCorrelationId(), element) {
        const data = {
            event: {},
            content: {},
            context: {
                guid: correlationId,
            },
        };
        if (element) {
            lodash_merge__WEBPACK_IMPORTED_MODULE_1___default()(data, Metrics.getAssetData(element));
        }
        return data;
    }
    static getDurationData(dtsStart) {
        const trnNumber = Metrics.createCorrelationId();
        const duration = Date.now() - dtsStart.getTime();
        const durationInSeconds = duration / 1000;
        return {
            event: {
                dts_start: dtsStart,
                value: durationInSeconds,
            },
            trn: {
                number: trnNumber,
                product: 'Performance',
                amount: 0,
                quantity: durationInSeconds,
            },
        };
    }
    static getOperationalMetricData(actionAnalyticsValue, { correlationId, element, eventType, dtsStart, errorCode, errorDesc, }) {
        const subtype = OPERATION_ANALYTICS_VALUE_OVERRIDE[actionAnalyticsValue] || actionAnalyticsValue;
        const data = {
            event: {
                workflow: Workflow.CloudDocuments,
                subcategory: OPERATIONS_SUBCATEGORY,
                type: eventType,
                subtype,
            },
            content: {},
            context: {
                guid: correlationId,
            },
        };
        // TODO: Update this to attempt numbers, currently following the PS behavior
        // to determine success and error: https://jira.corp.adobe.com/browse/PS-39334
        // success is 0, and recover 1 (more than one attempt) since we don't handle recover count is 0
        // Jira: https://jira.corp.adobe.com/browse/CCXCD-2976
        if (eventType === _types_CollectionViewMetrics__WEBPACK_IMPORTED_MODULE_2__[/* EventType */ "a"].Success) {
            data.event.count = 0;
        }
        if (dtsStart) {
            lodash_merge__WEBPACK_IMPORTED_MODULE_1___default()(data, Metrics.getDurationData(dtsStart));
        }
        if (element) {
            lodash_merge__WEBPACK_IMPORTED_MODULE_1___default()(data, Metrics.getAssetData(element));
        }
        if (errorCode) {
            data.event.error_code = errorCode;
        }
        if (errorDesc) {
            data.event.error_desc = errorDesc;
        }
        return data;
    }
}
/* harmony default export */ __webpack_exports__["i"] = (Metrics);



/***/ }),

/***/ "jay5":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _autobindDecorator = _interopRequireDefault(__webpack_require__("gKdT"));

var _Button = _interopRequireDefault(__webpack_require__("Cn9g"));

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _CoachMarkPopover = _interopRequireDefault(__webpack_require__("9Thz"));

var _filterDOMProps = _interopRequireDefault(__webpack_require__("Cv/Q"));

var _intl = __webpack_require__("Lpon");

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

var _ScrollManager = _interopRequireDefault(__webpack_require__("8VRs"));

__webpack_require__("h7RT");

const _excluded = ["title", "confirmLabel", "cancelLabel", "disableProgress", "currentStep", "totalSteps", "image", "children", "visible", "id", "tabIndex", "imageAlt", "autoFocus", "trapFocus"];

var _class;

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

const intlMessages = {
  "cs-CZ": _interopRequireDefault(__webpack_require__("66Ol")).default,
  "da-DK": _interopRequireDefault(__webpack_require__("+c4p")).default,
  "de-DE": _interopRequireDefault(__webpack_require__("fja1")).default,
  "en-US": _interopRequireDefault(__webpack_require__("UxHR")).default,
  "es-ES": _interopRequireDefault(__webpack_require__("TBbR")).default,
  "fi-FI": _interopRequireDefault(__webpack_require__("iKaH")).default,
  "fr-FR": _interopRequireDefault(__webpack_require__("XtrC")).default,
  "hu-HU": _interopRequireDefault(__webpack_require__("ADsP")).default,
  "it-IT": _interopRequireDefault(__webpack_require__("KYEX")).default,
  "ja-JP": _interopRequireDefault(__webpack_require__("LIQA")).default,
  "ko-KR": _interopRequireDefault(__webpack_require__("Cs9C")).default,
  "nb-NO": _interopRequireDefault(__webpack_require__("oZ20")).default,
  "nl-NL": _interopRequireDefault(__webpack_require__("tI1w")).default,
  "pl-PL": _interopRequireDefault(__webpack_require__("jwcI")).default,
  "pt-BR": _interopRequireDefault(__webpack_require__("Yb34")).default,
  "ru-RU": _interopRequireDefault(__webpack_require__("Ji/Z")).default,
  "sv-SE": _interopRequireDefault(__webpack_require__("pajr")).default,
  "tr-TR": _interopRequireDefault(__webpack_require__("q4jM")).default,
  "uk-UA": _interopRequireDefault(__webpack_require__("3aoA")).default,
  "zh-CN": _interopRequireDefault(__webpack_require__("5ltv")).default,
  "zh-TW": _interopRequireDefault(__webpack_require__("lAYD")).default
};
const formatMessage = (0, _intl.messageFormatter)(intlMessages);

let UxpCoachMarkPopover = (0, _autobindDecorator.default)(_class = class UxpCoachMarkPopover extends _CoachMarkPopover.default {
  componentDidMount() {
    super.componentDidMount();

    _ScrollManager.default.getInstance().toggleScrollBarsVisibility(true, false, this.coachMarkPopoverRef);
  }

  componentWillUnmount() {
    super.componentWillUnmount();

    _ScrollManager.default.getInstance().toggleScrollBarsVisibility(false, false, this.coachMarkPopoverRef, undefined, this.tourInProgress);
  }

  onCancel() {
    if (this.props.onCancel) {
      this.props.onCancel();
    }

    this.tourInProgress = false;

    _ScrollManager.default.getInstance().toggleScrollBarsVisibility(false, false, this.coachMarkPopoverRef, undefined, this.tourInProgress);
  }

  onConfirm() {
    if (this.props.onConfirm) {
      this.props.onConfirm();
    }

    this.tourInProgress = this.props.currentStep < this.props.totalSteps;

    _ScrollManager.default.getInstance().toggleScrollBarsVisibility(true, false, this.coachMarkPopoverRef, undefined, this.tourInProgress);
  }

  render() {
    let _this$props = this.props,
        {
      title,
      confirmLabel,
      cancelLabel,
      disableProgress,
      currentStep,
      totalSteps,
      image,
      children,
      visible,
      id = this.coachmarkId,
      tabIndex,
      imageAlt = '',
      autoFocus,
      trapFocus
    } = _this$props,
        otherProps = _objectWithoutProperties(_this$props, _excluded);

    disableProgress = disableProgress || typeof currentStep !== 'number' || typeof totalSteps !== 'number'; // eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions

    return /*#__PURE__*/_react.default.createElement("div", _extends({}, (0, _filterDOMProps.default)(otherProps), {
      className: (0, _classnames.default)('spectrum-CoachMarkPopover', {
        'hidden': !visible
      }),
      role: "dialog",
      "aria-labelledby": `${id}-header`,
      "aria-describedby": `${id}-content`,
      id: id,
      ref: r => this.coachMarkPopoverRef = r,
      onFocus: this.onFocus,
      onKeyDown: this.onKeyDown,
      tabIndex: trapFocus && tabIndex == null ? 1 : tabIndex
    }), image && /*#__PURE__*/_react.default.createElement("img", {
      src: image,
      alt: imageAlt,
      className: "spectrum-CoachMarkPopover-image"
    }), /*#__PURE__*/_react.default.createElement("div", {
      className: "spectrum-CoachMarkPopover-header",
      id: `${id}-header`
    }, /*#__PURE__*/_react.default.createElement("div", {
      className: "spectrum-CoachMarkPopover-title"
    }, title), !disableProgress && /*#__PURE__*/_react.default.createElement("div", {
      className: "spectrum-CoachMarkPopover-step"
    }, formatMessage('steps', {
      currentStep,
      totalSteps
    }))), /*#__PURE__*/_react.default.createElement("div", {
      className: "spectrum-CoachMarkPopover-content",
      id: `${id}-content`
    }, children), /*#__PURE__*/_react.default.createElement("div", {
      className: "spectrum-CoachMarkPopover-footer"
    }, cancelLabel && /*#__PURE__*/_react.default.createElement(_Button.default, {
      quiet: true,
      onClick: this.onCancel,
      autoFocus: !confirmLabel ? autoFocus : null
    }, cancelLabel), confirmLabel && /*#__PURE__*/_react.default.createElement(_Button.default, {
      variant: "primary",
      onClick: this.onConfirm,
      autoFocus: autoFocus
    }, confirmLabel)));
  }

}) || _class;

exports.default = UxpCoachMarkPopover;

/***/ }),

/***/ "jeLo":
/***/ (function(module, exports, __webpack_require__) {

var copyObject = __webpack_require__("juv8"),
    keysIn = __webpack_require__("mTTR");
/**
 * Converts `value` to a plain object flattening inherited enumerable string
 * keyed properties of `value` to own properties of the plain object.
 *
 * @static
 * @memberOf _
 * @since 3.0.0
 * @category Lang
 * @param {*} value The value to convert.
 * @returns {Object} Returns the converted plain object.
 * @example
 *
 * function Foo() {
 *   this.b = 2;
 * }
 *
 * Foo.prototype.c = 3;
 *
 * _.assign({ 'a': 1 }, new Foo);
 * // => { 'a': 1, 'b': 2 }
 *
 * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));
 * // => { 'a': 1, 'b': 2, 'c': 3 }
 */


function toPlainObject(value) {
  return copyObject(value, keysIn(value));
}

module.exports = toPlainObject;

/***/ }),

/***/ "jfFg":
/***/ (function(module, exports, __webpack_require__) {

module.exports = __webpack_require__.p + "assets/start/XD_Tout_FullWidth@2x.png";

/***/ }),

/***/ "jfd1":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


const inherits = __webpack_require__("P7XM");

const Buffer = __webpack_require__("xZGU").Buffer;

const DERDecoder = __webpack_require__("z71Z");

function PEMDecoder(entity) {
  DERDecoder.call(this, entity);
  this.enc = 'pem';
}

inherits(PEMDecoder, DERDecoder);
module.exports = PEMDecoder;

PEMDecoder.prototype.decode = function decode(data, options) {
  const lines = data.toString().split(/[\r\n]+/g);
  const label = options.label.toUpperCase();
  const re = /^-----(BEGIN|END) ([^-]+)-----$/;
  let start = -1;
  let end = -1;

  for (let i = 0; i < lines.length; i++) {
    const match = lines[i].match(re);
    if (match === null) continue;
    if (match[2] !== label) continue;

    if (start === -1) {
      if (match[1] !== 'BEGIN') break;
      start = i;
    } else {
      if (match[1] !== 'END') break;
      end = i;
      break;
    }
  }

  if (start === -1 || end === -1) throw new Error('PEM section not found for: ' + label);
  const base64 = lines.slice(start + 1, end).join(''); // Remove excessive symbols

  base64.replace(/[^a-z0-9+/=]+/gi, '');
  const input = Buffer.from(base64, 'base64');
  return DERDecoder.prototype.decode.call(this, input, options);
};

/***/ }),

/***/ "jmDH":
/***/ (function(module, exports, __webpack_require__) {

// Thank's IE8 for his funny defineProperty
module.exports = !__webpack_require__("KUxP")(function () {
  return Object.defineProperty({}, 'a', {
    get: function () {
      return 7;
    }
  }).a != 7;
});

/***/ }),

/***/ "jmEq":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXPORTS
__webpack_require__.d(__webpack_exports__, "c", function() { return /* binding */ NAVIGATION_DATA_AVAILABLE; });
__webpack_require__.d(__webpack_exports__, "b", function() { return /* binding */ ActionType; });
__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ ActionState; });
__webpack_require__.d(__webpack_exports__, "e", function() { return /* binding */ sharedStorePublic; });
__webpack_require__.d(__webpack_exports__, "d", function() { return /* binding */ sharedStore; });

// UNUSED EXPORTS: ACTION_STATUS, STATUS_CHANGED, SESSION_NAVIGATED

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/interfaces/IIMSData.ts
var IIMSData = __webpack_require__("AAv5");

// EXTERNAL MODULE: ./node_modules/mobx/lib/mobx.module.js
var mobx_module = __webpack_require__("2vnA");

// EXTERNAL MODULE: ./node_modules/@ccx-public/shared-asset-model-js/dist/mjs/src/index.js
var src = __webpack_require__("m4Z2");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/utils/config.ts
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2020 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
const environments = {
    stage: {
        ACP_CS_HOST: 'https://platform-cs-stage.adobe.io',
        ACP_VA6_URI: 'https://platform-cs-stage-va6.adobe.io',
        ASSETS_WEB: 'https://assets-stage.adobecc.com',
        BEHANCE_ENDPOINT: 'https://cc-api-behance-stage.adobe.io',
        CLIENT_ID: 'CCProjectsClient',
        DAS_ENDPOINT: 'https://hz-das-stage.adobe.io',
        INGEST_KEY: 'cdo-service',
        INVITATIONS_SERVICE_ENDPOINT: 'https://invitations-stage.adobe.io',
        LABEL: 'Stage',
        PROJECTS_SERVICE_ENDPOINT: 'https://ccprojects-stage.adobe.io',
        STORAGE_SERVICE_ENDPOINT: 'https://cc-api-storage-stage.adobe.io',
        LIBRARIES_SERVICE_ENDPOINT: 'https://ccx-melville-stage.adobe.io',
        LEIA_SERVICE_ENDPOINT: 'https://leia-stage.adobe.io',
        WEBLINKS_SERVICE_ENDPOINT: 'https://weblinks-stage.adobe.io',
        FRED_ENDPOINT: 'https://stage.projectspice.adobe.com',
        // Placeholder, awaiting finalized Illustrator web hostname
        AIWEB_ENDPOINT: 'https://assets-stage.adobecc.com',
        PSWEB_ENDPOINT: 'https://stage.photoshop.adobe.com',
        SOPHIA_ENDPOINT: 'https://p13n-stage.adobe.io',
        // Sophia stage App ID
        SOPHIA_CLIENT_ID: 'CCXSpacesStage',
        XD_WEB_ENDPOINT: 'https://stage.xd.adobe.com',
        XDCE_SERVICE_URI: 'https://xdce-stage.adobe.io',
        ATS_HOST: 'https://ats-stage.adobe.io',
    },
    prod: {
        ACP_CS_HOST: 'https://platform-cs.adobe.io',
        ACP_VA6_URI: 'https://platform-cs-va6.adobe.io',
        ASSETS_WEB: 'https://assets.adobe.com',
        BEHANCE_ENDPOINT: 'https://cc-api-behance.adobe.io',
        CLIENT_ID: 'CCProjectsClient',
        DAS_ENDPOINT: 'https://hz-das.adobe.io',
        INGEST_KEY: 'cdo-service',
        INVITATIONS_SERVICE_ENDPOINT: 'https://invitations.adobe.io',
        LABEL: 'Production',
        PROJECTS_SERVICE_ENDPOINT: 'https://ccprojects.adobe.io',
        STORAGE_SERVICE_ENDPOINT: 'https://cc-api-storage.adobe.io',
        LIBRARIES_SERVICE_ENDPOINT: 'https://libraries.adobe.io',
        LEIA_SERVICE_ENDPOINT: 'https://leia.adobe.io',
        WEBLINKS_SERVICE_ENDPOINT: 'https://weblinks.adobe.io',
        FRED_ENDPOINT: 'https://projectspice.adobe.com',
        // Placeholder, awaiting finalized Illustrator web hostname
        AIWEB_ENDPOINT: 'https://assets.adobe.com',
        PSWEB_ENDPOINT: 'https://photoshop.adobe.com',
        SOPHIA_ENDPOINT: 'https://p13n.adobe.io',
        // Sophia stage App ID - to be modified for prod
        SOPHIA_CLIENT_ID: 'CCXSpacesProd',
        XD_WEB_ENDPOINT: 'https://xd.adobe.com',
        XDCE_SERVICE_URI: 'https://xdce.adobe.io',
        ATS_HOST: 'https://ats.adobe.io',
    },
};

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/stores/Settings.ts
var Settings = __webpack_require__("5u1M");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/hosts/Host.ts + 9 modules
var Host = __webpack_require__("Dy/p");

// EXTERNAL MODULE: ./node_modules/react-intl-cdo/lib/index.es.js + 1 modules
var index_es = __webpack_require__("VIzJ");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/utils/i18n.ts
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2020 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/

class i18n_I18N {
    constructor() {
        // Default language as fallback
        this.DEFAULT_LANGUAGE = 'en';
        /**
         * Enum with the default language tag with country per language provided. This serves as a fallback when a specific
         * country is not available.
         * https://git.corp.adobe.com/world-readiness/globalization-shared/blob/master/guidelines/i18n_web/03_UI_language.md
         * https://git.corp.adobe.com/world-readiness/globalization-shared/blob/master/guidelines/i18n_web/04_formatting_language.md
         *
         * @enum {Object}
         */
        this.SUPPORTED_LANGUAGES = {
            cs: 'cs-CZ',
            da: 'da-DK',
            de: 'de-DE',
            en: 'en-US',
            es: 'es-ES',
            fi: 'fi-FI',
            fr: 'fr-FR',
            hu: 'hu-HU',
            it: 'it-IT',
            ja: 'ja-JP',
            ko: 'ko-KR',
            nb: 'nb-NO',
            nl: 'nl-NL',
            pl: 'pl-PL',
            pt: 'pt-PT',
            ru: 'ru-RU',
            sv: 'sv-SE',
            tr: 'tr-TR',
            uk: 'uk-UA',
            'zh-Hans': 'zh-Hans',
            'zh-Hant': 'zh-Hant',
            zz: 'zz-ZZ',
        };
    }
    getLocaleData(locale) {
        /**
         * React-Intl ICU tables.
         * This is useful to format things such as date and time without being limited by the number of supported app languages.
         * Currently only supports these languages to match the web. But ideally, we want to support all system languages.
         */
        const LOCALE_DATASETS = {
            cs: __webpack_require__("gdxS"),
            da: __webpack_require__("x+Ei"),
            de: __webpack_require__("eZNI"),
            en: __webpack_require__("U9ri"),
            es: __webpack_require__("HpW/"),
            fi: __webpack_require__("oqCq"),
            fr: __webpack_require__("Hp/b"),
            hu: __webpack_require__("nqsH"),
            it: __webpack_require__("dEZ4"),
            ja: __webpack_require__("qmEL"),
            ko: __webpack_require__("TYVA"),
            nb: __webpack_require__("Pcmv"),
            nl: __webpack_require__("Q4ZP"),
            pl: __webpack_require__("UBvv"),
            pt: __webpack_require__("Mwd1"),
            ru: __webpack_require__("456K"),
            sv: __webpack_require__("JLB2"),
            tr: __webpack_require__("AN/Y"),
            uk: __webpack_require__("Yyt1"),
            zh: __webpack_require__("mw44"),
            zu: __webpack_require__("ILpG"),
        };
        const language = locale.substr(0, 2);
        return LOCALE_DATASETS[language] || LOCALE_DATASETS[this.DEFAULT_LANGUAGE];
    }
    setLocaleData(locale) {
        Object(index_es["f" /* addLocaleData */])(this.getLocaleData(locale));
    }
    /**
     * Extracts the language from the given locale.
     *
     * @param {String} language the language to be extracted from.
     * @returns {String} a string that represents the desired language, should match the item keys in LOCALE_DATASETS table.
     */
    getRootLanguageCode(language) {
        /**
         * Because there is multiple way of describing Simplified and Trad Chinese.
         * This maps all the traditional chinese locale to zh-Hant and leave anything else
         * that starts with zh as Simplified Chinese
         */
        const languageCode = language.toLowerCase();
        if (languageCode.startsWith('zh')) {
            if (['zh-hant', 'zh-tw', 'zh-hk'].includes(languageCode)) {
                return 'zh-Hant';
            }
            else {
                return 'zh-Hans';
            }
        }
        return languageCode.split(/[_-]+/)[0];
    }
    /**
     * Loads the appropiate messages for the given locale. If the exact locale is not available, english will be used instead.
     *
     * @param {String} locale
     *  BCP47 string with the language and country combination.
     * @returns {Object} object with the messages for the provided locale.
     */
    getLocalizedMessages(locale) {
        const languageCode = this.getRootLanguageCode(locale);
        let response;
        try {
            response = __webpack_require__("7evs")(`./${languageCode}.json`);
        }
        catch (error) {
            response = __webpack_require__("7evs")(`./${this.DEFAULT_LANGUAGE}.json`);
        }
        return response;
    }
    getSupportedSystemLocale(locale = this.DEFAULT_LANGUAGE) {
        const languageCode = this.getRootLanguageCode(locale);
        if (Object.keys(this.SUPPORTED_LANGUAGES).includes(languageCode)) {
            return languageCode;
        }
        return this.DEFAULT_LANGUAGE;
    }
}
/* harmony default export */ var i18n = (new i18n_I18N());

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/utils/createIntl.tsx


/**
 * This is a polyfill for react-intl's "createIntl", which is only available in react-intl 3+.
 * We can't upgrade to that until we upgrade to react-spectrum 3, due to react-spectrum 2 using
 * `unstable_` react methods (which don't support React Context).
 */
function createIntl({ uiLocale, systemLocale }) {
    // Application language for messages (`messages` prop)
    const appLanguage = uiLocale || 'en';
    const localeStrings = i18n.getLocalizedMessages(appLanguage);
    // System locale take precedence over app language for formatting language-sensitive API such as Number, Date,
    // Percentage Formatters (`locale` prop). So, intl.locale is systemLocale (if systemLocale is provided)
    const formatterLocale = i18n.getSupportedSystemLocale(systemLocale || appLanguage || 'en-US');
    i18n.setLocaleData(formatterLocale);
    const provider = new index_es["e" /* IntlProvider */]({
        locale: formatterLocale,
        messages: localeStrings,
    });
    // Need to reserve app language (as `intl.appLanguage`) and system locale (as `intl.locale`)
    // values (to pass to CDP...)
    const intl = {
        ...provider.getChildContext().intl,
        appLanguage,
    };
    return intl;
}

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/EventEmitter.ts
var EventEmitter = __webpack_require__("/XAQ");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/interfaces/LibraryInterfaces.ts
var LibraryInterfaces = __webpack_require__("9psB");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/ProjectAnalytics.ts
var ProjectAnalytics = __webpack_require__("mm/P");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/SentryUtils.ts + 37 modules
var SentryUtils = __webpack_require__("mk41");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/stores/SpacesIIMSData.ts


class SpacesIIMSData_SpacesIIMSData {
    constructor({ accountType, displayName, environment, subscriptionType, serviceLevel, isPaid, userEmail, userId, token, fetchToken, }) {
        this.fetchToken = async (token) => {
            if (this.refreshPromise) {
                Settings["b" /* settings */].logger.info(`token is being refreshed, returning promise`);
                return this.refreshPromise;
            }
            if (this._tokenIsValid && token !== this._token) {
                return this._token;
            }
            this._tokenIsValid = false;
            if (!this.hostFetchToken) {
                // If a refresh hook wasn't provided, we just return an empty token
                // and we don't want fetch to keep trying with an invalid token.
                return '';
            }
            Settings["b" /* settings */].logger.info(`Spaces refreshing access token from host...`);
            this.refreshPromise = new Promise(async (resolve, reject) => {
                try {
                    const newToken = await this.hostFetchToken(this._token);
                    if (newToken) {
                        this._tokenIsValid = this._token !== newToken;
                        this._token = newToken;
                    }
                    this.refreshPromise = undefined;
                    this._tokenIsValid
                        ? resolve(this._token)
                        : reject('Host has returned an invalid token');
                }
                catch (e) {
                    this._tokenIsValid = false;
                    this.refreshPromise = undefined;
                    SentryUtils["a" /* sentryUtils */].captureException(e, {
                        tags: {
                            'action.error': 'refresh-access-token',
                        },
                    });
                    reject(e);
                }
                Settings["b" /* settings */].logger.info(`Refreshing access token ${this._tokenIsValid ? 'successful' : 'unsuccessful'}`);
            });
            return this.refreshPromise;
        };
        this.accountType = accountType;
        this.displayName = displayName;
        this.environment = environment;
        this.serviceLevel = serviceLevel;
        this.isPaid = isPaid;
        this.subscriptionType = subscriptionType;
        this.userEmail = userEmail;
        this.userId = userId;
        this.hostFetchToken = fetchToken;
        this.refreshPromise = undefined;
        this._token = token || '';
        this._tokenIsValid = token ? true : false;
    }
    get token() {
        return this._tokenIsValid ? this._token : '';
    }
    createCDOCompatibleData() {
        const { accountType, environment, fetchToken, userId, userEmail, serviceLevel, subscriptionType, } = this;
        return {
            accountType,
            environment,
            subscriptionType,
            fetchToken,
            fetchUserEmail: () => userEmail,
            fetchUserId: () => userId,
            serviceLevel,
        };
    }
}
/* harmony default export */ var stores_SpacesIIMSData = (SpacesIIMSData_SpacesIIMSData);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/version.js
var version = __webpack_require__("KAOT");
var version_default = /*#__PURE__*/__webpack_require__.n(version);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/constants.ts
var constants = __webpack_require__("YVc3");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/OfflineController.ts
var OfflineController = __webpack_require__("XmUd");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/RequestController.ts
var RequestController = __webpack_require__("9/TN");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/SpacesError.ts
var SpacesError = __webpack_require__("R5sx");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/recentsRefreshManager.ts
var recentsRefreshManager = __webpack_require__("5rC4");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/api/ServiceRequest.ts
var ServiceRequest = __webpack_require__("Cc7P");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/api/sophia-service/SophiaServiceRequest.ts
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2022 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/


/**
 * Sophia Feature API Utility Class
 *
 * @export
 * @class SophiaFeatureServiceRequest
 * @extends {ServiceRequest}
 */
class SophiaServiceRequest_SophiaFeatureServiceRequest extends ServiceRequest["a" /* default */] {
    constructor(apiPath) {
        super();
        this._url = '';
        this.headers({
            'X-Api-Key': Settings["b" /* settings */].config.CLIENT_ID,
        });
        this.url(`${apiPath}?clientId=${Settings["b" /* settings */].config.SOPHIA_CLIENT_ID}`);
    }
    url(apiPath = '/') {
        let resolvedPath = apiPath;
        let serviceUri = Settings["b" /* settings */].config.SOPHIA_ENDPOINT;
        if (resolvedPath.startsWith(serviceUri)) {
            this._url = resolvedPath;
            return this;
        }
        if (!apiPath.startsWith('/')) {
            resolvedPath = `/${apiPath}`;
        }
        this._url = `${serviceUri}${resolvedPath}`;
        return this;
    }
}

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/api/sophia-service/getSophiaFeatureFlag.ts
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2022 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/

async function getSophiaFeatureFlags() {
    const sophia = new SophiaServiceRequest_SophiaFeatureServiceRequest(`/fg/api/v3/feature`);
    sophia.options.enableRequestId = false;
    const { parsedBody } = await sophia
        .fetch()
        .then(SophiaServiceRequest_SophiaFeatureServiceRequest.verifyStatus)
        .then(SophiaServiceRequest_SophiaFeatureServiceRequest.parseJSONResponse);
    return parsedBody;
}

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/SAMUtils.ts
var SAMUtils = __webpack_require__("x7p6");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/stores/SharedStore.ts
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
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;
};
var __metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var SharedStore_a, SharedStore_b, SharedStore_c, SharedStore_d, SharedStore_e, _f, _g, _h, _j, _k, _l, _m;




















const ACTION_STATUS = 'actionStatus';
const STATUS_CHANGED = 'statusChanged';
const NAVIGATION_DATA_AVAILABLE = 'navigationDataAvailable';
const SESSION_NAVIGATED = 'sessionNavigated';
var ActionType;
(function (ActionType) {
    ActionType["copy"] = "copy";
    ActionType["move"] = "move";
    ActionType["upload"] = "upload";
})(ActionType || (ActionType = {}));
var ActionState;
(function (ActionState) {
    ActionState["canceled"] = "canceled";
    ActionState["failed"] = "failed";
    ActionState["partiallySucceeded"] = "partiallySucceeded";
    ActionState["start"] = "start";
    ActionState["succeeded"] = "succeeded";
})(ActionState || (ActionState = {}));
class SharedStore_SharedStore extends EventEmitter["a" /* default */] {
    constructor() {
        super();
        this.imsData = {};
        this.locale = 'en';
        this.theme = 'light';
        // Workaround until HS supports true dark,
        // current HS use Spectrum darkest theme palette but append Spectrum dark class...
        this.useDarkestPaletteForDark = false;
        this.displayCoachMarks = true;
        this.enablePlaceLinkOrEmbedArtifacts = false;
        this.hideCoachMarksCounter = 0;
        this.reloadCounter = 0;
        this.requestController = new RequestController["a" /* default */]();
        this.recentsRefreshManager = new recentsRefreshManager["c" /* default */]();
        this.sophiaFeatureCache = { features: [] };
        this._librariesFromOtherTeamsAtom = Object(mobx_module["n" /* createAtom */])('libraries from other teams');
        this.disableLogAnalytics = true;
        this._previousSAMConfig = '';
        this._firstLoadCompleted = false;
        this._lastRefreshTime = 0;
        this.recoverFromOfflineState = async () => {
            // User is back online, let's update the sidebar
            // then the right side view.
            this.requestController = new RequestController["a" /* default */]();
            this._prefetchTeamsAndBookmarkedSpaces().catch(e => Settings["b" /* settings */].logger.warn('Could not recover from offline', e));
        };
        this._onItemListStateChanged = (ev) => {
            const { list } = ev;
            if (list.type !== 'space' || list.status !== src["e" /* AssetListStatus */].ReadyFullyLoaded) {
                return;
            }
            const { bookmarkedSpaces } = this;
            if (!bookmarkedSpaces || list === bookmarkedSpaces) {
                // Skip the lists used for the actual spaces.
                return;
            }
            const spaceList = list;
            const items = new Set(spaceList.items);
            const { filter } = spaceList;
            // Check all the spaces in the sidebar and validate if anything would have matched this just reloaded list,
            // but is not included in the final result meaning it is probably deleted.
            // In that case we want to trigger a reload of the spaces in the sidebar.
            const missingSpaces = bookmarkedSpaces === null || bookmarkedSpaces === void 0 ? void 0 : bookmarkedSpaces.items.filter((space) => !items.has(space) && (!filter || (filter === null || filter === void 0 ? void 0 : filter.matches(space))));
            if (missingSpaces === null || missingSpaces === void 0 ? void 0 : missingSpaces.length) {
                // Refresh the bookmarked spaces.
                // Using the exclusive task to make sure the items are disabled while we reload the sidebar.
                // The disabled state will also indicate the user we know the spaces are probably gone
                // and we are in the process of updating the list.
                src["n" /* ItemBase */].runExclusiveTask('update', missingSpaces, () => this.requestController.runWithRetry(() => Object(SAMUtils["b" /* refreshList */])(bookmarkedSpaces))).catch(e => Settings["b" /* settings */].logger.warn('Failed loading bookmarked spaces due to inconsistency', e));
            }
        };
        this._onLibrariesChangeListener = () => {
            this._librariesFromOtherTeamsAtom.reportChanged();
        };
        this._emitStatusChanged = () => {
            // Emit the event so that the host can query
            // the status again even without using the
            // MobX observable support.
            this.emit(STATUS_CHANGED, this.status);
        };
        OfflineController["a" /* offlineController */].on('online', this.recoverFromOfflineState);
        Object(mobx_module["B" /* reaction */])(() => this.status, this._emitStatusChanged);
        Object(mobx_module["B" /* reaction */])(() => this.navigationDataAvailable, value => this.emit(NAVIGATION_DATA_AVAILABLE, value));
    }
    get config() {
        return environments[this.imsData.environment];
    }
    get isOnline() {
        return OfflineController["a" /* offlineController */].isOnline;
    }
    _getSAMConfig() {
        const translatedEnv = {
            stage: src["i" /* Env */].Stage,
            prod: src["i" /* Env */].Production,
        }[this.imsData.environment];
        return {
            ENVIRONMENT: translatedEnv,
            CLIENT_ID: this.config.CLIENT_ID,
            USER_ID: this.imsData.userId,
            ACCOUNT_TYPE: this.imsData.accountType,
            HOST_PRODUCT_DATA: {
                PRODUCT_ID: `${Host["a" /* default */].productName}/${Host["a" /* default */].version}`,
                PRODUCT_LOCATION: `Spaces/${version_default.a}`,
            },
            USE_SAM_CPP: Host["a" /* default */].useSamCpp,
        };
    }
    get hasTeamsLoaded() {
        var _a;
        return (((_a = this.teams) === null || _a === void 0 ? void 0 : _a.status) === src["e" /* AssetListStatus */].ReadyFullyLoaded || this.navigationDataAvailable);
    }
    get hasOtherTeamsLoaded() {
        var _a, _b;
        return (((_a = this.spacesFromOtherTeams) === null || _a === void 0 ? void 0 : _a.status) === src["e" /* AssetListStatus */].ReadyFullyLoaded ||
            ((_b = this.spacesFromOtherTeams) === null || _b === void 0 ? void 0 : _b.status) === src["e" /* AssetListStatus */].ReadyHasMorePages ||
            this.navigationDataAvailable);
    }
    /**
     * Sophia Feature API Functions
     */
    async fetchSophiaFeatures() {
        try {
            const parsedBody = await getSophiaFeatureFlags();
            const featureFlagReleaseName = '||features||';
            const featureFlagFeaturesKey = 'features';
            let releases = parsedBody.releases;
            let sophiaFeatures = [];
            for (let i = 0, len = releases.length; i < len; i++) {
                if (releases[i].release_name === featureFlagReleaseName) {
                    sophiaFeatures = releases[i][featureFlagFeaturesKey];
                }
            }
            this.sophiaFeatureCache = {
                features: sophiaFeatures,
            };
            Settings["b" /* settings */].logger.info(`Sophia Feature cache values set (${this.sophiaFeatureCache.features})`);
            return sophiaFeatures;
        }
        catch (error) {
            Settings["b" /* settings */].logger.error(`Error while fetching sophia features ${error}`);
        }
    }
    hasSophiaFeature(feature) {
        if (!this.sophiaFeatureCache) {
            return false;
        }
        const productSpecificFeature = `${feature}-${this.productId}`;
        return Boolean(
        // Universal feature enabled for all products
        this.sophiaFeatureCache.features.includes(feature) ||
            // Product specific feature enabled
            this.sophiaFeatureCache.features.includes(productSpecificFeature));
    }
    get navigationDataFullyLoaded() {
        var _a, _b, _c, _d, _e;
        return (((_a = this.teams) === null || _a === void 0 ? void 0 : _a.status) === src["e" /* AssetListStatus */].ReadyFullyLoaded &&
            (((_b = this.bookmarkedSpaces) === null || _b === void 0 ? void 0 : _b.status) === src["e" /* AssetListStatus */].ReadyFullyLoaded ||
                ((_c = this.bookmarkedSpaces) === null || _c === void 0 ? void 0 : _c.status) === src["e" /* AssetListStatus */].ReadyHasMorePages) &&
            (((_d = this.spacesFromOtherTeams) === null || _d === void 0 ? void 0 : _d.status) === src["e" /* AssetListStatus */].ReadyFullyLoaded ||
                ((_e = this.spacesFromOtherTeams) === null || _e === void 0 ? void 0 : _e.status) === src["e" /* AssetListStatus */].ReadyHasMorePages));
    }
    get navigationDataAvailable() {
        if (this._firstLoadCompleted) {
            // Avoid adding dependencies on the rest of the properties by returning early.
            // This is to support cases when the data was available once and now we are only
            // refreshing the contents. In that case we still want to display the sidebar,
            // even though the loader is still refreshing the contents in background.
            return true;
        }
        if (this.navigationDataFullyLoaded) {
            // Remember that we've loaded at least once before.
            this._firstLoadCompleted = true;
            return true;
        }
        return false;
    }
    async updateSAMIfNeeded() {
        const newConfig = this._getSAMConfig();
        const previousConfig = this._previousSAMConfig;
        const newConfigStr = JSON.stringify(newConfig);
        if (newConfigStr === previousConfig) {
            // Nothing changed, bail out.
            return false;
        }
        this._previousSAMConfig = newConfigStr;
        newConfig.ACCESS_TOKEN = this.imsData.token;
        let samCore = await Object(src["A" /* initializeSharedAssetModel */])(newConfig, {
            refreshAccessToken: this.imsData.fetchToken,
        });
        this._setSharedAssetModel(samCore);
        Settings["b" /* settings */].logger.log('SAM Asset Context reloaded', newConfig);
        return true;
    }
    _setSharedAssetModel(sharedAssetModel) {
        var _a;
        // Remove events from previous instance.
        (_a = this.sharedAssetModel) === null || _a === void 0 ? void 0 : _a.off(src["l" /* ITEM_LIST_STATE_CHANGED */], this._onItemListStateChanged);
        // Aborting all the existing fetches
        this.requestController.abort();
        this.requestController = new RequestController["a" /* default */]();
        // Make the SAM model reactive via MobX.
        sharedAssetModel.makeObservable(mobx_module["n" /* createAtom */]);
        const { spaceContext, collaborationContext } = sharedAssetModel;
        // Inject all the new objects before loading the pages.
        this._firstLoadCompleted = false;
        this.sharedAssetModel = sharedAssetModel;
        this.spaceContext = spaceContext;
        this.collaborationContext = collaborationContext;
        sharedAssetModel.on(src["l" /* ITEM_LIST_STATE_CHANGED */], this._onItemListStateChanged);
    }
    async _prefetchTeamsAndBookmarkedSpaces() {
        const { spaceContext } = this;
        if (!spaceContext) {
            return;
        }
        // Prefetch the initial pages.
        await this._refreshSidebar().catch(e => Settings["b" /* settings */].logger.warn('Failed to refresh sidebar', e));
    }
    _refreshSidebar() {
        const { sharedAssetModel, spaceContext } = this;
        if (!spaceContext || !sharedAssetModel) {
            return Promise.reject(new SpacesError["b" /* SpacesError */]('NOT_INITIALIZED', 'Spaces not initialized yet'));
        }
        const orgRepositoriesSource = spaceContext.getOrgRepositories();
        const teamsSource = spaceContext.getTeams();
        const spacesSource = spaceContext.getSpaces();
        // Prefetch the initial pages.
        return Promise.all([
            // We need all the org repositories, and the side bar will wait until all the pages are fully loaded.
            this.requestController.runWithRetry(() => {
                if (this.orgRepositories) {
                    return Object(SAMUtils["b" /* refreshList */])(this.orgRepositories);
                }
                else {
                    this.orgRepositories = orgRepositoriesSource.getList(src["o" /* OrgRepositoryOrder */].default, undefined, {
                        limit: constants["u" /* PROJECTS_PAGE_SIZE */],
                        loadAllPages: true,
                    });
                    return Object(SAMUtils["c" /* waitForListLoad */])(this.orgRepositories);
                }
            }),
            // We need all the teams in the side bar, and the side bar will wait until all the pages are fully loaded.
            this.requestController.runWithRetry(() => {
                if (this.teams) {
                    return Object(SAMUtils["b" /* refreshList */])(this.teams);
                }
                else {
                    this.teams = teamsSource.getList(src["y" /* TeamOrder */].default, undefined, {
                        limit: constants["u" /* PROJECTS_PAGE_SIZE */],
                        loadAllPages: true,
                        refreshTimeout: constants["p" /* ONE_MINUTE */],
                    });
                    return Object(SAMUtils["c" /* waitForListLoad */])(this.teams);
                }
            }),
            // We need all the bookmarked spaces, but the side bar will show up after the first page is visible.
            this.requestController.runWithRetry(() => {
                if (this.bookmarkedSpaces) {
                    return Object(SAMUtils["b" /* refreshList */])(this.bookmarkedSpaces);
                }
                else {
                    this.bookmarkedSpaces = spacesSource.getList(src["w" /* SpaceOrder */].default, src["v" /* SpaceFilter */].ActiveBookmarkedSpaces, {
                        limit: constants["u" /* PROJECTS_PAGE_SIZE */],
                        loadAllPages: true,
                    });
                    return Object(SAMUtils["c" /* waitForListLoad */])(this.bookmarkedSpaces);
                }
            }),
            // We only need the first page in order to decide on the sidebar.
            this.requestController.runWithRetry(() => {
                if (this.spacesFromOtherTeams) {
                    return Object(SAMUtils["b" /* refreshList */])(this.spacesFromOtherTeams);
                }
                else {
                    this.spacesFromOtherTeams = spacesSource.getList(src["w" /* SpaceOrder */].default, src["v" /* SpaceFilter */].ActiveSpacesFromOtherTeams, {
                        limit: constants["u" /* PROJECTS_PAGE_SIZE */],
                    });
                    return Object(SAMUtils["c" /* waitForListLoad */])(this.spacesFromOtherTeams);
                }
            }),
            // We need the root Cloud Documents folder when initiating a move from user storage.
            // Technically this could be delayed until invoking UAP in the future.
            this.requestController.runWithRetry(async () => {
                this.userStorageRepositoryId =
                    await sharedAssetModel.hostAssetContext.getUserRepoID();
            }),
        ]).then(() => { });
    }
    async refreshContent(options) {
        // don't try to refresh content in Spaces aren't initialized yet
        const { teams, spacesFromOtherTeams } = this;
        if (!teams || !spacesFromOtherTeams) {
            return;
        }
        const { refreshTimeout = 0 } = options || {};
        const now = Date.now();
        if (this._lastRefreshTime + refreshTimeout >= now) {
            return;
        }
        this._lastRefreshTime = now;
        // Refresh now
        // Force a reload on all loaders via MobX.
        ++this.reloadCounter;
        // Refresh the content in the sidebar.
        await this._refreshSidebar().catch(e => Settings["b" /* settings */].logger.warn('Failed to refresh content', e));
    }
    get intl() {
        return createIntl({ uiLocale: this.locale, systemLocale: this.systemLocale });
    }
    get status() {
        if (!this.navigationDataAvailable && !this.isOnline) {
            // We are offline, and didn't have an initial load,
            // so we are marking the status 'offline'
            return 'offline';
        }
        const { teams, spacesFromOtherTeams } = this;
        if (!teams || !spacesFromOtherTeams) {
            // We are still waiting for SAM to initialize.
            return 'pending';
        }
        const teamsStatus = teams.status;
        const otherSpacesStatus = spacesFromOtherTeams.status;
        if (teamsStatus === src["e" /* AssetListStatus */].HadLoaderErrors ||
            otherSpacesStatus === src["e" /* AssetListStatus */].HadLoaderErrors) {
            // There was an error with the loading.
            return 'error';
        }
        if (teams.items.length ||
            spacesFromOtherTeams.items.length ||
            this.hasLibrariesFromOtherTeams) {
            // The user has a team or access to a space.
            return 'hasSpaces';
        }
        if ([teamsStatus, otherSpacesStatus].includes(src["e" /* AssetListStatus */].Loading)) {
            // We are still deciding if the user has access to spaces.
            return 'loading';
        }
        // All is loaded and we don't have teams or spaces.
        return 'noSpaces';
    }
    get hasSpacesFromOtherTeamsSideBarItem() {
        var _a;
        return Boolean(this.hasLibrariesFromOtherTeams || ((_a = this.spacesFromOtherTeams) === null || _a === void 0 ? void 0 : _a.items.length));
    }
    _updateLibrariesAPI(libraries) {
        var _a, _b, _c, _d;
        (_b = (_a = this.libraries) === null || _a === void 0 ? void 0 : _a.removeLibraryChangeListener) === null || _b === void 0 ? void 0 : _b.call(_a, this._onLibrariesChangeListener);
        this.libraries = libraries;
        (_d = (_c = this.libraries) === null || _c === void 0 ? void 0 : _c.addLibraryChangeListener) === null || _d === void 0 ? void 0 : _d.call(_c, this._onLibrariesChangeListener);
    }
    get hasLibrariesFromOtherTeams() {
        var _a, _b, _c, _d, _e;
        this._librariesFromOtherTeamsAtom.reportObserved();
        return (_e = (_b = (_a = this.libraries) === null || _a === void 0 ? void 0 : _a.hasLibrariesFromOtherTeams) === null || _b === void 0 ? void 0 : _b.call(_a, (_d = (_c = this.teams) === null || _c === void 0 ? void 0 : _c.items) !== null && _d !== void 0 ? _d : [])) !== null && _e !== void 0 ? _e : false;
    }
    notifySessionNavigated(session) {
        this.emit(SESSION_NAVIGATED, session);
    }
    updateActionStatus(data) {
        this.emit(ACTION_STATUS, data);
    }
    async updateStore(params) {
        var _a, _b;
        let prefetchTeams = false;
        if ((_a = params.imsData) === null || _a === void 0 ? void 0 : _a.environment) {
            // If the user is logged out accessing public assets, imsData.environment is the only available property.
            this.imsData = new stores_SpacesIIMSData(params.imsData);
            if ((_b = params.imsData) === null || _b === void 0 ? void 0 : _b.userId) {
                // Analytics depend on the IMS environment, so calling this again to
                // re-initialize.
                ProjectAnalytics["g" /* default */].ensureAnalyticsEnabled(!this.disableLogAnalytics, params.ingestContextJson, params.ingestProjectKey);
                if (!params.samCore) {
                    const updated = params.skipSAMInitializationForTesting
                        ? false
                        : await this.updateSAMIfNeeded();
                    prefetchTeams = updated && !params.skipTeamPrefetch;
                }
                if (!params.skipSophiaInitializationForTesting) {
                    await this.fetchSophiaFeatures();
                }
            }
        }
        if (params.samCore) {
            this._setSharedAssetModel(params.samCore);
            prefetchTeams = !params.skipTeamPrefetch;
        }
        if (params.productId) {
            this.productId = params.productId;
        }
        if (params.locale) {
            this.locale = params.locale;
            ProjectAnalytics["g" /* default */].ensureAnalyticsEnabled(!this.disableLogAnalytics, params.ingestContextJson, params.ingestProjectKey);
        }
        if (params.systemLocale) {
            this.systemLocale = params.systemLocale;
        }
        if (params.theme) {
            this.theme = params.theme;
        }
        if (params.useDarkestPaletteForDark) {
            this.useDarkestPaletteForDark = params.useDarkestPaletteForDark;
        }
        if (params.showFilePicker) {
            Host["a" /* default */].showFilePicker = params.showFilePicker;
        }
        if (params.filePicker) {
            Host["a" /* default */].filePicker = params.filePicker;
        }
        if (params.downloadUtils) {
            Host["a" /* default */].downloadUtils = params.downloadUtils;
        }
        if (params.openUtils) {
            Host["a" /* default */].openUtils = params.openUtils;
        }
        if (params.disableLogAnalytics !== undefined) {
            this.disableLogAnalytics = params.disableLogAnalytics;
            ProjectAnalytics["g" /* default */].ensureAnalyticsEnabled(!this.disableLogAnalytics, params.ingestContextJson, params.ingestProjectKey);
        }
        if (params.displayCoachMarks !== undefined) {
            this.displayCoachMarks = params.displayCoachMarks;
        }
        if (params.enablePlaceLinkOrEmbedArtifacts !== undefined) {
            this.enablePlaceLinkOrEmbedArtifacts = params.enablePlaceLinkOrEmbedArtifacts;
        }
        if (params.libraries) {
            this._updateLibrariesAPI(params.libraries);
        }
        if (!prefetchTeams) {
            return Promise.resolve();
        }
        return this._prefetchTeamsAndBookmarkedSpaces().catch(e => {
            Settings["b" /* settings */].logger.warn('Error pre-fetching teams and bookmarks in UpdateStore', e);
        });
    }
    hideCoachMarks() {
        ++this.hideCoachMarksCounter;
        let didCallShow = false;
        return () => {
            if (didCallShow) {
                // Make sure we match only one hide call.
                return;
            }
            didCallShow = true;
            // Show the coachmarks again only after a bit of time to avoid interlacing with the dialogs & other popovers.
            setTimeout(() => {
                --this.hideCoachMarksCounter;
            }, 200);
        };
    }
    notifyAssetEvent(asset, eventName) {
        this.recentsRefreshManager.recentFilesUpdated(asset, eventName);
    }
    async getAssetWithID(assetID) {
        if (this.sharedAssetModel !== undefined) {
            const adobeAsset = await this.sharedAssetModel.hostAssetContext.getAssetWithCloudID(assetID);
            return adobeAsset;
        }
        else {
            return Promise.reject(new src["q" /* SAMError */]('INVALID_DATA', 'SAM not initialized yet'));
        }
    }
}
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", typeof (SharedStore_a = typeof IIMSData["ISpacesIMSData"] !== "undefined" && IIMSData["ISpacesIMSData"]) === "function" ? SharedStore_a : Object)
], SharedStore_SharedStore.prototype, "imsData", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", String)
], SharedStore_SharedStore.prototype, "locale", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", Object)
], SharedStore_SharedStore.prototype, "systemLocale", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", typeof (SharedStore_b = typeof constants["ISupportedThemes"] !== "undefined" && constants["ISupportedThemes"]) === "function" ? SharedStore_b : Object)
], SharedStore_SharedStore.prototype, "theme", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", Object)
], SharedStore_SharedStore.prototype, "useDarkestPaletteForDark", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", Object)
], SharedStore_SharedStore.prototype, "productId", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", typeof (SharedStore_d = typeof src["ISAMCore"] !== "undefined" && src["ISAMCore"]) === "function" ? SharedStore_d : Object)
], SharedStore_SharedStore.prototype, "sharedAssetModel", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", typeof (SharedStore_e = typeof src["SpaceContext"] !== "undefined" && src["SpaceContext"]) === "function" ? SharedStore_e : Object)
], SharedStore_SharedStore.prototype, "spaceContext", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", typeof (_f = typeof src["CollaborationContext"] !== "undefined" && src["CollaborationContext"]) === "function" ? _f : Object)
], SharedStore_SharedStore.prototype, "collaborationContext", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", typeof (_g = typeof src["IItemList"] !== "undefined" && src["IItemList"]) === "function" ? _g : Object)
], SharedStore_SharedStore.prototype, "orgRepositories", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", typeof (_h = typeof src["IItemList"] !== "undefined" && src["IItemList"]) === "function" ? _h : Object)
], SharedStore_SharedStore.prototype, "teams", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", typeof (_j = typeof src["IItemList"] !== "undefined" && src["IItemList"]) === "function" ? _j : Object)
], SharedStore_SharedStore.prototype, "bookmarkedSpaces", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", typeof (_k = typeof src["IItemList"] !== "undefined" && src["IItemList"]) === "function" ? _k : Object)
], SharedStore_SharedStore.prototype, "spacesFromOtherTeams", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", Boolean)
], SharedStore_SharedStore.prototype, "displayCoachMarks", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", Boolean)
], SharedStore_SharedStore.prototype, "enablePlaceLinkOrEmbedArtifacts", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", Number)
], SharedStore_SharedStore.prototype, "hideCoachMarksCounter", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", typeof (_l = typeof LibraryInterfaces["LibrariesAPI"] !== "undefined" && LibraryInterfaces["LibrariesAPI"]) === "function" ? _l : Object)
], SharedStore_SharedStore.prototype, "libraries", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", String)
], SharedStore_SharedStore.prototype, "userStorageRepositoryId", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", Number)
], SharedStore_SharedStore.prototype, "reloadCounter", void 0);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [])
], SharedStore_SharedStore.prototype, "hasTeamsLoaded", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [])
], SharedStore_SharedStore.prototype, "hasOtherTeamsLoaded", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], SharedStore_SharedStore.prototype, "navigationDataFullyLoaded", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], SharedStore_SharedStore.prototype, "navigationDataAvailable", null);
__decorate([
    mobx_module["j" /* action */],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", []),
    __metadata("design:returntype", Promise)
], SharedStore_SharedStore.prototype, "updateSAMIfNeeded", null);
__decorate([
    mobx_module["j" /* action */],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [typeof (_m = typeof src["ISAMCore"] !== "undefined" && src["ISAMCore"]) === "function" ? _m : Object]),
    __metadata("design:returntype", void 0)
], SharedStore_SharedStore.prototype, "_setSharedAssetModel", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], SharedStore_SharedStore.prototype, "intl", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", String),
    __metadata("design:paramtypes", [])
], SharedStore_SharedStore.prototype, "status", null);
class SharedStorePublic {
    constructor(sharedStore) {
        this.sharedStore = sharedStore;
    }
    _getInternalSharedStore() {
        return this.sharedStore;
    }
    updateStore(params) {
        return this.sharedStore.updateStore(params);
    }
    on(eventType, cb) {
        this.sharedStore.on(eventType, cb);
    }
    off(eventType, cb) {
        this.sharedStore.off(eventType, cb);
    }
    get status() {
        return this.sharedStore.status;
    }
    hideCoachMarks() {
        return this.sharedStore.hideCoachMarks();
    }
    refreshContent(options) {
        return this.sharedStore.refreshContent(options);
    }
    notifyAssetEvent(asset, eventName) {
        this.sharedStore.notifyAssetEvent(asset, eventName);
    }
}
const sharedStore = new SharedStore_SharedStore();
const sharedStorePublic = new SharedStorePublic(sharedStore);



/***/ }),

/***/ "jo6Y":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


exports.__esModule = true;

exports.default = function (obj, keys) {
  var target = {};

  for (var i in obj) {
    if (keys.indexOf(i) >= 0) continue;
    if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;
    target[i] = obj[i];
  }

  return target;
};

/***/ }),

/***/ "jsAP":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);

// EXPORTS
__webpack_require__.d(__webpack_exports__, "UAP", function() { return /* reexport */ src_UAP; });
__webpack_require__.d(__webpack_exports__, "App", function() { return /* reexport */ src_UAP; });
__webpack_require__.d(__webpack_exports__, "showPicker", function() { return /* reexport */ showPicker; });
__webpack_require__.d(__webpack_exports__, "PickerMode", function() { return /* reexport */ enums_PickerMode; });
__webpack_require__.d(__webpack_exports__, "UXP_INITIAL_DIALOG_HEIGHT", function() { return /* reexport */ UXP_INITIAL_DIALOG_HEIGHT; });
__webpack_require__.d(__webpack_exports__, "UXP_INITIAL_DIALOG_WIDTH", function() { return /* reexport */ UXP_INITIAL_DIALOG_WIDTH; });
__webpack_require__.d(__webpack_exports__, "UXP_MIN_DIALOG_HEIGHT", function() { return /* reexport */ UXP_MIN_DIALOG_HEIGHT; });
__webpack_require__.d(__webpack_exports__, "UXP_MIN_DIALOG_WIDTH", function() { return /* reexport */ UXP_MIN_DIALOG_WIDTH; });
__webpack_require__.d(__webpack_exports__, "IUAPHost", function() { return /* reexport */ IUAPHost["IUAPHost"]; });
__webpack_require__.d(__webpack_exports__, "launchUAPMoveDialog", function() { return /* reexport */ launchUAPMoveDialog; });
__webpack_require__.d(__webpack_exports__, "IUXPModalDialogOptions", function() { return /* reexport */ IUXPModalDialogOptions["IUXPModalDialogOptions"]; });
__webpack_require__.d(__webpack_exports__, "IUXPModalDialogSize", function() { return /* reexport */ IUXPModalDialogOptions["IUXPModalDialogSize"]; });
__webpack_require__.d(__webpack_exports__, "I18NCDP", function() { return /* reexport */ i18n; });

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/index.tsx + 12 modules
var ccx_cdo = __webpack_require__("t+6E");

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__("q1tI");
var react_default = /*#__PURE__*/__webpack_require__.n(react);

// EXTERNAL MODULE: ./node_modules/react-intl-cdo/lib/index.es.js + 1 modules
var index_es = __webpack_require__("VIzJ");

// EXTERNAL MODULE: ./node_modules/mobx/lib/mobx.module.js
var mobx_module = __webpack_require__("2vnA");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-document-picker/src/utils/constants.ts
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
/**
 * Default settings
 */
const DEFAULT_SERVICE_ENVIRONMENT = 'prod'; // default service API environment
const DEFAULT_UI_LOCALE = 'en'; // default UI localization
const INGEST_APIKEY = 'doc-picker-service';
const INGEST_DEBOUNCE_VALUE = 3000;
const INGEST_PROJECT_VALUE = 'doc-picker-service';
const INGEST_INITIAL_STATE = {
    event: {
        category: 'DESKTOP',
    },
    source: {
        name: 'CCX-Document-Picker',
    },
};
const ROOT_FOLDER_PATH = 'cloud-content';
const FOLDER_MIMETYPE = 'application/vnd.adobe.directory+json';
const DEFAULT_CLOUD_URL_PROTOCOL = 'https://';
const STRINGIFY_INDENT = 2;
const UXP_INITIAL_DIALOG_WIDTH = 836;
const UXP_INITIAL_DIALOG_HEIGHT = 576;
const UXP_MIN_DIALOG_WIDTH = 836;
const UXP_MIN_DIALOG_HEIGHT = 500;
const CLOUD_DOCUMENTS_ROUTE_ROOT = 'cloud-documents';
const CLOUD_DOCUMENTS_ROUTE_ROOTS = [CLOUD_DOCUMENTS_ROUTE_ROOT];
const SPACES_PROJECTS_ROUTE_ROOT = 'projects';
const SPACES_TEAMS_ROUTE_ROOT = 'teams';
const SPACES_ROUTE_ROOTS = [SPACES_PROJECTS_ROUTE_ROOT, SPACES_TEAMS_ROUTE_ROOT];
const DEFAULT_TOOLTIP_DELAY = 500;

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Provider/index.js
var Provider = __webpack_require__("bUsb");
var Provider_default = /*#__PURE__*/__webpack_require__.n(Provider);

// EXTERNAL MODULE: ./node_modules/lodash.merge/index.js
var lodash_merge = __webpack_require__("2oH+");
var lodash_merge_default = /*#__PURE__*/__webpack_require__.n(lodash_merge);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-document-picker/src/locale/cs.js
var cs = __webpack_require__("FhEo");
var cs_default = /*#__PURE__*/__webpack_require__.n(cs);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-document-picker/src/locale/da.js
var da = __webpack_require__("+juC");
var da_default = /*#__PURE__*/__webpack_require__.n(da);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-document-picker/src/locale/de.js
var de = __webpack_require__("bgu4");
var de_default = /*#__PURE__*/__webpack_require__.n(de);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-document-picker/src/locale/en.js
var en = __webpack_require__("le2V");
var en_default = /*#__PURE__*/__webpack_require__.n(en);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-document-picker/src/locale/es.js
var es = __webpack_require__("h0Kx");
var es_default = /*#__PURE__*/__webpack_require__.n(es);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-document-picker/src/locale/fi.js
var fi = __webpack_require__("NbzK");
var fi_default = /*#__PURE__*/__webpack_require__.n(fi);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-document-picker/src/locale/fr.js
var fr = __webpack_require__("aYdr");
var fr_default = /*#__PURE__*/__webpack_require__.n(fr);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-document-picker/src/locale/hu.js
var hu = __webpack_require__("/8BR");
var hu_default = /*#__PURE__*/__webpack_require__.n(hu);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-document-picker/src/locale/it.js
var it = __webpack_require__("euTv");
var it_default = /*#__PURE__*/__webpack_require__.n(it);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-document-picker/src/locale/ja.js
var ja = __webpack_require__("vKrR");
var ja_default = /*#__PURE__*/__webpack_require__.n(ja);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-document-picker/src/locale/ko.js
var ko = __webpack_require__("QhJR");
var ko_default = /*#__PURE__*/__webpack_require__.n(ko);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-document-picker/src/locale/nb.js
var nb = __webpack_require__("683I");
var nb_default = /*#__PURE__*/__webpack_require__.n(nb);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-document-picker/src/locale/nl.js
var nl = __webpack_require__("rNPF");
var nl_default = /*#__PURE__*/__webpack_require__.n(nl);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-document-picker/src/locale/pl.js
var pl = __webpack_require__("wthy");
var pl_default = /*#__PURE__*/__webpack_require__.n(pl);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-document-picker/src/locale/pt.js
var pt = __webpack_require__("5PXy");
var pt_default = /*#__PURE__*/__webpack_require__.n(pt);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-document-picker/src/locale/ru.js
var ru = __webpack_require__("6zSq");
var ru_default = /*#__PURE__*/__webpack_require__.n(ru);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-document-picker/src/locale/sv.js
var sv = __webpack_require__("BfYw");
var sv_default = /*#__PURE__*/__webpack_require__.n(sv);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-document-picker/src/locale/tr.js
var tr = __webpack_require__("s8Qj");
var tr_default = /*#__PURE__*/__webpack_require__.n(tr);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-document-picker/src/locale/uk.js
var uk = __webpack_require__("i32c");
var uk_default = /*#__PURE__*/__webpack_require__.n(uk);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-document-picker/src/locale/zh-Hans.js
var zh_Hans = __webpack_require__("gQ8F");
var zh_Hans_default = /*#__PURE__*/__webpack_require__.n(zh_Hans);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-document-picker/src/locale/zh-Hant.js
var zh_Hant = __webpack_require__("9XT/");
var zh_Hant_default = /*#__PURE__*/__webpack_require__.n(zh_Hant);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-document-picker/src/locale/zu.js
var zu = __webpack_require__("vStQ");
var zu_default = /*#__PURE__*/__webpack_require__.n(zu);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-document-picker/src/utils/i18n.ts
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2020 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/






















/**
 * List of supported locales.
 */
const SUPPORTED_LOCALES = [
    'cs',
    'da',
    'de',
    'en',
    'es',
    'fi',
    'fr',
    'hu',
    'it',
    'ja',
    'ko',
    'nb',
    'nl',
    'pl',
    'pt',
    'ru',
    'sv',
    'tr',
    'uk',
    'zh-hans',
    'zh-hant',
    'zu',
];
/**
 * Master localization table.
 */
const APP_LOCALIZATION_TABLES = {
    cs: cs_default.a,
    da: da_default.a,
    de: de_default.a,
    en: en_default.a,
    es: es_default.a,
    fi: fi_default.a,
    fr: fr_default.a,
    hu: hu_default.a,
    it: it_default.a,
    ja: ja_default.a,
    ko: ko_default.a,
    nb: nb_default.a,
    nl: nl_default.a,
    pl: pl_default.a,
    pt: pt_default.a,
    ru: ru_default.a,
    sv: sv_default.a,
    tr: tr_default.a,
    uk: uk_default.a,
    'zh-hans': zh_Hans_default.a,
    'zh-hant': zh_Hant_default.a,
    zu: zu_default.a,
};
const APP_LOCALE_REMAPPING_TABLE = {
    zh_cn: 'zh-hans',
    zh_tw: 'zh-hant',
    // If a new locale with hyphens is supported earlier in this list, it must also have
    // an entry in this table with the '_' below.  NormalizedLocale converts
    // the locale to have an '_' and then searches this list
    // and if not found truncates the locale to two letters.
    // Otherwise zh-Hans could get clipped to be zh
    // and there is no zh locale support at this time.
    zh_hans: 'zh-hans',
    zh_hant: 'zh-hant',
};
/**
 * Master string table container.
 */
class I18NCDP {
    /**
     * Get the specified localization table.
     *
     * @param {String} locale 	locale specifier ('en', 'jp', etc.)
     * @return {Object} representing the localiztion table
     */
    static getStringsForLocale(locale) {
        const table = SUPPORTED_LOCALES.includes(locale) ? APP_LOCALIZATION_TABLES[locale] : {};
        return table;
    }
    /**
     * Get the locale mapped to a supported one.
     *
     * @param {String} locale     locale specifier
     * @return {String} with the remapped locale code if necessary.
     */
    static normalizeLocale(locale = 'en') {
        // eslint-disable-next-line no-param-reassign
        locale = locale.toLowerCase();
        // CDO mainly supports two-character locales ('en', 'es', 'ru', etc) but also
        // supports some hyphenated (flavored) locales ('zh-Hans', etc).
        //
        // react-intl appears to be using this standard
        // https://www.unicode.org/reports/tr35/tr35.html#Identifiers
        //
        // Any unexpected variants of 'en' get mapped to 'en'.
        // What isn't currently supported is truncating variants of
        // hyphenated locales.  So if, per the standard, a locale is
        // passed in like zh-Hant-HK it will not be normalized to
        // zh-Hant
        //
        // TODO: remove other hyphenated locales (en-XX, fr-XX, es-XX) from the repos.
        // The localization team just copies them from en, fr, es.
        // https://jira.corp.adobe.com/browse/CCXCD-6571
        const remapped = APP_LOCALE_REMAPPING_TABLE[locale.replace(/-/g, '_')];
        // eslint-disable-next-line @typescript-eslint/no-magic-numbers
        const normalized = !remapped ? locale.substr(0, 2) : remapped;
        // default to english in case of errors
        if (!normalized || !normalized.length) {
            return 'en';
        }
        return normalized;
    }
    static isMessageDefined(intl, id) {
        return intl && Object.prototype.hasOwnProperty.call(intl.messages, id);
    }
}
// eslint-disable-next-line
let internalForTests;
if (false) {}
/* harmony default export */ var i18n = (I18NCDP);


// EXTERNAL MODULE: ./node_modules/@spectrum/spectrum-iconstore/icons/react/CreativeCloud/index.js
var CreativeCloud = __webpack_require__("ZG73");
var CreativeCloud_default = /*#__PURE__*/__webpack_require__.n(CreativeCloud);

// EXTERNAL MODULE: ./node_modules/@ccx-public/ccx-ingest/index.js
var ccx_ingest = __webpack_require__("j6Ri");

// EXTERNAL MODULE: ./node_modules/mobx-react/index.module.js
var index_module = __webpack_require__("okNM");

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/CCLibrary/index.js
var CCLibrary = __webpack_require__("yXOX");
var CCLibrary_default = /*#__PURE__*/__webpack_require__.n(CCLibrary);

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/DeleteOutline/index.js
var DeleteOutline = __webpack_require__("bI7j");
var DeleteOutline_default = /*#__PURE__*/__webpack_require__.n(DeleteOutline);

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/DocumentOutline/index.js
var DocumentOutline = __webpack_require__("zTix");
var DocumentOutline_default = /*#__PURE__*/__webpack_require__.n(DocumentOutline);

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/OpenRecent/index.js
var OpenRecent = __webpack_require__("vqvB");
var OpenRecent_default = /*#__PURE__*/__webpack_require__.n(OpenRecent);

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/UserGroup/index.js
var UserGroup = __webpack_require__("FykI");
var UserGroup_default = /*#__PURE__*/__webpack_require__.n(UserGroup);

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/Import/index.js
var Import = __webpack_require__("j7sy");
var Import_default = /*#__PURE__*/__webpack_require__.n(Import);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/main.tsx + 68 modules
var src_main = __webpack_require__("BuQ2");

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Textfield/index.js
var Textfield = __webpack_require__("WgUl");
var Textfield_default = /*#__PURE__*/__webpack_require__.n(Textfield);

// EXTERNAL MODULE: ./node_modules/classnames/index.js
var classnames = __webpack_require__("TSYQ");
var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-document-picker/src/components/SaveAsOrExportInput.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe Systems Incorporated
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any. The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
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;
};






// @ts-ignore
const styles = __webpack_require__("cCMJ");
let SaveAsOrExportInput_SaveAsOrExportInput = class SaveAsOrExportInput extends react["Component"] {
    render() {
        const { value, errorMessage, onInputChange, onPrimaryButtonClick, isDialogOpen, inputLabelId, primaryButtonDisabled, } = this.props;
        const saveAsOrExportLabel = react["createElement"](index_es["c" /* FormattedMessage */], { id: `pickerView.${inputLabelId}` });
        const formatMessageValues = errorMessage === ccx_cdo["C" /* ValidationStatus */].invalidChar
            ? { characters: ccx_cdo["B" /* VALIDATION_INVALID_CHARS */] }
            : {};
        const hasErrorMsg = errorMessage !== '';
        const errorMsgKey = hasErrorMsg
            ? `pickerView.error.saveAsOrExport.${errorMessage}`
            : 'pickerView.error.saveAsOrExport.default';
        const validationState = hasErrorMsg
            ? ccx_cdo["s" /* ReactSpectrumValidationState */].invalid
            : ccx_cdo["s" /* ReactSpectrumValidationState */].valid;
        return (react["createElement"]("div", { className: styles.root },
            react["createElement"]("div", { className: styles.input },
                react["createElement"]("div", { className: `${styles.label} saveAsOrExportInputLabel` }, saveAsOrExportLabel),
                react["createElement"]("div", { className: styles.textField },
                    react["createElement"](Textfield_default.a, { autoFocus: true, id: "pickerView.saveAsInput", placeholder: "", validationState: validationState, className: classnames_default()(styles.textChild, 'globalSpacesTextfield'), value: value, onChange: e => onInputChange && onInputChange(e), onKeyDown: e => {
                            if (e.key === 'Enter' && !primaryButtonDisabled) {
                                onPrimaryButtonClick && onPrimaryButtonClick();
                            }
                        }, 
                        // Ignore this line because the real react-spectrum
                        // textfield component does not have this property
                        // only the @torq-native/react-spectrum fork does
                        // @ts-ignore
                        disableOnOverlay: isDialogOpen }))),
            react["createElement"]("div", { className: styles.error },
                react["createElement"]("div", { className: `${styles.label} ${styles.indentFix}` }, saveAsOrExportLabel),
                react["createElement"]("div", { className: styles.errorMessage + (hasErrorMsg ? ` ${styles.show}` : '') },
                    react["createElement"](index_es["c" /* FormattedMessage */], { id: errorMsgKey, values: formatMessageValues, defaultMessage: errorMsgKey })))));
    }
};
SaveAsOrExportInput_SaveAsOrExportInput = __decorate([
    index_module["e" /* observer */]
], SaveAsOrExportInput_SaveAsOrExportInput);
/* harmony default export */ var components_SaveAsOrExportInput = (Object(index_es["g" /* injectIntl */])(SaveAsOrExportInput_SaveAsOrExportInput));


// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Button/index.js
var Button = __webpack_require__("Cn9g");
var Button_default = /*#__PURE__*/__webpack_require__.n(Button);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Checkbox/index.js
var Checkbox = __webpack_require__("L+OI");
var Checkbox_default = /*#__PURE__*/__webpack_require__.n(Checkbox);

// EXTERNAL MODULE: ./node_modules/lodash.flattendeep/index.js
var lodash_flattendeep = __webpack_require__("XW3W");
var lodash_flattendeep_default = /*#__PURE__*/__webpack_require__.n(lodash_flattendeep);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Select/index.js
var Select = __webpack_require__("GfA4");
var Select_default = /*#__PURE__*/__webpack_require__.n(Select);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Tooltip/index.js
var Tooltip = __webpack_require__("DUuf");
var Tooltip_default = /*#__PURE__*/__webpack_require__.n(Tooltip);

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/InfoOutline/index.js
var InfoOutline = __webpack_require__("AiiT");
var InfoOutline_default = /*#__PURE__*/__webpack_require__.n(InfoOutline);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/OverlayTrigger/index.js
var OverlayTrigger = __webpack_require__("uYrR");
var OverlayTrigger_default = /*#__PURE__*/__webpack_require__.n(OverlayTrigger);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-document-picker/src/utils/storage.ts
/*************************************************************************
 *   ADOBE CONFIDENTIAL
 *
 *   Copyright 2022 Adobe
 *   All Rights Reserved.
 *
 *   NOTICE:  All information contained herein is, and remains
 *   the property of Adobe and its suppliers, if any. The intellectual
 *   and technical concepts contained herein are proprietary to Adobe
 *   and its suppliers and are protected by all applicable intellectual
 *   property laws, including trade secret and copyright laws.
 *   Dissemination of this information or reproduction of this material
 *   is strictly forbidden unless prior written permission is obtained
 *   from Adobe.
 **************************************************************************/
var UAP_LOCAL_STORAGE_KEY;
(function (UAP_LOCAL_STORAGE_KEY) {
    UAP_LOCAL_STORAGE_KEY["SEEN_CONFIRMATION_PREFIX"] = "uap:confirmation:seen:";
})(UAP_LOCAL_STORAGE_KEY || (UAP_LOCAL_STORAGE_KEY = {}));
function storage_getStorage(key) {
    try {
        return localStorage.getItem(key);
    }
    catch (error) {
        console.error('Utils/storage: localStorage is not supported');
    }
}
function storage_setStorage(key, value) {
    try {
        return localStorage.setItem(key, value);
    }
    catch (error) {
        console.error('Utils/storage: localStorage is not supported');
    }
}

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Dialog/index.js
var Dialog = __webpack_require__("bLbN");
var Dialog_default = /*#__PURE__*/__webpack_require__.n(Dialog);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-document-picker/src/components/ConfirmationDialog.tsx
/*************************************************************************
 *   ADOBE CONFIDENTIAL
 *
 *   Copyright 2022 Adobe
 *   All Rights Reserved.
 *
 *   NOTICE:  All information contained herein is, and remains
 *   the property of Adobe and its suppliers, if any. The intellectual
 *   and technical concepts contained herein are proprietary to Adobe
 *   and its suppliers and are protected by all applicable intellectual
 *   property laws, including trade secret and copyright laws.
 *   Dissemination of this information or reproduction of this material
 *   is strictly forbidden unless prior written permission is obtained
 *   from Adobe.
 **************************************************************************/







const ConfirmationDialog_styles = __webpack_require__("vbF3");
const ConfirmationDialog = ({ intl, id, title, body, confirmLabel, cancelLabel, variant, onConfirm, onCancel, learnMoreLink, callbacks, open, }) => {
    const [dontShowAgain, setDontShowAgain] = Object(react["useState"])(false);
    const localStorageKey = getDontShowAgainLocalStorageKey(id);
    const defaultConfirmId = 'confirmationDialog.confirm.default';
    const defaultCancelId = 'confirmationDialog.cancel.default';
    const useLocaleMessageIfExists = (str) => i18n.isMessageDefined(intl, str) ? intl.formatMessage({ id: str }) : str;
    const dialogTitle = useLocaleMessageIfExists(title);
    const dialogBody = useLocaleMessageIfExists(body);
    const dialogConfirmLabel = useLocaleMessageIfExists(confirmLabel || defaultConfirmId);
    const dialogCancelLabel = useLocaleMessageIfExists(cancelLabel || defaultCancelId);
    const dontShowAgainLabel = intl.formatMessage({ id: 'confirmationDialog.dontShowAgain' });
    return (react_default.a.createElement(Dialog_default.a, { className: ConfirmationDialog_styles.confirmationDialog, id: "ConfirmationDialog", variant: variant || 'confirmation', title: dialogTitle, confirmLabel: dialogConfirmLabel, cancelLabel: dialogCancelLabel, onConfirm: (...args) => {
            if (dontShowAgain) {
                storage_setStorage(localStorageKey, true);
            }
            onConfirm(...args);
        }, onCancel: onCancel, open: open },
        dialogBody,
        learnMoreLink && (react_default.a.createElement(ccx_cdo["b" /* CDOLink */], { callbacks: callbacks, className: ConfirmationDialog_styles.learnMoreLink, href: Object(ccx_cdo["L" /* localizedGoUrl */])(learnMoreLink, intl.locale) },
            react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "confirmationDialog.learnMore" }))),
        react_default.a.createElement("br", null),
        react_default.a.createElement(Checkbox_default.a, { label: dontShowAgainLabel, checked: dontShowAgain, onChange: () => setDontShowAgain(!dontShowAgain) })));
};
function getDontShowAgainLocalStorageKey(id) {
    return `${UAP_LOCAL_STORAGE_KEY.SEEN_CONFIRMATION_PREFIX}${id}`;
}
/* harmony default export */ var components_ConfirmationDialog = (Object(index_es["g" /* injectIntl */])(ConfirmationDialog));


// CONCATENATED MODULE: ./node_modules/@ccx/ccx-document-picker/src/components/PickerViewFooter.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe Systems Incorporated
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any. The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/













const PickerViewFooter_styles = __webpack_require__("orUL");
class PickerViewFooter_PickerViewFooter extends react["Component"] {
    constructor(props, context) {
        super(props, context);
        this._renderButton = ({ name, className = 'spectrum-Button', style = {}, onClickHandler, variant = 'primary', disabled = false, quiet = false, icon = null, }) => (react["createElement"]("div", { key: name, className: PickerViewFooter_styles.button, id: `PickerViewFooter_ActionButton${name}` },
            react["createElement"](Button_default.a, { id: `PickerViewFooter_ActionButton_${name}`, className: className, variant: variant, style: style, quiet: quiet, icon: icon, disabled: disabled, onClick: onClickHandler },
                react["createElement"](index_es["c" /* FormattedMessage */], { id: `pickerViewFooter.button.${name}` }))));
        this.setOnLinkOrEmbed = async (newState) => {
            const { onToggleLinkOrEmbed } = this.props;
            onToggleLinkOrEmbed(newState);
        };
        this.setShowingConfirmationDialog = (newState) => {
            const { onDialogStateChange } = this.props;
            this.setState({ showingConfirmationDialog: newState });
            onDialogStateChange(newState);
        };
        this.onToggleLinkOrEmbed = e => {
            const { isLinkMode } = this.props;
            this.setOnLinkOrEmbed(!isLinkMode);
        };
        this.onSelect = e => {
            const { onSelect } = this.props;
            this.setState({ selectedFileFormat: e });
            onSelect(e);
        };
        this.state = {
            showingConfirmationDialog: false,
            selectedFileFormat: '',
        };
    }
    getFileFormats() {
        const { outputFileFormatChoices, spacesOutputFileFormatChoices } = this.props;
        const isProjectsView = this.isProjectsView();
        if (isProjectsView) {
            return (outputFileFormatChoices &&
                spacesOutputFileFormatChoices &&
                lodash_flattendeep_default()([outputFileFormatChoices, spacesOutputFileFormatChoices]));
        }
        return outputFileFormatChoices;
    }
    isProjectsView() {
        const { currentTabId } = this.props;
        return currentTabId === SideNavViews.projects;
    }
    renderSaveAs() {
        const { intl } = this.props;
        const { selectedFileFormat } = this.state;
        const saveAsFileFormats = this.getFileFormats();
        const disabled = saveAsFileFormats.length <= 1;
        const options = saveAsFileFormats.map(fileFormat => ({
            label: fileFormat.label,
            value: fileFormat.extension,
        }));
        const defaultValue = options[0].value;
        const displayValue = disabled || selectedFileFormat === '' ? defaultValue : selectedFileFormat;
        return (react["createElement"]("div", { className: PickerViewFooter_styles.saveAs },
            react["createElement"]("div", { className: PickerViewFooter_styles.saveAsLabel }, intl.formatMessage({ id: 'pickerViewFooter.saveAs.format.label' })),
            react["createElement"](Select_default.a, { className: PickerViewFooter_styles.fileFormats, disabled: disabled, value: displayValue, tabIndex: -1, options: options, onChange: e => this.onSelect(e) })));
    }
    renderConfirmationDialog() {
        const { getConfirmationDialog, onPrimaryButtonClick } = this
            .props;
        // We know this already exists and doesn't return undefined because the CTA doesn't set
        // showingConfirmationDialog to true unless it exists and returns a truthy value
        const config = getConfirmationDialog === null || getConfirmationDialog === void 0 ? void 0 : getConfirmationDialog();
        return (react["createElement"](components_ConfirmationDialog, Object.assign({}, config, { onConfirm: () => {
                this.setShowingConfirmationDialog(false);
                onPrimaryButtonClick === null || onPrimaryButtonClick === void 0 ? void 0 : onPrimaryButtonClick();
            }, onCancel: () => this.setShowingConfirmationDialog(false) })));
    }
    renderFooterContent() {
        const { primaryButtonLabel, cancelButtonLabel, switchToOSPickerLabel, onPrimaryButtonClick, onCancel, onToggleLinkOrEmbed, onSwitchToOSPicker, hideYourComputerButton, primaryButtonDisabled, disableCancelButton, footerMessage, } = this.props;
        const cancelButton = this._renderButton({
            name: cancelButtonLabel,
            onClickHandler: onCancel,
            disabled: !!disableCancelButton,
        });
        const primaryButton = onPrimaryButtonClick
            ? this._renderButton({
                // Work around since variant and disabled styles don't get applied properly.
                className: !primaryButtonDisabled
                    ? 'spectrum-Button--cta'
                    : 'spectrum-Button--cta is-disabled',
                disabled: primaryButtonDisabled,
                name: primaryButtonLabel,
                onClickHandler: () => {
                    const { getConfirmationDialog } = this.props;
                    const confirmationDialogConfig = getConfirmationDialog === null || getConfirmationDialog === void 0 ? void 0 : getConfirmationDialog();
                    // if getConfirmationDialog is undefined or if it returns undefined
                    // for the given context, don't show the confirmation dialog
                    if (!confirmationDialogConfig) {
                        onPrimaryButtonClick();
                        return;
                    }
                    const dontShowAgainKey = getDontShowAgainLocalStorageKey(confirmationDialogConfig.id);
                    const canShowConfirmationDialog = !storage_getStorage(dontShowAgainKey);
                    if (canShowConfirmationDialog) {
                        this.setShowingConfirmationDialog(true);
                    }
                    else {
                        onPrimaryButtonClick();
                    }
                },
                variant: 'cta',
            })
            : undefined;
        return (react["createElement"]("div", { className: PickerViewFooter_styles.root },
            react["createElement"]("div", { className: PickerViewFooter_styles.left },
                !hideYourComputerButton &&
                    onSwitchToOSPicker &&
                    this._renderButton({
                        name: switchToOSPickerLabel,
                        onClickHandler: onSwitchToOSPicker,
                        variant: 'secondary',
                    }),
                onToggleLinkOrEmbed && this.renderLinkCheckbox(),
                !onToggleLinkOrEmbed && footerMessage),
            react["createElement"]("div", { className: PickerViewFooter_styles.right }, Object(ccx_cdo["J" /* isWindows */])() ? (react["createElement"](react["Fragment"], null,
                primaryButton,
                onCancel && cancelButton)) : (react["createElement"](react["Fragment"], null,
                onCancel && cancelButton,
                primaryButton)))));
    }
    renderLinkCheckbox() {
        const { disableLinkCheckbox, hideLinkCheckbox, hideInfoIconAndTooltip, intl } = this.props;
        const { isLinkMode } = this.props;
        const tooltip = isLinkMode ? (react["createElement"](Tooltip_default.a, null, intl.formatMessage({ id: 'pickerViewFooter.tooltip.placeLink' }))) : (react["createElement"](Tooltip_default.a, null, intl.formatMessage({ id: 'pickerViewFooter.tooltip.placeEmbed' })));
        return (!hideLinkCheckbox && (react["createElement"]("div", { className: PickerViewFooter_styles.linkCheckboxWrapper },
            react["createElement"](Checkbox_default.a, { id: "LinkOrEmbed_Checkbox", 
                // This property only appears to exist in @torq-native/react-spectrum
                // @ts-ignore
                onClick: this.onToggleLinkOrEmbed, checked: isLinkMode, label: intl.formatMessage({
                    id: 'pickerViewFooter.checkbox.placeLink',
                }), disabled: disableLinkCheckbox }),
            disableLinkCheckbox && !hideInfoIconAndTooltip && (react["createElement"](OverlayTrigger_default.a, { placement: "top", trigger: ['hover'] },
                react["createElement"]("span", { className: PickerViewFooter_styles.infoIconWrapper },
                    react["createElement"](InfoOutline_default.a, { className: "infoIcon", size: "S" })),
                tooltip)))));
    }
    render() {
        const { isSaveAsOrExportPicker } = this.props;
        const { showingConfirmationDialog } = this.state;
        const saveAsFileFormats = this.getFileFormats();
        return (react["createElement"](react["Fragment"], null,
            showingConfirmationDialog && this.renderConfirmationDialog(),
            isSaveAsOrExportPicker && saveAsFileFormats ? (react["createElement"]("div", { className: PickerViewFooter_styles.footerWrapper },
                this.renderSaveAs(),
                this.renderFooterContent())) : (this.renderFooterContent())));
    }
}
/* harmony default export */ var components_PickerViewFooter = (Object(index_es["g" /* injectIntl */])(PickerViewFooter_PickerViewFooter));


// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/SideNav/index.js
var SideNav = __webpack_require__("W+Dz");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-document-picker/src/components/VerticalTabs.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2020 Adobe Systems Incorporated
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any. The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
var VerticalTabs_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;
};
var __metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};









// @ts-ignore
const VerticalTabs_styles = __webpack_require__("+lVt");
let VerticalTabs_VerticalTabs = class VerticalTabs extends react["Component"] {
    constructor() {
        super(...arguments);
        this.shouldShowSideBar = true;
        this.onSwitch = (e, tab) => {
            e.preventDefault();
            this.props.onSwitchView(e, tab);
        };
        this.checkShouldShowSidebar = async (tabs) => {
            // filter out tabs with `isHidden:true`
            const tabVisibility = await Promise.all(tabs.map(async (tab) => {
                var _a;
                return ({
                    id: tab.id,
                    hidden: await ((_a = tab.isHidden) === null || _a === void 0 ? void 0 : _a.call(tab)),
                });
            }));
            const visibleTabs = tabVisibility.filter(tab => !tab.hidden);
            // update `shouldShowSidebar` observable
            const hasMultipleTabs = visibleTabs.length > 1;
            const hasOnlyProjects = visibleTabs.length === 1 && visibleTabs[0].id === 'projects';
            this.updateShouldShowSidebar(hasMultipleTabs || hasOnlyProjects);
        };
    }
    updateShouldShowSidebar(bool) {
        this.shouldShowSideBar = bool;
    }
    renderWithTooltip(sideNavItem, disabledTooltip) {
        return (react["createElement"](OverlayTrigger_default.a, { placement: "bottom left", trigger: ['hover'], delayShow: DEFAULT_TOOLTIP_DELAY },
            sideNavItem,
            disabledTooltip && (react["createElement"](Tooltip_default.a, null,
                react["createElement"](index_es["c" /* FormattedMessage */], { id: disabledTooltip })))));
    }
    componentDidMount() {
        const { tabs } = this.props;
        // check if multiple tabs are visible, if so show sidebar
        this.checkShouldShowSidebar(tabs);
    }
    renderSideNavItem(tab, group, enabled) {
        const { intl } = this.props;
        return (react["createElement"](SideNav["SideNavItem"], { value: tab.id, icon: tab.icon, disabled: !enabled, label: intl.formatMessage({
                defaultMessage: tab.defaultLabel,
                id: tab.label,
            }), renderLink: tab.renderSideBar, key: `${group}.tabs.${tab.id}`, onClick: (e) => this.onSwitch(e, tab) }));
    }
    renderGroup(group, tabs) {
        const { getRouteEnablement } = this.props;
        const renderedTabs = tabs.map(tab => {
            const { enabled, disabledTooltip } = getRouteEnablement(`/${tab.id}`);
            const sideNavItem = this.renderSideNavItem(tab, group, enabled);
            return enabled ? sideNavItem : this.renderWithTooltip(sideNavItem, disabledTooltip);
        });
        // The 'files' group should have no header, per CCXCD-8744
        // The 'teams' header is provided by TeamsSideBar
        if (group === 'files' || group === 'teams') {
            return renderedTabs;
        }
        return (react["createElement"](SideNav["SideNavHeading"], { label: react["createElement"](index_es["c" /* FormattedMessage */], { id: `pickerView.verticalView.header.${group}` }), variant: "heading3", key: `${group}.header` }, renderedTabs));
    }
    render() {
        const { currentTabId, tabs } = this.props;
        const activeTab = tabs.find(tab => tab.id === currentTabId);
        // group tabs into side nav sections by matching tab.group
        const groups = tabs.reduce((acc, curr) => {
            const group = curr.group || 'files';
            if (!acc[group]) {
                acc[group] = [];
            }
            acc[group].push(curr);
            return acc;
        }, {});
        return (react["createElement"]("div", { className: VerticalTabs_styles.root },
            this.shouldShowSideBar && (react["createElement"]("div", { className: classnames_default()(VerticalTabs_styles.sidenav, 'ReactScrollViewNode') },
                react["createElement"](SideNav["SideNav"], { value: currentTabId }, Object.entries(groups).map(([group, groupTabs]) => this.renderGroup(group, groupTabs))))),
            react["createElement"]("div", { className: VerticalTabs_styles.mainItems }, activeTab && activeTab.renderTab())));
    }
};
VerticalTabs_decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", Boolean)
], VerticalTabs_VerticalTabs.prototype, "shouldShowSideBar", void 0);
VerticalTabs_decorate([
    mobx_module["j" /* action */],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [Boolean]),
    __metadata("design:returntype", void 0)
], VerticalTabs_VerticalTabs.prototype, "updateShouldShowSidebar", null);
VerticalTabs_VerticalTabs = VerticalTabs_decorate([
    index_module["e" /* observer */]
], VerticalTabs_VerticalTabs);
/* harmony default export */ var components_VerticalTabs = (Object(index_es["g" /* injectIntl */])(VerticalTabs_VerticalTabs));


// CONCATENATED MODULE: ./node_modules/@ccx/ccx-document-picker/src/utils/ensurePathStartsWithSlash.ts
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2022 Adobe Inc.
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
/**
 * Cloud Documents:
 * valid folder locations always begin with a `/` otherwise
 * Ps will throw an assert :(, but the docStore removes the
 * leading `/` so we add it back here
 *
 * @param path
 * @returns { string }
 */
function ensurePathStartsWithSlash(path) {
    if (path && path.charAt(0) !== '/') {
        return `/${path}`;
    }
    return path;
}

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-document-picker/src/interfaces/IPickerActionState.ts
var SelectedItemType;
(function (SelectedItemType) {
    SelectedItemType["Team"] = "Team";
    SelectedItemType["Project"] = "Project";
    SelectedItemType["Reference"] = "Reference";
    SelectedItemType["File"] = "File";
    SelectedItemType["Folder"] = "Folder";
})(SelectedItemType || (SelectedItemType = {}));

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-document-picker/src/enums/PickerMode.ts
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2020 Adobe Inc.
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
/**
 * PickerMode is an enum for quickly configuring parts of CDP UI to show/hide various
 * features including tabs, buttons, and behvaioral changes. Modes can be sent through several APIs including through
 * Panel.tsx, Commands.tsx, and WebCommands.tsx, returned from host.getPickerInfo() calls and
 * through a PICKERSTATECHANGED event sent from UXP which provides the new mode.
 * The mode is also sent through executeValidPickerAction call into the host.
 */
var PickerMode;
(function (PickerMode) {
    /**
     * @deprecated
     * Place mode that is for the 2020 Place workflow. This mode will be just like Open but will have different
     * analytics and a different callback.
     */
    PickerMode["place"] = "place";
    /**
     * Import mode is only used in XD and is used to Place Spaces documents into an XD Document
     */
    PickerMode["import"] = "import";
    /**
     * Place mode that is for the 2021 Place workflow. This mode will be just like Open but will have different
     * analytics and a different callback.
     */
    PickerMode["placeLinkOrEmbed"] = "placeLinkOrEmbed";
    /**
     * Link Assets mode that is primarily used with XD. This mode is not considered a "Save As" mode meaning
     * it's primarily used for "Opening Documents" scenarios.
     * Visible Tabs - Cloud Documents, Shared With You, Convert To Sketch Libraries.
     */
    PickerMode["linkAssets"] = "linkAssets";
    /**
     * The primary mode for users when selecting documents to open. When a document is clicked, it's
     * selected and then highlights the "Open" button so the user can opened the selected document.
     * This mode is not considered a "Save As" view mode.
     * Visible Tabs - Recent Tab, Cloud Documents Tab, Shared With you tab.
     */
    PickerMode["open"] = "open";
    /**
     * @deprecated
     * @TODO Remove this mode as it's specific to CDO. CDP does not have an organizer mode.
     */
    PickerMode["organizer"] = "organizer";
    /**
     * A mode specific to XD's scenarios. Shows the "On Your Computer" in XD even when
     * it's disabled for most XD CDP scenarios.
     * Visible Tabs - Cloud Documents, Shared With You.
     */
    PickerMode["relink"] = "relink";
    /**
     * The primary mode for CDP when Saving Documents to the host application. Shows the "Save As" header
     * with an input for the user to type. This mode is unlike "Opening" modes in that the users is supposed
     * to provide a name for the file to be saved. It  shows a "Save" Button and no "On Your Computer"
     * buttons. When an item is clicked, we set the Save As Input field to the name of the item that was clicked.
     */
    PickerMode["saveAs"] = "saveAs";
    /**
     * This is another "Save As" mode that shoud be identical to PickerMode.saveAs. The main difference
     * here is for the host app to know when a user invoked Save As Copy instead of just a plain
     * Save As. When an item is clicked, we set the Save As Input field to the name of the item that was clicked.
     */
    PickerMode["saveAsCopy"] = "saveAsCopy";
    PickerMode["saveToFolder"] = "saveToFolder";
    /**
     * This is another "Save As" mode that shoud be similar (not identical) to PickerMode.saveAs. Header and
     * primaryButton labels will display 'export' specific labelling. Like "Save As", user can update the name of
     * exported asset and choose the export format.
     */
    PickerMode["export"] = "export";
    /**
     * Copy items to Projects or Cloud Documents.
     */
    PickerMode["copy"] = "copy";
    /**
     * Generic move for moving items to new location.
     *   - Move spaces from team to team.
     *   - Move content from space to space. This variation is currently mode `moveToProject`.
     *     TODO: deprecate `moveToProject` and make it a configuration for `move`.
     *     TODO: add support for moving from personal storage to personal storage or space
     */
    PickerMode["move"] = "move";
    /**
     * Move items to Projects.
     */
    PickerMode["moveToProject"] = "moveToProject";
    /**
     * Copy items to Projects. (Subset of "copy"; only the Projects tab is shown.)
     */
    PickerMode["copyToProject"] = "copyToProject";
    PickerMode["reference"] = "reference";
    /**
     * Select project is usable to pick a Space
     */
    PickerMode["selectProject"] = "selectProject";
})(PickerMode || (PickerMode = {}));
/* harmony default export */ var enums_PickerMode = (PickerMode);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Popover/index.js
var Popover = __webpack_require__("pyUw");
var Popover_default = /*#__PURE__*/__webpack_require__.n(Popover);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Link/index.js
var Link = __webpack_require__("v7z/");
var Link_default = /*#__PURE__*/__webpack_require__.n(Link);

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/CloseCircle/index.js
var CloseCircle = __webpack_require__("DYGA");
var CloseCircle_default = /*#__PURE__*/__webpack_require__.n(CloseCircle);

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/CheckmarkCircle/index.js
var CheckmarkCircle = __webpack_require__("21yx");
var CheckmarkCircle_default = /*#__PURE__*/__webpack_require__.n(CheckmarkCircle);

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/DeviceLaptop/index.js
var DeviceLaptop = __webpack_require__("huwD");
var DeviceLaptop_default = /*#__PURE__*/__webpack_require__.n(DeviceLaptop);

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/Cloud/index.js
var Cloud = __webpack_require__("CKzN");
var Cloud_default = /*#__PURE__*/__webpack_require__.n(Cloud);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Table/index.js
var Table = __webpack_require__("4FB6");

// EXTERNAL MODULE: ./node_modules/@intl/adobe-locales/dist/adobe-locales.js
var adobe_locales = __webpack_require__("zSDY");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-document-picker/src/components/OnboardingView.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe Systems Incorporated
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any. The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
var OnboardingView_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;
};
var OnboardingView_metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};

















// @ts-ignore
const OnboardingView_styles = __webpack_require__("c56M");
const DEFAULT_BENEFITS = [
    { isCloudBenefit: true, isLocalBenefit: true, name: 'offline' },
    { isCloudBenefit: true, isLocalBenefit: false, name: 'syncing' },
    { isCloudBenefit: true, isLocalBenefit: false, name: 'autosave' },
    { isCloudBenefit: true, isLocalBenefit: false, name: 'versionHistory' },
    { isCloudBenefit: true, isLocalBenefit: false, name: 'inviteToEdit' },
];
let OnboardingView_OnboardingView = class OnboardingView extends react["Component"] {
    constructor(props) {
        super(props);
        // eslint-disable-next-line @typescript-eslint/no-magic-numbers, no-magic-numbers, react/destructuring-assignment
        this.locale = this.props.intl.locale.substr(0, 2);
        this._renderButton = ({ name, onClickHandler, variant, quiet = false, disabled = false, }) => {
            const { intl } = this.props;
            return (react["createElement"]("div", { key: name, id: `OnboardingView_ActionButton_${name}` },
                react["createElement"](Button_default.a, { variant: variant, 
                    // Spectrum UXP buttons have a default padding left/right of 14px which is too large.
                    quiet: quiet, disabled: disabled, onClick: onClickHandler, label: intl.formatMessage({
                        defaultMessage: name,
                        id: `onboardingCdp.button.${name}`,
                    }), uxpUseNative: false })));
        };
        const { cdoMetrics } = this.props;
        if (cdoMetrics) {
            cdoMetrics.fireEvent({
                event: {
                    subcategory: 'Onboarding',
                    subtype: 'page',
                    type: 'render',
                    workflow: 'Main',
                },
            }, false);
        }
        this.state = {};
    }
    renderHeader() {
        const href = Object(adobe_locales["getLocalizedURL"])('https://helpx.adobe.com/creative-cloud/help/about-cloud-documents.html', this.locale);
        return (react["createElement"]("div", { className: OnboardingView_styles.header },
            react["createElement"](index_es["c" /* FormattedMessage */], { id: "onboardingCdp.title" }),
            react["createElement"](OverlayTrigger_default.a, { trigger: "hover", offset: -10, placement: "bottom" },
                react["createElement"]("span", { className: OnboardingView_styles.infoIconWrapper },
                    react["createElement"](InfoOutline_default.a, { className: "infoIcon", size: "S" })),
                react["createElement"](Popover_default.a, { placement: "bottom", className: OnboardingView_styles.infoPopover },
                    react["createElement"](index_es["c" /* FormattedMessage */], { id: "onboardingCdp.tooltip" }),
                    react["createElement"](Link_default.a, { className: OnboardingView_styles.infoPopoverLink, href: href },
                        react["createElement"](index_es["c" /* FormattedMessage */], { id: "onboardingCdp.tooltip.link" }))))));
    }
    renderTable() {
        const { hideOnboardingInviteToEditRow } = this.props;
        const includedBenefits = DEFAULT_BENEFITS.filter(benefit => !(benefit.name === 'inviteToEdit' && hideOnboardingInviteToEditRow));
        return (react["createElement"]("div", { className: OnboardingView_styles.table },
            react["createElement"](Table["Table"], { divider: true },
                react["createElement"](Table["TBody"], { className: OnboardingView_styles.tableHeader },
                    react["createElement"](Table["TR"], { className: OnboardingView_styles.tableData },
                        react["createElement"](Table["TD"], { divider: true }),
                        react["createElement"](Table["TD"], { divider: true },
                            react["createElement"]("div", { className: OnboardingView_styles.tableHeaderIcon },
                                react["createElement"](DeviceLaptop_default.a, { className: OnboardingView_styles.onYourComputer, size: "M" })),
                            react["createElement"](index_es["c" /* FormattedMessage */], { className: OnboardingView_styles.tableHeading, id: "onboardingCdp.table.header.saveToLocal" })),
                        react["createElement"](Table["TD"], null,
                            react["createElement"]("div", { className: OnboardingView_styles.tableHeaderIcon },
                                react["createElement"](Cloud_default.a, { className: OnboardingView_styles.saveToCloud, size: "M" })),
                            react["createElement"](index_es["c" /* FormattedMessage */], { className: OnboardingView_styles.tableHeading, id: "onboardingCdp.table.header.saveToCloud" }))),
                    includedBenefits.map(benefit => (react["createElement"](Table["TR"], { key: benefit.name },
                        react["createElement"](Table["TD"], { divider: true, className: OnboardingView_styles.titles },
                            react["createElement"](index_es["c" /* FormattedMessage */], { id: `onboardingCdp.feature.${benefit.name}` })),
                        react["createElement"](Table["TD"], { divider: true },
                            react["createElement"]("div", { className: OnboardingView_styles.onYourComputerIcons }, benefit.isLocalBenefit ? (react["createElement"](CheckmarkCircle_default.a, { className: OnboardingView_styles.checkmark, size: "S" })) : (react["createElement"](CloseCircle_default.a, { size: "S" })))),
                        react["createElement"](Table["TD"], { divider: true },
                            react["createElement"]("div", { className: OnboardingView_styles.saveCloudIcons }, benefit.isCloudBenefit ? (react["createElement"](CheckmarkCircle_default.a, { className: OnboardingView_styles.checkmark, size: "S" })) : (react["createElement"](CloseCircle_default.a, { size: "S" })))))))))));
    }
    renderFooter() {
        const { dontShowCheckValue, onToggleDismissal, onSwitchToCDOPicker, onSwitchToOSPicker, intl, } = this.props;
        return (react["createElement"]("div", { className: OnboardingView_styles.footer },
            react["createElement"]("div", { id: "OnboardingView_CheckboxButton" },
                react["createElement"](Checkbox_default.a
                // This property only appears to exist in @torq-native/react-spectrum
                // @ts-ignore
                , { 
                    // This property only appears to exist in @torq-native/react-spectrum
                    // @ts-ignore
                    onClick: onToggleDismissal, label: intl.formatMessage({
                        id: 'onboardingCdp.checkbox.doNotShowAgain',
                    }), checked: dontShowCheckValue })),
            react["createElement"]("div", { className: OnboardingView_styles.buttons, id: "OnboardingView_SaveButtons" },
                this._renderButton({
                    name: 'saveToLocal',
                    onClickHandler: onSwitchToOSPicker,
                    variant: 'secondary',
                }),
                this._renderButton({
                    name: 'saveToCloud',
                    onClickHandler: onSwitchToCDOPicker,
                    variant: 'cta',
                }))));
    }
    render() {
        return (react["createElement"]("div", { className: OnboardingView_styles.root },
            react["createElement"]("div", { className: OnboardingView_styles.main },
                this.renderHeader(),
                this.renderTable(),
                this.renderFooter())));
    }
};
OnboardingView_OnboardingView = OnboardingView_decorate([
    Object(index_module["d" /* inject */])('metrics'),
    index_module["e" /* observer */],
    OnboardingView_metadata("design:paramtypes", [Object])
], OnboardingView_OnboardingView);
/* harmony default export */ var components_OnboardingView = (Object(ccx_ingest["ccxIngest"])(INGEST_PROJECT_VALUE)(Object(index_es["g" /* injectIntl */])(OnboardingView_OnboardingView)));


// CONCATENATED MODULE: ./node_modules/@ccx/ccx-document-picker/src/utils/assetRefs.ts
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2022 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
/**
 * Parse a JSON-string AssetRef into an AssetRef object.
 */
function parseAssetRef(assetRefString) {
    try {
        return JSON.parse(assetRefString);
    }
    catch (e) {
        console.warn(`Unable to parse assetRef: ${assetRefString}`);
        throw e;
    }
}
/**
 * Check if a given string looks like an AssetRef. NOTE: This does not check for
 * valid properties; only that it looks like a JSON-serialized string.
 */
function isAssetRef(pathOrAssetRef) {
    return Boolean(pathOrAssetRef && pathOrAssetRef.charAt(0) === '{');
}

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-document-picker/src/components/ProjectsWrapper.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2020 Adobe Inc.
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/




// @ts-ignore
const ProjectsWrapper_styles = __webpack_require__("NQBf");
var CollectionStatus;
(function (CollectionStatus) {
    CollectionStatus["Pending"] = "pending";
    CollectionStatus["Loading"] = "loading";
    CollectionStatus["NoSpaces"] = "noSpaces";
    CollectionStatus["HasSpaces"] = "hasSpaces";
    CollectionStatus["Offline"] = "offline";
    CollectionStatus["Error"] = "error";
})(CollectionStatus || (CollectionStatus = {}));
class ProjectsWrapper_ProjectsWrapper extends react["Component"] {
    /**
     * Parse the "folder" prop provided to UAP into a route that Projects understands.
     * We only understand assetRefs, so we should ignore non-assetRef paths.
     */
    static folderRoute(pathOrAssetRef) {
        // If this doesn't look like an assetRef, ignore it. It might be a path string.
        if (!isAssetRef(pathOrAssetRef)) {
            return undefined;
        }
        try {
            const assetRef = parseAssetRef(pathOrAssetRef);
            if (!assetRef.cloud_id) {
                console.warn(`Expected assetRef to have a cloud_id: ${pathOrAssetRef}`);
                return undefined;
            }
            return new src_main["SpaceRoute"](undefined, {
                folderId: assetRef.cloud_id,
            });
        }
        catch (e) {
            console.warn(`Unable to parse assetRef: ${pathOrAssetRef}`);
            return undefined;
        }
    }
    componentWillUnmount() {
        const { browseSession } = this.props;
        browseSession.navigate();
    }
    render() {
        return (react_default.a.createElement("div", { className: ProjectsWrapper_styles.projectsWrapper },
            react_default.a.createElement(src_main["default"], Object.assign({}, this.props))));
    }
}
ProjectsWrapper_ProjectsWrapper.isHidden = async () => {
    return new Promise(resolve => {
        const handleError = () => resolve(false);
        const handleSuccess = () => resolve(src_main["sharedStore"].status === CollectionStatus.NoSpaces);
        Object(mobx_module["I" /* when */])(() => src_main["sharedStore"].status === CollectionStatus.NoSpaces ||
            src_main["sharedStore"].status === CollectionStatus.HasSpaces, () => handleSuccess(), { timeout: 2000, onError: handleError });
    });
};

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-document-picker/src/utils/utils.ts
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
/**
 * Simple utility container.
 */
class Utils {
    /**
     * Function to return the value of a requested query param.
     *
     * @param {String} name      containing the name of the query param
     * @returns {String} value of the query param
     */
    static getParameterByName(name) {
        const url = window.location.href;
        // eslint-disable-next-line no-useless-escape
        const curName = name.replace(/[\[\]]/g, '\\$&');
        const regex = new RegExp(`[?&]${curName}(=([^&#]*)|&|#|$)`);
        const results = regex.exec(url);
        const parameterIndex = 2;
        if (!results) {
            return null;
        }
        return results[parameterIndex]
            ? decodeURIComponent(results[parameterIndex].replace(/\+/g, ' '))
            : '';
    }
    /**
     * Determine if we're currently running on UXP
     * @returns {boolean}
     */
    static usingUXP() {
        return Boolean(window.navigator.userAgent.indexOf('UXP') > -1); // eslint-disable-line no-magic-numbers
    }
}
/* harmony default export */ var utils = (Utils);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-document-picker/src/components/PickerView.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
var PickerView_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;
};
var PickerView_metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
























var ProjectsViewType;
(function (ProjectsViewType) {
    ProjectsViewType["Projects"] = "projects";
    ProjectsViewType["Libraries"] = "libraries";
})(ProjectsViewType || (ProjectsViewType = {}));
// @ts-ignore
const PickerView_styles = __webpack_require__("5HZb");
/**
 * Actions sent to host app via executePickerAction
 */
var PickerViewAction;
(function (PickerViewAction) {
    // Place mode that is for the 2020 Place workflow (@deprecated).
    PickerViewAction["place"] = "place";
    // Import mode is only used in XD and is used to Place Spaces documents into an XD Document
    PickerViewAction["import"] = "import";
    // Place mode that is for the 2021 Place workflow. For link or embed of documents.
    PickerViewAction["placeLinkOrEmbed"] = "placeLinkOrEmbed";
    // Save a file with the `action`, `name` and `folder` properties in the actionState.
    PickerViewAction["saveAs"] = "save";
    // Save a copy of a file with the `action`, `name` and `folder` properties in the actionState.
    PickerViewAction["saveAsCopy"] = "saveAsCopy";
    // Save a copy of a file with the `action`, `name` and `folder` properties in the actionState.
    PickerViewAction["saveToFolder"] = "choose";
    // Export a copy of a file with the `action`, `name` and `folder` properties in the actionState.
    PickerViewAction["export"] = "export";
    // cancel without opening/saving or other actions
    PickerViewAction["cancel"] = "cancel";
    // switch to local file picker
    PickerViewAction["switchToOSPicker"] = "switchToOSPicker";
    // switch to sketch libraries picker
    PickerViewAction["switchToSketchLibrariesImport"] = "switchToSketchLibrariesImport";
    // Copy a file to a CC Project.
    PickerViewAction["copyToProject"] = "copyToProject";
    // Select project is usable to pick a space
    PickerViewAction["selectProject"] = "selectProject";
    // Copy item(s) to the selected location.
    PickerViewAction["copy"] = "copy";
    // Move item(s) to new location. Can move to space, team,...
    PickerViewAction["move"] = "move";
    // Move item(s) to the selected project.
    PickerViewAction["moveToProject"] = "moveToProject";
    // Add a reference to a CC Project.
    PickerViewAction["addReference"] = "add";
})(PickerViewAction || (PickerViewAction = {}));
var SideNavViews;
(function (SideNavViews) {
    SideNavViews["cloudDocs"] = "cloud";
    SideNavViews["recents"] = "recent";
    SideNavViews["projects"] = "projects";
    SideNavViews["sharedWithYou"] = "shared";
    SideNavViews["references"] = "references";
    SideNavViews["convertToSketch"] = "sketch";
    SideNavViews["deleted"] = "deleted";
})(SideNavViews || (SideNavViews = {}));
var OnboardingAction;
(function (OnboardingAction) {
    OnboardingAction["DontShow"] = "DontShow";
    OnboardingAction["CloudDocs"] = "CloudDocs";
    OnboardingAction["LocalDocs"] = "LocalDocs";
})(OnboardingAction || (OnboardingAction = {}));
/**
 * Simple view for document picker
 */
let PickerView_PickerView = class PickerView extends react_default.a.Component {
    constructor(props, context) {
        super(props, context);
        this.focusEl = react_default.a.createRef();
        // this is here to have less code out of order for the linter
        // eslint-disable-next-line react/sort-comp
        this.onBeforeItemClickedForTabs = (element) => this.onBeforeItemClicked(element);
        // this is here to have less code out of order for the linter
        // eslint-disable-next-line react/sort-comp
        this.onCloudDocumentsPathChangedForTabs = (path) => this.onCloudDocumentsPathChanged(path);
        this.onSelectionChange = (selectionStore, allActions, actionHandler) => {
            const assetSelectionStore = selectionStore;
            const { mode, enableRenditionUrl } = this.props;
            if (mode === enums_PickerMode.placeLinkOrEmbed) {
                if (Object(ccx_cdo["H" /* hasOnlyNonFolders */])(selectionStore) && assetSelectionStore.size === 1) {
                    const element = assetSelectionStore.selectedElements[0];
                    this.onItemsSelected([
                        {
                            data: {
                                id: element.id,
                                urn: element.urn,
                                cloudID: element.cloudID,
                                name: element.path,
                            },
                            type: SelectedItemType.File,
                            docInfoArray: [Object(ccx_cdo["G" /* getLaunchDocInfo */])(element, enableRenditionUrl)],
                        },
                    ]);
                }
                else {
                    if (assetSelectionStore.size > 1) {
                        // we only want one thing selected, so
                        // set selection to only the pivotElement.
                        //
                        // pivotElement is private, so access it via [ ]. TODO: use
                        // ISelectionBehavior instead via DocPicker.getSelectionBehavior
                        const pivotElement = assetSelectionStore['pivotElement'];
                        assetSelectionStore.setSelection([pivotElement]);
                    }
                    // pretend nothing is selected
                    this.onItemsSelected([]);
                }
            }
        };
        this.onItemsSelected = (items) => {
            const { mode } = this.props;
            const { saveAsName } = this.state;
            // placeLinkOrEmbed currently only wants a single item selected.
            // other modes can handle multiple items selected.
            if (mode === enums_PickerMode.placeLinkOrEmbed) {
                if (items.length !== 1) {
                    this.setState({
                        selectedItems: items,
                        isLink: false,
                        disableLinkCheckbox: true,
                        primaryButtonDisabled: true,
                        lastSelectedWasNotBothLinkableAndEmbeddable: true,
                    });
                }
                else {
                    const asset = items[0];
                    let { isLink } = this.state;
                    const { lastSelectedWasNotBothLinkableAndEmbeddable } = this.state;
                    const canLink = this.linkIsSupported(asset);
                    const canEmbed = this.embedIsSupported(asset);
                    if (lastSelectedWasNotBothLinkableAndEmbeddable) {
                        // if user wasn't last to touch the checkbox, set checkbox to if linkable
                        isLink = canLink;
                    }
                    else {
                        // if both are supported, preserve the current state
                        isLink = canLink && canEmbed ? isLink : canLink;
                    }
                    this.setState({
                        selectedItems: items,
                        isLink,
                        // if either mode (or both) is unavailable, disable the checkbox
                        disableLinkCheckbox: !canLink || !canEmbed,
                        // if neither mode is available, disable the CTA
                        primaryButtonDisabled: !canLink && !canEmbed,
                        lastSelectedWasNotBothLinkableAndEmbeddable: !(canLink && canEmbed),
                    });
                }
                return;
            }
            let primaryButtonDisabled = false;
            if (this.requiresSelectedItems) {
                primaryButtonDisabled = items.length === 0;
            }
            // Some tabs require a selection + a non-empty name for saveAs.
            // Validation of saveAsName occurs when the user clicks the CTA.
            if (this._isSaveAsOrExportPicker()) {
                primaryButtonDisabled = primaryButtonDisabled || (saveAsName === null || saveAsName === void 0 ? void 0 : saveAsName.length) === 0;
            }
            this.setState({
                selectedItems: items,
                primaryButtonDisabled,
            });
        };
        this.cloudDocumentTab = {
            renderTab: () => {
                const { mode } = this.props;
                return (react_default.a.createElement(ccx_cdo["f" /* CloudDocuments */], { onBeforeItemClicked: this.onBeforeItemClickedForTabs, onCurrentPathChanged: this.onCloudDocumentsPathChangedForTabs, onDialogStateChange: this.props.onDialogStateChange, onSelectionChange: this.onSelectionChange, hideActionMenu: true, hideActionToolbar: mode === enums_PickerMode.placeLinkOrEmbed, allowClickEventOnDisabled: this.isClickEventOnDisabled(mode) }));
            },
            defaultLabel: 'Your files',
            id: SideNavViews.cloudDocs,
            ingestSubcategory: 'Cloud Documents',
            label: 'pickerView.cloud_docs',
            icon: react_default.a.createElement(DocumentOutline_default.a, null),
            routing: {
                roots: CLOUD_DOCUMENTS_ROUTE_ROOTS,
                // TODO: combine defaultRoute and defaultDetail somehow.
                // maybe by making navigate handle a route instead of
                // root and detail.
                defaultRoute: `/${CLOUD_DOCUMENTS_ROUTE_ROOT}/${ROOT_FOLDER_PATH}`,
                defaultDetail: ROOT_FOLDER_PATH,
                navigate: (root, detail) => {
                    /**
                     * SAM-only:
                     *  /cloud-documents/<folderId>
                     * Path fallback:
                     *  /cloud-documents/cloud-content/<folderName>/<subfolderName>/...
                     */
                    if (!detail) {
                        this.fallbackCDORoute();
                        return;
                    }
                    if (detail.startsWith(ROOT_FOLDER_PATH)) {
                        // route using CDO path
                        // /cloud-content/...
                        this.docStore.setCurrentPath(detail);
                    }
                    else {
                        // route using folder urn
                        this.docStore.setCurrentPathByAssetId(detail);
                    }
                },
            },
        };
        this.convertToSketchLibrariesTab = {
            defaultLabel: 'Convert Sketch Library...',
            id: SideNavViews.convertToSketch,
            ingestSubcategory: 'Convert Sketch Libary',
            label: 'pickerView.sketch_library',
            onTabSelected: () => this.onSwitchToSketchLibrariesImport(),
            icon: react_default.a.createElement(Import_default.a, null),
        };
        this.recentTab = {
            renderTab: () => (react_default.a.createElement(ccx_cdo["t" /* Recent */], { hideActionMenu: true, onBeforeItemClicked: this.onBeforeItemClickedForTabs, onSelectionChange: this.onSelectionChange })),
            defaultLabel: 'Recent',
            id: SideNavViews.recents,
            ingestSubcategory: 'Recent',
            label: 'pickerView.recent',
            icon: react_default.a.createElement(OpenRecent_default.a, null),
        };
        this.sharedWithYouTab = {
            renderTab: () => {
                const { mode } = this.props;
                return (react_default.a.createElement(ccx_cdo["v" /* SharedWithYou */], { hideActionMenu: true, onBeforeItemClicked: this.onBeforeItemClickedForTabs, onSelectionChange: this.onSelectionChange, hideActionToolbar: mode === enums_PickerMode.placeLinkOrEmbed }));
            },
            defaultLabel: 'Shared with you',
            id: SideNavViews.sharedWithYou,
            ingestSubcategory: 'Shared with You',
            label: 'pickerView.shared_with_you',
            icon: react_default.a.createElement(UserGroup_default.a, null),
        };
        this.deletedTab = {
            renderTab: () => react_default.a.createElement(ccx_cdo["k" /* Deleted */], { hideActionMenu: true }),
            defaultLabel: 'Deleted',
            id: SideNavViews.deleted,
            ingestSubcategory: 'DeletedCDP',
            label: 'header.Deleted',
            icon: react_default.a.createElement(DeleteOutline_default.a, null),
        };
        this.projectsTab = {
            defaultLabel: 'Projects',
            id: SideNavViews.projects,
            ingestSubcategory: 'Projects',
            label: 'pickerView.projects',
            group: 'teams',
            isHidden: ProjectsWrapper_ProjectsWrapper.isHidden,
            renderTab: () => (react_default.a.createElement(ProjectsWrapper_ProjectsWrapper, { browseSession: this.spacesBrowseSession, openDocuments: this.props.openDocuments, viewType: ProjectsViewType.Projects })),
            renderSideBar: () => react_default.a.createElement(src_main["TeamsSidebar"], { browseSession: this.spacesBrowseSession }),
            routing: {
                roots: SPACES_ROUTE_ROOTS,
                navigate: (root, detail) => {
                    /**
                     * /teams/<teamId>
                     * /projects/<spaceId>
                     * /projects/folder/<folderId>
                     */
                    if (!detail) {
                        this.fallbackProjectsRoute();
                        return;
                    }
                    const route = src_main["Route"].createFromString(`/${root}/${detail}`);
                    this.navigateToProjectsRoute(route);
                },
            },
        };
        this.referencesTab = {
            defaultLabel: 'Libraries',
            id: SideNavViews.references,
            ingestSubcategory: 'Projects',
            label: 'pickerView.addLibraries',
            icon: react_default.a.createElement(CCLibrary_default.a, null),
            renderTab: () => (react_default.a.createElement(ProjectsWrapper_ProjectsWrapper, { browseSession: this.spacesBrowseSession, viewType: ProjectsViewType.Libraries })),
        };
        this.executeValidAction = async (action) => {
            const { view: viewType } = this.cdoStore;
            const { currentTabId, selectedFileFormat } = this.state;
            const isSpacesTab = currentTabId === SideNavViews.projects || currentTabId === SideNavViews.references;
            if (action === PickerViewAction.saveAs ||
                action === PickerViewAction.saveAsCopy ||
                action === PickerViewAction.saveToFolder) {
                const category = isSpacesTab ? 'Spaces' : 'Cloud Documents';
                const analyticsEvent = {
                    event: {
                        subcategory: 'Save as Cloud Document',
                        subtype: 'save-as',
                        type: 'click',
                        workflow: 'Document-Operation',
                    },
                    content: {
                        category,
                        extension: selectedFileFormat,
                    },
                    ui: {
                        view_type: viewType,
                    },
                };
                this.fireIngestEvent(analyticsEvent, true);
            }
            let folderInfo;
            if (isSpacesTab) {
                folderInfo = this.getSpacesInfo();
            }
            else {
                folderInfo = await this.getFolderInfo();
            }
            if (this.isExternalCancel) {
                // an external cancel might come from the browser keyboard handler
                // and remove the UAP from the DOM such that setState, which
                // queues a request to change the state, might never run and
                // call the callback.  So just call the callbacks
                const { selectedItems, saveAsName, dontShowCheckboxValue, currentRoute } = this.state;
                const cancelState = {
                    selectedAction: action,
                    selectedItems,
                    // eslint-disable-next-line no-shadow
                    selectedFileFormat,
                    saveAsName,
                    dontShowCheckboxValue,
                    currentRoute,
                };
                this.callOnExecutePickerAction(folderInfo, cancelState);
            }
            else {
                this.setState({ selectedAction: action, errorMessage: '' }, () => this.callOnExecutePickerAction(folderInfo, this.state));
            }
        };
        this.handleSaveAsOrExportInputChange = newName => {
            const { currentTabId, selectedItems } = this.state;
            const primaryButtonDisabled = newName.length === 0 ||
                (currentTabId === SideNavViews.projects && selectedItems.length === 0);
            this.setState({
                saveAsName: newName,
                primaryButtonDisabled,
            });
        };
        /**
         * Handle action of onboarding.
         *
         * @param mode        string indicating mode of op
         */
        this._handleOnboardingAction = (mode) => {
            const { dontShowCheckboxValue } = this.state;
            let subtype = '';
            let value = dontShowCheckboxValue;
            switch (mode) {
                case OnboardingAction.CloudDocs:
                    this.setState({
                        showOnboarding: false,
                    });
                    subtype = 'save-cloud';
                    break;
                case OnboardingAction.LocalDocs:
                    this.callbacks.onExecutePickerAction({
                        action: 'switchToOSPicker',
                        dismissInterstitial: dontShowCheckboxValue ? 'true' : 'false',
                        mode: 'saveAs',
                    });
                    this.setState({
                        showOnboarding: false,
                    });
                    subtype = 'save-local';
                    break;
                case OnboardingAction.DontShow:
                    // toggle based on checkbox
                    const toggled = !dontShowCheckboxValue; // eslint-disable-line
                    this.setState({
                        dontShowCheckboxValue: toggled,
                    });
                    subtype = 'dont-show';
                    value = toggled;
                    break;
                default:
                    break;
            }
            const analyticsEvent = {
                event: {
                    subcategory: 'Onboarding',
                    type: 'click',
                    workflow: 'Main',
                    subtype,
                    value,
                },
            };
            this.fireIngestEvent({ analyticsEvent }, false);
        };
        this.onAddReference = () => {
            this.executeValidAction(PickerViewAction.addReference);
        };
        this.onSaveAsOrExport = () => {
            const { saveAsName, selectedItems, currentTabId } = this.state;
            const { mode } = this.props;
            // This method checks for all cases but duplicate.
            const status = Object(ccx_cdo["E" /* fileNameValidator */])(saveAsName);
            if (currentTabId === SideNavViews.projects) {
                // Because we use `requiresSelectedItems` to disable the Save button
                // when no items are selected, this error should not occur unless there's
                // an error in logic. Users should not encounter this, so there's no error UI.
                if (selectedItems.length !== 1) {
                    throw new Error(`Expected 1 selected item; got ${selectedItems.length}.`);
                }
            }
            if (status === ccx_cdo["C" /* ValidationStatus */].valid) {
                const actionToExecute = mode === enums_PickerMode.export ? PickerViewAction.export : PickerViewAction.saveAs;
                this.executeValidAction(actionToExecute);
            }
            else {
                this.setState({ errorMessage: status });
            }
        };
        this.onSaveToFolder = () => {
            this.executeValidAction(PickerViewAction.saveToFolder);
        };
        this.onCancel = () => {
            this.executeValidAction(PickerViewAction.cancel);
        };
        this.onExternalCancel = () => {
            this.isExternalCancel = !utils.usingUXP();
            this.onCancel();
        };
        this.onSelectProject = () => {
            this.executeValidAction(PickerViewAction.selectProject);
        };
        this.onCopyToProject = () => {
            this.executeValidAction(PickerViewAction.copyToProject);
        };
        this.onPlaceLinkOrEmbed = () => {
            var _a;
            const { selectedItems, isLink } = this.state;
            const subtype = isLink ? 'placeLink' : 'placeEmbed';
            const elementsData = selectedItems[0].docInfoArray;
            this.fireIngestEvent({
                event: {
                    subcategory: this.selectedTab.ingestSubcategory,
                    type: 'click',
                    subtype,
                    workflow: 'Place',
                },
                content: {
                    mimetype: (_a = elementsData === null || elementsData === void 0 ? void 0 : elementsData[0]) === null || _a === void 0 ? void 0 : _a.mimetype,
                },
            }, false);
            // execute the action callback when 'Place' button submitted
            if (this.callbacks.onPlaceLinkOrEmbedDocuments) {
                this.callbacks.onPlaceLinkOrEmbedDocuments(elementsData, Boolean(isLink));
            }
        };
        this.onImportPlaceDocuments = () => {
            const { selectedItems } = this.state;
            const docInfoArray = selectedItems.map(item => item.docInfoArray[0]);
            this.callbacks.onImportPlaceDocuments(docInfoArray);
        };
        this.onCopy = () => {
            this.executeValidAction(PickerViewAction.copy);
        };
        this.onMove = () => {
            this.executeValidAction(PickerViewAction.move);
        };
        this.onMoveToProject = () => {
            this.executeValidAction(PickerViewAction.moveToProject);
        };
        this.onToggleLinkOrEmbed = isLink => {
            this.setState({ isLink });
        };
        this.onSelect = selectedValue => {
            this.setState({ selectedFileFormat: selectedValue });
        };
        this.onSwitchToOSPicker = () => {
            this.fireIngestEvent({
                event: {
                    subtype: 'Your Computer',
                    type: 'click',
                    workflow: 'Navigation',
                },
            }, true);
            this.executeValidAction(PickerViewAction.switchToOSPicker);
        };
        this.onSwitchToSketchLibrariesImport = () => {
            this.fireIngestEvent({
                event: {
                    subtype: 'Convert Sketch Libary',
                    type: 'click',
                    workflow: 'Navigation',
                },
            }, true);
            this.executeValidAction(PickerViewAction.switchToSketchLibrariesImport);
        };
        this.onBeforeItemClicked = (element) => {
            const { mode } = this.props;
            const { title } = element;
            switch (mode) {
                case enums_PickerMode.open:
                case enums_PickerMode.linkAssets:
                case enums_PickerMode.relink:
                    // TODO: wait for multi-file open/relink support
                    // Jira: https://jira.corp.adobe.com/browse/CCXCD-2932
                    // launchItems will handle sending the document to host app.
                    return true;
                case enums_PickerMode.saveAs:
                case enums_PickerMode.saveAsCopy:
                case enums_PickerMode.export:
                    // Update the input to the selected document
                    this.setState({
                        saveAsName: title,
                        primaryButtonDisabled: title.length === 0,
                    });
                    break;
                case enums_PickerMode.import:
                    this.fireIngestEvent({
                        event: {
                            subcategory: this.selectedTab.ingestSubcategory,
                            type: 'click',
                            subtype: 'import',
                            workflow: 'Import',
                        },
                        content: {
                            mimetype: element.type,
                            extension: element.fileExtension,
                        },
                    }, false);
                    this.setState({
                        selectedItems: [
                            {
                                data: {
                                    id: element.id,
                                    urn: element.urn,
                                    cloudID: element.cloudID,
                                    name: element.path,
                                },
                                type: SelectedItemType.File,
                            },
                        ],
                    });
                    // now execute the action callback, launchItems handles sending the document to host app.
                    if (this.callbacks.onImportPlaceDocuments) {
                        Object(ccx_cdo["K" /* launchItems */])([element], this.callbacks.onImportPlaceDocuments);
                    }
                    break;
                case enums_PickerMode.place:
                    this.fireIngestEvent({
                        event: {
                            subcategory: this.selectedTab.ingestSubcategory,
                            type: 'click',
                            subtype: 'place',
                            workflow: 'Place',
                        },
                        content: {
                            mimetype: element.type,
                            extension: element.fileExtension,
                        },
                    }, false);
                    this.setState({
                        selectedItems: [
                            {
                                data: {
                                    id: element.id,
                                    urn: element.urn,
                                    cloudID: element.cloudID,
                                    name: element.path,
                                },
                                type: SelectedItemType.File,
                            },
                        ],
                    });
                    // now execute the action callback
                    if (this.callbacks.onPlaceDocuments) {
                        Object(ccx_cdo["K" /* launchItems */])([element], this.callbacks.onPlaceDocuments);
                    }
                    break;
                case enums_PickerMode.placeLinkOrEmbed:
                    this.setState({ saveAsName: title });
                    break;
                default:
                    break;
            }
            // Cancel default item click behavior (open)
            return false;
        };
        this.onCloudDocumentsPathChanged = (path) => {
            this.onSwitchView(this.cloudDocumentTab, `/${CLOUD_DOCUMENTS_ROUTE_ROOT}${ensurePathStartsWithSlash(path)}`);
        };
        // A mediator to ignore clicks on Projects
        this.onVerticalTabsSwitchView = (event, tab) => {
            var _a, _b, _c, _d, _e, _f;
            // Ignore clicks on Projects tab, they are handled in `spacesWillNavigate`
            if (tab !== this.projectsTab) {
                this.onSwitchView(tab, (_a = tab.routing) === null || _a === void 0 ? void 0 : _a.defaultRoute);
                (_c = (_b = tab.routing) === null || _b === void 0 ? void 0 : _b.navigate) === null || _c === void 0 ? void 0 : _c.call(_b, (_e = (_d = tab.routing) === null || _d === void 0 ? void 0 : _d.roots) === null || _e === void 0 ? void 0 : _e[0], (_f = tab.routing) === null || _f === void 0 ? void 0 : _f.defaultDetail);
            }
            this.fireIngestEvent({
                event: {
                    subtype: tab.ingestSubcategory,
                    type: 'click',
                    workflow: 'Navigation',
                },
            }, false);
        };
        this.onSwitchView = (tab, route) => {
            var _a, _b, _c;
            const { id, onTabSelected, renderTab } = tab;
            const { outputFileFormatChoices } = this.props;
            const { selectedFileFormat } = this.state;
            // if there isn't a route, then use the first root if defined, else the tab id
            this.setState({ currentRoute: route || `/${(_c = (_b = (_a = tab.routing) === null || _a === void 0 ? void 0 : _a.roots) === null || _b === void 0 ? void 0 : _b[0]) !== null && _c !== void 0 ? _c : tab.id}` });
            // If an action exists, execute it
            if (onTabSelected) {
                onTabSelected();
            }
            // Handles tab change between Cloud Docs view and Projects
            if (id === SideNavViews.cloudDocs &&
                outputFileFormatChoices &&
                outputFileFormatChoices.length <= 1) {
                const appFileFormat = outputFileFormatChoices[0];
                if (selectedFileFormat.toLowerCase() !== appFileFormat.extension.toLowerCase()) {
                    this.showInvalidSaveAsFormatToast(selectedFileFormat, appFileFormat.label);
                }
                if (selectedFileFormat === appFileFormat.extension) {
                    this.docStore.closeToast();
                }
                this.setState({ selectedFileFormat: appFileFormat.extension });
            }
            // If component is not provided, we will not switch tabs.
            if (renderTab) {
                this.setState({ currentTabId: id }, () => {
                    // Make sure the state is updated before check for requiresSelectedItems.
                    // reset selection to 'nothing selected'
                    this.onItemsSelected([]);
                });
            }
            else {
                // reset selection to 'nothing selected'
                this.onItemsSelected([]);
            }
        };
        this.renderTitle = (className = '') => {
            const { mode } = this.props;
            const titleMsgId = `uap.title.${mode}`;
            return (react_default.a.createElement("div", { className: `${PickerView_styles.uapTitle} ${className}` },
                react_default.a.createElement(CreativeCloud_default.a, { size: "M", className: PickerView_styles.ccIcon }),
                react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: titleMsgId })));
        };
        /**
         * Save As document picker view. For clients such as Ps and AI.
         */
        this.renderSaveAsView = () => {
            const title = this.renderTitle(PickerView_styles.uapTitle_no_border);
            const { isUserLoggedOut } = this.docStore;
            const { isDialogOpen, onDialogStateChange, outputFileFormatChoices, spacesOutputFileFormatChoices, disableCancelButton, hideYourComputerButton, cdpTabs, mode, } = this.props;
            const { saveAsName, errorMessage, currentTabId, primaryButtonDisabled } = this.state;
            // TODO: determine what the correct behavior is for saving empty string. Should we also
            // Jira: https://jira.corp.adobe.com/browse/CCXCD-2933
            // check if the string only includes spaces?
            const isFileNameEmpty = saveAsName === '';
            const isCloudOnlyFolderAndOffline = this.isCloudOnlyFolderAndOffline();
            const disablePrimaryButton = isUserLoggedOut ||
                isFileNameEmpty ||
                isCloudOnlyFolderAndOffline ||
                primaryButtonDisabled ||
                !this.isCurrentRouteEnabled;
            const isSaveAsOrExportPicker = this._isSaveAsOrExportPicker();
            const primaryButtonLabel = mode === enums_PickerMode.export ? PickerViewAction.export : PickerViewAction.saveAs;
            const inputLabelId = mode === enums_PickerMode.export ? 'exportInput' : 'saveAsInput';
            const header = (react_default.a.createElement(components_SaveAsOrExportInput, { value: saveAsName, errorMessage: errorMessage, onInputChange: this.handleSaveAsOrExportInputChange, inputLabelId: inputLabelId, onPrimaryButtonClick: this.onSaveAsOrExport, primaryButtonDisabled: disablePrimaryButton, isDialogOpen: isDialogOpen }));
            const footer = (react_default.a.createElement(components_PickerViewFooter, { hideYourComputerButton: hideYourComputerButton, primaryButtonLabel: primaryButtonLabel, cancelButtonLabel: PickerViewAction.cancel, switchToOSPickerLabel: PickerViewAction.switchToOSPicker, onCancel: this.onCancel, currentTabId: currentTabId, onSelect: this.onSelect, outputFileFormatChoices: outputFileFormatChoices, spacesOutputFileFormatChoices: spacesOutputFileFormatChoices, isSaveAsOrExportPicker: isSaveAsOrExportPicker, onPrimaryButtonClick: this.onSaveAsOrExport, onSwitchToOSPicker: this.onSwitchToOSPicker, primaryButtonDisabled: disablePrimaryButton, disableCancelButton: disableCancelButton, getConfirmationDialog: this.getConfirmationDialogForContext(), onDialogStateChange: onDialogStateChange }));
            return (react_default.a.createElement(react_default.a.Fragment, null,
                title,
                header,
                cdpTabs ? this.renderVerticalTabView() : this.cloudDocumentTab.renderTab(),
                footer));
        };
        /**
         * Save As document picker view. For client such as XD.
         */
        this.renderSaveToFolderView = () => {
            const title = this.renderTitle();
            // @ts-ignore
            const main = react_default.a.createElement(ccx_cdo["f" /* CloudDocuments */], { onBeforeItemClicked: this.onBeforeItemClicked });
            const { currentTabId } = this.state;
            const isCloudOnlyFolderAndOffline = this.isCloudOnlyFolderAndOffline();
            const primaryButtonDisabled = isCloudOnlyFolderAndOffline || !this.isCurrentRouteEnabled;
            const { outputFileFormatChoices, spacesOutputFileFormatChoices, disableCancelButton, hideYourComputerButton, onDialogStateChange, } = this.props;
            const isSaveAsOrExportPicker = this._isSaveAsOrExportPicker();
            const footer = (react_default.a.createElement(components_PickerViewFooter, { hideYourComputerButton: hideYourComputerButton, primaryButtonLabel: PickerViewAction.saveToFolder, cancelButtonLabel: PickerViewAction.cancel, onPrimaryButtonClick: this.onSaveToFolder, onSelect: this.onSelect, outputFileFormatChoices: outputFileFormatChoices, spacesOutputFileFormatChoices: spacesOutputFileFormatChoices, isSaveAsOrExportPicker: isSaveAsOrExportPicker, currentTabId: currentTabId, primaryButtonDisabled: primaryButtonDisabled, onCancel: this.onCancel, disableCancelButton: disableCancelButton, getConfirmationDialog: this.getConfirmationDialogForContext(), onDialogStateChange: onDialogStateChange }));
            return (react_default.a.createElement(react_default.a.Fragment, null,
                title,
                main,
                footer));
        };
        /**
         * Open / Relink document picker view.
         */
        this.renderMainView = () => {
            const { cdpTabs } = this.props;
            const title = this.renderTitle();
            return (react_default.a.createElement(react_default.a.Fragment, null,
                title,
                cdpTabs ? this.renderVerticalTabView() : this.cloudDocumentTab.renderTab(),
                react_default.a.createElement(components_PickerViewFooter, Object.assign({}, this._getFooterOptions()))));
        };
        /**
         * View with vertical navigation..
         */
        this.renderVerticalTabView = () => {
            const { currentTabId } = this.state;
            const TABS = this.getTabs();
            return (react_default.a.createElement(components_VerticalTabs, { onSwitchView: this.onVerticalTabsSwitchView, currentTabId: currentTabId || this.cloudDocumentTab.id, tabs: TABS, getRouteEnablement: route => this.getRouteEnablement(route) }));
        };
        this.state = {
            dontShowCheckboxValue: !props.showInterstitial,
            errorMessage: '',
            saveAsName: props.saveAsName || '',
            selectedAction: '',
            showOnboarding: props.showInterstitial,
            selectedItems: [],
            currentTabId: '',
            isLink: false,
            disableLinkCheckbox: true,
            primaryButtonDisabled: !props.saveAsName,
            selectedFileFormat: props.outputFileFormatChoices
                ? props.outputFileFormatChoices[0].extension
                : '',
            lastSelectedWasNotBothLinkableAndEmbeddable: true,
        };
        this.callbacks = props.callbacks || {};
        this.cdoStore = props.cdoStore;
        this.docStore = props.cdoStore.docStore;
        this.cdoMetrics = props.cdoMetrics;
        this.fireIngestEvent({
            event: {
                subcategory: 'Init',
                subtype: 'component',
                type: 'init',
                workflow: 'Initialize',
            },
        }, false);
        this.initializeSpacesBrowseSession();
    }
    // eslint-disable-next-line react/sort-comp
    linkIsSupported(asset) {
        const { hostProductData } = this.props;
        const { linkableTypes = [] } = hostProductData;
        const documentType = this.getDocumentType(asset);
        // Linkable if the app supports it, and it is not an artifact
        // TODO: When Spaces moves to SAM, have SAM encapsulate "isLinkable" and "isEmbeddable"
        // rather than inferring from appMetadata
        return linkableTypes.includes(documentType) && !asset.isArtifact;
    }
    embedIsSupported(asset) {
        const { hostProductData } = this.props;
        const { embeddableTypes = [] } = hostProductData;
        const documentType = this.getDocumentType(asset);
        return embeddableTypes.includes(documentType);
    }
    isClickEventOnDisabled(mode) {
        return (mode === enums_PickerMode.saveAs ||
            mode === enums_PickerMode.saveAsCopy ||
            mode === enums_PickerMode.export);
    }
    get isCurrentRouteEnabled() {
        const { currentRoute } = this.state;
        return this.getRouteEnablement(currentRoute).enabled === true;
    }
    initializeSpacesBrowseSession() {
        const { mode, hostProductData, onDialogStateChange } = this.props;
        const tabs = this.getTabs();
        this.spacesBrowseSession = new src_main["BrowseSession"]({
            productLocation: 'com.adobe.ccx.document-picker',
            onWillNavigate: route => this.spacesWillNavigate(route),
            documentFilter: hostProductData.documentFilter,
            enabledTypes: hostProductData.enabledTypes,
            compatibleTypes: hostProductData.compatibleTypes,
            onDialogStateChange,
            onItemsSelected: this.onItemsSelected,
            pickerMode: mode,
        });
    }
    navigateToProjectsRoute(route) {
        this.spacesBrowseSession.navigate(route);
        this.spacesWillNavigate(route);
    }
    spacesWillNavigate(route) {
        const { currentTabId } = this.state;
        if (!route) {
            // ProjectsWrapper component will remove the navigation from Projects component when it is detached
            return;
        }
        // This method is called when the user clicks on the left menu.
        // We need to make sure we switch to the correct tab.
        const { mode } = this.props;
        if (mode === enums_PickerMode.reference) {
            if (currentTabId !== SideNavViews.references) {
                this.onSwitchView(this.referencesTab, route.serialize());
            }
        }
        else {
            // Even if currentTabId is Projects, still call onSwitchView to disable the primary button initially,
            // Project1Up will enable the button if valid. Handling this here instead of VerticalTabs because
            // spacesWillNavigate is only called if the space or team changes, so reselecting the same space doesn't
            // end up disabling the primary button.
            this.onSwitchView(this.projectsTab, route.serialize());
        }
    }
    fallbackCDORoute() {
        const { folder } = this.props;
        if (isAssetRef(folder)) {
            // only Spaces supports stringified assetRef in `folder`
            return;
        }
        if (folder && folder !== this.docStore.currentPath) {
            // At present, docStore only understands path-like folders.
            this.docStore.setCurrentPath(folder);
            // folder will start with /cloud-content
            this.onSwitchView(this.cloudDocumentTab, `/${CLOUD_DOCUMENTS_ROUTE_ROOT}${folder}`);
        }
    }
    fallbackProjectsRoute() {
        const { folder, defaultProjectsRoute } = this.props;
        const projectsRoute = ProjectsWrapper_ProjectsWrapper.folderRoute(folder);
        // if no other route is setup, navigate to the first team.
        this.navigateToProjectsRoute(projectsRoute || defaultProjectsRoute || new src_main["TeamRoute"](undefined));
    }
    /**
     * Update the current tab & location within the tab (where applicable)
     *
     * There are 4 elements that influence the initial position in the UAP:
     *     (in order of decreasing priority)
     *     route, defaultTab, folder, and defaultProjectsRoute
     *
     * The "route" prop matches on IPickerTab.id and root routes that match Assets Web.
     *   - /cloud-documents/<folderId>
     *   - /cloud-documents/cloud-content/...
     *   - /teams/<teamId>
     *   - /projects/<spaceId>
     *   - /projects/folder/<folderId>
     *   - /recent, /shared, /deleted, etc that match tab.id
     *
     * The "defaultTab" prop comes from `cdoHost.defaultTab` and matches on `IPickerTab.id`. It's used
     * as a fallback if `route` isn't provided as part of `pickerInfo`
     *
     * The "folder" prop may be one of two forms:
     *   - path-like (for CDO): `/cloud-content/some-folder`
     *   - assetRef (for Projects): `{ "cloud_id": "urn:some:id", "repository_id": "urn:some:id" }`
     *
     * Most workflows only support the path-like folder syntax.
     * Some, like Projects, use the assetRef format (to represent documents in org storage).
     *
     * Using same "folder" variable for spaces may be problematic, so we added
     * `defaultProjectsRoute`, which will only be taken into account if "folder" is not specified.
     */
    updateInitialLocation() {
        var _a, _b;
        const { route, defaultTab } = this.props;
        const TABS = this.getTabs();
        if (route) {
            const [EMPTY, root] = route.split('/');
            const tab = TABS.find(t => { var _a, _b; return ((_b = (_a = t.routing) === null || _a === void 0 ? void 0 : _a.roots) === null || _b === void 0 ? void 0 : _b.includes(root)) || t.id === root; });
            if (tab) {
                this.onSwitchView(tab, route);
                const routeDetail = route.slice(`/${root}/`.length);
                (_b = (_a = tab.routing) === null || _a === void 0 ? void 0 : _a.navigate) === null || _b === void 0 ? void 0 : _b.call(_a, root, routeDetail);
                return;
            }
        }
        let tab;
        if (typeof defaultTab === 'string') {
            tab = TABS.find(t => t.id === defaultTab);
        }
        else if (typeof defaultTab === 'number') {
            // defaultTab is only supposed to support tab IDs, but used to be tab index
            // so some clients still use that (such as Ps).
            // TODO: Find out which clients still use tab index instead of tab id, have them switch
            // to `pickerInfo.route` instead if they're passing it via `pickerInfo.defaultTab`.
            // If they're using `cdoHost.defaultTab`, then have them at least switch the value
            // to `IPickerTab.id` string instead
            const index = defaultTab >= TABS.length || defaultTab < 0 ? 0 : defaultTab;
            tab = TABS[index];
        }
        this.onSwitchView(tab || TABS[0] || this.cloudDocumentTab, undefined);
        if (tab === this.projectsTab) {
            this.fallbackProjectsRoute();
        }
        else {
            this.fallbackCDORoute();
        }
    }
    componentDidMount() {
        const { addExternalCancelListener } = this.props;
        this.updateInitialLocation();
        // Ensure focus is set in the current window, but do not steal focus from Save As input
        const focusDelay = 500;
        setTimeout(() => {
            if (this.focusEl.current && !this.focusEl.current.contains(document.activeElement)) {
                // no child has focus, so move focus to PickerView
                this.focusEl.current.focus();
            }
        }, focusDelay);
        this.fireIngestEvent({
            event: {
                subcategory: 'Landing',
                subtype: 'page',
                type: 'render',
                workflow: 'Main',
            },
        }, false);
        addExternalCancelListener && addExternalCancelListener(this.onExternalCancel);
    }
    /**
     * Invoked immediately after updating occurs. This method
     * is not called for the initial render.
     *
     * @param prevProps        previous props object
     */
    componentDidUpdate(prevProps) {
        const { saveAsName, folder, mode, defaultTab, defaultProjectsRoute, route } = this.props;
        // enablePlaceEmbedWarningToast won't be set unless mode is place
        if (!this.hasShownPlaceWarning && mode === enums_PickerMode.place) {
            // only try to put it up once until dialog is dismissed/unmounted
            this.showPlaceEmbedWarningToast();
            // eslint-disable-next-line react/no-did-update-set-state
            this.hasShownPlaceWarning = true;
        }
        // enablePlaceLinkWarningToast won't be set unless mode is placeLinkOrEmbed
        if (!this.hasShownPlaceLinkWarning && mode === enums_PickerMode.placeLinkOrEmbed) {
            // only try to put it up once until dialog is dismissed/unmounted
            this.showPlaceLinkWarningToast();
            // eslint-disable-next-line react/no-did-update-set-state
            this.hasShownPlaceLinkWarning = true;
        }
        // On Mac OS, after its first launch, picker window is not rerendered but brought to background/foreground
        // per closing/opening. Since host app sends updated save as name or folder upon (re)launching, compare these
        // props to force a rerender.
        if (saveAsName !== prevProps.saveAsName) {
            // eslint-disable-next-line react/no-did-update-set-state
            this.setState({
                errorMessage: '',
                saveAsName,
            });
        }
        // If the folder prop changed, the host app wants to change the starting folder
        if (defaultTab !== prevProps.defaultTab ||
            folder !== prevProps.folder ||
            defaultProjectsRoute !== prevProps.defaultProjectsRoute ||
            route !== prevProps.route) {
            this.updateInitialLocation();
        }
        if (prevProps.mode !== mode) {
            // eslint-disable-next-line no-shadow
            const { route } = this.spacesBrowseSession;
            this.initializeSpacesBrowseSession();
            if (route) {
                this.navigateToProjectsRoute(route);
            }
        }
    }
    componentWillUnmount() {
        const { removeExternalCancelListener } = this.props;
        // toast warning might be up
        this.docStore.closeToast();
        removeExternalCancelListener && removeExternalCancelListener(this.onExternalCancel);
    }
    /*
     * return the mimetype from a SelectedItem
     */
    getDocumentType(item) {
        return item.docInfoArray ? item.docInfoArray[0].mimetype : '';
    }
    getConfirmationDialogForContext() {
        const { getConfirmationDialog } = this.props;
        const { currentRoute, selectedItems } = this.state;
        return getConfirmationDialog
            ? () => getConfirmationDialog(currentRoute, selectedItems)
            : undefined;
    }
    getRouteEnablement(route) {
        var _a;
        const { isRouteEnabled } = this.props;
        const routeEnablement = (_a = (route && (isRouteEnabled === null || isRouteEnabled === void 0 ? void 0 : isRouteEnabled(route)))) !== null && _a !== void 0 ? _a : true;
        const enabled = routeEnablement === true;
        const disabledTooltip = !enabled ? routeEnablement : '';
        return {
            enabled,
            disabledTooltip,
        };
    }
    /**
     * Mode-specific footer props
     */
    _getFooterOptions() {
        const { disableCancelButton, hideYourComputerButton, hideLinkCheckbox, mode, onDialogStateChange, } = this.props;
        const { isLink, disableLinkCheckbox, selectedItems, primaryButtonDisabled, currentRoute } = this.state;
        const baseProps = {
            cancelButtonLabel: PickerViewAction.cancel,
            disableCancelButton,
            hideYourComputerButton,
            onCancel: this.onCancel,
            onToggleLinkOrEmbed: mode === enums_PickerMode.placeLinkOrEmbed ? this.onToggleLinkOrEmbed : undefined,
            isLinkMode: isLink,
            disableLinkCheckbox,
            hideLinkCheckbox,
            hideInfoIconAndTooltip: selectedItems.length === 0,
            onSwitchToOSPicker: this.onSwitchToOSPicker,
            primaryButtonDisabled: primaryButtonDisabled || !this.isCurrentRouteEnabled,
            switchToOSPickerLabel: PickerViewAction.switchToOSPicker,
            footerMessage: this.callbacks.getFooterMessage && this.callbacks.getFooterMessage(),
            getConfirmationDialog: this.getConfirmationDialogForContext(),
            onDialogStateChange,
        };
        switch (mode) {
            case enums_PickerMode.copyToProject:
                return {
                    ...baseProps,
                    onPrimaryButtonClick: this.onCopyToProject,
                    primaryButtonLabel: PickerViewAction.copyToProject,
                };
            case enums_PickerMode.placeLinkOrEmbed:
                return {
                    ...baseProps,
                    onPrimaryButtonClick: this.onPlaceLinkOrEmbed,
                    primaryButtonLabel: PickerViewAction.placeLinkOrEmbed,
                };
            case enums_PickerMode.import:
                return {
                    ...baseProps,
                    onPrimaryButtonClick: this.onImportPlaceDocuments,
                    primaryButtonLabel: PickerViewAction.import,
                };
            case enums_PickerMode.copy:
                return {
                    ...baseProps,
                    onPrimaryButtonClick: this.onCopy,
                    primaryButtonLabel: PickerViewAction.copy,
                };
            case enums_PickerMode.move:
                return {
                    ...baseProps,
                    onPrimaryButtonClick: this.onMove,
                    primaryButtonLabel: PickerViewAction.move,
                };
            case enums_PickerMode.moveToProject:
                return {
                    ...baseProps,
                    onPrimaryButtonClick: this.onMoveToProject,
                    primaryButtonLabel: PickerViewAction.moveToProject,
                };
            case enums_PickerMode.reference:
                return {
                    ...baseProps,
                    onPrimaryButtonClick: this.onAddReference,
                    primaryButtonLabel: PickerViewAction.addReference,
                };
            case enums_PickerMode.selectProject:
                return {
                    ...baseProps,
                    onPrimaryButtonClick: this.onSelectProject,
                    primaryButtonLabel: PickerViewAction.selectProject,
                };
            default:
                return baseProps;
        }
    }
    showInvalidSaveAsFormatToast(genericFormat, adobeFormat) {
        this.docStore.openToast({
            message: 'warning.saveAs.invalidFormat',
            values: {
                genericFormat: genericFormat.toUpperCase(),
                adobeFormat: adobeFormat.toUpperCase(),
            },
            delay: 0,
        });
    }
    showPlaceEmbedWarningToast() {
        const key = ccx_cdo["c" /* CDOLocalStorage */].LOCAL_STORAGE_KEY.PLACE_EMBED_WARNING;
        const { getStorage, setStorage } = ccx_cdo["c" /* CDOLocalStorage */];
        const { enablePlaceEmbedWarningToast } = this.props;
        const doNotShowToast = getStorage(key) === 'true';
        if (!doNotShowToast && enablePlaceEmbedWarningToast) {
            this.docStore.openToast({
                message: 'warning.place',
                delay: 0,
                actionLabelMsgId: 'onboardingCdp.checkbox.doNotShowAgain',
                action: () => {
                    this.docStore.closeToast();
                    setStorage(key, 'true');
                },
            });
        }
    }
    showPlaceLinkWarningToast() {
        const key = ccx_cdo["c" /* CDOLocalStorage */].LOCAL_STORAGE_KEY.PLACE_LINK_WARNING;
        const { getStorage, setStorage } = ccx_cdo["c" /* CDOLocalStorage */];
        const { enablePlaceLinkWarningToast } = this.props;
        const doNotShowToast = getStorage(key) === 'true';
        if (!doNotShowToast && enablePlaceLinkWarningToast) {
            this.docStore.openToast({
                message: 'warning.placeLinkOrEmbed',
                delay: 0,
                actionLabelMsgId: 'onboardingCdp.checkbox.doNotShowAgain',
                action: () => {
                    this.docStore.closeToast();
                    setStorage(key, 'true');
                },
            });
        }
    }
    /**
     * Returns an Array of tab objects
     */
    getTabs() {
        const { mode, additionalTabs, deletedTab, disableRecentsTab, importDisableCloudDocumentsTab, disableCloudDocumentsTab, disableSharedWithYouTab, showProjects, } = this.props;
        let tabs;
        const cloudDocumentTabIfEnabled = !disableCloudDocumentsTab && this.cloudDocumentTab;
        switch (mode) {
            case enums_PickerMode.linkAssets:
                tabs = [
                    cloudDocumentTabIfEnabled,
                    this.sharedWithYouTab,
                    this.convertToSketchLibrariesTab,
                    showProjects && this.projectsTab,
                ];
                break;
            case enums_PickerMode.relink:
                tabs = [
                    cloudDocumentTabIfEnabled,
                    this.sharedWithYouTab,
                    showProjects && this.projectsTab,
                ];
                break;
            case enums_PickerMode.place:
            case enums_PickerMode.placeLinkOrEmbed:
            case enums_PickerMode.open:
                tabs = [
                    !disableRecentsTab && this.recentTab,
                    cloudDocumentTabIfEnabled,
                    !disableSharedWithYouTab && this.sharedWithYouTab,
                    deletedTab && this.deletedTab,
                    showProjects && this.projectsTab,
                ];
                break;
            case enums_PickerMode.saveAs:
            case enums_PickerMode.saveAsCopy:
            case enums_PickerMode.export:
                tabs = [cloudDocumentTabIfEnabled, showProjects && this.projectsTab];
                break;
            case enums_PickerMode.import:
                tabs = [
                    !importDisableCloudDocumentsTab && cloudDocumentTabIfEnabled,
                    showProjects && this.projectsTab,
                ];
                break;
            case enums_PickerMode.copy:
                tabs = [cloudDocumentTabIfEnabled, showProjects && this.projectsTab];
                break;
            case enums_PickerMode.move:
                tabs = [
                    // for backward compatibility, if the flags are undefined, then don't show it
                    disableCloudDocumentsTab === false && this.cloudDocumentTab,
                    showProjects && this.projectsTab,
                ];
                break;
            case enums_PickerMode.selectProject:
            case enums_PickerMode.copyToProject:
            case enums_PickerMode.moveToProject:
                tabs = [this.projectsTab];
                break;
            case enums_PickerMode.reference:
                tabs = [this.referencesTab];
                break;
            default:
                tabs = [];
                break;
        }
        /**
         * If the host passes additional tabs, render them here
         *
         */
        tabs = additionalTabs && additionalTabs.length > 0 ? tabs.concat(...additionalTabs) : tabs;
        return tabs.filter(Boolean);
    }
    get selectedTab() {
        const { currentTabId } = this.state;
        const tabs = this.getTabs();
        return tabs.find(tab => tab.id === currentTabId);
    }
    _isSaveAsOrExportPicker() {
        const { mode } = this.props;
        return (mode === enums_PickerMode.saveAs ||
            mode === enums_PickerMode.saveAsCopy ||
            mode === enums_PickerMode.export);
    }
    // TODO: There should probably be a case for SaveAs in here too.
    // https://git.corp.adobe.com/CCX/cloud-shared-components/pull/290#discussion_r4759703
    get requiresSelectedItems() {
        const { mode } = this.props;
        const { currentTabId } = this.state;
        // Projects needs to load metadata for any selected route before it knows
        // whether the CTA button should be enabled, so it always requiresSelectedItems.
        if (currentTabId === SideNavViews.projects) {
            return true;
        }
        return mode === enums_PickerMode.placeLinkOrEmbed || mode === enums_PickerMode.reference;
    }
    /**
     * Use ccx-ingest to fire an ingest event
     * @return {undefined}
     */
    fireIngestEvent(payload, fireImmediate) {
        if (this.cdoMetrics) {
            this.cdoMetrics.fireEvent(payload, fireImmediate);
        }
    }
    isCloudOnlyFolderAndOffline() {
        const { currentFolderCollection, isOnline } = this.docStore;
        const isCloudOnlyFolder = currentFolderCollection && !currentFolderCollection.hasOfflineContent;
        return isCloudOnlyFolder && !isOnline;
    }
    /**
     * Get the folder & spaceInfo that should be provided to the host
     * For Projects (Spaces), that's an assetRef (a JSON string) and
     * spaceInfo (also a JSON string), passed that way due to SEAL limitations.
     */
    getSpacesInfo() {
        const { selectedItems } = this.state;
        if (!selectedItems.length) {
            return {};
        }
        const item = selectedItems[0].data;
        return {
            folder: item.assetRef,
            spaceInfo: item.spaceInfo,
        };
    }
    /**
     * Get the folder (path) & folderInfo (assetRefString) that should be provided to the host
     * For Cloud Documents, that's a string starting with "/cloud-documents".
     */
    async getFolderInfo() {
        const currentPath = this.docStore.currentPath;
        const currentFolder = await this.docStore.getAssetModelByPath(currentPath);
        return {
            folder: ensurePathStartsWithSlash(currentPath),
            folderAssetRef: currentFolder === null || currentFolder === void 0 ? void 0 : currentFolder.assetRef,
        };
    }
    callOnExecutePickerAction(folderInfo, state) {
        const { selectedAction, selectedItems, selectedFileFormat, saveAsName, dontShowCheckboxValue, currentRoute, } = state;
        const { windowController, mode } = this.props;
        const actionState = {
            action: selectedAction,
            /**
             * @TODO See if the host applications can just accept a non-string
             * boolean value for this. https://jira.corp.adobe.com/browse/CCXCD-4214
             */
            dismissInterstitial: dontShowCheckboxValue ? 'true' : 'false',
            mode,
            name: saveAsName,
            windowController,
            // maintain backwards compatible API
            // ! deprecated, changes in messaging will affect this !
            selectedTab: this.selectedTab.defaultLabel,
            selectedTabId: this.selectedTab.id,
            selectedItems,
            selectedFileFormat,
            route: currentRoute,
            ...folderInfo,
        };
        // now execute the action callback
        if (this.callbacks.onExecutePickerAction) {
            this.callbacks.onExecutePickerAction(actionState);
        }
    }
    /**
     * Component renderer.
     * @return {React} markup
     */
    render() {
        const { dontShowCheckboxValue, showOnboarding } = this.state;
        const { mode, hostProductData } = this.props;
        const isSaveAsOrExportPicker = this._isSaveAsOrExportPicker();
        const isSaveToFolderPicker = mode === enums_PickerMode.saveToFolder;
        const isNotASaveOrExportView = !isSaveAsOrExportPicker && !isSaveToFolderPicker;
        const renderOnboarding = showOnboarding && isSaveAsOrExportPicker;
        const mainView = (react_default.a.createElement(react_default.a.Fragment, null,
            isNotASaveOrExportView && this.renderMainView(),
            isSaveAsOrExportPicker && this.renderSaveAsView(),
            isSaveToFolderPicker && this.renderSaveToFolderView()));
        const onboardingView = (react_default.a.createElement(components_OnboardingView, { dontShowCheckValue: dontShowCheckboxValue, onSwitchToCDOPicker: () => this._handleOnboardingAction(OnboardingAction.CloudDocs), onSwitchToOSPicker: () => this._handleOnboardingAction(OnboardingAction.LocalDocs), onToggleDismissal: () => this._handleOnboardingAction(OnboardingAction.DontShow), productId: hostProductData.productId, hideOnboardingInviteToEditRow: hostProductData.featureFlags.hideOnboardingInviteToEditRow }));
        return (
        // tabIndex of -1 to allow javascript focus but not keyboard focus
        react_default.a.createElement("div", { className: `${PickerView_styles.root} PickerView`, tabIndex: -1, ref: this.focusEl }, renderOnboarding ? onboardingView : mainView));
    }
};
PickerView_PickerView = PickerView_decorate([
    Object(index_module["d" /* inject */])('cdoStore', 'metrics', 'callbacks'),
    index_module["e" /* observer */],
    PickerView_metadata("design:paramtypes", [Object, Object])
], PickerView_PickerView);
/* harmony default export */ var components_PickerView = (Object(ccx_ingest["ccxIngest"])(INGEST_PROJECT_VALUE)(Object(index_es["g" /* injectIntl */])(PickerView_PickerView, { withRef: true })));


// EXTERNAL MODULE: ./node_modules/@ccx/ccx-document-picker/src/version.js
var version = __webpack_require__("3otC");
var version_default = /*#__PURE__*/__webpack_require__.n(version);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-document-picker/src/components/DocumentPicker.css
var components_DocumentPicker = __webpack_require__("lx0c");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-document-picker/src/theme/CCXHomeScreen/Themes.css
var Themes = __webpack_require__("burs");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-document-picker/src/components/DocumentPicker.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/










/**
 * Styles
 */

/**
 * CDP Imports for HS
 */

/**
 * disable: tslint
 */
const pickerStateChanged = 'PICKERSTATECHANGED';
const recentschanged = 'UPDATEMRUINVOKED';
/**
 * Container for the main view.
 */
class DocumentPicker_DocumentPicker extends react["Component"] {
    /**
     * ctor
     *
     * @param {Object} props DocumentPicker props
     */
    constructor(props) {
        var _a, _b, _c, _d, _e;
        super(props);
        this._isEventRegistered = false;
        /**
         * Trigger the opening of an existing local document.
         *
         * @return {undefined}
         */
        this._handleOpenDocuments = (docInfoArray) => {
            const { closeDialog, openDocuments } = this.props;
            if (openDocuments) {
                // primarily for testing where we don't have a hostApp
                openDocuments(docInfoArray);
            }
            if (closeDialog) {
                closeDialog();
            }
        };
        /**
         * Trigger the opening of an existing local document.
         *
         * @return {undefined}
         */
        this._handlePlaceDocuments = (docInfoArray) => {
            const { closeDialog, placeDocuments } = this.props;
            if (placeDocuments) {
                // primarily for testing where we don't have a hostApp
                placeDocuments(docInfoArray);
            }
            if (closeDialog) {
                closeDialog();
            }
        };
        /**
         * Handler for accessing CDO onUpdateMRU method
         * to refresh recents store.
         */
        this.handleUpdatingRecents = () => {
            var _a, _b;
            (_b = (_a = this._cdoProviderRef) === null || _a === void 0 ? void 0 : _a.current) === null || _b === void 0 ? void 0 : _b.onUpdateMRU();
        };
        /**
         * Trigger updating the cloud document list and the recent list.
         */
        this._handleUpdateUserDocuments = () => {
            // Verify callback is present so that unit tests do not throw lots of "unhandled Promise rejection" errors
            const { onUpdateDocuments = undefined } = this._cdoProviderRef.current || {};
            onUpdateDocuments && onUpdateDocuments();
        };
        /**
         * Private method for handling theme changes from the
         * host application.
         */
        this._handleThemeChange = () => {
            var _a;
            const { callbacks } = this.props;
            (_a = callbacks === null || callbacks === void 0 ? void 0 : callbacks.getTheme) === null || _a === void 0 ? void 0 : _a.call(callbacks).then(colorTheme => this.setState({
                theme: ccx_cdo["x" /* Themes */][colorTheme],
            }, () => {
                console.info(`[ccx-document-picker] Theme changed to: ${colorTheme}`);
            }));
        };
        this.handleModeChange = (mode) => {
            const expectedTransitions = new Set([
                enums_PickerMode.open,
                enums_PickerMode.linkAssets,
                enums_PickerMode.place,
                enums_PickerMode.placeLinkOrEmbed,
                enums_PickerMode.import,
            ]);
            /**
             * We only want to transition to allowed modes in order to
             * prevent SaveAs from changing to Open when it's not supposed
             * to.
             */
            if (!expectedTransitions.has(mode) || !expectedTransitions.has(this.state.mode)) {
                console.warn('Unexpected mode change from', this.state.mode, 'to', mode, '. Mode has not been changed');
            }
            else {
                this.setState({ mode });
            }
        };
        this.getSelectionBehavior = (mode) => {
            switch (mode) {
                case enums_PickerMode.placeLinkOrEmbed:
                    return {
                        single: true,
                        hideFolderCheckbox: true,
                        hideFileCheckbox: false,
                    };
                default:
                    return undefined;
            }
        };
        this.getEnabledTypesForMode = (mode) => {
            switch (mode) {
                case enums_PickerMode.saveAs:
                case enums_PickerMode.saveAsCopy:
                case enums_PickerMode.saveToFolder:
                case enums_PickerMode.export:
                case enums_PickerMode.copy:
                    return [FOLDER_MIMETYPE];
                default:
                    return undefined;
            }
        };
        this.onDialogStateChange = (newState) => {
            this.setState({ isDialogOpen: newState });
        };
        const { callbacks, cdoIMSData, initialTheme, changeEventDispatcher } = props;
        this._cdoProviderRef = react["createRef"]();
        this._ingestProviderRef = react["createRef"]();
        this._pickerViewRef = react["createRef"]();
        this._callbacks = {
            ...{
                onExecutePickerAction: actionState => {
                    this._handleExecutePickerAction(actionState);
                },
                onOpenDocuments: docInfoArray => this._handleOpenDocuments(docInfoArray),
                onPlaceDocuments: docInfoArray => this._handlePlaceDocuments(docInfoArray),
                onStatusChange: status => {
                    this._cdoProviderRef.current.onUpdateDocuments();
                },
            },
            /**
             * Allow web integrations and other integrations
             * to provide their own callbacks for CDO.
             */
            ...callbacks,
        };
        const currentState = {
            isDialogOpen: false,
            mode: props.pickerInfo.mode,
            theme: props.initialTheme,
        };
        (_a = callbacks === null || callbacks === void 0 ? void 0 : callbacks.getTheme) === null || _a === void 0 ? void 0 : _a.call(callbacks).then(colorTheme => this.setState({
            theme: ccx_cdo["x" /* Themes */][colorTheme],
        }, () => {
            console.info(`[ccx-document-picker] Initial theme set to: ${colorTheme}`);
        }));
        this._imsData = cdoIMSData;
        this.state = currentState;
        // app specific event handlers
        if (changeEventDispatcher) {
            (_b = changeEventDispatcher.addEventListener) === null || _b === void 0 ? void 0 : _b.call(changeEventDispatcher, 'MRUFileListChanged', this._handleUpdateUserDocuments);
            (_c = changeEventDispatcher.addEventListener) === null || _c === void 0 ? void 0 : _c.call(changeEventDispatcher, 'UPDATEUSERDOCUMENTS', this._handleUpdateUserDocuments);
            (_d = changeEventDispatcher.addEventListener) === null || _d === void 0 ? void 0 : _d.call(changeEventDispatcher, 'com.adobe.cdp.events.UpdateUserDocuments', this._handleUpdateUserDocuments);
            (_e = changeEventDispatcher.addEventListener) === null || _e === void 0 ? void 0 : _e.call(changeEventDispatcher, 'themechanged', this._handleThemeChange);
        }
    }
    componentDidMount() {
        var _a, _b;
        const { changeEventDispatcher } = this.props;
        if (changeEventDispatcher && !this._isEventRegistered) {
            (_a = changeEventDispatcher.on) === null || _a === void 0 ? void 0 : _a.call(changeEventDispatcher, pickerStateChanged, this.handleModeChange);
            (_b = changeEventDispatcher.on) === null || _b === void 0 ? void 0 : _b.call(changeEventDispatcher, recentschanged, this.handleUpdatingRecents);
            this._isEventRegistered = true;
        }
    }
    /**
     * Invoked immediately after updating occurs. This method
     * is not called for the initial render.
     *
     * @param prevProps        previous props object
     */
    componentDidUpdate(prevProps) {
        this._handleUpdateUserDocuments();
        const { mode: prevMode } = prevProps.pickerInfo;
        const { pickerInfo } = this.props;
        const { mode } = pickerInfo;
        if (prevMode !== mode) {
            /**
             * setState can be used in componentDidUpdate
             * https://reactjs.org/docs/react-component.html#componentdidupdate
             */
            // eslint-disable-next-line react/no-did-update-set-state
            this.setState({ mode });
        }
    }
    componentWillUnmount() {
        var _a, _b;
        const { changeEventDispatcher } = this.props;
        if (changeEventDispatcher) {
            (_a = changeEventDispatcher.off) === null || _a === void 0 ? void 0 : _a.call(changeEventDispatcher, pickerStateChanged, this.handleModeChange);
            (_b = changeEventDispatcher.off) === null || _b === void 0 ? void 0 : _b.call(changeEventDispatcher, recentschanged, this.handleUpdatingRecents);
            this._isEventRegistered = false;
        }
    }
    /**
     * Transform the host locale to what the CDO provider expects.
     *
     * @return {String} containing the UI locale.
     */
    get locale() {
        // eslint-disable-line class-methods-use-this
        const { cdoHostProductData } = this.props;
        return cdoHostProductData.uiLocale;
    }
    get hostProductData() {
        const { pickerInfo, cdoHostProductData } = this.props;
        const { mode } = this.state;
        const cdoFF = cdoHostProductData ? cdoHostProductData.featureFlags : {};
        const featureFlags = {
            ...cdoFF,
            ...pickerInfo.featureFlags,
        };
        /**
         * compatibleTypes causes the compatible/everything filter UI to appear, and defines which mediatypes are
         *      visible when "compatible" filter is chosen. It can be specified at initialization, and overridden for
         *      each UAP invocation. Folders will always appear when "compatible" is selected. Otherwise, filtering is
         *      determined by documentFilter and documentFilterOverride. Clients should specify either compatibleTypes
         *      or documentFilter but not both.
         * enabledTypes determines which mediatypes are selectable, all others will appear greyed out. Folders appear
         *      enabled for navigation purposes, but cannot be selected for return value unless the folder mediatype
         *      is included in enabledTypes (e.g., for Move). It can be specified at initialization, or for each UAP
         *      invocation. If neither is defined, it will default to compatibleTypes (if defined). Clients should
         *      either specify compatibleTypes or enabledTypes but not both.
         */
        const { documentFilterOverride: uapDocumentFilter, enabledTypes: uapEnabledTypes, compatibleTypes: uapCompatibleTypes, } = pickerInfo;
        const { documentFilter: cdoDocumentFilter, enabledTypes: cdoEnabledTypes, compatibleTypes: cdoCompatibleTypes, } = cdoHostProductData || {};
        const compatibleTypes = uapCompatibleTypes || cdoCompatibleTypes;
        const enabledTypes = uapEnabledTypes ||
            cdoEnabledTypes ||
            compatibleTypes ||
            this.getEnabledTypesForMode(mode);
        const documentFilter = uapDocumentFilter || cdoDocumentFilter || [];
        return {
            ...cdoHostProductData,
            featureFlags,
            compatibleTypes,
            enabledTypes,
            documentFilter,
        };
    }
    get messages() {
        const normalizedLocale = i18n.normalizeLocale(this.locale);
        return i18n.getStringsForLocale(normalizedLocale);
    }
    /**
     * Perform the action selected from Document Picker.
     *
     * @param {} actionState    state of the selected action
     * {
     *      action: string. Actions are 'cancel', 'choose', 'save', and 'switchToOSPicker'.
     *              Open action will be handled by handleOpenDocuments.
     *      folder?: string, optional. Either a directory path or an assetRef string.
     *      name?: string, optional. New document name. Can be empty string.
     * }
     * @return {undefined}
     */
    _handleExecutePickerAction(actionState) {
        const { pickerInfo, closeDialog, executePickerAction } = this.props;
        const currentPickerInfo = pickerInfo;
        currentPickerInfo.name = actionState.name;
        currentPickerInfo.folder = actionState.folder;
        // pass the action back to the host
        const { windowController } = currentPickerInfo;
        if (executePickerAction) {
            if (windowController) {
                executePickerAction(actionState, currentPickerInfo.windowController);
            }
            else {
                // This native function requires two arguments.
                // if windowController is not present then we pass an
                // undefined, removeing undefined throws "Native function call expected more arguments"
                executePickerAction(actionState, undefined);
            }
        }
        // and close out the dialog
        if (closeDialog) {
            closeDialog();
        }
    }
    /**
     * Get the base data set for ingest events
     * @return {object} base data set for ingest event
     */
    _getIngestProviderData() {
        const userId = this._imsData.fetchUserId();
        const { subscriptionType } = this._imsData;
        return lodash_merge_default()(INGEST_INITIAL_STATE, {
            // simulate: true,
            env: {
                fw: {
                    name: 'CDOPicker',
                    version: version_default.a,
                },
            },
            event: {
                build: this.hostProductData.productBuildNumber,
                language: this.locale,
                user_agent: navigator.userAgent,
                user_guid: userId,
            },
            source: {
                client_id: this.hostProductData.productId,
                name: this.hostProductData.productName,
                os_version: this.hostProductData.platformVersion,
                platform: this.hostProductData.platform,
                version: this.hostProductData.productVersion,
            },
            user: {
                service_code: userId ? 'sign-in' : '',
                service_level: subscriptionType,
            },
        });
    }
    /**
     * Component renderer.
     * @return {ReactElement} markup
     */
    render() {
        const { theme, isDialogOpen, mode } = this.state;
        const { pickerInfo, openedSessionGuid, addExternalCancelListener, removeExternalCancelListener, } = this.props;
        /**
         * Let the homescreen override feature flags set in this
         * file.
         */
        const { windowController, isPanel, additionalTabs, isWebDialog, name, folder, disableCancelButton = false, documentFilterOverride, hideYourComputerButton, outputFileFormatChoices, spacesOutputFileFormatChoices, showInterstitial, route, getConfirmationDialog, isRouteEnabled, } = pickerInfo;
        // NOTE: these look like they come from HostProductData.featureFlags, but they really come from
        // props.pickerInfo.featureFlags with defaults coming from appConfig.featureFlags, which were likely
        // set by hostApp.featureEnabled().
        const { enableCDPOnboarding, cdpTabs, useCDPDeletedTab, useOrganizerMode, enableProjects, disableRecentsTab, disableCloudDocumentsTab, importDisableCloudDocumentsTab, disableSharedWithYouTab, enablePlaceEmbedWarningToast, enablePlaceLinkWarningToast, hideLinkCheckbox, enableRenditionUrl, hideOnboardingInviteToEditRow, } = this.hostProductData.featureFlags;
        let cloudURLProtocol = '';
        // TODO: `mode` is coming from `state`, but for some reason, `cdoMode` is ignoring
        // that and getting `mode` from `pickerInfo`. See if it is safe to remove `mode` from
        // `state`, and if so, destructure`mode` from `pickerInfo` above.
        // One reason may be that, for singleton pickers, if they are re-used with different
        // modes, the state.mode on first render is the mode from the last use of the picker.
        // NOTE: `mode` comes from `state`, changes to `props.pickerInfo.mode` are propagated
        // to `state` via `componentDidUpdate`.
        let cdoMode = mode;
        if (useOrganizerMode) {
            cloudURLProtocol = '{'; // assetref string
            cdoMode = enums_PickerMode.organizer;
        }
        const baseIngestData = this._getIngestProviderData();
        const classNameList = [
            `cdpTheme-${theme}`,
            `theme-${theme}`,
            'DocumentPickerRoot',
            isPanel ? 'DocumentPickerPanel' : 'DocumentPicker',
            isWebDialog && 'DocumentPickerWebDialog',
            'cdoCoreVariables',
        ].filter(className => Boolean(className));
        return (react["createElement"]("div", { className: classNameList.join(' ') },
            react["createElement"](Provider_default.a, { theme: theme, 
                /* disableNativeControls -- fixes issue where native widgets
                like text input are rendered on top of underlay */
                disableNativeControls: isDialogOpen, productId: this.hostProductData.productId },
                react["createElement"](ccx_cdo["d" /* CDOProvider */], { analyticsData: baseIngestData, imsData: this._imsData, hostProductData: this.hostProductData, locale: this.locale, callbacks: this._callbacks, mode: cdoMode, documentFilterOverride: documentFilterOverride, ref: this._cdoProviderRef, cloudURLProtocol: cloudURLProtocol, cardSize: cdpTabs ? ccx_cdo["e" /* CardSize */].Medium : undefined, messages: this.messages, selectionBehavior: this.getSelectionBehavior(cdoMode) },
                    isDialogOpen && (react["createElement"]("div", { id: "UAP_ConfirmationDialog_Underlay", className: "spectrum-Underlay is-open" })),
                    react["createElement"](components_PickerView
                    // Cause React to re-mount PickerView each time CDP is opened
                    , { 
                        // Cause React to re-mount PickerView each time CDP is opened
                        ref: this._pickerViewRef, key: openedSessionGuid, hostProductData: this.hostProductData, route: route, defaultTab: pickerInfo.defaultTab, defaultProjectsRoute: pickerInfo.defaultProjectsRoute, saveAsName: name, folder: folder, onDialogStateChange: this.onDialogStateChange, isDialogOpen: isDialogOpen, openDocuments: this._callbacks.onOpenDocuments, theme: theme, 
                        // If feature flag is enabled, show the interstitial unless explicitly told not to
                        showInterstitial: enableCDPOnboarding && showInterstitial !== false, showProjects: enableProjects, mode: mode, cdpTabs: cdpTabs, hideYourComputerButton: hideYourComputerButton, windowController: windowController, additionalTabs: additionalTabs, disableCancelButton: disableCancelButton, outputFileFormatChoices: outputFileFormatChoices, spacesOutputFileFormatChoices: spacesOutputFileFormatChoices, hideLinkCheckbox: hideLinkCheckbox, enableRenditionUrl: enableRenditionUrl, 
                        // For demo app only, shows the Deleted tab
                        deletedTab: useCDPDeletedTab, imsData: this._imsData, disableRecentsTab: disableRecentsTab, disableCloudDocumentsTab: disableCloudDocumentsTab, importDisableCloudDocumentsTab: importDisableCloudDocumentsTab, disableSharedWithYouTab: disableSharedWithYouTab, enablePlaceEmbedWarningToast: enablePlaceEmbedWarningToast, enablePlaceLinkWarningToast: enablePlaceLinkWarningToast, addExternalCancelListener: addExternalCancelListener, removeExternalCancelListener: removeExternalCancelListener, getConfirmationDialog: getConfirmationDialog, isRouteEnabled: isRouteEnabled })))));
    }
}
DocumentPicker_DocumentPicker.defaultProps = {
    initialTheme: ccx_cdo["x" /* Themes */].light,
};
/* harmony default export */ var src_components_DocumentPicker = (Object(index_es["g" /* injectIntl */])(DocumentPicker_DocumentPicker, { withRef: true }));


// CONCATENATED MODULE: ./node_modules/@ccx/ccx-document-picker/src/UAP.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/





// The following line allows mobx to function properly when multiple
// versions may be loaded on the page (such as in shared components).
Object(mobx_module["m" /* configure */])({ isolateGlobalState: true });
// @ts-ignore
__webpack_require__("z46f");
/**
 * Workaround for a TypeScript compile time error with the React Intl library
 */
// tslint:disable
const IntlProvider = index_es["e" /* IntlProvider */];
/**
 * Main Universal Asset Picker component.
 */
class UAP_UAP extends react["Component"] {
    constructor(props) {
        super(props);
        this._documentPickerRef = react["createRef"]();
    }
    /**
     * Catch component errors.
     * @see https://fb.me/react-error-boundaries
     *
     * @param {Object} error    error container object
     * @param {Object} info     container with extended info (including call stack `componentStack`)
     * @return {undefined}
     */
    componentDidCatch(error, info) {
        // Display fallback UI
        console.error('UAP.CatchError: ', error);
        console.error('UAP.CatchInfo: ', info);
    }
    /**
     * Component renderer.
     * @return {ReactElement} markup
     */
    render() {
        const { closeDialog, openedSessionGuid, pickerInfo, addExternalCancelListener, removeExternalCancelListener, executePickerAction, placeDocuments, openDocuments, cdoHostProductData, callbacks, cdoIMSData, changeEventDispatcher, theme, } = this.props;
        return (react["createElement"](IntlProvider, { locale: DEFAULT_UI_LOCALE },
            react["createElement"](src_components_DocumentPicker, { ref: this._documentPickerRef, openedSessionGuid: openedSessionGuid, pickerInfo: pickerInfo, addExternalCancelListener: addExternalCancelListener, removeExternalCancelListener: removeExternalCancelListener, executePickerAction: executePickerAction, placeDocuments: placeDocuments, openDocuments: openDocuments, closeDialog: closeDialog, cdoHostProductData: cdoHostProductData, callbacks: callbacks, cdoIMSData: cdoIMSData, initialTheme: theme, key: pickerInfo.mode, changeEventDispatcher: changeEventDispatcher })));
    }
}
/* harmony default export */ var src_UAP = (UAP_UAP);

// EXTERNAL MODULE: ./node_modules/react-dom/index.js
var react_dom = __webpack_require__("i8i4");

// EXTERNAL MODULE: ./node_modules/uuid/index.js
var uuid = __webpack_require__("EcEN");
var uuid_default = /*#__PURE__*/__webpack_require__.n(uuid);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/ModalContainer/index.js
var ModalContainer = __webpack_require__("i0ur");

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/PortalContainer/index.js
var PortalContainer = __webpack_require__("Kimv");
var PortalContainer_default = /*#__PURE__*/__webpack_require__.n(PortalContainer);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-document-picker/src/WebCommands.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2019 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/









// The following line allows mobx to function properly when multiple
// versions may be loaded on the page (such as in shared components).
Object(mobx_module["m" /* configure */])({ isolateGlobalState: true });
let isUXP = utils.usingUXP();
const setIsUXPForTesting = usingUXP => {
    isUXP = usingUXP;
};
const docPickerDialogID = 'ccx-document-picker';
const docPickerDialogClass = 'ccx-document-picker-multi-instance';
/**
 * @deprecated
 * Show the Picker inside Web or UXP from within a client like @ccx/projects.
 * In UXP, parentElement is not needed, as the dialog will be a popup.
 */
function showPicker(pickerInfo, cdoHostProductData, callbacks, cdoIMSData, theme, parentElement) {
    pickerInfo.isWebDialog = !isUXP;
    let modal;
    let dialogElement;
    let cancelCallback;
    const closeDialog = () => {
        if (isUXP) {
            dialogElement.parentNode.removeChild(dialogElement);
        }
        else {
            PortalContainer_default.a.remove(modal);
        }
    };
    const addExternalCancelListener = (callback) => {
        cancelCallback = callback;
        if (isUXP) {
            dialogElement.addEventListener('cancel', callback);
        }
    };
    const removeExternalCancelListener = (callback) => {
        if (isUXP) {
            dialogElement.removeEventListener('cancel', callback);
        }
    };
    const uap = (react["createElement"](src_UAP, { openedSessionGuid: uuid_default.a.v1(), pickerInfo: pickerInfo, closeDialog: closeDialog, addExternalCancelListener: addExternalCancelListener, removeExternalCancelListener: removeExternalCancelListener, cdoHostProductData: cdoHostProductData, callbacks: callbacks, cdoIMSData: cdoIMSData, theme: theme }));
    if (isUXP) {
        dialogElement = document.createElement('dialog');
        dialogElement.id = docPickerDialogID;
        dialogElement.className = docPickerDialogClass;
        document.body.appendChild(dialogElement);
        react_dom["render"](uap, dialogElement);
        const options = {
            resize: 'both',
            minSize: {
                width: UXP_MIN_DIALOG_WIDTH,
                height: UXP_MIN_DIALOG_HEIGHT,
            },
            size: {
                width: UXP_INITIAL_DIALOG_WIDTH,
                height: UXP_INITIAL_DIALOG_HEIGHT,
            },
        };
        dialogElement.uxpShowModal(options);
    }
    else {
        // ModalContainer doesn't allow us to override `enforceFocus`,
        // so instead we use PortalContainer with a Modal directly.
        // We need `enforceFocus=false` to prevent nested modals from
        // fighting for focus (e.g. a modal inside Projects inside CDP).
        // See <https://git.corp.adobe.com/React/react-spectrum-v2/issues/493>.
        modal = (react["createElement"](ModalContainer["Modal"], { key: "cdp-web-modal" // any value works here
            , id: docPickerDialogID, enforceFocus: false, container: parentElement, onClose: () => {
                cancelCallback();
                closeDialog(); // Clean up when escape is pressed
            } }, uap));
        PortalContainer_default.a.add(modal);
    }
    return closeDialog;
}

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-document-picker/src/interfaces/IUXPModalDialogOptions.ts
var IUXPModalDialogOptions = __webpack_require__("FU87");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-document-picker/src/interfaces/IUAPHost.ts
var IUAPHost = __webpack_require__("Z0Ie");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-document-picker/src/launchUAPMoveDialog.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2022 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/














// The following line allows mobx to function properly when multiple
// versions may be loaded on the page (such as in shared components).
Object(mobx_module["m" /* configure */])({ isolateGlobalState: true });
let launchUAPMoveDialog_isUXP = utils.usingUXP();
const launchUAPMoveDialog_setIsUXPForTesting = usingUXP => {
    launchUAPMoveDialog_isUXP = usingUXP;
};
const launchUAPMoveDialog_docPickerDialogID = 'ccx-document-picker';
const launchUAPMoveDialog_docPickerDialogClass = 'ccx-document-picker-multi-instance';
/**
 * Parse a "destinationAsset" from IPickerActionState, so that clients have a reference
 * to the cloudID, repositoryID, repoPath, and isSpaceAsset fields (at a minimum).
 * In the future, we'd like to just return the IAsset directly from SAM, rather than
 * extracting partial information here.
 */
function getDestinationAssetFromPickerAction(actionState) {
    // If the action is within a Space, pull the metadata from the AssetRef contained in "folder".
    if (actionState.spaceInfo) {
        const assetRef = parseAssetRef(actionState.folder);
        return {
            cloudID: assetRef.cloud_id,
            repositoryID: assetRef.repository_id,
            repoPath: assetRef.path,
            isSpaceAsset: true,
        };
    }
    // Otherwise (cloud documents), provide the known path to the current folder.
    return {
        cloudID: undefined,
        repositoryID: undefined,
        repoPath: actionState.folder,
        isSpaceAsset: false,
    };
}
/**
 * Show the Picker inside Web or UXP from within a client like @ccx/projects.
 * In UXP, parentElement is not needed, as the dialog will be a popup.
 * TODO: Reduce this template https://jira.corp.adobe.com/browse/CCXCD-9635
 */
function launchUAPMoveDialog(elements, cdoHostProductData, cdoIMSData, theme, parentElement, callbacks, onDialogStateChange, __testHook) {
    return new Promise((resolve, reject) => {
        const confirmMoveToSpace = (route, selectedItems) => {
            const [EMPTY, root] = route.split('/');
            if (root === SPACES_PROJECTS_ROUTE_ROOT) {
                return {
                    id: 'com.adobe.uap.move.toSpace',
                    title: 'move.toSpace.confirm.title',
                    body: 'move.toSpace.confirm.message',
                    learnMoreLink: 'move_to_space',
                    variant: 'confirmation',
                    callbacks,
                };
            }
            return undefined;
        };
        const parentPath = ensurePathStartsWithSlash(Object(ccx_cdo["D" /* deriveParentPath */])(elements[0].path));
        // NOTE: disabledPaths are folders that have been selected to move.
        // Any target element path that starts with one of these paths is a child of that folder,
        // so it should be disabled because moving a parent inside a child is not allowed.
        const disabledPaths = elements.filter(doc => doc.isFolder).map(folder => folder.path);
        // isRouteEnabled is used for both enabling tabs as well as the CTA.  That's a bit challenging
        // as we don't want the CTA enabled if the doc is in the root of Your Files and we
        // are looking at Your Files, but we want Your Files to be enabled in the list of tabs.
        // For now, tabs are sent in by their id instead of a real route so we can use
        // that to distinguish whether the route is for a tab or the navigated route.
        const isRouteEnabled = (route) => {
            const [EMPTY, root, routeDetail] = route.split('/');
            // is a tab so always enable
            if (!routeDetail &&
                (root === SideNavViews.cloudDocs || root === SideNavViews.projects)) {
                return true;
            }
            if (CLOUD_DOCUMENTS_ROUTE_ROOTS.includes(root)) {
                let path = route.substring(root.length + 1);
                // on switching tabs we just get /cloud-documents instead of
                // /cloud-documents/cloud-content
                if (path.length === 0) {
                    path = ensurePathStartsWithSlash(ROOT_FOLDER_PATH);
                }
                // is the same folder or invalid folder
                // amazingly, isValidMove really should be isInvalidMove
                if (parentPath === path || Object(ccx_cdo["I" /* isValidMove */])(disabledPaths, path)) {
                    return 'move.cta.tooltip'; // tooltip is not used currently
                }
                return true;
            }
            return root === SPACES_PROJECTS_ROUTE_ROOT && !elements.some(el => el.isFolder);
        };
        const pickerInfo = {
            mode: enums_PickerMode.move,
            route: `/${CLOUD_DOCUMENTS_ROUTE_ROOT}${parentPath}`,
            enabledTypes: [],
            isRouteEnabled,
            hideYourComputerButton: true,
            isWebDialog: !launchUAPMoveDialog_isUXP,
            featureFlags: {
                disableCloudDocumentsTab: false,
            },
            getConfirmationDialog: confirmMoveToSpace,
        };
        let modal;
        let dialogElement;
        let cancelCallback;
        const closeDialog = () => {
            if (launchUAPMoveDialog_isUXP) {
                dialogElement.parentNode.removeChild(dialogElement);
            }
            else {
                PortalContainer_default.a.remove(modal);
            }
            onDialogStateChange === null || onDialogStateChange === void 0 ? void 0 : onDialogStateChange(false);
        };
        const addExternalCancelListener = (callback) => {
            cancelCallback = callback;
            if (launchUAPMoveDialog_isUXP) {
                dialogElement.addEventListener('cancel', callback);
            }
        };
        const removeExternalCancelListener = (callback) => {
            if (launchUAPMoveDialog_isUXP) {
                dialogElement.removeEventListener('cancel', callback);
            }
        };
        const executePickerAction = (actionState) => {
            var _a;
            if (actionState.action === PickerViewAction.move) {
                resolve({
                    elements,
                    destination: actionState.route,
                    destinationAsset: getDestinationAssetFromPickerAction(actionState),
                });
            }
            else {
                // assume cancel
                resolve({
                    elements: [],
                    destination: undefined,
                    destinationAsset: undefined,
                });
            }
            // launchUAPMoveDialog overrides UAP.executePickerAction but we still want to run the host callback
            (_a = callbacks === null || callbacks === void 0 ? void 0 : callbacks.onExecutePickerAction) === null || _a === void 0 ? void 0 : _a.call(callbacks, actionState);
        };
        const { onExecutePickerAction: _, ...adaptedCallbacks } = callbacks !== null && callbacks !== void 0 ? callbacks : {};
        const uapRef = react["createRef"]();
        const uap = (react["createElement"](src_UAP, { callbacks: adaptedCallbacks, openedSessionGuid: uuid_default.a.v1(), pickerInfo: pickerInfo, closeDialog: closeDialog, executePickerAction: executePickerAction, addExternalCancelListener: addExternalCancelListener, removeExternalCancelListener: removeExternalCancelListener, cdoHostProductData: cdoHostProductData, cdoIMSData: cdoIMSData, theme: theme, ref: uapRef }));
        if (launchUAPMoveDialog_isUXP) {
            dialogElement = document.createElement('dialog');
            dialogElement.id = launchUAPMoveDialog_docPickerDialogID;
            dialogElement.className = launchUAPMoveDialog_docPickerDialogClass;
            document.body.appendChild(dialogElement);
            react_dom["render"](uap, dialogElement);
            __testHook === null || __testHook === void 0 ? void 0 : __testHook(uapRef);
            const options = {
                resize: 'both',
                minSize: {
                    width: UXP_MIN_DIALOG_WIDTH,
                    height: UXP_MIN_DIALOG_HEIGHT,
                },
                size: {
                    width: UXP_INITIAL_DIALOG_WIDTH,
                    height: UXP_INITIAL_DIALOG_HEIGHT,
                },
            };
            dialogElement.uxpShowModal(options);
        }
        else {
            // ModalContainer doesn't allow us to override `enforceFocus`,
            // so instead we use PortalContainer with a Modal directly.
            // We need `enforceFocus=false` to prevent nested modals from
            // fighting for focus (e.g. a modal inside Projects inside CDP).
            // See <https://git.corp.adobe.com/React/react-spectrum-v2/issues/493>.
            modal = (react["createElement"](ModalContainer["Modal"], { key: "cdp-web-modal" // any value works here
                , id: launchUAPMoveDialog_docPickerDialogID, enforceFocus: false, container: parentElement, onClose: () => {
                    cancelCallback();
                    closeDialog(); // Clean up when escape is pressed
                } }, uap));
            PortalContainer_default.a.add(modal);
            __testHook === null || __testHook === void 0 ? void 0 : __testHook(uapRef);
        }
        onDialogStateChange === null || onDialogStateChange === void 0 ? void 0 : onDialogStateChange(true);
    });
}

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-document-picker/src/webcomponent.js
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/









/* This file is similar to `index.tsx` but has UXP
 * bootstrapping code removed for web implmentation.
 * Can we consolidate the two files?
 * Jira: https://jira.corp.adobe.com/browse/CCXCD-8223
 */

async function init() {
  const globalStore = await Object(ccx_cdo["F" /* getExistingCDCGlobalStore */])(); // only override launchMoveDialog if undefined

  if (!globalStore.hostProductData.launchMoveDialog) {
    globalStore.hostProductData.launchMoveDialog = launchUAPMoveDialog;
  }
}

init();


/***/ }),

/***/ "juov":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _Dialog__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("dKUG");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("VIzJ");
/* harmony import */ var _styles_Dialog_css__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("SFhd");
/* harmony import */ var _styles_Dialog_css__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_styles_Dialog_css__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _utils_urls__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("/YLX");





class QuotaExceededDialog extends react__WEBPACK_IMPORTED_MODULE_1__["Component"] {
    render() {
        const { app, variant } = this.props;
        const spacesDeleteViewLink = Object(_utils_urls__WEBPACK_IMPORTED_MODULE_4__[/* localizedGoUrl */ "j"])(_utils_urls__WEBPACK_IMPORTED_MODULE_4__[/* SPACE_DELETE_VIEW */ "e"], app.intl.appLanguage || 'en');
        const description1 = variant === 'create'
            ? app.intl.formatMessage({ id: 'error.exceedQuota.create.detail.description1' })
            : app.intl.formatMessage({ id: 'error.exceedQuota.add.detail.description1' });
        const goToDeleted = app.intl.formatMessage({ id: 'button.goToDeleted' });
        const description2 = app.intl.formatMessage({ id: 'error.exceedQuota.description2' });
        return (react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_Dialog__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"], { className: _styles_Dialog_css__WEBPACK_IMPORTED_MODULE_3___default.a.quotaDialog, onCancel: () => {
                app.projectsClient._hideModal();
            }, variant: 'error', confirmLabel: app.intl.formatMessage({ id: 'button.goToDeleted' }), cancelLabel: app.intl.formatMessage({ id: 'button.close' }), onConfirm: () => Object(_utils_urls__WEBPACK_IMPORTED_MODULE_4__[/* openExternalLink */ "k"])(spacesDeleteViewLink, true), errorMessageId: app.intl.formatMessage({
                id: 'error.exceedQuota.detail',
            }), title: app.intl.formatMessage({ id: 'error.cantCreateSpace' }) },
            description1,
            react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("b", null, goToDeleted),
            description2));
    }
}
/* harmony default export */ __webpack_exports__["a"] = (Object(react_intl__WEBPACK_IMPORTED_MODULE_2__[/* injectIntl */ "g"])(QuotaExceededDialog));


/***/ }),

/***/ "juv8":
/***/ (function(module, exports, __webpack_require__) {

var assignValue = __webpack_require__("MrPd"),
    baseAssignValue = __webpack_require__("hypo");
/**
 * Copies properties of `source` to `object`.
 *
 * @private
 * @param {Object} source The object to copy properties from.
 * @param {Array} props The property identifiers to copy.
 * @param {Object} [object={}] The object to copy properties to.
 * @param {Function} [customizer] The function to customize copied values.
 * @returns {Object} Returns `object`.
 */


function copyObject(source, props, object, customizer) {
  var isNew = !object;
  object || (object = {});
  var index = -1,
      length = props.length;

  while (++index < length) {
    var key = props[index];
    var newValue = customizer ? customizer(object[key], source[key], key, object, source) : undefined;

    if (newValue === undefined) {
      newValue = source[key];
    }

    if (isNew) {
      baseAssignValue(object, key, newValue);
    } else {
      assignValue(object, key, newValue);
    }
  }

  return object;
}

module.exports = copyObject;

/***/ }),

/***/ "jwcI":
/***/ (function(module) {

module.exports = JSON.parse("{\"steps\":\"Krok {currentStep} z {totalSteps}\"}");

/***/ }),

/***/ "jxLO":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("path", {
  d: "M9 8h17V3a1 1 0 0 0-1-1H3a1 1 0 0 0-1 1v22a1 1 0 0 0 1 1h5V9a1 1 0 0 1 1-1z"
}), React.createElement("path", {
  d: "M10 11v22a1 1 0 0 0 1 1h22a1 1 0 0 0 1-1V11a1 1 0 0 0-1-1H11a1 1 0 0 0-1 1zm19.5 13H24v5.5a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5V24h-5.5a.5.5 0 0 1-.5-.5v-3a.5.5 0 0 1 .5-.5H20v-5.5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5V20h5.5a.5.5 0 0 1 .5.5v3a.5.5 0 0 1-.5.5z"
}));

/***/ }),

/***/ "k+1r":
/***/ (function(module, exports, __webpack_require__) {

var getMapData = __webpack_require__("QkVE");
/**
 * Removes `key` and its value from the map.
 *
 * @private
 * @name delete
 * @memberOf MapCache
 * @param {string} key The key of the value to remove.
 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
 */


function mapCacheDelete(key) {
  var result = getMapData(this, key)['delete'](key);
  this.size -= result ? 1 : 0;
  return result;
}

module.exports = mapCacheDelete;

/***/ }),

/***/ "k+aG":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var Buffer = __webpack_require__("hwdV").Buffer;

var Transform = __webpack_require__("43KI").Transform;

var inherits = __webpack_require__("P7XM");

function throwIfNotStringOrBuffer(val, prefix) {
  if (!Buffer.isBuffer(val) && typeof val !== 'string') {
    throw new TypeError(prefix + ' must be a string or a buffer');
  }
}

function HashBase(blockSize) {
  Transform.call(this);
  this._block = Buffer.allocUnsafe(blockSize);
  this._blockSize = blockSize;
  this._blockOffset = 0;
  this._length = [0, 0, 0, 0];
  this._finalized = false;
}

inherits(HashBase, Transform);

HashBase.prototype._transform = function (chunk, encoding, callback) {
  var error = null;

  try {
    this.update(chunk, encoding);
  } catch (err) {
    error = err;
  }

  callback(error);
};

HashBase.prototype._flush = function (callback) {
  var error = null;

  try {
    this.push(this.digest());
  } catch (err) {
    error = err;
  }

  callback(error);
};

HashBase.prototype.update = function (data, encoding) {
  throwIfNotStringOrBuffer(data, 'Data');
  if (this._finalized) throw new Error('Digest already called');
  if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding); // consume data

  var block = this._block;
  var offset = 0;

  while (this._blockOffset + data.length - offset >= this._blockSize) {
    for (var i = this._blockOffset; i < this._blockSize;) block[i++] = data[offset++];

    this._update();

    this._blockOffset = 0;
  }

  while (offset < data.length) block[this._blockOffset++] = data[offset++]; // update length


  for (var j = 0, carry = data.length * 8; carry > 0; ++j) {
    this._length[j] += carry;
    carry = this._length[j] / 0x0100000000 | 0;
    if (carry > 0) this._length[j] -= 0x0100000000 * carry;
  }

  return this;
};

HashBase.prototype._update = function () {
  throw new Error('_update is not implemented');
};

HashBase.prototype.digest = function (encoding) {
  if (this._finalized) throw new Error('Digest already called');
  this._finalized = true;

  var digest = this._digest();

  if (encoding !== undefined) digest = digest.toString(encoding); // reset state

  this._block.fill(0);

  this._blockOffset = 0;

  for (var i = 0; i < 4; ++i) this._length[i] = 0;

  return digest;
};

HashBase.prototype._digest = function () {
  throw new Error('_digest is not implemented');
};

module.exports = HashBase;

/***/ }),

/***/ "k/8l":
/***/ (function(module, exports, __webpack_require__) {

module.exports = {
  "default": __webpack_require__("VKFn"),
  __esModule: true
};

/***/ }),

/***/ "k0Fr":
/***/ (function(module, exports) {

/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2020 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/


/***/ }),

/***/ "k2qM":
/***/ (function(module, exports, __webpack_require__) {

"use strict";
 // ES3 safe

var _undefined = void 0;

module.exports = function (value) {
  return value !== _undefined && value !== null;
};

/***/ }),

/***/ "k8te":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return mimeTypeMapNonIdentifiedExtensions; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return localToCloudDocExtensionMap; });
const map = {
    '3d/vnd.adobe.dn+dcx': {
        ext: 'dn',
        type: 'app.type.creativeFile',
    },
    '3d/vnd.adobe.asd+dcx': {
        ext: 'dn',
        type: 'app.type.creativeFile',
    },
    '3d/vnd.adobe.3d+dcx': {
        ext: '3dmodel',
        type: 'app.type.creativeFile',
    },
    'application/bmp': {
        ext: 'bmp',
        type: 'app.type.graphic',
    },
    'application/cdr': {
        ext: 'cdr',
        type: 'app.type.graphic',
    },
    'application/coreldraw': {
        ext: 'cdr',
        type: 'app.type.graphic',
    },
    'application/doc': {
        ext: 'rtf',
        type: 'app.type.document',
    },
    'application/illustrator': {
        ext: 'ai',
        type: 'app.type.creativeFile',
    },
    'application/indesign': {
        ext: 'indd',
        type: 'app.type.creativeFile',
    },
    'application/javascript': {
        ext: 'js',
        type: 'app.type.code',
    },
    'application/json': {
        ext: 'json',
        type: 'app.type.code',
    },
    'application/macbinary': {
        ext: 'bin',
        type: 'app.type.document',
    },
    'application/mac-quick-draw': {
        ext: 'pict',
        type: 'app.type.document',
    },
    'application/msexcel': {
        ext: 'xls',
        type: 'app.type.document',
    },
    'application/msword': {
        ext: 'docx',
        type: 'app.type.document',
    },
    'application/octet-stream': {
        ext: 'octet',
        type: 'app.type.document',
    },
    'application/pdf': {
        ext: 'pdf',
        type: 'app.type.document',
    },
    'application/photoshop': {
        ext: 'psd',
        type: 'app.type.creativeFile',
    },
    'application/photoshop.large': {
        ext: 'psd',
        type: 'app.type.creativeFile',
    },
    'application/postscript': {
        ext: 'ai',
        type: 'app.type.creativeFile',
    },
    'application/psd': {
        ext: 'psd',
        type: 'app.type.creativeFile',
    },
    'application/rtf': {
        ext: 'rtf',
        type: 'app.type.document',
    },
    'application/tga': {
        ext: 'tga',
        type: 'app.type.graphic',
    },
    'application/vnd.adobe.ase': {
        ext: 'ase',
        type: 'app.type.creativeFile',
    },
    'application/vnd.adobe.clip.project+dcx': {
        ext: 'prproj',
        type: 'app.type.creativeFile',
        name: 'app.type.clip',
    },
    'application/vnd.adobe.clsproject+dcx': {
        ext: 'app.type.cls',
        type: 'app.type.creativeFile',
    },
    'application/vnd.adobe.cng+dcx': {
        ext: 'asd',
        type: 'app.type.creativeFile',
    },
    'application/vnd.adobe.collage': {
        ext: 'collage',
        type: 'app.type.creativeFile',
    },
    'application/vnd.adobe.directory+json': {
        ext: 'app.type.folder',
        type: 'app.type.folder',
    },
    'application/vnd.adobe.photoshop': {
        ext: 'psd',
        type: 'app.type.creativeFile',
    },
    'application/vnd.adobe.indesign-idms': {
        ext: 'idms',
        type: 'app.type.creativeFile',
        libraryElement: true,
    },
    'application/vnd.adobe.muse-collection': {
        ext: 'muse',
        type: 'app.type.creativeFile',
        libraryElement: true,
    },
    'application/vnd.adobe.charts+zip': {
        ext: 'zip',
        type: 'app.type.creativeFile',
        libraryElement: true,
    },
    'application/vnd.adobe.element.agc+json': {
        ext: 'xd',
        type: 'app.type.component',
        name: 'XD Component',
    },
    'application/vnd.adobe.element.animation+dcx': {
        ext: 'animation',
        type: 'app.type.animation',
        name: 'Animations',
        libraryElement: true,
    },
    'application/vnd.adobe.animate-xfl+zip': {
        ext: 'fla',
        type: 'app.type.animation',
        name: 'Animations',
        libraryElement: true,
    },
    'application/vnd.adobe.element.audio+dcx': {
        ext: 'audio',
        type: 'app.type.audio',
        name: 'Audio',
        libraryElement: true,
    },
    'application/vnd.adobe.element.brush+dcx': {
        ext: 'brush',
        type: 'app.type.brush',
        name: 'Brushes',
        libraryElement: true,
    },
    'application/vnd.adobe.element.xbrush+dcx': {
        ext: 'xbrush',
        type: 'app.type.brush',
        name: 'Brushes',
        libraryElement: true,
    },
    'application/vnd.adobe.element.capsule+dcx': {
        ext: 'capsule',
        type: 'app.type.capsule',
        name: 'Capsule',
        libraryElement: true,
    },
    'application/vnd.adobe.element.characterstyle+dcx': {
        ext: 'characterstyle',
        type: 'app.type.characterStyle',
        name: 'Character Styles',
        libraryElement: true,
    },
    'application/vnd.adobe.element.chart+dcx': {
        ext: 'chart',
        type: 'app.type.chart',
        name: 'Charts',
    },
    'application/vnd.adobe.element.colortheme+dcx': {
        ext: 'colortheme',
        type: 'app.type.colorTheme',
        name: 'Color Themes',
        libraryElement: true,
    },
    'application/vnd.adobe.element.color+dcx': {
        ext: 'color',
        type: 'app.type.color',
        name: 'Colors',
        libraryElement: true,
    },
    'application/vnd.adobe.element.component+dcx': {
        ext: 'component',
        type: 'app.type.component',
        name: 'Component',
        libraryElement: true,
    },
    'application/vnd.adobe.element.graphic+dcx': {
        ext: 'graphic',
        type: 'app.type.motionGraphic',
        name: 'Motion Graphics Templates',
        libraryElement: true,
    },
    'application/vnd.adobe.element.gradient+dcx': {
        ext: 'gradient',
        type: 'app.type.gradient',
        name: 'Gradient',
        libraryElement: true,
    },
    'application/vnd.adobe.element.image+dcx': {
        ext: 'image',
        type: 'app.type.graphic',
        name: 'Graphics',
        libraryElement: true,
    },
    'application/vnd.adobe.element.layerstyle+dcx': {
        ext: 'layer',
        type: 'app.type.layerStyle',
        name: 'Layer Styles',
        libraryElement: true,
    },
    'application/vnd.adobe.element.light+dcx': {
        ext: 'light',
        type: 'app.type.light',
        name: 'Lights',
        libraryElement: true,
    },
    'application/vnd.adobe.element.look+dcx': {
        ext: 'look',
        type: 'app.type.look',
        name: 'Looks',
        libraryElement: true,
    },
    'application/vnd.adobe.element.material+dcx': {
        ext: 'material',
        type: 'app.type.material',
        name: 'Materials',
        libraryElement: true,
    },
    'application/vnd.adobe.element.3d+dcx': {
        ext: '3d',
        type: 'app.type.model',
        name: 'Models',
        libraryElement: true,
    },
    'application/vnd.adobe.element.paragraphstyle+dcx': {
        ext: 'paragraphstyle',
        type: 'app.type.paragraphStyle',
        name: 'Paragraph Styles',
        libraryElement: true,
    },
    'application/vnd.adobe.element.pattern+dcx': {
        ext: 'pattern',
        type: 'app.type.pattern',
        name: 'Patterns',
        libraryElement: true,
    },
    'application/vnd.adobe.element.template+dcx': {
        ext: 'template',
        type: 'app.type.template',
        name: 'Templates',
        libraryElement: true,
    },
    'application/vnd.adobe.element.text+dcx': {
        ext: 'text',
        type: 'app.type.text',
        name: 'Text',
        libraryElement: true,
    },
    'application/vnd.adobe.element.video+dcx': {
        ext: 'video',
        type: 'app.type.video',
        name: 'Videos',
        libraryElement: true,
    },
    'application/vnd.adobe.library+dcx': {
        ext: 'library',
        type: 'app.type.creativeFile',
        libraryElement: true,
    },
    'application/vnd.adobe.comp.project+dcx': {
        ext: 'comp',
        type: 'app.type.creativeFile',
        name: 'app.type.composition',
    },
    'application/vnd.adobe.draw.project+dcx': {
        ext: 'app.type.draw',
        type: 'app.type.creativeFile',
    },
    'application/vnd.adobe.file+json': {
        ext: 'indd',
        type: 'app.type.creativeFile',
    },
    'application/vnd.adobe.idea': {
        ext: 'idea',
        type: 'app.type.creativeFile',
    },
    'application/vnd.adobe.aftereffects.project': {
        ext: 'aep',
        type: 'app.type.creativeFile',
    },
    'application/vnd.adobe.ideas': {
        ext: 'idea',
        type: 'app.type.creativeFile',
    },
    'application/vnd.adobe.illustrator': {
        ext: 'ai',
        type: 'app.type.creativeFile',
    },
    'application/vnd.adobe.layup.project+dcx': {
        ext: 'app.type.layup',
        type: 'app.type.creativeFile',
    },
    'application/vnd.adobe.line.sketchbook+dcx': {
        ext: 'app.type.line',
        type: 'app.type.creativeFile',
    },
    'application/vnd.adobe.photoshop-fix.composition+dcx': {
        ext: 'app.type.photoshopfix',
        type: 'app.type.creativeFile',
    },
    'application/vnd.adobe.photoshop-mix.composition+dcx': {
        ext: 'app.type.photoshopmix',
        type: 'app.type.creativeFile',
    },
    'application/vnd.adobe.psremix': {
        ext: 'psdx',
        type: 'app.type.creativeFile',
    },
    'application/vnd.adobe.proto': {
        ext: 'proto',
        type: 'app.type.creativeFile',
    },
    'application/vnd.adobe.proto.zip': {
        ext: 'proto',
        type: 'app.type.creativeFile',
    },
    'application/vnd.adobe.pstouch': {
        ext: 'psdx',
        type: 'app.type.creativeFile',
    },
    'application/vnd.adobe.real': {
        ext: 'real',
        type: 'app.type.creativeFile',
    },
    'application/vnd.adobe.real+dcx': {
        ext: 'real',
        type: 'app.type.aeroCloudDocument',
    },
    'application/vnd.adobe.sketch.project+dcx': {
        ext: 'app.type.sketch',
        type: 'app.type.creativeFile',
    },
    'application/vnd.adobe.sparkler.project+dcx': {
        ext: 'xd',
        type: 'app.type.creativeFile',
    },
    'application/vnd.adobe.sparkler.project+dcxucf': {
        ext: 'xd',
        type: 'app.type.creativeFile',
    },
    'application/vnd.adobe.weblink+dcx': {
        ext: 'web',
        type: 'app.type.webLink',
    },
    'application/vnd.adobe.xd.cloudproject+dcx': {
        ext: 'xdc',
        type: 'app.type.xdCloudDocument',
    },
    'application/vnd.apple.keynote.13': {
        ext: 'key',
        type: 'app.type.document',
    },
    'application/vnd.corel-draw': {
        ext: 'cdr',
        type: 'app.type.graphic',
    },
    'application/vnd.groove-tool-template': {
        ext: 'tpl',
        type: 'app.type.template',
    },
    'application/vnd.iccprofile': {
        ext: 'icc',
        type: 'app.type.creativeFile',
    },
    'application/vnd.ms-powerpoint': {
        ext: 'ppt',
        type: 'app.type.creativeFile',
    },
    'application/vnd.adobe.uxdesign.designspec+dcx': {
        ext: 'app.type.designSpecs',
        type: 'app.type.designSpecs',
    },
    'application/vnd.adobe.uxdesign.prototype+dcx': {
        ext: 'app.type.prototype',
        type: 'app.type.prototype',
    },
    'application/vnd.adobe.xd.sharedartifact+dcx': {
        ext: 'app.type.publishedLink',
        type: 'app.type.publishedLink',
    },
    'application/vnd.adobecloud.directory+json': {
        ext: 'app.type.folder',
        type: 'app.type.folder',
    },
    'application/vnd.adobe.hz.canvas+dcx': {
        ext: 'hz',
        type: 'app.type.hz',
    },
    'application/vnd.openxmlformats-officedocument.presentationml.presentation': {
        ext: 'pptx',
        type: 'app.type.document',
    },
    'application/vnd.openxmlformats-officedocument.presentationml.slideshow': {
        ext: 'ppsx',
        type: 'app.type.document',
    },
    'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet': {
        ext: 'xlsx',
        type: 'app.type.document',
    },
    'application/vnd.openxmlformats-officedocument.wordprocessingml.document': {
        ext: 'docx',
        type: 'app.type.document',
    },
    'application/vnd.ms-excel': {
        ext: 'xls',
        type: 'app.type.document',
    },
    'application/x-adobe-libraries-psdt': {
        ext: 'psdt',
        type: 'app.type.creativeFile',
    },
    'application/x-bmp': {
        ext: 'bmp',
        type: 'app.type.graphic',
    },
    'application/x-cdr': {
        ext: 'cdr',
        type: 'app.type.graphic',
    },
    'application/x-coreldraw': {
        ext: 'cdr',
        type: 'app.type.graphic',
    },
    'application/x-emf': {
        ext: 'emf',
        type: 'app.type.graphic',
    },
    'application/x-font-ttf': {
        ext: 'ttf',
        type: 'app.type.document',
    },
    'application/x-httpd-php': {
        ext: 'php',
        type: 'app.type.code',
    },
    'application/x-indesign': {
        ext: 'indd',
        type: 'app.type.creativeFile',
    },
    'application/x-javascript': {
        ext: 'js',
        type: 'app.type.code',
    },
    'application/x-msmetafile': {
        ext: 'wmf',
        type: 'app.type.graphic',
    },
    'application/x-photoshop': {
        ext: 'psd',
        type: 'app.type.creativeFile',
    },
    'application/x-rar-compressed': {
        ext: 'rar',
        type: 'app.type.other',
    },
    'application/x-rtf': {
        ext: 'rtf',
        type: 'app.type.document',
    },
    'application/x-sharedcloud-collection+json': {
        ext: 'app.type.folder',
        type: 'app.type.folder',
    },
    'application/x-sharedcloud-mount+json': {
        ext: 'app.type.sharedFolder',
        type: 'app.type.sharedFolder',
    },
    'application/x-shockwave-flash': {
        ext: 'swf',
        type: 'app.type.creativeFile',
    },
    'application/x-soffice': {
        ext: 'rtf',
        type: 'app.type.document',
    },
    'application/x-targa': {
        ext: 'tga',
        type: 'app.type.graphic',
    },
    'application/x-tga': {
        ext: 'tga',
        type: 'app.type.graphic',
    },
    'application/x-win-bmp': {
        ext: 'bmp',
        type: 'app.type.graphic',
    },
    'application/xhtml+xml': {
        ext: 'xml',
        type: 'app.type.document',
    },
    'application/xml': {
        ext: 'xml',
        type: 'app.type.document',
    },
    'application/zip': {
        ext: 'zip',
        type: 'app.type.other',
    },
    'audio/aac': {
        ext: 'aac',
        type: 'app.type.audio',
    },
    'audio/aacp': {
        ext: 'aac',
        type: 'app.type.audio',
    },
    'audio/aif': {
        ext: 'aif',
        type: 'app.type.audio',
    },
    'audio/m4a': {
        ext: 'm4a',
        type: 'app.type.audio',
    },
    'audio/mp4a': {
        ext: 'mp4a',
        type: 'app.type.audio',
    },
    'audio/mpeg': {
        ext: 'mp2',
        type: 'app.type.audio',
    },
    'audio/mp3': {
        ext: 'mp3',
        type: 'app.type.audio',
    },
    'audio/mpeg3': {
        ext: 'mp3',
        type: 'app.type.audio',
    },
    'audio/mpg': {
        ext: 'mp3',
        type: 'app.type.audio',
    },
    'audio/wav': {
        ext: 'wav',
        type: 'app.type.audio',
    },
    'audio/wave': {
        ext: 'wav',
        type: 'app.type.audio',
    },
    'audio/x-aac': {
        ext: 'aac',
        type: 'app.type.audio',
    },
    'audio/x-mpeg': {
        ext: 'mp2',
        type: 'app.type.audio',
    },
    'audio/x-wav': {
        ext: 'wav',
        type: 'app.type.audio',
    },
    'audio/x-aiff': {
        ext: 'aiff',
        type: 'app.type.audio',
    },
    'document/vnd.adobe.cpsd+dcx': {
        ext: 'psdc',
        type: 'app.type.psCloudDocument',
    },
    'document/vnd.adobe.gemini+dcx': {
        ext: 'gem',
        type: 'app.type.psCloudDocument',
        name: 'Fresco',
    },
    'document/vnd.adobe.illustrator+dcx': {
        ext: 'aic',
        type: 'app.type.aiCloudDocument',
    },
    folder: {
        ext: 'app.type.folder',
        type: 'app.type.folder',
    },
    sharedFolder: {
        ext: 'app.type.sharedFolder',
        type: 'app.type.sharedFolder',
    },
    'image/bmp': {
        ext: 'bmp',
        type: 'app.type.graphic',
    },
    'image/cdr': {
        ext: 'cdr',
        type: 'app.type.graphic',
    },
    'image/cgm': {
        ext: 'cgm',
        type: 'app.type.graphic',
    },
    'image/dng': {
        ext: 'dng',
        type: 'app.type.graphic',
    },
    'image/emf': {
        ext: 'emf',
        type: 'app.type.graphic',
    },
    'image/gif': {
        ext: 'gif',
        type: 'app.type.graphic',
    },
    'image/heif': {
        ext: 'heif',
        type: 'app.type.graphic',
    },
    'image/heic': {
        ext: 'heic',
        type: 'app.type.graphic',
    },
    'image/jpeg': {
        ext: 'jpeg',
        type: 'app.type.graphic',
    },
    'image/jpeg2000': {
        ext: 'jpeg',
        type: 'app.type.graphic',
    },
    'image/jpeg2000-image': {
        ext: 'jpeg',
        type: 'app.type.graphic',
    },
    'image/jpg': {
        ext: 'jpg',
        type: 'app.type.graphic',
    },
    'image/jpm': {
        ext: 'jpeg',
        type: 'app.type.graphic',
    },
    'image/jpx': {
        ext: 'jpeg',
        type: 'app.type.graphic',
    },
    'image/jp2': {
        ext: 'jp2',
        type: 'app.type.graphic',
    },
    'image/ms-bmp': {
        ext: 'bmp',
        type: 'app.type.graphic',
    },
    'image/photoshop': {
        ext: 'psd',
        type: 'app.type.creativeFile',
        libraryElement: true,
    },
    'image/pict': {
        ext: 'pict',
        type: 'app.type.graphic',
    },
    'image/pjpeg': {
        ext: 'pjpeg',
        type: 'app.type.graphic',
    },
    'image/png': {
        ext: 'png',
        type: 'app.type.graphic',
    },
    'image/psd': {
        ext: 'psd',
        type: 'app.type.creativeFile',
    },
    'image/raw': {
        ext: 'raw',
        type: 'app.type.graphic',
    },
    'image/svg': {
        ext: 'svg',
        type: 'app.type.graphic',
    },
    'image/svg+xml': {
        ext: 'svg',
        type: 'app.type.graphic',
    },
    'image/targa': {
        ext: 'tga',
        type: 'app.type.graphic',
    },
    'image/tga': {
        ext: 'tga',
        type: 'app.type.graphic',
    },
    'image/tiff': {
        ext: 'tiff',
        type: 'app.type.graphic',
    },
    'image/x-adobe-dng': {
        ext: 'dng',
        type: 'app.type.graphic',
    },
    'image/x-bitbmp': {
        ext: 'bmp',
        type: 'app.type.graphic',
    },
    'image/x-bmp': {
        ext: 'bmp',
        type: 'app.type.graphic',
    },
    'image/x-cdr': {
        ext: 'cdr',
        type: 'app.type.graphic',
    },
    'image/x-coreldraw': {
        ext: 'cdr',
        type: 'app.type.graphic',
    },
    'image/x-dcraw': {
        ext: 'raw',
        type: 'app.type.graphic',
    },
    'image/x-emf': {
        ext: 'emf',
        type: 'app.type.graphic',
    },
    'image/x-eps': {
        ext: 'eps',
        type: 'app.type.graphic',
    },
    'image/x-jpeg2000-image': {
        ext: 'jpeg',
        type: 'app.type.graphic',
    },
    'image/x-jp2-codestream': {
        ext: 'jpeg',
        type: 'app.type.graphic',
    },
    'image/x-jp2-container': {
        ext: 'jpeg',
        type: 'app.type.graphic',
    },
    'image/x-ms-bmp': {
        ext: 'bmp',
        type: 'app.type.graphic',
    },
    'image/x-pict': {
        ext: 'pict',
        type: 'app.type.graphic',
    },
    'image/x-pixar': {
        ext: 'pxr',
        type: 'app.type.graphic',
    },
    'image/x-pcx': {
        ext: 'pcx',
        type: 'app.type.graphic',
    },
    'image/x-photoshop': {
        ext: 'psd',
        type: 'app.type.creativeFile',
    },
    'image/x-png': {
        ext: 'png',
        type: 'app.type.graphic',
    },
    'image/x-targa': {
        ext: 'tga',
        type: 'app.type.graphic',
    },
    'image/x-tga': {
        ext: 'tga',
        type: 'app.type.graphic',
    },
    'image/x-win-bitbmp': {
        ext: 'bmp',
        type: 'app.type.graphic',
    },
    'image/x-windows-bmp': {
        ext: 'bmp',
        type: 'app.type.graphic',
    },
    'image/x-wmf': {
        ext: 'wmf',
        type: 'app.type.graphic',
    },
    'image/x-xbitbmp': {
        ext: 'bmp',
        type: 'app.type.graphic',
    },
    'image/vnd.adobe.cls+dcx': {
        ext: 'app.type.fix',
        type: 'app.type.creativeFile',
    },
    'image/vnd.adobe.photoshop': {
        ext: 'psd',
        type: 'app.type.creativeFile',
        libraryElement: true,
    },
    'image/vnd.adobe.photoshop.template': {
        ext: 'psdt',
        type: 'app.type.creativeFile',
    },
    'image/vnd.adobe.shape+dcx': {
        ext: 'svg',
        type: 'app.type.creativeFile',
    },
    'image/vnd.adobe.shape+svg': {
        ext: 'svg',
        type: 'app.type.creativeFile',
        libraryElement: true,
    },
    'image/vnd.dxf': {
        ext: 'dxf',
        type: 'app.type.graphic',
    },
    'image/vnd.dwg': {
        ext: 'dwg',
        type: 'app.type.graphic',
    },
    'image/wmf': {
        ext: 'wmf',
        type: 'app.type.graphic',
    },
    'model/gltf-binary': {
        ext: 'glb',
        type: 'app.type.scene',
    },
    'model/usd': {
        ext: 'usdz',
        type: 'app.type.creativeFile',
    },
    'model/vnd.adobe.dn+dcx': {
        ext: 'dn',
        type: 'app.type.creativeFile',
    },
    'model/vnd.pixar.usd': {
        ext: 'usdz',
        type: 'app.type.creativeFile',
    },
    'model/vnd.pixar.usd.usdz': {
        ext: 'usdz',
        type: 'app.type.creativeFile',
    },
    'model/xra': {
        ext: 'xra',
        type: 'app.type.creativeFile',
    },
    'text/css': {
        ext: 'css',
        type: 'app.type.code',
    },
    'text/html': {
        ext: 'html',
        type: 'app.type.code',
    },
    'text/javascript': {
        ext: 'js',
        type: 'app.type.code',
    },
    'text/plain': {
        ext: 'txt',
        type: 'app.type.text',
    },
    'text/csv': {
        ext: 'csv',
        type: 'app.type.code',
    },
    'text/richtext': {
        ext: 'rtf',
        type: 'app.type.document',
    },
    'text/rtf': {
        ext: 'rtf',
        type: 'app.type.document',
    },
    'text/vnd.adobe.textfragment+dcx': {
        ext: 'textfragment',
        type: 'app.type.creativeFile',
    },
    'video/quicktime': {
        ext: 'mov',
        type: 'app.type.video',
    },
    'video/mp4': {
        ext: 'mp4',
        type: 'app.type.video',
    },
    'video/mpeg': {
        ext: 'mpeg',
        type: 'app.type.video',
    },
    'video/mpg': {
        ext: 'mp4',
        type: 'app.type.video',
    },
    'video/x-f4v': {
        ext: 'f4v',
        type: 'app.type.video',
    },
    'video/x-flv': {
        ext: 'flv',
        type: 'app.type.video',
    },
    'video/x-m4v': {
        ext: 'm4v',
        type: 'app.type.video',
    },
    'video/x-msvideo': {
        ext: 'avi',
        type: 'app.type.video',
    },
    'video/x-ms-asf': {
        ext: 'asf',
        type: 'app.type.video',
    },
    'video/x-ms-wmv': {
        ext: 'wmv',
        type: 'app.type.video',
    },
    'video/x-photoshop': {
        ext: 'psd',
        type: 'app.type.creativeFile',
    },
    'video/x-quicktime': {
        ext: 'mov',
        type: 'app.type.video',
    },
    'video/3gpp': {
        ext: '3gp',
        type: 'app.type.video',
    },
    'video/x-matroska': {
        ext: 'mkv',
        type: 'app.type.video',
    },
    unknown: {
        ext: 'app.type.unknown',
        type: 'app.type.unknown',
    },
    unsupported: {
        ext: 'unsupported',
        type: 'app.type.unsupported',
    },
    'windows/metafile': {
        ext: 'wmf',
        type: 'app.type.graphic',
    },
};
const mimeTypeMapNonIdentifiedExtensions = ['app.type.unknown', 'unsupported'];
const localToCloudDocExtensionMap = {
    psd: 'psdc',
    ai: 'aic',
    xd: 'xdc',
};
class MimeTypeMap {
    static mapFactory(supportedTypes) {
        return new MimeTypeMap(supportedTypes);
    }
    constructor(supportedTypes) {
        Object.entries(supportedTypes).forEach(mimeEntry => (this[mimeEntry[0]] = { ...mimeEntry[1], mime: mimeEntry[0] }));
    }
    find(findFn) {
        return Object.values(this).find(findFn);
    }
}
/* harmony default export */ __webpack_exports__["a"] = (MimeTypeMap.mapFactory(map));


/***/ }),

/***/ "kAMH":
/***/ (function(module, exports, __webpack_require__) {

// 7.2.2 IsArray(argument)
var cof = __webpack_require__("a0xu");

module.exports = Array.isArray || function isArray(arg) {
  return cof(arg) == 'Array';
};

/***/ }),

/***/ "kBPl":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var isObject = __webpack_require__("Xt1Y");

module.exports = function (value) {
  if (!isObject(value)) return false;

  try {
    if (!value.constructor) return false;
    return value.constructor.prototype === value;
  } catch (error) {
    return false;
  }
};

/***/ }),

/***/ "kIL/":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// UNUSED EXPORTS: CloudDocumentsForTests

// NAMESPACE OBJECT: ./node_modules/@ccx/ccx-cdo/assets/assets.ts
var assets_namespaceObject = {};
__webpack_require__.r(assets_namespaceObject);
__webpack_require__.d(assets_namespaceObject, "OnboardingIcon", function() { return onboardingIcon_default.a; });
__webpack_require__.d(assets_namespaceObject, "OnboardingIconilst", function() { return onboardingIcon_ilst_default.a; });
__webpack_require__.d(assets_namespaceObject, "OnboardingIconsprk", function() { return onboardingIcon_sprk_default.a; });
__webpack_require__.d(assets_namespaceObject, "OnboardingIconidsn", function() { return onboardingIcon_idsn_default.a; });

// NAMESPACE OBJECT: ./node_modules/@ccx/ccx-cdo/src/components/svgs/index.ts
var svgs_namespaceObject = {};
__webpack_require__.r(svgs_namespaceObject);
__webpack_require__.d(svgs_namespaceObject, "EmptyCloudDocs", function() { return EmptyCloudDocs["a" /* default */]; });
__webpack_require__.d(svgs_namespaceObject, "EmptyCloudDocssprk", function() { return svgs_EmptyCloudDocsSprk; });
__webpack_require__.d(svgs_namespaceObject, "EmptyCloudDocsilst", function() { return svgs_EmptyCloudDocsIlst; });
__webpack_require__.d(svgs_namespaceObject, "NoConnection", function() { return NoConnection["a" /* default */]; });
__webpack_require__.d(svgs_namespaceObject, "UserLoggedOut", function() { return UserLoggedOut["a" /* default */]; });

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/Delete/index.js
var Delete = __webpack_require__("5/H/");
var Delete_default = /*#__PURE__*/__webpack_require__.n(Delete);

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/Download/index.js
var Download = __webpack_require__("/EZv");
var Download_default = /*#__PURE__*/__webpack_require__.n(Download);

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/DownloadFromCloud/index.js
var DownloadFromCloud = __webpack_require__("RIVm");
var DownloadFromCloud_default = /*#__PURE__*/__webpack_require__.n(DownloadFromCloud);

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/UploadToCloud/index.js
var UploadToCloud = __webpack_require__("aW4N");
var UploadToCloud_default = /*#__PURE__*/__webpack_require__.n(UploadToCloud);

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/Duplicate/index.js
var Duplicate = __webpack_require__("Cpzz");
var Duplicate_default = /*#__PURE__*/__webpack_require__.n(Duplicate);

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/FolderAdd/index.js
var FolderAdd = __webpack_require__("QtaS");
var FolderAdd_default = /*#__PURE__*/__webpack_require__.n(FolderAdd);

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/MoveTo/index.js
var MoveTo = __webpack_require__("OOwQ");
var MoveTo_default = /*#__PURE__*/__webpack_require__.n(MoveTo);

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/Preview/index.js
var Preview = __webpack_require__("cTZj");
var Preview_default = /*#__PURE__*/__webpack_require__.n(Preview);

// EXTERNAL MODULE: ./node_modules/mobx-react/index.module.js
var index_module = __webpack_require__("okNM");

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__("q1tI");
var react_default = /*#__PURE__*/__webpack_require__.n(react);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/CDOTab.tsx + 6 modules
var CDOTab = __webpack_require__("/7zY");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/types/CDOReactIntlTyped.ts
var CDOReactIntlTyped = __webpack_require__("dSAe");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/action.ts
var action = __webpack_require__("zPGX");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/CDOMetrics.ts
var CDOMetrics = __webpack_require__("0zmA");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/actions/index.tsx + 7 modules
var actions = __webpack_require__("xsR+");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/launch-item.ts
var launch_item = __webpack_require__("Kko5");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/constants.ts
var constants = __webpack_require__("a375");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/drag-utils.ts
var drag_utils = __webpack_require__("RQ+a");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/i18n.ts
var i18n = __webpack_require__("oSp+");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/metrics.ts
var metrics = __webpack_require__("jaHz");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/has-rename-disabled.ts
function hasRenameDisabled(elements) {
    return elements.some((el) => el.isRenameDisabled);
}
/* harmony default export */ var has_rename_disabled = (hasRenameDisabled);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/urls.ts
var urls = __webpack_require__("RIxR");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/validate-filename.ts
var validate_filename = __webpack_require__("AXVi");

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Textfield/index.js
var Textfield = __webpack_require__("WgUl");
var Textfield_default = /*#__PURE__*/__webpack_require__.n(Textfield);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/CDODialog.tsx
var CDODialog = __webpack_require__("Dc9i");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/create-placeholder-folder.ts
var create_placeholder_folder = __webpack_require__("brtb");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/styles/AddFolderDialog.css
var styles_AddFolderDialog = __webpack_require__("UYPC");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/components/AddFolderDialog.tsx
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;
};








let AddFolderDialog_AddFolderDialog = class AddFolderDialog extends react["Component"] {
    constructor() {
        super(...arguments);
        this.cdoStore = this.props.cdoStore;
        this.docStore = this.cdoStore.docStore;
        this.state = {
            name: '',
            validationStatus: undefined,
        };
        this.handleChange = (newName) => {
            this.setState({ name: newName });
        };
        this.onConfirm = async () => {
            const { name } = this.state;
            const { onDismissModalDialog, parentPath } = this.props;
            const parentFolderElements = this.docStore.getFolder(parentPath).foldersSortedByName;
            const isDuplicateName = parentFolderElements.some(el => el.title.toLowerCase() === name.toLowerCase());
            let validationStatus = Object(validate_filename["d" /* fileNameValidator */])(name);
            if (isDuplicateName) {
                validationStatus = validate_filename["c" /* ValidationStatus */].duplicateName;
            }
            if (validationStatus === validate_filename["c" /* ValidationStatus */].valid) {
                const tempElement = Object(create_placeholder_folder["a" /* default */])(parentPath);
                tempElement.setRepoName(name);
                onDismissModalDialog([[tempElement]]);
            }
            else {
                this.setState({ validationStatus });
            }
        };
        this.renderErrorMessage = (status) => {
            const statusValuesMap = {
                charRestriction: {},
                duplicateName: {},
                invalidChar: { characters: validate_filename["b" /* VALIDATION_INVALID_CHARS */] },
                invalidName: {},
            };
            return (react["createElement"]("div", { className: "addFolderDialogError" },
                react["createElement"](CDOReactIntlTyped["a" /* FormattedMessage */], { id: `dialog.addfolder.${status}`, values: statusValuesMap[status] })));
        };
    }
    /**
     * Component renderer.
     * @return {ReactElement} markup
     */
    render() {
        const { intl, onDismissModalDialog, // passed by ModalDialogContainer
        open, } = this.props;
        const { validationStatus, name = '' } = this.state;
        // RS TextField does not have a validationState setting for "indeterminate", so only pass the prop for the
        // invalid case.
        const validationState = validationStatus
            ? { validationState: validate_filename["a" /* ReactSpectrumValidationState */].invalid }
            : {};
        return (react["createElement"](CDODialog["a" /* default */], { qeId: "AddFolderDialog", title: intl.formatMessage({ id: 'dialog.addfolder.heading' }), confirmDisabled: name.trim().length === 0, variant: "confirmation", onConfirm: this.onConfirm, autoFocusSelector: "#AddFolderDialog_Input", cancelLabel: intl.formatMessage({ id: 'dialog.addfolder.cancelButton' }), confirmLabel: intl.formatMessage({ id: 'dialog.addfolder.confirmButton' }), onDismissModalDialog: onDismissModalDialog, open: open },
            react["createElement"](Textfield_default.a, Object.assign({ id: "AddFolderDialog_Input", placeholder: intl.formatMessage({ id: 'dialog.addfolder.placeholder' }), onChange: this.handleChange }, validationState)),
            validationStatus && this.renderErrorMessage(validationStatus)));
    }
};
AddFolderDialog_AddFolderDialog = __decorate([
    Object(index_module["d" /* inject */])('cdoStore'),
    index_module["e" /* observer */]
], AddFolderDialog_AddFolderDialog);
/* harmony default export */ var components_AddFolderDialog = (Object(CDOReactIntlTyped["e" /* injectIntl */])(AddFolderDialog_AddFolderDialog));
const AddFolderDialogForTests = AddFolderDialog_AddFolderDialog.wrappedComponent;


// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/EmptyView.tsx
var EmptyView = __webpack_require__("SZIB");

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Button/index.js
var Button = __webpack_require__("Cn9g");
var Button_default = /*#__PURE__*/__webpack_require__.n(Button);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Dialog/js/DialogButtons.js
var DialogButtons = __webpack_require__("bcRB");
var DialogButtons_default = /*#__PURE__*/__webpack_require__.n(DialogButtons);

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/ChevronRight/index.js
var ChevronRight = __webpack_require__("+n3g");
var ChevronRight_default = /*#__PURE__*/__webpack_require__.n(ChevronRight);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/utils/FocusManager.js
var FocusManager = __webpack_require__("3C4i");
var FocusManager_default = /*#__PURE__*/__webpack_require__.n(FocusManager);

// EXTERNAL MODULE: ./node_modules/classnames/index.js
var classnames = __webpack_require__("TSYQ");
var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/normalize-path.ts
var normalize_path = __webpack_require__("7L8R");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/valid-move.ts + 1 modules
var valid_move = __webpack_require__("b/AU");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/BackButton.tsx
var BackButton = __webpack_require__("PZGz");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/svgs/FolderGeneral.tsx
var FolderGeneral = __webpack_require__("XY+F");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/styles/MoveDialog.css
var styles_MoveDialog = __webpack_require__("8Ya1");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/components/MoveDialog.tsx
var MoveDialog_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;
};
var __metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
















/**
 * Container for the Move Folder dialog.
 */
let MoveDialog_MoveDialog = class MoveDialog extends react["Component"] {
    constructor(props) {
        super(props);
        this.cdoMetrics = this.props.cdoMetrics;
        this.docStore = this.props.cdoStore.docStore;
        this.focusTargetRef = react["createRef"]();
        this.updateFolderContents = (path, cloudUri) => {
            const p = Object(normalize_path["a" /* default */])(path);
            this.docStore.fetchFolderContents(p, cloudUri);
            this.setState({ destinationPath: p });
        };
        // Action.beforeExecute expects an array of [elements, destinationPath]. Empty elements array
        // will cancel the action.
        // TODO: this is same as the default CDODialog.props.onCancel implementation, figure out how to avoid duplication.
        // https://jira.corp.adobe.com/browse/CCXCD-2962
        this.onCancel = () => this.props.onDismissModalDialog([[]]);
        this.onConfirm = () => {
            const { elements, onDismissModalDialog } = this.props;
            const { destinationPath } = this.state;
            onDismissModalDialog([elements, destinationPath]);
        };
        this.onItemClick = (element) => {
            // Navigating into a folder may create a FolderCollection for the first time. To ensure
            // the correct contents are read from ACPL, having a cloudUri is ideal.
            this.updateFolderContents(element.path, element.cloudUri);
            // Move focus back to the list so next Tab will be on the first folder in the list
            this.focusTargetRef.current && this.focusTargetRef.current.focus();
        };
        this.onCreateNewClick = async () => {
            const { addFolderAction, ingestSubcategory } = this.props;
            const { destinationPath } = this.state;
            const tempElement = Object(create_placeholder_folder["a" /* default */])('', destinationPath);
            // Make sure the toast does not appear while the MoveDialog is open.
            this.docStore.setTemporarilyDisableToasts(true);
            const [[newFolderElement]] = await addFolderAction.beforeExecute([tempElement]);
            // newFolderElement will be undefined if the user cancelled creating a new folder
            if (newFolderElement) {
                const correlationId = this.cdoMetrics.createCorrelationId();
                // TODO: pass an `onAfterOpFailCallback` to `execute` so that if the folder is not created, this doesn't
                // try to navigate to it. Also, since we're suppressing operation toasts, we'll need a way to display
                // error messages inside the MoveDialog.
                // Jira: https://jira.corp.adobe.com/browse/CCXCD-2963
                const dtsStart = new Date(Date.now());
                this.cdoMetrics.logUsageMetric({
                    ingestSubcategory,
                    subtype: addFolderAction.analyticsValue,
                    menu: metrics["e" /* MenuType */].Dialog,
                    correlationId,
                    element: newFolderElement,
                    count: 1,
                    type: this.cdoMetrics.EventType.Click,
                    dtsStart,
                    workflow: this.cdoMetrics.Workflow.Folder,
                });
                await addFolderAction.execute([newFolderElement], correlationId);
                this.setState({ destinationPath: newFolderElement.path });
            }
            this.docStore.setTemporarilyDisableToasts(false);
        };
        this.onPathClick = (path) => {
            // Navigating via backbutton should visit an existing FolderCollection, so cloudUri is not
            // needed at this time.
            this.updateFolderContents(path);
        };
        this.onKeyDown = (e, element) => {
            const { focusManagementEnabled } = this.props;
            if (focusManagementEnabled) {
                switch (e.key) {
                    case 'Enter':
                        e.preventDefault(); // Prevent auto-confirm in CDODialog
                        this.onItemClick(element);
                        break;
                    default:
                        break;
                }
            }
        };
        const { sourcePath } = this.props;
        this.state = {
            destinationPath: sourcePath,
        };
    }
    // NOTE: disabledPaths are folders that have been selected to move.
    // Any target element path that starts with one of these paths is a child of that folder,
    // so it should be disabled because moving a parent inside a child is not allowed.
    isPathDisabled(element) {
        const { elements } = this.props;
        const disabledPaths = elements.filter(doc => doc.isFolder).map(folder => folder.path);
        return Object(valid_move["a" /* default */])(disabledPaths, element.path);
    }
    renderRow(element) {
        const disabled = this.isPathDisabled(element);
        const { focusManagementEnabled } = this.props;
        const focusProps = {};
        if (focusManagementEnabled) {
            // Item is managed by FocusManager if it is not disabled
            focusProps.tabIndex = disabled ? undefined : 0;
        }
        return (react["createElement"]("div", Object.assign({ id: element.id, key: element.id, className: classnames_default()('row', { disabled }) }, focusProps, { onClick: () => !disabled && this.onItemClick(element), onKeyDown: e => this.onKeyDown(e, element) }),
            react["createElement"]("div", { className: "leftRow" },
                react["createElement"]("div", { className: "image" },
                    react["createElement"](FolderGeneral["a" /* default */], null)),
                react["createElement"]("div", { className: "moveDialogContent" }, element.title)),
            react["createElement"](ChevronRight_default.a, { className: "chevron", size: "S" })));
    }
    renderFocusElement(children) {
        const { focusManagementEnabled } = this.props;
        if (focusManagementEnabled) {
            return (react["createElement"](FocusManager_default.a, { orientation: "vertical", manageTabIndex: true, itemSelector: ".row:not(.disabled)" }, children));
        }
        return children;
    }
    /**
     * Component renderer.
     * @return {ReactElement} markup
     */
    render() {
        const { intl, addFolderAction, sourcePath, onDismissModalDialog, // passed by ModalDialogContainer
        open, } = this.props;
        const { destinationPath } = this.state;
        const folderCollection = this.docStore.getOrCreateFolderCollection(destinationPath);
        const folders = folderCollection.foldersSortedByName;
        const isFolderEmpty = folders.length === 0;
        const confirmDisabled = destinationPath === sourcePath;
        // React will only render an unknown attribute if it's a string, object or number.
        // the UXP attribute "uxpscrollbarhidden" is unknown to React, so we convert the boolean to a string so React
        // will render the attribute
        const uxpScrollBarHidden = (!open).toString();
        return (react["createElement"](CDODialog["a" /* default */], { qeId: "MoveDialog", title: intl.formatMessage({ id: 'dialog.moveFolder.heading' }), onConfirm: this.onConfirm, onCancel: this.onCancel, autoFocusSelector: ".focus-target" // move focus to list after mount
            , confirmDisabled: confirmDisabled, open: open, onDismissModalDialog: onDismissModalDialog },
            react["createElement"]("div", { className: "header" },
                react["createElement"](BackButton["a" /* default */], { title: intl.formatMessage({ id: 'header.CloudDocuments' }), currentPath: destinationPath, onPathClick: this.onPathClick })),
            react["createElement"]("div", { ref: this.focusTargetRef, className: "focus-target moveDialogContentWrapper", tabIndex: -1 }, this.renderFocusElement(
            /**
             * This is a temporary workaround until UXP can solve the layering issue
             * with the scrollbar appearing above elements it's not supposed to.
             * @TODO Remove this once UXP and Photoshop makes a fix on their end.
             * Jira: https://jira.corp.adobe.com/browse/CCXCD-2960
             * https://jira.corp.adobe.com/browse/UXP-10535
             * https://jira.corp.adobe.com/browse/PS-36978
             */
            // @ts-ignore
            react["createElement"]("div", { className: "list", uxpscrollbarhidden: uxpScrollBarHidden }, !isFolderEmpty && folders.map(folder => this.renderRow(folder))))),
            react["createElement"]("div", { className: "footer" },
                react["createElement"]("div", { className: "left" },
                    react["createElement"](Button_default.a, { id: "MoveDialog_AddFolderButton", variant: addFolderAction.buttonVariant, quiet: addFolderAction.buttonQuiet, icon: addFolderAction.icon, onClick: this.onCreateNewClick, label: intl.formatMessage({
                            id: 'dialog.moveFolder.createNewFolderButton',
                        }) })),
                react["createElement"]("div", { className: "right" },
                    react["createElement"](DialogButtons_default.a, { onConfirm: this.onConfirm, onCancel: this.onCancel, confirmLabel: intl.formatMessage({
                            id: 'dialog.moveFolder.moveButton',
                        }), cancelLabel: intl.formatMessage({
                            id: 'dialog.moveFolder.cancelButton',
                        }), confirmDisabled: confirmDisabled, variant: "confirmation" })))));
    }
};
MoveDialog_MoveDialog = MoveDialog_decorate([
    Object(index_module["d" /* inject */])('cdoStore', 'metrics'),
    index_module["e" /* observer */],
    __metadata("design:paramtypes", [Object])
], MoveDialog_MoveDialog);
/* harmony default export */ var components_MoveDialog = (Object(CDOReactIntlTyped["e" /* injectIntl */])(MoveDialog_MoveDialog));
const MoveDialogForTests = MoveDialog_MoveDialog.wrappedComponent;


// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/CDOLink.tsx
var CDOLink = __webpack_require__("b3kR");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/styles/DeleteNonEmptyFolderDialog.css
var styles_DeleteNonEmptyFolderDialog = __webpack_require__("lI91");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/components/DeleteNonEmptyFolderDialog.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2022 Adobe Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
var DeleteNonEmptyFolderDialog_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;
};








/**
 * Container for the Delete Non-Empty Folder Dialog.
 */
let DeleteNonEmptyFolderDialog_DeleteNonEmptyFolderDialog = class DeleteNonEmptyFolderDialog extends react["Component"] {
    constructor() {
        super(...arguments);
        this.onConfirm = () => {
            const { elements, onDismissModalDialog } = this.props;
            onDismissModalDialog([elements]);
        };
        this.onCancel = () => {
            const { elements, onDismissModalDialog } = this.props;
            onDismissModalDialog([[]]);
        };
    }
    /**
     * Component renderer.
     * @return {ReactElement} markup
     */
    render() {
        const { intl, elements, parentFolder, appName, environment, onDismissModalDialog, // passed by ModalDialogContainer
        open, } = this.props;
        const { cloudUri } = elements.length === 1 ? elements[0] : parentFolder;
        const rootUrl = urls["a" /* ASSETS_WEB */][environment];
        // if we don't have a cloudUri (such as for cloud-content root), go to the root
        const href = cloudUri ? `${rootUrl}/id/${cloudUri}` : rootUrl;
        // Note: currently need:
        // 'className' => RS renders className correctly on container element `.spectrum-Dialog`
        // 'id' => for automation to work (but incorrectly appended to `.spectrum-Dialog-header`)
        // Jira: https://jira.corp.adobe.com/browse/UXP-10467
        return (react["createElement"](CDODialog["a" /* default */], { qeId: "DeleteNonEmptyFolderDialog_Dialog", onDismissModalDialog: onDismissModalDialog, open: open, keyboardConfirm: false, onConfirm: this.onConfirm, onCancel: this.onCancel, title: intl.formatMessage({ id: 'dialog.nonemptyfolder.heading' }, { count: elements.length }), cancelLabel: intl.formatMessage({ id: 'dialog.nonemptyfolder.cancelButton' }), confirmLabel: intl.formatMessage({ id: 'dialog.nonemptyfolder.confirmButton' }), variant: "destructive", confirmEnabledOffline: true },
            react["createElement"]("div", { className: "dialogWarning" },
                react["createElement"](CDOReactIntlTyped["a" /* FormattedMessage */], { id: "dialog.nonemptyfolder.warning", values: {
                        count: elements.length,
                        appName,
                        viewOnWebLink: (react["createElement"](CDOLink["a" /* default */], { id: "DeleteNonEmptyFolderDialog_Dialog_viewOnWebButton", href: href },
                            react["createElement"](CDOReactIntlTyped["a" /* FormattedMessage */], { id: "dialog.nonemptyfolder.viewOnWebButton" }))),
                    } })),
            react["createElement"]("ul", { className: "dialogItemsContainer" }, elements.map(element => (react["createElement"]("li", { key: element.id },
                react["createElement"]("div", { className: "dialogRenditionWrapper" },
                    react["createElement"](FolderGeneral["a" /* default */], null)),
                react["createElement"]("div", { className: "dialogTitle" }, element.title)))))));
    }
};
DeleteNonEmptyFolderDialog_DeleteNonEmptyFolderDialog = DeleteNonEmptyFolderDialog_decorate([
    Object(index_module["d" /* inject */])('cdoStore'),
    index_module["e" /* observer */]
], DeleteNonEmptyFolderDialog_DeleteNonEmptyFolderDialog);
/* harmony default export */ var components_DeleteNonEmptyFolderDialog = (Object(CDOReactIntlTyped["e" /* injectIntl */])(DeleteNonEmptyFolderDialog_DeleteNonEmptyFolderDialog));
const DeleteNonEmptyFolderDialogForTests = DeleteNonEmptyFolderDialog_DeleteNonEmptyFolderDialog.wrappedComponent;


// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Heading/index.js
var Heading = __webpack_require__("8bOP");
var Heading_default = /*#__PURE__*/__webpack_require__.n(Heading);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/assets/onboardingIcon.png
var onboardingIcon = __webpack_require__("ccD0");
var onboardingIcon_default = /*#__PURE__*/__webpack_require__.n(onboardingIcon);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/assets/onboardingIcon.sprk.png
var onboardingIcon_sprk = __webpack_require__("ElOe");
var onboardingIcon_sprk_default = /*#__PURE__*/__webpack_require__.n(onboardingIcon_sprk);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/assets/onboardingIcon.ilst.png
var onboardingIcon_ilst = __webpack_require__("zCRT");
var onboardingIcon_ilst_default = /*#__PURE__*/__webpack_require__.n(onboardingIcon_ilst);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/assets/onboardingIcon.idsn.png
var onboardingIcon_idsn = __webpack_require__("RcEm");
var onboardingIcon_idsn_default = /*#__PURE__*/__webpack_require__.n(onboardingIcon_idsn);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/assets/assets.ts
// @ts-ignore -- tsconfig.unit_tests.json doesn't like it

// SPRK is XD: https://wiki.corp.adobe.com/display/adobeDS/Product+Code+Dictionary
// @ts-ignore -- tsconfig.unit_tests.json doesn't like it

// @ts-ignore -- tsconfig.unit_tests.json doesn't like it

// @ts-ignore -- tsconfig.unit_tests.json doesn't like it




// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/styles/OnboardingBanner.css
var styles_OnboardingBanner = __webpack_require__("ahjq");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/components/OnboardingBanner.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2019 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/






class OnboardingBanner_OnboardingBanner extends react_default.a.PureComponent {
    render() {
        const { intl, onDismissOnboardBanner, learnMoreLink, productId } = this.props;
        // Load product-specific onboarding image if one exists
        // @ts-ignore -- dynamic lookup
        const onboardingImage = assets_namespaceObject[`OnboardingIcon${productId}`] || onboardingIcon_default.a;
        return (react_default.a.createElement("div", { className: "bannerWrapper" },
            react_default.a.createElement("div", { className: "cdo-onboard-banner" },
                react_default.a.createElement("div", { className: "heroWrapper" },
                    react_default.a.createElement("img", { alt: "", src: onboardingImage, id: "CDO_OnboardingBannerImage" })),
                react_default.a.createElement("div", { className: "content" },
                    react_default.a.createElement(Heading_default.a, { variant: "subtitle1", className: "h2" },
                        react_default.a.createElement(CDOReactIntlTyped["a" /* FormattedMessage */], { id: `onboardingCdo.banner.title.${productId}` })),
                    react_default.a.createElement(Heading_default.a, { variant: "subtitle2", className: "h3" },
                        `${intl.formatMessage({
                            id: `onboardingCdo.banner.message.${productId}`,
                        })} `,
                        react_default.a.createElement(CDOLink["a" /* default */], { className: "learnMore", href: learnMoreLink, variant: "quiet" },
                            react_default.a.createElement(CDOReactIntlTyped["a" /* FormattedMessage */], { id: "onboardingCdo.banner.linkTitle" }))),
                    react_default.a.createElement(CDOLink["a" /* default */], { className: "close", onClick: onDismissOnboardBanner },
                        react_default.a.createElement(CDOReactIntlTyped["a" /* FormattedMessage */], { id: "onboardingCdo.banner.confirm" }))))));
    }
}
/* harmony default export */ var components_OnboardingBanner = (Object(CDOReactIntlTyped["e" /* injectIntl */])(OnboardingBanner_OnboardingBanner));


// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/svgs/EmptyCloudDocs.tsx
var EmptyCloudDocs = __webpack_require__("T2Bq");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/components/svgs/EmptyCloudDocsSprk.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2020 Adobe
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/


const DEFAULT_SIZE = {
    width: 216,
    height: 306,
};
const EmptyCloudDocsSprk = ({ height = DEFAULT_SIZE.height, width = DEFAULT_SIZE.width, className = '', fillColorClass1 = '#2680eb', fillColorClass2 = '#b3b3b3', fillColorClass3 = '#b6b6b6', fillColorClass4 = '#fff', }) => (react_default.a.createElement("svg", { className: classnames_default()('EmptyCloudDocs', className), "data-name": "Layer 1", id: "Layer_1", width: height, height: width, viewBox: `0 0 ${height} ${width}`, xmlns: "http://www.w3.org/2000/svg" },
    react_default.a.createElement("title", null, "Artboard 1"),
    react_default.a.createElement("path", { fill: fillColorClass1, d: "M226.30176,56.56885a1.49915,1.49915,0,0,1-1.291-.73438,86.93215,86.93215,0,0,0-7.6123-10.84033,1.5,1.5,0,1,1,2.3164-1.90625,90.01211,90.01211,0,0,1,7.876,11.21533,1.49993,1.49993,0,0,1-1.28906,2.26563Z" }),
    react_default.a.createElement("path", { fill: fillColorClass1, d: "M247.97656,168.93457a2.61715,2.61715,0,0,1-.72851-.10449,2.54038,2.54038,0,0,1-1.85157-2.31641l-2.08007-35.165a2.569,2.569,0,0,1,4.28906-2.05664l26.60058,24.09863a2.56882,2.56882,0,0,1-1.94043,4.46387l-14.1914-1.19629-8.02442,11.2002A2.541,2.541,0,0,1,247.97656,168.93457Zm.41406-2.59863h0Zm-2.01757-34.11231,1.94629,32.89844,7.8125-10.9043a1.5397,1.5397,0,0,1,1.3457-.62109l13.76953,1.16113Zm-.0625-1.05273Z" }),
    react_default.a.createElement("path", { fill: fillColorClass1, d: "M198.67,184.56a1.371,1.371,0,0,1-.32-.16.91224.91224,0,0,1-.17-.17A2.63131,2.63131,0,0,1,198.67,184.56Z" }),
    react_default.a.createElement("path", { fill: fillColorClass1, d: "M247.66,125.66a5.52452,5.52452,0,0,0-8.62994-1.17,5.46276,5.46276,0,0,0-1.69,3.89,5.681,5.681,0,0,0,.42,2.21l-8.45,11.48a94.07636,94.07636,0,0,0,11.04-30.93,1.501,1.501,0,1,0-2.96-.5,91.67056,91.67056,0,0,1-15.35,37.31l-2.62.16a3.487,3.487,0,0,0-3.27,3.68l.21,3.44a91.32436,91.32436,0,0,1-37.99,26.14l4.55-7.09a1.49791,1.49791,0,1,0-2.52-1.62l-6.57,10.24a1.48975,1.48975,0,0,0,.45,2.07L184.66,191.62a1.419,1.419,0,0,0,.81.24,1.49954,1.49954,0,0,0,.81006-2.76l-7.39-4.73a94.16227,94.16227,0,0,0,34.65-21.75l-14.22,18.83a5.53925,5.53925,0,1,0-.23,10.18,5.55517,5.55517,0,0,0,3.07995-7.2,5.41418,5.41418,0,0,0-1.21-1.83l17.79-23.55a3.46431,3.46431,0,0,0,1.12.19,1.47576,1.47576,0,0,0,.21-.01l4.18-.24a3.48759,3.48759,0,0,0,3.27-3.68l-.25-4.18a3.52211,3.52211,0,0,0-.73-1.93l12.4-16.85a5.39018,5.39018,0,0,0,1.29.97,1.46439,1.46439,0,0,0,.72.19,1.53,1.53,0,0,0,1.32-.78,1.50982,1.50982,0,0,0-.6-2.04,2.52,2.52,0,0,1-.56-4.05,2.62881,2.62881,0,0,1,1.8-.72,2.56978,2.56978,0,0,1,2.15,1.26,1.50153,1.50153,0,0,0,2.59-1.52Zm-49.69,63.18a2.536,2.536,0,0,1-3.3-1.41,2.50989,2.50989,0,0,1,.02-1.94,2.53873,2.53873,0,0,1,1.39-1.36,2.61214,2.61214,0,0,1,.94-.18,2.57729,2.57729,0,0,1,1.16.28,2.63131,2.63131,0,0,1,.49.33,2.52815,2.52815,0,0,1-.7,4.28Zm26.44-33.01a.46536.46536,0,0,1-.32995.16l-4.18.25a.52543.52543,0,0,1-.51-.45l-.24-4.18a.49721.49721,0,0,1,.12-.35.50748.50748,0,0,1,.33-.16l4.18005-.24c.01,0,.02-.01.03-.01a.44923.44923,0,0,1,.31.13.454.454,0,0,1,.17.33l.24,4.18A.46283.46283,0,0,1,224.41,155.83Z" }),
    react_default.a.createElement("path", { fill: fillColorClass2, d: "M180.23438,146.542H120.07764a10.53565,10.53565,0,0,1-10.52393-10.52344V57.81445A10.53565,10.53565,0,0,1,120.07764,47.291h46.26025a8.96139,8.96139,0,0,1,6.36719,2.63037l15.40039,15.3457a9.08758,9.08758,0,0,1,2.65234,6.38965v64.36181A10.53523,10.53523,0,0,1,180.23438,146.542ZM120.07764,50.291a7.53206,7.53206,0,0,0-7.52393,7.52343v78.2041a7.53206,7.53206,0,0,0,7.52393,7.52344h60.15674a7.532,7.532,0,0,0,7.52343-7.52344V71.65674a6.06561,6.06561,0,0,0-1.77051-4.26514L170.58789,52.04639a5.98281,5.98281,0,0,0-4.25-1.75537Z" }),
    react_default.a.createElement("g", { "data-name": "cloud lg", id: "cloud_lg" },
        react_default.a.createElement("g", { "data-name": "cloud lg", id: "cloud_lg-2" },
            react_default.a.createElement("g", { "data-name": "cloud lg", id: "cloud_lg-3" },
                react_default.a.createElement("path", { fill: fillColorClass1, d: "M168.39941,109.08691h0l-39.24511-.002c-5.93164,0-8.6333-4.19238-8.6333-8.08789a8.92618,8.92618,0,0,1,2.8999-6.12353,7.90459,7.90459,0,0,1,3.72949-1.99268,10.402,10.402,0,0,1,2.82178-8.3999,12.64347,12.64347,0,0,1,11.66211-3.72119,14.83,14.83,0,0,1,14.12158-9.66748h.084a13.59409,13.59409,0,0,1,10.502,5.043,13.10683,13.10683,0,0,1,3.02148,9.146c6.38672,1.208,10.42774,5.87158,10.42774,12.22656C179.791,106.00293,172.97852,109.08691,168.39941,109.08691ZM128.61768,95.72412a4.65525,4.65525,0,0,0-3.15088,1.34375,5.98729,5.98729,0,0,0-1.9458,3.9292c0,.52051.1582,5.08789,5.6333,5.08789l39.24511.002c2.90235,0,8.39161-1.793,8.39161-8.5791,0-5.35693-3.46-8.89306-9.25391-9.45947a1.50064,1.50064,0,0,1-1.3252-1.78857,9.9507,9.9507,0,0,0-2.19531-8.2295,10.6053,10.6053,0,0,0-8.19043-3.938c-9.30517-.04883-11.64941,8.45117-11.74609,8.8125a1.50033,1.50033,0,0,1-1.8418,1.05957,9.88561,9.88561,0,0,0-10.06543,2.55517,7.07605,7.07605,0,0,0-1.74658,7.21582,1.49971,1.49971,0,0,1-1.51758,1.999C128.81006,95.72705,128.71338,95.72412,128.61768,95.72412Z" })))),
    react_default.a.createElement("path", { fill: fillColorClass2, d: "M173.8457,124.85254H126.73145a1,1,0,0,1,0-2H173.8457a1,1,0,0,1,0,2Z" }),
    react_default.a.createElement("path", { fill: fillColorClass2, d: "M173.8457,132.90527H126.73145a1,1,0,1,1,0-2H173.8457a1,1,0,0,1,0,2Z" }),
    react_default.a.createElement("path", { fill: fillColorClass2, d: "M221.39453,26.20117H198.07812a1,1,0,0,1,0-2h23.31641a1,1,0,0,1,0,2Z" }),
    react_default.a.createElement("path", { fill: fillColorClass2, d: "M212.06348,30.7583H198.07812a1,1,0,0,1,0-2h13.98536a1,1,0,0,1,0,2Z" }),
    react_default.a.createElement("path", { fill: fillColorClass2, d: "M201.80371,48.94824a2.44745,2.44745,0,0,1-.9043-.17431,2.42108,2.42108,0,0,1-1.5332-2.26075V39.83643h-5.96582A5.23855,5.23855,0,0,1,188.168,34.604V19.67383a5.23854,5.23854,0,0,1,5.23242-5.23242h32.66016a5.23855,5.23855,0,0,1,5.23242,5.23242V34.604a5.23856,5.23856,0,0,1-5.23242,5.23243H211.4707L203.56543,48.186A2.41861,2.41861,0,0,1,201.80371,48.94824Zm-8.40332-31.50683a2.23464,2.23464,0,0,0-2.23242,2.23242V34.604a2.23465,2.23465,0,0,0,2.23242,2.23243h7.46582a1.50007,1.50007,0,0,1,1.5,1.5v6.75293l7.37012-7.78418a1.49853,1.49853,0,0,1,1.08887-.46875h15.23535A2.23465,2.23465,0,0,0,228.293,34.604V19.67383a2.23464,2.23464,0,0,0-2.23242-2.23242Z" }),
    react_default.a.createElement("path", { fill: fillColorClass1, d: "M85.6792,41.022a1.5,1.5,0,0,1-1.106-2.51269,89.588,89.588,0,0,1,98.77539-22.88965,1.50036,1.50036,0,0,1-1.09961,2.792A86.58518,86.58518,0,0,0,86.78613,40.53467,1.49617,1.49617,0,0,1,85.6792,41.022Z" }),
    react_default.a.createElement("path", { fill: fillColorClass1, d: "M65.51855,123.88086a1.50045,1.50045,0,0,1-1.44433-1.09863A89.90248,89.90248,0,0,1,60.8125,98.72949c0-2.56152.10938-5.15039.32568-7.69385a1.5,1.5,0,0,1,2.98926.25391c-.209,2.45947-.31494,4.96289-.31494,7.43994a86.90853,86.90853,0,0,0,3.15234,23.25,1.5,1.5,0,0,1-1.44629,1.90137Z" }),
    react_default.a.createElement("path", { fill: fillColorClass1, d: "M167.44043,186.7373a1.49991,1.49991,0,0,1-.28711-2.97168l.48047-.09667a1.4998,1.4998,0,0,1,.59766,2.93945l-.5.10058A1.48326,1.48326,0,0,1,167.44043,186.7373Z" }),
    react_default.a.createElement("path", { fill: fillColorClass1, d: "M150.15723,188.43066h-.28662a1.5,1.5,0,0,1,0-3l.97119-.00293a1.54435,1.54435,0,0,1,1.51269,1.48731,1.50043,1.50043,0,0,1-1.4873,1.51269Zm-8.13379-.37011a1.35379,1.35379,0,0,1-.14014-.00684l-.99365-.0957a1.4999,1.4999,0,1,1,.30371-2.98438l.96631.09375a1.49976,1.49976,0,0,1-.13623,2.99317Zm16.67383-.03809a1.5,1.5,0,0,1-.14063-2.99316c.31934-.03028.63965-.06348.959-.09766a1.49989,1.49989,0,1,1,.32227,2.98242c-.331.03614-.66309.06934-.99609.10156A1.42962,1.42962,0,0,1,158.69727,188.02246Zm-25.42774-1.207a1.51992,1.51992,0,0,1-.28711-.02734l-.979-.19532a1.5,1.5,0,0,1,.59961-2.93945l.95068.18945a1.50006,1.50006,0,0,1-.28418,2.97266Zm-8.58349-2.11914a1.5183,1.5183,0,0,1-.4336-.06348l-.9541-.29394a1.49988,1.49988,0,1,1,.89453-2.86328l.92578.28418a1.50021,1.50021,0,0,1-.43261,2.93652Zm-8.32471-2.97168a1.49933,1.49933,0,0,1-.57569-.11523l-.91943-.38672a1.50047,1.50047,0,0,1,1.17871-2.75977l.89307.377a1.5,1.5,0,0,1-.57666,2.88477Zm-7.98291-3.7959a1.49974,1.49974,0,0,1-.70947-.17871q-.44166-.23877-.87989-.48145a1.5,1.5,0,1,1,1.45606-2.623q.42188.23438.8457.46191a1.50027,1.50027,0,0,1-.7124,2.82129Z" }),
    react_default.a.createElement("path", { fill: fillColorClass1, d: "M100.81689,173.35059a1.497,1.497,0,0,1-.83691-.25586l-.4248-.29a1.49959,1.49959,0,1,1,1.70019-2.47071l.40137.27247a1.50018,1.50018,0,0,1-.83985,2.74414Z" }),
    react_default.a.createElement("g", { "data-name": "user avartar lg", id: "user_avartar_lg" },
        react_default.a.createElement("g", { "data-name": "user avartar lg", id: "user_avartar_lg-2" },
            react_default.a.createElement("path", { fill: fillColorClass3, d: "M236.66,59.37a23.05,23.05,0,1,0,8.22,44.58,4.54642,4.54642,0,0,1-2.86-2.22,19.71223,19.71223,0,0,1-5.36005.74,19.919,19.919,0,0,1-13.62-5.36c1.49-2.48,4.25-3.91,8.24-4.28a3.08916,3.08916,0,0,0,2.68-3.1l-.02-2.34a3.05359,3.05359,0,0,0-.77-1.96A10.88448,10.88448,0,0,1,230.59,78.8a8.31039,8.31039,0,0,1,1.74-5.62,5.79424,5.79424,0,0,1,4.47-1.89,5.6736,5.6736,0,0,1,4.45,1.8,8.40831,8.40831,0,0,1,1.76,5.63,10.68552,10.68552,0,0,1-2.35,6.64,3.09613,3.09613,0,0,0-.78,2.04l.01,2.29a3.09322,3.09322,0,0,0,2.74,3.09,11.9042,11.9042,0,0,1,6.44,2.31h1.57V92.53a14.8315,14.8315,0,0,0-7.67-2.73c-.05,0-.08-.04-.08-.11l-.01-2.31.06-.08a13.6487,13.6487,0,0,0,3.07-8.58,11.35494,11.35494,0,0,0-2.51-7.63,8.62992,8.62992,0,0,0-6.65-2.8h-.06a8.7047,8.7047,0,0,0-6.72,2.92,11.2651,11.2651,0,0,0-2.48,7.65,13.86405,13.86405,0,0,0,3.36,8.58l.01,2.33a.45318.45318,0,0,1-.02.08,15.23353,15.23353,0,0,0-7.24,2.35,10.81229,10.81229,0,0,0-2.76,2.65,20.04607,20.04607,0,1,1,35.77-12.43,20.41986,20.41986,0,0,1-.34,3.69,4.50866,4.50866,0,0,1,2.62,2.02,23.04449,23.04449,0,0,0-22.33-28.76Z" }))),
    react_default.a.createElement("path", { fill: fillColorClass3, d: "M265.79,99.59a1.498,1.498,0,0,1-1.5,1.5h-7.65v7.65a1.5,1.5,0,1,1-3,0v-7.65h-7.66a1.5,1.5,0,0,1,0-3h7.56a.52343.52343,0,0,0,.1-.11V90.44a1.498,1.498,0,0,1,1.5-1.5,1.1245,1.1245,0,0,1,.45.08,1.47625,1.47625,0,0,1,1.05,1.42v7.65h7.65A1.498,1.498,0,0,1,265.79,99.59Z" }),
    react_default.a.createElement("path", { fill: fillColorClass4, d: "M253.54,98.09h.1v-.11A.52343.52343,0,0,1,253.54,98.09Zm0,0h.1v-.11A.52343.52343,0,0,1,253.54,98.09Zm0,0h.1v-.11A.52343.52343,0,0,1,253.54,98.09Zm0,0h.1v-.11A.52343.52343,0,0,1,253.54,98.09Zm0,0h.1v-.11A.52343.52343,0,0,1,253.54,98.09Zm0,0h.1v-.11A.52343.52343,0,0,1,253.54,98.09Z" }),
    react_default.a.createElement("path", { fill: fillColorClass2, d: "M47.936,105.5498a2.277,2.277,0,0,1-1.77588-.85644l-6.3711-7.86524L29.42773,98.32178a2.30222,2.30222,0,0,1-1.97216-3.89014L46.30566,75.21045A2.30191,2.30191,0,0,1,50.251,76.82227v26.42187a2.27738,2.27738,0,0,1-1.53321,2.16992A2.33027,2.33027,0,0,1,47.936,105.5498ZM40.41846,93.72168a1.50119,1.50119,0,0,1,1.16552.55566l5.667,6.9961V78.53125L31.044,95.05762l9.16064-1.3208A1.50419,1.50419,0,0,1,40.41846,93.72168Z" }),
    react_default.a.createElement("path", { fill: fillColorClass2, d: "M75.11035,84.5332H53.751a1.5,1.5,0,0,1,0-3H75.11035A4.14525,4.14525,0,0,0,79.251,77.39258V70.67383a4.14525,4.14525,0,0,0-4.14063-4.14063H30.3916A4.14524,4.14524,0,0,0,26.251,70.67383v6.71875A4.14524,4.14524,0,0,0,30.3916,81.5332H32.751a1.5,1.5,0,0,1,0,3H30.3916A7.14852,7.14852,0,0,1,23.251,77.39258V70.67383A7.14852,7.14852,0,0,1,30.3916,63.5332H75.11035A7.14853,7.14853,0,0,1,82.251,70.67383v6.71875A7.14852,7.14852,0,0,1,75.11035,84.5332Z" }),
    react_default.a.createElement("path", { fill: fillColorClass2, d: "M61.69482,173.03418a4.86913,4.86913,0,0,1-4.81494-4.76856l-.00049-31.38476a4.8143,4.8143,0,0,1,1.40625-3.39941,4.55414,4.55414,0,0,1,3.38721-1.40137c.02588,0,.10205.00195.12793.0039l18.04688-.00293a4.75273,4.75273,0,0,1,3.36621,1.39063l5.64062,5.55469a4.70091,4.70091,0,0,1,1.38867,3.32422v12.40234a1.5,1.5,0,0,1-3,0V142.35254a1.68158,1.68158,0,0,0-.49414-1.18945l-5.644-5.5586a1.77572,1.77572,0,0,0-1.25732-.52344H61.71533a1.86479,1.86479,0,0,0-1.30371.51661,1.83051,1.83051,0,0,0-.53223,1.291V168.2334a1.85,1.85,0,0,0,1.82178,1.80078H76.01953a1.5,1.5,0,0,1,0,3H61.69482Z" }),
    react_default.a.createElement("path", { fill: fillColorClass2, d: "M52.37939,164.21777a1.50007,1.50007,0,0,1-1.5-1.5V131.36523a4.81434,4.81434,0,0,1,1.40625-3.39941,4.70988,4.70988,0,0,1,3.36084-1.40137H73.84766a1.5,1.5,0,0,1,0,3H55.70459a1.7695,1.7695,0,0,0-1.293.51758,1.83052,1.83052,0,0,0-.53223,1.291v31.34472A1.50007,1.50007,0,0,1,52.37939,164.21777Z" }),
    react_default.a.createElement("g", { "data-name": "Line 108", id: "Line_108" },
        react_default.a.createElement("path", { fill: fillColorClass2, d: "M82.77881,155.45508H64.34375a1,1,0,0,1,0-2H82.77881a1,1,0,0,1,0,2Z" })),
    react_default.a.createElement("g", { "data-name": "Line 109", id: "Line_109" },
        react_default.a.createElement("path", { fill: fillColorClass2, d: "M82.77881,150.0332H64.34375a1,1,0,0,1,0-2H82.77881a1,1,0,0,1,0,2Z" })),
    react_default.a.createElement("g", { "data-name": "Line 109", id: "Line_109-2" },
        react_default.a.createElement("path", { fill: fillColorClass2, d: "M74.10352,144.61133H64.34375a1,1,0,0,1,0-2h9.75977a1,1,0,0,1,0,2Z" })),
    react_default.a.createElement("path", { fill: fillColorClass2, d: "M87.49023,58.53809H43.83447a6.71265,6.71265,0,1,1,0-13.4253H87.49023a6.71265,6.71265,0,1,1,0,13.4253ZM43.83447,48.11279a3.71265,3.71265,0,1,0,0,7.4253H87.49023a3.71265,3.71265,0,1,0,0-7.4253Z" }),
    react_default.a.createElement("g", { "data-name": "crosshair sm", id: "crosshair_sm" },
        react_default.a.createElement("g", { "data-name": "crosshair sm", id: "crosshair_sm-2" },
            react_default.a.createElement("path", { fill: fillColorClass2, d: "M37.771,44.44189a1,1,0,0,1-1-1V37.62158a1,1,0,0,1,2,0v5.82031A1.00005,1.00005,0,0,1,37.771,44.44189Z" }),
            react_default.a.createElement("path", { fill: fillColorClass2, d: "M35.10254,47.11035H29.28223a1,1,0,0,1,0-2h5.82031a1,1,0,0,1,0,2Z" }))),
    react_default.a.createElement("path", { fill: fillColorClass1, d: "M97.45,164.51l-1.76,2.81a.97922.97922,0,0,1-.62.45,1.64022,1.64022,0,0,1-.23.02,1.01372,1.01372,0,0,1-.53-.15l-2.81-1.76a.99748.99748,0,1,1,1.06-1.69l.88.55a5.26782,5.26782,0,0,0-5.05-3.78H88.3a5.24109,5.24109,0,0,0-3.81,1.72,1.00164,1.00164,0,0,1-1.48-1.35,7.27369,7.27369,0,0,1,12.33,2.78l.41-.66a1.0017,1.0017,0,1,1,1.7,1.06Z" }),
    react_default.a.createElement("path", { fill: fillColorClass1, d: "M94.27,171.25A7.25209,7.25209,0,0,1,88.66,174.02h-.11a7.27511,7.27511,0,0,1-7.02-5.38l-.5.8a1.00113,1.00113,0,0,1-.85.47,1.04015,1.04015,0,0,1-.53-.15,1.00224,1.00224,0,0,1-.31-1.38l1.75-2.82a1.02189,1.02189,0,0,1,.62994-.44.98162.98162,0,0,1,.75.12L85.29,167a1.0017,1.0017,0,1,1-1.06,1.7l-.75-.47a5.28689,5.28689,0,0,0,9.22,1.78,1.00034,1.00034,0,0,1,1.57,1.24Z" })));
/* harmony default export */ var svgs_EmptyCloudDocsSprk = (EmptyCloudDocsSprk);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/components/svgs/EmptyCloudDocsIlst.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2020 Adobe
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/


const EmptyCloudDocsIlst_DEFAULT_SIZE = {
    width: 306,
    height: 216,
};
const EmptyCloudDocsIlst = ({ height = EmptyCloudDocsIlst_DEFAULT_SIZE.height, width = EmptyCloudDocsIlst_DEFAULT_SIZE.width, className = '', fillColorClass1 = '#b3b3b3', fillColorClass2 = '#1473e6', fillColorClass3 = '#f5f5f5', }) => (react_default.a.createElement("svg", { className: classnames_default()('EmptyCloudDocs', className), id: "EmptyCloudDocsIlst", "data-name": "EmptyCloudDocsIlst", xmlns: "http://www.w3.org/2000/svg", width: width, height: height, viewBox: `0 0 ${width} ${height}` },
    react_default.a.createElement("title", null, "Illustrator Empty Cloud Docs Image"),
    react_default.a.createElement("g", null,
        react_default.a.createElement("path", { fill: fillColorClass1, d: "M232.042,148.294H192.447a1.344,1.344,0,1,1,0-2.688h39.6c.094,0,10.053-.294,10.053-10.051a10.954,10.954,0,0,0-10.953-10.927,10.6,10.6,0,0,0-1.17.061,1.344,1.344,0,0,1-1.474-1.5,12.648,12.648,0,0,0-.042-3.431,12.315,12.315,0,0,0-24.212-.695,1.342,1.342,0,0,1-1.831.961,9.633,9.633,0,0,0-4.435-.719,9.743,9.743,0,0,0-8.558,12.76,1.345,1.345,0,0,1-1.159,1.759,6.389,6.389,0,0,0-5.124,3.429,1.344,1.344,0,0,1-2.383-1.244,9.064,9.064,0,0,1,5.724-4.592A12.435,12.435,0,0,1,202,117.04a15,15,0,0,1,29.113,2.322,15.64,15.64,0,0,1,.164,2.578,13.643,13.643,0,0,1,13.5,13.612c0,6.228-3.371,9.365-6.2,10.9A15.961,15.961,0,0,1,232.042,148.294Z" }),
        react_default.a.createElement("path", { fill: fillColorClass1, d: "M144.277,198.481a1.5,1.5,0,0,1-1.5-1.433l-.312-6.991a1.606,1.606,0,0,1,.009-.24c.37-3.185,1.061-6.353,1.73-9.418,1.122-5.139,2.181-9.994,1.874-14.971a45.516,45.516,0,0,0-.97-6.428c-1.124-5.4-3.782-14.446-5.541-20.436l-.562-1.916a1.318,1.318,0,0,0-.74-.929,1.27,1.27,0,0,0-1.12.158,3.18,3.18,0,0,0-.925.785c-.653.964-.594,2.386-.458,4.01.031.37.428,2.75.779,4.849.66,3.953,1.1,6.6,1.15,7.372a11.931,11.931,0,0,1-2.714,8.489,14.905,14.905,0,0,0-2.48,3.73,8.075,8.075,0,0,0-.643,4.206,1.5,1.5,0,0,1-2.96.489,10.97,10.97,0,0,1,.812-5.793,18.04,18.04,0,0,1,2.964-4.55A8.939,8.939,0,0,0,134.7,153.1c-.047-.685-.665-4.384-1.116-7.084-.491-2.938-.77-4.623-.81-5.093-.134-1.6-.336-4.025.965-5.944a5.919,5.919,0,0,1,1.837-1.659,4.155,4.155,0,0,1,6.311,2.487l.561,1.913c1.772,6.035,4.45,15.156,5.6,20.669a47.9,47.9,0,0,1,1.028,6.853c.333,5.4-.821,10.684-1.937,15.8-.645,2.954-1.311,6.007-1.667,9.006l.306,6.87a1.5,1.5,0,0,1-1.431,1.564C144.322,198.481,144.3,198.481,144.277,198.481Z" }),
        react_default.a.createElement("path", { fill: fillColorClass1, d: "M122.583,202.818a1.5,1.5,0,0,1-1.5-1.5c0-11.108-.466-11.812-1.847-13.9a27.474,27.474,0,0,1-1.635-2.745c-.44-.851-.921-1.688-1.4-2.525-.62-1.081-1.262-2.2-1.82-3.349a16.148,16.148,0,0,1-1.592-7.011V160.6a1.5,1.5,0,0,1,3,0v11.182a13.106,13.106,0,0,0,1.292,5.7c.512,1.059,1.1,2.082,1.722,3.166.5.875,1,1.751,1.464,2.641a24.41,24.41,0,0,0,1.473,2.468c1.819,2.753,2.344,4.057,2.344,15.556A1.5,1.5,0,0,1,122.583,202.818Z" }),
        react_default.a.createElement("path", { fill: fillColorClass2, d: "M152.332,184.9a1.344,1.344,0,1,1,0-2.687c9.258,0,33.108-7.52,43.669-29.861a1.344,1.344,0,0,1,2.431,1.148C188.306,174.919,164.937,184.9,152.332,184.9Z" }),
        react_default.a.createElement("g", null,
            react_default.a.createElement("path", { fill: fillColorClass1, d: "M211.59,95.934a18.237,18.237,0,0,1-1.821-36.383,18.438,18.438,0,0,1,16.5,7.138,1.5,1.5,0,0,1-2.344,1.873,15.488,15.488,0,0,0-13.845-6.027,15.238,15.238,0,1,0,9.048,28.409c4.715-2.665,7.561-7.442,8.018-13.45a1.5,1.5,0,0,1,2.992.227c-.527,6.936-4,12.708-9.534,15.835A18.3,18.3,0,0,1,211.59,95.934Z" }),
            react_default.a.createElement("path", { fill: fillColorClass2, d: "M210.623,84.48a1.344,1.344,0,0,1-.95-.394l-6.646-6.645a1.344,1.344,0,1,1,1.9-1.9l5.695,5.695,19.643-19.643a1.344,1.344,0,1,1,1.9,1.9L211.573,84.086A1.344,1.344,0,0,1,210.623,84.48Z" })),
        react_default.a.createElement("path", { fill: fillColorClass2, d: "M108.861,183.539a1.323,1.323,0,0,1-.471-.086,73.006,73.006,0,0,1-47.173-68.06c0-20.114,9.86-47.841,37.648-59.789a1.344,1.344,0,1,1,1.062,2.469C73.339,69.506,63.906,96.1,63.906,115.393a70.308,70.308,0,0,0,45.427,65.543,1.344,1.344,0,0,1-.472,2.6Z" }),
        react_default.a.createElement("path", { fill: fillColorClass2, d: "M98.076,69.092a1.345,1.345,0,0,1-1.324-1.585l1.915-10.525L88.143,55.066a1.344,1.344,0,1,1,.481-2.644l11.847,2.156a1.344,1.344,0,0,1,1.082,1.563L99.4,67.988A1.343,1.343,0,0,1,98.076,69.092Z" }),
        react_default.a.createElement("g", null,
            react_default.a.createElement("path", { fill: fillColorClass1, d: "M147.37,105.08l8.26-3h1.02a6.833,6.833,0,0,1,2.31.39,6.583,6.583,0,0,1,1.83.93,7.192,7.192,0,0,1,3.09,5.91v2.64a1.5,1.5,0,0,1-3,0v-2.64a4.238,4.238,0,0,0-4.23-4.23Z" }),
            react_default.a.createElement("path", { fill: fillColorClass1, d: "M179.57,124.39l-9.89,27.03a7.78,7.78,0,0,1-7.29,5.1H151.97a1.5,1.5,0,0,1,0-3h10.42a4.775,4.775,0,0,0,4.47-3.13l9.89-27.03a3.173,3.173,0,0,0-2.97-4.28H113.87a4.923,4.923,0,0,0-4.73,3.49L99.7,153a5.054,5.054,0,0,1-9.87-1.54V100.14a7.238,7.238,0,0,1,7.23-7.22h19.56a6.01,6.01,0,0,1,4.3,1.78l7.15,7.15a.787.787,0,0,0,.56.23h5.22l1.09,3h-6.31a3.784,3.784,0,0,1-2.68-1.11l-7.15-7.15a3.054,3.054,0,0,0-2.18-.9H97.06a4.229,4.229,0,0,0-4.23,4.22v51.32a2.063,2.063,0,0,0,2.06,2.06,2.041,2.041,0,0,0,1.95-1.42l9.43-30.42a7.918,7.918,0,0,1,7.6-5.6h59.91a6.174,6.174,0,0,1,5.79,8.31Z" })),
        react_default.a.createElement("path", { fill: fillColorClass1, d: "M130.284,156.516H106.733a1.5,1.5,0,0,1,0-3h23.551a1.5,1.5,0,0,1,0,3Z" }),
        react_default.a.createElement("g", null,
            react_default.a.createElement("path", { fill: fillColorClass3, d: "M174.95,96.66l-15.99,5.81-7.2,2.61-12.17,4.42a4.373,4.373,0,0,1-5.59-2.61l-.66-1.81-1.09-3-17.4-47.81a4.373,4.373,0,0,1,2.61-5.59l12.82-4.66,1.11.99a1.449,1.449,0,0,1-.6.42l-12.82,4.66a2.873,2.873,0,0,0-1.71,3.67l17.59,48.32,1.09,3,.47,1.3a2.87,2.87,0,0,0,3.67,1.71l8.29-3.01,8.26-3,18.81-6.83a2.908,2.908,0,0,0,1.62-1.48,2.87,2.87,0,0,0,.09-2.19l-2.68-7.38a1.475,1.475,0,0,1,.29-1.51l1.12,1,2.68,7.37A4.363,4.363,0,0,1,174.95,96.66Z" }),
            react_default.a.createElement("path", { fill: fillColorClass1, d: "M178.77,95.03a5.823,5.823,0,0,1-3.31,3.04l-14.67,5.33-4.63,1.68-16.05,5.83a5.879,5.879,0,0,1-7.52-3.51l-.84-2.32-1.1-3L113.44,54.79a5.87,5.87,0,0,1,3.51-7.52l12.81-4.66a1.492,1.492,0,0,1,1.63,2.4,1.449,1.449,0,0,1-.6.42l-12.82,4.66a2.873,2.873,0,0,0-1.71,3.67l17.59,48.32,1.09,3,.47,1.3a2.87,2.87,0,0,0,3.67,1.71l8.29-3.01,8.26-3,18.81-6.83a2.908,2.908,0,0,0,1.62-1.48,2.87,2.87,0,0,0,.09-2.19l-2.68-7.38a1.475,1.475,0,0,1,.29-1.51,1.5,1.5,0,0,1,.6-.41,1.513,1.513,0,0,1,1.93.9l2.68,7.37A5.762,5.762,0,0,1,178.77,95.03Z" })),
        react_default.a.createElement("path", { fill: fillColorClass1, d: "M180,30.3,164.91,15.31a7.279,7.279,0,0,0-5.16-2.13H138.42a5.868,5.868,0,0,0-5.86,5.86V75.01a5.868,5.868,0,0,0,5.86,5.86l33.32.03h4.55a5.872,5.872,0,0,0,5.86-5.87V35.49A7.385,7.385,0,0,0,180,30.3Zm-.85,44.73a2.81,2.81,0,0,1-.84,2.03,2.845,2.845,0,0,1-2.02.84l-7.93-.01-29.94-.02a2.859,2.859,0,0,1-2.86-2.86V19.04a2.866,2.866,0,0,1,2.86-2.86h21.33a4.314,4.314,0,0,1,3.05,1.26l15.08,14.99a4.347,4.347,0,0,1,1.27,3.06Z" }),
        react_default.a.createElement("path", { fill: fillColorClass1, d: "M167.8,88.78,143.56,97.6a.829.829,0,0,1-.34.07,1,1,0,0,1-.34-1.94l24.23-8.83a1,1,0,0,1,.69,1.88Z" }),
        react_default.a.createElement("path", { fill: fillColorClass1, d: "M151.95,84.64l-11.47,4.44a1.149,1.149,0,0,1-.36.07,1.012,1.012,0,0,1-.94-.65,1,1,0,0,1,.58-1.29l11.47-4.43a1,1,0,1,1,.72,1.86Z" }),
        react_default.a.createElement("path", { fill: fillColorClass1, d: "M171.867,68.748H145.981a1,1,0,0,1,0-2h25.886a1,1,0,0,1,0,2Z" }),
        react_default.a.createElement("path", { fill: fillColorClass1, d: "M171.867,60.119H145.981a1,1,0,0,1,0-2h25.886a1,1,0,0,1,0,2Z" }))));
/* harmony default export */ var svgs_EmptyCloudDocsIlst = (EmptyCloudDocsIlst);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/svgs/NoConnection.tsx
var NoConnection = __webpack_require__("r+Wy");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/svgs/UserLoggedOut.tsx
var UserLoggedOut = __webpack_require__("0ee7");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/components/svgs/index.ts
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2020 Adobe
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/







// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/Logger.ts
var Logger = __webpack_require__("lmMR");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/start-sync-error-resolve-workflow.tsx + 2 modules
var start_sync_error_resolve_workflow = __webpack_require__("tyPb");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/stores/CDCGlobalStore.ts + 14 modules
var CDCGlobalStore = __webpack_require__("Z4Cq");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/CDOHeader.tsx + 3 modules
var CDOHeader = __webpack_require__("GXLr");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/stores/AssetSelectionStore.ts
var AssetSelectionStore = __webpack_require__("54FZ");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/derive-parent-path.ts
var derive_parent_path = __webpack_require__("gFix");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/components/CloudDocuments.tsx
var CloudDocuments_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;
};
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/



































const INGEST_SUBCATEGORY = 'Cloud Documents';
const SYNC_SUSPENDED_ERROR_TOOLTIP = 'tooltip.syncSuspended.needsAction';
let CloudDocuments_CloudDocuments = class CloudDocuments extends CDOTab["a" /* default */] {
    constructor() {
        var _a, _b;
        super(...arguments);
        this.logger = new Logger["a" /* Logger */](this.constructor.name);
        /**
         * Returns tooltip for an Action that is disabled because the selection
         *   a) has an item that needs sync error resolution
         *   b) it's syncing or sync suspended (via getDisabledTooltipMsgIdSyncSuspended)
         *   c) offline, not cached (via getDisabledTooltipMsgId)
         *
         * This must come before the Actions, or it doesn't work
         */
        this.getDisabledTooltipMsgIdNeedsResolution = (selectionStore) => {
            if (selectionStore.syncErrorResolutionDisabled) {
                return SYNC_SUSPENDED_ERROR_TOOLTIP;
            }
            return this.getDisabledTooltipMsgIdSyncSuspended(selectionStore);
        };
        /**
         * Returns tooltip for an Action that is disabled because the selection
         *   SE) has an item that needs sync error resolution
         *   OO) offline, regardless of cache status (via getDisabledTooltipMsgIdOnlineOnly)
         *   WS) online and syncing (via getDisabledTooltipMsgIdWhileSyncing)
         *
         * This must come before the Actions, or it doesn't work
         */
        // TODO: naming is hard https://jira.corp.adobe.com/browse/CCXCD-6871
        this.getDisabledTooltipMsgIdSEOOWS = (selectionStore) => {
            if (selectionStore.syncErrorResolutionDisabled) {
                return SYNC_SUSPENDED_ERROR_TOOLTIP;
            }
            return (this.getDisabledTooltipMsgIdOnlineOnly() ||
                this.getDisabledTooltipMsgIdWhileSyncing(selectionStore));
        };
        this.importAction = Object(actions["a" /* importActionFactory */])({
            canImport: this.callbacks.canImport,
            promptUserForFileImport: this.callbacks.promptUserForFileImport,
            importFiles: this.callbacks.importFiles,
            getDisabledTooltipMsgId: this.getDisabledTooltipMsgIdOnlineOnly,
            cdoMetrics: this.cdoMetrics,
            docStore: this.docStore,
        });
        this.openAction = Object(actions["b" /* openActionFactory */])({
            canOpenMultiple: this.cdoStore.isFeatureFlagEnabled('enableCloudDocMultiSelectOpen'),
            canOpenItems: this.callbacks.canOpenItems,
            getDisabledTooltipMsgId: this.getDisabledTooltipMsgId,
            onOpenDocuments: this.callbacks.onOpenDocuments,
            startSyncErrorResolutionWorkflow: element => this.startSyncErrorResolutionWorkflow(element),
        });
        this.onRenameSubmit = async (item, newName, onFail) => {
            const element = item;
            const filteredElements = await this.docStore.beforeOp([element], this.callbacks.onBeforeRename);
            if (filteredElements.length > 0) {
                const analyticsValue = metrics["a" /* ActionAnalyticsValue */].Rename;
                const fileExtension = element.fileExtension ? `.${element.fileExtension}` : '';
                const originalName = element.repoName;
                const originalTitle = element.title;
                const parentPath = Object(derive_parent_path["a" /* default */])(element.path);
                this.docStore.renameOp([element], parentPath, `${newName}${fileExtension}`, 
                // TODO: revisit passing old title as "newTitle" -- does this do anything?
                element.title, this.callbacks.onAfterRename, onFail, this.cdoMetrics.getOperationalMetricLogger(analyticsValue), undefined, // correlationId
                // undoOp
                () => {
                    this.docStore.renameOp([element], parentPath, originalName, 
                    // TODO: revisit passing old title as "newTitle" -- does this do anything?
                    originalTitle, this.callbacks.onAfterRename, onFail, this.cdoMetrics.getUndoOperationalMetricLogger(analyticsValue), undefined, // correlationId
                    undefined, // undoOp
                    true // isUndo
                    );
                }, false // isUndo
                );
            }
            else {
                onFail();
            }
        };
        this.onRenameCancel = () => {
            this.cdoMetrics.logUsageMetric({
                ingestSubcategory: INGEST_SUBCATEGORY,
                subtype: CDOMetrics["a" /* default */].getCancelledSubtype(metrics["a" /* ActionAnalyticsValue */].Rename),
                menu: this.cdoMetrics.MenuType.Context,
            });
        };
        this.nameValidator = (newName) => {
            const status = Object(validate_filename["d" /* fileNameValidator */])(newName);
            if (status === validate_filename["c" /* ValidationStatus */].valid) {
                this.docStore.closeToast();
            }
            else {
                const formatMessageValues = status === validate_filename["c" /* ValidationStatus */].invalidChar
                    ? { characters: validate_filename["b" /* VALIDATION_INVALID_CHARS */] }
                    : {};
                this.docStore.openToast({
                    message: `error.rename.${status}`,
                    values: formatMessageValues,
                    variant: 'error',
                });
            }
            return status;
        };
        this.renameBehavior = {
            getDisabledTooltipMsgId: selectionStore => {
                if (Object(AssetSelectionStore["b" /* syncErrorResolutionDisabled */])(selectionStore)) {
                    return this.getDisabledTooltipMsgIdNeedsResolution(selectionStore);
                }
                const { selectedElements } = selectionStore;
                const stopRenameDisable = this.cdoStore.isFeatureFlagEnabled('stopRenameDisable');
                if (!stopRenameDisable && has_rename_disabled(selectedElements)) {
                    // Tell the user to open the document in XD in order to rename
                    return 'tooltip.rename.disabled.sprk';
                }
                return this.getDisabledTooltipMsgIdWhileSyncing(selectionStore);
            },
            onRenameSubmit: this.onRenameSubmit,
            onRenameCancel: this.onRenameCancel,
            nameValidator: this.nameValidator,
            isRenameDisabled: element => {
                const elements = [element];
                if (has_rename_disabled(elements)) {
                    // Legacy XD documents must first be opened before they can be renamed here.
                    this.docStore.openToast({
                        message: 'info.disabled_rename_to_open_item',
                        variant: 'info',
                        action: () => {
                            Object(launch_item["b" /* default */])(elements, this.callbacks.onOpenDocuments);
                        },
                        actionLabelMsgId: Object(launch_item["a" /* canLaunchItems */])(elements, this.callbacks.canOpenItems)
                            ? 'toast.action.disabled_rename_to_open_item'
                            : '',
                    });
                    return true;
                }
            },
        };
        this.pinningAction = new action["d" /* default */]({
            value: action["a" /* CDOActionValue */].Pin,
            label: 'button.pin.header',
            actionMenuLabel: 'button.pin',
            icon: react_default.a.createElement(DownloadFromCloud_default.a, null),
            getDisabledTooltipMsgId: this.getDisabledTooltipMsgIdSEOOWS,
            isVisible: selectionStore => selectionStore.canMakeAvailableOffline,
            execute: async (elements, correlationId) => this.docStore.pinOp(elements, this.callbacks.onAfterPin, this.cdoMetrics.getOperationalMetricLogger(this.pinningAction.analyticsValue), correlationId),
        });
        this.unPinningAction = new action["d" /* default */]({
            value: action["a" /* CDOActionValue */].UnPin,
            label: 'button.unpin.header',
            actionMenuLabel: 'button.unpin',
            icon: react_default.a.createElement(UploadToCloud_default.a, null),
            getDisabledTooltipMsgId: this.getDisabledTooltipMsgIdSEOOWS,
            isVisible: selectionStore => selectionStore.canMakeOnlineOnly,
            execute: async (elements, correlationId) => this.performUnpin(elements, correlationId),
        });
        // NOTE: do not use -- not fully implemented
        this.exportAction = new action["d" /* default */]({
            value: action["a" /* CDOActionValue */].Export,
            label: 'button.download',
            icon: react_default.a.createElement(Download_default.a, null),
            // TODO: only enabled for mimetypes that support download (tbd)
            // https://jira.corp.adobe.com/browse/CCXCD-454
            isVisible: selectionStore => selectionStore.hasOnlyNonFolders && !selectionStore.hasAnyLocalItemsToBeSynced,
            execute: async (elements, correlationId) => {
                // TODO: find downloads directory per OS, remove hard-code URI
                // Jira: https://jira.corp.adobe.com/browse/CCXCD-572
                const destinationUri = '/Users/<userName>/Downloads/';
                return this.docStore.exportOp(elements, destinationUri, this.cdoMetrics.getOperationalMetricLogger(this.exportAction.analyticsValue), correlationId);
            },
        });
        this.archiveAction = new action["d" /* default */]({
            value: action["a" /* CDOActionValue */].Archive,
            label: 'button.delete',
            icon: react_default.a.createElement(Delete_default.a, null),
            isVisible: selectionStore => selectionStore.onlyOneOrMultipleAndNotSyncSuspended,
            getDisabledTooltipMsgId: this.getDisabledTooltipMsgIdNeedsResolution,
            beforeExecute: async (elements) => {
                const { openModalDialog } = this.props;
                const nonEmptyFolders = [];
                const n = elements.length;
                for (let i = 0; i < n; i++) {
                    const el = elements[i];
                    if (el.isFolder) {
                        const folderCollection = this.docStore.getFolder(el.path);
                        if (folderCollection === null || folderCollection === void 0 ? void 0 : folderCollection.elements.length) {
                            nonEmptyFolders.push(el);
                        }
                        else {
                            // if folderCollection.elements.length === 0, we can't know if a document
                            // is about to arrive in the collection, so double-check as if
                            // we didn't get a collection.
                            const isEmpty = await this.docStore.isFolderEmpty(el.path);
                            if (!isEmpty) {
                                nonEmptyFolders.push(el);
                            }
                        }
                    }
                }
                if (nonEmptyFolders.length &&
                    !this.cdoStore.isFeatureFlagEnabled('disableDeleteNonEmptyFolderWarningDialog')) {
                    const parentFolder = await this.docStore.getAssetModelByPath(Object(derive_parent_path["a" /* default */])(nonEmptyFolders[0].path));
                    const response = await openModalDialog(react_default.a.createElement(components_DeleteNonEmptyFolderDialog, { elements: nonEmptyFolders, appName: this.cdoStore.hostProductData.productName, parentFolder: parentFolder, environment: this.cdoStore.imsData.environment }), this.onDialogStateChange);
                    // since the input elements could contain documents, we can't just
                    // return the response from openModalDialog as it will only
                    // return the folders if confirmed.  So we only return
                    // the empty response on cancel and return all elements if confirmed at the end.
                    if (response[0].length === 0) {
                        return response; // don't continue
                    }
                }
                return [elements];
            },
            execute: async (elements, correlationId) => this.performArchive(elements, correlationId),
        });
        this.defaultLaunchMoveModal = async (assets) => {
            const { openModalDialog } = this.props;
            const focusManagementEnabled = this.cdoStore.isFeatureFlagEnabled('focusManagementEnabled');
            const returned = await openModalDialog(
            // Move dialog returns [elements: IAssetModel[], destinationPath: string]
            react_default.a.createElement(components_MoveDialog, { ingestSubcategory: INGEST_SUBCATEGORY, elements: assets, addFolderAction: this.addFolderAction, sourcePath: this.docStore.currentPath, focusManagementEnabled: focusManagementEnabled }), this.onDialogStateChange);
            const destination = returned[1];
            const convertToRepoPath = () => {
                const [empty, ROOT, ROOT_FOLDER] = destination.split('/');
                if (ROOT_FOLDER === constants["q" /* ROOT_FOLDER_PATH */]) {
                    const c = destination.indexOf(`/${constants["q" /* ROOT_FOLDER_PATH */]}`);
                    return destination.substring(c);
                }
                return destination;
            };
            const repoPath = destination ? convertToRepoPath() : undefined;
            return {
                elements: returned[0],
                destination,
                destinationAsset: destination
                    ? {
                        repoPath,
                        isSpaceAsset: false,
                        cloudID: undefined,
                        repositoryID: undefined,
                    }
                    : undefined,
            };
        };
        this.moveAction = new action["d" /* default */]({
            value: action["a" /* CDOActionValue */].Move,
            label: 'button.move',
            icon: react_default.a.createElement(MoveTo_default.a, null),
            isVisible: selectionStore => selectionStore.onlyOneOrMultipleAndNoSyncErrors,
            getDisabledTooltipMsgId: this.getDisabledTooltipMsgIdSEOOWS,
            beforeExecute: async (assets) => {
                const { theme } = this.props;
                const { imsData, hostProductData } = this.cdoStore;
                // warning, this globalStore is only implemented to support Sync Status, and
                // sharing the launchMoveDialog.  So we should not start using other
                // things from this global store at this time.
                const globalStore = Object(CDCGlobalStore["a" /* getCDCGlobalStore */])({ imsData, hostProductData });
                const defaultLaunchMoveDialog = globalStore.hostProductData.launchMoveDialog || this.defaultLaunchMoveModal;
                const { launchMoveDialog = defaultLaunchMoveDialog } = hostProductData;
                const { elements, destinationAsset } = await launchMoveDialog(assets, hostProductData, imsData, theme, undefined, this.callbacks, this.onDialogStateChange);
                return [elements, destinationAsset];
            },
            execute: (elements, correlationId, destinationAsset) => this.performMove(elements, destinationAsset, correlationId),
        });
        this.shareSheetInviteAction = Object(actions["e" /* shareSheetInviteActionFactory */])({
            cdoStore: this.cdoStore,
            onOpenShareSheet: this.callbacks.onOpenShareSheet,
            selectionHasSyncingElements: selectionStore => selectionStore.hasSyncingElements(this.assetSyncStateStore),
        });
        this.shareSheetLinkAction = Object(actions["f" /* shareSheetLinkActionFactory */])({
            cdoStore: this.cdoStore,
            onOpenShareSheet: this.callbacks.onOpenShareSheet,
            selectionHasSyncingElements: selectionStore => selectionStore.hasSyncingElements(this.assetSyncStateStore),
        });
        this.shareSheetAction = Object(actions["d" /* shareSheetActionFactory */])({
            cdoStore: this.cdoStore,
            onOpenShareSheet: this.callbacks.onOpenShareSheet,
            selectionHasSyncingElements: selectionStore => selectionStore.hasSyncingElements(this.assetSyncStateStore),
        });
        this.duplicateAction = new action["d" /* default */]({
            value: action["a" /* CDOActionValue */].Duplicate,
            label: 'button.duplicate',
            icon: react_default.a.createElement(Duplicate_default.a, null),
            isVisible: selectionStore => selectionStore.onlyOneOrMultipleAndNoSyncErrors,
            getDisabledTooltipMsgId: this.getDisabledTooltipMsgIdNeedsResolution,
            execute: async (elements, correlationId) => {
                const filteredElements = await this.docStore.beforeOp(elements, this.callbacks.onBeforeDuplicate);
                // TODO: to undo duplicate safely, we need to get the urn of the duplicates. Deleting by name could cause
                //       the wrong item to be deleted in some edge cases. SAM should make this easy, so at some point,
                //       SAM clients will get the option to undo duplication, but acp-fetch clients won't.
                return this.docStore.duplicateOp(filteredElements, Object(derive_parent_path["a" /* default */])(filteredElements[0].path), this.callbacks.onAfterDuplicate, this.cdoMetrics.getOperationalMetricLogger(this.duplicateAction.analyticsValue), correlationId, this.props.intl.formatMessage({ id: 'action.duplicate.suffix' }));
            },
        });
        this.addFolderAction = new action["d" /* default */]({
            value: action["a" /* CDOActionValue */].CreateNewFolder,
            icon: react_default.a.createElement(FolderAdd_default.a, null),
            isFolderAction: true,
            label: 'button.add-folder',
            analyticsValue: metrics["a" /* ActionAnalyticsValue */].AddFolder,
            getDisabledTooltipMsgId: this.getDisabledTooltipMsgIdOnlineOnly,
            // In CCD, only show add folder button when there are no selections
            isVisible: selectionStore => !this.docStore.hasCloudNotificationErrorStatus && !selectionStore.hasAny,
            beforeExecute: async ([parentFolder]) => {
                const { openModalDialog } = this.props;
                return openModalDialog(react_default.a.createElement(components_AddFolderDialog, { parentPath: parentFolder.path }), this.onDialogStateChange);
            },
            execute: async ([tempElement], correlationId) => {
                const metricLogger = this.cdoMetrics.getOperationalMetricLogger(this.addFolderAction.analyticsValue);
                const { isOrganizer } = this.cdoStore;
                // TODO addFolderOp will never reject its promise, it should use the assetOp's afterOpFailCallback to set
                // a flag so that it does not try to navigate if there's an error. For the MoveDialog, it should pass an
                // onAfterOpFailCallback so that it can know if its add folder action failed.
                // https://jira.corp.adobe.com/browse/CCXCD-2336
                // TODO: to undo addFolder safely, we need to get the urn of the new folder. Deleting by name could cause
                //       the wrong item to be deleted in some edge cases. SAM should make this easy, so at some point,
                //       SAM clients will get the option to undo folder creation, but acp-fetch clients won't.
                await this.docStore.addFolderOp([tempElement], metricLogger, correlationId);
                // if grid/list in UAP, redirect into newly created folder
                if (!isOrganizer) {
                    this.setCurrentPath(tempElement.path);
                }
            },
        });
        this.previewAction = new action["d" /* default */]({
            value: action["a" /* CDOActionValue */].Preview,
            label: 'button.preview',
            icon: react_default.a.createElement(Preview_default.a, null),
            isVisible: selectionStore => selectionStore.hasOnlyNonFolders && !selectionStore.hasAnyLocalItemsToBeSynced,
            execute: async ([element]) => { var _a, _b; return (_b = (_a = this.callbacks).onPreviewDocument) === null || _b === void 0 ? void 0 : _b.call(_a, Object(launch_item["c" /* getLaunchDocInfo */])(element)); },
        });
        this.scheduleAction = Object(actions["c" /* scheduleActionFactory */])({
            canSchedule: (_a = this.callbacks) === null || _a === void 0 ? void 0 : _a.canSchedule,
            getDisabledTooltipMsgId: this.getDisabledTooltipMsgIdOnlineOnly,
            onScheduleDocument: (_b = this.callbacks) === null || _b === void 0 ? void 0 : _b.onScheduleDocument,
        });
        // onSelectionChange returns all Actions that are available for this view, including folder actions,
        // context actions, header actions
        this.onSelectionChange = (selectionStore, allActions, actionHandler) => {
            const { onSelectionChange } = this.props;
            if (onSelectionChange) {
                onSelectionChange(selectionStore, [this.addFolderAction, ...allActions], actionHandler);
            }
        };
        this.fetchMethod = () => {
            this.docStore.fetchCurrentFolderContents();
        };
        this.getDataProps = () => {
            var _a;
            const { currentFolderCollection } = this.docStore;
            return {
                collection: currentFolderCollection,
                elements: (_a = currentFolderCollection === null || currentFolderCollection === void 0 ? void 0 : currentFolderCollection.sortedElements) !== null && _a !== void 0 ? _a : [],
                fetchMethod: this.fetchMethod,
                fetchState: currentFolderCollection === null || currentFolderCollection === void 0 ? void 0 : currentFolderCollection.fetchState,
                viewRootPath: constants["q" /* ROOT_FOLDER_PATH */],
            };
        };
        this.getNonErrorEmptyViewProps = () => {
            const { hostProductData, isOrganizer: isCDO, isSaveAsPicker } = this.cdoStore;
            const { isCurrentFolderRoot, isOnline, coreSyncNotReachable, coreSyncIncompatible } = this.docStore;
            const { elements, collection } = this.getDataProps();
            const { intl } = this.props;
            const { productName } = hostProductData;
            const errorViewProps = this.getErrorViewProps();
            if (errorViewProps) {
                return {
                    // overrideable props
                    helpLink: this.knownIssuesLink,
                    ingestSubcategory: INGEST_SUBCATEGORY,
                    buttons: undefined,
                    ...errorViewProps,
                    productName,
                };
            }
            if (elements.length) {
                return;
            }
            if (isOnline) {
                if (coreSyncNotReachable) {
                    return Object(EmptyView["f" /* coreSyncDownEmptyViewProps */])(intl.locale);
                }
                if (coreSyncIncompatible) {
                    return EmptyView["b" /* CORESYNC_INCOMPATIBLE_EMPTYVIEW_PROPS */];
                }
            }
            /**
             *  empty/trueEmpty   off/online cdo/cdp  root/folder, saveas/open, title/subtitle, app/generic
             *
             *      empty         offline             root                        title
             *      empty         offline             root                        subtitle
             *      empty         offline             folder                      title
             *      empty         offline             folder                      subtitle
             *      empty         online      cdp                 saveas          title
             *      empty         online      cdp                 saveas          subtitle
             *      empty         online      cdp                 open            title           (phxs)
             *      empty         online      cdp                 open            subtitle        (phxs)
             *      empty         online      cdo     root                        title
             *      empty         online      cdo     root                        subtitle
             *      empty         online      cdo     folder                      title
             *      empty         online      cdo     folder                      subtitle
             *      trueEmpty     online      cdo     folder                      title
             *      trueEmpty     online      cdo     folder                      subtitle
             *      trueEmpty     online      cdp     folder      saveas          title
             *      trueEmpty     online      cdp     folder      saveas          subtitle
             *      trueEmpty     online      cdp     folder      open            title
             *      trueEmpty     online      cdp     folder      open            subtitle
             */
            const connection = isOnline ? 'online' : 'offline';
            const context = isCDO ? 'cdo' : 'cdp';
            const mode = isSaveAsPicker ? 'saveas' : 'open';
            const location = isCurrentFolderRoot ? 'root' : 'folder';
            const createNew = isCDO && this.cdoStore.isFeatureFlagEnabled('enableCreateNewInEmptyState');
            // only show create new button if online
            const buttons = createNew && (isOnline || isCurrentFolderRoot) ? ['createnew'] : [];
            // if in a folder, confirm if folder is trueEmpty or is filtering some assets by MIME type and not displaying
            const isFolderTrueEmpty = !isCurrentFolderRoot && isOnline && collection && !collection.elements.length;
            const emptyType = isFolderTrueEmpty
                ? constants["g" /* EmptyViewType */].unfilteredEmpty
                : constants["g" /* EmptyViewType */].filteredEmpty;
            const prefix = `${emptyType}.${connection}.${isOnline ? `${context}.${isCDO ? `${location}` : `${mode}.${location}`}` : `${location}`}`;
            const productId = hostProductData.productId.toLowerCase();
            const EmptyCloudDocsImage = svgs_namespaceObject[`EmptyCloudDocs${productId}`] || EmptyCloudDocs["a" /* default */];
            const image = isOnline ? react_default.a.createElement(EmptyCloudDocsImage, null) : react_default.a.createElement(NoConnection["a" /* default */], null);
            const renderEventMetricSubtype = isCurrentFolderRoot ? 'empty' : 'empty-folder';
            const helpLink = isOnline && isCDO ? this.cloudDocsFaqLink : undefined;
            return {
                image,
                titleId: `${prefix}.title`,
                currentPath: this.docStore.currentPath,
                subtitleId: i18n["a" /* default */].getApplicationSpecificMsgId(intl, `${prefix}.subtitle`, productId),
                ingestSubcategory: INGEST_SUBCATEGORY,
                automationSuffix: 'CLOUD_DOCUMENTS',
                renderEventMetricSubtype,
                buttons,
                helpLink,
                productName,
            };
        };
        this.onBeforeItemClicked = (element) => {
            const { onBeforeItemClicked } = this.props;
            if (element.needsSyncErrorResolution) {
                this.startSyncErrorResolutionWorkflow(element);
                return false;
            }
            if (element.isFolder) {
                this.setCurrentPath(element.path, element.cloudUri);
                return false;
            }
            return onBeforeItemClicked ? onBeforeItemClicked(element) : true;
        };
        this.onPathClick = (path) => {
            this.setCurrentPath(path);
        };
        this.onDismissOnboardBanner = () => {
            this.docStore.setHasSeenCdoOnboardBanner(true);
        };
        // CDOView validates that the target is not part of the selection, and the dragged item is a one of ours.
        this.isValidDropTarget = (element) => element.isFolder && this.docStore.isOnline;
        this.onItemDrop = async (destElement, dragState, e) => {
            e.stopPropagation();
            if (dragState.dragSource === drag_utils["d" /* DragSource */].IMPORT) {
                try {
                    this.performImport(dragState.dragFiles, destElement);
                }
                catch (err) {
                    this.logger.error(err);
                }
            }
            else if (dragState.dragSource === drag_utils["d" /* DragSource */].CDO) {
                const elements = dragState.selectionStore.selectedElements;
                const usageMetricLogger = this.cdoMetrics.getUsageMetricLogger(this.moveAction, INGEST_SUBCATEGORY);
                usageMetricLogger.start(elements, this.cdoMetrics.EventType.Drag, this.cdoMetrics.MenuType.DragFolder);
                await this.performMove(elements, {
                    repoPath: destElement.path,
                    isSpaceAsset: false,
                    cloudID: destElement.cloudID,
                    repositoryID: undefined,
                }, usageMetricLogger.correlationId);
                usageMetricLogger.success();
            }
        };
        this.onDragTimerEnd = (element) => {
            if (element.isFolder) {
                this.setCurrentPath(element.path);
                this.cdoMetrics.logItemViewMetric({
                    ingestSubcategory: INGEST_SUBCATEGORY,
                    element,
                    itemViewEventType: this.cdoMetrics.ItemViewEventType.DragNav,
                });
            }
        };
        this.onViewDrop = (dragState) => {
            if (dragState.dragSource === drag_utils["d" /* DragSource */].IMPORT) {
                try {
                    // NOTE: only works with SAM currently, by design
                    this.performImport(dragState.dragFiles, this.docStore.currentFolderCollection.assetModel);
                    return true;
                }
                catch (err) {
                    this.logger.error(err);
                    return false;
                }
            }
            if (dragState.dragSource === drag_utils["d" /* DragSource */].CDO) {
                const elements = dragState.selectionStore.selectedElements;
                const { currentPath } = this.docStore;
                // Only accept if the elements being dragged all came from a different folder
                if (elements.some(a => Object(derive_parent_path["a" /* default */])(a.path) === currentPath)) {
                    return false;
                }
                const usageMetricLogger = this.cdoMetrics.getUsageMetricLogger(this.moveAction, INGEST_SUBCATEGORY);
                usageMetricLogger.start(elements, this.cdoMetrics.EventType.Drag, this.cdoMetrics.MenuType.DragView);
                this.performMove(elements, {
                    repoPath: currentPath,
                    isSpaceAsset: false,
                    cloudID: undefined,
                    repositoryID: undefined,
                }, usageMetricLogger.correlationId).then(() => usageMetricLogger.success());
                return true;
            }
            return false;
        };
        this.onExternalDrop = async (dragState, dropTargetData) => {
            const elements = dragState.selectionStore.selectedElements;
            const { dropContext, dropPath, dropIndex } = dropTargetData;
            let usageMetricLogger;
            const dragEventType = this.cdoMetrics.EventType.Drag;
            const dropPathAssetDescriptor = {
                repoPath: dropPath,
                isSpaceAsset: false,
                cloudID: undefined,
                repositoryID: undefined,
            };
            if (dropContext === drag_utils["b" /* CDODropContext */].SideNav) {
                if (dropPath === constants["a" /* ARCHIVE_FOLDER_PATH */]) {
                    // Drop from Cloud Documents to Deleted
                    usageMetricLogger = this.cdoMetrics.getUsageMetricLogger(this.archiveAction, INGEST_SUBCATEGORY);
                    usageMetricLogger.start(elements, dragEventType, metrics["e" /* MenuType */].DragSideNav);
                    await this.performArchive(elements, usageMetricLogger.correlationId);
                    usageMetricLogger.success();
                }
                else if (dropPath === constants["q" /* ROOT_FOLDER_PATH */]) {
                    // Drop from Cloud Documents subfolder to Cloud Documents root folder
                    usageMetricLogger = this.cdoMetrics.getUsageMetricLogger(this.moveAction, INGEST_SUBCATEGORY);
                    usageMetricLogger.start(elements, dragEventType, metrics["e" /* MenuType */].DragSideNav);
                    await this.performMove(elements, dropPathAssetDescriptor, usageMetricLogger.correlationId);
                    usageMetricLogger.success();
                }
                return;
            }
            if (dropContext === drag_utils["b" /* CDODropContext */].Breadcrumb) {
                usageMetricLogger = this.cdoMetrics.getUsageMetricLogger(this.moveAction, INGEST_SUBCATEGORY);
                usageMetricLogger.start(elements, dragEventType, metrics["e" /* MenuType */].DragBreadcrumb);
                await this.performMove(elements, dropPathAssetDescriptor, usageMetricLogger.correlationId);
                usageMetricLogger.success();
                return;
            }
            if (dropContext === drag_utils["b" /* CDODropContext */].Shortcuts) {
                usageMetricLogger = this.cdoMetrics.getUsageMetricLogger(this.moveAction, INGEST_SUBCATEGORY);
                usageMetricLogger.start(elements, dragEventType, metrics["e" /* MenuType */].DragShortcut);
                await this.performMove(elements, dropPathAssetDescriptor, usageMetricLogger.correlationId);
                usageMetricLogger.success();
            }
            if (dropContext === drag_utils["b" /* CDODropContext */].ShortcutsEmptySpace) {
                // TODO: add usage metric
                this.callbacks.addToFavourites(elements, dropIndex);
            }
        };
        this.onViewDragEnter = (e, dragState) => {
            var _a, _b;
            (_b = (_a = this.callbacks) === null || _a === void 0 ? void 0 : _a.onDragOverAsset) === null || _b === void 0 ? void 0 : _b.call(_a, this.docStore.currentFolderCollection.assetModel, e, dragState.dragSource);
        };
        this.onViewDragLeave = (e, dragState) => {
            var _a, _b;
            (_b = (_a = this.callbacks) === null || _a === void 0 ? void 0 : _a.onDragLeaveCDO) === null || _b === void 0 ? void 0 : _b.call(_a, e, dragState.dragSource);
        };
        this.onAssetDragEnter = (element, e, dragState) => {
            var _a, _b;
            (_b = (_a = this.callbacks) === null || _a === void 0 ? void 0 : _a.onDragOverAsset) === null || _b === void 0 ? void 0 : _b.call(_a, element, e, dragState.dragSource);
        };
        this.onAssetDragLeave = (element, e, dragState) => {
            var _a, _b;
            (_b = (_a = this.callbacks) === null || _a === void 0 ? void 0 : _a.onDragOverAsset) === null || _b === void 0 ? void 0 : _b.call(_a, this.docStore.currentFolderCollection.assetModel, e, dragState.dragSource);
        };
    }
    get tabConfig() {
        return {
            tabName: 'CloudDocuments',
            ingestSubcategory: INGEST_SUBCATEGORY,
        };
    }
    performImport(files, destinationFolder) {
        if (this.callbacks.canImport) {
            if (!this.callbacks.canImport()) {
                return;
            }
        }
        const usageMetricLogger = this.cdoMetrics.getUsageMetricLogger(this.importAction, INGEST_SUBCATEGORY);
        this.cdoMetrics.logUsageMetric({
            ingestSubcategory: INGEST_SUBCATEGORY,
            type: metrics["c" /* EventType */].Click,
            subtype: metrics["a" /* ActionAnalyticsValue */].Import,
            count: files ? files.length : 0,
            menu: metrics["e" /* MenuType */].Desktop,
        });
        this.importAction.execute([destinationFolder], usageMetricLogger.correlationId, files);
    }
    // eslint-disable-next-line react/sort-comp
    async performUnpin(elements, correlationId) {
        const { analyticsValue } = this.unPinningAction;
        const filteredElements = await this.docStore.beforeOp(elements, this.callbacks.onBeforeUnpin);
        return this.docStore.unPinOp(filteredElements, this.callbacks.onAfterUnpin, this.cdoMetrics.getOperationalMetricLogger(analyticsValue), correlationId);
    }
    // eslint-disable-next-line react/sort-comp
    async performArchive(elements, correlationId) {
        const { analyticsValue } = this.archiveAction;
        const filteredElements = await this.docStore.beforeOp(elements, this.callbacks.onBeforeDelete, this.callbacks.getOpenCloudDocuments);
        return this.docStore.archiveOp(filteredElements, this.callbacks.onAfterDelete, this.cdoMetrics.getOperationalMetricLogger(analyticsValue), correlationId, 
        // undoOp
        () => {
            this.docStore.restoreOp(filteredElements, this.callbacks.onAfterRestore, this.cdoMetrics.getUndoOperationalMetricLogger(analyticsValue), correlationId, undefined, // undoOp
            true // isUndo
            );
        }, false // isUndo
        );
    }
    async performMove(elements, destinationAsset, correlationId) {
        const filteredElements = await this.docStore.beforeOp(elements, this.callbacks.onBeforeMove);
        if (!filteredElements.length) {
            return;
        }
        const { analyticsValue } = this.moveAction;
        const originalParentPath = Object(derive_parent_path["a" /* default */])(filteredElements[0].path);
        return this.docStore.moveOp(filteredElements, destinationAsset, this.callbacks.onAfterMove, this.cdoMetrics.getOperationalMetricLogger(analyticsValue), correlationId, 
        // undoOp
        () => {
            this.docStore.moveOp(filteredElements, {
                repoPath: originalParentPath,
                isSpaceAsset: false,
                cloudID: undefined,
                repositoryID: undefined,
            }, this.callbacks.onAfterMove, this.cdoMetrics.getUndoOperationalMetricLogger(analyticsValue), correlationId, undefined, // undoOp
            true // isUndo
            );
        }, false // isUndo
        );
    }
    /**
     * Set the docStore currentPath and call callback if provided.
     * @param newPath
     */
    setCurrentPath(newPath, uri) {
        const { onCurrentPathChanged } = this.props;
        this.docStore.setCurrentPath(newPath, uri);
        onCurrentPathChanged === null || onCurrentPathChanged === void 0 ? void 0 : onCurrentPathChanged(newPath);
    }
    get allAvailableActions() {
        return [
            this.openAction,
            this.cdoStore.isFeatureFlagEnabled('openShareSheet') && this.shareSheetInviteAction,
            this.cdoStore.isFeatureFlagEnabled('openShareSheet') && this.shareSheetLinkAction,
            this.cdoStore.isFeatureFlagEnabled('enableShareSheetAction') && this.shareSheetAction,
            this.duplicateAction,
            this.isFoldersEnabled() && this.moveAction,
            this.cdoStore.isFeatureFlagEnabled('enableCloudDocExport') && this.exportAction,
            this.archiveAction,
            this.cdoStore.isFeatureFlagEnabled('enableCloudDocPinning') && this.pinningAction,
            this.cdoStore.isFeatureFlagEnabled('enableCloudDocPinning') && this.unPinningAction,
            this.cdoStore.isFeatureFlagEnabled('enableCloudDocPreview') && this.previewAction,
            this.cdoStore.isFeatureFlagEnabled('enableCloudDocImport') && this.importAction,
            this.cdoStore.isFeatureFlagEnabled('enableCloudDocSchedule') && this.scheduleAction,
        ].filter(Boolean);
    }
    isFoldersEnabled() {
        return this.cdoStore.isFeatureFlagEnabled('enableCloudDocFolders');
    }
    get assetsWebLink() {
        return Object(urls["b" /* assetsWebUrl */])(this.cdoStore.imsData.environment);
    }
    get cloudDocsFaqLink() {
        const { intl } = this.props;
        if (this.cdoStore.hostProductData.onboardingHelpJumpToken) {
            return Object(urls["c" /* cloudDocsFaqGoUrl */])(this.cdoStore.hostProductData.onboardingHelpJumpToken);
        }
        return Object(urls["d" /* cloudDocsFaqUrl */])(intl.locale, this.cdoStore.hostProductData.productName);
    }
    get knownIssuesLink() {
        const { intl } = this.props;
        return Object(urls["g" /* knownIssuesUrl */])(intl.locale, this.cdoStore.hostProductData);
    }
    startSyncErrorResolutionWorkflow(element) {
        const { openModalDialog, callbacks, intl } = this.props;
        Object(start_sync_error_resolve_workflow["b" /* default */])({
            element,
            openModalDialog,
            callbacks,
            intl,
            docStore: this.docStore,
            cdoMetrics: this.cdoMetrics,
            ingestSubcategory: INGEST_SUBCATEGORY,
            openToast: options => this.docStore.openToast(options),
        });
    }
    get commonItemProps() {
        return {
            renderBadge: this.itemBadgeRenderer,
        };
    }
    get gridItemProps() {
        const enablePerformanceMetrics = this.cdoStore.isFeatureFlagEnabled('enablePerformanceMetrics');
        return {
            metadataFormat: this.gridMetadataFormat,
            enablePerformanceMetrics,
            ...this.commonItemProps,
        };
    }
    get listItemProps() {
        return {
            metadataFormat: this.listMetadataFormat,
            ...this.commonItemProps,
        };
    }
    get cdoViewConfig() {
        return {
            dragDisabled: false,
            resetSelectionOnPathChange: true,
            onItemDrop: this.onItemDrop,
            onViewDragEnter: this.onViewDragEnter,
            onViewDragLeave: this.onViewDragLeave,
            onViewDrop: this.onViewDrop,
            onAssetDragEnter: this.onAssetDragEnter,
            onAssetDragLeave: this.onAssetDragLeave,
            onExternalDrop: this.onExternalDrop,
            onDragTimerEnd: this.onDragTimerEnd,
            isValidDropTarget: this.isValidDropTarget,
            renameBehavior: this.cdoStore.isFeatureFlagEnabled('enableCloudDocRename') && this.renameBehavior,
            // ICDOPassthroughProps
            onSelectionChange: this.onSelectionChange,
            onBeforeItemClicked: this.onBeforeItemClicked,
        };
    }
    // TODO: DELETE (https://jira.corp.adobe.com/browse/CCXCD-10752)
    // as a getter for testing convenience
    get renameAction() {
        // @ts-ignore renameAction is private
        const getRenameAction = () => { var _a, _b; return (_b = (_a = this._cdoViewRef) === null || _a === void 0 ? void 0 : _a.current) === null || _b === void 0 ? void 0 : _b['renameAction']; };
        return this.cdoStore.isFeatureFlagEnabled('enableCloudDocRename')
            ? getRenameAction
            : undefined;
    }
    // TODO: DELETE (https://jira.corp.adobe.com/browse/CCXCD-10752)
    get headerActions() {
        return [this.renameAction, ...this.allAvailableActions].filter(Boolean);
    }
    renderBanner() {
        const { hasSeenCdoOnboardBanner } = this.docStore;
        const { isOrganizer } = this.cdoStore;
        const { elements } = this.getDataProps();
        const onboardingBannerProps = {
            onDismissOnboardBanner: this.onDismissOnboardBanner,
            productId: this.cdoStore.hostProductData.productId.toLowerCase(),
            learnMoreLink: this.cloudDocsFaqLink,
        };
        const showBanner = this.cdoStore.isFeatureFlagEnabled('enableOnboarding') &&
            !hasSeenCdoOnboardBanner &&
            elements.length > 0 &&
            isOrganizer;
        return showBanner && react_default.a.createElement(components_OnboardingBanner, Object.assign({}, onboardingBannerProps));
    }
    renderHeader() {
        const { isTabViewPicker } = this.cdoStore;
        const { currentPath } = this.docStore;
        const foldersEnabled = this.isFoldersEnabled();
        const currentFolderActions = [
            foldersEnabled && !isTabViewPicker && this.addFolderAction,
            !isTabViewPicker &&
                this.cdoStore.isFeatureFlagEnabled('enableCloudDocImport') &&
                this.importAction,
        ].filter(Boolean);
        const headerInfoTooltip = {
            bodyId: 'header.infoPopover.body',
            link: this.assetsWebLink,
        };
        return (react_default.a.createElement(CDOHeader["a" /* default */], Object.assign({}, {}, { currentPath: foldersEnabled && currentPath, onPathClick: this.onPathClick, currentFolderActions: currentFolderActions, showInfoIcon: this.cdoStore.isOrganizer, infoTooltip: headerInfoTooltip })));
    }
};
CloudDocuments_CloudDocuments = CloudDocuments_decorate([
    Object(index_module["d" /* inject */])('cdoStore', 'callbacks', 'metrics', 'openModalDialog', 'assetSyncStateStore', 'selectionStore', 'theme'),
    index_module["e" /* observer */]
], CloudDocuments_CloudDocuments);
/* harmony default export */ var components_CloudDocuments = __webpack_exports__["a"] = (Object(CDOReactIntlTyped["e" /* injectIntl */])(CloudDocuments_CloudDocuments));
const CloudDocumentsForTests = CloudDocuments_CloudDocuments.wrappedComponent;



/***/ }),

/***/ "kM6X":
/***/ (function(module) {

module.exports = JSON.parse("{\"close\":\"Lukk\",\"error\":\"Feil\",\"info\":\"Informasjon\",\"success\":\"Vellykket\",\"warning\":\"Advarsel\"}");

/***/ }),

/***/ "kPpj":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _AccessRequests = __webpack_require__("BWox");

var _AccessRequests2 = _interopRequireDefault(_AccessRequests);

var _Client = __webpack_require__("aETk");

var _Client2 = _interopRequireDefault(_Client);

var _Collaboration = __webpack_require__("vo4/");

var _Collaboration2 = _interopRequireDefault(_Collaboration);

var _Collaborators = __webpack_require__("gyt0");

var _Collaborators2 = _interopRequireDefault(_Collaborators);

var _Invitations = __webpack_require__("T/Fd");

var _Invitations2 = _interopRequireDefault(_Invitations);

var _Resources = __webpack_require__("+CSc");

var _Resources2 = _interopRequireDefault(_Resources);

var _AccessRequestsService = __webpack_require__("CdqW");

var _AccessRequestsService2 = _interopRequireDefault(_AccessRequestsService);

var _CapabilitiesService = __webpack_require__("8EpC");

var _CapabilitiesService2 = _interopRequireDefault(_CapabilitiesService);

var _CollaborationService = __webpack_require__("VUR+");

var _CollaborationService2 = _interopRequireDefault(_CollaborationService);

var _CollaborationsService = __webpack_require__("r3se");

var _CollaborationsService2 = _interopRequireDefault(_CollaborationsService);

var _InvitationService = __webpack_require__("zjuh");

var _InvitationService2 = _interopRequireDefault(_InvitationService);

var _ResourcesService = __webpack_require__("lA+9");

var _ResourcesService2 = _interopRequireDefault(_ResourcesService);

var _ShareContentService = __webpack_require__("Wvmx");

var _ShareContentService2 = _interopRequireDefault(_ShareContentService);

var _ShareService = __webpack_require__("g+Pt");

var _ShareService2 = _interopRequireDefault(_ShareService);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
} // NEW DAO DEPENDED CLASSES

/**
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe Inc. and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe Inc.
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Inc.
 */


exports.default = {
  AccessRequests: _AccessRequests2.default,
  Client: _Client2.default,
  Collaboration: _Collaboration2.default,
  Collaborators: _Collaborators2.default,
  Invitations: _Invitations2.default,
  Resources: _Resources2.default,
  // NEW DAO DEPENDED CLASSES
  AccessRequestsService: _AccessRequestsService2.default,
  CapabilitiesService: _CapabilitiesService2.default,
  CollaborationService: _CollaborationService2.default,
  CollaborationsService: _CollaborationsService2.default,
  InvitationService: _InvitationService2.default,
  ResourcesService: _ResourcesService2.default,
  ShareContentService: _ShareContentService2.default,
  ShareService: _ShareService2.default
};
module.exports = exports['default'];

/***/ }),

/***/ "kTiW":
/***/ (function(module, exports, __webpack_require__) {

module.exports = __webpack_require__("NegM");

/***/ }),

/***/ "kVK+":
/***/ (function(module, exports) {

/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */
exports.read = function (buffer, offset, isLE, mLen, nBytes) {
  var e, m;
  var eLen = nBytes * 8 - mLen - 1;
  var eMax = (1 << eLen) - 1;
  var eBias = eMax >> 1;
  var nBits = -7;
  var i = isLE ? nBytes - 1 : 0;
  var d = isLE ? -1 : 1;
  var s = buffer[offset + i];
  i += d;
  e = s & (1 << -nBits) - 1;
  s >>= -nBits;
  nBits += eLen;

  for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {}

  m = e & (1 << -nBits) - 1;
  e >>= -nBits;
  nBits += mLen;

  for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {}

  if (e === 0) {
    e = 1 - eBias;
  } else if (e === eMax) {
    return m ? NaN : (s ? -1 : 1) * Infinity;
  } else {
    m = m + Math.pow(2, mLen);
    e = e - eBias;
  }

  return (s ? -1 : 1) * m * Math.pow(2, e - mLen);
};

exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
  var e, m, c;
  var eLen = nBytes * 8 - mLen - 1;
  var eMax = (1 << eLen) - 1;
  var eBias = eMax >> 1;
  var rt = mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0;
  var i = isLE ? 0 : nBytes - 1;
  var d = isLE ? 1 : -1;
  var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0;
  value = Math.abs(value);

  if (isNaN(value) || value === Infinity) {
    m = isNaN(value) ? 1 : 0;
    e = eMax;
  } else {
    e = Math.floor(Math.log(value) / Math.LN2);

    if (value * (c = Math.pow(2, -e)) < 1) {
      e--;
      c *= 2;
    }

    if (e + eBias >= 1) {
      value += rt / c;
    } else {
      value += rt * Math.pow(2, 1 - eBias);
    }

    if (value * c >= 2) {
      e++;
      c /= 2;
    }

    if (e + eBias >= eMax) {
      m = 0;
      e = eMax;
    } else if (e + eBias >= 1) {
      m = (value * c - 1) * Math.pow(2, mLen);
      e = e + eBias;
    } else {
      m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);
      e = 0;
    }
  }

  for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}

  e = e << mLen | m;
  eLen += mLen;

  for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}

  buffer[offset + i - d] |= s * 128;
};

/***/ }),

/***/ "kXME":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("path", {
  d: "M27 18.1a8.9 8.9 0 1 0 8.9 8.9 8.9 8.9 0 0 0-8.9-8.9zm0 15.8a6.885 6.885 0 0 1-1-13.7v7.245l3.717 3.717 1.415-1.414L28 26.617V20.2a6.885 6.885 0 0 1-1 13.7z"
}), React.createElement("path", {
  d: "M35.424 14H32V9a1 1 0 0 0-1-1H16.8l-3.5-3.6a1 1 0 0 0-.8-.4H7a3 3 0 0 0-3 3v7H.576a.5.5 0 0 0-.495.571l3.728 14.675a1 1 0 0 0 .969.754h9.584A12.945 12.945 0 0 1 26 14.051V14H6V7a1 1 0 0 1 1-1h5l4 4h14v4.36A12.963 12.963 0 0 1 35.3 17l.616-2.428a.5.5 0 0 0-.492-.572z"
}));

/***/ }),

/***/ "kaHk":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _OpenTransition = _interopRequireDefault(__webpack_require__("UrLY"));

var _Overlay = _interopRequireDefault(__webpack_require__("l11E"));

var _ownerDocument = _interopRequireDefault(__webpack_require__("z9HI"));

var _Portal = _interopRequireDefault(__webpack_require__("I/DW"));

var _UxpPosition = _interopRequireDefault(__webpack_require__("WR0c"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

var _RootCloseWrapper = _interopRequireDefault(__webpack_require__("wewx"));

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

class UxpOverlay extends _Overlay.default {
  constructor(...args) {
    var _temp;

    return _temp = super(...args), this.keydown = e => {
      // https://jira.corp.adobe.com/browse/UXP-10984
      // This is a workaround for Ps not sending keyup events to UXP
      // The hide callback in rootclose wrapper on keyup doesn't work because of the above limitation
      // Escape Key
      if (e.keyCode === 27) {
        this.hide(e);
      }
    }, _temp;
  }

  render() {
    let {
      containerPadding,
      target,
      container = this.getOverlayContainer(target),
      placement,
      offset,
      crossOffset,
      flip,
      boundariesElement = () => (0, _ownerDocument.default)(this).body,
      shouldUpdatePosition,
      rootClose,
      children,
      show,
      onExit,
      onExiting,
      onEnter,
      onEntering,
      autoComplete
    } = this.props; // Don't un-render the overlay while it's transitioning out.

    const mountOverlay = show || !this.state.exited;

    if (!mountOverlay) {
      // Don't bother showing anything if we don't have to.
      return null;
    }

    let child = children; // Position is be inner-most because it adds inline styles into the child,
    // which the other wrappers don't forward correctly.

    child = /*#__PURE__*/_react.default.createElement(_UxpPosition.default, {
      container,
      containerPadding,
      target,
      placement,
      shouldUpdatePosition,
      offset,
      crossOffset,
      flip,
      boundariesElement,
      autoComplete: autoComplete
    }, child); // This animates the child node by injecting props, so it must precede
    // anything that adds a wrapping div.

    child = /*#__PURE__*/_react.default.createElement(_OpenTransition.default, {
      in: show,
      appear: true,
      onExit: onExit,
      onExiting: onExiting,
      onExited: this.onExited,
      onEnter: onEnter,
      onEntering: onEntering,
      onEntered: this.onEntered
    }, child); // This goes after everything else because it adds a wrapping div.

    if (rootClose) {
      child = /*#__PURE__*/_react.default.createElement(_RootCloseWrapper.default, {
        onRootClose: this.hide
      }, child);
    } // Fix: Add role here


    child = /*#__PURE__*/_react.default.createElement("div", {
      onKeyDown: this.keydown
    }, child);
    return /*#__PURE__*/_react.default.createElement(_Portal.default, {
      container: container
    }, child);
  }

}

exports.default = UxpOverlay;

/***/ }),

/***/ "kcGp":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return getAppName; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return getAppData; });
/* harmony import */ var src_applications__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("3UBC");
/* harmony import */ var start_stores_MainStore__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("cCFZ");
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/


function getAppName() {
    /* Product names are not internationalized. Hardcoded map kept here. */
    const productId = {
        AEFT: 'After Effects',
        DRWV: 'Dreamweaver',
        IDSN: 'InDesign',
        ILST: 'Illustrator',
        FLPR: 'Animate',
        MUSE: 'Muse',
        PHXS: 'Photoshop',
        PPRO: 'Premiere Pro',
        LIRM: 'Lightroom',
        SIMU: 'CC App',
        SPRK: 'XD'
    };
    return productId[src_applications__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].id];
}
function getAppData() {
    return {
        appName: getAppName(),
        userName: start_stores_MainStore__WEBPACK_IMPORTED_MODULE_1__["mainStore"].user.UserProfile.firstName,
    };
}
/**
 * Generate the string with template variables replaced with proper values
 *
 * @param message 					{String} message string to be replaced
 * @param optionalFallbackMessage 	{String} fallback message string if variable is null or undefined
 * @return {String} 				Reformatted string with replaced values
 */
function replaceAppData(message, optionalFallbackMessage) {
    /* Add template keys and corresponding values to keys */
    const appData = getAppData();
    let _m = message;
    // check for missing or empty string message
    if (!_m) {
        return optionalFallbackMessage ? replaceAppData(optionalFallbackMessage) : null;
    }
    for (const key in appData) {
        if (!!appData[key] == true) {
            _m = _m.replace(new RegExp(`\{${key}\}`, 'g'), appData[key]);
        }
    }
    // check for failed replacement in message string
    if (/({\w+})/.test(_m)) {
        return optionalFallbackMessage ? replaceAppData(optionalFallbackMessage) : null;
    }
    return _m;
}
/* harmony default export */ __webpack_exports__["a"] = (replaceAppData);


/***/ }),

/***/ "kdvv":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(module) {/* unused harmony export _browserPerformanceTimeOriginMode */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return browserPerformanceTimeOrigin; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return dateTimestampInSeconds; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return timestampInSeconds; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return timestampWithMs; });
/* unused harmony export usingPerformanceAPI */
/* harmony import */ var _node_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("+A1k");
/* harmony import */ var _worldwide_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("rbyU");

 // eslint-disable-next-line deprecation/deprecation

const WINDOW = Object(_worldwide_js__WEBPACK_IMPORTED_MODULE_1__[/* getGlobalObject */ "b"])();
/**
 * An object that can return the current timestamp in seconds since the UNIX epoch.
 */

/**
 * A TimestampSource implementation for environments that do not support the Performance Web API natively.
 *
 * Note that this TimestampSource does not use a monotonic clock. A call to `nowSeconds` may return a timestamp earlier
 * than a previously returned value. We do not try to emulate a monotonic behavior in order to facilitate debugging. It
 * is more obvious to explain "why does my span have negative duration" than "why my spans have zero duration".
 */

const dateTimestampSource = {
  nowSeconds: () => Date.now() / 1000
};
/**
 * A partial definition of the [Performance Web API]{@link https://developer.mozilla.org/en-US/docs/Web/API/Performance}
 * for accessing a high-resolution monotonic clock.
 */

/**
 * Returns a wrapper around the native Performance API browser implementation, or undefined for browsers that do not
 * support the API.
 *
 * Wrapping the native API works around differences in behavior from different browsers.
 */

function getBrowserPerformance() {
  const {
    performance
  } = WINDOW;

  if (!performance || !performance.now) {
    return undefined;
  } // Replace performance.timeOrigin with our own timeOrigin based on Date.now().
  //
  // This is a partial workaround for browsers reporting performance.timeOrigin such that performance.timeOrigin +
  // performance.now() gives a date arbitrarily in the past.
  //
  // Additionally, computing timeOrigin in this way fills the gap for browsers where performance.timeOrigin is
  // undefined.
  //
  // The assumption that performance.timeOrigin + performance.now() ~= Date.now() is flawed, but we depend on it to
  // interact with data coming out of performance entries.
  //
  // Note that despite recommendations against it in the spec, browsers implement the Performance API with a clock that
  // might stop when the computer is asleep (and perhaps under other circumstances). Such behavior causes
  // performance.timeOrigin + performance.now() to have an arbitrary skew over Date.now(). In laptop computers, we have
  // observed skews that can be as long as days, weeks or months.
  //
  // See https://github.com/getsentry/sentry-javascript/issues/2590.
  //
  // BUG: despite our best intentions, this workaround has its limitations. It mostly addresses timings of pageload
  // transactions, but ignores the skew built up over time that can aversely affect timestamps of navigation
  // transactions of long-lived web pages.


  const timeOrigin = Date.now() - performance.now();
  return {
    now: () => performance.now(),
    timeOrigin
  };
}
/**
 * Returns the native Performance API implementation from Node.js. Returns undefined in old Node.js versions that don't
 * implement the API.
 */


function getNodePerformance() {
  try {
    const perfHooks = Object(_node_js__WEBPACK_IMPORTED_MODULE_0__[/* dynamicRequire */ "a"])(module, 'perf_hooks');
    return perfHooks.performance;
  } catch (_) {
    return undefined;
  }
}
/**
 * The Performance API implementation for the current platform, if available.
 */


const platformPerformance = Object(_node_js__WEBPACK_IMPORTED_MODULE_0__[/* isNodeEnv */ "b"])() ? getNodePerformance() : getBrowserPerformance();
const timestampSource = platformPerformance === undefined ? dateTimestampSource : {
  nowSeconds: () => (platformPerformance.timeOrigin + platformPerformance.now()) / 1000
};
/**
 * Returns a timestamp in seconds since the UNIX epoch using the Date API.
 */

const dateTimestampInSeconds = dateTimestampSource.nowSeconds.bind(dateTimestampSource);
/**
 * Returns a timestamp in seconds since the UNIX epoch using either the Performance or Date APIs, depending on the
 * availability of the Performance API.
 *
 * See `usingPerformanceAPI` to test whether the Performance API is used.
 *
 * BUG: Note that because of how browsers implement the Performance API, the clock might stop when the computer is
 * asleep. This creates a skew between `dateTimestampInSeconds` and `timestampInSeconds`. The
 * skew can grow to arbitrary amounts like days, weeks or months.
 * See https://github.com/getsentry/sentry-javascript/issues/2590.
 */

const timestampInSeconds = timestampSource.nowSeconds.bind(timestampSource); // Re-exported with an old name for backwards-compatibility.

const timestampWithMs = timestampInSeconds;
/**
 * A boolean that is true when timestampInSeconds uses the Performance API to produce monotonic timestamps.
 */

const usingPerformanceAPI = platformPerformance !== undefined;
/**
 * Internal helper to store what is the source of browserPerformanceTimeOrigin below. For debugging only.
 */

let _browserPerformanceTimeOriginMode;
/**
 * The number of milliseconds since the UNIX epoch. This value is only usable in a browser, and only when the
 * performance API is available.
 */


const browserPerformanceTimeOrigin = (() => {
  // Unfortunately browsers may report an inaccurate time origin data, through either performance.timeOrigin or
  // performance.timing.navigationStart, which results in poor results in performance data. We only treat time origin
  // data as reliable if they are within a reasonable threshold of the current time.
  const {
    performance
  } = WINDOW;

  if (!performance || !performance.now) {
    _browserPerformanceTimeOriginMode = 'none';
    return undefined;
  }

  const threshold = 3600 * 1000;
  const performanceNow = performance.now();
  const dateNow = Date.now(); // if timeOrigin isn't available set delta to threshold so it isn't used

  const timeOriginDelta = performance.timeOrigin ? Math.abs(performance.timeOrigin + performanceNow - dateNow) : threshold;
  const timeOriginIsReliable = timeOriginDelta < threshold; // While performance.timing.navigationStart is deprecated in favor of performance.timeOrigin, performance.timeOrigin
  // is not as widely supported. Namely, performance.timeOrigin is undefined in Safari as of writing.
  // Also as of writing, performance.timing is not available in Web Workers in mainstream browsers, so it is not always
  // a valid fallback. In the absence of an initial time provided by the browser, fallback to the current time from the
  // Date API.
  // eslint-disable-next-line deprecation/deprecation

  const navigationStart = performance.timing && performance.timing.navigationStart;
  const hasNavigationStart = typeof navigationStart === 'number'; // if navigationStart isn't available set delta to threshold so it isn't used

  const navigationStartDelta = hasNavigationStart ? Math.abs(navigationStart + performanceNow - dateNow) : threshold;
  const navigationStartIsReliable = navigationStartDelta < threshold;

  if (timeOriginIsReliable || navigationStartIsReliable) {
    // Use the more reliable time origin
    if (timeOriginDelta <= navigationStartDelta) {
      _browserPerformanceTimeOriginMode = 'timeOrigin';
      return performance.timeOrigin;
    } else {
      _browserPerformanceTimeOriginMode = 'navigationStart';
      return navigationStart;
    }
  } // Either both timeOrigin and navigationStart are skewed or neither is available, fallback to Date.


  _browserPerformanceTimeOriginMode = 'dateNow';
  return dateNow;
})();


/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("3UD+")(module)))

/***/ }),

/***/ "kekF":
/***/ (function(module, exports) {

/**
 * Creates a unary function that invokes `func` with its argument transformed.
 *
 * @private
 * @param {Function} func The function to wrap.
 * @param {Function} transform The argument transform.
 * @returns {Function} Returns the new function.
 */
function overArg(func, transform) {
  return function (arg) {
    return func(transform(arg));
  };
}

module.exports = overArg;

/***/ }),

/***/ "kgL9":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(process) {/* unused harmony export NavigationContext */
/* unused harmony export ANALYTICS */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return XD; });
/* harmony import */ var _ApplicationBase__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("r6Pq");
/* harmony import */ var _SAMApplicationBase__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("8uZ+");
/* harmony import */ var src_assets_Banner_Default_2x_png__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("2bk+");
/* harmony import */ var src_assets_Banner_Default_2x_png__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(src_assets_Banner_Default_2x_png__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var src_assets_Banner_Editors_2x_png__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("3PIf");
/* harmony import */ var src_assets_Banner_Editors_2x_png__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(src_assets_Banner_Editors_2x_png__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var src_assets_Banner_Links_2x_png__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("lhgn");
/* harmony import */ var src_assets_Banner_Links_2x_png__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(src_assets_Banner_Links_2x_png__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var src_assets_Banner_PDF_2x_png__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("JAEG");
/* harmony import */ var src_assets_Banner_PDF_2x_png__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(src_assets_Banner_PDF_2x_png__WEBPACK_IMPORTED_MODULE_5__);
/* harmony import */ var src_assets_Banner_Video_2x_png__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("Aa4J");
/* harmony import */ var src_assets_Banner_Video_2x_png__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(src_assets_Banner_Video_2x_png__WEBPACK_IMPORTED_MODULE_6__);
/* harmony import */ var src_assets_Banner_Spaces_2x_png__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("HUu9");
/* harmony import */ var src_assets_Banner_Spaces_2x_png__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(src_assets_Banner_Spaces_2x_png__WEBPACK_IMPORTED_MODULE_7__);
/* harmony import */ var _ccx_ccx_cdo__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("t+6E");
/* harmony import */ var _ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__("iMIL");
/* harmony import */ var _ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_9__);
/* harmony import */ var src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__("cCFZ");
/* harmony import */ var src_assets_xd_file_icon_png__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__("9pE+");
/* harmony import */ var src_assets_xd_file_icon_png__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(src_assets_xd_file_icon_png__WEBPACK_IMPORTED_MODULE_11__);
/* harmony import */ var src_js_iaw_imsBridge__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__("Mqyo");
/* harmony import */ var iaw_platform__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__("lKWN");
/* harmony import */ var src_js_start_stores_RecentFilesStore__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__("s0Tu");
/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__("2vnA");
/* harmony import */ var _react_react_spectrum_Icon_DeleteOutline__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__("bI7j");
/* harmony import */ var _react_react_spectrum_Icon_DeleteOutline__WEBPACK_IMPORTED_MODULE_16___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Icon_DeleteOutline__WEBPACK_IMPORTED_MODULE_16__);
/* harmony import */ var _react_react_spectrum_Icon_DocumentOutline__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__("zTix");
/* harmony import */ var _react_react_spectrum_Icon_DocumentOutline__WEBPACK_IMPORTED_MODULE_17___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Icon_DocumentOutline__WEBPACK_IMPORTED_MODULE_17__);
/* harmony import */ var _react_react_spectrum_Icon_Link__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__("QsLt");
/* harmony import */ var _react_react_spectrum_Icon_Link__WEBPACK_IMPORTED_MODULE_18___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Icon_Link__WEBPACK_IMPORTED_MODULE_18__);
/* harmony import */ var _react_react_spectrum_Icon_UserGroup__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__("FykI");
/* harmony import */ var _react_react_spectrum_Icon_UserGroup__WEBPACK_IMPORTED_MODULE_19___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Icon_UserGroup__WEBPACK_IMPORTED_MODULE_19__);
/* harmony import */ var src_ProjectsWrapper_ProjectsStoreUtils__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__("fFHZ");
/* harmony import */ var src_components_start_CCXToastInterface__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__("24zS");
/* harmony import */ var _components_RefreshProjectsController__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__("9J+8");
/* harmony import */ var _CDPLocationHook__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__("hfog");
/* harmony import */ var _components_start_constants__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__("/0Ih");
/* harmony import */ var src_components_CloudDocsInitErrorDialog__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__("3g3H");
/* harmony import */ var src_js_start_ReplaceAppDataTemplates__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__("kcGp");
/* harmony import */ var src_components_ModalController__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__("NAo7");
/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__("VIzJ");
/* harmony import */ var src_debounce__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__("5u51");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_30___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_30__);
/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__("i8i4");
/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_31___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_31__);
/* harmony import */ var _components_helpers_DisposerManager__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__("JdbT");
/* harmony import */ var _LoggerWrapper_Logger__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__("43WE");
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
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;
};
var __metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};


// @ts-ignore

// @ts-ignore

// @ts-ignore

// @ts-ignore

// @ts-ignore

// @ts-ignore




// @ts-ignore

// @ts-ignore























const MOCK_DATE = 99999;
var FeatureFlags;
(function (FeatureFlags) {
    FeatureFlags["ccProjects"] = "ccProjects";
    FeatureFlags["cloudDocumentSAMHomeScreen"] = "cloudDocumentSAMHomeScreen";
    FeatureFlags["welcomeScreenStarterBanner"] = "welcomeScreenStarterBanner";
    FeatureFlags["spacesMonetization"] = "spacesMonetization";
    FeatureFlags["emitResiliencyInitiative"] = "emitResiliencyInitiative";
    FeatureFlags["assetsTransferViaSimpleCopy"] = "assetsTransferViaSimpleCopy";
})(FeatureFlags || (FeatureFlags = {}));
var AppEvent;
(function (AppEvent) {
    AppEvent["ANALYTICS_SESSION_STARTED"] = "ANALYTICSSESSIONSTARTED";
    AppEvent["APP_AWAKE_INVOKED"] = "APPAWAKEINVOKED";
    AppEvent["APP_SLEEP_INVOKED"] = "APPSLEEPINVOKED";
    AppEvent["CONFIRM_UPGRADE"] = "CONFIRMUPGRADE";
    AppEvent["USER_SUBSCRIPTION_UPDATED"] = "USERSUBSCRIPTIONUPDATED";
    AppEvent["HOME_SCREEN_INVOKED"] = "HOMESCREENINVOKED";
    AppEvent["LANGUAGE_CHANGE_INVOKED"] = "LANGUAGECHANGEINVOKED";
    AppEvent["NEW_DOCUMENT_INVOKED"] = "NEWDOCUMENTINVOKED";
    AppEvent["OPEN_SPACES_VIEW"] = "OPENSPACESVIEW";
    AppEvent["PAYWALL_LIMIT_REACHED"] = "PAYWALLLIMITREACHED";
    AppEvent["REMOVE_PAYWALL_FOR_FEATURE"] = "REMOVEPAYWALLFORFEATURE";
    AppEvent["SHARE_SHEET_CALLBACK"] = "SHARESHEETCALLBACK";
    AppEvent["SHOW_OVERLAY_VIEW"] = "SHOWOVERLAYVIEW";
    AppEvent["UPDATE_MRU_INVOKED"] = "UPDATEMRUINVOKED";
    AppEvent["UPDATE_QUOTA_INVOKED"] = "UPDATEQUOTAINVOKED";
    AppEvent["WINDOW_DISMISSED"] = "WINDOWDISMISSED";
    AppEvent["WINDOW_SHOW"] = "WINDOWSHOW";
    AppEvent["FEATURE_FLAGS_UPDATED"] = "FEATUREFLAGSUPDATED";
    AppEvent["CDO_TOKEN_FETCHED"] = "CDOTOKENFETCHED";
    AppEvent["HOMESCREEN_TOKEN_FETCHED"] = "HOMESCREENTOKENFETCHED";
    AppEvent["ENABLE_PROJECTS"] = "ENABLEPROJECTS";
    AppEvent["DISABLE_PROJECTS"] = "DISABLEPROJECTS";
    AppEvent["ACPL_INIT_DONE"] = "ACPLINITDONE";
    AppEvent["ACPL_INIT_FAILED"] = "ACPLINITFAILED";
})(AppEvent || (AppEvent = {}));
var ShareSheetCallback;
(function (ShareSheetCallback) {
    ShareSheetCallback["COLLABORATOR_COUNT"] = "collaboratorCountUpdate";
    ShareSheetCallback["INVITE_SENT"] = "inviteSent";
    ShareSheetCallback["MESSAGE_REQUEST"] = "messageRequest";
    ShareSheetCallback["PERMISSION_REVOKED"] = "permissionRevoked";
    ShareSheetCallback["ON_CLOSE"] = "onClose";
})(ShareSheetCallback || (ShareSheetCallback = {}));
var NavigationContext;
(function (NavigationContext) {
    NavigationContext["HOME_SCEEN"] = "Home screen";
    NavigationContext["CDO"] = "Cloud Documents";
    NavigationContext["CDO_SWY"] = "Shared with you";
    NavigationContext["CDO_DELETED"] = "Deleted";
    NavigationContext["TEAM"] = "Team";
    NavigationContext["SPACE"] = "Space";
    NavigationContext["SPACE_FOLDER"] = "Space Folder";
})(NavigationContext || (NavigationContext = {}));
// goURL constants
const GOURL_BASE = 'https://www.adobe.com/go/';
const CLOUD_DOCS_TROUBLESHOOT = 'xd_cloud_docs_troubleshoot';
const LEARN_HUB_GOURL = 'https://www.adobe.com/go/xd_learn_redirect_learnhub';
// Analytics Constants
const ANALYTICS = {
    CATEGORIES: {
        CLOUD_DOCS: ['cloudDocs', 'CloudDocs'],
        CCT_TRIAL: 'cctTrial',
        DOCUMENT: ['document', 'Document'],
        HOME: 'home',
        MONETIZATION: ['monetization', 'Monetization'],
        NAVIGATION: 'navigation',
        WELCOME_SCREEN: 'welcomeScreen',
        STARTER_FILES: 'starterFiles',
    },
    SUBCATEGORIES: {
        CAROUSEL: 'carousel',
        CREATE: ['create', 'Create'],
        DISCOVER: ['discover', 'discover'],
        LEFT_NAV: 'leftNav',
        OTHER: ['other', 'Other'],
        STANDARD_TOUT: 'standardTout',
        LICENSE: 'license',
        TRIAL_PERIOD: 'trialPeriod',
        SUCCESS: 'success',
        USE: 'use',
    },
    EVENTS: {
        CC_SPACES_OPENED: ['CCSpacesOpened', 'CCSpacesOpened', 'CCSpacesOpened'],
        CLICK_TO_UPGRADE: ['clickToUpgrade', 'click', 'click-to-upgrade'],
        CLOUD_DOC_CREATED: ['cloudDocumentCreated', 'cloudDocumentCreated', 'cloudDocumentCreated'],
        DOC_NEW_DEFAULT_TEMPLATE: [
            'documentNewDefaultTemplate',
            'documentNewDefaultTemplate',
            'documentNewDefaultTemplate',
        ],
        DOC_CREATED: ['documentCreated', 'documentCreated', 'documentCreated'],
        LEARN_TAB_CLICKED: 'learnClicked',
        OPEN_LOCAL_INTERSTITIAL_SHOWN: 'openLocalInterstitialShown',
        TOUT_CLICKED: 'toutClicked',
    },
    GROUPS: {
        CAROUSEL_INFO: 'carouselInfo',
        CAROUSEL_NAME: 'carousel_name',
        CAROUSEL_CONTENT: 'carousel_content',
        CAROUSEL_ACTION: 'carousel_action',
        TEAM_TRIAL_CHICLET_CLICK: 'trialChicletClick',
        TEAM_TRIAL_USER_MODE: 'trialUserMode',
        NO_OF_DAYS_LEFT: 'numberOfDaysLeft',
        STARTER_FILES: 'starterFiles',
        TEMPLATE_NAME: 'templateName',
    },
};
class XDToastInterface extends src_components_start_CCXToastInterface__WEBPACK_IMPORTED_MODULE_21__[/* default */ "a"] {
    constructor(container) {
        super(container);
        this.starterToastKey = 0;
        this._logger = _LoggerWrapper_Logger__WEBPACK_IMPORTED_MODULE_33__[/* default */ "a"].get('XDToastInterface');
        this.addToast = this.addToast.bind(this);
        this.removeStarterToast = this.removeStarterToast.bind(this);
    }
    // container() returns the reference of the view(window), for which the toast has to be attached.
    addToast(message, options) {
        let isStarterToast = false;
        if ((options === null || options === void 0 ? void 0 : options.toastNameId) && options.toastNameId === 'starterToast') {
            isStarterToast = true;
            options = {
                closable: false,
                variant: 'info',
                timeout: 0,
            };
        }
        const key = super.addToast(message, options);
        if (isStarterToast) {
            this.starterToastKey = key;
        }
        return key;
    }
    removeStarterToast() {
        this._logger.info('[ccx-start-uxp] removeStarterToast called for key ', this.starterToastKey);
        if (this.starterToastKey > 0) {
            super.removeToast(this.starterToastKey);
            this.starterToastKey = -1;
        }
    }
}
class XD extends _SAMApplicationBase__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"] {
    constructor() {
        super();
        this._shouldShowProjectsShareSheetOverlay = false;
        this._showScrollbarOnHome = false;
        this._ccProjectsRuntimeFF = false;
        this._isStarterUser = false;
        this._npsData = undefined;
        this.currentImsData = '';
        this._isACPLInitDone = false;
        this._isACPLInitFailureDialogVisible = false;
        this._disposerManager = new _components_helpers_DisposerManager__WEBPACK_IMPORTED_MODULE_32__[/* default */ "a"]();
        // Stores the currently navigated route in the home screen
        this._navigationContext = NavigationContext.HOME_SCEEN;
        /**
         * XD Starter banner information
         */
        this._paywallLimitReachedEventSource = '';
        /**
         * XD Starter banner information about source for which the banner has to be removed.
         */
        this._removePaywallForEventSource = '';
        // CTA handle provider function for the starter banner items
        // @param : analyticsId - string used for logging banner item specific analytics
        this.getStarterBannerCtaHandle = (analyticsId) => {
            return {
                messageId: 'xd_starter_upgrade_label',
                action: () => {
                    this.handleStarterBannerClick(analyticsId);
                },
            };
        };
        this._starterBannerData = {
            default: {
                titleId: 'xd_starter_banner_default_title',
                descriptionId: 'xd_starter_banner_default_description',
                image: src_assets_Banner_Default_2x_png__WEBPACK_IMPORTED_MODULE_2___default.a,
                cta: this.getStarterBannerCtaHandle(['welcomeScreenBanner', 'Welcome Screen Banner']),
            },
            docInviteLimitReached: {
                titleId: 'xd_starter_banner_invite_limit_title',
                descriptionId: 'xd_starter_banner_invite_limit_description',
                image: src_assets_Banner_Editors_2x_png__WEBPACK_IMPORTED_MODULE_3___default.a,
                cta: this.getStarterBannerCtaHandle(['cloudInviteBanner', 'Cloud Invite Banner']),
            },
            linkSharingLimitReached: {
                titleId: 'xd_starter_banner_share_limit_title',
                descriptionId: 'xd_starter_banner_share_limit_description',
                image: src_assets_Banner_Links_2x_png__WEBPACK_IMPORTED_MODULE_4___default.a,
                cta: this.getStarterBannerCtaHandle(['sharedLinksBanner', 'Shared Links Banner']),
            },
            videoRecordLimitReached: {
                titleId: 'xd_starter_banner_video_limit_title',
                descriptionId: 'xd_starter_banner_video_limit_description',
                image: src_assets_Banner_Video_2x_png__WEBPACK_IMPORTED_MODULE_6___default.a,
                cta: this.getStarterBannerCtaHandle(['recordVideoBanner', 'Record Video Banner']),
            },
            pdfExportLimitReached: {
                titleId: 'xd_starter_banner_pdf_limit_title',
                descriptionId: 'xd_starter_banner_pdf_limit_description',
                image: src_assets_Banner_PDF_2x_png__WEBPACK_IMPORTED_MODULE_5___default.a,
                cta: this.getStarterBannerCtaHandle(['exportPDFBanner', 'Export PDF Banner']),
            },
            spacesLimitReached: {
                titleId: 'xd_starter_banner_projects_title',
                descriptionId: 'xd_starter_banner_projects_description',
                image: src_assets_Banner_Spaces_2x_png__WEBPACK_IMPORTED_MODULE_7___default.a,
                cta: this.getStarterBannerCtaHandle(['welcomeScreenSpacesBanner', 'Welcome Screen Spaces Banner']),
            },
        };
        this.fetchCDOToken = async () => {
            try {
                const userAccessToken = await window.cdoHost.getUserAccessTokenAsync();
                return userAccessToken;
            }
            catch (error) {
                this._logger.log(`[ccx-start-uxp] Unable to fetch user access token ${error}`);
                return '';
            }
        };
        this.handleNPSClose = () => {
            this._npsData = undefined;
            if (this._xdApp) {
                this._xdApp.sendNPSCollectedData(-1, '');
            }
        };
        this.handleNPSSubmit = (score, feedback) => {
            this._npsData = undefined;
            if (this._xdApp) {
                this._xdApp.sendNPSCollectedData(score, feedback);
            }
        };
        this.openTemplateDoc = Object(src_debounce__WEBPACK_IMPORTED_MODULE_29__[/* default */ "a"])((path) => {
            this._xdApp.openTemplateFile(path, false, true);
        }, 500, { leading: true, trailing: false });
        this._xdApp = window.require('xdApp');
        this.onShareSheetCallbackEvent = () => { };
        this.container = this.container.bind(this);
        this.removeStarterUserToast = this.removeStarterUserToast.bind(this);
    }
    // container() returns the reference of the view(window), for which the toast has to be attached.
    container() {
        var _a;
        if ((_a = this._projectsWrapperRef) === null || _a === void 0 ? void 0 : _a.current) {
            return react_dom__WEBPACK_IMPORTED_MODULE_31__["findDOMNode"](this._projectsWrapperRef.current);
        }
        else {
            this._logger.error('projects ref is missing for the XD toast');
        }
        return null;
    }
    set projectsWrapperRef(element) {
        this._projectsWrapperRef = element;
    }
    get projectsWrapperRef() {
        return this._projectsWrapperRef;
    }
    get customToastInterface() {
        return this._customToastInterface;
    }
    async init() {
        await super.init();
        this.initHostProductData();
        /*
         * Recent files are not available until cloud docs init is complete. The homescreen uses the number
         * of recent files to decide the layout stage. We don't want to change the layout once its shown, so
         *  we use 'setArtificialLength' is indicate the expected number of recents (number of recents is
         * not dependent on cloud docs init). We also set the processing state so that a spinner is shown
         * in recents section.
         */
        let numRecentFiles;
        if (!this._isACPLInitDone && this.isEmitResiliencyInitiativeEnabled) {
            // Only consider on-disk local files when ACPL fails
            numRecentFiles = await this.getNumLocalRecents();
        }
        else {
            numRecentFiles = this._xdApp.getNumRecentFiles();
        }
        src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_10__["mainStore"].recentFilesStore.setArtificialLength(numRecentFiles);
        src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_10__["mainStore"].recentFilesStore.setProcessingState(src_js_start_stores_RecentFilesStore__WEBPACK_IMPORTED_MODULE_14__[/* RecentsProcessingState */ "b"].PROCESSING);
        this._customToastInterface = new XDToastInterface(this.container);
        this.updateNPSData();
        this.updateUserStorageStatus();
        this.updateHomeScreenVisibility(true);
        // Get access token which is fetched on launch and stored by host for the current session.
        // We also hook CDO_TOKEN_FETCHED event which is fired when token if fetched or refresehd(after token expiry).
        this.updateProjectsStoreWithAccessToken();
        window.cdoHost.on(AppEvent.ANALYTICS_SESSION_STARTED, () => {
            this.updateAnalyticsSessionId();
        });
        window.cdoHost.on(AppEvent.CONFIRM_UPGRADE, () => {
            this._logger.info(`[monetization] User Subscription status change notification received.`);
            this.updateIsStarterUser();
            if (!this._isStarterUser) {
                this._logger.info('[ccx-start-uxp] removeStarterUserToast called on upgrade successful');
                this.removeStarterUserToast();
            }
        });
        window.cdoHost.on(AppEvent.UPDATE_QUOTA_INVOKED, () => {
            this.updateUserStorageStatus();
        });
        window.cdoHost.on(AppEvent.SHOW_OVERLAY_VIEW, () => {
            this._shouldShowProjectsShareSheetOverlay = true;
        });
        // Register for sleep awake events
        window.cdoHost.on(AppEvent.APP_AWAKE_INVOKED, () => {
            this.setIsSystemAsleep(false);
        });
        window.cdoHost.on(AppEvent.APP_SLEEP_INVOKED, () => {
            this.setIsSystemAsleep(true);
        });
        // Register for feature flag updates
        window.cdoHost.on(AppEvent.FEATURE_FLAGS_UPDATED, () => {
            this._logger.info(`[FEATURE_FLAGS_UPDATED] feature flags updated notification received.`);
            this._ccProjectsRuntimeFF = window.cdoHost.featureEnabled(FeatureFlags.ccProjects);
            this._hostProductData.featureFlags.enableProjects = this.isCloudProjectsEnabled;
            this.updateProjectsStoreWithAccessToken();
        });
        window.cdoHost.on(AppEvent.SHARE_SHEET_CALLBACK, (shareSheetCallbackParams) => {
            const shareSheetParams = JSON.parse(shareSheetCallbackParams);
            if (!shareSheetParams) {
                return;
            }
            let callbackType = shareSheetParams.callback;
            switch (shareSheetParams.callback) {
                case ShareSheetCallback.ON_CLOSE:
                    this._shouldShowProjectsShareSheetOverlay = false;
                    break;
                case ShareSheetCallback.COLLABORATOR_COUNT:
                case ShareSheetCallback.INVITE_SENT:
                case ShareSheetCallback.MESSAGE_REQUEST:
                case ShareSheetCallback.PERMISSION_REVOKED:
                    break;
                default:
                    this._logger.error('[ccx-start-uxp] ShareSheetCallbackEvent is not handled for :', callbackType);
                    callbackType = null;
                    break;
            }
            if (callbackType && this.onShareSheetCallbackEvent) {
                this.onShareSheetCallbackEvent({ type: callbackType });
            }
        });
        // Handle paywall limit reached events from the host
        window.cdoHost.on(AppEvent.PAYWALL_LIMIT_REACHED, (paywallEventSource) => {
            this.handlePaywallLimitReachedEvent(paywallEventSource);
        });
        window.cdoHost.on(AppEvent.REMOVE_PAYWALL_FOR_FEATURE, (paywallEventSource) => {
            this.handleRemovePaywallForFeatureEvent(paywallEventSource);
        });
        window.cdoHost.on(AppEvent.ENABLE_PROJECTS, () => {
            this._hostProductData.featureFlags.enableProjects = this.isCloudProjectsEnabled;
        });
        window.cdoHost.on(AppEvent.DISABLE_PROJECTS, () => {
            this._hostProductData.featureFlags.enableProjects = false;
        });
        window.cdoHost.on(AppEvent.ACPL_INIT_DONE, async () => {
            this._logger.log(`[ccx-start-uxp] Event ACPL_INIT_DONE received`);
            if (this.isEmitResiliencyInitiativeEnabled) {
                this._isACPLInitDone = true;
                if (this._isACPLInitFailureDialogVisible) {
                    // Close the failure modal if it's open
                    this.closeCloudDocsInitFailureModal();
                }
            }
            await this.fetchAndUpdateRecentsWithRenditions();
        });
        window.cdoHost.on(AppEvent.ACPL_INIT_FAILED, async () => {
            // no op when feature flag is disabled,
            // ideally will never be called but added for completion
            if (!this.isEmitResiliencyInitiativeEnabled) {
                return;
            }
            this._logger.log(`[ccx-start-uxp] Event ACPL_INIT_FAILED received`);
            this._isACPLInitDone = false;
            await this.fetchAndUpdateRecentsWithRenditions();
            if (src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_10__["mainStore"].recentFilesStore.processingState === src_js_start_stores_RecentFilesStore__WEBPACK_IMPORTED_MODULE_14__[/* RecentsProcessingState */ "b"].LOCAL_ONLY) {
                this.showCloudDocsInitFailureModal();
            }
        });
        this._disposerManager.register(Object(mobx__WEBPACK_IMPORTED_MODULE_15__[/* observe */ "A"])(src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_10__["mainStore"].user, 'initialized', () => {
            if (src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_10__["mainStore"].user.initialized) {
                this.updateHostProductData();
                this.updateUserStorageStatus();
            }
        }), 'userInitializedObserve');
        this.logComponentsVersion();
    }
    async updateProjectstore() {
        const { sharedStore } = await __webpack_require__("BuQ2");
        const token = await this.fetchCDOToken();
        let imsData = Object(src_ProjectsWrapper_ProjectsStoreUtils__WEBPACK_IMPORTED_MODULE_20__[/* createIMSAppDataForProjects */ "a"])(this.fetchCDOToken);
        if (token) {
            const newData = JSON.stringify(imsData);
            if (this.currentImsData !== newData) {
                this.currentImsData = newData;
                imsData.fetchToken = (token) => {
                    if (token) {
                        return this.fetchCDOToken();
                    }
                    return this.fetchCDOTokenFromCache();
                };
                sharedStore.updateStore({ imsData });
            }
        }
        else {
            this._logger.error(`[Projects] updateProjectstore called with invalid token`);
        }
    }
    async initializeProjects() {
        const { sharedStore } = await __webpack_require__("BuQ2");
        Object(src_ProjectsWrapper_ProjectsStoreUtils__WEBPACK_IMPORTED_MODULE_20__[/* initializeProjectsStore */ "b"])(sharedStore, this.systemLocale, this.shouldDisplayProjectsCoachMarks());
        this.initializeProjectsHostBindings(sharedStore);
    }
    initializeProjectsHostBindings(sharedStore) {
        window.cdoHost.on(AppEvent.WINDOW_SHOW, async () => {
            // Debouncing these events to 1 minute.
            const ONE_MINUTE = 60 * 1000;
            await sharedStore.refreshContent({ refreshTimeout: ONE_MINUTE });
        });
        window.cdoHost.on(AppEvent.UPDATE_MRU_INVOKED, async () => {
            var _a;
            try {
                const rawRecents = await this.getRawRecentFiles();
                if (rawRecents === null || rawRecents === void 0 ? void 0 : rawRecents.length) {
                    let cloud_id;
                    const item = rawRecents[0];
                    if (item.isCloudDoc) {
                        // item.url has this form: https://cc-api-storage.adobe.io/id/urn:aaid:sc:US:a803f34c-3406-463c-92f6-d27c957f6286
                        //     ?repoID=urn:aaid:sc:US:2269baab-5a21-537c-b543-4b11fe3de196
                        //     &spaceName=home
                        //     &spaceId=urn:aaid:sc:US:7dffa72a-b8ec-49e0-a43f-5b1ec4c7c667
                        //     &spaceColor=%2344b556
                        //     &outputFolder=urn:aaid:sc:US:1d1a591e-e090-4c3d-9fdf-7aaa89773c19
                        const url = new URL(item.url);
                        const pathTokens = url.pathname.split('/');
                        cloud_id = pathTokens[pathTokens.length - 1];
                    }
                    const lastModifiedFile = {
                        cloud_id,
                    };
                    (_a = sharedStore.notifyAssetEvent) === null || _a === void 0 ? void 0 : _a.call(sharedStore, lastModifiedFile, 'accessed');
                }
            }
            catch (error) {
                this._logger.log(error);
            }
        });
    }
    async updateAnalyticsSessionId() {
        if (!src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_10__["mainStore"].prefs.sessionGUID) {
            const sessionId = await this.getSessionId();
            if (!sessionId) {
                this._logger.error('getAnalyticsSessionId returned empty session ID');
                return;
            }
            src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_10__["mainStore"].prefs.setSessionGuid(sessionId);
            // Update session GUID in cached host product data (read-only field, so need to re-create)
            this.initHostProductData(true);
        }
    }
    async lateLoad() {
        await super.lateLoad();
        this.updateIsStarterUser();
        window.cdoHost.on(AppEvent.UPDATE_MRU_INVOKED, async () => {
            this.refreshRecents();
        });
        /* 'UPDATEMRUINVOKED' is guauranteed to be called after startup once recent files are available.
         * So this is call is required only for Sidekick reload to work correctly, since in that
         * case 'UPDATEMRUINVOKED' is not called until recents are modified.
         * In the normal startup sequence, 'getLocalRecents' could throw an error when cloud docs init
         * is not complete, in that case we don't want to set the processing state to 'DONE', so we
         * need to pass-in the boolean parameter.
         */
        if (!this._isACPLInitDone && this.isEmitResiliencyInitiativeEnabled) {
            // Only load local disk documents in the beginning if we can't get all
            await this.fetchAndUpdateRecentsWithRenditions();
        }
        else {
            // Although fetchAndUpdateRecentsWithRenditions should suffice but keeping
            // this call to avoid any side effects and preserve historical behavior.
            await this.fetchRecentFilesWithRenditions();
        }
        window.cdoHost.on(AppEvent.HOME_SCREEN_INVOKED, () => {
            src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_10__["mainStore"].navigate('home');
            this.setFocusOnHomeTab();
            this.updateHomeScreenVisibility(true);
        });
        window.cdoHost.on(AppEvent.WINDOW_DISMISSED, () => {
            this.updateHomeScreenVisibility(false);
        });
        window.cdoHost.on(AppEvent.NEW_DOCUMENT_INVOKED, () => {
            src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_10__["mainStore"].navigate('home');
            this.setFocusOnHomeTab();
            this.updateHomeScreenVisibility(true);
        });
        window.cdoHost.on(AppEvent.WINDOW_SHOW, () => {
            this.updateNPSData();
        });
        window.cdoHost.on(AppEvent.OPEN_SPACES_VIEW, (payload) => {
            if (this.isCloudProjectsVisible) {
                this.handleOpenProjectsViewEvent(payload);
            }
            else {
                this._logger.info(`[${AppEvent.OPEN_SPACES_VIEW}] - Projects feature is not enabled`);
            }
        });
        this.updateProjectsStoreWithAccessToken();
        // Register for CDO_TOKEN_FETCHED event, This is fired when ims token is fetched or refresed on its expiry.
        window.cdoHost.on(AppEvent.CDO_TOKEN_FETCHED, () => {
            this._logger.info(`[IMS Token] cdo token fetched notification received.`);
            this.updateProjectsStoreWithAccessToken();
        });
    }
    get shouldShowProjectsShareSheetOverlay() {
        return this._shouldShowProjectsShareSheetOverlay;
    }
    /**
     * Disable search in homescreen
     */
    get isSearchSupported() {
        return false;
    }
    /**
     * Disable Sort, Filter Recent files and Grid/List View in Recents
     * Disable Action Buttons - Create New and Open in Sidebar
     * Setting a circular avatar shape for XD
     * XD Specific CSS Overrides
     */
    get homeScreenDisplayOptions() {
        return {
            showRecentsSortAndFilter: false,
            showRecentsGridListViewButtons: false,
            defaultRecentsSortOrder: _ApplicationBase__WEBPACK_IMPORTED_MODULE_0__[/* RecentsSortOrder */ "a"].none,
            showActionButtons: true,
            showCircularAvatar: true,
            hostAppStyle: 'is-xd',
            showScrollbarOnHome: this._showScrollbarOnHome,
            showScrollbarOnLearn: false,
            filterDuplicateWebTutorialsByURL: true,
            cdoRecentsCardSize: _ccx_ccx_cdo__WEBPACK_IMPORTED_MODULE_8__[/* CardSize */ "e"].Medium,
            showPresetDimensionsInDropdown: true,
            hideCloudStatusIcon: true,
            isStarterBadgeEnabled: true,
            isLicenseChicletEnabled: false,
            cloudStatusOfflineMsgId: 'xd_cloud_status_offline',
            isCloudStatusOfflineIconEnabled: true,
            isCCTeamTrialEnabled: true,
            resetScrollTimeout: 500,
        };
    }
    get homeScreenCarouselOptions() {
        return {
            showCardArrow: false,
            loopCount: 1,
            animationDurationMs: 500,
            offsetPaddingRequired: false,
            animationResetRequired: true,
            isCarouselContainerRequired: false,
            shouldOpenLinkOnClick: true,
        };
    }
    /**
     * Returns whether tab selected to be reset to home tab
     */
    get shouldResetToHomeTab() {
        return true;
    }
    /**
     * Returns whether some part of the IMS initialization could be done late
     */
    get shouldDoIMSLateLoad() {
        return true;
    }
    /**
     * Tells the Start screen what kind
     * of mouse pointer to draw over the Back button.
     */
    get isBackButtonClickable() {
        return false;
    }
    async getSessionId() {
        const sessionId = await this._xdApp.getAnalyticsSessionId();
        return sessionId;
    }
    fetchCDOTokenFromCache() {
        try {
            return window.cdoHost.getUserAccessTokenFromCache();
        }
        catch (error) {
            this._logger.log(`[fetchCDOTokenFromCache] Unable to fetch cached access token: ${error}`);
            return '';
        }
    }
    updateProjectsStoreWithAccessToken() {
        const userAccessToken = this.fetchCDOTokenFromCache();
        if (!userAccessToken) {
            this._logger.info(`[updateProjectsStoreWithAccessToken]: Failed to fetch a valid acces token from cache`);
            return;
        }
        // Update the IMS store with the access token.
        if (this.isCloudProjectsEnabled) {
            this.updateProjectstore();
        }
    }
    async userCloudStorageEnabled() {
        try {
            const enabled = await window.cdoHost.getUserCloudStorageEnabledAsync();
            return enabled;
        }
        catch (error) {
            this._logger.log(`[ccx-start-uxp] Unable to get userCloudStorageEnabled value ${error}`);
            throw error;
        }
    }
    async userCloudStorageWritable() {
        try {
            const writable = await window.cdoHost.getUserCloudStorageWritableAsync();
            return writable;
        }
        catch (error) {
            this._logger.log(`[ccx-start-uxp] Unable to get userCloudStorageWritable value${error}`);
            return '';
        }
    }
    get isNPSEnabled() {
        var _a, _b;
        return !!(this._npsData && ((_a = this._npsData) === null || _a === void 0 ? void 0 : _a['trigger']) && ((_b = this._npsData) === null || _b === void 0 ? void 0 : _b['bucket']));
    }
    get getNPSData() {
        return this._npsData;
    }
    updateNPSData() {
        const data = this._xdApp && this._xdApp.shouldShowNPSDialogFM && this._xdApp.shouldShowNPSDialogFM();
        if (data && data.trigger && data.bucket) {
            this._npsData = data;
        }
    }
    get shouldShowLearnTab() {
        return src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_10__["mainStore"].user.isUserAvailable;
    }
    regionFromLocale(locale) {
        return locale.match(/^[a-z]{2}_[A-Z]{2}$/) ? locale.split('_')[1] : '';
    }
    regionPrefix(locale) {
        return locale === 'en_US' ? '' : '_' + this.regionFromLocale(locale).toLowerCase();
    }
    initHostProductData(reinit) {
        if (this._hostProductData && !reinit) {
            return;
        }
        const xdDocTypeIcons = {
            'application/vnd.adobe.xd.cloudproject+dcx': src_assets_xd_file_icon_png__WEBPACK_IMPORTED_MODULE_11___default.a,
            'application/vnd.adobe.sparkler.project+dcx': src_assets_xd_file_icon_png__WEBPACK_IMPORTED_MODULE_11___default.a,
            default: src_assets_xd_file_icon_png__WEBPACK_IMPORTED_MODULE_11___default.a,
        };
        this._hostProductData = {
            dcxId: window.cdoHost.dcxAppId,
            apiKey: window.cdoHost.apiKey,
            productName: 'XD',
            productId: this.id,
            productVersion: this.version,
            productBuildNumber: this.version,
            productLocation: 'com.adobe.ccx.start',
            platform: this.platform,
            platformVersion: this.osVersion,
            documentFilter: window.cdoHost.documentFilter,
            allowedToSendAnalyticsEvents: true,
            featureFlags: {
                themingSupport: true,
                enableCloudDocFolders: true,
                enableCloudDocMultiSelectOpen: true,
                focusManagementEnabled: true,
                useAdobeReactVirtualized: false,
                enableCloudDocRename: true,
                emptyViewLoggedOutMessage: true,
                renameTooltips: true,
                enableOnboarding: true,
                enableCreateNewInEmptyState: true,
                enableAssetRef: true,
                cdpTabs: true,
                disableACPL: false,
                useSideNavigation: true,
                enableProjects: this.isCloudProjectsVisible,
                enableCloudDocPinning: false,
                enableSAM: window.cdoHost.featureEnabled(FeatureFlags.cloudDocumentSAMHomeScreen),
                importDisableCloudDocumentsTab: true,
                enableFilter: false,
                showSWYCloudStatusIcon: window.cdoHost.featureEnabled('showSWYCloudStatusIcon'),
                useDiscardedSource: window.cdoHost.featureEnabled('useDiscardedSource')
            },
            defaultDocumentIcons: xdDocTypeIcons,
            sessionGuid: src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_10__["mainStore"].prefs.sessionGUID,
            theme: _ccx_ccx_cdo__WEBPACK_IMPORTED_MODULE_8__[/* Themes */ "x"].light,
            uiLocale: this.language,
            analyticsProjectKey: window.cdoHost.analyticsProjectKey,
            onboardingHelpJumpToken: `xd_cloud_docs_getting_started${this.regionPrefix(this.language)}`,
            knownIssuesLink: `${GOURL_BASE}${CLOUD_DOCS_TROUBLESHOOT}${this.regionPrefix(this.language)}`,
            minimumCoreSyncVersionRequired: this._xdApp.minimumCoreSyncVersionRequired(),
            xApiKey: window.cdoHost.apiKey,
            appAgentName: window.cdoHost.appAgentName,
            linkableTypes: window.cdoHost.linkableTypes,
            embeddableTypes: window.cdoHost.embeddableTypes,
        };
    }
    get CDOProductData() {
        return this._hostProductData;
    }
    showCloudDocsInitFailureModal() {
        src_components_ModalController__WEBPACK_IMPORTED_MODULE_27__[/* default */ "a"].show(react__WEBPACK_IMPORTED_MODULE_30___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_28__[/* IntlProvider */ "e"], { locale: src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_10__["mainStore"].cdoLocale, messages: src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_10__["mainStore"].messages },
            react__WEBPACK_IMPORTED_MODULE_30___default.a.createElement(src_components_CloudDocsInitErrorDialog__WEBPACK_IMPORTED_MODULE_25__[/* default */ "a"], { onClose: this.closeCloudDocsInitFailureModal.bind(this), appName: Object(src_js_start_ReplaceAppDataTemplates__WEBPACK_IMPORTED_MODULE_26__[/* getAppName */ "c"])() })), undefined, false);
        this._isACPLInitFailureDialogVisible = true;
    }
    closeCloudDocsInitFailureModal() {
        src_components_ModalController__WEBPACK_IMPORTED_MODULE_27__[/* default */ "a"].close();
        this._isACPLInitFailureDialogVisible = false;
    }
    /**
     * Updates the host recent files post the fetch recents operation and sets
     * the processing state accordingly
     */
    updateRecents(recentFiles) {
        this._recentFiles = recentFiles;
        if (!this._isACPLInitDone && this.isEmitResiliencyInitiativeEnabled) {
            // When we don't have ACPL asset context we will work in local only mode.
            this.setRecentsProcessingState(src_js_start_stores_RecentFilesStore__WEBPACK_IMPORTED_MODULE_14__[/* RecentsProcessingState */ "b"].LOCAL_ONLY);
        }
        else {
            this.setRecentsProcessingState(src_js_start_stores_RecentFilesStore__WEBPACK_IMPORTED_MODULE_14__[/* RecentsProcessingState */ "b"].DONE);
        }
    }
    async getNewRecentsFromHost() {
        let recentsFromHost;
        try {
            recentsFromHost = await this.getRecentFiles();
        }
        catch (error) {
            recentsFromHost = [];
            this._logger.error('[ccx-start-uxp] Failed to fetch recents from host');
        }
        return recentsFromHost;
    }
    async refreshRecents() {
        let newRecents = await this.getNewRecentsFromHost();
        const newDocs = newRecents.map(doc => {
            return {
                title: doc.title,
                url: doc.path,
                space: doc.space ? doc.space.spaceName : '',
                transferState: doc.transferState
            };
        });
        const oldDocs = this.recentFiles.map(doc => {
            return {
                title: doc.title,
                url: doc.path,
                space: doc.space ? doc.space.spaceName : '',
                transferState: doc.transferState
            };
        });
        if (JSON.stringify(newDocs) !== JSON.stringify(oldDocs)) {
            this.fetchRenditionsForRecents(newRecents);
            this.updateRecents(newRecents);
        }
        else if (this._recentFiles.length > 0) {
            // Ideally, we would update thumbnails only if doc was modified, but currrently
            // we don't have the modifiedDate (XD-100034), so we'll always refresh just the first doc thumbnail.
            // Not ideal, (eg: if user has multiple files open, thumbnails expect the first in recents won't refresh
            // until the corresponding doc is closed) but this is good enough for normal user scenarios.
            let newDoc = this._recentFiles[0];
            this.fetchDocumentRendition(newDoc);
        }
    }
    /**
     *
     * getNewRecentsFromHost is the same as getRecentFiles but is guarded with try/catch
     * and returns [] as fallback. So using fetchRecentFilesWithRenditions wouldn't exactly
     * be equivalent in case of an error. This API will update this._recentFiles regardless
     * of error.
     *
     * NOTE: this could be merged with fetchRecentFilesWithRenditions in the future depending
     * on the need.
     */
    async fetchAndUpdateRecentsWithRenditions() {
        let documents = await this.getNewRecentsFromHost();
        this.fetchRenditionsForRecents(documents);
        this.updateRecents(documents);
    }
    async fetchRecentFilesWithRenditions() {
        try {
            let documents = await this.getRecentFiles();
            this.fetchRenditionsForRecents(documents);
            this.updateRecents(documents);
        }
        catch (error) {
            this._logger.log('[ccx-start-uxp] Fetching of local recents from host failed during Init phase');
        }
    }
    async getRawRecentFiles() {
        const localRecents = (await window.cdoHost.getLocalRecents());
        return localRecents;
    }
    async getNumLocalRecents() {
        try {
            const localRecents = await this.getRawRecentFiles();
            const numLocalRecents = localRecents.reduce((currCount, doc) => (doc.isCloudDoc ? currCount : currCount + 1), 0);
            return numLocalRecents;
        }
        catch (error) {
            // log the error and fallback gracefully to no-recents view.
            this._logger.error('Error fetching local recents from host: ' + error);
            return 0;
        }
    }
    async updateACPLInitStatusIfPossible() {
        try {
            if (!this._isACPLInitDone && (await this.samAssetContextPromise())) {
                this._isACPLInitDone = true;
                this.refreshRecents();
            }
        }
        catch (error) {
            this._logger.log('Failed to get SAM asset context from host: ' + error);
        }
    }
    async getRecentFiles() {
        try {
            const localRecents = await this.getRawRecentFiles();
            const docsMap = [];
            let samContext;
            let shouldCreateSAMContext = this.enableSAM;
            if (this.isEmitResiliencyInitiativeEnabled) {
                shouldCreateSAMContext = shouldCreateSAMContext && this._isACPLInitDone;
            }
            if (shouldCreateSAMContext) {
                const userCloudStorageWritable = await this.userCloudStorageWritable();
                // Only if user has writable quota check for Asset Context
                if (userCloudStorageWritable) {
                    samContext = await this.samAssetContextPromise();
                }
            }
            else if (this.isEmitResiliencyInitiativeEnabled) {
                this.updateACPLInitStatusIfPossible();
            }
            await Promise.all(localRecents.map(async (doc) => {
                if (this.isEmitResiliencyInitiativeEnabled && !this._isACPLInitDone && doc.isCloudDoc) {
                    return;
                }
                const isRecoveredDoc = doc.recoveredDate && doc.recoveredDate !== '';
                // The docTitle needs to be decoded and normalized.
                let docTitle = decodeURIComponent(doc.title).normalize('NFC');
                if (isRecoveredDoc) {
                    docTitle = docTitle + ' *';
                }
                let typeOfDoc;
                if (isRecoveredDoc) {
                    typeOfDoc = 'recovered';
                }
                else if (doc.isCloudDoc) {
                    typeOfDoc = '';
                }
                else if (doc.isTemplateDoc) {
                    typeOfDoc = 'template';
                }
                else {
                    typeOfDoc = 'local';
                }
                // default options for the asset
                const item = {
                    id: doc.url,
                    externalData: { isCloudDoc: doc.isCloudDoc, canOpen: true, tip: docTitle },
                    path: doc.url,
                    cloudUri: doc.isCloudDoc ? doc.url : undefined,
                    localUri: doc.isCloudDoc ? undefined : doc.url,
                    title: docTitle,
                    modifiedDate: MOCK_DATE,
                    repoModifiedDate: MOCK_DATE,
                    accessDate: MOCK_DATE,
                    createDate: MOCK_DATE,
                    recoveredDate: doc.recoveredDate,
                    renditionTemplate: '',
                    rendition: '',
                    type: typeOfDoc,
                };
                let asset;
                if (this.enableSAM) {
                    if (doc.isCloudDoc) {
                        if (samContext) {
                            asset = await this.getSAMAssetFromDocumentUrl(item.path, item.externalData.canOpen);
                        }
                    }
                    else {
                        asset = new _ccx_ccx_cdo__WEBPACK_IMPORTED_MODULE_8__[/* LocalAssetModel */ "r"](item);
                    }
                }
                else {
                    asset = _ccx_ccx_cdo__WEBPACK_IMPORTED_MODULE_8__[/* Document */ "l"].create(item);
                }
                if (asset) {
                    docsMap[doc.url] = asset;
                }
            }));
            const finalRecents = [];
            localRecents.forEach(doc => {
                if (docsMap[doc.url]) {
                    let recentItem = docsMap[doc.url];
                    if (recentItem) {
                        recentItem.transferState = doc.transferState;
                        finalRecents.push(recentItem);
                    }
                }
            });
            return finalRecents;
        }
        catch (error) {
            this._logger.log('Error fetching local recents from host: ' + error);
            throw error;
        }
    }
    setRecentsProcessingState(state) {
        if (src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_10__["mainStore"].recentFilesStore.processingState !== state) {
            src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_10__["mainStore"].recentFilesStore.setProcessingState(state);
            // We want to keep the recents functional not just on done
            // but even after failure so set for flexible length
            src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_10__["mainStore"].recentFilesStore.setArtificialLength(-1);
        }
    }
    openPreset(presetData) {
        let presetJson = '';
        // Contentful defines the XD Custom preset as {name: "custom", width: 0, height: 0}.
        // If this preset data is passed to XD, it throws an error and doesn't create a document.
        // So, if width or height are not set, send empty preset data to create an empty canvas.
        if (presetData.type !== 'custom' || (presetData.height !== 0 && presetData.width !== 0)) {
            try {
                presetJson = JSON.stringify(presetData);
            }
            catch (error) {
                this._logger.error('[ccx-start-uxp] Failed to parse preset data as JSON');
                return;
            }
        }
        window.cdoHost.newDocument(presetData.type, presetJson, null);
    }
    /**
     * Updates the HostData.
     */
    updateHostProductData() {
        if (src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_10__["mainStore"].user.isFRL) {
            this._logger.info('updating the host data in case of FRL');
            this._hostProductData.allowedToSendAnalyticsEvents = false;
            this._hostProductData.featureFlags.disableACPL = true;
        }
    }
    async fetchRenditionsForRecents(documents) {
        documents.forEach(async (document) => this.fetchDocumentRendition(document));
    }
    async fetchDocumentRendition(document) {
        if (document.externalData && document.externalData.isCloudDoc) {
            if (this.enableSAM) {
                document.getRendition();
            }
            else {
                try {
                    const renditionUrl = await this.cloudDocumentClient().getRendition(document.docUriForACP + '/:rendition{;page,size,version}', // Set the rendition template
                    '', Date.now(), // @TODO Add real modified date when (XD-100034) is fixed
                    undefined, {});
                    document.setRendition(renditionUrl.replace(/%5C/g, '/'));
                    document.setHasFetchedRendition(true);
                    document.setLastRenditionFetchFailed(false);
                }
                catch (error) {
                    this._logger.error(`[ccx-start-uxp] Unable to get cloud doc rendition for ${document.path}, using fallback`);
                    document.setRendition(src_assets_xd_file_icon_png__WEBPACK_IMPORTED_MODULE_11___default.a);
                    document.setHasFetchedRendition(true);
                    document.setLastRenditionFetchFailed(true);
                }
            }
        }
        else {
            try {
                const previewRendition = await window.cdoHost.getUxpPreviewRendition(document.path);
                document.setRendition(previewRendition);
                document.setHasFetchedRendition(true);
            }
            catch (error) {
                this._logger.error(`[ccx-start-uxp] Unable to get local rendition for ${document.path}, using fallback`);
                document.setRendition(src_assets_xd_file_icon_png__WEBPACK_IMPORTED_MODULE_11___default.a);
            }
        }
    }
    async openLocalDocument({ path, title, template }) {
        if (template) {
            // If the document is of type template, then download and open the actual template file
            // using deep link associated with the stubbed template file
            this.openTemplateDoc(path);
        }
        else {
            window.cdoHost.openDocument(path, false);
        }
    }
    async openDocument(item, template = false) {
        if (window.cdoHost.featureEnabled(FeatureFlags.assetsTransferViaSimpleCopy)) {
            try {
                if (item.recoveredDate === '' &&
                    ([_components_start_constants__WEBPACK_IMPORTED_MODULE_24__[/* ASSET_TRANSFER_STATE */ "a"].PROGRESS, _components_start_constants__WEBPACK_IMPORTED_MODULE_24__[/* ASSET_TRANSFER_STATE */ "a"].COMPLETED].includes(item.transferState))) {
                    const resolvedLinkInfo = await window.cdoHost.getResolvedLinkInfoForAsset(item.id);
                    if (resolvedLinkInfo === null || resolvedLinkInfo === void 0 ? void 0 : resolvedLinkInfo.targetAssetId) {
                        const asset = await this.getSAMAssetFromDocumentUrl(resolvedLinkInfo.targetAssetId, true);
                        super.openDocument(asset);
                        return;
                    }
                }
            }
            catch (error) {
                this._logger.log(`[ccx-start-uxp] Error while opening target asset document post simple copy. Error: ${error}`);
                super.openDocument(item, template);
            }
        }
        super.openDocument(item, template);
    }
    /**
     * Gets the list of recent files from the CDO host.
     */
    getCDOLocalRecents() {
        return window.cdoHost.getLocalRecents();
    }
    /**
     * Gets the rendition of the preview for thumbnail.
     */
    getDocumentPreviewRendition(path, type) {
        return window.cdoHost.getUxpPreviewRendition(path);
    }
    openCDODocument(docInfoArray) {
        window.cdoHost.openDocuments(docInfoArray);
    }
    /**
     * CDO op handler for pre/post delete action
     */
    async cdoBeforeDelete(storageUrlArray) {
        if (window.cdoHost.beforeDelete) {
            return window.cdoHost.beforeDelete(storageUrlArray);
        }
    }
    async cdoAfterDelete(storageUrlArray) {
        if (window.cdoHost.afterDelete) {
            return window.cdoHost.afterDelete(storageUrlArray);
        }
    }
    /**
     * CDO op handler for pre/post permanent delete action
     */
    async cdoBeforePermanentDelete(storageUrlArray) {
        if (window.cdoHost.beforePermanentDelete) {
            return window.cdoHost.beforePermanentDelete(storageUrlArray);
        }
    }
    async cdoAfterPermanentDelete(storageUrlArray) {
        if (window.cdoHost.afterPermanentDelete) {
            return window.cdoHost.afterPermanentDelete(storageUrlArray);
        }
    }
    /**
     * CDO op handler for pre/post restore action
     */
    async cdoBeforeRestore(storageUrlArray) {
        if (window.cdoHost.beforeRestore) {
            return window.cdoHost.beforeRestore(storageUrlArray);
        }
    }
    async cdoAfterRestore(storageUrlArray) {
        if (window.cdoHost.afterRestore) {
            return window.cdoHost.afterRestore(storageUrlArray);
        }
    }
    /**
     * CDO op handler for pre/post rename action
     */
    async cdoBeforeRename(storageUrlArray) {
        if (window.cdoHost.beforeRename) {
            return window.cdoHost.beforeRename(storageUrlArray);
        }
    }
    async cdoAfterRename(storageUrlArray) {
        if (window.cdoHost.afterRename) {
            return window.cdoHost.afterRename(storageUrlArray);
        }
    }
    /**
     * CDO op handler for pre/post move action
     */
    async cdoBeforeMove(storageUrlArray) {
        if (window.cdoHost.beforeMove) {
            return window.cdoHost.beforeMove(storageUrlArray);
        }
    }
    async cdoAfterMove(storageUrlArray) {
        if (window.cdoHost.afterMove) {
            return window.cdoHost.afterMove(storageUrlArray);
        }
    }
    /**
     * Checks if reportInteractiveReady event should be sent to host on fallback layout.
     */
    get reportInteractiveReadyOnFallback() {
        return true;
    }
    /**
     * Checks if UAP dialog can be closed or not.
     */
    shouldCloseUAPDialog(pickerAction) {
        return iaw_platform__WEBPACK_IMPORTED_MODULE_13__[/* default */ "a"].isWindows && pickerAction ? pickerAction.action != "switchToOSPicker" || pickerAction.mode == "import" : true;
    }
    /**
     * Checks if Host uses DefaultViewParser to parse the fallback home layout.
     */
    get hasDefaultViewParser() {
        return true;
    }
    /**
     * Sends an event to the product to inform that the home screen is ready
     * to be used/interacted with.
     */
    async reportInteractiveReady() {
        window.cdoHost.reportInteractiveReady();
    }
    /**
     * Doesn't actually launch a new document dialog but creates a new document
     * with the "Web 1920" template which is the most commonly used artboard type.
     */
    async launchNewDocumentDialog(path, isNewFileCTA) {
        const templateType = isNewFileCTA ? 'default' : 'desktop';
        const templateData = {
            name: 'Web 1920',
            type: isNewFileCTA ? 'default' : 'desktop',
            width: 1920,
            height: 1080,
        };
        if (isNewFileCTA) {
            /**
             * Populate the space info details in 'path' argument and pass it to XD when user
             * clicks on "New File" button on HS. This creates a new file directly in space.
             */
            if (this._navigationContext === (NavigationContext.SPACE) ||
                (this._navigationContext === NavigationContext.SPACE_FOLDER)) {
                const { browseSession } = await __webpack_require__("khec");
                const spaceData = await browseSession.currentProject.getSpaceInfo();
                const folderData = browseSession.currentFolder;
                path = JSON.stringify({
                    folder: folderData.assetRef,
                    spaceInfo: spaceData,
                });
            }
            window.cdoHost.newDocument(templateType, JSON.stringify(templateData), path, this._navigationContext);
            // Send the relevant analytics required for the New File CTA
            this.logAnalyticsEvent(ANALYTICS.CATEGORIES.DOCUMENT, ANALYTICS.SUBCATEGORIES.OTHER, ANALYTICS.EVENTS.DOC_NEW_DEFAULT_TEMPLATE);
            this.logAnalyticsEvent(ANALYTICS.CATEGORIES.DOCUMENT, ANALYTICS.SUBCATEGORIES.OTHER, ANALYTICS.EVENTS.DOC_CREATED);
            this.logAnalyticsEvent(ANALYTICS.CATEGORIES.CLOUD_DOCS, ANALYTICS.SUBCATEGORIES.CREATE, ANALYTICS.EVENTS.CLOUD_DOC_CREATED);
        }
        else {
            window.cdoHost.newDocument(templateType, JSON.stringify(templateData), path);
        }
    }
    async launchOpenDocumentDialog() {
        window.cdoHost.openNativePicker(['psd', 'ai', 'sketch', 'xd']);
    }
    /**
     * Additional product specific tabs to be shown to the end user.
     */
    get tabs() {
        const cloudDocsTabs = {
            cdo: {
                order: 1,
                type: _components_start_constants__WEBPACK_IMPORTED_MODULE_24__[/* CDO_TABS */ "c"].CDO,
                label: 'listview_cdo_tab_label',
                indent: false,
                icon: react__WEBPACK_IMPORTED_MODULE_30___default.a.createElement(_react_react_spectrum_Icon_DocumentOutline__WEBPACK_IMPORTED_MODULE_17___default.a, null),
            },
            shared: {
                order: 2,
                type: _components_start_constants__WEBPACK_IMPORTED_MODULE_24__[/* CDO_TABS */ "c"].SHARED_WITH_YOU,
                label: 'xd_shared_tab_label',
                indent: false,
                icon: react__WEBPACK_IMPORTED_MODULE_30___default.a.createElement(_react_react_spectrum_Icon_UserGroup__WEBPACK_IMPORTED_MODULE_19___default.a, null),
            },
            cdo_deleted: {
                order: 5,
                type: _components_start_constants__WEBPACK_IMPORTED_MODULE_24__[/* CDO_TABS */ "c"].DELETED,
                label: 'listview_cdo_deleted_tab_label',
                indent: false,
                icon: react__WEBPACK_IMPORTED_MODULE_30___default.a.createElement(_react_react_spectrum_Icon_DeleteOutline__WEBPACK_IMPORTED_MODULE_16___default.a, null),
            },
        };
        const projectsTab = this.isCloudProjectsVisible
            ? {
                projects: {
                    order: 4,
                    type: 'projects',
                    label: 'listview_projects_tab_label',
                },
            }
            : {};
        const linksTab = {
            links: {
                order: 3,
                type: 'links',
                label: 'xd_manage_links_tab_label',
                indent: false,
                action: () => this.handleManageLinks(),
                icon: react__WEBPACK_IMPORTED_MODULE_30___default.a.createElement(_react_react_spectrum_Icon_Link__WEBPACK_IMPORTED_MODULE_18___default.a, null),
            },
        };
        const cloudTabs = {
            ...cloudDocsTabs,
            ...projectsTab,
            ...linksTab,
        };
        let tabsToShow;
        switch (this._userStorageStatus) {
            // We don't know about the storage type yet so we show both.
            // We'll update the tabs later on quota update.
            case _ApplicationBase__WEBPACK_IMPORTED_MODULE_0__[/* UserStorageType */ "b"].UNKNOWN:
            case _ApplicationBase__WEBPACK_IMPORTED_MODULE_0__[/* UserStorageType */ "b"].CLOUD:
                tabsToShow = {
                    ...cloudTabs,
                };
                break;
            case _ApplicationBase__WEBPACK_IMPORTED_MODULE_0__[/* UserStorageType */ "b"].LOCAL:
                tabsToShow = {};
                break;
            default:
                this._logger.error('Invalid value assigned to userStorageStatus');
                throw 'invalid userStorageStatus value';
        }
        return tabsToShow;
    }
    /**
     * Checks the FF value of ccProjects.
     * If the ff is enabled from the app the value of the ff wont change.
     * If the ff is enabled from floodgate, the value of the ff will chagne during run time
     * and reading from cache takes time in host and we want to re-redner side bar when the ff becomes true.
     */
    get isCloudProjectsEnabled() {
        return window.cdoHost.featureEnabled(FeatureFlags.ccProjects) || this._ccProjectsRuntimeFF;
    }
    /**
     * Check if CC Projects features should be visible. We need to separate the host FF check from the visibility check to optimize loading.
     * If the FF is on, the Projects code should load regardless of the other conditions. The UI should only be visible if all the conditions below are satified.
     */
    get isCloudProjectsVisible() {
        return this.isCloudProjectsEnabled && !src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_10__["mainStore"].user.isChineseUser && !src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_10__["mainStore"].user.isFRL;
    }
    get platform() {
        return window.cdoHost.platform;
    }
    get osVersion() {
        return window.cdoHost.osVersion;
    }
    get enableSAM() {
        if (!this._enableSAM) {
            this._enableSAM = window.cdoHost.featureEnabled(FeatureFlags.cloudDocumentSAMHomeScreen);
        }
        return this._enableSAM;
    }
    cloudDocumentClient() {
        if (!this._cloudDocumentsClient) {
            const imsData = {
                environment: src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_10__["mainStore"].user.isStaging ? 'stage' : 'prod',
                subscriptionType: src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_10__["mainStore"].user.subscriptionStatus,
                fetchToken: async () => await this.fetchCDOToken(),
                fetchUserId: () => src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_10__["mainStore"].user.UserProfile.userId,
                fetchUserEmail: () => src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_10__["mainStore"].user.UserProfile.userEmail,
            };
            this._cloudDocumentsClient = new _ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_9__["CloudDocumentsClient"]({
                imsData,
                hostProductData: this.CDOProductData,
                onNotificationStatusChange: () => { },
                onAssetChange: () => { },
                onAssetSyncEvent: () => { },
                onAnalyticsEvent: () => { },
            });
        }
        return this._cloudDocumentsClient;
    }
    launchSearch() {
        src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_10__["mainStore"].searchStore.setShowSearch(true);
    }
    async updateUserStorageStatus() {
        if (src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_10__["mainStore"].user.isFRL || src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_10__["mainStore"].user.isChineseUser) {
            this._userStorageStatus = _ApplicationBase__WEBPACK_IMPORTED_MODULE_0__[/* UserStorageType */ "b"].LOCAL;
            return;
        }
        try {
            const userCloudStorageEnabled = await this.userCloudStorageEnabled();
            // Is a cloud user
            if (userCloudStorageEnabled) {
                const userCloudStorageWritable = await this.userCloudStorageWritable();
                const { quotaTotal } = this._xdApp.getUserQuota();
                if (quotaTotal === undefined) {
                    // storage quota is unknown
                    this._userStorageStatus = _ApplicationBase__WEBPACK_IMPORTED_MODULE_0__[/* UserStorageType */ "b"].UNKNOWN;
                }
                else if (!userCloudStorageWritable) {
                    // has no storage
                    this._userStorageStatus = _ApplicationBase__WEBPACK_IMPORTED_MODULE_0__[/* UserStorageType */ "b"].LOCAL;
                }
                else if (userCloudStorageWritable) {
                    // has storage
                    this._userStorageStatus = _ApplicationBase__WEBPACK_IMPORTED_MODULE_0__[/* UserStorageType */ "b"].CLOUD;
                }
            }
            else {
                // Is cloud restricted user
                this._userStorageStatus = _ApplicationBase__WEBPACK_IMPORTED_MODULE_0__[/* UserStorageType */ "b"].LOCAL;
            }
        }
        catch (error) {
            // In case of error - dont update the user storage status
            this._logger.log(`[ccx-start-uxp] User storage status update failed. Error: ${error}`);
        }
    }
    openLocalDocuments() {
        window.cdoHost.openDocuments([{ uri: '', isBundled: false }]);
    }
    handleManageLinks() {
        const manageLink = src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_10__["mainStore"].user.isStaging ? 'MANAGE_LINKS_URL_STAGE' : 'MANAGE_LINKS_URL';
        iaw_platform__WEBPACK_IMPORTED_MODULE_13__[/* default */ "a"].openDefaultBrowser(this._xdApp.localizeStringForId(manageLink), src_js_iaw_imsBridge__WEBPACK_IMPORTED_MODULE_12__[/* JumpKey */ "a"].ADOBEACCOUNT_XD);
    }
    handleLearnTabClick() {
        iaw_platform__WEBPACK_IMPORTED_MODULE_13__[/* default */ "a"].openDefaultBrowser(LEARN_HUB_GOURL, src_js_iaw_imsBridge__WEBPACK_IMPORTED_MODULE_12__[/* JumpKey */ "a"].ADOBEACCOUNT_XD);
        this.logAnalyticsEvent(ANALYTICS.CATEGORIES.NAVIGATION, ANALYTICS.SUBCATEGORIES.LEFT_NAV, ANALYTICS.EVENTS.LEARN_TAB_CLICKED);
    }
    /**
     * Returns learn tab data
     */
    // @ts-ignore
    get learnTabData() {
        return {
            content: 'xd_start_learn',
            data: () => this.handleLearnTabClick(),
        };
    }
    /**
     * Checks if starter banner should be shown or not.
     */
    get isStarterBannerEnabled() {
        return window.cdoHost.featureEnabled(FeatureFlags.welcomeScreenStarterBanner) && !src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_10__["mainStore"].user.isChineseUser;
    }
    /**
     * Checks if the Event Messaging Improvements (EMIT Initiative) are enabled.
     */
    get isEmitResiliencyInitiativeEnabled() {
        return window.cdoHost.featureEnabled(FeatureFlags.emitResiliencyInitiative) || false;
    }
    invokeUpgradePlan() {
        this._xdApp.upgradePlan();
    }
    handleCCTeamTrialChiclet(workflow) {
        this._xdApp.handleCCTeamTrialChiclet(workflow);
    }
    /** Handle logging of analytics event via the host
     *  This API can be used to log to both highbeam and ingest
     *   - If only highbeam logging is required - then pass the required highbeam parameters as single strings
     *     Example Usage: logAnalyticsEvent("HBCat","HBSubCat", "HBEvent")
     *
     *   - If both highbeam and ingest logging is required - pass in both highbeam and ingest parameters as an array
     *     of strings ( highbeam param values followed by ingest )
     *     Example Usage: logAnalyticsEvent(["HBCat", "IngestCat"], ["HBSubCat", "IngestSubCat"], ["HBEvent", "IngestEvent", "IngestSubtype"])
     *
     *     Note : For Ingest - eventName must also include the subtype information as the third and last array element
     *  		  In case any of the Ingest parameters are missing : only Highbeam logging will be done
     */
    logAnalyticsEvent(cat, subCat, eventName) {
        this._xdApp.logAnalyticsEvent(cat, subCat, eventName);
    }
    logAnalyticsData(cat, subCat, groupName, dataArray) {
        this._xdApp.logAnalyticsData(cat, subCat, groupName, dataArray);
    }
    onRouteNavigate(page) {
        switch (page) {
            case 'home':
                this._navigationContext = NavigationContext.HOME_SCEEN;
                break;
            case 'cdo':
                this._navigationContext = NavigationContext.CDO;
                break;
            case 'cdo_shared_with_you':
                this._navigationContext = NavigationContext.CDO_SWY;
                break;
            case 'cdo_deleted':
                this._navigationContext = NavigationContext.CDO_DELETED;
                break;
            case 'projects':
                if (window.cdoHost.featureEnabled(FeatureFlags.spacesMonetization) && this._isStarterUser) {
                    this.handlePaywallLimitReachedEvent('spacesLimitReached');
                }
                this.logAnalyticsEvent(['WelcomeScreen', 'WelcomeScreen'], ANALYTICS.SUBCATEGORIES.DISCOVER, ANALYTICS.EVENTS.CC_SPACES_OPENED);
                break;
            default:
                this._logger.error(`Unexpected route provided to XD::onRouteNavigate. route = ${page}`);
                break;
        }
    }
    logCustomAnalytics(eventId, eventData) {
        var _a;
        switch (eventId) {
            case 'component--standard-tout-click':
                this.logAnalyticsEvent(ANALYTICS.CATEGORIES.HOME, ANALYTICS.SUBCATEGORIES.STANDARD_TOUT, ANALYTICS.EVENTS.TOUT_CLICKED);
                break;
            case 'component--carousel-click':
                // This check is necessary because both the carousel cta and the indicator have the same component name
                if (eventData && eventData.subtype !== 'carousel-indicator') {
                    this.logAnalyticsData(ANALYTICS.CATEGORIES.HOME, ANALYTICS.SUBCATEGORIES.CAROUSEL, ANALYTICS.GROUPS.CAROUSEL_INFO, [
                        {
                            key: ANALYTICS.GROUPS.CAROUSEL_NAME,
                            value: eventData.fieldData && eventData.fieldData.name,
                        },
                        { key: ANALYTICS.GROUPS.CAROUSEL_CONTENT, value: eventData.content },
                        { key: ANALYTICS.GROUPS.CAROUSEL_ACTION, value: eventData.ctaURL },
                    ]);
                }
                break;
            case 'component--recents-click':
                if (eventData && eventData.title) {
                    this.logAnalyticsData(ANALYTICS.CATEGORIES.STARTER_FILES, ANALYTICS.SUBCATEGORIES.USE, ANALYTICS.GROUPS.STARTER_FILES, [{ key: ANALYTICS.GROUPS.TEMPLATE_NAME, value: eventData.title }]);
                }
                break;
            case 'teamTrialChiclet':
                if (eventData && eventData.type === 'mount') {
                    // Send first analytics event - with  trial mode
                    this.logAnalyticsEvent(ANALYTICS.CATEGORIES.CCT_TRIAL, ANALYTICS.SUBCATEGORIES.LICENSE, eventData.trialMode);
                    // Send second analytics event - with number of days
                    this.logAnalyticsEvent(ANALYTICS.CATEGORIES.CCT_TRIAL, ANALYTICS.SUBCATEGORIES.TRIAL_PERIOD, (_a = eventData.days) === null || _a === void 0 ? void 0 : _a.toString());
                }
                else if (eventData && eventData.type === 'click') {
                    this.logAnalyticsData(ANALYTICS.CATEGORIES.CCT_TRIAL, ANALYTICS.SUBCATEGORIES.SUCCESS, ANALYTICS.GROUPS.TEAM_TRIAL_CHICLET_CLICK, [
                        { key: ANALYTICS.GROUPS.TEAM_TRIAL_USER_MODE, value: eventData.trialMode },
                        { key: ANALYTICS.GROUPS.NO_OF_DAYS_LEFT, value: eventData.days },
                    ]);
                }
                break;
            default:
                break;
        }
    }
    setFocusOnHomeTab() {
        let homeTab = document.getElementById('tab-item__home');
        if (homeTab) {
            homeTab.focus();
        }
    }
    /**
     * Starter badge should not be shown for FRL
     * Need not to be cached as this get refreshed everytime
     * Ngl/IMS profile is fetched.
     */
    updateIsStarterUser() {
        this._isStarterUser = !src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_10__["mainStore"].user.isFRL && this._xdApp.subscriptionType === 'trial';
        if (window.cdoHost && window.cdoHost.trigger) {
            window.cdoHost.trigger(AppEvent.USER_SUBSCRIPTION_UPDATED);
        }
        this._logger.info(`[monetization] [Home Screen Starter Badge] IsStarterUser = ${this._isStarterUser} and  subscriptionType = ${this._xdApp.subscriptionType}`);
    }
    get isStarterUser() {
        return (this._isStarterUser ||
            (src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_10__["mainStore"].user.isUserAvailable &&
                src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_10__["mainStore"].user.entitlementStatus !== 'SUBSCRIPTION' &&
                src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_10__["mainStore"].user.entitlementStatus !== 'TRIAL'));
    }
    removeStarterUserToast() {
        this._customToastInterface.removeStarterToast();
    }
    /**
     * Update the system sleep state on app awake and sleep events
     * @param isAsleep: boolean flag indicating whether app is going into sleep state
     */
    setIsSystemAsleep(isAsleep) {
        this._isSystemAsleep = isAsleep;
    }
    _setMockXdApp(xdApp) {
        this._xdApp = xdApp;
    }
    get shouldCaptureEscapeKey() {
        return false;
    }
    logComponentsVersion() {
        const versionInfo = `Home Screen Components Version Info - FMHS:${"6.5.0.61"}, CDO:${process.env.CDO_VERSION}, CDP:${process.env.CDP_VERSION}, Spaces:${process.env.SPACES_VERSION}`;
        this._logger.info(versionInfo);
    }
    /**
     * Open the Share Sheet dialog
     */
    openShareSheet(assetInfo, onEvent) {
        if (!window.cdoHost.toggleShareSheet) {
            return;
        }
        if (!assetInfo) {
            this._logger.error('XD.openShareSheet called without asset information');
            return;
        }
        // Put asset info together in the format expected by XD
        let sharedAssetInfo = assetInfo;
        sharedAssetInfo.resourceId = assetInfo.assetId;
        sharedAssetInfo.resourceViewUrl = assetInfo.targetUrl;
        sharedAssetInfo.assetName = assetInfo.name;
        sharedAssetInfo.resourceType = assetInfo.mimeType;
        sharedAssetInfo.shareType = 'share';
        sharedAssetInfo.disableLinkAccess = true;
        sharedAssetInfo.projectData = assetInfo.space && {
            color: assetInfo.space.color,
            name: assetInfo.space.name,
            urn: assetInfo.space.assetId,
        };
        this.onShareSheetCallbackEvent = onEvent;
        window.cdoHost.toggleShareSheet(JSON.stringify(sharedAssetInfo));
    }
    updateHomeScreenVisibility(visiblity) {
        this._isHomeScreenVisible = visiblity;
        if (visiblity) {
            _components_RefreshProjectsController__WEBPACK_IMPORTED_MODULE_22__[/* default */ "b"].refreshContent();
        }
    }
    launchCCDWithPath(path) {
        window.cdoHost.launchCCDWithPath(path);
    }
    /**
     * Handling of the paywall limit reached event and updating the paywall source
     * @param source : string indicating the source of the paywall which has been exhausted
     */
    handlePaywallLimitReachedEvent(source) {
        this._paywallLimitReachedEventSource = source === this._paywallLimitReachedEventSource ? undefined : source;
    }
    handleRemovePaywallForFeatureEvent(source) {
        this._removePaywallForEventSource = source === this._removePaywallForEventSource ? undefined : source;
    }
    get paywallLimitReachedEventSource() {
        return this._paywallLimitReachedEventSource;
    }
    get removePaywallForEventSource() {
        return this._removePaywallForEventSource;
    }
    get starterBannerHostData() {
        return {
            paywallLimitReachedEventSource: this.paywallLimitReachedEventSource,
            removePaywallForEventSource: this.removePaywallForEventSource,
            starterBannerData: this._starterBannerData,
            defaultStarterBannerId: 'default',
            hostSideEffectOnMount: () => this.updateHomeScrollProperty(true),
            hostSideEffectOnUnmount: () => this.updateHomeScrollProperty(false),
        };
    }
    /**
     * Handle click event on the starter banner CTA
     */
    handleStarterBannerClick(analyticsId) {
        this.invokeUpgradePlan();
        this.logAnalyticsEvent(ANALYTICS.CATEGORIES.MONETIZATION, analyticsId, ANALYTICS.EVENTS.CLICK_TO_UPGRADE);
    }
    /**
     * Update the scroll property on the home
     */
    updateHomeScrollProperty(shouldShowScroll) {
        this._showScrollbarOnHome = shouldShowScroll;
    }
    /**
     * Do not display coachmarks when running in UI test environment.
     */
    shouldDisplayProjectsCoachMarks() {
        return !window.cdoHost.isUITestEnabled();
    }
    /**
     * Returns true if CDOProvider should be rendered false otherwise.
     */
    shouldRenderCDOProvider() {
        return !!src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_10__["mainStore"].user.UserProfile.userId || src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_10__["mainStore"].user.isFRL;
    }
    /**
     * Handles open Projects view event
     * @param payload {string}
     */
    async handleOpenProjectsViewEvent(payload) {
        try {
            const payloadData = JSON.parse(payload);
            // space URN is a mandatory argument
            if (!payloadData.urn) {
                throw new Error('Projects urn is not present in payload');
            }
            const { SpaceRoute, OneUpTabs } = await __webpack_require__("BuQ2");
            const { browseSession } = await __webpack_require__("khec");
            // By default open "Files" section when view is not specified
            const routeDetails = {
                view: payloadData.view ? payloadData.view : OneUpTabs.Working,
            };
            browseSession.navigateAndNotify(new SpaceRoute(payloadData.urn, routeDetails));
        }
        catch (error) {
            this._logger.error(`handleOpenSpacesViewEvent - ${error}`);
        }
    }
    /**
     * Trigger for resetting the scroll position
     * For XD - reset the scroll position on layout when welcome scren visibility changes
     * We will do this only when scroll bar is active on the home. Scroll bar on home is active
     * when starter banner is active
     */
    get resetScrollTriggerCondition() {
        return this._showScrollbarOnHome ? this._isHomeScreenVisible : undefined;
    }
    /**
     * Host callback for when user navigates within a space
     */
    onProjectsNavigation(route) {
        if (route.type === 'spaces') {
            this._navigationContext = NavigationContext.SPACE;
            if (route.hasFolder) {
                this._navigationContext = NavigationContext.SPACE_FOLDER;
            }
        }
        else if (route.type === 'teams') {
            this._navigationContext = NavigationContext.TEAM;
        }
    }
    /**
     * Returns the host analytics project key
     */
    get analyticsProjectKey() {
        return window.cdoHost.analyticsProjectKey;
    }
    get enableHoverEventAnalytics() {
        return true;
    }
    attachHostUxpListeners() {
        // Register events for UXP Panels
        document.addEventListener('uxpshowpanel', async (event) => {
            /**
             * @NOTE About UXP Panels. UXP will dynamically allocate root nodes for panels:
             * If body is free, then it will be allocated to the first panel that is shown.
             * This is done on purpose, since most of the plugins have a single panel, they will always work with body.
             * If body is taken (a panel is rendered inside), UXP allocates a <uxp-panel> tag and attaches it to body.
             * UXP will send you uxpshowpanel and uxphidepanel events on document.
             * The root node for you panel will be specified in the event parameter as event.node .
             *
             * IF Homescreen is no longer allocated for <body> and another panel
             * like CDP is about to be shown, Cache homescreen and remove it from the
             * DOM.
             */
            if (event.node.tagName === 'BODY' && event.panelId !== 'onShowWelcomeScreen') {
                if (!this.homescreenCachedElement) {
                    this.homescreenCachedElement = document.getElementById('main');
                }
                if (this.homescreenCachedElement && this.homescreenCachedElement.parentNode === document.body) {
                    this.homescreenCachedElement.remove();
                }
            }
            if (event.panelId === 'onShowWelcomeScreen') {
                /**
                 * Show homescreen
                 * workaround for https://jira.corp.adobe.com/browse/UXP-13483
                 */
                if (this.homescreenCachedElement) {
                    /**
                     * Add the main container
                     */
                    event.node.appendChild(this.homescreenCachedElement);
                }
                return;
            }
            if (!this.uapController) {
                const { default: UAPController } = await __webpack_require__.e(/* import() */ 0).then(__webpack_require__.bind(null, "hUbq"));
                this.uapController = new UAPController();
            }
            try {
                const { panelId } = event;
                const adjustedEvent = _CDPLocationHook__WEBPACK_IMPORTED_MODULE_23__[/* default */ "a"].adjustDataForEvent(event);
                this.uapController.showUapModal(panelId, adjustedEvent, this.CDOProductData, this.fetchCDOToken, src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_10__["mainStore"].user);
            }
            catch (error) {
                this._logger.error(`Error executing uxpshowpanel ${error}`);
            }
        });
        document.addEventListener('uxphidepanel', async (event) => {
            if (event.panelId === 'onShowWelcomeScreen') {
                /**
                 * Hide Homescreen
                 * Workaround for https://jira.corp.adobe.com/browse/UXP-13483
                 */
                if (this.homescreenCachedElement) {
                    this.homescreenCachedElement.remove();
                }
                return;
            }
            if (!this.uapController) {
                const { default: UAPController } = await __webpack_require__.e(/* import() */ 0).then(__webpack_require__.bind(null, "hUbq"));
                this.uapController = new UAPController();
            }
            try {
                const adjustedEvent = _CDPLocationHook__WEBPACK_IMPORTED_MODULE_23__[/* default */ "a"].adjustDataForEvent(event);
                this.uapController.closeUapModal('onClosePicker', adjustedEvent);
            }
            catch (error) {
                this._logger.error(`Error executing uxphidepanel ${error}`);
            }
        });
    }
}
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_15__[/* observable */ "z"],
    __metadata("design:type", Object)
], XD.prototype, "_shouldShowProjectsShareSheetOverlay", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_15__[/* observable */ "z"],
    __metadata("design:type", Boolean)
], XD.prototype, "_showScrollbarOnHome", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_15__[/* observable */ "z"],
    __metadata("design:type", Boolean)
], XD.prototype, "_ccProjectsRuntimeFF", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_15__[/* observable */ "z"],
    __metadata("design:type", Object)
], XD.prototype, "_isStarterUser", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_15__[/* observable */ "z"],
    __metadata("design:type", Object)
], XD.prototype, "_npsData", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_15__[/* observable */ "z"],
    __metadata("design:type", Object)
], XD.prototype, "_paywallLimitReachedEventSource", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_15__[/* observable */ "z"],
    __metadata("design:type", Object)
], XD.prototype, "_removePaywallForEventSource", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_15__[/* computed */ "l"],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], XD.prototype, "shouldShowProjectsShareSheetOverlay", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_15__[/* computed */ "l"],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], XD.prototype, "isNPSEnabled", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_15__[/* computed */ "l"],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], XD.prototype, "shouldShowLearnTab", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_15__[/* computed */ "l"],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [])
], XD.prototype, "isCloudProjectsEnabled", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_15__[/* computed */ "l"],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [])
], XD.prototype, "isCloudProjectsVisible", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_15__[/* computed */ "l"],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], XD.prototype, "paywallLimitReachedEventSource", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_15__[/* computed */ "l"],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], XD.prototype, "removePaywallForEventSource", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_15__[/* computed */ "l"],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], XD.prototype, "resetScrollTriggerCondition", null);

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("8oxB")))

/***/ }),

/***/ "khec":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "browseSession", function() { return browseSession; });
/* harmony import */ var _ccx_projects__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("BuQ2");
/* harmony import */ var src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("cCFZ");
/* harmony import */ var _ccx_ccx_document_picker__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("jsAP");
/* harmony import */ var src_applications__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("3UBC");
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2021 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/




const browseSession = new _ccx_projects__WEBPACK_IMPORTED_MODULE_0__["BrowseSession"]({
    productLocation: 'com.adobe.ccx.start',
    showPicker: _ccx_ccx_document_picker__WEBPACK_IMPORTED_MODULE_2__["showPicker"],
    toastInterface: src_applications__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].customToastInterface,
    // This is used by Projects to notify us when a dialog is open so we can prevent textfields from showing on top.
    // see https://jira.corp.adobe.com/browse/CCPROJ-4224
    onDialogStateChange: (newState) => {
        src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_1__["mainStore"].setDisableNativeControls(newState);
    },
    onWillNavigate: route => {
        // tell HS to load the projects view
        if (route) {
            src_applications__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].onProjectsNavigation(route);
            // persist stringified route as deep link
            src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_1__["mainStore"].navigate('projects', route.serialize({ skipView: true, skipFolder: true }));
        }
        return undefined;
    },
    onDidNavigate: route => {
        var _a;
        // use the stringified route as a deep link
        route && ((_a = src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_1__["mainStore"] === null || src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_1__["mainStore"] === void 0 ? void 0 : src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_1__["mainStore"].prefs) === null || _a === void 0 ? void 0 : _a.currentRoute) === 'projects' && src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_1__["mainStore"].navigate('projects', route.serialize({ skipView: true, skipFolder: true }));
        return undefined;
    },
});


/***/ }),

/***/ "klmv":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("3/MH"),
      24: __webpack_require__("WqqV")
    }
  }));
};

WrappedIcon.displayName = 'FullScreenExit';
exports.default = WrappedIcon;

/***/ }),

/***/ "kmgx":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
/**
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 */

var INVITATIONS_SERVICE_ENDPOINT = exports.INVITATIONS_SERVICE_ENDPOINT = 'https://invitations.adobe.io/api/v2';

/***/ }),

/***/ "kwZ1":
/***/ (function(module, exports, __webpack_require__) {

"use strict";
 // 19.1.2.1 Object.assign(target, source, ...)

var DESCRIPTORS = __webpack_require__("jmDH");

var getKeys = __webpack_require__("w6GO");

var gOPS = __webpack_require__("mqlF");

var pIE = __webpack_require__("NV0k");

var toObject = __webpack_require__("JB68");

var IObject = __webpack_require__("M1xp");

var $assign = Object.assign; // should work with symbols and should have deterministic property order (V8 bug)

module.exports = !$assign || __webpack_require__("KUxP")(function () {
  var A = {};
  var B = {}; // eslint-disable-next-line no-undef

  var S = Symbol();
  var K = 'abcdefghijklmnopqrst';
  A[S] = 7;
  K.split('').forEach(function (k) {
    B[k] = k;
  });
  return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;
}) ? function assign(target, source) {
  // eslint-disable-line no-unused-vars
  var T = toObject(target);
  var aLen = arguments.length;
  var index = 1;
  var getSymbols = gOPS.f;
  var isEnum = pIE.f;

  while (aLen > index) {
    var S = IObject(arguments[index++]);
    var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);
    var length = keys.length;
    var j = 0;
    var key;

    while (length > j) {
      key = keys[j++];
      if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key];
    }
  }

  return T;
} : $assign;

/***/ }),

/***/ "kxXC":
/***/ (function(module, exports, __webpack_require__) {

module.exports = __webpack_require__.p + "assets/projects/S_Illu_EmptyCanvasFile_Color08.png";

/***/ }),

/***/ "kzNO":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
Object.defineProperty(exports, "MenuItem", {
  enumerable: true,
  get: function () {
    return _MenuItem.default;
  }
});
Object.defineProperty(exports, "MenuDivider", {
  enumerable: true,
  get: function () {
    return _MenuDivider.default;
  }
});
Object.defineProperty(exports, "MenuHeading", {
  enumerable: true,
  get: function () {
    return _MenuHeading.default;
  }
});
exports.SubMenu = exports.Menu = void 0;

var _UxpOptions = _interopRequireDefault(__webpack_require__("zvwv"));

var _MenuItem = _interopRequireDefault(__webpack_require__("C8M1"));

var _MenuDivider = _interopRequireDefault(__webpack_require__("2Jql"));

var _MenuHeading = _interopRequireDefault(__webpack_require__("ge8y"));

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}
/*************************************************************************
* ADOBE CONFIDENTIAL
* ___________________
*
* Copyright 2019 Adobe
* All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains
* the property of Adobe and its suppliers, if any. The intellectual
* and technical concepts contained herein are proprietary to Adobe
* and its suppliers and are protected by all applicable intellectual
* property laws, including trade secret and copyright laws.
* Dissemination of this information or reproduction of this material
* is strictly forbidden unless prior written permission is obtained
* from Adobe.
**************************************************************************/


const Menu = _UxpOptions.default.select('Menu', () => __webpack_require__("Ml4l"), () => __webpack_require__("NeVj"));

exports.Menu = Menu;

const SubMenu = _UxpOptions.default.select('SubMenu', () => __webpack_require__("+97j"), () => __webpack_require__("oyGX"));

exports.SubMenu = SubMenu;

/***/ }),

/***/ "l/lP":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _packages_CDOView_utils_action__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("duTG");
/* harmony import */ var _react_react_spectrum_Icon_Flag__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("sxWQ");
/* harmony import */ var _react_react_spectrum_Icon_Flag__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Icon_Flag__WEBPACK_IMPORTED_MODULE_2__);



/* harmony default export */ __webpack_exports__["a"] = (({ app, isVisible }) => {
    return new _packages_CDOView_utils_action__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"]({
        value: 'reportAbuse',
        label: 'action.reportAbuse',
        icon: react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_react_react_spectrum_Icon_Flag__WEBPACK_IMPORTED_MODULE_2___default.a, null),
        isVisible,
        getIsButtonDisabled: () => app.showOfflineWithFeatureFlag,
        getDisabledTooltipMsgId: () => 'tooltip.offline.general',
        supportsMultiple: false,
        execute: async (assets) => {
            let simplifiedAssets = assets.map(({ id, version }) => {
                let asset = { assetId: id };
                // Version only supports numeric and dot characters.
                if (!!version) {
                    asset['assetVersion'] = version;
                }
                return asset;
            });
            await app.projectsClient.reportAbuse(simplifiedAssets);
        },
    });
});


/***/ }),

/***/ "l0xv":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = setOverlayOnProvider;

var _closest = _interopRequireDefault(__webpack_require__("U6dR"));

var _reactDom = _interopRequireDefault(__webpack_require__("i8i4"));

var _ScrollManager = _interopRequireDefault(__webpack_require__("8VRs"));

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function setOverlayOnProvider(overlayRef, overlayVisibility = false, overlayCallback = undefined, boundingRect = null, hideScollbars = true) {
  if (!overlayRef) {
    return;
  }

  if (boundingRect == null && overlayVisibility) {
    boundingRect = overlayRef.getBoundingClientRect();
  }

  if (hideScollbars) {
    _ScrollManager.default.getInstance().toggleScrollBarsVisibility(overlayVisibility, true, overlayRef, boundingRect);
  }

  const closestContainer = (0, _closest.default)(_reactDom.default.findDOMNode(overlayRef), '.react-spectrum-provider');
  const provider = closestContainer || document.querySelector('.react-spectrum-provider');

  if (provider) {
    let setOverlay = provider.getAttribute('setOverlay');
    let data = {
      visible: overlayVisibility,
      callback: overlayCallback,
      boundingRect: boundingRect
    };

    if (setOverlay) {
      setOverlay(overlayRef, data);
    }
  }
}

/***/ }),

/***/ "l11E":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _autobindDecorator = _interopRequireDefault(__webpack_require__("gKdT"));

var _closest = _interopRequireDefault(__webpack_require__("U6dR"));

var _convertUnsafeMethod = _interopRequireDefault(__webpack_require__("6Tdt"));

var _OpenTransition = _interopRequireDefault(__webpack_require__("UrLY"));

var _ownerDocument = _interopRequireDefault(__webpack_require__("z9HI"));

var _Portal = _interopRequireDefault(__webpack_require__("I/DW"));

var _Position = _interopRequireDefault(__webpack_require__("mCmI"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

var _reactDom = _interopRequireDefault(__webpack_require__("i8i4"));

var _RootCloseWrapper = _interopRequireDefault(__webpack_require__("wewx"));

var _class, _class2, _temp;

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function ownKeys(object, enumerableOnly) {
  var keys = Object.keys(object);

  if (Object.getOwnPropertySymbols) {
    var symbols = Object.getOwnPropertySymbols(object);
    if (enumerableOnly) symbols = symbols.filter(function (sym) {
      return Object.getOwnPropertyDescriptor(object, sym).enumerable;
    });
    keys.push.apply(keys, symbols);
  }

  return keys;
}

function _objectSpread(target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i] != null ? arguments[i] : {};

    if (i % 2) {
      ownKeys(Object(source), true).forEach(function (key) {
        _defineProperty(target, key, source[key]);
      });
    } else if (Object.getOwnPropertyDescriptors) {
      Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
    } else {
      ownKeys(Object(source)).forEach(function (key) {
        Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
      });
    }
  }

  return target;
}

function _defineProperty(obj, key, value) {
  if (key in obj) {
    Object.defineProperty(obj, key, {
      value: value,
      enumerable: true,
      configurable: true,
      writable: true
    });
  } else {
    obj[key] = value;
  }

  return obj;
}

const VISIBLE_OVERLAYS = new Map();
const DEFAULT_BUCKET_KEY = 'all';

let Overlay = (0, _convertUnsafeMethod.default)(_class = (0, _autobindDecorator.default)(_class = (_temp = _class2 = class Overlay extends _react.default.Component {
  constructor(props) {
    super(props);
    this.state = {
      exited: !this.props.show
    };
  }

  get overlayBucketKey() {
    const {
      children
    } = this.props;

    if (children && children.props) {
      return children.props.role === 'tooltip' ? 'tooltip' : DEFAULT_BUCKET_KEY;
    }

    return DEFAULT_BUCKET_KEY;
  }

  componentDidMount() {
    this.setState({
      targetNode: _reactDom.default.findDOMNode(this.props.target)
    });
    this.mounted = true;
    this.addOverlay();
  }

  componentWillUnmount() {
    this.mounted = false;
    this.removeOverlay();
  }

  addOverlay(props = this.props) {
    const {
      overlayBucketKey
    } = this;
    let visibleOverlays = VISIBLE_OVERLAYS.get(overlayBucketKey);

    if (!visibleOverlays) {
      VISIBLE_OVERLAYS.set(overlayBucketKey, []);
      visibleOverlays = VISIBLE_OVERLAYS.get(overlayBucketKey);
    }

    if (props.show && this.mounted && !visibleOverlays.includes(this)) {
      visibleOverlays.push(this);
    }
  }

  removeOverlay() {
    // Remove overlay from the stack of visible overlays
    const visibleOverlays = VISIBLE_OVERLAYS.get(this.overlayBucketKey);
    let index = visibleOverlays.indexOf(this);

    if (index >= 0) {
      visibleOverlays.splice(index, 1);
    }
  }

  UNSAFE_componentWillReceiveProps(nextProps) {
    if (nextProps.target && nextProps.target !== this.props.target) {
      this.setState(_objectSpread(_objectSpread({}, this.state), {}, {
        targetNode: _reactDom.default.findDOMNode(nextProps.target)
      }));
    }
  }

  onEntered(...args) {
    this.setState(_objectSpread(_objectSpread({}, this.state), {}, {
      exited: false
    }));
    this.addOverlay();

    if (this.props.onEntered) {
      this.props.onEntered(...args);
    }
  }

  onExited(...args) {
    this.setState(_objectSpread(_objectSpread({}, this.state), {}, {
      exited: true
    }));
    this.removeOverlay();

    if (this.props.onExited) {
      this.props.onExited(...args);
    }
  }

  getOverlayContainer(target) {
    let immediateAvailableContainer = (0, _closest.default)(this.state.targetNode, '.react-spectrum-provider');
    return this.props.container || immediateAvailableContainer;
  }

  hide(e) {
    const visibleOverlays = VISIBLE_OVERLAYS.get(this.overlayBucketKey); // Only hide if this is the top overlay

    if (visibleOverlays[visibleOverlays.length - 1] === this && this.props.onHide) {
      this.props.onHide(e);
    }
  }

  render() {
    let {
      containerPadding,
      target,
      container = this.getOverlayContainer(target),
      placement,
      offset,
      crossOffset,
      flip,
      boundariesElement = () => (0, _ownerDocument.default)(this).body,
      shouldUpdatePosition,
      rootClose,
      children,
      show,
      onExit,
      onExiting,
      onEnter,
      onEntering
    } = this.props; // Don't un-render the overlay while it's transitioning out.

    const mountOverlay = show || !this.state.exited;

    if (!mountOverlay) {
      // Don't bother showing anything if we don't have to.
      return null;
    }

    let child = children; // Position is be inner-most because it adds inline styles into the child,
    // which the other wrappers don't forward correctly.

    child = /*#__PURE__*/_react.default.createElement(_Position.default, {
      container,
      containerPadding,
      target,
      placement,
      shouldUpdatePosition,
      offset,
      crossOffset,
      flip,
      boundariesElement,
      autoComplete: true
    }, child); // This animates the child node by injecting props, so it must precede
    // anything that adds a wrapping div.

    child = /*#__PURE__*/_react.default.createElement(_OpenTransition.default, {
      in: show,
      appear: true,
      onExit: onExit,
      onExiting: onExiting,
      onExited: this.onExited,
      onEnter: onEnter,
      onEntering: onEntering,
      onEntered: this.onEntered
    }, child); // This goes after everything else because it adds a wrapping div.

    if (rootClose) {
      child = /*#__PURE__*/_react.default.createElement(_RootCloseWrapper.default, {
        onRootClose: this.hide
      }, child);
    }

    return /*#__PURE__*/_react.default.createElement(_Portal.default, {
      container: container
    }, child);
  }

}, _class2.defaultProps = {
  placement: 'left'
}, _temp)) || _class) || _class;

exports.default = Overlay;

/***/ }),

/***/ "l5XG":
/***/ (function(module) {

module.exports = JSON.parse("{\"Clear search\":\"Aramayı temizle\"}");

/***/ }),

/***/ "l6wF":
/***/ (function(module) {

module.exports = JSON.parse("{\"close\":\"閉じる\",\"error\":\"エラー\",\"info\":\"情報\",\"success\":\"成功\",\"warning\":\"警告\"}");

/***/ }),

/***/ "l9EB":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("path", {
  d: "M12.631 19.988l-1.188 4.485c-.025.123-.074.152-.223.152h-2.2c-.148 0-.173-.049-.148-.222l4.254-14.875a4.659 4.659 0 0 0 .148-1.246c0-.1.05-.148.124-.148h3.143c.1 0 .149.025.173.148l4.777 16.145c.025.123 0 .2-.124.2h-2.474c-.124 0-.2-.029-.223-.128l-1.237-4.509zm4.183-2.431c-.421-1.654-1.411-5.278-1.782-7.03h-.025c-.322 1.752-1.114 4.71-1.733 7.03zm6.749-8.313a1.534 1.534 0 0 1 3.069 0 1.434 1.434 0 0 1-1.559 1.53 1.409 1.409 0 0 1-1.51-1.53zm.168 3.4c0-.123.05-.173.173-.173h2.353c.124 0 .173.049.173.173v11.807c0 .124-.025.173-.173.173h-2.328c-.149 0-.2-.074-.2-.2z"
}), React.createElement("path", {
  d: "M0 0v34h36V0zm34 32H2V2h32z"
}));

/***/ }),

/***/ "lA+9":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _createClass = function () {
  function defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i];
      descriptor.enumerable = descriptor.enumerable || false;
      descriptor.configurable = true;
      if ("value" in descriptor) descriptor.writable = true;
      Object.defineProperty(target, descriptor.key, descriptor);
    }
  }

  return function (Constructor, protoProps, staticProps) {
    if (protoProps) defineProperties(Constructor.prototype, protoProps);
    if (staticProps) defineProperties(Constructor, staticProps);
    return Constructor;
  };
}();

var _DAO2 = __webpack_require__("io2S");

var _DAO3 = _interopRequireDefault(_DAO2);

var _utils = __webpack_require__("VKd2");

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _classCallCheck(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}

function _possibleConstructorReturn(self, call) {
  if (!self) {
    throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
  }

  return call && (typeof call === "object" || typeof call === "function") ? call : self;
}

function _inherits(subClass, superClass) {
  if (typeof superClass !== "function" && superClass !== null) {
    throw new TypeError("Super expression must either be null or a function, not " + typeof superClass);
  }

  subClass.prototype = Object.create(superClass && superClass.prototype, {
    constructor: {
      value: subClass,
      enumerable: false,
      writable: true,
      configurable: true
    }
  });
  if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;
}
/**
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 */


var InstanceConfig = {};

var ResourcesService = function (_DAO) {
  _inherits(ResourcesService, _DAO);

  function ResourcesService() {
    _classCallCheck(this, ResourcesService);

    return _possibleConstructorReturn(this, (ResourcesService.__proto__ || Object.getPrototypeOf(ResourcesService)).apply(this, arguments));
  }

  _createClass(ResourcesService, [{
    key: 'get',

    /**
     * Get the resources shared with the user.
     * @param {Object} options - (optional) Sorting and filtering options, as listed below
     *
     *        {String} orderBy - (optional, default = "+sharedate") Field to sort on, and direction. E.g. "+sharedate"
     *                           for sorting by date shared ascending. Prefix with "-" for descending.
     *        {String[]} types - (optional) A list of mime-types to filter by. If none provided, all mimetypes will be
     *                           returned.
     * @returns {Promise}
     */
    value: function get() {
      var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
          _ref$orderBy = _ref.orderBy,
          orderBy = _ref$orderBy === undefined ? '+sharedate' : _ref$orderBy,
          _ref$types = _ref.types,
          types = _ref$types === undefined ? [] : _ref$types,
          _ref$limit = _ref.limit,
          limit = _ref$limit === undefined ? 10 : _ref$limit;

      var url = this.endpoint + '/resources?orderBy=' + encodeURIComponent(orderBy) + '&type=' + encodeURIComponent(types.join(',')) + '&limit=' + limit;
      return this.getRequest({
        url: url
      });
    }
    /**
     * Get the next page of resources results, using the URL from Resources.get().
     * @param urlPath {String} URL from Resources.get(), from the _links.next property of the response.
     * @returns {Promise|*|Promise<Response>}
     */

  }, {
    key: 'getNextPage',
    value: function getNextPage(urlPath) {
      return this.getRequest({
        url: urlPath
      });
    }
  }]);

  return ResourcesService;
}(_DAO3.default);

exports.default = (0, _utils.InstanceCreator)(ResourcesService, InstanceConfig);
module.exports = exports['default'];

/***/ }),

/***/ "lAYD":
/***/ (function(module) {

module.exports = JSON.parse("{\"steps\":\"第 {currentStep} 步，共 {totalSteps} 步\"}");

/***/ }),

/***/ "lArf":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var _UxpOptions = _interopRequireDefault(__webpack_require__("zvwv"));

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}
/*************************************************************************
* ADOBE CONFIDENTIAL
* ___________________
*
* Copyright 2019 Adobe
* All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains
* the property of Adobe and its suppliers, if any. The intellectual
* and technical concepts contained herein are proprietary to Adobe
* and its suppliers and are protected by all applicable intellectual
* property laws, including trade secret and copyright laws.
* Dissemination of this information or reproduction of this material
* is strictly forbidden unless prior written permission is obtained
* from Adobe.
**************************************************************************/


module.exports = _UxpOptions.default.select('FieldLabel', () => __webpack_require__("zvRM"), () => __webpack_require__("/uzt"), () => __webpack_require__("tXLA"));

/***/ }),

/***/ "lCc8":
/***/ (function(module, exports, __webpack_require__) {

var $export = __webpack_require__("Y7ZC"); // 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])


$export($export.S, 'Object', {
  create: __webpack_require__("oVml")
});

/***/ }),

/***/ "lDdF":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _Dropdown = _interopRequireDefault(__webpack_require__("omcR"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

var _UxpProvider = __webpack_require__("HGBq");

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

var _default = props => /*#__PURE__*/_react.default.createElement(_UxpProvider.SpectrumContext.Consumer, null, ({
  boundariesElement
}) => /*#__PURE__*/_react.default.createElement(_Dropdown.default, _extends({}, props, {
  boundariesElement: props.boundariesElement ? props.boundariesElement : boundariesElement
})));

exports.default = _default;

/***/ }),

/***/ "lF1L":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var hash = __webpack_require__("fZJM");

var curves = __webpack_require__("DLvh");

var utils = __webpack_require__("86MQ");

var assert = utils.assert;
var parseBytes = utils.parseBytes;

var KeyPair = __webpack_require__("OA+I");

var Signature = __webpack_require__("RKMU");

function EDDSA(curve) {
  assert(curve === 'ed25519', 'only tested with ed25519 so far');
  if (!(this instanceof EDDSA)) return new EDDSA(curve);
  curve = curves[curve].curve;
  this.curve = curve;
  this.g = curve.g;
  this.g.precompute(curve.n.bitLength() + 1);
  this.pointClass = curve.point().constructor;
  this.encodingLength = Math.ceil(curve.n.bitLength() / 8);
  this.hash = hash.sha512;
}

module.exports = EDDSA;
/**
* @param {Array|String} message - message bytes
* @param {Array|String|KeyPair} secret - secret bytes or a keypair
* @returns {Signature} - signature
*/

EDDSA.prototype.sign = function sign(message, secret) {
  message = parseBytes(message);
  var key = this.keyFromSecret(secret);
  var r = this.hashInt(key.messagePrefix(), message);
  var R = this.g.mul(r);
  var Rencoded = this.encodePoint(R);
  var s_ = this.hashInt(Rencoded, key.pubBytes(), message).mul(key.priv());
  var S = r.add(s_).umod(this.curve.n);
  return this.makeSignature({
    R: R,
    S: S,
    Rencoded: Rencoded
  });
};
/**
* @param {Array} message - message bytes
* @param {Array|String|Signature} sig - sig bytes
* @param {Array|String|Point|KeyPair} pub - public key
* @returns {Boolean} - true if public key matches sig of message
*/


EDDSA.prototype.verify = function verify(message, sig, pub) {
  message = parseBytes(message);
  sig = this.makeSignature(sig);
  var key = this.keyFromPublic(pub);
  var h = this.hashInt(sig.Rencoded(), key.pubBytes(), message);
  var SG = this.g.mul(sig.S());
  var RplusAh = sig.R().add(key.pub().mul(h));
  return RplusAh.eq(SG);
};

EDDSA.prototype.hashInt = function hashInt() {
  var hash = this.hash();

  for (var i = 0; i < arguments.length; i++) hash.update(arguments[i]);

  return utils.intFromLE(hash.digest()).umod(this.curve.n);
};

EDDSA.prototype.keyFromPublic = function keyFromPublic(pub) {
  return KeyPair.fromPublic(this, pub);
};

EDDSA.prototype.keyFromSecret = function keyFromSecret(secret) {
  return KeyPair.fromSecret(this, secret);
};

EDDSA.prototype.makeSignature = function makeSignature(sig) {
  if (sig instanceof Signature) return sig;
  return new Signature(this, sig);
};
/**
* * https://tools.ietf.org/html/draft-josefsson-eddsa-ed25519-03#section-5.2
*
* EDDSA defines methods for encoding and decoding points and integers. These are
* helper convenience methods, that pass along to utility functions implied
* parameters.
*
*/


EDDSA.prototype.encodePoint = function encodePoint(point) {
  var enc = point.getY().toArray('le', this.encodingLength);
  enc[this.encodingLength - 1] |= point.getX().isOdd() ? 0x80 : 0;
  return enc;
};

EDDSA.prototype.decodePoint = function decodePoint(bytes) {
  bytes = utils.parseBytes(bytes);
  var lastIx = bytes.length - 1;
  var normed = bytes.slice(0, lastIx).concat(bytes[lastIx] & ~0x80);
  var xIsOdd = (bytes[lastIx] & 0x80) !== 0;
  var y = utils.intFromLE(normed);
  return this.curve.pointFromY(y, xIsOdd);
};

EDDSA.prototype.encodeInt = function encodeInt(num) {
  return num.toArray('le', this.encodingLength);
};

EDDSA.prototype.decodeInt = function decodeInt(bytes) {
  return utils.intFromLE(bytes);
};

EDDSA.prototype.isPoint = function isPoint(val) {
  return val instanceof this.pointClass;
};

/***/ }),

/***/ "lKCB":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var iaw_jsUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("KTUt");
/* harmony import */ var start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Db/q");
/* harmony import */ var src_components_start_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("/0Ih");
/* harmony import */ var _Sophia__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("nm0P");
/* harmony import */ var _LoggerWrapper_Logger__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("43WE");
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/





const _logger = _LoggerWrapper_Logger__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].get('StartIngestRenderHandler');
/**
 * Property key constants
 */
const PROPERTY_KEYS = start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].KEYS;
/**
 * Setup the Start related render events.
 *
 * @param eventID 				{String} containing the event identifier
 * @param eventData				{Object} or {String} data associated with the event
 * @param payload 				{Object} cloned payload to fill out
 */
/* harmony default export */ __webpack_exports__["a"] = (function (eventID, eventData, payload) {
    var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
    if (!eventID) {
        payload = null;
        return;
    }
    // handle the event
    switch (eventID) {
        // inital render of the First-Run experience
        case 'tab':
            payload['event.workflow'] = eventData;
            payload['event.subcategory'] = eventData;
            payload['event.subtype'] = PROPERTY_KEYS.SUBTYPE_TAB;
            break;
        // render of First-Run engagment cards or learn cards
        case 'sophia-card':
            payload['event.workflow'] = eventData.workflow ? iaw_jsUtil__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].capitalize(eventData.workflow) : '';
            payload['event.subcategory'] = eventData.subcategory
                ? iaw_jsUtil__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].capitalize(eventData.subcategory)
                : PROPERTY_KEYS.SUBCATEGORY_CARD;
            payload['event.subtype'] = eventData.subtype || PROPERTY_KEYS.SUBTYPE_CARD;
            payload['content.id'] = eventData.cardID;
            payload['content.name'] = eventData.bodyCopy;
            payload['content.type'] = eventData.cardType;
            payload['content.action'] = eventData.actionURL;
            payload['ui.sequence'] = eventData.position;
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].addSophiaAnalytics(payload, eventData.containerAnalyticsParams);
            break;
        // render the trial account status badge
        case 'trial-status':
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_NAV;
            payload['event.subcategory'] =
                eventData.daysLeft > 0 ? PROPERTY_KEYS.SUBCATEGORY_TRIALCLOCK : PROPERTY_KEYS.SUBCATEGORY_BUY;
            payload['event.subtype'] = PROPERTY_KEYS.SUBTYPE_NAV;
            payload['content.id'] = eventData.cardID;
            payload['content.type'] = eventData.cardType;
            payload['content.action'] = eventData.actionURL;
            payload['content.status'] = eventData.daysLeft;
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].addSophiaAnalytics(payload, eventData.containerAnalyticsParams);
            break;
        case 'work-panel':
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_WORK;
            payload['event.subcategory'] = eventData.subcategory ? iaw_jsUtil__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].capitalize(eventData.subcategory) : '';
            payload['event.subtype'] = PROPERTY_KEYS.SUBTYPE_PANEL;
            payload['event.count'] = eventData.count;
            payload['ui.view_type'] = eventData.viewType ? iaw_jsUtil__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].capitalize(eventData.viewType) : '';
            payload['ui.filter'] = eventData.filter ? iaw_jsUtil__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].capitalize(eventData.filter) : '';
            payload['ui.sort_order'] = eventData.sortOrder ? iaw_jsUtil__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].capitalize(eventData.sortOrder) : '';
            break;
        case 'work-card':
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_WORK;
            payload['event.subcategory'] = eventData.subcategory ? iaw_jsUtil__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].capitalize(eventData.subcategory) : '';
            payload['event.subtype'] = PROPERTY_KEYS.SUBTYPE_CARD;
            payload['content.type'] = PROPERTY_KEYS.CONTENT_TYPE_FILE;
            payload['content.size'] = eventData.size;
            payload['content.extension'] = eventData.extension ? eventData.extension.toUpperCase() : '';
            payload['ui.view_type'] = eventData.viewType ? iaw_jsUtil__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].capitalize(eventData.viewType) : '';
            payload['ui.filter'] =
                eventData.filter && eventData.filter !== ''
                    ? iaw_jsUtil__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].capitalize(eventData.filter)
                    : PROPERTY_KEYS.UI_FILTER_NONE;
            payload['ui.sort_order'] = eventData.sortOrder ? iaw_jsUtil__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].capitalize(eventData.sortOrder) : '';
            break;
        case 'custom-item':
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_WORK;
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_LEGEND;
            payload['event.subtype'] = PROPERTY_KEYS.SUBTYPE_CUSTOM;
            payload['content.type'] = eventData.identifier;
            payload['ui.sequence'] = eventData.position;
            break;
        case 'lightroom-organizer':
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_WORK;
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_LIGHTROOM;
            payload['event.subtype'] = PROPERTY_KEYS.SUBTYPE_PANEL;
            break;
        case 'lightroom-edit':
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_WORK;
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_LIGHTROOM;
            payload['event.subtype'] = PROPERTY_KEYS.SUBTYPE_EDITOR;
            payload['content.id'] = eventData.id;
            payload['content.extension'] = eventData.extension;
            payload['content.mimetype'] = eventData.mimetype;
            payload['content.category'] = eventData.category;
            break;
        // Home Tab //////////////////////////////////////////////////////////////////////////////////////////////////
        case 'bannerBasic':
            const bannerData = eventData.fieldData;
            payload['event.workflow'] = iaw_jsUtil__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].capitalize(eventData.workflow);
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_BANNER_BASIC;
            payload['event.subtype'] = eventData.subtype
                ? eventData.subtype.toLowerCase()
                : PROPERTY_KEYS.SUBTYPE_BANNER;
            payload['ui.view_type'] = eventData.stage + ':' + eventData.layout;
            payload['content.status'] =
                eventData.workflow && eventData.workflow === PROPERTY_KEYS.WORKFLOW_DEFAULT
                    ? PROPERTY_KEYS.STATUS_LOCAL
                    : PROPERTY_KEYS.STATUS_CACHED;
            payload['content.name'] = bannerData === null || bannerData === void 0 ? void 0 : bannerData.headerText;
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].addSophiaAnalytics(payload, eventData.containerAnalyticsParams);
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].mapStageConditions(payload, eventData.stage);
            break;
        case 'carousel':
            payload['event.subtype'] = eventData.subtype;
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_HOME;
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_SUGGESTIONS;
            payload['ui.view_type'] = eventData.stage + ':' + eventData.layout;
            payload['ccx.signals'] = eventData.recommendationsJson;
            payload['event.dts_end'] = new Date().toISOString();
            eventData.value &&
                (payload['event.value'] = eventData['ccx.return_from_workspace']
                    ? 'return-from-workspace'
                    : eventData.value);
            eventData.contentId && (payload['content.id'] = eventData.contentId);
            eventData.contentName && (payload['content.name'] = eventData.contentName);
            eventData.contentType && (payload['content.type'] = eventData.contentType);
            eventData.contentAuthor && (payload['content.author'] = eventData.contentAuthor);
            eventData.uiSequence && (payload['ui.sequence'] = eventData.uiSequence);
            eventData.count !== undefined && (payload['event.count'] = eventData.count);
            eventData.cardAnalyticsData &&
                start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].addDynamicRecommendationsModelData(payload, eventData.cardAnalyticsData);
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].addSophiaAnalytics(payload, eventData.containerAnalyticsParams);
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].mapStageConditions(payload, eventData.stage);
            payload['exp.surface_id'] = src_components_start_constants__WEBPACK_IMPORTED_MODULE_2__[/* default */ "k"].SURFACES.HOME;
            payload['exp.response_guid'] = (_a = _Sophia__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].data.analyticsData) === null || _a === void 0 ? void 0 : _a.responseGUID;
            break;
        case 'component--banner-empty':
            const emptyBannerData = eventData.fieldData;
            payload['event.workflow'] = iaw_jsUtil__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].capitalize(eventData.workflow);
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_BANNER_EMPTY;
            payload['event.subtype'] = eventData.subtype
                ? eventData.subtype.toLowerCase()
                : PROPERTY_KEYS.SUBTYPE_BANNER;
            payload['event.value'] = PROPERTY_KEYS.VALUE_EMPTY;
            payload['ui.view_type'] = eventData.stage + ':' + eventData.layout;
            payload['content.status'] =
                eventData.workflow && eventData.workflow === PROPERTY_KEYS.WORKFLOW_DEFAULT
                    ? PROPERTY_KEYS.STATUS_LOCAL
                    : PROPERTY_KEYS.STATUS_CACHED;
            payload['content.name'] = emptyBannerData === null || emptyBannerData === void 0 ? void 0 : emptyBannerData.headerText;
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].addSophiaAnalytics(payload, eventData.containerAnalyticsParams);
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].mapStageConditions(payload, eventData.stage);
            break;
        case 'recents':
            payload['event.workflow'] = iaw_jsUtil__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].capitalize(eventData.workflow);
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_RECENT_FILES;
            payload['event.subtype'] = PROPERTY_KEYS.SUBTYPE_FILE;
            payload['ui.view_type'] = eventData.stage + ':' + eventData.layout;
            payload['event.value'] = eventData.numRecents;
            payload['content.status'] =
                eventData.workflow && eventData.workflow === PROPERTY_KEYS.WORKFLOW_DEFAULT
                    ? PROPERTY_KEYS.STATUS_LOCAL
                    : PROPERTY_KEYS.STATUS_CACHED;
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].addSophiaAnalytics(payload, eventData.containerAnalyticsParams);
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].mapStageConditions(payload, eventData.stage);
            break;
        case 'component--drag-and-drop':
            payload['event.workflow'] = iaw_jsUtil__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].capitalize(eventData.workflow);
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_DRAGDROP;
            payload['event.subtype'] = PROPERTY_KEYS.SUBTYPE_DRAGDROP;
            payload['ui.view_type'] = eventData.stage + ':' + eventData.layout;
            payload['content.status'] =
                eventData.workflow && eventData.workflow === PROPERTY_KEYS.WORKFLOW_DEFAULT
                    ? PROPERTY_KEYS.STATUS_LOCAL
                    : PROPERTY_KEYS.STATUS_CACHED;
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].addSophiaAnalytics(payload, eventData.containerAnalyticsParams);
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].mapStageConditions(payload, eventData.stage);
            break;
        case 'component--standard-tout':
            const toutData = eventData.fieldData;
            const primaryCTA = toutData === null || toutData === void 0 ? void 0 : toutData.primaryCTA;
            payload['event.workflow'] = iaw_jsUtil__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].capitalize(eventData.workflow) || PROPERTY_KEYS.WORKFLOW_TOUT;
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_TOUT;
            payload['event.subtype'] = (primaryCTA === null || primaryCTA === void 0 ? void 0 : primaryCTA.ctaText) ? primaryCTA.ctaText.toLowerCase() : PROPERTY_KEYS.SUBTYPE_TOUT;
            (primaryCTA === null || primaryCTA === void 0 ? void 0 : primaryCTA.ctaDeeplinkData) && (payload['event.value'] = JSON.stringify(primaryCTA === null || primaryCTA === void 0 ? void 0 : primaryCTA.ctaDeeplinkData));
            payload['ui.view_type'] = eventData.stage + ':' + eventData.layout;
            payload['content.name'] = toutData === null || toutData === void 0 ? void 0 : toutData.headerText;
            payload['content.action'] = eventData.ctaURL || start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].getContentIdFromCTAData(eventData.ctaData) || (primaryCTA === null || primaryCTA === void 0 ? void 0 : primaryCTA.ctaEvent);
            payload['content.status'] =
                eventData.workflow && eventData.workflow === PROPERTY_KEYS.WORKFLOW_DEFAULT
                    ? PROPERTY_KEYS.STATUS_LOCAL
                    : PROPERTY_KEYS.STATUS_CACHED;
            payload['ccx.signals'] = start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].parseUserSignals(eventData);
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].addSophiaAnalytics(payload, eventData.containerAnalyticsParams);
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].mapStageConditions(payload, eventData.stage);
            break;
        case 'component--presets-dropdown':
        case 'stickyPresetsDropdown':
            payload['event.workflow'] = iaw_jsUtil__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].capitalize(eventData.workflow);
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_PRESETS_DROPDOWN;
            payload['event.subtype'] = PROPERTY_KEYS.SUBTYPE_PRESETS_DROPDOWN;
            payload['ui.view_type'] = eventData.stage + ':' + eventData.layout;
            payload['content.id'] = eventData.presetID;
            payload['content.name'] = eventData.presetName;
            payload['content.type'] = eventData.presetType;
            payload['content.status'] =
                eventData.workflow && eventData.workflow === PROPERTY_KEYS.WORKFLOW_DEFAULT
                    ? PROPERTY_KEYS.STATUS_LOCAL
                    : PROPERTY_KEYS.STATUS_CACHED;
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].addSophiaAnalytics(payload, eventData.containerAnalyticsParams);
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].mapStageConditions(payload, eventData.stage);
            break;
        case 'collapsibleContainer':
            payload['event.workflow'] = 'Home';
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_COLLAPSIBLE_CONTAINER;
            payload['event.subtype'] = PROPERTY_KEYS.SUBTYPE_COLLAPSIBLE_CONTAINER;
            break;
        case 'whatsNew':
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_WHATS_NEW;
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_WHATS_NEW;
            payload['event.subtype'] = eventData.subtype ? eventData.subtype : PROPERTY_KEYS.SUBTYPE_BANNER;
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].addSophiaAnalytics(payload, eventData.containerAnalyticsParams);
            break;
        case 'UserIntentDialog':
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_USER_INTENT_DIALOG;
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_USER_INTENT_DIALOG;
            payload['event.subtype'] = eventData.subtype;
            payload['event.value'] = eventData.value;
            eventData.contentId && (payload['content.id'] = eventData.contentId);
            eventData.contentName && (payload['content.name'] = eventData.contentName);
            eventData.contentType && (payload['content.type'] = eventData.contentType);
            eventData.contentAuthor && (payload['content.author'] = eventData.contentAuthor);
            eventData.contentCategory && (payload['content.category'] = eventData.contentCategory);
            eventData.contentStatus && (payload['content.status'] = eventData.contentStatus);
            eventData.uiSequence !== undefined && (payload['ui.sequence'] = eventData.uiSequence);
            eventData.recommendationsJson && (payload['ccx.signals'] = eventData.recommendationsJson);
            eventData.count !== undefined && (payload['event.count'] = eventData.count);
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].addSophiaAnalytics(payload, eventData.containerAnalyticsParams);
            payload['exp.surface_id'] = src_components_start_constants__WEBPACK_IMPORTED_MODULE_2__[/* default */ "k"].SURFACES.TUTORIALS;
            break;
        case 'whatsNewPage':
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_WHATS_NEW;
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_WHATS_NEW;
            payload['event.subtype'] = eventData.subtype ? eventData.subtype : PROPERTY_KEYS.SUBTYPE_BANNER;
            payload['ui.sequence'] = eventData.uiSequence;
            payload['content.action'] = eventData['ccx.return_from_workspace']
                ? 'fromWorkspace'
                : eventData.sourceAction;
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].addSophiaAnalytics(payload, eventData.containerAnalyticsParams);
            break;
        //  Learn Tab ////////////////////////////////////////////////////////////////////////////////////////////////
        case 'tutorial':
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_LEARN;
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_TUTORIAL;
            payload['event.subtype'] = eventData.subtype;
            payload['ui.view_type'] = eventData.stage + ':' + eventData.layout;
            payload['content.status'] = PROPERTY_KEYS.STATUS_CACHED;
            payload['content.id'] = eventData.tutorialID;
            payload['content.name'] = eventData.tutorialName;
            payload['content.type'] = PROPERTY_KEYS.CONTENT_TYPE_TUTORIAL;
            payload['content.author'] = eventData.tutorialSource;
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].appendURLParameters(payload, eventData.tutorialAction);
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].addSophiaAnalytics(payload, eventData.containerAnalyticsParams);
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].mapStageConditions(payload, eventData.stage);
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].addCustomAnalytics(payload, eventData.customFields);
            break;
        case 'learnFeedInApp':
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_LEARN;
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_IN_APP_FEED;
            payload['event.subtype'] = PROPERTY_KEYS.SUBTYPE_INAPPTUT;
            payload['ui.view_type'] = eventData.stage + ':' + eventData.layout;
            payload['content.status'] = PROPERTY_KEYS.STATUS_CACHED;
            payload['content.size'] = eventData.totalInAppTutorials;
            payload['content.type'] = PROPERTY_KEYS.CONTENT_TYPE_INAPP;
            payload['content.author'] = eventData.tutorialSource;
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].addSophiaAnalytics(payload, eventData.containerAnalyticsParams);
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].mapStageConditions(payload, eventData.stage);
            break;
        case 'learnFeedWeb':
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_LEARN;
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_WEB_FEED;
            payload['event.subtype'] = PROPERTY_KEYS.SUBTYPE_WEBTUT;
            payload['ui.view_type'] = eventData.stage + ':' + eventData.layout;
            payload['content.status'] = PROPERTY_KEYS.STATUS_CACHED;
            payload['content.size'] = eventData.totalWebTutorials;
            payload['content.type'] = PROPERTY_KEYS.CONTENT_TYPE_WEB;
            payload['content.author'] = eventData.tutorialSource;
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].addSophiaAnalytics(payload, eventData.containerAnalyticsParams);
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].mapStageConditions(payload, eventData.stage);
            break;
        case 'learn-menu':
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_LEARN;
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_LEARN_SIDEBAR;
            payload['event.subtype'] = PROPERTY_KEYS.SUBTYPE_LEARN_SIDEBAR;
            payload['content.status'] = PROPERTY_KEYS.STATUS_CACHED;
            payload['content.size'] = eventData.totalWebTutorials;
            payload['content.type'] = PROPERTY_KEYS.CONTENT_TYPE_WEB;
            break;
        // Other /////////////////////////////////////////////////////////////////////////////////////////////////////
        case 'toast':
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_TOAST;
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_TOAST;
            payload['event.subtype'] = (eventData === null || eventData === void 0 ? void 0 : eventData.subtype) || PROPERTY_KEYS.SUBTYPE_TOAST;
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].addSophiaAnalytics(payload, eventData.containerAnalyticsParams);
            payload['content.action'] = (eventData === null || eventData === void 0 ? void 0 : eventData.ctaURL) || ((_b = eventData.primaryCTA) === null || _b === void 0 ? void 0 : _b.ctaAction);
            payload['content.ctaText'] = eventData === null || eventData === void 0 ? void 0 : eventData.message;
            payload['content.id'] = eventData === null || eventData === void 0 ? void 0 : eventData._path;
            payload['content.status'] = eventData === null || eventData === void 0 ? void 0 : eventData.style;
            payload['content.name'] = eventData === null || eventData === void 0 ? void 0 : eventData.toastName;
            payload['content.type'] = ((_c = eventData === null || eventData === void 0 ? void 0 : eventData.primaryCTA) === null || _c === void 0 ? void 0 : _c.ctaData) ? (_d = eventData === null || eventData === void 0 ? void 0 : eventData.primaryCTA) === null || _d === void 0 ? void 0 : _d.ctaData.deepLinkType : (_e = eventData === null || eventData === void 0 ? void 0 : eventData.primaryCTA) === null || _e === void 0 ? void 0 : _e.ctaAction;
            payload['exp.surface_id'] = src_components_start_constants__WEBPACK_IMPORTED_MODULE_2__[/* default */ "k"].SURFACES.TOAST;
            payload['exp.response_guid'] = (_g = (_f = _Sophia__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].data) === null || _f === void 0 ? void 0 : _f.analyticsData) === null || _g === void 0 ? void 0 : _g.responseGUID;
            ((_h = eventData === null || eventData === void 0 ? void 0 : eventData.primaryCTA) === null || _h === void 0 ? void 0 : _h.ctaData) && (payload['event.value'] = JSON.stringify((_j = eventData === null || eventData === void 0 ? void 0 : eventData.primaryCTA) === null || _j === void 0 ? void 0 : _j.ctaData));
            break;
        case 'license':
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_NGL;
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_CHICLET;
            payload['event.subtype'] = eventData.subtype
                ? eventData.subtype.toLowerCase()
                : PROPERTY_KEYS.SUBTYPE_LICENSE;
            payload['event.value'] = eventData.trialDaysRemaining;
            eventData.containerAnalyticsParams && start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].addSophiaAnalytics(payload, eventData.containerAnalyticsParams);
            break;
        case 'license-resolve':
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_NGL;
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_CHICLET;
            payload['event.subtype'] = eventData.subtype
                ? eventData.subtype.toLowerCase()
                : PROPERTY_KEYS.SUBTYPE_RESOLVE_LICENSE;
            payload['event.value'] = eventData.trialDaysRemaining;
            eventData.containerAnalyticsParams && start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].addSophiaAnalytics(payload, eventData.containerAnalyticsParams);
            break;
        case 'recover':
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_HOME;
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_HOME;
            payload['event.subtype'] = PROPERTY_KEYS.SUBTYPE_RECOVERY;
            payload['event.value'] = eventData.value; // launchCount on mainStore.prefs
            break;
        case 'regression':
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_DEFAULT;
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_HOME;
            payload['event.subtype'] = PROPERTY_KEYS.SUBTYPE_REGRESSION;
            payload['event.value'] = eventData.value; // launchCount on mainStore.prefs
            break;
        case 'firstLaunch':
            payload['event.workflow'] = !eventData.isFallback
                ? PROPERTY_KEYS.WORKFLOW_HOME
                : PROPERTY_KEYS.WORKFLOW_DEFAULT;
            payload['event.subcategory'] = !eventData.isFallback
                ? PROPERTY_KEYS.SUBCATEGORY_HOME
                : PROPERTY_KEYS.SUBCATEGORY_DEFAULT_LAYOUT;
            payload['event.subtype'] = !eventData.isFallback
                ? PROPERTY_KEYS.SUBTYPE_NORMAL
                : PROPERTY_KEYS.SUBTYPE_FALLBACK;
            payload['event.value'] = PROPERTY_KEYS.VALUE_INITIAL;
            break;
        case 'component--carousel':
            payload['event.workflow'] = iaw_jsUtil__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].capitalize(eventData.workflow);
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_CAROUSEL;
            payload['event.subtype'] = eventData.subtype
                ? eventData.subtype.toLowerCase()
                : PROPERTY_KEYS.SUBTYPE_CAROUSEL;
            payload['ui.view_type'] = eventData.stage + ':' + eventData.layout;
            payload['content.id'] = ((_l = (_k = eventData === null || eventData === void 0 ? void 0 : eventData.fieldData) === null || _k === void 0 ? void 0 : _k.sys) === null || _l === void 0 ? void 0 : _l.id) || null;
            payload['content.name'] = ((_m = eventData === null || eventData === void 0 ? void 0 : eventData.fieldData) === null || _m === void 0 ? void 0 : _m.name) || null;
            payload['content.status'] =
                eventData.workflow && eventData.workflow === PROPERTY_KEYS.WORKFLOW_DEFAULT
                    ? PROPERTY_KEYS.STATUS_LOCAL
                    : PROPERTY_KEYS.STATUS_CACHED;
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].addSophiaAnalytics(payload, eventData.containerAnalyticsParams);
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].mapStageConditions(payload, eventData.stage);
            break;
        case 'npsModal':
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_NPS;
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_NPS;
            payload['event.subtype'] = PROPERTY_KEYS.SUBTYPE_DIALOG;
            payload['content.type'] = eventData.trigger;
            payload['content.category'] = eventData.bucket;
            payload['content.name'] = eventData.question;
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].addSophiaAnalytics(payload, eventData.containerAnalyticsParams);
            break;
        // Restoring legacy Search analytics
        case 'search-card':
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_SEARCH;
            payload['event.subcategory'] = iaw_jsUtil__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].capitalize(eventData.contentType);
            payload['event.subtype'] = PROPERTY_KEYS.SUBTYPE_CARD;
            payload['content.id'] = eventData.asset_id;
            payload['content.type'] = eventData.asset_type;
            payload['content.mimetype'] = eventData.type;
            payload['content.category'] = eventData.contentType;
            payload['ui.sequence'] = eventData.position;
            payload['ui.search_keyword'] = eventData.term;
            payload['search.request_guid'] = eventData.requestGUID;
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].addSearchSDMEnvAnalytics(payload);
            break;
        case 'search-recentbox':
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_SEARCH;
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_SEARCH;
            payload['event.subtype'] = PROPERTY_KEYS.SUBTYPE_PANEL;
            payload['search.request_guid'] = eventData.requestGUID;
            break;
        case 'search-category':
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_SEARCH;
            payload['event.subcategory'] = iaw_jsUtil__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].capitalize(eventData.contentType);
            payload['event.subtype'] = PROPERTY_KEYS.SUBTYPE_PANEL;
            payload['event.count'] = eventData.count;
            payload['content.category'] = eventData.contentType;
            payload['ui.search_keyword'] = eventData.term;
            payload['search.request_guid'] = eventData.requestGUID;
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].addSearchSDMEnvAnalytics(payload);
            break;
        default:
            _logger.error(PROPERTY_KEYS.DEFAULT_RENDER + iaw_jsUtil__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].capitalize(eventID) + JSON.stringify(eventData), true);
            break;
    }
});


/***/ }),

/***/ "lKWN":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var iaw_imsBridge__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("Mqyo");
/* harmony import */ var _fs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("xZA7");
/* harmony import */ var src_applications__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("3UBC");
/* harmony import */ var _start_stores_MainStore__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("cCFZ");
/* harmony import */ var src_components_start_performance__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("r1jx");
/* harmony import */ var src_js_start_CommonUtils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("5ndN");
/* harmony import */ var _js_iaw_VulcanAPI__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("9PyL");
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
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;
};
var __metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};








class Platform {
    /**
     * Initialize the platform checks.
     */
    async init() {
        if (src_js_start_CommonUtils__WEBPACK_IMPORTED_MODULE_5__[/* UXPHelpers */ "a"].isUXP) {
            window.require('uxp').host.addEventListener('themechanged', this.updateColorTheme.bind(this));
            await this.updateColorTheme();
            const _isDebugMode = await _fs__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].pathExists('debug.json');
            src_applications__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].debugMode = _isDebugMode;
        }
        else {
            src_applications__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].debugMode = true;
        }
        // No need to wait for the CCXProcess to launch. This is a fire and forget
        this.ccxProcessWait = Object(_js_iaw_VulcanAPI__WEBPACK_IMPORTED_MODULE_6__[/* vulcanAPI */ "a"])().launchApp('CCXP');
    }
    /**
     * Promise to wait for to ensure the app is ready.
     */
    get ready() {
        if (!this.readyPromise) {
            this.readyPromise = new Promise(resolve => {
                /**
                 * UXP fires a resize event when we switch from invisible to visible
                 */
                window.addEventListener('resize', function handleResize() {
                    window.removeEventListener('resize', handleResize);
                    resolve();
                });
            });
        }
        return this.readyPromise;
    }
    /**
     * Utility method called to wait on something after the initial render.
     */
    async lateLoad() {
        await this.ccxProcessWait;
    }
    /**
     * Check if we're in UXP environment
     *
     * @type {Boolean} true if we're using UXP
     */
    get isUXP() {
        return navigator.userAgent.indexOf('UXP') > -1;
    }
    /**
     * Determine if the current browser is running on a MS Windows based OS.
     *
     * @type {Boolean} value indicating true if the browser is on Windows, false otherwise.
     */
    get isWindows() {
        return src_js_start_CommonUtils__WEBPACK_IMPORTED_MODULE_5__[/* UXPHelpers */ "a"].isWindows;
    }
    get isXD() {
        return window.require('uxp').host.appCode === 'SPRK';
    }
    /**
     * Return the OS version based on the browser's navigator.
     *
     * @type {String} containing the OS version number.
     */
    get osVersion() {
        return src_applications__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].osVersion;
    }
    /**
     * Launches the system browser. Pass null as the to send unauthenticated, undefined for
     * automatic detection.
     *
     * @param url			{String} containing the URL to open
     * @param key			{String} element key that matches entry in iaw.cepUtil.authenticationInfo
     */
    async openDefaultBrowser(url, key = undefined) {
        if (key === undefined) {
            Object.keys(iaw_imsBridge__WEBPACK_IMPORTED_MODULE_0__[/* JumpTargets */ "b"]).forEach((x) => {
                var _a;
                if ((_a = iaw_imsBridge__WEBPACK_IMPORTED_MODULE_0__[/* JumpTargets */ "b"][x].url) === null || _a === void 0 ? void 0 : _a.includes(new URL(url).hostname)) {
                    key = x;
                }
            });
        }
        if (src_js_start_CommonUtils__WEBPACK_IMPORTED_MODULE_5__[/* UXPHelpers */ "a"].isUXP) {
            if (key) {
                url = await iaw_imsBridge__WEBPACK_IMPORTED_MODULE_0__[/* default */ "c"].getJumpUrl(key, url);
            }
            window.require('uxp').shell.openExternal(url);
            return;
        }
        else {
            window.open(url, '_blank');
        }
    }
    /**
     * Returns the current color theme of the user interface.
     */
    async updateColorTheme() {
        if (src_js_start_CommonUtils__WEBPACK_IMPORTED_MODULE_5__[/* UXPHelpers */ "a"].isUXP) {
            const theme = await window.require('uxp').host.getTheme();
            _start_stores_MainStore__WEBPACK_IMPORTED_MODULE_3__["mainStore"].setColorTheme(Object(src_js_start_CommonUtils__WEBPACK_IMPORTED_MODULE_5__[/* getSupportedTheme */ "g"])(theme));
        }
    }
    getParentDir(path) {
        const separator = platform.isWindows ? '\\' : '/';
        if (!path || typeof path !== 'string') {
            return path;
        }
        const index = path.lastIndexOf(separator);
        return index > 0 ? path.substring(0, index) : path;
    }
}
__decorate([
    Object(src_components_start_performance__WEBPACK_IMPORTED_MODULE_4__[/* Time */ "b"])('Platform init'),
    __metadata("design:type", Function),
    __metadata("design:paramtypes", []),
    __metadata("design:returntype", Promise)
], Platform.prototype, "init", null);
const platform = new Platform();
/* harmony default export */ __webpack_exports__["a"] = (platform);


/***/ }),

/***/ "lO5s":
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// ES2015 Symbol polyfill for environments that do not (or partially) support it


var d = __webpack_require__("9Qh4"),
    validateSymbol = __webpack_require__("s4AO"),
    NativeSymbol = __webpack_require__("fEpb").Symbol,
    generateName = __webpack_require__("lk0t"),
    setupStandardSymbols = __webpack_require__("4D8k"),
    setupSymbolRegistry = __webpack_require__("Jb7g");

var create = Object.create,
    defineProperties = Object.defineProperties,
    defineProperty = Object.defineProperty;
var SymbolPolyfill, HiddenSymbol, isNativeSafe;

if (typeof NativeSymbol === "function") {
  try {
    String(NativeSymbol());
    isNativeSafe = true;
  } catch (ignore) {}
} else {
  NativeSymbol = null;
} // Internal constructor (not one exposed) for creating Symbol instances.
// This one is used to ensure that `someSymbol instanceof Symbol` always return false


HiddenSymbol = function Symbol(description) {
  if (this instanceof HiddenSymbol) throw new TypeError("Symbol is not a constructor");
  return SymbolPolyfill(description);
}; // Exposed `Symbol` constructor
// (returns instances of HiddenSymbol)


module.exports = SymbolPolyfill = function Symbol(description) {
  var symbol;
  if (this instanceof Symbol) throw new TypeError("Symbol is not a constructor");
  if (isNativeSafe) return NativeSymbol(description);
  symbol = create(HiddenSymbol.prototype);
  description = description === undefined ? "" : String(description);
  return defineProperties(symbol, {
    __description__: d("", description),
    __name__: d("", generateName(description))
  });
};

setupStandardSymbols(SymbolPolyfill);
setupSymbolRegistry(SymbolPolyfill); // Internal tweaks for real symbol producer

defineProperties(HiddenSymbol.prototype, {
  constructor: d(SymbolPolyfill),
  toString: d("", function () {
    return this.__name__;
  })
}); // Proper implementation of methods exposed on Symbol.prototype
// They won't be accessible on produced symbol instances as they derive from HiddenSymbol.prototype

defineProperties(SymbolPolyfill.prototype, {
  toString: d(function () {
    return "Symbol (" + validateSymbol(this).__description__ + ")";
  }),
  valueOf: d(function () {
    return validateSymbol(this);
  })
});
defineProperty(SymbolPolyfill.prototype, SymbolPolyfill.toPrimitive, d("", function () {
  var symbol = validateSymbol(this);
  if (typeof symbol === "symbol") return symbol;
  return symbol.toString();
}));
defineProperty(SymbolPolyfill.prototype, SymbolPolyfill.toStringTag, d("c", "Symbol")); // Proper implementaton of toPrimitive and toStringTag for returned symbol instances

defineProperty(HiddenSymbol.prototype, SymbolPolyfill.toStringTag, d("c", SymbolPolyfill.prototype[SymbolPolyfill.toStringTag])); // Note: It's important to define `toPrimitive` as last one, as some implementations
// implement `toPrimitive` natively without implementing `toStringTag` (or other specified symbols)
// And that may invoke error in definition flow:
// See: https://github.com/medikoo/es6-symbol/issues/13#issuecomment-164146149

defineProperty(HiddenSymbol.prototype, SymbolPolyfill.toPrimitive, d("c", SymbolPolyfill.prototype[SymbolPolyfill.toPrimitive]));

/***/ }),

/***/ "lOID":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("NZUh"),
      24: __webpack_require__("Qygo")
    }
  }));
};

WrappedIcon.displayName = 'HelpOutline';
exports.default = WrappedIcon;

/***/ }),

/***/ "lPCU":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* unused harmony export matches */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return SpacesFilter; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return SpacesFilterEmptyState; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return spacesNameMatchesFilter; });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _react_react_spectrum_Button__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Cn9g");
/* harmony import */ var _react_react_spectrum_Button__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Button__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _react_react_spectrum_Search__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("sfxt");
/* harmony import */ var _react_react_spectrum_Search__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Search__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _SpacesFilter_css__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("RkiM");
/* harmony import */ var _SpacesFilter_css__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_SpacesFilter_css__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("VIzJ");
/* harmony import */ var _EmptyState__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("EkhW");
/* harmony import */ var _images_S_IlluCCWeb_NoFilterMatches_160x100_svg__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("AXb1");
/* harmony import */ var _hooks_useIntl__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("BuN4");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("TSYQ");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_8__);
/* harmony import */ var _utils_UXPUtils__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__("LbGp");










function matches(element, filterText) {
    let result = false;
    if (filterText) {
        filterText = filterText === null || filterText === void 0 ? void 0 : filterText.toLowerCase();
        let text = (element === null || element === void 0 ? void 0 : element.name.toLowerCase()) || '';
        //  we match text anywhere in the word.
        if (text.indexOf(filterText) >= 0) {
            result = true;
        }
    }
    else {
        result = true;
    }
    return result;
}
const FormattedMessageWithClass = props => (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_4__[/* FormattedMessage */ "c"], Object.assign({}, props), txt => react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", { className: props.className }, txt)));
function SpacesFilter(props) {
    let intl = Object(_hooks_useIntl__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"])();
    // [CCPROJ-6073] Adding classname based on theme since ReactSpectrumProvider is loosing all information
    //  when Textfield is rendered in Document picker.
    return (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", { className: classnames__WEBPACK_IMPORTED_MODULE_8___default()(_SpacesFilter_css__WEBPACK_IMPORTED_MODULE_3___default.a.SpacesFilter, _utils_UXPUtils__WEBPACK_IMPORTED_MODULE_9__[/* default */ "a"].usingUXP() && _SpacesFilter_css__WEBPACK_IMPORTED_MODULE_3___default.a.UXP) },
        react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_4__[/* FormattedMessage */ "c"], { id: "project1Up.section.filter" }),
        react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_react_react_spectrum_Search__WEBPACK_IMPORTED_MODULE_2___default.a, { icon: null, disableOnOverlay: true, className: _SpacesFilter_css__WEBPACK_IMPORTED_MODULE_3___default.a.filterTextfield, quiet: true, onChange: props.onFilter, placeholder: intl.formatMessage({
                id: 'project1Up.section.filter.enterKeyword',
            }), value: props.value, "data-test-id": "HeaderAction__filterInput", role: 'text field', "aria-label": intl.formatMessage({
                id: 'project1Up.section.filter.label',
            }) })));
}
function SpacesFilterEmptyState(props) {
    const filterBold = props.filterText;
    const hasFilterString = !!props.filterText.length;
    return (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_EmptyState__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"], { heading: react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_4__[/* FormattedMessage */ "c"], { id: "team.filter.empty.heading" }), illustration: react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_images_S_IlluCCWeb_NoFilterMatches_160x100_svg__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"], null), description: hasFilterString ? (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null,
            react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_4__[/* FormattedMessage */ "c"], { id: "team.filter.empty.description1" }),
            react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(FormattedMessageWithClass, { className: "bold", id: "team.filter.filterText", values: {
                    filter: filterBold,
                } }),
            react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_4__[/* FormattedMessage */ "c"], { id: "team.filter.empty.description2" }))) : (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_4__[/* FormattedMessage */ "c"], { id: "team.filter.no.match.description" })) },
        react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_react_react_spectrum_Button__WEBPACK_IMPORTED_MODULE_1___default.a, { variant: "primary", onClick: props.onResetFilter },
            react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_4__[/* FormattedMessage */ "c"], { id: "button.viewEverything" }))));
}
function spacesNameMatchesFilter(element, filter) {
    return !!filter ? matches(element, filter) : true;
}


/***/ }),

/***/ "lSCD":
/***/ (function(module, exports, __webpack_require__) {

var baseGetTag = __webpack_require__("NykK"),
    isObject = __webpack_require__("GoyQ");
/** `Object#toString` result references. */


var asyncTag = '[object AsyncFunction]',
    funcTag = '[object Function]',
    genTag = '[object GeneratorFunction]',
    proxyTag = '[object Proxy]';
/**
 * Checks if `value` is classified as a `Function` object.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a function, else `false`.
 * @example
 *
 * _.isFunction(_);
 * // => true
 *
 * _.isFunction(/abc/);
 * // => false
 */

function isFunction(value) {
  if (!isObject(value)) {
    return false;
  } // The use of `Object#toString` avoids issues with the `typeof` operator
  // in Safari 9 which returns 'object' for typed arrays and other constructors.


  var tag = baseGetTag(value);
  return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;
}

module.exports = isFunction;

/***/ }),

/***/ "lSNA":
/***/ (function(module, exports) {

function _defineProperty(obj, key, value) {
  if (key in obj) {
    Object.defineProperty(obj, key, {
      value: value,
      enumerable: true,
      configurable: true,
      writable: true
    });
  } else {
    obj[key] = value;
  }

  return obj;
}

module.exports = _defineProperty;
module.exports["default"] = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "lVBX":
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/* jslint esnext: true */


var src$core$$ = __webpack_require__("fNJh"),
    src$en$$ = __webpack_require__("R5jr");

src$core$$["default"].__addLocaleData(src$en$$["default"]);

src$core$$["default"].defaultLocale = 'en';
exports["default"] = src$core$$["default"];

/***/ }),

/***/ "lWpZ":
/***/ (function(module, exports, __webpack_require__) {

var DES = __webpack_require__("Hjy1");

var aes = __webpack_require__("/ab2");

var aesModes = __webpack_require__("usKN");

var desModes = __webpack_require__("C+gy");

var ebtk = __webpack_require__("roQf");

function createCipher(suite, password) {
  suite = suite.toLowerCase();
  var keyLen, ivLen;

  if (aesModes[suite]) {
    keyLen = aesModes[suite].key;
    ivLen = aesModes[suite].iv;
  } else if (desModes[suite]) {
    keyLen = desModes[suite].key * 8;
    ivLen = desModes[suite].iv;
  } else {
    throw new TypeError('invalid suite type');
  }

  var keys = ebtk(password, false, keyLen, ivLen);
  return createCipheriv(suite, keys.key, keys.iv);
}

function createDecipher(suite, password) {
  suite = suite.toLowerCase();
  var keyLen, ivLen;

  if (aesModes[suite]) {
    keyLen = aesModes[suite].key;
    ivLen = aesModes[suite].iv;
  } else if (desModes[suite]) {
    keyLen = desModes[suite].key * 8;
    ivLen = desModes[suite].iv;
  } else {
    throw new TypeError('invalid suite type');
  }

  var keys = ebtk(password, false, keyLen, ivLen);
  return createDecipheriv(suite, keys.key, keys.iv);
}

function createCipheriv(suite, key, iv) {
  suite = suite.toLowerCase();
  if (aesModes[suite]) return aes.createCipheriv(suite, key, iv);
  if (desModes[suite]) return new DES({
    key: key,
    iv: iv,
    mode: suite
  });
  throw new TypeError('invalid suite type');
}

function createDecipheriv(suite, key, iv) {
  suite = suite.toLowerCase();
  if (aesModes[suite]) return aes.createDecipheriv(suite, key, iv);
  if (desModes[suite]) return new DES({
    key: key,
    iv: iv,
    mode: suite,
    decrypt: true
  });
  throw new TypeError('invalid suite type');
}

function getCiphers() {
  return Object.keys(desModes).concat(aes.getCiphers());
}

exports.createCipher = exports.Cipher = createCipher;
exports.createCipheriv = exports.Cipheriv = createCipheriv;
exports.createDecipher = exports.Decipher = createDecipher;
exports.createDecipheriv = exports.Decipheriv = createDecipheriv;
exports.listCiphers = exports.getCiphers = getCiphers;

/***/ }),

/***/ "lcsq":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

exports.default = Icon;

var _classnames = __webpack_require__("TSYQ");

var _classnames2 = _interopRequireDefault(_classnames);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _defineProperty(obj, key, value) {
  if (key in obj) {
    Object.defineProperty(obj, key, {
      value: value,
      enumerable: true,
      configurable: true,
      writable: true
    });
  } else {
    obj[key] = value;
  }

  return obj;
}

function _objectWithoutProperties(obj, keys) {
  var target = {};

  for (var i in obj) {
    if (keys.indexOf(i) >= 0) continue;
    if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;
    target[i] = obj[i];
  }

  return target;
}

var SIZES = {
  XXS: 18,
  XS: 24,
  S: 18,
  M: 24,
  L: 18,
  XL: 24,
  XXL: 24
};

function Icon(_ref) {
  var icon = _ref.icon,
      _ref$size = _ref.size,
      size = _ref$size === undefined ? 'M' : _ref$size,
      className = _ref.className,
      children = _ref.children,
      alt = _ref.alt,
      otherProps = _objectWithoutProperties(_ref, ['icon', 'size', 'className', 'children', 'alt']);

  var sizeKey = SIZES[size];
  var svg = icon && icon[sizeKey] || icon || children;

  if (typeof svg === 'string') {
    throw new Error('String icon names are deprecated. Please import icons from react-spectrum/Icon/IconName and render as <IconName />.');
  }

  return _react2.default.cloneElement(svg, _extends({
    focusable: 'false',
    'aria-label': alt,
    'aria-hidden': alt ? null : 'true',
    role: 'img',
    className: (0, _classnames2.default)(svg.props.className, 'spectrum-Icon', _defineProperty({}, 'spectrum-Icon--size' + size, size), className)
  }, otherProps));
}

Icon.displayName = 'Icon';

/***/ }),

/***/ "ld/C":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.IngestContext = undefined;

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var IngestContext = exports.IngestContext = _react2.default.createContext({
  fireEvent: function fireEvent() {
    return new Promise(function (resolve) {
      return resolve();
    });
  }
});

/***/ }),

/***/ "ldVq":
/***/ (function(module, exports, __webpack_require__) {

var classof = __webpack_require__("QMMT");

var ITERATOR = __webpack_require__("UWiX")('iterator');

var Iterators = __webpack_require__("SBuE");

module.exports = __webpack_require__("WEpk").isIterable = function (it) {
  var O = Object(it);
  return O[ITERATOR] !== undefined || '@@iterator' in O // eslint-disable-next-line no-prototype-builtins
  || Iterators.hasOwnProperty(classof(O));
};

/***/ }),

/***/ "le2V":
/***/ (function(module, exports) {

/* eslint-disable max-len */
module.exports = {
  'confirmationDialog.dontShowAgain': "Don't show again",
  'confirmationDialog.confirm.default': 'Continue',
  'confirmationDialog.cancel.default': 'Cancel',
  'confirmationDialog.learnMore': 'Learn more',
  'toast.warning.place': "Can't place linked cloud documents yet. Continue to embed instead.",
  'toast.warning.placeLinkOrEmbed': 'Assets you place are now linked to the original by default. That means if you edit it in one place, those changes are reflected everywhere.',
  'toast.warning.saveAs.invalidFormat': "Sorry, you can't save {genericFormat} files here. Your file will be saved as {adobeFormat}.",
  'pickerView.recent': 'Recent',
  'pickerView.cloud_docs': 'Your files',
  'pickerView.shared_with_you': 'Shared with you',
  'pickerView.projects': 'Projects',
  'pickerView.files': 'Files',
  'pickerView.computer': 'Your Computer...',
  'pickerView.saveAsInput': 'Save As',
  'pickerView.exportInput': 'Export As',
  'pickerView.sketch_library': 'Convert Sketch Library...',
  'pickerView.error.saveAsOrExport.default': 'File name is invalid.',
  'pickerView.error.saveAsOrExport.invalidName': 'Sorry, this name contains invalid character(s).',
  'pickerView.error.saveAsOrExport.invalidEnd': 'Name cannot end with "." or empty space.',
  'pickerView.error.saveAsOrExport.invalidChar': 'Name cannot contain the following characters: {characters}',
  'pickerView.error.saveAsOrExport.charRestriction': "Names can't be longer than 200 characters.",
  'pickerView.error.saveAsOrExport.duplicateName': 'You already have a cloud document here with this name.',
  'pickerView.error.addALibrary.permission': "You don't have permission to add this library",
  'pickerViewFooter.button.add': 'Add',
  'pickerViewFooter.button.cancel': 'Cancel',
  'pickerViewFooter.button.copy': 'Copy here',
  'pickerViewFooter.button.move': 'Move here',
  'pickerViewFooter.button.moveToProject': 'Move here',
  'pickerViewFooter.button.copyToProject': 'Copy here',
  'pickerViewFooter.button.choose': 'Choose',
  'pickerViewFooter.button.save': 'Save',
  'pickerViewFooter.button.switchToOSPicker': 'On your computer',
  'pickerViewFooter.button.save.offline': 'Internet connection required',
  'pickerViewFooter.button.saveAsCopy': 'Save',
  'pickerViewFooter.button.export': 'Export',
  'pickerViewFooter.button.placeLinkOrEmbed': 'Place',
  'pickerViewFooter.button.import': 'Import',
  'pickerViewFooter.checkbox.placeLink': 'Linked',
  'pickerViewFooter.tooltip.placeLink': 'You can only place this item as a linked asset.',
  'pickerViewFooter.tooltip.placeEmbed': 'You can only place this item as embedded.',
  'pickerViewFooter.saveAs.format.label': 'Format',
  'pickerViewFooter.button.selectProject': 'Save',
  'onboardingCdp.title': 'You can do much more if you save as a cloud document',
  'onboardingCdp.tooltip': "If you save to your computer, you won't be able to use cloud features.",
  'onboardingCdp.tooltip.link': 'Learn more',
  'onboardingCdp.table.header.saveToCloud': 'Creative Cloud',
  'onboardingCdp.table.header.saveToLocal': 'On your computer',
  'onboardingCdp.button.saveToCloud': 'Save to Creative Cloud',
  'onboardingCdp.feature.offline': 'Offline access',
  'onboardingCdp.feature.syncing': 'Cloud syncing to all your devices',
  'onboardingCdp.feature.autosave': 'Autosaving every change',
  'onboardingCdp.feature.versionHistory': 'Version history',
  'onboardingCdp.feature.inviteToEdit': 'Invite to edit',
  'onboardingCdp.button.saveToLocal': 'Save on your computer',
  'onboardingCdp.checkbox.doNotShowAgain': "Don't show again",
  'uap.title.place': 'Place from Creative Cloud',
  'uap.title.import': 'Import from Creative Cloud',
  'uap.title.placeLinkOrEmbed': 'Place from Creative Cloud',
  'uap.title.linkAssets': 'Link from Creative Cloud',
  'uap.title.open': 'Open from Creative Cloud',
  'uap.title.relink': 'Link from Creative Cloud',
  'uap.title.saveAs': 'Save to Creative Cloud',
  'uap.title.saveAsCopy': 'Save to Creative Cloud',
  'uap.title.saveToFolder': 'Save to Creative Cloud',
  'uap.title.export': 'Export to Creative Cloud',
  'uap.title.copy': 'Copy to Creative Cloud',
  'uap.title.move': 'Move in Creative Cloud',
  'uap.title.moveToProject': 'Move in Creative Cloud',
  'uap.title.copyToProject': 'Copy to Creative Cloud',
  'uap.title.reference': 'Add to Creative Cloud',
  'uap.title.selectProject': 'Save to Creative Cloud',
  'move.toSpace.confirm.title': 'Version history will be deleted',
  'move.toSpace.confirm.message': "Moving this file will cause version history to be deleted.  If you'd like to retain your version history, make a copy instead."
};

/***/ }),

/***/ "lhgn":
/***/ (function(module, exports, __webpack_require__) {

module.exports = __webpack_require__.p + "assets/start/Banner_Links@2x.png";

/***/ }),

/***/ "lhlH":
/***/ (function(module) {

module.exports = JSON.parse("{\"Clear search\":\"Очистити пошук\"}");

/***/ }),

/***/ "ljP9":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.NotificationStatus = exports.NotificationType = void 0;
/**
 * List of notification type sent to clients.
 */

var NotificationType;

(function (NotificationType) {
  NotificationType["authentication"] = "authentication";
  NotificationType["network"] = "network";
  NotificationType["coreSync"] = "coreSync";
  NotificationType["quota"] = "quota";
})(NotificationType = exports.NotificationType || (exports.NotificationType = {}));
/**
 * List of notification status sent to clients.
 */


var NotificationStatus;

(function (NotificationStatus) {
  NotificationStatus["ACPL_USER_REGISTERED"] = "acplUserRegistered";
  NotificationStatus["ACPL_USER_NOT_REGISTERED"] = "acplUserNotRegistered";
  /**
   * @deprecated
   */

  NotificationStatus["ACPL_AUTHENTICATED"] = "acplAuthenticated";
  /**
   * @deprecated
   */

  NotificationStatus["ACPL_NOT_AUTHENTICATED"] = "acplNotAuthenticated";
  NotificationStatus["CORESYNC_REACHABLE_AND_COMPATIBLE"] = "coreSyncReachableAndCompatible";
  NotificationStatus["CORESYNC_REACHABLE_NOT_COMPATIBLE"] = "coreSyncReachableNotCompatible";
  NotificationStatus["CORESYNC_NOT_REACHABLE"] = "coreSyncNotReachable";
  NotificationStatus["HAS_INTERNET_ACCESS"] = "online";
  NotificationStatus["NO_INTERNET_ACCESS"] = "offline";
  NotificationStatus["QUOTA_AVAILABLE"] = "quotaAvailable";
  NotificationStatus["QUOTA_EXCEEDED"] = "quotaExceeded";
  NotificationStatus["CLOUD_STORAGE_DISABLED"] = "cloudStorageDisabled";
})(NotificationStatus = exports.NotificationStatus || (exports.NotificationStatus = {}));

/***/ }),

/***/ "ljhN":
/***/ (function(module, exports) {

/**
 * Performs a
 * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
 * comparison between two values to determine if they are equivalent.
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to compare.
 * @param {*} other The other value to compare.
 * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
 * @example
 *
 * var object = { 'a': 1 };
 * var other = { 'a': 1 };
 *
 * _.eq(object, object);
 * // => true
 *
 * _.eq(object, other);
 * // => false
 *
 * _.eq('a', 'a');
 * // => true
 *
 * _.eq('a', Object('a'));
 * // => false
 *
 * _.eq(NaN, NaN);
 * // => true
 */
function eq(value, other) {
  return value === other || value !== value && other !== other;
}

module.exports = eq;

/***/ }),

/***/ "lk0t":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var d = __webpack_require__("9Qh4");

var create = Object.create,
    defineProperty = Object.defineProperty,
    objPrototype = Object.prototype;
var created = create(null);

module.exports = function (desc) {
  var postfix = 0,
      name,
      ie11BugWorkaround;

  while (created[desc + (postfix || "")]) ++postfix;

  desc += postfix || "";
  created[desc] = true;
  name = "@@" + desc;
  defineProperty(objPrototype, name, d.gs(null, function (value) {
    // For IE11 issue see:
    // https://connect.microsoft.com/IE/feedbackdetail/view/1928508/
    //    ie11-broken-getters-on-dom-objects
    // https://github.com/medikoo/es6-symbol/issues/12
    if (ie11BugWorkaround) return;
    ie11BugWorkaround = true;
    defineProperty(this, name, d(value));
    ie11BugWorkaround = false;
  }));
  return name;
};

/***/ }),

/***/ "lm0R":
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(process) {

if (typeof process === 'undefined' || !process.version || process.version.indexOf('v0.') === 0 || process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {
  module.exports = {
    nextTick: nextTick
  };
} else {
  module.exports = process;
}

function nextTick(fn, arg1, arg2, arg3) {
  if (typeof fn !== 'function') {
    throw new TypeError('"callback" argument must be a function');
  }

  var len = arguments.length;
  var args, i;

  switch (len) {
    case 0:
    case 1:
      return process.nextTick(fn);

    case 2:
      return process.nextTick(function afterTickOne() {
        fn.call(null, arg1);
      });

    case 3:
      return process.nextTick(function afterTickTwo() {
        fn.call(null, arg1, arg2);
      });

    case 4:
      return process.nextTick(function afterTickThree() {
        fn.call(null, arg1, arg2, arg3);
      });

    default:
      args = new Array(len - 1);
      i = 0;

      while (i < args.length) {
        args[i++] = arguments[i];
      }

      return process.nextTick(function afterTick() {
        fn.apply(null, args);
      });
  }
}
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("8oxB")))

/***/ }),

/***/ "lmMR":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Logger; });
/* unused harmony export LogLevel */
/* unused harmony export internalForTests */
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2019 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
var LogLevel;
(function (LogLevel) {
    LogLevel[LogLevel["DEBUG"] = 0] = "DEBUG";
    LogLevel[LogLevel["INFO"] = 1] = "INFO";
    LogLevel[LogLevel["WARN"] = 2] = "WARN";
    LogLevel[LogLevel["ERROR"] = 3] = "ERROR";
    LogLevel[LogLevel["DISABLED"] = 4] = "DISABLED";
})(LogLevel || (LogLevel = {}));
// For temporary debugging, use the logpoint trick in Chrome to get a reference to Logger class,
// then use Logger.setLogLevel to override. If you need to catch earlier log messages, modify
// LOG_LEVEL map: either change the entry for 'default' to LogLevel.DEBUG, or add entries for
// the classes you want to monitor (e.g., ['FolderCollection', LogLevel.DEBUG], ['Collection', LogLevel.DEBUG]).
const LOG_LEVEL = new Map([['default', LogLevel.INFO]]);
const LAST_ID = new Map();
const LOG_METHOD = {
    [LogLevel.DEBUG]: 'debug',
    [LogLevel.INFO]: 'log',
    [LogLevel.WARN]: 'warn',
    [LogLevel.ERROR]: 'error',
};
// For testing, swap out default LOG_LEVEL for a different instance so that
// logging can be disabled by default for tests, but the prod instance can
// be inspected by Logger.test.ts
let LOG_LEVEL_ENV = LOG_LEVEL;
if (false) {}
/**
 * Logging class to respect loglevels for debugging
 *
 * @example
 * class Collection {
 *    private logger = new Logger(this.constructor.name);  // subclasses will use their own name for logging
 *    public doIt() {
 *      this.logger.log('doing it');
 *    }
 * }
 *
 * class FolderCollection extends Collection { }
 * c = new Collection();
 * f = new FolderCollection();
 * c.doIt(); // console: [Collection-1] doing it
 * f.doIt(); // console: [FolderCollection-1] doing it
 */
class Logger {
    constructor(className) {
        this.className = className;
        this.instanceId = (LAST_ID.get(className) || 0) + 1;
        LAST_ID.set(className, this.instanceId);
    }
    static setLogLevel(logLevel, className = 'default') {
        LOG_LEVEL_ENV.set(className, logLevel);
    }
    out(logLevel, msg, ...args) {
        const currentLevel = LOG_LEVEL_ENV.has(this.className)
            ? LOG_LEVEL_ENV.get(this.className)
            : LOG_LEVEL_ENV.get('default');
        if (currentLevel <= logLevel) {
            // @ts-ignore -- `LOG_METHOD[logLevel]` is valid method of `console`
            // eslint-disable-next-line no-console
            console[LOG_METHOD[logLevel]](`[${this.className}-${this.instanceId}] ${msg}`, ...args);
        }
    }
    debug(msg, ...args) {
        this.out(LogLevel.DEBUG, msg, ...args);
    }
    log(msg, ...args) {
        this.out(LogLevel.INFO, msg, ...args);
    }
    warn(msg, ...args) {
        this.out(LogLevel.WARN, msg, ...args);
    }
    error(msg, ...args) {
        this.out(LogLevel.ERROR, msg, ...args);
    }
}
let internalForTests;
if (false) {}



/***/ }),

/***/ "lnCV":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.UxpSelectMenu = UxpSelectMenu;
exports.default = void 0;

var _Alert = _interopRequireDefault(__webpack_require__("VQdv"));

var _Button = _interopRequireDefault(__webpack_require__("Cn9g"));

var _ChevronDownMedium = _interopRequireDefault(__webpack_require__("o1jT"));

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _Dropdown = _interopRequireDefault(__webpack_require__("T1rY"));

var _filterDOMProps = _interopRequireDefault(__webpack_require__("Cv/Q"));

var _Popover = _interopRequireDefault(__webpack_require__("pyUw"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

var _Select = _interopRequireDefault(__webpack_require__("/Iqz"));

var _SelectList = _interopRequireDefault(__webpack_require__("z8hX"));

var _UxpOptions = _interopRequireDefault(__webpack_require__("zvwv"));

__webpack_require__("9+Px");

const _excluded = ["options", "quiet", "onClose", "closeOnSelect", "menuClassName", "disabled", "invalid", "multiple", "required", "flexible", "placeholder", "className", "renderItem", "flip", "alignRight", "labelId", "tabIndex", "id", "icon", "aria-label", "aria-labelledby"],
      _excluded2 = ["onClose", "onOpen", "onSelect", "className", "open", "placement", "style", "closeOnSelect", "flyoutMenu", "quiet"];

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

let POPOVER_MAX_WIDTH = null;
let QUIET_MARGIN = 11;

class UxpSelect extends _Select.default {
  componentDidMount() {
    if (POPOVER_MAX_WIDTH == null) {
      // Render a fake popover we can measure the styles of, place it inside ourselves
      // so it gets styles dictated by the current scale
      let dummyPopover = document.createElement('div');
      dummyPopover.className = 'spectrum-Dropdown-popover';
      document.body.appendChild(dummyPopover);
      POPOVER_MAX_WIDTH = parseInt(window.getComputedStyle(dummyPopover).maxWidth, 10);
      document.body.removeChild(dummyPopover);
    }

    window.addEventListener('resize', this.updateSize);
    this.updateSize();
  }

  render() {
    let _this$props = this.props,
        {
      options = [],
      quiet,
      onClose,
      closeOnSelect,
      menuClassName,
      disabled = false,
      invalid = false,
      multiple = false,
      required = false,
      flexible = false,
      placeholder = 'Select an option',
      className,
      renderItem,
      flip = true,
      alignRight,
      labelId,
      tabIndex,
      id = this.selectId,
      icon,
      'aria-label': ariaLabel,
      'aria-labelledby': ariaLabelledby
    } = _this$props,
        otherProps = _objectWithoutProperties(_this$props, _excluded);

    let {
      value
    } = this.state;
    const valueId = `${id}-value`;

    if (ariaLabelledby) {
      ariaLabelledby += ` ${valueId}`;
    } else if (ariaLabel) {
      ariaLabelledby = id + ' ' + valueId;
    } else if (labelId) {
      ariaLabelledby = labelId + ' ' + valueId;
    } else {
      ariaLabelledby = valueId;
    }

    let label = placeholder;

    if (!multiple) {
      const selectedOption = options.find(o => o.value === value);
      label = selectedOption ? selectedOption.label : placeholder;
      icon = selectedOption && selectedOption.icon;
    }

    closeOnSelect = typeof closeOnSelect === 'boolean' ? closeOnSelect : !multiple; // Pass ARIA props to the button, and others to the Dropdown.

    let domProps = Object.entries((0, _filterDOMProps.default)(otherProps));
    let buttonProps = domProps.filter(x => /^aria-.*$/.test(x[0])).reduce((o, i) => (o[i[0]] = i[1], o), {});
    let dropdownProps = domProps.filter(x => !/^aria-.*$/.test(x[0])).reduce((o, i) => (o[i[0]] = i[1], o), {});
    let minWidth = this.state.width;

    if (quiet) {
      minWidth = this.state.width + QUIET_MARGIN;
    }

    if (quiet && flexible) {
      /**
       * vivek-- specify min-width to max-content in case of flexible variant, UXP doesn't compute size based on content itself
       * Once the flyout dialog size is calculated based on content in UXP, we can remove this
       */
      minWidth = 'max-content';
    }

    return /*#__PURE__*/_react.default.createElement(_Dropdown.default, _extends({
      className: (0, _classnames.default)('spectrum-Dropdown', {
        'spectrum-Dropdown--quiet': quiet,
        'react-spectrum-Dropdown-fixed': quiet && !flexible,
        'react-spectrum-Dropdown-flexible': flexible,
        'is-disabled': disabled,
        'is-invalid': invalid
      }, className),
      isFlyout: _UxpOptions.default.productNeedsOverlayFix,
      closeOnSelect: closeOnSelect,
      onSelect: this.onSelect,
      onOpen: this.onOpen,
      onClose: onClose,
      "aria-required": required,
      "aria-multiselectable": multiple,
      "aria-disabled": disabled,
      "aria-invalid": invalid,
      alignRight: alignRight,
      flip: flip
    }, dropdownProps), /*#__PURE__*/_react.default.createElement(_Button.default, _extends({
      className: (0, _classnames.default)('spectrum-Dropdown-trigger', {
        'spectrum-Dropdown-trigger--quiet': quiet
      }),
      type: "button",
      variant: "field",
      "aria-haspopup": "listbox",
      quiet: quiet,
      tabIndex: tabIndex,
      disabled: disabled,
      invalid: invalid,
      ref: b => this.button = b,
      overrideOnKeyDown: true,
      "aria-label": ariaLabel,
      "aria-labelledby": ariaLabelledby,
      id: id,
      icon: icon
    }, buttonProps), /*#__PURE__*/_react.default.createElement("span", {
      id: valueId,
      className: (0, _classnames.default)('spectrum-Dropdown-label', {
        'is-placeholder': label === placeholder
      })
    }, label), invalid && /*#__PURE__*/_react.default.createElement(_Alert.default, {
      size: "S"
    }), /*#__PURE__*/_react.default.createElement(_ChevronDownMedium.default, {
      size: null,
      className: "spectrum-Dropdown-icon"
    })), /*#__PURE__*/_react.default.createElement(UxpSelectMenu, {
      dropdownMenu: true,
      flyoutMenu: _UxpOptions.default.productNeedsOverlayFix,
      className: menuClassName,
      options: options,
      value: value,
      multiple: multiple,
      disabled: disabled,
      invalid: invalid,
      required: required,
      quiet: quiet,
      style: {
        minWidth: minWidth,
        maxWidth: this.state.width > POPOVER_MAX_WIDTH ? this.state.width : null,
        overflowY: 'auto',
        marginRight: quiet && alignRight ? -1 * (QUIET_MARGIN / 2) : null
      },
      autoFocus: true,
      renderItem: renderItem
    }));
  }

}

exports.default = UxpSelect;

function UxpSelectMenu(_ref) {
  let {
    onClose,
    onOpen,
    onSelect,
    className,
    open,
    placement,
    style,
    closeOnSelect,
    flyoutMenu,
    quiet
  } = _ref,
      props = _objectWithoutProperties(_ref, _excluded2);

  return /*#__PURE__*/_react.default.createElement(_Popover.default, {
    flyoutMenu: flyoutMenu,
    isDialog: false,
    placement: placement,
    open: open,
    onClose: onClose,
    onOpen: onOpen,
    style: style,
    className: (0, _classnames.default)('spectrum-Dropdown-popover', {
      'spectrum-Dropdown-popover--quiet': quiet
    }),
    closeOnSelect: closeOnSelect
  }, /*#__PURE__*/_react.default.createElement(_SelectList.default, _extends({}, props, {
    className: className,
    onChange: onSelect,
    onClose: onClose,
    onTab: e => e.preventDefault(),
    defaultpreventedkeys: ['Tab']
  })));
}

/***/ }),

/***/ "lnG/":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("iMIL");
/* harmony import */ var _ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("2vnA");
/* harmony import */ var _types_IAssetModel__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("avlf");
/* harmony import */ var _types_IAssetModel__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_types_IAssetModel__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _utils_metrics__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("jaHz");
/* harmony import */ var _CDOAssetModel__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("s8Eg");
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;
};
var __metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var _a;
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2020 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/





const EXCLUDED_PROPERTIES = new Set([
    'rendition',
    'collaborators',
    'hasFetchedRendition',
    'hasPendingOperation',
]);
class ACPFetchAssetModel extends _CDOAssetModel__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"] {
    constructor(config, cloudDocumentsClient, onAnalyticsEvent) {
        super(config);
        this.preferCloudThumbnails = false;
        this.isShared = false;
        this.initCloudDocumentsClient(cloudDocumentsClient);
        this.onAnalyticsEvent = onAnalyticsEvent;
        // TODO: have acp-fetch return a number for size
        if (typeof this.size === 'string') {
            this.size = parseInt(this.size, 10);
        }
    }
    // For backward compatibility with MST, primarily for tests. Client code should switch to using constructor.
    // @deprecated
    static create(config) {
        return new ACPFetchAssetModel(config, {}, () => { });
    }
    initCloudDocumentsClient(cloudDocumentsClient) {
        this._cloudDocumentsClient = cloudDocumentsClient;
    }
    get cloudDocumentsClient() {
        if (this._cloudDocumentsClient) {
            return this._cloudDocumentsClient;
        }
        console.warn('BaseAssetModel expects an instance of CloudDocumentsClient to be passed with' +
            ' initCloudDocumentsClient after construction');
        return undefined;
    }
    async getRendition() {
        const listAction = 'get_thumbnail';
        const correlationId = _utils_metrics__WEBPACK_IMPORTED_MODULE_3__[/* default */ "i"].createCorrelationId();
        const commonMetrics = {
            element: this,
            correlationId,
            dtsStart: new Date(Date.now()),
        };
        try {
            if (this.isFolder) {
                this.setHasFetchedRendition(true);
                return;
            }
            if (!this.cloudDocumentsClient) {
                return;
            }
            // Items in Recents sometimes do not have 'https://' for cloud renditions
            const template = this.renditionTemplate.indexOf('https://') === -1
                ? `https://${this.renditionTemplate}`
                : this.renditionTemplate;
            const correlationData = _utils_metrics__WEBPACK_IMPORTED_MODULE_3__[/* default */ "i"].getCorrelationData(correlationId, this);
            const renditionUrl = await this.cloudDocumentsClient.getRendition(template, this.type, this.modifiedDate, undefined, correlationData, this.preferCloudThumbnails);
            // CCXCD-1386: on Windows, ACPL returns the rendition path with backslashes instead of forward slashes,
            // and acp-fetch turns it into an encoded `file://` url. The encoding makes the backslash an invalid path
            // delimiter. However, decoding the url causes the `%5E` to be converted to `^`, which isn't a valid url
            // character. The backslashes should probably be translated to forward slashes in acp-fetch, but for now,
            // translate `%5C` to `/` here.
            this.setRendition(renditionUrl.replace(/%5C/g, '/'));
            this.setHasFetchedRendition(true);
            this.setLastRenditionFetchFailed(false);
            const eventData = _utils_metrics__WEBPACK_IMPORTED_MODULE_3__[/* default */ "i"].getOperationalMetricData(listAction, {
                ...commonMetrics,
                ...{ eventType: _utils_metrics__WEBPACK_IMPORTED_MODULE_3__[/* EventType */ "c"].Success },
            });
            this.onAnalyticsEvent(eventData, true);
        }
        catch (error) {
            const eventData = _utils_metrics__WEBPACK_IMPORTED_MODULE_3__[/* default */ "i"].getOperationalMetricData(listAction, {
                ...commonMetrics,
                ...{
                    eventType: _utils_metrics__WEBPACK_IMPORTED_MODULE_3__[/* EventType */ "c"].Error,
                    errorCode: error.status,
                    errorDesc: error.statusText,
                },
            });
            this.onAnalyticsEvent(eventData, true);
            this.setHasFetchedRendition(true);
            this.setLastRenditionFetchFailed(true);
        }
    }
    updateFrom(otherModel) {
        if (!this.isMatch(otherModel)) {
            console.error('ACPFetchAssetModel.updateFrom models are not logically the same', this, otherModel);
            return;
        }
        // Object.keys will ignore methods, including getters
        new Set(Object.keys(this).concat(Object.keys(otherModel))).forEach((prop) => {
            if (!EXCLUDED_PROPERTIES.has(prop)) {
                const myVal = this[prop];
                const otherVal = otherModel[prop];
                // For date fields, only update if the timestamps are different
                if (myVal &&
                    otherVal &&
                    myVal.getTime &&
                    otherVal.getTime &&
                    myVal.getTime() === otherVal.getTime()) {
                    return;
                }
                if (myVal === otherVal) {
                    return;
                }
                // @ts-ignore -- validated above
                this[prop] = otherVal;
            }
        });
    }
    rename(correlationId, newName, oldTitle, parentPath) {
        return this.cloudDocumentsClient
            .assetOp(this.docUriForACP, _ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_0__["OpType"].MOVE, { targetUri: `${parentPath}/${newName}` }, _utils_metrics__WEBPACK_IMPORTED_MODULE_3__[/* default */ "i"].getCorrelationData(correlationId, this))
            .then(() => {
            // This fixes CCXCD-2048, for this scenario:
            //   1. User renames a folder that has not been visited yet
            //   2. renameOp completes
            //   3. ACPL notification arrives -- the renamed folder hasn't been visited,
            //      so there's no folder collection to rename
            //   4. User clicks the folder to navigate to it before the parent folder refreshes
            //   5. CDO navigates to the folder under its old name. The folder listing might work,
            //      because we also pass the cloudUri.
            // So updating the model prevents this bug by ensuring it has the new path when the user clicks on it.
            // TODO: this doesn't fix the problem when the folder is auto-renamed by ACPL
            // Jira: https://jira.corp.adobe.com/browse/CCXCD-2971
            this.setRepoName(newName);
            // TODO: revisit below -- the parameter was named "newTitle" but we were passing the old title
            // Not sure if the case below is necessary. Either it's setting it to the value it already has,
            // or it is overwriting the new title with the old title, which seems problematic.
            // This prevents the old title from showing while the parent folder is refreshing
            this.setTitle(oldTitle);
        });
    }
    archive(correlationId) {
        return this.cloudDocumentsClient.assetOp(this.docUriForACP, _ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_0__["OpType"].ARCHIVE, undefined, _utils_metrics__WEBPACK_IMPORTED_MODULE_3__[/* default */ "i"].getCorrelationData(correlationId, this));
    }
    restore(correlationId) {
        return this.cloudDocumentsClient.assetOp(this.docUriForACP, _ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_0__["OpType"].UNARCHIVE, undefined, _utils_metrics__WEBPACK_IMPORTED_MODULE_3__[/* default */ "i"].getCorrelationData(correlationId, this));
    }
    delete(correlationId) {
        return this.cloudDocumentsClient.deleteOp(this.docUriForACP, _utils_metrics__WEBPACK_IMPORTED_MODULE_3__[/* default */ "i"].getCorrelationData(correlationId, this));
    }
    move(correlationId, newParentPath) {
        return this.cloudDocumentsClient.assetOp(this.docUriForACP, _ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_0__["OpType"].MOVE, { targetUri: `${newParentPath}/${this.repoName || this.title}` }, _utils_metrics__WEBPACK_IMPORTED_MODULE_3__[/* default */ "i"].getCorrelationData(correlationId, this));
    }
    duplicate(correlationId, parentPath, nameSuffix) {
        return this.cloudDocumentsClient.assetOp(this.docUriForACP, _ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_0__["OpType"].COPY, { targetUri: `${parentPath}/${this.title} ${nameSuffix}.${this.fileExtension}` }, _utils_metrics__WEBPACK_IMPORTED_MODULE_3__[/* default */ "i"].getCorrelationData(correlationId, this));
    }
    pin(correlationId) {
        return this.cloudDocumentsClient.cacheOp(this.docUriForACP, _ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_0__["OpType"].USER_PIN, undefined, _utils_metrics__WEBPACK_IMPORTED_MODULE_3__[/* default */ "i"].getCorrelationData(correlationId, this));
    }
    unpin(correlationId) {
        return this.cloudDocumentsClient
            .cacheOp(this.docUriForACP, _ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_0__["OpType"].APP_UNPIN, undefined, _utils_metrics__WEBPACK_IMPORTED_MODULE_3__[/* default */ "i"].getCorrelationData(correlationId, this))
            .then(() => this.cloudDocumentsClient.cacheOp(this.docUriForACP, _ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_0__["OpType"].USER_UNPIN, undefined, _utils_metrics__WEBPACK_IMPORTED_MODULE_3__[/* default */ "i"].getCorrelationData(correlationId, this)));
    }
    export(correlationId, destinationUri) {
        // TODO: onBeforeExport callback
        // Jira: https://jira.corp.adobe.com/browse/CCXCD-420
        return this.cloudDocumentsClient.exportOp(this, destinationUri, _utils_metrics__WEBPACK_IMPORTED_MODULE_3__[/* default */ "i"].getCorrelationData(correlationId, this));
    }
    createFolder(correlationId, newName) {
        return this.cloudDocumentsClient.createFolder(`${this.path}/${newName}`, _utils_metrics__WEBPACK_IMPORTED_MODULE_3__[/* default */ "i"].getCorrelationData(correlationId, this));
    }
    /**
     * Delete model from local cache. *WARNING* Will discard all
     * local changes that have not been synced with the cloud.
     */
    purge(correlationId) {
        // TODO: unit test
        return this.cloudDocumentsClient.cacheOp(this.docUriForACP, _ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_0__["OpType"].PURGE_ASSET, undefined, _utils_metrics__WEBPACK_IMPORTED_MODULE_3__[/* default */ "i"].getCorrelationData(correlationId, this));
    }
}
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [typeof (_a = typeof _types_IAssetModel__WEBPACK_IMPORTED_MODULE_2___default.a !== "undefined" && _types_IAssetModel__WEBPACK_IMPORTED_MODULE_2___default.a) === "function" ? _a : Object]),
    __metadata("design:returntype", void 0)
], ACPFetchAssetModel.prototype, "updateFrom", null);
/* harmony default export */ __webpack_exports__["a"] = (ACPFetchAssetModel);


/***/ }),

/***/ "lq5y":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var isValue = __webpack_require__("YsTz");

module.exports = function (value) {
  if (!isValue(value)) throw new TypeError("Cannot use null or undefined");
  return value;
};

/***/ }),

/***/ "lqMc":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return getMetadataFilterText; });
/* unused harmony export DateMetadataForTests */
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("TSYQ");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var lodash_throttle__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("DzJC");
/* harmony import */ var lodash_throttle__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_throttle__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("VIzJ");
/* harmony import */ var _react_react_spectrum_Icon_Alias__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("n0iS");
/* harmony import */ var _react_react_spectrum_Icon_Alias__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Icon_Alias__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var _react_react_spectrum_Heading__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("8bOP");
/* harmony import */ var _react_react_spectrum_Heading__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Heading__WEBPACK_IMPORTED_MODULE_5__);
/* harmony import */ var _react_react_spectrum_Icon_UserGroup__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("FykI");
/* harmony import */ var _react_react_spectrum_Icon_UserGroup__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Icon_UserGroup__WEBPACK_IMPORTED_MODULE_6__);
/* harmony import */ var _react_react_spectrum_Icon_GlobeGrid__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("Qg89");
/* harmony import */ var _react_react_spectrum_Icon_GlobeGrid__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Icon_GlobeGrid__WEBPACK_IMPORTED_MODULE_7__);
/* harmony import */ var _react_react_spectrum_Icon_Organisations__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("FjXF");
/* harmony import */ var _react_react_spectrum_Icon_Organisations__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Icon_Organisations__WEBPACK_IMPORTED_MODULE_8__);
/* harmony import */ var _react_react_spectrum_OverlayTrigger__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__("uYrR");
/* harmony import */ var _react_react_spectrum_OverlayTrigger__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_OverlayTrigger__WEBPACK_IMPORTED_MODULE_9__);
/* harmony import */ var _react_react_spectrum_Tooltip__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__("DUuf");
/* harmony import */ var _react_react_spectrum_Tooltip__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Tooltip__WEBPACK_IMPORTED_MODULE_10__);
/* harmony import */ var _components_SpaceContributorMetadata__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__("T5i7");
/* harmony import */ var _stores_constants__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__("q0hk");
/* harmony import */ var _CDOView_BaseAssetModel__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__("qpZ1");
/* harmony import */ var _utils_constants__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__("YVc3");
/* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__("FdDf");
/* harmony import */ var _utils_dateUtils__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__("TxTg");
/* harmony import */ var _utils_constants__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__("bXP0");
/* harmony import */ var _hooks_AppContext__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__("m/KA");
/* harmony import */ var _styles_ViewItem_css__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__("g51S");
/* harmony import */ var _styles_ViewItem_css__WEBPACK_IMPORTED_MODULE_19___default = /*#__PURE__*/__webpack_require__.n(_styles_ViewItem_css__WEBPACK_IMPORTED_MODULE_19__);
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2020 Adobe Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Incorporated and its
 * suppliers and are by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Incorporated.
 **************************************************************************/




















const DateMetadata = ({ date, id, locale }) => {
    return date >= Date.now() - _utils_constants__WEBPACK_IMPORTED_MODULE_14__[/* YEAR_IN_MS */ "M"] ? (Object(_utils_dateUtils__WEBPACK_IMPORTED_MODULE_16__[/* formatTimeAgo */ "b"])(date, locale)) : (react__WEBPACK_IMPORTED_MODULE_2__["createElement"](react_intl__WEBPACK_IMPORTED_MODULE_3__[/* FormattedDate */ "a"], { value: date }, msg => react__WEBPACK_IMPORTED_MODULE_2__["createElement"]("span", { id: id }, msg)));
};
function ViewItemMetadata(props) {
    const { element } = props;
    const project = element.externalData;
    const app = react__WEBPACK_IMPORTED_MODULE_2__["useContext"](_hooks_AppContext__WEBPACK_IMPORTED_MODULE_18__[/* default */ "a"]);
    const teamName = project.teamName ? project.teamName.toLocaleUpperCase() : '';
    const orgName = project.repositoryName ? project.repositoryName.toLocaleUpperCase() : '';
    return app.currentTeamIsOtherTeams ? (react__WEBPACK_IMPORTED_MODULE_2__["createElement"](_react_react_spectrum_OverlayTrigger__WEBPACK_IMPORTED_MODULE_9___default.a, { placement: "bottom" },
        react__WEBPACK_IMPORTED_MODULE_2__["createElement"]("div", { className: _styles_ViewItem_css__WEBPACK_IMPORTED_MODULE_19___default.a.metaDataTeam },
            teamName,
            orgName && (react__WEBPACK_IMPORTED_MODULE_2__["createElement"](react__WEBPACK_IMPORTED_MODULE_2__["Fragment"], null,
                react__WEBPACK_IMPORTED_MODULE_2__["createElement"]("span", { className: _styles_ViewItem_css__WEBPACK_IMPORTED_MODULE_19___default.a.dotSeparator }, "\u2022"),
                orgName))),
        react__WEBPACK_IMPORTED_MODULE_2__["createElement"](_react_react_spectrum_Tooltip__WEBPACK_IMPORTED_MODULE_10___default.a, null,
            teamName,
            orgName && (react__WEBPACK_IMPORTED_MODULE_2__["createElement"](react__WEBPACK_IMPORTED_MODULE_2__["Fragment"], null,
                react__WEBPACK_IMPORTED_MODULE_2__["createElement"]("span", { className: _styles_ViewItem_css__WEBPACK_IMPORTED_MODULE_19___default.a.dotSeparator }, "\u2022"),
                orgName))))) : (react__WEBPACK_IMPORTED_MODULE_2__["createElement"]("span", { className: _styles_ViewItem_css__WEBPACK_IMPORTED_MODULE_19___default.a.dateModified, "data-test-id": "ViewItem__dateCreated" },
        react__WEBPACK_IMPORTED_MODULE_2__["createElement"](DateMetadata, { date: element.createDate, locale: app.intl.locale, id: "CDOGridItem_DateCreated" })));
}
// eslint-disable-next-line react/prefer-stateless-function
class ViewItem extends react__WEBPACK_IMPORTED_MODULE_2__["Component"] {
    constructor() {
        super(...arguments);
        // If the user quickly clicks the item multiple times, we only want to handle it once.
        this.onClick = lodash_throttle__WEBPACK_IMPORTED_MODULE_1___default()((event) => {
            const { element, selectOnClick, onItemClickedHandler, doubleClickToOpen } = this.props;
            if (!selectOnClick && !doubleClickToOpen) {
                onItemClickedHandler(element);
            }
            else if (!this.disabled) {
                this._updateSelection(event);
            }
        }, _utils_constants__WEBPACK_IMPORTED_MODULE_17__[/* SINGLE_CLICK_THROTTLE */ "k"], { trailing: false });
        this.onDoubleClick = () => {
            const { element, onItemClickedHandler, doubleClickToOpen } = this.props;
            if (doubleClickToOpen) {
                onItemClickedHandler && onItemClickedHandler(element);
            }
        };
        this.onCheckboxSelection = (event) => {
            this._updateSelection(event);
        };
        this.onKeyDown = e => {
            switch (e.key) {
                case ' ':
                    if (this.shouldSelectOnKeyDown) {
                        this._updateSelection();
                    }
                    e.preventDefault();
                    break;
                case 'Enter':
                    this.onClick();
                    break;
                default:
                    break;
            }
        };
        this.onContextMenu = (e) => {
            const { element, onItemContextMenu, actionMenuItems = [] } = this.props;
            if (onItemContextMenu && !this.disabled) {
                onItemContextMenu(e, element, actionMenuItems);
            }
        };
    }
    componentDidMount() {
        const { element, onDocMounted } = this.props;
        if (onDocMounted) {
            onDocMounted(element);
        }
    }
    componentWillUnmount() {
        const { element, onDocUnmounted } = this.props;
        onDocUnmounted && onDocUnmounted(element);
    }
    get disabled() {
        const { shouldRenderItemAsDisabled, element } = this.props;
        return shouldRenderItemAsDisabled === null || shouldRenderItemAsDisabled === void 0 ? void 0 : shouldRenderItemAsDisabled(element);
    }
    /**
     * Determine to disable/hide the checkbox
     * e.g. in UAP `import` or `placeLinkOrEmbed`  modes, the folder is enabled for navigation, but not selectable.
     */
    get shouldSelectionBeDisabled() {
        const { selectionDisabled, element, shouldRenderItemAsDisabled, isInSelectionMode, isOffline, } = this.props;
        const isOfflineProject = element.isProject && isOffline;
        return (selectionDisabled || (shouldRenderItemAsDisabled === null || shouldRenderItemAsDisabled === void 0 ? void 0 : shouldRenderItemAsDisabled(element, isInSelectionMode, 'selection')) ||
            isOfflineProject);
    }
    _updateSelection(event) {
        const { element, onItemSelected } = this.props;
        onItemSelected === null || onItemSelected === void 0 ? void 0 : onItemSelected(element, event);
    }
    /**
     * Fires an ingest event for grid/list item
     */
    fireIngestEvent(itemViewEventType) {
        const { ingestSubcategory, element } = this.props;
    }
    // Overridden for GridItem and ListItem in respective files
    get shouldSelectOnKeyDown() {
        return true;
    }
    //  ATTENTION! This function should be kept compatible with the below getMetadataText function.
    //  Any visibly displayed text here should also be returned by the getMetadataText function.
    renderMetadata() {
        var _a, _b, _c;
        const { element, intl, metadataFormat } = this.props;
        if (typeof metadataFormat === 'function') {
            return metadataFormat(element);
        }
        if (element.isFolder) {
            return (react__WEBPACK_IMPORTED_MODULE_2__["createElement"]("span", { "data-test-id": "ViewItem__type" },
                react__WEBPACK_IMPORTED_MODULE_2__["createElement"](react_intl__WEBPACK_IMPORTED_MODULE_3__[/* FormattedMessage */ "c"], { id: "folder.subtitle" })));
        }
        switch (metadataFormat) {
            case 'empty':
                return null;
            case 'projectCard':
                return (react__WEBPACK_IMPORTED_MODULE_2__["createElement"](_react_react_spectrum_Heading__WEBPACK_IMPORTED_MODULE_5___default.a, { className: classnames__WEBPACK_IMPORTED_MODULE_0___default()(_styles_ViewItem_css__WEBPACK_IMPORTED_MODULE_19___default.a.projectCardMetadata, this.disabled && _styles_ViewItem_css__WEBPACK_IMPORTED_MODULE_19___default.a.disabled), variant: "subtitle3" },
                    react__WEBPACK_IMPORTED_MODULE_2__["createElement"]("span", { className: _styles_ViewItem_css__WEBPACK_IMPORTED_MODULE_19___default.a.contributorWrap },
                        react__WEBPACK_IMPORTED_MODULE_2__["createElement"](_components_SpaceContributorMetadata__WEBPACK_IMPORTED_MODULE_11__[/* default */ "a"], { space: element.externalData, mode: "grid" })),
                    react__WEBPACK_IMPORTED_MODULE_2__["createElement"](ViewItemMetadata, { element: element })));
            case 'projectMobileListView':
                return (react__WEBPACK_IMPORTED_MODULE_2__["createElement"]("div", { className: _styles_ViewItem_css__WEBPACK_IMPORTED_MODULE_19___default.a.projectMobileMetadata },
                    react__WEBPACK_IMPORTED_MODULE_2__["createElement"]("span", null,
                        react__WEBPACK_IMPORTED_MODULE_2__["createElement"](react_intl__WEBPACK_IMPORTED_MODULE_3__[/* FormattedMessage */ "c"], { id: "project.subtitle" })),
                    react__WEBPACK_IMPORTED_MODULE_2__["createElement"]("span", null,
                        react__WEBPACK_IMPORTED_MODULE_2__["createElement"](_components_SpaceContributorMetadata__WEBPACK_IMPORTED_MODULE_11__[/* default */ "a"], { space: element.externalData, mode: "list", mobileView: true }))));
            case 'folderOnly':
                return react__WEBPACK_IMPORTED_MODULE_2__["createElement"]("span", null);
            case 'libraries':
                return (react__WEBPACK_IMPORTED_MODULE_2__["createElement"]("div", { className: _styles_ViewItem_css__WEBPACK_IMPORTED_MODULE_19___default.a.librariesMetadata },
                    react__WEBPACK_IMPORTED_MODULE_2__["createElement"]("span", null,
                        react__WEBPACK_IMPORTED_MODULE_2__["createElement"](react_intl__WEBPACK_IMPORTED_MODULE_3__[/* FormattedMessage */ "c"], { id: "yourLibraries.metadata" })),
                    react__WEBPACK_IMPORTED_MODULE_2__["createElement"]("span", null, "\u2022"),
                    react__WEBPACK_IMPORTED_MODULE_2__["createElement"]("span", null,
                        react__WEBPACK_IMPORTED_MODULE_2__["createElement"](_react_react_spectrum_Icon_Alias__WEBPACK_IMPORTED_MODULE_4___default.a, { size: "XS" }))));
            case 'fileExtension':
                /**
                 * jpg and jpeg formats for example, a file name can be modified to have .jpg extension but the true
                 * kind is jpeg. For our use case to show precisely the extension of the file in the `extension` UI,
                 * we should cross check mimetype for true extension and fallback to `fileExtension`. This should be
                 * used for this UI purpose only, most actions will rely on the `fileExtension` since it is the one
                 * comes with the name.
                 */
                return (react__WEBPACK_IMPORTED_MODULE_2__["createElement"]("div", { className: _styles_ViewItem_css__WEBPACK_IMPORTED_MODULE_19___default.a.fileExtension },
                    react__WEBPACK_IMPORTED_MODULE_2__["createElement"]("span", null, (_a = element.fileTrueExtension) === null || _a === void 0 ? void 0 : _a.toUpperCase())));
            case 'fileExtensionAndDateModified':
                if (element.isWeblink) {
                    return (react__WEBPACK_IMPORTED_MODULE_2__["createElement"]("div", { className: _styles_ViewItem_css__WEBPACK_IMPORTED_MODULE_19___default.a.fileExtension },
                        react__WEBPACK_IMPORTED_MODULE_2__["createElement"]("span", { "data-test-id": "ViewItem__type" },
                            react__WEBPACK_IMPORTED_MODULE_2__["createElement"](react_intl__WEBPACK_IMPORTED_MODULE_3__[/* FormattedMessage */ "c"], { id: "app.type.webLink" })),
                        react__WEBPACK_IMPORTED_MODULE_2__["createElement"]("span", null,
                            react__WEBPACK_IMPORTED_MODULE_2__["createElement"]("span", null, "\u2022"),
                            react__WEBPACK_IMPORTED_MODULE_2__["createElement"]("span", { className: _styles_ViewItem_css__WEBPACK_IMPORTED_MODULE_19___default.a.linkIcon },
                                react__WEBPACK_IMPORTED_MODULE_2__["createElement"](_react_react_spectrum_Icon_Alias__WEBPACK_IMPORTED_MODULE_4___default.a, { size: "XS" })))));
                }
                return (react__WEBPACK_IMPORTED_MODULE_2__["createElement"]("div", { className: _styles_ViewItem_css__WEBPACK_IMPORTED_MODULE_19___default.a.extensionAndDateMetadata },
                    react__WEBPACK_IMPORTED_MODULE_2__["createElement"]("span", { "data-test-id": "ViewItem__type" }, (_b = element.fileTrueExtension) === null || _b === void 0 ? void 0 : _b.toUpperCase()),
                    react__WEBPACK_IMPORTED_MODULE_2__["createElement"]("span", null, "\u2022"),
                    react__WEBPACK_IMPORTED_MODULE_2__["createElement"]("span", { className: _styles_ViewItem_css__WEBPACK_IMPORTED_MODULE_19___default.a.dateModified, "data-test-id": "ViewItem__modDate" },
                        react__WEBPACK_IMPORTED_MODULE_2__["createElement"](DateMetadata, { date: element.modifiedDate, id: "CDOGridItem_DateModified", locale: intl.locale }))));
            case 'canvas':
                return (react__WEBPACK_IMPORTED_MODULE_2__["createElement"]("div", { className: _styles_ViewItem_css__WEBPACK_IMPORTED_MODULE_19___default.a.extensionAndDateMetadata },
                    react__WEBPACK_IMPORTED_MODULE_2__["createElement"]("span", { "data-test-id": "ViewItem__type" },
                        react__WEBPACK_IMPORTED_MODULE_2__["createElement"](react_intl__WEBPACK_IMPORTED_MODULE_3__[/* FormattedMessage */ "c"], { id: "canvas.metadata" })),
                    react__WEBPACK_IMPORTED_MODULE_2__["createElement"]("span", null, "\u2022"),
                    react__WEBPACK_IMPORTED_MODULE_2__["createElement"]("span", { className: _styles_ViewItem_css__WEBPACK_IMPORTED_MODULE_19___default.a.linkIcon },
                        react__WEBPACK_IMPORTED_MODULE_2__["createElement"](_react_react_spectrum_Icon_Alias__WEBPACK_IMPORTED_MODULE_4___default.a, { size: "XS" }))));
            case 'mimetype':
                // Default to 'non breaking space' unicode to reserve the space as XD artifacts mimetype is lazily fetched.
                let typeContainer = '\u00A0';
                const { shareLevel, shareCount } = element;
                const shareCountContainer = !!shareCount && shareCount > 0 && (react__WEBPACK_IMPORTED_MODULE_2__["createElement"]("span", { className: _styles_ViewItem_css__WEBPACK_IMPORTED_MODULE_19___default.a.publishedMemberCount }, shareCount));
                if (element.uiType) {
                    typeContainer = react__WEBPACK_IMPORTED_MODULE_2__["createElement"](react_intl__WEBPACK_IMPORTED_MODULE_3__[/* FormattedMessage */ "c"], { id: element.uiType });
                }
                return (react__WEBPACK_IMPORTED_MODULE_2__["createElement"]("div", { className: classnames__WEBPACK_IMPORTED_MODULE_0___default()(_styles_ViewItem_css__WEBPACK_IMPORTED_MODULE_19___default.a.contributorIconCount, {
                        [_styles_ViewItem_css__WEBPACK_IMPORTED_MODULE_19___default.a.UXP]: _utils_utils__WEBPACK_IMPORTED_MODULE_15__[/* default */ "a"].usingUXP(),
                    }) },
                    shareLevel === _CDOView_BaseAssetModel__WEBPACK_IMPORTED_MODULE_13__[/* ShareLevel */ "a"].public && (react__WEBPACK_IMPORTED_MODULE_2__["createElement"](react__WEBPACK_IMPORTED_MODULE_2__["Fragment"], null,
                        react__WEBPACK_IMPORTED_MODULE_2__["createElement"](_react_react_spectrum_Icon_GlobeGrid__WEBPACK_IMPORTED_MODULE_7___default.a, { size: "XS" }),
                        shareCountContainer,
                        react__WEBPACK_IMPORTED_MODULE_2__["createElement"]("span", { className: _styles_ViewItem_css__WEBPACK_IMPORTED_MODULE_19___default.a.dotSeparator }, "\u2022"))),
                    shareLevel === _CDOView_BaseAssetModel__WEBPACK_IMPORTED_MODULE_13__[/* ShareLevel */ "a"].orgLevel && (react__WEBPACK_IMPORTED_MODULE_2__["createElement"](react__WEBPACK_IMPORTED_MODULE_2__["Fragment"], null,
                        react__WEBPACK_IMPORTED_MODULE_2__["createElement"](_react_react_spectrum_Icon_Organisations__WEBPACK_IMPORTED_MODULE_8___default.a, { size: "XS" }),
                        shareCountContainer,
                        react__WEBPACK_IMPORTED_MODULE_2__["createElement"]("span", { className: _styles_ViewItem_css__WEBPACK_IMPORTED_MODULE_19___default.a.dotSeparator }, "\u2022"))),
                    shareLevel === _CDOView_BaseAssetModel__WEBPACK_IMPORTED_MODULE_13__[/* ShareLevel */ "a"].private && (react__WEBPACK_IMPORTED_MODULE_2__["createElement"](react__WEBPACK_IMPORTED_MODULE_2__["Fragment"], null,
                        react__WEBPACK_IMPORTED_MODULE_2__["createElement"](_react_react_spectrum_Icon_UserGroup__WEBPACK_IMPORTED_MODULE_6___default.a, { size: "XS" }),
                        shareCountContainer,
                        react__WEBPACK_IMPORTED_MODULE_2__["createElement"]("span", { className: _styles_ViewItem_css__WEBPACK_IMPORTED_MODULE_19___default.a.dotSeparator }, "\u2022"))),
                    typeContainer));
            case _stores_constants__WEBPACK_IMPORTED_MODULE_12__[/* UXSortBy */ "f"].createDate:
            case _stores_constants__WEBPACK_IMPORTED_MODULE_12__[/* UXSortBy */ "f"].createdDate:
                return (react__WEBPACK_IMPORTED_MODULE_2__["createElement"](DateMetadata, { date: element.createDate, id: "CDOGridItem_DateCreated", locale: intl.locale }));
            case _stores_constants__WEBPACK_IMPORTED_MODULE_12__[/* UXSortBy */ "f"].size: {
                const { value, displayValue, abbrev } = _utils_utils__WEBPACK_IMPORTED_MODULE_15__[/* default */ "a"].formatFileSize(element.size || 0, intl);
                return (react__WEBPACK_IMPORTED_MODULE_2__["createElement"]("span", { id: "CDOGridItem_Size" }, !Number.isNaN(value) ? `${displayValue} ${abbrev}` : `${abbrev}`));
            }
            case _stores_constants__WEBPACK_IMPORTED_MODULE_12__[/* UXSortBy */ "f"].shareDate:
                return (react__WEBPACK_IMPORTED_MODULE_2__["createElement"](DateMetadata, { date: (_c = element) === null || _c === void 0 ? void 0 : _c.shareDate, id: "CDOGridItem_DateShared", locale: intl.locale }));
            case _stores_constants__WEBPACK_IMPORTED_MODULE_12__[/* UXSortBy */ "f"].modifiedDate:
            default:
                return (react__WEBPACK_IMPORTED_MODULE_2__["createElement"](DateMetadata, { date: element.modifiedDate, id: "CDOGridItem_DateModified", locale: intl.locale }));
        }
    }
    // combine the status of the element and active rename state
    get renameState() {
        const { element } = this.props;
        if (this.isRenaming) {
            return element.renameState;
        }
        return 'none';
    }
    get isRenaming() {
        var _a;
        // check that current element matches active rename state
        const { element, activeRenameState } = this.props;
        if (activeRenameState === undefined) {
            return false;
        }
        return ((_a = activeRenameState.element) === null || _a === void 0 ? void 0 : _a.id) === element.id;
    }
}
//  This function should be kept compatible with the above renderMetadata function.
function getMetadataFilterText(element, intl, metadataFormat) {
    if (element.isFolder) {
        return intl.formatMessage({ id: 'folder.subtitle' });
    }
    switch (metadataFormat) {
        case 'projectCard':
        case 'projectMobileListView':
            return intl.formatMessage({ id: 'project.subtitle' });
        case 'libraries':
            return intl.formatMessage({ id: 'yourLibraries.metadata' });
        case 'canvas':
            return intl.formatMessage({ id: 'canvas.metadata' });
        case 'fileExtension':
        case 'fileExtensionAndDateModified':
            if (element.isWeblink) {
                return intl.formatMessage({ id: 'app.type.webLink' });
            }
            return element.fileTrueExtension.toUpperCase();
        case 'mimetype':
            if (element.uiType) {
                return intl.formatMessage({ id: element.uiType });
            }
    }
    return '';
}
/* harmony default export */ __webpack_exports__["a"] = (ViewItem);



/***/ }),

/***/ "lr4x":
/***/ (function(module, exports, __webpack_require__) {

// extracted by mini-css-extract-plugin

/***/ }),

/***/ "ls82":
/***/ (function(module, exports, __webpack_require__) {

/**
 * 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 runtime = function (exports) {
  "use strict";

  var Op = Object.prototype;
  var hasOwn = Op.hasOwnProperty;
  var undefined; // More compressible than void 0.

  var $Symbol = typeof Symbol === "function" ? Symbol : {};
  var iteratorSymbol = $Symbol.iterator || "@@iterator";
  var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator";
  var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag";

  function define(obj, key, value) {
    Object.defineProperty(obj, key, {
      value: value,
      enumerable: true,
      configurable: true,
      writable: true
    });
    return obj[key];
  }

  try {
    // IE 8 has a broken Object.defineProperty that only works on DOM objects.
    define({}, "");
  } catch (err) {
    define = function (obj, key, value) {
      return obj[key] = value;
    };
  }

  function wrap(innerFn, outerFn, self, tryLocsList) {
    // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.
    var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;
    var generator = Object.create(protoGenerator.prototype);
    var context = new Context(tryLocsList || []); // The ._invoke method unifies the implementations of the .next,
    // .throw, and .return methods.

    generator._invoke = makeInvokeMethod(innerFn, self, context);
    return generator;
  }

  exports.wrap = wrap; // Try/catch helper to minimize deoptimizations. Returns a completion
  // record like context.tryEntries[i].completion. This interface could
  // have been (and was previously) designed to take a closure to be
  // invoked without arguments, but in all the cases we care about we
  // already have an existing method we want to call, so there's no need
  // to create a new function object. We can even get away with assuming
  // the method takes exactly one argument, since that happens to be true
  // in every case, so we don't have to touch the arguments object. The
  // only additional allocation required is the completion record, which
  // has a stable shape and so hopefully should be cheap to allocate.

  function tryCatch(fn, obj, arg) {
    try {
      return {
        type: "normal",
        arg: fn.call(obj, arg)
      };
    } catch (err) {
      return {
        type: "throw",
        arg: err
      };
    }
  }

  var GenStateSuspendedStart = "suspendedStart";
  var GenStateSuspendedYield = "suspendedYield";
  var GenStateExecuting = "executing";
  var GenStateCompleted = "completed"; // Returning this object from the innerFn has the same effect as
  // breaking out of the dispatch switch statement.

  var ContinueSentinel = {}; // Dummy constructor functions that we use as the .constructor and
  // .constructor.prototype properties for functions that return Generator
  // objects. For full spec compliance, you may wish to configure your
  // minifier not to mangle the names of these two functions.

  function Generator() {}

  function GeneratorFunction() {}

  function GeneratorFunctionPrototype() {} // This is a polyfill for %IteratorPrototype% for environments that
  // don't natively support it.


  var IteratorPrototype = {};
  define(IteratorPrototype, iteratorSymbol, function () {
    return this;
  });
  var getProto = Object.getPrototypeOf;
  var NativeIteratorPrototype = getProto && getProto(getProto(values([])));

  if (NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {
    // This environment has a native %IteratorPrototype%; use it instead
    // of the polyfill.
    IteratorPrototype = NativeIteratorPrototype;
  }

  var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);
  GeneratorFunction.prototype = GeneratorFunctionPrototype;
  define(Gp, "constructor", GeneratorFunctionPrototype);
  define(GeneratorFunctionPrototype, "constructor", GeneratorFunction);
  GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"); // Helper for defining the .next, .throw, and .return methods of the
  // Iterator interface in terms of a single ._invoke method.

  function defineIteratorMethods(prototype) {
    ["next", "throw", "return"].forEach(function (method) {
      define(prototype, method, function (arg) {
        return this._invoke(method, arg);
      });
    });
  }

  exports.isGeneratorFunction = function (genFun) {
    var ctor = typeof genFun === "function" && genFun.constructor;
    return ctor ? ctor === GeneratorFunction || // For the native GeneratorFunction constructor, the best we can
    // do is to check its .name property.
    (ctor.displayName || ctor.name) === "GeneratorFunction" : false;
  };

  exports.mark = function (genFun) {
    if (Object.setPrototypeOf) {
      Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);
    } else {
      genFun.__proto__ = GeneratorFunctionPrototype;
      define(genFun, toStringTagSymbol, "GeneratorFunction");
    }

    genFun.prototype = Object.create(Gp);
    return genFun;
  }; // Within the body of any async function, `await x` is transformed to
  // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test
  // `hasOwn.call(value, "__await")` to determine if the yielded value is
  // meant to be awaited.


  exports.awrap = function (arg) {
    return {
      __await: arg
    };
  };

  function AsyncIterator(generator, PromiseImpl) {
    function invoke(method, arg, resolve, reject) {
      var record = tryCatch(generator[method], generator, arg);

      if (record.type === "throw") {
        reject(record.arg);
      } else {
        var result = record.arg;
        var value = result.value;

        if (value && typeof value === "object" && hasOwn.call(value, "__await")) {
          return PromiseImpl.resolve(value.__await).then(function (value) {
            invoke("next", value, resolve, reject);
          }, function (err) {
            invoke("throw", err, resolve, reject);
          });
        }

        return PromiseImpl.resolve(value).then(function (unwrapped) {
          // When a yielded Promise is resolved, its final value becomes
          // the .value of the Promise<{value,done}> result for the
          // current iteration.
          result.value = unwrapped;
          resolve(result);
        }, function (error) {
          // If a rejected Promise was yielded, throw the rejection back
          // into the async generator function so it can be handled there.
          return invoke("throw", error, resolve, reject);
        });
      }
    }

    var previousPromise;

    function enqueue(method, arg) {
      function callInvokeWithMethodAndArg() {
        return new PromiseImpl(function (resolve, reject) {
          invoke(method, arg, resolve, reject);
        });
      }

      return previousPromise = // If enqueue has been called before, then we want to wait until
      // all previous Promises have been resolved before calling invoke,
      // so that results are always delivered in the correct order. If
      // enqueue has not been called before, then it is important to
      // call invoke immediately, without waiting on a callback to fire,
      // so that the async generator function has the opportunity to do
      // any necessary setup in a predictable way. This predictability
      // is why the Promise constructor synchronously invokes its
      // executor callback, and why async functions synchronously
      // execute code before the first await. Since we implement simple
      // async functions in terms of async generators, it is especially
      // important to get this right, even though it requires care.
      previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, // Avoid propagating failures to Promises returned by later
      // invocations of the iterator.
      callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();
    } // Define the unified helper method that is used to implement .next,
    // .throw, and .return (see defineIteratorMethods).


    this._invoke = enqueue;
  }

  defineIteratorMethods(AsyncIterator.prototype);
  define(AsyncIterator.prototype, asyncIteratorSymbol, function () {
    return this;
  });
  exports.AsyncIterator = AsyncIterator; // Note that simple async functions are implemented on top of
  // AsyncIterator objects; they just return a Promise for the value of
  // the final result produced by the iterator.

  exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {
    if (PromiseImpl === void 0) PromiseImpl = Promise;
    var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);
    return exports.isGeneratorFunction(outerFn) ? iter // If outerFn is a generator, return the full iterator.
    : iter.next().then(function (result) {
      return result.done ? result.value : iter.next();
    });
  };

  function makeInvokeMethod(innerFn, self, context) {
    var state = GenStateSuspendedStart;
    return function invoke(method, arg) {
      if (state === GenStateExecuting) {
        throw new Error("Generator is already running");
      }

      if (state === GenStateCompleted) {
        if (method === "throw") {
          throw arg;
        } // Be forgiving, per 25.3.3.3.3 of the spec:
        // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume


        return doneResult();
      }

      context.method = method;
      context.arg = arg;

      while (true) {
        var delegate = context.delegate;

        if (delegate) {
          var delegateResult = maybeInvokeDelegate(delegate, context);

          if (delegateResult) {
            if (delegateResult === ContinueSentinel) continue;
            return delegateResult;
          }
        }

        if (context.method === "next") {
          // Setting context._sent for legacy support of Babel's
          // function.sent implementation.
          context.sent = context._sent = context.arg;
        } else if (context.method === "throw") {
          if (state === GenStateSuspendedStart) {
            state = GenStateCompleted;
            throw context.arg;
          }

          context.dispatchException(context.arg);
        } else if (context.method === "return") {
          context.abrupt("return", context.arg);
        }

        state = GenStateExecuting;
        var record = tryCatch(innerFn, self, context);

        if (record.type === "normal") {
          // If an exception is thrown from innerFn, we leave state ===
          // GenStateExecuting and loop back for another invocation.
          state = context.done ? GenStateCompleted : GenStateSuspendedYield;

          if (record.arg === ContinueSentinel) {
            continue;
          }

          return {
            value: record.arg,
            done: context.done
          };
        } else if (record.type === "throw") {
          state = GenStateCompleted; // Dispatch the exception by looping back around to the
          // context.dispatchException(context.arg) call above.

          context.method = "throw";
          context.arg = record.arg;
        }
      }
    };
  } // Call delegate.iterator[context.method](context.arg) and handle the
  // result, either by returning a { value, done } result from the
  // delegate iterator, or by modifying context.method and context.arg,
  // setting context.delegate to null, and returning the ContinueSentinel.


  function maybeInvokeDelegate(delegate, context) {
    var method = delegate.iterator[context.method];

    if (method === undefined) {
      // A .throw or .return when the delegate iterator has no .throw
      // method always terminates the yield* loop.
      context.delegate = null;

      if (context.method === "throw") {
        // Note: ["return"] must be used for ES3 parsing compatibility.
        if (delegate.iterator["return"]) {
          // If the delegate iterator has a return method, give it a
          // chance to clean up.
          context.method = "return";
          context.arg = undefined;
          maybeInvokeDelegate(delegate, context);

          if (context.method === "throw") {
            // If maybeInvokeDelegate(context) changed context.method from
            // "return" to "throw", let that override the TypeError below.
            return ContinueSentinel;
          }
        }

        context.method = "throw";
        context.arg = new TypeError("The iterator does not provide a 'throw' method");
      }

      return ContinueSentinel;
    }

    var record = tryCatch(method, delegate.iterator, context.arg);

    if (record.type === "throw") {
      context.method = "throw";
      context.arg = record.arg;
      context.delegate = null;
      return ContinueSentinel;
    }

    var info = record.arg;

    if (!info) {
      context.method = "throw";
      context.arg = new TypeError("iterator result is not an object");
      context.delegate = null;
      return ContinueSentinel;
    }

    if (info.done) {
      // Assign the result of the finished delegate to the temporary
      // variable specified by delegate.resultName (see delegateYield).
      context[delegate.resultName] = info.value; // Resume execution at the desired location (see delegateYield).

      context.next = delegate.nextLoc; // If context.method was "throw" but the delegate handled the
      // exception, let the outer generator proceed normally. If
      // context.method was "next", forget context.arg since it has been
      // "consumed" by the delegate iterator. If context.method was
      // "return", allow the original .return call to continue in the
      // outer generator.

      if (context.method !== "return") {
        context.method = "next";
        context.arg = undefined;
      }
    } else {
      // Re-yield the result returned by the delegate method.
      return info;
    } // The delegate iterator is finished, so forget it and continue with
    // the outer generator.


    context.delegate = null;
    return ContinueSentinel;
  } // Define Generator.prototype.{next,throw,return} in terms of the
  // unified ._invoke helper method.


  defineIteratorMethods(Gp);
  define(Gp, toStringTagSymbol, "Generator"); // A Generator should always return itself as the iterator object when the
  // @@iterator function is called on it. Some browsers' implementations of the
  // iterator prototype chain incorrectly implement this, causing the Generator
  // object to not be returned from this call. This ensures that doesn't happen.
  // See https://github.com/facebook/regenerator/issues/274 for more details.

  define(Gp, iteratorSymbol, function () {
    return this;
  });
  define(Gp, "toString", function () {
    return "[object Generator]";
  });

  function pushTryEntry(locs) {
    var entry = {
      tryLoc: locs[0]
    };

    if (1 in locs) {
      entry.catchLoc = locs[1];
    }

    if (2 in locs) {
      entry.finallyLoc = locs[2];
      entry.afterLoc = locs[3];
    }

    this.tryEntries.push(entry);
  }

  function resetTryEntry(entry) {
    var record = entry.completion || {};
    record.type = "normal";
    delete record.arg;
    entry.completion = record;
  }

  function Context(tryLocsList) {
    // The root entry object (effectively a try statement without a catch
    // or a finally block) gives us a place to store values thrown from
    // locations where there is no enclosing try statement.
    this.tryEntries = [{
      tryLoc: "root"
    }];
    tryLocsList.forEach(pushTryEntry, this);
    this.reset(true);
  }

  exports.keys = function (object) {
    var keys = [];

    for (var key in object) {
      keys.push(key);
    }

    keys.reverse(); // Rather than returning an object with a next method, we keep
    // things simple and return the next function itself.

    return function next() {
      while (keys.length) {
        var key = keys.pop();

        if (key in object) {
          next.value = key;
          next.done = false;
          return next;
        }
      } // To avoid creating an additional object, we just hang the .value
      // and .done properties off the next function object itself. This
      // also ensures that the minifier will not anonymize the function.


      next.done = true;
      return next;
    };
  };

  function values(iterable) {
    if (iterable) {
      var iteratorMethod = iterable[iteratorSymbol];

      if (iteratorMethod) {
        return iteratorMethod.call(iterable);
      }

      if (typeof iterable.next === "function") {
        return iterable;
      }

      if (!isNaN(iterable.length)) {
        var i = -1,
            next = function next() {
          while (++i < iterable.length) {
            if (hasOwn.call(iterable, i)) {
              next.value = iterable[i];
              next.done = false;
              return next;
            }
          }

          next.value = undefined;
          next.done = true;
          return next;
        };

        return next.next = next;
      }
    } // Return an iterator with no values.


    return {
      next: doneResult
    };
  }

  exports.values = values;

  function doneResult() {
    return {
      value: undefined,
      done: true
    };
  }

  Context.prototype = {
    constructor: Context,
    reset: function (skipTempReset) {
      this.prev = 0;
      this.next = 0; // Resetting context._sent for legacy support of Babel's
      // function.sent implementation.

      this.sent = this._sent = undefined;
      this.done = false;
      this.delegate = null;
      this.method = "next";
      this.arg = undefined;
      this.tryEntries.forEach(resetTryEntry);

      if (!skipTempReset) {
        for (var name in this) {
          // Not sure about the optimal order of these conditions:
          if (name.charAt(0) === "t" && hasOwn.call(this, name) && !isNaN(+name.slice(1))) {
            this[name] = undefined;
          }
        }
      }
    },
    stop: function () {
      this.done = true;
      var rootEntry = this.tryEntries[0];
      var rootRecord = rootEntry.completion;

      if (rootRecord.type === "throw") {
        throw rootRecord.arg;
      }

      return this.rval;
    },
    dispatchException: function (exception) {
      if (this.done) {
        throw exception;
      }

      var context = this;

      function handle(loc, caught) {
        record.type = "throw";
        record.arg = exception;
        context.next = loc;

        if (caught) {
          // If the dispatched exception was caught by a catch block,
          // then let that catch block handle the exception normally.
          context.method = "next";
          context.arg = undefined;
        }

        return !!caught;
      }

      for (var i = this.tryEntries.length - 1; i >= 0; --i) {
        var entry = this.tryEntries[i];
        var record = entry.completion;

        if (entry.tryLoc === "root") {
          // Exception thrown outside of any try block that could handle
          // it, so set the completion value of the entire function to
          // throw the exception.
          return handle("end");
        }

        if (entry.tryLoc <= this.prev) {
          var hasCatch = hasOwn.call(entry, "catchLoc");
          var hasFinally = hasOwn.call(entry, "finallyLoc");

          if (hasCatch && hasFinally) {
            if (this.prev < entry.catchLoc) {
              return handle(entry.catchLoc, true);
            } else if (this.prev < entry.finallyLoc) {
              return handle(entry.finallyLoc);
            }
          } else if (hasCatch) {
            if (this.prev < entry.catchLoc) {
              return handle(entry.catchLoc, true);
            }
          } else if (hasFinally) {
            if (this.prev < entry.finallyLoc) {
              return handle(entry.finallyLoc);
            }
          } else {
            throw new Error("try statement without catch or finally");
          }
        }
      }
    },
    abrupt: function (type, arg) {
      for (var i = this.tryEntries.length - 1; i >= 0; --i) {
        var entry = this.tryEntries[i];

        if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) {
          var finallyEntry = entry;
          break;
        }
      }

      if (finallyEntry && (type === "break" || type === "continue") && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc) {
        // Ignore the finally entry if control is not jumping to a
        // location outside the try/catch block.
        finallyEntry = null;
      }

      var record = finallyEntry ? finallyEntry.completion : {};
      record.type = type;
      record.arg = arg;

      if (finallyEntry) {
        this.method = "next";
        this.next = finallyEntry.finallyLoc;
        return ContinueSentinel;
      }

      return this.complete(record);
    },
    complete: function (record, afterLoc) {
      if (record.type === "throw") {
        throw record.arg;
      }

      if (record.type === "break" || record.type === "continue") {
        this.next = record.arg;
      } else if (record.type === "return") {
        this.rval = this.arg = record.arg;
        this.method = "return";
        this.next = "end";
      } else if (record.type === "normal" && afterLoc) {
        this.next = afterLoc;
      }

      return ContinueSentinel;
    },
    finish: function (finallyLoc) {
      for (var i = this.tryEntries.length - 1; i >= 0; --i) {
        var entry = this.tryEntries[i];

        if (entry.finallyLoc === finallyLoc) {
          this.complete(entry.completion, entry.afterLoc);
          resetTryEntry(entry);
          return ContinueSentinel;
        }
      }
    },
    "catch": function (tryLoc) {
      for (var i = this.tryEntries.length - 1; i >= 0; --i) {
        var entry = this.tryEntries[i];

        if (entry.tryLoc === tryLoc) {
          var record = entry.completion;

          if (record.type === "throw") {
            var thrown = record.arg;
            resetTryEntry(entry);
          }

          return thrown;
        }
      } // The context.catch method must only be called with a location
      // argument that corresponds to a known catch block.


      throw new Error("illegal catch attempt");
    },
    delegateYield: function (iterable, resultName, nextLoc) {
      this.delegate = {
        iterator: values(iterable),
        resultName: resultName,
        nextLoc: nextLoc
      };

      if (this.method === "next") {
        // Deliberately forget the last sent value so that we don't
        // accidentally pass it on to the delegate.
        this.arg = undefined;
      }

      return ContinueSentinel;
    }
  }; // Regardless of whether this script is executing as a CommonJS module
  // or not, return the runtime object so that we can declare the variable
  // regeneratorRuntime in the outer scope, which allows this module to be
  // injected easily by `bin/regenerator --include-runtime script.js`.

  return exports;
}( // If this script is executing as a CommonJS module, use module.exports
// as the regeneratorRuntime namespace. Otherwise create a new empty
// object. Either way, the resulting object will be used to initialize
// the regeneratorRuntime variable at the top of this file.
 true ? module.exports : undefined);

try {
  regeneratorRuntime = runtime;
} catch (accidentalStrictMode) {
  // This module should not be running in strict mode, so the above
  // assignment should always work unless something is misconfigured. Just
  // in case runtime.js accidentally runs in strict mode, in modern engines
  // we can explicitly access globalThis. In older engines we can escape
  // strict mode using a global Function call. This could conceivably fail
  // if a Content Security Policy forbids using Function, but in that case
  // the proper solution is to fix the accidental strict mode problem. If
  // you've misconfigured your bundler to force strict mode and applied a
  // CSP to forbid Function, and you're not willing to fix either of those
  // problems, please detail your unique predicament in a GitHub issue.
  if (typeof globalThis === "object") {
    globalThis.regeneratorRuntime = runtime;
  } else {
    Function("r", "regeneratorRuntime = r")(runtime);
  }
}

/***/ }),

/***/ "lup1":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _CloseCaptions = _interopRequireDefault(__webpack_require__("BUMI"));

var _FullScreen = _interopRequireDefault(__webpack_require__("IFtk"));

var _FullScreenExit = _interopRequireDefault(__webpack_require__("klmv"));

var _Pause = _interopRequireDefault(__webpack_require__("AttQ"));

var _Play = _interopRequireDefault(__webpack_require__("v0If"));

var _react = _interopRequireWildcard(__webpack_require__("q1tI"));

var _setOverlayOnProvider = _interopRequireDefault(__webpack_require__("l0xv"));

var _VolumeMute = _interopRequireDefault(__webpack_require__("cY0z"));

var _VolumeOne = _interopRequireDefault(__webpack_require__("oC2Y"));

var _VolumeThree = _interopRequireDefault(__webpack_require__("jV1G"));

var _VolumeTwo = _interopRequireDefault(__webpack_require__("4jPS"));

__webpack_require__("JNa+");

function _getRequireWildcardCache(nodeInterop) {
  if (typeof WeakMap !== "function") return null;
  var cacheBabelInterop = new WeakMap();
  var cacheNodeInterop = new WeakMap();
  return (_getRequireWildcardCache = function (nodeInterop) {
    return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
  })(nodeInterop);
}

function _interopRequireWildcard(obj, nodeInterop) {
  if (!nodeInterop && obj && obj.__esModule) {
    return obj;
  }

  if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
    return {
      default: obj
    };
  }

  var cache = _getRequireWildcardCache(nodeInterop);

  if (cache && cache.has(obj)) {
    return cache.get(obj);
  }

  var newObj = {};
  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;

  for (var key in obj) {
    if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
      var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;

      if (desc && (desc.get || desc.set)) {
        Object.defineProperty(newObj, key, desc);
      } else {
        newObj[key] = obj[key];
      }
    }
  }

  newObj.default = obj;

  if (cache) {
    cache.set(obj, newObj);
  }

  return newObj;
}

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

class UxpVideoControls extends _react.Component {
  constructor(...args) {
    var _temp;

    return _temp = super(...args), this.setOverlayVisible = () => {
      (0, _setOverlayOnProvider.default)(this.videoControlRef, true);
    }, this.setOverlayHidden = () => {
      (0, _setOverlayOnProvider.default)(this.videoControlRef, false);
    }, this.handlePointerMove = event => {
      // in case of mouse move event, drop the slider if left button of mouse is not pressed
      if ((this.seekSliderInHold || this.volumeSliderInHold) && event.buttons !== 1) {
        this.handleSeekDrop();
        return;
      }

      if (this.seekSliderInHold) {
        this.handleSeekAtTouchPoint(event);
      } else if (this.volumeSliderInHold) {
        this.handleVolumeChangeAtTouchPoint(event);
      }
    }, this.handleSeekDrop = event => {
      if (this.seekSliderInHold) {
        this.seekSliderInHold = false;

        if (this.shouldResume) {
          this.togglePlay();
          this.shouldResume = false;
        }
      } else if (this.volumeSliderInHold) {
        this.volumeSliderInHold = false;
      }
    }, _temp;
  }

  componentDidMount() {
    if (this.videoControlRef) {
      this.videoControlRef.addEventListener('resize', this.setOverlayVisible);
      document.addEventListener('mouseup', this.handleSeekDrop);
      document.addEventListener('pointermove', this.handlePointerMove);
      document.addEventListener('pointerleave', this.handleSeekDrop);
    }
  }

  componentWillUnmount() {
    if (this.videoControlRef) {
      this.videoControlRef.removeEventListener('resize', this.setOverlayVisible);
      document.removeEventListener('mouseup', this.handleSeekDrop);
      document.removeEventListener('pointermove', this.handlePointerMove);
      document.removeEventListener('pointerleave', this.handleSeekDrop);
    }

    this.setOverlayHidden();
  }

  getWidthAtTouchPoint(parentEl, offsetXFromDoc) {
    if (!parentEl) {
      return -1;
    }

    const clickedAtX = offsetXFromDoc - parentEl.getBoundingClientRect().left;
    return clickedAtX / parentEl.offsetWidth;
  }

  handleSeekAtTouchPoint(e) {
    if (!this.isPlayEnabled()) {
      return;
    }

    const progressBarRef = this.progressBarRef;
    const clickedAtWidth = this.getWidthAtTouchPoint(progressBarRef, e.pageX);

    if (clickedAtWidth === -1) {
      return;
    }

    const {
      totalDuration
    } = this.props;
    let clickedAtSeconds = clickedAtWidth * totalDuration;

    if (clickedAtSeconds < 0) {
      clickedAtSeconds = 0;
    }

    if (clickedAtSeconds > totalDuration) {
      clickedAtSeconds = Math.floor(totalDuration);
    }

    if (this.props.handleSeekTo) {
      this.props.handleSeekTo(clickedAtSeconds);
    }
  }

  handleVolumeChangeAtTouchPoint(e) {
    const volumeBarRef = this.volumeBarRef;
    const clickedAtWidth = this.getWidthAtTouchPoint(volumeBarRef, e.pageX);

    if (clickedAtWidth === -1) {
      return;
    }

    if (clickedAtWidth <= 0.0) {
      this.setVolumeLevel(0.0);
    } else if (clickedAtWidth >= 1.0) {
      this.setVolumeLevel(1.0);
    } else {
      this.setVolumeLevel(clickedAtWidth);
    }
  }

  isPlayEnabled() {
    const {
      playEnabled
    } = this.props;
    return playEnabled;
  }

  setVolumeLevel(level) {
    if (this.props.setVolumeLevel) {
      this.props.setVolumeLevel(level);
    }
  }

  toggleMute() {
    if (!this.isPlayEnabled()) {
      return;
    }

    const {
      playSound,
      volumeLevel
    } = this.props;

    if (this.props.toggleMute) {
      this.props.toggleMute();

      if (!playSound && this.savedVolumeLevel && volumeLevel <= 0.0) {
        this.setVolumeLevel(this.savedVolumeLevel);
      }
    }
  }

  togglePlay() {
    if (!this.isPlayEnabled()) {
      return;
    }

    if (this.props.togglePlay) {
      this.props.togglePlay();
    }
  }

  getTimeInMinutes(timeInSeconds) {
    let minutesString = '00:00';
    let minutes = Math.floor(timeInSeconds / 60);
    let seconds = Math.floor(timeInSeconds % 60);

    if (!isNaN(minutes) && !isNaN(minutes)) {
      if (minutes < 10) {
        minutes = '0' + minutes;
      }

      if (seconds < 10) {
        seconds = '0' + seconds;
      }

      minutesString = minutes + ':' + seconds;
    }

    return minutesString;
  }

  getTimeInfo() {
    const {
      currentTime,
      totalDuration
    } = this.props;
    const timeNow = this.getTimeInMinutes(currentTime);
    const totalTime = this.getTimeInMinutes(totalDuration);
    return timeNow + ' / ' + totalTime;
  }

  holdSeekSlider(event) {
    this.seekSliderInHold = true;
    const {
      playing
    } = this.props;

    if (playing) {
      this.shouldResume = true;
      this.togglePlay();
    }
  }

  holdVolumeSlider(event) {
    const {
      volumeLevel
    } = this.props;

    if (volumeLevel > 0.0) {
      this.savedVolumeLevel = volumeLevel;
    }

    this.volumeSliderInHold = true;
  }

  getVolumeLevelForIcon() {
    const {
      playSound,
      volumeLevel
    } = this.props;
    let volumeLevel_INT = 0;

    if (volumeLevel <= 0) {
      volumeLevel_INT = 0;
    } else if (volumeLevel <= 0.3333) {
      volumeLevel_INT = 1;
    } else if (volumeLevel <= 0.6666) {
      volumeLevel_INT = 2;
    } else {
      volumeLevel_INT = 3;
    }

    if (!playSound) {
      volumeLevel_INT = 0;
    }

    return volumeLevel_INT;
  }

  render() {
    const {
      audioTrackAvailable,
      showControls,
      currentTime,
      totalDuration,
      playSound,
      trackAvailable,
      disableClosedCaption,
      enableFullScreen,
      isModalVideo,
      volumeLevel,
      playing
    } = this.props;
    const k = currentTime / totalDuration;
    let timebarWidth = 0;

    if (!isNaN(k)) {
      timebarWidth = k * 100 + '%';
    }

    let soundBarWidth = '0%';

    if (playSound) {
      soundBarWidth = volumeLevel * 100 + '%';
    }

    const volumeLevelForIcon = this.getVolumeLevelForIcon();
    return /*#__PURE__*/_react.default.createElement("div", {
      className: (0, _classnames.default)('react-spectrum-VideoControls', showControls || isModalVideo ? '' : 'hide'),
      ref: r => this.videoControlRef = r
    }, /*#__PURE__*/_react.default.createElement("div", {
      onClick: e => this.handleSeekAtTouchPoint(e),
      ref: p => this.progressBarRef = p,
      className: "react-spectrum-VideoProgressBar"
    }, /*#__PURE__*/_react.default.createElement("div", {
      style: {
        'width': `${timebarWidth}`
      },
      className: "react-spectrum-VideoTimeBar"
    }, /*#__PURE__*/_react.default.createElement("div", {
      className: "react-spectrum-VideoProgressBarSlider",
      onMouseDown: event => this.holdSeekSlider(event)
    }, /*#__PURE__*/_react.default.createElement("svg", {
      className: "react-spectrum-dragCircle",
      height: "12",
      width: "12"
    }, /*#__PURE__*/_react.default.createElement("circle", {
      cx: "6",
      cy: "6",
      r: "6"
    }))))), /*#__PURE__*/_react.default.createElement("div", {
      className: "react-spectrum-VideoControlsLine"
    }, /*#__PURE__*/_react.default.createElement("span", {
      /* eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex */
      tabIndex: 0,
      className: "react-spectrum-PlayPauseContainer",
      onKeyDown: e => this.props.handleKeyDownOnControls(e, 'togglePlay'),
      onClick: () => this.togglePlay()
    }, playing ? /*#__PURE__*/_react.default.createElement(_Pause.default, {
      size: "S",
      className: "react-spectrum-PlayPauseIcon"
    }) : /*#__PURE__*/_react.default.createElement(_Play.default, {
      size: "S",
      className: "react-spectrum-PlayPauseIcon"
    })), /*#__PURE__*/_react.default.createElement("div", {
      className: "react-spectrum-VideoTimeInfo"
    }, /*#__PURE__*/_react.default.createElement("span", null, this.getTimeInfo())), /*#__PURE__*/_react.default.createElement("div", {
      className: "react-spectrum-SoundControlsRoot"
    }, audioTrackAvailable && /*#__PURE__*/_react.default.createElement("div", {
      className: "react-spectrum-SoundBarContainer",
      onClick: e => this.handleVolumeChangeAtTouchPoint(e),
      ref: v => this.volumeBarRef = v
    }, /*#__PURE__*/_react.default.createElement("div", {
      style: {
        'width': `${soundBarWidth}`
      },
      className: "react-spectrum-SoundBar"
    }, /*#__PURE__*/_react.default.createElement("div", {
      className: "react-spectrum-SoundBarSlider",
      onMouseDown: event => this.holdVolumeSlider(event)
    }, /*#__PURE__*/_react.default.createElement("svg", {
      className: "react-spectrum-dragCircle",
      height: "12",
      width: "12"
    }, /*#__PURE__*/_react.default.createElement("circle", {
      cx: "6",
      cy: "6",
      r: "6"
    }))))), audioTrackAvailable && /*#__PURE__*/_react.default.createElement("div", {
      /* eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex */
      tabIndex: 0,
      className: "react-spectrum-SoundIconContainer",
      onKeyDown: e => this.props.handleKeyDownOnControls(e, 'toggleMute'),
      onClick: () => this.toggleMute()
    }, /*#__PURE__*/_react.default.createElement(_VolumeMute.default, {
      className: (0, _classnames.default)('react-spectrum-VolumeIcon', volumeLevelForIcon === 0 ? '' : 'hide'),
      size: "S"
    }), /*#__PURE__*/_react.default.createElement(_VolumeOne.default, {
      className: (0, _classnames.default)('react-spectrum-VolumeIcon', volumeLevelForIcon === 1 ? '' : 'hide'),
      size: "S"
    }), /*#__PURE__*/_react.default.createElement(_VolumeTwo.default, {
      className: (0, _classnames.default)('react-spectrum-VolumeIcon', volumeLevelForIcon === 2 ? '' : 'hide'),
      size: "S"
    }), /*#__PURE__*/_react.default.createElement(_VolumeThree.default, {
      className: (0, _classnames.default)('react-spectrum-VolumeIcon', volumeLevelForIcon === 3 ? '' : 'hide'),
      size: "S"
    })), trackAvailable && /*#__PURE__*/_react.default.createElement("div", {
      /* eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex */
      tabIndex: 0,
      className: "react-spectrum-CCIconContainer",
      onKeyDown: e => this.props.handleKeyDownOnControls(e, 'toggleCC'),
      onClick: () => this.props.toggleCC()
    }, /*#__PURE__*/_react.default.createElement("div", {
      className: (0, _classnames.default)('react-spectrum-ClosedCaptionIcon', disableClosedCaption ? 'disable' : '')
    }, /*#__PURE__*/_react.default.createElement(_CloseCaptions.default, {
      size: "S"
    }))), enableFullScreen && isModalVideo && /*#__PURE__*/_react.default.createElement("div", {
      /* eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex */
      tabIndex: 0,
      className: "react-spectrum-MinimizeIconContainer",
      onKeyDown: e => this.props.handleKeyDownOnControls(e, 'toggleFullScreen', true),
      onClick: () => this.props.toggleMaximize ? this.props.toggleMaximize(currentTime, true) : null
    }, /*#__PURE__*/_react.default.createElement("div", {
      className: "react-spectrum-MinimizeIcon"
    }, /*#__PURE__*/_react.default.createElement(_FullScreenExit.default, {
      size: "S"
    }))), enableFullScreen && !isModalVideo && /*#__PURE__*/_react.default.createElement("div", {
      /* eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex */
      tabIndex: 0,
      className: "react-spectrum-MinimizeIconContainer",
      onKeyDown: e => this.props.handleKeyDownOnControls(e, 'toggleFullScreen', false),
      onClick: () => this.props.toggleMaximize ? this.props.toggleMaximize(currentTime, false) : null
    }, /*#__PURE__*/_react.default.createElement("div", {
      className: "react-spectrum-MinimizeIcon"
    }, /*#__PURE__*/_react.default.createElement(_FullScreen.default, {
      size: "S"
    }))))));
  }

}

exports.default = UxpVideoControls;

/***/ }),

/***/ "lwsE":
/***/ (function(module, exports) {

function _classCallCheck(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}

module.exports = _classCallCheck;
module.exports["default"] = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "lyz1":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _ListItem = _interopRequireDefault(__webpack_require__("/8IZ"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}
/*************************************************************************
* ADOBE CONFIDENTIAL
* ___________________
*
* Copyright 2021 Adobe
* All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains
* the property of Adobe and its suppliers, if any. The intellectual
* and technical concepts contained herein are proprietary to Adobe
* and its suppliers and are protected by all applicable intellectual
* property laws, including trade secret and copyright laws.
* Dissemination of this information or reproduction of this material
* is strictly forbidden unless prior written permission is obtained
* from Adobe.
**************************************************************************/


class SpUxpListItem extends _ListItem.default {
  render() {
    const {
      icon,
      label,
      className,
      children,
      selected,
      value,
      disabled
    } = this.props;
    return /*#__PURE__*/_react.default.createElement("sp-menu-item", {
      disabled: disabled ? true : null,
      selected: selected ? true : null,
      value: value,
      class: className
    }, icon && /*#__PURE__*/_react.default.createElement("div", {
      slot: "icon"
    }, " ", icon), /*#__PURE__*/_react.default.createElement("span", null, label || children));
  }

}

exports.default = SpUxpListItem;

/***/ }),

/***/ "m/KA":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);

/* harmony default export */ __webpack_exports__["a"] = (Object(react__WEBPACK_IMPORTED_MODULE_0__["createContext"])(null));


/***/ }),

/***/ "m0Av":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(global) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return createDetectElementResize; });
/**
 * Detect Element Resize.
 * https://github.com/sdecima/javascript-detect-element-resize
 * Sebastian Decima
 *
 * Forked from version 0.5.3; includes the following modifications:
 * 1) Guard against unsafe 'window' and 'document' references (to support SSR).
 * 2) Defer initialization code via a top-level function wrapper (to support SSR).
 * 3) Avoid unnecessary reflows by not measuring size for scroll events bubbling from children.
 * 4) Add nonce for style element.
 * 5) Added support for injecting custom window object
 **/
function createDetectElementResize(nonce, hostWindow) {
  // Check `document` and `window` in case of server-side rendering
  var _window;

  if (typeof hostWindow !== 'undefined') {
    _window = hostWindow;
  } else if (typeof window !== 'undefined') {
    _window = window;
  } else if (typeof self !== 'undefined') {
    _window = self;
  } else {
    _window = global;
  }

  var attachEvent = typeof _window.document !== 'undefined' && _window.document.attachEvent;

  if (!attachEvent) {
    var requestFrame = function () {
      var raf = _window.requestAnimationFrame || _window.mozRequestAnimationFrame || _window.webkitRequestAnimationFrame || function (fn) {
        return _window.setTimeout(fn, 20);
      };

      return function (fn) {
        return raf(fn);
      };
    }();

    var cancelFrame = function () {
      var cancel = _window.cancelAnimationFrame || _window.mozCancelAnimationFrame || _window.webkitCancelAnimationFrame || _window.clearTimeout;
      return function (id) {
        return cancel(id);
      };
    }();

    var resetTriggers = function resetTriggers(element) {
      var triggers = element.__resizeTriggers__,
          expand = triggers.firstElementChild,
          contract = triggers.lastElementChild,
          expandChild = expand.firstElementChild;
      contract.scrollLeft = contract.scrollWidth;
      contract.scrollTop = contract.scrollHeight;
      expandChild.style.width = expand.offsetWidth + 1 + 'px';
      expandChild.style.height = expand.offsetHeight + 1 + 'px';
      expand.scrollLeft = expand.scrollWidth;
      expand.scrollTop = expand.scrollHeight;
    };

    var checkTriggers = function checkTriggers(element) {
      return element.offsetWidth != element.__resizeLast__.width || element.offsetHeight != element.__resizeLast__.height;
    };

    var scrollListener = function scrollListener(e) {
      // Don't measure (which forces) reflow for scrolls that happen inside of children!
      if (e.target.className && typeof e.target.className.indexOf === 'function' && e.target.className.indexOf('contract-trigger') < 0 && e.target.className.indexOf('expand-trigger') < 0) {
        return;
      }

      var element = this;
      resetTriggers(this);

      if (this.__resizeRAF__) {
        cancelFrame(this.__resizeRAF__);
      }

      this.__resizeRAF__ = requestFrame(function () {
        if (checkTriggers(element)) {
          element.__resizeLast__.width = element.offsetWidth;
          element.__resizeLast__.height = element.offsetHeight;

          element.__resizeListeners__.forEach(function (fn) {
            fn.call(element, e);
          });
        }
      });
    };
    /* Detect CSS Animations support to detect element display/re-attach */


    var animation = false,
        keyframeprefix = '',
        animationstartevent = 'animationstart',
        domPrefixes = 'Webkit Moz O ms'.split(' '),
        startEvents = 'webkitAnimationStart animationstart oAnimationStart MSAnimationStart'.split(' '),
        pfx = '';
    {
      var elm = _window.document.createElement('fakeelement');

      if (elm.style.animationName !== undefined) {
        animation = true;
      }

      if (animation === false) {
        for (var i = 0; i < domPrefixes.length; i++) {
          if (elm.style[domPrefixes[i] + 'AnimationName'] !== undefined) {
            pfx = domPrefixes[i];
            keyframeprefix = '-' + pfx.toLowerCase() + '-';
            animationstartevent = startEvents[i];
            animation = true;
            break;
          }
        }
      }
    }
    var animationName = 'resizeanim';
    var animationKeyframes = '@' + keyframeprefix + 'keyframes ' + animationName + ' { from { opacity: 0; } to { opacity: 0; } } ';
    var animationStyle = keyframeprefix + 'animation: 1ms ' + animationName + '; ';
  }

  var createStyles = function createStyles(doc) {
    if (!doc.getElementById('detectElementResize')) {
      //opacity:0 works around a chrome bug https://code.google.com/p/chromium/issues/detail?id=286360
      var css = (animationKeyframes ? animationKeyframes : '') + '.resize-triggers { ' + (animationStyle ? animationStyle : '') + 'visibility: hidden; opacity: 0; } ' + '.resize-triggers, .resize-triggers > div, .contract-trigger:before { content: " "; display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; z-index: -1; } .resize-triggers > div { background: #eee; overflow: auto; } .contract-trigger:before { width: 200%; height: 200%; }',
          head = doc.head || doc.getElementsByTagName('head')[0],
          style = doc.createElement('style');
      style.id = 'detectElementResize';
      style.type = 'text/css';

      if (nonce != null) {
        style.setAttribute('nonce', nonce);
      }

      if (style.styleSheet) {
        style.styleSheet.cssText = css;
      } else {
        style.appendChild(doc.createTextNode(css));
      }

      head.appendChild(style);
    }
  };

  var addResizeListener = function addResizeListener(element, fn) {
    if (attachEvent) {
      element.attachEvent('onresize', fn);
    } else {
      if (!element.__resizeTriggers__) {
        var doc = element.ownerDocument;

        var elementStyle = _window.getComputedStyle(element);

        if (elementStyle && elementStyle.position == 'static') {
          element.style.position = 'relative';
        }

        createStyles(doc);
        element.__resizeLast__ = {};
        element.__resizeListeners__ = [];
        (element.__resizeTriggers__ = doc.createElement('div')).className = 'resize-triggers';
        var resizeTriggersHtml = '<div class="expand-trigger"><div></div></div>' + '<div class="contract-trigger"></div>';

        if (window.trustedTypes) {
          var staticPolicy = trustedTypes.createPolicy('react-virtualized-auto-sizer', {
            createHTML: function createHTML() {
              return resizeTriggersHtml;
            }
          });
          element.__resizeTriggers__.innerHTML = staticPolicy.createHTML('');
        } else {
          element.__resizeTriggers__.innerHTML = resizeTriggersHtml;
        }

        element.appendChild(element.__resizeTriggers__);
        resetTriggers(element);
        element.addEventListener('scroll', scrollListener, true);
        /* Listen for a css animation to detect element display/re-attach */

        if (animationstartevent) {
          element.__resizeTriggers__.__animationListener__ = function animationListener(e) {
            if (e.animationName == animationName) {
              resetTriggers(element);
            }
          };

          element.__resizeTriggers__.addEventListener(animationstartevent, element.__resizeTriggers__.__animationListener__);
        }
      }

      element.__resizeListeners__.push(fn);
    }
  };

  var removeResizeListener = function removeResizeListener(element, fn) {
    if (attachEvent) {
      element.detachEvent('onresize', fn);
    } else {
      element.__resizeListeners__.splice(element.__resizeListeners__.indexOf(fn), 1);

      if (!element.__resizeListeners__.length) {
        element.removeEventListener('scroll', scrollListener, true);

        if (element.__resizeTriggers__.__animationListener__) {
          element.__resizeTriggers__.removeEventListener(animationstartevent, element.__resizeTriggers__.__animationListener__);

          element.__resizeTriggers__.__animationListener__ = null;
        }

        try {
          element.__resizeTriggers__ = !element.removeChild(element.__resizeTriggers__);
        } catch (e) {// Preact compat; see developit/preact-compat/issues/228
        }
      }
    }
  };

  return {
    addResizeListener: addResizeListener,
    removeResizeListener: removeResizeListener
  };
}
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("yLpj")))

/***/ }),

/***/ "m0LI":
/***/ (function(module, exports) {

function _iterableToArrayLimit(arr, i) {
  var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];

  if (_i == null) return;
  var _arr = [];
  var _n = true;
  var _d = false;

  var _s, _e;

  try {
    for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {
      _arr.push(_s.value);

      if (i && _arr.length === i) break;
    }
  } catch (err) {
    _d = true;
    _e = err;
  } finally {
    try {
      if (!_n && _i["return"] != null) _i["return"]();
    } finally {
      if (_d) throw _e;
    }
  }

  return _arr;
}

module.exports = _iterableToArrayLimit;
module.exports["default"] = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "m1cH":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


exports.__esModule = true;

var _from = __webpack_require__("rfXi");

var _from2 = _interopRequireDefault(_from);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

exports.default = function (arr) {
  if (Array.isArray(arr)) {
    for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {
      arr2[i] = arr[i];
    }

    return arr2;
  } else {
    return (0, _from2.default)(arr);
  }
};

/***/ }),

/***/ "m3S7":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return HostId; });
var HostId;
(function (HostId) {
    HostId["CCD"] = "ccd";
    HostId["XD"] = "sprk";
    HostId["PS"] = "phxs";
    HostId["AI"] = "ilst";
    HostId["ID"] = "idsn";
    HostId["AssetsWeb"] = "assetsWeb";
    HostId["Unsupported"] = "unsupported";
})(HostId || (HostId = {}));


/***/ }),

/***/ "m4Z2":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(global, Buffer) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return AdobeAssetFilter; });
/* unused harmony export AdobeAssetGlobalSearchFilter */
/* unused harmony export AdobeAssetGlobalSearchOrder */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return AdobeAssetOrder; });
/* unused harmony export AdobeAssetSearchFilter */
/* unused harmony export AdobeAssetUpdater */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return AssetListStatus; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return AssetSyncStatus; });
/* unused harmony export AssetType */
/* unused harmony export AssetVersion */
/* unused harmony export AssetVersionFilter */
/* unused harmony export AssetVersionOrder */
/* unused harmony export CHANGE */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return CollaboratorOrder; });
/* unused harmony export CollaboratorUpdater */
/* unused harmony export CollaboratorsByAssetIDOrder */
/* unused harmony export CommitStatus */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "i", function() { return Env; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "l", function() { return ITEM_LIST_STATE_CHANGED; });
/* unused harmony export InvitedCollaboratorOrder */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "n", function() { return ItemBase; });
/* unused harmony export LIST_CHANGED */
/* unused harmony export LogLevel */
/* unused harmony export MESSAGE_LOGGED */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "o", function() { return OrgRepositoryOrder; });
/* unused harmony export OrgRepositoryUpdater */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "p", function() { return Permission; });
/* unused harmony export RecentAdobeAssetFilter */
/* unused harmony export RecentAdobeAssetOrder */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "q", function() { return SAMError; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "r", function() { return SAMGenericError; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "s", function() { return SAMHttpResponseError; });
/* unused harmony export SAMRepositoryError */
/* unused harmony export STATE_CHANGED */
/* unused harmony export SWYAdobeAssetFilter */
/* unused harmony export SWYAdobeAssetOrder */
/* unused harmony export SearchAdobeAssetOrder */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "v", function() { return SpaceFilter; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "w", function() { return SpaceOrder; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "x", function() { return SpaceSearchAssetFilter; });
/* unused harmony export SpaceUpdater */
/* unused harmony export Team */
/* unused harmony export TeamFilter */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "y", function() { return TeamOrder; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "z", function() { return createSharedAssetModel; });
/* unused harmony export getURLFromLinks */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "A", function() { return initializeSharedAssetModel; });
/* unused harmony export parseAsyncResponse */
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/const errorCodeInfos=new Map([[404,{code:'NOT_FOUND',message:href=>`Resource not found: ${href}`}],[403,{code:'ACCESS_DENIED',message:href=>`Access to resource denied: ${href}`}],[304,{code:'NOT_MODIFIED',message:()=>`Resource has not changed.`}],[409,{code:'CONFLICT',message:()=>`Resource has a naming conflict.`}]]);class SAMError extends Error{constructor(code,title){super(`[${code}] ${title}`);this.code=code;this.title=title;// JS Errors break the prototype chain.
// https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work
Object.setPrototypeOf(this,new.target.prototype);}get name(){return'SAMError';}/**
     * The fetch Response object for the failing request.
     */get response(){return undefined;}/**
     * The underlying error wrapped by the SAMError.
     */get underlyingError(){return undefined;}}class SAMGenericError extends SAMError{constructor(code,title,underlyingError){// Make sure we don't throw exceptions while trying to invoke toString below.
let errorStr='';if(underlyingError!==null&&underlyingError!==undefined){try{errorStr=` -> ${String(underlyingError)}`;}catch(_a){}}super(code,`${title}${errorStr}`);this._underlyingError=underlyingError;}get name(){return'SAMGenericError';}get underlyingError(){return this._underlyingError;}static wrapErrorIfNeeded(code,title,underlyingError){if(underlyingError instanceof SAMError){return underlyingError;}return new SAMGenericError(code,title,underlyingError);}}class SAMHttpResponseError extends SAMError{constructor(code,title,response,href){super(code,title);this._response=response;this._href=href!==null&&href!==void 0?href:response.url;}get name(){return'SAMHttpResponseError';}get status(){return validateRepositoryCode(this._response.status);}get response(){return this._response;}get href(){return this._href;}static createWithResponse(response,href){var _a,_b;const{status}=response;const info=errorCodeInfos.get(validateRepositoryCode(status));let responseUrl=href!==null&&href!==void 0?href:response.url;return new SAMHttpResponseError((_a=info===null||info===void 0?void 0:info.code)!==null&&_a!==void 0?_a:'UNEXPECTED_RESPONSE',(_b=info===null||info===void 0?void 0:info.message(href!==null&&href!==void 0?href:responseUrl))!==null&&_b!==void 0?_b:`Unexpected response status: ${status}`,response,responseUrl);}static createWithResponseAndTitle(response,title){var _a;const info=errorCodeInfos.get(validateRepositoryCode(response.status));return new SAMHttpResponseError((_a=info===null||info===void 0?void 0:info.code)!==null&&_a!==void 0?_a:'UNEXPECTED_RESPONSE',title,response,response.url);}}/**
 * Convert server error codes to regular HTTP number codes.
 * '4041' -> 404
 * '404.1' -> 404
 * 4041 -> 404
 * 404 -> 404
 *
 * @param code from server
 * @returns http error code
 */function validateRepositoryCode(code){// Repo APIs return string codes instead of numbers. In that case
if(typeof code==='string'){code=parseInt(code);}// Remove any extra floating point.
code=Math.floor(code);// HTTP error codes only use 3 digits, but repo APIs can have even 5 digits.
// We only care about the most significant 3 digits though.
// https://git.corp.adobe.com/DMA/dcx-lib/blob/729085f1ed77936a1718377ea6cd5e3b16f6aada/lib/dcxlib/src/main/java/com/adobe/dcx/storagesession/StorageErrorCode.java#L12
while(code>999){code=Math.floor(code/10);}return code;}class SAMRepositoryError extends SAMError{constructor(status,type,title){var _a;const validCode=validateRepositoryCode(status);const info=status?errorCodeInfos.get(validCode):undefined;super((_a=info===null||info===void 0?void 0:info.code)!==null&&_a!==void 0?_a:'UNEXPECTED_RESPONSE',title!==null&&title!==void 0?title:`Unexpected response status: ${status}`);this._type=type;this._status=validCode;}get status(){return this._status;}get name(){return'SAMRepositoryError';}get type(){return this._type;}}class SAMAssertionError extends SAMError{constructor(title){super('ASSERTION_ERROR',title);}}/**
 * Throws SAMAssertionError when `assertedCondition` is false.
 * @param assertedCondition
 * @param message
 */function assert(assertedCondition,message){if(!assertedCondition){throw new SAMAssertionError(message);}}/*! *****************************************************************************
Copyright (c) Microsoft Corporation.

Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */function __rest(s,e){var t={};for(var p in s)if(Object.prototype.hasOwnProperty.call(s,p)&&e.indexOf(p)<0)t[p]=s[p];if(s!=null&&typeof Object.getOwnPropertySymbols==="function")for(var i=0,p=Object.getOwnPropertySymbols(s);i<p.length;i++){if(e.indexOf(p[i])<0&&Object.prototype.propertyIsEnumerable.call(s,p[i]))t[p[i]]=s[p[i]];}return t;}function __decorate(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)if(d=decorators[i])r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r;return c>3&&r&&Object.defineProperty(target,key,r),r;}function __param(paramIndex,decorator){return function(target,key){decorator(target,key,paramIndex);};}// Copyright Joyent, Inc. and other Node contributors.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to permit
// persons to whom the Software is furnished to do so, subject to the
// following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
// USE OR OTHER DEALINGS IN THE SOFTWARE.
// resolves . and .. elements in a path array with directory names there
// must be no slashes, empty elements, or device names (c:\) in the array
// (so also no leading and trailing slashes - it does not distinguish
// relative and absolute paths)
function normalizeArray(parts,allowAboveRoot){// if the path tries to go above the root, `up` ends up > 0
var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==='.'){parts.splice(i,1);}else if(last==='..'){parts.splice(i,1);up++;}else if(up){parts.splice(i,1);up--;}}// if the path is allowed to go above the root, restore leading ..s
if(allowAboveRoot){for(;up--;up){parts.unshift('..');}}return parts;}// Split a filename into [root, dir, basename, ext], unix version
// 'root' is just a slash, or nothing.
var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;var splitPath=function(filename){return splitPathRe.exec(filename).slice(1);};// path.resolve([from ...], to)
// posix version
function resolve(){var resolvedPath='',resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:'/';// Skip empty and invalid entries
if(typeof path!=='string'){throw new TypeError('Arguments to path.resolve must be strings');}else if(!path){continue;}resolvedPath=path+'/'+resolvedPath;resolvedAbsolute=path.charAt(0)==='/';}// At this point the path should be resolved to a full absolute path, but
// handle relative paths to be safe (might happen when process.cwd() fails)
// Normalize the path
resolvedPath=normalizeArray(filter(resolvedPath.split('/'),function(p){return!!p;}),!resolvedAbsolute).join('/');return(resolvedAbsolute?'/':'')+resolvedPath||'.';}// path.normalize(path)
// posix version
function normalize(path){var isPathAbsolute=isAbsolute(path),trailingSlash=substr(path,-1)==='/';// Normalize the path
path=normalizeArray(filter(path.split('/'),function(p){return!!p;}),!isPathAbsolute).join('/');if(!path&&!isPathAbsolute){path='.';}if(path&&trailingSlash){path+='/';}return(isPathAbsolute?'/':'')+path;}// posix version
function isAbsolute(path){return path.charAt(0)==='/';}// posix version
function join(){var paths=Array.prototype.slice.call(arguments,0);return normalize(filter(paths,function(p,index){if(typeof p!=='string'){throw new TypeError('Arguments to path.join must be strings');}return p;}).join('/'));}// path.relative(from, to)
// posix version
function relative(from,to){from=resolve(from).substr(1);to=resolve(to).substr(1);function trim(arr){var start=0;for(;start<arr.length;start++){if(arr[start]!=='')break;}var end=arr.length-1;for(;end>=0;end--){if(arr[end]!=='')break;}if(start>end)return[];return arr.slice(start,end-start+1);}var fromParts=trim(from.split('/'));var toParts=trim(to.split('/'));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i<length;i++){if(fromParts[i]!==toParts[i]){samePartsLength=i;break;}}var outputParts=[];for(var i=samePartsLength;i<fromParts.length;i++){outputParts.push('..');}outputParts=outputParts.concat(toParts.slice(samePartsLength));return outputParts.join('/');}var sep='/';var delimiter=':';function dirname(path){var result=splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){// No dirname whatsoever
return'.';}if(dir){// It has a dirname, strip trailing slash
dir=dir.substr(0,dir.length-1);}return root+dir;}function basename(path,ext){var f=splitPath(path)[2];// TODO: make this comparison case-insensitive on windows?
if(ext&&f.substr(-1*ext.length)===ext){f=f.substr(0,f.length-ext.length);}return f;}function extname(path){return splitPath(path)[3];}var path={extname:extname,basename:basename,dirname:dirname,sep:sep,delimiter:delimiter,relative:relative,join:join,isAbsolute:isAbsolute,normalize:normalize,resolve:resolve};function filter(xs,f){if(xs.filter)return xs.filter(f);var res=[];for(var i=0;i<xs.length;i++){if(f(xs[i],i,xs))res.push(xs[i]);}return res;}// String.prototype.substr - negative index don't work in IE8
var substr='ab'.substr(-1)==='b'?function(str,start,len){return str.substr(start,len);}:function(str,start,len){if(start<0)start=str.length+start;return str.substr(start,len);};/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/const KeysProperty=Symbol('@key parameterMap');// @key decorator is used to indicate the argument to the @cache and @synchronized decorators
var key=(target,propertyKey,parameterIndex)=>{const map=target[KeysProperty]=target[KeysProperty]||new Map();if(map.has(propertyKey)){throw new SAMError('INVALID_PARAMETER','@key cannot be applied to more than one parameter');}map.set(propertyKey,parameterIndex);};/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/ /**
 * Caches the result of the method, using the argument decorated with '@key' as the key (multiple arguments can also be
 * used, and they will be appended together). This ensures that the result is cached in memory and shared if multiple
 * people call the API at once. Once the value expires, it will be recomputed.
 *
 * Note:
 * 1) Keys are global, so different cached methods should use different key domains unless it's intended to be shared.
 *    We typically use URLs as keys to avoid such conflicts.
 * 2) Decorators are not passed the default value of parameters, so you can't write f(@key x = 'defaultValue') - you need
 *    to make sure the value is always passed in.
 */function cacheImpl(validate){return(target,propertyKey,descriptor)=>{const method=descriptor.value;if(!method){throw new SAMError('INVALID_PARAMETER','@cache decorator can only be applied to a method');}const newMethod=async function(...args){var _a;const keyIndex=(_a=this[KeysProperty])===null||_a===void 0?void 0:_a.get(propertyKey);if(keyIndex===undefined){throw new SAMError('INVALID_PARAMETER','@cache decorator requires one of the parameters to be labelled with @key');}const key=args[keyIndex];return this._core.environment.cache.getItem(key,()=>method.apply(this,args),validate);};descriptor.value=newMethod;};}function cache(arg1,arg2,arg3){if(!arg2){return cacheImpl(arg1);}// No parameter - invoke without validation
// (allows using @cache without any parameters)
return cacheImpl()(arg1,arg2,arg3);}/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/ // Memoize the value of a getter or method - this just caches the return value
// forever, so it doesn't get recomputed each time it's called
var memoize=(target,propertyKey,descriptor)=>{const memo=Symbol(`@memoize ${propertyKey}`);const property=descriptor.get?'get':'value';const method=descriptor[property];descriptor[property]=function(...args){if(!Object.prototype.hasOwnProperty.call(this,memo)){this[memo]=method.call(this,...args);}return this[memo];};};/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/function observableImpl(event='change'){return function(target,propertyKey,descriptor){if(descriptor.get){const getter=descriptor.get;descriptor.get=function(){this._core.environment.mobx.reportObserved(this,event);return getter.call(this);};}else if(descriptor.value){const method=descriptor.value;const newMethod=function(...args){this._core.environment.mobx.reportObserved(this,event);return method.apply(this,args);};descriptor.value=newMethod;}else{throw new SyntaxError('@observable decorator can only be used with `getters` or `methods`.');}};}function observable(arg1,arg2,arg3){if(!arg2){return observableImpl(arg1);}// No parameter - just use the default event value
// (allows using @observable without any parameters)
return observableImpl()(arg1,arg2,arg3);}var commonjsGlobal=typeof globalThis!=='undefined'?globalThis:typeof window!=='undefined'?window:typeof global!=='undefined'?global:typeof self!=='undefined'?self:{};var uriTemplates={exports:{}};(function(module){(function(global,factory){if(module.exports){module.exports=factory();}else{global.UriTemplate=factory();}})(commonjsGlobal,function(){var uriTemplateGlobalModifiers={"+":true,"#":true,".":true,"/":true,";":true,"?":true,"&":true};var uriTemplateSuffices={"*":true};function notReallyPercentEncode(string){return encodeURI(string).replace(/%25[0-9][0-9]/g,function(doubleEncoded){return"%"+doubleEncoded.substring(3);});}function isPercentEncoded(string){string=string.replace(/%../g,'');return encodeURIComponent(string)===string;}function uriTemplateSubstitution(spec){var modifier="";if(uriTemplateGlobalModifiers[spec.charAt(0)]){modifier=spec.charAt(0);spec=spec.substring(1);}var separator="";var prefix="";var shouldEscape=true;var showVariables=false;var trimEmptyString=false;if(modifier=='+'){shouldEscape=false;}else if(modifier=="."){prefix=".";separator=".";}else if(modifier=="/"){prefix="/";separator="/";}else if(modifier=='#'){prefix="#";shouldEscape=false;}else if(modifier==';'){prefix=";";separator=";",showVariables=true;trimEmptyString=true;}else if(modifier=='?'){prefix="?";separator="&",showVariables=true;}else if(modifier=='&'){prefix="&";separator="&",showVariables=true;}var varNames=[];var varList=spec.split(",");var varSpecs=[];var varSpecMap={};for(var i=0;i<varList.length;i++){var varName=varList[i];var truncate=null;if(varName.indexOf(":")!=-1){var parts=varName.split(":");varName=parts[0];truncate=parseInt(parts[1]);}var suffices={};while(uriTemplateSuffices[varName.charAt(varName.length-1)]){suffices[varName.charAt(varName.length-1)]=true;varName=varName.substring(0,varName.length-1);}var varSpec={truncate:truncate,name:varName,suffices:suffices};varSpecs.push(varSpec);varSpecMap[varName]=varSpec;varNames.push(varName);}var subFunction=function(valueFunction){var result="";var startIndex=0;for(var i=0;i<varSpecs.length;i++){var varSpec=varSpecs[i];var value=valueFunction(varSpec.name);if(value==null||Array.isArray(value)&&value.length==0||typeof value=='object'&&Object.keys(value).length==0){startIndex++;continue;}if(i==startIndex){result+=prefix;}else{result+=separator||",";}if(Array.isArray(value)){if(showVariables){result+=varSpec.name+"=";}for(var j=0;j<value.length;j++){if(j>0){result+=varSpec.suffices['*']?separator||",":",";if(varSpec.suffices['*']&&showVariables){result+=varSpec.name+"=";}}result+=shouldEscape?encodeURIComponent(value[j]).replace(/!/g,"%21"):notReallyPercentEncode(value[j]);}}else if(typeof value=="object"){if(showVariables&&!varSpec.suffices['*']){result+=varSpec.name+"=";}var first=true;for(var key in value){if(!first){result+=varSpec.suffices['*']?separator||",":",";}first=false;result+=shouldEscape?encodeURIComponent(key).replace(/!/g,"%21"):notReallyPercentEncode(key);result+=varSpec.suffices['*']?'=':",";result+=shouldEscape?encodeURIComponent(value[key]).replace(/!/g,"%21"):notReallyPercentEncode(value[key]);}}else{if(showVariables){result+=varSpec.name;if(!trimEmptyString||value!=""){result+="=";}}if(varSpec.truncate!=null){value=value.substring(0,varSpec.truncate);}result+=shouldEscape?encodeURIComponent(value).replace(/!/g,"%21"):notReallyPercentEncode(value);}}return result;};var guessFunction=function(stringValue,resultObj,strict){if(prefix){stringValue=stringValue.substring(prefix.length);}if(varSpecs.length==1&&varSpecs[0].suffices['*']){var varSpec=varSpecs[0];var varName=varSpec.name;var arrayValue=varSpec.suffices['*']?stringValue.split(separator||","):[stringValue];var hasEquals=shouldEscape&&stringValue.indexOf('=')!=-1;// There's otherwise no way to distinguish between "{value*}" for arrays and objects
for(var i=1;i<arrayValue.length;i++){var stringValue=arrayValue[i];if(hasEquals&&stringValue.indexOf('=')==-1){// Bit of a hack - if we're expecting "=" for key/value pairs, and values can't contain "=", then assume a value has been accidentally split
arrayValue[i-1]+=(separator||",")+stringValue;arrayValue.splice(i,1);i--;}}for(var i=0;i<arrayValue.length;i++){var stringValue=arrayValue[i];if(shouldEscape&&stringValue.indexOf('=')!=-1){hasEquals=true;}var innerArrayValue=stringValue.split(",");if(innerArrayValue.length==1){arrayValue[i]=innerArrayValue[0];}else{arrayValue[i]=innerArrayValue;}}if(showVariables||hasEquals){var objectValue=resultObj[varName]||{};for(var j=0;j<arrayValue.length;j++){var innerValue=stringValue;if(showVariables&&!innerValue){// The empty string isn't a valid variable, so if our value is zero-length we have nothing
continue;}if(typeof arrayValue[j]=="string"){var stringValue=arrayValue[j];var innerVarName=stringValue.split("=",1)[0];var stringValue=stringValue.substring(innerVarName.length+1);if(shouldEscape){if(strict&&!isPercentEncoded(stringValue)){return;}stringValue=decodeURIComponent(stringValue);}innerValue=stringValue;}else{var stringValue=arrayValue[j][0];var innerVarName=stringValue.split("=",1)[0];var stringValue=stringValue.substring(innerVarName.length+1);if(shouldEscape){if(strict&&!isPercentEncoded(stringValue)){return;}stringValue=decodeURIComponent(stringValue);}arrayValue[j][0]=stringValue;innerValue=arrayValue[j];}if(shouldEscape){if(strict&&!isPercentEncoded(innerVarName)){return;}innerVarName=decodeURIComponent(innerVarName);}if(objectValue[innerVarName]!==undefined){if(Array.isArray(objectValue[innerVarName])){objectValue[innerVarName].push(innerValue);}else{objectValue[innerVarName]=[objectValue[innerVarName],innerValue];}}else{objectValue[innerVarName]=innerValue;}}if(Object.keys(objectValue).length==1&&objectValue[varName]!==undefined){resultObj[varName]=objectValue[varName];}else{resultObj[varName]=objectValue;}}else{if(shouldEscape){for(var j=0;j<arrayValue.length;j++){var innerArrayValue=arrayValue[j];if(Array.isArray(innerArrayValue)){for(var k=0;k<innerArrayValue.length;k++){if(strict&&!isPercentEncoded(innerArrayValue[k])){return;}innerArrayValue[k]=decodeURIComponent(innerArrayValue[k]);}}else{if(strict&&!isPercentEncoded(innerArrayValue)){return;}arrayValue[j]=decodeURIComponent(innerArrayValue);}}}if(resultObj[varName]!==undefined){if(Array.isArray(resultObj[varName])){resultObj[varName]=resultObj[varName].concat(arrayValue);}else{resultObj[varName]=[resultObj[varName]].concat(arrayValue);}}else{if(arrayValue.length==1&&!varSpec.suffices['*']){resultObj[varName]=arrayValue[0];}else{resultObj[varName]=arrayValue;}}}}else{var arrayValue=varSpecs.length==1?[stringValue]:stringValue.split(separator||",");var specIndexMap={};for(var i=0;i<arrayValue.length;i++){// Try from beginning
var firstStarred=0;for(;firstStarred<varSpecs.length-1&&firstStarred<i;firstStarred++){if(varSpecs[firstStarred].suffices['*']){break;}}if(firstStarred==i){// The first [i] of them have no "*" suffix
specIndexMap[i]=i;continue;}else{// Try from the end
for(var lastStarred=varSpecs.length-1;lastStarred>0&&varSpecs.length-lastStarred<arrayValue.length-i;lastStarred--){if(varSpecs[lastStarred].suffices['*']){break;}}if(varSpecs.length-lastStarred==arrayValue.length-i){// The last [length - i] of them have no "*" suffix
specIndexMap[i]=lastStarred;continue;}}// Just give up and use the first one
specIndexMap[i]=firstStarred;}for(var i=0;i<arrayValue.length;i++){var stringValue=arrayValue[i];if(!stringValue&&showVariables){// The empty string isn't a valid variable, so if our value is zero-length we have nothing
continue;}var innerArrayValue=stringValue.split(",");var hasEquals=false;if(showVariables){var stringValue=innerArrayValue[0];// using innerArrayValue
var varName=stringValue.split("=",1)[0];var stringValue=stringValue.substring(varName.length+1);innerArrayValue[0]=stringValue;var varSpec=varSpecMap[varName]||varSpecs[0];}else{var varSpec=varSpecs[specIndexMap[i]];var varName=varSpec.name;}for(var j=0;j<innerArrayValue.length;j++){if(shouldEscape){if(strict&&!isPercentEncoded(innerArrayValue[j])){return;}innerArrayValue[j]=decodeURIComponent(innerArrayValue[j]);}}if((showVariables||varSpec.suffices['*'])&&resultObj[varName]!==undefined){if(Array.isArray(resultObj[varName])){resultObj[varName]=resultObj[varName].concat(innerArrayValue);}else{resultObj[varName]=[resultObj[varName]].concat(innerArrayValue);}}else{if(innerArrayValue.length==1&&!varSpec.suffices['*']){resultObj[varName]=innerArrayValue[0];}else{resultObj[varName]=innerArrayValue;}}}}return 1;};return{varNames:varNames,prefix:prefix,substitution:subFunction,unSubstitution:guessFunction};}function UriTemplate(template){if(!(this instanceof UriTemplate)){return new UriTemplate(template);}var parts=template.split("{");var textParts=[parts.shift()];var prefixes=[];var substitutions=[];var unSubstitutions=[];var varNames=[];while(parts.length>0){var part=parts.shift();var spec=part.split("}")[0];var remainder=part.substring(spec.length+1);var funcs=uriTemplateSubstitution(spec);substitutions.push(funcs.substitution);unSubstitutions.push(funcs.unSubstitution);prefixes.push(funcs.prefix);textParts.push(remainder);varNames=varNames.concat(funcs.varNames);}this.fill=function(valueFunction){if(valueFunction&&typeof valueFunction!=='function'){var value=valueFunction;valueFunction=function(varName){return value[varName];};}var result=textParts[0];for(var i=0;i<substitutions.length;i++){var substitution=substitutions[i];result+=substitution(valueFunction);result+=textParts[i+1];}return result;};this.fromUri=function(substituted,options){options=options||{};var result={};for(var i=0;i<textParts.length;i++){var part=textParts[i];if(substituted.substring(0,part.length)!==part){return;}substituted=substituted.substring(part.length);if(i>=textParts.length-1){// We've run out of input - is there any template left?
if(substituted==""){break;}else{return;}}var prefix=prefixes[i];if(prefix&&substituted.substring(0,prefix.length)!==prefix){// All values are optional - if we have a prefix and it doesn't match, move along
continue;}// Find the next part to un-substitute
var nextPart=textParts[i+1];var offset=i;while(true){if(offset==textParts.length-2){var endPart=substituted.substring(substituted.length-nextPart.length);if(endPart!==nextPart){return;}var stringValue=substituted.substring(0,substituted.length-nextPart.length);substituted=endPart;}else if(nextPart){var nextPartPos=substituted.indexOf(nextPart);var stringValue=substituted.substring(0,nextPartPos);substituted=substituted.substring(nextPartPos);}else if(prefixes[offset+1]){var nextPartPos=substituted.indexOf(prefixes[offset+1]);if(nextPartPos===-1)nextPartPos=substituted.length;var stringValue=substituted.substring(0,nextPartPos);substituted=substituted.substring(nextPartPos);}else if(textParts.length>offset+2){// If the separator between this variable and the next is blank (with no prefix), continue onwards
offset++;nextPart=textParts[offset+1];continue;}else{var stringValue=substituted;substituted="";}break;}if(!unSubstitutions[i](stringValue,result,options.strict)){return;}}return result;};this.varNames=varNames;this.template=template;}UriTemplate.prototype={toString:function(){return this.template;},fillFromObject:function(obj){return this.fill(obj);},test:function(uri,options){return!!this.fromUri(uri,options);}};return UriTemplate;});})(uriTemplates);var UriTemplate=uriTemplates.exports;/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/const JSON_MIME_TYPE='application/json';const JSON_PATCH_MIME_TYPE='application/json-patch+json';var RelType;(function(RelType){// Repository API
RelType["PRIMARY"]="http://ns.adobe.com/adobecloud/rel/primary";RelType["ID"]="http://ns.adobe.com/adobecloud/rel/id";RelType["PATH"]="http://ns.adobe.com/adobecloud/rel/path";RelType["RENDITION"]="http://ns.adobe.com/adobecloud/rel/rendition";RelType["MANIFEST"]="http://ns.adobe.com/adobecloud/rel/manifest";RelType["COMPONENT"]="http://ns.adobe.com/adobecloud/rel/component";RelType["PAGE"]="http://ns.adobe.com/adobecloud/rel/page";RelType["DISCARD"]="http://ns.adobe.com/adobecloud/rel/discard";RelType["RESTORE"]="http://ns.adobe.com/adobecloud/rel/restore";RelType["DIRECTORY"]="http://ns.adobe.com/adobecloud/rel/directory";RelType["DIRECTORY_BASE"]="http://ns.adobe.com/adobecloud/rel/directory/base";RelType["AC_EFFECTIVE"]="http://ns.adobe.com/adobecloud/rel/ac/effective";RelType["AC_POLICY"]="http://ns.adobe.com/adobecloud/rel/ac/policy";RelType["AC_CHECK"]="http://ns.adobe.com/adobecloud/rel/ac/check";RelType["CREATE"]="http://ns.adobe.com/adobecloud/rel/create";RelType["REPOSITORY"]="http://ns.adobe.com/adobecloud/rel/repository";RelType["RESOLVE_ID"]="http://ns.adobe.com/adobecloud/rel/resolve/id";RelType["RESOLVE_PATH"]="http://ns.adobe.com/adobecloud/rel/resolve/path";RelType["OPS"]="http://ns.adobe.com/adobecloud/rel/ops";RelType["BLOCK_INITIALIZE"]="http://ns.adobe.com/adobecloud/rel/block/init";RelType["BLOCK_TRANSFER"]="http://ns.adobe.com/adobecloud/rel/block/transfer";RelType["BLOCK_FINALIZE"]="http://ns.adobe.com/adobecloud/rel/block/finalize";RelType["REPO_METADATA"]="http://ns.adobe.com/adobecloud/rel/metadata/repository";RelType["APP_METADATA"]="http://ns.adobe.com/adobecloud/rel/metadata/application";RelType["EMBEDDED_METADATA"]="http://ns.adobe.com/adobecloud/rel/metadata/embedded";RelType["ANNOTATIONS"]="http://ns.adobe.com/adobecloud/rel/annotations";RelType["DOWNLOAD"]="http://ns.adobe.com/adobecloud/rel/download";RelType["DESCRIBED_BY"]="describedBy";RelType["VERSION"]="version-history";// ONS
RelType["SUBSCRIPTION_CREATE"]="subscription/create";RelType["NOTIFICATIONS_LONGPOLL"]="notifications/longpoll";RelType["ONS_CHANGELOG"]="ons/changelog";// Projects API
RelType["REPOSITORIES_PAGE"]="http://ns.adobe.com/repositories/rel/page";RelType["TEAMS_CREATE"]="http://ns.adobe.com/teams/rel/create";RelType["TEAMS_DISCARD"]="http://ns.adobe.com/teams/rel/discard";RelType["TEAMS_RESTORE"]="http://ns.adobe.com/teams/rel/restore";RelType["TEAMS_RENAME"]="http://ns.adobe.com/teams/rel/rename";RelType["TEAMS_PROPERTIES"]="http://ns.adobe.com/teams/rel/properties";RelType["TEAMS_PAGE"]="http://ns.adobe.com/teams/rel/page";RelType["TEAMS_PRIMARY"]="http://ns.adobe.com/teams/rel/primary";RelType["TEAM_PROVISION"]="http://ns.adobe.com/teams/rel/provision";RelType["PROJECTS_CONTEXT"]="http://ns.adobe.com/ccprojects/rel/context";RelType["PROJECTS_BOOKMARKS_BATCH"]="http://ns.adobe.com/ccprojects/rel/bookmarks/batch";RelType["PROJECTS_PRIMARY"]="http://ns.adobe.com/ccprojects/rel/primary";RelType["PROJECTS_CREATE"]="http://ns.adobe.com/ccprojects/rel/create";RelType["PROJECTS_PAGE"]="http://ns.adobe.com/ccprojects/rel/page";RelType["PROJECTS_LIBRARIES_PAGE"]="http://ns.adobe.com/ccprojects/rel/libraries/page";RelType["PROJECTS_LIBRARIES_CREATE"]="http://ns.adobe.com/ccprojects/rel/libraries/create";RelType["PROJECTS_LIBRARIES_BATCH"]="http://ns.adobe.com/ccprojects/rel/libraries/batch";RelType["GENERIC_PAGE"]="page";RelType["GENERIC_NEXT"]="next";// Asset Transfer Service
RelType["ATS_MOVE"]="http://ns.adobe.com/ats/rel/move";})(RelType||(RelType={}));function validateLinkParameters(links,key,params){try{const templateString=getTemplateFromLinks(links,key);const template=UriTemplate(templateString);// Check that required arguments are available.
return params.every(param=>template.varNames.indexOf(param)!==-1);}catch(_a){// We only care if the link is valid. If it is not valid, then we will return false,
// so that our caches could be invalidated correctly.
return false;}}function validateLinks(links,requirements){if(links===undefined){return true;}if(Object(links)!==links){return false;}// All links should have an href
const hasMissingHrefs=Object.keys(links).some(key=>{const link=links[key];if(!Array.isArray(link)){return typeof link.href!=='string';}return link.some(({href})=>typeof href!=='string');});if(hasMissingHrefs){return false;}if(requirements){const keys=Object.keys(requirements);const hasAllParameters=keys.every(key=>validateLinkParameters(links,key,requirements[key]));if(!hasAllParameters){return false;}}return true;}function getTemplateFromLinks(links,key){let link=links&&links[key];if(!link||Array.isArray(link)&&link.length===0){// The callers of these methods would fail without an actual URL.
// It is better to fail early by throwing a proper exception.
throw new SAMError('INVALID_DATA',`Missing template link for relationship type: ${key}.`);}if(Array.isArray(link)){link=link[0];}return link.href;}function getURLFromLinks(links,key,params={}){const templateString=getTemplateFromLinks(links,key);const template=UriTemplate(templateString);return template&&template.fill(params);}const RETRY_RANDOM_SECONDS=30;// Choose random seconds between [0,x] for retry-after as a date
function getRetryAfterHeader(headers){const retryAfterHeader=headers&&headers.get('Retry-After');if(retryAfterHeader){try{// First, try to parse it as a number (retry time in seconds)
const retryTime=parseInt(retryAfterHeader,10);if(retryTime){return Math.max(0,retryTime);}// If that fails, try to parse it as a date
const retryDate=Date.parse(retryAfterHeader);if(retryDate){// Need to add a randomised element to ensure requests don't all come back at the same time
const now=Date.now();const retrySeconds=Math.max(0,retryDate-now)/1000;const retryRandom=Math.floor(Math.random()*RETRY_RANDOM_SECONDS);return retrySeconds+retryRandom;}}catch(e){// ignore
}}return 0;}/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/ // Support retrying an asynchronous method on failure, with a backoff
var retry=(target,propertyKey,descriptor)=>{const timeout=Symbol(`@retry ${propertyKey}`);const method=descriptor.value;descriptor.value=async function(attempt=0){const timeoutId=this[timeout];if(timeoutId){clearTimeout(timeoutId);this[timeout]=undefined;}try{await method.call(this);}catch(e){// If we're unable to resolve (unable to connect to services or unexpected response), we schedule a retry
const retryAfter=e.response?getRetryAfterHeader(e.response.headers)*1000:0;const interval=Math.max(this._core.environment.getRetryInterval(attempt),retryAfter);this._core.environment.log(`Retrying ${propertyKey} in ${interval}ms`);this[timeout]=setTimeout(()=>descriptor.value.call(this,attempt+1),interval);}};};/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/ /**
 * The synchronized decorator ensures that only one caller can be executing the method at once,
 * similar to the synchronized keyword in Java for critical blocks. This only makes sense
 * to apply to asynchronous methods, since JavaScript is single-threaded.
 *
 * If an @synchronized method is called while another caller is already executing it, the second
 * caller will wait until the first caller finishes (regardless of whether the promise rejects or succeeds),
 * before executing.
 *
 * A parameter can be marked as @key, allowing multiple concurrent calls so long as the keys are different
 * (this is similar to passing a value to synchronized() in Java).
 */var synchronized=(target,propertyKey,descriptor)=>{const promisesMapProperty=Symbol(`@synchronized ${propertyKey}`);const method=descriptor.value;if(!method){throw new SAMError('INVALID_PARAMETER','@synchronized decorator can only be applied to a method');}descriptor.value=async function(...args){var _a;const keyIndex=(_a=this[KeysProperty])===null||_a===void 0?void 0:_a.get(propertyKey);const key=keyIndex===undefined?'default':args[keyIndex];const map=this[promisesMapProperty]||(this[promisesMapProperty]=new Map());let promise;do{promise=map.get(key);if(promise){// Somebody else was already executing, so we wait for that to finish first
try{await promise;}catch(e){// Ignore any errors - we'll execute after the existing caller resolves or rejects
}}}while(promise);// Now enter the critical block ourself - record the promise so others need to wait.
// Note that we use different promise so that we ensure other callers continue only after
// we've deleted the previous promise.
let outerResolve;map.set(key,new Promise(resolve=>outerResolve=resolve));try{return await method.apply(this,args);}finally{// Always delete the promise even if we reject, to allow others to continue
map.delete(key);outerResolve&&outerResolve();}};};var domain;// This constructor is used to store event handlers. Instantiating this is
// faster than explicitly calling `Object.create(null)` to get a "clean" empty
// object (tested with v8 v4.9).
function EventHandlers(){}EventHandlers.prototype=Object.create(null);function EventEmitter(){EventEmitter.init.call(this);}// nodejs oddity
// require('events') === require('events').EventEmitter
EventEmitter.EventEmitter=EventEmitter;EventEmitter.usingDomains=false;EventEmitter.prototype.domain=undefined;EventEmitter.prototype._events=undefined;EventEmitter.prototype._maxListeners=undefined;// By default EventEmitters will print a warning if more than 10 listeners are
// added to it. This is a useful default which helps finding memory leaks.
EventEmitter.defaultMaxListeners=10;EventEmitter.init=function(){this.domain=null;if(EventEmitter.usingDomains){// if there is an active domain, then attach to it.
if(domain.active);}if(!this._events||this._events===Object.getPrototypeOf(this)._events){this._events=new EventHandlers();this._eventsCount=0;}this._maxListeners=this._maxListeners||undefined;};// Obviously not all Emitters should be limited to 10. This function allows
// that to be increased. Set to zero for unlimited.
EventEmitter.prototype.setMaxListeners=function setMaxListeners(n){if(typeof n!=='number'||n<0||isNaN(n))throw new TypeError('"n" argument must be a positive number');this._maxListeners=n;return this;};function $getMaxListeners(that){if(that._maxListeners===undefined)return EventEmitter.defaultMaxListeners;return that._maxListeners;}EventEmitter.prototype.getMaxListeners=function getMaxListeners(){return $getMaxListeners(this);};// These standalone emit* functions are used to optimize calling of event
// handlers for fast cases because emit() itself often has a variable number of
// arguments and can be deoptimized because of that. These functions always have
// the same number of arguments and thus do not get deoptimized, so the code
// inside them can execute faster.
function emitNone(handler,isFn,self){if(isFn)handler.call(self);else{var len=handler.length;var listeners=arrayClone(handler,len);for(var i=0;i<len;++i)listeners[i].call(self);}}function emitOne(handler,isFn,self,arg1){if(isFn)handler.call(self,arg1);else{var len=handler.length;var listeners=arrayClone(handler,len);for(var i=0;i<len;++i)listeners[i].call(self,arg1);}}function emitTwo(handler,isFn,self,arg1,arg2){if(isFn)handler.call(self,arg1,arg2);else{var len=handler.length;var listeners=arrayClone(handler,len);for(var i=0;i<len;++i)listeners[i].call(self,arg1,arg2);}}function emitThree(handler,isFn,self,arg1,arg2,arg3){if(isFn)handler.call(self,arg1,arg2,arg3);else{var len=handler.length;var listeners=arrayClone(handler,len);for(var i=0;i<len;++i)listeners[i].call(self,arg1,arg2,arg3);}}function emitMany(handler,isFn,self,args){if(isFn)handler.apply(self,args);else{var len=handler.length;var listeners=arrayClone(handler,len);for(var i=0;i<len;++i)listeners[i].apply(self,args);}}EventEmitter.prototype.emit=function emit(type){var er,handler,len,args,i,events,domain;var doError=type==='error';events=this._events;if(events)doError=doError&&events.error==null;else if(!doError)return false;domain=this.domain;// If there is no 'error' event listener then throw.
if(doError){er=arguments[1];if(domain){if(!er)er=new Error('Uncaught, unspecified "error" event');er.domainEmitter=this;er.domain=domain;er.domainThrown=false;domain.emit('error',er);}else if(er instanceof Error){throw er;// Unhandled 'error' event
}else{// At least give some kind of context to the user
var err=new Error('Uncaught, unspecified "error" event. ('+er+')');err.context=er;throw err;}return false;}handler=events[type];if(!handler)return false;var isFn=typeof handler==='function';len=arguments.length;switch(len){// fast cases
case 1:emitNone(handler,isFn,this);break;case 2:emitOne(handler,isFn,this,arguments[1]);break;case 3:emitTwo(handler,isFn,this,arguments[1],arguments[2]);break;case 4:emitThree(handler,isFn,this,arguments[1],arguments[2],arguments[3]);break;// slower
default:args=new Array(len-1);for(i=1;i<len;i++)args[i-1]=arguments[i];emitMany(handler,isFn,this,args);}return true;};function _addListener(target,type,listener,prepend){var m;var events;var existing;if(typeof listener!=='function')throw new TypeError('"listener" argument must be a function');events=target._events;if(!events){events=target._events=new EventHandlers();target._eventsCount=0;}else{// To avoid recursion in the case that type === "newListener"! Before
// adding it to the listeners, first emit "newListener".
if(events.newListener){target.emit('newListener',type,listener.listener?listener.listener:listener);// Re-assign `events` because a newListener handler could have caused the
// this._events to be assigned to a new object
events=target._events;}existing=events[type];}if(!existing){// Optimize the case of one listener. Don't need the extra array object.
existing=events[type]=listener;++target._eventsCount;}else{if(typeof existing==='function'){// Adding the second element, need to change to array.
existing=events[type]=prepend?[listener,existing]:[existing,listener];}else{// If we've already got an array, just append.
if(prepend){existing.unshift(listener);}else{existing.push(listener);}}// Check for listener leak
if(!existing.warned){m=$getMaxListeners(target);if(m&&m>0&&existing.length>m){existing.warned=true;var w=new Error('Possible EventEmitter memory leak detected. '+existing.length+' '+type+' listeners added. '+'Use emitter.setMaxListeners() to increase limit');w.name='MaxListenersExceededWarning';w.emitter=target;w.type=type;w.count=existing.length;emitWarning(w);}}}return target;}function emitWarning(e){typeof console.warn==='function'?console.warn(e):console.log(e);}EventEmitter.prototype.addListener=function addListener(type,listener){return _addListener(this,type,listener,false);};EventEmitter.prototype.on=EventEmitter.prototype.addListener;EventEmitter.prototype.prependListener=function prependListener(type,listener){return _addListener(this,type,listener,true);};function _onceWrap(target,type,listener){var fired=false;function g(){target.removeListener(type,g);if(!fired){fired=true;listener.apply(target,arguments);}}g.listener=listener;return g;}EventEmitter.prototype.once=function once(type,listener){if(typeof listener!=='function')throw new TypeError('"listener" argument must be a function');this.on(type,_onceWrap(this,type,listener));return this;};EventEmitter.prototype.prependOnceListener=function prependOnceListener(type,listener){if(typeof listener!=='function')throw new TypeError('"listener" argument must be a function');this.prependListener(type,_onceWrap(this,type,listener));return this;};// emits a 'removeListener' event iff the listener was removed
EventEmitter.prototype.removeListener=function removeListener(type,listener){var list,events,position,i,originalListener;if(typeof listener!=='function')throw new TypeError('"listener" argument must be a function');events=this._events;if(!events)return this;list=events[type];if(!list)return this;if(list===listener||list.listener&&list.listener===listener){if(--this._eventsCount===0)this._events=new EventHandlers();else{delete events[type];if(events.removeListener)this.emit('removeListener',type,list.listener||listener);}}else if(typeof list!=='function'){position=-1;for(i=list.length;i-->0;){if(list[i]===listener||list[i].listener&&list[i].listener===listener){originalListener=list[i].listener;position=i;break;}}if(position<0)return this;if(list.length===1){list[0]=undefined;if(--this._eventsCount===0){this._events=new EventHandlers();return this;}else{delete events[type];}}else{spliceOne(list,position);}if(events.removeListener)this.emit('removeListener',type,originalListener||listener);}return this;};// Alias for removeListener added in NodeJS 10.0
// https://nodejs.org/api/events.html#events_emitter_off_eventname_listener
EventEmitter.prototype.off=function(type,listener){return this.removeListener(type,listener);};EventEmitter.prototype.removeAllListeners=function removeAllListeners(type){var listeners,events;events=this._events;if(!events)return this;// not listening for removeListener, no need to emit
if(!events.removeListener){if(arguments.length===0){this._events=new EventHandlers();this._eventsCount=0;}else if(events[type]){if(--this._eventsCount===0)this._events=new EventHandlers();else delete events[type];}return this;}// emit removeListener for all listeners on all events
if(arguments.length===0){var keys=Object.keys(events);for(var i=0,key;i<keys.length;++i){key=keys[i];if(key==='removeListener')continue;this.removeAllListeners(key);}this.removeAllListeners('removeListener');this._events=new EventHandlers();this._eventsCount=0;return this;}listeners=events[type];if(typeof listeners==='function'){this.removeListener(type,listeners);}else if(listeners){// LIFO order
do{this.removeListener(type,listeners[listeners.length-1]);}while(listeners[0]);}return this;};EventEmitter.prototype.listeners=function listeners(type){var evlistener;var ret;var events=this._events;if(!events)ret=[];else{evlistener=events[type];if(!evlistener)ret=[];else if(typeof evlistener==='function')ret=[evlistener.listener||evlistener];else ret=unwrapListeners(evlistener);}return ret;};EventEmitter.listenerCount=function(emitter,type){if(typeof emitter.listenerCount==='function'){return emitter.listenerCount(type);}else{return listenerCount.call(emitter,type);}};EventEmitter.prototype.listenerCount=listenerCount;function listenerCount(type){var events=this._events;if(events){var evlistener=events[type];if(typeof evlistener==='function'){return 1;}else if(evlistener){return evlistener.length;}}return 0;}EventEmitter.prototype.eventNames=function eventNames(){return this._eventsCount>0?Reflect.ownKeys(this._events):[];};// About 1.5x faster than the two-arg version of Array#splice().
function spliceOne(list,index){for(var i=index,k=i+1,n=list.length;k<n;i+=1,k+=1)list[i]=list[k];list.pop();}function arrayClone(arr,i){var copy=new Array(i);while(i--)copy[i]=arr[i];return copy;}function unwrapListeners(arr){var ret=new Array(arr.length);for(var i=0;i<ret.length;++i){ret[i]=arr[i].listener||arr[i];}return ret;}/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/ /**
 * Base class that can be used to create Typed Event Emitters.
 * @example:
 * class ClickEvent extends Event {
 *     myClickProp: string;
 *     constructor() {
 *         super('click');
 *     }
 * }
 *
 * class MyClass extends TypedEventEmitter<{ click: ClickEvent }>() {
 *     baseProp : string;
 * }
 *
 * const obj = new MyClass();
 * obj.on('click', (ev, sender) => {
 *     // The ev object is typed based on the 'click' event.
 *     ev.myClickProp;
 * });
 *
 * subClass.dispatch(new ClickEvent());
 */class TypedEventEmitter extends EventEmitter{dispatch(ev){return super.emit(ev.type,ev,this);}once(type,callback){const result=super.once(type,callback);this._onEventListenerAdded();return result;}on(type,callback){// Prevent adding duplicate listeners
if(this.listeners(type).includes(callback)){return this;}const result=super.on(type,callback);this._onEventListenerAdded();return result;}off(type,callback){return super.off(type,callback);}// Called when a new event listener is added on the object.
_onEventListenerAdded(){}}/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/ /**
 * Base class for all events sent out from SAMJS.
 */class Event$1{constructor(_type){this._type=_type;}get type(){return this._type;}}/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/ /**
 * Dummy implementation of the WeakRef interface to be used
 * in browsers that do not support WeakRefs natively.
 * Note that the associated objects will not be reclaimed by the
 * garbage collector. We don't expect this to be an actual issue
 * in practice for SAM though.
 */class WeakRefPolyfill{constructor(_ref){this._ref=_ref;}/**
     * Needed in order to fully implement the WeakRef interface.
     * The `Symbol.toStringTag` symbol is a property that
     * is used by the default implementation of the toString method.
     */get[Symbol.toStringTag](){return'WeakRef';}/**
     * Returns the WeakRef target object.
     * Note that this implementation emulates the API, but cannot
     * actually keep a weak reference.
     *
     * Based on MDN data, most modern browsers support WeakRef.
     */deref(){return this._ref;}}/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/var WeakRef$1=typeof WeakRef!=='undefined'?WeakRef:WeakRefPolyfill;/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/const CHANGE='change';class ChangeEvent extends Event$1{constructor(){super(CHANGE);}}const SharedChangeEvent=new ChangeEvent();/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/function updateLastKnownClientMutationValues(item){item.updateLastKnownClientMutation();}function updateLastKnownClientMutationKeys(_,item){item.updateLastKnownClientMutation();}class UpdateSession{constructor(_core,_delegate,updateContext,mostRecentValidMutation,type='fetch'){this._core=_core;this._delegate=_delegate;this.updateContext=updateContext;this.mostRecentValidMutation=mostRecentValidMutation;this.type=type;}get hasChanges(){return Boolean(this._addedItems||this._changedItems||this._discardedItems);}get addedItems(){return this._addedItems&&Array.from(this._addedItems.values());}get changedItems(){return this._changedItems&&Array.from(this._changedItems.keys());}get discardedItems(){return this._discardedItems&&Array.from(this._discardedItems);}checkIfItemAllowsMutations(item){const{lastKnownClientMutation}=item;const{mostRecentValidMutation}=this;// Return false only when the item has a mutation time that is more recent than the
// window of latency that the server APIs can guarantee.
return!lastKnownClientMutation||!mostRecentValidMutation||lastKnownClientMutation<mostRecentValidMutation;}ensureItemIsAdded(item){var _a;const{id}=item;if(((_a=this._addedItems)===null||_a===void 0?void 0:_a.get(id))===item){// It was already part of this session.
return;}// Check if we already had it in the pool. If it was discarded before,
// then we want to recover it by adding it again.
const delegate=this._delegate;if(delegate.getLocalItemById(id)===item&&!delegate.isItemDiscarded(item)){return;}// Finally, let's just add this item again.
this.queueAddedItem(item);}queueAddedItem(item){var _a;let addedItems=this._addedItems;if(!addedItems){addedItems=new Map();this._addedItems=addedItems;}addedItems.set(item.id,item);// Make sure we don't send any changed events on new items.
(_a=this._changedItems)===null||_a===void 0?void 0:_a.delete(item);}queueChangedItem(item,event=SharedChangeEvent){var _a;if((_a=this._addedItems)===null||_a===void 0?void 0:_a.has(item.id)){// We don't send any events on new items.
return;}let changedItems=this._changedItems;if(!changedItems){changedItems=new Map();this._changedItems=changedItems;}let itemEvents=changedItems.get(item);if(!itemEvents){itemEvents=[];changedItems.set(item,itemEvents);}itemEvents.push(event);}queueDiscardedItem(item){let discardedItems=this._discardedItems;if(!discardedItems){discardedItems=new Set();this._discardedItems=discardedItems;}discardedItems.add(item);}getItemById(id){var _a;return((_a=this._addedItems)===null||_a===void 0?void 0:_a.get(id))||this._delegate.getLocalItemById(id);}commit(){var _a,_b;// Committing the update session first to make sure the pool is up-to-date
// with the latest changes before we move control back to the client code.
this._delegate.commitUpdateSession(this);// Dispatch all events on the changed items.
let changedItems=this._changedItems;if(changedItems){for(const[item,events]of changedItems.entries()){for(const event of events){item.dispatch(event);}}}if(this.type==='mutation'){// If this was the result of a mutation change, then we have to update the timestamps
// of all the items that were used.
(_a=this._addedItems)===null||_a===void 0?void 0:_a.forEach(updateLastKnownClientMutationValues);(_b=this._discardedItems)===null||_b===void 0?void 0:_b.forEach(updateLastKnownClientMutationValues);changedItems===null||changedItems===void 0?void 0:changedItems.forEach(updateLastKnownClientMutationKeys);}}}/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/const ITEMS_CHANGED='itemsChanged';class ItemsChangedEvent extends Event$1{constructor(addedItems,changedItems,discardedItems,updateContext){super(ITEMS_CHANGED);this.addedItems=addedItems;this.changedItems=changedItems;this.discardedItems=discardedItems;this.updateContext=updateContext;}}function compareDelegatesByPriority(a,b){if(a.priority===b.priority){return 0;}return a.priority==='list'?-1:1;}/**
 * The ItemPool class is used to keep unique references in memory for objects that
 * represent cloud items like assets, teams or spaces.
 * The ItemPool helps with mapping between a remote id and a local reference in memory.
 *
 * On supported browsers the pool uses the WeakRef object to keep the objects alive.
 * only as long as they are used by the application.
 */class ItemPool extends TypedEventEmitter{constructor(_core,type){super();this._core=_core;this.type=type;this._objectsById=new Map();this._discardedObjects=new WeakSet();this._delegates=[];this._hasUnsortedDelegates=false;/**
         * Looks up the item in the local in-memory storage.
         * The items are stored used WeakRef to avoid leaking. The client of this
         * method is responsible with keeping these objects alive for as long as
         * they are needed.
         * @param id
         * @returns
         */this.getLocalItemById=id=>{const ref=this._objectsById.get(id);return ref===null||ref===void 0?void 0:ref.deref();};this.removeLocalItems=ids=>{if(Array.isArray(ids)){ids.forEach(id=>{this._objectsById.delete(id);});return;}this._objectsById.delete(ids);};this.isItemDiscarded=item=>{return this._discardedObjects.has(item);};this._updateSessionDelegate={getLocalItemById:this.getLocalItemById,isItemDiscarded:this.isItemDiscarded,commitUpdateSession:session=>{if(!session.hasChanges){return;}const objectsById=this._objectsById;const discardedObjects=this._discardedObjects;// Make a note about discarded objects.
const{discardedItems}=session;if(discardedItems){for(const item of discardedItems){discardedObjects.add(item);}}// Inject the new items in the local map.
const{addedItems}=session;if(addedItems){for(const item of addedItems){objectsById.set(item.id,new WeakRef$1(item));discardedObjects.delete(item);}}const event=new ItemsChangedEvent(session.addedItems,session.changedItems,session.discardedItems,session.updateContext);const delegates=this._delegates;if(this._hasUnsortedDelegates){delegates.sort(compareDelegatesByPriority);this._hasUnsortedDelegates=false;}let hasEmptyWeakRefs=false;for(const delegateRef of delegates){const delegate=delegateRef.delegate.deref();if(!delegate){// Remember to filter out the expired weak refs.
hasEmptyWeakRefs=true;continue;}delegate.onItemsUpdated(event,this);}if(hasEmptyWeakRefs){// Make another pass and keep only the delegates that are still alive.
this._delegates=delegates.filter(ref=>ref.delegate.deref());}this.dispatch(event);}};}// TODO: document when to use createUpdateSession vs createMutationSession
createUpdateSession(updateContext,mostRecentValidMutation){return new UpdateSession(this._core,this._updateSessionDelegate,updateContext,mostRecentValidMutation);}// TODO: document when to use createUpdateSession vs createMutationSession
createMutationSession(){return new UpdateSession(this._core,this._updateSessionDelegate,undefined,undefined,'mutation');}/**
     * Adds a delegate to receive notifications when items change.
     * The delegates cannot be removed, so the connection is alive
     * as long as both the pool and the delegate are still referenced.
     * The client must ensure the delegate is kept alive until the events
     * are not necessary anymore.
     *
     * Performance: Adding too many delegates can obviously hurt performance.
     * Make sure that the callbacks on the delegate are as fast as possible.
     * If the user is not interested in any updates, it is best to make a note
     * that the list is dirty and return as quick as possible. Make sure to delay
     * any of the actual work until the data is requested by the client.
     *
     * Note that we are not adding this on top of the event dispatcher to avoid
     * making the weak ref model a wide spread solution across the repo.
     *
     * @param delegate
     */addDelegate(delegate,priority){this._delegates.push({priority,delegate:new WeakRef$1(delegate)});this._hasUnsortedDelegates=true;}forEach(fn){const objectsById=this._objectsById;for(const[key,itemRef]of objectsById){const item=itemRef.deref();if(!item){// Make sure to cleanup the interface while we do this.
objectsById.delete(key);continue;}fn(item);}}map(fn){const results=[];this.forEach(item=>{results.push(fn(item));});return results;}}var COMPATIBLE_ENCODING_PATTERN=/^utf-?8|ascii|utf-?16-?le|ucs-?2|base-?64|latin-?1$/i;var WS_TRIM_PATTERN=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;var WS_CHAR_PATTERN=/\s|\uFEFF|\xA0/;var WS_FOLD_PATTERN=/\r?\n[\x20\x09]+/g;var DELIMITER_PATTERN=/[;,"]/;var WS_DELIMITER_PATTERN=/[;,"]|\s/;var STATE={IDLE:1<<0,URI:1<<1,ATTR:1<<2};function trim(value){return value.replace(WS_TRIM_PATTERN,'');}function hasWhitespace(value){return WS_CHAR_PATTERN.test(value);}function skipWhitespace(value,offset){while(hasWhitespace(value[offset])){offset++;}return offset;}function needsQuotes(value){return WS_DELIMITER_PATTERN.test(value);}class Link{/**
   * Link
   * @constructor
   * @param {String} [value]
   * @returns {Link}
   */constructor(value){/** @type {Array} URI references */this.refs=[];if(value){this.parse(value);}}/**
   * Get refs with given relation type
   * @param {String} value
   * @returns {Array<Object>}
   */rel(value){var links=[];for(var i=0;i<this.refs.length;i++){if(this.refs[i].rel===value){links.push(this.refs[i]);}}return links;}/**
   * Get refs where given attribute has a given value
   * @param {String} attr
   * @param {String} value
   * @returns {Array<Object>}
   */get(attr,value){attr=attr.toLowerCase();var links=[];for(var i=0;i<this.refs.length;i++){if(this.refs[i][attr]===value){links.push(this.refs[i]);}}return links;}set(link){this.refs.push(link);return this;}has(attr,value){attr=attr.toLowerCase();for(var i=0;i<this.refs.length;i++){if(this.refs[i][attr]===value){return true;}}return false;}parse(value,offset){offset=offset||0;value=offset?value.slice(offset):value;// Trim & unfold folded lines
value=trim(value).replace(WS_FOLD_PATTERN,'');var state=STATE.IDLE;var length=value.length;var offset=0;var ref=null;while(offset<length){if(state===STATE.IDLE){if(hasWhitespace(value[offset])){offset++;continue;}else if(value[offset]==='<'){var end=value.indexOf('>',offset);if(end===-1)throw new Error('Expected end of URI delimiter at offset '+offset);ref={uri:value.slice(offset+1,end)};this.refs.push(ref);offset=end;state=STATE.URI;}else{throw new Error('Unexpected character "'+value[offset]+'" at offset '+offset);}offset++;}else if(state===STATE.URI){if(hasWhitespace(value[offset])){offset++;continue;}else if(value[offset]===';'){state=STATE.ATTR;offset++;}else if(value[offset]===','){state=STATE.IDLE;offset++;}else{throw new Error('Unexpected character "'+value[offset]+'" at offset '+offset);}}else if(state===STATE.ATTR){if(value[offset]===';'||hasWhitespace(value[offset])){offset++;continue;}var end=value.indexOf('=',offset);if(end===-1)throw new Error('Expected attribute delimiter at offset '+offset);var attr=trim(value.slice(offset,end)).toLowerCase();var attrValue='';offset=end+1;offset=skipWhitespace(value,offset);if(value[offset]==='"'){offset++;while(offset<length){if(value[offset]==='"'){offset++;break;}if(value[offset]==='\\'){offset++;}attrValue+=value[offset];offset++;}}else{var end=offset+1;while(!DELIMITER_PATTERN.test(value[end])&&end<length){end++;}attrValue=value.slice(offset,end);offset=end;}if(ref[attr]&&Link.isSingleOccurenceAttr(attr));else if(attr[attr.length-1]==='*'){ref[attr]=Link.parseExtendedValue(attrValue);}else{attrValue=attr==='rel'||attr==='type'?attrValue.toLowerCase():attrValue;if(ref[attr]!=null){if(Array.isArray(ref[attr])){ref[attr].push(attrValue);}else{ref[attr]=[ref[attr],attrValue];}}else{ref[attr]=attrValue;}}switch(value[offset]){case',':state=STATE.IDLE;break;case';':state=STATE.ATTR;break;}offset++;}else{throw new Error('Unknown parser state "'+state+'"');}}ref=null;return this;}toString(){var refs=[];var link='';var ref=null;for(var i=0;i<this.refs.length;i++){ref=this.refs[i];link=Object.keys(this.refs[i]).reduce(function(link,attr){if(attr==='uri')return link;return link+'; '+Link.formatAttribute(attr,ref[attr]);},'<'+ref.uri+'>');refs.push(link);}return refs.join(', ');}}/**
 * Determines whether an encoding can be
 * natively handled with a `Buffer`
 * @param {String} value
 * @returns {Boolean}
 */Link.isCompatibleEncoding=function(value){return COMPATIBLE_ENCODING_PATTERN.test(value);};Link.parse=function(value,offset){return new Link().parse(value,offset);};Link.isSingleOccurenceAttr=function(attr){return attr==='rel'||attr==='type'||attr==='media'||attr==='title'||attr==='title*';};Link.isTokenAttr=function(attr){return attr==='rel'||attr==='type'||attr==='anchor';};Link.escapeQuotes=function(value){return value.replace(/"/g,'\\"');};/**
 * Parses an extended value and attempts to decode it
 * @internal
 * @param {String} value
 * @return {Object}
 */Link.parseExtendedValue=function(value){var parts=/([^']+)?(?:'([^']+)')?(.+)/.exec(value);return{language:parts[2].toLowerCase(),encoding:Link.isCompatibleEncoding(parts[1])?null:parts[1].toLowerCase(),value:Link.isCompatibleEncoding(parts[1])?decodeURIComponent(parts[3]):parts[3]};};/**
 * Format a given extended attribute and it's value
 * @param {String} attr
 * @param {Object} data
 * @return {String}
 */Link.formatExtendedAttribute=function(attr,data){var encoding=(data.encoding||'utf-8').toUpperCase();var language=data.language||'en';var encodedValue='';if(Buffer.isBuffer(data.value)&&Link.isCompatibleEncoding(encoding)){encodedValue=data.value.toString(encoding);}else if(Buffer.isBuffer(data.value)){encodedValue=data.value.toString('hex').replace(/[0-9a-f]{2}/gi,'%$1');}else{encodedValue=encodeURIComponent(data.value);}return attr+'='+encoding+'\''+language+'\''+encodedValue;};/**
 * Format a given attribute and it's value
 * @param {String} attr
 * @param {String|Object} value
 * @return {String}
 */Link.formatAttribute=function(attr,value){if(Array.isArray(value)){return value.map(item=>{return Link.formatAttribute(attr,item);}).join('; ');}if(attr[attr.length-1]==='*'||typeof value!=='string'){return Link.formatExtendedAttribute(attr,value);}if(Link.isTokenAttr(attr)){value=needsQuotes(value)?'"'+Link.escapeQuotes(value)+'"':Link.escapeQuotes(value);}else if(needsQuotes(value)){value=encodeURIComponent(value);// We don't need to escape <SP> <,> <;> within quotes
value=value.replace(/%20/g,' ').replace(/%2C/g,',').replace(/%3B/g,';');value='"'+value+'"';}return attr+'='+value;};var link=Link;/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/ /**
 * Implements the Response structure used as a return value for
 * the `parseAsyncResponse` method below.
 *
 * The class only supports json() and text(), we should not require more than
 * text encoding for the APIs that support Async requests.
 */class AsyncResponse{constructor(url,headers,status,statusText,_text){this.url=url;this.headers=headers;this.status=status;this.statusText=statusText;this._text=_text;}get ok(){const{status}=this;return status>=200&&status<=299;}get redirected(){return false;}get type(){return'basic';}async json(){try{return JSON.parse(this._text);}catch(err){throw new SAMGenericError('INVALID_DATA',`Failed to parse JSON response from '${this.url}' async request.`,err);}}async text(){return this._text;}get trailer(){throw new SAMError('NOT_IMPLEMENTED','AsyncResponse.trailer not implemented.');}clone(){const clonedHeaders=new Headers();this.headers.forEach((value,key)=>clonedHeaders.set(key,value));return new AsyncResponse(this.url,clonedHeaders,this.status,this.statusText,this._text);}get bodyUsed(){throw new SAMError('NOT_IMPLEMENTED','AsyncResponse.bodyUsed not implemented.');}get body(){throw new SAMError('NOT_IMPLEMENTED','AsyncResponse.body not implemented.');}async arrayBuffer(){throw new SAMError('NOT_IMPLEMENTED','AsyncResponse.arrayBuffer not implemented.');}async blob(){throw new SAMError('NOT_IMPLEMENTED','AsyncResponse.blob not implemented.');}async formData(){throw new SAMError('NOT_IMPLEMENTED','AsyncResponse.formData not implemented.');}}// https://www.w3.org/Protocols/rfc2616/rfc2616-sec2.html#sec2.1
// OCTET          = <any 8-bit sequence of data>
// CHAR           = <any US-ASCII character (octets 0 - 127)>
// CTL            = <any US-ASCII control character
//                  (octets 0 - 31) and DEL (127)>
// SP             = <US-ASCII SP, space (32)>
// HT             = <US-ASCII HT, horizontal-tab (9)>
// separators     = "(" | ")" | "<" | ">" | "@"
//                | "," | ";" | ":" | "\" | <">
//                | "/" | "[" | "]" | "?" | "="
//                | "{" | "}" | SP | HT
// token          = 1*<any CHAR except CTLs or separators>
// A header is just a <token>, the char ':' and the value.
function createHeaderRegexp(){const separators='()<@,;:"/[]={}';// Start from the first character that is accepted by the <token>.
let start=33;let regexp=['^(['];for(let i=34;i<=127;++i){// We know 127 is not accepted, so we use it as a terminator for our regexp segments.
// None of the separators are allowed.
if(i===127||separators.indexOf(String.fromCharCode(i))!==-1){regexp.push('\\'+start.toString(8));if(start<i-1){regexp.push('-\\'+(i-1).toString(8));}start=i+1;}}regexp.push(']+):(.*)$');return new RegExp(regexp.join(''));}const END_OF_LINE='\n';const CR='\r';const headerRegexp=createHeaderRegexp();const statusRegexp=/^[^\s]+\s+(\d+)\s*(.*)$/;class HttpResponseParser{constructor(_text){this._text=_text;this._index=0;}readLine(){const{_index,_text}=this;// The standard expects lines to end with CRLF by default.
// However, it recommends to accept a single LF as well,
// just in case some implementations do not implement the
// standard correctly.
// Async responses only use LF.
const endOfLine=_text.indexOf(END_OF_LINE,_index);if(endOfLine===-1){// We're done.
return;}this._index=endOfLine+END_OF_LINE.length;let line=_text.slice(_index,endOfLine);if(line.endsWith(CR)){// If we have the CR just before the LF, then we want to skip it too.
line=line.slice(0,-1);}return line;}get remainderText(){return this._text.slice(this._index);}}/**
 * Implements parsing of the async response body.
 * https://git.corp.adobe.com/pages/caf/api-spec/chapters/advanced/asynchronous_invocation.html
 *
 * The caller should check for status code 202 then call this method to extract the contents
 * of final async result. The actual result is very similar to a nested HTTP reply inside the body
 * of the initial request.
 *
 */function parseAsyncResponse(originalUrl,body){if(!body){throw new SAMError('INVALID_DATA','Invalid async response body.');}const parser=new HttpResponseParser(body);let status;let statusText;const statusLine=parser.readLine();if(!statusLine){// throw new SAMError('INVALID_DATA', 'Could not find async response status line.');
// TODO: R-API does not return the status line for operations api. Any errors are reported in data section.
// When this is fixed, then missing status line should be an error.
// https://developers.corp.adobe.com/supplemental-resources/docs/async-invocation.md/#operations-api-exception
status=200;statusText='';}else{// The status line has 3 parts separated by spaces.
// Example status line: HTTP/1.1 200 Status text
const statusMatch=statusLine.match(statusRegexp);if(!statusMatch){throw new SAMError('INVALID_DATA','Invalid status line for async response.');}// The status code is the second element
status=parseInt(statusMatch[1],10);if(!status){throw new SAMError('INVALID_DATA','Could not find status code for async response.');}statusText=statusMatch[2];}// Now we extract the headers line by line.
const headers=[];let headerName;for(;;){const headerLine=parser.readLine();if(!headerLine){break;}const match=headerLine.match(headerRegexp);if(!match){if(headerName){// If this is not a token, then we just continue with the value.
headers.push([headerName,headerLine]);}continue;}headerName=match[1];headers.push([headerName,match[2]]);}// 1. The last `readLine()` call above will actually jump over the empty
// line that separates the headers from the data section.
// 2. The Headers constructor below takes care of multiple headers with the
// same name and concatenates them as necessary.
return new AsyncResponse(originalUrl,new Headers(headers),status,statusText,parser.remainderText);}/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/const VALID_HTTP_RESPONSE_CODES=[200];class InterfaceBase{constructor(_core){this._core=_core;this._sharedResponses=new Map();}async _fetch(href,options={},successResponseCodes=VALID_HTTP_RESPONSE_CODES){let response=await this._core.environment.fetch(href,options);if(response.status===202){// Monitor the response.
response=await this._pollAsyncResponse(response);}if(successResponseCodes!=='any'){this._checkResponseStatus(response,href,successResponseCodes);}return response;}_checkResponseStatus(response,href,successResponseCodes){if(!successResponseCodes.includes(response.status)){throw SAMHttpResponseError.createWithResponse(response,href);}}async _pollAsyncResponse(response){let href=response.headers.get('location');if(!href){const json=await response.json();if(!json){throw new SAMError('INVALID_DATA','Failed to parse content for 202 async response.');}href=json.href;if(!href){throw new SAMError('INVALID_DATA','Missing href property for 202 async response.');}}const delay=this._getRetryAfterTimeout(response.headers);return this._fetchAsyncResponse(response.url,href,delay);}async _fetchAsyncResponse(originalUrl,asyncUrl,delay){if(delay){// Wait before trying again.
await new Promise(resolve=>setTimeout(resolve,delay));}const asyncResponse=await this._core.environment.fetch(asyncUrl);const body=await asyncResponse.text();const shouldRetry=this._shouldRetryFetchAsyncResponse(asyncResponse,body);if(shouldRetry){// Try again later.
const newDelay=this._getRetryAfterTimeout(asyncResponse.headers);return this._fetchAsyncResponse(originalUrl,asyncUrl,newDelay);}// Parse the response from the async call.
return parseAsyncResponse(originalUrl,body);}/**
     * should retry fetching asyncResponse if result are not ready
     */ // eslint-disable-next-line @typescript-eslint/no-unused-vars
_shouldRetryFetchAsyncResponse(asyncResponse,body){return asyncResponse.status===202;}_getRetryAfterTimeout(headers){return getRetryAfterHeader(headers)*1000||this._core.environment.getValue('ASYNC_DEFAULT_DELAY');}/**
     * Make a GET request to the Platform API.
     * @param href for request
     * @param headers for request
     */async _doGet(href,headers={}){return this._fetch(href,{method:'GET',headers});}/**
     * Make a HEAD request to the Platform API.
     * @param href for request
     * @param headers for request
     */async _doHead(href,headers={}){return this._fetch(href,{method:'HEAD',headers});}/**
     * Make a POST request to the Platform API.
     * @param href for request
     * @param headers for request
     * @param body for request
     * @param successResponseCodes for request. Most POST requests that create something will return a 201 success code, but
     * sometimes a different success code is used (e.g. 204 for discard/restore).
     */async _doPost(href,headers={},body,successResponseCodes=[201]){return this._fetch(href,{method:'POST',headers,body},successResponseCodes);}/**
     * Make a PATCH request to the Platform API.
     * @param href for request
     * @param headers for request
     * @param body for request
     * @param successResponseCodes for request.
     */async _doPatch(href,headers={},body,successResponseCodes=[200]){return this._fetch(href,{method:'PATCH',headers,body},successResponseCodes);}/**
     * Make a PUT request to the Platform API.
     * @param href for request
     * @param headers for request
     * @param body for request
     * @param successResponseCodes for request.
     */async _doPut(href,headers={},body,successResponseCodes=[201]){return this._fetch(href,{method:'PUT',headers,body},successResponseCodes);}/**
     * Make a DELETE request to the Platform API.
     * @param href for request
     * @param headers for request
     * @param successResponseCodes for request.
     */async _doDelete(href,headers={},successResponseCodes=[200]){return this._fetch(href,{method:'DELETE',headers},successResponseCodes);}/**
     * Get a JSON resource from the platform API - handles parsing the response as JSON
     * @param href for request
     * @param headers for request
     */async _getResponse(href,headers={}){const response=await this._doGet(href,headers);return response.json();}/**
     * The same as _getResponse, except that it allows piggybacking on a request if it's
     * already in-flight. This is useful when we have multiple places in the code that
     * depend on data from the same request (e.g. getting both collaborators and invitations
     * from the same API), and we want to avoid making repeated requests.
     *
     * @param href for request
     * @param headers for request
     */async _getSharedResponse(href,headers={}){let response=this._sharedResponses.get(href);if(!response){response=this._getResponse(href,headers);this._sharedResponses.set(href,response);response.finally(()=>this._sharedResponses.delete(href));}return response;}/**
     * Make a request to the Platform API. If it is paged, provide a next callback
     * @param href for page
     * @param headers to send with request
     */async _getPagedResponse(href,headers={}){var _a,_b;const result=await this._getResponse(href,headers);if(((_a=result===null||result===void 0?void 0:result._page)===null||_a===void 0?void 0:_a.next)&&((_b=result===null||result===void 0?void 0:result._links)===null||_b===void 0?void 0:_b[RelType.PAGE])){const template=UriTemplate(result._links[RelType.PAGE].href);const nextHref=template.fill(Object.assign(Object.assign({},result._page),{start:result._page.next,resource:RelType.PRIMARY}));const next=()=>this._getPagedResponse(nextHref,headers);return{result,next};}return{result};}/**
     * Get all of the pages of a page (or not) Platform API request
     * @param href starting href
     * @param headers to send along with the requests
     */_getAllPages(href,headers={}){let fullResult;const readPages=async requestFn=>{const result=await requestFn();const children=result&&result.result&&result.result.children;if(!children){return fullResult;}if(!fullResult){fullResult=result.result;}else{fullResult.children=fullResult.children.concat(children);}return result.next?readPages(result.next):fullResult;};return readPages(()=>this._getPagedResponse(href,headers));}/**
     * Get and parse the links header for an object in the Platform API
     * @param href of the object
     */_getLinksFromHeaders(headers){const linkHeader=headers&&headers.get('Link');if(!linkHeader){throw new SAMError('UNEXPECTED_RESPONSE','HEAD request did not return link header');}const link$1=link.parse(linkHeader);return link$1&&link$1.refs.reduce((memo,_a)=>{var{rel,uri}=_a,otherData=__rest(_a,["rel","uri"]);if(rel){memo[rel]=memo[rel]||[];memo[rel].push(Object.assign({href:uri},otherData));}return memo;},{});}_getETagFromHeaders(headers){return headers.get('ETag');}}/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2022 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/var SearchProps;(function(SearchProps){SearchProps["STORAGE_ASSIGNEE_TYPE"]="storage:assignee$$type";SearchProps["VISIBLITY"]="app_metadata$$shell:visibility";SearchProps["CREATIVE_CLOUD_TOPLEVEL_COLLECTION_NAME"]="creative_cloud_toplevel_collection_name";SearchProps["FIELD_EXISTS"]="op_field_exists";SearchProps["INCLUDES"]="includes";SearchProps["TYPE"]="type";SearchProps["ARTIFACT_FIELD"]="app_metadata$$review:sourceAsset$$dc:format";SearchProps["STORAGE_ASSIGNEE_ID"]="storage:assignee$$id";SearchProps["SHARED_VIA_INVITE"]="shared_via_invite";})(SearchProps||(SearchProps={}));const OrderByToUSSOrderBy={name:'asset_name',created:'create_date',modified:'modify_date',shared:'shared_date'};/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2022 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/const DefaultSearchQuery={scope:['creative_cloud']};class USSInterface extends InterfaceBase{_getEndpointHref(endpoint){return`https://${this._core.environment.endpoints.USS_HOST}${endpoint}`;}async getQueryResponse(searchQuery){searchQuery=Object.assign(Object.assign({},DefaultSearchQuery),searchQuery);const endpointHref=this._getEndpointHref('/universal-search/v2/search');const{PRODUCT_ID,PRODUCT_LOCATION}=this._core.environment.getValue('HOST_PRODUCT_DATA');const response=await this._doPost(endpointHref,{'Content-Type':'application/vnd.adobe.search-request+json','X-Product':PRODUCT_ID,'X-Product-Location':PRODUCT_LOCATION},JSON.stringify(searchQuery),[200]);return response.json();}async searchSpace(parentFolderId,searchArtifacts,embedPermissions,options){var _a,_b,_c,_d;const query={scope:['creative_cloud'],hints:[{acp_platform_v2:true,creative_cloud_rendition_v2:true}],cc_teams_user_storage:true,fetch_fields:{includes:['app_metadata','collaboration_metadata']},asset_id_opacity:true,sort_orderby:(_a=options===null||options===void 0?void 0:options.sort_orderby)!==null&&_a!==void 0?_a:'modify_date',sort_order:(_b=options===null||options===void 0?void 0:options.sort_order)!==null&&_b!==void 0?_b:'desc',limit:(_c=options===null||options===void 0?void 0:options.limit)!==null&&_c!==void 0?_c:50,start_index:(_d=options===null||options===void 0?void 0:options.start_index)!==null&&_d!==void 0?_d:0,[SearchProps.TYPE]:(options===null||options===void 0?void 0:options.type)||[],container:{asset_id:[parentFolderId]}};if(!searchArtifacts){query.op_none_of=[// exclude Artifacts
{op_field_exists:[SearchProps.ARTIFACT_FIELD]},// exclude hidden
{[SearchProps.VISIBLITY]:['hiddenSelf','hiddenRecursive']}];}else{// Only include artifacts
query.op_field_exists=[SearchProps.ARTIFACT_FIELD];}if(embedPermissions){query.fetch_fields.includes.push('_embedded');}return this.getQueryResponse(query);}}/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/class InvitationInterface extends InterfaceBase{constructor(){super(...arguments);this._batchRequestLimit=50;}get batchRequestLimit(){return this._batchRequestLimit;}_getUrl(endpoint){return`https://${this._core.environment.endpoints.INVITATIONS_HOST}${endpoint}`;}async getCollaborators(urn){// This allows piggybacking on a single request, so that we can support loading both the collaborators
// and invitations at the same time, without making two separate requests (the data for both of these
// is in the same response).
return await this._getSharedResponse(this._getUrl(`/api/v4/share/${encodeURIComponent(urn)}?extraFeatures=direct_acl`));}async addCollaborators(urn,request){await this._doPost(this._getUrl(`/api/v4/share/${encodeURIComponent(urn)}`),{},JSON.stringify(request),[200]);}async modifyCollaborators(urn,request){await this._doPatch(this._getUrl(`/api/v4/share/${encodeURIComponent(urn)}`),{},JSON.stringify(request),[200]);}async getCollaboratorListForUrns(urns){const request={'operation':'bulkGetShares','parameters':{urns,'queryParams':{'extraFeatures':'direct_acl,legacy_role'}}};const response=await this._doPost(this._getUrl(`/ops/v4/shares`),{'Content-Type':'application/json'},JSON.stringify(request),[200]);const result=await response.json();// response is 200, but result is not in proper format
if(!result.result||!Array.isArray(result.result)){throw new SAMError('UNEXPECTED_RESPONSE','Failed to parse response for Invitation Service bulk API.');}return result;}async confirmAccess(urn){await this._doPost(this._getUrl(`/api/v4/invitations/urn/${encodeURIComponent(urn)}`),{},undefined,[200]);}// might be able to remove this after invitation service handles https://jira.corp.adobe.com/browse/CPX-7447
_shouldRetryFetchAsyncResponse(asyncResponse,body){if(asyncResponse.status===200){const responseBody=JSON.parse(body);if(responseBody.jobStatus!=='completed'){return true;}}return false;}async declineAccess(urn){await this._doDelete(this._getUrl(`/api/v4/invitations/urn/${encodeURIComponent(urn)}`),{},[200]);}}/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2022 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/var Permission;(function(Permission){// Should match AssetPermission.h
Permission[Permission["None"]=0]="None";Permission[Permission["Ack"]=1]="Ack";Permission[Permission["Read"]=2]="Read";Permission[Permission["Write"]=4]="Write";Permission[Permission["Delete"]=8]="Delete";// TODO: get SAM.cpp to match
// synthetic permissions
Permission[Permission["Share"]=16]="Share";Permission[Permission["Rename"]=32]="Rename";// Asset can be moved out of its parent folder, but the destination folder must have Write permission
Permission[Permission["Move"]=64]="Move";// Typically, assets will have all permissions above for the logged-in user, but the
// service doesn't specify Ack because it is implied by the fact that the asset
// was included in the response.
Permission[Permission["All"]=126]="All";})(Permission||(Permission={}));function parseEffectivePermissions(permissions){// https://git.corp.adobe.com/pages/caf/api-spec/chapters/concepts/access.html#privileges
// Each permission type should look for its relevant key first, then fall back to "*" entry.
const primary=permissions[RelType.PRIMARY]||permissions['*']||[];// permissions directly on this obj
const policy=permissions[RelType.AC_POLICY]||permissions['*']||[];// contains "share" permission
const directory=permissions[RelType.DIRECTORY]||permissions['*']||[];// parent folder's permissions
let mask=Permission.None;primary.forEach(perm=>{switch(perm){case'ack':mask|=Permission.Ack;break;case'read':mask|=Permission.Read;break;case'write':// Clients need 'write' permission to edit the contents of a file, and they
// need 'write' permission on the parent folder to rename
mask|=Permission.Write;if(directory.includes('write')){mask|=Permission.Rename;}break;case'delete':// Clients need Delete permission on the asset and Write permission on the
// parent directory in order to delete an asset.
if(directory.includes('write')){mask|=Permission.Delete;mask|=Permission.Move;}break;}});// synthetic permission
if(policy.includes('write')){mask|=Permission.Share;}return mask;}/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/var VersionPatchTypes;(function(VersionPatchTypes){VersionPatchTypes["add"]="add";VersionPatchTypes["remove"]="remove";VersionPatchTypes["replace"]="replace";})(VersionPatchTypes||(VersionPatchTypes={}));const DefaultAssetsListingOptions={orderDirection:'descending',orderBy:'storage:deviceModifyDate',start:'',limit:0};const DefaultVersionsListingOptions={orderDirection:'descending',orderBy:'created',start:'',limit:0};function createVersionTemplate(options){const userOptions=Object.assign(Object.assign({},DefaultVersionsListingOptions),options);const templateValues=createPageTemplate$1(userOptions);templateValues.orderBy=getDirectionValue$5(userOptions);templateValues.resource=RelType.VERSION;return templateValues;}function createPageTemplate$1(options){const templateValues={};if(options.start){templateValues.start=options.start;}if(options.limit){templateValues.limit=options.limit;}return templateValues;}function getDirectionValue$5(userOptions){const directionFlag=userOptions.orderDirection==='ascending'?'+':'-';return directionFlag+userOptions.orderBy;}function getAssetsListingURL(links,options){const userOptions=Object.assign(Object.assign({},DefaultAssetsListingOptions),options);const templateValues=createPageTemplate$1(userOptions);templateValues.orderBy=getDirectionValue$5(userOptions);templateValues.type=userOptions.type;templateValues.embed=JSON.stringify(userOptions.embed);return getURLFromLinks(links,RelType.PAGE,templateValues);}function getAssetVersionsListingURL(links,options){const templateValues=createVersionTemplate(options);return getURLFromLinks(links,RelType.PAGE,templateValues);}class AssetInterface extends InterfaceBase{constructor(_rapi,_assetId,_resolveByIdHref,_links,_etag){super(_rapi._core);this._rapi=_rapi;this._assetId=_assetId;this._resolveByIdHref=_resolveByIdHref;this._links=_links;this._etag=_etag;}get assetID(){return this._assetId;}get links(){return this._links;}get etag(){return this._etag;}async getChildAssets(options){const href=getAssetsListingURL(this._links,options);const response=await this._doGet(href,{// Ensure browser doesn't automatically add If-None-Match, otherwise
// service may respond with cached data FROM ANOTHER USER.
// https://jira.corp.adobe.com/browse/ACPCSS-5544
// Also causes SAM-1813, SAM-2066
['Cache-Control']:'no-cache, no-store, max-age=0'});return response.json();}async getRepoMetadata(){const href=getURLFromLinks(this._links,RelType.REPO_METADATA);const response=await this._doGet(href);const repoMetadata=await response.json();// Update the links and etag from the response
try{this._links=this._getLinksFromHeaders(response.headers);// updating links in repoMetadata as well, from repoMetaData - links are updated in __links of AdobeAsset
repoMetadata._links=this._links;// Note: Do NOT use the ETag header in the repo metadata response, because that's the ETag for the repo metadata
// resource, not the asset itself. The ETag of the asset itself is inside the repo metadata response:
this._etag=repoMetadata['repo:etag'];await this._core.environment.cache.setItem(this._resolveByIdHref,{links:this._links,etag:this._etag});}catch(e){// We should always get a link header in the response, but don't fail if we don't
// (this also makes writing the tests easier, since we only need to provide these
// headers when they change)
}return repoMetadata;}async getEmbeddedMetadata(){const href=getURLFromLinks(this._links,RelType.EMBEDDED_METADATA);// Embedded metadata is returned as application/rdf+xml by default - switch to JSON-LD
try{const metadata=await this._getResponse(href,{Accept:JSON_MIME_TYPE});return metadata;}catch(e){if(e.code==='NOT_FOUND'){// If an asset doesn't have embedded metadata, just return empty metadata rather than
// treating it as a failure.
return{};}throw e;}}async getAppMetadata(){const href=getURLFromLinks(this._links,RelType.APP_METADATA);try{const metadata=await this._getResponse(href);return metadata;}catch(e){if(e.code==='NOT_FOUND'){// If an asset doesn't have app metadata, just return empty metadata rather than
// treating it as a failure.
return{};}throw e;}}async getEffectivePermissions(){const href=getURLFromLinks(this._links,RelType.AC_EFFECTIVE);const response=await this._getResponse(href);// NOTE: Missing permissions is not an error case. This collection is sparse, so the key may just not be there.
return parseEffectivePermissions(response);}async getManifest(etag){const href=getURLFromLinks(this._links,RelType.MANIFEST);const headers={};if(etag){headers['if-none-match']=etag;}const response=await this._doGet(href,headers);const manifest=await response.json();return{manifest,etag:response.headers.get('ETag')};}async getVersions(options){const href=getAssetVersionsListingURL(this._links,options);const response=await this._doGet(href);return response.json();}async restoreVersionManifest(versionManifestLink){// first fetch the version manifest
const response=await this._doGet(versionManifestLink,{});const versionManifest=await response.json();//doput to current asset manifest url
const assetManifest=getURLFromLinks(this.links,RelType.MANIFEST);await this._doPut(assetManifest,{'Content-Type':'application/vnd.adobe.dcx-manifest+json','If-Match':'*'},JSON.stringify(versionManifest),[204]);}async patchVersion(body){const href=getURLFromLinks(this.links,RelType.VERSION);const response=await this._doPatch(href,{'Content-Type':JSON_PATCH_MIME_TYPE},JSON.stringify(body),[204]);return response;}async createFolder(relativePath){const href=getURLFromLinks(this._links,RelType.CREATE,{path:relativePath,intermediates:'true',respondWith:'http://ns.adobe.com/adobecloud/rel/metadata/repository'});let response=await this._doPost(href,{'Content-Type':'application/vnd.adobecloud.directory+json'},undefined,[200,201]);// when 200 that means asset created, but error while fetching metadata
return response.status===201?await response.json():undefined;}async importFile(file,relativePath,mediaType){const href=getURLFromLinks(this._links,RelType.CREATE,{path:relativePath,respondWith:'http://ns.adobe.com/adobecloud/rel/metadata/repository'});let response=await this._doPost(href,{'Content-Type':mediaType!==null&&mediaType!==void 0?mediaType:file.type},file,[200,201]);// when 200 that means asset created, but error while fetching metadata
return response.status===201?await response.json():undefined;}async getContent(){const href=getURLFromLinks(this._links,RelType.PRIMARY);let response=await this._doGet(href,{});return{content:await response.blob(),etag:this._getETagFromHeaders(response.headers)};}async commitFileChanges(file,localETag){const href=getURLFromLinks(this._links,RelType.PRIMARY);const headers={'Content-type':file.type};localETag&&(headers['If-Match']=localETag);let response=await this._doPut(href,headers,file,[200,201,204]);return{MetaData:response.status===201?await response.json():undefined,eTag:this._getETagFromHeaders(response.headers)};}async restore(name){const href=getURLFromLinks(this._links,RelType.RESTORE,name?{name}:{});await this._doPost(href,{},undefined,[204]);}async discard(){const href=getURLFromLinks(this._links,RelType.DISCARD);await this._doPost(href,{},undefined,[204]);}async delete(asset,ops){const href=await this._rapi.getRootLink(RelType.OPS);await this._doPost(href,{'Content-Type':'application/vnd.adobe.asset-operation+json'},JSON.stringify(ops),[204]);}async runOperation(ops){return this._rapi.runOperation(ops);}}/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/class RepositoryInterface extends InterfaceBase{_getAndCacheDocument(href){return this._getAllPages(href);}async _getAndCacheResponse(href){return await this._getResponse(href);}/**
     * Gets the basic endpoint information for the ACP environment
     */getRootDocument(){return this._getAndCacheDocument(`https://${this._core.environment.endpoints.ACP_CS_HOST}`);}async getRootLink(relType,params={}){const rootDocument=await this.getRootDocument();return getURLFromLinks(rootDocument._links,relType,params);}async getIndex(){const rootDocument=await this.getRootDocument();const{children}=rootDocument;const indexData=children.find(child=>child['repo:name']==='Index.json');const indexUrl=getURLFromLinks(indexData._links,RelType.PRIMARY);return await this._getAndCacheResponse(indexUrl);}async _getAndCacheLinksFromHref(href){const response=await this._doHead(href);const links=this._getLinksFromHeaders(response.headers);const etag=this._getETagFromHeaders(response.headers);return{links,etag};}/**
     * Takes an asset id and returns the links for the resource.
     *
     * @param id           assetId of the object
     */async resolveById(assetId){const resolveHref=await this.getRootLink(RelType.RESOLVE_ID,{id:assetId});const{links,etag}=await this._getAndCacheLinksFromHref(resolveHref);return new AssetInterface(this,assetId,resolveHref,links,etag||'');}/**
     * Takes a repositoryId and path and returns the links for the resource.
     *
     * @param repositoryId     GUID of the repository
     * @param path             path within the repository
     */async resolveByPath(repositoryId,path){const resolveHref=await this.getRootLink(RelType.RESOLVE_PATH,{repositoryId,path,mode:'id'});const response=await this._doHead(resolveHref);const assetId=response.headers.get('X-Resource-Id');const links=this._getLinksFromHeaders(response.headers);const etag=this._getETagFromHeaders(response.headers);if(!assetId){throw new SAMError('INVALID_DATA',`Missing 'X-Resource-Id' header while resolving Asset path' ${repositoryId}:${path}'.`);}// We want to cache the links, but we do so under the resolveById href - that's because the path can
// change over time, but asset ids are immutable.
const resolveByIdHref=await this.getRootLink(RelType.RESOLVE_ID,{id:assetId});await this._core.environment.cache.setItem(resolveByIdHref,{links,etag},this._core.environment.getValue('CACHE_DEFAULT_TTL'));return new AssetInterface(this,assetId,resolveByIdHref,links,etag||'');}async getHomeDirectoryMetadata(){const index=await this.getIndex();// Likely cause: Enterprise user has not been granted quota by their administrator, but this error
// could change. Host apps should verify that the user has quota before trying to get their home
// directory info, and if they have none, show a message suggesting they contact their administrator.
if(!index.children.length){throw new SAMError('INVALID_OPERATION','Home repository not found');}return index.children[0]._embedded[RelType.REPO_METADATA];}/**
     * Run a cloud operation.
     * https://git.corp.adobe.com/pages/caf/api-spec/schemas/repository/operation.html
     *
     * @param operation JSON file
     */async runOperation(ops){var _a;const opHref=await this.getRootLink(RelType.OPS);// If we send a single operation, then errors will fail the entire request.
// If we send multiple operations, we always get a 200 and then separate error
// codes inside the response. We want to normalize this behavior here, in order
// to make it easier to handle the response.
// Note that some errors are still going to return a proper array even
// for single items, so we need to be prepared for both types of replies.
// We are using 'any' below to disable the status code validation and allow
// this method to handle the error codes.
const response=await this._doPost(opHref,{'Content-Type':'application/vnd.adobe.asset-operation+json'},JSON.stringify(ops),'any');let result;try{result=await response.json();}catch(_b){// Ignore the error here.
}if(result&&!Array.isArray(result)&&response.status!==200){// If this was a single operation request, then sometimes the service will fail the entire request
// instead of returning the array for the item. Try to normalize the reply to avoid bugs in the callers.
// https://jira.corp.adobe.com/browse/ACPCSS-3613
const op=Array.isArray(ops)?ops[0]:ops;return[Object.assign(Object.assign({},op),{error:new SAMRepositoryError(// We cannot use the result.code as that uses non-standard HTTP error codes like 4041 instead of 404.
response.status,'http://ns.adobe.com/adobecloud/problem/operation_failed',(_a=result.message)!==null&&_a!==void 0?_a:'Operation failed')})];}// If we don't actually get a response or if we get an array,
// then we should expect to get a 200 response code.
this._checkResponseStatus(response,opHref,[200]);if(!result){// We've got a 200 status, but there's no actual result or the JSON parsing failed.
throw new SAMError('UNEXPECTED_RESPONSE','Failed to parse response for repo bulk API.');}// Convert the result to ensure it is always an array.
// If we have a single item, we know it cannot be an error as that was handled above already.
const list=Array.isArray(result)?result:[result];// Map errors to SAMErrors before returning.
return list.map(item=>{const{error}=item;return Object.assign(Object.assign({},item),{error:error?new SAMRepositoryError(error.status,error.type,error.title):undefined});});}/**
     * Runs the runOperation API for any specific context
     * Initiate session of that context
     * Check every model operation's result and update model meta data
     * commit session
     * returns ILocalOperationResult array collected over all results collectively
     *
     * @param ops Opeartions to run
     * @param modelsById A map of model to it's id
     * @param itemPool ItemPool of the specific context used to create session
     * @param updateLocalModel for updating Model metaData
     * @param errorHandlers If needed to validate or check any specific error code, and respond differently
     */async runOperationsForContext(ops,modelsById,itemPool,updateLocalModel,errorHandlers){var _a;const result=await this.runOperation(ops);const resultOps={failedResults:[],newModels:[]};const session=itemPool.createMutationSession();const promises=[];for(const op of result){const currentModel=op.id&&modelsById.get(op.id);if(!currentModel){continue;}const{asset:updatedModelMetaData,error}=op;if(error){if(errorHandlers){const onError=(_a=errorHandlers.find(errorHandler=>errorHandler.match(error)))===null||_a===void 0?void 0:_a.action;if(onError){promises.push(onError(currentModel,error).then(failedOp=>{if(failedOp){resultOps.failedResults.push(failedOp);}}));continue;}}resultOps.failedResults.push({model:currentModel,error});continue;}try{const newModel=updateLocalModel(session,currentModel,updatedModelMetaData);if(newModel){resultOps.newModels.push(newModel);}}catch(error){const samError=error;if(samError&&samError.code==='UNEXPECTED_RESPONSE'){resultOps.failedResults.push({model:currentModel,error:samError});}else{throw error;}}}session.commit();// Wait for any Promises from errorHandlers callback
await Promise.all(promises);return resultOps;}}__decorate([cache,__param(0,key)],RepositoryInterface.prototype,"_getAndCacheDocument",null);__decorate([cache,__param(0,key)],RepositoryInterface.prototype,"_getAndCacheResponse",null);__decorate([cache,__param(0,key)],RepositoryInterface.prototype,"_getAndCacheLinksFromHref",null);/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/class ItemExclusiveTaskChain{constructor(task,onGotOwnership){this.task=task;this.onGotOwnership=onGotOwnership;}// Add the task at the end of the linked list.
registerNewTask(newTask){let itemTask=this;while(itemTask){const next=itemTask.next;if(!next){// We've found the first empty slot.
itemTask.next=newTask;return;}// Keep going till the end.
itemTask=next;}}}/**
 * Base object used for all assets, teams, spaces etc.
 */class ItemBase extends TypedEventEmitter{constructor(_core,id){super();this._core=_core;this.id=id;}get lastKnownClientMutation(){return this._lastKnownClientMutation;}updateLastKnownClientMutation(){this._lastKnownClientMutation=Date.now();}/**
     * Waits for at least `delay` ms since the last known asset mutation.
     * @param delay
     */async waitForMutationPropagationIfNeeded(delay){const mutation=this._lastKnownClientMutation;if(mutation){const waitTime=mutation+delay-Date.now();if(waitTime>0){// We still have some time left before the asset change is propagated for sure.
await new Promise(resolve=>setTimeout(resolve,waitTime));}}}get exclusiveTask(){var _a;return(_a=this._exclusiveTaskChain)===null||_a===void 0?void 0:_a.task;}_setExclusiveTaskChain(itemTaskChain){this._exclusiveTaskChain=itemTaskChain;this.dispatch(SharedChangeEvent);}/**
     * Locks exclusive ownership for a subset of items during execution of the `schedule`.
     * It is guaranteed that the `schedule` method will receive ownership of the items
     * before it starts execution and all the way up to the point when the returned promise
     * gets resolved.
     *
     * Multiple tasks can run at the same time as long as they do not share any of their items.
     * For example, task A working with assets (i1, i2) will be scheduled to run in parallel with
     * task B with assets (i3, i4).
     *
     * If multiple tasks are registered on same items, the tasks will be executed in their
     * order of scheduling. For example, task C working with assets (i1, i2) will not be allowed
     * to run at the same time with task D that needs assets (i2, i3). Task D will only schedule
     * once all the previously scheduled tasks have released ownership of i2 and i3.
     *
     * Recursivity is not supported, a task should not lock same items again while it holds ownership.
     *
     * A single item can only be part of a single exclusive task at any moment of time.
     *
     * @param name Name of the task to schedule. Useful for debugging.
     * @param items The items to lock during the execution of the task.
     * @param schedule The function to execute once the task has ownership of the items.
     * @returns A promise resolved once the task is complete. The value of the returned promise
     * is propagated from the promise returned by the `schedule` function.
     */static runExclusiveTask(name,items,schedule){return new Promise(resolve=>{const task={name,items};const runTask=()=>resolve(schedule(task).finally(()=>{// Make sure all the items pick up their next task
// before we give up ownership.
for(const item of items){// We know the item must have a task. We just finished it.
const next=item._exclusiveTaskChain.next;// Assign ownership to the next waiting task.
// If tasks are still pending, then there should
// never be a gap of of ownership on the item,
// to avoid letting other tasks inject themselves
//in the middle. The tasks needs to execute in the order
// of scheduling to avoid interlacing issues.
item._setExclusiveTaskChain(next);// Let the next task know it received the ownership now.
// Once the next task acquires all the locks, then it will
// continue with its own execution.
// Note that the callback uses use a timer once the execution
// actually starts to avoid crashing this promise chain.
next===null||next===void 0?void 0:next.onGotOwnership();}}));// We don't want to schedule the task until all the items are ready to execute the task.
let waitCount=0;const onGotOwnership=()=>{// Wait for all other task to finish first.
if(--waitCount===0){// Using a separate stack to avoid crashing the previous task
// that might have invoked the `onGotOwnership` method.
setTimeout(runTask,0);}};for(const item of items){// Each item gets its own task object. We cannot share the objects as
// we require strict task ordering for each individual item.
const newTask=new ItemExclusiveTaskChain(task,onGotOwnership);let itemTask=item._exclusiveTaskChain;if(!itemTask){// Assign the new task right away. The task will maintain
// owneship until it gets scheduled.
item._setExclusiveTaskChain(newTask);continue;}// Increment the number of items that we are still waiting ownership for.
++waitCount;// Register the task to be executed immediately after the last task in this item's task chain.
itemTask.registerNewTask(newTask);}if(waitCount===0){// We've got owernship of all the required assets already,
// we can proceed with running the task.
runTask();}});}}__decorate([observable],ItemBase.prototype,"exclusiveTask",null);/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2022 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/const shownWarnings=new Set();/**
 * A utility logging function that warns a client once per page load using
 * the params provided by the caller.
 * @param topic
 * @param message
 */function oneTimeWarning(topic,message){if(shownWarnings.has(topic)){return;}console.warn('One time warning (%s): %s',topic,message);shownWarnings.add(topic);}function missingImplementationWarning(topic){oneTimeWarning(topic,'Not implemented yet, but this method is safe to call.');}/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/function compareStrings(a,b){return a.localeCompare(b);}function compareValues(a,b){if(a===b){return 0;}return a<b?-1:1;}function reverseComparator(comparator){return(a,b)=>-comparator(a,b);}class ItemOrder{constructor(direction,field,comparator){this.direction=direction;this.field=field;this.comparator=comparator;}get hash(){return this.direction+':'+this.field;}sortItems(items){items.sort(this.comparator);}}function createItemOrderFactory(comparatorMap){return class extends ItemOrder{constructor(direction,field){let comparator=comparatorMap[field];if(direction==='descending'){comparator=reverseComparator(comparator);}super(direction,field,comparator);}};}/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2022 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/const OrderFieldToISWYAdobeAssetOrderBy={'name':'asset_name','created':'create_date','modified':'modify_date','shared':'shared_date'};const OrderFieldToComparator$9={name(a,b){return compareStrings(a.name,b.name);},shared(a,b){return compareValues(a.created,b.created);},created(a,b){return compareValues(a.created,b.created);},modified(a,b){return compareValues(a.modified,b.modified);}};class SWYAdobeAssetOrder extends createItemOrderFactory(OrderFieldToComparator$9){}SWYAdobeAssetOrder.default=new SWYAdobeAssetOrder('descending','shared');/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/class ShareableItem extends ItemBase{get collaborators(){return this._core.collaborationContext.getCollaborators(this.id);}removeCollaborator(collaborator){return this._core.collaborationContext.removeCollaborator(this.id,collaborator);}get invitedCollaborators(){return this._core.collaborationContext.getInvitedCollaborators(this.id);}removeInvitedCollaborator(invitedCollaborator){return this._core.collaborationContext.removeInvitedCollaborator(this.id,invitedCollaborator);}}__decorate([memoize],ShareableItem.prototype,"collaborators",null);__decorate([memoize],ShareableItem.prototype,"invitedCollaborators",null);/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/class Resource extends EventEmitter{constructor(_core,_asset){super();this._core=_core;this._asset=_asset;this._isLoaded=false;}async load(){await this._loadData();this._isLoaded=true;this.emit('change');}unload(){this._data=undefined;this._isLoaded=false;this.emit('change');}// @package -- only for use inside SAM.js
_setData(data){this._data=data;this.emit('change');}get isLoaded(){return this._isLoaded;}get data(){return this._data;}}__decorate([observable],Resource.prototype,"isLoaded",null);__decorate([observable],Resource.prototype,"data",null);/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/class EmbeddedMetadataResource extends Resource{async _loadData(){const assetInterface=await this._asset._getAssetInterface();this._data=await assetInterface.getEmbeddedMetadata();}}/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/class AppMetadataResource extends Resource{async _loadData(){const assetInterface=await this._asset._getAssetInterface();this._data=await assetInterface.getAppMetadata();}}/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/class ManifestResource extends Resource{constructor(){super(...arguments);this._etag='';}get etag(){return this._etag;}async _loadData(){try{const assetInterface=await this._asset._getAssetInterface();const{manifest,etag}=await assetInterface.getManifest(this._etag);this._data=manifest;this._etag=etag||'';}catch(e){// If we got a 304 response, it means nothing changed, so just leave the data as-is.
if(e.code!=='NOT_MODIFIED'){throw e;}}}}__decorate([observable],ManifestResource.prototype,"etag",null);/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/const MAX_LENGTH=255;const RESERVED_NAME_REGEX=/^CON|PRN|AUX|NUL|COM[1-9]|LPT[1-9]$/i;const RESERVED_CHAR_REGEX=/[\\/:*?"|><]/;function validatePlatformRepoName(name){return name.length>0&&name.length<=MAX_LENGTH&&!RESERVED_NAME_REGEX.test(name)&&!RESERVED_CHAR_REGEX.test(name);}const PATH_REGEX=/^(.*\/)?(.*?)(?:[\u00A0][^.]*)?(\.[^.]*)?$/;/**
 * Called by SAM to get new name according to the specified format and counter
 * @param fullPath path of the asset, it can be full path/relative path/filename
 * @param format format should contain %@ and %d
 *      %@ to be replace with filename
 *      %d to be replace with supplied counter. counter value will change in following cases:
 *          - filename matches the format and counter supplied. counter will increment by 1
 *          - filename matches the formatWithoutCount and counter = 0. counter will be made 1
 *            e.g name = test copy, format = %@ copy %d, counter = 0 -> newName = test copy 1, countUsed = 1
 * @param counter count to be used in newName
 * @returns the IFormatFileNameResult object which contains new name and count used in new name
 */function formatFileName(fullPath,format,counter){// create regex from client passed format
function getRegexFormat(format,extPresent){// replace '(', ')' with backspace '\(', '\)'
let regexFormat=format.replace(/[()]/g,'\\$&');// insert match patern for %d and %@
regexFormat=regexFormat.replace('%d','([0-9]+)');regexFormat=regexFormat.replace('%@','(.*)?');// if extPresent is true, we expect to find extension, otherwise it is optional
regexFormat=regexFormat+(extPresent?'(\\.[^.]*)$':'(\\.[^.]*)?$');return regexFormat;}const extPresent=fullPath.lastIndexOf('.')>fullPath.lastIndexOf('/');let regexFormat=getRegexFormat(format,extPresent);// remove count from string
const formatWithoutCount=format.replace(/ [^ ]*$/,'');let regexFormatWithoutCount=getRegexFormat(formatWithoutCount,extPresent);// get parsed result
let result=fullPath.match(regexFormat);let resultMatchedRegexWithoutCount=false;if(result===null){result=fullPath.match(regexFormatWithoutCount);resultMatchedRegexWithoutCount=result!==null;}let newPath='';let fileExtension='';if(result){let path='';let extension='';let currentCount='';if(resultMatchedRegexWithoutCount){[,path,extension]=result;}else{[,path,currentCount,extension]=result;}newPath=path;fileExtension=extension;if(resultMatchedRegexWithoutCount&&counter===0){// since the name does not contain the count
// but matches the regex without count, so
// if counter=0, next name in iteration is with counter=1
counter=1;}else if(!resultMatchedRegexWithoutCount&&parseInt(currentCount)===counter){// since the name matches the format with count
// we should skip the counter that matches the current name
counter+=1;}}else{const[,directory,filename,extension]=fullPath.match(PATH_REGEX);// All strings match the regexp above
newPath=`${directory||''}${filename||''}`;fileExtension=extension;}let newName='';if(counter!==0){newName=format.replace('%@',`${newPath||''}`);newName=newName.replace('%d',counter.toString());}else{newName=formatWithoutCount.replace('%@',`${newPath||''}`);}return{newName:`${newName||''}${fileExtension||''}`,countUsed:counter};}/**
 * Called to get newName as per format in case of batch ops. It considers name of other files as well in the operation for finding conflicts
 * @param core SAMCore
 * @param assetId Asset Id
 * @param newName FileName
 * @param sameFolder true if copying in same folder
 * @param assetConflictMap It saves the newName and count used for all files in batch
 */function batchFormatFileName(core,assetId,newName,sameFolder,assetConflictMap){var _a;let localCounter=((_a=assetConflictMap.get(assetId))===null||_a===void 0?void 0:_a.countUsed)||0;let conflictWithOtherFilesInBatch=false;let conflictedAssetIds=[];// check if we are copying in the same folder
// if yes, then it should follow ASSET_COPY_NAME_FORMAT i.e. %@ copy (%d)
// if no and conflict, then it should follow ASSET_CONFLICT_NAME_FORMAT i.e. %@ (%d)
do{const formatFileResult=sameFolder?formatFileName(newName,core.environment.getValue('ASSET_COPY_NAME_FORMAT'),localCounter):localCounter>0?formatFileName(newName,core.environment.getValue('ASSET_CONFLICT_NAME_FORMAT'),localCounter):{newName,countUsed:localCounter};newName=formatFileResult.newName;localCounter=formatFileResult.countUsed;conflictWithOtherFilesInBatch=false;for(const[key,value]of assetConflictMap){if(value.newName===newName){conflictWithOtherFilesInBatch=true;conflictedAssetIds.push(key);break;}}if(conflictWithOtherFilesInBatch){localCounter++;}else{assetConflictMap.set(assetId,formatFileResult);}}while(conflictWithOtherFilesInBatch);for(const id of conflictedAssetIds){// we should update count of all files which this file conflicted with
// so that they also start with the new count next time
const currentValue=assetConflictMap.get(id);assetConflictMap.set(id,{newName:currentValue.newName,countUsed:localCounter});}return newName;}const ARCHIVE_GUID_REGEX=/^(.*\..*)\^.*$/;// Archived assets get a guid suffix appended, so need to remove it when restoring
function removeArchiveGuidFromName(name){const match=name.match(ARCHIVE_GUID_REGEX);return match?match[1]:name;}// Clients that haven't yet migrated to R-API still use the old archive locations when deleting assets (as a 2-step delete).
// These locations are treated as discarded by SAM.js, but to implement recover() we need to know where to move the assets back to.
// This is a mapping from the archive location to the restore location.
const ARCHIVE_TO_RESTORE_LOCATION={'cloud-content-archive':'cloud-content','assets-archive':'assets','archive':'files'};function getRestorePath(path,newName){const newPath=path.split('/');// Paths always start with "/" so newPath[0] is ''
// ESM paths are of the form /users/<userid>/...
const archiveIndex=newPath[1]==='users'?3:1;const restoreFolder=ARCHIVE_TO_RESTORE_LOCATION[newPath[archiveIndex]];if(!restoreFolder){// Not archived, so no restore location
return undefined;}newPath[archiveIndex]=restoreFolder;newPath[newPath.length-1]=newName||removeArchiveGuidFromName(newPath[newPath.length-1]);return newPath.join('/');}/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/const AssetClassChoices=['file','composite','directory','entity'];const AssetStateChoices=['ACTIVE','DISCARDED','DISCARDED_PARENT'];const ShellVisibilityChoices=['hiddenSelf','hiddenRecursive',''];/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/class LocalItemUpdater{constructor(options){this._propertyUpdater=options.propertyUpdater;this._changeEvent=options.changeEvent||SharedChangeEvent;}/**
     * Update the local item with values from the remote item.
     * @param localItem
     * @param remoteItem
     */updateLocalItem(updateSession,localItem,remoteItem){if(!updateSession.checkIfItemAllowsMutations(localItem)){// The item had local changes that we don't want to overwrite because
// the server might not yet be consistent with the change.
return;}// If the item is not already added, add it to the list.
updateSession.ensureItemIsAdded(localItem);if(this._propertyUpdater.update(localItem,remoteItem)){updateSession.queueChangedItem(localItem,this._changeEvent);}}}class ItemUpdaterBase extends LocalItemUpdater{constructor(options){super(options);this._localItemType=options.localItemType;this._getRemoteId=options.getRemoteId;}updateRemoteItem(updateSession,remoteItem){const id=this._getRemoteId(remoteItem);if(!id){throw new SAMError('INVALID_DATA','Missing id on the remote item structure.');}let localItem=updateSession.getItemById(id);if(!localItem){const LocalItemType=this._localItemType;localItem=new LocalItemType(updateSession._core,id);}// Inject remote data.
this.updateLocalItem(updateSession,localItem,remoteItem);return localItem;}updateRemoteItems(updateSession,remoteItems){if(!Array.isArray(remoteItems)){// Invalid remote data provided.
throw new SAMError('INVALID_DATA','Invalid data received, expected list of items.');}return remoteItems.map(remoteItem=>this.updateRemoteItem(updateSession,remoteItem));}}class ItemUpdater extends ItemUpdaterBase{constructor(options){super(Object.assign({getRemoteId(remoteItem){// The generic types in TS are not lazy evaluated, so TS will try to resolve this based entirely
// on the constraints added to the generic type. Maybe one day TS will be able to evaluate
// based on the actual interface that is passed as the `RemoteType` and we could fix this model.
// As a result, we have use `any` because TS doesn't know the type of the generic RemoteType.
return remoteItem[options.remoteIdProperty];}},options));}}/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/function isStrictEqual(a,b){return a===b;}function deepClone(value){return JSON.parse(JSON.stringify(value));}function isDeepEqual(a,b,isItemEqual=isDeepEqual){if(a===b){return true;}if(typeof a!==typeof b||a.constructor!==b.constructor){return false;}if(a instanceof Date){return a.toISOString()===b.toISOString();}if(Array.isArray(a)){const count=a.length;if(count!==b.length){return false;}for(let i=0;i<count;++i){if(!isItemEqual(a[i],b[i])){return false;}}return true;}if(a instanceof Set){if(a.size!==b.size){return false;}for(const key of a.keys()){if(!b.has(key)){return false;}}return true;}if(a instanceof Map){if(a.size!==b.size){return false;}for(const key of a.keys()){if(!b.has(key)){return false;}if(!isItemEqual(a.get(key),b.get(key))){return false;}}return true;}if(typeof a==='object'){const keysA=Object.keys(a);const keysB=Object.keys(b);const count=keysA.length;if(count!==keysB.length){return false;}keysA.sort();keysB.sort();for(let i=0;i<count;++i){const key=keysA[i];if(key!==keysB[i]){return false;}if(!isItemEqual(a[key],b[key])){return false;}}return true;}// We don't support other types.
return false;}/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/const NotFound$1=Symbol('NotFound');const formats={string:{parse:String,isEqual:isStrictEqual},number:{parse:Number,isEqual:isStrictEqual},date:{parse:value=>new Date(String(value)),isEqual:(a,b)=>(a===null||a===void 0?void 0:a.toISOString())===(b===null||b===void 0?void 0:b.toISOString())},// Some APIs like the invitation service return dates as a number (Unix epoch time) rather than a string
// These still map onto the JS Date object, but need to be parsed differently.
date_as_number:{parse:value=>new Date(Number(value)),isEqual:(a,b)=>(a===null||a===void 0?void 0:a.toISOString())===(b===null||b===void 0?void 0:b.toISOString())},// Support actual booleans, the string 'true', or non-zero numbers.
boolean:{parse:value=>value===true||typeof value==='string'&&value.toLowerCase()==='true'||typeof value==='number'&&Boolean(value),isEqual:isStrictEqual},object:{// Make a deep copy of the object.
parse:deepClone,isEqual:isDeepEqual}};function makeGetFn(name){const splitKey=name.split('.');return source=>{let value=source;for(const key of splitKey){if(!Object.prototype.hasOwnProperty.call(value,key)){return NotFound$1;}value=value[key];}return value;};}function normalizeFormat(name,format,mapByKey){if(!format){// When we use mapByKey, the format is always an object as needs to have the actual mapByKey property.
return mapByKey?formats.object:formats.string;}if(typeof format==='string'){if(!Object.prototype.hasOwnProperty.call(formats,format)){throw new SAMError('INVALID_PARAMETER',`Unexpected type format ${format} for ${name} property updater.`);}return formats[format];}return format;}function normalizeType(key,type){if(typeof type==='string'){return{name:key,format:formats.string,get:makeGetFn(type),isArray:false};}const{name,format,choices,get,isArray,mapByKey}=type;const sourceName=name!==null&&name!==void 0?name:key;return{name:sourceName,format:normalizeFormat(sourceName,format,mapByKey),choices,mapByKey,isArray:isArray!==null&&isArray!==void 0?isArray:false,get:get!==null&&get!==void 0?get:makeGetFn(name!==null&&name!==void 0?name:key)};}function validateValue(dest,name,choices,value){if(choices&&!choices.includes(value)){dest._core.environment.error(`Invalid value ${value} passed for the ${name} property. Expected one of ${choices.join(', ')}.`);return false;}return true;}function createPropertyUpdater(key,userType){const type=normalizeType(key,userType);const{name,format,choices,get,isArray,mapByKey}=type;return(dest,source)=>{const anyDest=dest;let value=get(source,dest);if(value===NotFound$1){return false;}if(mapByKey){/**
             * The input value is just an array like the following example:
             *
             * [
             *     {
             *         name: 'working_files',
             *         id: 'urn:1'
             *     },
             *     {
             *         name: 'canvases',
             *         id: 'urn:2'
             *     }
             * ]
             *
             * The result will be a Map object like the following:
             *
             *  'working_files' => {
             *      name: 'working_files',
             *      id: 'urn:1'
             *  },
             *  'canvases' => {
             *      name: 'canvases',
             *      id: 'urn:1'
             *  },
             *
             * - In this case the 'name' property becomes the key of the map. The caller can change the key using the `mapByKey` variable.
             * - The actual value of the map entries is just the object itself.
             * - This value can be customized using the `format.prase` function provided by the caller.
             * - The parsed value can be validated against a predefined list of `choices` provided by the caller.
             */if(!Array.isArray(value)){dest._core.environment.error(`Invalid value ${value} passed for the ${name} property. Expected an array.`);return false;}const map=new Map();for(const item of value){if(!Object.prototype.hasOwnProperty.call(item,mapByKey)){dest._core.environment.error(`Invalid item passed for the ${name} array property. Missing ${mapByKey} property on the item of the array.`);continue;}const key=item[mapByKey];const parsedItem=format.parse(item);if(!validateValue(dest,name,choices,parsedItem)){continue;}map.set(key,parsedItem);}if(isDeepEqual(anyDest[key],map,format.isEqual)){return false;}value=map;}else if(isArray){if(!Array.isArray(value)){dest._core.environment.error(`Invalid value ${value} passed for the ${name} property. Expected an array.`);return false;}// Arrays must make a copy of their initial content to avoid mutations
// of the original array after the value is stored inside the object.
const array=[];for(const item of value){const parsedItem=format.parse(item);if(validateValue(dest,name,choices,parsedItem)){array.push(parsedItem);}}if(isDeepEqual(anyDest[key],value,format.isEqual)){return false;}value=array;}else{value=format.parse(value);if(!validateValue(dest,name,choices,value)){return false;}if(format.isEqual(anyDest[key],value)){return false;}}anyDest[key]=value;return true;};}class PropertyUpdater{constructor(map){this._updaters=Object.keys(map).map(key=>createPropertyUpdater(key,map[key]));}update(dest,source){let didChange=false;for(const updater of this._updaters){if(updater(dest,source)){didChange=true;}}return didChange;}}/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2022 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/class AdobeAssetFilterBase{constructor(options){var _a,_b;// Both mediaTypes and excludeMediaTypes should not be specified while creating AdobeAssetFilter
// because it doesn't make sense, sam will set default value for mediaTypes if both values are set
this._mediaTypes=undefined;this._excludeMediaTypes=undefined;// @package -- should only be used by Space.searchArtifacts()
this._includeHiddenRecursive=false;if(options===null||options===void 0?void 0:options.mediaTypes){this._mediaTypes=new Set(options.mediaTypes);}if(options===null||options===void 0?void 0:options.excludeMediaTypes){this._excludeMediaTypes=new Set(options.excludeMediaTypes);}if(((_a=options===null||options===void 0?void 0:options.mediaTypes)===null||_a===void 0?void 0:_a.length)&&((_b=options===null||options===void 0?void 0:options.excludeMediaTypes)===null||_b===void 0?void 0:_b.length)){this._mediaTypes=new Set([]);console.warn('Both mediaTypes and excludeMediaTypes should not be specified while creating AdobeAssetFilter, setting default value for mediaTypes');}this._includeHiddenRecursive=!!(options===null||options===void 0?void 0:options._includeHiddenRecursive);}/**
     * SAM.cpp currently supports hosts defining a default mediaTypes filter that
     * all lists will use (likely will be deprecated). Clients can override the filter
     * by calling `Source.getListWithMediaTypes(order, filter, mediaTypes)`, where an
     * empty mediaTypes array means "show all mediaTypes". Therefore, SAM.js needs to
     * differentiate between when the client hasn't specified a filter (undefined) and
     * when it wants to show all mediaTypes.
     */get mediaTypes(){return this._mediaTypes;}get excludeMediaTypes(){return this._excludeMediaTypes;}get includeHiddenRecursive(){return this._includeHiddenRecursive;}matches(item){var _a,_b;// For all sources of AdobeAsset, the shellVisibility field dictates whether it can be seen in UI,
// except for when items in hidden folders (hiddenRecursive) must be included.
if(item.shellVisibility==='hiddenSelf'||item.shellVisibility==='hiddenRecursive'&&!this._includeHiddenRecursive){return false;}return(!((_a=this._excludeMediaTypes)===null||_a===void 0?void 0:_a.size)||!this._excludeMediaTypes.has(item.mediaType))&&(!((_b=this._mediaTypes)===null||_b===void 0?void 0:_b.size)||this._mediaTypes.has(item.mediaType));}get hash(){var _a,_b;let mediaTypeHashPart='mediatypes='+(((_a=this._mediaTypes)===null||_a===void 0?void 0:_a.size)?`${[...this._mediaTypes].sort().join(',')}`:'all-types');mediaTypeHashPart+=':excludemediatypes='+(((_b=this._excludeMediaTypes)===null||_b===void 0?void 0:_b.size)?`${[...this._excludeMediaTypes].sort().join(',')}`:'none');return mediaTypeHashPart;}/*
    Cases to be handled for include and exclude filter:
    ---------------------------------------------------------------------------------
    this_include | this_exclude | other_include | other_exclude | case no,
                                                                    possible values
                                                                    s=subset,
                                                                    u=unknown,
                                                                    d=disjoint
    ---------------------------------------------------------------------------------
        0               0               0               0           case 1 - s
    ---------------------------------------------------------------------------------
        0               0               0               1           case 2 - u
    ---------------------------------------------------------------------------------
        0               0               1               0           case 3 - u
    ---------------------------------------------------------------------------------
        0               0               1               1           na
    ---------------------------------------------------------------------------------
        0               1               0               0           case 4 - s
    ---------------------------------------------------------------------------------
        0               1               0               1           case 5 - s & u
    ---------------------------------------------------------------------------------
        0               1               1               0           case 6 - u & d
    ---------------------------------------------------------------------------------
        0               1               1               1           na
    ---------------------------------------------------------------------------------
        1               0               0               0           case 7 - s
    ---------------------------------------------------------------------------------
        1               0               0               1           case 8 - s, u & d
    ---------------------------------------------------------------------------------
        1               0               1               0           case 9 - s, u & d
    ---------------------------------------------------------------------------------
        1               0               1               1           na
    ---------------------------------------------------------------------------------
        1               1               0               0           na
    ---------------------------------------------------------------------------------
        1               1               0               1           na
    ---------------------------------------------------------------------------------
        1               1               1               0           na
    ---------------------------------------------------------------------------------
        1               1               1               1           na
    ---------------------------------------------------------------------------------

    There are some cases which are not applicable(na) because for now it is not allowed to specify both include
    and exclude mediatypes on a filter
    */getRelationToFilter(other){var _a,_b,_c,_d,_e,_f,_g,_h,_j,_k,_l,_m;if(!(other instanceof AdobeAssetFilterBase)){return'disjoint';}const otherAdobeAssetFilter=other;let mediaTypeRelation;(function(mediaTypeRelation){mediaTypeRelation[mediaTypeRelation["uninitialized"]=0]="uninitialized";mediaTypeRelation[mediaTypeRelation["subset"]=1]="subset";mediaTypeRelation[mediaTypeRelation["disjoint"]=2]="disjoint";mediaTypeRelation[mediaTypeRelation["intersaction"]=3]="intersaction";})(mediaTypeRelation||(mediaTypeRelation={}));function getMediaTypeRelation(current,other){let subset=true;let intersaction=false;for(const item of current){if(other.has(item)){intersaction=true;}else{subset=false;}}if(!intersaction){return mediaTypeRelation.disjoint;}else if(subset){return mediaTypeRelation.subset;}return mediaTypeRelation.intersaction;}let thisIncludeOtherInclude=mediaTypeRelation.uninitialized;let thisIncludeOtherExclude=mediaTypeRelation.uninitialized;let otherIncludeThisExclude=mediaTypeRelation.uninitialized;let otherExcludethisExclude=mediaTypeRelation.uninitialized;if(((_a=this._mediaTypes)===null||_a===void 0?void 0:_a.size)&&((_b=otherAdobeAssetFilter._mediaTypes)===null||_b===void 0?void 0:_b.size)){thisIncludeOtherInclude=getMediaTypeRelation(this._mediaTypes,otherAdobeAssetFilter._mediaTypes);}if(((_c=this._mediaTypes)===null||_c===void 0?void 0:_c.size)&&((_d=otherAdobeAssetFilter._excludeMediaTypes)===null||_d===void 0?void 0:_d.size)){thisIncludeOtherExclude=getMediaTypeRelation(this._mediaTypes,otherAdobeAssetFilter._excludeMediaTypes);}if(((_e=this._excludeMediaTypes)===null||_e===void 0?void 0:_e.size)&&((_f=otherAdobeAssetFilter._mediaTypes)===null||_f===void 0?void 0:_f.size)){otherIncludeThisExclude=getMediaTypeRelation(otherAdobeAssetFilter._mediaTypes,this._excludeMediaTypes);}if(((_g=this._excludeMediaTypes)===null||_g===void 0?void 0:_g.size)&&((_h=otherAdobeAssetFilter._excludeMediaTypes)===null||_h===void 0?void 0:_h.size)){otherExcludethisExclude=getMediaTypeRelation(otherAdobeAssetFilter._excludeMediaTypes,this._excludeMediaTypes);}// handling disjoint for case 6, 8, 9
if(otherIncludeThisExclude===mediaTypeRelation.subset||thisIncludeOtherExclude===mediaTypeRelation.subset||thisIncludeOtherInclude===mediaTypeRelation.disjoint){return'disjoint';}// handling unknown for case 5, 6, 8, 9
if(otherExcludethisExclude===mediaTypeRelation.intersaction||otherIncludeThisExclude===mediaTypeRelation.intersaction||thisIncludeOtherExclude===mediaTypeRelation.intersaction||thisIncludeOtherInclude===mediaTypeRelation.intersaction){return'unknown';}// handling for case 2, 3 - only possible value 'unknown'
if(!((_j=this._mediaTypes)===null||_j===void 0?void 0:_j.size)&&!((_k=this._excludeMediaTypes)===null||_k===void 0?void 0:_k.size)&&(((_l=otherAdobeAssetFilter._mediaTypes)===null||_l===void 0?void 0:_l.size)||((_m=otherAdobeAssetFilter._excludeMediaTypes)===null||_m===void 0?void 0:_m.size))){// If the other list has mediaType/excludeMediaType and this filter doesn't then
// this list is going to have an unknown final state.
return'unknown';}// we have handled all possible disjoint/unknown cases above and can safely return subset from here
return'subset';}}/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2022 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/class AdobeAssetFilter extends AdobeAssetFilterBase{constructor(options){super({mediaTypes:options===null||options===void 0?void 0:options.mediaTypes,excludeMediaTypes:options===null||options===void 0?void 0:options.excludeMediaTypes});this._asset=options===null||options===void 0?void 0:options.asset;}get asset(){return this._asset;}get hash(){var _a;return[(_a=this._asset)===null||_a===void 0?void 0:_a.id,super.hash].filter(x=>x).join(':');}matches(item){var _a;// If SWY item try to get added in this directory listing simply return false
if(item.isSharedWithMe){return false;}// USS does not give repository id of an item. So compare repository id
// only when it is available on both assets
if(this.asset&&this.asset.repositoryID&&item.repositoryID&&this.asset.repositoryID!==item.repositoryID){return false;}// check item is a direct child of current asset
const assetRepoPath=(_a=this._asset)===null||_a===void 0?void 0:_a.repoPath;if(assetRepoPath&&assetRepoPath!==item.repoPath.substring(0,item.repoPath.lastIndexOf('/'))){return false;}return super.matches(item);}getRelationToFilter(other){var _a,_b,_c,_d;if(!(other instanceof AdobeAssetFilter)){return'disjoint';}const thisFilterRepoPath=(_a=this.asset)===null||_a===void 0?void 0:_a.repoPath;const otherFilterRepoPath=(_b=other.asset)===null||_b===void 0?void 0:_b.repoPath;if(thisFilterRepoPath&&otherFilterRepoPath&&thisFilterRepoPath!==otherFilterRepoPath){// assetRepoPath are entirely different, no shared elements are expected.
return'disjoint';}const thisFilterRepoID=(_c=this.asset)===null||_c===void 0?void 0:_c.repositoryID;const otherFilterRepoID=(_d=other.asset)===null||_d===void 0?void 0:_d.repositoryID;if(thisFilterRepoID&&otherFilterRepoID&&thisFilterRepoID!==otherFilterRepoID){return'disjoint';}const mediaTypeRelation=super.getRelationToFilter(other);if(mediaTypeRelation==='disjoint'){return'disjoint';}//----- All 'disjoint' cases must be handled above this line
if(mediaTypeRelation==='unknown'){// This filter shares some, but not all of the mediaTypes of other. They
// could overlap, but can't know for sure.
return'unknown';}if(!thisFilterRepoPath&&otherFilterRepoPath){// This list isn't filtered by repoPath, but the other is. They
// could overlap, but can't know for sure.
return'unknown';}//------ All 'unknown' cases must be handled above this line
// Since the filters can't be 'disjoint', there must be some overlap, leaving
// only 'unknown' and 'subset' as a possibility. Since all 'unknown' cases have
// been eliminated, the only remaining possibility is 'subset'.
// NOTE: Returns mediaTypeRelation for verification in unit tests.
return mediaTypeRelation;}}/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2022 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/class AdobeAssetSearchFilter extends AdobeAssetFilterBase{constructor(options){super({mediaTypes:options===null||options===void 0?void 0:options.mediaTypes,excludeMediaTypes:options===null||options===void 0?void 0:options.excludeMediaTypes});this._deepSearch=options===null||options===void 0?void 0:options.deepSearch;this._query=options===null||options===void 0?void 0:options.query;this._asset=options===null||options===void 0?void 0:options.asset;}get hash(){var _a;return[(_a=this._asset)===null||_a===void 0?void 0:_a.id,super.hash,this.deepSearch!==undefined?`deepSearch=${this._deepSearch}`:undefined,this.query?`query=${this._query}`:undefined].filter(x=>x).join(':');}get deepSearch(){return this._deepSearch;}get asset(){return this._asset;}get query(){return this._query;}// The matching rules USS are deceptively complex, and could change over time. Attempting to
// replicate here could result in items being incorrectly filtered out or incorrectly included.
// Search Lists should not try to share items from Lists with similar queries, other
// than treating the queries as case-insensitve.
matches(item){// If SWY item try to get added in this directory listing simply return false
if(item.isSharedWithMe){return false;}// USS does not give repository id of an item. So compare repository id
// only when it is available on both assets
if(this.asset&&this.asset.repositoryID&&item.repositoryID&&this.asset.repositoryID!==item.repositoryID){return false;}// If asset is set, check whether item should belong this search or not based on
// deep search. If deep search is true this asset should be container for incoming
// item else this asset should be immediate parent of incoming asset
if(this.asset&&this.asset.repoPath&&item.repoPath){const assetRepoPath=this.asset.repoPath;if(this.deepSearch){if(!item.repoPath.startsWith(path.join(assetRepoPath,'/'))){return false;}}else if(assetRepoPath!==item.repoPath.substring(0,item.repoPath.lastIndexOf('/'))){return false;}}return super.matches(item);}getRelationToFilter(other){var _a,_b,_c,_d;if(!(other instanceof AdobeAssetSearchFilter)){return'disjoint';}const thisFilterRepoID=(_a=this.asset)===null||_a===void 0?void 0:_a.repositoryID;const otherFilterRepoID=(_b=other.asset)===null||_b===void 0?void 0:_b.repositoryID;if(thisFilterRepoID&&otherFilterRepoID&&thisFilterRepoID!==otherFilterRepoID){return'disjoint';}if(this.deepSearch!==other.deepSearch||((_c=this.query)===null||_c===void 0?void 0:_c.toLowerCase())!==((_d=other.query)===null||_d===void 0?void 0:_d.toLowerCase())){return'disjoint';}return super.getRelationToFilter(other);}}/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2022 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/const OrderFieldToIAdobeAssetOrderBy={'name':'repo:name','created':'storage:deviceCreateDate','modified':'storage:deviceModifyDate',// R-API doesn't sort on share date
'shared':'storage:deviceModifyDate'};const OrderFieldToComparator$8={name(a,b){return compareStrings(a.name,b.name);},created(a,b){return compareValues(a.created,b.created);},modified(a,b){return compareValues(a.modified,b.modified);},shared(a,b){return compareValues(a.shared,b.shared);}};class AdobeAssetOrder extends createItemOrderFactory(OrderFieldToComparator$8){}AdobeAssetOrder.default=new AdobeAssetOrder('descending','modified');/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2022 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/class AdobeAssetDirectoryLoader{constructor(_assetPool,_asset,_includePermissions){this._assetPool=_assetPool;this._asset=_asset;this._includePermissions=_includePermissions;}supportsFilter(filter){// TODO: ?? can be undefined but can't be undefined ??
return filter!==undefined;}async loadPage(options){return await this._loadPage(options);}async _loadPage(options,start){var _a,_b,_c;const{updateContext,order,limit,filter}=options;let mediaTypes=[];if(filter){// If filter is defined, it can either be AdobeAssetFilter or ConjunctionFilter
if(filter instanceof AdobeAssetFilter){mediaTypes=[...((_a=filter.mediaTypes)!==null&&_a!==void 0?_a:[])];}else{const{filterA,filterB}=filter;if(filterA instanceof AdobeAssetFilter&&filterB instanceof AdobeAssetFilter){mediaTypes=[...((_b=filterA.mediaTypes)!==null&&_b!==void 0?_b:[]),...((_c=filterB.mediaTypes)!==null&&_c!==void 0?_c:[])];}}}// We will ignore the update if we had local changes sooner than this timestamp.
const latency=this._assetPool._core.environment.getValue('ASSETS_LIST_UPDATE_LATENCY');const mostRecentValidMutation=Date.now()-latency;let rapiResult;let ussResult;const embed=[{'resource':{'reltype':RelType.APP_METADATA},'selectors':['"shell:visibility"']}];if(this._includePermissions){embed.push({'resource':{'reltype':RelType.AC_EFFECTIVE}});}const assetInterface=await this._asset._getAssetInterface();const rapiResultPromise=assetInterface.getChildAssets({orderBy:OrderFieldToIAdobeAssetOrderBy[order.field],orderDirection:order.direction,start,limit,type:mediaTypes,embed});const updateIsSharedByMe=this._asset._core.environment.getValue('USE_USS_TO_UPDATE_SBM');// using uss loader to populate isSharedByMe field on AdobeAsset, it is a workaround. The correct solution is to
// get acl in the r-api directory listing and update isSharedByMe/collaborator info from it.
// It is currently not supported by rapi, can be tracked by https://jira.corp.adobe.com/browse/ACPCSS-2925
try{if(updateIsSharedByMe){ussResult=await this._asset._core.hostAssetContext.sbmInterface.getSharedByMeAssets(this._asset.id,{orderBy:OrderFieldToISWYAdobeAssetOrderBy[order.field],orderDirection:order.direction,start:Number(start),limit,type:mediaTypes});}}catch(error){// ignore the error, treating uss loader as optional
}rapiResult=await rapiResultPromise;const session=this._assetPool.createUpdateSession(updateContext,mostRecentValidMutation);const items=AdobeAssetUpdater.updateRemoteItems(session,rapiResult.children.map(item=>{if(ussResult){let isSharedByMe=undefined;const ussItem=ussResult.result_sets[0].items.find(ussItem=>ussItem.asset_id===item['repo:assetId']);if(ussItem){isSharedByMe=ussItem.collab_metadata?true:false;}return Object.assign(Object.assign({},item),{isSharedByMe});}else{return item;}}));session.commit();// Check if we have another page to load.
let loadNextPage;const nextStart=rapiResult._page.next;if(nextStart){loadNextPage=options=>this._loadPage(options,nextStart);}return{items,loadNextPage,mostRecentValidMutation};}}/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2022 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/const OrderFieldToIUSSAdobeAssetOrderBy={'name':'asset_name','created':'create_date','modified':'modify_date'};const OrderFieldToComparator$7={name(a,b){return compareStrings(a.name,b.name);},created(a,b){return compareValues(a.created,b.created);},modified(a,b){return compareValues(a.modified,b.modified);}};class USSAdobeAssetOrder extends createItemOrderFactory(OrderFieldToComparator$7){}USSAdobeAssetOrder.default=new USSAdobeAssetOrder('descending','modified');/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2022 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/class AdobeAssetDirectorySearchLoader{constructor(assetPool,core,_adobeAssetSearchInterface,_asset){this._adobeAssetSearchInterface=_adobeAssetSearchInterface;this._asset=_asset;this._ussLoaderHelper=new USSLoaderHelper(assetPool,core,this);}supportsFilter(filter){// If we don't provide a filter at all, then we cannot use the loader
return filter!==undefined;}async loadPage(options){return this._ussLoaderHelper.loadPage(options);}// @package -- only for use by USSLoaderHelper
async _getUSSResults({start,limit,order,filter,mediaTypes,excludeMediaTypes}){let query;let deepSearch=false;if(filter instanceof AdobeAssetSearchFilter){query=filter.query;deepSearch=Boolean(filter.deepSearch);}else if((filter===null||filter===void 0?void 0:filter.filterA)instanceof AdobeAssetSearchFilter&&(filter===null||filter===void 0?void 0:filter.filterB)instanceof AdobeAssetSearchFilter){const{filterA,filterB}=filter;query=filterA.query||filterB.query;deepSearch=Boolean(filterA.deepSearch||filterB.deepSearch);}return this._adobeAssetSearchInterface.getFilteredAssets({orderBy:OrderFieldToIUSSAdobeAssetOrderBy[order.field],orderDirection:order.direction,start,limit,mediaTypes,excludeMediaTypes,query,deepSearch,assetId:this._asset.cloudID});}// @package -- only for use by USSLoaderHelper
_getItemData(item){// TODO: Patching should be removed once https://jira.corp.adobe.com/browse/SRCH-1989 is fixed
return Object.assign(Object.assign({},item),{repository_id:this._asset.repositoryID});}}var rngBrowser={exports:{}};// Unique ID creation requires a high quality random # generator.  In the
// browser this is a little complicated due to unknown quality of Math.random()
// and inconsistent support for the `crypto` API.  We do the best we can via
// feature-detection
// getRandomValues needs to be invoked in a context where "this" is a Crypto
// implementation. Also, find the complete implementation of crypto on IE11.
var getRandomValues=typeof crypto!='undefined'&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||typeof msCrypto!='undefined'&&typeof window.msCrypto.getRandomValues=='function'&&msCrypto.getRandomValues.bind(msCrypto);if(getRandomValues){// WHATWG crypto RNG - http://wiki.whatwg.org/wiki/Crypto
var rnds8=new Uint8Array(16);// eslint-disable-line no-undef
rngBrowser.exports=function whatwgRNG(){getRandomValues(rnds8);return rnds8;};}else{// Math.random()-based (RNG)
//
// If all else fails, use Math.random().  It's fast, but is of unspecified
// quality.
var rnds=new Array(16);rngBrowser.exports=function mathRNG(){for(var i=0,r;i<16;i++){if((i&0x03)===0)r=Math.random()*0x100000000;rnds[i]=r>>>((i&0x03)<<3)&0xff;}return rnds;};}/**
 * Convert array of 16 byte values to UUID string format of the form:
 * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
 */var byteToHex=[];for(var i=0;i<256;++i){byteToHex[i]=(i+0x100).toString(16).substr(1);}function bytesToUuid$2(buf,offset){var i=offset||0;var bth=byteToHex;// join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4
return[bth[buf[i++]],bth[buf[i++]],bth[buf[i++]],bth[buf[i++]],'-',bth[buf[i++]],bth[buf[i++]],'-',bth[buf[i++]],bth[buf[i++]],'-',bth[buf[i++]],bth[buf[i++]],'-',bth[buf[i++]],bth[buf[i++]],bth[buf[i++]],bth[buf[i++]],bth[buf[i++]],bth[buf[i++]]].join('');}var bytesToUuid_1=bytesToUuid$2;var rng$1=rngBrowser.exports;var bytesToUuid$1=bytesToUuid_1;// **`v1()` - Generate time-based UUID**
//
// Inspired by https://github.com/LiosK/UUID.js
// and http://docs.python.org/library/uuid.html
var _nodeId;var _clockseq;// Previous uuid creation time
var _lastMSecs=0;var _lastNSecs=0;// See https://github.com/broofa/node-uuid for API details
function v1$1(options,buf,offset){var i=buf&&offset||0;var b=buf||[];options=options||{};var node=options.node||_nodeId;var clockseq=options.clockseq!==undefined?options.clockseq:_clockseq;// node and clockseq need to be initialized to random values if they're not
// specified.  We do this lazily to minimize issues related to insufficient
// system entropy.  See #189
if(node==null||clockseq==null){var seedBytes=rng$1();if(node==null){// Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)
node=_nodeId=[seedBytes[0]|0x01,seedBytes[1],seedBytes[2],seedBytes[3],seedBytes[4],seedBytes[5]];}if(clockseq==null){// Per 4.2.2, randomize (14 bit) clockseq
clockseq=_clockseq=(seedBytes[6]<<8|seedBytes[7])&0x3fff;}}// UUID timestamps are 100 nano-second units since the Gregorian epoch,
// (1582-10-15 00:00).  JSNumbers aren't precise enough for this, so
// time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'
// (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.
var msecs=options.msecs!==undefined?options.msecs:new Date().getTime();// Per 4.2.1.2, use count of uuid's generated during the current clock
// cycle to simulate higher resolution clock
var nsecs=options.nsecs!==undefined?options.nsecs:_lastNSecs+1;// Time since last uuid creation (in msecs)
var dt=msecs-_lastMSecs+(nsecs-_lastNSecs)/10000;// Per 4.2.1.2, Bump clockseq on clock regression
if(dt<0&&options.clockseq===undefined){clockseq=clockseq+1&0x3fff;}// Reset nsecs if clock regresses (new clockseq) or we've moved onto a new
// time interval
if((dt<0||msecs>_lastMSecs)&&options.nsecs===undefined){nsecs=0;}// Per 4.2.1.2 Throw error if too many uuids are requested
if(nsecs>=10000){throw new Error('uuid.v1(): Can\'t create more than 10M uuids/sec');}_lastMSecs=msecs;_lastNSecs=nsecs;_clockseq=clockseq;// Per 4.1.4 - Convert from unix epoch to Gregorian epoch
msecs+=12219292800000;// `time_low`
var tl=((msecs&0xfffffff)*10000+nsecs)%0x100000000;b[i++]=tl>>>24&0xff;b[i++]=tl>>>16&0xff;b[i++]=tl>>>8&0xff;b[i++]=tl&0xff;// `time_mid`
var tmh=msecs/0x100000000*10000&0xfffffff;b[i++]=tmh>>>8&0xff;b[i++]=tmh&0xff;// `time_high_and_version`
b[i++]=tmh>>>24&0xf|0x10;// include version
b[i++]=tmh>>>16&0xff;// `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)
b[i++]=clockseq>>>8|0x80;// `clock_seq_low`
b[i++]=clockseq&0xff;// `node`
for(var n=0;n<6;++n){b[i+n]=node[n];}return buf?buf:bytesToUuid$1(b);}var v1_1=v1$1;var rng=rngBrowser.exports;var bytesToUuid=bytesToUuid_1;function v4$1(options,buf,offset){var i=buf&&offset||0;if(typeof options=='string'){buf=options==='binary'?new Array(16):null;options=null;}options=options||{};var rnds=options.random||(options.rng||rng)();// Per 4.4, set bits for version and `clock_seq_hi_and_reserved`
rnds[6]=rnds[6]&0x0f|0x40;rnds[8]=rnds[8]&0x3f|0x80;// Copy bytes to buffer, if provided
if(buf){for(var ii=0;ii<16;++ii){buf[i+ii]=rnds[ii];}}return buf||bytesToUuid(rnds);}var v4_1=v4$1;var v1=v1_1;var v4=v4_1;var uuid$1=v4;uuid$1.v1=v1;uuid$1.v4=v4;var uuid_1=uuid$1;/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2022 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/ // NOTE: since UXP doesn't provide `window.crypto` (https://jira.corp.adobe.com/browse/UXP-12909), SAM.js must include
// an old version of uuid (3.3.2) that does not require `window.crypto` at all. Otherwise, each host app has to
// inject the crypto API, which is not ideal, as it then becomes a hidden dependency for SAM.js. Host apps may still
// choose to provide the crypto API for more cryptographically secure uuid, but there does not appear to be any
// security holes in SAM.js using the older algorithm.
function uuid(){if(typeof crypto!=='undefined'&&crypto.randomUUID){return crypto.randomUUID();}return uuid_1.v4();}/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/function getFiltersRelation(requestedFilter,other){if(requestedFilter===other){// If the exact same filter is given, then it must be a complete list.
return'subset';}if(requestedFilter&&other){// If the hash is the same, then we have the same filter.
if(requestedFilter.hash===other.hash){return'subset';}// Check first if other is a subset of the requested filter,
// in this case we know the requested filter is a superset (unknown).
if(other.getRelationToFilter(requestedFilter)==='subset'){return'unknown';}return requestedFilter.getRelationToFilter(other);}// If we have a filter, it means the other list had no filter, so this is a complete subset of an unfiltered list.
if(requestedFilter){return'subset';}// If the other list had a filter and this new list doesn't have a filter, then this new list will be incomplete.
return'unknown';}// Must match GenericListStatus enum from SAM.cpp
var AssetListStatus;(function(AssetListStatus){AssetListStatus[AssetListStatus["NotStarted"]=1]="NotStarted";AssetListStatus[AssetListStatus["HadLoaderErrors"]=2]="HadLoaderErrors";AssetListStatus[AssetListStatus["Loading"]=3]="Loading";AssetListStatus[AssetListStatus["ReadyHasMorePages"]=4]="ReadyHasMorePages";AssetListStatus[AssetListStatus["ReadyFullyLoaded"]=5]="ReadyFullyLoaded";})(AssetListStatus||(AssetListStatus={}));const LOADER_STATE_CHANGED='loaderStateChanged';class ItemLoaderStateChangeEvent extends Event$1{constructor(hasUpdatedItems=false){super(LOADER_STATE_CHANGED);this.hasUpdatedItems=hasUpdatedItems;}}const SharedEventWithoutItemChanges=new ItemLoaderStateChangeEvent(false);const SharedEventWithItemChanges=new ItemLoaderStateChangeEvent(true);/**
 * This is the structure of a page in memory.
 */class ItemLoaderPage{constructor(){this.startedGeneration=0;this.loadedGeneration=0;}}/**
 * A list can have multiple loaders that provide items.
 * The ItemLoaderState maintains the state of each loader attached in a list:
 * - The loaded pages and their items
 * - The error state if we had one
 * - The next available page if any
 *
 * The Loader can also refresh the items starting with page 0. The items
 * in the pre-loaded pages will only refresh once those pages are fully loaded again.
 *
 * If a previous pending request is finished after we start a refresh cycle, then
 * the items in that page will update if and only if the new cycle didn't fetch that page yet.
 */class ItemLoaderState extends TypedEventEmitter{constructor(_updateContext,_loader,_order,_filter){super();this._updateContext=_updateContext;this._loader=_loader;this._order=_order;this._filter=_filter;this.status=AssetListStatus.NotStarted;this._pages=[];/**
         * Each new refresh of the pages increments the generation index.
         * We use this to differentiate between async network calls that
         * might end up providing content after a new refresh has already
         * been scheduled.
         */this._generation=0;/**
         * Store the index and link of the next page. Once we reach
         * the last page, the callback will become null.
         */this._nextPageIndex=0;/**
         * Flag used to automatically load all pages without waiting for user intervention.
         * This is useful for cases when all items are needed. For example, in the sidebar
         * we want to display all the teams and bookmarked spaces.
         */this._loadAllPages=false;}get mostRecentValidMutation(){return this._mostRecentValidMutation;}/**
     * Triggers a new generation of loading.
     * @param generation    The generation index. This number must always increment for new loads.
     * @param loadAllPages  Forces loading all the pages in the chain.
     * @param limit (optional) override default items per page
     * @returns Promise that can be used to know when the entire loading chain finished.
     */async load(generation,loadAllPages,limit){this._loadAllPages=loadAllPages;// If we were loading something before, we are aborting
// that in favor of the new generation.
// Reset the previous page token.
this._generation=generation;this._nextPageCallback=undefined;this._nextPageIndex=0;this._pendingLoad=undefined;await this._loadPage(limit);}/**
     * Load the next page.
     * @returns Promise that can be used to know when the entire loading chain finished.
     */async loadNextPage(limit){await this._loadPage(limit);}/**
     * Load all the remaining pages.
     * @returns Promise that can be used to know when the entire loading chain finished.
     */async loadAllPages(limit){this._loadAllPages=true;await this._loadPage(limit);}/**
     * Pushes the items from all the loaded pages into the provided `dest` set.
     *
     * @param dest Set object that is populated with items from all the pages.
     */collectAllItems(dest){for(const page of this._pages){if(page&&page.items){for(const item of page.items){dest.add(item);}}}}/**
     * Loads or creates a page at the specified index.
     * @param pageIndex
     * @returns The page at index `pageIndex`.
     */_ensurePage(pageIndex){let page=this._pages[pageIndex];if(!page){page=new ItemLoaderPage();this._pages[pageIndex]=page;}return page;}/**
     * Handle only one page load at a time by storing the promise and waiting on the same
     * promise.
     *
     * Note that the promise chain can still be restarted via the `load()` method which
     * starts loading everything from the first page again.
     */async _loadPage(limit){// Check if there is a load already in progress. We wait on that one before making more loads.
// This should prevent users from trying to load too many pages ahead of time.
let pendingLoad=this._pendingLoad;if(!pendingLoad){// We don't have anything in progress, we can go ahead and load the page.
pendingLoad=this._loadPageImpl(limit);// Store the pending load to make sure no requests are executed at the same time.
this._pendingLoad=pendingLoad;}// Wait for this load to finish.
await pendingLoad;if(this._pendingLoad===pendingLoad){// If the load is still relevant for this generation of loading,
// then we can go ahead and remove the promise. Note that we will
// have to do this for all returning cases, even the paths that didn't
// actually trigger a load above. That's because we don't know which path
// continues the execution first and we want to make the caller can initiate
// another call immediately.
this._pendingLoad=undefined;}}/**
     * Loads the next page queued up for the loader.
     * It will also update the current page and recursively call
     * itself to load the next page if needed.
     */async _loadPageImpl(limit){const nextPageCallback=this._nextPageCallback;const pageIndex=this._nextPageIndex;// If this is not the first page and we don't have a callback, then we are out of pages to load.
if(pageIndex&&!nextPageCallback){return;}// Ensure we have the next page in memory.
const page=this._ensurePage(pageIndex);// Store the generation that we are in when the loading starts. If the results
// come by the time we've already switched to a new generation, then we will
// ignore the errors and keep the results only if no other newer generation has
// finished loading the same page already.
const startGeneration=this._generation;if(page.startedGeneration>=startGeneration){// We've already loaded this or a newer generation in a different loading chain.
return;}// Make sure the page knows we are about to reload content using the new generation.
const previousPageGeneration=page.startedGeneration;page.startedGeneration=startGeneration;// Remove the error state in case we had one before.
this.error=null;// Update the status to loading state before we start loading.
this._updateStatus(AssetListStatus.Loading);let result;let loaderError;try{const pageLimit=limit!==null&&limit!==void 0?limit:page.limit;const options={updateContext:this._updateContext,order:this._order,filter:this._filter,limit:pageLimit};if(nextPageCallback){result=await nextPageCallback(options);// We delete the callback only after the page fully loaded.
// That's so that we can retry the load if the first try fails.
this._nextPageCallback=undefined;}else{// Load the first page.
result=await this._loader.loadPage(options);// We can update the window of valid changes at this point.
// Note that we don't want to update the value for the rest of the pages
// as we would still have items from the first page that might not be included yet.
// For example, if a new asset is created and it shows up on the first page,
// but the server didn't know about it just yet, then follow up pages
// are not allowed to change this value until we do another reload cycle.
this._mostRecentValidMutation=result.mostRecentValidMutation;}// Once the page is loaded, save the limit we've used for that particular page.
// If we refresh the page we want to run it with the same page limit.
page.limit=pageLimit;}catch(err){loaderError=err;}if(page.loadedGeneration>=startGeneration){// Ignore the results as a newer loader generation already finished loading this page.
return;}if(loaderError){if(page.startedGeneration!==startGeneration){// Note that we only revert if this load is still the most recent generation
// that started the load. Otherwise, we let the newer loader handle it eventually.
// Note that we return early in here to avoid bubbling up the error state while
// the newer loader is still in progress.
return;}// Revert the status of the page back to the original generation before we've started.
// This is needed so that we can retry loading this page again next time.
page.startedGeneration=previousPageGeneration;}else if(result){// Note that we still use the results of the page even if the client started a new generation of loading.
// If we've reached this point, it means that the newer generation of loading has not yet reached this page.
// In that case, the result we just received is still new enough to considering it better than what we had before.
const filter=this._filter;page.items=filter?result.items.filter(filter.matches.bind(filter)):result.items;this.total=result.total;page.loadedGeneration=startGeneration;}// Update the state before sending any events.
const loadMorePages=this._updateStatusAndLinkToNextPage(startGeneration,pageIndex,result,loaderError);// If we decided to load more pages, this is a good time to make that recursive async call.
if(loadMorePages){await this._loadPageImpl(limit);}}/**
     * Checks if the loader result can be used to load the next page.
     * @param startGeneration   The generation that started this loader session.
     * @param pageIndex         The index of the loaded page.
     * @param result            The result received from the loader.
     * @param loaderError       The error caught during the execution of the loader, if any.
     * @returns true if the caller should continue loading the next page automatically.
     */_updateStatusAndLinkToNextPage(startGeneration,pageIndex,result,loaderError){if(this._generation!==startGeneration||this._nextPageIndex!==pageIndex){// If the result is from a previous generation, we cannot update the `next page` link because we
// reserve the page chaining only to the current generation of the loader. We don't want to keep
// loading pages using the previous generation anyway, so this is where we bail out
// that previous generation.
if(result){// If we had a result and we got as far as this point, then we have new items
// already injected. However, there's a newer load already in progress, so there's no actual
// state change here. We only want to inform of the possibility of new items
// being added to the page, so we dispatch an event to let the ItemList update its 'items' contents
// to the most recent version loaded in this load chain.
this.dispatch(SharedEventWithItemChanges);}return false;}if(!result){// This page failed to load, so loading any other pages is compromised too.
this.error=loaderError;this._updateStatus(AssetListStatus.HadLoaderErrors);return false;}// Increment the page index and store the link to the next page that we've received from the loader.
this._nextPageIndex=pageIndex+1;this._nextPageCallback=result.loadNextPage;if(!result.loadNextPage){// There are no other pages left. If we had any pages beyond this point
// before, this is a good time to remove them.
this._pages.splice(this._nextPageIndex);}// If we have a `loadNextPage` callback available then it means there are more pages to load.
this._updateStatus(result.loadNextPage?AssetListStatus.ReadyHasMorePages:AssetListStatus.ReadyFullyLoaded);// There are two cases when we want to automatically load the next pages:
// 1) If the client requested to load all pages automatically via the `this._loadAllPages` flag.
// 2) If the client already requested these pages before in a previous generation, we will keep reloading
//    the pages automatically. This is the use-case when the client already scrolled past the first page and
//    the client triggers a refresh of the list in the background. In that case the list must automatically
//    update up-to the last scroll position. The pages will refresh one-by-one until all new items are available.
// If the page was loaded before (case #2 above), then the page must be in the list of pages already.
// That means the page index is lower than the size of the pages array.
const didLoadNextPageBefore=this._nextPageIndex<this._pages.length;return this._loadAllPages||didLoadNextPageBefore;}/**
     * Triggers a status update event.
     * @param newStatus
     */_updateStatus(newStatus){// We always want to send an event when we have item changes,
// so that the ItemList can update the item list even if the status didn't change.
const hasItemChanges=newStatus===AssetListStatus.ReadyFullyLoaded||newStatus===AssetListStatus.ReadyHasMorePages;if(hasItemChanges||newStatus!==this.status){this.status=newStatus;this.dispatch(hasItemChanges?SharedEventWithItemChanges:SharedEventWithoutItemChanges);}}}/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/const STATE_CHANGED='statusChanged';const LIST_CHANGED='listChanged';class StateChangedEvent extends Event$1{constructor(){super(STATE_CHANGED);}}class ListChangedEvent extends Event$1{constructor(){super(LIST_CHANGED);}}const SharedListChangedEvent=new ListChangedEvent();const SharedStateChangedEvent=new StateChangedEvent();let GlobalGeneration=0;/**
 * Make sure we can sort lists based on how recent they've
 * started their server load. The more recent loads will have higher
 * priority over lists that have not been updated in a while.
 */function allocGenerationIndex(){return++GlobalGeneration;}class ItemList extends TypedEventEmitter{constructor(_itemPool,loaders,order,filter,similarItemList,_loadOptions){super();this._itemPool=_itemPool;this.order=order;this.filter=filter;this._loadOptions=_loadOptions;this._status=AssetListStatus.NotStarted;this._items=[];this._hasDirtyStatus=false;// determines when to recompute _status from _loaderStates
this._hasDirtyItems=false;// Every time we refresh the list we increment the generation. This is used
// to make sure that older lists are updated once the new pages are loaded.
this._generation=0;this._completedGeneration=0;this._loaderStates=[];this._lastFetchTime=0;this._needsRefresh=false;// We will have to keep the client side items around until we fully fetch again the entire list.
// Example: We fetched the latest favorite spaces for the sidebar. Then we add a new space and make it favorite.
// The new space will be added to the list automatically without doing another fetch from the server.
// This list will refresh in the background eventually. Once the fetch is complete (ie. all pages are loaded),
// we can get rid of the assets added in the previous generation. At that point we can know for sure,
// that the items added in the previous generation have already been captured in the new generation of loaded pages.
// If an item is loaded after the load started, we have to keep it around until the next generation ends.
// That's because the initial pages might have contained the item, but we've started the load too early and the
// item might not be captured in the result yet.
this._itemUpdatesByGeneration=new Map();this._updateContext=uuid();// In case there is an error in load/loadNextPage that does not come from the Loader,
// append the error to the errors list.
this._onUnhandledPromiseError=err=>{var _a;this._updateListStatusFromItemLoaderStates();if(!((_a=this._errors)===null||_a===void 0?void 0:_a.length)){this._errors=[];}this._errors.push(err);this._status=AssetListStatus.HadLoaderErrors;this.emit(STATE_CHANGED);};this._handlePendingLoad=async()=>{const pendingLoad=this._pendingLoad;if(pendingLoad){const{loadAllPages,limit}=pendingLoad;this._pendingLoad=undefined;this._debug('_handlePendingLoad() awaiting _runLoaders for loaderState.load');await this._runLoaders(loaderState=>loaderState.load(this._generation,loadAllPages,limit));}};this._onItemLoaderStateChanged=ev=>{this._hasDirtyStatus=true;// We only have new items if the sender is either in fully loaded or has more pages state.
const{hasUpdatedItems}=ev;if(hasUpdatedItems){this._hasDirtyItems=true;}this._cleanPreviousGenerationItemsIfNeeded();// Only dispatch ItemsChanged events in response to ItemLoaderState events. ItemList will broadcast the
// StatusChanged event when exiting the load/loadNextPage methods so that all ItemList state is settled
// when the StatusChanged event fires.
if(hasUpdatedItems){this._dispatchItemsChangedEvent();}};// Reusable event that we use to avoid creating a new event object all the times.
this._globalStateChangedEvent=new ItemListStateChangedEvent(this);/**
         * Handles the change notifications from the pool.
         * This method executes until the GC collects the List reference.
         * This handler must be as quick as possible and postpone any list
         * updates until the items are actually needed by the client.
         * @param ev
         */this._itemPoolDelegate={onItemsUpdated:event=>{if(event.updateContext===this._updateContext){// Ignore changes from the same update context.
// We track these changes via the actual loader pages.
return;}let pendingNotifications=this._pendingNotifications;if(!pendingNotifications){pendingNotifications=[];this._pendingNotifications=pendingNotifications;}pendingNotifications.push({generation:this._generation,event});this._setHasDirtyItems();}};for(const loader of loaders){if(loader.supportsFilter&&!loader.supportsFilter(filter)){// We don't need want to use loaders that do not support the filters.
// Otherwise, we are better of with running this list entirely on the client side.
// For example, the discarded items are better handled on the client for now.
continue;}const state=new ItemLoaderState(this._updateContext,loader,order,filter);state.on(LOADER_STATE_CHANGED,this._onItemLoaderStateChanged);this._loaderStates.push(state);}if(similarItemList){this._copyInitialItemsFrom(similarItemList);}_itemPool.addDelegate(this._itemPoolDelegate,'list');}_debug(msg){this._core.environment.debug(`[ItemList ${this._itemPool.type} ${this._updateContext.slice(-4)}] ${msg}`);}// When client calls `Source.getList()` and an existing List is returned, the existing List's
// loadOptions might be different than the loadOptions that were requested. ItemSource calls
// this method to allow some adjustments.
// @package -- only to be used internally by SAM.js
_updateLoadOptions(loadOptions={}){var _a,_b;if(!this._loadOptions){this._loadOptions={};}// Can only increase the limit if there is a limit set, otherwise keep the default limit
// because it's not possible to tell if it is being increased or decreased since it could
// be defined on the service and not anywhere in SAM.js.
if(this._loadOptions.limit&&loadOptions.limit&&this._loadOptions.limit<loadOptions.limit){this._loadOptions.limit=loadOptions.limit;}// Can turn on loadAllPages, but cannot turn it off
if(!this._loadOptions.loadAllPages&&loadOptions.loadAllPages){this._loadOptions.loadAllPages=loadOptions.loadAllPages;}// It can only lower the refreshTimeout duration. Annoyingly, -1 means "infinite future", while 0 means "now".
if(loadOptions.refreshTimeout!==-1&&(this._loadOptions.refreshTimeout===-1||((_a=this._loadOptions.refreshTimeout)!==null&&_a!==void 0?_a:0)>=((_b=loadOptions.refreshTimeout)!==null&&_b!==void 0?_b:0))){this._loadOptions.refreshTimeout=loadOptions.refreshTimeout;}this._loadAsync(Object.assign(Object.assign({},this._loadOptions),{// if new refreshTimeout is -1, then it shouldn't refresh, but it can still turn on
// loadAllPages, which might require loading more pages.
refreshTimeout:loadOptions.refreshTimeout===-1?-1:this._loadOptions.refreshTimeout})).catch(this._onUnhandledPromiseError);}get type(){return this._itemPool.type;}get generation(){return this._generation;}get completedGeneration(){return this._completedGeneration;}get hasLoaders(){return this._loaderStates.length>0;}get _core(){return this._itemPool._core;}/**
     * In many cases the items already exist in a different list,
     * we just need to reorder the items or just apply a different filter.
     * In that case, we can bootstrap the list with items borrowed from a different
     * list until the items are refreshed in the background if necessary.
     * @param other
     */_copyInitialItemsFrom(other){const itemGeneration=new Map();const filter=this.filter;for(const item of other.items){if(!filter||filter.matches(item)){itemGeneration.set(item,true);}}// Inject the items as if they were just new items.
// These items will be invalidated once the next generation loads,
// which happened when `load()` finishes to load all pages.
// This list starts with the items from a previously downloaded list,
// so it inherits the generation from the other list too.
this._generation=other.generation;this._completedGeneration=other.completedGeneration;this._itemUpdatesByGeneration.set(this._generation,itemGeneration);// Set the status to ready if other list is also set to ready and the other
// list matches the filtering of this list.
if(other.status===AssetListStatus.ReadyFullyLoaded&&getFiltersRelation(filter,other.filter)==='subset'){this._status=AssetListStatus.ReadyFullyLoaded;}// Make sure we recompute the items once the user calls the `items` getter.
// No need to dispatch an event as this is called only during the construction of the list,
// so no clients were able to attach events yet.
this._hasDirtyItems=true;}get status(){if(!this._loaderStates.length){// If we don't have any loaders, we always use the in-memory data for this list.
return AssetListStatus.ReadyFullyLoaded;}this._updateListStatusFromItemLoaderStates();return this._status;}get errors(){this._updateListStatusFromItemLoaderStates();return this._errors;}get items(){this._updateListItemsFromItemLoaderStates();return this._items;}get total(){this._updateListItemsFromItemLoaderStates();return this._total;}_cleanPreviousGenerationItemsIfNeeded(){// Check if all loaders are fully loaded and trim our previous generations.
let globalMostRecentValidMutation;for(const loader of this._loaderStates){const{status,mostRecentValidMutation}=loader;if(status===AssetListStatus.NotStarted||loader.status===AssetListStatus.HadLoaderErrors){// Ignore loaders that are not available.
continue;}if(status===AssetListStatus.Loading||status===AssetListStatus.ReadyHasMorePages){// We cannot trim any of the local items just yet. There are still more pages to load.
return;}// This loader is ready to trim some pages.
if(mostRecentValidMutation){// We have to take the minimum timestamps of all the loaders.
// If we have two loaders that have different latencies, then we have to keep items
// in the list until the most latent on has a chance to validate our local changes.
// The most recent mutations that we can eliminate from the local
// list are the ones outside of any latency window. The minimum is the most recent
// timestamp that is known to be valid across all loaders. Anything more recent than that
// would remove changes that were not yet replicated on at least one of the loaders.
globalMostRecentValidMutation=globalMostRecentValidMutation?Math.min(globalMostRecentValidMutation,mostRecentValidMutation):mostRecentValidMutation;}}// We've loaded the entire set of pages, we are now ready to
// throw away the items that were added on the client side in
// the previous generations. These items should have been
// captured already by the new fetches from the server.
this._cleanPreviousGenerationItems(globalMostRecentValidMutation);}/**
     * Removes items from the previous generations.
     */_cleanPreviousGenerationItems(mostRecentValidMutation){// Convert any pending events into actual maps to make the changes available below.
this._applyItemsChangedEvents();const currentGeneration=this._generation;this._completedGeneration=currentGeneration;// Pick all items added in the previous generations. If these items were indeed added, the updated
// lists should already contain the new items and we can go ahead and remove them from our in-memory store.
// Note that we cannot remove items added in the current generation as those were added
// after we've fetched the requests from the server and might not be up-to-date yet.
const newState=new Map();let hadChanges=false;let mostRecentDeletedGeneration=0;for(const[key,generation]of this._itemUpdatesByGeneration){if(key>=currentGeneration){continue;}// Deletes in JS Maps do not break the iterators, so it should be safe to delete generations while reading the map.
hadChanges=true;this._itemUpdatesByGeneration.delete(key);mostRecentDeletedGeneration=Math.max(mostRecentDeletedGeneration,key);// If we have a most recent valid mutation timeframe, then we need to look for items that
// might still be inside that update time window.
if(mostRecentValidMutation){// Consolidate all the pending changes into a single generation.
for(const[item,state]of generation){const{lastKnownClientMutation}=item;// If the item was already added to the list, then we have to keep updating its final state.
if(newState.has(item)||lastKnownClientMutation&&lastKnownClientMutation>mostRecentValidMutation){// This item had a mutation too close to the last reload, so we cannot trust
// that the listing returns the most up-to-date values. We have to preserve the item state (added / deleted)
// until a future refresh.
newState.set(item,state);}}}}if(newState.size){// Inject the new state in place of the most recent deleted generation.
this._itemUpdatesByGeneration.set(mostRecentDeletedGeneration,newState);}if(hadChanges){// Let the clients know the list must be recomputed.
this._setHasDirtyItems();}}refresh(){this._loadAsync(this._loadOptions).catch(this._onUnhandledPromiseError);}// @deprecated
load(options){oneTimeWarning('ItemList.load','ItemList.load() will be deprecated, use ItemList.refresh()'+' instead. List load parameters are passed as the 3rd parameter to ItemSource.getList(), which now'+' automatically starts loading.');// Previously, `ItemList.load()` with no parameters would always refresh the list because it implied a default
// value for `options.refreshTimeout` of `0` ("refresh now"). However, `_updateLoadOptions` assumes a
// default value for `options.refreshTimeout` of `-1` ("never refresh"). For better backward-compatibility,
// force a default for refreshTimeout of `0`. A defined value for refreshTimeout will override.
options=Object.assign({refreshTimeout:0},options);this._updateLoadOptions(options);}// Other internal SAM.js code relies on getting a Promise.
// This should only be used inside SAM.js, not by clients.
// @package
async _loadAsync(options){var _a,_b;if(!this._loaderStates.length){// We don't have any loaders.
return;}const refreshTimeout=(_a=options===null||options===void 0?void 0:options.refreshTimeout)!==null&&_a!==void 0?_a:0;const loadAllPages=(_b=options===null||options===void 0?void 0:options.loadAllPages)!==null&&_b!==void 0?_b:false;// Check if the list needs to be refreshed:
// 1. The user didn't provide a refresh timeout, meaning we always load the contents.
// 2. There is a need to refresh the contents because the list has changed outside of SAMJS.
// 3. There's a refresh timeout and the timeout expired. We can use this mechanism to prevent using
//    data that is considered to be too old without forcing a refresh all the times.
// 4. refreshTimeout === -1 means the client does NOT want to refresh, only wait for existing
//    load requests to finish, possibly for the purpose of modifying other loadOptions like limit
//    or loadAllPages.
const lastFetchTime=this._lastFetchTime;if(this._needsRefresh||!lastFetchTime||!refreshTimeout||refreshTimeout!==-1&&lastFetchTime+refreshTimeout<Date.now()){this._debug(`_loadAsync() calling _load(): _needsRefresh: ${this._needsRefresh}, lastFetchTime: ${lastFetchTime}`+` refreshTimeout: ${refreshTimeout}`);await this._load(loadAllPages,options===null||options===void 0?void 0:options.limit);return;}else{this._debug(`_loadAsync() not time to refresh: _needsRefresh: ${this._needsRefresh}, lastFetchTime: ${lastFetchTime}`+` refreshTimeout: ${refreshTimeout}`);}// If there's a pending load, wait until it's finished.
const previousLoadPromise=this._previousLoadPromise;if(previousLoadPromise){// Wait until the previous load is complete.
this._debug('_loadAsync() awaiting previousLoadPromise');await previousLoadPromise;}if(loadAllPages){// Make sure the previous load didn't load just the first page.
await this._ensureAllPagesAreLoaded(options===null||options===void 0?void 0:options.limit);}}async _load(loadAllPages,limit){// Make sure we don't keep refreshing this list.
this._needsRefresh=false;// Coalesce multiple load requests into one.
let pendingLoad=this._pendingLoad;if(!pendingLoad){// Since _handlePendingLoad execution is deferred, control is returned to the caller where it
// should expect the List to already be loading, even though the Loader hasn't actually
// started.
this._status=AssetListStatus.Loading;// _lastFetchTime must be defined now, because the _handlePendingLoad execution is deferred, which
// causes control to be passed back to the client. If the client then calls getList(), the refreshTimeout
// option would not be evaluated properly since _lastFetchTime would be stale.
this._lastFetchTime=Date.now();// We use the generation to ignore results that are still in-flight.
// When a new load is issued, we will slowly cleanup the
// results as soon as the prior loading actions finish.
this._generation=allocGenerationIndex();this._debug('_load() creating _pendingLoad');this._pendingLoad=pendingLoad={loadAllPages,limit,// Make sure the load executes after the stack unrolls.
promise:Promise.resolve().then(this._handlePendingLoad)};// Make sure the status reflects that we are now loading.
this._setHasDirtyStatus();}else if(loadAllPages){// Make sure that the pending load fetches all the pages.
pendingLoad.loadAllPages=true;}this._debug('_load() awaiting _pendingLoad');await pendingLoad.promise;}loadNextPage(loadOptions){this._loadNextPageAsync(loadOptions||this._loadOptions).catch(this._onUnhandledPromiseError);}// Other internal SAM.js code relies on getting a Promise.
// This should only be used inside SAM.js, not by clients.
// @package
async _loadNextPageAsync(options){if(!this._loaderStates.length){// We don't have any loaders.
return;}if(this._pendingLoad){this._debug('_loadNextPageAsync() awaiting _pendingLoad');await this._pendingLoad.promise;}else{// Since _loadAsync doesn't immediately start loading, but it does update its status and broadcast the
// status change event, _loadNextPageAsync must do the same. It can't be handled in _runLoaders only,
// because without the status event fired in _loadAsync, it'd be fired too late; with the status event
// fired in _loadAsync, it'd be fired redundantly.
this._status=AssetListStatus.Loading;this._setHasDirtyStatus();this._debug('_loadNextPageAsync() awaiting _runLoaders for loaderState.loadNextPage');await this._runLoaders(loaderState=>loaderState.loadNextPage(options===null||options===void 0?void 0:options.limit));}}async _runLoaders(fn){// We need to update this first to avoid multiple calls to load
// from trying to load too often.
this._lastFetchTime=Date.now();// Save the promise that triggered the last load.
const promise=Promise.all(this._loaderStates.map(fn));this._previousLoadPromise=promise;try{this._debug('_runLoaders() awaiting loaders');await promise;}finally{this._debug('_runLoaders() loaders complete');// Remove the load promise.
this._previousLoadPromise=undefined;// Notify listeners that the List.status has changed (computed from ItemLoaders). This must be the
// last line processed that alters any state in List, so that event listeners can immediately utilize
// the List in a completely settled state.
this._dispatchStateChangedEvents();}}setNeedsRefresh(){if(this.status===AssetListStatus.NotStarted||!this._loaderStates.length){// List has never been loaded, so doesn't need refresh
return;}if(this.listenerCount(LIST_CHANGED)){// We have listeners waiting for changes, so go ahead and reload this list now.
this._needsRefresh=true;this.refresh();return;}// There are no listeners, we will keep a note to refresh this list
// once the list becomes active again.
this._needsRefresh=true;}_onEventListenerAdded(){if(this._needsRefresh&&this.listenerCount(LIST_CHANGED)){// Make sure the list is updated once the client
// needs to use the items of this list again.
this.refresh();}}async _ensureAllPagesAreLoaded(limit){if(this.status!==AssetListStatus.ReadyHasMorePages){// No more pages to load. Bail out.
return;}// Looks like the previous load didn't finish all the pages.
// Note that if another prefetch is issued, we will just wait on the promise
// created by the _runLoaders below via `this._previousLoadPromise`.
await this._runLoaders(loaderState=>loaderState.loadAllPages(limit));}_setHasDirtyStatus(){this._hasDirtyStatus=true;// We always want to dispatch the events, just in case there was no
// listener attached before, so the status was not being cleaned up.
this._dispatchStateChangedEvents();}_dispatchStateChangedEvents(){// Note: referencing this.status can cause this._status to be recomputed, but this shouldn't cause
// a performance drag.
this._debug(`_dispatchStateChangedEvents status: ${AssetListStatus[this.status]}`);this.dispatch(SharedStateChangedEvent);// Dispatch a global event that can be used to handle global
// state updates without adding individual events on all the item lists.
this._core.dispatch(this._globalStateChangedEvent);}_updateListStatusFromItemLoaderStates(){if(!this._hasDirtyStatus){return;}let newStatus=this._pendingLoad?AssetListStatus.Loading:AssetListStatus.NotStarted;// Remove any previous error.
this._errors=undefined;for(const loaderState of this._loaderStates){switch(loaderState.status){case AssetListStatus.HadLoaderErrors:// We only surface the error in cases when there's no loader pending to start.
if(this._pendingLoad){break;}// We surface errors immediately.
this._status=AssetListStatus.HadLoaderErrors;this._errors=[loaderState.error];this._hasDirtyStatus=false;// Return early to avoid cleaning previous generation items.
return;case AssetListStatus.ReadyHasMorePages:if(newStatus!==AssetListStatus.Loading){// If we don't have a loader that is still loading, then we can attach the new state.
newStatus=AssetListStatus.ReadyHasMorePages;}break;case AssetListStatus.Loading:// We always want to know when a page is still loading.
newStatus=AssetListStatus.Loading;break;case AssetListStatus.ReadyFullyLoaded:if(newStatus!==AssetListStatus.ReadyHasMorePages&&newStatus!==AssetListStatus.Loading){// If we don't have a loader that still has pages to load and if we don't actually load something.
newStatus=AssetListStatus.ReadyFullyLoaded;}break;}}this._status=newStatus;this._hasDirtyStatus=false;}_setHasDirtyItems(){this._hasDirtyItems=true;// We always want to dispatch the events, just in case there was no
// listener attached before, so the status was not being cleaned up.
this._dispatchItemsChangedEvent();}_dispatchItemsChangedEvent(){// Let the client know they have to read the item list again.
this.dispatch(SharedListChangedEvent);}_updateListItemsFromItemLoaderStates(){if(!this._hasDirtyItems){// Nothing changed since, bail out.
return;}this._applyItemsChangedEvents();const itemSet=new Set();let total;// Collect the items from all the loaders.
for(const loaderState of this._loaderStates){loaderState.collectAllItems(itemSet);if(loaderState.total!==undefined){total=Math.max(total||0,loaderState.total);}}// Collect any items that were changed on the client
// side and might not be captured in the requests from
// the server side yet.
for(const itemGeneration of this._itemUpdatesByGeneration.values()){for(const[item,state]of itemGeneration.entries()){if(state){itemSet.add(item);}else{itemSet.delete(item);}}}const items=Array.from(itemSet);// Sort the items based on the current ordering.
this.order.sortItems(items);this._items=items;this._total=total;this._hasDirtyItems=false;}/**
     * Handles changes injected through the item pool. These can be either local changes
     * made by the user, or changes detected while fetching other lists.
     *
     * We use this mechanism to propagate the changes immediately across the entire app.
     * For example, if a different call detects a Space has been updated, all the active
     * lists will get the notification and automatically apply the change to their own listing.
     *
     * We are only interested about additions and deletions. Note that items
     * can be added (or removed) to the list if the mutations of the item properties make the
     * updated item pass (or fail) the filter of the current list.
     */_applyItemsChangedEvents(){const pendingNotifications=this._pendingNotifications;if(!pendingNotifications){return;}this._pendingNotifications=undefined;// Break down changes into their own generations of added/removed items.
const{filter}=this;for(const notification of pendingNotifications){const{event,generation}=notification;if(generation<this._completedGeneration){// Ignore changes from completed generations. We already have all
// the correct items received from the server.
continue;}let itemGeneration=this._itemUpdatesByGeneration.get(generation);if(!itemGeneration){itemGeneration=new Map();this._itemUpdatesByGeneration.set(generation,itemGeneration);}if(event.addedItems){for(const item of event.addedItems){if(!filter||filter.matches(item)){itemGeneration.set(item,true);}}}if(event.changedItems){for(const item of event.changedItems){// Check if we have any items that pass the filter test or not.
// We need to store both matching and non-matching, just in case
// an non-matching item was matching before the update and
// we now have to manually remove it from the list fetched from
// the server.
const included=!filter||filter.matches(item);itemGeneration.set(item,included);}}if(event.discardedItems){for(const item of event.discardedItems){// Any discarded items must be removed entirely.
itemGeneration.set(item,false);}}}}}__decorate([observable(STATE_CHANGED)],ItemList.prototype,"status",null);__decorate([observable(STATE_CHANGED)],ItemList.prototype,"errors",null);__decorate([observable(LIST_CHANGED)],ItemList.prototype,"items",null);__decorate([observable(LIST_CHANGED)],ItemList.prototype,"total",null);/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2022 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/class ConjuctionFilter{constructor(filterA,filterB){this._filterA=filterA;this._filterB=filterB;}get filterA(){return this._filterA;}get filterB(){return this._filterB;}get hash(){return[this.filterA.hash,this.filterB.hash].sort().join(':');}matches(item){return this.filterA.matches(item)&&this.filterB.matches(item);}getRelationToFilter(other){// Intersection of two filters is a subset of either of them.
if(other.hash===this.filterA.hash||other.hash===this.filterB.hash){return'subset';}const relationToFilterA=getFiltersRelation(this.filterA,other);const relationToFilterB=getFiltersRelation(this.filterB,other);if(relationToFilterA==='disjoint'||relationToFilterB==='disjoint'){return'disjoint';}if(relationToFilterA==='unknown'||relationToFilterB==='unknown'){return'unknown';}return'subset';}}/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/function candidateSort(a,b){if(a.filterRelation!==b.filterRelation){// We prefer to start from a list that contains as many items as possible,
// so a list that can generate a complete `subset` must be moved to the left.
return a.filterRelation==='subset'?-1:1;}if(a.generation!==b.generation){// Newer generations must be moved to the left.
// Return a negative number if a.generation is larger.
return b.generation-a.generation;}// Lists with more items move left.
// Return a negative number if a.length is larger.
return b.length-a.length;}class ItemSource{constructor(_itemPool,_loaders,// Implicit filter is set by SAM only if required and it will never change
// on this source
_implicitFilter){this._itemPool=_itemPool;this._loaders=_loaders;this._implicitFilter=_implicitFilter;this._lists=new Map();}/// Retrieve a list of items in a specific order, filtered by bookmarked if desired.
/// If team filtering is also desired, callers should pass in the team identifier to filter on.
/// If blank, then all spaces for all teams are fetched.
getList(order,filter,loadOptions){let updatedFilter;if(this._implicitFilter&&filter){updatedFilter=new ConjuctionFilter(this._implicitFilter,filter);}else{updatedFilter=this._implicitFilter?this._implicitFilter:filter;}let list=this._getExistingList(order,updatedFilter);// If the list has been deactivated, then we cannot use the list anymore
// and we have to create a new one.
if(!list){// If this is an internal list, then we can bootstrap the
// contents of the list based on a similar list in the cache.
// This way we don't have to reload the contents when changing
// sort order.
const mostCompleteList=this._getMostCompleteCompatibleList(updatedFilter);list=new ItemList(this._itemPool,this._loaders,order,updatedFilter,mostCompleteList,loadOptions);this._lists.set(this._getListHash(order,updatedFilter),new WeakRef$1(list));}else{// The client may be passing in different loadOptions than what was specified for the
// existing List. Try to accommodate these new options without negatively impacting
// other clients of the same List. If the client did not explicitly specify refreshTimeout, assume
// that the existing list should not be refreshed. This is for better backward-compatibility for
// cases where clients expected that `getList()` would not automatically load data in order to make use
// of a cached List.
list._updateLoadOptions(Object.assign({refreshTimeout:-1},loadOptions));}if(list.status===AssetListStatus.NotStarted){// Start loading.
list.refresh();}return list;}_getListHash(order,filter){return order.hash+':'+(filter?filter.hash:'no-filter');}// @package -- for use in SAM.js only
_getExistingList(order,filter){const listWeakRef=this._lists.get(this._getListHash(order,filter));if(listWeakRef){return listWeakRef.deref();}}setNeedsRefresh(){for(const list of this._getLists()){list.setNeedsRefresh();}}/**
     * Find an already loaded list that is a good candidate to borrow items for when creating a new list.
     *
     * For example, switching the sorting order of a list would have the same filter,
     * so it should be ok to just run that entirely on the client side.
     *
     * Another example is filtering down some items. If we already loaded a list that contained these items,
     * then we can build the filtered down list by just executing the same filter on the client side.
     *
     * @param requestedFilter Filter of the new list.
     * @returns The best candidate list that could be used as a starting point.
     */_getMostCompleteCompatibleList(requestedFilter){var _a;const candidates=[];for(const list of this._getLists()){if(list.status===AssetListStatus.ReadyFullyLoaded){let filterRelation=getFiltersRelation(requestedFilter,list.filter);if(filterRelation!=='disjoint'){candidates.push({list,filterRelation,generation:list.generation,length:list.items.length});}}}// We want to pick the item with the newest items, or the list that has the largest subset of items.
candidates.sort(candidateSort);// The first item in the list is the best candidate.
return(_a=candidates[0])===null||_a===void 0?void 0:_a.list;}*_getLists(){const lists=this._lists;for(const[hash,listRef]of lists.entries()){const list=listRef.deref();if(!list){// The weak ref has expired, remove it from the map.
// Note that JS Maps are ok with deletions during iteration.
lists.delete(hash);continue;}yield list;}}}/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2022 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/class AssetVersion extends ItemBase{constructor(_core,_id){super(_core,_id);this._core=_core;this._assetId='';this._createdAt=new Date();this._createdBy='';this._id=_id;}async getAssetInterface(){this._assetInterface=await this._core.hostAssetContext.repoInterface.resolveById(this._assetId);}get versionId(){return this._id;}get created(){return this._createdAt;}get createdBy(){return this._createdBy;}get assetId(){return this._assetId;}get milestone(){return this._label?{label:this._label,description:this._description}:undefined;}get links(){// Make a copy to avoid the client accidentally manipulating the links
return Object.assign({},this.__links);}getRenditionURL(size,type='image/png'){const token=this._core.environment.getValue('ACCESS_TOKEN');const apiKey=this._core.environment.getValue('CLIENT_ID');return getURLFromLinks(this.__links,RelType.RENDITION,{size:String(size),type})+`?api_key=${apiKey}&user_token=${token}`;}async restore(){const asset=await this._core.hostAssetContext.getAssetWithCloudID(this._assetId);const isComposite=asset.isComposite;if(isComposite){const href=getURLFromLinks(this.__links,RelType.MANIFEST);if(!this._assetInterface){await this.getAssetInterface();}await this._assetInterface.restoreVersionManifest(href);await asset._load();}else{const target=getURLFromLinks(asset.links,RelType.PRIMARY);await this.copy(target);}}async copy(target){const assetInterface=await this._core.hostAssetContext.repoInterface.resolveById(this._assetId);const asset=await this._core.hostAssetContext.getAssetWithCloudID(this._assetId);const isComposite=asset.isComposite;const source=getURLFromLinks(this.__links,RelType.PRIMARY);if(isComposite){// Copy for composite assets not yet implemented, JIRA: https://jira.corp.adobe.com/browse/ACPCSS-1875
throw new SAMError('NOT_IMPLEMENTED','AssetVersion.copy not implemented for composite assets');}else{const result=await assetInterface.runOperation({op:'copy',id:this._assetId,source:{'href':source,'if-match':'*'},target:{'href':target,'if-match':'*'}});return result;}}async setMilestone(_a){var _b,_c;var{label=((_b=this.milestone)===null||_b===void 0?void 0:_b.label)||'',description=((_c=this.milestone)===null||_c===void 0?void 0:_c.description)||''}=_a;const assetInterface=await this._core.hostAssetContext.repoInterface.resolveById(this._assetId);const jsonParams=[{op:this.milestone?VersionPatchTypes.replace:VersionPatchTypes.add,path:`/children/version=${this.versionId}/milestone`,value:{label,description}}];await assetInterface.patchVersion(jsonParams);const asset=await this._core.hostAssetContext.getAssetWithCloudID(this._assetId);const session=asset._versionPool.createUpdateSession();VersionUpdater.updateLocalItem(session,this,{milestone:{label,description}});session.commit();}async removeMilestone(){if(!this.milestone){return;}const assetInterface=await this._core.hostAssetContext.repoInterface.resolveById(this._assetId);const jsonParams=[{op:VersionPatchTypes.remove,path:`/children/version=${this.versionId}/milestone`}];await assetInterface.patchVersion(jsonParams);const asset=await this._core.hostAssetContext.getAssetWithCloudID(this._assetId);const session=asset._versionPool.createUpdateSession();VersionUpdater.updateLocalItem(session,this,{milestone:{label:''}});session.commit();}}__decorate([observable],AssetVersion.prototype,"versionId",null);__decorate([observable],AssetVersion.prototype,"created",null);__decorate([observable],AssetVersion.prototype,"createdBy",null);__decorate([observable],AssetVersion.prototype,"assetId",null);__decorate([observable],AssetVersion.prototype,"milestone",null);__decorate([observable],AssetVersion.prototype,"links",null);__decorate([observable],AssetVersion.prototype,"getRenditionURL",null);const VersionUpdater=new ItemUpdater({localItemType:AssetVersion,remoteIdProperty:'version',propertyUpdater:new PropertyUpdater({'_createdAt':{name:'created',format:'date'},'_createdBy':'created_by','_label':'milestone.label','_description':'milestone.description','_assetId':'assetId','__links':{name:'_links',format:'object'}})});/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2022 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/class AssetVersionLoader{constructor(_versionPool,_assetInterfacePromise){this._versionPool=_versionPool;this._assetInterfacePromise=_assetInterfacePromise;}async loadPage(options,start){return await this._loadPage(options,start);}async _loadPage(options,start){var _a;const{updateContext,limit}=options;// We will ignore the update if we had local changes sooner than this timestamp.
const latency=this._versionPool._core.environment.getValue('VERSIONS_LIST_UPDATE_LATENCY');const mostRecentValidMutation=Date.now()-latency;const assetInterface=await this._assetInterfacePromise;const result=await assetInterface.getVersions({start,limit});const session=this._versionPool.createUpdateSession(updateContext,mostRecentValidMutation);const versions=result.children.map(version=>Object.assign(Object.assign({},version),{assetId:result['repo:assetId']}));const items=VersionUpdater.updateRemoteItems(session,versions);session.commit();// Check if we have another page to load.
let loadNextPage;const currentCount=result.children.length;// TODO: unit test to ensure this doesn't throw an exception if there are 0 pages
const nextStart=(_a=result.children[currentCount-1])===null||_a===void 0?void 0:_a.created;if(nextStart&&limit&&currentCount===limit){loadNextPage=options=>this._loadPage(options,nextStart);}return{items,total:result.total_children,loadNextPage,mostRecentValidMutation};}}/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2022 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/class FileContentResource extends Resource{constructor(){super(...arguments);this._etag='';}get etag(){return this._etag;}// @package -- only for use inside SAM.js
_setContent(data,etag){this._etag=etag||'';this._setData(data);}async _loadData(){const assetInterface=await this._asset._getAssetInterface();const{content,etag}=await assetInterface.getContent();this._data=content;this._etag=etag||'';}}__decorate([observable],FileContentResource.prototype,"etag",null);/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/var AssetType;(function(AssetType){AssetType[AssetType["Folder"]=256]="Folder";AssetType[AssetType["File"]=512]="File";AssetType[AssetType["Composite"]=1024]="Composite";})(AssetType||(AssetType={}));var AssetSyncStatus;(function(AssetSyncStatus){AssetSyncStatus[AssetSyncStatus["InSync"]=0]="InSync";AssetSyncStatus[AssetSyncStatus["OutOfSync"]=1]="OutOfSync";AssetSyncStatus[AssetSyncStatus["SyncConflict"]=2]="SyncConflict";AssetSyncStatus[AssetSyncStatus["SyncError"]=3]="SyncError";AssetSyncStatus[AssetSyncStatus["Syncing"]=4]="Syncing";})(AssetSyncStatus||(AssetSyncStatus={}));/**
 * Response from the server for the commit request.
 **/var CommitStatus;(function(CommitStatus){CommitStatus[CommitStatus["NoErr"]=0]="NoErr";CommitStatus[CommitStatus["Conflict"]=1]="Conflict";CommitStatus[CommitStatus["DeleteConflict"]=2]="DeleteConflict";CommitStatus[CommitStatus["ParentDeletedConflict"]=3]="ParentDeletedConflict";})(CommitStatus||(CommitStatus={}));const THUMBNAIL_SIZE=512;// matches ACPL/SAM.cpp thumbnail size
// It's unfortunate that SAM uses different constants for asset types than the R-API, but we need to be consistent with SAM-CPP
const assetClassToTypeMap=new Map([['file',AssetType.File],['composite',AssetType.Composite],['directory',AssetType.Folder]// TODO: determine if this is needed, add to JS Bindings & AssetType
// [ 'entity', 'Entity' ]
]);class AdobeAsset extends ShareableItem{constructor(_core,_id,_assetInterface){super(_core,_id);this._core=_core;this._assetInterface=_assetInterface;this._name='';this._etag='';this._repositoryID='';this._path='';this._type='';this._size=0;this._version='';this._assetClass='file';this._assetState='ACTIVE';this._created=new Date();this._modified=new Date();this._createdBy='';this._modifiedBy='';// Assume user has full permissions for any Asset they run across, as it's better to
// err on allowing an action in the UI and have it fail on the service. Sources that
// require permission checks are responsible for ensuring the permissions are set
// appropriately.
this._permissions=Permission.All;this._versionPool=new ItemPool(this._core,'version');// SAM web doesn't support caching yet
this.isAvailableOffline=false;// SAM web doesn't support syncing yet
this.syncStatus=AssetSyncStatus.InSync;this._embeddedMetadata=new EmbeddedMetadataResource(_core,this);this._appMetadata=new AppMetadataResource(_core,this);this._manifest=new ManifestResource(_core,this);this._fileContent=new FileContentResource(_core,this);this._etag=(_assetInterface===null||_assetInterface===void 0?void 0:_assetInterface.etag)||'';this.__links=_assetInterface===null||_assetInterface===void 0?void 0:_assetInterface.links;}_loadWithRetry(){return this._load();}async _getAssetInterface(){if(this._assetInterface===undefined){this._assetInterface=await this._core.hostAssetContext.repoInterface.resolveById(this.id);}return this._assetInterface;}// Called to load the data
async _load(){const assetInterface=await this._getAssetInterface();// TODO: We could also use an If-None-Match: etag when fetching the metadata
const resolutions=await Promise.allSettled([assetInterface.getRepoMetadata(),assetInterface.getEffectivePermissions()]);const[repoMetadata,permissions]=resolutions.map(resolution=>resolution.status==='fulfilled'&&resolution.value);const error=resolutions.map(resolution=>resolution.status==='rejected'&&resolution.reason).find(x=>x);const assetMetadata=repoMetadata||{};if(permissions){assetMetadata.effectivePermission=permissions;}// Check for the asset missing (404) or having restricted access (403)
if(error){if(['NOT_FOUND','ACCESS_DENIED'].includes(error.code)){assetMetadata.effectivePermission=error.code==='ACCESS_DENIED'?Permission.Ack:Permission.None;}else{throw error;}}else{// Refresh any resources that are already loaded
const resourcesToReload=[this._embeddedMetadata,this._appMetadata,this._manifest,this._fileContent].filter(resource=>resource.isLoaded);if(resourcesToReload.length){await Promise.all(resourcesToReload.map(resource=>resource.load()));}}const session=this._core.hostAssetContext.assetPool.createUpdateSession();AdobeAssetUpdater.updateLocalItem(session,this,assetMetadata);session.commit();}get versions(){const loader=new AssetVersionLoader(this._versionPool,this._getAssetInterface());return new ItemSource(this._versionPool,[loader]);}get assetType(){return assetClassToTypeMap.get(this._assetClass);}get isFolder(){return this._assetClass==='directory';}get isFile(){return this._assetClass==='file';}get isComposite(){return this._assetClass==='composite';}get isArtifact(){// if appMetadata isn't loaded, it's not yet known
// Note: uses the public getter so it can use _appMetadataFromListing.
if(!this.appMetadata.data){return undefined;}// if `review:sourceAsset` is present, then it's an Artifact
return!!this.appMetadata.data['review:sourceAsset'];}get name(){// NOTE: includes file extension
return this._name;}get shellVisibility(){return this._shellVisibility;}get extension(){// To match SAM C++, extension does not include the "."
// Do not return extension if file name starts with '.'
if(this.name.lastIndexOf('.')>0){return this.name.substring(this.name.lastIndexOf('.')+1);}else{return'';}}get mediaType(){return this._type;}get cloudID(){return this.id;}get repositoryID(){return this._repositoryID;}get repoPath(){// TODO: Switch to new repo:relativePath once implemented by platform
return this._path;}get created(){return this._created;}get modified(){return this._modified;}get shared(){return this._shared;}get sizeInBytes(){return this._size;}get isDiscarded(){return getRestorePath(this.repoPath)!==undefined||['DISCARDED','DISCARDED_PARENT'].includes(this._assetState);}get assetRefString(){return JSON.stringify({cloud_id:this.cloudID});}get isShared(){return this.isSharedWithMe||this.isSharedByMe;}get isSharedByMe(){return this._isSharedByMe;}get isSharedWithMe(){return this._isSharedWithMe;}get children(){if(!this.isFolder){throw new SAMError('INVALID_ASSET_TYPE','Children list can be fetched only for folder');}const loader=new AdobeAssetDirectoryLoader(this._core.hostAssetContext.assetPool,this);const implicitFilter=new AdobeAssetFilter({asset:this});return new ItemSource(this._core.hostAssetContext.assetPool,[loader],implicitFilter);}searchChildren(deepSearch=false){if(!this.isFolder){throw new SAMError('INVALID_ASSET_TYPE','Children can be searched only in the folder');}const loader=new AdobeAssetDirectorySearchLoader(this._core.hostAssetContext.assetPool,this._core,this._core.hostAssetContext._assetSearchInterface,this);const implicitFilter=new AdobeAssetSearchFilter({asset:this,deepSearch});return new ItemSource(this._core.hostAssetContext.assetPool,[loader],implicitFilter);}/**
     * Discard the asset - this changes its repo:state to DISCARDED, but it's still present as an
     * asset, and can later be restored, or permanently deleted.
     */async discard(){if(this.isDiscarded){throw new SAMError('INVALID_OPERATION','Asset is already discarded');}const assetInterface=await this._getAssetInterface();await assetInterface.discard();await this._loadWithRetry();// Reload the repo metadata
}/**
     * create a Folder asset - this create a empty Folder inside this Folder asset
     * returns the newly created folder asset
     */async createFolder(name,retryOnConflict=false,counter=0){if(!this.isFolder){throw new SAMError('INVALID_OPERATION','Asset is not Folder');}if(!validatePlatformRepoName(name)){throw new SAMError('INVALID_PARAMETER','Invalid name provided for asset create folder operation.');}try{const relativePath=name;const assetInterface=await this._getAssetInterface();const newFolderMetaData=await assetInterface.createFolder(relativePath);if(newFolderMetaData){return this._core.hostAssetContext.getAssetWithMetaData(newFolderMetaData);}return await this._core.hostAssetContext.getAssetWithRepoPath(`${this.repoPath}/${relativePath}`);}catch(error){if(error.code==='CONFLICT'&&retryOnConflict){const formatFileResult=formatFileName(name,this._core.environment.getValue('ASSET_CONFLICT_NAME_FORMAT'),counter+1);return this.createFolder(formatFileResult.newName,retryOnConflict,formatFileResult.countUsed);}throw error;}}/**
     * Imports content as a new file inside of the current folder
     *
     * Returns the newly created asset.
     */async importFile(file,name,mediaType,retryOnConflict=false,counter=0){if(!this.isFolder){throw new SAMError('INVALID_OPERATION','Asset is not Folder');}if(typeof file==='string'){throw new SAMError('INVALID_PARAMETER','Unsupported string for file to import');}if(file.size>5*1024*1024){throw new SAMError('NOT_IMPLEMENTED','Upload for large files not implemented.');}if(!validatePlatformRepoName(name)){throw new SAMError('INVALID_PARAMETER','Invalid name provided for file import operation.');}try{const relativePath=name;const assetInterface=await this._getAssetInterface();const newFileMetaData=await assetInterface.importFile(file,relativePath,mediaType);if(newFileMetaData){return this._core.hostAssetContext.getAssetWithMetaData(newFileMetaData);}return await this._core.hostAssetContext.getAssetWithRepoPath(`${this.repoPath}/${relativePath}`);}catch(error){if(error.code==='CONFLICT'&&retryOnConflict){const formatFileResult=formatFileName(name,this._core.environment.getValue('ASSET_CONFLICT_NAME_FORMAT'),counter+1);return this.importFile(file,formatFileResult.newName,mediaType,retryOnConflict,counter+1);}throw error;}}/**
     * Contents of the file as a binary blob.
     */get fileContent(){if(!this.isFile){throw new SAMError('INVALID_ASSET_TYPE','Cannot get content of an asset that is not a file');}return this._fileContent;}/**
     * Commit the file
     *
     * content are the changes that needs to be committed.
     * localETag is the ETag associated with the file on the server
     * Returns NoErr if successfully committed. Returns Conflict if committing the asset causes a conflict.
     */async commitFileChanges(file,localETag){if(!this.isFile){throw new SAMError('INVALID_OPERATION','Asset is not File');}try{const assetInterface=await this._getAssetInterface();let newFileDetails=await assetInterface.commitFileChanges(file,localETag);if(this._fileContent.isLoaded){this._fileContent._setContent(file,newFileDetails.eTag);}return{status:CommitStatus.NoErr,committedEtag:newFileDetails.eTag};}catch(error){if(error instanceof SAMHttpResponseError){if(error.response.status===412){return{status:CommitStatus.Conflict};}if(error.response.status===404){// The file has been deleted. We need to create a new asset and then provide that to the user.
const parentRepoPath=this.repoPath.substring(0,this.repoPath.lastIndexOf('/'));let parentDeleted=false;const parentAsset=await this._core.hostAssetContext.getAssetWithRepoPath(parentRepoPath,this.repositoryID).catch(error=>{if('NOT_FOUND'===error.code){parentDeleted=true;return undefined;}throw error;});if(parentDeleted){return{status:CommitStatus.ParentDeletedConflict};}const newFile=await(parentAsset===null||parentAsset===void 0?void 0:parentAsset.importFile(file,this.name));return{status:CommitStatus.DeleteConflict,newAsset:newFile};}}throw error;}}/**
     * Restore the asset - can be given an optional name to restore to, otherwise it
     * restores to the previous repo:name of the asset.
     */async restore(name){if(!this.isDiscarded){throw new SAMError('INVALID_OPERATION','Cannot restore an asset that is not discarded');}const restoreLocation=getRestorePath(this.repoPath,name);if(restoreLocation){// If archived rather than discarded, we need to move to the restore location
await this._move(restoreLocation,true);}else{const assetInterface=await this._getAssetInterface();await assetInterface.restore(name);}await this._loadWithRetry();// Reload the repo metadata
}/**
     * Permanently delete the asset
     */async permanentlyDelete(){const resultItems=await this._core.hostAssetContext.permanentlyDeleteAssets([this]);if(resultItems.failedResults.length){throw resultItems.failedResults[0].error;}}// Note - The APIs below aren't present in SAM-CPP:
get etag(){return this._etag;}get version(){return this._version;}get createdBy(){return this._createdBy;}get modifiedBy(){return this._modifiedBy;}get discarded(){return this._discarded;}get discardedBy(){return this._discardedBy;}/**
     * Detect if the user has a specific permission or permissions
     * @param permissions
     * @usage
     *    // single permission check
     *    asset.hasPermission(Permission.Delete);
     *    // multiple
     *    asset.hasPermission(Permission.Write, Permission.Read);
     *    // multiple via bitwise OR
     *    asset.hasPermission(Permission.Write | Permission.Read);
     *    // multiple via spread operator
     *    asset.hasPermission(...permsToCheck);
     */hasPermission(...permissions){return permissions.every(permission=>(this._permissions&permission)===permission);}// SAM-CPP doesn't expose the embedded metadata directly - you need to access it via DCX-CPP. We should port this API
// back to SAM. Since not everybody needs to load the embedded metadata, this returns an object that the user can
// explicitly load.
get embeddedMetadata(){return this._embeddedMetadata;}get appMetadata(){// Use appMetadata from listing if available and not loaded already
if(this._appMetadataFromListing&&!this._appMetadata.data){this._appMetadata._setData(this._appMetadataFromListing);}return this._appMetadata;}get manifest(){if(!this.isComposite){throw new SAMError('INVALID_ASSET_TYPE','Cannot get manifest of an asset that is not a composite');}return this._manifest;}// NOTE: this is only guaranteed to work as advertised on web. Clients writing for desktop and
// web should use `AdobeAsset.thumbnailURL` instead
getRenditionURL(size,type='image/png'){if(this.isFolder){return'';}const token=this._core.environment.getValue('ACCESS_TOKEN');const apiKey=this._core.environment.getValue('CLIENT_ID');try{return getURLFromLinks(this.__links,RelType.RENDITION,{size:String(size),type})+`?api_key=${apiKey}&user_token=${token}`;}catch(e){// Probably caused by missing rendition link in __links
return'';}}get thumbnailURL(){return this.getRenditionURL(THUMBNAIL_SIZE,'image/png');}// Exposes the raw links for the underlying asset. This is so we can share them with clients like Fred, that don't have
// access to SAM (since they're running in a web worker). SAM-CPP doesn't expose this.
get links(){// Make a copy to avoid the client accidentally manipulating the links
return Object.assign({},this.__links);}// Move within the same repository
async _move(newPath,retryOnConflict=false,counter=0){var _a;try{// In case of Asset created from USS response, repo id is not present
// Jira on USS https://jira.corp.adobe.com/browse/SRCH-1989
if(!this._repositoryID){await this._load();}const operation={op:'move',source:{'repo:assetId':this.id,'repo:repositoryId':this._repositoryID},target:{'repo:path':newPath,'repo:repositoryId':this._repositoryID}};const assetInterface=await this._getAssetInterface();const result=await assetInterface.runOperation(operation);let{asset,error,op}=(_a=result[0])!==null&&_a!==void 0?_a:{};if(op!=='move'||!(asset||error)){throw new SAMError('UNEXPECTED_RESPONSE','Unexpected response from move operation');}else if(error){throw error;}return asset;}catch(e){if(e.code==='CONFLICT'&&retryOnConflict){// If we can't restore because an asset already exists with the same name, we append a counter and try again
const formatFileResult=formatFileName(newPath,this._core.environment.getValue('ASSET_CONFLICT_NAME_FORMAT'),counter+1);return this._move(formatFileResult.newName,true,formatFileResult.countUsed);}throw e;}}async _copy(destFolder,destName,retryOnConflict=true,counter=0){let resultOps={failedResults:[],newModels:[]};await ItemBase.runExclusiveTask('copy',[this],async()=>{let targetName=this.name;if(destName!==undefined){if(!validatePlatformRepoName(destName)){throw new SAMError('INVALID_PARAMETER','Invalid name provided for asset copy operation.');}targetName=destName;if(counter){const formatFileResult=formatFileName(targetName,this._core.environment.getValue('ASSET_CONFLICT_NAME_FORMAT'),counter);targetName=formatFileResult.newName;counter=formatFileResult.countUsed;}}else{// check if we are copying in the same folder
// if yes, then it should follow ASSET_COPY_NAME_FORMAT i.e. %@ copy (%d)
// if no and conflict, then it should follow ASSET_CONFLICT_NAME_FORMAT i.e. %@ (%d)
const sameFolder=destFolder.repoPath===this.repoPath.substring(0,this.repoPath.lastIndexOf('/'));const formatFileResult=sameFolder?formatFileName(targetName,this._core.environment.getValue('ASSET_COPY_NAME_FORMAT'),counter):counter>0?formatFileName(targetName,this._core.environment.getValue('ASSET_CONFLICT_NAME_FORMAT'),counter):{newName:targetName,countUsed:counter};targetName=formatFileResult.newName;counter=formatFileResult.countUsed;}const newPath=`${destFolder.repoPath}/${targetName}`;const assetsById=new Map();assetsById.set(this.id,this);if(!destFolder.repositoryID){await destFolder._load();}const ops={op:'copy',id:this.id,source:{'repo:assetId':this.id},target:{'repo:path':newPath,'repo:repositoryId':destFolder.repositoryID}};if(this.repositoryID){const source=ops.source;source['repo:repositoryId']=this.repositoryID;}resultOps=await this._core.hostAssetContext._runOperations([ops],assetsById,(session,asset,remoteItem)=>{if(!remoteItem){throw new SAMError('UNEXPECTED_RESPONSE','Missing metadata from asset copy operation.');}let newAsset=AdobeAssetUpdater.updateRemoteItem(session,remoteItem);return newAsset;});});if(resultOps.failedResults.length){if(resultOps.failedResults[0].error.code==='CONFLICT'&&retryOnConflict===true){return await this._copy(destFolder,destName,retryOnConflict,counter+1);}throw resultOps.failedResults[0].error;}return resultOps.newModels[0];}// Copy within the same repository
async copy(destFolder,destName){return await this._copy(destFolder,destName);}async duplicate(destName){const parentRepoPath=this.repoPath.substring(0,this.repoPath.lastIndexOf('/'));const parentAsset=await this._core.hostAssetContext.getAssetWithRepoPath(parentRepoPath,this.repositoryID);return await this._copy(parentAsset,destName);}async rename(newName){if(!validatePlatformRepoName(newName)){throw new SAMError('INVALID_PARAMETER','Invalid name provided for asset rename operation.');}const newPath=this.repoPath.split('/').slice(0,-1);newPath.push(newName);const newMetadata=await this._move(newPath.join('/'));if(newMetadata){// Update the metadata after a rename, since both name and path have changed
const session=this._core.hostAssetContext.assetPool.createUpdateSession();if(this.isFolder){// make sure we update the repo:path of all the descendants of this folder
this._core.hostAssetContext.assetPool.forEach(item=>{// checking if the item's repoPath starts with the folder's repo:path with '/' appended
// this also rules out the folder itself
if(item.repoPath.startsWith(this.repoPath+'/')){// We need to take care of recursive folders with the same name as well
const newChildPath=item.repoPath.replace(this.repoPath,newPath.join('/'));AdobeAssetUpdater.updateLocalItem(session,item,{'repo:path':newChildPath});}});}AdobeAssetUpdater.updateLocalItem(session,this,newMetadata);session.commit();}}async move(destFolder){const resultItems=await this._core.hostAssetContext.moveAssets([this],destFolder);if(resultItems.failedResults.length){throw resultItems.failedResults[0].error;}}transferToSpace(target){return this._core.hostAssetContext.transfer(this,target);}}__decorate([retry],AdobeAsset.prototype,"_loadWithRetry",null);__decorate([synchronized],AdobeAsset.prototype,"_getAssetInterface",null);__decorate([memoize],AdobeAsset.prototype,"versions",null);__decorate([observable],AdobeAsset.prototype,"assetType",null);__decorate([observable],AdobeAsset.prototype,"isFolder",null);__decorate([observable],AdobeAsset.prototype,"isFile",null);__decorate([observable],AdobeAsset.prototype,"isComposite",null);__decorate([observable],AdobeAsset.prototype,"isArtifact",null);__decorate([observable],AdobeAsset.prototype,"name",null);__decorate([observable],AdobeAsset.prototype,"shellVisibility",null);__decorate([observable],AdobeAsset.prototype,"extension",null);__decorate([observable],AdobeAsset.prototype,"mediaType",null);__decorate([observable],AdobeAsset.prototype,"cloudID",null);__decorate([observable],AdobeAsset.prototype,"repositoryID",null);__decorate([observable],AdobeAsset.prototype,"repoPath",null);__decorate([observable],AdobeAsset.prototype,"created",null);__decorate([observable],AdobeAsset.prototype,"modified",null);__decorate([observable],AdobeAsset.prototype,"shared",null);__decorate([observable],AdobeAsset.prototype,"sizeInBytes",null);__decorate([observable],AdobeAsset.prototype,"isDiscarded",null);__decorate([observable],AdobeAsset.prototype,"assetRefString",null);__decorate([observable],AdobeAsset.prototype,"isShared",null);__decorate([observable],AdobeAsset.prototype,"isSharedByMe",null);__decorate([observable],AdobeAsset.prototype,"isSharedWithMe",null);__decorate([memoize],AdobeAsset.prototype,"children",null);__decorate([observable],AdobeAsset.prototype,"etag",null);__decorate([observable],AdobeAsset.prototype,"version",null);__decorate([observable],AdobeAsset.prototype,"createdBy",null);__decorate([observable],AdobeAsset.prototype,"modifiedBy",null);__decorate([observable],AdobeAsset.prototype,"discarded",null);__decorate([observable],AdobeAsset.prototype,"discardedBy",null);__decorate([observable],AdobeAsset.prototype,"hasPermission",null);__decorate([observable],AdobeAsset.prototype,"appMetadata",null);__decorate([observable],AdobeAsset.prototype,"getRenditionURL",null);__decorate([observable],AdobeAsset.prototype,"thumbnailURL",null);__decorate([observable],AdobeAsset.prototype,"links",null);function getShellVisibilityFromRepo(source){const{_embedded}=source;if(!_embedded){return'';}const appMetadata=_embedded[RelType.APP_METADATA];if(!appMetadata){return'';}// return '' instead of 'undefined'
if(!appMetadata['shell:visibility']){return'';}return appMetadata['shell:visibility'];}function getPermission(source){var _a;// from Asset._load()
if(source.effectivePermission!==undefined){return source.effectivePermission;}if((_a=source._embedded)===null||_a===void 0?void 0:_a[RelType.AC_EFFECTIVE]){return parseEffectivePermissions(source._embedded[RelType.AC_EFFECTIVE]);}// If Loader didn't request embedded permissions from the service, assume that
// permissions aren't needed because the current user is expected to have full
// permissions.
return Permission.All;}const AdobeAssetUpdater=new ItemUpdater({localItemType:AdobeAsset,remoteIdProperty:'repo:assetId',propertyUpdater:new PropertyUpdater({'_name':'repo:name','_etag':'repo:etag','_repositoryID':'repo:repositoryId','_path':'repo:path','_type':'dc:format','_size':{name:'repo:size',format:'number'},'_version':'repo:version','_assetClass':{name:'repo:assetClass',choices:AssetClassChoices},'_assetState':{name:'repo:state',choices:AssetStateChoices},'_created':{name:'storage:deviceCreateDate',format:'date'},'_modified':{name:'storage:deviceModifyDate',format:'date'},'_discarded':{name:'repo:discardDate',format:'date'},'_createdBy':'repo:createdBy','_modifiedBy':'repo:modifiedBy','_discardedBy':'repo:discardedBy','_permissions':{get:getPermission,format:'number'},'_isSharedByMe':{name:'isSharedByMe',format:'boolean'},'_shellVisibility':{get:getShellVisibilityFromRepo,choices:ShellVisibilityChoices,format:'string'},'__links':{name:'_links',format:'object'}})});function getSWYValue(source){if(source.sharedViaInvite||source.ownership_types&&source.ownership_types.includes('shared_with_me')){return true;}return undefined;}function getUSSAssetType(source){// uss type is 'application/x-sharedcloud-collection+json' for directory
// changing it to standard mime directory type to abstract it for SAM clients
if(source.type==='application/x-sharedcloud-collection+json'){return'application/vnd.adobecloud.directory+json';}return source.type;}function getUSSAssetClass(source){// for directories, asset_sub_type is not present in USS response
if(source.type==='application/x-sharedcloud-collection+json'||source.type==='application/vnd.adobecloud.directory+json'){return'directory';}return source.asset_sub_type;}// USS result item does not contain asset name in path, to keep it sync with repo path
// received from RAPI, we will add asset name in asset path while creating/updating asset
// from USS result
function getAssetPath(source){if(source.asset_name_path&&source.asset_name){return path.join(source.asset_name_path,source.asset_name);}return source.asset_name_path||source.asset_name||'';}const USSAdobeAssetUpdater=new ItemUpdater({localItemType:AdobeAsset,remoteIdProperty:'asset_id',propertyUpdater:new PropertyUpdater({'_name':'asset_name','_etag':'composite_manifest_etag','_repositoryID':'repository_id','_path':{get:getAssetPath,format:'string'},'_type':{get:getUSSAssetType,format:'string'},'_size':{name:'size',format:'number'},'_version':'repo:version','_assetClass':{get:getUSSAssetClass,choices:AssetClassChoices,format:'string'},'_permissions':{get:getPermission,format:'number'},'_appMetadataFromListing':{name:'app_metadata',format:'object'},'_created':{name:'create_date',format:'date'},'_modified':{name:'modify_date',format:'date'},'_createdBy':'creative_cloud_creator_id','_isSharedWithMe':{get:getSWYValue,format:'boolean'},'_shellVisibility':{name:'app_metadata.shell:visibility',choices:ShellVisibilityChoices,format:'string'},'__links':{name:'_links',format:'object'}})});/*************************************************************************
 *   ADOBE CONFIDENTIAL
 *
 *   Copyright 2022 Adobe
 *   All Rights Reserved.
 *
 *   NOTICE:  All information contained herein is, and remains
 *   the property of Adobe and its suppliers, if any. The intellectual
 *   and technical concepts contained herein are proprietary to Adobe
 *   and its suppliers and are protected by all applicable intellectual
 *   property laws, including trade secret and copyright laws.
 *   Dissemination of this information or reproduction of this material
 *   is strictly forbidden unless prior written permission is obtained
 *   from Adobe.
 **************************************************************************/const DEFAULT_LIMIT=50;/**
 * AdobeAsset Loader classes should use this class to do the page loading. Using composition rather
 * than inheritance because a base USSLoader class was causing circular dependencies at runtime that
 * would cause the base USSLoader class to be undefined when the Loader class that was extending it
 * was declared.
 */class USSLoaderHelper{constructor(_assetPool,_core,_loader){this._assetPool=_assetPool;this._core=_core;this._loader=_loader;}async loadPage(options,start){var _a,_b;const{updateContext,order,limit=DEFAULT_LIMIT,filter}=options;const latency=this._core.environment.getValue('ASSETS_LIST_UPDATE_LATENCY');const mostRecentValidMutation=Date.now()-latency;start=start||0;const{mediaTypes,excludeMediaTypes}=this.getMediaTypesFromFilter(filter);const result=await this._loader._getUSSResults({updateContext,order,limit,filter,start,mediaTypes,excludeMediaTypes});const resultSet=result.result_sets[0];const session=this._assetPool.createUpdateSession(updateContext,mostRecentValidMutation);const items=USSAdobeAssetUpdater.updateRemoteItems(session,// allow Loader to provide additional item metadata (optional)
resultSet.items.map(item=>{var _a,_b;return((_b=(_a=this._loader)._getItemData)===null||_b===void 0?void 0:_b.call(_a,item))||item;}));session.commit();let loadNextPage;const total=resultSet.total_items||0;const pageItemCount=resultSet.items.length;// [SEARCH-30755] -- May be caused by USS filtering out items due to permissions for the
// current user, which aren't subtracted from the total. Try to ensure that the Loader paginates
// as though the total_items is correct.
const nextStartIndex=pageItemCount===0?start+limit:start+pageItemCount;if(nextStartIndex<total){loadNextPage=options=>this.loadPage(options,nextStartIndex);}const page={items,total,loadNextPage,mostRecentValidMutation};// allow Loader to do additional internal state management (optional)
(_b=(_a=this._loader)._postProcessPage)===null||_b===void 0?void 0:_b.call(_a,options,page);return page;}getMediaTypesFromFilter(filter){var _a,_b,_c,_d,_e,_f;if(!filter){return{mediaTypes:[],excludeMediaTypes:[]};}// merge mediaTypes from all filters, without duplicates
const mediaTypes=new Set();const excludeMediaTypes=new Set();if(filter instanceof AdobeAssetFilterBase){((_a=filter.mediaTypes)!==null&&_a!==void 0?_a:[]).forEach(type=>mediaTypes.add(type));((_b=filter.excludeMediaTypes)!==null&&_b!==void 0?_b:[]).forEach(type=>excludeMediaTypes.add(type));}else if(filter instanceof ConjuctionFilter){if(filter.filterA instanceof AdobeAssetFilterBase){((_c=filter.filterA.mediaTypes)!==null&&_c!==void 0?_c:[]).forEach(type=>mediaTypes.add(type));((_d=filter.filterA.excludeMediaTypes)!==null&&_d!==void 0?_d:[]).forEach(type=>excludeMediaTypes.add(type));}if(filter.filterB instanceof AdobeAssetFilterBase){((_e=filter.filterB.mediaTypes)!==null&&_e!==void 0?_e:[]).forEach(type=>mediaTypes.add(type));((_f=filter.filterB.excludeMediaTypes)!==null&&_f!==void 0?_f:[]).forEach(type=>excludeMediaTypes.add(type));}}return{mediaTypes:Array.from(mediaTypes),excludeMediaTypes:Array.from(excludeMediaTypes)};}}/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2022 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/class SWYAdobeAssetLoader{constructor(assetPool,core,_swyInterface){this._swyInterface=_swyInterface;this._ussLoaderHelper=new USSLoaderHelper(assetPool,core,this);}supportsFilter(filter){// If we don't provide a filter at all, then we cannot use the loader
return filter!==undefined;}async loadPage(options){return this._ussLoaderHelper.loadPage(options);}// @package -- only for use by USSLoaderHelper
async _getUSSResults({start,limit,mediaTypes,excludeMediaTypes,order}){return this._swyInterface.getSWYAssets({orderBy:OrderFieldToISWYAdobeAssetOrderBy[order.field],orderDirection:order.direction,start,limit,mediaTypes,excludeMediaTypes,embedPermissions:true});}// @package -- only for use by USSLoaderHelper
_getItemData(item){return Object.assign(Object.assign({},item),{sharedViaInvite:true});}}/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2022 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/function updateAssetTypeForUSS(type){// directories in uss contain mime type 'application/x-sharedcloud-collection+json'
// adding it to the list if clients wants to search for directories
if(type===null||type===void 0?void 0:type.find(item=>{return item==='application/vnd.adobecloud.directory+json';})){type.push('application/x-sharedcloud-collection+json');}}/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2022 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/const DefaultSBMAssetsListingOptions={orderDirection:'descending',orderBy:'shared_date',start:0,limit:0};function getDirectionValue$4(userOptions){const directionFlag=userOptions.orderDirection==='ascending'?'asc':'desc';return directionFlag;}class SBMInterface extends InterfaceBase{async getSharedByMeAssets(parentId,options){options=Object.assign(Object.assign({},DefaultSBMAssetsListingOptions),options);updateAssetTypeForUSS(options.type);let filters={hints:{acp_platform_v2:true},'fetch_fields':{'includes':['collab_metadata$$collaborators']},'storage:assignee$$type':['user'],op_none_of:[{'app_metadata$$shell:visibility':'hiddenSelf'}],parent_id:[parentId],[SearchProps.TYPE]:options.type||[],asset_id_opacity:true,sort_orderby:options.orderBy,sort_order:getDirectionValue$4(options),limit:options.limit,start_index:options.start};const response=await this._core.hostAssetContext.ussInterface.getQueryResponse(filters);return response;}}/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2022 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/const DefaultSWYAssetsListingOptions={orderDirection:'descending',orderBy:'shared_date',start:0,limit:0,mediaTypes:[],excludeMediaTypes:[]};function getDirectionValue$3(userOptions){const directionFlag=userOptions.orderDirection==='ascending'?'asc':'desc';return directionFlag;}class SWYInterface extends InterfaceBase{async getSWYAssets(options){options=Object.assign(Object.assign({},DefaultSWYAssetsListingOptions),options);updateAssetTypeForUSS(options.mediaTypes);updateAssetTypeForUSS(options.excludeMediaTypes);let filters={shared_via_invite:true,hints:{acp_platform_v2:true},[SearchProps.STORAGE_ASSIGNEE_TYPE]:['user'],asset_id_opacity:true,op_none_of:[{op_field_exists:['app_metadata$$cc:inheritable$$cc:team$$repo:assetId','app_metadata$$cc:inherited$$cc:team$$repo:assetId']},{[SearchProps.VISIBLITY]:['hiddenSelf','hiddenRecursive']},{[SearchProps.CREATIVE_CLOUD_TOPLEVEL_COLLECTION_NAME]:'appdata'},{[SearchProps.TYPE]:options.excludeMediaTypes||[]}],[SearchProps.TYPE]:options.mediaTypes||[],sort_orderby:options.orderBy,sort_order:getDirectionValue$3(options),limit:options.limit,start_index:options.start};if(options.embedPermissions){filters.fetch_fields={includes:['_embedded']};}const response=await this._core.hostAssetContext.ussInterface.getQueryResponse(filters);return response;}}/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2022 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/const DefaultAssetsListingSearchOptions={orderDirection:'descending',orderBy:'modify_date',start:0,limit:0};function getDirectionValue$2(userOptions){const directionFlag=userOptions.orderDirection==='ascending'?'asc':'desc';return directionFlag;}class AdobeAssetSearchInterface extends InterfaceBase{async getFilteredAssets(options){options=Object.assign(Object.assign({},DefaultAssetsListingSearchOptions),options);updateAssetTypeForUSS(options.mediaTypes);updateAssetTypeForUSS(options.excludeMediaTypes);let filters=Object.assign(Object.assign(Object.assign({hints:{acp_platform_v2:true},fetch_fields:{includes:['app_metadata']},[SearchProps.STORAGE_ASSIGNEE_TYPE]:['user'],asset_id_opacity:true,op_none_of:[{op_field_exists:['app_metadata$$cc:inheritable$$cc:team$$repo:assetId','app_metadata$$cc:inherited$$cc:team$$repo:assetId']},{[SearchProps.VISIBLITY]:['hiddenSelf','hiddenRecursive']},{[SearchProps.CREATIVE_CLOUD_TOPLEVEL_COLLECTION_NAME]:'appdata'},{[SearchProps.TYPE]:options.excludeMediaTypes||[]}]},options.assetId?Object.assign({},options.deepSearch?{container:{'asset_id':[options.assetId]}}:{parent_id:[options.assetId]}):{}),{[SearchProps.TYPE]:options.mediaTypes||[],sort_orderby:options.orderBy,sort_order:getDirectionValue$2(options),limit:options.limit,start_index:options.start}),options.query?{q:options.query}:{});const response=await this._core.hostAssetContext.ussInterface.getQueryResponse(filters);return response;}}/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2022 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/class AdobeAssetGlobalSearchFilter extends AdobeAssetFilterBase{constructor(options){super({mediaTypes:options===null||options===void 0?void 0:options.mediaTypes,excludeMediaTypes:options===null||options===void 0?void 0:options.excludeMediaTypes});this._query=options===null||options===void 0?void 0:options.query;}get hash(){return[super.hash,this.query?`query=${this._query}`:undefined].filter(x=>x).join(':');}get query(){return this._query;}// The matching rules USS are deceptively complex, and could change over time. Attempting to
// replicate here could result in items being incorrectly filtered out or incorrectly included.
// Global search Lists should not try to share items from Lists with similar queries, other
// than treating the queries as case-insensitve.
matches(item){return super.matches(item);}getRelationToFilter(other){var _a,_b;if(!(other instanceof AdobeAssetGlobalSearchFilter)){return'disjoint';}if(((_a=this.query)===null||_a===void 0?void 0:_a.toLowerCase())!==((_b=other.query)===null||_b===void 0?void 0:_b.toLowerCase())){return'disjoint';}return super.getRelationToFilter(other);}}/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2022 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/class AdobeAssetGlobalSearchLoader{constructor(assetPool,core,_adobeAssetGlobalSearchInterface){this._adobeAssetGlobalSearchInterface=_adobeAssetGlobalSearchInterface;this._ussLoaderHelper=new USSLoaderHelper(assetPool,core,this);}supportsFilter(filter){// If we don't provide a filter at all, then we cannot use the loader
return filter!==undefined;}async loadPage(options){return this._ussLoaderHelper.loadPage(options);}// @package -- only for use by USSLoaderHelper
_getUSSResults({start,limit,order,filter,mediaTypes,excludeMediaTypes}){let query;if(filter instanceof AdobeAssetGlobalSearchFilter){query=filter.query;}return this._adobeAssetGlobalSearchInterface.getFilteredAssets({orderBy:OrderFieldToIUSSAdobeAssetOrderBy[order.field],orderDirection:order.direction,start,limit,mediaTypes,excludeMediaTypes,query,embedPermissions:true});}}/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2022 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/const DefaultAssetsListingGlobalSearchOptions={orderDirection:'descending',orderBy:'modify_date',start:0,limit:0};function getDirectionValue$1(userOptions){const directionFlag=userOptions.orderDirection==='ascending'?'asc':'desc';return directionFlag;}class AdobeAssetGlobalSearchInterface extends InterfaceBase{async getFilteredAssets(options){options=Object.assign(Object.assign({},DefaultAssetsListingGlobalSearchOptions),options);updateAssetTypeForUSS(options.mediaTypes);updateAssetTypeForUSS(options.excludeMediaTypes);let filters=Object.assign({hints:{acp_platform_v2:true},[SearchProps.STORAGE_ASSIGNEE_TYPE]:['user'],asset_id_opacity:true,op_none_of:[{op_field_exists:['app_metadata$$cc:inheritable$$cc:team$$repo:assetId','app_metadata$$cc:inherited$$cc:team$$repo:assetId']},{[SearchProps.VISIBLITY]:['hiddenSelf','hiddenRecursive']},{[SearchProps.CREATIVE_CLOUD_TOPLEVEL_COLLECTION_NAME]:'appdata'},{[SearchProps.TYPE]:options.excludeMediaTypes||[]}],[SearchProps.TYPE]:options.mediaTypes||[],sort_orderby:options.orderBy,sort_order:getDirectionValue$1(options),limit:options.limit,start_index:options.start},options.query?{q:options.query}:{});if(options.embedPermissions){filters.fetch_fields={includes:['_embedded']};}const response=await this._core.hostAssetContext.ussInterface.getQueryResponse(filters);return response;}}/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2022 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/const DefaultRecentAssetsListingOptions={start:0,limit:0,mediaTypes:[],excludeMediaTypes:[]};class RecentInterface extends InterfaceBase{async getRecentAssets(options){options=Object.assign(Object.assign({},DefaultRecentAssetsListingOptions),options);updateAssetTypeForUSS(options.mediaTypes);updateAssetTypeForUSS(options.excludeMediaTypes);let filters={scope:['creative_cloud'],hints:{acp_platform_v2:true},asset_id_opacity:true,// should not give order given by client in this request
// because Recent assets mean descending direction of modified date
sort_orderby:'modify_date',sort_order:'desc',limit:options.limit,start_index:options.start,[SearchProps.TYPE]:options.mediaTypes||[],op_none_of:[{[SearchProps.FIELD_EXISTS]:['app_metadata$$cc:inheritable$$cc:team$$repo:assetId','app_metadata$$cc:inherited$$cc:team$$repo:assetId']},{[SearchProps.VISIBLITY]:['hiddenSelf','hiddenRecursive']},{[SearchProps.CREATIVE_CLOUD_TOPLEVEL_COLLECTION_NAME]:'appdata'},{[SearchProps.TYPE]:options.excludeMediaTypes||[]}],op_or:[{[SearchProps.STORAGE_ASSIGNEE_ID]:this._core.environment.getValue('USER_ID')},{[SearchProps.SHARED_VIA_INVITE]:true}]};if(options.embedPermissions){filters.fetch_fields={includes:['_embedded']};}const response=await this._core.hostAssetContext.ussInterface.getQueryResponse(filters);return response;}}/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2022 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/class AssetTransferInterface extends InterfaceBase{async transfer(data){const links=await this.discoverLinks();const response=await this._doPost(getURLFromLinks(links,RelType.ATS_MOVE),{'Content-Type':'application/json'},JSON.stringify(data),[200]);// Asset Transfer Service will return a 200 response when a dependent service fails.
const json=await response.json();if(json.status&&json.status!==200){throw new SAMHttpResponseError('UNEXPECTED_RESPONSE','',response);}// Returns the transferred asset's Cloud ID.
return json.assetId;}async discoverLinks(){const response=await this._getResponse(this.getUrl('/'));return response._links;}getUrl(endpoint){return`https://${this._core.environment.endpoints.TRANSFER_SERVICE_HOST}${endpoint}`;}}/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/const reloadSpace=Symbol('reloadSpace');const clearLastReloadError=Symbol('clearLastReloadError');/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2022 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/class SpaceSearchAssetFilter extends AdobeAssetFilterBase{constructor(options){super({mediaTypes:options===null||options===void 0?void 0:options.mediaTypes,_includeHiddenRecursive:options===null||options===void 0?void 0:options._includeHiddenRecursive});this._asset=options===null||options===void 0?void 0:options.asset;this.artifactFilter=options===null||options===void 0?void 0:options.artifactFilter;}get hash(){var _a;return[// include 'spaceSearch' so a match on hash can only happen
// for other spaceSearch lists
'spaceSearch',(_a=this._asset)===null||_a===void 0?void 0:_a.id,this.artifactFilter,super.hash].filter(x=>x).join(':');}matches(item){var _a;// check if item is a descendant of the space/working Files folder
if(((_a=this._asset)===null||_a===void 0?void 0:_a.repoPath)&&!item.repoPath.startsWith(`${this._asset.repoPath}/`)){return false;}// check item meets artifactFilter criteria
if(item.isArtifact&&this.artifactFilter==='excludeArtifacts'){return false;}if(!item.isArtifact&&this.artifactFilter==='onlyArtifacts'){return false;}return super.matches(item);}getRelationToFilter(other){var _a,_b;if(!(other instanceof SpaceSearchAssetFilter)){return'disjoint';}const repoPath=(_a=this._asset)===null||_a===void 0?void 0:_a.repoPath;const otherRepoPath=(_b=other._asset)===null||_b===void 0?void 0:_b.repoPath;if(repoPath&&otherRepoPath&&!repoPath.startsWith(`${otherRepoPath}/`)&&!otherRepoPath.startsWith(`${repoPath}/`)){// no overlap in descendants
return'disjoint';}if(this.artifactFilter&&other.artifactFilter&&this.artifactFilter!==other.artifactFilter){// mutually exclusive artifactFilter
return'disjoint';}const mediaTypeRelation=super.getRelationToFilter(other);if(mediaTypeRelation==='disjoint'){return'disjoint';}//----- All 'disjoint' cases must be handled above this line
if(mediaTypeRelation==='unknown'){// This filter shares some, but not all of the mediaTypes of other. They
// could overlap, but can't know for sure.
return'unknown';}if(!repoPath&&otherRepoPath){// This list isn't filtered by asset's path, but the other could contain
// some of this list's items, but possibly not all of them.
return'unknown';}if(repoPath&&otherRepoPath&&repoPath.startsWith(`${otherRepoPath}/`)){// This asset is a descendant of the other's, so it could have
// some of the other's items, but possibly not all of them.
return'unknown';}if(!this.artifactFilter&&other.artifactFilter){// This list isn't filtered by Artifact status, but the other is.
// It could have some
return'unknown';}//------ All 'unknown' cases must be handled above this line
// Since the filters can't be 'disjoint', there must be some overlap, leaving
// only 'unknown' and 'subset' as a possibility. Since all 'unknown' cases have
// been eliminated, the only remaining possibility is 'subset'.
return'subset';}}SpaceSearchAssetFilter.default=new SpaceSearchAssetFilter({mediaTypes:[]});/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2022 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/class SpaceSearchAssetLoader{constructor(assetPool,core,_asset,_ussInterface,_artifactFilter,_embedPermissions=false){this._asset=_asset;this._ussInterface=_ussInterface;this._artifactFilter=_artifactFilter;this._embedPermissions=_embedPermissions;this._ussLoaderHelper=new USSLoaderHelper(assetPool,core,this);}supportsFilter(filter){let supported;const supportedFilters=[];if(filter instanceof ConjuctionFilter){supported=filter.filterA instanceof SpaceSearchAssetFilter&&filter.filterB instanceof SpaceSearchAssetFilter;if(supported){supportedFilters.push(filter.filterA);supportedFilters.push(filter.filterB);}}else{supported=filter instanceof SpaceSearchAssetFilter;if(supported){supportedFilters.push(filter);}}if(!supported){throw new SAMError('INVALID_PARAMETER','Unsupported filter supplied for Space search');}// Client can call getList with SpaceSearchAssetFilter.artifactFilter undefined, but can't pass
// SSAF.artifactFilter that doesn't match this._artifactFilter
if(!supportedFilters.every(f=>f.artifactFilter===this._artifactFilter||f.artifactFilter===undefined)){throw new SAMError('INVALID_PARAMETER','SpaceSearchAssetFilter.artifactFilter does not match SpaceSearchAssetLoader.artifactFilter');}return supported;}loadPage(options){return this._ussLoaderHelper.loadPage(options);}// @package -- only for use by USSLoaderHelper
async _getUSSResults({start,limit,order,mediaTypes}){return this._ussInterface.searchSpace(this._asset.id,this._artifactFilter==='onlyArtifacts',this._embedPermissions,{type:mediaTypes,sort_orderby:OrderByToUSSOrderBy[order.field],sort_order:order.direction==='descending'?'desc':'asc',limit,start_index:start});}// @package -- only for use by USSLoaderHelper
_getItemData(item){// TODO: Patching should be removed once https://jira.corp.adobe.com/browse/SRCH-1989 is fixed
return Object.assign(Object.assign({},item),{repository_id:this._asset.repositoryID});}}/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/const TeamRoles=['UNKNOWN','NONE','MEMBER'];const SpaceAccessChoices=['private','team'];const SpaceRoleChoices=['NONE','CONTRIBUTOR','REVIEWER'];const SpaceStates=['active','archived','in_progress'];/// Represents the notion of a "space" where multiple Adobe account holders collaborate
class Space extends ShareableItem{constructor(){super(...arguments);this._name='';this._repositoryID='';this._repositoryName='';this._pathName='';this._created=new Date();this._modified=new Date();this._contributorCount=0;this._role='NONE';this._color='';this._isBookmarked=false;this._teamID='';this._teamName='';this._thumbnail='';this._access='private';this._etag='';this._version=0;this._state='active';this._loadedGeneration=0;// Note that we maintain this flag based on where the item was loaded from.
// Spaces loaded via the teamAccess=false API will have teamRole='NONE', all other
// spaces will assume a 'UNKNOWN' role until they are updated with the correct role
// on the client side.
this._teamRole='UNKNOWN';}/// The unique id that represents the space.
get spaceID(){return this.id;}/// The user-visible name assigned to the space.
get name(){return this._name;}get access(){return this._access;}get etag(){return this._etag;}get state(){return this._state;}/// The unique id of the repository that owns this space.
get repositoryID(){return this._repositoryID;}/// The user-visible name of the repository (i.e. the organization name) that owns this space.
get repositoryName(){return this._repositoryName;}/// The full path name for the space (e.g. "/content/assets/Everyone/Test Space").
get pathName(){return this._pathName;}/// The created date of the space, relative to 00:00:00 UTC on Jan 1, 1970.
get created(){return this._created;}/// The modified date of the space, relative to 00:00:00 UTC on Jan 1, 1970.
get modified(){return this._modified;}/// Total number of contributors for this space. Any groups that are added as a Contributor
/// count as 1 toward this total.
get contributorCount(){return this._contributorCount;}/// Role on the space for the current user.
get role(){return this._role;}/// The color assigned to the space.
get color(){return this._color;}/// Indicates whether the space is bookmarked (i.e. followed) by the current user.
get isBookmarked(){return this._isBookmarked;}/// The teamID of the parent team.
get teamID(){return this._teamID;}/// The user-visible name of the parent team.
get teamName(){return this._teamName;}/// Description of the space.
get description(){return this._description;}/// Thumbnail URL of the space.
get thumbnail(){return this._thumbnail;}get version(){return this._version;}get teamRole(){return this._teamRole;}get _links(){return this.__links;}async ensureDescription(){var _a;if(this._description===undefined){await this.load({refreshTimeout:-1});}return(_a=this.description)!==null&&_a!==void 0?_a:'';}async getChild(name){var _a;if(!this._children){// Retrieve the children of the space if needed.
await this.load({refreshTimeout:-1});}return(_a=this._children)===null||_a===void 0?void 0:_a.get(name);}// Only used for 1-Off Invitees.
// Memoized so the same Source and its Lists can be reused.
async searchWorkingFiles(){var _a;// SAM.cpp AssetContext doesn't expose assetPool/ussInterface, so need to fall back to the JS impl
// of AssetContext when present.
const assetContext=(_a=this._core._AssetContextJS)!==null&&_a!==void 0?_a:this._core.hostAssetContext;const{assetPool,ussInterface}=assetContext;const workingFilesFolder=await assetContext.getAssetWithRepoPath(`${this.pathName}/working_files`,this.repositoryID);const spaceSearchAssetLoader=new SpaceSearchAssetLoader(assetPool,this._core,workingFilesFolder,ussInterface,'excludeArtifacts',true// always include permissions for 1-off invitees
);const implicitFilter=new SpaceSearchAssetFilter({asset:workingFilesFolder,artifactFilter:'excludeArtifacts'});return new ItemSource(assetPool,[spaceSearchAssetLoader],implicitFilter);}// All Space members should use `searchArtifacts(false)`, as the UI can assume the user has
// full permissions. For 1-Off Invitees, use `searchArtifacts(true)`
// Memoized so the same Source and its Lists can be reused -- note that this means you
// cannot switch between embedPermissions = true and = false.
async searchArtifacts(embedPermissions=false){var _a;// SAM.cpp AssetContext doesn't expose assetPool/ussInterface, so need to fall back to the JS impl
// of AssetContext when present.
const assetContext=(_a=this._core._AssetContextJS)!==null&&_a!==void 0?_a:this._core.hostAssetContext;const{assetPool,ussInterface}=assetContext;const spaceAdobeAsset=await assetContext.getAssetWithCloudID(this.id);const spaceSearchAssetLoader=new SpaceSearchAssetLoader(assetPool,this._core,spaceAdobeAsset,ussInterface,'onlyArtifacts',embedPermissions);const implicitFilter=new SpaceSearchAssetFilter({asset:spaceAdobeAsset,artifactFilter:'onlyArtifacts',// Some artifacts may be in hidden folders
_includeHiddenRecursive:true});return new ItemSource(assetPool,[spaceSearchAssetLoader],implicitFilter);}async getWorkingFiles(){// Assuming repo path of working_files rather than getting it via discovery so it is compatible
// with SAM.cpp AssetContext. When all of Spaces can be handled in SAM.cpp, this should switch back
// to using discovery.
// const workingFiles = await this.getChild('working_files');
// if (!workingFiles) {
//     throw new SAMError('NOT_FOUND', 'could not load working_files');
// }
// const folder = await this._core.hostAssetContext.getAssetWithCloudID(workingFiles.id);
const folder=await this._core.hostAssetContext.getAssetWithRepoPath(`${this.pathName}/working_files`,this.repositoryID);return folder.children;}async load(options){var _a;const refreshTimeout=options===null||options===void 0?void 0:options.refreshTimeout;let lastReload=this._lastReload;const canReuseLastReload=lastReload&&(// The previous load is still pending execution, so we could reuse the same call.
lastReload.pending// Just wanted to do at least one load.
||refreshTimeout===-1// Just in case the data didn't expire already.
||refreshTimeout&&lastReload.requestTime+refreshTimeout>Date.now());if(!canReuseLastReload){// Otherwise let's load the space again.
// Note that generation of reloads, we want to make sure that only the very last reload
// gets a chance to update the space.
lastReload=this._lastReload={pending:true,inProgress:true,generation:((_a=lastReload===null||lastReload===void 0?void 0:lastReload.generation)!==null&&_a!==void 0?_a:this._loadedGeneration)+1,requestTime:Date.now(),promise:new Promise((resolve,reject)=>{// Wait until the loop ends to avoid multiple queries on the same data.
setTimeout(()=>this._executeReload(lastReload).finally(()=>lastReload.error?reject(lastReload.error):resolve()),0);})};// Notify the users we have a new loading session.
this.dispatch(SharedChangeEvent);}await lastReload.promise;}async _executeReload(reload){if(reload!==this._lastReload){// The same reload will be used inside the load method up to the point when we actually execute the request.
// However, there's a case when the `clearLastReloadError` was used while we were waiting. in the setTimeout above.
// In that case we can just avoid fetching the request entirely.
assert(!reload.pending,'The pending flag must be false after the reload was cleared out.');return;}// Make a note that the request was executed.
reload.pending=false;try{await this._core.spaceContext[reloadSpace](this);}catch(error){reload.error=error;}// Check if the asset was removed. We will want to remove it from the lists.
reload.inProgress=false;const lastReload=this._lastReload;if(lastReload!==reload&&reload.generation<=this._loadedGeneration){// This result is older than a newer request that was already applied to this object.
// Ignore the results. This can happen if a particular request takes longer to execute
// and a new reload was already good to go.
return;}if(reload.error instanceof SAMError&&reload.error.code==='NOT_FOUND'){const session=this._core.spaceContext.spacePool.createUpdateSession();session.queueDiscardedItem(this);session.commit();}// Notify about the end of the load sequence.
this.dispatch(SharedChangeEvent);}/**
     * If the item gets updated through the listing API then we need to clear any errors from the previous reload.
     * This usually happens if the user gets re-invited to a space while the space is still in memory.
     * At that point, we need to clear the previous error when the listing API detects the new space.
     */[clearLastReloadError](){const lastReload=this._lastReload;if(lastReload===null||lastReload===void 0?void 0:lastReload.error){lastReload.error=undefined;// Setting pending to false to be able to track it inside `_executeReload` above.
lastReload.pending=false;this.dispatch(SharedChangeEvent);}}get isReloading(){var _a,_b;return(_b=(_a=this._lastReload)===null||_a===void 0?void 0:_a.inProgress)!==null&&_b!==void 0?_b:false;}get lastReloadError(){var _a;return(_a=this._lastReload)===null||_a===void 0?void 0:_a.error;}async update(data){await this._core.spaceContext.updateSpace(this,data);}async rename(newName){await this._core.spaceContext.updateSpace(this,{name:newName});}async archive(){const resultItems=await this._core.spaceContext.archiveSpaces([this]);if(resultItems.failedResults.length){throw resultItems.failedResults[0].error;}}async restore(name){let nameMap;if(name!==undefined){nameMap=new Map();nameMap.set(this,name);}const resultItems=await this._core.spaceContext.restoreSpaces([this],nameMap);if(resultItems.failedResults.length){throw resultItems.failedResults[0].error;}}}__decorate([observable],Space.prototype,"name",null);__decorate([observable],Space.prototype,"access",null);__decorate([observable],Space.prototype,"etag",null);__decorate([observable],Space.prototype,"state",null);__decorate([observable],Space.prototype,"repositoryID",null);__decorate([observable],Space.prototype,"repositoryName",null);__decorate([observable],Space.prototype,"pathName",null);__decorate([observable],Space.prototype,"created",null);__decorate([observable],Space.prototype,"modified",null);__decorate([observable],Space.prototype,"contributorCount",null);__decorate([observable],Space.prototype,"role",null);__decorate([observable],Space.prototype,"color",null);__decorate([observable],Space.prototype,"isBookmarked",null);__decorate([observable],Space.prototype,"teamID",null);__decorate([observable],Space.prototype,"teamName",null);__decorate([observable],Space.prototype,"description",null);__decorate([observable],Space.prototype,"thumbnail",null);__decorate([observable],Space.prototype,"version",null);__decorate([observable],Space.prototype,"teamRole",null);__decorate([observable],Space.prototype,"_links",null);__decorate([memoize],Space.prototype,"searchWorkingFiles",null);__decorate([memoize],Space.prototype,"searchArtifacts",null);__decorate([memoize],Space.prototype,"getWorkingFiles",null);__decorate([observable],Space.prototype,"isReloading",null);__decorate([observable],Space.prototype,"lastReloadError",null);const SpaceChildFormat={parse:value=>{return{id:value.id,_links:value._links};},isEqual:(a,b)=>{return a.id===b.id&&isDeepEqual(a._links,b._links);}};const SpaceUpdater=new ItemUpdater({localItemType:Space,remoteIdProperty:'id',propertyUpdater:new PropertyUpdater({'_name':'name','_access':{name:'access',choices:SpaceAccessChoices},'_etag':'etag','_repositoryID':'repositoryId','_repositoryName':'repositoryName','_pathName':'pathName','_created':{name:'createdDate',format:'date'},'_modified':{name:'modifiedDate',format:'date'},'_contributorCount':{name:'contributorCount',format:'number'},'_role':{name:'role',choices:SpaceRoleChoices},'_color':{name:'color'},'_isBookmarked':{name:'bookmarked',format:'boolean'},'_teamID':'teamId','_teamName':'teamName','_description':'description','_thumbnail':'thumbnail','_children':{name:'children',mapByKey:'name',format:SpaceChildFormat},'_version':{name:'version',format:'number'},'_teamRole':{name:'teamRole',choices:TeamRoles},'_state':{name:'state',choices:SpaceStates},'__links':{name:'_links',format:'object'}})});/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2022 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/class RecentAdobeAssetFilter extends AdobeAssetFilterBase{constructor(options){super({mediaTypes:options===null||options===void 0?void 0:options.mediaTypes,excludeMediaTypes:options===null||options===void 0?void 0:options.excludeMediaTypes});}get hash(){return super.hash;}matches(item){if(this._lastModificationDate&&item.modified<this._lastModificationDate){return false;}return super.matches(item);}getRelationToFilter(other){var _a,_b;if(!(other instanceof RecentAdobeAssetFilter)){return'disjoint';}const otherAdobeAssetFilter=other;if(((_a=this._lastModificationDate)===null||_a===void 0?void 0:_a.valueOf())!==((_b=otherAdobeAssetFilter._lastModificationDate)===null||_b===void 0?void 0:_b.valueOf())){return'disjoint';}return super.getRelationToFilter(other);}}/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2022 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/class RecentAdobeAssetLoader{constructor(assetPool,_core,_recentInterface){this._core=_core;this._recentInterface=_recentInterface;this._ussLoaderHelper=new USSLoaderHelper(assetPool,_core,this);}supportsFilter(filter){// If we don't provide a filter at all, then we cannot use the loader
return filter!==undefined;}async loadPage(options){return this._ussLoaderHelper.loadPage(options);}// @package -- only for use by USSLoaderHelper
async _getUSSResults({start,limit,mediaTypes,excludeMediaTypes}){return this._recentInterface.getRecentAssets({start,limit,mediaTypes,excludeMediaTypes,embedPermissions:true});}// @package -- only for use by USSLoaderHelper
_getItemData(item){var _a;return Object.assign(Object.assign({},item),{sharedViaInvite:((_a=item['storage:assignee'])===null||_a===void 0?void 0:_a.id)!==this._core.environment.getValue('USER_ID')});}// @package -- only for use by USSLoaderHelper
_postProcessPage(loaderOptions,page){const{filter}=loaderOptions;const{items}=page;const implicitFilter=filter instanceof RecentAdobeAssetFilter?filter:filter.filterA;// update modification time of last asset on implicit filter (assets are already sorted by modification time),
// so that these items can be matched with this filter in ItemLoaderState before adding them in ItemLoaderState._pages
if(items.length){implicitFilter._lastModificationDate=items[items.length-1].modified;}}}/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/class AssetContext{constructor(_core){this._core=_core;this._rapi=new RepositoryInterface(this._core);this._invitationService=new InvitationInterface(this._core);this._USSInterface=new USSInterface(this._core);this._SBMInterface=new SBMInterface(this._core);this._SWYInterface=new SWYInterface(this._core);this._RecentInterface=new RecentInterface(this._core);this._adobeAssetSearchInterface=new AdobeAssetSearchInterface(this._core);this._adobeAssetGlobalSearchInterface=new AdobeAssetGlobalSearchInterface(this._core);this._assetPool=new ItemPool(this._core,'asset');this._assetTransferService=new AssetTransferInterface(this._core);}get repoInterface(){return this._rapi;}get ussInterface(){return this._USSInterface;}get sbmInterface(){return this._SBMInterface;}get swyInterface(){return this._SWYInterface;}get recentInterface(){return this._RecentInterface;}get invitationInterface(){return this._invitationService;}get _assetSearchInterface(){return this._adobeAssetSearchInterface;}get _globalSearchInterface(){return this._adobeAssetGlobalSearchInterface;}get assetPool(){return this._assetPool;}get sharedSource(){const{hostAssetContext}=this._core;const swyloader=new SWYAdobeAssetLoader(hostAssetContext.assetPool,this._core,hostAssetContext.swyInterface);return new ItemSource(this.assetPool,[swyloader]);}get recentAssetsSource(){const{hostAssetContext}=this._core;const recentAssetsLoader=new RecentAdobeAssetLoader(hostAssetContext.assetPool,this._core,hostAssetContext.recentInterface);return new ItemSource(this.assetPool,[recentAssetsLoader],new RecentAdobeAssetFilter());}get globalSearchAssetsSource(){const globalSearchLoader=new AdobeAssetGlobalSearchLoader(this._core.hostAssetContext.assetPool,this._core,this._core.hostAssetContext._adobeAssetGlobalSearchInterface);return new ItemSource(this.assetPool,[globalSearchLoader]);}async _getAssetById(assetId,assetInterface){let asset=this._assetPool.getLocalItemById(assetId);if(asset){// Even if the asset is cached, we refresh the data so it's kept up-to-date
// (This could be optimized using notifications, but currently we only register change notifications for AssetLinks)
// Optimization - if we already have an assetInterface, only reload if the etag doesn't match the cached one
if(!assetInterface||assetInterface.etag!==asset.etag){// If the reload fails, we still return the asset but schedule a retry - that's equivalent to using the
// cached data for the asset (e.g. if go offline), and having the asset update later.
await asset._loadWithRetry();}return asset;}// Asset isn't cached - need to fetch it
if(!assetInterface){assetInterface=await this._rapi.resolveById(assetId);}asset=new AdobeAsset(this._core,assetId,assetInterface);// We don't retry on the initial load - if there's an error this will be propagated to the client
await asset._load();const session=this._assetPool.createUpdateSession();session.queueAddedItem(asset);session.commit();return asset;}async getRootFolder(){const homeDirectoryMetadata=await this._rapi.getHomeDirectoryMetadata();const repositoryId=homeDirectoryMetadata['repo:repositoryId'];let userContentRootFolderPath=homeDirectoryMetadata['repo:path'];const assetInterface=await this._rapi.resolveByPath(repositoryId,userContentRootFolderPath);return this._getAssetById(assetInterface.assetID,assetInterface);}async getUserRepoID(){return this.getRootFolder().then(asset=>asset.repositoryID);}async getAssetWithCloudID(assetId,confirmAccess=false){if(confirmAccess){await this._invitationService.confirmAccess(assetId);}return this._getAssetById(assetId);}// This API assumes path is relative path if repositoryId is not privided
// and path will be appended with user's content root folder path.
// If repositoryId is provided by clients then this API assumes path will
// also be exact path.
async getAssetWithRepoPath(assetPath,repositoryId){if(!repositoryId){const homeDirectoryMetadata=await this._rapi.getHomeDirectoryMetadata();repositoryId=homeDirectoryMetadata['repo:repositoryId'];const userContentRootFolder=homeDirectoryMetadata['repo:path'];assetPath=path.join(userContentRootFolder,assetPath);}const assetInterface=await this._rapi.resolveByPath(repositoryId,assetPath);return this._getAssetById(assetInterface.assetID,assetInterface);}// including confirmAccess to match Seal bindings.
// eslint-disable-next-line @typescript-eslint/no-unused-vars
async getAssetWithAssetRefString(assetRefStr,confirmAccess=false){let parsedAssetRef;try{parsedAssetRef=JSON.parse(assetRefStr);}catch(error){throw new SAMError('INVALID_PARAMETER','Incorrectly formatted AssetRefString');}if(parsedAssetRef.cloud_id){return this.getAssetWithCloudID(parsedAssetRef.cloud_id,confirmAccess);}else if(parsedAssetRef.path){return this.getAssetWithRepoPath(parsedAssetRef.path,parsedAssetRef.repository_id);}else if(parsedAssetRef.local_id){return this.getAssetWithLocalID(parsedAssetRef.local_id);}else{throw new SAMError('INVALID_DATA','Invalid AssetRefString');}}// eslint-disable-next-line @typescript-eslint/no-unused-vars
async getAssetWithLocalID(localId){throw AssetContext.createMissingImplementationError();}getAssetWithMetaData(assetMetaData){const session=this._assetPool.createUpdateSession();const localItem=AdobeAssetUpdater.updateRemoteItem(session,assetMetaData);session.commit();return localItem;}removeAssetsFromAssetsPool(assetIds){this._assetPool.removeLocalItems(assetIds);}async permanentlyDeleteAssets(assets){let assetResults;// If client wll try to resolve permanently deleted assets, SAM should not return the cached assets
// from asset pool. Hence removing permanently deleted assets from asset pool.
const onItemsChanged=event=>{// Remove only successfully permanently deleted items from asset pool.
if(event.discardedItems){const permanentDeletedAssetsIds=event.discardedItems.filter(value=>assets.includes(value)).map(item=>item.id);if(permanentDeletedAssetsIds.length){this.removeAssetsFromAssetsPool(permanentDeletedAssetsIds);}}};// ITEMS_CHANGED event is triggered from item pool for all update/mutate sessions.
// This event will be triggered by other sessions (sessions other than the session
// created by this peermanent delete operation) also. But in onItemsChanged we will
// remove assets which were added in this session.
this._assetPool.on(ITEMS_CHANGED,onItemsChanged);try{await ItemBase.runExclusiveTask('delete',assets,async()=>{const assetsById=new Map();const ops=assets.map(asset=>{assetsById.set(asset.id,asset);let deleteOp={op:'delete',id:asset.id,target:{'repo:assetId':asset.id}};// repository id is optional field in target here
// because target is specified by assetId
if(asset.repositoryID){const target=deleteOp.target;target['repo:repositoryId']=asset.repositoryID;}deleteOp.recursive=asset.isFolder;return deleteOp;});assetResults=await this._runOperations(ops,assetsById,(session,asset)=>{session.queueDiscardedItem(asset);return undefined;});});}finally{this._assetPool.off(ITEMS_CHANGED,onItemsChanged);}return assetResults;}// The methods below are left empty intentionally. These signatures are used by the Seal bindings implementation
// of Sam, but have no equivalent functionality in the js implementation of Sam.
async release(){}async appDidEnterBackground(){}async appWillEnterForeground(){}async appWillTerminate(){}// eslint-disable-next-line @typescript-eslint/no-unused-vars
async pauseSyncing(pause){missingImplementationWarning('AssetContext#pauseSyncing');}async purgeCache(){missingImplementationWarning('AssetContext#purgeCache');}static createMissingImplementationError(){return new SAMError('NOT_IMPLEMENTED','operation not relevant for Js implementation of SamJs');}async transfer(source,target){let targetId;if(target instanceof Space){const workingFiles=await target.getChild('working_files');if(!workingFiles){throw new SAMError('NOT_FOUND','unable to find working_files for provided space');}targetId=workingFiles.id;}else{targetId=target.cloudID;}const payload={source:{assetId:source.cloudID,repositoryId:source.repositoryID},target:{assetId:targetId,repositoryId:target.repositoryID}};const response=await this._assetTransferService.transfer(payload);const updater=this.assetPool.createUpdateSession();updater.queueDiscardedItem(source);updater.commit();return response;}// Move within the same repository
async _moveAssets(assets,destFolder,retryOnConflict=true,assetConflictMap){let resultOps={failedResults:[],newModels:[]};await ItemBase.runExclusiveTask('move',assets,async()=>{// In case of Asset created from USS response, repo id is not present
// Jira on USS https://jira.corp.adobe.com/browse/SRCH-1989
if(!destFolder.repositoryID){await destFolder._load();}if(assetConflictMap===undefined){assetConflictMap=new Map();}const assetsById=new Map();const ops=assets.map(asset=>{assetsById.set(asset.id,asset);let newPath=`${destFolder.repoPath}/${asset.name}`;newPath=batchFormatFileName(this._core,asset.id,newPath,false,assetConflictMap);let op={op:'move',id:asset.id,source:{'repo:assetId':asset.id},target:{'repo:path':newPath,'repo:repositoryId':destFolder.repositoryID}};if(asset.repositoryID){const source=op.source;source['repo:repositoryId']=asset.repositoryID;}return op;});resultOps=await this._runOperations(ops,assetsById);});if(retryOnConflict){return await this._retryFailedOpsDueToConflict(resultOps,destFolder,assetConflictMap,this._moveAssets.bind(this));}return resultOps;}// Move within the same repository
async moveAssets(assets,destFolder){return this._moveAssets(assets,destFolder);}async _copyAssets(assets,destFolder,retryOnConflict=true,assetConflictMap){let resultOps={failedResults:[],newModels:[]};await ItemBase.runExclusiveTask('copy',assets,async()=>{// In case of Asset created from USS response, repo id is not present
// Jira on USS https://jira.corp.adobe.com/browse/SRCH-1989
if(!destFolder.repositoryID){await destFolder._load();}if(assetConflictMap===undefined){assetConflictMap=new Map();}const assetsById=new Map();const ops=assets.map(asset=>{assetsById.set(asset.id,asset);let newPath=`${destFolder.repoPath}/${asset.name}`;const sameFolder=destFolder.repoPath===asset.repoPath.substring(0,asset.repoPath.lastIndexOf('/'));newPath=batchFormatFileName(this._core,asset.id,newPath,sameFolder,assetConflictMap);const operation={op:'copy',id:asset.id,source:{'repo:assetId':asset.id},target:{'repo:path':newPath,'repo:repositoryId':destFolder.repositoryID}};if(asset.repositoryID){const source=operation.source;source['repo:repositoryId']=asset.repositoryID;}return operation;});resultOps=await this._runOperations(ops,assetsById,(session,asset,remoteItem)=>{if(!remoteItem){throw new SAMError('UNEXPECTED_RESPONSE','Missing metadata from asset bulk operation.');}let newAsset=AdobeAssetUpdater.updateRemoteItem(session,remoteItem);return newAsset;});});if(retryOnConflict){return await this._retryFailedOpsDueToConflict(resultOps,destFolder,assetConflictMap,this._copyAssets.bind(this));}return resultOps;}async copyAssets(assets,destFolder){return await this._copyAssets(assets,destFolder);}async duplicateAssets(assets){const parentRepoPath=assets[0].repoPath.substring(0,assets[0].repoPath.lastIndexOf('/'));const parentAsset=await this._core.hostAssetContext.getAssetWithRepoPath(parentRepoPath,assets[0].repositoryID);return await this._copyAssets(assets,parentAsset);}async _runOperations(ops,assetsById,assetUpdater){return await this._rapi.runOperationsForContext(ops,assetsById,this._assetPool,assetUpdater?assetUpdater:(session,asset,updatedAssetMetaData)=>{if(!updatedAssetMetaData){throw new SAMError('UNEXPECTED_RESPONSE','Missing metadata from asset bulk operation.');}AdobeAssetUpdater.updateLocalItem(session,asset,updatedAssetMetaData);return undefined;},[{// If remote asset found to be 'ACCESS_DENIED' or 'NOT_FOUND'
// that means we need to update local asset to get it in sync with remote
match:error=>error.code==='ACCESS_DENIED'||error.code==='NOT_FOUND',action:async(asset,error)=>{await asset._load();return{model:asset,error};}}]);}async _retryFailedOpsDueToConflict(resultOps,destFolder,assetConflictMap,callback){const failedAssetsDueToConflict=[];const otherFailedOps=[];resultOps.failedResults.forEach(failedOp=>{if(failedOp.error.code==='CONFLICT'){failedAssetsDueToConflict.push(failedOp.model);}else{otherFailedOps.push(failedOp);}});if(failedAssetsDueToConflict.length){for(const[key,value]of assetConflictMap){assetConflictMap.set(key,{newName:value.newName,countUsed:value.countUsed+1});}const newResultOps=await callback(failedAssetsDueToConflict,destFolder,true,assetConflictMap);newResultOps.failedResults=[...newResultOps.failedResults,...otherFailedOps];newResultOps.newModels=[...newResultOps.newModels,...resultOps.newModels];return newResultOps;}return resultOps;}}__decorate([synchronized,__param(0,key)],AssetContext.prototype,"_getAssetById",null);__decorate([memoize],AssetContext.prototype,"getUserRepoID",null);/**
 * @author Toru Nagashima <https://github.com/mysticatea>
 * @copyright 2015 Toru Nagashima. All rights reserved.
 * See LICENSE file in root directory for full license.
 */ /**
 * @typedef {object} PrivateData
 * @property {EventTarget} eventTarget The event target.
 * @property {{type:string}} event The original event object.
 * @property {number} eventPhase The current event phase.
 * @property {EventTarget|null} currentTarget The current event target.
 * @property {boolean} canceled The flag to prevent default.
 * @property {boolean} stopped The flag to stop propagation.
 * @property {boolean} immediateStopped The flag to stop propagation immediately.
 * @property {Function|null} passiveListener The listener if the current listener is passive. Otherwise this is null.
 * @property {number} timeStamp The unix time.
 * @private
 */ /**
 * Private data for event wrappers.
 * @type {WeakMap<Event, PrivateData>}
 * @private
 */const privateData=new WeakMap();/**
 * Cache for wrapper classes.
 * @type {WeakMap<Object, Function>}
 * @private
 */const wrappers=new WeakMap();/**
 * Get private data.
 * @param {Event} event The event object to get private data.
 * @returns {PrivateData} The private data of the event.
 * @private
 */function pd(event){const retv=privateData.get(event);console.assert(retv!=null,"'this' is expected an Event object, but got",event);return retv;}/**
 * https://dom.spec.whatwg.org/#set-the-canceled-flag
 * @param data {PrivateData} private data.
 */function setCancelFlag(data){if(data.passiveListener!=null){if(typeof console!=="undefined"&&typeof console.error==="function"){console.error("Unable to preventDefault inside passive event listener invocation.",data.passiveListener);}return;}if(!data.event.cancelable){return;}data.canceled=true;if(typeof data.event.preventDefault==="function"){data.event.preventDefault();}}/**
 * @see https://dom.spec.whatwg.org/#interface-event
 * @private
 */ /**
 * The event wrapper.
 * @constructor
 * @param {EventTarget} eventTarget The event target of this dispatching.
 * @param {Event|{type:string}} event The original event to wrap.
 */function Event(eventTarget,event){privateData.set(this,{eventTarget,event,eventPhase:2,currentTarget:eventTarget,canceled:false,stopped:false,immediateStopped:false,passiveListener:null,timeStamp:event.timeStamp||Date.now()});// https://heycam.github.io/webidl/#Unforgeable
Object.defineProperty(this,"isTrusted",{value:false,enumerable:true});// Define accessors
const keys=Object.keys(event);for(let i=0;i<keys.length;++i){const key=keys[i];if(!(key in this)){Object.defineProperty(this,key,defineRedirectDescriptor(key));}}}// Should be enumerable, but class methods are not enumerable.
Event.prototype={/**
     * The type of this event.
     * @type {string}
     */get type(){return pd(this).event.type;},/**
     * The target of this event.
     * @type {EventTarget}
     */get target(){return pd(this).eventTarget;},/**
     * The target of this event.
     * @type {EventTarget}
     */get currentTarget(){return pd(this).currentTarget;},/**
     * @returns {EventTarget[]} The composed path of this event.
     */composedPath(){const currentTarget=pd(this).currentTarget;if(currentTarget==null){return[];}return[currentTarget];},/**
     * Constant of NONE.
     * @type {number}
     */get NONE(){return 0;},/**
     * Constant of CAPTURING_PHASE.
     * @type {number}
     */get CAPTURING_PHASE(){return 1;},/**
     * Constant of AT_TARGET.
     * @type {number}
     */get AT_TARGET(){return 2;},/**
     * Constant of BUBBLING_PHASE.
     * @type {number}
     */get BUBBLING_PHASE(){return 3;},/**
     * The target of this event.
     * @type {number}
     */get eventPhase(){return pd(this).eventPhase;},/**
     * Stop event bubbling.
     * @returns {void}
     */stopPropagation(){const data=pd(this);data.stopped=true;if(typeof data.event.stopPropagation==="function"){data.event.stopPropagation();}},/**
     * Stop event bubbling.
     * @returns {void}
     */stopImmediatePropagation(){const data=pd(this);data.stopped=true;data.immediateStopped=true;if(typeof data.event.stopImmediatePropagation==="function"){data.event.stopImmediatePropagation();}},/**
     * The flag to be bubbling.
     * @type {boolean}
     */get bubbles(){return Boolean(pd(this).event.bubbles);},/**
     * The flag to be cancelable.
     * @type {boolean}
     */get cancelable(){return Boolean(pd(this).event.cancelable);},/**
     * Cancel this event.
     * @returns {void}
     */preventDefault(){setCancelFlag(pd(this));},/**
     * The flag to indicate cancellation state.
     * @type {boolean}
     */get defaultPrevented(){return pd(this).canceled;},/**
     * The flag to be composed.
     * @type {boolean}
     */get composed(){return Boolean(pd(this).event.composed);},/**
     * The unix time of this event.
     * @type {number}
     */get timeStamp(){return pd(this).timeStamp;},/**
     * The target of this event.
     * @type {EventTarget}
     * @deprecated
     */get srcElement(){return pd(this).eventTarget;},/**
     * The flag to stop event bubbling.
     * @type {boolean}
     * @deprecated
     */get cancelBubble(){return pd(this).stopped;},set cancelBubble(value){if(!value){return;}const data=pd(this);data.stopped=true;if(typeof data.event.cancelBubble==="boolean"){data.event.cancelBubble=true;}},/**
     * The flag to indicate cancellation state.
     * @type {boolean}
     * @deprecated
     */get returnValue(){return!pd(this).canceled;},set returnValue(value){if(!value){setCancelFlag(pd(this));}},/**
     * Initialize this event object. But do nothing under event dispatching.
     * @param {string} type The event type.
     * @param {boolean} [bubbles=false] The flag to be possible to bubble up.
     * @param {boolean} [cancelable=false] The flag to be possible to cancel.
     * @deprecated
     */initEvent(){// Do nothing.
}};// `constructor` is not enumerable.
Object.defineProperty(Event.prototype,"constructor",{value:Event,configurable:true,writable:true});// Ensure `event instanceof window.Event` is `true`.
if(typeof window!=="undefined"&&typeof window.Event!=="undefined"){Object.setPrototypeOf(Event.prototype,window.Event.prototype);// Make association for wrappers.
wrappers.set(window.Event.prototype,Event);}/**
 * Get the property descriptor to redirect a given property.
 * @param {string} key Property name to define property descriptor.
 * @returns {PropertyDescriptor} The property descriptor to redirect the property.
 * @private
 */function defineRedirectDescriptor(key){return{get(){return pd(this).event[key];},set(value){pd(this).event[key]=value;},configurable:true,enumerable:true};}/**
 * Get the property descriptor to call a given method property.
 * @param {string} key Property name to define property descriptor.
 * @returns {PropertyDescriptor} The property descriptor to call the method property.
 * @private
 */function defineCallDescriptor(key){return{value(){const event=pd(this).event;return event[key].apply(event,arguments);},configurable:true,enumerable:true};}/**
 * Define new wrapper class.
 * @param {Function} BaseEvent The base wrapper class.
 * @param {Object} proto The prototype of the original event.
 * @returns {Function} The defined wrapper class.
 * @private
 */function defineWrapper(BaseEvent,proto){const keys=Object.keys(proto);if(keys.length===0){return BaseEvent;}/** CustomEvent */function CustomEvent(eventTarget,event){BaseEvent.call(this,eventTarget,event);}CustomEvent.prototype=Object.create(BaseEvent.prototype,{constructor:{value:CustomEvent,configurable:true,writable:true}});// Define accessors.
for(let i=0;i<keys.length;++i){const key=keys[i];if(!(key in BaseEvent.prototype)){const descriptor=Object.getOwnPropertyDescriptor(proto,key);const isFunc=typeof descriptor.value==="function";Object.defineProperty(CustomEvent.prototype,key,isFunc?defineCallDescriptor(key):defineRedirectDescriptor(key));}}return CustomEvent;}/**
 * Get the wrapper class of a given prototype.
 * @param {Object} proto The prototype of the original event to get its wrapper.
 * @returns {Function} The wrapper class.
 * @private
 */function getWrapper(proto){if(proto==null||proto===Object.prototype){return Event;}let wrapper=wrappers.get(proto);if(wrapper==null){wrapper=defineWrapper(getWrapper(Object.getPrototypeOf(proto)),proto);wrappers.set(proto,wrapper);}return wrapper;}/**
 * Wrap a given event to management a dispatching.
 * @param {EventTarget} eventTarget The event target of this dispatching.
 * @param {Object} event The event to wrap.
 * @returns {Event} The wrapper instance.
 * @private
 */function wrapEvent(eventTarget,event){const Wrapper=getWrapper(Object.getPrototypeOf(event));return new Wrapper(eventTarget,event);}/**
 * Get the immediateStopped flag of a given event.
 * @param {Event} event The event to get.
 * @returns {boolean} The flag to stop propagation immediately.
 * @private
 */function isStopped(event){return pd(event).immediateStopped;}/**
 * Set the current event phase of a given event.
 * @param {Event} event The event to set current target.
 * @param {number} eventPhase New event phase.
 * @returns {void}
 * @private
 */function setEventPhase(event,eventPhase){pd(event).eventPhase=eventPhase;}/**
 * Set the current target of a given event.
 * @param {Event} event The event to set current target.
 * @param {EventTarget|null} currentTarget New current target.
 * @returns {void}
 * @private
 */function setCurrentTarget(event,currentTarget){pd(event).currentTarget=currentTarget;}/**
 * Set a passive listener of a given event.
 * @param {Event} event The event to set current target.
 * @param {Function|null} passiveListener New passive listener.
 * @returns {void}
 * @private
 */function setPassiveListener(event,passiveListener){pd(event).passiveListener=passiveListener;}/**
 * @typedef {object} ListenerNode
 * @property {Function} listener
 * @property {1|2|3} listenerType
 * @property {boolean} passive
 * @property {boolean} once
 * @property {ListenerNode|null} next
 * @private
 */ /**
 * @type {WeakMap<object, Map<string, ListenerNode>>}
 * @private
 */const listenersMap=new WeakMap();// Listener types
const CAPTURE=1;const BUBBLE=2;const ATTRIBUTE=3;/**
 * Check whether a given value is an object or not.
 * @param {any} x The value to check.
 * @returns {boolean} `true` if the value is an object.
 */function isObject(x){return x!==null&&typeof x==="object";//eslint-disable-line no-restricted-syntax
}/**
 * Get listeners.
 * @param {EventTarget} eventTarget The event target to get.
 * @returns {Map<string, ListenerNode>} The listeners.
 * @private
 */function getListeners(eventTarget){const listeners=listenersMap.get(eventTarget);if(listeners==null){throw new TypeError("'this' is expected an EventTarget object, but got another value.");}return listeners;}/**
 * Get the property descriptor for the event attribute of a given event.
 * @param {string} eventName The event name to get property descriptor.
 * @returns {PropertyDescriptor} The property descriptor.
 * @private
 */function defineEventAttributeDescriptor(eventName){return{get(){const listeners=getListeners(this);let node=listeners.get(eventName);while(node!=null){if(node.listenerType===ATTRIBUTE){return node.listener;}node=node.next;}return null;},set(listener){if(typeof listener!=="function"&&!isObject(listener)){listener=null;// eslint-disable-line no-param-reassign
}const listeners=getListeners(this);// Traverse to the tail while removing old value.
let prev=null;let node=listeners.get(eventName);while(node!=null){if(node.listenerType===ATTRIBUTE){// Remove old value.
if(prev!==null){prev.next=node.next;}else if(node.next!==null){listeners.set(eventName,node.next);}else{listeners.delete(eventName);}}else{prev=node;}node=node.next;}// Add new value.
if(listener!==null){const newNode={listener,listenerType:ATTRIBUTE,passive:false,once:false,next:null};if(prev===null){listeners.set(eventName,newNode);}else{prev.next=newNode;}}},configurable:true,enumerable:true};}/**
 * Define an event attribute (e.g. `eventTarget.onclick`).
 * @param {Object} eventTargetPrototype The event target prototype to define an event attrbite.
 * @param {string} eventName The event name to define.
 * @returns {void}
 */function defineEventAttribute(eventTargetPrototype,eventName){Object.defineProperty(eventTargetPrototype,`on${eventName}`,defineEventAttributeDescriptor(eventName));}/**
 * Define a custom EventTarget with event attributes.
 * @param {string[]} eventNames Event names for event attributes.
 * @returns {EventTarget} The custom EventTarget.
 * @private
 */function defineCustomEventTarget(eventNames){/** CustomEventTarget */function CustomEventTarget(){EventTarget.call(this);}CustomEventTarget.prototype=Object.create(EventTarget.prototype,{constructor:{value:CustomEventTarget,configurable:true,writable:true}});for(let i=0;i<eventNames.length;++i){defineEventAttribute(CustomEventTarget.prototype,eventNames[i]);}return CustomEventTarget;}/**
 * EventTarget.
 *
 * - This is constructor if no arguments.
 * - This is a function which returns a CustomEventTarget constructor if there are arguments.
 *
 * For example:
 *
 *     class A extends EventTarget {}
 *     class B extends EventTarget("message") {}
 *     class C extends EventTarget("message", "error") {}
 *     class D extends EventTarget(["message", "error"]) {}
 */function EventTarget(){/*eslint-disable consistent-return */if(this instanceof EventTarget){listenersMap.set(this,new Map());return;}if(arguments.length===1&&Array.isArray(arguments[0])){return defineCustomEventTarget(arguments[0]);}if(arguments.length>0){const types=new Array(arguments.length);for(let i=0;i<arguments.length;++i){types[i]=arguments[i];}return defineCustomEventTarget(types);}throw new TypeError("Cannot call a class as a function");/*eslint-enable consistent-return */}// Should be enumerable, but class methods are not enumerable.
EventTarget.prototype={/**
     * Add a given listener to this event target.
     * @param {string} eventName The event name to add.
     * @param {Function} listener The listener to add.
     * @param {boolean|{capture?:boolean,passive?:boolean,once?:boolean}} [options] The options for this listener.
     * @returns {void}
     */addEventListener(eventName,listener,options){if(listener==null){return;}if(typeof listener!=="function"&&!isObject(listener)){throw new TypeError("'listener' should be a function or an object.");}const listeners=getListeners(this);const optionsIsObj=isObject(options);const capture=optionsIsObj?Boolean(options.capture):Boolean(options);const listenerType=capture?CAPTURE:BUBBLE;const newNode={listener,listenerType,passive:optionsIsObj&&Boolean(options.passive),once:optionsIsObj&&Boolean(options.once),next:null};// Set it as the first node if the first node is null.
let node=listeners.get(eventName);if(node===undefined){listeners.set(eventName,newNode);return;}// Traverse to the tail while checking duplication..
let prev=null;while(node!=null){if(node.listener===listener&&node.listenerType===listenerType){// Should ignore duplication.
return;}prev=node;node=node.next;}// Add it.
prev.next=newNode;},/**
     * Remove a given listener from this event target.
     * @param {string} eventName The event name to remove.
     * @param {Function} listener The listener to remove.
     * @param {boolean|{capture?:boolean,passive?:boolean,once?:boolean}} [options] The options for this listener.
     * @returns {void}
     */removeEventListener(eventName,listener,options){if(listener==null){return;}const listeners=getListeners(this);const capture=isObject(options)?Boolean(options.capture):Boolean(options);const listenerType=capture?CAPTURE:BUBBLE;let prev=null;let node=listeners.get(eventName);while(node!=null){if(node.listener===listener&&node.listenerType===listenerType){if(prev!==null){prev.next=node.next;}else if(node.next!==null){listeners.set(eventName,node.next);}else{listeners.delete(eventName);}return;}prev=node;node=node.next;}},/**
     * Dispatch a given event.
     * @param {Event|{type:string}} event The event to dispatch.
     * @returns {boolean} `false` if canceled.
     */dispatchEvent(event){if(event==null||typeof event.type!=="string"){throw new TypeError('"event.type" should be a string.');}// If listeners aren't registered, terminate.
const listeners=getListeners(this);const eventName=event.type;let node=listeners.get(eventName);if(node==null){return true;}// Since we cannot rewrite several properties, so wrap object.
const wrappedEvent=wrapEvent(this,event);// This doesn't process capturing phase and bubbling phase.
// This isn't participating in a tree.
let prev=null;while(node!=null){// Remove this listener if it's once
if(node.once){if(prev!==null){prev.next=node.next;}else if(node.next!==null){listeners.set(eventName,node.next);}else{listeners.delete(eventName);}}else{prev=node;}// Call this listener
setPassiveListener(wrappedEvent,node.passive?node.listener:null);if(typeof node.listener==="function"){try{node.listener.call(this,wrappedEvent);}catch(err){if(typeof console!=="undefined"&&typeof console.error==="function"){console.error(err);}}}else if(node.listenerType!==ATTRIBUTE&&typeof node.listener.handleEvent==="function"){node.listener.handleEvent(wrappedEvent);}// Break if `event.stopImmediatePropagation` was called.
if(isStopped(wrappedEvent)){break;}node=node.next;}setPassiveListener(wrappedEvent,null);setEventPhase(wrappedEvent,0);setCurrentTarget(wrappedEvent,null);return!wrappedEvent.defaultPrevented;}};// `constructor` is not enumerable.
Object.defineProperty(EventTarget.prototype,"constructor",{value:EventTarget,configurable:true,writable:true});// Ensure `eventTarget instanceof window.EventTarget` is `true`.
if(typeof window!=="undefined"&&typeof window.EventTarget!=="undefined"){Object.setPrototypeOf(EventTarget.prototype,window.EventTarget.prototype);}/**
 * @author Toru Nagashima <https://github.com/mysticatea>
 * See LICENSE file in root directory for full license.
 */ /**
 * The signal class.
 * @see https://dom.spec.whatwg.org/#abortsignal
 */class AbortSignal extends EventTarget{/**
     * AbortSignal cannot be constructed directly.
     */constructor(){super();throw new TypeError("AbortSignal cannot be constructed directly");}/**
     * Returns `true` if this `AbortSignal`'s `AbortController` has signaled to abort, and `false` otherwise.
     */get aborted(){const aborted=abortedFlags.get(this);if(typeof aborted!=="boolean"){throw new TypeError(`Expected 'this' to be an 'AbortSignal' object, but got ${this===null?"null":typeof this}`);}return aborted;}}defineEventAttribute(AbortSignal.prototype,"abort");/**
 * Create an AbortSignal object.
 */function createAbortSignal(){const signal=Object.create(AbortSignal.prototype);EventTarget.call(signal);abortedFlags.set(signal,false);return signal;}/**
 * Abort a given signal.
 */function abortSignal(signal){if(abortedFlags.get(signal)!==false){return;}abortedFlags.set(signal,true);signal.dispatchEvent({type:"abort"});}/**
 * Aborted flag for each instances.
 */const abortedFlags=new WeakMap();// Properties should be enumerable.
Object.defineProperties(AbortSignal.prototype,{aborted:{enumerable:true}});// `toString()` should return `"[object AbortSignal]"`
if(typeof Symbol==="function"&&typeof Symbol.toStringTag==="symbol"){Object.defineProperty(AbortSignal.prototype,Symbol.toStringTag,{configurable:true,value:"AbortSignal"});}/**
 * The AbortController.
 * @see https://dom.spec.whatwg.org/#abortcontroller
 */class AbortController$1{/**
     * Initialize this controller.
     */constructor(){signals.set(this,createAbortSignal());}/**
     * Returns the `AbortSignal` object associated with this object.
     */get signal(){return getSignal(this);}/**
     * Abort and signal to any observers that the associated activity is to be aborted.
     */abort(){abortSignal(getSignal(this));}}/**
 * Associated signals.
 */const signals=new WeakMap();/**
 * Get the associated signal of a given controller.
 */function getSignal(controller){const signal=signals.get(controller);if(signal==null){throw new TypeError(`Expected 'this' to be an 'AbortController' object, but got ${controller===null?"null":typeof controller}`);}return signal;}// Properties should be enumerable.
Object.defineProperties(AbortController$1.prototype,{signal:{enumerable:true},abort:{enumerable:true}});if(typeof Symbol==="function"&&typeof Symbol.toStringTag==="symbol"){Object.defineProperty(AbortController$1.prototype,Symbol.toStringTag,{configurable:true,value:"AbortController"});}/*globals self, window */ /*eslint-disable @mysticatea/prettier */const g=typeof self!=="undefined"?self:typeof window!=="undefined"?window:typeof global!=="undefined"?global:/* otherwise */undefined;/*eslint-enable @mysticatea/prettier */if(g){if(typeof g.AbortController==="undefined"){g.AbortController=AbortController$1;}if(typeof g.AbortSignal==="undefined"){g.AbortSignal=AbortSignal;}}/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2021 Adobe Systems Incorporated
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any. The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/const ONS_AUTH_HEADER$1='X-User-Token';const MAX_RETRY_ATTEMPTS=3;const MIN_RETRY_INTERVAL_MS=10;// 10 msec
/**
* Interface to register ONS subscription and listen for change events.
*/class ONSSubscription extends EventEmitter{constructor(_onsInterface){super();this._onsInterface=_onsInterface;this._assetIds=new Set();this._watchedAssetIds=new Set();}get _core(){return this._onsInterface._core;}get subscriptionId(){return this._subscriptionId;}_log(msg){this._core.environment.log(msg);}get lastError(){return this._lastError;}get assetIds(){return this._assetIds;}get watchedAssetIds(){return this._watchedAssetIds;}abort(){if(this._retryTimeout){clearTimeout(this._retryTimeout);this._retryTimeout=undefined;this._log(`subscription ${this.subscriptionId} retry got aborted`);return true;}return false;}set assetIds(assetIds){this._assetIds=new Set(assetIds);this._update();}async _update(tryAttempt=0){var _a;this.abort();const requestedAssetIds=this._assetIds;if(isDeepEqual(requestedAssetIds,this._watchedAssetIds)){if(this._lastError){// If we had an error creating or updating the subscription, but then we revert back to the
// previous state, we need to clear the error otherwise we'll be stuck with an error!
this._lastError=undefined;this.emit('change');}return;}try{if(requestedAssetIds.size===0){await this._deleteSubscriptionFromServer();}else{if(this._subscriptionHref){await this._updateSubscriptionOnServer(requestedAssetIds);}else{await this._createSubscriptionOnServer(requestedAssetIds);}}this._watchedAssetIds=requestedAssetIds;this._lastError=undefined;this.emit('change');}catch(err){this._log(`Error updating subscription: ${err}`);this._lastError=err;this.emit('change');// Schedule a retry for later if there's an error
if(tryAttempt<MAX_RETRY_ATTEMPTS){let retryAfter=getRetryAfterHeader((_a=err.response)===null||_a===void 0?void 0:_a.headers)*1000;retryAfter=Math.max(MIN_RETRY_INTERVAL_MS,retryAfter);this._retryTimeout=setTimeout(()=>{this._retryTimeout=undefined;this._update(tryAttempt+1);},retryAfter);}}}async _parseSubscriptionResponse(operation,getResponse){const response=await getResponse();if(response.status<200||response.status>=300){const errMsg=`operation ${operation} with http response.status: ${response.status}`;this._log(errMsg);throw SAMHttpResponseError.createWithResponseAndTitle(response,errMsg);}const json=await response.json();if(!json.id||!json._links||!json._links.self||!json._links.self.href){const errMsg=`No subscription ID or href was returned in subscribe response.`;this._log(errMsg);throw new SAMHttpResponseError('INVALID_DATA',errMsg,response);}this._subscriptionId=json.id;this._subscriptionHref=json._links.self.href;}async _createSubscriptionOnServer(assetIds){const href=await this._onsInterface._getLink(RelType.SUBSCRIPTION_CREATE);const ids=Array.from(assetIds);const deviceId=await this._core.environment.getDeviceId();const requestBody=JSON.stringify({objects:ids,includeResources:'*',device:{id:deviceId}});this._log(`Creating subscription for ${assetIds.size} assets: ${ids.join(', ')}`);return this._parseSubscriptionResponse('create',()=>this._core.environment.fetch(href,{method:'POST',body:requestBody,authHeader:ONS_AUTH_HEADER$1,headers:{'Content-Type':'application/vnd.adobecloud.subscription+json'}}));}async _updateSubscriptionOnServer(assetIds){// finding out which assetID(s) to add and which to remove
const oldAssetIdsSet=this._watchedAssetIds;const newAssetIdsSet=assetIds;const operations=[];newAssetIdsSet.forEach(assetId=>{if(!oldAssetIdsSet.has(assetId)){const item={'op':'add','path':'/objects/-','value':{id:assetId}};operations.push(item);}});oldAssetIdsSet.forEach(assetId=>{if(!newAssetIdsSet.has(assetId)){const item={'op':'remove','path':`/objects/id=${assetId}`};operations.push(item);}});const requestBody=JSON.stringify(operations);this._log(`Updating subscription ${this._subscriptionId}: ${requestBody}`);try{await this._parseSubscriptionResponse('update',()=>this._core.environment.fetch(this._subscriptionHref,{method:'PATCH',body:requestBody,authHeader:ONS_AUTH_HEADER$1,headers:{'Content-Type':JSON_PATCH_MIME_TYPE}}));}catch(err){// If we get a 404 updating a subscription, we should fall back to creating a new subscription instead
if(err.code==='NOT_FOUND'){this._log(`The subscription we tried to update no longer exists (${this._subscriptionId}) - creating a new subscription instead`);return this._createSubscriptionOnServer(assetIds);}throw err;}}async _deleteSubscriptionFromServer(){this._log(`Deleting subscription ${this._subscriptionId}`);try{// Note: There's no way to reach this point with _subscriptionHref undefined, so we assert that it's defined
await this._core.environment.fetch(this._subscriptionHref,{method:'DELETE',authHeader:ONS_AUTH_HEADER$1});}catch(error){// We tried.
this._log(`Unable to delete subscription: ${this._subscriptionHref}. Error: ${error}`);}// We clear the subscription even if we fail to delete it - ONS will auto-delete orphaned subscriptions after some time anyway,
// so we don't need to be aggressive about retrying
this._subscriptionId=undefined;this._subscriptionHref=undefined;}async _fetchChangeLogPage(changedAssetIds){var _a,_b,_c,_d;const options={subscriptionId:this._subscriptionId};const href=this._nextChangeLogLinks?getURLFromLinks(this._nextChangeLogLinks,RelType.GENERIC_NEXT,options):await this._onsInterface._getLink(RelType.ONS_CHANGELOG,options);// Note: Unlike the other ONS calls, this uses the standard Authorization header (other ONS calls use X-User-Token)
// This is confusing and error-prone, so I'd like them to standardize on the Authorization header for all calls, but
// we have to live with this inconsistency for now.
const response=await this._core.environment.fetch(href);if(response.status!==200){const errMsg=`Unexpected response fetching change log: ${response.status}`;this._log(errMsg);throw SAMHttpResponseError.createWithResponseAndTitle(response,errMsg);}const json=await response.json();// From the response, determine which asset ids changed
const changedSubscriptions=(_a=json['ons:changedSubscriptions'])!==null&&_a!==void 0?_a:[];const changedSubscription=changedSubscriptions.find(subscriptionInfo=>subscriptionInfo['ons:subscriptionId']===this._subscriptionId);const changedAssets=(_b=changedSubscription===null||changedSubscription===void 0?void 0:changedSubscription['ons:changes'])!==null&&_b!==void 0?_b:[];changedAssets.forEach(assetInfo=>{const assetId=assetInfo['repo:assetId'];if(assetId){changedAssetIds.add(assetId);}});this._nextChangeLogLinks=json===null||json===void 0?void 0:json._links;return(_d=(_c=this._nextChangeLogLinks)===null||_c===void 0?void 0:_c.next)===null||_d===void 0?void 0:_d.nextPage;}/**
     * Fetch the changed assets ids in the subscription, and emit a change event on the parent ONS Interface for any changed assets.
     * The reason this API emits events rather than just returning the changed assets is so we can have robust retry logic - if it fails
     * to fetch the change log it'll schedule a retry with an appropriate backoff, so it automatically recovers. The ONS Interface can
     * simply call fetchAndNotifyChanges on a subscription that it knows has changes, and the subscription will take responsibility for
     * eventually fetching and emitting notifications for these changes, even if it has to retry.
     *
     * This API is stateful, so if you call it when the subscription changed, it will emit a change event for those assets, but if you call it
     * again (and there are no further changes), it will not emit an event.
     */async fetchAndNotifyChanges(attempt=0){this._log(`Fetching ChangeLog for subscription ${this._subscriptionId}...`);// If we got another notification of a change, this causes us to retry immediately, and cancels any pending retry
if(this._retryChangeLogTimeout){clearTimeout(this._retryChangeLogTimeout);}const retry=error=>{var _a;const retryAfter=getRetryAfterHeader((_a=error.response)===null||_a===void 0?void 0:_a.headers)*1000;const interval=Math.max(retryAfter,this._core.environment.getRetryInterval(attempt));this._log(`Retrying change log fetch in ${interval}ms`);this._retryChangeLogTimeout=setTimeout(()=>this.fetchAndNotifyChanges(attempt+1),interval);};const changedAssetIds=new Set();try{let hasMorePages=true;while(hasMorePages){hasMorePages=await this._fetchChangeLogPage(changedAssetIds);}}catch(error){this._log(`Error fetching change log: ${error}`);retry(error);}// Even if there's an error, we always notify of any changes we did manage to fetch - for example, if the
// first page succeeded, but the second page didn't, when we retry we'll retry from the second page.
if(changedAssetIds.size){// ONS can change the case of the asset ids we passed in, if they had the wrong case
// Because of this, we need to map the ids we get from ONS onto the actual asset ids
// we passed in (from monitoredAssetIds).
const lowerCaseChangedIDs=new Set([...changedAssetIds].map(id=>id.toLowerCase()));const changedIDs=new Set([...this._watchedAssetIds].filter(id=>lowerCaseChangedIDs.has(id.toLowerCase())));this._log(`Changed Assets: ${[...changedAssetIds].join(', ')}`);this._log(`Mapped to Watched Assets: ${[...changedIDs].join(', ')}`);this._onsInterface.emit('change',changedIDs);}}// This is called to check whether the subscription still exists on the server (the ONS long poll will sometimes request the client to
// validate its subscriptions). If the subscription was deleted, it'll recreate it.
async validate(){if(!this._subscriptionHref){// If we're requesting to watch at least one asset id, and don't have a subscription at all,
// something must have gone wrong creating it - we attempt to create again.
if(this.assetIds.size>0){return this._update();}return;}let checkResponse;try{// ONS spec says to GET (vs HEAD). Why?
checkResponse=await this._core.environment.fetch(this._subscriptionHref,{authHeader:ONS_AUTH_HEADER$1});}catch(error){this._log(error);return;}// If we can't find the subscription, we need to make a new one.
if(![200,201,204].includes(checkResponse.status)){this._log(`ONS subscription has been invalidated. Creating new subscription...`);this._subscriptionHref=undefined;this._subscriptionId=undefined;this._watchedAssetIds=new Set();return this._update();}}}__decorate([synchronized],ONSSubscription.prototype,"_update",null);__decorate([synchronized],ONSSubscription.prototype,"fetchAndNotifyChanges",null);/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2020 Adobe Systems Incorporated
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any. The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/const REQUIRED_LINKS=[RelType.SUBSCRIPTION_CREATE,RelType.NOTIFICATIONS_LONGPOLL,RelType.ONS_CHANGELOG];const ONS_AUTH_HEADER='X-User-Token';const validateRootDocument=json=>json._links&&REQUIRED_LINKS.every(key=>json._links[key]);/**
 * Interface to register ONS subscription and listen for change events.
 * Design notes:
 * Polling will only happen when the following three conditions are ALL met:
 *  1. start() has been called (and stop() has not been called).
 *  2. watch() has been called with a non-empty set of asset ids.
 *  3. The document is visible (document.visibilityState === 'visible').
 */class ONSInterface extends EventEmitter{constructor(_core){super();this._core=_core;// This flag is indicating if the top level start()/stop() has been called.
this._isStarted=false;this._subscriptions=[];this._maxAssetPerSubscription=5;this._assetIds=new Set();this._onSubscriptionChangeFun=()=>{this._onSubscriptionChange();};this._onVisibilityChange=()=>{var _a;if(this._stopTimeout){clearTimeout(this._stopTimeout);this._stopTimeout=undefined;}if(((_a=this._document)===null||_a===void 0?void 0:_a.visibilityState)==='visible'){this._start();// Won't do anything if we didn't stop yet, since still active
}else{// we're de-bouncing to avoid repeatedly stopping/restarting if the user switches between
// Web browser tabs frequently.
this._stopTimeout=setTimeout(()=>this._stop(),this._core.environment.getValue('ONS_DOCUMENT_VISIBILITY_TIMEOUT'));// 10s
}};}async _getSubscriptionConfig(){var _a,_b;try{const rootDocument=await this._getRootDocument();return(_b=(_a=rootDocument===null||rootDocument===void 0?void 0:rootDocument.config)===null||_a===void 0?void 0:_a.subscriptions)!==null&&_b!==void 0?_b:{};}catch(e){this._log(`Error fetching subscription config from ONS root document: ${e}`);return{};}}async _ensureSubscriptions(){const subscriptionConfig=await this._getSubscriptionConfig();const maxSubscriptions=subscriptionConfig.maxSubscriptionPerLongPoll||this._core.environment.getValue('ONS_DEFAULT_MAX_SUBSCRIPTIONS');this._maxAssetPerSubscription=subscriptionConfig.maxAssetsPerRequest||this._core.environment.getValue('ONS_DEFAULT_MAX_ASSETS_PER_SUBSCRIPTION');if(maxSubscriptions>this._subscriptions.length){// Add new subscriptions
for(let i=this._subscriptions.length;i<maxSubscriptions;++i){const sub=new ONSSubscription(this);this._subscriptions.push(sub);sub.on('change',this._onSubscriptionChangeFun);}}else if(maxSubscriptions<this._subscriptions.length){// Remove subscriptions over the limit
for(let i=maxSubscriptions;i<this._subscriptions.length;++i){const sub=this._subscriptions[i];sub.assetIds=new Set();sub.off('change',this._onSubscriptionChangeFun);}this._subscriptions.length=maxSubscriptions;// Removes the overflow from the array
}}get _activeSubscriptionIds(){return Array.from(this._subscriptions).filter(sub=>sub.subscriptionId&&sub.watchedAssetIds.size>0)// Note: watchedAssetIds not assetIds
.map(sub=>`${sub.subscriptionId}`).sort();}async _onSubscriptionChange(){const subscriptionIds=this._activeSubscriptionIds;// we don't want to create a bogus long pollURL if there is no subscriptions...
const newPollURL=subscriptionIds.length===0?undefined:await this._getLink(RelType.NOTIFICATIONS_LONGPOLL,{includeJournal:'false',subscriptionId:subscriptionIds});const isUrlChanged=this._pollURL!==newPollURL;this._pollURL=newPollURL;if(this.isActive&&isUrlChanged){this._stop();this._start();}}_log(message){this._core.environment.debug(`ONS: ${message}`);}get isActive(){return Boolean(this._abortController);}get assetIds(){return new Set(this._assetIds);// lets return copy it's safer
}get watchedAssetIds(){const assetIds=new Set();this._subscriptions.forEach(sub=>{sub.watchedAssetIds.forEach(assetId=>assetIds.add(assetId));});return assetIds;}get _document(){if(typeof window!=='undefined'){return window.document;}return undefined;}/**
     * Start ONS session
     */start(){var _a;if(this._isStarted){return;}(_a=this._document)===null||_a===void 0?void 0:_a.addEventListener('visibilitychange',this._onVisibilityChange);this._isStarted=true;if(!this._document||this._document.visibilityState==='visible'){this._start();}}/**
     * Stop ONS session
     */stop(){var _a;if(!this._isStarted){return;}(_a=this._document)===null||_a===void 0?void 0:_a.removeEventListener('visibilitychange',this._onVisibilityChange);this._isStarted=false;this._subscriptions.forEach(sub=>sub.abort());this._stop();}_stop(){if(!this.isActive){return;}if(this._stopTimeout){clearTimeout(this._stopTimeout);this._stopTimeout=undefined;}this._log(`Stopping...`);const abortController=this._abortController;delete this._abortController;this._abortController=undefined;abortController===null||abortController===void 0?void 0:abortController.abort();}_start(){if(this.isActive){return;}this._log(`Starting...`);this._abortController=new AbortController();this._poll();}_truncateAssetIdsByMaxSizeIfNeeded(assetIds){const maxTotalAssets=this._maxAssetPerSubscription*this._subscriptions.length;if(assetIds.size>maxTotalAssets){this._log(`Number of assets ${assetIds.size} exceeds the maximum allowed by ONS. Limiting to ${maxTotalAssets}`);// TODO:
//this._analytics.reportError('ONSSubscriptionError', `Requested assets exceed number allowed. Count: ${assetIds.length}, Max: ${maxAssetsPerRequest}`);
assetIds=new Set(Array.from(assetIds).slice(0,this._maxAssetPerSubscription));}return new Set(assetIds);}/**
     * Watches an array of assetIds.
     * @param {Array} assetIds
     */async watch(assetIds){await this._ensureSubscriptions();this._assetIds=this._truncateAssetIdsByMaxSizeIfNeeded(assetIds);// map from subscription id to current assets being monitored, minus ones we no longer need to monitor:
const subscriptionToAssetIds=Array.from(this._subscriptions.map(sub=>{const ids=new Set();sub.assetIds.forEach(id=>this._assetIds.has(id)&&ids.add(id));return ids;}));// Now, go through all the assets we need to monitor, and make sure they're assigned
// This is O(numAssets * numSubscriptions) - we could probably optimize a little, but for the number of subscriptions we're dealing with it's not necessarily, and we can keep the code simpler
this._assetIds.forEach(id=>{// Find which subscription to add it to:
let setToAddTo;for(let i=0;i<subscriptionToAssetIds.length;i++){const ids=subscriptionToAssetIds[i];if(ids.has(id)){// Abort if already assigned
return;}if(!setToAddTo||ids.size<setToAddTo.size){// Assign to the smallest set
setToAddTo=ids;}}setToAddTo.add(id);});// Finally, update the actual subscriptions
this._subscriptions.forEach((sub,index)=>sub.assetIds=subscriptionToAssetIds[index]);}async _poll(attempt=0){const retry=(error,interval=0)=>{interval=Math.max(this._core.environment.getRetryInterval(attempt),interval);const abortController=this._abortController;if(!abortController){return;}this._log(`Retrying long poll in ${interval}ms`);const timeout=setTimeout(()=>this._poll(attempt+1),interval);abortController.signal.addEventListener('abort',()=>{if(abortController!==this._abortController){clearTimeout(timeout);}});};const abortController=this._abortController;if(!abortController){return;}try{// this.pollURL can be undefined at start up when watch didn't have a time to build it yet,
// also if we deleted all subscriptions calling watch with empty set.
if(this._pollURL===undefined){// just returning here because when pollUrl get populated it will call _stop(), _start()
return;}const href=this._pollURL;const response=await this._core.environment.fetch(href,{signal:abortController.signal,authHeader:ONS_AUTH_HEADER});if([200,201,204].includes(response.status)){const json=await response.json();// Sometimes (frequently) we get a 20x response, and nothing has changed.
if(json&&json.subscriptions&&json.subscriptions.length>0){this._log(`Subscriptions changed: ${json.subscriptions.join(', ')}`);// Trigger the changed subscriptions to fetch changes via the changelog API:
// Note that ONS does not yet support a single changelog for multiple subscriptions, so we have
// to call the changelog separately for each subscription right now.
json.subscriptions.forEach(id=>{const subscription=this._subscriptions.find(sub=>sub.subscriptionId===id);subscription===null||subscription===void 0?void 0:subscription.fetchAndNotifyChanges();});// We don't really need this as part of the public API, but it makes the tests much easier,
// so we can abort the polling.
this.emit('notified');}// If ONS is worried that our subscription is invalid, verify it is still there. (ONS will do this
// every few hours no matter what.)
if(json&&json.checkSubscriptions&&json.checkSubscriptions.length>0){json.checkSubscriptions.forEach(id=>{const subscription=this._subscriptions.find(sub=>sub.subscriptionId===id);if(subscription){subscription.validate();}});}this._pollURL=json&&json._links&&json._links.next&&json._links.next.href;this._poll();}else if(response.status===404){// If the response is a 404, we've somehow lost the subscriptions. Make a new one.
this._subscriptions.forEach(subscription=>{if(subscription.subscriptionId){subscription.validate();}});// We need to retry here because if subscription will be validated on the server
// then 'change' event will not be emitted and we will stop polling here.
retry(undefined,this._core.environment.getValue('MAX_RETRY_INTERVAL'));}else{// Otherwise, follow the retry logic defined by the ONS team.
retry(undefined,getRetryAfterHeader(response.headers)*1000);}}catch(error){// If we aborted this request, we don't want to retry.
// But only if we aborted it locally. If it was aborted elsewhere, we want to retry.
// (AbortController is used for timeouts in Proxy#fetch)
if(abortController.signal.aborted&&abortController!==this._abortController){this.emit('aborted');return;}retry();}}async _getAndCacheDocument(href){const response=await this._core.environment.fetch(href,{headers:{Accept:'application/vnd.syncservice.v2.hal+json'},authHeader:ONS_AUTH_HEADER});return response.json();}_getRootDocument(){return this._getAndCacheDocument(`https://${this._core.environment.endpoints.SYNC_SERVICE_HOST}/api/v1`);}async _getLink(key,options={}){const rootDocument=await this._getRootDocument();return getURLFromLinks(rootDocument._links,key,options);}}__decorate([synchronized],ONSInterface.prototype,"_onSubscriptionChange",null);__decorate([cache(validateRootDocument),__param(0,key)],ONSInterface.prototype,"_getAndCacheDocument",null);/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/ // Properties of a link reference that correspond to mutable asset metadata properties (e.g. name, path etc).
// These are properties that can change on the asset, but don't correspond to a content change
// (i.e. the link state would be MetadataOutOfDate rather than OutOfDate)
const assetMetadataProperties=['repo:repositoryId','repo:name','repo:etag','stRef:relativePath','stRef:documentID'];function isBrokenAsset(asset){// Need to know if permission exactly matches Ack or None, rather than contains, so can't use
// hasPermission() here.
const permission=asset['_permissions'];return permission===Permission.Ack||permission===Permission.None;}// Illustrator (prior to MAX 2021) does not update the instance ID on save, so we need to fall back to the etag in this case
// See https://jira.corp.adobe.com/browse/AI-4251857
const typesWithUnreliableInstanceID=['application/illustrator','document/vnd.adobe.illustrator+dcx'// Can remove once fixed since AI cloud docs haven't shipped yet
];class AssetLink extends EventEmitter{constructor(_assetLinkList,_data){super();this._assetLinkList=_assetLinkList;this._data=_data;this._resolutionErrors=[];this._onChange=()=>{var _a,_b;// Check if any of the resolved assets broke, and transfer their errors to the link
// so we get the right link state (broken or restricted)
const brokenAssets=(_a=this._resolvedAssets)===null||_a===void 0?void 0:_a.filter(isBrokenAsset);if(brokenAssets===null||brokenAssets===void 0?void 0:brokenAssets.length){this._resolutionErrors=brokenAssets.map(asset=>new SAMError(asset['_permissions']===Permission.Ack?'ACCESS_DENIED':'NOT_FOUND','lost access'));this._resolvedAssets=(_b=this._resolvedAssets)===null||_b===void 0?void 0:_b.filter(asset=>!brokenAssets.includes(asset));}this.emit('change');this._assetLinkList._onChange();};}async _setLinkData(linkData,asset){this._data=linkData;if(asset){this._resolvedAssets=[asset];}this._onChange();if(!this.adobeAsset||this.assetID!==this.adobeAsset.cloudID){await this._resolveWithRetry();}// TODO: Check if relative path changed
return this;}async _setLinkedAsset(asset){const data=this._getLinkDataForAsset(asset);return this._setLinkData(data,asset);}_getLinkDataForAsset(asset){var _a,_b;const linkData={'repo:assetId':asset.cloudID,'repo:repositoryId':asset.repositoryID,'repo:etag':asset.etag,'dc:format':asset.mediaType,'repo:name':asset.name,'stRef:documentID':(_a=asset.embeddedMetadata.data)===null||_a===void 0?void 0:_a['xmpMM:DocumentID'],'stRef:instanceID':(_b=asset.embeddedMetadata.data)===null||_b===void 0?void 0:_b['xmpMM:InstanceID'],'stRef:manager':'Adobe Cloud'};// Add relative path if it exists
const parent=this._assetLinkList.containerAsset;if(parent&&parent.repositoryID===asset.repositoryID){linkData['stRef:relativePath']=path.relative(path.dirname(parent.repoPath),asset.repoPath);}return linkData;}// Ensures that link reference strings are always serialized with the keys in the same order
_serializeLinkData(linkData){return JSON.stringify(linkData,Object.keys(linkData).sort());}_resolveWithRetry(){return this._resolve();}async _resolve(){var _a;const resolvedAssets=[];const resolutionErrors=[];const handleError=e=>{if(['NOT_FOUND','ACCESS_DENIED'].includes(e.code)){resolutionErrors.push(e);}else{throw e;}};try{const asset=await this._context.getAssetWithCloudID(this.assetID);if(!asset.embeddedMetadata.isLoaded){// First time, we need to load - after that, it'll get updated whenever the asset is refreshed
await asset.embeddedMetadata.load();}resolvedAssets.push(asset);}catch(e){this._core.environment.error(`Failed to resolve link by id (${this.assetID}): ${e}`);handleError(e);}const parent=this._assetLinkList.containerAsset;if(this.relativePath&&parent&&parent.repositoryID===this.repositoryID){// Resolve by relative path, but this only makes sense if the container asset and linked
// asset are in the same repository.
const repoPath=path.join(path.dirname(parent.repoPath),this.relativePath);try{const asset=await this._context.getAssetWithRepoPath(repoPath,this.repositoryID);if(!asset.embeddedMetadata.isLoaded){// First time, we need to load - after that, it'll get updated whenever the asset is refreshed
await asset.embeddedMetadata.load();}// Most of the time, resolution by path will match resolution by asset id - only add an alternate
// if they're different.
if(!resolvedAssets[0]||resolvedAssets[0].cloudID!==asset.cloudID){if((_a=resolvedAssets[0])===null||_a===void 0?void 0:_a.isDiscarded){// Special case if the resolution by id is discarded - we want the path-based resolution
// to become the primary adobeAsset
resolvedAssets.unshift(asset);}else{resolvedAssets.push(asset);}}}catch(e){this._core.environment.error(`Failed to resolve link by path: ${this.repositoryID}, ${repoPath}`);handleError(e);}}// Attach event listeners so we can notify the link when the asset changes
this._resolvedAssets&&this._resolvedAssets.forEach(asset=>asset.off('change',this._onChange));resolvedAssets.forEach(asset=>asset.on('change',this._onChange));this._resolvedAssets=resolvedAssets;this._resolutionErrors=resolutionErrors;this._onChange();}get _core(){return this._assetLinkList._core;}get _context(){return this._assetLinkList._manager._context;}/**
     * The asset that the link resolves to - this will not be defined if the linkStatus
     * is Restricted or Broken.
     */get adobeAsset(){var _a;return(_a=this._resolvedAssets)===null||_a===void 0?void 0:_a[0];}/**
     * An alternative asset which can be used as link, in case there is ambiguity resolving the link.
     * This will usually be undefined.
     */get alternativeAdobeAsset(){var _a;return(_a=this._resolvedAssets)===null||_a===void 0?void 0:_a[1];}/**
     * The current state of the link (OutOfDate, UpToDate, Restricted or Broken).
     */get linkStatus(){if(!this._resolvedAssets){return'UpToDate';}if(!this.adobeAsset){// If we get a 403 resolving an asset, we know it exists but the user doesn't have access
// This corresponds to the Restricted state - we can direct the user to request access via assets web.
return this._resolutionErrors.some(error=>error.code==='ACCESS_DENIED')?'Restricted':'Broken';}if(this.adobeAsset.isDiscarded){// If the primary asset resolved is discarded, it means that we don't have an undiscarded alternative
// (otherwise it would be the primary asset). We therefore treat the link state as Discarded.
// This means that the user can be presented the option to restore the asset to fix the link.
return'Discarded';}// Check to see if the asset has changed - we check the xmpMM:InstanceID, which should be modified on every save.
// There are two exceptions:
// 1) If the asset doesn't have any XMP metadata (and neither does the link), we fall back to compare the repo:etag
// 2) Illustrator has a bug that it doesn't update the XMP metadata on save - so we also fall back to the repo:etag
//    for Illustrator types, in case they were edited in an older version of Illustrator.
const instanceID=this.adobeAsset.embeddedMetadata.data['xmpMM:InstanceID']||'';const shouldCheckEtag=!instanceID&&!this.instanceID||typesWithUnreliableInstanceID.includes(this.type);const assetHasChanged=instanceID!==this.instanceID||shouldCheckEtag&&this.etag!==this.adobeAsset.etag;if(this.alternativeAdobeAsset||assetHasChanged){return'OutOfDate';}// Check whether any metadata is out of date
const assetLinkData=this._getLinkDataForAsset(this.adobeAsset);const hasMetadataChanges=assetMetadataProperties.some(key=>assetLinkData[key]!==this._data[key]);return hasMetadataChanges?'MetadataOutOfDate':'UpToDate';}/**
     * The fragment specifier which can be used by the client to link to a fragment within the asset.
     */get fragmentIdentifier(){return this._data['stRef:fromPart']||'';}/**
     * The version of the asset to which the link is referring to. This is only used if linking to a specific
     * version, and the version must be specified at the time of link creation.
     */get version(){return this._data['repo:version']||'';}/**
     * The asset ID of the asset which the link refers to.
     */get assetID(){return this._data['repo:assetId'];}/**
     * The repository ID of the asset which the link refers to.
     */get repositoryID(){return this._data['repo:repositoryId']||'';}/**
     * The owner ID of the asset which the link refers to.
     */ // get ownerID(): string {
//     return this._data['stRef:fromPart'] || '';
// }
/**
     * The name of the asset when the link was created or last updated.
     */get name(){return this._data['repo:name']||'';}/**
     * The type of the asset when the link was created.
     */get type(){return this._data['dc:format']||'';}/**
     * The etag of the asset when the link was created or last updated.
     */get etag(){return this._data['repo:etag']||'';}/**
     * The relative path of the asset when the link was created or last updated.
     */get relativePath(){return this._data['stRef:relativePath']||'';}/**
     * The document id as per the XMP metadata when the link was created or last updated.
     */get documentID(){return this._data['stRef:documentID']||'';}/**
     * The instance id as per the XMP metadata when the link was created or last updated.
     */get instanceID(){return this._data['stRef:instanceID']||'';}/**
     * Obtain the asset link reference to be stored in the container document for the link.
     * Note: Clients can choose to store this as a string by calling getAssetLinkRefString() instead.
     */getAssetLinkRef(){return Object.assign({},this._data);}/**
     * Obtain the asset link reference string to be stored in the container document for the link.
     * Note: Clients can choose to store this as an object by calling getAssetLinkRef() instead.
     */getAssetLinkRefString(){return this._serializeLinkData(this._data);}/**
     * Obtain the asset link reference corresponding to the given asset. This is useful for knowing
     * the new link reference that would be obtained by updating to the given asset
     */getNewAssetLinkRef(asset){return this._getLinkDataForAsset(asset);}/**
     * Obtain the asset link reference string corresponding to the given asset. This is useful for knowing
     * the new linkReference string that would be obtained by updating to the given asset
     */getNewAssetLinkRefString(asset){return this._serializeLinkData(this.getNewAssetLinkRef(asset));}/**
     * Called by the clients to accept the latest changes and get the new asset link reference
     * @param asset The new asset to update to (or the current asset to accept an update)
     * @returns The new linkReference string.
     */async updateWithAsset(asset){await this._setLinkedAsset(asset);return this.getAssetLinkRefString();}/**
     * Called by the clients to accept the latest changes and get the new asset link reference
     * @param linkRef A new link reference to update to
     * @returns The new link reference.
     */async updateWithLinkRef(linkRef){await this._setLinkData(linkRef);return linkRef;}/**
     * Called by the clients to accept the latest changes and get the new asset link reference
     * @param linkRef A new link reference string to update to
     * @returns The new link reference string.
     */async updateWithLinkRefString(linkRefString){await this._setLinkData(JSON.parse(linkRefString));return linkRefString;}/**
     * Called by the clients to accept metadata updates when the link is in the OutOfDate state.
     * If called when the link is in a different state, this does nothing.
     * @returns The new linkReference string.
     */acceptMetadataChanges(){if(this.adobeAsset&&this.linkStatus==='MetadataOutOfDate'){const assetLinkData=this._getLinkDataForAsset(this.adobeAsset);// Note that we substitute fields rather than replacing the whole link reference, because the link reference
// may include fragment data that we don't want to delete
this._data=Object.assign(Object.assign({},this._data),assetLinkData);this._onChange();}return this.getAssetLinkRefString();}}__decorate([synchronized],AssetLink.prototype,"_setLinkData",null);__decorate([retry],AssetLink.prototype,"_resolveWithRetry",null);__decorate([observable],AssetLink.prototype,"adobeAsset",null);__decorate([observable],AssetLink.prototype,"alternativeAdobeAsset",null);__decorate([observable],AssetLink.prototype,"linkStatus",null);__decorate([observable],AssetLink.prototype,"fragmentIdentifier",null);__decorate([observable],AssetLink.prototype,"version",null);__decorate([observable],AssetLink.prototype,"assetID",null);__decorate([observable],AssetLink.prototype,"repositoryID",null);__decorate([observable],AssetLink.prototype,"name",null);__decorate([observable],AssetLink.prototype,"type",null);__decorate([observable],AssetLink.prototype,"etag",null);__decorate([observable],AssetLink.prototype,"relativePath",null);__decorate([observable],AssetLink.prototype,"documentID",null);__decorate([observable],AssetLink.prototype,"instanceID",null);__decorate([observable],AssetLink.prototype,"getAssetLinkRef",null);__decorate([observable],AssetLink.prototype,"getAssetLinkRefString",null);__decorate([observable],AssetLink.prototype,"getNewAssetLinkRef",null);__decorate([observable],AssetLink.prototype,"getNewAssetLinkRefString",null);/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/class AssetLinkList extends EventEmitter{constructor(_manager,_containerAsset){super();this._manager=_manager;this._containerAsset=_containerAsset;this._links=new Set();this._directlyMonitoredAssetIDs=new Set();this._isActive=false;this._onChange=()=>{this.emit('change');};this._refreshLinks=(changedIDs=new Set(this.monitoredAssetIDs))=>{this.forEach(link=>{if(!link.adobeAsset&&changedIDs.has(link.assetID)){// Link is broken, but asset id changed - try re-resolving
link._resolveWithRetry();}if(link.adobeAsset&&changedIDs.has(link.adobeAsset.cloudID)){// Id-based resolved asset changed:
link.adobeAsset._loadWithRetry();}if(link.alternativeAdobeAsset&&changedIDs.has(link.alternativeAdobeAsset.cloudID)){// Path-based resolved asset changed:
link.alternativeAdobeAsset._loadWithRetry();}});};this._onONSNotification=changedIDs=>{this._refreshLinks(changedIDs);// As well as refreshing changed links, we emit a notified event, so clients can know that
// we were notified of a change to these assets - this is useful if clients are only monitoring
// asset ids directly, not via links.
// Compute the intersection of changedIDs and the ones we're monitoring:
const monitoredChangedIDs=new Set();this.monitoredAssetIDs.forEach(id=>changedIDs.has(id)&&monitoredChangedIDs.add(id));this.emit('notified',[...monitoredChangedIDs]);};}get _core(){return this._manager._core;}/**
     * Monitor an asset id directly, rather than going through an AssetLink. This allows you to monitor
     * a specific asset for changes without maintaining any state (i.e. it will not resolve the assetID
     * to an AdobeAsset).
     *
     * This is a lower-level API and should be used
     */addAssetID(assetID){this._directlyMonitoredAssetIDs.add(assetID);this._onChange();}/**
     * Stop monitoring an asset id that was added via `addAssetId()`. Note that if any links in the list
     * also reference this asset id, this will not stop monitoring them.
     */removeAssetID(assetID){this._directlyMonitoredAssetIDs.delete(assetID);this._onChange();}/**
     * Add one or more existing links (from link reference or link reference strings) to the list.
     */add(linkReferences){return Promise.all(linkReferences.map(async linkRef=>{// TODO: Should check if already have duplicate link
const linkReference=typeof linkRef==='string'?JSON.parse(linkRef):linkRef;const link=new AssetLink(this,linkReference);this._links.add(link);this._onChange();// When adding an existing link we can always return an AssetLink even if it fails
// We'll retry the resolution after which the link state will update.
await link._resolveWithRetry();return link;}));}/**
     * Create a new link from an asset, and add it to the list.
     * @param asset
     * @param [fragmentSpecifier] An optional string containing the fragmentSpecifier within the asset.
     * @param [version] An optional string containing the version identifier of the Adobe asset.
     */async create(asset,fragmentSpecifier,version){const assetID=typeof asset==='string'?asset:asset.cloudID;const link=new AssetLink(this,{'repo:assetId':assetID,'stRef:fromPart':fragmentSpecifier,'repo:version':version,'stRef:manager':'Adobe Cloud'});this._links.add(link);this._onChange();// When creating a new link, we do _not_ retry on failure - this is because the link reference needs to be updated.
// Errors are propagated to the client.
await link._resolve();if(link.adobeAsset){link._setLinkedAsset(link.adobeAsset);}return link;}/**
     * Remove an asset link from the list. This will cause it to stop being actively monitored for changes.
     */remove(link){this._links.delete(link);this._onChange();}/**
     * Clear the whole list.
     */clear(){this._links.clear();this._onChange();}/**
     * Number of asset links in the list.
     */get count(){return this._links.size;}/**
     * Get an array of all the asset links in the list.
     */get links(){return[...this._links];}/**
     * Get an array of all the asset ids being monitored by the link list. This includes
     * asset ids in any links, as well as asset ids being directly monitored.
     */get monitoredAssetIDs(){const assetIDs=new Set(this._directlyMonitoredAssetIDs);this.forEach(link=>{assetIDs.add(link.assetID);// We also monitor the path-based resolution if it differs from asset-based:
if(link.alternativeAdobeAsset){assetIDs.add(link.alternativeAdobeAsset.cloudID);}});return[...assetIDs];}/**
     * Iterate through all the asset links in the list.
     */forEach(callback){this._links.forEach(callback);}/**
     * Get the container asset for the link list (the document that contains the links)
     */get containerAsset(){return this._containerAsset;}/**
     * Marks a list as active so that the asset link manager can actively start monitoring all the asset links in it.
     * @param [duration] If a duration is specified (in ms), the list will automatically deactivate after this time. Otherwise it will remain active.
     */activate(duration=0){if(duration){if(this._deactivateTimeout){clearTimeout(this._deactivateTimeout);}this._deactivateTimeout=setTimeout(()=>this.deactivate(),duration);}if(!this._isActive){this._isActive=true;this._onChange();// Since we may have missed notifications while the list was inactive, we need to
// refresh any links in the list on activation
this._refreshLinks();}}/**
     * Deactivate a list so that the asset link manager can stop monitoring all the asset links in it.
     */deactivate(){if(this._deactivateTimeout){clearTimeout(this._deactivateTimeout);}if(this._isActive){this._isActive=false;this._onChange();}}/**
     * Whether the list is active (asset links in it are actively monitored for changes or not).
     */get isActive(){return this._isActive;}/**
     * Change the container asset associated with this list (the document that contains the links in the list)
     * This will change relative path based resolution of the links
     */async updateContainerAsset(containerAsset){this._containerAsset=containerAsset;this._onChange();// Need to resolve all the links again, because the relative path could have changed
await Promise.all(Array.from(this._links).map(link=>link._resolveWithRetry()));}/**
     * Clone the asset list for a another container asset (adding it to this list)
     */clone(assetLinkList){// TODO: Need to trigger all links to re-resolve, since relative path resolution may have changed
assetLinkList.links.forEach(link=>this._links.add(link));}}__decorate([observable],AssetLinkList.prototype,"count",null);__decorate([observable],AssetLinkList.prototype,"links",null);__decorate([observable],AssetLinkList.prototype,"monitoredAssetIDs",null);__decorate([observable],AssetLinkList.prototype,"forEach",null);__decorate([observable],AssetLinkList.prototype,"containerAsset",null);__decorate([observable],AssetLinkList.prototype,"isActive",null);/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/class AssetLinkManager extends EventEmitter{constructor(_context){super();this._context=_context;this._lists=new Set();// Called when we get a notification from ONS
this._onONSNotification=assetIDs=>{const changedIDs=new Set(assetIDs);this._lists.forEach(list=>{if(list.isActive){list._onONSNotification(changedIDs);}});};// Called whenever any links or link lists change
this._onListChange=()=>{// Compute the set of asset ids to watch, across all the links in all the active lists
const assetIDs=new Set();this._lists.forEach(list=>{if(list.isActive){list.monitoredAssetIDs.forEach(id=>assetIDs.add(id));}});// Update the list of assetIds that ONS is watching - note that this only modifies the
// subscription if the list of assets changes, so calling ONS with the same assetIds won't
// cause any new API calls.
if(assetIDs.size>0){this._ons.watch(assetIDs);this._ons.start();}else{this._ons.stop();}};// In future we might want to move ons to the AssetContext, so we can monitor assets outside of a link list
this._ons=new ONSInterface(_context._core);this._ons.on('change',this._onONSNotification);}get _core(){return this._context._core;}createList(containerAsset){const list=new AssetLinkList(this,containerAsset);list.on('change',this._onListChange);this._lists.add(list);this.emit('change');return list;}removeList(list){this._lists.delete(list);list.off('change',this._onListChange);this.emit('change');}/**
     * Get an array of all the asset link lists.
     */get lists(){return[...this._lists];}}__decorate([observable],AssetLinkManager.prototype,"lists",null);/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/const PROJECTS_INDEX_LINKS={[RelType.PROJECTS_CONTEXT]:[],[RelType.TEAMS_PAGE]:['start','limit'],[RelType.PROJECTS_PRIMARY]:['id','selector'],[RelType.PROJECTS_PAGE]:['orderBy','start','limit','teamId','bookmarkFilter','teamAccess'],[RelType.REPOSITORIES_PAGE]:[],[RelType.TEAMS_CREATE]:[],[RelType.TEAM_PROVISION]:[],[RelType.PROJECTS_BOOKMARKS_BATCH]:[]};// Team provisioning can return both 200 and 201 depending on if
// the user already had the team created or not. We check for this ahead of time,
// but there is a chance the user has a pending or simultaneous call to provision
// the team from a different tab or application. In SAM we don't actually
// care about 200 or 201, but we want to make sure they are both valid codes.
const TEAM_PROVISION_SUCCESS_CODES=[200,201];const SPACE_FULL_SELECTOR=['FULL'];const DefaultTeamListingOptions={start:0,limit:0,orderDirection:'ascending',orderBy:'name'};const DefaultSpacesListingOptions={orderDirection:'ascending',orderBy:'name',bookmarked:false,teamID:undefined,start:0,limit:0};function getDefaultOptions(Defaults,options){return Object.assign({},Defaults,options);}function getDirectionValue(userOptions){const directionFlag=userOptions.orderDirection==='ascending'?'+':'-';return directionFlag+userOptions.orderBy;}function createPageTemplate(options){const templateValues={};if(options.start){templateValues.start=options.start;}if(options.limit){templateValues.limit=options.limit;}return templateValues;}function getTeamListingPath(links,options){const userOptions=getDefaultOptions(DefaultTeamListingOptions,options);const templateValues=createPageTemplate(userOptions);templateValues.orderBy=getDirectionValue(userOptions);templateValues.nameContains=userOptions.nameContains;templateValues.state=userOptions.state;return getURLFromLinks(links,RelType.TEAMS_PAGE,templateValues);}function getSpacesListingPath(links,options){const userOptions=getDefaultOptions(DefaultSpacesListingOptions,options);const templateValues=createPageTemplate(userOptions);templateValues.orderBy=getDirectionValue(userOptions);// The service sets bookmarkFilter to "true" by default, so pass "false" if bookmarked is false or undefined.
if(!userOptions.bookmarked){templateValues.bookmarkFilter=false;}// The only value that is implemented by the server is teamAccess=undefined or teamAccess=false.
// teamAccess=undefined -> all spaces are returned
// teamAccess=false -> returns only the spaces that are from teams the user is not part of.
if(userOptions.teamAccess===false){templateValues.teamAccess=false;}const{teamID}=userOptions;if(teamID){templateValues.teamId=teamID;}return getURLFromLinks(links,RelType.PROJECTS_PAGE,templateValues);}function validateRequiredProjectLinks(links){return validateLinks(links,PROJECTS_INDEX_LINKS);}class ProjectInterface extends InterfaceBase{_getHeaders(contentType){const headers={'x-service-features':'CanvasMigration',// NOTE: [SAM-1222] disabling cache because /projects/{spaceId} sets an etag header that
//      does not change when the user's bookmark preference changes, causing browsers to
//      automatically add the etag header on requests and get the cached value of the
//      bookmark field rather than the actual value.
'Cache-Control':'no-cache'};if(contentType){headers['Content-Type']=contentType;}return headers;}async _discoverLinks(rootHref){const response=await this._getResponse(rootHref,this._getHeaders());return response._links;}_getEndpointHref(endpoint){return`https://${this._core.environment.endpoints.PROJECTS_HOST}${endpoint}`;}async discoverLinks(){return this._discoverLinks(this._getEndpointHref(`/api/v2/index`));}async getTeams(options){const links=await this.discoverLinks();const url=getTeamListingPath(links,options);return await this._getResponse(url,this._getHeaders());}/**
     * Get repositories where user can create CC Team
     */async getOrgRepositories(){const links=await this.discoverLinks();const url=getURLFromLinks(links,RelType.REPOSITORIES_PAGE,{});return await this._getResponse(url,this._getHeaders());}/**
     * Create a team under /content/assets folder.
     */async createTeam(data){const links=await this.discoverLinks();const url=getURLFromLinks(links,RelType.TEAMS_CREATE,{});const response=await this._doPost(url,this._getHeaders(JSON_MIME_TYPE),JSON.stringify(data));return response.json();}/**
     * Permanently Delete a Team
     */async permanentlyDeleteTeam(links){const url=getURLFromLinks(links,RelType.TEAMS_PRIMARY);await this._doDelete(url,this._getHeaders(),[204]);}/**
     * Archive/Discard Team
     */async archiveTeam(links){const url=getURLFromLinks(links,RelType.TEAMS_DISCARD);await this._doPost(url,this._getHeaders(),undefined,[204]);}/**
     * Restore Team.
     */async restoreTeam(teamLinks){const url=getURLFromLinks(teamLinks,RelType.TEAMS_RESTORE);await this._doPost(url,this._getHeaders(),undefined,[204]);}/**
     * Patch a Team
     */async patchTeam(teamLinks,data){const url=getURLFromLinks(teamLinks,RelType.TEAMS_PROPERTIES);await this._doPatch(url,Object.assign(Object.assign({},this._getHeaders(JSON_PATCH_MIME_TYPE)),{'If-Match':'*'}),JSON.stringify(data),[204]);}/**
     * Fetches Properties for a team.
     */async getTeamProperties(teamLinks){const url=getURLFromLinks(teamLinks,RelType.TEAMS_PROPERTIES);return await this._getResponse(url,this._getHeaders());}/**
     * Provisions a Team folder within User storage for a Type 1 user only. The provisioned team name is in format:
     * "Team {{USER_FIRST_NAME}}" depending on the localization of the requesting user.
     */async provisionTeam(){const links=await this.discoverLinks();const url=getURLFromLinks(links,RelType.TEAM_PROVISION,{});const response=await this._doPost(url,this._getHeaders(),undefined,TEAM_PROVISION_SUCCESS_CODES);return response.json();}async getSpaces(options){const links=await this.discoverLinks();const url=getSpacesListingPath(links,options);return await this._getResponse(url,this._getHeaders());}async getSpace(id,selector=SPACE_FULL_SELECTOR){const links=await this.discoverLinks();const spaceLink=getURLFromLinks(links,RelType.PROJECTS_PRIMARY,{id,selector});return await this._getResponse(spaceLink,this._getHeaders());}async reloadSpace(spaceLinks,selector=SPACE_FULL_SELECTOR){const spaceLink=getURLFromLinks(spaceLinks,RelType.PROJECTS_PRIMARY,{selector});return await this._getResponse(spaceLink,this._getHeaders());}async bookmarkOp(data){const links=await this.discoverLinks();const url=getURLFromLinks(links,RelType.PROJECTS_BOOKMARKS_BATCH);const response=await this._doPost(url,this._getHeaders(JSON_MIME_TYPE),JSON.stringify(data),[200]);return response.json();}async createSpace(teamLinks,data){const url=getURLFromLinks(teamLinks,RelType.PROJECTS_CREATE);const response=await this._doPost(url,this._getHeaders(JSON_MIME_TYPE),JSON.stringify(data));return response.json();}async patchSpace(spaceLinks,data){const url=getURLFromLinks(spaceLinks,RelType.PROJECTS_PRIMARY);await this._doPatch(url,this._getHeaders(JSON_PATCH_MIME_TYPE),JSON.stringify(data),[200,204]);}async getEnclosingSpaces(data){const links=await this.discoverLinks();const url=getURLFromLinks(links,RelType.PROJECTS_CONTEXT);const response=await this._doPost(url,this._getHeaders(JSON_MIME_TYPE),JSON.stringify(data),[200]);return response.json();}}__decorate([cache(validateRequiredProjectLinks),__param(0,key)],ProjectInterface.prototype,"_discoverLinks",null);/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/const OrderFieldToIProjectsSpaceOrderBy={'name':'name','created':'createdDate'};const OrderFieldToComparator$6={name(a,b){return compareStrings(a.name,b.name);},created(a,b){return compareValues(a.created,b.created);}};class SpaceOrder extends createItemOrderFactory(OrderFieldToComparator$6){}SpaceOrder.default=new SpaceOrder('ascending','name');/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/class SpaceLoader{constructor(_spacePool,_projectInterface,_teamRoleGetterFactory){this._spacePool=_spacePool;this._projectInterface=_projectInterface;this._teamRoleGetterFactory=_teamRoleGetterFactory;}supportsFilter(filter){// - only state === 'active' is supported.
// - cannot handle teamRole === 'MEMBER' yet.
if(!filter){// If we don't provide a filter at all, then we cannot use the loader
return false;}const{teamRole,state}=filter;return teamRole!=='MEMBER'&&state==='active';}async loadPage(options){return await this._loadPage(options);}async _loadPage(options,start){const{updateContext,order,filter,limit}=options;const teamRole=filter===null||filter===void 0?void 0:filter.teamRole;if(teamRole==='MEMBER'){throw new SAMError('INVALID_PARAMETER','Filtering only for spaces with reamRole MEMBER is not supported.');}// We will ignore the update if we had local changes sooner than this timestamp.
const latency=this._spacePool._core.environment.getValue('PROJECTS_LIST_UPDATE_LATENCY');const mostRecentValidMutation=Date.now()-latency;const resultPromise=this._projectInterface.getSpaces({orderBy:OrderFieldToIProjectsSpaceOrderBy[order.field],orderDirection:order.direction,teamID:filter===null||filter===void 0?void 0:filter.teamID,bookmarked:filter===null||filter===void 0?void 0:filter.bookmarked,teamAccess:teamRole==='NONE'?false:undefined,start,limit});// If the teamRole was used in the request, then we trust the server resolved the correct value for the filter.
// If we don't have teamRole in the filter, then we will lookup in the client side list of teams. If the teams are not
// loaded yet, we will just fallback to 'NONE' until the teams are eventually loaded.
// The team pool delegate in the space context will update the team role once the teams are known.
const teamRoleFn=teamRole?()=>teamRole:await this._teamRoleGetterFactory();// Wait for the results after we start loading the role factory above. That will make the requests run in parallel when needed.
const result=await resultPromise;const session=this._spacePool.createUpdateSession(updateContext,mostRecentValidMutation);// Inject the teamRole in all the items that we load.
const items=SpaceUpdater.updateRemoteItems(session,result.projects.map(item=>{return Object.assign(Object.assign({},item),{teamRole:teamRoleFn(item.teamId),// The `/projects` listing endpoint doesn't add the state property,
// but it only returns active spaces anyways. We can inject
// the property automatically to make sure any restored space,
// gets back into the correct lists.
state:'active'});}));// Make sure we ignore any reload errors now that we have refreshed the listing of the space.
for(const item of items){item[clearLastReloadError]();}session.commit();// Check if we have another page to load.
let loadNextPage;// Note that it is important to skip the entire page size,
// even if we didn't get any items back.
// The service is based on USS which might filter out items
// on the fly when they are retrieved instead of ahead of time
// when the total limit is computed. As a result, some pages might
// even come in empty.
const nextStart=result.pageSpec.start+result.pageSpec.limit;if(nextStart<result.pageSpec.totalLimit){loadNextPage=options=>this._loadPage(options,nextStart);}return{items,total:result.pageSpec.totalLimit,loadNextPage,mostRecentValidMutation};}}/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/const CollaboratorRoles=['owner','viewer','editor','none'];const ContributorRoles=['editor','owner'];const CollaboratorTypes=['imsUser','addressBookGroup','addressBookContact','predefinedPrincipal','imsGroup'];const InheritanceTypes=['self','deep','deep_override'];class Collaborator extends ItemBase{constructor(){super(...arguments);this._role='viewer';this._type='imsUser';this._isDirect=false;}// `imsUser id` if invited via user email directly
// `addressBookContact id` (i.e urn.ab:contact:...) if members are invited via shareSheet's recommend dropdown
// `addressBookGroup id` (i.e urn:ab:group:...) if groups are invited via shareSheet's recommend dropdown
get collaboratorID(){return this.id;}// Track the imsUser id
// - Same as 'id' for direct invited collaborators
// - Represents the collaborator actual ims id for addressBookContact, which is useful to check (compare ims id)
// for thing like if the logged in user is in the collaborator list ,...
// - undefined for 'addressBookGroup'
get imsUserId(){var _a;const type=this._type;if(type==='imsUser'){return this.id;}return(_a=this._additionalData)===null||_a===void 0?void 0:_a.linkedIdentity;}// Collaborator email
get email(){var _a;return(_a=this._additionalData)===null||_a===void 0?void 0:_a.email;}// Collaborator name for imsUser and addressBookContact
// Group name for addressBookGroup
get name(){var _a,_b;const additionalData=this._additionalData;return(_b=(_a=additionalData===null||additionalData===void 0?void 0:additionalData.displayName)!==null&&_a!==void 0?_a:additionalData===null||additionalData===void 0?void 0:additionalData.groupName)!==null&&_b!==void 0?_b:additionalData===null||additionalData===void 0?void 0:additionalData.organizationName;}get role(){return this._role;}get type(){return this._type;}get inheritances(){return this._inheritances;}get isDirect(){return this._isDirect;}get hasContributorRole(){return ContributorRoles.includes(this._role);}get hasName(){return!!this.name;}get invited(){var _a;return(_a=this._inheritances)===null||_a===void 0?void 0:_a.includes('deep');}get isAdmin(){var _a;return(_a=this._inheritances)===null||_a===void 0?void 0:_a.includes('deep_override');}}const CollaboratorUpdater=new ItemUpdater({localItemType:Collaborator,remoteIdProperty:'id',propertyUpdater:new PropertyUpdater({'_type':{name:'type',choices:CollaboratorTypes},'_role':{name:'role',choices:CollaboratorRoles},'_inheritances':{name:'inheritances',isArray:true,choices:InheritanceTypes},'_additionalData':{name:'additionalData',format:'object'},'_isDirect':{name:'isDirect',format:'boolean'}})});/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/const RepositoryOwnerTypes=['org','user'];const TeamStates=['active','discarded'];/**
 * Represents the notion of a "team" of Adobe account
 * holders that collaborate on projects.
 *
 * @example
 * // Instatiate list and load contents
 * const teamsList = core.spaceContext.getTeams().getList(...options);
 * await waitForListLoad(teamsList);
 *
 * // Get the first team in the list as an example.
 * const team = teamsList.items[0];
 *
 * // Perform some actions on a team.
 * await team.rename('newName');
 * await team.archive();
 * await team.restore();
 *
 * // log the teamID
 * console.log(team.teamID)
 *
 */class Team extends ShareableItem{constructor(){super(...arguments);this._created=new Date();this._createdBy='';this._name='';this._repositoryID='';this._repositoryName='';this._state='active';this._role='none';}/**
     * The unique id that represents the team.
     */get teamID(){return this.id;}get created(){return this._created;}get createdBy(){return this._createdBy;}/**
     * The user-visible name assigned to the team
     */get name(){return this._name;}/**
     * The description property of this team.
     *
     * @note Only available after a call to ensureDescription()
     */get description(){return this._description;}/**
     * The unique id of the repository that owns this team
     */get repositoryID(){return this._repositoryID;}/**
     * The user-visible name of the repository (i.e. the organization name)
     * that owns this team
     */get repositoryName(){return this._repositoryName;}get repositoryOwnerID(){return this._repositoryOwnerID;}get repositoryOwnerEmail(){return this._repositoryOwnerEmail;}get repositoryOwnerType(){return this._repositoryOwnerType;}/**
     * The role or permissions of the user for this team.
     * 'editor' and 'owner' are combined for backward
     * compatibility.
     * @deprecated Use 'role' instead.
     */get collaboratorRole(){oneTimeWarning('collaboratorRoleDeprecated','The property collaboratorRole has been depecrated in favor of role.');return this._role==='owner'?'editor':this._role;}/**
     * The role or permissions of the user for this team.
     * can be any of the following values: 'editor', 'viewer'
     * 'owner'.
     *
     * @note The 'viewer' role is not set in any workflow currently.
     */get role(){return this._role;}get state(){return this._state;}/**
     * The links provided by the service for this team.
     *
     * @private
     */get _links(){return this.__links;}/**
     * Archive/Discard team
     *
     * @NOTE Currently there are some inconsistencies in how the API's are
     * named within Projects
     * Team API uses “discarded”, Project API uses “archived”
     */async archive(){await this._core.spaceContext.archiveTeam(this);}/**
     * Create a space for this team.
     *
     * @param data {IProjectsCreateData}
     */async createSpace(data){return await this._core.spaceContext.createSpace(this,data);}/**
     * Permanently Delete a Team that has already been discarded.
     *
     */async permanentlyDelete(){await this._core.spaceContext.permanentlyDeleteTeam(this);}/**
     * Rename this Team.
     *
     * @param newName
     */async rename(newName){await this._core.spaceContext.renameTeam(this,newName);}/**
     * Restore this Team
     */async restore(){await this._core.spaceContext.restoreTeam(this);}/**
     * Update properties on this team
     */async update(data){await this._core.spaceContext.updateTeam(this,data);}/**
     * Ensures the description is loaded and available
     * on a team.
     */async ensureDescription(){await this._core.spaceContext.loadTeamProperties(this);}}__decorate([observable],Team.prototype,"created",null);__decorate([observable],Team.prototype,"createdBy",null);__decorate([observable],Team.prototype,"name",null);__decorate([observable],Team.prototype,"description",null);__decorate([observable],Team.prototype,"repositoryID",null);__decorate([observable],Team.prototype,"repositoryName",null);__decorate([observable],Team.prototype,"repositoryOwnerID",null);__decorate([observable],Team.prototype,"repositoryOwnerEmail",null);__decorate([observable],Team.prototype,"repositoryOwnerType",null);__decorate([observable],Team.prototype,"collaboratorRole",null);__decorate([observable],Team.prototype,"role",null);__decorate([observable],Team.prototype,"state",null);__decorate([observable],Team.prototype,"_links",null);const TeamUpdater=new ItemUpdater({localItemType:Team,remoteIdProperty:'id',propertyUpdater:new PropertyUpdater({'_created':{name:'createDate',format:'date'},'_createdBy':'createdBy','_description':'description','_name':'name','_repositoryID':'repositoryId','_repositoryName':'repositoryName','_repositoryOwnerID':'repositoryOwner.id','_repositoryOwnerEmail':'repositoryOwner.email','_repositoryOwnerType':{name:'repositoryOwner.type',choices:RepositoryOwnerTypes},'_role':{name:'role',choices:CollaboratorRoles},'_state':{name:'state',choices:TeamStates},'__links':{name:'_links',format:'object'}})});/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/const OrderFieldToIProjectsTeamsOrderBy={'name':'name','created':'createDate'};const OrderFieldToComparator$5={name(a,b){return compareStrings(a.name,b.name);},created(a,b){return compareValues(a.created,b.created);}};class TeamOrder extends createItemOrderFactory(OrderFieldToComparator$5){}TeamOrder.default=new TeamOrder('ascending','name');/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/class TeamLoader{constructor(_teamPool,_projectInterface){this._teamPool=_teamPool;this._projectInterface=_projectInterface;}async loadPage(options){return await this._loadPage(options);}async _loadPage(options,start){const{updateContext,limit,filter,order}=options;// We will ignore the update if we had local changes sooner than this timestamp.
const latency=this._teamPool._core.environment.getValue('PROJECTS_LIST_UPDATE_LATENCY');const mostRecentValidMutation=Date.now()-latency;const result=await this._projectInterface.getTeams({orderBy:OrderFieldToIProjectsTeamsOrderBy[order.field],orderDirection:order.direction,start,limit,nameContains:filter===null||filter===void 0?void 0:filter.nameContains,state:filter===null||filter===void 0?void 0:filter.state});const session=this._teamPool.createUpdateSession(updateContext,mostRecentValidMutation);const items=TeamUpdater.updateRemoteItems(session,result.teams);session.commit();// Check if we have another page to load.
let loadNextPage;// Note that it is important to skip the entire page size,
// even if we didn't get any items back.
// The service is based on USS which might filter out items
// on the fly when they are retrieved instead of ahead of time
// when the total limit is computed. As a result, some pages might
// even come in empty.
const nextStart=result.pageSpec.start+result.pageSpec.limit;if(nextStart<result.pageSpec.totalLimit){loadNextPage=options=>this._loadPage(options,nextStart);}return{items,total:result.pageSpec.totalLimit,loadNextPage,mostRecentValidMutation};}}/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2022 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/class OrgRepository extends ItemBase{constructor(){super(...arguments);this._repositoryID='';}get repositoryID(){return this._repositoryID;}/**
     * Create a team under /content/assets folder.
     */async createTeam(data){return await this._core.spaceContext.createTeam(this,data);}}__decorate([observable],OrgRepository.prototype,"repositoryID",null);const OrgRepositoryUpdater=new ItemUpdater({localItemType:OrgRepository,remoteIdProperty:'repositoryId',propertyUpdater:new PropertyUpdater({'_repositoryID':'repositoryId'})});/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2022 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/class OrgRepositoryLoader{constructor(_orgRepositoryPool,_projectInterface){this._orgRepositoryPool=_orgRepositoryPool;this._projectInterface=_projectInterface;}async loadPage({updateContext}){const result=await this._projectInterface.getOrgRepositories();const session=this._orgRepositoryPool.createUpdateSession(updateContext);const items=OrgRepositoryUpdater.updateRemoteItems(session,result.repositories);session.commit();return{items};}}/*************************************************************************
*   ADOBE CONFIDENTIAL
*
*   Copyright 2022 Adobe
*   All Rights Reserved.
*
*   NOTICE:  All information contained herein is, and remains
*   the property of Adobe and its suppliers, if any. The intellectual
*   and technical concepts contained herein are proprietary to Adobe
*   and its suppliers and are protected by all applicable intellectual
*   property laws, including trade secret and copyright laws.
*   Dissemination of this information or reproduction of this material
*   is strictly forbidden unless prior written permission is obtained
*   from Adobe.
**************************************************************************/ /**
 * Returns a Promise that resolves when a List is loaded.
 * @param list to monitor for loading
 */function waitForListLoad(list){const listEventSource=list;return new Promise(resolve=>{function onStatusChange(){if(list.status!==AssetListStatus.Loading){listEventSource.off(STATE_CHANGED,onStatusChange);resolve();}}listEventSource.on(STATE_CHANGED,onStatusChange);// if List is already loaded, resolve now
onStatusChange();});}/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/ // We want to refresh teams only if we didn't get the list in the past 5 minutes.
// This avoids loading teams again during auto-provisioning in case the client
// already fetched the teams.
const TEAM_REFRESH_TIMEOUT=5*60*1000;function createTeamRoleGetter(teams){const map=new Set(teams.items.map(team=>team.id));return teamID=>map.has(teamID)?'MEMBER':'NONE';}function getLinks(item){const links=item._links;if(!links){throw new SAMError('INVALID_DATA','Object has not been loaded correctly, missing "_links" property.');}return links;}class SpaceContext{constructor(_core){this._core=_core;this._orgRepositoryPool=new ItemPool(this._core,'orgRepository');this._teamPool=new ItemPool(this._core,'team');this._spacePool=new ItemPool(this._core,'space');this._projectInterface=new ProjectInterface(this._core);this._rapi=new RepositoryInterface(this._core);this._teamRoleGetterFactory=async()=>{const teams=await this._fetchTeams();return createTeamRoleGetter(teams);};this._teamPoolDelegate={onItemsUpdated:()=>{// Iterate on all the known spaces and update their teamRole based on what we know from the list of Teams.
// Note that this might update spaces that have been discarded, but that's alright as they might be restored
// at some point in the future. Since `this.getSpaces().getList()` will trigger fetching the Teams, it is
// expected that the Team list will typically already be loaded, so it should not use `getTeams().getList()`
// since that will cause it to fetch the Teams list again. Fetching teams as a side-effect of unit tests that
// manipulate Teams using the teamPool will unexpectedly cause the teams list to load without any Nock mock
// to provide it.
const teams=this.getTeams()._getExistingList(TeamOrder.default);// Teams List won't exist if manipulating the teamPool without loading the teams first.
// Teams List will be empty when the TeamLoader converts the service response to Team models via
// TeamUpdater.updateRemoteItems(), because it triggers ItemPool.onItemsUpdated() before it has actually
// put the items in the List.
if(!teams||!teams.items.length){this._core.environment.debug('[SpaceContext._teamPoolDelegate] skipping update of Space.teamRole -- no teams');return;}const spacePool=this._spacePool;const getTeamRole=createTeamRoleGetter(teams);const spaceSession=spacePool.createUpdateSession('Updating teamRole across all spaces');this._spacePool.forEach(space=>{const newTeamRole=getTeamRole(space.teamID);if(space.teamRole!==newTeamRole){SpaceUpdater.updateLocalItem(spaceSession,space,{teamRole:newTeamRole});}});spaceSession.commit();}};// Make sure we have a delegate to update all the teamRoles of the spaces once a new team is added.
this._teamPool.addDelegate(this._teamPoolDelegate,'context');}get projectInterface(){return this._projectInterface;}get orgRepositoryPool(){return this._orgRepositoryPool;}get teamPool(){return this._teamPool;}get spacePool(){return this._spacePool;}/**
     * Returns a cached list of links for the project service index route.
     */async discoverLinks(){return await this._projectInterface.discoverLinks();}getOrgRepositories(){const loader=new OrgRepositoryLoader(this._orgRepositoryPool,this._projectInterface);return new ItemSource(this._orgRepositoryPool,[loader]);}getTeams(){const loader=new TeamLoader(this._teamPool,this._projectInterface);return new ItemSource(this._teamPool,[loader]);}getSpaces(){// Make sure that the space loader checks for team membership during load.
const loader=new SpaceLoader(this._spacePool,this._projectInterface,this._teamRoleGetterFactory);return new ItemSource(this._spacePool,[loader]);}async _fetchTeams(){// Get the list with refreshTimeOut so that it will not immediately refresh if the list already exists
const teams=this.getTeams().getList(TeamOrder.default,undefined,{refreshTimeout:TEAM_REFRESH_TIMEOUT});await waitForListLoad(teams);return teams;}async provisionType1Team(){// Auto-provision a team for CCI user if the user is not currently sponsoring a team.
if(this._core.environment.getValue('ACCOUNT_TYPE')!=='type1'){return undefined;}const teams=await this._fetchTeams();const userId=this._core.environment.getValue('USER_ID');let team=teams.items.find(team=>team.repositoryOwnerID===userId&&team.repositoryOwnerType==='user');if(!team){// This should automatically add the team to the lists.
const response=await this._projectInterface.provisionTeam();// The team might be just created, if we are refreshing the list of teams
// it might not exist yet, so we have to keep it alive until USS is eventually consistent.
const session=this._teamPool.createMutationSession();team=TeamUpdater.updateRemoteItem(session,response);session.commit();}return team;}async createTeam(orgRepository,data){const response=await this._projectInterface.createTeam(Object.assign(Object.assign({},data),{repositoryId:orgRepository.repositoryID}));const session=this._teamPool.createMutationSession();const team=TeamUpdater.updateRemoteItem(session,response);session.commit();return team;}async _renameAsset(id,newName){if(!validatePlatformRepoName(newName)){// Validate the name here to avoid resolving the asset if the name is invalid.
throw new SAMError('INVALID_PARAMETER','Invalid name provided for the rename operation.');}// FIXME: `item._links[RelType.PRIMARY]` already has the resolved link for the asset.
// We could reuse the link to avoid a separate resolve by id call.
const asset=await this._core.hostAssetContext.getAssetWithCloudID(id);await asset.rename(newName);// Return the new name of the asset, just in case the server decided to change it.
return asset;}async _renameTeam(team,update){if(!update.name){return;}const asset=await this._renameAsset(team.id,update.name);const updateSession=this.teamPool.createMutationSession();TeamUpdater.updateLocalItem(updateSession,team,{name:asset.name});updateSession.commit();}async renameTeam(team,newName){await this.updateTeam(team,{name:newName});}async restoreTeam(team){await ItemBase.runExclusiveTask('restore',[team],async()=>{try{const links=getLinks(team);const updateSession=this.teamPool.createUpdateSession();await this._projectInterface.restoreTeam(links);TeamUpdater.updateLocalItem(updateSession,team,{state:'active'});updateSession.commit();}catch(e){// We want to avoid updating the pool if
// there are errors like CONFLICT that could occur.
throw new SAMError('UNEXPECTED_RESPONSE','An error occured restoring team');}});}async archiveTeam(team){await ItemBase.runExclusiveTask('archive',[team],async()=>{// TODO: should this be createMutationSession?
const updateSession=this.teamPool.createUpdateSession();try{const links=getLinks(team);await this._projectInterface.archiveTeam(links);}catch(error){const e=error;// @TODO https://jira.corp.adobe.com/browse/SAM-2064
// Temporary fallback, remove once M2 APIs are in prod
if(e.code==='INVALID_DATA'){const asset=await this._core.hostAssetContext.getAssetWithCloudID(team.id);await asset.discard();}else{throw e;}}TeamUpdater.updateLocalItem(updateSession,team,{state:'discarded'});updateSession.commit();});}/**
     * The Projects services accepts only
     * a string value with the length
     * less than or equal to 1000.
     */_validateDescription(value){return value.length<=1000;}_validateColor(value){return /^#[A-Fa-f0-9]{6}$/.test(value);}_getPatchOP(value,path,existingValue,validator){if(validator&&!validator(value)){throw new SAMError('INVALID_DATA',`Property ${path} has invalid value`);}// If there was a description and now there
// is none, we should "remove".
if(value.length===0&&existingValue&&existingValue.length>0){return{op:'remove',path};}return{op:existingValue?'replace':'add',value,path};}async _patchTeam(team,update){const{description}=update;const bodyData=[];const localUpdate={};if(description!==undefined){bodyData.push(this._getPatchOP(description,'/description',team.description,this._validateDescription));localUpdate.description=description;}if(!bodyData.length){return;}const links=getLinks(team);await this._projectInterface.patchTeam(links,bodyData);const updateSession=this.teamPool.createMutationSession();TeamUpdater.updateLocalItem(updateSession,team,localUpdate);updateSession.commit();}async updateTeam(team,update){await ItemBase.runExclusiveTask('update',[team],async()=>{const results=await Promise.allSettled([this._patchTeam(team,update),this._renameTeam(team,update)]);// Checks for rejection and calls the handler
// to delete the item because it has not been
// found.
this._checkForRejection(results,()=>{const session=this.teamPool.createUpdateSession();session.queueDiscardedItem(team);session.commit();});});}async loadTeamProperties(team){const links=getLinks(team);const properties=await this._projectInterface.getTeamProperties(links);if(!properties||Object.keys(properties).length===0){return;}const updateSession=this.teamPool.createMutationSession();TeamUpdater.updateLocalItem(updateSession,team,Object.assign({},properties));updateSession.commit();}async permanentlyDeleteTeam(team){if(team.state==='active'){throw new SAMError('FORBIDDEN','Teams that are not \'discarded\' cannot be permanently deleted.');}const onItemsChanged=event=>{if(event.discardedItems){const permDeleteTeamIDs=event.discardedItems.filter(item=>item.id===team.id).map(item=>item.id);if(permDeleteTeamIDs.length){this._teamPool.removeLocalItems(permDeleteTeamIDs);}}};this._teamPool.on(ITEMS_CHANGED,onItemsChanged);try{await ItemBase.runExclusiveTask('delete',[team],async()=>{const links=getLinks(team);await this._projectInterface.permanentlyDeleteTeam(links);const updateSession=this.teamPool.createUpdateSession();updateSession.queueDiscardedItem(team);updateSession.commit();});}finally{this.teamPool.off(ITEMS_CHANGED,onItemsChanged);}}// Reload space is an implementation detail of the space context,
// external projects should use space.load() instead.
async[reloadSpace](space){const latency=this._core.environment.getValue('PROJECTS_ITEM_UPDATE_LATENCY');await space.waitForMutationPropagationIfNeeded(latency);const links=getLinks(space);const result=await this._projectInterface.reloadSpace(links,SPACE_FULL_SELECTOR);const session=this._spacePool.createUpdateSession();SpaceUpdater.updateLocalItem(session,space,result);session.commit();}async moveSpaces(spaces,team){return await ItemBase.runExclusiveTask('move',spaces,async()=>{const targetAsset=await this._core.hostAssetContext.getAssetWithCloudID(team.id);const spacesById=new Map();const ops=spaces.map(space=>{spacesById.set(space.id,space);return{op:'move',id:space.id,source:{'repo:assetId':space.id,'repo:repositoryId':space.repositoryID},target:{'repo:path':`${targetAsset.repoPath}/${space.name}`,'repo:repositoryId':space.repositoryID}};});return await this._runOperations(ops,spacesById,{teamId:team.id,teamName:team.name});});}async archiveSpaces(spaces){return await ItemBase.runExclusiveTask('archive',spaces,async()=>{const spacesById=new Map();const ops=spaces.map(space=>{spacesById.set(space.id,space);return{op:'discard',id:space.id,target:{'repo:assetId':space.id,'repo:repositoryId':space.repositoryID}};});return await this._runOperations(ops,spacesById);});}async restoreSpaces(spaces,restoreNameMap){return await ItemBase.runExclusiveTask('restore',spaces,async()=>{const spacesById=new Map();const ops=spaces.map(space=>{spacesById.set(space.id,space);return{op:'restore',id:space.id,target:{'repo:assetId':space.id,'repo:repositoryId':space.repositoryID},name:restoreNameMap===null||restoreNameMap===void 0?void 0:restoreNameMap.get(space)};});return await this._runOperations(ops,spacesById);});}async _runOperations(ops,spacesById,additionalSpaceUpdates={}){return await this._rapi.runOperationsForContext(ops,spacesById,this._spacePool,(session,space,remoteItem)=>{if(!remoteItem){throw new SAMError('UNEXPECTED_RESPONSE','Missing metadata from asset bulk operation.');}// We want to update the repo:path of all the descendants of the space only in case of move/rename.
if(space.pathName!==remoteItem['repo:path']){const assetSession=this._core.hostAssetContext.assetPool.createUpdateSession();// make sure we update the repo:path of all the descendants of this folder
this._core.hostAssetContext.assetPool.forEach(item=>{// checking if the item's repoPath starts with the folder's repo:path with '/' appended
// We also need to make sure that we update the asset model for the space itself as well
if(item.repoPath===space.pathName||item.repoPath.startsWith(space.pathName+'/')){const newChildPath=item.repoPath.replace(space.pathName,remoteItem['repo:path']);AdobeAssetUpdater.updateLocalItem(assetSession,item,{'repo:path':newChildPath});}});assetSession.commit();}SpaceUpdater.updateLocalItem(session,space,Object.assign({state:remoteItem['repo:state']==='ACTIVE'?'active':'archived',name:remoteItem['repo:name'],pathName:remoteItem['repo:path']},additionalSpaceUpdates));return undefined;},[{// Refresh this space to make sure we have the latest version of it.
// Note that we cannot use 404 - NOT_FOUND as a sign that the space has been
// permanently deleted as we get that same error code when the space
// is still active, just that the user is not allowed to archive/restore it.
// It is better to just reload the space to validate we still have access to
match:error=>error.code==='ACCESS_DENIED'||error.code==='NOT_FOUND',action:async space=>{return await space.load().catch(error=>{return{model:space,error:error};});}}]);}async createSpaceBookmarks(spaces){return this._bookmarkSpaces('ADD',spaces);}async removeSpaceBookmarks(spaces){return this._bookmarkSpaces('REMOVE',spaces);}async _bookmarkSpaces(op,spaces){await ItemBase.runExclusiveTask('bookmark',spaces,async()=>{var _a;const userId=this._core.environment.getValue('USER_ID');// Attempt to make the change ahead of time.
const change={bookmarked:op==='ADD'};const localSession=this.spacePool.createUpdateSession();const spaceById=new Map();const items=spaces.map(space=>{spaceById.set(space.id,{space,wasBookmarked:space.isBookmarked});SpaceUpdater.updateLocalItem(localSession,space,change);return{projectUrn:space.id,userId};});localSession.commit();let response;try{response=await this._projectInterface.bookmarkOp({op,items});}finally{if(response){for(const item of response.responses){const info=spaceById.get((_a=item.request)===null||_a===void 0?void 0:_a.projectUrn);if(info){info.status=item.status;}}}// Revert all incomplete changes.
const restoreSession=this.spacePool.createUpdateSession();const mutationSession=this.spacePool.createMutationSession();for(const{space,wasBookmarked,status}of spaceById.values()){if(status===201){// Reapply the change, in case there was a different fetch in-between.
// This should also force the mutation timestamp to update on the space.
SpaceUpdater.updateLocalItem(mutationSession,space,change);}else{// Revert the local change.
SpaceUpdater.updateLocalItem(restoreSession,space,{bookmarked:wasBookmarked});// Check if the item was removed on a different device
// and remove it from internal lists too.
if(status===404){restoreSession.queueDiscardedItem(space);}}}restoreSession.commit();mutationSession.commit();}});}_checkForRejection(results,onRemoveItem){for(const result of results){if(result.status==='rejected'){const error=result.reason;// Remove the item entirely
if(error instanceof SAMError&&error.code==='NOT_FOUND'){onRemoveItem();}throw error;}}}async updateSpace(space,update){// Make both rename and patch go through the same exclusive task,
// to allow them to execute in parallel.
await ItemBase.runExclusiveTask('update',[space],async()=>{const results=await Promise.allSettled([this._renameSpace(space,update),this._patchSpace(space,update)]);this._checkForRejection(results,()=>{const session=this.spacePool.createUpdateSession();session.queueDiscardedItem(space);session.commit();});});}async _renameSpace(space,update){const{name}=update;if(name===undefined){return;}const asset=await this._renameAsset(space.id,name);const updateSession=this.spacePool.createMutationSession();SpaceUpdater.updateLocalItem(updateSession,space,{name:asset.name,pathName:asset.repoPath});updateSession.commit();}async _patchSpace(space,update){const{description,color}=update;const bodyData=[];const localUpdate={};if(description!==undefined){bodyData.push(this._getPatchOP(description,`/description`,space.description,this._validateDescription));localUpdate.description=description;}if(color!==undefined){bodyData.push(this._getPatchOP(color,`/color`,space.color,this._validateColor));localUpdate.color=color;}if(!bodyData.length){return;}const links=getLinks(space);// Ideally, the patch would return the updated state, but that's not the case here.
await this._projectInterface.patchSpace(links,bodyData);// We will have to assume that a successful change means the changed values are the latest ones.
const updateSession=this.spacePool.createMutationSession();SpaceUpdater.updateLocalItem(updateSession,space,localUpdate);updateSession.commit();}async createSpace(team,data){const links=getLinks(team);this._validateColor(data.color);this._validateDescription(data.description);validatePlatformRepoName(data.name);const response=await this._projectInterface.createSpace(links,Object.assign(Object.assign({},data),{parentId:team.id}));// A space might not show up until a few seconds later, so we must keep it alive during this time.
const updateSession=this.spacePool.createMutationSession();const space=SpaceUpdater.updateRemoteItem(updateSession,Object.assign(Object.assign({},response),{// Make sure the service injects the teamId.
teamId:team.id}));updateSession.commit();return space;}async getEnclosingSpace(assetId){const spaceMap=await this.getEnclosingSpaces([assetId]);return spaceMap.get(assetId);}async getEnclosingSpaces(assetIds){// The :context API uses the USS to lookup the enclosing space, so it suffers by the
// same amount of latency as the listing APIs. We will ignore the info we get from this
// API if the asset was mutated more recently than the maximum expected latency for USS.
const latency=this._core.environment.getValue('PROJECTS_LIST_UPDATE_LATENCY');const mostRecentValidMutation=Date.now()-latency;// We will ignore the update if we had local changes sooner than this timestamp.
const result=await this._projectInterface.getEnclosingSpaces(assetIds.map(id=>({'repo:assetId':id})));const map=new Map();const updateSession=this.spacePool.createUpdateSession('get enclosing spaces',mostRecentValidMutation);for(const item of result.responses){if(item.status!==200){continue;}const id=item.request['repo:assetId'];const space=SpaceUpdater.updateRemoteItem(updateSession,item.body);map.set(id,space);}updateSession.commit();return map;}async lookupSpaceById(id){let space=this._spacePool.getLocalItemById(id);if(!space){// Note that we don't have a local space, so we don't have to worry about eventual consistency on this item.
const response=await this._projectInterface.getSpace(id,SPACE_FULL_SELECTOR);const session=this._spacePool.createUpdateSession();space=SpaceUpdater.updateRemoteItem(session,response);session.commit();}return space;}/**
     * This API is temporary and it is specifically for Projects UI to use with SS workflows.
     * It will eventually be deprecated in favor of using notifications
     * @param teamId
     */onUserLeftTeam(teamId){const team=this._teamPool.getLocalItemById(teamId);if(team){const session=this._teamPool.createUpdateSession();session.queueDiscardedItem(team);session.commit();}}}__decorate([memoize],SpaceContext.prototype,"getOrgRepositories",null);__decorate([memoize],SpaceContext.prototype,"getTeams",null);__decorate([memoize],SpaceContext.prototype,"getSpaces",null);/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/class CollaboratorLoader{constructor(_collaboratorPool,_invitationInterface,_urn){this._collaboratorPool=_collaboratorPool;this._invitationInterface=_invitationInterface;this._urn=_urn;}async loadPage({updateContext}){// FIXME: Implement latency tracker once we move more collaborator operations into SAM.JS.
// Note, this request is piggy-backed, so if we load both the collaborators and invited collaborators at the same
// time, it only results in one network call
const result=await this._invitationInterface.getCollaborators(this._urn);// Update the collaborators
const collaboratorUpdateSession=this._collaboratorPool.createUpdateSession(updateContext);const directSet=new Set(result.directCollaborators.map(({id})=>id));result.collaborators.forEach(collaborator=>collaborator.isDirect=directSet.has(collaborator.id));const collaborators=CollaboratorUpdater.updateRemoteItems(collaboratorUpdateSession,result.collaborators);collaboratorUpdateSession.commit();return{items:collaborators};}}/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2022 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/class InvitedCollaborator extends ItemBase{constructor(){super(...arguments);this._email='';this._role='viewer';this._canComment=false;this._canShare=false;this._acceptanceRequired=false;this._created=new Date();}get invitationID(){return this.id;}// Invited email
get email(){return this._email;}get role(){return this._role;}get canComment(){return this._canComment;}get canShare(){return this._canShare;}get acceptanceRequired(){return this._acceptanceRequired;}get inheritance(){return this._inheritance;}get created(){return this._created;}}const InvitedCollaboratorUpdater=new ItemUpdater({localItemType:InvitedCollaborator,remoteIdProperty:'id',propertyUpdater:new PropertyUpdater({'_email':'email','_role':{name:'role',choices:CollaboratorRoles},'_canComment':{name:'canComment',format:'boolean'},'_canShare':{name:'canShare',format:'boolean'},'_acceptanceRequired':{name:'acceptanceRequired',format:'boolean'},'_inheritance':{name:'inheritance',choices:InheritanceTypes},'_created':{name:'created',format:'date_as_number'}})});/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2022 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/class InvitedCollaboratorLoader{constructor(_invitedCollaboratorPool,_invitationInterface,_urn){this._invitedCollaboratorPool=_invitedCollaboratorPool;this._invitationInterface=_invitationInterface;this._urn=_urn;}async loadPage({updateContext}){// FIXME: Implement latency tracker once we move more collaborator operations into SAM.JS.
// Note, this request is piggy-backed, so if we load both the collaborators and invited collaborators at the same
// time, it only results in one network call
const result=await this._invitationInterface.getCollaborators(this._urn);// Update the pending invitations
const invitedCollaboratorUpdateSession=this._invitedCollaboratorPool.createUpdateSession(updateContext);const invitedCollaborators=InvitedCollaboratorUpdater.updateRemoteItems(invitedCollaboratorUpdateSession,result.invitations);invitedCollaboratorUpdateSession.commit();return{items:invitedCollaborators};}}/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2022 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/class CollaboratorsByAssetID extends ItemBase{constructor(){super(...arguments);this._collaborators=[];this._error=undefined;}get getAssetID(){return this.id;}get collaborators(){return this._collaborators;}get error(){return this._error;}}const CollaboratorFormat={parse:value=>{return value;},isEqual:(a,b)=>{return isDeepEqual(a,b);}};function getCollaborators(source,dest){const collaboratorPool=new ItemPool(dest._core,'collaborator');const session=collaboratorPool.createUpdateSession();// failed to fetch collaborators for this asset
if(source.statusCode!==200){return[];}const response=JSON.parse(source.response);const collaborators=CollaboratorUpdater.updateRemoteItems(session,response.collaborators);session.commit();return collaborators;}const ErrorFormat={parse:value=>{return value;},isEqual:(a,b)=>{return isDeepEqual(a,b);}};function getError(source){if(source.statusCode===200){return undefined;}const response=JSON.parse(source.response);return new SAMError(response.statusCode,response.error);}const CollaboratorsByAssetIDUpdater=new ItemUpdater({localItemType:CollaboratorsByAssetID,remoteIdProperty:'urn',propertyUpdater:new PropertyUpdater({'_collaborators':{get:getCollaborators,format:CollaboratorFormat},'_error':{get:getError,format:ErrorFormat}})});/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2022 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/class CollaboratorsByAssetIDLoader{constructor(_collaboratorsByAssetIDPool,_invitationInterface,_assetIDs){this._collaboratorsByAssetIDPool=_collaboratorsByAssetIDPool;this._invitationInterface=_invitationInterface;this._assetIDs=_assetIDs;}async loadPage(options){return await this._loadPage(options);}async _loadPage(options,start=0){let{updateContext,limit}=options;limit=limit===undefined?this._invitationInterface.batchRequestLimit:limit;// max limit supported by invitation service batch api is 50, capping limit
limit=Math.min(limit,this._invitationInterface.batchRequestLimit);let slicedAssetIDs=this._assetIDs.slice(start,start+limit);const batchInvitationResponse=await this._invitationInterface.getCollaboratorListForUrns(slicedAssetIDs);const session=this._collaboratorsByAssetIDPool.createUpdateSession(updateContext);const collaboratorByAssetIDs=CollaboratorsByAssetIDUpdater.updateRemoteItems(session,batchInvitationResponse.result);session.commit();// Check if we have another page to load.
let loadNextPage;if(start+collaboratorByAssetIDs.length<this._assetIDs.length){loadNextPage=options=>this._loadPage(options,start+collaboratorByAssetIDs.length);}return{items:collaboratorByAssetIDs,loadNextPage};}}/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/class CollaborationContext{constructor(_core){this._core=_core;this._collaboratorSourceMap=new Map();this._invitationInterface=new InvitationInterface(this._core);this._collaboratorsByAssetIDPool=new ItemPool(this._core,'collaboratorsByAssetID');}/**
     * get a list of Collaborators
     * @param assetsIDs list of assetIDs (including from Teams and Spaces, not just AdobeAssets)
     */getCollaboratorsForAssets(assetsIDs){const loader=new CollaboratorsByAssetIDLoader(this._collaboratorsByAssetIDPool,this._invitationInterface,assetsIDs);const source=new ItemSource(this._collaboratorsByAssetIDPool,[loader]);return source;}_getCollaboratorSources(assetID){const weakSources=this._collaboratorSourceMap.get(assetID);if(weakSources){const sources=weakSources.deref();if(sources){return sources;}}// We cannot share the pools for Collaborator/InvitedCollaborator objects between
// assets as they might have different roles for the same IDs.
const collaboratorPool=new ItemPool(this._core,'collaborator');const collaboratorLoader=new CollaboratorLoader(collaboratorPool,this._invitationInterface,assetID);const collaboratorSource=new ItemSource(collaboratorPool,[collaboratorLoader]);const invitedCollaboratorPool=new ItemPool(this._core,'invitedCollaborator');const invitedCollaboratorLoader=new InvitedCollaboratorLoader(invitedCollaboratorPool,this._invitationInterface,assetID);const invitedCollaboratorSource=new ItemSource(invitedCollaboratorPool,[invitedCollaboratorLoader]);const collaboratorSources={collaboratorPool,collaboratorSource,invitedCollaboratorPool,invitedCollaboratorSource};this._collaboratorSourceMap.set(assetID,new WeakRef$1(collaboratorSources));return collaboratorSources;}getCollaborators(assetID){return this._getCollaboratorSources(assetID).collaboratorSource;}removeCollaborator(assetID,collaborator){return this._invitationInterface.modifyCollaborators(assetID,{collaborators:[{id:collaborator.id,action:'remove'}]}).then(()=>{const{collaboratorPool}=this._getCollaboratorSources(assetID);const updateSession=collaboratorPool.createUpdateSession();updateSession.queueDiscardedItem(collaborator);updateSession.commit();});}getInvitedCollaborators(assetID){return this._getCollaboratorSources(assetID).invitedCollaboratorSource;}removeInvitedCollaborator(assetID,invitedCollaborator){return this._invitationInterface.modifyCollaborators(assetID,{invitations:[{id:invitedCollaborator.id,action:'remove'}]}).then(()=>{const{invitedCollaboratorPool}=this._getCollaboratorSources(assetID);const updateSession=invitedCollaboratorPool.createUpdateSession();updateSession.queueDiscardedItem(invitedCollaborator);updateSession.commit();});}}/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/ /**
 * Manager for observability via MobX - classes should call reportObserved
 * for any getters or methods that should be observable if used in the context
 * of MobX. Since SAM.js does not include MobX, clients need to makeObservable()
 * with their MobX instance
 */class MobX{constructor(){this._contexts=new Map();}/**
     * Register a MobX instance to make SAM.js observable.
     * Returns a function that can be called to unregister.
     */register(createAtom){// It can be the case the register is called multiple times with the same createAtom function,
// which can happen if multiple components are using SAM.js but sharing the same MobX instance.
// In this case, we don't want to create more atoms than necessary since that would cause performance
// problems - instead, we detect if the createAtom was already registered, and just keep a reference
// count instead of registering it multiple times.
let instanceInfo=this._contexts.get(createAtom);if(!instanceInfo){instanceInfo={id:uuid(),references:new Set()};this._contexts.set(createAtom,instanceInfo);}const refId=uuid();instanceInfo.references.add(refId);return()=>{const instanceInfo=this._contexts.get(createAtom);if(instanceInfo){instanceInfo.references.delete(refId);if(instanceInfo.references.size===0){this._contexts.delete(createAtom);}}};}/**
     * Called to report an observation on an object. Any reaction that observes this
     * will be triggered whenever the given change event on the object triggers.
     * In the simple case where we only have one change event for an object ('change'),
     * getters and methods can be instrumented with just environment.mobx.reportObserved(this).
     */reportObserved(object,event='change'){for(const[createAtom,{id}]of this._contexts){const key=`_atom_${id}_${event}`;let atom=object[key];if(!atom){const onChange=()=>atom.reportChanged();atom=createAtom(`${object.constructor.name}_${event}`,()=>object.on(event,onChange),()=>object.off(event,onChange));object[key]=atom;}atom.reportObserved();}}}/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/const NotFound=Symbol('NotFound');// Persistent cache based on indexedDB
class IndexedDBCache{constructor(_name,_core){this._name=_name;this._core=_core;}static isSupported(){if(typeof window==='undefined'||!window.indexedDB){return false;}try{const request=window.indexedDB.open('sam_indexeddb_test',1);request.onsuccess=()=>request.result.close();return true;}catch(error){return false;}}async _transaction(transactionType,requestsFn){const database=await this._connect();if(!database){return;}return new Promise(resolve=>{try{const transaction=database.transaction(this._name,transactionType);const objectStore=transaction.objectStore(this._name);const promResult=requestsFn(objectStore);transaction.onerror=err=>{this._core.environment.error(`transaction error: ${err}`);resolve(undefined);};transaction.oncomplete=()=>{resolve(promResult);};}catch(ex){// this can happens due to version upgrade when we close db.
this._core.environment.error(`transaction exception: ${ex}`);resolve(undefined);}});}async getItem(itemKey){return this._transaction('readonly',async objectStore=>{return new Promise(resolve=>{const request=objectStore.get(itemKey);request.onsuccess=()=>{resolve(request.result?{value:request.result.value,expiry:request.result.expiry}:undefined);};});});}async setItem(itemKey,value,expiry){return this._transaction('readwrite',objectStore=>{objectStore.put({id:itemKey,expiry,value});return;});}async deleteItem(itemKey){return this._transaction('readwrite',objectStore=>{objectStore.delete(itemKey);return;});}async _connect(){if(this._database){return this._database;}const version=this._core.environment.getValue('INDEXED_DB_VERSION');const request=window.indexedDB.open(this._name,version);return new Promise(resolve=>{request.onerror=err=>{this._core.environment.error(`CONNECTION_FAILED Unable to connect to IndexedDB: ${this._name}, error: ${err}`);resolve(undefined);};request.onupgradeneeded=()=>{const database=request.result;if(database.objectStoreNames.contains(this._name)){database.deleteObjectStore(this._name);}database.createObjectStore(this._name,{keyPath:'id'});};request.onsuccess=()=>{const database=this._database=request.result;database.onversionchange=evt=>{this._core.environment.error(`IndexedDb version changed detected ${this._name}.${version}, ${evt}`);// close current db connection allowing the other client to upgrade a version
database.close();database.onversionchange=null;this._database=undefined;};resolve(database);};});}}// Persistent cache based on localStorage
class LocalStorageCache{constructor(_name,_core){this._name=_name;this._core=_core;}static isSupported(){try{return typeof window!=='undefined'&&!!window.localStorage;}catch(e){// Firefox throws an exception when accessing localStorage in private mode
return false;}}_getKey(itemKey){return`${this._name}#${itemKey}`;}async getItem(itemKey){const storedValue=window.localStorage.getItem(this._getKey(itemKey));if(storedValue){try{const{value,expiry}=JSON.parse(storedValue);return{value,expiry:expiry?new Date(expiry):undefined};}catch(e){// ignore
}}return undefined;}async setItem(itemKey,value,expiry){const storedValue=JSON.stringify({expiry,value});window.localStorage.setItem(this._getKey(itemKey),storedValue);}async deleteItem(itemKey){window.localStorage.removeItem(this._getKey(itemKey));}}/**
 * Persistent cache of values using indexedDB - if the browser doesn't support indexedDB it falls back to localStorage,
 * and if neither is supported it'll just use a local in-memory cache that doesn't persist between sessions.
 */class Cache{constructor(_userId,_core,_persistentCache){this._userId=_userId;this._core=_core;// Local cache layer - this is an optimization if there's no persistent cache layer
this._localCache=new Map();this._name='SAM.js-'+this._userId;if(_persistentCache){// Clients can override SAM.js to use their own caching layer if required
this._persistentCache=_persistentCache;}else if(IndexedDBCache.isSupported()){this._persistentCache=new IndexedDBCache(this._name,_core);}else if(LocalStorageCache.isSupported()){this._persistentCache=new LocalStorageCache(this._name,_core);}}get name(){return this._name;}async getItem(itemKey,computeValue,validateValue){let cachedItem=this._localCache.get(itemKey);if(!cachedItem&&this._persistentCache){cachedItem=await this._persistentCache.getItem(itemKey);}// Check if the cached item expired or invalid - if so, ignore it
const isInvalid=validateValue&&cachedItem&&!validateValue(cachedItem.value);const isExpired=(cachedItem===null||cachedItem===void 0?void 0:cachedItem.expiry)&&cachedItem.expiry<=new Date(Date.now());if(isInvalid||isExpired){await this.deleteItem(itemKey);cachedItem=undefined;}// If we're passed in a computeValue function, use it to update the cache if there's no
// cached value (or it expired)
if(!cachedItem&&computeValue){const value=await computeValue();if(validateValue&&!validateValue(value)){throw new SAMError('UNEXPECTED_RESPONSE',`Value for cache key ${itemKey} is invalid: ${JSON.stringify(value)}`);}await this.setItem(itemKey,value);return value;}return cachedItem?cachedItem.value:NotFound;}async setItem(itemKey,value,expirationDurMsec=this._core.environment.getValue('CACHE_DEFAULT_TTL')){const expiry=expirationDurMsec?new Date(Date.now()+expirationDurMsec):undefined;this._localCache.set(itemKey,{value,expiry});if(this._persistentCache){await this._persistentCache.setItem(itemKey,value,expiry);}}async deleteItem(itemKey){this._localCache.delete(itemKey);if(this._persistentCache){await this._persistentCache.deleteItem(itemKey);}}}__decorate([synchronized,__param(0,key)],Cache.prototype,"getItem",null);// Utility for combining multiple signals:
const combineSignals=(options,...signals)=>{const controller=new AbortController();const removeListeners=()=>{signals.forEach(signal=>signal.removeEventListener('abort',onAbort));};const onAbort=()=>{controller.abort();removeListeners();};if(signals.some(signal=>signal.aborted)){onAbort();}else{signals.forEach(signal=>signal.addEventListener('abort',onAbort));}options.signal=controller.signal;return removeListeners;};var Env;(function(Env){Env[Env["Stage"]=0]="Stage";Env[Env["Production"]=1]="Production";})(Env||(Env={}));const DEFAULT_HOST_PRODUCT_DATA={PRODUCT_ID:'',PRODUCT_LOCATION:''};// Default settings
const DEFAULT_CONFIG={USER_ID:'',CLIENT_ID:'',ACCESS_TOKEN:'',ENVIRONMENT:Env.Production,HOST_PRODUCT_DATA:DEFAULT_HOST_PRODUCT_DATA,FETCH_REQUEST_TIMEOUT:60*1000,ASYNC_DEFAULT_DELAY:1*1000,CACHE_DEFAULT_TTL:30*24*60*60*1000,MIN_RETRY_INTERVAL:1*1000,MAX_RETRY_INTERVAL:2*60*1000,ONS_DOCUMENT_VISIBILITY_TIMEOUT:10000,ONS_DEFAULT_MAX_SUBSCRIPTIONS:5,ONS_DEFAULT_MAX_ASSETS_PER_SUBSCRIPTION:100,INDEXED_DB_VERSION:1,PROJECTS_LIST_UPDATE_LATENCY:3000,PROJECTS_ITEM_UPDATE_LATENCY:1000,ASSETS_LIST_UPDATE_LATENCY:100,VERSIONS_LIST_UPDATE_LATENCY:100,ASSET_COPY_NAME_FORMAT:'%@ copy (%d)',ASSET_CONFLICT_NAME_FORMAT:'%@ (%d)',USE_USS_TO_UPDATE_SBM:false// can set true if clients want to update SBM (using USS)
};const ENVIRONMENTS={[Env.Stage]:{LABEL:'Staging',ACP_CS_HOST:'platform-cs-stage.adobe.io',SYNC_SERVICE_HOST:'acp-ss-stage.adobe.io',PROJECTS_HOST:'ccprojects-stage.adobe.io',INVITATIONS_HOST:'invitations-stage.adobe.io',TRANSFER_SERVICE_HOST:'ats-stage.adobe.io',USS_HOST:'adobesearch-stage.adobe.io'},[Env.Production]:{LABEL:'Production',ACP_CS_HOST:'platform-cs.adobe.io',SYNC_SERVICE_HOST:'acp-ss.adobe.io',PROJECTS_HOST:'ccprojects.adobe.io',INVITATIONS_HOST:'invitations.adobe.io',TRANSFER_SERVICE_HOST:'ats.adobe.io',USS_HOST:'adobesearch.adobe.io'}};const isNonEmptyString=x=>typeof x==='string'&&Boolean(x);const isNumber=x=>typeof x==='number';const configItemValidators=[{key:'CLIENT_ID',validator:isNonEmptyString},{key:'USER_ID',validator:isNonEmptyString},{key:'ENVIRONMENT',validator:x=>isNumber(x)&&x in Env},{key:'HOST_PRODUCT_DATA',validator(hostProductData){if(!hostProductData){return false;}const{PRODUCT_ID,PRODUCT_LOCATION}=hostProductData;// required for USS queries
return isNonEmptyString(PRODUCT_ID)&&isNonEmptyString(PRODUCT_LOCATION);}}];// Only allow one retry on a 401 response to avoid getting into an infinite loop if we keep being given an invalid access token
const MAX_401_RETRIES=1;class Environment{constructor(_core,userConfig,_hooks){this._core=_core;this._hooks=_hooks;this._isTokenInvalid=true;this.mobx=new MobX();const config=Object.assign({},DEFAULT_CONFIG,userConfig);const invalidOptions=configItemValidators.filter(({key,validator})=>!validator(config[key]));if(invalidOptions.length){const invalidKeys=invalidOptions.map(({key})=>key).join(', ');throw new SAMError('INVALID_PARAMETER',`Invalid required options: ${invalidKeys}`);}if(config.ACCESS_TOKEN){this._isTokenInvalid=false;}else if(!_hooks.refreshAccessToken){throw new SAMError('INVALID_PARAMETER',`refreshAccessToken hook must be provided if ACCESS_TOKEN is not set`);}this._config=config;this._cache=new Cache(config.USER_ID,_core,_hooks.persistentCache);}get cache(){return this._cache;}getValue(key){return this._config[key];}setValue(key,value){this._config[key]=value;}get endpoints(){const env=this._config.ENVIRONMENT;return ENVIRONMENTS[env];}// Returns a unique device id for the client - this can be provided as a config option, or a guid can
// be generated (which will be cached across instances for the same user). Note that if a value is passed in,
// this takes precedence even if there's a cached device id.
async getDeviceId(){return this._config['DEVICE_ID']||(await this.cache.getItem('DEVICE_ID',async()=>uuid(),value=>typeof value==='string'));}_loggerEvent(message,level){if(this._core.listenerCount(MESSAGE_LOGGED)>0){this._core.emit(MESSAGE_LOGGED,new MessageLoggedEvent(message,level));}}// Reserve for informational messages that may be useful in debugging infrequent but major
// SAM.js system events, such as initializing, or refreshing auth token.
log(message){this._loggerEvent(message,LogLevel.Info);}// Reserve for detailed messages about complex coordinated async processes, such as List loading, that
// are difficult to trace without log messages, but are too noisy to include in regular production apps.
debug(message){this._loggerEvent(message,LogLevel.Debug);}// For error conditions that do not warrant throwing an exception that bubbles to the client, but could be
// useful for debugging purposes. E.g., an ItemUpdater failing to parse a field from a service response --
// devs should see and fix these errors immediately and have unit tests to validate it, but the same error
// in a production system should not necessarily be raised to the user.
error(message){this._loggerEvent(message,LogLevel.Err);}// For deprecation notices and possibly (but not definitively) bad configuration options, etc. These sorts of
// messages should include instructions on how to resolve the issue. E.g. how React treats warnings about missing
// `key` on children -- this isn't necessarily a breaking condition but often can cause bugs; since they are
// entirely avoidable, devs should work to eradicate the warnings so they do not become red herrings that must
// be investigated when an unrelated bug emerges.
warn(message){this._loggerEvent(message,LogLevel.Warn);}async _refreshAccessToken(){if(this._isTokenInvalid){if(!this._hooks.refreshAccessToken){// If a refresh hook wasn't provided, we just clear the token so we don't keep on
// attempting requests with an invalid token
return'';}this.log(`Refreshing access token from host...`);try{this._config.ACCESS_TOKEN=await this._hooks.refreshAccessToken(this._config.ACCESS_TOKEN);}catch(e){// The error could already be a SAM error due to the recursive fetch calls above.
throw SAMGenericError.wrapErrorIfNeeded('NO_ACCESS_TOKEN',`Failed to refresh access token`,e);}this._isTokenInvalid=false;this.log(`Refreshing access token ${this._config.ACCESS_TOKEN?'successful':'unsuccessful'}`);}return this._config.ACCESS_TOKEN;}async fetch(url,options={},numRetries=0){if(this._hooks.fetch){return this._hooks.fetch(url,options);}// If the access token is invalid, we wait for it to be refreshed:
let token=this._isTokenInvalid?await this._refreshAccessToken():this._config.ACCESS_TOKEN;if(!token){throw new SAMError('NO_ACCESS_TOKEN',`Unable to obtain access token - did you provide a refreshAccessToken hook?`);}// ONS uses a different auth header from other services, so this needs to be configurable
const authHeader=options.authHeader||'Authorization';delete options.authHeader;const requestId=uuid();const headers=Object.assign(Object.assign({},options.headers),{[authHeader]:`Bearer ${token}`,'X-Api-Key':this._config.CLIENT_ID,'X-Request-Id':requestId});// Include a timeout on the request (fetch doesn't have a timeout, so it will never resolve if the socket hangs up)
const abortController=new AbortController();let uncombineSignals=()=>{};if(options.signal){uncombineSignals=combineSignals(options,options.signal,abortController.signal);}else{options.signal=abortController.signal;}const timeout=setTimeout(()=>abortController.abort(),this.getValue('FETCH_REQUEST_TIMEOUT'));const startTime=Date.now();this.debug(`[${requestId}] ${options.method||'GET'} ${url}`);try{const response=await fetch(url,Object.assign(Object.assign({},options),{headers}));this.debug(`[${requestId}] ${response.status} (${Date.now()-startTime}ms)`);clearTimeout(timeout);if(response.status===401){// If we get a 401 response it usually means that access token has expired.
if(token!==this._config.ACCESS_TOKEN){// If the access token was already refreshed during the request, just retry and
// it will pick up the new token.
// Note that we are not using await here to avoid capturing the errors in the parent try block.
return this.fetch(url,options,numRetries+1);}else{// Otherwise it means we discovered the current token is invalid. We need to invalidate the token and retry. The retry
// will detect that the token is invalid and refresh it (if the host has provided a hook).
this._isTokenInvalid=true;if(numRetries<MAX_401_RETRIES){// Note that we are not using await here to avoid capturing the errors in the parent try block.
return this.fetch(url,options,numRetries+1);}}}return response;}catch(e){this.debug(`[${requestId}] Error - ${e} (${Date.now()-startTime}ms)`);throw SAMGenericError.wrapErrorIfNeeded('NETWORK_ERROR',`Failed network request when fetching: ${url}`,e);}finally{// If we combined signals, we need to uncombine after the request is done, otherwise we'll continue to add
// event listeners to the original signal and hit the maximum limit. This would both be a memory leak and
// result in some aborts not being handled.
uncombineSignals();}}// Returns a retry time based on the retry attempt number.
// For now, this uses the minimum retry interval a few times, before jumping to the maximum interval.
// We may want to change this to an exponential or Fibonacci backoff in future.
getRetryInterval(attempt){// We retry quickly a few times on failure, before backing off to a slower interval:
return this.getValue(attempt<3?'MIN_RETRY_INTERVAL':'MAX_RETRY_INTERVAL');}}__decorate([memoize],Environment.prototype,"getDeviceId",null);__decorate([synchronized],Environment.prototype,"_refreshAccessToken",null);var name="@ccx-public/shared-asset-model-js";var version="0.2.0";var publishConfig={registry:"https://artifactory.corp.adobe.com/artifactory/api/npm/npm-adobe-release-local/",scope:"@ccx-public"};var repository={type:"git",url:"https://git.corp.adobe.com/torq/acpl-model"};var license="UNLICENSED";var main="./dist/cjs/src/index.js";var module="./dist/mjs/src/index.js";var types="./dist/mjs/src/index.d.ts";var exports={".":{"import":"./dist/mjs/src/index.js",require:"./dist/cjs/src/index.js"}};var dependencies={"@types/json-patch":"0.0.30","abort-controller":"3.0.0","http-link-header":"1.0.2","uri-templates":"0.2.0",uuid:"3.3.2"};var engines={node:">=14.0.0"};var devDependencies={"@rollup/plugin-commonjs":"^20.0.0","@rollup/plugin-html":"^0.2.3","@rollup/plugin-json":"^4.1.0","@rollup/plugin-node-resolve":"^13.0.4","@rollup/plugin-replace":"^3.0.0","@types/http-link-header":"^1.0.2","@types/jest":"^26.0.23","@types/nock":"^11.1.0","@types/node-fetch":"^2.5.10","@types/react-dom":"^17.0.9","@types/uri-templates":"file:@types/uri-templates","@types/uuid":"^3.3.2","@typescript-eslint/eslint-plugin":"^4.22.0","@typescript-eslint/parser":"^4.22.0",autoprefixer:"^10.3.1",classnames:"^2.3.1","cross-fetch":"^3.1.4",eslint:"^7.25.0","fake-indexeddb":"^3.1.3",husky:"4.3.3",jest:"^26.6.3","lint-staged":"^10.3.0",mobx:"^6.3.2","mobx-react":"^7.2.0",nock:"^13.0.5",postcss:"^8.3.6",react:"^17.0.2","react-dom":"^17.0.2",rollup:"^2.56.2","rollup-plugin-copy":"^3.4.0","rollup-plugin-livereload":"^2.0.5","rollup-plugin-polyfill-node":"^0.7.0","rollup-plugin-postcss":"^4.0.1","rollup-plugin-serve":"^1.1.0","rollup-plugin-typescript2":"^0.30.0","ts-jest":"^26.4.4","ts-node":"^9.0.0",tslib:"^2.1.0",typedoc:"^0.19.1","typedoc-plugin-external-module-name":"^4.0.3",typescript:"4.2.4","typescript-plugin-css-modules":"^3.4.0"};var scripts={test:"node --allow-natives-syntax ../../node_modules/jest/bin/jest.js --no-cache","test:watch":"node --allow-natives-syntax ../../node_modules/jest/bin/jest.js --watchAll --no-cache",lint:"eslint --ext .ts,.tsx,.js .","lint:fix":"eslint --fix --ext .ts,.tsx,.js .",build:"rm -fr dist/* && tsc && rollup -c ./rollup.config.js && ./scripts/postbuild.js",typedoc:"typedoc --name 'Shared Asset Model (SAM) JS' --exclude '**/*.js' src/","publish-docs":"./scripts/generateDocs.sh",watch:"tsc --watch","build:demo":"rollup -c ./demo/rollup.config.ts","watch:demo":"rollup -c ./demo/rollup.config.ts --watch","forward:https":"sudo node ./demo/https_fwd.js"};var husky={hooks:{"pre-commit":"lint-staged"}};var packageJSON={name:name,version:version,"private":false,publishConfig:publishConfig,repository:repository,license:license,main:main,module:module,types:types,exports:exports,dependencies:dependencies,engines:engines,devDependencies:devDependencies,scripts:scripts,husky:husky,"lint-staged":{"**/*.{ts,tsx,js}":["eslint --fix","yarn test --bail --findRelatedTests --coverage=false"]}};const $OVERRIDE_SET=Symbol.for('com.adobe.ccac.samjs.extendclass.override_map');const $EMITTER=Symbol.for('com.adobe.ccac.samjs.extendclass.emitter');/**
 * Extends the provided `klass` with the properties with new behaviors, and ensures it supports the
 * EventEmitter interface. Optionally, it will make all getter properties observable.
 *
 * @param options: IExtendClassOptions
 * @example
 *     class MyClass {
 *         private _foo = 32;
 *         private _bar = 99;
 *         private _baz = {};
 *         refreshBaz(x) { some impl }
 *         get foo() { return this._foo; }
 *         get bar() { return this._bar; }
 *         get baz() { return this.baz; }
 *     }
 *     ExtendClass({
 *         klass: MyClass,
 *         extensions: {
 *             refreshBaz(x) { return x * 2; },       // ignored because it exists on MyClass
 *             newFn() { return this._foo; }          // Added
 *             // Getters/setters must use PropertyDescriptor syntax
 *             // NOTE: won't be automatically made observable
 *             aliasForFoo: {
 *                 get() {
 *                     // make this getter alias observable
 *                     this._core.environment.mobx.reportObserved('change');
 *                     return this._foo;
 *                 }
 *             }
 *         },
 *         overrides: {
 *             // replaces original refreshBaz
 *             refreshBaz(x) {
 *                 // Use the added TypedEventEmitter.dispatch()
 *                 this.dispatch({ type: 'bazRefresh' });
 *                 // invoke original oldFn
 *                 return this.oldFn.original(x);
 *             }
 *         },
 *         // When client subscribes to 'change' event, the extended class will proxy that event handler to the
 *         // 'incrementFoo' and 'incrementBar' events that the native implementation emits.
 *         eventMap: { change: [ 'incrementFoo', 'incrementBar' ] },
 *         observableMap: {
 *             // the `baz` getter will be made observable, bound to the 'bazRefresh' event
 *             'bazRefresh': [ 'baz' ]
 *         }
 *         // `foo` and `bar` getter will be made observable, bound to the 'change' event;
 *         defaultObservableEvent: 'change',
 *     });
 */function ExtendClass({klass,core,extensions={},overrides={},eventMap={},defaultObservableEvent,observableMap={}}){const originalProps=Object.getOwnPropertyDescriptors(klass.prototype);// SAM.cpp EventEmitter-ish interface is on the prototype's prototype
let emitterProps=originalProps;if(typeof emitterProps.on==='undefined'){emitterProps=Object.getOwnPropertyDescriptors(Object.getPrototypeOf(klass.prototype));}// Add reference to shared core if not already defined
if(!originalProps._core){Object.defineProperty(klass.prototype,'_core',{value:core});}// Some SAM.cpp classes (AssetList) have an event handling API similar to EventEmitter, and some don't
// (Asset). Meanwhile, most SAM.js classes implement TypedEventEmitter. This section patches the
// prototype to match the TypedEventEmitter API. If the SAM.cpp class doesn't have an event-handling
// API, an actual instance of EventEmitter is used instead.
if(!Object.getOwnPropertyDescriptor(klass.prototype,$EMITTER)){Object.defineProperties(klass.prototype,{[$EMITTER]:{get(){var _a;// Redefine the $EMITTER getter property for `this` instance to an actual EventEmitter, or an
// adapter to the SAM.cpp equivalent. The $EMITTER getter on the prototype remains unchanged
// so the next instance will get its own properly bound $EMITTER.
let emitter;if(typeof((_a=emitterProps.on)===null||_a===void 0?void 0:_a.value)==='function'){// SAM.cpp class has an event handling API already, so create an adapter bound
emitter={on:emitterProps.on.value.bind(this),off:emitterProps.off.value.bind(this),emit:emitterProps.trigger.value.bind(this),addListener:emitterProps.on.value.bind(this),removeListener:emitterProps.off.value.bind(this)};}else{// SAM.cpp class has no event handling API, so use an actual EventEmitter
emitter=new EventEmitter();}Object.defineProperty(this,$EMITTER,{value:emitter});return this[$EMITTER];}},on:{value(eventName,...rest){var _a;// Some SAM.cpp events map to multiple SAM.js events. If there's no mapping, then subscribe
// to `eventName` only.
const mappedEvents=(_a=eventMap[eventName])!==null&&_a!==void 0?_a:[eventName];mappedEvents.forEach(mappedEventName=>this[$EMITTER].on(mappedEventName,...rest));return this;}},addListener:{value(...args){return this.on(...args);}},off:{value(eventName,...rest){var _a;// Some SAM.cpp events map to multiple SAM.js events. If there's no mapping, then unsubscribe
// from `eventName` only.
const mappedEvents=(_a=eventMap[eventName])!==null&&_a!==void 0?_a:[eventName];mappedEvents.forEach(mappedEventName=>this[$EMITTER].off(mappedEventName,...rest));return this;}},removeListener:{value(...args){return this.off(...args);}},emit:{value(...args){return this[$EMITTER].emit(...args);}},// SAM.js TypedEventEmitter behavior
dispatch:{value(event){return this.emit(event.type,event,this);}}});}// Allow shortcut of { someMethod(): {} } instead of { someMethod: { value: function() {} } }
function makePropertyDesc(map,key){let propertyDesc=map[key];if(typeof map[key]==='function'){return{value:propertyDesc};}else if(['string','boolean','number'].includes(typeof map[key])){// TypeScript doesn't block clients from passing a primitive, and
// Object.defineProperty(obj, key, primitive) is a no-op.
throw new Error('Cannot use primitives for PropertyDescriptor');}else{// An object. TypeScript will verify that it is a valid PropertyDescriptor.
return propertyDesc;}}const handledProps=new Set();Object.keys(extensions).forEach(propertyName=>{// cannot override existing properties with extensions
if(originalProps[propertyName]){return;}const propertyDesc=makePropertyDesc(extensions,propertyName);Object.defineProperty(klass.prototype,propertyName,propertyDesc);handledProps.add(propertyName);});const overrideSet=klass.prototype[$OVERRIDE_SET]||new Set();Object.keys(overrides).forEach(propertyName=>{if(overrideSet.has(propertyName)){// don't allow overriding an override
return;}if(handledProps.has(propertyName)){throw new Error(`[ExtendClass] cannot override property '${propertyName}' because it is an extension.`);}// Since overridden functions might expect to use `this.originalFn.original()`, it's not safe to treat the
// override as an extension. Different hosts could have different versions of SAM.cpp, so patching code should
// be aware of what is needed.
if(!originalProps[propertyName]){throw new Error(`[ExtendClass] target class does not have property '${propertyName}' so it cannot `+'be overridden.');}const propertyDesc=makePropertyDesc(overrides,propertyName);const original=originalProps[propertyName].value;if(typeof original==='function'){// Replace the the original method with the override, then attach the original
// to the override so you can call it with `this.override.original()`
Object.defineProperty(klass.prototype,propertyName,{get(){// Ensure `original` is bound to correct `this`
propertyDesc.value.original=original.bind(this);return propertyDesc.value;}});}else{Object.defineProperty(klass.prototype,propertyName,propertyDesc);}overrideSet.add(propertyName);handledProps.add(propertyName);});klass.prototype[$OVERRIDE_SET]=overrideSet;const propToEventMap={};Object.keys(observableMap).reduce((seenPropNames,eventName)=>{observableMap[eventName].forEach(propName=>{// If a property is mapped multiple times, or was extended/overwritten, treat as a coding error,
// otherwise the result would be difficult to debug
if(seenPropNames.has(propName)){throw new Error(`[ExtendClass] cannot have the same property (${propName}) appear multiple times in observableMap`);}if(handledProps.has(propName)){throw new Error(`[ExtendClass] cannot make property (${propName}) observable as it was defined in extensions/overrides`);}seenPropNames.add(propName);handledProps.add(propName);propToEventMap[propName]=eventName;});return seenPropNames;},new Set());if(defaultObservableEvent){Object.keys(originalProps)// only collect getter properties
.filter(propName=>!!originalProps[propName].get)// exclude properties defined in extensions/overrides/observableMap
.filter(propName=>!handledProps.has(propName)).forEach(propName=>propToEventMap[propName]=defaultObservableEvent);}Object.entries(propToEventMap).forEach(([propName,eventName])=>{var _a;// If this instance of SAM.cpp doesn't have the getter property, then ignore it
if(!((_a=originalProps[propName])===null||_a===void 0?void 0:_a.get)){return;}Object.defineProperty(klass.prototype,propName,{get(){this._core.environment.mobx.reportObserved(this,eventName);return originalProps[propName].get.call(this);}});});}/*
NOTE when testing in UXP SAM Demo app:

When using Chrome debugger to refresh the JS source code, it does not destroy and recreate the SAM.cpp
JS prototypes, so any changes made to this file will not be applied despite appearing in the source
inspector. You have to quit the SAM.cpp demo app and restart.
*/ // NOTE: must use this syntax for accessing properties of `window`, or else it will break NodeJS clients
// like Libraries.
// @ts-ignore
const acplModel=typeof window!=='undefined'?window===null||window===void 0?void 0:window.acplModel:undefined;const SAM_CPP_VERSION=parseInt(acplModel===null||acplModel===void 0?void 0:acplModel.version.split('.').pop());// TODO: change OrderDirection/Field to use SAM.cpp enums
// https://jira.corp.adobe.com/browse/SAM-1644
var OrderDirection;(function(OrderDirection){OrderDirection[OrderDirection["Ascending"]=0]="Ascending";OrderDirection[OrderDirection["Descending"]=1]="Descending";})(OrderDirection||(OrderDirection={}));var OrderField;(function(OrderField){OrderField[OrderField["Name"]=0]="Name";OrderField[OrderField["Modified"]=1]="Modified";OrderField[OrderField["Created"]=2]="Created";OrderField[OrderField["Shared"]=3]="Shared";})(OrderField||(OrderField={}));class ThumbnailChangeEvent extends Event$1{constructor(){super('thumbnailChange');}}const SharedThumbnailChangeEvent=new ThumbnailChangeEvent();class PermissionsChangeEvent extends Event$1{constructor(){super('permissionsChange');}}const SharedPermissionsChangeEvent=new PermissionsChangeEvent();// See note above about testing in UXP SAM demo app
function patchAssetContext(core){// TODO: expose SAM.cpp AssetContext as acplModel.AssetContext
// https://jira.corp.adobe.com/browse/SAM-1365
const AssetContextJS=acplModel.applicationAssetContext.constructor;// TODO: update actual version when the issues below are fixed
if(SAM_CPP_VERSION<9999){ExtendClass({klass:AssetContextJS,core,overrides:{// SAM.cpp does not support optional param
getAssetWithCloudID(id,confirmAccess=false){return this.getAssetWithCloudID.original(id,confirmAccess);},// SAM.cpp does not support optional param
getAssetWithAssetRefString(assetRefString,confirmAccess=false){return this.getAssetWithAssetRefString.original(assetRefString,confirmAccess);}},extensions:{// SAM.cpp hasn't implemented AssetContext#getUserRepoId(). This method was added to
// address *SAM-1888*. This patch can be removed when SamCpp supports AssetContext#getUserRepoId()
getUserRepoID(){// Can't use hostAssetContext.getUserRepoID() because it needs hostAssetContext.itemPool,
// which doesn't exist on SAM.cpp hostAssetContext.
if(!this._userRepoID){return this._core._AssetContextJS.repoInterface.getHomeDirectoryMetadata().then(homeDirectoryMetadata=>{this._userRepoID=homeDirectoryMetadata['repo:repositoryId'];return this._userRepoID;});}return Promise.resolve(this._userRepoID);},transfer(source,target){return(async()=>{let targetId;if(target instanceof Space){const workingFiles=await target.getChild('working_files');if(!workingFiles){throw new SAMError('NOT_FOUND','unable to find working_files for provided space');}targetId=workingFiles.id;}else{targetId=target.cloudID;}// ACPL substitutes ~ for user's repoID
let sourceRepoID=source.repositoryID;let targetRepoID=target.repositoryID;if(sourceRepoID==='~'){sourceRepoID=await this.getUserRepoID();}if(targetRepoID==='~'){targetRepoID=await this.getUserRepoID();}const payload={source:{assetId:source.cloudID,repositoryId:sourceRepoID},target:{assetId:targetId,repositoryId:targetRepoID}};return this._core._AssetContextJS._assetTransferService.transfer(payload);})();}}});const onAssetsChanged=({properties,status,previews})=>{var _a,_b;for(const asset of[...properties,...status]){(_a=asset._onAssetChanged)===null||_a===void 0?void 0:_a.call(asset);}for(const asset of previews){(_b=asset===null||asset===void 0?void 0:asset._onRenditionChanged)===null||_b===void 0?void 0:_b.call(asset);}};// only subscribe once
if(!acplModel.applicationAssetContext._isForwardingAssetChangeEvents){acplModel.applicationAssetContext.on('changedAssets',onAssetsChanged);acplModel.applicationAssetContext._isForwardingAssetChangeEvents=true;}}}// See note above about testing in UXP SAM demo app
function patchAssetSource(core){const dirMap={ascending:OrderDirection.Ascending,descending:OrderDirection.Descending};const fieldMap={name:OrderField.Name,modified:OrderField.Modified,created:OrderField.Created,shared:OrderField.Shared};const AssetSource=acplModel.applicationAssetContext.rootFolder.children.constructor;// TODO: update actual version when the issues below are fixed
if(SAM_CPP_VERSION<9999){ExtendClass({klass:AssetSource,core,overrides:{// SAM.cpp doesn't support Order/Filter objects that SAM.js clients are using. Meanwhile,
// clients like CDO are expecting the SAM.cpp call signature, so both APIs are supported here.
getList(maybeOrder,maybeFilter){var _a,_b;let field;let dir;// if both `direction` and `field` are defined, then it is an AdobeAssetOrder instance
let order=maybeOrder;if((_b=(_a=order.direction)!==null&&_a!==void 0?_a:order.field)!==null&&_b!==void 0?_b:true){dir=dirMap[order.direction];field=fieldMap[order.field];}else{dir=maybeOrder;field=maybeFilter;maybeFilter=undefined;}// Fallback to safe defaults
dir=dir in OrderDirection?dir:OrderDirection.Descending;field=field in OrderField?field:OrderField.Modified;let filter=maybeFilter;let list;// Note: if mediaTypes is undefined, it should use the default filter (SAM.cpp only)
// If mediaTypes is an empty array, that means "show everything".
if(filter===null||filter===void 0?void 0:filter.mediaTypes){list=this.getListWithTypes(dir,field,[...filter.mediaTypes]);}else{list=this.getList.original(dir,field);}// Note: must patch AssetList before patching AssetSource or else next line will throw an exception
list._subscribeToErrorEvent();return list;}}});}}// See note above about testing in UXP SAM demo app
function patchAssetList(core){// TODO: expose AssetSource, AssetList as acplModel.AssetSource, acplModel.AssetList
// https://jira.corp.adobe.com/browse/SAM-1365
const assetSource=acplModel.applicationAssetContext.rootFolder.children;const AssetList=assetSource.getList(OrderDirection.Descending,OrderField.Modified).constructor;// TODO: update actual version when the issues below are fixed
if(SAM_CPP_VERSION<9999){ExtendClass({klass:AssetList,core,extensions:{// SAM.cpp doesn't have loadNextPage, so map to loadMoreItems
loadNextPage(){return this.loadMoreItems();},// TODO: deprecate SAM.cpp load() and add refresh()
//       https://jira.corp.adobe.com/browse/SAM-2099
refresh(){return this.load();},// patchAssetSource calls this
_subscribeToErrorEvent(){// only subscribe once
if(!this._onError){this._onError=error=>{this._errors=this._errors||[];this._errors.push(error);this.dispatch(SharedStateChangedEvent);};this.on('error',this._onError);}},errors:{get(){this._core.environment.mobx.reportObserved(this,SharedStateChangedEvent.type);return this._errors;}}},overrides:{load(){this._errors=undefined;this.dispatch(SharedStateChangedEvent);this.load.original();},loadMoreItems(){this._errors=undefined;this.dispatch(SharedStateChangedEvent);this.loadMoreItems.original();}},eventMap:{// SAM.cpp emits 4 different events when the list changed, SAM.js only emits the 'listChanged' event
[SharedListChangedEvent.type]:['refreshed','movedAsset','addedAsset','removedAsset']},observableMap:{// make 'items' property observable under the 'listChanged' event
[SharedListChangedEvent.type]:['items'],// make 'status' property observable under the 'statusChanged' event
[SharedStateChangedEvent.type]:['status']}});}}// See note above about testing in UXP SAM demo app
function patchAdobeAsset(core){const ACPLAsset=acplModel.applicationAssetContext.rootFolder.constructor;// TODO: update actual version when the issues below are fixed
if(SAM_CPP_VERSION<9999){ExtendClass({klass:ACPLAsset,core,extensions:{// SAM.cpp doesn't have an `id` property
id:{get(){// `id` is observable because cloudID and localID are observable
// due to defaultObservableEvent
return this.cloudID||this.localID;}},// SAM.cpp doesn't expose discard
discard(){if(!this.routesToAcplV2){oneTimeWarning('discardAsArchive',`Asset.discard(): '${this.repoPath}' will be archived rather than discarded`+' because it routes to ACPL v1 rather than V2.');}// For Projects items, archive() will do a discard
return this.archive();},// SAM.cpp doesn't have `links`
links:{get(){// Can't infer the real links because there's no way to know the real region the Asset is
// hosted. Can't use the generalized endpoints, because when the service redirects to the
// regionalized endpoint, it can drop the auth headers, causing the redirect to fail. For
// now, return empty object to prevent `undefined` errors.
return{};}},hasPermission(...permissions){this._core.environment.mobx.reportObserved(this,SharedPermissionsChangeEvent.type);const hasPermissions=!!this._permissions&&AdobeAsset.prototype.hasPermission.apply(this,permissions);if(!this._hasLoadedPermissions){// prevent loading when already loading
this._hasLoadedPermissions=true;this._core._AssetContextJS.repoInterface.resolveById(this.cloudID).then(assetInterface=>{return assetInterface.getEffectivePermissions();}).then(permissions=>{this._permissions=permissions;this.dispatch(SharedPermissionsChangeEvent);});}return hasPermissions;},// SAM.cpp doesn't have thumbnailURL
thumbnailURL:{get(){var _a;this._core.environment.mobx.reportObserved(this,SharedThumbnailChangeEvent.type);if(this.isFolder){return'';}if(this._refreshThumbnail||!this._thumbnailInfo){// Prevent multiple calls to getThumbnailRendition. ACPLAsset.ts didn't retry
// on reject, so this code shouldn't need to.
this._refreshThumbnail=false;this.getThumbnailRendition().then(({file,hash})=>{var _a,_b;if(((_a=this._thumbnailInfo)===null||_a===void 0?void 0:_a.file)===file&&((_b=this._thumbnailInfo)===null||_b===void 0?void 0:_b.hash)===hash){return;// no change
}// `#` and `^` must be encoded separately to work in UXP
file=file.replace('#','%23').replace('^','%5E');const url=new URL(`file://${file}`);url.searchParams.append('force',hash);this._thumbnailInfo={file,hash,url:url.href};this.dispatch(SharedThumbnailChangeEvent);});}// While waiting for thumbnail, return existing thumbnail (if it exists) so the
// UI doesn't go blank while waiting.
return((_a=this._thumbnailInfo)===null||_a===void 0?void 0:_a.url)||'';}},getRenditionURL(){oneTimeWarning('getRenditionURL','SAM.cpp does not support all options of getRenditionURL. Clients that run on web'+' and desktop should use AdobeAsset.thumbnailURL instead.');return this.thumbnailURL;},// SAM.cpp fires Asset events via AssetContext, but SAM.js emits them from AdobeAsset
_onAssetChanged(){this.dispatch(SharedChangeEvent);},_onRenditionChanged(){this._refreshThumbnail=true;// Raise event so only clients that are observing will refresh the thumbnail
this.dispatch(SharedThumbnailChangeEvent);},transferToSpace(target){return this._core.hostAssetContext.transfer(this,target);},// SAM.cpp doesn't have versions
versions:{get(){if(this._assetVersionSource){return this._assetVersionSource;}// memoize
const versionPool=new ItemPool(this._core,'version');const getAssetInterface=this._core._AssetContextJS.repoInterface.resolveById(this.id);const loader=new AssetVersionLoader(versionPool,getAssetInterface);this._assetVersionSource=new ItemSource(versionPool,[loader]);return this._assetVersionSource;}}},// make all getter properties observable under the standard 'change' event
defaultObservableEvent:SharedChangeEvent.type});}}function patchSpaceJS(){const assetContext=acplModel.applicationAssetContext;// TODO: update actual version when the issues below are fixed
// Min version should contain SAM-1886
if(SAM_CPP_VERSION>8888&&SAM_CPP_VERSION<9999){// Until SAM.cpp can supply everything needed from SpaceContext and Spaces UI is not
// dependant on SAM.js internals, patching the Sources for Space contents to use SAM.cpp
// Sources so Spaces UI can have caching/badging.
Object.defineProperties(Space.prototype,{searchWorkingFiles:{value(){if(this._searchWorkingFilesSource){return Promise.resolve(this._searchWorkingFilesSource);}this._searchWorkingFilesSource=new Promise((resolve,reject)=>{assetContext.spaceContext.lookupSpaceById(this.id).then(space=>{// `space` is the SAM.cpp Space object
if(!space){reject(new SAMError('NOT_FOUND',`searchWorkingFiles could not find Space ${this.id}`));}resolve(space.searchWorkingFiles());});});return this._searchWorkingFilesSource;}},searchArtifacts:{value(embedPermissions=false){if(this._searchArtifactsSource){return Promise.resolve(this._searchArtifactsSource);}this._searchArtifactsSource=new Promise((resolve,reject)=>{assetContext.spaceContext.lookupSpaceById(this.id).then(space=>{// `space` is the SAM.cpp Space object
if(!space){reject(new SAMError('NOT_FOUND',`searchArtifacts could not find Space ${this.id}`));}resolve(space.searchArtifacts(embedPermissions));});});return this._searchArtifactsSource;}}});}}/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/ // If multiple versions of SAM.js are loaded in the same app, they will have different
// contents in the closure of the module, so the Symbol used to store the global instances
// of SAMCore must be a global Symbol.
const $SAM_INSTANCE_MAP=Symbol.for('com.adobe.ccac-sam-js.instances');const ITEM_LIST_STATE_CHANGED='itemListStateChanged';const MESSAGE_LOGGED='messageLogged';class ItemListStateChangedEvent extends Event$1{constructor(list){super(ITEM_LIST_STATE_CHANGED);this.list=list;}}// Matches ACPL log level enum
var LogLevel;(function(LogLevel){LogLevel[LogLevel["Off"]=0]="Off";LogLevel[LogLevel["Err"]=1]="Err";LogLevel[LogLevel["Warn"]=2]="Warn";LogLevel[LogLevel["Info"]=3]="Info";LogLevel[LogLevel["Debug"]=4]="Debug";})(LogLevel||(LogLevel={}));class MessageLoggedEvent extends Event$1{constructor(message,logLevel){super(MESSAGE_LOGGED);this.message=message;this.logLevel=logLevel;}}class SAMCore extends TypedEventEmitter{constructor(config={},hooks={}){super();this._environment=new Environment(this,config,hooks);}// Only call from initializeSharedAssetModel
_setAssetContext(assetContext){if(this._AssetContext){// If multiple SAM.js instances invoke this, only the first gets to set it. This
// is likely a temporary condition while SAM.js clients converge on compatible versions.
console.error('[SAMCore] AssetContext already initialized');return;}this._AssetContext=assetContext;this._AssetContextJS=new AssetContext(this);}_setSpaceContext(spaceContext){if(this._SpaceContext){// If multiple SAM.js instances invoke this, only the first gets to set it. This
// is likely a temporary condition while SAM.js clients converge on compatible versions.
console.error('[SAMCore] SpaceContext already initialized');return;}this._SpaceContext=spaceContext;}get hostAssetContext(){// If initializeSharedAssetModel didn't inject AssetContext, then create one
if(!this._AssetContext){this._AssetContext=new AssetContext(this);}return this._AssetContext;}get assetLinkManager(){return new AssetLinkManager(this.hostAssetContext);}get spaceContext(){// If initializeSharedAssetModel didn't inject SpaceContext, then create one
if(!this._SpaceContext){this._SpaceContext=new SpaceContext(this);}return this._SpaceContext;}get collaborationContext(){return new CollaborationContext(this);}makeObservable(createAtom){return this._environment.mobx.register(createAtom);}// Internal structures
get environment(){return this._environment;}}__decorate([memoize],SAMCore.prototype,"assetLinkManager",null);__decorate([memoize],SAMCore.prototype,"collaborationContext",null);async function initializeSharedAssetModel(config={},hooks={}){let samInstances={};// SAM.js supports running in a node.js environment, so we can't assume that window is defined.
if(typeof window!=='undefined'){if(!window[$SAM_INSTANCE_MAP]){window[$SAM_INSTANCE_MAP]=samInstances;}else{samInstances=window[$SAM_INSTANCE_MAP];}}// Check to see if any versions of SAM.js have already been loaded that are compatible with us (using semantic versioning, the
// major version must match, and the minor.patch version must be later than or equal to the one we need)
const version=packageJSON.version;const[major,minor,patch]=version.split('.').map(Number);const loadedVersions=Object.keys(samInstances);const compatibleLoadedVersion=loadedVersions.find(loadedVersion=>{if(loadedVersion===version){return true;}// If it's not an exact version match, we parse the versions and do a semantic version comparison - note that if
// the major version is 0, it's assumed that all changes are breaking.
const[loadedMajor,loadedMinor,loadedPatch]=loadedVersion.split('.').map(Number);return major!==0&&loadedMajor===major&&(loadedMinor>minor||loadedMinor===minor&&loadedPatch>=patch);});// If there's a compatible version, use it!
if(compatibleLoadedVersion){return samInstances[compatibleLoadedVersion];}// If not, create a new version (warn if this means there will be multiple SAM.js versions)
if(loadedVersions.length>0){console.warn(`An instance of SAM.js already exists, but is not compatible with the requested version: ${version}. `+`Because of this, a new instance of SAM.js will be created. Loaded versions: ${loadedVersions.join(', ')}.`);}// Wait for host asset context, and patch SAM.cpp as needed
// Presence of global acplModel tells us SAM.cpp JS bindings are present
// @ts-ignore
const acplModel=typeof window!=='undefined'&&window.acplModel;const isPatchableVersion=()=>{var _a,_b;// SAM.cpp 2.0.0-main.1301 is the earliest release that supports patching prototypes.
const rootFolderProto=(_a=acplModel.applicationAssetContext)===null||_a===void 0?void 0:_a.rootFolder.constructor.prototype;return Boolean(rootFolderProto)&&((_b=Object.getOwnPropertyDescriptor(rootFolderProto,'name'))===null||_b===void 0?void 0:_b.configurable)===true;};samInstances[version]=new Promise((resolve,reject)=>{var _a;if(acplModel&&config.USE_SAM_CPP){// Either immediately resolve with existing applicationAssetContext, or wait for it
Promise.race([(_a=acplModel.applicationAssetContext)!==null&&_a!==void 0?_a:acplModel.waitForApplicationContextReady()]).then(()=>{try{if(!isPatchableVersion()){resolve(new SAMCore(config,hooks));return;}const core=new SAMCore(config,hooks);// Patching should be done in this order, because the SAM.cpp prototypes aren't exposed in the global
// namespace, or on global `acplModel`, so the only way to get prototypes is to find an instance of
// the class and get a reference to `obj.constructor.prototype`. E.g., to patch AssetList, it needs
// to get it from `acplModel.applicationAssetContext.rootFolder.children.getList()`, so
// `AssetSource.getList()` cannot be patched yet.
patchAdobeAsset(core);patchSpaceJS();patchAssetList(core);patchAssetSource(core);patchAssetContext(core);core._setAssetContext(acplModel.applicationAssetContext);// Enable once the following is completed.
// @TODO https://jira.corp.adobe.com/browse/SAM-2145
// if (acplModel.applicationAssetContext?.spaceContext) {
//     patchTeamList(core);
//     core._setSpaceContext(acplModel.applicationAssetContext.spaceContext);
// } else {
//     core.environment.warn(
//         `[initializeSharedAssetModel] No SpaceContext defined on SAM.cpp AssetContext SAM.js implementation will be used instead.`
//     );
// }
resolve(core);}catch(e){console.error('[initializeSharedAssetModel] failed to patch SAM.cpp',e);reject(e);}});}else{// No SAM.cpp present, use pure SAM.js implementation
resolve(new SAMCore(config,hooks));}});// Do not cache failed initialization attempts
try{await samInstances[version];}catch(e){delete samInstances[version];throw e;}return samInstances[version];}// @deprecated -- Call initializeSharedAssetModel instead
function createSharedAssetModel(config={},hooks={}){console.warn(`createSharedAssetModel() is deprecated - call the asynchronous initializeSharedAssetModel() instead.`);return new SAMCore(config,hooks);}/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/const OrderFieldToComparator$4={created(a,b){return compareValues(a.created,b.created);}};class AssetVersionOrder extends createItemOrderFactory(OrderFieldToComparator$4){}AssetVersionOrder.default=new AssetVersionOrder('descending','created');/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2022 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/const OrderFieldToComparator$3={id(a,b){return compareStrings(a.id,b.id);}};class OrgRepositoryOrder extends createItemOrderFactory(OrderFieldToComparator$3){}OrgRepositoryOrder.default=new OrgRepositoryOrder('ascending','id');/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/const OrderFieldToComparator$2={name(a,b){var _a,_b;return compareStrings((_a=a.name)!==null&&_a!==void 0?_a:a.id,(_b=b.name)!==null&&_b!==void 0?_b:a.id);}};class CollaboratorOrder extends createItemOrderFactory(OrderFieldToComparator$2){}CollaboratorOrder.default=new CollaboratorOrder('ascending','name');/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2022 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/const OrderFieldToComparator$1={email(a,b){var _a,_b;return compareStrings((_a=a.email)!==null&&_a!==void 0?_a:a.id,(_b=b.email)!==null&&_b!==void 0?_b:a.id);}};class InvitedCollaboratorOrder extends createItemOrderFactory(OrderFieldToComparator$1){}InvitedCollaboratorOrder.default=new InvitedCollaboratorOrder('ascending','email');/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2022 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/const OrderFieldToComparator={// there is nothing in collaboratorListByUrn to order, this will keep order same
// eslint-disable-next-line @typescript-eslint/no-unused-vars
noop(a,b){return 0;}};class CollaboratorsByAssetIDOrder extends createItemOrderFactory(OrderFieldToComparator){}CollaboratorsByAssetIDOrder.default=new CollaboratorsByAssetIDOrder('ascending','noop');/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2022 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/class SWYAdobeAssetFilter extends AdobeAssetFilterBase{constructor(options){super({mediaTypes:options===null||options===void 0?void 0:options.mediaTypes,excludeMediaTypes:options===null||options===void 0?void 0:options.excludeMediaTypes});}get hash(){return super.hash;}matches(item){if(!item.isSharedWithMe){return false;}return super.matches(item);}getRelationToFilter(other){if(!(other instanceof SWYAdobeAssetFilter)){return'disjoint';}const otherAdobeAssetFilter=other;return super.getRelationToFilter(otherAdobeAssetFilter);}}/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/class SpaceFilter{constructor(options){this._bookmarked=false;this._bookmarked=Boolean(options===null||options===void 0?void 0:options.bookmarked);this._teamID=options===null||options===void 0?void 0:options.teamID;this._teamRole=options===null||options===void 0?void 0:options.teamRole;this._state=options===null||options===void 0?void 0:options.state;this._teamRole=options===null||options===void 0?void 0:options.teamRole;}static ActiveSpacesFromTeam(teamID){return new SpaceFilter({state:'active',teamID});}get bookmarked(){return this._bookmarked;}get teamID(){return this._teamID;}get teamRole(){return this._teamRole;}get state(){return this._state;}get hash(){var _a,_b;return String(this.bookmarked)+':'+(this.teamID||'all-teams')+':'+((_a=this._teamRole)!==null&&_a!==void 0?_a:'all-roles')+':'+((_b=this._state)!==null&&_b!==void 0?_b:'any-state');}matches(item){if(this._bookmarked&&!item.isBookmarked){return false;}const teamID=this._teamID;if(teamID&&item.teamID!==teamID){return false;}const teamRole=this._teamRole;if(teamRole&&item.teamRole!==teamRole){return false;}const state=this._state;if(state&&state!==item.state){return false;}return true;}getRelationToFilter(other){if(!(other instanceof SpaceFilter)){return'disjoint';}const otherSpaceFilter=other;if(this._teamRole!==otherSpaceFilter._teamRole){if(this._teamRole&&otherSpaceFilter._teamRole){// If both filters specify a completely different teamRole then the
// lists are entirely disjoint.
return'disjoint';}// If only one filter specifically looks for the team role, then the other might be
// able to borrow some items from it.
return'unknown';}if(this.teamID&&otherSpaceFilter.teamID&&this.teamID!==otherSpaceFilter.teamID){// Teams are entirely different, no shared elements are expected.
return'disjoint';}if(!this.teamID&&otherSpaceFilter.teamID){// If the other list has a teamID and this filter doesn't then
// this is list is going to have an unknown final state.
return'unknown';}// If the other list filtered for only bookmarked items and this doesn't,
// then this is list is going to have an unknown final state.
if(!this.bookmarked&&other.bookmarked){return'unknown';}if(this._state!==other._state){// If both filters expect a state and the states do not match, then
// the lists are not going to have any items in common.
if(this._state&&other._state){return'disjoint';}// If only one list expects a specific state and the other can take any state,
// then we could possible share some items.
return'unknown';}return'subset';}}SpaceFilter.ActiveSpaces=new SpaceFilter({state:'active'});SpaceFilter.ArchivedSpaces=new SpaceFilter({state:'archived'});SpaceFilter.ActiveBookmarkedSpaces=new SpaceFilter({state:'active',bookmarked:true});SpaceFilter.ActiveSpacesFromOtherTeams=new SpaceFilter({state:'active',teamRole:'NONE'});/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2022 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/var StringRelationResult;(function(StringRelationResult){StringRelationResult[StringRelationResult["DISJOINTED"]=0]="DISJOINTED";StringRelationResult[StringRelationResult["SUPERSET"]=1]="SUPERSET";StringRelationResult[StringRelationResult["SUBSET"]=2]="SUBSET";StringRelationResult[StringRelationResult["UNKNOWN"]=3]="UNKNOWN";StringRelationResult[StringRelationResult["IDENTICAL"]=4]="IDENTICAL";})(StringRelationResult||(StringRelationResult={}));const whitespaceFilter=w=>/\S/.test(w);/**
 * Available when M2 is released, M1 currently
 * does not support this filter.
 * @experimental
 */class TeamFilter{constructor(options){this._nameContains=options===null||options===void 0?void 0:options.nameContains;this._state=options===null||options===void 0?void 0:options.state;}static TeamsContainingName(name){return new TeamFilter({nameContains:name});}get nameContains(){return this._nameContains;}get state(){return this._state;}get hash(){var _a,_b;return((_a=this._nameContains)!==null&&_a!==void 0?_a:'any-name')+':'+((_b=this._state)!==null&&_b!==void 0?_b:'any-state');}_getRelationToNameContains(name,otherName){if(name===otherName){return StringRelationResult.IDENTICAL;}const nameTerms=name.toLowerCase().split(' ').filter(whitespaceFilter).sort();const otherNameTerms=otherName.toLowerCase().split(' ').filter(whitespaceFilter).sort();if(nameTerms.length===0&&otherNameTerms.length===0){return StringRelationResult.IDENTICAL;}if(nameTerms.length===0||otherNameTerms.length===0){return StringRelationResult.DISJOINTED;}if(nameTerms.length===otherNameTerms.length&&nameTerms.every((n,i)=>n===otherNameTerms[i])){return StringRelationResult.IDENTICAL;}let subsetMatches=0;let supersetMatches=0;nameTerms.forEach(nameTerm=>{const findMatch=otherNameTerms.find(otherTerm=>{const superSet=otherTerm.startsWith(nameTerm);const subSet=nameTerm.startsWith(otherTerm);return superSet||subSet;});if(findMatch){if(nameTerm.length<=findMatch.length){supersetMatches++;}if(nameTerm.length>findMatch.length){subsetMatches++;}}});if(nameTerms.length===subsetMatches){return StringRelationResult.SUBSET;}if(nameTerms.length===supersetMatches){return StringRelationResult.SUPERSET;}if(subsetMatches===0&&supersetMatches===0){return StringRelationResult.DISJOINTED;}return StringRelationResult.UNKNOWN;}_searchTarget(searchString,targetString){const searchTerms=searchString.toLowerCase().split(' ').filter(whitespaceFilter);const targetTerms=targetString.toLowerCase().split(' ').filter(whitespaceFilter);// Empty word or search term
if(searchTerms.length===0||targetTerms.length===0){return false;}return searchTerms.every(searchTerm=>{return targetTerms.find(targetTerm=>{return targetTerm.startsWith(searchTerm);});});}matches(item){const state=this._state;if(state&&state!==item.state){return false;}const nameContains=this._nameContains;if(nameContains&&!this._searchTarget(nameContains,item.name)){return false;}return true;}getRelationToFilter(other){if(!(other instanceof TeamFilter)){return'disjoint';}let searchMatch;if(this.nameContains&&other.nameContains){searchMatch=this._getRelationToNameContains(this.nameContains,other.nameContains);if(searchMatch===StringRelationResult.DISJOINTED){return'disjoint';}}if(this.state&&other.state&&this.state!==other.state){return'disjoint';}if(!this.state&&other.state){return'unknown';}if(!this.nameContains&&other.nameContains){return'unknown';}if(searchMatch&&searchMatch===StringRelationResult.SUPERSET||searchMatch===StringRelationResult.UNKNOWN){return'unknown';}//------ All 'unknown' cases must be handled above this line
return'subset';}}TeamFilter.ActiveTeams=new TeamFilter({state:'active'});TeamFilter.DiscardedTeams=new TeamFilter({state:'discarded'});/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2022 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/class AssetVersionFilter{constructor(options){this._isMilestone=options===null||options===void 0?void 0:options.isMilestone;this._createdAfter=options===null||options===void 0?void 0:options.createdAfter;this._createdBefore=options===null||options===void 0?void 0:options.createdBefore;this._createdBy=options===null||options===void 0?void 0:options.createdBy;}static AssetVersionFilter(isMilestone,createdAfter,createdBefore,createdBy){return new AssetVersionFilter({createdBy,createdAfter,createdBefore,isMilestone});}get isMilestone(){return this._isMilestone;}get createdBy(){return this._createdBy;}get createdAfter(){return this._createdAfter;}get createdBefore(){return this._createdBefore;}get hash(){var _a,_b,_c;const collaborator=(_a=this.createdBy)===null||_a===void 0?void 0:_a.join(',');const createdAfter=((_b=this.createdAfter)===null||_b===void 0?void 0:_b.getTime())||0;const createdBefore=((_c=this.createdBefore)===null||_c===void 0?void 0:_c.getTime())||0;return String(this.isMilestone)+':'+collaborator+':'+createdAfter+':'+createdBefore;}matches(item){const matchesBookmark=this.isMilestone===undefined||this.isMilestone===Boolean(item.milestone);const matchesCollab=this.createdBy===undefined||this.createdBy.includes(item.createdBy);const matchesDateRange=(!this.createdAfter||item.created>=this.createdAfter)&&(!this.createdBefore||item.created<=this.createdBefore);return matchesBookmark&&matchesCollab&&matchesDateRange;}_getRelationWrtMilestone(other){return this.isMilestone===other.isMilestone?'subset':this.isMilestone===undefined||other.isMilestone===undefined?'unknown':'disjoint';}_getRelationWrtCreatedBy(other){if(!this.createdBy&&!other.createdBy){return'subset';}if(this.createdBy&&other.createdBy){const createdBy=new Set(this.createdBy);if(other.createdBy.every(user=>createdBy.has(user))){// Every user in the other filter is also in this filter, so this filter is a subset
return'subset';}if(!other.createdBy.some(user=>createdBy.has(user))){// No user in the other filter is in this filter, so the intersection is empty
return'disjoint';}return'unknown';}return this.createdBy?'subset':'unknown';}_getRelationWrtDateRange(other){var _a,_b,_c,_d;const thisRange={start:((_a=this.createdAfter)===null||_a===void 0?void 0:_a.getTime())||-Infinity,end:((_b=this.createdBefore)===null||_b===void 0?void 0:_b.getTime())||Infinity};const otherRange={start:((_c=other.createdAfter)===null||_c===void 0?void 0:_c.getTime())||-Infinity,end:((_d=other.createdBefore)===null||_d===void 0?void 0:_d.getTime())||Infinity};if(otherRange.start<=thisRange.start&&otherRange.end>=thisRange.end){// other contains all dates, or both ranges contain all dates
return'subset';}if(otherRange.start>thisRange.end||otherRange.end<thisRange.start){// there is no overlap
return'disjoint';}// the only remaining possibility is that there's some overlap
return'unknown';}getRelationToFilter(other){if(!(other instanceof AssetVersionFilter)){return'disjoint';}let relations=[this._getRelationWrtMilestone(other),this._getRelationWrtCreatedBy(other),this._getRelationWrtDateRange(other)];if(relations.includes('disjoint')){return'disjoint';}if(relations.every(relation=>relation==='subset')){return'subset';}// only remaining possibility is 'unknown'
return'unknown';}}AssetVersionFilter.BookmarkedVersions=new AssetVersionFilter({isMilestone:true});
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("yLpj"), __webpack_require__("HDXh").Buffer))

/***/ }),

/***/ "m5yY":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = Link;

var _events = __webpack_require__("mdZ3");

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _filterDOMProps = _interopRequireDefault(__webpack_require__("Cv/Q"));

var _propTypes = _interopRequireDefault(__webpack_require__("17x9"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

const _excluded = ["subtle", "variant", "children", "className", "href", "onClick"];

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

if (false) {} else if (false) {} else {
  __webpack_require__("DAXo");
}

if (true) __webpack_require__("0DNv");
if (true) __webpack_require__("WZnP");
if (true) __webpack_require__("Sy8l");
if (true) __webpack_require__("RNCE");

function preventDefault(e) {
  if (!e.defaultPrevented) {
    e.preventDefault();
  }
}

function Link(_ref) {
  let {
    subtle,
    // deprecated, use variant instead
    variant,
    children,
    className,
    href,
    onClick
  } = _ref,
      otherProps = _objectWithoutProperties(_ref, _excluded);

  if (subtle) {
    console.warn('The "subtle" prop of Link is deprecated. Please use variant="quiet" instead.');
    variant = 'quiet';
  }

  if (variant === 'subtle') {
    console.warn('The "subtle" variant of Link is deprecated. Please use variant="quiet" instead.');
    variant = 'quiet';
  }

  if (!href && typeof onClick === 'function') {
    href = '#';
    onClick = (0, _events.chain)(onClick, preventDefault);
  }

  return /*#__PURE__*/_react.default.createElement("a", _extends({
    className: (0, _classnames.default)('spectrum-Link', {
      [`spectrum-Link--${variant}`]: variant
    }, className),
    href: href,
    onClick: onClick
  }, (0, _filterDOMProps.default)(otherProps)), children);
}

Link.propTypes = {
  /** Class to add to the Link */
  className: _propTypes.default.string,

  /** Link variant */
  variant: _propTypes.default.oneOf(['quiet', 'subtle', 'overBackground'])
};
Link.displayName = 'Link';

/***/ }),

/***/ "m7JM":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = TD;

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _filterDOMProps = _interopRequireDefault(__webpack_require__("Cv/Q"));

var _propTypes = _interopRequireDefault(__webpack_require__("17x9"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

const _excluded = ["className", "children", "divider"];

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}
/**
 * A table cell
 */


function TD(_ref) {
  let {
    className,
    children,
    divider
  } = _ref,
      otherProps = _objectWithoutProperties(_ref, _excluded);

  return /*#__PURE__*/_react.default.createElement("td", _extends({
    className: (0, _classnames.default)('spectrum-Table-cell', {
      'spectrum-Table-cell--divider': divider
    }, className)
  }, (0, _filterDOMProps.default)(otherProps)), children);
}

TD.displayName = 'TD';
TD.propTypes = {
  /** Whether or not to display a vertical dividing line to the right of the cell. */
  isDivider: _propTypes.default.bool
};

/***/ }),

/***/ "m8Tk":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return stopPropagation; });
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
/**
 * Use this utility to prevent bubbling of events without creating new instances of a function in each render
 * call. Defining functions inside a React render method causes performance to drag, because React
 * can't tell that the functions are the same when running its DOM diff engine, and so it must trigger
 * DOM repaints more than it should.
 *
 * If you use a mix of React event binding and `.addEventListener` event binding,
 * you have to stopPropagation on both the React synthetic event and the native event.
 * Passing `true` for `stopNative` will stop the underlying nativeEvent.
 *
 *  Example usage. Let's say you have a panel that does something on click and also contains buttons. Event bubbling
 *  would cause the panel's click handler to be called when a button is clicked. To prevent that:
 *
 *      <div onClick={this.onPanelClick}>
 *          <div className='buttonBar' onClick={stopPropagation} />
 *              <button onClick={this.onConfirmClick}>Confirm</button>
 *              <button onClick={this.onCancelClick}><Cancel</button>
 *          </div>
 *      </div>
 *
 *
 * @param event
 */
function stopPropagation(event, stopNative = false) {
    event.stopPropagation();
    if (stopNative && event.nativeEvent) {
        event.nativeEvent.stopImmediatePropagation();
    }
}


/***/ }),

/***/ "m9PL":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _ccx_public_acpl_model_mobx_ACPLTypes__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("x2z8");
/* harmony import */ var _ccx_public_acpl_model_mobx_ACPLTypes__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_ccx_public_acpl_model_mobx_ACPLTypes__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("2vnA");
/* harmony import */ var _ccx_public_acpl_model_uxp_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("XQlG");
/* harmony import */ var _AssetModel_ACPLAssetPlaceholder__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("RHgb");
/* harmony import */ var _AssetModel_SAMAssetModel__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("4Cys");
/* harmony import */ var _FolderCollection__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("YkWA");
/* harmony import */ var _SAMSourceProvider__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("Mz2I");
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("C0qj");
/* harmony import */ var _utils_constants__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("a375");
/* harmony import */ var _types_CDOErrorResponse__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__("DecH");
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2020 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
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;
};
var __metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var _a, _b, _c, _d, _e;










let AssetType;
/**
 * Clients that do not build SAM global `ACPLModel` variable won't have the constants needed
 * below, and so this module fails to load, blocking all of CDO from loading. Only populate the
 * constants when we know we've got them.
 */
function loadConstants() {
    AssetType = _ccx_public_acpl_model_uxp_types__WEBPACK_IMPORTED_MODULE_2__[/* ACPLModel */ "a"].AssetType;
}
if (_ccx_public_acpl_model_uxp_types__WEBPACK_IMPORTED_MODULE_2__[/* ACPLModel */ "a"]) {
    loadConstants();
}
class SAMFolderCollection extends _FolderCollection__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"] {
    constructor({ repoPath, cloudID, enablePerformanceMetrics }, context) {
        super({ enablePerformanceMetrics }, context);
        this.AssetModelClass = _AssetModel_SAMAssetModel__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"];
        this.collectionFetchState = _constants__WEBPACK_IMPORTED_MODULE_7__[/* ProcessingState */ "n"].Pending;
        this.constructACPLAssetFailed = false;
        this.needsRefresh = true;
        this.needsRefreshWhenOnline = false;
        /*
         * Since Babel turns a single async function into separate function calls,
         * it can't use @action annotation correctly, because the annotation only affects the first function it wraps.
         * Using flow lets you use @action, then you don't need to remember to use runInAction
         * Source: https://git.corp.adobe.com/CCX/ccx-cdo/pull/2053#discussion_r3895464
         */
        this.constructACPLAsset = Object(mobx__WEBPACK_IMPORTED_MODULE_1__[/* flow */ "q"])(this._constructACPLAsset);
        this.samFolder = new _AssetModel_ACPLAssetPlaceholder__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"]({
            repoPath,
            cloudID,
            assetType: AssetType.Folder,
        });
        this.assetModel = _AssetModel_SAMAssetModel__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].fromSamAsset(this.samFolder);
        // @ts-ignore (see constructACPLAsset declaration below)
        this.initializationPromise = this.constructACPLAsset();
        if (this.SAMAssetContext.cloudSyncStatus !== _ccx_public_acpl_model_uxp_types__WEBPACK_IMPORTED_MODULE_2__[/* ACPLModel */ "a"].CloudSyncStatus.Initializing) {
            this.onSAMCloudSyncStatusChange(this.SAMAssetContext.cloudSyncStatus);
        }
        Object(mobx__WEBPACK_IMPORTED_MODULE_1__[/* reaction */ "B"])(() => this.SAMAssetContext.cloudSyncStatus, this.onSAMCloudSyncStatusChange.bind(this));
    }
    setNeedsRefresh() {
        this.needsRefresh = true;
    }
    get SAMAssetContext() {
        return this.context.SAMAssetContext;
    }
    onSAMCloudSyncStatusChange(status) {
        const { Offline, NotStarted, Disabled, Synchronized, InProgress, ErrorQuotaExceeded, ErrorSyncDown, ErrorOther, } = _ccx_public_acpl_model_uxp_types__WEBPACK_IMPORTED_MODULE_2__[/* ACPLModel */ "a"].CloudSyncStatus;
        const needRefreshStates = new Set([Offline, ErrorSyncDown, ErrorOther]);
        // `ErrorOther` occurs when a particular asset received an `AssetSyncNotification::SyncStatus::SYNC_ERROR`
        // SAM-919 has been created to introduce a specific `CloudSyncStatus` error for this notification.
        const refreshableStates = new Set([
            NotStarted,
            Synchronized,
            InProgress,
            Disabled,
            ErrorQuotaExceeded,
        ]);
        if (needRefreshStates.has(status)) {
            // something bad potentially happened so set a flag to allow next listing request
            this.needsRefreshWhenOnline = true;
        }
        if (refreshableStates.has(status) && this.needsRefreshWhenOnline) {
            // something bad potentially happened so allow next listing request
            this.needsRefreshWhenOnline = false;
            this.needsRefresh = true;
        }
    }
    *_constructACPLAsset() {
        const { cloudID, repoPath } = this.samFolder;
        // wait for SAMAssetContext to be created
        yield this.context.waitForAuthInitialization(`constructACPLAsset ${repoPath}`);
        if (this.context.hasNonCoreSyncCloudNotificationErrorStatus()) {
            this.error('Cannot construct ACPLAsset -- hasNonCoreSyncCloudNotificationErrorStatus');
            this.constructACPLAssetFailed = true;
            return Promise.reject(new _types_CDOErrorResponse__WEBPACK_IMPORTED_MODULE_9__[/* default */ "b"](_types_CDOErrorResponse__WEBPACK_IMPORTED_MODULE_9__[/* FAKE_STATUS_CODE */ "a"], 'Cannot construct ACPLAsset -- hasNonCoreSyncCloudNotificationErrorStatus', this.constructor.name, true));
        }
        let samFolder;
        try {
            if (cloudID) {
                samFolder = yield this.SAMAssetContext.getAssetWithCloudID(cloudID, false);
            }
            else {
                samFolder = yield this.SAMAssetContext.getAssetWithRepoPath(repoPath);
            }
        }
        catch (e) {
            this.error('Cannot construct ACPLAsset via %s', cloudID ? `getAssetWithCloudID(${cloudID})` : `getAssetWithRepoPath(${repoPath})`, e);
            this.constructACPLAssetFailed = true;
            // re-throw error so Collection.fetchElements loop exits
            throw e;
        }
        if (samFolder) {
            this.samFolder = samFolder;
            this.assetModel = _AssetModel_SAMAssetModel__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].fromSamAsset(samFolder);
            this.sourceProvider = new _SAMSourceProvider__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"](this, samFolder.children, this.logger);
            this.constructACPLAssetFailed = false;
            this.debug('replaced placeholder ACPLAsset with real one');
        }
        else {
            // Promise should be rejected by SAM if not found by `getAssetWith*`
            this.constructACPLAssetFailed = true;
            this.error('unable to create real ACPLAsset', repoPath, cloudID);
        }
    }
    get path() {
        // use assetModel.path so that SAMFolderCollection.path matches SAMAssetModel.path
        return this.assetModel.path;
    }
    // NOTE: cloudUri is actually a URN and not a URI
    get cloudUri() {
        // use assetModel.cloutUri so that SAMFolderCollection.cloudUri matches SAMAssetModel.cloudUri
        return this.assetModel.cloudUri;
    }
    async performInitialization() {
        // If previous attempt to create the ACPLAsset failed, try again. This should recover from the
        // case when a cloud-only folder is visited offline, then the app goes online.
        if (this.constructACPLAssetFailed) {
            this.debug('re-attempting to construct ACPLAsset...');
            // @ts-ignore (see constructACPLAsset declaration)
            this.initializationPromise = this.constructACPLAsset();
        }
        return this.initializationPromise;
    }
    get fetchState() {
        if (this.collectionFetchState === _constants__WEBPACK_IMPORTED_MODULE_7__[/* ProcessingState */ "n"].Error) {
            return _constants__WEBPACK_IMPORTED_MODULE_7__[/* ProcessingState */ "n"].Error;
        }
        if (this.constructACPLAssetFailed) {
            return _constants__WEBPACK_IMPORTED_MODULE_7__[/* ProcessingState */ "n"].Error;
        }
        if (!this.sourceProvider) {
            return _constants__WEBPACK_IMPORTED_MODULE_7__[/* ProcessingState */ "n"].Pending;
        }
        return this.sourceProvider.fetchState;
    }
    // Collection tries to initialize fetchState, but it needs to be computed,
    // so ignore assignments to fetchState with an empty setter.
    // eslint-disable-next-line class-methods-use-this,no-empty-function
    set fetchState(fs) { }
    setFetchState(newState) {
        this.collectionFetchState = newState;
    }
    async performFetch(criteria, localOnly, correlationId) {
        // performFetch gets called for each page.  So if we've finished all the pages
        // and get another performFetch, ignore it.
        if (!localOnly) {
            if (this.fetchState === _constants__WEBPACK_IMPORTED_MODULE_7__[/* ProcessingState */ "n"].Done && !this.needsRefresh) {
                return null;
            }
            this.needsRefresh = false;
        }
        return this.sourceProvider.performFetch(criteria, localOnly, correlationId);
    }
    getNextPageCriteria(results, criteria, localOnly) {
        return this.sourceProvider.getNextPageCriteria(results, criteria, localOnly);
    }
    get hasOfflineContent() {
        // TODO: https://jira.corp.adobe.com/browse/SAM-632
        // SAM's isAvailableOffline checks if a local-id is present to determine
        // whether a folder or asset is available offline. /cloud-content doesn't have
        // a local-id, even when descendants are available offline. Other folders with
        // cached descendants do have a local-id, so SAM's isAvailableOffline will work
        // for them.
        //
        // Remove the repoPath check after SAM-632 lands
        return (this.samFolder.isAvailableOffline || this.samFolder.repoPath === `/${_utils_constants__WEBPACK_IMPORTED_MODULE_8__[/* ROOT_FOLDER_PATH */ "q"]}`);
    }
    // Might make sense to call this.sourceProvider.* for these no-op functions, in case we need an
    // implementation later.
    // SAM + autorun manages extracting models from API response
    // eslint-disable-next-line class-methods-use-this
    extractElements() {
        return [];
    }
    // SAM + autorun manages merging
    // eslint-disable-next-line class-methods-use-this
    mergeElements() { }
    // metadata can be retrieved from this.samFolder
    // eslint-disable-next-line class-methods-use-this
    updateLastFetchMetadataFromResults() { }
    // SAM + autorun manages removing items not returned by search
    // eslint-disable-next-line class-methods-use-this
    removeDeletedElements() { }
}
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* observable */ "z"],
    __metadata("design:type", typeof (_a = typeof _constants__WEBPACK_IMPORTED_MODULE_7__[/* ProcessingState */ "n"] !== "undefined" && _constants__WEBPACK_IMPORTED_MODULE_7__[/* ProcessingState */ "n"]) === "function" ? _a : Object)
], SAMFolderCollection.prototype, "collectionFetchState", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* observable */ "z"],
    __metadata("design:type", typeof (_b = typeof _ccx_public_acpl_model_mobx_ACPLTypes__WEBPACK_IMPORTED_MODULE_0__["IACPLAsset"] !== "undefined" && _ccx_public_acpl_model_mobx_ACPLTypes__WEBPACK_IMPORTED_MODULE_0__["IACPLAsset"]) === "function" ? _b : Object)
], SAMFolderCollection.prototype, "samFolder", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* observable */ "z"],
    __metadata("design:type", typeof (_c = typeof _AssetModel_SAMAssetModel__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"] !== "undefined" && _AssetModel_SAMAssetModel__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"]) === "function" ? _c : Object)
], SAMFolderCollection.prototype, "assetModel", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* observable */ "z"],
    __metadata("design:type", typeof (_d = typeof _SAMSourceProvider__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"] !== "undefined" && _SAMSourceProvider__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"]) === "function" ? _d : Object)
], SAMFolderCollection.prototype, "sourceProvider", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* observable */ "z"],
    __metadata("design:type", Boolean)
], SAMFolderCollection.prototype, "constructACPLAssetFailed", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* action */ "j"],
    __metadata("design:type", Object)
], SAMFolderCollection.prototype, "constructACPLAsset", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", []),
    __metadata("design:returntype", void 0)
], SAMFolderCollection.prototype, "_constructACPLAsset", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* computed */ "l"],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], SAMFolderCollection.prototype, "path", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* computed */ "l"],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], SAMFolderCollection.prototype, "cloudUri", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* computed */ "l"],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [Object])
], SAMFolderCollection.prototype, "fetchState", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [typeof (_e = typeof _constants__WEBPACK_IMPORTED_MODULE_7__[/* ProcessingState */ "n"] !== "undefined" && _constants__WEBPACK_IMPORTED_MODULE_7__[/* ProcessingState */ "n"]) === "function" ? _e : Object]),
    __metadata("design:returntype", void 0)
], SAMFolderCollection.prototype, "setFetchState", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_1__[/* computed */ "l"],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], SAMFolderCollection.prototype, "hasOfflineContent", null);
/* harmony default export */ __webpack_exports__["a"] = (SAMFolderCollection);


/***/ }),

/***/ "m9U2":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("VIzJ");
/* harmony import */ var mobx_react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("okNM");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("TSYQ");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _Dialog__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("dKUG");
/* harmony import */ var _components_Textfield__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("fGqG");
/* harmony import */ var _utils_UXPUtils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("LbGp");
/* harmony import */ var _utils_validate_asset_name__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("227d");
/* harmony import */ var _stores_SharedStore__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("jmEq");
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;
};
var __metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};









const css = __webpack_require__("WL9m");
let TextInputDialog = class TextInputDialog extends react__WEBPACK_IMPORTED_MODULE_0__["Component"] {
    constructor(props) {
        super(props);
        this.handleBlur = () => {
            this.setState({ hasFocus: false });
        };
        this.handleFocus = evt => {
            this.setState({ hasFocus: true });
            evt.currentTarget.select();
        };
        this.onConfirm = async () => {
            this.setState({ disableSave: true, confirmClicked: true });
            const status = await this.props.onConfirm(this.state.name.trim(), this.state.link.trim());
            this.setState({ disableSave: false });
            if (status) {
                this.setState({ error: status });
                return false;
            }
            return true;
        };
        this.state = {
            error: null,
            disableSave: true,
            confirmClicked: false,
            hasFocus: false,
            isDirty: false,
            name: '',
            link: '',
        };
    }
    componentDidUpdate(_, prevState) {
        if (prevState.name !== this.state.name ||
            prevState.link !== this.state.link ||
            prevState.hasFocus !== this.state.hasFocus) {
            const name = this.state.name.trim();
            // don't show the "name must not be blank" error state when input has focus
            // or when confirm has never been clicked.
            if (name.length === 0 && (this.state.hasFocus || !this.state.confirmClicked)) {
                this.setState({
                    disableSave: true,
                    error: null,
                });
                return;
            }
            const isWeblink = !!this.props.secondaryInputName;
            const { maxNameLength: maxLength } = this.props;
            const nameError = Object(_utils_validate_asset_name__WEBPACK_IMPORTED_MODULE_7__[/* default */ "c"])(name, isWeblink, maxLength);
            if (nameError) {
                this.setState({
                    disableSave: true,
                    error: this.props.intl.formatMessage({ id: nameError }, { names: !isWeblink, maxLength }),
                });
            }
            else {
                this.setState({
                    error: null,
                    disableSave: false,
                });
            }
            if (isWeblink && prevState.link === this.state.link && this.state.link.length === 0) {
                this.setState({ disableSave: true });
            }
        }
    }
    isValid() {
        if (!this.state.isDirty || (this.state.name.trim().length === 0 && this.state.hasFocus)) {
            return undefined;
        }
        return this.state.error ? 'invalid' : 'valid';
    }
    render() {
        const { intl, title, confirmLabelId, onClose, placeholderText, secondaryPlaceholderText, inputName, secondaryInputName, rendition, } = this.props;
        const confirmLabel = confirmLabelId || intl.formatMessage({ id: 'button.save' });
        return (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_Dialog__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"], { title: title, onConfirm: this.onConfirm, onClose: onClose, confirmLabel: confirmLabel, cancelLabel: intl.formatMessage({ id: 'button.cancel' }), className: classnames__WEBPACK_IMPORTED_MODULE_3___default()(css.dialog, {
                [css.dialogUxp]: _utils_UXPUtils__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"].usingUXP(),
                [css.weblink]: secondaryInputName,
            }), keyboardConfirm: true, "aria-label": title, confirmDisabled: this.state.disableSave },
            react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", { className: css.content },
                react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", { className: classnames__WEBPACK_IMPORTED_MODULE_3___default()(css.primaryInput, {
                        [css.columns]: secondaryInputName,
                    }) },
                    rendition && (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", { className: css.iconWrapper, "data-test-id": "TextInputDialog_IconWrapper" }, rendition)),
                    inputName && react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", { className: css.inputName }, inputName),
                    react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", { className: classnames__WEBPACK_IMPORTED_MODULE_3___default()(css.inputWrapper, {
                            [css.weblink]: secondaryInputName,
                            [css.inputWrapperLight]: _stores_SharedStore__WEBPACK_IMPORTED_MODULE_8__[/* sharedStore */ "d"].theme === 'light',
                            [css.inputWrapperDark]: _stores_SharedStore__WEBPACK_IMPORTED_MODULE_8__[/* sharedStore */ "d"].theme === 'dark',
                        }) },
                        react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_Textfield__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"], { className: 'globalSpacesTextfield', "data-test-id": "TextInputDialog_InputBox", disabled: this.state.disableSave && this.state.confirmClicked, placeholder: placeholderText, "aria-placeholder": placeholderText, value: this.state.name, validationState: this.isValid(), onChange: name => {
                                this.setState({
                                    isDirty: true,
                                    name,
                                });
                            }, autoFocus: true, onFocus: this.handleFocus, onBlur: this.handleBlur }),
                        this.state.error && (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("p", { role: "alert", "data-test-id": "TextInputDialog_ErrorMessage", className: css.errorMessage }, this.state.error)))),
                secondaryInputName && (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", { className: css.secondaryInput },
                    react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", { className: css.inputName }, secondaryInputName),
                    react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", { className: classnames__WEBPACK_IMPORTED_MODULE_3___default()(css.inputWrapper, {
                            [css.inputWrapperLight]: ['light', 'lightest'].includes(_stores_SharedStore__WEBPACK_IMPORTED_MODULE_8__[/* sharedStore */ "d"].theme),
                            [css.inputWrapperDark]: ['dark', 'darkest'].includes(_stores_SharedStore__WEBPACK_IMPORTED_MODULE_8__[/* sharedStore */ "d"].theme),
                        }) },
                        react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_Textfield__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"], { className: 'globalSpacesTextfield', "data-test-id": "TextInputDialog_secondaryInputBox", disabled: this.state.disableSave && this.state.confirmClicked, placeholder: secondaryPlaceholderText, "aria-placeholder": secondaryPlaceholderText, value: this.state.link, onChange: link => {
                                this.setState({
                                    link,
                                });
                            }, onFocus: this.handleFocus, onBlur: this.handleBlur })))))));
    }
};
TextInputDialog = __decorate([
    mobx_react__WEBPACK_IMPORTED_MODULE_2__[/* observer */ "e"],
    __metadata("design:paramtypes", [Object])
], TextInputDialog);
/* harmony default export */ __webpack_exports__["a"] = (Object(react_intl__WEBPACK_IMPORTED_MODULE_1__[/* injectIntl */ "g"])(TextInputDialog));


/***/ }),

/***/ "mAz1":
/***/ (function(module, exports, __webpack_require__) {

// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js
var Buffer = __webpack_require__("hwdV").Buffer;

var BN = __webpack_require__("OZ/i");

var EC = __webpack_require__("MzeL").ec;

var parseKeys = __webpack_require__("Ku4m");

var curves = __webpack_require__("zZGF");

function verify(sig, hash, key, signType, tag) {
  var pub = parseKeys(key);

  if (pub.type === 'ec') {
    // rsa keys can be interpreted as ecdsa ones in openssl
    if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') throw new Error('wrong public key type');
    return ecVerify(sig, hash, pub);
  } else if (pub.type === 'dsa') {
    if (signType !== 'dsa') throw new Error('wrong public key type');
    return dsaVerify(sig, hash, pub);
  } else {
    if (signType !== 'rsa' && signType !== 'ecdsa/rsa') throw new Error('wrong public key type');
  }

  hash = Buffer.concat([tag, hash]);
  var len = pub.modulus.byteLength();
  var pad = [1];
  var padNum = 0;

  while (hash.length + pad.length + 2 < len) {
    pad.push(0xff);
    padNum++;
  }

  pad.push(0x00);
  var i = -1;

  while (++i < hash.length) {
    pad.push(hash[i]);
  }

  pad = Buffer.from(pad);
  var red = BN.mont(pub.modulus);
  sig = new BN(sig).toRed(red);
  sig = sig.redPow(new BN(pub.publicExponent));
  sig = Buffer.from(sig.fromRed().toArray());
  var out = padNum < 8 ? 1 : 0;
  len = Math.min(sig.length, pad.length);
  if (sig.length !== pad.length) out = 1;
  i = -1;

  while (++i < len) out |= sig[i] ^ pad[i];

  return out === 0;
}

function ecVerify(sig, hash, pub) {
  var curveId = curves[pub.data.algorithm.curve.join('.')];
  if (!curveId) throw new Error('unknown curve ' + pub.data.algorithm.curve.join('.'));
  var curve = new EC(curveId);
  var pubkey = pub.data.subjectPrivateKey.data;
  return curve.verify(hash, sig, pubkey);
}

function dsaVerify(sig, hash, pub) {
  var p = pub.data.p;
  var q = pub.data.q;
  var g = pub.data.g;
  var y = pub.data.pub_key;
  var unpacked = parseKeys.signature.decode(sig, 'der');
  var s = unpacked.s;
  var r = unpacked.r;
  checkValue(s, q);
  checkValue(r, q);
  var montp = BN.mont(p);
  var w = s.invm(q);
  var v = g.toRed(montp).redPow(new BN(hash).mul(w).mod(q)).fromRed().mul(y.toRed(montp).redPow(r.mul(w).mod(q)).fromRed()).mod(p).mod(q);
  return v.cmp(r) === 0;
}

function checkValue(b, q) {
  if (b.cmpn(0) <= 0) throw new Error('invalid sig');
  if (b.cmp(q) >= q) throw new Error('invalid sig');
}

module.exports = verify;

/***/ }),

/***/ "mCmI":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _autobindDecorator = _interopRequireDefault(__webpack_require__("gKdT"));

var _calculatePosition = _interopRequireDefault(__webpack_require__("aTew"));

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _convertUnsafeMethod = _interopRequireDefault(__webpack_require__("6Tdt"));

var _filterDOMProps = _interopRequireDefault(__webpack_require__("VGQ+"));

var _getContainer = _interopRequireDefault(__webpack_require__("eF//"));

var _ownerDocument = _interopRequireDefault(__webpack_require__("z9HI"));

var _react = _interopRequireWildcard(__webpack_require__("q1tI"));

var _reactDom = _interopRequireDefault(__webpack_require__("i8i4"));

var _class, _class2, _temp;

function _getRequireWildcardCache() {
  if (typeof WeakMap !== "function") return null;
  var cache = new WeakMap();

  _getRequireWildcardCache = function () {
    return cache;
  };

  return cache;
}

function _interopRequireWildcard(obj) {
  if (obj && obj.__esModule) {
    return obj;
  }

  if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
    return {
      default: obj
    };
  }

  var cache = _getRequireWildcardCache();

  if (cache && cache.has(obj)) {
    return cache.get(obj);
  }

  var newObj = {};
  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;

  for (var key in obj) {
    if (Object.prototype.hasOwnProperty.call(obj, key)) {
      var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;

      if (desc && (desc.get || desc.set)) {
        Object.defineProperty(newObj, key, desc);
      } else {
        newObj[key] = obj[key];
      }
    }
  }

  newObj.default = obj;

  if (cache) {
    cache.set(obj, newObj);
  }

  return newObj;
}

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function ownKeys(object, enumerableOnly) {
  var keys = Object.keys(object);

  if (Object.getOwnPropertySymbols) {
    var symbols = Object.getOwnPropertySymbols(object);
    if (enumerableOnly) symbols = symbols.filter(function (sym) {
      return Object.getOwnPropertyDescriptor(object, sym).enumerable;
    });
    keys.push.apply(keys, symbols);
  }

  return keys;
}

function _objectSpread(target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i] != null ? arguments[i] : {};

    if (i % 2) {
      ownKeys(Object(source), true).forEach(function (key) {
        _defineProperty(target, key, source[key]);
      });
    } else if (Object.getOwnPropertyDescriptors) {
      Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
    } else {
      ownKeys(Object(source)).forEach(function (key) {
        Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
      });
    }
  }

  return target;
}

function _defineProperty(obj, key, value) {
  if (key in obj) {
    Object.defineProperty(obj, key, {
      value: value,
      enumerable: true,
      configurable: true,
      writable: true
    });
  } else {
    obj[key] = value;
  }

  return obj;
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

let Position =
/**
 * The Position component calculates the coordinates for its child, to position
 * it relative to a `target` component or node. Useful for creating callouts
 * and tooltips, the Position component injects a `style` props with `left` and
 * `top` values for positioning your component.
 *
 * It also injects "arrow" `left`, and `top` values for styling callout arrows
 * for giving your components a sense of directionality.
 */
(0, _convertUnsafeMethod.default)(_class = (0, _autobindDecorator.default)(_class = (_temp = _class2 = class Position extends _react.default.Component {
  constructor(props, context) {
    super(props, context);
    this.state = {
      positionLeft: 0,
      positionTop: 0,
      arrowOffsetLeft: null,
      arrowOffsetTop: null,
      placement: this.props.placement
    };
    this._needsFlush = false;
    this._lastTarget = null;
  }

  componentDidMount() {
    this.updatePosition(this.getTarget());
    window.addEventListener('resize', this.maybeUpdatePosition, false);
  }

  UNSAFE_componentWillReceiveProps() {
    this._needsFlush = true;
  }

  componentDidUpdate(prevProps) {
    if (this._needsFlush) {
      this._needsFlush = false;
      this.maybeUpdatePosition(this.props.placement !== prevProps.placement);
    }
  }

  componentWillUnmount() {
    window.removeEventListener('resize', this.maybeUpdatePosition, false);
  }

  render() {
    const _this$props = this.props,
          {
      children,
      className
    } = _this$props,
          props = _objectWithoutProperties(_this$props, ["children", "className"]);

    const {
      positionLeft,
      positionTop,
      maxHeight,
      arrowOffsetLeft,
      arrowOffsetTop,
      placement
    } = this.state;
    delete props.target;

    const child = _react.default.Children.only(children);

    return /*#__PURE__*/(0, _react.cloneElement)(child, _objectSpread(_objectSpread({}, (0, _filterDOMProps.default)(props)), {}, {
      placement,
      className: (0, _classnames.default)(className, child.props.className),
      arrowStyle: {
        left: arrowOffsetLeft,
        top: arrowOffsetTop
      },
      style: _objectSpread(_objectSpread({}, child.props.style), {}, {
        position: 'absolute',
        zIndex: 100000,
        // should match the z-index in ModalTrigger
        left: positionLeft,
        top: positionTop,
        maxHeight: maxHeight
      })
    }));
  }

  getTarget() {
    const target = this.props.target;
    const targetElement = typeof target === 'function' ? target() : target;
    return targetElement && _reactDom.default.findDOMNode(targetElement) || null;
  }

  maybeUpdatePosition(placementChanged) {
    const target = this.getTarget();

    if (!this.props.shouldUpdatePosition && target === this._lastTarget && !placementChanged) {
      return;
    }

    this.updatePosition(target);
  }

  updatePosition(target) {
    const {
      placement,
      containerPadding,
      offset,
      crossOffset,
      flip,
      boundariesElement
    } = this.props;
    this._lastTarget = target;

    if (!target) {
      this.setState({
        positionLeft: 0,
        positionTop: 0,
        arrowOffsetLeft: null,
        arrowOffsetTop: null
      });
      return;
    }

    const overlay = _reactDom.default.findDOMNode(this);

    const container = (0, _getContainer.default)(this.props.container, (0, _ownerDocument.default)(this).body);
    this.setState((0, _calculatePosition.default)(placement, overlay, target, container, containerPadding, flip, boundariesElement, offset, crossOffset));
  }

}, _class2.defaultProps = {
  containerPadding: 10,
  offset: 0,
  crossOffset: 0
}, _temp)) || _class) || _class;

exports.default = Position;

/***/ }),

/***/ "mHCn":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("path", {
  d: "M42.357 5.643a11.071 11.071 0 0 0-15.657 0c-.594.594-3.806 3.741-5.483 5.418a12.818 12.818 0 0 1 5.774.939c.8-.8 2.732-2.668 3.064-3A6.327 6.327 0 0 1 39 17.945l-8.2 8.2c-2.47 2.47-6.9 2.76-9.375.289a6.419 6.419 0 0 1-1.915-2.508 3.125 3.125 0 0 0-.659.49l-2.524 2.641a11.006 11.006 0 0 0 1.892 2.581c4.324 4.324 12.149 3.648 16.472-.676l7.666-7.662a11.071 11.071 0 0 0 0-15.657z"
}), React.createElement("path", {
  d: "M20.8 36.072c-.8.8-2.524 2.6-2.855 2.93A6.327 6.327 0 0 1 9 30.055l8.214-8.214c2.471-2.471 6.854-2.75 9.325-.279a6.079 6.079 0 0 1 1.706 2.577 3.125 3.125 0 0 0 .659-.491l2.676-2.655a11.006 11.006 0 0 0-1.892-2.581 11.28 11.28 0 0 0-15.829.073L5.643 26.7A11.071 11.071 0 0 0 21.3 42.357c.594-.594 3.6-3.672 5.274-5.349a12.818 12.818 0 0 1-5.774-.936z"
}));

/***/ }),

/***/ "mNJ6":
/***/ (function(module) {

module.exports = JSON.parse("{\"(optional)\":\"(optioneel)\",\"(required)\":\"(vereist)\"}");

/***/ }),

/***/ "mObS":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var inherits = __webpack_require__("P7XM");

var MD5 = __webpack_require__("9XZ3");

var RIPEMD160 = __webpack_require__("tcrS");

var sha = __webpack_require__("afKu");

var Base = __webpack_require__("ZDAU");

function Hash(hash) {
  Base.call(this, 'digest');
  this._hash = hash;
}

inherits(Hash, Base);

Hash.prototype._update = function (data) {
  this._hash.update(data);
};

Hash.prototype._final = function () {
  return this._hash.digest();
};

module.exports = function createHash(alg) {
  alg = alg.toLowerCase();
  if (alg === 'md5') return new MD5();
  if (alg === 'rmd160' || alg === 'ripemd160') return new RIPEMD160();
  return new Hash(sha(alg));
};

/***/ }),

/***/ "mQAy":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("path", {
  d: "M25.343 4H8a2 2 0 0 0-2 2v36a2 2 0 0 0 2 2h30a2 2 0 0 0 2-2V18.657a4 4 0 0 0-1.172-2.828L28.172 5.172A4 4 0 0 0 25.343 4zM34.5 17H27V9.5zM36 40H10V8h13v11a2 2 0 0 0 2 2h11z"
}));

/***/ }),

/***/ "mRg0":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


exports.__esModule = true;

var _setPrototypeOf = __webpack_require__("s3Ml");

var _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf);

var _create = __webpack_require__("AyUB");

var _create2 = _interopRequireDefault(_create);

var _typeof2 = __webpack_require__("EJiy");

var _typeof3 = _interopRequireDefault(_typeof2);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

exports.default = function (subClass, superClass) {
  if (typeof superClass !== "function" && superClass !== null) {
    throw new TypeError("Super expression must either be null or a function, not " + (typeof superClass === "undefined" ? "undefined" : (0, _typeof3.default)(superClass)));
  }

  subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, {
    constructor: {
      value: subClass,
      enumerable: false,
      writable: true,
      configurable: true
    }
  });
  if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass;
};

/***/ }),

/***/ "mSHx":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("path", {
  d: "M17.7 35.976a1.029 1.029 0 0 1-1.067-.928l-1.258-17.956a1 1 0 0 1 2-.14l1.256 17.956a1.029 1.029 0 0 1-.931 1.068zM23 36a1.029 1.029 0 0 1-1-1V17a1 1 0 0 1 2 0v18a1.029 1.029 0 0 1-1 1zm5.3-.024a1.029 1.029 0 0 1-.928-1.067l1.258-17.957a1 1 0 0 1 2 .14l-1.26 17.956a1.029 1.029 0 0 1-1.07.928z"
}), React.createElement("path", {
  d: "M42 8H32V6a4 4 0 0 0-4-4H18a4 4 0 0 0-4 4v2H4a2 2 0 0 0 0 4h2.2l2 30a2 2 0 0 0 2 2h25.6a2 2 0 0 0 2-2l2-30H42a2 2 0 0 0 0-4zM18 6h10v2H18zm16 34H12l-2-28h26z"
}));

/***/ }),

/***/ "mStE":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("RG/p"),
      24: __webpack_require__("6E2w")
    }
  }));
};

WrappedIcon.displayName = 'LinkOut';
exports.default = WrappedIcon;

/***/ }),

/***/ "mTTR":
/***/ (function(module, exports, __webpack_require__) {

var arrayLikeKeys = __webpack_require__("b80T"),
    baseKeysIn = __webpack_require__("QcOe"),
    isArrayLike = __webpack_require__("MMmD");
/**
 * Creates an array of the own and inherited enumerable property names of `object`.
 *
 * **Note:** Non-object values are coerced to objects.
 *
 * @static
 * @memberOf _
 * @since 3.0.0
 * @category Object
 * @param {Object} object The object to query.
 * @returns {Array} Returns the array of property names.
 * @example
 *
 * function Foo() {
 *   this.a = 1;
 *   this.b = 2;
 * }
 *
 * Foo.prototype.c = 3;
 *
 * _.keysIn(new Foo);
 * // => ['a', 'b', 'c'] (iteration order is not guaranteed)
 */


function keysIn(object) {
  return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);
}

module.exports = keysIn;

/***/ }),

/***/ "mThF":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _autobindDecorator = _interopRequireDefault(__webpack_require__("gKdT"));

var _events = __webpack_require__("mdZ3");

var _convertUnsafeMethod = _interopRequireDefault(__webpack_require__("8nyd"));

var _createId = _interopRequireDefault(__webpack_require__("b7KY"));

var _ScrollManager = __webpack_require__("8VRs");

var _ModalContainer = __webpack_require__("Kqiy");

var _Overlay = _interopRequireDefault(__webpack_require__("eS3o"));

var _ownerDocument = _interopRequireDefault(__webpack_require__("z9HI"));

var _propTypes = _interopRequireDefault(__webpack_require__("17x9"));

var _react = _interopRequireWildcard(__webpack_require__("q1tI"));

var _reactDom = _interopRequireDefault(__webpack_require__("i8i4"));

const _excluded = ["rootClose"],
      _excluded2 = ["trigger", "show", "selected"];

var _class, _class2, _temp;

function _getRequireWildcardCache(nodeInterop) {
  if (typeof WeakMap !== "function") return null;
  var cacheBabelInterop = new WeakMap();
  var cacheNodeInterop = new WeakMap();
  return (_getRequireWildcardCache = function (nodeInterop) {
    return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
  })(nodeInterop);
}

function _interopRequireWildcard(obj, nodeInterop) {
  if (!nodeInterop && obj && obj.__esModule) {
    return obj;
  }

  if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
    return {
      default: obj
    };
  }

  var cache = _getRequireWildcardCache(nodeInterop);

  if (cache && cache.has(obj)) {
    return cache.get(obj);
  }

  var newObj = {};
  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;

  for (var key in obj) {
    if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
      var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;

      if (desc && (desc.get || desc.set)) {
        Object.defineProperty(newObj, key, desc);
      } else {
        newObj[key] = obj[key];
      }
    }
  }

  newObj.default = obj;

  if (cache) {
    cache.set(obj, newObj);
  }

  return newObj;
}

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function ownKeys(object, enumerableOnly) {
  var keys = Object.keys(object);

  if (Object.getOwnPropertySymbols) {
    var symbols = Object.getOwnPropertySymbols(object);

    if (enumerableOnly) {
      symbols = symbols.filter(function (sym) {
        return Object.getOwnPropertyDescriptor(object, sym).enumerable;
      });
    }

    keys.push.apply(keys, symbols);
  }

  return keys;
}

function _objectSpread(target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i] != null ? arguments[i] : {};

    if (i % 2) {
      ownKeys(Object(source), true).forEach(function (key) {
        _defineProperty(target, key, source[key]);
      });
    } else if (Object.getOwnPropertyDescriptors) {
      Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
    } else {
      ownKeys(Object(source)).forEach(function (key) {
        Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
      });
    }
  }

  return target;
}

function _defineProperty(obj, key, value) {
  if (key in obj) {
    Object.defineProperty(obj, key, {
      value: value,
      enumerable: true,
      configurable: true,
      writable: true
    });
  } else {
    obj[key] = value;
  }

  return obj;
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

const triggerType = _propTypes.default.oneOf(['click', 'longClick', 'hover', 'focus']);

const MOUSE_BUTTONS = {
  left: 0
};
/**
 * Check if value one is inside or equal to the of value
 *
 * @param {string} one
 * @param {string|array} of
 * @returns {boolean}
 */

function isOneOf(one, of) {
  if (Array.isArray(of)) {
    return of.indexOf(one) >= 0;
  }

  return one === of;
}
/*
 * Class based on React-bootstrap
 * https://github.com/react-bootstrap/react-bootstrap/blob/master/src/OverlayTrigger.js
 */


let OverlayTrigger = (0, _convertUnsafeMethod.default)(_class = (0, _autobindDecorator.default)(_class = (_temp = _class2 = class OverlayTrigger extends _react.Component {
  constructor(props, context) {
    super(props, context);

    this.onMouseDown = e => {
      if (!this.props.disabled && e.button === MOUSE_BUTTONS.left) {
        const target = e.currentTarget;
        this.longPressTimeout = setTimeout(() => {
          this.longPressTimeout = null; // In Safari, buttons are force blurred after the mouse down event since we don't call e.preventDefault()
          // Changing Button to prevent default would be a breaking change. So, assume that we want to restore
          // focus to the trigger element when the overlay closes.

          this._lastFocus = target;
          this.show(e);
        }, 250);
      }
    };

    this.onMouseUp = e => {
      // Prevent focus from being forced back to the button on long click.
      // It will already be inside the popover/menu.
      if (!this.longPressTimeout) {
        e.preventDefault();
      }

      if (!this.props.disabled && this.longPressTimeout && e.button === MOUSE_BUTTONS.left) {
        if (this.props.onClick) {
          this.props.onClick(e);
        }

        this.hide(e);
        clearTimeout(this.longPressTimeout);
        this.longPressTimeout = null;
      }
    };

    this.windowMouseUp = e => {
      if (e.button === MOUSE_BUTTONS.left && !_reactDom.default.findDOMNode(this).contains(e.target) && this.longPressTimeout) {
        clearTimeout(this.longPressTimeout);
        this.longPressTimeout = null;
      }
    };

    this.overlayId = (0, _createId.default)();
    this._mountNode = null;
    this.longPressTimeout = null;
    this._lastFocus = props.lastFocus;
    this.boundariesElement = props.boundariesElement ? props.boundariesElement : () => (0, _ownerDocument.default)(this).body;
    this._scrollParents = null;
    this.state = {
      show: props.show === undefined ? props.defaultShow : props.show
    };
  }

  UNSAFE_componentWillReceiveProps(nextProps) {
    if ('lastFocus' in nextProps && nextProps.lastFocus !== this.props.lastFocus) {
      this._lastFocus = nextProps.lastFocus;
    }

    if (nextProps.show !== this.props.show) {
      nextProps.show ? this.handleDelayedShow() : this.handleDelayedHide();
    }
  }

  componentDidMount() {
    this._mountNode = document.createElement('div');
    this.renderOverlay();
    document.body.addEventListener('mouseUp', this.windowMouseUp);
  }

  componentDidUpdate(prevProps) {
    const isDisabled = prevProps.disabled;
    const shouldDisable = this.props.disabled;

    if (!isDisabled && shouldDisable) {
      this.hide();
    }

    this.renderOverlay();
  }

  componentWillUnmount() {
    _ModalContainer.modalManager.removeFromModal(this._overlay);

    _reactDom.default.unmountComponentAtNode(this._mountNode);

    this._mountNode = null;
    clearTimeout(this._hoverShowDelay);
    clearTimeout(this._hoverHideDelay);
    this.removeListenersFromScrollParents();
    document.body.removeEventListener('mouseUp', this.windowMouseUp);
  }

  handleToggle(e) {
    if (this.state.show) {
      this.hide(e);
    } else {
      this.show(e);
    }
  }

  handleDelayedShow(e) {
    if (this._hoverHideDelay != null) {
      clearTimeout(this._hoverHideDelay);
      this._hoverHideDelay = null;
      return;
    }

    if (this.state.show || this._hoverShowDelay != null) {
      return;
    }

    const delay = this.props.delayShow != null ? this.props.delayShow : this.props.delay;

    if (!delay) {
      this.show(e);
      return;
    }

    this._hoverShowDelay = setTimeout(() => {
      this._hoverShowDelay = null;
      this.show(e);
    }, delay);
  }

  handleDelayedHide(e) {
    if (this._hoverShowDelay != null) {
      clearTimeout(this._hoverShowDelay);
      this._hoverShowDelay = null;
      return;
    }

    if (!this.state.show || this._hoverHideDelay != null) {
      return;
    }

    let delay = (!this.props.delayHide || this.props.delayHide === OverlayTrigger.defaultProps.delayHide) && this.props.delay != null ? this.props.delay : this.props.delayHide;

    if (!delay) {
      this.hide(e);
      return;
    }

    this._hoverHideDelay = setTimeout(() => {
      this._hoverHideDelay = null;
      this.hide(e);
    }, delay);
  } // Simple implementation of mouseEnter and mouseLeave.
  // React's built version is broken: https://github.com/facebook/react/issues/4251
  // for cases when the trigger is disabled and mouseOut/Over can cause flicker
  // moving from one child element to another.


  handleMouseOverOut(handler, e) {
    const target = e.currentTarget;
    const related = e.relatedTarget || e.nativeEvent.toElement;

    if (!related || related !== target && !target.contains(related)) {
      handler(e);
    }
  }

  show(e) {
    if (!this.state.show && !this.props.disabled) {
      this._lastFocus = this.rememberedFocus();
      this.listenToScrollParents();
      this.setState({
        show: true
      });

      if (this.props.onShow) {
        this.props.onShow(e);
      }
    }
  } // if we're already listening, remove listeners and reapply


  listenToScrollParents() {
    if (this._scrollParents) {
      this.removeListenersFromScrollParents();
    }

    this._scrollParents = (0, _ScrollManager.getScrollParents)(_reactDom.default.findDOMNode(this));

    for (let node of this._scrollParents) {
      node.addEventListener('scroll', this.hide, false);
    }
  } // if we have any listeners on parents, remove them


  removeListenersFromScrollParents() {
    if (this._scrollParents) {
      for (let node of this._scrollParents) {
        node.removeEventListener('scroll', this.hide, false);
      }

      this._scrollParents = null;
    }
  }

  hide(e) {
    this.removeListenersFromScrollParents();

    if (this.state.show) {
      this.setState({
        show: false
      });

      if (this.props.onHide) {
        this.props.onHide(e);
      }
    }
  }

  onKeyDown(e) {
    if (e.key === 'ArrowDown' || e.key === 'Down') {
      if (e.altKey || e.target === _reactDom.default.findDOMNode(this.dropdownRef.triggerRef)) {
        e.preventDefault();
        this.show(e);
      }
    }
  }

  onHide(e) {
    // if we are in longClick mode and the onHide comes from the mouse up on the trigger, then ignore it
    // it's actually an onHide coming from rootClose
    if (isOneOf('longClick', this.props.trigger) && _reactDom.default.findDOMNode(this).contains(e.target)) {
      return;
    }

    if (this.props.show === undefined) {
      this.hide(e);
    } else if (this.props.onHide) {
      this.props.onHide(e);
    }
  }

  onExited(e) {
    this.restoreFocus(e);

    if (this.props.onExited) {
      this.props.onExited(e);
    }
  }

  rememberedFocus() {
    if (!this._lastFocus && document && document.activeElement !== document.body) {
      this._lastFocus = document.activeElement;
    }

    return this._lastFocus;
  }

  restoreFocus(overlay) {
    if (this._lastFocus && typeof this._lastFocus.focus === 'function') {
      if (document) {
        let node;

        if (overlay) {
          node = _reactDom.default.findDOMNode(overlay);
        }

        if (node && !node.contains(this._lastFocus) && (node === document.activeElement || node.contains(document.activeElement)) || document.activeElement === document.body) {
          this._lastFocus.focus();
        }
      }

      if (!this.props.lastFocus) {
        this._lastFocus = null;
      }
    }
  }

  makeOverlay(overlay, props) {
    let {
      target = this
    } = this.props;

    let {
      rootClose = true
    } = props,
        overlayProps = _objectWithoutProperties(props, _excluded);

    delete overlayProps.crossOffset;
    delete overlayProps.defaultShow;
    delete overlayProps.flip;
    delete overlayProps.boundariesElement;

    let topOverlayProps = _objectSpread({
      id: overlay.props.id || overlayProps.id
    }, props);

    if (!overlay.props.id) {
      overlayProps.id = this.overlayId;
    }

    return /*#__PURE__*/_react.default.createElement(_Overlay.default, _extends({}, topOverlayProps, {
      show: this.state.show,
      onHide: this.onHide,
      onExited: this.onExited,
      target: target,
      rootClose: rootClose
    }), /*#__PURE__*/(0, _react.cloneElement)(overlay, overlayProps));
  }

  renderOverlay() {
    // Only add overlay to modalManager when it is shown.
    if (this._overlay.props.show) {
      _ModalContainer.modalManager.addToModal(this._overlay, true);
    }

    _reactDom.default.unstable_renderSubtreeIntoContainer(this, this._overlay, this._mountNode);
  }

  render() {
    const _this$props = this.props,
          {
      trigger,
      show,
      selected = this.state.show
    } = _this$props,
          props = _objectWithoutProperties(_this$props, _excluded2);

    delete props.delay;
    delete props.delayShow;
    delete props.delayHide;
    delete props.defaultShow;
    delete props.onShow;
    delete props.onHide;

    const [triggerChild, overlayChild] = _react.default.Children.toArray(this.props.children);

    const triggerProps = {};
    delete props.children; // When Tooltip is shown,

    if (this.state.show && overlayChild.type && overlayChild.props.role === 'tooltip') {
      // Tooltip element id should match trigger element's aria-describedby value,
      if (!props.id) {
        props.id = overlayChild.props.id || this.overlayId;
      } // Tooltip should add aria-describedby attribute to trigger element.


      triggerProps['aria-describedby'] = props.id;
    } // Attach trigger events in case on un-controlled overlay


    if (show === undefined) {
      if (isOneOf('click', trigger) && !isOneOf('longClick', trigger)) {
        triggerProps.onClick = (0, _events.chain)(this.props.onClick, this.handleToggle);
      }

      if (isOneOf('longClick', trigger)) {
        delete props.onClick;
        triggerProps.onMouseDown = this.onMouseDown;
        triggerProps.onMouseUp = this.onMouseUp;
        triggerProps.onKeyDown = this.onKeyDown;
      }

      if (isOneOf('hover', trigger)) {
        triggerProps.onMouseOver = this.handleMouseOverOut.bind(this, this.handleDelayedShow);
        triggerProps.onMouseOut = this.handleMouseOverOut.bind(this, this.handleDelayedHide);
        props.onMouseOver = this.handleMouseOverOut.bind(this, this.handleDelayedShow);
        props.onMouseOut = this.handleMouseOverOut.bind(this, this.handleDelayedHide); // overlay should not trap focus when trigger is 'hover'

        props.trapFocus = false;
      }

      if (isOneOf('focus', trigger)) {
        triggerProps.onFocus = (0, _events.chain)(triggerChild.props.onFocus, this.handleDelayedShow);
        triggerProps.onBlur = (0, _events.chain)(triggerChild.props.onBlur, this.handleDelayedHide);
        props.onFocus = this.handleDelayedShow;
        props.onBlur = this.handleDelayedHide; // overlay should not trap focus when trigger is 'focus'

        props.trapFocus = false;
      }
    }

    triggerProps.selected = selected; // Remove previous overlay from modalManager

    if (this._overlay) {
      _ModalContainer.modalManager.removeFromModal(this._overlay);
    }

    this._overlay = this.makeOverlay(overlayChild, props);
    return /*#__PURE__*/(0, _react.cloneElement)(triggerChild, triggerProps);
  }

}, _class2.propTypes = _objectSpread(_objectSpread({}, _Overlay.default.propTypes), {}, {
  /**
   * Specify which action or actions trigger Overlay visibility
   */
  trigger: _propTypes.default.oneOfType([triggerType, _propTypes.default.arrayOf(triggerType)]),

  /**
   * A millisecond delay amount to show and hide the Overlay once triggered
   */
  delay: _propTypes.default.number,

  /**
   * A millisecond delay amount before showing the Overlay once triggered.
   */
  delayShow: _propTypes.default.number,

  /**
   * A millisecond delay amount before hiding the Overlay once triggered.
   */
  delayHide: _propTypes.default.number,

  /**
   * The initial visibility state of the Overlay. For more nuanced visibility
   * control, consider using the Overlay component directly.
   */
  defaultShow: _propTypes.default.bool,

  /**
   * Specify the position of the overlay relative to the trigger element.
   */
  placement: _propTypes.default.string,

  /**
   * An element or text to overlay next to the target.
   */

  /**
   * Callback when the overlay trigger is blurred.
   */
  onBlur: _propTypes.default.func,

  /**
   * Callback when the overlay trigger is clicked.
   */
  onClick: _propTypes.default.func,

  /**
   * Callback when the overlay trigger receives focus.
   */
  onFocus: _propTypes.default.func,

  /**
   * Callback when the mouse leaves the overlay trigger.
   */
  onMouseOut: _propTypes.default.func,

  /**
   * Callback when the mouse is over the overlay trigger.
   */
  onMouseOver: _propTypes.default.func,

  /**
   * Callback when the overlay show is invoked, determined by the 'trigger' prop.
   */
  onShow: _propTypes.default.func,

  /**
   * Callback when the overlay is hidden.
   */
  onHide: _propTypes.default.func,

  /**
   * Will cause the overlay to show in a controlled state.
   */
  show: _propTypes.default.bool,

  /**
   * Overlay will be shifted by specified units in the placement's axis direction.
   */
  offset: _propTypes.default.number,

  /**
   * Overlay will be shifted by specified units in the placement's cross-axis direction.
   */
  crossOffset: _propTypes.default.number,

  /**
   * Whether overlay should be allowed to flip if it hits the boundary
   */
  flip: _propTypes.default.bool,

  /**
   * Grey's out the trigger and removes interaction.
   */
  disabled: _propTypes.default.bool,

  /**
   * By default, the body of the owning document. The overlay will do a hit test to see if it
   * extends outside the boundaries and move it to a new position if it collides.
   */
  boundariesElement: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.string]),

  /**
   * The last component or element to have focus before the overlay opened.
   * If undefined, overlay will use the document.activeElement before it opened as the lastFocus.
   * Set the lastFocus prop to override this default behavior.
   */
  lastFocus: _propTypes.default.oneOfType([_propTypes.default.element, _propTypes.default.object])
}), _class2.defaultProps = {
  defaultShow: false,
  trigger: ['hover', 'focus'],
  placement: 'left',
  offset: 0,
  crossOffset: 0,
  flip: true,
  disabled: false,
  delayHide: 100
}, _temp)) || _class) || _class;

exports.default = OverlayTrigger;

/***/ }),

/***/ "mbZj":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}


/* harmony default export */ __webpack_exports__["a"] = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("svg", _extends({
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 190.498 195.008"
}, props), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("defs", null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("g", {
  id: "Layer_2",
  "data-name": "Layer 2"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("g", {
  id: "Layer_1-2",
  "data-name": "Layer 1"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M123.84 19.057a5.017 5.017 0 1 1 2.81-.865 4.986 4.986 0 0 1-2.81.865zm-.018-8.038a3 3 0 1 0 2.483 1.313 2.994 2.994 0 0 0-2.483-1.313z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M123.626 34.495a1.083 1.083 0 0 1-.148-.01 1 1 0 0 1-.842-1.136l.965-6.516a2.691 2.691 0 0 1 3.113-2.19l.064.012 14.69 3.091a1 1 0 1 1-.395 1.96l-.017-.003-14.688-3.09a.675.675 0 0 0-.506.11.662.662 0 0 0-.287.426l-.96 6.492a1 1 0 0 1-.99.854z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M104.324 54.897a.976.976 0 0 1-.182-.016 1 1 0 0 1-.802-1.165l4.075-22.099a2.348 2.348 0 0 1 2.717-1.91q.043.007.086.017l22.002 4.546a1 1 0 1 1-.405 1.96l-22.003-4.548a.37.37 0 0 0-.279.05.354.354 0 0 0-.15.239l-4.076 22.108a1 1 0 0 1-.983.818z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M103.928 59.573a3.283 3.283 0 0 1-2.72-1.434L83.601 32.303a3.29 3.29 0 0 1 .865-4.567L124.326.571a3.286 3.286 0 0 1 4.567.864L146.5 27.272a3.29 3.29 0 0 1-.865 4.567l-39.86 27.165a3.266 3.266 0 0 1-1.847.57zM126.016 3.05l-39.86 27.165a.288.288 0 0 0-.077.398l17.608 25.836a.284.284 0 0 0 .183.12.287.287 0 0 0 .215-.045l39.86-27.165a.288.288 0 0 0 .076-.398L126.414 3.125a.284.284 0 0 0-.184-.12.287.287 0 0 0-.214.045z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M153.542 84.96a1.5 1.5 0 0 1-1.5-1.5v-4.587a1.5 1.5 0 0 1 3 0v4.587a1.5 1.5 0 0 1-1.5 1.5z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M149.66 76.491h-4.588a1.5 1.5 0 0 1 0-3h4.588a1.5 1.5 0 0 1 0 3z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M162.01 76.491h-4.586a1.5 1.5 0 0 1 0-3h4.587a1.5 1.5 0 0 1 0 3z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M153.542 72.61a1.5 1.5 0 0 1-1.5-1.5V66.52a1.5 1.5 0 0 1 3 0v4.588a1.5 1.5 0 0 1-1.5 1.5z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M167.7 66.244a1.5 1.5 0 0 1-1.5-1.5v-7.46a1.5 1.5 0 0 1 3 0v7.46a1.5 1.5 0 0 1-1.5 1.5z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M163.969 55.053h-7.461a1.5 1.5 0 0 1 0-3h7.46a1.5 1.5 0 0 1 0 3z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M178.89 55.053h-7.46a1.5 1.5 0 0 1 0-3h7.46a1.5 1.5 0 0 1 0 3z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M167.7 51.322a1.5 1.5 0 0 1-1.5-1.5v-7.46a1.5 1.5 0 0 1 3 0v7.46a1.5 1.5 0 0 1-1.5 1.5z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M121.295 91.448a1.5 1.5 0 0 1-1.5-1.5V76.96a4.574 4.574 0 0 0-4.568-4.57H87.25a1.5 1.5 0 1 1 0-3h27.977a7.578 7.578 0 0 1 7.568 7.57v12.988a1.5 1.5 0 0 1-1.5 1.5z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M36.815 175.698H24.057a7.578 7.578 0 0 1-7.569-7.57V95.203a1.5 1.5 0 0 1 3 0v72.927a4.574 4.574 0 0 0 4.569 4.57h12.758a1.5 1.5 0 1 1 0 3z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M134.536 195.008H43.367a7.578 7.578 0 0 1-7.57-7.569V96.27a7.578 7.578 0 0 1 7.57-7.568h91.17a7.578 7.578 0 0 1 7.568 7.568v91.17a7.578 7.578 0 0 1-7.569 7.569zM43.367 91.7a4.574 4.574 0 0 0-4.57 4.568v91.17a4.574 4.574 0 0 0 4.57 4.569h91.17a4.574 4.574 0 0 0 4.568-4.569V96.27a4.574 4.574 0 0 0-4.569-4.568z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M88.237 142.259a1.5 1.5 0 0 1-1.5-1.5V90.33a1.5 1.5 0 0 1 1.5-1.5h33.08a1.5 1.5 0 0 1 1.5 1.5v50.429a1.5 1.5 0 0 1-2.272 1.286l-17.514-10.523-13.892 10.436a1.5 1.5 0 0 1-.902.3zm14.7-14.042a1.504 1.504 0 0 1 .773.214l16.107 9.676V91.83h-30.08v45.926l12.3-9.238a1.499 1.499 0 0 1 .9-.301z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("g", {
  id: "a_type_font_sm",
  "data-name": "a type font sm"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M166.976 184.94h-.01a63.398 63.398 0 0 1-22.136-4.174 1.5 1.5 0 1 1 1.088-2.795 59.978 59.978 0 0 0 20.394 3.949 61.186 61.186 0 0 1 2.75-5.99L183.8 146.56c7.467-14.877 3.553-27.524-10.74-34.696a49.684 49.684 0 0 0-1.283-.623l-.005-.003a46.83 46.83 0 0 0-18.615-4.646l-3.441 6.856a41.387 41.387 0 0 1 18.09 4.617c6.048 3.037 9.596 7.168 10.543 12.282a17.009 17.009 0 0 1-1.606 10.364l-1.585 3.16a1.5 1.5 0 0 1-2.015.667q-.06-.03-.117-.065c-1.243-.772-3.785-2.224-8.834-4.757a64.173 64.173 0 0 0-5.956-2.631l-.002-.001a44.4 44.4 0 0 0-10.818-2.733 1.5 1.5 0 1 1 .324-2.982h.004a47.456 47.456 0 0 1 11.558 2.911 67.39 67.39 0 0 1 6.236 2.754c3.722 1.868 6.125 3.17 7.66 4.052l.863-1.72a13.944 13.944 0 0 0 1.338-8.474c-.767-4.14-3.774-7.553-8.94-10.145a37.689 37.689 0 0 0-17.982-4.284 1.182 1.182 0 0 1-.261-.015 2.33 2.33 0 0 1-1.748-1.195 2.235 2.235 0 0 1 .03-2.082l4.03-8.03a2.802 2.802 0 0 1 2.347-1.54c.066-.008.133-.008.2-.011a49.778 49.778 0 0 1 19.977 4.935l.002.001q.68.318 1.354.658c15.759 7.908 20.273 22.384 12.073 38.722l-14.733 29.359a54.038 54.038 0 0 0-2.834 6.28 1.665 1.665 0 0 1-.073.173 1.967 1.967 0 0 1-1.865 1.22zm-7.893-10.881a1.39 1.39 0 0 1-.11-.004 35.902 35.902 0 0 1-13.666-3.931 1.5 1.5 0 0 1 1.345-2.682 33.389 33.389 0 0 0 11.548 3.532l9.322-18.579a73.824 73.824 0 0 0-7.164-4.054 48.438 48.438 0 0 0-5.807-2.488h-.001a24.822 24.822 0 0 0-7.279-1.493 1.5 1.5 0 0 1 .043-2.999l.045.001a27.76 27.76 0 0 1 8.173 1.657h.001a51.465 51.465 0 0 1 6.171 2.64 71.338 71.338 0 0 1 8.608 4.996 1.5 1.5 0 0 1 .485 1.906l-10.373 20.67a1.5 1.5 0 0 1-1.341.828z",
  id: "a_type_font_sm-2",
  "data-name": "a type font sm-2"
})), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("g", {
  id: "folder_locked_lg",
  "data-name": "folder locked lg"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M31.846 92.484a1.49 1.49 0 0 1-.615-.132L3.723 79.971a6.324 6.324 0 0 1-3.168-8.35l17.944-39.867a6.364 6.364 0 0 1 8.415-3.191h.002l16.568 7.456a5.355 5.355 0 0 1 2.83 3.008l3.082 8.143a.457.457 0 0 0 .247.262l28.274 12.726a6.322 6.322 0 0 1 3.167 8.35l-6.947 15.434a1.5 1.5 0 1 1-2.738-1.226l.001-.004 6.948-15.435a3.318 3.318 0 0 0-1.662-4.383L48.412 50.168a3.452 3.452 0 0 1-1.82-1.933l-3.084-8.146a2.373 2.373 0 0 0-1.255-1.333l-16.568-7.457a3.362 3.362 0 0 0-4.448 1.682l-.002.004L3.291 72.851a3.318 3.318 0 0 0 1.663 4.383l27.508 12.382a1.5 1.5 0 0 1-.616 2.868z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  className: styles["cls-1"] || "cls-1",
  d: "M51.357 51.349a1.49 1.49 0 0 1-.614-.132L23.603 39a1.5 1.5 0 0 1 1.23-2.736l27.14 12.215a1.5 1.5 0 0 1-.616 2.869z"
}))))));

/***/ }),

/***/ "mc0g":
/***/ (function(module, exports) {

/**
 * Creates a base function for methods like `_.forIn` and `_.forOwn`.
 *
 * @private
 * @param {boolean} [fromRight] Specify iterating from right to left.
 * @returns {Function} Returns the new base function.
 */
function createBaseFor(fromRight) {
  return function (object, iteratee, keysFunc) {
    var index = -1,
        iterable = Object(object),
        props = keysFunc(object),
        length = props.length;

    while (length--) {
      var key = props[fromRight ? length : ++index];

      if (iteratee(iterable[key], key, iterable) === false) {
        break;
      }
    }

    return object;
  };
}

module.exports = createBaseFor;

/***/ }),

/***/ "mdPL":
/***/ (function(module, exports, __webpack_require__) {

/* WEBPACK VAR INJECTION */(function(module) {var freeGlobal = __webpack_require__("WFqU");
/** Detect free variable `exports`. */


var freeExports =  true && exports && !exports.nodeType && exports;
/** Detect free variable `module`. */

var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;
/** Detect the popular CommonJS extension `module.exports`. */

var moduleExports = freeModule && freeModule.exports === freeExports;
/** Detect free variable `process` from Node.js. */

var freeProcess = moduleExports && freeGlobal.process;
/** Used to access faster Node.js helpers. */

var nodeUtil = function () {
  try {
    // Use `util.types` for Node.js 10+.
    var types = freeModule && freeModule.require && freeModule.require('util').types;

    if (types) {
      return types;
    } // Legacy `process.binding('util')` for Node.js < 10.


    return freeProcess && freeProcess.binding && freeProcess.binding('util');
  } catch (e) {}
}();

module.exports = nodeUtil;
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("YuTi")(module)))

/***/ }),

/***/ "mdZ3":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.interpretKeyboardEvent = interpretKeyboardEvent;
exports.chain = chain;
exports.focusAfterMouseEvent = focusAfterMouseEvent;
/*************************************************************************
* ADOBE CONFIDENTIAL
* ___________________
*
* Copyright 2019 Adobe
* All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains
* the property of Adobe and its suppliers, if any. The intellectual
* and technical concepts contained herein are proprietary to Adobe
* and its suppliers and are protected by all applicable intellectual
* property laws, including trade secret and copyright laws.
* Dissemination of this information or reproduction of this material
* is strictly forbidden unless prior written permission is obtained
* from Adobe.
**************************************************************************/

function interpretKeyboardEvent(event, orientation = 'vertical') {
  switch (event.key) {
    case 'Enter':
    case ' ':
      if (this.onSelectFocused) {
        this.onSelectFocused(event);
      }

      break;

    case 'Tab':
      if (this.onTab) {
        this.onTab(event);
      }

      break;

    case 'PageUp':
      if (this.onPageUp) {
        this.onPageUp(event);
      } else if (this.onFocusFirst) {
        this.onFocusFirst(event);
      }

      break;

    case 'PageDown':
      if (this.onPageDown) {
        this.onPageDown(event);
      } else if (this.onFocusLast) {
        this.onFocusLast(event);
      }

      break;

    case 'Home':
      if (this.onFocusFirst) {
        this.onFocusFirst(event);
      }

      break;

    case 'End':
      if (this.onFocusLast) {
        this.onFocusLast(event);
      }

      break;

    case 'ArrowUp':
    case 'Up':
      if (event.altKey && this.onAltArrowUp) {
        this.onAltArrowUp(event);
      } else if (this.onFocusPrevious) {
        switch (orientation) {
          case 'vertical':
            this.onFocusPrevious(event);
            break;

          case 'horizontal':
            break;

          default:
            this.props.nextFocusOffset ? this.onFocusPrevious(event, this.props.nextFocusOffset()) : this.onFocusPrevious(event);
            break;
        }
      }

      break;

    case 'ArrowDown':
    case 'Down':
      if (event.altKey && this.onAltArrowDown) {
        this.onAltArrowDown(event);
      } else if (this.onFocusNext) {
        switch (orientation) {
          case 'vertical':
            this.onFocusNext(event);
            break;

          case 'horizontal':
            break;

          default:
            this.props.nextFocusOffset ? this.onFocusNext(event, this.props.nextFocusOffset()) : this.onFocusNext(event);
            break;
        }
      }

      break;

    case 'ArrowLeft':
    case 'Left':
      if (orientation !== 'vertical' && this.onFocusPrevious) {
        this.onFocusPrevious(event);
      }

      break;

    case 'ArrowRight':
    case 'Right':
      if (orientation !== 'vertical' && this.onFocusNext) {
        this.onFocusNext(event);
      }

      break;

    case 'Escape':
    case 'Esc':
      if (this.onEscape) {
        this.onEscape(event);
      }

      break;

    default: // do nothing

  }
}

function chain(...callbacks) {
  return (...args) => {
    for (let callback of callbacks) {
      if (typeof callback === 'function') {
        callback(...args);
      }
    }
  };
}

let mouseDownPrevented = false;

function focusAfterMouseEvent(handler, event) {
  // If server side rendering, just call handler method.
  if (!document) {
    handler && handler.call(this, event);
    return;
  } // execute the handler


  if (handler) {
    handler.call(this, event);

    if (event.isDefaultPrevented()) {
      mouseDownPrevented = event.type === 'mousedown';
      return;
    }
  } // make sure that the element has focus by calling this.focus();


  if (!mouseDownPrevented && typeof this.focus === 'function') {
    this.focus();
  }

  if (event.type === 'mouseup') {
    mouseDownPrevented = false;
  }
}

/***/ }),

/***/ "mjE3":
/***/ (function(module, exports, __webpack_require__) {

module.exports = __webpack_require__.p + "assets/projects/ps_icon.png";

/***/ }),

/***/ "mk41":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXPORTS
__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ sentryUtils; });

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/hosts/Host.ts + 9 modules
var Host = __webpack_require__("Dy/p");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/version.js
var version = __webpack_require__("KAOT");
var version_default = /*#__PURE__*/__webpack_require__.n(version);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/stores/Settings.ts
var Settings = __webpack_require__("5u1M");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/stores/SharedStore.ts + 6 modules
var SharedStore = __webpack_require__("jmEq");

// EXTERNAL MODULE: ./node_modules/@sentry/tracing/esm/hubextensions.js
var hubextensions = __webpack_require__("Cpvd");

// EXTERNAL MODULE: ./node_modules/@sentry/utils/esm/buildPolyfills/_optionalChain.js
var _optionalChain = __webpack_require__("fqQG");

// EXTERNAL MODULE: ./node_modules/@sentry/utils/esm/logger.js
var logger = __webpack_require__("8LbN");

// EXTERNAL MODULE: ./node_modules/@sentry/utils/esm/tracing.js
var tracing = __webpack_require__("8yT3");

// EXTERNAL MODULE: ./node_modules/@sentry/utils/esm/is.js
var is = __webpack_require__("9AQC");

// CONCATENATED MODULE: ./node_modules/@sentry/utils/esm/baggage.js


const BAGGAGE_HEADER_NAME = 'baggage';
const SENTRY_BAGGAGE_KEY_PREFIX = 'sentry-';
const SENTRY_BAGGAGE_KEY_PREFIX_REGEX = /^sentry-/;
/**
 * Max length of a serialized baggage string
 *
 * https://www.w3.org/TR/baggage/#limits
 */

const MAX_BAGGAGE_STRING_LENGTH = 8192;
/**
 * Takes a baggage header and turns it into Dynamic Sampling Context, by extracting all the "sentry-" prefixed values
 * from it.
 *
 * @param baggageHeader A very bread definition of a baggage header as it might appear in various frameworks.
 * @returns The Dynamic Sampling Context that was found on `baggageHeader`, if there was any, `undefined` otherwise.
 */

function baggageHeaderToDynamicSamplingContext( // Very liberal definition of what any incoming header might look like
baggageHeader) {
  if (!Object(is["l" /* isString */])(baggageHeader) && !Array.isArray(baggageHeader)) {
    return undefined;
  } // Intermediary object to store baggage key value pairs of incoming baggage headers on.
  // It is later used to read Sentry-DSC-values from.


  let baggageObject = {};

  if (Array.isArray(baggageHeader)) {
    // Combine all baggage headers into one object containing the baggage values so we can later read the Sentry-DSC-values from it
    baggageObject = baggageHeader.reduce((acc, curr) => {
      const currBaggageObject = baggageHeaderToObject(curr);
      return { ...acc,
        ...currBaggageObject
      };
    }, {});
  } else {
    // Return undefined if baggage header is an empty string (technically an empty baggage header is not spec conform but
    // this is how we choose to handle it)
    if (!baggageHeader) {
      return undefined;
    }

    baggageObject = baggageHeaderToObject(baggageHeader);
  } // Read all "sentry-" prefixed values out of the baggage object and put it onto a dynamic sampling context object.


  const dynamicSamplingContext = Object.entries(baggageObject).reduce((acc, [key, value]) => {
    if (key.match(SENTRY_BAGGAGE_KEY_PREFIX_REGEX)) {
      const nonPrefixedKey = key.slice(SENTRY_BAGGAGE_KEY_PREFIX.length);
      acc[nonPrefixedKey] = value;
    }

    return acc;
  }, {}); // Only return a dynamic sampling context object if there are keys in it.
  // A keyless object means there were no sentry values on the header, which means that there is no DSC.

  if (Object.keys(dynamicSamplingContext).length > 0) {
    return dynamicSamplingContext;
  } else {
    return undefined;
  }
}
/**
 * Turns a Dynamic Sampling Object into a baggage header by prefixing all the keys on the object with "sentry-".
 *
 * @param dynamicSamplingContext The Dynamic Sampling Context to turn into a header. For convenience and compatibility
 * with the `getDynamicSamplingContext` method on the Transaction class ,this argument can also be `undefined`. If it is
 * `undefined` the function will return `undefined`.
 * @returns a baggage header, created from `dynamicSamplingContext`, or `undefined` either if `dynamicSamplingContext`
 * was `undefined`, or if `dynamicSamplingContext` didn't contain any values.
 */


function dynamicSamplingContextToSentryBaggageHeader( // this also takes undefined for convenience and bundle size in other places
dynamicSamplingContext) {
  // Prefix all DSC keys with "sentry-" and put them into a new object
  const sentryPrefixedDSC = Object.entries(dynamicSamplingContext).reduce((acc, [dscKey, dscValue]) => {
    if (dscValue) {
      acc[`${SENTRY_BAGGAGE_KEY_PREFIX}${dscKey}`] = dscValue;
    }

    return acc;
  }, {});
  return objectToBaggageHeader(sentryPrefixedDSC);
}
/**
 * Will parse a baggage header, which is a simple key-value map, into a flat object.
 *
 * @param baggageHeader The baggage header to parse.
 * @returns a flat object containing all the key-value pairs from `baggageHeader`.
 */


function baggageHeaderToObject(baggageHeader) {
  return baggageHeader.split(',').map(baggageEntry => baggageEntry.split('=').map(keyOrValue => decodeURIComponent(keyOrValue.trim()))).reduce((acc, [key, value]) => {
    acc[key] = value;
    return acc;
  }, {});
}
/**
 * Turns a flat object (key-value pairs) into a baggage header, which is also just key-value pairs.
 *
 * @param object The object to turn into a baggage header.
 * @returns a baggage header string, or `undefined` if the object didn't have any values, since an empty baggage header
 * is not spec compliant.
 */


function objectToBaggageHeader(object) {
  if (Object.keys(object).length === 0) {
    // An empty baggage header is not spec compliant: We return undefined.
    return undefined;
  }

  return Object.entries(object).reduce((baggageHeader, [objectKey, objectValue], currentIndex) => {
    const baggageEntry = `${encodeURIComponent(objectKey)}=${encodeURIComponent(objectValue)}`;
    const newBaggageHeader = currentIndex === 0 ? baggageEntry : `${baggageHeader},${baggageEntry}`;

    if (newBaggageHeader.length > MAX_BAGGAGE_STRING_LENGTH) {
      (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger["c" /* logger */].warn(`Not adding key: ${objectKey} with val: ${objectValue} to baggage header due to exceeding baggage size limits.`);
      return baggageHeader;
    } else {
      return newBaggageHeader;
    }
  }, '');
}


// EXTERNAL MODULE: ./node_modules/@sentry/utils/esm/browser.js
var browser = __webpack_require__("vFt6");

// EXTERNAL MODULE: ./node_modules/@sentry/tracing/esm/idletransaction.js
var idletransaction = __webpack_require__("MBYv");

// EXTERNAL MODULE: ./node_modules/@sentry/tracing/esm/utils.js
var utils = __webpack_require__("FGHR");

// EXTERNAL MODULE: ./node_modules/@sentry/utils/esm/worldwide.js
var worldwide = __webpack_require__("rbyU");

// CONCATENATED MODULE: ./node_modules/@sentry/tracing/esm/browser/types.js

const WINDOW = worldwide["a" /* GLOBAL_OBJ */];

// CONCATENATED MODULE: ./node_modules/@sentry/tracing/esm/browser/backgroundtab.js



/**
 * Add a listener that cancels and finishes a transaction when the global
 * document is hidden.
 */

function registerBackgroundTabDetection() {
  if (WINDOW && WINDOW.document) {
    WINDOW.document.addEventListener('visibilitychange', () => {
      const activeTransaction = Object(utils["a" /* getActiveTransaction */])();

      if (WINDOW.document.hidden && activeTransaction) {
        const statusType = 'cancelled';
        (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger["c" /* logger */].log(`[Tracing] Transaction: ${statusType} -> since tab moved to the background, op: ${activeTransaction.op}`); // We should not set status if it is already set, this prevent important statuses like
        // error or data loss from being overwritten on transaction.

        if (!activeTransaction.status) {
          activeTransaction.setStatus(statusType);
        }

        activeTransaction.setTag('visibilitychange', 'document.hidden');
        activeTransaction.finish();
      }
    });
  } else {
    (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger["c" /* logger */].warn('[Tracing] Could not set up background tab detection due to lack of global document');
  }
}


// EXTERNAL MODULE: ./node_modules/@sentry/utils/esm/buildPolyfills/_nullishCoalesce.js
var _nullishCoalesce = __webpack_require__("P/f2");

// EXTERNAL MODULE: ./node_modules/@sentry/utils/esm/time.js
var time = __webpack_require__("kdvv");

// CONCATENATED MODULE: ./node_modules/@sentry/tracing/esm/browser/web-vitals/lib/bindReporter.js
const bindReporter = (callback, metric, reportAllChanges) => {
  let prevValue;
  let delta;
  return forceReport => {
    if (metric.value >= 0) {
      if (forceReport || reportAllChanges) {
        delta = metric.value - (prevValue || 0); // Report the metric if there's a non-zero delta or if no previous
        // value exists (which can happen in the case of the document becoming
        // hidden when the metric value is 0).
        // See: https://github.com/GoogleChrome/web-vitals/issues/14

        if (delta || prevValue === undefined) {
          prevValue = metric.value;
          metric.delta = delta;
          callback(metric);
        }
      }
    }
  };
};


// CONCATENATED MODULE: ./node_modules/@sentry/tracing/esm/browser/web-vitals/lib/generateUniqueID.js
/*
 * Copyright 2020 Google LLC
 *
 * 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
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * Performantly generate a unique, 30-char string by combining a version
 * number, the current timestamp with a 13-digit number integer.
 * @return {string}
 */
const generateUniqueID = () => {
  return `v3-${Date.now()}-${Math.floor(Math.random() * (9e12 - 1)) + 1e12}`;
};


// CONCATENATED MODULE: ./node_modules/@sentry/tracing/esm/browser/web-vitals/lib/getNavigationEntry.js

/*
 * Copyright 2022 Google LLC
 *
 * 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
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

const getNavigationEntryFromPerformanceTiming = () => {
  // eslint-disable-next-line deprecation/deprecation
  const timing = WINDOW.performance.timing; // eslint-disable-next-line deprecation/deprecation

  const type = WINDOW.performance.navigation.type;
  const navigationEntry = {
    entryType: 'navigation',
    startTime: 0,
    type: type == 2 ? 'back_forward' : type === 1 ? 'reload' : 'navigate'
  };

  for (const key in timing) {
    if (key !== 'navigationStart' && key !== 'toJSON') {
      navigationEntry[key] = Math.max(timing[key] - timing.navigationStart, 0);
    }
  }

  return navigationEntry;
};

const getNavigationEntry = () => {
  if (WINDOW.__WEB_VITALS_POLYFILL__) {
    return WINDOW.performance && (performance.getEntriesByType && performance.getEntriesByType('navigation')[0] || getNavigationEntryFromPerformanceTiming());
  } else {
    return WINDOW.performance && performance.getEntriesByType && performance.getEntriesByType('navigation')[0];
  }
};


// CONCATENATED MODULE: ./node_modules/@sentry/tracing/esm/browser/web-vitals/lib/getActivationStart.js

/*
 * Copyright 2022 Google LLC
 *
 * 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
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

const getActivationStart = () => {
  const navEntry = getNavigationEntry();
  return navEntry && navEntry.activationStart || 0;
};


// CONCATENATED MODULE: ./node_modules/@sentry/tracing/esm/browser/web-vitals/lib/initMetric.js




/*
 * Copyright 2020 Google LLC
 *
 * 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
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

const initMetric = (name, value) => {
  const navEntry = getNavigationEntry();
  let navigationType = 'navigate';

  if (navEntry) {
    if (WINDOW.document.prerendering || getActivationStart() > 0) {
      navigationType = 'prerender';
    } else {
      navigationType = navEntry.type.replace(/_/g, '-');
    }
  }

  return {
    name,
    value: typeof value === 'undefined' ? -1 : value,
    rating: 'good',
    // Will be updated if the value changes.
    delta: 0,
    entries: [],
    id: generateUniqueID(),
    navigationType
  };
};


// CONCATENATED MODULE: ./node_modules/@sentry/tracing/esm/browser/web-vitals/lib/observe.js
/**
 * Takes a performance entry type and a callback function, and creates a
 * `PerformanceObserver` instance that will observe the specified entry type
 * with buffering enabled and call the callback _for each entry_.
 *
 * This function also feature-detects entry support and wraps the logic in a
 * try/catch to avoid errors in unsupporting browsers.
 */
const observe = (type, callback, opts) => {
  try {
    if (PerformanceObserver.supportedEntryTypes.includes(type)) {
      const po = new PerformanceObserver(list => {
        callback(list.getEntries());
      });
      po.observe(Object.assign({
        type,
        buffered: true
      }, opts || {}));
      return po;
    }
  } catch (e) {// Do nothing.
  }

  return;
};


// CONCATENATED MODULE: ./node_modules/@sentry/tracing/esm/browser/web-vitals/lib/onHidden.js

/*
 * Copyright 2020 Google LLC
 *
 * 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
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

const onHidden = (cb, once) => {
  const onHiddenOrPageHide = event => {
    if (event.type === 'pagehide' || WINDOW.document.visibilityState === 'hidden') {
      cb(event);

      if (once) {
        removeEventListener('visibilitychange', onHiddenOrPageHide, true);
        removeEventListener('pagehide', onHiddenOrPageHide, true);
      }
    }
  };

  addEventListener('visibilitychange', onHiddenOrPageHide, true); // Some browsers have buggy implementations of visibilitychange,
  // so we use pagehide in addition, just to be safe.

  addEventListener('pagehide', onHiddenOrPageHide, true);
};


// CONCATENATED MODULE: ./node_modules/@sentry/tracing/esm/browser/web-vitals/getCLS.js




/*
 * Copyright 2020 Google LLC
 *
 * 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
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * Calculates the [CLS](https://web.dev/cls/) value for the current page and
 * calls the `callback` function once the value is ready to be reported, along
 * with all `layout-shift` performance entries that were used in the metric
 * value calculation. The reported value is a `double` (corresponding to a
 * [layout shift score](https://web.dev/cls/#layout-shift-score)).
 *
 * If the `reportAllChanges` configuration option is set to `true`, the
 * `callback` function will be called as soon as the value is initially
 * determined as well as any time the value changes throughout the page
 * lifespan.
 *
 * _**Important:** CLS should be continually monitored for changes throughout
 * the entire lifespan of a page—including if the user returns to the page after
 * it's been hidden/backgrounded. However, since browsers often [will not fire
 * additional callbacks once the user has backgrounded a
 * page](https://developer.chrome.com/blog/page-lifecycle-api/#advice-hidden),
 * `callback` is always called when the page's visibility state changes to
 * hidden. As a result, the `callback` function might be called multiple times
 * during the same page load._
 */

const onCLS = (onReport, opts = {}) => {
  const metric = initMetric('CLS', 0);
  let report;
  let sessionValue = 0;
  let sessionEntries = []; // const handleEntries = (entries: Metric['entries']) => {

  const handleEntries = entries => {
    entries.forEach(entry => {
      // Only count layout shifts without recent user input.
      if (!entry.hadRecentInput) {
        const firstSessionEntry = sessionEntries[0];
        const lastSessionEntry = sessionEntries[sessionEntries.length - 1]; // If the entry occurred less than 1 second after the previous entry and
        // less than 5 seconds after the first entry in the session, include the
        // entry in the current session. Otherwise, start a new session.

        if (sessionValue && entry.startTime - lastSessionEntry.startTime < 1000 && entry.startTime - firstSessionEntry.startTime < 5000) {
          sessionValue += entry.value;
          sessionEntries.push(entry);
        } else {
          sessionValue = entry.value;
          sessionEntries = [entry];
        } // If the current session value is larger than the current CLS value,
        // update CLS and the entries contributing to it.


        if (sessionValue > metric.value) {
          metric.value = sessionValue;
          metric.entries = sessionEntries;

          if (report) {
            report();
          }
        }
      }
    });
  };

  const po = observe('layout-shift', handleEntries);

  if (po) {
    report = bindReporter(onReport, metric, opts.reportAllChanges);
    onHidden(() => {
      handleEntries(po.takeRecords());
      report(true);
    });
  }
};


// CONCATENATED MODULE: ./node_modules/@sentry/tracing/esm/browser/web-vitals/lib/getVisibilityWatcher.js


/*
 * Copyright 2020 Google LLC
 *
 * 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
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

let firstHiddenTime = -1;

const initHiddenTime = () => {
  // If the document is hidden and not prerendering, assume it was always
  // hidden and the page was loaded in the background.
  return WINDOW.document.visibilityState === 'hidden' && !WINDOW.document.prerendering ? 0 : Infinity;
};

const trackChanges = () => {
  // Update the time if/when the document becomes hidden.
  onHidden(({
    timeStamp
  }) => {
    firstHiddenTime = timeStamp;
  }, true);
};

const getVisibilityWatcher = () => {
  if (firstHiddenTime < 0) {
    // If the document is hidden when this code runs, assume it was hidden
    // since navigation start. This isn't a perfect heuristic, but it's the
    // best we can do until an API is available to support querying past
    // visibilityState.
    firstHiddenTime = initHiddenTime();
    trackChanges();
  }

  return {
    get firstHiddenTime() {
      return firstHiddenTime;
    }

  };
};


// CONCATENATED MODULE: ./node_modules/@sentry/tracing/esm/browser/web-vitals/getFID.js





/*
 * Copyright 2020 Google LLC
 *
 * 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
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * Calculates the [FID](https://web.dev/fid/) value for the current page and
 * calls the `callback` function once the value is ready, along with the
 * relevant `first-input` performance entry used to determine the value. The
 * reported value is a `DOMHighResTimeStamp`.
 *
 * _**Important:** since FID is only reported after the user interacts with the
 * page, it's possible that it will not be reported for some page loads._
 */

const onFID = (onReport, opts = {}) => {
  const visibilityWatcher = getVisibilityWatcher();
  const metric = initMetric('FID'); // eslint-disable-next-line prefer-const

  let report;

  const handleEntry = entry => {
    // Only report if the page wasn't hidden prior to the first input.
    if (entry.startTime < visibilityWatcher.firstHiddenTime) {
      metric.value = entry.processingStart - entry.startTime;
      metric.entries.push(entry);
      report(true);
    }
  };

  const handleEntries = entries => {
    entries.forEach(handleEntry);
  };

  const po = observe('first-input', handleEntries);
  report = bindReporter(onReport, metric, opts.reportAllChanges);

  if (po) {
    onHidden(() => {
      handleEntries(po.takeRecords());
      po.disconnect();
    }, true);
  }
};


// CONCATENATED MODULE: ./node_modules/@sentry/tracing/esm/browser/web-vitals/getLCP.js






/*
 * Copyright 2020 Google LLC
 *
 * 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
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

const reportedMetricIDs = {};
/**
 * Calculates the [LCP](https://web.dev/lcp/) value for the current page and
 * calls the `callback` function once the value is ready (along with the
 * relevant `largest-contentful-paint` performance entry used to determine the
 * value). The reported value is a `DOMHighResTimeStamp`.
 *
 * If the `reportAllChanges` configuration option is set to `true`, the
 * `callback` function will be called any time a new `largest-contentful-paint`
 * performance entry is dispatched, or once the final value of the metric has
 * been determined.
 */

const onLCP = (onReport, opts = {}) => {
  const visibilityWatcher = getVisibilityWatcher();
  const metric = initMetric('LCP');
  let report;

  const handleEntries = entries => {
    const lastEntry = entries[entries.length - 1];

    if (lastEntry) {
      // The startTime attribute returns the value of the renderTime if it is
      // not 0, and the value of the loadTime otherwise. The activationStart
      // reference is used because LCP should be relative to page activation
      // rather than navigation start if the page was prerendered.
      const value = Math.max(lastEntry.startTime - getActivationStart(), 0); // Only report if the page wasn't hidden prior to LCP.

      if (value < visibilityWatcher.firstHiddenTime) {
        metric.value = value;
        metric.entries = [lastEntry];
        report();
      }
    }
  };

  const po = observe('largest-contentful-paint', handleEntries);

  if (po) {
    report = bindReporter(onReport, metric, opts.reportAllChanges);

    const stopListening = () => {
      if (!reportedMetricIDs[metric.id]) {
        handleEntries(po.takeRecords());
        po.disconnect();
        reportedMetricIDs[metric.id] = true;
        report(true);
      }
    }; // Stop listening after input. Note: while scrolling is an input that
    // stop LCP observation, it's unreliable since it can be programmatically
    // generated. See: https://github.com/GoogleChrome/web-vitals/issues/75


    ['keydown', 'click'].forEach(type => {
      addEventListener(type, stopListening, {
        once: true,
        capture: true
      });
    });
    onHidden(stopListening, true);
  }
};


// CONCATENATED MODULE: ./node_modules/@sentry/tracing/esm/browser/metrics/utils.js
/**
 * Checks if a given value is a valid measurement value.
 */
function isMeasurementValue(value) {
  return typeof value === 'number' && isFinite(value);
}
/**
 * Helper function to start child on transactions. This function will make sure that the transaction will
 * use the start timestamp of the created child span if it is earlier than the transactions actual
 * start timestamp.
 */


function _startChild(transaction, {
  startTimestamp,
  ...ctx
}) {
  if (startTimestamp && transaction.startTimestamp > startTimestamp) {
    transaction.startTimestamp = startTimestamp;
  }

  return transaction.startChild({
    startTimestamp,
    ...ctx
  });
}


// CONCATENATED MODULE: ./node_modules/@sentry/tracing/esm/browser/metrics/index.js











function getBrowserPerformanceAPI() {
  return WINDOW && WINDOW.addEventListener && WINDOW.performance;
}

let _performanceCursor = 0;
let _measurements = {};

let _lcpEntry;

let _clsEntry;
/**
 * Start tracking web vitals
 */


function startTrackingWebVitals(reportAllChanges = false) {
  const performance = getBrowserPerformanceAPI();

  if (performance && time["a" /* browserPerformanceTimeOrigin */]) {
    if (performance.mark) {
      WINDOW.performance.mark('sentry-tracing-init');
    }

    _trackCLS();

    _trackLCP(reportAllChanges);

    _trackFID();
  }
}
/**
 * Start tracking long tasks.
 */


function startTrackingLongTasks() {
  const entryHandler = entries => {
    for (const entry of entries) {
      const transaction = Object(utils["a" /* getActiveTransaction */])();

      if (!transaction) {
        return;
      }

      const startTime = Object(utils["c" /* msToSec */])(time["a" /* browserPerformanceTimeOrigin */] + entry.startTime);
      const duration = Object(utils["c" /* msToSec */])(entry.duration);
      transaction.startChild({
        description: 'Main UI thread blocked',
        op: 'ui.long-task',
        startTimestamp: startTime,
        endTimestamp: startTime + duration
      });
    }
  };

  observe('longtask', entryHandler);
}
/** Starts tracking the Cumulative Layout Shift on the current page. */


function _trackCLS() {
  // See:
  // https://web.dev/evolving-cls/
  // https://web.dev/cls-web-tooling/
  onCLS(metric => {
    const entry = metric.entries.pop();

    if (!entry) {
      return;
    }

    (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger["c" /* logger */].log('[Measurements] Adding CLS');
    _measurements['cls'] = {
      value: metric.value,
      unit: ''
    };
    _clsEntry = entry;
  });
}
/** Starts tracking the Largest Contentful Paint on the current page. */


function _trackLCP(reportAllChanges) {
  onLCP(metric => {
    const entry = metric.entries.pop();

    if (!entry) {
      return;
    }

    (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger["c" /* logger */].log('[Measurements] Adding LCP');
    _measurements['lcp'] = {
      value: metric.value,
      unit: 'millisecond'
    };
    _lcpEntry = entry;
  }, {
    reportAllChanges
  });
}
/** Starts tracking the First Input Delay on the current page. */


function _trackFID() {
  onFID(metric => {
    const entry = metric.entries.pop();

    if (!entry) {
      return;
    }

    const timeOrigin = Object(utils["c" /* msToSec */])(time["a" /* browserPerformanceTimeOrigin */]);
    const startTime = Object(utils["c" /* msToSec */])(entry.startTime);
    (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger["c" /* logger */].log('[Measurements] Adding FID');
    _measurements['fid'] = {
      value: metric.value,
      unit: 'millisecond'
    };
    _measurements['mark.fid'] = {
      value: timeOrigin + startTime,
      unit: 'second'
    };
  });
}
/** Add performance related spans to a transaction */


function addPerformanceEntries(transaction) {
  const performance = getBrowserPerformanceAPI();

  if (!performance || !WINDOW.performance.getEntries || !time["a" /* browserPerformanceTimeOrigin */]) {
    // Gatekeeper if performance API not available
    return;
  }

  (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger["c" /* logger */].log('[Tracing] Adding & adjusting spans using Performance API');
  const timeOrigin = Object(utils["c" /* msToSec */])(time["a" /* browserPerformanceTimeOrigin */]);
  const performanceEntries = performance.getEntries();
  let responseStartTimestamp;
  let requestStartTimestamp; // eslint-disable-next-line @typescript-eslint/no-explicit-any

  performanceEntries.slice(_performanceCursor).forEach(entry => {
    const startTime = Object(utils["c" /* msToSec */])(entry.startTime);
    const duration = Object(utils["c" /* msToSec */])(entry.duration);

    if (transaction.op === 'navigation' && timeOrigin + startTime < transaction.startTimestamp) {
      return;
    }

    switch (entry.entryType) {
      case 'navigation':
        {
          _addNavigationSpans(transaction, entry, timeOrigin);

          responseStartTimestamp = timeOrigin + Object(utils["c" /* msToSec */])(entry.responseStart);
          requestStartTimestamp = timeOrigin + Object(utils["c" /* msToSec */])(entry.requestStart);
          break;
        }

      case 'mark':
      case 'paint':
      case 'measure':
        {
          _addMeasureSpans(transaction, entry, startTime, duration, timeOrigin); // capture web vitals


          const firstHidden = getVisibilityWatcher(); // Only report if the page wasn't hidden prior to the web vital.

          const shouldRecord = entry.startTime < firstHidden.firstHiddenTime;

          if (entry.name === 'first-paint' && shouldRecord) {
            (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger["c" /* logger */].log('[Measurements] Adding FP');
            _measurements['fp'] = {
              value: entry.startTime,
              unit: 'millisecond'
            };
          }

          if (entry.name === 'first-contentful-paint' && shouldRecord) {
            (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger["c" /* logger */].log('[Measurements] Adding FCP');
            _measurements['fcp'] = {
              value: entry.startTime,
              unit: 'millisecond'
            };
          }

          break;
        }

      case 'resource':
        {
          const resourceName = entry.name.replace(WINDOW.location.origin, '');

          _addResourceSpans(transaction, entry, resourceName, startTime, duration, timeOrigin);

          break;
        }

      default: // Ignore other entry types.

    }
  });
  _performanceCursor = Math.max(performanceEntries.length - 1, 0);

  _trackNavigator(transaction); // Measurements are only available for pageload transactions


  if (transaction.op === 'pageload') {
    // Generate TTFB (Time to First Byte), which measured as the time between the beginning of the transaction and the
    // start of the response in milliseconds
    if (typeof responseStartTimestamp === 'number') {
      (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger["c" /* logger */].log('[Measurements] Adding TTFB');
      _measurements['ttfb'] = {
        value: (responseStartTimestamp - transaction.startTimestamp) * 1000,
        unit: 'millisecond'
      };

      if (typeof requestStartTimestamp === 'number' && requestStartTimestamp <= responseStartTimestamp) {
        // Capture the time spent making the request and receiving the first byte of the response.
        // This is the time between the start of the request and the start of the response in milliseconds.
        _measurements['ttfb.requestTime'] = {
          value: (responseStartTimestamp - requestStartTimestamp) * 1000,
          unit: 'millisecond'
        };
      }
    }

    ['fcp', 'fp', 'lcp'].forEach(name => {
      if (!_measurements[name] || timeOrigin >= transaction.startTimestamp) {
        return;
      } // The web vitals, fcp, fp, lcp, and ttfb, all measure relative to timeOrigin.
      // Unfortunately, timeOrigin is not captured within the transaction span data, so these web vitals will need
      // to be adjusted to be relative to transaction.startTimestamp.


      const oldValue = _measurements[name].value;
      const measurementTimestamp = timeOrigin + Object(utils["c" /* msToSec */])(oldValue); // normalizedValue should be in milliseconds

      const normalizedValue = Math.abs((measurementTimestamp - transaction.startTimestamp) * 1000);
      const delta = normalizedValue - oldValue;
      (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger["c" /* logger */].log(`[Measurements] Normalized ${name} from ${oldValue} to ${normalizedValue} (${delta})`);
      _measurements[name].value = normalizedValue;
    });
    const fidMark = _measurements['mark.fid'];

    if (fidMark && _measurements['fid']) {
      // create span for FID
      _startChild(transaction, {
        description: 'first input delay',
        endTimestamp: fidMark.value + Object(utils["c" /* msToSec */])(_measurements['fid'].value),
        op: 'ui.action',
        startTimestamp: fidMark.value
      }); // Delete mark.fid as we don't want it to be part of final payload


      delete _measurements['mark.fid'];
    } // If FCP is not recorded we should not record the cls value
    // according to the new definition of CLS.


    if (!('fcp' in _measurements)) {
      delete _measurements.cls;
    }

    Object.keys(_measurements).forEach(measurementName => {
      transaction.setMeasurement(measurementName, _measurements[measurementName].value, _measurements[measurementName].unit);
    });

    _tagMetricInfo(transaction);
  }

  _lcpEntry = undefined;
  _clsEntry = undefined;
  _measurements = {};
}
/** Create measure related spans */


function _addMeasureSpans(transaction, // eslint-disable-next-line @typescript-eslint/no-explicit-any
entry, startTime, duration, timeOrigin) {
  const measureStartTimestamp = timeOrigin + startTime;
  const measureEndTimestamp = measureStartTimestamp + duration;

  _startChild(transaction, {
    description: entry.name,
    endTimestamp: measureEndTimestamp,
    op: entry.entryType,
    startTimestamp: measureStartTimestamp
  });

  return measureStartTimestamp;
}
/** Instrument navigation entries */
// eslint-disable-next-line @typescript-eslint/no-explicit-any


function _addNavigationSpans(transaction, entry, timeOrigin) {
  ['unloadEvent', 'redirect', 'domContentLoadedEvent', 'loadEvent', 'connect'].forEach(event => {
    _addPerformanceNavigationTiming(transaction, entry, event, timeOrigin);
  });

  _addPerformanceNavigationTiming(transaction, entry, 'secureConnection', timeOrigin, 'TLS/SSL', 'connectEnd');

  _addPerformanceNavigationTiming(transaction, entry, 'fetch', timeOrigin, 'cache', 'domainLookupStart');

  _addPerformanceNavigationTiming(transaction, entry, 'domainLookup', timeOrigin, 'DNS');

  _addRequest(transaction, entry, timeOrigin);
}
/** Create performance navigation related spans */


function _addPerformanceNavigationTiming(transaction, // eslint-disable-next-line @typescript-eslint/no-explicit-any
entry, event, timeOrigin, description, eventEnd) {
  const end = eventEnd ? entry[eventEnd] : entry[`${event}End`];
  const start = entry[`${event}Start`];

  if (!start || !end) {
    return;
  }

  _startChild(transaction, {
    op: 'browser',
    description: Object(_nullishCoalesce["a" /* _nullishCoalesce */])(description, () => event),
    startTimestamp: timeOrigin + Object(utils["c" /* msToSec */])(start),
    endTimestamp: timeOrigin + Object(utils["c" /* msToSec */])(end)
  });
}
/** Create request and response related spans */
// eslint-disable-next-line @typescript-eslint/no-explicit-any


function _addRequest(transaction, entry, timeOrigin) {
  _startChild(transaction, {
    op: 'browser',
    description: 'request',
    startTimestamp: timeOrigin + Object(utils["c" /* msToSec */])(entry.requestStart),
    endTimestamp: timeOrigin + Object(utils["c" /* msToSec */])(entry.responseEnd)
  });

  _startChild(transaction, {
    op: 'browser',
    description: 'response',
    startTimestamp: timeOrigin + Object(utils["c" /* msToSec */])(entry.responseStart),
    endTimestamp: timeOrigin + Object(utils["c" /* msToSec */])(entry.responseEnd)
  });
}
/** Create resource-related spans */


function _addResourceSpans(transaction, entry, resourceName, startTime, duration, timeOrigin) {
  // we already instrument based on fetch and xhr, so we don't need to
  // duplicate spans here.
  if (entry.initiatorType === 'xmlhttprequest' || entry.initiatorType === 'fetch') {
    return;
  } // eslint-disable-next-line @typescript-eslint/no-explicit-any


  const data = {};

  if ('transferSize' in entry) {
    data['Transfer Size'] = entry.transferSize;
  }

  if ('encodedBodySize' in entry) {
    data['Encoded Body Size'] = entry.encodedBodySize;
  }

  if ('decodedBodySize' in entry) {
    data['Decoded Body Size'] = entry.decodedBodySize;
  }

  const startTimestamp = timeOrigin + startTime;
  const endTimestamp = startTimestamp + duration;

  _startChild(transaction, {
    description: resourceName,
    endTimestamp,
    op: entry.initiatorType ? `resource.${entry.initiatorType}` : 'resource.other',
    startTimestamp,
    data
  });
}
/**
 * Capture the information of the user agent.
 */


function _trackNavigator(transaction) {
  const navigator = WINDOW.navigator;

  if (!navigator) {
    return;
  } // track network connectivity


  const connection = navigator.connection;

  if (connection) {
    if (connection.effectiveType) {
      transaction.setTag('effectiveConnectionType', connection.effectiveType);
    }

    if (connection.type) {
      transaction.setTag('connectionType', connection.type);
    }

    if (isMeasurementValue(connection.rtt)) {
      _measurements['connection.rtt'] = {
        value: connection.rtt,
        unit: 'millisecond'
      };
    }
  }

  if (isMeasurementValue(navigator.deviceMemory)) {
    transaction.setTag('deviceMemory', `${navigator.deviceMemory} GB`);
  }

  if (isMeasurementValue(navigator.hardwareConcurrency)) {
    transaction.setTag('hardwareConcurrency', String(navigator.hardwareConcurrency));
  }
}
/** Add LCP / CLS data to transaction to allow debugging */


function _tagMetricInfo(transaction) {
  if (_lcpEntry) {
    (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger["c" /* logger */].log('[Measurements] Adding LCP Data'); // Capture Properties of the LCP element that contributes to the LCP.

    if (_lcpEntry.element) {
      transaction.setTag('lcp.element', Object(browser["c" /* htmlTreeAsString */])(_lcpEntry.element));
    }

    if (_lcpEntry.id) {
      transaction.setTag('lcp.id', _lcpEntry.id);
    }

    if (_lcpEntry.url) {
      // Trim URL to the first 200 characters.
      transaction.setTag('lcp.url', _lcpEntry.url.trim().slice(0, 200));
    }

    transaction.setTag('lcp.size', _lcpEntry.size);
  } // See: https://developer.mozilla.org/en-US/docs/Web/API/LayoutShift


  if (_clsEntry && _clsEntry.sources) {
    (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger["c" /* logger */].log('[Measurements] Adding CLS Data');

    _clsEntry.sources.forEach((source, index) => transaction.setTag(`cls.source.${index + 1}`, Object(browser["c" /* htmlTreeAsString */])(source.node)));
  }
}


// EXTERNAL MODULE: ./node_modules/@sentry/utils/esm/instrument.js
var instrument = __webpack_require__("6hSO");

// CONCATENATED MODULE: ./node_modules/@sentry/tracing/esm/browser/request.js


const DEFAULT_TRACING_ORIGINS = ['localhost', /^\//];
/** Options for Request Instrumentation */

const defaultRequestInstrumentationOptions = {
  traceFetch: true,
  traceXHR: true,
  tracingOrigins: DEFAULT_TRACING_ORIGINS
};
/** Registers span creators for xhr and fetch requests  */

function instrumentOutgoingRequests(_options) {
  // eslint-disable-next-line @typescript-eslint/unbound-method
  const {
    traceFetch,
    traceXHR,
    shouldCreateSpanForRequest
  } = { ...defaultRequestInstrumentationOptions,
    ..._options
  };
  const shouldCreateSpan = typeof shouldCreateSpanForRequest === 'function' ? shouldCreateSpanForRequest : _ => true;
  const spans = {};

  if (traceFetch) {
    Object(instrument["a" /* addInstrumentationHandler */])('fetch', handlerData => {
      fetchCallback(handlerData, shouldCreateSpan, spans);
    });
  }

  if (traceXHR) {
    Object(instrument["a" /* addInstrumentationHandler */])('xhr', handlerData => {
      xhrCallback(handlerData, shouldCreateSpan, spans);
    });
  }
}
/**
 * Create and track fetch request spans
 */


function fetchCallback(handlerData, shouldCreateSpan, spans) {
  if (!Object(utils["b" /* hasTracingEnabled */])() || !(handlerData.fetchData && shouldCreateSpan(handlerData.fetchData.url))) {
    return;
  }

  if (handlerData.endTimestamp) {
    const spanId = handlerData.fetchData.__span;
    if (!spanId) return;
    const span = spans[spanId];

    if (span) {
      if (handlerData.response) {
        // TODO (kmclb) remove this once types PR goes through
        // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
        span.setHttpStatus(handlerData.response.status);
      } else if (handlerData.error) {
        span.setStatus('internal_error');
      }

      span.finish(); // eslint-disable-next-line @typescript-eslint/no-dynamic-delete

      delete spans[spanId];
    }

    return;
  }

  const activeTransaction = Object(utils["a" /* getActiveTransaction */])();

  if (activeTransaction) {
    const span = activeTransaction.startChild({
      data: { ...handlerData.fetchData,
        type: 'fetch'
      },
      description: `${handlerData.fetchData.method} ${handlerData.fetchData.url}`,
      op: 'http.client'
    });
    handlerData.fetchData.__span = span.spanId;
    spans[span.spanId] = span;
    const request = handlerData.args[0]; // In case the user hasn't set the second argument of a fetch call we default it to `{}`.

    handlerData.args[1] = handlerData.args[1] || {}; // eslint-disable-next-line @typescript-eslint/no-explicit-any

    const options = handlerData.args[1];
    options.headers = addTracingHeadersToFetchRequest(request, activeTransaction.getDynamicSamplingContext(), span, options);
    activeTransaction.metadata.propagations += 1;
  }
}

function addTracingHeadersToFetchRequest(request, dynamicSamplingContext, span, options) {
  const sentryBaggageHeader = dynamicSamplingContextToSentryBaggageHeader(dynamicSamplingContext);
  const sentryTraceHeader = span.toTraceparent();
  const headers = typeof Request !== 'undefined' && Object(is["g" /* isInstanceOf */])(request, Request) ? request.headers : options.headers;

  if (!headers) {
    return {
      'sentry-trace': sentryTraceHeader,
      baggage: sentryBaggageHeader
    };
  } else if (typeof Headers !== 'undefined' && Object(is["g" /* isInstanceOf */])(headers, Headers)) {
    const newHeaders = new Headers(headers);
    newHeaders.append('sentry-trace', sentryTraceHeader);

    if (sentryBaggageHeader) {
      // If the same header is appended miultiple times the browser will merge the values into a single request header.
      // Its therefore safe to simply push a "baggage" entry, even though there might already be another baggage header.
      newHeaders.append(BAGGAGE_HEADER_NAME, sentryBaggageHeader);
    }

    return newHeaders;
  } else if (Array.isArray(headers)) {
    const newHeaders = [...headers, ['sentry-trace', sentryTraceHeader]];

    if (sentryBaggageHeader) {
      // If there are multiple entries with the same key, the browser will merge the values into a single request header.
      // Its therefore safe to simply push a "baggage" entry, even though there might already be another baggage header.
      newHeaders.push([BAGGAGE_HEADER_NAME, sentryBaggageHeader]);
    }

    return newHeaders;
  } else {
    const existingBaggageHeader = 'baggage' in headers ? headers.baggage : undefined;
    const newBaggageHeaders = [];

    if (Array.isArray(existingBaggageHeader)) {
      newBaggageHeaders.push(...existingBaggageHeader);
    } else if (existingBaggageHeader) {
      newBaggageHeaders.push(existingBaggageHeader);
    }

    if (sentryBaggageHeader) {
      newBaggageHeaders.push(sentryBaggageHeader);
    }

    return { ...headers,
      'sentry-trace': sentryTraceHeader,
      baggage: newBaggageHeaders.length > 0 ? newBaggageHeaders.join(',') : undefined
    };
  }
}
/**
 * Create and track xhr request spans
 */


function xhrCallback(handlerData, shouldCreateSpan, spans) {
  if (!Object(utils["b" /* hasTracingEnabled */])() || handlerData.xhr && handlerData.xhr.__sentry_own_request__ || !(handlerData.xhr && handlerData.xhr.__sentry_xhr__ && shouldCreateSpan(handlerData.xhr.__sentry_xhr__.url))) {
    return;
  }

  const xhr = handlerData.xhr.__sentry_xhr__; // check first if the request has finished and is tracked by an existing span which should now end

  if (handlerData.endTimestamp) {
    const spanId = handlerData.xhr.__sentry_xhr_span_id__;
    if (!spanId) return;
    const span = spans[spanId];

    if (span) {
      span.setHttpStatus(xhr.status_code);
      span.finish(); // eslint-disable-next-line @typescript-eslint/no-dynamic-delete

      delete spans[spanId];
    }

    return;
  } // if not, create a new span to track it


  const activeTransaction = Object(utils["a" /* getActiveTransaction */])();

  if (activeTransaction) {
    const span = activeTransaction.startChild({
      data: { ...xhr.data,
        type: 'xhr',
        method: xhr.method,
        url: xhr.url
      },
      description: `${xhr.method} ${xhr.url}`,
      op: 'http.client'
    });
    handlerData.xhr.__sentry_xhr_span_id__ = span.spanId;
    spans[handlerData.xhr.__sentry_xhr_span_id__] = span;

    if (handlerData.xhr.setRequestHeader) {
      try {
        handlerData.xhr.setRequestHeader('sentry-trace', span.toTraceparent());
        const dynamicSamplingContext = activeTransaction.getDynamicSamplingContext();
        const sentryBaggageHeader = dynamicSamplingContextToSentryBaggageHeader(dynamicSamplingContext);

        if (sentryBaggageHeader) {
          // From MDN: "If this method is called several times with the same header, the values are merged into one single request header."
          // We can therefore simply set a baggage header without checking what was there before
          // https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/setRequestHeader
          handlerData.xhr.setRequestHeader(BAGGAGE_HEADER_NAME, sentryBaggageHeader);
        }

        activeTransaction.metadata.propagations += 1;
      } catch (_) {// Error: InvalidStateError: Failed to execute 'setRequestHeader' on 'XMLHttpRequest': The object's state must be OPENED.
      }
    }
  }
}


// CONCATENATED MODULE: ./node_modules/@sentry/tracing/esm/browser/router.js


/**
 * Default function implementing pageload and navigation transactions
 */

function instrumentRoutingWithDefaults(customStartTransaction, startTransactionOnPageLoad = true, startTransactionOnLocationChange = true) {
  if (!WINDOW || !WINDOW.location) {
    (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger["c" /* logger */].warn('Could not initialize routing instrumentation due to invalid location');
    return;
  }

  let startingUrl = WINDOW.location.href;
  let activeTransaction;

  if (startTransactionOnPageLoad) {
    activeTransaction = customStartTransaction({
      name: WINDOW.location.pathname,
      op: 'pageload',
      metadata: {
        source: 'url'
      }
    });
  }

  if (startTransactionOnLocationChange) {
    Object(instrument["a" /* addInstrumentationHandler */])('history', ({
      to,
      from
    }) => {
      /**
       * This early return is there to account for some cases where a navigation transaction starts right after
       * long-running pageload. We make sure that if `from` is undefined and a valid `startingURL` exists, we don't
       * create an uneccessary navigation transaction.
       *
       * This was hard to duplicate, but this behavior stopped as soon as this fix was applied. This issue might also
       * only be caused in certain development environments where the usage of a hot module reloader is causing
       * errors.
       */
      if (from === undefined && startingUrl && startingUrl.indexOf(to) !== -1) {
        startingUrl = undefined;
        return;
      }

      if (from !== to) {
        startingUrl = undefined;

        if (activeTransaction) {
          (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger["c" /* logger */].log(`[Tracing] Finishing current transaction with op: ${activeTransaction.op}`); // If there's an open transaction on the scope, we need to finish it before creating an new one.

          activeTransaction.finish();
        }

        activeTransaction = customStartTransaction({
          name: WINDOW.location.pathname,
          op: 'navigation',
          metadata: {
            source: 'url'
          }
        });
      }
    });
  }
}


// CONCATENATED MODULE: ./node_modules/@sentry/tracing/esm/browser/browsertracing.js










const BROWSER_TRACING_INTEGRATION_ID = 'BrowserTracing';
/** Options for Browser Tracing integration */

const DEFAULT_BROWSER_TRACING_OPTIONS = {
  idleTimeout: idletransaction["c" /* DEFAULT_IDLE_TIMEOUT */],
  finalTimeout: idletransaction["a" /* DEFAULT_FINAL_TIMEOUT */],
  heartbeatInterval: idletransaction["b" /* DEFAULT_HEARTBEAT_INTERVAL */],
  markBackgroundTransactions: true,
  routingInstrumentation: instrumentRoutingWithDefaults,
  startTransactionOnLocationChange: true,
  startTransactionOnPageLoad: true,
  _experiments: {
    enableLongTask: true
  },
  ...defaultRequestInstrumentationOptions
};
/**
 * The Browser Tracing integration automatically instruments browser pageload/navigation
 * actions as transactions, and captures requests, metrics and errors as spans.
 *
 * The integration can be configured with a variety of options, and can be extended to use
 * any routing library. This integration uses {@see IdleTransaction} to create transactions.
 */

class browsertracing_BrowserTracing {
  // This class currently doesn't have a static `id` field like the other integration classes, because it prevented
  // @sentry/tracing from being treeshaken. Tree shakers do not like static fields, because they behave like side effects.
  // TODO: Come up with a better plan, than using static fields on integration classes, and use that plan on all
  // integrations.

  /** Browser Tracing integration options */

  /**
   * @inheritDoc
   */
  __init() {
    this.name = BROWSER_TRACING_INTEGRATION_ID;
  }

  constructor(_options) {
    ;

    browsertracing_BrowserTracing.prototype.__init.call(this);

    let tracingOrigins = defaultRequestInstrumentationOptions.tracingOrigins; // NOTE: Logger doesn't work in constructors, as it's initialized after integrations instances

    if (_options) {
      if (_options.tracingOrigins && Array.isArray(_options.tracingOrigins)) {
        tracingOrigins = _options.tracingOrigins;
      } else {
        (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && (this._emitOptionsWarning = true);
      }
    }

    this.options = { ...DEFAULT_BROWSER_TRACING_OPTIONS,
      ..._options,
      tracingOrigins
    };
    const {
      _metricOptions
    } = this.options;
    startTrackingWebVitals(_metricOptions && _metricOptions._reportAllChanges);

    if (Object(_optionalChain["a" /* _optionalChain */])([this, 'access', _2 => _2.options, 'access', _3 => _3._experiments, 'optionalAccess', _4 => _4.enableLongTask])) {
      startTrackingLongTasks();
    }
  }
  /**
   * @inheritDoc
   */


  setupOnce(_, getCurrentHub) {
    this._getCurrentHub = getCurrentHub;

    if (this._emitOptionsWarning) {
      (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger["c" /* logger */].warn('[Tracing] You need to define `tracingOrigins` in the options. Set an array of urls or patterns to trace.');
      (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger["c" /* logger */].warn(`[Tracing] We added a reasonable default for you: ${defaultRequestInstrumentationOptions.tracingOrigins}`);
    } // eslint-disable-next-line @typescript-eslint/unbound-method


    const {
      routingInstrumentation: instrumentRouting,
      startTransactionOnLocationChange,
      startTransactionOnPageLoad,
      markBackgroundTransactions,
      traceFetch,
      traceXHR,
      tracingOrigins,
      shouldCreateSpanForRequest
    } = this.options;
    instrumentRouting(context => this._createRouteTransaction(context), startTransactionOnPageLoad, startTransactionOnLocationChange);

    if (markBackgroundTransactions) {
      registerBackgroundTabDetection();
    }

    instrumentOutgoingRequests({
      traceFetch,
      traceXHR,
      tracingOrigins,
      shouldCreateSpanForRequest
    });
  }
  /** Create routing idle transaction. */


  _createRouteTransaction(context) {
    if (!this._getCurrentHub) {
      (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger["c" /* logger */].warn(`[Tracing] Did not create ${context.op} transaction because _getCurrentHub is invalid.`);
      return undefined;
    } // eslint-disable-next-line @typescript-eslint/unbound-method


    const {
      beforeNavigate,
      idleTimeout,
      finalTimeout,
      heartbeatInterval
    } = this.options;
    const isPageloadTransaction = context.op === 'pageload';
    const sentryTraceMetaTagValue = isPageloadTransaction ? getMetaContent('sentry-trace') : null;
    const baggageMetaTagValue = isPageloadTransaction ? getMetaContent('baggage') : null;
    const traceParentData = sentryTraceMetaTagValue ? Object(tracing["a" /* extractTraceparentData */])(sentryTraceMetaTagValue) : undefined;
    const dynamicSamplingContext = baggageMetaTagValue ? baggageHeaderToDynamicSamplingContext(baggageMetaTagValue) : undefined;
    const expandedContext = { ...context,
      ...traceParentData,
      metadata: { ...context.metadata,
        dynamicSamplingContext: traceParentData && !dynamicSamplingContext ? {} : dynamicSamplingContext
      },
      trimEnd: true
    };
    const modifiedContext = typeof beforeNavigate === 'function' ? beforeNavigate(expandedContext) : expandedContext; // For backwards compatibility reasons, beforeNavigate can return undefined to "drop" the transaction (prevent it
    // from being sent to Sentry).

    const finalContext = modifiedContext === undefined ? { ...expandedContext,
      sampled: false
    } : modifiedContext; // If `beforeNavigate` set a custom name, record that fact

    finalContext.metadata = finalContext.name !== expandedContext.name ? { ...finalContext.metadata,
      source: 'custom'
    } : finalContext.metadata;

    if (finalContext.sampled === false) {
      (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger["c" /* logger */].log(`[Tracing] Will not send ${finalContext.op} transaction because of beforeNavigate.`);
    }

    (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger["c" /* logger */].log(`[Tracing] Starting ${finalContext.op} transaction on scope`);

    const hub = this._getCurrentHub();

    const {
      location
    } = WINDOW;
    const idleTransaction = Object(hubextensions["b" /* startIdleTransaction */])(hub, finalContext, idleTimeout, finalTimeout, true, {
      location
    }, // for use in the tracesSampler
    heartbeatInterval);
    idleTransaction.registerBeforeFinishCallback(transaction => {
      addPerformanceEntries(transaction);
      transaction.setTag('sentry_reportAllChanges', Boolean(this.options._metricOptions && this.options._metricOptions._reportAllChanges));
    });
    return idleTransaction;
  }

}
/** Returns the value of a meta tag */


function getMetaContent(metaName) {
  // Can't specify generic to `getDomElement` because tracing can be used
  // in a variety of environments, have to disable `no-unsafe-member-access`
  // as a result.
  const metaTag = Object(browser["a" /* getDomElement */])(`meta[name=${metaName}]`); // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access

  return metaTag ? metaTag.getAttribute('content') : null;
}


// CONCATENATED MODULE: ./node_modules/@sentry/tracing/esm/index.js













;
; // Treeshakable guard to remove all code related to tracing
// Guard for tree

if (typeof __SENTRY_TRACING__ === 'undefined' || __SENTRY_TRACING__) {
  // We are patching the global object with our hub extension methods
  Object(hubextensions["a" /* addExtensionMethods */])();
}
// EXTERNAL MODULE: ./node_modules/@sentry/core/esm/hub.js
var esm_hub = __webpack_require__("GIgW");

// EXTERNAL MODULE: ./node_modules/@sentry/core/esm/scope.js
var esm_scope = __webpack_require__("vOz9");

// EXTERNAL MODULE: ./node_modules/@sentry/core/esm/sessionflusher.js
var sessionflusher = __webpack_require__("c0vI");

// EXTERNAL MODULE: ./node_modules/@sentry/core/esm/session.js
var session = __webpack_require__("v/92");

// EXTERNAL MODULE: ./node_modules/@sentry/core/esm/exports.js
var esm_exports = __webpack_require__("AsUd");

// CONCATENATED MODULE: ./node_modules/@sentry/hub/esm/index.js

;
/**
 * @deprecated This export has moved to @sentry/core. The @sentry/hub package will be removed in v8
 */

class esm_Hub extends esm_hub["a" /* Hub */] {}
/**
 * @deprecated This export has moved to @sentry/core. The @sentry/hub package will be removed in v8
 */


class esm_Scope extends esm_scope["a" /* Scope */] {}
/**
 * @deprecated This export has moved to @sentry/core. The @sentry/hub package will be removed in v8.
 */


const esm_getCurrentHub = esm_hub["b" /* getCurrentHub */];
/**
 * @deprecated This export has moved to @sentry/core. The @sentry/hub package will be removed in v8.
 */

const esm_addGlobalEventProcessor = esm_scope["b" /* addGlobalEventProcessor */];
/**
 * @deprecated This export has moved to @sentry/core. The @sentry/hub package will be removed in v8.
 */

const getHubFromCarrier = esm_hub["c" /* getHubFromCarrier */];
/**
 * @deprecated This export has moved to @sentry/core. The @sentry/hub package will be removed in v8.
 */

const getMainCarrier = esm_hub["d" /* getMainCarrier */];
/**
 * @deprecated This export has moved to @sentry/core. The @sentry/hub package will be removed in v8.
 */

const makeMain = esm_hub["e" /* makeMain */];
/**
 * @deprecated This export has moved to @sentry/core. The @sentry/hub package will be removed in v8.
 */

const setHubOnCarrier = esm_hub["f" /* setHubOnCarrier */];
/**
 * @deprecated This export has moved to @sentry/core. The @sentry/hub package will be removed in v8.
 */

const SessionFlusher = sessionflusher["a" /* SessionFlusher */];
/**
 * @deprecated This export has moved to @sentry/core. The @sentry/hub package will be removed in v8.
 */

const closeSession = session["a" /* closeSession */];
/**
 * @deprecated This export has moved to @sentry/core. The @sentry/hub package will be removed in v8.
 */

const makeSession = session["b" /* makeSession */];
/**
 * @deprecated This export has moved to @sentry/core. The @sentry/hub package will be removed in v8.
 */

const updateSession = session["c" /* updateSession */];
/**
 * @deprecated This export has moved to @sentry/core. The @sentry/hub package will be removed in v8.
 */

const addBreadcrumb = esm_exports["a" /* addBreadcrumb */];
/**
 * @deprecated This export has moved to @sentry/core. The @sentry/hub package will be removed in v8.
 */

const captureException = esm_exports["c" /* captureException */];
/**
 * @deprecated This export has moved to @sentry/core. The @sentry/hub package will be removed in v8.
 */

const captureEvent = esm_exports["b" /* captureEvent */];
/**
 * @deprecated This export has moved to @sentry/core. The @sentry/hub package will be removed in v8.
 */

const captureMessage = esm_exports["d" /* captureMessage */];
/**
 * @deprecated This export has moved to @sentry/core. The @sentry/hub package will be removed in v8.
 */

const configureScope = esm_exports["e" /* configureScope */];
/**
 * @deprecated This export has moved to @sentry/core. The @sentry/hub package will be removed in v8.
 */

const startTransaction = esm_exports["l" /* startTransaction */];
/**
 * @deprecated This export has moved to @sentry/core. The @sentry/hub package will be removed in v8.
 */

const setContext = esm_exports["f" /* setContext */];
/**
 * @deprecated This export has moved to @sentry/core. The @sentry/hub package will be removed in v8.
 */

const setExtra = esm_exports["g" /* setExtra */];
/**
 * @deprecated This export has moved to @sentry/core. The @sentry/hub package will be removed in v8.
 */

const setExtras = esm_exports["h" /* setExtras */];
/**
 * @deprecated This export has moved to @sentry/core. The @sentry/hub package will be removed in v8.
 */

const setTag = esm_exports["i" /* setTag */];
/**
 * @deprecated This export has moved to @sentry/core. The @sentry/hub package will be removed in v8.
 */

const setTags = esm_exports["j" /* setTags */];
/**
 * @deprecated This export has moved to @sentry/core. The @sentry/hub package will be removed in v8.
 */

const setUser = esm_exports["k" /* setUser */];
/**
 * @deprecated This export has moved to @sentry/core. The @sentry/hub package will be removed in v8.
 */

const withScope = esm_exports["m" /* withScope */];

// EXTERNAL MODULE: ./node_modules/@sentry/core/esm/api.js
var api = __webpack_require__("3MsT");

// EXTERNAL MODULE: ./node_modules/@sentry/core/esm/transports/base.js + 2 modules
var base = __webpack_require__("F+4+");

// EXTERNAL MODULE: ./node_modules/@sentry/core/esm/baseclient.js + 1 modules
var baseclient = __webpack_require__("oMcV");

// EXTERNAL MODULE: ./node_modules/@sentry/core/esm/version.js
var esm_version = __webpack_require__("+KVS");

// EXTERNAL MODULE: ./node_modules/@sentry/utils/esm/misc.js
var misc = __webpack_require__("9/Zf");

// EXTERNAL MODULE: ./node_modules/@sentry/utils/esm/envelope.js
var esm_envelope = __webpack_require__("oZ5x");

// CONCATENATED MODULE: ./node_modules/@sentry/utils/esm/clientreport.js


/**
 * Creates client report envelope
 * @param discarded_events An array of discard events
 * @param dsn A DSN that can be set on the header. Optional.
 */

function createClientReportEnvelope(discarded_events, dsn, timestamp) {
  const clientReportItem = [{
    type: 'client_report'
  }, {
    timestamp: timestamp || Object(time["b" /* dateTimestampInSeconds */])(),
    discarded_events
  }];
  return Object(esm_envelope["c" /* createEnvelope */])(dsn ? {
    dsn
  } : {}, [clientReportItem]);
}


// EXTERNAL MODULE: ./node_modules/@sentry/utils/esm/dsn.js
var esm_dsn = __webpack_require__("UJ/E");

// EXTERNAL MODULE: ./node_modules/@sentry/utils/esm/object.js
var esm_object = __webpack_require__("6PXS");

// EXTERNAL MODULE: ./node_modules/@sentry/utils/esm/normalize.js
var normalize = __webpack_require__("Fffm");

// EXTERNAL MODULE: ./node_modules/@sentry/utils/esm/syncpromise.js
var syncpromise = __webpack_require__("HR75");

// CONCATENATED MODULE: ./node_modules/@sentry/browser/esm/eventbuilder.js


/**
 * This function creates an exception from a JavaScript Error
 */

function exceptionFromError(stackParser, ex) {
  // Get the frames first since Opera can lose the stack if we touch anything else first
  const frames = parseStackFrames(stackParser, ex);
  const exception = {
    type: ex && ex.name,
    value: extractMessage(ex)
  };

  if (frames.length) {
    exception.stacktrace = {
      frames
    };
  }

  if (exception.type === undefined && exception.value === '') {
    exception.value = 'Unrecoverable error caught';
  }

  return exception;
}
/**
 * @hidden
 */


function eventFromPlainObject(stackParser, exception, syntheticException, isUnhandledRejection) {
  const hub = Object(esm_hub["b" /* getCurrentHub */])();
  const client = hub.getClient();
  const normalizeDepth = client && client.getOptions().normalizeDepth;
  const event = {
    exception: {
      values: [{
        type: Object(is["f" /* isEvent */])(exception) ? exception.constructor.name : isUnhandledRejection ? 'UnhandledRejection' : 'Error',
        value: `Non-Error ${isUnhandledRejection ? 'promise rejection' : 'exception'} captured with keys: ${Object(esm_object["d" /* extractExceptionKeysForMessage */])(exception)}`
      }]
    },
    extra: {
      __serialized__: Object(normalize["b" /* normalizeToSize */])(exception, normalizeDepth)
    }
  };

  if (syntheticException) {
    const frames = parseStackFrames(stackParser, syntheticException);

    if (frames.length) {
      // event.exception.values[0] has been set above
      event.exception.values[0].stacktrace = {
        frames
      };
    }
  }

  return event;
}
/**
 * @hidden
 */


function eventFromError(stackParser, ex) {
  return {
    exception: {
      values: [exceptionFromError(stackParser, ex)]
    }
  };
}
/** Parses stack frames from an error */


function parseStackFrames(stackParser, ex) {
  // Access and store the stacktrace property before doing ANYTHING
  // else to it because Opera is not very good at providing it
  // reliably in other circumstances.
  const stacktrace = ex.stacktrace || ex.stack || '';
  const popSize = getPopSize(ex);

  try {
    return stackParser(stacktrace, popSize);
  } catch (e) {// no-empty
  }

  return [];
} // Based on our own mapping pattern - https://github.com/getsentry/sentry/blob/9f08305e09866c8bd6d0c24f5b0aabdd7dd6c59c/src/sentry/lang/javascript/errormapping.py#L83-L108


const reactMinifiedRegexp = /Minified React error #\d+;/i;

function getPopSize(ex) {
  if (ex) {
    if (typeof ex.framesToPop === 'number') {
      return ex.framesToPop;
    }

    if (reactMinifiedRegexp.test(ex.message)) {
      return 1;
    }
  }

  return 0;
}
/**
 * There are cases where stacktrace.message is an Event object
 * https://github.com/getsentry/sentry-javascript/issues/1949
 * In this specific case we try to extract stacktrace.message.error.message
 */


function extractMessage(ex) {
  const message = ex && ex.message;

  if (!message) {
    return 'No error message';
  }

  if (message.error && typeof message.error.message === 'string') {
    return message.error.message;
  }

  return message;
}
/**
 * Creates an {@link Event} from all inputs to `captureException` and non-primitive inputs to `captureMessage`.
 * @hidden
 */


function eventFromException(stackParser, exception, hint, attachStacktrace) {
  const syntheticException = hint && hint.syntheticException || undefined;
  const event = eventFromUnknownInput(stackParser, exception, syntheticException, attachStacktrace);
  Object(misc["a" /* addExceptionMechanism */])(event); // defaults to { type: 'generic', handled: true }

  event.level = 'error';

  if (hint && hint.event_id) {
    event.event_id = hint.event_id;
  }

  return Object(syncpromise["c" /* resolvedSyncPromise */])(event);
}
/**
 * Builds and Event from a Message
 * @hidden
 */


function eventFromMessage(stackParser, message, // eslint-disable-next-line deprecation/deprecation
level = 'info', hint, attachStacktrace) {
  const syntheticException = hint && hint.syntheticException || undefined;
  const event = eventFromString(stackParser, message, syntheticException, attachStacktrace);
  event.level = level;

  if (hint && hint.event_id) {
    event.event_id = hint.event_id;
  }

  return Object(syncpromise["c" /* resolvedSyncPromise */])(event);
}
/**
 * @hidden
 */


function eventFromUnknownInput(stackParser, exception, syntheticException, attachStacktrace, isUnhandledRejection) {
  let event;

  if (Object(is["e" /* isErrorEvent */])(exception) && exception.error) {
    // If it is an ErrorEvent with `error` property, extract it to get actual Error
    const errorEvent = exception;
    return eventFromError(stackParser, errorEvent.error);
  } // If it is a `DOMError` (which is a legacy API, but still supported in some browsers) then we just extract the name
  // and message, as it doesn't provide anything else. According to the spec, all `DOMExceptions` should also be
  // `Error`s, but that's not the case in IE11, so in that case we treat it the same as we do a `DOMError`.
  //
  // https://developer.mozilla.org/en-US/docs/Web/API/DOMError
  // https://developer.mozilla.org/en-US/docs/Web/API/DOMException
  // https://webidl.spec.whatwg.org/#es-DOMException-specialness


  if (Object(is["a" /* isDOMError */])(exception) || Object(is["b" /* isDOMException */])(exception)) {
    const domException = exception;

    if ('stack' in exception) {
      event = eventFromError(stackParser, exception);
    } else {
      const name = domException.name || (Object(is["a" /* isDOMError */])(domException) ? 'DOMError' : 'DOMException');
      const message = domException.message ? `${name}: ${domException.message}` : name;
      event = eventFromString(stackParser, message, syntheticException, attachStacktrace);
      Object(misc["b" /* addExceptionTypeValue */])(event, message);
    }

    if ('code' in domException) {
      event.tags = { ...event.tags,
        'DOMException.code': `${domException.code}`
      };
    }

    return event;
  }

  if (Object(is["d" /* isError */])(exception)) {
    // we have a real Error object, do nothing
    return eventFromError(stackParser, exception);
  }

  if (Object(is["i" /* isPlainObject */])(exception) || Object(is["f" /* isEvent */])(exception)) {
    // If it's a plain object or an instance of `Event` (the built-in JS kind, not this SDK's `Event` type), serialize
    // it manually. This will allow us to group events based on top-level keys which is much better than creating a new
    // group on any key/value change.
    const objectException = exception;
    event = eventFromPlainObject(stackParser, objectException, syntheticException, isUnhandledRejection);
    Object(misc["a" /* addExceptionMechanism */])(event, {
      synthetic: true
    });
    return event;
  } // If none of previous checks were valid, then it means that it's not:
  // - an instance of DOMError
  // - an instance of DOMException
  // - an instance of Event
  // - an instance of Error
  // - a valid ErrorEvent (one with an error property)
  // - a plain Object
  //
  // So bail out and capture it as a simple message:


  event = eventFromString(stackParser, exception, syntheticException, attachStacktrace);
  Object(misc["b" /* addExceptionTypeValue */])(event, `${exception}`, undefined);
  Object(misc["a" /* addExceptionMechanism */])(event, {
    synthetic: true
  });
  return event;
}
/**
 * @hidden
 */


function eventFromString(stackParser, input, syntheticException, attachStacktrace) {
  const event = {
    message: input
  };

  if (attachStacktrace && syntheticException) {
    const frames = parseStackFrames(stackParser, syntheticException);

    if (frames.length) {
      event.exception = {
        values: [{
          value: input,
          stacktrace: {
            frames
          }
        }]
      };
    }
  }

  return event;
}


// CONCATENATED MODULE: ./node_modules/@sentry/browser/esm/helpers.js


const helpers_WINDOW = worldwide["a" /* GLOBAL_OBJ */];
let ignoreOnError = 0;
/**
 * @hidden
 */

function shouldIgnoreOnError() {
  return ignoreOnError > 0;
}
/**
 * @hidden
 */


function ignoreNextOnError() {
  // onerror should trigger before setTimeout
  ignoreOnError += 1;
  setTimeout(() => {
    ignoreOnError -= 1;
  });
}
/**
 * Instruments the given function and sends an event to Sentry every time the
 * function throws an exception.
 *
 * @param fn A function to wrap. It is generally safe to pass an unbound function, because the returned wrapper always
 * has a correct `this` context.
 * @returns The wrapped function.
 * @hidden
 */


function wrap(fn, options = {}, before // eslint-disable-next-line @typescript-eslint/no-explicit-any
) {
  // for future readers what this does is wrap a function and then create
  // a bi-directional wrapping between them.
  //
  // example: wrapped = wrap(original);
  //  original.__sentry_wrapped__ -> wrapped
  //  wrapped.__sentry_original__ -> original
  if (typeof fn !== 'function') {
    return fn;
  }

  try {
    // if we're dealing with a function that was previously wrapped, return
    // the original wrapper.
    const wrapper = fn.__sentry_wrapped__;

    if (wrapper) {
      return wrapper;
    } // We don't wanna wrap it twice


    if (Object(esm_object["f" /* getOriginalFunction */])(fn)) {
      return fn;
    }
  } catch (e) {
    // Just accessing custom props in some Selenium environments
    // can cause a "Permission denied" exception (see raven-js#495).
    // Bail on wrapping and return the function as-is (defers to window.onerror).
    return fn;
  }
  /* eslint-disable prefer-rest-params */
  // It is important that `sentryWrapped` is not an arrow function to preserve the context of `this`


  const sentryWrapped = function () {
    const args = Array.prototype.slice.call(arguments);

    try {
      if (before && typeof before === 'function') {
        before.apply(this, arguments);
      } // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access


      const wrappedArguments = args.map(arg => wrap(arg, options)); // Attempt to invoke user-land function
      // NOTE: If you are a Sentry user, and you are seeing this stack frame, it
      //       means the sentry.javascript SDK caught an error invoking your application code. This
      //       is expected behavior and NOT indicative of a bug with sentry.javascript.

      return fn.apply(this, wrappedArguments);
    } catch (ex) {
      ignoreNextOnError();
      Object(esm_exports["m" /* withScope */])(scope => {
        scope.addEventProcessor(event => {
          if (options.mechanism) {
            Object(misc["b" /* addExceptionTypeValue */])(event, undefined, undefined);
            Object(misc["a" /* addExceptionMechanism */])(event, options.mechanism);
          }

          event.extra = { ...event.extra,
            arguments: args
          };
          return event;
        });
        Object(esm_exports["c" /* captureException */])(ex);
      });
      throw ex;
    }
  };
  /* eslint-enable prefer-rest-params */
  // Accessing some objects may throw
  // ref: https://github.com/getsentry/sentry-javascript/issues/1168


  try {
    for (const property in fn) {
      if (Object.prototype.hasOwnProperty.call(fn, property)) {
        sentryWrapped[property] = fn[property];
      }
    }
  } catch (_oO) {} // eslint-disable-line no-empty
  // Signal that this function has been wrapped/filled already
  // for both debugging and to prevent it to being wrapped/filled twice


  Object(esm_object["g" /* markFunctionWrapped */])(sentryWrapped, fn);
  Object(esm_object["a" /* addNonEnumerableProperty */])(fn, '__sentry_wrapped__', sentryWrapped); // Restore original function name (not all browsers allow that)

  try {
    const descriptor = Object.getOwnPropertyDescriptor(sentryWrapped, 'name');

    if (descriptor.configurable) {
      Object.defineProperty(sentryWrapped, 'name', {
        get() {
          return fn.name;
        }

      });
    } // eslint-disable-next-line no-empty

  } catch (_oO) {}

  return sentryWrapped;
}
/**
 * All properties the report dialog supports
 */



// CONCATENATED MODULE: ./node_modules/@sentry/utils/esm/severity.js
// Note: Ideally the `SeverityLevel` type would be derived from `validSeverityLevels`, but that would mean either
//
// a) moving `validSeverityLevels` to `@sentry/types`,
// b) moving the`SeverityLevel` type here, or
// c) importing `validSeverityLevels` from here into `@sentry/types`.
//
// Option A would make `@sentry/types` a runtime dependency of `@sentry/utils` (not good), and options B and C would
// create a circular dependency between `@sentry/types` and `@sentry/utils` (also not good). So a TODO accompanying the
// type, reminding anyone who changes it to change this list also, will have to do.
const validSeverityLevels = ['fatal', 'error', 'warning', 'log', 'info', 'debug'];
/**
 * Converts a string-based level into a member of the deprecated {@link Severity} enum.
 *
 * @deprecated `severityFromString` is deprecated. Please use `severityLevelFromString` instead.
 *
 * @param level String representation of Severity
 * @returns Severity
 */

function severityFromString(level) {
  return severityLevelFromString(level);
}
/**
 * Converts a string-based level into a `SeverityLevel`, normalizing it along the way.
 *
 * @param level String representation of desired `SeverityLevel`.
 * @returns The `SeverityLevel` corresponding to the given string, or 'log' if the string isn't a valid level.
 */


function severityLevelFromString(level) {
  return level === 'warn' ? 'warning' : validSeverityLevels.includes(level) ? level : 'log';
}


// EXTERNAL MODULE: ./node_modules/@sentry/utils/esm/string.js
var string = __webpack_require__("+924");

// EXTERNAL MODULE: ./node_modules/@sentry/utils/esm/url.js
var esm_url = __webpack_require__("DTqw");

// CONCATENATED MODULE: ./node_modules/@sentry/browser/esm/integrations/breadcrumbs.js



/* eslint-disable @typescript-eslint/no-unsafe-member-access */

/** JSDoc */

const BREADCRUMB_INTEGRATION_ID = 'Breadcrumbs';
/**
 * Default Breadcrumbs instrumentations
 * TODO: Deprecated - with v6, this will be renamed to `Instrument`
 */

class breadcrumbs_Breadcrumbs {
  /**
   * @inheritDoc
   */
  static __initStatic() {
    this.id = BREADCRUMB_INTEGRATION_ID;
  }
  /**
   * @inheritDoc
   */


  __init() {
    this.name = breadcrumbs_Breadcrumbs.id;
  }
  /**
   * Options of the breadcrumbs integration.
   */
  // This field is public, because we use it in the browser client to check if the `sentry` option is enabled.

  /**
   * @inheritDoc
   */


  constructor(options) {
    ;

    breadcrumbs_Breadcrumbs.prototype.__init.call(this);

    this.options = {
      console: true,
      dom: true,
      fetch: true,
      history: true,
      sentry: true,
      xhr: true,
      ...options
    };
  }
  /**
   * Instrument browser built-ins w/ breadcrumb capturing
   *  - Console API
   *  - DOM API (click/typing)
   *  - XMLHttpRequest API
   *  - Fetch API
   *  - History API
   */


  setupOnce() {
    if (this.options.console) {
      Object(instrument["a" /* addInstrumentationHandler */])('console', _consoleBreadcrumb);
    }

    if (this.options.dom) {
      Object(instrument["a" /* addInstrumentationHandler */])('dom', _domBreadcrumb(this.options.dom));
    }

    if (this.options.xhr) {
      Object(instrument["a" /* addInstrumentationHandler */])('xhr', _xhrBreadcrumb);
    }

    if (this.options.fetch) {
      Object(instrument["a" /* addInstrumentationHandler */])('fetch', _fetchBreadcrumb);
    }

    if (this.options.history) {
      Object(instrument["a" /* addInstrumentationHandler */])('history', _historyBreadcrumb);
    }
  }

}

breadcrumbs_Breadcrumbs.__initStatic();
/**
 * A HOC that creaes a function that creates breadcrumbs from DOM API calls.
 * This is a HOC so that we get access to dom options in the closure.
 */
// eslint-disable-next-line @typescript-eslint/no-explicit-any


function _domBreadcrumb(dom) {
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
  function _innerDomBreadcrumb(handlerData) {
    let target;
    let keyAttrs = typeof dom === 'object' ? dom.serializeAttribute : undefined;

    if (typeof keyAttrs === 'string') {
      keyAttrs = [keyAttrs];
    } // Accessing event.target can throw (see getsentry/raven-js#838, #768)


    try {
      target = handlerData.event.target ? Object(browser["c" /* htmlTreeAsString */])(handlerData.event.target, keyAttrs) : Object(browser["c" /* htmlTreeAsString */])(handlerData.event, keyAttrs);
    } catch (e) {
      target = '<unknown>';
    }

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

    Object(esm_hub["b" /* getCurrentHub */])().addBreadcrumb({
      category: `ui.${handlerData.name}`,
      message: target
    }, {
      event: handlerData.event,
      name: handlerData.name,
      global: handlerData.global
    });
  }

  return _innerDomBreadcrumb;
}
/**
 * Creates breadcrumbs from console API calls
 */
// eslint-disable-next-line @typescript-eslint/no-explicit-any


function _consoleBreadcrumb(handlerData) {
  // This is a hack to fix a Vue3-specific bug that causes an infinite loop of
  // console warnings. This happens when a Vue template is rendered with
  // an undeclared variable, which we try to stringify, ultimately causing
  // Vue to issue another warning which repeats indefinitely.
  // see: https://github.com/getsentry/sentry-javascript/pull/6010
  // see: https://github.com/getsentry/sentry-javascript/issues/5916
  for (let i = 0; i < handlerData.args.length; i++) {
    if (handlerData.args[i] === 'ref=Ref<') {
      handlerData.args[i + 1] = 'viewRef';
      break;
    }
  }

  const breadcrumb = {
    category: 'console',
    data: {
      arguments: handlerData.args,
      logger: 'console'
    },
    level: severityLevelFromString(handlerData.level),
    message: Object(string["b" /* safeJoin */])(handlerData.args, ' ')
  };

  if (handlerData.level === 'assert') {
    if (handlerData.args[0] === false) {
      breadcrumb.message = `Assertion failed: ${Object(string["b" /* safeJoin */])(handlerData.args.slice(1), ' ') || 'console.assert'}`;
      breadcrumb.data.arguments = handlerData.args.slice(1);
    } else {
      // Don't capture a breadcrumb for passed assertions
      return;
    }
  }

  Object(esm_hub["b" /* getCurrentHub */])().addBreadcrumb(breadcrumb, {
    input: handlerData.args,
    level: handlerData.level
  });
}
/**
 * Creates breadcrumbs from XHR API calls
 */
// eslint-disable-next-line @typescript-eslint/no-explicit-any


function _xhrBreadcrumb(handlerData) {
  if (handlerData.endTimestamp) {
    // We only capture complete, non-sentry requests
    if (handlerData.xhr.__sentry_own_request__) {
      return;
    }

    const {
      method,
      url,
      status_code,
      body
    } = handlerData.xhr.__sentry_xhr__ || {};
    Object(esm_hub["b" /* getCurrentHub */])().addBreadcrumb({
      category: 'xhr',
      data: {
        method,
        url,
        status_code
      },
      type: 'http'
    }, {
      xhr: handlerData.xhr,
      input: body
    });
    return;
  }
}
/**
 * Creates breadcrumbs from fetch API calls
 */
// eslint-disable-next-line @typescript-eslint/no-explicit-any


function _fetchBreadcrumb(handlerData) {
  // We only capture complete fetch requests
  if (!handlerData.endTimestamp) {
    return;
  }

  if (handlerData.fetchData.url.match(/sentry_key/) && handlerData.fetchData.method === 'POST') {
    // We will not create breadcrumbs for fetch requests that contain `sentry_key` (internal sentry requests)
    return;
  }

  if (handlerData.error) {
    Object(esm_hub["b" /* getCurrentHub */])().addBreadcrumb({
      category: 'fetch',
      data: handlerData.fetchData,
      level: 'error',
      type: 'http'
    }, {
      data: handlerData.error,
      input: handlerData.args
    });
  } else {
    Object(esm_hub["b" /* getCurrentHub */])().addBreadcrumb({
      category: 'fetch',
      data: { ...handlerData.fetchData,
        status_code: handlerData.response.status
      },
      type: 'http'
    }, {
      input: handlerData.args,
      response: handlerData.response
    });
  }
}
/**
 * Creates breadcrumbs from history API calls
 */
// eslint-disable-next-line @typescript-eslint/no-explicit-any


function _historyBreadcrumb(handlerData) {
  let from = handlerData.from;
  let to = handlerData.to;
  const parsedLoc = Object(esm_url["a" /* parseUrl */])(helpers_WINDOW.location.href);
  let parsedFrom = Object(esm_url["a" /* parseUrl */])(from);
  const parsedTo = Object(esm_url["a" /* parseUrl */])(to); // Initial pushState doesn't provide `from` information

  if (!parsedFrom.path) {
    parsedFrom = parsedLoc;
  } // Use only the path component of the URL if the URL matches the current
  // document (almost all the time when using pushState)


  if (parsedLoc.protocol === parsedTo.protocol && parsedLoc.host === parsedTo.host) {
    to = parsedTo.relative;
  }

  if (parsedLoc.protocol === parsedFrom.protocol && parsedLoc.host === parsedFrom.host) {
    from = parsedFrom.relative;
  }

  Object(esm_hub["b" /* getCurrentHub */])().addBreadcrumb({
    category: 'navigation',
    data: {
      from,
      to
    }
  });
}


// CONCATENATED MODULE: ./node_modules/@sentry/browser/esm/client.js





/**
 * The Sentry Browser SDK Client.
 *
 * @see BrowserOptions for documentation on configuration options.
 * @see SentryClient for usage documentation.
 */

class client_BrowserClient extends baseclient["a" /* BaseClient */] {
  /**
   * Creates a new Browser SDK instance.
   *
   * @param options Configuration options for this SDK.
   */
  constructor(options) {
    options._metadata = options._metadata || {};
    options._metadata.sdk = options._metadata.sdk || {
      name: 'sentry.javascript.browser',
      packages: [{
        name: 'npm:@sentry/browser',
        version: esm_version["a" /* SDK_VERSION */]
      }],
      version: esm_version["a" /* SDK_VERSION */]
    };
    super(options);

    if (options.sendClientReports && helpers_WINDOW.document) {
      helpers_WINDOW.document.addEventListener('visibilitychange', () => {
        if (helpers_WINDOW.document.visibilityState === 'hidden') {
          this._flushOutcomes();
        }
      });
    }
  }
  /**
   * @inheritDoc
   */


  eventFromException(exception, hint) {
    return eventFromException(this._options.stackParser, exception, hint, this._options.attachStacktrace);
  }
  /**
   * @inheritDoc
   */


  eventFromMessage(message, // eslint-disable-next-line deprecation/deprecation
  level = 'info', hint) {
    return eventFromMessage(this._options.stackParser, message, level, hint, this._options.attachStacktrace);
  }
  /**
   * @inheritDoc
   */


  sendEvent(event, hint) {
    // We only want to add the sentry event breadcrumb when the user has the breadcrumb integration installed and
    // activated its `sentry` option.
    // We also do not want to use the `Breadcrumbs` class here directly, because we do not want it to be included in
    // bundles, if it is not used by the SDK.
    // This all sadly is a bit ugly, but we currently don't have a "pre-send" hook on the integrations so we do it this
    // way for now.
    const breadcrumbIntegration = this.getIntegrationById(BREADCRUMB_INTEGRATION_ID);

    if (breadcrumbIntegration && // We check for definedness of `options`, even though it is not strictly necessary, because that access to
    // `.sentry` below does not throw, in case users provided their own integration with id "Breadcrumbs" that does
    // not have an`options` field
    breadcrumbIntegration.options && breadcrumbIntegration.options.sentry) {
      Object(esm_hub["b" /* getCurrentHub */])().addBreadcrumb({
        category: `sentry.${event.type === 'transaction' ? 'transaction' : 'event'}`,
        event_id: event.event_id,
        level: event.level,
        message: Object(misc["e" /* getEventDescription */])(event)
      }, {
        event
      });
    }

    super.sendEvent(event, hint);
  }
  /**
   * @inheritDoc
   */


  _prepareEvent(event, hint, scope) {
    event.platform = event.platform || 'javascript';
    return super._prepareEvent(event, hint, scope);
  }
  /**
   * Sends client reports as an envelope.
   */


  _flushOutcomes() {
    const outcomes = this._clearOutcomes();

    if (outcomes.length === 0) {
      (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger["c" /* logger */].log('No outcomes to send');
      return;
    }

    if (!this._dsn) {
      (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger["c" /* logger */].log('No dsn provided, will not send outcomes');
      return;
    }

    (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger["c" /* logger */].log('Sending outcomes:', outcomes);
    const url = Object(api["a" /* getEnvelopeEndpointWithUrlEncodedAuth */])(this._dsn, this._options);
    const envelope = createClientReportEnvelope(outcomes, this._options.tunnel && Object(esm_dsn["a" /* dsnToString */])(this._dsn));

    try {
      const isRealNavigator = Object.prototype.toString.call(helpers_WINDOW && helpers_WINDOW.navigator) === '[object Navigator]';
      const hasSendBeacon = isRealNavigator && typeof helpers_WINDOW.navigator.sendBeacon === 'function'; // Make sure beacon is not used if user configures custom transport options

      if (hasSendBeacon && !this._options.transportOptions) {
        // Prevent illegal invocations - https://xgwang.me/posts/you-may-not-know-beacon/#it-may-throw-error%2C-be-sure-to-catch
        const sendBeacon = helpers_WINDOW.navigator.sendBeacon.bind(helpers_WINDOW.navigator);
        sendBeacon(url, Object(esm_envelope["f" /* serializeEnvelope */])(envelope));
      } else {
        // If beacon is not supported or if they are using the tunnel option
        // use our regular transport to send client reports to Sentry.
        this._sendEnvelope(envelope);
      }
    } catch (e) {
      (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger["c" /* logger */].error(e);
    }
  }

}


// EXTERNAL MODULE: ./node_modules/@sentry/core/esm/index.js + 3 modules
var esm = __webpack_require__("wBhU");

// EXTERNAL MODULE: ./node_modules/@sentry/core/esm/integration.js
var integration = __webpack_require__("METY");

// EXTERNAL MODULE: ./node_modules/@sentry/core/esm/sdk.js
var sdk = __webpack_require__("QQmx");

// EXTERNAL MODULE: ./node_modules/@sentry/utils/esm/stacktrace.js
var stacktrace = __webpack_require__("pRiV");

// EXTERNAL MODULE: ./node_modules/@sentry/utils/esm/supports.js
var supports = __webpack_require__("4Ssk");

// CONCATENATED MODULE: ./node_modules/@sentry/browser/esm/stack-parsers.js
 // global reference to slice

const UNKNOWN_FUNCTION = '?';
const OPERA10_PRIORITY = 10;
const OPERA11_PRIORITY = 20;
const CHROME_PRIORITY = 30;
const WINJS_PRIORITY = 40;
const GECKO_PRIORITY = 50;

function createFrame(filename, func, lineno, colno) {
  const frame = {
    filename,
    function: func,
    // All browser frames are considered in_app
    in_app: true
  };

  if (lineno !== undefined) {
    frame.lineno = lineno;
  }

  if (colno !== undefined) {
    frame.colno = colno;
  }

  return frame;
} // Chromium based browsers: Chrome, Brave, new Opera, new Edge


const chromeRegex = /^\s*at (?:(.*\).*?|.*?) ?\((?:address at )?)?((?:file|https?|blob|chrome-extension|address|native|eval|webpack|<anonymous>|[-a-z]+:|.*bundle|\/)?.*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i;
const chromeEvalRegex = /\((\S*)(?::(\d+))(?::(\d+))\)/;

const chrome = line => {
  const parts = chromeRegex.exec(line);

  if (parts) {
    const isEval = parts[2] && parts[2].indexOf('eval') === 0; // start of line

    if (isEval) {
      const subMatch = chromeEvalRegex.exec(parts[2]);

      if (subMatch) {
        // throw out eval line/column and use top-most line/column number
        parts[2] = subMatch[1]; // url

        parts[3] = subMatch[2]; // line

        parts[4] = subMatch[3]; // column
      }
    } // Kamil: One more hack won't hurt us right? Understanding and adding more rules on top of these regexps right now
    // would be way too time consuming. (TODO: Rewrite whole RegExp to be more readable)


    const [func, filename] = extractSafariExtensionDetails(parts[1] || UNKNOWN_FUNCTION, parts[2]);
    return createFrame(filename, func, parts[3] ? +parts[3] : undefined, parts[4] ? +parts[4] : undefined);
  }

  return;
};

const chromeStackLineParser = [CHROME_PRIORITY, chrome]; // gecko regex: `(?:bundle|\d+\.js)`: `bundle` is for react native, `\d+\.js` also but specifically for ram bundles because it
// generates filenames without a prefix like `file://` the filenames in the stacktrace are just 42.js
// We need this specific case for now because we want no other regex to match.

const geckoREgex = /^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:file|https?|blob|chrome|webpack|resource|moz-extension|safari-extension|safari-web-extension|capacitor)?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js)|\/[\w\-. /=]+)(?::(\d+))?(?::(\d+))?\s*$/i;
const geckoEvalRegex = /(\S+) line (\d+)(?: > eval line \d+)* > eval/i;

const gecko = line => {
  const parts = geckoREgex.exec(line);

  if (parts) {
    const isEval = parts[3] && parts[3].indexOf(' > eval') > -1;

    if (isEval) {
      const subMatch = geckoEvalRegex.exec(parts[3]);

      if (subMatch) {
        // throw out eval line/column and use top-most line number
        parts[1] = parts[1] || 'eval';
        parts[3] = subMatch[1];
        parts[4] = subMatch[2];
        parts[5] = ''; // no column when eval
      }
    }

    let filename = parts[3];
    let func = parts[1] || UNKNOWN_FUNCTION;
    [func, filename] = extractSafariExtensionDetails(func, filename);
    return createFrame(filename, func, parts[4] ? +parts[4] : undefined, parts[5] ? +parts[5] : undefined);
  }

  return;
};

const geckoStackLineParser = [GECKO_PRIORITY, gecko];
const winjsRegex = /^\s*at (?:((?:\[object object\])?.+) )?\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\d+)(?::(\d+))?\)?\s*$/i;

const winjs = line => {
  const parts = winjsRegex.exec(line);
  return parts ? createFrame(parts[2], parts[1] || UNKNOWN_FUNCTION, +parts[3], parts[4] ? +parts[4] : undefined) : undefined;
};

const winjsStackLineParser = [WINJS_PRIORITY, winjs];
const opera10Regex = / line (\d+).*script (?:in )?(\S+)(?:: in function (\S+))?$/i;

const opera10 = line => {
  const parts = opera10Regex.exec(line);
  return parts ? createFrame(parts[2], parts[3] || UNKNOWN_FUNCTION, +parts[1]) : undefined;
};

const opera10StackLineParser = [OPERA10_PRIORITY, opera10];
const opera11Regex = / line (\d+), column (\d+)\s*(?:in (?:<anonymous function: ([^>]+)>|([^)]+))\(.*\))? in (.*):\s*$/i;

const opera11 = line => {
  const parts = opera11Regex.exec(line);
  return parts ? createFrame(parts[5], parts[3] || parts[4] || UNKNOWN_FUNCTION, +parts[1], +parts[2]) : undefined;
};

const opera11StackLineParser = [OPERA11_PRIORITY, opera11];
const defaultStackLineParsers = [chromeStackLineParser, geckoStackLineParser, winjsStackLineParser];
const defaultStackParser = Object(stacktrace["a" /* createStackParser */])(...defaultStackLineParsers);
/**
 * Safari web extensions, starting version unknown, can produce "frames-only" stacktraces.
 * What it means, is that instead of format like:
 *
 * Error: wat
 *   at function@url:row:col
 *   at function@url:row:col
 *   at function@url:row:col
 *
 * it produces something like:
 *
 *   function@url:row:col
 *   function@url:row:col
 *   function@url:row:col
 *
 * Because of that, it won't be captured by `chrome` RegExp and will fall into `Gecko` branch.
 * This function is extracted so that we can use it in both places without duplicating the logic.
 * Unfortunately "just" changing RegExp is too complicated now and making it pass all tests
 * and fix this case seems like an impossible, or at least way too time-consuming task.
 */

const extractSafariExtensionDetails = (func, filename) => {
  const isSafariExtension = func.indexOf('safari-extension') !== -1;
  const isSafariWebExtension = func.indexOf('safari-web-extension') !== -1;
  return isSafariExtension || isSafariWebExtension ? [func.indexOf('@') !== -1 ? func.split('@')[0] : UNKNOWN_FUNCTION, isSafariExtension ? `safari-extension:${filename}` : `safari-web-extension:${filename}`] : [func, filename];
};


// CONCATENATED MODULE: ./node_modules/@sentry/browser/esm/integrations/trycatch.js


const DEFAULT_EVENT_TARGET = ['EventTarget', 'Window', 'Node', 'ApplicationCache', 'AudioTrackList', 'ChannelMergerNode', 'CryptoOperation', 'EventSource', 'FileReader', 'HTMLUnknownElement', 'IDBDatabase', 'IDBRequest', 'IDBTransaction', 'KeyOperation', 'MediaController', 'MessagePort', 'ModalWindow', 'Notification', 'SVGElementInstance', 'Screen', 'TextTrack', 'TextTrackCue', 'TextTrackList', 'WebSocket', 'WebSocketWorker', 'Worker', 'XMLHttpRequest', 'XMLHttpRequestEventTarget', 'XMLHttpRequestUpload'];
/** Wrap timer functions and event targets to catch errors and provide better meta data */

class trycatch_TryCatch {
  /**
   * @inheritDoc
   */
  static __initStatic() {
    this.id = 'TryCatch';
  }
  /**
   * @inheritDoc
   */


  __init() {
    this.name = trycatch_TryCatch.id;
  }
  /** JSDoc */

  /**
   * @inheritDoc
   */


  constructor(options) {
    ;

    trycatch_TryCatch.prototype.__init.call(this);

    this._options = {
      XMLHttpRequest: true,
      eventTarget: true,
      requestAnimationFrame: true,
      setInterval: true,
      setTimeout: true,
      ...options
    };
  }
  /**
   * Wrap timer functions and event targets to catch errors
   * and provide better metadata.
   */


  setupOnce() {
    if (this._options.setTimeout) {
      Object(esm_object["e" /* fill */])(helpers_WINDOW, 'setTimeout', _wrapTimeFunction);
    }

    if (this._options.setInterval) {
      Object(esm_object["e" /* fill */])(helpers_WINDOW, 'setInterval', _wrapTimeFunction);
    }

    if (this._options.requestAnimationFrame) {
      Object(esm_object["e" /* fill */])(helpers_WINDOW, 'requestAnimationFrame', _wrapRAF);
    }

    if (this._options.XMLHttpRequest && 'XMLHttpRequest' in helpers_WINDOW) {
      Object(esm_object["e" /* fill */])(XMLHttpRequest.prototype, 'send', _wrapXHR);
    }

    const eventTargetOption = this._options.eventTarget;

    if (eventTargetOption) {
      const eventTarget = Array.isArray(eventTargetOption) ? eventTargetOption : DEFAULT_EVENT_TARGET;
      eventTarget.forEach(_wrapEventTarget);
    }
  }

}

trycatch_TryCatch.__initStatic();
/** JSDoc */


function _wrapTimeFunction(original) {
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
  return function (...args) {
    const originalCallback = args[0];
    args[0] = wrap(originalCallback, {
      mechanism: {
        data: {
          function: Object(stacktrace["b" /* getFunctionName */])(original)
        },
        handled: true,
        type: 'instrument'
      }
    });
    return original.apply(this, args);
  };
}
/** JSDoc */
// eslint-disable-next-line @typescript-eslint/no-explicit-any


function _wrapRAF(original) {
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
  return function (callback) {
    // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
    return original.apply(this, [wrap(callback, {
      mechanism: {
        data: {
          function: 'requestAnimationFrame',
          handler: Object(stacktrace["b" /* getFunctionName */])(original)
        },
        handled: true,
        type: 'instrument'
      }
    })]);
  };
}
/** JSDoc */


function _wrapXHR(originalSend) {
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
  return function (...args) {
    // eslint-disable-next-line @typescript-eslint/no-this-alias
    const xhr = this;
    const xmlHttpRequestProps = ['onload', 'onerror', 'onprogress', 'onreadystatechange'];
    xmlHttpRequestProps.forEach(prop => {
      if (prop in xhr && typeof xhr[prop] === 'function') {
        // eslint-disable-next-line @typescript-eslint/no-explicit-any
        Object(esm_object["e" /* fill */])(xhr, prop, function (original) {
          const wrapOptions = {
            mechanism: {
              data: {
                function: prop,
                handler: Object(stacktrace["b" /* getFunctionName */])(original)
              },
              handled: true,
              type: 'instrument'
            }
          }; // If Instrument integration has been called before TryCatch, get the name of original function

          const originalFunction = Object(esm_object["f" /* getOriginalFunction */])(original);

          if (originalFunction) {
            wrapOptions.mechanism.data.handler = Object(stacktrace["b" /* getFunctionName */])(originalFunction);
          } // Otherwise wrap directly


          return wrap(original, wrapOptions);
        });
      }
    });
    return originalSend.apply(this, args);
  };
}
/** JSDoc */


function _wrapEventTarget(target) {
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
  const globalObject = helpers_WINDOW; // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access

  const proto = globalObject[target] && globalObject[target].prototype; // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, no-prototype-builtins

  if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {
    return;
  }

  Object(esm_object["e" /* fill */])(proto, 'addEventListener', function (original) {
    return function ( // eslint-disable-next-line @typescript-eslint/no-explicit-any
    eventName, fn, options) {
      try {
        if (typeof fn.handleEvent === 'function') {
          // ESlint disable explanation:
          //  First, it is generally safe to call `wrap` with an unbound function. Furthermore, using `.bind()` would
          //  introduce a bug here, because bind returns a new function that doesn't have our
          //  flags(like __sentry_original__) attached. `wrap` checks for those flags to avoid unnecessary wrapping.
          //  Without those flags, every call to addEventListener wraps the function again, causing a memory leak.
          // eslint-disable-next-line @typescript-eslint/unbound-method
          fn.handleEvent = wrap(fn.handleEvent, {
            mechanism: {
              data: {
                function: 'handleEvent',
                handler: Object(stacktrace["b" /* getFunctionName */])(fn),
                target
              },
              handled: true,
              type: 'instrument'
            }
          });
        }
      } catch (err) {// can sometimes get 'Permission denied to access property "handle Event'
      }

      return original.apply(this, [eventName, // eslint-disable-next-line @typescript-eslint/no-explicit-any
      wrap(fn, {
        mechanism: {
          data: {
            function: 'addEventListener',
            handler: Object(stacktrace["b" /* getFunctionName */])(fn),
            target
          },
          handled: true,
          type: 'instrument'
        }
      }), options]);
    };
  });
  Object(esm_object["e" /* fill */])(proto, 'removeEventListener', function (originalRemoveEventListener // eslint-disable-next-line @typescript-eslint/no-explicit-any
  ) {
    return function ( // eslint-disable-next-line @typescript-eslint/no-explicit-any
    eventName, fn, options) {
      /**
       * There are 2 possible scenarios here:
       *
       * 1. Someone passes a callback, which was attached prior to Sentry initialization, or by using unmodified
       * method, eg. `document.addEventListener.call(el, name, handler). In this case, we treat this function
       * as a pass-through, and call original `removeEventListener` with it.
       *
       * 2. Someone passes a callback, which was attached after Sentry was initialized, which means that it was using
       * our wrapped version of `addEventListener`, which internally calls `wrap` helper.
       * This helper "wraps" whole callback inside a try/catch statement, and attached appropriate metadata to it,
       * in order for us to make a distinction between wrapped/non-wrapped functions possible.
       * If a function was wrapped, it has additional property of `__sentry_wrapped__`, holding the handler.
       *
       * When someone adds a handler prior to initialization, and then do it again, but after,
       * then we have to detach both of them. Otherwise, if we'd detach only wrapped one, it'd be impossible
       * to get rid of the initial handler and it'd stick there forever.
       */
      const wrappedEventHandler = fn;

      try {
        const originalEventHandler = wrappedEventHandler && wrappedEventHandler.__sentry_wrapped__;

        if (originalEventHandler) {
          originalRemoveEventListener.call(this, eventName, originalEventHandler, options);
        }
      } catch (e) {// ignore, accessing __sentry_wrapped__ will throw in some Selenium environments
      }

      return originalRemoveEventListener.call(this, eventName, wrappedEventHandler, options);
    };
  });
}


// CONCATENATED MODULE: ./node_modules/@sentry/browser/esm/integrations/globalhandlers.js




/* eslint-disable @typescript-eslint/no-unsafe-member-access */

/** Global handlers */

class GlobalHandlers {
  /**
   * @inheritDoc
   */
  static __initStatic() {
    this.id = 'GlobalHandlers';
  }
  /**
   * @inheritDoc
   */


  __init() {
    this.name = GlobalHandlers.id;
  }
  /** JSDoc */

  /**
   * Stores references functions to installing handlers. Will set to undefined
   * after they have been run so that they are not used twice.
   */


  __init2() {
    this._installFunc = {
      onerror: _installGlobalOnErrorHandler,
      onunhandledrejection: _installGlobalOnUnhandledRejectionHandler
    };
  }
  /** JSDoc */


  constructor(options) {
    ;

    GlobalHandlers.prototype.__init.call(this);

    GlobalHandlers.prototype.__init2.call(this);

    this._options = {
      onerror: true,
      onunhandledrejection: true,
      ...options
    };
  }
  /**
   * @inheritDoc
   */


  setupOnce() {
    Error.stackTraceLimit = 50;
    const options = this._options; // We can disable guard-for-in as we construct the options object above + do checks against
    // `this._installFunc` for the property.
    // eslint-disable-next-line guard-for-in

    for (const key in options) {
      const installFunc = this._installFunc[key];

      if (installFunc && options[key]) {
        globalHandlerLog(key);
        installFunc();
        this._installFunc[key] = undefined;
      }
    }
  }

}

GlobalHandlers.__initStatic();
/** JSDoc */


function _installGlobalOnErrorHandler() {
  Object(instrument["a" /* addInstrumentationHandler */])('error', // eslint-disable-next-line @typescript-eslint/no-explicit-any
  data => {
    const [hub, stackParser, attachStacktrace] = getHubAndOptions();

    if (!hub.getIntegration(GlobalHandlers)) {
      return;
    }

    const {
      msg,
      url,
      line,
      column,
      error
    } = data;

    if (shouldIgnoreOnError() || error && error.__sentry_own_request__) {
      return;
    }

    const event = error === undefined && Object(is["l" /* isString */])(msg) ? _eventFromIncompleteOnError(msg, url, line, column) : _enhanceEventWithInitialFrame(eventFromUnknownInput(stackParser, error || msg, undefined, attachStacktrace, false), url, line, column);
    event.level = 'error';
    addMechanismAndCapture(hub, error, event, 'onerror');
  });
}
/** JSDoc */


function _installGlobalOnUnhandledRejectionHandler() {
  Object(instrument["a" /* addInstrumentationHandler */])('unhandledrejection', // eslint-disable-next-line @typescript-eslint/no-explicit-any
  e => {
    const [hub, stackParser, attachStacktrace] = getHubAndOptions();

    if (!hub.getIntegration(GlobalHandlers)) {
      return;
    }

    let error = e; // dig the object of the rejection out of known event types

    try {
      // PromiseRejectionEvents store the object of the rejection under 'reason'
      // see https://developer.mozilla.org/en-US/docs/Web/API/PromiseRejectionEvent
      if ('reason' in e) {
        error = e.reason;
      } // something, somewhere, (likely a browser extension) effectively casts PromiseRejectionEvents
      // to CustomEvents, moving the `promise` and `reason` attributes of the PRE into
      // the CustomEvent's `detail` attribute, since they're not part of CustomEvent's spec
      // see https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent and
      // https://github.com/getsentry/sentry-javascript/issues/2380
      else if ('detail' in e && 'reason' in e.detail) {
        error = e.detail.reason;
      }
    } catch (_oO) {// no-empty
    }

    if (shouldIgnoreOnError() || error && error.__sentry_own_request__) {
      return true;
    }

    const event = Object(is["j" /* isPrimitive */])(error) ? _eventFromRejectionWithPrimitive(error) : eventFromUnknownInput(stackParser, error, undefined, attachStacktrace, true);
    event.level = 'error';
    addMechanismAndCapture(hub, error, event, 'onunhandledrejection');
    return;
  });
}
/**
 * Create an event from a promise rejection where the `reason` is a primitive.
 *
 * @param reason: The `reason` property of the promise rejection
 * @returns An Event object with an appropriate `exception` value
 */


function _eventFromRejectionWithPrimitive(reason) {
  return {
    exception: {
      values: [{
        type: 'UnhandledRejection',
        // String() is needed because the Primitive type includes symbols (which can't be automatically stringified)
        value: `Non-Error promise rejection captured with value: ${String(reason)}`
      }]
    }
  };
}
/**
 * This function creates a stack from an old, error-less onerror handler.
 */
// eslint-disable-next-line @typescript-eslint/no-explicit-any


function _eventFromIncompleteOnError(msg, url, line, column) {
  const ERROR_TYPES_RE = /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i; // If 'message' is ErrorEvent, get real message from inside

  let message = Object(is["e" /* isErrorEvent */])(msg) ? msg.message : msg;
  let name = 'Error';
  const groups = message.match(ERROR_TYPES_RE);

  if (groups) {
    name = groups[1];
    message = groups[2];
  }

  const event = {
    exception: {
      values: [{
        type: name,
        value: message
      }]
    }
  };
  return _enhanceEventWithInitialFrame(event, url, line, column);
}
/** JSDoc */
// eslint-disable-next-line @typescript-eslint/no-explicit-any


function _enhanceEventWithInitialFrame(event, url, line, column) {
  // event.exception
  const e = event.exception = event.exception || {}; // event.exception.values

  const ev = e.values = e.values || []; // event.exception.values[0]

  const ev0 = ev[0] = ev[0] || {}; // event.exception.values[0].stacktrace

  const ev0s = ev0.stacktrace = ev0.stacktrace || {}; // event.exception.values[0].stacktrace.frames

  const ev0sf = ev0s.frames = ev0s.frames || [];
  const colno = isNaN(parseInt(column, 10)) ? undefined : column;
  const lineno = isNaN(parseInt(line, 10)) ? undefined : line;
  const filename = Object(is["l" /* isString */])(url) && url.length > 0 ? url : Object(browser["b" /* getLocationHref */])(); // event.exception.values[0].stacktrace.frames

  if (ev0sf.length === 0) {
    ev0sf.push({
      colno,
      filename,
      function: '?',
      in_app: true,
      lineno
    });
  }

  return event;
}

function globalHandlerLog(type) {
  (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger["c" /* logger */].log(`Global Handler attached: ${type}`);
}

function addMechanismAndCapture(hub, error, event, type) {
  Object(misc["a" /* addExceptionMechanism */])(event, {
    handled: false,
    type
  });
  hub.captureEvent(event, {
    originalException: error
  });
}

function getHubAndOptions() {
  const hub = Object(esm_hub["b" /* getCurrentHub */])();
  const client = hub.getClient();
  const options = client && client.getOptions() || {
    stackParser: () => [],
    attachStacktrace: false
  };
  return [hub, options.stackParser, options.attachStacktrace];
}


// CONCATENATED MODULE: ./node_modules/@sentry/browser/esm/integrations/linkederrors.js



const DEFAULT_KEY = 'cause';
const DEFAULT_LIMIT = 5;
/** Adds SDK info to an event. */

class linkederrors_LinkedErrors {
  /**
   * @inheritDoc
   */
  static __initStatic() {
    this.id = 'LinkedErrors';
  }
  /**
   * @inheritDoc
   */


  __init() {
    this.name = linkederrors_LinkedErrors.id;
  }
  /**
   * @inheritDoc
   */

  /**
   * @inheritDoc
   */

  /**
   * @inheritDoc
   */


  constructor(options = {}) {
    ;

    linkederrors_LinkedErrors.prototype.__init.call(this);

    this._key = options.key || DEFAULT_KEY;
    this._limit = options.limit || DEFAULT_LIMIT;
  }
  /**
   * @inheritDoc
   */


  setupOnce() {
    const client = Object(esm_hub["b" /* getCurrentHub */])().getClient();

    if (!client) {
      return;
    }

    Object(esm_scope["b" /* addGlobalEventProcessor */])((event, hint) => {
      const self = Object(esm_hub["b" /* getCurrentHub */])().getIntegration(linkederrors_LinkedErrors);
      return self ? _handler(client.getOptions().stackParser, self._key, self._limit, event, hint) : event;
    });
  }

}

linkederrors_LinkedErrors.__initStatic();
/**
 * @inheritDoc
 */


function _handler(parser, key, limit, event, hint) {
  if (!event.exception || !event.exception.values || !hint || !Object(is["g" /* isInstanceOf */])(hint.originalException, Error)) {
    return event;
  }

  const linkedErrors = _walkErrorTree(parser, limit, hint.originalException, key);

  event.exception.values = [...linkedErrors, ...event.exception.values];
  return event;
}
/**
 * JSDOC
 */


function _walkErrorTree(parser, limit, error, key, stack = []) {
  if (!Object(is["g" /* isInstanceOf */])(error[key], Error) || stack.length + 1 >= limit) {
    return stack;
  }

  const exception = exceptionFromError(parser, error[key]);
  return _walkErrorTree(parser, limit, error[key], key, [exception, ...stack]);
}


// CONCATENATED MODULE: ./node_modules/@sentry/browser/esm/integrations/dedupe.js

/** Deduplication filter */

class dedupe_Dedupe {
  constructor() {
    dedupe_Dedupe.prototype.__init.call(this);
  }
  /**
   * @inheritDoc
   */


  static __initStatic() {
    this.id = 'Dedupe';
  }
  /**
   * @inheritDoc
   */


  __init() {
    this.name = dedupe_Dedupe.id;
  }
  /**
   * @inheritDoc
   */

  /**
   * @inheritDoc
   */


  setupOnce(addGlobalEventProcessor, getCurrentHub) {
    const eventProcessor = currentEvent => {
      const self = getCurrentHub().getIntegration(dedupe_Dedupe);

      if (self) {
        // Juuust in case something goes wrong
        try {
          if (_shouldDropEvent(currentEvent, self._previousEvent)) {
            (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger["c" /* logger */].warn('Event dropped due to being a duplicate of previously captured event.');
            return null;
          }
        } catch (_oO) {
          return self._previousEvent = currentEvent;
        }

        return self._previousEvent = currentEvent;
      }

      return currentEvent;
    };

    eventProcessor.id = this.name;
    addGlobalEventProcessor(eventProcessor);
  }

}

dedupe_Dedupe.__initStatic();
/** JSDoc */


function _shouldDropEvent(currentEvent, previousEvent) {
  if (!previousEvent) {
    return false;
  }

  if (_isSameMessageEvent(currentEvent, previousEvent)) {
    return true;
  }

  if (_isSameExceptionEvent(currentEvent, previousEvent)) {
    return true;
  }

  return false;
}
/** JSDoc */


function _isSameMessageEvent(currentEvent, previousEvent) {
  const currentMessage = currentEvent.message;
  const previousMessage = previousEvent.message; // If neither event has a message property, they were both exceptions, so bail out

  if (!currentMessage && !previousMessage) {
    return false;
  } // If only one event has a stacktrace, but not the other one, they are not the same


  if (currentMessage && !previousMessage || !currentMessage && previousMessage) {
    return false;
  }

  if (currentMessage !== previousMessage) {
    return false;
  }

  if (!_isSameFingerprint(currentEvent, previousEvent)) {
    return false;
  }

  if (!_isSameStacktrace(currentEvent, previousEvent)) {
    return false;
  }

  return true;
}
/** JSDoc */


function _isSameExceptionEvent(currentEvent, previousEvent) {
  const previousException = _getExceptionFromEvent(previousEvent);

  const currentException = _getExceptionFromEvent(currentEvent);

  if (!previousException || !currentException) {
    return false;
  }

  if (previousException.type !== currentException.type || previousException.value !== currentException.value) {
    return false;
  }

  if (!_isSameFingerprint(currentEvent, previousEvent)) {
    return false;
  }

  if (!_isSameStacktrace(currentEvent, previousEvent)) {
    return false;
  }

  return true;
}
/** JSDoc */


function _isSameStacktrace(currentEvent, previousEvent) {
  let currentFrames = _getFramesFromEvent(currentEvent);

  let previousFrames = _getFramesFromEvent(previousEvent); // If neither event has a stacktrace, they are assumed to be the same


  if (!currentFrames && !previousFrames) {
    return true;
  } // If only one event has a stacktrace, but not the other one, they are not the same


  if (currentFrames && !previousFrames || !currentFrames && previousFrames) {
    return false;
  }

  currentFrames = currentFrames;
  previousFrames = previousFrames; // If number of frames differ, they are not the same

  if (previousFrames.length !== currentFrames.length) {
    return false;
  } // Otherwise, compare the two


  for (let i = 0; i < previousFrames.length; i++) {
    const frameA = previousFrames[i];
    const frameB = currentFrames[i];

    if (frameA.filename !== frameB.filename || frameA.lineno !== frameB.lineno || frameA.colno !== frameB.colno || frameA.function !== frameB.function) {
      return false;
    }
  }

  return true;
}
/** JSDoc */


function _isSameFingerprint(currentEvent, previousEvent) {
  let currentFingerprint = currentEvent.fingerprint;
  let previousFingerprint = previousEvent.fingerprint; // If neither event has a fingerprint, they are assumed to be the same

  if (!currentFingerprint && !previousFingerprint) {
    return true;
  } // If only one event has a fingerprint, but not the other one, they are not the same


  if (currentFingerprint && !previousFingerprint || !currentFingerprint && previousFingerprint) {
    return false;
  }

  currentFingerprint = currentFingerprint;
  previousFingerprint = previousFingerprint; // Otherwise, compare the two

  try {
    return !!(currentFingerprint.join('') === previousFingerprint.join(''));
  } catch (_oO) {
    return false;
  }
}
/** JSDoc */


function _getExceptionFromEvent(event) {
  return event.exception && event.exception.values && event.exception.values[0];
}
/** JSDoc */


function _getFramesFromEvent(event) {
  const exception = event.exception;

  if (exception) {
    try {
      // @ts-ignore Object could be undefined
      return exception.values[0].stacktrace.frames;
    } catch (_oO) {
      return undefined;
    }
  }

  return undefined;
}


// CONCATENATED MODULE: ./node_modules/@sentry/browser/esm/integrations/httpcontext.js


/** HttpContext integration collects information about HTTP request headers */

class httpcontext_HttpContext {
  constructor() {
    httpcontext_HttpContext.prototype.__init.call(this);
  }
  /**
   * @inheritDoc
   */


  static __initStatic() {
    this.id = 'HttpContext';
  }
  /**
   * @inheritDoc
   */


  __init() {
    this.name = httpcontext_HttpContext.id;
  }
  /**
   * @inheritDoc
   */


  setupOnce() {
    Object(esm_scope["b" /* addGlobalEventProcessor */])(event => {
      if (Object(esm_hub["b" /* getCurrentHub */])().getIntegration(httpcontext_HttpContext)) {
        // if none of the information we want exists, don't bother
        if (!helpers_WINDOW.navigator && !helpers_WINDOW.location && !helpers_WINDOW.document) {
          return event;
        } // grab as much info as exists and add it to the event


        const url = event.request && event.request.url || helpers_WINDOW.location && helpers_WINDOW.location.href;
        const {
          referrer
        } = helpers_WINDOW.document || {};
        const {
          userAgent
        } = helpers_WINDOW.navigator || {};
        const headers = { ...(event.request && event.request.headers),
          ...(referrer && {
            Referer: referrer
          }),
          ...(userAgent && {
            'User-Agent': userAgent
          })
        };
        const request = { ...(url && {
            url
          }),
          headers
        };
        return { ...event,
          request
        };
      }

      return event;
    });
  }

}

httpcontext_HttpContext.__initStatic();


// CONCATENATED MODULE: ./node_modules/@sentry/browser/esm/transports/utils.js


let cachedFetchImpl = undefined;
/**
 * A special usecase for incorrectly wrapped Fetch APIs in conjunction with ad-blockers.
 * Whenever someone wraps the Fetch API and returns the wrong promise chain,
 * this chain becomes orphaned and there is no possible way to capture it's rejections
 * other than allowing it bubble up to this very handler. eg.
 *
 * const f = window.fetch;
 * window.fetch = function () {
 *   const p = f.apply(this, arguments);
 *
 *   p.then(function() {
 *     console.log('hi.');
 *   });
 *
 *   return p;
 * }
 *
 * `p.then(function () { ... })` is producing a completely separate promise chain,
 * however, what's returned is `p` - the result of original `fetch` call.
 *
 * This mean, that whenever we use the Fetch API to send our own requests, _and_
 * some ad-blocker blocks it, this orphaned chain will _always_ reject,
 * effectively causing another event to be captured.
 * This makes a whole process become an infinite loop, which we need to somehow
 * deal with, and break it in one way or another.
 *
 * To deal with this issue, we are making sure that we _always_ use the real
 * browser Fetch API, instead of relying on what `window.fetch` exposes.
 * The only downside to this would be missing our own requests as breadcrumbs,
 * but because we are already not doing this, it should be just fine.
 *
 * Possible failed fetch error messages per-browser:
 *
 * Chrome:  Failed to fetch
 * Edge:    Failed to Fetch
 * Firefox: NetworkError when attempting to fetch resource
 * Safari:  resource blocked by content blocker
 */

function getNativeFetchImplementation() {
  if (cachedFetchImpl) {
    return cachedFetchImpl;
  }
  /* eslint-disable @typescript-eslint/unbound-method */
  // Fast path to avoid DOM I/O


  if (Object(supports["a" /* isNativeFetch */])(helpers_WINDOW.fetch)) {
    return cachedFetchImpl = helpers_WINDOW.fetch.bind(helpers_WINDOW);
  }

  const document = helpers_WINDOW.document;
  let fetchImpl = helpers_WINDOW.fetch; // eslint-disable-next-line deprecation/deprecation

  if (document && typeof document.createElement === 'function') {
    try {
      const sandbox = document.createElement('iframe');
      sandbox.hidden = true;
      document.head.appendChild(sandbox);
      const contentWindow = sandbox.contentWindow;

      if (contentWindow && contentWindow.fetch) {
        fetchImpl = contentWindow.fetch;
      }

      document.head.removeChild(sandbox);
    } catch (e) {
      (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger["c" /* logger */].warn('Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ', e);
    }
  }

  return cachedFetchImpl = fetchImpl.bind(helpers_WINDOW);
  /* eslint-enable @typescript-eslint/unbound-method */
}
/** Clears cached fetch impl */


function clearCachedFetchImplementation() {
  cachedFetchImpl = undefined;
}


// CONCATENATED MODULE: ./node_modules/@sentry/browser/esm/transports/fetch.js



/**
 * Creates a Transport that uses the Fetch API to send events to Sentry.
 */

function makeFetchTransport(options, nativeFetch = getNativeFetchImplementation()) {
  function makeRequest(request) {
    const requestOptions = {
      body: request.body,
      method: 'POST',
      referrerPolicy: 'origin',
      headers: options.headers,
      // Outgoing requests are usually cancelled when navigating to a different page, causing a "TypeError: Failed to
      // fetch" error and sending a "network_error" client-outcome - in Chrome, the request status shows "(cancelled)".
      // The `keepalive` flag keeps outgoing requests alive, even when switching pages. We want this since we're
      // frequently sending events right before the user is switching pages (eg. whenfinishing navigation transactions).
      // Gotchas:
      // - `keepalive` isn't supported by Firefox
      // - As per spec (https://fetch.spec.whatwg.org/#http-network-or-cache-fetch), a request with `keepalive: true`
      //   and a content length of > 64 kibibytes returns a network error. We will therefore only activate the flag when
      //   we're below that limit.
      keepalive: request.body.length <= 65536,
      ...options.fetchOptions
    };

    try {
      return nativeFetch(options.url, requestOptions).then(response => ({
        statusCode: response.status,
        headers: {
          'x-sentry-rate-limits': response.headers.get('X-Sentry-Rate-Limits'),
          'retry-after': response.headers.get('Retry-After')
        }
      }));
    } catch (e) {
      clearCachedFetchImplementation();
      return Object(syncpromise["b" /* rejectedSyncPromise */])(e);
    }
  }

  return Object(base["a" /* createTransport */])(options, makeRequest);
}


// CONCATENATED MODULE: ./node_modules/@sentry/browser/esm/transports/xhr.js


/**
 * The DONE ready state for XmlHttpRequest
 *
 * Defining it here as a constant b/c XMLHttpRequest.DONE is not always defined
 * (e.g. during testing, it is `undefined`)
 *
 * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/readyState}
 */

const XHR_READYSTATE_DONE = 4;
/**
 * Creates a Transport that uses the XMLHttpRequest API to send events to Sentry.
 */

function makeXHRTransport(options) {
  function makeRequest(request) {
    return new syncpromise["a" /* SyncPromise */]((resolve, reject) => {
      const xhr = new XMLHttpRequest();
      xhr.onerror = reject;

      xhr.onreadystatechange = () => {
        if (xhr.readyState === XHR_READYSTATE_DONE) {
          resolve({
            statusCode: xhr.status,
            headers: {
              'x-sentry-rate-limits': xhr.getResponseHeader('X-Sentry-Rate-Limits'),
              'retry-after': xhr.getResponseHeader('Retry-After')
            }
          });
        }
      };

      xhr.open('POST', options.url);

      for (const header in options.headers) {
        if (Object.prototype.hasOwnProperty.call(options.headers, header)) {
          xhr.setRequestHeader(header, options.headers[header]);
        }
      }

      xhr.send(request.body);
    });
  }

  return Object(base["a" /* createTransport */])(options, makeRequest);
}


// CONCATENATED MODULE: ./node_modules/@sentry/browser/esm/sdk.js















const defaultIntegrations = [new esm["a" /* Integrations */].InboundFilters(), new esm["a" /* Integrations */].FunctionToString(), new trycatch_TryCatch(), new breadcrumbs_Breadcrumbs(), new GlobalHandlers(), new linkederrors_LinkedErrors(), new dedupe_Dedupe(), new httpcontext_HttpContext()];
/**
 * The Sentry Browser SDK Client.
 *
 * To use this SDK, call the {@link init} function as early as possible when
 * loading the web page. To set context information or send manual events, use
 * the provided methods.
 *
 * @example
 *
 * ```
 *
 * import { init } from '@sentry/browser';
 *
 * init({
 *   dsn: '__DSN__',
 *   // ...
 * });
 * ```
 *
 * @example
 * ```
 *
 * import { configureScope } from '@sentry/browser';
 * configureScope((scope: Scope) => {
 *   scope.setExtra({ battery: 0.7 });
 *   scope.setTag({ user_mode: 'admin' });
 *   scope.setUser({ id: '4711' });
 * });
 * ```
 *
 * @example
 * ```
 *
 * import { addBreadcrumb } from '@sentry/browser';
 * addBreadcrumb({
 *   message: 'My Breadcrumb',
 *   // ...
 * });
 * ```
 *
 * @example
 *
 * ```
 *
 * import * as Sentry from '@sentry/browser';
 * Sentry.captureMessage('Hello, world!');
 * Sentry.captureException(new Error('Good bye'));
 * Sentry.captureEvent({
 *   message: 'Manual',
 *   stacktrace: [
 *     // ...
 *   ],
 * });
 * ```
 *
 * @see {@link BrowserOptions} for documentation on configuration options.
 */

function init(options = {}) {
  if (options.defaultIntegrations === undefined) {
    options.defaultIntegrations = defaultIntegrations;
  }

  if (options.release === undefined) {
    // This supports the variable that sentry-webpack-plugin injects
    if (helpers_WINDOW.SENTRY_RELEASE && helpers_WINDOW.SENTRY_RELEASE.id) {
      options.release = helpers_WINDOW.SENTRY_RELEASE.id;
    }
  }

  if (options.autoSessionTracking === undefined) {
    options.autoSessionTracking = true;
  }

  if (options.sendClientReports === undefined) {
    options.sendClientReports = true;
  }

  const clientOptions = { ...options,
    stackParser: Object(stacktrace["c" /* stackParserFromStackParserOptions */])(options.stackParser || defaultStackParser),
    integrations: Object(integration["a" /* getIntegrationsToSetup */])(options),
    transport: options.transport || (Object(supports["b" /* supportsFetch */])() ? makeFetchTransport : makeXHRTransport)
  };
  Object(sdk["a" /* initAndBind */])(client_BrowserClient, clientOptions);

  if (options.autoSessionTracking) {
    startSessionTracking();
  }
}
/**
 * Present the user with a report dialog.
 *
 * @param options Everything is optional, we try to fetch all info need from the global scope.
 */


function showReportDialog(options = {}, hub = Object(esm_hub["b" /* getCurrentHub */])()) {
  // doesn't work without a document (React Native)
  if (!helpers_WINDOW.document) {
    (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger["c" /* logger */].error('Global document not defined in showReportDialog call');
    return;
  }

  const {
    client,
    scope
  } = hub.getStackTop();
  const dsn = options.dsn || client && client.getDsn();

  if (!dsn) {
    (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger["c" /* logger */].error('DSN not configured for showReportDialog call');
    return;
  }

  if (scope) {
    options.user = { ...scope.getUser(),
      ...options.user
    };
  }

  if (!options.eventId) {
    options.eventId = hub.lastEventId();
  }

  const script = helpers_WINDOW.document.createElement('script');
  script.async = true;
  script.src = Object(api["b" /* getReportDialogEndpoint */])(dsn, options);

  if (options.onLoad) {
    // eslint-disable-next-line @typescript-eslint/unbound-method
    script.onload = options.onLoad;
  }

  const injectionPoint = helpers_WINDOW.document.head || helpers_WINDOW.document.body;

  if (injectionPoint) {
    injectionPoint.appendChild(script);
  } else {
    (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger["c" /* logger */].error('Not injecting report dialog. No injection point found in HTML');
  }
}
/**
 * This is the getter for lastEventId.
 *
 * @returns The last event id of a captured event.
 */


function lastEventId() {
  return Object(esm_hub["b" /* getCurrentHub */])().lastEventId();
}
/**
 * This function is here to be API compatible with the loader.
 * @hidden
 */


function forceLoad() {// Noop
}
/**
 * This function is here to be API compatible with the loader.
 * @hidden
 */


function onLoad(callback) {
  callback();
}
/**
 * Call `flush()` on the current client, if there is one. See {@link Client.flush}.
 *
 * @param timeout Maximum time in ms the client should wait to flush its event queue. Omitting this parameter will cause
 * the client to wait until all events are sent before resolving the promise.
 * @returns A promise which resolves to `true` if the queue successfully drains before the timeout, or `false` if it
 * doesn't (or if there's no client defined).
 */


function flush(timeout) {
  const client = Object(esm_hub["b" /* getCurrentHub */])().getClient();

  if (client) {
    return client.flush(timeout);
  }

  (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger["c" /* logger */].warn('Cannot flush events. No client defined.');
  return Object(syncpromise["c" /* resolvedSyncPromise */])(false);
}
/**
 * Call `close()` on the current client, if there is one. See {@link Client.close}.
 *
 * @param timeout Maximum time in ms the client should wait to flush its event queue before shutting down. Omitting this
 * parameter will cause the client to wait until all events are sent before disabling itself.
 * @returns A promise which resolves to `true` if the queue successfully drains before the timeout, or `false` if it
 * doesn't (or if there's no client defined).
 */


function sdk_close(timeout) {
  const client = Object(esm_hub["b" /* getCurrentHub */])().getClient();

  if (client) {
    return client.close(timeout);
  }

  (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger["c" /* logger */].warn('Cannot flush events and disable SDK. No client defined.');
  return Object(syncpromise["c" /* resolvedSyncPromise */])(false);
}
/**
 * Wrap code within a try/catch block so the SDK is able to capture errors.
 *
 * @param fn A function to wrap.
 *
 * @returns The result of wrapped function call.
 */
// eslint-disable-next-line @typescript-eslint/no-explicit-any


function sdk_wrap(fn) {
  return wrap(fn)();
}

function startSessionOnHub(hub) {
  hub.startSession({
    ignoreDuration: true
  });
  hub.captureSession();
}
/**
 * Enable automatic Session Tracking for the initial page load.
 */


function startSessionTracking() {
  if (typeof helpers_WINDOW.document === 'undefined') {
    (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger["c" /* logger */].warn('Session tracking in non-browser environment with @sentry/browser is not supported.');
    return;
  }

  const hub = Object(esm_hub["b" /* getCurrentHub */])(); // The only way for this to be false is for there to be a version mismatch between @sentry/browser (>= 6.0.0) and
  // @sentry/hub (< 5.27.0). In the simple case, there won't ever be such a mismatch, because the two packages are
  // pinned at the same version in package.json, but there are edge cases where it's possible. See
  // https://github.com/getsentry/sentry-javascript/issues/3207 and
  // https://github.com/getsentry/sentry-javascript/issues/3234 and
  // https://github.com/getsentry/sentry-javascript/issues/3278.

  if (!hub.captureSession) {
    return;
  } // The session duration for browser sessions does not track a meaningful
  // concept that can be used as a metric.
  // Automatically captured sessions are akin to page views, and thus we
  // discard their duration.


  startSessionOnHub(hub); // We want to create a session for every navigation as well

  Object(instrument["a" /* addInstrumentationHandler */])('history', ({
    from,
    to
  }) => {
    // Don't create an additional session for the initial route or if the location did not change
    if (!(from === undefined || from === to)) {
      startSessionOnHub(Object(esm_hub["b" /* getCurrentHub */])());
    }
  });
}


// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/utils/SentryUtils.ts








class SentryUtils_SentryUtils {
    constructor() {
        this.enabled = false;
        this.tracesSampleRate = 0.35;
        this.sampleRate = 0.35;
        /**
         * Issues associated with this DSN can be viewed at https://sentry.io/organizations/adobe-ccac/issues/?project=6710704
         */
        this.dsn = 'https://b747adb15d704948ba42d096df69b2c0@o1383653.ingest.sentry.io/6710704';
        this._initSentry = () => {
            var _a;
            SharedStore["d" /* sharedStore */].off(SharedStore["c" /* NAVIGATION_DATA_AVAILABLE */], this._initSentry);
            this.enabled = SharedStore["d" /* sharedStore */].hasSophiaFeature(`sentry-enable-${Host["a" /* default */].id}`);
            if (!this.enabled) {
                return;
            }
            this.tracesSampleRate = SharedStore["d" /* sharedStore */].hasSophiaFeature('sentry-highTransactionCaptureRate')
                ? 0.7
                : this.tracesSampleRate;
            Settings["b" /* settings */].logger.log(`[Sentry.tracesSampleRate] ${this.tracesSampleRate}`);
            this.sampleRate = SharedStore["d" /* sharedStore */].hasSophiaFeature('sentry-highErrorCaptureRate')
                ? 0.7
                : this.sampleRate;
            Settings["b" /* settings */].logger.log(`[Sentry.sampleRate] ${this.sampleRate}`);
            const { imsData } = SharedStore["d" /* sharedStore */];
            this._browserClient = new client_BrowserClient({
                dsn: this.dsn,
                integrations: [
                    ...defaultIntegrations,
                    new browsertracing_BrowserTracing({
                        // CCPROJ-9417: Sentry's XHR tracing results in extra headers, which incurs
                        // a preflight request that may not be supported by some remote servers
                        traceXHR: false,
                    }),
                ],
                transport: makeCustomFetchTransport,
                stackParser: defaultStackParser,
                environment: imsData.environment,
                release: version_default.a,
                initialScope: {
                    tags: {
                        'host.id': Host["a" /* default */].id,
                        'host.name': Host["a" /* default */].name,
                        'host.version': Host["a" /* default */].version,
                        'host.platform': Host["a" /* default */].platform,
                        'host.os_version': Host["a" /* default */].platformVersion,
                        'host.locale': this._projectsClient.intl.appLanguage,
                        'spaces.version': version_default.a,
                        'spaces.locale': this._projectsClient.intl.locale,
                        'user.agent': navigator.userAgent,
                        'user.guid': imsData.userId,
                        'user.account_type': imsData.accountType,
                        'user.subscription_type': imsData.subscriptionType,
                        'user.service_level': imsData.isPaid ? 'paid' : 'trial',
                    },
                    user: { id: imsData.userId },
                },
                ignoreErrors: [
                    /TypeError: Cannot read properties of undefined \(reading 'height'\).*at UxpTabList\.onResize/gs,
                ],
                beforeSend(event, eventHint) {
                    return event;
                },
                beforeBreadcrumb(breadcrumb, hint) {
                    // custom message to show in the Breadcrumbs section
                    try {
                        if (breadcrumb.category == 'ui.click') {
                            const { target } = hint === null || hint === void 0 ? void 0 : hint.event;
                            const dataTestId = target.dataset.testId;
                            const tagInnerText = target.innerText;
                            const defafultMessage = breadcrumb.message;
                            breadcrumb.message = '';
                            if (dataTestId) {
                                breadcrumb.message += `${dataTestId} `;
                            }
                            if (tagInnerText) {
                                breadcrumb.message += `>> ${tagInnerText} `;
                            }
                            breadcrumb.message += `[${defafultMessage}]`;
                        }
                        // custom message to show in the issue's JSON file
                        else if (breadcrumb.category === 'xhr' || breadcrumb.category === 'fetch') {
                            const xhr = hint === null || hint === void 0 ? void 0 : hint.xhr;
                            const input = hint === null || hint === void 0 ? void 0 : hint.input;
                            const requestId = (_requestId) => {
                                if (_requestId) {
                                    breadcrumb.message = `x-request-id: ${_requestId}`;
                                }
                            };
                            const postData = (_postData) => {
                                if (_postData) {
                                    breadcrumb.message += ` [[ postData => ${_postData} ]]`;
                                }
                            };
                            // UXP
                            if (xhr && xhr._cdtXHR) {
                                requestId(xhr._cdtXHR.headers['x-request-id']);
                                postData(xhr._cdtXHR.postData);
                            }
                            // Web
                            else if (input && input.length >= 2) {
                                if (input[1].headers) {
                                    requestId(input[1].headers['X-Request-Id']);
                                    postData(input[1].body);
                                }
                                // ingest calls
                                else {
                                    requestId('none');
                                }
                            }
                        }
                    }
                    catch (e) {
                        Settings["b" /* settings */].logger.error(e);
                    }
                    return breadcrumb;
                },
                // ErrorCaptureRate: % of samples sent for error monitoring
                sampleRate: this.sampleRate,
                // TransactionCaptureRate: % of transactions sent for performance monitoring
                tracesSampleRate: this.tracesSampleRate,
            });
            const scope = new esm_Scope();
            this._hub = new esm_Hub(this._browserClient, scope);
            (_a = this._hub.getScope()) === null || _a === void 0 ? void 0 : _a.update(this._browserClient.getOptions().initialScope);
            makeMain(this._hub);
            Settings["b" /* settings */].logger.log(`[Spaces v${version_default.a}] sentry.io initialized...`);
        };
    }
    initSentry(projectsClient) {
        const isLocal = "production" === 'development';
        if (isLocal) {
            Settings["b" /* settings */].logger.log(`[${"production"}] skipped sentry.io initialization`);
            return;
        }
        this._projectsClient = projectsClient;
        SharedStore["d" /* sharedStore */].on(SharedStore["c" /* NAVIGATION_DATA_AVAILABLE */], this._initSentry);
    }
    /**
     * Breadcrumbs are stored in the current hub's scope only. If this hub is not the
     * current one, then we update this hub's scope by merging it with the one from
     * the current hub, that way we could get access to the breadcrumbs saved in there
     */
    mergeScopeWithCurrentHubIfNeeded() {
        if (esm_getCurrentHub() !== this._hub) {
            Settings["b" /* settings */].logger.log('[sentryUtils] mergeScopeWithCurrentHubIfNeeded');
            esm_getCurrentHub().withScope(currentHubScope => {
                const thisHubScope = this._hub.getScope();
                thisHubScope === null || thisHubScope === void 0 ? void 0 : thisHubScope.update({ ...currentHubScope, ...thisHubScope });
            });
        }
    }
    /**
     * Captures an exception event and sends it to Sentry
     *
     * @param error The exception itself
     * @param errorInfo Additional scope data such as tags to associate with this event
     * @returns The event id
     */
    captureException(error, errorInfo) {
        Settings["b" /* settings */].logger.error(error);
        if (!this.enabled) {
            return null;
        }
        const eventId = this._hub.captureException(error, { captureContext: errorInfo });
        return eventId;
    }
    get browserClient() {
        if (!this._browserClient) {
            throw new Error('sentryUtils.browserClient has not yet been initialized');
        }
        return this._browserClient;
    }
    get hub() {
        if (!this._hub) {
            throw new Error('sentryUtils.hub has not yet been initialized');
        }
        return this._hub;
    }
}
const sentryUtils = new SentryUtils_SentryUtils();

/**
 * If this hub is not the current one implying events will be delivered to Sentry via
 * the other hub's browser client DSN. Use this custom transport to change the envelope
 * endpoint in that case so that events can be sent using this hub's client DSN instead
 */
function makeCustomFetchTransport(options) {
    function makeRequest(request) {
        const requestOptions = {
            body: request.body,
            method: 'POST',
            referrerPolicy: 'origin',
            keepalive: request.body.length <= 65536,
        };
        // Here we update our envelop endpoint as well as hub scope if needed
        const getUrl = () => {
            if (esm_getCurrentHub() !== sentryUtils.hub) {
                sentryUtils.mergeScopeWithCurrentHubIfNeeded();
                const dsnComponent = sentryUtils.browserClient.getDsn();
                const url = Object(api["a" /* getEnvelopeEndpointWithUrlEncodedAuth */])(dsnComponent, sentryUtils.browserClient.getOptions());
                return url;
            }
            return options.url;
        };
        return fetch(getUrl(), requestOptions).then(response => ({
            statusCode: response.status,
            headers: {
                'x-sentry-rate-limits': response.headers.get('X-Sentry-Rate-Limits'),
                'retry-after': response.headers.get('Retry-After'),
            },
        }));
    }
    // `createTransport` takes care of rate limiting and flushing
    return Object(base["a" /* createTransport */])(options, makeRequest);
}


/***/ }),

/***/ "mm/P":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ContentType; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return Subcategory; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return Subtype; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return Type; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return Workflow; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return EnvApiName; });
/* unused harmony export ingestDecorator */
/* unused harmony export DIC_HEADER_NAME */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return ProjectAnalytics; });
/* unused harmony export getBaseAnalyticsData */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "j", function() { return trackForEach; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "i", function() { return fillErrorData; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return fillError; });
/* harmony import */ var detect_browser__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("e0ae");
/* harmony import */ var uuid__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("EcEN");
/* harmony import */ var uuid__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(uuid__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _ccx_public_ccx_ingest__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("j6Ri");
/* harmony import */ var _ccx_public_ccx_ingest__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_ccx_public_ccx_ingest__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("KAOT");
/* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_version__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _utils_UXPUtils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("LbGp");
/* harmony import */ var _hosts_Host__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("Dy/p");
/* harmony import */ var _utils_constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("YVc3");
/* harmony import */ var _performance__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("P5RH");
/* harmony import */ var _stores_SharedStore__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("jmEq");
/* harmony import */ var _stores_Settings__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__("5u1M");
/* harmony import */ var _SpacesError__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__("R5sx");
/* harmony import */ var _interfaces_IIMSData__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__("AAv5");












var ContentType;
(function (ContentType) {
    ContentType["Library"] = "library";
    ContentType["WebLink"] = "web-links";
    ContentType["Canvas"] = "canvas";
    ContentType["File"] = "files";
})(ContentType || (ContentType = {}));
var Subcategory;
(function (Subcategory) {
    Subcategory["Actions"] = "Actions";
    Subcategory["AddContributors"] = "Add Contributors";
    Subcategory["AddResourceModal"] = "Add Resource Modal";
    Subcategory["ccfiles"] = "ccfiles";
    Subcategory["CantAddLibraryModal"] = "Cant Add Library Modal";
    Subcategory["CantOpenModal"] = "Cant Open Modal";
    Subcategory["Confirmation"] = "Confirmation";
    Subcategory["Copy"] = "Copy";
    Subcategory["CopyToModal"] = "Copy To Modal";
    Subcategory["CreateProjectModal"] = "Create Project Modal";
    Subcategory["Delete"] = "Delete";
    Subcategory["Edit"] = "Edit";
    Subcategory["Canvases"] = "Canvases";
    Subcategory["Libraries"] = "Libraries";
    Subcategory["MyProjects"] = "My Projects";
    Subcategory["Navigation"] = "Navigation";
    Subcategory["Outputs"] = "Outputs";
    Subcategory["Project"] = "Project";
    Subcategory["ProjectInfo"] = "Project Info";
    Subcategory["ProjectInfoModalViewOnly"] = "Project Info Modal View Only";
    Subcategory["ProjectInfoModalWithEdit"] = "Project Info Modal With Edit";
    Subcategory["ProjectMenu"] = "Project Menu";
    Subcategory["Space"] = "Space";
    Subcategory["SuccessToast"] = "Success Toast";
    Subcategory["Unable"] = "Unable";
    Subcategory["WorkingFiles"] = "Working Files";
    Subcategory["TeamsSidebar"] = "Teams Sidebar";
    Subcategory["Resource"] = "Resource";
})(Subcategory || (Subcategory = {}));
var Subtype;
(function (Subtype) {
    Subtype["add"] = "add";
    Subtype["addFiles"] = "add-files";
    Subtype["addLibraries"] = "add-libraries";
    Subtype["cancel"] = "cancel";
    Subtype["cantAddLibraryModal"] = "cant-add-library-modal";
    Subtype["close"] = "close";
    Subtype["confirmationDialog"] = "confirmation-dialog";
    Subtype["copy"] = "copy";
    Subtype["copyFiles"] = "copy-files";
    Subtype["create"] = "create";
    Subtype["createComplete"] = "create-complete";
    Subtype["delete"] = "delete";
    Subtype["deleteProject"] = "delete-project";
    Subtype["dismiss"] = "dismiss";
    Subtype["edit"] = "edit";
    Subtype["follow"] = "follow";
    Subtype["followProject"] = "follow-project";
    Subtype["grid"] = "grid";
    Subtype["invite"] = "invite";
    Subtype["leave"] = "leave";
    Subtype["leaveProject"] = "leave-project";
    Subtype["canvasesTab"] = "canvases-tab";
    Subtype["canvasesTabComplete"] = "canvases-tab-complete";
    Subtype["canvasesPage"] = "canvases-page";
    Subtype["canvasesPageEmptyState"] = "canvases-page-empty-state";
    Subtype["librariesTab"] = "libraries-tab";
    Subtype["librariesTabComplete"] = "libraries-tab-complete";
    Subtype["librariesPage"] = "libraries-page";
    Subtype["librariesPageEmptyState"] = "libraries-page-empty-state";
    Subtype["libraryCard"] = "library-card";
    Subtype["list"] = "list";
    Subtype["modal"] = "modal";
    Subtype["move"] = "move";
    Subtype["myProjectsPage"] = "my-projects-page";
    Subtype["myProjectsPageComplete"] = "my-projects-page-complete";
    Subtype["myProjectsPageEmptyState"] = "my-projects-page-empty-state";
    Subtype["myProjectsPageOffline"] = "my-projects-page-offline";
    Subtype["navigation"] = "navigation";
    Subtype["newProject"] = "new-project";
    Subtype["offlineToast"] = "offline-toast";
    Subtype["onlyContributorLeft"] = "only-contributor-left";
    Subtype["ok"] = "ok";
    Subtype["openMenu"] = "open-menu";
    Subtype["openProject"] = "open-project";
    Subtype["outputsTab"] = "outputs-tab";
    Subtype["outputsTabComplete"] = "outputs-tab-complete";
    Subtype["projectCard"] = "project-card";
    Subtype["projectDescription"] = "project-description";
    Subtype["projectDescriptionField"] = "project-description-field";
    Subtype["projectInfo"] = "project-info";
    Subtype["projectMenu"] = "project-menu";
    Subtype["projectName"] = "project-name";
    Subtype["projectNameField"] = "project-name-field";
    Subtype["projects"] = "projects";
    Subtype["read"] = "read";
    Subtype["removeLibrary"] = "remove-library";
    Subtype["restore"] = "restore";
    Subtype["save"] = "save";
    Subtype["saveComplete"] = "save-complete";
    Subtype["sortBy"] = "sort-by";
    Subtype["space"] = "space";
    Subtype["successToast"] = "success-toast";
    Subtype["team"] = "team";
    Subtype["undo"] = "undo";
    Subtype["unfollow"] = "unfollow";
    Subtype["unfollowProject"] = "unfollow-project";
    Subtype["update"] = "update";
    Subtype["workingFileCard"] = "working-file-card";
    Subtype["workingFilesPage"] = "working-files-page";
    Subtype["workingFilesPageEmptyState"] = "working-files-page-empty-state";
    Subtype["workingFilesTab"] = "working-files-tab";
    Subtype["workingFilesTabComplete"] = "working-files-tab-complete";
})(Subtype || (Subtype = {}));
var Type;
(function (Type) {
    Type["click"] = "click";
    Type["error"] = "error";
    Type["open"] = "open";
    Type["render"] = "render";
    Type["success"] = "success";
})(Type || (Type = {}));
/**
 * String representations of different SDM Workflows
 */
var Workflow;
(function (Workflow) {
    Workflow["AddLibrary"] = "Add Library";
    Workflow["Asset"] = "Asset-Operation";
    Workflow["CloudDocuments"] = "Cloud Documents";
    Workflow["Contributors"] = "Contributors";
    Workflow["CopyFiles"] = "Copy Files";
    Workflow["CreateProject"] = "Create Project";
    Workflow["DeleteFiles"] = "Delete Files";
    Workflow["DeleteProject"] = "Delete Project";
    Workflow["Document"] = "Document-Operation";
    Workflow["Folder"] = "Folder-Operation";
    Workflow["LeaveProject"] = "Leave Project";
    Workflow["Canvases"] = "Canvases";
    Workflow["Libraries"] = "Libraries";
    Workflow["Navigate"] = "Navigate";
    Workflow["Outputs"] = "Outputs";
    Workflow["Project1Up"] = "Project 1-Up";
    Workflow["Projects"] = "Projects";
    Workflow["ProjectInfo"] = "Project Info";
    Workflow["RestoreSpace"] = "Restore Space";
    Workflow["Spaces"] = "Spaces";
    Workflow["SpaceActions"] = "SpaceActions";
    Workflow["WorkingFiles"] = "Working Files";
    Workflow["Teams"] = "Teams";
    Workflow["TeamsSidebar"] = "Teams Sidebar";
})(Workflow || (Workflow = {}));
var EnvApiName;
(function (EnvApiName) {
    EnvApiName["CONST_SPACE_ID"] = "{SPACE_ID}";
    EnvApiName["CONST_FOLDER_URN"] = "{FOLDER_URN}";
    EnvApiName["CONST_FILE_NAME"] = "{FILE_NAME}";
    EnvApiName["LIBRARY_LIST"] = "/api/v1/projects/{SPACE_ID}/libraries?orderBy=+name";
    EnvApiName["LIBRARY_ADD"] = "/api/v1/projects/{SPACE_ID}/libraries/:batch";
    EnvApiName["LIBRARY_DELETE"] = "/api/v1/projects/{SPACE_ID}/libraries/:batch";
    EnvApiName["WEB_LINK_ADD"] = "/weblink/{FOLDER_URN}";
    EnvApiName["RESOURCE_DELETE"] = "/content/directory/ops";
    EnvApiName["CANVAS_ADD"] = "/documents";
    EnvApiName["FILE_ADD"] = "/content/storage/id/{FOLDER_URN}/:create?path={FILE_NAME}";
    EnvApiName["FILE_DELETE"] = "/content/directory/ops";
})(EnvApiName || (EnvApiName = {}));
const ingestDecorator = Object(_ccx_public_ccx_ingest__WEBPACK_IMPORTED_MODULE_2__["ccxIngest"])(_utils_constants__WEBPACK_IMPORTED_MODULE_6__[/* INGEST_PROJECT_KEY */ "l"]);
const DIC_HEADER_NAME = 'x-dunamis-ic';
const UNKNOWN = 'unknown';
function scaffoldEvent(subcategory, subtype, type, workflow) {
    return { event: { subcategory, subtype, type, workflow } };
}
class ProjectAnalytics {
    static resetAnalyticsController() {
        this.ingestController = undefined;
        this.previousConfig = undefined;
    }
    static ensureAnalyticsEnabled(enable, ingestContextJson, ingestProjectKey) {
        var _a, _b;
        this.globalAnalyticsEnabled = enable;
        const { imsData } = _stores_SharedStore__WEBPACK_IMPORTED_MODULE_8__[/* sharedStore */ "d"];
        const env = imsData.environment;
        this.userAccountType = imsData.accountType;
        const userId = imsData.userId;
        if (!env || !userId) {
            this.resetAnalyticsController();
            return;
        }
        const apiKey = (_a = _stores_SharedStore__WEBPACK_IMPORTED_MODULE_8__[/* sharedStore */ "d"].config) === null || _a === void 0 ? void 0 : _a.INGEST_KEY;
        const locale = _stores_SharedStore__WEBPACK_IMPORTED_MODULE_8__[/* sharedStore */ "d"].locale;
        const isPaid = (_b = imsData.isPaid) !== null && _b !== void 0 ? _b : false;
        const newConfig = JSON.stringify({ userId, locale, isPaid, env, apiKey, ingestProjectKey });
        if (newConfig === this.previousConfig) {
            // nothing changed, no point in recreating the controller.
            return;
        }
        this.previousConfig = newConfig;
        this.ingestController = new _ccx_public_ccx_ingest__WEBPACK_IMPORTED_MODULE_2__["ccxController"]({
            allowNoToken: true,
            apiKey,
            env,
            data: getBaseAnalyticsData({ userId, locale, isPaid }),
            maxQueuedEvents: 500,
            debounce: 5000,
            product: _version__WEBPACK_IMPORTED_MODULE_3___default.a,
            // Over the time the default constant should be removed and
            // ingestProjectKey should be provided by host app
            project: ingestProjectKey ? ingestProjectKey : _utils_constants__WEBPACK_IMPORTED_MODULE_6__[/* INGEST_PROJECT_KEY */ "l"],
        });
        if (ingestContextJson) {
            try {
                this.ingestContext = JSON.parse(ingestContextJson);
            }
            catch (e) {
                _stores_Settings__WEBPACK_IMPORTED_MODULE_9__[/* settings */ "b"].logger.warn(`Error while parsing Dunamis Ingest Context = ${ingestContextJson}`, e);
            }
        }
    }
    static async fireEvent(data) {
        // Bypass global analytics enabled flag where workflow is Spaces and user is Type3 user
        if (this.globalAnalyticsEnabled || this.isSpacesEventForType3User(data)) {
            ProjectAnalytics.fillEmptyErrorFields(data);
            if (this.ingestContext) {
                ProjectAnalytics.addIngestContext(data);
            }
            if (this.ingestController) {
                measureSLAMetric(data);
                try {
                    await this.ingestController.fireEvent(data);
                }
                catch (e) {
                    _stores_Settings__WEBPACK_IMPORTED_MODULE_9__[/* settings */ "b"].logger.warn('Exception ingestController.fireEvent', e);
                }
            }
        }
    }
    static fillEmptyErrorFields(data) {
        var _a;
        if ((data === null || data === void 0 ? void 0 : data.event) && ((_a = data.event) === null || _a === void 0 ? void 0 : _a.type) === Type.error) {
            if (!data.event.error_code) {
                data.event['error_code'] = UNKNOWN;
            }
            if (!data.event.error_type) {
                data.event['error_type'] = UNKNOWN;
            }
            if (!data.event.error_desc) {
                data.event['error_desc'] = UNKNOWN;
            }
        }
    }
    static isEnabled() {
        return !!this.ingestController;
    }
    static getIngestContext() {
        return JSON.stringify(this.ingestContext);
    }
    static addIngestContext(data) {
        var _a, _b, _c, _d, _e, _f, _g;
        if (this.ingestContext) {
            data.context = this.ingestContext.context;
            if ((_a = this.ingestContext.context) === null || _a === void 0 ? void 0 : _a.params) {
                let params = this.ingestContext.context.params;
                if (!data.source) {
                    data.source = {};
                }
                data.source.name = (_b = params.source) === null || _b === void 0 ? void 0 : _b.name;
                data.source.platform = (_c = params.source) === null || _c === void 0 ? void 0 : _c.platform;
                data.source.version = (_d = params.source) === null || _d === void 0 ? void 0 : _d.version;
                data.source.os_version = (_e = params.source) === null || _e === void 0 ? void 0 : _e.os_version;
                if (!data.event) {
                    data.event = {};
                }
                data.event.session_guid = (_f = params === null || params === void 0 ? void 0 : params.event) === null || _f === void 0 ? void 0 : _f.session_guid;
                if (!data.ui) {
                    data.ui = {};
                }
                data.ui.view_type = (_g = params.ui) === null || _g === void 0 ? void 0 : _g.view_type;
            }
        }
    }
    static isSpacesEventForType3User(data) {
        var _a;
        return (((_a = data === null || data === void 0 ? void 0 : data.event) === null || _a === void 0 ? void 0 : _a.workflow) === Workflow.Spaces &&
            this.userAccountType === _interfaces_IIMSData__WEBPACK_IMPORTED_MODULE_11__[/* UserIdentityType */ "b"].type3);
    }
}
/**
 * Factory function to stub out required properties in a POJO
 */
ProjectAnalytics.scaffoldEvent = scaffoldEvent;
const SESSION_GUID = uuid__WEBPACK_IMPORTED_MODULE_1___default.a.v4();
function getBaseAnalyticsData({ userId, locale, isPaid }) {
    const browser = Object(detect_browser__WEBPACK_IMPORTED_MODULE_0__[/* detect */ "a"])();
    if (userId === undefined) {
        userId = _stores_SharedStore__WEBPACK_IMPORTED_MODULE_8__[/* sharedStore */ "d"].imsData.userId;
    }
    const category = _utils_UXPUtils__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].usingUXP() || _hosts_Host__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"].id === 'ccd' ? 'DESKTOP' : 'WEB'; // mobile detection TBD
    return {
        content: {
            // navigator.mimeTypes is not present on UXP, but that's ok
            mimetype: navigator.mimeTypes,
        },
        env: {
            com: {
                name: 'CC Spaces',
                version: (_version__WEBPACK_IMPORTED_MODULE_3___default()),
            },
            api: {
                name: UNKNOWN,
            },
        },
        event: {
            category,
            context_guid: SESSION_GUID,
            language: locale,
            user_guid: userId,
            user_agent: navigator.userAgent,
        },
        source: {
            client_id: _hosts_Host__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"].id,
            name: _hosts_Host__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"].name,
            platform: _hosts_Host__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"].platform,
            os_version: _hosts_Host__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"].platformVersion,
            version: _hosts_Host__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"].version,
        },
        user: {
            service_code: 'creativecloud',
            service_level: isPaid ? 'paid' : 'trial',
        },
    };
}
/**
 *
 * @param {Iterable} elements - An iterable collection
 * @param {function} dataMapper - iterates collection to assign event properties for each element
 */
function trackForEach(elements, dataMapper) {
    elements.forEach((...args) => {
        ProjectAnalytics.fireEvent(dataMapper(...args));
    });
}
function fillErrorData(ingestData, errorResponse) {
    var _a, _b;
    ingestData.event['type'] = Type.error;
    const { body, status } = errorResponse;
    ingestData.event['error_code'] = status !== undefined ? status : UNKNOWN;
    if (body !== undefined) {
        ingestData.event['error_type'] = (_a = body === null || body === void 0 ? void 0 : body.title) !== null && _a !== void 0 ? _a : UNKNOWN;
        ingestData.event['error_desc'] = (_b = body === null || body === void 0 ? void 0 : body.detail) !== null && _b !== void 0 ? _b : UNKNOWN;
    }
    else {
        ingestData.event['error_type'] = UNKNOWN;
        ingestData.event['error_desc'] = UNKNOWN;
    }
}
function fillError(ingestData, error) {
    var _a, _b, _c, _d, _e, _f, _g;
    ingestData.event['type'] = Type.error;
    ingestData.event['error_code'] = (_d = (_a = error === null || error === void 0 ? void 0 : error.statusCode) !== null && _a !== void 0 ? _a : (_c = (_b = Object(_SpacesError__WEBPACK_IMPORTED_MODULE_10__[/* maybeSamHttpError */ "h"])(error)) === null || _b === void 0 ? void 0 : _b.response) === null || _c === void 0 ? void 0 : _c.status) !== null && _d !== void 0 ? _d : UNKNOWN;
    ingestData.event['error_type'] = (_f = (_e = error === null || error === void 0 ? void 0 : error.name) !== null && _e !== void 0 ? _e : error === null || error === void 0 ? void 0 : error.code) !== null && _f !== void 0 ? _f : UNKNOWN;
    ingestData.event['error_desc'] = (_g = error === null || error === void 0 ? void 0 : error.message) !== null && _g !== void 0 ? _g : UNKNOWN;
}
const measureEntryFactory = (args) => ({
    validate: (startName) => !!(startName && _performance__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].getEntriesByName(startName)[0]),
    measure: () => _performance__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].measure(args.measurementName || args.name, args.startName),
    cleanup: (name, startName) => startName && _performance__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].clearMarks(startName),
    once: false,
    ...args,
});
const measurementSet = [
    // Loading of Projects Component from the load of Assets Website (direct hit to /projects)
    measureEntryFactory({
        measurementName: measurementName('NAVIGATION_COMPLETE'),
        name: markName(scaffoldEvent(Subcategory.MyProjects, Subtype.myProjectsPageComplete, Type.render, Workflow.Projects)),
        startName: undefined,
        validate: () => {
            const navEvent = _performance__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].getEntriesByType('navigation')[0];
            if (navEvent) {
                try {
                    const parsedUrl = new URL(navEvent.name);
                    // We only want to check the full load time for projects component if the navigation was a reload or direct hit
                    // to the projects component route in assets.
                    return parsedUrl.pathname === '/projects';
                }
                catch (e) {
                    // name is incorrectly set, should be a fully resolvable url for these cases...
                    return true;
                }
            }
            return true;
        },
        once: true,
    }),
    // From Assets Web Route hit to Component render (with content)
    measureEntryFactory({
        measurementName: measurementName('PROJECTS_RENDER'),
        name: markName(scaffoldEvent(Subcategory.MyProjects, Subtype.myProjectsPageComplete, Type.render, Workflow.Projects)),
        startName: 'PAGE_ROUTE_CC_SPACES',
    }),
    // Duration between creating a project and displaying the empty working files section of the oneup
    measureEntryFactory({
        measurementName: measurementName('CREATE_PROJECT'),
        name: markName(scaffoldEvent(Subcategory.WorkingFiles, Subtype.workingFilesPageEmptyState, Type.render, Workflow.WorkingFiles)),
        startName: markName(scaffoldEvent(Subcategory.CreateProjectModal, Subtype.create, Type.click, Workflow.CreateProject)),
    }),
    // Renaming a project.
    measureEntryFactory({
        measurementName: measurementName('RENAME_PROJECT'),
        name: markName(scaffoldEvent(Subcategory.ProjectInfoModalWithEdit, Subtype.saveComplete, Type.click, Workflow.ProjectInfo)),
        startName: markName(scaffoldEvent(Subcategory.ProjectInfoModalWithEdit, Subtype.save, Type.click, Workflow.ProjectInfo)),
    }),
    // Discard a project
    measureEntryFactory({
        measurementName: measurementName('DISCARD_PROJECT'),
        name: markName(scaffoldEvent(Subcategory.Confirmation, Subtype.successToast, Type.click, Workflow.DeleteProject)),
        startName: markName(scaffoldEvent(Subcategory.Confirmation, Subtype.delete, Type.click, Workflow.DeleteProject)),
    }),
    // Permanent Deletion of a project
    measureEntryFactory({
        measurementName: measurementName('PERMANENT_DELETE'),
        name: 'ASSETS_PROJECT_PERMANENTLY-DELETE_SUCCESS',
        startName: 'ASSETS_PROJECT_PERMANENTLY-DELETE',
    }),
    // Permanent Deletion of a project
    measureEntryFactory({
        measurementName: measurementName('RESTORE'),
        name: 'ASSETS_PROJECT_RESTORE_SUCCESS',
        startName: 'ASSETS_PROJECT_RESTORE',
    }),
    // Leave a project
    measureEntryFactory({
        measurementName: measurementName('LEAVE_PROJECT'),
        name: markName(scaffoldEvent(Subcategory.MyProjects, Subtype.myProjectsPageComplete, Type.render, Workflow.Projects)),
        startName: markName(scaffoldEvent(Subcategory.Actions, Subtype.leaveProject, Type.click, Workflow.Projects)),
    }),
    // Oneup Load
    measureEntryFactory({
        measurementName: measurementName('ONEUP_RENDER'),
        name: markName(scaffoldEvent(Subcategory.WorkingFiles, Subtype.workingFilesTabComplete, Type.render, Workflow.WorkingFiles)),
        startName: markName(scaffoldEvent(Subcategory.Navigation, Subtype.openProject, Type.click, Workflow.Project1Up)),
    }),
    // Working Files Tab Load
    measureEntryFactory({
        measurementName: measurementName('TAB_DOCUMENTS'),
        name: markName(scaffoldEvent(Subcategory.WorkingFiles, Subtype.workingFilesTabComplete, Type.render, Workflow.WorkingFiles)),
        startName: markName(scaffoldEvent(Subcategory.WorkingFiles, Subtype.workingFilesTab, Type.click, Workflow.WorkingFiles)),
    }),
    // Libraries Tab Load
    measureEntryFactory({
        measurementName: measurementName('TAB_LIBRARIES'),
        name: markName(scaffoldEvent(Subcategory.Libraries, Subtype.librariesTabComplete, Type.render, Workflow.Libraries)),
        startName: markName(scaffoldEvent(Subcategory.Libraries, Subtype.librariesTab, Type.click, Workflow.Libraries)),
    }),
    // Artifacts Tab Load
    measureEntryFactory({
        measurementName: measurementName('TAB_ARTIFACTS'),
        name: markName(scaffoldEvent(Subcategory.Outputs, Subtype.outputsTabComplete, Type.render, Workflow.Outputs)),
        startName: markName(scaffoldEvent(Subcategory.Outputs, Subtype.outputsTab, Type.click, Workflow.Outputs)),
    }),
    // Add Library
    measureEntryFactory({
        measurementName: measurementName('ADD_LIBRARY'),
        name: markName(scaffoldEvent(Subcategory.Libraries, Subtype.librariesTabComplete, Type.render, Workflow.Libraries)),
        startName: markName(scaffoldEvent(Subcategory.Actions, Subtype.addLibraries, Type.click, Workflow.Libraries)),
    }),
    // Remove Library
    measureEntryFactory({
        measurementName: measurementName('REMOVE_LIBRARY'),
        name: markName(scaffoldEvent(Subcategory.Libraries, Subtype.librariesTabComplete, Type.render, Workflow.Libraries)),
        startName: markName(scaffoldEvent(Subcategory.Actions, Subtype.removeLibrary, Type.click, Workflow.Libraries)),
    }),
    // Copy Working File
    measureEntryFactory({
        measurementName: measurementName('COPY_DOCUMENT'),
        name: markName(scaffoldEvent(Subcategory.WorkingFiles, Subtype.workingFilesTabComplete, Type.render, Workflow.WorkingFiles)),
        startName: markName(scaffoldEvent(Subcategory.CopyToModal, Subtype.copy, Type.click, Workflow.CopyFiles)),
    }),
    // Move Working File
    measureEntryFactory({
        measurementName: measurementName('MOVE_DOCUMENT'),
        name: markName(scaffoldEvent(Subcategory.WorkingFiles, Subtype.workingFilesTabComplete, Type.render, Workflow.WorkingFiles)),
        startName: markName(scaffoldEvent(Subcategory.CopyToModal, Subtype.move, Type.click, Workflow.CopyFiles)),
    }),
    // Delete Working File
    measureEntryFactory({
        measurementName: measurementName('DISCARD_DOCUMENT'),
        name: markName(scaffoldEvent(Subcategory.WorkingFiles, Subtype.workingFilesTabComplete, Type.render, Workflow.WorkingFiles)),
        startName: markName(scaffoldEvent(Subcategory.Delete, Subtype.delete, Type.click, Workflow.DeleteFiles)),
    }),
];
const filter = (name) => measurementSet.filter(e => e.name === name);
const del = (entry) => measurementSet.splice(measurementSet.findIndex(e => e === entry), 1);
function markName(eventData) {
    const { workflow, subcategory, subtype } = eventData.event;
    return `CCSpaces_${workflow}_${subcategory}_${subtype}`;
}
function measurementName(name) {
    return `CCSPACES_${name}`.toUpperCase();
}
function measure(entry) {
    let measured = false;
    if (entry.validate(entry.startName)) {
        entry.measure();
        const measure = _performance__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"]
            .getEntriesByType('measure')
            .find(m => m.name === entry.measurementName || m.name === entry.name);
        _performance__WEBPACK_IMPORTED_MODULE_7__[/* performanceUtils */ "b"].addWorkflow({
            metric: entry.measurementName || entry.name,
            measure: measure,
        });
        entry.cleanup(entry.name, entry.startName);
        measured = true;
        if (entry.once) {
            del(entry);
        }
    }
    return measured;
}
function isFullyQualifiedIngestEvent(evt) {
    const { workflow, subcategory, subtype } = evt.event || {};
    return workflow && subcategory && subtype;
}
function measureSLAMetric(ingestEvent) {
    if (isFullyQualifiedIngestEvent(ingestEvent)) {
        const name = markName(ingestEvent);
        filter(name).reduce((a, c) => measure(c) || a, false) || _performance__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].mark(name);
    }
}
document.addEventListener('ccSpacesPerformanceEvent', (e) => {
    filter(e.detail.name).forEach(measure);
});


/***/ }),

/***/ "mpUr":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}


/* harmony default export */ __webpack_exports__["a"] = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("svg", _extends({
  xmlns: "http://www.w3.org/2000/svg",
  width: "24",
  height: "24",
  viewBox: "0 0 24 24"
}, props), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("circle", {
  cx: "20.5",
  cy: "3.5",
  r: "3.2",
  fill: "#1473e6"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
  d: "M15.75 4H3.527a.5.5 0 0 0-.393.808L9 12.294v7.657a.496.496 0 0 0 .84.412l1.99-2.076a.61.61 0 0 0 .17-.423v-5.57l4.658-5.943A4.75 4.75 0 0 1 15.75 4z",
  fill: "currentColor"
})));

/***/ }),

/***/ "mqgU":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

const _excluded = ["styles"];

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }

function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

var _default = _ref => {
  let {
    styles = {}
  } = _ref,
      props = _objectWithoutProperties(_ref, _excluded);

  return /*#__PURE__*/_react.default.createElement("svg", _extends({
    xmlns: "http://www.w3.org/2000/svg",
    "data-name": "S_Illu_PresetCustom_172_L@2x",
    height: "344",
    id: "S_Illu_PresetCustom_172_L_2x",
    viewBox: "0 0 344 344",
    width: "344"
  }, props), /*#__PURE__*/_react.default.createElement("defs", null), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M181.118 178.208l20.228-20.228 8.02 8.02-20.228 20.228a2 2 0 0 0 2.828 2.828l20.5-20.5a3.62 3.62 0 0 0 0-5.109l-8.568-8.567a3.623 3.623 0 0 0-5.107 0l-20.5 20.5a2 2 0 0 0 2.828 2.828z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M158.973 216.4l-15.78 15.776-8.02-8.02 15.778-15.778a2 2 0 0 0-2.828-2.828l-17.916 17.916a1.989 1.989 0 0 0-.492.811l-5.428 17.123a2 2 0 0 0 1.906 2.6 1.944 1.944 0 0 0 .719-.135l16.275-6.275a1.983 1.983 0 0 0 .7-.451l17.913-17.914a2 2 0 1 0-2.828-2.828zm-29.615 22.24l3.525-11.118 7.043 7.043z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M214.861 223.264l-70.777-70.777a3.9 3.9 0 0 0-5.5 0L125.23 165.84a3.888 3.888 0 0 0 0 5.5l70.779 70.781a3.892 3.892 0 0 0 5.5 0l13.355-13.355a3.892 3.892 0 0 0-.003-5.502zm-16.025 16.025l-70.777-70.621 13.275-13.275 6.527 6.512-6.6 6.6 2.828 2.828 6.608-6.608 5.19 5.179-6.615 6.615 2.828 2.828 6.618-6.618 5.19 5.179-6.623 6.623 2.828 2.828 6.626-6.626 5.19 5.178-6.632 6.634 2.828 2.828 6.635-6.637 5.191 5.179-6.643 6.641 2.828 2.828 6.646-6.644 5.19 5.178-6.65 6.652 2.828 2.828 6.653-6.655 5.191 5.179-6.661 6.659 2.828 2.828 6.664-6.662 5.189 5.178-6.668 6.668 2.828 2.828 6.671-6.671 5.19 5.179z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M231 276H113a21.023 21.023 0 0 1-21-21V101a21.023 21.023 0 0 1 21-21h88.867a22.888 22.888 0 0 1 16.052 6.526l27.132 26.438A23.128 23.128 0 0 1 252 129.437V255a21.024 21.024 0 0 1-21 21zM113 86a15.017 15.017 0 0 0-15 15v154a15.017 15.017 0 0 0 15 15h118a15.017 15.017 0 0 0 15-15V129.437a17.091 17.091 0 0 0-5.137-12.176l-27.132-26.437A16.912 16.912 0 0 0 201.867 86z"
  }));
};

exports.default = _default;

/***/ }),

/***/ "mqlF":
/***/ (function(module, exports) {

exports.f = Object.getOwnPropertySymbols;

/***/ }),

/***/ "mv/X":
/***/ (function(module, exports, __webpack_require__) {

var eq = __webpack_require__("ljhN"),
    isArrayLike = __webpack_require__("MMmD"),
    isIndex = __webpack_require__("wJg7"),
    isObject = __webpack_require__("GoyQ");
/**
 * Checks if the given arguments are from an iteratee call.
 *
 * @private
 * @param {*} value The potential iteratee value argument.
 * @param {*} index The potential iteratee index or key argument.
 * @param {*} object The potential iteratee object argument.
 * @returns {boolean} Returns `true` if the arguments are from an iteratee call,
 *  else `false`.
 */


function isIterateeCall(value, index, object) {
  if (!isObject(object)) {
    return false;
  }

  var type = typeof index;

  if (type == 'number' ? isArrayLike(object) && isIndex(index, object.length) : type == 'string' && index in object) {
    return eq(object[index], value);
  }

  return false;
}

module.exports = isIterateeCall;

/***/ }),

/***/ "mw44":
/***/ (function(module, exports, __webpack_require__) {

!function (e, t) {
   true ? module.exports = t() : undefined;
}(this, function () {
  "use strict";

  return [{
    locale: "zh",
    pluralRuleFunction: function (e, t) {
      return "other";
    },
    fields: {
      year: {
        displayName: "年",
        relative: {
          0: "今年",
          1: "明年",
          "-1": "去年"
        },
        relativeTime: {
          future: {
            other: "{0}年后"
          },
          past: {
            other: "{0}年前"
          }
        }
      },
      "year-short": {
        displayName: "年",
        relative: {
          0: "今年",
          1: "明年",
          "-1": "去年"
        },
        relativeTime: {
          future: {
            other: "{0}年后"
          },
          past: {
            other: "{0}年前"
          }
        }
      },
      month: {
        displayName: "月",
        relative: {
          0: "本月",
          1: "下个月",
          "-1": "上个月"
        },
        relativeTime: {
          future: {
            other: "{0}个月后"
          },
          past: {
            other: "{0}个月前"
          }
        }
      },
      "month-short": {
        displayName: "月",
        relative: {
          0: "本月",
          1: "下个月",
          "-1": "上个月"
        },
        relativeTime: {
          future: {
            other: "{0}个月后"
          },
          past: {
            other: "{0}个月前"
          }
        }
      },
      day: {
        displayName: "日",
        relative: {
          0: "今天",
          1: "明天",
          2: "后天",
          "-2": "前天",
          "-1": "昨天"
        },
        relativeTime: {
          future: {
            other: "{0}天后"
          },
          past: {
            other: "{0}天前"
          }
        }
      },
      "day-short": {
        displayName: "日",
        relative: {
          0: "今天",
          1: "明天",
          2: "后天",
          "-2": "前天",
          "-1": "昨天"
        },
        relativeTime: {
          future: {
            other: "{0}天后"
          },
          past: {
            other: "{0}天前"
          }
        }
      },
      hour: {
        displayName: "小时",
        relative: {
          0: "这一时间 / 此时"
        },
        relativeTime: {
          future: {
            other: "{0}小时后"
          },
          past: {
            other: "{0}小时前"
          }
        }
      },
      "hour-short": {
        displayName: "小时",
        relative: {
          0: "这一时间 / 此时"
        },
        relativeTime: {
          future: {
            other: "{0}小时后"
          },
          past: {
            other: "{0}小时前"
          }
        }
      },
      minute: {
        displayName: "分钟",
        relative: {
          0: "此刻"
        },
        relativeTime: {
          future: {
            other: "{0}分钟后"
          },
          past: {
            other: "{0}分钟前"
          }
        }
      },
      "minute-short": {
        displayName: "分",
        relative: {
          0: "此刻"
        },
        relativeTime: {
          future: {
            other: "{0}分钟后"
          },
          past: {
            other: "{0}分钟前"
          }
        }
      },
      second: {
        displayName: "秒",
        relative: {
          0: "现在"
        },
        relativeTime: {
          future: {
            other: "{0}秒钟后"
          },
          past: {
            other: "{0}秒钟前"
          }
        }
      },
      "second-short": {
        displayName: "秒",
        relative: {
          0: "现在"
        },
        relativeTime: {
          future: {
            other: "{0}秒后"
          },
          past: {
            other: "{0}秒前"
          }
        }
      }
    }
  }, {
    locale: "zh-Hans",
    parentLocale: "zh"
  }, {
    locale: "zh-Hans-HK",
    parentLocale: "zh-Hans",
    fields: {
      year: {
        displayName: "年",
        relative: {
          0: "今年",
          1: "明年",
          "-1": "去年"
        },
        relativeTime: {
          future: {
            other: "{0}年后"
          },
          past: {
            other: "{0}年前"
          }
        }
      },
      "year-short": {
        displayName: "年",
        relative: {
          0: "今年",
          1: "明年",
          "-1": "去年"
        },
        relativeTime: {
          future: {
            other: "{0}年后"
          },
          past: {
            other: "{0}年前"
          }
        }
      },
      month: {
        displayName: "月",
        relative: {
          0: "本月",
          1: "下个月",
          "-1": "上个月"
        },
        relativeTime: {
          future: {
            other: "{0}个月后"
          },
          past: {
            other: "{0}个月前"
          }
        }
      },
      "month-short": {
        displayName: "月",
        relative: {
          0: "本月",
          1: "下个月",
          "-1": "上个月"
        },
        relativeTime: {
          future: {
            other: "{0}个月后"
          },
          past: {
            other: "{0}个月前"
          }
        }
      },
      day: {
        displayName: "日",
        relative: {
          0: "今天",
          1: "明天",
          2: "后天",
          "-2": "前天",
          "-1": "昨天"
        },
        relativeTime: {
          future: {
            other: "{0}天后"
          },
          past: {
            other: "{0}天前"
          }
        }
      },
      "day-short": {
        displayName: "日",
        relative: {
          0: "今天",
          1: "明天",
          2: "后天",
          "-2": "前天",
          "-1": "昨天"
        },
        relativeTime: {
          future: {
            other: "{0}天后"
          },
          past: {
            other: "{0}天前"
          }
        }
      },
      hour: {
        displayName: "小时",
        relative: {
          0: "这一时间 / 此时"
        },
        relativeTime: {
          future: {
            other: "{0}小时后"
          },
          past: {
            other: "{0}小时前"
          }
        }
      },
      "hour-short": {
        displayName: "小时",
        relative: {
          0: "这一时间 / 此时"
        },
        relativeTime: {
          future: {
            other: "{0}小时后"
          },
          past: {
            other: "{0}小时前"
          }
        }
      },
      minute: {
        displayName: "分钟",
        relative: {
          0: "此刻"
        },
        relativeTime: {
          future: {
            other: "{0}分钟后"
          },
          past: {
            other: "{0}分钟前"
          }
        }
      },
      "minute-short": {
        displayName: "分",
        relative: {
          0: "此刻"
        },
        relativeTime: {
          future: {
            other: "{0}分钟后"
          },
          past: {
            other: "{0}分钟前"
          }
        }
      },
      second: {
        displayName: "秒",
        relative: {
          0: "现在"
        },
        relativeTime: {
          future: {
            other: "{0}秒后"
          },
          past: {
            other: "{0}秒前"
          }
        }
      },
      "second-short": {
        displayName: "秒",
        relative: {
          0: "现在"
        },
        relativeTime: {
          future: {
            other: "{0}秒后"
          },
          past: {
            other: "{0}秒前"
          }
        }
      }
    }
  }, {
    locale: "zh-Hans-MO",
    parentLocale: "zh-Hans",
    fields: {
      year: {
        displayName: "年",
        relative: {
          0: "今年",
          1: "明年",
          "-1": "去年"
        },
        relativeTime: {
          future: {
            other: "{0}年后"
          },
          past: {
            other: "{0}年前"
          }
        }
      },
      "year-short": {
        displayName: "年",
        relative: {
          0: "今年",
          1: "明年",
          "-1": "去年"
        },
        relativeTime: {
          future: {
            other: "{0}年后"
          },
          past: {
            other: "{0}年前"
          }
        }
      },
      month: {
        displayName: "月",
        relative: {
          0: "本月",
          1: "下个月",
          "-1": "上个月"
        },
        relativeTime: {
          future: {
            other: "{0}个月后"
          },
          past: {
            other: "{0}个月前"
          }
        }
      },
      "month-short": {
        displayName: "月",
        relative: {
          0: "本月",
          1: "下个月",
          "-1": "上个月"
        },
        relativeTime: {
          future: {
            other: "{0}个月后"
          },
          past: {
            other: "{0}个月前"
          }
        }
      },
      day: {
        displayName: "日",
        relative: {
          0: "今天",
          1: "明天",
          2: "后天",
          "-2": "前天",
          "-1": "昨天"
        },
        relativeTime: {
          future: {
            other: "{0}天后"
          },
          past: {
            other: "{0}天前"
          }
        }
      },
      "day-short": {
        displayName: "日",
        relative: {
          0: "今天",
          1: "明天",
          2: "后天",
          "-2": "前天",
          "-1": "昨天"
        },
        relativeTime: {
          future: {
            other: "{0}天后"
          },
          past: {
            other: "{0}天前"
          }
        }
      },
      hour: {
        displayName: "小时",
        relative: {
          0: "这一时间 / 此时"
        },
        relativeTime: {
          future: {
            other: "{0}小时后"
          },
          past: {
            other: "{0}小时前"
          }
        }
      },
      "hour-short": {
        displayName: "小时",
        relative: {
          0: "这一时间 / 此时"
        },
        relativeTime: {
          future: {
            other: "{0}小时后"
          },
          past: {
            other: "{0}小时前"
          }
        }
      },
      minute: {
        displayName: "分钟",
        relative: {
          0: "此刻"
        },
        relativeTime: {
          future: {
            other: "{0}分钟后"
          },
          past: {
            other: "{0}分钟前"
          }
        }
      },
      "minute-short": {
        displayName: "分",
        relative: {
          0: "此刻"
        },
        relativeTime: {
          future: {
            other: "{0}分钟后"
          },
          past: {
            other: "{0}分钟前"
          }
        }
      },
      second: {
        displayName: "秒",
        relative: {
          0: "现在"
        },
        relativeTime: {
          future: {
            other: "{0}秒后"
          },
          past: {
            other: "{0}秒前"
          }
        }
      },
      "second-short": {
        displayName: "秒",
        relative: {
          0: "现在"
        },
        relativeTime: {
          future: {
            other: "{0}秒后"
          },
          past: {
            other: "{0}秒前"
          }
        }
      }
    }
  }, {
    locale: "zh-Hans-SG",
    parentLocale: "zh-Hans",
    fields: {
      year: {
        displayName: "年",
        relative: {
          0: "今年",
          1: "明年",
          "-1": "去年"
        },
        relativeTime: {
          future: {
            other: "{0}年后"
          },
          past: {
            other: "{0}年前"
          }
        }
      },
      "year-short": {
        displayName: "年",
        relative: {
          0: "今年",
          1: "明年",
          "-1": "去年"
        },
        relativeTime: {
          future: {
            other: "{0}年后"
          },
          past: {
            other: "{0}年前"
          }
        }
      },
      month: {
        displayName: "月",
        relative: {
          0: "本月",
          1: "下个月",
          "-1": "上个月"
        },
        relativeTime: {
          future: {
            other: "{0}个月后"
          },
          past: {
            other: "{0}个月前"
          }
        }
      },
      "month-short": {
        displayName: "月",
        relative: {
          0: "本月",
          1: "下个月",
          "-1": "上个月"
        },
        relativeTime: {
          future: {
            other: "{0}个月后"
          },
          past: {
            other: "{0}个月前"
          }
        }
      },
      day: {
        displayName: "日",
        relative: {
          0: "今天",
          1: "明天",
          2: "后天",
          "-2": "前天",
          "-1": "昨天"
        },
        relativeTime: {
          future: {
            other: "{0}天后"
          },
          past: {
            other: "{0}天前"
          }
        }
      },
      "day-short": {
        displayName: "日",
        relative: {
          0: "今天",
          1: "明天",
          2: "后天",
          "-2": "前天",
          "-1": "昨天"
        },
        relativeTime: {
          future: {
            other: "{0}天后"
          },
          past: {
            other: "{0}天前"
          }
        }
      },
      hour: {
        displayName: "小时",
        relative: {
          0: "这一时间 / 此时"
        },
        relativeTime: {
          future: {
            other: "{0}小时后"
          },
          past: {
            other: "{0}小时前"
          }
        }
      },
      "hour-short": {
        displayName: "小时",
        relative: {
          0: "这一时间 / 此时"
        },
        relativeTime: {
          future: {
            other: "{0}小时后"
          },
          past: {
            other: "{0}小时前"
          }
        }
      },
      minute: {
        displayName: "分钟",
        relative: {
          0: "此刻"
        },
        relativeTime: {
          future: {
            other: "{0}分钟后"
          },
          past: {
            other: "{0}分钟前"
          }
        }
      },
      "minute-short": {
        displayName: "分",
        relative: {
          0: "此刻"
        },
        relativeTime: {
          future: {
            other: "{0}分钟后"
          },
          past: {
            other: "{0}分钟前"
          }
        }
      },
      second: {
        displayName: "秒",
        relative: {
          0: "现在"
        },
        relativeTime: {
          future: {
            other: "{0}秒后"
          },
          past: {
            other: "{0}秒前"
          }
        }
      },
      "second-short": {
        displayName: "秒",
        relative: {
          0: "现在"
        },
        relativeTime: {
          future: {
            other: "{0}秒后"
          },
          past: {
            other: "{0}秒前"
          }
        }
      }
    }
  }, {
    locale: "zh-Hant",
    pluralRuleFunction: function (e, t) {
      return "other";
    },
    fields: {
      year: {
        displayName: "年",
        relative: {
          0: "今年",
          1: "明年",
          "-1": "去年"
        },
        relativeTime: {
          future: {
            other: "{0} 年後"
          },
          past: {
            other: "{0} 年前"
          }
        }
      },
      "year-short": {
        displayName: "年",
        relative: {
          0: "今年",
          1: "明年",
          "-1": "去年"
        },
        relativeTime: {
          future: {
            other: "{0} 年後"
          },
          past: {
            other: "{0} 年前"
          }
        }
      },
      month: {
        displayName: "月",
        relative: {
          0: "本月",
          1: "下個月",
          "-1": "上個月"
        },
        relativeTime: {
          future: {
            other: "{0} 個月後"
          },
          past: {
            other: "{0} 個月前"
          }
        }
      },
      "month-short": {
        displayName: "月",
        relative: {
          0: "本月",
          1: "下個月",
          "-1": "上個月"
        },
        relativeTime: {
          future: {
            other: "{0} 個月後"
          },
          past: {
            other: "{0} 個月前"
          }
        }
      },
      day: {
        displayName: "日",
        relative: {
          0: "今天",
          1: "明天",
          2: "後天",
          "-2": "前天",
          "-1": "昨天"
        },
        relativeTime: {
          future: {
            other: "{0} 天後"
          },
          past: {
            other: "{0} 天前"
          }
        }
      },
      "day-short": {
        displayName: "日",
        relative: {
          0: "今天",
          1: "明天",
          2: "後天",
          "-2": "前天",
          "-1": "昨天"
        },
        relativeTime: {
          future: {
            other: "{0} 天後"
          },
          past: {
            other: "{0} 天前"
          }
        }
      },
      hour: {
        displayName: "小時",
        relative: {
          0: "這一小時"
        },
        relativeTime: {
          future: {
            other: "{0} 小時後"
          },
          past: {
            other: "{0} 小時前"
          }
        }
      },
      "hour-short": {
        displayName: "小時",
        relative: {
          0: "這一小時"
        },
        relativeTime: {
          future: {
            other: "{0} 小時後"
          },
          past: {
            other: "{0} 小時前"
          }
        }
      },
      minute: {
        displayName: "分鐘",
        relative: {
          0: "這一分鐘"
        },
        relativeTime: {
          future: {
            other: "{0} 分鐘後"
          },
          past: {
            other: "{0} 分鐘前"
          }
        }
      },
      "minute-short": {
        displayName: "分鐘",
        relative: {
          0: "這一分鐘"
        },
        relativeTime: {
          future: {
            other: "{0} 分鐘後"
          },
          past: {
            other: "{0} 分鐘前"
          }
        }
      },
      second: {
        displayName: "秒",
        relative: {
          0: "現在"
        },
        relativeTime: {
          future: {
            other: "{0} 秒後"
          },
          past: {
            other: "{0} 秒前"
          }
        }
      },
      "second-short": {
        displayName: "秒",
        relative: {
          0: "現在"
        },
        relativeTime: {
          future: {
            other: "{0} 秒後"
          },
          past: {
            other: "{0} 秒前"
          }
        }
      }
    }
  }, {
    locale: "zh-Hant-HK",
    parentLocale: "zh-Hant",
    fields: {
      year: {
        displayName: "年",
        relative: {
          0: "今年",
          1: "下年",
          "-1": "上年"
        },
        relativeTime: {
          future: {
            other: "{0} 年後"
          },
          past: {
            other: "{0} 年前"
          }
        }
      },
      "year-short": {
        displayName: "年",
        relative: {
          0: "今年",
          1: "下年",
          "-1": "上年"
        },
        relativeTime: {
          future: {
            other: "{0} 年後"
          },
          past: {
            other: "{0} 年前"
          }
        }
      },
      month: {
        displayName: "月",
        relative: {
          0: "本月",
          1: "下個月",
          "-1": "上個月"
        },
        relativeTime: {
          future: {
            other: "{0} 個月後"
          },
          past: {
            other: "{0} 個月前"
          }
        }
      },
      "month-short": {
        displayName: "月",
        relative: {
          0: "本月",
          1: "下個月",
          "-1": "上個月"
        },
        relativeTime: {
          future: {
            other: "{0} 個月後"
          },
          past: {
            other: "{0} 個月前"
          }
        }
      },
      day: {
        displayName: "日",
        relative: {
          0: "今日",
          1: "明日",
          2: "後日",
          "-2": "前日",
          "-1": "昨日"
        },
        relativeTime: {
          future: {
            other: "{0} 日後"
          },
          past: {
            other: "{0} 日前"
          }
        }
      },
      "day-short": {
        displayName: "日",
        relative: {
          0: "今日",
          1: "明日",
          2: "後日",
          "-2": "前日",
          "-1": "昨日"
        },
        relativeTime: {
          future: {
            other: "{0} 日後"
          },
          past: {
            other: "{0} 日前"
          }
        }
      },
      hour: {
        displayName: "小時",
        relative: {
          0: "這個小時"
        },
        relativeTime: {
          future: {
            other: "{0} 小時後"
          },
          past: {
            other: "{0} 小時前"
          }
        }
      },
      "hour-short": {
        displayName: "小時",
        relative: {
          0: "這個小時"
        },
        relativeTime: {
          future: {
            other: "{0} 小時後"
          },
          past: {
            other: "{0} 小時前"
          }
        }
      },
      minute: {
        displayName: "分鐘",
        relative: {
          0: "這分鐘"
        },
        relativeTime: {
          future: {
            other: "{0} 分鐘後"
          },
          past: {
            other: "{0} 分鐘前"
          }
        }
      },
      "minute-short": {
        displayName: "分鐘",
        relative: {
          0: "這分鐘"
        },
        relativeTime: {
          future: {
            other: "{0} 分鐘後"
          },
          past: {
            other: "{0} 分鐘前"
          }
        }
      },
      second: {
        displayName: "秒",
        relative: {
          0: "現在"
        },
        relativeTime: {
          future: {
            other: "{0} 秒後"
          },
          past: {
            other: "{0} 秒前"
          }
        }
      },
      "second-short": {
        displayName: "秒",
        relative: {
          0: "現在"
        },
        relativeTime: {
          future: {
            other: "{0} 秒後"
          },
          past: {
            other: "{0} 秒前"
          }
        }
      }
    }
  }, {
    locale: "zh-Hant-MO",
    parentLocale: "zh-Hant-HK"
  }];
});

/***/ }),

/***/ "mwpz":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXPORTS
__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ GridItem_GridItemPlaceholder; });

// UNUSED EXPORTS: GridItemForTests

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__("q1tI");
var react_default = /*#__PURE__*/__webpack_require__.n(react);

// EXTERNAL MODULE: ./node_modules/mobx-react/index.module.js
var index_module = __webpack_require__("okNM");

// EXTERNAL MODULE: ./node_modules/classnames/index.js
var classnames = __webpack_require__("TSYQ");
var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);

// EXTERNAL MODULE: ./node_modules/react-intl-cdo/lib/index.es.js + 1 modules
var index_es = __webpack_require__("VIzJ");

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Checkbox/index.js
var Checkbox = __webpack_require__("L+OI");
var Checkbox_default = /*#__PURE__*/__webpack_require__.n(Checkbox);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Heading/index.js
var Heading = __webpack_require__("8bOP");
var Heading_default = /*#__PURE__*/__webpack_require__.n(Heading);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/OverlayTrigger/index.js
var OverlayTrigger = __webpack_require__("uYrR");
var OverlayTrigger_default = /*#__PURE__*/__webpack_require__.n(OverlayTrigger);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Tooltip/index.js
var Tooltip = __webpack_require__("DUuf");
var Tooltip_default = /*#__PURE__*/__webpack_require__.n(Tooltip);

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/InfoOutline/index.js
var InfoOutline = __webpack_require__("AiiT");
var InfoOutline_default = /*#__PURE__*/__webpack_require__.n(InfoOutline);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/utils/constants.ts
var constants = __webpack_require__("bXP0");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/utils/stop-propagation.ts
var stop_propagation = __webpack_require__("m8Tk");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/ActionMenu.tsx
var ActionMenu = __webpack_require__("IGtv");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/CloudStatusIcon.tsx + 4 modules
var CloudStatusIcon = __webpack_require__("MdaA");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/Dimmer.tsx
var Dimmer = __webpack_require__("D8iS");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/ImageView.tsx + 4 modules
var ImageView = __webpack_require__("vVTB");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/Rename.tsx + 1 modules
var Rename = __webpack_require__("UoXk");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/svgs/Folder.tsx
var Folder = __webpack_require__("ZigE");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/ViewItem.tsx
var ViewItem = __webpack_require__("lqMc");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/styles/GridItem.css
var styles_GridItem = __webpack_require__("ZD60");
var GridItem_default = /*#__PURE__*/__webpack_require__.n(styles_GridItem);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/components/Rendition/MosaicRendition.tsx + 5 modules
var MosaicRendition = __webpack_require__("yp3d");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/formatNameWithNonBreakingSpace.ts
var formatNameWithNonBreakingSpace = __webpack_require__("LYaz");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/components/Rendition/MosaicMiniRendition.css
var MosaicMiniRendition = __webpack_require__("oXTz");
var MosaicMiniRendition_default = /*#__PURE__*/__webpack_require__.n(MosaicMiniRendition);

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/components/Rendition/MosaicMiniRendition.tsx




/* harmony default export */ var Rendition_MosaicMiniRendition = (Object(index_module["e" /* observer */])(({ children, renditionGrid }) => {
    return (react_default.a.createElement("div", { className: MosaicMiniRendition_default.a.root },
        react_default.a.createElement("div", { className: MosaicMiniRendition_default.a.left },
            react_default.a.createElement(MosaicRendition["a" /* default */], { insideMini: true, renditionGrid: renditionGrid })),
        react_default.a.createElement("div", { className: MosaicMiniRendition_default.a.right }, children)));
}));

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/stores/SharedStore.ts + 6 modules
var SharedStore = __webpack_require__("jmEq");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/dateUtils.tsx
var dateUtils = __webpack_require__("TxTg");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/UXPUtils.ts
var UXPUtils = __webpack_require__("LbGp");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/GridItem.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
/* eslint-disable max-classes-per-file */
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;
};

























/**
 * UI component encapsulating an individual asset element item.
 */
let GridItem_GridItem = class GridItem extends ViewItem["a" /* default */] {
    constructor() {
        super(...arguments);
        this.state = {
            actionMenuFocused: false,
            actionMenuOpened: false,
        };
        this.gridItemRef = react["createRef"]();
        this.onCheckboxSelect = event => {
            Object(stop_propagation["a" /* default */])(event);
            this.onCheckboxSelection(event);
        };
        this.onKeyDownMenuItem = e => {
            if (this.gridItemRef && this.gridItemRef.current && e.key === 'Escape') {
                this.gridItemRef.current.focus();
            }
            else if (e.key === 'Enter') {
                // Disable asset 'click' event propagation from ActionMenu
                Object(stop_propagation["a" /* default */])(e);
            }
            else {
                this.onKeyDown(e);
            }
        };
    }
    renderCheckBox() {
        const { isSelected } = this.props;
        return (react["createElement"]("div", { id: `CDOGridItem_Selected_${isSelected}`, className: classnames_default()(GridItem_default.a.checkbox, GridItem_default.a.overlayButton, {
                [GridItem_default.a.selected]: isSelected,
            }), onClick: this.onCheckboxSelect },
            react["createElement"](Checkbox_default.a, { id: "CDOGridItem_Checkbox", tabIndex: -1, checked: isSelected, renderLabel: false, className: GridItem_default.a.spectrumCheckbox, "data-test-id": "GridItem__checkbox", "aria-label": this.props.intl.formatMessage({ id: 'button.select' }), role: 'button' })));
    }
    /**
     *
     * @param renderOnCard true if the button should be rendered directly on the card, false if it's part of a menu.
     * @returns the new CTA button
     */
    renderCtaButton(renderOnCard, actionable) {
        const { element, ctaItem } = this.props;
        if (ctaItem) {
            return renderOnCard
                ? element.bookmarked && (react["createElement"]("div", { className: GridItem_default.a.ctaButton }, ctaItem.render(element, actionable)))
                : ctaItem.render(element, actionable);
        }
    }
    renderActionMenu() {
        const { element, actionMenuItems = [], onActionButtonClick, hideActionMenu, ctaItem, } = this.props;
        if (hideActionMenu || this.isRenaming) {
            return;
        }
        const hasActionsInMenu = !!(actionMenuItems && actionMenuItems.length);
        return (react["createElement"]("div", { className: classnames_default()(GridItem_default.a.rightActions, {
                [GridItem_default.a.menuOpen]: this.state.actionMenuOpened,
            }) },
            react["createElement"]("div", { className: classnames_default()(GridItem_default.a.actionMenu, GridItem_default.a.overlayButton, {
                    [GridItem_default.a.actionMenuWithCtaLeft]: ctaItem,
                    [GridItem_default.a.focused]: this.state.actionMenuFocused || this.state.actionMenuOpened,
                }), onClick: stop_propagation["a" /* default */], onFocus: () => this.setState({ actionMenuFocused: true }), onBlur: () => this.setState({ actionMenuFocused: false }) },
                react["createElement"](ActionMenu["a" /* default */], { disabled: !!this.disabled, element: element, onKeyDown: this.onKeyDownMenuItem, onActionButtonClick: onActionButtonClick, actionMenuItems: actionMenuItems, onOpen: () => this.setState({ actionMenuOpened: true }), onClose: () => this.setState({ actionMenuOpened: false }), "data-test-id": "GridItem__actions" })),
            ctaItem && (react["createElement"]("div", { className: classnames_default()(GridItem_default.a.actionMenu, GridItem_default.a.actionMenuWithCtaRight, GridItem_default.a.overlayButton, {
                    [GridItem_default.a.ctaButtonNextToMenu]: hasActionsInMenu,
                }), onClick: stop_propagation["a" /* default */], role: 'button', "aria-label": this.props.intl.formatMessage({ id: 'button.favorite' }) }, this.renderCtaButton(false, hasActionsInMenu)))));
    }
    /**
     * Adjust project name style in rendition grid based on the tile size.
     */
    get projectNameStyle() {
        const { tileHeight } = this.props;
        let fontSize = 22;
        let lineHeight = 26;
        if (tileHeight < 180) {
            lineHeight = 27;
        }
        if (tileHeight < 165) {
            fontSize = 18;
            lineHeight = 22;
        }
        return {
            fontSize: fontSize + 'px',
            lineHeight: lineHeight + 'px',
            maxHeight: lineHeight * 3 + 'px',
        };
    }
    get renditionWrapperStyle() {
        const { element, tileHeight = 0 } = this.props;
        if (!element.isProject) {
            return { height: tileHeight };
        }
        let paddingTop = 24;
        let paddingRight = 20;
        let paddingBottom = 20;
        let paddingLeft = 20;
        let borderOffset = 0;
        if (tileHeight < 180) {
            paddingTop = 24;
            paddingRight = 16;
            paddingBottom = 16;
            paddingLeft = 16;
        }
        if (tileHeight < 165) {
            paddingTop = 14;
            paddingRight = 14;
            paddingBottom = 14;
            paddingLeft = 14;
        }
        return {
            height: `${tileHeight - constants["i" /* PROJECT_CARD_COLOR_BAND_HEIGHT */]}px`,
            paddingTop: `${paddingTop - borderOffset}px`,
            paddingRight: `${paddingRight - borderOffset}px`,
            paddingBottom: `${paddingBottom - borderOffset}px`,
            paddingLeft: `${paddingLeft - borderOffset}px`,
        };
    }
    get isOfflineLibrary() {
        const { element, isOffline } = this.props;
        return element.isLibrary && isOffline;
    }
    get selectionEnabled() {
        const { element: { isRenaming }, onItemSelected, } = this.props;
        return (onItemSelected != null &&
            !this.shouldSelectionBeDisabled &&
            !this.isRenaming &&
            !this.isOfflineLibrary);
    }
    get shouldSelectOnKeyDown() {
        return this.selectionEnabled;
    }
    get shouldRenderActionMenu() {
        const { element, isOffline } = this.props;
        const isOfflineProject = element.isProject && isOffline;
        if (this.isOfflineLibrary || isOfflineProject) {
            return false;
        }
        return true;
    }
    renderProject(formattedTitle) {
        return (react["createElement"](OverlayTrigger_default.a, { placement: "bottom", trigger: ['hover'], delayShow: constants["c" /* DEFAULT_TOOLTIP_DELAY */] },
            react["createElement"](Heading_default.a, { variant: "subtitle2", style: { ...this.projectNameStyle }, className: GridItem_default.a.name, "data-test-id": 'GridItem__name' }, formattedTitle),
            react["createElement"](Tooltip_default.a, { className: GridItem_default.a.spaceNameTooltip }, formattedTitle)));
    }
    renderFile(element, infoAndMetadata) {
        const sizeOffset = 16;
        const { defaultRendition, renditionType, tileHeight = 0, tileWidth = 0 } = this.props;
        const renditionGrid = {
            main: element.renditionGridMain,
            tiles: element.renditionGridTiles,
        };
        let thumbnail;
        switch (renditionType) {
            case 'mosaic':
                thumbnail = react["createElement"](MosaicRendition["a" /* default */], { large: true, renditionGrid: renditionGrid });
                break;
            case 'mosaicMini':
                thumbnail = (react["createElement"](Rendition_MosaicMiniRendition, { renditionGrid: renditionGrid }, infoAndMetadata));
                break;
            default:
                thumbnail =
                    element.isInvalidRendition && element.renditionTemplate != '' ? (element.isFetchingRendition ? (react["createElement"](react["Fragment"], null)) : (react["createElement"]("div", { className: GridItem_default.a.errorCard },
                        react["createElement"](InfoOutline_default.a, { className: UXPUtils["a" /* default */].usingUXP() ? GridItem_default.a.infoIconUxp : GridItem_default.a.infoIcon, size: "S" }),
                        react["createElement"]("div", null,
                            react["createElement"](index_es["c" /* FormattedMessage */], { id: "griditem.error.message" })),
                        react["createElement"]("div", { onClick: e => {
                                e.stopPropagation();
                                element.getRendition();
                            }, className: GridItem_default.a.retry },
                            react["createElement"](index_es["c" /* FormattedMessage */], { id: "griditem.error.button" }))))) : (react["createElement"](ImageView["a" /* default */], { element: element, style: {
                            maxWidth: tileWidth - sizeOffset,
                            maxHeight: tileHeight - sizeOffset,
                        }, className: GridItem_default.a.rendition }));
        }
        return thumbnail;
    }
    /**
     * Component renderer.
     * @return {ReactElement} markup
     */
    render() {
        const { collectionType, element, tileWidth = 0, isSelected, focusManagementEnabled, renderTooltip, isOffline, tabIndex = -1, renditionType, ctaItem, hideActionMenu, dataTestId, hideCloudStatusIcon, } = this.props;
        const { isFolder, isProject, renameState, renameCallbacks } = element;
        const gridItemClassNames = {
            [GridItem_default.a['disabled']]: this.disabled,
            [GridItem_default.a['folder']]: isFolder,
            [GridItem_default.a['project']]: isProject,
            [GridItem_default.a['mosaic']]: renditionType === 'mosaic',
            [GridItem_default.a['mosaicMini']]: renditionType === 'mosaicMini',
        };
        // Folders are focusable even if disabled as they can be opened by clicking Enter
        const isFocusable = !this.disabled || isFolder;
        let projectMetadata = {};
        if (isProject) {
            projectMetadata = {
                'data-test-id': `GridItem__${element.color}`,
                style: { background: element.color, height: constants["i" /* PROJECT_CARD_COLOR_BAND_HEIGHT */] },
            };
        }
        const formattedTitle = Object(formatNameWithNonBreakingSpace["a" /* default */])(element.title);
        const infoAndMetadata = (react["createElement"]("div", { className: GridItem_default.a.info, id: "CDOGridItem_Info" },
            !isProject && (react["createElement"]("div", { className: GridItem_default.a.name },
                react["createElement"]("div", { className: GridItem_default.a.nameString, id: "CDOGridItem_Name" },
                    react["createElement"](Rename["b" /* default */], { name: formattedTitle, tooltip: renderTooltip && renderTooltip(element), renameState: this.renameState, renameCallbacks: renameCallbacks, multiline: renditionType !== 'mosaicMini', "data-test-id": "GridItem__info__name" })))),
            react["createElement"]("div", { className: GridItem_default.a.metaDataWrapper },
                react["createElement"]("div", { className: GridItem_default.a.metaData, id: "CDOGridItem_MetaData" }, this.renderMetadata()))));
        const a11ymetadata = {
            extension: element.isFolder
                ? this.props.intl.formatMessage({ id: 'a11y.strings.folder' })
                : element.fileTrueExtension,
            modified: Object(dateUtils["b" /* formatTimeAgo */])(element.modifiedDate, this.props.intl.locale),
            name: element.title,
        };
        return (react["createElement"]("div", { "aria-label": this.props.intl.formatMessage({ id: `a11y.button.${collectionType}` }, a11ymetadata), className: classnames_default()(GridItem_default.a.GridItem, gridItemClassNames, ctaItem === null || ctaItem === void 0 ? void 0 : ctaItem.className, isFocusable && constants["e" /* FOCUS_ITEM_CLASS */], {
                [GridItem_default.a.filtered]: this.props.isFiltered && this.props.isFiltered(element),
            }), id: "CDOGridItem", onClick: this.onClick, onDoubleClick: this.onDoubleClick, style: { width: tileWidth }, tabIndex: focusManagementEnabled ? tabIndex : 0, onKeyDown: this.onKeyDown, ref: this.gridItemRef, role: "gridcell", onContextMenu: this.onContextMenu, "data-test-id": dataTestId },
            react["createElement"]("div", { "aria-label": element.title, className: classnames_default()(GridItem_default.a.border, { [GridItem_default.a.selected]: isSelected }), role: "gridcell" },
                react["createElement"]("div", Object.assign({}, projectMetadata)),
                react["createElement"]("div", { className: classnames_default()(GridItem_default.a.renditionWrapper, {
                        [GridItem_default.a.selected]: isSelected,
                    }), style: { ...this.renditionWrapperStyle } },
                    react["createElement"](Dimmer["a" /* Dimmer */], { dim: this.disabled },
                        this.shouldRenderActionMenu && this.renderActionMenu(),
                        !hideCloudStatusIcon && (react["createElement"](CloudStatusIcon["a" /* default */], { className: 'GridItem', isOffline: !!isOffline, element: element })),
                        isProject ? (this.renderProject(formattedTitle)) : isFolder ? (react["createElement"](Folder["a" /* default */], { theme: SharedStore["d" /* sharedStore */].theme })) : (this.renderFile(element, infoAndMetadata)),
                        this.renderCtaButton(true, !hideActionMenu),
                        this.selectionEnabled && this.renderCheckBox()))),
            renditionType !== 'mosaicMini' && infoAndMetadata));
    }
};
GridItem_GridItem = __decorate([
    index_module["e" /* observer */]
], GridItem_GridItem);
/**
 * In views that render GridView as a child of CDOView, use this component to ensure any props that are passed are
 * validated, invalid props are flagged, but all props are optional. It does not provide any functionality other than
 * signalling to CDOView that it should render GridView when appropriate and ensure type-checking.
 */
class GridItem_GridItemPlaceholder extends react["PureComponent"] {
}
/* harmony default export */ var CDOView_GridItem = __webpack_exports__["b"] = (Object(index_es["g" /* injectIntl */])(GridItem_GridItem));



/***/ }),

/***/ "n+km":
/***/ (function(module) {

module.exports = JSON.parse("{\"File\":\"Bestand\",\"Folder\":\"Map\"}");

/***/ }),

/***/ "n0iS":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("Ovfc"),
      24: __webpack_require__("7j2M")
    }
  }));
};

WrappedIcon.displayName = 'Alias';
exports.default = WrappedIcon;

/***/ }),

/***/ "n2rD":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("path", {
  d: "M2 4v38a2 2 0 0 0 2 2h40a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2zm40 36H6V6h36z"
}), React.createElement("path", {
  d: "M16.766 26.4l-1.4 5.291c-.029.145-.088.18-.263.18H12.5c-.175 0-.2-.058-.175-.262l5.025-17.547a5.5 5.5 0 0 0 .175-1.469c0-.116.058-.175.146-.175h3.708c.117 0 .175.029.2.175l5.635 19.047c.029.145 0 .233-.146.233h-2.92c-.146 0-.233-.034-.263-.151L22.43 26.4zm4.934-2.865c-.5-1.951-1.664-6.226-2.1-8.293h-.029c-.38 2.067-1.314 5.557-2.044 8.293zm7.962-9.807a1.81 1.81 0 0 1 3.621 0 1.692 1.692 0 0 1-1.839 1.805 1.662 1.662 0 0 1-1.782-1.805zm.2 4.011c0-.146.058-.2.2-.2h2.776c.146 0 .2.058.2.2v13.929c0 .146-.029.2-.2.2h-2.744c-.175 0-.234-.088-.234-.233z"
}));

/***/ }),

/***/ "n3ko":
/***/ (function(module, exports, __webpack_require__) {

var isObject = __webpack_require__("93I4");

module.exports = function (it, TYPE) {
  if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');
  return it;
};

/***/ }),

/***/ "n53Y":
/***/ (function(module, exports, __webpack_require__) {

/* WEBPACK VAR INJECTION */(function(global, process) {var defaultEncoding;
/* istanbul ignore next */

if (global.process && global.process.browser) {
  defaultEncoding = 'utf-8';
} else if (global.process && global.process.version) {
  var pVersionMajor = parseInt(process.version.split('.')[0].slice(1), 10);
  defaultEncoding = pVersionMajor >= 6 ? 'utf-8' : 'binary';
} else {
  defaultEncoding = 'utf-8';
}

module.exports = defaultEncoding;
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("yLpj"), __webpack_require__("8oxB")))

/***/ }),

/***/ "n6ED":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

const _excluded = ["styles"];

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }

function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

var _default = _ref => {
  let {
    styles = {}
  } = _ref,
      props = _objectWithoutProperties(_ref, _excluded);

  return /*#__PURE__*/_react.default.createElement("svg", _extends({
    xmlns: "http://www.w3.org/2000/svg",
    width: "96",
    height: "96",
    viewBox: "0 0 96 96"
  }, props), /*#__PURE__*/_react.default.createElement("defs", null), /*#__PURE__*/_react.default.createElement("g", {
    id: "ICONS_96",
    "data-name": "ICONS 96"
  }, /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M72 87H24a5.006 5.006 0 0 1-5-5V14a5.006 5.006 0 0 1 5-5h48a5.006 5.006 0 0 1 5 5v68a5.006 5.006 0 0 1-5 5zM24 11a3 3 0 0 0-3 3v68a3 3 0 0 0 3 3h48a3 3 0 0 0 3-3V14a3 3 0 0 0-3-3z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M48 83.25A3.25 3.25 0 1 1 51.25 80 3.254 3.254 0 0 1 48 83.25zm0-5A1.75 1.75 0 1 0 49.75 80 1.752 1.752 0 0 0 48 78.25z"
  }), /*#__PURE__*/_react.default.createElement("circle", {
    className: styles["cls-1"] || "cls-1",
    cx: "48",
    cy: "14",
    r: "1.25"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["cls-1"] || "cls-1",
    d: "M48 15.75A1.75 1.75 0 1 1 49.75 14 1.752 1.752 0 0 1 48 15.75zm0-2.5a.75.75 0 1 0 .75.75.751.751 0 0 0-.75-.75z"
  })));
};

exports.default = _default;

/***/ }),

/***/ "n765":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__("q1tI");
var react_default = /*#__PURE__*/__webpack_require__.n(react);

// EXTERNAL MODULE: ./node_modules/react-intl-cdo/lib/index.es.js + 1 modules
var index_es = __webpack_require__("VIzJ");

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Icon/js/Icon.js
var Icon = __webpack_require__("trqI");
var Icon_default = /*#__PURE__*/__webpack_require__.n(Icon);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/hosts/Host.ts + 9 modules
var Host = __webpack_require__("Dy/p");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/hosts/HostId.ts
var HostId = __webpack_require__("m3S7");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/constants.ts
var constants = __webpack_require__("YVc3");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/images/ai_icon.png
var ai_icon = __webpack_require__("TJpV");
var ai_icon_default = /*#__PURE__*/__webpack_require__.n(ai_icon);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/images/ps_icon.png
var ps_icon = __webpack_require__("mjE3");
var ps_icon_default = /*#__PURE__*/__webpack_require__.n(ps_icon);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/images/xd_icon.png
var xd_icon = __webpack_require__("MlVH");
var xd_icon_default = /*#__PURE__*/__webpack_require__.n(xd_icon);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/images/id_icon.png
var id_icon = __webpack_require__("oaGZ");
var id_icon_default = /*#__PURE__*/__webpack_require__.n(id_icon);

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/images/onboarding/S_Illu_CreateNewFile.svg
function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}


/* harmony default export */ var S_Illu_CreateNewFile = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", _extends({
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 72 72"
}, props), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["spaces_svg_icon_gray"] || "spaces_svg_icon_gray",
  d: "M61.86 54.54a.76.76 0 0 1-.75-.75V22.08a4.67 4.67 0 0 0-1.39-3.34l-7.5-7.48a4.71 4.71 0 0 0-3.33-1.37h-25a4.22 4.22 0 0 0-4.22 4.22v12.48a.75.75 0 0 1-1.5 0V14.11a5.73 5.73 0 0 1 5.73-5.72h25a6.18 6.18 0 0 1 4.39 1.81l7.5 7.47a6.19 6.19 0 0 1 1.83 4.41v31.71a.75.75 0 0 1-.76.75z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["spaces_svg_icon_gray"] || "spaces_svg_icon_gray",
  d: "M56.89 62.84h-33a5.73 5.73 0 0 1-5.72-5.72v-5.54a.75.75 0 0 1 1.5 0v5.54a4.22 4.22 0 0 0 4.22 4.22h33a4.22 4.22 0 0 0 4.22-4.22v-3.33a.75.75 0 0 1 1.5 0v3.33a5.72 5.72 0 0 1-5.72 5.72z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["spaces_svg_icon_tint"] || "spaces_svg_icon_tint",
  d: "M18.93 48.1a.75.75 0 0 1-.75-.75v-17a.75.75 0 0 1 1.5 0v17a.76.76 0 0 1-.75.75z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["spaces_svg_icon_tint"] || "spaces_svg_icon_tint",
  d: "M27.72 39.31H10.14a.75.75 0 0 1 0-1.5h17.58a.75.75 0 0 1 0 1.5z"
})));
// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/actions/createDocument.tsx











/**
 * Ability to create a new document from the "Add to space" CTA.
 * Create New is only present in creative applications and only creates the native document of the app
 * This option does not show in CCD nor Assets Web
 * Applications that do not autosave new documents will just create an untitled document without saving to any location.
 */
/* harmony default export */ var createDocument = __webpack_exports__["a"] = ((getArgs) => {
    let icon;
    switch (Host["a" /* default */].id) {
        case HostId["a" /* HostId */].AI:
            icon = react_default.a.createElement("img", { src: ai_icon_default.a });
            break;
        case HostId["a" /* HostId */].PS:
            icon = react_default.a.createElement("img", { src: ps_icon_default.a });
            break;
        case HostId["a" /* HostId */].ID:
            icon = react_default.a.createElement("img", { src: id_icon_default.a });
            break;
        default:
            icon = react_default.a.createElement("img", { src: xd_icon_default.a });
            break;
    }
    return {
        id: 'createDocument',
        icon: react_default.a.createElement(Icon_default.a, { size: "S" }, icon),
        emptyStateIcon: react_default.a.createElement(S_Illu_CreateNewFile, null),
        iconOnly: false,
        name: (react_default.a.createElement(index_es["c" /* FormattedMessage */], { id: "button.createDocument", values: { appName: constants["s" /* PRODUCT_NAMES */][Host["a" /* default */].id] } })),
        quiet: true,
        supportsMultiple: false,
        onClick: async () => {
            const args = await getArgs();
            Host["a" /* default */].createDocument(args);
        },
    };
});


/***/ }),

/***/ "n9/T":
/***/ (function(module, exports, __webpack_require__) {

// extracted by mini-css-extract-plugin

/***/ }),

/***/ "nNaB":
/***/ (function(module) {

module.exports = JSON.parse("{\"Breadcrumbs\":\"导航栏\"}");

/***/ }),

/***/ "nOLB":
/***/ (function(module) {

module.exports = JSON.parse("{\"a11y.button.canvases\":\"{name}\",\"a11y.button.libraries\":\"{name}，資料庫\",\"a11y.button.listGridToggle\":\"檢視切換，{toggledView, select, grid {縮圖} list {清單}}檢視\",\"a11y.button.project\":\"{name}，專案\",\"a11y.button.published\":\"{name}，{extension}\",\"a11y.button.selectFolder\":\"選取檔案夾\",\"a11y.button.working\":\"{name}，{extension}，修改日期 {modified}\",\"a11y.strings.folder\":\"檔案夾\",\"header.action.newProject\":\"新增專案\",\"header.action.newLibrary\":\"新資料庫\",\"header.action.browseAll\":\"瀏覽全部\",\"header.Name\":\"名稱\",\"header.Size\":\"大小\",\"header.Sharing\":\"成員\",\"header.Team\":\"工作區\",\"header.DateModified\":\"修改時間\",\"header.DateCreated\":\"建立時間\",\"header.Status\":\"已加入我的最愛\",\"header.SortBy\":\"排序方式\",\"header.sort.label\":\"排序\",\"header.ChangeSortDirection\":\"將排序方向變更為\",\"header.SortBy.asc\":\"遞增\",\"header.SortBy.desc\":\"遞減\",\"header.selectAll\":\"全選\",\"header.reverseOrder\":\"反轉順序\",\"header.showCompatible\":\"相容檔案\",\"header.showEverything\":\"全部\",\"product.illustrator.web\":\"Illustrator Web (Beta)\",\"product.photoshop.web\":\"Photoshop Web (Beta)\",\"status.followed\":\"是\",\"status.unfollowed\":\"否\",\"team.usm.defaultName\":\"工作區「{name}」\",\"space.access.private.description\":\"僅限受邀人員\",\"space.access.private.tooltip\":\"只有受邀人員可以存取此專案\",\"space.access.team.description\":\"工作區中的任何人和受邀者\",\"space.access.team.tooltip\":\"「{team}」中的任何人都可以存取此專案\",\"yourProjects.title\":\"專案\",\"yourProjects.librariesTab.title\":\"團隊資料庫\",\"yourProjects.empty.spaces\":\"建立更多專案並邀請更多工作區成員\",\"browseAll.title\":\"瀏覽全部\",\"yourFiles.title\":\"您的文件\",\"yourLibraries.title\":\"資料庫\",\"yourLibraries.metadata\":\"資料庫\",\"canvas.metadata\":\"畫布\",\"projectInfo.action.view\":\"檢視資訊\",\"projectInfo.action.edit\":\"編輯專案\",\"projectInfo.empty.cta\":\"建立新專案\",\"projectInfo.empty.description\":\"Creative Cloud Projects 可簡化尋找、組織、共用和決策的過程，將創意專案所需的一切都集中於一處。\",\"projectInfo.empty.heading\":\"更多創作，更少追趕。\",\"projectInfo.error.description\":\"請稍後再試\",\"projectInfo.error.heading\":\"無法載入「{section}」\",\"projectInfo.new.error.title\":\"無法建立新專案\",\"projectInfo.new.noPermission.description\":\"如需詳細資訊，請聯絡您的管理員。\",\"projectInfo.title.create\":\"新增專案\",\"projectInfo.title.edit\":\"編輯專案\",\"projectInfo.title.view\":\"專案資訊\",\"projectInfo.access.title\":\"哪些人可以編輯此專案\",\"projectInfo.access.warning\":\"如果您將權限變更為「僅限受邀人員」，部分成員可能無法存取此專案。\",\"projectInfo.organization\":\"組織\",\"projectInfo.organization.placeholder\":\"選取一個\",\"projectInfo.description\":\"描述\",\"textField.invalid.characters\":\"名稱不得包含下列字元：\\\\\\\\ / * ? \\\" | : < >\",\"textField.invalid.duplicateName\":\"此組織中已有使用此名稱的專案。\",\"textField.invalid.duplicateName.space\":\"此工作區中已有使用此名稱的專案。\",\"textField.invalid.duplicateName.team\":\"此組織中已有使用此名稱的工作區。\",\"textField.invalid.empty\":\"名稱不能為空白\",\"textField.invalid.generic\":\"無效的名稱\",\"textField.invalid.length\":\"名稱不得超過 50 個字元\",\"textField.invalid.nameEndsWithDot\":\"名稱不得以句號結尾\",\"textField.invalid.offline\":\"重新連線以存取您的所有工作區和專案。若要從您的專案中檢視本機檔案，請前往「首頁」。\",\"projectInfo.textField.placeholder\":\"為此專案命名\",\"projectInfo.team\":\"工作區\",\"projectInfo.description.placeholder\":\"例如: 客戶專案的檔案、回饋意見和參考資料\",\"projectInfo.description.invalidLength\":\"說明不得超過 1,000 個字元\",\"projectInfo.toast.success.new\":\"專案已成功建立：{name}\",\"projectInfo.toast.success.update\":\"已成功更新專案：{name}\",\"projectInfo.toast.error.generic\":\"無法{create, select, true {建立} other {編輯}}專案\",\"team.empty.heading\":\"Projects 可讓所有人達成共識、共同作業\",\"team.empty.description\":\"檔案遭到鎖定、管理混淆的版本、寄送螢幕擷圖以供審核，您對以上情況感到厭倦了嗎? 請使用空間來組織專案、收集資源和回饋意見，並共用整個團隊所需處理的檔案。\",\"team.empty.createSpace\":\"建立專案\",\"team.empty.inviteMembers\":\"邀請成員\",\"team.empty.startHere\":\"從這裡開始\",\"team.create.success\":\"已成功建立工作區：{name}\",\"team.create.error.generic\":\"建立工作區失敗\",\"team.edit.success\":\"已成功更新工作區：{name}\",\"team.edit.error.generic\":\"更新工作區失敗\",\"team.archive.success\":\"{count, plural, =1 {# 個工作區} other {# 個工作區}}已刪除\",\"team.archive.error.generic\":\"無法刪除 {count, plural, =1 {# 個工作區} other {# 個工作區}}\",\"team.error.generic\":\"很抱歉，發生一些錯誤。\",\"project1Up.action.projectInfo\":\"檢視資訊\",\"project1up.region.space.ariaLabel\":\"「{projectName}」，專案\",\"project1Up.section.libraries\":\"資料庫\",\"project1Up.section.libraries.empty.cta\":\"新增 Creative Cloud Libraries\",\"project1Up.section.libraries.empty.description\":\"新增您創作所需的資料庫連結。\",\"project1Up.section.libraries.empty.heading\":\"將所有內容集中於一處\",\"project1Up.section.filter\":\"篩選器\",\"project1Up.section.filter.label\":\"依關鍵字篩選\",\"project1Up.section.filter.enterKeyword\":\"輸入關鍵字\",\"project1Up.section.filterFiles.empty.heading\":\"沒有與所選篩選器相符的結果\",\"project1Up.section.compatibleFiles.empty.heading\":\"此專案中沒有相容的檔案\",\"project1Up.section.workingFiles\":\"工作檔案\",\"project1Up.section.workingFiles.empty.addFiles\":\"新增檔案\",\"project1Up.section.workingFiles.empty.createFolder\":\"建立新檔案夾\",\"project1Up.section.workingFiles.empty.description\":\"逐一查看專案並與其他成員共同作業。\",\"project1Up.section.workingFiles.empty.heading\":\"在需要時處理所要的工作\",\"project1Up.section.published\":\"已發佈\",\"project1Up.section.published.empty.cta\":\"如何發布連結\",\"project1Up.section.published.empty.description\":\"傳送僅限檢視的連結，以在適當的時間從適當的人獲得回饋意見。\",\"project1Up.section.published.empty.description.readonly\":\"當有人需要回饋意見或評論時，他們會在這裡新增連結。\",\"project1Up.section.published.empty.heading\":\"有目的地分享\",\"project1Up.section.published.empty.heading.readonly\":\"此專案中沒有已發佈的項目\",\"project1Up.section.canvases\":\"畫布\",\"project1Up.section.canvases.empty.cta\":\"新增 Creative Cloud 畫布\",\"project1Up.section.canvases.empty.description\":\"新增所需內容的連結以進行工作。\",\"project1Up.section.canvases.empty.heading\":\"將所有內容集中於一處\",\"project1Up.section.files\":\"檔案\",\"project1Up.error.accessDenied.heading\":\"您沒有存取權\",\"project1Up.error.accessDenied.description\":\"您已從此專案中移除。如果您認為此訊息有誤，請聯絡您的管理員。\",\"project1Up.header.seeAll\":\"檢視全部\",\"project1up.subheader.selected\":\"{count, plural, =1 {# 項目} other {# 項目}} selected\",\"project1up.subheader.emptyDescription\":\"在您的專案中新增說明\",\"project1up.subheader.canvases.title\":\"畫布\",\"project1up.subheader.canvases.subtitle\":\"待辦事項：畫布字幕\",\"project1up.subheader.libraries.title\":\"資料庫\",\"project1up.subheader.libraries.subtitle\":\"成員可以在這裡新增 Creative Cloud Libraries 的連結。\",\"project1up.subheader.working.title\":\"工作檔案\",\"project1up.subheader.working.subtitle\":\"此專案的成員可以編輯這些檔案。\",\"project1up.subheader.output.title\":\"已發佈\",\"project1up.subheader.output.subtitle\":\"{contributor, select, true {與您專案以外的人共用作品的唯讀版本。} other {檢視和評論這些唯讀項目}}\",\"project.subtitle\":\"專案\",\"project.countContributors\":\"{count, plural, =1 {# 位成員} other {# 位成員}}\",\"project.versionError.reload.description\":\"嘗試重新整理您的瀏覽器。\",\"project.versionError.reload.title\":\"無法存取專案\",\"project.versionError.update.description\":\"在更新應用程式之前，您無法存取此專案。\",\"project.versionError.update.title\":\"更新 {appName} 以打開\",\"project.alreadyDiscarded.title\":\"此專案已刪除\",\"project.alreadyDiscarded.description\":\"如果您認為此訊息有誤，請聯絡您的管理員，或瀏覽其他內容。\",\"project.deleted.title\":\"此專案已永久刪除\",\"project.deleted.description\":\"您無法存取此專案，因為該專案已無法使用。\",\"project.metadataError.backLabel\":\"返回專案\",\"project.metadataError.description\":\"我們找不到您要找的專案，或者您沒有存取權。\",\"project.metadataError.title\":\"抱歉，發生一些錯誤。\",\"folder.subtitle\":\"檔案夾\",\"libraries.toast.add.start\":\"正在新增 {count, plural, =1 {# 個資料庫} other {# 個資料庫}}\",\"libraries.toast.add.success\":\"已新增 {count, plural, =1 {# 個資料庫} other {# 個資料庫}}\",\"libraries.toast.add.error\":\"新增 {count, plural, =1 {# 個資料庫} other {# 個資料庫}}失敗。請再試一次。\",\"libraries.toast.add.duplicate\":\"此資料庫已經存在\",\"libraries.toast.add.onlyDuplicates\":\"無法新增 {count, plural, =1 {# 個資料庫，因為該資料庫已經存在} other {# 個資料庫，因為這些資料庫已經存在}}。\",\"libraries.toast.delete.success\":\"已成功移除 {count, plural, =1 {# 個資料庫} other {# 個資料庫}}\",\"libraries.toast.delete.error\":\"移除 {count, plural, =1 {# 個資料庫} other {# 個資料庫}}失敗\",\"libraries.toast.follow.inProgress\":\"正在關注 {count, plural, =1 {# 個資料庫} other {# 個資料庫}}\",\"libraries.toast.follow.success\":\"已關注 {count, plural, =1 {# 個資料庫} other {# 個資料庫}}\",\"libraries.toast.follow.error\":\"關注 {count, plural, =1 {# 個資料庫} other {# 個資料庫}}失敗\",\"libraries.toast.unfollow.inProgress\":\"正在取消關注 {count, plural, =1 {# 個資料庫} other {# 個資料庫}}\",\"libraries.toast.unfollow.success\":\"已取消關注 {count, plural, =1 {# 個資料庫} other {# 個資料庫}}\",\"libraries.toast.unfollow.error\":\"取消關注 {count, plural, =1 {# 個資料庫} other {# 個資料庫}}失敗\",\"libraries.modal.empty.heading\":\"無資料庫\",\"libraries.modal.empty.description\":\"您的組織尚未共享任何資料庫\",\"libraries.modal.error.limitExceeded\":\"無法新增資料庫\",\"libraries.modal.error.limitExceeded.detail\":\"一個專案最多可新增 100 個資料庫。請移除一些資料庫，再新增其他資料庫。\",\"libraries.brokenResources\":\"由於您沒有存取權，所以未顯示某些資料庫。請聯絡其他會員以取得更多資訊。\",\"copy.start\":\"正在複製 {count, plural, =1 {# 個項目} other {# 個項目}}\",\"copy.failure\":\"無法複製 {count, plural, =1 {# 個項目} other {# 個項目}}\",\"copy.failure.partial\":\"無法複製部分項目\",\"copy.success\":\"已複製 {count, plural, =1 {# 個項目} other {# 個項目}}\",\"copy.conflictSuffix\":\"複本\",\"move.start\":\"正在移動 {count, plural, =1 {# 個項目} other {# 個項目}}\",\"move.failure\":\"無法移動 {count, plural, =1 {# 個項目} other {# 個項目}}\",\"move.failure.partial\":\"無法移動部分項目\",\"move.success\":\"已移動 {count, plural, =1 {# 個項目} other {# 個項目}}\",\"upload.start\":\"正在上傳 {count, plural, =1 {# 個項目} other {# 個項目}}\",\"upload.failure\":\"無法上傳 {count, plural, =1 {# 個項目} other {# 個項目}}\",\"upload.failure.partial\":\"無法上傳部分項目\",\"upload.failure.snapshot\":\"此項目不受支援\",\"upload.success\":\"已上傳 {count, plural, =1 {# 個項目} other {# 個項目}}\",\"download.start\":\"正在下載 {count, plural, =1 {# 個項目} other {# 個項目}}\",\"download.failure\":\"無法下載 {count, plural, =1 {# 個項目} other {# 個項目}}\",\"download.failure.partial\":\"無法下載部分項目\",\"download.success\":\"已下載 {count, plural, =1 {# 個項目} other {# 個項目}}\",\"delete.failure\":\"無法刪除 {count, plural, =1 {# 個項目} other {# 個項目}}\",\"delete.failure.partial\":\"無法刪除部分項目\",\"delete.success\":\"已刪除 {count, plural, =1 {# 個項目} other {# 個項目}}\",\"jobs.failure\":\"{count, plural, =1 {# 個項目} other {# 個項目}}已失敗\",\"jobs.inProgress\":\"正在處理…\",\"jobs.success\":\"{count, plural, =1 {# 個項目} other {# 個項目}}已完成\",\"restore.failure\":\"無法復原 {count, plural, =1 {# 個項目} other {# 個項目}}\",\"restore.failure.partial\":\"無法復原部分項目\",\"restore.success\":\"已復原 {count, plural, =1 {# 個項目} other {# 個項目}}\",\"rename.start\":\"正在重新命名\",\"rename.success\":\"已重新命名 {count, plural, =1 {# 個項目} other {# 個項目}}\",\"rename.failure\":\"發生伺服器錯誤，無法重新命名項目\",\"rename.failure.conflict\":\"這裡已有使用此名稱的項目\",\"rename.offline.heading\":\"無法重新命名\",\"rename.offline\":\"您處於離線狀態，因此無法重新命名該項目。請重新連線以執行此動作。\",\"bookmark.follow.error\":\"無法將此專案加入我的最愛\",\"bookmark.unfollow.error\":\"無法將此專案從我的最愛移除\",\"bookmark.follow.success\":\"已將「{projectName}」成功加入我的最愛\",\"bookmark.unfollow.success\":\"已成功將「{projectName}」從我的最愛移除\",\"bookmark.bulk.follow.success\":\"已成功將 {count, plural, =1 {# 個項目} other {# 個項目}}加入我的最愛\",\"bookmark.bulk.follow.partial\":\"無法將部分項目加入我的最愛\",\"bookmark.bulk.follow.error\":\"無法將 {count, plural, =1 {# 個項目} other {# 個項目}}加入我的最愛\",\"bookmark.bulk.unfollow.success\":\"已成功將 {count, plural, =1 {# 個項目} other {# 個項目}}從我的最愛移除\",\"bookmark.bulk.unfollow.partial\":\"無法將部分項目從我的最愛移除\",\"bookmark.bulk.unfollow.error\":\"無法將 {count, plural, =1 {# 個項目} other {# 個項目}}從我的最愛移除\",\"copyLink.success\":\"連結已複製到剪貼簿\",\"copyLink.failure\":\"無法複製連結\",\"starterUser.project1upNavigation\":\"您的入門計劃不包含在專案中開啟文件\",\"starterUser.project1upNavigationCDPSave\":\"您的入門計劃不包含在專案中儲存文件\",\"invite.failure\":\"無法傳送邀請，請再試一次\",\"accessibility.backButton\":\"返回\",\"button.role\":\"按鈕\",\"button.actions\":\"動作\",\"button.add\":\"新增\",\"button.addFiles\":\"新增檔案\",\"button.addLibrary\":\"新增資料庫\",\"button.createDocument\":\"新 {appName} 檔案\",\"button.library\":\"資料庫\",\"button.back\":\"返回\",\"button.browse\":\"瀏覽全部\",\"button.cancel\":\"取消\",\"button.okay\":\"確定\",\"button.canvas\":\"畫布\",\"button.addCanvas\":\"新畫布\",\"button.changeDefaultApp\":\"變更預設應用程式...\",\"button.close\":\"關閉\",\"button.continue\":\"繼續\",\"button.copy\":\"複製到…\",\"button.copyLink\":\"複製連結\",\"button.create\":\"建立\",\"button.createNewFolder\":\"建立新檔案夾\",\"button.newFile\":\"新檔案\",\"button.newFolder\":\"新檔案夾\",\"button.delete\":\"刪除\",\"button.deleteResource\":\"移除\",\"button.done\":\"完成\",\"button.download\":\"下載\",\"button.favorite\":\"加入我的最愛\",\"button.follow\":\"關注\",\"button.invite\":\"邀請\",\"button.inviteLabel\":\"邀請人員\",\"button.leave\":\"離開\",\"button.leaveProject\":\"離開工作區\",\"button.move\":\"移動到...\",\"button.next\":\"下一頁\",\"button.ok\":\"確定\",\"button.open\":\"開啟\",\"button.openWith\":\"開啟時使用\",\"button.open.appName\":\"{appName} {isDefault, select, true {(預設)} other {}}\",\"button.redo\":\"再試一次\",\"button.reload\":\"重新載入\",\"button.rename\":\"重新命名\",\"button.restore\":\"復原\",\"button.retry\":\"重試\",\"button.save\":\"儲存\",\"button.select\":\"選擇\",\"button.share\":\"共用\",\"button.skipTour\":\"略過導覽\",\"button.undo\":\"還原\",\"button.unfavorite\":\"移除我的最愛\",\"button.unfollow\":\"取消關注\",\"button.update\":\"更新\",\"button.upgrade\":\"升級\",\"button.view\":\"檢視全部\",\"button.viewProject\":\"檢視專案\",\"button.viewTarget\":\"檢視\",\"button.createWeblink\":\"新增網頁連結\",\"button.leaveTeam\":\"離開工作區\",\"button.renameTeam\":\"重新命名工作區\",\"button.editTeam\":\"編輯工作區資訊\",\"button.archiveTeam\":\"刪除工作區\",\"button.upload\":\"上傳檔案\",\"button.goToDeleted\":\"檢視已刪除項目\",\"button.viewEverything\":\"檢視所有內容\",\"button.viewInWeb\":\"在網頁中檢視\",\"abbreviations.fileSize.byte\":\"B\",\"abbreviations.fileSize.kilobyte\":\"KB\",\"abbreviations.fileSize.megabyte\":\"MB\",\"abbreviations.fileSize.gigabyte\":\"GB\",\"abbreviations.fileSize.terabyte\":\"TB\",\"statusIcon.conflicted\":\"同步衝突\",\"statusIcon.onlineOnly\":\"僅限線上使用\",\"statusIcon.availableOffline\":\"可離線使用\",\"statusIcon.syncing\":\"同步...\",\"statusIcon.waitingToSync\":\"正在等待同步\",\"statusMessage.offline.description\":\"重新連線以存取您的所有工作區和專案。若要從您的專案中檢視本機檔案，請前往「首頁」。\",\"statusMessage.offline.heading\":\"您已中斷連線\",\"statusMessage.offline.toast\":\"您已中斷連線，因此部分功能和檔案可能無法使用。\",\"toggle.listView\":\"清單檢視\",\"toggle.gridView\":\"縮圖檢視\",\"color.fuchsia\":\"紫紅\",\"color.indigo\":\"靛青\",\"color.celery\":\"芹綠色\",\"color.magenta\":\"洋紅\",\"color.yellow\":\"黃色\",\"color.seafoam\":\"海洋綠\",\"color.chartreuse\":\"蕁麻酒綠\",\"color.purple\":\"紫色\",\"color.blue\":\"藍色\",\"color.red\":\"紅色\",\"color.orange\":\"橙色\",\"color.green\":\"綠色\",\"color.label\":\"專案顏色\",\"tooltip.offline.general\":\"重新連線以採取此動作\",\"tooltip.moreFaces\":\"+ {number} 以上\",\"action.leave.space.success\":\"您已離開 {count, plural, =1 {# 個專案} other {# 個專案}}\",\"action.leave.prototype.success\":\"{count, plural, =1 {# 個原型} other {# 個原型}}的存取權已移除\",\"action.leave.file.success\":\"{count, plural, =1 {# 個檔案} other {# 個檔案}}的存取權已移除\",\"action.leave.canvas.success\":\"{count, plural, =1 {# 個畫布} other {# 個畫布}}的存取權已移除\",\"action.leave.team.success\":\"您已離開 1 個工作區\",\"action.leave.space.error\":\"無法離開此專案\",\"action.leave.prototype.error\":\"無法離開此原型\",\"action.leave.file.error\":\"無法離開此檔案\",\"action.leave.team.error\":\"無法離開此工作區\",\"action.leave.canvas.error\":\"無法離開此畫布\",\"action.leave.space.partial.error\":\"無法離開所有專案\",\"action.leave.prototype.partial.error\":\"無法離開所有原型\",\"action.leave.file.partial.error\":\"無法離開所有檔案\",\"action.leave.canvas.partial.error\":\"無法離開所有畫布\",\"action.leave.error.onlyContributor\":\"您是唯一成員。請新增另一位成員後再離開。\",\"action.leave.error.addressBookGroupMember\":\"請離開此群組，然後再試一次。\",\"action.leave.error.admin\":\"由於您是管理員，因此無法離開。\",\"action.leave.error.generic\":\"由於發生錯誤，因此您無法離開。\",\"action.reportAbuse\":\"舉報不當使用\",\"action.reportAbuse.required\":\"必要\",\"action.reportAbuse.titleText\":\"如果您認為這個 Creative Cloud 內容違反 Adobe 使用條款，可以填寫這份簡表來舉報此內容。\",\"action.reportAbuse.emailInput\":\"您的電子郵件\",\"action.reportAbuse.nameInput\":\"您的名稱\",\"action.reportAbuse.radioButtonText\":\"舉報此內容的原因\",\"action.reportAbuse.defamation\":\"誹謗\",\"action.reportAbuse.hate\":\"種族主義或仇恨性內容\",\"action.reportAbuse.trademark\":\"侵犯商標\",\"action.reportAbuse.pornography\":\"色情內容\",\"action.reportAbuse.vulgar\":\"冒犯的內容\",\"action.reportAbuse.other\":\"其他\",\"action.reportAbuse.inappropriate\":\"不適當\",\"action.reportAbuse.age\":\"年齡不正確\",\"action.reportAbuse.gender\":\"性別不正確\",\"action.reportAbuse.textAreaTitle\":\"請詳細說明您顧慮的事項\",\"action.reportAbuse.describeConcern\":\"描述疑慮\",\"action.reportAbuse.success\":\"已成功舉報不當使用\",\"action.reportAbuse.failure\":\"無法舉報不當使用\",\"action.menu.label\":\"動作選單\",\"action.label\":\"動作\",\"dialog.genericError.description\":\"抱歉，發生錯誤。\",\"dialog.genericError.title\":\"未預期的錯誤\",\"dialog.leave.space.title\":\"離開{count, plural, =1 {{name}} other {專案}}\",\"dialog.leave.prototype.title\":\"離開{count, plural, =1 {此原型} other {原型}}\",\"dialog.leave.file.title\":\"離開{count, plural, =1 {此檔案} other {檔案}}\",\"dialog.leave.canvas.title\":\"離開{count, plural, =1 {此畫布} other {畫布}}\",\"dialog.leave.team.title\":\"要說再見了嗎?\",\"dialog.leave.team.detail\":\"如果您移除自己，您將無法還原此動作。如果您想要重新加入此工作區，請聯絡管理員。\",\"dialog.leave.space.detail\":\"您將無法存取此專案中不屬於您的項目。離開「{projectName}」的動作無法還原。\",\"dialog.leave.prototype.detail\":\"若沒有另一個邀請，您將無法再次存取。\",\"dialog.leave.file.detail\":\"若沒有另一個邀請，您將無法再次存取。\",\"dialog.leave.canvas.detail\":\"若沒有另一個邀請，您將無法再次存取。\",\"dialog.leave.detail\":\"{type, select, space {您將無法存取{count, plural, =1 {此專案} other {這些專案}}中不屬於您的項目。離開{count, plural, =1 {「{name}」} other {這些專案}}的動作無法還原。} other {若沒有另一個邀請，您將無法再次存取{count, plural, =1 {此專案} other {這些專案}}{count, plural, =1 {。} other {：}}}}\",\"dialog.deleteFailed.title\":\"無法刪除所有項目\",\"dialog.deleteWarning.description\":\"{type, select, spaces {此動作將刪除這些專案中所有成員的內容：} other {此動作將刪除此專案中所有成員的下列內容：}}\",\"dialog.deleteWarning.title\":\"{type, select, space {刪除 {count} {count, plural, =1 {個專案} other {個專案}}} other {刪除 {count} {count, plural, =1 {個項目} other {個項目}}}}\",\"dialog.deleteFailed.description.unauthorized\":\"無法刪除，因為您已從此專案中移除：\",\"dialog.deleteFailed.description.alreadyDeleted\":\"由於其他人已將此項目刪除，因此無法刪除：\",\"dialog.deleteFailed.description.unknown\":\"由於發生錯誤，因此無法刪除：\",\"dialog.cantCopyAllItems\":\"無法複製所有項目\",\"dialog.cantCopyBecauseSomethingWentWrong\":\"由於發生錯誤，因此無法複製：\",\"dialog.cantCopyBecauseYouWereSignedOut\":\"由於您已登出，因此無法複製：\",\"dialog.cantCopyBecauseYouWereRemoved\":\"無法複製，因為您已從此專案中移除：\",\"dialog.cantCopyBecauseItemWasDeleted\":\"由於其他人已將此項目刪除，因此無法複製：\",\"dialog.cantCopyBecauseItemExists\":\"由於您嘗試複製到的位置已存在此項目，因此無法複製：\",\"dialog.cantMoveAllItems\":\"無法移動所有項目\",\"dialog.cantMoveBecauseSomethingWentWrong\":\"由於發生錯誤，因此無法移動：\",\"dialog.cantMoveBecauseYouWereSignedOut\":\"由於您已登出，因此無法移動：\",\"dialog.cantMoveBecauseYouWereRemoved\":\"無法移動，因為您已從此專案中移除：\",\"dialog.cantMoveBecauseItemWasDeleted\":\"由於其他人已將此項目刪除，因此無法移動：\",\"dialog.cantMoveBecauseItemExists\":\"由於您嘗試移動到的位置已存在此項目，因此無法移動：\",\"dialog.createFolder.error\":\"發生伺服器錯誤，無法儲存檔案夾\",\"dialog.createFolder.nameConflict\":\"您已擁有使用此名稱的檔案夾。\",\"dialog.createFolder.placeholder\":\"檔案夾名稱\",\"dialog.createFolder.title\":\"建立檔案夾\",\"dialog.createFolder.success\":\"已成功建立檔案夾\",\"dialog.createWeblink.error\":\"不支援的 URL\",\"dialog.createWeblink.tooManyRequests\":\"發生非預期的網路錯誤。請再試一次。\",\"dialog.createWeblink.success\":\"1 個項目已新增\",\"dialog.createWeblink.nameConflict\":\"此標題已經存在\",\"dialog.createWeblink.name.placeholder\":\"輸入此連結的名稱\",\"dialog.createWeblink.link.placeholder\":\"https://\",\"dialog.createWeblink.name\":\"自訂標題\",\"dialog.createWeblink.link\":\"連結\",\"dialog.createWeblink.title\":\"建立網頁連結\",\"app.type.webLink\":\"網頁連結\",\"dialog.createCanvas.error\":\"無法建立畫布\",\"dialog.move.title\":\"移動到專案「{projectName}」\",\"dialog.move.detail\":\"若移動此項目，可存取的人將隨之變更。\",\"moveToTeam.confirm.title\":\"移動到「{name}」工作區\",\"moveToTeam.confirm.message\":\"將您的專案移動到這裡將會變更可存取它們的人員。任何有權存取您工作區的人都可以存取您的專案。\",\"moveToTeam.disabled.differentOrg.tooltip.message\":\"您不得將專案移動到不同組織的工作區中。\",\"moveToSpace.disabled.differentOrg.tooltip.message\":\"您不得將項目移動到不同組織的專案中。\",\"moveToTeam.success\":\"您已將 {count, plural, =1 {# 個專案} other {# 個專案}}移動到「{name}」工作區\",\"confirmationDialog.dontShowAgain\":\"不再顯示\",\"dialog.open.title\":\"在網頁上開啟\",\"dialog.open.detail\":\"您無法在 {appName} 中開啟這個檔案，但您可以在瀏覽器中存取它。\",\"dialog.renameTeam.title\":\"重新命名工作區\",\"dialog.renameTeam.placeholder\":\"輸入此工作區的名稱\",\"dialog.renameTeam.error\":\"抱歉，發生錯誤。\",\"dialog.renameTeam.nameConflict\":\"此名稱已存在\",\"dialog.archiveTeam.title\":\"是否要刪除此工作區?\",\"dialog.archiveTeam.detail\":\"如果您移除自己，您將無法還原此動作。如果您想要重新加入此工作區，請聯絡管理員。\",\"dialog.saveToCloud.title\":\"檔案已儲存至 Creative Cloud\",\"dialog.saveToCloud.detail\":\"您的雲端文件現在提供版本記錄、邀請和共同編輯、在其他裝置上即時存取等功能。您可以在這裡及 Creative Cloud 應用程式中找到它。\",\"input.invalidCharInput\":\"名稱不得包含下列字元：\\\\\\\\ / * ? \\\" | :\",\"input.invalidEmptyInput\":\"{names, select, true {名稱} other {標題}}不得為空白\",\"input.nameTooLong\":\"{names, select, true {名稱} other {標題}}不得超過 {maxLength} 個字元\",\"input.nameEndsWithDot\":\"{names, select, true {名稱} other {標題}}不得以句號結尾\",\"input.weblink.nameRestricted\":\"網頁連結不能具有以下標題：con、prn、aux、nul、com#、lpt#\",\"input.nameRestricted\":\"資產不能具有以下名稱：con/prn/aux/nul/com#/lpt#\",\"input.weblink.invalidCharInput\":\"標題不得僅包含空格，也不能包含下列字元：\\\\\\\\ / * ? \\\" | : < > \",\"input.name.invalidCharInput\":\"名稱不得僅包含空格，也不能包含下列字元：\\\\\\\\ / * ? \\\" | : < > \",\"cdpFooter.orphanedArtifactsWarning\":\"與您要移動的項目連接的已發佈連結將會保留在原始專案中\",\"cdpFooter.libraryPrivacyWarning\":\"如果您擁有所新增資料庫的重新共用權限，則此專案的成員將能夠檢視該資料庫\",\"toast.beforeOp.error.documentIsOpen\":\"關閉{count, plural, =1 {文件} other {文件}}以執行此動作。\",\"app.type.designSpecs\":\"設計規格\",\"app.type.prototype\":\"原型\",\"app.type.publishedLink\":\"已發佈連結\",\"popover.header\":\"與他人合作進行專案，並分享您的作品以取得回饋意見。\",\"popover.linkout\":\"了解更多\",\"team.libraries.filter.all\":\"全部\",\"team.libraries.filter.addedToYourLibraries\":\"新增至您的資料庫\",\"team.libraries.filter.notAdded\":\"未新增\",\"team.spaces.filter.all\":\"全部\",\"team.spaces.filter.favorited\":\"已加入我的最愛\",\"team.filter.empty.heading\":\"沒有與所選篩選器相符的專案\",\"team.filter.empty.description1\":\"我們在此清單中找不到與「\",\"team.filter.empty.description2\":\"」相符的結果。請檢查您的拼字，或嘗試使用其他關鍵字。\",\"team.filter.no.match.description\":\"我們在此清單中找不到結果。請檢查您的拼字，或嘗試使用其他篩選條件。\",\"team.filter.filterText\":\"{filter}\",\"team.header.other.teams\":\"其他工作區\",\"space.empty.heading\":\"所有內容都集中於一處，每個人都能掌握最新資訊\",\"space.empty.description\":\"用工作檔案和相關素材填滿此專案。同時邀請共同作業人員加入並新增他們正在處理的內容。\",\"space.empty.canvasHeading\":\"CREATIVE CLOUD CANVAS\",\"space.empty.actionsHeading\":\"將內容新增至您的專案\",\"space.empty.createCanvas\":\"新畫布\",\"space.empty.upload\":\"新增檔案\",\"space.empty.createFolder\":\"新檔案夾\",\"space.empty.createWeblink\":\"網頁連結\",\"space.empty.addResource\":\"資料庫\",\"folder.empty.heading\":\"這個檔案夾是空的。\",\"folder.empty.description\":\"開始新增檔案來填充它。\",\"folder.discard.heading\":\"此檔案夾已刪除。\",\"folder.discard.description\":\"如果您認為此訊息有誤，請聯絡您的管理員，或瀏覽其他內容。\",\"folder.error.description\":\"從此資料夾載入內容時發生問題。\",\"space.empty.section.createACanvas\":\"建立畫布\",\"tooltip.opensInBrowser\":\"在瀏覽器中開啟\",\"space.empty.workingFiles\":\"繼續新增至此專案\",\"space.empty.canvasPopoverTitle\":\"試用 Creative Cloud Canvas (Beta)\",\"space.empty.canvasPopoverContent\":\"使用畫布以配置、視覺化和檢閱創意作品。\",\"space.error.heading\":\"無法載入專案\",\"space.error.description\":\"從此專案載入內容時發生問題。\",\"createTeamWizard.createTeam.sidebarHeading\":\"建立工作區\",\"createTeamWizard.createTeam.sidebarCopy\":\"建立工作區，讓所有人都能獲得一致的資訊，並保持井然有序。\",\"createTeamWizard.createTeam.sidebarCopy.adminconsole\":\"設定您的團隊可以協作和共用檔案的地方。\",\"createTeamWizard.createTeam.sidebarLink\":\"深入了解\",\"createTeamWizard.createTeam.contentHeading\":\"新增工作區\",\"createTeamWizard.createTeam.loading\":\"正在建立「{name}」工作區\",\"createTeamWizard.inviteMembers.sidebarHeading\":\"邀請成員加入「{name}」工作區\",\"createTeamWizard.inviteMembers.sidebarCopy\":\"立即開始輸入姓名或電子郵件以邀請成員，或略過此步驟並稍後邀請他們。\",\"createTeamWizard.inviteMembers.loading\":\"正在邀請成員加入「{name}」工作區\",\"createTeamWizard.inviteMembers.contentHeading\":\"邀請成員\",\"createTeamWizard.inviteMembers.successToast\":\"成員已新增至新工作區\",\"createTeamWizard.progress\":\"步驟 {current}/{total}\",\"createTeamWizard.skipStep\":\"略過\",\"teamDialog.createTeam.label\":\"建立工作區\",\"teamDialog.createTeam.infoBox.description\":\"您建立的工作區僅限邀請加入，預設情況下新增的每位成員都具有編輯權限。\",\"teamDialog.editTeam.label\":\"編輯工作區\",\"teamDialog.nameSection.placeholder\":\"為您的新工作區命名\",\"teamDialog.nameSection.label\":\"工作區名稱\",\"teamDialog.permissionsSection.label\":\"哪些人可以編輯此工作區\",\"teamDialog.permissionsSection.option.onlyInvited\":\"僅限受邀人員\",\"teamDialog.descriptionSection.label\":\"工作區說明 (選擇性)\",\"teamDialog.descriptionSection.placeholder\":\"新增一些文字來描述您的工作區\",\"teamsSidebar.noTeams\":\"無工作區\",\"teamsSidebar.newTeamButton\":\"建立工作區\",\"teamsSidebar.adminTour.title\":\"新功能！建立工作區\",\"teamsSidebar.adminTour.content\":\"管理員現在可以在 Creative Cloud 網頁版中建立工作區，使共用作品的組織工作更輕鬆。\",\"teamsSidebarTeam.newSpaceButton\":\"新增專案\",\"teamsSidebarTeam.header.newBadge\":\"最新\",\"teamsSidebarTeam.header.otherTeams\":\"來自其他工作區\",\"teamsSidebarTeam.header.teams\":\"工作區\",\"teamsSidebarTeam.header.previewLabel\":\"(預覽)\",\"teamsSidebarTeam.header.previewCopy\":\"工作區和專案可在私人 Beta 版中使用。\",\"teamsSidebarTeam.header.previewLearnMoreText\":\"了解更多\",\"teamsSidebarTeam.message.loading\":\"正在載入...\",\"teamsSidebarTeam.message.noSpaces\":\"您沒有任何工作區或專案。\",\"teamsSidebarTeam.message.offline\":\"您已中斷連線。請重新連線以檢視您的工作區和專案。\",\"teamsSidebarTeam.message.error\":\"載入您的工作區和專案時發生問題。\",\"teams1up.error.description\":\"載入您的專案時發生問題。\",\"teams1up.error.heading\":\"無法載入專案\",\"otherTeams.emptyMessage.header\":\"無法檢視工作區頁面\",\"otherTeams.emptyMessage.description1\":\"有人已使用「\",\"otherTeams.emptyMessage.description2\":\"」區段將您從最後一個專案中移除，或您已離開該專案。如果您認為此訊息有誤，請聯絡您的管理員。\",\"spaceTour.step0.title\":\"您的專案就在這裡\",\"spaceTour.step0.content\":\"專案可協助團隊進行協作以及收集、組織和共用檔案和資源。\",\"spaceTour.step1.title\":\"新增您完成專案所需的一切\",\"spaceTour.step1.content\":\"將工作檔案、參考影像、資源等全都集中於一處。\",\"spaceTour.step2.title\":\"設定 (和忘記) 權限\",\"spaceTour.step2.content\":\"在您邀請共同作業人員時，為他們指派正確的權限以節省時間和麻煩。將僅限檢視的套件傳送給利害關係人以供審核並取得回饋意見。\",\"error.cantCreateSpace\":\"工作區儲存空間已滿\",\"error.exceedQuota.create.detail.description1\":\"您現在無法創作任何新內容。請選取「\",\"error.exceedQuota.description2\":\"」以釋放儲存空間。\",\"error.exceedQuota.add.detail.description1\":\"您現在無法新增任何新內容。請選取「\",\"error.move.generic\":\"由於發生錯誤，因此無法移動\",\"error.move.signedOut\":\"由於您已登出，因此無法移動\",\"error.move.permissionRevoked\":\"無法移動，因為您已從此專案中移除\",\"error.move.deleted\":\"由於其他人已刪除此項目，因此無法移動\",\"error.move.duplicate\":\"由於您嘗試移動到的位置已存在此項目，因此無法移動\",\"error.copy.generic\":\"由於發生錯誤，因此無法複製\",\"error.copy.signedOut\":\"由於您已登出，因此無法複製\",\"error.copy.permissionRevoked\":\"無法複製，因為您已從此專案中移除\",\"error.copy.deleted\":\"由於其他人已刪除此項目，因此無法複製\",\"error.copy.duplicate\":\"由於您嘗試複製到的位置已存在此項目，因此無法複製\",\"checkbox.select\":\"選擇\",\"listItem.fileSize\":\"檔案大小\",\"facepile.additionalMembers\":\"其他會員 +{count}\",\"facepile.memberName\":\"{name}，會員\",\"coachmark.information\":\"資訊\",\"toolbar.tools\":\"工具\",\"griditem.error.message\":\"無法擷取\",\"griditem.error.button\":\"重試\",\"ats.move.extendedNotification\":\"移動完成後，您便會收到通知。\",\"file.deleted.error.heading\":\"無法{operation}檔案\",\"file.deleted.error.description\":\"您無法{operation}此檔案，因為該檔案已刪除。請從「已刪除」中復原並再試一次，或選擇其他位置。\",\"file.deleted.rename.error.description\":\"您無法重新命名此檔案，因為該檔案已刪除。請選取「前往已刪除」以復原檔案。\"}");

/***/ }),

/***/ "nTRy":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _autobindDecorator = _interopRequireDefault(__webpack_require__("gKdT"));

var _propTypes = _interopRequireDefault(__webpack_require__("17x9"));

var _react = _interopRequireWildcard(__webpack_require__("q1tI"));

var _Textfield = _interopRequireDefault(__webpack_require__("WgUl"));

const _excluded = ["quiet"];

var _class, _class2, _temp;

function _getRequireWildcardCache(nodeInterop) {
  if (typeof WeakMap !== "function") return null;
  var cacheBabelInterop = new WeakMap();
  var cacheNodeInterop = new WeakMap();
  return (_getRequireWildcardCache = function (nodeInterop) {
    return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
  })(nodeInterop);
}

function _interopRequireWildcard(obj, nodeInterop) {
  if (!nodeInterop && obj && obj.__esModule) {
    return obj;
  }

  if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
    return {
      default: obj
    };
  }

  var cache = _getRequireWildcardCache(nodeInterop);

  if (cache && cache.has(obj)) {
    return cache.get(obj);
  }

  var newObj = {};
  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;

  for (var key in obj) {
    if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
      var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;

      if (desc && (desc.get || desc.set)) {
        Object.defineProperty(newObj, key, desc);
      } else {
        newObj[key] = obj[key];
      }
    }
  }

  newObj.default = obj;

  if (cache) {
    cache.set(obj, newObj);
  }

  return newObj;
}

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

let Textarea = (0, _autobindDecorator.default)(_class = (_temp = _class2 = class Textarea extends _react.Component {
  handleHeightChange(value, e) {
    const {
      quiet,
      onChange
    } = this.props;

    if (typeof onChange === 'function') {
      onChange(value, e);
    }

    if (quiet) {
      e.target.style.height = 'auto';
      e.target.style.height = `${e.target.scrollHeight}px`;
    }
  }

  render() {
    const _this$props = this.props,
          {
      quiet
    } = _this$props,
          otherProps = _objectWithoutProperties(_this$props, _excluded);

    return /*#__PURE__*/_react.default.createElement(_Textfield.default, _extends({}, otherProps, {
      multiLine: true,
      quiet: quiet,
      onChange: this.handleHeightChange
    }));
  }

}, _class2.propTypes = {
  /** Custom CSS class to add to the textarea */
  className: _propTypes.default.string,

  /** Whether to disable the textarea */
  disabled: _propTypes.default.bool,

  /** Whether to show the warning icon and red border */
  invalid: _propTypes.default.bool,

  /** Function called when focus is taken away from the textarea */
  onBlur: _propTypes.default.func,

  /** Function called when the textarea value is changed */
  onChange: _propTypes.default.func,

  /** Function called when focus is put on the textarea */
  onFocus: _propTypes.default.func,

  /** String to show in the textarea when nothing has been input */
  placeholder: _propTypes.default.string,

  /** Whether the textarea should render using a quiet variant */
  quiet: _propTypes.default.bool,

  /** Whether the textarea can only be read */
  readOnly: _propTypes.default.bool,

  /** Whether the textarea requires user input (shows warning if empty) */
  required: _propTypes.default.bool
}, _class2.defaultProps = {
  disabled: false,
  invalid: false,
  quiet: false,
  readOnly: false,
  required: false
}, _temp)) || _class;

exports.default = Textarea;

/***/ }),

/***/ "nXEi":
/***/ (function(module) {

module.exports = JSON.parse("{\"a11y.button.canvases\":\"{name}\",\"a11y.button.libraries\":\"{name}, kitaplık\",\"a11y.button.listGridToggle\":\"görünüm geçişi, {toggledView, select, grid {ızgara} list {liste}} görünümü\",\"a11y.button.project\":\"{name}, proje\",\"a11y.button.published\":\"{name}, {extension}\",\"a11y.button.selectFolder\":\"Klasör seç\",\"a11y.button.working\":\"{name}, {extension}, {modified} değiştirildi\",\"a11y.strings.folder\":\"klasör\",\"header.action.newProject\":\"Yeni proje\",\"header.action.newLibrary\":\"Yeni kitaplık\",\"header.action.browseAll\":\"Tümüne göz at\",\"header.Name\":\"Adı\",\"header.Size\":\"Boyut\",\"header.Sharing\":\"Üyeler\",\"header.Team\":\"Çalışma Alanı\",\"header.DateModified\":\"Değiştirilmiş\",\"header.DateCreated\":\"Oluşturulmuş\",\"header.Status\":\"Favorilere Eklendi\",\"header.SortBy\":\"Sıralama ölçütü\",\"header.sort.label\":\"Sırala\",\"header.ChangeSortDirection\":\"Sıralama yönünü değiştir\",\"header.SortBy.asc\":\"Artarak\",\"header.SortBy.desc\":\"Azalarak\",\"header.selectAll\":\"Tümünü seç\",\"header.reverseOrder\":\"Sıralamayı tersine çevir\",\"header.showCompatible\":\"Uyumlu dosyalar\",\"header.showEverything\":\"Tüm dosyalar\",\"product.illustrator.web\":\"Illustrator Web (Beta)\",\"product.photoshop.web\":\"Photoshop Web (Beta)\",\"status.followed\":\"Evet\",\"status.unfollowed\":\"Hayır\",\"team.usm.defaultName\":\"{name} çalışma alanı\",\"space.access.private.description\":\"Yalnızca davet edilenler\",\"space.access.private.tooltip\":\"Yalnızca davet edilen kişiler bu projeye erişebilir\",\"space.access.team.description\":\"Çalışma alanındaki herkes ve davet edilenler\",\"space.access.team.tooltip\":\"“{team}” ekibindeki kişiler bu projeye erişebilir\",\"yourProjects.title\":\"Projeler\",\"yourProjects.librariesTab.title\":\"Ekip kitaplıkları\",\"yourProjects.empty.spaces\":\"Daha fazla proje oluşturun ve daha fazla çalışma alanı üyesi davet edin\",\"browseAll.title\":\"Tümüne göz at\",\"yourFiles.title\":\"Belgeleriniz\",\"yourLibraries.title\":\"Kitaplıklar\",\"yourLibraries.metadata\":\"KİTAPLIK\",\"canvas.metadata\":\"TUVAL\",\"projectInfo.action.view\":\"Bilgileri görüntüle\",\"projectInfo.action.edit\":\"Projeyi düzenle\",\"projectInfo.empty.cta\":\"Yeni proje oluştur\",\"projectInfo.empty.description\":\"Creative Cloud Projeleri, kreatif projeleriniz için ihtiyacınız olan tüm içeriği tek yerde toplayarak içerik bulma, düzene koyma, paylaşma ve karar verme süreçlerini basitleştirir.\",\"projectInfo.empty.heading\":\"İşinizden geri kalmadan dilediğinizce içerik oluşturun.\",\"projectInfo.error.description\":\"Daha sonra yeniden deneyin\",\"projectInfo.error.heading\":\"{section} yüklenemedi\",\"projectInfo.new.error.title\":\"Yeni proje oluşturulamıyor\",\"projectInfo.new.noPermission.description\":\"Daha fazla bilgi için yöneticiniz ile iletişime geçin.\",\"projectInfo.title.create\":\"YENİ PROJE\",\"projectInfo.title.edit\":\"PROJEYİ DÜZENLE\",\"projectInfo.title.view\":\"PROJE BİLGİLERİ\",\"projectInfo.access.title\":\"Bu projeyi kimler düzenleyebilir?\",\"projectInfo.access.warning\":\"İzin ayarını “Yalnızca davet edilenler” olarak değiştirirseniz bazı üyeler bu projeye erişimlerini kaybedebilir.\",\"projectInfo.organization\":\"Kuruluş\",\"projectInfo.organization.placeholder\":\"Birini seçin\",\"projectInfo.description\":\"Açıklama\",\"textField.invalid.characters\":\"Adlar şu karakterleri içeremez: \\\\\\\\ / * ? \\\" | : < >\",\"textField.invalid.duplicateName\":\"Bu kuruluşta bu ada sahip bir proje zaten var.\",\"textField.invalid.duplicateName.space\":\"Bu çalışma alanında bu ada sahip bir proje zaten var.\",\"textField.invalid.duplicateName.team\":\"Bu kuruluşta bu ada sahip bir çalışma alanı zaten var.\",\"textField.invalid.empty\":\"Ad boş olmamalıdır\",\"textField.invalid.generic\":\"Geçersiz ad\",\"textField.invalid.length\":\"Adlar 50 karakterden uzun olamaz\",\"textField.invalid.nameEndsWithDot\":\"Adların sonunda nokta olamaz\",\"textField.invalid.offline\":\"Tüm çalışma alanlarınıza ve projelerinize erişmek için yeniden bağlanın. Projelerinizdeki yerel dosyaları görüntülemek için Giriş bölümüne gidin.\",\"projectInfo.textField.placeholder\":\"Bu projeyi adlandır\",\"projectInfo.team\":\"Çalışma Alanı\",\"projectInfo.description.placeholder\":\"Ör: Müşteri projesi için dosyalar, geri bildirim ve referans malzemeleri\",\"projectInfo.description.invalidLength\":\"Açıklama, 1000 karakterden uzun olamaz\",\"projectInfo.toast.success.new\":\"Proje başarıyla oluşturuldu: {name}\",\"projectInfo.toast.success.update\":\"Şu proje başarıyla güncellendi: {name}\",\"projectInfo.toast.error.generic\":\"Proje {create, select, true {oluşturulamadı} other {düzenlenemedi}}\",\"team.empty.heading\":\"Projeler herkesin haberdar kalmasını sağlar\",\"team.empty.description\":\"Dosyaların kilitlenmesinden, sürümlerle ilgili karışıklığı yönetmekten ve inceleme için ekran görüntülerini e-postayla göndermekten bıktınız mı? Alanları kullanarak projeleri düzene koyun, kaynakları toplayın, geri bildirim alın ve tüm ekibin üzerinde çalışması gereken dosyaları paylaşın.\",\"team.empty.createSpace\":\"Proje oluşturun\",\"team.empty.inviteMembers\":\"Üyeleri davet et\",\"team.empty.startHere\":\"BURADAN BAŞLAYIN\",\"team.create.success\":\"Şu çalışma alanı başarıyla oluşturuldu: {name}\",\"team.create.error.generic\":\"Çalışma alanı oluşturulamadı\",\"team.edit.success\":\"Çalışma alanı başarıyla güncellendi: {name}\",\"team.edit.error.generic\":\"Çalışma alanı güncellenemedi\",\"team.archive.success\":\"{count, plural, =1 {# çalışma alanı} other {# çalışma alanı}} silindi\",\"team.archive.error.generic\":\"{count, plural, =1 {# çalışma alanı} other {# çalışma alanı}} silinemiyor\",\"team.error.generic\":\"Üzgünüz, bir sorun oluştu.\",\"project1Up.action.projectInfo\":\"Bilgileri görüntüle\",\"project1up.region.space.ariaLabel\":\"{projectName}, proje\",\"project1Up.section.libraries\":\"Kitaplıklar\",\"project1Up.section.libraries.empty.cta\":\"Creative Cloud Libraries'i Ekle\",\"project1Up.section.libraries.empty.description\":\"Çalışmalarınız için gerekli kitaplıklara bağlantılar ekleyin.\",\"project1Up.section.libraries.empty.heading\":\"Tüm içeriği tek bir yerde bir araya getirin\",\"project1Up.section.filter\":\"Filtre\",\"project1Up.section.filter.label\":\"Anahtar sözcüğe göre filtrele\",\"project1Up.section.filter.enterKeyword\":\"Anahtar sözcüğü girin\",\"project1Up.section.filterFiles.empty.heading\":\"Seçili filtre ile eşleşen bir sonuç yok\",\"project1Up.section.compatibleFiles.empty.heading\":\"Bu projede uyumlu dosya yok\",\"project1Up.section.workingFiles\":\"Çalışma dosyaları\",\"project1Up.section.workingFiles.empty.addFiles\":\"Dosya ekle\",\"project1Up.section.workingFiles.empty.createFolder\":\"Yeni klasör oluştur\",\"project1Up.section.workingFiles.empty.description\":\"Projeleri yineleyin ve diğer üyelerle iş birliği yapın.\",\"project1Up.section.workingFiles.empty.heading\":\"İstediğiniz içerik üzerinde dilediniz zaman çalışın\",\"project1Up.section.published\":\"Yayımlananlar\",\"project1Up.section.published.empty.cta\":\"Bağlantıları yayımlayın\",\"project1Up.section.published.empty.description\":\"Doğru zamanda doğru kişilerden geri bildirim almak için salt görüntülenir bağlantılar gönderin.\",\"project1Up.section.published.empty.description.readonly\":\"Sizden geri bildirim veya inceleme istendiğinde buraya bir bağlantı eklenir.\",\"project1Up.section.published.empty.heading\":\"Amaca yönelik olarak paylaşın\",\"project1Up.section.published.empty.heading.readonly\":\"Bu projede yayımlanmış öğe yok\",\"project1Up.section.canvases\":\"Tuvaller\",\"project1Up.section.canvases.empty.cta\":\"Creative Cloud Tuvalleri Ekle\",\"project1Up.section.canvases.empty.description\":\"Çalışmalarınız için gerekli içeriğe bağlantılar ekleyin.\",\"project1Up.section.canvases.empty.heading\":\"Tüm içeriği tek bir yerde bir araya getirin\",\"project1Up.section.files\":\"Dosyalar\",\"project1Up.error.accessDenied.heading\":\"Erişiminiz yok\",\"project1Up.error.accessDenied.description\":\"Bu projeden kaldırıldınız. Bunun yanlışlıkla yapıldığını düşünüyorsanız yöneticinizle iletişime geçin.\",\"project1Up.header.seeAll\":\"Tümünü Göster\",\"project1up.subheader.selected\":\"{count, plural, =1 {# öğe} other {# öğe}} seçildi\",\"project1up.subheader.emptyDescription\":\"Projenize açıklama ekleyin\",\"project1up.subheader.canvases.title\":\"Tuvaller\",\"project1up.subheader.canvases.subtitle\":\"YAPILACAKLAR: TUVALLER ALT YAZISI\",\"project1up.subheader.libraries.title\":\"Kitaplıklar\",\"project1up.subheader.libraries.subtitle\":\"Üyeler buradan Creative Cloud Libraries'e bağlantılar ekleyebilir.\",\"project1up.subheader.working.title\":\"Çalışma dosyaları\",\"project1up.subheader.working.subtitle\":\"Bu projenin üyeleri bu dosyaları düzenleyebilir.\",\"project1up.subheader.output.title\":\"Yayımlananlar\",\"project1up.subheader.output.subtitle\":\"{contributor, select, true {Çalışmanın salt okunur sürümlerini projeniz dışındaki kişilerle paylaşın.} other {Bu salt okunur öğeleri görüntüleyin ve içeriğe yorum ekleyin}}\",\"project.subtitle\":\"PROJE\",\"project.countContributors\":\"{count, plural, =1 {# üye} other {# üye}}\",\"project.versionError.reload.description\":\"Tarayıcınızı yenilemeyi deneyin.\",\"project.versionError.reload.title\":\"Projeye erişilemiyor\",\"project.versionError.update.description\":\"Uygulama güncelleninceye kadar projeye erişemezsiniz.\",\"project.versionError.update.title\":\"Açmak için {appName} uygulamasını güncelleyin\",\"project.alreadyDiscarded.title\":\"Bu proje silindi\",\"project.alreadyDiscarded.description\":\"Bunun yanlışlıkla yapıldığını düşünüyorsanız yöneticinizle iletişime geçin veya başka içeriklere göz atın.\",\"project.deleted.title\":\"Bu proje kalıcı olarak silindi\",\"project.deleted.description\":\"Bu proje artık mevcut olmadığından projeye erişemezsiniz.\",\"project.metadataError.backLabel\":\"Projelere dön\",\"project.metadataError.description\":\"Aradığınız projeyi bulamıyoruz veya alana erişiminiz yok.\",\"project.metadataError.title\":\"Üzgünüz, bir sorun oluştu.\",\"folder.subtitle\":\"KLASÖR\",\"libraries.toast.add.start\":\"{count, plural, =1 {# kitaplık} other {# kitaplık}} ekleniyor\",\"libraries.toast.add.success\":\"{count, plural, =1 {# kitaplık} other {# kitaplık}} eklendi\",\"libraries.toast.add.error\":\"{count, plural, =1 {# kitaplık} other {# kitaplık}} eklenemedi. Tekrar deneyin.\",\"libraries.toast.add.duplicate\":\"Bu kitaplık zaten var\",\"libraries.toast.add.onlyDuplicates\":\"{count, plural, =1 {# kitaplık} other {# kitaplık}} zaten mevcut olduğundan eklenemedi.\",\"libraries.toast.delete.success\":\"{count, plural, =1 {# kitaplık} other {# kitaplık}} başarıyla kaldırıldı\",\"libraries.toast.delete.error\":\"{count, plural, =1 {# kitaplık} other {# kitaplık}} kaldırılamadı\",\"libraries.toast.follow.inProgress\":\"{count, plural, =1 {# kitaplık} other {# kitaplık}} takip ediliyor\",\"libraries.toast.follow.success\":\"{count, plural, =1 {# kitaplık} other {# kitaplık}} takip edildi\",\"libraries.toast.follow.error\":\"{count, plural, =1 {# kitaplık} other {# kitaplık}} takip edilemedi\",\"libraries.toast.unfollow.inProgress\":\"{count, plural, =1 {# kitaplığın} other {# kitaplığın}} takibi bırakılıyor\",\"libraries.toast.unfollow.success\":\"{count, plural, =1 {# kitaplığın} other {# kitaplığın}} takibi bırakıldı\",\"libraries.toast.unfollow.error\":\"{count, plural, =1 {# kitaplığın} other {# kitaplığın}} takibi bırakılamadı\",\"libraries.modal.empty.heading\":\"Kitaplık yok\",\"libraries.modal.empty.description\":\"Kuruluşunuz herhangi bir kitaplık paylaşmadı\",\"libraries.modal.error.limitExceeded\":\"Kitaplık eklenemiyor\",\"libraries.modal.error.limitExceeded.detail\":\"Projeye en çok 100 kitaplık ekleyebilirsiniz. Yeni kitaplık eklemek için bazı kitaplıkları kaldırın.\",\"libraries.brokenResources\":\"Erişiminiz olmadığı için bazı kitaplıklar gösterilmiyor. Daha fazla bilgi için diğer üyelerle iletişime geçin.\",\"copy.start\":\"{count, plural, =1 {# öğe} other {# öğe}} kopyalanıyor\",\"copy.failure\":\"{count, plural, =1 {# öğe} other {# öğe}} kopyalanamadı\",\"copy.failure.partial\":\"Bazı öğeler kopyalanamıyor\",\"copy.success\":\"{count, plural, =1 {# öğe} other {# öğe}} kopyalandı\",\"copy.conflictSuffix\":\"kopyası\",\"move.start\":\"{count, plural, =1 {# öğe} other {# öğe}} taşınıyor\",\"move.failure\":\"{count, plural, =1 {# öğe} other {# öğe}} taşınamadı\",\"move.failure.partial\":\"Bazı öğeler taşınamıyor\",\"move.success\":\"{count, plural, =1 {# öğe} other {# öğe}} taşındı\",\"upload.start\":\"{count, plural, =1 {# öğe} other {# öğe}} yükleniyor\",\"upload.failure\":\"{count, plural, =1 {# öğe} other {# öğe}} yüklenemedi\",\"upload.failure.partial\":\"Bazı öğeler yüklenemiyor\",\"upload.failure.snapshot\":\"Bu öğe desteklenmiyor\",\"upload.success\":\"{count, plural, =1 {# öğe} other {# öğe}} yüklendi\",\"download.start\":\"{count, plural, =1 {# öğe} other {# öğe}} indiriliyor\",\"download.failure\":\"{count, plural, =1 {# öğe} other {# öğe}} indirilemiyor\",\"download.failure.partial\":\"Bazı öğeler indirilemiyor\",\"download.success\":\"{count, plural, =1 {# öğe} other {# öğe}} indirildi\",\"delete.failure\":\"{count, plural, =1 {# öğe} other {# öğe}} silinemedi\",\"delete.failure.partial\":\"Bazı öğeler silinemedi\",\"delete.success\":\"{count, plural, =1 {# öğe} other {# öğe}} silindi\",\"jobs.failure\":\"{count, plural, =1 {# öğe} other {# öğe}} başarısız oldu\",\"jobs.inProgress\":\"Çalışıyor...\",\"jobs.success\":\"{count, plural, =1 {# öğe} other {# öğe}} tamamlandı\",\"restore.failure\":\"{count, plural, =1 {# öğe} other {# öğe}} geri yüklenemedi\",\"restore.failure.partial\":\"Bazı öğeler geri yüklenemedi\",\"restore.success\":\"{count, plural, =1 {# öğe} other {# öğe}} geri yüklendi\",\"rename.start\":\"Yeniden Adlandırılıyor\",\"rename.success\":\"{count, plural, =1 {# öğe} other {# öğe}} yeniden adlandırıldı\",\"rename.failure\":\"Sunucu hatası, öğe yeniden adlandırılamadı\",\"rename.failure.conflict\":\"Bu ada sahip bir öğeniz zaten var\",\"rename.offline.heading\":\"Yeniden adlandırılamıyor\",\"rename.offline\":\"Çevrimdışı durumdasınız ve öğeyi yeniden adlandıramazsınız. Bu eylemi gerçekleştirmek için tekrar çevrimiçi olun.\",\"bookmark.follow.error\":\"Bu proje favorilere eklenemiyor\",\"bookmark.unfollow.error\":\"Bu projeyi favorilerden kaldıramazsınız\",\"bookmark.follow.success\":\"{projectName} başarıyla favorilere eklendi\",\"bookmark.unfollow.success\":\"{projectName} başarıyla favorilerden kaldırıldı\",\"bookmark.bulk.follow.success\":\"{count, plural, =1 {# öğe} other {# öğe}} başarıyla favorilere eklendi\",\"bookmark.bulk.follow.partial\":\"Bazı öğeler favorilere eklenemedi\",\"bookmark.bulk.follow.error\":\"{count, plural, =1 {# öğe} other {# öğe}} favorilere eklenemedi\",\"bookmark.bulk.unfollow.success\":\"{count, plural, =1 {# öğe} other {# öğe}} başarıyla favorilerden kaldırıldı\",\"bookmark.bulk.unfollow.partial\":\"Bazı öğeler favorilerden kaldırılamadı\",\"bookmark.bulk.unfollow.error\":\"{count, plural, =1 {# öğe} other {# öğe}} favorilerden kaldırılamadı\",\"copyLink.success\":\"Bağlantı panoya kopyalandı\",\"copyLink.failure\":\"Bağlantı kopyalanamadı\",\"starterUser.project1upNavigation\":\"Başlangıç planınıza, projelerde yer alan belgelerin açılması dahil değil\",\"starterUser.project1upNavigationCDPSave\":\"Başlangıç planınıza, projelere belge kaydedilmesi dahil değil\",\"invite.failure\":\"Davetler gönderilemedi, lütfen tekrar deneyin\",\"accessibility.backButton\":\"Geri git\",\"button.role\":\"Buton\",\"button.actions\":\"Eylemler\",\"button.add\":\"Ekle\",\"button.addFiles\":\"Dosya ekle\",\"button.addLibrary\":\"Ekle kitaplık\",\"button.createDocument\":\"Yeni {appName} dosyası\",\"button.library\":\"Kitaplık\",\"button.back\":\"Geri\",\"button.browse\":\"Tümüne göz at\",\"button.cancel\":\"İptal\",\"button.okay\":\"Tamam\",\"button.canvas\":\"Tuval\",\"button.addCanvas\":\"Yeni tuval\",\"button.changeDefaultApp\":\"Varsayılan uygulamayı değiştir...\",\"button.close\":\"Kapat\",\"button.continue\":\"Devam\",\"button.copy\":\"Kopyala...\",\"button.copyLink\":\"Bağlantıyı kopyala\",\"button.create\":\"Oluştur\",\"button.createNewFolder\":\"Yeni klasör oluştur\",\"button.newFile\":\"Yeni dosya\",\"button.newFolder\":\"Yeni klasör\",\"button.delete\":\"Sil\",\"button.deleteResource\":\"Kaldır\",\"button.done\":\"Bitti\",\"button.download\":\"İndir\",\"button.favorite\":\"Favorilere Ekle\",\"button.follow\":\"Takip Et\",\"button.invite\":\"Davet Et\",\"button.inviteLabel\":\"Kişileri davet et\",\"button.leave\":\"Ayrıl\",\"button.leaveProject\":\"Çalışma alanından ayrıl\",\"button.move\":\"Taşı...\",\"button.next\":\"Sonraki\",\"button.ok\":\"Tamam\",\"button.open\":\"Aç\",\"button.openWith\":\"Birlikte aç\",\"button.open.appName\":\"{appName} {isDefault, select, true {(Varsayılan)} other {}}\",\"button.redo\":\"Yeniden dene\",\"button.reload\":\"Yeniden Yükle\",\"button.rename\":\"Yeniden Adlandır\",\"button.restore\":\"Geri Yükle\",\"button.retry\":\"Yeniden Dene\",\"button.save\":\"Kaydet\",\"button.select\":\"Seç\",\"button.share\":\"Paylaş\",\"button.skipTour\":\"Turu atla\",\"button.undo\":\"Geri Al\",\"button.unfavorite\":\"Favorilerden Kaldır\",\"button.unfollow\":\"Takibi Bırak\",\"button.update\":\"Güncelle\",\"button.upgrade\":\"Yükseltin\",\"button.view\":\"Tümünü göster\",\"button.viewProject\":\"Projeyi göster\",\"button.viewTarget\":\"Bak\",\"button.createWeblink\":\"Web bağlantısı ekle\",\"button.leaveTeam\":\"Çalışma alanından ayrıl\",\"button.renameTeam\":\"Çalışma alanını yeniden adlandır\",\"button.editTeam\":\"Çalışma alanı bilgilerini düzenle\",\"button.archiveTeam\":\"Çalışma alanını sil\",\"button.upload\":\"Dosyaları yükle\",\"button.goToDeleted\":\"Silinenler'de görüntüle\",\"button.viewEverything\":\"Tüm içeriği görüntüleyin\",\"button.viewInWeb\":\"Web'de görüntüle\",\"abbreviations.fileSize.byte\":\"B\",\"abbreviations.fileSize.kilobyte\":\"KB\",\"abbreviations.fileSize.megabyte\":\"MB\",\"abbreviations.fileSize.gigabyte\":\"GB\",\"abbreviations.fileSize.terabyte\":\"TB\",\"statusIcon.conflicted\":\"Eşitleme çakışması\",\"statusIcon.onlineOnly\":\"Yalnızca çevrimiçi\",\"statusIcon.availableOffline\":\"Çevrimdışı kullanılabilir\",\"statusIcon.syncing\":\"Eşitleniyor...\",\"statusIcon.waitingToSync\":\"Eşitlenmesi bekleniyor\",\"statusMessage.offline.description\":\"Tüm çalışma alanlarınıza ve projelerinize erişmek için yeniden bağlanın. Projelerinizdeki yerel dosyaları görüntülemek için Giriş bölümüne gidin.\",\"statusMessage.offline.heading\":\"Bağlı değilsiniz\",\"statusMessage.offline.toast\":\"Bağlantınız kesildiği için bazı özellikler ve dosyalar kullanılamayabilir.\",\"toggle.listView\":\"Liste görünümü\",\"toggle.gridView\":\"Minik resim görünümü\",\"color.fuchsia\":\"Fuşya\",\"color.indigo\":\"Çivit Mavisi\",\"color.celery\":\"Kum Rengi\",\"color.magenta\":\"Eflatun\",\"color.yellow\":\"Sarı\",\"color.seafoam\":\"Deniz Köpüğü\",\"color.chartreuse\":\"Uçuk Yeşil\",\"color.purple\":\"Mor\",\"color.blue\":\"Mavi\",\"color.red\":\"Kırmızı\",\"color.orange\":\"Turuncu\",\"color.green\":\"Yeşil\",\"color.label\":\"Proje rengi\",\"tooltip.offline.general\":\"Bu eylemi gerçekleştirmek için yeniden çevrimiçi olun\",\"tooltip.moreFaces\":\"+ {number} daha\",\"action.leave.space.success\":\"{count, plural, =1 {# projeden} other {# projeden}} ayrıldınız\",\"action.leave.prototype.success\":\"{count, plural, =1 {# prototipe} other {# prototipe}} erişim kaldırıldı\",\"action.leave.file.success\":\"{count, plural, =1 {# dosyaya} other {# dosyaya}} erişim kaldırıldı\",\"action.leave.canvas.success\":\"{count, plural, =1 {# tuvale} other {# tuvale}} erişim kaldırıldı\",\"action.leave.team.success\":\"1 çalışma alanından ayrıldınız\",\"action.leave.space.error\":\"Bu projeden ayrılamazsınız\",\"action.leave.prototype.error\":\"Bu prototipten ayrılamazsınız\",\"action.leave.file.error\":\"Bu dosyadan ayrılamazsınız\",\"action.leave.team.error\":\"Bu çalışma alanından ayrılamazsınız\",\"action.leave.canvas.error\":\"Bu tuvalden ayrılamazsınız\",\"action.leave.space.partial.error\":\"Tüm projelerden ayrılamazsınız\",\"action.leave.prototype.partial.error\":\"Tüm prototiplerden ayrılamazsınız\",\"action.leave.file.partial.error\":\"Tüm dosyalardan ayrılamazsınız\",\"action.leave.canvas.partial.error\":\"Tüm tuvallerden ayrılamazsınız\",\"action.leave.error.onlyContributor\":\"Tek üye sizsiniz. Ayrılmadan önce başka bir üye ekleyin.\",\"action.leave.error.addressBookGroupMember\":\"Gruptan ayrılın ve tekrar deneyin.\",\"action.leave.error.admin\":\"Yönetici olduğunuz için ayrılamazsınız.\",\"action.leave.error.generic\":\"Bir sorun oluştuğu için ayrılamıyorsunuz.\",\"action.reportAbuse\":\"Kötü amaçlı kullanımı bildir\",\"action.reportAbuse.required\":\"Gereklidir\",\"action.reportAbuse.titleText\":\"Bu Creative Cloud içeriğinin Adobe Kullanım Koşulları'nı ihlal ettiğini düşünüyorsanız bu hızlı formu doldurarak içeriği bildirebilirsiniz.\",\"action.reportAbuse.emailInput\":\"E-posta Adresiniz\",\"action.reportAbuse.nameInput\":\"Adınız\",\"action.reportAbuse.radioButtonText\":\"Bu içeriği neden bildiriyorsunuz?\",\"action.reportAbuse.defamation\":\"Hakaret\",\"action.reportAbuse.hate\":\"Irkçı veya Nefret İçeriği\",\"action.reportAbuse.trademark\":\"Ticari Marka İhlali\",\"action.reportAbuse.pornography\":\"Müstehcen İçerik\",\"action.reportAbuse.vulgar\":\"Rahatsız Edici İçerik\",\"action.reportAbuse.other\":\"Diğer\",\"action.reportAbuse.inappropriate\":\"Uygun değil\",\"action.reportAbuse.age\":\"Yaş yanlış\",\"action.reportAbuse.gender\":\"Cinsiyet yanlış\",\"action.reportAbuse.textAreaTitle\":\"Lütfen endişe ettiğiniz konuyu kısaca açıklayın\",\"action.reportAbuse.describeConcern\":\"Endişenizi Açıklayın\",\"action.reportAbuse.success\":\"Kötü amaçlı kullanım bildirildi\",\"action.reportAbuse.failure\":\"Kötü amaçlı kullanım bildirilemedi\",\"action.menu.label\":\"Eylem Menüsü\",\"action.label\":\"Eylem\",\"dialog.genericError.description\":\"Üzgünüz, bir sorun oluştu.\",\"dialog.genericError.title\":\"Beklenmeyen hata\",\"dialog.leave.space.title\":\"{count, plural, =1 {{name} projesinden} other {Projelerden}} ayrıl\",\"dialog.leave.prototype.title\":\"{count, plural, =1 {Bu prototipten} other {Prototiplerden}} ayrıl\",\"dialog.leave.file.title\":\"{count, plural, =1 {Bu dosyadan} other {Dosyalardan}} ayrıl\",\"dialog.leave.canvas.title\":\"{count, plural, =1 {Bu tuvalden} other {Tuvallerden}} ayrıl\",\"dialog.leave.team.title\":\"Ayrılmak mı istiyorsunuz?\",\"dialog.leave.team.detail\":\"Kendinizi kaldırırsanız bu işlemi geri alamazsınız. Bu çalışma alanına tekrar eklenmek istiyorsanız bir yöneticiyle iletişime geçin.\",\"dialog.leave.space.detail\":\"Bu projedeki sahip olmadığınız öğelere erişiminizi kaybedeceksiniz. “{projectName}” projesinden ayrıldığınızda bu işlem geri alınamaz.\",\"dialog.leave.prototype.detail\":\"Bu içeriğe başka bir davet olmadan bir daha erişemeyeceksiniz.\",\"dialog.leave.file.detail\":\"Bu içeriğe başka bir davet olmadan bir daha erişemeyeceksiniz.\",\"dialog.leave.canvas.detail\":\"Bu içeriğe başka bir davet olmadan bir daha erişemeyeceksiniz.\",\"dialog.leave.detail\":\"{type, select, space {{count, plural, =1 {Bu projedeki} other {Bu projelerdeki}} size ait olmayan içeriğe erişimi kaybedeceksiniz. {count, plural, =1 {“{name}” projesinden} other {Bu projelerden}} ayrıldığınızda bu işlem geri alınamaz.} other {Bu {count, plural, =1 {projeye} other {projelere}} başka bir davet olmadan bir daha erişemeyeceksiniz{count, plural, =1 {.} other {:}}}}\",\"dialog.deleteFailed.title\":\"Tüm öğeler silinemiyor\",\"dialog.deleteWarning.description\":\"{type, select, spaces {Bu işlem, bu projelerin tüm üyeleri için şu içeriği silecektir:} other {Bu işlem, bu projenin tüm üyeleri için şu içeriği silecektir:}}\",\"dialog.deleteWarning.title\":\"{type, select, space {{count} {count, plural, =1 {projeyi} other {projeyi}} sil} other {{count} {count, plural, =1 {öğeyi} other {öğeyi}} sil}}\",\"dialog.deleteFailed.description.unauthorized\":\"Şu projeden çıkarıldığınız için öğe silinemiyor:\",\"dialog.deleteFailed.description.alreadyDeleted\":\"Bu öğeyi zaten bir başkası sildiği için öğe silinemiyor:\",\"dialog.deleteFailed.description.unknown\":\"Bir sorun oluştuğu için öğe silinemiyor:\",\"dialog.cantCopyAllItems\":\"Tüm öğeler kopyalanamıyor\",\"dialog.cantCopyBecauseSomethingWentWrong\":\"Bir sorun oluştuğu için öğe kopyalanamıyor:\",\"dialog.cantCopyBecauseYouWereSignedOut\":\"Çıkış yaptığınız için öğe kopyalanamıyor:\",\"dialog.cantCopyBecauseYouWereRemoved\":\"Bu projeden çıkarıldığınız için öğe kopyalanamıyor:\",\"dialog.cantCopyBecauseItemWasDeleted\":\"Bu öğeyi bir başkası sildiği için öğe kopyalanamıyor:\",\"dialog.cantCopyBecauseItemExists\":\"Bu öğe, kopyalamaya çalıştığınız yerde zaten mevcut olduğundan kopyalanamıyor:\",\"dialog.cantMoveAllItems\":\"Tüm öğeler taşınamıyor\",\"dialog.cantMoveBecauseSomethingWentWrong\":\"Bir sorun oluştuğu için öğe taşınamıyor:\",\"dialog.cantMoveBecauseYouWereSignedOut\":\"Çıkış yaptığınız için öğe taşınamıyor:\",\"dialog.cantMoveBecauseYouWereRemoved\":\"Şu projeden çıkarıldığınız için öğe taşınamıyor:\",\"dialog.cantMoveBecauseItemWasDeleted\":\"Bu öğeyi bir başkası sildiği için öğe taşınamıyor:\",\"dialog.cantMoveBecauseItemExists\":\"Bu öğe, taşımaya çalıştığınız yerde zaten mevcut olduğundan taşınamıyor:\",\"dialog.createFolder.error\":\"Sunucu hatası, klasör kaydedilemedi\",\"dialog.createFolder.nameConflict\":\"Bu ada sahip bir klasörünüz zaten var.\",\"dialog.createFolder.placeholder\":\"Klasör Adı\",\"dialog.createFolder.title\":\"Klasör Oluştur\",\"dialog.createFolder.success\":\"Klasör başarıyla oluşturuldu\",\"dialog.createWeblink.error\":\"Desteklenmeyen URL\",\"dialog.createWeblink.tooManyRequests\":\"Beklenmeyen ağ hatası. Lütfen tekrar deneyin.\",\"dialog.createWeblink.success\":\"1 öğe eklendi\",\"dialog.createWeblink.nameConflict\":\"Bu başlık zaten var\",\"dialog.createWeblink.name.placeholder\":\"Bu bağlantı için bir ad girin\",\"dialog.createWeblink.link.placeholder\":\"https://\",\"dialog.createWeblink.name\":\"Özel başlık\",\"dialog.createWeblink.link\":\"Bağlantı\",\"dialog.createWeblink.title\":\"Web bağlantısı oluşturun\",\"app.type.webLink\":\"WEB BAĞLANTISI\",\"dialog.createCanvas.error\":\"Tuval oluşturulamıyor\",\"dialog.move.title\":\"{projectName} projesine taşı\",\"dialog.move.detail\":\"Bu öğeyi taşırsanız erişim izinleri değişecektir.\",\"moveToTeam.confirm.title\":\"{name} çalışma alanına taşı\",\"moveToTeam.confirm.message\":\"Projelerinizi buraya taşıdığınızda erişim izinleri değiştirilir. Projelerinize erişimi olan herkes çalışma alanınıza erişebilecektir.\",\"moveToTeam.disabled.differentOrg.tooltip.message\":\"Projeleri farklı kuruluştaki bir çalışma alanına taşıyamazsınız.\",\"moveToSpace.disabled.differentOrg.tooltip.message\":\"İçeriği farklı kuruluştaki bir projeye taşıyamazsınız.\",\"moveToTeam.success\":\"{count, plural, =1 {# projeyi} other {# projeyi}} {name} çalışma alanına taşıdınız\",\"confirmationDialog.dontShowAgain\":\"Bir daha gösterme\",\"dialog.open.title\":\"Web'de aç\",\"dialog.open.detail\":\"Bu dosyayı {appName} ile açamazsınız ancak dosyaya bir tarayıcıdan erişebilirsiniz.\",\"dialog.renameTeam.title\":\"Çalışma alanını yeniden adlandır\",\"dialog.renameTeam.placeholder\":\"Bu çalışma alanı için bir ad girin\",\"dialog.renameTeam.error\":\"Üzgünüz, bir sorun oluştu.\",\"dialog.renameTeam.nameConflict\":\"Bu ad zaten var\",\"dialog.archiveTeam.title\":\"Bu çalışma alanı silinsin mi?\",\"dialog.archiveTeam.detail\":\"Kendinizi kaldırırsanız bu işlemi geri alamazsınız. Bu çalışma alanına yeniden katılmak istiyorsanız bir yöneticiyle iletişime geçin.\",\"dialog.saveToCloud.title\":\"Dosyalar Creative Cloud'a kaydedildi\",\"dialog.saveToCloud.detail\":\"Bulut belgenizde artık sürüm geçmişi, davet etme ve birlikte düzenleme, diğer cihazlardan anında erişim ve daha fazlası sunulmaktadır. Bu özellikleri burada ve Creative Cloud uygulamalarınızda bulabilirsiniz.\",\"input.invalidCharInput\":\"Ad şu karakterleri içeremez: \\\\\\\\ / * ? \\\" | :\",\"input.invalidEmptyInput\":\"{names, select, true {Adlar} other {Başlıklar}} boş olmamalıdır\",\"input.nameTooLong\":\"{names, select, true {Adlar} other {Unvanlar}} {maxLength} karakterden uzun olamaz\",\"input.nameEndsWithDot\":\"{names, select, true {Adlar} other {Unvanlar}} nokta işareti ile bitemez\",\"input.weblink.nameRestricted\":\"Web bağlantılarında şu başlıklar olamaz: “con”, “prn”, “aux”, “nul”, “com#”, “lpt#”\",\"input.nameRestricted\":\"Varlıklarda şu adlar olamaz: con/prn/aux/nul/com#/lpt#\",\"input.weblink.invalidCharInput\":\"Unvanlar yalnızca boşluktan oluşamaz veya şu karakterleri içeremez: \\\\\\\\ / * ? \\\" | : < > \",\"input.name.invalidCharInput\":\"Adlar yalnızca boşluktan oluşamaz veya şu karakterleri içeremez: \\\\\\\\ / * ? \\\" | : < > \",\"cdpFooter.orphanedArtifactsWarning\":\"Taşıdığınız öğelere bağlı olan yayımlanmış bağlantılar orijinal projede kalacaktır\",\"cdpFooter.libraryPrivacyWarning\":\"Eklediğiniz bir kitaplık için yeniden paylaşım izinleriniz varsa projenin üyeleri kitaplığı görüntüleyebilir\",\"toast.beforeOp.error.documentIsOpen\":\"Bu işlemi gerçekleştirmek için {count, plural, =1 {belgeyi} other {belgeleri}} kapatın.\",\"app.type.designSpecs\":\"TASARIM ÖZELLİKLERİ\",\"app.type.prototype\":\"PROTOTİP\",\"app.type.publishedLink\":\"YAYIMLANAN BAĞLANTI\",\"popover.header\":\"Başkalarıyla bir proje üzerinde iş birliği yapın ve geri bildirim için çalışmalarınızı paylaşın.\",\"popover.linkout\":\"Daha fazla bilgi\",\"team.libraries.filter.all\":\"Tümü\",\"team.libraries.filter.addedToYourLibraries\":\"Kitaplıklarınız'a eklendi\",\"team.libraries.filter.notAdded\":\"Eklenmedi\",\"team.spaces.filter.all\":\"Tüm dosyalar\",\"team.spaces.filter.favorited\":\"Favorilere eklenenler\",\"team.filter.empty.heading\":\"Seçili filtre ile eşleşen bir proje yok\",\"team.filter.empty.description1\":\"Bu listede \",\"team.filter.empty.description2\":\" için herhangi bir sonuç bulamadık. Yazım denetimi yapın veya farklı anahtar sözcükler kullanmayı deneyin.\",\"team.filter.no.match.description\":\"Bu listede herhangi bir sonuç bulamadık. Yazım denetimi yapın veya farklı bir filtre ölçütü kullanmayı deneyin.\",\"team.filter.filterText\":\"{filter}\",\"team.header.other.teams\":\"Diğer çalışma alanları\",\"space.empty.heading\":\"Tüm içerik bir arada, herkes işin içinde\",\"space.empty.description\":\"Bu projeyi, çalışma dosyaları ve ilgili materyallerle doldurun. Ortak çalışanları katılmaya ve üzerinde çalıştıkları içeriği eklemeye davet edin.\",\"space.empty.canvasHeading\":\"CREATIVE CLOUD CANVAS\",\"space.empty.actionsHeading\":\"PROJENİZE İÇERİK EKLEYİN\",\"space.empty.createCanvas\":\"Yeni tuval\",\"space.empty.upload\":\"Dosya ekle\",\"space.empty.createFolder\":\"Yeni klasör\",\"space.empty.createWeblink\":\"Web bağlantıları\",\"space.empty.addResource\":\"Kitaplık\",\"folder.empty.heading\":\"Bu klasör boş.\",\"folder.empty.description\":\"Doldurmak için dosya eklemeye başlayın.\",\"folder.discard.heading\":\"Bu klasör silindi.\",\"folder.discard.description\":\"Bunun yanlışlıkla yapıldığını düşünüyorsanız yöneticinizle iletişime geçin veya başka içeriklere göz atın.\",\"folder.error.description\":\"Bu klasörden içerik yüklenirken bir sorun oluştu.\",\"space.empty.section.createACanvas\":\"Tuval oluştur\",\"tooltip.opensInBrowser\":\"Tarayıcıda açar\",\"space.empty.workingFiles\":\"Bu projeye eklemeye devam edin\",\"space.empty.canvasPopoverTitle\":\"Creative Cloud Canvas'ı (Beta) Deneyin\",\"space.empty.canvasPopoverContent\":\"Kreatif çalışmaları düzenlemek, görselleştirmek ve gözden geçirmek için tuvalleri kullanın.\",\"space.error.heading\":\"Proje yüklenemiyor\",\"space.error.description\":\"Bu projeden içerik yüklenirken bir sorun oluştu.\",\"createTeamWizard.createTeam.sidebarHeading\":\"Çalışma alanı oluştur\",\"createTeamWizard.createTeam.sidebarCopy\":\"Herkesin haberdar kalmasını ve organize olmasını sağlamak için bir çalışma alanı oluşturun.\",\"createTeamWizard.createTeam.sidebarCopy.adminconsole\":\"Ekibinizin iş birliği yapabileceği ve dosya paylaşabileceği bir yer ayarlayın.\",\"createTeamWizard.createTeam.sidebarLink\":\"Daha fazla bilgi edinin\",\"createTeamWizard.createTeam.contentHeading\":\"Yeni çalışma alanı\",\"createTeamWizard.createTeam.loading\":\"“{name}” çalışma alanı oluşturuluyor\",\"createTeamWizard.inviteMembers.sidebarHeading\":\"Üyeleri “{name}” çalışma alanına davet et\",\"createTeamWizard.inviteMembers.sidebarCopy\":\"Üyeleri hemen davet etmek için bir ad veya e-posta yazmaya başlayın ya da bu adımı atlayıp daha sonra davet edin.\",\"createTeamWizard.inviteMembers.loading\":\"Üyeler “{name}” çalışma alanına davet ediliyor\",\"createTeamWizard.inviteMembers.contentHeading\":\"Üyeleri davet et\",\"createTeamWizard.inviteMembers.successToast\":\"Üyeler yeni çalışma alanına eklendi\",\"createTeamWizard.progress\":\"Adım {current} / {total}\",\"createTeamWizard.skipStep\":\"Atla\",\"teamDialog.createTeam.label\":\"Çalışma alanı oluştur\",\"teamDialog.createTeam.infoBox.description\":\"Oluşturduğunuz çalışma alanına kişiler davet yoluyla katılabilir ve eklenen herkesin varsayılan olarak düzenleme erişimi vardır.\",\"teamDialog.editTeam.label\":\"Çalışma alanını düzenle\",\"teamDialog.nameSection.placeholder\":\"Yeni çalışma alanınıza bir ad verin\",\"teamDialog.nameSection.label\":\"Çalışma alanı adı\",\"teamDialog.permissionsSection.label\":\"Bu çalışma alanını kimler düzenleyebilir?\",\"teamDialog.permissionsSection.option.onlyInvited\":\"Yalnızca davet edilenler\",\"teamDialog.descriptionSection.label\":\"Çalışma alanı açıklaması (isteğe bağlı)\",\"teamDialog.descriptionSection.placeholder\":\"Çalışma alanınız hakkında birkaç sözcük ekleyin\",\"teamsSidebar.noTeams\":\"Çalışma alanı yok\",\"teamsSidebar.newTeamButton\":\"Çalışma alanı oluştur\",\"teamsSidebar.adminTour.title\":\"Yeni! Çalışma alanları oluşturun\",\"teamsSidebar.adminTour.content\":\"Artık yöneticiler, Web üzerinde Creative Cloud'da çalışma alanları oluşturarak paylaşılan çalışmaları düzenlemeyi kolaylaştırabilir.\",\"teamsSidebarTeam.newSpaceButton\":\"Yeni proje\",\"teamsSidebarTeam.header.newBadge\":\"YENİ\",\"teamsSidebarTeam.header.otherTeams\":\"Diğer çalışma alanlarından\",\"teamsSidebarTeam.header.teams\":\"ÇALIŞMA ALANLARI\",\"teamsSidebarTeam.header.previewLabel\":\"(Önizleme)\",\"teamsSidebarTeam.header.previewCopy\":\"Çalışma alanları ve projeler, özel bir beta sürümünde kullanılabilir.\",\"teamsSidebarTeam.header.previewLearnMoreText\":\"Daha fazla bilgi edinin\",\"teamsSidebarTeam.message.loading\":\"Yükleniyor...\",\"teamsSidebarTeam.message.noSpaces\":\"Şu anda çalışma alanınız veya projeniz yok.\",\"teamsSidebarTeam.message.offline\":\"Bağlı değilsiniz. Çalışma alanlarınızı ve projelerinizi görüntülemek için yeniden bağlanın.\",\"teamsSidebarTeam.message.error\":\"Çalışma alanlarınız ve projeleriniz yüklenirken bir sorun oluştu.\",\"teams1up.error.description\":\"Projeleriniz yüklenirken bir sorun oluştu.\",\"teams1up.error.heading\":\"Projeler yüklenemedi\",\"otherTeams.emptyMessage.header\":\"Çalışma alanı sayfası görüntülenemiyor\",\"otherTeams.emptyMessage.description1\":\"Son projeden \",\"otherTeams.emptyMessage.description2\":\" bölümü kullanılarak kaldırıldınız veya ayrıldınız. Bunun yanlışlıkla yapıldığını düşünüyorsanız yöneticinizle iletişime geçin.\",\"spaceTour.step0.title\":\"Projelerinizi burada bulabilirsiniz\",\"spaceTour.step0.content\":\"Projeler, ekiplerin iş birliği yapmasına ve dosya ve kaynakları toplamasına, düzene koymasına ve paylaşmasına yardımcı olur.\",\"spaceTour.step1.title\":\"Proje için ihtiyacınız olan tüm içeriği ekleyin\",\"spaceTour.step1.content\":\"Çalışma dosyalarını, referans görüntüleri, kaynakları ve daha fazlasını tek bir çatı altında bir araya getirin.\",\"spaceTour.step2.title\":\"İzinleri ayarlayın (ve unutun)\",\"spaceTour.step2.content\":\"Zaman kazanmak ve daha az çaba harcamak için ortak çalışanları davet ederken onlara doğru erişim izinlerini atayın. İnceleme ve geri bildirim için paydaşlara salt görüntülenebilir paketler gönderin.\",\"error.cantCreateSpace\":\"Çalışma alanının depolama alanı dolu\",\"error.exceedQuota.create.detail.description1\":\"Şu anda yeni içerik oluşturamazsınız. Depolama alanında yer açmak için \",\"error.exceedQuota.description2\":\" seçeneğini belirleyin.\",\"error.exceedQuota.add.detail.description1\":\"Şu anda yeni içerik ekleyemezsiniz. Depolama alanında yer açmak için \",\"error.move.generic\":\"Bir sorun oluştuğu için öğe taşınamıyor\",\"error.move.signedOut\":\"Çıkış yaptığınız için öğe taşınamıyor\",\"error.move.permissionRevoked\":\"Bu projeden çıkarıldığınız için öğe taşınamıyor\",\"error.move.deleted\":\"Bu öğeyi bir başkası sildiği için öğe taşınamıyor\",\"error.move.duplicate\":\"Bu öğe, taşımaya çalıştığınız yerde zaten mevcut olduğundan taşınamıyor\",\"error.copy.generic\":\"Bir sorun oluştuğu için öğe kopyalanamıyor\",\"error.copy.signedOut\":\"Çıkış yaptığınız için öğe kopyalanamıyor\",\"error.copy.permissionRevoked\":\"Bu projeden çıkarıldığınız için öğe kopyalanamıyor\",\"error.copy.deleted\":\"Bu öğeyi bir başkası sildiği için öğe kopyalanamıyor\",\"error.copy.duplicate\":\"Bu öğe, kopyalamaya çalıştığınız yerde zaten mevcut olduğundan kopyalanamıyor\",\"checkbox.select\":\"Seç\",\"listItem.fileSize\":\"Dosya boyutu\",\"facepile.additionalMembers\":\"+{count} ek üye\",\"facepile.memberName\":\"{name}, üye\",\"coachmark.information\":\"bilgi\",\"toolbar.tools\":\"araçları\",\"griditem.error.message\":\"Alınamıyor\",\"griditem.error.button\":\"Yeniden Dene\",\"ats.move.extendedNotification\":\"Taşıma işleminiz tamamlandığında bir bildirim alacaksınız.\",\"file.deleted.error.heading\":\"Dosyada {operation} işlemi yapılamıyor\",\"file.deleted.error.description\":\"Bu dosya silindiği için dosyada {operation} işlemi yapamazsınız. Silinenlerden geri yükleyin ve tekrar deneyin veya farklı bir konum seçin.\",\"file.deleted.rename.error.description\":\"Bu dosya silindiği için dosyayı yeniden adlandıramazsınız. Dosyayı geri yüklemek için “Silinenlere git”i seçin.\"}");

/***/ }),

/***/ "neHb":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) {
  return typeof obj;
} : function (obj) {
  return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
};

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

var _createChainableTypeChecker = __webpack_require__("pvIh");

var _createChainableTypeChecker2 = _interopRequireDefault(_createChainableTypeChecker);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function validate(props, propName, componentName, location, propFullName) {
  var propValue = props[propName];
  var propType = typeof propValue === 'undefined' ? 'undefined' : _typeof(propValue);

  if (_react2.default.isValidElement(propValue)) {
    return new Error('Invalid ' + location + ' `' + propFullName + '` of type ReactElement ' + ('supplied to `' + componentName + '`, expected a ReactComponent or a ') + 'DOMElement. You can usually obtain a ReactComponent or DOMElement ' + 'from a ReactElement by attaching a ref to it.');
  }

  if ((propType !== 'object' || typeof propValue.render !== 'function') && propValue.nodeType !== 1) {
    return new Error('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected a ReactComponent or a ') + 'DOMElement.');
  }

  return null;
}

exports.default = (0, _createChainableTypeChecker2.default)(validate);
module.exports = exports['default'];

/***/ }),

/***/ "nfoz":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _ModalManager = _interopRequireDefault(__webpack_require__("T1cO"));

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}
/*************************************************************************
* ADOBE CONFIDENTIAL
* ___________________
*
* Copyright 2019 Adobe
* All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains
* the property of Adobe and its suppliers, if any. The intellectual
* and technical concepts contained herein are proprietary to Adobe
* and its suppliers and are protected by all applicable intellectual
* property laws, including trade secret and copyright laws.
* Dissemination of this information or reproduction of this material
* is strictly forbidden unless prior written permission is obtained
* from Adobe.
**************************************************************************/
// needed for the modal manager class


class SpectrumModalManager extends _ModalManager.default {
  constructor(...args) {
    var _temp;

    return _temp = super(...args), this.overflowMap = new Map(), this.superAdd = this.add, this.superRemove = this.remove, this.add = (modal, container, className, isOverlay) => {
      this.superAdd(modal, container, className);
      this.hideBodyOverflow(modal, isOverlay);
    }, this.hideBodyOverflow = (modal, isOverlay) => {
      let currentBodyOverflow = getComputedStyle(document.body).overflow; // if it's not an overlay, it's a modal and scrolling should be disabled (i know, it's weird to think about)

      if (!isOverlay && currentBodyOverflow !== 'hidden') {
        this.overflowMap.set(modal, currentBodyOverflow);
        document.body.style.overflow = 'hidden';
      }
    }, this.remove = (modal, container, className) => {
      this.superRemove(modal, container, className);
      this.resetBodyOverflow(modal);
    }, this.resetBodyOverflow = modal => {
      if (this.overflowMap.has(modal)) {
        document.body.style.overflow = this.overflowMap.get(modal);
        this.overflowMap.delete(modal);
      }
    }, _temp;
  }

  addToModal(child, isOverlay = false) {
    const hideSiblingNodes = this.hideSiblingNodes;
    this.hideSiblingNodes = false;
    this.add(child, document.body, null, isOverlay);
    this.hideSiblingNodes = hideSiblingNodes;
  }

  removeFromModal(child) {
    const hideSiblingNodes = this.hideSiblingNodes;
    this.hideSiblingNodes = false;
    this.remove(child);
    this.hideSiblingNodes = hideSiblingNodes;
  }

}

exports.default = SpectrumModalManager;

/***/ }),

/***/ "nkcM":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("path", {
  d: "M12.232 18.084a2 2 0 0 1-.734-3.861 105.889 105.889 0 0 1 12.648-4.091A80.819 80.819 0 0 1 35.594 8.36a2 2 0 0 1 .256 3.992 78.5 78.5 0 0 0-10.828 1.682 103.5 103.5 0 0 0-12.055 3.909 2.007 2.007 0 0 1-.735.141zm.424-8.21a2 2 0 0 1-.734-3.861 103.446 103.446 0 0 1 12.225-3.88 90.036 90.036 0 0 1 3.057-.63 2 2 0 0 1 .738 3.932c-.924.174-1.9.373-2.92.6a101.334 101.334 0 0 0-11.631 3.7 2.007 2.007 0 0 1-.735.139zM18 44v1.172a2 2 0 0 0 .586 1.414l.828.828a2 2 0 0 0 1.414.586h6.343a2 2 0 0 0 1.414-.586l.828-.828A2 2 0 0 0 30 45.172V44a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2H18a2 2 0 0 0-2 2v4a2.031 2.031 0 0 0 2 2zm-5.065-18.2a2 2 0 0 1-.734-3.861 97.007 97.007 0 0 1 11.946-3.811 80.819 80.819 0 0 1 11.447-1.768 2 2 0 0 1 .256 3.992 78.5 78.5 0 0 0-10.828 1.682 94.613 94.613 0 0 0-11.352 3.629 2 2 0 0 1-.735.137zM18 29v3h4v-3a4.941 4.941 0 0 0-.553-2.238c-1.43.452-2.826.933-4 1.354A.994.994 0 0 1 18 29zm17.271-5H31a5.005 5.005 0 0 0-5 5v3h4v-3a1 1 0 0 1 1-1h4.271a2 2 0 0 0 0-4z"
}));

/***/ }),

/***/ "nm0P":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXTERNAL MODULE: ./src/js/start/SophiaBase.tsx
var SophiaBase = __webpack_require__("hVfy");

// EXTERNAL MODULE: ./node_modules/mobx/lib/mobx.module.js
var mobx_module = __webpack_require__("2vnA");

// EXTERNAL MODULE: ./src/applications/index.tsx + 7 modules
var applications = __webpack_require__("3UBC");

// EXTERNAL MODULE: ./src/js/start/stores/MainStore.tsx + 3 modules
var MainStore = __webpack_require__("cCFZ");

// EXTERNAL MODULE: ./src/js/start/stores/UserStore.tsx
var UserStore = __webpack_require__("VExq");

// EXTERNAL MODULE: ./src/components-start/performance.tsx
var performance = __webpack_require__("r1jx");

// EXTERNAL MODULE: ./src/components-start/constants.tsx
var constants = __webpack_require__("/0Ih");

// EXTERNAL MODULE: ./src/js/iaw/analytics.tsx
var analytics = __webpack_require__("RGcl");

// EXTERNAL MODULE: ./src/js/iaw/fs.tsx
var fs = __webpack_require__("xZA7");

// EXTERNAL MODULE: ./node_modules/fast-copy/dist/fast-copy.js
var fast_copy = __webpack_require__("Q1PT");
var fast_copy_default = /*#__PURE__*/__webpack_require__.n(fast_copy);

// CONCATENATED MODULE: ./node_modules/contentful-resolve-response/dist/esm/index.js
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) {
  return typeof obj;
} : function (obj) {
  return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
};

function _toConsumableArray(arr) {
  if (Array.isArray(arr)) {
    for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {
      arr2[i] = arr[i];
    }

    return arr2;
  } else {
    return Array.from(arr);
  }
}


var UNRESOLVED_LINK = {}; // unique object to avoid polyfill bloat using Symbol()

/**
 * isLink Function
 * Checks if the object has sys.type "Link"
 * @param object
 */

var isLink = function isLink(object) {
  return object && object.sys && object.sys.type === 'Link';
};
/**
 * Creates a string key for lookup in entityMap
 *
 * @param {*} sys
 * @param {String} sys.type
 * @param {String} sys.id
 * @return {String}
 */


var makeLookupKey = function makeLookupKey(sys) {
  return sys.type + '!' + sys.id;
};
/**
 * getLink Function
 *
 * @param response
 * @param link
 * @return {undefined}
 */


var getLink = function getLink(entityMap, link) {
  var _link$sys = link.sys,
      type = _link$sys.linkType,
      id = _link$sys.id;
  var lookupKey = makeLookupKey({
    type: type,
    id: id
  });
  return entityMap.get(lookupKey) || UNRESOLVED_LINK;
};
/**
 * cleanUpLinks Function
 * - Removes unresolvable links from Arrays and Objects
 *
 * @param {Object[]|Object} input
 */


var cleanUpLinks = function cleanUpLinks(input) {
  if (Array.isArray(input)) {
    return input.filter(function (val) {
      return val !== UNRESOLVED_LINK;
    });
  }

  for (var key in input) {
    if (input[key] === UNRESOLVED_LINK) {
      delete input[key];
    }
  }

  return input;
};
/**
 * walkMutate Function
 * @param input
 * @param predicate
 * @param mutator
 * @return {*}
 */


var walkMutate = function walkMutate(input, predicate, mutator, removeUnresolved) {
  if (predicate(input)) {
    return mutator(input);
  }

  if (input && (typeof input === 'undefined' ? 'undefined' : _typeof(input)) === 'object') {
    for (var key in input) {
      if (input.hasOwnProperty(key)) {
        input[key] = walkMutate(input[key], predicate, mutator, removeUnresolved);
      }
    }

    if (removeUnresolved) {
      input = cleanUpLinks(input);
    }
  }

  return input;
};

var normalizeLink = function normalizeLink(entityMap, link, removeUnresolved) {
  var resolvedLink = getLink(entityMap, link);

  if (resolvedLink === UNRESOLVED_LINK) {
    return removeUnresolved ? resolvedLink : link;
  }

  return resolvedLink;
};

var makeEntryObject = function makeEntryObject(item, itemEntryPoints) {
  if (!Array.isArray(itemEntryPoints)) {
    return item;
  }

  var entryPoints = Object.keys(item).filter(function (ownKey) {
    return itemEntryPoints.indexOf(ownKey) !== -1;
  });
  return entryPoints.reduce(function (entryObj, entryPoint) {
    entryObj[entryPoint] = item[entryPoint];
    return entryObj;
  }, {});
};
/**
 * resolveResponse Function
 * Resolves contentful response to normalized form.
 * @param {Object} response Contentful response
 * @param {Object} options
 * @param {Boolean} options.removeUnresolved - Remove unresolved links default:false
 * @param {Array<String>} options.itemEntryPoints - Resolve links only in those item properties
 * @return {Object}
 */


var esm_resolveResponse = function resolveResponse(response, options) {
  options = options || {};

  if (!response.items) {
    return [];
  }

  var responseClone = fast_copy_default()(response);
  var allIncludes = Object.keys(responseClone.includes || {}).reduce(function (all, type) {
    return [].concat(_toConsumableArray(all), _toConsumableArray(response.includes[type]));
  }, []);
  var allEntries = [].concat(_toConsumableArray(responseClone.items), _toConsumableArray(allIncludes));
  var entityMap = new Map(allEntries.map(function (entity) {
    return [makeLookupKey(entity.sys), entity];
  }));
  allEntries.forEach(function (item) {
    var entryObject = makeEntryObject(item, options.itemEntryPoints);
    Object.assign(item, walkMutate(entryObject, isLink, function (link) {
      return normalizeLink(entityMap, link, options.removeUnresolved);
    }, options.removeUnresolved));
  });
  return responseClone.items;
};

/* harmony default export */ var esm = (esm_resolveResponse);
// EXTERNAL MODULE: ./src/js/start/CommonUtils.tsx
var CommonUtils = __webpack_require__("5ndN");

// EXTERNAL MODULE: ./src/LoggerWrapper/Logger.tsx
var Logger = __webpack_require__("43WE");

// EXTERNAL MODULE: ./src/js/iaw/VulcanAPI.ts
var VulcanAPI = __webpack_require__("9PyL");

// EXTERNAL MODULE: ./src/js/iaw/HomescreenError.ts
var HomescreenError = __webpack_require__("LDAD");

// CONCATENATED MODULE: ./src/js/start/Sophia.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
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;
};
var __metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var Sophia_a;













const _logger = Logger["a" /* default */].get('Sophia');

/**
 * Utility class that wraps sophia access.
 */
class Sophia_Sophia extends SophiaBase["b" /* SophiaBase */] {
    constructor() {
        super(...arguments);
        this._data = {};
    }
    /**
     * Initializes the Home/What's New/Toast/Learn data that is shown to the end user.
     */
    async init() {
        await super.init();
    }
    /*
     * Function to process the data post fetch
     * This is currently reading the asset path provided in the process
     * response and processing the JSON to attach to the content field.
     */
    async processFetchedData(data) {
        const result = await Promise.all(Object.keys(constants["k" /* default */].SURFACES).map(async (surface) => {
            var _a, _b, _c;
            const id = constants["k" /* default */].SURFACES[surface];
            const dataPath = data &&
                data.surfaces &&
                data.surfaces[id] &&
                data.surfaces[id].containers &&
                data.surfaces[id].containers[0] &&
                data.surfaces[id].containers[0];
            if (dataPath && dataPath.path) {
                const content = await fs["a" /* default */].readJson(`${this.basePath}${dataPath.path}`).catch(e => {
                    if ([constants["k" /* default */].SURFACES.HOME].includes(id)) {
                        const homeScreenError = new HomescreenError["a" /* HomescreenError */](`Failed to read JSON file with path [${this.basePath}${dataPath.path}], surface=${id}, error=${JSON.stringify(e)}`, 'fallback', HomescreenError["b" /* HomescreenErrorCodes */].SOPHIA_DATA_MISSING);
                        MainStore["mainStore"].setShouldUseDefaultLayoutInFallbackMode(true, 'Missing Data', {
                            workflow: MainStore["mainStore"].prefs.currentRoute,
                            error: homeScreenError,
                            type: analytics["a" /* default */].ingestUtil.KEYS.EVENT_TYPE_ERROR,
                        }, true);
                    }
                    _logger.warn(`Failed to read JSON file with path [${this.basePath}${dataPath.path}], surface=${id}, error=${JSON.stringify(e)}`);
                    return null;
                });
                if (content) {
                    dataPath.content = content;
                }
            }
            // Fetch Custom Content Configuration Cards
            if (id === constants["k" /* default */].SURFACES.HOME) {
                const customContentDataPath = (_c = (_b = (_a = data === null || data === void 0 ? void 0 : data.surfaces) === null || _a === void 0 ? void 0 : _a[id]) === null || _b === void 0 ? void 0 : _b.containers) === null || _c === void 0 ? void 0 : _c.find(container => container.containerLabel === constants["d" /* CONTAINER_LABELS */].CUSTOM_CONTENT_CONFIGURATION_CARDS);
                if (customContentDataPath === null || customContentDataPath === void 0 ? void 0 : customContentDataPath.path) {
                    const content = await fs["a" /* default */].readJson(`${this.basePath}${customContentDataPath.path}`).catch(e => {
                        var _a;
                        const message = `Failed to read JSON file with path [${this.basePath}${customContentDataPath.path}], surface=${id}, error=${(_a = JSON.stringify(e)) === null || _a === void 0 ? void 0 : _a.substring(0, 1024)}`;
                        const homeScreenError = new HomescreenError["a" /* HomescreenError */](message, HomescreenError["c" /* HomescreenErrorTypes */].CUSTOM_CONTENT_CONFIGURATION_CARDS, HomescreenError["b" /* HomescreenErrorCodes */].CUSTOM_CONTENT_CARDS_DATA_MISSING);
                        analytics["a" /* default */].logErrorEvent('customContentConfiguration', {
                            error: homeScreenError,
                            stage: MainStore["mainStore"].recentFilesStore.realOrArtificialLength > 0 ? 'stage2' : 'stage1',
                            layout: constants["f" /* RECOMMENDATION_TYPE */].customContent,
                        });
                        _logger.warn(message);
                    });
                    customContentDataPath.content = content;
                }
            }
        }));
        return data;
    }
    getFullAssetPathFromReferences(asset, options = { createFileURI: true }, references = [], basePath, path) {
        const foundReference = references.find((reference) => reference._path === asset._path) || {};
        if (foundReference[path] && !!basePath) {
            const filePath = `${basePath}${foundReference[path]}`;
            return options.createFileURI ? Object(CommonUtils["d" /* getFileURIForPath */])(filePath) : filePath;
        }
        // Use HTTPS
        const url = asset[this.imageUrlProperty];
        if (url.startsWith('//')) {
            return `https:${url}`;
        }
        else {
            return url;
        }
    }
    /**
     * Coverts the relative to absolute path for images.
     *
     * @param asset Asset object that contains the property
     * @param options
     * @param localPathOverride A custom local path that overrides this.localPathName
     */
    getFullAssetPath(asset, options = { createFileURI: true }, localPathOverride) {
        var _a, _b, _c, _d, _e, _f;
        const homeSurface = this.getSurfaceContent(constants["k" /* default */].SURFACES.HOME);
        const whatsNewSurface = this.getSurfaceContent(constants["k" /* default */].SURFACES.WHATS_NEW);
        const homeReferences = (_c = (_b = (_a = homeSurface === null || homeSurface === void 0 ? void 0 : homeSurface.data) === null || _a === void 0 ? void 0 : _a.experienceHomeMx19ByPath) === null || _b === void 0 ? void 0 : _b._references) !== null && _c !== void 0 ? _c : [];
        const whatsNewReferences = (_f = (_e = (_d = whatsNewSurface === null || whatsNewSurface === void 0 ? void 0 : whatsNewSurface.data) === null || _d === void 0 ? void 0 : _d.componentwhatsnewtoastalByPath) === null || _e === void 0 ? void 0 : _e._references) !== null && _f !== void 0 ? _f : [];
        const allReferences = [...homeReferences, ...whatsNewReferences !== null && whatsNewReferences !== void 0 ? whatsNewReferences : []];
        const pathName = localPathOverride || this.localPathName;
        return this.getFullAssetPathFromReferences(asset, options, allReferences, this.basePath, pathName);
    }
    /**
     * Gets the content for the card with given id
     * @param id Id of the surface to get the content for
     */
    getSurfaceContent(id) {
        var _a, _b, _c, _d, _e;
        return (_e = (_d = (_c = (_b = (_a = this._data) === null || _a === void 0 ? void 0 : _a.surfaces) === null || _b === void 0 ? void 0 : _b[id]) === null || _c === void 0 ? void 0 : _c.containers) === null || _d === void 0 ? void 0 : _d[0]) === null || _e === void 0 ? void 0 : _e.content;
    }
    getSurfaceFailedContainers(id) {
        var _a, _b, _c;
        return (_c = (_b = (_a = this._data) === null || _a === void 0 ? void 0 : _a.surfaces) === null || _b === void 0 ? void 0 : _b[id]) === null || _c === void 0 ? void 0 : _c.failedContainers;
    }
    /**
     * Gets the container for Custom Content Configuration Cards with a given id
     * @param id Id of the surface from where the Custom Content Configuration Cards Container is retrieved
     */
    getCustomContentCardsContainer(id) {
        var _a, _b, _c, _d;
        return (_d = (_c = (_b = (_a = this._data) === null || _a === void 0 ? void 0 : _a.surfaces) === null || _b === void 0 ? void 0 : _b[id]) === null || _c === void 0 ? void 0 : _c.containers) === null || _d === void 0 ? void 0 : _d.find(container => container.containerLabel === constants["d" /* CONTAINER_LABELS */].CUSTOM_CONTENT_CONFIGURATION_CARDS);
    }
    /**
     * Gets the user intent for the card with given id
     * @param id Id of the surface to get the content for
     */
    getUserIntentContent(id) {
        var _a, _b, _c, _d;
        return (_d = (_c = (_b = (_a = this._data) === null || _a === void 0 ? void 0 : _a.surfaces) === null || _b === void 0 ? void 0 : _b[id]) === null || _c === void 0 ? void 0 : _c.containers.find(container => (container === null || container === void 0 ? void 0 : container.containerLabel) === constants["d" /* CONTAINER_LABELS */].USER_INTENT)) === null || _d === void 0 ? void 0 : _d.content;
    }
    /**
     * Returns the user intent analytics data for a surface
     * @param id Id of the surface to get the analytics data for
     */
    getUserIntentAnalyticsData(id) {
        var _a, _b, _c, _d;
        return (_d = (_c = (_b = (_a = this._data) === null || _a === void 0 ? void 0 : _a.surfaces) === null || _b === void 0 ? void 0 : _b[id]) === null || _c === void 0 ? void 0 : _c.containers.find(container => (container === null || container === void 0 ? void 0 : container.containerLabel) === constants["d" /* CONTAINER_LABELS */].USER_INTENT)) === null || _d === void 0 ? void 0 : _d.containerAnalyticsData;
    }
    /**
     * Returns the analytics data for a surface
     * @param id Id of the surface to get the analytics data for
     */
    getAnalyticsData(id) {
        var _a, _b, _c, _d, _e;
        return (_e = (_d = (_c = (_b = (_a = this._data) === null || _a === void 0 ? void 0 : _a.surfaces) === null || _b === void 0 ? void 0 : _b[id]) === null || _c === void 0 ? void 0 : _c.containers) === null || _d === void 0 ? void 0 : _d[0]) === null || _e === void 0 ? void 0 : _e.containerAnalyticsData;
    }
    getNeuralFilterModelId() {
        const homeData = this.getSurfaceContent(constants["k" /* default */].SURFACES.HOME);
        const resolvedData = homeData && esm(homeData);
        const entry = Array.isArray(resolvedData) && resolvedData[0];
        const nfData = entry && entry.fields && entry.fields[constants["k" /* default */].NF_CONTAINER];
        return nfData;
    }
    /**
     * Gets the raw sophia data (useful for logging and debugging).
     */
    get data() {
        return this._data;
    }
    /////////////////////////////////////////////////////////////
    // Configuration
    //////////////////////////////////////////////////////////////
    async apply(data) {
        if (MainStore["mainStore"].user.state !== UserStore["e" /* UserState */].SIGNED_IN) {
            MainStore["mainStore"].setShouldUseDefaultLayoutInFallbackMode(true, MainStore["mainStore"].user.state);
            this._data = {};
            return;
        }
        if (data && data.surfaces && data.surfaces[this.requiredSurface]) {
            this._data = data;
            MainStore["mainStore"].setShouldUseDefaultLayoutInFallbackMode(false);
        }
        else {
            const message = data && data.surfaces
                ? `Missing Home Data: ${JSON.stringify(data.surfaces).substring(0, 1024)}`
                : `Missing Home Data: No surfaces found: ${JSON.stringify(data)}`;
            const homeScreenError = new HomescreenError["a" /* HomescreenError */](message || MainStore["mainStore"].errorMessageForDefaultLayout, 'fallback', data && data.surfaces
                ? HomescreenError["b" /* HomescreenErrorCodes */].SOPHIA_HOME_DATA_MISSING
                : HomescreenError["b" /* HomescreenErrorCodes */].SOPHIA_HOME_DATA_SURFACE_MISSING);
            MainStore["mainStore"].setShouldUseDefaultLayoutInFallbackMode(true, 'Missing Data', {
                workflow: MainStore["mainStore"].prefs.currentRoute,
                error: homeScreenError,
                type: analytics["a" /* default */].ingestUtil.KEYS.EVENT_TYPE_ERROR,
            }, true);
        }
        return;
    }
    /**
     * Mark the usage of home for caching purposes.
     */
    markUsage() {
        Object(VulcanAPI["a" /* vulcanAPI */])().dispatch({ type: 'ccxprocess.FirstMileUsageMarker', data: this.requestData });
    }
    get isViewHidden() {
        return applications["a" /* default */].isHomeScreenVisible == false || !['learn', 'home'].includes(MainStore["mainStore"].prefs.currentRoute);
    }
    defaultToastalToWhatsNew() {
        MainStore["mainStore"].setActiveToastal(MainStore["ToastalName"].WHATS_NEW);
        MainStore["mainStore"].setToastalSettled();
    }
    /*
     * Return true if it is safe or necessary to patch data in to the user
     * Used to tell if data is missing.
     */
    get safeToPatch() {
        return this.isViewHidden && MainStore["mainStore"].shouldRenderFallback;
    }
    isValidBroadcast(message) {
        return message.productCode === applications["a" /* default */].id && message.productVersion === applications["a" /* default */].version;
    }
    get paramField() {
        return 'params';
    }
    get placeholderPath() {
        return 'sophia/data.json';
    }
    get requestType() {
        return 'ccxprocess.FirstMile';
    }
    get type() {
        return 'Home';
    }
    get localPathName() {
        return 'path';
    }
    get requiredSurface() {
        return constants["k" /* default */].SURFACES.HOME;
    }
    // Parameter to track the client name
    get frameworkName() {
        return 'UXP Home Panel';
    }
}
__decorate([
    Object(performance["b" /* Time */])('Sophia Init'),
    __metadata("design:type", Function),
    __metadata("design:paramtypes", []),
    __metadata("design:returntype", Promise)
], Sophia_Sophia.prototype, "init", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], Sophia_Sophia.prototype, "isViewHidden", null);
__decorate([
    mobx_module["z" /* observable */].shallow,
    __metadata("design:type", typeof (Sophia_a = typeof SophiaBase["SophiaData"] !== "undefined" && SophiaBase["SophiaData"]) === "function" ? Sophia_a : Object)
], Sophia_Sophia.prototype, "_data", void 0);
/* harmony default export */ var start_Sophia = __webpack_exports__["a"] = (new Sophia_Sophia());


/***/ }),

/***/ "nmnc":
/***/ (function(module, exports, __webpack_require__) {

var root = __webpack_require__("Kz5y");
/** Built-in value references. */


var Symbol = root.Symbol;
module.exports = Symbol;

/***/ }),

/***/ "noa1":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return CDOApi; });
/* unused harmony export useCDOApi */
/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("2vnA");
/* harmony import */ var _launch_item__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Kko5");
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;
};
var __metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};


class CDOApi {
    constructor(docStore, selectionStore) {
        this.docStore = docStore;
        this.selectionStore = selectionStore;
    }
    get currentDocuments() {
        return this.docStore.activeCollection
            ? this.docStore.activeCollection.sortedElements
                .filter(e => !e.isFolder)
                .map(e => Object(_launch_item__WEBPACK_IMPORTED_MODULE_1__[/* getLaunchDocInfo */ "c"])(e))
            : [];
    }
    selectAsset(uri) {
        const element = this.docStore.activeCollection.elements.find(e => e.docUriForHost === uri);
        this.selectionStore.setSelection([element]);
    }
}
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], CDOApi.prototype, "currentDocuments", null);
function useCDOApi(cdoProviderRef) {
    const provider = cdoProviderRef.current;
    if (!provider) {
        return;
    }
    const cdoStore = provider['_cdoStore'];
    // eslint-disable-next-line prefer-destructuring
    const selectionStore = provider['selectionStore'];
    const { docStore } = cdoStore;
    return new CDOApi(docStore, selectionStore);
}



/***/ }),

/***/ "nqsH":
/***/ (function(module, exports, __webpack_require__) {

!function (e, t) {
   true ? module.exports = t() : undefined;
}(this, function () {
  "use strict";

  return [{
    locale: "hu",
    pluralRuleFunction: function (e, t) {
      return t ? 1 == e || 5 == e ? "one" : "other" : 1 == e ? "one" : "other";
    },
    fields: {
      year: {
        displayName: "év",
        relative: {
          0: "ez az év",
          1: "következő év",
          "-1": "előző év"
        },
        relativeTime: {
          future: {
            one: "{0} év múlva",
            other: "{0} év múlva"
          },
          past: {
            one: "{0} évvel ezelőtt",
            other: "{0} évvel ezelőtt"
          }
        }
      },
      "year-short": {
        displayName: "év",
        relative: {
          0: "ez az év",
          1: "következő év",
          "-1": "előző év"
        },
        relativeTime: {
          future: {
            one: "{0} év múlva",
            other: "{0} év múlva"
          },
          past: {
            one: "{0} évvel ezelőtt",
            other: "{0} évvel ezelőtt"
          }
        }
      },
      month: {
        displayName: "hónap",
        relative: {
          0: "ez a hónap",
          1: "következő hónap",
          "-1": "előző hónap"
        },
        relativeTime: {
          future: {
            one: "{0} hónap múlva",
            other: "{0} hónap múlva"
          },
          past: {
            one: "{0} hónappal ezelőtt",
            other: "{0} hónappal ezelőtt"
          }
        }
      },
      "month-short": {
        displayName: "hónap",
        relative: {
          0: "ez a hónap",
          1: "következő hónap",
          "-1": "előző hónap"
        },
        relativeTime: {
          future: {
            one: "{0} hónap múlva",
            other: "{0} hónap múlva"
          },
          past: {
            one: "{0} hónappal ezelőtt",
            other: "{0} hónappal ezelőtt"
          }
        }
      },
      day: {
        displayName: "nap",
        relative: {
          0: "ma",
          1: "holnap",
          2: "holnapután",
          "-2": "tegnapelőtt",
          "-1": "tegnap"
        },
        relativeTime: {
          future: {
            one: "{0} nap múlva",
            other: "{0} nap múlva"
          },
          past: {
            one: "{0} nappal ezelőtt",
            other: "{0} nappal ezelőtt"
          }
        }
      },
      "day-short": {
        displayName: "nap",
        relative: {
          0: "ma",
          1: "holnap",
          2: "holnapután",
          "-2": "tegnapelőtt",
          "-1": "tegnap"
        },
        relativeTime: {
          future: {
            one: "{0} nap múlva",
            other: "{0} nap múlva"
          },
          past: {
            one: "{0} napja",
            other: "{0} napja"
          }
        }
      },
      hour: {
        displayName: "óra",
        relative: {
          0: "ebben az órában"
        },
        relativeTime: {
          future: {
            one: "{0} óra múlva",
            other: "{0} óra múlva"
          },
          past: {
            one: "{0} órával ezelőtt",
            other: "{0} órával ezelőtt"
          }
        }
      },
      "hour-short": {
        displayName: "óra",
        relative: {
          0: "ebben az órában"
        },
        relativeTime: {
          future: {
            one: "{0} óra múlva",
            other: "{0} óra múlva"
          },
          past: {
            one: "{0} órával ezelőtt",
            other: "{0} órával ezelőtt"
          }
        }
      },
      minute: {
        displayName: "perc",
        relative: {
          0: "ebben a percben"
        },
        relativeTime: {
          future: {
            one: "{0} perc múlva",
            other: "{0} perc múlva"
          },
          past: {
            one: "{0} perccel ezelőtt",
            other: "{0} perccel ezelőtt"
          }
        }
      },
      "minute-short": {
        displayName: "perc",
        relative: {
          0: "ebben a percben"
        },
        relativeTime: {
          future: {
            one: "{0} perc múlva",
            other: "{0} perc múlva"
          },
          past: {
            one: "{0} perccel ezelőtt",
            other: "{0} perccel ezelőtt"
          }
        }
      },
      second: {
        displayName: "másodperc",
        relative: {
          0: "most"
        },
        relativeTime: {
          future: {
            one: "{0} másodperc múlva",
            other: "{0} másodperc múlva"
          },
          past: {
            one: "{0} másodperccel ezelőtt",
            other: "{0} másodperccel ezelőtt"
          }
        }
      },
      "second-short": {
        displayName: "másodperc",
        relative: {
          0: "most"
        },
        relativeTime: {
          future: {
            one: "{0} másodperc múlva",
            other: "{0} másodperc múlva"
          },
          past: {
            one: "{0} másodperccel ezelőtt",
            other: "{0} másodperccel ezelőtt"
          }
        }
      }
    }
  }];
});

/***/ }),

/***/ "nxZz":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = exports.INDETERMINATE = exports.DETERMINATE = void 0;

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _filterDOMProps = _interopRequireDefault(__webpack_require__("Cv/Q"));

var _propTypes = _interopRequireDefault(__webpack_require__("17x9"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

__webpack_require__("DBuf");

const _excluded = ["value", "size", "indeterminate", "centered", "className", "variant"];

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

if (false) {} else if (false) {} else {
  __webpack_require__("OrP4");
}

if (true) __webpack_require__("f8cl");
if (true) __webpack_require__("7y2i");
if (true) __webpack_require__("wmrm");
if (true) __webpack_require__("DBu0");
const DETERMINATE = 'determinate';
exports.DETERMINATE = DETERMINATE;
const INDETERMINATE = 'indeterminate';
exports.INDETERMINATE = INDETERMINATE;

class Wait extends _react.default.Component {
  render() {
    let _this$props = this.props,
        {
      value = 0,
      size = 'M',
      indeterminate = true,
      centered = false,
      className,
      variant
    } = _this$props,
        otherProps = _objectWithoutProperties(_this$props, _excluded); // Determinate version has two high level masks, 1) right half, 2) left half
    // within each of those is a submask which rotates into view within that mask
    // but starts off on the opposite side so it's hidden
    // for first 50%, submask1 moves from -180 to 0 as it covers the first half
    // for the second 50%, submask1 stays in one place and submask2 rotates in
    // from -180 to 0


    let angle;
    let fillSubmask1Style = {};
    let fillSubmask2Style = {};
    let ariaValue = undefined;

    if (variant === DETERMINATE || variant === INDETERMINATE) {
      console.warn(`The "${variant}" variant of Wait is deprecated. Please use the "indeterminate" prop instead.`);
    }

    if (variant === DETERMINATE || !indeterminate) {
      value = Math.min(Math.max(+value, 0), 100);
      ariaValue = value;

      if (value > 0 && value <= 50) {
        angle = -180 + value / 50 * 180;
        fillSubmask1Style.transform = 'rotate(' + angle + 'deg)';
        fillSubmask2Style.transform = 'rotate(-180deg)';
      } else if (value > 50) {
        angle = -180 + (value - 50) / 50 * 180;
        fillSubmask1Style.transform = 'rotate(0deg)';
        fillSubmask2Style.transform = 'rotate(' + angle + 'deg)';
      }
    }

    return /*#__PURE__*/_react.default.createElement("div", _extends({
      className: (0, _classnames.default)('spectrum-CircleLoader', {
        'spectrum-CircleLoader--indeterminate': variant === INDETERMINATE || indeterminate && variant !== DETERMINATE,
        'spectrum-CircleLoader--small': size === 'S',
        'spectrum-CircleLoader--large': size === 'L',
        'spectrum-CircleLoader--overBackground': variant === 'overBackground',
        'react-spectrum-Wait--centered': centered
      }, className),
      role: "progressbar",
      "aria-valuenow": ariaValue,
      "aria-valuemin": 0,
      "aria-valuemax": 100
    }, (0, _filterDOMProps.default)(otherProps)), /*#__PURE__*/_react.default.createElement("div", {
      className: "spectrum-CircleLoader-track"
    }), /*#__PURE__*/_react.default.createElement("div", {
      className: "spectrum-CircleLoader-fills"
    }, /*#__PURE__*/_react.default.createElement("div", {
      className: "spectrum-CircleLoader-fillMask1"
    }, /*#__PURE__*/_react.default.createElement("div", {
      className: "spectrum-CircleLoader-fillSubMask1",
      style: fillSubmask1Style
    }, /*#__PURE__*/_react.default.createElement("div", {
      className: "spectrum-CircleLoader-fill"
    }))), /*#__PURE__*/_react.default.createElement("div", {
      className: "spectrum-CircleLoader-fillMask2"
    }, /*#__PURE__*/_react.default.createElement("div", {
      className: "spectrum-CircleLoader-fillSubMask2",
      style: fillSubmask2Style
    }, /*#__PURE__*/_react.default.createElement("div", {
      className: "spectrum-CircleLoader-fill"
    })))));
  }

}

exports.default = Wait;
Wait.propTypes = {
  /** Whether to center the Wait compnent in the parent container. */
  centered: _propTypes.default.bool,

  /** Custom CSS class to add to the Wait component */
  className: _propTypes.default.string,

  /**
   * Boolean to determine if the Wait component should endlessly spin (indeterminate) or
   * if it should be controlled manually.
   */
  indeterminate: _propTypes.default.bool,

  /** Size of the Wait component */
  size: _propTypes.default.string,

  /** Adjust the filled portion of the Wait component to a determined value */
  value: _propTypes.default.number,

  /**
  * The variant of Wait to display.
  */
  variant: _propTypes.default.oneOf(['overBackground'])
};

/***/ }),

/***/ "o1jT":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, props, _react2.default.createElement("svg", {
    className: "spectrum-UIIcon-ChevronDownMedium"
  }, _react2.default.createElement("path", {
    d: "M9.99 1.01A1 1 0 0 0 8.283.3L5 3.586 1.717.3A1 1 0 1 0 .3 1.717L4.293 5.7a1 1 0 0 0 1.414 0L9.7 1.717a1 1 0 0 0 .29-.707z",
    className: "spectrum-UIIcon--medium"
  }), _react2.default.createElement("path", {
    d: "M11.99 1.51A1 1 0 0 0 10.283.8L6 5.086 1.717.8A1 1 0 1 0 .3 2.217l4.99 4.99a1 1 0 0 0 1.414 0l4.99-4.99a1 1 0 0 0 .296-.707z",
    className: "spectrum-UIIcon--large"
  })));
};

WrappedIcon.displayName = 'ChevronDownMedium';
exports.default = WrappedIcon;

/***/ }),

/***/ "o1r7":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("circle", {
  cx: "18",
  cy: "12",
  r: "2.15"
}), React.createElement("path", {
  d: "M20.333 24H20v-7.6a.4.4 0 0 0-.4-.4h-3.933s-1.167.032-1.167 1 1.167 1 1.167 1H16v6h-.333s-1.167.032-1.167 1 1.167 1 1.167 1h4.667s1.167-.033 1.167-1-1.168-1-1.168-1z"
}), React.createElement("path", {
  d: "M18 2.1A15.9 15.9 0 1 0 33.9 18 15.9 15.9 0 0 0 18 2.1zm0 29.812A13.912 13.912 0 1 1 31.913 18 13.912 13.912 0 0 1 18 31.913z"
}));

/***/ }),

/***/ "o2vJ":
/***/ (function(module) {

module.exports = JSON.parse("{\"Clear search\":\"清除搜索\"}");

/***/ }),

/***/ "o43f":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


exports.__esModule = true;
exports.default = ownerDocument;

function ownerDocument(node) {
  return node && node.ownerDocument || document;
}

module.exports = exports["default"];

/***/ }),

/***/ "o49s":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _autobindDecorator = _interopRequireDefault(__webpack_require__("gKdT"));

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _convertUnsafeMethod = _interopRequireDefault(__webpack_require__("8nyd"));

var _filterDOMProps = _interopRequireDefault(__webpack_require__("Cv/Q"));

var _ImageCache = _interopRequireDefault(__webpack_require__("WQQT"));

var _propTypes = _interopRequireDefault(__webpack_require__("17x9"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

__webpack_require__("75XX");

const _excluded = ["alt", "className", "decorative"];

var _class, _class2, _temp2;

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

const DEFAULT_STATE = {
  src: '',
  loaded: false,
  isPlaceholder: false
};

let Image = (0, _convertUnsafeMethod.default)(_class = (0, _autobindDecorator.default)(_class = (_temp2 = _class2 = class Image extends _react.default.Component {
  constructor(...args) {
    var _temp;

    return _temp = super(...args), this.state = DEFAULT_STATE, _temp;
  }

  reset() {
    this.setState(DEFAULT_STATE);
  }

  loadImage(src, placeholder) {
    if (!this.props.cache && !this.props.headers) {
      this.setState({
        src,
        loaded: false,
        isPlaceholder: false
      });
      return;
    }

    this._src = src;

    let fromCache = _ImageCache.default.has(src);

    if (_ImageCache.default.has(placeholder) && !fromCache) {
      this.setState({
        src: _ImageCache.default.getCached(placeholder),
        loaded: false,
        isPlaceholder: true
      });
    }

    this._loadCallback = (err, url) => {
      // Ignore result if the image src changed while
      // loading, or the component was unmounted.
      if (this._src !== src || !this.mounted) {
        return;
      } // Handle loading errors


      if (err) {
        return this.onError(err);
      } // Update the state. Mark as already loaded if it was from the cache.


      this.setState({
        src: url,
        loaded: fromCache,
        isPlaceholder: this.state.isPlaceholder && !fromCache
      });
    };

    _ImageCache.default.get(src, {
      headers: this.props.headers || {}
    }, this._loadCallback);
  }

  componentDidMount() {
    this.mounted = true;
    this.loadImage(this.props.src, this.props.placeholder);
  }

  componentWillUnmount() {
    _ImageCache.default.abort(this.props.src, this._loadCallback);

    this.mounted = false;
  }

  UNSAFE_componentWillReceiveProps(props) {
    if (props.src !== this.props.src) {
      _ImageCache.default.abort(this.props.src, this._loadCallback);

      this.reset();
      this.loadImage(props.src, props.placeholder);
    }
  }

  componentDidUpdate() {
    this.onLoad();
  }

  isImageLoaded() {
    let image = this.imgRef;

    if (!image || !image.complete) {
      return false;
    }

    if (typeof image.naturalWidth !== 'undefined' && image.naturalWidth === 0) {
      return false;
    }

    return true;
  }

  onLoad() {
    if (this.isImageLoaded()) {
      requestAnimationFrame(() => {
        // Image could have been unmounted or changed between frames, so double check it is still there.
        if (this.isImageLoaded()) {
          if (this.props.onLoad) {
            this.props.onLoad(this.imgRef);
          }

          if (!this.state.loaded) {
            this.setState({
              loaded: true,
              isPlaceholder: false
            });
          }
        }
      });
    }
  }

  onError(err) {
    if (this.props.onError) {
      this.props.onError(err);
    }

    if (this.state.src) {
      this.reset();
    }
  }

  render() {
    let _this$props = this.props,
        {
      alt,
      className,
      decorative
    } = _this$props,
        otherProps = _objectWithoutProperties(_this$props, _excluded);

    let {
      loaded,
      isPlaceholder,
      src
    } = this.state;

    if (decorative) {
      alt = '';
    }

    if (alt == null) {
      console.warn('Neither the `alt` prop or `decorative` were provided to an image. ' + 'Add `alt` text for screen readers, or enable the `decorative` prop to indicate that the image ' + 'is decorative or redundant with displayed text and should not be annouced by screen readers.');
    }

    return /*#__PURE__*/_react.default.createElement("img", _extends({}, (0, _filterDOMProps.default)(otherProps), {
      className: (0, _classnames.default)(className, 'react-spectrum-Image', {
        'is-loaded': loaded,
        'is-placeholder': isPlaceholder
      }),
      src: src,
      onLoad: this.onLoad,
      onError: this.onError,
      ref: r => this.imgRef = r,
      alt: alt
    }));
  }

}, _class2.propTypes = {
  /** The image url **/
  src: _propTypes.default.string.isRequired,

  /** Placeholder image to display while the fullsize one is loading, if cached. */
  placeholder: _propTypes.default.string,

  /** HTTP headers to add to the request for the asset image */
  headers: _propTypes.default.object,

  /** Whether to use the image cache for the image */
  cache: _propTypes.default.bool,

  /** Alternate content for screen readers */
  alt: _propTypes.default.string,

  /** Whether the image is being used for decoration and should not be announced by screen readers */
  decorative: _propTypes.default.bool,

  /** Load callback triggered when images load */
  onLoad: _propTypes.default.func
}, _class2.defaultProps = {
  cache: false
}, _temp2)) || _class) || _class;

exports.default = Image;

/***/ }),

/***/ "o8MM":
/***/ (function(module) {

module.exports = JSON.parse("{\"a11y.button.canvases\":\"{name}\",\"a11y.button.libraries\":\"{name}, library\",\"a11y.button.listGridToggle\":\"view toggle, {toggledView, select, grid {grid} list {list}} view\",\"a11y.button.project\":\"{name}, project\",\"a11y.button.published\":\"{name}, {extension}\",\"a11y.button.selectFolder\":\"Select folder\",\"a11y.button.working\":\"{name}, {extension}, modified {modified}\",\"a11y.strings.folder\":\"folder\",\"header.action.newProject\":\"New project\",\"header.action.newLibrary\":\"New library\",\"header.action.browseAll\":\"Browse all\",\"header.Name\":\"Name\",\"header.Size\":\"Size\",\"header.Sharing\":\"Members\",\"header.Team\":\"Workspace\",\"header.DateModified\":\"Modified\",\"header.DateCreated\":\"Created\",\"header.Status\":\"Favorited\",\"header.SortBy\":\"Sort by\",\"header.sort.label\":\"Sort\",\"header.ChangeSortDirection\":\"Change sort direction to\",\"header.SortBy.asc\":\"Ascending\",\"header.SortBy.desc\":\"Descending\",\"header.selectAll\":\"Select all\",\"header.reverseOrder\":\"Reverse order\",\"header.showCompatible\":\"Compatible files\",\"header.showEverything\":\"Everything\",\"product.illustrator.web\":\"Illustrator Web (Beta)\",\"product.photoshop.web\":\"Photoshop Web (Beta)\",\"status.followed\":\"Yes\",\"status.unfollowed\":\"No\",\"team.usm.defaultName\":\"Workspace {name}\",\"space.access.private.description\":\"Only invited people\",\"space.access.private.tooltip\":\"Only people who have been invited have access to this project\",\"space.access.team.description\":\"Anyone in the workspace and those invited\",\"space.access.team.tooltip\":\"Anyone within \\\"{team}\\\" has access to this project\",\"yourProjects.title\":\"Projects\",\"yourProjects.librariesTab.title\":\"Team libraries\",\"yourProjects.empty.spaces\":\"Create more projects and invite more workspace members\",\"browseAll.title\":\"Browse all\",\"yourFiles.title\":\"Your documents\",\"yourLibraries.title\":\"Libraries\",\"yourLibraries.metadata\":\"LIBRARY\",\"canvas.metadata\":\"CANVAS\",\"projectInfo.action.view\":\"View info\",\"projectInfo.action.edit\":\"Edit project\",\"projectInfo.empty.cta\":\"Create new project\",\"projectInfo.empty.description\":\"Creative Cloud Projects simplify finding, organizing, sharing, and decision-making, putting everything you need for your creative projects all in one place.\",\"projectInfo.empty.heading\":\"More creating, less catching up.\",\"projectInfo.error.description\":\"Please try again later\",\"projectInfo.error.heading\":\"Can’t load {section}\",\"projectInfo.new.error.title\":\"Can’t create new project\",\"projectInfo.new.noPermission.description\":\"Contact your admin for more info.\",\"projectInfo.title.create\":\"NEW PROJECT\",\"projectInfo.title.edit\":\"EDIT PROJECT\",\"projectInfo.title.view\":\"PROJECT INFO\",\"projectInfo.access.title\":\"Who can edit this project\",\"projectInfo.access.warning\":\"Some members may lose access to the project if you change the permission to \\\"Only invited people\\\".\",\"projectInfo.organization\":\"Organization\",\"projectInfo.organization.placeholder\":\"Select one\",\"projectInfo.description\":\"Description\",\"textField.invalid.characters\":\"Names can’t contain the following characters: \\\\\\\\ / * ? \\\" | : < >\",\"textField.invalid.duplicateName\":\"There’s already a project with this name in this organization.\",\"textField.invalid.duplicateName.space\":\"There’s already a project with this name in this workspace.\",\"textField.invalid.duplicateName.team\":\"There’s already a workspace with this name in this organization.\",\"textField.invalid.empty\":\"Name must not be blank\",\"textField.invalid.generic\":\"Invalid name\",\"textField.invalid.length\":\"Names can’t be longer than 50 characters\",\"textField.invalid.nameEndsWithDot\":\"Names can’t end with a period\",\"textField.invalid.offline\":\"Reconnect to access all of your workspaces and projects. To view local files from your projects, go to Home.\",\"projectInfo.textField.placeholder\":\"Name this project\",\"projectInfo.team\":\"Workspace\",\"projectInfo.description.placeholder\":\"Ex: Files, feedback, and reference materials for the client project\",\"projectInfo.description.invalidLength\":\"Description can’t be longer than 1000 characters\",\"projectInfo.toast.success.new\":\"Successfully created project: {name}\",\"projectInfo.toast.success.update\":\"Successfully updated project: {name}\",\"projectInfo.toast.error.generic\":\"Failed to {create, select, true {create} other {edit}} project\",\"team.empty.heading\":\"Projects keep everyone on the same page\",\"team.empty.description\":\"Tired of getting locked out of files, managing confusion about versions, and emailing screenshots for review? Use spaces to organize projects, collect resources and feedback, and share files the whole team needs to work on.\",\"team.empty.createSpace\":\"Create a project\",\"team.empty.inviteMembers\":\"Invite members\",\"team.empty.startHere\":\"START HERE\",\"team.create.success\":\"Successfully created workspace: {name}\",\"team.create.error.generic\":\"Failed to create workspace\",\"team.edit.success\":\"Successfully updated workspace: {name}\",\"team.edit.error.generic\":\"Failed to update workspace\",\"team.archive.success\":\"{count, plural, =1 {# workspace} other {# workspaces}} deleted\",\"team.archive.error.generic\":\"Can’t delete {count, plural, =1 {# workspace} other {# workspaces}}\",\"team.error.generic\":\"Sorry, something went wrong.\",\"project1Up.action.projectInfo\":\"View info\",\"project1up.region.space.ariaLabel\":\"{projectName}, project\",\"project1Up.section.libraries\":\"Libraries\",\"project1Up.section.libraries.empty.cta\":\"Add Creative Cloud Libraries\",\"project1Up.section.libraries.empty.description\":\"Add links to libraries that you need for your work.\",\"project1Up.section.libraries.empty.heading\":\"Bring everything together in one place\",\"project1Up.section.filter\":\"Filter\",\"project1Up.section.filter.label\":\"Filter by keyword\",\"project1Up.section.filter.enterKeyword\":\"Enter keyword\",\"project1Up.section.filterFiles.empty.heading\":\"No results match the selected Filter\",\"project1Up.section.compatibleFiles.empty.heading\":\"No compatible files in this project\",\"project1Up.section.workingFiles\":\"Working files\",\"project1Up.section.workingFiles.empty.addFiles\":\"Add files\",\"project1Up.section.workingFiles.empty.createFolder\":\"Create new folder\",\"project1Up.section.workingFiles.empty.description\":\"Iterate on projects and collaborate with other members.\",\"project1Up.section.workingFiles.empty.heading\":\"Work on what you want when you need to\",\"project1Up.section.published\":\"Published\",\"project1Up.section.published.empty.cta\":\"How to publish links\",\"project1Up.section.published.empty.description\":\"Send view-only links to get feedback from the right people at the right time.\",\"project1Up.section.published.empty.description.readonly\":\"When someone needs feedback or review, they’ll add a link here.\",\"project1Up.section.published.empty.heading\":\"Share with purpose\",\"project1Up.section.published.empty.heading.readonly\":\"No published items in this project\",\"project1Up.section.canvases\":\"Canvases\",\"project1Up.section.canvases.empty.cta\":\"Add Creative Cloud Canvases\",\"project1Up.section.canvases.empty.description\":\"Add links to stuff you need to do your work.\",\"project1Up.section.canvases.empty.heading\":\"Bring everything together in one place\",\"project1Up.section.files\":\"Files\",\"project1Up.error.accessDenied.heading\":\"You don’t have access\",\"project1Up.error.accessDenied.description\":\"You were removed from this project. Contact your admin if you think this is a mistake.\",\"project1Up.header.seeAll\":\"View All\",\"project1up.subheader.selected\":\"{count, plural, =1 {# item} other {# items}} selected\",\"project1up.subheader.emptyDescription\":\"Add a description to your project\",\"project1up.subheader.canvases.title\":\"Canvases\",\"project1up.subheader.canvases.subtitle\":\"TODO: CANVASES SUBTITLE\",\"project1up.subheader.libraries.title\":\"Libraries\",\"project1up.subheader.libraries.subtitle\":\"Members can add links to Creative Cloud Libraries here.\",\"project1up.subheader.working.title\":\"Working files\",\"project1up.subheader.working.subtitle\":\"Members of this project can edit these files.\",\"project1up.subheader.output.title\":\"Published\",\"project1up.subheader.output.subtitle\":\"{contributor, select, true {Share read-only versions of work with people outside your project.} other {View and comment on these read-only items}}\",\"project.subtitle\":\"PROJECT\",\"project.countContributors\":\"{count, plural, =1 {# member} other {# members}}\",\"project.versionError.reload.description\":\"Try refreshing your browser.\",\"project.versionError.reload.title\":\"Can’t access project\",\"project.versionError.update.description\":\"You can’t access the project until you update the app.\",\"project.versionError.update.title\":\"Update {appName} to open\",\"project.alreadyDiscarded.title\":\"This project was deleted\",\"project.alreadyDiscarded.description\":\"Contact your admin if you think this is a mistake or browse other content.\",\"project.deleted.title\":\"This project was deleted permanently\",\"project.deleted.description\":\"You can’t access this project because it isn’t available any longer.\",\"project.metadataError.backLabel\":\"Back to projects\",\"project.metadataError.description\":\"Either we can’t find the project you’re looking for, or you don’t have access.\",\"project.metadataError.title\":\"Sorry, something went wrong.\",\"folder.subtitle\":\"FOLDER\",\"libraries.toast.add.start\":\"Adding {count, plural, =1 {# library} other {# libraries}}\",\"libraries.toast.add.success\":\"{count, plural, =1 {# library} other {# libraries}} added\",\"libraries.toast.add.error\":\"Failed to add {count, plural, =1 {# library} other {# libraries}}.  Try again.\",\"libraries.toast.add.duplicate\":\"This library already exists\",\"libraries.toast.add.onlyDuplicates\":\"Can’t add {count, plural, =1 {# library because the library already exists} other {# libraries because the libraries already exist}}.\",\"libraries.toast.delete.success\":\"Successfully removed {count, plural, =1 {# library} other {# libraries}}\",\"libraries.toast.delete.error\":\"Failed to remove {count, plural, =1 {# library} other {# libraries}}\",\"libraries.toast.follow.inProgress\":\"Following {count, plural, =1 {# library} other {# libraries}}\",\"libraries.toast.follow.success\":\"Followed {count, plural, =1 {# library} other {# libraries}}\",\"libraries.toast.follow.error\":\"Failed to follow {count, plural, =1 {# library} other {# libraries}}\",\"libraries.toast.unfollow.inProgress\":\"Unfollowing {count, plural, =1 {# library} other {# libraries}}\",\"libraries.toast.unfollow.success\":\"Unfollowed {count, plural, =1 {# library} other {# libraries}}\",\"libraries.toast.unfollow.error\":\"Failed to unfollow {count, plural, =1 {# library} other {# libraries}}\",\"libraries.modal.empty.heading\":\"No libraries\",\"libraries.modal.empty.description\":\"Your organization hasn’t shared any libraries\",\"libraries.modal.error.limitExceeded\":\"Can’t add library\",\"libraries.modal.error.limitExceeded.detail\":\"You can add up to 100 libraries to a project. Remove some to add more.\",\"libraries.brokenResources\":\"Some libraries aren’t shown because you don’t have access. Contact other members for more info.\",\"copy.start\":\"Copying {count, plural, =1 {# item} other {# items}}\",\"copy.failure\":\"Can’t copy {count, plural, =1 {# item} other {# items}}\",\"copy.failure.partial\":\"Can’t copy some items\",\"copy.success\":\"{count, plural, =1 {# item} other {# items}} copied\",\"copy.conflictSuffix\":\"copy\",\"move.start\":\"Moving {count, plural, =1 {# item} other {# items}}\",\"move.failure\":\"Can’t move {count, plural, =1 {# item} other {# items}}\",\"move.failure.partial\":\"Can’t move some items\",\"move.success\":\"{count, plural, =1 {# item} other {# items}} moved\",\"upload.start\":\"Uploading {count, plural, =1 {# item} other {# items}}\",\"upload.failure\":\"Can’t upload {count, plural, =1 {# item} other {# items}}\",\"upload.failure.partial\":\"Can’t upload some items\",\"upload.failure.snapshot\":\"This item is not supported\",\"upload.success\":\"{count, plural, =1 {# item} other {# items}} uploaded\",\"download.start\":\"Downloading {count, plural, =1 {# item} other {# items}}\",\"download.failure\":\"Can’t download {count, plural, =1 {# item} other {# items}}\",\"download.failure.partial\":\"Can’t download some items\",\"download.success\":\"{count, plural, =1 {# item} other {# items}} downloaded\",\"delete.failure\":\"Can’t delete {count, plural, =1 {# item} other {# items}}\",\"delete.failure.partial\":\"Can’t delete some items\",\"delete.success\":\"{count, plural, =1 {# item} other {# items}} deleted\",\"jobs.inProgress\":\"Working...\",\"restore.failure\":\"Can’t restore {count, plural, =1 {# item} other {# items}}\",\"restore.failure.partial\":\"Can’t restore some items\",\"restore.success\":\"{count, plural, =1 {# item} other {# items}} restored\",\"rename.start\":\"Renaming\",\"rename.success\":\"{count, plural, =1 {# item} other {# items}} renamed\",\"rename.failure\":\"Server error, couldn’t rename item\",\"rename.failure.conflict\":\"You already have an item here with this name\",\"rename.offline.heading\":\"Can't rename\",\"rename.offline\":\"You're offline and can't rename the item. Go back online to take this action.\",\"bookmark.follow.error\":\"Can’t favorite this project\",\"bookmark.unfollow.error\":\"Can’t unfavorite this project\",\"bookmark.follow.success\":\"Successfully favorited {projectName}\",\"bookmark.unfollow.success\":\"Successfully unfavorited {projectName}\",\"bookmark.bulk.follow.success\":\"Successfully favorited {count, plural, =1 {# item} other {# items}}\",\"bookmark.bulk.follow.partial\":\"Can’t favorite some items\",\"bookmark.bulk.follow.error\":\"Can’t favorite {count, plural, =1 {# item} other {# items}}\",\"bookmark.bulk.unfollow.success\":\"Successfully unfavorited {count, plural, =1 {# item} other {# items}}\",\"bookmark.bulk.unfollow.partial\":\"Can’t unfavorite some items\",\"bookmark.bulk.unfollow.error\":\"Can’t unfavorite {count, plural, =1 {# item} other {# items}}\",\"copyLink.success\":\"Link copied to clipboard\",\"copyLink.failure\":\"Can’t copy link\",\"starterUser.project1upNavigation\":\"Your Starter plan doesn’t include opening documents in projects\",\"starterUser.project1upNavigationCDPSave\":\"Your Starter plan doesn’t include saving documents in projects\",\"invite.failure\":\"Couldn’t send invitations, please try again\",\"accessibility.backButton\":\"Go back\",\"button.role\":\"Button\",\"button.actions\":\"Actions\",\"button.add\":\"Add\",\"button.addFiles\":\"Add files\",\"button.addLibrary\":\"Add library\",\"button.createDocument\":\"New {appName} file\",\"button.library\":\"Library\",\"button.back\":\"Back\",\"button.browse\":\"Browse all\",\"button.cancel\":\"Cancel\",\"button.okay\":\"Okay\",\"button.canvas\":\"Canvas\",\"button.addCanvas\":\"New canvas\",\"button.changeDefaultApp\":\"Change default application...\",\"button.close\":\"Close\",\"button.continue\":\"Continue\",\"button.copy\":\"Copy to...\",\"button.copyLink\":\"Copy link\",\"button.create\":\"Create\",\"button.createNewFolder\":\"Create new folder\",\"button.newFile\":\"New file\",\"button.newFolder\":\"New folder\",\"button.delete\":\"Delete\",\"button.deleteResource\":\"Remove\",\"button.done\":\"Done\",\"button.download\":\"Download\",\"button.favorite\":\"Favorite\",\"button.follow\":\"Follow\",\"button.invite\":\"Invite\",\"button.inviteLabel\":\"Invite people\",\"button.leave\":\"Leave\",\"button.leaveProject\":\"Leave workspace\",\"button.move\":\"Move to...\",\"button.next\":\"Next\",\"button.ok\":\"OK\",\"button.open\":\"Open\",\"button.openWith\":\"Open with\",\"button.open.appName\":\"{appName} {isDefault, select, true {(Default)} other {}}\",\"button.redo\":\"Try again\",\"button.reload\":\"Reload\",\"button.rename\":\"Rename\",\"button.restore\":\"Restore\",\"button.retry\":\"Retry\",\"button.save\":\"Save\",\"button.select\":\"Select\",\"button.share\":\"Share\",\"button.skipTour\":\"Skip tour\",\"button.undo\":\"Undo\",\"button.unfavorite\":\"Unfavorite\",\"button.unfollow\":\"Unfollow\",\"button.update\":\"Update\",\"button.upgrade\":\"Upgrade\",\"button.view\":\"View all\",\"button.viewProject\":\"View project\",\"button.viewTarget\":\"View\",\"button.createWeblink\":\"Add web link\",\"button.leaveTeam\":\"Leave workspace\",\"button.renameTeam\":\"Rename workspace\",\"button.editTeam\":\"Edit workspace info\",\"button.archiveTeam\":\"Delete workspace\",\"button.upload\":\"Upload files\",\"button.goToDeleted\":\"View in deleted\",\"button.viewEverything\":\"View everything\",\"button.viewInWeb\":\"View in web\",\"abbreviations.fileSize.byte\":\"B\",\"abbreviations.fileSize.kilobyte\":\"KB\",\"abbreviations.fileSize.megabyte\":\"MB\",\"abbreviations.fileSize.gigabyte\":\"GB\",\"abbreviations.fileSize.terabyte\":\"TB\",\"statusIcon.conflicted\":\"Sync conflict\",\"statusIcon.onlineOnly\":\"Online-only\",\"statusIcon.availableOffline\":\"Available offline\",\"statusIcon.syncing\":\"Syncing...\",\"statusIcon.waitingToSync\":\"Waiting to sync\",\"statusMessage.offline.description\":\"Reconnect to access all of your workspaces and projects. To view local files from your projects, go to Home.\",\"statusMessage.offline.heading\":\"You’re disconnected\",\"statusMessage.offline.toast\":\"You’re disconnected, so some features and files might be unavailable.\",\"toggle.listView\":\"List view\",\"toggle.gridView\":\"Thumbnail view\",\"color.fuchsia\":\"Fuchsia\",\"color.indigo\":\"Indigo\",\"color.celery\":\"Celery\",\"color.magenta\":\"Magenta\",\"color.yellow\":\"Yellow\",\"color.seafoam\":\"Seafoam\",\"color.chartreuse\":\"Chartreuse\",\"color.purple\":\"Purple\",\"color.blue\":\"Blue\",\"color.red\":\"Red\",\"color.orange\":\"Orange\",\"color.green\":\"Green\",\"color.label\":\"Project color\",\"tooltip.offline.general\":\"Go back online to take this action\",\"tooltip.moreFaces\":\"+ {number} more\",\"action.leave.space.success\":\"You left {count, plural, =1 {# project} other {# projects}}\",\"action.leave.prototype.success\":\"Access to {count, plural, =1 {# prototype} other {# prototypes}} removed\",\"action.leave.file.success\":\"Access to {count, plural, =1 {# file} other {# files}} removed\",\"action.leave.canvas.success\":\"Access to {count, plural, =1 {# canvas} other {# canvases}} removed\",\"action.leave.team.success\":\"You left 1 workspace\",\"action.leave.space.error\":\"Can’t leave this project\",\"action.leave.prototype.error\":\"Can’t leave this prototype\",\"action.leave.file.error\":\"Can’t leave this file\",\"action.leave.team.error\":\"Can’t leave this workspace\",\"action.leave.canvas.error\":\"Can’t leave this canvas\",\"action.leave.space.partial.error\":\"Can’t leave all projects\",\"action.leave.prototype.partial.error\":\"Can’t leave all prototypes\",\"action.leave.file.partial.error\":\"Can’t leave all files\",\"action.leave.canvas.partial.error\":\"Can’t leave all canvases\",\"action.leave.error.onlyContributor\":\"You’re the only member. Add another before leaving.\",\"action.leave.error.addressBookGroupMember\":\"Leave the group and try again.\",\"action.leave.error.admin\":\"You can’t leave because you’re an admin.\",\"action.leave.error.generic\":\"You can’t leave because something went wrong.\",\"action.reportAbuse\":\"Report abuse\",\"action.reportAbuse.required\":\"Required\",\"action.reportAbuse.titleText\":\"If you feel that this Creative Cloud content violates the Adobe Terms of Use, you may report this content by filling out this quick form.\",\"action.reportAbuse.emailInput\":\"Your Email\",\"action.reportAbuse.nameInput\":\"Your Name\",\"action.reportAbuse.radioButtonText\":\"Why are you reporting this content?\",\"action.reportAbuse.defamation\":\"Defamation\",\"action.reportAbuse.hate\":\"Racist or Hate content\",\"action.reportAbuse.trademark\":\"Trademark Infringment\",\"action.reportAbuse.pornography\":\"Sexually Explicit Content\",\"action.reportAbuse.vulgar\":\"Offensive Content\",\"action.reportAbuse.other\":\"Other\",\"action.reportAbuse.inappropriate\":\"Inappropriate\",\"action.reportAbuse.age\":\"Age inaccuracy\",\"action.reportAbuse.gender\":\"Gender inaccuracy\",\"action.reportAbuse.textAreaTitle\":\"Please provide a description of your concern\",\"action.reportAbuse.describeConcern\":\"Describe Concern\",\"action.reportAbuse.success\":\"Successfully reported abuse\",\"action.reportAbuse.failure\":\"Failed to report abuse\",\"action.menu.label\":\"Action Menu\",\"action.label\":\"Action\",\"dialog.genericError.description\":\"Sorry, something went wrong.\",\"dialog.genericError.title\":\"Unexpected error\",\"dialog.leave.space.title\":\"Leave {count, plural, =1 {{name}} other {projects}}\",\"dialog.leave.prototype.title\":\"Leave {count, plural, =1 {this prototype} other {prototypes}}\",\"dialog.leave.file.title\":\"Leave {count, plural, =1 {this file} other {files}}\",\"dialog.leave.canvas.title\":\"Leave {count, plural, =1 {this canvas} other {canvases}}\",\"dialog.leave.team.title\":\"Saying goodbye?\",\"dialog.leave.team.detail\":\"You won’t be able to undo this if you remove yourself. Contact an admin if you want to be added back to this workspace.\",\"dialog.leave.space.detail\":\"You’ll lose access to items you don’t own that are in this project. Leaving \\\"{projectName}\\\" can’t be undone.\",\"dialog.leave.prototype.detail\":\"You won’t be able to access this again without another invitation.\",\"dialog.leave.file.detail\":\"You won’t be able to access this again without another invitation.\",\"dialog.leave.canvas.detail\":\"You won’t be able to access this again without another invitation.\",\"dialog.leave.detail\":\"{type, select, space {You’ll lose access to items you don’t own that are in {count, plural, =1 {this project} other {these projects}}. Leaving {count, plural, =1 {\\\"{name}\\\"} other {these projects}} can’t be undone.} other {You won’t be able to access {count, plural, =1 {this} other {these}} again without another invitation{count, plural, =1 {.} other {:}}}}\",\"dialog.deleteFailed.title\":\"Can’t delete all items\",\"dialog.deleteWarning.description\":\"{type, select, spaces {This action will delete the contents for all members of these projects:} other {This action will delete the following for all members of this project:}}\",\"dialog.deleteWarning.title\":\"{type, select, space {Delete {count} {count, plural, =1 {project} other {projects}}} other {Delete {count} {count, plural, =1 {item} other {items}}}}\",\"dialog.deleteFailed.description.unauthorized\":\"Can’t delete because you were removed from the project:\",\"dialog.deleteFailed.description.alreadyDeleted\":\"Can’t delete because someone else already deleted this item:\",\"dialog.deleteFailed.description.unknown\":\"Can’t delete because something went wrong:\",\"dialog.cantCopyAllItems\":\"Can’t copy all items\",\"dialog.cantCopyBecauseSomethingWentWrong\":\"Can’t copy because something went wrong:\",\"dialog.cantCopyBecauseYouWereSignedOut\":\"Can’t copy because you were signed out:\",\"dialog.cantCopyBecauseYouWereRemoved\":\"Can’t copy because you were removed from this project:\",\"dialog.cantCopyBecauseItemWasDeleted\":\"Can’t copy because someone else deleted this item:\",\"dialog.cantCopyBecauseItemExists\":\"Can’t copy because this already exists where you tried to copy:\",\"dialog.cantMoveAllItems\":\"Can’t move all items\",\"dialog.cantMoveBecauseSomethingWentWrong\":\"Can’t move because something went wrong:\",\"dialog.cantMoveBecauseYouWereSignedOut\":\"Can’t move because you were signed out:\",\"dialog.cantMoveBecauseYouWereRemoved\":\"Can’t move because you were removed from this project:\",\"dialog.cantMoveBecauseItemWasDeleted\":\"Can’t move because someone else deleted this item:\",\"dialog.cantMoveBecauseItemExists\":\"Can’t move because this already exists where you tried to move:\",\"dialog.createFolder.error\":\"Server error, couldn’t save folder\",\"dialog.createFolder.nameConflict\":\"You already have a folder with this name.\",\"dialog.createFolder.placeholder\":\"Folder Name\",\"dialog.createFolder.title\":\"Create Folder\",\"dialog.createFolder.success\":\"Successfully created Folder\",\"dialog.createWeblink.error\":\"Unsupported url\",\"dialog.createWeblink.tooManyRequests\":\"Unexpected network error. Please try again.\",\"dialog.createWeblink.success\":\"1 item added\",\"dialog.createWeblink.nameConflict\":\"This title already exists\",\"dialog.createWeblink.name.placeholder\":\"Enter name for this link\",\"dialog.createWeblink.link.placeholder\":\"https://\",\"dialog.createWeblink.name\":\"Custom title\",\"dialog.createWeblink.link\":\"Link\",\"dialog.createWeblink.title\":\"Create a web link\",\"app.type.webLink\":\"WEB LINK\",\"dialog.createCanvas.error\":\"Can’t create a canvas\",\"dialog.move.title\":\"Move to project {projectName}\",\"dialog.move.detail\":\"Moving this item will change who can access it.\",\"moveToTeam.confirm.title\":\"Move to {name} workspace\",\"moveToTeam.confirm.message\":\"Moving your projects here will change who can access them. Your projects will be accessible to anyone who has access to your workspace.\",\"moveToTeam.disabled.differentOrg.tooltip.message\":\"You cannot move projects to a workspace in a different organization.\",\"moveToSpace.disabled.differentOrg.tooltip.message\":\"You cannot move items to a project in a different organization.\",\"moveToTeam.success\":\"You moved {count, plural, =1 {# project} other {# projects}} to the {name} workspace\",\"confirmationDialog.dontShowAgain\":\"Don't show again\",\"dialog.open.title\":\"Open on the web\",\"dialog.open.detail\":\"You can’t open this file in {appName}, but you can access it in a browser.\",\"dialog.renameTeam.title\":\"Rename workspace\",\"dialog.renameTeam.placeholder\":\"Enter a name for this workspace\",\"dialog.renameTeam.error\":\"Sorry, something went wrong.\",\"dialog.renameTeam.nameConflict\":\"This name already exists\",\"dialog.archiveTeam.title\":\"Deleting this workspace?\",\"dialog.archiveTeam.detail\":\"You can’t undo this if you remove yourself. Contact an admin if you want to join this workspace again.\",\"dialog.saveToCloud.title\":\"File(s) saved to Creative Cloud\",\"dialog.saveToCloud.detail\":\"Your cloud document now offers version history, inviting and co-editing, instant access on other devices and more. You can find it here and in your Creative Cloud apps.\",\"input.invalidCharInput\":\"Name cannot contain the following characters: \\\\\\\\ / * ? \\\" | :\",\"input.invalidEmptyInput\":\"{names, select, true {Names} other {Titles}} must not be blank\",\"input.nameTooLong\":\"{names, select, true {Names} other {Titles}} can’t be more than {maxLength} characters\",\"input.nameEndsWithDot\":\"{names, select, true {Names} other {Titles}} can’t end with a period\",\"input.weblink.nameRestricted\":\"Web links cannot have the following titles: \\\"con\\\", \\\"prn\\\", \\\"aux\\\", \\\"nul\\\", \\\"com#\\\", \\\"lpt#\\\"\",\"input.nameRestricted\":\"Assets cannot have the following names: con/prn/aux/nul/com#/lpt#\",\"input.weblink.invalidCharInput\":\"Titles can’t contain only spaces or contain the following characters: \\\\\\\\ / * ? \\\" | : < > \",\"input.name.invalidCharInput\":\"Names can’t contain only spaces or contain the following characters: \\\\\\\\ / * ? \\\" | : < > \",\"cdpFooter.orphanedArtifactsWarning\":\"Published links connected to items you are moving will remain in the original project\",\"cdpFooter.libraryPrivacyWarning\":\"If you have reshare permissions to a library that you add, members of the project will be able to view it\",\"toast.beforeOp.error.documentIsOpen\":\"Close the {count, plural, =1 {document} other {documents}} to perform this action.\",\"app.type.designSpecs\":\"DESIGN SPECS\",\"app.type.prototype\":\"PROTOTYPE\",\"app.type.publishedLink\":\"PUBLISHED LINK\",\"popover.header\":\"Collaborate on a project with others, and share your work for feedback.\",\"popover.linkout\":\"Learn more\",\"team.libraries.filter.all\":\"All\",\"team.libraries.filter.addedToYourLibraries\":\"Added to Your libraries\",\"team.libraries.filter.notAdded\":\"Not added\",\"team.spaces.filter.all\":\"Everything\",\"team.spaces.filter.favorited\":\"Favorited\",\"team.filter.empty.heading\":\"No Projects match the selected Filter\",\"team.filter.empty.description1\":\"We couldn’t find results for \",\"team.filter.empty.description2\":\" in this list. Check your spelling or try using different keywords.\",\"team.filter.no.match.description\":\"We couldn’t find results in this list. Check your spelling or try using different filter criteria.\",\"team.filter.filterText\":\"{filter}\",\"team.header.other.teams\":\"Other workspaces\",\"space.empty.heading\":\"Everything in one place, everyone in the loop\",\"space.empty.description\":\"Fill this project with working files and related materials. Invite collaborators to join and add what they’re working on, too.\",\"space.empty.canvasHeading\":\"CREATIVE CLOUD CANVAS\",\"space.empty.actionsHeading\":\"ADD CONTENT TO YOUR PROJECT\",\"space.empty.createCanvas\":\"New canvas\",\"space.empty.upload\":\"Add files\",\"space.empty.createFolder\":\"New folder\",\"space.empty.createWeblink\":\"Web links\",\"space.empty.addResource\":\"Library\",\"folder.empty.heading\":\"This folder is empty.\",\"folder.empty.description\":\"Start adding files to fill it.\",\"folder.discard.heading\":\"This folder was deleted.\",\"folder.discard.description\":\"Contact your admin if you think this is a mistake or browse other content.\",\"folder.error.description\":\"There was a problem loading content from this folder.\",\"space.empty.section.createACanvas\":\"Create a canvas\",\"tooltip.opensInBrowser\":\"Opens in browser\",\"space.empty.workingFiles\":\"Keep adding to this project\",\"space.empty.canvasPopoverTitle\":\"Try Creative Cloud Canvas (Beta)\",\"space.empty.canvasPopoverContent\":\"Use canvases to lay out, visualize, and review creative work.\",\"space.error.heading\":\"Can’t load project\",\"space.error.description\":\"There was a problem loading content from this project.\",\"createTeamWizard.createTeam.sidebarHeading\":\"Create a workspace\",\"createTeamWizard.createTeam.sidebarCopy\":\"Create a workspace to keep everyone on the same page and organized.\",\"createTeamWizard.createTeam.sidebarCopy.adminconsole\":\"Set up a place where your team can collaborate and share files.\",\"createTeamWizard.createTeam.sidebarLink\":\"Learn more\",\"createTeamWizard.createTeam.contentHeading\":\"New workspace\",\"createTeamWizard.createTeam.loading\":\"Creating the “{name}” workspace\",\"createTeamWizard.inviteMembers.sidebarHeading\":\"Invite members to the “{name}” workspace\",\"createTeamWizard.inviteMembers.sidebarCopy\":\"Start typing a name or email to invite members now, or skip this step and invite them later.\",\"createTeamWizard.inviteMembers.loading\":\"Inviting members to the “{name}” workspace\",\"createTeamWizard.inviteMembers.contentHeading\":\"Invite members\",\"createTeamWizard.inviteMembers.successToast\":\"Members have been added to new workspace\",\"createTeamWizard.progress\":\"Step {current} of {total}\",\"createTeamWizard.skipStep\":\"Skip\",\"teamDialog.createTeam.label\":\"Create a workspace\",\"teamDialog.createTeam.infoBox.description\":\"The workspace you create is invite only and everyone added has edit access by default.\",\"teamDialog.editTeam.label\":\"Edit workspace\",\"teamDialog.nameSection.placeholder\":\"Give your new workspace a name\",\"teamDialog.nameSection.label\":\"Workspace name\",\"teamDialog.permissionsSection.label\":\"Who can edit this workspace\",\"teamDialog.permissionsSection.option.onlyInvited\":\"Only invited people\",\"teamDialog.descriptionSection.label\":\"Workspace description (optional)\",\"teamDialog.descriptionSection.placeholder\":\"Add a few words about your workspace\",\"teamsSidebar.noTeams\":\"No workspaces\",\"teamsSidebar.newTeamButton\":\"Create a workspace\",\"teamsSidebar.adminTour.title\":\"New! Create workspaces\",\"teamsSidebar.adminTour.content\":\"Now admins can create workspaces in Creative Cloud on the web, making it easier to organize around shared work.\",\"teamsSidebarTeam.newSpaceButton\":\"New project\",\"teamsSidebarTeam.header.newBadge\":\"NEW\",\"teamsSidebarTeam.header.otherTeams\":\"From other workspaces\",\"teamsSidebarTeam.header.teams\":\"WORKSPACES\",\"teamsSidebarTeam.header.previewLabel\":\"(Preview)\",\"teamsSidebarTeam.header.previewCopy\":\"Workspaces and projects are available in a private beta.\",\"teamsSidebarTeam.header.previewLearnMoreText\":\"Learn more\",\"teamsSidebarTeam.message.loading\":\"Loading...\",\"teamsSidebarTeam.message.noSpaces\":\"You have no workspaces or projects.\",\"teamsSidebarTeam.message.offline\":\"You’re disconnected. Reconnect to view your workspaces and projects.\",\"teamsSidebarTeam.message.error\":\"There was a problem loading your workspaces and projects.\",\"teams1up.error.description\":\"There was a problem loading your projects.\",\"teams1up.error.heading\":\"Couldn’t load projects\",\"otherTeams.emptyMessage.header\":\"Can’t view workspace page\",\"otherTeams.emptyMessage.description1\":\"You were removed or left the last project using the \",\"otherTeams.emptyMessage.description2\":\" section. Contact your admin if you think this is a mistake.\",\"spaceTour.step0.title\":\"Your projects are here\",\"spaceTour.step0.content\":\"Projects help teams collaborate and collect, organize, and share files and resources.\",\"spaceTour.step1.title\":\"Add everything you need for a project\",\"spaceTour.step1.content\":\"Bring working files, reference images, resources, and more together under one roof.\",\"spaceTour.step2.title\":\"Set (and forget) permissions\",\"spaceTour.step2.content\":\"Assign the right access to  collaborators when you invite them to save time and hassle. Send view-only packages to stakeholders for review and feedback.\",\"error.cantCreateSpace\":\"Workspace storage is full\",\"error.exceedQuota.create.detail.description1\":\"You can’t create anything new right now. Select \",\"error.exceedQuota.description2\":\" to free up storage.\",\"error.exceedQuota.add.detail.description1\":\"You can’t add anything new right now. Select \",\"error.move.generic\":\"Can’t move because something went wrong\",\"error.move.signedOut\":\"Can’t move because you were signed out\",\"error.move.permissionRevoked\":\"Can’t move because you were removed from this project\",\"error.move.deleted\":\"Can’t move because someone else deleted this item\",\"error.move.duplicate\":\"Can’t move because this already exists where you tried to move\",\"error.copy.generic\":\"Can’t copy because something went wrong\",\"error.copy.signedOut\":\"Can’t copy because you were signed out\",\"error.copy.permissionRevoked\":\"Can’t copy because you were removed from this project\",\"error.copy.deleted\":\"Can’t copy because someone else deleted this item\",\"error.copy.duplicate\":\"Can’t copy because this already exists where you tried to copy\",\"checkbox.select\":\"Select\",\"listItem.fileSize\":\"File size\",\"facepile.additionalMembers\":\"Additional members +{count}\",\"facepile.memberName\":\"{name}, member\",\"coachmark.information\":\"information\",\"toolbar.tools\":\"tools\",\"griditem.error.message\":\"Unable to fetch\",\"griditem.error.button\":\"Retry\",\"ats.move.extendedNotification\":\"You’ll receive a notification when your Move is complete.\",\"file.deleted.error.heading\":\"Can’t {operation} file\",\"file.deleted.error.description\":\"You can’t {operation} this file because it was deleted. Restore from deleted and try again or pick a different location.\",\"file.deleted.rename.error.description\":\"You can’t rename this file because it was deleted. Select Go to deleted to restore the file.\"}");

/***/ }),

/***/ "o8NH":
/***/ (function(module, exports, __webpack_require__) {

// 19.1.3.1 Object.assign(target, source)
var $export = __webpack_require__("Y7ZC");

$export($export.S + $export.F, 'Object', {
  assign: __webpack_require__("kwZ1")
});

/***/ }),

/***/ "oC2Y":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("jN/6"),
      24: __webpack_require__("1uYB")
    }
  }));
};

WrappedIcon.displayName = 'VolumeOne';
exports.default = WrappedIcon;

/***/ }),

/***/ "oINU":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return AppCompatibleFilterOptions; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return AppCompatibleFilterButton; });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("VIzJ");
/* harmony import */ var _react_react_spectrum_DropdownButton__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("6y7h");
/* harmony import */ var _react_react_spectrum_DropdownButton__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_DropdownButton__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _images_S_Filter18ForNotification_24_N_svg__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("FbeB");
/* harmony import */ var _images_S_Filter18WithNotification_24_N_svg__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("mpUr");
/* harmony import */ var _react_react_spectrum_Menu__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("kzNO");
/* harmony import */ var _react_react_spectrum_Menu__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Menu__WEBPACK_IMPORTED_MODULE_5__);
/* harmony import */ var _AppCompatibleFilterButton_css__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("NstS");
/* harmony import */ var _AppCompatibleFilterButton_css__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_AppCompatibleFilterButton_css__WEBPACK_IMPORTED_MODULE_6__);
/* harmony import */ var _react_react_spectrum_OverlayTrigger__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("uYrR");
/* harmony import */ var _react_react_spectrum_OverlayTrigger__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_OverlayTrigger__WEBPACK_IMPORTED_MODULE_7__);
/* harmony import */ var _react_react_spectrum_Tooltip__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("DUuf");
/* harmony import */ var _react_react_spectrum_Tooltip__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Tooltip__WEBPACK_IMPORTED_MODULE_8__);
/* harmony import */ var _utils_constants__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__("YVc3");










var AppCompatibleFilterOptions;
(function (AppCompatibleFilterOptions) {
    AppCompatibleFilterOptions["showEverything"] = "showEverything";
    AppCompatibleFilterOptions["showCompatible"] = "showCompatible";
})(AppCompatibleFilterOptions || (AppCompatibleFilterOptions = {}));
function AppCompatibleFilterButton({ activeFilter, hideLabel, onFilterBy }) {
    const isFilterOn = activeFilter !== AppCompatibleFilterOptions.showEverything;
    return (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_react_react_spectrum_OverlayTrigger__WEBPACK_IMPORTED_MODULE_7___default.a, { placement: "bottom", trigger: ['hover'], delayShow: _utils_constants__WEBPACK_IMPORTED_MODULE_9__[/* DEFAULT_TOOLTIP_DELAY */ "f"], boundariesElement: "container" },
        react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_react_react_spectrum_DropdownButton__WEBPACK_IMPORTED_MODULE_2___default.a, { icon: isFilterOn ? (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_images_S_Filter18WithNotification_24_N_svg__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"], { className: "spectrum-Icon" })) : (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_images_S_Filter18ForNotification_24_N_svg__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"], { className: "spectrum-Icon" })), label: hideLabel ? undefined : react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_1__[/* FormattedMessage */ "c"], { id: `header.${activeFilter}` }), quiet: true, menuClassName: _AppCompatibleFilterButton_css__WEBPACK_IMPORTED_MODULE_6___default.a.filterButton, alignRight: true }, Object.values(AppCompatibleFilterOptions).map(filter => (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_react_react_spectrum_Menu__WEBPACK_IMPORTED_MODULE_5__["MenuItem"], { key: filter, value: filter, label: react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_1__[/* FormattedMessage */ "c"], { id: `header.${filter}` }), selected: filter === activeFilter, onClick: () => onFilterBy(filter) })))),
        react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_react_react_spectrum_Tooltip__WEBPACK_IMPORTED_MODULE_8___default.a, null,
            react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_1__[/* FormattedMessage */ "c"], { id: "project1Up.section.filter" }))));
}


/***/ }),

/***/ "oJ88":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _Wait = __webpack_require__("nxZz");

var _dna = _interopRequireDefault(__webpack_require__("AnWb"));

var _filterDOMProps = _interopRequireDefault(__webpack_require__("Cv/Q"));

var _propTypes = _interopRequireDefault(__webpack_require__("17x9"));

var _react = _interopRequireWildcard(__webpack_require__("q1tI"));

var _UxpProvider = __webpack_require__("HGBq");

__webpack_require__("R5Qx");

const _excluded = ["size", "className", "indeterminate", "centered", "variant"];

function _getRequireWildcardCache(nodeInterop) {
  if (typeof WeakMap !== "function") return null;
  var cacheBabelInterop = new WeakMap();
  var cacheNodeInterop = new WeakMap();
  return (_getRequireWildcardCache = function (nodeInterop) {
    return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
  })(nodeInterop);
}

function _interopRequireWildcard(obj, nodeInterop) {
  if (!nodeInterop && obj && obj.__esModule) {
    return obj;
  }

  if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
    return {
      default: obj
    };
  }

  var cache = _getRequireWildcardCache(nodeInterop);

  if (cache && cache.has(obj)) {
    return cache.get(obj);
  }

  var newObj = {};
  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;

  for (var key in obj) {
    if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
      var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;

      if (desc && (desc.get || desc.set)) {
        Object.defineProperty(newObj, key, desc);
      } else {
        newObj[key] = obj[key];
      }
    }
  }

  newObj.default = obj;

  if (cache) {
    cache.set(obj, newObj);
  }

  return newObj;
}

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}
/* sigmoidFactory
 *
 * Generate an ease-in-out function with desired steepness.
 * Accompanying article: https://medium.com/analytic-animations/ease-in-out-the-sigmoid-factory-c5116d8abce9
 *
 * Required:
 *   k: (float != 0), sharpness of ease
 *
 * Return: f(t), t in 0..1
 */


function sigmoidFactory(k) {
  function base(t) {
    return 1 / (1 + Math.exp(-k * t)) - 0.5;
  }

  var correction = 0.5 / base(1);
  return function (t) {
    t = clamp(t, 0, 1);
    return correction * base(2 * t - 1) + 0.5;
  };
}

function getViewBoxAttribute(height, width) {
  return '0 0 ' + height.replace(/px/gi, '') + ' ' + width.replace(/px/gi, '');
}

function clamp(val, lower, upper) {
  return Math.max(Math.min(val, upper), lower);
}

function getSvgArc(radius, startAngleDegrees, finishAngleDegrees) {
  if (finishAngleDegrees < startAngleDegrees) {
    finishAngleDegrees += 360;
  }

  let arcLengthDegrees = finishAngleDegrees - startAngleDegrees;

  if (arcLengthDegrees >= 360) {
    // draw a complete circle with two arcs
    return `M ${radius * 2} ${radius} A ${radius} ${radius} 0 0 1 0 ${radius} A ${radius} ${radius} 0 0 1 ${radius * 2} ${radius}`;
  }

  let startAngle = 2 * Math.PI * (startAngleDegrees / 360);
  let finishAngle = 2 * Math.PI * (finishAngleDegrees / 360);
  let zeroAngle = -Math.PI / 2.2;
  let x0 = radius + radius * Math.cos(startAngle + zeroAngle);
  let y0 = radius + radius * Math.sin(startAngle + zeroAngle);
  let x1 = radius + radius * Math.cos(finishAngle + zeroAngle);
  let y1 = radius + radius * Math.sin(finishAngle + zeroAngle);
  return `M ${x0} ${y0} A ${radius} ${radius} 0 ${arcLengthDegrees >= 180 ? 1 : 0} 1 ${x1} ${y1}`;
}

function getArcAngles(alpha
/* 0 to 1 */
) {
  // most easing functions start and stop at zero which doesn't look good here.
  // we want the animation sections to slow down but never completely stop.
  // we are using the sigmoidFactory functions because it allows us to control the starting and stopping speeds
  // and allow allow the slope of the function to remain positive at alpha = 0 and alpha = 1
  let start = sigmoidFactory(4)(alpha) * 360;
  let finish = sigmoidFactory(5.5)((alpha + 0.4) % 1) * 360;

  if (start < 0) {
    start += 1;
  }

  if (finish < start) {
    finish += 1;
  }

  return [start, finish];
}

const sizeToDnaVariantMap = {
  L: {
    determinate: 'large',
    indeterminate: 'large',
    overBackground: 'large-over-background'
  },
  M: {
    determinate: 'medium',
    indeterminate: 'medium',
    overBackground: 'medium-over-background'
  },
  S: {
    determinate: 'small',
    indeterminate: 'small',
    overBackground: 'small-over-background'
  }
};

class UxpWait extends _react.Component {
  constructor(props) {
    super(props);

    this.tick = () => {
      this.animId = requestAnimationFrame(() => {
        let value = (this.getValue() + 1.8) % 100;
        this.setState({
          value
        });
        this.tick();
      });
    };

    this.removeAnimation = () => {
      if (this.animId) {
        cancelAnimationFrame(this.animId);
        this.animId = null;
      }
    };

    this.animId = null;
  }

  getValue() {
    if (this.props && this.props.value) {
      return this.props.value;
    }

    if (this.state && this.state.value) {
      return this.state.value;
    }

    return 0;
  }

  componentDidMount() {
    this.tick();
  }

  componentWillUnmount() {
    this.removeAnimation();
  }

  render() {
    let _this$props = this.props,
        {
      size = 'M',
      className,

      /* eslint-disable-next-line */
      indeterminate = true,
      centered = false,
      variant = indeterminate ? _Wait.INDETERMINATE : _Wait.DETERMINATE
    } = _this$props,
        otherProps = _objectWithoutProperties(_this$props, _excluded);

    let startAngle, finishAngle;
    let value = this.getValue(); // Using workaround for now as rgba is not working with stroke attribute.

    let strokeOpacity = variant === 'overBackground' ? '0.2' : '1.0';

    if (indeterminate && variant !== _Wait.DETERMINATE) {
      //  we don't know how long it will take so we
      //  do a continual looping animation
      [startAngle, finishAngle] = getArcAngles(value / 100);
    } else {
      //  we know how long it will take based on value being set so we
      //  use the value to display from 0 to full 360
      startAngle = 0;
      finishAngle = this.props.value / 100 * 360;
    }

    return /*#__PURE__*/_react.default.createElement(_UxpProvider.SpectrumContext.Consumer, null, ({
      scale,
      theme
    } = {}) => {
      const genome = _dna.default.elements[theme][scale].circleloader[sizeToDnaVariantMap[size][variant]];
      const spectrumTrackColor = genome.states.default['track-color'];
      const spectrumFillColor = genome.states.default['track-fill-color'];
      let strokeWidth = parseInt(genome.dimensions['border-size'].slice(0, -2), 10); // remove trailing px

      let width = parseInt(genome.dimensions.width.slice(0, -2), 10); // remove trailing px

      let radius = width / 2 - strokeWidth;
      let translateBy = Math.floor(strokeWidth / 2 + 1);
      let variantClass = `circleLoader--${sizeToDnaVariantMap[size]['indeterminate']}`;
      return /*#__PURE__*/_react.default.createElement("div", {
        className: `spectrum-CircleLoader ${variantClass} ${className} ${centered ? 'react-spectrum-Wait--centered' : ''}`
      }, /*#__PURE__*/_react.default.createElement("svg", _extends({
        viewBox: getViewBoxAttribute(genome.dimensions.height, genome.dimensions.width),
        className: variantClass
        /* we need variantClass on both the container and the svg elements */

      }, (0, _filterDOMProps.default)(otherProps)), /*#__PURE__*/_react.default.createElement("path", {
        d: getSvgArc(radius, 0, 360),
        stroke: spectrumTrackColor,
        strokeOpacity: strokeOpacity,
        fill: "transparent",
        strokeWidth: strokeWidth,
        transform: `translate(${translateBy}, ${translateBy})`
      }), /*#__PURE__*/_react.default.createElement("path", {
        d: getSvgArc(radius, startAngle, finishAngle),
        stroke: spectrumFillColor,
        fill: "transparent",
        strokeWidth: strokeWidth + 1,
        transform: `translate(${translateBy}, ${translateBy})`
      })));
    });
  }

}

exports.default = UxpWait;
UxpWait.propTypes = {
  /** Whether to center the Wait compnent in the parent container. */
  centered: _propTypes.default.bool,

  /** Custom CSS class to add to the Wait component */
  className: _propTypes.default.string,

  /**
   * Boolean to determine if the Wait component should endlessly spin (indeterminate) or
   * if it should be controlled manually.
   */
  indeterminate: _propTypes.default.bool,

  /** Size of the Wait component */
  size: _propTypes.default.string,

  /** Adjust the filled portion of the Wait component to a determined value */
  value: _propTypes.default.number,

  /**
  * The variant of Wait to display.
  */
  variant: _propTypes.default.string
};

/***/ }),

/***/ "oJl4":
/***/ (function(module, exports, __webpack_require__) {

exports.pbkdf2 = __webpack_require__("IG1u");
exports.pbkdf2Sync = __webpack_require__("4Hv8");

/***/ }),

/***/ "oMcV":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXPORTS
__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ baseclient_BaseClient; });

// EXTERNAL MODULE: ./node_modules/@sentry/utils/esm/dsn.js
var esm_dsn = __webpack_require__("UJ/E");

// EXTERNAL MODULE: ./node_modules/@sentry/utils/esm/logger.js
var logger = __webpack_require__("8LbN");

// EXTERNAL MODULE: ./node_modules/@sentry/utils/esm/misc.js
var misc = __webpack_require__("9/Zf");

// EXTERNAL MODULE: ./node_modules/@sentry/utils/esm/is.js
var is = __webpack_require__("9AQC");

// EXTERNAL MODULE: ./node_modules/@sentry/utils/esm/syncpromise.js
var syncpromise = __webpack_require__("HR75");

// EXTERNAL MODULE: ./node_modules/@sentry/utils/esm/envelope.js
var esm_envelope = __webpack_require__("oZ5x");

// EXTERNAL MODULE: ./node_modules/@sentry/utils/esm/time.js
var time = __webpack_require__("kdvv");

// EXTERNAL MODULE: ./node_modules/@sentry/utils/esm/normalize.js
var normalize = __webpack_require__("Fffm");

// EXTERNAL MODULE: ./node_modules/@sentry/utils/esm/string.js
var string = __webpack_require__("+924");

// EXTERNAL MODULE: ./node_modules/@sentry/utils/esm/error.js
var error = __webpack_require__("9Pyj");

// EXTERNAL MODULE: ./node_modules/@sentry/core/esm/api.js
var api = __webpack_require__("3MsT");

// EXTERNAL MODULE: ./node_modules/@sentry/utils/esm/object.js
var object = __webpack_require__("6PXS");

// CONCATENATED MODULE: ./node_modules/@sentry/core/esm/envelope.js

/** Extract sdk info from from the API metadata */

function getSdkMetadataForEnvelopeHeader(metadata) {
  if (!metadata || !metadata.sdk) {
    return;
  }

  const {
    name,
    version
  } = metadata.sdk;
  return {
    name,
    version
  };
}
/**
 * Apply SdkInfo (name, version, packages, integrations) to the corresponding event key.
 * Merge with existing data if any.
 **/


function enhanceEventWithSdkInfo(event, sdkInfo) {
  if (!sdkInfo) {
    return event;
  }

  event.sdk = event.sdk || {};
  event.sdk.name = event.sdk.name || sdkInfo.name;
  event.sdk.version = event.sdk.version || sdkInfo.version;
  event.sdk.integrations = [...(event.sdk.integrations || []), ...(sdkInfo.integrations || [])];
  event.sdk.packages = [...(event.sdk.packages || []), ...(sdkInfo.packages || [])];
  return event;
}
/** Creates an envelope from a Session */


function createSessionEnvelope(session, dsn, metadata, tunnel) {
  const sdkInfo = getSdkMetadataForEnvelopeHeader(metadata);
  const envelopeHeaders = {
    sent_at: new Date().toISOString(),
    ...(sdkInfo && {
      sdk: sdkInfo
    }),
    ...(!!tunnel && {
      dsn: Object(esm_dsn["a" /* dsnToString */])(dsn)
    })
  };
  const envelopeItem = 'aggregates' in session ? [{
    type: 'sessions'
  }, session] : [{
    type: 'session'
  }, session];
  return Object(esm_envelope["c" /* createEnvelope */])(envelopeHeaders, [envelopeItem]);
}
/**
 * Create an Envelope from an event.
 */


function createEventEnvelope(event, dsn, metadata, tunnel) {
  const sdkInfo = getSdkMetadataForEnvelopeHeader(metadata);
  const eventType = event.type || 'event';
  enhanceEventWithSdkInfo(event, metadata && metadata.sdk);
  const envelopeHeaders = createEventEnvelopeHeaders(event, sdkInfo, tunnel, dsn); // Prevent this data (which, if it exists, was used in earlier steps in the processing pipeline) from being sent to
  // sentry. (Note: Our use of this property comes and goes with whatever we might be debugging, whatever hacks we may
  // have temporarily added, etc. Even if we don't happen to be using it at some point in the future, let's not get rid
  // of this `delete`, lest we miss putting it back in the next time the property is in use.)

  delete event.sdkProcessingMetadata;
  const eventItem = [{
    type: eventType
  }, event];
  return Object(esm_envelope["c" /* createEnvelope */])(envelopeHeaders, [eventItem]);
}

function createEventEnvelopeHeaders(event, sdkInfo, tunnel, dsn) {
  const dynamicSamplingContext = event.sdkProcessingMetadata && event.sdkProcessingMetadata.dynamicSamplingContext;
  return {
    event_id: event.event_id,
    sent_at: new Date().toISOString(),
    ...(sdkInfo && {
      sdk: sdkInfo
    }),
    ...(!!tunnel && {
      dsn: Object(esm_dsn["a" /* dsnToString */])(dsn)
    }),
    ...(event.type === 'transaction' && dynamicSamplingContext && {
      trace: Object(object["c" /* dropUndefinedKeys */])({ ...dynamicSamplingContext
      })
    })
  };
}


// EXTERNAL MODULE: ./node_modules/@sentry/core/esm/integration.js
var esm_integration = __webpack_require__("METY");

// EXTERNAL MODULE: ./node_modules/@sentry/core/esm/scope.js
var esm_scope = __webpack_require__("vOz9");

// EXTERNAL MODULE: ./node_modules/@sentry/core/esm/session.js
var esm_session = __webpack_require__("v/92");

// CONCATENATED MODULE: ./node_modules/@sentry/core/esm/baseclient.js






const ALREADY_SEEN_ERROR = "Not capturing exception because it's already been captured.";
/**
 * Base implementation for all JavaScript SDK clients.
 *
 * Call the constructor with the corresponding options
 * specific to the client subclass. To access these options later, use
 * {@link Client.getOptions}.
 *
 * If a Dsn is specified in the options, it will be parsed and stored. Use
 * {@link Client.getDsn} to retrieve the Dsn at any moment. In case the Dsn is
 * invalid, the constructor will throw a {@link SentryException}. Note that
 * without a valid Dsn, the SDK will not send any events to Sentry.
 *
 * Before sending an event, it is passed through
 * {@link BaseClient._prepareEvent} to add SDK information and scope data
 * (breadcrumbs and context). To add more custom information, override this
 * method and extend the resulting prepared event.
 *
 * To issue automatically created events (e.g. via instrumentation), use
 * {@link Client.captureEvent}. It will prepare the event and pass it through
 * the callback lifecycle. To issue auto-breadcrumbs, use
 * {@link Client.addBreadcrumb}.
 *
 * @example
 * class NodeClient extends BaseClient<NodeOptions> {
 *   public constructor(options: NodeOptions) {
 *     super(options);
 *   }
 *
 *   // ...
 * }
 */

class baseclient_BaseClient {
  /** Options passed to the SDK. */

  /** The client Dsn, if specified in options. Without this Dsn, the SDK will be disabled. */

  /** Array of set up integrations. */
  __init() {
    this._integrations = {};
  }
  /** Indicates whether this client's integrations have been set up. */


  __init2() {
    this._integrationsInitialized = false;
  }
  /** Number of calls being processed */


  __init3() {
    this._numProcessing = 0;
  }
  /** Holds flushable  */


  __init4() {
    this._outcomes = {};
  }
  /**
   * Initializes this client instance.
   *
   * @param options Options for the client.
   */


  constructor(options) {
    ;

    baseclient_BaseClient.prototype.__init.call(this);

    baseclient_BaseClient.prototype.__init2.call(this);

    baseclient_BaseClient.prototype.__init3.call(this);

    baseclient_BaseClient.prototype.__init4.call(this);

    this._options = options;

    if (options.dsn) {
      this._dsn = Object(esm_dsn["b" /* makeDsn */])(options.dsn);
      const url = Object(api["a" /* getEnvelopeEndpointWithUrlEncodedAuth */])(this._dsn, options);
      this._transport = options.transport({
        recordDroppedEvent: this.recordDroppedEvent.bind(this),
        ...options.transportOptions,
        url
      });
    } else {
      (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger["c" /* logger */].warn('No DSN provided, client will not do anything.');
    }
  }
  /**
   * @inheritDoc
   */
  // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types


  captureException(exception, hint, scope) {
    // ensure we haven't captured this very object before
    if (Object(misc["d" /* checkOrSetAlreadyCaught */])(exception)) {
      (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger["c" /* logger */].log(ALREADY_SEEN_ERROR);
      return;
    }

    let eventId = hint && hint.event_id;

    this._process(this.eventFromException(exception, hint).then(event => this._captureEvent(event, hint, scope)).then(result => {
      eventId = result;
    }));

    return eventId;
  }
  /**
   * @inheritDoc
   */


  captureMessage(message, // eslint-disable-next-line deprecation/deprecation
  level, hint, scope) {
    let eventId = hint && hint.event_id;
    const promisedEvent = Object(is["j" /* isPrimitive */])(message) ? this.eventFromMessage(String(message), level, hint) : this.eventFromException(message, hint);

    this._process(promisedEvent.then(event => this._captureEvent(event, hint, scope)).then(result => {
      eventId = result;
    }));

    return eventId;
  }
  /**
   * @inheritDoc
   */


  captureEvent(event, hint, scope) {
    // ensure we haven't captured this very object before
    if (hint && hint.originalException && Object(misc["d" /* checkOrSetAlreadyCaught */])(hint.originalException)) {
      (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger["c" /* logger */].log(ALREADY_SEEN_ERROR);
      return;
    }

    let eventId = hint && hint.event_id;

    this._process(this._captureEvent(event, hint, scope).then(result => {
      eventId = result;
    }));

    return eventId;
  }
  /**
   * @inheritDoc
   */


  captureSession(session) {
    if (!this._isEnabled()) {
      (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger["c" /* logger */].warn('SDK not enabled, will not capture session.');
      return;
    }

    if (!(typeof session.release === 'string')) {
      (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger["c" /* logger */].warn('Discarded session because of missing or non-string release');
    } else {
      this.sendSession(session); // After sending, we set init false to indicate it's not the first occurrence

      Object(esm_session["c" /* updateSession */])(session, {
        init: false
      });
    }
  }
  /**
   * @inheritDoc
   */


  getDsn() {
    return this._dsn;
  }
  /**
   * @inheritDoc
   */


  getOptions() {
    return this._options;
  }
  /**
   * @inheritDoc
   */


  getTransport() {
    return this._transport;
  }
  /**
   * @inheritDoc
   */


  flush(timeout) {
    const transport = this._transport;

    if (transport) {
      return this._isClientDoneProcessing(timeout).then(clientFinished => {
        return transport.flush(timeout).then(transportFlushed => clientFinished && transportFlushed);
      });
    } else {
      return Object(syncpromise["c" /* resolvedSyncPromise */])(true);
    }
  }
  /**
   * @inheritDoc
   */


  close(timeout) {
    return this.flush(timeout).then(result => {
      this.getOptions().enabled = false;
      return result;
    });
  }
  /**
   * Sets up the integrations
   */


  setupIntegrations() {
    if (this._isEnabled() && !this._integrationsInitialized) {
      this._integrations = Object(esm_integration["b" /* setupIntegrations */])(this._options.integrations);
      this._integrationsInitialized = true;
    }
  }
  /**
   * Gets an installed integration by its `id`.
   *
   * @returns The installed integration or `undefined` if no integration with that `id` was installed.
   */


  getIntegrationById(integrationId) {
    return this._integrations[integrationId];
  }
  /**
   * @inheritDoc
   */


  getIntegration(integration) {
    try {
      return this._integrations[integration.id] || null;
    } catch (_oO) {
      (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger["c" /* logger */].warn(`Cannot retrieve integration ${integration.id} from the current Client`);
      return null;
    }
  }
  /**
   * @inheritDoc
   */


  sendEvent(event, hint = {}) {
    if (this._dsn) {
      let env = createEventEnvelope(event, this._dsn, this._options._metadata, this._options.tunnel);

      for (const attachment of hint.attachments || []) {
        env = Object(esm_envelope["a" /* addItemToEnvelope */])(env, Object(esm_envelope["b" /* createAttachmentEnvelopeItem */])(attachment, this._options.transportOptions && this._options.transportOptions.textEncoder));
      }

      this._sendEnvelope(env);
    }
  }
  /**
   * @inheritDoc
   */


  sendSession(session) {
    if (this._dsn) {
      const env = createSessionEnvelope(session, this._dsn, this._options._metadata, this._options.tunnel);

      this._sendEnvelope(env);
    }
  }
  /**
   * @inheritDoc
   */


  recordDroppedEvent(reason, category) {
    if (this._options.sendClientReports) {
      // We want to track each category (error, transaction, session) separately
      // but still keep the distinction between different type of outcomes.
      // We could use nested maps, but it's much easier to read and type this way.
      // A correct type for map-based implementation if we want to go that route
      // would be `Partial<Record<SentryRequestType, Partial<Record<Outcome, number>>>>`
      // With typescript 4.1 we could even use template literal types
      const key = `${reason}:${category}`;
      (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger["c" /* logger */].log(`Adding outcome: "${key}"`); // The following works because undefined + 1 === NaN and NaN is falsy

      this._outcomes[key] = this._outcomes[key] + 1 || 1;
    }
  }
  /** Updates existing session based on the provided event */


  _updateSessionFromEvent(session, event) {
    let crashed = false;
    let errored = false;
    const exceptions = event.exception && event.exception.values;

    if (exceptions) {
      errored = true;

      for (const ex of exceptions) {
        const mechanism = ex.mechanism;

        if (mechanism && mechanism.handled === false) {
          crashed = true;
          break;
        }
      }
    } // A session is updated and that session update is sent in only one of the two following scenarios:
    // 1. Session with non terminal status and 0 errors + an error occurred -> Will set error count to 1 and send update
    // 2. Session with non terminal status and 1 error + a crash occurred -> Will set status crashed and send update


    const sessionNonTerminal = session.status === 'ok';
    const shouldUpdateAndSend = sessionNonTerminal && session.errors === 0 || sessionNonTerminal && crashed;

    if (shouldUpdateAndSend) {
      Object(esm_session["c" /* updateSession */])(session, { ...(crashed && {
          status: 'crashed'
        }),
        errors: session.errors || Number(errored || crashed)
      });
      this.captureSession(session);
    }
  }
  /**
   * Determine if the client is finished processing. Returns a promise because it will wait `timeout` ms before saying
   * "no" (resolving to `false`) in order to give the client a chance to potentially finish first.
   *
   * @param timeout The time, in ms, after which to resolve to `false` if the client is still busy. Passing `0` (or not
   * passing anything) will make the promise wait as long as it takes for processing to finish before resolving to
   * `true`.
   * @returns A promise which will resolve to `true` if processing is already done or finishes before the timeout, and
   * `false` otherwise
   */


  _isClientDoneProcessing(timeout) {
    return new syncpromise["a" /* SyncPromise */](resolve => {
      let ticked = 0;
      const tick = 1;
      const interval = setInterval(() => {
        if (this._numProcessing == 0) {
          clearInterval(interval);
          resolve(true);
        } else {
          ticked += tick;

          if (timeout && ticked >= timeout) {
            clearInterval(interval);
            resolve(false);
          }
        }
      }, tick);
    });
  }
  /** Determines whether this SDK is enabled and a valid Dsn is present. */


  _isEnabled() {
    return this.getOptions().enabled !== false && this._dsn !== undefined;
  }
  /**
   * Adds common information to events.
   *
   * The information includes release and environment from `options`,
   * breadcrumbs and context (extra, tags and user) from the scope.
   *
   * Information that is already present in the event is never overwritten. For
   * nested objects, such as the context, keys are merged.
   *
   * @param event The original event.
   * @param hint May contain additional information about the original exception.
   * @param scope A scope containing event metadata.
   * @returns A new event with more information.
   */


  _prepareEvent(event, hint, scope) {
    const {
      normalizeDepth = 3,
      normalizeMaxBreadth = 1000
    } = this.getOptions();
    const prepared = { ...event,
      event_id: event.event_id || hint.event_id || Object(misc["f" /* uuid4 */])(),
      timestamp: event.timestamp || Object(time["b" /* dateTimestampInSeconds */])()
    };

    this._applyClientOptions(prepared);

    this._applyIntegrationsMetadata(prepared); // If we have scope given to us, use it as the base for further modifications.
    // This allows us to prevent unnecessary copying of data if `captureContext` is not provided.


    let finalScope = scope;

    if (hint.captureContext) {
      finalScope = esm_scope["a" /* Scope */].clone(finalScope).update(hint.captureContext);
    } // We prepare the result here with a resolved Event.


    let result = Object(syncpromise["c" /* resolvedSyncPromise */])(prepared); // This should be the last thing called, since we want that
    // {@link Hub.addEventProcessor} gets the finished prepared event.

    if (finalScope) {
      // Collect attachments from the hint and scope
      const attachments = [...(hint.attachments || []), ...finalScope.getAttachments()];

      if (attachments.length) {
        hint.attachments = attachments;
      } // In case we have a hub we reassign it.


      result = finalScope.applyToEvent(prepared, hint);
    }

    return result.then(evt => {
      if (typeof normalizeDepth === 'number' && normalizeDepth > 0) {
        return this._normalizeEvent(evt, normalizeDepth, normalizeMaxBreadth);
      }

      return evt;
    });
  }
  /**
   * Applies `normalize` function on necessary `Event` attributes to make them safe for serialization.
   * Normalized keys:
   * - `breadcrumbs.data`
   * - `user`
   * - `contexts`
   * - `extra`
   * @param event Event
   * @returns Normalized event
   */


  _normalizeEvent(event, depth, maxBreadth) {
    if (!event) {
      return null;
    }

    const normalized = { ...event,
      ...(event.breadcrumbs && {
        breadcrumbs: event.breadcrumbs.map(b => ({ ...b,
          ...(b.data && {
            data: Object(normalize["a" /* normalize */])(b.data, depth, maxBreadth)
          })
        }))
      }),
      ...(event.user && {
        user: Object(normalize["a" /* normalize */])(event.user, depth, maxBreadth)
      }),
      ...(event.contexts && {
        contexts: Object(normalize["a" /* normalize */])(event.contexts, depth, maxBreadth)
      }),
      ...(event.extra && {
        extra: Object(normalize["a" /* normalize */])(event.extra, depth, maxBreadth)
      })
    }; // event.contexts.trace stores information about a Transaction. Similarly,
    // event.spans[] stores information about child Spans. Given that a
    // Transaction is conceptually a Span, normalization should apply to both
    // Transactions and Spans consistently.
    // For now the decision is to skip normalization of Transactions and Spans,
    // so this block overwrites the normalized event to add back the original
    // Transaction information prior to normalization.

    if (event.contexts && event.contexts.trace && normalized.contexts) {
      normalized.contexts.trace = event.contexts.trace; // event.contexts.trace.data may contain circular/dangerous data so we need to normalize it

      if (event.contexts.trace.data) {
        normalized.contexts.trace.data = Object(normalize["a" /* normalize */])(event.contexts.trace.data, depth, maxBreadth);
      }
    } // event.spans[].data may contain circular/dangerous data so we need to normalize it


    if (event.spans) {
      normalized.spans = event.spans.map(span => {
        // We cannot use the spread operator here because `toJSON` on `span` is non-enumerable
        if (span.data) {
          span.data = Object(normalize["a" /* normalize */])(span.data, depth, maxBreadth);
        }

        return span;
      });
    }

    return normalized;
  }
  /**
   *  Enhances event using the client configuration.
   *  It takes care of all "static" values like environment, release and `dist`,
   *  as well as truncating overly long values.
   * @param event event instance to be enhanced
   */


  _applyClientOptions(event) {
    const options = this.getOptions();
    const {
      environment,
      release,
      dist,
      maxValueLength = 250
    } = options;

    if (!('environment' in event)) {
      event.environment = 'environment' in options ? environment : 'production';
    }

    if (event.release === undefined && release !== undefined) {
      event.release = release;
    }

    if (event.dist === undefined && dist !== undefined) {
      event.dist = dist;
    }

    if (event.message) {
      event.message = Object(string["d" /* truncate */])(event.message, maxValueLength);
    }

    const exception = event.exception && event.exception.values && event.exception.values[0];

    if (exception && exception.value) {
      exception.value = Object(string["d" /* truncate */])(exception.value, maxValueLength);
    }

    const request = event.request;

    if (request && request.url) {
      request.url = Object(string["d" /* truncate */])(request.url, maxValueLength);
    }
  }
  /**
   * This function adds all used integrations to the SDK info in the event.
   * @param event The event that will be filled with all integrations.
   */


  _applyIntegrationsMetadata(event) {
    const integrationsArray = Object.keys(this._integrations);

    if (integrationsArray.length > 0) {
      event.sdk = event.sdk || {};
      event.sdk.integrations = [...(event.sdk.integrations || []), ...integrationsArray];
    }
  }
  /**
   * Processes the event and logs an error in case of rejection
   * @param event
   * @param hint
   * @param scope
   */


  _captureEvent(event, hint = {}, scope) {
    return this._processEvent(event, hint, scope).then(finalEvent => {
      return finalEvent.event_id;
    }, reason => {
      if (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) {
        // If something's gone wrong, log the error as a warning. If it's just us having used a `SentryError` for
        // control flow, log just the message (no stack) as a log-level log.
        const sentryError = reason;

        if (sentryError.logLevel === 'log') {
          logger["c" /* logger */].log(sentryError.message);
        } else {
          logger["c" /* logger */].warn(sentryError);
        }
      }

      return undefined;
    });
  }
  /**
   * Processes an event (either error or message) and sends it to Sentry.
   *
   * This also adds breadcrumbs and context information to the event. However,
   * platform specific meta data (such as the User's IP address) must be added
   * by the SDK implementor.
   *
   *
   * @param event The event to send to Sentry.
   * @param hint May contain additional information about the original exception.
   * @param scope A scope containing event metadata.
   * @returns A SyncPromise that resolves with the event or rejects in case event was/will not be send.
   */


  _processEvent(event, hint, scope) {
    const {
      beforeSend,
      sampleRate
    } = this.getOptions();

    if (!this._isEnabled()) {
      return Object(syncpromise["b" /* rejectedSyncPromise */])(new error["a" /* SentryError */]('SDK not enabled, will not capture event.', 'log'));
    }

    const isTransaction = event.type === 'transaction'; // 1.0 === 100% events are sent
    // 0.0 === 0% events are sent
    // Sampling for transaction happens somewhere else

    if (!isTransaction && typeof sampleRate === 'number' && Math.random() > sampleRate) {
      this.recordDroppedEvent('sample_rate', 'error');
      return Object(syncpromise["b" /* rejectedSyncPromise */])(new error["a" /* SentryError */](`Discarding event because it's not included in the random sample (sampling rate = ${sampleRate})`, 'log'));
    }

    return this._prepareEvent(event, hint, scope).then(prepared => {
      if (prepared === null) {
        this.recordDroppedEvent('event_processor', event.type || 'error');
        throw new error["a" /* SentryError */]('An event processor returned null, will not send event.', 'log');
      }

      const isInternalException = hint.data && hint.data.__sentry__ === true;

      if (isInternalException || isTransaction || !beforeSend) {
        return prepared;
      }

      const beforeSendResult = beforeSend(prepared, hint);
      return _ensureBeforeSendRv(beforeSendResult);
    }).then(processedEvent => {
      if (processedEvent === null) {
        this.recordDroppedEvent('before_send', event.type || 'error');
        throw new error["a" /* SentryError */]('`beforeSend` returned `null`, will not send event.', 'log');
      }

      const session = scope && scope.getSession();

      if (!isTransaction && session) {
        this._updateSessionFromEvent(session, processedEvent);
      } // None of the Sentry built event processor will update transaction name,
      // so if the transaction name has been changed by an event processor, we know
      // it has to come from custom event processor added by a user


      const transactionInfo = processedEvent.transaction_info;

      if (isTransaction && transactionInfo && processedEvent.transaction !== event.transaction) {
        const source = 'custom';
        processedEvent.transaction_info = { ...transactionInfo,
          source,
          changes: [...transactionInfo.changes, {
            source,
            // use the same timestamp as the processed event.
            timestamp: processedEvent.timestamp,
            propagations: transactionInfo.propagations
          }]
        };
      }

      this.sendEvent(processedEvent, hint);
      return processedEvent;
    }).then(null, reason => {
      if (reason instanceof error["a" /* SentryError */]) {
        throw reason;
      }

      this.captureException(reason, {
        data: {
          __sentry__: true
        },
        originalException: reason
      });
      throw new error["a" /* SentryError */](`Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event.\nReason: ${reason}`);
    });
  }
  /**
   * Occupies the client with processing and event
   */


  _process(promise) {
    this._numProcessing += 1;
    void promise.then(value => {
      this._numProcessing -= 1;
      return value;
    }, reason => {
      this._numProcessing -= 1;
      return reason;
    });
  }
  /**
   * @inheritdoc
   */


  _sendEnvelope(envelope) {
    if (this._transport && this._dsn) {
      this._transport.send(envelope).then(null, reason => {
        (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger["c" /* logger */].error('Error while sending event:', reason);
      });
    } else {
      (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger["c" /* logger */].error('Transport disabled');
    }
  }
  /**
   * Clears outcomes on this client and returns them.
   */


  _clearOutcomes() {
    const outcomes = this._outcomes;
    this._outcomes = {};
    return Object.keys(outcomes).map(key => {
      const [reason, category] = key.split(':');
      return {
        reason,
        category,
        quantity: outcomes[key]
      };
    });
  }
  /**
   * @inheritDoc
   */
  // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types


}
/**
 * Verifies that return value of configured `beforeSend` is of expected type.
 */


function _ensureBeforeSendRv(rv) {
  const nullErr = '`beforeSend` method has to return `null` or a valid event.';

  if (Object(is["n" /* isThenable */])(rv)) {
    return rv.then(event => {
      if (!(Object(is["i" /* isPlainObject */])(event) || event === null)) {
        throw new error["a" /* SentryError */](nullErr);
      }

      return event;
    }, e => {
      throw new error["a" /* SentryError */](`beforeSend rejected with ${e}`);
    });
  } else if (!(Object(is["i" /* isPlainObject */])(rv) || rv === null)) {
    throw new error["a" /* SentryError */](nullErr);
  }

  return rv;
}



/***/ }),

/***/ "oOsv":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


exports["default"] = function () {
  "use strict";
  /*
   * Generated by PEG.js 0.9.0.
   *
   * http://pegjs.org/
   */

  function peg$subclass(child, parent) {
    function ctor() {
      this.constructor = child;
    }

    ctor.prototype = parent.prototype;
    child.prototype = new ctor();
  }

  function peg$SyntaxError(message, expected, found, location) {
    this.message = message;
    this.expected = expected;
    this.found = found;
    this.location = location;
    this.name = "SyntaxError";

    if (typeof Error.captureStackTrace === "function") {
      Error.captureStackTrace(this, peg$SyntaxError);
    }
  }

  peg$subclass(peg$SyntaxError, Error);

  function peg$parse(input) {
    var options = arguments.length > 1 ? arguments[1] : {},
        parser = this,
        peg$FAILED = {},
        peg$startRuleFunctions = {
      start: peg$parsestart
    },
        peg$startRuleFunction = peg$parsestart,
        peg$c0 = function (elements) {
      return {
        type: 'messageFormatPattern',
        elements: elements,
        location: location()
      };
    },
        peg$c1 = function (text) {
      var string = '',
          i,
          j,
          outerLen,
          inner,
          innerLen;

      for (i = 0, outerLen = text.length; i < outerLen; i += 1) {
        inner = text[i];

        for (j = 0, innerLen = inner.length; j < innerLen; j += 1) {
          string += inner[j];
        }
      }

      return string;
    },
        peg$c2 = function (messageText) {
      return {
        type: 'messageTextElement',
        value: messageText,
        location: location()
      };
    },
        peg$c3 = /^[^ \t\n\r,.+={}#]/,
        peg$c4 = {
      type: "class",
      value: "[^ \\t\\n\\r,.+={}#]",
      description: "[^ \\t\\n\\r,.+={}#]"
    },
        peg$c5 = "{",
        peg$c6 = {
      type: "literal",
      value: "{",
      description: "\"{\""
    },
        peg$c7 = ",",
        peg$c8 = {
      type: "literal",
      value: ",",
      description: "\",\""
    },
        peg$c9 = "}",
        peg$c10 = {
      type: "literal",
      value: "}",
      description: "\"}\""
    },
        peg$c11 = function (id, format) {
      return {
        type: 'argumentElement',
        id: id,
        format: format && format[2],
        location: location()
      };
    },
        peg$c12 = "number",
        peg$c13 = {
      type: "literal",
      value: "number",
      description: "\"number\""
    },
        peg$c14 = "date",
        peg$c15 = {
      type: "literal",
      value: "date",
      description: "\"date\""
    },
        peg$c16 = "time",
        peg$c17 = {
      type: "literal",
      value: "time",
      description: "\"time\""
    },
        peg$c18 = function (type, style) {
      return {
        type: type + 'Format',
        style: style && style[2],
        location: location()
      };
    },
        peg$c19 = "plural",
        peg$c20 = {
      type: "literal",
      value: "plural",
      description: "\"plural\""
    },
        peg$c21 = function (pluralStyle) {
      return {
        type: pluralStyle.type,
        ordinal: false,
        offset: pluralStyle.offset || 0,
        options: pluralStyle.options,
        location: location()
      };
    },
        peg$c22 = "selectordinal",
        peg$c23 = {
      type: "literal",
      value: "selectordinal",
      description: "\"selectordinal\""
    },
        peg$c24 = function (pluralStyle) {
      return {
        type: pluralStyle.type,
        ordinal: true,
        offset: pluralStyle.offset || 0,
        options: pluralStyle.options,
        location: location()
      };
    },
        peg$c25 = "select",
        peg$c26 = {
      type: "literal",
      value: "select",
      description: "\"select\""
    },
        peg$c27 = function (options) {
      return {
        type: 'selectFormat',
        options: options,
        location: location()
      };
    },
        peg$c28 = "=",
        peg$c29 = {
      type: "literal",
      value: "=",
      description: "\"=\""
    },
        peg$c30 = function (selector, pattern) {
      return {
        type: 'optionalFormatPattern',
        selector: selector,
        value: pattern,
        location: location()
      };
    },
        peg$c31 = "offset:",
        peg$c32 = {
      type: "literal",
      value: "offset:",
      description: "\"offset:\""
    },
        peg$c33 = function (number) {
      return number;
    },
        peg$c34 = function (offset, options) {
      return {
        type: 'pluralFormat',
        offset: offset,
        options: options,
        location: location()
      };
    },
        peg$c35 = {
      type: "other",
      description: "whitespace"
    },
        peg$c36 = /^[ \t\n\r]/,
        peg$c37 = {
      type: "class",
      value: "[ \\t\\n\\r]",
      description: "[ \\t\\n\\r]"
    },
        peg$c38 = {
      type: "other",
      description: "optionalWhitespace"
    },
        peg$c39 = /^[0-9]/,
        peg$c40 = {
      type: "class",
      value: "[0-9]",
      description: "[0-9]"
    },
        peg$c41 = /^[0-9a-f]/i,
        peg$c42 = {
      type: "class",
      value: "[0-9a-f]i",
      description: "[0-9a-f]i"
    },
        peg$c43 = "0",
        peg$c44 = {
      type: "literal",
      value: "0",
      description: "\"0\""
    },
        peg$c45 = /^[1-9]/,
        peg$c46 = {
      type: "class",
      value: "[1-9]",
      description: "[1-9]"
    },
        peg$c47 = function (digits) {
      return parseInt(digits, 10);
    },
        peg$c48 = /^[^{}\\\0-\x1F \t\n\r]/,
        peg$c49 = {
      type: "class",
      value: "[^{}\\\\\\0-\\x1F\\x7f \\t\\n\\r]",
      description: "[^{}\\\\\\0-\\x1F\\x7f \\t\\n\\r]"
    },
        peg$c50 = "\\\\",
        peg$c51 = {
      type: "literal",
      value: "\\\\",
      description: "\"\\\\\\\\\""
    },
        peg$c52 = function () {
      return '\\';
    },
        peg$c53 = "\\#",
        peg$c54 = {
      type: "literal",
      value: "\\#",
      description: "\"\\\\#\""
    },
        peg$c55 = function () {
      return '\\#';
    },
        peg$c56 = "\\{",
        peg$c57 = {
      type: "literal",
      value: "\\{",
      description: "\"\\\\{\""
    },
        peg$c58 = function () {
      return '\u007B';
    },
        peg$c59 = "\\}",
        peg$c60 = {
      type: "literal",
      value: "\\}",
      description: "\"\\\\}\""
    },
        peg$c61 = function () {
      return '\u007D';
    },
        peg$c62 = "\\u",
        peg$c63 = {
      type: "literal",
      value: "\\u",
      description: "\"\\\\u\""
    },
        peg$c64 = function (digits) {
      return String.fromCharCode(parseInt(digits, 16));
    },
        peg$c65 = function (chars) {
      return chars.join('');
    },
        peg$currPos = 0,
        peg$savedPos = 0,
        peg$posDetailsCache = [{
      line: 1,
      column: 1,
      seenCR: false
    }],
        peg$maxFailPos = 0,
        peg$maxFailExpected = [],
        peg$silentFails = 0,
        peg$result;

    if ("startRule" in options) {
      if (!(options.startRule in peg$startRuleFunctions)) {
        throw new Error("Can't start parsing from rule \"" + options.startRule + "\".");
      }

      peg$startRuleFunction = peg$startRuleFunctions[options.startRule];
    }

    function text() {
      return input.substring(peg$savedPos, peg$currPos);
    }

    function location() {
      return peg$computeLocation(peg$savedPos, peg$currPos);
    }

    function expected(description) {
      throw peg$buildException(null, [{
        type: "other",
        description: description
      }], input.substring(peg$savedPos, peg$currPos), peg$computeLocation(peg$savedPos, peg$currPos));
    }

    function error(message) {
      throw peg$buildException(message, null, input.substring(peg$savedPos, peg$currPos), peg$computeLocation(peg$savedPos, peg$currPos));
    }

    function peg$computePosDetails(pos) {
      var details = peg$posDetailsCache[pos],
          p,
          ch;

      if (details) {
        return details;
      } else {
        p = pos - 1;

        while (!peg$posDetailsCache[p]) {
          p--;
        }

        details = peg$posDetailsCache[p];
        details = {
          line: details.line,
          column: details.column,
          seenCR: details.seenCR
        };

        while (p < pos) {
          ch = input.charAt(p);

          if (ch === "\n") {
            if (!details.seenCR) {
              details.line++;
            }

            details.column = 1;
            details.seenCR = false;
          } else if (ch === "\r" || ch === "\u2028" || ch === "\u2029") {
            details.line++;
            details.column = 1;
            details.seenCR = true;
          } else {
            details.column++;
            details.seenCR = false;
          }

          p++;
        }

        peg$posDetailsCache[pos] = details;
        return details;
      }
    }

    function peg$computeLocation(startPos, endPos) {
      var startPosDetails = peg$computePosDetails(startPos),
          endPosDetails = peg$computePosDetails(endPos);
      return {
        start: {
          offset: startPos,
          line: startPosDetails.line,
          column: startPosDetails.column
        },
        end: {
          offset: endPos,
          line: endPosDetails.line,
          column: endPosDetails.column
        }
      };
    }

    function peg$fail(expected) {
      if (peg$currPos < peg$maxFailPos) {
        return;
      }

      if (peg$currPos > peg$maxFailPos) {
        peg$maxFailPos = peg$currPos;
        peg$maxFailExpected = [];
      }

      peg$maxFailExpected.push(expected);
    }

    function peg$buildException(message, expected, found, location) {
      function cleanupExpected(expected) {
        var i = 1;
        expected.sort(function (a, b) {
          if (a.description < b.description) {
            return -1;
          } else if (a.description > b.description) {
            return 1;
          } else {
            return 0;
          }
        });

        while (i < expected.length) {
          if (expected[i - 1] === expected[i]) {
            expected.splice(i, 1);
          } else {
            i++;
          }
        }
      }

      function buildMessage(expected, found) {
        function stringEscape(s) {
          function hex(ch) {
            return ch.charCodeAt(0).toString(16).toUpperCase();
          }

          return s.replace(/\\/g, '\\\\').replace(/"/g, '\\"').replace(/\x08/g, '\\b').replace(/\t/g, '\\t').replace(/\n/g, '\\n').replace(/\f/g, '\\f').replace(/\r/g, '\\r').replace(/[\x00-\x07\x0B\x0E\x0F]/g, function (ch) {
            return '\\x0' + hex(ch);
          }).replace(/[\x10-\x1F\x80-\xFF]/g, function (ch) {
            return '\\x' + hex(ch);
          }).replace(/[\u0100-\u0FFF]/g, function (ch) {
            return '\\u0' + hex(ch);
          }).replace(/[\u1000-\uFFFF]/g, function (ch) {
            return '\\u' + hex(ch);
          });
        }

        var expectedDescs = new Array(expected.length),
            expectedDesc,
            foundDesc,
            i;

        for (i = 0; i < expected.length; i++) {
          expectedDescs[i] = expected[i].description;
        }

        expectedDesc = expected.length > 1 ? expectedDescs.slice(0, -1).join(", ") + " or " + expectedDescs[expected.length - 1] : expectedDescs[0];
        foundDesc = found ? "\"" + stringEscape(found) + "\"" : "end of input";
        return "Expected " + expectedDesc + " but " + foundDesc + " found.";
      }

      if (expected !== null) {
        cleanupExpected(expected);
      }

      return new peg$SyntaxError(message !== null ? message : buildMessage(expected, found), expected, found, location);
    }

    function peg$parsestart() {
      var s0;
      s0 = peg$parsemessageFormatPattern();
      return s0;
    }

    function peg$parsemessageFormatPattern() {
      var s0, s1, s2;
      s0 = peg$currPos;
      s1 = [];
      s2 = peg$parsemessageFormatElement();

      while (s2 !== peg$FAILED) {
        s1.push(s2);
        s2 = peg$parsemessageFormatElement();
      }

      if (s1 !== peg$FAILED) {
        peg$savedPos = s0;
        s1 = peg$c0(s1);
      }

      s0 = s1;
      return s0;
    }

    function peg$parsemessageFormatElement() {
      var s0;
      s0 = peg$parsemessageTextElement();

      if (s0 === peg$FAILED) {
        s0 = peg$parseargumentElement();
      }

      return s0;
    }

    function peg$parsemessageText() {
      var s0, s1, s2, s3, s4, s5;
      s0 = peg$currPos;
      s1 = [];
      s2 = peg$currPos;
      s3 = peg$parse_();

      if (s3 !== peg$FAILED) {
        s4 = peg$parsechars();

        if (s4 !== peg$FAILED) {
          s5 = peg$parse_();

          if (s5 !== peg$FAILED) {
            s3 = [s3, s4, s5];
            s2 = s3;
          } else {
            peg$currPos = s2;
            s2 = peg$FAILED;
          }
        } else {
          peg$currPos = s2;
          s2 = peg$FAILED;
        }
      } else {
        peg$currPos = s2;
        s2 = peg$FAILED;
      }

      if (s2 !== peg$FAILED) {
        while (s2 !== peg$FAILED) {
          s1.push(s2);
          s2 = peg$currPos;
          s3 = peg$parse_();

          if (s3 !== peg$FAILED) {
            s4 = peg$parsechars();

            if (s4 !== peg$FAILED) {
              s5 = peg$parse_();

              if (s5 !== peg$FAILED) {
                s3 = [s3, s4, s5];
                s2 = s3;
              } else {
                peg$currPos = s2;
                s2 = peg$FAILED;
              }
            } else {
              peg$currPos = s2;
              s2 = peg$FAILED;
            }
          } else {
            peg$currPos = s2;
            s2 = peg$FAILED;
          }
        }
      } else {
        s1 = peg$FAILED;
      }

      if (s1 !== peg$FAILED) {
        peg$savedPos = s0;
        s1 = peg$c1(s1);
      }

      s0 = s1;

      if (s0 === peg$FAILED) {
        s0 = peg$currPos;
        s1 = peg$parsews();

        if (s1 !== peg$FAILED) {
          s0 = input.substring(s0, peg$currPos);
        } else {
          s0 = s1;
        }
      }

      return s0;
    }

    function peg$parsemessageTextElement() {
      var s0, s1;
      s0 = peg$currPos;
      s1 = peg$parsemessageText();

      if (s1 !== peg$FAILED) {
        peg$savedPos = s0;
        s1 = peg$c2(s1);
      }

      s0 = s1;
      return s0;
    }

    function peg$parseargument() {
      var s0, s1, s2;
      s0 = peg$parsenumber();

      if (s0 === peg$FAILED) {
        s0 = peg$currPos;
        s1 = [];

        if (peg$c3.test(input.charAt(peg$currPos))) {
          s2 = input.charAt(peg$currPos);
          peg$currPos++;
        } else {
          s2 = peg$FAILED;

          if (peg$silentFails === 0) {
            peg$fail(peg$c4);
          }
        }

        if (s2 !== peg$FAILED) {
          while (s2 !== peg$FAILED) {
            s1.push(s2);

            if (peg$c3.test(input.charAt(peg$currPos))) {
              s2 = input.charAt(peg$currPos);
              peg$currPos++;
            } else {
              s2 = peg$FAILED;

              if (peg$silentFails === 0) {
                peg$fail(peg$c4);
              }
            }
          }
        } else {
          s1 = peg$FAILED;
        }

        if (s1 !== peg$FAILED) {
          s0 = input.substring(s0, peg$currPos);
        } else {
          s0 = s1;
        }
      }

      return s0;
    }

    function peg$parseargumentElement() {
      var s0, s1, s2, s3, s4, s5, s6, s7, s8;
      s0 = peg$currPos;

      if (input.charCodeAt(peg$currPos) === 123) {
        s1 = peg$c5;
        peg$currPos++;
      } else {
        s1 = peg$FAILED;

        if (peg$silentFails === 0) {
          peg$fail(peg$c6);
        }
      }

      if (s1 !== peg$FAILED) {
        s2 = peg$parse_();

        if (s2 !== peg$FAILED) {
          s3 = peg$parseargument();

          if (s3 !== peg$FAILED) {
            s4 = peg$parse_();

            if (s4 !== peg$FAILED) {
              s5 = peg$currPos;

              if (input.charCodeAt(peg$currPos) === 44) {
                s6 = peg$c7;
                peg$currPos++;
              } else {
                s6 = peg$FAILED;

                if (peg$silentFails === 0) {
                  peg$fail(peg$c8);
                }
              }

              if (s6 !== peg$FAILED) {
                s7 = peg$parse_();

                if (s7 !== peg$FAILED) {
                  s8 = peg$parseelementFormat();

                  if (s8 !== peg$FAILED) {
                    s6 = [s6, s7, s8];
                    s5 = s6;
                  } else {
                    peg$currPos = s5;
                    s5 = peg$FAILED;
                  }
                } else {
                  peg$currPos = s5;
                  s5 = peg$FAILED;
                }
              } else {
                peg$currPos = s5;
                s5 = peg$FAILED;
              }

              if (s5 === peg$FAILED) {
                s5 = null;
              }

              if (s5 !== peg$FAILED) {
                s6 = peg$parse_();

                if (s6 !== peg$FAILED) {
                  if (input.charCodeAt(peg$currPos) === 125) {
                    s7 = peg$c9;
                    peg$currPos++;
                  } else {
                    s7 = peg$FAILED;

                    if (peg$silentFails === 0) {
                      peg$fail(peg$c10);
                    }
                  }

                  if (s7 !== peg$FAILED) {
                    peg$savedPos = s0;
                    s1 = peg$c11(s3, s5);
                    s0 = s1;
                  } else {
                    peg$currPos = s0;
                    s0 = peg$FAILED;
                  }
                } else {
                  peg$currPos = s0;
                  s0 = peg$FAILED;
                }
              } else {
                peg$currPos = s0;
                s0 = peg$FAILED;
              }
            } else {
              peg$currPos = s0;
              s0 = peg$FAILED;
            }
          } else {
            peg$currPos = s0;
            s0 = peg$FAILED;
          }
        } else {
          peg$currPos = s0;
          s0 = peg$FAILED;
        }
      } else {
        peg$currPos = s0;
        s0 = peg$FAILED;
      }

      return s0;
    }

    function peg$parseelementFormat() {
      var s0;
      s0 = peg$parsesimpleFormat();

      if (s0 === peg$FAILED) {
        s0 = peg$parsepluralFormat();

        if (s0 === peg$FAILED) {
          s0 = peg$parseselectOrdinalFormat();

          if (s0 === peg$FAILED) {
            s0 = peg$parseselectFormat();
          }
        }
      }

      return s0;
    }

    function peg$parsesimpleFormat() {
      var s0, s1, s2, s3, s4, s5, s6;
      s0 = peg$currPos;

      if (input.substr(peg$currPos, 6) === peg$c12) {
        s1 = peg$c12;
        peg$currPos += 6;
      } else {
        s1 = peg$FAILED;

        if (peg$silentFails === 0) {
          peg$fail(peg$c13);
        }
      }

      if (s1 === peg$FAILED) {
        if (input.substr(peg$currPos, 4) === peg$c14) {
          s1 = peg$c14;
          peg$currPos += 4;
        } else {
          s1 = peg$FAILED;

          if (peg$silentFails === 0) {
            peg$fail(peg$c15);
          }
        }

        if (s1 === peg$FAILED) {
          if (input.substr(peg$currPos, 4) === peg$c16) {
            s1 = peg$c16;
            peg$currPos += 4;
          } else {
            s1 = peg$FAILED;

            if (peg$silentFails === 0) {
              peg$fail(peg$c17);
            }
          }
        }
      }

      if (s1 !== peg$FAILED) {
        s2 = peg$parse_();

        if (s2 !== peg$FAILED) {
          s3 = peg$currPos;

          if (input.charCodeAt(peg$currPos) === 44) {
            s4 = peg$c7;
            peg$currPos++;
          } else {
            s4 = peg$FAILED;

            if (peg$silentFails === 0) {
              peg$fail(peg$c8);
            }
          }

          if (s4 !== peg$FAILED) {
            s5 = peg$parse_();

            if (s5 !== peg$FAILED) {
              s6 = peg$parsechars();

              if (s6 !== peg$FAILED) {
                s4 = [s4, s5, s6];
                s3 = s4;
              } else {
                peg$currPos = s3;
                s3 = peg$FAILED;
              }
            } else {
              peg$currPos = s3;
              s3 = peg$FAILED;
            }
          } else {
            peg$currPos = s3;
            s3 = peg$FAILED;
          }

          if (s3 === peg$FAILED) {
            s3 = null;
          }

          if (s3 !== peg$FAILED) {
            peg$savedPos = s0;
            s1 = peg$c18(s1, s3);
            s0 = s1;
          } else {
            peg$currPos = s0;
            s0 = peg$FAILED;
          }
        } else {
          peg$currPos = s0;
          s0 = peg$FAILED;
        }
      } else {
        peg$currPos = s0;
        s0 = peg$FAILED;
      }

      return s0;
    }

    function peg$parsepluralFormat() {
      var s0, s1, s2, s3, s4, s5;
      s0 = peg$currPos;

      if (input.substr(peg$currPos, 6) === peg$c19) {
        s1 = peg$c19;
        peg$currPos += 6;
      } else {
        s1 = peg$FAILED;

        if (peg$silentFails === 0) {
          peg$fail(peg$c20);
        }
      }

      if (s1 !== peg$FAILED) {
        s2 = peg$parse_();

        if (s2 !== peg$FAILED) {
          if (input.charCodeAt(peg$currPos) === 44) {
            s3 = peg$c7;
            peg$currPos++;
          } else {
            s3 = peg$FAILED;

            if (peg$silentFails === 0) {
              peg$fail(peg$c8);
            }
          }

          if (s3 !== peg$FAILED) {
            s4 = peg$parse_();

            if (s4 !== peg$FAILED) {
              s5 = peg$parsepluralStyle();

              if (s5 !== peg$FAILED) {
                peg$savedPos = s0;
                s1 = peg$c21(s5);
                s0 = s1;
              } else {
                peg$currPos = s0;
                s0 = peg$FAILED;
              }
            } else {
              peg$currPos = s0;
              s0 = peg$FAILED;
            }
          } else {
            peg$currPos = s0;
            s0 = peg$FAILED;
          }
        } else {
          peg$currPos = s0;
          s0 = peg$FAILED;
        }
      } else {
        peg$currPos = s0;
        s0 = peg$FAILED;
      }

      return s0;
    }

    function peg$parseselectOrdinalFormat() {
      var s0, s1, s2, s3, s4, s5;
      s0 = peg$currPos;

      if (input.substr(peg$currPos, 13) === peg$c22) {
        s1 = peg$c22;
        peg$currPos += 13;
      } else {
        s1 = peg$FAILED;

        if (peg$silentFails === 0) {
          peg$fail(peg$c23);
        }
      }

      if (s1 !== peg$FAILED) {
        s2 = peg$parse_();

        if (s2 !== peg$FAILED) {
          if (input.charCodeAt(peg$currPos) === 44) {
            s3 = peg$c7;
            peg$currPos++;
          } else {
            s3 = peg$FAILED;

            if (peg$silentFails === 0) {
              peg$fail(peg$c8);
            }
          }

          if (s3 !== peg$FAILED) {
            s4 = peg$parse_();

            if (s4 !== peg$FAILED) {
              s5 = peg$parsepluralStyle();

              if (s5 !== peg$FAILED) {
                peg$savedPos = s0;
                s1 = peg$c24(s5);
                s0 = s1;
              } else {
                peg$currPos = s0;
                s0 = peg$FAILED;
              }
            } else {
              peg$currPos = s0;
              s0 = peg$FAILED;
            }
          } else {
            peg$currPos = s0;
            s0 = peg$FAILED;
          }
        } else {
          peg$currPos = s0;
          s0 = peg$FAILED;
        }
      } else {
        peg$currPos = s0;
        s0 = peg$FAILED;
      }

      return s0;
    }

    function peg$parseselectFormat() {
      var s0, s1, s2, s3, s4, s5, s6;
      s0 = peg$currPos;

      if (input.substr(peg$currPos, 6) === peg$c25) {
        s1 = peg$c25;
        peg$currPos += 6;
      } else {
        s1 = peg$FAILED;

        if (peg$silentFails === 0) {
          peg$fail(peg$c26);
        }
      }

      if (s1 !== peg$FAILED) {
        s2 = peg$parse_();

        if (s2 !== peg$FAILED) {
          if (input.charCodeAt(peg$currPos) === 44) {
            s3 = peg$c7;
            peg$currPos++;
          } else {
            s3 = peg$FAILED;

            if (peg$silentFails === 0) {
              peg$fail(peg$c8);
            }
          }

          if (s3 !== peg$FAILED) {
            s4 = peg$parse_();

            if (s4 !== peg$FAILED) {
              s5 = [];
              s6 = peg$parseoptionalFormatPattern();

              if (s6 !== peg$FAILED) {
                while (s6 !== peg$FAILED) {
                  s5.push(s6);
                  s6 = peg$parseoptionalFormatPattern();
                }
              } else {
                s5 = peg$FAILED;
              }

              if (s5 !== peg$FAILED) {
                peg$savedPos = s0;
                s1 = peg$c27(s5);
                s0 = s1;
              } else {
                peg$currPos = s0;
                s0 = peg$FAILED;
              }
            } else {
              peg$currPos = s0;
              s0 = peg$FAILED;
            }
          } else {
            peg$currPos = s0;
            s0 = peg$FAILED;
          }
        } else {
          peg$currPos = s0;
          s0 = peg$FAILED;
        }
      } else {
        peg$currPos = s0;
        s0 = peg$FAILED;
      }

      return s0;
    }

    function peg$parseselector() {
      var s0, s1, s2, s3;
      s0 = peg$currPos;
      s1 = peg$currPos;

      if (input.charCodeAt(peg$currPos) === 61) {
        s2 = peg$c28;
        peg$currPos++;
      } else {
        s2 = peg$FAILED;

        if (peg$silentFails === 0) {
          peg$fail(peg$c29);
        }
      }

      if (s2 !== peg$FAILED) {
        s3 = peg$parsenumber();

        if (s3 !== peg$FAILED) {
          s2 = [s2, s3];
          s1 = s2;
        } else {
          peg$currPos = s1;
          s1 = peg$FAILED;
        }
      } else {
        peg$currPos = s1;
        s1 = peg$FAILED;
      }

      if (s1 !== peg$FAILED) {
        s0 = input.substring(s0, peg$currPos);
      } else {
        s0 = s1;
      }

      if (s0 === peg$FAILED) {
        s0 = peg$parsechars();
      }

      return s0;
    }

    function peg$parseoptionalFormatPattern() {
      var s0, s1, s2, s3, s4, s5, s6, s7, s8;
      s0 = peg$currPos;
      s1 = peg$parse_();

      if (s1 !== peg$FAILED) {
        s2 = peg$parseselector();

        if (s2 !== peg$FAILED) {
          s3 = peg$parse_();

          if (s3 !== peg$FAILED) {
            if (input.charCodeAt(peg$currPos) === 123) {
              s4 = peg$c5;
              peg$currPos++;
            } else {
              s4 = peg$FAILED;

              if (peg$silentFails === 0) {
                peg$fail(peg$c6);
              }
            }

            if (s4 !== peg$FAILED) {
              s5 = peg$parse_();

              if (s5 !== peg$FAILED) {
                s6 = peg$parsemessageFormatPattern();

                if (s6 !== peg$FAILED) {
                  s7 = peg$parse_();

                  if (s7 !== peg$FAILED) {
                    if (input.charCodeAt(peg$currPos) === 125) {
                      s8 = peg$c9;
                      peg$currPos++;
                    } else {
                      s8 = peg$FAILED;

                      if (peg$silentFails === 0) {
                        peg$fail(peg$c10);
                      }
                    }

                    if (s8 !== peg$FAILED) {
                      peg$savedPos = s0;
                      s1 = peg$c30(s2, s6);
                      s0 = s1;
                    } else {
                      peg$currPos = s0;
                      s0 = peg$FAILED;
                    }
                  } else {
                    peg$currPos = s0;
                    s0 = peg$FAILED;
                  }
                } else {
                  peg$currPos = s0;
                  s0 = peg$FAILED;
                }
              } else {
                peg$currPos = s0;
                s0 = peg$FAILED;
              }
            } else {
              peg$currPos = s0;
              s0 = peg$FAILED;
            }
          } else {
            peg$currPos = s0;
            s0 = peg$FAILED;
          }
        } else {
          peg$currPos = s0;
          s0 = peg$FAILED;
        }
      } else {
        peg$currPos = s0;
        s0 = peg$FAILED;
      }

      return s0;
    }

    function peg$parseoffset() {
      var s0, s1, s2, s3;
      s0 = peg$currPos;

      if (input.substr(peg$currPos, 7) === peg$c31) {
        s1 = peg$c31;
        peg$currPos += 7;
      } else {
        s1 = peg$FAILED;

        if (peg$silentFails === 0) {
          peg$fail(peg$c32);
        }
      }

      if (s1 !== peg$FAILED) {
        s2 = peg$parse_();

        if (s2 !== peg$FAILED) {
          s3 = peg$parsenumber();

          if (s3 !== peg$FAILED) {
            peg$savedPos = s0;
            s1 = peg$c33(s3);
            s0 = s1;
          } else {
            peg$currPos = s0;
            s0 = peg$FAILED;
          }
        } else {
          peg$currPos = s0;
          s0 = peg$FAILED;
        }
      } else {
        peg$currPos = s0;
        s0 = peg$FAILED;
      }

      return s0;
    }

    function peg$parsepluralStyle() {
      var s0, s1, s2, s3, s4;
      s0 = peg$currPos;
      s1 = peg$parseoffset();

      if (s1 === peg$FAILED) {
        s1 = null;
      }

      if (s1 !== peg$FAILED) {
        s2 = peg$parse_();

        if (s2 !== peg$FAILED) {
          s3 = [];
          s4 = peg$parseoptionalFormatPattern();

          if (s4 !== peg$FAILED) {
            while (s4 !== peg$FAILED) {
              s3.push(s4);
              s4 = peg$parseoptionalFormatPattern();
            }
          } else {
            s3 = peg$FAILED;
          }

          if (s3 !== peg$FAILED) {
            peg$savedPos = s0;
            s1 = peg$c34(s1, s3);
            s0 = s1;
          } else {
            peg$currPos = s0;
            s0 = peg$FAILED;
          }
        } else {
          peg$currPos = s0;
          s0 = peg$FAILED;
        }
      } else {
        peg$currPos = s0;
        s0 = peg$FAILED;
      }

      return s0;
    }

    function peg$parsews() {
      var s0, s1;
      peg$silentFails++;
      s0 = [];

      if (peg$c36.test(input.charAt(peg$currPos))) {
        s1 = input.charAt(peg$currPos);
        peg$currPos++;
      } else {
        s1 = peg$FAILED;

        if (peg$silentFails === 0) {
          peg$fail(peg$c37);
        }
      }

      if (s1 !== peg$FAILED) {
        while (s1 !== peg$FAILED) {
          s0.push(s1);

          if (peg$c36.test(input.charAt(peg$currPos))) {
            s1 = input.charAt(peg$currPos);
            peg$currPos++;
          } else {
            s1 = peg$FAILED;

            if (peg$silentFails === 0) {
              peg$fail(peg$c37);
            }
          }
        }
      } else {
        s0 = peg$FAILED;
      }

      peg$silentFails--;

      if (s0 === peg$FAILED) {
        s1 = peg$FAILED;

        if (peg$silentFails === 0) {
          peg$fail(peg$c35);
        }
      }

      return s0;
    }

    function peg$parse_() {
      var s0, s1, s2;
      peg$silentFails++;
      s0 = peg$currPos;
      s1 = [];
      s2 = peg$parsews();

      while (s2 !== peg$FAILED) {
        s1.push(s2);
        s2 = peg$parsews();
      }

      if (s1 !== peg$FAILED) {
        s0 = input.substring(s0, peg$currPos);
      } else {
        s0 = s1;
      }

      peg$silentFails--;

      if (s0 === peg$FAILED) {
        s1 = peg$FAILED;

        if (peg$silentFails === 0) {
          peg$fail(peg$c38);
        }
      }

      return s0;
    }

    function peg$parsedigit() {
      var s0;

      if (peg$c39.test(input.charAt(peg$currPos))) {
        s0 = input.charAt(peg$currPos);
        peg$currPos++;
      } else {
        s0 = peg$FAILED;

        if (peg$silentFails === 0) {
          peg$fail(peg$c40);
        }
      }

      return s0;
    }

    function peg$parsehexDigit() {
      var s0;

      if (peg$c41.test(input.charAt(peg$currPos))) {
        s0 = input.charAt(peg$currPos);
        peg$currPos++;
      } else {
        s0 = peg$FAILED;

        if (peg$silentFails === 0) {
          peg$fail(peg$c42);
        }
      }

      return s0;
    }

    function peg$parsenumber() {
      var s0, s1, s2, s3, s4, s5;
      s0 = peg$currPos;

      if (input.charCodeAt(peg$currPos) === 48) {
        s1 = peg$c43;
        peg$currPos++;
      } else {
        s1 = peg$FAILED;

        if (peg$silentFails === 0) {
          peg$fail(peg$c44);
        }
      }

      if (s1 === peg$FAILED) {
        s1 = peg$currPos;
        s2 = peg$currPos;

        if (peg$c45.test(input.charAt(peg$currPos))) {
          s3 = input.charAt(peg$currPos);
          peg$currPos++;
        } else {
          s3 = peg$FAILED;

          if (peg$silentFails === 0) {
            peg$fail(peg$c46);
          }
        }

        if (s3 !== peg$FAILED) {
          s4 = [];
          s5 = peg$parsedigit();

          while (s5 !== peg$FAILED) {
            s4.push(s5);
            s5 = peg$parsedigit();
          }

          if (s4 !== peg$FAILED) {
            s3 = [s3, s4];
            s2 = s3;
          } else {
            peg$currPos = s2;
            s2 = peg$FAILED;
          }
        } else {
          peg$currPos = s2;
          s2 = peg$FAILED;
        }

        if (s2 !== peg$FAILED) {
          s1 = input.substring(s1, peg$currPos);
        } else {
          s1 = s2;
        }
      }

      if (s1 !== peg$FAILED) {
        peg$savedPos = s0;
        s1 = peg$c47(s1);
      }

      s0 = s1;
      return s0;
    }

    function peg$parsechar() {
      var s0, s1, s2, s3, s4, s5, s6, s7;

      if (peg$c48.test(input.charAt(peg$currPos))) {
        s0 = input.charAt(peg$currPos);
        peg$currPos++;
      } else {
        s0 = peg$FAILED;

        if (peg$silentFails === 0) {
          peg$fail(peg$c49);
        }
      }

      if (s0 === peg$FAILED) {
        s0 = peg$currPos;

        if (input.substr(peg$currPos, 2) === peg$c50) {
          s1 = peg$c50;
          peg$currPos += 2;
        } else {
          s1 = peg$FAILED;

          if (peg$silentFails === 0) {
            peg$fail(peg$c51);
          }
        }

        if (s1 !== peg$FAILED) {
          peg$savedPos = s0;
          s1 = peg$c52();
        }

        s0 = s1;

        if (s0 === peg$FAILED) {
          s0 = peg$currPos;

          if (input.substr(peg$currPos, 2) === peg$c53) {
            s1 = peg$c53;
            peg$currPos += 2;
          } else {
            s1 = peg$FAILED;

            if (peg$silentFails === 0) {
              peg$fail(peg$c54);
            }
          }

          if (s1 !== peg$FAILED) {
            peg$savedPos = s0;
            s1 = peg$c55();
          }

          s0 = s1;

          if (s0 === peg$FAILED) {
            s0 = peg$currPos;

            if (input.substr(peg$currPos, 2) === peg$c56) {
              s1 = peg$c56;
              peg$currPos += 2;
            } else {
              s1 = peg$FAILED;

              if (peg$silentFails === 0) {
                peg$fail(peg$c57);
              }
            }

            if (s1 !== peg$FAILED) {
              peg$savedPos = s0;
              s1 = peg$c58();
            }

            s0 = s1;

            if (s0 === peg$FAILED) {
              s0 = peg$currPos;

              if (input.substr(peg$currPos, 2) === peg$c59) {
                s1 = peg$c59;
                peg$currPos += 2;
              } else {
                s1 = peg$FAILED;

                if (peg$silentFails === 0) {
                  peg$fail(peg$c60);
                }
              }

              if (s1 !== peg$FAILED) {
                peg$savedPos = s0;
                s1 = peg$c61();
              }

              s0 = s1;

              if (s0 === peg$FAILED) {
                s0 = peg$currPos;

                if (input.substr(peg$currPos, 2) === peg$c62) {
                  s1 = peg$c62;
                  peg$currPos += 2;
                } else {
                  s1 = peg$FAILED;

                  if (peg$silentFails === 0) {
                    peg$fail(peg$c63);
                  }
                }

                if (s1 !== peg$FAILED) {
                  s2 = peg$currPos;
                  s3 = peg$currPos;
                  s4 = peg$parsehexDigit();

                  if (s4 !== peg$FAILED) {
                    s5 = peg$parsehexDigit();

                    if (s5 !== peg$FAILED) {
                      s6 = peg$parsehexDigit();

                      if (s6 !== peg$FAILED) {
                        s7 = peg$parsehexDigit();

                        if (s7 !== peg$FAILED) {
                          s4 = [s4, s5, s6, s7];
                          s3 = s4;
                        } else {
                          peg$currPos = s3;
                          s3 = peg$FAILED;
                        }
                      } else {
                        peg$currPos = s3;
                        s3 = peg$FAILED;
                      }
                    } else {
                      peg$currPos = s3;
                      s3 = peg$FAILED;
                    }
                  } else {
                    peg$currPos = s3;
                    s3 = peg$FAILED;
                  }

                  if (s3 !== peg$FAILED) {
                    s2 = input.substring(s2, peg$currPos);
                  } else {
                    s2 = s3;
                  }

                  if (s2 !== peg$FAILED) {
                    peg$savedPos = s0;
                    s1 = peg$c64(s2);
                    s0 = s1;
                  } else {
                    peg$currPos = s0;
                    s0 = peg$FAILED;
                  }
                } else {
                  peg$currPos = s0;
                  s0 = peg$FAILED;
                }
              }
            }
          }
        }
      }

      return s0;
    }

    function peg$parsechars() {
      var s0, s1, s2;
      s0 = peg$currPos;
      s1 = [];
      s2 = peg$parsechar();

      if (s2 !== peg$FAILED) {
        while (s2 !== peg$FAILED) {
          s1.push(s2);
          s2 = peg$parsechar();
        }
      } else {
        s1 = peg$FAILED;
      }

      if (s1 !== peg$FAILED) {
        peg$savedPos = s0;
        s1 = peg$c65(s1);
      }

      s0 = s1;
      return s0;
    }

    peg$result = peg$startRuleFunction();

    if (peg$result !== peg$FAILED && peg$currPos === input.length) {
      return peg$result;
    } else {
      if (peg$result !== peg$FAILED && peg$currPos < input.length) {
        peg$fail({
          type: "end",
          description: "end of input"
        });
      }

      throw peg$buildException(null, peg$maxFailExpected, peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null, peg$maxFailPos < input.length ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1) : peg$computeLocation(peg$maxFailPos, peg$maxFailPos));
    }
  }

  return {
    SyntaxError: peg$SyntaxError,
    parse: peg$parse
  };
}();

/***/ }),

/***/ "oSp+":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* unused harmony export internalForTests */
/* harmony import */ var _types_CDOReactIntlTyped__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("dSAe");
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
/* eslint-disable global-require */

const csCZ = __webpack_require__("hBd1");
const daDK = __webpack_require__("jOmW");
const deDE = __webpack_require__("NAiB");
const enUS = __webpack_require__("dBqt");
const esES = __webpack_require__("CYAm");
const fiFI = __webpack_require__("PxRy");
const frFR = __webpack_require__("4hGt");
const huHU = __webpack_require__("/T2e");
const itIT = __webpack_require__("F3qA");
const jaJP = __webpack_require__("v5BE");
const koKR = __webpack_require__("yCfT");
const nbNO = __webpack_require__("PFhU");
const nlNL = __webpack_require__("DLIp");
const plPL = __webpack_require__("ysBu");
const ptBR = __webpack_require__("F4KY");
const ruRU = __webpack_require__("8T8T");
const svSE = __webpack_require__("yLvx");
const trTR = __webpack_require__("jU2i");
const ukUA = __webpack_require__("DLu5");
const zhHans = __webpack_require__("cZcK");
const zhHant = __webpack_require__("qp3/");
const zuZA = __webpack_require__("6VA5");
/**
 * List of supported locales.
 */
const SUPPORTED_LOCALES = [
    'cs',
    'da',
    'de',
    'en',
    'es',
    'fi',
    'fr',
    'hu',
    'it',
    'ja',
    'ko',
    'nb',
    'nl',
    'pl',
    'pt',
    'ru',
    'sv',
    'tr',
    'uk',
    'zh-hans',
    'zh-hant',
    'zu',
];
/**
 * React-Intl ICU tables
 */
const REACT_DATASETS = {
    cs: __webpack_require__("gdxS"),
    da: __webpack_require__("x+Ei"),
    de: __webpack_require__("eZNI"),
    en: __webpack_require__("U9ri"),
    es: __webpack_require__("HpW/"),
    fi: __webpack_require__("oqCq"),
    fr: __webpack_require__("Hp/b"),
    hu: __webpack_require__("nqsH"),
    it: __webpack_require__("dEZ4"),
    ja: __webpack_require__("qmEL"),
    ko: __webpack_require__("TYVA"),
    nb: __webpack_require__("Pcmv"),
    nl: __webpack_require__("Q4ZP"),
    pl: __webpack_require__("UBvv"),
    pt: __webpack_require__("Mwd1"),
    ru: __webpack_require__("456K"),
    sv: __webpack_require__("JLB2"),
    tr: __webpack_require__("AN/Y"),
    uk: __webpack_require__("Yyt1"),
    'zh-hans': __webpack_require__("mw44"),
    'zh-hant': __webpack_require__("mw44"),
    zu: __webpack_require__("ILpG"),
};
Object.keys(REACT_DATASETS).forEach(key => {
    if (SUPPORTED_LOCALES.includes(key)) {
        Object(_types_CDOReactIntlTyped__WEBPACK_IMPORTED_MODULE_0__[/* addLocaleData */ "d"])(REACT_DATASETS[key]);
    }
});
/**
 * Master localization table.
 */
const APP_LOCALIZATION_TABLES = {
    cs: csCZ,
    da: daDK,
    de: deDE,
    en: enUS,
    es: esES,
    fi: fiFI,
    fr: frFR,
    hu: huHU,
    it: itIT,
    ja: jaJP,
    ko: koKR,
    nb: nbNO,
    nl: nlNL,
    pl: plPL,
    pt: ptBR,
    ru: ruRU,
    sv: svSE,
    tr: trTR,
    uk: ukUA,
    'zh-hans': zhHans,
    'zh-hant': zhHant,
    zu: zuZA,
};
const APP_LOCALE_REMAPPING_TABLE = {
    zh_cn: 'zh-hans',
    zh_tw: 'zh-hant',
    // If a new locale with hyphens is supported earlier in this list, it must also have
    // an entry in this table with the '_' below.  NormalizedLocale converts
    // the locale to have an '_' and then searches this list
    // and if not found truncates the locale to two letters.
    // Otherwise zh-Hans could get clipped to be zh
    // and there is no zh locale support at this time.
    zh_hans: 'zh-hans',
    zh_hant: 'zh-hant',
};
/**
 * Master string table container.
 */
class I18N {
    /**
     * Get the specified localization table.
     *
     * @param {String} locale 	locale specifier ('en', 'jp', etc.)
     * @return {Object} representing the localiztion table
     */
    static getStringsForLocale(locale) {
        const table = SUPPORTED_LOCALES.includes(locale) ? APP_LOCALIZATION_TABLES[locale] : {};
        return table;
    }
    static getSupportedSystemLocale(locale) {
        const languageCode = this.normalizeLocale(locale);
        if (SUPPORTED_LOCALES.includes(languageCode)) {
            return languageCode;
        }
        return 'en';
    }
    /**
     * Get the locale mapped to a supported one.
     *
     * @param {String} locale     locale specifier
     * @return {String} with the remapped locale code if necessary.
     */
    static normalizeLocale(locale) {
        // eslint-disable-next-line no-param-reassign
        locale = locale.toLowerCase();
        // CDO mainly supports two-character locales ('en', 'es', 'ru', etc) but also
        // supports some hyphenated (flavored) locales ('zh-Hans', etc).
        //
        // react-intl appears to be using this standard
        // https://www.unicode.org/reports/tr35/tr35.html#Identifiers
        //
        // Any unexpected variants of 'en' get mapped to 'en'.
        // What isn't currently supported is truncating variants of
        // hyphenated locales.  So if, per the standard, a locale is
        // passed in like zh-Hant-HK it will not be normalized to
        // zh-Hant
        //
        // TODO: remove other hyphenated locales (en-XX, fr-XX, es-XX) from the repos.
        // The localization team just copies them from en, fr, es.
        // https://jira.corp.adobe.com/browse/CCXCD-6571
        const remapped = APP_LOCALE_REMAPPING_TABLE[locale.replace(/-/g, '_')];
        // eslint-disable-next-line @typescript-eslint/no-magic-numbers
        const normalized = !remapped ? locale.substr(0, 2) : remapped;
        // default to english in case of errors
        if (!normalized || !normalized.length) {
            return 'en';
        }
        return normalized;
    }
    /**
     * Get locale for external helpx/web links based on UI locale setting.
     *
     * @param {String} uiLocale       UI's language display
     * @return {String} with the abbreviated locale id.
     */
    static getExternalLinkLocale(uiLocale) {
        // eslint-disable-next-line @typescript-eslint/no-magic-numbers
        const linkLocale = uiLocale.substr(0, 2);
        // for Chinese variants, just set 'cn'
        if (linkLocale === 'zh') {
            return 'cn';
        }
        // unsupported defaults to english
        if (!linkLocale.length || !SUPPORTED_LOCALES.includes(linkLocale)) {
            return 'en';
        }
        return linkLocale;
    }
    static isMessageDefined(intl, id) {
        return intl && Object.prototype.hasOwnProperty.call(intl.messages, id);
    }
    /**
     * Returns product-specific message id if it exists, or the default id if it exists,
     * or empty string if none exists.
     *
     * @param {InjectedIntl} intl
     * @param {string} id
     * @param {string} productId
     * @returns {string} the message id, or empty string if none found
     */
    static getApplicationSpecificMsgId(intl, id, productId) {
        const productMsgId = `${id}.${productId.toLowerCase()}`;
        if (I18N.isMessageDefined(intl, productMsgId)) {
            return productMsgId;
        }
        if (I18N.isMessageDefined(intl, id)) {
            return id;
        }
        return '';
    }
}
let internalForTests;
if (false) {}
/* harmony default export */ __webpack_exports__["a"] = (I18N);



/***/ }),

/***/ "oSyz":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXPORTS
__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ ToastManager_LoadingMessage; });
__webpack_require__.d(__webpack_exports__, "b", function() { return /* binding */ ToastManager_ToastManager; });

// UNUSED EXPORTS: getUpdatedMessage

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__("q1tI");
var react_default = /*#__PURE__*/__webpack_require__.n(react);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Toast/index.js
var Toast = __webpack_require__("bNpM");

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Toast/js/ToastContainer.js
var ToastContainer = __webpack_require__("hgTI");

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Wait/index.js
var Wait = __webpack_require__("czhh");
var Wait_default = /*#__PURE__*/__webpack_require__.n(Wait);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/styles/Toast.css
var styles_Toast = __webpack_require__("X3MX");
var styles_Toast_default = /*#__PURE__*/__webpack_require__.n(styles_Toast);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/stores/Settings.ts
var Settings = __webpack_require__("5u1M");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/utils/PriorityQueue.ts
class PriorityQueue {
    constructor(comparator = (a, b) => a - b >= 0) {
        this._items = [];
        this._comparator = (item1, item2) => comparator(item1, item2);
    }
    // Filter to keep elements that meet the condition
    filterItems(fn) {
        this._items = this._items.filter(item => fn(item));
    }
    // Enqueue a element
    enqueue(element) {
        let added = false;
        for (let i = 0; i < this._items.length; i++) {
            if (this._comparator(element, this._items[i])) {
                this._items.splice(i, 0, element);
                added = true;
                break;
            }
        }
        if (!added) {
            this._items.push(element);
        }
    }
    // Get the most priority item
    get front() {
        return this._items[0];
    }
    // Remove and the highest priority element
    dequeue() {
        return this._items.shift();
    }
    get items() {
        return this._items;
    }
    get isEmpty() {
        return this._items.length === 0;
    }
}

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/constants.ts
var constants = __webpack_require__("YVc3");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/components/ToastManager.tsx








// require() because mutating ES6 imports is verboten, but that's exactly how RS2 expects consumers to set TOAST_PLACEMENT
const toastState = __webpack_require__("f+s4");
toastState.TOAST_PLACEMENT = 'bottom center';
// Matches https://spectrum.adobe.com/page/toast/#Priority-queue
// Priority is from 1 (highest) to 8 (lowest).
const getMessagePriority = (options = {}) => {
    // Default is `neutral` and `non actionable` (gray toast, variant is `undefined`)
    let priority = 8;
    const variant = options === null || options === void 0 ? void 0 : options.variant;
    const actionable = (options === null || options === void 0 ? void 0 : options.actionLabel) && (options === null || options === void 0 ? void 0 : options.onAction);
    if (actionable && variant === 'error') {
        priority = 1;
    }
    else if (variant === 'error') {
        priority = 2;
    }
    else if (actionable && variant === 'success') {
        priority = 3;
    }
    else if (actionable && variant === 'info') {
        priority = 4;
    }
    else if (actionable) {
        priority = 5;
    }
    else if (variant === 'success') {
        priority = 6;
    }
    else if (variant === 'info') {
        priority = 7;
    }
    return priority;
};
const undoActionMap = {
    follow: 'unfollow',
    unfollow: 'follow',
};
class ToastManager_LoadingMessage extends react["Component"] {
    render() {
        return (react_default.a.createElement("div", { className: styles_Toast_default.a.loadingMessage },
            react_default.a.createElement(Wait_default.a, { size: "S" }),
            this.props.children));
    }
}
// If timeout set to 0, the toast will remain until closed manually.
const isTimeout = (time, timeout) => timeout !== 0 && Date.now() - time > (timeout || constants["G" /* TOAST_TIMEOUT */]);
// Get the message string for the grouped message. Currently only support `follow` and `unfollow`.
const getUpdatedMessage = (messageData, formatter) => {
    var _a, _b, _c, _d, _e, _f, _g, _h;
    let type = messageData.type;
    let message = '';
    if (['follow', 'unfollow'].includes(type || '')) {
        let success = (_c = (_b = (_a = messageData.items) === null || _a === void 0 ? void 0 : _a.success) === null || _b === void 0 ? void 0 : _b.length) !== null && _c !== void 0 ? _c : 0;
        let error = (_f = (_e = (_d = messageData.items) === null || _d === void 0 ? void 0 : _d.error) === null || _e === void 0 ? void 0 : _e.length) !== null && _f !== void 0 ? _f : 0;
        const allSuccess = success > 1 && !error;
        const singleAllSuccess = success === 1 && !error;
        const allError = error > 1 && !success;
        const singleAllError = error === 1 && !success;
        if (singleAllSuccess) {
            // Successfully favorited {projectName} | Successfully unfavorited {projectName}
            message = formatter(`bookmark.${type}.success`, {
                projectName: (_h = (_g = messageData.items) === null || _g === void 0 ? void 0 : _g.success[0]) === null || _h === void 0 ? void 0 : _h.name,
            });
        }
        else if (allSuccess) {
            // Successfully favorited X items | Successfully unfavorited X items
            message = formatter(`bookmark.bulk.${type}.success`, { count: success });
        }
        else if (singleAllError) {
            // Can’t favorite this space | Can’t unfavorite this space
            message = formatter(`bookmark.${type}.error`);
        }
        else if (allError) {
            // Can’t favorite X items | Can’t unfavorite X items
            message = formatter(`bookmark.bulk.${type}.error`, { count: success });
        }
        else {
            // Partial success
            // Can’t favorite some items | Can’t unfavorite some items
            message = formatter(`bookmark.bulk.${type}.partial`);
        }
    }
    return message;
};
class ToastManager_InternalToastInterface {
    constructor(getContainer) {
        this.toasts = new Map();
        this.toastKey = 0;
        this.getContainer = getContainer;
    }
    addToast(message, options) {
        const newEvent = type => {
            const event = new Event(type);
            // Set nativeEvent because it might get handled as a React event
            return Object.defineProperty(event, 'nativeEvent', { value: event });
        };
        // Stall the toast while we are hovering a toast that has an action button (leverage Toast's onFocus/onBlur handlers)
        const key = ++this.toastKey;
        const toast = (react_default.a.createElement(Toast["Toast"], Object.assign({ className: styles_Toast_default.a.SpacesToast }, options, ((options === null || options === void 0 ? void 0 : options.onAction) && {
            onMouseEnter: e => e.currentTarget.dispatchEvent(newEvent('focus')),
            onMouseLeave: e => e.currentTarget.dispatchEvent(newEvent('blur')),
        }), { onClose: data => {
                var _a;
                this.toasts.delete(key);
                (_a = options === null || options === void 0 ? void 0 : options.onClose) === null || _a === void 0 ? void 0 : _a.call(options, data);
            } }), message));
        this.toasts.set(key, toast);
        Object(ToastContainer["addToast"])(toast, options === null || options === void 0 ? void 0 : options.timeout, this.getContainer());
        return key;
    }
    // Use to force closing the toast
    removeToast(key) {
        const toast = this.toasts.get(key);
        this.toasts.delete(key);
        // Note that this method will cause <Toast />'s `onClose` to be called.
        Object(ToastContainer["removeToast"])(toast, this.getContainer());
    }
}
class ToastManager_ToastManager {
    constructor(toastInterface, getContainer) {
        this._toastKeyPromise = new Map();
        this._priorityQueue = new PriorityQueue((a, b) => getMessagePriority(a.options) <= getMessagePriority(b.options));
        // Map the toast keys to each message, so we can call removeToast(key) on it.
        // A `keys` array because a message toast can get `removeToast` multiple times due to higher priority messages added.
        // This map tracks the latest toast key being used to show the message, especially useful for method `replaceToast`.
        this._messageStartTimeToToastKeysMap = new Map();
        if (toastInterface) {
            this._toastInterface = toastInterface;
        }
        else {
            this._toastInterface = new ToastManager_InternalToastInterface(getContainer);
        }
    }
    showHighestPriorityMessage() {
        var _a;
        // Remove timeout messages
        this.removeTimeoutMessages();
        // Get the highest priority message in the queue
        const highestPriorityMessage = this._priorityQueue.front;
        if (highestPriorityMessage) {
            const { message, options } = highestPriorityMessage;
            // Create and show a new toast with the message
            const toastKey = this._toastInterface.addToast(message, {
                ...options,
                onClose: data => {
                    var _a, _b;
                    // Extend the options.onClose callback to conveniently show the next highest priority message.
                    // Host who provides its own toast interface is required to call this callback onClose.
                    // This callback gets called on 3 cases:
                    //   1 - On timeout. `data` is undefined.
                    //   2 - We manually close the current toast using `removeToast`. `data` is undefined. Do nothing.
                    //   3 - The user explicitly closes current toast (`x` button in toast). `data` has value.
                    // For case #1 (compare to Date.now() to verify if case #1 and not #2) or case #3.
                    // `setTimeout` because RS2 `might` throw an error when trying to add & remove toasts in the
                    // same execution frame.
                    if (isTimeout(highestPriorityMessage === null || highestPriorityMessage === void 0 ? void 0 : highestPriorityMessage.startTime, (_a = highestPriorityMessage.options) === null || _a === void 0 ? void 0 : _a.timeout) ||
                        data) {
                        setTimeout(() => {
                            this._priorityQueue.dequeue();
                            this.showHighestPriorityMessage();
                        }, 0);
                    }
                    // Process any extra handling for the original onClose for this message
                    (_b = options === null || options === void 0 ? void 0 : options.onClose) === null || _b === void 0 ? void 0 : _b.call(options);
                },
            });
            // Put `toastKey` at the right location in the `_messageStartTimeToToastKeysMap`
            const shownInToast = this._messageStartTimeToToastKeysMap.has(highestPriorityMessage.startTime);
            if (shownInToast) {
                (_a = this._messageStartTimeToToastKeysMap
                    .get(highestPriorityMessage.startTime)) === null || _a === void 0 ? void 0 : _a.push(toastKey);
            }
            else {
                this._messageStartTimeToToastKeysMap.set(highestPriorityMessage.startTime, [
                    toastKey,
                ]);
            }
        }
    }
    // Queue new message and ensure highest priority message is correct.
    async queueMessageToast(queueMessage) {
        return new Promise((resolve, reject) => {
            // `setTimeout` because RS2 `might` throw an error when trying to add & remove toasts in the same
            // execution frame.
            setTimeout(() => {
                try {
                    // Get the current highest priority message in the queue
                    const currentHighestPriorityQueueMessage = this._priorityQueue.front;
                    // Enqueue the message
                    this._priorityQueue.enqueue(queueMessage);
                    // Get the new highest priority message in the queue
                    const newHighestPriorityQueueMessage = this._priorityQueue.front;
                    if (currentHighestPriorityQueueMessage) {
                        // If there is currently a queue message toast, and the newly added message becomes the
                        // new highest priority message, then close the current message toast, but keep the message
                        // data in the queue and let `showHighestPriorityMessage` decide what to show.
                        if ((queueMessage === null || queueMessage === void 0 ? void 0 : queueMessage.startTime) === (newHighestPriorityQueueMessage === null || newHighestPriorityQueueMessage === void 0 ? void 0 : newHighestPriorityQueueMessage.startTime)) {
                            this.removeToast(currentHighestPriorityQueueMessage.startTime);
                            this.showHighestPriorityMessage();
                        }
                        // Else: The newly added message has lower priority than current toast message, then we
                        // let current toast remains showing. E.g current toast message is 'error', newly added is
                        // 'success', then `error` toast remain showing.
                    }
                    else {
                        // No toast is currently showing. Let `showHighestPriorityMessage` decide what to show.
                        this.showHighestPriorityMessage();
                    }
                    resolve(queueMessage.startTime);
                }
                catch (error) {
                    Settings["b" /* settings */].logger.error('Error queueMessageToast: ', error);
                    reject(error);
                }
            }, 0);
        });
    }
    // Remove timeout items in queue
    removeTimeoutMessages() {
        this._priorityQueue.filterItems(item => { var _a; return !isTimeout(item.startTime, (_a = item.options) === null || _a === void 0 ? void 0 : _a.timeout); });
    }
    // Remove timeout items and format the message to type IPriorityQueueMessage
    addToastSetup(message, options = { variant: 'success' }) {
        this.removeTimeoutMessages();
        let optionsOverrides = {
            ...options,
            closable: true,
        };
        const newMessageStartTime = Date.now();
        const newMessage = {
            message: message,
            options: optionsOverrides,
            startTime: newMessageStartTime,
        };
        return newMessage;
    }
    // Add message to the queue
    // Don't expect this to return a toast key number, since the message might have lower priority than current
    // toast message. So it is enqueued and won't be shown in toast immediately. This method instead returns a
    // message timestamp so we can later find it in the queue.
    addToast(message, options = { variant: 'success' }) {
        try {
            const newMessage = this.addToastSetup(message, options);
            return this.queueMessageToast(newMessage);
        }
        catch (e) {
            Settings["b" /* settings */].logger.error('Error adding a toast', e);
            return Promise.resolve(-1);
        }
    }
    // Add and group similar messages to the queue. Currently only support `follow` and `unfollow`.
    addToastForGrouping(data, options = { variant: 'success' }) {
        var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
        const newMessage = this.addToastSetup(undefined, options);
        newMessage.type = data.type;
        newMessage.items = data.items;
        // If the queue has item with this message type, remove it from queue, any its toast (if any)
        const messageFoundInQueue = this._priorityQueue.items.find(item => item.type === newMessage.type);
        const currentHighestPriorityQueueMessage = this._priorityQueue.front;
        if (messageFoundInQueue) {
            // If the message is showing in toast, remove the toast.
            // Remove toast require `this._priorityQueue.front` so doing this this before `filterItems` below.
            if (currentHighestPriorityQueueMessage) {
                if ((currentHighestPriorityQueueMessage === null || currentHighestPriorityQueueMessage === void 0 ? void 0 : currentHighestPriorityQueueMessage.type) === (messageFoundInQueue === null || messageFoundInQueue === void 0 ? void 0 : messageFoundInQueue.type)) {
                    this.removeToast(currentHighestPriorityQueueMessage.startTime);
                }
            }
            // Remove the old message from the queue
            this._priorityQueue.filterItems(item => item.type !== newMessage.type);
            // Update the success, error lists
            for (const item of ((_a = messageFoundInQueue.items) === null || _a === void 0 ? void 0 : _a.success) || []) {
                // Only update with new items. E.g follow a space multiple times is counted as 1.
                if (!((_c = (_b = newMessage.items) === null || _b === void 0 ? void 0 : _b.success) === null || _c === void 0 ? void 0 : _c.find(({ id }) => id === item.id))) {
                    (_e = (_d = newMessage.items) === null || _d === void 0 ? void 0 : _d.success) === null || _e === void 0 ? void 0 : _e.push(item);
                }
            }
            for (const item of ((_f = messageFoundInQueue.items) === null || _f === void 0 ? void 0 : _f.error) || []) {
                if (!((_g = newMessage.items) === null || _g === void 0 ? void 0 : _g.error.find(({ id }) => id === item.id))) {
                    (_h = newMessage.items) === null || _h === void 0 ? void 0 : _h.error.push(item);
                }
            }
        }
        // Remove the item from its according undo action list.
        // E.g success 'follow' space A will result in removing the space from 'unfollow' list (if any). This can happen
        // when the user click to follow, unfollow consecutively on the same spaces.
        const undoMessageType = undoActionMap[`${newMessage.type}`];
        const undoMessageFoundInQueueIndex = this._priorityQueue.items.findIndex(item => item.type === undoMessageType);
        if (undoMessageFoundInQueueIndex >= 0) {
            let undoMessage = this._priorityQueue.items[undoMessageFoundInQueueIndex];
            let success = ((_j = undoMessage === null || undoMessage === void 0 ? void 0 : undoMessage.items) === null || _j === void 0 ? void 0 : _j.success) || [];
            let error = ((_k = undoMessage === null || undoMessage === void 0 ? void 0 : undoMessage.items) === null || _k === void 0 ? void 0 : _k.error) || [];
            // Remove success items in new message from the undo message success, error arrays.
            for (const item of ((_l = newMessage.items) === null || _l === void 0 ? void 0 : _l.success) || []) {
                success = (success === null || success === void 0 ? void 0 : success.filter(({ id }) => id !== item.id)) || [];
                error = (error === null || error === void 0 ? void 0 : error.filter(({ id }) => id !== item.id)) || [];
            }
            if (success.length || error.length) {
                // Update the success, error list and message string
                this._priorityQueue.items[undoMessageFoundInQueueIndex].items = { success, error };
                this._priorityQueue.items[undoMessageFoundInQueueIndex].message = getUpdatedMessage(undoMessage, data.formatter);
            }
            else {
                // If there is no longer any success / error items, then remove the item from the queue and its toast
                // (if any)
                this._priorityQueue.filterItems(item => item.type !== undoMessageType);
                if ((currentHighestPriorityQueueMessage === null || currentHighestPriorityQueueMessage === void 0 ? void 0 : currentHighestPriorityQueueMessage.startTime) === undoMessage.startTime) {
                    this.removeToast(undoMessage.startTime);
                }
            }
        }
        // Update new message
        newMessage.message = getUpdatedMessage(newMessage, data.formatter);
        return this.queueMessageToast(newMessage);
    }
    removeToast(startTime) {
        try {
            let toastKeyArray = this._messageStartTimeToToastKeysMap.get(startTime);
            let length = toastKeyArray === null || toastKeyArray === void 0 ? void 0 : toastKeyArray.length;
            if (length) {
                // Get the latest toast key that served this message
                const latestToastKey = toastKeyArray === null || toastKeyArray === void 0 ? void 0 : toastKeyArray[length - 1];
                if (latestToastKey && latestToastKey >= 0) {
                    this._toastInterface.removeToast(latestToastKey);
                }
            }
        }
        catch (e) {
            Settings["b" /* settings */].logger.error('Error removing a toast', e);
        }
    }
    /**
     * Replace a message by removing old message and its toast (if any) and enqueuing new message.
     * E.g. For rename, oldMessage is the progress message 'Renaming', which is then replaced by
     * succeed or error rename message.
     */
    async replaceToast(oldMessageStartTime, nextMessage, nextOptions) {
        if (!this._toastKeyPromise.has(oldMessageStartTime)) {
            this._toastKeyPromise.set(oldMessageStartTime, new Promise(async (resolve, reject) => {
                try {
                    // If old message is currently showing, force removing its toast.
                    const currentHighestPriorityQueueMessage = this._priorityQueue.front;
                    if ((currentHighestPriorityQueueMessage === null || currentHighestPriorityQueueMessage === void 0 ? void 0 : currentHighestPriorityQueueMessage.startTime) === oldMessageStartTime) {
                        await this.removeToast(oldMessageStartTime);
                    }
                    // Remove the old message from the queue
                    this._priorityQueue.filterItems(item => item.startTime !== oldMessageStartTime);
                    // Get next message start time as key
                    const nextMessageStartTime = await this.addToast(nextMessage, nextOptions);
                    resolve(nextMessageStartTime);
                }
                catch (e) {
                    reject(e);
                }
                // Cleanup
                this._toastKeyPromise.delete(oldMessageStartTime);
            }));
        }
        return this._toastKeyPromise.get(oldMessageStartTime);
    }
}


/***/ }),

/***/ "oT/9":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, props, _react2.default.createElement("svg", {
    className: "spectrum-UIIcon-CrossLarge"
  }, _react2.default.createElement("path", {
    d: "M11.7 10.283L7.414 6 11.7 1.717A1 1 0 1 0 10.283.3L6 4.586 1.717.3A1 1 0 1 0 .3 1.717L4.586 6 .3 10.283A1 1 0 1 0 1.717 11.7L6 7.414l4.283 4.286a1 1 0 1 0 1.417-1.417z",
    className: "spectrum-UIIcon--medium"
  }), _react2.default.createElement("path", {
    d: "M15.7 14.283L9.414 8 15.7 1.717A1 1 0 1 0 14.283.3L8 6.586 1.717.3A1 1 0 1 0 .3 1.717L6.586 8 .3 14.283A1 1 0 1 0 1.717 15.7L8 9.414l6.283 6.286a1 1 0 1 0 1.417-1.417z",
    className: "spectrum-UIIcon--large"
  })));
};

WrappedIcon.displayName = 'CrossLarge';
exports.default = WrappedIcon;

/***/ }),

/***/ "oVml":
/***/ (function(module, exports, __webpack_require__) {

// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
var anObject = __webpack_require__("5K7Z");

var dPs = __webpack_require__("fpC5");

var enumBugKeys = __webpack_require__("FpHa");

var IE_PROTO = __webpack_require__("VVlx")('IE_PROTO');

var Empty = function () {
  /* empty */
};

var PROTOTYPE = 'prototype'; // Create object with fake `null` prototype: use iframe Object with cleared prototype

var createDict = function () {
  // Thrash, waste and sodomy: IE GC bug
  var iframe = __webpack_require__("Hsns")('iframe');

  var i = enumBugKeys.length;
  var lt = '<';
  var gt = '>';
  var iframeDocument;
  iframe.style.display = 'none';

  __webpack_require__("MvwC").appendChild(iframe);

  iframe.src = 'javascript:'; // eslint-disable-line no-script-url
  // createDict = iframe.contentWindow.Object;
  // html.removeChild(iframe);

  iframeDocument = iframe.contentWindow.document;
  iframeDocument.open();
  iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);
  iframeDocument.close();
  createDict = iframeDocument.F;

  while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];

  return createDict();
};

module.exports = Object.create || function create(O, Properties) {
  var result;

  if (O !== null) {
    Empty[PROTOTYPE] = anObject(O);
    result = new Empty();
    Empty[PROTOTYPE] = null; // add "__proto__" for Object.getPrototypeOf polyfill

    result[IE_PROTO] = O;
  } else result = createDict();

  return Properties === undefined ? result : dPs(result, Properties);
};

/***/ }),

/***/ "oZ20":
/***/ (function(module) {

module.exports = JSON.parse("{\"steps\":\"{currentStep} av {totalSteps}\"}");

/***/ }),

/***/ "oZ5x":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return addItemToEnvelope; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return createAttachmentEnvelopeItem; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return createEnvelope; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return envelopeItemTypeToDataCategory; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return forEachEnvelopeItem; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return serializeEnvelope; });
/* harmony import */ var _normalize_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("Fffm");
/* harmony import */ var _object_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("6PXS");


/**
 * Creates an envelope.
 * Make sure to always explicitly provide the generic to this function
 * so that the envelope types resolve correctly.
 */

function createEnvelope(headers, items = []) {
  return [headers, items];
}
/**
 * Add an item to an envelope.
 * Make sure to always explicitly provide the generic to this function
 * so that the envelope types resolve correctly.
 */


function addItemToEnvelope(envelope, newItem) {
  const [headers, items] = envelope;
  return [headers, [...items, newItem]];
}
/**
 * Convenience function to loop through the items and item types of an envelope.
 * (This function was mostly created because working with envelope types is painful at the moment)
 */


function forEachEnvelopeItem(envelope, callback) {
  const envelopeItems = envelope[1];
  envelopeItems.forEach(envelopeItem => {
    const envelopeItemType = envelopeItem[0].type;
    callback(envelopeItem, envelopeItemType);
  });
}

function encodeUTF8(input, textEncoder) {
  const utf8 = textEncoder || new TextEncoder();
  return utf8.encode(input);
}
/**
 * Serializes an envelope.
 */


function serializeEnvelope(envelope, textEncoder) {
  const [envHeaders, items] = envelope; // Initially we construct our envelope as a string and only convert to binary chunks if we encounter binary data

  let parts = JSON.stringify(envHeaders);

  function append(next) {
    if (typeof parts === 'string') {
      parts = typeof next === 'string' ? parts + next : [encodeUTF8(parts, textEncoder), next];
    } else {
      parts.push(typeof next === 'string' ? encodeUTF8(next, textEncoder) : next);
    }
  }

  for (const item of items) {
    const [itemHeaders, payload] = item;
    append(`\n${JSON.stringify(itemHeaders)}\n`);

    if (typeof payload === 'string' || payload instanceof Uint8Array) {
      append(payload);
    } else {
      let stringifiedPayload;

      try {
        stringifiedPayload = JSON.stringify(payload);
      } catch (e) {
        // In case, despite all our efforts to keep `payload` circular-dependency-free, `JSON.strinify()` still
        // fails, we try again after normalizing it again with infinite normalization depth. This of course has a
        // performance impact but in this case a performance hit is better than throwing.
        stringifiedPayload = JSON.stringify(Object(_normalize_js__WEBPACK_IMPORTED_MODULE_0__[/* normalize */ "a"])(payload));
      }

      append(stringifiedPayload);
    }
  }

  return typeof parts === 'string' ? parts : concatBuffers(parts);
}

function concatBuffers(buffers) {
  const totalLength = buffers.reduce((acc, buf) => acc + buf.length, 0);
  const merged = new Uint8Array(totalLength);
  let offset = 0;

  for (const buffer of buffers) {
    merged.set(buffer, offset);
    offset += buffer.length;
  }

  return merged;
}
/**
 * Creates attachment envelope items
 */


function createAttachmentEnvelopeItem(attachment, textEncoder) {
  const buffer = typeof attachment.data === 'string' ? encodeUTF8(attachment.data, textEncoder) : attachment.data;
  return [Object(_object_js__WEBPACK_IMPORTED_MODULE_1__[/* dropUndefinedKeys */ "c"])({
    type: 'attachment',
    length: buffer.length,
    filename: attachment.filename,
    content_type: attachment.contentType,
    attachment_type: attachment.attachmentType
  }), buffer];
}

const ITEM_TYPE_TO_DATA_CATEGORY_MAP = {
  session: 'session',
  sessions: 'session',
  attachment: 'attachment',
  transaction: 'transaction',
  event: 'error',
  client_report: 'internal',
  user_report: 'default'
};
/**
 * Maps the type of an envelope item to a data category.
 */

function envelopeItemTypeToDataCategory(type) {
  return ITEM_TYPE_TO_DATA_CATEGORY_MAP[type];
}



/***/ }),

/***/ "oaGZ":
/***/ (function(module, exports, __webpack_require__) {

module.exports = __webpack_require__.p + "assets/projects/id_icon.png";

/***/ }),

/***/ "obDU":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

/*
Copyright (c) 2014, Yahoo! Inc. All rights reserved.
Copyrights licensed under the New BSD License.
See the accompanying LICENSE file for terms.
*/

Object.defineProperty(exports, "__esModule", {
  value: true
});
/* jslint esnext: true */
// Purposely using the same implementation as the Intl.js `Intl` polyfill.
// Copyright 2013 Andy Earnshaw, MIT License

var hop = Object.prototype.hasOwnProperty;
var toString = Object.prototype.toString;

var realDefineProp = function () {
  try {
    return !!Object.defineProperty({}, 'a', {});
  } catch (e) {
    return false;
  }
}();

var es3 = !realDefineProp && !Object.prototype.__defineGetter__;
var defineProperty = realDefineProp ? Object.defineProperty : function (obj, name, desc) {
  if ('get' in desc && obj.__defineGetter__) {
    obj.__defineGetter__(name, desc.get);
  } else if (!hop.call(obj, name) || 'value' in desc) {
    obj[name] = desc.value;
  }
};
exports.defineProperty = defineProperty;

var objCreate = Object.create || function (proto, props) {
  var obj, k;

  function F() {}

  F.prototype = proto;
  obj = new F();

  for (k in props) {
    if (hop.call(props, k)) {
      defineProperty(obj, k, props[k]);
    }
  }

  return obj;
};

exports.objCreate = objCreate;

var arrIndexOf = Array.prototype.indexOf || function (search, fromIndex) {
  /*jshint validthis:true */
  var arr = this;

  if (!arr.length) {
    return -1;
  }

  for (var i = fromIndex || 0, max = arr.length; i < max; i++) {
    if (arr[i] === search) {
      return i;
    }
  }

  return -1;
};

exports.arrIndexOf = arrIndexOf;

var isArray = Array.isArray || function (obj) {
  return toString.call(obj) === '[object Array]';
};

exports.isArray = isArray;

var dateNow = Date.now || function () {
  return new Date().getTime();
};

exports.dateNow = dateNow;

/***/ }),

/***/ "oby6":
/***/ (function(module) {

module.exports = JSON.parse("{\"a11y.button.canvases\":\"{name}\",\"a11y.button.libraries\":\"{name}, knihovna\",\"a11y.button.listGridToggle\":\"přepnutí zobrazení, zobrazení {toggledView, select, grid {mřížky} list {seznamu}}\",\"a11y.button.project\":\"{name}, projekt\",\"a11y.button.published\":\"{name}, {extension}\",\"a11y.button.selectFolder\":\"Vybrat složku\",\"a11y.button.working\":\"{name}, {extension}, upraveno {modified}\",\"a11y.strings.folder\":\"složka\",\"header.action.newProject\":\"Nový projekt\",\"header.action.newLibrary\":\"Nová knihovna\",\"header.action.browseAll\":\"Procházet vše\",\"header.Name\":\"Název\",\"header.Size\":\"Velikost\",\"header.Sharing\":\"Členové\",\"header.Team\":\"Pracovní plocha\",\"header.DateModified\":\"Upraveno\",\"header.DateCreated\":\"Vytvořeno\",\"header.Status\":\"Oblíbené\",\"header.SortBy\":\"Uspořádat podle\",\"header.sort.label\":\"Uspořádat\",\"header.ChangeSortDirection\":\"Změnit směr řazení na\",\"header.SortBy.asc\":\"Vzestupně\",\"header.SortBy.desc\":\"Sestupně\",\"header.selectAll\":\"Vybrat vše\",\"header.reverseOrder\":\"Obrátit pořadí\",\"header.showCompatible\":\"Kompatibilní soubory\",\"header.showEverything\":\"Všechno\",\"product.illustrator.web\":\"Illustrator pro web (Beta)\",\"product.photoshop.web\":\"Photoshop pro web (Beta)\",\"status.followed\":\"Ano\",\"status.unfollowed\":\"Ne\",\"team.usm.defaultName\":\"Pracovní plocha {name}\",\"space.access.private.description\":\"Pouze pozvaní\",\"space.access.private.tooltip\":\"Do tohoto projektu mají přístup pouze lidé, kteří byli pozváni\",\"space.access.team.description\":\"Kdokoli v pracovní ploše a pozvaní\",\"space.access.team.tooltip\":\"K tomuto projektu má přístup kdokoli z týmu „{team}“\",\"yourProjects.title\":\"Projekty\",\"yourProjects.librariesTab.title\":\"Knihovny pro týmy\",\"yourProjects.empty.spaces\":\"Vytvořte další projekty a přizvěte další členy pracovní plochy\",\"browseAll.title\":\"Procházet vše\",\"yourFiles.title\":\"Vaše dokumenty\",\"yourLibraries.title\":\"Knihovny\",\"yourLibraries.metadata\":\"KNIHOVNA\",\"canvas.metadata\":\"PLÁTNO\",\"projectInfo.action.view\":\"Zobrazit informace\",\"projectInfo.action.edit\":\"Upravit projekt\",\"projectInfo.empty.cta\":\"Vytvořit nový projekt\",\"projectInfo.empty.description\":\"Projekty Creative Cloud zjednodušují nalézání, organizaci, sdílení i rozhodování. Vše potřebné k práci na tvůrčích projektech navíc najdete na jednom místě.\",\"projectInfo.empty.heading\":\"Více tvorby, méně dohánění restů.\",\"projectInfo.error.description\":\"Zkuste to znovu později\",\"projectInfo.error.heading\":\"Sekci {section} nelze načíst\",\"projectInfo.new.error.title\":\"Nový projekt nelze vytvořit\",\"projectInfo.new.noPermission.description\":\"O další informace požádejte svého správce.\",\"projectInfo.title.create\":\"NOVÝ PROJEKT\",\"projectInfo.title.edit\":\"UPRAVIT PROJEKT\",\"projectInfo.title.view\":\"INFORMACE O PROJEKTU\",\"projectInfo.access.title\":\"Kdo může tento projekt upravovat\",\"projectInfo.access.warning\":\"Někteří členové mohou ztratit přístup k tomuto projektu, pokud změníte oprávnění na „Pouze pozvaní lidé“.\",\"projectInfo.organization\":\"Organizace\",\"projectInfo.organization.placeholder\":\"Vyberte jednu z možností\",\"projectInfo.description\":\"Popis\",\"textField.invalid.characters\":\"Názvy nesmí obsahovat tyto znaky: \\\\\\\\ / * ? \\\" | : < >\",\"textField.invalid.duplicateName\":\"Projekt s tímto názvem už v této organizaci existuje.\",\"textField.invalid.duplicateName.space\":\"Projekt s tímto názvem už v této pracovní ploše existuje.\",\"textField.invalid.duplicateName.team\":\"Pracovní plocha s tímto názvem už v této organizaci existuje.\",\"textField.invalid.empty\":\"Název nesmí být prázdný\",\"textField.invalid.generic\":\"Neplatný název\",\"textField.invalid.length\":\"Názvy můžou mít maximálně 50 znaků\",\"textField.invalid.nameEndsWithDot\":\"Názvy nemohou končit tečkou\",\"textField.invalid.offline\":\"Znovu se připojte, abyste získali přístup ke všem svým pracovním plochám a projektům. Chcete-li zobrazit místní soubory ze svých projektů, přejděte na domovskou stránku.\",\"projectInfo.textField.placeholder\":\"Název tohoto projektu\",\"projectInfo.team\":\"Pracovní plocha\",\"projectInfo.description.placeholder\":\"Například soubory, zpětná vazba a referenční materiály pro klientský projekt\",\"projectInfo.description.invalidLength\":\"Maximální počet znaků v popisu je 1000.\",\"projectInfo.toast.success.new\":\"Projekt byl úspěšně vytvořen: {name}\",\"projectInfo.toast.success.update\":\"Projekt {name} byl úspěšně aktualizován\",\"projectInfo.toast.error.generic\":\"Projekt se nepodařilo {create, select, true {vytvořit} other {upravit}}\",\"team.empty.heading\":\"S projekty jsou všichni na stejné stránce\",\"team.empty.description\":\"Už vás nebaví nemít přístup k potřebným souborům, starat se o správnou verzi nebo posílat e-mailem snímky obrazovky ke kontrole? Začněte používat prostory, kde můžete uspořádat své projekty, shromažďovat materiály, evidovat zpětnou vazbu a sdílet soubory pro celý tým.\",\"team.empty.createSpace\":\"Vytvořit projekt\",\"team.empty.inviteMembers\":\"Pozvěte členy\",\"team.empty.startHere\":\"ZAČNĚTE ZDE\",\"team.create.success\":\"Pracovní plocha {name} byla úspěšně vytvořena\",\"team.create.error.generic\":\"Pracovní plochu se nepodařilo vytvořit\",\"team.edit.success\":\"Pracovní plocha {name} byla úspěšně aktualizována\",\"team.edit.error.generic\":\"Pracovní plochu se nepodařilo aktualizovat\",\"team.archive.success\":\"{count, plural, =1 {Pracovní plocha byla odstraněna} few {{count} Pracovní plochy byly odstraněny} other {{count} Pracovních ploch bylo odstraněno}}\",\"team.archive.error.generic\":\"Nelze odstranit {count, plural, =1 {# pracovní plochu} few {# pracovní plochy} other {# pracovních ploch}}\",\"team.error.generic\":\"Bohužel se něco pokazilo.\",\"project1Up.action.projectInfo\":\"Zobrazit informace\",\"project1up.region.space.ariaLabel\":\"{projectName}, projekt\",\"project1Up.section.libraries\":\"Knihovny\",\"project1Up.section.libraries.empty.cta\":\"Přidat knihovny Creative Cloud\",\"project1Up.section.libraries.empty.description\":\"Přidejte odkazy na knihovny, které potřebujete ke své práci.\",\"project1Up.section.libraries.empty.heading\":\"Shromážděte vše na jednom místě\",\"project1Up.section.filter\":\"Filtr\",\"project1Up.section.filter.label\":\"Filtrovat podle klíčového slova\",\"project1Up.section.filter.enterKeyword\":\"Zadejte klíčové slovo\",\"project1Up.section.filterFiles.empty.heading\":\"Vybranému filtru neodpovídají žádné výsledky.\",\"project1Up.section.compatibleFiles.empty.heading\":\"V tomto projektu se nenachází žádné kompatibilní soubory\",\"project1Up.section.workingFiles\":\"Pracovní soubory\",\"project1Up.section.workingFiles.empty.addFiles\":\"Přidat soubory\",\"project1Up.section.workingFiles.empty.createFolder\":\"Vytvořit novou složku\",\"project1Up.section.workingFiles.empty.description\":\"Upravujte opakovaně projekty a spolupracujte s ostatními členy.\",\"project1Up.section.workingFiles.empty.heading\":\"Pracujte podle toho, na čem a kdy je zrovna potřeba\",\"project1Up.section.published\":\"Publikováno\",\"project1Up.section.published.empty.cta\":\"Jak publikovat odkazy\",\"project1Up.section.published.empty.description\":\"Odesílejte odkazy pouze pro zobrazení a získejte zpětnou vazbu od správných lidí ve správný čas.\",\"project1Up.section.published.empty.description.readonly\":\"Pokud někdo potřebuje zpětnou vazbu nebo kontrolu, přidá sem odkaz.\",\"project1Up.section.published.empty.heading\":\"Sdílet s cílem\",\"project1Up.section.published.empty.heading.readonly\":\"V tomto projektu nejsou žádné publikované položky\",\"project1Up.section.canvases\":\"Plátna\",\"project1Up.section.canvases.empty.cta\":\"Přidat plátna do služby Creative Cloud\",\"project1Up.section.canvases.empty.description\":\"Přidejte odkazy na věci, které k práci potřebujete.\",\"project1Up.section.canvases.empty.heading\":\"Shromážděte vše na jednom místě\",\"project1Up.section.files\":\"Soubory\",\"project1Up.error.accessDenied.heading\":\"Nemáte přístup.\",\"project1Up.error.accessDenied.description\":\"Z tohoto projektu jste byli odebráni. Pokud si myslíte, že se jedná o chybu, obraťte se na správce.\",\"project1Up.header.seeAll\":\"Zobrazit vše\",\"project1up.subheader.selected\":\"{count, plural, =1 {Je vybrána # položka} few {Jsou vybrány # položky} other {Je vybráno # položek}}\",\"project1up.subheader.emptyDescription\":\"Přidejte k projektu popis\",\"project1up.subheader.canvases.title\":\"Plátna\",\"project1up.subheader.canvases.subtitle\":\"ÚLOHA: TITULEK PRO PLÁTNA\",\"project1up.subheader.libraries.title\":\"Knihovny\",\"project1up.subheader.libraries.subtitle\":\"Členové zde mohou přidávat odkazy na knihovny Creative Cloud.\",\"project1up.subheader.working.title\":\"Pracovní soubory\",\"project1up.subheader.working.subtitle\":\"Členové tohoto projektu mohou tyto soubory upravovat.\",\"project1up.subheader.output.title\":\"Publikováno\",\"project1up.subheader.output.subtitle\":\"{contributor, select, true {Sdílejte verze jen ke čtení s lidmi mimo projekt} other {Podívejte se na tyto položky jen ke čtení a okomentujte je}}\",\"project.subtitle\":\"PROJEKT\",\"project.countContributors\":\"{count, plural, =1 {# člen} few {# členové} other {# členů}}\",\"project.versionError.reload.description\":\"Zkuste stránku v prohlížeči znovu načíst.\",\"project.versionError.reload.title\":\"Přístup k projektu není možný\",\"project.versionError.update.description\":\"Do projektu nebudete mít přístup, dokud aplikaci neaktualizujete.\",\"project.versionError.update.title\":\"Aktualizujte {appName} a otevřete ji\",\"project.alreadyDiscarded.title\":\"Tento projekt byl odstraněn\",\"project.alreadyDiscarded.description\":\"Pokud jste přesvědčeni, že se jedná o chybu, obraťte se na svého správce nebo zkuste projít jiný obsah.\",\"project.deleted.title\":\"Tento projekt byl trvale odstraněn\",\"project.deleted.description\":\"K tomuto projektu nelze získat přístup, protože již není dostupný.\",\"project.metadataError.backLabel\":\"Zpět k projektům\",\"project.metadataError.description\":\"Buď nemůžeme hledaný projekt najít, nebo k němu nemáte přístup.\",\"project.metadataError.title\":\"Je nám líto, ale něco se pokazilo.\",\"folder.subtitle\":\"SLOŽKA\",\"libraries.toast.add.start\":\"Přidání {count, plural, =1 {# knihovny} other {# knihoven}}\",\"libraries.toast.add.success\":\"{count, plural, =1 {Byla přidána # knihovna} few {Byly přidány # knihovny} other {Bylo přidáno # knihoven}}\",\"libraries.toast.add.error\":\"{count, plural, =1 {# knihovnu} few {# knihovny} many {# knihoven} other {# knihoven}} se nepodařilo přidat. Zkuste to znovu.\",\"libraries.toast.add.duplicate\":\"Tato knihovna už existuje\",\"libraries.toast.add.onlyDuplicates\":\"Nelze přidat {count, plural, =1 {# knihovnu, protože knihovna již existuje} few {# knihovny, protože knihovny již existují} many {# knihoven, protože knihovny již existují} other {# knihoven, protože knihovny již existují}}.\",\"libraries.toast.delete.success\":\"Úspěšně jste odebrali {count, plural, =1 {# knihovnu} few {# knihovny} other {# knihoven}}\",\"libraries.toast.delete.error\":\"{count, plural, =1 {# knihovnu} few {# knihovny} other {# knihoven}} se nepodařilo odebrat\",\"libraries.toast.follow.inProgress\":\"{count, plural, =1 {Sledujete # knihovnu} few {Sledujete # knihovny} other {Sledujete # knihoven}}\",\"libraries.toast.follow.success\":\"{count, plural, =1 {Sledována # knihovna} few {Sledovány # knihovny} other {Sledováno # knihoven}}\",\"libraries.toast.follow.error\":\"{count, plural, =1 {# knihovnu} few {# knihovny} other {# knihoven}} se nepodařilo sledovat\",\"libraries.toast.unfollow.inProgress\":\"Zrušili jste sledování {count, plural, =1 {# knihovny} other {# knihoven}}\",\"libraries.toast.unfollow.success\":\"Zrušeno sledování {count, plural, =1 {# knihovny} other {# knihoven}}\",\"libraries.toast.unfollow.error\":\"Sledování {count, plural, =1 {# knihovny} other {# knihoven}} se nepodařilo zrušit\",\"libraries.modal.empty.heading\":\"Žádné knihovny\",\"libraries.modal.empty.description\":\"Vaše organizace nesdílí žádné knihovny\",\"libraries.modal.error.limitExceeded\":\"Knihovnu nelze přidat\",\"libraries.modal.error.limitExceeded.detail\":\"Do projektu můžete přidat maximálně 100 knihoven. Abyste mohli přidat další, musíte některé odstranit.\",\"libraries.brokenResources\":\"Některé knihovny se nezobrazují, protože k nim nemáte přístup. O další informace požádejte někoho z ostatních členů.\",\"copy.start\":\"{count, plural, =1 {Kopíruje se # položka} few {Kopírují se # položky} other {Kopíruje se # položek}}\",\"copy.failure\":\"{count, plural, =1 {# položku} few {# položky} other {# položek}} zkopírovat nelze\",\"copy.failure.partial\":\"Některé položky nelze zkopírovat\",\"copy.success\":\"{count, plural, =1 {Byla zkopírována # položka} few {Byly zkopírovány # položky} other {Bylo zkopírováno # položek}}\",\"copy.conflictSuffix\":\"kopie\",\"move.start\":\"Probíhá přesun {count, plural, =1 {# položky} other {# položek}}\",\"move.failure\":\"{count, plural, =1 {# položku} few {# položky} other {# položek}} přesunout nelze\",\"move.failure.partial\":\"Některé položky nelze přesunout\",\"move.success\":\"{count, plural, =1 {Byla přesunuta # položka} few {Byly přesunuty # položky} other {Bylo přesunuto # položek}}\",\"upload.start\":\"{count, plural, =1 {Aktualizuje se # položka} few {Aktualizují se # položky} other {Aktualizuje se # položek}}\",\"upload.failure\":\"Nelze aktualizovat {count, plural, =1 {# položku} few {# položky} other {# položek}}\",\"upload.failure.partial\":\"Některé položky nelze aktualizovat\",\"upload.failure.snapshot\":\"Tato položka není podporována\",\"upload.success\":\"{count, plural, =1 {# položka byla odstraněna} few {# položky byly odstraněny} other {# položek bylo odstraněno}}\",\"download.start\":\"{count, plural, =1 {Stahuje se # položka} few {Stahují se # položky} other {Stahuje se # položek}}\",\"download.failure\":\"Nelze stáhnout {count, plural, =1 {# položku} few {# položky} other {# položek}}\",\"download.failure.partial\":\"Některé položky nelze stáhnout\",\"download.success\":\"{count, plural, =1 {Stažena # položka} few {Staženy # položky} other {Staženo # položek}}\",\"delete.failure\":\"Nelze odstranit {count, plural, =1 {# položku} few {# položky} other {# položek}}\",\"delete.failure.partial\":\"Některé položky nelze odstranit\",\"delete.success\":\"{count, plural, =1 {Byla odstraněna # položka} few {Byly odstraněny # položky} other {Bylo odstraněno # položek}}\",\"jobs.failure\":\"{count, plural, =1 {# položka selhala} few {# položky selhaly} many {# položek selhalo} other {# položek selhalo}}\",\"jobs.inProgress\":\"Práce...\",\"jobs.success\":\"{count, plural, =1 {Byla dokončena # položka} few {Byly dokončeny # položky} many {Bylo dokončeno # položek} other {Bylo dokončeno # položek}}\",\"restore.failure\":\"Nelze obnovit {count, plural, =1 {# položku} few {# položky} other {# položek}}\",\"restore.failure.partial\":\"Některé položky nelze obnovit\",\"restore.success\":\"{count, plural, =1 {Byla obnovena # položka} few {Byly obnoveny # položky} other {Bylo obnoveno # položek}}\",\"rename.start\":\"Přejmenovávání\",\"rename.success\":\"{count, plural, =1 {Byla přejmenována # položka} few {Byly přejmenovány # položky} other {Bylo přejmenováno # položek}}\",\"rename.failure\":\"Položku se nepodařilo přejmenovat kvůli chybě serveru\",\"rename.failure.conflict\":\"Položku s tímto názvem už máte\",\"rename.offline.heading\":\"Nelze přejmenovat\",\"rename.offline\":\"Jste v režimu offline a položku nemůžete přejmenovat. Chcete-li tuto akci provést, připojte se k internetu.\",\"bookmark.follow.error\":\"Tento projekt nelze nastavit jako oblíbený\",\"bookmark.unfollow.error\":\"Tento projekt nelze vyřadit z oblíbených\",\"bookmark.follow.success\":\"Projekt {projectName} byl úspěšně přidán do oblíbených\",\"bookmark.unfollow.success\":\"Projekt {projectName} byl úspěšně odebrán z oblíbených\",\"bookmark.bulk.follow.success\":\"Přidali jste do oblíbených {count, plural, =1 {# položku} few {# položky} other {# položek}}\",\"bookmark.bulk.follow.partial\":\"Některé položky nelze přidat do oblíbených\",\"bookmark.bulk.follow.error\":\"Nelze přidat do oblíbených {count, plural, =1 {# položku} few {# položky} other {# položek}}\",\"bookmark.bulk.unfollow.success\":\"Odebrali jste z oblíbených {count, plural, =1 {# položku} few {# položky} other {# položek}}\",\"bookmark.bulk.unfollow.partial\":\"Některé položky nelze odebrat z oblíbených\",\"bookmark.bulk.unfollow.error\":\"{count, plural, =1 {# položku} few {# položky} other {# položek}} nelze odebrat z oblíbených\",\"copyLink.success\":\"Odkaz zkopírován do schránky\",\"copyLink.failure\":\"Odkaz nelze kopírovat\",\"starterUser.project1upNavigation\":\"Váš úvodní plán nezahrnuje otevírání dokumentů v projektech\",\"starterUser.project1upNavigationCDPSave\":\"Váš úvodní plán nezahrnuje ukládání dokumentů v projektech\",\"invite.failure\":\"Pozvánky se nepodařilo odeslat. Zkuste to znovu.\",\"accessibility.backButton\":\"Zpět\",\"button.role\":\"Tlačítko\",\"button.actions\":\"Akce\",\"button.add\":\"Přidat\",\"button.addFiles\":\"Přidat soubory\",\"button.addLibrary\":\"Přidat knihovnu\",\"button.createDocument\":\"Nový soubor {appName}\",\"button.library\":\"Knihovna\",\"button.back\":\"Zpět\",\"button.browse\":\"Procházet vše\",\"button.cancel\":\"Zrušit\",\"button.okay\":\"OK\",\"button.canvas\":\"Plátno\",\"button.addCanvas\":\"Nové plátno\",\"button.changeDefaultApp\":\"Změnit výchozí aplikaci...\",\"button.close\":\"Zavřít\",\"button.continue\":\"Pokračovat\",\"button.copy\":\"Kopírovat do...\",\"button.copyLink\":\"Kopírovat odkaz\",\"button.create\":\"Vytvořit\",\"button.createNewFolder\":\"Vytvořit novou složku\",\"button.newFile\":\"Nový soubor\",\"button.newFolder\":\"Nová složka\",\"button.delete\":\"Odstranit\",\"button.deleteResource\":\"Odebrat\",\"button.done\":\"Hotovo\",\"button.download\":\"Stáhnout\",\"button.favorite\":\"Přidat do oblíbených\",\"button.follow\":\"Sledovat\",\"button.invite\":\"Pozvat\",\"button.inviteLabel\":\"Pozvat osoby\",\"button.leave\":\"Opustit\",\"button.leaveProject\":\"Opustit pracovní plochu\",\"button.move\":\"Přesunout do...\",\"button.next\":\"Další\",\"button.ok\":\"OK\",\"button.open\":\"Otevřít\",\"button.openWith\":\"Otevřít v aplikaci\",\"button.open.appName\":\"{appName} {isDefault, select, true {(Výchozí)} other {}}\",\"button.redo\":\"Zkusit znovu\",\"button.reload\":\"Načíst znovu\",\"button.rename\":\"Přejmenovat\",\"button.restore\":\"Obnovit\",\"button.retry\":\"Opakovat\",\"button.save\":\"Uložit\",\"button.select\":\"Vybrat\",\"button.share\":\"Sdílet\",\"button.skipTour\":\"Přeskočit prohlídku\",\"button.undo\":\"Zpět\",\"button.unfavorite\":\"Odebrat z oblíbených\",\"button.unfollow\":\"Přestat sledovat\",\"button.update\":\"Aktualizovat\",\"button.upgrade\":\"Upgradovat\",\"button.view\":\"Zobrazit vše\",\"button.viewProject\":\"Zobrazit projekt\",\"button.viewTarget\":\"Zobrazit\",\"button.createWeblink\":\"Přidat webový odkaz\",\"button.leaveTeam\":\"Opustit pracovní plochu\",\"button.renameTeam\":\"Přejmenovat pracovní plochu\",\"button.editTeam\":\"Upravit informace o pracovní ploše\",\"button.archiveTeam\":\"Odstranit pracovní plochu\",\"button.upload\":\"Nahrát soubory\",\"button.goToDeleted\":\"Zobrazit v odstraněných položkách\",\"button.viewEverything\":\"Zobrazit vše\",\"button.viewInWeb\":\"Zobrazit na webu\",\"abbreviations.fileSize.byte\":\"B\",\"abbreviations.fileSize.kilobyte\":\"KB\",\"abbreviations.fileSize.megabyte\":\"MB\",\"abbreviations.fileSize.gigabyte\":\"GB\",\"abbreviations.fileSize.terabyte\":\"TB\",\"statusIcon.conflicted\":\"Problém při synchronizaci\",\"statusIcon.onlineOnly\":\"Pouze online\",\"statusIcon.availableOffline\":\"K dispozici offline\",\"statusIcon.syncing\":\"Synchronizace...\",\"statusIcon.waitingToSync\":\"Čeká se na synchronizaci\",\"statusMessage.offline.description\":\"Znovu se připojte, abyste získali přístup ke všem svým pracovním plochám a projektům. Chcete-li zobrazit místní soubory ze svých projektů, přejděte na domovskou stránku.\",\"statusMessage.offline.heading\":\"Nejste připojeni\",\"statusMessage.offline.toast\":\"Nejste připojeni, takže některé funkce a soubory nemusí být k dispozici.\",\"toggle.listView\":\"Zobrazení seznamu\",\"toggle.gridView\":\"Zobrazení miniatur\",\"color.fuchsia\":\"Fuchsiová\",\"color.indigo\":\"Indigová\",\"color.celery\":\"Celerová\",\"color.magenta\":\"Purpurová\",\"color.yellow\":\"Žlutá\",\"color.seafoam\":\"Mořská pěna\",\"color.chartreuse\":\"Světle zelená\",\"color.purple\":\"Nachová\",\"color.blue\":\"Modrá\",\"color.red\":\"Červená\",\"color.orange\":\"Oranžová\",\"color.green\":\"Zelená\",\"color.label\":\"Barva projektu\",\"tooltip.offline.general\":\"Přejděte zpět online a proveďte tuto akci\",\"tooltip.moreFaces\":\"+ {number} další\",\"action.leave.space.success\":\"Opustili jste {count, plural, =1 {# projekt} few {# projekty} many {# projektů} other {# projektů}}.\",\"action.leave.prototype.success\":\"Přístup k {count, plural, =1 {# prototypu} other {# prototypům}} byl odebrán.\",\"action.leave.file.success\":\"Přístup k {count, plural, =1 {# souboru} other {# souborům}} byl odebrán.\",\"action.leave.canvas.success\":\"Přístup k {count, plural, =1 {# plátnu} other {# plátnům}} byl odebrán.\",\"action.leave.team.success\":\"Opustili jste 1 pracovní plochu\",\"action.leave.space.error\":\"Tento projekt nelze opustit\",\"action.leave.prototype.error\":\"Tento prototyp nelze opustit\",\"action.leave.file.error\":\"Tento soubor nelze opustit.\",\"action.leave.team.error\":\"Tuto pracovní plochu nelze opustit\",\"action.leave.canvas.error\":\"Toto plátno nelze opustit\",\"action.leave.space.partial.error\":\"Nelze opustit všechny projekty.\",\"action.leave.prototype.partial.error\":\"Nelze opustit všechny prototypy.\",\"action.leave.file.partial.error\":\"Nelze opustit všechny soubory.\",\"action.leave.canvas.partial.error\":\"Nelze opustit všechna plátna.\",\"action.leave.error.onlyContributor\":\"Jste jediným členem. Před opuštěním prostoru někoho přidejte.\",\"action.leave.error.addressBookGroupMember\":\"Opusťte skupinu a zkuste to znovu.\",\"action.leave.error.admin\":\"Nemůžete odejít, protože jste správcem.\",\"action.leave.error.generic\":\"Nemůžete odejít, protože došlo k nějaké chybě.\",\"action.reportAbuse\":\"Nahlásit nevhodné chování\",\"action.reportAbuse.required\":\"Povinné\",\"action.reportAbuse.titleText\":\"Pokud se domníváte, že tento obsah služby Creative Cloud není v souladu s podmínkami použití stanovenými společností Adobe, můžete ho prostřednictvím tohoto stručného formuláře nahlásit.\",\"action.reportAbuse.emailInput\":\"Váš e-mail\",\"action.reportAbuse.nameInput\":\"Vaše jméno\",\"action.reportAbuse.radioButtonText\":\"Proč tento obsah hlásíte?\",\"action.reportAbuse.defamation\":\"Pomluva\",\"action.reportAbuse.hate\":\"Rasist./nenávistný obsah\",\"action.reportAbuse.trademark\":\"Porušení ochranné známky\",\"action.reportAbuse.pornography\":\"Sexuálně explicitní obsah\",\"action.reportAbuse.vulgar\":\"Urážlivý obsah\",\"action.reportAbuse.other\":\"Jiné\",\"action.reportAbuse.inappropriate\":\"Nevhodné\",\"action.reportAbuse.age\":\"Nepřesný věk\",\"action.reportAbuse.gender\":\"Nepřesné pohlaví\",\"action.reportAbuse.textAreaTitle\":\"Popište problém\",\"action.reportAbuse.describeConcern\":\"Popište problém\",\"action.reportAbuse.success\":\"Zneužití bylo úspěšně nahlášeno\",\"action.reportAbuse.failure\":\"Zneužití se nepodařilo nahlásit\",\"action.menu.label\":\"Nabídka akcí\",\"action.label\":\"Akce\",\"dialog.genericError.description\":\"Bohužel se něco pokazilo.\",\"dialog.genericError.title\":\"Neočekávaná chyba\",\"dialog.leave.space.title\":\"Opustit {count, plural, =1 {{name}} few {projekty} many {projektů} other {projektů}}\",\"dialog.leave.prototype.title\":\"Opustit {count, plural, =1 {tento prototyp} few {prototypy} many {prototypů} other {prototypů}}.\",\"dialog.leave.file.title\":\"Opustit {count, plural, =1 {tento soubor} few {soubory} many {souborů} other {souborů}}.\",\"dialog.leave.canvas.title\":\"Opustit {count, plural, =1 {toto plátno} few {plátna} many {pláten} other {pláten}}.\",\"dialog.leave.team.title\":\"Odcházíte?\",\"dialog.leave.team.detail\":\"Když se odstraníte, nebudete moci vrátit tuto akci zpět. Pokud chcete být k této pracovní ploše znovu přidáni, kontaktujte správce.\",\"dialog.leave.space.detail\":\"Ztratíte přístup k položkám v tomto projektu, které nevlastníte. Opuštění projektu {projectName} nelze vrátit zpět.\",\"dialog.leave.prototype.detail\":\"Bez dalšího pozvání už k němu nebudete mít přístup.\",\"dialog.leave.file.detail\":\"Bez dalšího pozvání už k němu nebudete mít přístup.\",\"dialog.leave.canvas.detail\":\"Bez dalšího pozvání už k němu nebudete mít přístup.\",\"dialog.leave.detail\":\"{type, select, space {Přijdete o přístup k položkám, které nevlastníte, v {count, plural, =1 {tomto projektu} other {těchto projektech}}. Opuštění {count, plural, =1 {\\\"{name}\\\"} other {těchto projektů}} nelze vrátit zpět.} other {Přístup k {count, plural, =1 {tomuto projektu} other {těmto projektům}} nebude bez další pozvánky možný {:}}}}\",\"dialog.deleteFailed.title\":\"Nelze odstranit všechny položky\",\"dialog.deleteWarning.description\":\"{type, select, spaces {Tato akce odstraní obsah pro všechny členy těchto projektů:} other {Tato akce odstraní následující položky pro všechny členy tohoto projektu:}}\",\"dialog.deleteWarning.title\":\"{type, select, space {Odstranit {count} {count, plural, =1 {projekt} few {projekty} other {projektů}}} other {Odstranit {count} {count, plural, =1 {položku} few {položky} other {položek}}}}\",\"dialog.deleteFailed.description.unauthorized\":\"Položku nelze odstranit, protože jste byli odebráni z projektu:\",\"dialog.deleteFailed.description.alreadyDeleted\":\"Tuto položku nelze odstranit, protože už to udělal někdo jiný:\",\"dialog.deleteFailed.description.unknown\":\"Položku nelze odstranit, protože došlo k nějaké chybě:\",\"dialog.cantCopyAllItems\":\"Nelze zkopírovat všechny položky\",\"dialog.cantCopyBecauseSomethingWentWrong\":\"Položku nelze zkopírovat, protože došlo k nějaké chybě:\",\"dialog.cantCopyBecauseYouWereSignedOut\":\"Nelze kopírovat, protože jste byli odhlášeni:\",\"dialog.cantCopyBecauseYouWereRemoved\":\"Nelze kopírovat, protože jste byli odebráni z tohoto projektu:\",\"dialog.cantCopyBecauseItemWasDeleted\":\"Položku nelze zkopírovat, protože ji někdo jiný odstranil:\",\"dialog.cantCopyBecauseItemExists\":\"Položku nelze zkopírovat, protože už v cílovém umístění existuje:\",\"dialog.cantMoveAllItems\":\"Nelze přesunout všechny položky\",\"dialog.cantMoveBecauseSomethingWentWrong\":\"Položku nelze přesunout, protože došlo k nějaké chybě:\",\"dialog.cantMoveBecauseYouWereSignedOut\":\"Nelze přesouvat, protože jste byli odhlášeni:\",\"dialog.cantMoveBecauseYouWereRemoved\":\"Nelze přesouvat, protože jste byli odebráni z tohoto projektu:\",\"dialog.cantMoveBecauseItemWasDeleted\":\"Položku nelze přesunout, protože ji někdo jiný odstranil:\",\"dialog.cantMoveBecauseItemExists\":\"Položku nelze přesunout, protože už v cílovém umístění existuje:\",\"dialog.createFolder.error\":\"Chyba serveru, složku nelze uložit\",\"dialog.createFolder.nameConflict\":\"Složku s tímto názvem už tu máte.\",\"dialog.createFolder.placeholder\":\"Název složky\",\"dialog.createFolder.title\":\"Vytvořit složku\",\"dialog.createFolder.success\":\"Složka byla úspěšně vytvořena.\",\"dialog.createWeblink.error\":\"Nepodporovaná adresa URL\",\"dialog.createWeblink.tooManyRequests\":\"Došlo k neočekávané chybě sítě. Zkuste to znovu.\",\"dialog.createWeblink.success\":\"Byla přidána 1 položka\",\"dialog.createWeblink.nameConflict\":\"Tento název už existuje\",\"dialog.createWeblink.name.placeholder\":\"Zadejte název tohoto odkazu.\",\"dialog.createWeblink.link.placeholder\":\"https://\",\"dialog.createWeblink.name\":\"Vlastní název\",\"dialog.createWeblink.link\":\"Propojit\",\"dialog.createWeblink.title\":\"Vytvořte webový odkaz\",\"app.type.webLink\":\"WEBOVÝ ODKAZ\",\"dialog.createCanvas.error\":\"Nesmí vytvářet plátna\",\"dialog.move.title\":\"Přesunout do projektu {projectName}\",\"dialog.move.detail\":\"Přesunutím této položky se změní to, kdo k ní má přístup.\",\"moveToTeam.confirm.title\":\"Přesunout do pracovní plochy {name}\",\"moveToTeam.confirm.message\":\"Přesunutím svých projektů sem změníte to, kdo k nim bude mít přístup. Vaše projekty budou přístupné každému, kdo má přístup k vaší pracovní ploše.\",\"moveToTeam.disabled.differentOrg.tooltip.message\":\"Nemůžete přesunout projekty na pracovní plochu v jiné organizaci.\",\"moveToSpace.disabled.differentOrg.tooltip.message\":\"Nemůžete přesunout položky do projektu v jiné organizaci.\",\"moveToTeam.success\":\"Přesunuli jste {count, plural, =1 {# projekt} few {# projekty} other {# projektů}} do pracovní plochy {name}\",\"confirmationDialog.dontShowAgain\":\"Příště nezobrazovat\",\"dialog.open.title\":\"Otevřít na webu\",\"dialog.open.detail\":\"Tento soubor nelze otevřít v aplikaci {appName}. Máte k němu ale přístup v prohlížeči.\",\"dialog.renameTeam.title\":\"Přejmenovat pracovní plochu\",\"dialog.renameTeam.placeholder\":\"Zadejte název této pracovní plochy\",\"dialog.renameTeam.error\":\"Bohužel došlo k nějaké chybě.\",\"dialog.renameTeam.nameConflict\":\"Tento název už existuje\",\"dialog.archiveTeam.title\":\"Odstranit tuto pracovní plochu?\",\"dialog.archiveTeam.detail\":\"Když se odstraníte, nelze tuto akci vrátit zpět. Pokud se budete chtít znovu připojit k této pracovní ploše, kontaktujte správce.\",\"dialog.saveToCloud.title\":\"Soubory byly uloženy do služby Creative Cloud\",\"dialog.saveToCloud.detail\":\"Váš dokument v cloudu nyní nabízí historii verzí, zvaní a společné úpravy, okamžitý přístup na jiných zařízeních a další možnosti. Najdete ho zde a ve svých aplikacích Creative Cloud.\",\"input.invalidCharInput\":\"Název nesmí obsahovat následující znaky: \\\\\\\\ / * ? \\\" | :\",\"input.invalidEmptyInput\":\"Pole {names, select, true {Názvy} other {Tituly}} nesmí být prázdné\",\"input.nameTooLong\":\"Pole {names, select, true {Názvy} other {Tituly}} nesmí obsahovat více než {maxLength} znaků.\",\"input.nameEndsWithDot\":\"Pole {names, select, true {Názvy} other {Tituly}} nesmí končit tečkou\",\"input.weblink.nameRestricted\":\"Odkazy na weby nesmí mít následující názvy: „con“, „prn“, „aux“, „nul“, „com“, „lpt#“\",\"input.nameRestricted\":\"Datové zdroje nesmí mít následující názvy: con/prn/aux/nul/com#/lpt#\",\"input.weblink.invalidCharInput\":\"Pole Tituly nesmí obsahovat mezery ani následující znaky: \\\\\\\\ / * ? \\\" | : < > \",\"input.name.invalidCharInput\":\"Pole Názvy nesmí obsahovat pouze mezery ani následující znaky: \\\\\\\\ / * ? \\\" | : < > \",\"cdpFooter.orphanedArtifactsWarning\":\"Zveřejněné odkazy spojené s položkami, které přesouváte, zůstanou v původním projektu\",\"cdpFooter.libraryPrivacyWarning\":\"Pokud máte oprávnění k opětovnému sdílení knihovny, kterou přidáte, členové projektu si ji budou moci zobrazit.\",\"toast.beforeOp.error.documentIsOpen\":\"Chcete-li tuto akci provést, zavřete {count, plural, =1 {dokument} few {dokumenty} other {dokumentů}}.\",\"app.type.designSpecs\":\"SPECIFIKACE NÁVRHŮ\",\"app.type.prototype\":\"PROTOTYP\",\"app.type.publishedLink\":\"VYDANÝ ODKAZ\",\"popover.header\":\"Spolupracujte na projektu s ostatními a sdílejte svou práci, když chcete získat zpětnou vazbou.\",\"popover.linkout\":\"Další informace\",\"team.libraries.filter.all\":\"Vše\",\"team.libraries.filter.addedToYourLibraries\":\"Přidáno do vašich knihoven\",\"team.libraries.filter.notAdded\":\"Nepřidáno\",\"team.spaces.filter.all\":\"Všechno\",\"team.spaces.filter.favorited\":\"Oblíbené\",\"team.filter.empty.heading\":\"Vybranému filtru neodpovídají žádné projekty\",\"team.filter.empty.description1\":\"Nenašli jsme žádné výsledky pro dotaz \",\"team.filter.empty.description2\":\" v tomto seznamu. Zkontrolujte pravopis nebo zkuste použít jiná klíčová slova.\",\"team.filter.no.match.description\":\"V tomto seznamu jsme nenašli žádné výsledky. Zkontrolujte zadání nebo zkuste použít jiná kritéria filtrování.\",\"team.filter.filterText\":\"{filter}\",\"team.header.other.teams\":\"Jiné pracovních plochy\",\"space.empty.heading\":\"Vše na jednom místě, vše vždy aktuální\",\"space.empty.description\":\"Naplňte tento projekt pracovními soubory a odpovídajícími materiály. Přizvěte spolupracovníky, ať i oni mohou přidat vše, na čem právě pracují.\",\"space.empty.canvasHeading\":\"CREATIVE CLOUD CANVAS\",\"space.empty.actionsHeading\":\"PŘIDEJTE DO SVÉHO PROJEKTU OBSAH\",\"space.empty.createCanvas\":\"Nové plátno\",\"space.empty.upload\":\"Přidat soubory\",\"space.empty.createFolder\":\"Nová složka\",\"space.empty.createWeblink\":\"Webové odkazy\",\"space.empty.addResource\":\"Knihovna\",\"folder.empty.heading\":\"Tato složka je prázdná.\",\"folder.empty.description\":\"Naplňte ji přidáním souborů.\",\"folder.discard.heading\":\"Tato složka byla odstraněna.\",\"folder.discard.description\":\"Pokud jste přesvědčeni, že se jedná o chybu, obraťte se na svého správce nebo zkuste projít jiný obsah.\",\"folder.error.description\":\"Při načítání obsahu z této složky vznikl problém..\",\"space.empty.section.createACanvas\":\"Vytvořte plátno\",\"tooltip.opensInBrowser\":\"Otevře se v prohlížeči\",\"space.empty.workingFiles\":\"Pokračujte v přidávání do tohoto projektu\",\"space.empty.canvasPopoverTitle\":\"Vyzkoušejte Creative Cloud Canvas (Beta)\",\"space.empty.canvasPopoverContent\":\"Využívejte plátna, na kterých si svoji tvůrčí práci můžete rozvrhnout, vizualizovat i překontrolovat.\",\"space.error.heading\":\"Projekt nelze načíst\",\"space.error.description\":\"Při načítání obsahu z tohoto projektu vznikl problém.\",\"createTeamWizard.createTeam.sidebarHeading\":\"Vytvořit pracovní plochu\",\"createTeamWizard.createTeam.sidebarCopy\":\"Vytvořte pracovní plochu, aby měl každý přístup k aktuálním informacím a datům.\",\"createTeamWizard.createTeam.sidebarCopy.adminconsole\":\"Vytvořte místo, kde může váš tým spolupracovat a sdílet soubory.\",\"createTeamWizard.createTeam.sidebarLink\":\"Další informace\",\"createTeamWizard.createTeam.contentHeading\":\"Nová pracovní plocha\",\"createTeamWizard.createTeam.loading\":\"Vytváření pracovní plochy „{name}“\",\"createTeamWizard.inviteMembers.sidebarHeading\":\"Pozvěte členy na pracovního plochu „{name}“.\",\"createTeamWizard.inviteMembers.sidebarCopy\":\"Chcete-li pozvat členy nyní, začněte psát jméno nebo e-mail, případně tento krok přeskočte a pozvěte je později.\",\"createTeamWizard.inviteMembers.loading\":\"Členům jsou odesílány pozvánky na pracovní plochu „{name}“\",\"createTeamWizard.inviteMembers.contentHeading\":\"Pozvěte členy\",\"createTeamWizard.inviteMembers.successToast\":\"Do nového pracovní plochy byli přidáni členové\",\"createTeamWizard.progress\":\"Krok {current} z {total}\",\"createTeamWizard.skipStep\":\"Přeskočit\",\"teamDialog.createTeam.label\":\"Vytvořit pracovní plochu\",\"teamDialog.createTeam.infoBox.description\":\"Vytvořená pracovní plocha je dostupná pouze pro pozvané a všichni přidaní uživatelé mají ve výchozím nastavení možnost provádět úpravy.\",\"teamDialog.editTeam.label\":\"Upravit pracovní plochu\",\"teamDialog.nameSection.placeholder\":\"Přiřaďte své nové pracovní ploše název\",\"teamDialog.nameSection.label\":\"Název pracovní plochy\",\"teamDialog.permissionsSection.label\":\"Kdo může tuto pracovní plochu upravovat\",\"teamDialog.permissionsSection.option.onlyInvited\":\"Pouze pozvaní\",\"teamDialog.descriptionSection.label\":\"Popis pracovní plochy (nepovinný)\",\"teamDialog.descriptionSection.placeholder\":\"Zadejte pár slov o pracovní ploše\",\"teamsSidebar.noTeams\":\"Žádné pracovní plochy\",\"teamsSidebar.newTeamButton\":\"Vytvořit pracovní plochu\",\"teamsSidebar.adminTour.title\":\"Nové! Vytváření pracovních ploch\",\"teamsSidebar.adminTour.content\":\"Nyní mohou správci vytvářet pracovní plochy ve službě Creative Cloud na webu, což usnadňuje organizaci sdílené práce.\",\"teamsSidebarTeam.newSpaceButton\":\"Nový projekt\",\"teamsSidebarTeam.header.newBadge\":\"NOVINKA\",\"teamsSidebarTeam.header.otherTeams\":\"Z jiných pracovních ploch\",\"teamsSidebarTeam.header.teams\":\"PRACOVNÍ PLOCHY\",\"teamsSidebarTeam.header.previewLabel\":\"(Náhled)\",\"teamsSidebarTeam.header.previewCopy\":\"Pracovní plochy a projekty jsou k dispozici v soukromé beta verzi.\",\"teamsSidebarTeam.header.previewLearnMoreText\":\"Další informace\",\"teamsSidebarTeam.message.loading\":\"Načítání...\",\"teamsSidebarTeam.message.noSpaces\":\"Nemáte žádné pracovní plochy ani projekty.\",\"teamsSidebarTeam.message.offline\":\"Byly jste odpojeni. Chcete‑li své pracovní plochy a projekty zobrazit, znovu se připojte.\",\"teamsSidebarTeam.message.error\":\"Při načítání pracovních ploch a projektů došlo k potížím.\",\"teams1up.error.description\":\"Při načítání vašich projektů došlo k potížím.\",\"teams1up.error.heading\":\"Nelze načíst projekty\",\"otherTeams.emptyMessage.header\":\"Nelze zobrazit stránku pracovní plochy\",\"otherTeams.emptyMessage.description1\":\"Byli jste odebráni nebo jste opustili poslední projekt pomocí sekce\",\"otherTeams.emptyMessage.description2\":\". Pokud jste přesvědčeni, že se jedná o chybu, obraťte se na svého správce.\",\"spaceTour.step0.title\":\"Zde jsou vaše projekty\",\"spaceTour.step0.content\":\"Projekty pomáhají týmům se spoluprací, shromažďováním organizací a sdílením souborů a zdrojů.\",\"spaceTour.step1.title\":\"Přidejte vše potřebné pro své projekty\",\"spaceTour.step1.content\":\"Mějte vždy na jednom místě pracovní soubory, referenční obrázky, zdroje a další materiály.\",\"spaceTour.step2.title\":\"Nastavte oprávnění bez dalších starostí\",\"spaceTour.step2.content\":\"Zvolte pro své spolupracovníky vhodná přístupová oprávnění a ušetřete si čas i starosti a posílejte balíčky ke kontrole a zpětné vazbě jen těm, kterých se to týká.\",\"error.cantCreateSpace\":\"Úložiště pracovní plochy je plné\",\"error.exceedQuota.create.detail.description1\":\"Nyní nemůžete nic nového vytvořit. Zvolte \",\"error.exceedQuota.description2\":\" a uvolněte místo v úložišti.\",\"error.exceedQuota.add.detail.description1\":\"Nyní nemůžete nic nového přidat. Zvolte \",\"error.move.generic\":\"Položku nelze přesunout, protože došlo k nějaké chybě\",\"error.move.signedOut\":\"Nelze přesouvat, protože jste byli odhlášeni\",\"error.move.permissionRevoked\":\"Nelze přesouvat, protože jste byli odebráni z tohoto projektu\",\"error.move.deleted\":\"Položku nelze přesunout, protože ji někdo jiný odstranil\",\"error.move.duplicate\":\"Položku nelze přesunout, protože už v cílovém umístění existuje\",\"error.copy.generic\":\"Položku nelze zkopírovat, protože došlo k nějaké chybě\",\"error.copy.signedOut\":\"Nelze kopírovat, protože jste byli odhlášeni\",\"error.copy.permissionRevoked\":\"Nelze kopírovat, protože jste byli odebráni z tohoto projektu\",\"error.copy.deleted\":\"Položku nelze zkopírovat, protože ji někdo jiný odstranil\",\"error.copy.duplicate\":\"Položku nelze zkopírovat, protože už v cílovém umístění existuje\",\"checkbox.select\":\"Vybrat\",\"listItem.fileSize\":\"Velikost souboru\",\"facepile.additionalMembers\":\"Další členové + {count}\",\"facepile.memberName\":\"{name}, člen\",\"coachmark.information\":\"informace\",\"toolbar.tools\":\"nástroje\",\"griditem.error.message\":\"Nelze načíst\",\"griditem.error.button\":\"Opakovat\",\"ats.move.extendedNotification\":\"Po dokončení přesunu obdržíte oznámení.\",\"file.deleted.error.heading\":\"Soubor nelze {operation}\",\"file.deleted.error.description\":\"Tento soubor nelze {operation}, protože byl odstraněn. Obnovte jej z odstraněných souborů a zkuste to znovu nebo vyberte jiné umístění.\",\"file.deleted.rename.error.description\":\"Tento soubor nelze přejmenovat, protože byl odstraněn. Chcete-li soubor obnovit, vyberte možnost Přejít k odstraněným.\"}");

/***/ }),

/***/ "oioR":
/***/ (function(module, exports, __webpack_require__) {

var ctx = __webpack_require__("2GTP");

var call = __webpack_require__("sNwI");

var isArrayIter = __webpack_require__("NwJ3");

var anObject = __webpack_require__("5K7Z");

var toLength = __webpack_require__("tEej");

var getIterFn = __webpack_require__("fNZA");

var BREAK = {};
var RETURN = {};

var exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {
  var iterFn = ITERATOR ? function () {
    return iterable;
  } : getIterFn(iterable);
  var f = ctx(fn, that, entries ? 2 : 1);
  var index = 0;
  var length, step, iterator, result;
  if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!'); // fast case for arrays with default iterator

  if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {
    result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);
    if (result === BREAK || result === RETURN) return result;
  } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {
    result = call(iterator, f, step.value, entries);
    if (result === BREAK || result === RETURN) return result;
  }
};

exports.BREAK = BREAK;
exports.RETURN = RETURN;

/***/ }),

/***/ "okNM":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* unused harmony export propTypes */
/* unused harmony export PropTypes */
/* unused harmony export onError */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return observer; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Observer; });
/* unused harmony export renderReporter */
/* unused harmony export componentByNodeRegistery */
/* unused harmony export componentByNodeRegistry */
/* unused harmony export trackComponents */
/* unused harmony export useStaticRendering */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return Provider; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return inject; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return disposeOnUnmount; });
/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("2vnA");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("i8i4");
/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_2__);




function _typeof(obj) {
  if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
    _typeof = function (obj) {
      return typeof obj;
    };
  } else {
    _typeof = function (obj) {
      return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
    };
  }

  return _typeof(obj);
}

function _classCallCheck(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}

function _defineProperties(target, props) {
  for (var i = 0; i < props.length; i++) {
    var descriptor = props[i];
    descriptor.enumerable = descriptor.enumerable || false;
    descriptor.configurable = true;
    if ("value" in descriptor) descriptor.writable = true;
    Object.defineProperty(target, descriptor.key, descriptor);
  }
}

function _createClass(Constructor, protoProps, staticProps) {
  if (protoProps) _defineProperties(Constructor.prototype, protoProps);
  if (staticProps) _defineProperties(Constructor, staticProps);
  return Constructor;
}

function _defineProperty(obj, key, value) {
  if (key in obj) {
    Object.defineProperty(obj, key, {
      value: value,
      enumerable: true,
      configurable: true,
      writable: true
    });
  } else {
    obj[key] = value;
  }

  return obj;
}

function _inherits(subClass, superClass) {
  if (typeof superClass !== "function" && superClass !== null) {
    throw new TypeError("Super expression must either be null or a function");
  }

  subClass.prototype = Object.create(superClass && superClass.prototype, {
    constructor: {
      value: subClass,
      writable: true,
      configurable: true
    }
  });
  if (superClass) _setPrototypeOf(subClass, superClass);
}

function _getPrototypeOf(o) {
  _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {
    return o.__proto__ || Object.getPrototypeOf(o);
  };
  return _getPrototypeOf(o);
}

function _setPrototypeOf(o, p) {
  _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
    o.__proto__ = p;
    return o;
  };

  return _setPrototypeOf(o, p);
}

function _assertThisInitialized(self) {
  if (self === void 0) {
    throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
  }

  return self;
}

function _possibleConstructorReturn(self, call) {
  if (call && (typeof call === "object" || typeof call === "function")) {
    return call;
  }

  return _assertThisInitialized(self);
} // These functions can be stubbed out in specific environments


function unwrapExports(x) {
  return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x.default : x;
}

function createCommonjsModule(fn, module) {
  return module = {
    exports: {}
  }, fn(module, module.exports), module.exports;
}

var reactIs_production_min = createCommonjsModule(function (module, exports) {
  Object.defineProperty(exports, "__esModule", {
    value: !0
  });
  var b = "function" === typeof Symbol && Symbol.for,
      c = b ? Symbol.for("react.element") : 60103,
      d = b ? Symbol.for("react.portal") : 60106,
      e = b ? Symbol.for("react.fragment") : 60107,
      f = b ? Symbol.for("react.strict_mode") : 60108,
      g = b ? Symbol.for("react.profiler") : 60114,
      h = b ? Symbol.for("react.provider") : 60109,
      k = b ? Symbol.for("react.context") : 60110,
      l = b ? Symbol.for("react.async_mode") : 60111,
      m = b ? Symbol.for("react.concurrent_mode") : 60111,
      n = b ? Symbol.for("react.forward_ref") : 60112,
      p = b ? Symbol.for("react.suspense") : 60113,
      r = b ? Symbol.for("react.memo") : 60115,
      t = b ? Symbol.for("react.lazy") : 60116;

  function u(a) {
    if ("object" === typeof a && null !== a) {
      var q = a.$$typeof;

      switch (q) {
        case c:
          switch (a = a.type, a) {
            case l:
            case m:
            case e:
            case g:
            case f:
              return a;

            default:
              switch (a = a && a.$$typeof, a) {
                case k:
                case n:
                case h:
                  return a;

                default:
                  return q;
              }

          }

        case d:
          return q;
      }
    }
  }

  function v(a) {
    return u(a) === m;
  }

  exports.typeOf = u;
  exports.AsyncMode = l;
  exports.ConcurrentMode = m;
  exports.ContextConsumer = k;
  exports.ContextProvider = h;
  exports.Element = c;
  exports.ForwardRef = n;
  exports.Fragment = e;
  exports.Profiler = g;
  exports.Portal = d;
  exports.StrictMode = f;

  exports.isValidElementType = function (a) {
    return "string" === typeof a || "function" === typeof a || a === e || a === m || a === g || a === f || a === p || "object" === typeof a && null !== a && (a.$$typeof === t || a.$$typeof === r || a.$$typeof === h || a.$$typeof === k || a.$$typeof === n);
  };

  exports.isAsyncMode = function (a) {
    return v(a) || u(a) === l;
  };

  exports.isConcurrentMode = v;

  exports.isContextConsumer = function (a) {
    return u(a) === k;
  };

  exports.isContextProvider = function (a) {
    return u(a) === h;
  };

  exports.isElement = function (a) {
    return "object" === typeof a && null !== a && a.$$typeof === c;
  };

  exports.isForwardRef = function (a) {
    return u(a) === n;
  };

  exports.isFragment = function (a) {
    return u(a) === e;
  };

  exports.isProfiler = function (a) {
    return u(a) === g;
  };

  exports.isPortal = function (a) {
    return u(a) === d;
  };

  exports.isStrictMode = function (a) {
    return u(a) === f;
  };
});
unwrapExports(reactIs_production_min);
var reactIs_production_min_1 = reactIs_production_min.typeOf;
var reactIs_production_min_2 = reactIs_production_min.AsyncMode;
var reactIs_production_min_3 = reactIs_production_min.ConcurrentMode;
var reactIs_production_min_4 = reactIs_production_min.ContextConsumer;
var reactIs_production_min_5 = reactIs_production_min.ContextProvider;
var reactIs_production_min_6 = reactIs_production_min.Element;
var reactIs_production_min_7 = reactIs_production_min.ForwardRef;
var reactIs_production_min_8 = reactIs_production_min.Fragment;
var reactIs_production_min_9 = reactIs_production_min.Profiler;
var reactIs_production_min_10 = reactIs_production_min.Portal;
var reactIs_production_min_11 = reactIs_production_min.StrictMode;
var reactIs_production_min_12 = reactIs_production_min.isValidElementType;
var reactIs_production_min_13 = reactIs_production_min.isAsyncMode;
var reactIs_production_min_14 = reactIs_production_min.isConcurrentMode;
var reactIs_production_min_15 = reactIs_production_min.isContextConsumer;
var reactIs_production_min_16 = reactIs_production_min.isContextProvider;
var reactIs_production_min_17 = reactIs_production_min.isElement;
var reactIs_production_min_18 = reactIs_production_min.isForwardRef;
var reactIs_production_min_19 = reactIs_production_min.isFragment;
var reactIs_production_min_20 = reactIs_production_min.isProfiler;
var reactIs_production_min_21 = reactIs_production_min.isPortal;
var reactIs_production_min_22 = reactIs_production_min.isStrictMode;
var reactIs = createCommonjsModule(function (module) {
  {
    module.exports = reactIs_production_min;
  }
});
/**
 * Copyright 2015, Yahoo! Inc.
 * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
 */

var REACT_STATICS = {
  childContextTypes: true,
  contextType: true,
  contextTypes: true,
  defaultProps: true,
  displayName: true,
  getDefaultProps: true,
  getDerivedStateFromError: true,
  getDerivedStateFromProps: true,
  mixins: true,
  propTypes: true,
  type: true
};
var KNOWN_STATICS = {
  name: true,
  length: true,
  prototype: true,
  caller: true,
  callee: true,
  arguments: true,
  arity: true
};
var FORWARD_REF_STATICS = {
  '$$typeof': true,
  render: true,
  defaultProps: true,
  displayName: true,
  propTypes: true
};
var TYPE_STATICS = {};
TYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;
var defineProperty = Object.defineProperty;
var getOwnPropertyNames = Object.getOwnPropertyNames;
var getOwnPropertySymbols = Object.getOwnPropertySymbols;
var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
var getPrototypeOf = Object.getPrototypeOf;
var objectPrototype = Object.prototype;

function hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {
  if (typeof sourceComponent !== 'string') {
    // don't hoist over string (html) components
    if (objectPrototype) {
      var inheritedComponent = getPrototypeOf(sourceComponent);

      if (inheritedComponent && inheritedComponent !== objectPrototype) {
        hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);
      }
    }

    var keys = getOwnPropertyNames(sourceComponent);

    if (getOwnPropertySymbols) {
      keys = keys.concat(getOwnPropertySymbols(sourceComponent));
    }

    var targetStatics = TYPE_STATICS[targetComponent['$$typeof']] || REACT_STATICS;
    var sourceStatics = TYPE_STATICS[sourceComponent['$$typeof']] || REACT_STATICS;

    for (var i = 0; i < keys.length; ++i) {
      var key = keys[i];

      if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {
        var descriptor = getOwnPropertyDescriptor(sourceComponent, key);

        try {
          // Avoid failures from read-only properties
          defineProperty(targetComponent, key, descriptor);
        } catch (e) {}
      }
    }

    return targetComponent;
  }

  return targetComponent;
}

var hoistNonReactStatics_cjs = hoistNonReactStatics;

var EventEmitter = /*#__PURE__*/function () {
  function EventEmitter() {
    _classCallCheck(this, EventEmitter);

    this.listeners = [];
  }

  _createClass(EventEmitter, [{
    key: "on",
    value: function on(cb) {
      var _this = this;

      this.listeners.push(cb);
      return function () {
        var index = _this.listeners.indexOf(cb);

        if (index !== -1) _this.listeners.splice(index, 1);
      };
    }
  }, {
    key: "emit",
    value: function emit(data) {
      this.listeners.forEach(function (fn) {
        return fn(data);
      });
    }
  }]);

  return EventEmitter;
}();

function createChainableTypeChecker(validate) {
  function checkType(isRequired, props, propName, componentName, location, propFullName) {
    for (var _len = arguments.length, rest = new Array(_len > 6 ? _len - 6 : 0), _key = 6; _key < _len; _key++) {
      rest[_key - 6] = arguments[_key];
    }

    return Object(mobx__WEBPACK_IMPORTED_MODULE_0__[/* untracked */ "G"])(function () {
      componentName = componentName || "<<anonymous>>";
      propFullName = propFullName || propName;

      if (props[propName] == null) {
        if (isRequired) {
          var actual = props[propName] === null ? "null" : "undefined";
          return new Error("The " + location + " `" + propFullName + "` is marked as required " + "in `" + componentName + "`, but its value is `" + actual + "`.");
        }

        return null;
      } else {
        return validate.apply(void 0, [props, propName, componentName, location, propFullName].concat(rest));
      }
    });
  }

  var chainedCheckType = checkType.bind(null, false);
  chainedCheckType.isRequired = checkType.bind(null, true);
  return chainedCheckType;
} // Copied from React.PropTypes


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;
} // Copied from React.PropTypes


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.
// Copied from React.PropTypes


function getPreciseType(propValue) {
  var propType = getPropType(propValue);

  if (propType === "object") {
    if (propValue instanceof Date) {
      return "date";
    } else if (propValue instanceof RegExp) {
      return "regexp";
    }
  }

  return propType;
}

function createObservableTypeCheckerCreator(allowNativeType, mobxType) {
  return createChainableTypeChecker(function (props, propName, componentName, location, propFullName) {
    return Object(mobx__WEBPACK_IMPORTED_MODULE_0__[/* untracked */ "G"])(function () {
      if (allowNativeType) {
        if (getPropType(props[propName]) === mobxType.toLowerCase()) return null;
      }

      var mobxChecker;

      switch (mobxType) {
        case "Array":
          mobxChecker = mobx__WEBPACK_IMPORTED_MODULE_0__[/* isObservableArray */ "v"];
          break;

        case "Object":
          mobxChecker = mobx__WEBPACK_IMPORTED_MODULE_0__[/* isObservableObject */ "x"];
          break;

        case "Map":
          mobxChecker = mobx__WEBPACK_IMPORTED_MODULE_0__[/* isObservableMap */ "w"];
          break;

        default:
          throw new Error("Unexpected mobxType: ".concat(mobxType));
      }

      var propValue = props[propName];

      if (!mobxChecker(propValue)) {
        var preciseType = getPreciseType(propValue);
        var nativeTypeExpectationMessage = allowNativeType ? " or javascript `" + mobxType.toLowerCase() + "`" : "";
        return new Error("Invalid prop `" + propFullName + "` of type `" + preciseType + "` supplied to" + " `" + componentName + "`, expected `mobx.Observable" + mobxType + "`" + nativeTypeExpectationMessage + ".");
      }

      return null;
    });
  });
}

function createObservableArrayOfTypeChecker(allowNativeType, typeChecker) {
  return createChainableTypeChecker(function (props, propName, componentName, location, propFullName) {
    for (var _len2 = arguments.length, rest = new Array(_len2 > 5 ? _len2 - 5 : 0), _key2 = 5; _key2 < _len2; _key2++) {
      rest[_key2 - 5] = arguments[_key2];
    }

    return Object(mobx__WEBPACK_IMPORTED_MODULE_0__[/* untracked */ "G"])(function () {
      if (typeof typeChecker !== "function") {
        return new Error("Property `" + propFullName + "` of component `" + componentName + "` has " + "invalid PropType notation.");
      }

      var error = createObservableTypeCheckerCreator(allowNativeType, "Array")(props, propName, componentName);
      if (error instanceof Error) return error;
      var propValue = props[propName];

      for (var i = 0; i < propValue.length; i++) {
        error = typeChecker.apply(void 0, [propValue, i, componentName, location, propFullName + "[" + i + "]"].concat(rest));
        if (error instanceof Error) return error;
      }

      return null;
    });
  });
}

var observableArray = createObservableTypeCheckerCreator(false, "Array");
var observableArrayOf = createObservableArrayOfTypeChecker.bind(null, false);
var observableMap = createObservableTypeCheckerCreator(false, "Map");
var observableObject = createObservableTypeCheckerCreator(false, "Object");
var arrayOrObservableArray = createObservableTypeCheckerCreator(true, "Array");
var arrayOrObservableArrayOf = createObservableArrayOfTypeChecker.bind(null, true);
var objectOrObservableObject = createObservableTypeCheckerCreator(true, "Object");
var propTypes = /*#__PURE__*/Object.freeze({
  observableArray: observableArray,
  observableArrayOf: observableArrayOf,
  observableMap: observableMap,
  observableObject: observableObject,
  arrayOrObservableArray: arrayOrObservableArray,
  arrayOrObservableArrayOf: arrayOrObservableArrayOf,
  objectOrObservableObject: objectOrObservableObject
});

function isStateless(component) {
  // `function() {}` has prototype, but `() => {}` doesn't
  // `() => {}` via Babel has prototype too.
  return !(component.prototype && component.prototype.render);
}

var symbolId = 0;

function newSymbol(name) {
  if (typeof Symbol === "function") {
    return Symbol(name);
  }

  var symbol = "__$mobx-react ".concat(name, " (").concat(symbolId, ")");
  symbolId++;
  return symbol;
}

var mobxMixins = newSymbol("patchMixins");
var mobxPatchedDefinition = newSymbol("patchedDefinition");

function getMixins(target, methodName) {
  var mixins = target[mobxMixins] = target[mobxMixins] || {};
  var methodMixins = mixins[methodName] = mixins[methodName] || {};
  methodMixins.locks = methodMixins.locks || 0;
  methodMixins.methods = methodMixins.methods || [];
  return methodMixins;
}

function wrapper(realMethod, mixins) {
  var _this = this;

  for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
    args[_key - 2] = arguments[_key];
  } // locks are used to ensure that mixins are invoked only once per invocation, even on recursive calls


  mixins.locks++;

  try {
    var retVal;

    if (realMethod !== undefined && realMethod !== null) {
      retVal = realMethod.apply(this, args);
    }

    return retVal;
  } finally {
    mixins.locks--;

    if (mixins.locks === 0) {
      mixins.methods.forEach(function (mx) {
        mx.apply(_this, args);
      });
    }
  }
}

function wrapFunction(realMethod, mixins) {
  var fn = function fn() {
    for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
      args[_key2] = arguments[_key2];
    }

    wrapper.call.apply(wrapper, [this, realMethod, mixins].concat(args));
  };

  return fn;
}

function patch(target, methodName) {
  var mixins = getMixins(target, methodName);

  for (var _len3 = arguments.length, mixinMethods = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {
    mixinMethods[_key3 - 2] = arguments[_key3];
  }

  for (var _i = 0; _i < mixinMethods.length; _i++) {
    var mixinMethod = mixinMethods[_i];

    if (mixins.methods.indexOf(mixinMethod) < 0) {
      mixins.methods.push(mixinMethod);
    }
  }

  var oldDefinition = Object.getOwnPropertyDescriptor(target, methodName);

  if (oldDefinition && oldDefinition[mobxPatchedDefinition]) {
    // already patched definition, do not repatch
    return;
  }

  var originalMethod = target[methodName];
  var newDefinition = createDefinition(target, methodName, oldDefinition ? oldDefinition.enumerable : undefined, mixins, originalMethod);
  Object.defineProperty(target, methodName, newDefinition);
}

function createDefinition(target, methodName, enumerable, mixins, originalMethod) {
  var _ref;

  var wrappedFunc = wrapFunction(originalMethod, mixins);
  return _ref = {}, _defineProperty(_ref, mobxPatchedDefinition, true), _defineProperty(_ref, "get", function get() {
    return wrappedFunc;
  }), _defineProperty(_ref, "set", function set(value) {
    if (this === target) {
      wrappedFunc = wrapFunction(value, mixins);
    } else {
      // when it is an instance of the prototype/a child prototype patch that particular case again separately
      // since we need to store separate values depending on wether it is the actual instance, the prototype, etc
      // e.g. the method for super might not be the same as the method for the prototype which might be not the same
      // as the method for the instance
      var newDefinition = createDefinition(this, methodName, enumerable, mixins, value);
      Object.defineProperty(this, methodName, newDefinition);
    }
  }), _defineProperty(_ref, "configurable", true), _defineProperty(_ref, "enumerable", enumerable), _ref;
}

var injectorContextTypes = {
  mobxStores: objectOrObservableObject
};
Object.seal(injectorContextTypes);
var proxiedInjectorProps = {
  contextTypes: {
    get: function get() {
      return injectorContextTypes;
    },
    set: function set(_) {
      console.warn("Mobx Injector: you are trying to attach `contextTypes` on an component decorated with `inject` (or `observer`) HOC. Please specify the contextTypes on the wrapped component instead. It is accessible through the `wrappedComponent`");
    },
    configurable: true,
    enumerable: false
  },
  isMobxInjector: {
    value: true,
    writable: true,
    configurable: true,
    enumerable: true
  }
  /**
   * Store Injection
   */

};

function createStoreInjector(grabStoresFn, component, injectNames) {
  var displayName = "inject-" + (component.displayName || component.name || component.constructor && component.constructor.name || "Unknown");
  if (injectNames) displayName += "-with-" + injectNames;

  var Injector = /*#__PURE__*/function (_Component) {
    _inherits(Injector, _Component);

    function Injector() {
      var _getPrototypeOf2;

      var _this;

      _classCallCheck(this, Injector);

      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
        args[_key] = arguments[_key];
      }

      _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(Injector)).call.apply(_getPrototypeOf2, [this].concat(args)));

      _this.storeRef = function (instance) {
        _this.wrappedInstance = instance;
      };

      return _this;
    }

    _createClass(Injector, [{
      key: "render",
      value: function render() {
        // Optimization: it might be more efficient to apply the mapper function *outside* the render method
        // (if the mapper is a function), that could avoid expensive(?) re-rendering of the injector component
        // See this test: 'using a custom injector is not too reactive' in inject.js
        var newProps = {};

        for (var key in this.props) {
          if (this.props.hasOwnProperty(key)) {
            newProps[key] = this.props[key];
          }
        }

        var additionalProps = grabStoresFn(this.context.mobxStores || {}, newProps, this.context) || {};

        for (var _key2 in additionalProps) {
          newProps[_key2] = additionalProps[_key2];
        }

        if (!isStateless(component)) {
          newProps.ref = this.storeRef;
        }

        return Object(react__WEBPACK_IMPORTED_MODULE_1__["createElement"])(component, newProps);
      }
    }]);

    return Injector;
  }(react__WEBPACK_IMPORTED_MODULE_1__["Component"]); // Static fields from component should be visible on the generated Injector


  Injector.displayName = displayName;
  hoistNonReactStatics_cjs(Injector, component);
  Injector.wrappedComponent = component;
  Object.defineProperties(Injector, proxiedInjectorProps);
  return Injector;
}

function grabStoresByName(storeNames) {
  return function (baseStores, nextProps) {
    storeNames.forEach(function (storeName) {
      if (storeName in nextProps // prefer props over stores
      ) return;
      if (!(storeName in baseStores)) throw new Error("MobX injector: Store '" + storeName + "' is not available! Make sure it is provided by some Provider");
      nextProps[storeName] = baseStores[storeName];
    });
    return nextProps;
  };
}
/**
 * higher order component that injects stores to a child.
 * takes either a varargs list of strings, which are stores read from the context,
 * or a function that manually maps the available stores from the context to props:
 * storesToProps(mobxStores, props, context) => newProps
 */


function inject()
/* fn(stores, nextProps) or ...storeNames */
{
  var grabStoresFn;

  if (typeof arguments[0] === "function") {
    grabStoresFn = arguments[0];
    return function (componentClass) {
      var injected = createStoreInjector(grabStoresFn, componentClass);
      injected.isMobxInjector = false; // supress warning
      // mark the Injector as observer, to make it react to expressions in `grabStoresFn`,
      // see #111

      injected = observer(injected);
      injected.isMobxInjector = true; // restore warning

      return injected;
    };
  } else {
    var storeNames = [];

    for (var i = 0; i < arguments.length; i++) {
      storeNames[i] = arguments[i];
    }

    grabStoresFn = grabStoresByName(storeNames);
    return function (componentClass) {
      return createStoreInjector(grabStoresFn, componentClass, storeNames.join("-"));
    };
  }
}

var mobxAdminProperty = mobx__WEBPACK_IMPORTED_MODULE_0__[/* $mobx */ "a"] || "$mobx";
var mobxIsUnmounted = newSymbol("isUnmounted");
/**
 * dev tool support
 */

var isDevtoolsEnabled = false;
var isUsingStaticRendering = false;
var warnedAboutObserverInjectDeprecation = false; // WeakMap<Node, Object>;

var componentByNodeRegistry = typeof WeakMap !== "undefined" ? new WeakMap() : undefined;
var renderReporter = new EventEmitter();
var skipRenderKey = newSymbol("skipRender");
var isForcingUpdateKey = newSymbol("isForcingUpdate"); // Using react-is had some issues (and operates on elements, not on types), see #608 / #609

var ReactForwardRefSymbol = typeof react__WEBPACK_IMPORTED_MODULE_1__["forwardRef"] === "function" && Object(react__WEBPACK_IMPORTED_MODULE_1__["forwardRef"])(function (_props, _ref) {})["$$typeof"];
/**
 * Helper to set `prop` to `this` as non-enumerable (hidden prop)
 * @param target
 * @param prop
 * @param value
 */

function setHiddenProp(target, prop, value) {
  if (!Object.hasOwnProperty.call(target, prop)) {
    Object.defineProperty(target, prop, {
      enumerable: false,
      configurable: true,
      writable: true,
      value: value
    });
  } else {
    target[prop] = value;
  }
}

function findDOMNode$2(component) {
  if (react_dom__WEBPACK_IMPORTED_MODULE_2__["findDOMNode"]) {
    try {
      return Object(react_dom__WEBPACK_IMPORTED_MODULE_2__["findDOMNode"])(component);
    } catch (e) {
      // findDOMNode will throw in react-test-renderer, see:
      // See https://github.com/mobxjs/mobx-react/issues/216
      // Is there a better heuristic?
      return null;
    }
  }

  return null;
}

function reportRendering(component) {
  var node = findDOMNode$2(component);
  if (node && componentByNodeRegistry) componentByNodeRegistry.set(node, component);
  renderReporter.emit({
    event: "render",
    renderTime: component.__$mobRenderEnd - component.__$mobRenderStart,
    totalTime: Date.now() - component.__$mobRenderStart,
    component: component,
    node: node
  });
}

function trackComponents() {
  if (typeof WeakMap === "undefined") throw new Error("[mobx-react] tracking components is not supported in this browser.");
  if (!isDevtoolsEnabled) isDevtoolsEnabled = true;
}

function useStaticRendering(useStaticRendering) {
  isUsingStaticRendering = useStaticRendering;
}
/**
 * Errors reporter
 */


var errorsReporter = new EventEmitter();
/**
 * Utilities
 */

function patch$1(target, funcName) {
  patch(target, funcName, reactiveMixin[funcName]);
}

function shallowEqual(objA, objB) {
  //From: https://github.com/facebook/fbjs/blob/c69904a511b900266935168223063dd8772dfc40/packages/fbjs/src/core/shallowEqual.js
  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;

  for (var i = 0; i < keysA.length; i++) {
    if (!hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {
      return false;
    }
  }

  return true;
}

function is(x, y) {
  // From: https://github.com/facebook/fbjs/blob/c69904a511b900266935168223063dd8772dfc40/packages/fbjs/src/core/shallowEqual.js
  if (x === y) {
    return x !== 0 || 1 / x === 1 / y;
  } else {
    return x !== x && y !== y;
  }
}

function makeComponentReactive(render) {
  var _this2 = this;

  if (isUsingStaticRendering === true) return render.call(this);

  function reactiveRender() {
    var _this = this;

    isRenderingPending = false;
    var exception = undefined;
    var rendering = undefined;
    reaction.track(function () {
      if (isDevtoolsEnabled) {
        _this.__$mobRenderStart = Date.now();
      }

      try {
        rendering = Object(mobx__WEBPACK_IMPORTED_MODULE_0__[/* _allowStateChanges */ "f"])(false, baseRender);
      } catch (e) {
        exception = e;
      }

      if (isDevtoolsEnabled) {
        _this.__$mobRenderEnd = Date.now();
      }
    });

    if (exception) {
      errorsReporter.emit(exception);
      throw exception;
    }

    return rendering;
  } // Generate friendly name for debugging


  var initialName = this.displayName || this.name || this.constructor && (this.constructor.displayName || this.constructor.name) || "<component>";
  var rootNodeID = this._reactInternalInstance && this._reactInternalInstance._rootNodeID || this._reactInternalInstance && this._reactInternalInstance._debugID || this._reactInternalFiber && this._reactInternalFiber._debugID;
  /**
   * If props are shallowly modified, react will render anyway,
   * so atom.reportChanged() should not result in yet another re-render
   */

  setHiddenProp(this, skipRenderKey, false);
  /**
   * forceUpdate will re-assign this.props. We don't want that to cause a loop,
   * so detect these changes
   */

  setHiddenProp(this, isForcingUpdateKey, false); // wire up reactive render

  var baseRender = render.bind(this);
  var isRenderingPending = false;
  var reaction = new mobx__WEBPACK_IMPORTED_MODULE_0__[/* Reaction */ "e"]("".concat(initialName, "#").concat(rootNodeID, ".render()"), function () {
    if (!isRenderingPending) {
      // N.B. Getting here *before mounting* means that a component constructor has side effects (see the relevant test in misc.js)
      // This unidiomatic React usage but React will correctly warn about this so we continue as usual
      // See #85 / Pull #44
      isRenderingPending = true;
      if (typeof _this2.componentWillReact === "function") _this2.componentWillReact(); // TODO: wrap in action?

      if (_this2[mobxIsUnmounted] !== true) {
        // If we are unmounted at this point, componentWillReact() had a side effect causing the component to unmounted
        // TODO: remove this check? Then react will properly warn about the fact that this should not happen? See #73
        // However, people also claim this might happen during unit tests..
        var hasError = true;

        try {
          setHiddenProp(_this2, isForcingUpdateKey, true);
          if (!_this2[skipRenderKey]) react__WEBPACK_IMPORTED_MODULE_1__["Component"].prototype.forceUpdate.call(_this2);
          hasError = false;
        } finally {
          setHiddenProp(_this2, isForcingUpdateKey, false);
          if (hasError) reaction.dispose();
        }
      }
    }
  });
  reaction.reactComponent = this;
  reactiveRender[mobxAdminProperty] = reaction;
  this.render = reactiveRender;
  return reactiveRender.call(this);
}
/**
 * ReactiveMixin
 */


var reactiveMixin = {
  componentWillUnmount: function componentWillUnmount() {
    if (isUsingStaticRendering === true) return;
    this.render[mobxAdminProperty] && this.render[mobxAdminProperty].dispose();
    this[mobxIsUnmounted] = true;

    if (isDevtoolsEnabled) {
      var node = findDOMNode$2(this);

      if (node && componentByNodeRegistry) {
        componentByNodeRegistry.delete(node);
      }

      renderReporter.emit({
        event: "destroy",
        component: this,
        node: node
      });
    }
  },
  componentDidMount: function componentDidMount() {
    if (isDevtoolsEnabled) {
      reportRendering(this);
    }
  },
  componentDidUpdate: function componentDidUpdate() {
    if (isDevtoolsEnabled) {
      reportRendering(this);
    }
  },
  shouldComponentUpdate: function shouldComponentUpdate(nextProps, nextState) {
    if (isUsingStaticRendering) {
      console.warn("[mobx-react] It seems that a re-rendering of a React component is triggered while in static (server-side) mode. Please make sure components are rendered only once server-side.");
    } // update on any state changes (as is the default)


    if (this.state !== nextState) {
      return true;
    } // update if props are shallowly not equal, inspired by PureRenderMixin
    // we could return just 'false' here, and avoid the `skipRender` checks etc
    // however, it is nicer if lifecycle events are triggered like usually,
    // so we return true here if props are shallowly modified.


    return !shallowEqual(this.props, nextProps);
  }
};

function makeObservableProp(target, propName) {
  var valueHolderKey = newSymbol("reactProp_".concat(propName, "_valueHolder"));
  var atomHolderKey = newSymbol("reactProp_".concat(propName, "_atomHolder"));

  function getAtom() {
    if (!this[atomHolderKey]) {
      setHiddenProp(this, atomHolderKey, Object(mobx__WEBPACK_IMPORTED_MODULE_0__[/* createAtom */ "n"])("reactive " + propName));
    }

    return this[atomHolderKey];
  }

  Object.defineProperty(target, propName, {
    configurable: true,
    enumerable: true,
    get: function get() {
      getAtom.call(this).reportObserved();
      return this[valueHolderKey];
    },
    set: function set(v) {
      if (!this[isForcingUpdateKey] && !shallowEqual(this[valueHolderKey], v)) {
        setHiddenProp(this, valueHolderKey, v);
        setHiddenProp(this, skipRenderKey, true);
        getAtom.call(this).reportChanged();
        setHiddenProp(this, skipRenderKey, false);
      } else {
        setHiddenProp(this, valueHolderKey, v);
      }
    }
  });
}
/**
 * Observer function / decorator
 */


function observer(arg1, arg2) {
  if (typeof arg1 === "string") {
    throw new Error("Store names should be provided as array");
  }

  if (Array.isArray(arg1)) {
    // TODO: remove in next major
    // component needs stores
    if (!warnedAboutObserverInjectDeprecation) {
      warnedAboutObserverInjectDeprecation = true;
      console.warn('Mobx observer: Using observer to inject stores is deprecated since 4.0. Use `@inject("store1", "store2") @observer ComponentClass` or `inject("store1", "store2")(observer(componentClass))` instead of `@observer(["store1", "store2"]) ComponentClass`');
    }

    if (!arg2) {
      // invoked as decorator
      return function (componentClass) {
        return observer(arg1, componentClass);
      };
    } else {
      return inject.apply(null, arg1)(observer(arg2));
    }
  }

  var componentClass = arg1;

  if (componentClass.isMobxInjector === true) {
    console.warn("Mobx observer: You are trying to use 'observer' on a component that already has 'inject'. Please apply 'observer' before applying 'inject'");
  }

  if (componentClass.__proto__ === react__WEBPACK_IMPORTED_MODULE_1__["PureComponent"]) {
    console.warn("Mobx observer: You are using 'observer' on React.PureComponent. These two achieve two opposite goals and should not be used together");
  } // Unwrap forward refs into `<Observer>` component
  // we need to unwrap the render, because it is the inner render that needs to be tracked,
  // not the ForwardRef HoC


  if (ReactForwardRefSymbol && componentClass["$$typeof"] === ReactForwardRefSymbol) {
    var _baseRender = componentClass.render;
    if (typeof _baseRender !== "function") throw new Error("render property of ForwardRef was not a function"); // TODO: do we need to hoist statics from baseRender to the forward ref?

    return Object(react__WEBPACK_IMPORTED_MODULE_1__["forwardRef"])(function ObserverForwardRef() {
      var _arguments = arguments;
      return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(Observer, null, function () {
        return _baseRender.apply(undefined, _arguments);
      });
    });
  } // Stateless function component:
  // If it is function but doesn't seem to be a react class constructor,
  // wrap it to a react class automatically


  if (typeof componentClass === "function" && (!componentClass.prototype || !componentClass.prototype.render) && !componentClass.isReactClass && !react__WEBPACK_IMPORTED_MODULE_1__["Component"].isPrototypeOf(componentClass)) {
    var _class, _temp;

    var observerComponent = observer((_temp = _class = /*#__PURE__*/function (_Component) {
      _inherits(_class, _Component);

      function _class() {
        _classCallCheck(this, _class);

        return _possibleConstructorReturn(this, _getPrototypeOf(_class).apply(this, arguments));
      }

      _createClass(_class, [{
        key: "render",
        value: function render() {
          return componentClass.call(this, this.props, this.context);
        }
      }]);

      return _class;
    }(react__WEBPACK_IMPORTED_MODULE_1__["Component"]), _class.displayName = componentClass.displayName || componentClass.name, _class.contextTypes = componentClass.contextTypes, _class.propTypes = componentClass.propTypes, _class.defaultProps = componentClass.defaultProps, _temp));
    hoistNonReactStatics_cjs(observerComponent, componentClass);
    return observerComponent;
  }

  if (!componentClass) {
    throw new Error("Please pass a valid component to 'observer'");
  }

  var target = componentClass.prototype || componentClass;
  mixinLifecycleEvents(target);
  componentClass.isMobXReactObserver = true;
  makeObservableProp(target, "props");
  makeObservableProp(target, "state");
  var baseRender = target.render;

  target.render = function () {
    return makeComponentReactive.call(this, baseRender);
  };

  return componentClass;
}

function mixinLifecycleEvents(target) {
  ["componentDidMount", "componentWillUnmount", "componentDidUpdate"].forEach(function (funcName) {
    patch$1(target, funcName);
  });

  if (!target.shouldComponentUpdate) {
    target.shouldComponentUpdate = reactiveMixin.shouldComponentUpdate;
  } else {
    if (target.shouldComponentUpdate !== reactiveMixin.shouldComponentUpdate) {
      // TODO: make throw in next major
      console.warn("Use `shouldComponentUpdate` in an `observer` based component breaks the behavior of `observer` and might lead to unexpected results. Manually implementing `sCU` should not be needed when using mobx-react.");
    }
  }
}

var Observer = observer(function (_ref2) {
  var children = _ref2.children,
      observerInject = _ref2.inject,
      render = _ref2.render;
  var component = children || render;

  if (typeof component === "undefined") {
    return null;
  }

  if (!observerInject) {
    return component();
  } // TODO: remove in next major


  console.warn("<Observer inject=.../> is no longer supported. Please use inject on the enclosing component instead");
  var InjectComponent = inject(observerInject)(component);
  return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(InjectComponent, null);
});
Observer.displayName = "Observer";

var ObserverPropsCheck = function ObserverPropsCheck(props, key, componentName, location, propFullName) {
  var extraKey = key === "children" ? "render" : "children";

  if (typeof props[key] === "function" && typeof props[extraKey] === "function") {
    return new Error("Invalid prop,do not use children and render in the same time in`" + componentName);
  }

  if (typeof props[key] === "function" || typeof props[extraKey] === "function") {
    return;
  }

  return new Error("Invalid prop `" + propFullName + "` of type `" + _typeof(props[key]) + "` supplied to" + " `" + componentName + "`, expected `function`.");
};

Observer.propTypes = {
  render: ObserverPropsCheck,
  children: ObserverPropsCheck
};
/**
 * 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 componentWillMount() {
  // Call this.constructor.gDSFP to support sub-classes.
  var state = this.constructor.getDerivedStateFromProps(this.props, this.state);

  if (state !== null && state !== undefined) {
    this.setState(state);
  }
}

function componentWillReceiveProps(nextProps) {
  // Call this.constructor.gDSFP to support sub-classes.
  // Use the setState() updater to ensure state isn't stale in certain edge cases.
  function updater(prevState) {
    var state = this.constructor.getDerivedStateFromProps(nextProps, prevState);
    return state !== null && state !== undefined ? state : null;
  } // Binding "this" is important for shallow renderer support.


  this.setState(updater.bind(this));
}

function componentWillUpdate(nextProps, nextState) {
  try {
    var prevProps = this.props;
    var prevState = this.state;
    this.props = nextProps;
    this.state = nextState;
    this.__reactInternalSnapshotFlag = true;
    this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(prevProps, prevState);
  } finally {
    this.props = prevProps;
    this.state = prevState;
  }
} // React may warn about cWM/cWRP/cWU methods being deprecated.
// Add a flag to suppress these warnings for this special case.


componentWillMount.__suppressDeprecationWarning = true;
componentWillReceiveProps.__suppressDeprecationWarning = true;
componentWillUpdate.__suppressDeprecationWarning = true;

function polyfill(Component$$1) {
  var prototype = Component$$1.prototype;

  if (!prototype || !prototype.isReactComponent) {
    throw new Error('Can only polyfill class components');
  }

  if (typeof Component$$1.getDerivedStateFromProps !== 'function' && typeof prototype.getSnapshotBeforeUpdate !== 'function') {
    return Component$$1;
  } // If new component APIs are defined, "unsafe" lifecycles won't be called.
  // Error if any of these lifecycles are present,
  // Because they would work differently between older and newer (16.3+) versions of React.


  var foundWillMountName = null;
  var foundWillReceivePropsName = null;
  var foundWillUpdateName = null;

  if (typeof prototype.componentWillMount === 'function') {
    foundWillMountName = 'componentWillMount';
  } else if (typeof prototype.UNSAFE_componentWillMount === 'function') {
    foundWillMountName = 'UNSAFE_componentWillMount';
  }

  if (typeof prototype.componentWillReceiveProps === 'function') {
    foundWillReceivePropsName = 'componentWillReceiveProps';
  } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') {
    foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';
  }

  if (typeof prototype.componentWillUpdate === 'function') {
    foundWillUpdateName = 'componentWillUpdate';
  } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') {
    foundWillUpdateName = 'UNSAFE_componentWillUpdate';
  }

  if (foundWillMountName !== null || foundWillReceivePropsName !== null || foundWillUpdateName !== null) {
    var componentName = Component$$1.displayName || Component$$1.name;
    var newApiName = typeof Component$$1.getDerivedStateFromProps === 'function' ? 'getDerivedStateFromProps()' : 'getSnapshotBeforeUpdate()';
    throw Error('Unsafe legacy lifecycles will not be called for components using new component APIs.\n\n' + componentName + ' uses ' + newApiName + ' but also contains the following legacy lifecycles:' + (foundWillMountName !== null ? '\n  ' + foundWillMountName : '') + (foundWillReceivePropsName !== null ? '\n  ' + foundWillReceivePropsName : '') + (foundWillUpdateName !== null ? '\n  ' + foundWillUpdateName : '') + '\n\nThe above lifecycles should be removed. Learn more about this warning here:\n' + 'https://fb.me/react-async-component-lifecycle-hooks');
  } // React <= 16.2 does not support static getDerivedStateFromProps.
  // As a workaround, use cWM and cWRP to invoke the new static lifecycle.
  // Newer versions of React will ignore these lifecycles if gDSFP exists.


  if (typeof Component$$1.getDerivedStateFromProps === 'function') {
    prototype.componentWillMount = componentWillMount;
    prototype.componentWillReceiveProps = componentWillReceiveProps;
  } // React <= 16.2 does not support getSnapshotBeforeUpdate.
  // As a workaround, use cWU to invoke the new lifecycle.
  // Newer versions of React will ignore that lifecycle if gSBU exists.


  if (typeof prototype.getSnapshotBeforeUpdate === 'function') {
    if (typeof prototype.componentDidUpdate !== 'function') {
      throw new Error('Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype');
    }

    prototype.componentWillUpdate = componentWillUpdate;
    var componentDidUpdate = prototype.componentDidUpdate;

    prototype.componentDidUpdate = function componentDidUpdatePolyfill(prevProps, prevState, maybeSnapshot) {
      // 16.3+ will not execute our will-update method;
      // It will pass a snapshot value to did-update though.
      // Older versions will require our polyfilled will-update value.
      // We need to handle both cases, but can't just check for the presence of "maybeSnapshot",
      // Because for <= 15.x versions this might be a "prevContext" object.
      // We also can't just check "__reactInternalSnapshot",
      // Because get-snapshot might return a falsy value.
      // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior.
      var snapshot = this.__reactInternalSnapshotFlag ? this.__reactInternalSnapshot : maybeSnapshot;
      componentDidUpdate.call(this, prevProps, prevState, snapshot);
    };
  }

  return Component$$1;
}

var specialReactKeys = {
  children: true,
  key: true,
  ref: true
};

var Provider = /*#__PURE__*/function (_Component) {
  _inherits(Provider, _Component);

  function Provider(props, context) {
    var _this;

    _classCallCheck(this, Provider);

    _this = _possibleConstructorReturn(this, _getPrototypeOf(Provider).call(this, props, context));
    _this.state = {};
    copyStores(props, _this.state);
    return _this;
  }

  _createClass(Provider, [{
    key: "render",
    value: function render() {
      return react__WEBPACK_IMPORTED_MODULE_1__["Children"].only(this.props.children);
    }
  }, {
    key: "getChildContext",
    value: function getChildContext() {
      var stores = {}; // inherit stores

      copyStores(this.context.mobxStores, stores); // add own stores

      copyStores(this.props, stores);
      return {
        mobxStores: stores
      };
    }
  }], [{
    key: "getDerivedStateFromProps",
    value: function getDerivedStateFromProps(nextProps, prevState) {
      if (!nextProps) return null;
      if (!prevState) return nextProps; // Maybe this warning is too aggressive?

      if (Object.keys(nextProps).filter(validStoreName).length !== Object.keys(prevState).filter(validStoreName).length) console.warn("MobX Provider: The set of provided stores has changed. Please avoid changing stores as the change might not propagate to all children");
      if (!nextProps.suppressChangedStoreWarning) for (var key in nextProps) {
        if (validStoreName(key) && prevState[key] !== nextProps[key]) console.warn("MobX Provider: Provided store '" + key + "' has changed. Please avoid replacing stores as the change might not propagate to all children");
      }
      return nextProps;
    }
  }]);

  return Provider;
}(react__WEBPACK_IMPORTED_MODULE_1__["Component"]);

Provider.contextTypes = {
  mobxStores: objectOrObservableObject
};
Provider.childContextTypes = {
  mobxStores: objectOrObservableObject.isRequired
};

function copyStores(from, to) {
  if (!from) return;

  for (var key in from) {
    if (validStoreName(key)) to[key] = from[key];
  }
}

function validStoreName(key) {
  return !specialReactKeys[key] && key !== "suppressChangedStoreWarning";
} // TODO: kill in next major


polyfill(Provider);
var storeKey = newSymbol("disposeOnUnmount");

function runDisposersOnWillUnmount() {
  var _this = this;

  if (!this[storeKey]) {
    // when disposeOnUnmount is only set to some instances of a component it will still patch the prototype
    return;
  }

  this[storeKey].forEach(function (propKeyOrFunction) {
    var prop = typeof propKeyOrFunction === "string" ? _this[propKeyOrFunction] : propKeyOrFunction;

    if (prop !== undefined && prop !== null) {
      if (typeof prop !== "function") {
        throw new Error("[mobx-react] disposeOnUnmount only works on functions such as disposers returned by reactions, autorun, etc.");
      }

      prop();
    }
  });
  this[storeKey] = [];
}

function disposeOnUnmount(target, propertyKeyOrFunction) {
  if (Array.isArray(propertyKeyOrFunction)) {
    return propertyKeyOrFunction.map(function (fn) {
      return disposeOnUnmount(target, fn);
    });
  }

  if (!target instanceof react__WEBPACK_IMPORTED_MODULE_1__["Component"]) {
    throw new Error("[mobx-react] disposeOnUnmount only works on class based React components.");
  }

  if (typeof propertyKeyOrFunction !== "string" && typeof propertyKeyOrFunction !== "function") {
    throw new Error("[mobx-react] disposeOnUnmount only works if the parameter is either a property key or a function.");
  } // add property key / function we want run (disposed) to the store


  var componentWasAlreadyModified = !!target[storeKey];
  var store = target[storeKey] || (target[storeKey] = []);
  store.push(propertyKeyOrFunction); // tweak the component class componentWillUnmount if not done already

  if (!componentWasAlreadyModified) {
    patch(target, "componentWillUnmount", runDisposersOnWillUnmount);
  } // return the disposer as is if invoked as a non decorator


  if (typeof propertyKeyOrFunction !== "string") {
    return propertyKeyOrFunction;
  }
}

if (!react__WEBPACK_IMPORTED_MODULE_1__["Component"]) throw new Error("mobx-react requires React to be available");
if (!mobx__WEBPACK_IMPORTED_MODULE_0__[/* spy */ "E"]) throw new Error("mobx-react requires mobx to be available");
if (typeof react_dom__WEBPACK_IMPORTED_MODULE_2__["unstable_batchedUpdates"] === "function") Object(mobx__WEBPACK_IMPORTED_MODULE_0__[/* configure */ "m"])({
  reactionScheduler: react_dom__WEBPACK_IMPORTED_MODULE_2__["unstable_batchedUpdates"]
});

var onError = function onError(fn) {
  return errorsReporter.on(fn);
};

if ((typeof __MOBX_DEVTOOLS_GLOBAL_HOOK__ === "undefined" ? "undefined" : _typeof(__MOBX_DEVTOOLS_GLOBAL_HOOK__)) === "object") {
  var mobx = {
    spy: mobx__WEBPACK_IMPORTED_MODULE_0__[/* spy */ "E"],
    extras: {
      getDebugName: mobx__WEBPACK_IMPORTED_MODULE_0__[/* getDebugName */ "s"]
    }
  };
  var mobxReact = {
    renderReporter: renderReporter,
    componentByNodeRegistry: componentByNodeRegistry,
    componentByNodeRegistery: componentByNodeRegistry,
    trackComponents: trackComponents
  };

  __MOBX_DEVTOOLS_GLOBAL_HOOK__.injectMobxReact(mobxReact, mobx);
}



/***/ }),

/***/ "ol2I":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("path", {
  d: "M44.37 39.036L25.752 5.186a2 2 0 0 0-3.5 0L3.63 39.036A2 2 0 0 0 5.383 42h37.234a2 2 0 0 0 1.753-2.964zM24 39a3 3 0 1 1 3-3 3 3 0 0 1-3 3zm-2.4-10V15a1 1 0 0 1 1-1h2.8a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1h-2.8a1 1 0 0 1-1-1z"
}));

/***/ }),

/***/ "olUY":
/***/ (function(module, exports, __webpack_require__) {

/**
 * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined
 * in FIPS 180-2
 * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.
 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
 *
 */
var inherits = __webpack_require__("P7XM");

var Hash = __webpack_require__("tnIz");

var Buffer = __webpack_require__("hwdV").Buffer;

var K = [0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5, 0x3956C25B, 0x59F111F1, 0x923F82A4, 0xAB1C5ED5, 0xD807AA98, 0x12835B01, 0x243185BE, 0x550C7DC3, 0x72BE5D74, 0x80DEB1FE, 0x9BDC06A7, 0xC19BF174, 0xE49B69C1, 0xEFBE4786, 0x0FC19DC6, 0x240CA1CC, 0x2DE92C6F, 0x4A7484AA, 0x5CB0A9DC, 0x76F988DA, 0x983E5152, 0xA831C66D, 0xB00327C8, 0xBF597FC7, 0xC6E00BF3, 0xD5A79147, 0x06CA6351, 0x14292967, 0x27B70A85, 0x2E1B2138, 0x4D2C6DFC, 0x53380D13, 0x650A7354, 0x766A0ABB, 0x81C2C92E, 0x92722C85, 0xA2BFE8A1, 0xA81A664B, 0xC24B8B70, 0xC76C51A3, 0xD192E819, 0xD6990624, 0xF40E3585, 0x106AA070, 0x19A4C116, 0x1E376C08, 0x2748774C, 0x34B0BCB5, 0x391C0CB3, 0x4ED8AA4A, 0x5B9CCA4F, 0x682E6FF3, 0x748F82EE, 0x78A5636F, 0x84C87814, 0x8CC70208, 0x90BEFFFA, 0xA4506CEB, 0xBEF9A3F7, 0xC67178F2];
var W = new Array(64);

function Sha256() {
  this.init();
  this._w = W; // new Array(64)

  Hash.call(this, 64, 56);
}

inherits(Sha256, Hash);

Sha256.prototype.init = function () {
  this._a = 0x6a09e667;
  this._b = 0xbb67ae85;
  this._c = 0x3c6ef372;
  this._d = 0xa54ff53a;
  this._e = 0x510e527f;
  this._f = 0x9b05688c;
  this._g = 0x1f83d9ab;
  this._h = 0x5be0cd19;
  return this;
};

function ch(x, y, z) {
  return z ^ x & (y ^ z);
}

function maj(x, y, z) {
  return x & y | z & (x | y);
}

function sigma0(x) {
  return (x >>> 2 | x << 30) ^ (x >>> 13 | x << 19) ^ (x >>> 22 | x << 10);
}

function sigma1(x) {
  return (x >>> 6 | x << 26) ^ (x >>> 11 | x << 21) ^ (x >>> 25 | x << 7);
}

function gamma0(x) {
  return (x >>> 7 | x << 25) ^ (x >>> 18 | x << 14) ^ x >>> 3;
}

function gamma1(x) {
  return (x >>> 17 | x << 15) ^ (x >>> 19 | x << 13) ^ x >>> 10;
}

Sha256.prototype._update = function (M) {
  var W = this._w;
  var a = this._a | 0;
  var b = this._b | 0;
  var c = this._c | 0;
  var d = this._d | 0;
  var e = this._e | 0;
  var f = this._f | 0;
  var g = this._g | 0;
  var h = this._h | 0;

  for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4);

  for (; i < 64; ++i) W[i] = gamma1(W[i - 2]) + W[i - 7] + gamma0(W[i - 15]) + W[i - 16] | 0;

  for (var j = 0; j < 64; ++j) {
    var T1 = h + sigma1(e) + ch(e, f, g) + K[j] + W[j] | 0;
    var T2 = sigma0(a) + maj(a, b, c) | 0;
    h = g;
    g = f;
    f = e;
    e = d + T1 | 0;
    d = c;
    c = b;
    b = a;
    a = T1 + T2 | 0;
  }

  this._a = a + this._a | 0;
  this._b = b + this._b | 0;
  this._c = c + this._c | 0;
  this._d = d + this._d | 0;
  this._e = e + this._e | 0;
  this._f = f + this._f | 0;
  this._g = g + this._g | 0;
  this._h = h + this._h | 0;
};

Sha256.prototype._hash = function () {
  var H = Buffer.allocUnsafe(32);
  H.writeInt32BE(this._a, 0);
  H.writeInt32BE(this._b, 4);
  H.writeInt32BE(this._c, 8);
  H.writeInt32BE(this._d, 12);
  H.writeInt32BE(this._e, 16);
  H.writeInt32BE(this._f, 20);
  H.writeInt32BE(this._g, 24);
  H.writeInt32BE(this._h, 28);
  return H;
};

module.exports = Sha256;

/***/ }),

/***/ "om/C":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return DownloadProgress; });
var DownloadProgress;
(function (DownloadProgress) {
    DownloadProgress["Done"] = "done";
    DownloadProgress["Failed"] = "failed";
    DownloadProgress["Inprogress"] = "inprogress";
    DownloadProgress["Start"] = "start";
    DownloadProgress["Waiting"] = "waiting";
})(DownloadProgress || (DownloadProgress = {}));


/***/ }),

/***/ "omcR":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _autobindDecorator = _interopRequireDefault(__webpack_require__("gKdT"));

var _events = __webpack_require__("mdZ3");

var _createId = _interopRequireDefault(__webpack_require__("b7KY"));

var _filterDOMProps = _interopRequireDefault(__webpack_require__("Cv/Q"));

var _Menu = __webpack_require__("kzNO");

var _OverlayTrigger = _interopRequireDefault(__webpack_require__("uYrR"));

var _propTypes = _interopRequireDefault(__webpack_require__("17x9"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

var _reactDom = _interopRequireDefault(__webpack_require__("i8i4"));

const _excluded = ["alignRight", "closeOnSelect", "flip", "trigger", "boundariesElement", "onLongClick"];

var _class, _class2, _temp;

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

let Dropdown = (0, _autobindDecorator.default)(_class = (_temp = _class2 = class Dropdown extends _react.default.Component {
  constructor(props) {
    super(props);
    this.dropdownId = (0, _createId.default)();
    this.state = {
      open: false
    };
  }

  onOpen(e) {
    this.setState({
      open: true
    });

    if (this.props.onOpen) {
      this.props.onOpen(e);
    }
  }

  onClose(e) {
    this.setState({
      open: false
    });

    if (e && (e.type === 'keyup' || e.type === 'keydown')) {
      this.restoreFocusOnClose();
    }

    if (this.props.onClose) {
      this.props.onClose(e);
    }
  }

  onMenuClose() {
    this.overlayTrigger.hide();
    this.restoreFocusOnClose();
  }

  onSelect(...args) {
    if (this.props.closeOnSelect) {
      this.onMenuClose();
    }

    if (this.props.onSelect) {
      this.props.onSelect(...args);
    }
  }

  onClick(e) {
    if (this.props.onClick) {
      this.props.onClick(e);
    }
  }

  onKeyDownTrigger(e) {
    if (typeof e.isDefaultPrevented === 'function' && e.isDefaultPrevented() || e.defaultPrevented) {
      return;
    }

    if (this.triggerRef) {
      switch (e.key) {
        case 'Enter':
        case 'ArrowDown':
        case ' ':
          e.preventDefault();
          e.stopPropagation();
          this.triggerRef.onClick();
          break;
      }
    }
  }

  restoreFocusOnClose() {
    const node = _reactDom.default.findDOMNode(this.triggerRef);

    if (node && node.focus) {
      node.focus();
    }
  }

  render() {
    const _this$props = this.props,
          {
      alignRight,
      closeOnSelect,
      flip,
      trigger,
      boundariesElement,
      onLongClick
    } = _this$props,
          otherProps = _objectWithoutProperties(_this$props, _excluded);

    const children = _react.default.Children.toArray(this.props.children);

    const triggerChild = children.find(c => c.props.dropdownTrigger) || children[0];
    const triggerId = triggerChild.props.id || this.dropdownId + '-trigger';
    const menu = children.find(c => c.props.dropdownMenu || c.type === _Menu.Menu) || children[1];
    const menuId = menu.props.id || this.dropdownId + '-menu';
    delete otherProps.onOpen;
    delete otherProps.onClose;
    delete otherProps.onClick;
    return /*#__PURE__*/_react.default.createElement("div", (0, _filterDOMProps.default)(otherProps), children.map((child, index) => {
      if (child === triggerChild) {
        return /*#__PURE__*/_react.default.createElement(_OverlayTrigger.default, {
          boundariesElement: boundariesElement,
          target: this,
          trigger: trigger,
          placement: alignRight ? 'bottom right' : 'bottom left',
          ref: t => this.overlayTrigger = t,
          onLongClick: onLongClick,
          onClick: this.onClick,
          onShow: this.onOpen,
          closeOnSelect: closeOnSelect,
          key: index,
          onHide: this.onClose,
          flip: flip,
          delayHide: 0
        }, /*#__PURE__*/_react.default.cloneElement(triggerChild, {
          id: triggerId,
          'aria-haspopup': triggerChild.props['aria-haspopup'] || 'true',
          'aria-expanded': this.state.open || null,
          'aria-controls': this.state.open ? menuId : null,
          onKeyDown: (0, _events.chain)(triggerChild.props.onKeyDown, this.onKeyDownTrigger),
          ref: node => {
            this.triggerRef = node;
            const {
              ref
            } = triggerChild;

            if (typeof ref === 'function') {
              ref(node);
            }
          }
        }), /*#__PURE__*/_react.default.cloneElement(menu, {
          id: menuId,
          'aria-labelledby': menu.props['aria-labelledby'] || triggerId,
          onClose: this.onMenuClose,
          onSelect: this.onSelect,
          autoFocus: true,
          closeOnSelect
        }));
      } else if (child !== menu) {
        return child;
      }
    }));
  }

}, _class2.propTypes = {
  /**
   * If true, dropdown will close on selection of an item
   */
  closeOnSelect: _propTypes.default.bool,

  /**
   * Determines what kind of action opens the menu
   */
  trigger: _propTypes.default.oneOf(['click', 'longClick', 'hover', 'focus']),

  /**
   * Callback for when the dropdown is opened
   */
  onOpen: _propTypes.default.func,

  /**
   * Callback for when the dropdown is closed
   */
  onClose: _propTypes.default.func,

  /**
   * Callback for when an item is selected from the dropdown
   */
  onSelect: _propTypes.default.func,

  /**
   * Aligns the dropdown to the right or left of the button opening the dropdown
   */
  alignRight: _propTypes.default.bool,

  /**
   * Sets whether the overlay is flippable
   */
  flip: _propTypes.default.bool
}, _class2.defaultProps = {
  closeOnSelect: true,
  trigger: 'click'
}, _temp)) || _class;

exports.default = Dropdown;

/***/ }),

/***/ "oqCq":
/***/ (function(module, exports, __webpack_require__) {

!function (t, e) {
   true ? module.exports = e() : undefined;
}(this, function () {
  "use strict";

  return [{
    locale: "fi",
    pluralRuleFunction: function (t, e) {
      var i = !String(t).split(".")[1];
      return e ? "other" : 1 == t && i ? "one" : "other";
    },
    fields: {
      year: {
        displayName: "vuosi",
        relative: {
          0: "tänä vuonna",
          1: "ensi vuonna",
          "-1": "viime vuonna"
        },
        relativeTime: {
          future: {
            one: "{0} vuoden päästä",
            other: "{0} vuoden päästä"
          },
          past: {
            one: "{0} vuosi sitten",
            other: "{0} vuotta sitten"
          }
        }
      },
      "year-short": {
        displayName: "v",
        relative: {
          0: "tänä v",
          1: "ensi v",
          "-1": "viime v"
        },
        relativeTime: {
          future: {
            one: "{0} v päästä",
            other: "{0} v päästä"
          },
          past: {
            one: "{0} v sitten",
            other: "{0} v sitten"
          }
        }
      },
      month: {
        displayName: "kuukausi",
        relative: {
          0: "tässä kuussa",
          1: "ensi kuussa",
          "-1": "viime kuussa"
        },
        relativeTime: {
          future: {
            one: "{0} kuukauden päästä",
            other: "{0} kuukauden päästä"
          },
          past: {
            one: "{0} kuukausi sitten",
            other: "{0} kuukautta sitten"
          }
        }
      },
      "month-short": {
        displayName: "kk",
        relative: {
          0: "tässä kk",
          1: "ensi kk",
          "-1": "viime kk"
        },
        relativeTime: {
          future: {
            one: "{0} kk päästä",
            other: "{0} kk päästä"
          },
          past: {
            one: "{0} kk sitten",
            other: "{0} kk sitten"
          }
        }
      },
      day: {
        displayName: "päivä",
        relative: {
          0: "tänään",
          1: "huomenna",
          2: "ylihuomenna",
          "-2": "toissa päivänä",
          "-1": "eilen"
        },
        relativeTime: {
          future: {
            one: "{0} päivän päästä",
            other: "{0} päivän päästä"
          },
          past: {
            one: "{0} päivä sitten",
            other: "{0} päivää sitten"
          }
        }
      },
      "day-short": {
        displayName: "pv",
        relative: {
          0: "tänään",
          1: "huom.",
          2: "ylihuom.",
          "-2": "toissap.",
          "-1": "eilen"
        },
        relativeTime: {
          future: {
            one: "{0} pv päästä",
            other: "{0} pv päästä"
          },
          past: {
            one: "{0} pv sitten",
            other: "{0} pv sitten"
          }
        }
      },
      hour: {
        displayName: "tunti",
        relative: {
          0: "tämän tunnin aikana"
        },
        relativeTime: {
          future: {
            one: "{0} tunnin päästä",
            other: "{0} tunnin päästä"
          },
          past: {
            one: "{0} tunti sitten",
            other: "{0} tuntia sitten"
          }
        }
      },
      "hour-short": {
        displayName: "t",
        relative: {
          0: "tunnin sisällä"
        },
        relativeTime: {
          future: {
            one: "{0} t päästä",
            other: "{0} t päästä"
          },
          past: {
            one: "{0} t sitten",
            other: "{0} t sitten"
          }
        }
      },
      minute: {
        displayName: "minuutti",
        relative: {
          0: "tämän minuutin aikana"
        },
        relativeTime: {
          future: {
            one: "{0} minuutin päästä",
            other: "{0} minuutin päästä"
          },
          past: {
            one: "{0} minuutti sitten",
            other: "{0} minuuttia sitten"
          }
        }
      },
      "minute-short": {
        displayName: "min",
        relative: {
          0: "minuutin sisällä"
        },
        relativeTime: {
          future: {
            one: "{0} min päästä",
            other: "{0} min päästä"
          },
          past: {
            one: "{0} min sitten",
            other: "{0} min sitten"
          }
        }
      },
      second: {
        displayName: "sekunti",
        relative: {
          0: "nyt"
        },
        relativeTime: {
          future: {
            one: "{0} sekunnin päästä",
            other: "{0} sekunnin päästä"
          },
          past: {
            one: "{0} sekunti sitten",
            other: "{0} sekuntia sitten"
          }
        }
      },
      "second-short": {
        displayName: "s",
        relative: {
          0: "nyt"
        },
        relativeTime: {
          future: {
            one: "{0} s päästä",
            other: "{0} s päästä"
          },
          past: {
            one: "{0} s sitten",
            other: "{0} s sitten"
          }
        }
      }
    }
  }];
});

/***/ }),

/***/ "orGp":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("path", {
  d: "M9.174 13.563a1.5 1.5 0 0 1-.551-2.9A79.419 79.419 0 0 1 18.11 7.6a60.628 60.628 0 0 1 8.59-1.33 1.5 1.5 0 0 1 .192 2.994 58.92 58.92 0 0 0-8.121 1.261 77.587 77.587 0 0 0-9.041 2.932 1.5 1.5 0 0 1-.556.106zm.318-6.158a1.5 1.5 0 0 1-.551-2.9A77.59 77.59 0 0 1 18.11 1.6a67.13 67.13 0 0 1 2.293-.472 1.5 1.5 0 0 1 .554 2.949c-.693.13-1.427.28-2.19.45A75.956 75.956 0 0 0 10.043 7.3a1.5 1.5 0 0 1-.551.105zM13.5 33v.879a1.5 1.5 0 0 0 .439 1.061l.621.621a1.5 1.5 0 0 0 1.061.439h4.757a1.5 1.5 0 0 0 1.061-.439l.621-.621a1.5 1.5 0 0 0 .439-1.061V33A1.5 1.5 0 0 0 24 31.5v-1.944a1.5 1.5 0 0 0-1.5-1.5h-9a1.5 1.5 0 0 0-1.5 1.5V31.5a1.523 1.523 0 0 0 1.5 1.5zM9.7 19.353a1.5 1.5 0 0 1-.551-2.9A72.764 72.764 0 0 1 18.11 13.6a60.628 60.628 0 0 1 8.59-1.33 1.5 1.5 0 0 1 .192 2.994 58.92 58.92 0 0 0-8.121 1.261 70.93 70.93 0 0 0-8.514 2.722 1.5 1.5 0 0 1-.557.106zm3.8 2.397V26h3v-4.25a3.706 3.706 0 0 0-.415-1.679c-1.072.339-2.12.7-3 1.016a.745.745 0 0 1 .415.663zM26.454 18h-3.2a3.754 3.754 0 0 0-3.75 3.75V26h3v-4.25a.751.751 0 0 1 .75-.75h3.2a1.5 1.5 0 0 0 0-3z"
}));

/***/ }),

/***/ "oxh4":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var _UxpOptions = _interopRequireDefault(__webpack_require__("zvwv"));

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
} //  so, we are defining this module which forks behavior here so that
//  CoachMark can import the appropriate CoachMarkIndicator instance either Uxp or normal.


module.exports = _UxpOptions.default.select('CoachMarkIndicator', () => __webpack_require__("xb6E"), () => __webpack_require__("Edlj"));

/***/ }),

/***/ "oyGX":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _autobindDecorator = _interopRequireDefault(__webpack_require__("gKdT"));

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _createId = _interopRequireDefault(__webpack_require__("b7KY"));

var _Menu = _interopRequireDefault(__webpack_require__("NeVj"));

var _MenuItem = _interopRequireDefault(__webpack_require__("C8M1"));

var _OverlayTrigger = _interopRequireDefault(__webpack_require__("uYrR"));

var _propTypes = _interopRequireDefault(__webpack_require__("17x9"));

var _react = _interopRequireWildcard(__webpack_require__("q1tI"));

var _reactDom = _interopRequireDefault(__webpack_require__("i8i4"));

const _excluded = ["children", "className", "closeOnSelect", "label", "trapFocus"];

var _class, _class2, _temp2;

function _getRequireWildcardCache(nodeInterop) {
  if (typeof WeakMap !== "function") return null;
  var cacheBabelInterop = new WeakMap();
  var cacheNodeInterop = new WeakMap();
  return (_getRequireWildcardCache = function (nodeInterop) {
    return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
  })(nodeInterop);
}

function _interopRequireWildcard(obj, nodeInterop) {
  if (!nodeInterop && obj && obj.__esModule) {
    return obj;
  }

  if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
    return {
      default: obj
    };
  }

  var cache = _getRequireWildcardCache(nodeInterop);

  if (cache && cache.has(obj)) {
    return cache.get(obj);
  }

  var newObj = {};
  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;

  for (var key in obj) {
    if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
      var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;

      if (desc && (desc.get || desc.set)) {
        Object.defineProperty(newObj, key, desc);
      } else {
        newObj[key] = obj[key];
      }
    }
  }

  newObj.default = obj;

  if (cache) {
    cache.set(obj, newObj);
  }

  return newObj;
}

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

function ownKeys(object, enumerableOnly) {
  var keys = Object.keys(object);

  if (Object.getOwnPropertySymbols) {
    var symbols = Object.getOwnPropertySymbols(object);

    if (enumerableOnly) {
      symbols = symbols.filter(function (sym) {
        return Object.getOwnPropertyDescriptor(object, sym).enumerable;
      });
    }

    keys.push.apply(keys, symbols);
  }

  return keys;
}

function _objectSpread(target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i] != null ? arguments[i] : {};

    if (i % 2) {
      ownKeys(Object(source), true).forEach(function (key) {
        _defineProperty(target, key, source[key]);
      });
    } else if (Object.getOwnPropertyDescriptors) {
      Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
    } else {
      ownKeys(Object(source)).forEach(function (key) {
        Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
      });
    }
  }

  return target;
}

function _defineProperty(obj, key, value) {
  if (key in obj) {
    Object.defineProperty(obj, key, {
      value: value,
      enumerable: true,
      configurable: true,
      writable: true
    });
  } else {
    obj[key] = value;
  }

  return obj;
}

let SubMenu =
/**
 * A menu item that has a sub menu under it that is opened on hover.
 */
(0, _autobindDecorator.default)(_class = (_temp2 = _class2 = class SubMenu extends _react.Component {
  constructor(...args) {
    var _temp;

    return _temp = super(...args), this.state = {
      opened: false,
      trapFocus: true
    }, this.menuId = (0, _createId.default)(), this.subMenuId = (0, _createId.default)(), _temp;
  }

  handleKeyDown(event) {
    const {
      onKeyDown
    } = this.props;

    switch (event.key) {
      case 'ArrowLeft':
      case 'Left':
        event.preventDefault();
        event.stopPropagation();
        this.setState({
          opened: false
        });
        break;

      case 'Enter':
      case ' ':
      case 'ArrowRight':
      case 'Right':
        event.preventDefault();
        event.stopPropagation();
        this.setState({
          opened: true
        });
        break;
    }

    if (onKeyDown) {
      onKeyDown(event);
    }
  }

  handleSubMenuKeyDown(event) {
    switch (event.key) {
      case 'ArrowLeft':
      case 'Left':
        event.preventDefault();
        this.setState({
          opened: false
        });
        break;
    }
  }

  hide() {
    this.hideAnimationFrame = requestAnimationFrame(() => this.setState({
      opened: false
    }));
  }

  show() {
    if (this.hideAnimationFrame) {
      cancelAnimationFrame(this.hideAnimationFrame);
    }

    requestAnimationFrame(() => this.setState({
      opened: true
    }));

    if (this.props._onNestedSubmenuOpen) {
      this.props._onNestedSubmenuOpen();
    }
  }

  cloneItem(item) {
    const props = _objectSpread(_objectSpread({}, item.props), {}, {
      onKeyDown: this.handleSubMenuKeyDown
    });

    if (item.type === SubMenu) {
      props._onNestedSubmenuOpen = this.show;
    }

    return /*#__PURE__*/(0, _react.cloneElement)(item, props);
  }

  onHide() {
    this.hide();
  }

  onMenuClose() {
    this.overlayTrigger.hide();
  }

  onSelect(...args) {
    if (this.props.closeOnSelect) {
      this.onMenuClose();
    }

    if (this.props.onSelect) {
      this.props.onSelect(...args);
    }
  }

  render() {
    const _this$props = this.props,
          {
      children,
      className,
      closeOnSelect,
      label,
      trapFocus
    } = _this$props,
          otherProps = _objectWithoutProperties(_this$props, _excluded);

    delete otherProps.onSelect;
    const {
      opened
    } = this.state;
    return /*#__PURE__*/_react.default.createElement(_OverlayTrigger.default, {
      placement: "right top",
      offset: -10,
      crossOffset: -4,
      selected: false,
      show: this.state.opened,
      onHide: this.onHide,
      closeOnSelect: closeOnSelect,
      ref: t => this.overlayTrigger = t
    }, /*#__PURE__*/_react.default.createElement(_MenuItem.default, _extends({
      id: this.menuId,
      className: (0, _classnames.default)({
        'is-open': opened
      }, className),
      ref: r => this.menuItem = r,
      "aria-haspopup": "menu",
      "aria-expanded": opened,
      "aria-owns": opened ? this.subMenuId : null
    }, otherProps, {
      onKeyDown: otherProps.disabled ? undefined : this.handleKeyDown,
      onClick: this.show,
      onMouseEnter: this.show,
      onMouseLeave: this.hide,
      hasNestedMenu: true
    }), label), /*#__PURE__*/_react.default.createElement(_Menu.default, {
      id: this.subMenuId,
      onSelect: this.onSelect,
      autoFocus: true,
      "aria-labelledby": this.menuId,
      onMouseEnter: this.show,
      onMouseLeave: this.hide,
      trapFocus: trapFocus
    }, _react.default.Children.toArray(children).map(this.cloneItem)));
  }

}, _class2.displayName = 'SubMenu', _class2.propTypes = _objectSpread(_objectSpread({}, _MenuItem.default.propTypes), {}, {
  /**
   * A custom classname to be applied to the menu item
   */
  className: _propTypes.default.string,

  /**
   * The displayed label of the submenu within its parent
   */
  label: _propTypes.default.string,

  /**
   * A select handler for the submenu, triggered whenever an item is selected.
   */
  onSelect: _propTypes.default.func,

  /**
   * True by default, this keeps focus within the expanded submenu of this component.
   * When disabled, focus may leave the expanded submenu component.
   */
  trapFocus: _propTypes.default.bool
}), _temp2)) || _class;

exports.default = SubMenu;

/***/ }),

/***/ "p5z0":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("path", {
  d: "M28 21.98a2 2 0 0 1-3.411 1.411l-6.578-6.572-6.578 6.572a2 2 0 0 1-2.874-2.773l.049-.049 7.992-7.984a2 2 0 0 1 2.825 0l7.989 7.983A1.989 1.989 0 0 1 28 21.98z"
}));

/***/ }),

/***/ "p789":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
/**
 * Simple module so all local storage related stuff has a centralized wrapper.
 */
class LocalStorage {
    get userID() {
        // Prevent cyclic dependency in webpack.
        const mainStore = __webpack_require__("cCFZ").mainStore;
        return mainStore.user.UserProfile.userId;
    }
    /**
     * Set a value to the local storage for a specified userID.
     *
     * @param userID            {String} user's associated ID value
     * @param key               {String} local store key
     * @param val               {Object} value to store
     */
    setUserItem(key, val) {
        if (!key || !this.userID) {
            return;
        }
        window.localStorage.setItem(`${this.userID}_${key}`, JSON.stringify(val));
    }
    /**
     * Clear an entry to the local storage for a specified userID.
     *
     * @param key               {String} local store key
     */
    clearUserItem(key) {
        if (!key || !this.userID) {
            return;
        }
        window.localStorage.removeItem(`${this.userID}_${key}`);
    }
    /**
     * Get a value from local storage for a specified userID.
     * If the value is not found, a null object is returned.
     *
     * @param userID            {String} user's associated ID value
     * @param key               {String} local store key
     * @return {Object} stored value or null if not present.
     */
    getUserItem(key) {
        let val;
        if (this.userID && key) {
            val = window.localStorage.getItem(this.userID + '_' + key);
        }
        try {
            val = JSON.parse(val);
        }
        catch (err) {
            val = undefined;
        }
        return val;
    }
    /**
     * Set a value to the local storage.
     *
     * @param key               {String} local store key
     * @param val               {Object} value to store
     */
    setGlobalItem(key, val) {
        if (!key) {
            return;
        }
        window.localStorage.setItem(key, JSON.stringify(val));
    }
    /**
     * Clear an entry to the local storage.
     *
     * @param key               {String} local store key
     */
    clearGlobalItem(key) {
        if (!key) {
            return;
        }
        window.localStorage.removeItem(key);
    }
    /**
     * Get a value from local storage.
     * If the value is not found, a null object is returned.
     *
     * @param key               {String} local store key
     * @return {Object} stored value or null if not present.
     */
    getGlobalItem(key) {
        let val;
        if (key) {
            val = window.localStorage.getItem(key);
        }
        try {
            val = JSON.parse(val);
        }
        catch (err) {
            val = undefined;
        }
        return val;
    }
}
const localstorage = new LocalStorage();
/* harmony default export */ __webpack_exports__["a"] = (localstorage);


/***/ }),

/***/ "p9XE":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("path", {
  d: "M22.179 5.708a12.29 12.29 0 0 1 2.042 24.408s-1.646.176-2.989.176h-9.381a10.407 10.407 0 0 1-.005-20.813 10.769 10.769 0 0 1 1.362.086l.581-.544a12.239 12.239 0 0 1 8.39-3.313zm0-1.308A13.542 13.542 0 0 0 12.9 8.066l-.148.139q-.45-.034-.9-.034a11.715 11.715 0 0 0-.001 23.429h9.381c1.4 0 3.058-.176 3.128-.184A13.6 13.6 0 0 0 22.179 4.4z"
}), React.createElement("path", {
  d: "M15.5 10.9a9.579 9.579 0 0 1 1.677.869 7.961 7.961 0 1 1-.677 11.853l-4.652-4.666a.878.878 0 1 0-1.257 1.225l4.675 4.69A9.717 9.717 0 1 0 15.5 10.9zM4.068 19.866a7.854 7.854 0 0 0 7.858 7.854h4.1a11.5 11.5 0 0 1-2.16-1.75h-1.94a6.1 6.1 0 0 1 0-12.209 5.814 5.814 0 0 1 4 1.5l3.535 3.627a.877.877 0 1 0 1.257-1.224l-3.532-3.634a7.6 7.6 0 0 0-5.265-2.025 7.851 7.851 0 0 0-7.853 7.854z"
}));

/***/ }),

/***/ "pE5b":
/***/ (function(module) {

module.exports = JSON.parse("{\"a11y.button.canvases\":\"{name}\",\"a11y.button.libraries\":\"{name}, bibliotek\",\"a11y.button.listGridToggle\":\"visningsveksler, {toggledView, select, grid {rutenettvisning} list {listevisning}}\",\"a11y.button.project\":\"{name}, prosjekt\",\"a11y.button.published\":\"{name}, {extension}\",\"a11y.button.selectFolder\":\"Velg mappe\",\"a11y.button.working\":\"{name}, {extension}, endret {modified}\",\"a11y.strings.folder\":\"mappe\",\"header.action.newProject\":\"Nytt prosjekt\",\"header.action.newLibrary\":\"Nytt bibliotek\",\"header.action.browseAll\":\"Bla gjennom alle\",\"header.Name\":\"Navn\",\"header.Size\":\"Størrelse\",\"header.Sharing\":\"Medlemmer\",\"header.Team\":\"Arbeidsområde\",\"header.DateModified\":\"Endret\",\"header.DateCreated\":\"Opprettet\",\"header.Status\":\"Lagt til som favoritt\",\"header.SortBy\":\"Sorter etter\",\"header.sort.label\":\"Sorter\",\"header.ChangeSortDirection\":\"Endre sorteringsretning til\",\"header.SortBy.asc\":\"Stigende\",\"header.SortBy.desc\":\"Synkende\",\"header.selectAll\":\"Merk alle\",\"header.reverseOrder\":\"Snu rekkefølgen\",\"header.showCompatible\":\"Kompatible filer\",\"header.showEverything\":\"Alt\",\"product.illustrator.web\":\"Illustrator Web (beta)\",\"product.photoshop.web\":\"Photoshop Web (Beta)\",\"status.followed\":\"Ja\",\"status.unfollowed\":\"Nei\",\"team.usm.defaultName\":\"Arbeidsområde {name}\",\"space.access.private.description\":\"Kun inviterte personer\",\"space.access.private.tooltip\":\"Bare inviterte har tilgang til dette prosjektet\",\"space.access.team.description\":\"Alle i arbeidsområdet og de som er invitert\",\"space.access.team.tooltip\":\"Alle i \\\"{team}\\\" har tilgang til dette prosjektet\",\"yourProjects.title\":\"Prosjekter\",\"yourProjects.librariesTab.title\":\"Arbeidsgruppebiblioteker\",\"yourProjects.empty.spaces\":\"Opprett flere prosjekter og inviter flere medlemmer av arbeidsområdet\",\"browseAll.title\":\"Bla gjennom alle\",\"yourFiles.title\":\"Dine dokumenter\",\"yourLibraries.title\":\"Biblioteker\",\"yourLibraries.metadata\":\"BIBLIOTEK\",\"canvas.metadata\":\"LERRET\",\"projectInfo.action.view\":\"Vis informasjon\",\"projectInfo.action.edit\":\"Rediger prosjekt\",\"projectInfo.empty.cta\":\"Opprett nytt prosjekt\",\"projectInfo.empty.description\":\"Creative Cloud Projects gjør det enklere å finne, organisere, dele og ta beslutninger, og samler alt du trenger til kreative prosjekter på ett sted.\",\"projectInfo.empty.heading\":\"Mer kreativitet, mindre etterslep.\",\"projectInfo.error.description\":\"Prøv igjen senere\",\"projectInfo.error.heading\":\"Kan ikke laste inn {section}\",\"projectInfo.new.error.title\":\"Kan ikke opprette et nytt prosjekt\",\"projectInfo.new.noPermission.description\":\"Kontakt administratoren din for mer informasjon.\",\"projectInfo.title.create\":\"NYTT PROSJEKT\",\"projectInfo.title.edit\":\"REDIGER PROSJEKT\",\"projectInfo.title.view\":\"PROSJEKTINFORMASJON\",\"projectInfo.access.title\":\"Hvem kan redigere dette prosjektet\",\"projectInfo.access.warning\":\"Enkelte medlemmer kan miste tilgangen til prosjektet hvis du endrer tillatelsen til \\\"Bare inviterte\\\".\",\"projectInfo.organization\":\"Organisasjon\",\"projectInfo.organization.placeholder\":\"Velg et alternativ\",\"projectInfo.description\":\"Beskrivelse\",\"textField.invalid.characters\":\"Navn kan ikke inneholde følgende tegn: \\\\\\\\ / * ? \\\" | : < >\",\"textField.invalid.duplicateName\":\"Det finnes allerede et prosjekt med dette navnet i denne organisasjonen.\",\"textField.invalid.duplicateName.space\":\"Det finnes allerede et prosjekt med dette navnet i dette arbeidsområdet.\",\"textField.invalid.duplicateName.team\":\"Det finnes allerede et arbeidsområde med dette navnet i denne organisasjonen.\",\"textField.invalid.empty\":\"Navnet kan ikke stå tomt\",\"textField.invalid.generic\":\"Navnet er ugyldig\",\"textField.invalid.length\":\"Navn kan ikke være lengre enn 50 tegn\",\"textField.invalid.nameEndsWithDot\":\"Navn kan ikke slutte med punktum\",\"textField.invalid.offline\":\"Koble til på nytt for å få tilgang til alle arbeidsområdene og prosjektene dine. Gå til Hjem for å vise lokale filer i prosjektene dine.\",\"projectInfo.textField.placeholder\":\"Gi dette prosjektet et navn\",\"projectInfo.team\":\"Arbeidsområde\",\"projectInfo.description.placeholder\":\"Eksempler: Filer, tilbakemeldinger og referansemateriell for kundeprosjektet\",\"projectInfo.description.invalidLength\":\"Beskrivelsen kan ikke inneholde mer enn 1000 tegn\",\"projectInfo.toast.success.new\":\"Prosjektet er opprettet: {name}\",\"projectInfo.toast.success.update\":\"Prosjektet er oppdatert: {name}\",\"projectInfo.toast.error.generic\":\"Kunne ikke {create, select, true {opprette} other {redigere}} prosjekt\",\"team.empty.heading\":\"Prosjekter holder alle oppdatert\",\"team.empty.description\":\"Er du lei av å bli låst ute fra filer, takle forvirringer rundt versjoner og sende skjermbilder på e-post for gjennomgang? Bruk områder for å organisere prosjekter, hente inn ressurser, få tilbakemeldinger og dele filer som skal brukes av hele arbeidsgruppen.\",\"team.empty.createSpace\":\"Opprett prosjekt\",\"team.empty.inviteMembers\":\"Inviter medlemmer\",\"team.empty.startHere\":\"BEGYNN HER\",\"team.create.success\":\"Du har opprettet arbeidsområdet: {name}\",\"team.create.error.generic\":\"Arbeidsområdet kunne ikke opprettes\",\"team.edit.success\":\"Du har oppdatert arbeidsområdet: {name}\",\"team.edit.error.generic\":\"Arbeidsområdet kunne ikke oppdateres\",\"team.archive.success\":\"{count, plural, =1 {# arbeidsområde} other {# arbeidsområde}} er slettet\",\"team.archive.error.generic\":\"Kan ikke slette {count, plural, =1 {# arbeidsområde} other {# arbeidsområde}}\",\"team.error.generic\":\"Beklager, det oppsto en feil.\",\"project1Up.action.projectInfo\":\"Vis informasjon\",\"project1up.region.space.ariaLabel\":\"{projectName}, prosjekt\",\"project1Up.section.libraries\":\"Biblioteker\",\"project1Up.section.libraries.empty.cta\":\"Legg til Creative Cloud Libraries\",\"project1Up.section.libraries.empty.description\":\"Legg til koblinger til biblioteker du trenger i jobben din.\",\"project1Up.section.libraries.empty.heading\":\"Samle alt på ett sted\",\"project1Up.section.filter\":\"Filter\",\"project1Up.section.filter.label\":\"Filtrer etter nøkkelord\",\"project1Up.section.filter.enterKeyword\":\"Angi nøkkelord\",\"project1Up.section.filterFiles.empty.heading\":\"Ingen resultater samsvarer med det valgte filteret\",\"project1Up.section.compatibleFiles.empty.heading\":\"Ingen kompatible filer i dette prosjektet\",\"project1Up.section.workingFiles\":\"Arbeidsfiler\",\"project1Up.section.workingFiles.empty.addFiles\":\"Legg til filer\",\"project1Up.section.workingFiles.empty.createFolder\":\"Opprett en ny mappe\",\"project1Up.section.workingFiles.empty.description\":\"Gå gjennom prosjekter og samarbeid med andre medlemmer.\",\"project1Up.section.workingFiles.empty.heading\":\"Jobb med det du vil, når du trenger det\",\"project1Up.section.published\":\"Publisert\",\"project1Up.section.published.empty.cta\":\"Slik publiserer du koblinger\",\"project1Up.section.published.empty.description\":\"Send skrivebeskyttede koblinger for å få tilbakemeldinger fra de rette personene til rett tid.\",\"project1Up.section.published.empty.description.readonly\":\"Når noen vil ha tilbakemelding eller en gjennomgang, legger de til en kobling her.\",\"project1Up.section.published.empty.heading\":\"Del med en hensikt\",\"project1Up.section.published.empty.heading.readonly\":\"Ingen publiserte elementer i dette prosjektet\",\"project1Up.section.canvases\":\"Lerret\",\"project1Up.section.canvases.empty.cta\":\"Legg til Creative Cloud-lerret\",\"project1Up.section.canvases.empty.description\":\"Legg til koblinger til ting du trenger for å gjøre jobben din.\",\"project1Up.section.canvases.empty.heading\":\"Samle alt på ett sted\",\"project1Up.section.files\":\"Filer\",\"project1Up.error.accessDenied.heading\":\"Du har ikke tilgang\",\"project1Up.error.accessDenied.description\":\"Du ble fjernet fra dette prosjektet. Kontakt administratoren din hvis du tror dette skyldes en feil.\",\"project1Up.header.seeAll\":\"Vis alle\",\"project1up.subheader.selected\":\"{count, plural, =1 {# element} other {# elementer}} er valgt\",\"project1up.subheader.emptyDescription\":\"Legg til en beskrivelse av prosjektet ditt\",\"project1up.subheader.canvases.title\":\"Lerret\",\"project1up.subheader.canvases.subtitle\":\"GJØREMÅL: UNDERTEKSTER FOR LERRET\",\"project1up.subheader.libraries.title\":\"Biblioteker\",\"project1up.subheader.libraries.subtitle\":\"Medlemmer kan legge til koblinger til Creative Cloud Libraries her.\",\"project1up.subheader.working.title\":\"Arbeidsfiler\",\"project1up.subheader.working.subtitle\":\"Medlemmer av dette prosjektet kan redigere disse filene.\",\"project1up.subheader.output.title\":\"Publisert\",\"project1up.subheader.output.subtitle\":\"{contributor, select, true {Del skrivebeskyttede versjoner av arbeid med personer utenfor prosjektet.} other {Vis og kommenter disse skrivebeskyttede elementene}}\",\"project.subtitle\":\"PROSJEKT\",\"project.countContributors\":\"{count, plural, =1 {# medlem} other {# medlemmer}}\",\"project.versionError.reload.description\":\"Prøv å oppdatere nettleseren.\",\"project.versionError.reload.title\":\"Kan ikke åpne prosjektet\",\"project.versionError.update.description\":\"Du kan ikke få tilgang til prosjektet før du oppdaterer applikasjonen.\",\"project.versionError.update.title\":\"Oppdater {appName} for å åpne\",\"project.alreadyDiscarded.title\":\"Dette prosjektet er slettet\",\"project.alreadyDiscarded.description\":\"Kontakt administratoren din hvis du tror dette skyldes en feil, eller bla gjennom annet innhold.\",\"project.deleted.title\":\"Dette prosjektet er slettet permanent\",\"project.deleted.description\":\"Du kan ikke åpne dette prosjektet fordi det ikke lenger er tilgjengelig.\",\"project.metadataError.backLabel\":\"Tilbake til prosjekter\",\"project.metadataError.description\":\"Vi finner ikke prosjektet du leter etter, eller du har ikke tilgang.\",\"project.metadataError.title\":\"Beklager, det oppsto en feil.\",\"folder.subtitle\":\"MAPPE\",\"libraries.toast.add.start\":\"Legger til {count, plural, =1 {# bibliotek} other {# biblioteker}}\",\"libraries.toast.add.success\":\"{count, plural, =1 {# bibliotek} other {# biblioteker}} er lagt til\",\"libraries.toast.add.error\":\"Kunne ikke legge til {count, plural, =1 {# bibliotek} other {# biblioteker}}. Prøv igjen.\",\"libraries.toast.add.duplicate\":\"Dette biblioteket finnes allerede\",\"libraries.toast.add.onlyDuplicates\":\"Kan ikke legge til {count, plural, =1 {# bibliotek, da biblioteket finnes fra før} other {# biblioteker, da bibliotekene finnes fra før}}.\",\"libraries.toast.delete.success\":\"{count, plural, =1 {# bibliotek} other {# biblioteker}} er fjernet\",\"libraries.toast.delete.error\":\"Kunne ikke fjerne {count, plural, =1 {# bibliotek} other {# biblioteker}}\",\"libraries.toast.follow.inProgress\":\"Følger {count, plural, =1 {# bibliotek} other {# biblioteker}}\",\"libraries.toast.follow.success\":\"Begynte å følge {count, plural, =1 {# bibliotek} other {# biblioteker}}\",\"libraries.toast.follow.error\":\"Kunne ikke følge {count, plural, =1 {# bibliotek} other {# biblioteker}}\",\"libraries.toast.unfollow.inProgress\":\"Slutter å følge {count, plural, =1 {# bibliotek} other {# biblioteker}}\",\"libraries.toast.unfollow.success\":\"Sluttet å følge {count, plural, =1 {# bibliotek} other {# biblioteker}}\",\"libraries.toast.unfollow.error\":\"Kunne ikke slutte å følge {count, plural, =1 {# bibliotek} other {# biblioteker}}\",\"libraries.modal.empty.heading\":\"Ingen biblioteker\",\"libraries.modal.empty.description\":\"Organisasjonen din har ingen delte biblioteker\",\"libraries.modal.error.limitExceeded\":\"Kan ikke legge til bibliotek\",\"libraries.modal.error.limitExceeded.detail\":\"Du kan legge til opptil 100 biblioteker i et prosjekt. Fjern noen for å legge til flere.\",\"libraries.brokenResources\":\"Enkelte biblioteker vises ikke fordi du mangler tilgang. Kontakt andre medlemmer for mer info.\",\"copy.start\":\"Kopierer {count, plural, =1 {# element} other {# elementer}}\",\"copy.failure\":\"Kan ikke kopiere {count, plural, =1 {# element} other {# elementer}}\",\"copy.failure.partial\":\"Kan ikke kopiere visse elementer\",\"copy.success\":\"{count, plural, =1 {# element} other {# elementer}} er kopiert\",\"copy.conflictSuffix\":\"kopi\",\"move.start\":\"Flytter {count, plural, =1 {# element} other {# elementer}}\",\"move.failure\":\"Kan ikke flytte {count, plural, =1 {# element} other {# elementer}}\",\"move.failure.partial\":\"Kan ikke flytte visse elementer\",\"move.success\":\"{count, plural, =1 {# element} other {# elementer}} er flyttet\",\"upload.start\":\"Laster opp {count, plural, =1 {# element} other {# elementer}}\",\"upload.failure\":\"Kan ikke laste opp {count, plural, =1 {# element} other {# elementer}}\",\"upload.failure.partial\":\"Kan ikke laste opp visse elementer\",\"upload.failure.snapshot\":\"Dette elementet støttes ikke\",\"upload.success\":\"{count, plural, =1 {# element} other {# elementer}} er lastet opp\",\"download.start\":\"Laster ned {count, plural, =1 {# element} other {# elementer}}\",\"download.failure\":\"Kan ikke laste ned {count, plural, =1 {# element} other {# elementer}}\",\"download.failure.partial\":\"Kan ikke laste ned visse elementer\",\"download.success\":\"{count, plural, =1 {# element} other {# elementer}} har blitt lastet ned\",\"delete.failure\":\"Kan ikke slette {count, plural, =1 {# element} other {# elementer}}\",\"delete.failure.partial\":\"Kan ikke slette visse elementer\",\"delete.success\":\"{count, plural, =1 {# element} other {# elementer}} er slettet\",\"jobs.failure\":\"{count, plural, =1 {# element} other {# elementer}} mislyktes\",\"jobs.inProgress\":\"Jobber...\",\"jobs.success\":\"{count, plural, =1 {# element} other {# elementer}} er fullført\",\"restore.failure\":\"Kan ikke gjenopprette {count, plural, =1 {# element} other {# elementer}}\",\"restore.failure.partial\":\"Kan ikke gjenopprette visse elementer\",\"restore.success\":\"{count, plural, =1 {# element} other {# elementer}} er gjenopprettet\",\"rename.start\":\"Gir nytt navn\",\"rename.success\":\"{count, plural, =1 {# element} other {# elementer}} har fått nytt navn\",\"rename.failure\":\"På grunn av en serverfeil kunne ikke elementet gis nytt navn.\",\"rename.failure.conflict\":\"Du har allerede et element her med dette navnet\",\"rename.offline.heading\":\"Kan ikke gi nytt navn\",\"rename.offline\":\"Du er frakoblet og kan ikke gi nytt navn til elementet. Koble til igjen for å utføre denne handlingen.\",\"bookmark.follow.error\":\"Kan ikke angi dette prosjektet som favoritt\",\"bookmark.unfollow.error\":\"Kan ikke fjerne dette prosjektet som favoritt\",\"bookmark.follow.success\":\"{projectName} er lagt til som favoritt\",\"bookmark.unfollow.success\":\"{projectName} er fjernet som favoritt\",\"bookmark.bulk.follow.success\":\"{count, plural, =1 {# element} other {# elementer}} er merket som favoritt\",\"bookmark.bulk.follow.partial\":\"Kan ikke angi enkelte elementer som favoritt\",\"bookmark.bulk.follow.error\":\"Kan ikke angi {count, plural, =1 {# element} other {# elementer}} som favoritt\",\"bookmark.bulk.unfollow.success\":\"Fjernet {count, plural, =1 {# element} other {# elementer}} som favoritt\",\"bookmark.bulk.unfollow.partial\":\"Kan ikke fjerne enkelte elementer som favoritt\",\"bookmark.bulk.unfollow.error\":\"Kan ikke fjerne {count, plural, =1 {# element} other {# elementer}} som favoritt\",\"copyLink.success\":\"Koblingen er kopiert til utklippstavlen\",\"copyLink.failure\":\"Kan ikke kopiere kobling\",\"starterUser.project1upNavigation\":\"Startplanen din omfatter ikke åpning av dokumenter i prosjekter\",\"starterUser.project1upNavigationCDPSave\":\"Startplanen din omfatter ikke lagring av dokumenter i prosjekter\",\"invite.failure\":\"Invitasjonene kunne ikke sendes. Prøv på nytt.\",\"accessibility.backButton\":\"Gå tilbake\",\"button.role\":\"Knapp\",\"button.actions\":\"Prosedyrer\",\"button.add\":\"Legg til\",\"button.addFiles\":\"Legg til filer\",\"button.addLibrary\":\"Legg til bibliotek\",\"button.createDocument\":\"Ny {appName}-file\",\"button.library\":\"Bibliotek\",\"button.back\":\"Tilbake\",\"button.browse\":\"Bla gjennom alle\",\"button.cancel\":\"Avbryt\",\"button.okay\":\"Ok\",\"button.canvas\":\"Lerret\",\"button.addCanvas\":\"Nytt lerret\",\"button.changeDefaultApp\":\"Bytt standardapplikasjon ...\",\"button.close\":\"Lukk\",\"button.continue\":\"Fortsett\",\"button.copy\":\"Kopier til ...\",\"button.copyLink\":\"Kopier kobling\",\"button.create\":\"Opprett\",\"button.createNewFolder\":\"Opprett en ny mappe\",\"button.newFile\":\"Ny fil\",\"button.newFolder\":\"Ny mappe\",\"button.delete\":\"Slett\",\"button.deleteResource\":\"Fjern\",\"button.done\":\"Ferdig\",\"button.download\":\"Last ned\",\"button.favorite\":\"Merk som favoritt\",\"button.follow\":\"Følg\",\"button.invite\":\"Inviter\",\"button.inviteLabel\":\"Inviter andre\",\"button.leave\":\"Forlat\",\"button.leaveProject\":\"Forlat arbeidsområde\",\"button.move\":\"Flytt til ...\",\"button.next\":\"Neste\",\"button.ok\":\"OK\",\"button.open\":\"Åpne\",\"button.openWith\":\"Åpne med\",\"button.open.appName\":\"{appName} {isDefault, select, true {(Standard)} other {}}\",\"button.redo\":\"Prøv på nytt\",\"button.reload\":\"Last inn på nytt\",\"button.rename\":\"Endre navn\",\"button.restore\":\"Gjenopprett\",\"button.retry\":\"Prøv igjen\",\"button.save\":\"Lagre\",\"button.select\":\"Velg\",\"button.share\":\"Del\",\"button.skipTour\":\"Hopp over\",\"button.undo\":\"Angre\",\"button.unfavorite\":\"Fjern som favoritt\",\"button.unfollow\":\"Slutt å følge\",\"button.update\":\"Oppdater\",\"button.upgrade\":\"Oppgrader\",\"button.view\":\"Vis alle\",\"button.viewProject\":\"Vis prosjektet\",\"button.viewTarget\":\"Vis\",\"button.createWeblink\":\"Legg til nettkobling\",\"button.leaveTeam\":\"Forlat arbeidsområde\",\"button.renameTeam\":\"Gi nytt navn på arbeidsområde\",\"button.editTeam\":\"Rediger arbeidsområdeinformasjon\",\"button.archiveTeam\":\"Slett arbeidsområde\",\"button.upload\":\"Last opp filer\",\"button.goToDeleted\":\"Vis i Slettet\",\"button.viewEverything\":\"Vis alt\",\"button.viewInWeb\":\"Vis på nettet\",\"abbreviations.fileSize.byte\":\"B\",\"abbreviations.fileSize.kilobyte\":\"kB\",\"abbreviations.fileSize.megabyte\":\"MB\",\"abbreviations.fileSize.gigabyte\":\"GB\",\"abbreviations.fileSize.terabyte\":\"TB\",\"statusIcon.conflicted\":\"Synkroniserings-konflikt\",\"statusIcon.onlineOnly\":\"Bare på nettet\",\"statusIcon.availableOffline\":\"Tilgjengelig frakoblet\",\"statusIcon.syncing\":\"Synkroniserer ...\",\"statusIcon.waitingToSync\":\"Venter på synkronisering\",\"statusMessage.offline.description\":\"Koble til på nytt for å få tilgang til alle arbeidsområdene og prosjektene dine. Gå til Hjem for å vise lokale filer i prosjektene dine.\",\"statusMessage.offline.heading\":\"Du er frakoblet\",\"statusMessage.offline.toast\":\"Du er frakoblet, så noen funksjoner og filer kan være utilgjengelige.\",\"toggle.listView\":\"Listevisning\",\"toggle.gridView\":\"Miniatyrvisning\",\"color.fuchsia\":\"Fuksia\",\"color.indigo\":\"Indigo\",\"color.celery\":\"Selleri\",\"color.magenta\":\"Magenta\",\"color.yellow\":\"Gul\",\"color.seafoam\":\"Sjøsprøyt\",\"color.chartreuse\":\"Chartreuse\",\"color.purple\":\"Lilla\",\"color.blue\":\"Blå\",\"color.red\":\"Rød\",\"color.orange\":\"Oransje\",\"color.green\":\"Grønn\",\"color.label\":\"Prosjektfarge\",\"tooltip.offline.general\":\"Koble deg på nytt til Internett for å gjøre dette\",\"tooltip.moreFaces\":\"+ {number} til\",\"action.leave.space.success\":\"Du har forlatt {count, plural, =1 {# prosjekt} other {# prosjekter}}\",\"action.leave.prototype.success\":\"Tilgangen til {count, plural, =1 {# prototype} other {# prototyper}} er opphevet\",\"action.leave.file.success\":\"Tilgangen til {count, plural, =1 {# fil} other {# filer}} er opphevet\",\"action.leave.canvas.success\":\"Tilgangen til {count, plural, =1 {# lerret} other {# lerret}} er opphevet\",\"action.leave.team.success\":\"Du har forlatt 1 arbeidsområde\",\"action.leave.space.error\":\"Kan ikke forlate dette prosjektet\",\"action.leave.prototype.error\":\"Kan ikke forlate denne prototypen\",\"action.leave.file.error\":\"Kan ikke forlate denne filen\",\"action.leave.team.error\":\"Kan ikke forlate dette arbeidsområdet\",\"action.leave.canvas.error\":\"Kan ikke forlate dette området\",\"action.leave.space.partial.error\":\"Kan ikke forlate alle prosjekter\",\"action.leave.prototype.partial.error\":\"Kan ikke forlate alle prototyper\",\"action.leave.file.partial.error\":\"Kan ikke forlate alle filer\",\"action.leave.canvas.partial.error\":\"Kan ikke forlate alle lerret\",\"action.leave.error.onlyContributor\":\"Du er det eneste medlemmet. Legg til et nytt medlem før du forlater området.\",\"action.leave.error.addressBookGroupMember\":\"Forlat gruppen og prøv igjen.\",\"action.leave.error.admin\":\"Denne handlingen kan ikke utføres fordi du er administrator.\",\"action.leave.error.generic\":\"Noe gikk galt, du kan ikke forlate dette området.\",\"action.reportAbuse\":\"Rapporter misbruk\",\"action.reportAbuse.required\":\"Obligatorisk\",\"action.reportAbuse.titleText\":\"Hvis du mener at dette Creative Cloud-innholdet bryter med Adobes vilkår for bruk, kan du rapportere det ved å fylle ut dette korte skjemaet.\",\"action.reportAbuse.emailInput\":\"E-postadressen din\",\"action.reportAbuse.nameInput\":\"Navnet ditt\",\"action.reportAbuse.radioButtonText\":\"Hvorfor rapporterer du dette innholdet?\",\"action.reportAbuse.defamation\":\"Ærekrenkelse\",\"action.reportAbuse.hate\":\"Rasistisk eller hatefullt innhold\",\"action.reportAbuse.trademark\":\"Krenkelse av varemerke\",\"action.reportAbuse.pornography\":\"Seksuelt innhold\",\"action.reportAbuse.vulgar\":\"Støtende innhold\",\"action.reportAbuse.other\":\"Annet\",\"action.reportAbuse.inappropriate\":\"Upassende\",\"action.reportAbuse.age\":\"Upassende basert på alder\",\"action.reportAbuse.gender\":\"Upassende basert på kjønn\",\"action.reportAbuse.textAreaTitle\":\"Gi en beskrivelse av problemet\",\"action.reportAbuse.describeConcern\":\"Beskriv problemet\",\"action.reportAbuse.success\":\"Misbruket er rapportert\",\"action.reportAbuse.failure\":\"Kunne ikke rapportere misbruk\",\"action.menu.label\":\"Handlingsmeny\",\"action.label\":\"Prosedyre\",\"dialog.genericError.description\":\"Beklager, det oppsto en feil.\",\"dialog.genericError.title\":\"Uventet feil\",\"dialog.leave.space.title\":\"Forlat {count, plural, =1 {{name}} other {prosjekter}}\",\"dialog.leave.prototype.title\":\"Forlat {count, plural, =1 {denne prototypen} other {prototypene}}\",\"dialog.leave.file.title\":\"Forlat {count, plural, =1 {denne filen} other {filene}}\",\"dialog.leave.canvas.title\":\"Forlat {count, plural, =1 {dette lerretet} other {lerretene}}\",\"dialog.leave.team.title\":\"Sier du farvel?\",\"dialog.leave.team.detail\":\"Du vil ikke kunne angre dette hvis du fjerner deg selv. Kontakt administrator hvis du ønsker å bli lagt til igjen i dette arbeidsområdet.\",\"dialog.leave.space.detail\":\"Du mister tilgangen til elementer du ikke eier i dette prosjektet. Hvis du forlater \\\"{projectName}\\\", kan ikke dette angres.\",\"dialog.leave.prototype.detail\":\"Du kommer ikke til å få tilgang igjen uten en ny invitasjon.\",\"dialog.leave.file.detail\":\"Du kommer ikke til å få tilgang igjen uten en ny invitasjon.\",\"dialog.leave.canvas.detail\":\"Du kommer ikke til å få tilgang igjen uten en ny invitasjon.\",\"dialog.leave.detail\":\"{type, select, space {Du kommer til å miste tilgangen til elementer du ikke eier, i {count, plural, =1 {dette prosjekt} other {disse prosjektene}}. Det å forlate {count, plural, =1 {\\\"{name}\\\"} other {disse prosjektene}} kan ikke gjøres om.} other {Du kan ikke få tilgang til {count, plural, =1 {dette} other {disse}} igjen uten en ny invitasjon{count, plural, =1 {.} other {:}}}}\",\"dialog.deleteFailed.title\":\"Kan ikke slette alle elementene\",\"dialog.deleteWarning.description\":\"{type, select, spaces {Med denne handlingen slettes innholdet for alle medlemmer av disse prosjektene:} other {Med denne handlingen slettes følgende for alle medlemmer av dette prosjektet:}}\",\"dialog.deleteWarning.title\":\"{type, select, space {Slett {count} {count, plural, =1 {prosjekt} other {prosjekter}}} other {Slett {count} {count, plural, =1 {element} other {elementer}}}}\",\"dialog.deleteFailed.description.unauthorized\":\"Kan ikke slette fordi du ble fjernet fra prosjektet:\",\"dialog.deleteFailed.description.alreadyDeleted\":\"Dette elementet kan ikke slettes fordi noen andre allerede har slettet det:\",\"dialog.deleteFailed.description.unknown\":\"Kan ikke slette fordi noe gikk galt:\",\"dialog.cantCopyAllItems\":\"Kan ikke kopiere alle elementene\",\"dialog.cantCopyBecauseSomethingWentWrong\":\"Kan ikke kopiere fordi noe gikk galt:\",\"dialog.cantCopyBecauseYouWereSignedOut\":\"Kan ikke kopiere elementet fordi du er logget av:\",\"dialog.cantCopyBecauseYouWereRemoved\":\"Kan ikke kopiere elementet fordi du ble fjernet fra dette prosjektet:\",\"dialog.cantCopyBecauseItemWasDeleted\":\"Dette elementet kan ikke kopieres fordi noen andre har slettet det:\",\"dialog.cantCopyBecauseItemExists\":\"Dette elementet kan ikke kopieres fordi det allerede eksisterer der du prøvde å kopiere det:\",\"dialog.cantMoveAllItems\":\"Kan ikke flytte alle elementene\",\"dialog.cantMoveBecauseSomethingWentWrong\":\"Kan ikke flytte fordi noe gikk galt:\",\"dialog.cantMoveBecauseYouWereSignedOut\":\"Kan ikke flytte elementet fordi du er logget av:\",\"dialog.cantMoveBecauseYouWereRemoved\":\"Kan ikke flytte elementet fordi du ble fjernet fra dette prosjektet:\",\"dialog.cantMoveBecauseItemWasDeleted\":\"Dette elementet kan ikke flyttes fordi noen andre har slettet det:\",\"dialog.cantMoveBecauseItemExists\":\"Dette elementet kan ikke flyttes fordi det allerede eksisterer der du prøvde å flytte det:\",\"dialog.createFolder.error\":\"Mappen kunne ikke lagres pga. serverfeil\",\"dialog.createFolder.nameConflict\":\"Du har allerede en mappe med dette navnet.\",\"dialog.createFolder.placeholder\":\"Mappenavn\",\"dialog.createFolder.title\":\"Opprett mappe\",\"dialog.createFolder.success\":\"Mappen er opprettet\",\"dialog.createWeblink.error\":\"Nettadressen støttes ikke\",\"dialog.createWeblink.tooManyRequests\":\"Det oppstod en uventet nettverksfeil. Prøv på nytt.\",\"dialog.createWeblink.success\":\"1 element lagt til\",\"dialog.createWeblink.nameConflict\":\"Denne tittelen finnes allerede\",\"dialog.createWeblink.name.placeholder\":\"Skriv inn et navn for denne koblingen\",\"dialog.createWeblink.link.placeholder\":\"https://\",\"dialog.createWeblink.name\":\"Tilpasset tittel\",\"dialog.createWeblink.link\":\"Kobling\",\"dialog.createWeblink.title\":\"Opprett en nettkobling\",\"app.type.webLink\":\"NETTKOBLING\",\"dialog.createCanvas.error\":\"Kan ikke opprette lerret\",\"dialog.move.title\":\"Flytt til prosjekt {projectName}\",\"dialog.move.detail\":\"Hvis du flytter dette elementet, vil det endre hvem som har tilgang til det.\",\"moveToTeam.confirm.title\":\"Flytt til arbeidsområdet {name}\",\"moveToTeam.confirm.message\":\"Hvis du flytter prosjektene dine hit, endres hvem som har tilgang til dem. Prosjektene dine vil være tilgjengelige for alle som har tilgang til arbeidsområdet ditt.\",\"moveToTeam.disabled.differentOrg.tooltip.message\":\"Du kan ikke flytte prosjekter til et arbeidsområde i en annen organisasjon.\",\"moveToSpace.disabled.differentOrg.tooltip.message\":\"Du kan ikke flytte elementer til et prosjekt i en annen organisasjon.\",\"moveToTeam.success\":\"Du har flyttet {count, plural, =1 {# prosjekt} other {# prosjekter}} til arbeidsområdet {name}\",\"confirmationDialog.dontShowAgain\":\"Ikke vis igjen\",\"dialog.open.title\":\"Åpne på nett\",\"dialog.open.detail\":\"Du kan ikke åpne denne filen i {appName}, men du kan åpne den i en nettleser.\",\"dialog.renameTeam.title\":\"Gi nytt navn på arbeidsområde\",\"dialog.renameTeam.placeholder\":\"Skriv inn et navn for dette arbeidsområdet\",\"dialog.renameTeam.error\":\"Beklager, det oppsto en feil.\",\"dialog.renameTeam.nameConflict\":\"Dette navnet finnes allerede\",\"dialog.archiveTeam.title\":\"Vil du slette dette arbeidsområdet?\",\"dialog.archiveTeam.detail\":\"Du kan ikke angre dette hvis du fjerner deg selv. Kontakt administrator hvis du vil bli med i dette arbeidsområdet igjen.\",\"dialog.saveToCloud.title\":\"Filer lagret i Creative Cloud\",\"dialog.saveToCloud.detail\":\"Med nettsky-dokumenter får du nå versjonshistorikk, muligheten til å invitere andre og samredigere, få tilgang på andre enheter og mer. Du finner dem her og i Creative Cloud-applikasjonene.\",\"input.invalidCharInput\":\"Navnet kan ikke inneholde følgende tegn: \\\\\\\\ / * ? \\\" | :\",\"input.invalidEmptyInput\":\"{names, select, true {Navnet} other {Tittelfeltet}} kan ikke stå tomt\",\"input.nameTooLong\":\"{names, select, true {Navn} other {Titler}} kan ikke bestå av mer enn {maxLength} tegn\",\"input.nameEndsWithDot\":\"{names, select, true {Navn} other {Titler}} kan ikke slutte med et punktum\",\"input.weblink.nameRestricted\":\"Nettkoblinger kan ikke ha følgende titler: \\\"con\\\", \\\"prn\\\", \\\"aux\\\", \\\"nul\\\", \\\"com#\\\", \\\"lpt#\\\"\",\"input.nameRestricted\":\"Ressurser kan ikke ha følgende navn: con/prn/aux/nul/com#/lpt#\",\"input.weblink.invalidCharInput\":\"Titler kan ikke bestå bare av mellomrom eller inneholde følgende tegn: \\\\\\\\ / * ? \\\" | : < > \",\"input.name.invalidCharInput\":\"Navn kan ikke bestå bare av mellomrom eller inneholde følgende tegn: \\\\\\\\ / * ? \\\" | : < > \",\"cdpFooter.orphanedArtifactsWarning\":\"Publiserte koblinger som er koblet til elementer du flytter, beholder det opprinnelige prosjektet\",\"cdpFooter.libraryPrivacyWarning\":\"Hvis du har tillatelse til å dele et bibliotek som du legger til, vil medlemmene av prosjektet kunne se det\",\"toast.beforeOp.error.documentIsOpen\":\"Lukk {count, plural, =1 {dokumentet} other {dokumentene}} for å utføre denne handlingen.\",\"app.type.designSpecs\":\"DESIGNSPES\",\"app.type.prototype\":\"PROTOTYPE\",\"app.type.publishedLink\":\"PUBLISERT KOBLING\",\"popover.header\":\"Samarbeid med andre på et prosjekt, og del arbeidet ditt for tilbakemelding.\",\"popover.linkout\":\"Finn ut mer\",\"team.libraries.filter.all\":\"Alle\",\"team.libraries.filter.addedToYourLibraries\":\"Lagt til i bibliotekene dine\",\"team.libraries.filter.notAdded\":\"Ikke lagt til\",\"team.spaces.filter.all\":\"Alt\",\"team.spaces.filter.favorited\":\"Lagt til som favoritt\",\"team.filter.empty.heading\":\"Ingen prosjekter samsvarer med det valgte filteret\",\"team.filter.empty.description1\":\"Vi fant ingen resultater for \",\"team.filter.empty.description2\":\" i denne listen. Kontroller stavingen eller prøv med andre søkeord.\",\"team.filter.no.match.description\":\"Vi fant ingen resultater i denne listen. Kontroller stavingen eller prøv med andre filterkriterier.\",\"team.filter.filterText\":\"{filter}\",\"team.header.other.teams\":\"Andre arbeidsområder\",\"space.empty.heading\":\"Alt er på ett sted, og alle holdes oppdaterte\",\"space.empty.description\":\"Fyll dette prosjektet med arbeidsfiler og tilknyttet materiale. Inviter samarbeidspartnere til å bli med, så kan de legge til det de jobber med.\",\"space.empty.canvasHeading\":\"CREATIVE CLOUD CANVAS\",\"space.empty.actionsHeading\":\"LEGG TIL INNHOLD I PROSJEKTET DITT\",\"space.empty.createCanvas\":\"Nytt lerret\",\"space.empty.upload\":\"Legg til filer\",\"space.empty.createFolder\":\"Ny mappe\",\"space.empty.createWeblink\":\"Nettkoblinger\",\"space.empty.addResource\":\"Bibliotek\",\"folder.empty.heading\":\"Denne mappen er tom.\",\"folder.empty.description\":\"Begynn med å legge til filer for å fylle den.\",\"folder.discard.heading\":\"Denne mappen er slettet.\",\"folder.discard.description\":\"Kontakt administratoren din hvis du tror dette skyldes en feil, eller bla gjennom annet innhold.\",\"folder.error.description\":\"Det oppsto et problem med å laste inn innhold fra denne mappen.\",\"space.empty.section.createACanvas\":\"Opprett et lerret\",\"tooltip.opensInBrowser\":\"Åpnes i nettleseren\",\"space.empty.workingFiles\":\"Fortsett å legge til i dette prosjektet\",\"space.empty.canvasPopoverTitle\":\"Prøv Creative Cloud Canvas (Beta)\",\"space.empty.canvasPopoverContent\":\"Bruk lerret for å lage layout til, visualisere og gå gjennom kreativt arbeid.\",\"space.error.heading\":\"Kan ikke laste inn prosjektet\",\"space.error.description\":\"Det oppsto et problem med å laste inn innhold fra dette prosjektet.\",\"createTeamWizard.createTeam.sidebarHeading\":\"Opprett nytt\",\"createTeamWizard.createTeam.sidebarCopy\":\"Opprett et arbeidsområde for å holde alle oppdatert og organisert\",\"createTeamWizard.createTeam.sidebarCopy.adminconsole\":\"Konfigurer et sted der arbeidsgruppen din kan samarbeide og dele filer.\",\"createTeamWizard.createTeam.sidebarLink\":\"Finn ut mer\",\"createTeamWizard.createTeam.contentHeading\":\"Nytt arbeidsområde\",\"createTeamWizard.createTeam.loading\":\"Oppretter arbeidsområdet {name}\",\"createTeamWizard.inviteMembers.sidebarHeading\":\"Inviter medlemmer til arbeidsområdet {name}\",\"createTeamWizard.inviteMembers.sidebarCopy\":\"Begynn å skrive inn et navn eller en e-postadresse for å invitere medlemmer nå, eller hopp over dette trinnet og send invitasjon senere.\",\"createTeamWizard.inviteMembers.loading\":\"Inviterer medlemmer til arbeidsområdet {name}\",\"createTeamWizard.inviteMembers.contentHeading\":\"Inviter medlemmer\",\"createTeamWizard.inviteMembers.successToast\":\"Medlemmer er lagt til i nytt arbeidsområde\",\"createTeamWizard.progress\":\"Trinn {current} av {total}\",\"createTeamWizard.skipStep\":\"Hopp over\",\"teamDialog.createTeam.label\":\"Opprett nytt\",\"teamDialog.createTeam.infoBox.description\":\"Arbeidsområdet du oppretter, vil være forbeholdt inviterte. Alle som er lagt til, vil som standard ha redigeringstilgang.\",\"teamDialog.editTeam.label\":\"Rediger arbeidsområdet\",\"teamDialog.nameSection.placeholder\":\"Gi det nye arbeidsområdet ditt et navn\",\"teamDialog.nameSection.label\":\"Arbeidsområdenavn\",\"teamDialog.permissionsSection.label\":\"Hvem kan redigere dette arbeidsområdet\",\"teamDialog.permissionsSection.option.onlyInvited\":\"Kun inviterte personer\",\"teamDialog.descriptionSection.label\":\"Legg til en beskrivelse av arbeidsområdet (valgfritt)\",\"teamDialog.descriptionSection.placeholder\":\"Legg til noen ord om arbeidsområdet ditt\",\"teamsSidebar.noTeams\":\"Ingen arbeidsområder\",\"teamsSidebar.newTeamButton\":\"Opprett nytt\",\"teamsSidebar.adminTour.title\":\"Nytt! Opprett arbeidsområder\",\"teamsSidebar.adminTour.content\":\"Administratorer kan nå opprette arbeidsområder i Creative Cloud på nettet, noe som forenkler organiseringen rundt delt arbeid.\",\"teamsSidebarTeam.newSpaceButton\":\"Nytt prosjekt\",\"teamsSidebarTeam.header.newBadge\":\"NY\",\"teamsSidebarTeam.header.otherTeams\":\"Fra andre arbeidsområder\",\"teamsSidebarTeam.header.teams\":\"ARBEIDSOMRÅDER\",\"teamsSidebarTeam.header.previewLabel\":\"(forhåndsversjon)\",\"teamsSidebarTeam.header.previewCopy\":\"Arbeidsområder og prosjekter er tilgjengelig i en privat betaversjon.\",\"teamsSidebarTeam.header.previewLearnMoreText\":\"Finn ut mer\",\"teamsSidebarTeam.message.loading\":\"Laster inn...\",\"teamsSidebarTeam.message.noSpaces\":\"Du har ingen arbeidsområder eller prosjekter.\",\"teamsSidebarTeam.message.offline\":\"Du er frakoblet. Koble til igjen for å se arbeidsområdene og prosjektene dine.\",\"teamsSidebarTeam.message.error\":\"Det oppsto et problem ved lasting av arbeidsområdene og prosjekter.\",\"teams1up.error.description\":\"Det oppsto et problem ved innlasting av prosjektet.\",\"teams1up.error.heading\":\"Kan ikke laste inn prosjekter\",\"otherTeams.emptyMessage.header\":\"Kan ikke se arbeidsområdesiden\",\"otherTeams.emptyMessage.description1\":\"Du ble fjernet eller forlot det siste prosjektet som brukte \",\"otherTeams.emptyMessage.description2\":\" del. Kontakt administratoren din hvis du tror dette skyldes en feil.\",\"spaceTour.step0.title\":\"Dine prosjekter er her\",\"spaceTour.step0.content\":\"Prosjekter gjør det enklere for arbeidsgrupper å samarbeide og samle inn, organisere og dele filer og ressurser.\",\"spaceTour.step1.title\":\"Legg til alt du trenger til et prosjekt\",\"spaceTour.step1.content\":\"Samle arbeidsfiler, referansebilder, ressurser og annet under ett tak.\",\"spaceTour.step2.title\":\"Angi (og glem) tillatelser\",\"spaceTour.step2.content\":\"Gi riktig tilgang til samarbeidspartnere når du inviterer dem, så sparer du tid og innsats. Send skrivebeskyttede pakker til interessenter for gjennomgang og tilbakemeldinger.\",\"error.cantCreateSpace\":\"Lagringsplassen i arbeidsområdet er brukt opp\",\"error.exceedQuota.create.detail.description1\":\"Du kan ikke opprette noe nytt akkurat nå. Velg \",\"error.exceedQuota.description2\":\" for å frigjøre lagringsplass.\",\"error.exceedQuota.add.detail.description1\":\"Du kan ikke legge til noe nytt akkurat nå. Velg \",\"error.move.generic\":\"Kan ikke flytte fordi noe gikk galt\",\"error.move.signedOut\":\"Kan ikke flytte elementet fordi du er logget av\",\"error.move.permissionRevoked\":\"Kan ikke flytte elementet fordi du ble fjernet fra dette prosjektet\",\"error.move.deleted\":\"Dette elementet kan ikke flyttes fordi noen andre har slettet det\",\"error.move.duplicate\":\"Dette elementet kan ikke flyttes fordi det allerede eksisterer der du prøvde å flytte det\",\"error.copy.generic\":\"Kan ikke kopiere fordi noe gikk galt\",\"error.copy.signedOut\":\"Kan ikke kopiere elementet fordi du er logget av\",\"error.copy.permissionRevoked\":\"Kan ikke kopiere elementet fordi du ble fjernet fra dette prosjektet\",\"error.copy.deleted\":\"Dette elementet kan ikke kopieres fordi noen andre har slettet det\",\"error.copy.duplicate\":\"Dette elementet kan ikke kopieres fordi det allerede eksisterer der du prøvde å kopiere det\",\"checkbox.select\":\"Velg\",\"listItem.fileSize\":\"Filstørrelse\",\"facepile.additionalMembers\":\"Flere medlemmer +{count}\",\"facepile.memberName\":\"{name} – medlem\",\"coachmark.information\":\"informasjon\",\"toolbar.tools\":\"verktøy\",\"griditem.error.message\":\"Kan ikke hente\",\"griditem.error.button\":\"Prøv igjen\",\"ats.move.extendedNotification\":\"Du får en melding når flyttingen er fullført.\",\"file.deleted.error.heading\":\"Kan ikke {operation} filen\",\"file.deleted.error.description\":\"Du kan ikke {operation} denne filen, da den er slettet. Gjenopprett filen og prøv igjen eller velg en annen plassering.\",\"file.deleted.rename.error.description\":\"Du kan ikke gi nytt navn til denne filen, da den er slettet. Velg Gå til slettet for å gjenopprette filen.\"}");

/***/ }),

/***/ "pFRH":
/***/ (function(module, exports, __webpack_require__) {

var constant = __webpack_require__("cvCv"),
    defineProperty = __webpack_require__("O0oS"),
    identity = __webpack_require__("zZ0H");
/**
 * The base implementation of `setToString` without support for hot loop shorting.
 *
 * @private
 * @param {Function} func The function to modify.
 * @param {Function} string The `toString` result.
 * @returns {Function} Returns `func`.
 */


var baseSetToString = !defineProperty ? identity : function (func, string) {
  return defineProperty(func, 'toString', {
    'configurable': true,
    'enumerable': false,
    'value': constant(string),
    'writable': true
  });
};
module.exports = baseSetToString;

/***/ }),

/***/ "pJ3W":
/***/ (function(module) {

module.exports = JSON.parse("{\"File\":\"Tiedosto\",\"Folder\":\"Kansio\"}");

/***/ }),

/***/ "pM4T":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _events = __webpack_require__("mdZ3");

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _icon = __webpack_require__("vo16");

var _convertUnsafeMethod = _interopRequireDefault(__webpack_require__("8nyd"));

var _CornerTriangle = _interopRequireDefault(__webpack_require__("Btp7"));

var _filterDOMProps = _interopRequireDefault(__webpack_require__("Cv/Q"));

var _focusRing = _interopRequireWildcard(__webpack_require__("PBY+"));

var _propTypes = _interopRequireDefault(__webpack_require__("17x9"));

var _react = _interopRequireWildcard(__webpack_require__("q1tI"));

__webpack_require__("8LZn");

const _excluded = ["element", "label", "children", "variant", "logic", "quiet", "icon", "selected", "block", "className", "disabled", "invalid", "onMouseDown", "onMouseUp", "autoFocus", "holdAffordance"];

var _class, _class2, _temp2;

function _getRequireWildcardCache(nodeInterop) {
  if (typeof WeakMap !== "function") return null;
  var cacheBabelInterop = new WeakMap();
  var cacheNodeInterop = new WeakMap();
  return (_getRequireWildcardCache = function (nodeInterop) {
    return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
  })(nodeInterop);
}

function _interopRequireWildcard(obj, nodeInterop) {
  if (!nodeInterop && obj && obj.__esModule) {
    return obj;
  }

  if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
    return {
      default: obj
    };
  }

  var cache = _getRequireWildcardCache(nodeInterop);

  if (cache && cache.has(obj)) {
    return cache.get(obj);
  }

  var newObj = {};
  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;

  for (var key in obj) {
    if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
      var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;

      if (desc && (desc.get || desc.set)) {
        Object.defineProperty(newObj, key, desc);
      } else {
        newObj[key] = obj[key];
      }
    }
  }

  newObj.default = obj;

  if (cache) {
    cache.set(obj, newObj);
  }

  return newObj;
}

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

if (false) {} else if (false) {} else {
  __webpack_require__("Pe35");
}

if (true) __webpack_require__("g46h");
if (true) __webpack_require__("uxdj");
if (true) __webpack_require__("mCGg");
if (true) __webpack_require__("E3jB"); // For backward compatibility with coral

const VARIANTS = {
  quiet: {
    variant: 'primary',
    quiet: true
  },
  minimal: {
    variant: 'secondary',
    quiet: true
  },
  icon: {
    variant: 'action',
    quiet: true
  }
};
/**
 * A **button** represents an action a user can take. Buttons can be clicked or tapped to
 * perform an action or to navigate to another page. Buttons in Spectrum have several variations
 * for different uses and multiple levels of loudness for various attention-getting needs.
 */

let Button = (0, _convertUnsafeMethod.default)(_class = (0, _focusRing.default)(_class = (_temp2 = _class2 = class Button extends _react.Component {
  constructor(...args) {
    var _temp;

    return _temp = super(...args), this.onClick = (event, ...rest) => {
      // This is needed when `element` is an anchor or something similar.
      // When `element` is a button, we won't even get here if it's disabled and clicked.
      if (this.props.disabled) {
        // If the element is an anchor with an href, we need to preventDefault() or the browser
        // will follow the link.
        event.preventDefault();
      } else if (this.props.onClick) {
        this.props.onClick(event, ...rest);
      }
    }, this.onKeyDownSpace = event => {
      if (event.key === ' ' || event.key === 'Enter') {
        event.preventDefault();
        this.buttonRef.click();
      }
    }, this.setButtonRef = b => this.buttonRef = b, _temp;
  }

  componentDidMount() {
    if (this.props.autoFocus) {
      // wait a frame to make sure the button in the DOM and focusable
      requestAnimationFrame(() => this.focus());
    }
  }
  /**
   * Focus the button
   */


  focus() {
    if (this.buttonRef && !this.props.disabled && this.buttonRef.focus) {
      this.buttonRef.focus();
    }
  }

  render() {
    let _this$props = this.props,
        {
      element: Element = 'button',
      label,
      children,
      variant = 'secondary',
      logic,
      quiet,
      icon,
      selected,
      block,
      className,
      disabled,
      invalid,
      onMouseDown,
      onMouseUp,
      autoFocus,
      holdAffordance
    } = _this$props,
        otherProps = _objectWithoutProperties(_this$props, _excluded); // Map variants for backwards compatibility


    if (VARIANTS[variant]) {
      let mappedVariant = VARIANTS[variant];
      let variantName = (mappedVariant.quiet ? 'quiet ' : '') + `"${mappedVariant.variant}"`;
      console.warn(`The "${variant}" variant of Button is deprecated. Please use the ${variantName} variant instead.`);
      ({
        variant,
        quiet
      } = mappedVariant);
    }

    let shouldRenderHoldAffordance = false; // Some button variants were broken out into their own components, map them appropriately

    let baseButtonClass = 'spectrum-Button';

    if (variant === 'action' || variant === 'toggle') {
      baseButtonClass = 'spectrum-ActionButton';
      shouldRenderHoldAffordance = holdAffordance;

      if (variant === 'toggle') {
        quiet = true;
      }

      variant = '';
    } else if (logic) {
      baseButtonClass = 'spectrum-LogicButton';
    } else if (variant === 'clear') {
      baseButtonClass = 'spectrum-ClearButton';
      variant = '';
    } else if (variant === 'field') {
      baseButtonClass = 'spectrum-FieldButton';
      variant = '';
    } else if (variant === 'tool') {
      baseButtonClass = 'spectrum-Tool'; // hold affordance is really only a part of tool.

      shouldRenderHoldAffordance = holdAffordance;
      variant = '';
    }

    if (Element !== 'button') {
      otherProps.role = 'button';
      otherProps.tabIndex = disabled ? null : otherProps.tabIndex || 0;
      otherProps['aria-disabled'] = disabled || null;

      if (Element === 'a' && disabled && otherProps.href) {
        otherProps.href = null;
      }

      otherProps.onKeyDown = disabled ? null : this.onKeyDownSpace;
    }

    let labelContents = label || (typeof children === 'string' ? children : null);
    let ariaExpanded = null;

    if (otherProps['aria-expanded'] !== undefined) {
      ariaExpanded = otherProps['aria-expanded'];
    } else if (otherProps['aria-haspopup']) {
      ariaExpanded = selected || null;
    }

    const filteredProps = typeof Element === 'string' ? (0, _filterDOMProps.default)(otherProps) : otherProps;
    return /*#__PURE__*/_react.default.createElement(Element, _extends({}, filteredProps, {
      className: (0, _classnames.default)(baseButtonClass, quiet ? `${baseButtonClass}--quiet` : '', variant ? `${baseButtonClass}--${variant}` : '', {
        'is-selected': selected,
        'is-disabled': disabled,
        'is-invalid': invalid,
        'spectrum-Button--block': block,
        [_focusRing.FOCUS_RING_CLASSNAME]: autoFocus
      }, className),
      disabled: disabled,
      "aria-invalid": invalid || null,
      "aria-expanded": ariaExpanded,
      onClick: this.onClick,
      onMouseDown: (0, _events.chain)(this.onMouseDown, _events.focusAfterMouseEvent.bind(this, onMouseDown)),
      onMouseUp: (0, _events.chain)(this.onMouseUp, _events.focusAfterMouseEvent.bind(this, onMouseUp)),
      ref: this.setButtonRef
    }), (0, _icon.cloneIcon)(icon, {
      size: 'S'
    }), labelContents && /*#__PURE__*/_react.default.createElement("span", {
      className: baseButtonClass + '-label'
    }, labelContents), shouldRenderHoldAffordance && /*#__PURE__*/_react.default.createElement(_CornerTriangle.default, {
      role: "presentation",
      size: null,
      className: "spectrum-Tool-hold"
    }), typeof children !== 'string' && children);
  }

}, _class2.propTypes = {
  /**
   * The variant of button to display
   */
  variant: _propTypes.default.oneOf(['cta', 'primary', 'secondary', 'warning', 'action', 'toggle', 'and', 'or', 'icon', 'quiet', 'minimal', 'dropdown', 'clear', 'field', 'tool', 'overBackground']),

  /**
   * Whether the button should render using a quiet variant
   */
  quiet: _propTypes.default.bool,

  /**
   * Whether the button is a logic button variant
   */
  logic: _propTypes.default.bool,

  /**
   * Whether the button is disabled
   */
  disabled: _propTypes.default.bool,

  /**
   * Whether the button represents a selected state
   */
  selected: _propTypes.default.bool,

  /**
   * Whether the button represents an invalid state
   */
  invalid: _propTypes.default.bool,

  /**
   * An icon to render in the button.
   */
  icon: _propTypes.default.element,

  /**
   * The label to display in the button
   */
  label: _propTypes.default.string,

  /**
   * Whether the button is a block element
   */
  block: _propTypes.default.bool,

  /**
   * The DOM element to use to render the button
   */
  element: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.func]),

  /**
   * Whether the button should be auto focused on mount
   */
  autoFocus: _propTypes.default.bool,

  /**
   * A click handler for the button
   */
  onClick: _propTypes.default.func,

  /**
   * A visual variation that puts a small triangle in the lower right
   */
  holdAffordance: _propTypes.default.bool
}, _class2.defaultProps = {
  autoFocus: false,
  block: false,
  disabled: false,
  element: 'button',
  invalid: false,
  label: '',
  logic: false,
  quiet: false,
  selected: false,
  variant: 'secondary',
  holdAffordance: false
}, _temp2)) || _class) || _class;

exports.default = Button;

/***/ }),

/***/ "pNEv":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(global) {/* harmony import */ var _react_react_spectrum_Provider__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("bUsb");
/* harmony import */ var _react_react_spectrum_Provider__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Provider__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("2vnA");
/* harmony import */ var mobx_react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("okNM");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _hosts_CCDApi__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("rvkL");
/* harmony import */ var _stores_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("C0qj");
/* harmony import */ var _utils_constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("a375");
/* harmony import */ var _CloudDocuments__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("kIL/");
/* harmony import */ var _Deleted__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("D+J2");
/* harmony import */ var _SharedWithYou__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__("EzOH");
/* harmony import */ var _CCDDialogWrapper__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__("3d2t");
/* harmony import */ var _utils_sleep__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__("4CRX");
/* harmony import */ var _contexts_ScrollToElementContext__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__("/jqd");
/* harmony import */ var _utils_normalize_path__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__("7L8R");
/* harmony import */ var _utils_drag_utils__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__("RQ+a");
/* harmony import */ var _polyfills_react_intl__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__("dAeb");
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;
};
var __metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2020 Adobe Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Incorporated.
 **************************************************************************/
















// @ts-ignore
const DefaultResizeObserver = global.ResizeObserver;
const maxMsForAssetToAppearInCdoCollection = 500;
let CCDContentView = class CCDContentView extends react__WEBPACK_IMPORTED_MODULE_3__["Component"] {
    constructor(props) {
        super(props);
        this.resizeRef = react__WEBPACK_IMPORTED_MODULE_3___default.a.createRef();
        this.scrollToItemToastKey = -1;
        this.callbacks = {
            ...this.props.callbacks,
            onOpenDocuments: (docInfoArray) => this.ccdApi.openDocuments(docInfoArray),
            canOpenItems: (docInfoArray) => this.ccdApi.isOpenActionAvailable(docInfoArray),
            onOpenShareSheet: (shareSheetData, shareSheetAction) => {
                this.ccdApi.showShareSheet(shareSheetData, shareSheetAction);
            },
            onOpenExternalLink(href) {
                window.open(href, '_blank');
            },
            addToFavourites: (elements, index) => {
                this.ccdApi.addToFavourites(elements, index);
            },
            onDragOverAsset: (element, e, dragSource) => {
                if (!element.isFolder || !this.renderDragImportUI(dragSource)) {
                    return;
                }
                const { intl } = this.ccdApi;
                const { rootTitle } = this.getHeaderConfig();
                const roots = [_utils_constants__WEBPACK_IMPORTED_MODULE_6__[/* ROOT_FOLDER_PATH */ "q"], _hosts_CCDApi__WEBPACK_IMPORTED_MODULE_4__[/* SWY_SUBROUTE */ "c"], _utils_constants__WEBPACK_IMPORTED_MODULE_6__[/* ARCHIVE_FOLDER_PATH */ "a"]]; // TS
                const displayName = roots.includes(element.title)
                    ? intl.formatMessage({ id: rootTitle })
                    : element.title;
                this.props.filesStore.context.setHeader('files', {
                    items: [
                        {
                            id: 'import-header',
                            label: intl.formatMessage({ id: 'header.dragImport' }, { displayName }),
                        },
                    ],
                    readOnly: true,
                    highlight: Object(_utils_normalize_path__WEBPACK_IMPORTED_MODULE_13__[/* default */ "a"])(element.path) === this.props.filesStore.docStore.currentPath,
                });
            },
            onDragLeaveCDO: (e, dragSource) => {
                if (!this.renderDragImportUI(dragSource)) {
                    return;
                }
                this.updateHeader(this.props.filesStore.docStore.currentPath);
            },
            onPreviewDocument: (docInfo) => this.ccdApi.previewDocument(docInfo),
            canSchedule: (mimeTypes) => this.ccdApi.isScheduleActionAvailable(mimeTypes),
            onScheduleDocument: (docInfo) => this.ccdApi.scheduleDocument(docInfo),
        };
        this.openDialog = ele => new Promise(resolve => {
            const { filesStore, wrapperClass, theme } = this.props;
            const { intl, cdoMetrics } = this.ccdApi;
            filesStore.context.showDialog('custom', {
                wrapInDialog: false,
                content: (react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(_CCDDialogWrapper__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"], { dialog: ele, onDismissDialog: resolve, wrapperClass: wrapperClass, intl: intl, filesStore: filesStore, cdoMetrics: cdoMetrics, callbacks: this.callbacks, theme: theme })),
            });
            return [];
        });
        this.isFooterHidden = (subRoute) => {
            const { filesStore } = this.props;
            const { docStore } = filesStore;
            if (subRoute === _hosts_CCDApi__WEBPACK_IMPORTED_MODULE_4__[/* SWY_SUBROUTE */ "c"]) {
                if (!docStore.sharedWithYouCollection ||
                    !docStore.sharedWithYouCollection.isOnline ||
                    docStore.sharedWithYouCollection.isEmpty ||
                    docStore.sharedWithYouCollection.isDoneAndEmpty) {
                    return true;
                }
            }
            else if (subRoute === _utils_constants__WEBPACK_IMPORTED_MODULE_6__[/* ARCHIVE_FOLDER_PATH */ "a"]) {
                if (!docStore.archivedFolderCollection ||
                    docStore.archivedFolderCollection.isDoneAndEmpty ||
                    docStore.archivedFolderCollection.isEmpty ||
                    docStore.hasCloudNotificationErrorStatus) {
                    return true;
                }
            }
            else if (subRoute === _utils_constants__WEBPACK_IMPORTED_MODULE_6__[/* ROOT_FOLDER_PATH */ "q"]) {
                if (!docStore.currentFolderCollection ||
                    docStore.currentFolderCollection.isDoneAndEmpty ||
                    docStore.hasCloudNotificationErrorStatus) {
                    return true;
                }
            }
            return false;
        };
        this.isRightRailHidden = (subRoute) => {
            var _a;
            const { filesStore } = this.props;
            const { docStore } = filesStore;
            if (subRoute === _hosts_CCDApi__WEBPACK_IMPORTED_MODULE_4__[/* SWY_SUBROUTE */ "c"] || subRoute === _utils_constants__WEBPACK_IMPORTED_MODULE_6__[/* ARCHIVE_FOLDER_PATH */ "a"]) {
                return this.isFooterHidden(subRoute);
            }
            // CloudDocuments always shows the right rail so users can create folders inside empty folders
            // but don't show if listing isn't done because we could be waiting on the authtoken and
            // some actions like creating a new folder will fail
            return ![_stores_constants__WEBPACK_IMPORTED_MODULE_5__[/* ProcessingState */ "n"].Done, _stores_constants__WEBPACK_IMPORTED_MODULE_5__[/* ProcessingState */ "n"].Error].includes((_a = docStore.currentFolderCollection) === null || _a === void 0 ? void 0 : _a.fetchState);
        };
        this.onSelectionChange = (selectionStore, allActions, actionHandler) => {
            const { filesStore } = this.props;
            const { docStore } = filesStore;
            if (!docStore.currentFolderCollection) {
                return;
            }
            const subRoute = this.getSubRoute();
            const hidden = this.isRightRailHidden(subRoute);
            this.ccdApi.onSelectionChange(selectionStore, allActions, actionHandler, subRoute, hidden);
        };
        this.onItemContextMenu = (event, element, actions) => {
            this.ccdApi.onContextMenu(event, element, actions);
        };
        this.renderDragImportUI = (dragSource) => this.callbacks.canImport() && dragSource === _utils_drag_utils__WEBPACK_IMPORTED_MODULE_14__[/* DragSource */ "d"].IMPORT;
        const { filesStore } = props;
        this.ccdApi = new _hosts_CCDApi__WEBPACK_IMPORTED_MODULE_4__[/* CCDApi */ "a"](filesStore);
        filesStore.docStore.setOpenToastFunc(this.ccdApi.showToast);
        this.state = {
            scrollToElement: undefined,
        };
    }
    componentDidMount() {
        const { filesStore } = this.props;
        const { cdoStore, docStore } = filesStore;
        // using autorun to listen to sort/view changes here so that its only reacting when CCDContentView is mounted
        Object(mobx_react__WEBPACK_IMPORTED_MODULE_2__[/* disposeOnUnmount */ "c"])(this, Object(mobx__WEBPACK_IMPORTED_MODULE_1__[/* autorun */ "k"])(() => {
            this.updateFooter(cdoStore.view, docStore.activeSort, docStore.activeSortDirection, docStore.activeSharedWithYouSort, docStore.activeSharedWithYouSortDirection);
        }));
        // Update header on path change
        Object(mobx_react__WEBPACK_IMPORTED_MODULE_2__[/* disposeOnUnmount */ "c"])(this, Object(mobx__WEBPACK_IMPORTED_MODULE_1__[/* autorun */ "k"])(() => {
            this.updateHeader(docStore.currentPath);
        }));
        Object(mobx_react__WEBPACK_IMPORTED_MODULE_2__[/* disposeOnUnmount */ "c"])(this, Object(mobx__WEBPACK_IMPORTED_MODULE_1__[/* reaction */ "B"])(() => {
            var _a;
            return docStore.isOnline &&
                [_stores_constants__WEBPACK_IMPORTED_MODULE_5__[/* ProcessingState */ "n"].Done, _stores_constants__WEBPACK_IMPORTED_MODULE_5__[/* ProcessingState */ "n"].Error].includes((_a = docStore.activeCollection) === null || _a === void 0 ? void 0 : _a.fetchState);
        }, () => this.updateMenusOnNetworkStatusChange()));
        // Limited browser support for this, but it's only needed on CCD. Fires a custom event
        // when the wrapper div resizes, which GridView and ListView listen to. May also fire when
        // the window resizes, but this should be OK as long as the Grid/ListView resize handlers are
        // throttled.
        if (DefaultResizeObserver) {
            this.resizeObserver = new DefaultResizeObserver(() => {
                window.dispatchEvent(new CustomEvent(_stores_constants__WEBPACK_IMPORTED_MODULE_5__[/* CCD_CONTENTVIEW_RESIZE_EVENT */ "d"]));
            });
            this.resizeObserver.observe(this.resizeRef.current);
        }
        this.handleScrollToItemRequest();
    }
    componentDidUpdate(prevProps) {
        const { filesStore, route } = this.props;
        const { cdoStore, docStore } = filesStore;
        // SWY does not share sort state with other views, so there isn't a reaction when switching between
        // SWY and, say, Deleted. Or vice versa. So update the sort options when the route changes.
        if (prevProps.route !== route) {
            this.updateFooter(cdoStore.view, docStore.activeSort, docStore.activeSortDirection, docStore.activeSharedWithYouSort, docStore.activeSharedWithYouSortDirection);
            this.updateHeader(docStore.currentPath);
            this.handleScrollToItemRequest();
        }
    }
    componentWillUnmount() {
        if (this.resizeObserver) {
            this.resizeObserver.disconnect();
        }
    }
    updateMenusOnNetworkStatusChange() {
        const subRoute = this.getSubRoute();
        this.ccdApi.updateMenusOnNetworkStatusChange(subRoute, this.isRightRailHidden(subRoute));
    }
    getRouteInfo() {
        const { route } = this.props;
        const routeUrl = new URL(route.substring(_hosts_CCDApi__WEBPACK_IMPORTED_MODULE_4__[/* ROOT_ROUTE */ "b"].length), 'https://localhost'); // localhost because URL requires a domain
        const segmentsArr = routeUrl.pathname.slice(1).split('/'); // slice(1) to get rid of leading '/'
        const root = segmentsArr[0];
        const pathFromQueryParams = routeUrl.searchParams.get('path');
        let path = '';
        if (pathFromQueryParams) {
            const pathSegments = pathFromQueryParams.split(root);
            if (pathSegments && pathSegments[1]) {
                path = Object(_utils_normalize_path__WEBPACK_IMPORTED_MODULE_13__[/* default */ "a"])(pathSegments[1]);
            }
        }
        const pathUrn = routeUrl.searchParams.get('pathUrn'); // get() protects against duplicate params
        const assetUrn = routeUrl.searchParams.get('assetUrn');
        return {
            root,
            path,
            pathUrn,
            assetUrn,
        };
    }
    /**
     * Inspects the current route to see if it contains a request to scroll to an item. If so, it makes a best-effort to
     * load the collection that contains the item and scroll to it. Current source of links is CCD search and
     * invite-to-edit links, both of which may be out of date, so results are not guaranteed.
     *
     * A valid scroll to item request has
     *     - path: the containing view (e.g. `/cloud-content/myFolder` or `/shared-with-you`)
     *     - pathUrn: for folders, the cloudID of the containing folder
     *     - assetUrn: the cloudID of the target item
     */
    async handleScrollToItemRequest() {
        const { filesStore } = this.props;
        const { docStore } = filesStore;
        // cancel previous request
        if (this.scrollToItemReject) {
            this.scrollToItemReject();
        }
        this.ccdApi.hideToast(this.scrollToItemToastKey);
        this.scrollToItemToastKey = -1;
        const sleepDuration = 100;
        const { root, path, pathUrn, assetUrn } = this.getRouteInfo();
        // no scroll-to-item request pending, or not one that's supported
        if (!assetUrn || (root !== _utils_constants__WEBPACK_IMPORTED_MODULE_6__[/* ROOT_FOLDER_PATH */ "q"] && root !== _hosts_CCDApi__WEBPACK_IMPORTED_MODULE_4__[/* SWY_SUBROUTE */ "c"])) {
            return;
        }
        // This promise allows us to cancel a scroll to item request before it finishes
        const rejectPromise = new Promise((resolve, reject) => {
            this.scrollToItemReject = reject;
        });
        // don't try to handle the scroll until docStore is initialized.
        await Object(mobx__WEBPACK_IMPORTED_MODULE_1__[/* when */ "I"])(() => docStore.currentFolderCollection !== undefined);
        let collection;
        if (root === _utils_constants__WEBPACK_IMPORTED_MODULE_6__[/* ROOT_FOLDER_PATH */ "q"]) {
            // TODO: check if we need to pass pathUrn to this API with SAM
            // Will require some work in setCurrentPath API if pathUrn is passed.
            docStore.setCurrentPath(`${root}/${path}`);
            collection = docStore.currentFolderCollection;
        }
        else if (root === _hosts_CCDApi__WEBPACK_IMPORTED_MODULE_4__[/* SWY_SUBROUTE */ "c"]) {
            collection = docStore.sharedWithYouCollection;
        }
        try {
            // Not adding a force refresh for cloud documents, since its expected that SAM will always be in good state.
            // If we land up in issues, refresh logic needs to be added here.
            if (root === _hosts_CCDApi__WEBPACK_IMPORTED_MODULE_4__[/* SWY_SUBROUTE */ "c"]) {
                if (!collection.findByUrn(assetUrn)) {
                    // SWY may be out of date, force refresh.
                    collection.setIsDirty();
                    if (collection.fetchState === _stores_constants__WEBPACK_IMPORTED_MODULE_5__[/* ProcessingState */ "n"].Done) {
                        this.scrollToItemToastKey = this.ccdApi.showToast({
                            variant: 'info',
                            message: 'ccd.scroll_to_item.fetching',
                            closeable: true,
                            delay: 10000,
                        });
                        // If it's done, restart it now.
                        // fetchState does not change instantly to fetching, we will need to wait
                        await Promise.race([rejectPromise, docStore.fetchSharedWithYou()]);
                    }
                }
            }
            // use `when` to create a promise that resolves when the collection starts loading
            const pendingPromise = Object(mobx__WEBPACK_IMPORTED_MODULE_1__[/* when */ "I"])(() => collection.fetchState !== _stores_constants__WEBPACK_IMPORTED_MODULE_5__[/* ProcessingState */ "n"].Pending);
            await Promise.race([rejectPromise, pendingPromise]);
            // Use `when` to create a promise that resolves when the collection is done loading
            const loadingPromise = Object(mobx__WEBPACK_IMPORTED_MODULE_1__[/* when */ "I"])(() => collection.fetchState === _stores_constants__WEBPACK_IMPORTED_MODULE_5__[/* ProcessingState */ "n"].Done ||
                collection.fetchState === _stores_constants__WEBPACK_IMPORTED_MODULE_5__[/* ProcessingState */ "n"].Error);
            // Wait for whichever promise completes first
            await Promise.race([rejectPromise, loadingPromise]);
            // CCXCD-8899
            // Wait for the asset we want to scroll to to appear in the Cdo Collection. This was introduced
            // to account for a delay between an asset appearing in Sam's underlying asset list and Cdo's
            // asset collection.
            const assetInCdoCollectionPromise = Object(mobx__WEBPACK_IMPORTED_MODULE_1__[/* when */ "I"])(() => Boolean(collection.findByUrn(assetUrn)));
            await Promise.race([
                assetInCdoCollectionPromise,
                Object(_utils_sleep__WEBPACK_IMPORTED_MODULE_11__[/* default */ "a"])(maxMsForAssetToAppearInCdoCollection),
                rejectPromise,
            ]);
            this.ccdApi.hideToast(this.scrollToItemToastKey);
            this.scrollToItemToastKey = -1;
            const scrollToElement = collection.findByUrn(assetUrn);
            if (scrollToElement) {
                const { selectionStore } = this.ccdApi;
                if (selectionStore) {
                    selectionStore.clear();
                    selectionStore.addSelections([scrollToElement]);
                    // TODO: Open the element for SWY
                }
                this.setState({ scrollToElement });
                // give some time for state to propagate and react-virtualized to scroll to the right item
                await Promise.race([rejectPromise, Object(_utils_sleep__WEBPACK_IMPORTED_MODULE_11__[/* default */ "a"])(sleepDuration)]);
                this.setState({ scrollToElement: undefined });
            }
            else {
                this.scrollToItemToastKey = this.ccdApi.showToast({
                    message: 'ccd.scroll_to_item.error',
                    variant: 'error',
                    closeable: true,
                    delay: 5000,
                });
            }
        }
        catch (e) {
            // scroll-to-item request was cancelled
            this.setState({ scrollToElement: undefined });
        }
        finally {
            this.scrollToItemReject = undefined;
        }
    }
    updateHeader(inPath) {
        const { path = inPath, rootTitle } = this.getHeaderConfig();
        this.ccdApi.setHeader(path, rootTitle);
    }
    getSubRoute() {
        return this.getRouteInfo().root;
    }
    getHeaderConfig() {
        switch (this.getSubRoute()) {
            case _hosts_CCDApi__WEBPACK_IMPORTED_MODULE_4__[/* SWY_SUBROUTE */ "c"]:
                return {
                    rootTitle: 'header.SharedWithYou',
                    path: _hosts_CCDApi__WEBPACK_IMPORTED_MODULE_4__[/* SWY_SUBROUTE */ "c"],
                };
            case _utils_constants__WEBPACK_IMPORTED_MODULE_6__[/* ARCHIVE_FOLDER_PATH */ "a"]:
                return {
                    rootTitle: 'header.Deleted',
                    path: _utils_constants__WEBPACK_IMPORTED_MODULE_6__[/* ARCHIVE_FOLDER_PATH */ "a"],
                };
            case _utils_constants__WEBPACK_IMPORTED_MODULE_6__[/* ROOT_FOLDER_PATH */ "q"]:
            default:
                return {
                    rootTitle: 'header.CloudDocuments',
                };
        }
    }
    updateFooter(viewMode, sortBy, sortDir, swySortBy, swySortDir) {
        const subRoute = this.getSubRoute();
        const isSWY = subRoute === _hosts_CCDApi__WEBPACK_IMPORTED_MODULE_4__[/* SWY_SUBROUTE */ "c"];
        const sortOptions = isSWY
            ? [_stores_constants__WEBPACK_IMPORTED_MODULE_5__[/* UXSortBy */ "t"].title, _stores_constants__WEBPACK_IMPORTED_MODULE_5__[/* UXSortBy */ "t"].shareDate]
            : [_stores_constants__WEBPACK_IMPORTED_MODULE_5__[/* UXSortBy */ "t"].title, _stores_constants__WEBPACK_IMPORTED_MODULE_5__[/* UXSortBy */ "t"].modifiedDate];
        const selectedSort = isSWY ? swySortBy : sortBy;
        const selectedSortDir = isSWY ? swySortDir : sortDir;
        const hidden = this.isFooterHidden(subRoute);
        this.ccdApi.setFooter(hidden, viewMode, sortOptions, selectedSort, selectedSortDir, isSWY);
    }
    renderRoute() {
        const subRoute = this.getSubRoute();
        const commonProps = {
            onItemContextMenu: this.onItemContextMenu,
            onSelectionChange: this.onSelectionChange,
        };
        switch (subRoute) {
            case _hosts_CCDApi__WEBPACK_IMPORTED_MODULE_4__[/* SWY_SUBROUTE */ "c"]:
                return react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(_SharedWithYou__WEBPACK_IMPORTED_MODULE_9__[/* default */ "a"], Object.assign({}, commonProps));
            case _utils_constants__WEBPACK_IMPORTED_MODULE_6__[/* ARCHIVE_FOLDER_PATH */ "a"]:
                return react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(_Deleted__WEBPACK_IMPORTED_MODULE_8__[/* default */ "a"], Object.assign({}, commonProps));
            case _utils_constants__WEBPACK_IMPORTED_MODULE_6__[/* ROOT_FOLDER_PATH */ "q"]:
            default:
                return react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(_CloudDocuments__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"], Object.assign({}, commonProps));
        }
    }
    render() {
        const { wrapperClass, filesStore, theme } = this.props;
        const { cdoMetrics, intl } = this.ccdApi;
        const { cdoStore, ingestController } = filesStore;
        const { scrollToElement } = this.state;
        const ScrollToElementContextInst = _contexts_ScrollToElementContext__WEBPACK_IMPORTED_MODULE_12__[/* default */ "a"].getContext();
        // TODO: Remove once https://jira.corp.adobe.com/browse/CCXCD-9026 is implemented
        const className = `cdoCCDContentView cdoCoreVariables theme-${theme}`;
        return (react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(ScrollToElementContextInst.Provider, { value: scrollToElement },
            react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement("div", { className: className },
                react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement("div", { ref: this.resizeRef, className: wrapperClass, style: {
                        height: '100%',
                        width: '100%',
                        position: 'absolute',
                        // eslint-disable-next-line @typescript-eslint/no-magic-numbers
                        paddingLeft: cdoStore.view === _utils_constants__WEBPACK_IMPORTED_MODULE_6__[/* ViewMode */ "v"].Grid ? 16 : 0,
                        backgroundColor: 'var(--cdoViewBackgroundColor)',
                    } },
                    react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(_react_react_spectrum_Provider__WEBPACK_IMPORTED_MODULE_0___default.a, { theme: theme, scale: "medium", style: {
                            height: '100%',
                            width: '100%',
                        } },
                        react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(_polyfills_react_intl__WEBPACK_IMPORTED_MODULE_15__[/* RawIntlProvider */ "b"], { value: intl },
                            react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(mobx_react__WEBPACK_IMPORTED_MODULE_2__[/* Provider */ "b"], { cdoStore: filesStore.cdoStore, callbacks: this.callbacks, assetSyncStateStore: filesStore.assetSyncStateStore, openModalDialog: this.openDialog, selectionStore: filesStore.selectionStore, metrics: this.ccdApi.cdoMetrics, theme: theme }, this.renderRoute())))))));
    }
};
CCDContentView = __decorate([
    mobx_react__WEBPACK_IMPORTED_MODULE_2__[/* observer */ "e"],
    __metadata("design:paramtypes", [Object])
], CCDContentView);
/* unused harmony default export */ var _unused_webpack_default_export = (CCDContentView);

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("yLpj")))

/***/ }),

/***/ "pRiV":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return createStackParser; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return getFunctionName; });
/* unused harmony export nodeStackLineParser */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return stackParserFromStackParserOptions; });
/* unused harmony export stripSentryFramesAndReverse */
/* harmony import */ var _buildPolyfills__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("fqQG");

const STACKTRACE_LIMIT = 50;
/**
 * Creates a stack parser with the supplied line parsers
 *
 * StackFrames are returned in the correct order for Sentry Exception
 * frames and with Sentry SDK internal frames removed from the top and bottom
 *
 */

function createStackParser(...parsers) {
  const sortedParsers = parsers.sort((a, b) => a[0] - b[0]).map(p => p[1]);
  return (stack, skipFirst = 0) => {
    const frames = [];

    for (const line of stack.split('\n').slice(skipFirst)) {
      // https://github.com/getsentry/sentry-javascript/issues/5459
      // Remove webpack (error: *) wrappers
      const cleanedLine = line.replace(/\(error: (.*)\)/, '$1');

      for (const parser of sortedParsers) {
        const frame = parser(cleanedLine);

        if (frame) {
          frames.push(frame);
          break;
        }
      }
    }

    return stripSentryFramesAndReverse(frames);
  };
}
/**
 * Gets a stack parser implementation from Options.stackParser
 * @see Options
 *
 * If options contains an array of line parsers, it is converted into a parser
 */


function stackParserFromStackParserOptions(stackParser) {
  if (Array.isArray(stackParser)) {
    return createStackParser(...stackParser);
  }

  return stackParser;
}
/**
 * @hidden
 */


function stripSentryFramesAndReverse(stack) {
  if (!stack.length) {
    return [];
  }

  let localStack = stack;
  const firstFrameFunction = localStack[0].function || '';
  const lastFrameFunction = localStack[localStack.length - 1].function || ''; // If stack starts with one of our API calls, remove it (starts, meaning it's the top of the stack - aka last call)

  if (firstFrameFunction.indexOf('captureMessage') !== -1 || firstFrameFunction.indexOf('captureException') !== -1) {
    localStack = localStack.slice(1);
  } // If stack ends with one of our internal API calls, remove it (ends, meaning it's the bottom of the stack - aka top-most call)


  if (lastFrameFunction.indexOf('sentryWrapped') !== -1) {
    localStack = localStack.slice(0, -1);
  } // The frame where the crash happened, should be the last entry in the array


  return localStack.slice(0, STACKTRACE_LIMIT).map(frame => ({ ...frame,
    filename: frame.filename || localStack[0].filename,
    function: frame.function || '?'
  })).reverse();
}

const defaultFunctionName = '<anonymous>';
/**
 * Safely extract function name from itself
 */

function getFunctionName(fn) {
  try {
    if (!fn || typeof fn !== 'function') {
      return defaultFunctionName;
    }

    return fn.name || defaultFunctionName;
  } catch (e) {
    // Just accessing custom props in some Selenium environments
    // can cause a "Permission denied" exception (see raven-js#495).
    return defaultFunctionName;
  }
} // eslint-disable-next-line complexity


function node(getModule) {
  const FILENAME_MATCH = /^\s*[-]{4,}$/;
  const FULL_MATCH = /at (?:async )?(?:(.+?)\s+\()?(?:(.+):(\d+):(\d+)?|([^)]+))\)?/; // eslint-disable-next-line complexity

  return line => {
    if (line.match(FILENAME_MATCH)) {
      return {
        filename: line
      };
    }

    const lineMatch = line.match(FULL_MATCH);

    if (!lineMatch) {
      return undefined;
    }

    let object;
    let method;
    let functionName;
    let typeName;
    let methodName;

    if (lineMatch[1]) {
      functionName = lineMatch[1];
      let methodStart = functionName.lastIndexOf('.');

      if (functionName[methodStart - 1] === '.') {
        // eslint-disable-next-line no-plusplus
        methodStart--;
      }

      if (methodStart > 0) {
        object = functionName.substr(0, methodStart);
        method = functionName.substr(methodStart + 1);
        const objectEnd = object.indexOf('.Module');

        if (objectEnd > 0) {
          functionName = functionName.substr(objectEnd + 1);
          object = object.substr(0, objectEnd);
        }
      }

      typeName = undefined;
    }

    if (method) {
      typeName = object;
      methodName = method;
    }

    if (method === '<anonymous>') {
      methodName = undefined;
      functionName = undefined;
    }

    if (functionName === undefined) {
      methodName = methodName || '<anonymous>';
      functionName = typeName ? `${typeName}.${methodName}` : methodName;
    }

    const filename = Object(_buildPolyfills__WEBPACK_IMPORTED_MODULE_0__[/* _optionalChain */ "a"])([lineMatch, 'access', _ => _[2], 'optionalAccess', _2 => _2.startsWith, 'call', _3 => _3('file://')]) ? lineMatch[2].substr(7) : lineMatch[2];
    const isNative = lineMatch[5] === 'native';
    const isInternal = isNative || filename && !filename.startsWith('/') && !filename.startsWith('.') && filename.indexOf(':\\') !== 1; // in_app is all that's not an internal Node function or a module within node_modules
    // note that isNative appears to return true even for node core libraries
    // see https://github.com/getsentry/raven-node/issues/176

    const in_app = !isInternal && filename !== undefined && !filename.includes('node_modules/');
    return {
      filename,
      module: Object(_buildPolyfills__WEBPACK_IMPORTED_MODULE_0__[/* _optionalChain */ "a"])([getModule, 'optionalCall', _4 => _4(filename)]),
      function: functionName,
      lineno: parseInt(lineMatch[3], 10) || undefined,
      colno: parseInt(lineMatch[4], 10) || undefined,
      in_app
    };
  };
}
/**
 * Node.js stack line parser
 *
 * This is in @sentry/utils so it can be used from the Electron SDK in the browser for when `nodeIntegration == true`.
 * This allows it to be used without referencing or importing any node specific code which causes bundlers to complain
 */


function nodeStackLineParser(getModule) {
  return [90, node(getModule)];
}



/***/ }),

/***/ "pSRY":
/***/ (function(module, exports, __webpack_require__) {

var getMapData = __webpack_require__("QkVE");
/**
 * Checks if a map value for `key` exists.
 *
 * @private
 * @name has
 * @memberOf MapCache
 * @param {string} key The key of the entry to check.
 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
 */


function mapCacheHas(key) {
  return getMapData(this, key).has(key);
}

module.exports = mapCacheHas;

/***/ }),

/***/ "pVnL":
/***/ (function(module, exports) {

function _extends() {
  module.exports = _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  module.exports["default"] = module.exports, module.exports.__esModule = true;
  return _extends.apply(this, arguments);
}

module.exports = _extends;
module.exports["default"] = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "pajr":
/***/ (function(module) {

module.exports = JSON.parse("{\"steps\":\"{currentStep} av {totalSteps}\"}");

/***/ }),

/***/ "pdqd":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

__webpack_require__("MGeu");

var _autobindDecorator = _interopRequireDefault(__webpack_require__("gKdT"));

var _CoachMark = _interopRequireDefault(__webpack_require__("zLtB"));

var _MaybeUxpCoachMarkIndicator = _interopRequireDefault(__webpack_require__("oxh4"));

var _UxpCoachMarkPopover = _interopRequireDefault(__webpack_require__("jay5"));

var _ScrollManager = __webpack_require__("8VRs");

var _OverlayTrigger = _interopRequireDefault(__webpack_require__("uYrR"));

var _Portal = _interopRequireDefault(__webpack_require__("I/DW"));

var _propTypes = _interopRequireDefault(__webpack_require__("17x9"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

const _excluded = ["quiet", "selector", "children", "dismissible", "flip", "placement", "coachmarkPlacement", "show", "boundariesElement"];

var _class, _class2, _temp;

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function ownKeys(object, enumerableOnly) {
  var keys = Object.keys(object);

  if (Object.getOwnPropertySymbols) {
    var symbols = Object.getOwnPropertySymbols(object);

    if (enumerableOnly) {
      symbols = symbols.filter(function (sym) {
        return Object.getOwnPropertyDescriptor(object, sym).enumerable;
      });
    }

    keys.push.apply(keys, symbols);
  }

  return keys;
}

function _objectSpread(target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i] != null ? arguments[i] : {};

    if (i % 2) {
      ownKeys(Object(source), true).forEach(function (key) {
        _defineProperty(target, key, source[key]);
      });
    } else if (Object.getOwnPropertyDescriptors) {
      Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
    } else {
      ownKeys(Object(source)).forEach(function (key) {
        Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
      });
    }
  }

  return target;
}

function _defineProperty(obj, key, value) {
  if (key in obj) {
    Object.defineProperty(obj, key, {
      value: value,
      enumerable: true,
      configurable: true,
      writable: true
    });
  } else {
    obj[key] = value;
  }

  return obj;
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

let UxpCoachMark = (0, _autobindDecorator.default)(_class = (_temp = _class2 = class UxpCoachMark extends _CoachMark.default {
  componentDidMount() {
    const overlayContainer = this.getOverlayContainer();

    if (overlayContainer) {
      this.setState({
        overlayContainer
      });
    }

    if (this.props.selector && this.props.scrollIntoView) {
      const targetNode = document.querySelector(this.props.selector);
      var visiblity = (0, _ScrollManager.isNodeFullyVisible)(document.querySelector(this.props.selector));
      const scrollIntoViewOptions = {
        block: 'center',
        inline: 'center'
      };
      targetNode && !visiblity && targetNode.scrollIntoView(scrollIntoViewOptions);
    }
  }

  onIndicatorPositioned(visibility = true, scrollUpdate = false) {
    if (!this.state.indicatorPositioned && this.shouldUpdatePosition) {
      this.setState({
        indicatorPositioned: true
      });
    }

    if (scrollUpdate) {
      this.shouldUpdatePosition = true;
      this.setState({
        visible: visibility
      });
    }
  }

  resizeEventHandler() {
    this.setState({
      visible: true
    });
    this.shouldUpdatePosition = true;
  }

  render() {
    let _this$props = this.props,
        {
      quiet,
      selector,
      children,
      dismissible,
      flip,
      placement,
      coachmarkPlacement,
      show = true,
      boundariesElement
    } = _this$props,
        otherProps = _objectWithoutProperties(_this$props, _excluded);

    delete otherProps.scrollIntoView;
    let {
      overlayContainer,
      visible
    } = this.state;

    if (!visible) {
      show = false;
    }

    return /*#__PURE__*/_react.default.createElement("div", {
      ref: node => this.node = node,
      style: {
        display: 'none'
      }
    }, " ", overlayContainer && /*#__PURE__*/_react.default.createElement(_Portal.default, {
      container: overlayContainer
    }, /*#__PURE__*/_react.default.createElement(_OverlayTrigger.default, {
      trigger: dismissible ? 'click' : undefined,
      show: dismissible ? undefined : show // {undefined} will force OverlayTrigger to default to {defaultShow}
      ,
      defaultShow: true,
      flip: flip,
      placement: placement,
      offset: _CoachMark.default.INDICATOR_OFFSET,
      onHide: this.onHide,
      boundariesElement: boundariesElement,
      shouldUpdatePosition: this.state.indicatorPositioned && this.shouldUpdatePosition
    }, /*#__PURE__*/_react.default.createElement(_MaybeUxpCoachMarkIndicator.default, {
      selector: selector,
      quiet: quiet,
      onPositioned: this.onIndicatorPositioned,
      coachmarkPlacement: coachmarkPlacement,
      resizeEventHandler: this.resizeEventHandler,
      visible: visible
    }), /*#__PURE__*/_react.default.createElement(_UxpCoachMarkPopover.default, _extends({}, otherProps, {
      visible: visible && show
    }), children))));
  }

}, _class2.propTypes = _objectSpread(_objectSpread({}, _CoachMark.default.propTypes), {}, {
  // if this value is true and selector is given, coachmark component is brought into the visible area
  scrollIntoView: _propTypes.default.bool
}), _class2.defaultProps = _objectSpread(_objectSpread({}, _CoachMark.default.defaultProps), {}, {
  scrollIntoView: false
}), _temp)) || _class;

exports.default = UxpCoachMark;

/***/ }),

/***/ "pmLQ":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("path", {
  d: "M24 20V3a1 1 0 0 0-1-1H13a1 1 0 0 0-1 1v17H5.007a.5.5 0 0 0-.354.854L18 34.2l13.346-13.346a.5.5 0 0 0-.353-.854z"
}));

/***/ }),

/***/ "pngP":
/***/ (function(module) {

module.exports = JSON.parse("{\"Breadcrumbs\":\"Chemin de navigation\"}");

/***/ }),

/***/ "prkh":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXTERNAL MODULE: ./node_modules/mobx/lib/mobx.module.js
var mobx_module = __webpack_require__("2vnA");

// EXTERNAL MODULE: ./node_modules/@ccx-public/shared-asset-model-js/dist/mjs/src/index.js
var src = __webpack_require__("m4Z2");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/stores/SharedStore.ts + 6 modules
var SharedStore = __webpack_require__("jmEq");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/BaseAssetModel.ts
var BaseAssetModel = __webpack_require__("qpZ1");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/stores/Settings.ts
var Settings = __webpack_require__("5u1M");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/utils/getResponseArrayBuffer.ts
/**
 * UXP polyfill for response.arrayBuffer() https://developer.mozilla.org/en-US/docs/Web/API/Body/arrayBuffer
 * Latest UXP have the arrayBuffer (it's working in Ps/Ai), but XD hasn't updated its UXP version yet.
 * https://jira.corp.adobe.com/browse/UXP-13157
 */

function getResponseArrayBuffer(url, headers = {}) {
    return new Promise((resolve, reject) => {
        var xhr = new XMLHttpRequest();
        xhr.open('get', url);
        for (let [key, value] of Object.entries(headers)) {
            xhr.setRequestHeader(key, value);
        }
        xhr.responseType = 'arraybuffer';
        xhr.onreadystatechange = function () {
            if (xhr.readyState === 4 && xhr.status !== 200) {
                reject(src["s" /* SAMHttpResponseError */].createWithResponseAndTitle({
                    status: xhr.status,
                    statusText: url,
                    url,
                }, 'getResponseArrayBuffer failed'));
            }
        };
        xhr.onloadend = () => {
            resolve([xhr.response, xhr.getResponseHeader('etag') || '']);
        };
        xhr.send();
    });
}

// EXTERNAL MODULE: ./node_modules/uri-templates/uri-templates.js
var uri_templates = __webpack_require__("qPad");
var uri_templates_default = /*#__PURE__*/__webpack_require__.n(uri_templates);

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/utils/doRenditionTemplateSubstitution.ts

function doRenditionTemplateSubstitution(template, options = {}) {
    const uriTemplate = new uri_templates_default.a(template);
    return uriTemplate.fill(param => options[param]);
}

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/stores/constants.ts
var constants = __webpack_require__("q0hk");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/ACPAssetModel.ts
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;
};
var __metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var ACPAssetModel_a, ACPAssetModel_b, _c, _d, _e, _f, _g;








class ACPAssetModel_ACPAssetModel extends BaseAssetModel["b" /* default */] {
    constructor(config) {
        super();
        this.id = '';
        this.localUri = '';
        this.title = '';
        this.name = '';
        this.displayName = '';
        this.fileExtension = '';
        this.fileTrueExtension = '';
        this.modifiedDate = new Date();
        this.repoModifiedDate = new Date();
        this.createDate = new Date();
        this.hasSize = false;
        this.docState = constants["a" /* DocumentState */].active;
        this.isCached = false;
        this.isHidden = false;
        this.isDisabled = false;
        this.renameState = 'none';
        this.isUserPinned = false;
        this.role = '';
        this.rendition = '';
        this.type = '';
        this.shareCount = 0;
        this.externalData = {};
        this.version = undefined;
        this.contributorCount = 1;
        this.bookmarked = true;
        this.policy = [];
        this.isAvailableOffline = false;
        this.syncStatus = src["f" /* AssetSyncStatus */].InSync;
        // previously fetched etag - used to avoid reloading renditions if nothing changed
        this.previousEtag = '';
        this.hasFetchedRendition = false;
        this.isInvalidRendition = false;
        this.isFetchingRendition = false;
        this.renameCallbacks = undefined;
        Object.assign(this, config);
    }
    async getRendition() {
        try {
            this.setFetchingRendition(true);
            if (this.isFolder) {
                this.setHasFetchedRendition(true);
                return;
            }
            // Prevent rerender flickering
            if (this.hasFetchedRendition) {
                return;
            }
            // if we don't have a rendition, don't wait to compute the hash, just set it so that we have something to display fast
            if (!this.rendition) {
                const { url: renditionUrl, etag } = await this.fetchRendition();
                this.setRendition(renditionUrl, etag);
                this.setHasFetchedRendition(true);
            }
            // check if the rendition changed in the meantime by looking at the etag, and only reset the rendition URL if it did.
            if (this.etag !== this.previousEtag) {
                this.setPreviousEtag(this.etag);
                // Set the rendition only if it wasn't previously set in this function call.
                // The main case when it's been previously set is when we first load a rendition for a given document.
                if (!this.hasFetchedRendition) {
                    // clean up the old rendition URL
                    const { url: renditionUrl, etag } = await this.fetchRendition();
                    this.rendition && URL.revokeObjectURL(this.rendition);
                    this.setRendition(renditionUrl, etag);
                    this.setHasFetchedRendition(true);
                }
            }
            this.setFetchingRendition(false);
        }
        catch (error) {
            this.setInvalidRendition();
            this.setHasFetchedRendition(true);
            this.setFetchingRendition(false);
        }
    }
    async fetchRendition(forceNoCache = false) {
        var _a, _b;
        // Items in Recents sometimes do not have 'https://' for cloud renditions
        const template = ((_a = this.renditionTemplate) === null || _a === void 0 ? void 0 : _a.length) && this.renditionTemplate.indexOf('https://') === -1
            ? `https://${this.renditionTemplate}`
            : this.renditionTemplate;
        let renditionUrl, etag;
        if (template) {
            let renditionHref = doRenditionTemplateSubstitution(template, {
                size: `${constants["d" /* RENDITION_SIZE */]}`,
            });
            const token = await SharedStore["d" /* sharedStore */].imsData.fetchToken();
            let headers = {
                Authorization: `Bearer ${token}`,
                'x-api-key': Settings["b" /* settings */].config.CLIENT_ID,
            };
            // Platform renditions specify "Cache-Control: max-age=432000", meaning that
            // our requests could be cached on disk without even going to the network (bad!).
            // We want up-to-date renditions, so we have two options:
            //
            //   1. Use the ETag as a cachebuster. The user-agent can cache these renditions,
            //      and we'll fetch the latest rendition when the ETag changes.
            //   2. If there's no ETag, we'll specify "Cache-Control: no-cache" in the request,
            //      which ensures that we'll hit the network for the latest rendition.
            //
            // In general, using the ETag is better here, because we'll take advantage of
            // the user-agent's cache to show renditions more quickly when cached. The
            // non-ETag situation is intended to be a fallback, if for some reason we have
            // renditions that don't provide an ETag.
            if (this.etag && !this.isWeblink && !forceNoCache) {
                const url = new URL(renditionHref);
                // Caution while changing this section
                // CCPROJ-5020: simply `url.searchParams.append(...)` doesn't work in PS/AI.
                // Any changes to searchParams should be tested in PS/AI for params correctness.
                const searchParams = url.searchParams;
                searchParams.append('_cachebuster', ((_b = this.externalData) === null || _b === void 0 ? void 0 : _b['repo:etag']) || this.etag);
                url.search = searchParams.toString();
                renditionHref = url.toString();
            }
            else {
                headers['Cache-Control'] = 'no-cache';
            }
            const [imageBufferArray, etag] = await getResponseArrayBuffer(renditionHref, headers);
            const renditionBlob = new Blob([imageBufferArray]);
            if (renditionBlob && URL && URL.createObjectURL) {
                renditionUrl = URL.createObjectURL(renditionBlob);
            }
            // CCXCD-1386: on Windows, ACPL returns the rendition path with backslashes
            // instead of forward slashes, and acp-fetch turns it into an encoded
            // `file://` url. The encoding makes the backslash an invalid path
            // delimiter. However, decoding the url causes the `%5E` to be converted
            // to `^`, which isn't a valid url character. The backslashes should probably
            // be translated to forward slashes in acp-fetch, but for now, translate
            // `%5C` to `/` here.
            renditionUrl = renditionUrl.replace(/%5C/g, '/');
        }
        return { url: renditionUrl, etag };
    }
    async getWeblink() {
        return '';
    }
}
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", String)
], ACPAssetModel_ACPAssetModel.prototype, "id", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", Object)
], ACPAssetModel_ACPAssetModel.prototype, "cloudUri", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", String)
], ACPAssetModel_ACPAssetModel.prototype, "localUri", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", String)
], ACPAssetModel_ACPAssetModel.prototype, "path", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", String)
], ACPAssetModel_ACPAssetModel.prototype, "href", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", String)
], ACPAssetModel_ACPAssetModel.prototype, "title", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", String)
], ACPAssetModel_ACPAssetModel.prototype, "name", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", String)
], ACPAssetModel_ACPAssetModel.prototype, "displayName", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", String)
], ACPAssetModel_ACPAssetModel.prototype, "fileExtension", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", String)
], ACPAssetModel_ACPAssetModel.prototype, "fileTrueExtension", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", String)
], ACPAssetModel_ACPAssetModel.prototype, "spacesSection", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", String)
], ACPAssetModel_ACPAssetModel.prototype, "color", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", typeof (ACPAssetModel_a = typeof Date !== "undefined" && Date) === "function" ? ACPAssetModel_a : Object)
], ACPAssetModel_ACPAssetModel.prototype, "modifiedDate", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", typeof (ACPAssetModel_b = typeof Date !== "undefined" && Date) === "function" ? ACPAssetModel_b : Object)
], ACPAssetModel_ACPAssetModel.prototype, "repoModifiedDate", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", typeof (_c = typeof Date !== "undefined" && Date) === "function" ? _c : Object)
], ACPAssetModel_ACPAssetModel.prototype, "createDate", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", typeof (_d = typeof Date !== "undefined" && Date) === "function" ? _d : Object)
], ACPAssetModel_ACPAssetModel.prototype, "shareDate", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", String)
], ACPAssetModel_ACPAssetModel.prototype, "repositoryId", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", Boolean)
], ACPAssetModel_ACPAssetModel.prototype, "hasSize", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", typeof (_e = typeof constants["a" /* DocumentState */] !== "undefined" && constants["a" /* DocumentState */]) === "function" ? _e : Object)
], ACPAssetModel_ACPAssetModel.prototype, "docState", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", Boolean)
], ACPAssetModel_ACPAssetModel.prototype, "isCached", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", Boolean)
], ACPAssetModel_ACPAssetModel.prototype, "isHidden", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", Object)
], ACPAssetModel_ACPAssetModel.prototype, "isDisabled", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", String)
], ACPAssetModel_ACPAssetModel.prototype, "renameState", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", Object)
], ACPAssetModel_ACPAssetModel.prototype, "isUserPinned", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", Object)
], ACPAssetModel_ACPAssetModel.prototype, "role", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", Number)
], ACPAssetModel_ACPAssetModel.prototype, "size", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", String)
], ACPAssetModel_ACPAssetModel.prototype, "renditionTemplate", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", Object)
], ACPAssetModel_ACPAssetModel.prototype, "rendition", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", Object)
], ACPAssetModel_ACPAssetModel.prototype, "renditionGridMain", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", Object)
], ACPAssetModel_ACPAssetModel.prototype, "renditionGridTiles", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", String)
], ACPAssetModel_ACPAssetModel.prototype, "renditionEtag", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", String)
], ACPAssetModel_ACPAssetModel.prototype, "type", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", String)
], ACPAssetModel_ACPAssetModel.prototype, "stableUri", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", Object)
], ACPAssetModel_ACPAssetModel.prototype, "assetRef", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", Object)
], ACPAssetModel_ACPAssetModel.prototype, "shareLevel", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", Number)
], ACPAssetModel_ACPAssetModel.prototype, "shareCount", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", Object)
], ACPAssetModel_ACPAssetModel.prototype, "externalData", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", Number)
], ACPAssetModel_ACPAssetModel.prototype, "version", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", Object)
], ACPAssetModel_ACPAssetModel.prototype, "links", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", Number)
], ACPAssetModel_ACPAssetModel.prototype, "contributorCount", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", String)
], ACPAssetModel_ACPAssetModel.prototype, "etag", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", Boolean)
], ACPAssetModel_ACPAssetModel.prototype, "bookmarked", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", Array)
], ACPAssetModel_ACPAssetModel.prototype, "policy", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", Boolean)
], ACPAssetModel_ACPAssetModel.prototype, "isAvailableOffline", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", typeof (_f = typeof src["f" /* AssetSyncStatus */] !== "undefined" && src["f" /* AssetSyncStatus */]) === "function" ? _f : Object)
], ACPAssetModel_ACPAssetModel.prototype, "syncStatus", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", String)
], ACPAssetModel_ACPAssetModel.prototype, "previousEtag", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", Object)
], ACPAssetModel_ACPAssetModel.prototype, "lastCollaboratorsFetch", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", Boolean)
], ACPAssetModel_ACPAssetModel.prototype, "hasFetchedRendition", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", Boolean)
], ACPAssetModel_ACPAssetModel.prototype, "isInvalidRendition", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", Boolean)
], ACPAssetModel_ACPAssetModel.prototype, "isFetchingRendition", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", Object)
], ACPAssetModel_ACPAssetModel.prototype, "renameCallbacks", void 0);
__decorate([
    mobx_module["j" /* action */],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", []),
    __metadata("design:returntype", Promise)
], ACPAssetModel_ACPAssetModel.prototype, "getRendition", null);
__decorate([
    mobx_module["j" /* action */],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [Boolean]),
    __metadata("design:returntype", Promise)
], ACPAssetModel_ACPAssetModel.prototype, "fetchRendition", null);
/* harmony default export */ var CDOView_ACPAssetModel = __webpack_exports__["a"] = (ACPAssetModel_ACPAssetModel);


/***/ }),

/***/ "pvIh":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = createChainableTypeChecker;
/**
 * Copyright 2013-present, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 */
// Mostly taken from ReactPropTypes.

function createChainableTypeChecker(validate) {
  function checkType(isRequired, props, propName, componentName, location, propFullName) {
    var componentNameSafe = componentName || '<<anonymous>>';
    var propFullNameSafe = propFullName || propName;

    if (props[propName] == null) {
      if (isRequired) {
        return new Error('Required ' + location + ' `' + propFullNameSafe + '` was not specified ' + ('in `' + componentNameSafe + '`.'));
      }

      return null;
    }

    for (var _len = arguments.length, args = Array(_len > 6 ? _len - 6 : 0), _key = 6; _key < _len; _key++) {
      args[_key - 6] = arguments[_key];
    }

    return validate.apply(undefined, [props, propName, componentNameSafe, location, propFullNameSafe].concat(args));
  }

  var chainedCheckType = checkType.bind(null, false);
  chainedCheckType.isRequired = checkType.bind(null, true);
  return chainedCheckType;
}

module.exports = exports['default'];

/***/ }),

/***/ "pxfz":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _autobindDecorator = _interopRequireDefault(__webpack_require__("gKdT"));

var _boundingRectOverlapping = _interopRequireDefault(__webpack_require__("rjik"));

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _dna = _interopRequireDefault(__webpack_require__("AnWb"));

var _filterDOMProps = _interopRequireDefault(__webpack_require__("Cv/Q"));

var _validationStateSvg = __webpack_require__("Md/b");

var _propTypes = _interopRequireDefault(__webpack_require__("17x9"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

var _UxpProvider = __webpack_require__("HGBq");

var _Textfield = _interopRequireDefault(__webpack_require__("YsQy"));

var _UxpOptions = _interopRequireDefault(__webpack_require__("zvwv"));

__webpack_require__("CuaI");

__webpack_require__("Qqsu");

const _excluded = ["className", "style", "quiet", "disabled", "required", "invalid", "readOnly", "multiLine", "validationState", "disableOnOverlay", "alwaysNative"];

var _class, _class2, _temp;

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function ownKeys(object, enumerableOnly) {
  var keys = Object.keys(object);

  if (Object.getOwnPropertySymbols) {
    var symbols = Object.getOwnPropertySymbols(object);

    if (enumerableOnly) {
      symbols = symbols.filter(function (sym) {
        return Object.getOwnPropertyDescriptor(object, sym).enumerable;
      });
    }

    keys.push.apply(keys, symbols);
  }

  return keys;
}

function _objectSpread(target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i] != null ? arguments[i] : {};

    if (i % 2) {
      ownKeys(Object(source), true).forEach(function (key) {
        _defineProperty(target, key, source[key]);
      });
    } else if (Object.getOwnPropertyDescriptors) {
      Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
    } else {
      ownKeys(Object(source)).forEach(function (key) {
        Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
      });
    }
  }

  return target;
}

function _defineProperty(obj, key, value) {
  if (key in obj) {
    Object.defineProperty(obj, key, {
      value: value,
      enumerable: true,
      configurable: true,
      writable: true
    });
  } else {
    obj[key] = value;
  }

  return obj;
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
  try {
    var info = gen[key](arg);
    var value = info.value;
  } catch (error) {
    reject(error);
    return;
  }

  if (info.done) {
    resolve(value);
  } else {
    Promise.resolve(value).then(_next, _throw);
  }
}

function _asyncToGenerator(fn) {
  return function () {
    var self = this,
        args = arguments;
    return new Promise(function (resolve, reject) {
      var gen = fn.apply(self, args);

      function _next(value) {
        asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
      }

      function _throw(err) {
        asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
      }

      _next(undefined);
    });
  };
}

const uxp = window.require && window.require('uxp');

if (false) {} else if (false) {} else {
  __webpack_require__("1Nnd");
}

if (true) __webpack_require__("jaDn");
if (true) __webpack_require__("8zoJ");
if (true) __webpack_require__("EX2l");
if (true) __webpack_require__("jMQp");

let UxpTextfield = (0, _autobindDecorator.default)(_class = (_temp = _class2 = class UxpTextfield extends _Textfield.default {
  constructor(props) {
    var _this;

    super(props);
    _this = this;
    this.updateThemeFromHost = /*#__PURE__*/_asyncToGenerator(function* () {
      if (uxp.host.getTheme && typeof uxp.host.getTheme === 'function') {
        const hostTheme = yield uxp.host.getTheme();

        _this.setState({
          hostTheme
        });
      }
    });

    this.getFontStyle = () => {
      if (this.inputContainer) {
        this.fontFamily = window.getComputedStyle(this.inputContainer).getPropertyValue('font-family');
        this.fontSize = window.getComputedStyle(this.inputContainer).getPropertyValue('font-size');
        this.fontVariant = window.getComputedStyle(this.inputContainer).getPropertyValue('font-variant');
        this.inputContainer.removeEventListener('resize', this.getFontStyle);
      }
    };

    this.focusInput = () => {
      this.inputContainer.focus();
      this.inputContainer.removeEventListener('resize', this.focusInput);
    };

    this.resize = () => {
      if (this.inputContainer) {
        this.inputContainer.focus();
        this.inputContainer.select();
        this.inFocus = true;
        this.inputContainer.removeEventListener('resize', this.resize);
      }
    };

    this.state = {
      inputText: '',
      showFocus: false,
      overlayPresent: false,
      hostTheme: 'light'
    };
    this.overlaysMap = new Map();
    this.inputActive = true;
  }

  componentDidMount() {
    if (this.inputContainer) {
      this.inputContainer.addEventListener('resize', this.getFontStyle);

      if (this.props.autoFocus && !this.props.disabled) {
        // wait till the native node is created.
        this.inputContainer.addEventListener('resize', this.resize);
      }
    } // Update theme from host initially, and listen to theme-change events


    if (uxp.host && uxp.host.addEventListener && typeof uxp.host.addEventListener === 'function') {
      this.updateThemeFromHost();
      uxp.host.addEventListener('themechanged', this.updateThemeFromHost);
    }
  }

  hasPlaceholderText() {
    if (this.props.placeholder && !this.props.value && !this.state.inputText) {
      return true;
    }

    return false;
  }

  updateSpanStyle() {
    //  https://git.corp.adobe.com/torq/torq-native/pull/3818
    //  Using the font styles provided by the host application if any
    this.inputContainer.style.fontFamily = this.fontFamily;
    this.inputContainer.style.fontSize = this.fontSize;
    this.inputContainer.style.fontVariant = this.fontVariant;

    if (uxp.host && uxp.host.name === 'Photoshop') {
      if (this.hasPlaceholderText()) {
        this.inputContainer.style.fontStyle = 'italic';
        this.inputContainer.style.paddingBottom = '1px';
      }
    } else if (uxp.host && (uxp.host.isDrover || uxp.host.name === 'Illustrator')) {
      if (this.hasPlaceholderText()) {
        // https://jira.corp.adobe.com/browse/UXP-15305
        if (uxp.host.name === 'InDesign') {
          this.inputContainer.style.fontFamily = 'AdobeCleanUX-It';
          this.inputContainer.style.paddingBottom = '3px';
        } else if (uxp.host.name === 'Illustrator') {
          this.inputContainer.style.fontStyle = 'italic';
        } else {
          this.inputContainer.style.fontStyle = 'italic';
          this.inputContainer.style.fontSize = '11px';
        }
      }

      if (uxp.host.name === 'Illustrator') {
        this.inputContainer.style.paddingBottom = '4px';
      }

      this.inputContainer.style.paddingLeft = '4px';

      if (!this.props.quiet && uxp.host.name !== 'Illustrator') {
        this.inputContainer.style.paddingBottom = '1px';
      }
    }
  }

  componentDidUpdate() {
    if (this.inputContainer && this.inputContainer.nodeName === 'SPAN') {
      this.updateSpanStyle();
    }

    if (this.inFocus === true) {
      const ov = this.isAnyOverlayVisible();

      if (ov) {
        this.inputActive = false;
        this.inputContainer.addEventListener('resize', this.focusInput);
      }

      if (!this.inputActive && !ov) {
        this.inputContainer.addEventListener('resize', this.focusInput);
        this.inputActive = true;
      }
    }
  }

  focus() {
    if (!this.props.disabled && this.inputContainer) {
      this.inputContainer.focus();
    }
  }

  isAnyOverlayVisible() {
    var values = this.overlaysMap.values();

    for (var obj of values) {
      if (obj.visible) {
        return true;
      }
    }

    return false;
  }

  componentWillUnmount() {
    if (uxp.host && uxp.host.removeEventListener && typeof uxp.host.removeEventListener === 'function') {
      uxp.host.removeEventListener('themechanged', this.updateThemeFromHost);
    }

    if (this.props.autoFocus && !this.props.disabled && this.inputContainer) {
      this.inputContainer.removeEventListener('resize', this.resize);
    }
  }

  onChange(e) {
    this.setState({
      inputText: e.target.value
    });

    if (this.props.onChange) {
      this.props.onChange(e.target.value, e);
    }
  }

  handleClick(e) {
    this.inputContainer.focus();
    this.inFocus = true;

    if (this.props.onClick) {
      this.props.onClick(e);
    }
  }

  handleFocus(e) {
    this.setState({
      showFocus: true
    });

    if (this.props.onFocus) {
      this.props.onFocus(e);
    }

    this.inFocus = true;
  }

  handleBlur(e) {
    this.setState({
      showFocus: false
    });

    if (this.props.onBlur) {
      this.props.onBlur(e);
    }

    this.inFocus = false;
  }

  executeOverlayCallbacks() {
    var values = this.overlaysMap.values();

    for (var obj of values) {
      if (obj.callback) {
        obj.callback();
      }
    }
  }

  handleSpanKeyUp(e) {
    if (this.props.onKeyUp) {
      this.props.onKeyUp(e);
    }

    this.executeOverlayCallbacks();
    e.target.value = e.target.innerHTML;

    if (e.key.length === 1) {
      e.target.value += e.key;
    }

    switch (e.keyCode) {
      case 8:
        // Backspace
        if (e.target.value && e.target.value.length > 0) {
          let orgStr = e.target.value;
          e.target.value = orgStr.substring(0, orgStr.length - 1);
        }

        break;
    }

    this.onChange(e);
  }

  removeOverlay(overlay) {
    if (overlay && this.overlaysMap) {
      this.overlaysMap.delete(overlay.overlayRef);
    }
  }

  showInput(overlay) {
    this.updateOverlayMap(overlay);
    return this.overlaysMap.size === 0;
  }

  updateOverlayMap(overlay) {
    if (!this.searchContainer) {
      return;
    }

    const searchContainerBoundingRect = this.searchContainer.getBoundingClientRect();

    if (searchContainerBoundingRect.height === 0 || searchContainerBoundingRect.width === 0) {
      return;
    }

    if (overlay) {
      if (overlay.data.visible && (0, _boundingRectOverlapping.default)(searchContainerBoundingRect, overlay.data.boundingRect)) {
        this.overlaysMap.set(overlay.overlayRef, overlay.data);
      } else {
        this.removeOverlay(overlay);
      }

      const overlayPresentInMap = this.overlaysMap.has(overlay.overlayRef);
      const {
        overlayPresent
      } = this.state;

      if (overlayPresentInMap !== overlayPresent) {
        this.setState({
          overlayPresent: overlayPresentInMap
        });
      }
    }
  }

  handlePassword(props) {
    let characters = '';
    let text = '';

    if (props.value) {
      characters = props.value.length;
    }

    if (props.inputText && props.inputText.length > characters) {
      characters = props.inputText.length;
    }
    /* [UXP-19308]: Password textfield should have a custom password character support */


    for (let i = 0; i < characters; i++) {
      text += '●';
    }

    return text ? text : props.placeholder;
  }

  render() {
    const _this$props = this.props,
          {
      className,
      style,
      quiet,
      disabled,
      required,
      invalid,
      readOnly,
      multiLine,
      validationState,
      disableOnOverlay,
      alwaysNative
    } = _this$props,
          otherProps = _objectWithoutProperties(_this$props, _excluded);

    var showFocus = this.state.showFocus;
    var Tag = multiLine ? 'textarea' : 'input';
    const isInvalid = invalid || validationState === 'invalid' || required && !this.state.inputText;
    const isValid = validationState === 'valid';
    delete otherProps.autoFocus;
    delete otherProps.autocompleteInput;
    delete otherProps.onFocus;
    delete otherProps.onBlur;

    if (invalid) {
      console.warn('The "invalid" prop of Textfield is deprecated. Please use validationState="invalid" instead.');
    }

    let displayValidationIcon = required && !this.state.inputText || isInvalid || isValid;
    let validationIcon = _validationStateSvg.invalidSvg;

    if (isValid) {
      validationIcon = _validationStateSvg.validSvg;
    }

    let isDisabled = disabled ? 'disabled' : 'default';
    let bgStyle = {};
    return /*#__PURE__*/_react.default.createElement(_UxpProvider.SpectrumContext.Consumer, null, ({
      scale,
      theme: providerTheme,
      productId,
      disableNativeControls,
      overlay
    } = {}) => {
      const {
        hostTheme
      } = this.state;
      let theme = providerTheme; // In case SpectrumContext is lost for the textfield, providerTheme defaults to light
      // Check if host theme is dark-ish and use dark theme for that case 

      if (theme === 'light' && ['dark', 'darkest'].includes(hostTheme)) {
        theme = 'dark';
      }

      if (showFocus && !isInvalid) {
        bgStyle['borderColor'] = _dna.default.elements[theme][scale].textfield['default'].states['mouse-focus']['border-color'];
      }

      let bgColor = _dna.default.elements[theme][scale].textfield['default'].states[isDisabled]['background-color'];
      bgStyle['backgroundColor'] = bgColor;
      return (
        /*#__PURE__*/
        // Fix lint : Visible, non-interactive elements with click handlers must have at least one keyboard listener.
        _react.default.createElement("div", {
          className: (0, _classnames.default)('spectrum-Textfield', `spectrum--${theme}`, {
            'spectrum-Textfield--multiline': multiLine,
            'is-invalid': isInvalid,
            'is-disabled': disabled,
            'is-valid': isValid,
            'spectrum-Textfield--quiet': quiet
          }, className),
          style: Object.assign({}, bgStyle, style),
          ref: s => this.searchContainer = s,
          disabled: disabled,
          onClick: !disabled ? this.handleClick : undefined
        }, alwaysNative || !_UxpOptions.default.productNeedsOverlayFix || !(!this.showInput(overlay) || disableOnOverlay && disableNativeControls) ? /*#__PURE__*/_react.default.createElement(Tag, _extends({
          type: "text",
          className: "inputText",
          ref: s => this.inputContainer = s,
          style: {
            appearance: 'none',
            backgroundColor: 'inherit'
          },
          onFocus: !disabled ? this.handleFocus : undefined,
          onBlur: !disabled ? this.handleBlur : undefined,
          value: this.state.inputText,
          disabled: disabled,
          required: required,
          readOnly: readOnly,
          "aria-invalid": isInvalid || null,
          defaultValue: otherProps.defaultValue
        }, (0, _filterDOMProps.default)(otherProps), {
          onChange: this.onChange,
          rows: multiLine && !quiet ? otherProps.rows : 1
        })) :
        /*#__PURE__*/
        //  This is a workaround to handle the input and overlay overlap issues in Ps and Ai
        //  https://wiki.corp.adobe.com/pages/viewpage.action?spaceKey=UXP&title=Proposal+for+overlapping+textedit+and+overlays
        //  https://wiki.corp.adobe.com/display/UXP/PS+UXP+Overlay+Issues// Fix lint: Static HTML elements with event handlers require a role, `tabIndex` should only be declared on interactive elements, Avoid positive integer values for tabIndex
        _react.default.createElement("span", {
          className: "inputSpan",
          target: this.props.value || this.state.inputText ? 'value' : 'placeholder'
          /* eslint-disable-next-line */
          ,
          tabIndex: 0,
          ref: s => this.inputContainer = s,
          onKeyUp: this.handleSpanKeyUp,
          onFocus: !disabled ? this.handleFocus : undefined,
          onBlur: !disabled ? this.handleBlur : undefined
        }, this.props.type !== 'password' ? this.props.value || this.state.inputText || this.props.placeholder : this.handlePassword(this.props)), displayValidationIcon && /*#__PURE__*/_react.default.cloneElement(validationIcon))
      );
    });
  }

}, _class2.propTypes = _objectSpread(_objectSpread({}, _Textfield.default.propTypes), {}, {
  alwaysNative: _propTypes.default.bool
}), _class2.defaultProps = _objectSpread(_objectSpread({}, _Textfield.default.defaultProps), {}, {
  alwaysNative: false
}), _temp)) || _class;

exports.default = UxpTextfield;
UxpTextfield.displayName = 'UxpTextfield';

/***/ }),

/***/ "pxpC":
/***/ (function(module) {

module.exports = JSON.parse("{\"a11y.button.canvases\":\"{name}\",\"a11y.button.libraries\":\"{name}、ライブラリ\",\"a11y.button.listGridToggle\":\"表示切り替え、{toggledView, select, grid {グリッド} list {リスト}}ビュー\",\"a11y.button.project\":\"{name}、プロジェクト\",\"a11y.button.published\":\"{name}、{extension}\",\"a11y.button.selectFolder\":\"フォルダーを選択\",\"a11y.button.working\":\"{name}、{extension}、変更日時 {modified}\",\"a11y.strings.folder\":\"フォルダー\",\"header.action.newProject\":\"新規プロジェクト\",\"header.action.newLibrary\":\"新規ライブラリ\",\"header.action.browseAll\":\"すべてを参照\",\"header.Name\":\"名前\",\"header.Size\":\"サイズ\",\"header.Sharing\":\"メンバー\",\"header.Team\":\"ワークスペース\",\"header.DateModified\":\"修正日\",\"header.DateCreated\":\"作成日\",\"header.Status\":\"お気に入り\",\"header.SortBy\":\"並べ替え\",\"header.sort.label\":\"並べ替え\",\"header.ChangeSortDirection\":\"変更後の並べ替え方向\",\"header.SortBy.asc\":\"昇順\",\"header.SortBy.desc\":\"降順\",\"header.selectAll\":\"すべて選択\",\"header.reverseOrder\":\"順序を反転\",\"header.showCompatible\":\"互換性のあるファイル\",\"header.showEverything\":\"すべて\",\"product.illustrator.web\":\"Illustrator Web (ベータ版)\",\"product.photoshop.web\":\"Photoshop Web (ベータ版)\",\"status.followed\":\"はい\",\"status.unfollowed\":\"いいえ\",\"team.usm.defaultName\":\"ワークスペース {name}\",\"space.access.private.description\":\"招待されたユーザーのみ\",\"space.access.private.tooltip\":\"招待された人だけがこのプロジェクトにアクセスできます\",\"space.access.team.description\":\"ワークスペースの全員および招待されたユーザー\",\"space.access.team.tooltip\":\"「{team}」内の誰もがこのプロジェクトにアクセスできます\",\"yourProjects.title\":\"プロジェクト\",\"yourProjects.librariesTab.title\":\"グループライブラリ\",\"yourProjects.empty.spaces\":\"より多くのプロジェクトを作成し、より多くのワークスペースメンバーを招待\",\"browseAll.title\":\"すべてを参照\",\"yourFiles.title\":\"ドキュメント\",\"yourLibraries.title\":\"ライブラリ\",\"yourLibraries.metadata\":\"ライブラリ\",\"canvas.metadata\":\"カンバス\",\"projectInfo.action.view\":\"情報を表示\",\"projectInfo.action.edit\":\"プロジェクトを編集\",\"projectInfo.empty.cta\":\"プロジェクトを新規作成\",\"projectInfo.empty.description\":\"Creative Cloud のプロジェクトは、検索、整理、共有、意思決定を簡素化し、クリエイティブプロジェクトに必要なすべてのものを 1 か所にまとめます。\",\"projectInfo.empty.heading\":\"制作が増えても、効率的に共有\",\"projectInfo.error.description\":\"後でもう一度お試しください\",\"projectInfo.error.heading\":\"{section}を読み込めません\",\"projectInfo.new.error.title\":\"プロジェクトを新規作成できません\",\"projectInfo.new.noPermission.description\":\"詳しくは、管理者にお問い合わせください。\",\"projectInfo.title.create\":\"新しいプロジェクト\",\"projectInfo.title.edit\":\"プロジェクトを編集\",\"projectInfo.title.view\":\"プロジェクト情報\",\"projectInfo.access.title\":\"このプロジェクトを編集できるユーザー\",\"projectInfo.access.warning\":\"権限を「招待されたユーザーのみ」に変更すると、一部のメンバーがプロジェクトにアクセスできなくなる場合があります。\",\"projectInfo.organization\":\"組織\",\"projectInfo.organization.placeholder\":\"いずれかを選択\",\"projectInfo.description\":\"説明\",\"textField.invalid.characters\":\"名前には次の文字は使用できません。\\\\\\\\ / * ? \\\" | : < >\",\"textField.invalid.duplicateName\":\"この組織には、この名前のプロジェクトが既にあります。\",\"textField.invalid.duplicateName.space\":\"このワークスペースには、この名前のプロジェクトが既にあります。\",\"textField.invalid.duplicateName.team\":\"この組織には、この名前のワークスペースが既にあります。\",\"textField.invalid.empty\":\"スペース名は必須です\",\"textField.invalid.generic\":\"ファイル名が無効です\",\"textField.invalid.length\":\"名前は 50 文字以内で指定してください\",\"textField.invalid.nameEndsWithDot\":\"名前の末尾にはピリオドを使用できません\",\"textField.invalid.offline\":\"再接続して、すべてのワークスペースとプロジェクトにアクセスします。プロジェクトからローカルファイルを表示するには、ホームに移動します。\",\"projectInfo.textField.placeholder\":\"このプロジェクトに名前を付ける\",\"projectInfo.team\":\"ワークスペース\",\"projectInfo.description.placeholder\":\"例 : クライアントプロジェクトのファイル、フィードバック、および参考資料\",\"projectInfo.description.invalidLength\":\"説明は 1,000 文字以内にする必要があります。\",\"projectInfo.toast.success.new\":\"プロジェクト「{name}」が作成されました\",\"projectInfo.toast.success.update\":\"プロジェクト「{name}」が更新されました\",\"projectInfo.toast.error.generic\":\"プロジェクトの{create, select, true {作成} other {編集}}に失敗しました\",\"team.empty.heading\":\"プロジェクトを使用すると、全員が同じ前提知識を共有できます\",\"team.empty.description\":\"ファイルにアクセス権がなかったり、バージョンで混乱したり、レビュー用のスクリーンショットを送ったりすることを面倒に感じたことはありませんか？スペースを利用すれば、プロジェクトを整理し、リソースやフィードバックを収集して、チーム全体の作業に必要なファイルを共有できます。\",\"team.empty.createSpace\":\"新規作成\",\"team.empty.inviteMembers\":\"メンバーを招待\",\"team.empty.startHere\":\"ここから開始\",\"team.create.success\":\"次のワークスペースが作成されました : {name}\",\"team.create.error.generic\":\"ワークスペースの作成に失敗しました\",\"team.edit.success\":\"ワークスペース「{name}」が更新されました\",\"team.edit.error.generic\":\"ワークスペースの更新に失敗しました\",\"team.archive.success\":\"{count, plural, =1 {# 個のワークスペース} other {# 個のワークスペース}}が削除されました\",\"team.archive.error.generic\":\"{count, plural, =1 {# 個のワークスペース} other {# 個のワークスペース}}を削除できません\",\"team.error.generic\":\"問題が発生しました。\",\"project1Up.action.projectInfo\":\"情報を表示\",\"project1up.region.space.ariaLabel\":\"{projectName}、プロジェクト\",\"project1Up.section.libraries\":\"ライブラリ\",\"project1Up.section.libraries.empty.cta\":\"Creative Cloud ライブラリを追加\",\"project1Up.section.libraries.empty.description\":\"作業に必要なライブラリへのリンクを追加します。\",\"project1Up.section.libraries.empty.heading\":\"すべてを 1 か所にまとめる\",\"project1Up.section.filter\":\"フィルター\",\"project1Up.section.filter.label\":\"キーワードでフィルター\",\"project1Up.section.filter.enterKeyword\":\"キーワードを入力\",\"project1Up.section.filterFiles.empty.heading\":\"選択したフィルターに一致する結果はありません\",\"project1Up.section.compatibleFiles.empty.heading\":\"このプロジェクト内には、互換性のあるファイルがありません\",\"project1Up.section.workingFiles\":\"作業ファイル\",\"project1Up.section.workingFiles.empty.addFiles\":\"ファイルを追加\",\"project1Up.section.workingFiles.empty.createFolder\":\"新規フォルダーを作成\",\"project1Up.section.workingFiles.empty.description\":\"プロジェクトを繰り返し、他のメンバーとの共同作業を進めましょう。\",\"project1Up.section.workingFiles.empty.heading\":\"必要なときに必要な作業をおこなう\",\"project1Up.section.published\":\"公開中のアイテム\",\"project1Up.section.published.empty.cta\":\"リンクの公開方法\",\"project1Up.section.published.empty.description\":\"表示専用のリンクを送信して、適切なユーザーから適切なタイミングでフィードバックを受け取ります。\",\"project1Up.section.published.empty.description.readonly\":\"フィードバックやレビューが必要な場合は、ここにリンクを追加します。\",\"project1Up.section.published.empty.heading\":\"目的によって共有\",\"project1Up.section.published.empty.heading.readonly\":\"このプロジェクトに公開されたアイテムはありません\",\"project1Up.section.canvases\":\"カンバス\",\"project1Up.section.canvases.empty.cta\":\"Creative Cloud カンバスを追加\",\"project1Up.section.canvases.empty.description\":\"作業に必要な要素へのリンクを追加します。\",\"project1Up.section.canvases.empty.heading\":\"すべてを 1 か所にまとめる\",\"project1Up.section.files\":\"ファイル\",\"project1Up.error.accessDenied.heading\":\"アクセス権限がありません\",\"project1Up.error.accessDenied.description\":\"あなたはこのプロジェクトから削除されました。間違いだと思われる場合は管理者にご連絡ください。\",\"project1Up.header.seeAll\":\"すべて表示\",\"project1up.subheader.selected\":\"{count, plural, =1 {# 個のアイテム} other {# 個のアイテム}}を選択中\",\"project1up.subheader.emptyDescription\":\"プロジェクトに説明を追加\",\"project1up.subheader.canvases.title\":\"カンバス\",\"project1up.subheader.canvases.subtitle\":\"TODO : カンバスのサブタイトル\",\"project1up.subheader.libraries.title\":\"ライブラリ\",\"project1up.subheader.libraries.subtitle\":\"メンバーはここで Creative Cloud ライブラリへのリンクを追加できます。\",\"project1up.subheader.working.title\":\"作業ファイル\",\"project1up.subheader.working.subtitle\":\"このプロジェクトのメンバーは、これらのファイルを編集できます。\",\"project1up.subheader.output.title\":\"公開中のアイテム\",\"project1up.subheader.output.subtitle\":\"{contributor, select, true {作品の読み取り専用バージョンをプロジェクト外のユーザーと共有。} other {これらの読み取り専用のアイテムを表示してコメントを追加}}\",\"project.subtitle\":\"プロジェクト\",\"project.countContributors\":\"{count, plural, =1 {# メンバー} other {# メンバー}}\",\"project.versionError.reload.description\":\"ブラウザーを更新してみてください。\",\"project.versionError.reload.title\":\"プロジェクトにアクセスできません\",\"project.versionError.update.description\":\"プロジェクトにアクセスするには、アプリを更新する必要があります。\",\"project.versionError.update.title\":\"{appName} を更新して開く\",\"project.alreadyDiscarded.title\":\"このプロジェクトは削除されました\",\"project.alreadyDiscarded.description\":\"ご不明な点がある場合は管理者にお問い合わせいただくか、他のコンテンツを参照してください。\",\"project.deleted.title\":\"このプロジェクトは完全削除されました\",\"project.deleted.description\":\"このプロジェクトは利用できなくなったため、アクセスすることはできません。\",\"project.metadataError.backLabel\":\"プロジェクトに戻る\",\"project.metadataError.description\":\"探しているプロジェクトが見つからないか、アクセスできません。\",\"project.metadataError.title\":\"問題が発生しました。\",\"folder.subtitle\":\"フォルダー\",\"libraries.toast.add.start\":\"{count, plural, =1 {# 個のライブラリ} other {# 個のライブラリ}} を追加中\",\"libraries.toast.add.success\":\"{count, plural, =1 {# 個のライブラリ} other {# 個のライブラリ}}を追加しました\",\"libraries.toast.add.error\":\"{count, plural, =1 {# 個のライブラリ} other {# 個のライブラリ}} を追加できませんでした。再試行してください。\",\"libraries.toast.add.duplicate\":\"このライブラリは既に存在します\",\"libraries.toast.add.onlyDuplicates\":\"{count, plural, =1 {同じライブラリが既に存在するため、# 個のライブラリ} other {同じライブラリが既に存在するため、# 個のライブラリ}}を追加できません\",\"libraries.toast.delete.success\":\"{count, plural, =1 {# 個のライブラリ} other {# 個のライブラリ}}を削除しました\",\"libraries.toast.delete.error\":\"{count, plural, =1 {# 個のライブラリ} other {# 個のライブラリ}}を削除できませんでした\",\"libraries.toast.follow.inProgress\":\"{count, plural, =1 {# 個のライブラリ} other {# 個のライブラリ}}をフォローしています\",\"libraries.toast.follow.success\":\"{count, plural, =1 {# 個のライブラリ} other {# 個のライブラリ}}をフォローしました\",\"libraries.toast.follow.error\":\"{count, plural, =1 {# 個のライブラリ} other {# 個のライブラリ}}をフォローできませんでした\",\"libraries.toast.unfollow.inProgress\":\"{count, plural, =1 {# 個のライブラリ} other {# 個のライブラリ}}をフォロー解除しています\",\"libraries.toast.unfollow.success\":\"{count, plural, =1 {# 個のライブラリ} other {# 個のライブラリ}}をフォロー解除しました\",\"libraries.toast.unfollow.error\":\"{count, plural, =1 {# 個のライブラリ} other {# 個のライブラリ}}をフォロー解除できませんでした\",\"libraries.modal.empty.heading\":\"ライブラリがありません\",\"libraries.modal.empty.description\":\"組織はライブラリを共有していません\",\"libraries.modal.error.limitExceeded\":\"ライブラリを追加できません\",\"libraries.modal.error.limitExceeded.detail\":\"プロジェクトには最大 100 個のライブラリを追加できます。さらに追加するには、いくつかのライブラリを削除してください。\",\"libraries.brokenResources\":\"アクセス権がないため、一部のライブラリは表示されません。詳しくは、他のメンバーにお問い合わせください。\",\"copy.start\":\"{count, plural, =1 {# 個のアイテム} other {# 個のアイテム}}をコピーしています\",\"copy.failure\":\"{count, plural, =1 {# 個のアイテム} other {# 個のアイテム}}をコピーできません\",\"copy.failure.partial\":\"一部のアイテムをコピーできません\",\"copy.success\":\"{count, plural, =1 {# 個のアイテム} other {# 個のアイテム}}をコピーしました\",\"copy.conflictSuffix\":\"コピー\",\"move.start\":\"{count, plural, =1 {# 個のアイテム} other {# 個のアイテム}}を移動しています\",\"move.failure\":\"{count, plural, =1 {# 個のアイテム} other {# 個のアイテム}}を移動できません\",\"move.failure.partial\":\"一部のアイテムを移動できません\",\"move.success\":\"{count, plural, =1 {# 個のアイテム} other {# 個のアイテム}}を移動しました\",\"upload.start\":\"{count, plural, =1 {# 個のアイテム} other {# 個のアイテム}}をアップロード中\",\"upload.failure\":\"{count, plural, =1 {# 個のアイテム} other {# 個のアイテム}}をアップロードできません\",\"upload.failure.partial\":\"いくつかのアイテムをアップロードできません\",\"upload.failure.snapshot\":\"この項目はサポートされていません\",\"upload.success\":\"{count, plural, =1 {# 個のアイテム} other {# 個のアイテム}}のアップロードが完了しました\",\"download.start\":\"{count, plural, =1 {# 個のアイテム} other {# 個のアイテム}}をダウンロード中\",\"download.failure\":\"{count, plural, =1 {# 個のアイテム} other {# 個のアイテム}}をダウンロードできません\",\"download.failure.partial\":\"ダウンロードできないアイテムがあります\",\"download.success\":\"{count, plural, =1 {# 個のアイテム} other {# 個のアイテム}}をダウンロードしました\",\"delete.failure\":\"{count, plural, =1 {# 個のアイテム} other {# 個のアイテム}}を削除できません\",\"delete.failure.partial\":\"いくつかのアイテムを削除できません\",\"delete.success\":\"{count, plural, =1 {# 個のアイテム} other {# 個のアイテム}}を削除しました\",\"jobs.failure\":\"{count, plural, =1 {# 個のアイテム} other {# 個のアイテム}}の処理に失敗しました\",\"jobs.inProgress\":\"作業中...\",\"jobs.success\":\"{count, plural, =1 {# 個のアイテム} other {# 個のアイテム}}の処理が完了しました\",\"restore.failure\":\"{count, plural, =1 {# 個のアイテム} other {# 個のアイテム}}を復元できません\",\"restore.failure.partial\":\"いくつかのアイテムを復元できません\",\"restore.success\":\"{count, plural, =1 {# 個のアイテム} other {# 個のアイテム}}を復元しました\",\"rename.start\":\"名前を変更しています\",\"rename.success\":\"{count, plural, =1 {# 個のアイテム} other {# 個のアイテム}}の名前を変更しました\",\"rename.failure\":\"サーバーエラー、名前を変更できません\",\"rename.failure.conflict\":\"同じ名前のアイテムが既に存在します\",\"rename.offline.heading\":\"名前を変更できません\",\"rename.offline\":\"オフラインのため、アイテムの名前を変更できません。このアクションを実行するには、オンラインに戻ってください。\",\"bookmark.follow.error\":\"このプロジェクトをお気に入りにできません\",\"bookmark.unfollow.error\":\"このプロジェクトをお気に入り解除できません\",\"bookmark.follow.success\":\"{projectName} をお気に入りにしました\",\"bookmark.unfollow.success\":\"{projectName} をお気に入り解除しました\",\"bookmark.bulk.follow.success\":\"{count, plural, =1 {# 項目} other {# 項目}}が正常に好みと設定されました\",\"bookmark.bulk.follow.partial\":\"好みに設定できないアイテムがあります\",\"bookmark.bulk.follow.error\":\"{count, plural, =1 {# 項目} other {# 項目}} を好みに設定できません\",\"bookmark.bulk.unfollow.success\":\"{count, plural, =1 {# 項目} other {# 項目}}が正常に好みでないと設定されました\",\"bookmark.bulk.unfollow.partial\":\"好みでない設定のできないアイテムあります\",\"bookmark.bulk.unfollow.error\":\"{count, plural, =1 {# 項目} other {# 項目}} を好みでないに設定できません\",\"copyLink.success\":\"リンクをクリップボードにコピーしました\",\"copyLink.failure\":\"リンクをコピーできません\",\"starterUser.project1upNavigation\":\"スタータープランでは、プロジェクトでドキュメントを開くことはできません\",\"starterUser.project1upNavigationCDPSave\":\"スタータープランでは、プロジェクトでドキュメントを保存できません\",\"invite.failure\":\"招待を送信できませんでした。もう一度やり直してください。\",\"accessibility.backButton\":\"前へ戻る\",\"button.role\":\"ボタン\",\"button.actions\":\"アクション\",\"button.add\":\"追加\",\"button.addFiles\":\"ファイルを追加\",\"button.addLibrary\":\"ライブラリを追加\",\"button.createDocument\":\"新規 {appName} ファイル\",\"button.library\":\"ライブラリ\",\"button.back\":\"戻る\",\"button.browse\":\"すべてを参照\",\"button.cancel\":\"キャンセル\",\"button.okay\":\"OK\",\"button.canvas\":\"カンバス\",\"button.addCanvas\":\"新規カンバス\",\"button.changeDefaultApp\":\"デフォルトのアプリケーションを変更...\",\"button.close\":\"閉じる\",\"button.continue\":\"続行\",\"button.copy\":\"コピー先...\",\"button.copyLink\":\"リンクをコピー\",\"button.create\":\"作成\",\"button.createNewFolder\":\"新規フォルダーを作成\",\"button.newFile\":\"新規ファイル\",\"button.newFolder\":\"新規フォルダー\",\"button.delete\":\"削除\",\"button.deleteResource\":\"削除\",\"button.done\":\"完了\",\"button.download\":\"ダウンロード\",\"button.favorite\":\"お気に入り\",\"button.follow\":\"フォロー\",\"button.invite\":\"招待\",\"button.inviteLabel\":\"招待\",\"button.leave\":\"退出\",\"button.leaveProject\":\"ワークスペースから退出\",\"button.move\":\"次の場所に移動...\",\"button.next\":\"次へ\",\"button.ok\":\"OK\",\"button.open\":\"開く\",\"button.openWith\":\"アプリを指定して開く\",\"button.open.appName\":\"{appName} {isDefault, select, true {(デフォルト)} other {}}\",\"button.redo\":\"再試行\",\"button.reload\":\"再読み込み\",\"button.rename\":\"名前を変更\",\"button.restore\":\"復元\",\"button.retry\":\"再試行\",\"button.save\":\"保存\",\"button.select\":\"選択\",\"button.share\":\"共有\",\"button.skipTour\":\"ツアーを終了\",\"button.undo\":\"取り消し\",\"button.unfavorite\":\"お気に入り解除\",\"button.unfollow\":\"フォローを解除\",\"button.update\":\"更新\",\"button.upgrade\":\"アップグレード\",\"button.view\":\"すべて表示\",\"button.viewProject\":\"プロジェクトを表示\",\"button.viewTarget\":\"表示\",\"button.createWeblink\":\"Web リンクを追加\",\"button.leaveTeam\":\"ワークスペースから退出\",\"button.renameTeam\":\"ワークスペース名を変更\",\"button.editTeam\":\"ワークスペース情報を編集\",\"button.archiveTeam\":\"ワークスペースを削除\",\"button.upload\":\"ファイルをアップロード\",\"button.goToDeleted\":\"削除済みに表示\",\"button.viewEverything\":\"すべてを表示\",\"button.viewInWeb\":\"Web で表示\",\"abbreviations.fileSize.byte\":\"B\",\"abbreviations.fileSize.kilobyte\":\"KB\",\"abbreviations.fileSize.megabyte\":\"MB\",\"abbreviations.fileSize.gigabyte\":\"GB\",\"abbreviations.fileSize.terabyte\":\"TB\",\"statusIcon.conflicted\":\"同期が競合\",\"statusIcon.onlineOnly\":\"オンラインでのみ\",\"statusIcon.availableOffline\":\"オフラインで使用可能\",\"statusIcon.syncing\":\"同期...\",\"statusIcon.waitingToSync\":\"同期を待っています\",\"statusMessage.offline.description\":\"再接続して、すべてのワークスペースとプロジェクトにアクセスします。プロジェクトからローカルファイルを表示するには、ホームに移動します。\",\"statusMessage.offline.heading\":\"切断されています\",\"statusMessage.offline.toast\":\"切断されているため、一部の機能とファイルが利用できない可能性があります。\",\"toggle.listView\":\"リスト表示\",\"toggle.gridView\":\"サムネール表示\",\"color.fuchsia\":\"フクシア\",\"color.indigo\":\"インディゴ\",\"color.celery\":\"セロリ\",\"color.magenta\":\"マゼンタ\",\"color.yellow\":\"イエロー\",\"color.seafoam\":\" シーフォーム\",\"color.chartreuse\":\"シャルトルーズ\",\"color.purple\":\"パープル\",\"color.blue\":\"ブルー\",\"color.red\":\"レッド\",\"color.orange\":\"オレンジ\",\"color.green\":\"グリーン\",\"color.label\":\"プロジェクトカラー\",\"tooltip.offline.general\":\"このアクションを実行するには、オンラインに戻ってください\",\"tooltip.moreFaces\":\"と他 {number} 人\",\"action.leave.space.success\":\"{count, plural, =1 {# 個のプロジェクト} other {# 個のプロジェクト}}から退出しました\",\"action.leave.prototype.success\":\"{count, plural, =1 {# 個のプロトタイプ} other {# 個のプロトタイプ}}へのアクセス権が削除されました\",\"action.leave.file.success\":\"{count, plural, =1 {# 個のファイル} other {# 個のファイル}}へのアクセス権が削除されました\",\"action.leave.canvas.success\":\"{count, plural, =1 {# 個のカンバス} other {# 個のカンバス}}へのアクセス権が削除されました\",\"action.leave.team.success\":\"1 つのワークスペースから移動しました\",\"action.leave.space.error\":\"このプロジェクトから移動できません\",\"action.leave.prototype.error\":\"このプロトタイプから退出できません\",\"action.leave.file.error\":\"このファイルから退出できません\",\"action.leave.team.error\":\"このワークスペースから退出できません\",\"action.leave.canvas.error\":\"このカンバスから退出できません\",\"action.leave.space.partial.error\":\"すべてのプロジェクトから退出できません\",\"action.leave.prototype.partial.error\":\"すべてのプロトタイプから退出できません\",\"action.leave.file.partial.error\":\"すべてのファイルから退出できません\",\"action.leave.canvas.partial.error\":\"すべてのカンバスから退出できません\",\"action.leave.error.onlyContributor\":\"メンバーが 1 人だけです。もう 1 人追加すれば退出できます。\",\"action.leave.error.addressBookGroupMember\":\"グループから退出した後、再試行してください。\",\"action.leave.error.admin\":\"管理者は、ここから退出できません。\",\"action.leave.error.generic\":\"問題が発生したため退出できません。\",\"action.reportAbuse\":\"違反を報告\",\"action.reportAbuse.required\":\"必須項目\",\"action.reportAbuse.titleText\":\"この Creative Cloud コンテンツがアドビの利用条件に違反していると思われる場合は、このフォームに詳細を入力してご報告ください。 \",\"action.reportAbuse.emailInput\":\"メールアドレス\",\"action.reportAbuse.nameInput\":\"名前\",\"action.reportAbuse.radioButtonText\":\"このコンテンツを報告する理由\",\"action.reportAbuse.defamation\":\"誹謗中傷\",\"action.reportAbuse.hate\":\"差別または憎悪を含む内容\",\"action.reportAbuse.trademark\":\"商標権の侵害\",\"action.reportAbuse.pornography\":\"露骨な性表現を含む内容 \",\"action.reportAbuse.vulgar\":\"不快なコンテンツ\",\"action.reportAbuse.other\":\"その他\",\"action.reportAbuse.inappropriate\":\"内容が不適切\",\"action.reportAbuse.age\":\"年齢の不適切な表現\",\"action.reportAbuse.gender\":\"ジェンダーの不適切な表現\",\"action.reportAbuse.textAreaTitle\":\"報告内容を詳しくお聞かせください。\",\"action.reportAbuse.describeConcern\":\"懸念事項を記入\",\"action.reportAbuse.success\":\"違反は正常に報告されました\",\"action.reportAbuse.failure\":\"違反報告に失敗しました\",\"action.menu.label\":\"アクションメニュー\",\"action.label\":\"アクション\",\"dialog.genericError.description\":\"問題が発生しました。\",\"dialog.genericError.title\":\"予期しないエラー\",\"dialog.leave.space.title\":\"{count, plural, =1 {{name}} other { 個のプロジェクト}}から退出してください\",\"dialog.leave.prototype.title\":\"{count, plural, =1 {このプロトタイプ} other {プロトタイプ}}から退出\",\"dialog.leave.file.title\":\"{count, plural, =1 {このファイル} other {個のファイル}}から退出してください\",\"dialog.leave.canvas.title\":\"{count, plural, =1 {このカンバス} other {# 個のカンバス}}から退出してください\",\"dialog.leave.team.title\":\"グループから退出しますか？\",\"dialog.leave.team.detail\":\"自分を削除すると取り消せません。このワークスペースに戻る場合は、管理者に連絡してください。\",\"dialog.leave.space.detail\":\"このプロジェクトにある自分が所有していないアイテムにアクセスできなくなります。「{projectName}」を退出すると元に戻せません。\",\"dialog.leave.prototype.detail\":\"退出するとアクセスできなくなります。アクセスするには再度招待を受ける必要があります。\",\"dialog.leave.file.detail\":\"退出するとアクセスできなくなります。アクセスするには再度招待を受ける必要があります。\",\"dialog.leave.canvas.detail\":\"退出するとアクセスできなくなります。アクセスするには再度招待を受ける必要があります。\",\"dialog.leave.detail\":\"{type, select, space {お客様は{count, plural, =1 {このプロジェクト} other {これらのプロジェクト}}でお持ちのアイテムにアクセスできなくなります。{count, plural, =1 {\\\"{name}\\\"} other {これらのプロジェクト}}からの退出は取り消せません。} other {退出すると{count, plural, =1 {アクセス} other {アクセス}}できなくなります。アクセスするには再度招待を受ける必要があります{count, plural, =1 {。} other { : }}}}\",\"dialog.deleteFailed.title\":\"すべてのアイテムを削除できません\",\"dialog.deleteWarning.description\":\"{type, select, spaces {このアクションを実行すると、これらのプロジェクトのすべてのメンバーのコンテンツが削除されます :} other {このアクションを実行すると、このプロジェクトのすべてのメンバーの以下の項目が削除されます :}}\",\"dialog.deleteWarning.title\":\"{type, select, space {{count} {count, plural, =1 {プロジェクト} other {プロジェクト}}を削除} other {{count} {count, plural, =1 {項目} other {項目}}を削除}}\",\"dialog.deleteFailed.description.unauthorized\":\"プロジェクトから削除されたため、削除できません :\",\"dialog.deleteFailed.description.alreadyDeleted\":\"このアイテムは他のユーザーによって既に削除されたため、削除できません :\",\"dialog.deleteFailed.description.unknown\":\"問題が発生したため削除できません :\",\"dialog.cantCopyAllItems\":\"すべてのアイテムをコピーできません\",\"dialog.cantCopyBecauseSomethingWentWrong\":\"問題が発生したためコピーできません :\",\"dialog.cantCopyBecauseYouWereSignedOut\":\"ログアウトしているためコピーできません :\",\"dialog.cantCopyBecauseYouWereRemoved\":\"このプロジェクトから削除されたため、コピーできません :\",\"dialog.cantCopyBecauseItemWasDeleted\":\"このアイテムは他のユーザーによって削除されたため、コピーできません :\",\"dialog.cantCopyBecauseItemExists\":\"コピーしようとした場所に既に存在するため、コピーできません : \",\"dialog.cantMoveAllItems\":\"すべてのアイテムを移動できません\",\"dialog.cantMoveBecauseSomethingWentWrong\":\"問題が発生したため移動できません :\",\"dialog.cantMoveBecauseYouWereSignedOut\":\"ログアウトしているため移動できません :\",\"dialog.cantMoveBecauseYouWereRemoved\":\"このプロジェクトから削除されたため、移動できません :\",\"dialog.cantMoveBecauseItemWasDeleted\":\"このアイテムは他のユーザーによって削除されたため、移動できません :\",\"dialog.cantMoveBecauseItemExists\":\"移動しようとした場所に既に存在するため、移動できません : \",\"dialog.createFolder.error\":\"サーバーエラー、フォルダーを保存できませんでした\",\"dialog.createFolder.nameConflict\":\"同じ名前のフォルダーが既に存在します。\",\"dialog.createFolder.placeholder\":\"フォルダー名\",\"dialog.createFolder.title\":\"フォルダーを作成\",\"dialog.createFolder.success\":\"フォルダーが作成されました\",\"dialog.createWeblink.error\":\"サポートされていない URL\",\"dialog.createWeblink.tooManyRequests\":\"予期しないネットワークエラーが発生しました。後で再試行してください。\",\"dialog.createWeblink.success\":\"1 項目を追加\",\"dialog.createWeblink.nameConflict\":\"このタイトルは既に存在します\",\"dialog.createWeblink.name.placeholder\":\"このリンクの名前を入力\",\"dialog.createWeblink.link.placeholder\":\"https://\",\"dialog.createWeblink.name\":\"カスタムタイトル\",\"dialog.createWeblink.link\":\"リンク\",\"dialog.createWeblink.title\":\"Web リンクを作成\",\"app.type.webLink\":\"WEB リンク\",\"dialog.createCanvas.error\":\"カンバスを作成できません\",\"dialog.move.title\":\"プロジェクトを {projectName} に移動します\",\"dialog.move.detail\":\"このアイテムを移動すると、アクセスできるユーザーが変わります。\",\"moveToTeam.confirm.title\":\"ワークスペース「{name}」に移動\",\"moveToTeam.confirm.message\":\"ここにプロジェクトを移動すると、プロジェクトにアクセスできるユーザーが変わります。自分のプロジェクトは、自分のワークスペースにアクセスできるユーザーなら誰でもアクセスできます。\",\"moveToTeam.disabled.differentOrg.tooltip.message\":\"プロジェクトを別の組織のワークスペースに移動することはできません。\",\"moveToSpace.disabled.differentOrg.tooltip.message\":\"アイテムを別の組織のプロジェクトに移動することはできません。\",\"moveToTeam.success\":\"{count, plural, =1 {# つのプロジェクト} other {# つのプロジェクト}} をワークスペース「{name}」に移動しました\",\"confirmationDialog.dontShowAgain\":\"次回から表示しない\",\"dialog.open.title\":\"web で開く\",\"dialog.open.detail\":\"{appName} でこのファイルを開くことはできませんが、ブラウザーでアクセスすることはできます。\",\"dialog.renameTeam.title\":\"ワークスペース名を変更\",\"dialog.renameTeam.placeholder\":\"ここにワークスペース名を入力\",\"dialog.renameTeam.error\":\"問題が発生しました。\",\"dialog.renameTeam.nameConflict\":\"この名前は既に存在します\",\"dialog.archiveTeam.title\":\"このワークスペースを削除しますか？\",\"dialog.archiveTeam.detail\":\"自分を削除すると元に戻せません。再びこのワークスペースに参加する場合は、管理者に連絡してください。\",\"dialog.saveToCloud.title\":\"Creative Cloud にファイルを保存しました\",\"dialog.saveToCloud.detail\":\"クラウドドキュメントに、バージョン履歴、招待と共同編集、他のデバイスでの即時アクセスなどの機能が追加されました。このページや Creative Cloud アプリでご覧いただけます。\",\"input.invalidCharInput\":\"名前に次の文字は使用できません : \\\\\\\\ / * ? \\\" | :\",\"input.invalidEmptyInput\":\"{names, select, true {名前} other {タイトル}}は空にできません\",\"input.nameTooLong\":\"{names, select, true {名前} other {肩書}} は {maxLength} 文字を超えることはできません\",\"input.nameEndsWithDot\":\"{names, select, true {名前} other {タイトル}}の末尾にはピリオドを使用できません\",\"input.weblink.nameRestricted\":\"Web リンクに次のタイトルを付けることはできません。「con」、「prn」、「aux」、「nul」、「com#」、「lpt#」\",\"input.nameRestricted\":\"アセットに次の名前を付けることはできません。con/prn/aux/nul/com#/lpt#\",\"input.weblink.invalidCharInput\":\"タイトルにスペースのみを含めることはできません。また、次の文字は使用できません。\\\\\\\\ / * ? \\\" | : < >\",\"input.name.invalidCharInput\":\"名前は、空白のみを含めることはできません。また次の文字は使用できません。\\\\\\\\ / * ? \\\" | : < >\",\"cdpFooter.orphanedArtifactsWarning\":\"移動するアイテムに接続されている公開リンクは、元のプロジェクトに残ります\",\"cdpFooter.libraryPrivacyWarning\":\"追加したライブラリへの再共有権限がある場合、プロジェクトのメンバーはそれを表示できます\",\"toast.beforeOp.error.documentIsOpen\":\"このアクションを実行するには、ドキュメントを閉じてください\",\"app.type.designSpecs\":\"デザインスペック\",\"app.type.prototype\":\"プロトタイプ\",\"app.type.publishedLink\":\"公開リンク\",\"popover.header\":\"他の人と共同作業でプロジェクトを進め、作品を共有してフィードバックを得ることができます。\",\"popover.linkout\":\"さらに詳しく\",\"team.libraries.filter.all\":\"すべて\",\"team.libraries.filter.addedToYourLibraries\":\"自分のライブラリに追加済み\",\"team.libraries.filter.notAdded\":\"追加していないライブラリ\",\"team.spaces.filter.all\":\"すべて\",\"team.spaces.filter.favorited\":\"お気に入り\",\"team.filter.empty.heading\":\"選択したフィルターに一致するプロジェクトはありません\",\"team.filter.empty.description1\":\"検索語「\",\"team.filter.empty.description2\":\"」に該当する結果は見つかりませんでした。入力を確認するか、別のキーワードを試してください。\",\"team.filter.no.match.description\":\"このリストに結果が見つかりませんでした。スペルを確認するか、別のフィルター条件を試してください。\",\"team.filter.filterText\":\"{filter}\",\"team.header.other.teams\":\"その他のワークスペース\",\"space.empty.heading\":\"すべてが 1 つの場所にあり、全員が最新情報を共有できます\",\"space.empty.description\":\"このプロジェクトには、作業中のファイルや関連資料を置いておきます。共同作業者を招待して、彼らが取り組んでいるものを追加してください。\",\"space.empty.canvasHeading\":\"CREATIVE CLOUD CANVAS\",\"space.empty.actionsHeading\":\"プロジェクトにコンテンツを追加\",\"space.empty.createCanvas\":\"新規カンバス\",\"space.empty.upload\":\"ファイルを追加\",\"space.empty.createFolder\":\"新規フォルダー\",\"space.empty.createWeblink\":\"Web リンク\",\"space.empty.addResource\":\"ライブラリ\",\"folder.empty.heading\":\"このフォルダーは空です\",\"folder.empty.description\":\"グループで使用するファイルを追加しましょう\",\"folder.discard.heading\":\"このフォルダーは削除されました。\",\"folder.discard.description\":\"ご不明な点がある場合は管理者にお問い合わせいただくか、他のコンテンツを参照してください。\",\"folder.error.description\":\"このフォルダーからコンテンツを読み込む際に問題が発生しました.\",\"space.empty.section.createACanvas\":\"カンバスを作成\",\"tooltip.opensInBrowser\":\"ブラウザーで開く\",\"space.empty.workingFiles\":\"このプロジェクトへの追加を続ける\",\"space.empty.canvasPopoverTitle\":\"Creative Cloud Canvas (ベータ版) を試す\",\"space.empty.canvasPopoverContent\":\"カンバスを使用して、創造的な作品をレイアウト、視覚化、レビューしましょう。\",\"space.error.heading\":\"プロジェクトを読み込めません\",\"space.error.description\":\"このプロジェクトからコンテンツを読み込む際に問題が発生しました。\",\"createTeamWizard.createTeam.sidebarHeading\":\"ワークスペースを作成\",\"createTeamWizard.createTeam.sidebarCopy\":\"ワークスペースを作成して、全員を同じページに配置し、整理します。\",\"createTeamWizard.createTeam.sidebarCopy.adminconsole\":\"チームが共同作業を行ってファイルを共有できる場所を設定します。\",\"createTeamWizard.createTeam.sidebarLink\":\"詳細\",\"createTeamWizard.createTeam.contentHeading\":\"新規ワークスペース\",\"createTeamWizard.createTeam.loading\":\"「{name}」ワークスペースを作成しています\",\"createTeamWizard.inviteMembers.sidebarHeading\":\"「{name}」ワークスペースにメンバーを招待\",\"createTeamWizard.inviteMembers.sidebarCopy\":\"名前またはメールアドレスの入力を開始してメンバーを招待するか、この手順をスキップして後で招待します。\",\"createTeamWizard.inviteMembers.loading\":\"「{name}」ワークスペースにメンバーを招待しています\",\"createTeamWizard.inviteMembers.contentHeading\":\"メンバーを招待\",\"createTeamWizard.inviteMembers.successToast\":\"メンバーが新しいワークスペースに追加されました\",\"createTeamWizard.progress\":\"手順 {current} / {total}\",\"createTeamWizard.skipStep\":\"無視\",\"teamDialog.createTeam.label\":\"ワークスペースを作成\",\"teamDialog.createTeam.infoBox.description\":\"作成するワークスペースは招待専用で、追加されたユーザー全員がデフォルトで編集アクセス権を持っています。\",\"teamDialog.editTeam.label\":\"ワークスペースを編集\",\"teamDialog.nameSection.placeholder\":\"新しいワークスペースに名前を付けます\",\"teamDialog.nameSection.label\":\"ワークスペース名\",\"teamDialog.permissionsSection.label\":\"このワークスペースを編集できるユーザー\",\"teamDialog.permissionsSection.option.onlyInvited\":\"招待されたユーザーのみ\",\"teamDialog.descriptionSection.label\":\"ワークスペースの説明 (任意)\",\"teamDialog.descriptionSection.placeholder\":\"このワークスペースを簡単に紹介してください\",\"teamsSidebar.noTeams\":\"ワークスペースがありません\",\"teamsSidebar.newTeamButton\":\"ワークスペースを作成\",\"teamsSidebar.adminTour.title\":\"新規! ワークスペースを作成\",\"teamsSidebar.adminTour.content\":\"管理者が web 上の Creative Cloud でワークスペースを作成できるようになり、共有作業を中心とした組織作りが容易になりました。\",\"teamsSidebarTeam.newSpaceButton\":\"新規プロジェクト\",\"teamsSidebarTeam.header.newBadge\":\"新規\",\"teamsSidebarTeam.header.otherTeams\":\"他のワークスペースから\",\"teamsSidebarTeam.header.teams\":\"ワークスペース\",\"teamsSidebarTeam.header.previewLabel\":\"(プレビュー)\",\"teamsSidebarTeam.header.previewCopy\":\"ワークスペースとプロジェクトは非公開のベータ版で利用できます。\",\"teamsSidebarTeam.header.previewLearnMoreText\":\"詳細\",\"teamsSidebarTeam.message.loading\":\"読み込み中...\",\"teamsSidebarTeam.message.noSpaces\":\"ワークスペースまたはプロジェクトがありません。\",\"teamsSidebarTeam.message.offline\":\"インターネットから切断されています。ワークスペースとプロジェクトを表示するには、再接続してください。\",\"teamsSidebarTeam.message.error\":\"ワークスペースとプロジェクトの読み込み中に問題が発生しました。\",\"teams1up.error.description\":\"プロジェクトの読み込み中に問題が発生しました。\",\"teams1up.error.heading\":\"プロジェクトを読み込めませんでした\",\"otherTeams.emptyMessage.header\":\"ワークスペースページを表示できません\",\"otherTeams.emptyMessage.description1\":\"あなたは、\",\"otherTeams.emptyMessage.description2\":\"のセクションを使用している最近のプロジェクトから削除されたか、退出しました。ご不明な点がある場合は管理者にお問い合わせください。\",\"spaceTour.step0.title\":\"自分のプロジェクトがここにあります\",\"spaceTour.step0.content\":\"プロジェクトは、チームが共同作業を行い、ファイルやリソースを収集、整理、共有するのに役立ちます。\",\"spaceTour.step1.title\":\"プロジェクトに必要なものをすべて追加しましょう\",\"spaceTour.step1.content\":\"作業用ファイル、参照画像、資料などを 1 つの場所に集めることができます。\",\"spaceTour.step2.title\":\"権限を設定 (および解除)\",\"spaceTour.step2.content\":\"共同作業者を招待する際に、適切なアクセス権を割り当てることで、時間と手間を省くことができます。表示専用のパッケージを関係者に送信し、レビューやフィードバックを求めることができます。\",\"error.cantCreateSpace\":\"ワークスペースストレージの空きがありません\",\"error.exceedQuota.create.detail.description1\":\"現在、新しいものを作成することはできません。\",\"error.exceedQuota.description2\":\"し、不要なファイルを完全に削除してストレージを解放してください。\",\"error.exceedQuota.add.detail.description1\":\"現在、新しいものを追加することはできません。\",\"error.move.generic\":\"問題が発生したため移動できません\",\"error.move.signedOut\":\"ログアウトしているため移動できません\",\"error.move.permissionRevoked\":\"このプロジェクトから削除されたため、移動できません\",\"error.move.deleted\":\"このアイテムは他のユーザーによって削除されたため、移動できません\",\"error.move.duplicate\":\"移動しようとした場所に既に存在するため、移動できません\",\"error.copy.generic\":\"問題が発生したためコピーできません\",\"error.copy.signedOut\":\"ログアウトしているためコピーできません\",\"error.copy.permissionRevoked\":\"このプロジェクトから削除されたため、コピーできません\",\"error.copy.deleted\":\"このアイテムは他のユーザーによって削除されたため、コピーできません\",\"error.copy.duplicate\":\"コピーしようとした場所に既に存在するため、コピーできません\",\"checkbox.select\":\"選択\",\"listItem.fileSize\":\"ファイルサイズ\",\"facepile.additionalMembers\":\"追加のメンバー +{count}\",\"facepile.memberName\":\"{name}、メンバー\",\"coachmark.information\":\"情報\",\"toolbar.tools\":\"ツール\",\"griditem.error.message\":\"取得できません\",\"griditem.error.button\":\"再試行\",\"ats.move.extendedNotification\":\"移動が完了すると通知が届きます\",\"file.deleted.error.heading\":\"ファイルを{operation}できません\",\"file.deleted.error.description\":\"このファイルは削除済みであるため{operation}できません。「削除済み」から復元してもう一度試すか、別の場所を選んでください。\",\"file.deleted.rename.error.description\":\"このファイルは削除済みであるため名前を変更できません。「削除済み」に移動してファイルを復元してください。\"}");

/***/ }),

/***/ "pyUw":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var _UxpOptions = _interopRequireDefault(__webpack_require__("zvwv"));

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}
/*************************************************************************
* ADOBE CONFIDENTIAL
* ___________________
*
* Copyright 2019 Adobe
* All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains
* the property of Adobe and its suppliers, if any. The intellectual
* and technical concepts contained herein are proprietary to Adobe
* and its suppliers and are protected by all applicable intellectual
* property laws, including trade secret and copyright laws.
* Dissemination of this information or reproduction of this material
* is strictly forbidden unless prior written permission is obtained
* from Adobe.
**************************************************************************/


module.exports = _UxpOptions.default.select('Popover', () => __webpack_require__("d5/D"), () => __webpack_require__("0Y3e"));

/***/ }),

/***/ "q+JA":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("path", {
  d: "M42 4H18a2 2 0 0 0-2 2v10h12v28h14a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2zm-14 8h-8V8h8zm12 24h-8v-4h8zm0-8h-8v-4h8zm0-8h-8v-4h8zm0-8h-8V8h8z"
}), React.createElement("path", {
  d: "M4 22v20a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V22a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2zm8 20H6v-4h6zm0-8H6v-4h6zm0-8H6v-4h6zm10 8h-6v-4h6zm0-8h-6v-4h6z"
}));

/***/ }),

/***/ "q/Z0":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXPORTS
__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ CardSize; });

// UNUSED EXPORTS: GRID_SIZE, largeSizes

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__("q1tI");
var react_default = /*#__PURE__*/__webpack_require__.n(react);

// EXTERNAL MODULE: ./node_modules/mobx-react/index.module.js
var index_module = __webpack_require__("okNM");

// EXTERNAL MODULE: ./node_modules/lodash/debounce.js
var debounce = __webpack_require__("sEfC");
var debounce_default = /*#__PURE__*/__webpack_require__.n(debounce);

// EXTERNAL MODULE: ./node_modules/react-virtualized/dist/es/index.js + 67 modules
var es = __webpack_require__("c7k8");

// EXTERNAL MODULE: ./node_modules/@adobe/react-virtualized/dist/es/index.js + 65 modules
var dist_es = __webpack_require__("UaZ8");

// EXTERNAL MODULE: ./node_modules/classnames/index.js
var classnames = __webpack_require__("TSYQ");
var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/thirdparty/FocusManager.ts + 3 modules
var FocusManager = __webpack_require__("byaY");

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Button/index.js
var Button = __webpack_require__("Cn9g");
var Button_default = /*#__PURE__*/__webpack_require__.n(Button);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Checkbox/index.js
var Checkbox = __webpack_require__("L+OI");
var Checkbox_default = /*#__PURE__*/__webpack_require__.n(Checkbox);

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/ChevronDown/index.js
var ChevronDown = __webpack_require__("uXGE");
var ChevronDown_default = /*#__PURE__*/__webpack_require__.n(ChevronDown);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/DropdownButton/index.js
var DropdownButton = __webpack_require__("6y7h");
var DropdownButton_default = /*#__PURE__*/__webpack_require__.n(DropdownButton);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Menu/index.js
var Menu = __webpack_require__("kzNO");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/ErrorBoundary.tsx
var ErrorBoundary = __webpack_require__("SKw+");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/SortArrow.tsx
var SortArrow = __webpack_require__("SgDU");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/stores/constants.ts
var constants = __webpack_require__("C0qj");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/types/CDOReactIntlTyped.ts
var CDOReactIntlTyped = __webpack_require__("dSAe");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/components/ViewHeader.tsx
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;
};
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Incorporated.
 **************************************************************************/











let ViewHeader_ViewHeader = class ViewHeader extends react["Component"] {
    constructor() {
        super(...arguments);
        this.metrics = this.props.metrics;
        this.changeSort = (sortBy) => {
            var _a, _b;
            const { ingestSubcategory, onSortSelected } = this.props;
            onSortSelected(sortBy);
            (_b = (_a = this.metrics) === null || _a === void 0 ? void 0 : _a.fireEvent) === null || _b === void 0 ? void 0 : _b.call(_a, {
                event: {
                    subcategory: ingestSubcategory,
                    subtype: 'sort',
                    type: 'select',
                    value: constants["x" /* UX_SORT_TO_INGEST */][sortBy],
                    workflow: 'Gallery',
                },
                ui: {
                    view_type: 'grid',
                },
            });
        };
        this.onClickSortDir = () => {
            const { activeSort } = this.props;
            this.changeSort(activeSort);
        };
    }
    renderViewHeader() {
        const { onSelectAllItems, selectionStore, elements, isSelectAllDisabled, hideSelectAllCheckbox, } = this.props;
        const selectionEnabled = Boolean(onSelectAllItems);
        const selectionCount = selectionStore.selectedElements.length;
        const hasSelections = selectionCount > 0;
        const allItemsAreSelected = selectionCount === elements.length;
        const showSelectAllCheckbox = selectionEnabled && !hideSelectAllCheckbox;
        return (react["createElement"]("div", { className: "headerWrapper" },
            react["createElement"]("div", { className: "header" },
                showSelectAllCheckbox && (react["createElement"]("div", { id: `CDOGridView_SelectAll_Selected_${hasSelections}`, className: "checkBoxContainer" },
                    react["createElement"](Checkbox_default.a
                    // marstewa 5/18/20
                    // TODO: remove tabIndex={0} once UXP is fixed
                    // https://jira.corp.adobe.com/browse/UXP-13813
                    , Object.assign({ 
                        // marstewa 5/18/20
                        // TODO: remove tabIndex={0} once UXP is fixed
                        // https://jira.corp.adobe.com/browse/UXP-13813
                        tabIndex: 0, id: "CDOGridView_SelectAllCheckbox", className: "focusItem", checked: allItemsAreSelected, indeterminate: !allItemsAreSelected && hasSelections, onChange: onSelectAllItems, renderLabel: false }, (isSelectAllDisabled ? { disabled: true } : {}))))),
                react["createElement"](ErrorBoundary["a" /* default */], { message: "View.sortByDropDownContainer failed to render" }, this.renderSortOptions()))));
    }
    renderSortOptions() {
        const { activeSort, activeSortDirection, sortOptions, intl } = this.props;
        return (react["createElement"]("div", { id: `CDOGridView_SortOrder_${activeSortDirection}`, className: "sortByDropdownContainer" },
            react["createElement"]("div", { id: "CDOGridView_SortBy_Label", className: "sortByLabel" }, intl.formatMessage({ id: 'header.SortBy' })),
            react["createElement"](DropdownButton_default.a, { id: "CDOGridView_SortByDropDown", boundariesElement: "container", className: "dropdownButton", label: intl.formatMessage({ id: `header.${activeSort}` }), icon: react["createElement"](ChevronDown_default.a, null), onSelect: this.changeSort }, sortOptions.map(option => (react["createElement"](Menu["MenuItem"], { key: option, id: `SortByDropDown_${option}`, value: option, selected: option === activeSort }, intl.formatMessage({ id: `header.${option}` }))))),
            react["createElement"]("div", { className: "sortSeperator" }),
            react["createElement"](Button_default.a, { className: "sortByArrow", variant: "tool", icon: react["createElement"](SortArrow["a" /* SortArrow */], { activeSortDirection: activeSortDirection }), onClick: this.onClickSortDir })));
    }
    /**
     * Component renderer.
     * @return {ReactElement} markup
     */
    render() {
        return (react["createElement"](ErrorBoundary["a" /* default */], { message: "View.header failed to render" }, this.renderViewHeader()));
    }
};
ViewHeader_ViewHeader = __decorate([
    Object(index_module["d" /* inject */])('metrics'),
    index_module["e" /* observer */]
], ViewHeader_ViewHeader);
/* harmony default export */ var components_ViewHeader = (Object(CDOReactIntlTyped["e" /* injectIntl */])(ViewHeader_ViewHeader));
const ViewHeaderForTests = ViewHeader_ViewHeader.wrappedComponent;


// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/utils.ts
var utils = __webpack_require__("+Ots");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/react-virtualized-change-props.ts
var react_virtualized_change_props = __webpack_require__("AQj1");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/ensure-focus-on-items.ts
var ensure_focus_on_items = __webpack_require__("KrGB");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/constants.ts
var utils_constants = __webpack_require__("a375");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/scrollbar-measurer.ts
var scrollbar_measurer = __webpack_require__("7B5B");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/UnableToOpenItemWarning.tsx
var UnableToOpenItemWarning = __webpack_require__("thTA");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/GridItem.tsx
var GridItem = __webpack_require__("wxeS");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/get-extend-selection-mode.ts
var get_extend_selection_mode = __webpack_require__("seVz");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/WindowScrollerProvider.tsx
var WindowScrollerProvider = __webpack_require__("NBj/");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/styles/GridView.css
var styles_GridView = __webpack_require__("ZiUk");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/components/GridView.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
/* eslint-disable max-classes-per-file, react/no-find-dom-node */
var GridView_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;
};
var GridView_1;




















/**
 * This mimics the React Spectrum Card sizes for when we
 * migrate to using the React Spectrum GridView.
 * https://git.corp.adobe.com/React/react-spectrum-v2/blob/master/src/GridView/js/GridView.js#L43
 *
 */
var CardSize;
(function (CardSize) {
    /**
     * Currently we do not support
     * a small card size.
     * @TODO Eventually support small sizes
     *
     * Small = "S",
     */
    /**
     * Medium does not exist in spectrum right now
     * and should only be used with UAP.
     */
    CardSize["Medium"] = "M";
    CardSize["Large"] = "L";
})(CardSize || (CardSize = {}));
const mediumSizes = {
    gridTileWHMin: 118,
    gridTileWHMax: 150,
    gridTileInfoHeight: 64,
    gridTileVMargin: 40,
    gridTileHMargin: 24,
    colMaxWidth: undefined,
};
mediumSizes.colMaxWidth = mediumSizes.gridTileWHMax + mediumSizes.gridTileHMargin;
const largeSizes = {
    gridTileWHMin: 168,
    gridTileWHMax: 208,
    gridTileInfoHeight: 64,
    gridTileVMargin: 48,
    gridTileHMargin: 24,
    colMaxWidth: undefined,
};
largeSizes.colMaxWidth = largeSizes.gridTileWHMax + largeSizes.gridTileHMargin;
const GRID_SIZE = new Map([
    [CardSize.Medium, mediumSizes],
    [CardSize.Large, largeSizes],
]);
/**
 * Simple unordered grid view bound to data store.
 */
let GridView_GridView = GridView_1 = class GridView extends react_default.a.Component {
    constructor() {
        super(...arguments);
        this.state = {
            columnCount: 0,
            columnWidth: 0,
            height: 0,
            lastColumnWidth: 0,
            rowHeight: 0,
            tileHeight: 0,
            tileWidth: 0,
            width: 0,
        };
        this._gridRef = react_default.a.createRef();
        // Methods like getBoundingClientRect in this._computeLayout below, when requested/called in JavaScript,
        // will trigger the browser to synchronously calculate the style and layout. This
        // is also called reflow or layout thrashing, and is a common performance bottleneck.
        // https://gist.github.com/paulirish/5d52fb081b3570c81e3a
        //
        // Only refresh after MINIMUM_ACCEPTED_TIMEOUT ms since last resize. This fixes
        // https://jira.corp.adobe.com/browse/CCXCD-4510 and seems more responsive than throttling.
        this.resizeHandler = debounce_default()(() => {
            if (this._gridRef && this._gridRef.current) {
                // UXP dispatches the resize event every 'frame' rendered on the screen
                // even if the user has not resized the screen. To resolve this
                // We need to compare the current dimensions of the screen against
                // the values saved in this.state
                const dimensions = this._gridRef.current.getBoundingClientRect();
                if (utils["a" /* default */].usingUXP()) {
                    if (dimensions.width === this.state.width &&
                        dimensions.height === this.state.height) {
                        return;
                    }
                }
                this._computeLayout(dimensions);
            }
        }, utils_constants["o" /* MINIMUM_ACCEPTED_TIMEOUT */]);
        this.windowScrollerRef = react_default.a.createRef();
        this.onUpdateScrollPosition = () => {
            var _a;
            (_a = this.windowScrollerRef.current) === null || _a === void 0 ? void 0 : _a.updatePosition();
        };
        this._getColumnWidthByIndex = ({ index }) => {
            if (index === this.state.columnCount - 1) {
                return this.state.lastColumnWidth;
            }
            return this.state.columnWidth;
        };
        this._getFocusOffset = () => this.state.columnCount;
        /**
         * Cell Renderer
         * The function called for each cell rendered on the Grid
         * more information https://github.com/bvaughn/react-virtualized/blob/master/docs/Grid.md
         */
        this.onCellRender = ({ columnIndex, // Horizontal (column) index of cell
        key, // Unique key within array of cells
        rowIndex, // Vertical (row) index of cell
        style, }) => {
            var _a;
            const { selectionStore, elements, ingestSubcategory, useAdobeReactVirtualized, hideSelectionCheckbox, onItemSelected, children, } = this.props;
            const { tileWidth, tileHeight, columnCount } = this.state;
            const curIndex = rowIndex * columnCount + columnIndex;
            if (curIndex >= elements.length) {
                return;
            }
            const element = elements[curIndex];
            const isSelected = selectionStore === null || selectionStore === void 0 ? void 0 : selectionStore.isSelected(element);
            // @ts-ignore
            const viewItem = typeof children === 'function' ? (_a = children === null || children === void 0 ? void 0 : children(element)) !== null && _a !== void 0 ? _a : GridItem["a" /* default */] : children; // backward compatibility for FMHS Recents
            const { props: viewItemProps } = viewItem;
            const currentKey = useAdobeReactVirtualized ? key : element.id;
            // If this is the first item, set a positive tab index
            // to prevent tabbing to other GridItems and let
            // FocusManager manage the other items' tabindex.
            const itemTabIndex = rowIndex + columnIndex === 0 ? 0 : -1;
            return (react_default.a.createElement("div", { key: currentKey, style: style },
                react_default.a.createElement(ErrorBoundary["a" /* default */], { message: "GridView.GridItem failed to render" },
                    react_default.a.createElement(UnableToOpenItemWarning["a" /* default */], Object.assign({}, viewItemProps, { element: element }), react_default.a.cloneElement(viewItem, {
                        element,
                        isSelected,
                        tileWidth,
                        tileHeight,
                        ingestSubcategory,
                        tabIndex: itemTabIndex,
                        hideSelectionCheckbox,
                        onItemSelected,
                    })))));
        };
        this.onSectionRendered = () => {
            Object(ensure_focus_on_items["a" /* default */])(utils_constants["h" /* FOCUS_ITEM_CLASS */], this._gridRef.current);
        };
        this.onKeyboardFocusChange = (item, index, e) => {
            const { elements, onItemSelected, arrowKeyMovesSelection } = this.props;
            if (!arrowKeyMovesSelection) {
                return;
            }
            // find the focused element
            const targetId = item.getAttribute('data-element-id');
            const element = elements.find(el => el.id === targetId);
            if (onItemSelected && element) {
                const extendSelectionMode = Object(get_extend_selection_mode["a" /* default */])(e);
                onItemSelected(element, extendSelectionMode);
            }
        };
    }
    componentDidMount() {
        this.resizeHandler();
        const resizeElement = this._getResizeElement();
        resizeElement.addEventListener('resize', this.resizeHandler);
        resizeElement.addEventListener(constants["d" /* CCD_CONTENTVIEW_RESIZE_EVENT */], this.resizeHandler);
        resizeElement.addEventListener(constants["e" /* CDO_UPDATE_SCROLL_POSITION */], this.onUpdateScrollPosition);
    }
    componentDidUpdate(prevProps, prevState) {
        if (!this._gridRef.current) {
            return;
        }
        const { elements } = this.props;
        const { width, height } = this.state;
        // Some prop and state changes require a relayout, even if the window has not been resized:
        // - A different number of items is visible.
        // - A transition from an unrendered grid (0-width or 0-height) to a visible grid (see isGridVisible)
        //   (causing the header to appear, making the available grid area smaller).
        if (prevProps.elements.length !== elements.length ||
            (prevState.width === 0 && width > 0) ||
            (prevState.height === 0 && height > 0)) {
            const dimensions = this._gridRef.current.getBoundingClientRect();
            this._computeLayout(dimensions);
        }
        Object(ensure_focus_on_items["a" /* default */])(utils_constants["h" /* FOCUS_ITEM_CLASS */], this._gridRef.current);
    }
    componentWillUnmount() {
        // Cancel any pending throttled resizeHandler events
        this.resizeHandler.cancel();
        const resizeElement = this._getResizeElement();
        resizeElement.removeEventListener('resize', this.resizeHandler);
        resizeElement.removeEventListener(constants["d" /* CCD_CONTENTVIEW_RESIZE_EVENT */], this.resizeHandler);
        resizeElement.removeEventListener(constants["e" /* CDO_UPDATE_SCROLL_POSITION */], this.onUpdateScrollPosition);
    }
    _computeColumns(totalWidth) {
        const { elements } = this.props;
        const { gridTileWHMax, gridTileWHMin, gridTileHMargin } = this._gridSizeProps();
        const { scrollbarWidth } = Object(scrollbar_measurer["a" /* getScrollbarMeasurer */])();
        const width = totalWidth - scrollbarWidth;
        let bestLayout;
        let targetColumnCount;
        for (let tileWidth = gridTileWHMin; tileWidth <= gridTileWHMax; tileWidth++) {
            const columnWidth = tileWidth + gridTileHMargin;
            const columnCount = targetColumnCount || Math.min(Math.floor(width / columnWidth), elements.length);
            if (columnCount * columnWidth <= width) {
                targetColumnCount = targetColumnCount || columnCount;
                bestLayout = {
                    columnCount,
                    columnWidth,
                    insufficientRanges: false,
                    tileWidth,
                };
            }
        }
        return bestLayout;
    }
    _gridSizeProps() {
        const { cardSize } = this.props;
        return GRID_SIZE.get(cardSize);
    }
    _computeLayout({ width, height }) {
        const { elements = [] } = this.props;
        const { gridTileInfoHeight, gridTileVMargin } = this._gridSizeProps();
        if (elements.length === 0) {
            return;
        }
        const { columnWidth, tileWidth, columnCount } = this._computeColumns(width);
        const tileHeight = tileWidth;
        const rowHeight = tileHeight + gridTileInfoHeight + gridTileVMargin;
        this.setState({
            columnCount,
            columnWidth,
            height,
            lastColumnWidth: tileWidth,
            rowHeight,
            tileHeight,
            tileWidth,
            width,
        });
        // When the grid's layout changes, notify any sibling grids within the
        // same scroll container, so that they can call WindowScroller's
        // updatePosition() to update their scroll offsets.
        const resizeElement = this._getResizeElement();
        resizeElement.dispatchEvent(new CustomEvent(constants["e" /* CDO_UPDATE_SCROLL_POSITION */]));
    }
    _getResizeElement() {
        // UXP currently does not bubble up the resize event to the window but
        // it does dispatch the event to every DOM node up to document.
        return utils["a" /* default */].usingUXP() ? document : window;
    }
    renderColumnSizer(children) {
        const { useAdobeReactVirtualized } = this.props;
        const { colMaxWidth } = this._gridSizeProps();
        const { width, columnCount } = this.state;
        const columSizerProps = {
            columnMaxWidth: colMaxWidth,
            columnCount,
            width,
        };
        if (useAdobeReactVirtualized) {
            return react_default.a.createElement(dist_es["a" /* ColumnSizer */], Object.assign({}, columSizerProps), children);
        }
        return react_default.a.createElement(es["a" /* ColumnSizer */], Object.assign({}, columSizerProps), children);
    }
    get rowCount() {
        const { elements, limitRowCount } = this.props;
        const { columnCount } = this.state;
        const rowCount = Math.ceil(elements.length / (columnCount || 1));
        return limitRowCount ? Math.min(limitRowCount, rowCount) : rowCount;
    }
    renderGrid() {
        const { width, height, columnCount, rowHeight } = this.state;
        const { elements, autoHeight, selectionStore, 
        // overscanRowCount should be at least 2 so that keyboard nav + virtual scrolling works smoothly
        overscanRowCount = 2, // eslint-disable-line @typescript-eslint/no-magic-numbers
        additionalChangeProps, useAdobeReactVirtualized, scrollIndex = -1, scrollElementRef, } = this.props;
        // Unwrapping the observable here is required for the test
        // suite to properly pass.
        const hasElements = Boolean(elements && elements.length > 0);
        const isGridVisible = width > 0 && height > 0 && hasElements && columnCount > 0 && this.rowCount > 0;
        const commonGridProps = {
            cellRenderer: this.onCellRender,
            columnCount,
            columnWidth: this._getColumnWidthByIndex,
            rowCount: this.rowCount,
            rowHeight,
            width,
            height,
            overscanRowCount,
            overscanColumnCount: 1,
            autoHeight,
            tabIndex: -1,
            // Trigger re-render when these values change
            // NOTE: elements must be a new array each time so that
            // React-virtualized can do simple === check on these props to detect changes.
            ...Object(react_virtualized_change_props["a" /* default */])(elements, ...additionalChangeProps),
            overscanIndicesGetter: es["f" /* accessibilityOverscanIndicesGetter */],
            onSectionRendered: this.onSectionRendered,
            scrollToRow: Math.ceil((scrollIndex + 1) / (columnCount || 1)) - 1,
        };
        const GridComponent = useAdobeReactVirtualized ? dist_es["b" /* Grid */] : es["b" /* Grid */];
        return (react_default.a.createElement("div", { className: "itemsContainer", ref: this._gridRef }, isGridVisible && (react_default.a.createElement(ErrorBoundary["a" /* default */], { message: "GridView.ReactVirtualized.ColumnSizer failed to render" }, this.renderColumnSizer(({ registerChild }) => (react_default.a.createElement(ErrorBoundary["a" /* default */], { message: "GridView.ReactVirtualized.Grid failed to render" }, 
        // FocusManager has to be wrapped
        // Directly around Grid
        this.renderFocusElement(react_default.a.createElement(WindowScrollerProvider["a" /* default */], { ref: this.windowScrollerRef, scrollElementRef: scrollElementRef }, scrollProps => (react_default.a.createElement(GridComponent, Object.assign({ ref: registerChild }, commonGridProps, scrollProps))))))))))));
    }
    renderFocusElement(children) {
        const { focusManagementEnabled } = this.props;
        if (focusManagementEnabled) {
            return (react_default.a.createElement(FocusManager["a" /* default */], { itemSelector: `.${utils_constants["h" /* FOCUS_ITEM_CLASS */]}`, orientation: "both", manageTabIndex: true, nextFocusOffset: this._getFocusOffset, prevFocusOffset: this._getFocusOffset, disableCyclicFocus: true, onKeyboardFocusChange: this.onKeyboardFocusChange },
                react_default.a.createElement("div", { tabIndex: -1 }, children)));
        }
        return children;
    }
    /**
     * Component renderer.
     * @return {ReactElement} markup
     */
    render() {
        const { width, height, columnCount } = this.state;
        const { elements, isHeaderVisible = true, activeSort, activeSortDirection, metrics, ingestSubcategory, isSelectAllDisabled, onSortSelected, onSelectAllItems, selectionStore, hideSelectAllCheckbox, sortOptions, className, } = this.props;
        const rowCount = Math.ceil(elements.length / (columnCount || 1));
        // Unwrapping the observable here is required for the test
        // suite to properly pass.
        const hasElements = Boolean(elements && elements.length > 0);
        const isGridVisible = width > 0 && height > 0 && hasElements && columnCount > 0 && rowCount > 0;
        return (react_default.a.createElement("div", { className: classnames_default()('GridView', className !== null && className !== void 0 ? className : '') },
            isGridVisible && isHeaderVisible && (react_default.a.createElement(components_ViewHeader, { activeSort: activeSort, activeSortDirection: activeSortDirection, metrics: metrics, elements: elements, ingestSubcategory: ingestSubcategory, isSelectAllDisabled: isSelectAllDisabled, onSortSelected: onSortSelected, onSelectAllItems: onSelectAllItems, selectionStore: selectionStore, hideSelectAllCheckbox: hideSelectAllCheckbox, sortOptions: sortOptions })),
            this.renderGrid()));
    }
};
GridView_GridView.defaultProps = {
    additionalChangeProps: [],
    cardSize: CardSize.Large,
};
GridView_GridView = GridView_1 = GridView_decorate([
    index_module["e" /* observer */]
], GridView_GridView);
/* harmony default export */ var components_GridView = __webpack_exports__["b"] = (GridView_GridView);



/***/ }),

/***/ "q0hk":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return DocumentState; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return UXSortBy; });
/* unused harmony export UX_SORT_TO_INGEST */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return ProcessingState; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return UXSortDir; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "j", function() { return invertSort; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "i", function() { return UX_DATE_SORT_MENU_ITEMS; });
/* unused harmony export createComparator */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return RENDITION_SIZE; });
/* unused harmony export SHARE_STATUS_FROM_CLOUD_CONTENTS */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return SORTBY_TO_COL_ID; });
/*
 * In order to keep views agnostic of the data sources (e.g., Cloud Docs vs. Recents vs. Resources),
 * separate UX sorting enum from API sorting parameters. This is the *only* file that should reference
 * anything in the acp-fetch package.
 */
/**
 * Document State
 */
var DocumentState;
(function (DocumentState) {
    DocumentState["active"] = "active";
    DocumentState["archived"] = "archived";
    DocumentState["deleted"] = "deleted";
})(DocumentState || (DocumentState = {}));
var UXSortBy;
(function (UXSortBy) {
    UXSortBy["accessDate"] = "accessDate";
    UXSortBy["createDate"] = "createDate";
    UXSortBy["createdDate"] = "createdDate";
    UXSortBy["modifiedDate"] = "modifiedDate";
    UXSortBy["shareDate"] = "shareDate";
    UXSortBy["size"] = "size";
    UXSortBy["name"] = "name";
    UXSortBy["sharing"] = "sharing";
    UXSortBy["team"] = "team";
    UXSortBy["status"] = "status";
})(UXSortBy || (UXSortBy = {}));
/**
 * Map of UXSortBy to fields on Document
 */
const UX_SORT_TO_DOC_MODEL_FIELD = {
    [UXSortBy.accessDate]: 'accessDate',
    [UXSortBy.createDate]: 'createDate',
    [UXSortBy.createdDate]: 'createDate',
    [UXSortBy.modifiedDate]: 'modifiedDate',
    [UXSortBy.shareDate]: 'shareDate',
    [UXSortBy.size]: 'size',
    [UXSortBy.name]: 'name',
    [UXSortBy.status]: 'status',
};
/**
 * Map of UXSortBy keys to values used for ingest metrics
 */
const UX_SORT_TO_INGEST = {
    [UXSortBy.accessDate]: 'Date Opened',
    [UXSortBy.createDate]: 'Date Created',
    [UXSortBy.createdDate]: 'Date Created',
    [UXSortBy.modifiedDate]: 'Date Modified',
    [UXSortBy.shareDate]: 'Date Shared',
    [UXSortBy.size]: 'Size',
    [UXSortBy.name]: 'Name',
};
var ProcessingState;
(function (ProcessingState) {
    /** Pending: hasn't been fetched ever */
    ProcessingState["Pending"] = "pending";
    /** Fetching: fetching for the first time */
    ProcessingState["Fetching"] = "fetching";
    /** Refreshing: fetching again after we already fetched once */
    ProcessingState["Refreshing"] = "refreshing";
    /** Done: finished fetching */
    ProcessingState["Done"] = "done";
    /** Error: failed to fetch */
    ProcessingState["Error"] = "error";
})(ProcessingState || (ProcessingState = {}));
var UXSortDir;
(function (UXSortDir) {
    UXSortDir["asc"] = "asc";
    UXSortDir["desc"] = "desc";
})(UXSortDir || (UXSortDir = {}));
function invertSort(dir) {
    return dir === UXSortDir.asc ? UXSortDir.desc : UXSortDir.asc;
}
/**
 * Sort menu items for ListView dropdown select options
 */
const UX_DATE_SORT_MENU_ITEMS = [
    {
        id: 'SortByDropDown_DateModified',
        label: 'header.DateModified',
        value: UXSortBy.modifiedDate,
    },
    {
        id: 'SortByDropDown_DateCreated',
        label: 'header.DateCreated',
        value: UXSortBy.createDate,
    },
    {
        id: 'SortByDropDown_DateCreatedSpaces',
        label: 'header.DateCreated',
        value: UXSortBy.createdDate,
    },
];
/**
 * Static method to be used for creating a comparator for sorting Documents by a particular field
 * @param docA
 * @param docB
 * @constructor
 */
const createComparator = (uxSortBy, uxSortDir, locale) => {
    const sortField = UX_SORT_TO_DOC_MODEL_FIELD[uxSortBy];
    return (docA, docB) => {
        if (uxSortDir === UXSortDir.desc) {
            [docB, docA] = [docA, docB]; // eslint-disable-line no-param-reassign
        }
        let valueA = uxSortBy === UXSortBy.size ? +docA[sortField] : docA[sortField];
        let valueB = uxSortBy === UXSortBy.size ? +docB[sortField] : docB[sortField];
        if (uxSortBy === UXSortBy.name) {
            valueA = valueA.toLowerCase();
            valueB = valueB.toLowerCase();
            return Intl.Collator(locale).compare(valueA, valueB);
        }
        if (valueA < valueB) {
            return -1;
        }
        if (valueA > valueB) {
            return 1;
        }
        // A must be equal to B
        return 0;
    };
};
const RENDITION_SIZE = 512;
// When true, share status will come from Storage API, otherwise it comes from collaborators API
const SHARE_STATUS_FROM_CLOUD_CONTENTS = false;
/**
 * Map of UXSortBy to ID used for automation and string ids.
 */
const SORTBY_TO_COL_ID = {
    [UXSortBy.createDate]: 'DateCreated',
    [UXSortBy.createdDate]: 'DateCreated',
    [UXSortBy.modifiedDate]: 'DateModified',
    [UXSortBy.shareDate]: 'DateShared',
    [UXSortBy.size]: 'Size',
    [UXSortBy.name]: 'Name',
};


/***/ }),

/***/ "q1tI":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


if (true) {
  module.exports = __webpack_require__("viRO");
} else {}

/***/ }),

/***/ "q4jM":
/***/ (function(module) {

module.exports = JSON.parse("{\"steps\":\"{currentStep} / {totalSteps}\"}");

/***/ }),

/***/ "q6LJ":
/***/ (function(module, exports, __webpack_require__) {

var global = __webpack_require__("5T2Y");

var macrotask = __webpack_require__("QXhf").set;

var Observer = global.MutationObserver || global.WebKitMutationObserver;
var process = global.process;
var Promise = global.Promise;
var isNode = __webpack_require__("a0xu")(process) == 'process';

module.exports = function () {
  var head, last, notify;

  var flush = function () {
    var parent, fn;
    if (isNode && (parent = process.domain)) parent.exit();

    while (head) {
      fn = head.fn;
      head = head.next;

      try {
        fn();
      } catch (e) {
        if (head) notify();else last = undefined;
        throw e;
      }
    }

    last = undefined;
    if (parent) parent.enter();
  }; // Node.js


  if (isNode) {
    notify = function () {
      process.nextTick(flush);
    }; // browsers with MutationObserver, except iOS Safari - https://github.com/zloirock/core-js/issues/339

  } else if (Observer && !(global.navigator && global.navigator.standalone)) {
    var toggle = true;
    var node = document.createTextNode('');
    new Observer(flush).observe(node, {
      characterData: true
    }); // eslint-disable-line no-new

    notify = function () {
      node.data = toggle = !toggle;
    }; // environments with maybe non-completely correct, but existent Promise

  } else if (Promise && Promise.resolve) {
    // Promise.resolve without an argument throws an error in LG WebOS 2
    var promise = Promise.resolve(undefined);

    notify = function () {
      promise.then(flush);
    }; // for other environments - macrotask based on:
    // - setImmediate
    // - MessageChannel
    // - window.postMessag
    // - onreadystatechange
    // - setTimeout

  } else {
    notify = function () {
      // strange IE + webpack dev server bug - use .call(global)
      macrotask.call(global, flush);
    };
  }

  return function (fn) {
    var task = {
      fn: fn,
      next: undefined
    };
    if (last) last.next = task;

    if (!head) {
      head = task;
      notify();
    }

    last = task;
  };
};

/***/ }),

/***/ "qPad":
/***/ (function(module, exports, __webpack_require__) {

var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) {
  if (true) {
    !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
				__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
				(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
				__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
  } else {}
})(this, function () {
  var uriTemplateGlobalModifiers = {
    "+": true,
    "#": true,
    ".": true,
    "/": true,
    ";": true,
    "?": true,
    "&": true
  };
  var uriTemplateSuffices = {
    "*": true
  };
  var urlEscapedChars = /[:/&?#]/;

  function notReallyPercentEncode(string) {
    return encodeURI(string).replace(/%25[0-9][0-9]/g, function (doubleEncoded) {
      return "%" + doubleEncoded.substring(3);
    });
  }

  function isPercentEncoded(string) {
    string = string.replace(/%../g, '');
    return encodeURIComponent(string) === string;
  }

  function uriTemplateSubstitution(spec) {
    var modifier = "";

    if (uriTemplateGlobalModifiers[spec.charAt(0)]) {
      modifier = spec.charAt(0);
      spec = spec.substring(1);
    }

    var separator = "";
    var prefix = "";
    var shouldEscape = true;
    var showVariables = false;
    var trimEmptyString = false;

    if (modifier == '+') {
      shouldEscape = false;
    } else if (modifier == ".") {
      prefix = ".";
      separator = ".";
    } else if (modifier == "/") {
      prefix = "/";
      separator = "/";
    } else if (modifier == '#') {
      prefix = "#";
      shouldEscape = false;
    } else if (modifier == ';') {
      prefix = ";";
      separator = ";", showVariables = true;
      trimEmptyString = true;
    } else if (modifier == '?') {
      prefix = "?";
      separator = "&", showVariables = true;
    } else if (modifier == '&') {
      prefix = "&";
      separator = "&", showVariables = true;
    }

    var varNames = [];
    var varList = spec.split(",");
    var varSpecs = [];
    var varSpecMap = {};

    for (var i = 0; i < varList.length; i++) {
      var varName = varList[i];
      var truncate = null;

      if (varName.indexOf(":") != -1) {
        var parts = varName.split(":");
        varName = parts[0];
        truncate = parseInt(parts[1]);
      }

      var suffices = {};

      while (uriTemplateSuffices[varName.charAt(varName.length - 1)]) {
        suffices[varName.charAt(varName.length - 1)] = true;
        varName = varName.substring(0, varName.length - 1);
      }

      var varSpec = {
        truncate: truncate,
        name: varName,
        suffices: suffices
      };
      varSpecs.push(varSpec);
      varSpecMap[varName] = varSpec;
      varNames.push(varName);
    }

    var subFunction = function (valueFunction) {
      var result = "";
      var startIndex = 0;

      for (var i = 0; i < varSpecs.length; i++) {
        var varSpec = varSpecs[i];
        var value = valueFunction(varSpec.name);

        if (value == null || Array.isArray(value) && value.length == 0 || typeof value == 'object' && Object.keys(value).length == 0) {
          startIndex++;
          continue;
        }

        if (i == startIndex) {
          result += prefix;
        } else {
          result += separator || ",";
        }

        if (Array.isArray(value)) {
          if (showVariables) {
            result += varSpec.name + "=";
          }

          for (var j = 0; j < value.length; j++) {
            if (j > 0) {
              result += varSpec.suffices['*'] ? separator || "," : ",";

              if (varSpec.suffices['*'] && showVariables) {
                result += varSpec.name + "=";
              }
            }

            result += shouldEscape ? encodeURIComponent(value[j]).replace(/!/g, "%21") : notReallyPercentEncode(value[j]);
          }
        } else if (typeof value == "object") {
          if (showVariables && !varSpec.suffices['*']) {
            result += varSpec.name + "=";
          }

          var first = true;

          for (var key in value) {
            if (!first) {
              result += varSpec.suffices['*'] ? separator || "," : ",";
            }

            first = false;
            result += shouldEscape ? encodeURIComponent(key).replace(/!/g, "%21") : notReallyPercentEncode(key);
            result += varSpec.suffices['*'] ? '=' : ",";
            result += shouldEscape ? encodeURIComponent(value[key]).replace(/!/g, "%21") : notReallyPercentEncode(value[key]);
          }
        } else {
          if (showVariables) {
            result += varSpec.name;

            if (!trimEmptyString || value != "") {
              result += "=";
            }
          }

          if (varSpec.truncate != null) {
            value = value.substring(0, varSpec.truncate);
          }

          result += shouldEscape ? encodeURIComponent(value).replace(/!/g, "%21") : notReallyPercentEncode(value);
        }
      }

      return result;
    };

    var guessFunction = function (stringValue, resultObj, strict) {
      if (prefix) {
        stringValue = stringValue.substring(prefix.length);
      }

      if (varSpecs.length == 1 && varSpecs[0].suffices['*']) {
        var varSpec = varSpecs[0];
        var varName = varSpec.name;
        var arrayValue = varSpec.suffices['*'] ? stringValue.split(separator || ",") : [stringValue];
        var hasEquals = shouldEscape && stringValue.indexOf('=') != -1; // There's otherwise no way to distinguish between "{value*}" for arrays and objects

        for (var i = 1; i < arrayValue.length; i++) {
          var stringValue = arrayValue[i];

          if (hasEquals && stringValue.indexOf('=') == -1) {
            // Bit of a hack - if we're expecting "=" for key/value pairs, and values can't contain "=", then assume a value has been accidentally split
            arrayValue[i - 1] += (separator || ",") + stringValue;
            arrayValue.splice(i, 1);
            i--;
          }
        }

        for (var i = 0; i < arrayValue.length; i++) {
          var stringValue = arrayValue[i];

          if (shouldEscape && stringValue.indexOf('=') != -1) {
            hasEquals = true;
          }

          var innerArrayValue = stringValue.split(",");

          if (innerArrayValue.length == 1) {
            arrayValue[i] = innerArrayValue[0];
          } else {
            arrayValue[i] = innerArrayValue;
          }
        }

        if (showVariables || hasEquals) {
          var objectValue = resultObj[varName] || {};

          for (var j = 0; j < arrayValue.length; j++) {
            var innerValue = stringValue;

            if (showVariables && !innerValue) {
              // The empty string isn't a valid variable, so if our value is zero-length we have nothing
              continue;
            }

            if (typeof arrayValue[j] == "string") {
              var stringValue = arrayValue[j];
              var innerVarName = stringValue.split("=", 1)[0];
              var stringValue = stringValue.substring(innerVarName.length + 1);

              if (shouldEscape) {
                if (strict && !isPercentEncoded(stringValue)) {
                  return;
                }

                stringValue = decodeURIComponent(stringValue);
              }

              innerValue = stringValue;
            } else {
              var stringValue = arrayValue[j][0];
              var innerVarName = stringValue.split("=", 1)[0];
              var stringValue = stringValue.substring(innerVarName.length + 1);

              if (shouldEscape) {
                if (strict && !isPercentEncoded(stringValue)) {
                  return;
                }

                stringValue = decodeURIComponent(stringValue);
              }

              arrayValue[j][0] = stringValue;
              innerValue = arrayValue[j];
            }

            if (shouldEscape) {
              if (strict && !isPercentEncoded(innerVarName)) {
                return;
              }

              innerVarName = decodeURIComponent(innerVarName);
            }

            if (objectValue[innerVarName] !== undefined) {
              if (Array.isArray(objectValue[innerVarName])) {
                objectValue[innerVarName].push(innerValue);
              } else {
                objectValue[innerVarName] = [objectValue[innerVarName], innerValue];
              }
            } else {
              objectValue[innerVarName] = innerValue;
            }
          }

          if (Object.keys(objectValue).length == 1 && objectValue[varName] !== undefined) {
            resultObj[varName] = objectValue[varName];
          } else {
            resultObj[varName] = objectValue;
          }
        } else {
          if (shouldEscape) {
            for (var j = 0; j < arrayValue.length; j++) {
              var innerArrayValue = arrayValue[j];

              if (Array.isArray(innerArrayValue)) {
                for (var k = 0; k < innerArrayValue.length; k++) {
                  if (strict && !isPercentEncoded(innerArrayValue[k])) {
                    return;
                  }

                  innerArrayValue[k] = decodeURIComponent(innerArrayValue[k]);
                }
              } else {
                if (strict && !isPercentEncoded(innerArrayValue)) {
                  return;
                }

                arrayValue[j] = decodeURIComponent(innerArrayValue);
              }
            }
          }

          if (resultObj[varName] !== undefined) {
            if (Array.isArray(resultObj[varName])) {
              resultObj[varName] = resultObj[varName].concat(arrayValue);
            } else {
              resultObj[varName] = [resultObj[varName]].concat(arrayValue);
            }
          } else {
            if (arrayValue.length == 1 && !varSpec.suffices['*']) {
              resultObj[varName] = arrayValue[0];
            } else {
              resultObj[varName] = arrayValue;
            }
          }
        }
      } else {
        var arrayValue = varSpecs.length == 1 ? [stringValue] : stringValue.split(separator || ",");
        var specIndexMap = {};

        for (var i = 0; i < arrayValue.length; i++) {
          // Try from beginning
          var firstStarred = 0;

          for (; firstStarred < varSpecs.length - 1 && firstStarred < i; firstStarred++) {
            if (varSpecs[firstStarred].suffices['*']) {
              break;
            }
          }

          if (firstStarred == i) {
            // The first [i] of them have no "*" suffix
            specIndexMap[i] = i;
            continue;
          } else {
            // Try from the end
            for (var lastStarred = varSpecs.length - 1; lastStarred > 0 && varSpecs.length - lastStarred < arrayValue.length - i; lastStarred--) {
              if (varSpecs[lastStarred].suffices['*']) {
                break;
              }
            }

            if (varSpecs.length - lastStarred == arrayValue.length - i) {
              // The last [length - i] of them have no "*" suffix
              specIndexMap[i] = lastStarred;
              continue;
            }
          } // Just give up and use the first one


          specIndexMap[i] = firstStarred;
        }

        for (var i = 0; i < arrayValue.length; i++) {
          var stringValue = arrayValue[i];

          if (!stringValue && showVariables) {
            // The empty string isn't a valid variable, so if our value is zero-length we have nothing
            continue;
          }

          var innerArrayValue = stringValue.split(",");
          var hasEquals = false;

          if (showVariables) {
            var stringValue = innerArrayValue[0]; // using innerArrayValue

            var varName = stringValue.split("=", 1)[0];
            var stringValue = stringValue.substring(varName.length + 1);
            innerArrayValue[0] = stringValue;
            var varSpec = varSpecMap[varName] || varSpecs[0];
          } else {
            var varSpec = varSpecs[specIndexMap[i]];
            var varName = varSpec.name;
          }

          for (var j = 0; j < innerArrayValue.length; j++) {
            if (shouldEscape) {
              if (strict && !isPercentEncoded(innerArrayValue[j])) {
                return;
              }

              innerArrayValue[j] = decodeURIComponent(innerArrayValue[j]);
            }
          }

          if ((showVariables || varSpec.suffices['*']) && resultObj[varName] !== undefined) {
            if (Array.isArray(resultObj[varName])) {
              resultObj[varName] = resultObj[varName].concat(innerArrayValue);
            } else {
              resultObj[varName] = [resultObj[varName]].concat(innerArrayValue);
            }
          } else {
            if (innerArrayValue.length == 1 && !varSpec.suffices['*']) {
              resultObj[varName] = innerArrayValue[0];
            } else {
              resultObj[varName] = innerArrayValue;
            }
          }
        }
      }

      return 1;
    };

    return {
      varNames: varNames,
      prefix: prefix,
      substitution: subFunction,
      unSubstitution: guessFunction
    };
  }

  function UriTemplate(template) {
    if (!(this instanceof UriTemplate)) {
      return new UriTemplate(template);
    }

    var parts = template.split("{");
    var textParts = [parts.shift()];
    var prefixes = [];
    var substitutions = [];
    var unSubstitutions = [];
    var varNames = [];

    while (parts.length > 0) {
      var part = parts.shift();
      var spec = part.split("}")[0];
      var remainder = part.substring(spec.length + 1);
      var funcs = uriTemplateSubstitution(spec);
      substitutions.push(funcs.substitution);
      unSubstitutions.push(funcs.unSubstitution);
      prefixes.push(funcs.prefix);
      textParts.push(remainder);
      varNames = varNames.concat(funcs.varNames);
    }

    this.fill = function (valueFunction) {
      if (valueFunction && typeof valueFunction !== 'function') {
        var value = valueFunction;

        valueFunction = function (varName) {
          return value[varName];
        };
      }

      var result = textParts[0];

      for (var i = 0; i < substitutions.length; i++) {
        var substitution = substitutions[i];
        result += substitution(valueFunction);
        result += textParts[i + 1];
      }

      return result;
    };

    this.fromUri = function (substituted, options) {
      options = options || {};
      var result = {};

      for (var i = 0; i < textParts.length; i++) {
        var part = textParts[i];

        if (substituted.substring(0, part.length) !== part) {
          return;
        }

        substituted = substituted.substring(part.length);

        if (i >= textParts.length - 1) {
          // We've run out of input - is there any template left?
          if (substituted == "") {
            break;
          } else {
            return;
          }
        }

        var prefix = prefixes[i];

        if (prefix && substituted.substring(0, prefix.length) !== prefix) {
          // All values are optional - if we have a prefix and it doesn't match, move along
          continue;
        } // Find the next part to un-substitute


        var nextPart = textParts[i + 1];
        var offset = i;

        while (true) {
          if (offset == textParts.length - 2) {
            var endPart = substituted.substring(substituted.length - nextPart.length);

            if (endPart !== nextPart) {
              return;
            }

            var stringValue = substituted.substring(0, substituted.length - nextPart.length);
            substituted = endPart;
          } else if (nextPart) {
            var nextPartPos = substituted.indexOf(nextPart);
            var stringValue = substituted.substring(0, nextPartPos);
            substituted = substituted.substring(nextPartPos);
          } else if (prefixes[offset + 1]) {
            var nextPartPos = substituted.indexOf(prefixes[offset + 1]);
            if (nextPartPos === -1) nextPartPos = substituted.length;
            var stringValue = substituted.substring(0, nextPartPos);
            substituted = substituted.substring(nextPartPos);
          } else if (textParts.length > offset + 2) {
            // If the separator between this variable and the next is blank (with no prefix), continue onwards
            offset++;
            nextPart = textParts[offset + 1];
            continue;
          } else {
            var stringValue = substituted;
            substituted = "";
          }

          break;
        }

        if (!unSubstitutions[i](stringValue, result, options.strict)) {
          return;
        }
      }

      return result;
    };

    this.varNames = varNames;
    this.template = template;
  }

  UriTemplate.prototype = {
    toString: function () {
      return this.template;
    },
    fillFromObject: function (obj) {
      return this.fill(obj);
    },
    test: function (uri, options) {
      return !!this.fromUri(uri, options);
    }
  };
  return UriTemplate;
});

/***/ }),

/***/ "qQTj":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.UxpSelectMenu = UxpSelectMenu;
exports.default = void 0;

var _SpEventUtils = __webpack_require__("XU6Z");

var _autobindDecorator = _interopRequireDefault(__webpack_require__("gKdT"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

var _Select = _interopRequireDefault(__webpack_require__("/Iqz"));

var _SpUxpSelectList = _interopRequireDefault(__webpack_require__("P6Fe"));

var _UxpSelect = _interopRequireDefault(__webpack_require__("lnCV"));

const _excluded = ["options", "quiet", "closeOnSelect", "menuClassName", "disabled", "invalid", "multiple", "flexible", "placeholder", "className", "renderItem", "alignRight", "open"];

var _class;

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

let SpUxpSelect = (0, _autobindDecorator.default)(_class = class SpUxpSelect extends _Select.default {
  constructor(props) {
    super(props);
    this.spSelectRef = /*#__PURE__*/_react.default.createRef();
  }

  handleEvent(event) {
    if (event.type === 'change') {
      this.onSelect(this.spSelectRef.current.value);
    } else if (event.type === 'load') {
      this.onOpen(event);
    }

    const eventName = Object.keys(this.props).filter(propName => propName.substr(2).toLowerCase() === event.type);

    if (this.props[eventName]) {
      this.props[eventName].call(event.target, event);
    }
  }

  componentDidMount() {
    (0, _SpEventUtils.attachEventListeners)(this.spSelectRef.current, this.props, this.handleEvent);
  }

  componentWillUnmount() {
    (0, _SpEventUtils.removeEventListeners)(this.spSelectRef.current, this.props, this.handleEvent);
  }

  componentDidUpdate(prevProps) {
    this.updateAllEventListeners = !(0, _SpEventUtils.updateEventListeners)(this.spSelectRef.current, prevProps, this.props, this.handleEvent, this.updateAllEventListeners);
  }

  render() {
    let _this$props = this.props,
        {
      options = [],
      quiet,
      closeOnSelect,
      menuClassName,
      disabled = false,
      invalid = false,
      multiple = false,
      flexible = false,
      placeholder = 'Select an option',
      className,
      renderItem,
      alignRight,
      open
    } = _this$props,
        otherProps = _objectWithoutProperties(_this$props, _excluded);

    let {
      value
    } = this.state;
    closeOnSelect = typeof closeOnSelect === 'boolean' ? closeOnSelect : !multiple;
    let renderUxpSelect = multiple || !closeOnSelect || flexible || alignRight;

    if (renderUxpSelect) {
      return /*#__PURE__*/_react.default.createElement(_UxpSelect.default, this.props);
    }

    return /*#__PURE__*/_react.default.createElement("sp-dropdown", _extends({
      ref: this.spSelectRef,
      class: className,
      open: open ? true : null,
      placeholder: placeholder,
      disabled: disabled ? true : null,
      quiet: quiet ? true : null,
      invalid: invalid ? true : null
    }, (0, _SpEventUtils.removeEventProps)(otherProps)), /*#__PURE__*/_react.default.createElement(UxpSelectMenu, {
      className: menuClassName,
      options: options,
      value: value,
      renderItem: renderItem
    }));
  }

}) || _class;

exports.default = SpUxpSelect;

function UxpSelectMenu(props) {
  return /*#__PURE__*/_react.default.createElement(_SpUxpSelectList.default, props);
}

/***/ }),

/***/ "qT12":
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/** @license React v16.13.1
 * react-is.production.min.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.
 */


var b = "function" === typeof Symbol && Symbol.for,
    c = b ? Symbol.for("react.element") : 60103,
    d = b ? Symbol.for("react.portal") : 60106,
    e = b ? Symbol.for("react.fragment") : 60107,
    f = b ? Symbol.for("react.strict_mode") : 60108,
    g = b ? Symbol.for("react.profiler") : 60114,
    h = b ? Symbol.for("react.provider") : 60109,
    k = b ? Symbol.for("react.context") : 60110,
    l = b ? Symbol.for("react.async_mode") : 60111,
    m = b ? Symbol.for("react.concurrent_mode") : 60111,
    n = b ? Symbol.for("react.forward_ref") : 60112,
    p = b ? Symbol.for("react.suspense") : 60113,
    q = b ? Symbol.for("react.suspense_list") : 60120,
    r = b ? Symbol.for("react.memo") : 60115,
    t = b ? Symbol.for("react.lazy") : 60116,
    v = b ? Symbol.for("react.block") : 60121,
    w = b ? Symbol.for("react.fundamental") : 60117,
    x = b ? Symbol.for("react.responder") : 60118,
    y = b ? Symbol.for("react.scope") : 60119;

function z(a) {
  if ("object" === typeof a && null !== a) {
    var u = a.$$typeof;

    switch (u) {
      case c:
        switch (a = a.type, a) {
          case l:
          case m:
          case e:
          case g:
          case f:
          case p:
            return a;

          default:
            switch (a = a && a.$$typeof, a) {
              case k:
              case n:
              case t:
              case r:
              case h:
                return a;

              default:
                return u;
            }

        }

      case d:
        return u;
    }
  }
}

function A(a) {
  return z(a) === m;
}

exports.AsyncMode = l;
exports.ConcurrentMode = m;
exports.ContextConsumer = k;
exports.ContextProvider = h;
exports.Element = c;
exports.ForwardRef = n;
exports.Fragment = e;
exports.Lazy = t;
exports.Memo = r;
exports.Portal = d;
exports.Profiler = g;
exports.StrictMode = f;
exports.Suspense = p;

exports.isAsyncMode = function (a) {
  return A(a) || z(a) === l;
};

exports.isConcurrentMode = A;

exports.isContextConsumer = function (a) {
  return z(a) === k;
};

exports.isContextProvider = function (a) {
  return z(a) === h;
};

exports.isElement = function (a) {
  return "object" === typeof a && null !== a && a.$$typeof === c;
};

exports.isForwardRef = function (a) {
  return z(a) === n;
};

exports.isFragment = function (a) {
  return z(a) === e;
};

exports.isLazy = function (a) {
  return z(a) === t;
};

exports.isMemo = function (a) {
  return z(a) === r;
};

exports.isPortal = function (a) {
  return z(a) === d;
};

exports.isProfiler = function (a) {
  return z(a) === g;
};

exports.isStrictMode = function (a) {
  return z(a) === f;
};

exports.isSuspense = function (a) {
  return z(a) === p;
};

exports.isValidElementType = function (a) {
  return "string" === typeof a || "function" === typeof a || a === e || a === m || a === g || a === f || a === p || a === q || "object" === typeof a && null !== a && (a.$$typeof === t || a.$$typeof === r || a.$$typeof === h || a.$$typeof === k || a.$$typeof === n || a.$$typeof === w || a.$$typeof === x || a.$$typeof === y || a.$$typeof === v);
};

exports.typeOf = z;

/***/ }),

/***/ "qVij":
/***/ (function(module, exports, __webpack_require__) {

/* WEBPACK VAR INJECTION */(function(Buffer) {var BN = __webpack_require__("OZ/i");

var randomBytes = __webpack_require__("Edxu");

function blind(priv) {
  var r = getr(priv);
  var blinder = r.toRed(BN.mont(priv.modulus)).redPow(new BN(priv.publicExponent)).fromRed();
  return {
    blinder: blinder,
    unblinder: r.invm(priv.modulus)
  };
}

function getr(priv) {
  var len = priv.modulus.byteLength();
  var r;

  do {
    r = new BN(randomBytes(len));
  } while (r.cmp(priv.modulus) >= 0 || !r.umod(priv.prime1) || !r.umod(priv.prime2));

  return r;
}

function crt(msg, priv) {
  var blinds = blind(priv);
  var len = priv.modulus.byteLength();
  var blinded = new BN(msg).mul(blinds.blinder).umod(priv.modulus);
  var c1 = blinded.toRed(BN.mont(priv.prime1));
  var c2 = blinded.toRed(BN.mont(priv.prime2));
  var qinv = priv.coefficient;
  var p = priv.prime1;
  var q = priv.prime2;
  var m1 = c1.redPow(priv.exponent1).fromRed();
  var m2 = c2.redPow(priv.exponent2).fromRed();
  var h = m1.isub(m2).imul(qinv).umod(p).imul(q);
  return m2.iadd(h).imul(blinds.unblinder).umod(priv.modulus).toArrayLike(Buffer, 'be', len);
}

crt.getr = getr;
module.exports = crt;
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("HDXh").Buffer))

/***/ }),

/***/ "qcat":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("path", {
  d: "M9.46 4H7a1 1 0 0 0-1 1v26a1 1 0 0 0 1 1h2.46a2 2 0 0 0 1.007-.272l22.064-12.866a1 1 0 0 0 0-1.725L10.467 4.272A2 2 0 0 0 9.46 4z"
}));

/***/ }),

/***/ "qcrX":
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/**
 * @author Toru Nagashima <https://github.com/mysticatea>
 * @copyright 2015 Toru Nagashima. All rights reserved.
 * See LICENSE file in root directory for full license.
 */


Object.defineProperty(exports, '__esModule', {
  value: true
});
/**
 * @typedef {object} PrivateData
 * @property {EventTarget} eventTarget The event target.
 * @property {{type:string}} event The original event object.
 * @property {number} eventPhase The current event phase.
 * @property {EventTarget|null} currentTarget The current event target.
 * @property {boolean} canceled The flag to prevent default.
 * @property {boolean} stopped The flag to stop propagation.
 * @property {boolean} immediateStopped The flag to stop propagation immediately.
 * @property {Function|null} passiveListener The listener if the current listener is passive. Otherwise this is null.
 * @property {number} timeStamp The unix time.
 * @private
 */

/**
 * Private data for event wrappers.
 * @type {WeakMap<Event, PrivateData>}
 * @private
 */

const privateData = new WeakMap();
/**
 * Cache for wrapper classes.
 * @type {WeakMap<Object, Function>}
 * @private
 */

const wrappers = new WeakMap();
/**
 * Get private data.
 * @param {Event} event The event object to get private data.
 * @returns {PrivateData} The private data of the event.
 * @private
 */

function pd(event) {
  const retv = privateData.get(event);
  console.assert(retv != null, "'this' is expected an Event object, but got", event);
  return retv;
}
/**
 * https://dom.spec.whatwg.org/#set-the-canceled-flag
 * @param data {PrivateData} private data.
 */


function setCancelFlag(data) {
  if (data.passiveListener != null) {
    if (typeof console !== "undefined" && typeof console.error === "function") {
      console.error("Unable to preventDefault inside passive event listener invocation.", data.passiveListener);
    }

    return;
  }

  if (!data.event.cancelable) {
    return;
  }

  data.canceled = true;

  if (typeof data.event.preventDefault === "function") {
    data.event.preventDefault();
  }
}
/**
 * @see https://dom.spec.whatwg.org/#interface-event
 * @private
 */

/**
 * The event wrapper.
 * @constructor
 * @param {EventTarget} eventTarget The event target of this dispatching.
 * @param {Event|{type:string}} event The original event to wrap.
 */


function Event(eventTarget, event) {
  privateData.set(this, {
    eventTarget,
    event,
    eventPhase: 2,
    currentTarget: eventTarget,
    canceled: false,
    stopped: false,
    immediateStopped: false,
    passiveListener: null,
    timeStamp: event.timeStamp || Date.now()
  }); // https://heycam.github.io/webidl/#Unforgeable

  Object.defineProperty(this, "isTrusted", {
    value: false,
    enumerable: true
  }); // Define accessors

  const keys = Object.keys(event);

  for (let i = 0; i < keys.length; ++i) {
    const key = keys[i];

    if (!(key in this)) {
      Object.defineProperty(this, key, defineRedirectDescriptor(key));
    }
  }
} // Should be enumerable, but class methods are not enumerable.


Event.prototype = {
  /**
   * The type of this event.
   * @type {string}
   */
  get type() {
    return pd(this).event.type;
  },

  /**
   * The target of this event.
   * @type {EventTarget}
   */
  get target() {
    return pd(this).eventTarget;
  },

  /**
   * The target of this event.
   * @type {EventTarget}
   */
  get currentTarget() {
    return pd(this).currentTarget;
  },

  /**
   * @returns {EventTarget[]} The composed path of this event.
   */
  composedPath() {
    const currentTarget = pd(this).currentTarget;

    if (currentTarget == null) {
      return [];
    }

    return [currentTarget];
  },

  /**
   * Constant of NONE.
   * @type {number}
   */
  get NONE() {
    return 0;
  },

  /**
   * Constant of CAPTURING_PHASE.
   * @type {number}
   */
  get CAPTURING_PHASE() {
    return 1;
  },

  /**
   * Constant of AT_TARGET.
   * @type {number}
   */
  get AT_TARGET() {
    return 2;
  },

  /**
   * Constant of BUBBLING_PHASE.
   * @type {number}
   */
  get BUBBLING_PHASE() {
    return 3;
  },

  /**
   * The target of this event.
   * @type {number}
   */
  get eventPhase() {
    return pd(this).eventPhase;
  },

  /**
   * Stop event bubbling.
   * @returns {void}
   */
  stopPropagation() {
    const data = pd(this);
    data.stopped = true;

    if (typeof data.event.stopPropagation === "function") {
      data.event.stopPropagation();
    }
  },

  /**
   * Stop event bubbling.
   * @returns {void}
   */
  stopImmediatePropagation() {
    const data = pd(this);
    data.stopped = true;
    data.immediateStopped = true;

    if (typeof data.event.stopImmediatePropagation === "function") {
      data.event.stopImmediatePropagation();
    }
  },

  /**
   * The flag to be bubbling.
   * @type {boolean}
   */
  get bubbles() {
    return Boolean(pd(this).event.bubbles);
  },

  /**
   * The flag to be cancelable.
   * @type {boolean}
   */
  get cancelable() {
    return Boolean(pd(this).event.cancelable);
  },

  /**
   * Cancel this event.
   * @returns {void}
   */
  preventDefault() {
    setCancelFlag(pd(this));
  },

  /**
   * The flag to indicate cancellation state.
   * @type {boolean}
   */
  get defaultPrevented() {
    return pd(this).canceled;
  },

  /**
   * The flag to be composed.
   * @type {boolean}
   */
  get composed() {
    return Boolean(pd(this).event.composed);
  },

  /**
   * The unix time of this event.
   * @type {number}
   */
  get timeStamp() {
    return pd(this).timeStamp;
  },

  /**
   * The target of this event.
   * @type {EventTarget}
   * @deprecated
   */
  get srcElement() {
    return pd(this).eventTarget;
  },

  /**
   * The flag to stop event bubbling.
   * @type {boolean}
   * @deprecated
   */
  get cancelBubble() {
    return pd(this).stopped;
  },

  set cancelBubble(value) {
    if (!value) {
      return;
    }

    const data = pd(this);
    data.stopped = true;

    if (typeof data.event.cancelBubble === "boolean") {
      data.event.cancelBubble = true;
    }
  },

  /**
   * The flag to indicate cancellation state.
   * @type {boolean}
   * @deprecated
   */
  get returnValue() {
    return !pd(this).canceled;
  },

  set returnValue(value) {
    if (!value) {
      setCancelFlag(pd(this));
    }
  },

  /**
   * Initialize this event object. But do nothing under event dispatching.
   * @param {string} type The event type.
   * @param {boolean} [bubbles=false] The flag to be possible to bubble up.
   * @param {boolean} [cancelable=false] The flag to be possible to cancel.
   * @deprecated
   */
  initEvent() {// Do nothing.
  }

}; // `constructor` is not enumerable.

Object.defineProperty(Event.prototype, "constructor", {
  value: Event,
  configurable: true,
  writable: true
}); // Ensure `event instanceof window.Event` is `true`.

if (typeof window !== "undefined" && typeof window.Event !== "undefined") {
  Object.setPrototypeOf(Event.prototype, window.Event.prototype); // Make association for wrappers.

  wrappers.set(window.Event.prototype, Event);
}
/**
 * Get the property descriptor to redirect a given property.
 * @param {string} key Property name to define property descriptor.
 * @returns {PropertyDescriptor} The property descriptor to redirect the property.
 * @private
 */


function defineRedirectDescriptor(key) {
  return {
    get() {
      return pd(this).event[key];
    },

    set(value) {
      pd(this).event[key] = value;
    },

    configurable: true,
    enumerable: true
  };
}
/**
 * Get the property descriptor to call a given method property.
 * @param {string} key Property name to define property descriptor.
 * @returns {PropertyDescriptor} The property descriptor to call the method property.
 * @private
 */


function defineCallDescriptor(key) {
  return {
    value() {
      const event = pd(this).event;
      return event[key].apply(event, arguments);
    },

    configurable: true,
    enumerable: true
  };
}
/**
 * Define new wrapper class.
 * @param {Function} BaseEvent The base wrapper class.
 * @param {Object} proto The prototype of the original event.
 * @returns {Function} The defined wrapper class.
 * @private
 */


function defineWrapper(BaseEvent, proto) {
  const keys = Object.keys(proto);

  if (keys.length === 0) {
    return BaseEvent;
  }
  /** CustomEvent */


  function CustomEvent(eventTarget, event) {
    BaseEvent.call(this, eventTarget, event);
  }

  CustomEvent.prototype = Object.create(BaseEvent.prototype, {
    constructor: {
      value: CustomEvent,
      configurable: true,
      writable: true
    }
  }); // Define accessors.

  for (let i = 0; i < keys.length; ++i) {
    const key = keys[i];

    if (!(key in BaseEvent.prototype)) {
      const descriptor = Object.getOwnPropertyDescriptor(proto, key);
      const isFunc = typeof descriptor.value === "function";
      Object.defineProperty(CustomEvent.prototype, key, isFunc ? defineCallDescriptor(key) : defineRedirectDescriptor(key));
    }
  }

  return CustomEvent;
}
/**
 * Get the wrapper class of a given prototype.
 * @param {Object} proto The prototype of the original event to get its wrapper.
 * @returns {Function} The wrapper class.
 * @private
 */


function getWrapper(proto) {
  if (proto == null || proto === Object.prototype) {
    return Event;
  }

  let wrapper = wrappers.get(proto);

  if (wrapper == null) {
    wrapper = defineWrapper(getWrapper(Object.getPrototypeOf(proto)), proto);
    wrappers.set(proto, wrapper);
  }

  return wrapper;
}
/**
 * Wrap a given event to management a dispatching.
 * @param {EventTarget} eventTarget The event target of this dispatching.
 * @param {Object} event The event to wrap.
 * @returns {Event} The wrapper instance.
 * @private
 */


function wrapEvent(eventTarget, event) {
  const Wrapper = getWrapper(Object.getPrototypeOf(event));
  return new Wrapper(eventTarget, event);
}
/**
 * Get the immediateStopped flag of a given event.
 * @param {Event} event The event to get.
 * @returns {boolean} The flag to stop propagation immediately.
 * @private
 */


function isStopped(event) {
  return pd(event).immediateStopped;
}
/**
 * Set the current event phase of a given event.
 * @param {Event} event The event to set current target.
 * @param {number} eventPhase New event phase.
 * @returns {void}
 * @private
 */


function setEventPhase(event, eventPhase) {
  pd(event).eventPhase = eventPhase;
}
/**
 * Set the current target of a given event.
 * @param {Event} event The event to set current target.
 * @param {EventTarget|null} currentTarget New current target.
 * @returns {void}
 * @private
 */


function setCurrentTarget(event, currentTarget) {
  pd(event).currentTarget = currentTarget;
}
/**
 * Set a passive listener of a given event.
 * @param {Event} event The event to set current target.
 * @param {Function|null} passiveListener New passive listener.
 * @returns {void}
 * @private
 */


function setPassiveListener(event, passiveListener) {
  pd(event).passiveListener = passiveListener;
}
/**
 * @typedef {object} ListenerNode
 * @property {Function} listener
 * @property {1|2|3} listenerType
 * @property {boolean} passive
 * @property {boolean} once
 * @property {ListenerNode|null} next
 * @private
 */

/**
 * @type {WeakMap<object, Map<string, ListenerNode>>}
 * @private
 */


const listenersMap = new WeakMap(); // Listener types

const CAPTURE = 1;
const BUBBLE = 2;
const ATTRIBUTE = 3;
/**
 * Check whether a given value is an object or not.
 * @param {any} x The value to check.
 * @returns {boolean} `true` if the value is an object.
 */

function isObject(x) {
  return x !== null && typeof x === "object"; //eslint-disable-line no-restricted-syntax
}
/**
 * Get listeners.
 * @param {EventTarget} eventTarget The event target to get.
 * @returns {Map<string, ListenerNode>} The listeners.
 * @private
 */


function getListeners(eventTarget) {
  const listeners = listenersMap.get(eventTarget);

  if (listeners == null) {
    throw new TypeError("'this' is expected an EventTarget object, but got another value.");
  }

  return listeners;
}
/**
 * Get the property descriptor for the event attribute of a given event.
 * @param {string} eventName The event name to get property descriptor.
 * @returns {PropertyDescriptor} The property descriptor.
 * @private
 */


function defineEventAttributeDescriptor(eventName) {
  return {
    get() {
      const listeners = getListeners(this);
      let node = listeners.get(eventName);

      while (node != null) {
        if (node.listenerType === ATTRIBUTE) {
          return node.listener;
        }

        node = node.next;
      }

      return null;
    },

    set(listener) {
      if (typeof listener !== "function" && !isObject(listener)) {
        listener = null; // eslint-disable-line no-param-reassign
      }

      const listeners = getListeners(this); // Traverse to the tail while removing old value.

      let prev = null;
      let node = listeners.get(eventName);

      while (node != null) {
        if (node.listenerType === ATTRIBUTE) {
          // Remove old value.
          if (prev !== null) {
            prev.next = node.next;
          } else if (node.next !== null) {
            listeners.set(eventName, node.next);
          } else {
            listeners.delete(eventName);
          }
        } else {
          prev = node;
        }

        node = node.next;
      } // Add new value.


      if (listener !== null) {
        const newNode = {
          listener,
          listenerType: ATTRIBUTE,
          passive: false,
          once: false,
          next: null
        };

        if (prev === null) {
          listeners.set(eventName, newNode);
        } else {
          prev.next = newNode;
        }
      }
    },

    configurable: true,
    enumerable: true
  };
}
/**
 * Define an event attribute (e.g. `eventTarget.onclick`).
 * @param {Object} eventTargetPrototype The event target prototype to define an event attrbite.
 * @param {string} eventName The event name to define.
 * @returns {void}
 */


function defineEventAttribute(eventTargetPrototype, eventName) {
  Object.defineProperty(eventTargetPrototype, `on${eventName}`, defineEventAttributeDescriptor(eventName));
}
/**
 * Define a custom EventTarget with event attributes.
 * @param {string[]} eventNames Event names for event attributes.
 * @returns {EventTarget} The custom EventTarget.
 * @private
 */


function defineCustomEventTarget(eventNames) {
  /** CustomEventTarget */
  function CustomEventTarget() {
    EventTarget.call(this);
  }

  CustomEventTarget.prototype = Object.create(EventTarget.prototype, {
    constructor: {
      value: CustomEventTarget,
      configurable: true,
      writable: true
    }
  });

  for (let i = 0; i < eventNames.length; ++i) {
    defineEventAttribute(CustomEventTarget.prototype, eventNames[i]);
  }

  return CustomEventTarget;
}
/**
 * EventTarget.
 *
 * - This is constructor if no arguments.
 * - This is a function which returns a CustomEventTarget constructor if there are arguments.
 *
 * For example:
 *
 *     class A extends EventTarget {}
 *     class B extends EventTarget("message") {}
 *     class C extends EventTarget("message", "error") {}
 *     class D extends EventTarget(["message", "error"]) {}
 */


function EventTarget() {
  /*eslint-disable consistent-return */
  if (this instanceof EventTarget) {
    listenersMap.set(this, new Map());
    return;
  }

  if (arguments.length === 1 && Array.isArray(arguments[0])) {
    return defineCustomEventTarget(arguments[0]);
  }

  if (arguments.length > 0) {
    const types = new Array(arguments.length);

    for (let i = 0; i < arguments.length; ++i) {
      types[i] = arguments[i];
    }

    return defineCustomEventTarget(types);
  }

  throw new TypeError("Cannot call a class as a function");
  /*eslint-enable consistent-return */
} // Should be enumerable, but class methods are not enumerable.


EventTarget.prototype = {
  /**
   * Add a given listener to this event target.
   * @param {string} eventName The event name to add.
   * @param {Function} listener The listener to add.
   * @param {boolean|{capture?:boolean,passive?:boolean,once?:boolean}} [options] The options for this listener.
   * @returns {void}
   */
  addEventListener(eventName, listener, options) {
    if (listener == null) {
      return;
    }

    if (typeof listener !== "function" && !isObject(listener)) {
      throw new TypeError("'listener' should be a function or an object.");
    }

    const listeners = getListeners(this);
    const optionsIsObj = isObject(options);
    const capture = optionsIsObj ? Boolean(options.capture) : Boolean(options);
    const listenerType = capture ? CAPTURE : BUBBLE;
    const newNode = {
      listener,
      listenerType,
      passive: optionsIsObj && Boolean(options.passive),
      once: optionsIsObj && Boolean(options.once),
      next: null
    }; // Set it as the first node if the first node is null.

    let node = listeners.get(eventName);

    if (node === undefined) {
      listeners.set(eventName, newNode);
      return;
    } // Traverse to the tail while checking duplication..


    let prev = null;

    while (node != null) {
      if (node.listener === listener && node.listenerType === listenerType) {
        // Should ignore duplication.
        return;
      }

      prev = node;
      node = node.next;
    } // Add it.


    prev.next = newNode;
  },

  /**
   * Remove a given listener from this event target.
   * @param {string} eventName The event name to remove.
   * @param {Function} listener The listener to remove.
   * @param {boolean|{capture?:boolean,passive?:boolean,once?:boolean}} [options] The options for this listener.
   * @returns {void}
   */
  removeEventListener(eventName, listener, options) {
    if (listener == null) {
      return;
    }

    const listeners = getListeners(this);
    const capture = isObject(options) ? Boolean(options.capture) : Boolean(options);
    const listenerType = capture ? CAPTURE : BUBBLE;
    let prev = null;
    let node = listeners.get(eventName);

    while (node != null) {
      if (node.listener === listener && node.listenerType === listenerType) {
        if (prev !== null) {
          prev.next = node.next;
        } else if (node.next !== null) {
          listeners.set(eventName, node.next);
        } else {
          listeners.delete(eventName);
        }

        return;
      }

      prev = node;
      node = node.next;
    }
  },

  /**
   * Dispatch a given event.
   * @param {Event|{type:string}} event The event to dispatch.
   * @returns {boolean} `false` if canceled.
   */
  dispatchEvent(event) {
    if (event == null || typeof event.type !== "string") {
      throw new TypeError('"event.type" should be a string.');
    } // If listeners aren't registered, terminate.


    const listeners = getListeners(this);
    const eventName = event.type;
    let node = listeners.get(eventName);

    if (node == null) {
      return true;
    } // Since we cannot rewrite several properties, so wrap object.


    const wrappedEvent = wrapEvent(this, event); // This doesn't process capturing phase and bubbling phase.
    // This isn't participating in a tree.

    let prev = null;

    while (node != null) {
      // Remove this listener if it's once
      if (node.once) {
        if (prev !== null) {
          prev.next = node.next;
        } else if (node.next !== null) {
          listeners.set(eventName, node.next);
        } else {
          listeners.delete(eventName);
        }
      } else {
        prev = node;
      } // Call this listener


      setPassiveListener(wrappedEvent, node.passive ? node.listener : null);

      if (typeof node.listener === "function") {
        try {
          node.listener.call(this, wrappedEvent);
        } catch (err) {
          if (typeof console !== "undefined" && typeof console.error === "function") {
            console.error(err);
          }
        }
      } else if (node.listenerType !== ATTRIBUTE && typeof node.listener.handleEvent === "function") {
        node.listener.handleEvent(wrappedEvent);
      } // Break if `event.stopImmediatePropagation` was called.


      if (isStopped(wrappedEvent)) {
        break;
      }

      node = node.next;
    }

    setPassiveListener(wrappedEvent, null);
    setEventPhase(wrappedEvent, 0);
    setCurrentTarget(wrappedEvent, null);
    return !wrappedEvent.defaultPrevented;
  }

}; // `constructor` is not enumerable.

Object.defineProperty(EventTarget.prototype, "constructor", {
  value: EventTarget,
  configurable: true,
  writable: true
}); // Ensure `eventTarget instanceof window.EventTarget` is `true`.

if (typeof window !== "undefined" && typeof window.EventTarget !== "undefined") {
  Object.setPrototypeOf(EventTarget.prototype, window.EventTarget.prototype);
}

exports.defineEventAttribute = defineEventAttribute;
exports.EventTarget = EventTarget;
exports.default = EventTarget;
module.exports = EventTarget;
module.exports.EventTarget = module.exports["default"] = EventTarget;
module.exports.defineEventAttribute = defineEventAttribute;

/***/ }),

/***/ "qeeD":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("Z0QQ"),
      24: __webpack_require__("+VcW")
    }
  }));
};

WrappedIcon.displayName = 'More';
exports.default = WrappedIcon;

/***/ }),

/***/ "qkxD":
/***/ (function(module, exports, __webpack_require__) {

// extracted by mini-css-extract-plugin

/***/ }),

/***/ "qlaj":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var utils = __webpack_require__("w8CP");

var rotr32 = utils.rotr32;

function ft_1(s, x, y, z) {
  if (s === 0) return ch32(x, y, z);
  if (s === 1 || s === 3) return p32(x, y, z);
  if (s === 2) return maj32(x, y, z);
}

exports.ft_1 = ft_1;

function ch32(x, y, z) {
  return x & y ^ ~x & z;
}

exports.ch32 = ch32;

function maj32(x, y, z) {
  return x & y ^ x & z ^ y & z;
}

exports.maj32 = maj32;

function p32(x, y, z) {
  return x ^ y ^ z;
}

exports.p32 = p32;

function s0_256(x) {
  return rotr32(x, 2) ^ rotr32(x, 13) ^ rotr32(x, 22);
}

exports.s0_256 = s0_256;

function s1_256(x) {
  return rotr32(x, 6) ^ rotr32(x, 11) ^ rotr32(x, 25);
}

exports.s1_256 = s1_256;

function g0_256(x) {
  return rotr32(x, 7) ^ rotr32(x, 18) ^ x >>> 3;
}

exports.g0_256 = g0_256;

function g1_256(x) {
  return rotr32(x, 17) ^ rotr32(x, 19) ^ x >>> 10;
}

exports.g1_256 = g1_256;

/***/ }),

/***/ "qm8e":
/***/ (function(module, exports) {

/**
 * lodash (Custom Build) <https://lodash.com/>
 * Build: `lodash modularize exports="npm" -o ./`
 * Copyright jQuery Foundation and other contributors <https://jquery.org/>
 * Released under MIT license <https://lodash.com/license>
 * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
 * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
 */

/** Used as references for various `Number` constants. */
var MAX_SAFE_INTEGER = 9007199254740991;
/** `Object#toString` result references. */

var argsTag = '[object Arguments]',
    funcTag = '[object Function]',
    genTag = '[object GeneratorFunction]';
/** Used to detect unsigned integer values. */

var reIsUint = /^(?:0|[1-9]\d*)$/;
/**
 * A specialized version of `_.forEach` for arrays without support for
 * iteratee shorthands.
 *
 * @private
 * @param {Array} [array] The array to iterate over.
 * @param {Function} iteratee The function invoked per iteration.
 * @returns {Array} Returns `array`.
 */

function arrayEach(array, iteratee) {
  var index = -1,
      length = array ? array.length : 0;

  while (++index < length) {
    if (iteratee(array[index], index, array) === false) {
      break;
    }
  }

  return array;
}
/**
 * The base implementation of `_.times` without support for iteratee shorthands
 * or max array length checks.
 *
 * @private
 * @param {number} n The number of times to invoke `iteratee`.
 * @param {Function} iteratee The function invoked per iteration.
 * @returns {Array} Returns the array of results.
 */


function baseTimes(n, iteratee) {
  var index = -1,
      result = Array(n);

  while (++index < n) {
    result[index] = iteratee(index);
  }

  return result;
}
/**
 * Creates a unary function that invokes `func` with its argument transformed.
 *
 * @private
 * @param {Function} func The function to wrap.
 * @param {Function} transform The argument transform.
 * @returns {Function} Returns the new function.
 */


function overArg(func, transform) {
  return function (arg) {
    return func(transform(arg));
  };
}
/** Used for built-in method references. */


var objectProto = Object.prototype;
/** Used to check objects for own properties. */

var hasOwnProperty = objectProto.hasOwnProperty;
/**
 * Used to resolve the
 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
 * of values.
 */

var objectToString = objectProto.toString;
/** Built-in value references. */

var propertyIsEnumerable = objectProto.propertyIsEnumerable;
/* Built-in method references for those with the same name as other `lodash` methods. */

var nativeKeys = overArg(Object.keys, Object);
/**
 * Creates an array of the enumerable property names of the array-like `value`.
 *
 * @private
 * @param {*} value The value to query.
 * @param {boolean} inherited Specify returning inherited property names.
 * @returns {Array} Returns the array of property names.
 */

function arrayLikeKeys(value, inherited) {
  // Safari 8.1 makes `arguments.callee` enumerable in strict mode.
  // Safari 9 makes `arguments.length` enumerable in strict mode.
  var result = isArray(value) || isArguments(value) ? baseTimes(value.length, String) : [];
  var length = result.length,
      skipIndexes = !!length;

  for (var key in value) {
    if ((inherited || hasOwnProperty.call(value, key)) && !(skipIndexes && (key == 'length' || isIndex(key, length)))) {
      result.push(key);
    }
  }

  return result;
}
/**
 * The base implementation of `_.forEach` without support for iteratee shorthands.
 *
 * @private
 * @param {Array|Object} collection The collection to iterate over.
 * @param {Function} iteratee The function invoked per iteration.
 * @returns {Array|Object} Returns `collection`.
 */


var baseEach = createBaseEach(baseForOwn);
/**
 * The base implementation of `baseForOwn` which iterates over `object`
 * properties returned by `keysFunc` and invokes `iteratee` for each property.
 * Iteratee functions may exit iteration early by explicitly returning `false`.
 *
 * @private
 * @param {Object} object The object to iterate over.
 * @param {Function} iteratee The function invoked per iteration.
 * @param {Function} keysFunc The function to get the keys of `object`.
 * @returns {Object} Returns `object`.
 */

var baseFor = createBaseFor();
/**
 * The base implementation of `_.forOwn` without support for iteratee shorthands.
 *
 * @private
 * @param {Object} object The object to iterate over.
 * @param {Function} iteratee The function invoked per iteration.
 * @returns {Object} Returns `object`.
 */

function baseForOwn(object, iteratee) {
  return object && baseFor(object, iteratee, keys);
}
/**
 * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.
 *
 * @private
 * @param {Object} object The object to query.
 * @returns {Array} Returns the array of property names.
 */


function baseKeys(object) {
  if (!isPrototype(object)) {
    return nativeKeys(object);
  }

  var result = [];

  for (var key in Object(object)) {
    if (hasOwnProperty.call(object, key) && key != 'constructor') {
      result.push(key);
    }
  }

  return result;
}
/**
 * Creates a `baseEach` or `baseEachRight` function.
 *
 * @private
 * @param {Function} eachFunc The function to iterate over a collection.
 * @param {boolean} [fromRight] Specify iterating from right to left.
 * @returns {Function} Returns the new base function.
 */


function createBaseEach(eachFunc, fromRight) {
  return function (collection, iteratee) {
    if (collection == null) {
      return collection;
    }

    if (!isArrayLike(collection)) {
      return eachFunc(collection, iteratee);
    }

    var length = collection.length,
        index = fromRight ? length : -1,
        iterable = Object(collection);

    while (fromRight ? index-- : ++index < length) {
      if (iteratee(iterable[index], index, iterable) === false) {
        break;
      }
    }

    return collection;
  };
}
/**
 * Creates a base function for methods like `_.forIn` and `_.forOwn`.
 *
 * @private
 * @param {boolean} [fromRight] Specify iterating from right to left.
 * @returns {Function} Returns the new base function.
 */


function createBaseFor(fromRight) {
  return function (object, iteratee, keysFunc) {
    var index = -1,
        iterable = Object(object),
        props = keysFunc(object),
        length = props.length;

    while (length--) {
      var key = props[fromRight ? length : ++index];

      if (iteratee(iterable[key], key, iterable) === false) {
        break;
      }
    }

    return object;
  };
}
/**
 * Checks if `value` is a valid array-like index.
 *
 * @private
 * @param {*} value The value to check.
 * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.
 * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.
 */


function isIndex(value, length) {
  length = length == null ? MAX_SAFE_INTEGER : length;
  return !!length && (typeof value == 'number' || reIsUint.test(value)) && value > -1 && value % 1 == 0 && value < length;
}
/**
 * Checks if `value` is likely a prototype object.
 *
 * @private
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.
 */


function isPrototype(value) {
  var Ctor = value && value.constructor,
      proto = typeof Ctor == 'function' && Ctor.prototype || objectProto;
  return value === proto;
}
/**
 * Iterates over elements of `collection` and invokes `iteratee` for each element.
 * The iteratee is invoked with three arguments: (value, index|key, collection).
 * Iteratee functions may exit iteration early by explicitly returning `false`.
 *
 * **Note:** As with other "Collections" methods, objects with a "length"
 * property are iterated like arrays. To avoid this behavior use `_.forIn`
 * or `_.forOwn` for object iteration.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @alias each
 * @category Collection
 * @param {Array|Object} collection The collection to iterate over.
 * @param {Function} [iteratee=_.identity] The function invoked per iteration.
 * @returns {Array|Object} Returns `collection`.
 * @see _.forEachRight
 * @example
 *
 * _([1, 2]).forEach(function(value) {
 *   console.log(value);
 * });
 * // => Logs `1` then `2`.
 *
 * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {
 *   console.log(key);
 * });
 * // => Logs 'a' then 'b' (iteration order is not guaranteed).
 */


function forEach(collection, iteratee) {
  var func = isArray(collection) ? arrayEach : baseEach;
  return func(collection, typeof iteratee == 'function' ? iteratee : identity);
}
/**
 * Checks if `value` is likely an `arguments` object.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is an `arguments` object,
 *  else `false`.
 * @example
 *
 * _.isArguments(function() { return arguments; }());
 * // => true
 *
 * _.isArguments([1, 2, 3]);
 * // => false
 */


function isArguments(value) {
  // Safari 8.1 makes `arguments.callee` enumerable in strict mode.
  return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') && (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);
}
/**
 * Checks if `value` is classified as an `Array` object.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is an array, else `false`.
 * @example
 *
 * _.isArray([1, 2, 3]);
 * // => true
 *
 * _.isArray(document.body.children);
 * // => false
 *
 * _.isArray('abc');
 * // => false
 *
 * _.isArray(_.noop);
 * // => false
 */


var isArray = Array.isArray;
/**
 * Checks if `value` is array-like. A value is considered array-like if it's
 * not a function and has a `value.length` that's an integer greater than or
 * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is array-like, else `false`.
 * @example
 *
 * _.isArrayLike([1, 2, 3]);
 * // => true
 *
 * _.isArrayLike(document.body.children);
 * // => true
 *
 * _.isArrayLike('abc');
 * // => true
 *
 * _.isArrayLike(_.noop);
 * // => false
 */

function isArrayLike(value) {
  return value != null && isLength(value.length) && !isFunction(value);
}
/**
 * This method is like `_.isArrayLike` except that it also checks if `value`
 * is an object.
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is an array-like object,
 *  else `false`.
 * @example
 *
 * _.isArrayLikeObject([1, 2, 3]);
 * // => true
 *
 * _.isArrayLikeObject(document.body.children);
 * // => true
 *
 * _.isArrayLikeObject('abc');
 * // => false
 *
 * _.isArrayLikeObject(_.noop);
 * // => false
 */


function isArrayLikeObject(value) {
  return isObjectLike(value) && isArrayLike(value);
}
/**
 * Checks if `value` is classified as a `Function` object.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a function, else `false`.
 * @example
 *
 * _.isFunction(_);
 * // => true
 *
 * _.isFunction(/abc/);
 * // => false
 */


function isFunction(value) {
  // The use of `Object#toString` avoids issues with the `typeof` operator
  // in Safari 8-9 which returns 'object' for typed array and other constructors.
  var tag = isObject(value) ? objectToString.call(value) : '';
  return tag == funcTag || tag == genTag;
}
/**
 * Checks if `value` is a valid array-like length.
 *
 * **Note:** This method is loosely based on
 * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
 * @example
 *
 * _.isLength(3);
 * // => true
 *
 * _.isLength(Number.MIN_VALUE);
 * // => false
 *
 * _.isLength(Infinity);
 * // => false
 *
 * _.isLength('3');
 * // => false
 */


function isLength(value) {
  return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
}
/**
 * Checks if `value` is the
 * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
 * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is an object, else `false`.
 * @example
 *
 * _.isObject({});
 * // => true
 *
 * _.isObject([1, 2, 3]);
 * // => true
 *
 * _.isObject(_.noop);
 * // => true
 *
 * _.isObject(null);
 * // => false
 */


function isObject(value) {
  var type = typeof value;
  return !!value && (type == 'object' || type == 'function');
}
/**
 * Checks if `value` is object-like. A value is object-like if it's not `null`
 * and has a `typeof` result of "object".
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
 * @example
 *
 * _.isObjectLike({});
 * // => true
 *
 * _.isObjectLike([1, 2, 3]);
 * // => true
 *
 * _.isObjectLike(_.noop);
 * // => false
 *
 * _.isObjectLike(null);
 * // => false
 */


function isObjectLike(value) {
  return !!value && typeof value == 'object';
}
/**
 * Creates an array of the own enumerable property names of `object`.
 *
 * **Note:** Non-object values are coerced to objects. See the
 * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)
 * for more details.
 *
 * @static
 * @since 0.1.0
 * @memberOf _
 * @category Object
 * @param {Object} object The object to query.
 * @returns {Array} Returns the array of property names.
 * @example
 *
 * function Foo() {
 *   this.a = 1;
 *   this.b = 2;
 * }
 *
 * Foo.prototype.c = 3;
 *
 * _.keys(new Foo);
 * // => ['a', 'b'] (iteration order is not guaranteed)
 *
 * _.keys('hi');
 * // => ['0', '1']
 */


function keys(object) {
  return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);
}
/**
 * This method returns the first argument it receives.
 *
 * @static
 * @since 0.1.0
 * @memberOf _
 * @category Util
 * @param {*} value Any value.
 * @returns {*} Returns `value`.
 * @example
 *
 * var object = { 'a': 1 };
 *
 * console.log(_.identity(object) === object);
 * // => true
 */


function identity(value) {
  return value;
}

module.exports = forEach;

/***/ }),

/***/ "qmEL":
/***/ (function(module, exports, __webpack_require__) {

!function (e, t) {
   true ? module.exports = t() : undefined;
}(this, function () {
  "use strict";

  return [{
    locale: "ja",
    pluralRuleFunction: function (e, t) {
      return "other";
    },
    fields: {
      year: {
        displayName: "年",
        relative: {
          0: "今年",
          1: "翌年",
          "-1": "昨年"
        },
        relativeTime: {
          future: {
            other: "{0} 年後"
          },
          past: {
            other: "{0} 年前"
          }
        }
      },
      "year-short": {
        displayName: "年",
        relative: {
          0: "今年",
          1: "翌年",
          "-1": "昨年"
        },
        relativeTime: {
          future: {
            other: "{0} 年後"
          },
          past: {
            other: "{0} 年前"
          }
        }
      },
      month: {
        displayName: "月",
        relative: {
          0: "今月",
          1: "翌月",
          "-1": "先月"
        },
        relativeTime: {
          future: {
            other: "{0} か月後"
          },
          past: {
            other: "{0} か月前"
          }
        }
      },
      "month-short": {
        displayName: "月",
        relative: {
          0: "今月",
          1: "翌月",
          "-1": "先月"
        },
        relativeTime: {
          future: {
            other: "{0} か月後"
          },
          past: {
            other: "{0} か月前"
          }
        }
      },
      day: {
        displayName: "日",
        relative: {
          0: "今日",
          1: "明日",
          2: "明後日",
          "-2": "一昨日",
          "-1": "昨日"
        },
        relativeTime: {
          future: {
            other: "{0} 日後"
          },
          past: {
            other: "{0} 日前"
          }
        }
      },
      "day-short": {
        displayName: "日",
        relative: {
          0: "今日",
          1: "明日",
          2: "明後日",
          "-2": "一昨日",
          "-1": "昨日"
        },
        relativeTime: {
          future: {
            other: "{0} 日後"
          },
          past: {
            other: "{0} 日前"
          }
        }
      },
      hour: {
        displayName: "時",
        relative: {
          0: "1 時間以内"
        },
        relativeTime: {
          future: {
            other: "{0} 時間後"
          },
          past: {
            other: "{0} 時間前"
          }
        }
      },
      "hour-short": {
        displayName: "時",
        relative: {
          0: "1 時間以内"
        },
        relativeTime: {
          future: {
            other: "{0} 時間後"
          },
          past: {
            other: "{0} 時間前"
          }
        }
      },
      minute: {
        displayName: "分",
        relative: {
          0: "1 分以内"
        },
        relativeTime: {
          future: {
            other: "{0} 分後"
          },
          past: {
            other: "{0} 分前"
          }
        }
      },
      "minute-short": {
        displayName: "分",
        relative: {
          0: "1 分以内"
        },
        relativeTime: {
          future: {
            other: "{0} 分後"
          },
          past: {
            other: "{0} 分前"
          }
        }
      },
      second: {
        displayName: "秒",
        relative: {
          0: "今"
        },
        relativeTime: {
          future: {
            other: "{0} 秒後"
          },
          past: {
            other: "{0} 秒前"
          }
        }
      },
      "second-short": {
        displayName: "秒",
        relative: {
          0: "今"
        },
        relativeTime: {
          future: {
            other: "{0} 秒後"
          },
          past: {
            other: "{0} 秒前"
          }
        }
      }
    }
  }];
});

/***/ }),

/***/ "qp3/":
/***/ (function(module, exports) {

/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
module.exports = {
  'ccd.infoPanel.detail.created': '建立時間',
  'ccd.infoPanel.detail.modified': '修改時間',
  'ccd.infoPanel.detail.size': '大小',
  'ccd.infoPanel.detail.shared': '已共用',
  'ccd.header.renameFolder': '重新命名檔案夾',
  'ccd.menu.addToFavourites': '新增至快速鍵',
  'ccd.menu.removeFromFavourites': '移除快速鍵',
  'ccd.menu.viewonweb': '在網頁上檢視',
  'ccd.menu.share': '分享',
  'ccd.menu.openWith': '開啟方式',
  'ccd.menu.changeDefaultApp': '變更預設應用程式...',
  'ccd.menu.default': '(預設)',
  'ccd.menu.export': '匯出為本機副本',
  'ccd.menu.download': '下載',
  'ccd.menu.createNew': '新建...',
  'ccd.menu.launch': '啟動',
  'actionMenuItem.permdelete': '永久刪除',
  'tab.Cloud Documents': '您的檔案',
  'tab.Home': '首頁',
  'header.CloudDocuments': '您的檔案',
  'header.SharedWithYou': '與您共用',
  'header.Deleted': '已刪除',
  'header.Deleted.AssetsWebLink': '若要檢視所有已刪除的項目，請移至 Assets Web',
  'header.SelectedDocuments': '已選取 {numSelected, plural, =1 {#} other {#}} 個',
  'header.size': '大小',
  'header.title': '名稱',
  'header.modifiedDate': '修改日期',
  'header.createDate': '建立日期',
  'header.shareDate': '共用日期',
  'header.SortBy': '排序方式',
  'header.infoPopover.body': '僅顯示相容檔案。若要查看所有檔案，請瀏覽網絡上的 Creative Cloud。',
  'header.infoPopover.link': '前往 Creative Cloud',
  'header.dragImport': '上傳到：{displayName}',
  'collaborators.onlyYou': '只有您',
  'collaborators.Owner': '{displayName} (擁有者)',
  'collaborators.More': '{numItems, plural, other {和另外 # 人}}',
  'empty.offline.root.title': '您已中斷連線',
  'empty.offline.root.subtitle': '在重新連線後，您先前連線時可見的項目將會顯示在這裡。',
  'empty.offline.folder.title': '無法載入檔案夾',
  'empty.offline.folder.subtitle': '沒有網際網路連線。請重新連線以檢視所有內容。',
  'empty.online.cdp.saveas.root.title': '沒有雲端文件可顯示',
  'empty.online.cdp.saveas.root.subtitle': '雲端文件意味著不論您身在何處，您的作品都會更新至每部裝置上 – 只需連線至網際網路即可。',
  'empty.online.cdp.saveas.root.subtitle.sprk': '您所有的 XD 雲端文件都在這裡。在任何地方工作，離線狀態下也不受影響。雲端文件上的變更會自動儲存並可在文件歷史記錄中查看。',
  'empty.online.cdp.saveas.root.subtitle.phxs': '您在 Mac、Windows 和 iPad 上使用 Photoshop 產出的雲端文件都會在這裡。',
  'empty.online.cdp.saveas.root.subtitle.ilst': '您在 Mac、和 Windows 上使用 Illustrator 產生的所有雲端文件都會在這裡。',
  'empty.online.cdp.saveas.root.subtitle.idsn': '您在 Mac 和 Windows 上使用 InDesign 產生的所有雲端文件將會在這裡。',
  'empty.online.cdp.saveas.folder.title': '沒有雲端文件可顯示',
  'empty.online.cdp.saveas.folder.subtitle': '當您將相容的雲端文件放入此檔案夾後，該文件便會顯示在這裡。',
  'empty.online.cdp.open.root.title': '沒有雲端文件可顯示',
  'empty.online.cdp.open.root.subtitle': '當您將相容的雲端文件放入此檔案夾後，該文件便會顯示在這裡。',
  'empty.online.cdp.open.root.subtitle.sprk': '您所有的 XD 雲端文件都在這裡。在任何地方工作，離線狀態下也不受影響。雲端文件上的變更會自動儲存並可在文件歷史記錄中查看。',
  'empty.online.cdp.open.root.subtitle.phxs': '您在 Mac、Windows 和 iPad 上使用 Photoshop 產出的雲端文件都會在這裡。',
  'empty.online.cdp.open.root.subtitle.ilst': '您在 Mac、和 Windows 上使用 Illustrator 產生的所有雲端文件都會在這裡。',
  'empty.online.cdp.open.root.subtitle.idsn': '您在 Mac 和 Windows 上使用 InDesign 產生的所有雲端文件將會在這裡。',
  'empty.online.cdp.open.folder.title': '沒有雲端文件可顯示',
  'empty.online.cdp.open.folder.subtitle': '當您將相容的雲端文件放入此檔案夾後，該文件便會顯示在這裡。',
  'empty.online.cdo.root.title': '您沒有雲端文件',
  'empty.online.cdo.root.subtitle': '與他人順暢進行協作，即使處於離線狀態，也可以在任何地方工作。變更會自動儲存並可在檔案記錄中檢視。',
  'empty.online.cdo.root.subtitle.sprk': '即時與他人順暢進行協作，即使處於離線狀態，也可以在任何地方工作。變更會自動儲存並可在檔案記錄中檢視。',
  'empty.online.cdo.root.subtitle.phxs': '與他人順暢進行協作，即使您處於離線狀態，也可以在登入 Photoshop 的任何地方工作。變更會自動儲存並可在檔案記錄中檢視。',
  'empty.online.cdo.root.subtitle.ilst': '與他人順暢進行協作，即使您處於離線狀態，也可以在登入 Illustrator 的任何地方工作。變更會自動儲存並可在檔案記錄中檢視。',
  'empty.online.cdo.root.subtitle.idsn': '無論您從任何地方登入 InDesign，都可以存取您的文件。變更會自動儲存。',
  'empty.online.cdo.folder.title': '沒有雲端文件可顯示',
  'empty.online.cdo.folder.subtitle': '當您將相容的雲端文件放入此檔案夾後，該文件便會顯示在這裡。',
  'empty.title.deleted': '您沒有任何刪除的檔案',
  'empty.title.deleted_offline': '您已中斷連線',
  'empty.title.recent': '您沒有最近使用的檔案',
  'empty.subtext.deleted_offline': '當您重新連線時，您連線時所刪除的項目將會顯示在這裡。',
  'empty.title.shared_with_you': '您沒有共用的雲端文件',
  'empty.subtext.shared_with_you': '當有人與您共用雲端文件時，該文件就會顯示在這裡。',
  'empty.title.shared_with_you_offline': '您已中斷連線',
  'empty.subtext.shared_with_you_offline': '您可以在連線恢復時，檢視和編輯共用的文件。',
  'empty.title.error': '發生錯誤',
  'empty.subtext.error': '請重新啟動應用程式並再試一次。',
  'empty.subtext.error.web': '重新整理您的瀏覽器，然後再試一次。',
  'empty.title.coresync.down': '無法載入',
  'empty.subtext.coresync.down': '雲端未同步。請確定 Creative Cloud 桌面版已更新，或嘗試重新啟動該應用程式。',
  'empty.title.coresync.incompatible': '無法載入雲端文件',
  'empty.subtext.coresync.incompatible': '我們目前無法顯示項目。請更新您的 Creative Cloud 應用程式版本並再試一次。',
  'empty.title.cloudStorageDisabled': '雲端文件無法使用',
  'empty.subtext.cloudStorageDisabled': '您只能使用 {productName} 處理裝置上的檔案。請聯絡您的 IT 管理員以取得詳細資訊。',
  'empty.title.logout': '登入以存取雲端文件。',
  'empty.learnMore.link': '更多資訊',
  'trueEmpty.online.cdo.folder.title': '此檔案夾中沒有任何內容',
  'trueEmpty.online.cdo.folder.subtitle': '開始在這裡新增內容。',
  'trueEmpty.online.cdp.saveas.folder.title': '還沒有雲端文件',
  'trueEmpty.online.cdp.saveas.folder.subtitle': '雲端文件意味著不論您身在何處，您的作品都會更新至每部裝置上 — 只需連線至網際網路即可。',
  'trueEmpty.online.cdp.open.folder.title': '還沒有雲端文件',
  'trueEmpty.online.cdp.open.folder.subtitle': '雲端文件意味著不論您身在何處，您的作品都會更新至每部裝置上 — 只需連線至網際網路即可。',
  'filter.prompt': '輸入關鍵字',
  'filter.title': '篩選',
  'empty.filter.title': '找不到「{filterString}」的結果',
  'empty.filter.subtitle': '檢查您的拼字、嘗試使用更廣泛的關鍵字或篩選其他位置。',
  'beta.title': '在所有裝置上同步您的作品',
  'beta.subtitle': '您可以利用雲端文件，在 iPad 和桌面上的 Photoshop 中順暢地進行工作。此功能仍在 Beta 階段，因此可能無法始終按預期運作。請在偏好設定中開啟和關閉此功能。',
  'beta.button': '在偏好設定中開啟',
  'beta.tag': 'BETA',
  'beta.feedback.link': '提供此 Beta 版的意見回饋',
  'button.add-folder': '建立新檔案夾',
  'button.upload': '上傳...',
  'button.createnew': '新建',
  'button.reportAbuse': '舉報不當使用',
  'button.open': '開啟',
  'button.select': '選擇',
  'button.rename': '重新命名',
  'button.pin.header': '設為可離線使用 (一律)',
  'button.pin': '設為永遠可離線使用',
  'button.unpin.header': '設為僅可線上使用',
  'button.unpin': '設為僅可線上使用',
  'button.duplicate': '複製',
  'button.download': '下載',
  'button.move': '移動',
  'button.delete': '刪除',
  'button.restore': '復原',
  'button.permdelete': '永久刪除',
  'button.listview': '檢視清單',
  'button.gridview': '檢視縮圖',
  'button.sharesheetinvite': '邀請編輯',
  'button.sharesheetLink': '取得連結',
  'button.shareSheetAction': '共用',
  'button.preview': '預視',
  'button.schedule': '排程',
  'action.duplicate.suffix': '(複製)',
  'action.resolve_sync_error.suffix': '複本',
  'statusIcon.conflicted': '同步衝突',
  'statusIcon.onlineOnly': '僅可線上使用',
  'statusIcon.availableOffline': '可離線使用',
  'statusIcon.syncing': '同步...',
  'statusIcon.waitingToSync': '正在等待同步',
  'tooltip.error': '開啟文件以檢視儲存衝突',
  'toast.error.documentIsOpen': '關閉{count, plural, =1 {文件} other {文件}}以執行此動作。',
  'toast.error.exceedsQuota.personal': '您帳戶的儲存空間已用盡',
  'toast.error.exceedsQuota.enterprise': '儲存空間用盡，請聯絡您的管理員以取得更多資訊',
  'toast.operation.duplicate.error': '無法複製 {count, plural, =1 {個項目} other {{count} 個項目}}。',
  'toast.operation.duplicate.success': '已複製  {count, plural, =1 {個項目} other {{count} 個項目}}。',
  'toast.operation.archive.error': '無法刪除 {count} 個{count, plural, =1 {項目} other {{count} 個項目}}。',
  'toast.operation.archive.error.otherAppUncommittedChanges': '您無法刪除在其他應用程式中開啟的檔案。請將檔案關閉，然後再試一次。',
  'toast.operation.archive.undo.error': '無法刪除 {count} 個{count, plural, =1 {項目} other {{count} 個項目}}。',
  'toast.operation.archive.success': '已刪除{count, plural, =1 {項目} other { {count} 個項目}}。',
  'toast.operation.archive.undo.success': '復原已還原。',
  'toast.operation.permdelete.error': '無法永久刪除 {count} 個{count, plural, =1 {項目} other {{count} 個項目}}。',
  'toast.operation.permdelete.success': '{count, plural, =1 {項目} other {{count} 個項目}}已永久刪除。',
  'toast.operation.rename.error': '無法重新命名項目。',
  'toast.operation.rename.undo.error': '無法重新命名項目。',
  'toast.operation.rename.error.duplicateName': '這裡已有使用此名稱的項目。',
  'toast.operation.rename.undo.error.duplicateName': '這裡已有使用此名稱的項目。',
  'toast.operation.rename.success': '項目已重命名。',
  'toast.operation.rename.undo.success': '重新命名已還原。',
  'toast.operation.move.error': '無法移動 {count} 個{count, plural, =1 {項目} other {{count} 個項目}}。',
  'toast.operation.move.undo.error': '無法移動 {count} 個{count, plural, =1 {項目} other {{count} 個項目}}。',
  'toast.operation.move.error.duplicateFolderName': '這裡已有使用此名稱的檔案夾。',
  'toast.operation.move.undo.error.duplicateFolderName': '這裡已有使用此名稱的檔案夾。',
  'toast.operation.move.error.duplicateDocName': '{count, plural, =1 {該檔案夾中已有使用此名稱的文件。請重新命名並再試一次。} other {由於相同名稱的文件已存在，因此無法移動文件。}}',
  'toast.operation.move.undo.error.duplicateDocName': '{count, plural, =1 {該檔案夾中已有使用此名稱的文件。請重新命名並再試一次。} other {由於相同名稱的文件已存在，因此無法移動文件。}}',
  'toast.operation.move.success': '已移動{count, plural, =1 {項目} other { {count} 個項目}}。',
  'toast.operation.move.undo.success': '移動已還原。',
  'toast.operation.unarchive.error': '無法復原 {count} 個{count, plural, =1 {項目} other {{count} 個項目}}。',
  'toast.operation.unarchive.undo.error': '無法復原 {count} 個{count, plural, =1 {項目} other {{count} 個項目}}。',
  'toast.operation.unarchive.success': '已復原{count, plural, =1 {項目} other { {count} 個項目}}。',
  'toast.operation.unarchive.undo.success': '刪除已還原。',
  'toast.operation.create_new_folder.success': '檔案夾已建立。',
  'toast.operation.create_new_folder.error': '無法建立新資料夾。',
  'toast.operation.create_new_folder.error.duplicateName': '這裡已有使用此名稱的檔案夾。',
  'toast.operation.user_pin.success': '{count, plural, =1 {項目} other {{count} 個項目}}可離線使用。',
  'toast.operation.user_pin.error': '無法使 {count, plural, =1 {個 項目} other {{count} 個項目}} 可離線使用。',
  'toast.operation.user_unpin.success': '{count, plural, =1 {項目} other {{count} 個項目}}僅可線上使用。 ',
  'toast.operation.user_unpin.error': '無法將 {count, plural, =1 {1 個項目} other {{count} 個項目}} 設為僅供線上使用。',
  'toast.operation.resolve_sync_error.success': '「{name}」的副本已建立。您可以比較兩份文件並調和任何差異。',
  'toast.ccd.scroll_to_item.fetching': '正在提取檔案...',
  'toast.ccd.scroll_to_item.error': '找不到檔案',
  'toast.info.disabled_rename_to_open_item': 'Legacy XD 文件必須先開啟，然後才能在此處重新命名。',
  'toast.action.disabled_rename_to_open_item': '開啟文件',
  'toast.error.rename.invalidName': '抱歉，此名稱包含無效的字元。',
  'toast.error.rename.invalidChar': '名稱不能包含下列字元: {characters}',
  'toast.error.rename.invalidEnd': '名稱不能以「.」或空格結尾。',
  'toast.error.rename.charRestriction': '名稱不能超過 200 個字元。',
  'toast.error.rename.duplicateName': '這裡已有使用此名稱的雲端文件。',
  'toast.success.reportAbuse': '已成功舉報不當使用',
  'toast.error.reportAbuse': '無法舉報不當使用',
  'toast.operation.undoLabel': '還原',
  'dialog.permdelete.heading': '永久刪除',
  'dialog.permdelete.warning': '您無法還原這個動作。您將永久失去以下內容:',
  'dialog.permdelete.cancelButton': '取消',
  'dialog.permdelete.confirmButton': '永久刪除',
  'dialog.permdelete.countItems': '{count, plural, =1 {# 個項目} other {# 個項目}}',
  'dialog.nonemptyfolder.heading': '您確定要刪除{count, plural, =1 {此檔案夾} other {這些檔案夾}}嗎?',
  'dialog.nonemptyfolder.warning': '{count, plural, =1 {此檔案夾} other {這些檔案夾}}不是空的，並且可能包含在 {appName} 中無法看見的檔案。您可以繼續刪除，或在網頁上檢視{count, plural, =1 {檔案夾} other {檔案夾}}以查看{count, plural, =1 {其} other {其}}內容。{viewOnWebLink}',
  'dialog.nonemptyfolder.cancelButton': '取消',
  'dialog.nonemptyfolder.confirmButton': '刪除',
  'dialog.nonemptyfolder.viewOnWebButton': '在網頁上檢視',
  'dialog.addfolder.heading': '建立新檔案夾',
  'dialog.addfolder.cancelButton': '取消',
  'dialog.addfolder.confirmButton': '儲存',
  'dialog.addfolder.placeholder': '新檔案夾',
  'dialog.addfolder.invalidChar': '名稱不能包含下列字元：{characters}',
  'dialog.addfolder.invalidName': '抱歉，此檔案夾包含無效的字元。',
  'dialog.addfolder.invalidEnd': '名稱不能以「.」或空格結尾。',
  'dialog.addfolder.duplicateName': '這裡已有使用此名稱的檔案夾。',
  'dialog.addfolder.charRestriction': '名稱不能超過 200 個字元。',
  'dialog.moveFolder.heading': '移動到...',
  'dialog.moveFolder.cancelButton': '取消',
  'dialog.moveFolder.moveButton': '移動',
  'dialog.moveFolder.createNewFolderButton': '新增檔案夾',
  'dialog.reportAbuse.cancelButton': '取消',
  'dialog.reportAbuse.reportAbuseButton': '舉報不當使用',
  'dialog.reportAbuse.heading': '舉報不當使用',
  'dialog.reportAbuse.emailInput': '您的電子郵件',
  'dialog.reportAbuse.nameInput': '您的名稱',
  'dialog.reportAbuse.radioButtonText': '舉報此內容的原因',
  'dialog.reportAbuse.defamation': '誹謗',
  'dialog.reportAbuse.hate': '種族主義或仇恨性內容',
  'dialog.reportAbuse.trademark': '侵犯商標',
  'dialog.reportAbuse.pornography': '色情內容',
  'dialog.reportAbuse.vulgar': '冒犯的內容',
  'dialog.reportAbuse.other': '其他',
  'dialog.reportAbuse.inappropriate': '不適當',
  'dialog.reportAbuse.age': '年齡不正確',
  'dialog.reportAbuse.gender': '性別不正確',
  'dialog.reportAbuse.description': '如果您認為這個 Creative Cloud 內容違反 Adobe 使用條款，可以填寫這份簡表來舉報此內容。',
  'dialog.reportAbuse.describeConcern': '描述疑慮',
  'dialog.reportAbuse.success': '已成功舉報不當使用',
  'dialog.reportAbuse.failure': '無法舉報不當使用',
  'dialog.reportAbuse.textAreaTitle': '請詳細說明您顧慮的事項',
  'dialog.reportAbuse.required': '必要',
  'dialog.cachefull.title': '無法設為可離線使用',
  'dialog.cachefull.message': '您裝置上的空間已用盡。將文件設為僅限線上使用以釋放空間。',
  'dialog.cachefull.confirm': '確定',
  'dialog.syncError.heading': '此文件已停止同步到雲端',
  'dialog.syncError.body1': '建議您將最新版本儲存為副本，並將文件還原為雲端中上次儲存的版本。',
  'dialog.syncError.body2': '您可以開啟此文件並進行編輯，但是所做的變更將不會儲存到雲端。',
  'dialog.syncError.offline': '您必須在線上才能儲存複本及還原原始版本。',
  'dialog.syncError.learnMore': '更多資訊',
  'dialog.syncError.resolveButton': '儲存副本並還原',
  'dialog.syncError.openButton': '開啟',
  'dialog.syncErrorCopyFail.heading': '無法儲存副本',
  'dialog.syncErrorCopyFail.body1': '您仍可以開啟此文件並進行編輯，但是所做的變更將不會儲存到雲端。',
  'dialog.syncErrorCopyFail.body2': '請聯絡 Adobe 客戶服務以取得進一步協助。(錯誤：LocalContentSyncSuspended)',
  'dialog.syncErrorCopyFail.closeButton': '關閉',
  'dialog.syncErrorCopyFail.contactUs': '與我們聯絡',
  'dialog.syncErrorPurgeFail.heading': '無法還原為雲端中上次儲存的版本',
  'dialog.syncErrorPurgeFail.body1': '您的文件副本已建立，但是我們無法將文件還原為雲端中上次儲存的版本。',
  'dialog.syncErrorPurgeFail.body2': '請聯絡 Adobe 客戶服務以取得進一步協助。(錯誤：LocalContentSyncSuspended)',
  'dialog.syncErrorPurgeFail.closeButton': '關閉',
  'dialog.syncErrorPurgeFail.contactUs': '與我們聯絡',
  'onboardingCdo.banner.title.sprk': '更好的工作方式',
  'onboardingCdo.banner.title.phxs': '在 iPad 上使用 Photoshop 嗎? 試試雲端文件',
  'onboardingCdo.banner.title.ilst': '現在，您可以在 Illustrator 中使用雲端文件',
  'onboardingCdo.banner.title.idsn': '現在，您可以在 InDesign 中使用雲端文件',
  'onboardingCdo.banner.message.sprk': '在任何地方編輯您的雲端文件，離線狀態下也不受影響。變更將自動儲存並可在文件歷史記錄中查看。可和其他人共用分享進行即時的無縫化共同作業。',
  'onboardingCdo.banner.message.phxs': '雲端文件會在您工作時自動儲存至 Adobe 的雲端，因此在桌面或 iPad 上都能存取您的檔案。',
  'onboardingCdo.banner.message.ilst': '當您工作時，Illustrator 中的雲端文件會自動儲存至 Adobe 的雲端。您也可以檢視版本記錄，以了解工作的進展狀況。',
  'onboardingCdo.banner.message.idsn': '在您工作時，InDesign 中的雲端文件會自動儲存至 Adobe 的雲端。',
  'onboardingCdo.banner.linkTitle': '更多資訊',
  'onboardingCdo.banner.confirm': '確定',
  'operation.progress.archive': '正在刪除{batchSize, plural, =1 { 1 個項目} other { {inProgressNum} 個項目 (共 {batchSize} 個)}}...',
  'operation.progress.unarchive': '正在復原{batchSize, plural, =1 { 1 個項目} other { {inProgressNum} 個項目 (共 {batchSize} 個)}}...',
  'operation.progress.move': '正在移動{batchSize, plural, =1 { 1 個項目} other { {inProgressNum} 個項目 (共 {batchSize} 個)}}...',
  'operation.progress.permdelete': '正在永久刪除{batchSize, plural, =1 { 1 個項目} other { {inProgressNum} 個項目 (共 {batchSize} 個)}}...',
  'operation.progress.rename': '正在重新命名{batchSize, plural, =1 { 1 個項目} other { {inProgressNum} 個項目 (共 {batchSize} 個)}}...',
  'operation.progress.create_new_folder': '正在建立新檔案夾...',
  'operation.progress.duplicate': '正在複製{batchSize, plural, =1 { 1 個項目} other { {inProgressNum} 個項目 (共 {batchSize} 個)}}...',
  'operation.progress.user_pin': '使{batchSize, plural, =1 { 1 個項目} other { {inProgressNum} 個項目 (共 {batchSize} 個)}} 可離線使用...',
  'operation.progress.user_unpin': '使{batchSize, plural, =1 { 1 個項目} other { {inProgressNum} 個項目 (共 {batchSize} 個)}} 僅供線上使用...',
  'operation.progress.resolve_sync_error': '正在複製並還原為雲端中上次儲存的版本…',
  'tooltip.offline.general': '需要網際網路連線。',
  'tooltip.offline.create-new-folder': '需要網際網路連線才能建立檔案夾。',
  'tooltip.offline.move': '需要網際網路連線才能移動項目。',
  'tooltip.syncing.disabled': '擱置中同步完成',
  'tooltip.rename.disabled': '無法重新命名所選的文件。請在主機應用程式中開啟以啟用重新命名。',
  'tooltip.rename.disabled.sprk': '在 XD 中開啟該檔案之前，無法重命名該檔案。',
  'tooltip.syncSuspended.needsAction': '同步已停止。請開啟以採取行動。',
  'tooltip.syncSuspended.noAction': '同步已停止。目前不允許此動作。',
  'Recents.title': '最近使用',
  'Recents.cloudDocTitle': '雲端文件',
  'Recents.error.subtext.coreSync': '目前無法取得最近使用文件，因為 Creative Cloud Sync 未正常執行。',
  'item.saveForOfflineIconToolTip': '此文件已下載，可完全離線使用。',
  'item.disconnected.cloudonly': '您已中斷連線。請重新連線以開啟文件。',
  'item.coresyncdown.cloudonly': '無法載入檔案。更新或重新啟動 Creative Cloud 可能會解決此問題。',
  'folder.subtitle': '檔案夾',
  'review.subtitle': '審核',
  'prototype.subtitle': '原型',
  'designspecs.subtitle': '設計規格',
  'project.subtitle': '專案',
  'library.subtitle': '資料庫',
  'webLink.subtitle': '網頁連結',
  'abbreviations.fileSize.byte': 'B',
  'abbreviations.fileSize.kilobyte': 'KB',
  'abbreviations.fileSize.megabyte': 'MB',
  'abbreviations.fileSize.gigabyte': 'GB',
  'abbreviations.fileSize.terabyte': 'TB',
  'sam.copyNameFormat': '%@ 複本',
  'cloudsync.quota.title': '雲端儲存空間',
  'cloudsync.quota.percentage': '{percentageUsed}%',
  'cloudsync.quota.usage': '已使用 {maxCloudQuotaString} 中的 {usedCloudQuotaString}',
  'cloudsync.quota.warning': '您的雲端儲存空間已滿。請立即升級以繼續同步您的作品。',
  'cloudsync.quota.error': '無法取得儲存空間資訊...',
  'cloudsync.quota.upgrade': '升級',
  'cloudsync.status.complete.title': '已完成同步及備份',
  'cloudsync.status.syncing.title': '正在同步雲端文件',
  'cloudsync.status.syncing.descr': '{progress}/{total}',
  'cloudsync.status.offline.title': '離線工作',
  'cloudsync.status.offline.descr': '我們正在本機上儲存。文件將在再次連線後同步到雲端。',
  'cloudsync.status.disabled.title': '同步已停用',
  'cloudsync.status.disabled.descr': '我們正在本地保存。儲存空間可用時，文件將同步到雲端。',
  'cloudsync.item.progress.determinate': '{progress}/{total}',
  'cloudsync.item.progress.indeterminate': '同步...',
  'cloudsync.item.complete': '完整計劃',
  'cloudsync.items.header': '網路活動',
  'cloudsync.alert.title.coresync.down': '無法載入',
  'cloudsync.alert.subtext.coresync.down': '雲端未同步。請確定 Creative Cloud 桌面版已更新，或嘗試重新啟動該應用程式。',
  'cloudsync.alert.subtext.coresync.down.learnmore': '了解更多',
  'cloudsync.tooltip.offline': '已中斷連線',
  'cloudsync.tooltip.error': '錯誤',
  'cloudsync.tooltip.syncing': '儲存中…',
  'cloudsync.tooltip.default': '已儲存',
  'cloudsync.singleDoc.offline.title': '已中斷連線',
  'cloudsync.singleDoc.offline.descr': '正在嘗試重新連線…',
  'cloudsync.singleDoc.offline.timestamp': '上次同步時間：{time}',
  'cloudsync.singleDoc.error.samInitFail.title': '雲端已停止同步',
  'cloudsync.singleDoc.error.samInitFail.descr': '請重新啟動此應用程式以繼續同步您的作品。',
  'cloudsync.singleDoc.error.syncSuspended.title': '雲端已停止同步',
  'cloudsync.singleDoc.error.syncSuspended.descr': '請重新啟動此應用程式以繼續同步您的作品。',
  'cloudsync.singleDoc.error.title': '無法載入',
  'cloudsync.singleDoc.error.descr': '雲端未同步。請確定 Creative Cloud Desktop 已更新，或嘗試重新啟動該應用程式。',
  'cloudsync.singleDoc.error.learnMore': '了解更多',
  'cloudsync.singleDoc.disabled.quotaExceeded.title': '您的雲端儲存空間已滿',
  'cloudsync.singleDoc.disabled.quotaExceeded.descr': '請升級 Creative Cloud 以繼續同步您的作品。',
  'cloudsync.singleDoc.syncing.title': '儲存中…',
  'cloudsync.singleDoc.syncing.descr': '進行中',
  'cloudsync.singleDoc.disabled.title': '無法儲存',
  'cloudsync.singleDoc.disabled.descr': '您帳戶的儲存空間已用盡。',
  'cloudsync.singleDoc.complete.title': '檔案已儲存',
  'cloudsync.singleDoc.complete.timestamp': '上次同步時間：{time}'
};

/***/ }),

/***/ "qpZ1":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ShareLevel; });
/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("2vnA");
/* harmony import */ var _ccx_public_shared_asset_model_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("m4Z2");
/* harmony import */ var _Rename__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("UoXk");
/* harmony import */ var _stores_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("q0hk");
/* harmony import */ var _utils_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("bXP0");
/* harmony import */ var _stores_SharedStore__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("jmEq");
/* harmony import */ var _utils_SAMUtils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("x7p6");
/* harmony import */ var _utils_mimeTypes__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("sYeI");
/* harmony import */ var _utils_constants__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("YVc3");
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;
};
var __metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2019 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/









var ShareLevel;
(function (ShareLevel) {
    ShareLevel["public"] = "public";
    ShareLevel["orgLevel"] = "orgLevel";
    ShareLevel["private"] = "private";
})(ShareLevel || (ShareLevel = {}));
class BaseAssetModel {
    constructor() {
        this.isCached = false;
        this.isDisabled = false;
        this._isHidden = false;
        this.isUserPinned = false;
        this.renameState = 'none';
    }
    get normalizedTitle() {
        // used by HS for searching files
        return this.title.normalize();
    }
    get uiType() {
        const { type } = Object(_utils_mimeTypes__WEBPACK_IMPORTED_MODULE_7__[/* getTypeFromMimeType */ "c"])(this.type, this.name);
        return type;
    }
    get docUriForHost() {
        return this.assetRef || this.cloudUri || this.path || this.localUri || this.id;
    }
    get isHidden() {
        return this._isHidden;
    }
    get isProject() {
        return this.type === _utils_constants__WEBPACK_IMPORTED_MODULE_4__[/* PROJECT_MIMETYPE */ "j"];
    }
    get isFolder() {
        return _utils_constants__WEBPACK_IMPORTED_MODULE_4__[/* FOLDER_MIMETYPES */ "f"].includes(this.type);
    }
    get isFile() {
        return !_utils_constants__WEBPACK_IMPORTED_MODULE_4__[/* FOLDER_MIMETYPES */ "f"].includes(this.type);
    }
    get isWeblink() {
        return this.type === _utils_constants__WEBPACK_IMPORTED_MODULE_4__[/* WEBLINK_MIMETYPE */ "m"];
    }
    get isCanvas() {
        return this.type === _utils_constants__WEBPACK_IMPORTED_MODULE_4__[/* CANVAS_MIMETYPE */ "b"];
    }
    get isLibrary() {
        return this.type === _utils_constants__WEBPACK_IMPORTED_MODULE_4__[/* LIBRARY_MIMETYPE */ "g"];
    }
    /**
     * This is for UAP modes that support selection.
     * i.e. UAP will toggle between place embedded vs place links depending on if an artifact is selected
     */
    get isArtifact() {
        return _utils_constants__WEBPACK_IMPORTED_MODULE_4__[/* ARTIFACT_MIMETYPES */ "a"].includes(this.type);
    }
    get isRenaming() {
        return this.renameState === 'renaming';
    }
    setName(name, displayName, path) {
        this.displayName = displayName;
        this.name = name;
        this.title = displayName;
        this.path = path;
    }
    setTitle(title) {
        this.title = title;
    }
    setIsHidden(isHidden) {
        this._isHidden = isHidden;
    }
    setIsDisabled(isDisabled) {
        this.isDisabled = isDisabled;
    }
    setIsUserPinned(isUserPinned) {
        this.isUserPinned = isUserPinned;
    }
    setRendition(renditionUrl, etag) {
        this.rendition = renditionUrl;
        if (etag) {
            this.renditionEtag = etag;
        }
    }
    setModifiedDate(date) {
        this.modifiedDate = date;
    }
    setType(type) {
        this.type = type;
    }
    setShareLevel(level) {
        this.shareLevel = level;
    }
    setShareCount(count) {
        this.shareCount = count;
    }
    setLastFetchedCollaborators() {
        this.lastCollaboratorsFetch = new Date();
    }
    setHasFetchedRendition(isFetched) {
        this.hasFetchedRendition = isFetched;
    }
    setInvalidRendition() {
        this.isInvalidRendition = true;
    }
    setFetchingRendition(isFetching) {
        this.isFetchingRendition = isFetching;
    }
    renameStart(renameCallbacks) {
        this.renameState = 'renaming';
        this.renameCallbacks = renameCallbacks;
    }
    renameInProgress() {
        this.renameState = 'pending';
    }
    renameEnd() {
        this.renameState = 'none';
        this.renameCallbacks = undefined;
    }
    setPreviousEtag(etag) {
        this.previousEtag = etag;
    }
    async loadShareInfo() {
        var _a, _b;
        const collaboratorSource = (_a = _stores_SharedStore__WEBPACK_IMPORTED_MODULE_5__[/* sharedStore */ "d"].collaborationContext) === null || _a === void 0 ? void 0 : _a.getCollaborators(this.id);
        // Invitations service GET api/v4/share will lead to call to the ABS / IMS.
        // Refresh at most once per 5 minutes to prevent IMS throttling (SAM-1959)
        const list = await Object(_utils_SAMUtils__WEBPACK_IMPORTED_MODULE_6__[/* loadList */ "a"])(collaboratorSource, _ccx_public_shared_asset_model_js__WEBPACK_IMPORTED_MODULE_1__[/* CollaboratorOrder */ "h"].default, undefined, {
            refreshTimeout: _utils_constants__WEBPACK_IMPORTED_MODULE_8__[/* FIVE_MINUTES */ "i"],
            loadAllPages: true,
        });
        const items = list === null || list === void 0 ? void 0 : list.items;
        if (items === null || items === void 0 ? void 0 : items.some(value => value.id === 'all' && value.isDirect)) {
            this.setShareLevel(ShareLevel.public);
        }
        else if (items === null || items === void 0 ? void 0 : items.some(value => value.id === 'orgEverybody' && value.isDirect)) {
            this.setShareLevel(ShareLevel.orgLevel);
        }
        else {
            this.setShareLevel(ShareLevel.private);
        }
        this.setShareCount((_b = items === null || items === void 0 ? void 0 : items.filter(value => value.type !== 'predefinedPrincipal' && value.isDirect).length) !== null && _b !== void 0 ? _b : 0);
    }
    async rename(name) { }
    async archive() { }
    async restore(name) { }
    preloadRendition() {
        // Make sure the rendition gets loaded.
        this.getRendition();
    }
}
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", Object)
], BaseAssetModel.prototype, "assetRef", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", Object)
], BaseAssetModel.prototype, "cloudUri", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", typeof (_a = typeof Date !== "undefined" && Date) === "function" ? _a : Object)
], BaseAssetModel.prototype, "createDate", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", String)
], BaseAssetModel.prototype, "displayName", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", String)
], BaseAssetModel.prototype, "etag", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", String)
], BaseAssetModel.prototype, "fileExtension", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", String)
], BaseAssetModel.prototype, "fileTrueExtension", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", Boolean)
], BaseAssetModel.prototype, "hasSize", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", String)
], BaseAssetModel.prototype, "id", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", Boolean)
], BaseAssetModel.prototype, "isAvailableOffline", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", typeof (_b = typeof Date !== "undefined" && Date) === "function" ? _b : Object)
], BaseAssetModel.prototype, "modifiedDate", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", String)
], BaseAssetModel.prototype, "name", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", String)
], BaseAssetModel.prototype, "path", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", Object)
], BaseAssetModel.prototype, "rendition", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", typeof (_c = typeof Date !== "undefined" && Date) === "function" ? _c : Object)
], BaseAssetModel.prototype, "repoModifiedDate", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", String)
], BaseAssetModel.prototype, "repositoryId", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", Number)
], BaseAssetModel.prototype, "size", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", typeof (_d = typeof _ccx_public_shared_asset_model_js__WEBPACK_IMPORTED_MODULE_1__[/* AssetSyncStatus */ "f"] !== "undefined" && _ccx_public_shared_asset_model_js__WEBPACK_IMPORTED_MODULE_1__[/* AssetSyncStatus */ "f"]) === "function" ? _d : Object)
], BaseAssetModel.prototype, "syncStatus", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", String)
], BaseAssetModel.prototype, "title", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", String)
], BaseAssetModel.prototype, "type", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", Boolean)
], BaseAssetModel.prototype, "bookmarked", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", String)
], BaseAssetModel.prototype, "color", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", Number)
], BaseAssetModel.prototype, "contributorCount", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", typeof (_e = typeof _stores_constants__WEBPACK_IMPORTED_MODULE_3__[/* DocumentState */ "a"] !== "undefined" && _stores_constants__WEBPACK_IMPORTED_MODULE_3__[/* DocumentState */ "a"]) === "function" ? _e : Object)
], BaseAssetModel.prototype, "docState", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", Object)
], BaseAssetModel.prototype, "externalData", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", Boolean)
], BaseAssetModel.prototype, "hasFetchedRendition", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", String)
], BaseAssetModel.prototype, "href", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", Boolean)
], BaseAssetModel.prototype, "isCached", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", Object)
], BaseAssetModel.prototype, "isDisabled", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", Boolean)
], BaseAssetModel.prototype, "isFetchingRendition", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", Boolean)
], BaseAssetModel.prototype, "_isHidden", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", Boolean)
], BaseAssetModel.prototype, "isInvalidRendition", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", Object)
], BaseAssetModel.prototype, "isUserPinned", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", Object)
], BaseAssetModel.prototype, "lastCollaboratorsFetch", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", Object)
], BaseAssetModel.prototype, "links", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", String)
], BaseAssetModel.prototype, "localUri", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", Array)
], BaseAssetModel.prototype, "policy", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", String)
], BaseAssetModel.prototype, "previousEtag", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", Object)
], BaseAssetModel.prototype, "renameCallbacks", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", String)
], BaseAssetModel.prototype, "renameState", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", String)
], BaseAssetModel.prototype, "renditionEtag", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", Object)
], BaseAssetModel.prototype, "renditionGridMain", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", Object)
], BaseAssetModel.prototype, "renditionGridTiles", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", String)
], BaseAssetModel.prototype, "renditionTemplate", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", Object)
], BaseAssetModel.prototype, "role", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", Number)
], BaseAssetModel.prototype, "shareCount", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", typeof (_g = typeof Date !== "undefined" && Date) === "function" ? _g : Object)
], BaseAssetModel.prototype, "shareDate", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", Object)
], BaseAssetModel.prototype, "shareLevel", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", String)
], BaseAssetModel.prototype, "spacesSection", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", String)
], BaseAssetModel.prototype, "stableUri", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", Number)
], BaseAssetModel.prototype, "version", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", String),
    __metadata("design:paramtypes", [])
], BaseAssetModel.prototype, "normalizedTitle", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], BaseAssetModel.prototype, "uiType", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", String),
    __metadata("design:paramtypes", [])
], BaseAssetModel.prototype, "docUriForHost", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], BaseAssetModel.prototype, "isHidden", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [])
], BaseAssetModel.prototype, "isProject", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [])
], BaseAssetModel.prototype, "isFolder", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [])
], BaseAssetModel.prototype, "isFile", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [])
], BaseAssetModel.prototype, "isWeblink", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [])
], BaseAssetModel.prototype, "isCanvas", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [])
], BaseAssetModel.prototype, "isLibrary", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [])
], BaseAssetModel.prototype, "isArtifact", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [])
], BaseAssetModel.prototype, "isRenaming", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [String, String, String]),
    __metadata("design:returntype", void 0)
], BaseAssetModel.prototype, "setName", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [String]),
    __metadata("design:returntype", void 0)
], BaseAssetModel.prototype, "setTitle", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [Boolean]),
    __metadata("design:returntype", void 0)
], BaseAssetModel.prototype, "setIsHidden", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [Boolean]),
    __metadata("design:returntype", void 0)
], BaseAssetModel.prototype, "setIsDisabled", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [Boolean]),
    __metadata("design:returntype", void 0)
], BaseAssetModel.prototype, "setIsUserPinned", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [String, String]),
    __metadata("design:returntype", void 0)
], BaseAssetModel.prototype, "setRendition", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [typeof (_h = typeof Date !== "undefined" && Date) === "function" ? _h : Object]),
    __metadata("design:returntype", void 0)
], BaseAssetModel.prototype, "setModifiedDate", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [String]),
    __metadata("design:returntype", void 0)
], BaseAssetModel.prototype, "setType", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [String]),
    __metadata("design:returntype", void 0)
], BaseAssetModel.prototype, "setShareLevel", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [Object]),
    __metadata("design:returntype", void 0)
], BaseAssetModel.prototype, "setShareCount", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", []),
    __metadata("design:returntype", void 0)
], BaseAssetModel.prototype, "setLastFetchedCollaborators", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [Boolean]),
    __metadata("design:returntype", void 0)
], BaseAssetModel.prototype, "setHasFetchedRendition", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", []),
    __metadata("design:returntype", void 0)
], BaseAssetModel.prototype, "setInvalidRendition", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [Boolean]),
    __metadata("design:returntype", void 0)
], BaseAssetModel.prototype, "setFetchingRendition", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [typeof (_j = typeof _Rename__WEBPACK_IMPORTED_MODULE_2__["IRenameCallbacks"] !== "undefined" && _Rename__WEBPACK_IMPORTED_MODULE_2__["IRenameCallbacks"]) === "function" ? _j : Object]),
    __metadata("design:returntype", void 0)
], BaseAssetModel.prototype, "renameStart", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", []),
    __metadata("design:returntype", void 0)
], BaseAssetModel.prototype, "renameInProgress", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", []),
    __metadata("design:returntype", void 0)
], BaseAssetModel.prototype, "renameEnd", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [Object]),
    __metadata("design:returntype", void 0)
], BaseAssetModel.prototype, "setPreviousEtag", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", []),
    __metadata("design:returntype", Promise)
], BaseAssetModel.prototype, "loadShareInfo", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", []),
    __metadata("design:returntype", void 0)
], BaseAssetModel.prototype, "preloadRendition", null);
/* harmony default export */ __webpack_exports__["b"] = (BaseAssetModel);


/***/ }),

/***/ "qr5y":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("path", {
  d: "M44 32v-1.609c0-5.186-4.205-10.061-9.382-10.372A10 10 0 0 0 24 30v2a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h20a2 2 0 0 0 2-2V34a2 2 0 0 0-2-2zm-16-2a6 6 0 0 1 12 0v2H28zm8 10.222V43a1 1 0 0 1-1 1h-2a1 1 0 0 1-1-1v-2.779a3 3 0 1 1 4 0zM30.72 5.227a8.325 8.325 0 0 0-2.288.338c1.729 2.17 2.851 5.273 2.851 9.552 0 .383-.023.772-.048 1.161a13.93 13.93 0 0 1 6.664.279 14.357 14.357 0 0 0 .239-2.429c0-6.048-2.954-8.901-7.418-8.901zm-11.52 0c-4.96 0-8.336 3.317-8.336 9.89a16.924 16.924 0 0 0 3.126 9.469 1.943 1.943 0 0 1 .435 1.2v2.683a1.947 1.947 0 0 1-1.67 1.887C2.071 31.494 0 38.7 0 41.6V44h18V33a5 5 0 0 1 2.037-4.025A14.01 14.01 0 0 1 27.2 17.781a16.047 16.047 0 0 0 .242-2.665C27.441 8.4 24.159 5.227 19.2 5.227z"
}));

/***/ }),

/***/ "qrd5":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return getWhatsNewContent; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return getUserIntentDialogContent; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return getToastContent; });
/* harmony import */ var _Sophia__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("nm0P");
/* harmony import */ var _stores_MainStore__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("cCFZ");
/* harmony import */ var src_components_start_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("/0Ih");
/* harmony import */ var _iaw_analytics__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("RGcl");
/* harmony import */ var _Ututs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("gh7h");
/* harmony import */ var _iaw_HomescreenError__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("LDAD");
/* harmony import */ var _applications_DeeplinkLaunch__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("/xJe");
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/







function getWhatsNewContent() {
    var _a;
    const whatsNewData = _stores_MainStore__WEBPACK_IMPORTED_MODULE_1__["mainStore"].sidekickStore.whatsNewOverride ||
        _Sophia__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].getSurfaceContent(src_components_start_constants__WEBPACK_IMPORTED_MODULE_2__[/* default */ "k"].SURFACES.WHATS_NEW);
    const whatsNewAnalyticsContainer = _Sophia__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].getAnalyticsData(src_components_start_constants__WEBPACK_IMPORTED_MODULE_2__[/* default */ "k"].SURFACES.WHATS_NEW);
    if ((_a = whatsNewData === null || whatsNewData === void 0 ? void 0 : whatsNewData.data) === null || _a === void 0 ? void 0 : _a.componentwhatsnewtoastalByPath) {
        const toastal = {
            ...whatsNewData.data.componentwhatsnewtoastalByPath.item,
            containerAnalyticsParams: whatsNewAnalyticsContainer,
        };
        // Checking for assets readiness
        if (!_stores_MainStore__WEBPACK_IMPORTED_MODULE_1__["mainStore"].sidekickStore.whatsNewOverride) {
            try {
                const toastalPages = toastal.toastalPages;
                const assetsReady = toastalPages.every(item => item.backgroundImage._path);
                return assetsReady ? toastal : null;
            }
            catch (e) {
                return;
            }
        }
        return toastal;
    }
}
function getUserIntentDialogContent() {
    var _a, _b, _c;
    const userIntentRecommendations = _Ututs__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].userIntentRecommendations;
    const containerAnalyticsParams = _Ututs__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].userIntentContainerAnalyticsParams;
    const recommendations = (_b = (_a = userIntentRecommendations === null || userIntentRecommendations === void 0 ? void 0 : userIntentRecommendations.items) === null || _a === void 0 ? void 0 : _a.map) === null || _b === void 0 ? void 0 : _b.call(_a, rec => {
        var _a, _b, _c, _d, _e, _f, _g, _h, _j;
        return {
            // rec.title for helpx playlists and rec.metadata?.title for ututs assets
            headerText: rec.title || ((_a = rec.metadata) === null || _a === void 0 ? void 0 : _a.title),
            // rec.description for helpx playlists and rec.metadata for ututs assets
            descriptionText: rec.description || ((_c = (_b = rec.metadata) === null || _b === void 0 ? void 0 : _b.descriptions) === null || _c === void 0 ? void 0 : _c.long) || ((_d = rec.metadata) === null || _d === void 0 ? void 0 : _d.description),
            hero: rec.hero,
            heroPath: rec.heroPath,
            thumbnailPath: rec.thumbnailPath,
            primaryCTA: {
                title: `user_intent_rec_${(_e = rec.content.type) === null || _e === void 0 ? void 0 : _e.toLowerCase()}_cta`,
                ctaDeeplinkData: {
                    source: _applications_DeeplinkLaunch__WEBPACK_IMPORTED_MODULE_6__[/* ctaEventsMap */ "b"][rec.content.type],
                    data: {
                        aemID: rec.aem_id || ((_f = rec.content) === null || _f === void 0 ? void 0 : _f.id),
                        title: (_g = rec.metadata) === null || _g === void 0 ? void 0 : _g.title,
                        metadata: rec.metadata,
                        content: rec.content,
                        ctaUrl: (_j = (_h = rec.metadata) === null || _h === void 0 ? void 0 : _h.urls) === null || _j === void 0 ? void 0 : _j.helpx,
                        ...(rec.content.type === 'playlist' && {
                            view: 'browse',
                            playlist: rec.title,
                        }),
                    },
                },
            },
            // used for analytics
            contentType: rec.content.type,
            recommendationMetadata: {
                level: rec.level,
                categories: rec.categories,
            },
        };
    });
    return {
        edition: _Ututs__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].userIntentEdition,
        questionnaire: _Ututs__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].userIntentQuestionnaire,
        recommendations: {
            ...userIntentRecommendations,
            items: (_c = recommendations === null || recommendations === void 0 ? void 0 : recommendations.filter) === null || _c === void 0 ? void 0 : _c.call(recommendations, rec => rec),
        },
        containerAnalyticsParams,
    };
}
function getToastContent({ shouldLogErrorEvent = false }) {
    var _a;
    const toastContent = _stores_MainStore__WEBPACK_IMPORTED_MODULE_1__["mainStore"].sidekickStore.toastOverride || _Sophia__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].getSurfaceContent(src_components_start_constants__WEBPACK_IMPORTED_MODULE_2__[/* default */ "k"].SURFACES.TOAST);
    let toast = null;
    if (toastContent) {
        try {
            toast = toastContent.data.componenttoastByPath.item;
        }
        catch (err) {
            // There is a Toast Surface returned but the content is not coming in
            if (shouldLogErrorEvent) {
                const errorMessage = `Toast: ${typeof toastContent} Content: ${!!(toastContent && toastContent.content)} Items: ${!!((_a = toastContent === null || toastContent === void 0 ? void 0 : toastContent.content) === null || _a === void 0 ? void 0 : _a.items)}`;
                const homeScreenError = new _iaw_HomescreenError__WEBPACK_IMPORTED_MODULE_5__[/* HomescreenError */ "a"](
                // Error stack is not particularly useful for this case
                // Sending information about toast instead
                `${err} ${errorMessage}`, 'toast-content', _iaw_HomescreenError__WEBPACK_IMPORTED_MODULE_5__[/* HomescreenErrorCodes */ "b"].TOAST_CONTENT_FAILED);
                _iaw_analytics__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].logErrorEvent('toast', { error: homeScreenError });
            }
        }
    }
    return toast;
}


/***/ }),

/***/ "qv4D":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return SortArrow; });
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("TSYQ");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("VIzJ");
/* harmony import */ var _react_react_spectrum_Button__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("Cn9g");
/* harmony import */ var _react_react_spectrum_Button__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Button__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _react_react_spectrum_Icon_ChevronDown__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("uXGE");
/* harmony import */ var _react_react_spectrum_Icon_ChevronDown__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Icon_ChevronDown__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var _spectrum_spectrum_iconstore_icons_react_core_ArrowDownSmall__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("h6/1");
/* harmony import */ var _spectrum_spectrum_iconstore_icons_react_core_ArrowDownSmall__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_spectrum_spectrum_iconstore_icons_react_core_ArrowDownSmall__WEBPACK_IMPORTED_MODULE_5__);
/* harmony import */ var _spectrum_spectrum_iconstore_icons_react_core_ArrowUpSmall__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("PaYk");
/* harmony import */ var _spectrum_spectrum_iconstore_icons_react_core_ArrowUpSmall__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_spectrum_spectrum_iconstore_icons_react_core_ArrowUpSmall__WEBPACK_IMPORTED_MODULE_6__);
/* harmony import */ var _react_react_spectrum_Dropdown__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("T1rY");
/* harmony import */ var _react_react_spectrum_Dropdown__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Dropdown__WEBPACK_IMPORTED_MODULE_7__);
/* harmony import */ var _react_react_spectrum_Menu__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("kzNO");
/* harmony import */ var _react_react_spectrum_Menu__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Menu__WEBPACK_IMPORTED_MODULE_8__);
/* harmony import */ var _packages_CDOView_stores_constants__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__("q0hk");










const styles = __webpack_require__("j5l7");
const locStrings = {
    modifiedDate: 'header.DateModified',
    createDate: 'header.DateCreated',
    createdDate: 'header.DateCreated',
    name: 'header.Name',
};
const SortArrow = ({ activeSortDirection }) => activeSortDirection === _packages_CDOView_stores_constants__WEBPACK_IMPORTED_MODULE_9__[/* UXSortDir */ "h"].desc ? (react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_spectrum_spectrum_iconstore_icons_react_core_ArrowDownSmall__WEBPACK_IMPORTED_MODULE_5___default.a, { size: "XS", className: styles.sortArrow })) : (react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_spectrum_spectrum_iconstore_icons_react_core_ArrowUpSmall__WEBPACK_IMPORTED_MODULE_6___default.a, { size: "XS", className: styles.sortArrow }));
function SortList({ onSelect, options, sortBy, sortDirection }) {
    return (react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_1___default.a.Fragment, null, options.map(option => {
        const selected = option === sortBy;
        return (react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_react_react_spectrum_Menu__WEBPACK_IMPORTED_MODULE_8__["MenuItem"], { value: option, onSelect: onSelect, className: classnames__WEBPACK_IMPORTED_MODULE_0___default()(styles.sortDropdownItem, {
                ['is-selected']: selected,
            }) },
            react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_2__[/* FormattedMessage */ "c"], { id: locStrings[option] }),
            selected && react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(SortArrow, { activeSortDirection: sortDirection })));
    })));
}
function SortDropdown({ options, sortBy, sortDirection, id, onSelect }) {
    return (react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", { className: styles.sortDropdown },
        react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("label", { htmlFor: id },
            react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_2__[/* FormattedMessage */ "c"], { id: "header.SortBy" })),
        ' ',
        react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_react_react_spectrum_Dropdown__WEBPACK_IMPORTED_MODULE_7___default.a, { className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('spectrum-Dropdown', 'spectrum-Dropdown--quiet', 'react-spectrum-Dropdown-flexible'), onSelect: onSelect },
            react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_react_react_spectrum_Button__WEBPACK_IMPORTED_MODULE_3___default.a, { className: styles.sortByButton, id: id, quiet: true, type: "button", variant: "field" },
                react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("span", null,
                    react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_2__[/* FormattedMessage */ "c"], { id: locStrings[sortBy] })),
                react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_react_react_spectrum_Icon_ChevronDown__WEBPACK_IMPORTED_MODULE_4___default.a, { size: "S", className: "spectrum-Dropdown-icon" })),
            react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_react_react_spectrum_Menu__WEBPACK_IMPORTED_MODULE_8__["Menu"], null,
                react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(SortList, { options: options, onSelect: onSelect, sortBy: sortBy, sortDirection: sortDirection })))));
}
/* harmony default export */ __webpack_exports__["b"] = (Object(react_intl__WEBPACK_IMPORTED_MODULE_2__[/* injectIntl */ "g"])(SortDropdown));


/***/ }),

/***/ "r+Wy":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("TSYQ");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_1__);


const DEFAULT_SIZE = {
    width: 120,
    height: 120,
};
const NoConnection = ({ height = DEFAULT_SIZE.height, width = DEFAULT_SIZE.width, className = '', }) => (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("svg", { className: classnames__WEBPACK_IMPORTED_MODULE_1___default()('NoConnection', className), xmlns: "http://www.w3.org/2000/svg", width: width, height: height, viewBox: `0 0 ${height} ${width}` },
    react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", { d: "M106.49561,69.17578a16.99839,16.99839,0,0,1-6.38184,13.39258,18.57607,18.57607,0,0,1-11.14063,4.43457L25.39746,87c-5.29687,0-8.35986-2.18945-9.99658-4.02637a1.50025,1.50025,0,1,1,2.24023-1.99609C19.42773,82.9834,22.0376,84,25.39746,84l63.57568.00293c5.21192,0,14.52247-4.95508,14.52247-14.82715,0-6.74414-4.86573-16.24219-15.6836-16.24219a1.50025,1.50025,0,0,1-1.4707-1.79589,14.12031,14.12031,0,0,0,.27685-2.65332A18.11258,18.11258,0,0,0,68.6084,30.31445h-.11914c-15.62158,0-19.64649,14.35157-19.81055,14.96485a1.50016,1.50016,0,0,1-1.8418,1.05859,19.98086,19.98086,0,0,0-5.23388-.69727,16.02434,16.02434,0,0,0-12.48682,5.68165A1.5,1.5,0,0,1,26.7998,49.416,19.01066,19.01066,0,0,1,41.603,42.64062a23.03157,23.03157,0,0,1,4.60937.4668c2.25342-6.45117,8.98731-15.793,22.27735-15.793h.13232A21.11737,21.11737,0,0,1,89.61816,48.50488c-.00439.50782-.03173,1.0166-.08154,1.52246C97.09082,50.834,106.49561,56.8623,106.49561,69.17578Zm-81.5879,5.19629a1.49984,1.49984,0,0,0,2.1211-2.12109l-6.70752-6.708,6.70752-6.707a1.49984,1.49984,0,0,0-2.1211-2.1211l-6.70751,6.707-6.70752-6.707a1.49984,1.49984,0,0,0-2.1211,2.1211l6.70752,6.707L9.37158,72.251a1.49984,1.49984,0,1,0,2.1211,2.12109l6.70752-6.708Z" })));
/* harmony default export */ __webpack_exports__["a"] = (NoConnection);


/***/ }),

/***/ "r+vD":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) {
  return typeof obj;
} : function (obj) {
  return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
};

var _createClass = function () {
  function defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i];
      descriptor.enumerable = descriptor.enumerable || false;
      descriptor.configurable = true;
      if ("value" in descriptor) descriptor.writable = true;
      Object.defineProperty(target, descriptor.key, descriptor);
    }
  }

  return function (Constructor, protoProps, staticProps) {
    if (protoProps) defineProperties(Constructor.prototype, protoProps);
    if (staticProps) defineProperties(Constructor, staticProps);
    return Constructor;
  };
}();
/**
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe. All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe Inc. and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe Inc.
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Inc.
 */


var _lodash = __webpack_require__("2oH+");

var _lodash2 = _interopRequireDefault(_lodash);

var _v = __webpack_require__("xDdU");

var _v2 = _interopRequireDefault(_v);

var _ingest = __webpack_require__("7eMN");

var _ingest2 = _interopRequireDefault(_ingest);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _classCallCheck(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}
/**
 * IngestController class
 */


var IngestController = function () {
  /**
   * Constructor for IngestController
   * @param {object} props - base data object based on SDM
   * @returns {undefined}
   */
  function IngestController(props) {
    _classCallCheck(this, IngestController);

    var token = props.token;
    var onLog = props.onLog;

    if (!props.apiInstance) {
      var dependencies = {
        getAccessToken: function getAccessToken(cb) {
          cb(null, token);
        },
        log: function log(message) {
          onLog && onLog(message);
        }
      };
      var options = {
        ENVIRONMENT: props.env,
        ALLOW_NO_TOKEN: props.allowNoToken,
        ANALYTICS_API_KEY: props.apiKey,
        ANALYTICS_PROJECT: props.project,
        ANALYTICS_X_PRODUCT: props.product,
        ANALYTICS_X_PRODUCT_LOCATION: props.productLocation,
        ANALYTICS_MAX_QUEUED_EVENTS: props.maxQueuedEvents,
        ANALYTICS_DEBOUNCE: props.debounce,
        ANALYTICS_USER_REGION: props.userRegion,
        ANALYTICS_INGEST_TYPE: props.ingestType,
        TIMESTAMP_PROPERTY_NAME: props.timestampPropertyName
      };
      var apiInstance = new _ingest2.default(dependencies, options);
      apiInstance.enable(true);
      this._ingestApi = apiInstance;
    } else {
      this._ingestApi = props.apiInstance;
    }

    this.updateData(props.data);
    this._sessionGuid = (0, _v2.default)();
  }
  /**
   * Function to update data
   * @param {object} data - data to update the base data object
   * @returns {undefined}
   */


  _createClass(IngestController, [{
    key: 'updateData',
    value: function updateData(data) {
      this._baseData = data;
    }
    /**
     * Private function to flatten an object
     * @param {object} nestedObj - object to be flattened
     * @param {object} flatObj - object is being flattened
     * @param {object} curPrefix - key prefix used for flattening
     * @returns {object} flattened object
     */

  }, {
    key: '_flattenObj',
    value: function _flattenObj(nestedObj, flatObj, curPrefix) {
      var _this = this;

      Object.keys(nestedObj).forEach(function (key) {
        var value = nestedObj[key];
        var newKey = curPrefix ? curPrefix + '.' + key : key;

        if (value && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && !(value instanceof Date)) {
          _this._flattenObj(value, flatObj, newKey);
        } else {
          flatObj[newKey] = value;
        }
      });
      return flatObj;
    }
    /**
     * Function to fire an event to Ingest
     * @param {object} augmentedData - object to augment base data set for event
     * @param {boolean} fireImmediately - indication if we should immediately fire
     * @param {object} options - optional project override block (params outside payload)
     * @returns {object} promise for event being fired
     */

  }, {
    key: 'fireEvent',
    value: function fireEvent() {
      var augmentedData = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};

      var _this2 = this;

      var fireImmediately = arguments[1];
      var options = arguments[2];
      return new Promise(function (resolve, reject) {
        var result = {};
        var sdmJsonData = _this2._baseData || {};

        if (!sdmJsonData.event) {
          sdmJsonData.event = {};
        }

        sdmJsonData.event.session_guid = _this2._sessionGuid;
        sdmJsonData.event.guid = (0, _v2.default)();
        (0, _lodash2.default)(result, sdmJsonData, augmentedData);

        var flattenedBody = _this2._flattenObj(result, {});

        var cb = function cb(err) {
          if (!err) {
            resolve(flattenedBody);
          } else {
            reject(err);
          }
        };

        _this2._ingestApi.postEvent(flattenedBody, !fireImmediately ? cb : undefined, options);

        if (fireImmediately) {
          _this2._ingestApi.flush(true, cb);
        }
      });
    }
  }]);

  return IngestController;
}();

exports.default = IngestController;

/***/ }),

/***/ "r/9v":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("path", {
  d: "M26.485 6.686L18 15.172 9.515 6.686a1 1 0 0 0-1.414 0L6.686 8.1a1 1 0 0 0 0 1.414L15.172 18l-8.486 8.485a1 1 0 0 0 0 1.414L8.1 29.314a1 1 0 0 0 1.414 0L18 20.828l8.485 8.485a1 1 0 0 0 1.414 0l1.415-1.413a1 1 0 0 0 0-1.414L20.828 18l8.485-8.485a1 1 0 0 0 0-1.414L27.9 6.686a1 1 0 0 0-1.415 0z"
}));

/***/ }),

/***/ "r0HJ":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _react_react_spectrum_OverlayTrigger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("uYrR");
/* harmony import */ var _react_react_spectrum_OverlayTrigger__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_OverlayTrigger__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _react_react_spectrum_Tooltip__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("DUuf");
/* harmony import */ var _react_react_spectrum_Tooltip__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Tooltip__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _react_react_spectrum_Textfield__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("WgUl");
/* harmony import */ var _react_react_spectrum_Textfield__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Textfield__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _utils_stop_propagation__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("hLgr");
/* harmony import */ var _utils_validate_filename__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("AXVi");
/* harmony import */ var _utils_constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("a375");
/* harmony import */ var _styles_Rename_css__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("Mk/p");
/* harmony import */ var _styles_Rename_css__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_styles_Rename_css__WEBPACK_IMPORTED_MODULE_7__);








class Rename extends react__WEBPACK_IMPORTED_MODULE_0__["Component"] {
    constructor() {
        super(...arguments);
        this.state = {
            name: this.props.name,
            validationStatus: undefined,
            hasSubmitted: false,
        };
        this.handleChange = (name) => {
            this.setState({ name });
        };
        this.handleKeyDown = (e) => {
            let stopAllPropagation = false;
            switch (e.key) {
                case ' ':
                    stopAllPropagation = true;
                    break;
                case 'Escape':
                    stopAllPropagation = true;
                    this.cancelRename();
                    break;
                case 'Enter':
                    stopAllPropagation = true;
                    this.onSubmit();
                    break;
                default:
                    break;
            }
            if (stopAllPropagation) {
                Object(_utils_stop_propagation__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"])(e, true);
            }
        };
        this.handleOnBlur = () => {
            this.onSubmit();
        };
    }
    componentDidUpdate(prevProps) {
        const { name, isRenaming } = this.props;
        const { validationStatus } = this.state;
        // If the prop.name changed, then the model changed.
        // Even if the user's input hasn't been saved, it should show the updated name.
        if (prevProps.name !== name) {
            // eslint-disable-next-line react/no-did-update-set-state
            this.setState({ name, validationStatus: undefined });
        }
        // Exiting rename,
        if (prevProps.isRenaming && !isRenaming) {
            // assume we only want to reset validationStatus ahd hasSubmitted
            const newState = {
                validationStatus: undefined,
                hasSubmitted: false,
            };
            // if not valid, or cancelling without submitting, restore the original name
            if (validationStatus && validationStatus !== _utils_validate_filename__WEBPACK_IMPORTED_MODULE_5__[/* ValidationStatus */ "c"].valid) {
                newState.name = name;
            }
            // eslint-disable-next-line react/no-did-update-set-state
            this.setState(newState);
        }
    }
    cancelRename() {
        const { onRenameCancel, name: originalName } = this.props;
        this.setState({
            name: originalName,
        });
        onRenameCancel();
    }
    onSubmit() {
        const { name: originalName, onRenameSubmit, nameValidator, element } = this.props;
        const { name: newName, hasSubmitted } = this.state;
        // Prevent double-firing from blur and keydown
        if (hasSubmitted) {
            return;
        }
        const validationStatus = nameValidator(newName);
        if (newName === originalName || newName === '') {
            this.cancelRename();
        }
        else if (validationStatus === _utils_validate_filename__WEBPACK_IMPORTED_MODULE_5__[/* ValidationStatus */ "c"].valid) {
            this.setState({ hasSubmitted: true, validationStatus: undefined });
            onRenameSubmit(element, newName, () => this.cancelRename());
        }
        else {
            this.setState({ validationStatus });
        }
    }
    // Break into its own function to make it testable
    renderTooltip() {
        const { name } = this.state;
        const { tooltip = name } = this.props;
        // Default to &nbsp; as empty tooltip can cause a fatal error. This should never happen.
        return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_react_react_spectrum_Tooltip__WEBPACK_IMPORTED_MODULE_2___default.a, { className: "CDO-ItemTitleTooltip" }, tooltip || '&nbsp;');
    }
    renderOverlayTrigger(children) {
        const { name } = this.state;
        const { isRenaming, tooltip = name } = this.props;
        return (react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_react_react_spectrum_OverlayTrigger__WEBPACK_IMPORTED_MODULE_1___default.a, { placement: "bottom left", trigger: ['hover'], disabled: isRenaming || !tooltip, delayShow: _utils_constants__WEBPACK_IMPORTED_MODULE_6__[/* DEFAULT_TOOLTIP_DELAY */ "e"] },
            children,
            this.renderTooltip()));
    }
    /**
     * Component renderer.
     * @return {ReactElement} markup
     */
    render() {
        const { name, validationStatus } = this.state;
        const { isRenaming } = this.props;
        // RS Textfield starts with '' as its default for validationState, but its
        // propTypes do not allow it, so to prevent spurious React warning, only pass
        // validationState if there is something to show
        const validationStateProp = validationStatus && {
            validationState: _utils_validate_filename__WEBPACK_IMPORTED_MODULE_5__[/* ReactSpectrumValidationState */ "a"].invalid,
        };
        return this.renderOverlayTrigger(react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", { className: "rename" }, isRenaming ? (react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_react_react_spectrum_Textfield__WEBPACK_IMPORTED_MODULE_3___default.a, Object.assign({ className: "nameInput", defaultPreventedKeys: ['Escape'] }, validationStateProp, { id: "Rename_Input", autoFocus: true, value: name, onClick: _utils_stop_propagation__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"], onChange: this.handleChange, onKeyDown: this.handleKeyDown, onBlur: this.handleOnBlur, onDragStart: _utils_stop_propagation__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"], onDoubleClick: _utils_stop_propagation__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"] }))) : (name)));
    }
}
/* harmony default export */ __webpack_exports__["a"] = (Rename);


/***/ }),

/***/ "r1jx":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return measure; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return LogPerformance; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return Time; });
/* unused harmony export getRecord */
/* harmony import */ var iaw_analytics__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("RGcl");
/* harmony import */ var start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Db/q");
/* harmony import */ var _LoggerWrapper_Logger__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("43WE");
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/



/**
 * Property key constants
 */
const PROPERTY_KEYS = start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].KEYS;
const record = {};
const _logger = _LoggerWrapper_Logger__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].get('Performance');
/**
 * Wrapper to manually time an asynchronous function.
 * @param name Key to time with
 * @param method Method to time
 */
async function measure(name, method) {
    const asyncFlow = console.AsyncTrace ? new console.AsyncTrace() : console;
    asyncFlow.time(name);
    const start = performance.now();
    const eventStartTime = new Date();
    _logger.log(`${start - window.perfGlobalStart} PERF - ${name} start`);
    record[name + ' start'] = start - window.perfGlobalStart;
    record[name + ' start_time'] = eventStartTime.toISOString();
    return await method().finally(() => {
        const done = performance.now();
        const time = done - start;
        logPerfEventToIngest(time, name, record[name + ' start_time']);
        _logger.log(`${done - window.perfGlobalStart} PERF - ${name} done: ${time}`);
        asyncFlow.timeEnd(name);
        record[name + ' done'] = done - window.perfGlobalStart;
    });
}
/**
 * Logs a message tagged with performance numbers
 * @param message Message to log
 */
function LogPerformance(message, eventStart) {
    const done = performance.now();
    const time = done - window.perfGlobalStart;
    logPerfEventToIngest(time, message, eventStart);
    _logger.log(`${time} PERF - ${message}`);
    record[message] = time;
}
/**
 * Decorator that times asynchronous functions
 * @param key Key to measure time with
 */
function Time(key) {
    return function (target, functionName, descriptor) {
        const x = descriptor.value;
        descriptor.value = async function (...args) {
            const self = this;
            await measure(key, async () => {
                await x.apply(self, args);
            });
        };
    };
}
/**
 * Logs a performance event to ingest with time and message
 * @param time Time duration to log
 * @param message Message to log
 * @param eventStart Optional parameter to set for the event start time. Default is current date/time
 */
async function logPerfEventToIngest(time, message, eventStart) {
    _logger.log(`log perf event: time: ${time} message: ${message}`);
    const start = new Date();
    iaw_analytics__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].postEvent({
        'event.type': PROPERTY_KEYS.EVENT_TYPE_PERF,
        'event.workflow': PROPERTY_KEYS.WORKFLOW_INITIALIZE,
        'event.subtype': PROPERTY_KEYS.SUBTYPE_COMPONENT,
        'event.subcategory': PROPERTY_KEYS.SUBCATEGORY_INIT,
        'content.status': time || null,
        'content.type': message || null,
        'event.dts_start': eventStart || start.toISOString(),
    });
    return;
}
/**
 * Gets a record of all the performance logging
 * done so far.
 */
function getRecord() {
    return record;
}


/***/ }),

/***/ "r3se":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _createClass = function () {
  function defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i];
      descriptor.enumerable = descriptor.enumerable || false;
      descriptor.configurable = true;
      if ("value" in descriptor) descriptor.writable = true;
      Object.defineProperty(target, descriptor.key, descriptor);
    }
  }

  return function (Constructor, protoProps, staticProps) {
    if (protoProps) defineProperties(Constructor.prototype, protoProps);
    if (staticProps) defineProperties(Constructor, staticProps);
    return Constructor;
  };
}();

var _DAO2 = __webpack_require__("io2S");

var _DAO3 = _interopRequireDefault(_DAO2);

var _utils = __webpack_require__("VKd2");

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _classCallCheck(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}

function _possibleConstructorReturn(self, call) {
  if (!self) {
    throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
  }

  return call && (typeof call === "object" || typeof call === "function") ? call : self;
}

function _inherits(subClass, superClass) {
  if (typeof superClass !== "function" && superClass !== null) {
    throw new TypeError("Super expression must either be null or a function, not " + typeof superClass);
  }

  subClass.prototype = Object.create(superClass && superClass.prototype, {
    constructor: {
      value: subClass,
      enumerable: false,
      writable: true,
      configurable: true
    }
  });
  if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;
}
/**
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 */


var InstanceConfig = {};
/**
 * The CollaborationsService class handles operation around collaborators.
 */

var CollaborationsService = function (_DAO) {
  _inherits(CollaborationsService, _DAO);

  function CollaborationsService() {
    _classCallCheck(this, CollaborationsService);

    return _possibleConstructorReturn(this, (CollaborationsService.__proto__ || Object.getPrototypeOf(CollaborationsService)).apply(this, arguments));
  }

  _createClass(CollaborationsService, [{
    key: 'update',

    /**
     * Update a collaborator
     * @param {Object} request - request object 
     *   @property {String} resourceUrl - CC Storage path (path based or ID-based)
     *   @property {String} userId - AdobeID of collaborator whose privileges need to be updated
     *   @property {String} role - Updated role to be granted to the collaborator
     *
     * @returns {Promise} A Promise that updates the collaborator for a particular resource URL
     */
    value: function update() {
      var request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
      var resourceUrl = request.resourceUrl,
          role = request.role,
          userId = request.userId;
      var url = this.endpoint + '/collaborators/' + (0, _utils.getUrlPath)(resourceUrl);
      var params = [{
        role: role,
        collaborator: userId
      }];
      return this.putRequest({
        url: url,
        params: params
      });
    }
    /**
     * Delete a collaborator
     * @param {String} resourceUrl - CC Storage path (path based or ID-based)
     * @param {String} userId - AdobeID of collaborator whose privileges need to be removed
     *
     * @returns {Promise} A Promise that removes the collaborator for a particular resource URL
     */

  }, {
    key: 'delete',
    value: function _delete(resourceUrl, userId) {
      var encodedRequestURI = '/collaborators/' + (0, _utils.getUrlPath)(resourceUrl) + '?collaborator=' + encodeURIComponent(userId);
      var url = '' + this.endpoint + encodedRequestURI;
      return this.deleteRequest({
        url: url
      });
    }
    /**
     * Delete all collaborators
     * @param {String} resourceUrl - CC Storage path (path based or ID-based)
     *
     * @returns {Promise} A Promise that removes all the collaborators for a particular resource URL
     */

  }, {
    key: 'deleteAll',
    value: function deleteAll(resourceUrl) {
      var url = '/collaborators/' + (0, _utils.getUrlPath)(resourceUrl);
      return this.deleteRequest({
        url: url
      });
    }
  }]);

  return CollaborationsService;
}(_DAO3.default);

exports.default = (0, _utils.InstanceCreator)(CollaborationsService, InstanceConfig);
module.exports = exports['default'];

/***/ }),

/***/ "r6G0":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _autobindDecorator = _interopRequireDefault(__webpack_require__("gKdT"));

var _calculatePosition = _interopRequireDefault(__webpack_require__("7zOy"));

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _filterDOMProps = _interopRequireDefault(__webpack_require__("Cv/Q"));

var _getContainer = _interopRequireDefault(__webpack_require__("eF//"));

var _ownerDocument = _interopRequireDefault(__webpack_require__("z9HI"));

var _Position = _interopRequireDefault(__webpack_require__("R55y"));

var _react = _interopRequireWildcard(__webpack_require__("q1tI"));

var _reactDom = _interopRequireDefault(__webpack_require__("i8i4"));

var _setOverlayOnProvider = _interopRequireDefault(__webpack_require__("l0xv"));

const _excluded = ["children", "className"];

var _class;

function _getRequireWildcardCache(nodeInterop) {
  if (typeof WeakMap !== "function") return null;
  var cacheBabelInterop = new WeakMap();
  var cacheNodeInterop = new WeakMap();
  return (_getRequireWildcardCache = function (nodeInterop) {
    return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
  })(nodeInterop);
}

function _interopRequireWildcard(obj, nodeInterop) {
  if (!nodeInterop && obj && obj.__esModule) {
    return obj;
  }

  if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
    return {
      default: obj
    };
  }

  var cache = _getRequireWildcardCache(nodeInterop);

  if (cache && cache.has(obj)) {
    return cache.get(obj);
  }

  var newObj = {};
  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;

  for (var key in obj) {
    if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
      var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;

      if (desc && (desc.get || desc.set)) {
        Object.defineProperty(newObj, key, desc);
      } else {
        newObj[key] = obj[key];
      }
    }
  }

  newObj.default = obj;

  if (cache) {
    cache.set(obj, newObj);
  }

  return newObj;
}

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function ownKeys(object, enumerableOnly) {
  var keys = Object.keys(object);

  if (Object.getOwnPropertySymbols) {
    var symbols = Object.getOwnPropertySymbols(object);

    if (enumerableOnly) {
      symbols = symbols.filter(function (sym) {
        return Object.getOwnPropertyDescriptor(object, sym).enumerable;
      });
    }

    keys.push.apply(keys, symbols);
  }

  return keys;
}

function _objectSpread(target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i] != null ? arguments[i] : {};

    if (i % 2) {
      ownKeys(Object(source), true).forEach(function (key) {
        _defineProperty(target, key, source[key]);
      });
    } else if (Object.getOwnPropertyDescriptors) {
      Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
    } else {
      ownKeys(Object(source)).forEach(function (key) {
        Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
      });
    }
  }

  return target;
}

function _defineProperty(obj, key, value) {
  if (key in obj) {
    Object.defineProperty(obj, key, {
      value: value,
      enumerable: true,
      configurable: true,
      writable: true
    });
  } else {
    obj[key] = value;
  }

  return obj;
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

let UxpPosition = (0, _autobindDecorator.default)(_class = class UxpPosition extends _Position.default {
  /* https://jira.corp.adobe.com/browse/UXP-8669
  Dropdown flickering occurs because UXP calculates client offset and size after the initial render, 
  unlike the browsers which do so before the initial render happens.
  To avoid the flicker, we need to hide the dropdown button till the layout is rendered again.
  This can be directly merged to react-spectrum if they agree to do that, because this will not impact them much. */
  componentDidMount() {
    if (this.props.autoComplete) {
      this.updatePosition(this.getTarget(), 'visible');
    } else {
      this.updatePosition(this.getTarget(), 'hidden');
    }

    window.addEventListener('resize', this.maybeUpdatePosition, false);
  }

  componentDidUpdate(prevProps) {
    if (this._needsFlush) {
      this._needsFlush = false;
      this.maybeUpdatePosition(this.props.placement !== prevProps.placement, 'visible');
    }
  }

  render() {
    const _this$props = this.props,
          {
      children,
      className
    } = _this$props,
          props = _objectWithoutProperties(_this$props, _excluded);

    const {
      positionLeft,
      positionTop,
      // maxHeight, 
      arrowOffsetLeft,
      arrowOffsetTop,
      placement
    } = this.state;
    delete props.target;

    const child = _react.default.Children.only(children);

    return /*#__PURE__*/(0, _react.cloneElement)(child, _objectSpread(_objectSpread({}, (0, _filterDOMProps.default)(props)), {}, {
      placement,
      className: (0, _classnames.default)(className, child.props.className),
      arrowStyle: {
        left: arrowOffsetLeft,
        top: arrowOffsetTop
      },
      ref: overlay => this.overlay = overlay,
      style: _objectSpread(_objectSpread({}, child.props.style), {}, {
        position: 'absolute',
        zIndex: 100000,
        // should match the z-index in ModalTrigger
        left: positionLeft,
        top: positionTop
        /* maxHeight: maxHeight
        JIRA BUG: https://jira.corp.adobe.com/browse/UXP-9371
        The issue persists in UXP because UXP doesn't know the size of overlay and hence the endEdgeOffset, and so cannot flip the dropdown unless the layout is drawn once on the bottom 
        The workaround is to remove the incorrect maxHeight of the popover which is being calculated due to this.*/

      })
    }));
  } // https://jira.corp.adobe.com/browse/UXP-10711
  // resize event is not triggered when there is no change in size of the overlay
  // hence, update the bounding rect manually since the clone element has the same reference as the tooltip component and set it on provider


  updateOverlayBoundingRect() {
    if (this.overlay) {
      if (this.overlay.tooltipRef) {
        const tooltipNode = _reactDom.default.findDOMNode(this.overlay.tooltipRef);

        if (tooltipNode) {
          let boundingRect = tooltipNode.getBoundingClientRect();
          boundingRect.x = this.state.positionLeft;
          boundingRect.y = this.state.positionTop;
          (0, _setOverlayOnProvider.default)(this.overlay.tooltipRef, true, this.overlay.hide, boundingRect);
        } else {
          (0, _setOverlayOnProvider.default)(this.overlay.tooltipRef, true, this.overlay.hide);
        }
      }

      if (this.overlay.popoverRef) {
        // https://jira.corp.adobe.com/browse/CCPROJ-6320
        // Adding similar fix for popover as tooltip.
        const popoverNode = _reactDom.default.findDOMNode(this.overlay.popoverRef);

        if (popoverNode) {
          let boundingRect = popoverNode.getBoundingClientRect();
          boundingRect.x = this.state.positionLeft;
          boundingRect.y = this.state.positionTop;
          (0, _setOverlayOnProvider.default)(popoverNode, true, this.overlay.hide, boundingRect);
        }
      }
    }
  }

  maybeUpdatePosition(placementChanged, visibility) {
    const target = this.getTarget();

    if (!this.props.shouldUpdatePosition && target === this._lastTarget && !placementChanged) {
      return;
    }

    this.updatePosition(target, visibility);
  }

  updatePosition(target, visibility) {
    const {
      placement,
      containerPadding,
      offset,
      crossOffset,
      flip,
      boundariesElement
    } = this.props;
    this._lastTarget = target;

    if (!target) {
      this.setState({
        positionLeft: 0,
        positionTop: 0,
        arrowOffsetLeft: null,
        arrowOffsetTop: null
      });
      return;
    }

    const overlay = _reactDom.default.findDOMNode(this);
    /* 
      JIRA BUG: https://jira.corp.adobe.com/browse/UXP-18863
    */


    if (!overlay) {
      return;
    }

    overlay.style.visibility = visibility;
    const container = (0, _getContainer.default)(this.props.container, (0, _ownerDocument.default)(this).body);
    this.setState((0, _calculatePosition.default)(placement, overlay, target, container, containerPadding, flip, boundariesElement, offset, crossOffset));
    /*
    Related issue : maxHeight not set before initial rendering JIRA BUG: https://jira.corp.adobe.com/browse/UXP-9371
    This adds and removes scrollbar to dropdown on overflow or on small window after first render
    */

    const overlayHeight = overlay.getBoundingClientRect().height;
    const scrollHeight = overlay.scrollHeight;

    if (overlayHeight && (this.state.maxHeight < overlayHeight || scrollHeight > overlayHeight && scrollHeight < this.state.maxHeight)) {
      overlay.style.maxHeight = this.state.maxHeight;
    }

    if (this.overlay) {
      this.updateOverlayBoundingRect();
    }
  }

}) || _class;

exports.default = UxpPosition;

/***/ }),

/***/ "r6Pq":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return RecentsSortOrder; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return UserStorageType; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return ApplicationBase; });
/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("2vnA");
/* harmony import */ var _ccx_ccx_cdo__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("t+6E");
/* harmony import */ var iaw_imsBridge__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("Mqyo");
/* harmony import */ var _js_iaw_analytics__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("RGcl");
/* harmony import */ var _CDOWrapper_CDOImsDataBuilder__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("K0Sv");
/* harmony import */ var src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("cCFZ");
/* harmony import */ var _CDPLocationHook__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("hfog");
/* harmony import */ var _LoggerWrapper_Logger__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("43WE");
/* harmony import */ var src_components_start_constants__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("/0Ih");
/* harmony import */ var src_ProjectsWrapper_ProjectsStoreUtils__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__("fFHZ");
/* harmony import */ var src_js_start_CommonUtils__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__("5ndN");
/* harmony import */ var src_js_iaw_HomescreenError__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__("LDAD");
/* harmony import */ var src_js_start_SharedSettings__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__("zWgm");
/* harmony import */ var src_js_start_YukonContainers__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__("qrd5");
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
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;
};
var __metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var _a;














var RecentsSortOrder;
(function (RecentsSortOrder) {
    RecentsSortOrder["modifiedDate"] = "modifiedDate";
    RecentsSortOrder["title"] = "title";
    RecentsSortOrder["size"] = "size";
    RecentsSortOrder["kind"] = "kind";
    RecentsSortOrder["none"] = "none";
})(RecentsSortOrder || (RecentsSortOrder = {}));
var UserStorageType;
(function (UserStorageType) {
    UserStorageType[UserStorageType["UNKNOWN"] = 0] = "UNKNOWN";
    UserStorageType[UserStorageType["CLOUD"] = 1] = "CLOUD";
    UserStorageType[UserStorageType["LOCAL"] = 2] = "LOCAL";
})(UserStorageType || (UserStorageType = {}));
/**
 * Conventions on methods and variables:
 * ------------------------------------
 * - Pure getters are assumed to be constants or mobx observables.
 * - Async Methods cane be fired at any time. It is a responsibility of the
 *   application code to perform the caching of content and to ensure its availability.
 * - `init` method is called to initialize host app communication. Some properties may be
 *   accessed before the init method. If something needs to be fetched that cannot wait until
 *   init please use the constructor (note that most Start APIs will not available in the constructor).
 * - In general it is advisable to wait for data that the api depends on and not to assume anything
 *   is available.
 */
/**
 * Base class that represents the start host app.
 */
class ApplicationBase {
    constructor() {
        this._isBackButtonVisible = false;
        this._isHomeScreenVisible = false;
        this._userStorageStatus = UserStorageType.UNKNOWN;
        this._isSystemAsleep = false;
        this._userHasCloudDoc = false;
        this._recentFiles = [];
        this.isUnifiedPanelEnabled = false;
        this._isDebugMode = false;
        this.isTutorialsDeepLinkingEnabled = false;
        this._npsData = undefined;
        this.blobUriCache = [];
        this._renderDynamicRecommendations = false;
        this._hasCustomContentRecommendation = false;
        this.PRODUCTION_TOKEN = 'prod';
        /**
         * Handler for the NPS Dialog closing.
         */
        this.handleNPSClose = () => {
            throw Error('handleNPSClose not implemented.');
        };
        /**
         * Handler for the NPS Dialog user submit.
         * @param score The score submitted.
         * @param feedback The feedback submitted.
         */
        this.handleNPSSubmit = (score, feedback) => {
            throw Error('handleNPSSubmit not implemented.');
        };
    }
    /**
     * The SAP ID of the product.
     */
    get id() {
        return window.require('uxp').host.appCode;
    }
    /**
     * Application Name
     */
    get name() {
        return window.require('uxp').host.name;
    }
    /**
     * Application Version
     */
    get version() {
        return window.require('uxp').host.version;
    }
    /**
     * Application Version
     */
    get buildNumber() {
        return window.require('uxp').host.buildNumber;
    }
    /**
     * An observable read only variable that tells the Start screen that the
     * back button has to be shown.
     */
    get isBackButtonVisible() {
        return this._isBackButtonVisible;
    }
    /**
     * An observable read only variable that tells the start screen that the home
     * screen is visible.
     */
    get isHomeScreenVisible() {
        return this._isHomeScreenVisible;
    }
    /**
     * An observable read only variable that tells the start screen whether
     * the current user has any cloud documents
     */
    get userHasCloudDoc() {
        return this._userHasCloudDoc;
    }
    /**
     * Gets the list of recent files as an observable.
     * The list should be changed if an element changes.
     */
    get recentFiles() {
        return this._recentFiles;
    }
    /**
     * Gets the debug mode.
     * The debug mode status.
     */
    get debugMode() {
        return this._isDebugMode;
    }
    /**
     * Changes the debug mode.
     */
    set debugMode(mode) {
        this._isDebugMode = mode;
    }
    /**
     * Boolean telling if NPS should be enabled or not.
     */
    get isNPSEnabled() {
        return false;
    }
    /* Enable card Arrow in Carousel
     * Setting loop count - how many times should we loop through the cards
     * Setting animation duration for carousel in milli seconds
     * Host Application Specific CSS Overrides
     * Host Specific animation on click of indicators on carousel
     */
    get homeScreenCarouselOptions() {
        return {
            showCardArrow: true,
            loopCount: 2,
            animationDurationMs: 300,
            offsetPaddingRequired: true,
            animationResetRequired: false,
            isCarouselContainerRequired: true,
            shouldOpenLinkOnClick: false,
        };
    }
    /**
     * Enable Sort, Filter Recent files and Grid/List View in Recents
     * Enable Action Buttons - Create New and Open in Sidebar
     * Setting the default Avatar shape to square
     * Host Application Specific CSS Overrides
     */
    get homeScreenDisplayOptions() {
        return {
            showRecentsSortAndFilter: true,
            showRecentsGridListViewButtons: true,
            defaultRecentsSortOrder: RecentsSortOrder.modifiedDate,
            showActionButtons: true,
            showCircularAvatar: false,
            hostAppStyle: '',
            showScrollbarOnHome: true,
            showScrollbarOnLearn: true,
            filterDuplicateWebTutorialsByURL: false,
            cdoRecentsCardSize: _ccx_ccx_cdo__WEBPACK_IMPORTED_MODULE_1__[/* CardSize */ "e"].Large,
            showPresetDimensionsInDropdown: false,
            hideCloudStatusIcon: false,
            isStarterBadgeEnabled: false,
            isLicenseChicletEnabled: true,
            cloudStatusOfflineMsgId: 'cloud_status_offline',
            isCloudStatusOfflineIconEnabled: false,
            isCCTeamTrialEnabled: false,
            resetScrollTimeout: 0,
        };
    }
    /**
     * Tells the Start screen what kind
     * of mouse pointer to draw over the Back button.
     */
    get isBackButtonClickable() {
        return true;
    }
    /**
     * Enable grid/thumbnail view in Recents
     */
    get isThumbnailViewEnabled() {
        return true;
    }
    /**
     * Enable list view in Recents
     */
    get isListViewEnabled() {
        return true;
    }
    /**
     * Dsiable list view thumbnails in Recents
     */
    get isThumbnailsDisabled() {
        return false;
    }
    /**
     * Tells if we have the user intent dialog enabled.
     */
    get isUserIntentDialogEnabled() {
        return false;
    }
    /**
     * Returns the value for the `renderDynamicRecommendations` property
     * @return true/false
     */
    get shouldHaveDynamicRecommendations() {
        return this._renderDynamicRecommendations;
    }
    /**
     * Sets true/false if Home Campaign has `renderDynamicRecommendations`.
     */
    set shouldHaveDynamicRecommendations(renderDynamicRecommendations) {
        this._renderDynamicRecommendations = renderDynamicRecommendations;
    }
    /**
     * Returns true/false if Recommendations Array has a `customContent' card.
     * @return true/false
     */
    get hasCustomContentRecommendation() {
        return this._hasCustomContentRecommendation;
    }
    /**
     * Sets true/false if Recommendations Array has a `customContent` card.
     */
    set hasCustomContentRecommendation(hasCustomContentRecommendation) {
        this._hasCustomContentRecommendation = hasCustomContentRecommendation;
    }
    /**
     * Enable search in homescreen
     */
    get isSearchSupported() {
        return true;
    }
    /**
     * Checks if autocomplete is available for this host
     */
    get isSearchAutocompleteEnabled() {
        return false;
    }
    /**
     * Enable newCommand N
     */
    get isNewCmdNSupported() {
        return false;
    }
    /**
     * Application UI Locale.
     */
    get language() {
        return window.require('uxp').host.locale;
    }
    get systemLocale() {
        return window.cdoHost && window.cdoHost.systemLocale;
    }
    /**
     * Default VM status passed onto sophia
     */
    get vmStatus() {
        return 0xffff;
    }
    /**
     * Video Content is not supported in systems that do not have native media players
     * As fallback, opening video content in the browser when the mp4 type is not supported
     */
    get shouldLaunchVideoInBrowser() {
        const video = document.createElement('video');
        return video.canPlayType('video/mp4') == '';
    }
    /**
     * Returns if host is able to open a tutorial via Unified Panel or not
     */
    get tutorialsDeepLinkingEnabled() {
        return this.isTutorialsDeepLinkingEnabled || false;
    }
    /**
     * Returns whether tab selected to be reset to home tab
     */
    get shouldResetToHomeTab() {
        return false;
    }
    /**
     * Returns if analytics collection should be enabled by the host app.
     */
    async isAnalyticsEnabled() {
        return await window.require('uxp').host.canLogAnalyticsData;
    }
    /**
     * Returns the host analytics project key
     */
    get analyticsProjectKey() {
        return '';
    }
    /**
     * Updates Projects store.
     */
    async updateProjectStore() {
        const token = await this.fetchCDOToken();
        if (!token) {
            // check for the token every 100 ms until we get a token;
            setTimeout(() => {
                this.updateProjectStore();
            }, 100);
            return;
        }
        const { sharedStore } = await __webpack_require__("BuQ2");
        let imsData = Object(src_ProjectsWrapper_ProjectsStoreUtils__WEBPACK_IMPORTED_MODULE_9__[/* createIMSAppDataForProjects */ "a"])(this.fetchCDOToken);
        sharedStore.updateStore({
            imsData: imsData,
            ingestProjectKey: this.analyticsProjectKey,
        });
    }
    /**
     * Initializes Projects.
     */
    async initializeProjects() {
        const { sharedStore } = await __webpack_require__("BuQ2");
        Object(src_ProjectsWrapper_ProjectsStoreUtils__WEBPACK_IMPORTED_MODULE_9__[/* initializeProjectsStore */ "b"])(sharedStore, this.systemLocale, true);
        this.updateProjectStore();
        this.initializeProjectsHostBindings(sharedStore);
    }
    /**
     * Return true if coachmarks from Projects component should be displayed, false otherwise.
     */
    shouldDisplayProjectsCoachMarks() {
        var _a, _b;
        switch (src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_5__["mainStore"].activeToastal) {
            case src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_5__["ToastalName"].WHATS_NEW:
                return !!src_js_start_SharedSettings__WEBPACK_IMPORTED_MODULE_12__[/* default */ "a"].get(src_components_start_constants__WEBPACK_IMPORTED_MODULE_8__[/* WHATS_NEW_COMPONENT_KEY */ "j"], (_a = Object(src_js_start_YukonContainers__WEBPACK_IMPORTED_MODULE_13__[/* getWhatsNewContent */ "c"])()) === null || _a === void 0 ? void 0 : _a.toastalName);
            case src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_5__["ToastalName"].USER_INTENT_DIALOG:
                return !!src_js_start_SharedSettings__WEBPACK_IMPORTED_MODULE_12__[/* default */ "a"].get(src_components_start_constants__WEBPACK_IMPORTED_MODULE_8__[/* USER_INTENT_DIALOG_COMPONENT_KEY */ "h"], (_b = Object(src_js_start_YukonContainers__WEBPACK_IMPORTED_MODULE_13__[/* getUserIntentDialogContent */ "b"])()) === null || _b === void 0 ? void 0 : _b.edition);
            default:
                return true;
        }
    }
    /**
     * Returns whether some part of the IMS initialization could be done late
     */
    get shouldDoIMSLateLoad() {
        return false;
    }
    /**
     * Returns learn tab data
     */
    get learnTabData() {
        return {
            content: 'start_learn',
            data: 'learn',
        };
    }
    /**
     * Allows host apps to customize when to show learn tab.
     */
    get shouldShowLearnTab() {
        return true;
    }
    /**
     * Open a document from disk. Used for recent documents
     *
     * @param file The document descriptor
     * @param template Determines if we should force open as template behavior even
     * if we don't have a template file type for some reason
     */
    async openDocument(file, template = false) {
        if (file.stableUri || file.assetRef) {
            return this.openCDODocument([
                {
                    assetRefStr: file.assetRef,
                    /**
                     * @deprecated will be replaced by assetRefStr
                     */
                    uri: file.stableUri,
                    isBundled: false,
                },
            ]);
        }
        else {
            // @ts-ignore
            return this.openLocalDocument({
                path: file.path,
                title: file.title,
                template: template,
            });
        }
    }
    /**
     * Convert document renditions to blobUris. Revokes previous URLs in blobUriCache
     * @param documents Array of documents that should be converted
     */
    convertRenditionsToBlobURLs(documents) {
        // revoke all old URLs
        this.blobUriCache.forEach(blobUrl => {
            URL.revokeObjectURL(blobUrl);
        });
        // rebuild blob URL cache and override rendition URL
        this.blobUriCache = [];
        documents.forEach(document => {
            if (document && document.rendition && document.rendition instanceof ArrayBuffer) {
                const blob = new Blob([document.rendition]);
                const blobUrl = URL.createObjectURL(blob);
                document.setRendition(blobUrl);
                this.blobUriCache.push(blobUrl);
            }
        });
    }
    ////////////////////////////////////////////////////////////////////
    // Properties likely to be overridden by the host app.
    ///////////////////////////////////////////////////////////////////
    ///////////////////////////////////////////////////////////////////
    // Static Overrides/Configuration
    ///////////////////////////////////////////////////////////////////
    /**
     * Gets the list of buttons to show in the sidebar.
     */
    get buttons() {
        return {
            create_button_newdocs: {
                shortcut: 'u2318N',
            },
            create_button_open: {
                shortcut: 'u2318O',
            },
        };
    }
    /**
     * Checks if app has support to hide the home screen on pressing the escape key.
     */
    get hidesHomeScreenOnEscape() {
        return false;
    }
    /**
     * Additional product specific tabs to be shown to the end user.
     */
    get tabs() {
        return {};
    }
    /**
     * Checks if CDO features should be loaded.
     */
    get isCloudDocumentsEnabled() {
        return true;
    }
    /**
     * Check if CC Projects features should be loaded
     */
    get isCloudProjectsEnabled() {
        return false;
    }
    /**
     * Check if CC Projects features should be visible. We need to separate the host FF check from the visibility check to optimize loading.
     * If the FF is on, the Projects code should load regardless of the other conditions. The UI should only be visible if all the conditions below are satified.
     */
    get isCloudProjectsVisible() {
        return false;
    }
    /**
     * Boolean telling if ShareSheet overlay is open or not.
     */
    get shouldShowProjectsShareSheetOverlay() {
        return false;
    }
    initializeProjectsHostBindings(sharedStore) { }
    /**
     * Returns os version.
     */
    get osVersion() {
        return src_js_start_CommonUtils__WEBPACK_IMPORTED_MODULE_10__[/* UXPHelpers */ "a"].osVersion;
    }
    /**
     * Returns cdo host app api key or in app homescreen api key
     */
    get cdoApiKey() {
        return window.cdoHost.apiKey || iaw_imsBridge__WEBPACK_IMPORTED_MODULE_2__[/* default */ "c"].clientId;
    }
    /**
     * Get title id for collapsible container based on locale and dhscr
     * @param renderDynamicRecommendations whether or not dhscr is enabled
     */
    headerTitleId(renderDynamicRecommendations = false) {
        var _a, _b, _c, _d;
        const fallbackLocales = ['ja_JP'];
        const TITLE_IDS = {
            COMMON: 'common_welcome',
            COMMON_FALLBACK: 'common_welcome_fallback',
            DHSCR: 'dhscr_suggestions',
        };
        return renderDynamicRecommendations
            ? TITLE_IDS.DHSCR
            : fallbackLocales.includes(this.language) ||
                !((_b = (_a = src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_5__["mainStore"] === null || src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_5__["mainStore"] === void 0 ? void 0 : src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_5__["mainStore"].user) === null || _a === void 0 ? void 0 : _a.UserProfile) === null || _b === void 0 ? void 0 : _b.firstName) ||
                ((_d = (_c = src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_5__["mainStore"] === null || src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_5__["mainStore"] === void 0 ? void 0 : src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_5__["mainStore"].user) === null || _c === void 0 ? void 0 : _c.UserProfile) === null || _d === void 0 ? void 0 : _d.firstName) === src_components_start_constants__WEBPACK_IMPORTED_MODULE_8__[/* default */ "k"].USER_DATA_NOT_POPULATED
                ? TITLE_IDS.COMMON_FALLBACK
                : TITLE_IDS.COMMON;
    }
    get homescreenCachedElement() {
        return this._homescreenCachedElement;
    }
    set homescreenCachedElement(element) {
        this._homescreenCachedElement = element;
    }
    set projectsWrapperRef(element) { }
    get projectsWrapperRef() {
        return null;
    }
    attachHostUxpListeners() { }
    ///////////////////////////////////////////////////////////////////
    // Life-cycle methods
    ///////////////////////////////////////////////////////////////////
    /**
     * Initialize the observables available
     * from the host app. Good place to add event listeners.
     */
    async init() {
        _CDPLocationHook__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"].installHooks();
        this._customToastInterface = null;
        const uxp = window.require && window.require('uxp');
        if (uxp) {
            // Register events for UXP Commands for Ps, AI, XD etc
            document.body.addEventListener('uxpcommand', async (event) => {
                var _a;
                if (!this.uapController) {
                    const { default: UAPController } = await __webpack_require__.e(/* import() */ 0).then(__webpack_require__.bind(null, "hUbq"));
                    this.uapController = new UAPController();
                }
                const { commandId } = event;
                const mode = this.uapController.getMode(commandId);
                if (!mode) {
                    // @ts-ignore
                    const newDocCommands = await Promise.all(/* import() */[__webpack_require__.e("styles"), __webpack_require__.e(1), __webpack_require__.e(2)]).then(__webpack_require__.bind(null, "eTdQ"));
                    return ((_a = newDocCommands[commandId]) === null || _a === void 0 ? void 0 : _a.call(newDocCommands, event, this.CDOProductData.featureFlags, Object(_CDOWrapper_CDOImsDataBuilder__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"])(src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_5__["mainStore"].user, this.fetchCDOToken)));
                }
                try {
                    const adjustedEvent = _CDPLocationHook__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"].adjustDataForEvent(event);
                    const { PickerModeClose } = await __webpack_require__.e(/* import() */ 0).then(__webpack_require__.bind(null, "hUbq"));
                    if (mode === PickerModeClose)
                        return this.uapController.closeUapModal(commandId, event);
                    else
                        return this.uapController.showUapModal(commandId, adjustedEvent, this.CDOProductData, this.fetchCDOToken, src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_5__["mainStore"].user);
                }
                catch (error) {
                    _LoggerWrapper_Logger__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].get('ApplicationBase').error(`Error on displaying UAP dialog: ${error}`);
                }
            });
            // Each host might listen to different UXP events (for example XD manages panels differently than the rest of the hosts)
            this.attachHostUxpListeners();
        }
    }
    /**
     * Initialize the observables that can be delayed
     * and do not impact the initial rendering of start.
     */
    async lateLoad() {
        const uxp = window.require && window.require('uxp');
        if (uxp && this.isNewCmdNSupported) {
            try {
                // @ts-ignore
                const cmdn = await Promise.all(/* import() */[__webpack_require__.e("styles"), __webpack_require__.e(1), __webpack_require__.e(3)]).then(__webpack_require__.bind(null, "77JF"));
                cmdn.loadDialog(src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_5__["mainStore"] && src_js_start_stores_MainStore__WEBPACK_IMPORTED_MODULE_5__["mainStore"].user);
            }
            catch (error) {
                const homeScreenError = new src_js_iaw_HomescreenError__WEBPACK_IMPORTED_MODULE_11__[/* HomescreenError */ "a"](`ApplicationBase.lateLoad - Error loading CMDN: ${error.stack}`, 'CmdN', src_js_iaw_HomescreenError__WEBPACK_IMPORTED_MODULE_11__[/* HomescreenErrorCodes */ "b"].INIT_CMDN_LATE_LOAD_FAILED);
                _js_iaw_analytics__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].logErrorEvent('initialize', { error: homeScreenError });
            }
        }
    }
    ///////////////////////////////////////////////////////////////////
    // Data Access
    ///////////////////////////////////////////////////////////////////
    /**
     * Returns the Guid of the application's session for tracking purposes
     */
    async getSessionId() {
        return '';
    }
    /**
     * Checks if reportInteractiveReady event should be sent to host on fallback layout.
     */
    get reportInteractiveReadyOnFallback() {
        return false;
    }
    /**
     * Checks if UAP dialog can be closed or not.
     */
    shouldCloseUAPDialog(pickerAction) {
        return true;
    }
    /**
     * Checks if Host uses DefaultViewParser to parse the fallback home layout.
     */
    get hasDefaultViewParser() {
        return false;
    }
    ///////////////////////////////////////////////////////////////////
    // Actions in the product
    ///////////////////////////////////////////////////////////////////
    /**
     * Sends an event to the product to record the time to interactive
     * ready for the product.
     */
    async reportPerformance() { }
    /**
     * Sends success / fail messages regarding NonGenuineBanner back
     * to host or tells the host to open the ctaURL
     * @param messageForApp
     */
    sendGenuineBannerMessage(messageForApp) { }
    /**
     * Sends an event to the product to inform that the home screen is ready
     * to be used/interacted with.
     */
    async reportInteractiveReady() { }
    /**
     * Hides the home screen from the user.
     */
    async hideHomeScreen() { }
    /**
     * Triggers a new document dialog.
     */
    async launchNewDocumentDialog(path, isNewFileCTA) { }
    /**
     * Triggers the select file dialog for After Effects. No-op in other hosts.
     */
    launchSelectFileDialog() { }
    /**
     * Triggers the open document dialog.
     */
    async launchOpenDocumentDialog() { }
    /**
     * Triggers an alternative dialog Open/New dialog
     */
    async launchAlternativeDialog(specifier) { }
    /**
     * Launch preferences dialog in the app to enable cloud documents
     */
    async launchPreferences() { }
    /**
     * Open a local document from disk
     * @param path Path to the document on disk
     * @param title Title of the document (needed for LR/CC imports)
     * @param skipMRU Skips MRU list after opening
     * @param template Determines if we should force open as template behavior even
     * @param smartObject Open as smart object
     * @param runWithPriority Execute with eventLevel: 1, timeout: 1 as per Jesper's recommendation here: https://jira.corp.adobe.com/browse/IAW-8387?focusedCommentId=21646932&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-21646932
     * if we don't have a template file type for some reason
     */
    async openLocalDocument(options) { }
    /**
     * Open multiple documents from disk
     * @param paths Paths to the documents on disk
     * @param skipMRU Skips MRU list after opening
     * @param template Determines if we should force open as template behavior even
     * @param smartObject Open as smart objects
     * @param runWithPriority Execute with eventLevel: 1, timeout: 1 as per Jesper's recommendation here: https://jira.corp.adobe.com/browse/IAW-8387?focusedCommentId=21646932&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-21646932
     * if we don't have a template file type for some reason
     */
    async openMultipleLocalDocuments(options) { }
    /**
     * Launches an in-app tutorial
     * @param tutorialId Id of the tutorial to launch
     * @param containerAnalytics Tutorial Analytics
     */
    launchTutorial(tutorialId, containerAnalytics) { }
    /**
     * Launches a tutorial with Deeplink
     * @param tutorial Data of the tutorial to launch
     * @param type Tutorial type
     * @param containerAnalytics Tutorial Analytics
     */
    launchDiscoverPanelWithDeeplink(tutorial, type, containerAnalytics) { }
    /**
     * Enables preference
     * @param name Name of the preference action to send
     */
    enablePreference(name) { }
    /**
     * Launches a preset (For the Illustrator Preset Component)
     * @param data Preset configuration
     */
    openPreset(data) { }
    /**
     * Launches the in-app search extension
     */
    launchSearch() { }
    openNeuralFilterDeeplink(imagePath, imageTitle, nfJson) { }
    ///////////////////////////////////////////////////////////////////
    // CDO host wrapper methods
    ///////////////////////////////////////////////////////////////////
    /**
     * Get the IMS token from the host (dont use HS's one)
     */
    async fetchCDOToken(currentToken) {
        return '';
    }
    fetchCDOTokenFromCache() {
        return '';
    }
    /**
     * Check CDO host if feature is enabled
     */
    isCDOFeatureEnabled(featureFlag) {
        return false;
    }
    /**
     * Returns true if CDOProvider should be rendered false otherwise.
     */
    shouldRenderCDOProvider() {
        return true;
    }
    /**
     * Gets the list of recent files from the CDO host.
     */
    async getCDOLocalRecents() {
        return [];
    }
    /**
     * Gets the rendition of the preview for thumbnail.
     */
    getDocumentPreviewRendition(path, type) {
        return '';
    }
    /**
     * Use CDO host API to create new document
     */
    openCDODocument(docInfoArray) {
        window.cdoHost.openDocuments(docInfoArray);
    }
    /**
     * Returns the Application's cloud file extension name for the provided document type (i.e. 'PSDC')
     * An application may support multiple cloud document types.
     */
    getCloudExtensionName(document) {
        return '';
    }
    /**
     * Return the NPS Data from the host application.
     */
    get getNPSData() {
        return undefined;
    }
    /**
     * Provide CDO configuration settings for host application
     */
    get CDOProductData() {
        return {
            productId: this.id,
            dcxId: '',
            productVersion: this.version,
            productName: this.name.toLowerCase(),
            productLocation: 'com.adobe.ccx.start',
            platform: navigator.platform,
            documentFilter: [],
            apiKey: '',
            featureFlags: {},
            uiLocale: 'en_US',
            platformVersion: '',
        };
    }
    /**
     * Run an action before unpinning an item.
     * @param storageUrlArray Storage URL Array
     */
    async cdoBeforeUnpin(storageUrlArray) {
        return;
    }
    /**
     * Run an action after unpinning an item.
     * @param storageUrlArray Storage URL Array
     */
    async cdoAfterUnpin(storageUrlArray) {
        return;
    }
    /**
     * Run an action before deleting an item.
     * @param storageUrlArray Storage URL Array
     */
    async cdoBeforeDelete(storageUrlArray) {
        return;
    }
    /**
     * Run an action after deleting an item
     * @param storageUrlArray
     */
    async cdoAfterDelete(storageUrlArray) {
        return;
    }
    /**
     * Run an action before permanently deleting an item.
     * @param storageUrlArray
     */
    async cdoBeforePermanentDelete(storageUrlArray) {
        return;
    }
    /**
     * Run an action after permanently deleting an item.
     * @param storageUrlArray
     */
    async cdoAfterPermanentDelete(storageUrlArray) {
        return;
    }
    /**
     * Run an action before restoring an item.
     * @param storageUrlArray
     */
    async cdoBeforeRestore(storageUrlArray) {
        return;
    }
    /**
     * Run an action after restoring an item.
     * @param storageUrlArray
     */
    async cdoAfterRestore(storageUrlArray) {
        return;
    }
    /**
     * Run an action before renaming an item.
     * @param storageUrlArray
     */
    async cdoBeforeRename(storageUrlArray) {
        return;
    }
    /**
     * Run an action after renaming an item.
     * @param storageUrlArray
     */
    async cdoAfterRename(storageUrlArray) {
        return;
    }
    /**
     * Run an action before moving an item.
     * @param storageUrlArray
     */
    async cdoBeforeMove(storageUrlArray) {
        return;
    }
    /**
     * Run an action after moving an item.
     * @param storageUrlArray
     */
    async cdoAfterMove(storageUrlArray) {
        return;
    }
    /**
     * Returns the current logged in user's quota or
     * 1 if quota method via cdoHost is not available.
     *
     * @returns user's quota.
     */
    get userQuota() {
        return 1;
    }
    //////////////////////////////////////////////////////
    // Lightroom Importer
    /////////////////////////////////////////////////////
    /**
     * Open a document from disk with XMP Data.
     * Used in Lightroom Importer to open Camera Raw.
     *
     * @param path Path of the document on disk
     * @param title Title of the document (since LR import prefixes asset ID)
     * @param xmpData The XMP data
     * @param orientation The orientation
     * @param smartObject Open as smart object
     * @param runWithPriority Execute with eventLevel: 1, timeout: 1 as per Jesper's recommendation here: https://jira.corp.adobe.com/browse/IAW-8387?focusedCommentId=21646932&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-21646932
     */
    openPathWithXMP(path, title, xmpData, orientation, smartObject = false, runWithPriority = false, localXMP = false) { }
    /**
     * Releases a file reference and convert to a new file.
     * Used in Lightroom Importer
     * @param newTitle New title to provide to this document.
     */
    async releaseFileReference(newTitle, id) { }
    /**
     * Returns stableUris of currently open documents
     */
    async getOpenCloudDocuments() {
        return [];
    }
    /**
     * Get the host specific starter banner data
     */
    get starterBannerHostData() {
        return {
            starterBannerData: {}
        };
    }
    /**
     * Unified Panel feature flags
     */
    async getUnifiedPanelFeatureFlags() {
        return {
            isDeepLinkingEnabled: false,
        };
    }
    /**
     * Send event to host to handle Unified Panel deeplink
     */
    openUnifiedPanelDeepLink(deepLinkCommand) { }
    get presetData() {
        return [];
    }
    get userStorageStatus() {
        return this._userStorageStatus;
    }
    /**
     * Checks if starter banner should be shown or not.
     */
    get isStarterBannerEnabled() {
        return false;
    }
    /**
     * Checks if the Event Messaging Improvements (EMIT Initiative) are enabled.
     */
    get isEmitResiliencyInitiativeEnabled() {
        return false;
    }
    get isSystemAsleep() {
        return this._isSystemAsleep;
    }
    /**
     * Invokes app purchase flow for freemium users.
     */
    invokeUpgradePlan() {
        throw Error('invokeUpgradePlan not implemented.');
    }
    /* Invokes team trial purchase flow for users part of team trials */
    handleCCTeamTrialChiclet(workflow) {
        throw Error('handleCCTeamTrialChiclet not implemented');
    }
    /** Handle logging of analytics event via the host
     *
     * @param cat Category of the analytics event
     * @param subCat Sub category of the analytics event
     * @param eventName name of the event
     */
    logAnalyticsEvent(cat, subCat, eventName) {
        throw Error('Host analytics logging not implemented');
    }
    /** Handle logging of analytics data via the host
     *
     * @param cat Category of the analytics data
     * @param subCat Sub category of the analytics data
     * @param groupName group name to identify the data bucket
     * @param datArray Array of key-value pair objects representing the group information
     *                 needed to be logged
     */
    logAnalyticsData(cat, subCat, groupName, dataArray) {
        throw Error('Host analytics logging not implemented');
    }
    /** Host specific wrapper for logging analytics data
     * @param eventId {string} containing the event identifier
     * @param eventData {object} data associated with the event
     */
    logCustomAnalytics(eventId, eventData) { }
    /** Host specific handling when navigating to a route
     * @param page Route where the user has navigated
     */
    onRouteNavigate(page) { }
    /**
     * Checks if user is starter (freemium) user
     */
    get isStarterUser() {
        return false;
    }
    /**
     * Checks if app needs to use custom toast interface
     */
    get customToastInterface() {
        return this._customToastInterface;
    }
    /**
     * Checks if app needs to handle ESC key event and sets defaultpreventedkeys props accordingly
     */
    get shouldCaptureEscapeKey() {
        return true;
    }
    /**
     * Enable analytics events to be logged on hover action
     */
    get enableHoverEventAnalytics() {
        return false;
    }
    /**
     * Log the homescreen components version to the log file.
     */
    logComponentsVersion() { }
    /**
     * Open the Share Sheet dialog
     */
    openShareSheet(assetInfo, onEvent) { }
    /**
     * Hosts can customize when to reset the scroll to top on the home screen layout
     */
    get resetScrollTriggerCondition() {
        return;
    }
    /**
     * Host callback for when user navigates within a space
     */
    onProjectsNavigation(route) { }
    /**
     * Launch the CmdN Dialog with the given Deeplink Path.
     * It will not work if `isNewCmdNSupported` is `false`.
     *
     * @param deeplinkPath The path to the tab, collection and selector of a document.
     */
    async launchCMDNWithDeeplink(deeplinkPath) {
        if (this.isNewCmdNSupported) {
            try {
                // @ts-ignore
                const { openNewDocumentWithDeeplinkPath } = await Promise.all(/* import() */[__webpack_require__.e("styles"), __webpack_require__.e(1), __webpack_require__.e(2)]).then(__webpack_require__.bind(null, "eTdQ"));
                openNewDocumentWithDeeplinkPath(deeplinkPath);
            }
            catch (error) {
                _LoggerWrapper_Logger__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].get('ApplicationBase').error(`Failed to launch CmdN with Deeplink: ${error}`);
            }
        }
    }
    /**
     * Application Build Flavour
     */
    get buildFlavour() {
        var _a, _b, _c;
        // 0 - General Access (GA)
        // 1 - Prerelease (PR)
        // 2 - Beta
        return ((_b = (_a = window.cdoHost) === null || _a === void 0 ? void 0 : _a.getBuildFlavour) === null || _b === void 0 ? void 0 : _b.call(_a)) || ((_c = window.require('uxp').host) === null || _c === void 0 ? void 0 : _c.buildFlavour) || 0;
    }
    /**
     * Returns true if the environment is production, false if it's not or undefined if we can't determine the environment.
     *
     */
    isProductionEnv() {
        return;
    }
}
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", Object)
], ApplicationBase.prototype, "_isBackButtonVisible", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", Object)
], ApplicationBase.prototype, "_isHomeScreenVisible", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", Number)
], ApplicationBase.prototype, "_userStorageStatus", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", Object)
], ApplicationBase.prototype, "_isSystemAsleep", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", Object)
], ApplicationBase.prototype, "_userHasCloudDoc", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", typeof (_a = typeof Array !== "undefined" && Array) === "function" ? _a : Object)
], ApplicationBase.prototype, "_recentFiles", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", Object)
], ApplicationBase.prototype, "isUnifiedPanelEnabled", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", Object)
], ApplicationBase.prototype, "_isDebugMode", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", Object)
], ApplicationBase.prototype, "isTutorialsDeepLinkingEnabled", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", Object)
], ApplicationBase.prototype, "_npsData", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], ApplicationBase.prototype, "isBackButtonVisible", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], ApplicationBase.prototype, "isHomeScreenVisible", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], ApplicationBase.prototype, "userHasCloudDoc", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], ApplicationBase.prototype, "recentFiles", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [Object])
], ApplicationBase.prototype, "debugMode", null);


/***/ }),

/***/ "r9Sp":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ACPLinks; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return ProblemTypes; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return ACPRequest; });
/* harmony import */ var _ServiceRequest__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("Cc7P");
/* harmony import */ var http_link_header__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("x+K8");
/* harmony import */ var http_link_header__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(http_link_header__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _stores_Settings__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("5u1M");
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2020 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
/**
 * This file is copied entirely (with small modifications)
 * from Assets Web repo (assets/src/utils/api/adobe-content-platform/index.tsx)
 */



// Links to move through the ACP request flows.
// https://git.corp.adobe.com/pages/AdobeCloudPlatform/api-spec/#asset-links
var ACPLinks;
(function (ACPLinks) {
    ACPLinks["PRIMARY"] = "http://ns.adobe.com/adobecloud/rel/primary";
    ACPLinks["PATH"] = "http://ns.adobe.com/adobecloud/rel/path";
    ACPLinks["ID"] = "http://ns.adobe.com/adobecloud/rel/id";
    ACPLinks["PAGE"] = "http://ns.adobe.com/adobecloud/rel/page";
    ACPLinks["DIRECTORY"] = "http://ns.adobe.com/adobecloud/rel/directory";
    ACPLinks["DISCARD"] = "http://ns.adobe.com/adobecloud/rel/discard";
    ACPLinks["DOWNLOAD"] = "http://ns.adobe.com/adobecloud/rel/download";
    ACPLinks["AC_POLICY"] = "http://ns.adobe.com/adobecloud/rel/ac/policy";
    ACPLinks["AC_CHECK"] = "http://ns.adobe.com/adobecloud/rel/ac/check";
    ACPLinks["AC_EFFECTIVE"] = "http://ns.adobe.com/adobecloud/rel/ac/effective";
    ACPLinks["METADATA_REPOSITORY"] = "http://ns.adobe.com/adobecloud/rel/metadata/repository";
    ACPLinks["METADATA_APPLICATION"] = "http://ns.adobe.com/adobecloud/rel/metadata/application";
    ACPLinks["RENDITION"] = "http://ns.adobe.com/adobecloud/rel/rendition";
    ACPLinks["REPOSITORY"] = "http://ns.adobe.com/adobecloud/rel/repository";
    ACPLinks["RESTORE"] = "http://ns.adobe.com/adobecloud/rel/restore";
    ACPLinks["RESOLVE_PATH"] = "http://ns.adobe.com/adobecloud/rel/resolve/path";
    ACPLinks["RESOLVE_ID"] = "http://ns.adobe.com/adobecloud/rel/resolve/id";
    ACPLinks["BULK"] = "http://ns.adobe.com/adobecloud/rel/bulk";
    ACPLinks["BLOCK_INT"] = "http://ns.adobe.com/adobecloud/rel/block/init";
    ACPLinks["CREATE"] = "http://ns.adobe.com/adobecloud/rel/create";
    ACPLinks["OPS"] = "http://ns.adobe.com/adobecloud/rel/ops";
    ACPLinks["MANIFEST"] = "http://ns.adobe.com/adobecloud/rel/manifest";
})(ACPLinks || (ACPLinks = {}));
// https://git.corp.adobe.com/pages/caf/api-spec/single.html#problem-types
var ProblemTypes;
(function (ProblemTypes) {
    ProblemTypes["QUOTA_EXCEEDED"] = "http://ns.adobe.com/adobecloud/problem/quotaexceeded";
})(ProblemTypes || (ProblemTypes = {}));
/**
 * Generalized Adobe Platform Service Request Utility Class
 *
 * @export
 * @class ACPRequest
 * @extends {ServiceRequest}
 */
class ACPRequest extends _ServiceRequest__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"] {
    /**
     * Creates an instance of ACPRequest.
     *
     * @param {string} apiPath
     * @memberof ACPRequest
     */
    constructor(apiPath) {
        super();
        this.headers({
            Authorization: '',
            'X-Api-Key': _stores_Settings__WEBPACK_IMPORTED_MODULE_2__[/* settings */ "b"].config.CLIENT_ID,
        });
        this.url(apiPath);
    }
    static parseLinkHeaders(response) {
        const { refs } = http_link_header__WEBPACK_IMPORTED_MODULE_1___default.a.parse(response.headers.get('link') || '');
        response.links = refs;
        return response;
    }
    /**
     * Set url on XHR request.
     *
     * Override ServiceRequest's set url method so it plays well with
     * how the assets site will use the API.
     *
     * @param {string} [apiPath='/']
     * @returns {ACPRequest}
     * @memberof ACPRequest
     */
    url(apiPath = '/') {
        let resolvedPath = apiPath;
        // If we have a fully resolved URL, we have followed response links from the API
        if (resolvedPath.startsWith('https://')) {
            this._url = resolvedPath;
            return this;
        }
        // Always prefix your paths with /
        if (!apiPath.startsWith('/')) {
            resolvedPath = `/${apiPath}`;
        }
        // Generate url
        this._url = `${_stores_Settings__WEBPACK_IMPORTED_MODULE_2__[/* settings */ "b"].config.ACP_CS_HOST}${resolvedPath}`;
        return this;
    }
    async fetch() {
        // When making a service request, we never want to use a cached response.
        // Platform responses specify "Cache-Control: max-age=432000", meaning that
        // our requests could be cached on disk without even going to the network (bad!).
        // This request header tells the user-agent to always go to the network
        // to revalidate the request. (It can still use ETags to avoid sending a body.)
        // We should do this for all service requests unless we know that the backend's
        // response is truly cacheable (e.g. renditions with an etag cachebuster).
        this.header('Cache-Control', 'no-store, max-age=0');
        return super.fetch();
    }
    paginatedFetch() {
        return this.fetch()
            .then(ACPRequest.verifyStatus)
            .then(ACPRequest.parseJSONResponse)
            .then((response) => {
            response.next = this.next(response.parsedBody);
            return response;
        });
    }
    next(responseData) {
        var _a, _b;
        const next = (_b = (_a = responseData === null || responseData === void 0 ? void 0 : responseData._links) === null || _a === void 0 ? void 0 : _a.next) === null || _b === void 0 ? void 0 : _b.href;
        if (next) {
            this.url(next);
            return this.paginatedFetch.bind(this);
        }
        return undefined;
    }
}


/***/ }),

/***/ "rJ5o":
/***/ (function(module) {

module.exports = JSON.parse("{\"Clear search\":\"Очистить поиск\"}");

/***/ }),

/***/ "rLYe":
/***/ (function(module) {

module.exports = JSON.parse("{\"Breadcrumbs\":\"Breadcrumbs\"}");

/***/ }),

/***/ "rNPF":
/***/ (function(module, exports) {

/* eslint-disable max-len */
module.exports = {
  'confirmationDialog.dontShowAgain': 'Niet meer weergeven',
  'confirmationDialog.confirm.default': 'Doorgaan',
  'confirmationDialog.cancel.default': 'Annuleren',
  'confirmationDialog.learnMore': 'Meer informatie',
  'toast.warning.place': 'Kan nog geen gekoppelde clouddocumenten plaatsen. Ga door en sluit ze in.',
  'toast.warning.placeLinkOrEmbed': 'Assets die je plaatst, zijn nu standaard gekoppeld aan het origineel. Dat betekent dat als je het asset op één plek bewerkt, die wijzigingen overal worden doorgevoerd.',
  'toast.warning.saveAs.invalidFormat': 'Je kunt helaas hier geen {genericFormat}-bestanden opslaan. Je bestand wordt opgeslagen als {adobeFormat}.',
  'pickerView.recent': 'Recent',
  'pickerView.cloud_docs': 'Jouw bestanden',
  'pickerView.shared_with_you': 'Met jou gedeeld',
  'pickerView.projects': 'Projecten',
  'pickerView.files': 'Bestanden',
  'pickerView.computer': 'Jouw computer...',
  'pickerView.saveAsInput': 'Opslaan als',
  'pickerView.exportInput': 'Exporteren als',
  'pickerView.sketch_library': 'Sketch-bibliotheek converteren...',
  'pickerView.error.saveAsOrExport.default': 'Bestandsnaam is ongeldig.',
  'pickerView.error.saveAsOrExport.invalidName': 'Deze naam bevat een of meer ongeldige tekens.',
  'pickerView.error.saveAsOrExport.invalidEnd': "Naam mag niet eindigen op '.' of een spatie.",
  'pickerView.error.saveAsOrExport.invalidChar': 'De naam mag geen van de volgende tekens bevatten: {characters}',
  'pickerView.error.saveAsOrExport.charRestriction': 'Namen mogen niet langer zijn dan 200 tekens.',
  'pickerView.error.saveAsOrExport.duplicateName': 'Je hebt hier al een clouddocument met deze naam.',
  'pickerView.error.addALibrary.permission': 'Je hebt geen machtigingen om iets toe te voegen aan deze bibliotheek',
  'pickerViewFooter.button.add': 'Toevoegen',
  'pickerViewFooter.button.cancel': 'Annuleren',
  'pickerViewFooter.button.copy': 'Hier kopiëren',
  'pickerViewFooter.button.move': 'Hierheen verplaatsen',
  'pickerViewFooter.button.moveToProject': 'Hierheen verplaatsen',
  'pickerViewFooter.button.copyToProject': 'Hier kopiëren',
  'pickerViewFooter.button.choose': 'Kies',
  'pickerViewFooter.button.save': 'Opslaan',
  'pickerViewFooter.button.switchToOSPicker': 'Op jouw computer',
  'pickerViewFooter.button.save.offline': 'Internetverbinding vereist',
  'pickerViewFooter.button.saveAsCopy': 'Opslaan',
  'pickerViewFooter.button.export': 'Exporteren',
  'pickerViewFooter.button.placeLinkOrEmbed': 'Plaatsen',
  'pickerViewFooter.button.import': 'Importeren',
  'pickerViewFooter.checkbox.placeLink': 'Gekoppeld',
  'pickerViewFooter.tooltip.placeLink': 'Je kunt dit item alleen als gekoppeld asset plaatsen.',
  'pickerViewFooter.tooltip.placeEmbed': 'Je kunt dit item alleen als ingesloten item plaatsen.',
  'pickerViewFooter.saveAs.format.label': 'Indeling',
  'pickerViewFooter.button.selectProject': 'Opslaan',
  'onboardingCdp.title': 'Je kunt veel meer doen als u het als een clouddocument opslaat',
  'onboardingCdp.tooltip': 'Als je het document opslaat op je computer, kun je geen cloudfuncties gebruiken.',
  'onboardingCdp.tooltip.link': 'Meer informatie',
  'onboardingCdp.table.header.saveToCloud': 'Creative Cloud',
  'onboardingCdp.table.header.saveToLocal': 'Op jouw computer',
  'onboardingCdp.button.saveToCloud': 'Opslaan in Creative Cloud',
  'onboardingCdp.feature.offline': 'Offline toegang',
  'onboardingCdp.feature.syncing': 'Synchroniseren met de cloud op al je apparaten',
  'onboardingCdp.feature.autosave': 'Elke wijziging wordt automatisch opgeslagen',
  'onboardingCdp.feature.versionHistory': 'Versiegeschiedenis',
  'onboardingCdp.feature.inviteToEdit': 'Uitnodigen om te bewerken',
  'onboardingCdp.button.saveToLocal': 'Opslaan op jouw computer',
  'onboardingCdp.checkbox.doNotShowAgain': 'Niet opnieuw weergeven',
  'uap.title.place': 'Plaatsen vanuit Creative Cloud',
  'uap.title.import': 'Importeren vanuit Creative Cloud',
  'uap.title.placeLinkOrEmbed': 'Plaatsen vanuit Creative Cloud',
  'uap.title.linkAssets': 'Koppelen vanuit Creative Cloud',
  'uap.title.open': 'Openen vanuit Creative Cloud',
  'uap.title.relink': 'Koppelen vanuit Creative Cloud',
  'uap.title.saveAs': 'Opslaan in Creative Cloud',
  'uap.title.saveAsCopy': 'Opslaan in Creative Cloud',
  'uap.title.saveToFolder': 'Opslaan in Creative Cloud',
  'uap.title.export': 'Exporteren naar Creative Cloud',
  'uap.title.copy': 'Kopiëren naar Creative Cloud',
  'uap.title.move': 'Verplaatsen in Creative Cloud',
  'uap.title.moveToProject': 'Verplaatsen in Creative Cloud',
  'uap.title.copyToProject': 'Kopiëren naar Creative Cloud',
  'uap.title.reference': 'Toevoegen aan Creative Cloud',
  'uap.title.selectProject': 'Opslaan in Creative Cloud',
  'move.toSpace.confirm.title': 'Versiegeschiedenis wordt verwijderd',
  'move.toSpace.confirm.message': 'Als je dit bestand verplaatst, wordt de versiegeschiedenis verwijderd. Als je je versiegeschiedenis wilt behouden, maak je in plaats daarvan een kopie.'
};

/***/ }),

/***/ "rOLq":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("path", {
  d: "M33 2H15a1 1 0 0 0-1 1v11h10v20h9a1 1 0 0 0 1-1V3a1 1 0 0 0-1-1zm-11 8h-6V6h6zm10 16h-6v-4h6zm0-8h-6v-4h6zm0-8h-6V6h6z"
}), React.createElement("path", {
  d: "M2 17v16a1 1 0 0 0 1 1h18a1 1 0 0 0 1-1V17a1 1 0 0 0-1-1H3a1 1 0 0 0-1 1zm12 1h6v4h-6zM4 18h6v4H4zm0 8h6v4H4z"
}));

/***/ }),

/***/ "rSVQ":
/***/ (function(module, exports, __webpack_require__) {

var parseKeys = __webpack_require__("Ku4m");

var randomBytes = __webpack_require__("Edxu");

var createHash = __webpack_require__("mObS");

var mgf = __webpack_require__("9GDS");

var xor = __webpack_require__("g9U9");

var BN = __webpack_require__("OZ/i");

var withPublic = __webpack_require__("UpF+");

var crt = __webpack_require__("qVij");

var Buffer = __webpack_require__("hwdV").Buffer;

module.exports = function publicEncrypt(publicKey, msg, reverse) {
  var padding;

  if (publicKey.padding) {
    padding = publicKey.padding;
  } else if (reverse) {
    padding = 1;
  } else {
    padding = 4;
  }

  var key = parseKeys(publicKey);
  var paddedMsg;

  if (padding === 4) {
    paddedMsg = oaep(key, msg);
  } else if (padding === 1) {
    paddedMsg = pkcs1(key, msg, reverse);
  } else if (padding === 3) {
    paddedMsg = new BN(msg);

    if (paddedMsg.cmp(key.modulus) >= 0) {
      throw new Error('data too long for modulus');
    }
  } else {
    throw new Error('unknown padding');
  }

  if (reverse) {
    return crt(paddedMsg, key);
  } else {
    return withPublic(paddedMsg, key);
  }
};

function oaep(key, msg) {
  var k = key.modulus.byteLength();
  var mLen = msg.length;
  var iHash = createHash('sha1').update(Buffer.alloc(0)).digest();
  var hLen = iHash.length;
  var hLen2 = 2 * hLen;

  if (mLen > k - hLen2 - 2) {
    throw new Error('message too long');
  }

  var ps = Buffer.alloc(k - mLen - hLen2 - 2);
  var dblen = k - hLen - 1;
  var seed = randomBytes(hLen);
  var maskedDb = xor(Buffer.concat([iHash, ps, Buffer.alloc(1, 1), msg], dblen), mgf(seed, dblen));
  var maskedSeed = xor(seed, mgf(maskedDb, hLen));
  return new BN(Buffer.concat([Buffer.alloc(1), maskedSeed, maskedDb], k));
}

function pkcs1(key, msg, reverse) {
  var mLen = msg.length;
  var k = key.modulus.byteLength();

  if (mLen > k - 11) {
    throw new Error('message too long');
  }

  var ps;

  if (reverse) {
    ps = Buffer.alloc(k - mLen - 3, 0xff);
  } else {
    ps = nonZero(k - mLen - 3);
  }

  return new BN(Buffer.concat([Buffer.from([0, reverse ? 1 : 2]), ps, Buffer.alloc(1), msg], k));
}

function nonZero(len) {
  var out = Buffer.allocUnsafe(len);
  var i = 0;
  var cache = randomBytes(len * 2);
  var cur = 0;
  var num;

  while (i < len) {
    if (cur === cache.length) {
      cache = randomBytes(len * 2);
      cur = 0;
    }

    num = cache[cur++];

    if (num) {
      out[i++] = num;
    }
  }

  return out;
}

/***/ }),

/***/ "rXFu":
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(global, process) {// Copyright Joyent, Inc. and other Node contributors.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to permit
// persons to whom the Software is furnished to do so, subject to the
// following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
// USE OR OTHER DEALINGS IN THE SOFTWARE.

/*<replacement>*/

var pna = __webpack_require__("lm0R");
/*</replacement>*/


module.exports = Readable;
/*<replacement>*/

var isArray = __webpack_require__("49sm");
/*</replacement>*/

/*<replacement>*/


var Duplex;
/*</replacement>*/

Readable.ReadableState = ReadableState;
/*<replacement>*/

var EE = __webpack_require__("+qE3").EventEmitter;

var EElistenerCount = function (emitter, type) {
  return emitter.listeners(type).length;
};
/*</replacement>*/

/*<replacement>*/


var Stream = __webpack_require__("QpuX");
/*</replacement>*/

/*<replacement>*/


var Buffer = __webpack_require__("hwdV").Buffer;

var OurUint8Array = global.Uint8Array || function () {};

function _uint8ArrayToBuffer(chunk) {
  return Buffer.from(chunk);
}

function _isUint8Array(obj) {
  return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;
}
/*</replacement>*/

/*<replacement>*/


var util = Object.create(__webpack_require__("Onz0"));
util.inherits = __webpack_require__("P7XM");
/*</replacement>*/

/*<replacement>*/

var debugUtil = __webpack_require__(4);

var debug = void 0;

if (debugUtil && debugUtil.debuglog) {
  debug = debugUtil.debuglog('stream');
} else {
  debug = function () {};
}
/*</replacement>*/


var BufferList = __webpack_require__("Xhqo");

var destroyImpl = __webpack_require__("RoFp");

var StringDecoder;
util.inherits(Readable, Stream);
var kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];

function prependListener(emitter, event, fn) {
  // Sadly this is not cacheable as some libraries bundle their own
  // event emitter implementation with them.
  if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); // This is a hack to make sure that our error handler is attached before any
  // userland ones.  NEVER DO THIS. This is here only because this code needs
  // to continue to work with older versions of Node.js that do not include
  // the prependListener() method. The goal is to eventually remove this hack.

  if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];
}

function ReadableState(options, stream) {
  Duplex = Duplex || __webpack_require__("sZro");
  options = options || {}; // Duplex streams are both readable and writable, but share
  // the same options object.
  // However, some cases require setting options to different
  // values for the readable and the writable sides of the duplex stream.
  // These options can be provided separately as readableXXX and writableXXX.

  var isDuplex = stream instanceof Duplex; // object stream flag. Used to make read(n) ignore n and to
  // make all the buffer merging and length checks go away

  this.objectMode = !!options.objectMode;
  if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; // the point at which it stops calling _read() to fill the buffer
  // Note: 0 is a valid value, means "don't call _read preemptively ever"

  var hwm = options.highWaterMark;
  var readableHwm = options.readableHighWaterMark;
  var defaultHwm = this.objectMode ? 16 : 16 * 1024;
  if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm; // cast to ints.

  this.highWaterMark = Math.floor(this.highWaterMark); // A linked list is used to store data chunks instead of an array because the
  // linked list can remove elements from the beginning faster than
  // array.shift()

  this.buffer = new BufferList();
  this.length = 0;
  this.pipes = null;
  this.pipesCount = 0;
  this.flowing = null;
  this.ended = false;
  this.endEmitted = false;
  this.reading = false; // a flag to be able to tell if the event 'readable'/'data' is emitted
  // immediately, or on a later tick.  We set this to true at first, because
  // any actions that shouldn't happen until "later" should generally also
  // not happen before the first read call.

  this.sync = true; // whenever we return null, then we set a flag to say
  // that we're awaiting a 'readable' event emission.

  this.needReadable = false;
  this.emittedReadable = false;
  this.readableListening = false;
  this.resumeScheduled = false; // has it been destroyed

  this.destroyed = false; // Crypto is kind of old and crusty.  Historically, its default string
  // encoding is 'binary' so we have to make this configurable.
  // Everything else in the universe uses 'utf8', though.

  this.defaultEncoding = options.defaultEncoding || 'utf8'; // the number of writers that are awaiting a drain event in .pipe()s

  this.awaitDrain = 0; // if true, a maybeReadMore has been scheduled

  this.readingMore = false;
  this.decoder = null;
  this.encoding = null;

  if (options.encoding) {
    if (!StringDecoder) StringDecoder = __webpack_require__("fXKp").StringDecoder;
    this.decoder = new StringDecoder(options.encoding);
    this.encoding = options.encoding;
  }
}

function Readable(options) {
  Duplex = Duplex || __webpack_require__("sZro");
  if (!(this instanceof Readable)) return new Readable(options);
  this._readableState = new ReadableState(options, this); // legacy

  this.readable = true;

  if (options) {
    if (typeof options.read === 'function') this._read = options.read;
    if (typeof options.destroy === 'function') this._destroy = options.destroy;
  }

  Stream.call(this);
}

Object.defineProperty(Readable.prototype, 'destroyed', {
  get: function () {
    if (this._readableState === undefined) {
      return false;
    }

    return this._readableState.destroyed;
  },
  set: function (value) {
    // we ignore the value if the stream
    // has not been initialized yet
    if (!this._readableState) {
      return;
    } // backward compatibility, the user is explicitly
    // managing destroyed


    this._readableState.destroyed = value;
  }
});
Readable.prototype.destroy = destroyImpl.destroy;
Readable.prototype._undestroy = destroyImpl.undestroy;

Readable.prototype._destroy = function (err, cb) {
  this.push(null);
  cb(err);
}; // Manually shove something into the read() buffer.
// This returns true if the highWaterMark has not been hit yet,
// similar to how Writable.write() returns true if you should
// write() some more.


Readable.prototype.push = function (chunk, encoding) {
  var state = this._readableState;
  var skipChunkCheck;

  if (!state.objectMode) {
    if (typeof chunk === 'string') {
      encoding = encoding || state.defaultEncoding;

      if (encoding !== state.encoding) {
        chunk = Buffer.from(chunk, encoding);
        encoding = '';
      }

      skipChunkCheck = true;
    }
  } else {
    skipChunkCheck = true;
  }

  return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);
}; // Unshift should *always* be something directly out of read()


Readable.prototype.unshift = function (chunk) {
  return readableAddChunk(this, chunk, null, true, false);
};

function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {
  var state = stream._readableState;

  if (chunk === null) {
    state.reading = false;
    onEofChunk(stream, state);
  } else {
    var er;
    if (!skipChunkCheck) er = chunkInvalid(state, chunk);

    if (er) {
      stream.emit('error', er);
    } else if (state.objectMode || chunk && chunk.length > 0) {
      if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {
        chunk = _uint8ArrayToBuffer(chunk);
      }

      if (addToFront) {
        if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);
      } else if (state.ended) {
        stream.emit('error', new Error('stream.push() after EOF'));
      } else {
        state.reading = false;

        if (state.decoder && !encoding) {
          chunk = state.decoder.write(chunk);
          if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);
        } else {
          addChunk(stream, state, chunk, false);
        }
      }
    } else if (!addToFront) {
      state.reading = false;
    }
  }

  return needMoreData(state);
}

function addChunk(stream, state, chunk, addToFront) {
  if (state.flowing && state.length === 0 && !state.sync) {
    stream.emit('data', chunk);
    stream.read(0);
  } else {
    // update the buffer info.
    state.length += state.objectMode ? 1 : chunk.length;
    if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);
    if (state.needReadable) emitReadable(stream);
  }

  maybeReadMore(stream, state);
}

function chunkInvalid(state, chunk) {
  var er;

  if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {
    er = new TypeError('Invalid non-string/buffer chunk');
  }

  return er;
} // if it's past the high water mark, we can push in some more.
// Also, if we have no data yet, we can stand some
// more bytes.  This is to work around cases where hwm=0,
// such as the repl.  Also, if the push() triggered a
// readable event, and the user called read(largeNumber) such that
// needReadable was set, then we ought to push more, so that another
// 'readable' event will be triggered.


function needMoreData(state) {
  return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);
}

Readable.prototype.isPaused = function () {
  return this._readableState.flowing === false;
}; // backwards compatibility.


Readable.prototype.setEncoding = function (enc) {
  if (!StringDecoder) StringDecoder = __webpack_require__("fXKp").StringDecoder;
  this._readableState.decoder = new StringDecoder(enc);
  this._readableState.encoding = enc;
  return this;
}; // Don't raise the hwm > 8MB


var MAX_HWM = 0x800000;

function computeNewHighWaterMark(n) {
  if (n >= MAX_HWM) {
    n = MAX_HWM;
  } else {
    // Get the next highest power of 2 to prevent increasing hwm excessively in
    // tiny amounts
    n--;
    n |= n >>> 1;
    n |= n >>> 2;
    n |= n >>> 4;
    n |= n >>> 8;
    n |= n >>> 16;
    n++;
  }

  return n;
} // This function is designed to be inlinable, so please take care when making
// changes to the function body.


function howMuchToRead(n, state) {
  if (n <= 0 || state.length === 0 && state.ended) return 0;
  if (state.objectMode) return 1;

  if (n !== n) {
    // Only flow one buffer at a time
    if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;
  } // If we're asking for more than the current hwm, then raise the hwm.


  if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);
  if (n <= state.length) return n; // Don't have enough

  if (!state.ended) {
    state.needReadable = true;
    return 0;
  }

  return state.length;
} // you can override either this method, or the async _read(n) below.


Readable.prototype.read = function (n) {
  debug('read', n);
  n = parseInt(n, 10);
  var state = this._readableState;
  var nOrig = n;
  if (n !== 0) state.emittedReadable = false; // if we're doing read(0) to trigger a readable event, but we
  // already have a bunch of data in the buffer, then just trigger
  // the 'readable' event and move on.

  if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {
    debug('read: emitReadable', state.length, state.ended);
    if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);
    return null;
  }

  n = howMuchToRead(n, state); // if we've ended, and we're now clear, then finish it up.

  if (n === 0 && state.ended) {
    if (state.length === 0) endReadable(this);
    return null;
  } // All the actual chunk generation logic needs to be
  // *below* the call to _read.  The reason is that in certain
  // synthetic stream cases, such as passthrough streams, _read
  // may be a completely synchronous operation which may change
  // the state of the read buffer, providing enough data when
  // before there was *not* enough.
  //
  // So, the steps are:
  // 1. Figure out what the state of things will be after we do
  // a read from the buffer.
  //
  // 2. If that resulting state will trigger a _read, then call _read.
  // Note that this may be asynchronous, or synchronous.  Yes, it is
  // deeply ugly to write APIs this way, but that still doesn't mean
  // that the Readable class should behave improperly, as streams are
  // designed to be sync/async agnostic.
  // Take note if the _read call is sync or async (ie, if the read call
  // has returned yet), so that we know whether or not it's safe to emit
  // 'readable' etc.
  //
  // 3. Actually pull the requested chunks out of the buffer and return.
  // if we need a readable event, then we need to do some reading.


  var doRead = state.needReadable;
  debug('need readable', doRead); // if we currently have less than the highWaterMark, then also read some

  if (state.length === 0 || state.length - n < state.highWaterMark) {
    doRead = true;
    debug('length less than watermark', doRead);
  } // however, if we've ended, then there's no point, and if we're already
  // reading, then it's unnecessary.


  if (state.ended || state.reading) {
    doRead = false;
    debug('reading or ended', doRead);
  } else if (doRead) {
    debug('do read');
    state.reading = true;
    state.sync = true; // if the length is currently zero, then we *need* a readable event.

    if (state.length === 0) state.needReadable = true; // call internal read method

    this._read(state.highWaterMark);

    state.sync = false; // If _read pushed data synchronously, then `reading` will be false,
    // and we need to re-evaluate how much data we can return to the user.

    if (!state.reading) n = howMuchToRead(nOrig, state);
  }

  var ret;
  if (n > 0) ret = fromList(n, state);else ret = null;

  if (ret === null) {
    state.needReadable = true;
    n = 0;
  } else {
    state.length -= n;
  }

  if (state.length === 0) {
    // If we have nothing in the buffer, then we want to know
    // as soon as we *do* get something into the buffer.
    if (!state.ended) state.needReadable = true; // If we tried to read() past the EOF, then emit end on the next tick.

    if (nOrig !== n && state.ended) endReadable(this);
  }

  if (ret !== null) this.emit('data', ret);
  return ret;
};

function onEofChunk(stream, state) {
  if (state.ended) return;

  if (state.decoder) {
    var chunk = state.decoder.end();

    if (chunk && chunk.length) {
      state.buffer.push(chunk);
      state.length += state.objectMode ? 1 : chunk.length;
    }
  }

  state.ended = true; // emit 'readable' now to make sure it gets picked up.

  emitReadable(stream);
} // Don't emit readable right away in sync mode, because this can trigger
// another read() call => stack overflow.  This way, it might trigger
// a nextTick recursion warning, but that's not so bad.


function emitReadable(stream) {
  var state = stream._readableState;
  state.needReadable = false;

  if (!state.emittedReadable) {
    debug('emitReadable', state.flowing);
    state.emittedReadable = true;
    if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream);
  }
}

function emitReadable_(stream) {
  debug('emit readable');
  stream.emit('readable');
  flow(stream);
} // at this point, the user has presumably seen the 'readable' event,
// and called read() to consume some data.  that may have triggered
// in turn another _read(n) call, in which case reading = true if
// it's in progress.
// However, if we're not ended, or reading, and the length < hwm,
// then go ahead and try to read some more preemptively.


function maybeReadMore(stream, state) {
  if (!state.readingMore) {
    state.readingMore = true;
    pna.nextTick(maybeReadMore_, stream, state);
  }
}

function maybeReadMore_(stream, state) {
  var len = state.length;

  while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {
    debug('maybeReadMore read 0');
    stream.read(0);
    if (len === state.length) // didn't get any data, stop spinning.
      break;else len = state.length;
  }

  state.readingMore = false;
} // abstract method.  to be overridden in specific implementation classes.
// call cb(er, data) where data is <= n in length.
// for virtual (non-string, non-buffer) streams, "length" is somewhat
// arbitrary, and perhaps not very meaningful.


Readable.prototype._read = function (n) {
  this.emit('error', new Error('_read() is not implemented'));
};

Readable.prototype.pipe = function (dest, pipeOpts) {
  var src = this;
  var state = this._readableState;

  switch (state.pipesCount) {
    case 0:
      state.pipes = dest;
      break;

    case 1:
      state.pipes = [state.pipes, dest];
      break;

    default:
      state.pipes.push(dest);
      break;
  }

  state.pipesCount += 1;
  debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);
  var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;
  var endFn = doEnd ? onend : unpipe;
  if (state.endEmitted) pna.nextTick(endFn);else src.once('end', endFn);
  dest.on('unpipe', onunpipe);

  function onunpipe(readable, unpipeInfo) {
    debug('onunpipe');

    if (readable === src) {
      if (unpipeInfo && unpipeInfo.hasUnpiped === false) {
        unpipeInfo.hasUnpiped = true;
        cleanup();
      }
    }
  }

  function onend() {
    debug('onend');
    dest.end();
  } // when the dest drains, it reduces the awaitDrain counter
  // on the source.  This would be more elegant with a .once()
  // handler in flow(), but adding and removing repeatedly is
  // too slow.


  var ondrain = pipeOnDrain(src);
  dest.on('drain', ondrain);
  var cleanedUp = false;

  function cleanup() {
    debug('cleanup'); // cleanup event handlers once the pipe is broken

    dest.removeListener('close', onclose);
    dest.removeListener('finish', onfinish);
    dest.removeListener('drain', ondrain);
    dest.removeListener('error', onerror);
    dest.removeListener('unpipe', onunpipe);
    src.removeListener('end', onend);
    src.removeListener('end', unpipe);
    src.removeListener('data', ondata);
    cleanedUp = true; // if the reader is waiting for a drain event from this
    // specific writer, then it would cause it to never start
    // flowing again.
    // So, if this is awaiting a drain, then we just call it now.
    // If we don't know, then assume that we are waiting for one.

    if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();
  } // If the user pushes more data while we're writing to dest then we'll end up
  // in ondata again. However, we only want to increase awaitDrain once because
  // dest will only emit one 'drain' event for the multiple writes.
  // => Introduce a guard on increasing awaitDrain.


  var increasedAwaitDrain = false;
  src.on('data', ondata);

  function ondata(chunk) {
    debug('ondata');
    increasedAwaitDrain = false;
    var ret = dest.write(chunk);

    if (false === ret && !increasedAwaitDrain) {
      // If the user unpiped during `dest.write()`, it is possible
      // to get stuck in a permanently paused state if that write
      // also returned false.
      // => Check whether `dest` is still a piping destination.
      if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {
        debug('false write response, pause', src._readableState.awaitDrain);
        src._readableState.awaitDrain++;
        increasedAwaitDrain = true;
      }

      src.pause();
    }
  } // if the dest has an error, then stop piping into it.
  // however, don't suppress the throwing behavior for this.


  function onerror(er) {
    debug('onerror', er);
    unpipe();
    dest.removeListener('error', onerror);
    if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);
  } // Make sure our error handler is attached before userland ones.


  prependListener(dest, 'error', onerror); // Both close and finish should trigger unpipe, but only once.

  function onclose() {
    dest.removeListener('finish', onfinish);
    unpipe();
  }

  dest.once('close', onclose);

  function onfinish() {
    debug('onfinish');
    dest.removeListener('close', onclose);
    unpipe();
  }

  dest.once('finish', onfinish);

  function unpipe() {
    debug('unpipe');
    src.unpipe(dest);
  } // tell the dest that it's being piped to


  dest.emit('pipe', src); // start the flow if it hasn't been started already.

  if (!state.flowing) {
    debug('pipe resume');
    src.resume();
  }

  return dest;
};

function pipeOnDrain(src) {
  return function () {
    var state = src._readableState;
    debug('pipeOnDrain', state.awaitDrain);
    if (state.awaitDrain) state.awaitDrain--;

    if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {
      state.flowing = true;
      flow(src);
    }
  };
}

Readable.prototype.unpipe = function (dest) {
  var state = this._readableState;
  var unpipeInfo = {
    hasUnpiped: false
  }; // if we're not piping anywhere, then do nothing.

  if (state.pipesCount === 0) return this; // just one destination.  most common case.

  if (state.pipesCount === 1) {
    // passed in one, but it's not the right one.
    if (dest && dest !== state.pipes) return this;
    if (!dest) dest = state.pipes; // got a match.

    state.pipes = null;
    state.pipesCount = 0;
    state.flowing = false;
    if (dest) dest.emit('unpipe', this, unpipeInfo);
    return this;
  } // slow case. multiple pipe destinations.


  if (!dest) {
    // remove all.
    var dests = state.pipes;
    var len = state.pipesCount;
    state.pipes = null;
    state.pipesCount = 0;
    state.flowing = false;

    for (var i = 0; i < len; i++) {
      dests[i].emit('unpipe', this, unpipeInfo);
    }

    return this;
  } // try to find the right one.


  var index = indexOf(state.pipes, dest);
  if (index === -1) return this;
  state.pipes.splice(index, 1);
  state.pipesCount -= 1;
  if (state.pipesCount === 1) state.pipes = state.pipes[0];
  dest.emit('unpipe', this, unpipeInfo);
  return this;
}; // set up data events if they are asked for
// Ensure readable listeners eventually get something


Readable.prototype.on = function (ev, fn) {
  var res = Stream.prototype.on.call(this, ev, fn);

  if (ev === 'data') {
    // Start flowing on next tick if stream isn't explicitly paused
    if (this._readableState.flowing !== false) this.resume();
  } else if (ev === 'readable') {
    var state = this._readableState;

    if (!state.endEmitted && !state.readableListening) {
      state.readableListening = state.needReadable = true;
      state.emittedReadable = false;

      if (!state.reading) {
        pna.nextTick(nReadingNextTick, this);
      } else if (state.length) {
        emitReadable(this);
      }
    }
  }

  return res;
};

Readable.prototype.addListener = Readable.prototype.on;

function nReadingNextTick(self) {
  debug('readable nexttick read 0');
  self.read(0);
} // pause() and resume() are remnants of the legacy readable stream API
// If the user uses them, then switch into old mode.


Readable.prototype.resume = function () {
  var state = this._readableState;

  if (!state.flowing) {
    debug('resume');
    state.flowing = true;
    resume(this, state);
  }

  return this;
};

function resume(stream, state) {
  if (!state.resumeScheduled) {
    state.resumeScheduled = true;
    pna.nextTick(resume_, stream, state);
  }
}

function resume_(stream, state) {
  if (!state.reading) {
    debug('resume read 0');
    stream.read(0);
  }

  state.resumeScheduled = false;
  state.awaitDrain = 0;
  stream.emit('resume');
  flow(stream);
  if (state.flowing && !state.reading) stream.read(0);
}

Readable.prototype.pause = function () {
  debug('call pause flowing=%j', this._readableState.flowing);

  if (false !== this._readableState.flowing) {
    debug('pause');
    this._readableState.flowing = false;
    this.emit('pause');
  }

  return this;
};

function flow(stream) {
  var state = stream._readableState;
  debug('flow', state.flowing);

  while (state.flowing && stream.read() !== null) {}
} // wrap an old-style stream as the async data source.
// This is *not* part of the readable stream interface.
// It is an ugly unfortunate mess of history.


Readable.prototype.wrap = function (stream) {
  var _this = this;

  var state = this._readableState;
  var paused = false;
  stream.on('end', function () {
    debug('wrapped end');

    if (state.decoder && !state.ended) {
      var chunk = state.decoder.end();
      if (chunk && chunk.length) _this.push(chunk);
    }

    _this.push(null);
  });
  stream.on('data', function (chunk) {
    debug('wrapped data');
    if (state.decoder) chunk = state.decoder.write(chunk); // don't skip over falsy values in objectMode

    if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;

    var ret = _this.push(chunk);

    if (!ret) {
      paused = true;
      stream.pause();
    }
  }); // proxy all the other methods.
  // important when wrapping filters and duplexes.

  for (var i in stream) {
    if (this[i] === undefined && typeof stream[i] === 'function') {
      this[i] = function (method) {
        return function () {
          return stream[method].apply(stream, arguments);
        };
      }(i);
    }
  } // proxy certain important events.


  for (var n = 0; n < kProxyEvents.length; n++) {
    stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));
  } // when we try to consume some more bytes, simply unpause the
  // underlying stream.


  this._read = function (n) {
    debug('wrapped _read', n);

    if (paused) {
      paused = false;
      stream.resume();
    }
  };

  return this;
};

Object.defineProperty(Readable.prototype, 'readableHighWaterMark', {
  // making it explicit this property is not enumerable
  // because otherwise some prototype manipulation in
  // userland will fail
  enumerable: false,
  get: function () {
    return this._readableState.highWaterMark;
  }
}); // exposed for testing purposes only.

Readable._fromList = fromList; // Pluck off n bytes from an array of buffers.
// Length is the combined lengths of all the buffers in the list.
// This function is designed to be inlinable, so please take care when making
// changes to the function body.

function fromList(n, state) {
  // nothing buffered
  if (state.length === 0) return null;
  var ret;
  if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {
    // read it all, truncate the list
    if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);
    state.buffer.clear();
  } else {
    // read part of list
    ret = fromListPartial(n, state.buffer, state.decoder);
  }
  return ret;
} // Extracts only enough buffered data to satisfy the amount requested.
// This function is designed to be inlinable, so please take care when making
// changes to the function body.


function fromListPartial(n, list, hasStrings) {
  var ret;

  if (n < list.head.data.length) {
    // slice is the same for buffers and strings
    ret = list.head.data.slice(0, n);
    list.head.data = list.head.data.slice(n);
  } else if (n === list.head.data.length) {
    // first chunk is a perfect match
    ret = list.shift();
  } else {
    // result spans more than one buffer
    ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);
  }

  return ret;
} // Copies a specified amount of characters from the list of buffered data
// chunks.
// This function is designed to be inlinable, so please take care when making
// changes to the function body.


function copyFromBufferString(n, list) {
  var p = list.head;
  var c = 1;
  var ret = p.data;
  n -= ret.length;

  while (p = p.next) {
    var str = p.data;
    var nb = n > str.length ? str.length : n;
    if (nb === str.length) ret += str;else ret += str.slice(0, n);
    n -= nb;

    if (n === 0) {
      if (nb === str.length) {
        ++c;
        if (p.next) list.head = p.next;else list.head = list.tail = null;
      } else {
        list.head = p;
        p.data = str.slice(nb);
      }

      break;
    }

    ++c;
  }

  list.length -= c;
  return ret;
} // Copies a specified amount of bytes from the list of buffered data chunks.
// This function is designed to be inlinable, so please take care when making
// changes to the function body.


function copyFromBuffer(n, list) {
  var ret = Buffer.allocUnsafe(n);
  var p = list.head;
  var c = 1;
  p.data.copy(ret);
  n -= p.data.length;

  while (p = p.next) {
    var buf = p.data;
    var nb = n > buf.length ? buf.length : n;
    buf.copy(ret, ret.length - n, 0, nb);
    n -= nb;

    if (n === 0) {
      if (nb === buf.length) {
        ++c;
        if (p.next) list.head = p.next;else list.head = list.tail = null;
      } else {
        list.head = p;
        p.data = buf.slice(nb);
      }

      break;
    }

    ++c;
  }

  list.length -= c;
  return ret;
}

function endReadable(stream) {
  var state = stream._readableState; // If we get here before consuming all the bytes, then that is a
  // bug in node.  Should never happen.

  if (state.length > 0) throw new Error('"endReadable()" called on non-empty stream');

  if (!state.endEmitted) {
    state.ended = true;
    pna.nextTick(endReadableNT, state, stream);
  }
}

function endReadableNT(state, stream) {
  // Check that we didn't get one last unshift.
  if (!state.endEmitted && state.length === 0) {
    state.endEmitted = true;
    stream.readable = false;
    stream.emit('end');
  }
}

function indexOf(xs, x) {
  for (var i = 0, l = xs.length; i < l; i++) {
    if (xs[i] === x) return i;
  }

  return -1;
}
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("yLpj"), __webpack_require__("8oxB")))

/***/ }),

/***/ "raBC":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var _interopRequireDefault = __webpack_require__("TqRt");

exports.__esModule = true;
exports.default = void 0;

var _inDOM = _interopRequireDefault(__webpack_require__("Bp9Y"));

var on = function on() {};

if (_inDOM.default) {
  on = function () {
    if (document.addEventListener) return function (node, eventName, handler, capture) {
      return node.addEventListener(eventName, handler, capture || false);
    };else if (document.attachEvent) return function (node, eventName, handler) {
      return node.attachEvent('on' + eventName, function (e) {
        e = e || window.event;
        e.target = e.target || e.srcElement;
        e.currentTarget = node;
        handler.call(node, e);
      });
    };
  }();
}

var _default = on;
exports.default = _default;
module.exports = exports["default"];

/***/ }),

/***/ "raTm":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var global = __webpack_require__("5T2Y");

var $export = __webpack_require__("Y7ZC");

var meta = __webpack_require__("6/1s");

var fails = __webpack_require__("KUxP");

var hide = __webpack_require__("NegM");

var redefineAll = __webpack_require__("XJU/");

var forOf = __webpack_require__("oioR");

var anInstance = __webpack_require__("EXMj");

var isObject = __webpack_require__("93I4");

var setToStringTag = __webpack_require__("RfKB");

var dP = __webpack_require__("2faE").f;

var each = __webpack_require__("V7Et")(0);

var DESCRIPTORS = __webpack_require__("jmDH");

module.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {
  var Base = global[NAME];
  var C = Base;
  var ADDER = IS_MAP ? 'set' : 'add';
  var proto = C && C.prototype;
  var O = {};

  if (!DESCRIPTORS || typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {
    new C().entries().next();
  }))) {
    // create collection constructor
    C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);
    redefineAll(C.prototype, methods);
    meta.NEED = true;
  } else {
    C = wrapper(function (target, iterable) {
      anInstance(target, C, NAME, '_c');
      target._c = new Base();
      if (iterable != undefined) forOf(iterable, IS_MAP, target[ADDER], target);
    });
    each('add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON'.split(','), function (KEY) {
      var IS_ADDER = KEY == 'add' || KEY == 'set';
      if (KEY in proto && !(IS_WEAK && KEY == 'clear')) hide(C.prototype, KEY, function (a, b) {
        anInstance(this, C, KEY);
        if (!IS_ADDER && IS_WEAK && !isObject(a)) return KEY == 'get' ? undefined : false;

        var result = this._c[KEY](a === 0 ? 0 : a, b);

        return IS_ADDER ? this : result;
      });
    });
    IS_WEAK || dP(C.prototype, 'size', {
      get: function () {
        return this._c.size;
      }
    });
  }

  setToStringTag(C, NAME);
  O[NAME] = C;
  $export($export.G + $export.W + $export.F, O);
  if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);
  return C;
};

/***/ }),

/***/ "rbyU":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(global) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return GLOBAL_OBJ; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return getGlobalObject; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return getGlobalSingleton; });
/** Internal global with common properties and Sentry extensions  */
// The code below for 'isGlobalObj' and 'GLOBAL_OBJ' was copied from core-js before modification
// https://github.com/zloirock/core-js/blob/1b944df55282cdc99c90db5f49eb0b6eda2cc0a3/packages/core-js/internals/global.js
// core-js has the following licence:
//
// Copyright (c) 2014-2022 Denis Pushkarev
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.

/** Returns 'obj' if it's the global object, otherwise returns undefined */
function isGlobalObj(obj) {
  return obj && obj.Math == Math ? obj : undefined;
}
/** Get's the global object for the current JavaScript runtime */


const GLOBAL_OBJ = typeof globalThis == 'object' && isGlobalObj(globalThis) || // eslint-disable-next-line no-restricted-globals
typeof window == 'object' && isGlobalObj(window) || typeof self == 'object' && isGlobalObj(self) || typeof global == 'object' && isGlobalObj(global) || function () {
  return this;
}() || {};
/**
 * @deprecated Use GLOBAL_OBJ instead or WINDOW from @sentry/browser. This will be removed in v8
 */


function getGlobalObject() {
  return GLOBAL_OBJ;
}
/**
 * Returns a global singleton contained in the global `__SENTRY__` object.
 *
 * If the singleton doesn't already exist in `__SENTRY__`, it will be created using the given factory
 * function and added to the `__SENTRY__` object.
 *
 * @param name name of the global singleton on __SENTRY__
 * @param creator creator Factory function to create the singleton if it doesn't already exist on `__SENTRY__`
 * @param obj (Optional) The global object on which to look for `__SENTRY__`, if not `GLOBAL_OBJ`'s return value
 * @returns the singleton
 */


function getGlobalSingleton(name, creator, obj) {
  const gbl = obj || GLOBAL_OBJ;

  const __SENTRY__ = gbl.__SENTRY__ = gbl.__SENTRY__ || {};

  const singleton = __SENTRY__[name] || (__SENTRY__[name] = creator());
  return singleton;
}


/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("yLpj")))

/***/ }),

/***/ "rfXi":
/***/ (function(module, exports, __webpack_require__) {

module.exports = {
  "default": __webpack_require__("0tVQ"),
  __esModule: true
};

/***/ }),

/***/ "rjSc":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* unused harmony export EventType */
/* unused harmony export MenuType */
/* unused harmony export AssetType */
/* harmony import */ var uuid__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("EcEN");
/* harmony import */ var uuid__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(uuid__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var lodash_merge__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("2oH+");
/* harmony import */ var lodash_merge__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_merge__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _stores_Settings__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("5u1M");
/* harmony import */ var _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("mm/P");
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2019 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
 // This import style was easier to mock than ''uuid/v1'



/**
 * String representations of statuses for analytics
 */
var EventType;
(function (EventType) {
    EventType["Click"] = "click";
    EventType["Success"] = "success";
    EventType["Error"] = "error";
})(EventType || (EventType = {}));
/**
 * String representations of different SDM Categories
 */
var AssetType;
(function (AssetType) {
    AssetType["Document"] = "Composite";
    AssetType["Folder"] = "Folder";
})(AssetType || (AssetType = {}));
var MenuType;
(function (MenuType) {
    MenuType["Header"] = "header";
    MenuType["Context"] = "context-menu";
    MenuType["Dialog"] = "dialog";
    MenuType["CCDRightRail"] = "right-rail";
})(MenuType || (MenuType = {}));
const OPERATIONS_SUBCATEGORY = 'Operations';
class Metrics {
    static createCorrelationId() {
        return uuid__WEBPACK_IMPORTED_MODULE_0___default.a.v1();
    }
    /**
     * Fire the ingest event
     *
     * @param ccxIngest       IngestController object from provider
     * @param data            analytics data
     * @param isOffline       offline connection status
     * @param ingestOptions   optional override parameters for the event posting
     */
    static fireEvent(ccxIngest, data, isOffline, hostProductData) {
        let ingestOptions;
        if (hostProductData && hostProductData.analyticsProjectKey !== '') {
            ingestOptions = { ANALYTICS_PROJECT: hostProductData.analyticsProjectKey };
        }
        data.event.offline = isOffline;
        ccxIngest.fireEvent(data, false, ingestOptions).catch(e => {
            if (!isOffline) {
                // Promise will always reject if offline, even though the events are queued
                // No need to clutter the console log
                _stores_Settings__WEBPACK_IMPORTED_MODULE_2__[/* settings */ "b"].logger.error(`[ccx-cdo] ccxIngest.fireEvent failed ${e}`);
            }
        });
    }
    /**
     * Workflow based on element type
     */
    static determineUsageSDMWorkflow(element) {
        if (element) {
            return element.isFolder ? _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_3__[/* Workflow */ "f"].Folder : _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_3__[/* Workflow */ "f"].Document;
        }
        return _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_3__[/* Workflow */ "f"].Asset;
    }
    static determineAssetType(element) {
        return element.isFolder ? AssetType.Folder : AssetType.Document;
    }
    static getCancelledSubtype(subtype) {
        return `${subtype}-cancelled`;
    }
    static getAssetData(element) {
        const data = { content: {}, event: {} };
        data.content['category'] = Metrics.determineAssetType(element);
        if (element.fileExtension) {
            data.content['extension'] = element.fileExtension;
        }
        if (element.type) {
            data.content['mimetype'] = element.type;
        }
        return data;
    }
    static getItemClickEvent(element, event = {}) {
        return {
            ...Metrics.getProjectData(element),
            event: {
                type: _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_3__[/* Type */ "e"].click,
                ...event,
            },
        };
    }
    static getProjectData(element) {
        const data = {
            content: {
                id: element.id,
                name: element.displayName,
            },
        };
        if (element.type) {
            data.content.type = element.type;
        }
        return data;
    }
    static getDurationData(dtsStart) {
        const trnNumber = Metrics.createCorrelationId();
        const duration = Date.now() - dtsStart.getTime();
        const durationInSeconds = duration / 1000;
        return {
            event: {
                dts_start: dtsStart,
                value: durationInSeconds,
            },
            trn: {
                number: trnNumber,
                product: 'Performance',
                amount: 0,
                quantity: durationInSeconds,
            },
        };
    }
    static getOperationalMetricData(actionAnalyticsValue, { correlationId, element, success, dtsStart, errorCode, errorDesc, offline, }) {
        const data = {
            event: {
                workflow: _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_3__[/* Workflow */ "f"].CloudDocuments,
                subcategory: OPERATIONS_SUBCATEGORY,
                type: success ? EventType.Success : EventType.Error,
                subtype: actionAnalyticsValue,
                offline,
            },
            content: {},
            context: {
                guid: correlationId,
            },
        };
        // TODO: Update this to attempt numbers, currently following the PS behavior
        // to determine success and error: https://jira.corp.adobe.com/browse/PS-39334
        // success is 0, and recover 1 (more than one attempt) since we don't handle recover count is 0
        // Jira: https://jira.corp.adobe.com/browse/CCXCD-2976
        if (success) {
            data.event['count'] = 0;
        }
        if (dtsStart) {
            lodash_merge__WEBPACK_IMPORTED_MODULE_1___default()(data, Metrics.getDurationData(dtsStart));
        }
        if (element) {
            lodash_merge__WEBPACK_IMPORTED_MODULE_1___default()(data, Metrics.getAssetData(element));
        }
        if (errorCode) {
            data.event['error_code'] = errorCode;
        }
        if (errorDesc) {
            data.event['error_desc'] = errorDesc;
        }
        return data;
    }
}
/* harmony default export */ __webpack_exports__["a"] = (Metrics);



/***/ }),

/***/ "rjik":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = boundingRectOverlapping;

function boundingRectOverlapping(br1, br2) {
  if (isBoundingClientRectZero(br1) || isBoundingClientRectZero(br2)) {
    return false;
  }

  return !(br2.left >= br1.right || br2.right <= br1.left || br2.top >= br1.bottom || br2.bottom <= br1.top);
}

function isBoundingClientRectZero(br) {
  if (br.left === 0 && br.right === 0 && br.top === 0 && br.bottom === 0) {
    return true;
  }

  return false;
}

/***/ }),

/***/ "roQf":
/***/ (function(module, exports, __webpack_require__) {

var Buffer = __webpack_require__("hwdV").Buffer;

var MD5 = __webpack_require__("9XZ3");
/* eslint-disable camelcase */


function EVP_BytesToKey(password, salt, keyBits, ivLen) {
  if (!Buffer.isBuffer(password)) password = Buffer.from(password, 'binary');

  if (salt) {
    if (!Buffer.isBuffer(salt)) salt = Buffer.from(salt, 'binary');
    if (salt.length !== 8) throw new RangeError('salt should be Buffer with 8 byte length');
  }

  var keyLen = keyBits / 8;
  var key = Buffer.alloc(keyLen);
  var iv = Buffer.alloc(ivLen || 0);
  var tmp = Buffer.alloc(0);

  while (keyLen > 0 || ivLen > 0) {
    var hash = new MD5();
    hash.update(tmp);
    hash.update(password);
    if (salt) hash.update(salt);
    tmp = hash.digest();
    var used = 0;

    if (keyLen > 0) {
      var keyStart = key.length - keyLen;
      used = Math.min(keyLen, tmp.length);
      tmp.copy(key, keyStart, 0, used);
      keyLen -= used;
    }

    if (used < tmp.length && ivLen > 0) {
      var ivStart = iv.length - ivLen;
      var length = Math.min(ivLen, tmp.length - used);
      tmp.copy(iv, ivStart, used, used + length);
      ivLen -= length;
    }
  }

  tmp.fill(0);
  return {
    key: key,
    iv: iv
  };
}

module.exports = EVP_BytesToKey;

/***/ }),

/***/ "rr1i":
/***/ (function(module, exports) {

module.exports = function (bitmap, value) {
  return {
    enumerable: !(bitmap & 1),
    configurable: !(bitmap & 2),
    writable: !(bitmap & 4),
    value: value
  };
};

/***/ }),

/***/ "rtwt":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

var _SelectList = _interopRequireDefault(__webpack_require__("eHop"));

const _excluded = ["boundariesElement"];

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

var _default = props => {
  // eslint-disable-next-line no-unused-vars
  const {
    boundariesElement
  } = props,
        otherProps = _objectWithoutProperties(props, _excluded);

  return /*#__PURE__*/_react.default.createElement(_SelectList.default, otherProps);
};

exports.default = _default;

/***/ }),

/***/ "rvkL":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXPORTS
__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ CCDApi_CCDApi; });
__webpack_require__.d(__webpack_exports__, "b", function() { return /* binding */ ROOT_ROUTE; });
__webpack_require__.d(__webpack_exports__, "c", function() { return /* binding */ SWY_SUBROUTE; });

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__("q1tI");
var react_default = /*#__PURE__*/__webpack_require__.n(react);

// EXTERNAL MODULE: ./node_modules/mobx/lib/mobx.module.js
var mobx_module = __webpack_require__("2vnA");

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/Add/index.js
var Add = __webpack_require__("63WY");
var Add_default = /*#__PURE__*/__webpack_require__.n(Add);

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/Share/index.js
var Share = __webpack_require__("iUn+");
var Share_default = /*#__PURE__*/__webpack_require__.n(Share);

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/OpenIn/index.js
var OpenIn = __webpack_require__("yhrW");
var OpenIn_default = /*#__PURE__*/__webpack_require__.n(OpenIn);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/polyfills/react-intl.ts
var react_intl = __webpack_require__("dAeb");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/create-placeholder-folder.ts
var create_placeholder_folder = __webpack_require__("brtb");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/launch-item.ts
var launch_item = __webpack_require__("Kko5");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/stores/constants.ts
var constants = __webpack_require__("C0qj");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/stores/SelectionStore.ts
var SelectionStore = __webpack_require__("7XYX");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/action.ts
var utils_action = __webpack_require__("zPGX");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/submenu.ts
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/

class submenu_SubMenu {
    constructor({ value, label, activationMethod, actions, actionsOrder = undefined, buttonVariant = 'action', icon = undefined, isVisible = selectionStore => Object(SelectionStore["c" /* hasAny */])(selectionStore), getDisabledTooltipMsgId = () => '', }) {
        this.updateActions = ({ actions, actionsOrder, }) => {
            this._actions = actions;
            // If no ordering provided, default to the action order
            this._actionsOrder = actionsOrder || actions.map(action => action.value);
        };
        this.value = value;
        this.label = label;
        this.icon = icon;
        this.isVisible = isVisible;
        this.getDisabledTooltipMsgId = getDisabledTooltipMsgId;
        this.activationMethod = activationMethod;
        this.buttonVariant = buttonVariant;
        this.updateActions({ actions, actionsOrder });
    }
    get actions() {
        return this._actions;
    }
    get actionsOrder() {
        return this._actionsOrder;
    }
    isEnabled(selectionStore) {
        return this.getDisabledTooltipMsgId(selectionStore) === '';
    }
}
/* harmony default export */ var submenu = (submenu_SubMenu);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/CDOMetrics.ts
var CDOMetrics = __webpack_require__("0zmA");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/constants.ts
var utils_constants = __webpack_require__("a375");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/actions/index.tsx + 7 modules
var utils_actions = __webpack_require__("xsR+");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/i18n.ts
var i18n = __webpack_require__("oSp+");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/metrics.ts
var metrics = __webpack_require__("jaHz");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/normalize-path.ts
var normalize_path = __webpack_require__("7L8R");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/utils.ts
var utils = __webpack_require__("+Ots");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/validate-filename.ts
var validate_filename = __webpack_require__("AXVi");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/hosts/get-export-cloud-doc-data.ts
function getExportDocumentData(element) {
    return {
        cloudID: element.cloudID,
        urn: element.urn,
        name: element.title,
        mimeType: element.type,
        modifiedDate: element.modifiedDate,
        path: element.path,
    };
}
/* harmony default export */ var get_export_cloud_doc_data = (getExportDocumentData);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/Logger.ts
var Logger = __webpack_require__("lmMR");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/urls.ts
var urls = __webpack_require__("RIxR");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/stores/AssetSelectionStore.ts
var AssetSelectionStore = __webpack_require__("54FZ");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/hosts/CCDApi.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2019 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
























const ROOT_ROUTE = '/files/';
const SWY_SUBROUTE = utils_constants["s" /* SHARED_WITH_YOU_PATH */];
const CCD_DEFAULT_TOAST_TIMEOUT = 8000;
var CCDViewMode;
(function (CCDViewMode) {
    CCDViewMode["Grid"] = "grid";
    CCDViewMode["List"] = "list";
})(CCDViewMode || (CCDViewMode = {}));
const CDO_TO_CCD_VIEW_MODE = {
    [utils_constants["v" /* ViewMode */].Grid]: CCDViewMode.Grid,
    [utils_constants["v" /* ViewMode */].List]: CCDViewMode.List,
};
var CCDActionValue;
(function (CCDActionValue) {
    CCDActionValue["AddToFavourites"] = "add-to-shortcuts";
    CCDActionValue["RemoveFromFavourites"] = "remove-from-shortcuts";
    CCDActionValue["Divider"] = "-";
    CCDActionValue["OpenInAssetsWeb"] = "open-assets-web";
    CCDActionValue["ChangeDefaultOpenApp"] = "change-default-app";
    CCDActionValue["LaunchApp"] = "launch-app";
    CCDActionValue["RightRailOpen"] = "right-rail-open";
})(CCDActionValue || (CCDActionValue = {}));
var CCDSubMenuValue;
(function (CCDSubMenuValue) {
    CCDSubMenuValue["SubMenuShare"] = "submenu-share";
    CCDSubMenuValue["OpenWithCloudDoc"] = "open-with-cloud-doc";
    CCDSubMenuValue["OpenWithSWY"] = "open-with-swy";
})(CCDSubMenuValue || (CCDSubMenuValue = {}));
var CCDMultiActionValue;
(function (CCDMultiActionValue) {
    CCDMultiActionValue["MultiActionShare"] = "multiaction-share";
    CCDMultiActionValue["NoSelectAction"] = "no-select-action";
})(CCDMultiActionValue || (CCDMultiActionValue = {}));
const MENU_AS_HEADING = new Set([CCDActionValue.LaunchApp]);
const CONTEXT_MENU_ORDER = [
    utils_action["a" /* CDOActionValue */].Open,
    CCDSubMenuValue.OpenWithCloudDoc,
    CCDSubMenuValue.OpenWithSWY,
    CCDActionValue.Divider,
    utils_action["a" /* CDOActionValue */].Preview,
    CCDActionValue.Divider,
    utils_action["a" /* CDOActionValue */].Select,
    utils_action["a" /* CDOActionValue */].ShareSheetAction,
    utils_action["a" /* CDOActionValue */].Export,
    CCDActionValue.Divider,
    utils_action["a" /* CDOActionValue */].Rename,
    utils_action["a" /* CDOActionValue */].Duplicate,
    utils_action["a" /* CDOActionValue */].Pin,
    utils_action["a" /* CDOActionValue */].UnPin,
    utils_action["a" /* CDOActionValue */].Move,
    utils_action["a" /* CDOActionValue */].Schedule,
    utils_action["a" /* CDOActionValue */].Archive,
    utils_action["a" /* CDOActionValue */].Restore,
    utils_action["a" /* CDOActionValue */].PermanentDelete,
    CCDActionValue.OpenInAssetsWeb,
];
const RIGHT_RAIL_MAIN_MENU_ORDER = [
    CCDMultiActionValue.NoSelectAction,
    CCDActionValue.RightRailOpen,
    CCDSubMenuValue.OpenWithCloudDoc,
    CCDSubMenuValue.OpenWithSWY,
    utils_action["a" /* CDOActionValue */].Preview,
    utils_action["a" /* CDOActionValue */].ShareSheetAction,
    utils_action["a" /* CDOActionValue */].Rename,
    utils_action["a" /* CDOActionValue */].Duplicate,
    utils_action["a" /* CDOActionValue */].Move,
    utils_action["a" /* CDOActionValue */].Schedule,
    utils_action["a" /* CDOActionValue */].Archive,
    utils_action["a" /* CDOActionValue */].Restore,
    utils_action["a" /* CDOActionValue */].PermanentDelete,
];
const RIGHT_RAIL_MORE_MENU_ORDER = [
    utils_action["a" /* CDOActionValue */].Pin,
    utils_action["a" /* CDOActionValue */].UnPin,
    utils_action["a" /* CDOActionValue */].Export,
    CCDActionValue.OpenInAssetsWeb,
];
const HEADER_MENU_ORDER = [
    utils_action["a" /* CDOActionValue */].Rename,
    CCDActionValue.Divider,
    CCDActionValue.AddToFavourites,
    CCDActionValue.RemoveFromFavourites,
    CCDActionValue.OpenInAssetsWeb,
];
const OPEN_WITH_APP_PREFIX = 'OpenWithApp';
const LAUNCH_APP_PREFIX = 'LaunchApp';
const CustomIcon = ({ src, alt }) => (react_default.a.createElement("img", { className: "spectrum-Icon spectrum-Icon--sizeS", src: src, alt: alt }));
class CCDApi_CCDApi {
    constructor({ context, cdoStore, docStore, translationUtil, ingestController, favouritesStore, openStore, launchAppStore, exportStore, importStore, oneUpStore, scheduleStore, cdoMetrics, }) {
        this.logger = new Logger["a" /* Logger */](this.constructor.name);
        this.getDisabledTooltipMsgIdOnlineOnly = (selectionStore) => {
            if (this.docStore.isOnline) {
                return '';
            }
            return utils_action["c" /* DEFAULT_DISABLED_TOOLTIP_MSG_ID */];
        };
        // returns syncing disabled tooltip when any elements are syncing, if not checks for online status
        this.getDisabledTooltipMsgIdSyncingAndOnline = (selectionStore) => {
            if (this.selectionHasSyncingElements(selectionStore)) {
                return 'tooltip.syncing.disabled';
            }
            return this.getDisabledTooltipMsgIdOnlineOnly(selectionStore);
        };
        // This must come before the Actions, or it doesn't work
        // eslint-disable-next-line react/sort-comp
        this.selectionHasSyncingElements = (selectionStore) => selectionStore.selectedElements.some(element => element.isSyncing);
        this.exportAction = new utils_action["d" /* default */]({
            value: utils_action["a" /* CDOActionValue */].Export,
            // TODO: rename change exportAction -> downloadAction
            // Jira: https://jira.corp.adobe.com/browse/CCXCD-8440
            label: 'ccd.menu.download',
            icon: null,
            isVisible: (selectionStore) => selectionStore.hasOnlyNonFolders &&
                !selectionStore.hasAnyLocalItemsToBeSynced &&
                this.exportStore.isExportActionAvailable(
                // to return array of distinct mimetypes
                [...new Set(selectionStore.selectedElements.map(element => element.type))]),
            getDisabledTooltipMsgId: this.getDisabledTooltipMsgIdSyncingAndOnline,
            beforeExecute: async (elements) => {
                // this was necessary to remove previously logged error data.
                this.exportAction.analyticsState = {};
                // We check if all preconditions are satisfied, like number of elements
                // should be less than max Limit. it returns { success: true }, if all are satisfied
                // else returns the object containing error codes and description
                // this analytics overriding is required because, when user selects more than max limit for export,
                // a dialog on CCD will be shown indicating export can't be performed and
                // beforeExecute will return empty array and CDO will send export-cancelled analytics, but actually,
                // we are not cancelling export and so we override it to send error event with corresponding error codes.
                const status = await this.exportStore.canExportDocuments(elements);
                if (status.success === false) {
                    const { errorCode, errorDesc } = status;
                    const event = {
                        event: {
                            type: this.cdoMetrics.EventType.Error,
                            subtype: metrics["a" /* ActionAnalyticsValue */].Export,
                            error_code: errorCode,
                            error_desc: errorDesc,
                        },
                    };
                    this.exportAction.analyticsState = { ...event };
                    return [[]];
                }
                // getExportPath resolves with elements and exportPath if user selects location
                // else it resolves with empty array.
                return this.exportStore.getExportPath(elements);
            },
            execute: async (elements, correlationId, exportPath) => {
                const analyticsValue = metrics["a" /* ActionAnalyticsValue */].Export;
                const metricLogger = this.cdoMetrics.getOperationalMetricLogger(analyticsValue);
                Promise.all(elements.map(element => {
                    const startTime = new Date(Date.now());
                    const singleExportPromise = this.exportStore.exportSingleCloudDoc(get_export_cloud_doc_data(element), exportPath);
                    singleExportPromise.then((status) => {
                        const metricLoggerOptions = {
                            correlationId,
                            element,
                            eventType: metrics["c" /* EventType */].Success,
                            dtsStart: startTime,
                        };
                        if (status.success === false) {
                            metricLoggerOptions.eventType = metrics["c" /* EventType */].Error;
                            if (status.errorCode) {
                                metricLoggerOptions.errorCode = status.errorCode;
                            }
                            if (status.errorDesc) {
                                metricLoggerOptions.errorDesc = status.errorDesc;
                            }
                        }
                        metricLogger(metricLoggerOptions);
                    });
                    return singleExportPromise;
                }));
            },
            getAnalyticsOverrides: (element, phase) => ({
                ...this.exportAction.analyticsState,
            }),
        });
        this.openWithSubMenuCloudDoc = new submenu({
            value: CCDSubMenuValue.OpenWithCloudDoc,
            label: 'ccd.menu.openWith',
            icon: react_default.a.createElement(OpenIn_default.a, null),
            isVisible: selectionStore => selectionStore.hasOnlyNonFolders &&
                this.openStore.isOpenWithActionAvailable(selectionStore.selectedElements.map(element => Object(launch_item["c" /* getLaunchDocInfo */])(element))),
            getDisabledTooltipMsgId: () => '',
            activationMethod: 'hover',
            actions: [],
        });
        this.openWithSubMenuSWY = new submenu({
            value: CCDSubMenuValue.OpenWithSWY,
            label: 'ccd.menu.openWith',
            icon: react_default.a.createElement(OpenIn_default.a, null),
            isVisible: selectionStore => selectionStore.hasOnlyNonFolders &&
                this.openStore.isOpenWithActionAvailable(selectionStore.selectedElements.map(element => Object(launch_item["c" /* getLaunchDocInfo */])(element))),
            getDisabledTooltipMsgId: () => '',
            activationMethod: 'hover',
            actions: [],
        });
        this.noSelectMultiAction = new submenu({
            value: CCDMultiActionValue.NoSelectAction,
            label: 'ccd.menu.createNew',
            icon: react_default.a.createElement(Add_default.a, null),
            buttonVariant: 'cta',
            isVisible: selectionStore => !Object(SelectionStore["c" /* hasAny */])(selectionStore),
            getDisabledTooltipMsgId: () => '',
            activationMethod: 'click',
            actions: [],
        });
        this.extractDataForFavourites = (elements) => elements.map((folder) => ({
            uri: folder.cloudUri,
            path: folder.path,
        }));
        this.getFavouritesAction = () => {
            const hasNonFavouriteFolder = (elements) => elements.some(folder => {
                const data = {
                    uri: folder.cloudUri,
                    path: folder.path,
                };
                return !this.favouritesStore.isMarkedAsFavourite(data);
            });
            const addToFavourites = new utils_action["d" /* default */]({
                value: CCDActionValue.AddToFavourites,
                label: 'ccd.menu.addToFavourites',
                icon: null,
                isVisible: selectionStore => this.favouritesStore.isAvailable() &&
                    selectionStore.hasAny &&
                    selectionStore.hasOnlyFolders &&
                    hasNonFavouriteFolder(selectionStore.selectedElements),
                execute: async (elements, correlationId) => {
                    const data = this.extractDataForFavourites(elements);
                    const status = await this.favouritesStore.addToFavourites(data);
                    addToFavourites.analyticsState = {
                        event: {
                            type: status
                                ? this.cdoMetrics.EventType.Success
                                : this.cdoMetrics.EventType.Error,
                        },
                    };
                },
                getAnalyticsOverrides: (element, phase) => phase === metrics["g" /* UsageMetricPhase */].ActionComplete ? addToFavourites.analyticsState : {},
            });
            const removeFromFavourites = new utils_action["d" /* default */]({
                value: CCDActionValue.RemoveFromFavourites,
                label: 'ccd.menu.removeFromFavourites',
                icon: null,
                isVisible: (selectionStore) => this.favouritesStore.isAvailable() &&
                    selectionStore.hasAny &&
                    selectionStore.hasOnlyFolders &&
                    !hasNonFavouriteFolder(selectionStore.selectedElements),
                execute: async (elements, correlationId) => {
                    const data = this.extractDataForFavourites(elements);
                    const status = await this.favouritesStore.removeFromFavourites(data);
                    removeFromFavourites.analyticsState = {
                        event: {
                            type: status
                                ? this.cdoMetrics.EventType.Success
                                : this.cdoMetrics.EventType.Error,
                        },
                    };
                },
                getAnalyticsOverrides: (element, phase) => phase === metrics["g" /* UsageMetricPhase */].ActionComplete
                    ? removeFromFavourites.analyticsState
                    : {},
            });
            return [addToFavourites, removeFromFavourites];
        };
        this.getCCDSpecificActions = (subroute) => {
            let actions = [this.noSelectMultiAction];
            const { hostProductData } = this.cdoStore;
            actions = [
                ...actions,
                ...(hostProductData.hostSpecificActions ? hostProductData.hostSpecificActions : []),
            ];
            if (subroute !== utils_constants["a" /* ARCHIVE_FOLDER_PATH */]) {
                actions = [...actions, this.rightRailOpenAction];
            }
            if (subroute === utils_constants["q" /* ROOT_FOLDER_PATH */]) {
                actions = [
                    ...actions,
                    ...this.getFavouritesAction(),
                    this.exportAction,
                    this.shareSubMenu,
                    this.shareMultiAction,
                    this.openWithSubMenuCloudDoc,
                ];
            }
            if (subroute === utils_constants["s" /* SHARED_WITH_YOU_PATH */]) {
                actions = [...actions, this.openWithSubMenuSWY];
            }
            return actions;
        };
        /**
         * Attempts to show context menu, if there are any actions to show
         */
        this.onContextMenu = (event, element, actionMenuItems) => {
            // Default to showing context menu for the element
            let selectionStore = new AssetSelectionStore["a" /* default */]([element]);
            // If the element is included in current selections, show context for all selections
            if (this.selectionStore.isSelected(element)) {
                selectionStore = this.selectionStore;
            }
            this.ccdContext.showContextMenu({ x: event.pageX, y: event.pageY }, this.mapToCCDContextMenu(actionMenuItems, selectionStore));
            // Stop bubbling so default handler is not invoked
            event.stopPropagation();
            // Prevent system context menu
            event.preventDefault();
        };
        this.getAncestorPaths = (path) => {
            const folders = path.split('/');
            return folders.map((value, index) => ({
                id: folders.slice(0, index + 1).join('/'),
                label: value,
            }));
        };
        this.showToast = ({ message = '', // message id, without the "toast." prefix
        variant = 'default', values = {}, closeable = true, // CCD toasts are closable by default
        delay = CCD_DEFAULT_TOAST_TIMEOUT, action = () => { }, actionLabelMsgId = '', }) => {
            const actionLabel = actionLabelMsgId
                ? this.intl.formatMessage({ id: actionLabelMsgId })
                : undefined;
            return this.ccdContext.showToast(this.intl.formatMessage({ id: `toast.${message}` }, values), {
                variant,
                closable: closeable,
                timeout: delay,
                onAction: action,
                actionLabel,
            });
        };
        this.hideToast = (key) => {
            if (key && key !== -1) {
                this.ccdContext.hideToast(key);
            }
        };
        const normalizedLocale = i18n["a" /* default */].normalizeLocale(translationUtil.getLanguageCode());
        this.intl = Object(react_intl["c" /* createIntl */])({ uiLocale: normalizedLocale });
        this.ccdContext = context;
        this.favouritesStore = favouritesStore;
        this.openStore = openStore;
        this.oneUpStore = oneUpStore;
        this.scheduleStore = scheduleStore;
        this.exportStore = exportStore;
        this.importStore = importStore;
        this.launchAppStore = launchAppStore;
        this.cdoStore = cdoStore;
        this.docStore = docStore;
        this.cdoMetrics = cdoMetrics /* from arg */ || docStore.cdoMetrics;
        Object(mobx_module["k" /* autorun */])(() => this.updateOpenWith());
        // cdoStore is only available inside the constructor at construction time, so
        // use the share action factories here
        this.shareSheetLinkAction = Object(utils_actions["f" /* shareSheetLinkActionFactory */])({
            onOpenShareSheet: this.showShareSheet.bind(this),
            cdoStore: this.cdoStore,
            selectionHasSyncingElements: this.selectionHasSyncingElements,
        });
        // hide the icon
        this.shareSheetLinkAction.icon = null;
        this.shareSubMenu = new submenu({
            value: CCDSubMenuValue.SubMenuShare,
            label: 'ccd.menu.share',
            icon: null,
            isVisible: selectionStore => selectionStore.hasAny,
            getDisabledTooltipMsgId: this.getDisabledTooltipMsgIdOnlineOnly,
            activationMethod: 'hover',
            actions: [this.shareSheetLinkAction, this.exportAction],
        });
        this.rightRailOpenAction = Object(utils_actions["b" /* openActionFactory */])({
            value: CCDActionValue.RightRailOpen,
            canOpenMultiple: this.cdoStore.isFeatureFlagEnabled('enableCloudDocMultiSelectOpen'),
            canOpenItems: this.isRightRailOpenActionAvailable.bind(this),
            getDisabledTooltipMsgId: this.getDisabledTooltipMsgIdSyncingAndOnline,
            onOpenDocuments: this.openDocuments.bind(this),
            startSyncErrorResolutionWorkflow: (element) => { },
        });
        this.shareMultiAction = new submenu({
            value: CCDMultiActionValue.MultiActionShare,
            label: 'ccd.menu.share',
            icon: react_default.a.createElement(Share_default.a, null),
            isVisible: selectionStore => selectionStore.hasAny,
            getDisabledTooltipMsgId: this.getDisabledTooltipMsgIdOnlineOnly,
            activationMethod: 'click',
            actions: [this.shareSheetLinkAction, this.exportAction],
        });
    }
    setRoute(route) {
        if (!route) {
            return;
        }
        this.ccdContext.setRoute(route);
    }
    isRightRailOpenActionAvailable(docInfoArray) {
        // if 'Open in' action not visible, display the 'Open' action in rightRail
        return (this.openStore.isOpenActionAvailable(docInfoArray) &&
            !this.openStore.isOpenWithActionAvailable(docInfoArray));
    }
    redirectToAssetsWeb(cloudURI, isFolder) {
        // we would want the normalized(remapped) locale here (not the intl.locale)
        // since assets web have a different mapping for some locales.
        // DocStore contains the normalized locale
        const locale = this.docStore.locale || 'en';
        const url = Object(urls["b" /* assetsWebUrl */])(this.cdoStore.imsData.environment, {
            cloudURI,
            isFolder,
            locale,
        });
        this.ccdContext.launchJumpURL(url);
    }
    updateOpenWith() {
        const renditionUrl = this.cdoStore.isFeatureFlagEnabled('enableRenditionUrl');
        const processInstalledApps = (installedAppsByType) => {
            if (!installedAppsByType.size) {
                return {
                    actions: [],
                    actionsOrder: [],
                };
            }
            const actions = [];
            const defaultLabel = this.intl.formatMessage({ id: 'ccd.menu.default' });
            [...installedAppsByType.entries()].forEach(([type, apps]) => {
                apps.forEach((app, index) => {
                    actions.push(new utils_action["d" /* default */]({
                        value: `${OPEN_WITH_APP_PREFIX}${app.sapcode}`,
                        analyticsValue: 'open-with',
                        label: index ? app.name : `${app.name} ${defaultLabel}`,
                        icon: null,
                        isVisible: selectionStore => 
                        // isVisible per app (sub-menu item)
                        selectionStore.selectedElements.every(doc => doc.type === type),
                        getDisabledTooltipMsgId: () => '',
                        execute: async (elements) => {
                            const files = elements.map(element => Object(launch_item["c" /* getLaunchDocInfo */])(element, renditionUrl));
                            this.openStore.open({ files, sapcode: app.sapcode });
                        },
                        getAnalyticsOverrides: (element, phase) => ({
                            content: {
                                id: app.sapcode,
                                name: app.name,
                            },
                        }),
                    }));
                });
            });
            const actionsOrder = actions.map(action => action.value);
            actionsOrder.push(CCDActionValue.Divider);
            actionsOrder.push(CCDActionValue.ChangeDefaultOpenApp);
            actions.push(new utils_action["d" /* default */]({
                value: CCDActionValue.ChangeDefaultOpenApp,
                label: 'ccd.menu.changeDefaultApp',
                execute: async (elements) => {
                    elements && this.openStore.changeDefaultApp(Object(launch_item["c" /* getLaunchDocInfo */])(elements[0]));
                },
            }));
            return { actions, actionsOrder };
        };
        this.openWithSubMenuCloudDoc.updateActions(processInstalledApps(this.openStore.getAvailableAppsByType(false)));
        this.openWithSubMenuSWY.updateActions(processInstalledApps(this.openStore.getAvailableAppsByType(true)));
    }
    updateMenusOnNetworkStatusChange(subRoute, isRightRailHidden) {
        if (this.selectionStore) {
            this.updateNoSelectionAction();
            this.updateRightRail(this.selectionStore, subRoute, isRightRailHidden);
        }
    }
    updateNoSelectionAction() {
        const { availableActions, launchAppStore } = this;
        // We should be able to show "Create new folder" when the list of cloud
        // docs supporting apps is not ready
        if (!availableActions && !launchAppStore.isInitialized) {
            this.noSelectMultiAction.updateActions({ actions: [] });
            return;
        }
        // For SWY and Deleted, addFolderAction isn't available
        const addFolderAction = availableActions.find(action => action.value === utils_action["a" /* CDOActionValue */].CreateNewFolder);
        // Note: CCD will need to complete https://jira.corp.adobe.com/browse/CCD-24240
        const importAction = availableActions.find(action => action.value === utils_action["a" /* CDOActionValue */].Import);
        let actions = [].concat(addFolderAction || [], importAction || []);
        let launchAppActions = [];
        const apps = launchAppStore.isInitialized ? launchAppStore.getAppsList() : [];
        if (apps.length) {
            // add a menu heading indicating launch
            const heading = new utils_action["d" /* default */]({
                value: CCDActionValue.LaunchApp,
                label: 'ccd.menu.launch',
                execute: async () => { },
                isVisible: () => true,
            });
            // add an action for each of the apps
            const appLaunchActions = apps.map(app => {
                const action = new utils_action["d" /* default */]({
                    value: `${LAUNCH_APP_PREFIX}${app.sapcode}`,
                    analyticsValue: CCDActionValue.LaunchApp,
                    label: app.name,
                    icon: react_default.a.createElement(CustomIcon, { src: app.icon, alt: app.name }),
                    isFolderAction: true,
                    isVisible: () => true,
                    execute: async (elements) => {
                        const status = launchAppStore.launchApp({
                            sapcode: app.sapcode,
                        });
                        let error = {};
                        if (status.success === false) {
                            // eslint-disable-next-line camelcase
                            const { errorCode: error_code, errorType: error_type, errorDesc: error_desc, } = status;
                            error = { error_code, error_type, error_desc };
                        }
                        const event = {
                            event: {
                                type: status.success
                                    ? this.cdoMetrics.EventType.Success
                                    : this.cdoMetrics.EventType.Error,
                                ...error,
                            },
                        };
                        action.analyticsState = { ...event };
                    },
                    getAnalyticsOverrides: (element, phase) => {
                        const content = {
                            content: {
                                id: app.sapcode,
                                name: app.name,
                            },
                        };
                        if (phase === metrics["g" /* UsageMetricPhase */].ActionComplete) {
                            return {
                                ...content,
                                ...action.analyticsState,
                            };
                        }
                        return content;
                    },
                });
                return action;
            });
            launchAppActions = [heading, ...appLaunchActions];
        }
        actions = [...actions, ...launchAppActions];
        this.noSelectMultiAction.updateActions({ actions });
    }
    buildContextMenu(menuOrder, actionItems, selectionStore, menuType, enableIcons) {
        const visibleActions = actionItems.filter(action => Boolean(action) && action.isVisible(selectionStore, { rootPath: this.subroute }));
        const getDisabledTooltipMsg = (action) => {
            const id = action.getDisabledTooltipMsgId(selectionStore);
            return i18n["a" /* default */].isMessageDefined(this.intl, id) ? this.intl.formatMessage({ id }) : id;
        };
        const getMenuItem = (action) => {
            const common = {
                label: i18n["a" /* default */].isMessageDefined(this.intl, action.label)
                    ? this.intl.formatMessage({ id: action.label })
                    : action.label,
                id: action.value,
                isDisabled: !action.isEnabled(selectionStore),
                disabledTooltipMsg: getDisabledTooltipMsg(action),
            };
            if (MENU_AS_HEADING.has(action.value)) {
                return {
                    ...common,
                    isHeading: true,
                };
            }
            const icon = {
                iconElement: !enableIcons || !action.icon ? react_default.a.createElement(react_default.a.Fragment, null) : action.icon,
            };
            if (action instanceof submenu) {
                const subMenuAction = action;
                const { actionsOrder, actions } = subMenuAction;
                switch (subMenuAction.activationMethod) {
                    case 'hover': {
                        const menu = {
                            ...common,
                            ...icon,
                            subMenu: this.buildContextMenu(actionsOrder, actions, selectionStore, menuType, false),
                        };
                        // hide menu if submenu is empty
                        return menu.subMenu.length && menu;
                    }
                    case 'click': {
                        const menu = {
                            ...common,
                            ...icon,
                            isCTA: action.buttonVariant === 'cta',
                            multiAction: this.buildContextMenu(actionsOrder, actions, selectionStore, menuType, true),
                        };
                        // hide menu if multiAction is empty
                        return menu.multiAction.length && menu;
                    }
                    default:
                        break;
                }
            }
            return {
                ...common,
                ...icon,
                onClick: () => {
                    let { selectedElements } = selectionStore;
                    if (action.isFolderAction) {
                        // action applies to the folder, not the selection
                        const { currentPath } = this.docStore;
                        selectedElements = [Object(create_placeholder_folder["a" /* default */])('', currentPath)];
                    }
                    return this.actionHandler(action, menuType, selectedElements);
                },
            };
        };
        const dividerItem = {
            id: 'divider',
            isDivider: true,
        };
        const actionMap = new Map(visibleActions.map((a) => [a.value, getMenuItem(a)]));
        actionMap.set(CCDActionValue.Divider, dividerItem);
        const menu = menuOrder
            // get valid actions from menu order map
            .map(key => actionMap.get(key))
            // remove 'undefined' values
            .filter(value => Boolean(value))
            // remove dividers from top/end/in-succession, remove divider left at end
            .filter((value, index, orderArr) => {
            if (value !== dividerItem) {
                return true;
            }
            return (index !== 0 &&
                index !== orderArr.length - 1 &&
                orderArr[index - 1] !== dividerItem);
        })
            .filter((value, index, orderArr) => value !== dividerItem || index !== orderArr.length - 1)
            // fix divider IDs to prevent React warnings of using the same key
            .map((value, index) => value === dividerItem ? { ...value, id: `${value.id}${index}` } : value);
        return menu;
    }
    mapToCCDContextMenu(actionItems, selectionStore) {
        const contextMenuItems = [...actionItems, ...this.availableCCDActions];
        return this.buildContextMenu(CONTEXT_MENU_ORDER, contextMenuItems, selectionStore, metrics["e" /* MenuType */].Context, false);
    }
    mapToCCDRightRail() {
        const rightRailActions = [...this.availableActions, ...this.availableCCDActions];
        if (!rightRailActions || !this.selectionStore || !this.actionHandler) {
            return {
                count: 0,
                availableActions: [],
                moreActions: [],
            };
        }
        const mainActions = this.buildContextMenu(RIGHT_RAIL_MAIN_MENU_ORDER, rightRailActions, this.selectionStore, metrics["e" /* MenuType */].CCDRightRail, true);
        const moreActions = this.buildContextMenu(RIGHT_RAIL_MORE_MENU_ORDER, rightRailActions, this.selectionStore, metrics["e" /* MenuType */].CCDRightRail, false);
        const count = this.selectionStore.size;
        const deselectCallback = () => this.selectionStore.clear();
        return {
            availableActions: mainActions,
            moreActions,
            count,
            deselectCallback,
        };
    }
    onRenameFolderSubmit(oldPath, newName, rootTitle) {
        if (oldPath.slice(oldPath.lastIndexOf('/') + 1) === newName ||
            Object(validate_filename["d" /* fileNameValidator */])(newName) !== validate_filename["c" /* ValidationStatus */].valid) {
            // do nothing, revert to showing existing name
            this.setHeader(this.docStore.currentPath, rootTitle);
            return;
        }
        const correlationId = CDOMetrics["a" /* default */].createCorrelationId();
        this.cdoMetrics.logUsageMetric({
            ingestSubcategory: 'Cloud Documents',
            // TODO: FolderCollection doesn't have a DocumentModel, so having to manually construct
            // parameter for logUsageMetric
            element: {
                isFolder: true,
            },
            count: 1,
            type: metrics["c" /* EventType */].Click,
            subtype: metrics["a" /* ActionAnalyticsValue */].Rename,
            menu: metrics["e" /* MenuType */].Header,
            view: this.cdoStore.view,
            correlationId,
        });
        const revertToOriginal = () => this.setHeader(oldPath, rootTitle);
        return this.docStore
            .renameCurrentFolder(newName, revertToOriginal, // Revert to old name on failures,
        this.cdoMetrics.getOperationalMetricLogger(metrics["a" /* ActionAnalyticsValue */].Rename), correlationId)
            .catch(revertToOriginal);
    }
    setHeader(path, rootTitle, editMode = false) {
        const { cloudUri, path: currentPath } = this.docStore.currentFolderCollection;
        const trimmedPath = Object(normalize_path["a" /* default */])(path);
        const paths = this.getAncestorPaths(trimmedPath);
        paths[0].label = this.intl.formatMessage({ id: rootTitle });
        let headerActions = [];
        const renameAction = new utils_action["d" /* default */]({
            value: utils_action["a" /* CDOActionValue */].Rename,
            label: 'ccd.header.renameFolder',
            icon: null,
            isVisible: selectionStore => selectionStore.hasOnlyOne,
            getDisabledTooltipMsgId: this.getDisabledTooltipMsgIdOnlineOnly,
            execute: async (elements) => {
                this.setHeader(path, rootTitle, true);
            },
        });
        // Ideally, we should not have header specific actions for View-on-web,
        // add-to-favourites and remove-from-favourites. We should be using same
        // as using in context menu and right rails with isFolderAction enabled.
        // But since folderCollection doesn't provide a way to get actual IAssetModel,
        // the isVisible() and execute() of these won't work properly. Therefore,
        // having duplicate actions here getting correct data because of closures.
        const viewInWebAction = new utils_action["d" /* default */]({
            value: CCDActionValue.OpenInAssetsWeb,
            label: 'ccd.menu.viewonweb',
            icon: null,
            isVisible: () => cloudUri !== undefined,
            getDisabledTooltipMsgId: this.getDisabledTooltipMsgIdOnlineOnly,
            execute: async (elements) => {
                this.redirectToAssetsWeb(cloudUri, true /* isFolder */);
            },
        });
        const favouritesData = {
            uri: cloudUri,
            path: trimmedPath,
        };
        const addToFavouritesAction = new utils_action["d" /* default */]({
            value: CCDActionValue.AddToFavourites,
            label: 'ccd.menu.addToFavourites',
            icon: null,
            isVisible: (selectionStore) => this.favouritesStore.isAvailable() &&
                cloudUri !== undefined &&
                !this.favouritesStore.isMarkedAsFavourite(favouritesData),
            execute: async (elements, correlationId) => {
                const data = [{ uri: cloudUri, path: currentPath }];
                const status = await this.favouritesStore.addToFavourites(data);
                addToFavouritesAction.analyticsState = {
                    event: {
                        type: status
                            ? this.cdoMetrics.EventType.Success
                            : this.cdoMetrics.EventType.Error,
                    },
                };
            },
            getAnalyticsOverrides: (element, phase) => phase === metrics["g" /* UsageMetricPhase */].ActionComplete
                ? addToFavouritesAction.analyticsState
                : {},
        });
        const removeFromFavouritesAction = new utils_action["d" /* default */]({
            value: CCDActionValue.RemoveFromFavourites,
            label: 'ccd.menu.removeFromFavourites',
            icon: null,
            isVisible: (selectionStore) => this.favouritesStore.isAvailable() &&
                cloudUri !== undefined &&
                this.favouritesStore.isMarkedAsFavourite(favouritesData),
            execute: async (elements, correlationId) => {
                const data = [{ uri: cloudUri, path: currentPath }];
                const status = await this.favouritesStore.removeFromFavourites(data);
                removeFromFavouritesAction.analyticsState = {
                    event: {
                        type: status
                            ? this.cdoMetrics.EventType.Success
                            : this.cdoMetrics.EventType.Error,
                    },
                };
            },
            getAnalyticsOverrides: (element, phase) => phase === metrics["g" /* UsageMetricPhase */].ActionComplete
                ? removeFromFavouritesAction.analyticsState
                : {},
        });
        if (paths.length > 1) {
            // No header actions for root
            headerActions = [
                ...headerActions,
                renameAction,
                viewInWebAction,
                addToFavouritesAction,
                removeFromFavouritesAction,
            ];
        }
        const selectedElements = [Object(create_placeholder_folder["a" /* default */])('', currentPath, cloudUri)];
        const selectionStore = new AssetSelectionStore["a" /* default */](selectedElements);
        const moreActions = this.buildContextMenu(HEADER_MENU_ORDER, headerActions, selectionStore, metrics["e" /* MenuType */].Header, false);
        this.ccdContext.setHeader('files', {
            items: paths,
            onClick: (id) => this.docStore.setCurrentPath(id),
            onNameChange: (newName) => this.onRenameFolderSubmit(trimmedPath, newName, rootTitle),
            moreActions,
            editMode,
        });
    }
    setFooter(hidden, viewMode, sortOptions, selectedSort, selectedSortDir, isSWY) {
        this.ccdContext.setFooter({
            hidden,
            sort: {
                value: sortOptions.map(option => ({
                    key: option,
                    label: this.intl.formatMessage({ id: `header.${option}` }),
                })),
                selected: selectedSort,
                reverse: selectedSortDir === constants["w" /* UXSortDir */].desc,
                onChange: (sortBy, isDesc) => {
                    const sortDir = isDesc ? constants["w" /* UXSortDir */].desc : constants["w" /* UXSortDir */].asc;
                    if (isSWY) {
                        this.docStore.setSharedWithYouActiveSort(sortBy);
                        this.docStore.setSharedWithYouActiveSortDirection(sortDir);
                    }
                    else {
                        this.docStore.setActiveSort(sortBy);
                        this.docStore.setActiveSortDirection(sortDir);
                    }
                },
            },
            format: {
                value: [
                    {
                        key: CCDViewMode.List,
                        label: this.intl.formatMessage({ id: 'button.listview' }),
                    },
                    {
                        key: CCDViewMode.Grid,
                        label: this.intl.formatMessage({ id: 'button.gridview' }),
                    },
                ],
                selected: CDO_TO_CCD_VIEW_MODE[viewMode],
                onChange: (key) => {
                    if (key === CCDViewMode.Grid) {
                        this.cdoStore.setViewState(utils_constants["v" /* ViewMode */].Grid);
                    }
                    else {
                        this.cdoStore.setViewState(utils_constants["v" /* ViewMode */].List);
                    }
                },
            },
            refresh: () => {
                this.docStore.forceRefreshActiveCollections();
            },
            isRefreshDisabled: () => {
                const { activeCollection } = this.docStore;
                return activeCollection && !activeCollection.isNotLoading;
            },
        });
    }
    onSelectionChange(selectionStore, availableActions, actionHandler, subroute, hidden) {
        this.selectionStore = selectionStore;
        this.subroute = subroute;
        this.availableActions = availableActions;
        this.availableCCDActions = this.getCCDSpecificActions(subroute);
        this.actionHandler = actionHandler;
        this.updateNoSelectionAction();
        this.updateRightRail(selectionStore, subroute, hidden);
    }
    updateRightRail(selectionStore, subroute, hidden) {
        const rightRailData = this.mapToCCDRightRail();
        this.ccdContext.setSelectionData({
            ...rightRailData,
            hidden,
            panelInfo: this.getInfoPanelData(selectionStore, subroute),
        });
    }
    getInfoPanelData(selectionStore, subroute) {
        const intlS = (id) => this.intl.formatMessage({ id });
        const intlD = (date) => (date ? utils["a" /* default */].formatLongDateTime(date, this.intl) : '–');
        let element = selectionStore.lastSelectedElement;
        const { currentFolderCollection } = this.docStore;
        // For CloudDocuments, when nothing is selected,
        // show info about the current folder if it is not the root folder
        if (!element &&
            subroute === utils_constants["q" /* ROOT_FOLDER_PATH */] &&
            subroute !== Object(normalize_path["a" /* default */])(currentFolderCollection.path)) {
            element = currentFolderCollection.assetModel;
        }
        if (!element) {
            // default to CCD's generic 'Select item to view details' message comment for this return undefined
            return undefined;
        }
        let details = [
            {
                label: intlS('ccd.infoPanel.detail.created'),
                value: intlD(element.createDate),
            },
        ];
        if (subroute === SWY_SUBROUTE) {
            details = [
                ...details,
                {
                    label: intlS('ccd.infoPanel.detail.shared'),
                    value: intlD(element.shareDate),
                },
            ];
        }
        else {
            details = [
                ...details,
                {
                    label: intlS('ccd.infoPanel.detail.modified'),
                    value: intlD(element.modifiedDate),
                },
                !element.isFolder && {
                    label: intlS('ccd.infoPanel.detail.size'),
                    value: utils["a" /* default */].formatFileSizeDisplay(element.size, this.intl),
                },
            ];
        }
        return {
            title: element.title,
            subtitle: element.isFolder
                ? intlS('folder.subtitle')
                : element.fileExtension.toUpperCase(),
            note: '',
            details: details.filter(d => d),
        };
    }
    showShareSheet(shareSheetData, shareSheetAction) {
        this.ccdContext.showShareSheet({
            assetData: shareSheetData,
            shareAction: shareSheetAction,
        });
    }
    isOpenActionAvailable(docInfoArray) {
        return this.openStore.isOpenActionAvailable(docInfoArray);
    }
    openDocuments(docInfoArray) {
        this.openStore.open({ files: docInfoArray });
    }
    previewDocument(docInfo) {
        this.oneUpStore.preview({ file: docInfo });
    }
    isScheduleActionAvailable(mimeTypes) {
        var _a, _b;
        return (_b = (_a = this.scheduleStore) === null || _a === void 0 ? void 0 : _a.isScheduleActionAvailable) === null || _b === void 0 ? void 0 : _b.call(_a, mimeTypes);
    }
    scheduleDocument(docInfo) {
        var _a, _b;
        (_b = (_a = this.scheduleStore) === null || _a === void 0 ? void 0 : _a.schedule) === null || _b === void 0 ? void 0 : _b.call(_a, { file: docInfo });
    }
    addToFavourites(elements, index) {
        const favData = this.extractDataForFavourites(elements);
        this.favouritesStore.addToFavourites(favData, index);
    }
}



/***/ }),

/***/ "s0Tu":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return RecentsProcessingState; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return RecentFilesStore; });
/* harmony import */ var app_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("/0Ih");
/* harmony import */ var iaw_localstorage__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("p789");
/* harmony import */ var start_stores_StoreUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("L55F");
/* harmony import */ var mobx_state_tree__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("99Ma");
/* harmony import */ var _ccx_ccx_cdo__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("t+6E");
/* harmony import */ var _MainStore__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("cCFZ");
/* harmony import */ var src_applications__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("3UBC");
/* harmony import */ var _CDOWrapper_CDOImsDataBuilder__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("K0Sv");
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
var _a;








var RecentsProcessingState;
(function (RecentsProcessingState) {
    RecentsProcessingState["LOCAL_ONLY"] = "localOnly";
    RecentsProcessingState["PROCESSING"] = "processing";
    RecentsProcessingState["DONE"] = "done";
})(RecentsProcessingState || (RecentsProcessingState = {}));
const RecentFilePrefsStore = mobx_state_tree__WEBPACK_IMPORTED_MODULE_3__[/* types */ "h"]
    .model('RecentFilePrefsStore', {
    thumbnailViewEnabled: true,
    listViewEnabled: true,
    currentItemView: app_constants__WEBPACK_IMPORTED_MODULE_0__[/* default */ "k"].DEFAULT_ITEM_VIEW,
    sortDirection: mobx_state_tree__WEBPACK_IMPORTED_MODULE_3__[/* types */ "h"].enumeration([_ccx_ccx_cdo__WEBPACK_IMPORTED_MODULE_4__[/* UXSortDir */ "z"].asc, _ccx_ccx_cdo__WEBPACK_IMPORTED_MODULE_4__[/* UXSortDir */ "z"].desc]),
    activeSort: mobx_state_tree__WEBPACK_IMPORTED_MODULE_3__[/* types */ "h"].enumeration(['modifiedDate', 'title', 'size', 'kind', 'none']),
    lastRecentClearTime: new Date('2000-01-01T00:00:00Z').getTime(),
})
    .preProcessSnapshot(snapshot => ({
    ...snapshot,
    thumbnailViewEnabled: typeof snapshot.thumbnailViewEnabled === 'string'
        ? snapshot.thumbnailViewEnabled === 'true'
        : snapshot.thumbnailViewEnabled,
    listViewEnabled: typeof snapshot.listViewEnabled === 'string'
        ? snapshot.listViewEnabled === 'true'
        : snapshot.listViewEnabled,
}))
    .volatile(self => ({
    filterString: '',
}))
    .actions(self => {
    function save() {
        iaw_localstorage__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].setGlobalItem(app_constants__WEBPACK_IMPORTED_MODULE_0__[/* default */ "k"].LOCALSTORE_KEYS.MRU_PREFS, Object(mobx_state_tree__WEBPACK_IMPORTED_MODULE_3__[/* getSnapshot */ "f"])(self));
    }
    return {
        resetRecents() {
            self.lastRecentClearTime = new Date().getTime();
            save();
        },
        setFilterString(s) {
            self.filterString = s;
            save();
        },
        setSortDirection(dir) {
            self.sortDirection = dir;
            save();
        },
        setActiveSort(item) {
            self.activeSort = item;
            save();
        },
        setItemView(view) {
            view = start_stores_StoreUtil__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].normalizeItemView(view, self);
            if (view !== self.currentItemView) {
                self.currentItemView = view;
                save();
            }
        },
        load() {
            const prefs = iaw_localstorage__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].getGlobalItem(app_constants__WEBPACK_IMPORTED_MODULE_0__[/* default */ "k"].LOCALSTORE_KEYS.MRU_PREFS);
            if (prefs) {
                Object(mobx_state_tree__WEBPACK_IMPORTED_MODULE_3__[/* applySnapshot */ "a"])(self, prefs);
            }
            self.thumbnailViewEnabled = src_applications__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"].isThumbnailViewEnabled;
            self.listViewEnabled = src_applications__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"].isListViewEnabled;
            self.currentItemView = start_stores_StoreUtil__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].normalizeItemView(self.currentItemView, self);
        },
    };
});
// @ts-ignore
const RecentFilesStore = mobx_state_tree__WEBPACK_IMPORTED_MODULE_3__[/* types */ "h"]
    .model('RecentFilesStore', {
    prefs: mobx_state_tree__WEBPACK_IMPORTED_MODULE_3__[/* types */ "h"].optional(RecentFilePrefsStore, {
        activeSort: ((_a = src_applications__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"] === null || src_applications__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"] === void 0 ? void 0 : src_applications__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"].homeScreenDisplayOptions) === null || _a === void 0 ? void 0 : _a.defaultRecentsSortOrder) || 'modifiedDate',
        sortDirection: _ccx_ccx_cdo__WEBPACK_IMPORTED_MODULE_4__[/* UXSortDir */ "z"].desc,
    }),
    artificialLength: -1,
    cloudDocsLength: 0,
    maxAllowedDocuments: 999,
    processingState: RecentsProcessingState.DONE,
})
    .views(self => ({
    get realOrArtificialLength() {
        if (self.artificialLength < 0) {
            return Math.min(self.maxAllowedDocuments, src_applications__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"].recentFiles.length + self.cloudDocsLength);
        }
        else {
            return self.artificialLength;
        }
    },
    // @ts-ignore
    get recentCdoStore() {
        return {
            // @ts-ignore
            hostProductData: src_applications__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"].CDOProductData,
            // @ts-ignore
            imsData: null,
            callbacks: {
                onGetLocalRecents: () => Promise.resolve([]),
            },
            // @ts-ignore
            docStore: {},
            view: self.prefs.currentItemView,
            activeSort: self.prefs.activeSort,
            activeSortDirection: self.prefs.sortDirection,
            setActiveSort: sort => {
                self.prefs.setActiveSort(sort);
            },
            setActiveSortDirection: dir => {
                self.prefs.setSortDirection(dir);
            },
            mode: 'open',
            theme: Object(_CDOWrapper_CDOImsDataBuilder__WEBPACK_IMPORTED_MODULE_7__[/* getSupportedCDOTheme */ "b"])(_MainStore__WEBPACK_IMPORTED_MODULE_5__["mainStore"].colorTheme),
        };
    },
}))
    .actions(self => ({
    init() {
        self.prefs.load();
    },
    setCloudDocsLength(length) {
        self.cloudDocsLength = length;
    },
    setArtificialLength(artificialLength) {
        self.artificialLength = artificialLength;
    },
    setMaxAllowedDocuments(length) {
        self.maxAllowedDocuments = length;
    },
    setProcessingState(state) {
        self.processingState = state;
    },
}));


/***/ }),

/***/ "s3Ml":
/***/ (function(module, exports, __webpack_require__) {

module.exports = {
  "default": __webpack_require__("JbBM"),
  __esModule: true
};

/***/ }),

/***/ "s4AO":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var isSymbol = __webpack_require__("ESbf");

module.exports = function (value) {
  if (!isSymbol(value)) throw new TypeError(value + " is not a symbol");
  return value;
};

/***/ }),

/***/ "s8Eg":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return CDOAssetModel; });
/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("2vnA");
/* harmony import */ var _types_AssetType__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("3WX0");
/* harmony import */ var _Collection_ICollectionItem__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("crLv");
/* harmony import */ var _BaseAssetModel__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("TUmM");
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("C0qj");
/*************************************************************************
 *   ADOBE CONFIDENTIAL
 *
 *   Copyright 2022 Adobe
 *   All Rights Reserved.
 *
 *   NOTICE:  All information contained herein is, and remains
 *   the property of Adobe and its suppliers, if any. The intellectual
 *   and technical concepts contained herein are proprietary to Adobe
 *   and its suppliers and are protected by all applicable intellectual
 *   property laws, including trade secret and copyright laws.
 *   Dissemination of this information or reproduction of this material
 *   is strictly forbidden unless prior written permission is obtained
 *   from Adobe.
 **************************************************************************/
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;
};
var __metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var _a;





class CDOAssetModel extends _BaseAssetModel__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"] {
    // eslint-disable-next-line class-methods-use-this, no-empty-function
    async getSpaceInfo() { }
    /**
     * A promise that returns the base 64 encoded image for the given path..
     * @param getPreviewRendition A function passed back to us used to get local file renditions.
     * @param pathToLocalFile The path to the local file you want a rendition for.
     */
    async getLocalRendition(getPreviewRendition) {
        try {
            const rendition = await getPreviewRendition(this.path, this.type);
            this.setRendition(rendition);
        }
        catch (error) {
            console.error('Failed to get local rendition', error);
        }
    }
    // eslint-disable-next-line class-methods-use-this
    get isShareIconEnabled() {
        // TODO: use feature flag to control share icon visibility
        return _constants__WEBPACK_IMPORTED_MODULE_4__[/* ENABLE_COLLABORATORS_ICON */ "j"];
    }
    get kind() {
        return this.assetType === _types_AssetType__WEBPACK_IMPORTED_MODULE_1__[/* CDOAssetType */ "a"].Folder
            ? _Collection_ICollectionItem__WEBPACK_IMPORTED_MODULE_2__[/* CollectionItemKind */ "a"].Folder
            : _Collection_ICollectionItem__WEBPACK_IMPORTED_MODULE_2__[/* CollectionItemKind */ "a"].Item;
    }
    get assetType() {
        return Object(_types_AssetType__WEBPACK_IMPORTED_MODULE_1__[/* getAssetType */ "c"])(this.type);
    }
    get isFolder() {
        return this.assetType === _types_AssetType__WEBPACK_IMPORTED_MODULE_1__[/* CDOAssetType */ "a"].Folder;
    }
    get isComposite() {
        return this.assetType === _types_AssetType__WEBPACK_IMPORTED_MODULE_1__[/* CDOAssetType */ "a"].Composite;
    }
    get isFile() {
        return this.assetType === _types_AssetType__WEBPACK_IMPORTED_MODULE_1__[/* CDOAssetType */ "a"].File;
    }
}
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [])
], CDOAssetModel.prototype, "isShareIconEnabled", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], CDOAssetModel.prototype, "kind", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", typeof (_a = typeof _types_AssetType__WEBPACK_IMPORTED_MODULE_1__[/* CDOAssetType */ "a"] !== "undefined" && _types_AssetType__WEBPACK_IMPORTED_MODULE_1__[/* CDOAssetType */ "a"]) === "function" ? _a : Object),
    __metadata("design:paramtypes", [])
], CDOAssetModel.prototype, "assetType", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [])
], CDOAssetModel.prototype, "isFolder", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [])
], CDOAssetModel.prototype, "isComposite", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* computed */ "l"],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [])
], CDOAssetModel.prototype, "isFile", null);


/***/ }),

/***/ "s8Qj":
/***/ (function(module, exports) {

/* eslint-disable max-len */
module.exports = {
  'confirmationDialog.dontShowAgain': 'Bir daha gösterme',
  'confirmationDialog.confirm.default': 'Devam',
  'confirmationDialog.cancel.default': 'İptal',
  'confirmationDialog.learnMore': 'Daha fazla bilgi',
  'toast.warning.place': 'Bağlantılı bulut belgeleri henüz yerleştirilemiyor. Bunun yerine belgeyi gömmek için devam edin.',
  'toast.warning.placeLinkOrEmbed': 'Yerleştirdiğiniz varlıklar artık varsayılan olarak orijinal varlığa bağlıdır. Böylece bir yerde düzenleme yaparsanız bu değişiklikler her yere yansıtılır.',
  'toast.warning.saveAs.invalidFormat': 'Üzgünüz, {genericFormat} dosyalarını buraya kaydedemezsiniz. Dosyalarınız {adobeFormat} olarak kaydedilecek.',
  'pickerView.recent': 'En Son',
  'pickerView.cloud_docs': 'Dosyalarınız',
  'pickerView.shared_with_you': 'Sizinle paylaşılanlar',
  'pickerView.projects': 'Projeler',
  'pickerView.files': 'Dosyalar',
  'pickerView.computer': 'Bilgisayarınız...',
  'pickerView.saveAsInput': 'Farklı Kaydet',
  'pickerView.exportInput': 'Farklı Dışa Aktar',
  'pickerView.sketch_library': 'Sketch Kitaplığını Dönüştür...',
  'pickerView.error.saveAsOrExport.default': 'Dosya adı geçersiz.',
  'pickerView.error.saveAsOrExport.invalidName': 'Üzgünüz, bu ad geçersiz karakterler içeriyor.',
  'pickerView.error.saveAsOrExport.invalidEnd': 'Adın sonunda “.” veya boşluk karakteri olamaz.',
  'pickerView.error.saveAsOrExport.invalidChar': 'Ad şu karakterleri içeremez: {characters}',
  'pickerView.error.saveAsOrExport.charRestriction': 'Adlar 200 karakterden uzun olamaz.',
  'pickerView.error.saveAsOrExport.duplicateName': 'Bu ada sahip bir bulut belgeniz zaten var.',
  'pickerView.error.addALibrary.permission': 'Bu kitaplığa ekleme izniniz yok',
  'pickerViewFooter.button.add': 'Ekle',
  'pickerViewFooter.button.cancel': 'İptal',
  'pickerViewFooter.button.copy': 'Buraya kopyalayın',
  'pickerViewFooter.button.move': 'Buraya taşı',
  'pickerViewFooter.button.moveToProject': 'Buraya taşı',
  'pickerViewFooter.button.copyToProject': 'Buraya kopyalayın',
  'pickerViewFooter.button.choose': 'Seçin',
  'pickerViewFooter.button.save': 'Kaydet',
  'pickerViewFooter.button.switchToOSPicker': 'Bilgisayarınızda',
  'pickerViewFooter.button.save.offline': 'İnternet bağlantısı gerekiyor',
  'pickerViewFooter.button.saveAsCopy': 'Kaydet',
  'pickerViewFooter.button.export': 'Dışa Aktar',
  'pickerViewFooter.button.placeLinkOrEmbed': 'Yerleştir',
  'pickerViewFooter.button.import': 'İçe Aktar',
  'pickerViewFooter.checkbox.placeLink': 'Bağlı',
  'pickerViewFooter.tooltip.placeLink': 'Bu öğeyi yalnızca bir bağlantılı varlık olarak yerleştirebilirsiniz.',
  'pickerViewFooter.tooltip.placeEmbed': 'Bu öğeyi yalnızca gömülü olarak yerleştirebilirsiniz.',
  'pickerViewFooter.saveAs.format.label': 'Format',
  'pickerViewFooter.button.selectProject': 'Kaydet',
  'onboardingCdp.title': 'Bulut belgesi olarak kaydederek çok daha fazlasını yapabilirsiniz',
  'onboardingCdp.tooltip': 'Bilgisayarınıza kaydederseniz bulut özelliklerini kullanamazsınız.',
  'onboardingCdp.tooltip.link': 'Daha fazla bilgi',
  'onboardingCdp.table.header.saveToCloud': 'Creative Cloud',
  'onboardingCdp.table.header.saveToLocal': 'Bilgisayarınızda',
  'onboardingCdp.button.saveToCloud': "Creative Cloud'a Kaydet",
  'onboardingCdp.feature.offline': 'Çevrimdışı erişim',
  'onboardingCdp.feature.syncing': 'Tüm cihazlarınızda bulut sekronizasyonu',
  'onboardingCdp.feature.autosave': 'Her değişiklik otomatik kaydediliyor',
  'onboardingCdp.feature.versionHistory': 'Sürüm geçmişi',
  'onboardingCdp.feature.inviteToEdit': 'Düzenlemeye davet et',
  'onboardingCdp.button.saveToLocal': 'Bilgisayarınıza kaydedin',
  'onboardingCdp.checkbox.doNotShowAgain': 'Bir daha gösterme',
  'uap.title.place': "Creative Cloud'dan Yerleştir",
  'uap.title.import': "Creative Cloud'dan İçe Aktar",
  'uap.title.placeLinkOrEmbed': "Creative Cloud'dan Yerleştir",
  'uap.title.linkAssets': "Creative Cloud'dan Bağla",
  'uap.title.open': "Creative Cloud'dan Aç",
  'uap.title.relink': "Creative Cloud'dan Bağla",
  'uap.title.saveAs': "Creative Cloud'a Kaydet",
  'uap.title.saveAsCopy': "Creative Cloud'a Kaydet",
  'uap.title.saveToFolder': "Creative Cloud'a Kaydet",
  'uap.title.export': "Creative Cloud'a Dışa Aktar",
  'uap.title.copy': "Creative Cloud'a Kopyala",
  'uap.title.move': "Creative Cloud'a Taşı",
  'uap.title.moveToProject': "Creative Cloud'a Taşı",
  'uap.title.copyToProject': "Creative Cloud'a Kopyala",
  'uap.title.reference': "Creative Cloud'a Ekle",
  'uap.title.selectProject': "Creative Cloud'a Kaydet",
  'move.toSpace.confirm.title': 'Sürüm geçmişi silinecek',
  'move.toSpace.confirm.message': 'Bu dosyanın taşınması, sürüm geçmişinin silinmesine neden olacak. Sürüm geçmişinizi korumak istiyorsanız bunun yerine bir kopyasını oluşturun.'
};

/***/ }),

/***/ "s96J":
/***/ (function(module) {

module.exports = JSON.parse("{\"(optional)\":\"(opcional)\",\"(required)\":\"(necesario)\"}");

/***/ }),

/***/ "sBaD":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2020 Adobe Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Incorporated.
 **************************************************************************/
var SyncErrorResolutionFailureType;
(function (SyncErrorResolutionFailureType) {
    SyncErrorResolutionFailureType["Duplicate"] = "duplicate";
    SyncErrorResolutionFailureType["Purge"] = "purge";
})(SyncErrorResolutionFailureType || (SyncErrorResolutionFailureType = {}));
/* harmony default export */ __webpack_exports__["a"] = (SyncErrorResolutionFailureType);


/***/ }),

/***/ "sEf8":
/***/ (function(module, exports) {

/**
 * The base implementation of `_.unary` without support for storing metadata.
 *
 * @private
 * @param {Function} func The function to cap arguments for.
 * @returns {Function} Returns the new capped function.
 */
function baseUnary(func) {
  return function (value) {
    return func(value);
  };
}

module.exports = baseUnary;

/***/ }),

/***/ "sEfC":
/***/ (function(module, exports, __webpack_require__) {

var isObject = __webpack_require__("GoyQ"),
    now = __webpack_require__("QIyF"),
    toNumber = __webpack_require__("tLB3");
/** Error message constants. */


var FUNC_ERROR_TEXT = 'Expected a function';
/* Built-in method references for those with the same name as other `lodash` methods. */

var nativeMax = Math.max,
    nativeMin = Math.min;
/**
 * Creates a debounced function that delays invoking `func` until after `wait`
 * milliseconds have elapsed since the last time the debounced function was
 * invoked. The debounced function comes with a `cancel` method to cancel
 * delayed `func` invocations and a `flush` method to immediately invoke them.
 * Provide `options` to indicate whether `func` should be invoked on the
 * leading and/or trailing edge of the `wait` timeout. The `func` is invoked
 * with the last arguments provided to the debounced function. Subsequent
 * calls to the debounced function return the result of the last `func`
 * invocation.
 *
 * **Note:** If `leading` and `trailing` options are `true`, `func` is
 * invoked on the trailing edge of the timeout only if the debounced function
 * is invoked more than once during the `wait` timeout.
 *
 * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred
 * until to the next tick, similar to `setTimeout` with a timeout of `0`.
 *
 * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)
 * for details over the differences between `_.debounce` and `_.throttle`.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Function
 * @param {Function} func The function to debounce.
 * @param {number} [wait=0] The number of milliseconds to delay.
 * @param {Object} [options={}] The options object.
 * @param {boolean} [options.leading=false]
 *  Specify invoking on the leading edge of the timeout.
 * @param {number} [options.maxWait]
 *  The maximum time `func` is allowed to be delayed before it's invoked.
 * @param {boolean} [options.trailing=true]
 *  Specify invoking on the trailing edge of the timeout.
 * @returns {Function} Returns the new debounced function.
 * @example
 *
 * // Avoid costly calculations while the window size is in flux.
 * jQuery(window).on('resize', _.debounce(calculateLayout, 150));
 *
 * // Invoke `sendMail` when clicked, debouncing subsequent calls.
 * jQuery(element).on('click', _.debounce(sendMail, 300, {
 *   'leading': true,
 *   'trailing': false
 * }));
 *
 * // Ensure `batchLog` is invoked once after 1 second of debounced calls.
 * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });
 * var source = new EventSource('/stream');
 * jQuery(source).on('message', debounced);
 *
 * // Cancel the trailing debounced invocation.
 * jQuery(window).on('popstate', debounced.cancel);
 */

function debounce(func, wait, options) {
  var lastArgs,
      lastThis,
      maxWait,
      result,
      timerId,
      lastCallTime,
      lastInvokeTime = 0,
      leading = false,
      maxing = false,
      trailing = true;

  if (typeof func != 'function') {
    throw new TypeError(FUNC_ERROR_TEXT);
  }

  wait = toNumber(wait) || 0;

  if (isObject(options)) {
    leading = !!options.leading;
    maxing = 'maxWait' in options;
    maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;
    trailing = 'trailing' in options ? !!options.trailing : trailing;
  }

  function invokeFunc(time) {
    var args = lastArgs,
        thisArg = lastThis;
    lastArgs = lastThis = undefined;
    lastInvokeTime = time;
    result = func.apply(thisArg, args);
    return result;
  }

  function leadingEdge(time) {
    // Reset any `maxWait` timer.
    lastInvokeTime = time; // Start the timer for the trailing edge.

    timerId = setTimeout(timerExpired, wait); // Invoke the leading edge.

    return leading ? invokeFunc(time) : result;
  }

  function remainingWait(time) {
    var timeSinceLastCall = time - lastCallTime,
        timeSinceLastInvoke = time - lastInvokeTime,
        timeWaiting = wait - timeSinceLastCall;
    return maxing ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting;
  }

  function shouldInvoke(time) {
    var timeSinceLastCall = time - lastCallTime,
        timeSinceLastInvoke = time - lastInvokeTime; // Either this is the first call, activity has stopped and we're at the
    // trailing edge, the system time has gone backwards and we're treating
    // it as the trailing edge, or we've hit the `maxWait` limit.

    return lastCallTime === undefined || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait;
  }

  function timerExpired() {
    var time = now();

    if (shouldInvoke(time)) {
      return trailingEdge(time);
    } // Restart the timer.


    timerId = setTimeout(timerExpired, remainingWait(time));
  }

  function trailingEdge(time) {
    timerId = undefined; // Only invoke if we have `lastArgs` which means `func` has been
    // debounced at least once.

    if (trailing && lastArgs) {
      return invokeFunc(time);
    }

    lastArgs = lastThis = undefined;
    return result;
  }

  function cancel() {
    if (timerId !== undefined) {
      clearTimeout(timerId);
    }

    lastInvokeTime = 0;
    lastArgs = lastCallTime = lastThis = timerId = undefined;
  }

  function flush() {
    return timerId === undefined ? result : trailingEdge(now());
  }

  function debounced() {
    var time = now(),
        isInvoking = shouldInvoke(time);
    lastArgs = arguments;
    lastThis = this;
    lastCallTime = time;

    if (isInvoking) {
      if (timerId === undefined) {
        return leadingEdge(lastCallTime);
      }

      if (maxing) {
        // Handle invocations in a tight loop.
        clearTimeout(timerId);
        timerId = setTimeout(timerExpired, wait);
        return invokeFunc(lastCallTime);
      }
    }

    if (timerId === undefined) {
      timerId = setTimeout(timerExpired, wait);
    }

    return result;
  }

  debounced.cancel = cancel;
  debounced.flush = flush;
  return debounced;
}

module.exports = debounce;

/***/ }),

/***/ "sHM2":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXPORTS
__webpack_require__.d(__webpack_exports__, "c", function() { return /* binding */ Role; });
__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ IProjectChild; });
__webpack_require__.d(__webpack_exports__, "e", function() { return /* binding */ SPACE_DISCARDED; });
__webpack_require__.d(__webpack_exports__, "d", function() { return /* binding */ SECTIONS_DISCARDED; });
__webpack_require__.d(__webpack_exports__, "f", function() { return /* binding */ Project_Project; });

// EXTERNAL MODULE: ./node_modules/mobx/lib/mobx.module.js
var mobx_module = __webpack_require__("2vnA");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/stores/constants.ts
var constants = __webpack_require__("q0hk");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/stores/User.ts
var User = __webpack_require__("CJr9");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/constants.ts
var utils_constants = __webpack_require__("YVc3");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/parseAcpLinks.tsx
var parseAcpLinks = __webpack_require__("Cgfd");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/api/adobe-content-platform/ACPRequest.ts
var ACPRequest = __webpack_require__("r9Sp");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/api/projects-service/ProjectsServiceRequest.ts
var ProjectsServiceRequest = __webpack_require__("TxkD");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/api/projects-service/updateSpaceAccess.ts

async function updateSpaceAccess(href, operation) {
    return await new ProjectsServiceRequest["b" /* ProjectsServiceRequest */](href)
        .method('PUT')
        .content('application/json')
        .body(JSON.stringify(operation))
        .fetch()
        .then(ProjectsServiceRequest["b" /* ProjectsServiceRequest */].verifyStatus)
        .then(ProjectsServiceRequest["b" /* ProjectsServiceRequest */].parseJSONResponse);
}

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/api/ServiceRequest.ts
var ServiceRequest = __webpack_require__("Cc7P");

// EXTERNAL MODULE: ./node_modules/http-link-header/lib/link.js
var lib_link = __webpack_require__("x+K8");
var link_default = /*#__PURE__*/__webpack_require__.n(lib_link);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/stores/Settings.ts
var Settings = __webpack_require__("5u1M");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/api/weblinks-service/WeblinksServiceRequest.ts
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2020 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/



var WebLinks;
(function (WebLinks) {
    WebLinks["RESOLVE"] = "http://ns.adobe.com/weblink/rel/resolve";
    WebLinks["CREATE"] = "http://ns.adobe.com/weblink/rel/create";
    WebLinks["REFRESH"] = "http://ns.adobe.com/weblink/rel/refresh";
    WebLinks["UPDATE"] = "http://ns.adobe.com/weblink/rel/update";
})(WebLinks || (WebLinks = {}));
/**
 * Generalized Weblinks Service Request Utility Class
 *
 * @export
 * @class WeblinksRequest
 * @extends {ServiceRequest}
 */
class WeblinksServiceRequest_WeblinksServiceRequest extends ServiceRequest["a" /* default */] {
    constructor(apiPath) {
        super();
        this.headers({
            Authorization: '',
            'X-Api-Key': Settings["b" /* settings */].config.CLIENT_ID,
        });
        this.url(apiPath);
    }
    static parseLinkHeaders(response) {
        const { refs } = link_default.a.parse(response.headers.get('link') || '');
        response.links = refs;
        return response;
    }
    /**
     * Set url on XHR request.
     *
     * Override ServiceRequest's set url method so it plays well with
     * how the assets site will use the API.
     *
     * @param {string} [apiPath='/']
     * @returns {WeblinksServiceRequest}
     * @memberof WeblinksServiceRequest
     */
    url(apiPath = '/') {
        let resolvedPath = apiPath;
        // If we have a fully resolved URL, we have followed response links from the API
        if (resolvedPath.startsWith('https://')) {
            this._url = resolvedPath;
            return this;
        }
        // Always prefix your paths with /
        if (!apiPath.startsWith('/')) {
            resolvedPath = `/${apiPath}`;
        }
        // Generate url
        this._url = `${Settings["b" /* settings */].config.WEBLINKS_SERVICE_ENDPOINT}${resolvedPath}`;
        return this;
    }
    async fetch() {
        return super.fetch();
    }
}

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/api/weblinks-service/getIndex.ts
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2020 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/

let indexCache;
async function getIndex() {
    if (!indexCache) {
        indexCache = await new WeblinksServiceRequest_WeblinksServiceRequest('/')
            .fetch()
            .then(WeblinksServiceRequest_WeblinksServiceRequest.verifyStatus)
            .then(response => WeblinksServiceRequest_WeblinksServiceRequest.parseJSONResponse(response));
    }
    return indexCache.parsedBody;
}

// EXTERNAL MODULE: ./node_modules/uri-templates/uri-templates.js
var uri_templates = __webpack_require__("qPad");
var uri_templates_default = /*#__PURE__*/__webpack_require__.n(uri_templates);

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/api/weblinks-service/resolve.ts



async function resolve(resolveUrl) {
    return new WeblinksServiceRequest_WeblinksServiceRequest(resolveUrl)
        .method('head')
        .fetch()
        .then(WeblinksServiceRequest_WeblinksServiceRequest.verifyStatus)
        .then(WeblinksServiceRequest_WeblinksServiceRequest.parseLinkHeaders);
}
async function resolveByPath(path) {
    const index = await getIndex().then(index => index['_links'][WebLinks.RESOLVE].href);
    const resolvePath = decodeURIComponent(uri_templates_default()(index).fill({ ['assetId']: path }));
    return resolve(resolvePath);
}

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/api/weblinks-service/createWeblink.ts
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2020 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/


/**
 * Create a Weblink.
 * See API documentation:
 * https://wiki.corp.adobe.com/display/CCPSI/Weblinks+Service+API+Documentation
 */
async function createWeblink(name, url, path) {
    const jsonParams = {
        path: name,
        url,
    };
    const createUrl = await resolveByPath(path).then(link => link['links'].find(link => link.rel === WebLinks.CREATE).uri);
    return new WeblinksServiceRequest_WeblinksServiceRequest(createUrl)
        .method('POST')
        .header('Content-Length', '0')
        .header('Content-Type', 'application/vnd.adobe.weblink+json')
        .body(JSON.stringify(jsonParams))
        .fetch()
        .then(WeblinksServiceRequest_WeblinksServiceRequest.verifyStatus);
}

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/api/document-access-service/DASRequest.ts
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2020 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/


var DASLinks;
(function (DASLinks) {
    DASLinks["CREATE_CONTEXT"] = "http://ns.adobe.com/horizon/rel/create-context";
    DASLinks["CREATE"] = "http://ns.adobe.com/horizon/rel/create";
    DASLinks["DOCUMENTS"] = "http://ns.adobe.com/horizon/rel/documents";
    DASLinks["UPLOAD"] = "http://ns.adobe.com/horizon/rel/component-upload";
})(DASLinks || (DASLinks = {}));
/**
 * Generalized Adobe Projects Service Request Utility Class
 *
 * @export
 * @class DASRequest
 * @extends {ServiceRequest}
 */
class DASRequest_DASRequest extends ServiceRequest["a" /* default */] {
    /**
     * Creates an instance of ServiceRequest.
     *
     * @param {string} apiPath
     * @memberof DASRequest
     */
    constructor(apiPath) {
        super();
        this.headers({
            Authorization: '',
            'X-Api-Key': Settings["b" /* settings */].config.CLIENT_ID,
        });
        this.url(apiPath);
    }
    /**
     * Set url on XHR request.
     *
     * Override ServiceRequest's set url method so it plays well with
     * how the site will use the API.
     *
     * @param {string} [apiPath='/']
     * @returns {DASRequest}
     * @memberof DASRequest
     */
    url(apiPath = '/') {
        let resolvedPath = apiPath;
        // If we have a fully resolved URL, we have followed response links from the API
        if (resolvedPath.startsWith('https://')) {
            this._url = resolvedPath;
            return this;
        }
        // Always prefix your paths with /
        if (!apiPath.startsWith('/')) {
            resolvedPath = `/${apiPath}`;
        }
        // Generate url
        this._url = `${Settings["b" /* settings */].config.DAS_ENDPOINT}${resolvedPath}`;
        return this;
    }
    async fetch() {
        return super.fetch();
    }
}

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/api/document-access-service/getIndex.ts

let getIndex_indexCache;
async function getIndex_getIndex() {
    if (!getIndex_indexCache) {
        getIndex_indexCache = await new DASRequest_DASRequest('/documents/')
            .fetch()
            .then(DASRequest_DASRequest.verifyStatus)
            .then(response => DASRequest_DASRequest.parseJSONResponse(response));
    }
    return getIndex_indexCache.parsedBody;
}

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/api/document-access-service/create.ts




/**
 * API doc: https://adobe.sharepoint.com/:w:/s/CCWeb/EQJSBbxggFpOvlev8P3dF4EBIphYuvWqDo6PzuJ8N7_dWA?e=gjeRcb
 */
const SUPPORTED_LANGUAGES = {
    de: 'de-DE',
    en: 'en-US',
    es: 'es-ES',
    fr: 'fr-FR',
    it: 'it-IT',
    ja: 'ja-JP',
    ko: 'ko-KR',
    pt: 'pt-BR',
    ru: 'ru-RU',
};
async function createCanvas(repositoryId, assetId, locale) {
    const timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;
    const data = {
        docSpec: {
            mimetype: utils_constants["b" /* CANVAS_MIMETYPE */],
        },
        directorySpec: {
            'repo:repositoryId': repositoryId,
            'repo:assetId': assetId,
        },
        timeZone: timeZone,
        locale: SUPPORTED_LANGUAGES[locale] || SUPPORTED_LANGUAGES.en,
    };
    const createUrl = await getIndex_getIndex().then(links => Object(parseAcpLinks["a" /* parseAcpBodyLink */])(links['_links'], DASLinks.CREATE));
    const response = await new DASRequest_DASRequest(createUrl)
        .header('Content-Type', 'application/json')
        .method('POST')
        .body(JSON.stringify(data))
        .fetch()
        .then(DASRequest_DASRequest.verifyStatus);
    return response.headers.get('location');
}

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/stores/SharedStore.ts + 6 modules
var SharedStore = __webpack_require__("jmEq");

// EXTERNAL MODULE: ./node_modules/@ccx-public/shared-asset-model-js/dist/mjs/src/index.js
var src = __webpack_require__("m4Z2");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/stores/oneup/SpaceSection.ts + 1 modules
var SpaceSection = __webpack_require__("DL5t");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/SAMUtils.ts
var SAMUtils = __webpack_require__("x7p6");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/SAMAssetModel.ts + 1 modules
var SAMAssetModel = __webpack_require__("cU50");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/api/xdce-service/XDCERequest.ts


/**
 * XDCE Service Request Utility Class to gather information on XD Artifacts
 * https://wiki.corp.adobe.com/display/API/XD+Cloud+Extensibility+%28XDCE%29+API
 *
 * XDCE is a client centric API based on helping other teams onboard and use
 * XD documents. We are integrating specifically for fetching valid XD Artifact
 * URLS to XD Web application rather than locally manipulating urns on the client
 * via library
 */
class XDCERequest_XDCERequest extends ServiceRequest["a" /* default */] {
    /*
     * Base domain of requests to XDCE
     */
    constructor(apiPath) {
        super();
        this.headers({
            Authorization: '',
            'X-Api-Key': Settings["b" /* settings */].config.CLIENT_ID,
            Accept: 'application/vnd.adobe.xd.v1.internal+json',
        });
        this.url(apiPath);
    }
    /**
     * Set url on XHR request
     */
    url(apiPath = '/') {
        let resolvedPath = apiPath;
        const XDCE_SERVICE_URI = Settings["b" /* settings */].config.XDCE_SERVICE_URI;
        if (resolvedPath.startsWith(XDCE_SERVICE_URI)) {
            this._url = resolvedPath;
            return this;
        }
        if (!apiPath.startsWith('/')) {
            resolvedPath = `/${apiPath}`;
        }
        this._url = `${XDCE_SERVICE_URI}${resolvedPath}`;
        return this;
    }
    async fetch() {
        return super.fetch();
    }
}

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/api/xdce-service/getArtifactMetadata.ts

/**
 * XDCE Utility API to fetch metadata for XD Published assets including
 * the fully resolved URL to XD Web App
 */
function getArtifactMetadata(artifactUrn) {
    return new XDCERequest_XDCERequest(`/v2/document/${artifactUrn}`)
        .fetch()
        .then(XDCERequest_XDCERequest.verifyStatus)
        .then(XDCERequest_XDCERequest.parseJSONResponse)
        .then(response => response.parsedBody);
}

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/libraryUtils.ts
var libraryUtils = __webpack_require__("5L/2");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/mimeTypes.tsx
var utils_mimeTypes = __webpack_require__("sYeI");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/ArtifactSAMAssetModel.ts
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;
};
var __metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var ArtifactSAMAssetModel_a, ArtifactSAMAssetModel_b;






class ArtifactSAMAssetModel_ArtifactSAMAssetModel extends SAMAssetModel["a" /* default */] {
    get xdceItem() {
        return this._xdceItem;
    }
    // Platform response only has the generic mimetype name for any XD artifacts.
    // We wouldn't set and show the type in the UI until fetched the correct one from XDCE service.
    get uiType() {
        if (this._xdceItem) {
            const xdceType = this._xdceItem.includesDevelopmentData
                ? libraryUtils["c" /* MIMETYPE */].XD_DESIGN_SPECS
                : libraryUtils["c" /* MIMETYPE */].XD_PROTOTYPE;
            let { type } = Object(utils_mimeTypes["c" /* getTypeFromMimeType */])(xdceType, this.name);
            return type;
        }
    }
    async getWeblink() {
        var _a;
        await this.getXDCEItem();
        return (_a = this._xdceItem) === null || _a === void 0 ? void 0 : _a.href;
    }
    async getXDCEItem() {
        if (!this._xdceItem) {
            try {
                this._xdceItem = await getArtifactMetadata(this.id);
            }
            catch (e) {
                Settings["b" /* settings */].logger.error('Error running lazyLoadItemData', e);
            }
        }
        return this._xdceItem;
    }
}
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", typeof (ArtifactSAMAssetModel_a = typeof /* Cannot get final name for export "IXdceItem" in "./node_modules/@ccx/projects/src/api/xdce-service/getArtifactMetadata.ts" (known exports: default, known reexports: ) */ undefined !== "undefined" && /* Cannot get final name for export "IXdceItem" in "./node_modules/@ccx/projects/src/api/xdce-service/getArtifactMetadata.ts" (known exports: default, known reexports: ) */ undefined) === "function" ? ArtifactSAMAssetModel_a : Object)
], ArtifactSAMAssetModel_ArtifactSAMAssetModel.prototype, "_xdceItem", void 0);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], ArtifactSAMAssetModel_ArtifactSAMAssetModel.prototype, "xdceItem", null);
__decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], ArtifactSAMAssetModel_ArtifactSAMAssetModel.prototype, "uiType", null);
__decorate([
    mobx_module["j" /* action */],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", []),
    __metadata("design:returntype", typeof (ArtifactSAMAssetModel_b = typeof Promise !== "undefined" && Promise) === "function" ? ArtifactSAMAssetModel_b : Object)
], ArtifactSAMAssetModel_ArtifactSAMAssetModel.prototype, "getXDCEItem", null);

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/stores/oneup/Published.ts







/**
 * A persistent list of Published Files (snapshots) within a Space, tracking their loading state.
 */
class Published_Published extends SpaceSection["c" /* default */] {
    async fetchAllItems({ loadAllPages } = {}) {
        // Check embedPermissions for 1-Off invitees only since Space members already have permissions.
        const embedPermissions = this.space.role !== 'CONTRIBUTOR';
        const searchSource = await this.space.searchArtifacts(embedPermissions);
        const metadataItemList = await Object(SAMUtils["a" /* loadList */])(searchSource, new src["c" /* AdobeAssetOrder */]('ascending', 'modified'), new src["x" /* SpaceSearchAssetFilter */]({ mediaTypes: [] }), { loadAllPages });
        if (metadataItemList) {
            return metadataItemList.items.map(doc => new ArtifactSAMAssetModel_ArtifactSAMAssetModel({ spacesSection: utils_constants["q" /* OneUpTabs */].Published }, doc));
        }
        return [];
    }
    async lazyLoadItemData(item) {
        Promise.all([
            // Asynchronously fetch additional metadata from XDCE service for XD artifacts
            item.type === libraryUtils["c" /* MIMETYPE */].XD_SHAREDARTIFACT ? item.getXDCEItem() : undefined,
            // Make sure the rendition gets loaded.
            item.preloadRendition(),
            item.loadShareInfo(),
        ]).catch(e => {
            Settings["b" /* settings */].logger.error(`Error calling lazyLoadItemData: ${e}`);
        });
    }
}

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/api/projects-service/getProjectLibraries.ts


async function* getProjectLibraries(href) {
    try {
        let next = () => new ProjectsServiceRequest["b" /* ProjectsServiceRequest */](href).paginatedFetch();
        do {
            let { next: newNext, parsedBody } = await next();
            yield parsedBody;
            next = newNext;
        } while (next);
    }
    catch (e) {
        Settings["b" /* settings */].logger.error('Fetch Failed', e);
    }
}

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/utils/getTemplatedUrlWithSort.ts

function getTemplatedUrlWithSort(link, embed) {
    return Object(parseAcpLinks["b" /* parseAcpLink */])({ embed }, link, 'id');
}

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/utils/loadAllChildren.ts

/**
 * Load items from a generator, where each item contains a key like "children",
 * and return a value that contains a combined list of all children, along with
 * the metadata for one of the items.
 *
 * Meant to be used for paginated APIs, where each generated item has basically
 * the same metadata, and we're pulling the "children" from each request to form
 * one big list of all children items.
 */
async function loadAllChildren(generator, childrenKey = 'children') {
    try {
        let children = [];
        let metadata;
        for await (let data of generator) {
            metadata = data;
            children.push(...data[childrenKey]);
        }
        return {
            ...metadata,
            children,
        };
    }
    catch (error) {
        Settings["b" /* settings */].logger.error(error);
        throw error;
    }
}

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/ACPAssetModel.ts + 2 modules
var ACPAssetModel = __webpack_require__("prkh");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/utils/resourceToDocument.ts



/* harmony default export */ var resourceToDocument = ((resources) => {
    return resources.map(doc => {
        var _a, _b;
        return new ACPAssetModel["a" /* default */]({
            spacesSection: utils_constants["q" /* OneUpTabs */].Libraries,
            id: doc.id,
            title: doc.data.name,
            name: doc.data.name,
            displayName: doc.data.name,
            modifiedDate: new Date(doc.data.modifiedDate),
            createDate: new Date(doc.data.modifiedDate),
            hasSize: false,
            isCached: false,
            isUserPinned: false,
            renditionGridMain: (_a = doc.data.renditionGrid) === null || _a === void 0 ? void 0 : _a.main,
            renditionGridTiles: (_b = doc.data.renditionGrid) === null || _b === void 0 ? void 0 : _b.tiles,
            type: utils_constants["n" /* LIBRARY_MIMETYPE */],
            externalData: doc,
        });
    });
});

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/ProjectAnalytics.ts
var ProjectAnalytics = __webpack_require__("mm/P");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/performance.ts
var utils_performance = __webpack_require__("P5RH");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/stores/oneup/Resources.ts
var Resources_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;
};
var Resources_metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};









/**
 * A persistent list of Libraries within a Space, tracking their loading state.
 */
class Resources_YourResources extends SpaceSection["c" /* default */] {
    constructor() {
        super(...arguments);
        this.brokenResourceCount = 0;
    }
    async fetchAllItems() {
        let startTime = utils_performance["a" /* default */].now();
        let error;
        let acpLink;
        try {
            const librariesSpaceChild = await this.space.getChild('libraries');
            acpLink = librariesSpaceChild === null || librariesSpaceChild === void 0 ? void 0 : librariesSpaceChild._links[ProjectsServiceRequest["a" /* ProjectLinks */].LIBRARIES_PAGE];
            if (acpLink) {
                // There won't be any support for Libraries in SAM.
                const metadata = await loadAllChildren(getProjectLibraries(getTemplatedUrlWithSort(acpLink)), 'libraries');
                this.brokenResourceCount = metadata.brokenReferenceCount;
                return resourceToDocument(metadata.children);
            }
            return [];
        }
        catch (e) {
            error = e;
            throw error;
        }
        finally {
            if (acpLink) {
                this.sendIngestListEvent(acpLink.href, ProjectAnalytics["a" /* ContentType */].Library, utils_performance["a" /* default */].now() - startTime, error);
            }
        }
    }
    async lazyLoadItemData(item) {
        // Make sure the rendition gets loaded.
        item.preloadRendition();
    }
}
Resources_decorate([
    mobx_module["z" /* observable */],
    Resources_metadata("design:type", Number)
], Resources_YourResources.prototype, "brokenResourceCount", void 0);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/stores/oneup/WorkingFilesFolder.ts
var WorkingFilesFolder = __webpack_require__("OyfJ");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/SpacesError.ts
var SpacesError = __webpack_require__("R5sx");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/EventEmitter.ts
var EventEmitter = __webpack_require__("/XAQ");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/stores/oneup/SpaceSectionCache.ts








class SpaceSectionCache_SpaceSectionCache extends EventEmitter["a" /* default */] {
    constructor(_space) {
        super();
        this._space = _space;
        this.resources = new Resources_YourResources(this._space);
        this.published = new Published_Published(this._space);
        this.rootFolder = new WorkingFilesFolder["a" /* default */](this._space);
        this.sectionStateChanged = (section, newState) => {
            this.emit(SpaceSection["b" /* SECTION_STATE_CHANGED */], section, newState);
            switch (newState) {
                case 'DISCARDED':
                case 'DISCARDED_PARENT':
                    section.off(SpaceSection["b" /* SECTION_STATE_CHANGED */], this.sectionStateChanged);
            }
        };
        this.sectionLoadError = (section, error) => {
            this.emit(SpaceSection["a" /* SECTION_LOAD_EXCEPTION */], section, error);
            if (Object(SpacesError["j" /* normalizeSamError */])(error) === 'NOT_FOUND') {
                section.off(SpaceSection["a" /* SECTION_LOAD_EXCEPTION */], this.sectionLoadError);
            }
        };
        this.installListeners(this.resources);
        this.installListeners(this.published);
        this.installListeners(this.rootFolder);
    }
    installListeners(section) {
        section.on(SpaceSection["b" /* SECTION_STATE_CHANGED */], this.sectionStateChanged);
        section.on(SpaceSection["a" /* SECTION_LOAD_EXCEPTION */], this.sectionLoadError);
    }
    async initFolder(id) {
        const folder = new WorkingFilesFolder["a" /* default */](this._space);
        const adobeAsset = await this._space._core.hostAssetContext.getAssetWithCloudID(id);
        this.installListeners(folder);
        folder.init(adobeAsset);
        return folder;
    }
    async ensureRootFolder() {
        await this.initRootFolder();
        return this.rootFolder;
    }
    get id() {
        return this._space.id;
    }
    get rootFolderPath() {
        return `${this._space.pathName}/${IProjectChild.working_files}`;
    }
    async initRootFolder() {
        // Note that getChild is optimized to only make a
        // single call even if we call it multiple times,
        // so we should be ok here.
        const rootSpaceChild = await this._space.getChild('working_files');
        if (rootSpaceChild) {
            const { rootFolder } = this;
            const id = rootSpaceChild === null || rootSpaceChild === void 0 ? void 0 : rootSpaceChild.id;
            const metadata = await this._space._core.hostAssetContext.getAssetWithCloudID(id);
            rootFolder.init(metadata);
        }
    }
    async getPageLink(childName, rel = ACPRequest["a" /* ACPLinks */].PAGE) {
        const item = await this._space.getChild(childName);
        return item === null || item === void 0 ? void 0 : item._links[rel];
    }
}

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/api/invitations-service/confirmAccess.ts
var confirmAccess = __webpack_require__("1a54");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/components/header/OneUpToolbar.tsx
var OneUpToolbar = __webpack_require__("d9IO");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/facepile.ts
var facepile = __webpack_require__("H/x4");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/stores/Project.ts
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2020 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
var Project_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;
};
var Project_metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var Project_a, Project_b;





















var Role;
(function (Role) {
    Role["CONTRIBUTOR"] = "CONTRIBUTOR";
    Role["REVIEWER"] = "REVIEWER";
    Role["FOLLOWER"] = "FOLLOWER";
})(Role || (Role = {}));
/**
 * These are the names of the top-level children folders inside a Project.
 */
var IProjectChild;
(function (IProjectChild) {
    IProjectChild["outputs"] = "outputs";
    IProjectChild["libraries"] = "libraries";
    IProjectChild["working_files"] = "working_files";
})(IProjectChild || (IProjectChild = {}));
const SPACE_DISCARDED = 'SPACE_DISCARDED';
const SECTIONS_DISCARDED = 'SECTIONS_DISCARDED';
class Project_Project extends EventEmitter["a" /* default */] {
    constructor(space) {
        super();
        this.space = space;
        this.sectionCache = new SpaceSectionCache_SpaceSectionCache(this.space);
        this.processStatusChanged = (section, state) => {
            if (state === 'ACTIVE') {
                return;
            }
            const sections = this.pendingDiscardedSections || new Array();
            sections.push({ section, state });
            if (this.pendingDiscardedSections) {
                return;
            }
            this.pendingDiscardedSections = sections;
            const DEBOUNCING_DELAY = 1000;
            setTimeout(() => this.checkDiscardStatus(), DEBOUNCING_DELAY);
        };
        this.sectionLoadError = (section, error) => {
            let code = Object(SpacesError["j" /* normalizeSamError */])(error);
            if (code === 'NOT_FOUND' || code === 'ACCESS_DENIED') {
                this.processStatusChanged(section, code);
                if (code === 'NOT_FOUND') {
                    this.emit(SPACE_DISCARDED, this, 'NOT_FOUND');
                }
            }
        };
        this.createWeblink = async (app, name, url) => {
            const currentFolder = app.currentFolder;
            try {
                await createWeblink(name, url, currentFolder.id);
            }
            catch (e) {
                this.sectionLoadError(currentFolder, e);
                throw e;
            }
        };
        this.createCanvas = async (app, repositoryId, assetId) => {
            const canvasUrl = await createCanvas(repositoryId, assetId, app.intl.appLanguage || app.intl.locale);
            app.refreshCurrentSpace();
            return canvasUrl;
        };
        this.sectionCache.on(SpaceSection["b" /* SECTION_STATE_CHANGED */], this.processStatusChanged);
        this.sectionCache.on(SpaceSection["a" /* SECTION_LOAD_EXCEPTION */], this.sectionLoadError);
    }
    get repositoryId() {
        return this.space.repositoryID;
    }
    get repositoryName() {
        return this.space.repositoryName;
    }
    get name() {
        return this.space.name;
    }
    get description() {
        return this.space.description;
    }
    get id() {
        return this.space.id;
    }
    get path() {
        return this.space.pathName;
    }
    get createDate() {
        return this.space.created;
    }
    get modifiedDate() {
        return this.space.modified;
    }
    get color() {
        return this.space.color;
    }
    get etag() {
        return this.space.etag;
    }
    get state() {
        return this.space.state;
    }
    get role() {
        const { role } = this.space;
        switch (role) {
            case 'NONE':
                return Role.FOLLOWER;
            case 'CONTRIBUTOR':
                return Role.CONTRIBUTOR;
            case 'REVIEWER':
                return Role.REVIEWER;
        }
    }
    get _links() {
        return this.space._links;
    }
    get version() {
        return this.space.version;
    }
    get bookmarked() {
        return this.space.isBookmarked;
    }
    get teamId() {
        return this.space.teamID;
    }
    /**
     * This flag disables a project globally across all BrowseSessions.
     * If a project needs to be disabled only for a single BrowseSession,
     * then `shouldRenderItemAsDisabled` needs to be used instead to temporarily
     * disable the project only in that particular session. For example,
     * if a project cannot be used during a picker session, then the check for that needs
     * to go in the `shouldRenderItemAsDisabled` instead.
     *
     * The exclusive task below is controlled by SAM.JS during actions like archive / restore.
     */
    get isDisabled() {
        const { exclusiveTask } = this.space;
        return exclusiveTask && exclusiveTask.name !== 'bookmark';
    }
    get loadState() {
        const space = this.space;
        if (space.isReloading) {
            return constants["c" /* ProcessingState */].Refreshing;
        }
        if (space.lastReloadError) {
            return constants["c" /* ProcessingState */].Error;
        }
        return constants["c" /* ProcessingState */].Done;
    }
    // Subsections:
    get resources() {
        return this.sectionCache.resources;
    }
    get published() {
        return this.sectionCache.published;
    }
    get rootFolder() {
        return this.sectionCache.rootFolder;
    }
    async checkDiscardStatus() {
        const entries = this.pendingDiscardedSections;
        this.pendingDiscardedSections = undefined;
        const checkProject = entries.some(({ section, state }) => {
            if (state === 'DISCARDED_PARENT' ||
                state === 'NOT_FOUND' ||
                state === 'ACCESS_DENIED') {
                // we don't know how far is the parent that has been discarded, may be the space or even the team.
                return true;
            }
            if (this.resources === section ||
                this.published === section ||
                this.rootFolder === section) {
                // On of this being discarded or not found
                return true;
            }
        });
        if (checkProject) {
            if (!this.isArchived) {
                try {
                    await this.loadSpaceWithDiscardedNotification();
                }
                catch (_a) {
                    return;
                }
            }
            if (this.isArchived) {
                return;
            }
        }
        this.emit(SECTIONS_DISCARDED, this, entries);
    }
    /**
     * Returns true if the current folder points to the root folder.
     */
    isRootFolder(folderId) {
        var _a;
        // Case-insensitive comparison to ensure we don't have mismatches between USS and ACP results.
        return (folderId === null || folderId === void 0 ? void 0 : folderId.toLowerCase()) === ((_a = this.rootFolder.id) === null || _a === void 0 ? void 0 : _a.toLowerCase());
    }
    get rootFolderPath() {
        return this.sectionCache.rootFolderPath;
    }
    /**
     * Information provided to hosts like XD when Opening/Saving a document.
     * This info is provided as a string, because the SEAL native bindings
     * don't easily support nested objects. Hosts will un-JSON-ify it themselves.
     */
    async getSpaceInfo() {
        const outputFolder = await this.space.getChild('outputs');
        return JSON.stringify({
            spaceName: this.displayName,
            spaceId: this.id,
            spaceColor: this.color || utils_constants["N" /* defaultProjectColor */].value,
            repoId: this.repositoryId,
            outputFolder: outputFolder === null || outputFolder === void 0 ? void 0 : outputFolder.id,
        });
    }
    async ensureChild(name) {
        const child = await this.space.getChild(name);
        if (!child) {
            throw new SpacesError["b" /* SpacesError */]('NOT_FOUND', `Missing ${name} folder inside space.`);
        }
        return child;
    }
    async getChildren(names) {
        const map = new Map();
        for (const name of names) {
            const child = await this.space.getChild(name);
            if (child) {
                map.set(name, child);
            }
        }
        return map;
    }
    get teamName() {
        return this.space.teamName;
    }
    updateSpaceStatus(isSpaceNotFound) {
        this.isSpaceNotFound = isSpaceNotFound;
    }
    async loadSpaceWithDiscardedNotification() {
        const { space } = this;
        try {
            await space.load();
            if (this.isArchived) {
                this.emit(SPACE_DISCARDED, this, 'DISCARDED');
            }
        }
        catch (e) {
            if (Object(SpacesError["j" /* normalizeSamError */])(e) === 'NOT_FOUND') {
                this.emit(SPACE_DISCARDED, this, 'NOT_FOUND');
            }
            throw e;
        }
    }
    async refreshSpaceMetaData() {
        await this.space.load();
    }
    // Do not reload the space, if we just loaded it less than 5 seconds ago
    async reloadData({ refreshTimeout } = { refreshTimeout: 5 * 1000 }) {
        const { space } = this;
        try {
            // [CCPROJ-6998] Always make the confirm invitation call every time regardless if the user has access to
            // the space or not because the user might have pending invite/member upgrade (e.g. viewer to editor) to
            // this space.
            await Object(confirmAccess["a" /* default */])(space.id);
        }
        catch (err) {
            // it's okay if this fails, it's only for resilience
        }
        try {
            await space.load({ refreshTimeout });
            if (this.isArchived) {
                this.emit(SPACE_DISCARDED, this, 'DISCARDED');
            }
        }
        catch (e) {
            // Ignore the error, SAM automatically takes care of removing the space from the sidebar.
            if (Object(SpacesError["j" /* normalizeSamError */])(e) === 'NOT_FOUND') {
                this.emit(SPACE_DISCARDED, this, 'NOT_FOUND');
            }
            throw e;
        }
    }
    async refreshFolderState(app) {
        var _a, _b, _c, _d;
        if (app.currentFolder !== ((_a = app.currentProject) === null || _a === void 0 ? void 0 : _a.rootFolder)) {
            await ((_b = app.currentProject) === null || _b === void 0 ? void 0 : _b.getOrInitFolder((_c = app.currentFolder) === null || _c === void 0 ? void 0 : _c.id));
        }
        else {
            await ((_d = app.currentProject) === null || _d === void 0 ? void 0 : _d.getOrInitFolder());
        }
    }
    /**
     * Get the links related to the viewing folder for the selected tab.
     *
     * @param {SpaceChildName} childName - The selected tab.
     * @param {ACPLinks | ProjectLinks} ref - The link relation name, default to ACPLinks.PAGE.
     */
    async getPageLink(childName, rel = ACPRequest["a" /* ACPLinks */].PAGE) {
        return this.sectionCache.getPageLink(childName, rel);
    }
    async getOrInitFolder(id) {
        if (!id) {
            // If no folder id, send us to the root folder.
            return await this.sectionCache.ensureRootFolder();
        }
        return await this.sectionCache.initFolder(id);
    }
    static async bookmark(projects, app, expectedState, disableToast) {
        var _a, _b;
        // Don't do anything for items that are already in the expected state
        const items = projects
            .filter(item => item.bookmarked !== expectedState)
            .map(item => item.space);
        if (!items.length) {
            return;
        }
        let start, elapsedTime, evtType, evtError;
        try {
            start = performance.now();
            if (expectedState === true) {
                await ((_a = SharedStore["d" /* sharedStore */].spaceContext) === null || _a === void 0 ? void 0 : _a.createSpaceBookmarks(items));
            }
            else {
                await ((_b = SharedStore["d" /* sharedStore */].spaceContext) === null || _b === void 0 ? void 0 : _b.removeSpaceBookmarks(items));
            }
            elapsedTime = performance.now() - start;
            evtType = ProjectAnalytics["e" /* Type */].success;
        }
        catch (error) {
            elapsedTime = performance.now() - start;
            evtType = ProjectAnalytics["e" /* Type */].error;
            evtError = { event: {} };
            Object(ProjectAnalytics["h" /* fillError */])(evtError, error);
        }
        finally {
            const scaffoldEvent = ProjectAnalytics["g" /* default */].scaffoldEvent(ProjectAnalytics["c" /* Subcategory */].Space, expectedState === true ? ProjectAnalytics["d" /* Subtype */].follow : ProjectAnalytics["d" /* Subtype */].unfollow, evtType, ProjectAnalytics["f" /* Workflow */].Spaces);
            let failedItems = [];
            let successItems = [];
            for (const space of items) {
                if (space.isBookmarked !== expectedState) {
                    failedItems.push(space);
                }
                else {
                    successItems.push(space);
                }
            }
            if (failedItems.length) {
                evtType = ProjectAnalytics["e" /* Type */].error;
                evtError = { event: {} };
                Object(ProjectAnalytics["h" /* fillError */])(evtError, { message: 'Some of the items failed' });
            }
            const space = failedItems[0] || successItems[0];
            // Dunamis Analytics
            ProjectAnalytics["g" /* default */].fireEvent({
                event: {
                    ...scaffoldEvent.event,
                    ...evtError === null || evtError === void 0 ? void 0 : evtError.event,
                    value: elapsedTime,
                    org_guid: space.repositoryID,
                    context_guid: null,
                },
                content: {
                    id: space.id,
                    name: space.name,
                    author: space.role,
                },
                ui: {
                    view_type: ProjectAnalytics["f" /* Workflow */].SpaceActions,
                },
                custom: {
                    team_id: space.teamID,
                },
            });
            // Post bookmarking messaging
            if (disableToast) {
                return;
            }
            const action = expectedState ? 'follow' : 'unfollow';
            const dataForGrouping = {
                formatter: (id, values) => app.intl.formatMessage({ id }, { ...values }),
                type: action,
                items: {
                    success: successItems,
                    error: failedItems,
                },
            };
            const variant = failedItems.length ? 'error' : 'success';
            app.projectsClient.toastManager.addToastForGrouping(dataForGrouping, { variant });
        }
    }
    async follow(app, disableToast) {
        return Project_Project.bookmark([this], app, true, disableToast);
    }
    async unFollow(app, disableToast) {
        return Project_Project.bookmark([this], app, false, disableToast);
    }
    get access() {
        return this.space.access;
    }
    get isPrivate() {
        return this.space.access === 'private';
    }
    get isSharedToTeam() {
        return this.space.access === 'team';
    }
    get isLoadingCollaborators() {
        var _a;
        return ((_a = this.collaboratorsList) === null || _a === void 0 ? void 0 : _a.status) === src["e" /* AssetListStatus */].Loading;
    }
    get hasLoadedCollaboratorsOnce() {
        const { collaboratorsList } = this;
        return collaboratorsList ? collaboratorsList.status !== src["e" /* AssetListStatus */].NotStarted : false;
    }
    get collaborators() {
        var _a, _b;
        return (_b = (_a = this.collaboratorsList) === null || _a === void 0 ? void 0 : _a.items) !== null && _b !== void 0 ? _b : [];
    }
    get hasCollaboratorsFullyLoaded() {
        var _a;
        return ((_a = this.collaboratorsList) === null || _a === void 0 ? void 0 : _a.status) === src["e" /* AssetListStatus */].ReadyFullyLoaded;
    }
    /**
     * Number of directly invited contributors
     */
    get directContributorCount() {
        var _a;
        if (((_a = this.collaboratorsList) === null || _a === void 0 ? void 0 : _a.status) === src["e" /* AssetListStatus */].ReadyFullyLoaded) {
            return this.contributors.length;
        }
        return this.space.contributorCount;
    }
    /**
     * If the resource is shared to team, Projects service's contributorCount includes 1 count for the team.
     * To match that, given the count from Invitation service direct contributors, we add 1 for the team.
     */
    get contributorCount() {
        var _a;
        if (((_a = this.collaboratorsList) === null || _a === void 0 ? void 0 : _a.status) === src["e" /* AssetListStatus */].ReadyFullyLoaded) {
            // If the list is loaded, we can read directly from the contributors list,
            // which is computed based on the collaborators list.
            let count = this.contributors.length;
            if (this.isSharedToTeam) {
                count++;
            }
            return count;
        }
        // Fallback to the data we've received from projects service.
        return this.space.contributorCount;
    }
    get collaboratorsList() {
        // return the underlying collaborators list
        // SAM API getList starts loading the list as soon as its defined
        // underlying collaborators list won't be initialized until loadCollaborators is called
        return this._collaboratorsList;
    }
    get isSpaceDeleted() {
        return this.isSpaceNotFound;
    }
    async loadCollaborators() {
        var _a;
        // If not set, initialize the list of contributors for rendering.
        // Invitations service GET api/v4/share will lead to call to the ABS / IMS.
        // Refresh at most once per 5 minutes to prevent IMS throttling (SAM-1959)
        if (!this._collaboratorsList) {
            this._collaboratorsList = await Object(SAMUtils["a" /* loadList */])((_a = SharedStore["d" /* sharedStore */].collaborationContext) === null || _a === void 0 ? void 0 : _a.getCollaborators(this.id), src["h" /* CollaboratorOrder */].default, undefined, {
                refreshTimeout: utils_constants["i" /* FIVE_MINUTES */],
                loadAllPages: true,
                limit: utils_constants["u" /* PROJECTS_PAGE_SIZE */],
            });
        }
        else {
            // If the list is already initialized, just refresh it.
            await Object(SAMUtils["b" /* refreshList */])(this.collaboratorsList);
        }
    }
    setNeedsCollaboratorsRefresh() {
        var _a, _b;
        // Make sure we update the list when we expect to have new items.
        (_b = (_a = this.collaboratorsList) === null || _a === void 0 ? void 0 : _a.setNeedsRefresh) === null || _b === void 0 ? void 0 : _b.call(_a);
    }
    get type() {
        return 'project';
    }
    get displayName() {
        return this.name;
    }
    get isArchived() {
        return this.state === 'archived';
    }
    get isContributor() {
        return this.role === Role.CONTRIBUTOR;
    }
    get isReviewer() {
        return this.role === Role.REVIEWER;
    }
    get href() {
        var _a;
        return Object(parseAcpLinks["b" /* parseAcpLink */])({ selector: 'full' }, (_a = this._links) === null || _a === void 0 ? void 0 : _a[ProjectsServiceRequest["a" /* ProjectLinks */].PRIMARY]);
    }
    get reloadFailure() {
        return this.loadState === constants["c" /* ProcessingState */].Error;
    }
    get reloadDone() {
        return this.loadState === constants["c" /* ProcessingState */].Done;
    }
    get loadedOrRefreshing() {
        return (this.loadState === constants["c" /* ProcessingState */].Done || this.loadState === constants["c" /* ProcessingState */].Refreshing);
    }
    get colorId() {
        var _a, _b;
        return ((_b = (_a = utils_constants["U" /* projectColors */].find(color => this.color === color.value)) === null || _a === void 0 ? void 0 : _a.id) !== null && _b !== void 0 ? _b : utils_constants["N" /* defaultProjectColor */].id);
    }
    get admins() {
        return this.collaborators.filter(collaborator => collaborator.isAdmin);
    }
    /**
     * The list of contributors on this space. [CCPROJ-7079] Administrators without being explicitly invited (isDirect)
     * to collaborate are not real contributors.
     */
    get contributors() {
        return Object(facepile["a" /* getProjectFacepileContributors */])(this.collaborators);
    }
    get contributorTooltipList() {
        let contributors = [];
        if (this.isSharedToTeam) {
            contributors.push({ name: this.teamName, orgName: this.repositoryName });
        }
        contributors.push(...this.contributors.map(({ imsUserId, name, email }) => ({
            id: imsUserId,
            name,
            email,
        })));
        return contributors;
    }
    /**
     * In order to modify a space metadata destructively, such as Rename, Discard, Delete and Restore,
     * the user needs to have both:
     * - 'editor' role in the space
     *   - Check if role is ‘CONTRIBUTOR’ using Projects Service APIs GET /projects or GET /projects/{urn}
     * - editor' role in the parent folder (the team)
     *   - Check if collaboratorRole is ‘editor’ using Projects Service API GET /teams
     */
    get isEditable() {
        return this.isContributor && User["a" /* default */].hasEditorRoleOnTeam(this.teamId);
    }
    /**
     * Facepile includes collaboratorType of ADDRESS_BOOK_GROUP, ADDRESS_BOOK_CONTACT / IMS_USER
     * Per https://jira.corp.adobe.com/browse/CCPROJ-6820 the logged in user is included but if there are
     * more contributors than will be shown the other contributors have priority over logged in user
     */
    get facepileContributors() {
        let result = this.contributorTooltipList;
        if (result.length > OneUpToolbar["a" /* MAX_DISPLAYED_CONTRIBUTOR_FACES */]) {
            const index = result.findIndex(element => element.id === SharedStore["d" /* sharedStore */].imsData.userId);
            if (index !== -1 && index < OneUpToolbar["a" /* MAX_DISPLAYED_CONTRIBUTOR_FACES */]) {
                result.push(result.splice(index, 1)[0]);
            }
        }
        return result;
    }
    get reviewers() {
        return this.collaborators.filter(collaborator => collaborator.role === 'viewer');
    }
    /**
     * Get the collaborator profile of the logged in user on this space.
     * An `undefined` means the user has no dedicated entry in the collaborators list but
     * they must have access to this space for being an org/team admin or part of invited group(s).
     */
    get userCollaborator() {
        return this.collaborators.find(collaborator => { var _a; return collaborator.imsUserId === ((_a = SharedStore["d" /* sharedStore */].imsData) === null || _a === void 0 ? void 0 : _a.userId); });
    }
    get isSupportedProject() {
        return Project_Project.checkProjectVersionIsSupported(this.version);
    }
    static checkProjectVersionIsSupported(version) {
        return version <= utils_constants["F" /* SupportedProjectVersions */].MAX;
    }
    async updateAccess(level) {
        var _a;
        const href = (_a = this._links) === null || _a === void 0 ? void 0 : _a[ProjectsServiceRequest["a" /* ProjectLinks */].ACCESS].href;
        await updateSpaceAccess(href, { level });
    }
    async updateProject(data) {
        await this.space.update(data);
        // Ensure that root folder is initialized
        await this.getOrInitFolder();
    }
    ensureDescription() {
        return this.space.ensureDescription();
    }
    get isReloading() {
        return this.space.isReloading;
    }
    get lastReloadError() {
        return this.space.lastReloadError;
    }
}
Project_decorate([
    mobx_module["z" /* observable */],
    Project_metadata("design:type", typeof (Project_a = typeof DiscardedSectionList !== "undefined" && DiscardedSectionList) === "function" ? Project_a : Object)
], Project_Project.prototype, "pendingDiscardedSections", void 0);
Project_decorate([
    mobx_module["z" /* observable */],
    Project_metadata("design:type", Boolean)
], Project_Project.prototype, "isSpaceNotFound", void 0);
Project_decorate([
    mobx_module["z" /* observable */],
    Project_metadata("design:type", Object)
], Project_Project.prototype, "_collaboratorsList", void 0);
Project_decorate([
    mobx_module["l" /* computed */],
    Project_metadata("design:type", Object),
    Project_metadata("design:paramtypes", [])
], Project_Project.prototype, "reloadFailure", null);
Project_decorate([
    mobx_module["l" /* computed */],
    Project_metadata("design:type", Object),
    Project_metadata("design:paramtypes", [])
], Project_Project.prototype, "reloadDone", null);
Project_decorate([
    mobx_module["l" /* computed */],
    Project_metadata("design:type", Object),
    Project_metadata("design:paramtypes", [])
], Project_Project.prototype, "loadedOrRefreshing", null);
Project_decorate([
    mobx_module["l" /* computed */],
    Project_metadata("design:type", Object),
    Project_metadata("design:paramtypes", [])
], Project_Project.prototype, "colorId", null);
Project_decorate([
    mobx_module["l" /* computed */],
    Project_metadata("design:type", Object),
    Project_metadata("design:paramtypes", [])
], Project_Project.prototype, "admins", null);
Project_decorate([
    mobx_module["l" /* computed */],
    Project_metadata("design:type", Object),
    Project_metadata("design:paramtypes", [])
], Project_Project.prototype, "contributors", null);
Project_decorate([
    mobx_module["l" /* computed */],
    Project_metadata("design:type", Object),
    Project_metadata("design:paramtypes", [])
], Project_Project.prototype, "contributorTooltipList", null);
Project_decorate([
    mobx_module["l" /* computed */],
    Project_metadata("design:type", Object),
    Project_metadata("design:paramtypes", [])
], Project_Project.prototype, "facepileContributors", null);
Project_decorate([
    mobx_module["l" /* computed */],
    Project_metadata("design:type", Object),
    Project_metadata("design:paramtypes", [])
], Project_Project.prototype, "reviewers", null);
Project_decorate([
    mobx_module["l" /* computed */],
    Project_metadata("design:type", Object),
    Project_metadata("design:paramtypes", [])
], Project_Project.prototype, "isSupportedProject", null);


/***/ }),

/***/ "sHtf":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var _interopRequireDefault = __webpack_require__("TqRt");

exports.__esModule = true;
exports.default = matches;

var _inDOM = _interopRequireDefault(__webpack_require__("Bp9Y"));

var _querySelectorAll = _interopRequireDefault(__webpack_require__("xIqb"));

var matchesCache;

function matches(node, selector) {
  if (!matchesCache && _inDOM.default) {
    var body = document.body;
    var nativeMatch = body.matches || body.matchesSelector || body.webkitMatchesSelector || body.mozMatchesSelector || body.msMatchesSelector;
    matchesCache = nativeMatch ? function (node, selector) {
      return nativeMatch.call(node, selector);
    } : ie8MatchesSelector;
  }

  return matchesCache ? matchesCache(node, selector) : null;
}

function ie8MatchesSelector(node, selector) {
  var matches = (0, _querySelectorAll.default)(node.document || node.ownerDocument, selector),
      i = 0;

  while (matches[i] && matches[i] !== node) {
    i++;
  }

  return !!matches[i];
}

module.exports = exports["default"];

/***/ }),

/***/ "sKrG":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var _interopRequireDefault = __webpack_require__("TqRt");

exports.__esModule = true;
exports.default = style;

var _camelizeStyle = _interopRequireDefault(__webpack_require__("9SKx"));

var _hyphenateStyle = _interopRequireDefault(__webpack_require__("X9D3"));

var _getComputedStyle2 = _interopRequireDefault(__webpack_require__("H0zx"));

var _removeStyle = _interopRequireDefault(__webpack_require__("a413"));

var _properties = __webpack_require__("xU8c");

var _isTransform = _interopRequireDefault(__webpack_require__("O9o6"));

function style(node, property, value) {
  var css = '';
  var transforms = '';
  var props = property;

  if (typeof property === 'string') {
    if (value === undefined) {
      return node.style[(0, _camelizeStyle.default)(property)] || (0, _getComputedStyle2.default)(node).getPropertyValue((0, _hyphenateStyle.default)(property));
    } else {
      (props = {})[property] = value;
    }
  }

  Object.keys(props).forEach(function (key) {
    var value = props[key];

    if (!value && value !== 0) {
      (0, _removeStyle.default)(node, (0, _hyphenateStyle.default)(key));
    } else if ((0, _isTransform.default)(key)) {
      transforms += key + "(" + value + ") ";
    } else {
      css += (0, _hyphenateStyle.default)(key) + ": " + value + ";";
    }
  });

  if (transforms) {
    css += _properties.transform + ": " + transforms + ";";
  }

  node.style.cssText += ';' + css;
}

module.exports = exports["default"];

/***/ }),

/***/ "sNwI":
/***/ (function(module, exports, __webpack_require__) {

// call something on iterator step with safe closing on error
var anObject = __webpack_require__("5K7Z");

module.exports = function (iterator, fn, value, entries) {
  try {
    return entries ? fn(anObject(value)[0], value[1]) : fn(value); // 7.4.6 IteratorClose(iterator, completion)
  } catch (e) {
    var ret = iterator['return'];
    if (ret !== undefined) anObject(ret.call(iterator));
    throw e;
  }
};

/***/ }),

/***/ "sPAq":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _autobindDecorator = _interopRequireDefault(__webpack_require__("gKdT"));

var _CheckmarkMedium = _interopRequireDefault(__webpack_require__("vJuj"));

var _ChevronRightMedium = _interopRequireDefault(__webpack_require__("aaYb"));

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _icon = __webpack_require__("vo16");

var _filterDOMProps = _interopRequireDefault(__webpack_require__("Cv/Q"));

var _ListItem = _interopRequireDefault(__webpack_require__("/8IZ"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

const _excluded = ["icon", "label", "className", "children", "selected", "disabled", "focused", "hasNestedMenu", "tabIndex", "role"];

var _class;

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

let UxpListItem = (0, _autobindDecorator.default)(_class = class UxpListItem extends _ListItem.default {
  /*
  This is a workaround done for https://jira.corp.adobe.com/browse/ID-4221363
  The actual fix is to support event.preventDefault in a generic way in UXP.
  MouseDown on ListItem triggers a blur event on search box in UXP, even though event is default prevented. 
  */
  onUxpSelectFocused(e) {
    e.preventDefault();

    if (this.props.onUxpSelect && !e.isPropagationStopped()) {
      this.props.onUxpSelect(this.props.value, e);
    }
  }

  render() {
    const _this$props = this.props,
          {
      icon,
      label,
      className,
      children,
      selected,
      disabled,
      focused,
      hasNestedMenu,
      tabIndex = 0,
      role = 'option'
    } = _this$props,
          otherProps = _objectWithoutProperties(_this$props, _excluded);

    delete otherProps.value;
    delete otherProps.onMouseDown;
    return (
      /*#__PURE__*/

      /* eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions */
      _react.default.createElement("li", _extends({}, (0, _filterDOMProps.default)(otherProps), {
        className: (0, _classnames.default)('spectrum-Menu-item', {
          'is-selected': selected,
          'is-disabled': disabled,
          'is-focused': focused
        }, className),
        onKeyDown: this.onKeyDown,
        onMouseEnter: disabled ? null : this.handleMouseEnter,
        onFocus: disabled ? null : this.handleFocus,
        onMouseDown: disabled ? null : this.onUxpSelectFocused,
        onClick: disabled ? null : this.onSelectFocused,
        onBlur: this.handleBlur
        /* eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex */
        ,
        tabIndex: !disabled ? tabIndex : null,
        role: role,
        "aria-checked": role === 'menuitemcheckbox' || role === 'menuitemradio' ? !!selected : null,
        "aria-selected": role === 'option' ? !!selected || !!focused : null,
        "aria-disabled": disabled || null
      }), (0, _icon.cloneIcon)(icon, {
        size: 'S'
      }), /*#__PURE__*/_react.default.createElement("span", {
        className: "spectrum-Menu-itemLabel"
      }, label || children), selected && /*#__PURE__*/_react.default.createElement(_CheckmarkMedium.default, {
        size: null,
        className: "spectrum-Menu-checkmark"
      }), hasNestedMenu && /*#__PURE__*/_react.default.createElement(_ChevronRightMedium.default, {
        className: "spectrum-Menu-chevron"
      }))
    );
  }

}) || _class;

exports.default = UxpListItem;

/***/ }),

/***/ "sQW/":
/***/ (function(module) {

module.exports = JSON.parse("{\"(optional)\":\"(isteğe bağlı)\",\"(required)\":\"(gerekli)\"}");

/***/ }),

/***/ "sViV":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("path", {
  d: "M32 26V4a2 2 0 0 0-2-2H18a2 2 0 0 0-2 2v22H7.48a1 1 0 0 0-.707 1.707L24 44.933l17.226-17.226A1 1 0 0 0 40.519 26z"
}));

/***/ }),

/***/ "sYeI":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return getExtension; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return getExtensionFromMimeType; });
/* unused harmony export getMimeTypeFromExtension */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return getTypeFromMimeType; });
/* unused harmony export getType */
/* harmony import */ var _mimeTypeMap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("k8te");
/* harmony import */ var _stores_Settings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("5u1M");


/**
 * Last resort: filter the file name for its extension.
 * @param {String} [name] The name of the asset.
 * @return {String} The asset extension if available, otherwise empty string.
 */
function getExtension(name) {
    const extPosition = name.lastIndexOf('.');
    if (extPosition !== -1) {
        let formattedName = name;
        const caretPosition = name.lastIndexOf('^');
        if (caretPosition > extPosition) {
            formattedName = formattedName.substr(0, caretPosition);
        }
        return formattedName.slice(extPosition + 1);
    }
    return '';
}
/**
 * Get the extension from the mimetype from our mimeTypeMap.
 *
 * @param {string} mimeType - The item's mimetype.
 * @returns {IDisplayName} - If our map identifies the mimetype, return the extension. Otherwise return `undefined`.
 */
function getExtensionFromMimeType(mimeType) {
    var _a;
    if (mimeType) {
        const extension = (_a = _mimeTypeMap__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"][mimeType]) === null || _a === void 0 ? void 0 : _a.ext;
        if (_mimeTypeMap__WEBPACK_IMPORTED_MODULE_0__[/* mimeTypeMapNonIdentifiedExtensions */ "c"].includes(extension)) {
            return undefined;
        }
        else {
            return extension;
        }
    }
    return undefined;
}
function getMimeTypeFromExtension(ext) {
    return _mimeTypeMap__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].find(type => type.ext === ext);
}
/**
 * Based on the mimetype, search our internal mimetype map for the corresponding extension and type.
 * Defaults to the mimetype and filters asset name for file extension.
 */
function getTypeFromMimeType(mimeType, name) {
    if (mimeType) {
        const type = _mimeTypeMap__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"][mimeType];
        if (type) {
            return type;
        }
        _stores_Settings__WEBPACK_IMPORTED_MODULE_1__[/* settings */ "b"].logger.warn({
            msg: 'Missing mimetype mapping',
            mimetype: mimeType,
            name: name,
        });
    }
    if (name) {
        const ext = getExtension(name);
        const type = getMimeTypeFromExtension(ext);
        return {
            ext: ext || 'app.type.unknown',
            type: (type && type.type) || 'app.type.unknown',
            mime: (type && type.mime) || 'unknown',
        };
    }
    return _mimeTypeMap__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].unknown;
}
function getType(asset) {
    return _mimeTypeMap__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"][asset.type] || getTypeFromMimeType(asset.type, asset.rawName);
}


/***/ }),

/***/ "sZro":
/***/ (function(module, exports, __webpack_require__) {

"use strict";
// Copyright Joyent, Inc. and other Node contributors.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to permit
// persons to whom the Software is furnished to do so, subject to the
// following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
// USE OR OTHER DEALINGS IN THE SOFTWARE.
// a duplex stream is just a stream that is both readable and writable.
// Since JS doesn't have multiple prototypal inheritance, this class
// prototypally inherits from Readable, and then parasitically from
// Writable.

/*<replacement>*/

var pna = __webpack_require__("lm0R");
/*</replacement>*/

/*<replacement>*/


var objectKeys = Object.keys || function (obj) {
  var keys = [];

  for (var key in obj) {
    keys.push(key);
  }

  return keys;
};
/*</replacement>*/


module.exports = Duplex;
/*<replacement>*/

var util = Object.create(__webpack_require__("Onz0"));
util.inherits = __webpack_require__("P7XM");
/*</replacement>*/

var Readable = __webpack_require__("rXFu");

var Writable = __webpack_require__("3BRs");

util.inherits(Duplex, Readable);
{
  // avoid scope creep, the keys array can then be collected
  var keys = objectKeys(Writable.prototype);

  for (var v = 0; v < keys.length; v++) {
    var method = keys[v];
    if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];
  }
}

function Duplex(options) {
  if (!(this instanceof Duplex)) return new Duplex(options);
  Readable.call(this, options);
  Writable.call(this, options);
  if (options && options.readable === false) this.readable = false;
  if (options && options.writable === false) this.writable = false;
  this.allowHalfOpen = true;
  if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;
  this.once('end', onend);
}

Object.defineProperty(Duplex.prototype, 'writableHighWaterMark', {
  // making it explicit this property is not enumerable
  // because otherwise some prototype manipulation in
  // userland will fail
  enumerable: false,
  get: function () {
    return this._writableState.highWaterMark;
  }
}); // the no-half-open enforcer

function onend() {
  // if we allow half-open state, or if the writable side ended,
  // then we're ok.
  if (this.allowHalfOpen || this._writableState.ended) return; // no more data can be written.
  // But allow more writes to happen in this tick.

  pna.nextTick(onEndNT, this);
}

function onEndNT(self) {
  self.end();
}

Object.defineProperty(Duplex.prototype, 'destroyed', {
  get: function () {
    if (this._readableState === undefined || this._writableState === undefined) {
      return false;
    }

    return this._readableState.destroyed && this._writableState.destroyed;
  },
  set: function (value) {
    // we ignore the value if the stream
    // has not been initialized yet
    if (this._readableState === undefined || this._writableState === undefined) {
      return;
    } // backward compatibility, the user is explicitly
    // managing destroyed


    this._readableState.destroyed = value;
    this._writableState.destroyed = value;
  }
});

Duplex.prototype._destroy = function (err, cb) {
  this.push(null);
  this.end();
  pna.nextTick(cb, err);
};

/***/ }),

/***/ "sdkb":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* unused harmony export getResponseArrayBuffer */
/* unused harmony export getBaseDirForPath */
/* unused harmony export ensureWindowsCorrectedPath */
/* unused harmony export UXPHelpers */
/* unused harmony export getFileURIForPath */
/* unused harmony export allSettled */
/* unused harmony export logUnhandledErrors */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return timeout; });
/* unused harmony export generateGUID */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return callIfFunction; });
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2020 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
/**
 * UXP polyfill for response.arrayBuffer() https://developer.mozilla.org/en-US/docs/Web/API/Body/arrayBuffer
 */
function getResponseArrayBuffer(url, authorizationParams) {
    return new Promise((resolve, reject) => {
        var xhr = new XMLHttpRequest();
        xhr.open('get', url);
        if (authorizationParams) {
            const { clientId, getAccessToken } = authorizationParams;
            xhr.setRequestHeader('x-api-key', clientId);
            xhr.setRequestHeader('Authorization', `Bearer ${getAccessToken()}`);
        }
        xhr.responseType = 'arraybuffer';
        xhr.onreadystatechange = function () {
            if (xhr.readyState === 4 && xhr.status !== 200) {
                reject(xhr.statusText);
            }
        };
        xhr.onloadend = () => {
            resolve(xhr.response);
        };
        xhr.send();
    });
}
function getBaseDirForPath(fullPath) {
    if (!fullPath) {
        return '';
    }
    // In the future this should be replaced by window.require('path).dirname(fullPath)
    // or similar API once UXP exposes it
    const pathSeparator = UXPHelpers.isWindows ? '\\' : '/';
    // [HOTFIX] Handle reversed paths for windows
    fullPath = ensureWindowsCorrectedPath(fullPath);
    return `${fullPath.substring(0, fullPath.lastIndexOf(pathSeparator))}${pathSeparator}`;
}
function ensureWindowsCorrectedPath(fullPath) {
    if (UXPHelpers.isWindows && UXPHelpers.isWinPathWithReversedFileSeparator(fullPath)) {
        return fullPath.replace(/\//g, '\\');
    }
    else {
        return fullPath;
    }
}
const isWinPlatform = RegExp(/^win/);
const isWinPathWithReversedFileSeparator = RegExp(/(^C:\/|^[a-zA-Z]:\/)/); // handle alternative win drive letters
const isWinUNCFilePath = RegExp(/^(\\\\)/);
const isEmptyDataURIImage = RegExp(/data:image\/(\w+);base64,$/);
const UXPHelpers = {
    get isWindows() {
        return isWinPlatform.test(navigator.platform);
    },
    isWinPathWithReversedFileSeparator(path) {
        return this.isWindows && isWinPathWithReversedFileSeparator.test(path);
    },
    isWinUNCFilePath(path) {
        return this.isWindows && isWinUNCFilePath.test(path);
    },
    isEmptyDataURIImage(uri) {
        return isEmptyDataURIImage.test(uri);
    },
};
/**
 * Return cross-platform URI for local file paths
 * @param filePath
 */
function getFileURIForPath(filePath) {
    try {
        return new URL('file://' + ensureWindowsCorrectedPath(filePath)).href;
    }
    catch (e) {
        console.error(`getFileURIForPath: error trying to create URL for ${filePath}`, e);
    }
    return '';
}
/**
 * Lightweight polyfill for Promise.allSettled that waits for all
 * tasks to complete despite errors.
 * @param tasks List of tasks to run
 */
function allSettled(tasks, onError) {
    return Promise.all(tasks.map((task, index) => task.catch(e => {
        console.error(e);
        if (onError) {
            onError(index, e);
        }
    })));
}
/**
 * Log rejections and errors on disk.
 */
function logUnhandledErrors() {
    // TODO: send them to ingest
    window.addEventListener('error', e => {
        console.log('Unhandled Event', JSON.stringify(e, null, 2));
    });
}
/**
 * Async version of setTimeout.
 * @param time time in milliseconds
 */
async function timeout(time) {
    return new Promise(resolve => setTimeout(resolve, time));
}
/**
 * Generate a rfc4122 version 4 compliant GUID.
 * @see http://stackoverflow.com/questions/105034/create-guid-uuid-in-javascript
 *
 * @return {String} containing the GUID
 */
function generateGUID() {
    return 'xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx'
        .replace(/[xy]/g, c => {
        // 'x|0' is a shortcut for 'Math.floor(x)'
        const r = (Math.random() * 16) | 0;
        const v = c === 'x' ? r : (r & 0x3) | 0x8;
        return v.toString(16);
    })
        .toUpperCase();
}
/**
 * Checks if the passed param is a function and if it is will call it and return its value
 *
 * @param func The function to be called
 * @param params The params with which the function should be called
 */
function callIfFunction(func, ...params) {
    return typeof func === 'function' && func(...params);
}


/***/ }),

/***/ "seVz":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _stores_SelectionStore__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("7XYX");
/* harmony import */ var _platform__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("acin");
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2020 Adobe Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Incorporated.
 **************************************************************************/


function getExtendSelectionMode(e) {
    const toggleKey = Object(_platform__WEBPACK_IMPORTED_MODULE_1__[/* normalizePlatform */ "c"])(navigator.platform) === _platform__WEBPACK_IMPORTED_MODULE_1__[/* Platform */ "a"].mac
        ? e.metaKey // Cmd+Click on Mac
        : e.ctrlKey;
    const rangeKey = e.shiftKey;
    let extendSelectionMode;
    if (toggleKey) {
        extendSelectionMode = _stores_SelectionStore__WEBPACK_IMPORTED_MODULE_0__[/* ExtendSelectionMode */ "a"].Toggle;
    }
    else if (rangeKey) {
        extendSelectionMode = _stores_SelectionStore__WEBPACK_IMPORTED_MODULE_0__[/* ExtendSelectionMode */ "a"].Range;
    }
    else {
        extendSelectionMode = _stores_SelectionStore__WEBPACK_IMPORTED_MODULE_0__[/* ExtendSelectionMode */ "a"].Single;
    }
    return extendSelectionMode;
}
/* harmony default export */ __webpack_exports__["a"] = (getExtendSelectionMode);


/***/ }),

/***/ "sfxt":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var _UxpOptions = _interopRequireDefault(__webpack_require__("zvwv"));

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}
/*************************************************************************
* ADOBE CONFIDENTIAL
* ___________________
*
* Copyright 2019 Adobe
* All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains
* the property of Adobe and its suppliers, if any. The intellectual
* and technical concepts contained herein are proprietary to Adobe
* and its suppliers and are protected by all applicable intellectual
* property laws, including trade secret and copyright laws.
* Dissemination of this information or reproduction of this material
* is strictly forbidden unless prior written permission is obtained
* from Adobe.
**************************************************************************/


module.exports = _UxpOptions.default.select('Search', () => __webpack_require__("txkJ"), () => __webpack_require__("h2jO"));

/***/ }),

/***/ "shjB":
/***/ (function(module, exports) {

/** Used as references for various `Number` constants. */
var MAX_SAFE_INTEGER = 9007199254740991;
/**
 * Checks if `value` is a valid array-like length.
 *
 * **Note:** This method is loosely based on
 * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
 * @example
 *
 * _.isLength(3);
 * // => true
 *
 * _.isLength(Number.MIN_VALUE);
 * // => false
 *
 * _.isLength(Infinity);
 * // => false
 *
 * _.isLength('3');
 * // => false
 */

function isLength(value) {
  return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
}

module.exports = isLength;

/***/ }),

/***/ "sk9p":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


exports.__esModule = true;

var _isIterable2 = __webpack_require__("k/8l");

var _isIterable3 = _interopRequireDefault(_isIterable2);

var _getIterator2 = __webpack_require__("FyfS");

var _getIterator3 = _interopRequireDefault(_getIterator2);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

exports.default = function () {
  function sliceIterator(arr, i) {
    var _arr = [];
    var _n = true;
    var _d = false;
    var _e = undefined;

    try {
      for (var _i = (0, _getIterator3.default)(arr), _s; !(_n = (_s = _i.next()).done); _n = true) {
        _arr.push(_s.value);

        if (i && _arr.length === i) break;
      }
    } catch (err) {
      _d = true;
      _e = err;
    } finally {
      try {
        if (!_n && _i["return"]) _i["return"]();
      } finally {
        if (_d) throw _e;
      }
    }

    return _arr;
  }

  return function (arr, i) {
    if (Array.isArray(arr)) {
      return arr;
    } else if ((0, _isIterable3.default)(Object(arr))) {
      return sliceIterator(arr, i);
    } else {
      throw new TypeError("Invalid attempt to destructure non-iterable instance");
    }
  };
}();

/***/ }),

/***/ "sqWI":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// UNUSED EXPORTS: CloudStatusIconForTests

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__("q1tI");
var react_default = /*#__PURE__*/__webpack_require__.n(react);

// EXTERNAL MODULE: ./node_modules/mobx-react/index.module.js
var index_module = __webpack_require__("okNM");

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/OverlayTrigger/index.js
var OverlayTrigger = __webpack_require__("uYrR");
var OverlayTrigger_default = /*#__PURE__*/__webpack_require__.n(OverlayTrigger);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Tooltip/index.js
var Tooltip = __webpack_require__("DUuf");
var Tooltip_default = /*#__PURE__*/__webpack_require__.n(Tooltip);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/constants.ts
var constants = __webpack_require__("a375");

// EXTERNAL MODULE: ./node_modules/classnames/index.js
var classnames = __webpack_require__("TSYQ");
var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/styles/CloudOnlyIcon.css
var CloudOnlyIcon = __webpack_require__("olLX");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/components/svgs/CloudOnlyIcon.tsx



const DEFAULT_ICON_SIZE = 18;
const CloudOnlyIcon_CloudOnlyIcon = ({ height = DEFAULT_ICON_SIZE, width = DEFAULT_ICON_SIZE, className = '', isOffline = false, }) => (react_default.a.createElement("svg", { className: classnames_default()('CloudOnlyIcon', className, isOffline && 'offline'), xmlns: "http://www.w3.org/2000/svg", width: height, height: width, viewBox: `0 0 ${height} ${width}` },
    react_default.a.createElement("circle", { className: "outline", cx: "9", cy: "9", r: "8.95" }),
    react_default.a.createElement("path", { className: "background", d: "M9,1.2A7.8,7.8,0,1,0,16.8,9,7.8,7.8,0,0,0,9,1.2Z" }),
    react_default.a.createElement("path", { className: "cloud", d: "M12.123,8.228a1.745,1.745,0,0,0-.2.012A2.3,2.3,0,1,0,7.482,7a2.326,2.326,0,0,0-.065.32A1.939,1.939,0,0,0,5.04,8.691a1.964,1.964,0,0,0,0,1.006,1.062,1.062,0,0,0-.186-.016,1.091,1.091,0,1,0,0,2.181l7.27,0a1.818,1.818,0,0,0,0-3.636Z" })));
/* harmony default export */ var svgs_CloudOnlyIcon = (CloudOnlyIcon_CloudOnlyIcon);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/components/svgs/AvailableOfflineIcon.tsx


const AvailableOfflineIcon_DEFAULT_ICON_SIZE = 18;
const AvailableOfflineIcon = ({ height = AvailableOfflineIcon_DEFAULT_ICON_SIZE, width = AvailableOfflineIcon_DEFAULT_ICON_SIZE, className = '', primaryColor = '#494949', // light: #f5f5f5;
secondaryColor = '#258e6c', tertiaryColor = '#fff', }) => (react_default.a.createElement("svg", { className: classnames_default()('AvailableOfflineIcon', className), xmlns: "http://www.w3.org/2000/svg", width: height, height: width, viewBox: `0 0 ${height} ${width}` },
    react_default.a.createElement("circle", { className: "outline", fill: primaryColor, cx: "9", cy: "9", r: "8.95" }),
    react_default.a.createElement("path", { fill: secondaryColor, d: "M9,1.2A7.8,7.8,0,1,0,16.8,9,7.8,7.8,0,0,0,9,1.2Z" }),
    react_default.a.createElement("path", { fill: tertiaryColor, d: "M7.62,13.183,4.154,9.764a.5.5,0,0,1,0-.707l.7-.712a.5.5,0,0,1,.707-.005l2.268,2.237,4.231-5.421a.5.5,0,0,1,.7-.087l.788.616a.5.5,0,0,1,.087.7L8.366,13.135A.5.5,0,0,1,7.62,13.183Z" })));
/* harmony default export */ var svgs_AvailableOfflineIcon = (AvailableOfflineIcon);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/components/svgs/AlertIcon.tsx
/*************************************************************************
 *   ADOBE CONFIDENTIAL
 *
 *   Copyright 2022 Adobe
 *   All Rights Reserved.
 *
 *   NOTICE:  All information contained herein is, and remains
 *   the property of Adobe and its suppliers, if any. The intellectual
 *   and technical concepts contained herein are proprietary to Adobe
 *   and its suppliers and are protected by all applicable intellectual
 *   property laws, including trade secret and copyright laws.
 *   Dissemination of this information or reproduction of this material
 *   is strictly forbidden unless prior written permission is obtained
 *   from Adobe.
 **************************************************************************/


const AlertIcon_DEFAULT_ICON_SIZE = 18;
const AlertIcon = ({ height = AlertIcon_DEFAULT_ICON_SIZE, width = AlertIcon_DEFAULT_ICON_SIZE, className = '', primaryColor = '#494949', // light: #f5f5f5;
secondaryColor = '#ca7028', tertiaryColor = '#fff', }) => (react_default.a.createElement("svg", { className: classnames_default()('AlertIcon', className), xmlns: "http://www.w3.org/2000/svg", width: height, height: width, viewBox: `0 0 ${height} ${width}` },
    react_default.a.createElement("circle", { className: "outline", fill: primaryColor, cx: "9", cy: "9", r: "8.95" }),
    react_default.a.createElement("path", { fill: secondaryColor, d: "M9,1.2A7.8,7.8,0,1,0,16.8,9,7.8,7.8,0,0,0,9,1.2Z" }),
    react_default.a.createElement("path", { fill: tertiaryColor, d: "M7.851,3.646a.242.242,0,0,1,.114-.24,3.042,3.042,0,0,1,1.049-.212,3.311,3.311,0,0,1,1.061.16.272.272,0,0,1,.136.241v1.22c0,1.439-.287,5.413-.34,5.936,0,.1-.063.157-.18.157H8.336a.171.171,0,0,1-.178-.149c-.049-.663-.307-4.52-.307-5.893Z" }),
    react_default.a.createElement("path", { fill: tertiaryColor, d: "M9.014,14.772a1.175,1.175,0,0,1-1.281-1.2,1.214,1.214,0,0,1,1.281-1.23,1.2,1.2,0,0,1,1.281,1.23A1.163,1.163,0,0,1,9.014,14.772Z" })));
/* harmony default export */ var svgs_AlertIcon = (AlertIcon);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/components/svgs/SyncIcon.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
// tslint:disable:max-line-length


const SyncIcon_DEFAULT_ICON_SIZE = 18;
const SyncIcon = ({ height = SyncIcon_DEFAULT_ICON_SIZE, width = SyncIcon_DEFAULT_ICON_SIZE, className = '', primaryColor = '#494949', // light: #f5f5f5;
secondaryColor = '#7c7c7c', tertiaryColor = '#fff', }) => (react_default.a.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", className: classnames_default()('SyncIcon', className), width: width, height: height, viewBox: `0 0 ${width} ${height}` },
    react_default.a.createElement("circle", { className: "outline", fill: primaryColor, cx: "9", cy: "9", r: "8.95" }),
    react_default.a.createElement("path", { fill: secondaryColor, d: "M9,1.2A7.8,7.8,0,1,0,16.8,9,7.8,7.8,0,0,0,9,1.2Z" }),
    react_default.a.createElement("path", { fill: tertiaryColor, d: "M14.158,5a.21.21,0,0,0-.147-.061.2.2,0,0,0-.143.06l-.9.9A5.1,5.1,0,0,0,3.921,7.937a.207.207,0,0,0,.2.243l.883,0a.2.2,0,0,0,.2-.155,3.822,3.822,0,0,1,6.846-1.2L11,7.867a.2.2,0,0,0-.06.143A.208.208,0,0,0,11,8.157a.2.2,0,0,0,.126.058h2.882a.2.2,0,0,0,.2-.2V5.129A.2.2,0,0,0,14.158,5Z" }),
    react_default.a.createElement("path", { fill: tertiaryColor, d: "M3.839,13a.21.21,0,0,0,.147.061A.2.2,0,0,0,4.13,13l.9-.9a5.1,5.1,0,0,0,9.047-2.035.207.207,0,0,0-.2-.243l-.882,0a.2.2,0,0,0-.2.155,3.822,3.822,0,0,1-6.846,1.205l1.045-1.045a.2.2,0,0,0,.06-.143.208.208,0,0,0-.061-.147.2.2,0,0,0-.125-.058H3.986a.2.2,0,0,0-.205.2v2.882A.2.2,0,0,0,3.839,13Z" })));
const OfflineSyncIcon = () => react_default.a.createElement(SyncIcon, { className: "OfflineSyncIcon" });
const OnlineSyncIcon = () => react_default.a.createElement(SyncIcon, { className: "OnlineSyncIcon", secondaryColor: "#1473e6" });


// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/types/CDOReactIntlTyped.ts
var CDOReactIntlTyped = __webpack_require__("dSAe");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/stores/AssetModel/LocalAssetModel.ts
var LocalAssetModel = __webpack_require__("UApw");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/components/CloudStatusIcon.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
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;
};











let CloudStatusIcon_CloudStatusIcon = class CloudStatusIcon extends react["Component"] {
    render() {
        const { element, intl, isOffline, assetSyncStateStore } = this.props;
        // calling AssetSyncStateStore#isSyncing monitors the observable in the AssetSyncStateStore
        const isElementSyncing = assetSyncStateStore.isSyncing(element).get();
        const isElementPendingSync = assetSyncStateStore.isPendingSync(element).get();
        let icon;
        let tooltip;
        if (element.isFolder || element instanceof LocalAssetModel["a" /* default */]) {
            return null;
        }
        if (isElementSyncing || isElementPendingSync || element.hasPendingOperation) {
            // When the user is online but over quota, new docs created and updates to docs wait
            // to sync until more storage is available. Show pending sync icon in this case
            const waitingToSync = isOffline || isElementPendingSync;
            const tooltipId = waitingToSync ? 'statusIcon.waitingToSync' : 'statusIcon.syncing';
            icon = waitingToSync ? react["createElement"](OfflineSyncIcon, null) : react["createElement"](OnlineSyncIcon, null);
            tooltip = react["createElement"](Tooltip_default.a, null, intl.formatMessage({ id: tooltipId }));
        }
        else if (element.isConflicted || element.isSyncSuspended) {
            const tooltipId = element.needsSyncErrorResolution
                ? 'tooltip.syncSuspended.needsAction'
                : 'statusIcon.conflicted';
            icon = react["createElement"](svgs_AlertIcon, { className: "tooltip error" });
            tooltip = react["createElement"](Tooltip_default.a, { variant: "error" }, intl.formatMessage({ id: tooltipId }));
        }
        else if (element.isUserPinned || element.isCached) {
            icon = react["createElement"](svgs_AvailableOfflineIcon, null);
            tooltip = (react["createElement"](Tooltip_default.a, null, intl.formatMessage({ id: 'statusIcon.availableOffline' })));
        }
        else if (element.cloudUri !== '' && !element.isCached) {
            icon = react["createElement"](svgs_CloudOnlyIcon, { isOffline: isOffline });
            tooltip = react["createElement"](Tooltip_default.a, null, intl.formatMessage({ id: 'statusIcon.onlineOnly' }));
        }
        else {
            // No icon
            return null;
        }
        return (react["createElement"](OverlayTrigger_default.a, { placement: "left", trigger: ['hover'], disabled: !tooltip, delayShow: constants["e" /* DEFAULT_TOOLTIP_DELAY */] },
            react["createElement"]("div", { className: "CloudStatusIcon" }, icon),
            tooltip));
    }
};
CloudStatusIcon_CloudStatusIcon = __decorate([
    index_module["e" /* observer */]
], CloudStatusIcon_CloudStatusIcon);
const MobxInjectedCloudStatusIcon = Object(index_module["d" /* inject */])('assetSyncStateStore')(CloudStatusIcon_CloudStatusIcon);
/* harmony default export */ var components_CloudStatusIcon = __webpack_exports__["a"] = (Object(CDOReactIntlTyped["e" /* injectIntl */])(MobxInjectedCloudStatusIcon));



/***/ }),

/***/ "su7t":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("path", {
  d: "M43 10H11a1 1 0 0 0-1 1v32a1 1 0 0 0 1 1h32a1 1 0 0 0 1-1V11a1 1 0 0 0-1-1zm-3 30H14V14h26z"
}), React.createElement("path", {
  d: "M10 34H8V8h26v2h4V5a1 1 0 0 0-1-1H5a1 1 0 0 0-1 1v32a1 1 0 0 0 1 1h5z"
}), React.createElement("path", {
  d: "M29 28l4-3.5 4 3.5V14h-8v14z"
}));

/***/ }),

/***/ "sxWQ":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("79ho"),
      24: __webpack_require__("aHq5")
    }
  }));
};

WrappedIcon.displayName = 'Flag';
exports.default = WrappedIcon;

/***/ }),

/***/ "sy2j":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _convertUnsafeMethod = _interopRequireDefault(__webpack_require__("8nyd"));

var _filterDOMProps = _interopRequireDefault(__webpack_require__("Cv/Q"));

var _FocusManager = _interopRequireDefault(__webpack_require__("3C4i"));

var _propTypes = _interopRequireDefault(__webpack_require__("17x9"));

var _react = _interopRequireWildcard(__webpack_require__("q1tI"));

const _excluded = ["children", "className", "multiple", "disabled", "readOnly", "invalid", "required", "orientation", "manageTabIndex", "role"];

var _class, _class2, _temp;

function _getRequireWildcardCache(nodeInterop) {
  if (typeof WeakMap !== "function") return null;
  var cacheBabelInterop = new WeakMap();
  var cacheNodeInterop = new WeakMap();
  return (_getRequireWildcardCache = function (nodeInterop) {
    return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
  })(nodeInterop);
}

function _interopRequireWildcard(obj, nodeInterop) {
  if (!nodeInterop && obj && obj.__esModule) {
    return obj;
  }

  if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
    return {
      default: obj
    };
  }

  var cache = _getRequireWildcardCache(nodeInterop);

  if (cache && cache.has(obj)) {
    return cache.get(obj);
  }

  var newObj = {};
  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;

  for (var key in obj) {
    if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
      var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;

      if (desc && (desc.get || desc.set)) {
        Object.defineProperty(newObj, key, desc);
      } else {
        newObj[key] = obj[key];
      }
    }
  }

  newObj.default = obj;

  if (cache) {
    cache.set(obj, newObj);
  }

  return newObj;
}

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

if (false) {} else if (false) {} else {
  __webpack_require__("qG/A");
}

const BUTTONGROUP_ITEM_SELECTOR = '.spectrum-ButtonGroup-item:not([disabled]):not([aria-disabled])';
const BUTTONGROUP_SELECTED_ITEM_SELECTOR = BUTTONGROUP_ITEM_SELECTOR + '[aria-checked=true].is-selected';
const ALLOWED_BUTTON_VARIANTS = {
  tool: true,
  action: true,
  toggle: true
};

let ButtonGroup = (0, _convertUnsafeMethod.default)(_class = (_temp = _class2 = class ButtonGroup extends _react.Component {
  constructor(props) {
    super(props);
    this.state = {
      value: props.value
    };
  }

  UNSAFE_componentWillReceiveProps(props) {
    if (props.value && props.value !== this.state.value) {
      this.setState({
        value: props.value
      });
    }
  }

  addSelection(button) {
    return [...(this.state.value || []), button.value];
  }

  removeSelection(button) {
    let value = this.state.value || [];
    const index = value.indexOf(button.value);
    return [...value.slice(0, index), ...value.slice(index + 1, value.length)];
  }

  handleSelect(button, e) {
    if (!this.props.readOnly && !button.readOnly) {
      let nextButtons;

      if (this.props.multiple) {
        if (this.isSelected(button)) {
          nextButtons = this.removeSelection(button);
        } else {
          nextButtons = this.addSelection(button);
        }
      } else {
        nextButtons = button.value;
      } // Set state if in uncontrolled mode


      if (!('value' in this.props)) {
        this.setState({
          value: nextButtons
        });
      }

      if (this.props.onChange) {
        this.props.onChange(nextButtons, e);
      }
    } // Support button's onClicks


    if (button.onClick) {
      button.onClick(e);
    } // Allow's the ButtonGroup's onClick to be called when a button is clicked


    if (this.props.onClick) {
      this.props.onClick(button.value, e);
    }
  }
  /**
   * @private
   * Evaluates whether button element is selected.
   * @param   {Object}  button Button properties object
   * @returns {Boolean} true if button is selected
   */


  isSelected(button) {
    if (this.props.readOnly) {
      return null;
    }

    return this.props.multiple ? this.state.value && this.state.value.indexOf(button.value) >= 0 : this.state.value === button.value;
  }
  /**
   * @private
   * The role to be used by buttons within the group. If the button group is readOnly,
   * button should retain their implicit role of button. With multiple selection, buttons
   * should have role of checkbox, and with single selection buttons should have role of radio.
   * @returns {String} role of buttons within group, either null, radio or checkbox.
   */


  getChildRole() {
    if (this.props.readOnly) {
      return null;
    }

    return this.props.multiple ? 'checkbox' : 'radio';
  }

  getChildProps(button, index) {
    const invalid = this.props.invalid || button.props.invalid;
    const required = this.props.required || button.props.required;
    const disabled = this.props.disabled || button.props.disabled;
    const selected = this.isSelected(button.props);
    const role = this.getChildRole();
    const onClick = !disabled ? this.handleSelect.bind(this, button.props) : null;
    const allowedVariant = ALLOWED_BUTTON_VARIANTS[button.props.variant];
    const classes = (0, _classnames.default)('spectrum-ButtonGroup-item', button.props.className);
    return {
      /* eslint-disable */
      tabIndex: !disabled ? this.props.tabIndex ? this.props.tabIndex : undefined : undefined,

      /* eslint-enable */
      className: classes,
      selected: selected,
      disabled: disabled,
      variant: allowedVariant ? button.props.variant : 'action',
      quiet: allowedVariant ? button.props.quiet : true,
      onClick: onClick,
      onKeyDown: button.props.onKeyDown,
      role: role,
      'aria-checked': selected,
      'aria-invalid': invalid,
      'aria-required': required
    };
  }

  renderButtons() {
    const {
      children
    } = this.props;
    return _react.default.Children.map(children, (child, index) => child ? /*#__PURE__*/_react.default.cloneElement(child, this.getChildProps(child, index)) : null);
  }

  render() {
    let _this$props = this.props,
        {
      children = [],
      className,
      multiple,
      disabled,
      readOnly,
      invalid,
      required,
      orientation,
      manageTabIndex,
      role
    } = _this$props,
        otherProps = _objectWithoutProperties(_this$props, _excluded);

    delete otherProps.onChange;
    delete otherProps.onClick;

    if (!role) {
      if (!readOnly && !multiple) {
        // With single-selection, the wrapper element should have role=radiogroup.
        role = 'radiogroup';
      } else if (readOnly || children.length > 2) {
        // With readOnly and more than one button, the wrapper element should have role=toolbar, otherwise with less than two items or multi-selection, use role=group.
        role = readOnly && children.length > 2 ? 'toolbar' : 'group';
      }
    }

    return /*#__PURE__*/_react.default.createElement(_FocusManager.default, {
      itemSelector: BUTTONGROUP_ITEM_SELECTOR,
      selectedItemSelector: BUTTONGROUP_SELECTED_ITEM_SELECTOR,
      orientation: role === 'toolbar' ? orientation : 'both',
      manageTabIndex: manageTabIndex
    }, /*#__PURE__*/_react.default.createElement("div", _extends({
      "aria-invalid": invalid || null,
      "aria-required": required || null,
      "aria-disabled": disabled || null,
      "aria-orientation": orientation !== 'both' && role === 'toolbar' ? orientation : null,
      role: role
    }, (0, _filterDOMProps.default)(otherProps), {
      className: (0, _classnames.default)('spectrum-ButtonGroup', {
        'spectrum-ButtonGroup--vertical': orientation === 'vertical'
      }, className)
    }), this.renderButtons(children)));
  }

}, _class2.propTypes = {
  /**
   * All buttons in ButtonGroup are disabled, greyed out and cannot be interacted with.
   */
  disabled: _propTypes.default.bool,

  /**
   * Will override all child buttons invalid
   */
  invalid: _propTypes.default.bool,

  /**
   * Whether to use roving tabIndex so that only one element within the group can receive focus with tab key at a time.
   */
  manageTabIndex: _propTypes.default.bool,

  /**
   * Allows multi select
   */
  multiple: _propTypes.default.bool,

  /**
   * Won't allow a permanent selection
   */
  readOnly: _propTypes.default.bool,

  /**
   * Will override all child buttons required
   */
  required: _propTypes.default.bool,

  /**
   * Called whenever a button is selected (non-readonly mode)
   */
  onChange: _propTypes.default.func,

  /**
   * Called whenever a button is clicked (readonly mode)
   */
  onClick: _propTypes.default.func,

  /**
   * Renders the button group as a row or a column
   */
  orientation: _propTypes.default.oneOf(['horizontal', 'vertical', 'both']),

  /**
   * Value to select one or more buttons in the group. Accepts an array of strings if multiple=true,
   * otherwise accepts a string
   */
  value: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.arrayOf(_propTypes.default.string)])
}, _class2.defaultProps = {
  disabled: false,
  invalid: false,
  manageTabIndex: true,
  multiple: false,
  readOnly: false,
  required: false,
  orientation: 'both'
}, _temp)) || _class;

exports.default = ButtonGroup;

/***/ }),

/***/ "szP4":
/***/ (function(module, exports) {



/***/ }),

/***/ "t+6E":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXPORTS
__webpack_require__.d(__webpack_exports__, "d", function() { return /* reexport */ CDOProvider_CDOProvider; });
__webpack_require__.d(__webpack_exports__, "n", function() { return /* reexport */ GridView["b" /* default */]; });
__webpack_require__.d(__webpack_exports__, "m", function() { return /* reexport */ GridItem["a" /* default */]; });
__webpack_require__.d(__webpack_exports__, "q", function() { return /* reexport */ ListView["c" /* default */]; });
__webpack_require__.d(__webpack_exports__, "p", function() { return /* reexport */ ListItem["a" /* default */]; });
__webpack_require__.d(__webpack_exports__, "a", function() { return /* reexport */ Busy["a" /* default */]; });
__webpack_require__.d(__webpack_exports__, "l", function() { return /* reexport */ DocumentModel; });
__webpack_require__.d(__webpack_exports__, "t", function() { return /* reexport */ components_Recent; });
__webpack_require__.d(__webpack_exports__, "y", function() { return /* reexport */ stores_constants["t" /* UXSortBy */]; });
__webpack_require__.d(__webpack_exports__, "z", function() { return /* reexport */ stores_constants["w" /* UXSortDir */]; });
__webpack_require__.d(__webpack_exports__, "w", function() { return /* reexport */ Stylesheets_namespaceObject; });
__webpack_require__.d(__webpack_exports__, "x", function() { return /* reexport */ constants["u" /* Themes */]; });
__webpack_require__.d(__webpack_exports__, "v", function() { return /* reexport */ SharedWithYou["a" /* default */]; });
__webpack_require__.d(__webpack_exports__, "k", function() { return /* reexport */ Deleted["a" /* default */]; });
__webpack_require__.d(__webpack_exports__, "f", function() { return /* reexport */ CloudDocuments["a" /* default */]; });
__webpack_require__.d(__webpack_exports__, "o", function() { return /* reexport */ i18n["a" /* default */]; });
__webpack_require__.d(__webpack_exports__, "K", function() { return /* reexport */ launch_item["b" /* default */]; });
__webpack_require__.d(__webpack_exports__, "G", function() { return /* reexport */ launch_item["c" /* getLaunchDocInfo */]; });
__webpack_require__.d(__webpack_exports__, "E", function() { return /* reexport */ validate_filename["d" /* fileNameValidator */]; });
__webpack_require__.d(__webpack_exports__, "C", function() { return /* reexport */ validate_filename["c" /* ValidationStatus */]; });
__webpack_require__.d(__webpack_exports__, "s", function() { return /* reexport */ validate_filename["a" /* ReactSpectrumValidationState */]; });
__webpack_require__.d(__webpack_exports__, "B", function() { return /* reexport */ validate_filename["b" /* VALIDATION_INVALID_CHARS */]; });
__webpack_require__.d(__webpack_exports__, "J", function() { return /* reexport */ platform["b" /* isWindows */]; });
__webpack_require__.d(__webpack_exports__, "h", function() { return /* reexport */ components_CloudSyncStatus; });
__webpack_require__.d(__webpack_exports__, "i", function() { return /* reexport */ ListView["b" /* ColumnType */]; });
__webpack_require__.d(__webpack_exports__, "I", function() { return /* reexport */ valid_move["a" /* default */]; });
__webpack_require__.d(__webpack_exports__, "e", function() { return /* reexport */ GridView["a" /* CardSize */]; });
__webpack_require__.d(__webpack_exports__, "A", function() { return /* reexport */ utils["a" /* default */]; });
__webpack_require__.d(__webpack_exports__, "c", function() { return /* reexport */ storage; });
__webpack_require__.d(__webpack_exports__, "u", function() { return /* reexport */ SAMAssetModel["a" /* default */]; });
__webpack_require__.d(__webpack_exports__, "r", function() { return /* reexport */ LocalAssetModel["a" /* default */]; });
__webpack_require__.d(__webpack_exports__, "L", function() { return /* reexport */ urls["h" /* localizedGoUrl */]; });
__webpack_require__.d(__webpack_exports__, "F", function() { return /* reexport */ CDCGlobalStore["b" /* getExistingCDCGlobalStore */]; });
__webpack_require__.d(__webpack_exports__, "D", function() { return /* reexport */ derive_parent_path["a" /* default */]; });
__webpack_require__.d(__webpack_exports__, "j", function() { return /* reexport */ ViewItem["a" /* DateMetadata */]; });
__webpack_require__.d(__webpack_exports__, "b", function() { return /* reexport */ CDOLink["a" /* default */]; });
__webpack_require__.d(__webpack_exports__, "g", function() { return /* reexport */ CloudStatusIcon["a" /* default */]; });
__webpack_require__.d(__webpack_exports__, "H", function() { return /* reexport */ SelectionStore["f" /* hasOnlyNonFolders */]; });

// UNUSED EXPORTS: CDOStore, CDOStoreType, ViewMode, CDORootPathType, ROOT_FOLDER_PATH, SHARED_WITH_YOU_PATH, ARCHIVE_FOLDER_PATH, AssetSyncStateStore, ModeType, CDOOperationResponseEnum, ICDOProviderProps, initCDOStores, CDOView, ICDOViewProps, ICDOViewProgressProps, IGridViewProps, IGridItemProps, IListViewProps, IListItemProps, BetaTag, IDocumentType, DocumentState, DocumentStore, DocumentStoreType, EmptyView, GenericFileIcon, IEmptyViewProps, RecentStore, RecentStoreType, ProcessingState, IHostProductData, IIMSData, ICallbacks, Tile, TileStatus, GenericTileConfig, SAMLogLevel, LogLevel, ISharedWithYouProps, IDeletedProps, ICloudDocumentsProps, EmptyCloudDocs, Platform, normalizePlatform, platformOsVersion, CloudSyncType, ICloudSyncStatusProps, ICommonCollectionViewProps, UXSortByForResources, UXSortByForACP, CDOHeader, ListViewColumn, IListViewCustomColumn, isValidExternalDropTarget, CDO_DROP_PATH_ATTR, CDO_DROP_CONTEXT_ATTR, CDO_DROP_INDEX_ATTR, CDODropContext, DragSource, CCDContentView, CDOApi, useCDOApi, ACPFetchAssetModel, ICDOAssetModel, IBaseAssetModel, Capability, IFileCapabilitiesConfig, ISelectionBehavior, IMoveDialogResult, ICollectionItem, ICollection, CollectionItemKind, CDCGlobalStore, ICommonCDCConfiguration, getCDCGlobalStore, showCloudSyncPanel, hideCloudSyncPanel, CloudSyncPanelArgs, MetadataFormat, EventType, IFilesStore, IImportData, Action, IReadOnlySelectionStore, ISelectionStore, IActionClick, BaseAssetModel, IAssetFields, SelectionStore, IShouldRenderItemAsDisabled, IOnSelectionChange, renderDateColumn, largeSizes, IOnRenameSubmit, IOnRenameCancel, IRenameValidator, hasOnlyFolders, hasAnyFolders, isFolder, ActionArgs, IAnalyticsData

// NAMESPACE OBJECT: ./node_modules/@ccx/ccx-cdo/src/theme/Stylesheets.ts
var Stylesheets_namespaceObject = {};
__webpack_require__.r(Stylesheets_namespaceObject);
__webpack_require__.d(Stylesheets_namespaceObject, "Themes", function() { return Themes; });
__webpack_require__.d(Stylesheets_namespaceObject, "initializeFromHostProductData", function() { return initializeFromHostProductData; });

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__("q1tI");
var react_default = /*#__PURE__*/__webpack_require__.n(react);

// EXTERNAL MODULE: ./node_modules/mobx/lib/mobx.module.js
var mobx_module = __webpack_require__("2vnA");

// EXTERNAL MODULE: ./node_modules/mobx-react/index.module.js
var index_module = __webpack_require__("okNM");

// EXTERNAL MODULE: ./node_modules/@ccx/acp-fetch/dist/index.js
var dist = __webpack_require__("iMIL");

// EXTERNAL MODULE: ./node_modules/@ccx-public/ccx-ingest/index.js
var ccx_ingest = __webpack_require__("j6Ri");
var ccx_ingest_default = /*#__PURE__*/__webpack_require__.n(ccx_ingest);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/i18n.ts
var i18n = __webpack_require__("oSp+");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/types/CDOReactIntlTyped.ts
var CDOReactIntlTyped = __webpack_require__("dSAe");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/constants.ts
var constants = __webpack_require__("a375");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/version.js
var version = __webpack_require__("gtay");
var version_default = /*#__PURE__*/__webpack_require__.n(version);

// EXTERNAL MODULE: ./node_modules/react-dom/index.js
var react_dom = __webpack_require__("i8i4");
var react_dom_default = /*#__PURE__*/__webpack_require__.n(react_dom);

// EXTERNAL MODULE: ./node_modules/uuid/index.js
var uuid = __webpack_require__("EcEN");
var uuid_default = /*#__PURE__*/__webpack_require__.n(uuid);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/stop-propagation.ts
var stop_propagation = __webpack_require__("hLgr");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/is-element-visible.ts
var is_element_visible = __webpack_require__("V8Xo");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/styles/ModalDialogContainer.css
var styles_ModalDialogContainer = __webpack_require__("MELs");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/components/ModalDialogContainer.tsx






const FOCUSABLE_CONTROLS = [
    'input:not([disabled])',
    'select:not([disabled])',
    'textarea:not([disabled])',
    'button:not([disabled])',
    'a[href]',
];
const FOCUSABLE_SELECTOR = [...FOCUSABLE_CONTROLS, '[tabindex]'].join(', ');
const TAB_FOCUS_SELECTOR = [
    ...FOCUSABLE_CONTROLS,
    '[tabindex]:not([tabindex=-1]):not([disabled])',
].join(', ');
/* eslint-disable react/no-find-dom-node */
class ModalDialogContainer_ModalDialogContainer extends react_default.a.Component {
    constructor() {
        super(...arguments);
        this.state = {
            dialogs: [],
        };
        this.openDialogRef = react_default.a.createRef();
        this.focusTrapFirstRef = react_default.a.createRef();
        this.focusTrapLastRef = react_default.a.createRef();
        this.onKeyDown = (e) => {
            if (e.key === 'Escape') {
                Object(stop_propagation["a" /* default */])(e, true);
            }
        };
        this.onClick = (e) => {
            // NOTE: Everything here relies on RS Dialog's root DOM node has tabindex=-1.
            // openDialogEl is the wrapper used in CDODialog to specify data-qe-id, and not the root element of the Dialog.
            const openDialogEl = react_dom_default.a.findDOMNode(this.openDialogRef.current);
            if (!openDialogEl) {
                // eslint-disable-next-line no-console
                console.warn('[cdo] ModalDialogContainer openDialogEl does not exist');
                return;
            }
            // find the first item that can receive focus, which should be the root el of Dialog
            const focusableEl = openDialogEl.querySelector(FOCUSABLE_SELECTOR);
            if (focusableEl === e.target) {
                // target is already focusable, so allow it to receive focus
                return;
            }
            // If the target is outside the dialog, make the dialog have focus
            // so it will get key events and tab will move focus inside the dialog.
            if (!openDialogEl.contains(e.target)) {
                focusableEl.focus();
                e.preventDefault();
            }
        };
        this.onFocus = (e) => {
            // User can only tab to the focus traps, so when one receives focus, the user has tabbed
            // past the bounds of the open dialog and focus should wrap around to the top/end focusable
            // element in the dialog.
            const trappedFirst = e.target === this.focusTrapFirstRef.current;
            const trappedLast = e.target === this.focusTrapLastRef.current;
            if (trappedFirst || trappedLast) {
                const [firstEl, lastEl] = this.getTabbableElements();
                if (trappedFirst && lastEl && lastEl.focus) {
                    // user shift-tabbed from topmost focusable element
                    lastEl.focus();
                }
                if (trappedLast && firstEl && firstEl.focus) {
                    // user tabbed from last focusable element
                    firstEl.focus();
                }
            }
        };
    }
    getTabbableElements() {
        const el = react_dom_default.a.findDOMNode(this.openDialogRef.current);
        if (el && el.querySelectorAll) {
            const focusable = el.querySelectorAll(TAB_FOCUS_SELECTOR);
            if (focusable.length) {
                // first, last, and all
                return [focusable[0], focusable[focusable.length - 1], ...focusable];
            }
        }
        return [];
    }
    // for unit tests
    getDocument() {
        return document;
    }
    /**
     * This is a temporary workaround until UXP can solve the layering issue
     * with the scrollbar appearing above elements it's not supposed to.
     * @TODO Remove this once UXP and Photoshop makes a fix on their end.
     * Jira: https://jira.corp.adobe.com/browse/CCXCD-2960
     * UXP: https://jira.corp.adobe.com/browse/UXP-10535
     * PS: https://jira.corp.adobe.com/browse/PS-36978
     *
     * @param state The visible state for the scrollbar.
     */
    setScrollbarsHidden(state) {
        const reactVScroll = document.querySelectorAll('.ReactVirtualized__grid');
        reactVScroll.forEach(element => {
            const lastVScroll = element;
            lastVScroll.setAttribute('uxpscrollbarhidden', state);
        });
    }
    addDialog(dialogElement, onDialogStateChange) {
        const key = uuid_default.a.v1();
        const doc = this.getDocument();
        if (onDialogStateChange) {
            // in CDP, need to notify UXP to replace native controls with dummy controls that follow
            // proper z-index rules.
            this.onDialogStateChange = onDialogStateChange;
        }
        this.onDialogStateChange(true);
        this.setScrollbarsHidden('true');
        return new Promise(resolve => {
            const { dialogs } = this.state;
            const restoreFocusElement = doc.activeElement;
            const dialog = react_default.a.cloneElement(dialogElement, {
                onDismissModalDialog: (response) => {
                    // remove dialog from array
                    let { dialogs } = this.state;
                    dialogs = dialogs.filter(item => item.key !== key);
                    // resolve promise with response from the dialog
                    resolve(response);
                    // If no more dialogs, clean up.
                    if (dialogs.length === 0) {
                        this.onDialogStateChange(false);
                        this.setScrollbarsHidden('false');
                    }
                    // trigger re-render, then restore focus
                    this.setState({ dialogs }, () => {
                        // Try to focus on restoreFocusElement. If it is not visible, it will not take focus.
                        if (restoreFocusElement &&
                            restoreFocusElement.focus &&
                            Object(is_element_visible["a" /* default */])(restoreFocusElement)) {
                            restoreFocusElement.focus();
                        }
                        else {
                            const allFocusable = doc.body.querySelectorAll(TAB_FOCUS_SELECTOR);
                            const focusEl = [...allFocusable].find(is_element_visible["a" /* default */]);
                            focusEl && focusEl.focus();
                        }
                    });
                },
            });
            dialogs.push({
                key,
                dialog,
            });
            // Trigger re-render
            this.setState({ dialogs });
        });
    }
    // TODO: change to use Provider/@inject to reduce the number of places it needs to be passed
    // through. Hopefully, UXP will just fix the problem and we can remove it.
    //    In CDP -- pass onDialogStateChange to CDOProvider as a prop
    //    in CDO -- CDOProvider passes empty function if prop not passed from CDP
    // Jira: https://jira.corp.adobe.com/browse/CCXCD-2961
    onDialogStateChange(newState) {
        // this implementation left intentionally blank
    }
    render() {
        const { dialogs } = this.state;
        if (!dialogs.length) {
            return null;
        }
        /* eslint-disable jsx-a11y/no-noninteractive-element-interactions */
        return (react_default.a.createElement("div", { role: "dialog", "data-qe-id": "modalDialogContainer", className: "modalDialogContainer", style: {
                position: 'relative',
                zIndex: 100000,
            }, onClick: this.onClick, onFocus: this.onFocus, onKeyDown: this.onKeyDown },
            react_default.a.createElement("div", { className: "spectrum-Underlay is-open" }),
            react_default.a.createElement("div", { className: "focusTrapFirst", tabIndex: 0, ref: this.focusTrapFirstRef }),
            dialogs.map((item, i) => react_default.a.cloneElement(item.dialog, {
                key: item.key,
                // NOTE: each dialog needs to pass this prop to CDODialog
                open: i === dialogs.length - 1,
                ref: i === dialogs.length - 1 ? this.openDialogRef : undefined,
            })),
            react_default.a.createElement("div", { className: "focusTrapLast", tabIndex: 0, ref: this.focusTrapLastRef })));
        /* eslint-enable */
    }
}
const constantsForTesting = {
    FOCUSABLE_SELECTOR,
    TAB_FOCUS_SELECTOR,
};
/* harmony default export */ var components_ModalDialogContainer = (ModalDialogContainer_ModalDialogContainer);


// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/init-cdo-stores.ts + 1 modules
var init_cdo_stores = __webpack_require__("eks+");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/components/CDOProvider.tsx
/* global envVars */








// @ts-ignore -- autogenerated



class CDOProvider_CDOProvider extends react["Component"] {
    constructor(props) {
        super(props);
        this._modalDialogContainerRef = react_default.a.createRef();
        this.openModalDialog = (dialogElement, onDialogStateChange) => this._modalDialogContainerRef.current.addDialog(dialogElement, onDialogStateChange);
        /**
         * Called by host app when it detects the user has logged out.
         */
        this.onUserLoggedOut = () => this.fetchRecents();
        /**
         * Called by host app when it detects the user has logged in.
         */
        this.onUserLoggedIn = () => this.fetchRecents();
        /**
         * On a user log in action, refresh the cloud document list and the recents list
         * TODO: This is called by CDP, but it is also binding UXP's MRUFileListChanged to this method
         *       and not this.onUpdateMRU(). Need to document why we need both onUpdateDocuments and onUpdateMRU.
         * Jira: https://jira.corp.adobe.com/browse/CCXCD-2957
         */
        this.onUpdateDocuments = () => this.fetchRecents();
        /**
         * Called after client dispatches an event notifying changes to recents
         */
        this.onUpdateMRU = () => this.fetchRecents();
        this.onStatusChange = (status) => {
            if (this.props.callbacks.onStatusChange) {
                this.props.callbacks.onStatusChange(status);
            }
        };
        this.onCosyStatusChange = (status) => {
            if (this.props.callbacks.onCosyStatusChange) {
                this.props.callbacks.onCosyStatusChange(status);
            }
        };
        const { hostProductData, imsData, mode, documentFilterOverride, cloudURLProtocol, suspendRefresh = false, fileCapabilities, cardSize, selectionBehavior, } = this.props;
        // Extend imsData with default environment, if needed
        this._imsData = {
            // environment may be overridden by imsData prop
            environment: constants["d" /* DEFAULTS */].SERVICE_ENVIRONMENT,
            ...imsData,
        };
        const { cdoStore, docStore, recentStore, featureFlags, locale, ingestController, assetSyncStateStore, selectionStore, cdoMetrics, } = Object(init_cdo_stores["b" /* initCDOStores */])({
            hostProductData,
            mode,
            cloudURLProtocol,
            suspendRefresh,
            imsData: this._imsData,
            fileCapabilities,
            cardSize,
            selectionBehavior,
        });
        this._cdoStore = cdoStore;
        this._docStore = docStore;
        this._recentStore = recentStore;
        this._locale = locale;
        this.ingestController = ingestController;
        this.assetSyncStateStore = assetSyncStateStore;
        this.selectionStore = selectionStore;
        this.cdoMetrics = cdoMetrics;
        if (documentFilterOverride) {
            docStore.setDocumentFilterOverride(documentFilterOverride);
        }
        Object(mobx_module["B" /* reaction */])(() => this._docStore.connectionState, state => {
            this.onStatusChange({
                type: dist["NotificationType"].network,
                value: state,
            });
        });
        Object(mobx_module["B" /* reaction */])(() => this._docStore.quotaStore && this._docStore.quotaStore.quotaState, state => {
            this.onStatusChange({
                type: dist["NotificationType"].quota,
                value: state,
            });
        });
        Object(mobx_module["B" /* reaction */])(() => this._docStore.coreSyncState, state => {
            this.onCosyStatusChange({
                type: dist["NotificationType"].coreSync,
                value: state,
            });
        });
        Object(mobx_module["B" /* reaction */])(() => this._docStore.isUserLoggedOut, isUserLoggedOut => {
            if (isUserLoggedOut) {
                this.assetSyncStateStore.clear();
            }
        });
        this.fetchRecents();
        // Pre-fetch cloud documents, unless specifically told not to by the host
        const dontPrefetch = featureFlags['disableCloudDocPrefetch'];
        this._themingSupport = featureFlags['themingSupport'];
        if (!dontPrefetch) {
            // only CDOProvider should call this method
            this._docStore['preFetchDocuments']();
        }
    }
    /**
     * Invoked immediately after updating occurs. This method is
     * not called for the initial render.
     *
     * @param prevProps        object containing the previous props data
     */
    componentDidUpdate(prevProps) {
        const { mode, suspendRefresh, documentFilterOverride, selectionBehavior } = this.props;
        this.selectionStore.setSelectionBehavior(selectionBehavior);
        if (prevProps.mode !== mode) {
            this._cdoStore.updateModeState(mode);
        }
        if (prevProps.suspendRefresh !== suspendRefresh) {
            this._docStore.setSuspendRefresh(suspendRefresh === true);
        }
        if (prevProps.documentFilterOverride !== documentFilterOverride) {
            if (!documentFilterOverride) {
                this._docStore.clearDocumentFilterOverride();
            }
            else {
                this._docStore.setDocumentFilterOverride(documentFilterOverride);
            }
        }
    }
    /**
     * Catch component errors.
     * @see https://fb.me/react-error-boundaries
     *
     * @param {Object} error    error container object
     * @param {Object} info     container with extended info (including call stack `componentStack`)
     * @return {undefined}
     */
    componentDidCatch(error, info) {
        // Display fallback UI
        console.error(`[CDOProvider.CatchError] ${error}\r\n`, `[CDOProvider.CatchInfo] ${info}\r\n`);
    }
    /**
     * Navigate CDO to root directory. Client should call this method whenever navigating to Cloud Documents
     * view, to reset the active folder back to the root folder.
     */
    navigateToRoot() {
        this._docStore.setCurrentPath(constants["q" /* ROOT_FOLDER_PATH */]);
    }
    fetchRecents() {
        const { callbacks, maxRecents, hostProductData } = this.props;
        const { defaultDocumentIcons } = hostProductData;
        const defaultRendition = (defaultDocumentIcons && defaultDocumentIcons['default']) || '';
        this._recentStore.fetchRecents({
            getLocalRecents: callbacks.onGetLocalRecents || (async () => []),
            getPreviewRenditionCallback: callbacks.onGetPreviewRendition || (async () => defaultRendition),
            limit: maxRecents,
        });
    }
    /**
     * Component renderer.
     * @return {ReactElement} markup
     */
    render() {
        const { messages, callbacks, children, theme, hostProductData } = this.props;
        const { launchMoveDialog } = hostProductData;
        const localizedStringTable = Object.assign(messages, i18n["a" /* default */].getStringsForLocale(this._locale));
        return (react_default.a.createElement(CDOReactIntlTyped["c" /* IntlProvider */], { locale: this._locale, messages: localizedStringTable },
            react_default.a.createElement(index_module["b" /* Provider */], { selectionStore: this.selectionStore, assetSyncStateStore: this.assetSyncStateStore, cdoStore: this._cdoStore, recentStore: this._recentStore, docStore: this._docStore, callbacks: callbacks, launchMoveDialog: launchMoveDialog, openModalDialog: this.openModalDialog, metrics: this.cdoMetrics, theme: theme },
                react_default.a.createElement(ccx_ingest_default.a
                // TODO: remove IngestProvider and use CDOMetrics instead
                // https://jira.corp.adobe.com/browse/CCXCD-4676
                // below props are unnecessary, but they hide warnings. They're configured in initCDOStores
                , { 
                    // TODO: remove IngestProvider and use CDOMetrics instead
                    // https://jira.corp.adobe.com/browse/CCXCD-4676
                    // below props are unnecessary, but they hide warnings. They're configured in initCDOStores
                    apiKey: init_cdo_stores["a" /* INGEST_API_KEY */], product: version_default.a, project: constants["m" /* INGEST_PROJECT_VALUE */], allowNoToken: true },
                    react_default.a.createElement(react_default.a.Fragment, null,
                        react_default.a.createElement(components_ModalDialogContainer, { ref: this._modalDialogContainerRef }),
                        children)))));
    }
}
CDOProvider_CDOProvider.defaultProps = {
    locale: constants["d" /* DEFAULTS */].LOCALE,
    maxRecents: constants["n" /* MAX_RECENTS */],
    messages: constants["d" /* DEFAULTS */].MESSAGES,
    mode: constants["p" /* ModeType */].organizer,
};

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/CDOView.tsx + 6 modules
var CDOView = __webpack_require__("S+vr");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/SharedWithYou.tsx + 4 modules
var SharedWithYou = __webpack_require__("EzOH");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/Deleted.tsx + 2 modules
var Deleted = __webpack_require__("D+J2");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/CloudDocuments.tsx + 9 modules
var CloudDocuments = __webpack_require__("kIL/");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/GridView.tsx + 1 modules
var GridView = __webpack_require__("q/Z0");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/GridItem.tsx
var GridItem = __webpack_require__("wxeS");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/ListView.tsx + 1 modules
var ListView = __webpack_require__("JRZE");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/ListItem.tsx
var ListItem = __webpack_require__("SvrS");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/types/IImportAction.ts
var IImportAction = __webpack_require__("uPet");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/metrics.ts
var metrics = __webpack_require__("jaHz");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/Busy.tsx
var Busy = __webpack_require__("cljQ");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/stores/constants.ts
var stores_constants = __webpack_require__("C0qj");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/svgs/EmptyCloudDocs.tsx
var EmptyCloudDocs = __webpack_require__("T2Bq");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/CDOTab.tsx + 6 modules
var CDOTab = __webpack_require__("/7zY");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/actions/index.tsx + 7 modules
var actions = __webpack_require__("xsR+");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/EmptyView.tsx
var EmptyView = __webpack_require__("SZIB");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/utils.ts
var utils = __webpack_require__("+Ots");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/styles/Recent.css
var styles_Recent = __webpack_require__("tWLH");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/components/Recent.tsx
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;
};
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/













const INGEST_SUBCATEGORY = 'Recents';
/**
 * Container for the Recent documents view.
 */
let Recent_Recent = class Recent extends CDOTab["a" /* default */] {
    constructor() {
        super(...arguments);
        this.recentStore = this.props.recentStore;
        this.openAction = Object(actions["b" /* openActionFactory */])({
            canOpenMultiple: this.cdoStore.isFeatureFlagEnabled('enableCloudDocMultiSelectOpen'),
            canOpenItems: this.callbacks.canOpenItems,
            getDisabledTooltipMsgId: this.getDisabledTooltipMsgId,
            onOpenDocuments: this.callbacks.onOpenDocuments,
            startSyncErrorResolutionWorkflow: (element) => { },
        });
        this.fetchMethod = () => { };
        this.getDataProps = () => ({
            collection: null,
            elements: this.recentStore.recentDocs,
            fetchMethod: this.fetchMethod,
            fetchState: this.recentStore.fetchRecentsState,
            firstFetch: this.recentStore.firstFetch,
            viewRootPath: constants["q" /* ROOT_FOLDER_PATH */],
        });
        this.getErrorViewProps = () => {
            const { hasNonCoreSyncCloudNotificationErrorStatus, didSAMInitFail, coreSyncState } = this.docStore;
            const { intl } = this.props;
            const { elements, fetchState } = this.getDataProps();
            const isWebClient = this.cdoStore.isFeatureFlagEnabled('isWebClient');
            const EMPTYVIEW_PROPS_FOR_UNKNOWN_ERROR = isWebClient
                ? EmptyView["d" /* EMPTYVIEW_PROPS_FOR_ERROR_WEB */]
                : EmptyView["c" /* EMPTYVIEW_PROPS_FOR_ERROR */];
            if (hasNonCoreSyncCloudNotificationErrorStatus) {
                if (didSAMInitFail) {
                    return Object(EmptyView["f" /* coreSyncDownEmptyViewProps */])(intl.locale);
                }
                return EMPTYVIEW_PROPS_FOR_UNKNOWN_ERROR;
            }
            if (elements.length === 0 &&
                coreSyncState !== dist["NotificationStatus"].CORESYNC_NOT_REACHABLE &&
                fetchState === stores_constants["n" /* ProcessingState */].Error) {
                return EMPTYVIEW_PROPS_FOR_UNKNOWN_ERROR;
            }
        };
        this.onBeforeItemClicked = (element) => {
            const { onBeforeItemClicked } = this.props;
            return onBeforeItemClicked ? onBeforeItemClicked(element) : true;
        };
    }
    get tabConfig() {
        return {
            tabName: 'Recent',
            ingestSubcategory: INGEST_SUBCATEGORY,
        };
    }
    get allAvailableActions() {
        return [this.openAction].filter(Boolean);
    }
    getNonErrorEmptyViewProps() {
        return {
            image: react_default.a.createElement(EmptyCloudDocs["a" /* default */], null),
            titleId: 'empty.title.recent',
            ingestSubcategory: INGEST_SUBCATEGORY,
            automationSuffix: 'RECENTS',
            productName: this.cdoStore.hostProductData.productName,
        };
    }
    shortenFilePath(path) {
        const separator = utils["a" /* default */].getPlatformPathSeparator();
        if (!path || typeof path !== 'string') {
            return path;
        }
        const pathArray = path.split(separator);
        if (pathArray.length > 1) {
            return pathArray.slice(0, -1).join(separator);
        }
        return path;
    }
    get gridMetadataFormat() {
        return (element) => {
            let title = '';
            let content;
            if (element.type === 'local') {
                title = element.path;
                content = react_default.a.createElement(react_default.a.Fragment, null, this.shortenFilePath(element.path));
            }
            else if (element.type === 'recovered') {
                content = react_default.a.createElement(react_default.a.Fragment, null, element.recoveredDate);
            }
            else {
                content = element.space ? (element.space.spaceName) : (react_default.a.createElement(CDOReactIntlTyped["a" /* FormattedMessage */], { id: "Recents.cloudDocTitle" }));
            }
            return (react_default.a.createElement("span", { className: "pathText", title: title }, content));
        };
    }
    get gridItemProps() {
        return {
            metadataFormat: this.gridMetadataFormat,
            additionalNameContent: this.renderDirtyMarker,
            renderBadge: this.itemBadgeRenderer,
        };
    }
    renderDirtyMarker(element) {
        return react_default.a.createElement("div", { className: "dirtyMarker" }, element.type === 'recovered' ? '*' : '');
    }
    get cdoViewConfig() {
        const { elements, fetchState, firstFetch } = this.getDataProps();
        const { hasNotificationErrorStatus } = this.docStore;
        const isLoading = () => !hasNotificationErrorStatus &&
            (fetchState === stores_constants["n" /* ProcessingState */].Fetching || fetchState === stores_constants["n" /* ProcessingState */].Pending);
        const isBusy = () => isLoading() && elements.length === 0 && firstFetch; // big spinner on first fetch only
        return {
            isBusy,
            isLoading,
            resetSelectionOnPathChange: true,
            dragDisabled: true,
            view: constants["v" /* ViewMode */].Grid,
            // ICDOPassthroughProps
            onBeforeItemClicked: this.onBeforeItemClicked,
        };
    }
    get collectionViews() {
        return [
            react_default.a.createElement(GridView["b" /* default */], Object.assign({}, {}, { isHeaderVisible: false }), element => this.getViewItem(element)
                .grid),
        ];
    }
    renderHeader() {
        const { isOrganizer } = this.cdoStore;
        return (isOrganizer && (react_default.a.createElement("h1", null,
            react_default.a.createElement(CDOReactIntlTyped["a" /* FormattedMessage */], { id: "Recents.title" }))));
    }
};
Recent_Recent = __decorate([
    Object(index_module["d" /* inject */])('metrics', 'cdoStore', 'recentStore', 'callbacks', 'selectionStore'),
    index_module["e" /* observer */]
], Recent_Recent);
/* harmony default export */ var components_Recent = (Object(CDOReactIntlTyped["e" /* injectIntl */])(Recent_Recent));
const RecentForTests = Recent_Recent.wrappedComponent;


// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/BetaTag.tsx
var BetaTag = __webpack_require__("Bg70");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/assets/default-file-icon.png
var default_file_icon = __webpack_require__("2OFw");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/launch-item.ts
var launch_item = __webpack_require__("Kko5");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/stores/CDOStore.ts
var CDOStore = __webpack_require__("+Hsl");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/stores/DocumentStore.ts
var DocumentStore = __webpack_require__("xjsA");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/stores/RecentStore.ts
var RecentStore = __webpack_require__("5sgQ");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/Logger.ts
var Logger = __webpack_require__("lmMR");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/ccd/ccd-api-types.ts
var ccd_api_types = __webpack_require__("E+i1");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/validate-filename.ts
var validate_filename = __webpack_require__("AXVi");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/drag-utils.ts
var drag_utils = __webpack_require__("RQ+a");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/platform.ts
var platform = __webpack_require__("acin");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/urls.ts
var urls = __webpack_require__("RIxR");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/theme/Stylesheets.ts
var Themes;
(function (Themes) {
    Themes["light"] = "light";
    Themes["lightest"] = "lightest";
    Themes["dark"] = "dark";
    Themes["darkest"] = "darkest";
})(Themes || (Themes = {}));
// TODO: remove this file when clients not importing it anymore:
// Jira: https://jira.corp.adobe.com/browse/CCXCD-2794
function initializeFromHostProductData(hostProductData, jsdom, themeOverrides) {
    console.warn(`[CDO] @ccx/ccx-cdo/Stylesheets.ts | @ccx/ccx-cdo/theme/Core.css |
        @ccx/ccx-cdo/theme/CCXHomeScreen/Themes.css will soon be deprecated.`);
}

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/types/IHostProductData.ts
var IHostProductData = __webpack_require__("zOc0");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/types/IIMSData.ts
var IIMSData = __webpack_require__("9oP/");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/types/ICallbacks.ts
var ICallbacks = __webpack_require__("szP4");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/types/CDOOperationResponse.ts
var CDOOperationResponse = __webpack_require__("UwQE");

// EXTERNAL MODULE: ./node_modules/classnames/index.js
var classnames = __webpack_require__("TSYQ");
var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/OverlayTrigger/index.js
var OverlayTrigger = __webpack_require__("uYrR");
var OverlayTrigger_default = /*#__PURE__*/__webpack_require__.n(OverlayTrigger);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Popover/index.js
var Popover = __webpack_require__("pyUw");
var Popover_default = /*#__PURE__*/__webpack_require__.n(Popover);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Tooltip/index.js
var Tooltip = __webpack_require__("DUuf");
var Tooltip_default = /*#__PURE__*/__webpack_require__.n(Tooltip);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/components/svgs/CloudSyncDefault.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
// tslint:disable:max-line-length

const DEFAULT_ICON_WIDTH = 28;
const DEFAULT_ICON_HEIGHT = 22;
const CloudSyncDefaultIcon = ({ width = DEFAULT_ICON_WIDTH, height = DEFAULT_ICON_HEIGHT }) => {
    const style = {
        fill: 'var(--cloudSyncIconBaseColor)',
    };
    return (react_default.a.createElement("svg", { id: "S_CloudSync_Default_22x28_N_dk", xmlns: "http://www.w3.org/2000/svg", width: width, height: height, viewBox: `0 0 ${width} ${height}` },
        react_default.a.createElement("path", { style: style, fillRule: "evenodd", d: "M22.149,8.389c-.039,0-.076.005-.115.006a5.792,5.792,0,0,0,.115-1.149,5.118,5.118,0,0,0-5.41-5.327c-.453.014-.471.022-.471.022A5.838,5.838,0,0,0,11.3,6.291a5.472,5.472,0,0,0-1.493-.208,4.452,4.452,0,0,0-4.554,4.324,3.424,3.424,0,0,0,.1,1.122,3.276,3.276,0,0,0-2.912,3.033,2.79,2.79,0,0,0,2.646,2.951s14.542.019,17.066.019a4.572,4.572,0,1,0,0-9.143Z" })));
};
/* harmony default export */ var CloudSyncDefault = (CloudSyncDefaultIcon);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/components/svgs/CloudSyncDisconnected.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
// tslint:disable:max-line-length

const CloudSyncDisconnected_DEFAULT_ICON_WIDTH = 28;
const CloudSyncDisconnected_DEFAULT_ICON_HEIGHT = 22;
const CloudSyncDisconnectedIcon = ({ width = CloudSyncDisconnected_DEFAULT_ICON_WIDTH, height = CloudSyncDisconnected_DEFAULT_ICON_HEIGHT, }) => {
    const primaryFillStyle = {
        fill: 'var(--cloudSyncIconBaseColor)',
    };
    const secondaryFillStyle = {
        fill: 'var(--cloudSyncIconBadgeForegroundColor)',
    };
    return (react_default.a.createElement("svg", { id: "S_CloudSync_Disconnected_22x28_N_dk", xmlns: "http://www.w3.org/2000/svg", width: width, height: height, viewBox: `0 0 ${width} ${height}` },
        react_default.a.createElement("path", { style: primaryFillStyle, fillRule: "evenodd", d: "M22.143,7.568c-.162-.012-.325-.018-.49-.018a6.407,6.407,0,0,0-5.327,9.964H5.083a2.79,2.79,0,0,1-2.647-2.95A3.276,3.276,0,0,1,5.348,11.53a3.421,3.421,0,0,1-.095-1.122A4.451,4.451,0,0,1,9.808,6.085a5.516,5.516,0,0,1,1.493.207A5.778,5.778,0,0,1,16.716,1.9a5.193,5.193,0,0,1,5.438,5.388C22.154,7.382,22.15,7.476,22.143,7.568Z" }),
        react_default.a.createElement("path", { style: primaryFillStyle, fillRule: "evenodd", d: "M21.631,8.84A5.16,5.16,0,1,1,16.471,14,5.166,5.166,0,0,1,21.631,8.84Z" }),
        react_default.a.createElement("path", { style: secondaryFillStyle, fillRule: "evenodd", d: "M21.625,15.1,20,16.716a.25.25,0,0,1-.354,0l-.707-.707a.25.25,0,0,1,0-.353l1.622-1.622-1.622-1.621a.252.252,0,0,1,0-.354l.707-.707a.252.252,0,0,1,.354,0l1.621,1.622,1.622-1.622a.252.252,0,0,1,.354,0l.707.707a.252.252,0,0,1,0,.354l-1.622,1.621,1.622,1.622a.25.25,0,0,1,0,.353l-.707.707a.25.25,0,0,1-.354,0Z" })));
};
/* harmony default export */ var CloudSyncDisconnected = (CloudSyncDisconnectedIcon);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/components/svgs/CloudSyncError.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
// tslint:disable:max-line-length

const CloudSyncError_DEFAULT_ICON_WIDTH = 28;
const CloudSyncError_DEFAULT_ICON_HEIGHT = 22;
const CloudSyncErrorIcon = ({ width = CloudSyncError_DEFAULT_ICON_WIDTH, height = CloudSyncError_DEFAULT_ICON_HEIGHT }) => {
    const primaryFillStyle = {
        fill: 'var(--cloudSyncIconBaseColor)',
    };
    const secondaryFillStyle = {
        fill: 'var(--cloudSyncErrorIconBadgeBackgroundColor)',
    };
    const tertiaryFillStyle = {
        fill: 'var(--cloudSyncIconBadgeForegroundColor)',
    };
    return (react_default.a.createElement("svg", { id: "S_CloudSync_Error_22x28_N_dk", xmlns: "http://www.w3.org/2000/svg", width: width, height: height, viewBox: `0 0 ${width} ${height}` },
        react_default.a.createElement("g", null,
            react_default.a.createElement("path", { style: primaryFillStyle, fillRule: "evenodd", d: "M22.143,7.567c-.162-.012-.325-.018-.49-.018a6.407,6.407,0,0,0-5.327,9.964H5.083a2.79,2.79,0,0,1-2.647-2.95,3.276,3.276,0,0,1,2.912-3.034,3.421,3.421,0,0,1-.095-1.122A4.451,4.451,0,0,1,9.808,6.084a5.516,5.516,0,0,1,1.493.207A5.778,5.778,0,0,1,16.716,1.9a5.193,5.193,0,0,1,5.438,5.388C22.154,7.381,22.15,7.475,22.143,7.567Z" }),
            react_default.a.createElement("path", { style: secondaryFillStyle, d: "M21.631,8.839A5.16,5.16,0,1,1,16.471,14,5.166,5.166,0,0,1,21.631,8.839Z" }),
            react_default.a.createElement("path", { style: tertiaryFillStyle, d: "M20.816,16.9a.882.882,0,1,1,.882.881A.882.882,0,0,1,20.816,16.9Zm1.637-5.321a30.48,30.48,0,0,1-.261,3.4c0,.03-.02.177-.116.177h-.835c-.064,0-.1-.139-.12-.177-.031-.271-.256-2.327-.256-3.4v-.986c0-.038.107-.1.185-.128a1.632,1.632,0,0,1,.587-.062,2.068,2.068,0,0,1,.619.062c.08.03.2.1.2.128Z" }))));
};
/* harmony default export */ var CloudSyncError = (CloudSyncErrorIcon);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/components/svgs/CloudSyncInProgress.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
// tslint:disable:max-line-length

const CloudSyncInProgress_DEFAULT_ICON_WIDTH = 28;
const CloudSyncInProgress_DEFAULT_ICON_HEIGHT = 22;
const CloudSyncInProgressIcon = ({ width = CloudSyncInProgress_DEFAULT_ICON_WIDTH, height = CloudSyncInProgress_DEFAULT_ICON_HEIGHT }) => {
    const primaryFillStyle = {
        fill: 'var(--cloudSyncIconBaseColor)',
    };
    const secondaryFillStyle = {
        fill: 'var(--cloudSyncInProgressIconArrowsColor)',
    };
    return (react_default.a.createElement("svg", { id: "S_CloudSync_InProgress_22x28_N_dk", xmlns: "http://www.w3.org/2000/svg", width: width, height: height, viewBox: `0 0 ${width} ${height}` },
        react_default.a.createElement("path", { style: primaryFillStyle, fillRule: "evenodd", d: "M22.143,7.567c-.161-.012-.325-.018-.489-.018a6.407,6.407,0,0,0-5.328,9.964H5.083a2.79,2.79,0,0,1-2.647-2.95A3.275,3.275,0,0,1,5.349,11.53a3.43,3.43,0,0,1-.1-1.123A4.45,4.45,0,0,1,9.808,6.084a5.516,5.516,0,0,1,1.493.207A5.778,5.778,0,0,1,16.716,1.9a5.193,5.193,0,0,1,5.438,5.388C22.154,7.382,22.15,7.475,22.143,7.567Z" }),
        react_default.a.createElement("path", { style: secondaryFillStyle, d: "M26.767,12.58a4.935,4.935,0,0,0-8.613-1.716l-.694-.7a.271.271,0,0,0-.2-.082.278.278,0,0,0-.28.279l0,2.783a.278.278,0,0,0,.278.278h2.778a.279.279,0,0,0,.28-.28.268.268,0,0,0-.083-.2l-.963-.973a3.363,3.363,0,0,1,5.886.8.547.547,0,0,0,.514.344h.694A.424.424,0,0,0,26.767,12.58Zm-9.567,2.8A4.936,4.936,0,0,0,25.813,17.1l.694.7a.278.278,0,0,0,.474-.2s0-2.024,0-2.777a.277.277,0,0,0-.277-.278H23.926a.279.279,0,0,0-.278.28.272.272,0,0,0,.081.194l.967.967a3.363,3.363,0,0,1-5.886-.8.547.547,0,0,0-.514-.344h-.7A.422.422,0,0,0,17.2,15.378Z" })));
};
/* harmony default export */ var CloudSyncInProgress = (CloudSyncInProgressIcon);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/components/svgs/CloudSyncPaused.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
// tslint:disable:max-line-length

const CloudSyncPaused_DEFAULT_ICON_WIDTH = 28;
const CloudSyncPaused_DEFAULT_ICON_HEIGHT = 22;
const CloudSyncPausedIcon = ({ width = CloudSyncPaused_DEFAULT_ICON_WIDTH, height = CloudSyncPaused_DEFAULT_ICON_HEIGHT }) => {
    const primaryFillStyle = {
        fill: 'var(--cloudSyncIconBaseColor)',
    };
    const secondaryFillStyle = {
        fill: 'var(--cloudSyncIconBadgeForegroundColor)',
    };
    return (react_default.a.createElement("svg", { id: "S_CloudSync_Paused_22x28_N_dk", xmlns: "http://www.w3.org/2000/svg", width: width, height: height, viewBox: `0 0 ${width} ${height}` },
        react_default.a.createElement("path", { style: primaryFillStyle, fillRule: "evenodd", d: "M22.143,7.568c-.162-.012-.325-.018-.49-.018a6.407,6.407,0,0,0-5.327,9.964H5.083a2.79,2.79,0,0,1-2.647-2.95A3.276,3.276,0,0,1,5.348,11.53a3.421,3.421,0,0,1-.095-1.122A4.451,4.451,0,0,1,9.808,6.085a5.516,5.516,0,0,1,1.493.207A5.778,5.778,0,0,1,16.716,1.9a5.193,5.193,0,0,1,5.438,5.388C22.154,7.382,22.15,7.476,22.143,7.568Z" }),
        react_default.a.createElement("path", { style: primaryFillStyle, fillRule: "evenodd", d: "M21.631,8.84A5.16,5.16,0,1,1,16.471,14,5.166,5.166,0,0,1,21.631,8.84Z" }),
        react_default.a.createElement("rect", { style: secondaryFillStyle, x: "19.46", y: "11.503", width: "1.4", height: "5", rx: "0.5" }),
        react_default.a.createElement("rect", { style: secondaryFillStyle, x: "22.46", y: "11.503", width: "1.4", height: "5", rx: "0.5" })));
};
/* harmony default export */ var CloudSyncPaused = (CloudSyncPausedIcon);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/CloudSyncStatusPopdown.tsx
var CloudSyncStatusPopdown = __webpack_require__("5xHT");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/Tile.tsx + 1 modules
var Tile = __webpack_require__("SDFJ");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/stores/CDCGlobalStore.ts + 14 modules
var CDCGlobalStore = __webpack_require__("Z4Cq");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/styles/CloudSyncStatus.css
var styles_CloudSyncStatus = __webpack_require__("ImBD");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/components/CloudSyncStatus.tsx
var CloudSyncStatus_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;
};
var __metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var _a, _b;
/*************************************************************************
 *   ADOBE CONFIDENTIAL
 *
 *   Copyright 2022 Adobe
 *   All Rights Reserved.
 *
 *   NOTICE:  All information contained herein is, and remains
 *   the property of Adobe and its suppliers, if any. The intellectual
 *   and technical concepts contained herein are proprietary to Adobe
 *   and its suppliers and are protected by all applicable intellectual
 *   property laws, including trade secret and copyright laws.
 *   Dissemination of this information or reproduction of this material
 *   is strictly forbidden unless prior written permission is obtained
 *   from Adobe.
 **************************************************************************/

















let CloudSyncStatus_CloudSyncStatus = class CloudSyncStatus extends react["Component"] {
    constructor(props) {
        super(props);
        this.state = {
            icon: Tile["a" /* CloudIcon */].Cloud,
            tooltip: '',
        };
        this.renderTooltipWrapper = (tooltip, children) => (react["createElement"]("div", { className: "CloudSyncStatus_tooltipWrapper" },
            react["createElement"](OverlayTrigger_default.a, { trigger: "hover", placement: "bottom", delayShow: constants["e" /* DEFAULT_TOOLTIP_DELAY */] },
                children,
                react["createElement"]("div", { className: "CloudSyncStatus_tooltip" },
                    react["createElement"](Tooltip_default.a, { open: true, placement: "bottom" }, tooltip)))));
        // Init the global store before depending on it
        const { hostProductData, imsData } = this.props;
        Object(CDCGlobalStore["a" /* getCDCGlobalStore */])({ hostProductData, imsData });
    }
    componentDidMount() {
        const { tiles, type } = this.props;
        const { assetId } = this.props;
        this.globalStore.cloudStore.subscribe('updateCloudIcon', this.cloudStoreSubscriptionKey, async (_assetId, icon, tooltip) => {
            if (_assetId !== assetId) {
                return;
            }
            this.setState({
                icon,
                tooltip,
            });
        });
        if (type === CloudSyncStatusPopdown["a" /* CloudSyncType */].SINGLE) {
            // assume SINGLE variant won't be mounted unless the document is being opened
            this.globalStore.cloudStore.onDocumentOpened({ detail: { assetId } });
        }
        this.globalStore.cloudStore.setExternalTiles(assetId, tiles);
    }
    componentWillUnmount() {
        const { type } = this.props;
        const { assetId } = this.props;
        if (type === CloudSyncStatusPopdown["a" /* CloudSyncType */].SINGLE) {
            // assume SINGLE variant will be unmounted when the document is being closed
            this.globalStore.cloudStore.onDocumentClosed({ detail: { assetId } });
        }
        this.globalStore.cloudStore.unsubscribe('updateCloudIcon', this.cloudStoreSubscriptionKey);
    }
    get cloudStoreSubscriptionKey() {
        const { assetId } = this.props;
        return `CloudSyncStatus_Icon_${assetId !== null && assetId !== void 0 ? assetId : 'GLOBAL'}`;
    }
    get globalStore() {
        const { hostProductData, imsData } = this.props;
        return Object(CDCGlobalStore["a" /* getCDCGlobalStore */])({ hostProductData, imsData });
    }
    get cloudIcon() {
        const { icon } = this.state;
        switch (icon) {
            case Tile["a" /* CloudIcon */].Disconnected:
                return react["createElement"](CloudSyncDisconnected, null);
            case Tile["a" /* CloudIcon */].Error:
                return react["createElement"](CloudSyncError, null);
            case Tile["a" /* CloudIcon */].Progress:
                return react["createElement"](CloudSyncInProgress, null);
            case Tile["a" /* CloudIcon */].Paused:
                return react["createElement"](CloudSyncPaused, null);
            // TODO:
            // case CloudIcon.SlowConnection:
            //     return </>;
            case Tile["a" /* CloudIcon */].Cloud:
            default:
                return react["createElement"](CloudSyncDefault, null);
        }
    }
    render() {
        const { tooltip } = this.state;
        const { theme } = this.props;
        return (react["createElement"]("div", { className: "CloudSyncStatus" }, this.renderTooltipWrapper(tooltip, react["createElement"]("div", { className: "CloudSyncStatus_wrapper" },
            react["createElement"](OverlayTrigger_default.a, { trigger: "click", placement: "bottom", delayShow: constants["e" /* DEFAULT_TOOLTIP_DELAY */] },
                react["createElement"]("div", { className: "CloudSyncStatus_icon" }, this.cloudIcon),
                react["createElement"](Popover_default.a, { className: classnames_default()('CloudSyncStatus_popdown_wrapper', theme && `theme-${theme}`) },
                    react["createElement"](CloudSyncStatusPopdown["b" /* default */], Object.assign({}, this.props))))))));
    }
};
CloudSyncStatus_CloudSyncStatus.defaultProps = {
    tiles: [],
    type: CloudSyncStatusPopdown["a" /* CloudSyncType */].GLOBAL,
};
CloudSyncStatus_decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], CloudSyncStatus_CloudSyncStatus.prototype, "globalStore", null);
CloudSyncStatus_decorate([
    mobx_module["l" /* computed */],
    __metadata("design:type", typeof (_a = typeof react !== "undefined" && react["ReactElement"]) === "function" ? _a : Object),
    __metadata("design:paramtypes", [])
], CloudSyncStatus_CloudSyncStatus.prototype, "cloudIcon", null);
CloudSyncStatus_CloudSyncStatus = CloudSyncStatus_decorate([
    index_module["e" /* observer */],
    __metadata("design:paramtypes", [typeof (_b = typeof ICloudSyncStatusProps !== "undefined" && ICloudSyncStatusProps) === "function" ? _b : Object])
], CloudSyncStatus_CloudSyncStatus);
/* harmony default export */ var components_CloudSyncStatus = (CloudSyncStatus_CloudSyncStatus);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/types/ICommonCollectionViewProps.ts
var ICommonCollectionViewProps = __webpack_require__("2NdP");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/CDOHeader.tsx + 3 modules
var CDOHeader = __webpack_require__("GXLr");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/stores/AssetSyncStateStore.ts
var AssetSyncStateStore = __webpack_require__("bFaP");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/storage.ts
var storage = __webpack_require__("OB0k");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/types/IAssetModel.ts
var IAssetModel = __webpack_require__("avlf");

// EXTERNAL MODULE: ./node_modules/mobx-state-tree/dist/mobx-state-tree.module.js
var mobx_state_tree_module = __webpack_require__("99Ma");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/normalize-path.ts
var normalize_path = __webpack_require__("7L8R");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/stores/CollaboratorModel.ts
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2019 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/

const Collaborator = mobx_state_tree_module["h" /* types */]
    .model({
    email: mobx_state_tree_module["h" /* types */].string,
    id: mobx_state_tree_module["h" /* types */].string,
    isOwner: mobx_state_tree_module["h" /* types */].boolean,
    name: mobx_state_tree_module["h" /* types */].string,
})
    .views(self => ({
    get displayName() {
        return self.name || self.email;
    },
}));
/* harmony default export */ var CollaboratorModel = (Collaborator);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/stores/DocumentModel.ts
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2019 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/


 // This import style was easier to mock than ''uuid/v1'





const Document = mobx_state_tree_module["h" /* types */]
    .model('Document', {
    id: mobx_state_tree_module["h" /* types */].identifier,
    cloudUri: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].string, ''),
    localUri: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].string, ''),
    /**
     * Full file name, including path, starting at `cloud-content/` or `cloud-content-archive/`
     * Only to be used in API calls where the full path is needed.
     */
    path: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].string),
    /**
     * File/folder name to be shown in UI components, sans extension. Derived from displayName.
     */
    title: mobx_state_tree_module["h" /* types */].string,
    /**
     * File name with extension. For "archive in place", this will have the `^` and random string appended. Only
     * useful in API calls where the actual file name needs to be passed.
     */
    repoName: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].string, ''),
    /**
     * For "archive in place", archived items will have a `^` and random string appended to the file name.
     */
    displayName: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].string, ''),
    /**
     * For files that have them, this will be the extension, without the dot.
     */
    fileExtension: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].string, ''),
    /**
     * @deprecated
     */
    accessDate: mobx_state_tree_module["h" /* types */].Date,
    modifiedDate: mobx_state_tree_module["h" /* types */].Date,
    repoModifiedDate: mobx_state_tree_module["h" /* types */].Date,
    createDate: mobx_state_tree_module["h" /* types */].Date,
    recoveredDate: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].string, ''),
    shareDate: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].Date),
    docState: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].enumeration([
        dist["DocumentState"].active,
        dist["DocumentState"].archived,
        dist["DocumentState"].deleted,
    ]), dist["DocumentState"].active),
    isCached: false,
    hasPendingOperation: false,
    isConflicted: false,
    isUserPinned: false,
    isSyncing: false,
    isSyncSuspended: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].boolean),
    /**
     * To be used once we implement more detailed error messages
     * for SyncSuspensionReasons.
     */
    syncSuspensionReason: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].number),
    thumbnail: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].string),
    size: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].number),
    renditionTemplate: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].string, ''),
    // In UXP environment, this is a C++ image object that cannot be serialized
    rendition: mobx_state_tree_module["h" /* types */].custom({
        name: 'UXPImageProvider',
        fromSnapshot(value) {
            return value;
        },
        toSnapshot(value) {
            return value;
        },
        isTargetType(value) {
            return true;
        },
        getValidationMessage(snapshot) {
            return '';
        },
    }),
    /**
     * Mimetype of the asset
     */
    type: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].string, ''),
    collaborators: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].array(CollaboratorModel), []),
    stableUri: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].string, ''),
    assetRef: mobx_state_tree_module["h" /* types */].maybe(mobx_state_tree_module["h" /* types */].string),
    /**
     * For CDO client apps to attach additional data for their own purposes that aren't served in the CDO code.
     * E.g., `canOpen` for Ps and (someday) `recoverDate` for Xd.
     */
    externalData: mobx_state_tree_module["h" /* types */].frozen({}),
    isRenameDisabled: mobx_state_tree_module["h" /* types */].optional(mobx_state_tree_module["h" /* types */].boolean, false),
})
    .preProcessSnapshot(snapshot => {
    let { size } = snapshot;
    // For backward compatibility with Homescreen recents, convert string size to number.
    if (typeof size === 'string') {
        size = parseInt(size, 10);
    }
    return {
        ...snapshot,
        size,
    };
})
    .volatile(self => ({
    // Properties that should not serialize go here
    // ----------------------------------------------
    lastCollaboratorsFetch: undefined,
    hasFetchedRendition: false,
    lastRenditionFetchFailed: false,
    _cloudDocumentsClient: undefined,
}))
    .views((self) => ({
    get normalizedTitle() {
        // used by HS for searching files
        return self.title.normalize();
    },
    get docUriForHost() {
        return (self.assetRef ||
            self.stableUri ||
            self.cloudUri ||
            self.path ||
            self.localUri ||
            self.id);
    },
    get docUriForACP() {
        return self.cloudUri || self.localUri;
    },
    get parentPath() {
        // if absolute url provided, make relative
        const splitUrl = Object(normalize_path["a" /* default */])(self.path).split('/');
        const rootIndex = splitUrl.findIndex(string => string === constants["q" /* ROOT_FOLDER_PATH */]);
        const relPath = splitUrl.slice(rootIndex);
        // remove asset name from path
        return relPath.slice(0, -1).join('/');
    },
    get isShareIconEnabled() {
        return stores_constants["j" /* ENABLE_COLLABORATORS_ICON */];
    },
    get needsSyncErrorResolution() {
        return (self.isSyncSuspended &&
            self.syncSuspensionReason === dist["SyncSuspensionReason"].localContentCorrupted);
    },
    get urn() {
        const uri = self.cloudUri;
        return uri ? uri.slice(uri.indexOf('urn'), uri.length) : '';
    },
    get localUrn() {
        const uri = self.localUri;
        return uri ? uri.slice(uri.indexOf('urn'), uri.length) : '';
    },
    get isFolder() {
        return constants["j" /* FOLDER_MIMETYPES */].includes(self.type);
    },
    get isFile() {
        return !constants["j" /* FOLDER_MIMETYPES */].includes(self.type);
    },
    isMatch(docElem) {
        let isMatch = false;
        if (self.cloudUri && docElem.cloudUri) {
            isMatch = self.cloudUri === docElem.cloudUri;
        }
        else if (self.localUri && docElem.localUri) {
            isMatch = self.localUri === docElem.localUri;
        }
        else if (self.path && docElem.path) {
            // See note in Collection.mergeElements for why matching on path is important
            isMatch = self.path === docElem.path;
        }
        return isMatch;
    },
    get cloudDocumentsClient() {
        try {
            if (self._cloudDocumentsClient) {
                return self._cloudDocumentsClient;
            }
            let next = self;
            do {
                next = Object(mobx_state_tree_module["e" /* getParent */])(next);
            } while (next && !next.cloudDocumentsClient);
            return next.cloudDocumentsClient;
        }
        catch (_a) {
            console.warn('CDO Document must have a parent with cloudDocumentsClient, or an instance of ' +
                'CloudDocumentsClient needs to be passed with initCloudDocumentsClient after construction');
            return undefined;
        }
    },
    get onAnalyticsEvent() {
        const fallbackOnAnalyticsEvent = (data) => { };
        try {
            let next = self;
            do {
                next = Object(mobx_state_tree_module["e" /* getParent */])(next);
            } while (next && !next.onAnalyticsEvent);
            if (next.onAnalyticsEvent) {
                return next.onAnalyticsEvent;
            }
            return fallbackOnAnalyticsEvent;
        }
        catch (_a) {
            return fallbackOnAnalyticsEvent;
        }
    },
    get isOnline() {
        try {
            let next = self;
            do {
                next = Object(mobx_state_tree_module["e" /* getParent */])(next);
            } while (next && next.isOnline === undefined);
            if (next.isOnline !== undefined) {
                return next.isOnline;
            }
            return false;
        }
        catch (_a) {
            return false;
        }
    },
}))
    .actions((self) => ({
    /**
     * Updates/replaces externalData.
     */
    setExternalData(newData, shouldReplace = false) {
        if (shouldReplace) {
            self.externalData = newData;
        }
        else {
            self.externalData = {
                ...self.externalData,
                ...newData,
            };
        }
    },
}))
    .actions((self) => {
    function initCloudDocumentsClient(cloudDocumentsClient) {
        self._cloudDocumentsClient = cloudDocumentsClient;
    }
    // Only use this for CDOHeader.onFolderActionClick. The logic
    // for deriving `title`, `fileExtension`, and other fields is
    // handled in acp-fetch. Rather than duplicate that logic here,
    // `setRepoName` is only updating `path`.
    function setRepoName(name) {
        self.repoName = name;
        self.path = `${self.parentPath}/${name}`;
    }
    // Only for use in renameOp, as a fix for CCXCD-2048. The logic
    // for deriving `title` lives in acp-fetch, so circumventing
    // that logic should be reserved for very limited use-cases. This
    // problem should be resolved when we move to the shared model.
    function setTitle(title) {
        self.title = title;
    }
    function setRendition(renditionUrl) {
        self.rendition = renditionUrl;
    }
    function setLastFetchedCollaborators() {
        self.lastCollaboratorsFetch = new Date();
    }
    function setHasFetchedRendition(isFetched) {
        self.hasFetchedRendition = isFetched;
    }
    function setHasPendingOperation(isPending) {
        self.hasPendingOperation = isPending;
    }
    function setLastRenditionFetchFailed(isFailed) {
        self.lastRenditionFetchFailed = isFailed;
    }
    const EXCLUDED_PROPERTIES = new Set([
        'id',
        'rendition',
        'collaborators',
    ]);
    /**
     * Copy all the field values that are different from some other model to this model.
     * @param otherModel {IDocumentType} the other model to copy from
     */
    function updateFrom(otherModel) {
        if (otherModel.id !== self.id) {
            console.error(
            // eslint-disable-next-line max-len
            'DocumentModel.updateFrom cannot change id of a model from "%s" to "%s". Instead, replace it in the collection', self.id, otherModel.id);
            return;
        }
        const mySnapshot = Object(mobx_state_tree_module["f" /* getSnapshot */])(self);
        const otherSnapshot = Object(mobx_state_tree_module["f" /* getSnapshot */])(otherModel);
        // MST applySnapshot treats dates as always modified, which causes a lot of unnecessary change notifications.
        // It also applies changes to all props, but some props need to be managed by other processes and shouldn't be
        // copied. All MST models can be serialized as a plain JSON object, so as long as the props are primitive types,
        // change detection can be made with simple equality check.
        Object.keys(mySnapshot).forEach(prop => {
            if (!EXCLUDED_PROPERTIES.has(prop) && mySnapshot[prop] !== otherSnapshot[prop]) {
                self[prop] = otherModel[prop];
            }
        });
    }
    return {
        initCloudDocumentsClient,
        setRepoName,
        setTitle,
        setHasFetchedRendition,
        setHasPendingOperation,
        setLastRenditionFetchFailed,
        setLastFetchedCollaborators,
        setRendition,
        updateFrom,
    };
})
    .actions(self => {
    async function getRendition() {
        const listAction = 'get_thumbnail';
        const correlationId = uuid_default.a.v1();
        const commonMetrics = {
            element: self,
            correlationId,
            dtsStart: new Date(Date.now()),
        };
        try {
            if (self.isFolder) {
                self.setHasFetchedRendition(true);
                return;
            }
            if (!self.cloudDocumentsClient) {
                return;
            }
            // Items in Recents sometimes do not have 'https://' for cloud renditions
            const template = self.renditionTemplate.indexOf('https://') === -1
                ? `https://${self.renditionTemplate}`
                : self.renditionTemplate;
            const correlationData = metrics["i" /* default */].getCorrelationData(correlationId, self);
            const renditionUrl = await self.cloudDocumentsClient.getRendition(template, self.type, self.modifiedDate, undefined, correlationData);
            // CCXCD-1386: on Windows, ACPL returns the rendition path with backslashes instead of forward slashes,
            // and acp-fetch turns it into an encoded `file://` url. The encoding makes the backslash an invalid path
            // delimiter. However, decoding the url causes the `%5E` to be converted to `^`, which isn't a valid url
            // character. The backslashes should probably be translated to forward slashes in acp-fetch, but for now,
            // translate `%5C` to `/` here.
            self.setRendition(renditionUrl.replace(/%5C/g, '/'));
            self.setHasFetchedRendition(true);
            self.setLastRenditionFetchFailed(false);
            const eventData = metrics["i" /* default */].getOperationalMetricData(listAction, {
                ...commonMetrics,
                ...{ eventType: metrics["c" /* EventType */].Success },
            });
            self.onAnalyticsEvent(eventData, true);
        }
        catch (error) {
            const eventData = metrics["i" /* default */].getOperationalMetricData(listAction, {
                ...commonMetrics,
                ...{
                    eventType: metrics["c" /* EventType */].Error,
                    errorCode: error.status,
                    errorDesc: error.statusText,
                },
            });
            self.onAnalyticsEvent(eventData, true);
            self.setHasFetchedRendition(true);
            self.setLastRenditionFetchFailed(true);
        }
    }
    /**
     * A promise that returns the base 64 encoded image for the given path..
     * @param getPreviewRendition A function passed back to us used to get local file renditions.
     * @param pathToLocalFile The path to the local file you want a rendition for.
     */
    async function getLocalRendition(getPreviewRendition) {
        try {
            const rendition = await getPreviewRendition(self.path, self.type);
            self.setRendition(rendition);
        }
        catch (error) {
            console.error('Failed to get local rendition', error);
        }
    }
    return {
        getLocalRendition,
        getRendition,
    };
});
/* harmony default export */ var DocumentModel = (Document);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/ccd/CCDContentView.tsx
var CCDContentView = __webpack_require__("pNEv");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/CDOApi.ts
var CDOApi = __webpack_require__("noa1");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/stores/AssetModel/SAMAssetModel.ts + 2 modules
var SAMAssetModel = __webpack_require__("4Cys");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/stores/AssetModel/ACPFetchAssetModel.ts
var ACPFetchAssetModel = __webpack_require__("lnG/");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/stores/AssetModel/LocalAssetModel.ts
var LocalAssetModel = __webpack_require__("UApw");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/FileCapabilities.ts
var FileCapabilities = __webpack_require__("Vj/U");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/types/ISelectionBehavior.ts
var ISelectionBehavior = __webpack_require__("KNr8");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/stores/SelectionStore.ts
var SelectionStore = __webpack_require__("7XYX");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/valid-move.ts + 1 modules
var valid_move = __webpack_require__("b/AU");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/action.ts
var action = __webpack_require__("zPGX");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/types/IMoveDialogResult.ts
var IMoveDialogResult = __webpack_require__("tyCa");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/stores/Collection/ICollectionItem.ts
var ICollectionItem = __webpack_require__("crLv");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/stores/AssetModel/BaseAssetModel.ts
var BaseAssetModel = __webpack_require__("TUmM");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/types/ICollection.ts
var ICollection = __webpack_require__("2pmi");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/types/IAssetFields.ts
var IAssetFields = __webpack_require__("k0Fr");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/containers/SetupCloudSyncPanel.tsx
var SetupCloudSyncPanel = __webpack_require__("uGpw");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/derive-parent-path.ts
var derive_parent_path = __webpack_require__("gFix");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/ViewItem.tsx
var ViewItem = __webpack_require__("0gRt");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/CDOLink.tsx
var CDOLink = __webpack_require__("b3kR");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/Rename.tsx
var Rename = __webpack_require__("r0HJ");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/CloudStatusIcon.tsx + 4 modules
var CloudStatusIcon = __webpack_require__("sqWI");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/types/CollectionViewMetrics.ts
var CollectionViewMetrics = __webpack_require__("b/7Q");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/index.tsx















// @ts-ignore -- TypeScript doesn't like this for unit tests
















// TODO: remove this Stylesheets import when we can:
// ticket: https://jira.corp.adobe.com/browse/CCXCD-2794








































/**
 * @internal
 * The following exports are intended for cloud-shared-components internal usage only
 */



/***/ }),

/***/ "t+Du":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

/*************************************************************************
* ADOBE CONFIDENTIAL
* ___________________
*
* Copyright 2019 Adobe
* All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains
* the property of Adobe and its suppliers, if any. The intellectual
* and technical concepts contained herein are proprietary to Adobe
* and its suppliers and are protected by all applicable intellectual
* property laws, including trade secret and copyright laws.
* Dissemination of this information or reproduction of this material
* is strictly forbidden unless prior written permission is obtained
* from Adobe.
**************************************************************************/

module.exports = __webpack_require__("H3P5");

/***/ }),

/***/ "t0SB":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _ChevronRightSmall = _interopRequireDefault(__webpack_require__("7Tov"));

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _icon = __webpack_require__("vo16");

var _focusRing = __webpack_require__("PBY+");

var _intl = __webpack_require__("Lpon");

var _propTypes = _interopRequireDefault(__webpack_require__("17x9"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

__webpack_require__("d9MD");

const _excluded = ["items", "icon", "className", "variant", "ariaLevel", "id"];

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

function ownKeys(object, enumerableOnly) {
  var keys = Object.keys(object);

  if (Object.getOwnPropertySymbols) {
    var symbols = Object.getOwnPropertySymbols(object);

    if (enumerableOnly) {
      symbols = symbols.filter(function (sym) {
        return Object.getOwnPropertyDescriptor(object, sym).enumerable;
      });
    }

    keys.push.apply(keys, symbols);
  }

  return keys;
}

function _objectSpread(target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i] != null ? arguments[i] : {};

    if (i % 2) {
      ownKeys(Object(source), true).forEach(function (key) {
        _defineProperty(target, key, source[key]);
      });
    } else if (Object.getOwnPropertyDescriptors) {
      Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
    } else {
      ownKeys(Object(source)).forEach(function (key) {
        Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
      });
    }
  }

  return target;
}

function _defineProperty(obj, key, value) {
  if (key in obj) {
    Object.defineProperty(obj, key, {
      value: value,
      enumerable: true,
      configurable: true,
      writable: true
    });
  } else {
    obj[key] = value;
  }

  return obj;
}

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

const intlMessages = {
  "cs-CZ": _interopRequireDefault(__webpack_require__("LslX")).default,
  "da-DK": _interopRequireDefault(__webpack_require__("W087")).default,
  "de-DE": _interopRequireDefault(__webpack_require__("v/9w")).default,
  "en-US": _interopRequireDefault(__webpack_require__("Jh3V")).default,
  "es-ES": _interopRequireDefault(__webpack_require__("9dg4")).default,
  "fi-FI": _interopRequireDefault(__webpack_require__("7GSu")).default,
  "fr-FR": _interopRequireDefault(__webpack_require__("pngP")).default,
  "hu-HU": _interopRequireDefault(__webpack_require__("Qiau")).default,
  "it-IT": _interopRequireDefault(__webpack_require__("BOzh")).default,
  "ja-JP": _interopRequireDefault(__webpack_require__("fLe2")).default,
  "ko-KR": _interopRequireDefault(__webpack_require__("0l7b")).default,
  "nb-NO": _interopRequireDefault(__webpack_require__("UryZ")).default,
  "nl-NL": _interopRequireDefault(__webpack_require__("rLYe")).default,
  "pl-PL": _interopRequireDefault(__webpack_require__("3y+x")).default,
  "pt-BR": _interopRequireDefault(__webpack_require__("6X9h")).default,
  "ru-RU": _interopRequireDefault(__webpack_require__("0sQS")).default,
  "sv-SE": _interopRequireDefault(__webpack_require__("XxdM")).default,
  "tr-TR": _interopRequireDefault(__webpack_require__("53oI")).default,
  "uk-UA": _interopRequireDefault(__webpack_require__("z7QN")).default,
  "zh-CN": _interopRequireDefault(__webpack_require__("nNaB")).default,
  "zh-TW": _interopRequireDefault(__webpack_require__("IftT")).default
};

if (false) {} else if (false) {} else {
  __webpack_require__("wfZF");
}

if (true) __webpack_require__("fBU0");
if (true) __webpack_require__("An5w");
if (true) __webpack_require__("BgX8");
if (true) __webpack_require__("GZTA");
const formatMessage = (0, _intl.messageFormatter)(intlMessages);

class Breadcrumbs extends _react.default.Component {
  handleFocus(e) {
    e.target.classList.add(_focusRing.FOCUS_RING_CLASSNAME);
  }

  handleBlur(e) {
    e.target.classList.remove(_focusRing.FOCUS_RING_CLASSNAME);
  }

  renderLink(item, i) {
    let {
      items,
      renderLink
    } = this.props;
    let isHref = !!item.href;
    let isCurrent = this.isCurrent(i);
    let hasItems = items.length > 1;
    let linkProps = {
      className: 'spectrum-Breadcrumbs-itemLink',
      role: !isHref ? 'link' : null,
      href: !isCurrent ? item.href : null,
      target: !isCurrent && isHref ? '_self' : null,
      onClick: hasItems && !isCurrent ? this.props.onBreadcrumbClick.bind(null, item, items.length - i - 1) : undefined,
      onFocus: hasItems && !isCurrent ? this.handleFocus.bind(this) : null,
      onBlur: hasItems && !isCurrent ? this.handleBlur.bind(this) : null,
      'aria-current': isCurrent ? 'page' : null,
      tabIndex: !isHref && !isCurrent ? 0 : null
    };

    if (renderLink) {
      return renderLink(_objectSpread(_objectSpread({}, linkProps), {}, {
        label: item.label
      }));
    }

    let Element = !isHref ? 'div' : 'a';
    return /*#__PURE__*/_react.default.createElement(Element, linkProps, item.label);
  }

  isCurrent(i) {
    return i === this.props.items.length - 1;
  }

  render() {
    const _this$props = this.props,
          {
      items,
      icon,
      className,
      variant,
      ariaLevel,
      id
    } = _this$props,
          otherProps = _objectWithoutProperties(_this$props, _excluded);

    const isTitleVariant = variant === Breadcrumbs.variant.TITLE;

    if (!otherProps['aria-label']) {
      otherProps['aria-label'] = formatMessage('Breadcrumbs');
    }

    return /*#__PURE__*/_react.default.createElement("nav", {
      id: id,
      "aria-label": otherProps['aria-label'],
      "aria-labelledby": otherProps['aria-labelledby']
    }, (0, _icon.cloneIcon)(icon, {
      size: 'S',
      className: 'react-spectrum-Breadcrumbs-icon'
    }), /*#__PURE__*/_react.default.createElement("ul", {
      //  begin fix for UXP 3.0
      style: {
        display: 'flex',
        flexDirection: 'row',
        flexWrap: 'wrap'
      } //  end fix for UXP 3.0
      ,
      className: (0, _classnames.default)('spectrum-Breadcrumbs', {
        'spectrum-Breadcrumbs--title': isTitleVariant
      }, className)
    }, items.map((item, i) => /*#__PURE__*/_react.default.createElement("li", {
      key: `spectrum-Breadcrumb-${i}`,
      className: "spectrum-Breadcrumbs-item"
    }, this.isCurrent(i) && isTitleVariant ? /*#__PURE__*/_react.default.createElement("h1", {
      className: "spectrum-Heading--pageTitle",
      "aria-level": ariaLevel
    }, this.renderLink(item, i)) : this.renderLink(item, i), !this.isCurrent(i) && /*#__PURE__*/_react.default.createElement(_ChevronRightSmall.default, {
      size: null,
      className: "spectrum-Breadcrumbs-itemSeparator"
    })))));
  }

}

exports.default = Breadcrumbs;
Breadcrumbs.variant = {
  NONE: 'none',
  TITLE: 'title'
};
Breadcrumbs.propTypes = {
  /**
   * Array of item objects included in list of breadcrumbs.
   * Each item must have a label string property, which will serve as the rendered text for the breadcrumb.
   * Each item may also have an href string property, which should be a valid URL to open the breadcrumb location.
   */
  items: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.shape({
    href: _propTypes.default.string,
    label: _propTypes.default.string.isRequired
  }), _propTypes.default.shape({
    label: _propTypes.default.string.isRequired
  })])),

  /**
   * For best results, use a React Spectrum Icon
   */
  icon: _propTypes.default.node,

  /**
   * Will set the last breadcrumb on a new line and give it a <h> tag
   */
  variant: _propTypes.default.oneOf([Breadcrumbs.variant.NONE, Breadcrumbs.variant.TITLE]),

  /**
   * Will not change the appearance
   */
  ariaLevel: _propTypes.default.number,

  /**
   * Called when a breadcrumb is clicked with an object containing the label of the clicked breadcrumb
   * @callback Breadcrumbs~onBreadcrumbClick
   * @param {Object} event - Event object
   * @param {string} event.label - label of breadcrumb clicked
   */
  onBreadcrumbClick: _propTypes.default.func,

  /**
   * A function that returns a href wrapper component.
   * Useful in providing custom href component(eg. Link from react-router-dom).
   *
   * ```js
   *  <Breadcrumbs renderLink={(props) => <Link {...props} to="/">Foo</Link>} items={items} />
   * ```
   */
  renderLink: _propTypes.default.func
};
Breadcrumbs.defaultProps = {
  items: [],
  icon: null,
  variant: Breadcrumbs.variant.NONE,
  ariaLevel: null,
  onBreadcrumbClick: function () {}
};

/***/ }),

/***/ "t2Dn":
/***/ (function(module, exports, __webpack_require__) {

var baseAssignValue = __webpack_require__("hypo"),
    eq = __webpack_require__("ljhN");
/**
 * This function is like `assignValue` except that it doesn't assign
 * `undefined` values.
 *
 * @private
 * @param {Object} object The object to modify.
 * @param {string} key The key of the property to assign.
 * @param {*} value The value to assign.
 */


function assignMergeValue(object, key, value) {
  if (value !== undefined && !eq(object[key], value) || value === undefined && !(key in object)) {
    baseAssignValue(object, key, value);
  }
}

module.exports = assignMergeValue;

/***/ }),

/***/ "t9FE":
/***/ (function(module, exports, __webpack_require__) {

/* WEBPACK VAR INJECTION */(function(global) {/**
 * Module exports.
 */
module.exports = deprecate;
/**
 * Mark that a method should not be used.
 * Returns a modified function which warns once by default.
 *
 * If `localStorage.noDeprecation = true` is set, then it is a no-op.
 *
 * If `localStorage.throwDeprecation = true` is set, then deprecated functions
 * will throw an Error when invoked.
 *
 * If `localStorage.traceDeprecation = true` is set, then deprecated functions
 * will invoke `console.trace()` instead of `console.error()`.
 *
 * @param {Function} fn - the function to deprecate
 * @param {String} msg - the string to print to the console when `fn` is invoked
 * @returns {Function} a new "deprecated" version of `fn`
 * @api public
 */

function deprecate(fn, msg) {
  if (config('noDeprecation')) {
    return fn;
  }

  var warned = false;

  function deprecated() {
    if (!warned) {
      if (config('throwDeprecation')) {
        throw new Error(msg);
      } else if (config('traceDeprecation')) {
        console.trace(msg);
      } else {
        console.warn(msg);
      }

      warned = true;
    }

    return fn.apply(this, arguments);
  }

  return deprecated;
}
/**
 * Checks `localStorage` for boolean values for the given `name`.
 *
 * @param {String} name
 * @returns {Boolean}
 * @api private
 */


function config(name) {
  // accessing global.localStorage can trigger a DOMException in sandboxed iframes
  try {
    if (!global.localStorage) return false;
  } catch (_) {
    return false;
  }

  var val = global.localStorage[name];
  if (null == val) return false;
  return String(val).toLowerCase() === 'true';
}
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("yLpj")))

/***/ }),

/***/ "t9HZ":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("path", {
  d: "M37 20H26V9a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v11H9a1 1 0 0 0-1 1v4a1 1 0 0 0 1 1h11v11a1 1 0 0 0 1 1h4a1 1 0 0 0 1-1V26h11a1 1 0 0 0 1-1v-4a1 1 0 0 0-1-1z"
}));

/***/ }),

/***/ "tA+R":
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/*!
 * content-type
 * Copyright(c) 2015 Douglas Christopher Wilson
 * MIT Licensed
 */

/**
 * RegExp to match *( ";" parameter ) in RFC 7231 sec 3.1.1.1
 *
 * parameter     = token "=" ( token / quoted-string )
 * token         = 1*tchar
 * tchar         = "!" / "#" / "$" / "%" / "&" / "'" / "*"
 *               / "+" / "-" / "." / "^" / "_" / "`" / "|" / "~"
 *               / DIGIT / ALPHA
 *               ; any VCHAR, except delimiters
 * quoted-string = DQUOTE *( qdtext / quoted-pair ) DQUOTE
 * qdtext        = HTAB / SP / %x21 / %x23-5B / %x5D-7E / obs-text
 * obs-text      = %x80-FF
 * quoted-pair   = "\" ( HTAB / SP / VCHAR / obs-text )
 */

var PARAM_REGEXP = /; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *("(?:[\u000b\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u000b\u0020-\u00ff])*"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g;
var TEXT_REGEXP = /^[\u000b\u0020-\u007e\u0080-\u00ff]+$/;
var TOKEN_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;
/**
 * RegExp to match quoted-pair in RFC 7230 sec 3.2.6
 *
 * quoted-pair = "\" ( HTAB / SP / VCHAR / obs-text )
 * obs-text    = %x80-FF
 */

var QESC_REGEXP = /\\([\u000b\u0020-\u00ff])/g;
/**
 * RegExp to match chars that must be quoted-pair in RFC 7230 sec 3.2.6
 */

var QUOTE_REGEXP = /([\\"])/g;
/**
 * RegExp to match type in RFC 7231 sec 3.1.1.1
 *
 * media-type = type "/" subtype
 * type       = token
 * subtype    = token
 */

var TYPE_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;
/**
 * Module exports.
 * @public
 */

exports.format = format;
exports.parse = parse;
/**
 * Format object to media type.
 *
 * @param {object} obj
 * @return {string}
 * @public
 */

function format(obj) {
  if (!obj || typeof obj !== 'object') {
    throw new TypeError('argument obj is required');
  }

  var parameters = obj.parameters;
  var type = obj.type;

  if (!type || !TYPE_REGEXP.test(type)) {
    throw new TypeError('invalid type');
  }

  var string = type; // append parameters

  if (parameters && typeof parameters === 'object') {
    var param;
    var params = Object.keys(parameters).sort();

    for (var i = 0; i < params.length; i++) {
      param = params[i];

      if (!TOKEN_REGEXP.test(param)) {
        throw new TypeError('invalid parameter name');
      }

      string += '; ' + param + '=' + qstring(parameters[param]);
    }
  }

  return string;
}
/**
 * Parse media type to object.
 *
 * @param {string|object} string
 * @return {Object}
 * @public
 */


function parse(string) {
  if (!string) {
    throw new TypeError('argument string is required');
  } // support req/res-like objects as argument


  var header = typeof string === 'object' ? getcontenttype(string) : string;

  if (typeof header !== 'string') {
    throw new TypeError('argument string is required to be a string');
  }

  var index = header.indexOf(';');
  var type = index !== -1 ? header.substr(0, index).trim() : header.trim();

  if (!TYPE_REGEXP.test(type)) {
    throw new TypeError('invalid media type');
  }

  var obj = new ContentType(type.toLowerCase()); // parse parameters

  if (index !== -1) {
    var key;
    var match;
    var value;
    PARAM_REGEXP.lastIndex = index;

    while (match = PARAM_REGEXP.exec(header)) {
      if (match.index !== index) {
        throw new TypeError('invalid parameter format');
      }

      index += match[0].length;
      key = match[1].toLowerCase();
      value = match[2];

      if (value[0] === '"') {
        // remove quotes and escapes
        value = value.substr(1, value.length - 2).replace(QESC_REGEXP, '$1');
      }

      obj.parameters[key] = value;
    }

    if (index !== header.length) {
      throw new TypeError('invalid parameter format');
    }
  }

  return obj;
}
/**
 * Get content-type from req/res objects.
 *
 * @param {object}
 * @return {Object}
 * @private
 */


function getcontenttype(obj) {
  var header;

  if (typeof obj.getHeader === 'function') {
    // res-like
    header = obj.getHeader('content-type');
  } else if (typeof obj.headers === 'object') {
    // req-like
    header = obj.headers && obj.headers['content-type'];
  }

  if (typeof header !== 'string') {
    throw new TypeError('content-type header is missing from object');
  }

  return header;
}
/**
 * Quote a string if necessary.
 *
 * @param {string} val
 * @return {string}
 * @private
 */


function qstring(val) {
  var str = String(val); // no need to quote tokens

  if (TOKEN_REGEXP.test(str)) {
    return str;
  }

  if (str.length > 0 && !TEXT_REGEXP.test(str)) {
    throw new TypeError('invalid parameter value');
  }

  return '"' + str.replace(QUOTE_REGEXP, '\\$1') + '"';
}
/**
 * Class to represent a content type.
 * @private
 */


function ContentType(type) {
  this.parameters = Object.create(null);
  this.type = type;
}

/***/ }),

/***/ "tBM1":
/***/ (function(module) {

module.exports = JSON.parse("{\"a11y.button.canvases\":\"{name}\",\"a11y.button.libraries\":\"{name}, bibliothèque\",\"a11y.button.listGridToggle\":\"changement de vue, vue {toggledView, select, grid {grille} list {liste}}\",\"a11y.button.project\":\"{name}, projet\",\"a11y.button.published\":\"{name}, {extension}\",\"a11y.button.selectFolder\":\"Sélectionner un dossier\",\"a11y.button.working\":\"{name}, {extension}, modifié {modified}\",\"a11y.strings.folder\":\"dossier\",\"header.action.newProject\":\"Nouveau projet\",\"header.action.newLibrary\":\"Nouvelle bibliothèque\",\"header.action.browseAll\":\"Parcourir tout\",\"header.Name\":\"Nom\",\"header.Size\":\"Taille\",\"header.Sharing\":\"Membres\",\"header.Team\":\"Espace de travail\",\"header.DateModified\":\"Modifié\",\"header.DateCreated\":\"Créé\",\"header.Status\":\"Favoris\",\"header.SortBy\":\"Trier par\",\"header.sort.label\":\"Trier\",\"header.ChangeSortDirection\":\"Changer le sens de tri en\",\"header.SortBy.asc\":\"Croissant\",\"header.SortBy.desc\":\"Décroissant\",\"header.selectAll\":\"Tout sélectionner\",\"header.reverseOrder\":\"Inverser l’ordre\",\"header.showCompatible\":\"Fichiers compatibles\",\"header.showEverything\":\"Tout\",\"product.illustrator.web\":\"Illustrator Web (version bêta)\",\"product.photoshop.web\":\"Photoshop Web (Beta)\",\"status.followed\":\"Oui\",\"status.unfollowed\":\"Non\",\"team.usm.defaultName\":\"Espace de travail {name}\",\"space.access.private.description\":\"Personnes invitées uniquement\",\"space.access.private.tooltip\":\"Seules les personnes invitées ont accès à ce projet\",\"space.access.team.description\":\"Tous les membres de l’espace de travail et les invités\",\"space.access.team.tooltip\":\"Toutes les personnes de l’espace de travail « {team} » ont accès à ce projet\",\"yourProjects.title\":\"Projets\",\"yourProjects.librariesTab.title\":\"Bibliothèques de l’équipe\",\"yourProjects.empty.spaces\":\"Créez d’autres projets et invitez d’autres membres de l’espace de travail\",\"browseAll.title\":\"Parcourir tout\",\"yourFiles.title\":\"Vos documents\",\"yourLibraries.title\":\"Bibliothèques\",\"yourLibraries.metadata\":\"BIBLIOTHÈQUE\",\"canvas.metadata\":\"ZONE DE TRAVAIL\",\"projectInfo.action.view\":\"Voir les infos\",\"projectInfo.action.edit\":\"Modifier le projet\",\"projectInfo.empty.cta\":\"Créer un projet\",\"projectInfo.empty.description\":\"Les projets Creative Cloud simplifient la recherche, l’organisation, le partage et la prise de décision, et regroupent tout ce dont vous avez besoin pour vos projets créatifs, dans un seul et même emplacement.\",\"projectInfo.empty.heading\":\"Plus de création, moins de rattrapage.\",\"projectInfo.error.description\":\"Réessayez ultérieurement.\",\"projectInfo.error.heading\":\"Impossible de charger {section}\",\"projectInfo.new.error.title\":\"Impossible de créer un projet\",\"projectInfo.new.noPermission.description\":\"Contactez votre administrateur informatique pour en savoir plus.\",\"projectInfo.title.create\":\"NOUVEAU PROJET\",\"projectInfo.title.edit\":\"MODIFIER LE PROJET\",\"projectInfo.title.view\":\"INFOS SUR LE PROJET\",\"projectInfo.access.title\":\"Qui peut modifier ce projet ?\",\"projectInfo.access.warning\":\"Certains membres risquent de perdre leur accès au projet si vous remplacez l’autorisation par « Personnes invitées uniquement ».\",\"projectInfo.organization\":\"Organisation\",\"projectInfo.organization.placeholder\":\"Choisir\",\"projectInfo.description\":\"Description\",\"textField.invalid.characters\":\"Les noms ne peuvent pas inclure les caractères suivants : \\\\\\\\ / * ? \\\" | : < >\",\"textField.invalid.duplicateName\":\"Un projet portant ce nom existe déjà dans cette organisation.\",\"textField.invalid.duplicateName.space\":\"Un projet portant ce nom existe déjà dans cet espace de travail.\",\"textField.invalid.duplicateName.team\":\"Un espace de travail portant ce nom existe déjà dans cette organisation.\",\"textField.invalid.empty\":\"Le nom ne doit pas être vide\",\"textField.invalid.generic\":\"Nom incorrect\",\"textField.invalid.length\":\"Les noms ne peuvent pas dépasser 50 caractères\",\"textField.invalid.nameEndsWithDot\":\"Les noms ne peuvent pas se terminer par un point.\",\"textField.invalid.offline\":\"Reconnectez-vous pour accéder à l’ensemble de vos espaces de travail et projets. Pour consulter les fichiers locaux à partir de vos projets, accédez à l’onglet Accueil.\",\"projectInfo.textField.placeholder\":\"Nommer ce projet\",\"projectInfo.team\":\"Espace de travail\",\"projectInfo.description.placeholder\":\"Ex : fichiers, commentaires et supports de référence pour le projet du client\",\"projectInfo.description.invalidLength\":\"La description ne peut pas dépasser 1 000 caractères.\",\"projectInfo.toast.success.new\":\"Projet créé : {name}\",\"projectInfo.toast.success.update\":\"Projet correctement mis à jour : {name}\",\"projectInfo.toast.error.generic\":\"Impossible de {create, select, true {créer} other {modifier}} le projet\",\"team.empty.heading\":\"Les projets permettent à tout le monde d’être sur la même longueur d’onde\",\"team.empty.description\":\"Vous en avez assez de ne pas pouvoir accéder aux fichiers, de gérer la confusion sur les versions et d’envoyer des copies d’écran par e-mail pour examen ? Utilisez des espaces pour organiser des projets, recueillir des ressources et des commentaires, et partager des fichiers sur lesquels toute l’équipe doit travailler.\",\"team.empty.createSpace\":\"Créer un projet\",\"team.empty.inviteMembers\":\"Inviter des membres\",\"team.empty.startHere\":\"COMMENCER ICI\",\"team.create.success\":\"Espace de travail correctement créé : {name}\",\"team.create.error.generic\":\"Impossible de créer l’espace de travail\",\"team.edit.success\":\"Espace de travail correctement mis à jour : {name}\",\"team.edit.error.generic\":\"Impossible de mettre à jour l’espace de travail\",\"team.archive.success\":\"{count, plural, =1 {# espace de travail supprimé} other {# espaces de travail supprimés}}\",\"team.archive.error.generic\":\"Impossible de supprimer {count, plural, =1 {# espace de travail} other {# espaces de travail}}\",\"team.error.generic\":\"Désolé, un problème s’est produit.\",\"project1Up.action.projectInfo\":\"Voir les infos\",\"project1up.region.space.ariaLabel\":\"{projectName}, projet\",\"project1Up.section.libraries\":\"Bibliothèques\",\"project1Up.section.libraries.empty.cta\":\"Ajouter des bibliothèques Creative Cloud\",\"project1Up.section.libraries.empty.description\":\"Ajoutez des liens vers les bibliothèques dont vous avez besoin pour travailler.\",\"project1Up.section.libraries.empty.heading\":\"Regroupez tout dans un seul et même emplacement\",\"project1Up.section.filter\":\"Filtre\",\"project1Up.section.filter.label\":\"Filtrer par mot-clé\",\"project1Up.section.filter.enterKeyword\":\"Entrer un mot-clé\",\"project1Up.section.filterFiles.empty.heading\":\"Aucun résultat trouvé pour le filtre sélectionné\",\"project1Up.section.compatibleFiles.empty.heading\":\"Aucun fichier compatible dans ce projet\",\"project1Up.section.workingFiles\":\"Fichiers de travail\",\"project1Up.section.workingFiles.empty.addFiles\":\"Ajouter des fichiers\",\"project1Up.section.workingFiles.empty.createFolder\":\"Créer un dossier\",\"project1Up.section.workingFiles.empty.description\":\"Reproduisez des projets et collaborez avec d’autres membres.\",\"project1Up.section.workingFiles.empty.heading\":\"Travaillez sur les projets de votre choix, quand vous en avez besoin\",\"project1Up.section.published\":\"Publié\",\"project1Up.section.published.empty.cta\":\"Comment publier des liens\",\"project1Up.section.published.empty.description\":\"Envoyez des liens en lecture seule pour recueillir les commentaires des personnes concernées, en temps opportun.\",\"project1Up.section.published.empty.description.readonly\":\"Lorsque quelqu’un a besoin d’un commentaire ou d’avis, il ajoute un lien ici.\",\"project1Up.section.published.empty.heading\":\"Partager avec un objectif\",\"project1Up.section.published.empty.heading.readonly\":\"Aucun élément publié dans ce projet\",\"project1Up.section.canvases\":\"Zones de travail\",\"project1Up.section.canvases.empty.cta\":\"Ajouter des canevas Creative Cloud\",\"project1Up.section.canvases.empty.description\":\"Ajoutez des liens vers les éléments dont vous avez besoin pour travailler.\",\"project1Up.section.canvases.empty.heading\":\"Regroupez tout dans un seul et même emplacement\",\"project1Up.section.files\":\"Fichiers\",\"project1Up.error.accessDenied.heading\":\"Vous n’avez pas de droits d’accès\",\"project1Up.error.accessDenied.description\":\"Vous avez été supprimé de ce projet. Contactez votre administrateur si vous pensez qu’il s’agit d’une erreur.\",\"project1Up.header.seeAll\":\"Afficher tout\",\"project1up.subheader.selected\":\"{count, plural, =1 {# élément sélectionné} other {# éléments sélectionnés}}\",\"project1up.subheader.emptyDescription\":\"Ajoutez une description à votre projet\",\"project1up.subheader.canvases.title\":\"Zones de travail\",\"project1up.subheader.canvases.subtitle\":\"TODO : SOUS-TITRE DE CANEVAS\",\"project1up.subheader.libraries.title\":\"Bibliothèques\",\"project1up.subheader.libraries.subtitle\":\"Les membres peuvent ajouter des liens vers des bibliothèques Creative Cloud ici.\",\"project1up.subheader.working.title\":\"Fichiers de travail\",\"project1up.subheader.working.subtitle\":\"Les membres de ce projet peuvent modifier ces fichiers.\",\"project1up.subheader.output.title\":\"Publié\",\"project1up.subheader.output.subtitle\":\"{contributor, select, true {Partagez des versions en lecture seule du travail de votre projet avec des personnes extérieures au projet.} other {Affichez et commentez ces éléments en lecture seule}}\",\"project.subtitle\":\"PROJET\",\"project.countContributors\":\"{count, plural, =1 {# membre} other {# membres}}\",\"project.versionError.reload.description\":\"Essayez d’actualiser votre navigateur.\",\"project.versionError.reload.title\":\"Impossible d’accéder au projet\",\"project.versionError.update.description\":\"Vous ne pourrez pas accéder au projet tant que vous n’aurez pas mis à jour l’application.\",\"project.versionError.update.title\":\"Mettre à jour {appName} pour ouvrir\",\"project.alreadyDiscarded.title\":\"Ce projet a été supprimé\",\"project.alreadyDiscarded.description\":\"Contactez votre administrateur si vous pensez qu’il s’agit d’une erreur, ou recherchez d’autres contenus.\",\"project.deleted.title\":\"Ce projet a été définitivement supprimé\",\"project.deleted.description\":\"Vous ne pouvez pas accéder à ce projet car il n’est plus disponible.\",\"project.metadataError.backLabel\":\"Revenir aux projets\",\"project.metadataError.description\":\"Soit le projet que vous recherchez n’existe pas, soit vous n’y avez pas accès.\",\"project.metadataError.title\":\"Désolé, un problème s’est produit.\",\"folder.subtitle\":\"DOSSIER\",\"libraries.toast.add.start\":\"Ajout de {count, plural, =1 {# bibliothèque} other {# bibliothèques}}\",\"libraries.toast.add.success\":\"Ajout réussi de {count, plural, =1 {# bibliothèque} other {# bibliothèques}}\",\"libraries.toast.add.error\":\"Échec de l’ajout de {count, plural, =1 {# bibliothèque} other {# bibliothèques}}. Réessayez.\",\"libraries.toast.add.duplicate\":\"Cette bibliothèque existe déjà\",\"libraries.toast.add.onlyDuplicates\":\"Impossible d’ajouter {count, plural, =1 {# bibliothèque, car la bibliothèque existe déjà} other {# bibliothèques, car les bibliothèques existent déjà}}.\",\"libraries.toast.delete.success\":\"{count, plural, =1 {# bibliothèque retirée} other {# bibliothèques retirées}}\",\"libraries.toast.delete.error\":\"Échec du retrait de {count, plural, =1 {# bibliothèque} other {# bibliothèques}}\",\"libraries.toast.follow.inProgress\":\"Suivi de {count, plural, =1 {# bibliothèque} other {# bibliothèques}}\",\"libraries.toast.follow.success\":\"Abonnement à {count, plural, =1 {# bibliothèque} other {# bibliothèques}}\",\"libraries.toast.follow.error\":\"Impossible de s’abonner à {count, plural, =1 {# bibliothèque} other {# bibliothèques}}\",\"libraries.toast.unfollow.inProgress\":\"Arrêt du suivi de {count, plural, =1 {# bibliothèque} other {# bibliothèques}}\",\"libraries.toast.unfollow.success\":\"Se désabonner de {count, plural, =1 {# bibliothèque} other {# bibliothèques}}\",\"libraries.toast.unfollow.error\":\"Impossible de se désabonner de {count, plural, =1 {# bibliothèque} other {# bibliothèques}}\",\"libraries.modal.empty.heading\":\"Aucune bibliothèque\",\"libraries.modal.empty.description\":\"Votre organisation n’a partagé aucune bibliothèque\",\"libraries.modal.error.limitExceeded\":\"Impossible d’ajouter une bibliothèque\",\"libraries.modal.error.limitExceeded.detail\":\"Vous pouvez ajouter jusqu’à 100 bibliothèques à un projet. Supprimez des bibliothèques pour pouvoir en ajouter d’autres.\",\"libraries.brokenResources\":\"Certaines bibliothèques ne sont pas affichées car vous n’y avez pas accès. Contactez d’autres membres pour en savoir plus.\",\"copy.start\":\"Copier {count, plural, =1 {# élément} other {# éléments}}\",\"copy.failure\":\"Impossible de copier {count, plural, =1 {# élément} other {# éléments}}\",\"copy.failure.partial\":\"Impossible de copier certains éléments\",\"copy.success\":\"{count, plural, =1 {# élément copié} other {# éléments copiés}}\",\"copy.conflictSuffix\":\"copie\",\"move.start\":\"Déplacement de {count, plural, =1 {# élément} other {# éléments}}\",\"move.failure\":\"Impossible de supprimer {count, plural, =1 {# élément} other {# éléments}}\",\"move.failure.partial\":\"Impossible de déplacer certains éléments\",\"move.success\":\"{count, plural, =1 {# élément déplacé} other {# éléments déplacés}}\",\"upload.start\":\"Chargement de {count, plural, =1 {# élément} other {# éléments}}\",\"upload.failure\":\"Impossible de charger {count, plural, =1 {# élément} other {# éléments}}\",\"upload.failure.partial\":\"Impossible de charger certains éléments\",\"upload.failure.snapshot\":\"Cet élément n’est pas pris en charge\",\"upload.success\":\"{count, plural, =1 {# élément chargé} other {# éléments chargés}}\",\"download.start\":\"Téléchargement de {count, plural, =1 {# élément} other {# éléments}}\",\"download.failure\":\"Impossible de télécharger {count, plural, =1 {# élément} other {# éléments}}\",\"download.failure.partial\":\"Impossible de télécharger certains éléments\",\"download.success\":\"{count, plural, =1 {# élément} other {# éléments}} téléchargé(s)\",\"delete.failure\":\"Suppression impossible {count, plural, =1 {# élément} other {# éléments}}\",\"delete.failure.partial\":\"Impossible de supprimer certains éléments\",\"delete.success\":\"{count, plural, =1 {# élément} other {# éléments}} supprimé\",\"jobs.failure\":\"{count, plural, =1 {# élément} other {# éléments}} en échec\",\"jobs.inProgress\":\"Travail en cours...\",\"jobs.success\":\"{count, plural, =1 {# élément} other {# éléments}} terminé(s)\",\"restore.failure\":\"Restauration impossible {count, plural, =1 {# élément} other {# éléments}}\",\"restore.failure.partial\":\"Impossible de restaurer certains éléments\",\"restore.success\":\"{count, plural, =1 {# élément} other {# éléments}} restauré\",\"rename.start\":\"Changement de nom\",\"rename.success\":\"{count, plural, =1 {# élément} other {# éléments}} renommé(s)\",\"rename.failure\":\"Erreur de serveur, impossible de renommer l’élément.\",\"rename.failure.conflict\":\"Vous avez déjà un élément portant le même nom\",\"rename.offline.heading\":\"Impossible de renommer\",\"rename.offline\":\"Vous ne pouvez pas renommer l’élément car vous êtes hors ligne. Reconnectez-vous pour effectuer cette action.\",\"bookmark.follow.error\":\"Impossible de mettre ce projet en favori\",\"bookmark.unfollow.error\":\"Impossible de retirer ce projet des favoris\",\"bookmark.follow.success\":\"{projectName} a été ajouté aux favoris\",\"bookmark.unfollow.success\":\"{projectName} a été retiré des favoris\",\"bookmark.bulk.follow.success\":\"{count, plural, =1 {# élément} other {# éléments}} ajouté(s) aux favoris\",\"bookmark.bulk.follow.partial\":\"Impossible d’ajouter certains éléments aux favoris\",\"bookmark.bulk.follow.error\":\"Impossible d’ajouter aux favoris {count, plural, =1 {# élément} other {# éléments}}\",\"bookmark.bulk.unfollow.success\":\"{count, plural, =1 {# élément} other {# éléments}} retiré(s) des favoris\",\"bookmark.bulk.unfollow.partial\":\"Impossible de retirer certains éléments des favoris\",\"bookmark.bulk.unfollow.error\":\"Impossible d’annuler la mise en favori de {count, plural, =1 {# élément} other {# éléments}}\",\"copyLink.success\":\"Lien copié dans le Presse-papiers\",\"copyLink.failure\":\"Impossible de copier le lien\",\"starterUser.project1upNavigation\":\"Votre formule de lancement n’inclut pas l’ouverture de documents dans les projets.\",\"starterUser.project1upNavigationCDPSave\":\"Votre formule de lancement ne permet pas d’enregistrer les documents dans des projets.\",\"invite.failure\":\"Impossible d’envoyer les invitations. Réessayez.\",\"accessibility.backButton\":\"Précédent\",\"button.role\":\"Bouton\",\"button.actions\":\"Actions\",\"button.add\":\"Ajouter\",\"button.addFiles\":\"Ajouter des fichiers\",\"button.addLibrary\":\"Ajouter bibliothèque\",\"button.createDocument\":\"Nouveau fichier {appName}\",\"button.library\":\"Bibliothèque\",\"button.back\":\"Précédent\",\"button.browse\":\"Parcourir tout\",\"button.cancel\":\"Annuler\",\"button.okay\":\"OK\",\"button.canvas\":\"Zones de travail\",\"button.addCanvas\":\"Nouveau canevas\",\"button.changeDefaultApp\":\"Changer d’application par défaut…\",\"button.close\":\"Fermer\",\"button.continue\":\"Continuer\",\"button.copy\":\"Copier vers...\",\"button.copyLink\":\"Copier le lien\",\"button.create\":\"Créer\",\"button.createNewFolder\":\"Créer un dossier\",\"button.newFile\":\"Nouveau fichier\",\"button.newFolder\":\"Nouveau dossier\",\"button.delete\":\"Supprimer\",\"button.deleteResource\":\"Supprimer\",\"button.done\":\"Terminer\",\"button.download\":\"Télécharger\",\"button.favorite\":\"Mettre en favori\",\"button.follow\":\"Suivre\",\"button.invite\":\"Inviter\",\"button.inviteLabel\":\"Inviter des personnes\",\"button.leave\":\"Quitter\",\"button.leaveProject\":\"Quitter l’espace de travail\",\"button.move\":\"Déplacer vers...\",\"button.next\":\"Suivant\",\"button.ok\":\"OK\",\"button.open\":\"Ouvrir\",\"button.openWith\":\"Ouvrir avec\",\"button.open.appName\":\"{appName} {isDefault, select, true {(Par défaut)} other {}}\",\"button.redo\":\"Réessayer\",\"button.reload\":\"Charger à nouveau\",\"button.rename\":\"Renommer\",\"button.restore\":\"Restaurer\",\"button.retry\":\"Réessayer\",\"button.save\":\"Enregistrer\",\"button.select\":\"Sélectionner\",\"button.share\":\"Partager\",\"button.skipTour\":\"Ignorer la visite guidée\",\"button.undo\":\"Annuler\",\"button.unfavorite\":\"Retirer des favoris\",\"button.unfollow\":\"Ne plus suivre\",\"button.update\":\"Mettre à jour\",\"button.upgrade\":\"Mettre à niveau\",\"button.view\":\"Tout voir\",\"button.viewProject\":\"Voir le projet\",\"button.viewTarget\":\"Afficher\",\"button.createWeblink\":\"Ajouter un lien web\",\"button.leaveTeam\":\"Quitter l’espace de travail\",\"button.renameTeam\":\"Renommer l’espace de travail\",\"button.editTeam\":\"Modifier les informations de l’espace de travail\",\"button.archiveTeam\":\"Supprimer l’espace de travail\",\"button.upload\":\"Charger des fichiers\",\"button.goToDeleted\":\"Afficher dans le dossier des éléments supprimés\",\"button.viewEverything\":\"Tout afficher\",\"button.viewInWeb\":\"Afficher sur le Web\",\"abbreviations.fileSize.byte\":\"o\",\"abbreviations.fileSize.kilobyte\":\" Ko\",\"abbreviations.fileSize.megabyte\":\" Mo\",\"abbreviations.fileSize.gigabyte\":\" Go\",\"abbreviations.fileSize.terabyte\":\"To\",\"statusIcon.conflicted\":\"Conflit de synchronisation\",\"statusIcon.onlineOnly\":\"En ligne seulement\",\"statusIcon.availableOffline\":\"Disponible hors ligne\",\"statusIcon.syncing\":\"Synchronisation...\",\"statusIcon.waitingToSync\":\"En attente de synchronisation\",\"statusMessage.offline.description\":\"Reconnectez-vous pour accéder à l’ensemble de vos espaces de travail et projets. Pour consulter les fichiers locaux à partir de vos projets, accédez à l’onglet Accueil.\",\"statusMessage.offline.heading\":\"Vous êtes déconnecté\",\"statusMessage.offline.toast\":\"Vous êtes déconnecté, par conséquent certaines fonctionnalités et certains fichiers peuvent ne pas être disponibles.\",\"toggle.listView\":\"Affichage par liste\",\"toggle.gridView\":\"Affichage par vignettes\",\"color.fuchsia\":\"Fuchsia\",\"color.indigo\":\"Indigo\",\"color.celery\":\"Céleri\",\"color.magenta\":\"Magenta\",\"color.yellow\":\"Jaune\",\"color.seafoam\":\"Écume de mer\",\"color.chartreuse\":\"Chartreuse\",\"color.purple\":\"Violet\",\"color.blue\":\"Bleu\",\"color.red\":\"Rouge\",\"color.orange\":\"Orange\",\"color.green\":\"Vert\",\"color.label\":\"Couleur du projet\",\"tooltip.offline.general\":\"Vous devez revenir en ligne pour réaliser cette opération\",\"tooltip.moreFaces\":\"+ {number} de plus\",\"action.leave.space.success\":\"Vous avez quitté {count, plural, =1 {# projet} other {# projets}}\",\"action.leave.prototype.success\":\"Accès supprimé pour {count, plural, =1 {# prototype} other {# prototypes}}\",\"action.leave.file.success\":\"Accès supprimé pour {count, plural, =1 {# fichier} other {# fichiers}}\",\"action.leave.canvas.success\":\"Accès supprimé pour {count, plural, =1 {# canevas} other {# canevas}}\",\"action.leave.team.success\":\"Vous avez quitté 1 espace de travail\",\"action.leave.space.error\":\"Impossible de quitter ce projet\",\"action.leave.prototype.error\":\"Impossible de quitter ce prototype\",\"action.leave.file.error\":\"Impossible de quitter le fichier\",\"action.leave.team.error\":\"Impossible de quitter cet espace de travail\",\"action.leave.canvas.error\":\"Impossible de quitter cette zone de travail\",\"action.leave.space.partial.error\":\"Impossible de quitter tous les projets\",\"action.leave.prototype.partial.error\":\"Impossible de quitter tous les prototypes\",\"action.leave.file.partial.error\":\"Impossible de quitter tous les fichiers\",\"action.leave.canvas.partial.error\":\"Impossible de quitter tous les canevas\",\"action.leave.error.onlyContributor\":\"Vous êtes l’unique membre. Ajoutez un autre membre avant de quitter.\",\"action.leave.error.addressBookGroupMember\":\"Quittez le groupe puis réessayez.\",\"action.leave.error.admin\":\"Vous ne pouvez pas quitter car vous êtes administrateur.\",\"action.leave.error.generic\":\"Vous ne pouvez pas quitter car un problème est survenu.\",\"action.reportAbuse\":\"Signaler un abus\",\"action.reportAbuse.required\":\"Obligatoire\",\"action.reportAbuse.titleText\":\"Si vous estimez que ce contenu Creative Cloud enfreint les Conditions d’utilisation d’Adobe, vous pouvez le signaler en complétant ce formulaire.\",\"action.reportAbuse.emailInput\":\"Votre e-mail\",\"action.reportAbuse.nameInput\":\"Votre nom\",\"action.reportAbuse.radioButtonText\":\"Pour quel motif effectuez-vous un signalement de ce contenu ?\",\"action.reportAbuse.defamation\":\"Diffamation\",\"action.reportAbuse.hate\":\"Contenu raciste ou incitant à la haine\",\"action.reportAbuse.trademark\":\"Atteinte à une marque commerciale\",\"action.reportAbuse.pornography\":\"Contenu sexuellement explicite\",\"action.reportAbuse.vulgar\":\"Contenu injurieux\",\"action.reportAbuse.other\":\"Autre\",\"action.reportAbuse.inappropriate\":\"Inapproprié\",\"action.reportAbuse.age\":\"Âge incorrect\",\"action.reportAbuse.gender\":\"Genre incorrect\",\"action.reportAbuse.textAreaTitle\":\"Merci de décrire le problème rencontré\",\"action.reportAbuse.describeConcern\":\"Décrire le problème\",\"action.reportAbuse.success\":\"Abus signalé avec succès\",\"action.reportAbuse.failure\":\"Abus non signalé\",\"action.menu.label\":\"Menu Actions\",\"action.label\":\"Action\",\"dialog.genericError.description\":\"Désolé, un problème s’est produit.\",\"dialog.genericError.title\":\"Erreur inattendue\",\"dialog.leave.space.title\":\"Quitter {count, plural, =1 {{name}} other {les projets}}\",\"dialog.leave.prototype.title\":\"Quitter {count, plural, =1 {ce prototype} other {ces prototypes}}\",\"dialog.leave.file.title\":\"Quitter {count, plural, =1 {ce fichier} other {ces fichiers}}\",\"dialog.leave.canvas.title\":\"Quitter {count, plural, =1 {ce canevas} other {ces canevas}}\",\"dialog.leave.team.title\":\"Vous partez ?\",\"dialog.leave.team.detail\":\"Votre départ sera définitif. Contactez un administrateur si vous souhaitez rejoindre à nouveau cet espace de travail.\",\"dialog.leave.space.detail\":\"Vous n’aurez plus accès aux objets qui ne vous appartiennent pas et qui se trouvent dans ce projet. Le fait de quitter « {projectName} » est irréversible.\",\"dialog.leave.prototype.detail\":\"Vous ne pourrez plus y accéder sans une autre invitation.\",\"dialog.leave.file.detail\":\"Vous ne pourrez plus y accéder sans une autre invitation.\",\"dialog.leave.canvas.detail\":\"Vous ne pourrez plus y accéder sans une autre invitation.\",\"dialog.leave.detail\":\"{type, select, space {Vous perdrez l’accès aux éléments qui ne vous appartiennent pas et qui figurent dans {count, plural, =1 {ce projet} other {ces projets}}. Si vous quittez {count, plural, =1 {« {name} »} other {ces projets}}, vous ne pourrez pas revenir en arrière.} other {Vous ne pourrez plus y accéder sans une nouvelle invitation{count, plural, =1 {.} other { :}}}}\",\"dialog.deleteFailed.title\":\"Impossible de supprimer tous les éléments\",\"dialog.deleteWarning.description\":\"{type, select, spaces {Cette action a pour effet de supprimer le contenu pour tous les membres de ces projets :} other {Cette action a pour effet de supprimer le contenu pour tous les membres de ce projet :}}\",\"dialog.deleteWarning.title\":\"{type, select, space {Supprimer {count} {count, plural, =1 {projet} other {projets}}} other {Supprimer {count} {count, plural, =1 {élément} other {éléments}}}}\",\"dialog.deleteFailed.description.unauthorized\":\"Suppression impossible, car vous avez été supprimé de ce projet :\",\"dialog.deleteFailed.description.alreadyDeleted\":\"Impossible de supprimer, car quelqu’un d’autre a déjà supprimé cet élément :\",\"dialog.deleteFailed.description.unknown\":\"Impossible de supprimer car un problème est survenu :\",\"dialog.cantCopyAllItems\":\"Impossible de copier tous les éléments\",\"dialog.cantCopyBecauseSomethingWentWrong\":\"Impossible de copier car un problème est survenu :\",\"dialog.cantCopyBecauseYouWereSignedOut\":\"Impossible de copier car vous avez été déconnecté :\",\"dialog.cantCopyBecauseYouWereRemoved\":\"Copie impossible, car vous avez été supprimé de ce projet :\",\"dialog.cantCopyBecauseItemWasDeleted\":\"Impossible de copier car quelqu’un d’autre a déjà supprimé cet élément :\",\"dialog.cantCopyBecauseItemExists\":\"Impossible de copier cet élément car il existe déjà dans le dossier cible :\",\"dialog.cantMoveAllItems\":\"Impossible de déplacer tous les éléments\",\"dialog.cantMoveBecauseSomethingWentWrong\":\"Impossible de déplacer car un problème est survenu :\",\"dialog.cantMoveBecauseYouWereSignedOut\":\"Impossible de déplacer car vous avez été déconnecté :\",\"dialog.cantMoveBecauseYouWereRemoved\":\"Déplacement impossible, car vous avez été supprimé de ce projet :\",\"dialog.cantMoveBecauseItemWasDeleted\":\"Impossible de déplacer car quelqu’un d’autre a déjà supprimé cet élément :\",\"dialog.cantMoveBecauseItemExists\":\"Impossible de déplacer cet élément car il existe déjà dans le dossier cible :\",\"dialog.createFolder.error\":\"Erreur du serveur, impossible d’enregistrer le dossier\",\"dialog.createFolder.nameConflict\":\"Vous avez déjà un dossier portant ce nom.\",\"dialog.createFolder.placeholder\":\"Nom de dossier\",\"dialog.createFolder.title\":\"Créer un dossier\",\"dialog.createFolder.success\":\"Dossier créé\",\"dialog.createWeblink.error\":\"URL non prise en charge\",\"dialog.createWeblink.tooManyRequests\":\"Erreur réseau inattendue. Veuillez réessayer.\",\"dialog.createWeblink.success\":\"1 élément ajouté\",\"dialog.createWeblink.nameConflict\":\"Ce titre existe déjà\",\"dialog.createWeblink.name.placeholder\":\"Saisir un nom pour ce lien\",\"dialog.createWeblink.link.placeholder\":\"https://\",\"dialog.createWeblink.name\":\"Titre personnalisé\",\"dialog.createWeblink.link\":\"Lien\",\"dialog.createWeblink.title\":\"Créer un lien Web\",\"app.type.webLink\":\"LIEN WEB\",\"dialog.createCanvas.error\":\"Impossible de créer une zone de travail\",\"dialog.move.title\":\"Déplacer vers le projet {projectName}\",\"dialog.move.detail\":\"Le déplacement de cet élément modifie ceux qui peuvent y accéder.\",\"moveToTeam.confirm.title\":\"Déplacer vers l’espace de travail {name}\",\"moveToTeam.confirm.message\":\"Le fait de déplacer vos projets ici aura un impact sur qui peut y accéder. Vos projets seront accessibles à toute personne ayant accès à votre espace de travail.\",\"moveToTeam.disabled.differentOrg.tooltip.message\":\"Vous ne pouvez pas déplacer des projets vers un espace de travail d’une autre organisation.\",\"moveToSpace.disabled.differentOrg.tooltip.message\":\"Vous ne pouvez pas déplacer des éléments vers un projet d’une autre organisation.\",\"moveToTeam.success\":\"Vous avez déplacé {count, plural, =1 {# projet} other {# projets}} vers l’espace de travail {name}\",\"confirmationDialog.dontShowAgain\":\"Ne plus afficher\",\"dialog.open.title\":\"Ouvrir sur le Web\",\"dialog.open.detail\":\"Vous ne pouvez pas ouvrir ce fichier dans {appName}, mais vous pouvez y accéder dans un navigateur.\",\"dialog.renameTeam.title\":\"Renommer l’espace de travail\",\"dialog.renameTeam.placeholder\":\"Saisir un nom pour cet espace de travail\",\"dialog.renameTeam.error\":\"Désolé, un problème s’est produit.\",\"dialog.renameTeam.nameConflict\":\"Ce nom existe déjà\",\"dialog.archiveTeam.title\":\"Supprimer cet espace de travail ?\",\"dialog.archiveTeam.detail\":\"Votre départ sera définitif. Contactez un administrateur si vous souhaitez rejoindre à nouveau cet espace de travail.\",\"dialog.saveToCloud.title\":\"Fichier(s) enregistré(s) dans Creative Cloud\",\"dialog.saveToCloud.detail\":\"Votre document en ligne inclut désormais un historique des versions, des fonctions d’invitation et de cocréation, un accès instantané sur d’autres appareils et plus encore. Vous pouvez le trouver ici et dans vos applications Creative Cloud.\",\"input.invalidCharInput\":\"Un nom ne peut pas inclure les caractères suivants : \\\\\\\\ / * ? \\\" | :\",\"input.invalidEmptyInput\":\"{names, select, true {Noms} other {Titres}} ne doivent pas être vides\",\"input.nameTooLong\":\"{names, select, true {Noms} other {Titres}} ne peuvent pas comporter plus de {maxLength} caractères\",\"input.nameEndsWithDot\":\"{names, select, true {Les noms} other {Les titres}} ne peuvent pas se terminer par un point.\",\"input.weblink.nameRestricted\":\"Les liens web ne peuvent pas avoir les titres suivants : con, prn, aux, nul, com#, lpt#\",\"input.nameRestricted\":\"Les actifs ne peuvent pas avoir les noms suivants : con/prn/aux/nul/com#/lpt#\",\"input.weblink.invalidCharInput\":\"Les titres ne peuvent pas contenir uniquement des espaces ou inclure les caractères suivants : \\\\\\\\ / * ? \\\" | : < > \",\"input.name.invalidCharInput\":\"Les noms ne peuvent pas contenir uniquement des espaces ou inclure les caractères suivants : \\\\\\\\ / * ? \\\" | : < > \",\"cdpFooter.orphanedArtifactsWarning\":\"Les liens publiés connectés aux éléments que vous déplacez resteront dans le projet d’origine\",\"cdpFooter.libraryPrivacyWarning\":\"Si vous disposez d’autorisations de partage vers une bibliothèque que vous ajoutez, les membres du projet pourront la voir.\",\"toast.beforeOp.error.documentIsOpen\":\"Fermez {count, plural, =1 {le document} other {les documents}} pour effectuer cette action.\",\"app.type.designSpecs\":\"SPÉCIFICATION TECHNIQUE\",\"app.type.prototype\":\"PROTOTYPE\",\"app.type.publishedLink\":\"LIEN PUBLIÉ\",\"popover.header\":\"Collaborez sur un projet avec d’autres et partagez votre travail pour obtenir des commentaires.\",\"popover.linkout\":\"En savoir plus\",\"team.libraries.filter.all\":\"Tout\",\"team.libraries.filter.addedToYourLibraries\":\"Ajouté à vos bibliothèques\",\"team.libraries.filter.notAdded\":\"N’a pas été ajouté\",\"team.spaces.filter.all\":\"Tout\",\"team.spaces.filter.favorited\":\"Favoris\",\"team.filter.empty.heading\":\"Aucun projet trouvé pour le filtre sélectionné\",\"team.filter.empty.description1\":\"Aucun résultat trouvé pour \",\"team.filter.empty.description2\":\" dans cette liste. Vérifiez votre orthographe ou réessayez avec d’autres mots-clés.\",\"team.filter.no.match.description\":\"Nous n’avons trouvé aucun résultat dans cette liste. Vérifiez votre orthographe ou réessayez avec d’autres critères de filtre.\",\"team.filter.filterText\":\"{filter}\",\"team.header.other.teams\":\"Autres espaces de travail\",\"space.empty.heading\":\"Tout au même endroit, tout le monde dans la boucle\",\"space.empty.description\":\"Remplissez ce projet de fichiers et autres documents de travail. Invitez vos collaborateurs à se joindre à vous et à ajouter leurs propres fichiers.\",\"space.empty.canvasHeading\":\"CREATIVE CLOUD CANVAS\",\"space.empty.actionsHeading\":\"AJOUTER DU CONTENU À VOTRE PROJET\",\"space.empty.createCanvas\":\"Nouveau canevas\",\"space.empty.upload\":\"Ajouter des fichiers\",\"space.empty.createFolder\":\"Nouveau dossier\",\"space.empty.createWeblink\":\"Liens web\",\"space.empty.addResource\":\"Bibliothèque\",\"folder.empty.heading\":\"Ce dossier est vide.\",\"folder.empty.description\":\"Commencez à le remplir avec des fichiers.\",\"folder.discard.heading\":\"Ce dossier a été supprimé.\",\"folder.discard.description\":\"Contactez votre administrateur si vous pensez qu’il s’agit d’une erreur, ou recherchez d’autres contenus.\",\"folder.error.description\":\"Un problème est survenu lors du chargement du contenu depuis ce dossier..\",\"space.empty.section.createACanvas\":\"Créer une zone de travail\",\"tooltip.opensInBrowser\":\"S’ouvre dans le navigateur\",\"space.empty.workingFiles\":\"Continuez à enrichir ce projet\",\"space.empty.canvasPopoverTitle\":\"Essayez Creative Cloud Canvas (Bêta)\",\"space.empty.canvasPopoverContent\":\"Utilisez des zones de travail pour disposer, visualiser et modifier vos œuvres créatives.\",\"space.error.heading\":\"Impossible de charger le projet\",\"space.error.description\":\"Un problème est survenu lors du chargement du contenu de ce projet.\",\"createTeamWizard.createTeam.sidebarHeading\":\"Créer un espace de travail\",\"createTeamWizard.createTeam.sidebarCopy\":\"Créez un espace de travail afin que toute votre équipe reste sur la même longueur d’onde et bien organisée.\",\"createTeamWizard.createTeam.sidebarCopy.adminconsole\":\"Configurez un espace pour permettre à votre équipe de collaborer et de partager des fichiers.\",\"createTeamWizard.createTeam.sidebarLink\":\"En savoir plus\",\"createTeamWizard.createTeam.contentHeading\":\"Nouvel espace de travail\",\"createTeamWizard.createTeam.loading\":\"Création de l’espace de travail « {name} »\",\"createTeamWizard.inviteMembers.sidebarHeading\":\"Inviter des membres à rejoindre l’espace de travail « {name} »\",\"createTeamWizard.inviteMembers.sidebarCopy\":\"Entrer un nom ou une adresse e-mail pour inviter des membres, ou ignorez cette étape pour le moment et envoyez les invitations plus tard.\",\"createTeamWizard.inviteMembers.loading\":\"Invitation à rejoindre l’espace de travail « {name} »\",\"createTeamWizard.inviteMembers.contentHeading\":\"Inviter des membres\",\"createTeamWizard.inviteMembers.successToast\":\"Les membres ont été ajoutés au nouvel espace de travail\",\"createTeamWizard.progress\":\"Étape {current} sur {total}\",\"createTeamWizard.skipStep\":\"Ignorer\",\"teamDialog.createTeam.label\":\"Créer un espace de travail\",\"teamDialog.createTeam.infoBox.description\":\"L’espace de travail que vous créez est accessible uniquement sur invitation et toutes les personnes ajoutées ont un accès en écriture par défaut.\",\"teamDialog.editTeam.label\":\"Modifier l’espace de travail\",\"teamDialog.nameSection.placeholder\":\"Donner un nom à votre nouvel espace de travail\",\"teamDialog.nameSection.label\":\"Nom de l’espace de travail\",\"teamDialog.permissionsSection.label\":\"Qui peut modifier cet espace de travail ?\",\"teamDialog.permissionsSection.option.onlyInvited\":\"Personnes invitées uniquement\",\"teamDialog.descriptionSection.label\":\"Description de l’espace de travail (facultatif)\",\"teamDialog.descriptionSection.placeholder\":\"Ajoutez quelques mots sur votre espace de travail\",\"teamsSidebar.noTeams\":\"Aucun espace de travail\",\"teamsSidebar.newTeamButton\":\"Créer un espace de travail\",\"teamsSidebar.adminTour.title\":\"Nouveau ! Créez des espaces de travail\",\"teamsSidebar.adminTour.content\":\"Désormais, les administrateurs peuvent créer des espaces de travail dans Creative Cloud sur le web, ce qui facilite l’organisation autour du travail partagé.\",\"teamsSidebarTeam.newSpaceButton\":\"Nouveau projet\",\"teamsSidebarTeam.header.newBadge\":\"NOUVEAU\",\"teamsSidebarTeam.header.otherTeams\":\"Depuis d’autres espaces\",\"teamsSidebarTeam.header.teams\":\"ESPACES DE TRAVAIL\",\"teamsSidebarTeam.header.previewLabel\":\"(Aperçu)\",\"teamsSidebarTeam.header.previewCopy\":\"Les espaces de travail et les projets sont disponibles en version beta privée.\",\"teamsSidebarTeam.header.previewLearnMoreText\":\"En savoir plus\",\"teamsSidebarTeam.message.loading\":\"Chargement...\",\"teamsSidebarTeam.message.noSpaces\":\"Vous n’avez aucun espace de travail ni projet.\",\"teamsSidebarTeam.message.offline\":\"Vous êtes déconnecté. Reconnectez-vous pour afficher vos espaces de travail et vos projets.\",\"teamsSidebarTeam.message.error\":\"Un problème est survenu lors du chargement de vos espaces de travail et projets.\",\"teams1up.error.description\":\"Une erreur s’est produite lors du chargement de vos projets.\",\"teams1up.error.heading\":\"Impossible de charger les projets\",\"otherTeams.emptyMessage.header\":\"Impossible d’afficher la page de l’espace de travail\",\"otherTeams.emptyMessage.description1\":\"Vous avez été supprimé du dernier projet ou vous l’avez quitté depuis la section \",\"otherTeams.emptyMessage.description2\":\" . Contactez votre administrateur si vous pensez qu’il s’agit d’une erreur.\",\"spaceTour.step0.title\":\"Vos projets se trouvent ici\",\"spaceTour.step0.content\":\"Les projets aident les équipes à collaborer et à collecter, organiser et partager des fichiers et des ressources.\",\"spaceTour.step1.title\":\"Ajoutez toutes les ressources nécessaires pour vos projets\",\"spaceTour.step1.content\":\"Rassemblez vos fichiers de travail, vos images de référence, vos ressources et bien plus encore dans un seul et même emplacement.\",\"spaceTour.step2.title\":\"Définir (et oublier) les autorisations\",\"spaceTour.step2.content\":\"Attribuez le bon accès aux collaborateurs lorsque vous les invitez pour gagner du temps et éviter les tracas. Envoyez des packages en lecture seule aux parties prenantes pour révision et commentaires.\",\"error.cantCreateSpace\":\"Le stockage de l’espace de travail est saturé\",\"error.exceedQuota.create.detail.description1\":\"Vous ne pouvez pas créer de nouveau fichier actuellement. Sélectionnez \",\"error.exceedQuota.description2\":\" pour libérer de l’espace de stockage.\",\"error.exceedQuota.add.detail.description1\":\"Vous ne pouvez pas ajouter de nouveau fichier actuellement. Sélectionnez \",\"error.move.generic\":\"Impossible de déplacer car un problème est survenu\",\"error.move.signedOut\":\"Impossible de déplacer car vous avez été déconnecté\",\"error.move.permissionRevoked\":\"Déplacement impossible, car vous avez été supprimé de ce projet\",\"error.move.deleted\":\"Impossible de déplacer car quelqu’un d’autre a déjà supprimé cet élément\",\"error.move.duplicate\":\"Impossible de déplacer cet élément car il existe déjà dans le dossier cible\",\"error.copy.generic\":\"Impossible de copier car un problème est survenu\",\"error.copy.signedOut\":\"Impossible de copier car vous avez été déconnecté\",\"error.copy.permissionRevoked\":\"Copie impossible, car vous avez été supprimé de ce projet\",\"error.copy.deleted\":\"Impossible de copier car quelqu’un d’autre a déjà supprimé cet élément\",\"error.copy.duplicate\":\"Impossible de copier cet élément car il existe déjà dans le dossier cible\",\"checkbox.select\":\"Sélectionner\",\"listItem.fileSize\":\"Taille du fichier\",\"facepile.additionalMembers\":\"+{count} membres supplémentaires\",\"facepile.memberName\":\"{name}, membre\",\"coachmark.information\":\"informations\",\"toolbar.tools\":\"outils\",\"griditem.error.message\":\"Récupération impossible\",\"griditem.error.button\":\"Réessayer\",\"ats.move.extendedNotification\":\"Vous recevrez une notification lorsque votre déplacement sera terminé.\",\"file.deleted.error.heading\":\"Vous ne pouvez pas {operation} ce fichier\",\"file.deleted.error.description\":\"Vous ne pouvez pas {operation} ce fichier, car il a été supprimé. Veuillez le restaurer et réessayer, ou choisir un autre emplacement.\",\"file.deleted.rename.error.description\":\"Vous ne pouvez pas renommer ce fichier, car il a été supprimé. Sélectionnez « Accéder aux espaces supprimés » pour le restaurer.\"}");

/***/ }),

/***/ "tBqN":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("2KdU"),
      24: __webpack_require__("GOZC")
    }
  }));
};

WrappedIcon.displayName = 'Star';
exports.default = WrappedIcon;

/***/ }),

/***/ "tEej":
/***/ (function(module, exports, __webpack_require__) {

// 7.1.15 ToLength
var toInteger = __webpack_require__("Ojgd");

var min = Math.min;

module.exports = function (it) {
  return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991
};

/***/ }),

/***/ "tI1w":
/***/ (function(module) {

module.exports = JSON.parse("{\"steps\":\"{currentStep} van {totalSteps}\"}");

/***/ }),

/***/ "tK/0":
/***/ (function(module) {

module.exports = JSON.parse("{\"Clear search\":\"Zoekactie wissen\"}");

/***/ }),

/***/ "tLB3":
/***/ (function(module, exports, __webpack_require__) {

var baseTrim = __webpack_require__("jXQH"),
    isObject = __webpack_require__("GoyQ"),
    isSymbol = __webpack_require__("/9aa");
/** Used as references for various `Number` constants. */


var NAN = 0 / 0;
/** Used to detect bad signed hexadecimal string values. */

var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;
/** Used to detect binary string values. */

var reIsBinary = /^0b[01]+$/i;
/** Used to detect octal string values. */

var reIsOctal = /^0o[0-7]+$/i;
/** Built-in method references without a dependency on `root`. */

var freeParseInt = parseInt;
/**
 * Converts `value` to a number.
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to process.
 * @returns {number} Returns the number.
 * @example
 *
 * _.toNumber(3.2);
 * // => 3.2
 *
 * _.toNumber(Number.MIN_VALUE);
 * // => 5e-324
 *
 * _.toNumber(Infinity);
 * // => Infinity
 *
 * _.toNumber('3.2');
 * // => 3.2
 */

function toNumber(value) {
  if (typeof value == 'number') {
    return value;
  }

  if (isSymbol(value)) {
    return NAN;
  }

  if (isObject(value)) {
    var other = typeof value.valueOf == 'function' ? value.valueOf() : value;
    value = isObject(other) ? other + '' : other;
  }

  if (typeof value != 'string') {
    return value === 0 ? value : +value;
  }

  value = baseTrim(value);
  var isBinary = reIsBinary.test(value);
  return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value;
}

module.exports = toNumber;

/***/ }),

/***/ "tMB7":
/***/ (function(module, exports, __webpack_require__) {

var assocIndexOf = __webpack_require__("y1pI");
/**
 * Gets the list cache value for `key`.
 *
 * @private
 * @name get
 * @memberOf ListCache
 * @param {string} key The key of the value to get.
 * @returns {*} Returns the entry value.
 */


function listCacheGet(key) {
  var data = this.__data__,
      index = assocIndexOf(data, key);
  return index < 0 ? undefined : data[index][1];
}

module.exports = listCacheGet;

/***/ }),

/***/ "tOiH":
/***/ (function(module) {

module.exports = JSON.parse("{\"sha224WithRSAEncryption\":{\"sign\":\"rsa\",\"hash\":\"sha224\",\"id\":\"302d300d06096086480165030402040500041c\"},\"RSA-SHA224\":{\"sign\":\"ecdsa/rsa\",\"hash\":\"sha224\",\"id\":\"302d300d06096086480165030402040500041c\"},\"sha256WithRSAEncryption\":{\"sign\":\"rsa\",\"hash\":\"sha256\",\"id\":\"3031300d060960864801650304020105000420\"},\"RSA-SHA256\":{\"sign\":\"ecdsa/rsa\",\"hash\":\"sha256\",\"id\":\"3031300d060960864801650304020105000420\"},\"sha384WithRSAEncryption\":{\"sign\":\"rsa\",\"hash\":\"sha384\",\"id\":\"3041300d060960864801650304020205000430\"},\"RSA-SHA384\":{\"sign\":\"ecdsa/rsa\",\"hash\":\"sha384\",\"id\":\"3041300d060960864801650304020205000430\"},\"sha512WithRSAEncryption\":{\"sign\":\"rsa\",\"hash\":\"sha512\",\"id\":\"3051300d060960864801650304020305000440\"},\"RSA-SHA512\":{\"sign\":\"ecdsa/rsa\",\"hash\":\"sha512\",\"id\":\"3051300d060960864801650304020305000440\"},\"RSA-SHA1\":{\"sign\":\"rsa\",\"hash\":\"sha1\",\"id\":\"3021300906052b0e03021a05000414\"},\"ecdsa-with-SHA1\":{\"sign\":\"ecdsa\",\"hash\":\"sha1\",\"id\":\"\"},\"sha256\":{\"sign\":\"ecdsa\",\"hash\":\"sha256\",\"id\":\"\"},\"sha224\":{\"sign\":\"ecdsa\",\"hash\":\"sha224\",\"id\":\"\"},\"sha384\":{\"sign\":\"ecdsa\",\"hash\":\"sha384\",\"id\":\"\"},\"sha512\":{\"sign\":\"ecdsa\",\"hash\":\"sha512\",\"id\":\"\"},\"DSA-SHA\":{\"sign\":\"dsa\",\"hash\":\"sha1\",\"id\":\"\"},\"DSA-SHA1\":{\"sign\":\"dsa\",\"hash\":\"sha1\",\"id\":\"\"},\"DSA\":{\"sign\":\"dsa\",\"hash\":\"sha1\",\"id\":\"\"},\"DSA-WITH-SHA224\":{\"sign\":\"dsa\",\"hash\":\"sha224\",\"id\":\"\"},\"DSA-SHA224\":{\"sign\":\"dsa\",\"hash\":\"sha224\",\"id\":\"\"},\"DSA-WITH-SHA256\":{\"sign\":\"dsa\",\"hash\":\"sha256\",\"id\":\"\"},\"DSA-SHA256\":{\"sign\":\"dsa\",\"hash\":\"sha256\",\"id\":\"\"},\"DSA-WITH-SHA384\":{\"sign\":\"dsa\",\"hash\":\"sha384\",\"id\":\"\"},\"DSA-SHA384\":{\"sign\":\"dsa\",\"hash\":\"sha384\",\"id\":\"\"},\"DSA-WITH-SHA512\":{\"sign\":\"dsa\",\"hash\":\"sha512\",\"id\":\"\"},\"DSA-SHA512\":{\"sign\":\"dsa\",\"hash\":\"sha512\",\"id\":\"\"},\"DSA-RIPEMD160\":{\"sign\":\"dsa\",\"hash\":\"rmd160\",\"id\":\"\"},\"ripemd160WithRSA\":{\"sign\":\"rsa\",\"hash\":\"rmd160\",\"id\":\"3021300906052b2403020105000414\"},\"RSA-RIPEMD160\":{\"sign\":\"rsa\",\"hash\":\"rmd160\",\"id\":\"3021300906052b2403020105000414\"},\"md5WithRSAEncryption\":{\"sign\":\"rsa\",\"hash\":\"md5\",\"id\":\"3020300c06082a864886f70d020505000410\"},\"RSA-MD5\":{\"sign\":\"rsa\",\"hash\":\"md5\",\"id\":\"3020300c06082a864886f70d020505000410\"}}");

/***/ }),

/***/ "tQZC":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("path", {
  d: "M35.561 30.684L32 20V3a1 1 0 0 0-1-1H5a1 1 0 0 0-1 1v17L.439 30.684A1 1 0 0 0 1.387 32h33.226a1 1 0 0 0 .948-1.316zM8 6h20v12H8zm4.155 23.379l.75-3A.5.5 0 0 1 13.39 26h9.22a.5.5 0 0 1 .485.379l.75 3a.5.5 0 0 1-.485.621H12.64a.5.5 0 0 1-.485-.621z"
}));

/***/ }),

/***/ "tQvA":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-firstmile-shared/src/common/performance.ts
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2020 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
const record = {};
/**
 * Wrapper to manually time an asynchronous function.
 * @param name Key to time with
 * @param method Method to time
 */
async function measure(name, method) {
    const asyncFlow = console.AsyncTrace ? new console.AsyncTrace() : console;
    asyncFlow.time(name);
    const start = performance.now();
    console.log(`${start - window.perfGlobalStart} PERF - ${name} start`);
    record[name + ' start'] = start - window.perfGlobalStart;
    return await method().finally(() => {
        const done = performance.now();
        const time = done - start;
        console.log(`${done - window.perfGlobalStart} PERF - ${name} done: ${time}`);
        asyncFlow.timeEnd(name);
        record[name + ' done'] = done - window.perfGlobalStart;
    });
}
/**
 * Logs a message tagged with performance numbers
 * @param message Message to log
 */
function LogPerformance(message) {
    const done = performance.now();
    const time = done - window.perfGlobalStart;
    console.log(`${time} PERF - ${message}`);
    record[message] = time;
}
/**
 * Decorator that times asynchronous functions
 * @param key Key to measure time with
 */
function Time(key) {
    return function (target, functionName, descriptor) {
        const x = descriptor.value;
        descriptor.value = async function (...args) {
            const self = this;
            await measure(key, async () => {
                await x.apply(self, args);
            });
        };
    };
}
/**
 * Gets a record of all the performance logging
 * done so far.
 */
function getRecord() {
    return record;
}

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-firstmile-shared/src/common/Utils.ts
var Utils = __webpack_require__("sdkb");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-firstmile-shared/src/common/Vulcan.ts
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2020 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
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;
};
var __metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var _a;


const TYPE_PREFIX = 'vulcan.SuiteMessage.';
const RESPONSE = 'Response';
const REQUEST = 'Request';
const PROGRESS = 'Progress';
/**
 * Utilities for efficient and dry communication over vulcan.
 */
class Vulcan_Vulcan {
    constructor() {
        /** Map to contains event listeners to turn off. */
        this.listeners = {};
        if (window.require) {
            const uxp = window.require('uxp');
            this.control = uxp.vulcan.control;
            this.dispatcher = uxp.vulcan.dispatcher;
            this.message = uxp.vulcan.message;
        }
    }
    async getAppProcess(specifier) {
        const targetToSAPCode = {
            cclibraries: 'LIBS',
            ccxprocess: 'CCXP',
        };
        const newVulcanApi = !!this.control.getInstalledAppsEx;
        const apiCall = newVulcanApi ? this.control.getInstalledAppsEx : this.control.getInstalledApps;
        const apiSpecifier = newVulcanApi ? targetToSAPCode[specifier] || specifier : specifier;
        const apiField = newVulcanApi ? 'sapCode' : 'name';
        const apps = await apiCall();
        return apps.find(x => x[apiField] === apiSpecifier);
    }
    /**
     * Launches an app using vulcan.
     *
     * @param {string} specifier Vulcan specifier of the app to launch.
     * @returns {Promise<any>} The process.launch() result or undefined if it can't be launched.
     */
    async launchApp(specifier) {
        if (!this.control) {
            return;
        }
        try {
            const process = await this.getAppProcess(specifier);
            return process && (await process.launch());
        }
        catch (error) {
            console.warn(`Error when launching application with specifier ${specifier}: ${error}`);
            return;
        }
    }
    /**
     * Checks if the app with the given specificer is installed.
     *
     * @param {string} specifier Vulcan specifier of the app to launch.
     * @returns {Promise<boolean>} True if the app is installed and false otherwise.
     */
    async isAppInstalled(specifier) {
        if (!this.control) {
            return false;
        }
        try {
            const process = await this.getAppProcess(specifier);
            return !!process;
        }
        catch (error) {
            console.warn(`Error when checking if application with specifier ${specifier} is installed: ${error}`);
            return false;
        }
    }
    /**
     * Checks if the app with the given specificer is running.
     *
     * @param {string} specifier Vulcan specifier of the app to launch.
     * @returns {Promise<boolean>} True if the app is running and false otherwise.
     */
    async isAppRunning(specifier) {
        if (!this.control) {
            return false;
        }
        try {
            const process = await this.getAppProcess(specifier);
            return !!process && (await process.isRunning());
        }
        catch (error) {
            console.warn(`Error when checking if application with specifier ${specifier} is running: ${error}`);
            return false;
        }
    }
    async get(options) {
        if (!this.dispatcher) {
            throw 'Vulcan not present';
        }
        const responseEvent = options.type + RESPONSE;
        const requestEvent = options.type + REQUEST;
        const progressEvent = options.type + PROGRESS;
        const listener = new Promise((resolve, reject) => {
            this.on(responseEvent, resolve);
        });
        if (options.progress) {
            this.on(progressEvent, options.progress);
        }
        this.dispatch({ ...options, type: requestEvent });
        let data = null;
        const error = 'CCXProcess timed out';
        if (!options.timeout) {
            data = await listener;
        }
        else {
            data = await Promise.race([Object(Utils["b" /* timeout */])(options.timeout).then(() => error), listener]);
        }
        this.off(progressEvent);
        this.off(responseEvent);
        if (data === error) {
            throw new Error(error);
        }
        return data;
    }
    /**
     * Dispatches an event via Vulcan.
     *
     * @param {VulcanParams} param Parameters to pass to vulcan.
     */
    async dispatch({ type, target = 'CCXP', data }) {
        if (!this.dispatcher || !this.message) {
            return;
        }
        try {
            const apps = await this.dispatcher.getConnectedApplications();
            const app = apps.find(x => x.appId === target);
            app && app.dispatchMessage(new this.message(TYPE_PREFIX + type, JSON.stringify(data)));
        }
        catch (error) {
            console.warn(`Error when dispatching an event via Vulcan: ${error}`);
        }
    }
    /**
     * Listens to an event from Vulcan.
     *
     * @param {string} type Message type to listen to.
     * @param {Function} [cb] Method to call.
     */
    on(type, cb) {
        if (!this.dispatcher || !cb) {
            return;
        }
        this.listeners[type] = this.listeners[type] || {};
        this.listeners[type][cb.toString()] = e => {
            let data = e.payload;
            try {
                data = JSON.parse(data);
            }
            catch (ignore) {
                console.warn(`Vulcan:on('${type}') :: Failed to parse Vulcan message`);
            }
            cb(data, e);
        };
        this.dispatcher.addEventListener(TYPE_PREFIX + type, this.listeners[type][cb.toString()]);
    }
    /**
     * Stops listening to an event from Vulcan.
     *
     * @param {string} type Message type to listen to.
     * @param {Function} [cb] Method to turn off. Turns off all listeners if not supplied.
     */
    off(type, cb) {
        if (!this.dispatcher) {
            return;
        }
        const listeners = this.listeners[type] || {};
        if (cb && listeners[cb.toString()]) {
            this.dispatcher.removeEventListener(TYPE_PREFIX + type, listeners[cb.toString()]);
            delete listeners[cb.toString()];
        }
        else if (!cb) {
            Object.values(listeners).forEach(cb => this.dispatcher.removeEventListener(TYPE_PREFIX + type, cb));
            delete this.listeners[type];
        }
    }
}
__decorate([
    Time('Launch CCXProcess'),
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [String]),
    __metadata("design:returntype", typeof (_a = typeof Promise !== "undefined" && Promise) === "function" ? _a : Object)
], Vulcan_Vulcan.prototype, "launchApp", null);
const vulcan = new Vulcan_Vulcan();
/* harmony default export */ var common_Vulcan = __webpack_exports__["default"] = (vulcan);


/***/ }),

/***/ "tSWc":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var utils = __webpack_require__("w8CP");

var common = __webpack_require__("7ckf");

var assert = __webpack_require__("2j6C");

var rotr64_hi = utils.rotr64_hi;
var rotr64_lo = utils.rotr64_lo;
var shr64_hi = utils.shr64_hi;
var shr64_lo = utils.shr64_lo;
var sum64 = utils.sum64;
var sum64_hi = utils.sum64_hi;
var sum64_lo = utils.sum64_lo;
var sum64_4_hi = utils.sum64_4_hi;
var sum64_4_lo = utils.sum64_4_lo;
var sum64_5_hi = utils.sum64_5_hi;
var sum64_5_lo = utils.sum64_5_lo;
var BlockHash = common.BlockHash;
var sha512_K = [0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd, 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc, 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019, 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118, 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe, 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2, 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1, 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694, 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3, 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65, 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483, 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5, 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210, 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4, 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725, 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70, 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926, 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df, 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8, 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b, 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001, 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30, 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910, 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8, 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53, 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8, 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb, 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3, 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60, 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec, 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9, 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b, 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207, 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178, 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6, 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b, 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493, 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c, 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a, 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817];

function SHA512() {
  if (!(this instanceof SHA512)) return new SHA512();
  BlockHash.call(this);
  this.h = [0x6a09e667, 0xf3bcc908, 0xbb67ae85, 0x84caa73b, 0x3c6ef372, 0xfe94f82b, 0xa54ff53a, 0x5f1d36f1, 0x510e527f, 0xade682d1, 0x9b05688c, 0x2b3e6c1f, 0x1f83d9ab, 0xfb41bd6b, 0x5be0cd19, 0x137e2179];
  this.k = sha512_K;
  this.W = new Array(160);
}

utils.inherits(SHA512, BlockHash);
module.exports = SHA512;
SHA512.blockSize = 1024;
SHA512.outSize = 512;
SHA512.hmacStrength = 192;
SHA512.padLength = 128;

SHA512.prototype._prepareBlock = function _prepareBlock(msg, start) {
  var W = this.W; // 32 x 32bit words

  for (var i = 0; i < 32; i++) W[i] = msg[start + i];

  for (; i < W.length; i += 2) {
    var c0_hi = g1_512_hi(W[i - 4], W[i - 3]); // i - 2

    var c0_lo = g1_512_lo(W[i - 4], W[i - 3]);
    var c1_hi = W[i - 14]; // i - 7

    var c1_lo = W[i - 13];
    var c2_hi = g0_512_hi(W[i - 30], W[i - 29]); // i - 15

    var c2_lo = g0_512_lo(W[i - 30], W[i - 29]);
    var c3_hi = W[i - 32]; // i - 16

    var c3_lo = W[i - 31];
    W[i] = sum64_4_hi(c0_hi, c0_lo, c1_hi, c1_lo, c2_hi, c2_lo, c3_hi, c3_lo);
    W[i + 1] = sum64_4_lo(c0_hi, c0_lo, c1_hi, c1_lo, c2_hi, c2_lo, c3_hi, c3_lo);
  }
};

SHA512.prototype._update = function _update(msg, start) {
  this._prepareBlock(msg, start);

  var W = this.W;
  var ah = this.h[0];
  var al = this.h[1];
  var bh = this.h[2];
  var bl = this.h[3];
  var ch = this.h[4];
  var cl = this.h[5];
  var dh = this.h[6];
  var dl = this.h[7];
  var eh = this.h[8];
  var el = this.h[9];
  var fh = this.h[10];
  var fl = this.h[11];
  var gh = this.h[12];
  var gl = this.h[13];
  var hh = this.h[14];
  var hl = this.h[15];
  assert(this.k.length === W.length);

  for (var i = 0; i < W.length; i += 2) {
    var c0_hi = hh;
    var c0_lo = hl;
    var c1_hi = s1_512_hi(eh, el);
    var c1_lo = s1_512_lo(eh, el);
    var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl);
    var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl);
    var c3_hi = this.k[i];
    var c3_lo = this.k[i + 1];
    var c4_hi = W[i];
    var c4_lo = W[i + 1];
    var T1_hi = sum64_5_hi(c0_hi, c0_lo, c1_hi, c1_lo, c2_hi, c2_lo, c3_hi, c3_lo, c4_hi, c4_lo);
    var T1_lo = sum64_5_lo(c0_hi, c0_lo, c1_hi, c1_lo, c2_hi, c2_lo, c3_hi, c3_lo, c4_hi, c4_lo);
    c0_hi = s0_512_hi(ah, al);
    c0_lo = s0_512_lo(ah, al);
    c1_hi = maj64_hi(ah, al, bh, bl, ch, cl);
    c1_lo = maj64_lo(ah, al, bh, bl, ch, cl);
    var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo);
    var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo);
    hh = gh;
    hl = gl;
    gh = fh;
    gl = fl;
    fh = eh;
    fl = el;
    eh = sum64_hi(dh, dl, T1_hi, T1_lo);
    el = sum64_lo(dl, dl, T1_hi, T1_lo);
    dh = ch;
    dl = cl;
    ch = bh;
    cl = bl;
    bh = ah;
    bl = al;
    ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo);
    al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo);
  }

  sum64(this.h, 0, ah, al);
  sum64(this.h, 2, bh, bl);
  sum64(this.h, 4, ch, cl);
  sum64(this.h, 6, dh, dl);
  sum64(this.h, 8, eh, el);
  sum64(this.h, 10, fh, fl);
  sum64(this.h, 12, gh, gl);
  sum64(this.h, 14, hh, hl);
};

SHA512.prototype._digest = function digest(enc) {
  if (enc === 'hex') return utils.toHex32(this.h, 'big');else return utils.split32(this.h, 'big');
};

function ch64_hi(xh, xl, yh, yl, zh) {
  var r = xh & yh ^ ~xh & zh;
  if (r < 0) r += 0x100000000;
  return r;
}

function ch64_lo(xh, xl, yh, yl, zh, zl) {
  var r = xl & yl ^ ~xl & zl;
  if (r < 0) r += 0x100000000;
  return r;
}

function maj64_hi(xh, xl, yh, yl, zh) {
  var r = xh & yh ^ xh & zh ^ yh & zh;
  if (r < 0) r += 0x100000000;
  return r;
}

function maj64_lo(xh, xl, yh, yl, zh, zl) {
  var r = xl & yl ^ xl & zl ^ yl & zl;
  if (r < 0) r += 0x100000000;
  return r;
}

function s0_512_hi(xh, xl) {
  var c0_hi = rotr64_hi(xh, xl, 28);
  var c1_hi = rotr64_hi(xl, xh, 2); // 34

  var c2_hi = rotr64_hi(xl, xh, 7); // 39

  var r = c0_hi ^ c1_hi ^ c2_hi;
  if (r < 0) r += 0x100000000;
  return r;
}

function s0_512_lo(xh, xl) {
  var c0_lo = rotr64_lo(xh, xl, 28);
  var c1_lo = rotr64_lo(xl, xh, 2); // 34

  var c2_lo = rotr64_lo(xl, xh, 7); // 39

  var r = c0_lo ^ c1_lo ^ c2_lo;
  if (r < 0) r += 0x100000000;
  return r;
}

function s1_512_hi(xh, xl) {
  var c0_hi = rotr64_hi(xh, xl, 14);
  var c1_hi = rotr64_hi(xh, xl, 18);
  var c2_hi = rotr64_hi(xl, xh, 9); // 41

  var r = c0_hi ^ c1_hi ^ c2_hi;
  if (r < 0) r += 0x100000000;
  return r;
}

function s1_512_lo(xh, xl) {
  var c0_lo = rotr64_lo(xh, xl, 14);
  var c1_lo = rotr64_lo(xh, xl, 18);
  var c2_lo = rotr64_lo(xl, xh, 9); // 41

  var r = c0_lo ^ c1_lo ^ c2_lo;
  if (r < 0) r += 0x100000000;
  return r;
}

function g0_512_hi(xh, xl) {
  var c0_hi = rotr64_hi(xh, xl, 1);
  var c1_hi = rotr64_hi(xh, xl, 8);
  var c2_hi = shr64_hi(xh, xl, 7);
  var r = c0_hi ^ c1_hi ^ c2_hi;
  if (r < 0) r += 0x100000000;
  return r;
}

function g0_512_lo(xh, xl) {
  var c0_lo = rotr64_lo(xh, xl, 1);
  var c1_lo = rotr64_lo(xh, xl, 8);
  var c2_lo = shr64_lo(xh, xl, 7);
  var r = c0_lo ^ c1_lo ^ c2_lo;
  if (r < 0) r += 0x100000000;
  return r;
}

function g1_512_hi(xh, xl) {
  var c0_hi = rotr64_hi(xh, xl, 19);
  var c1_hi = rotr64_hi(xl, xh, 29); // 61

  var c2_hi = shr64_hi(xh, xl, 6);
  var r = c0_hi ^ c1_hi ^ c2_hi;
  if (r < 0) r += 0x100000000;
  return r;
}

function g1_512_lo(xh, xl) {
  var c0_lo = rotr64_lo(xh, xl, 19);
  var c1_lo = rotr64_lo(xl, xh, 29); // 61

  var c2_lo = shr64_lo(xh, xl, 6);
  var r = c0_lo ^ c1_lo ^ c2_lo;
  if (r < 0) r += 0x100000000;
  return r;
}

/***/ }),

/***/ "tT6x":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _SpEventUtils = __webpack_require__("XU6Z");

var _autobindDecorator = _interopRequireDefault(__webpack_require__("gKdT"));

var _RadioGroup = _interopRequireDefault(__webpack_require__("H6XU"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

const _excluded = ["vertical", "labelsBelow", "className", "children"];

var _class;

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

let SpUxpRadioGroup = (0, _autobindDecorator.default)(_class = class SpUxpRadioGroup extends _RadioGroup.default {
  constructor(props) {
    super(props);
    this.spRadioGroupRef = /*#__PURE__*/_react.default.createRef();
  } // Selected value for sp-radio-group cannot be set in the JSX element, needs to be done via JS after setState call.


  componentDidUpdate(prevProps) {
    this.updateRadioGroupSelected();
    this.updateAllEventListeners = !(0, _SpEventUtils.updateEventListeners)(this.spRadioGroupRef.current, prevProps, this.props, this.handleEvent, this.updateAllEventListeners);
  }

  componentDidMount() {
    // Selected value for sp-radio-group cannot be set in the JSX element, needs to be done via JS after setState call.
    this.updateRadioGroupSelected();
    (0, _SpEventUtils.attachEventListeners)(this.spRadioGroupRef.current, this.props, this.handleEvent);
  }

  componentWillUnmount() {
    (0, _SpEventUtils.removeEventListeners)(this.spRadioGroupRef.current, this.props, this.handleEvent);
  }

  handleEvent(event) {
    if (event.type === 'change') {
      const {
        selected
      } = event.target;
      this.setSelected(selected);
    }

    const eventName = Object.keys(this.props).filter(propName => propName.substr(2).toLowerCase() === event.type);

    if (this.props[eventName]) {
      this.props[eventName].call(event.target, event);
    }
  }

  setSelected(selectedValue) {
    if (!('selectedValue' in this.props)) {
      this.setState({
        selectedValue
      });
    }
  }

  updateRadioGroupSelected() {
    const {
      selectedValue
    } = this.state;
    const radioGroupRef = this.spRadioGroupRef.current;

    if (selectedValue && radioGroupRef) {
      radioGroupRef.selected = selectedValue;
    }
  }

  render() {
    const _this$props = this.props,
          {
      vertical,
      labelsBelow,
      className,
      children
    } = _this$props,
          otherProps = _objectWithoutProperties(_this$props, _excluded); // Below label is not present in sp-radio-group, need to pass to RadioGroup.


    if (labelsBelow) {
      return super.render();
    }

    return /*#__PURE__*/_react.default.createElement("sp-radio-group", _extends({
      ref: this.spRadioGroupRef,
      class: className,
      column: vertical ? true : null
    }, (0, _SpEventUtils.removeEventProps)(otherProps)), children);
  }

}) || _class;

exports.default = SpUxpRadioGroup;

/***/ }),

/***/ "tXLA":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = SpUxpFieldLabel;

var _propTypes = _interopRequireDefault(__webpack_require__("17x9"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

var _UxpFieldLabel = _interopRequireDefault(__webpack_require__("zvRM"));

const _excluded = ["label", "position", "children", "className", "labelFor", "necessity", "necessityIndicator", "style"];

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function ownKeys(object, enumerableOnly) {
  var keys = Object.keys(object);

  if (Object.getOwnPropertySymbols) {
    var symbols = Object.getOwnPropertySymbols(object);

    if (enumerableOnly) {
      symbols = symbols.filter(function (sym) {
        return Object.getOwnPropertyDescriptor(object, sym).enumerable;
      });
    }

    keys.push.apply(keys, symbols);
  }

  return keys;
}

function _objectSpread(target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i] != null ? arguments[i] : {};

    if (i % 2) {
      ownKeys(Object(source), true).forEach(function (key) {
        _defineProperty(target, key, source[key]);
      });
    } else if (Object.getOwnPropertyDescriptors) {
      Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
    } else {
      ownKeys(Object(source)).forEach(function (key) {
        Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
      });
    }
  }

  return target;
}

function _defineProperty(obj, key, value) {
  if (key in obj) {
    Object.defineProperty(obj, key, {
      value: value,
      enumerable: true,
      configurable: true,
      writable: true
    });
  } else {
    obj[key] = value;
  }

  return obj;
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

const labelStyle = {
  display: 'flex'
};

function getlabelStyle(position, style) {
  if (!position) {
    // For default/top position, React Spectrum field label has the display set to flex.
    return Object.assign({}, labelStyle, style);
  }

  return style;
}

function SpUxpFieldLabel(_ref) {
  let {
    label,
    position,
    children,
    className,
    labelFor,
    necessity,
    necessityIndicator,
    style
  } = _ref,
      otherProps = _objectWithoutProperties(_ref, _excluded);

  if (!(children || position === 'right')) {
    return /*#__PURE__*/_react.default.createElement("sp-label", _extends({
      style: getlabelStyle(position, style),
      htmlFor: labelFor,
      class: className,
      variant: position === 'left' ? 'side' : 'default',
      necessityindicator: necessityIndicator,
      isrequired: necessity === 'required' ? true : null
    }, otherProps), label);
  }

  const labelProps = _objectSpread({
    label,
    position,
    children,
    className,
    labelFor,
    necessity,
    necessityIndicator,
    style
  }, otherProps);

  return /*#__PURE__*/_react.default.createElement(_UxpFieldLabel.default, labelProps);
}

SpUxpFieldLabel.displayName = 'FieldLabel';
SpUxpFieldLabel.propTypes = {
  /**
   * String to display
   */
  label: _propTypes.default.string.isRequired,

  /**
   * Justification of the label text within its container. Setting this property
   * will situate the label container to the left of the form field, regardless
   * of the property value.
   */
  position: _propTypes.default.oneOf(['left', 'right']),

  /**
   * Custom classname to apply to the label
   */
  className: _propTypes.default.string,

  /**
   * Like in a form, with what input should the label be associated
   */
  labelFor: _propTypes.default.string,

  /**
   * Style for communicating whether the associated input is required or optional.
   */
  necessity: _propTypes.default.oneOf(['required', 'optional']),

  /**
   * 'icon' adds an asterix to the field label if necessity is required.
   * 'label' adds a '(required)' or '(optional)' string to the label depending on the necessity.
   */
  necessityIndicator: _propTypes.default.oneOf(['icon', 'label'])
};
SpUxpFieldLabel.defaultProps = {
  necessityIndicator: 'icon'
};

/***/ }),

/***/ "tcrS":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var Buffer = __webpack_require__("HDXh").Buffer;

var inherits = __webpack_require__("P7XM");

var HashBase = __webpack_require__("k+aG");

var ARRAY16 = new Array(16);
var zl = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13];
var zr = [5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11];
var sl = [11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6];
var sr = [8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11];
var hl = [0x00000000, 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xa953fd4e];
var hr = [0x50a28be6, 0x5c4dd124, 0x6d703ef3, 0x7a6d76e9, 0x00000000];

function RIPEMD160() {
  HashBase.call(this, 64); // state

  this._a = 0x67452301;
  this._b = 0xefcdab89;
  this._c = 0x98badcfe;
  this._d = 0x10325476;
  this._e = 0xc3d2e1f0;
}

inherits(RIPEMD160, HashBase);

RIPEMD160.prototype._update = function () {
  var words = ARRAY16;

  for (var j = 0; j < 16; ++j) words[j] = this._block.readInt32LE(j * 4);

  var al = this._a | 0;
  var bl = this._b | 0;
  var cl = this._c | 0;
  var dl = this._d | 0;
  var el = this._e | 0;
  var ar = this._a | 0;
  var br = this._b | 0;
  var cr = this._c | 0;
  var dr = this._d | 0;
  var er = this._e | 0; // computation

  for (var i = 0; i < 80; i += 1) {
    var tl;
    var tr;

    if (i < 16) {
      tl = fn1(al, bl, cl, dl, el, words[zl[i]], hl[0], sl[i]);
      tr = fn5(ar, br, cr, dr, er, words[zr[i]], hr[0], sr[i]);
    } else if (i < 32) {
      tl = fn2(al, bl, cl, dl, el, words[zl[i]], hl[1], sl[i]);
      tr = fn4(ar, br, cr, dr, er, words[zr[i]], hr[1], sr[i]);
    } else if (i < 48) {
      tl = fn3(al, bl, cl, dl, el, words[zl[i]], hl[2], sl[i]);
      tr = fn3(ar, br, cr, dr, er, words[zr[i]], hr[2], sr[i]);
    } else if (i < 64) {
      tl = fn4(al, bl, cl, dl, el, words[zl[i]], hl[3], sl[i]);
      tr = fn2(ar, br, cr, dr, er, words[zr[i]], hr[3], sr[i]);
    } else {
      // if (i<80) {
      tl = fn5(al, bl, cl, dl, el, words[zl[i]], hl[4], sl[i]);
      tr = fn1(ar, br, cr, dr, er, words[zr[i]], hr[4], sr[i]);
    }

    al = el;
    el = dl;
    dl = rotl(cl, 10);
    cl = bl;
    bl = tl;
    ar = er;
    er = dr;
    dr = rotl(cr, 10);
    cr = br;
    br = tr;
  } // update state


  var t = this._b + cl + dr | 0;
  this._b = this._c + dl + er | 0;
  this._c = this._d + el + ar | 0;
  this._d = this._e + al + br | 0;
  this._e = this._a + bl + cr | 0;
  this._a = t;
};

RIPEMD160.prototype._digest = function () {
  // create padding and handle blocks
  this._block[this._blockOffset++] = 0x80;

  if (this._blockOffset > 56) {
    this._block.fill(0, this._blockOffset, 64);

    this._update();

    this._blockOffset = 0;
  }

  this._block.fill(0, this._blockOffset, 56);

  this._block.writeUInt32LE(this._length[0], 56);

  this._block.writeUInt32LE(this._length[1], 60);

  this._update(); // produce result


  var buffer = Buffer.alloc ? Buffer.alloc(20) : new Buffer(20);
  buffer.writeInt32LE(this._a, 0);
  buffer.writeInt32LE(this._b, 4);
  buffer.writeInt32LE(this._c, 8);
  buffer.writeInt32LE(this._d, 12);
  buffer.writeInt32LE(this._e, 16);
  return buffer;
};

function rotl(x, n) {
  return x << n | x >>> 32 - n;
}

function fn1(a, b, c, d, e, m, k, s) {
  return rotl(a + (b ^ c ^ d) + m + k | 0, s) + e | 0;
}

function fn2(a, b, c, d, e, m, k, s) {
  return rotl(a + (b & c | ~b & d) + m + k | 0, s) + e | 0;
}

function fn3(a, b, c, d, e, m, k, s) {
  return rotl(a + ((b | ~c) ^ d) + m + k | 0, s) + e | 0;
}

function fn4(a, b, c, d, e, m, k, s) {
  return rotl(a + (b & d | c & ~d) + m + k | 0, s) + e | 0;
}

function fn5(a, b, c, d, e, m, k, s) {
  return rotl(a + (b ^ (c | ~d)) + m + k | 0, s) + e | 0;
}

module.exports = RIPEMD160;

/***/ }),

/***/ "te/g":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXPORTS
__webpack_require__.d(__webpack_exports__, "a", function() { return /* reexport */ packages_CDOView_CDOView; });
__webpack_require__.d(__webpack_exports__, "c", function() { return /* reexport */ GridView["b" /* GridViewPlaceholder */]; });
__webpack_require__.d(__webpack_exports__, "b", function() { return /* reexport */ CDOView_GridItem["a" /* GridItemPlaceholder */]; });
__webpack_require__.d(__webpack_exports__, "e", function() { return /* reexport */ ListView_ListViewPlaceholder; });
__webpack_require__.d(__webpack_exports__, "d", function() { return /* reexport */ ListItem_ListItemPlaceholder; });

// UNUSED EXPORTS: GridView, GridItem, ListView, ListItem

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__("q1tI");
var react_default = /*#__PURE__*/__webpack_require__.n(react);

// EXTERNAL MODULE: ./node_modules/mobx/lib/mobx.module.js
var mobx_module = __webpack_require__("2vnA");

// EXTERNAL MODULE: ./node_modules/mobx-react/index.module.js
var index_module = __webpack_require__("okNM");

// EXTERNAL MODULE: ./node_modules/classnames/index.js
var classnames = __webpack_require__("TSYQ");
var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);

// EXTERNAL MODULE: ./node_modules/react-intl-cdo/lib/index.es.js + 1 modules
var index_es = __webpack_require__("VIzJ");

// EXTERNAL MODULE: ./node_modules/react-virtualized/dist/es/index.js + 67 modules
var es = __webpack_require__("c7k8");

// EXTERNAL MODULE: ./node_modules/@adobe/react-virtualized/dist/es/index.js + 65 modules
var dist_es = __webpack_require__("UaZ8");

// EXTERNAL MODULE: ./node_modules/lodash/throttle.js
var throttle = __webpack_require__("DzJC");
var throttle_default = /*#__PURE__*/__webpack_require__.n(throttle);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Checkbox/index.js
var Checkbox = __webpack_require__("L+OI");
var Checkbox_default = /*#__PURE__*/__webpack_require__.n(Checkbox);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/FocusManager/FocusManager.tsx + 3 modules
var FocusManager = __webpack_require__("QuN5");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/utils/ensure-focus-on-items.ts
var ensure_focus_on_items = __webpack_require__("6som");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/utils/metrics.ts
var metrics = __webpack_require__("rjSc");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/utils/utils.ts
var utils = __webpack_require__("FdDf");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/ProjectAnalytics.ts
var ProjectAnalytics = __webpack_require__("mm/P");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/utils/react-virtualized-change-props.ts
var react_virtualized_change_props = __webpack_require__("Lg+r");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/utils/constants.ts
var constants = __webpack_require__("bXP0");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/utils/strings.ts
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
/**
 * Capitalize first letter in word.
 */
function capitalize(string = '') {
    return string.charAt(0).toUpperCase() + string.slice(1);
}

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/stores/constants.ts
var stores_constants = __webpack_require__("q0hk");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/ErrorBoundary.tsx
var ErrorBoundary = __webpack_require__("jSb8");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/SortDropdown.tsx
var SortDropdown = __webpack_require__("qv4D");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/styles/HeaderColumn.css
var styles_HeaderColumn = __webpack_require__("htMG");
var HeaderColumn_default = /*#__PURE__*/__webpack_require__.n(styles_HeaderColumn);

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/HeaderColumn.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2019 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/







class HeaderColumn_HeaderColumn extends react_default.a.Component {
    constructor() {
        super(...arguments);
        this.onLabelClick = () => {
            const { uxSortColumn, onColumnClick, isSortable } = this.props;
            if (isSortable) {
                onColumnClick === null || onColumnClick === void 0 ? void 0 : onColumnClick(uxSortColumn);
            }
        };
        this.onKeyDown = e => {
            switch (e.keyCode) {
                case constants["l" /* SPACE_KEY_CODE */]:
                case constants["d" /* ENTER_KEY_CODE */]:
                    this.onLabelClick();
                    break;
                default:
                    break;
            }
        };
    }
    renderHeaderColumn() {
        const { className, id, uxSortColumn, label, isActiveSort, isSortable, activeSortDirection, columnType, selectionDisabled, ...otherProps } = this.props;
        const role = isSortable ? 'button' : 'text';
        const tabIndex = isSortable ? 0 : -1;
        return (react_default.a.createElement("div", Object.assign({ className: classnames_default()(className && HeaderColumn_default.a[className], HeaderColumn_default.a.column, HeaderColumn_default.a[uxSortColumn], {
                [HeaderColumn_default.a.sortable]: isSortable,
                [HeaderColumn_default.a.noSelectBox]: selectionDisabled,
            }, HeaderColumn_default.a[columnType]), id: id, onClick: this.onLabelClick, onKeyDown: this.onKeyDown, tabIndex: tabIndex, role: role }, otherProps),
            react_default.a.createElement("div", { className: classnames_default()(HeaderColumn_default.a.textWrapper, {
                    [HeaderColumn_default.a.sortable]: isSortable,
                    [HeaderColumn_default.a.activeSort]: isActiveSort,
                }) },
                react_default.a.createElement("span", { className: HeaderColumn_default.a.text }, label),
                isActiveSort && (react_default.a.createElement("div", { className: HeaderColumn_default.a.sortArrowWrapper, id: activeSortDirection === stores_constants["h" /* UXSortDir */].desc
                        ? 'CDOList_SortDescending'
                        : 'CDOList_SortAscending' },
                    react_default.a.createElement(SortDropdown["a" /* SortArrow */], { activeSortDirection: activeSortDirection }))))));
    }
    render() {
        const { id } = this.props;
        return (react_default.a.createElement(ErrorBoundary["a" /* default */], { message: `ListView.${id} failed to render` }, this.renderHeaderColumn()));
    }
}
/* harmony default export */ var CDOView_HeaderColumn = (HeaderColumn_HeaderColumn);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Menu/index.js
var Menu = __webpack_require__("kzNO");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/utils/stop-propagation.ts
var stop_propagation = __webpack_require__("m8Tk");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/styles/DropdownMenu.css
var styles_DropdownMenu = __webpack_require__("CsCj");
var DropdownMenu_default = /*#__PURE__*/__webpack_require__.n(styles_DropdownMenu);

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/DropdownMenu.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2019 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/







const POPOVER_SPACING_MEDIUM = 6;
/**
 * Replacement for ReactSpectrum <Dropdown> (not in UXP). Also encapsulate the ugly react-spectrum-uxp
 * `popupAt` which seems entirely unnecessary since <DropdownButton> works without it. Also encapsulate the broken
 * way that react-spectrum-uxp handles the `onSelect` event for <Menu>. On web, it returns the value of the
 * MenuItem that was clicked. In UXP, it returns some event object. ¯\_(ツ)_/¯
 *
 * Also, there was a design request to have the label rendered in ALL CAPS, not the menu items. Since UXP doesn't
 * support text transform, this
 */
class DropdownMenu_DropdownMenu extends react["Component"] {
    constructor() {
        super(...arguments);
        this.state = {
            isMenuOpen: false,
        };
        this.triggerRef = react_default.a.createRef();
        this.menuRef = react_default.a.createRef();
        this.onClickAway = () => {
            this.setState({ isMenuOpen: false });
        };
        this.onMenuClick = e => {
            // React uses event delegation, which means for events that bubble, addEventListener handlers are run first,
            // so it's too late to call stopPropagation. Using `onClickCapture` instead of `onClick` ensures this event
            // runs before the ones from addEventListener.
            // Also stop from bubbling to addEventListener events
            Object(stop_propagation["a" /* default */])(e, true);
            const { options, onClick } = this.props;
            // Allow onClick callback to cancel showing the menu
            if (onClick && onClick(e) === false) {
                return;
            }
            // Don't open menu if there are no items
            if (options.length === 0) {
                return;
            }
            this.setState({
                isMenuOpen: true,
            }, () => {
                // UXP doesn't render the native menu unless you use popupAt, which appears to be injected at runtime
                // only on UXP.
                if (this.menuRef.current.popupAt) {
                    const menuPosition = utils["a" /* default */].calculatePosition(this.triggerRef.current);
                    this.menuRef.current.popupAt(menuPosition.left, menuPosition.top +
                        this.triggerRef.current.clientHeight +
                        POPOVER_SPACING_MEDIUM);
                }
            });
        };
        this.onMenuSelect = eventOrValue => {
            const { onSelect } = this.props;
            this.setState({ isMenuOpen: false });
            // spectrum-UXP returns some synthetic event
            if (eventOrValue.target) {
                onSelect(eventOrValue.target.getAttribute('value'));
            }
            else {
                onSelect(eventOrValue);
            }
        };
    }
    componentDidMount() {
        document.addEventListener('click', this.onClickAway);
    }
    componentWillUnmount() {
        document.removeEventListener('click', this.onClickAway);
    }
    render() {
        const { className, id, label, options } = this.props;
        const { isMenuOpen } = this.state;
        return (react_default.a.createElement("div", { className: classnames_default()(DropdownMenu_default.a.dropdown, className && DropdownMenu_default.a[className]) },
            react_default.a.createElement("div", { className: DropdownMenu_default.a.dropdownValueText, onClickCapture: this.onMenuClick, ref: this.triggerRef }, label),
            react_default.a.createElement(ErrorBoundary["a" /* default */], { message: "DropdownMenu failed to render" },
                react_default.a.createElement("div", { className: DropdownMenu_default.a.dropdownWrapper }, isMenuOpen && (react_default.a.createElement(Menu["Menu"], { placement: "bottom", ref: this.menuRef, onSelect: this.onMenuSelect }, options.map(option => (react_default.a.createElement(Menu["MenuItem"], { selected: option.selected, key: option.id, id: option.id, value: option.value, label: option.label })))))))));
    }
}
/* harmony default export */ var CDOView_DropdownMenu = (DropdownMenu_DropdownMenu);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/stores/SelectionStore.ts
var SelectionStore = __webpack_require__("fr3g");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/UnableToOpenItemWarning.tsx
var UnableToOpenItemWarning = __webpack_require__("+UvZ");

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Heading/index.js
var Heading = __webpack_require__("8bOP");
var Heading_default = /*#__PURE__*/__webpack_require__.n(Heading);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/OverlayTrigger/index.js
var OverlayTrigger = __webpack_require__("uYrR");
var OverlayTrigger_default = /*#__PURE__*/__webpack_require__.n(OverlayTrigger);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/ActionMenu.tsx
var ActionMenu = __webpack_require__("IGtv");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/CloudStatusIcon.tsx + 4 modules
var CloudStatusIcon = __webpack_require__("MdaA");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/Dimmer.tsx
var Dimmer = __webpack_require__("D8iS");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/ImageView.tsx + 4 modules
var ImageView = __webpack_require__("vVTB");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/Rename.tsx + 1 modules
var Rename = __webpack_require__("UoXk");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/svgs/Folder.tsx
var Folder = __webpack_require__("ZigE");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/images/Spaces.svg
function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}


/* harmony default export */ var Spaces = (({
  styles = {},
  ...props
}) => /*#__PURE__*/react_default.a.createElement("svg", _extends({
  id: "icons",
  xmlns: "http://www.w3.org/2000/svg",
  width: "18",
  height: "18",
  viewBox: "0 0 18 18"
}, props), /*#__PURE__*/react_default.a.createElement("defs", null), /*#__PURE__*/react_default.a.createElement("ellipse", {
  className: styles["fill"] || "fill",
  cx: "1.59",
  cy: "6.688",
  rx: "1.533",
  ry: "1.507"
}), /*#__PURE__*/react_default.a.createElement("ellipse", {
  className: styles["fill"] || "fill",
  cx: "15.524",
  cy: "1.718",
  rx: "1.533",
  ry: "1.507"
}), /*#__PURE__*/react_default.a.createElement("ellipse", {
  className: styles["fill"] || "fill",
  cx: "13.043",
  cy: "16.282",
  rx: "1.533",
  ry: "1.507"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["fill"] || "fill",
  d: "M15.036 8.378a1.05 1.05 0 0 1-1.05-1.048 3.225 3.225 0 0 0-1.167-2.483 3.373 3.373 0 0 0-2.664-.732 1.05 1.05 0 0 1-.311-2.077 5.478 5.478 0 0 1 4.318 1.194 5.323 5.323 0 0 1 1.924 4.1 1.05 1.05 0 0 1-1.048 1.051z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["fill"] || "fill",
  d: "M10.522 14.647a5.5 5.5 0 0 1-2.755-.74 1.05 1.05 0 0 1 1.05-1.819 3.389 3.389 0 0 0 2.831.266 3.291 3.291 0 0 0 1.983-1.93 1.05 1.05 0 0 1 1.962.748 5.388 5.388 0 0 1-3.244 3.161 5.447 5.447 0 0 1-1.827.314z"
}), /*#__PURE__*/react_default.a.createElement("path", {
  className: styles["fill"] || "fill",
  d: "M5.5 11.776a1.048 1.048 0 0 1-.817-.39 5.3 5.3 0 0 1 1.468-7.943 1.05 1.05 0 1 1 1.061 1.813 3.257 3.257 0 0 0-1.577 2.235 3.212 3.212 0 0 0 .676 2.575 1.05 1.05 0 0 1-.816 1.71z"
})));
// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Tooltip/index.js
var Tooltip = __webpack_require__("DUuf");
var Tooltip_default = /*#__PURE__*/__webpack_require__.n(Tooltip);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/ViewItem.tsx
var ViewItem = __webpack_require__("lqMc");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/components/SpaceContributorMetadata.tsx + 2 modules
var SpaceContributorMetadata = __webpack_require__("T5i7");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/styles/ListItem.css
var styles_ListItem = __webpack_require__("jj0b");
var ListItem_default = /*#__PURE__*/__webpack_require__.n(styles_ListItem);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/components/Rendition/MosaicRendition.tsx + 5 modules
var MosaicRendition = __webpack_require__("yp3d");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/constants.ts
var utils_constants = __webpack_require__("YVc3");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/formatNameWithNonBreakingSpace.ts
var formatNameWithNonBreakingSpace = __webpack_require__("LYaz");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/dateUtils.tsx
var dateUtils = __webpack_require__("TxTg");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/stores/SharedStore.ts + 6 modules
var SharedStore = __webpack_require__("jmEq");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/ListItem.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
/* eslint-disable max-classes-per-file */
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;
};


























const defaultProps = {
    showActionMenuOnHover: true,
};
/**
 * UI component encapsulating an individual asset element item.
 */
let ListItem_ListItem = class ListItem extends ViewItem["a" /* default */] {
    constructor() {
        super(...arguments);
        this.state = {
            actionMenuFocused: false,
            actionMenuOpened: false,
        };
    }
    /**
     * Creates the file size element
     *
     * @param {Number} size	byte size of the file
     * @return {Component} for the formatted file size.
     */
    formatFileSize(size) {
        const { intl } = this.props;
        let content;
        let ariaLabel = '';
        if (!size) {
            content = react["createElement"](react["Fragment"], null, "\u2013");
        }
        else {
            const { displayValue, abbrev } = utils["a" /* default */].formatFileSize(parseInt(size, 10), intl);
            content = react["createElement"](react["Fragment"], null, `${displayValue} ${abbrev}`);
            const fileSizeLocale = intl.formatMessage({ id: 'listItem.fileSize' });
            ariaLabel = `${fileSizeLocale} ${displayValue} ${abbrev}`;
        }
        return (react["createElement"]("div", { id: "CDOListItem_Size", "aria-label": ariaLabel, role: "text" }, content));
    }
    get shouldSelectOnKeyDown() {
        const { singleSelection } = this.props;
        return !singleSelection && !this.disabled;
    }
    renderSelectboxColumn() {
        const { intl, isSelected } = this.props;
        const ariaLabel = intl.formatMessage({ id: 'checkbox.select' });
        return (react["createElement"]("div", { key: "selectbox", id: `CDOListItem_Selected_${isSelected}`, className: classnames_default()(ListItem_default.a.checkbox, ListItem_default.a.column, {
                [ListItem_default.a.selected]: isSelected,
                [ListItem_default.a.disabled]: this.shouldSelectionBeDisabled,
            }), onClick: stop_propagation["a" /* default */], "aria-selected": isSelected, "aria-label": ariaLabel, role: "gridcell", "aria-colindex": 1 },
            react["createElement"](Checkbox_default.a, { id: "CDOListItem_Checkbox", tabIndex: -1, checked: isSelected, renderLabel: false, onClick: !this.shouldSelectionBeDisabled && this.onCheckboxSelection, "data-test-id": "ListItem__checkbox" })));
    }
    renderThumbAndName() {
        const { element, defaultRendition, mobile, renderTooltip, isOffline, renditionType, hideCloudStatusIcon, } = this.props;
        const rendition = (element === null || element === void 0 ? void 0 : element.rendition) !== '' && typeof element.rendition === 'string'
            ? element.rendition
            : defaultRendition;
        return (react["createElement"]("div", { key: "info", className: classnames_default()(ListItem_default.a.info, ListItem_default.a.column), role: "gridcell", "aria-colindex": 2 },
            react["createElement"]("div", { className: classnames_default()(ListItem_default.a.asset, {
                    [ListItem_default.a.noSelectBox]: this.shouldSelectionBeDisabled,
                    [ListItem_default.a.mobile]: mobile,
                }) },
                element.isProject ? (react["createElement"](Dimmer["a" /* Dimmer */], { dim: this.disabled },
                    react["createElement"]("div", { "data-test-id": `ListItem__${element.color}`, className: ListItem_default.a.colorBox, style: { background: element.color } },
                        react["createElement"](Spaces, { className: ListItem_default.a.colorBoxIcon })))) : (react["createElement"]("div", { className: ListItem_default.a.container },
                    react["createElement"]("div", { className: ListItem_default.a.renditionWrapper },
                        react["createElement"](Dimmer["a" /* Dimmer */], { dim: this.disabled }, element.isFolder ? (react["createElement"](Folder["a" /* default */], { theme: SharedStore["d" /* sharedStore */].theme })) : renditionType === 'mosaic' ||
                            renditionType === 'mosaicMini' ? (react["createElement"](MosaicRendition["a" /* default */], { renditionGrid: {
                                main: element.renditionGridMain,
                                tiles: element.renditionGridTiles,
                            } })) : (react["createElement"](ImageView["a" /* default */], { element: element, className: ListItem_default.a.rendition, id: "CDOListItem_Rendition", draggable: false })))))),
                react["createElement"]("div", { className: ListItem_default.a.nameWrapper },
                    react["createElement"]("div", { id: "CDOListItem_Name", className: ListItem_default.a.name, "aria-label": element.title, role: "link" },
                        element.isProject ? (react["createElement"](OverlayTrigger_default.a, { placement: "bottom" },
                            react["createElement"](Heading_default.a, { "data-test-id": "ListItem__name", variant: "subtitle3" }, Object(formatNameWithNonBreakingSpace["a" /* default */])(element.title)),
                            react["createElement"](Tooltip_default.a, null, element.title))) : (react["createElement"](Rename["b" /* default */], { name: Object(formatNameWithNonBreakingSpace["a" /* default */])(element.title), tooltip: renderTooltip && renderTooltip(element), renameState: this.renameState, renameCallbacks: element.renameCallbacks, "data-test-id": "ListItem__name" })),
                        this.renderMetadata()))),
            !hideCloudStatusIcon && (react["createElement"](CloudStatusIcon["a" /* default */], { className: 'ListItem', element: element, isOffline: !!isOffline, "data-test-id": "ListItem__cloudStatus" }))));
    }
    renderTimeAgo(date, modifiedLocale) {
        const timeAgo = Object(dateUtils["b" /* formatTimeAgo */])(date, this.props.intl.locale);
        return react["createElement"]("span", { "aria-label": `${modifiedLocale} ${timeAgo}` }, timeAgo);
    }
    renderDateColumn(date, id) {
        const modifiedLocale = this.props.intl.formatMessage({ id: 'header.DateModified' });
        const dateString = date >= Date.now() - utils_constants["M" /* YEAR_IN_MS */] ? (this.renderTimeAgo(date, modifiedLocale)) : (react["createElement"](index_es["a" /* FormattedDate */], { value: date }, msg => (react["createElement"]("span", { id: `CDOListItem_${id}`, "aria-label": `${modifiedLocale} ${msg}` }, msg))));
        const props = {
            key: 'date',
            className: classnames_default()(ListItem_default.a.date, ListItem_default.a.column),
            'data-test-id': `ListItem__${id}`,
            role: 'gridcell',
            'aria-colindex': 4,
        };
        if (this.props.element.isProject) {
            return (react["createElement"](Heading_default.a, Object.assign({ variant: "subtitle3" }, props), dateString));
        }
        /* eslint-disable react/no-children-prop */
        return react["createElement"]("div", Object.assign({}, props), dateString);
        /* eslint-enable */
    }
    renderSizeColumn() {
        const { element } = this.props;
        return (react["createElement"]("div", { key: "size", className: classnames_default()(ListItem_default.a.size, ListItem_default.a.column), "data-test-id": "ListItem__size", role: "gridcell", "aria-colindex": 3 }, this.formatFileSize(element.size)));
    }
    renderTeamColumn() {
        const { element } = this.props;
        let teamMetaData;
        if (element.isProject) {
            const project = element.externalData;
            const teamName = project.teamName ? project.teamName.toLocaleUpperCase() : '';
            const orgName = project.repositoryName
                ? project.repositoryName.toLocaleUpperCase()
                : '';
            teamMetaData = (react["createElement"](OverlayTrigger_default.a, { placement: "bottom" },
                react["createElement"]("div", { className: ListItem_default.a.teamMetaData },
                    teamName,
                    orgName && (react["createElement"](react["Fragment"], null,
                        react["createElement"]("span", { className: ListItem_default.a.dotSeparator }, "\u2022"),
                        orgName))),
                react["createElement"](Tooltip_default.a, { className: ListItem_default.a.metaDataTooltip },
                    teamName,
                    orgName && (react["createElement"](react["Fragment"], null,
                        react["createElement"]("span", { className: ListItem_default.a.dotSeparator }, "\u2022"),
                        orgName)))));
        }
        return (react["createElement"]("div", { key: "team", className: classnames_default()(ListItem_default.a.team, ListItem_default.a.column), "data-test-id": "ListItem__team", role: "gridcell", "aria-colindex": 3 }, teamMetaData));
    }
    renderSharingColumn() {
        const { element } = this.props;
        let shareContent;
        if (element.isProject) {
            shareContent = (react["createElement"](SpaceContributorMetadata["a" /* default */], { space: element.externalData, mode: "list" }));
        }
        return (react["createElement"]("div", { key: "sharing", className: classnames_default()(ListItem_default.a.sharing, ListItem_default.a.column), role: "gridcell", "aria-colindex": 5 }, shareContent));
    }
    renderActionColumn() {
        const { element, actionMenuItems = [], hideActionMenu, isOffline, onActionButtonClick, } = this.props;
        const showActionMenu = !hideActionMenu && !this.isRenaming && !isOffline;
        return (react["createElement"]("div", { key: "action", className: classnames_default()(ListItem_default.a.column, ListItem_default.a.action), onClick: stop_propagation["a" /* default */], onFocus: () => this.setState({ actionMenuFocused: true }), onBlur: () => this.setState({ actionMenuFocused: false }), role: "gridcell", "aria-colindex": 6 },
            !this.isRenaming && this.renderCtaButton(),
            showActionMenu && (react["createElement"](ActionMenu["a" /* default */], { disabled: !!this.disabled, element: element, onActionButtonClick: onActionButtonClick, actionMenuItems: actionMenuItems, className: classnames_default()({
                    [ListItem_default.a.hoverAction]: !(this.state.actionMenuFocused || this.state.actionMenuOpened),
                }), onOpen: () => this.setState({ actionMenuOpened: true }), onClose: () => this.setState({ actionMenuFocused: true, actionMenuOpened: false }), "data-test-id": "ListItem__action" }))));
    }
    renderStatusColumn() {
        const { element: { bookmarked }, } = this.props;
        const messageId = bookmarked ? 'status.followed' : 'status.unfollowed';
        return (react["createElement"]("div", { key: "status", className: classnames_default()(ListItem_default.a.column, ListItem_default.a.status), "data-test-id": "ListItem__status", role: "gridcell", "aria-colindex": 1 },
            react["createElement"](index_es["c" /* FormattedMessage */], { id: messageId })));
    }
    renderCustomColumn({ headerProps: { id }, cellContentRender }) {
        const { element } = this.props;
        return (react["createElement"]("div", { key: id, className: classnames_default()(ListItem_default.a.column, ListItem_default.a[id]), "data-test-id": "ListItem__custom" }, cellContentRender(element)));
    }
    /**
     *
     * @param renderOnCard true if the button should be rendered directly on the card, false if it's part of a menu.
     * @returns the new CTA button
     */
    renderCtaButton() {
        const { element, ctaItem, hideActionMenu } = this.props;
        return (ctaItem && (react["createElement"]("div", { className: classnames_default()(ListItem_default.a.ctaButton, {
                [ListItem_default.a.ctaButtonHidden]: !hideActionMenu && !element.bookmarked,
            }) }, ctaItem.render(element, !hideActionMenu))));
    }
    /**
     * Component renderer.
     * @return {ReactElement} markup
     */
    render() {
        const { element, isFiltered, isSelected, columns, focusManagementEnabled, tabIndex = -1, singleSelection, dataTestId, } = this.props;
        const { isFolder } = element;
        // Folders are focusable even if disabled as they can be opened by clicking Enter
        const isFocusable = !this.disabled || isFolder;
        return (react["createElement"]("div", Object.assign({ className: classnames_default()(ListItem_default.a.ListItem, isFocusable && constants["e" /* FOCUS_ITEM_CLASS */], {
                [ListItem_default.a.disabled]: this.disabled,
                [ListItem_default.a.folder]: isFolder,
                [ListItem_default.a.project]: element.isProject,
                [ListItem_default.a.selected]: isSelected,
                [ListItem_default.a.filtered]: isFiltered === null || isFiltered === void 0 ? void 0 : isFiltered(element),
            }), id: "CDOListItem", onClick: this.onClick, onDoubleClick: this.onDoubleClick }, (focusManagementEnabled ? { tabIndex } : {}), { onKeyDown: this.onKeyDown, onContextMenu: this.onContextMenu, "data-test-id": dataTestId, role: "row" }), columns.map(col => {
            const columnDefinition = col;
            if (columnDefinition.headerProps) {
                return this.renderCustomColumn(columnDefinition);
            }
            switch (col) {
                case 'selectbox':
                    return this.renderSelectboxColumn();
                case 'name':
                    return this.renderThumbAndName();
                case 'createDate':
                case 'createdDate':
                    return this.renderDateColumn(element.createDate, 'DateCreated');
                case 'modifiedDate':
                    return this.renderDateColumn(element.modifiedDate, 'DateModified');
                case 'shareDate':
                    return this.renderDateColumn(element.shareDate, 'DateShared');
                case 'size':
                    return this.renderSizeColumn();
                case 'team':
                    return this.renderTeamColumn();
                case 'sharing':
                    return this.renderSharingColumn();
                case 'status':
                    return this.renderStatusColumn();
                case 'action':
                    return this.renderActionColumn();
                default:
                    // return null so that React doesn't complain about missing key on child
                    return null;
            }
        })));
    }
};
ListItem_ListItem.defaultProps = defaultProps;
ListItem_ListItem = __decorate([
    index_module["e" /* observer */]
], ListItem_ListItem);
class ListItem_ListItemPlaceholder extends react["PureComponent"] {
}
/* harmony default export */ var CDOView_ListItem = (Object(index_es["g" /* injectIntl */])(ListItem_ListItem));


// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/styles/ListView.css
var styles_ListView = __webpack_require__("OyXN");
var ListView_default = /*#__PURE__*/__webpack_require__.n(styles_ListView);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/components/oneup/ScrollContainer.tsx
var ScrollContainer = __webpack_require__("xKtb");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/ListView.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
/* eslint-disable max-classes-per-file, react/no-find-dom-node */
var ListView_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;
};



























const MAX_ONBOARDING_COUNT = 5;
const ROW_HEIGHT = 75;
const ROW_COUNT_LIMIT_LIST = 4;
function isListViewDateSortObject(arg) {
    return arg.id && arg.label && arg.value;
}
/**
 * Simple unordered list view bound to data store.
 */
let ListView_ListView = class ListView extends react_default.a.Component {
    constructor() {
        super(...arguments);
        this._listRef = react_default.a.createRef();
        this._listComponent = react_default.a.createRef();
        this._onRowsRenderedReference = options => { };
        this._unsortableColumnsSet = new Set(this.props.unsortableColumns || []);
        this.state = {
            elementsSeen: [],
            height: 0,
            width: 0,
        };
        // Methods like getBoundingClientRect in this._computeLayout, when requested/called in JavaScript,
        // will trigger the browser to synchronously calculate the style and layout. This
        // is also called reflow or layout thrashing, and is a common performance bottleneck.
        // https://gist.github.com/paulirish/5d52fb081b3570c81e3a
        this.handleResize = throttle_default()(() => {
            if (this._listRef.current) {
                // UXP dispatches the resize event every 'frame' rendered on the screen
                // even if the user has not resized the screen. To resolve this
                // We need to compare the current dimensions of the screen against
                // the values saved in this.state
                if (utils["a" /* default */].usingUXP()) {
                    const dimensions = this._listRef.current.getBoundingClientRect();
                    if (dimensions.width === this.state.width &&
                        dimensions.height === this.state.height) {
                        return;
                    }
                }
                this._computeLayout();
            }
        }, constants["h" /* MINIMUM_ACCEPTED_TIMEOUT */], { leading: false });
        this.onUpdatePosition = () => {
            if (this.windowScrollerRef.current) {
                this.windowScrollerRef.current.updatePosition();
            }
        };
        this.changeSort = (sortBy) => {
            const { ingestSubcategory, onSortSelected } = this.props;
            onSortSelected === null || onSortSelected === void 0 ? void 0 : onSortSelected(sortBy);
        };
        this._rowRenderer = ({ index, // Index of row
        isScrolling, // The List is currently being scrolled
        isVisible, // This row is visible within the List (eg it is not an overscanned row)
        key, // Unique key within array of rendered rows
        parent, // Reference to the parent List (instance)
        style, }) => {
            const { elements, selectionStore, columns, ingestSubcategory, children, useAdobeReactVirtualized, renditionType, } = this.props;
            if (index >= elements.length) {
                const { renderOnboardingItem } = this.props;
                if (renderOnboardingItem &&
                    elements.length <= MAX_ONBOARDING_COUNT &&
                    index === elements.length) {
                    // Render the bottom row instead.
                    return renderOnboardingItem(style);
                }
                return;
            }
            const { type: ItemComponent, props: passedThroughProps } = children;
            const ListItem = ItemComponent === ListItem_ListItemPlaceholder ? CDOView_ListItem : ItemComponent;
            const element = elements[index];
            const isSelected = selectionStore.isSelected(element);
            // Set tabIndex as -1 and let FocusManager handle tabIndex for focusable items
            const itemTabIndex = -1;
            return (react_default.a.createElement("div", { key: key, style: style },
                react_default.a.createElement(UnableToOpenItemWarning["a" /* default */], Object.assign({}, passedThroughProps, { element: element }),
                    react_default.a.createElement(ListItem, Object.assign({ columns: columns, ingestSubcategory: ingestSubcategory }, passedThroughProps, { element: element, isSelected: isSelected, tabIndex: itemTabIndex, renditionType: renditionType, dataTestId: `ListItem__row__${index}` })))));
        };
        this.onColumnClick = (sortBy) => {
            this.changeSort(sortBy);
        };
        this.onRowsRendered = ({ startIndex, stopIndex }) => {
            const visibleRows = stopIndex - startIndex + 1;
            const startIdx = stopIndex + 1 - visibleRows;
            this._trackVisibleElements(startIdx, visibleRows);
            Object(ensure_focus_on_items["a" /* default */])(constants["e" /* FOCUS_ITEM_CLASS */], this._listRef.current);
            this._onRowsRenderedReference({ startIndex, stopIndex });
        };
        this.isRowLoaded = ({ index }) => {
            const { elements } = this.props;
            return !!elements[index];
        };
        this.loadMoreRows = options => {
            var _a, _b;
            return (_b = (_a = this.props).loadMore) === null || _b === void 0 ? void 0 : _b.call(_a, options);
        };
        this.windowScrollerRef = react_default.a.createRef();
    }
    componentDidMount() {
        const resizeEl = utils["a" /* default */].getResizeElement();
        resizeEl.addEventListener('resize', this.handleResize);
        resizeEl.addEventListener('spacesUpdatePosition', this.onUpdatePosition);
        this.handleResize();
    }
    componentDidUpdate(prevProps, prevState) {
        var _a;
        const { width, height } = this.state;
        if (prevState.width !== width || prevState.height !== height) {
            this.handleResize();
        }
        if ((_a = this._listRef) === null || _a === void 0 ? void 0 : _a.current) {
            Object(ensure_focus_on_items["a" /* default */])(constants["e" /* FOCUS_ITEM_CLASS */], this._listRef.current);
        }
    }
    componentWillUnmount() {
        // clear any trailing throttled resize events
        this.handleResize.cancel();
        const resizeEl = utils["a" /* default */].getResizeElement();
        resizeEl.removeEventListener('resize', this.handleResize);
        resizeEl.removeEventListener('spacesUpdatePosition', this.onUpdatePosition);
    }
    _computeLayout() {
        if (!this._listRef.current) {
            return;
        }
        const { width, height } = this._listRef.current.getBoundingClientRect();
        this.setState({
            height,
            width,
        });
        // When the grid/list has potentially resized, notify any grid/lists in
        // the same scroll container that they should call WindowScroller.updatePosition()
        // so that they know where their scroll offsets are.
        const resizeEl = utils["a" /* default */].getResizeElement();
        resizeEl.dispatchEvent(new CustomEvent('spacesUpdatePosition'));
    }
    _uppercaseTranslation(translationId) {
        const { intl } = this.props;
        return intl.formatMessage({ id: translationId }).toUpperCase();
    }
    _trackVisibleElements(startIdx, visibleCells) {
        const { activeSort, activeSortDirection, ccxIngest, elements, itemViewEvent } = this.props;
        const { elementsSeen } = this.state;
        const newIds = elements
            .slice(startIdx, startIdx + visibleCells)
            .filter(element => !elementsSeen.includes(element.displayName))
            .map(element => {
            if (itemViewEvent && ProjectAnalytics["g" /* default */].globalAnalyticsEnabled) {
                ccxIngest === null || ccxIngest === void 0 ? void 0 : ccxIngest.fireEvent({
                    ...metrics["a" /* default */].getProjectData(element),
                    event: itemViewEvent,
                    ui: {
                        view_type: 'list',
                        sort_order: activeSortDirection,
                        sequence: activeSort,
                    },
                });
            }
            return element.displayName;
        });
        this.setState({
            elementsSeen: elementsSeen.concat(newIds),
        });
    }
    renderSelectboxColumn() {
        const { selectionStore, elements, onSelectAllItems, isSelectAllDisabled, selectionDisabled, singleSelection, } = this.props;
        const selectionCount = selectionStore.size;
        const hasSelections = selectionCount > 0;
        const allItemsAreSelected = hasSelections && selectionCount === elements.length;
        return (react_default.a.createElement(ErrorBoundary["a" /* default */], { key: "selectbox", message: "ListView.SelectAllCheckBox failed to render" }, !selectionDisabled && !singleSelection && (react_default.a.createElement("div", { className: ListView_default.a.checkBoxContainer, id: `CDOListView_SelectAll_Selected_${hasSelections}` }, !isSelectAllDisabled && (react_default.a.createElement(Checkbox_default.a, { id: "CDOListView_SelectAllCheckbox", className: ListView_default.a.focusItem, checked: allItemsAreSelected, indeterminate: !allItemsAreSelected && hasSelections, renderLabel: false, onChange: onSelectAllItems }))))));
    }
    renderDateColumn(labelMsgId, sortBy, columnClickMode = 'dateMenu') {
        const { activeSortDirection, activeSort, intl, dateSortOptions } = this.props;
        const isActiveSort = sortBy === activeSort;
        // If the date column isn't active, or there are no other dates to sort by, sort by this column instead
        // of showing the sort menu.
        const showSortMenu = isActiveSort && columnClickMode === 'dateMenu';
        // date column with one sorting option, DropdownMenu not necessary.
        if (dateSortOptions.length === 1) {
            return this.renderColumn(dateSortOptions[0]);
        }
        // date column with muliple sorting options, DropdownMenu used.
        return (react_default.a.createElement(ErrorBoundary["a" /* default */], { key: "date", message: "ListView.SortByDateDropDownColumnHeader failed to render" },
            react_default.a.createElement("div", { className: classnames_default()(ListView_default.a.column, ListView_default.a.date, ListView_default.a.sortable), id: "CDOListSortBy_Date" },
                react_default.a.createElement("div", { className: ListView_default.a.textWrapper },
                    react_default.a.createElement("div", { id: "CDOListView_DropDownButton" },
                        react_default.a.createElement(CDOView_DropdownMenu, { className: classnames_default()(ListView_default.a.text, {
                                [ListView_default.a.selected]: isActiveSort,
                            }), label: this._uppercaseTranslation(labelMsgId), onClick: () => {
                                if (!showSortMenu) {
                                    this.changeSort(sortBy);
                                    return false;
                                }
                            }, onSelect: selection => this.changeSort(selection), options: dateSortOptions.map(item => ({
                                id: `CDOListView_DropDownButton_${item.id}`,
                                label: intl.formatMessage({ id: item.label }),
                                value: item.value,
                                selected: item.value === sortBy,
                            })) }))),
                isActiveSort && (react_default.a.createElement("div", { className: ListView_default.a.sortArrowWrapper, id: activeSortDirection === stores_constants["h" /* UXSortDir */].desc
                        ? 'CDOList_SortDescending'
                        : 'CDOList_SortAscending', onClick: () => this.changeSort(sortBy) },
                    react_default.a.createElement(SortDropdown["a" /* SortArrow */], { activeSortDirection: activeSortDirection }))))));
    }
    renderColumn(arg) {
        const { activeSort, activeSortDirection, className } = this.props;
        let capTitle, locString, sortValue;
        if (isListViewDateSortObject(arg)) {
            capTitle = arg.label.replace('header.', '');
            locString = arg.label;
            sortValue = arg.value;
        }
        else {
            capTitle = capitalize(arg);
            locString = `header.${capTitle}`;
            sortValue = arg;
        }
        const sortColumn = stores_constants["f" /* UXSortBy */][sortValue];
        return (react_default.a.createElement(CDOView_HeaderColumn, { key: sortValue, className: className, id: `CDOListSortBy${capTitle}`, uxSortColumn: sortColumn, activeSortDirection: activeSortDirection, label: this._uppercaseTranslation(locString), isActiveSort: activeSort === sortColumn, isSortable: !this._unsortableColumnsSet.has(sortValue), onColumnClick: this.onColumnClick, selectionDisabled: this.props.selectionDisabled, "data-test-id": `ListHeader__${capTitle}` }));
    }
    renderCustomColumn(definition) {
        return (react_default.a.createElement(CDOView_HeaderColumn, Object.assign({ key: definition.headerProps.id, 
            // @ts-ignore
            id: definition.headerProps.id, onColumnClick: this.onColumnClick, columnType: definition.columnType, selectionDisabled: this.props.selectionDisabled }, definition.headerProps, { "data-test-id": `ListHeader__${definition.columnType}` })));
    }
    renderHeader() {
        const { columns, focusManagementEnabled } = this.props;
        const content = (react_default.a.createElement("div", { className: ListView_default.a.header }, columns.map(col => {
            const columnDefinition = col;
            if (columnDefinition.headerProps) {
                return this.renderCustomColumn(columnDefinition);
            }
            switch (col) {
                case 'selectbox':
                    return this.renderSelectboxColumn();
                case 'name':
                case 'size':
                case 'sharing':
                case 'team':
                case 'status':
                    return this.renderColumn(col);
                case 'modifiedDate':
                    return this.renderDateColumn('header.DateModified', stores_constants["f" /* UXSortBy */].modifiedDate);
                case 'createDate':
                    return this.renderDateColumn('header.DateCreated', stores_constants["f" /* UXSortBy */].createDate);
                case 'createdDate':
                    return this.renderDateColumn('header.DateCreated', stores_constants["f" /* UXSortBy */].createdDate);
                case 'shareDate':
                    return this.renderDateColumn('header.DateShared', stores_constants["f" /* UXSortBy */].shareDate, 'sortChange');
                case 'action':
                    return (react_default.a.createElement("div", { key: "action", className: classnames_default()(ListView_default.a.column, ListView_default.a.action) }));
                default:
                    // This needs to be null to avoid React warnings about children without keys
                    return null;
            }
        })));
        if (focusManagementEnabled) {
            return (react_default.a.createElement(FocusManager["a" /* default */], { orientation: "horizontal", itemSelector: ".focusItem, .column.sortable" }, content));
        }
        return content;
    }
    renderInfiniteLoader(children) {
        const { useAdobeReactVirtualized, total, elements } = this.props;
        const infiniteLoaderProps = {
            isRowLoaded: this.isRowLoaded,
            loadMoreRows: this.loadMoreRows,
            rowCount: total || elements.length,
        };
        return useAdobeReactVirtualized ? (react_default.a.createElement(dist_es["c" /* InfiniteLoader */], Object.assign({}, infiniteLoaderProps), children)) : (react_default.a.createElement(es["c" /* InfiniteLoader */], Object.assign({}, infiniteLoaderProps), children));
    }
    renderList() {
        const { elements, mobile, selectionStore, useAdobeReactVirtualized, additionalChangeProps, overscanRowCount = 10, autoHeight = false, contentBelowHeader, isHeaderVisible, headerOnly = false, onboardingRowHeight, renderOnboardingItem, limitRowCount, } = this.props;
        const { width, height } = this.state;
        let rowCount = limitRowCount
            ? Math.min(elements.length, ROW_COUNT_LIMIT_LIST)
            : elements.length;
        let rowHeight = ROW_HEIGHT;
        const hasOnboardingRow = rowCount <= MAX_ONBOARDING_COUNT && renderOnboardingItem;
        if (hasOnboardingRow) {
            // Add an extra row and make it double the size of a regular row.
            rowCount += 1;
            if (onboardingRowHeight !== undefined) {
                rowHeight = ({ index }) => index === elements.length ? onboardingRowHeight : ROW_HEIGHT;
            }
        }
        const commonListProps = {
            // Workaround for overlapping scrollbars: https://git.corp.adobe.com/torq/react-spectrum/pull/460
            className: 'ReactScrollViewNode',
            width,
            height,
            mobile,
            rowHeight,
            rowCount,
            rowRenderer: this._rowRenderer,
            autoHeight,
            overscanRowCount,
            tabIndex: -1,
            // Trigger re-render when these values change
            // NOTE: elements must come from a mobx-state-tree view that returns a new array
            // so that React-virtualized can do simple === check on these props to detect changes.
            // Pass selectionStore.storeUpdateId, which is mobx @computed, so it only changes when
            // the underlying selections change.
            ...Object(react_virtualized_change_props["a" /* default */])(elements, selectionStore.storeUpdateId, ...additionalChangeProps),
            overscanIndicesGetter: es["f" /* accessibilityOverscanIndicesGetter */],
            onRowsRendered: this.onRowsRendered,
        };
        const ListComponent = useAdobeReactVirtualized ? dist_es["d" /* List */] : es["d" /* List */];
        return (react_default.a.createElement(react_default.a.Fragment, null,
            isHeaderVisible && !mobile && this.renderHeader(),
            !headerOnly && (react_default.a.createElement(react_default.a.Fragment, null,
                contentBelowHeader,
                react_default.a.createElement("div", { className: classnames_default()(ListView_default.a.itemsContainer, {
                        [ListView_default.a.mobile]: mobile,
                    }), ref: this._listRef },
                    react_default.a.createElement(ErrorBoundary["a" /* default */], { message: "ListView.ReactVirtualizedList failed to render" },
                        react_default.a.createElement(ScrollContainer["a" /* ScrollContainerContext */].Consumer, null, scrollContainer => this.renderInfiniteLoader(({ onRowsRendered, registerChild }) => {
                            this._onRowsRenderedReference = onRowsRendered;
                            return this.renderFocusElement(scrollContainer ? (react_default.a.createElement(es["e" /* WindowScroller */], { ref: this.windowScrollerRef, scrollElement: scrollContainer }, ({ height, isScrolling, onChildScroll, scrollTop, }) => (react_default.a.createElement(ListComponent, Object.assign({ ref: registerChild }, commonListProps, { autoHeight: true, height: height, isScrolling: isScrolling, onScroll: onChildScroll, scrollTop: scrollTop }))))) : (react_default.a.createElement(ListComponent, Object.assign({ ref: registerChild }, commonListProps))), constants["e" /* FOCUS_ITEM_CLASS */]);
                        }))))))));
    }
    renderFocusElement(children, focusClass) {
        const { focusManagementEnabled } = this.props;
        if (focusManagementEnabled) {
            return (react_default.a.createElement(FocusManager["a" /* default */], { itemSelector: `.${focusClass}`, orientation: "vertical", manageTabIndex: true, disableCyclicFocus: true },
                react_default.a.createElement("div", { tabIndex: -1 }, children)));
        }
        return children;
    }
    /**
     * Component renderer.
     * @return {React} markup
     */
    render() {
        const { className, headerOnly } = this.props;
        return (react_default.a.createElement("div", { className: classnames_default()(ListView_default.a.ListView, {
                [ListView_default.a.headerOnly]: headerOnly,
            }, className && ListView_default.a[className]) }, this.renderList()));
    }
};
ListView_ListView.defaultProps = {
    additionalChangeProps: [],
    selectionStore: new SelectionStore["a" /* default */](),
};
ListView_ListView = ListView_decorate([
    index_module["e" /* observer */]
], ListView_ListView);
/**
 * In views that render ListView as a child of CDOView, use this component to ensure any props that are passed are
 * validated, invalid props are flagged, but all props are optional. It does not provide any functionality other than
 * signalling to CDOView that it should render ListView when appropriate and ensure type-checking.
 */
class ListView_ListViewPlaceholder extends react_default.a.PureComponent {
}
/* harmony default export */ var CDOView_ListView = (Object(index_es["g" /* injectIntl */])(ListView_ListView));


// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/GridView.tsx + 1 modules
var GridView = __webpack_require__("8Esu");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/GridItem.tsx + 1 modules
var CDOView_GridItem = __webpack_require__("mwpz");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/Busy.tsx
var Busy = __webpack_require__("izVQ");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/utils/action.ts
var action = __webpack_require__("duTG");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/styles/CDOView.css
var styles_CDOView = __webpack_require__("TjiH");
var CDOView_default = /*#__PURE__*/__webpack_require__.n(styles_CDOView);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/hosts/Host.ts + 9 modules
var Host = __webpack_require__("Dy/p");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/CDOView.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Incorporated.
 **************************************************************************/
var CDOView_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;
};



















var ViewMode;
(function (ViewMode) {
    ViewMode["List"] = "list";
    ViewMode["Grid"] = "grid";
})(ViewMode || (ViewMode = {}));
var MenuType;
(function (MenuType) {
    MenuType["Header"] = "header";
    MenuType["Context"] = "context-menu";
    MenuType["Dialog"] = "dialog";
    MenuType["CCDRightRail"] = "right-rail";
})(MenuType || (MenuType = {}));
function* forEachBetween(elements, startElement, endElement) {
    if (startElement.id === endElement.id) {
        yield startElement;
        return;
    }
    let start = null;
    let inbetween = [startElement.id, endElement.id];
    for (let index in elements) {
        const itemCursor = elements[index];
        if (start) {
            yield itemCursor;
        }
        if (inbetween.includes(itemCursor.id)) {
            if (start) {
                break;
            }
            start = itemCursor;
            yield itemCursor;
        }
    }
}
let CDOView_CDOView = class CDOView extends react["Component"] {
    constructor() {
        super(...arguments);
        this.selectAction = new action["a" /* default */]({
            value: 'select',
            label: 'button.select',
            execute: async (ele) => this.onItemSelected(ele[0]),
            isVisible: () => /^win/.test(navigator.platform),
        });
        this.isInCCDmode = () => {
            // TODO fill this in
            return false;
        };
        this.isLoading = () => {
            const { fetchState } = this.props;
            return (!this.projectList.hasCloudNotificationErrorStatus &&
                (fetchState === stores_constants["c" /* ProcessingState */].Fetching || fetchState === stores_constants["c" /* ProcessingState */].Pending));
        };
        this.isBusy = () => {
            const { elements, isLoading = this.isLoading, collection } = this.props;
            // Show spinner when loading and there are no elements, otherwise the user might see the empty view
            // with no indication that content is being fetched. This means that sometimes we will show the spinner
            // when there are is no content to show, causing the empty state to flash.
            // https://jira.corp.adobe.com/browse/CCXCD-1837
            return isLoading() && elements.length === 0 && collection.firstFetch;
        };
        this.getProgressProps = () => {
            // TODO Uncomment and fix
            // const { assetOpState, batchState } = this.docStore;
            // if (assetOpState === ProcessingState.Processing) {
            //     return batchState.progressData;
            // }
            // return {
            //     msgId: 'test',
            //     inProgressNum: 1,
            //     progressPercent: 1,
            //     batchSize: 1,
            // };
            return {
                msgId: 'test',
                inProgressNum: 1,
                progressPercent: 1,
                batchSize: 1,
            };
        };
        this.shouldRenderItemAsDisabled = (element, selectionMode, type) => {
            var _a, _b, _c;
            return ((_c = (_b = (_a = this.props).shouldRenderItemAsDisabled) === null || _b === void 0 ? void 0 : _b.call(_a, element, selectionMode || this.isInSelectionMode, type)) !== null && _c !== void 0 ? _c : false);
        };
        this.onItemClicked = (element) => {
            const { activeSort, activeSortDirection, ccxIngest, onItemClicked, view } = this.props;
            const event = this.analyticsProps.itemClickEvent;
            if (event) {
                ccxIngest === null || ccxIngest === void 0 ? void 0 : ccxIngest.fireEvent({
                    ...metrics["a" /* default */].getItemClickEvent(element, event),
                    ui: {
                        view_type: view,
                        sort_order: activeSortDirection,
                        sequence: activeSort,
                    },
                });
            }
            onItemClicked === null || onItemClicked === void 0 ? void 0 : onItemClicked(element);
        };
        this.onDocMounted = (doc) => {
            // this.docStore.fetchRendition(doc);
            // this.docStore.fetchCollaboration(doc);
        };
        this.onDocUnmounted = (doc) => {
            // this.docStore.cancelFetchRendition(doc);
            // this.docStore.cancelFetchCollaboration(doc);
        };
        this.onViewModeChange = (viewMode) => {
            // const { ingestSubcategory } = this.props;
            // this.cdoStore.setViewState(viewMode);
        };
        this.onItemSelected = (selectedElement, event) => {
            const { elements, selectionStore, singleSelection } = this.props;
            if (singleSelection) {
                if (selectionStore.isSelected(selectedElement)) {
                    selectionStore.removeSelection(selectedElement);
                }
                else {
                    selectionStore.clear();
                    selectionStore.addSelection(selectedElement);
                }
            }
            else if (event && event.shiftKey) {
                const startItem = selectionStore.startItem;
                const endItem = selectionStore.endItem;
                // do nothing if selecting the same multi-selection group
                if ((endItem === null || endItem === void 0 ? void 0 : endItem.id) === selectedElement.id) {
                    return;
                }
                if (startItem) {
                    // remove last known multi-selection group,
                    // do not remove all selection as some could be selected individually or part of a different multi-selection group
                    if (endItem) {
                        for (let cursor of forEachBetween(elements, startItem, endItem)) {
                            selectionStore.removeSelection(cursor);
                        }
                    }
                    // add the new multi-selection group
                    for (let cursor of forEachBetween(elements, startItem, selectedElement)) {
                        selectionStore.addSelection(cursor);
                    }
                }
                selectionStore.setEndItem(selectedElement);
            }
            else {
                selectionStore.toggleSelection(selectedElement, true);
            }
        };
        this.onActionButtonClick = async (action, menu, selectedElements) => {
            await action.execute(selectedElements);
            selectedElements.every(element => this.props.selectionStore.removeSelection(element));
        };
        this.onHeaderActionButtonClick = (action) => {
            this.onActionButtonClick(action, MenuType.Header, this.props.selectionStore.selectedElements);
        };
        this.onItemActionButtonClick = (action, element) => {
            this.onActionButtonClick(action, MenuType.Context, [element]);
        };
        /**
         * The handler for select-all/deselect-all toggle
         * @returns {undefined}
         */
        this.onSelectAllItems = () => {
            const { elements = [], selectionStore } = this.props;
            if (selectionStore.size > 0) {
                selectionStore.clear();
            }
            else {
                selectionStore.addSelections(elements);
            }
        };
        this.onKeyDown = e => {
            if (e.key === 'Escape' && this.props.selectionStore.hasAny) {
                this.resetSelection();
                e.stopPropagation();
                e.nativeEvent.stopImmediatePropagation();
            }
        };
    }
    onRendered() {
        var _a, _b;
        (_b = (_a = this.props).onRendered) === null || _b === void 0 ? void 0 : _b.call(_a, this.props.elements, this.props.ingestSubcategory);
    }
    componentDidMount() {
        const { selectionStore, onSelectionChange } = this.props;
        this.onRendered();
        this.refreshData();
        // Provide clients that need it a way to monitor for selection changes and get a reference
        // to the visible actions and the handler to call to perform the action.
        if (onSelectionChange) {
            this._disposer = Object(mobx_module["B" /* reaction */])(() => {
                return selectionStore.selectedElements;
            }, () => {
                onSelectionChange(selectionStore, this.allActionMenuItems, this.onActionButtonClick);
            });
        }
    }
    componentDidUpdate() {
        this.onRendered();
    }
    componentWillUnmount() {
        this._disposer && this._disposer();
    }
    get analyticsProps() {
        const { ingestSubcategory } = this.props;
        let cardSubtype, itemClickEvent, itemViewEvent, workflow;
        switch (ingestSubcategory) {
            case ProjectAnalytics["c" /* Subcategory */].AddResourceModal:
                cardSubtype = ProjectAnalytics["d" /* Subtype */].libraryCard;
                workflow = ProjectAnalytics["f" /* Workflow */].AddLibrary;
                break;
            case ProjectAnalytics["c" /* Subcategory */].CopyToModal:
                cardSubtype = ProjectAnalytics["d" /* Subtype */].projectCard;
                workflow = ProjectAnalytics["f" /* Workflow */].CopyFiles;
                break;
            case ProjectAnalytics["c" /* Subcategory */].Libraries:
                cardSubtype = ProjectAnalytics["d" /* Subtype */].libraryCard;
                workflow = ProjectAnalytics["f" /* Workflow */].Libraries;
                break;
            case ProjectAnalytics["c" /* Subcategory */].MyProjects:
                cardSubtype = ProjectAnalytics["d" /* Subtype */].projectCard;
                workflow = ProjectAnalytics["f" /* Workflow */].Projects;
                break;
            case ProjectAnalytics["c" /* Subcategory */].WorkingFiles:
                cardSubtype = ProjectAnalytics["d" /* Subtype */].workingFileCard;
                workflow = ProjectAnalytics["f" /* Workflow */].WorkingFiles;
                break;
        }
        if (ingestSubcategory && cardSubtype && workflow) {
            itemClickEvent = ProjectAnalytics["g" /* default */].scaffoldEvent(ingestSubcategory, cardSubtype, ProjectAnalytics["e" /* Type */].click, workflow);
            itemViewEvent = ProjectAnalytics["g" /* default */].scaffoldEvent(ingestSubcategory, cardSubtype, ProjectAnalytics["e" /* Type */].render, workflow);
        }
        return {
            cardSubtype,
            itemClickEvent,
            itemViewEvent,
            workflow,
        };
    }
    get projectList() {
        return this.props.projectList;
    }
    get allActionMenuItems() {
        const { actionMenuItems = [] } = this.props;
        // Add selectionAction for platforms that need it, but only when not in selection mode
        if (!this.isInSelectionMode) {
            return [...actionMenuItems, this.selectAction];
        }
        return actionMenuItems;
    }
    get selectAllDisabled() {
        return this.isLoading() || this.props.selectAllDisabled;
    }
    get isInSelectionMode() {
        const { lockSelectModeOn, selectionStore } = this.props;
        return lockSelectModeOn || selectionStore.hasAny;
    }
    resetSelection() {
        this.props.selectionStore.clear();
    }
    refreshData() {
        const { fetchMethod, disableFetchWhenOffline } = this.props;
        const isOnline = SharedStore["d" /* sharedStore */].isOnline;
        if ((isOnline || !disableFetchWhenOffline) && fetchMethod) {
            fetchMethod();
        }
    }
    getListDateSortOptions() {
        const { isFoldersEnabled } = this.projectList;
        if (isFoldersEnabled) {
            // 'modifiedDate' is only date sorting option when `enableCloudDocFolders` ON
            return stores_constants["i" /* UX_DATE_SORT_MENU_ITEMS */].filter(item => item.value === 'modifiedDate');
        }
        return stores_constants["i" /* UX_DATE_SORT_MENU_ITEMS */];
    }
    render() {
        const isInCCDmode = this.isInCCDmode();
        const { children, collectionType, elements, ingestSubcategory, className, view = 'list', // Allow override of cdoStore.view
        selectionDisabled = false, singleSelection, lockSelectModeOn = isInCCDmode, isBusy = this.isBusy, onItemContextMenu, sortOptions, hideActionMenu = isInCCDmode, activeRenameState, activeSort, activeSortDirection, selectionStore, ctaItem, contentBelowHeader, showActionMenuOnHover, } = this.props;
        const isOnline = SharedStore["d" /* sharedStore */].isOnline;
        const selectionCount = selectionStore.size;
        const hideEllipsesMenu = hideActionMenu || selectionCount > 0 || this.allActionMenuItems.length <= 1;
        let progressContent;
        // const progressProps = getProgressProps();
        // if (progressProps) {
        //     progressContent = <ProgressDialog {...progressProps} />;
        // }
        const defaultRendition = '';
        let focusManagementEnabled = true;
        const useAdobeReactVirtualized = false;
        const showFileExtension = false;
        const hideCloudStatusIcon = !Host["a" /* default */].useSamCpp;
        // ensure React Virtualized re-renders when online/offline status changes
        const defaultChangeProps = [isOnline ? 'isOnline' : 'isOffline'];
        const commonViewProps = {
            activeSort,
            activeSortDirection,
            elements,
            itemViewEvent: this.analyticsProps.itemViewEvent,
            ingestSubcategory,
            focusManagementEnabled,
            useAdobeReactVirtualized,
            onSelectAllItems: this.selectAllDisabled ? undefined : this.onSelectAllItems,
            onSortSelected: this.props.onSortSelected,
            selectionStore: selectionStore,
            isSelectAllDisabled: this.selectAllDisabled,
            loadMore: this.props.loadMore,
            total: this.props.total,
            contentBelowHeader,
        };
        // Declare as Partial<IViewItemProps> so that props provided by ListView and GridView are not flagged as
        // missing, while still type-checking the passed props and flagging the invalid ones.
        const commonItemProps = {
            actionMenuItems: this.allActionMenuItems,
            activeRenameState,
            collectionType,
            ctaItem,
            focusManagementEnabled,
            defaultRendition,
            shouldRenderItemAsDisabled: this.shouldRenderItemAsDisabled,
            onActionButtonClick: this.onItemActionButtonClick,
            onDocMounted: this.onDocMounted,
            onDocUnmounted: this.onDocUnmounted,
            onItemClickedHandler: this.onItemClicked,
            onItemSelected: selectionDisabled ? undefined : this.onItemSelected,
            isInSelectionMode: this.isInSelectionMode,
            selectionDisabled,
            selectOnClick: lockSelectModeOn || selectionCount > 0,
            singleSelection,
            doubleClickToOpen: isInCCDmode,
            hideActionMenu: hideEllipsesMenu,
            isOffline: !isOnline,
            onItemContextMenu,
            hideCloudStatusIcon,
            showActionMenuOnHover,
        };
        return (react_default.a.createElement(ScrollContainer["a" /* ScrollContainerContext */].Consumer, null, scrollContainer => (react_default.a.createElement("div", { className: classnames_default()(CDOView_default.a.CDOView, className, utils["a" /* default */].usingUXP() && CDOView_default.a.UXPBackdrop, scrollContainer && CDOView_default.a.withScrollContainer), onKeyDown: this.onKeyDown, "data-test-id": `CDOView__${ingestSubcategory === null || ingestSubcategory === void 0 ? void 0 : ingestSubcategory.replace(/ /g, '_')}` },
            isBusy() && (react_default.a.createElement("div", { className: CDOView_default.a.CDO_WaitSpinner },
                react_default.a.createElement(Busy["a" /* default */], { id: "CDO_WaitSpinner" }))),
            !isBusy() && progressContent,
            react["Children"].map(children, child => {
                if (!child) {
                    return;
                }
                const { type: viewType, props: childProps = {} } = child;
                // NOTE: viewProps will override properties specified below
                const { children = {}, ...viewProps } = childProps;
                const { additionalChangeProps: viewChangeProps = [] } = viewProps;
                // Create a new array on each pass so that it doesn't cause duplicates
                const additionalChangeProps = [
                    ...defaultChangeProps,
                    ...viewChangeProps,
                    hideEllipsesMenu,
                ];
                // NOTE: itemProps will override properties specified below
                const { type: ItemView, props: itemProps } = children;
                switch (viewType) {
                    case GridView["b" /* GridViewPlaceholder */]: {
                        // Allow parent view to skip specifying GridItem as the child for GridView
                        const GridItem = ItemView || CDOView_GridItem["a" /* GridItemPlaceholder */];
                        return (view === 'grid' && (react_default.a.createElement(GridView["c" /* default */], Object.assign({}, commonViewProps, viewProps, { sortOptions: sortOptions, additionalChangeProps: additionalChangeProps }),
                            react_default.a.createElement(GridItem, Object.assign({}, commonItemProps, { metadataFormat: showFileExtension
                                    ? 'fileExtension'
                                    : activeSort }, itemProps)))));
                    }
                    case ListView_ListViewPlaceholder: {
                        // Allow parent view to skip specifying ListItem as the child for ListView
                        const ListItem = ItemView || ListItem_ListItemPlaceholder;
                        return (view === 'list' && (react_default.a.createElement(CDOView_ListView, Object.assign({}, commonViewProps, { dateSortOptions: this.getListDateSortOptions(), selectionDisabled: selectionDisabled, singleSelection: singleSelection }, viewProps, { additionalChangeProps: additionalChangeProps }),
                            react_default.a.createElement(ListItem, Object.assign({}, commonItemProps, { metadataFormat: showFileExtension
                                    ? 'fileExtension'
                                    : 'folderOnly' }, itemProps)))));
                    }
                    default:
                        return child;
                }
            })))));
    }
};
CDOView_CDOView = CDOView_decorate([
    index_module["e" /* observer */]
], CDOView_CDOView);
/* harmony default export */ var packages_CDOView_CDOView = (Object(index_es["g" /* injectIntl */])(CDOView_CDOView));


// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/index.tsx








/***/ }),

/***/ "teks":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("path", {
  d: "M18.059 5.082l3.554 9.505 10.219.481-7.975 6.405 2.672 9.827-8.534-5.568-8.558 5.615 2.7-9.873-7.974-6.4 10.2-.49zm.023-4.259a.738.738 0 0 0-.7.478l-4.412 11.35-12.2.585a.75.75 0 0 0-.434 1.334l9.523 7.642-3.23 11.8a.752.752 0 0 0 .725.951.742.742 0 0 0 .41-.125L18 28.122l10.187 6.648a.742.742 0 0 0 .408.125.752.752 0 0 0 .725-.949l-3.189-11.733 9.528-7.653a.75.75 0 0 0-.434-1.334l-12.2-.575-4.241-11.34a.738.738 0 0 0-.702-.488z"
}));

/***/ }),

/***/ "th6M":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _CheckmarkSmall = _interopRequireDefault(__webpack_require__("wgma"));

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _DashSmall = _interopRequireDefault(__webpack_require__("AYz0"));

var _propTypes = _interopRequireDefault(__webpack_require__("17x9"));

var _react = _interopRequireWildcard(__webpack_require__("q1tI"));

var _SwitchBase = _interopRequireDefault(__webpack_require__("Fm3E"));

const _excluded = ["indeterminate", "quiet", "className"];

function _getRequireWildcardCache(nodeInterop) {
  if (typeof WeakMap !== "function") return null;
  var cacheBabelInterop = new WeakMap();
  var cacheNodeInterop = new WeakMap();
  return (_getRequireWildcardCache = function (nodeInterop) {
    return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
  })(nodeInterop);
}

function _interopRequireWildcard(obj, nodeInterop) {
  if (!nodeInterop && obj && obj.__esModule) {
    return obj;
  }

  if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
    return {
      default: obj
    };
  }

  var cache = _getRequireWildcardCache(nodeInterop);

  if (cache && cache.has(obj)) {
    return cache.get(obj);
  }

  var newObj = {};
  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;

  for (var key in obj) {
    if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
      var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;

      if (desc && (desc.get || desc.set)) {
        Object.defineProperty(newObj, key, desc);
      } else {
        newObj[key] = obj[key];
      }
    }
  }

  newObj.default = obj;

  if (cache) {
    cache.set(obj, newObj);
  }

  return newObj;
}

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

if (false) {} else if (false) {} else {
  __webpack_require__("+0in");
}

if (true) __webpack_require__("rsMX");
if (true) __webpack_require__("tMFX");
if (true) __webpack_require__("13q7");
if (true) __webpack_require__("uLbb");

class Checkbox extends _react.Component {
  componentDidMount() {
    this.setIndeterminate();
  }

  componentDidUpdate() {
    this.setIndeterminate();
  } // There is no way to set indeterminate through markup such that it will be picked up by a CSS
  // indeterminate pseudo-selector. It can only be done via javascript.


  setIndeterminate() {
    const {
      indeterminate
    } = this.props;
    const input = this.inputRef && this.inputRef.getInput();

    if (indeterminate != null && input) {
      input.indeterminate = indeterminate;
    }
  }

  render() {
    const _this$props = this.props,
          {
      indeterminate,
      quiet,
      className
    } = _this$props,
          otherProps = _objectWithoutProperties(_this$props, _excluded); // override the aria-checked prop of SwitchBase only if it is indeterminate.


    if (indeterminate) {
      otherProps['aria-checked'] = 'mixed';
    }

    let markIcon = indeterminate ? /*#__PURE__*/_react.default.createElement(_DashSmall.default, {
      size: null,
      className: "spectrum-Checkbox-partialCheckmark"
    }) : /*#__PURE__*/_react.default.createElement(_CheckmarkSmall.default, {
      size: null,
      className: "spectrum-Checkbox-checkmark"
    });
    return /*#__PURE__*/_react.default.createElement(_SwitchBase.default, _extends({
      ref: el => this.inputRef = el,
      inputType: "checkbox",
      className: (0, _classnames.default)('spectrum-Checkbox', {
        'is-indeterminate': indeterminate,
        'spectrum-Checkbox--quiet': quiet
      }, className),
      inputClassName: "spectrum-Checkbox-input",
      markClassName: "spectrum-Checkbox-box",
      markIcon: markIcon,
      labelClassName: "spectrum-Checkbox-label"
    }, otherProps));
  }

}

exports.default = Checkbox;
Checkbox.propTypes = {
  /**
   * Label for the checkbox
   */
  label: _propTypes.default.string,

  /**
   * Whether to render the label for the checkbox
   */
  renderLabel: _propTypes.default.bool,

  /**
   * defaultChecked is undefined by default so we can respect
   * the value that is passed in without erroneously putting
   * both checked and defaultChecked on the input
   */
  defaultChecked: _propTypes.default.bool,

  /**
   * if the checkbox can't be interacted with, and also greys it out
   */
  disabled: _propTypes.default.bool,

  /**
   * Uses standard HTML required to make a form invalid, also get a highlight if not filled in
   */
  required: _propTypes.default.bool,

  /**
   * If the value is invalid
   */
  invalid: _propTypes.default.bool,

  /**
   * Makes it so the checkbox can't be interacted with
   */
  readOnly: _propTypes.default.bool,

  /**
   * Callback for when the checkbox value changes
   */
  onChange: _propTypes.default.func,

  /**
   * Uses a dash instead of a check to indicate an in between or "unknown" state
   */
  indeterminate: _propTypes.default.bool,

  /**
  * Whether the checkbox is a quiet variation
  */
  quiet: _propTypes.default.bool
};
Checkbox.defaultProps = {
  renderLabel: true,
  defaultChecked: undefined,
  disabled: false,
  required: false,
  invalid: false,
  readOnly: false,
  onChange: function () {},
  indeterminate: false,
  quiet: false
};
Checkbox.displayName = 'Checkbox';

/***/ }),

/***/ "thTA":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var mobx_react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("okNM");
/* harmony import */ var _torq_native_react_spectrum_OverlayTrigger_js_UxpOverlay__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("kaHk");
/* harmony import */ var _torq_native_react_spectrum_OverlayTrigger_js_UxpOverlay__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_torq_native_react_spectrum_OverlayTrigger_js_UxpOverlay__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _react_react_spectrum_Tooltip__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("DUuf");
/* harmony import */ var _react_react_spectrum_Tooltip__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Tooltip__WEBPACK_IMPORTED_MODULE_3__);
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2019 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
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;
};




const timeUntilTooltipDismisses = 5000;
const getScrollParent = (node) => {
    if (node == null) {
        return null;
    }
    if (node.scrollHeight > node.clientHeight) {
        return node;
    }
    return getScrollParent(node.parentNode);
};
let UnableToOpenItemWarning = class UnableToOpenItemWarning extends react__WEBPACK_IMPORTED_MODULE_0___default.a.Component {
    constructor() {
        super(...arguments);
        this.state = {
            unableToOpenItemMessage: undefined,
        };
        this.overlayTargetRef = react__WEBPACK_IMPORTED_MODULE_0___default.a.createRef();
        this.dismissTooltip = () => {
            if (this.targetScrollParent) {
                // removes listener from the scroll parent after the tooltip has been dismissed.
                this.targetScrollParent.removeEventListener('scroll', this.dismissTooltip);
            }
            this.setState({ unableToOpenItemMessage: undefined });
        };
        this.listenToScrollForTooltipDismissal = () => {
            this.targetScrollParent = getScrollParent(this.overlayTargetRef.current);
            if (this.targetScrollParent) {
                // adds a scroll listener to first scrollable parent so we can dismiss the tooltip
                // when the user scrolls.
                this.targetScrollParent.addEventListener('scroll', this.dismissTooltip);
            }
        };
        this.onItemClickedHandler = (element) => {
            const { onItemClickedHandler, shouldRenderItemAsDisabled, allowClickEventOnDisabled } = this.props;
            const itemIsDisabled = shouldRenderItemAsDisabled(element);
            if (!itemIsDisabled || allowClickEventOnDisabled) {
                onItemClickedHandler(element);
                return;
            }
            // get the error message returned from the passed in click handler if it exists
            const unableToOpenItemMessage = typeof itemIsDisabled === 'string' ? itemIsDisabled : undefined;
            this.setState({ unableToOpenItemMessage });
            if (unableToOpenItemMessage !== undefined) {
                this.listenToScrollForTooltipDismissal();
                // dismiss the tooltip after a configured amount of time
                setTimeout(this.dismissTooltip, timeUntilTooltipDismisses);
            }
        };
    }
    /**
     * We are using `Overlay` instead of `OverlayTrigger` to display the Tooltip for the
     * following reasons:
     *   - We need to hide the tooltip after a few seconds
     *   - OverlayTrigger was only showing the overlay for a split second in list view
     *   - OverlayTrigger shows the Overlay even when clicking on the multi select icon or the action menu
     *   - OverlayTrigger would not show when using the keyboard to open a file
     */
    render() {
        const { children, element, shouldRenderItemAsDisabled } = this.props;
        const { unableToOpenItemMessage } = this.state;
        const showUnableToOpenWarning = unableToOpenItemMessage !== undefined;
        const disabled = !!shouldRenderItemAsDisabled(element);
        return (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null,
            react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", { ref: this.overlayTargetRef, className: "unable-to-open-overlay" }, react__WEBPACK_IMPORTED_MODULE_0___default.a.cloneElement(children, {
                disabled,
                onItemClickedHandler: this.onItemClickedHandler,
            })),
            this.overlayTargetRef !== null && (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_torq_native_react_spectrum_OverlayTrigger_js_UxpOverlay__WEBPACK_IMPORTED_MODULE_2___default.a, { flip: true, placement: "top", show: showUnableToOpenWarning, rootClose: this.dismissTooltip, onHide: this.dismissTooltip, onExiting: this.dismissTooltip, target: this.overlayTargetRef.current },
                react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_react_react_spectrum_Tooltip__WEBPACK_IMPORTED_MODULE_3___default.a, null, unableToOpenItemMessage)))));
    }
};
UnableToOpenItemWarning.defaultProps = {
    onItemClickedHandler: () => { },
    shouldRenderItemAsDisabled: () => false,
};
UnableToOpenItemWarning = __decorate([
    mobx_react__WEBPACK_IMPORTED_MODULE_1__[/* observer */ "e"]
], UnableToOpenItemWarning);
/* harmony default export */ __webpack_exports__["a"] = (UnableToOpenItemWarning);


/***/ }),

/***/ "tnIz":
/***/ (function(module, exports, __webpack_require__) {

var Buffer = __webpack_require__("hwdV").Buffer; // prototype class for hash functions


function Hash(blockSize, finalSize) {
  this._block = Buffer.alloc(blockSize);
  this._finalSize = finalSize;
  this._blockSize = blockSize;
  this._len = 0;
}

Hash.prototype.update = function (data, enc) {
  if (typeof data === 'string') {
    enc = enc || 'utf8';
    data = Buffer.from(data, enc);
  }

  var block = this._block;
  var blockSize = this._blockSize;
  var length = data.length;
  var accum = this._len;

  for (var offset = 0; offset < length;) {
    var assigned = accum % blockSize;
    var remainder = Math.min(length - offset, blockSize - assigned);

    for (var i = 0; i < remainder; i++) {
      block[assigned + i] = data[offset + i];
    }

    accum += remainder;
    offset += remainder;

    if (accum % blockSize === 0) {
      this._update(block);
    }
  }

  this._len += length;
  return this;
};

Hash.prototype.digest = function (enc) {
  var rem = this._len % this._blockSize;
  this._block[rem] = 0x80; // zero (rem + 1) trailing bits, where (rem + 1) is the smallest
  // non-negative solution to the equation (length + 1 + (rem + 1)) === finalSize mod blockSize

  this._block.fill(0, rem + 1);

  if (rem >= this._finalSize) {
    this._update(this._block);

    this._block.fill(0);
  }

  var bits = this._len * 8; // uint32

  if (bits <= 0xffffffff) {
    this._block.writeUInt32BE(bits, this._blockSize - 4); // uint64

  } else {
    var lowBits = (bits & 0xffffffff) >>> 0;
    var highBits = (bits - lowBits) / 0x100000000;

    this._block.writeUInt32BE(highBits, this._blockSize - 8);

    this._block.writeUInt32BE(lowBits, this._blockSize - 4);
  }

  this._update(this._block);

  var hash = this._hash();

  return enc ? hash.toString(enc) : hash;
};

Hash.prototype._update = function () {
  throw new Error('_update must be implemented by subclass');
};

module.exports = Hash;

/***/ }),

/***/ "tnUB":
/***/ (function(module) {

module.exports = JSON.parse("{\"File\":\"ファイル\",\"Folder\":\"フォルダー\"}");

/***/ }),

/***/ "tpL1":
/***/ (function(module, exports, __webpack_require__) {

var Buffer = __webpack_require__("hwdV").Buffer;

var createHash = __webpack_require__("mObS");

var stream = __webpack_require__("43KI");

var inherits = __webpack_require__("P7XM");

var sign = __webpack_require__("b+dc");

var verify = __webpack_require__("mAz1");

var algorithms = __webpack_require__("tOiH");

Object.keys(algorithms).forEach(function (key) {
  algorithms[key].id = Buffer.from(algorithms[key].id, 'hex');
  algorithms[key.toLowerCase()] = algorithms[key];
});

function Sign(algorithm) {
  stream.Writable.call(this);
  var data = algorithms[algorithm];
  if (!data) throw new Error('Unknown message digest');
  this._hashType = data.hash;
  this._hash = createHash(data.hash);
  this._tag = data.id;
  this._signType = data.sign;
}

inherits(Sign, stream.Writable);

Sign.prototype._write = function _write(data, _, done) {
  this._hash.update(data);

  done();
};

Sign.prototype.update = function update(data, enc) {
  if (typeof data === 'string') data = Buffer.from(data, enc);

  this._hash.update(data);

  return this;
};

Sign.prototype.sign = function signMethod(key, enc) {
  this.end();

  var hash = this._hash.digest();

  var sig = sign(hash, key, this._hashType, this._signType, this._tag);
  return enc ? sig.toString(enc) : sig;
};

function Verify(algorithm) {
  stream.Writable.call(this);
  var data = algorithms[algorithm];
  if (!data) throw new Error('Unknown message digest');
  this._hash = createHash(data.hash);
  this._tag = data.id;
  this._signType = data.sign;
}

inherits(Verify, stream.Writable);

Verify.prototype._write = function _write(data, _, done) {
  this._hash.update(data);

  done();
};

Verify.prototype.update = function update(data, enc) {
  if (typeof data === 'string') data = Buffer.from(data, enc);

  this._hash.update(data);

  return this;
};

Verify.prototype.verify = function verifyMethod(key, sig, enc) {
  if (typeof sig === 'string') sig = Buffer.from(sig, enc);
  this.end();

  var hash = this._hash.digest();

  return verify(sig, hash, key, this._signType, this._tag);
};

function createSign(algorithm) {
  return new Sign(algorithm);
}

function createVerify(algorithm) {
  return new Verify(algorithm);
}

module.exports = {
  Sign: createSign,
  Verify: createVerify,
  createSign: createSign,
  createVerify: createVerify
};

/***/ }),

/***/ "tqTu":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = DropdownButton;

var _Button = _interopRequireDefault(__webpack_require__("Cn9g"));

var _Dropdown = _interopRequireDefault(__webpack_require__("T1rY"));

var _Menu = __webpack_require__("kzNO");

var _More = _interopRequireDefault(__webpack_require__("qeeD"));

var _propTypes = _interopRequireDefault(__webpack_require__("17x9"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

const _excluded = ["alignRight", "onClose", "onOpen", "onSelect", "children", "closeOnSelect", "menuClassName", "holdAffordance", "onClick", "boundariesElement"];

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

function DropdownButton(_ref) {
  let {
    alignRight,
    onClose,
    onOpen,
    onSelect,
    children,
    closeOnSelect,
    menuClassName,
    holdAffordance,
    onClick,
    boundariesElement
  } = _ref,
      props = _objectWithoutProperties(_ref, _excluded);

  let trigger = holdAffordance ? 'longClick' : undefined;
  return /*#__PURE__*/_react.default.createElement(_Dropdown.default, {
    style: {
      display: 'inline-block'
    },
    onClose: onClose,
    onOpen: onOpen,
    onClick: onClick,
    onSelect: onSelect,
    alignRight: alignRight,
    closeOnSelect: closeOnSelect,
    trigger: trigger,
    boundariesElement: boundariesElement
  }, /*#__PURE__*/_react.default.createElement(_Button.default, _extends({
    variant: "action",
    dropdownButton: true,
    quiet: true,
    holdAffordance: holdAffordance,
    icon: /*#__PURE__*/_react.default.createElement(_More.default, {
      alt: "\u2026"
    })
  }, props)), /*#__PURE__*/_react.default.createElement(_Menu.Menu, {
    className: menuClassName,
    dropdownMenu: true
  }, children));
}

DropdownButton.propTypes = {
  /**
   * If true, dropdown will close on selection of an item
   */
  closeOnSelect: _propTypes.default.bool,

  /**
   * Callback for when the dropdown is opened
   */
  onOpen: _propTypes.default.func,

  /**
   * Callback for when the dropdown is closed
   */
  onClose: _propTypes.default.func,

  /**
   * Callback for when an item is selected from the dropdown
   */
  onSelect: _propTypes.default.func,

  /**
   * Aligns the dropdown to the right or left of the button opening the dropdown
   */
  alignRight: _propTypes.default.bool,

  /**
   * Custom classname to apply to the Menu
   */
  menuClassName: _propTypes.default.string,

  /**
   * Whether to activate using a long click
   */
  holdAffordance: _propTypes.default.bool
};

/***/ }),

/***/ "trqI":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = Icon;

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _propTypes = _interopRequireDefault(__webpack_require__("17x9"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

const _excluded = ["icon", "size", "className", "children", "aria-label", "aria-hidden", "role", "alt"];

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function ownKeys(object, enumerableOnly) {
  var keys = Object.keys(object);

  if (Object.getOwnPropertySymbols) {
    var symbols = Object.getOwnPropertySymbols(object);

    if (enumerableOnly) {
      symbols = symbols.filter(function (sym) {
        return Object.getOwnPropertyDescriptor(object, sym).enumerable;
      });
    }

    keys.push.apply(keys, symbols);
  }

  return keys;
}

function _objectSpread(target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i] != null ? arguments[i] : {};

    if (i % 2) {
      ownKeys(Object(source), true).forEach(function (key) {
        _defineProperty(target, key, source[key]);
      });
    } else if (Object.getOwnPropertyDescriptors) {
      Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
    } else {
      ownKeys(Object(source)).forEach(function (key) {
        Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
      });
    }
  }

  return target;
}

function _defineProperty(obj, key, value) {
  if (key in obj) {
    Object.defineProperty(obj, key, {
      value: value,
      enumerable: true,
      configurable: true,
      writable: true
    });
  } else {
    obj[key] = value;
  }

  return obj;
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

if (false) {} else if (false) {} else {
  __webpack_require__("az20");
}

const SIZES = {
  XXS: 18,
  XS: 24,
  S: 18,
  M: 24,
  L: 18,
  XL: 24,
  XXL: 24
};

function Icon(_ref) {
  let {
    icon,
    // add, bell, heart, star
    size = 'M',
    // XS, S, M, L
    className,
    children,
    'aria-label': ariaLabel,
    'aria-hidden': ariaHidden,
    role = 'img',
    alt
  } = _ref,
      otherProps = _objectWithoutProperties(_ref, _excluded);

  const sizeKey = SIZES[size];
  let svg = icon && icon[sizeKey] || icon || children;

  if (typeof svg === 'string') {
    throw new Error('String icon names are deprecated. Please import icons from react-spectrum/Icon/IconName and render as <IconName />.');
  }

  if (!ariaHidden || ariaHidden === 'false') {
    ariaHidden = undefined;
  }

  return /*#__PURE__*/_react.default.cloneElement(svg, _objectSpread({
    focusable: 'false',
    'aria-label': ariaLabel || alt,
    'aria-hidden': ariaLabel || alt ? ariaHidden : true,
    role,
    className: (0, _classnames.default)(svg.props.className, 'spectrum-Icon', {
      [`spectrum-Icon--size${size}`]: size
    }, className)
  }, otherProps));
}

Icon.displayName = 'Icon';
Icon.propTypes = {
  /**
   * Size of icon, XXS to XXL
   */
  size: _propTypes.default.string
};

/***/ }),

/***/ "txkJ":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _autobindDecorator = _interopRequireDefault(__webpack_require__("gKdT"));

var _Button = _interopRequireDefault(__webpack_require__("Cn9g"));

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _icon = __webpack_require__("vo16");

var _convertUnsafeMethod = _interopRequireDefault(__webpack_require__("8nyd"));

var _CrossSmall = _interopRequireDefault(__webpack_require__("JBog"));

var _intl = __webpack_require__("Lpon");

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

var _Search = _interopRequireDefault(__webpack_require__("h2jO"));

var _UxpTextfield = _interopRequireDefault(__webpack_require__("pxfz"));

const _excluded = ["disabled", "className", "icon", "role"];

var _class;

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

const intlMessages = {
  "cs-CZ": _interopRequireDefault(__webpack_require__("9BkY")).default,
  "da-DK": _interopRequireDefault(__webpack_require__("Z4Qv")).default,
  "de-DE": _interopRequireDefault(__webpack_require__("Wn8L")).default,
  "en-US": _interopRequireDefault(__webpack_require__("SZsF")).default,
  "es-ES": _interopRequireDefault(__webpack_require__("X6X4")).default,
  "fi-FI": _interopRequireDefault(__webpack_require__("ci8G")).default,
  "fr-FR": _interopRequireDefault(__webpack_require__("b0oQ")).default,
  "hu-HU": _interopRequireDefault(__webpack_require__("2VgK")).default,
  "it-IT": _interopRequireDefault(__webpack_require__("43Oz")).default,
  "ja-JP": _interopRequireDefault(__webpack_require__("LTJJ")).default,
  "ko-KR": _interopRequireDefault(__webpack_require__("UTaQ")).default,
  "nb-NO": _interopRequireDefault(__webpack_require__("ij7w")).default,
  "nl-NL": _interopRequireDefault(__webpack_require__("tK/0")).default,
  "pl-PL": _interopRequireDefault(__webpack_require__("88qO")).default,
  "pt-BR": _interopRequireDefault(__webpack_require__("CsEq")).default,
  "ru-RU": _interopRequireDefault(__webpack_require__("rJ5o")).default,
  "sv-SE": _interopRequireDefault(__webpack_require__("wzac")).default,
  "tr-TR": _interopRequireDefault(__webpack_require__("l5XG")).default,
  "uk-UA": _interopRequireDefault(__webpack_require__("lhlH")).default,
  "zh-CN": _interopRequireDefault(__webpack_require__("o2vJ")).default,
  "zh-TW": _interopRequireDefault(__webpack_require__("Cr+W")).default
};

if (false) {} else if (false) {} else {
  __webpack_require__("sR/5");
}

if (true) __webpack_require__("ywVk");
if (true) __webpack_require__("ovpu");
if (true) __webpack_require__("ReGk");
if (true) __webpack_require__("Oe9V");
const formatMessage = (0, _intl.messageFormatter)(intlMessages);

const normalizeValue = value => value || '';

let UxpSearch = (0, _convertUnsafeMethod.default)(_class = (0, _autobindDecorator.default)(_class = class UxpSearch extends _Search.default {
  constructor(...args) {
    var _temp;

    return _temp = super(...args), this.handleBlur = event => {
      if (this.searchContainer && this.searchContainer.contains(event.relatedTarget)) {
        // Do not handle blur event if the focus is being shifted to one of the search children
        return;
      }

      if (this.searchbox) {
        this.searchbox.handleBlur(event);
      }
    }, _temp;
  }

  UNSAFE_componentWillReceiveProps(props) {
    // If props.value is empty string the following logic won't run. But the logic should run if the string is empty.
    if (normalizeValue(props.value) !== this.state.value && props.value !== undefined && props.value !== null) {
      this.setState({
        value: props.value
      });
    }
  } // https://jira.corp.adobe.com/browse/UXP-16476
  // Handle Blur Event on the cross icon and propagate it to Autocomplete list via Textfield


  handleClearButtonClick(e) {
    // To sync up state of inputText in Textfield
    if (this.searchbox) {
      e.target.value = '';
      this.searchbox.onChange(e);
    }

    this.handleTextChange('', e, 'clearButton'); // restore focus to the searchbox

    if (this.searchbox) {
      this.searchbox.focus();
    }
  }

  render() {
    const _this$props = this.props,
          {
      disabled,
      className,
      icon,
      role = 'search'
    } = _this$props,
          otherProps = _objectWithoutProperties(_this$props, _excluded);

    const {
      value
    } = this.state;
    return /*#__PURE__*/_react.default.createElement("div", {
      role: role,
      className: (0, _classnames.default)('spectrum-Search', {
        'is-disabled': disabled
      }, className),
      ref: s => this.searchContainer = s
    }, /*#__PURE__*/_react.default.createElement(_UxpTextfield.default, _extends({
      role: "searchbox",
      ref: s => this.searchbox = s,
      className: "spectrum-Search-input",
      value: value,
      disabled: disabled
    }, otherProps, {
      onKeyDown: this.handleTextKeyDown,
      onChange: this.handleTextChange
    })), (0, _icon.cloneIcon)(icon, {
      className: 'spectrum-Search-icon',
      size: 'S'
    }), value !== '' && /*#__PURE__*/_react.default.createElement(_Button.default, {
      "aria-label": formatMessage('Clear search'),
      variant: "clear",
      icon: /*#__PURE__*/_react.default.createElement(_CrossSmall.default, null),
      onBlur: this.handleBlur,
      disabled: disabled,
      onClick: this.handleClearButtonClick
    }));
  }

}) || _class) || _class;

exports.default = UxpSearch;
UxpSearch.displayName = 'UxpSearch';

/***/ }),

/***/ "tyCa":
/***/ (function(module, exports) {



/***/ }),

/***/ "tyPb":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXPORTS
__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ SYNC_ERR_GO_URL_BASE; });

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__("q1tI");
var react_default = /*#__PURE__*/__webpack_require__.n(react);

// EXTERNAL MODULE: ./node_modules/mobx-react/index.module.js
var index_module = __webpack_require__("okNM");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/types/CDOReactIntlTyped.ts
var CDOReactIntlTyped = __webpack_require__("dSAe");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/urls.ts
var urls = __webpack_require__("RIxR");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/CDODialog.tsx
var CDODialog = __webpack_require__("Dc9i");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/components/CDOLink.tsx
var CDOLink = __webpack_require__("b3kR");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/styles/SyncErrorDialog.css
var styles_SyncErrorDialog = __webpack_require__("tFcS");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/components/SyncErrorDialog.tsx
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;
};
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2020 Adobe Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Incorporated.
 **************************************************************************/








var SyncErrorDialogResponse;
(function (SyncErrorDialogResponse) {
    SyncErrorDialogResponse[SyncErrorDialogResponse["Resolve"] = 0] = "Resolve";
    SyncErrorDialogResponse[SyncErrorDialogResponse["Open"] = 1] = "Open";
})(SyncErrorDialogResponse || (SyncErrorDialogResponse = {}));
let SyncErrorDialog_SyncErrorDialog = class SyncErrorDialog extends react_default.a.Component {
    constructor() {
        super(...arguments);
        this.docStore = this.props.docStore;
        this.onConfirm = () => {
            const { element, onDismissModalDialog } = this.props;
            onDismissModalDialog([[element], SyncErrorDialogResponse.Resolve]);
        };
        // While "Open" button is more like a secondary confirm button, the "Open" button must be
        // enabled while offline while the "Resolve" button is disabled. RS Dialog does not support
        // this, so the "Open" button is the cancel button instead.
        this.onCancel = () => {
            const { onDismissModalDialog, element } = this.props;
            // Returning [element] since this is really a secondary confirm, not a cancel
            onDismissModalDialog([[element], SyncErrorDialogResponse.Open]);
        };
    }
    render() {
        const { open, onDismissModalDialog, intl } = this.props;
        const { isOnline } = this.docStore;
        return (react_default.a.createElement(CDODialog["a" /* default */], { qeId: "SyncErrorDialog", title: intl.formatMessage({ id: 'dialog.syncError.heading' }), keyboardConfirm: false, disableEscKey: true, onConfirm: this.onConfirm, confirmLabel: intl.formatMessage({ id: 'dialog.syncError.resolveButton' }), onCancel: this.onCancel, cancelLabel: intl.formatMessage({ id: 'dialog.syncError.openButton' }), 
            // For clarity, explicitly disable the "Resolve" button when offline, even
            // though CDODialog does this by default.
            confirmDisabled: !isOnline, variant: "error", open: open, onDismissModalDialog: onDismissModalDialog },
            react_default.a.createElement(CDOReactIntlTyped["a" /* FormattedMessage */], { id: "dialog.syncError.body1", tagName: "p" }),
            react_default.a.createElement("p", null,
                react_default.a.createElement(CDOReactIntlTyped["a" /* FormattedMessage */], { id: "dialog.syncError.body2" }),
                ' ',
                react_default.a.createElement(CDOLink["a" /* default */], { href: Object(urls["h" /* localizedGoUrl */])(SYNC_ERR_GO_URL_BASE, intl.locale) },
                    react_default.a.createElement(CDOReactIntlTyped["a" /* FormattedMessage */], { id: "dialog.syncError.learnMore" }))),
            !isOnline && (react_default.a.createElement("b", null,
                react_default.a.createElement(CDOReactIntlTyped["a" /* FormattedMessage */], { id: "dialog.syncError.offline", tagName: "p" })))));
    }
};
SyncErrorDialog_SyncErrorDialog = __decorate([
    index_module["e" /* observer */]
], SyncErrorDialog_SyncErrorDialog);
/* harmony default export */ var components_SyncErrorDialog = (Object(CDOReactIntlTyped["e" /* injectIntl */])(SyncErrorDialog_SyncErrorDialog));


// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/types/SyncErrorResolutionFailureType.ts
var SyncErrorResolutionFailureType = __webpack_require__("sBaD");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/styles/SyncErrorResolutionFailureDialog.css
var styles_SyncErrorResolutionFailureDialog = __webpack_require__("bLaX");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/components/SyncErrorResolutionFailureDialog.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2020 Adobe Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Incorporated.
 **************************************************************************/








var SyncErrorResolutionFailureDialogResponse;
(function (SyncErrorResolutionFailureDialogResponse) {
    SyncErrorResolutionFailureDialogResponse[SyncErrorResolutionFailureDialogResponse["ContactSupport"] = 0] = "ContactSupport";
    SyncErrorResolutionFailureDialogResponse[SyncErrorResolutionFailureDialogResponse["Close"] = 1] = "Close";
})(SyncErrorResolutionFailureDialogResponse || (SyncErrorResolutionFailureDialogResponse = {}));
class SyncErrorResolutionFailureDialog_SyncErrorResolutionFailureDialog extends react_default.a.Component {
    constructor() {
        super(...arguments);
        this.onConfirm = (buttonType) => {
            const response = buttonType === 'primary'
                ? SyncErrorResolutionFailureDialogResponse.ContactSupport
                : SyncErrorResolutionFailureDialogResponse.Close;
            this.props.onDismissModalDialog([[], response]);
        };
    }
    render() {
        const { open, onDismissModalDialog, intl, failureType } = this.props;
        const msgIdPrefix = failureType === SyncErrorResolutionFailureType["a" /* default */].Duplicate
            ? 'dialog.syncErrorCopyFail'
            : 'dialog.syncErrorPurgeFail';
        return (react_default.a.createElement(CDODialog["a" /* default */], { qeId: "SyncErrorResolutionFailureDialog", title: intl.formatMessage({ id: `${msgIdPrefix}.heading` }), keyboardConfirm: false, disableEscKey: true, 
            // Contact/close buttons should be enabled when offline
            confirmEnabledOffline: true, onConfirm: this.onConfirm, confirmLabel: intl.formatMessage({ id: `${msgIdPrefix}.contactUs` }), secondaryLabel: intl.formatMessage({ id: `${msgIdPrefix}.closeButton` }), variant: "error", open: open, onDismissModalDialog: onDismissModalDialog },
            react_default.a.createElement(CDOReactIntlTyped["a" /* FormattedMessage */], { id: `${msgIdPrefix}.body1` }, (txt) => react_default.a.createElement("p", null, txt)),
            react_default.a.createElement(CDOReactIntlTyped["a" /* FormattedMessage */], { id: `${msgIdPrefix}.body2` }, (txt) => (react_default.a.createElement("p", null,
                txt,
                ' ',
                react_default.a.createElement(CDOLink["a" /* default */], { href: Object(urls["h" /* localizedGoUrl */])(SYNC_ERR_GO_URL_BASE, intl.locale) },
                    react_default.a.createElement(CDOReactIntlTyped["a" /* FormattedMessage */], { id: "dialog.syncError.learnMore" })))))));
    }
}
/* harmony default export */ var components_SyncErrorResolutionFailureDialog = (Object(CDOReactIntlTyped["e" /* injectIntl */])(SyncErrorResolutionFailureDialog_SyncErrorResolutionFailureDialog));


// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/launch-item.ts
var launch_item = __webpack_require__("Kko5");

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/metrics.ts
var metrics = __webpack_require__("jaHz");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/start-sync-error-resolve-workflow.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2020 Adobe Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Incorporated.
 **************************************************************************/







const SYNC_ERR_GO_URL_BASE = 'cloud-documents-stopped-syncing';
async function startSyncErrorResolveWorkflow({ element, cdoMetrics, callbacks, intl, docStore, openModalDialog, openToast, ingestSubcategory, }) {
    const correlationId = cdoMetrics.createCorrelationId();
    // By convention, response arguments are returned as array
    const response = (await openModalDialog(react_default.a.createElement(components_SyncErrorDialog, { element: element, docStore: docStore })))[1];
    if (response === SyncErrorDialogResponse.Open) {
        Object(launch_item["b" /* default */])([element], callbacks.onOpenDocuments);
        cdoMetrics.logUsageMetric({
            ingestSubcategory,
            element,
            subtype: metrics["a" /* ActionAnalyticsValue */].Open,
            menu: cdoMetrics.MenuType.Dialog,
            // TODO: metrics aren't defined yet https://jira.corp.adobe.com/browse/CCXCD-6871
            workflow: cdoMetrics.Workflow.ResolveSyncError,
        });
    }
    else {
        const analyticsValue = 'resolve-sync-error';
        // TODO: Determine what metrics to log. If we're following the SDM pattern, then
        // getUsageMetricLogger should be revised to accept either an Action or just the
        // analyticsValue, rather than faking an Action.
        const metricLogger = cdoMetrics.getUsageMetricLogger({
            analyticsValue,
            getAnalyticsOverrides: () => { },
        }, ingestSubcategory);
        try {
            metricLogger.start([element], cdoMetrics.EventType.Click, cdoMetrics.MenuType.Dialog);
            await docStore.resolveSyncError(element, intl.formatMessage({ id: 'action.resolve_sync_error.suffix' }), cdoMetrics.getOperationalMetricLogger(analyticsValue), correlationId);
            openToast({
                message: 'operation.resolve_sync_error.success',
                variant: 'success',
                values: {
                    name: element.title,
                },
            });
        }
        catch (e) {
            let failureType;
            if (e === SyncErrorResolutionFailureType["a" /* default */].Duplicate) {
                failureType = SyncErrorResolutionFailureType["a" /* default */].Duplicate;
            }
            else {
                failureType = SyncErrorResolutionFailureType["a" /* default */].Purge;
            }
            const errResponse = (await openModalDialog(react_default.a.createElement(components_SyncErrorResolutionFailureDialog, { failureType: failureType })))[1];
            if (errResponse === SyncErrorResolutionFailureDialogResponse.ContactSupport) {
                const goUrl = Object(urls["h" /* localizedGoUrl */])(SYNC_ERR_GO_URL_BASE, intl.locale, {
                    rghtup: 'autoOpen',
                });
                Object(urls["i" /* openExternalLink */])(goUrl, callbacks);
            }
        }
        finally {
            // Just like normal Actions, if the action completes, log a success.
            // Operation failures are logged as operational metrics.
            metricLogger.success();
        }
    }
}
/* harmony default export */ var start_sync_error_resolve_workflow = __webpack_exports__["b"] = (startSyncErrorResolveWorkflow);



/***/ }),

/***/ "tz+M":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var BN = __webpack_require__("OZ/i");

var utils = __webpack_require__("86MQ");

var assert = utils.assert;

function Signature(options, enc) {
  if (options instanceof Signature) return options;
  if (this._importDER(options, enc)) return;
  assert(options.r && options.s, 'Signature without r or s');
  this.r = new BN(options.r, 16);
  this.s = new BN(options.s, 16);
  if (options.recoveryParam === undefined) this.recoveryParam = null;else this.recoveryParam = options.recoveryParam;
}

module.exports = Signature;

function Position() {
  this.place = 0;
}

function getLength(buf, p) {
  var initial = buf[p.place++];

  if (!(initial & 0x80)) {
    return initial;
  }

  var octetLen = initial & 0xf; // Indefinite length or overflow

  if (octetLen === 0 || octetLen > 4) {
    return false;
  }

  var val = 0;

  for (var i = 0, off = p.place; i < octetLen; i++, off++) {
    val <<= 8;
    val |= buf[off];
    val >>>= 0;
  } // Leading zeroes


  if (val <= 0x7f) {
    return false;
  }

  p.place = off;
  return val;
}

function rmPadding(buf) {
  var i = 0;
  var len = buf.length - 1;

  while (!buf[i] && !(buf[i + 1] & 0x80) && i < len) {
    i++;
  }

  if (i === 0) {
    return buf;
  }

  return buf.slice(i);
}

Signature.prototype._importDER = function _importDER(data, enc) {
  data = utils.toArray(data, enc);
  var p = new Position();

  if (data[p.place++] !== 0x30) {
    return false;
  }

  var len = getLength(data, p);

  if (len === false) {
    return false;
  }

  if (len + p.place !== data.length) {
    return false;
  }

  if (data[p.place++] !== 0x02) {
    return false;
  }

  var rlen = getLength(data, p);

  if (rlen === false) {
    return false;
  }

  var r = data.slice(p.place, rlen + p.place);
  p.place += rlen;

  if (data[p.place++] !== 0x02) {
    return false;
  }

  var slen = getLength(data, p);

  if (slen === false) {
    return false;
  }

  if (data.length !== slen + p.place) {
    return false;
  }

  var s = data.slice(p.place, slen + p.place);

  if (r[0] === 0) {
    if (r[1] & 0x80) {
      r = r.slice(1);
    } else {
      // Leading zeroes
      return false;
    }
  }

  if (s[0] === 0) {
    if (s[1] & 0x80) {
      s = s.slice(1);
    } else {
      // Leading zeroes
      return false;
    }
  }

  this.r = new BN(r);
  this.s = new BN(s);
  this.recoveryParam = null;
  return true;
};

function constructLength(arr, len) {
  if (len < 0x80) {
    arr.push(len);
    return;
  }

  var octets = 1 + (Math.log(len) / Math.LN2 >>> 3);
  arr.push(octets | 0x80);

  while (--octets) {
    arr.push(len >>> (octets << 3) & 0xff);
  }

  arr.push(len);
}

Signature.prototype.toDER = function toDER(enc) {
  var r = this.r.toArray();
  var s = this.s.toArray(); // Pad values

  if (r[0] & 0x80) r = [0].concat(r); // Pad values

  if (s[0] & 0x80) s = [0].concat(s);
  r = rmPadding(r);
  s = rmPadding(s);

  while (!s[0] && !(s[1] & 0x80)) {
    s = s.slice(1);
  }

  var arr = [0x02];
  constructLength(arr, r.length);
  arr = arr.concat(r);
  arr.push(0x02);
  constructLength(arr, s.length);
  var backHalf = arr.concat(s);
  var res = [0x30];
  constructLength(res, backHalf.length);
  res = res.concat(backHalf);
  return utils.encode(res, enc);
};

/***/ }),

/***/ "u+8+":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("path", {
  d: "M20.894 14.565a11.881 11.881 0 0 1 2.078 1.076 9.861 9.861 0 1 1-.836 14.683l-5.762-5.779a1.087 1.087 0 1 0-1.558 1.516l5.791 5.809a12.036 12.036 0 1 0 .287-17.3zM6.74 25.671a9.729 9.729 0 0 0 9.733 9.729h5.084a14.226 14.226 0 0 1-2.675-2.168h-2.409a7.562 7.562 0 0 1 0-15.123 7.2 7.2 0 0 1 4.96 1.855l4.379 4.493a1.087 1.087 0 0 0 1.557-1.517l-4.38-4.5a9.413 9.413 0 0 0-6.522-2.507 9.725 9.725 0 0 0-9.727 9.73z"
}), React.createElement("path", {
  d: "M29.11 8.32a15.037 15.037 0 0 1 2.5 29.864s-2.014.216-3.657.216H16.474a12.733 12.733 0 0 1-.007-25.465 13.335 13.335 0 0 1 1.667.1l.711-.665A14.976 14.976 0 0 1 29.11 8.32zm0-1.6a16.57 16.57 0 0 0-11.359 4.486l-.181.169a14.995 14.995 0 0 0-1.1-.041A14.333 14.333 0 0 0 16.474 40h11.477c1.709 0 3.742-.216 3.827-.225A16.636 16.636 0 0 0 29.11 6.72z"
}));

/***/ }),

/***/ "u0Sq":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var utils = __webpack_require__("w8CP");

var common = __webpack_require__("7ckf");

var rotl32 = utils.rotl32;
var sum32 = utils.sum32;
var sum32_3 = utils.sum32_3;
var sum32_4 = utils.sum32_4;
var BlockHash = common.BlockHash;

function RIPEMD160() {
  if (!(this instanceof RIPEMD160)) return new RIPEMD160();
  BlockHash.call(this);
  this.h = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0];
  this.endian = 'little';
}

utils.inherits(RIPEMD160, BlockHash);
exports.ripemd160 = RIPEMD160;
RIPEMD160.blockSize = 512;
RIPEMD160.outSize = 160;
RIPEMD160.hmacStrength = 192;
RIPEMD160.padLength = 64;

RIPEMD160.prototype._update = function update(msg, start) {
  var A = this.h[0];
  var B = this.h[1];
  var C = this.h[2];
  var D = this.h[3];
  var E = this.h[4];
  var Ah = A;
  var Bh = B;
  var Ch = C;
  var Dh = D;
  var Eh = E;

  for (var j = 0; j < 80; j++) {
    var T = sum32(rotl32(sum32_4(A, f(j, B, C, D), msg[r[j] + start], K(j)), s[j]), E);
    A = E;
    E = D;
    D = rotl32(C, 10);
    C = B;
    B = T;
    T = sum32(rotl32(sum32_4(Ah, f(79 - j, Bh, Ch, Dh), msg[rh[j] + start], Kh(j)), sh[j]), Eh);
    Ah = Eh;
    Eh = Dh;
    Dh = rotl32(Ch, 10);
    Ch = Bh;
    Bh = T;
  }

  T = sum32_3(this.h[1], C, Dh);
  this.h[1] = sum32_3(this.h[2], D, Eh);
  this.h[2] = sum32_3(this.h[3], E, Ah);
  this.h[3] = sum32_3(this.h[4], A, Bh);
  this.h[4] = sum32_3(this.h[0], B, Ch);
  this.h[0] = T;
};

RIPEMD160.prototype._digest = function digest(enc) {
  if (enc === 'hex') return utils.toHex32(this.h, 'little');else return utils.split32(this.h, 'little');
};

function f(j, x, y, z) {
  if (j <= 15) return x ^ y ^ z;else if (j <= 31) return x & y | ~x & z;else if (j <= 47) return (x | ~y) ^ z;else if (j <= 63) return x & z | y & ~z;else return x ^ (y | ~z);
}

function K(j) {
  if (j <= 15) return 0x00000000;else if (j <= 31) return 0x5a827999;else if (j <= 47) return 0x6ed9eba1;else if (j <= 63) return 0x8f1bbcdc;else return 0xa953fd4e;
}

function Kh(j) {
  if (j <= 15) return 0x50a28be6;else if (j <= 31) return 0x5c4dd124;else if (j <= 47) return 0x6d703ef3;else if (j <= 63) return 0x7a6d76e9;else return 0x00000000;
}

var r = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13];
var rh = [5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11];
var s = [11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6];
var sh = [8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11];

/***/ }),

/***/ "u3CA":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("path", {
  d: "M40 16.564a.5.5 0 0 1 .858-.349l6.989 7.431a.5.5 0 0 1 0 .708l-6.989 7.457a.5.5 0 0 1-.858-.349V26H25a1 1 0 0 1-1-1v-2a1 1 0 0 1 1-1h15z"
}), React.createElement("path", {
  d: "M4 6h30a2 2 0 0 1 2 2v10h-4v-8H6v28h26v-8h4v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2z"
}));

/***/ }),

/***/ "u6xD":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = OpenTransition;

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

var _Transition = _interopRequireDefault(__webpack_require__("S3Uj"));

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

const OPEN_STATES = {
  entering: false,
  entered: true
};
/**
 * timeout issues adding css animations to enter may be related to
 * https://github.com/reactjs/react-transition-group/issues/189 or
 * https://github.com/reactjs/react-transition-group/issues/22
 * my VM isn't good enough to debug accurately and get a better answer
 *
 * as a result, use enter 0 so that is-open is applied once entered
 * it doesn't matter if we know when the css-animation is done on entering
 * for exiting though, give time for the css-animation to play
 * before removing from the DOM
 * **note** hitting esc bypasses exit animation for anyone testing
 */

function OpenTransition(props) {
  return /*#__PURE__*/_react.default.createElement(_Transition.default, _extends({
    timeout: {
      enter: 0,
      exit: 125
    }
  }, props), state => /*#__PURE__*/_react.default.cloneElement(props.children, {
    open: !!OPEN_STATES[state]
  }));
}

/***/ }),

/***/ "u7n1":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* unused harmony export cacheableUIConfig */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return UIConfig; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return emptyUIConfig; });
/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("2vnA");
/* harmony import */ var _packages_CDOView_stores_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("q0hk");
/* harmony import */ var _stores_InternalPreferencesStore__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("bitV");
/* harmony import */ var _utils_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("YVc3");
/* harmony import */ var _ccx_public_shared_asset_model_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("m4Z2");
/* harmony import */ var _components_header_AppCompatibleFilterButton__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("oINU");
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2020 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
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;
};
var __metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var _a, _b, _c, _d, _e, _f, _g;






const cacheableUIConfig = [
    'sortBy',
    'sortDirection',
    'view',
    'favoritedSpacesFilter',
    'collapsedTeams',
    'activeFilterPreference',
    'dontShowAgain',
];
const instances = new Map();
class UIConfig {
    constructor(namespace, preferences, inUAP) {
        this.namespace = namespace;
        this.preferences = preferences;
        this.inUAP = inUAP;
        this.loadSettings();
    }
    get cdoUISettings() {
        return {
            view_type: this.view,
            sort_order: this.sortDirection,
            sequence: this.sortBy,
        };
    }
    get activeFilterPreference() {
        return this._activeFilterPreference;
    }
    set activeFilterPreference(filter) {
        this._activeFilterPreference = filter;
        this.updateStorage();
    }
    get sortBy() {
        return this._sortBy;
    }
    set sortBy(sortBy) {
        this._sortBy = sortBy;
        this.updateStorage();
    }
    get sortDirection() {
        return this._sortDirection;
    }
    set sortDirection(sortDirection) {
        this._sortDirection = sortDirection;
        this.updateStorage();
    }
    get orderPrefix() {
        return this.sortDirection === 'asc' ? '+' : '-';
    }
    get sortByOrder() {
        return `${this.orderPrefix}${this.sortBy}`;
    }
    get view() {
        return this._view;
    }
    set view(view) {
        this._view = view;
        this.updateStorage();
    }
    get favoritedSpacesFilter() {
        return this._favoritedSpacesFilter;
    }
    set favoritedSpacesFilter(filter) {
        this._favoritedSpacesFilter = filter;
        this.updateStorage();
    }
    get collapsedTeams() {
        return this._collapsedTeams;
    }
    set collapsedTeams(collapseData) {
        this._collapsedTeams = new Map(Object.entries(collapseData));
    }
    get dontShowAgain() {
        return this._dontShowAgain;
    }
    set dontShowAgain(dontShowAgainData) {
        this._dontShowAgain = new Map(Object.entries(dontShowAgainData));
    }
    isTeamCollapsed(teamId) {
        return !!this._collapsedTeams.get(teamId);
    }
    setTeamCollapsed(teamId, isCollapsed) {
        if (!teamId) {
            return;
        }
        this._collapsedTeams.set(teamId, isCollapsed);
        this.updateStorage();
    }
    isDontShowEnabled(id) {
        return !!this._dontShowAgain.get(id);
    }
    setDontShowAgain(dialogId, isDontShowEnabled) {
        if (!dialogId) {
            return;
        }
        this._dontShowAgain.set(dialogId, isDontShowEnabled);
        this.updateStorage();
    }
    /** Get SAM.js's SpaceOrder listing parameter (based on the current sort) */
    toSpaceOrder() {
        const direction = this.sortDirection === 'asc' ? 'ascending' : 'descending';
        let field;
        switch (this.sortBy) {
            case _packages_CDOView_stores_constants__WEBPACK_IMPORTED_MODULE_1__[/* UXSortBy */ "f"].createdDate:
                field = 'created';
                break;
            case _packages_CDOView_stores_constants__WEBPACK_IMPORTED_MODULE_1__[/* UXSortBy */ "f"].name:
            default:
                field = 'name';
        }
        return new _ccx_public_shared_asset_model_js__WEBPACK_IMPORTED_MODULE_4__[/* SpaceOrder */ "w"](direction, field);
    }
    static getStorageNamespace(namespace, inUAP) {
        return `CCSpacesSettings${namespace}${inUAP ? '-UAP' : ''}`;
    }
    static getInstance(preferencesStore, configNamespace, inUAP) {
        const storageNamespace = UIConfig.getStorageNamespace(configNamespace, inUAP);
        let config = instances.get(storageNamespace);
        if (!config) {
            config = new UIConfig(configNamespace, preferencesStore, inUAP);
            instances.set(storageNamespace, config);
        }
        return config;
    }
    static getConfigByNamespace(app, namespace) {
        return UIConfig.getInstance(app.preferencesStore, namespace, app.launchedFromCDP);
    }
    async loadSettings() {
        const defaults = {
            sortDirection: _packages_CDOView_stores_constants__WEBPACK_IMPORTED_MODULE_1__[/* UXSortDir */ "h"].asc,
            sortBy: _packages_CDOView_stores_constants__WEBPACK_IMPORTED_MODULE_1__[/* UXSortBy */ "f"].name,
            view: _utils_constants__WEBPACK_IMPORTED_MODULE_3__[/* ViewMode */ "L"].Grid,
            favoritedSpacesFilter: 'all',
            collapsedTeams: {},
            dontShowAgain: {},
            activeFilterPreference: _components_header_AppCompatibleFilterButton__WEBPACK_IMPORTED_MODULE_5__[/* AppCompatibleFilterOptions */ "a"].showEverything,
        };
        const config = {
            ...defaults,
        };
        this.mapToUIConfig(config);
        const userOverrides = await this.getStorage();
        this.mapToUIConfig(userOverrides);
    }
    mapToUIConfig(config) {
        if (config) {
            Object.keys(config).forEach(key => {
                if (config[key] && cacheableUIConfig.includes(key)) {
                    this[key] = config[key];
                }
            });
        }
    }
    async updateStorage() {
        const storage = await this.getStorage();
        const { sortBy, sortDirection, view, favoritedSpacesFilter, collapsedTeams, activeFilterPreference, dontShowAgain, } = this;
        const nextStorage = JSON.stringify({
            ...storage,
            sortBy,
            sortDirection,
            view,
            favoritedSpacesFilter,
            collapsedTeams,
            activeFilterPreference,
            dontShowAgain,
        });
        const storageNamespace = UIConfig.getStorageNamespace(this.namespace, this.inUAP);
        this.preferences.setValue(storageNamespace, nextStorage);
        // This code one-way-syncs changes from the main views to UAP views, but
        // not the other way around. For now, this gives us the following:
        //
        // - When UAP opens, its settings will initially match the main view.
        // - As the user navigates in UAP, they can change sorts as they browse,
        //   and it'll work correctly navigating back and forth.
        // - If they change the sort in the main view, the next time they launch
        //   UAP, it'll use the settings from the main view.
        // - If they leave UAP and come back without changing anything else, UAP
        //   will probably still show their previous UAP settings, since we only
        //   sync settings when the main view's change. (This may be desirable?)
        // - Side effect: Normally the user shouldn't be able to change the main
        //   view's settings while UAP is open. If they did, UAP would update
        //   immediately, but since this is not an expected use case, it's
        //   probably OK for now until we can do the following:
        //
        // NOTE: This approach isn't ideal, and we should consider refactoring
        // it with more knowledge of browseSession. Ideally, we only want to
        // "copy the settings from the main view" when the user first launches
        // UAP -- and then we should let UAP have its own copy of settings
        // during that session.
        if (!this.inUAP) {
            const uapStorageNamespace = UIConfig.getStorageNamespace(this.namespace, true);
            this.preferences.setValue(uapStorageNamespace, nextStorage);
            const uapConfig = UIConfig.getInstance(this.preferences, this.namespace, true);
            uapConfig.loadSettings();
        }
    }
    async getStorage() {
        try {
            let result;
            const storageNamespace = UIConfig.getStorageNamespace(this.namespace, this.inUAP);
            let storage = await this.preferences.getValue(storageNamespace);
            if (storage) {
                result = JSON.parse(storage);
            }
            if (typeof result !== 'object') {
                return {};
            }
            else {
                return result;
            }
        }
        catch (e) {
            return {};
        }
    }
}
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", typeof (_a = typeof _packages_CDOView_stores_constants__WEBPACK_IMPORTED_MODULE_1__[/* UXSortDir */ "h"] !== "undefined" && _packages_CDOView_stores_constants__WEBPACK_IMPORTED_MODULE_1__[/* UXSortDir */ "h"]) === "function" ? _a : Object)
], UIConfig.prototype, "_sortDirection", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", typeof (_b = typeof _packages_CDOView_stores_constants__WEBPACK_IMPORTED_MODULE_1__["UXSortByForACP"] !== "undefined" && _packages_CDOView_stores_constants__WEBPACK_IMPORTED_MODULE_1__["UXSortByForACP"]) === "function" ? _b : Object)
], UIConfig.prototype, "_sortBy", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", typeof (_c = typeof _utils_constants__WEBPACK_IMPORTED_MODULE_3__[/* ViewMode */ "L"] !== "undefined" && _utils_constants__WEBPACK_IMPORTED_MODULE_3__[/* ViewMode */ "L"]) === "function" ? _c : Object)
], UIConfig.prototype, "_view", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", typeof (_d = typeof _packages_CDOView_stores_constants__WEBPACK_IMPORTED_MODULE_1__["FavoritedSpacesFilter"] !== "undefined" && _packages_CDOView_stores_constants__WEBPACK_IMPORTED_MODULE_1__["FavoritedSpacesFilter"]) === "function" ? _d : Object)
], UIConfig.prototype, "_favoritedSpacesFilter", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", typeof (_e = typeof _utils_constants__WEBPACK_IMPORTED_MODULE_3__["TeamCollapsedSetting"] !== "undefined" && _utils_constants__WEBPACK_IMPORTED_MODULE_3__["TeamCollapsedSetting"]) === "function" ? _e : Object)
], UIConfig.prototype, "_collapsedTeams", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", typeof (_f = typeof _components_header_AppCompatibleFilterButton__WEBPACK_IMPORTED_MODULE_5__[/* AppCompatibleFilterOptions */ "a"] !== "undefined" && _components_header_AppCompatibleFilterButton__WEBPACK_IMPORTED_MODULE_5__[/* AppCompatibleFilterOptions */ "a"]) === "function" ? _f : Object)
], UIConfig.prototype, "_activeFilterPreference", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", typeof (_g = typeof _utils_constants__WEBPACK_IMPORTED_MODULE_3__["DialogDontShowAgainPref"] !== "undefined" && _utils_constants__WEBPACK_IMPORTED_MODULE_3__["DialogDontShowAgainPref"]) === "function" ? _g : Object)
], UIConfig.prototype, "_dontShowAgain", void 0);
const emptyUIConfig = UIConfig.getInstance(_stores_InternalPreferencesStore__WEBPACK_IMPORTED_MODULE_2__[/* emptyPreferencesStore */ "b"], _utils_constants__WEBPACK_IMPORTED_MODULE_3__[/* UiConfigNamespaces */ "J"].Empty, false);


/***/ }),

/***/ "u8Dt":
/***/ (function(module, exports, __webpack_require__) {

var nativeCreate = __webpack_require__("YESw");
/** Used to stand-in for `undefined` hash values. */


var HASH_UNDEFINED = '__lodash_hash_undefined__';
/** Used for built-in method references. */

var objectProto = Object.prototype;
/** Used to check objects for own properties. */

var hasOwnProperty = objectProto.hasOwnProperty;
/**
 * Gets the hash value for `key`.
 *
 * @private
 * @name get
 * @memberOf Hash
 * @param {string} key The key of the value to get.
 * @returns {*} Returns the entry value.
 */

function hashGet(key) {
  var data = this.__data__;

  if (nativeCreate) {
    var result = data[key];
    return result === HASH_UNDEFINED ? undefined : result;
  }

  return hasOwnProperty.call(data, key) ? data[key] : undefined;
}

module.exports = hashGet;

/***/ }),

/***/ "uB7f":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("path", {
  d: "M33 6h-3V3a1 1 0 0 0-1-1H3a1 1 0 0 0-1 1v26a1 1 0 0 0 1 1h3v3a1 1 0 0 0 1 1h26a1 1 0 0 0 1-1V7a1 1 0 0 0-1-1zM4 28V4h24v2H7a1 1 0 0 0-1 1v21zm28 4H8V8h14v14l4-3 4 3V8h2z"
}));

/***/ }),

/***/ "uBoz":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/

var _a;

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.ACPL_STORAGE_METADATA_URI = exports.ACPL_SYSTEM_URI = exports.ACPL_CACHE_OPS_URI = exports.MIMETYPES = exports.XD_MIMETYPE = exports.XD_LEGACY_SENTINEL_CHARACTER = exports.FEATURE_FLAGS = exports.MINIMUM_ACCEPTED_TIMEOUT = exports.INGEST_INITIAL_STATE = exports.INGEST_PROJECT_VALUE = exports.INGEST_DEBOUNCE_VALUE = exports.HTTP_STATUS_NOT_FOUND = exports.HTTP_STATUS_UNAUTHORIZED = exports.HTTP_STATUS_BAD_REQUEST = exports.HTTP_STATUS_ACCEPTED = exports.STORAGE_NEXT_START_HEADER = exports.ACPL_SOURCE_HEADER = exports.FOLDER_MIMETYPE = exports.TEAMS_FULL_PATH = exports.TEAMS_SUB_PATH = exports.ARCHIVE_FOLDER_PATH = exports.ROOT_FOLDER_PATH = exports.RENDITION_FORMAT = exports.RENDITION_SIZE = exports.RENDITION_RELTYPE = exports.METADATA_RELTYPE = exports.STABLE_URI_RELTYPE = exports.LOCAL_URI_RELTYPE = exports.CLOUD_URI_RELTYPE = exports.PATH_RELTYPE = exports.NEXT_PAGE_RELTYPE = exports.MONITOR_RELTYPE = exports.OP_CONTENT_TYPE = exports.SEARCH_CONTENT_TYPE = exports.SEARCH_ACPL_MODE = exports.USERINFO_URI = exports.AUTH_URI = exports.DEFAULT_API_KEY = exports.CC_CLOUD_ID = exports.ADOBE_SERVICE_ENDPOINTS = exports.DEFAULTS = void 0;
exports.DEFAULTS = {
  SERVICE_ENVIRONMENT: 'prod',
  SEARCH_PAGE_SIZE: 100,
  FOLDER_LISTING_PAGE_SIZE: 100,
  DOCUMENT_FILTER: ['application/vnd.adobe.xd.cloudproject+dcx']
};
exports.ADOBE_SERVICE_ENDPOINTS = {
  protocol: 'https',
  hosts: {
    stage: {
      search: 'adobesearch-stage.adobe.io',
      storage: 'cc-api-storage-stage.adobe.io'
    },
    prod: {
      search: 'adobesearch.adobe.io',
      storage: 'cc-api-storage.adobe.io'
    }
  }
};
exports.CC_CLOUD_ID = '00000000-0000-0000-0000-000000000000';
exports.DEFAULT_API_KEY = 'CCXWeb1';
exports.AUTH_URI = 'https://acp.local/auth';
exports.USERINFO_URI = 'https://acp.local/userinfo';
exports.SEARCH_ACPL_MODE = 'all';
exports.SEARCH_CONTENT_TYPE = "application/vnd.adobe.search-request+json";
exports.OP_CONTENT_TYPE = "application/vnd.adobe.asset-operation+json";
exports.MONITOR_RELTYPE = 'monitor';
exports.NEXT_PAGE_RELTYPE = 'next_page';
exports.PATH_RELTYPE = "http://ns.adobe.com/ccapi/path";
exports.CLOUD_URI_RELTYPE = "http://ns.adobe.com/ccapi/id";
exports.LOCAL_URI_RELTYPE = "http://ns.adobe.com/ccapi/local_id";
exports.STABLE_URI_RELTYPE = "http://ns.adobe.com/ccapi/stable_id";
exports.METADATA_RELTYPE = 'metadata';
exports.RENDITION_RELTYPE = 'rendition';
exports.RENDITION_SIZE = 512;
exports.RENDITION_FORMAT = 'png';
exports.ROOT_FOLDER_PATH = 'cloud-content';
exports.ARCHIVE_FOLDER_PATH = 'cloud-content-archive';
exports.TEAMS_SUB_PATH = 'teams\u00a0';
exports.TEAMS_FULL_PATH = exports.ROOT_FOLDER_PATH + "/" + exports.TEAMS_SUB_PATH;
exports.FOLDER_MIMETYPE = 'application/vnd.adobe.directory+json'; // Header key used to specify whether a Storage listing should come from cache or the cloud

exports.ACPL_SOURCE_HEADER = 'x-acpl-source'; // Header key used from storage responses to indicate the value for the `start` parameter to get
// additional pages in the folder liisting, if any

exports.STORAGE_NEXT_START_HEADER = 'x-children-next-start';
exports.HTTP_STATUS_ACCEPTED = 202;
exports.HTTP_STATUS_BAD_REQUEST = 400;
exports.HTTP_STATUS_UNAUTHORIZED = 401;
exports.HTTP_STATUS_NOT_FOUND = 404;
exports.INGEST_DEBOUNCE_VALUE = 3000;
exports.INGEST_PROJECT_VALUE = 'acp-fetch';
exports.INGEST_INITIAL_STATE = {
  env: {
    com: {
      name: 'ACPFetch'
    }
  }
};
/**
 * The setTimeout amount for this component.
 */

exports.MINIMUM_ACCEPTED_TIMEOUT = 100;
exports.FEATURE_FLAGS = {
  disableACPL: 'disableACPL',
  registerUserWithACPL: 'registerUserWithACPL',
  enableAssetRef: 'enableAssetRef'
};
/**
 * List of file types for different clients.
 */

exports.XD_LEGACY_SENTINEL_CHARACTER = '\u0001';
exports.XD_MIMETYPE = 'application/vnd.adobe.xd.cloudproject+dcx';
exports.MIMETYPES = (_a = {}, _a[exports.XD_MIMETYPE] = {
  ext: 'xd'
}, _a['application/vnd.adobe.illustrator'] = {
  ext: 'ai'
}, _a['image/vnd.adobe.photoshop'] = {
  ext: 'psd'
}, _a['document/vnd.adobe.cpsd+dcx'] = {
  ext: 'psdc'
}, _a);
exports.ACPL_CACHE_OPS_URI = 'https://acp.local/cache/ops';
exports.ACPL_SYSTEM_URI = 'https://acpl.local/System';
exports.ACPL_STORAGE_METADATA_URI = 'https://acp.local/storage/metadata';

/***/ }),

/***/ "uDfV":
/***/ (function(module, exports, __webpack_require__) {

var inherits = __webpack_require__("P7XM");

var SHA512 = __webpack_require__("T9HO");

var Hash = __webpack_require__("tnIz");

var Buffer = __webpack_require__("hwdV").Buffer;

var W = new Array(160);

function Sha384() {
  this.init();
  this._w = W;
  Hash.call(this, 128, 112);
}

inherits(Sha384, SHA512);

Sha384.prototype.init = function () {
  this._ah = 0xcbbb9d5d;
  this._bh = 0x629a292a;
  this._ch = 0x9159015a;
  this._dh = 0x152fecd8;
  this._eh = 0x67332667;
  this._fh = 0x8eb44a87;
  this._gh = 0xdb0c2e0d;
  this._hh = 0x47b5481d;
  this._al = 0xc1059ed8;
  this._bl = 0x367cd507;
  this._cl = 0x3070dd17;
  this._dl = 0xf70e5939;
  this._el = 0xffc00b31;
  this._fl = 0x68581511;
  this._gl = 0x64f98fa7;
  this._hl = 0xbefa4fa4;
  return this;
};

Sha384.prototype._hash = function () {
  var H = Buffer.allocUnsafe(48);

  function writeInt64BE(h, l, offset) {
    H.writeInt32BE(h, offset);
    H.writeInt32BE(l, offset + 4);
  }

  writeInt64BE(this._ah, this._al, 0);
  writeInt64BE(this._bh, this._bl, 8);
  writeInt64BE(this._ch, this._cl, 16);
  writeInt64BE(this._dh, this._dl, 24);
  writeInt64BE(this._eh, this._el, 32);
  writeInt64BE(this._fh, this._fl, 40);
  return H;
};

module.exports = Sha384;

/***/ }),

/***/ "uGpw":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(setImmediate) {/* unused harmony export showCloudSyncPanel */
/* unused harmony export hideCloudSyncPanel */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return setupCloudSyncPanel; });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("i8i4");
/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _contexts_HostProvider__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("8VlV");
/* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("+Ots");
/* harmony import */ var _CloudSyncStatusPopdownDriver__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("w/YD");
/*************************************************************************
 *   ADOBE CONFIDENTIAL
 *
 *   Copyright 2022 Adobe
 *   All Rights Reserved.
 *
 *   NOTICE:  All information contained herein is, and remains
 *   the property of Adobe and its suppliers, if any. The intellectual
 *   and technical concepts contained herein are proprietary to Adobe
 *   and its suppliers and are protected by all applicable intellectual
 *   property laws, including trade secret and copyright laws.
 *   Dissemination of this information or reproduction of this material
 *   is strictly forbidden unless prior written permission is obtained
 *   from Adobe.
 **************************************************************************/





const ELEMENT_ID = 'cloud-sync-popdown';
function renderCloudSyncPanel(root, additionalParams) {
    const { assetId, tiles } = additionalParams;
    react_dom__WEBPACK_IMPORTED_MODULE_1___default.a.render(react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_contexts_HostProvider__WEBPACK_IMPORTED_MODULE_2__[/* HostProvider */ "a"], null,
        react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_CloudSyncStatusPopdownDriver__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"], { tiles: tiles, assetId: assetId })), root);
}
// This will get called by host application when user opens the panel.
function showCloudSyncPanel(rootNode, additionalParams) {
    const uxpPanels = document.getElementsByTagName('uxp-panel');
    // temporary workaround for avoiding duplicate panel creation till UXP-19852 is fixed
    // eslint-disable-next-line
    for (const uxpPanel of uxpPanels) {
        if (uxpPanel !== rootNode) {
            document.body.removeChild(uxpPanel);
        }
    }
    const panel = document.createElement('div');
    panel.setAttribute('id', `${ELEMENT_ID}`);
    rootNode.appendChild(panel);
    renderCloudSyncPanel(panel, additionalParams);
    return panel;
}
// This will get called by host applications when user closes the panel.
function hideCloudSyncPanel(rootNode) {
    react_dom__WEBPACK_IMPORTED_MODULE_1___default.a.unmountComponentAtNode(rootNode);
    document.getElementById(`${ELEMENT_ID}`).remove();
}
function setupCloudSyncPanel() {
    var _a;
    if (_utils_utils__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].usingUXP()) {
        const entrypoints = (_a = window.require('uxp')) === null || _a === void 0 ? void 0 : _a.entrypoints;
        entrypoints === null || entrypoints === void 0 ? void 0 : entrypoints.setup({
            panels: {
                'cloud-sync-popdown': {
                    // panelId is accessible via `this.id` within the callback
                    // `data` can be a JSON.stringify'd object with `assetId`, `tiles`, etc
                    show(rootNode, data) {
                        return new Promise((resolve, reject) => {
                            setImmediate(() => {
                                if (data) {
                                    showCloudSyncPanel(rootNode, JSON.parse(data));
                                }
                                resolve();
                            });
                        });
                    },
                    hide(rootNode) {
                        return new Promise((resolve, reject) => {
                            setImmediate(() => {
                                hideCloudSyncPanel(rootNode);
                                resolve();
                            });
                        });
                    },
                },
            },
        });
    }
}

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("URgk").setImmediate))

/***/ }),

/***/ "uOPS":
/***/ (function(module, exports) {

module.exports = true;

/***/ }),

/***/ "uPet":
/***/ (function(module, exports) {

/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/


/***/ }),

/***/ "uT71":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("path", {
  d: "M38.071 9.928a19.9 19.9 0 1 0 0 28.143 19.9 19.9 0 0 0 0-28.143zm-6.294 23.547a1 1 0 0 1-1.414 0L24 27.111l-6.364 6.364a1 1 0 0 1-1.414 0l-1.7-1.7a1 1 0 0 1 0-1.414L20.888 24l-6.363-6.363a1 1 0 0 1 0-1.414l1.7-1.7a1 1 0 0 1 1.414 0L24 20.888l6.365-6.363a1 1 0 0 1 1.414 0l1.7 1.7a1 1 0 0 1 0 1.414L27.112 24l6.363 6.364a1 1 0 0 1 0 1.414z"
}));

/***/ }),

/***/ "uXGE":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("fnSZ"),
      24: __webpack_require__("weEU")
    }
  }));
};

WrappedIcon.displayName = 'ChevronDown';
exports.default = WrappedIcon;

/***/ }),

/***/ "uYrR":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var _UxpOptions = _interopRequireDefault(__webpack_require__("zvwv"));

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}
/*************************************************************************
* ADOBE CONFIDENTIAL
* ___________________
*
* Copyright 2019 Adobe
* All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains
* the property of Adobe and its suppliers, if any. The intellectual
* and technical concepts contained herein are proprietary to Adobe
* and its suppliers and are protected by all applicable intellectual
* property laws, including trade secret and copyright laws.
* Dissemination of this information or reproduction of this material
* is strictly forbidden unless prior written permission is obtained
* from Adobe.
**************************************************************************/


module.exports = _UxpOptions.default.select('OverlayTrigger', () => __webpack_require__("ZgbK"), () => __webpack_require__("mThF"));

/***/ }),

/***/ "uagp":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var BN = __webpack_require__("OZ/i");

var HmacDRBG = __webpack_require__("aqI/");

var utils = __webpack_require__("86MQ");

var curves = __webpack_require__("DLvh");

var rand = __webpack_require__("/ayr");

var assert = utils.assert;

var KeyPair = __webpack_require__("uzSA");

var Signature = __webpack_require__("tz+M");

function EC(options) {
  if (!(this instanceof EC)) return new EC(options); // Shortcut `elliptic.ec(curve-name)`

  if (typeof options === 'string') {
    assert(Object.prototype.hasOwnProperty.call(curves, options), 'Unknown curve ' + options);
    options = curves[options];
  } // Shortcut for `elliptic.ec(elliptic.curves.curveName)`


  if (options instanceof curves.PresetCurve) options = {
    curve: options
  };
  this.curve = options.curve.curve;
  this.n = this.curve.n;
  this.nh = this.n.ushrn(1);
  this.g = this.curve.g; // Point on curve

  this.g = options.curve.g;
  this.g.precompute(options.curve.n.bitLength() + 1); // Hash for function for DRBG

  this.hash = options.hash || options.curve.hash;
}

module.exports = EC;

EC.prototype.keyPair = function keyPair(options) {
  return new KeyPair(this, options);
};

EC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) {
  return KeyPair.fromPrivate(this, priv, enc);
};

EC.prototype.keyFromPublic = function keyFromPublic(pub, enc) {
  return KeyPair.fromPublic(this, pub, enc);
};

EC.prototype.genKeyPair = function genKeyPair(options) {
  if (!options) options = {}; // Instantiate Hmac_DRBG

  var drbg = new HmacDRBG({
    hash: this.hash,
    pers: options.pers,
    persEnc: options.persEnc || 'utf8',
    entropy: options.entropy || rand(this.hash.hmacStrength),
    entropyEnc: options.entropy && options.entropyEnc || 'utf8',
    nonce: this.n.toArray()
  });
  var bytes = this.n.byteLength();
  var ns2 = this.n.sub(new BN(2));

  for (;;) {
    var priv = new BN(drbg.generate(bytes));
    if (priv.cmp(ns2) > 0) continue;
    priv.iaddn(1);
    return this.keyFromPrivate(priv);
  }
};

EC.prototype._truncateToN = function _truncateToN(msg, truncOnly) {
  var delta = msg.byteLength() * 8 - this.n.bitLength();
  if (delta > 0) msg = msg.ushrn(delta);
  if (!truncOnly && msg.cmp(this.n) >= 0) return msg.sub(this.n);else return msg;
};

EC.prototype.sign = function sign(msg, key, enc, options) {
  if (typeof enc === 'object') {
    options = enc;
    enc = null;
  }

  if (!options) options = {};
  key = this.keyFromPrivate(key, enc);
  msg = this._truncateToN(new BN(msg, 16)); // Zero-extend key to provide enough entropy

  var bytes = this.n.byteLength();
  var bkey = key.getPrivate().toArray('be', bytes); // Zero-extend nonce to have the same byte size as N

  var nonce = msg.toArray('be', bytes); // Instantiate Hmac_DRBG

  var drbg = new HmacDRBG({
    hash: this.hash,
    entropy: bkey,
    nonce: nonce,
    pers: options.pers,
    persEnc: options.persEnc || 'utf8'
  }); // Number of bytes to generate

  var ns1 = this.n.sub(new BN(1));

  for (var iter = 0;; iter++) {
    var k = options.k ? options.k(iter) : new BN(drbg.generate(this.n.byteLength()));
    k = this._truncateToN(k, true);
    if (k.cmpn(1) <= 0 || k.cmp(ns1) >= 0) continue;
    var kp = this.g.mul(k);
    if (kp.isInfinity()) continue;
    var kpX = kp.getX();
    var r = kpX.umod(this.n);
    if (r.cmpn(0) === 0) continue;
    var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));
    s = s.umod(this.n);
    if (s.cmpn(0) === 0) continue;
    var recoveryParam = (kp.getY().isOdd() ? 1 : 0) | (kpX.cmp(r) !== 0 ? 2 : 0); // Use complement of `s`, if it is > `n / 2`

    if (options.canonical && s.cmp(this.nh) > 0) {
      s = this.n.sub(s);
      recoveryParam ^= 1;
    }

    return new Signature({
      r: r,
      s: s,
      recoveryParam: recoveryParam
    });
  }
};

EC.prototype.verify = function verify(msg, signature, key, enc) {
  msg = this._truncateToN(new BN(msg, 16));
  key = this.keyFromPublic(key, enc);
  signature = new Signature(signature, 'hex'); // Perform primitive values validation

  var r = signature.r;
  var s = signature.s;
  if (r.cmpn(1) < 0 || r.cmp(this.n) >= 0) return false;
  if (s.cmpn(1) < 0 || s.cmp(this.n) >= 0) return false; // Validate signature

  var sinv = s.invm(this.n);
  var u1 = sinv.mul(msg).umod(this.n);
  var u2 = sinv.mul(r).umod(this.n);
  var p;

  if (!this.curve._maxwellTrick) {
    p = this.g.mulAdd(u1, key.getPublic(), u2);
    if (p.isInfinity()) return false;
    return p.getX().umod(this.n).cmp(r) === 0;
  } // NOTE: Greg Maxwell's trick, inspired by:
  // https://git.io/vad3K


  p = this.g.jmulAdd(u1, key.getPublic(), u2);
  if (p.isInfinity()) return false; // Compare `p.x` of Jacobian point with `r`,
  // this will do `p.x == r * p.z^2` instead of multiplying `p.x` by the
  // inverse of `p.z^2`

  return p.eqXToP(r);
};

EC.prototype.recoverPubKey = function (msg, signature, j, enc) {
  assert((3 & j) === j, 'The recovery param is more than two bits');
  signature = new Signature(signature, enc);
  var n = this.n;
  var e = new BN(msg);
  var r = signature.r;
  var s = signature.s; // A set LSB signifies that the y-coordinate is odd

  var isYOdd = j & 1;
  var isSecondKey = j >> 1;
  if (r.cmp(this.curve.p.umod(this.curve.n)) >= 0 && isSecondKey) throw new Error('Unable to find sencond key candinate'); // 1.1. Let x = r + jn.

  if (isSecondKey) r = this.curve.pointFromX(r.add(this.curve.n), isYOdd);else r = this.curve.pointFromX(r, isYOdd);
  var rInv = signature.r.invm(n);
  var s1 = n.sub(e).mul(rInv).umod(n);
  var s2 = s.mul(rInv).umod(n); // 1.6.1 Compute Q = r^-1 (sR -  eG)
  //               Q = r^-1 (sR + -eG)

  return this.g.mulAdd(s1, r, s2);
};

EC.prototype.getKeyRecoveryParam = function (e, signature, Q, enc) {
  signature = new Signature(signature, enc);
  if (signature.recoveryParam !== null) return signature.recoveryParam;

  for (var i = 0; i < 4; i++) {
    var Qprime;

    try {
      Qprime = this.recoverPubKey(e, signature, i);
    } catch (e) {
      continue;
    }

    if (Qprime.eq(Q)) return i;
  }

  throw new Error('Unable to find valid recovery factor');
};

/***/ }),

/***/ "ueNY":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _Button = _interopRequireDefault(__webpack_require__("pM4T"));

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _icon = __webpack_require__("vo16");

var _CornerTriangle = _interopRequireDefault(__webpack_require__("Btp7"));

var _filterDOMProps = _interopRequireDefault(__webpack_require__("Cv/Q"));

var _focusRing = __webpack_require__("PBY+");

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

__webpack_require__("PX6y");

const _excluded = ["element", "label", "children", "variant", "logic", "quiet", "icon", "selected", "block", "className", "disabled", "invalid", "uxpUseNative", "onMouseDown", "onMouseUp", "onPointerDown", "onPointerUp", "autoFocus", "holdAffordance"];

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

const VARIANTS = {
  quiet: {
    variant: 'primary',
    quiet: true
  },
  minimal: {
    variant: 'secondary',
    quiet: true
  },
  icon: {
    variant: 'action',
    quiet: true
  }
};

class UxpButton extends _Button.default {
  constructor(...args) {
    var _temp;

    return _temp = super(...args), this.onKeyDownSpace = event => {
      if (this.props.overrideOnKeyDown && this.onUxpKeyDown) {
        return this.onUxpKeyDown(event);
      }

      if (event.key === ' ' || event.key === 'Enter') {
        event.preventDefault();
        this.buttonRef.click();
      }
    }, _temp;
  }

  render() {
    let _this$props = this.props,
        {
      element: Element = 'button',
      label,
      children,
      variant = 'secondary',
      logic,
      quiet,
      icon,
      selected,
      block,
      className,
      disabled,
      invalid,
      uxpUseNative = true,
      onMouseDown,
      onMouseUp,
      onPointerDown,
      onPointerUp,
      autoFocus,
      holdAffordance
    } = _this$props,
        otherProps = _objectWithoutProperties(_this$props, _excluded);

    this.onUxpKeyDown = this.props.onKeyDown;

    if (icon !== undefined && icon !== null) {
      return super.render();
    }

    if (children && typeof children !== 'string' || !uxpUseNative) {
      return super.render(); // this will create a non-native button (using span tag)
    }

    if (Element === 'span') {
      Element = 'button';
    }

    const isButton = Element === 'button'; // Map variants for backwards compatibility

    if (VARIANTS[variant]) {
      let mappedVariant = VARIANTS[variant];
      let variantName = (mappedVariant.quiet ? 'quiet ' : '') + `"${mappedVariant.variant}"`;
      console.warn(`The "${variant}" variant of Button is deprecated. Please use the ${variantName} variant instead.`);
      ({
        variant,
        quiet
      } = mappedVariant);
    }

    let shouldRenderHoldAffordance = false; // Some button variants were broken out into their own components, map them appropriately

    let baseButtonClass = 'spectrum-Button';

    if (variant === 'action' || variant === 'toggle') {
      baseButtonClass = 'spectrum-ActionButton';
      shouldRenderHoldAffordance = holdAffordance;

      if (variant === 'toggle') {
        quiet = true;
      }

      variant = '';
    } else if (logic) {
      baseButtonClass = 'spectrum-LogicButton';
    } else if (variant === 'clear') {
      baseButtonClass = 'spectrum-ClearButton';
      variant = '';
    } else if (variant === 'field') {
      baseButtonClass = 'spectrum-FieldButton';
      variant = '';
    } else if (variant === 'tool') {
      baseButtonClass = 'spectrum-Tool'; // hold affordance is really only a part of tool.

      shouldRenderHoldAffordance = holdAffordance;
      variant = '';
    }

    if (!isButton) {
      otherProps.role = 'button';
      otherProps.tabIndex = disabled ? null : otherProps.tabIndex || 0;
      otherProps['aria-disabled'] = disabled || null;

      if (Element === 'a' && disabled && otherProps.href) {
        otherProps.href = null;
      }

      otherProps.onKeyDown = disabled ? null : this.onKeyDownSpace;
    }

    let labelContents = label || (typeof children === 'string' ? children : null);
    let ariaExpanded = null;

    if (otherProps['aria-expanded'] !== undefined) {
      ariaExpanded = otherProps['aria-expanded'];
    } else if (otherProps['aria-haspopup']) {
      ariaExpanded = selected || null;
    }

    const filteredProps = typeof Element === 'string' ? (0, _filterDOMProps.default)(otherProps) : otherProps;
    const uxpSelected = selected ? selected : false; // added for quick-actions when the button failed to render when selected was null

    return /*#__PURE__*/_react.default.createElement(Element, _extends({}, filteredProps, {
      "uxp-variant": this.props.variant,
      "uxp-quiet": quiet.toString(),
      "uxp-selected": uxpSelected.toString(),
      className: (0, _classnames.default)(baseButtonClass, !isButton && quiet ? `${baseButtonClass}--quiet` : '', !isButton && variant ? `${baseButtonClass}--${variant}` : '', {
        'is-selected': !isButton && selected,
        'is-disabled': !isButton && disabled,
        'is-invalid': invalid,
        'spectrum-Button--block': block,
        [_focusRing.FOCUS_RING_CLASSNAME]: autoFocus
      }, className),
      disabled: disabled,
      "aria-invalid": invalid || null,
      "aria-expanded": ariaExpanded,
      onClick: this.onClick,
      onPointerDown: onMouseDown || onPointerDown,
      onPointerUp: onMouseUp || onPointerUp,
      ref: this.setButtonRef
    }), (0, _icon.cloneIcon)(icon, {
      size: 'S'
    }), labelContents && /*#__PURE__*/_react.default.createElement("span", {
      className: baseButtonClass + '-label'
    }, labelContents), shouldRenderHoldAffordance && /*#__PURE__*/_react.default.createElement(_CornerTriangle.default, {
      role: "presentation",
      size: null,
      className: "spectrum-Tool-hold"
    }), typeof children !== 'string' && children);
  }

}

exports.default = UxpButton;
UxpButton.defaultProps = {
  autoFocus: false,
  block: false,
  disabled: false,
  element: 'span',
  invalid: false,
  label: '',
  logic: false,
  quiet: false,
  selected: false,
  variant: 'secondary',
  holdAffordance: false
};

/***/ }),

/***/ "uhcb":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("lcsq");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("R9tb"),
      24: __webpack_require__("2N20")
    }
  }));
};

WrappedIcon.displayName = 'Label';
exports.default = WrappedIcon;

/***/ }),

/***/ "umFS":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var global = __webpack_require__("fEpb"),
    validTypes = {
  object: true,
  symbol: true
};

module.exports = function () {
  var Symbol = global.Symbol;
  var symbol;
  if (typeof Symbol !== "function") return false;
  symbol = Symbol("test symbol");

  try {
    String(symbol);
  } catch (e) {
    return false;
  } // Return 'true' also for polyfills


  if (!validTypes[typeof Symbol.iterator]) return false;
  if (!validTypes[typeof Symbol.toPrimitive]) return false;
  if (!validTypes[typeof Symbol.toStringTag]) return false;
  return true;
};

/***/ }),

/***/ "untp":
/***/ (function(module) {

module.exports = JSON.parse("{\"(optional)\":\"（可选）\",\"(required)\":\"（必填）\"}");

/***/ }),

/***/ "uoMj":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("path", {
  d: "M24.476 7.165L18 0l-6.46 7.165a.5.5 0 0 0 .371.835H16v11.5a.5.5 0 0 0 .5.5h3a.5.5 0 0 0 .5-.5V8h4.1a.5.5 0 0 0 .376-.835z"
}), React.createElement("path", {
  d: "M33 8h-6.5a.5.5 0 0 0-.5.5v3a.5.5 0 0 0 .5.5H30v16H6V12h3.5a.5.5 0 0 0 .5-.5v-3a.5.5 0 0 0-.5-.5H3a1 1 0 0 0-1 1v22a1 1 0 0 0 1 1h30a1 1 0 0 0 1-1V9a1 1 0 0 0-1-1z"
}));

/***/ }),

/***/ "usKN":
/***/ (function(module, exports, __webpack_require__) {

var modeModules = {
  ECB: __webpack_require__("AUX7"),
  CBC: __webpack_require__("wRn4"),
  CFB: __webpack_require__("NQVK"),
  CFB8: __webpack_require__("YskG"),
  CFB1: __webpack_require__("Ujlg"),
  OFB: __webpack_require__("UWVS"),
  CTR: __webpack_require__("at63"),
  GCM: __webpack_require__("at63")
};

var modes = __webpack_require__("6F8h");

for (var key in modes) {
  modes[key].module = modeModules[modes[key].mode];
}

module.exports = modes;

/***/ }),

/***/ "utc6":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, props, _react2.default.createElement("svg", {
    className: "spectrum-UIIcon-InfoMedium"
  }, _react2.default.createElement("path", {
    d: "M9 1a8 8 0 1 0 8 8 8 8 0 0 0-8-8zm-.15 2.15a1.359 1.359 0 0 1 1.431 1.283v.129a1.332 1.332 0 0 1-1.223 1.432 1.444 1.444 0 0 1-.208 0 1.353 1.353 0 0 1-1.432-1.269 1.5 1.5 0 0 1 0-.164 1.359 1.359 0 0 1 1.3-1.412c.047-.002.089-.001.132.001zM11 13.5a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5v-1a.5.5 0 0 1 .5-.5H8V9h-.5a.5.5 0 0 1-.5-.5v-1a.5.5 0 0 1 .5-.5h2a.5.5 0 0 1 .5.5V12h.5a.5.5 0 0 1 .5.5z",
    className: "spectrum-UIIcon--medium"
  }), _react2.default.createElement("path", {
    d: "M11 2a9 9 0 1 0 9 9 9 9 0 0 0-9-9zm-.15 2.65a1.359 1.359 0 0 1 1.431 1.283v.129a1.332 1.332 0 0 1-1.224 1.432 1.444 1.444 0 0 1-.208 0 1.353 1.353 0 0 1-1.431-1.269 1.5 1.5 0 0 1 0-.164 1.359 1.359 0 0 1 1.3-1.412c.047-.002.089-.001.132.001zM13.5 16a.5.5 0 0 1-.5.5H9a.5.5 0 0 1-.5-.5v-1a.5.5 0 0 1 .5-.5h1v-4H9a.5.5 0 0 1-.5-.5V9a.5.5 0 0 1 .5-.5h2.5a.5.5 0 0 1 .5.5v5.5h1a.5.5 0 0 1 .5.5z",
    className: "spectrum-UIIcon--large"
  })));
};

WrappedIcon.displayName = 'InfoMedium';
exports.default = WrappedIcon;

/***/ }),

/***/ "uyWG":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = Avatar;

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _filterDOMProps = _interopRequireDefault(__webpack_require__("Cv/Q"));

var _propTypes = _interopRequireDefault(__webpack_require__("17x9"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

const _excluded = ["src", "alt", "disabled", "className"];

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

if (false) {} else if (false) {} else {
  __webpack_require__("8Vr2");
}

if (true) __webpack_require__("Qr7k");
if (true) __webpack_require__("NTZY");
if (true) __webpack_require__("aHnX");
if (true) __webpack_require__("GcKE");

function Avatar(_ref) {
  let {
    src,
    alt,
    disabled,
    className
  } = _ref,
      otherProps = _objectWithoutProperties(_ref, _excluded);

  className = (0, _classnames.default)('spectrum-Avatar', {
    'is-disabled': disabled
  }, className);
  return /*#__PURE__*/_react.default.createElement("img", _extends({}, (0, _filterDOMProps.default)(otherProps), {
    src: src,
    alt: alt,
    className: className
  }));
}

Avatar.propTypes = {
  /**
   * url of image to load, same that any html <img> tag would accept
   */
  src: _propTypes.default.string,

  /**
   * alt text to display for screen readers or if the image doesn't load
   */
  alt: _propTypes.default.string,

  /**
   * Greys out the avatar
   */
  disabled: _propTypes.default.bool,

  /**
   * String of custom class names to add to the top level dom element of Avatar
   */
  className: _propTypes.default.string
};
Avatar.defaultProps = {
  alt: ''
};

/***/ }),

/***/ "uzSA":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var BN = __webpack_require__("OZ/i");

var utils = __webpack_require__("86MQ");

var assert = utils.assert;

function KeyPair(ec, options) {
  this.ec = ec;
  this.priv = null;
  this.pub = null; // KeyPair(ec, { priv: ..., pub: ... })

  if (options.priv) this._importPrivate(options.priv, options.privEnc);
  if (options.pub) this._importPublic(options.pub, options.pubEnc);
}

module.exports = KeyPair;

KeyPair.fromPublic = function fromPublic(ec, pub, enc) {
  if (pub instanceof KeyPair) return pub;
  return new KeyPair(ec, {
    pub: pub,
    pubEnc: enc
  });
};

KeyPair.fromPrivate = function fromPrivate(ec, priv, enc) {
  if (priv instanceof KeyPair) return priv;
  return new KeyPair(ec, {
    priv: priv,
    privEnc: enc
  });
};

KeyPair.prototype.validate = function validate() {
  var pub = this.getPublic();
  if (pub.isInfinity()) return {
    result: false,
    reason: 'Invalid public key'
  };
  if (!pub.validate()) return {
    result: false,
    reason: 'Public key is not a point'
  };
  if (!pub.mul(this.ec.curve.n).isInfinity()) return {
    result: false,
    reason: 'Public key * N != O'
  };
  return {
    result: true,
    reason: null
  };
};

KeyPair.prototype.getPublic = function getPublic(compact, enc) {
  // compact is optional argument
  if (typeof compact === 'string') {
    enc = compact;
    compact = null;
  }

  if (!this.pub) this.pub = this.ec.g.mul(this.priv);
  if (!enc) return this.pub;
  return this.pub.encode(enc, compact);
};

KeyPair.prototype.getPrivate = function getPrivate(enc) {
  if (enc === 'hex') return this.priv.toString(16, 2);else return this.priv;
};

KeyPair.prototype._importPrivate = function _importPrivate(key, enc) {
  this.priv = new BN(key, enc || 16); // Ensure that the priv won't be bigger than n, otherwise we may fail
  // in fixed multiplication method

  this.priv = this.priv.umod(this.ec.curve.n);
};

KeyPair.prototype._importPublic = function _importPublic(key, enc) {
  if (key.x || key.y) {
    // Montgomery points only have an `x` coordinate.
    // Weierstrass/Edwards points on the other hand have both `x` and
    // `y` coordinates.
    if (this.ec.curve.type === 'mont') {
      assert(key.x, 'Need x coordinate');
    } else if (this.ec.curve.type === 'short' || this.ec.curve.type === 'edwards') {
      assert(key.x && key.y, 'Need both x and y coordinate');
    }

    this.pub = this.ec.curve.point(key.x, key.y);
    return;
  }

  this.pub = this.ec.curve.decodePoint(key, enc);
}; // ECDH


KeyPair.prototype.derive = function derive(pub) {
  if (!pub.validate()) {
    assert(pub.validate(), 'public point not validated');
  }

  return pub.mul(this.priv).getX();
}; // ECDSA


KeyPair.prototype.sign = function sign(msg, enc, options) {
  return this.ec.sign(msg, this, enc, options);
};

KeyPair.prototype.verify = function verify(msg, signature) {
  return this.ec.verify(msg, signature, this);
};

KeyPair.prototype.inspect = function inspect() {
  return '<Key priv: ' + (this.priv && this.priv.toString(16, 2)) + ' pub: ' + (this.pub && this.pub.inspect()) + ' >';
};

/***/ }),

/***/ "v/92":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return closeSession; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return makeSession; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return updateSession; });
/* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("kdvv");
/* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("9/Zf");
/* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("6PXS");

/**
 * Creates a new `Session` object by setting certain default parameters. If optional @param context
 * is passed, the passed properties are applied to the session object.
 *
 * @param context (optional) additional properties to be applied to the returned session object
 *
 * @returns a new `Session` object
 */

function makeSession(context) {
  // Both timestamp and started are in seconds since the UNIX epoch.
  const startingTime = Object(_sentry_utils__WEBPACK_IMPORTED_MODULE_0__[/* timestampInSeconds */ "c"])();
  const session = {
    sid: Object(_sentry_utils__WEBPACK_IMPORTED_MODULE_1__[/* uuid4 */ "f"])(),
    init: true,
    timestamp: startingTime,
    started: startingTime,
    duration: 0,
    status: 'ok',
    errors: 0,
    ignoreDuration: false,
    toJSON: () => sessionToJSON(session)
  };

  if (context) {
    updateSession(session, context);
  }

  return session;
}
/**
 * Updates a session object with the properties passed in the context.
 *
 * Note that this function mutates the passed object and returns void.
 * (Had to do this instead of returning a new and updated session because closing and sending a session
 * makes an update to the session after it was passed to the sending logic.
 * @see BaseClient.captureSession )
 *
 * @param session the `Session` to update
 * @param context the `SessionContext` holding the properties that should be updated in @param session
 */
// eslint-disable-next-line complexity


function updateSession(session, context = {}) {
  if (context.user) {
    if (!session.ipAddress && context.user.ip_address) {
      session.ipAddress = context.user.ip_address;
    }

    if (!session.did && !context.did) {
      session.did = context.user.id || context.user.email || context.user.username;
    }
  }

  session.timestamp = context.timestamp || Object(_sentry_utils__WEBPACK_IMPORTED_MODULE_0__[/* timestampInSeconds */ "c"])();

  if (context.ignoreDuration) {
    session.ignoreDuration = context.ignoreDuration;
  }

  if (context.sid) {
    // Good enough uuid validation. — Kamil
    session.sid = context.sid.length === 32 ? context.sid : Object(_sentry_utils__WEBPACK_IMPORTED_MODULE_1__[/* uuid4 */ "f"])();
  }

  if (context.init !== undefined) {
    session.init = context.init;
  }

  if (!session.did && context.did) {
    session.did = `${context.did}`;
  }

  if (typeof context.started === 'number') {
    session.started = context.started;
  }

  if (session.ignoreDuration) {
    session.duration = undefined;
  } else if (typeof context.duration === 'number') {
    session.duration = context.duration;
  } else {
    const duration = session.timestamp - session.started;
    session.duration = duration >= 0 ? duration : 0;
  }

  if (context.release) {
    session.release = context.release;
  }

  if (context.environment) {
    session.environment = context.environment;
  }

  if (!session.ipAddress && context.ipAddress) {
    session.ipAddress = context.ipAddress;
  }

  if (!session.userAgent && context.userAgent) {
    session.userAgent = context.userAgent;
  }

  if (typeof context.errors === 'number') {
    session.errors = context.errors;
  }

  if (context.status) {
    session.status = context.status;
  }
}
/**
 * Closes a session by setting its status and updating the session object with it.
 * Internally calls `updateSession` to update the passed session object.
 *
 * Note that this function mutates the passed session (@see updateSession for explanation).
 *
 * @param session the `Session` object to be closed
 * @param status the `SessionStatus` with which the session was closed. If you don't pass a status,
 *               this function will keep the previously set status, unless it was `'ok'` in which case
 *               it is changed to `'exited'`.
 */


function closeSession(session, status) {
  let context = {};

  if (status) {
    context = {
      status
    };
  } else if (session.status === 'ok') {
    context = {
      status: 'exited'
    };
  }

  updateSession(session, context);
}
/**
 * Serializes a passed session object to a JSON object with a slightly different structure.
 * This is necessary because the Sentry backend requires a slightly different schema of a session
 * than the one the JS SDKs use internally.
 *
 * @param session the session to be converted
 *
 * @returns a JSON object of the passed session
 */


function sessionToJSON(session) {
  return Object(_sentry_utils__WEBPACK_IMPORTED_MODULE_2__[/* dropUndefinedKeys */ "c"])({
    sid: `${session.sid}`,
    init: session.init,
    // Make sure that sec is converted to ms for date constructor
    started: new Date(session.started * 1000).toISOString(),
    timestamp: new Date(session.timestamp * 1000).toISOString(),
    status: session.status,
    errors: session.errors,
    did: typeof session.did === 'number' || typeof session.did === 'string' ? `${session.did}` : undefined,
    duration: session.duration,
    attrs: {
      release: session.release,
      environment: session.environment,
      ip_address: session.ipAddress,
      user_agent: session.userAgent
    }
  });
}



/***/ }),

/***/ "v/9w":
/***/ (function(module) {

module.exports = JSON.parse("{\"Breadcrumbs\":\"Brotkrumen\"}");

/***/ }),

/***/ "v0If":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("qcat"),
      24: __webpack_require__("vSQF")
    }
  }));
};

WrappedIcon.displayName = 'Play';
exports.default = WrappedIcon;

/***/ }),

/***/ "v25Z":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/

var __importDefault = this && this.__importDefault || function (mod) {
  return mod && mod.__esModule ? mod : {
    "default": mod
  };
};

Object.defineProperty(exports, "__esModule", {
  value: true
});

var MonitorOpRequestProcessor_1 = __importDefault(__webpack_require__("645C"));

var RequestProcessor_1 = __importDefault(__webpack_require__("HyxP"));

var SearchRequestProcessor_1 = __importDefault(__webpack_require__("E/Gs"));

var RenditionRequestProcessor_1 = __importDefault(__webpack_require__("Q4bd"));

var AssetOpRequestProcessor_1 = __importDefault(__webpack_require__("xzYp"));

var CacheOpRequestProcessor_1 = __importDefault(__webpack_require__("ZYPJ"));

var GetMetadataRequestProcessor_1 = __importDefault(__webpack_require__("BhVr"));

var HeadAssetRequestProcessor_1 = __importDefault(__webpack_require__("bwol"));

var PostAssetRequestProcessor_1 = __importDefault(__webpack_require__("1YGp"));

var PutAssetRequestProcessor_1 = __importDefault(__webpack_require__("0YXm"));

var GetAssetRequestProcessor_1 = __importDefault(__webpack_require__("4mgg"));

var DeleteRequestProcessor_1 = __importDefault(__webpack_require__("BUyd"));
/**
 * Default class for request processors
 */


var RequestProcessorFactory =
/** @class */
function () {
  function RequestProcessorFactory() {}
  /**
   * Creates and returns the matching request processor for the given url
   * @param url
   * @param acpLocalParams
   */


  RequestProcessorFactory.getRequestProcessor = function (url, params) {
    var requestProcessor; // Order matters. Be sure to look at the regexes before you add a new request processor.

    switch (true) {
      case SearchRequestProcessor_1.default.isMatch(url, params.method):
        {
          requestProcessor = new SearchRequestProcessor_1.default(params);
          break;
        }

      case RenditionRequestProcessor_1.default.isMatch(url, params.method):
        {
          requestProcessor = new RenditionRequestProcessor_1.default(params);
          break;
        }

      case CacheOpRequestProcessor_1.default.isMatch(url, params.method):
        {
          requestProcessor = new CacheOpRequestProcessor_1.default(params);
          break;
        }

      case AssetOpRequestProcessor_1.default.isMatch(url, params.method):
        {
          requestProcessor = new AssetOpRequestProcessor_1.default(params);
          break;
        }

      case GetMetadataRequestProcessor_1.default.isMatch(url, params.method):
        {
          requestProcessor = new GetMetadataRequestProcessor_1.default(params);
          break;
        }

      case HeadAssetRequestProcessor_1.default.isMatch(url, params.method):
        {
          requestProcessor = new HeadAssetRequestProcessor_1.default(params);
          break;
        }

      case GetAssetRequestProcessor_1.default.isMatch(url, params.method):
        {
          requestProcessor = new GetAssetRequestProcessor_1.default(params);
          break;
        }

      case PostAssetRequestProcessor_1.default.isMatch(url, params.method):
        {
          requestProcessor = new PostAssetRequestProcessor_1.default(params);
          break;
        }

      case PutAssetRequestProcessor_1.default.isMatch(url, params.method):
        {
          requestProcessor = new PutAssetRequestProcessor_1.default(params);
          break;
        }

      case DeleteRequestProcessor_1.default.isMatch(url, params.method):
        {
          requestProcessor = new DeleteRequestProcessor_1.default(params);
          break;
        }

      case MonitorOpRequestProcessor_1.default.isMatch(url, params.method):
        {
          requestProcessor = new MonitorOpRequestProcessor_1.default(params);
          break;
        }

      default:
        {
          requestProcessor = new RequestProcessor_1.default(params); // tslint:disable max-line-length

          console.log("WARNING: No request processor found for url: " + url + " and method: " + params.method + ". Using default request processor.");
          break;
        }
    }

    return requestProcessor;
  };

  return RequestProcessorFactory;
}();

exports.default = RequestProcessorFactory;

/***/ }),

/***/ "v3Z9":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2019 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/

Object.defineProperty(exports, "__esModule", {
  value: true
});
/**
 * For more info, see: https://wiki.corp.adobe.com/pages/viewpage.action?pageId=1687793115
 */

var AcplSourceMode;

(function (AcplSourceMode) {
  AcplSourceMode["ONLINE_ONLY"] = "";
  AcplSourceMode["OFFLINE_ONLY"] = "local"; // matches acp::local::Source::kLocal (ContextHeaders.h)
})(AcplSourceMode || (AcplSourceMode = {}));

exports.default = AcplSourceMode;

/***/ }),

/***/ "v5BE":
/***/ (function(module, exports) {

/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
module.exports = {
  'ccd.infoPanel.detail.created': '作成日',
  'ccd.infoPanel.detail.modified': '修正日',
  'ccd.infoPanel.detail.size': 'サイズ',
  'ccd.infoPanel.detail.shared': '共有済み',
  'ccd.header.renameFolder': 'フォルダー名を変更',
  'ccd.menu.addToFavourites': 'ショートカットに追加',
  'ccd.menu.removeFromFavourites': 'ショートカットを削除',
  'ccd.menu.viewonweb': 'Web で表示',
  'ccd.menu.share': '共有',
  'ccd.menu.openWith': 'アプリで開く',
  'ccd.menu.changeDefaultApp': 'デフォルトのアプリケーションを変更...',
  'ccd.menu.default': '(デフォルト)',
  'ccd.menu.export': 'ローカルコピーとして書き出し',
  'ccd.menu.download': 'ダウンロード',
  'ccd.menu.createNew': '新規作成...',
  'ccd.menu.launch': '起動',
  'actionMenuItem.permdelete': '完全に削除',
  'tab.Cloud Documents': '自分のファイル',
  'tab.Home': 'ホーム',
  'header.CloudDocuments': '自分のファイル',
  'header.SharedWithYou': '共有されたアイテム',
  'header.Deleted': '削除済み',
  'header.Deleted.AssetsWebLink': '削除されたすべてのアイテムを表示するには、Assets Web に移動します',
  'header.SelectedDocuments': '{numSelected, plural, =1 {#} other {#}} 個のアイテムを選択中',
  'header.size': 'サイズ',
  'header.title': '名前',
  'header.modifiedDate': '修正日',
  'header.createDate': '作成日',
  'header.shareDate': '共有日',
  'header.SortBy': '並べ替え',
  'header.infoPopover.body': '互換性のあるファイルのみが表示されます。すべてのファイルを表示するには、Creative Cloud web 版にアクセスしてください。',
  'header.infoPopover.link': ' Creative Cloud に移動',
  'header.dragImport': 'アップロード先 : {displayName}',
  'collaborators.onlyYou': '自分のみ',
  'collaborators.Owner': '{displayName} (所有者)',
  'collaborators.More': '{numItems, plural, other {と他 # 人}}',
  'empty.offline.root.title': 'ネットワーク接続がありません',
  'empty.offline.root.subtitle': 'オンライン時と同様にここにドキュメントを表示するには、再接続してください.',
  'empty.offline.folder.title': 'フォルダーを読み込めませんでした',
  'empty.offline.folder.subtitle': 'インターネットに接続していません。すべてを表示するには再接続してください。',
  'empty.online.cdp.saveas.root.title': '表示するクラウドドキュメントがありません',
  'empty.online.cdp.saveas.root.subtitle': 'クラウドドキュメントなら、どこにいても、すべてのデバイスにわたって作品が常に更新されます。インターネットに接続するだけの簡単な操作です。',
  'empty.online.cdp.saveas.root.subtitle.sprk': 'XD のクラウドドキュメントはすべてここに保存されます。オフラインでも、またどこでも作業できます。クラウドドキュメントの変更は自動保存され、ドキュメント履歴に表示されます。',
  'empty.online.cdp.saveas.root.subtitle.phxs': 'Mac、Windows、iPad の Photoshop にあるすべてのクラウドドキュメントは、ここに保存されます。',
  'empty.online.cdp.saveas.root.subtitle.ilst': 'Mac と Windows 上の Illustrator のすべてのクラウドドキュメントはここに表示されます。',
  'empty.online.cdp.saveas.root.subtitle.idsn': 'InDesign Mac 版と Windows 版のすべてのクラウドドキュメントがここに表示されます。',
  'empty.online.cdp.saveas.folder.title': '表示するクラウドドキュメントがありません',
  'empty.online.cdp.saveas.folder.subtitle': '対応しているクラウドドキュメントをこのフォルダーに入れると、ここに表示されます。',
  'empty.online.cdp.open.root.title': '表示するクラウドドキュメントがありません',
  'empty.online.cdp.open.root.subtitle': '対応しているクラウドドキュメントをこのフォルダーに入れると、ここに表示されます。',
  'empty.online.cdp.open.root.subtitle.sprk': 'XD のクラウドドキュメントはすべてここに保存されます。オフラインでも、またどこでも作業できます。クラウドドキュメントの変更は自動保存され、ドキュメント履歴に表示されます。',
  'empty.online.cdp.open.root.subtitle.phxs': 'Mac、Windows、iPad の Photoshop にあるすべてのクラウドドキュメントは、ここに保存されます。',
  'empty.online.cdp.open.root.subtitle.ilst': 'Mac と Windows 上の Illustrator のすべてのクラウドドキュメントはここに表示されます。',
  'empty.online.cdp.open.root.subtitle.idsn': 'InDesign Mac 版と Windows 版のすべてのクラウドドキュメントがここに表示されます。',
  'empty.online.cdp.open.folder.title': '表示するクラウドドキュメントがありません',
  'empty.online.cdp.open.folder.subtitle': '対応しているクラウドドキュメントをこのフォルダーに入れると、ここに表示されます。',
  'empty.online.cdo.root.title': 'クラウドドキュメントがありません',
  'empty.online.cdo.root.subtitle': '他のユーザーとシームレスに共同作業し、どこでも、たとえオフラインでも作業できます。変更は自動的に保存され、ファイル履歴に表示されます。',
  'empty.online.cdo.root.subtitle.sprk': '他のユーザーとリアルタイムでシームレスに共同作業し、どこでも、たとえオフラインでも作業できます。変更は自動的に保存され、ファイル履歴に表示されます。',
  'empty.online.cdo.root.subtitle.phxs': '他のユーザーとシームレスに共同作業し、Photoshop にログインして、どこでも、たとえオフラインでも 作業できます。変更は自動的に保存され、ファイル履歴に表示されます。',
  'empty.online.cdo.root.subtitle.ilst': '他のユーザーとシームレスに共同作業し、Illustrator にログインして、どこでも、たとえオフラインでも 作業できます。変更は自動的に保存され、ファイル履歴に表示されます。',
  'empty.online.cdo.root.subtitle.idsn': 'InDesign にログインした場所からドキュメントにアクセスします。変更は自動保存されます。',
  'empty.online.cdo.folder.title': '表示するクラウドドキュメントがありません',
  'empty.online.cdo.folder.subtitle': '対応しているクラウドドキュメントをこのフォルダーに入れると、ここに表示されます。',
  'empty.title.deleted': '削除したファイルはありません。',
  'empty.title.deleted_offline': 'ネットワーク接続がありません',
  'empty.title.recent': '最近使用したファイルがありません。',
  'empty.subtext.deleted_offline': 'オンライン中に削除されたアイテムが、再接続するとここに表示されます。',
  'empty.title.shared_with_you': '共有されたクラウドドキュメントはありません',
  'empty.subtext.shared_with_you': 'クラウドドキュメントが共有されると、ここに表示されます。',
  'empty.title.shared_with_you_offline': 'ネットワーク接続がありません',
  'empty.subtext.shared_with_you_offline': '接続が復旧したら、共有ドキュメントを表示して編集できます。',
  'empty.title.error': '何か問題が発生しました',
  'empty.subtext.error': 'アプリを再起動して、もう一度実行してください。',
  'empty.subtext.error.web': 'ブラウザーを更新して、やり直してください。',
  'empty.title.coresync.down': '読み込めません',
  'empty.subtext.coresync.down': 'クラウドが同期していません。Creative Cloud デスクトップ版が更新されていることを確認するか、アプリを再起動してください。',
  'empty.title.coresync.incompatible': 'クラウドドキュメントを読み込みできません',
  'empty.subtext.coresync.incompatible': '現在、アイテムを表示できません。Creative Cloud アプリケーションのバージョンをアップデートして、再試行してください。',
  'empty.title.cloudStorageDisabled': 'クラウドドキュメントは利用できません',
  'empty.subtext.cloudStorageDisabled': '{productName} を使用して、ご使用のデバイスでのみファイルで作業することができます。詳しくは、IT 管理者に連絡してください。',
  'empty.title.logout': 'クラウドドキュメントにアクセスするにはログインしてください。',
  'empty.learnMore.link': 'さらに詳しく',
  'trueEmpty.online.cdo.folder.title': 'このフォルダーは空です',
  'trueEmpty.online.cdo.folder.subtitle': 'クラウドドキュメントを追加してください',
  'trueEmpty.online.cdp.saveas.folder.title': 'まだクラウドドキュメントがありません',
  'trueEmpty.online.cdp.saveas.folder.subtitle': 'クラウドドキュメントなら、インターネットに接続するだけで、どこにいても様々なデバイスからアセットをアップデートできます。',
  'trueEmpty.online.cdp.open.folder.title': 'まだクラウドドキュメントがありません',
  'trueEmpty.online.cdp.open.folder.subtitle': 'クラウドドキュメントなら、インターネットに接続するだけで、どこにいても様々なデバイスからアセットをアップデートできます。',
  'filter.prompt': 'キーワードを入力',
  'filter.title': 'フィルター',
  'empty.filter.title': '「{filterString}」に一致するものは見つかりませんでした',
  'empty.filter.subtitle': 'スペルを確認するか、より幅広いキーワードを試すか、別の場所をフィルタリングしてください。',
  'beta.title': 'デバイス間で作業を同期',
  'beta.subtitle': 'クラウドドキュメントを使用して、iPad や desktop 上の Photoshop でシームレスに機能します。しかし機能は beta 内にあるため、必ずしも期待通りに機能するとは限りません。環境設定からオンまたはオフにしてください。',
  'beta.button': '設定でオンにする',
  'beta.tag': 'BETA',
  'beta.feedback.link': 'Beta についてのご意見をお寄せください',
  'button.add-folder': '新規フォルダーを作成',
  'button.upload': 'アップロード...',
  'button.createnew': '新規作成',
  'button.reportAbuse': '違反を報告',
  'button.open': '開く',
  'button.select': '選択',
  'button.rename': '名前を変更',
  'button.pin.header': 'オフラインでも常時使用',
  'button.pin': 'オフラインでも常時使用',
  'button.unpin.header': 'オンライン専用にする',
  'button.unpin': 'オンライン専用にする',
  'button.duplicate': '複製',
  'button.download': 'ダウンロード',
  'button.move': '移動',
  'button.delete': '削除',
  'button.restore': '復元',
  'button.permdelete': '完全に削除',
  'button.listview': 'リスト表示',
  'button.gridview': 'グリッド表示',
  'button.sharesheetinvite': '編集に招待する',
  'button.sharesheetLink': 'リンクを取得',
  'button.shareSheetAction': '共有',
  'button.preview': 'プレビュー',
  'button.schedule': 'スケジュール',
  'action.duplicate.suffix': '(複製)',
  'action.resolve_sync_error.suffix': 'コピー',
  'statusIcon.conflicted': '同期が競合',
  'statusIcon.onlineOnly': 'オンライン専用',
  'statusIcon.availableOffline': 'オフラインで使用可能',
  'statusIcon.syncing': '同期中...',
  'statusIcon.waitingToSync': '同期を待っています',
  'tooltip.error': 'ドキュメントを開いて保存の競合を確認',
  'toast.error.documentIsOpen': 'このアクションを実行するには、ドキュメントを閉じてください',
  'toast.error.exceedsQuota.personal': 'アカウントのストレージ容量が不足しています',
  'toast.error.exceedsQuota.enterprise': 'ストレージが不足しています。詳しくは、管理者にお問い合わせください',
  'toast.operation.duplicate.error': '{count, plural, =1 {1 個のアイテム} other {{count} 個のアイテム}}を複製できませんでした',
  'toast.operation.duplicate.success': '{count, plural, =1 {1 個のアイテム} other {{count} 個のアイテム}}を複製しました',
  'toast.operation.archive.error': '{count, plural, =1 {アイテム} other {{count} 個のアイテム}}を削除できませんでした',
  'toast.operation.archive.error.otherAppUncommittedChanges': '他のアプリで開いているファイルを削除することはできません。それらを閉じてから、再試行してください。',
  'toast.operation.archive.undo.error': '{count, plural, =1 {アイテム} other {{count} 個のアイテム}}を削除できませんでした',
  'toast.operation.archive.success': '{count, plural, =1 {アイテム} other {{count} 個のアイテム}}を削除しました',
  'toast.operation.archive.undo.success': '復元を取り消しました',
  'toast.operation.permdelete.error': '{count, plural, =1 {アイテム} other {{count} 個のアイテム}}を完全に削除できませんでした',
  'toast.operation.permdelete.success': '{count, plural, =1 {アイテム} other {{count} 個のアイテム}}を完全に削除しました',
  'toast.operation.rename.error': 'アイテムの名前を変更できませんでした',
  'toast.operation.rename.undo.error': 'アイテムの名前を変更できませんでした',
  'toast.operation.rename.error.duplicateName': '同じ名前のアイテムが存在します',
  'toast.operation.rename.undo.error.duplicateName': '同じ名前のアイテムが存在します',
  'toast.operation.rename.success': 'アイテムの名前を変更しました',
  'toast.operation.rename.undo.success': '名前の変更を取り消しました',
  'toast.operation.move.error': '{count, plural, =1 {アイテム} other {{count} 個のアイテム}}を移動できませんでした',
  'toast.operation.move.undo.error': '{count, plural, =1 {アイテム} other {{count} 個のアイテム}}を移動できませんでした',
  'toast.operation.move.error.duplicateFolderName': '同じ名前のフォルダーが存在します',
  'toast.operation.move.undo.error.duplicateFolderName': '同じ名前のフォルダーが存在します',
  'toast.operation.move.error.duplicateDocName': '{count, plural, =1 {同じ名前のドキュメントが既に存在しています。他の名前でもう一度お試しください。} other {同じ名前のドキュメントが存在しているため、移動させることができません。}}',
  'toast.operation.move.undo.error.duplicateDocName': '{count, plural, =1 {同じ名前のドキュメントが既に存在しています。他の名前でもう一度試してください。} other {同じ名前のドキュメントが存在しているため、移動できません。}}',
  'toast.operation.move.success': '{count, plural, =1 {アイテム} other {{count} 個のアイテム}}を移動しました',
  'toast.operation.move.undo.success': '移動を取り消しました',
  'toast.operation.unarchive.error': '{count, plural, =1 {アイテム} other {{count} 個のアイテム}}を復元できませんでした',
  'toast.operation.unarchive.undo.error': '{count, plural, =1 {アイテム} other {{count} 個のアイテム}}を復元できませんでした',
  'toast.operation.unarchive.success': '{count, plural, =1 {アイテム} other {{count} 個のアイテム}}を復元しました',
  'toast.operation.unarchive.undo.success': '削除を取り消しました',
  'toast.operation.create_new_folder.success': 'フォルダー作成完了。',
  'toast.operation.create_new_folder.error': '新しいフォルダーを作成できませんでした。',
  'toast.operation.create_new_folder.error.duplicateName': '同じ名前のフォルダーが存在します',
  'toast.operation.user_pin.success': '{count, plural, =1 {アイテム} other {{count} 個のアイテム}}をオフライン対応に設定しました',
  'toast.operation.user_pin.error': '{count, plural, =1 {アイテム} other {{count} 個のアイテム}}をオフライン対応に設定できませんでした',
  'toast.operation.user_unpin.success': '{count, plural, =1 {アイテム} other {{count} 個のアイテム}}がオンライン専用になりました',
  'toast.operation.user_unpin.error': '{count, plural, =1 {アイテム} other {{count} 個のアイテム}}をオンライン専用に設定できませんでした',
  'toast.operation.resolve_sync_error.success': '「{name}」のコピーが作成されました。両方のドキュメントを比較して、違いを調整できます。',
  'toast.ccd.scroll_to_item.fetching': 'ファイルを取得しています…',
  'toast.ccd.scroll_to_item.error': 'ファイルが見つかりません',
  'toast.info.disabled_rename_to_open_item': 'ここで名前を変更する前に、従来の XD ドキュメントを開く必要があります。',
  'toast.action.disabled_rename_to_open_item': 'ドキュメントを開く',
  'toast.error.rename.invalidName': 'この名前には無効な文字が含まれています。',
  'toast.error.rename.invalidChar': '名前に次の文字は使用できません : {characters}',
  'toast.error.rename.invalidEnd': '名前の末尾に「.」または空白を使用することはできません',
  'toast.error.rename.charRestriction': '名前は 200 文字以内にする必要があります。',
  'toast.error.rename.duplicateName': '同じ名前のクラウドドキュメントが存在します',
  'toast.success.reportAbuse': '違反は正常に報告されました',
  'toast.error.reportAbuse': '違反報告に失敗しました',
  'toast.operation.undoLabel': '取り消し',
  'dialog.permdelete.heading': '完全に削除',
  'dialog.permdelete.warning': 'このアクションを取り消すことはできません。この操作を行うと、以下を利用できなくなります。',
  'dialog.permdelete.cancelButton': 'キャンセル',
  'dialog.permdelete.confirmButton': '完全に削除',
  'dialog.permdelete.countItems': '{count, plural, =1 {# 個のアイテム} other {# 個のアイテム}}',
  'dialog.nonemptyfolder.heading': '{count, plural, =1 {このフォルダー} other {これらのフォルダー}}を削除しますか？',
  'dialog.nonemptyfolder.warning': '{count, plural, =1 {このフォルダー} other {これらのフォルダー}}は空ではなく、{appName} で表示できないファイルが入っている可能性があります。このまま削除するか、{count, plural, =1 {このフォルダー} other {これらのフォルダー}}を web で表示して{count, plural, =1 {その} other {その}}内容を確認することができます。{viewOnWebLink}',
  'dialog.nonemptyfolder.cancelButton': 'キャンセル',
  'dialog.nonemptyfolder.confirmButton': '削除',
  'dialog.nonemptyfolder.viewOnWebButton': 'Web で表示',
  'dialog.addfolder.heading': '新規フォルダーを作成',
  'dialog.addfolder.cancelButton': 'キャンセル',
  'dialog.addfolder.confirmButton': '保存',
  'dialog.addfolder.placeholder': '新規フォルダー',
  'dialog.addfolder.invalidChar': '名前に次の文字は使用できません : {characters}',
  'dialog.addfolder.invalidName': 'このフォルダーには無効な文字が含まれています。',
  'dialog.addfolder.invalidEnd': '名前の末尾に「.」または空白を使用することはできません',
  'dialog.addfolder.duplicateName': '同じ名前のフォルダーが存在します',
  'dialog.addfolder.charRestriction': '名前は 200 文字以内にする必要があります。',
  'dialog.moveFolder.heading': '次の場所に移動...',
  'dialog.moveFolder.cancelButton': 'キャンセル',
  'dialog.moveFolder.moveButton': '移動',
  'dialog.moveFolder.createNewFolderButton': 'フォルダーを追加',
  'dialog.reportAbuse.cancelButton': 'キャンセル',
  'dialog.reportAbuse.reportAbuseButton': '違反を報告',
  'dialog.reportAbuse.heading': '違反を報告',
  'dialog.reportAbuse.emailInput': 'メールアドレス',
  'dialog.reportAbuse.nameInput': '名前',
  'dialog.reportAbuse.radioButtonText': 'このコンテンツを報告する理由',
  'dialog.reportAbuse.defamation': '誹謗中傷',
  'dialog.reportAbuse.hate': '差別または憎悪を含む内容',
  'dialog.reportAbuse.trademark': '商標権の侵害',
  'dialog.reportAbuse.pornography': '露骨な性表現を含む内容 ',
  'dialog.reportAbuse.vulgar': '不快なコンテンツ',
  'dialog.reportAbuse.other': 'その他',
  'dialog.reportAbuse.inappropriate': '内容が不適切',
  'dialog.reportAbuse.age': '年齢の不適切な表現',
  'dialog.reportAbuse.gender': 'ジェンダーの不適切な表現',
  'dialog.reportAbuse.description': 'この Creative Cloud コンテンツがアドビの利用条件に違反していると思われる場合は、このフォームに詳細を入力してご報告ください。 ',
  'dialog.reportAbuse.describeConcern': '懸念事項を記入',
  'dialog.reportAbuse.success': '違反は正常に報告されました',
  'dialog.reportAbuse.failure': '違反報告に失敗しました',
  'dialog.reportAbuse.textAreaTitle': '報告内容を詳しくお聞かせください。',
  'dialog.reportAbuse.required': '必須項目',
  'dialog.cachefull.title': 'オフラインで使用できません',
  'dialog.cachefull.message': 'デバイスの空き容量が不足しています。ドキュメントをオンラインでのみ使用にして容量を増やしてください。',
  'dialog.cachefull.confirm': 'OK',
  'dialog.syncError.heading': 'このドキュメントはクラウドへの同期を停止しました',
  'dialog.syncError.body1': '最新バージョンをコピーとして保存し、ドキュメントをクラウドに保存されている最後のバージョンに復元することをお勧めします。',
  'dialog.syncError.body2': 'このドキュメントを開いて編集できますが、変更はクラウドに保存されません。',
  'dialog.syncError.offline': 'コピーを保存して元のファイルを復元するには、オンラインである必要があります。',
  'dialog.syncError.learnMore': '詳細',
  'dialog.syncError.resolveButton': 'コピーを保存して復元',
  'dialog.syncError.openButton': '開く',
  'dialog.syncErrorCopyFail.heading': 'コピーを保存できませんでした',
  'dialog.syncErrorCopyFail.body1': 'このドキュメントを開いて編集することはできますが、変更はクラウドに保存されません。',
  'dialog.syncErrorCopyFail.body2': 'さらにサポートが必要な場合は、アドビカスタマーケアにお問い合わせください (エラー : LocalContentSyncSuspended)。',
  'dialog.syncErrorCopyFail.closeButton': '閉じる',
  'dialog.syncErrorCopyFail.contactUs': 'お問い合わせ',
  'dialog.syncErrorPurgeFail.heading': 'クラウドに保存されている最後のバージョンに復元できませんでした',
  'dialog.syncErrorPurgeFail.body1': 'ドキュメントのコピーが作成されましたが、ドキュメントをクラウドに保存されている最後のバージョンに復元できませんでした',
  'dialog.syncErrorPurgeFail.body2': 'さらにサポートが必要な場合は、アドビカスタマーケアにお問い合わせください (エラー : LocalContentSyncSuspended)。',
  'dialog.syncErrorPurgeFail.closeButton': '閉じる',
  'dialog.syncErrorPurgeFail.contactUs': 'お問い合わせ',
  'onboardingCdo.banner.title.sprk': 'より良い作業方法',
  'onboardingCdo.banner.title.phxs': 'iPad で Photoshop をご使用なら、クラウドドキュメントをぜひお試しください',
  'onboardingCdo.banner.title.ilst': 'Illustrator でクラウドドキュメントを使用できるようになりました',
  'onboardingCdo.banner.title.idsn': 'InDesign でクラウドドキュメントを使用できるようになりました',
  'onboardingCdo.banner.message.sprk': 'クラウドドキュメントは、どこでも、またオフラインでも編集できます。変更は自動保存されて、ドキュメント履歴に表示され、他のユーザーと共有してリアルタイムでシームレスに共同作業できます。',
  'onboardingCdo.banner.message.phxs': 'クラウドドキュメントなら、作業中でも変更内容が随時アドビのクラウドに自動的に保存され、デスクトップや iPad 等デバイスを問わず自分のファイルにアクセスできます。',
  'onboardingCdo.banner.message.ilst': 'Illustrator のクラウドドキュメントは、作業中に自動的にアドビのクラウドに保存されます。また、バージョン履歴を表示して、作業の進捗の経緯を確認することができます。',
  'onboardingCdo.banner.message.idsn': 'InDesign のクラウドドキュメントは、作業中にアドビのクラウドに自動保存されます。',
  'onboardingCdo.banner.linkTitle': 'さらに詳しく',
  'onboardingCdo.banner.confirm': 'OK',
  'operation.progress.archive': '{batchSize, plural, =1 {1 個のアイテム} other {{inProgressNum}/{batchSize} 個のアイテム}}を削除中...',
  'operation.progress.unarchive': '{batchSize, plural, =1 {1 個のアイテム} other {{inProgressNum}/{batchSize} 個のアイテム}}を復元中...',
  'operation.progress.move': '{batchSize, plural, =1 {1 個のアイテム} other {{inProgressNum}/{batchSize} 個のアイテム}}を移動中...',
  'operation.progress.permdelete': '{batchSize, plural, =1 {1 個のアイテム} other {{inProgressNum}/{batchSize} 個のアイテム}}を完全に削除中...',
  'operation.progress.rename': '{batchSize, plural, =1 {1 個のアイテム} other {{inProgressNum}/{batchSize} 個のアイテム}}の名前を変更中...',
  'operation.progress.create_new_folder': '新規フォルダーを作成中...',
  'operation.progress.duplicate': '{batchSize, plural, =1 {1 個のアイテム} other {{inProgressNum}/{batchSize} 個のアイテム}}を複製中…',
  'operation.progress.user_pin': '{batchSize, plural, =1 {1 個のアイテム} other {{inProgressNum} / {batchSize} 個のアイテム}}をオフライン対応に設定中...',
  'operation.progress.user_unpin': '{batchSize, plural, =1 {1 個のアイテム} other {{inProgressNum} / {batchSize} 個のアイテム}}をオンライン専用に設定中...',
  'operation.progress.resolve_sync_error': 'コピーして、クラウドに保存されている最後のバージョンに復元します...',
  'tooltip.offline.general': 'インターネット接続が必要です。',
  'tooltip.offline.create-new-folder': 'フォルダーの作成にはインターネット接続が必要です。',
  'tooltip.offline.move': 'アイテムを削除するにはインターネット接続が必要です',
  'tooltip.syncing.disabled': '同期の完了を保留中',
  'tooltip.rename.disabled': '選択したドキュメントの名前を変更することはできません。ホストアプリケーションで開いて、名前を変更してください。',
  'tooltip.rename.disabled.sprk': 'このファイルは、XD で開くまで名前を変更できません。',
  'tooltip.syncSuspended.needsAction': '同期が停止しました。開いて操作を実行してください。',
  'tooltip.syncSuspended.noAction': '同期が停止しました。現在、このアクションは許可されていません。',
  'Recents.title': '最近使用したファイル',
  'Recents.cloudDocTitle': 'クラウドドキュメント',
  'Recents.error.subtext.coreSync': 'Creative Cloud Syncが正しく実行されていないため、最近使用したファイルは現在使用できません。',
  'item.saveForOfflineIconToolTip': 'このドキュメントはダウンロードされており、オフラインで完全に利用可能です。',
  'item.disconnected.cloudonly': '切断されました。再接続してドキュメントを開いてください。',
  'item.coresyncdown.cloudonly': 'ファイルを読み込めません。Creative Cloud を更新または再起動すると、これが修正される場合があります。',
  'folder.subtitle': 'フォルダー',
  'review.subtitle': 'レビュー',
  'prototype.subtitle': 'プロトタイプ',
  'designspecs.subtitle': 'デザインスペック',
  'project.subtitle': 'プロジェクト',
  'library.subtitle': 'ライブラリ',
  'webLink.subtitle': 'WEB リンク',
  'abbreviations.fileSize.byte': 'B',
  'abbreviations.fileSize.kilobyte': 'KB',
  'abbreviations.fileSize.megabyte': 'MB',
  'abbreviations.fileSize.gigabyte': 'GB',
  'abbreviations.fileSize.terabyte': 'TB',
  'sam.copyNameFormat': '%@ コピー',
  'cloudsync.quota.title': 'クラウドストレージ',
  'cloudsync.quota.percentage': '{percentageUsed}%',
  'cloudsync.quota.usage': '使用量 {usedCloudQuotaString} / {maxCloudQuotaString}',
  'cloudsync.quota.warning': 'クラウドストレージの空きがありません。新しい作品を同期するにはアップグレードしてください。',
  'cloudsync.quota.error': 'ストレージ情報がありません...',
  'cloudsync.quota.upgrade': 'アップグレード',
  'cloudsync.status.complete.title': '同期してバックアップしました',
  'cloudsync.status.syncing.title': 'クラウドドキュメントを同期中',
  'cloudsync.status.syncing.descr': '{progress} / {total}',
  'cloudsync.status.offline.title': 'オフラインでの作業',
  'cloudsync.status.offline.descr': 'ローカルに保存しています。再び接続すると、ドキュメントはクラウドに同期されます。',
  'cloudsync.status.disabled.title': '同期は無効です',
  'cloudsync.status.disabled.descr': 'ローカルに保存しています。ストレージが利用できるようになると、ドキュメントはクラウドに同期されます。',
  'cloudsync.item.progress.determinate': '{progress} / {total}',
  'cloudsync.item.progress.indeterminate': '同期中...',
  'cloudsync.item.complete': '完了',
  'cloudsync.items.header': 'ネットワークアクティビティ',
  'cloudsync.alert.title.coresync.down': '読み込めません',
  'cloudsync.alert.subtext.coresync.down': 'クラウドが同期していません。Creative Cloud デスクトップ版が更新されていることを確認するか、アプリを再起動してください。',
  'cloudsync.alert.subtext.coresync.down.learnmore': '詳細情報',
  'cloudsync.tooltip.offline': '切断しました',
  'cloudsync.tooltip.error': 'エラー',
  'cloudsync.tooltip.syncing': '保存中',
  'cloudsync.tooltip.default': '保存しました',
  'cloudsync.singleDoc.offline.title': '切断しました',
  'cloudsync.singleDoc.offline.descr': '再接続しています',
  'cloudsync.singleDoc.offline.timestamp': '最終同期 {time}',
  'cloudsync.singleDoc.error.samInitFail.title': 'クラウドが同期を停止しました',
  'cloudsync.singleDoc.error.samInitFail.descr': '作業の同期を続行するには、このアプリを再起動してください。',
  'cloudsync.singleDoc.error.syncSuspended.title': 'クラウドが同期を停止しました',
  'cloudsync.singleDoc.error.syncSuspended.descr': '作業の同期を続行するには、このアプリを再起動してください。',
  'cloudsync.singleDoc.error.title': '読み込めません',
  'cloudsync.singleDoc.error.descr': 'クラウドが同期していません。Creative Cloud デスクトップ版が更新されていることを確認するか、アプリを再起動してください。',
  'cloudsync.singleDoc.error.learnMore': '詳細情報',
  'cloudsync.singleDoc.disabled.quotaExceeded.title': 'クラウドストレージの空きがありません',
  'cloudsync.singleDoc.disabled.quotaExceeded.descr': '作業の同期を続行するには、Creative Cloud をアップグレードしてください。',
  'cloudsync.singleDoc.syncing.title': '保存中',
  'cloudsync.singleDoc.syncing.descr': '進行中',
  'cloudsync.singleDoc.disabled.title': 'ファイルを保存できません',
  'cloudsync.singleDoc.disabled.descr': 'アカウントのストレージ容量が不足しています.',
  'cloudsync.singleDoc.complete.title': 'ファイルを保存しました',
  'cloudsync.singleDoc.complete.timestamp': '最終同期 {time}'
};

/***/ }),

/***/ "v5Dd":
/***/ (function(module, exports, __webpack_require__) {

// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
var toIObject = __webpack_require__("NsO/");

var $getOwnPropertyDescriptor = __webpack_require__("vwuL").f;

__webpack_require__("zn7N")('getOwnPropertyDescriptor', function () {
  return function getOwnPropertyDescriptor(it, key) {
    return $getOwnPropertyDescriptor(toIObject(it), key);
  };
});

/***/ }),

/***/ "v6xn":
/***/ (function(module, exports, __webpack_require__) {

// 9.4.2.3 ArraySpeciesCreate(originalArray, length)
var speciesConstructor = __webpack_require__("C2SN");

module.exports = function (original, length) {
  return new (speciesConstructor(original))(length);
};

/***/ }),

/***/ "v7z/":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var _UxpOptions = _interopRequireDefault(__webpack_require__("zvwv"));

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2021 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/


module.exports = _UxpOptions.default.select('Link', () => __webpack_require__("m5yY"), () => __webpack_require__("m5yY"), () => __webpack_require__("LbQT"));

/***/ }),

/***/ "v99S":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/

Object.defineProperty(exports, "__esModule", {
  value: true
});
/**
 * Available sorting direction options from the Search Service
 */

var SortOrderDirEnum;

(function (SortOrderDirEnum) {
  SortOrderDirEnum["asc"] = "asc";
  SortOrderDirEnum["desc"] = "desc";
})(SortOrderDirEnum || (SortOrderDirEnum = {}));

exports.default = SortOrderDirEnum;

/***/ }),

/***/ "vBP9":
/***/ (function(module, exports, __webpack_require__) {

var global = __webpack_require__("5T2Y");

var navigator = global.navigator;
module.exports = navigator && navigator.userAgent || '';

/***/ }),

/***/ "vDnC":
/***/ (function(module) {

module.exports = JSON.parse("{\"File\":\"Datei\",\"Folder\":\"Ordner\"}");

/***/ }),

/***/ "vEBq":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var iaw_jsUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("KTUt");
/* harmony import */ var start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("Db/q");
/* harmony import */ var src_components_start_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("/0Ih");
/* harmony import */ var _Sophia__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("nm0P");
/* harmony import */ var _LoggerWrapper_Logger__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("43WE");
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/





const _logger = _LoggerWrapper_Logger__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"].get('StartIngestClickHandler');
/**
 * Property key constants
 */
const PROPERTY_KEYS = start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].KEYS;
/**
 * Setup the Start related click events.
 *
 * @param eventID 				{String} containing the event identifier
 * @param eventData				{Object} or {String} data associated with the event
 * @param payload 				{Object} cloned payload to fill out
 */
/* harmony default export */ __webpack_exports__["a"] = (function (eventID, eventData, payload) {
    var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
    if (!eventID) {
        payload = null;
        return;
    }
    // handle the event
    switch (eventID) {
        case 'acct-profile':
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_NAV;
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_PROFILE;
            payload['event.subtype'] = PROPERTY_KEYS.SUBTYPE_NAV;
            break;
        case 'trial-status':
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_NAV;
            payload['event.subcategory'] =
                eventData.daysLeft > 0 ? PROPERTY_KEYS.SUBCATEGORY_TRIALCLOCK : PROPERTY_KEYS.SUBCATEGORY_BUY;
            payload['event.subtype'] = PROPERTY_KEYS.SUBTYPE_NAV;
            payload['content.id'] = eventData.cardID;
            payload['content.type'] = eventData.cardType;
            payload['content.action'] = eventData.actionURL;
            payload['content.status'] = eventData.daysLeft;
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].addSophiaAnalytics(payload, eventData.containerAnalyticsParams);
            break;
        case 'panel-filter':
        case 'panel-sort':
        case 'panel-view-mode':
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_WORK;
            payload['event.subcategory'] = eventData.subcategory ? iaw_jsUtil__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].capitalize(eventData.subcategory) : '';
            payload['event.subtype'] = PROPERTY_KEYS.SUBTYPE_NEW;
            payload['ui.view_type'] = eventData.viewType ? iaw_jsUtil__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].capitalize(eventData.viewType) : '';
            payload['ui.filter'] = eventData.filter ? iaw_jsUtil__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].capitalize(eventData.filter) : '';
            payload['ui.sort_order'] = eventData.sortOrder ? iaw_jsUtil__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].capitalize(eventData.sortOrder) : '';
            break;
        case 'mru-empty-new':
            payload['event.subtype'] = PROPERTY_KEYS.SUBTYPE_CREATE;
        // fall through to mru-empty-learn
        case 'mru-empty-learn':
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_WORK;
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_RECENT;
            break;
        case 'sidebar-work-change-panel':
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_WORK;
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_LEGEND;
            payload['event.subtype'] = eventData.subtype;
            payload['ui.view_type'] = eventData.viewType ? iaw_jsUtil__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].capitalize(eventData.viewType) : '';
            payload['ui.filter'] = eventData.filter ? iaw_jsUtil__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].capitalize(eventData.filter) : '';
            payload['ui.sort_order'] = eventData.sortOrder ? iaw_jsUtil__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].capitalize(eventData.sortOrder) : '';
            break;
        case 'sidebar-work-new':
        case 'sidebar-work-open':
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_WORK;
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_LEGEND;
            payload['event.subtype'] =
                eventID === 'sidebar-work-new' ? PROPERTY_KEYS.SUBTYPE_CREATE : PROPERTY_KEYS.SUBTYPE_OPEN;
            payload['ui.view_type'] = eventData.viewType ? iaw_jsUtil__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].capitalize(eventData.viewType) : '';
            payload['ui.filter'] = eventData.filter ? iaw_jsUtil__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].capitalize(eventData.filter) : '';
            payload['ui.sort_order'] = eventData.sortOrder ? iaw_jsUtil__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].capitalize(eventData.sortOrder) : '';
            break;
        case 'nav-tab-change':
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_NAV;
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_CHANGETAB;
            payload['event.subtype'] = eventData;
            break;
        case 'work-card':
        case 'work-item':
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_WORK;
            payload['event.subcategory'] = eventData.subcategory ? iaw_jsUtil__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].capitalize(eventData.subcategory) : '';
            payload['event.subtype'] = PROPERTY_KEYS.SUBTYPE_CARD;
            payload['content.type'] = PROPERTY_KEYS.CONTENT_TYPE_FILE;
            payload['content.size'] = eventData.size;
            payload['content.extension'] = eventData.extension ? eventData.extension.toUpperCase() : '';
            payload['ui.view_type'] = eventData.viewType ? iaw_jsUtil__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].capitalize(eventData.viewType) : '';
            payload['ui.filter'] =
                eventData.filter && eventData.filter !== ''
                    ? iaw_jsUtil__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].capitalize(eventData.filter)
                    : PROPERTY_KEYS.UI_FILTER_NONE;
            payload['ui.sort_order'] = eventData.sortOrder ? iaw_jsUtil__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].capitalize(eventData.sortOrder) : '';
            break;
        case 'custom-item':
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_WORK;
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_LEGEND;
            payload['event.subtype'] = PROPERTY_KEYS.SUBTYPE_CUSTOM;
            payload['content.type'] = eventData.identifier;
            payload['ui.sequence'] = eventData.position;
            break;
        case 'open-team-project':
        case 'new-team-project':
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_WORK;
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_LEGEND;
            payload['event.subtype'] =
                eventID === 'new-team-project' ? PROPERTY_KEYS.SUBTYPE_TEAMNEW : PROPERTY_KEYS.SUBTYPE_TEAMOPEN;
            break;
        case 'open-rush-project':
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_WORK;
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_LEGEND;
            payload['event.subtype'] = PROPERTY_KEYS.SUBTYPE_RUSHOPEN;
            break;
        case 'lightroom-view':
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_WORK;
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_LIGHTROOM;
            if (eventData.subtype) {
                payload['event.subtype'] = eventData.subtype;
            }
            if (eventData.count) {
                payload['event.count'] = eventData.count;
            }
            if (eventData.content) {
                Object.keys(eventData.content).forEach(key => {
                    payload[`content.${key}`] = eventData.content[key];
                });
            }
            break;
        // Home Tab //////////////////////////////////////////////////////////////////////////////////////////////////
        case 'bannerBasic':
            const bannerData = eventData.fieldData;
            payload['event.workflow'] = iaw_jsUtil__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].capitalize(eventData.workflow); // Will return null if string doesn't exist
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_BANNER_BASIC;
            payload['event.subtype'] = eventData.subtype
                ? eventData.subtype.toLowerCase()
                : PROPERTY_KEYS.SUBTYPE_BANNER;
            payload['ui.view_type'] = eventData.stage + ':' + eventData.layout;
            payload['content.status'] =
                eventData.workflow && eventData.workflow === PROPERTY_KEYS.WORKFLOW_DEFAULT
                    ? PROPERTY_KEYS.STATUS_LOCAL
                    : PROPERTY_KEYS.STATUS_CACHED;
            payload['content.name'] = bannerData === null || bannerData === void 0 ? void 0 : bannerData.headerText;
            payload['content.action'] = eventData.ctaURL || start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].getContentIdFromCTAData(eventData.ctaData);
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].addSophiaAnalytics(payload, eventData.containerAnalyticsParams);
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].mapStageConditions(payload, eventData.stage);
            break;
        case 'carousel':
            payload['event.subtype'] = eventData.subtype;
            eventData.value && (payload['event.value'] = eventData.value);
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_HOME;
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_SUGGESTIONS;
            payload['ui.view_type'] = eventData.stage + ':' + eventData.layout;
            payload['ccx.signals'] = eventData.recommendationsJson;
            payload['event.dts_end'] = new Date().toISOString();
            eventData.contentId && (payload['content.id'] = eventData.contentId);
            eventData.contentName && (payload['content.name'] = eventData.contentName);
            eventData.contentType && (payload['content.type'] = eventData.contentType);
            eventData.contentAuthor && (payload['content.author'] = eventData.contentAuthor);
            eventData.ctaDeeplinkData && (payload['content.action'] = eventData.ctaDeeplinkData); // Needed for CCC
            eventData.ctaData && (payload['content.action'] = eventData.ctaData);
            eventData.uiSequence && (payload['ui.sequence'] = eventData.uiSequence);
            eventData.count !== undefined && (payload['event.count'] = eventData.count);
            eventData.cardAnalyticsData &&
                start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].addDynamicRecommendationsModelData(payload, eventData.cardAnalyticsData);
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].addSophiaAnalytics(payload, eventData.containerAnalyticsParams);
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].mapStageConditions(payload, eventData.stage);
            payload['exp.surface_id'] = src_components_start_constants__WEBPACK_IMPORTED_MODULE_2__[/* default */ "k"].SURFACES.HOME;
            payload['exp.response_guid'] = (_a = _Sophia__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].data.analyticsData) === null || _a === void 0 ? void 0 : _a.responseGUID;
            break;
        case 'component--banner-empty':
            const emptyBannerData = eventData.fieldData;
            payload['event.workflow'] = iaw_jsUtil__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].capitalize(eventData.workflow);
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_BANNER_EMPTY;
            payload['event.subtype'] = eventData.subtype ? eventData.subtype.toLowerCase() : PROPERTY_KEYS.SUBTYPE_CMDN;
            payload['event.value'] = PROPERTY_KEYS.VALUE_EMPTY;
            payload['ui.view_type'] = eventData.stage + ':' + eventData.layout;
            payload['content.status'] =
                eventData.workflow && eventData.workflow === PROPERTY_KEYS.WORKFLOW_DEFAULT
                    ? PROPERTY_KEYS.STATUS_LOCAL
                    : PROPERTY_KEYS.STATUS_CACHED;
            payload['content.name'] = emptyBannerData === null || emptyBannerData === void 0 ? void 0 : emptyBannerData.headerText;
            payload['content.action'] = eventData.ctaURL || start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].getContentIdFromCTAData(eventData.ctaData);
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].addSophiaAnalytics(payload, eventData.containerAnalyticsParams);
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].mapStageConditions(payload, eventData.stage);
            break;
        case 'recents':
            payload['event.workflow'] = iaw_jsUtil__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].capitalize(eventData.workflow);
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_RECENT_FILES;
            payload['event.subtype'] = PROPERTY_KEYS.SUBTYPE_FILE;
            payload['ui.view_type'] = eventData.stage + ':' + eventData.layout;
            payload['content.id'] = eventData.assetID;
            payload['content.type'] = PROPERTY_KEYS.CONTENT_TYPE_RECENT;
            payload['content.size'] = eventData.size;
            payload['content.mimetype'] = eventData.extension;
            payload['content.status'] =
                eventData.workflow && eventData.workflow === PROPERTY_KEYS.WORKFLOW_DEFAULT
                    ? PROPERTY_KEYS.STATUS_LOCAL
                    : PROPERTY_KEYS.STATUS_CACHED;
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].addSophiaAnalytics(payload, eventData.containerAnalyticsParams);
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].mapStageConditions(payload, eventData.stage);
            break;
        case 'component--presets-dropdown':
        case 'stickyPresetsDropdown':
            payload['event.workflow'] = iaw_jsUtil__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].capitalize(eventData.workflow);
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_PRESETS_DROPDOWN;
            payload['event.subtype'] = PROPERTY_KEYS.SUBTYPE_PRESETS_DROPDOWN;
            payload['ui.view_type'] = eventData.stage + ':' + eventData.layout;
            payload['content.id'] = eventData.presetID;
            payload['content.name'] = eventData.presetName;
            payload['content.type'] = eventData.presetType;
            if (eventData.customSize) {
                payload['content.value'] = eventData.customSize;
            }
            payload['content.status'] =
                eventData.workflow && eventData.workflow === PROPERTY_KEYS.WORKFLOW_DEFAULT
                    ? PROPERTY_KEYS.STATUS_LOCAL
                    : PROPERTY_KEYS.STATUS_CACHED;
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].addSophiaAnalytics(payload, eventData.containerAnalyticsParams);
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].mapStageConditions(payload, eventData.stage);
            break;
        case 'sidebar-whats-new':
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_NAV;
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_LEFT_NAV;
            payload['event.subtype'] = eventData.subtype
                ? eventData.subtype.toLowerCase()
                : PROPERTY_KEYS.SUBTYPE_WHATS_NEW;
            payload['content.type'] = PROPERTY_KEYS.CONTENT_TYPE_WEB;
            payload['content.action'] = eventData.actionURL;
            break;
        case 'sidebar-user-intent-dialog':
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_NAV;
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_LEFT_NAV;
            payload['event.subtype'] = eventData.subtype
                ? eventData.subtype.toLowerCase()
                : PROPERTY_KEYS.SUBTYPE_USER_INTENT_DIALOG;
            payload['content.type'] = PROPERTY_KEYS.CONTENT_TYPE_WEB;
            payload['content.action'] = eventData.actionURL;
            break;
        case 'component--standard-tout':
            const toutData = eventData.fieldData;
            const primaryCTA = toutData === null || toutData === void 0 ? void 0 : toutData.primaryCTA;
            payload['event.workflow'] = iaw_jsUtil__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].capitalize(eventData.workflow); // Will return null if string doesn't exist
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_TOUT;
            payload['event.subtype'] = ((_b = eventData.subtype) === null || _b === void 0 ? void 0 : _b.toLowerCase()) || ((_c = primaryCTA === null || primaryCTA === void 0 ? void 0 : primaryCTA.ctaText) === null || _c === void 0 ? void 0 : _c.toLowerCase()) || PROPERTY_KEYS.SUBTYPE_TOUT;
            (primaryCTA === null || primaryCTA === void 0 ? void 0 : primaryCTA.ctaDeeplinkData) && (payload['event.value'] = JSON.stringify(primaryCTA === null || primaryCTA === void 0 ? void 0 : primaryCTA.ctaDeeplinkData));
            payload['ui.view_type'] = eventData.stage + ':' + eventData.layout;
            payload['content.status'] =
                eventData.workflow && eventData.workflow === PROPERTY_KEYS.WORKFLOW_DEFAULT
                    ? PROPERTY_KEYS.STATUS_LOCAL
                    : PROPERTY_KEYS.STATUS_CACHED;
            payload['content.name'] = toutData === null || toutData === void 0 ? void 0 : toutData.headerText;
            payload['content.action'] = eventData.ctaURL || start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].getContentIdFromCTAData(eventData.ctaData) || (primaryCTA === null || primaryCTA === void 0 ? void 0 : primaryCTA.ctaEvent);
            payload['ccx.signals'] = start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].parseUserSignals(eventData);
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].addSophiaAnalytics(payload, eventData.containerAnalyticsParams);
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].mapStageConditions(payload, eventData.stage);
            break;
        case 'whatsNew':
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_WHATS_NEW;
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_WHATS_NEW;
            payload['event.subtype'] = eventData.subtype ? eventData.subtype.toLowerCase() : '';
            payload['content.action'] = eventData.sourceAction || eventData.actionURL || eventData.ctaAction;
            payload['content.type'] = eventData.contentType;
            payload['ui.sequence'] = eventData.uiSequence;
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].addSophiaAnalytics(payload, eventData.containerAnalyticsParams);
            break;
        case 'UserIntentDialog':
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_USER_INTENT_DIALOG;
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_USER_INTENT_DIALOG;
            payload['event.subtype'] = eventData.subtype ? eventData.subtype.toLowerCase() : '';
            eventData.value && (payload['event.value'] = eventData.value);
            eventData.ctaData && (payload['content.action'] = eventData.ctaData);
            eventData.contentId && (payload['content.id'] = eventData.contentId);
            eventData.contentName && (payload['content.name'] = eventData.contentName);
            eventData.contentType && (payload['content.type'] = eventData.contentType);
            eventData.contentAuthor && (payload['content.author'] = eventData.contentAuthor);
            eventData.contentCategory && (payload['content.category'] = eventData.contentCategory);
            eventData.contentStatus && (payload['content.status'] = eventData.contentStatus);
            eventData.uiSequence != undefined && (payload['ui.sequence'] = eventData.uiSequence);
            eventData.count !== undefined && (payload['event.count'] = eventData.count);
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].addSophiaAnalytics(payload, eventData.containerAnalyticsParams);
            payload['exp.surface_id'] = src_components_start_constants__WEBPACK_IMPORTED_MODULE_2__[/* default */ "k"].SURFACES.TUTORIALS;
            break;
        case 'component--drag-and-drop':
            payload['event.workflow'] = iaw_jsUtil__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].capitalize(eventData.workflow);
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_DRAGDROP;
            payload['event.subtype'] = eventData.subtype
                ? eventData.subtype.toLowerCase()
                : PROPERTY_KEYS.SUBTYPE_DRAGDROP;
            payload['ui.view_type'] = eventData.stage + ':' + eventData.layout;
            payload['content.status'] =
                eventData.workflow && eventData.workflow === PROPERTY_KEYS.WORKFLOW_DEFAULT
                    ? PROPERTY_KEYS.STATUS_LOCAL
                    : PROPERTY_KEYS.STATUS_CACHED;
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].addSophiaAnalytics(payload, eventData.containerAnalyticsParams);
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].mapStageConditions(payload, eventData.stage);
            break;
        case 'coachMark':
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_COACHMARK;
            payload['event.subcategory'] = eventData.subcategory ? iaw_jsUtil__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].capitalize(eventData.subcategory) : '';
            payload['event.subtype'] = eventData.subtype
                ? eventData.subtype.toLowerCase()
                : PROPERTY_KEYS.WORKFLOW_COACHMARK;
            payload['event.value'] = eventData.percentageCompleted;
            break;
        case 'feedback':
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_HOME;
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_SUGGESTIONS;
            payload['event.subtype'] = PROPERTY_KEYS.SUBTYPE_FEEDBACK;
            payload['event.value'] = eventData.value;
            payload['ui.view_type'] = eventData.stage + ':' + eventData.layout;
            payload['ui.sequence'] = eventData.uiSequence;
            eventData.contentId && (payload['content.id'] = eventData.contentId);
            eventData.contentName && (payload['content.name'] = eventData.contentName);
            eventData.contentType && (payload['content.type'] = eventData.contentType);
            eventData.contentAuthor && (payload['content.author'] = eventData.contentAuthor);
            eventData.count && (payload['event.count'] = eventData.count);
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].addDynamicRecommendationsModelData(payload, eventData.cardAnalyticsData);
            payload['ccx.signals'] = eventData.recommendationsJson;
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].addSophiaAnalytics(payload, eventData.containerAnalyticsParams);
            payload['exp.surface_id'] = src_components_start_constants__WEBPACK_IMPORTED_MODULE_2__[/* default */ "k"].SURFACES.HOME;
            payload['exp.response_guid'] = (_d = _Sophia__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].data.analyticsData) === null || _d === void 0 ? void 0 : _d.responseGUID;
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].mapStageConditions(payload, eventData.stage);
            break;
        //  Learn Tab ////////////////////////////////////////////////////////////////////////////////////////////////
        case 'learnFeedInApp':
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_LEARN;
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_TUTORIAL;
            payload['event.subtype'] = eventData.subtype
                ? eventData.subtype.toLowerCase()
                : PROPERTY_KEYS.SUBTYPE_INAPPTUT;
            payload['ui.view_type'] = eventData.stage + ':' + eventData.layout;
            payload['content.id'] = eventData.tutorialID;
            payload['content.name'] = eventData.tutorialName;
            payload['content.category'] = eventData.tutorialLevel;
            payload['content.type'] = PROPERTY_KEYS.CONTENT_TYPE_TUTORIAL;
            payload['content.status'] = PROPERTY_KEYS.STATUS_CACHED;
            payload['content.author'] = eventData.tutorialSource;
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].addSophiaAnalytics(payload, eventData.containerAnalyticsParams);
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].mapStageConditions(payload, eventData.stage);
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].appendURLParameters(payload, eventData.tutorialAction);
            break;
        case 'learnFeedWeb':
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_LEARN;
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_TUTORIAL;
            payload['event.subtype'] = eventData.subtype
                ? eventData.subtype.toLowerCase()
                : PROPERTY_KEYS.SUBTYPE_WEBTUT;
            payload['ui.view_type'] = eventData.stage + ':' + eventData.layout;
            payload['content.id'] = eventData.tutorialID;
            payload['content.name'] = eventData.tutorialName;
            payload['content.category'] = eventData.tutorialLevel;
            payload['content.type'] = PROPERTY_KEYS.CONTENT_TYPE_TUTORIAL;
            payload['content.status'] = PROPERTY_KEYS.STATUS_CACHED;
            payload['content.author'] = eventData.tutorialSource;
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].addSophiaAnalytics(payload, eventData.containerAnalyticsParams);
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].mapStageConditions(payload, eventData.stage);
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].appendURLParameters(payload, eventData.tutorialAction);
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].addCustomAnalytics(payload, eventData.customFields);
            break;
        case 'toast':
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_TOAST;
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_TOAST;
            payload['event.subtype'] = (eventData === null || eventData === void 0 ? void 0 : eventData.subtype) || PROPERTY_KEYS.SUBTYPE_TOAST;
            payload['event.value'] = JSON.stringify((eventData === null || eventData === void 0 ? void 0 : eventData.ctaData) || ((_f = (_e = eventData === null || eventData === void 0 ? void 0 : eventData.fieldData) === null || _e === void 0 ? void 0 : _e.primaryCTA) === null || _f === void 0 ? void 0 : _f.ctaData));
            payload['content.action'] = (eventData === null || eventData === void 0 ? void 0 : eventData.ctaURL) || (eventData === null || eventData === void 0 ? void 0 : eventData.ctaAction) || (eventData === null || eventData === void 0 ? void 0 : eventData.subtype);
            payload['content.ctaText'] = (eventData === null || eventData === void 0 ? void 0 : eventData.ctaText) || ((_h = (_g = eventData === null || eventData === void 0 ? void 0 : eventData.fieldData) === null || _g === void 0 ? void 0 : _g.primaryCTA) === null || _h === void 0 ? void 0 : _h.ctaText);
            payload['content.id'] = (_j = eventData === null || eventData === void 0 ? void 0 : eventData.fieldData) === null || _j === void 0 ? void 0 : _j.toastName;
            payload['content.status'] = (_k = eventData === null || eventData === void 0 ? void 0 : eventData.fieldData) === null || _k === void 0 ? void 0 : _k.style;
            payload['content.name'] = (eventData === null || eventData === void 0 ? void 0 : eventData.componentName) || ((_m = (_l = eventData === null || eventData === void 0 ? void 0 : eventData.fieldData) === null || _l === void 0 ? void 0 : _l.primaryCTA) === null || _m === void 0 ? void 0 : _m.componentName);
            payload['content.type'] = (eventData === null || eventData === void 0 ? void 0 : eventData.ctaData) ? (_o = eventData === null || eventData === void 0 ? void 0 : eventData.ctaData) === null || _o === void 0 ? void 0 : _o.deepLinkType : eventData === null || eventData === void 0 ? void 0 : eventData.ctaAction;
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].addSophiaAnalytics(payload, eventData === null || eventData === void 0 ? void 0 : eventData.containerAnalyticsParams);
            payload['exp.surface_id'] = src_components_start_constants__WEBPACK_IMPORTED_MODULE_2__[/* default */ "k"].SURFACES.TOAST;
            payload['exp.response_guid'] = (_q = (_p = _Sophia__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"].data) === null || _p === void 0 ? void 0 : _p.analyticsData) === null || _q === void 0 ? void 0 : _q.responseGUID;
            (eventData === null || eventData === void 0 ? void 0 : eventData._path) && (payload['event.url'] = eventData === null || eventData === void 0 ? void 0 : eventData._path);
            break;
        // Other /////////////////////////////////////////////////////////////////////////////////////////////////////
        case 'license':
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_NGL;
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_CHICLET;
            payload['event.subtype'] = eventData.subtype
                ? eventData.subtype.toLowerCase()
                : PROPERTY_KEYS.SUBTYPE_LICENSE;
            payload['event.value'] = eventData.trialDaysRemaining;
            eventData.containerAnalyticsParams && start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].addSophiaAnalytics(payload, eventData.containerAnalyticsParams);
            break;
        case 'license-resolve':
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_NGL;
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_CHICLET;
            payload['event.subtype'] = eventData.subtype
                ? eventData.subtype.toLowerCase()
                : PROPERTY_KEYS.SUBTYPE_RESOLVE_LICENSE;
            payload['event.value'] = eventData.trialDaysRemaining;
            eventData.containerAnalyticsParams && start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].addSophiaAnalytics(payload, eventData.containerAnalyticsParams);
            break;
        case 'starter-badge':
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_NGL;
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_UPGRADE_PLAN;
            payload['event.subtype'] = PROPERTY_KEYS.SUBTYPE_STARTER_BADGE;
            break;
        case 'show-all':
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_LEARN;
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_TUTORIAL;
            payload['event.subtype'] = PROPERTY_KEYS.SUBTYPE_SHOW_ALL;
            payload['ui.view_type'] = eventData.stage + ':' + eventData.layout;
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].addSophiaAnalytics(payload, eventData.containerAnalyticsParams);
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].mapStageConditions(payload, eventData.stage);
            break;
        case 'left-nav':
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_NAV;
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_LEFT_NAV;
            payload['event.subtype'] = eventData.subtype;
            // still need view_type (stage + layout)
            // also mapStageConditions
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].addSophiaAnalytics(payload, eventData.containerAnalyticsParams);
            break;
        // Restoring legacy search analytics
        case 'search-icon':
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_SEARCH;
            payload['event.subcategory'] = iaw_jsUtil__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].capitalize(eventData);
            payload['event.subtype'] = PROPERTY_KEYS.SUBTYPE_START;
            payload['event.context_sequence'] = 1;
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].addSearchSDMEnvAnalytics(payload);
            break;
        case 'search-cmd-key': // this isnt in the sheet - but adding just in case...
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_SEARCH;
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].addSearchSDMEnvAnalytics(payload);
            break;
        case 'search-exit':
        case 'search-exit-esc':
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_SEARCH;
            payload['event.subtype'] = PROPERTY_KEYS.SUBTYPE_EXIT;
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_SEARCH_RESULTS;
            payload['ui.view_type'] = PROPERTY_KEYS.UI_FILTER_ALL; // subject to change
            payload['ui.search_keyword'] = eventData; // subject to change
            if (eventID === 'search-exit-esc') {
                payload['event.subtype'] = PROPERTY_KEYS.SUBTYPE_ESC;
            }
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].addSearchSDMEnvAnalytics(payload);
            break;
        case 'search-submit':
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_SEARCH;
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_SEARCH;
            payload['event.subtype'] = PROPERTY_KEYS.SUBTYPE_SUBMIT;
            payload['ui.view_type'] = PROPERTY_KEYS.UI_FILTER_ALL;
            payload['ui.search_keyword'] = eventData;
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].addSearchSDMEnvAnalytics(payload);
            break;
        case 'search-card':
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_SEARCH;
            payload['event.subcategory'] = iaw_jsUtil__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].capitalize(eventData.contentType);
            payload['event.subtype'] = PROPERTY_KEYS.SUBTYPE_CARD;
            payload['content.id'] = eventData.asset_id;
            payload['content.type'] = eventData.asset_type;
            payload['content.mimetype'] = eventData.type;
            payload['content.category'] = eventData.contentType;
            payload['ui.sequence'] = eventData.position;
            payload['ui.search_keyword'] = eventData.term;
            payload['search.request_guid'] = eventData.requestGUID;
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].addSearchSDMEnvAnalytics(payload);
            break;
        case 'search-filter-all':
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_SEARCH;
            payload['event.subcategory'] = iaw_jsUtil__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].capitalize(eventData.mode);
            payload['event.subtype'] = PROPERTY_KEYS.SUBTYPE_SHOWALL;
            payload['ui.view_type'] = PROPERTY_KEYS.UI_FILTER_ALL;
            payload['ui.search_keyword'] = eventData.term;
            payload['search.request_guid'] = eventData.requestGUID;
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].addSearchSDMEnvAnalytics(payload);
            break;
        case 'search-filter-breadcrumb':
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_SEARCH;
            payload['event.subcategory'] = iaw_jsUtil__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].capitalize(eventData.mode);
            payload['event.subtype'] = PROPERTY_KEYS.SUBTYPE_BREADCRUMB;
            payload['ui.view_type'] = PROPERTY_KEYS.UI_FILTER_ALL;
            payload['ui.search_keyword'] = eventData.term;
            payload['search.request_guid'] = eventData.requestGUID;
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].addSearchSDMEnvAnalytics(payload);
            break;
        case 'open-learn-link':
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_SEARCH;
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_SEARCH_LEARN;
            payload['event.subtype'] = PROPERTY_KEYS.SUBTYPE_OPEN;
            payload['content.type'] = PROPERTY_KEYS.CONTENT_TYPE_LEARN;
            payload['content.action'] = eventData.url;
            payload['ui.sequence'] = eventData.position;
            payload['ui.search_keyword'] = eventData.term;
            payload['search.request_guid'] = eventData.requestGUID;
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].addSearchSDMEnvAnalytics(payload);
            break;
        case 'open-rush-project':
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_WORK;
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_LEGEND;
            payload['event.subtype'] = PROPERTY_KEYS.SUBTYPE_RUSHOPEN;
            break;
        case 'lightroom-view':
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_WORK;
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_LIGHTROOM;
            if (eventData.subtype) {
                payload['event.subtype'] = eventData.subtype;
            }
            if (eventData.count) {
                payload['event.count'] = eventData.count;
            }
            if (eventData.content) {
                Object.keys(eventData.content).forEach(key => {
                    payload[`content.${key}`] = eventData.content[key];
                });
            }
            break;
        case 'component--carousel':
            payload['event.workflow'] = iaw_jsUtil__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].capitalize(eventData.workflow); // Will return null if string doesn't exist
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_CAROUSEL;
            payload['event.subtype'] =
                eventData.subtype === PROPERTY_KEYS.SUBTYPE_CAROUSEL_INDICATOR
                    ? eventData.subtype
                    : PROPERTY_KEYS.SUBTYPE_SMALLTOUT;
            payload['ui.view_type'] = eventData.stage + ':' + eventData.layout;
            payload['content.status'] =
                eventData.workflow && eventData.workflow === PROPERTY_KEYS.WORKFLOW_DEFAULT
                    ? PROPERTY_KEYS.STATUS_LOCAL
                    : PROPERTY_KEYS.STATUS_CACHED;
            payload['content.id'] =
                (eventData.fieldData && eventData.fieldData.sys && eventData.fieldData.sys.id) || null;
            payload['content.name'] = (eventData.fieldData && eventData.fieldData.name) || null;
            if (payload['event.subtype'] === PROPERTY_KEYS.SUBTYPE_CAROUSEL_INDICATOR) {
                payload['content.index'] = eventData.index || 0;
                if (eventData.index > 0 && eventData.fieldData && eventData.fieldData.cardsData[eventData.index - 1]) {
                    payload['content.content'] = eventData.fieldData.cardsData[eventData.index - 1].content;
                }
            }
            else {
                payload['content.content'] = eventData.content;
                payload['content.action'] = eventData.ctaURL || start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].getContentIdFromCTAData(eventData.ctaData);
                payload['content.type'] = start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].parseClickAction(eventData.ctaEvent || eventData.ctaAction);
                payload['content.title'] = eventData.title;
            }
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].addSophiaAnalytics(payload, eventData.containerAnalyticsParams);
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].mapStageConditions(payload, eventData.stage);
            break;
        case 'npsModalDismissed':
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_NPS;
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_NPS;
            payload['event.subtype'] = PROPERTY_KEYS.SUBTYPE_DISMISS;
            payload['content.type'] = eventData.trigger;
            payload['content.category'] = eventData.bucket;
            payload['content.name'] = eventData.question;
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].addSophiaAnalytics(payload, eventData.containerAnalyticsParams);
            break;
        case 'npsModalSubmit':
            payload['event.workflow'] = PROPERTY_KEYS.WORKFLOW_NPS;
            payload['event.subcategory'] = PROPERTY_KEYS.SUBCATEGORY_NPS;
            payload['event.subtype'] = PROPERTY_KEYS.SUBTYPE_SUBMIT;
            payload['event.count'] = eventData.score;
            payload['event.value'] = eventData.feedback;
            payload['content.type'] = eventData.trigger;
            payload['content.category'] = eventData.bucket;
            payload['content.name'] = eventData.question;
            start_StartIngestUtil__WEBPACK_IMPORTED_MODULE_1__[/* default */ "c"].addSophiaAnalytics(payload, eventData.containerAnalyticsParams);
            break;
        default:
            _logger.error(PROPERTY_KEYS.DEFAULT_CLICK + iaw_jsUtil__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].capitalize(eventID) + JSON.stringify(eventData), true);
            break;
    }
});


/***/ }),

/***/ "vFt6":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return getDomElement; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return getLocationHref; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return htmlTreeAsString; });
/* harmony import */ var _is_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("9AQC");
/* harmony import */ var _worldwide_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("rbyU");

 // eslint-disable-next-line deprecation/deprecation

const WINDOW = Object(_worldwide_js__WEBPACK_IMPORTED_MODULE_1__[/* getGlobalObject */ "b"])();
/**
 * Given a child DOM element, returns a query-selector statement describing that
 * and its ancestors
 * e.g. [HTMLElement] => body > div > input#foo.btn[name=baz]
 * @returns generated DOM path
 */

function htmlTreeAsString(elem, keyAttrs) {
  // try/catch both:
  // - accessing event.target (see getsentry/raven-js#838, #768)
  // - `htmlTreeAsString` because it's complex, and just accessing the DOM incorrectly
  // - can throw an exception in some circumstances.
  try {
    let currentElem = elem;
    const MAX_TRAVERSE_HEIGHT = 5;
    const MAX_OUTPUT_LEN = 80;
    const out = [];
    let height = 0;
    let len = 0;
    const separator = ' > ';
    const sepLength = separator.length;
    let nextStr; // eslint-disable-next-line no-plusplus

    while (currentElem && height++ < MAX_TRAVERSE_HEIGHT) {
      nextStr = _htmlElementAsString(currentElem, keyAttrs); // bail out if
      // - nextStr is the 'html' element
      // - the length of the string that would be created exceeds MAX_OUTPUT_LEN
      //   (ignore this limit if we are on the first iteration)

      if (nextStr === 'html' || height > 1 && len + out.length * sepLength + nextStr.length >= MAX_OUTPUT_LEN) {
        break;
      }

      out.push(nextStr);
      len += nextStr.length;
      currentElem = currentElem.parentNode;
    }

    return out.reverse().join(separator);
  } catch (_oO) {
    return '<unknown>';
  }
}
/**
 * Returns a simple, query-selector representation of a DOM element
 * e.g. [HTMLElement] => input#foo.btn[name=baz]
 * @returns generated DOM path
 */


function _htmlElementAsString(el, keyAttrs) {
  const elem = el;
  const out = [];
  let className;
  let classes;
  let key;
  let attr;
  let i;

  if (!elem || !elem.tagName) {
    return '';
  }

  out.push(elem.tagName.toLowerCase()); // Pairs of attribute keys defined in `serializeAttribute` and their values on element.

  const keyAttrPairs = keyAttrs && keyAttrs.length ? keyAttrs.filter(keyAttr => elem.getAttribute(keyAttr)).map(keyAttr => [keyAttr, elem.getAttribute(keyAttr)]) : null;

  if (keyAttrPairs && keyAttrPairs.length) {
    keyAttrPairs.forEach(keyAttrPair => {
      out.push(`[${keyAttrPair[0]}="${keyAttrPair[1]}"]`);
    });
  } else {
    if (elem.id) {
      out.push(`#${elem.id}`);
    } // eslint-disable-next-line prefer-const


    className = elem.className;

    if (className && Object(_is_js__WEBPACK_IMPORTED_MODULE_0__[/* isString */ "l"])(className)) {
      classes = className.split(/\s+/);

      for (i = 0; i < classes.length; i++) {
        out.push(`.${classes[i]}`);
      }
    }
  }

  const allowedAttrs = ['type', 'name', 'title', 'alt'];

  for (i = 0; i < allowedAttrs.length; i++) {
    key = allowedAttrs[i];
    attr = elem.getAttribute(key);

    if (attr) {
      out.push(`[${key}="${attr}"]`);
    }
  }

  return out.join('');
}
/**
 * A safe form of location.href
 */


function getLocationHref() {
  try {
    return WINDOW.document.location.href;
  } catch (oO) {
    return '';
  }
}
/**
 * Gets a DOM element by using document.querySelector.
 *
 * This wrapper will first check for the existance of the function before
 * actually calling it so that we don't have to take care of this check,
 * every time we want to access the DOM.
 *
 * Reason: DOM/querySelector is not available in all environments.
 *
 * We have to cast to any because utils can be consumed by a variety of environments,
 * and we don't want to break TS users. If you know what element will be selected by
 * `document.querySelector`, specify it as part of the generic call. For example,
 * `const element = getDomElement<Element>('selector');`
 *
 * @param selector the selector string passed on to document.querySelector
 */
// eslint-disable-next-line @typescript-eslint/no-explicit-any


function getDomElement(selector) {
  if (WINDOW.document && WINDOW.document.querySelector) {
    return WINDOW.document.querySelector(selector);
  }

  return null;
}



/***/ }),

/***/ "vJuj":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, props, _react2.default.createElement("svg", {
    className: "spectrum-UIIcon-CheckmarkMedium"
  }, _react2.default.createElement("path", {
    d: "M4.5 10a1.023 1.023 0 0 1-.8-.384l-2.488-3a1 1 0 0 1 1.577-1.233L4.5 7.376l4.712-5.991a1 1 0 1 1 1.576 1.23l-5.511 7A.977.977 0 0 1 4.5 10z",
    className: "spectrum-UIIcon--medium"
  }), _react2.default.createElement("path", {
    d: "M6 14a1 1 0 0 1-.788-.385l-4-5a1 1 0 1 1 1.576-1.23L6 11.376l7.213-8.991a1 1 0 1 1 1.576 1.231l-8 10A1 1 0 0 1 6 14z",
    className: "spectrum-UIIcon--large"
  })));
};

WrappedIcon.displayName = 'CheckmarkMedium';
exports.default = WrappedIcon;

/***/ }),

/***/ "vKrR":
/***/ (function(module, exports) {

/* eslint-disable max-len */
module.exports = {
  'confirmationDialog.dontShowAgain': '次回から表示しない',
  'confirmationDialog.confirm.default': '続行',
  'confirmationDialog.cancel.default': 'キャンセル',
  'confirmationDialog.learnMore': '詳細情報',
  'toast.warning.place': 'リンクされたクラウドドキュメントをまだ配置できません。代わりに埋め込みを実施します。',
  'toast.warning.placeLinkOrEmbed': '配置したアセットは、デフォルトで元のアセットにリンクされるようになりました。つまり、1 つの場所で編集すると、変更はすべての場所に反映されます。',
  'toast.warning.saveAs.invalidFormat': '{genericFormat}ファイルはここに保存できません。ファイルは次の形式で保存されます : {adobeFormat}',
  'pickerView.recent': '最近使用したもの',
  'pickerView.cloud_docs': '自分のファイル',
  'pickerView.shared_with_you': '共有されたアイテム',
  'pickerView.projects': 'プロジェクト',
  'pickerView.files': 'ファイル',
  'pickerView.computer': 'コンピューター...',
  'pickerView.saveAsInput': '別名で保存',
  'pickerView.exportInput': '書き出し形式',
  'pickerView.sketch_library': 'Sketch ライブラリを変換...',
  'pickerView.error.saveAsOrExport.default': 'ファイル名が無効です。',
  'pickerView.error.saveAsOrExport.invalidName': 'この名前には無効な文字が含まれています。',
  'pickerView.error.saveAsOrExport.invalidEnd': '名前の末尾に「.」または空白を使用することはできません',
  'pickerView.error.saveAsOrExport.invalidChar': '名前に次の文字は使用できません : {characters}',
  'pickerView.error.saveAsOrExport.charRestriction': '名前は 200 文字以内にする必要があります。',
  'pickerView.error.saveAsOrExport.duplicateName': '同じ名前のクラウドドキュメントが存在します',
  'pickerView.error.addALibrary.permission': 'このライブラリを追加する権限がありません',
  'pickerViewFooter.button.add': '追加',
  'pickerViewFooter.button.cancel': 'キャンセル',
  'pickerViewFooter.button.copy': 'ここにコピー',
  'pickerViewFooter.button.move': 'ここに移動',
  'pickerViewFooter.button.moveToProject': 'ここに移動',
  'pickerViewFooter.button.copyToProject': 'ここにコピー',
  'pickerViewFooter.button.choose': '選択',
  'pickerViewFooter.button.save': '保存',
  'pickerViewFooter.button.switchToOSPicker': 'コンピューター',
  'pickerViewFooter.button.save.offline': 'インターネット接続が必要',
  'pickerViewFooter.button.saveAsCopy': '保存',
  'pickerViewFooter.button.export': '書き出し',
  'pickerViewFooter.button.placeLinkOrEmbed': '配置',
  'pickerViewFooter.button.import': '読み込み',
  'pickerViewFooter.checkbox.placeLink': 'リンク',
  'pickerViewFooter.tooltip.placeLink': 'このアイテムはリンクされたアセットとしてのみ配置できます。',
  'pickerViewFooter.tooltip.placeEmbed': 'このアイテムは埋め込みとしてのみ配置できます。',
  'pickerViewFooter.saveAs.format.label': '形式',
  'pickerViewFooter.button.selectProject': '保存',
  'onboardingCdp.title': 'クラウドドキュメントとして保存すると、さらに多くのことができるようになります',
  'onboardingCdp.tooltip': 'コンピューターに保存した場合は、クラウド機能を使用できません。',
  'onboardingCdp.tooltip.link': '詳細情報',
  'onboardingCdp.table.header.saveToCloud': 'Creative Cloud',
  'onboardingCdp.table.header.saveToLocal': 'コンピューター',
  'onboardingCdp.button.saveToCloud': 'Creative Cloud に保存',
  'onboardingCdp.feature.offline': 'オフラインアクセス',
  'onboardingCdp.feature.syncing': 'すべてのデバイスへクラウド同期',
  'onboardingCdp.feature.autosave': 'すべての変更を自動保存',
  'onboardingCdp.feature.versionHistory': 'バージョン履歴',
  'onboardingCdp.feature.inviteToEdit': '編集に招待',
  'onboardingCdp.button.saveToLocal': 'コンピューターに保存',
  'onboardingCdp.checkbox.doNotShowAgain': '次回から表示しない',
  'uap.title.place': 'Creative Cloud から配置',
  'uap.title.import': 'Creative Cloud から読み込み',
  'uap.title.placeLinkOrEmbed': 'Creative Cloud から配置',
  'uap.title.linkAssets': 'Creative Cloud からリンク',
  'uap.title.open': 'Creative Cloud から開く',
  'uap.title.relink': 'Creative Cloud からリンク',
  'uap.title.saveAs': 'Creative Cloud に保存',
  'uap.title.saveAsCopy': 'Creative Cloud に保存',
  'uap.title.saveToFolder': 'Creative Cloud に保存',
  'uap.title.export': 'Creative Cloud に書き出し',
  'uap.title.copy': 'Creative Cloud にコピー',
  'uap.title.move': 'Creative Cloud で移動',
  'uap.title.moveToProject': 'Creative Cloud で移動',
  'uap.title.copyToProject': 'Creative Cloud にコピー',
  'uap.title.reference': 'Creative Cloud に追加',
  'uap.title.selectProject': 'Creative Cloud に保存',
  'move.toSpace.confirm.title': 'バージョン履歴は失われます',
  'move.toSpace.confirm.message': 'このファイルを移動すると、バージョン履歴が削除されます。バージョン履歴を保持する場合は、代わりにコピーを作成してください。'
};

/***/ }),

/***/ "vOz9":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Scope; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return addGlobalEventProcessor; });
/* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("9AQC");
/* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("kdvv");
/* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("HR75");
/* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("8LbN");
/* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("9/Zf");
/* harmony import */ var _sentry_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("rbyU");
/* harmony import */ var _session_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("v/92");


/**
 * Default value for maximum number of breadcrumbs added to an event.
 */

const DEFAULT_MAX_BREADCRUMBS = 100;
/**
 * Holds additional event information. {@link Scope.applyToEvent} will be
 * called by the client before an event will be sent.
 */

class Scope {
  /** Flag if notifying is happening. */

  /** Callback for client to receive scope changes. */

  /** Callback list that will be called after {@link applyToEvent}. */

  /** Array of breadcrumbs. */

  /** User */

  /** Tags */

  /** Extra */

  /** Contexts */

  /** Attachments */

  /**
   * A place to stash data which is needed at some point in the SDK's event processing pipeline but which shouldn't get
   * sent to Sentry
   */

  /** Fingerprint */

  /** Severity */
  // eslint-disable-next-line deprecation/deprecation

  /** Transaction Name */

  /** Span */

  /** Session */

  /** Request Mode Session Status */
  constructor() {
    this._notifyingListeners = false;
    this._scopeListeners = [];
    this._eventProcessors = [];
    this._breadcrumbs = [];
    this._attachments = [];
    this._user = {};
    this._tags = {};
    this._extra = {};
    this._contexts = {};
    this._sdkProcessingMetadata = {};
  }
  /**
   * Inherit values from the parent scope.
   * @param scope to clone.
   */


  static clone(scope) {
    const newScope = new Scope();

    if (scope) {
      newScope._breadcrumbs = [...scope._breadcrumbs];
      newScope._tags = { ...scope._tags
      };
      newScope._extra = { ...scope._extra
      };
      newScope._contexts = { ...scope._contexts
      };
      newScope._user = scope._user;
      newScope._level = scope._level;
      newScope._span = scope._span;
      newScope._session = scope._session;
      newScope._transactionName = scope._transactionName;
      newScope._fingerprint = scope._fingerprint;
      newScope._eventProcessors = [...scope._eventProcessors];
      newScope._requestSession = scope._requestSession;
      newScope._attachments = [...scope._attachments];
    }

    return newScope;
  }
  /**
   * Add internal on change listener. Used for sub SDKs that need to store the scope.
   * @hidden
   */


  addScopeListener(callback) {
    this._scopeListeners.push(callback);
  }
  /**
   * @inheritDoc
   */


  addEventProcessor(callback) {
    this._eventProcessors.push(callback);

    return this;
  }
  /**
   * @inheritDoc
   */


  setUser(user) {
    this._user = user || {};

    if (this._session) {
      Object(_session_js__WEBPACK_IMPORTED_MODULE_6__[/* updateSession */ "c"])(this._session, {
        user
      });
    }

    this._notifyScopeListeners();

    return this;
  }
  /**
   * @inheritDoc
   */


  getUser() {
    return this._user;
  }
  /**
   * @inheritDoc
   */


  getRequestSession() {
    return this._requestSession;
  }
  /**
   * @inheritDoc
   */


  setRequestSession(requestSession) {
    this._requestSession = requestSession;
    return this;
  }
  /**
   * @inheritDoc
   */


  setTags(tags) {
    this._tags = { ...this._tags,
      ...tags
    };

    this._notifyScopeListeners();

    return this;
  }
  /**
   * @inheritDoc
   */


  setTag(key, value) {
    this._tags = { ...this._tags,
      [key]: value
    };

    this._notifyScopeListeners();

    return this;
  }
  /**
   * @inheritDoc
   */


  setExtras(extras) {
    this._extra = { ...this._extra,
      ...extras
    };

    this._notifyScopeListeners();

    return this;
  }
  /**
   * @inheritDoc
   */


  setExtra(key, extra) {
    this._extra = { ...this._extra,
      [key]: extra
    };

    this._notifyScopeListeners();

    return this;
  }
  /**
   * @inheritDoc
   */


  setFingerprint(fingerprint) {
    this._fingerprint = fingerprint;

    this._notifyScopeListeners();

    return this;
  }
  /**
   * @inheritDoc
   */


  setLevel( // eslint-disable-next-line deprecation/deprecation
  level) {
    this._level = level;

    this._notifyScopeListeners();

    return this;
  }
  /**
   * @inheritDoc
   */


  setTransactionName(name) {
    this._transactionName = name;

    this._notifyScopeListeners();

    return this;
  }
  /**
   * @inheritDoc
   */


  setContext(key, context) {
    if (context === null) {
      // eslint-disable-next-line @typescript-eslint/no-dynamic-delete
      delete this._contexts[key];
    } else {
      this._contexts = { ...this._contexts,
        [key]: context
      };
    }

    this._notifyScopeListeners();

    return this;
  }
  /**
   * @inheritDoc
   */


  setSpan(span) {
    this._span = span;

    this._notifyScopeListeners();

    return this;
  }
  /**
   * @inheritDoc
   */


  getSpan() {
    return this._span;
  }
  /**
   * @inheritDoc
   */


  getTransaction() {
    // Often, this span (if it exists at all) will be a transaction, but it's not guaranteed to be. Regardless, it will
    // have a pointer to the currently-active transaction.
    const span = this.getSpan();
    return span && span.transaction;
  }
  /**
   * @inheritDoc
   */


  setSession(session) {
    if (!session) {
      delete this._session;
    } else {
      this._session = session;
    }

    this._notifyScopeListeners();

    return this;
  }
  /**
   * @inheritDoc
   */


  getSession() {
    return this._session;
  }
  /**
   * @inheritDoc
   */


  update(captureContext) {
    if (!captureContext) {
      return this;
    }

    if (typeof captureContext === 'function') {
      const updatedScope = captureContext(this);
      return updatedScope instanceof Scope ? updatedScope : this;
    }

    if (captureContext instanceof Scope) {
      this._tags = { ...this._tags,
        ...captureContext._tags
      };
      this._extra = { ...this._extra,
        ...captureContext._extra
      };
      this._contexts = { ...this._contexts,
        ...captureContext._contexts
      };

      if (captureContext._user && Object.keys(captureContext._user).length) {
        this._user = captureContext._user;
      }

      if (captureContext._level) {
        this._level = captureContext._level;
      }

      if (captureContext._fingerprint) {
        this._fingerprint = captureContext._fingerprint;
      }

      if (captureContext._requestSession) {
        this._requestSession = captureContext._requestSession;
      }
    } else if (Object(_sentry_utils__WEBPACK_IMPORTED_MODULE_0__[/* isPlainObject */ "i"])(captureContext)) {
      // eslint-disable-next-line no-param-reassign
      captureContext = captureContext;
      this._tags = { ...this._tags,
        ...captureContext.tags
      };
      this._extra = { ...this._extra,
        ...captureContext.extra
      };
      this._contexts = { ...this._contexts,
        ...captureContext.contexts
      };

      if (captureContext.user) {
        this._user = captureContext.user;
      }

      if (captureContext.level) {
        this._level = captureContext.level;
      }

      if (captureContext.fingerprint) {
        this._fingerprint = captureContext.fingerprint;
      }

      if (captureContext.requestSession) {
        this._requestSession = captureContext.requestSession;
      }
    }

    return this;
  }
  /**
   * @inheritDoc
   */


  clear() {
    this._breadcrumbs = [];
    this._tags = {};
    this._extra = {};
    this._user = {};
    this._contexts = {};
    this._level = undefined;
    this._transactionName = undefined;
    this._fingerprint = undefined;
    this._requestSession = undefined;
    this._span = undefined;
    this._session = undefined;

    this._notifyScopeListeners();

    this._attachments = [];
    return this;
  }
  /**
   * @inheritDoc
   */


  addBreadcrumb(breadcrumb, maxBreadcrumbs) {
    const maxCrumbs = typeof maxBreadcrumbs === 'number' ? maxBreadcrumbs : DEFAULT_MAX_BREADCRUMBS; // No data has been changed, so don't notify scope listeners

    if (maxCrumbs <= 0) {
      return this;
    }

    const mergedBreadcrumb = {
      timestamp: Object(_sentry_utils__WEBPACK_IMPORTED_MODULE_1__[/* dateTimestampInSeconds */ "b"])(),
      ...breadcrumb
    };
    this._breadcrumbs = [...this._breadcrumbs, mergedBreadcrumb].slice(-maxCrumbs);

    this._notifyScopeListeners();

    return this;
  }
  /**
   * @inheritDoc
   */


  clearBreadcrumbs() {
    this._breadcrumbs = [];

    this._notifyScopeListeners();

    return this;
  }
  /**
   * @inheritDoc
   */


  addAttachment(attachment) {
    this._attachments.push(attachment);

    return this;
  }
  /**
   * @inheritDoc
   */


  getAttachments() {
    return this._attachments;
  }
  /**
   * @inheritDoc
   */


  clearAttachments() {
    this._attachments = [];
    return this;
  }
  /**
   * Applies data from the scope to the event and runs all event processors on it.
   *
   * @param event Event
   * @param hint Object containing additional information about the original exception, for use by the event processors.
   * @hidden
   */


  applyToEvent(event, hint = {}) {
    if (this._extra && Object.keys(this._extra).length) {
      event.extra = { ...this._extra,
        ...event.extra
      };
    }

    if (this._tags && Object.keys(this._tags).length) {
      event.tags = { ...this._tags,
        ...event.tags
      };
    }

    if (this._user && Object.keys(this._user).length) {
      event.user = { ...this._user,
        ...event.user
      };
    }

    if (this._contexts && Object.keys(this._contexts).length) {
      event.contexts = { ...this._contexts,
        ...event.contexts
      };
    }

    if (this._level) {
      event.level = this._level;
    }

    if (this._transactionName) {
      event.transaction = this._transactionName;
    } // We want to set the trace context for normal events only if there isn't already
    // a trace context on the event. There is a product feature in place where we link
    // errors with transaction and it relies on that.


    if (this._span) {
      event.contexts = {
        trace: this._span.getTraceContext(),
        ...event.contexts
      };
      const transactionName = this._span.transaction && this._span.transaction.name;

      if (transactionName) {
        event.tags = {
          transaction: transactionName,
          ...event.tags
        };
      }
    }

    this._applyFingerprint(event);

    event.breadcrumbs = [...(event.breadcrumbs || []), ...this._breadcrumbs];
    event.breadcrumbs = event.breadcrumbs.length > 0 ? event.breadcrumbs : undefined;
    event.sdkProcessingMetadata = { ...event.sdkProcessingMetadata,
      ...this._sdkProcessingMetadata
    };
    return this._notifyEventProcessors([...getGlobalEventProcessors(), ...this._eventProcessors], event, hint);
  }
  /**
   * Add data which will be accessible during event processing but won't get sent to Sentry
   */


  setSDKProcessingMetadata(newData) {
    this._sdkProcessingMetadata = { ...this._sdkProcessingMetadata,
      ...newData
    };
    return this;
  }
  /**
   * This will be called after {@link applyToEvent} is finished.
   */


  _notifyEventProcessors(processors, event, hint, index = 0) {
    return new _sentry_utils__WEBPACK_IMPORTED_MODULE_2__[/* SyncPromise */ "a"]((resolve, reject) => {
      const processor = processors[index];

      if (event === null || typeof processor !== 'function') {
        resolve(event);
      } else {
        const result = processor({ ...event
        }, hint);
        (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && processor.id && result === null && _sentry_utils__WEBPACK_IMPORTED_MODULE_3__[/* logger */ "c"].log(`Event processor "${processor.id}" dropped event`);

        if (Object(_sentry_utils__WEBPACK_IMPORTED_MODULE_0__[/* isThenable */ "n"])(result)) {
          void result.then(final => this._notifyEventProcessors(processors, final, hint, index + 1).then(resolve)).then(null, reject);
        } else {
          void this._notifyEventProcessors(processors, result, hint, index + 1).then(resolve).then(null, reject);
        }
      }
    });
  }
  /**
   * This will be called on every set call.
   */


  _notifyScopeListeners() {
    // We need this check for this._notifyingListeners to be able to work on scope during updates
    // If this check is not here we'll produce endless recursion when something is done with the scope
    // during the callback.
    if (!this._notifyingListeners) {
      this._notifyingListeners = true;

      this._scopeListeners.forEach(callback => {
        callback(this);
      });

      this._notifyingListeners = false;
    }
  }
  /**
   * Applies fingerprint from the scope to the event if there's one,
   * uses message if there's one instead or get rid of empty fingerprint
   */


  _applyFingerprint(event) {
    // Make sure it's an array first and we actually have something in place
    event.fingerprint = event.fingerprint ? Object(_sentry_utils__WEBPACK_IMPORTED_MODULE_4__[/* arrayify */ "c"])(event.fingerprint) : []; // If we have something on the scope, then merge it with event

    if (this._fingerprint) {
      event.fingerprint = event.fingerprint.concat(this._fingerprint);
    } // If we have no data at all, remove empty array default


    if (event.fingerprint && !event.fingerprint.length) {
      delete event.fingerprint;
    }
  }

}
/**
 * Returns the global event processors.
 */


function getGlobalEventProcessors() {
  return Object(_sentry_utils__WEBPACK_IMPORTED_MODULE_5__[/* getGlobalSingleton */ "c"])('globalEventProcessors', () => []);
}
/**
 * Add a EventProcessor to be kept globally.
 * @param callback EventProcessor to add
 */


function addGlobalEventProcessor(callback) {
  getGlobalEventProcessors().push(callback);
}



/***/ }),

/***/ "vQKl":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("VIzJ");
/* harmony import */ var _Dialog__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("dKUG");
/* harmony import */ var _styles_ErrorDialog_css__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("X51z");
/* harmony import */ var _styles_ErrorDialog_css__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_styles_ErrorDialog_css__WEBPACK_IMPORTED_MODULE_3__);




class ErrorDialog extends react__WEBPACK_IMPORTED_MODULE_0__["Component"] {
    render() {
        const { intl, onClose, errorMessageId, variant = 'primary', errorTitleId = 'projectInfo.new.error.title', confirmLabel = 'button.ok', } = this.props;
        return (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_Dialog__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"], { className: _styles_ErrorDialog_css__WEBPACK_IMPORTED_MODULE_3___default.a.errorDialog, variant: variant, title: intl.formatMessage({ id: errorTitleId }), onClose: onClose, confirmLabel: intl.formatMessage({ id: confirmLabel }), autoFocusButton: "confirm" },
            react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_1__[/* FormattedMessage */ "c"], { id: errorMessageId })));
    }
}
/* harmony default export */ __webpack_exports__["a"] = (Object(react_intl__WEBPACK_IMPORTED_MODULE_1__[/* injectIntl */ "g"])(ErrorDialog));


/***/ }),

/***/ "vS7r":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("path", {
  d: "M32 22h2v2h-2zm0-4h2v2h-2zm0-4h2v2h-2zm0-4h2v2h-2zm0-4h2v2h-2zm0-4h2v2h-2zm-4 0h2v2h-2zm-4 0h2v2h-2zm-4 0h2v2h-2zm-4 0h2v2h-2zm-4 0h2v2h-2zm0 4h2v2h-2zm0 4h2v2h-2zm0 4h2v2h-2zm0 4h2v2h-2zm0 4h2v2h-2zm4 0h2v2h-2zm4 0h2v2h-2zm4 0h2v2h-2zm4 0h2v2h-2z"
}), React.createElement("path", {
  d: "M10 12H3a1 1 0 0 0-1 1v20a1 1 0 0 0 1 1h20a1 1 0 0 0 1-1v-7H10z"
}));

/***/ }),

/***/ "vSQF":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("path", {
  d: "M10.853 4H8a2 2 0 0 0-2 2v36a2 2 0 0 0 2 2h2.853a4 4 0 0 0 2.12-.608l30.09-17.667a2 2 0 0 0 0-3.449L12.973 4.608A4 4 0 0 0 10.853 4z"
}));

/***/ }),

/***/ "vStQ":
/***/ (function(module, exports) {

/* eslint-disable max-len */
module.exports = {
  'confirmationDialog.dontShowAgain': "[/b] _cdo_Don't show again",
  'confirmationDialog.confirm.default': '[/a] _cdo_Continue',
  'confirmationDialog.cancel.default': '[/Z] _cdo_Cancel',
  'confirmationDialog.learnMore': '[/t] _cdo_Learn more',
  'toast.warning.place': "[Fu] _cdo_Can't place linked cloud documents yet. Continue to embed instead.",
  'toast.warning.placeLinkOrEmbed': '[+I] _cdo_Assets you place are now linked to the original by default. That means if you edit it in one place, those changes are reflected everywhere.',
  'toast.warning.saveAs.invalidFormat': "[+M] _cdo_Sorry, you can't save {genericFormat} files here. Your file will be saved as {adobeFormat}.",
  'pickerView.recent': '[Qy] ãšsęt_Recent',
  'pickerView.cloud_docs': '[E3] _cdo_Your files',
  'pickerView.shared_with_you': '[FO] _cdo_Shared with you',
  'pickerView.projects': '[FL] _cdo_Projects',
  'pickerView.files': '[FK] _cdo_Files',
  'pickerView.computer': '[FC] _cdo_Your Computer...',
  'pickerView.saveAsInput': '[FN] _cdo_Save As',
  'pickerView.exportInput': '[+w] _cdo_Export As',
  'pickerView.sketch_library': '[FP] _cdo_Convert Sketch Library...',
  'pickerView.error.saveAsOrExport.default': '[+r] _cdo_File name is invalid.',
  'pickerView.error.saveAsOrExport.invalidName': '[+v] _cdo_Sorry, this name contains invalid character(s).',
  'pickerView.error.saveAsOrExport.invalidEnd': '[+u] _cdo_Name cannot end with "." or empty space.',
  'pickerView.error.saveAsOrExport.invalidChar': '[+t] _cdo_Name cannot contain the following characters: {characters}',
  'pickerView.error.saveAsOrExport.charRestriction': "[+q] _cdo_Names can't be longer than 200 characters.",
  'pickerView.error.saveAsOrExport.duplicateName': '[+s] _cdo_You already have a cloud document here with this name.',
  'pickerView.error.addALibrary.permission': "[FD] _cdo_You don't have permission to add this library",
  'pickerViewFooter.button.add': '[FR] _cdo_Add',
  'pickerViewFooter.button.cancel': 'Cancel',
  'pickerViewFooter.button.copy': '[Fx] _cdo_Copy here',
  'pickerViewFooter.button.move': '[/W] _cdo_Move here',
  'pickerViewFooter.button.moveToProject': '[Fy] _cdo_Move here',
  'pickerViewFooter.button.copyToProject': '[FU] _cdo_Copy here',
  'pickerViewFooter.button.choose': '[FT] _cdo_Choose',
  'pickerViewFooter.button.save': '[XS] ãšsęt_Save',
  'pickerViewFooter.button.switchToOSPicker': '[FY] _cdo_On your computer',
  'pickerViewFooter.button.save.offline': '[FW] _cdo_Internet connection required',
  'pickerViewFooter.button.saveAsCopy': '[XS] ãšsęt_Save',
  'pickerViewFooter.button.export': '[+x] _cdo_Export',
  'pickerViewFooter.button.placeLinkOrEmbed': '[+C] _cdo_Place',
  'pickerViewFooter.button.import': '[+E] _cdo_Import',
  'pickerViewFooter.checkbox.placeLink': '[Gi] _cdo_Linked',
  'pickerViewFooter.tooltip.placeLink': '[+H] _cdo_You can only place this item as a linked asset.',
  'pickerViewFooter.tooltip.placeEmbed': '[+G] _cdo_You can only place this item as embedded.',
  'pickerViewFooter.saveAs.format.label': '[+F] _cdo_Format',
  'pickerViewFooter.button.selectProject': '[+L] _cdo_Save',
  'onboardingCdp.title': '[+n] _cdo_You can do much more if you save as a cloud document',
  'onboardingCdp.tooltip': "[+o] _cdo_If you save to your computer, you won't be able to use cloud features.",
  'onboardingCdp.tooltip.link': '[+p] _cdo_Learn more',
  'onboardingCdp.table.header.saveToCloud': '[+l] _cdo_Creative Cloud',
  'onboardingCdp.table.header.saveToLocal': '[+m] _cdo_On your computer',
  'onboardingCdp.button.saveToCloud': '[E4] _cdo_Save to Creative Cloud',
  'onboardingCdp.feature.offline': '[+i] _cdo_Offline access',
  'onboardingCdp.feature.syncing': '[+j] _cdo_Cloud syncing to all your devices',
  'onboardingCdp.feature.autosave': '[+z] _cdo_Autosaving every change',
  'onboardingCdp.feature.versionHistory': '[+k] _cdo_Version history',
  'onboardingCdp.feature.inviteToEdit': '[+h] _cdo_Invite to edit',
  'onboardingCdp.button.saveToLocal': '[E5] _cdo_Save on your computer',
  'onboardingCdp.checkbox.doNotShowAgain': "[E6] _cdo_Don't show again",
  'uap.title.place': '[+T] _cdo_Place from Creative Cloud',
  'uap.title.import': '[+P] _cdo_Import from Creative Cloud',
  'uap.title.placeLinkOrEmbed': '[+U] _cdo_Place from Creative Cloud',
  'uap.title.linkAssets': '[+Q] _cdo_Link from Creative Cloud',
  'uap.title.open': '[+S] _cdo_Open from Creative Cloud',
  'uap.title.relink': '[+W] _cdo_Link from Creative Cloud',
  'uap.title.saveAs': '[+X] _cdo_Save to Creative Cloud',
  'uap.title.saveAsCopy': '[+Y] _cdo_Save to Creative Cloud',
  'uap.title.saveToFolder': '[+Z] _cdo_Save to Creative Cloud',
  'uap.title.export': '[+y] _cdo_Export to Creative Cloud',
  'uap.title.copy': '[+N] _cdo_Copy to Creative Cloud',
  'uap.title.move': '[/X] _cdo_Move in Creative Cloud',
  'uap.title.moveToProject': '[+R] _cdo_Move in Creative Cloud',
  'uap.title.copyToProject': '[+O] _cdo_Copy to Creative Cloud',
  'uap.title.reference': '[+V] _cdo_Add to Creative Cloud',
  'uap.title.selectProject': '[+a] _cdo_Save to Creative Cloud',
  'move.toSpace.confirm.title': '[/v] _cdo_Version history will be deleted',
  'move.toSpace.confirm.message': "[/u] _cdo_Moving this file will cause version history to be deleted.  If you'd like to retain your version history, make a copy instead."
};

/***/ }),

/***/ "vVTB":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__("q1tI");
var react_default = /*#__PURE__*/__webpack_require__.n(react);

// EXTERNAL MODULE: ./node_modules/mobx/lib/mobx.module.js
var mobx_module = __webpack_require__("2vnA");

// EXTERNAL MODULE: ./node_modules/mobx-react/index.module.js
var index_module = __webpack_require__("okNM");

// EXTERNAL MODULE: ./node_modules/classnames/index.js
var classnames = __webpack_require__("TSYQ");
var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);

// EXTERNAL MODULE: ./node_modules/uuid/index.js
var uuid = __webpack_require__("EcEN");
var uuid_default = /*#__PURE__*/__webpack_require__.n(uuid);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/utils/utils.ts
var utils = __webpack_require__("FdDf");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/images/canvas/S_Illu_EmptyCanvasFile_Color01.png
var S_Illu_EmptyCanvasFile_Color01 = __webpack_require__("XFcg");
var S_Illu_EmptyCanvasFile_Color01_default = /*#__PURE__*/__webpack_require__.n(S_Illu_EmptyCanvasFile_Color01);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/images/canvas/S_Illu_EmptyCanvasFile_Color02.png
var S_Illu_EmptyCanvasFile_Color02 = __webpack_require__("vyuS");
var S_Illu_EmptyCanvasFile_Color02_default = /*#__PURE__*/__webpack_require__.n(S_Illu_EmptyCanvasFile_Color02);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/images/canvas/S_Illu_EmptyCanvasFile_Color03.png
var S_Illu_EmptyCanvasFile_Color03 = __webpack_require__("PayY");
var S_Illu_EmptyCanvasFile_Color03_default = /*#__PURE__*/__webpack_require__.n(S_Illu_EmptyCanvasFile_Color03);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/images/canvas/S_Illu_EmptyCanvasFile_Color04.png
var S_Illu_EmptyCanvasFile_Color04 = __webpack_require__("Fpef");
var S_Illu_EmptyCanvasFile_Color04_default = /*#__PURE__*/__webpack_require__.n(S_Illu_EmptyCanvasFile_Color04);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/images/canvas/S_Illu_EmptyCanvasFile_Color05.png
var S_Illu_EmptyCanvasFile_Color05 = __webpack_require__("cU/i");
var S_Illu_EmptyCanvasFile_Color05_default = /*#__PURE__*/__webpack_require__.n(S_Illu_EmptyCanvasFile_Color05);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/images/canvas/S_Illu_EmptyCanvasFile_Color06.png
var S_Illu_EmptyCanvasFile_Color06 = __webpack_require__("4vm+");
var S_Illu_EmptyCanvasFile_Color06_default = /*#__PURE__*/__webpack_require__.n(S_Illu_EmptyCanvasFile_Color06);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/images/canvas/S_Illu_EmptyCanvasFile_Color07.png
var S_Illu_EmptyCanvasFile_Color07 = __webpack_require__("6Aa0");
var S_Illu_EmptyCanvasFile_Color07_default = /*#__PURE__*/__webpack_require__.n(S_Illu_EmptyCanvasFile_Color07);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/images/canvas/S_Illu_EmptyCanvasFile_Color08.png
var S_Illu_EmptyCanvasFile_Color08 = __webpack_require__("kxXC");
var S_Illu_EmptyCanvasFile_Color08_default = /*#__PURE__*/__webpack_require__.n(S_Illu_EmptyCanvasFile_Color08);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/images/canvas/S_Illu_EmptyCanvasFile_Color09.png
var S_Illu_EmptyCanvasFile_Color09 = __webpack_require__("DaKv");
var S_Illu_EmptyCanvasFile_Color09_default = /*#__PURE__*/__webpack_require__.n(S_Illu_EmptyCanvasFile_Color09);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/images/canvas/S_Illu_EmptyCanvasFile_Color10.png
var S_Illu_EmptyCanvasFile_Color10 = __webpack_require__("whPl");
var S_Illu_EmptyCanvasFile_Color10_default = /*#__PURE__*/__webpack_require__.n(S_Illu_EmptyCanvasFile_Color10);

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/svgs/Canvas.tsx













const styles = [
    {
        st0: '#318b40',
        st1: '#85d044',
    },
    {
        st0: '#b79900',
        st1: '#dfbf00',
    },
    {
        st0: '#dfbf00',
        st1: '#6aa834',
    },
    {
        st0: '#dfbf00',
        st1: '#1b959a',
    },
    {
        st0: '#d83790',
        st1: '#dfbf00',
    },
    {
        st0: '#9256d9',
        st1: '#6f38b1',
    },
    {
        st0: '#4646c6',
        st1: '#6767ec',
    },
    {
        st0: '#44b556',
        st1: '#6767ec',
    },
    {
        st0: '#1b959a',
        st1: '#6f38b1',
    },
    {
        st0: '#4646c6',
        st1: '#d83790',
    },
];
const fallbackImages = [
    S_Illu_EmptyCanvasFile_Color01_default.a,
    S_Illu_EmptyCanvasFile_Color02_default.a,
    S_Illu_EmptyCanvasFile_Color03_default.a,
    S_Illu_EmptyCanvasFile_Color04_default.a,
    S_Illu_EmptyCanvasFile_Color05_default.a,
    S_Illu_EmptyCanvasFile_Color06_default.a,
    S_Illu_EmptyCanvasFile_Color07_default.a,
    S_Illu_EmptyCanvasFile_Color08_default.a,
    S_Illu_EmptyCanvasFile_Color09_default.a,
    S_Illu_EmptyCanvasFile_Color10_default.a,
];
/* harmony default export */ var Canvas = (({ name }) => {
    // Temporary workaround until UXP supports linear gradient...
    if (utils["a" /* default */].usingUXP()) {
        return (react_default.a.createElement("img", { alt: "", style: {
                width: '100%',
                height: '100%',
                objectFit: 'contain',
            }, src: fallbackImages[name.length % fallbackImages.length] }));
    }
    const id = uuid_default()();
    const style = styles[name.length % styles.length];
    return (react_default.a.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 233 131", className: "fill" },
        react_default.a.createElement("defs", null,
            react_default.a.createElement("linearGradient", { id: id, y1: "65.63", x2: "233", y2: "65.63", gradientUnits: "userSpaceOnUse" },
                react_default.a.createElement("stop", { offset: "0%", stopColor: style.st0 }),
                react_default.a.createElement("stop", { offset: "100%", stopColor: style.st1 }))),
        react_default.a.createElement("rect", { fill: style.st1, width: "233", height: "131" }),
        react_default.a.createElement("g", null,
            react_default.a.createElement("path", { fill: `url(#${id})`, d: "M233,.25V130.82a7.7,7.7,0,0,1-1.67.18H0V104.56a150.75,150.75,0,0,1,15.23,4.55c10.09,3.49,12.26,4,18.55,1.64s7.51-4.28,12.69-13.64c7-12.74,17.71-31.93,46.41-43s49.43-3.91,63.23.8c10.09,3.49,12.21,4.07,18.55,1.63s7.45-4.28,12.69-13.63C194.32,30.3,204.87,11.34,233,.25Z" }))));
});

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/svgs/File.tsx

const File_styles = {
    light: {
        st0: '#ffffff',
        st1: '#b3b3b3',
    },
    lightest: {
        st0: '#ffffff',
        st1: '#b3b3b3',
    },
    dark: {
        st0: '#252525',
        st1: '#6e6e6e',
    },
    darkest: {
        st0: '#252525',
        st1: '#6e6e6e',
    },
};
/* harmony default export */ var File = (({ theme = 'light' }) => (react_default.a.createElement("svg", { version: "1.1", viewBox: "0 0 64 64", xmlns: "http://www.w3.org/2000/svg" },
    react_default.a.createElement("path", { "data-name": "White Bg", fill: File_styles[theme].st0, d: "M12,63a5.00588,5.00588,0,0,1-5-5V6a5.00588,5.00588,0,0,1,5-5H42.75977A3.97642,3.97642,0,0,1,45.584,2.1665L55.82324,12.37061A3.96923,3.96923,0,0,1,57,15.2041V58a5.00588,5.00588,0,0,1-5,5Z" }),
    react_default.a.createElement("path", { "data-name": "Gray Outline", fill: File_styles[theme].st1, d: "M56.53,11.66,46.29,1.46A4.97028,4.97028,0,0,0,42.76,0H12A6.00475,6.00475,0,0,0,6,6V58a6.00475,6.00475,0,0,0,6,6H52a6.00475,6.00475,0,0,0,6-6V15.2A5.0456,5.0456,0,0,0,56.53,11.66ZM45,2.99l10.03,10H46a1.003,1.003,0,0,1-1-1ZM56,58a3.99891,3.99891,0,0,1-4,4H12a3.99891,3.99891,0,0,1-4-4V6a3.99887,3.99887,0,0,1,4-4H42.76a1.9248,1.9248,0,0,1,.24.01v9.98a3.00238,3.00238,0,0,0,3,3h9.99a1.47569,1.47569,0,0,1,.01.21Z" }))));

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/svgs/MOV.tsx

const MOV_styles = {
    light: {
        st0: '#f5f5f5',
        st1: '#b3b3b3',
        st2: '#2c2c2c',
        st3: '#4b4b4b',
    },
    lightest: {
        st0: '#f5f5f5',
        st1: '#b3b3b3',
        st2: '#2c2c2c',
        st3: '#4b4b4b',
    },
    dark: {
        st0: '#252525',
        st1: '#6e6e6e',
        st2: '#ffffff',
        st3: '#e3e3e3',
    },
    darkest: {
        st0: '#252525',
        st1: '#6e6e6e',
        st2: '#ffffff',
        st3: '#e3e3e3',
    },
};
/* harmony default export */ var MOV = (({ theme = 'light' }) => (react_default.a.createElement("svg", { version: "1.1", viewBox: "0 0 64 64", xmlns: "http://www.w3.org/2000/svg" },
    react_default.a.createElement("path", { fill: MOV_styles[theme].st0, d: "M14,60.6c-2.8,0-5-2.2-5-4.9V8.5c0-2.7,2.2-4.9,5-4.9h27.5c1.3,0,2.6,0.5,3.5,1.4l8.5,8.3\n            c0.9,0.9,1.5,2.2,1.5,3.5v38.9c0,2.7-2.2,4.9-5,4.9C50,60.6,14,60.6,14,60.6z" }),
    react_default.a.createElement("path", { fill: MOV_styles[theme].st1, d: "M41.5,4c1.1,0,2.1,0.5,2.8,1.2l8.5,8.3c0.7,0.7,1.2,1.6,1.2,2.7v38.9c0,2.2-1.8,3.9-4.1,3.9H14\n            c-2.2,0-4-1.7-4-3.9V7.9c0-2.2,1.8-4,4-4L41.5,4 M41.5,2H14c-3.3,0-6,2.6-6,5.9v47.2c0,3.3,2.7,5.9,6,5.9h36c3.3,0,6-2.5,6-5.8V16.3\n            c0-1.6-0.6-3.1-1.8-4.2l-8.5-8.3C44.6,2.7,43.1,2,41.5,2L41.5,2z" }),
    react_default.a.createElement("path", { fill: MOV_styles[theme].st2, d: "M16.4,44h1.8c0.1,0,0.1,0,0.1,0.1c0.3,1.2,1.3,5.1,1.5,6.5l0,0c0.2-1.2,1.3-5.2,1.7-6.4\n            c0-0.1,0-0.1,0.1-0.1h1.8c0.1,0,0.1,0,0.1,0.1l0.3,8.5c0,0.1,0,0.1-0.1,0.1h-1.3c-0.1,0-0.1,0-0.1-0.1c-0.1-2.8-0.1-6.7-0.1-7.4l0,0\n            c-0.2,1.1-1.4,5.5-1.9,7.4c0,0.1-0.1,0.1-0.1,0.1h-1.1c-0.1,0-0.1,0-0.1-0.1c-0.5-1.9-1.4-5.9-1.7-7.4l0,0c0,1-0.1,4.6-0.2,7.4\n            c0,0.1,0,0.1-0.1,0.1h-1.1c-0.1,0-0.1,0-0.1-0.1L16.4,44C16.3,44,16.3,44,16.4,44z M32,48.3c0,2.9-1.3,4.5-3.4,4.5s-3.4-1.7-3.4-4.5\n            c0-2.7,1.4-4.4,3.4-4.4C30.7,43.9,32,45.7,32,48.3z M28.7,51.5c1.2,0,1.9-1.2,1.9-3.2s-0.7-3.1-1.9-3.1c-1.1,0-1.9,1-1.9,3.1\n            C26.7,50.2,27.4,51.5,28.7,51.5z M36,51.2c0.2-1,0.8-3.3,1.8-7c0-0.1,0.1-0.1,0.1-0.1h1.2c0.1,0,0.1,0,0.1,0.1l-2.5,8.5\n            c0,0.1-0.1,0.1-0.1,0.1h-1.4c-0.1,0-0.1,0-0.1-0.1l-2.5-8.5c0-0.1,0-0.1,0.1-0.1H34c0.1,0,0.1,0,0.1,0.1\n            C35.1,47.7,35.8,50.2,36,51.2L36,51.2z M41.9,52.6C41.9,52.7,41.9,52.7,41.9,52.6l-1.3,0.1c-0.1,0-0.1,0-0.1-0.1v-8.5\n            c0-0.1,0-0.1,0.1-0.1h1.2c0.1,0,0.1,0,0.1,0.1V52.6z M48.6,52.6C48.6,52.7,48.6,52.7,48.6,52.6L44,52.7c-0.1,0-0.1,0-0.1-0.1v-8.5\n            c0-0.1,0-0.1,0.1-0.1h4.3c0.1,0,0.1,0,0.1,0.1l0.1,1.1c0,0.1,0,0.1-0.1,0.1h-3.1v2.3h2.8c0.1,0,0.1,0,0.1,0.1v1.1\n            c0,0.1,0,0.1-0.1,0.1h-2.8v2.5h3.3c0.1,0,0.1,0,0.1,0.1L48.6,52.6z" }),
    react_default.a.createElement("path", { fill: MOV_styles[theme].st3, d: "M32,14.1c-6.6,0-12,5.4-12,12s5.4,12,12,12s12-5.4,12-12S38.6,14.1,32,14.1z M37.4,26.6L29.5,31\n            c-0.5,0.3-1-0.1-1-0.6v-8.8c0-0.5,0.6-0.9,1-0.6l7.9,4.4C37.9,25.7,37.9,26.4,37.4,26.6z" }))));

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/svgs/XML.tsx

const XML_styles = {
    light: {
        st0: '#f5f5f5',
        st1: '#b3b3b3',
        st2: '#4b4b4b',
        st3: '#2c2c2c',
    },
    lightest: {
        st0: '#f5f5f5',
        st1: '#b3b3b3',
        st2: '#4b4b4b',
        st3: '#2c2c2c',
    },
    dark: {
        st0: '#252525',
        st1: '#6e6e6e',
        st2: '#e3e3e3',
        st3: '#ffffff',
    },
    darkest: {
        st0: '#252525',
        st1: '#6e6e6e',
        st2: '#e3e3e3',
        st3: '#ffffff',
    },
};
/* harmony default export */ var XML = (({ theme = 'light' }) => (react_default.a.createElement("svg", { version: "1.1", viewBox: "0 0 64 64", xmlns: "http://www.w3.org/2000/svg" },
    react_default.a.createElement("path", { fill: XML_styles[theme].st0, d: "M14,60.6c-2.8,0-5-2.2-5-4.9V8.5c0-2.7,2.2-4.9,5-4.9h27.5c1.3,0,2.6,0.5,3.5,1.4l8.5,8.3\n        c0.9,0.9,1.5,2.2,1.5,3.5v38.9c0,2.7-2.2,4.9-5,4.9C50,60.6,14,60.6,14,60.6z" }),
    react_default.a.createElement("path", { fill: XML_styles[theme].st1, d: "M41.5,4c1.1,0,2.1,0.5,2.8,1.2l8.5,8.3c0.7,0.7,1.2,1.6,1.2,2.7v38.9c0,2.2-1.8,3.9-4.1,3.9H14\n            c-2.2,0-4-1.7-4-3.9V7.9c0-2.2,1.8-4,4-4L41.5,4 M41.5,2H14c-3.3,0-6,2.6-6,5.9v47.2c0,3.3,2.7,5.9,6,5.9h36c3.3,0,6-2.5,6-5.8V16.3\n            c0-1.6-0.6-3.1-1.8-4.2l-8.5-8.3C44.6,2.7,43.1,2,41.5,2L41.5,2z" }),
    react_default.a.createElement("path", { fill: XML_styles[theme].st2, d: "M47.6,26.9l-6.9,6.8c-0.5,0.5-1.4,0.5-1.9,0l0,0l-0.2-0.2c-0.5-0.5-0.7-0.9-0.2-1.4l6.1-6.1\n            l-5.9-5.8c-0.5-0.5-0.5-1.3,0-1.9l0.2-0.2c0.5-0.5,1.4-0.5,1.9,0l0,0l6.9,6.9C48.1,25.6,48.1,26.4,47.6,26.9z M16.4,25.1l6.7-6.9\n            c0.5-0.5,1.4-0.6,1.9-0.1l0,0l0.2,0.2c0.5,0.5,0.5,1.4,0,1.9L19.4,26l6,6.1c0.5,0.5,0.6,1,0.1,1.6l-0.2,0.2c-0.5,0.5-1.3,0.5-1.8,0\n            l0,0L16.4,27C15.9,26.4,15.9,25.6,16.4,25.1z M30.5,35.8c0,0.1-0.1,0.2-0.2,0.2h-2.5c-0.2,0-0.2-0.1-0.2-0.2l6-21.7\n            c0-0.1,0.1-0.1,0.2-0.1h2.6c0.1,0,0.2,0,0.1,0.2L30.5,35.8z" }),
    react_default.a.createElement("path", { fill: XML_styles[theme].st3, d: "M25.1,48.2l2.3,4.3c0,0.1,0,0.1-0.1,0.1h-1.4c-0.1,0-0.1,0-0.2-0.1c-0.5-1.1-1-2.1-1.6-3.3l0,0\n            c-0.5,1.1-1,2.2-1.5,3.3c0,0.1-0.1,0.1-0.1,0.1h-1.3c-0.1,0-0.1-0.1-0.1-0.1l2.2-4.2l-2.1-4.2c-0.1-0.1,0-0.1,0.1-0.1h1.4\n            c0.1,0,0.1,0,0.1,0.1c0.5,1.1,1,2.1,1.5,3.2l0,0c0.5-1.1,1-2.1,1.5-3.2c0-0.1,0.1-0.1,0.1-0.1h1.3c0.1,0,0.1,0.1,0.1,0.1L25.1,48.2z\n            M28.8,44h1.8c0.1,0,0.1,0,0.1,0.1c0.3,1.2,1.3,5.1,1.5,6.5l0,0c0.2-1.2,1.3-5.2,1.7-6.4c0-0.1,0-0.1,0.1-0.1h1.8\n            c0.1,0,0.1,0,0.1,0.1l0.3,8.5c0,0.1,0,0.1-0.1,0.1h-1.3c-0.1,0-0.1,0-0.1-0.1c-0.1-2.8-0.1-6.7-0.1-7.4l0,0\n            c-0.2,1.1-1.4,5.5-1.9,7.4c0,0.1-0.1,0.1-0.1,0.1h-1.1c-0.1,0-0.1,0-0.1-0.1c-0.5-1.9-1.4-5.9-1.7-7.4l0,0c0,1-0.1,4.6-0.2,7.4\n            c0,0.1,0,0.1-0.1,0.1h-1.1c-0.1,0-0.1,0-0.1-0.1L28.8,44C28.7,44,28.7,44,28.8,44z M38.1,52.7C38,52.7,38,52.7,38.1,52.7L38,44.1\n            c0-0.1,0-0.1,0.1-0.1h1.2c0.1,0,0.1,0,0.1,0.1v7.3h3.2c0.1,0,0.1,0,0.1,0.1l-0.2,1.1c0,0.1-0.1,0.1-0.1,0.1\n            C42.5,52.7,38.1,52.7,38.1,52.7z" }))));

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/utils/constants.ts
var constants = __webpack_require__("bXP0");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/stores/SharedStore.ts + 6 modules
var SharedStore = __webpack_require__("jmEq");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/packages/CDOView/ImageView.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
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;
};
var __metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};










const MOV_MIMETYPES = ['video/quicktime', 'video/x-quicktime'];
const XML_MIMETYPES = ['application/xhtml+xml', 'application/xml', 'text/xml'];
let ImageView_ImageView = class ImageView extends react["Component"] {
    constructor(props) {
        super(props);
        this.isImageLoaded = false;
        this.onImageLoad = () => {
            this.isImageLoaded = true;
        };
    }
    componentDidMount() {
        this.disposeReaction = Object(mobx_module["B" /* reaction */])(() => this.props.element.rendition, () => this.updateImageSrc(), {
            fireImmediately: true,
        });
    }
    componentWillUnmount() {
        var _a;
        (_a = this.disposeReaction) === null || _a === void 0 ? void 0 : _a.call(this);
    }
    /**
     * Prevent image UXP flicker issue caused by setting src to the same URL it had before, and bypass React's slow
     * copy of string data.
     */
    updateImageSrc() {
        const { element: { rendition }, } = this.props;
        if (rendition !== this.currentBlobSrc) {
            // Make sure the `image` can also hide the previous rendition,
            // in case we don't have a new rendition to display.
            // This is necessary when items change order and the new item
            // that displays using this ImageView doesn't have a rendition yet.
            this.isImageLoaded = !!rendition;
            this.currentBlobSrc = rendition;
        }
    }
    renderDefaultRendition() {
        const { element: { name, type }, } = this.props;
        if (MOV_MIMETYPES.includes(type)) {
            return react["createElement"](MOV, { theme: SharedStore["d" /* sharedStore */].theme });
        }
        else if (XML_MIMETYPES.includes(type)) {
            return react["createElement"](XML, { theme: SharedStore["d" /* sharedStore */].theme });
        }
        else if (type === constants["b" /* CANVAS_MIMETYPE */]) {
            return react["createElement"](Canvas, { name: name });
        }
        return react["createElement"](File, { theme: SharedStore["d" /* sharedStore */].theme });
    }
    /**
     * Component renderer.
     * @return {ReactElement} markup
     */
    render() {
        const { element, className, ...passThroughProps } = this.props;
        return element.isInvalidRendition || element.rendition === '' ? (this.renderDefaultRendition()) : (react["createElement"]("img", Object.assign({ alt: "", src: this.currentBlobSrc, onLoad: this.onImageLoad, className: classnames_default()(this.isImageLoaded && 'image-loaded', className) }, passThroughProps)));
    }
};
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", Object)
], ImageView_ImageView.prototype, "isImageLoaded", void 0);
__decorate([
    mobx_module["z" /* observable */],
    __metadata("design:type", String)
], ImageView_ImageView.prototype, "currentBlobSrc", void 0);
ImageView_ImageView = __decorate([
    index_module["e" /* observer */],
    __metadata("design:paramtypes", [Object])
], ImageView_ImageView);
/* harmony default export */ var CDOView_ImageView = __webpack_exports__["a"] = (ImageView_ImageView);


/***/ }),

/***/ "vZ2G":
/***/ (function(module, exports) {

function incr32(iv) {
  var len = iv.length;
  var item;

  while (len--) {
    item = iv.readUInt8(len);

    if (item === 255) {
      iv.writeUInt8(0, len);
    } else {
      item++;
      iv.writeUInt8(item, len);
      break;
    }
  }
}

module.exports = incr32;

/***/ }),

/***/ "viRO":
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/** @license React v16.14.0
 * react.production.min.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.
 */


var l = __webpack_require__("MgzW"),
    n = "function" === typeof Symbol && Symbol.for,
    p = n ? Symbol.for("react.element") : 60103,
    q = n ? Symbol.for("react.portal") : 60106,
    r = n ? Symbol.for("react.fragment") : 60107,
    t = n ? Symbol.for("react.strict_mode") : 60108,
    u = n ? Symbol.for("react.profiler") : 60114,
    v = n ? Symbol.for("react.provider") : 60109,
    w = n ? Symbol.for("react.context") : 60110,
    x = n ? Symbol.for("react.forward_ref") : 60112,
    y = n ? Symbol.for("react.suspense") : 60113,
    z = n ? Symbol.for("react.memo") : 60115,
    A = n ? Symbol.for("react.lazy") : 60116,
    B = "function" === typeof Symbol && Symbol.iterator;

function C(a) {
  for (var b = "https://reactjs.org/docs/error-decoder.html?invariant=" + a, c = 1; c < arguments.length; c++) b += "&args[]=" + encodeURIComponent(arguments[c]);

  return "Minified React error #" + a + "; visit " + b + " for the full message or use the non-minified dev environment for full errors and additional helpful warnings.";
}

var D = {
  isMounted: function () {
    return !1;
  },
  enqueueForceUpdate: function () {},
  enqueueReplaceState: function () {},
  enqueueSetState: function () {}
},
    E = {};

function F(a, b, c) {
  this.props = a;
  this.context = b;
  this.refs = E;
  this.updater = c || D;
}

F.prototype.isReactComponent = {};

F.prototype.setState = function (a, b) {
  if ("object" !== typeof a && "function" !== typeof a && null != a) throw Error(C(85));
  this.updater.enqueueSetState(this, a, b, "setState");
};

F.prototype.forceUpdate = function (a) {
  this.updater.enqueueForceUpdate(this, a, "forceUpdate");
};

function G() {}

G.prototype = F.prototype;

function H(a, b, c) {
  this.props = a;
  this.context = b;
  this.refs = E;
  this.updater = c || D;
}

var I = H.prototype = new G();
I.constructor = H;
l(I, F.prototype);
I.isPureReactComponent = !0;
var J = {
  current: null
},
    K = Object.prototype.hasOwnProperty,
    L = {
  key: !0,
  ref: !0,
  __self: !0,
  __source: !0
};

function M(a, b, c) {
  var e,
      d = {},
      g = null,
      k = null;
  if (null != b) for (e in void 0 !== b.ref && (k = b.ref), void 0 !== b.key && (g = "" + b.key), b) K.call(b, e) && !L.hasOwnProperty(e) && (d[e] = b[e]);
  var f = arguments.length - 2;
  if (1 === f) d.children = c;else if (1 < f) {
    for (var h = Array(f), m = 0; m < f; m++) h[m] = arguments[m + 2];

    d.children = h;
  }
  if (a && a.defaultProps) for (e in f = a.defaultProps, f) void 0 === d[e] && (d[e] = f[e]);
  return {
    $$typeof: p,
    type: a,
    key: g,
    ref: k,
    props: d,
    _owner: J.current
  };
}

function N(a, b) {
  return {
    $$typeof: p,
    type: a.type,
    key: b,
    ref: a.ref,
    props: a.props,
    _owner: a._owner
  };
}

function O(a) {
  return "object" === typeof a && null !== a && a.$$typeof === p;
}

function escape(a) {
  var b = {
    "=": "=0",
    ":": "=2"
  };
  return "$" + ("" + a).replace(/[=:]/g, function (a) {
    return b[a];
  });
}

var P = /\/+/g,
    Q = [];

function R(a, b, c, e) {
  if (Q.length) {
    var d = Q.pop();
    d.result = a;
    d.keyPrefix = b;
    d.func = c;
    d.context = e;
    d.count = 0;
    return d;
  }

  return {
    result: a,
    keyPrefix: b,
    func: c,
    context: e,
    count: 0
  };
}

function S(a) {
  a.result = null;
  a.keyPrefix = null;
  a.func = null;
  a.context = null;
  a.count = 0;
  10 > Q.length && Q.push(a);
}

function T(a, b, c, e) {
  var d = typeof a;
  if ("undefined" === d || "boolean" === d) a = null;
  var g = !1;
  if (null === a) g = !0;else switch (d) {
    case "string":
    case "number":
      g = !0;
      break;

    case "object":
      switch (a.$$typeof) {
        case p:
        case q:
          g = !0;
      }

  }
  if (g) return c(e, a, "" === b ? "." + U(a, 0) : b), 1;
  g = 0;
  b = "" === b ? "." : b + ":";
  if (Array.isArray(a)) for (var k = 0; k < a.length; k++) {
    d = a[k];
    var f = b + U(d, k);
    g += T(d, f, c, e);
  } else if (null === a || "object" !== typeof a ? f = null : (f = B && a[B] || a["@@iterator"], f = "function" === typeof f ? f : null), "function" === typeof f) for (a = f.call(a), k = 0; !(d = a.next()).done;) d = d.value, f = b + U(d, k++), g += T(d, f, c, e);else if ("object" === d) throw c = "" + a, Error(C(31, "[object Object]" === c ? "object with keys {" + Object.keys(a).join(", ") + "}" : c, ""));
  return g;
}

function V(a, b, c) {
  return null == a ? 0 : T(a, "", b, c);
}

function U(a, b) {
  return "object" === typeof a && null !== a && null != a.key ? escape(a.key) : b.toString(36);
}

function W(a, b) {
  a.func.call(a.context, b, a.count++);
}

function aa(a, b, c) {
  var e = a.result,
      d = a.keyPrefix;
  a = a.func.call(a.context, b, a.count++);
  Array.isArray(a) ? X(a, e, c, function (a) {
    return a;
  }) : null != a && (O(a) && (a = N(a, d + (!a.key || b && b.key === a.key ? "" : ("" + a.key).replace(P, "$&/") + "/") + c)), e.push(a));
}

function X(a, b, c, e, d) {
  var g = "";
  null != c && (g = ("" + c).replace(P, "$&/") + "/");
  b = R(b, g, e, d);
  V(a, aa, b);
  S(b);
}

var Y = {
  current: null
};

function Z() {
  var a = Y.current;
  if (null === a) throw Error(C(321));
  return a;
}

var ba = {
  ReactCurrentDispatcher: Y,
  ReactCurrentBatchConfig: {
    suspense: null
  },
  ReactCurrentOwner: J,
  IsSomeRendererActing: {
    current: !1
  },
  assign: l
};
exports.Children = {
  map: function (a, b, c) {
    if (null == a) return a;
    var e = [];
    X(a, e, null, b, c);
    return e;
  },
  forEach: function (a, b, c) {
    if (null == a) return a;
    b = R(null, null, b, c);
    V(a, W, b);
    S(b);
  },
  count: function (a) {
    return V(a, function () {
      return null;
    }, null);
  },
  toArray: function (a) {
    var b = [];
    X(a, b, null, function (a) {
      return a;
    });
    return b;
  },
  only: function (a) {
    if (!O(a)) throw Error(C(143));
    return a;
  }
};
exports.Component = F;
exports.Fragment = r;
exports.Profiler = u;
exports.PureComponent = H;
exports.StrictMode = t;
exports.Suspense = y;
exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = ba;

exports.cloneElement = function (a, b, c) {
  if (null === a || void 0 === a) throw Error(C(267, a));
  var e = l({}, a.props),
      d = a.key,
      g = a.ref,
      k = a._owner;

  if (null != b) {
    void 0 !== b.ref && (g = b.ref, k = J.current);
    void 0 !== b.key && (d = "" + b.key);
    if (a.type && a.type.defaultProps) var f = a.type.defaultProps;

    for (h in b) K.call(b, h) && !L.hasOwnProperty(h) && (e[h] = void 0 === b[h] && void 0 !== f ? f[h] : b[h]);
  }

  var h = arguments.length - 2;
  if (1 === h) e.children = c;else if (1 < h) {
    f = Array(h);

    for (var m = 0; m < h; m++) f[m] = arguments[m + 2];

    e.children = f;
  }
  return {
    $$typeof: p,
    type: a.type,
    key: d,
    ref: g,
    props: e,
    _owner: k
  };
};

exports.createContext = function (a, b) {
  void 0 === b && (b = null);
  a = {
    $$typeof: w,
    _calculateChangedBits: b,
    _currentValue: a,
    _currentValue2: a,
    _threadCount: 0,
    Provider: null,
    Consumer: null
  };
  a.Provider = {
    $$typeof: v,
    _context: a
  };
  return a.Consumer = a;
};

exports.createElement = M;

exports.createFactory = function (a) {
  var b = M.bind(null, a);
  b.type = a;
  return b;
};

exports.createRef = function () {
  return {
    current: null
  };
};

exports.forwardRef = function (a) {
  return {
    $$typeof: x,
    render: a
  };
};

exports.isValidElement = O;

exports.lazy = function (a) {
  return {
    $$typeof: A,
    _ctor: a,
    _status: -1,
    _result: null
  };
};

exports.memo = function (a, b) {
  return {
    $$typeof: z,
    type: a,
    compare: void 0 === b ? null : b
  };
};

exports.useCallback = function (a, b) {
  return Z().useCallback(a, b);
};

exports.useContext = function (a, b) {
  return Z().useContext(a, b);
};

exports.useDebugValue = function () {};

exports.useEffect = function (a, b) {
  return Z().useEffect(a, b);
};

exports.useImperativeHandle = function (a, b, c) {
  return Z().useImperativeHandle(a, b, c);
};

exports.useLayoutEffect = function (a, b) {
  return Z().useLayoutEffect(a, b);
};

exports.useMemo = function (a, b) {
  return Z().useMemo(a, b);
};

exports.useReducer = function (a, b, c) {
  return Z().useReducer(a, b, c);
};

exports.useRef = function (a) {
  return Z().useRef(a);
};

exports.useState = function (a) {
  return Z().useState(a);
};

exports.version = "16.14.0";

/***/ }),

/***/ "vo16":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.cloneIcon = cloneIcon;

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}
/*************************************************************************
* ADOBE CONFIDENTIAL
* ___________________
*
* Copyright 2019 Adobe
* All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains
* the property of Adobe and its suppliers, if any. The intellectual
* and technical concepts contained herein are proprietary to Adobe
* and its suppliers and are protected by all applicable intellectual
* property laws, including trade secret and copyright laws.
* Dissemination of this information or reproduction of this material
* is strictly forbidden unless prior written permission is obtained
* from Adobe.
**************************************************************************/


function cloneIcon(icon, opts = {}) {
  if (!icon) {
    return null;
  }

  if (typeof icon === 'string') {
    throw new Error('String icon names are deprecated. Pass icons by importing them from react-spectrum/Icon/IconName and render as <IconName />.');
  }

  const {
    className,
    size,
    'aria-label': ariaLabel,
    'aria-hidden': ariaHidden,
    alt = ariaLabel || icon.props['aria-label'] || icon.props.alt
  } = opts;
  return /*#__PURE__*/_react.default.cloneElement(icon, {
    className: (0, _classnames.default)(className, icon.props.className),
    size: icon.props.size || size,
    'aria-label': ariaLabel || alt,
    alt,
    'aria-hidden': ariaHidden || (alt ? icon.props['aria-hidden'] : true)
  });
}

/***/ }),

/***/ "vo4/":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _createClass = function () {
  function defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i];
      descriptor.enumerable = descriptor.enumerable || false;
      descriptor.configurable = true;
      if ("value" in descriptor) descriptor.writable = true;
      Object.defineProperty(target, descriptor.key, descriptor);
    }
  }

  return function (Constructor, protoProps, staticProps) {
    if (protoProps) defineProperties(Constructor.prototype, protoProps);
    if (staticProps) defineProperties(Constructor, staticProps);
    return Constructor;
  };
}();
/**
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe Inc. and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe Inc.
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Inc.
 */


var _Client = __webpack_require__("aETk");

var _Client2 = _interopRequireDefault(_Client);

var _utils = __webpack_require__("VKd2");

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _classCallCheck(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}
/**
 * The Collaboration class handles listing collaboration data (i.e. collaborators and invitations) for a specific resource.
 */


var Collaboration = function () {
  /**
   * Instantiates the Collaboration class.
   *
   * @example <caption>Initialize the Collaboration class</caption>
   * let collaboration = new Collaboration();
   */
  function Collaboration() {
    _classCallCheck(this, Collaboration);
  }
  /**
   * Get collaborations for the user.
   * @param {String} resourceUrl - CC Storage path (path based or ID-based)
   * @returns {Promise}
   */


  _createClass(Collaboration, [{
    key: 'get',
    value: function get(resourceUrl) {
      if (resourceUrl && resourceUrl.trim() !== '') {
        return _Client2.default.instance.fetch({
          type: 'collaboration.get',
          urlPath: '/collaboration/' + (0, _utils.encodeURIComponentEachSubdomain)((0, _utils.getUrlPath)(resourceUrl)) + '?fields=descendants'
        });
      }
    }
    /**
      * Return whether the user has invitation rights for the given resource
      *
      * NOTE: For Phase 1, this should return true if the userId is the owner of the resourceUrl
      *
      * @param {String} resourceUrl - CC Storage path (path based or ID-based)
      * @param {String} userId - AdobeID of user logged in
      * @return {Promise} A promise that resolves to a boolean whether the user has the invitation rights or not.
      */

  }, {
    key: 'canUserInvite',
    value: function canUserInvite(resourceUrl, userId) {
      if (resourceUrl && userId && resourceUrl.trim() !== '' && userId.trim() !== '') {
        var checkIfUserIsOwner = function checkIfUserIsOwner(response) {
          return userId === (response && response.ownerId);
        };

        return this.get(resourceUrl).then(checkIfUserIsOwner);
      }
    }
  }]);

  return Collaboration;
}();
/**
 * Exports the Collaboration class.
 */


exports.default = Collaboration;
module.exports = exports['default'];

/***/ }),

/***/ "vqvB":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("kXME"),
      24: __webpack_require__("JKZI")
    }
  }));
};

WrappedIcon.displayName = 'OpenRecent';
exports.default = WrappedIcon;

/***/ }),

/***/ "vwuL":
/***/ (function(module, exports, __webpack_require__) {

var pIE = __webpack_require__("NV0k");

var createDesc = __webpack_require__("rr1i");

var toIObject = __webpack_require__("NsO/");

var toPrimitive = __webpack_require__("G8Mo");

var has = __webpack_require__("B+OT");

var IE8_DOM_DEFINE = __webpack_require__("eUtF");

var gOPD = Object.getOwnPropertyDescriptor;
exports.f = __webpack_require__("jmDH") ? gOPD : function getOwnPropertyDescriptor(O, P) {
  O = toIObject(O);
  P = toPrimitive(P, true);
  if (IE8_DOM_DEFINE) try {
    return gOPD(O, P);
  } catch (e) {
    /* empty */
  }
  if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);
};

/***/ }),

/***/ "vyuS":
/***/ (function(module, exports, __webpack_require__) {

module.exports = __webpack_require__.p + "assets/projects/S_Illu_EmptyCanvasFile_Color02.png";

/***/ }),

/***/ "w/YD":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return CloudSyncStatusPopdownDriver; });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _contexts_HostProvider__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("8VlV");
/* harmony import */ var _components_CloudSyncStatusPopdown__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("5xHT");
/*************************************************************************
 *   ADOBE CONFIDENTIAL
 *
 *   Copyright 2022 Adobe
 *   All Rights Reserved.
 *
 *   NOTICE:  All information contained herein is, and remains
 *   the property of Adobe and its suppliers, if any. The intellectual
 *   and technical concepts contained herein are proprietary to Adobe
 *   and its suppliers and are protected by all applicable intellectual
 *   property laws, including trade secret and copyright laws.
 *   Dissemination of this information or reproduction of this material
 *   is strictly forbidden unless prior written permission is obtained
 *   from Adobe.
 **************************************************************************/



function CloudSyncStatusPopdownDriver(props) {
    const { tiles, assetId } = props;
    const { cdoHostImsData, cdoHostProductData } = Object(_contexts_HostProvider__WEBPACK_IMPORTED_MODULE_1__[/* useHost */ "b"])();
    // eslint-disable-next-line react/prop-types
    return (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_CloudSyncStatusPopdown__WEBPACK_IMPORTED_MODULE_2__[/* default */ "b"], { imsData: cdoHostImsData, hostProductData: cdoHostProductData, assetId: assetId, tiles: tiles, theme: Object(_contexts_HostProvider__WEBPACK_IMPORTED_MODULE_1__[/* useHostTheme */ "c"])(), type: _components_CloudSyncStatusPopdown__WEBPACK_IMPORTED_MODULE_2__[/* CloudSyncType */ "a"].SINGLE }));
}


/***/ }),

/***/ "w2d+":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var addToUnscopables = __webpack_require__("hDam");

var step = __webpack_require__("UO39");

var Iterators = __webpack_require__("SBuE");

var toIObject = __webpack_require__("NsO/"); // 22.1.3.4 Array.prototype.entries()
// 22.1.3.13 Array.prototype.keys()
// 22.1.3.29 Array.prototype.values()
// 22.1.3.30 Array.prototype[@@iterator]()


module.exports = __webpack_require__("MPFp")(Array, 'Array', function (iterated, kind) {
  this._t = toIObject(iterated); // target

  this._i = 0; // next index

  this._k = kind; // kind
  // 22.1.5.2.1 %ArrayIteratorPrototype%.next()
}, function () {
  var O = this._t;
  var kind = this._k;
  var index = this._i++;

  if (!O || index >= O.length) {
    this._t = undefined;
    return step(1);
  }

  if (kind == 'keys') return step(0, index);
  if (kind == 'values') return step(0, O[index]);
  return step(0, [index, O[index]]);
}, 'values'); // argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)

Iterators.Arguments = Iterators.Array;
addToUnscopables('keys');
addToUnscopables('values');
addToUnscopables('entries');

/***/ }),

/***/ "w6GO":
/***/ (function(module, exports, __webpack_require__) {

// 19.1.2.14 / 15.2.3.14 Object.keys(O)
var $keys = __webpack_require__("5vMV");

var enumBugKeys = __webpack_require__("FpHa");

module.exports = Object.keys || function keys(O) {
  return $keys(O, enumBugKeys);
};

/***/ }),

/***/ "w8CP":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var assert = __webpack_require__("2j6C");

var inherits = __webpack_require__("P7XM");

exports.inherits = inherits;

function isSurrogatePair(msg, i) {
  if ((msg.charCodeAt(i) & 0xFC00) !== 0xD800) {
    return false;
  }

  if (i < 0 || i + 1 >= msg.length) {
    return false;
  }

  return (msg.charCodeAt(i + 1) & 0xFC00) === 0xDC00;
}

function toArray(msg, enc) {
  if (Array.isArray(msg)) return msg.slice();
  if (!msg) return [];
  var res = [];

  if (typeof msg === 'string') {
    if (!enc) {
      // Inspired by stringToUtf8ByteArray() in closure-library by Google
      // https://github.com/google/closure-library/blob/8598d87242af59aac233270742c8984e2b2bdbe0/closure/goog/crypt/crypt.js#L117-L143
      // Apache License 2.0
      // https://github.com/google/closure-library/blob/master/LICENSE
      var p = 0;

      for (var i = 0; i < msg.length; i++) {
        var c = msg.charCodeAt(i);

        if (c < 128) {
          res[p++] = c;
        } else if (c < 2048) {
          res[p++] = c >> 6 | 192;
          res[p++] = c & 63 | 128;
        } else if (isSurrogatePair(msg, i)) {
          c = 0x10000 + ((c & 0x03FF) << 10) + (msg.charCodeAt(++i) & 0x03FF);
          res[p++] = c >> 18 | 240;
          res[p++] = c >> 12 & 63 | 128;
          res[p++] = c >> 6 & 63 | 128;
          res[p++] = c & 63 | 128;
        } else {
          res[p++] = c >> 12 | 224;
          res[p++] = c >> 6 & 63 | 128;
          res[p++] = c & 63 | 128;
        }
      }
    } else if (enc === 'hex') {
      msg = msg.replace(/[^a-z0-9]+/ig, '');
      if (msg.length % 2 !== 0) msg = '0' + msg;

      for (i = 0; i < msg.length; i += 2) res.push(parseInt(msg[i] + msg[i + 1], 16));
    }
  } else {
    for (i = 0; i < msg.length; i++) res[i] = msg[i] | 0;
  }

  return res;
}

exports.toArray = toArray;

function toHex(msg) {
  var res = '';

  for (var i = 0; i < msg.length; i++) res += zero2(msg[i].toString(16));

  return res;
}

exports.toHex = toHex;

function htonl(w) {
  var res = w >>> 24 | w >>> 8 & 0xff00 | w << 8 & 0xff0000 | (w & 0xff) << 24;
  return res >>> 0;
}

exports.htonl = htonl;

function toHex32(msg, endian) {
  var res = '';

  for (var i = 0; i < msg.length; i++) {
    var w = msg[i];
    if (endian === 'little') w = htonl(w);
    res += zero8(w.toString(16));
  }

  return res;
}

exports.toHex32 = toHex32;

function zero2(word) {
  if (word.length === 1) return '0' + word;else return word;
}

exports.zero2 = zero2;

function zero8(word) {
  if (word.length === 7) return '0' + word;else if (word.length === 6) return '00' + word;else if (word.length === 5) return '000' + word;else if (word.length === 4) return '0000' + word;else if (word.length === 3) return '00000' + word;else if (word.length === 2) return '000000' + word;else if (word.length === 1) return '0000000' + word;else return word;
}

exports.zero8 = zero8;

function join32(msg, start, end, endian) {
  var len = end - start;
  assert(len % 4 === 0);
  var res = new Array(len / 4);

  for (var i = 0, k = start; i < res.length; i++, k += 4) {
    var w;
    if (endian === 'big') w = msg[k] << 24 | msg[k + 1] << 16 | msg[k + 2] << 8 | msg[k + 3];else w = msg[k + 3] << 24 | msg[k + 2] << 16 | msg[k + 1] << 8 | msg[k];
    res[i] = w >>> 0;
  }

  return res;
}

exports.join32 = join32;

function split32(msg, endian) {
  var res = new Array(msg.length * 4);

  for (var i = 0, k = 0; i < msg.length; i++, k += 4) {
    var m = msg[i];

    if (endian === 'big') {
      res[k] = m >>> 24;
      res[k + 1] = m >>> 16 & 0xff;
      res[k + 2] = m >>> 8 & 0xff;
      res[k + 3] = m & 0xff;
    } else {
      res[k + 3] = m >>> 24;
      res[k + 2] = m >>> 16 & 0xff;
      res[k + 1] = m >>> 8 & 0xff;
      res[k] = m & 0xff;
    }
  }

  return res;
}

exports.split32 = split32;

function rotr32(w, b) {
  return w >>> b | w << 32 - b;
}

exports.rotr32 = rotr32;

function rotl32(w, b) {
  return w << b | w >>> 32 - b;
}

exports.rotl32 = rotl32;

function sum32(a, b) {
  return a + b >>> 0;
}

exports.sum32 = sum32;

function sum32_3(a, b, c) {
  return a + b + c >>> 0;
}

exports.sum32_3 = sum32_3;

function sum32_4(a, b, c, d) {
  return a + b + c + d >>> 0;
}

exports.sum32_4 = sum32_4;

function sum32_5(a, b, c, d, e) {
  return a + b + c + d + e >>> 0;
}

exports.sum32_5 = sum32_5;

function sum64(buf, pos, ah, al) {
  var bh = buf[pos];
  var bl = buf[pos + 1];
  var lo = al + bl >>> 0;
  var hi = (lo < al ? 1 : 0) + ah + bh;
  buf[pos] = hi >>> 0;
  buf[pos + 1] = lo;
}

exports.sum64 = sum64;

function sum64_hi(ah, al, bh, bl) {
  var lo = al + bl >>> 0;
  var hi = (lo < al ? 1 : 0) + ah + bh;
  return hi >>> 0;
}

exports.sum64_hi = sum64_hi;

function sum64_lo(ah, al, bh, bl) {
  var lo = al + bl;
  return lo >>> 0;
}

exports.sum64_lo = sum64_lo;

function sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) {
  var carry = 0;
  var lo = al;
  lo = lo + bl >>> 0;
  carry += lo < al ? 1 : 0;
  lo = lo + cl >>> 0;
  carry += lo < cl ? 1 : 0;
  lo = lo + dl >>> 0;
  carry += lo < dl ? 1 : 0;
  var hi = ah + bh + ch + dh + carry;
  return hi >>> 0;
}

exports.sum64_4_hi = sum64_4_hi;

function sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) {
  var lo = al + bl + cl + dl;
  return lo >>> 0;
}

exports.sum64_4_lo = sum64_4_lo;

function sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {
  var carry = 0;
  var lo = al;
  lo = lo + bl >>> 0;
  carry += lo < al ? 1 : 0;
  lo = lo + cl >>> 0;
  carry += lo < cl ? 1 : 0;
  lo = lo + dl >>> 0;
  carry += lo < dl ? 1 : 0;
  lo = lo + el >>> 0;
  carry += lo < el ? 1 : 0;
  var hi = ah + bh + ch + dh + eh + carry;
  return hi >>> 0;
}

exports.sum64_5_hi = sum64_5_hi;

function sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {
  var lo = al + bl + cl + dl + el;
  return lo >>> 0;
}

exports.sum64_5_lo = sum64_5_lo;

function rotr64_hi(ah, al, num) {
  var r = al << 32 - num | ah >>> num;
  return r >>> 0;
}

exports.rotr64_hi = rotr64_hi;

function rotr64_lo(ah, al, num) {
  var r = ah << 32 - num | al >>> num;
  return r >>> 0;
}

exports.rotr64_lo = rotr64_lo;

function shr64_hi(ah, al, num) {
  return ah >>> num;
}

exports.shr64_hi = shr64_hi;

function shr64_lo(ah, al, num) {
  var r = ah << 32 - num | al >>> num;
  return r >>> 0;
}

exports.shr64_lo = shr64_lo;

/***/ }),

/***/ "wBhU":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXPORTS
__webpack_require__.d(__webpack_exports__, "a", function() { return /* reexport */ integrations_namespaceObject; });

// UNUSED EXPORTS: addBreadcrumb, captureEvent, captureException, captureMessage, configureScope, setContext, setExtra, setExtras, setTag, setTags, setUser, startTransaction, withScope, Hub, getCurrentHub, getHubFromCarrier, getMainCarrier, makeMain, setHubOnCarrier, closeSession, makeSession, updateSession, SessionFlusher, Scope, addGlobalEventProcessor, getEnvelopeEndpointWithUrlEncodedAuth, getReportDialogEndpoint, BaseClient, initAndBind, createTransport, SDK_VERSION, getIntegrationsToSetup, FunctionToString, InboundFilters

// NAMESPACE OBJECT: ./node_modules/@sentry/core/esm/integrations/index.js
var integrations_namespaceObject = {};
__webpack_require__.r(integrations_namespaceObject);
__webpack_require__.d(integrations_namespaceObject, "FunctionToString", function() { return functiontostring_FunctionToString; });
__webpack_require__.d(integrations_namespaceObject, "InboundFilters", function() { return InboundFilters; });

// EXTERNAL MODULE: ./node_modules/@sentry/utils/esm/object.js
var object = __webpack_require__("6PXS");

// CONCATENATED MODULE: ./node_modules/@sentry/core/esm/integrations/functiontostring.js

let originalFunctionToString;
/** Patch toString calls to return proper name for wrapped functions */

class functiontostring_FunctionToString {
  constructor() {
    functiontostring_FunctionToString.prototype.__init.call(this);
  }
  /**
   * @inheritDoc
   */


  static __initStatic() {
    this.id = 'FunctionToString';
  }
  /**
   * @inheritDoc
   */


  __init() {
    this.name = functiontostring_FunctionToString.id;
  }
  /**
   * @inheritDoc
   */


  setupOnce() {
    // eslint-disable-next-line @typescript-eslint/unbound-method
    originalFunctionToString = Function.prototype.toString; // eslint-disable-next-line @typescript-eslint/no-explicit-any

    Function.prototype.toString = function (...args) {
      const context = Object(object["f" /* getOriginalFunction */])(this) || this;
      return originalFunctionToString.apply(context, args);
    };
  }

}

functiontostring_FunctionToString.__initStatic();


// EXTERNAL MODULE: ./node_modules/@sentry/utils/esm/logger.js
var logger = __webpack_require__("8LbN");

// EXTERNAL MODULE: ./node_modules/@sentry/utils/esm/misc.js
var misc = __webpack_require__("9/Zf");

// EXTERNAL MODULE: ./node_modules/@sentry/utils/esm/string.js
var string = __webpack_require__("+924");

// CONCATENATED MODULE: ./node_modules/@sentry/core/esm/integrations/inboundfilters.js
 // "Script error." is hard coded into browsers for errors that it can't read.
// this is the result of a script being pulled in from an external domain and CORS.

const DEFAULT_IGNORE_ERRORS = [/^Script error\.?$/, /^Javascript error: Script error\.? on line 0$/];
/** Options for the InboundFilters integration */

/** Inbound filters configurable by the user */

class InboundFilters {
  /**
   * @inheritDoc
   */
  static __initStatic() {
    this.id = 'InboundFilters';
  }
  /**
   * @inheritDoc
   */


  __init() {
    this.name = InboundFilters.id;
  }

  constructor(_options = {}) {
    ;
    this._options = _options;

    InboundFilters.prototype.__init.call(this);
  }
  /**
   * @inheritDoc
   */


  setupOnce(addGlobalEventProcessor, getCurrentHub) {
    const eventProcess = event => {
      const hub = getCurrentHub();

      if (hub) {
        const self = hub.getIntegration(InboundFilters);

        if (self) {
          const client = hub.getClient();
          const clientOptions = client ? client.getOptions() : {};

          const options = _mergeOptions(self._options, clientOptions);

          return _shouldDropEvent(event, options) ? null : event;
        }
      }

      return event;
    };

    eventProcess.id = this.name;
    addGlobalEventProcessor(eventProcess);
  }

}

InboundFilters.__initStatic();
/** JSDoc */


function _mergeOptions(internalOptions = {}, clientOptions = {}) {
  return {
    allowUrls: [...(internalOptions.allowUrls || []), ...(clientOptions.allowUrls || [])],
    denyUrls: [...(internalOptions.denyUrls || []), ...(clientOptions.denyUrls || [])],
    ignoreErrors: [...(internalOptions.ignoreErrors || []), ...(clientOptions.ignoreErrors || []), ...DEFAULT_IGNORE_ERRORS],
    ignoreInternal: internalOptions.ignoreInternal !== undefined ? internalOptions.ignoreInternal : true
  };
}
/** JSDoc */


function _shouldDropEvent(event, options) {
  if (options.ignoreInternal && _isSentryError(event)) {
    (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger["c" /* logger */].warn(`Event dropped due to being internal Sentry Error.\nEvent: ${Object(misc["e" /* getEventDescription */])(event)}`);
    return true;
  }

  if (_isIgnoredError(event, options.ignoreErrors)) {
    (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger["c" /* logger */].warn(`Event dropped due to being matched by \`ignoreErrors\` option.\nEvent: ${Object(misc["e" /* getEventDescription */])(event)}`);
    return true;
  }

  if (_isDeniedUrl(event, options.denyUrls)) {
    (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger["c" /* logger */].warn(`Event dropped due to being matched by \`denyUrls\` option.\nEvent: ${Object(misc["e" /* getEventDescription */])(event)}.\nUrl: ${_getEventFilterUrl(event)}`);
    return true;
  }

  if (!_isAllowedUrl(event, options.allowUrls)) {
    (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger["c" /* logger */].warn(`Event dropped due to not being matched by \`allowUrls\` option.\nEvent: ${Object(misc["e" /* getEventDescription */])(event)}.\nUrl: ${_getEventFilterUrl(event)}`);
    return true;
  }

  return false;
}

function _isIgnoredError(event, ignoreErrors) {
  if (!ignoreErrors || !ignoreErrors.length) {
    return false;
  }

  return _getPossibleEventMessages(event).some(message => ignoreErrors.some(pattern => Object(string["a" /* isMatchingPattern */])(message, pattern)));
}

function _isDeniedUrl(event, denyUrls) {
  // TODO: Use Glob instead?
  if (!denyUrls || !denyUrls.length) {
    return false;
  }

  const url = _getEventFilterUrl(event);

  return !url ? false : denyUrls.some(pattern => Object(string["a" /* isMatchingPattern */])(url, pattern));
}

function _isAllowedUrl(event, allowUrls) {
  // TODO: Use Glob instead?
  if (!allowUrls || !allowUrls.length) {
    return true;
  }

  const url = _getEventFilterUrl(event);

  return !url ? true : allowUrls.some(pattern => Object(string["a" /* isMatchingPattern */])(url, pattern));
}

function _getPossibleEventMessages(event) {
  if (event.message) {
    return [event.message];
  }

  if (event.exception) {
    try {
      const {
        type = '',
        value = ''
      } = event.exception.values && event.exception.values[0] || {};
      return [`${value}`, `${type}: ${value}`];
    } catch (oO) {
      (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger["c" /* logger */].error(`Cannot extract message for event ${Object(misc["e" /* getEventDescription */])(event)}`);
      return [];
    }
  }

  return [];
}

function _isSentryError(event) {
  try {
    // @ts-ignore can't be a sentry error if undefined
    // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
    return event.exception.values[0].type === 'SentryError';
  } catch (e) {// ignore
  }

  return false;
}

function _getLastValidUrl(frames = []) {
  for (let i = frames.length - 1; i >= 0; i--) {
    const frame = frames[i];

    if (frame && frame.filename !== '<anonymous>' && frame.filename !== '[native code]') {
      return frame.filename || null;
    }
  }

  return null;
}

function _getEventFilterUrl(event) {
  try {
    let frames;

    try {
      // @ts-ignore we only care about frames if the whole thing here is defined
      frames = event.exception.values[0].stacktrace.frames;
    } catch (e) {// ignore
    }

    return frames ? _getLastValidUrl(frames) : null;
  } catch (oO) {
    (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger["c" /* logger */].error(`Cannot extract url for event ${Object(misc["e" /* getEventDescription */])(event)}`);
    return null;
  }
}


// CONCATENATED MODULE: ./node_modules/@sentry/core/esm/integrations/index.js


// CONCATENATED MODULE: ./node_modules/@sentry/core/esm/index.js















;
;

/***/ }),

/***/ "wCA9":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return memoBuilder; });
/* eslint-disable @typescript-eslint/no-unsafe-member-access */

/* eslint-disable @typescript-eslint/no-explicit-any */

/**
 * Helper to decycle json objects
 */
function memoBuilder() {
  const hasWeakSet = typeof WeakSet === 'function';
  const inner = hasWeakSet ? new WeakSet() : [];

  function memoize(obj) {
    if (hasWeakSet) {
      if (inner.has(obj)) {
        return true;
      }

      inner.add(obj);
      return false;
    } // eslint-disable-next-line @typescript-eslint/prefer-for-of


    for (let i = 0; i < inner.length; i++) {
      const value = inner[i];

      if (value === obj) {
        return true;
      }
    }

    inner.push(obj);
    return false;
  }

  function unmemoize(obj) {
    if (hasWeakSet) {
      inner.delete(obj);
    } else {
      for (let i = 0; i < inner.length; i++) {
        if (inner[i] === obj) {
          inner.splice(i, 1);
          break;
        }
      }
    }
  }

  return [memoize, unmemoize];
}



/***/ }),

/***/ "wJg7":
/***/ (function(module, exports) {

/** Used as references for various `Number` constants. */
var MAX_SAFE_INTEGER = 9007199254740991;
/** Used to detect unsigned integer values. */

var reIsUint = /^(?:0|[1-9]\d*)$/;
/**
 * Checks if `value` is a valid array-like index.
 *
 * @private
 * @param {*} value The value to check.
 * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.
 * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.
 */

function isIndex(value, length) {
  var type = typeof value;
  length = length == null ? MAX_SAFE_INTEGER : length;
  return !!length && (type == 'number' || type != 'symbol' && reIsUint.test(value)) && value > -1 && value % 1 == 0 && value < length;
}

module.exports = isIndex;

/***/ }),

/***/ "wRn4":
/***/ (function(module, exports, __webpack_require__) {

var xor = __webpack_require__("jIre");

exports.encrypt = function (self, block) {
  var data = xor(block, self._prev);
  self._prev = self._cipher.encryptBlock(data);
  return self._prev;
};

exports.decrypt = function (self, block) {
  var pad = self._prev;
  self._prev = block;

  var out = self._cipher.decryptBlock(block);

  return xor(out, pad);
};

/***/ }),

/***/ "wSsR":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


exports.__esModule = true;
exports.ariaHidden = ariaHidden;
exports.hideSiblings = hideSiblings;
exports.showSiblings = showSiblings;
var BLACKLIST = ['template', 'script', 'style'];

var isHidable = function isHidable(_ref) {
  var nodeType = _ref.nodeType,
      tagName = _ref.tagName;
  return nodeType === 1 && BLACKLIST.indexOf(tagName.toLowerCase()) === -1;
};

var siblings = function siblings(container, mount, cb) {
  mount = [].concat(mount);
  [].forEach.call(container.children, function (node) {
    if (mount.indexOf(node) === -1 && isHidable(node)) {
      cb(node);
    }
  });
};

function ariaHidden(show, node) {
  if (!node) {
    return;
  }

  if (show) {
    node.setAttribute('aria-hidden', 'true');
  } else {
    node.removeAttribute('aria-hidden');
  }
}

function hideSiblings(container, mountNode) {
  siblings(container, mountNode, function (node) {
    return ariaHidden(true, node);
  });
}

function showSiblings(container, mountNode) {
  siblings(container, mountNode, function (node) {
    return ariaHidden(false, node);
  });
}

/***/ }),

/***/ "wTVA":
/***/ (function(module, exports) {

function _arrayWithHoles(arr) {
  if (Array.isArray(arr)) return arr;
}

module.exports = _arrayWithHoles;
module.exports["default"] = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "wVRb":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

const _excluded = ["styles"];

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }

function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

var _default = _ref => {
  let {
    styles = {}
  } = _ref,
      props = _objectWithoutProperties(_ref, _excluded);

  return /*#__PURE__*/_react.default.createElement("svg", _extends({
    version: "1.1",
    id: "Layer_1",
    xmlns: "http://www.w3.org/2000/svg",
    x: "0",
    y: "0",
    viewBox: "0 0 22 22",
    xmlSpace: "preserve"
  }, props), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["st0"] || "st0",
    d: "M1.2 20.2c0 .3.3.6.6.6h7.9v-8.6H1.2v8zM0 8v2.4c0 .4.3.6.6.6h9.2V7.4H.6c-.3 0-.6.2-.6.6zm12.2 12.8h7.9c.3 0 .6-.3.6-.6v-7.9h-8.6v8.5zm9.2-13.4h-9.2V11h9.2c.3 0 .6-.3.6-.6V8c0-.4-.3-.6-.6-.6z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["st0"] || "st0",
    d: "M15.9 1.3c-1.1 0-3.4.8-4.9 3.2-1.4-2.4-3.8-3.2-4.9-3.2-1.4 0-2.4 1.1-2.4 2.4s1.1 2.4 2.4 2.4h9.8c1.4 0 2.4-1.1 2.4-2.4s-1-2.4-2.4-2.4zM6.1 4.9c-.7 0-1.2-.5-1.2-1.2s.5-1.2 1.2-1.2c1.6.2 2.9 1.1 3.8 2.4H6.1zm9.8 0h-3.8c.8-1.3 2.2-2.2 3.8-2.4.7 0 1.2.5 1.2 1.2s-.5 1.2-1.2 1.2z"
  }));
};

exports.default = _default;

/***/ }),

/***/ "wWOq":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("Bc4O"),
      24: __webpack_require__("6UQh")
    }
  }));
};

WrappedIcon.displayName = 'Clock';
exports.default = WrappedIcon;

/***/ }),

/***/ "wclG":
/***/ (function(module, exports, __webpack_require__) {

var baseSetToString = __webpack_require__("pFRH"),
    shortOut = __webpack_require__("88Gu");
/**
 * Sets the `toString` method of `func` to return `string`.
 *
 * @private
 * @param {Function} func The function to modify.
 * @param {Function} string The `toString` result.
 * @returns {Function} Returns `func`.
 */


var setToString = shortOut(baseSetToString);
module.exports = setToString;

/***/ }),

/***/ "weEU":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("path", {
  d: "M22.585 31.7L11.94 21.05a2 2 0 0 1 0-2.828l.282-.282a2.006 2.006 0 0 1 2.828 0L24 26.888l8.949-8.948a2.006 2.006 0 0 1 2.828 0l.282.282a2 2 0 0 1 0 2.828L25.414 31.7a2 2 0 0 1-2.829 0z"
}));

/***/ }),

/***/ "wewx":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


exports.__esModule = true;

var _contains = __webpack_require__("61Rg");

var _contains2 = _interopRequireDefault(_contains);

var _propTypes = __webpack_require__("17x9");

var _propTypes2 = _interopRequireDefault(_propTypes);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

var _reactDom = __webpack_require__("i8i4");

var _reactDom2 = _interopRequireDefault(_reactDom);

var _addEventListener = __webpack_require__("T9VG");

var _addEventListener2 = _interopRequireDefault(_addEventListener);

var _ownerDocument = __webpack_require__("z9HI");

var _ownerDocument2 = _interopRequireDefault(_ownerDocument);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _classCallCheck(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}

function _possibleConstructorReturn(self, call) {
  if (!self) {
    throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
  }

  return call && (typeof call === "object" || typeof call === "function") ? call : self;
}

function _inherits(subClass, superClass) {
  if (typeof superClass !== "function" && superClass !== null) {
    throw new TypeError("Super expression must either be null or a function, not " + typeof superClass);
  }

  subClass.prototype = Object.create(superClass && superClass.prototype, {
    constructor: {
      value: subClass,
      enumerable: false,
      writable: true,
      configurable: true
    }
  });
  if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;
}

var escapeKeyCode = 27;

function isLeftClickEvent(event) {
  return event.button === 0;
}

function isModifiedEvent(event) {
  return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);
}
/**
 * The `<RootCloseWrapper/>` component registers your callback on the document
 * when rendered. Powers the `<Overlay/>` component. This is used achieve modal
 * style behavior where your callback is triggered when the user tries to
 * interact with the rest of the document or hits the `esc` key.
 */


var RootCloseWrapper = function (_React$Component) {
  _inherits(RootCloseWrapper, _React$Component);

  function RootCloseWrapper(props, context) {
    _classCallCheck(this, RootCloseWrapper);

    var _this = _possibleConstructorReturn(this, _React$Component.call(this, props, context));

    _this.addEventListeners = function () {
      var event = _this.props.event;
      var doc = (0, _ownerDocument2.default)(_this); // Use capture for this listener so it fires before React's listener, to
      // avoid false positives in the contains() check below if the target DOM
      // element is removed in the React mouse callback.

      _this.documentMouseCaptureListener = (0, _addEventListener2.default)(doc, event, _this.handleMouseCapture, true);
      _this.documentMouseListener = (0, _addEventListener2.default)(doc, event, _this.handleMouse);
      _this.documentKeyupListener = (0, _addEventListener2.default)(doc, 'keyup', _this.handleKeyUp);
    };

    _this.removeEventListeners = function () {
      if (_this.documentMouseCaptureListener) {
        _this.documentMouseCaptureListener.remove();
      }

      if (_this.documentMouseListener) {
        _this.documentMouseListener.remove();
      }

      if (_this.documentKeyupListener) {
        _this.documentKeyupListener.remove();
      }
    };

    _this.handleMouseCapture = function (e) {
      _this.preventMouseRootClose = isModifiedEvent(e) || !isLeftClickEvent(e) || (0, _contains2.default)(_reactDom2.default.findDOMNode(_this), e.target);
    };

    _this.handleMouse = function (e) {
      if (!_this.preventMouseRootClose && _this.props.onRootClose) {
        _this.props.onRootClose(e);
      }
    };

    _this.handleKeyUp = function (e) {
      if (e.keyCode === escapeKeyCode && _this.props.onRootClose) {
        _this.props.onRootClose(e);
      }
    };

    _this.preventMouseRootClose = false;
    return _this;
  }

  RootCloseWrapper.prototype.componentDidMount = function componentDidMount() {
    if (!this.props.disabled) {
      this.addEventListeners();
    }
  };

  RootCloseWrapper.prototype.componentDidUpdate = function componentDidUpdate(prevProps) {
    if (!this.props.disabled && prevProps.disabled) {
      this.addEventListeners();
    } else if (this.props.disabled && !prevProps.disabled) {
      this.removeEventListeners();
    }
  };

  RootCloseWrapper.prototype.componentWillUnmount = function componentWillUnmount() {
    if (!this.props.disabled) {
      this.removeEventListeners();
    }
  };

  RootCloseWrapper.prototype.render = function render() {
    return this.props.children;
  };

  return RootCloseWrapper;
}(_react2.default.Component);

RootCloseWrapper.displayName = 'RootCloseWrapper';
RootCloseWrapper.propTypes = {
  /**
   * Callback fired after click or mousedown. Also triggers when user hits `esc`.
   */
  onRootClose: _propTypes2.default.func,

  /**
   * Children to render.
   */
  children: _propTypes2.default.element,

  /**
   * Disable the the RootCloseWrapper, preventing it from triggering `onRootClose`.
   */
  disabled: _propTypes2.default.bool,

  /**
   * Choose which document mouse event to bind to.
   */
  event: _propTypes2.default.oneOf(['click', 'mousedown'])
};
RootCloseWrapper.defaultProps = {
  event: 'click'
};
exports.default = RootCloseWrapper;
module.exports = exports['default'];

/***/ }),

/***/ "wgeU":
/***/ (function(module, exports) {



/***/ }),

/***/ "wgma":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, props, _react2.default.createElement("svg", {
    className: "spectrum-UIIcon-CheckmarkSmall"
  }, _react2.default.createElement("path", {
    d: "M3.788 9A1 1 0 0 1 3 8.615l-2.288-3a1 1 0 1 1 1.576-1.23l1.5 1.991 3.924-4.991a1 1 0 1 1 1.576 1.23l-4.712 6A1 1 0 0 1 3.788 9z",
    className: "spectrum-UIIcon--medium"
  }), _react2.default.createElement("path", {
    d: "M4.5 11a1 1 0 0 1-.788-.385l-3-4A.991.991 0 0 1 .5 6a1 1 0 0 1 1.788-.616L4.5 8.376l5.212-6.991a1 1 0 1 1 1.576 1.231l-6 8A1 1 0 0 1 4.5 11z",
    className: "spectrum-UIIcon--large"
  })));
};

WrappedIcon.displayName = 'CheckmarkSmall';
exports.default = WrappedIcon;

/***/ }),

/***/ "whPl":
/***/ (function(module, exports, __webpack_require__) {

module.exports = __webpack_require__.p + "assets/projects/S_Illu_EmptyCanvasFile_Color10.png";

/***/ }),

/***/ "wk3p":
/***/ (function(module) {

module.exports = JSON.parse("{\"modp1\":{\"gen\":\"02\",\"prime\":\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff\"},\"modp2\":{\"gen\":\"02\",\"prime\":\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff\"},\"modp5\":{\"gen\":\"02\",\"prime\":\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff\"},\"modp14\":{\"gen\":\"02\",\"prime\":\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff\"},\"modp15\":{\"gen\":\"02\",\"prime\":\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff\"},\"modp16\":{\"gen\":\"02\",\"prime\":\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff\"},\"modp17\":{\"gen\":\"02\",\"prime\":\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff\"},\"modp18\":{\"gen\":\"02\",\"prime\":\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff\"}}");

/***/ }),

/***/ "wkBT":
/***/ (function(module, exports) {

function _nonIterableRest() {
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}

module.exports = _nonIterableRest;
module.exports["default"] = module.exports, module.exports.__esModule = true;

/***/ }),

/***/ "wkSR":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = TH;

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _filterDOMProps = _interopRequireDefault(__webpack_require__("Cv/Q"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

const _excluded = ["className", "children"];

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}
/**
 * A table column header
 */


function TH(_ref) {
  let {
    className,
    children
  } = _ref,
      otherProps = _objectWithoutProperties(_ref, _excluded);

  return /*#__PURE__*/_react.default.createElement("th", _extends({
    className: (0, _classnames.default)('spectrum-Table-headCell', className)
  }, (0, _filterDOMProps.default)(otherProps)), children);
}

TH.displayName = 'TH';

/***/ }),

/***/ "wq4j":
/***/ (function(module, exports, __webpack_require__) {

module.exports = __webpack_require__("43KI").PassThrough;

/***/ }),

/***/ "wsAV":
/***/ (function(module, exports) {

var naiveFallback = function () {
  if (typeof self === "object" && self) return self;
  if (typeof window === "object" && window) return window;
  throw new Error("Unable to resolve global `this`");
};

module.exports = function () {
  if (this) return this; // Unexpected strict mode (may happen if e.g. bundled into ESM module)
  // Thanks @mathiasbynens -> https://mathiasbynens.be/notes/globalthis
  // In all ES5+ engines global object inherits from Object.prototype
  // (if you approached one that doesn't please report)

  try {
    Object.defineProperty(Object.prototype, "__global__", {
      get: function () {
        return this;
      },
      configurable: true
    });
  } catch (error) {
    // Unfortunate case of Object.prototype being sealed (via preventExtensions, seal or freeze)
    return naiveFallback();
  }

  try {
    // Safari case (window.__global__ is resolved with global context, but __global__ does not)
    if (!__global__) return naiveFallback();
    return __global__;
  } finally {
    delete Object.prototype.__global__;
  }
}();

/***/ }),

/***/ "wthy":
/***/ (function(module, exports) {

/* eslint-disable max-len */
module.exports = {
  'confirmationDialog.dontShowAgain': 'Nie pokazuj ponownie',
  'confirmationDialog.confirm.default': 'Kontynuuj',
  'confirmationDialog.cancel.default': 'Anuluj',
  'confirmationDialog.learnMore': 'Więcej informacji',
  'toast.warning.place': 'Umieszczanie dokumentów w chmurze nie jest jeszcze możliwe. Przejdź dalej, aby osadzić taki dokument.',
  'toast.warning.placeLinkOrEmbed': 'Umieszczane zasoby są teraz domyślnie połączone z oryginałem. Oznacza to, że jeśli edytujesz zawartość w jednym miejscu, zmiany te zostaną odzwierciedlone wszędzie.',
  'toast.warning.saveAs.invalidFormat': 'Niestety tutaj nie można zapisywać plików {genericFormat}. Twój plik zostanie zapisany w formacie {adobeFormat}.',
  'pickerView.recent': 'Niedawne',
  'pickerView.cloud_docs': 'Twoje pliki',
  'pickerView.shared_with_you': 'Udostępniane Ci',
  'pickerView.projects': 'Projekty',
  'pickerView.files': 'Pliki',
  'pickerView.computer': 'Twój komputer...',
  'pickerView.saveAsInput': 'Zapisz jako',
  'pickerView.exportInput': 'Eksportuj jako',
  'pickerView.sketch_library': 'Konwertuj bibliotekę Sketch...',
  'pickerView.error.saveAsOrExport.default': 'Nieprawidłowa nazwa pliku.',
  'pickerView.error.saveAsOrExport.invalidName': 'Niestety ta nazwa zawiera niedozwolone znaki.',
  'pickerView.error.saveAsOrExport.invalidEnd': 'Nazwa nie może kończyć się znakiem „.” lub spacją.',
  'pickerView.error.saveAsOrExport.invalidChar': 'Nazwa nie może zawierać następujących znaków: {characters}',
  'pickerView.error.saveAsOrExport.charRestriction': 'Nazwy mogą mieć maksymalnie 200 znaków.',
  'pickerView.error.saveAsOrExport.duplicateName': 'Masz już dokument w chmurze o tej nazwie.',
  'pickerView.error.addALibrary.permission': 'Nie masz uprawnień do dodawania tej biblioteki',
  'pickerViewFooter.button.add': 'Dodaj',
  'pickerViewFooter.button.cancel': 'Anuluj',
  'pickerViewFooter.button.copy': 'Skopiuj tutaj',
  'pickerViewFooter.button.move': 'Przenieś tutaj',
  'pickerViewFooter.button.moveToProject': 'Przenieś tutaj',
  'pickerViewFooter.button.copyToProject': 'Skopiuj tutaj',
  'pickerViewFooter.button.choose': 'Wybierz',
  'pickerViewFooter.button.save': 'Zapisz',
  'pickerViewFooter.button.switchToOSPicker': 'Na Twoim komputerze',
  'pickerViewFooter.button.save.offline': 'Wymagane jest połączenie z Internetem',
  'pickerViewFooter.button.saveAsCopy': 'Zapisz',
  'pickerViewFooter.button.export': 'Eksportuj',
  'pickerViewFooter.button.placeLinkOrEmbed': 'Umieść',
  'pickerViewFooter.button.import': 'Importuj',
  'pickerViewFooter.checkbox.placeLink': 'Połączony',
  'pickerViewFooter.tooltip.placeLink': 'Ten element można umieścić tylko jako zasób połączony.',
  'pickerViewFooter.tooltip.placeEmbed': 'Ten element można umieścić tylko jako osadzony.',
  'pickerViewFooter.saveAs.format.label': 'Format',
  'pickerViewFooter.button.selectProject': 'Zapisz',
  'onboardingCdp.title': 'Zapisanie pliku jako dokumentu w chmurze pozwala na korzystanie z dodatkowych funkcji.',
  'onboardingCdp.tooltip': 'Jeśli zapiszesz na komputerze, przestaną być dostępne funkcje oparte na chmurze.',
  'onboardingCdp.tooltip.link': 'Więcej informacji',
  'onboardingCdp.table.header.saveToCloud': 'Creative Cloud',
  'onboardingCdp.table.header.saveToLocal': 'Na Twoim komputerze',
  'onboardingCdp.button.saveToCloud': 'Zapisz w Creative Cloud',
  'onboardingCdp.feature.offline': 'Dostęp offline',
  'onboardingCdp.feature.syncing': 'Synchronizacja na wszystkich urządzeniach przez chmurę',
  'onboardingCdp.feature.autosave': 'Automatyczne zapisywanie każdej zmiany',
  'onboardingCdp.feature.versionHistory': 'Historia wersji',
  'onboardingCdp.feature.inviteToEdit': 'Zaproś do edycji',
  'onboardingCdp.button.saveToLocal': 'Zapisz na komputerze',
  'onboardingCdp.checkbox.doNotShowAgain': 'Nie pokazuj ponownie',
  'uap.title.place': 'Umieść z Creative Cloud',
  'uap.title.import': 'Importuj z Creative Cloud',
  'uap.title.placeLinkOrEmbed': 'Umieść z Creative Cloud',
  'uap.title.linkAssets': 'Połącz z Creative Cloud',
  'uap.title.open': 'Otwórz z Creative Cloud',
  'uap.title.relink': 'Połącz z Creative Cloud',
  'uap.title.saveAs': 'Zapisz w Creative Cloud',
  'uap.title.saveAsCopy': 'Zapisz w Creative Cloud',
  'uap.title.saveToFolder': 'Zapisz w Creative Cloud',
  'uap.title.export': 'Eksportuj do Creative Cloud',
  'uap.title.copy': 'Kopiuj do Creative Cloud',
  'uap.title.move': 'Przenieś do Creative Cloud',
  'uap.title.moveToProject': 'Przenieś do Creative Cloud',
  'uap.title.copyToProject': 'Kopiuj do Creative Cloud',
  'uap.title.reference': 'Dodaj do Creative Cloud',
  'uap.title.selectProject': 'Zapisz w Creative Cloud',
  'move.toSpace.confirm.title': 'Historia wersji zostanie usunięta',
  'move.toSpace.confirm.message': 'Przeniesienie tego pliku spowoduje usunięcie historii wersji. Jeśli chcesz zachować historię wersji, utwórz kopię.'
};

/***/ }),

/***/ "wuU2":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

const _excluded = ["styles"];

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }

function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

var _default = _ref => {
  let {
    styles = {}
  } = _ref,
      props = _objectWithoutProperties(_ref, _excluded);

  return /*#__PURE__*/_react.default.createElement("svg", _extends({
    version: "1.1",
    id: "Layer_1",
    xmlns: "http://www.w3.org/2000/svg",
    x: "0",
    y: "0",
    viewBox: "0 0 344 344",
    xmlSpace: "preserve"
  }, props), /*#__PURE__*/_react.default.createElement("g", {
    id: "ICONS_96"
  }, /*#__PURE__*/_react.default.createElement("path", {
    className: styles["st0"] || "st0",
    d: "M326.8 258c0 7.1-5.8 12.9-12.9 12.9H30.1c-7.1 0-12.9-5.8-12.9-12.9V86c0-7.1 5.8-12.9 12.9-12.9h283.8c7.1 0 12.9 5.8 12.9 12.9v172zM30.1 81.7c-2.4 0-4.3 1.9-4.3 4.3v172c0 2.4 1.9 4.3 4.3 4.3h283.8c2.4 0 4.3-1.9 4.3-4.3V86c0-2.4-1.9-4.3-4.3-4.3H30.1z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["st0"] || "st0",
    d: "M172.1 201.3c-21.9 0-39.1-9.1-39.1-20.7v-13c0-1.8 1.4-3.2 3.2-3.2 1.8 0 3.2 1.4 3.2 3.2v13c0 6.7 13.4 14.2 32.6 14.2 7 .1 14-1.1 20.7-3.4 1.7-.6 3.5.2 4.1 1.9.6 1.7-.2 3.5-1.9 4.1-7.2 2.8-15 4-22.8 3.9z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["st0"] || "st0",
    d: "M209.2 209.6c-1.8 0-3.2-1.4-3.2-3.2v-44.8c0-2-1.2-3.8-3-4.6l-31.7-14.2c-1.6-.7-2.3-2.6-1.6-4.3.7-1.6 2.6-2.3 4.2-1.6l31.7 14.2c4.1 1.9 6.8 6 6.8 10.5v44.8c0 1.8-1.4 3.2-3.2 3.2z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["st0"] || "st0",
    d: "M173.2 171.2c-1.6 0-3.2-.3-4.7-.9L104.8 146c-3.4-1.3-5-5-3.7-8.4.7-1.7 2-3.1 3.7-3.7l63.7-24.4c3-1.2 6.3-1.2 9.3 0l63.7 24.4c3.4 1.3 5 5 3.7 8.4-.7 1.7-2 3.1-3.7 3.7l-20.6 7.9c-1.7.6-3.5-.2-4.2-1.9-.6-1.7.2-3.5 1.9-4.2l20.6-7.9-63.7-24.5c-1.5-.6-3.2-.6-4.7 0l-63.7 24.4 63.7 24.5c1.5.6 3.2.6 4.7 0l14.2-5.4c1.7-.6 3.5.2 4.2 1.9s-.2 3.5-1.9 4.2l-14.2 5.4c-1.4.5-3 .8-4.6.8z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["st0"] || "st0",
    d: "M209.1 219.6c-7.8 0-14-4.4-14-10.1.1-2.5 1.2-4.9 3.2-6.5 1.3-1.2 3.4-1 4.5.3s1 3.4-.3 4.5c-.5.4-.9 1-1 1.6 0 1.5 2.9 3.7 7.5 3.7 3 .1 5.8-1.4 7.5-3.9 0-.5-.7-1.2-1.1-1.5-1.4-1.1-1.6-3.2-.4-4.5 1.1-1.4 3.2-1.6 4.5-.4 2.1 1.6 3.3 4.1 3.4 6.7.2 4.5-6.2 10.1-13.8 10.1z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["st0"] || "st0",
    d: "M197.5 244.5h-.2c-1.8-.1-3.1-1.7-3-3.4l1.1-15.2c.1-1.8 1.7-3.1 3.4-3 1.8.1 3.1 1.7 3 3.4l-1.1 15.2c-.1 1.7-1.5 3-3.2 3z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["st0"] || "st0",
    d: "M209.8 248.3c-1.8 0-3.2-1.4-3.2-3.2v-15.2c0-1.8 1.4-3.2 3.2-3.2 1.8 0 3.2 1.4 3.2 3.2v15.2c0 1.8-1.4 3.2-3.2 3.2z"
  }), /*#__PURE__*/_react.default.createElement("path", {
    className: styles["st0"] || "st0",
    d: "M221.5 244.5c-1.7 0-3.1-1.3-3.2-3l-1.1-15.1c-.1-1.8 1.2-3.3 3-3.4 1.8-.1 3.3 1.2 3.4 3l1.1 15.1c.1 1.8-1.2 3.3-3 3.4h-.2z"
  })));
};

exports.default = _default;

/***/ }),

/***/ "wxeS":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _react_react_spectrum_Checkbox__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("L+OI");
/* harmony import */ var _react_react_spectrum_Checkbox__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Checkbox__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("TSYQ");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var mobx_react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("okNM");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _utils_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("a375");
/* harmony import */ var _utils_stop_propagation__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("hLgr");
/* harmony import */ var _ActionMenu__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("hFXq");
/* harmony import */ var _Dimmer__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("9rbx");
/* harmony import */ var _Rename__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("r0HJ");
/* harmony import */ var _ViewItem__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__("0gRt");
/* harmony import */ var _ViewItemIcon__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__("4JXv");
/* harmony import */ var _stores_Collection_ICollectionItem__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__("crLv");
/* harmony import */ var _styles_GridItem_css__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__("WXbz");
/* harmony import */ var _styles_GridItem_css__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(_styles_GridItem_css__WEBPACK_IMPORTED_MODULE_12__);
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
/* eslint-disable max-classes-per-file */
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;
};













let GridItem = class GridItem extends _ViewItem__WEBPACK_IMPORTED_MODULE_9__[/* default */ "b"] {
    constructor() {
        super(...arguments);
        this.gridItemRef = react__WEBPACK_IMPORTED_MODULE_3__["createRef"]();
    }
    renderRendition() {
        const sizeOffset = 16;
        const { tileHeight = 0, tileWidth = 0, defaultDocumentIcons, element } = this.props;
        return (react__WEBPACK_IMPORTED_MODULE_3__["createElement"](_ViewItemIcon__WEBPACK_IMPORTED_MODULE_10__[/* default */ "a"], { element: element, defaultDocumentIcons: defaultDocumentIcons, style: {
                maxWidth: tileWidth - sizeOffset,
                maxHeight: tileHeight - sizeOffset,
            }, theme: this.props.theme }));
    }
    renderTitle() {
        const { element, onRenameSubmit, onRenameCancel, nameValidator, hideActionMenu, renderTooltip, additionalNameContent = () => { }, } = this.props;
        return (react__WEBPACK_IMPORTED_MODULE_3__["createElement"]("div", { className: classnames__WEBPACK_IMPORTED_MODULE_1___default()('name', { isRenaming: this.isRenaming }) },
            react__WEBPACK_IMPORTED_MODULE_3__["createElement"]("div", { className: "nameString", id: "CDOGridItem_Name" },
                react__WEBPACK_IMPORTED_MODULE_3__["createElement"](_Rename__WEBPACK_IMPORTED_MODULE_8__[/* default */ "a"], { element: element, name: element.title, tooltip: renderTooltip && renderTooltip(element), isRenaming: this.isRenaming, onRenameSubmit: onRenameSubmit, onRenameCancel: onRenameCancel, nameValidator: nameValidator })),
            additionalNameContent(element),
            !hideActionMenu && !this.isRenaming && this.renderActionMenu()));
    }
    renderCheckBox() {
        const { isSelected, onItemSelected } = this.props;
        return (onItemSelected && (react__WEBPACK_IMPORTED_MODULE_3__["createElement"]("div", { id: `CDOGridItem_Selected_${isSelected}`, className: classnames__WEBPACK_IMPORTED_MODULE_1___default()('checkbox', {
                selected: isSelected,
            }), onClick: _utils_stop_propagation__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"] },
            react__WEBPACK_IMPORTED_MODULE_3__["createElement"](_react_react_spectrum_Checkbox__WEBPACK_IMPORTED_MODULE_0___default.a, { id: "CDOGridItem_Checkbox", tabIndex: -1, checked: isSelected, renderLabel: false, className: "spectrumCheckbox", onClick: this.onCheckboxSelection }))));
    }
    renderActionMenu() {
        const { disabled, element, actionMenuItems = [], onActionButtonClick, getSelectionStore, } = this.props;
        return (react__WEBPACK_IMPORTED_MODULE_3__["createElement"]("div", { className: "actionMenu", onClick: _utils_stop_propagation__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"] },
            react__WEBPACK_IMPORTED_MODULE_3__["createElement"](_ActionMenu__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"], { disabled: disabled, element: element, onActionButtonClick: onActionButtonClick, actionMenuItems: actionMenuItems, getSelectionStore: getSelectionStore })));
    }
    renderThumbnail() {
        const { element, tileHeight = 0, disabled, onItemSelected, isSelected, renderBadge, hideSelectionCheckbox, hideSelectionCheckboxOnFolders, } = this.props;
        const folder = Object(_stores_Collection_ICollectionItem__WEBPACK_IMPORTED_MODULE_11__[/* isFolder */ "b"])(element);
        const selectionEnabled = Boolean(onItemSelected && !this.isRenaming);
        const hideCheckbox = hideSelectionCheckbox || (folder && hideSelectionCheckboxOnFolders);
        return (react__WEBPACK_IMPORTED_MODULE_3__["createElement"]("div", { className: "renditionWrapper", style: { height: tileHeight } }, renderBadge === null || renderBadge === void 0 ? void 0 :
            renderBadge(element),
            react__WEBPACK_IMPORTED_MODULE_3__["createElement"](_Dimmer__WEBPACK_IMPORTED_MODULE_7__[/* Dimmer */ "a"], { dim: disabled }, this.renderRendition()),
            selectionEnabled && !hideCheckbox && this.renderCheckBox(),
            react__WEBPACK_IMPORTED_MODULE_3__["createElement"]("div", { className: classnames__WEBPACK_IMPORTED_MODULE_1___default()('overlay', { selected: isSelected }) })));
    }
    render() {
        var _a;
        const { disabled = false, element, tileWidth = 0, focusManagementEnabled, tabIndex = -1, enablePerformanceMetrics, ariaLabel, } = this.props;
        const folder = Object(_stores_Collection_ICollectionItem__WEBPACK_IMPORTED_MODULE_11__[/* isFolder */ "b"])(element);
        const gridItemClassNames = {
            disabled,
            folder,
        };
        if (enablePerformanceMetrics) {
            (_a = window === null || window === void 0 ? void 0 : window.performance) === null || _a === void 0 ? void 0 : _a.measure('cdo:GridItem-render');
        }
        return (react__WEBPACK_IMPORTED_MODULE_3__["createElement"]("div", Object.assign({ "aria-label": ariaLabel, className: classnames__WEBPACK_IMPORTED_MODULE_1___default()('ViewItem', 'GridItem', gridItemClassNames, _utils_constants__WEBPACK_IMPORTED_MODULE_4__[/* FOCUS_ITEM_CLASS */ "h"], { isValidDropTarget: this.isValidDropTarget }), id: "CDOGridItem", onClick: this.onClick, onDoubleClick: this.onDoubleClick, style: { width: tileWidth } }, (focusManagementEnabled ? { tabIndex } : {}), { onKeyDown: this.onKeyDown, ref: this.gridItemRef, onContextMenu: this.onContextMenu, onDragStart: this.onDragStart, onDragEnter: this.onDragEnter, onDragLeave: this.onDragLeave, onDrop: this.onDrop, draggable: !this.isDragDisabled, "data-element-id": element.id }),
            this.renderThumbnail(),
            react__WEBPACK_IMPORTED_MODULE_3__["createElement"]("div", { className: "info", id: "CDOGridItem_Info" },
                this.renderTitle(),
                !this.isRenaming && (react__WEBPACK_IMPORTED_MODULE_3__["createElement"]("div", { className: "metaData", id: "CDOGridItem_MetaData" }, this.renderMetadata())))));
    }
};
GridItem = __decorate([
    mobx_react__WEBPACK_IMPORTED_MODULE_2__[/* observer */ "e"]
], GridItem);
/* harmony default export */ __webpack_exports__["a"] = (GridItem);


/***/ }),

/***/ "wzac":
/***/ (function(module) {

module.exports = JSON.parse("{\"Clear search\":\"Rensa sökning\"}");

/***/ }),

/***/ "x+Ei":
/***/ (function(module, exports, __webpack_require__) {

!function (e, r) {
   true ? module.exports = r() : undefined;
}(this, function () {
  "use strict";

  return [{
    locale: "da",
    pluralRuleFunction: function (e, r) {
      var t = String(e).split("."),
          o = t[0],
          i = Number(t[0]) == e;
      return r ? "other" : 1 != e && (i || 0 != o && 1 != o) ? "other" : "one";
    },
    fields: {
      year: {
        displayName: "år",
        relative: {
          0: "i år",
          1: "næste år",
          "-1": "sidste år"
        },
        relativeTime: {
          future: {
            one: "om {0} år",
            other: "om {0} år"
          },
          past: {
            one: "for {0} år siden",
            other: "for {0} år siden"
          }
        }
      },
      "year-short": {
        displayName: "år",
        relative: {
          0: "i år",
          1: "næste år",
          "-1": "sidste år"
        },
        relativeTime: {
          future: {
            one: "om {0} år",
            other: "om {0} år"
          },
          past: {
            one: "for {0} år siden",
            other: "for {0} år siden"
          }
        }
      },
      month: {
        displayName: "måned",
        relative: {
          0: "denne måned",
          1: "næste måned",
          "-1": "sidste måned"
        },
        relativeTime: {
          future: {
            one: "om {0} måned",
            other: "om {0} måneder"
          },
          past: {
            one: "for {0} måned siden",
            other: "for {0} måneder siden"
          }
        }
      },
      "month-short": {
        displayName: "md.",
        relative: {
          0: "denne md.",
          1: "næste md.",
          "-1": "sidste md."
        },
        relativeTime: {
          future: {
            one: "om {0} md.",
            other: "om {0} mdr."
          },
          past: {
            one: "for {0} md. siden",
            other: "for {0} mdr. siden"
          }
        }
      },
      day: {
        displayName: "dag",
        relative: {
          0: "i dag",
          1: "i morgen",
          2: "i overmorgen",
          "-2": "i forgårs",
          "-1": "i går"
        },
        relativeTime: {
          future: {
            one: "om {0} dag",
            other: "om {0} dage"
          },
          past: {
            one: "for {0} dag siden",
            other: "for {0} dage siden"
          }
        }
      },
      "day-short": {
        displayName: "dag",
        relative: {
          0: "i dag",
          1: "i morgen",
          2: "i overmorgen",
          "-2": "i forgårs",
          "-1": "i går"
        },
        relativeTime: {
          future: {
            one: "om {0} dag",
            other: "om {0} dage"
          },
          past: {
            one: "for {0} dag siden",
            other: "for {0} dage siden"
          }
        }
      },
      hour: {
        displayName: "time",
        relative: {
          0: "i den kommende time"
        },
        relativeTime: {
          future: {
            one: "om {0} time",
            other: "om {0} timer"
          },
          past: {
            one: "for {0} time siden",
            other: "for {0} timer siden"
          }
        }
      },
      "hour-short": {
        displayName: "t.",
        relative: {
          0: "i den kommende time"
        },
        relativeTime: {
          future: {
            one: "om {0} time",
            other: "om {0} timer"
          },
          past: {
            one: "for {0} time siden",
            other: "for {0} timer siden"
          }
        }
      },
      minute: {
        displayName: "minut",
        relative: {
          0: "i det kommende minut"
        },
        relativeTime: {
          future: {
            one: "om {0} minut",
            other: "om {0} minutter"
          },
          past: {
            one: "for {0} minut siden",
            other: "for {0} minutter siden"
          }
        }
      },
      "minute-short": {
        displayName: "min.",
        relative: {
          0: "i det kommende minut"
        },
        relativeTime: {
          future: {
            one: "om {0} min.",
            other: "om {0} min."
          },
          past: {
            one: "for {0} min. siden",
            other: "for {0} min. siden"
          }
        }
      },
      second: {
        displayName: "sekund",
        relative: {
          0: "nu"
        },
        relativeTime: {
          future: {
            one: "om {0} sekund",
            other: "om {0} sekunder"
          },
          past: {
            one: "for {0} sekund siden",
            other: "for {0} sekunder siden"
          }
        }
      },
      "second-short": {
        displayName: "sek.",
        relative: {
          0: "nu"
        },
        relativeTime: {
          future: {
            one: "om {0} sek.",
            other: "om {0} sek."
          },
          past: {
            one: "for {0} sek. siden",
            other: "for {0} sek. siden"
          }
        }
      }
    }
  }, {
    locale: "da-GL",
    parentLocale: "da"
  }];
});

/***/ }),

/***/ "x+K8":
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(Buffer) {

var COMPATIBLE_ENCODING_PATTERN = /^utf-?8|ascii|utf-?16-?le|ucs-?2|base-?64|latin-?1$/i;
var WS_TRIM_PATTERN = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;
var WS_CHAR_PATTERN = /\s|\uFEFF|\xA0/;
var WS_FOLD_PATTERN = /\r?\n[\x20\x09]+/g;
var DELIMITER_PATTERN = /[;,"]/;
var WS_DELIMITER_PATTERN = /[;,"]|\s/;
/**
 * Token character pattern
 * @type {RegExp}
 * @see https://tools.ietf.org/html/rfc7230#section-3.2.6
 */

var TOKEN_PATTERN = /^[!#$%&'*+\-\.^_`|~\da-zA-Z]+$/;
var STATE = {
  IDLE: 1 << 0,
  URI: 1 << 1,
  ATTR: 1 << 2
};

function trim(value) {
  return value.replace(WS_TRIM_PATTERN, '');
}

function hasWhitespace(value) {
  return WS_CHAR_PATTERN.test(value);
}

function skipWhitespace(value, offset) {
  while (hasWhitespace(value[offset])) {
    offset++;
  }

  return offset;
}

function needsQuotes(value) {
  return WS_DELIMITER_PATTERN.test(value) || !TOKEN_PATTERN.test(value);
}

class Link {
  /**
   * Link
   * @constructor
   * @param {String} [value]
   * @returns {Link}
   */
  constructor(value) {
    /** @type {Array} URI references */
    this.refs = [];

    if (value) {
      this.parse(value);
    }
  }
  /**
   * Get refs with given relation type
   * @param {String} value
   * @returns {Array<Object>}
   */


  rel(value) {
    var links = [];
    var type = value.toLowerCase();

    for (var i = 0; i < this.refs.length; i++) {
      if (this.refs[i].rel.toLowerCase() === type) {
        links.push(this.refs[i]);
      }
    }

    return links;
  }
  /**
   * Get refs where given attribute has a given value
   * @param {String} attr
   * @param {String} value
   * @returns {Array<Object>}
   */


  get(attr, value) {
    attr = attr.toLowerCase();
    var links = [];

    for (var i = 0; i < this.refs.length; i++) {
      if (this.refs[i][attr] === value) {
        links.push(this.refs[i]);
      }
    }

    return links;
  }

  set(link) {
    this.refs.push(link);
    return this;
  }

  has(attr, value) {
    attr = attr.toLowerCase();

    for (var i = 0; i < this.refs.length; i++) {
      if (this.refs[i][attr] === value) {
        return true;
      }
    }

    return false;
  }

  parse(value, offset) {
    offset = offset || 0;
    value = offset ? value.slice(offset) : value; // Trim & unfold folded lines

    value = trim(value).replace(WS_FOLD_PATTERN, '');
    var state = STATE.IDLE;
    var length = value.length;
    var offset = 0;
    var ref = null;

    while (offset < length) {
      if (state === STATE.IDLE) {
        if (hasWhitespace(value[offset])) {
          offset++;
          continue;
        } else if (value[offset] === '<') {
          if (ref != null) {
            ref.rel != null ? this.refs.push(...Link.expandRelations(ref)) : this.refs.push(ref);
          }

          var end = value.indexOf('>', offset);
          if (end === -1) throw new Error('Expected end of URI delimiter at offset ' + offset);
          ref = {
            uri: value.slice(offset + 1, end)
          }; // this.refs.push( ref )

          offset = end;
          state = STATE.URI;
        } else {
          throw new Error('Unexpected character "' + value[offset] + '" at offset ' + offset);
        }

        offset++;
      } else if (state === STATE.URI) {
        if (hasWhitespace(value[offset])) {
          offset++;
          continue;
        } else if (value[offset] === ';') {
          state = STATE.ATTR;
          offset++;
        } else if (value[offset] === ',') {
          state = STATE.IDLE;
          offset++;
        } else {
          throw new Error('Unexpected character "' + value[offset] + '" at offset ' + offset);
        }
      } else if (state === STATE.ATTR) {
        if (value[offset] === ';' || hasWhitespace(value[offset])) {
          offset++;
          continue;
        }

        var end = value.indexOf('=', offset);
        if (end === -1) throw new Error('Expected attribute delimiter at offset ' + offset);
        var attr = trim(value.slice(offset, end)).toLowerCase();
        var attrValue = '';
        offset = end + 1;
        offset = skipWhitespace(value, offset);

        if (value[offset] === '"') {
          offset++;

          while (offset < length) {
            if (value[offset] === '"') {
              offset++;
              break;
            }

            if (value[offset] === '\\') {
              offset++;
            }

            attrValue += value[offset];
            offset++;
          }
        } else {
          var end = offset + 1;

          while (!DELIMITER_PATTERN.test(value[end]) && end < length) {
            end++;
          }

          attrValue = value.slice(offset, end);
          offset = end;
        }

        if (ref[attr] && Link.isSingleOccurenceAttr(attr)) {// Ignore multiples of attributes which may only appear once
        } else if (attr[attr.length - 1] === '*') {
          ref[attr] = Link.parseExtendedValue(attrValue);
        } else {
          attrValue = attr === 'type' ? attrValue.toLowerCase() : attrValue;

          if (ref[attr] != null) {
            if (Array.isArray(ref[attr])) {
              ref[attr].push(attrValue);
            } else {
              ref[attr] = [ref[attr], attrValue];
            }
          } else {
            ref[attr] = attrValue;
          }
        }

        switch (value[offset]) {
          case ',':
            state = STATE.IDLE;
            break;

          case ';':
            state = STATE.ATTR;
            break;
        }

        offset++;
      } else {
        throw new Error('Unknown parser state "' + state + '"');
      }
    }

    if (ref != null) {
      ref.rel != null ? this.refs.push(...Link.expandRelations(ref)) : this.refs.push(ref);
    }

    ref = null;
    return this;
  }

  toString() {
    var refs = [];
    var link = '';
    var ref = null;

    for (var i = 0; i < this.refs.length; i++) {
      ref = this.refs[i];
      link = Object.keys(this.refs[i]).reduce(function (link, attr) {
        if (attr === 'uri') return link;
        return link + '; ' + Link.formatAttribute(attr, ref[attr]);
      }, '<' + ref.uri + '>');
      refs.push(link);
    }

    return refs.join(', ');
  }

}
/**
 * Determines whether an encoding can be
 * natively handled with a `Buffer`
 * @param {String} value
 * @returns {Boolean}
 */


Link.isCompatibleEncoding = function (value) {
  return COMPATIBLE_ENCODING_PATTERN.test(value);
};

Link.parse = function (value, offset) {
  return new Link().parse(value, offset);
};

Link.isSingleOccurenceAttr = function (attr) {
  return attr === 'rel' || attr === 'type' || attr === 'media' || attr === 'title' || attr === 'title*';
};

Link.isTokenAttr = function (attr) {
  return attr === 'rel' || attr === 'type' || attr === 'anchor';
};

Link.escapeQuotes = function (value) {
  return value.replace(/"/g, '\\"');
};

Link.expandRelations = function (ref) {
  var rels = ref.rel.split(' ');
  return rels.map(function (rel) {
    var value = Object.assign({}, ref);
    value.rel = rel;
    return value;
  });
};
/**
 * Parses an extended value and attempts to decode it
 * @internal
 * @param {String} value
 * @return {Object}
 */


Link.parseExtendedValue = function (value) {
  var parts = /([^']+)?(?:'([^']+)')?(.+)/.exec(value);
  return {
    language: parts[2].toLowerCase(),
    encoding: Link.isCompatibleEncoding(parts[1]) ? null : parts[1].toLowerCase(),
    value: Link.isCompatibleEncoding(parts[1]) ? decodeURIComponent(parts[3]) : parts[3]
  };
};
/**
 * Format a given extended attribute and it's value
 * @param {String} attr
 * @param {Object} data
 * @return {String}
 */


Link.formatExtendedAttribute = function (attr, data) {
  var encoding = (data.encoding || 'utf-8').toUpperCase();
  var language = data.language || 'en';
  var encodedValue = '';

  if (Buffer.isBuffer(data.value) && Link.isCompatibleEncoding(encoding)) {
    encodedValue = data.value.toString(encoding);
  } else if (Buffer.isBuffer(data.value)) {
    encodedValue = data.value.toString('hex').replace(/[0-9a-f]{2}/gi, '%$1');
  } else {
    encodedValue = encodeURIComponent(data.value);
  }

  return attr + '=' + encoding + '\'' + language + '\'' + encodedValue;
};
/**
 * Format a given attribute and it's value
 * @param {String} attr
 * @param {String|Object} value
 * @return {String}
 */


Link.formatAttribute = function (attr, value) {
  if (Array.isArray(value)) {
    return value.map(item => {
      return Link.formatAttribute(attr, item);
    }).join('; ');
  }

  if (attr[attr.length - 1] === '*' || typeof value !== 'string') {
    return Link.formatExtendedAttribute(attr, value);
  }

  if (Link.isTokenAttr(attr)) {
    value = needsQuotes(value) ? '"' + Link.escapeQuotes(value) + '"' : Link.escapeQuotes(value);
  } else if (needsQuotes(value)) {
    value = encodeURIComponent(value); // We don't need to escape <SP> <,> <;> within quotes

    value = value.replace(/%20/g, ' ').replace(/%2C/g, ',').replace(/%3B/g, ';');
    value = '"' + value + '"';
  }

  return attr + '=' + value;
};

module.exports = Link;
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("HDXh").Buffer))

/***/ }),

/***/ "x1O6":
/***/ (function(module) {

module.exports = JSON.parse("{\"close\":\"Zavřít\",\"error\":\"Chyba\",\"info\":\"Informace\",\"success\":\"Úspěch\",\"warning\":\"Upozornění\"}");

/***/ }),

/***/ "x1bj":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.clamp = clamp;
exports.snapValueToStep = snapValueToStep;
exports.handleDecimalOperation = handleDecimalOperation;
/*************************************************************************
* ADOBE CONFIDENTIAL
* ___________________
*
* Copyright 2019 Adobe
* All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains
* the property of Adobe and its suppliers, if any. The intellectual
* and technical concepts contained herein are proprietary to Adobe
* and its suppliers and are protected by all applicable intellectual
* property laws, including trade secret and copyright laws.
* Dissemination of this information or reproduction of this material
* is strictly forbidden unless prior written permission is obtained
* from Adobe.
**************************************************************************/

function clamp(number, min = -Infinity, max = Infinity) {
  return Math.min(Math.max(number, min), max);
}
/**
 * Ensures that a given value is constrained within a given min, max and snaps to an appropriate step.
 * @param   {Number} rawValue The value to be snapped
 * @param   {Number} min      Minimum value of the range
 * @param   {Number} max      Maximum value of the range
 * @param   {Number} step     Step by which to increment/decrement values within the range.
 * @returns {Number} The snapped value
 */


function snapValueToStep(rawValue, min, max, step) {
  step = parseFloat(step) || 1;
  let remainder = (rawValue - min) % step;
  let snappedValue;
  let precision = step.toString().replace(/^(?:\d+)(?:\.(\d+))?$/g, '$1').length;

  if (Math.abs(remainder) * 2 >= step) {
    snappedValue = rawValue - Math.abs(remainder) + step;
  } else {
    snappedValue = rawValue - remainder;
  }

  if (snappedValue < min) {
    snappedValue = min;
  } else if (snappedValue > max) {
    snappedValue = min + Math.floor((max - min) / step) * step;
  } // correct floating point behavior by rounding to step precision


  if (precision > 0) {
    snappedValue = parseFloat(snappedValue.toFixed(precision));
  }

  return snappedValue;
}
/**
 * Corrects floating point errors when adding or subtracting values.
 * @param   {String} operator '+' or '-'
 * @param   {Number} value1   Starting value
 * @param   {Number} value1   Value to be added or subtracted
 * @returns {Number} The returned value
 */


function handleDecimalOperation(operator, value1, value2) {
  let result = operator === '+' ? value1 + value2 : value1 - value2; // Check if we have decimals

  if (value1 % 1 !== 0 || value2 % 1 !== 0) {
    const value1Decimal = value1.toString().split('.');
    const value2Decimal = value2.toString().split('.');
    const value1DecimalLength = value1Decimal[1] && value1Decimal[1].length || 0;
    const value2DecimalLength = value2Decimal[1] && value2Decimal[1].length || 0;
    const multiplier = Math.pow(10, Math.max(value1DecimalLength, value2DecimalLength)); // Transform the decimals to integers based on the precision

    value1 = Math.round(value1 * multiplier);
    value2 = Math.round(value2 * multiplier); // Perform the operation on integers values to make sure we don't get a fancy decimal value

    result = operator === '+' ? value1 + value2 : value1 - value2; // Transform the integer result back to decimal

    result /= multiplier;
  }

  return result;
}

/***/ }),

/***/ "x2z8":
/***/ (function(module, exports) {

//
//  ADOBE CONFIDENTIAL
//  __________________
//
//  Copyright 2020 Adobe
//  All Rights Reserved.
//
//  NOTICE:  All information contained herein is, and remains
//  the property of Adobe and its suppliers, if any. The intellectual
//  and technical concepts contained herein are proprietary to Adobe
//  and its suppliers and are protected by all applicable intellectual
//  property laws, including trade secret and copyright laws.
//  Dissemination of this information or reproduction of this material
//  is strictly forbidden unless prior written permission is obtained
//  from Adobe.
//


/***/ }),

/***/ "x7p6":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return waitForListLoad; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return loadList; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return refreshList; });
/* unused harmony export loadNextPage */
/* harmony import */ var _ccx_public_shared_asset_model_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("m4Z2");
/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("2vnA");


/**
 * Wait for a list to load using a Promise with Mobx
 * @param list
 */
const waitForListLoad = async (list) => {
    await Object(mobx__WEBPACK_IMPORTED_MODULE_1__[/* when */ "I"])(() => list.status !== _ccx_public_shared_asset_model_js__WEBPACK_IMPORTED_MODULE_0__[/* AssetListStatus */ "e"].Loading);
    if (list.status === _ccx_public_shared_asset_model_js__WEBPACK_IMPORTED_MODULE_0__[/* AssetListStatus */ "e"].HadLoaderErrors) {
        throw list.errors;
    }
};
/**
 * Load the item list of an existing source.
 * Since ItemSource.getList() auto-loads the first page, the loadOptions that were previously passed in List.load()
 * must now be passed as the 3rd parameter of Source.getList().
 * Use this method if you want to start from a source or trying to passing in an order, filter or
 * loadOptions (limit, requestTimeout ...) to the list.
 * Note that refreshTimeout -1 means "infinite future", while 0 means "now".
 *
 * @param samSource - The source of the list
 * @param order - The order of the list (optional)
 * @param filter - The filter of the list (optional)
 * @param loadOptions - Additional options for loading the list (optional)
 * @returns
 */
const loadList = async (samSource, order, filter, loadOptions) => {
    if (!samSource) {
        return;
    }
    const list = samSource.getList(order, filter, loadOptions);
    await waitForListLoad(list);
    return list;
};
/**
 * Refreshes an existing list. Load options are now expected to be passed in via the getList() method.
 * https://git.corp.adobe.com/torq/acpl-model/blob/main/modules/sam-js/RELEASE_NOTES.md
 *
 * @param list
 * @returns
 */
const refreshList = async (list) => {
    var _a;
    if (!list) {
        return;
    }
    // manually force a refresh of the list
    (_a = list.setNeedsRefresh) === null || _a === void 0 ? void 0 : _a.call(list);
    list.refresh();
    await waitForListLoad(list);
};
/**
 * Load the next page of a list
 *
 * @param list
 * @returns
 */
const loadNextPage = async (list) => {
    if (!list) {
        return;
    }
    list.loadNextPage();
    await waitForListLoad(list);
};


/***/ }),

/***/ "x956":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("path", {
  d: "M31.5 6h-27A4.5 4.5 0 0 0 0 10.5v15A4.5 4.5 0 0 0 4.5 30h27a4.5 4.5 0 0 0 4.5-4.5v-15A4.5 4.5 0 0 0 31.5 6zm-14.837 7.612a.81.81 0 0 1-.369.715l-.324.2-.459-.183a5.948 5.948 0 0 0-2.342-.376 3.721 3.721 0 0 0-4.02 4 3.816 3.816 0 0 0 4.061 4.042 6.583 6.583 0 0 0 2.278-.307l.312-.103.381.163a.787.787 0 0 1 .361.691v1.812a.935.935 0 0 1-.57.9 9.632 9.632 0 0 1-3.065.416c-4.657 0-7.667-2.961-7.667-7.544 0-4.549 3.2-7.606 7.972-7.606a7.573 7.573 0 0 1 2.922.4.909.909 0 0 1 .53.849zm13.5 0a.81.81 0 0 1-.369.715l-.324.2-.459-.183a5.948 5.948 0 0 0-2.342-.376 3.721 3.721 0 0 0-4.02 4 3.816 3.816 0 0 0 4.061 4.042 6.583 6.583 0 0 0 2.278-.307l.312-.103.381.163a.787.787 0 0 1 .361.691v1.812a.935.935 0 0 1-.57.9 9.632 9.632 0 0 1-3.065.416c-4.657 0-7.667-2.961-7.667-7.544 0-4.549 3.2-7.606 7.972-7.606a7.573 7.573 0 0 1 2.922.4.909.909 0 0 1 .53.849z"
}));

/***/ }),

/***/ "xAJe":
/***/ (function(module) {

module.exports = JSON.parse("{\"close\":\"Luk\",\"error\":\"Fejl\",\"info\":\"Oplysninger\",\"success\":\"Fuldført\",\"warning\":\"Advarsel\"}");

/***/ }),

/***/ "xAep":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("path", {
  d: "M30.664 12.542A10.4 10.4 0 0 0 23.672 10H10V4.5a.5.5 0 0 0-.856-.351l-7.4 7.5a.5.5 0 0 0 0 .7l7.4 7.5A.5.5 0 0 0 10 19.5V14h13.878a6.139 6.139 0 0 1 6.222 5.8A5.889 5.889 0 0 1 24 26h-5a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h4.527a10.336 10.336 0 0 0 10.426-9.013 9.949 9.949 0 0 0-3.289-8.445z"
}));

/***/ }),

/***/ "xBww":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("path", {
  d: "M24 4.1A19.9 19.9 0 1 0 43.9 24 19.9 19.9 0 0 0 24 4.1zM8.063 25.25h5.981A25.962 25.962 0 0 0 15.319 32h-5.161a15.882 15.882 0 0 1-2.095-6.75zM25 13.75v-5.7q.68.042 1.344.14a32.211 32.211 0 0 1 3.278 5.559zm5.632 2.5a24.015 24.015 0 0 1 1.318 6.5H25v-6.5zM23 8.051v5.7h-4.622a32.211 32.211 0 0 1 3.278-5.559q.664-.099 1.344-.141zm0 8.2v6.5h-6.95a24.015 24.015 0 0 1 1.318-6.5zm-8.956 6.5H8.063a15.894 15.894 0 0 1 1.943-6.5h5.234a25.89 25.89 0 0 0-1.196 6.499zm2.005 2.5H23V32h-5.55a24.155 24.155 0 0 1-1.4-6.75zM23 34v5.949q-.68-.042-1.344-.14A32.137 32.137 0 0 1 18.266 34zm2 5.949V34h4.734a32.137 32.137 0 0 1-3.39 5.809q-.664.098-1.344.14zM25 32v-6.75h6.95a24.155 24.155 0 0 1-1.4 6.75zm8.957-6.75h5.98a15.882 15.882 0 0 1-2.1 6.75h-5.156a25.972 25.972 0 0 0 1.276-6.75zm0-2.5a25.89 25.89 0 0 0-1.2-6.5h5.234a15.894 15.894 0 0 1 1.943 6.5zm2.325-9h-4.448a32.453 32.453 0 0 0-2.546-4.837 16.017 16.017 0 0 1 6.992 4.837zm-17.57-4.837a32.453 32.453 0 0 0-2.546 4.837H11.72a16.017 16.017 0 0 1 6.992-4.837zM11.521 34h4.542a32.452 32.452 0 0 0 2.647 5.086A16.012 16.012 0 0 1 11.521 34zm17.77 5.086A32.452 32.452 0 0 0 31.937 34h4.542a16.012 16.012 0 0 1-7.188 5.086z"
}));

/***/ }),

/***/ "xDdU":
/***/ (function(module, exports, __webpack_require__) {

var rng = __webpack_require__("4fRq");

var bytesToUuid = __webpack_require__("I2ZF"); // **`v1()` - Generate time-based UUID**
//
// Inspired by https://github.com/LiosK/UUID.js
// and http://docs.python.org/library/uuid.html


var _nodeId;

var _clockseq; // Previous uuid creation time


var _lastMSecs = 0;
var _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details

function v1(options, buf, offset) {
  var i = buf && offset || 0;
  var b = buf || [];
  options = options || {};
  var node = options.node || _nodeId;
  var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not
  // specified.  We do this lazily to minimize issues related to insufficient
  // system entropy.  See #189

  if (node == null || clockseq == null) {
    var seedBytes = rng();

    if (node == null) {
      // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)
      node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];
    }

    if (clockseq == null) {
      // Per 4.2.2, randomize (14 bit) clockseq
      clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;
    }
  } // UUID timestamps are 100 nano-second units since the Gregorian epoch,
  // (1582-10-15 00:00).  JSNumbers aren't precise enough for this, so
  // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'
  // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.


  var msecs = options.msecs !== undefined ? options.msecs : new Date().getTime(); // Per 4.2.1.2, use count of uuid's generated during the current clock
  // cycle to simulate higher resolution clock

  var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs)

  var dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression

  if (dt < 0 && options.clockseq === undefined) {
    clockseq = clockseq + 1 & 0x3fff;
  } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new
  // time interval


  if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {
    nsecs = 0;
  } // Per 4.2.1.2 Throw error if too many uuids are requested


  if (nsecs >= 10000) {
    throw new Error('uuid.v1(): Can\'t create more than 10M uuids/sec');
  }

  _lastMSecs = msecs;
  _lastNSecs = nsecs;
  _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch

  msecs += 12219292800000; // `time_low`

  var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;
  b[i++] = tl >>> 24 & 0xff;
  b[i++] = tl >>> 16 & 0xff;
  b[i++] = tl >>> 8 & 0xff;
  b[i++] = tl & 0xff; // `time_mid`

  var tmh = msecs / 0x100000000 * 10000 & 0xfffffff;
  b[i++] = tmh >>> 8 & 0xff;
  b[i++] = tmh & 0xff; // `time_high_and_version`

  b[i++] = tmh >>> 24 & 0xf | 0x10; // include version

  b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)

  b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low`

  b[i++] = clockseq & 0xff; // `node`

  for (var n = 0; n < 6; ++n) {
    b[i + n] = node[n];
  }

  return buf ? buf : bytesToUuid(b);
}

module.exports = v1;

/***/ }),

/***/ "xGae":
/***/ (function(module) {

module.exports = JSON.parse("{\"File\":\"Fájl\",\"Folder\":\"Mappa\"}");

/***/ }),

/***/ "xIqb":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


exports.__esModule = true;
exports.default = qsa; // Zepto.js
// (c) 2010-2015 Thomas Fuchs
// Zepto.js may be freely distributed under the MIT license.

var simpleSelectorRE = /^[\w-]*$/;
var toArray = Function.prototype.bind.call(Function.prototype.call, [].slice);

function qsa(element, selector) {
  var maybeID = selector[0] === '#',
      maybeClass = selector[0] === '.',
      nameOnly = maybeID || maybeClass ? selector.slice(1) : selector,
      isSimple = simpleSelectorRE.test(nameOnly),
      found;

  if (isSimple) {
    if (maybeID) {
      element = element.getElementById ? element : document;
      return (found = element.getElementById(nameOnly)) ? [found] : [];
    }

    if (element.getElementsByClassName && maybeClass) return toArray(element.getElementsByClassName(nameOnly));
    return toArray(element.getElementsByTagName(selector));
  }

  return toArray(element.querySelectorAll(selector));
}

module.exports = exports["default"];

/***/ }),

/***/ "xKtb":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ScrollContainerContext; });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _ScrollContainer_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("BlSv");
/* harmony import */ var _ScrollContainer_css__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_ScrollContainer_css__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("TSYQ");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_2__);



const ScrollContainerContext = react__WEBPACK_IMPORTED_MODULE_0___default.a.createContext(null);
const ScrollContainer = ({ children, showBorderWhenScrolled }) => {
    const [containerElement, setContainerElement] = Object(react__WEBPACK_IMPORTED_MODULE_0__["useState"])(null);
    const [isScrolled, setIsScrolled] = Object(react__WEBPACK_IMPORTED_MODULE_0__["useState"])(false);
    const onScroll = Object(react__WEBPACK_IMPORTED_MODULE_0__["useCallback"])(evt => {
        setIsScrolled(evt.currentTarget.scrollTop > 0);
    }, []);
    return (react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", { className: _ScrollContainer_css__WEBPACK_IMPORTED_MODULE_1___default.a.parent },
        react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", { className: classnames__WEBPACK_IMPORTED_MODULE_2___default()(_ScrollContainer_css__WEBPACK_IMPORTED_MODULE_1___default.a.scrollLine, {
                [_ScrollContainer_css__WEBPACK_IMPORTED_MODULE_1___default.a.scrolled]: isScrolled && showBorderWhenScrolled,
            }) }),
        react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", { ref: setContainerElement, className: classnames__WEBPACK_IMPORTED_MODULE_2___default()(_ScrollContainer_css__WEBPACK_IMPORTED_MODULE_1___default.a.scrollArea, 'ReactScrollViewNode'), onScroll: onScroll },
            react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(ScrollContainerContext.Provider, { value: containerElement }, children))));
};
/* harmony default export */ __webpack_exports__["b"] = (ScrollContainer);


/***/ }),

/***/ "xU8c":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var _interopRequireDefault = __webpack_require__("TqRt");

exports.__esModule = true;
exports.default = exports.animationEnd = exports.animationDelay = exports.animationTiming = exports.animationDuration = exports.animationName = exports.transitionEnd = exports.transitionDuration = exports.transitionDelay = exports.transitionTiming = exports.transitionProperty = exports.transform = void 0;

var _inDOM = _interopRequireDefault(__webpack_require__("Bp9Y"));

var transform = 'transform';
exports.transform = transform;
var prefix, transitionEnd, animationEnd;
exports.animationEnd = animationEnd;
exports.transitionEnd = transitionEnd;
var transitionProperty, transitionDuration, transitionTiming, transitionDelay;
exports.transitionDelay = transitionDelay;
exports.transitionTiming = transitionTiming;
exports.transitionDuration = transitionDuration;
exports.transitionProperty = transitionProperty;
var animationName, animationDuration, animationTiming, animationDelay;
exports.animationDelay = animationDelay;
exports.animationTiming = animationTiming;
exports.animationDuration = animationDuration;
exports.animationName = animationName;

if (_inDOM.default) {
  var _getTransitionPropert = getTransitionProperties();

  prefix = _getTransitionPropert.prefix;
  exports.transitionEnd = transitionEnd = _getTransitionPropert.transitionEnd;
  exports.animationEnd = animationEnd = _getTransitionPropert.animationEnd;
  exports.transform = transform = prefix + "-" + transform;
  exports.transitionProperty = transitionProperty = prefix + "-transition-property";
  exports.transitionDuration = transitionDuration = prefix + "-transition-duration";
  exports.transitionDelay = transitionDelay = prefix + "-transition-delay";
  exports.transitionTiming = transitionTiming = prefix + "-transition-timing-function";
  exports.animationName = animationName = prefix + "-animation-name";
  exports.animationDuration = animationDuration = prefix + "-animation-duration";
  exports.animationTiming = animationTiming = prefix + "-animation-delay";
  exports.animationDelay = animationDelay = prefix + "-animation-timing-function";
}

var _default = {
  transform: transform,
  end: transitionEnd,
  property: transitionProperty,
  timing: transitionTiming,
  delay: transitionDelay,
  duration: transitionDuration
};
exports.default = _default;

function getTransitionProperties() {
  var style = document.createElement('div').style;
  var vendorMap = {
    O: function O(e) {
      return "o" + e.toLowerCase();
    },
    Moz: function Moz(e) {
      return e.toLowerCase();
    },
    Webkit: function Webkit(e) {
      return "webkit" + e;
    },
    ms: function ms(e) {
      return "MS" + e;
    }
  };
  var vendors = Object.keys(vendorMap);
  var transitionEnd, animationEnd;
  var prefix = '';

  for (var i = 0; i < vendors.length; i++) {
    var vendor = vendors[i];

    if (vendor + "TransitionProperty" in style) {
      prefix = "-" + vendor.toLowerCase();
      transitionEnd = vendorMap[vendor]('TransitionEnd');
      animationEnd = vendorMap[vendor]('AnimationEnd');
      break;
    }
  }

  if (!transitionEnd && 'transitionProperty' in style) transitionEnd = 'transitionend';
  if (!animationEnd && 'animationName' in style) animationEnd = 'animationend';
  style = null;
  return {
    animationEnd: animationEnd,
    transitionEnd: transitionEnd,
    prefix: prefix
  };
}

/***/ }),

/***/ "xUaa":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var _interopRequireDefault = __webpack_require__("TqRt");

exports.__esModule = true;
exports.default = scrollbarSize;

var _inDOM = _interopRequireDefault(__webpack_require__("Bp9Y"));

var size;

function scrollbarSize(recalc) {
  if (!size && size !== 0 || recalc) {
    if (_inDOM.default) {
      var scrollDiv = document.createElement('div');
      scrollDiv.style.position = 'absolute';
      scrollDiv.style.top = '-9999px';
      scrollDiv.style.width = '50px';
      scrollDiv.style.height = '50px';
      scrollDiv.style.overflow = 'scroll';
      document.body.appendChild(scrollDiv);
      size = scrollDiv.offsetWidth - scrollDiv.clientWidth;
      document.body.removeChild(scrollDiv);
    }
  }

  return size;
}

module.exports = exports["default"];

/***/ }),

/***/ "xZA7":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* unused harmony export Fs */
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
/**
 * Utility class to wrap the fs API so that it can be used
 * properly in the browser.
 */
class Fs {
    constructor() {
        this.fs = window.require && window.require('fs');
    }
    /**
     * Checks if a path exists on disk.
     *
     * @param path Path to check on disk
     */
    async pathExists(path) {
        if (!this.fs) {
            return true;
        }
        return await this.fs
            .lstat(path)
            .then(() => true)
            .catch(() => false);
    }
    /**
     * Reads a JSON file from disk.
     * @param path Path to read the JSON from
     */
    async readJson(path) {
        if (!this.fs) {
            return true;
        }
        const data = await this.fs.readFile(`file://${path}`, 'utf-8');
        return JSON.parse(data);
    }
    /**
     * Write a file to disk
     */
    async writeFile(...args) {
        if (!this.fs) {
            return;
        }
        await this.fs.writeFile(...args);
    }
    /**
     * Delete a file from disk
     */
    async deleteFile(path) {
        if (!this.fs) {
            return;
        }
        await this.fs.unlink(`file://${path}`);
    }
}
const fs = new Fs();
/* harmony default export */ __webpack_exports__["a"] = (fs);


/***/ }),

/***/ "xZGU":
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(process) {/* eslint-disable node/no-deprecated-api */


var buffer = __webpack_require__("HDXh");

var Buffer = buffer.Buffer;
var safer = {};
var key;

for (key in buffer) {
  if (!buffer.hasOwnProperty(key)) continue;
  if (key === 'SlowBuffer' || key === 'Buffer') continue;
  safer[key] = buffer[key];
}

var Safer = safer.Buffer = {};

for (key in Buffer) {
  if (!Buffer.hasOwnProperty(key)) continue;
  if (key === 'allocUnsafe' || key === 'allocUnsafeSlow') continue;
  Safer[key] = Buffer[key];
}

safer.Buffer.prototype = Buffer.prototype;

if (!Safer.from || Safer.from === Uint8Array.from) {
  Safer.from = function (value, encodingOrOffset, length) {
    if (typeof value === 'number') {
      throw new TypeError('The "value" argument must not be of type number. Received type ' + typeof value);
    }

    if (value && typeof value.length === 'undefined') {
      throw new TypeError('The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type ' + typeof value);
    }

    return Buffer(value, encodingOrOffset, length);
  };
}

if (!Safer.alloc) {
  Safer.alloc = function (size, fill, encoding) {
    if (typeof size !== 'number') {
      throw new TypeError('The "size" argument must be of type number. Received type ' + typeof size);
    }

    if (size < 0 || size >= 2 * (1 << 30)) {
      throw new RangeError('The value "' + size + '" is invalid for option "size"');
    }

    var buf = Buffer(size);

    if (!fill || fill.length === 0) {
      buf.fill(0);
    } else if (typeof encoding === 'string') {
      buf.fill(fill, encoding);
    } else {
      buf.fill(fill);
    }

    return buf;
  };
}

if (!safer.kStringMaxLength) {
  try {
    safer.kStringMaxLength = process.binding('buffer').kStringMaxLength;
  } catch (e) {// we can't determine kStringMaxLength in environments where process.binding
    // is unsupported, so let's not set it
  }
}

if (!safer.constants) {
  safer.constants = {
    MAX_LENGTH: safer.kMaxLength
  };

  if (safer.kStringMaxLength) {
    safer.constants.MAX_STRING_LENGTH = safer.kStringMaxLength;
  }
}

module.exports = safer;
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("8oxB")))

/***/ }),

/***/ "xb6E":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _autobindDecorator = _interopRequireDefault(__webpack_require__("gKdT"));

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _CoachMark = _interopRequireDefault(__webpack_require__("zLtB"));

var _CoachMarkIndicator = _interopRequireDefault(__webpack_require__("Edlj"));

var _dna = _interopRequireDefault(__webpack_require__("AnWb"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

var _UxpProvider = __webpack_require__("HGBq");

__webpack_require__("h7RT");

var _ScrollManager = __webpack_require__("8VRs");

const _excluded = ["quiet", "onClick", "visible"];

var _class;

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
  try {
    var info = gen[key](arg);
    var value = info.value;
  } catch (error) {
    reject(error);
    return;
  }

  if (info.done) {
    resolve(value);
  } else {
    Promise.resolve(value).then(_next, _throw);
  }
}

function _asyncToGenerator(fn) {
  return function () {
    var self = this,
        args = arguments;
    return new Promise(function (resolve, reject) {
      var gen = fn.apply(self, args);

      function _next(value) {
        asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
      }

      function _throw(err) {
        asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
      }

      _next(undefined);
    });
  };
}

let UxpCoachMarkIndicator = (0, _autobindDecorator.default)(_class = class UxpCoachMarkIndicator extends _CoachMarkIndicator.default {
  constructor(props) {
    super(props);

    this.getOpacity = size => {
      if (size >= 1 && size <= 2) {
        return size > 1.5 ? 2 * this.opacityAtMidAnimation * (2 - size) : 2 * this.opacityAtMidAnimation * (size - 1);
      }

      return 0;
    };

    this.renderIndicatorRing = ring => {
      let {
        size
      } = this.state;
      return /*#__PURE__*/_react.default.createElement(_UxpProvider.SpectrumContext.Consumer, null, ({
        scale,
        theme
      } = {}) => {
        const genome = _dna.default.elements[theme][scale].coachmark[this.props.quiet ? 'quiet' : 'default'];
        const borderColor = genome.states['default']['indicator-ring-default-color'];
        const borderSize = parseInt(genome.dimensions['indicator-ring-border-size'], 10);
        const ringRadius = parseInt(genome.dimensions['indicator-ring-diameter'], 10) / 2;
        return /*#__PURE__*/_react.default.createElement("svg", {
          className: `indicator-${ring}`,
          viewBox: "0 0 48 48"
        }, /*#__PURE__*/_react.default.createElement("circle", {
          cx: "24px",
          cy: "21px" // react-spectrum version of coachmark indicator is not exactly at the center, moving the indicator 3px above
          ,
          stroke: `${borderColor}`,
          r: `${size[ring] * ringRadius}`,
          strokeOpacity: this.getOpacity(size[ring]),
          strokeWidth: `${size[ring] * borderSize}`,
          fill: "transparent"
        }));
      });
    };

    this.animate = () => {
      this.animId = requestAnimationFrame(() => {
        let {
          size
        } = this.state;

        for (var ring in size) {
          size[ring] = size[ring] + 1 / (this.animationTime / 1000 * 60);

          if (size[ring] > 2.0) {
            size[ring] = 1;
          }
        }

        this.setState({
          size
        });
        this.animate();
      });
    };

    this.state = {
      style: {
        position: 'relative'
      },
      // calculating initial positions of size (ring scale) on the basis of the animation delay factor
      // ANIMATION_DELAY_1: -1500, ANIMATION_DELAY_1: -1980, ANIMATION_DELAY_3: -3000
      size: {
        'ring-1': 1.5,
        'ring-2': 1.34,
        'ring-3': 1
      }
    };
    this.indicatorRef = null;
    this.debouncedResizeUpdate = null;
    this.defaultGenome = _dna.default.elements['light']['medium'].coachmark['default'];
    this.animationTime = parseInt(this.defaultGenome.dimensions['animation-indicator-ring-duration'], 10);
    this.opacityAtMidAnimation = parseFloat(this.defaultGenome.dimensions['animation-indicator-keyframe-50-opacity']);
    this.animate = this.animate.bind(this);
    this.getOpacity = this.getOpacity.bind(this);
  }

  resizeListener() {
    if (!this.debouncedResizeUpdate) {
      this.debouncedResizeUpdate = setTimeout(() => {
        this.updateTargetNode();
        this.debouncedResizeUpdate = null;

        if (this.props.resizeEventHandler) {
          this.props.resizeEventHandler();
        }
      }, 50);
    }
  }

  calculateDOMLocation(targetNode, scrollUpdate = false) {
    let {
      x,
      y,
      width,
      height
    } = targetNode.getBoundingClientRect();
    const {
      coachmarkPlacement
    } = this.props;

    if (this.indicatorRef) {
      let {
        height: indicatorDiameter
      } = this.indicatorRef.getBoundingClientRect();
      indicatorDiameter += _CoachMark.default.INDICATOR_OFFSET;
      let xOffset = width / 2 - indicatorDiameter / 2;

      if (coachmarkPlacement === 'left') {
        xOffset = 0;
      } else if (coachmarkPlacement === 'right') {
        xOffset = width - indicatorDiameter;
      }

      var visibility = scrollUpdate && !(0, _ScrollManager.isNodeFullyVisible)(targetNode) ? 'hidden' : 'visible';
      this.setState({
        style: {
          position: 'absolute',
          top: y + height / 2 - indicatorDiameter / 2,
          left: x + xOffset,
          visibility: visibility
        },
        scrollUpdate: scrollUpdate
      });
    }
  }

  componentDidMount() {
    var _this = this;

    return _asyncToGenerator(function* () {
      _this.tryAttachToDOM();

      _this.animate();

      window.addEventListener('resize', _this.resizeListener);

      _this.listenToScrollParents();
    })();
  }

  componentWillUnmount() {
    window.removeEventListener('resize', this.resizeListener);
    this.removeListenersFromScrollParents();
    this.clearDebouncedResizeUpdateInterval();
    this.clearAttachInterval();
    cancelAnimationFrame(this.animId);
  }

  listenToScrollParents() {
    this._scrollParents = (0, _ScrollManager.getScrollParents)(document.querySelector(this.props.selector));

    for (let node of this._scrollParents) {
      node.addEventListener('scroll', this.scroll, false);
    }
  }

  scroll() {
    this.updateTargetNode(true);
  }

  removeListenersFromScrollParents() {
    if (this._scrollParents) {
      for (let node of this._scrollParents) {
        node.removeEventListener('scroll', this.scroll, false);
      }

      this._scrollParents = null;
    }
  }

  updateTargetNode(scrollUpdate = false) {
    if (this.indicatorRef) {
      let targetNode = document.querySelector(this.props.selector);

      if (targetNode) {
        this.calculateDOMLocation(targetNode, scrollUpdate);
      }

      return targetNode;
    }

    return null;
  }

  componentDidUpdate(prevProps, prevState) {
    if (prevProps.selector !== this.props.selector) {
      this.tryAttachToDOM();
    } // After the style attribute of coachmarkIndicator is updated, uxp takes around ~50ms to update the boundingClientRect of it and this value is used in overlay positioning hence we need to add delay here.


    if (prevState.style.top !== this.state.style.top || prevState.style.left !== this.state.style.left) {
      setTimeout(() => {
        this.props.onPositioned(this.state.style.visibility === 'visible', this.state.scrollUpdate);
      }, 100);
    }
  } // linear pulse animation in time frame 3000 ms
  // size varies from 1 to 2
  // opacity varies from 0 to 0.6, first increases till 0.6 and then goes down to 0 again in 3000ms


  render() {
    let _this$props = this.props,
        {
      quiet,
      onClick,
      visible
    } = _this$props,
        otherProps = _objectWithoutProperties(_this$props, _excluded);

    delete otherProps.coachmarkPlacement;
    delete otherProps.resizeEventHandler;
    let {
      style
    } = this.state;
    return /*#__PURE__*/_react.default.createElement("div", _extends({
      className: (0, _classnames.default)('spectrum-CoachMarkIndicator', {
        'spectrum-CoachMarkIndicator--quiet': quiet,
        'hidden': !visible
      }),
      role: "presentation"
    }, otherProps, {
      onClick: onClick,
      ref: this.setReference,
      style: style
    }), this.renderIndicatorRing('ring-1'), this.renderIndicatorRing('ring-2'), this.renderIndicatorRing('ring-3'));
  }

}) || _class;

exports.default = UxpCoachMarkIndicator;

/***/ }),

/***/ "xfxO":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


exports.__esModule = true;
exports.classNamesShape = exports.timeoutsShape = void 0;

var _propTypes = _interopRequireDefault(__webpack_require__("17x9"));

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var timeoutsShape =  false ? undefined : null;
exports.timeoutsShape = timeoutsShape;
var classNamesShape =  false ? undefined : null;
exports.classNamesShape = classNamesShape;

/***/ }),

/***/ "xhNM":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


exports.__esModule = true;
exports.default = isOverflowing;

var _isWindow = __webpack_require__("8Y+z");

var _isWindow2 = _interopRequireDefault(_isWindow);

var _ownerDocument = __webpack_require__("o43f");

var _ownerDocument2 = _interopRequireDefault(_ownerDocument);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function isBody(node) {
  return node && node.tagName.toLowerCase() === 'body';
}

function bodyIsOverflowing(node) {
  var doc = (0, _ownerDocument2.default)(node);
  var win = (0, _isWindow2.default)(doc);
  var fullWidth = win.innerWidth; // Support: ie8, no innerWidth

  if (!fullWidth) {
    var documentElementRect = doc.documentElement.getBoundingClientRect();
    fullWidth = documentElementRect.right - Math.abs(documentElementRect.left);
  }

  return doc.body.clientWidth < fullWidth;
}

function isOverflowing(container) {
  var win = (0, _isWindow2.default)(container);
  return win || isBody(container) ? bodyIsOverflowing(container) : container.scrollHeight > container.clientHeight;
}

module.exports = exports['default'];

/***/ }),

/***/ "xiyt":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var _components_Dialog__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("dKUG");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var react_intl__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("VIzJ");
/* harmony import */ var _styles_Dialog_css__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("SFhd");
/* harmony import */ var _styles_Dialog_css__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_styles_Dialog_css__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _urls__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("/YLX");





class FileDeletedWarningDialog extends react__WEBPACK_IMPORTED_MODULE_1__["Component"] {
    render() {
        const { app, op } = this.props;
        const spacesDeleteViewLink = Object(_urls__WEBPACK_IMPORTED_MODULE_4__[/* localizedGoUrl */ "j"])(_urls__WEBPACK_IMPORTED_MODULE_4__[/* SPACE_DELETE_VIEW */ "e"], app.intl.appLanguage || 'en');
        return (react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_components_Dialog__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"], { className: _styles_Dialog_css__WEBPACK_IMPORTED_MODULE_3___default.a.fileDeletedDialog, onCancel: () => {
                app.projectsClient._hideModal();
            }, variant: 'error', confirmLabel: app.intl.formatMessage({ id: 'button.goToDeleted' }), cancelLabel: app.intl.formatMessage({ id: 'button.close' }), onConfirm: () => Object(_urls__WEBPACK_IMPORTED_MODULE_4__[/* openExternalLink */ "k"])(spacesDeleteViewLink, true), title: react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_2__[/* FormattedMessage */ "c"], { id: "file.deleted.error.heading", values: {
                    operation: op,
                } }) }, op === 'rename' ? (react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_2__[/* FormattedMessage */ "c"], { id: "file.deleted.rename.error.description" })) : (react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(react_intl__WEBPACK_IMPORTED_MODULE_2__[/* FormattedMessage */ "c"], { id: "file.deleted.error.description", values: {
                operation: op,
            } }))));
    }
}
/* harmony default export */ __webpack_exports__["a"] = (Object(react_intl__WEBPACK_IMPORTED_MODULE_2__[/* injectIntl */ "g"])(FileDeletedWarningDialog));


/***/ }),

/***/ "xjsA":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(global) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return DocumentStore; });
/* unused harmony export UXOpNameForTests */
/* unused harmony export NGLAuthenticationStateForTests */
/* harmony import */ var _ccx_public_acpl_model_mobx_ACPLTypes__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("x2z8");
/* harmony import */ var _ccx_public_acpl_model_mobx_ACPLTypes__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_ccx_public_acpl_model_mobx_ACPLTypes__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _ccx_public_acpl_model_uxp_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("XQlG");
/* harmony import */ var _ccx_public_shared_asset_model_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("m4Z2");
/* harmony import */ var _ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("iMIL");
/* harmony import */ var _ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var lodash_throttle__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("DzJC");
/* harmony import */ var lodash_throttle__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(lodash_throttle__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("2vnA");
/* harmony import */ var _components_GridView__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("q/Z0");
/* harmony import */ var _stores_AssetModel_SAMAssetModel__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("4Cys");
/* harmony import */ var _types_CDOOperationResponse__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("UwQE");
/* harmony import */ var _types_IAssetModel__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__("avlf");
/* harmony import */ var _types_IAssetModel__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_types_IAssetModel__WEBPACK_IMPORTED_MODULE_9__);
/* harmony import */ var _types_ICallbacks__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__("szP4");
/* harmony import */ var _types_ICallbacks__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(_types_ICallbacks__WEBPACK_IMPORTED_MODULE_10__);
/* harmony import */ var _types_IOnAnalyticsEvent__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__("ieUK");
/* harmony import */ var _types_IOnAnalyticsEvent__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(_types_IOnAnalyticsEvent__WEBPACK_IMPORTED_MODULE_11__);
/* harmony import */ var _types_SyncErrorResolutionFailureType__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__("sBaD");
/* harmony import */ var _utils_CDOMetrics__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__("0zmA");
/* harmony import */ var _utils_constants__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__("a375");
/* harmony import */ var _utils_derive_parent_path__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__("gFix");
/* harmony import */ var _utils_Logger__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__("lmMR");
/* harmony import */ var _utils_metrics__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__("jaHz");
/* harmony import */ var _utils_normalize_path__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__("7L8R");
/* harmony import */ var _utils_retry__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__("ABvp");
/* harmony import */ var _utils_sleep__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__("4CRX");
/* harmony import */ var _utils_storage__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__("OB0k");
/* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__("+Ots");
/* harmony import */ var _BatchState__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__("XRuF");
/* harmony import */ var _Collection_ACPFetchFolderCollection__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__("7N/v");
/* harmony import */ var _Collection_AssetCollection__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__("Q5CW");
/* harmony import */ var _Collection_SAMFolderCollection__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__("m9PL");
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__("C0qj");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _constants__WEBPACK_IMPORTED_MODULE_27__["c"]; });

/* harmony import */ var _QuotaStore__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__("8A/5");
/* harmony import */ var _SWYCollection__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__("FIHJ");
/* harmony import */ var _types_IHostProductData__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__("zOc0");
/* harmony import */ var _types_IHostProductData__WEBPACK_IMPORTED_MODULE_30___default = /*#__PURE__*/__webpack_require__.n(_types_IHostProductData__WEBPACK_IMPORTED_MODULE_30__);
/* harmony import */ var _types_IIMSData__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__("9oP/");
/* harmony import */ var _stores_AssetModel_ACPFetchAssetModel__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__("lnG/");
/* harmony import */ var _Collection_SAMSourceProvider__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__("Mz2I");
/* harmony import */ var _utils_sam_utils__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__("O7FO");
/* harmony import */ var _Collection_SAMSourceProviderCollection__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__("DQ2B");
/* harmony import */ var _AssetModel_ACPLAssetPlaceholder__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__("RHgb");
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
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;
};
var __metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27;





































/**
 * Some operations have different user actions, but use the same ACP operation (e.g. move and rename are different
 * user actions, but both use OpType.MOVE). Some user actions do not map to any OpType. Use this enum to identify the
 * user gesture that initiated it so proper metrics and user messaging can be done.
 */
var UXOpName;
(function (UXOpName) {
    UXOpName["ARCHIVE"] = "archive";
    UXOpName["EXPORT"] = "export";
    UXOpName["MOVE"] = "move";
    UXOpName["DUPLICATE"] = "duplicate";
    UXOpName["PERM_DELETE"] = "permdelete";
    UXOpName["RENAME"] = "rename";
    UXOpName["UNARCHIVE"] = "unarchive";
    UXOpName["USER_PIN"] = "user_pin";
    UXOpName["USER_UNPIN"] = "user_unpin";
    UXOpName["CREATE_NEW_FOLDER"] = "create_new_folder";
    UXOpName["RESOLVE_SYNC_ERROR"] = "resolve_sync_error";
})(UXOpName || (UXOpName = {}));
var NGLAuthenticationState;
(function (NGLAuthenticationState) {
    NGLAuthenticationState["LoggedIn"] = "logged_in";
    NGLAuthenticationState["LoggedOut"] = "logged_out";
})(NGLAuthenticationState || (NGLAuthenticationState = {}));
/**
 * When true, load renditions when a doc is mounted. Otherwise, load as soon as they're added to the store.
 */
const LAZY_FETCH_RENDITIONS = true;
const getActiveSortState = () => Object(_utils_storage__WEBPACK_IMPORTED_MODULE_21__["getStorage"])(_utils_storage__WEBPACK_IMPORTED_MODULE_21__["LOCAL_STORAGE_KEY"].SORT_ORDER) || _constants__WEBPACK_IMPORTED_MODULE_27__[/* UXSortBy */ "t"].modifiedDate;
const getActiveSortDirectionState = () => Object(_utils_storage__WEBPACK_IMPORTED_MODULE_21__["getStorage"])(_utils_storage__WEBPACK_IMPORTED_MODULE_21__["LOCAL_STORAGE_KEY"].SORT_DIR) || _constants__WEBPACK_IMPORTED_MODULE_27__[/* UXSortDir */ "w"].desc;
const MAX_SIMULTANEOUS_OPERATIONS = 5;
const PER_BATCH_DELAY = 100;
const DELAY_BEFORE_OFFLINE_FETCH = 500;
const MAX_IN_FLIGHT_RENDITIONS = 15;
const MIN_REFRESH_INTERVAL = 1000;
const defaultGetErrorCategory = () => '';
class DocumentStore {
    constructor(config) {
        this.currentPath = _utils_constants__WEBPACK_IMPORTED_MODULE_14__[/* ROOT_FOLDER_PATH */ "q"];
        this.assetOpState = _constants__WEBPACK_IMPORTED_MODULE_27__[/* ProcessingState */ "n"].Idle;
        this.activeSort = getActiveSortState();
        this.activeSortDirection = getActiveSortDirectionState();
        this.activeSharedWithYouSort = _constants__WEBPACK_IMPORTED_MODULE_27__[/* UXSortBy */ "t"].shareDate;
        this.activeSharedWithYouSortDirection = _constants__WEBPACK_IMPORTED_MODULE_27__[/* UXSortDir */ "w"].desc;
        this.enableCloudFolders = false;
        this.enableAssetRef = false;
        this.enableSAM = false;
        this.enableActionUndo = false;
        this.hasSeenCdoOnboardBanner = false;
        this.batchState = new _BatchState__WEBPACK_IMPORTED_MODULE_23__[/* default */ "a"]({ opName: '', batchSize: 1 });
        this.alwaysDisableToasts = false;
        this.temporarilyDisableToasts = false;
        this.refreshOnViewChange = false;
        this.isUsingACPL = true;
        this.enablePerformanceMetrics = false;
        this.cardSize = _components_GridView__WEBPACK_IMPORTED_MODULE_6__[/* CardSize */ "a"].Large;
        this.didSAMInitFail = false;
        this.folderCollections = new Map();
        this.fetchAuthToken = async () => '';
        this.onAnalyticsEvent = () => { };
        this.documentFilter = [];
        this.isRenamingCurrentPath = false;
        this.suspendRefresh = false;
        this.logger = new _utils_Logger__WEBPACK_IMPORTED_MODULE_16__[/* Logger */ "a"](this.constructor.name);
        this.openToast = this.defaultOpenToast;
        this.inFlightItems = new Set();
        this.pendingRenditionFetch = new Set();
        this.firstReady = false;
        this.usingDiscardedSource = false;
        /**
         * NOTE: ACPL notification passes an object that is difficult to inspect. Using destructuring here to
         *       document all the fields that are available, even though not all are used.
         *
         *  Also see https://wiki.corp.adobe.com/display/ccexperience/ACPL+Asset+Change+Notification+Cheat+Sheet
         *
         * This fires before syncing is complete for all ops except permanently delete
         *
         * @param changeOperation {ChageOperation} numeric representation of the operation
         * @param cloudAssetId {String}
         * @param localAssetId {String}
         * @param assetPath {String}
         * @param assetChangeLocation {Number} ??
         * @param assetDestinationPath {String} for move/rename, the new path
         * @param asset_type {String} ??
         * @param elementType {String} "AssetChangeNotification"
         * @param id {String} ??
         * @param isAssetFork {Number}
         * @param links {RelLinks[]} Array of formatted data that is mostly duplicate of the above
         * @param notificationType {Number} ??
         * @param unknownProperties {Object} ??
         */
        this.onAssetChange = ({ changeOperation, cloudAssetId, localAssetId, assetPath, assetChangeLocation, assetDestinationPath, asset_type, // eslint-disable-line camelcase
        elementType, id, isAssetFork, links, notificationType, unknownProperties, }) => {
            this.logger.debug('onAssetChange changeOperation %d, assetPath %s', changeOperation, assetPath, {
                cloudAssetId,
                localAssetId,
                assetChangeLocation,
                assetDestinationPath,
                asset_type,
                elementType,
                id,
                isAssetFork,
                links,
                notificationType,
                unknownProperties,
            });
            // This isn't a very good way to test for folders, but it's all we have
            const FOLDER_REGEX = /^[^.]+$/;
            // normalizePath will convert falsy value to root folder, which we don't want:
            // for assetPath, empty path probably means it's a SWY document; for assetDestinationPath
            // empty path probably means that it's not a move operation.
            const normalAssetPath = assetPath ? Object(_utils_normalize_path__WEBPACK_IMPORTED_MODULE_18__[/* default */ "a"])(assetPath) : assetPath;
            const normalAssetDestinationPath = assetDestinationPath
                ? Object(_utils_normalize_path__WEBPACK_IMPORTED_MODULE_18__[/* default */ "a"])(assetDestinationPath)
                : assetDestinationPath;
            // For many operations on an file/folder, there is a redundant UPDATE notification for its
            // parent folder, so we try to ignore it. Otherwise, we unnecessarily mark the parent and
            // grandparent folder as dirty. This regex is not perfect, as folders can contain dot in the
            // name, but if one slips through, all that happens is we unnecessarily mark the grandparent
            // as dirty. If a file without an extension has its content changed, nothing will be marked
            // dirty. ACPL will fix this in a future release, or this logic will be replaced by the
            // shared C++ model. In the meantime, customers can't have files without extensions.
            if (changeOperation === _constants__WEBPACK_IMPORTED_MODULE_27__[/* AssetChangeOperation */ "c"].UPDATE && FOLDER_REGEX.test(normalAssetPath)) {
                this.logger.debug('...UPDATE for a parent folder, which is redundant, so ignore it');
                return;
            }
            let shouldRefresh = false;
            // Try to locate the parent folder. If it doesn't exist, or we haven't seen it, then there's no need
            // to mark it dirty.
            const parentFolder = this.getFolder(Object(_utils_derive_parent_path__WEBPACK_IMPORTED_MODULE_15__[/* default */ "a"])(normalAssetPath));
            // For move/rename, there will be an assetDestinationPath with the new path
            const destinationFolder = this.getFolder(Object(_utils_derive_parent_path__WEBPACK_IMPORTED_MODULE_15__[/* default */ "a"])(normalAssetDestinationPath));
            // Note: ADD fires when opening a document causes it to be cached by ACPL. The only way to tell is
            // if it has both localAssetId and cloudAssetId. This is the only way we can tell when something is added to
            // the cache. There does not appear to be any event for when an item is ejected from the cache.
            if (changeOperation === _constants__WEBPACK_IMPORTED_MODULE_27__[/* AssetChangeOperation */ "c"].ADD && parentFolder) {
                this.logger.debug('...mark parent (%s) as dirty', parentFolder.path);
                parentFolder.setIsDirty();
                shouldRefresh = true;
            }
            // Note: UPDATE on a file will fire, sometimes twice, for MOVE, DELETE, RESTORE. This is in addition to
            // firing when the file content changes.
            if (changeOperation === _constants__WEBPACK_IMPORTED_MODULE_27__[/* AssetChangeOperation */ "c"].UPDATE && parentFolder) {
                this.logger.debug('...mark parent (%s) as dirty', parentFolder.path);
                parentFolder.setIsDirty();
                shouldRefresh = true;
            }
            // Restore/delete will affect the archived folder.
            // Note: DELETE is also perm delete when it is fired for items in the archive folder.
            if (changeOperation === _constants__WEBPACK_IMPORTED_MODULE_27__[/* AssetChangeOperation */ "c"].DELETE ||
                changeOperation === _constants__WEBPACK_IMPORTED_MODULE_27__[/* AssetChangeOperation */ "c"].RESTORE) {
                this.logger.debug('...mark archived folder as dirty');
                this.archivedFolderCollection.setIsDirty();
                shouldRefresh = true;
                // Parent folder will have the child removed (DELETE) or added (RESTORE)
                if (parentFolder) {
                    this.logger.debug('...mark parent (%s) as dirty', parentFolder.path);
                    parentFolder.setIsDirty();
                }
                // Remove collection if we have it
                const deletedFolder = this.getFolder(normalAssetPath);
                if (deletedFolder) {
                    this.logger.debug('...remove %s from folderCollections', normalAssetPath);
                    // Navigate to root if the deleted folder is the active one
                    if (this.currentPath === normalAssetPath) {
                        // Rather than updating `currentPath` and letting `refreshActiveCollections` do the
                        // refresh later, call `setCurrentPath` so it gets refreshed right away.
                        this.setCurrentPath(_utils_constants__WEBPACK_IMPORTED_MODULE_14__[/* ROOT_FOLDER_PATH */ "q"]);
                    }
                    this.folderCollections.delete(normalAssetPath);
                }
            }
            if (changeOperation === _constants__WEBPACK_IMPORTED_MODULE_27__[/* AssetChangeOperation */ "c"].PURGE && parentFolder) {
                this.logger.debug('...mark parent (%s) as dirty', parentFolder.path);
                parentFolder.setIsDirty();
                shouldRefresh = true;
            }
            if (changeOperation === _constants__WEBPACK_IMPORTED_MODULE_27__[/* AssetChangeOperation */ "c"].MOVE) {
                const existingCollection = this.getFolder(normalAssetPath);
                // check if we are in the updated collection
                if (existingCollection) {
                    this.logger.debug('...updating collection path from %s to %s', normalAssetPath, normalAssetDestinationPath);
                    this.folderCollections.delete(normalAssetPath);
                    if (normalAssetPath === this.currentPath) {
                        this.setCurrentPath(normalAssetDestinationPath);
                    }
                }
                if (parentFolder) {
                    this.logger.debug('...mark parent (%s) as dirty', parentFolder.path);
                    parentFolder.setIsDirty();
                    shouldRefresh = true;
                }
                if (destinationFolder) {
                    this.logger.debug('...mark destination (%s) as dirty', destinationFolder.path);
                    destinationFolder.setIsDirty();
                    shouldRefresh = true;
                }
            }
            // Local operations will trigger their own refresh, so don't refresh unless idle.
            // Also, when CDO/CDP is hidden (_suspendRefresh = true), don't refresh.
            if (shouldRefresh && this.assetOpState === _constants__WEBPACK_IMPORTED_MODULE_27__[/* ProcessingState */ "n"].Idle && !this.suspendRefresh) {
                this.refreshActiveCollections();
            }
        };
        this.updateNGLProfile = Object(mobx__WEBPACK_IMPORTED_MODULE_5__[/* flow */ "q"])(this._updateNGLProfile);
        this.refreshActiveCollections = lodash_throttle__WEBPACK_IMPORTED_MODULE_4___default()(() => {
            this.refreshActiveCollectionsImmediately();
        }, MIN_REFRESH_INTERVAL, { leading: false, trailing: true });
        this.restoreOp = (elements, afterOpCallback, metricLogger, correlationId, undoOp, isUndo) => this.assetOp({
            elements,
            opName: UXOpName.UNARCHIVE,
            removeOnComplete: true,
            operation: (correlationId, ele) => ele.restore(correlationId),
            afterOpCallback,
            metricLogger,
            correlationId,
            undoOp,
            isUndo,
        });
        this.archiveOp = (elements, afterOpCallback, metricLogger, correlationId, undoOp, isUndo) => this.assetOp({
            elements,
            opName: UXOpName.ARCHIVE,
            removeOnComplete: true,
            operation: (correlationId, ele) => ele.archive(correlationId),
            afterOpCallback,
            getErrorCategory: err => {
                // 41202 = ACPL_OTHER_APP_PENDING_UNCOMMITTED_CHANGES
                const isOtherAppUncommittedChanges = err.statusText.includes('41202');
                if (err.status === _constants__WEBPACK_IMPORTED_MODULE_27__[/* HTTPStatusCodes */ "k"].PreconditionFailed &&
                    isOtherAppUncommittedChanges) {
                    return 'otherAppUncommittedChanges';
                }
            },
            metricLogger,
            correlationId,
            undoOp,
            isUndo,
        });
        this.renameOp = (elements, parentPath, newName, oldTitle, afterOpCallback, onOpFail, metricLogger, correlationId, undoOp, isUndo) => this.assetOp({
            elements,
            opName: UXOpName.RENAME,
            operation: (correlationId, ele) => ele.rename(correlationId, newName, oldTitle, parentPath),
            afterOpCallback,
            afterOpFailCallback: onOpFail,
            getErrorCategory: err => {
                if (err.status === _constants__WEBPACK_IMPORTED_MODULE_27__[/* HTTPStatusCodes */ "k"].Conflict) {
                    return 'duplicateName';
                }
            },
            metricLogger,
            correlationId,
            undoOp,
            isUndo,
        });
        this.moveOp = async (elements, destinationAsset, afterOpCallback, metricLogger, correlationId, undoOp, isUndo) => {
            if (destinationAsset.isSpaceAsset) {
                const { cloudID: destCloudID } = destinationAsset;
                let destinationAssetModel;
                let elementParentAssetModel;
                await this.assetOp({
                    elements,
                    opName: UXOpName.MOVE,
                    removeOnComplete: true,
                    operation: async (correlationId, ele) => {
                        try {
                            if (!destinationAssetModel) {
                                destinationAssetModel =
                                    await this.samJSHostAssetContext.getAssetWithCloudID(destCloudID);
                            }
                            if (!elementParentAssetModel) {
                                elementParentAssetModel =
                                    await this.samJSHostAssetContext.getAssetWithRepoPath(`/${Object(_utils_normalize_path__WEBPACK_IMPORTED_MODULE_18__[/* default */ "a"])(Object(_utils_derive_parent_path__WEBPACK_IMPORTED_MODULE_15__[/* default */ "a"])(ele.path))}`);
                            }
                            const sourceAssetModel = await this.samJSHostAssetContext.getAssetWithCloudID(ele.cloudID);
                            const response = await this.samJSHostAssetContext.transfer(sourceAssetModel, destinationAssetModel);
                            return response;
                        }
                        catch (e) {
                            const cdoErrorResponse = await Object(_utils_sam_utils__WEBPACK_IMPORTED_MODULE_34__[/* convertSamJsPromiseErrorToResponse */ "a"])(e, 'DocumentStore.ATSMove');
                            throw cdoErrorResponse;
                        }
                    },
                    afterOpCallback,
                    getErrorCategory: (err, ele) => {
                        if (err.status === _constants__WEBPACK_IMPORTED_MODULE_27__[/* HTTPStatusCodes */ "k"].Conflict) {
                            return ele.isFolder ? 'duplicateFolderName' : 'duplicateDocName';
                        }
                    },
                    metricLogger,
                    correlationId,
                    undoOp: undefined,
                    isUndo,
                });
            }
            else {
                const newParentPath = destinationAsset.repoPath;
                await this.assetOp({
                    elements,
                    opName: UXOpName.MOVE,
                    removeOnComplete: true,
                    operation: async (correlationId, ele) => {
                        // TODO: refactor so that the target model is passed instead of the newParentPath
                        // https://jira.corp.adobe.com/browse/CCXCD-3984
                        if (this.enableSAM) {
                            const normalPath = `/${Object(_utils_normalize_path__WEBPACK_IMPORTED_MODULE_18__[/* default */ "a"])(newParentPath)}`; // SAM requires one leading slash
                            const newParent = await this.SAMAssetContext.getAssetWithRepoPath(normalPath);
                            return ele.move(correlationId, newParent);
                        }
                        return ele.move(correlationId, newParentPath);
                    },
                    afterOpCallback,
                    getErrorCategory: (err, ele) => {
                        if (err.status === _constants__WEBPACK_IMPORTED_MODULE_27__[/* HTTPStatusCodes */ "k"].Conflict) {
                            return ele.isFolder ? 'duplicateFolderName' : 'duplicateDocName';
                        }
                    },
                    metricLogger,
                    correlationId,
                    undoOp,
                    isUndo,
                });
            }
        };
        this.duplicateOp = (elements, parentPath, afterOpCallback, metricLogger, correlationId, nameSuffix) => this.assetOp({
            elements,
            opName: UXOpName.DUPLICATE,
            removeOnComplete: false,
            operation: (correlationId, ele) => ele.duplicate(correlationId, parentPath, nameSuffix),
            afterOpCallback,
            metricLogger,
            correlationId,
        });
        // TODO: The following two operations don't match the CloudDocumentClient methods.
        // They will need to be aligned before the feature is released
        // Jira: https://jira.corp.adobe.com/browse/CCXCD-2972
        this.pinOp = (elements, afterOpCallback, metricLogger, correlationId) => this.assetOp({
            elements,
            opName: UXOpName.USER_PIN,
            operation: (correlationId, ele) => ele.pin(correlationId),
            afterOpCallback,
            metricLogger,
            correlationId,
            runInBackground: true,
        });
        this.unPinOp = (elements, afterOpCallback, metricLogger, correlationId) => this.assetOp({
            elements,
            opName: UXOpName.USER_UNPIN,
            operation: (correlationId, ele) => ele.unpin(correlationId),
            afterOpCallback,
            metricLogger,
            correlationId,
            runInBackground: true,
        });
        this.deleteOp = (elements, afterOpCallback, metricLogger, correlationId) => this.assetOp({
            elements,
            opName: UXOpName.PERM_DELETE,
            removeOnComplete: true,
            operation: async (correlationId, ele) => ele.delete(correlationId),
            afterOpCallback,
            metricLogger,
            correlationId,
        });
        this.exportOp = (elements, destinationUri, metricLogger, correlationId) => this.assetOp({
            elements,
            opName: UXOpName.EXPORT,
            operation: (correlationId, ele) => ele.export(correlationId, destinationUri),
            runInBackground: true,
            metricLogger,
            correlationId,
        });
        this.addFolderOp = (elements, metricLogger, correlationId) => this.assetOp({
            elements,
            opName: UXOpName.CREATE_NEW_FOLDER,
            operation: async (correlationId, ele) => {
                // TODO: refactor so that `ele` is the parentFolder model, not a dummy model
                // https://jira.corp.adobe.com/browse/CCXCD-3984
                if (this.enableSAM) {
                    const normalPath = `/${Object(_utils_derive_parent_path__WEBPACK_IMPORTED_MODULE_15__[/* default */ "a"])(ele.path)}`; // SAM requires one leading slash
                    const samFolder = await this.SAMAssetContext.getAssetWithRepoPath(normalPath);
                    const parentFolder = _stores_AssetModel_SAMAssetModel__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].fromSamAsset(samFolder);
                    return parentFolder.createFolder(correlationId, ele.repoName);
                }
                return this.cloudDocumentsClient.createFolder(ele.path, _utils_metrics__WEBPACK_IMPORTED_MODULE_17__[/* default */ "i"].getCorrelationData(correlationId, ele));
            },
            getErrorCategory: err => {
                if (err.status === _constants__WEBPACK_IMPORTED_MODULE_27__[/* HTTPStatusCodes */ "k"].Conflict) {
                    return 'duplicateName';
                }
            },
            metricLogger,
            correlationId,
        });
        /**
         * Handles processing workflow for resolving a sync suspension error. It will
         * 1) create a duplicate, 2) purge the original from cache so it syncs from the cloud.
         *
         * If either steps fail, it will reject with a SyncErrorResolutionFailureType value.
         *
         * @param {ICDOAssetModel} element
         * @param {string} nameSuffix
         * @param {IAssetOpArgs["metricLogger"]} metricLogger
         * @param {string} correlationId
         * @returns Promise<void>
         */
        this.resolveSyncError = Object(mobx__WEBPACK_IMPORTED_MODULE_5__[/* flow */ "q"])(this._resolveSyncError);
        Object.assign(this, config);
        // nglAuthenticationState is set in tests.
        if ((_utils_utils__WEBPACK_IMPORTED_MODULE_22__[/* default */ "a"].usingUXP() || this.enableSAM) && !this.nglAuthenticationState) {
            // TODO: determine if we need to subscribe to NGL events at all
            // https://jira.corp.adobe.com/browse/CCXCD-4298
            // ===================
            // this.logger.debug('initClients() Subscribing to NGL event');
            // this._subscribeToNGLProfileChanged();
            // this.logger.debug('initClients() updating NGL profile');
            // this._updateNGLProfile();
            this.nglAuthenticationState = NGLAuthenticationState.LoggedIn;
            // ===================
        }
        this.setHasSeenCdoOnboardBanner(Object(_utils_storage__WEBPACK_IMPORTED_MODULE_21__["getStorage"])(_utils_storage__WEBPACK_IMPORTED_MODULE_21__["LOCAL_STORAGE_KEY"].SEEN_ONBOARD_CDO) === 'true');
    }
    static create(config) {
        return new DocumentStore(config);
    }
    setOpenToastFunc(fn) {
        this.openToast = fn;
    }
    setQuotaStore(quotaStore) {
        this.quotaStore = quotaStore;
    }
    get currentFolderCollection() {
        return this.folderCollections.get(this.currentPath);
    }
    get isCurrentFolderRoot() {
        return this.currentPath === _utils_constants__WEBPACK_IMPORTED_MODULE_14__[/* ROOT_FOLDER_PATH */ "q"];
    }
    get rootFolderCollection() {
        return this.folderCollections.get(_utils_constants__WEBPACK_IMPORTED_MODULE_14__[/* ROOT_FOLDER_PATH */ "q"]);
    }
    get archivedFolderCollection() {
        if (this.usingDiscardedSource) {
            return this.archiveCollection;
        }
        return this.folderCollections.get(_utils_constants__WEBPACK_IMPORTED_MODULE_14__[/* ARCHIVE_FOLDER_PATH */ "a"]);
    }
    get sharedWithYouCollection() {
        return this.swyCollection;
    }
    getAllNonSWYCollections() {
        const collections = Array.from(this.folderCollections.values());
        if (this.usingDiscardedSource) {
            collections.push(this.archiveCollection);
        }
        return collections;
    }
    /**
     * Error conditions where local listings will probably not succeed and shouldn't be attempted
     */
    get hasNotificationErrorStatus() {
        return this.didSAMInitFail || this.coreSyncIncompatible || this.coreSyncNotReachable;
    }
    /**
     * Error conditions where local listings will probably not succeed and shouldn't be attempted
     */
    get hasNonCoreSyncCloudNotificationErrorStatus() {
        var _a;
        return (this.didSAMInitFail ||
            this.nglAuthenticationState === NGLAuthenticationState.LoggedOut ||
            ((_a = this.quotaStore) === null || _a === void 0 ? void 0 : _a.quotaState) === _ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_3__["NotificationStatus"].CLOUD_STORAGE_DISABLED);
    }
    /**
     * Error conditions where cloud listings will probably not succeed and shouldn't be attempted
     */
    get hasCloudNotificationErrorStatus() {
        // NOTE: not including acplRegistrationState here, as ACPL de-registration can happen seconds before NGL
        // sign-out. Rather than showing "something went wrong" during this period, wait for some request to fail
        // to show it.
        return (this.hasNonCoreSyncCloudNotificationErrorStatus ||
            this.coreSyncIncompatible ||
            this.coreSyncNotReachable);
    }
    get coreSyncNotReachable() {
        return this.coreSyncState === _ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_3__["NotificationStatus"].CORESYNC_NOT_REACHABLE;
    }
    get coreSyncIncompatible() {
        return this.coreSyncState === _ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_3__["NotificationStatus"].CORESYNC_REACHABLE_NOT_COMPATIBLE;
    }
    get coreSyncOK() {
        return this.coreSyncState === _ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_3__["NotificationStatus"].CORESYNC_REACHABLE_AND_COMPATIBLE;
    }
    get coreSyncNotUsedOrOK() {
        return this.coreSyncState === undefined || this.coreSyncOK;
    }
    get coreSyncReachableNotCompatible() {
        return this.coreSyncState === _ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_3__["NotificationStatus"].CORESYNC_REACHABLE_NOT_COMPATIBLE;
    }
    get isOnline() {
        return this.connectionState === _ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_3__["NotificationStatus"].HAS_INTERNET_ACCESS;
    }
    get isClientInitialized() {
        var _a;
        const samReadyIfNeeded = !this.enableSAM ||
            (this.enableSAM && (Boolean(this.SAMAssetContext) || this.didSAMInitFail));
        if (_utils_utils__WEBPACK_IMPORTED_MODULE_22__[/* default */ "a"].usingUXP()) {
            // When ACPL has completed all of its startup steps, these states will be defined.
            // Does not include acplRegistrationState because the host will typically be responsible for
            // registering with ACPL.
            const ready = this.connectionState !== undefined &&
                this.coreSyncState !== undefined &&
                this.nglAuthenticationState !== undefined &&
                samReadyIfNeeded;
            if (ready && !this.firstReady) {
                this.firstReady = true;
                if (this.enablePerformanceMetrics) {
                    (_a = window === null || window === void 0 ? void 0 : window.performance) === null || _a === void 0 ? void 0 : _a.measure('cdo:isClientInitialized');
                }
            }
            return ready;
        }
        // For non-UXP clients: need connectionState and (sometimes) SAM.
        return this.connectionState !== undefined && samReadyIfNeeded;
    }
    /**
     * Returns true if the user is logged in, false if the user is logged out OR IF UNKNOWN
     */
    get isUserLoggedIn() {
        // Non-UXP clients (web, CCD) are expected to already be signed in before loading CDO, and will not show CDO
        // when signed out.
        if (!_utils_utils__WEBPACK_IMPORTED_MODULE_22__[/* default */ "a"].usingUXP()) {
            return true;
        }
        // Only rely on nglAuthenticationState for authentication. Host app should manage ACPL
        // registration and if that fails, we'll show an error after trying to fetch.
        return this.nglAuthenticationState === NGLAuthenticationState.LoggedIn;
    }
    /**
     * Returns true if the user is logged out OR IF UNKNOWN, returns false if the user is definitely logged in
     */
    get isUserLoggedOut() {
        // Non-UXP clients (web, CCD) are expected to already be signed in before loading CDO, and will not show CDO
        // when signed out.
        if (!_utils_utils__WEBPACK_IMPORTED_MODULE_22__[/* default */ "a"].usingUXP()) {
            return false;
        }
        return (this.nglAuthenticationState === undefined ||
            this.nglAuthenticationState === NGLAuthenticationState.LoggedOut);
    }
    get isFoldersEnabled() {
        return this.enableCloudFolders;
    }
    getFolder(path) {
        // normalizePath defaults to root folder, but getFolder should only return folders that exist
        if (!path) {
            return;
        }
        return this.folderCollections.get(Object(_utils_normalize_path__WEBPACK_IMPORTED_MODULE_18__[/* default */ "a"])(path));
    }
    setActiveSort(sort) {
        this.activeSort = sort;
        Object(_utils_storage__WEBPACK_IMPORTED_MODULE_21__["setStorage"])(_utils_storage__WEBPACK_IMPORTED_MODULE_21__["LOCAL_STORAGE_KEY"].SORT_ORDER, sort);
        this.getAllNonSWYCollections().forEach((collection) => collection.setSortBy(sort));
    }
    setActiveSortDirection(dir) {
        this.activeSortDirection = dir;
        Object(_utils_storage__WEBPACK_IMPORTED_MODULE_21__["setStorage"])(_utils_storage__WEBPACK_IMPORTED_MODULE_21__["LOCAL_STORAGE_KEY"].SORT_DIR, dir);
        this.getAllNonSWYCollections().forEach(collection => collection.setSortDir(dir));
    }
    setOnAnalyticsEvent(onAnalyticsEvent) {
        this.onAnalyticsEvent = onAnalyticsEvent;
    }
    setSharedWithYouActiveSort(sort) {
        this.activeSharedWithYouSort = sort;
        this.swyCollection.setSortBy(sort);
    }
    setSharedWithYouActiveSortDirection(dir) {
        this.activeSharedWithYouSortDirection = dir;
        this.swyCollection.setSortDir(dir);
    }
    closeToast() {
        this.toast = {
            closeable: false,
            message: '',
            show: false,
            values: {},
            variant: 'default',
            actionLabelMsgId: '',
            action: undefined,
        };
    }
    setAssetOpState(newState) {
        this.assetOpState = newState;
    }
    setHasSeenCdoOnboardBanner(seenBanner) {
        Object(_utils_storage__WEBPACK_IMPORTED_MODULE_21__["setStorage"])(_utils_storage__WEBPACK_IMPORTED_MODULE_21__["LOCAL_STORAGE_KEY"].SEEN_ONBOARD_CDO, seenBanner);
        this.hasSeenCdoOnboardBanner = seenBanner;
    }
    setTemporarilyDisableToasts(newToastState) {
        this.temporarilyDisableToasts = newToastState;
    }
    async setDocumentFilterOverride(mimeTypes) {
        this.documentFilterOverride = mimeTypes;
        // this can be called before initClients so wait for swyCollection before
        // applying filters.  Someday we should re-org initClients to apply existing
        // filter overrides by sharing code wiht updateFolderCollectionFilters.
        // This change was also done to make the cherry-pick cleaner
        await Object(mobx__WEBPACK_IMPORTED_MODULE_5__[/* when */ "I"])(() => this.swyCollection !== undefined);
        this.updateFolderCollectionFilters();
    }
    clearDocumentFilterOverride() {
        // undefined means revert to default filters from initialization
        this.documentFilterOverride = undefined;
        this.updateFolderCollectionFilters();
    }
    updateFolderCollectionFilters() {
        const types = this.documentFilterOverride || this.documentFilter;
        this.getAllNonSWYCollections().forEach((folder) => {
            folder.setTypes(types);
        });
        const swyTypes = this.documentFilterOverride || this.swyDocumentFilter;
        const swyLowerCaseTypes = swyTypes.map((x) => x.toLowerCase());
        if (this.shouldUseSamSwyCollection) {
            this.swyCollection.setTypes(swyTypes);
        }
        else {
            const swyCollection = this.swyCollection;
            // SWYCollection uses server-side filtering, so only refresh if the filter has changed
            if (swyCollection.documentFilter.join(',') !== swyLowerCaseTypes.join(',')) {
                swyCollection.documentFilter = swyLowerCaseTypes;
                swyCollection.clear(); // clear calls setIsDirty
                // only refresh immediately if SWY is the active collection
                if (this.activeCollection === this.swyCollection) {
                    this.fetchSharedWithYou();
                }
            }
        }
        if (this.usingDiscardedSource) {
            this.archiveCollection.setTypes(types);
        }
    }
    async isFolderEmpty(path) {
        if (this.enableSAM) {
            const normalPath = `/${Object(_utils_normalize_path__WEBPACK_IMPORTED_MODULE_18__[/* default */ "a"])(path)}`; // SAM requires one leading slash
            const folder = await this.SAMAssetContext.getAssetWithRepoPath(normalPath);
            const hasChildren = async (source) => {
                const list = source.getListWithTypes(_Collection_SAMSourceProvider__WEBPACK_IMPORTED_MODULE_33__[/* default */ "a"].OrderDirection.Ascending, _Collection_SAMSourceProvider__WEBPACK_IMPORTED_MODULE_33__[/* default */ "a"].OrderField.Name, []);
                list.load();
                await Object(mobx__WEBPACK_IMPORTED_MODULE_5__[/* when */ "I"])(() => list.status !== _Collection_SAMSourceProvider__WEBPACK_IMPORTED_MODULE_33__[/* default */ "a"].AssetListStatus.Loading &&
                    list.status !== _Collection_SAMSourceProvider__WEBPACK_IMPORTED_MODULE_33__[/* default */ "a"].AssetListStatus.NotStarted);
                if (list.status === _Collection_SAMSourceProvider__WEBPACK_IMPORTED_MODULE_33__[/* default */ "a"].AssetListStatus.HadLoaderErrors) {
                    throw new Error('Failed to retrieve children');
                }
                return list.items.length > 0;
            };
            const folderHasChildren = await hasChildren(folder.children);
            return !folderHasChildren;
        }
        const collection = await this.getOrCreateFolderCollection(path);
        await Object(mobx__WEBPACK_IMPORTED_MODULE_5__[/* when */ "I"])(() => collection.fetchState === _constants__WEBPACK_IMPORTED_MODULE_27__[/* ProcessingState */ "n"].Done ||
            collection.fetchState === _constants__WEBPACK_IMPORTED_MODULE_27__[/* ProcessingState */ "n"].Error ||
            collection.elements.length > 0);
        if (collection.fetchState === _constants__WEBPACK_IMPORTED_MODULE_27__[/* ProcessingState */ "n"].Error) {
            throw new Error('Failed to retrieve children');
        }
        return collection.elements.length === 0;
    }
    async getAssetModelByPath(path) {
        if (this.enableSAM) {
            if (!this.SAMAssetContext) {
                return null;
            }
            const normalPath = `/${Object(_utils_normalize_path__WEBPACK_IMPORTED_MODULE_18__[/* default */ "a"])(path)}`; // SAM requires one leading slash
            const asset = await this.SAMAssetContext.getAssetWithRepoPath(normalPath);
            const assetModel = _stores_AssetModel_SAMAssetModel__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].fromSamAsset(asset);
            return assetModel;
        }
        try {
            // only works on web, so assumes no more acp-fetch on UXP
            const data = await this.cloudDocumentsClient.getDocument(path);
            return new _stores_AssetModel_ACPFetchAssetModel__WEBPACK_IMPORTED_MODULE_32__[/* default */ "a"](data, this.cloudDocumentsClient, this.onAnalyticsEvent);
        }
        catch (e) {
            // folders throw an error.  Try SAM.js
            const asset = await this.samJSHostAssetContext.getAssetWithRepoPath(path);
            // dates do not convert, but I think no code cares and this will all
            // go away in favor of just using AdobeAsset everywhere instead of
            // BaseAssetModel subclasses.
            // @ts-ignore
            const placeHolder = new _AssetModel_ACPLAssetPlaceholder__WEBPACK_IMPORTED_MODULE_36__[/* default */ "a"](asset);
            const samAssetModel = _stores_AssetModel_SAMAssetModel__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"].fromSamAsset(placeHolder);
            return samAssetModel;
        }
    }
    /**
     * ! SAM-only !
     *
     * If provided a non-folder's assetId, will navigate to the path of the parent folder
     */
    async setCurrentPathByAssetId(assetId) {
        if (this.enableSAM) {
            try {
                const asset = await Object(_utils_sam_utils__WEBPACK_IMPORTED_MODULE_34__[/* getAssetModelWithUnknownAssetID */ "d"])(this.SAMAssetContext, assetId);
                const path = asset.isFolder ? asset.path : Object(_utils_derive_parent_path__WEBPACK_IMPORTED_MODULE_15__[/* default */ "a"])(asset.path);
                this.setCurrentPath(path, assetId);
            }
            catch (e) {
                this.logger.error(`Error routing to an asset: ${assetId}`, e);
            }
        }
    }
    async setCurrentPathAsync(path, cloudUri) {
        await Object(mobx__WEBPACK_IMPORTED_MODULE_5__[/* when */ "I"])(() => this.SAMAssetContext !== undefined);
        this.setCurrentPath(path, cloudUri);
    }
    setCurrentPath(path, cloudUri) {
        if (this.enableSAM && !this.SAMAssetContext) {
            // can happen when UAP is invoked and AssetContext is
            // delayed via waitForApplicationAssetContext
            this.setCurrentPathAsync(path, cloudUri);
            return;
        }
        // Only modify current collection, etc., when folder feature is on, so that setCurrentPath is safe to call
        // even when the feature is off. This reduces the number of places we need to test the feature flag.
        if (this.enableCloudFolders) {
            this.currentPath = Object(_utils_normalize_path__WEBPACK_IMPORTED_MODULE_18__[/* default */ "a"])(path);
            const collection = this.getOrCreateFolderCollection(path, cloudUri);
            collection.setSortAndDir({
                sortBy: this.activeSort,
                sortDir: this.activeSortDirection,
            });
            this.setActiveCollection(collection, this.fetchCurrentFolderContents);
            this.fetchCurrentFolderContents();
        }
    }
    async fetchCurrentFolderContents() {
        await this.waitForInitialization('fetchCurrentFolderContents');
        this.logger.debug('fetchCurrentFolderContents');
        return this.fetchFolderContents(this.currentPath);
    }
    async fetchArchived() {
        await this.waitForInitialization('fetchArchived');
        this.logger.debug('fetchArchived');
        if (this.usingDiscardedSource) {
            const sortBy = this.activeSort;
            const sortDir = this.activeSortDirection;
            return this.archiveCollection.fetchElements({
                sortBy,
                sortDir,
                excludeCloud: !this.isOnline,
            });
        }
        return this.fetchFolderContents(_utils_constants__WEBPACK_IMPORTED_MODULE_14__[/* ARCHIVE_FOLDER_PATH */ "a"]);
    }
    async fetchFolderContents(path, cloudUri) {
        const sortBy = this.activeSort;
        const sortDir = this.activeSortDirection;
        await this.waitForInitialization('fetchFolderContents');
        const collection = this.getOrCreateFolderCollection(path, cloudUri);
        return collection.fetchElements({ sortBy, sortDir, excludeCloud: !this.isOnline });
    }
    getOrCreateFolderCollection(path, cloudUri) {
        path = Object(_utils_normalize_path__WEBPACK_IMPORTED_MODULE_18__[/* default */ "a"])(path); // eslint-disable-line no-param-reassign
        let collection = this.folderCollections.get(path);
        const createFolder = () => {
            if (this.enableSAM) {
                collection = new _Collection_SAMFolderCollection__WEBPACK_IMPORTED_MODULE_26__[/* default */ "a"]({
                    repoPath: `/${path}`,
                    enablePerformanceMetrics: this.enablePerformanceMetrics,
                    // in SAM, cloudUri is actually cloudID
                    cloudID: cloudUri,
                }, {
                    ...this.collectionContext,
                    SAMAssetContext: this.SAMAssetContext,
                    waitForAuthInitialization: async (caller) => this.waitForInitialization(caller),
                    hasNonCoreSyncCloudNotificationErrorStatus: () => this.hasNonCoreSyncCloudNotificationErrorStatus,
                });
                collection.setTypes(this.documentFilterOverride || this.documentFilter);
                Object(mobx__WEBPACK_IMPORTED_MODULE_5__[/* observe */ "A"])(collection, 'path', _path => this.onCollectionPathChange(_path), true);
            }
            else {
                collection = new _Collection_ACPFetchFolderCollection__WEBPACK_IMPORTED_MODULE_24__[/* default */ "a"]({
                    path,
                    cloudUri,
                    types: this.documentFilterOverride || this.documentFilter,
                    enablePerformanceMetrics: this.enablePerformanceMetrics,
                    fetchWhenStale: this.refreshOnViewChange,
                    mergePreservesCloudOnlyCachedItems: path === _utils_constants__WEBPACK_IMPORTED_MODULE_14__[/* ARCHIVE_FOLDER_PATH */ "a"],
                }, {
                    ...this.collectionContext,
                    cloudDocumentsClient: this.cloudDocumentsClient,
                });
            }
            this.folderCollections.set(path, collection);
            return collection;
        };
        if (!collection) {
            collection = createFolder();
        }
        else if (cloudUri && collection && collection.cloudUri !== cloudUri) {
            // If the cloudUri changes for a path, it's a different folder with the same path.
            // Remove the old collection and its children.
            this.logger.debug('cloudUri changed from %s to %s for %s', collection.cloudUri, cloudUri, path);
            [...this.folderCollections.keys()].forEach(existingPath => {
                if (existingPath === path || existingPath.startsWith(`${path}/`)) {
                    this.folderCollections.delete(existingPath);
                    this.logger.debug('...removed %s', existingPath);
                }
            });
            collection = createFolder();
        }
        return collection;
    }
    async isFolderAvailable(cloudUri, path) {
        if (!this.enableSAM) {
            throw new Error('Use isFolderAvailableOnline() only if SAM enabled');
        }
        const normalizedInPath = Object(_utils_normalize_path__WEBPACK_IMPORTED_MODULE_18__[/* default */ "a"])(path);
        if (this.folderCollections.has(normalizedInPath)) {
            const collection = this.folderCollections.get(normalizedInPath);
            const modelUri = collection.assetModel.cloudUri;
            if (cloudUri !== modelUri) {
                // some other asset has replaced the original asset at the same path
                return false;
            }
            return true;
        }
        let folder;
        try {
            const samPath = `/${normalizedInPath}`; // SAM requires one leading slash
            folder = await this.SAMAssetContext.getAssetWithRepoPath(samPath);
            if (folder) {
                const { cloudID } = folder;
                if (cloudID !== cloudUri) {
                    // some other asset has replaced the original asset at path input
                    return false;
                }
            }
        }
        catch (err) {
            // SAMAssetContext.ensureAssetWithPath() can throw a number of errors
        }
        if (!folder) {
            // This method is supposed to used only in online condition. If folder doesn't
            // exist at this point, it must have been renamed, moved, deleted, archived
            return false;
        }
        return true;
    }
    async isFileAvailable(cloudUri, path, fileName) {
        if (!this.enableSAM) {
            throw new Error('Use isFileAvailable only if SAM enabled');
        }
        const normalizedInPath = Object(_utils_normalize_path__WEBPACK_IMPORTED_MODULE_18__[/* default */ "a"])(path);
        let file;
        try {
            const samPath = `/${normalizedInPath}/${fileName}`; // SAM requires one leading slash
            file = await this.SAMAssetContext.getAssetWithRepoPath(samPath);
            if (file) {
                const { cloudID } = file;
                if (cloudID !== cloudUri) {
                    // some other asset has replaced the original asset at path input
                    return false;
                }
            }
        }
        catch (err) {
            // SAMAssetContext.ensureAssetWithPath() can throw a number of errors
        }
        if (!file) {
            // This method is supposed to used only in online condition. If folder doesn't
            // exist at this point, it must have been renamed, moved, deleted, archived
            return false;
        }
        return true;
    }
    renameCurrentFolder(newName, onFail, metricLogger, correlationId) {
        // TODO: Utilize this flag for non-blocking progress in CDOView
        // https://jira.corp.adobe.com/browse/CCXCD-1875
        this.setIsRenamingCurrentPath(true);
        const model = this.currentFolderCollection.assetModel;
        const parentPath = Object(_utils_derive_parent_path__WEBPACK_IMPORTED_MODULE_15__[/* default */ "a"])(model.path);
        // Navigate to new path on success
        const afterOpCallback = () => {
            this.setCurrentPath(`${parentPath}/${newName}`, model.cloudUri);
        };
        return this.renameOp([model], parentPath, newName, model.title, afterOpCallback, onFail, metricLogger, correlationId).finally(() => {
            this.setIsRenamingCurrentPath(false);
        });
    }
    setIsRenamingCurrentPath(isInProgress) {
        this.isRenamingCurrentPath = isInProgress;
    }
    // @protected -- should only be set by CDOView so that DocumentStore can refresh only the collections
    // that are being viewed.
    setActiveCollection(collection, fetchMethod) {
        this.activeCollection = collection;
        this.activeCollectionFetchMethod = fetchMethod;
    }
    // @protected -- should only be set by CDOProvider.
    setSuspendRefresh(suspendRefresh) {
        const shouldRefreshNow = this.suspendRefresh && !suspendRefresh;
        this.suspendRefresh = suspendRefresh;
        if (shouldRefreshNow) {
            this.logger.debug('suspendRefresh now OFF, refreshing now...');
            this.refreshActiveCollectionsImmediately();
        }
    }
    setCDOMetrics(cdoMetrics) {
        this.cdoMetrics = cdoMetrics;
        this.logger.debug('DocumentStore setCDOMetrics');
    }
    /**
     * Use docStore.openToast(), this is the default implementation for it which can be
     * overridden.
     */
    defaultOpenToast({ message, variant = 'default', values = {}, delay = variant === 'success' ? _constants__WEBPACK_IMPORTED_MODULE_27__[/* TOAST_DEFAULT_DELAY */ "q"] : _constants__WEBPACK_IMPORTED_MODULE_27__[/* TOAST_ERROR_DELAY */ "r"], closeable = true, action = undefined, actionLabelMsgId = undefined, }) {
        this.toast = {
            show: true,
            message,
            variant,
            values,
            closeable,
            actionLabelMsgId,
            action,
        };
        if (delay) {
            Object(_utils_sleep__WEBPACK_IMPORTED_MODULE_20__[/* default */ "a"])(delay).then(() => this.closeToast());
        }
    }
    onNotificationStatusChange(status) {
        var _a, _b;
        this.logger.debug('DocumentStore.onNotificationStatusChange', status);
        const wasInitialized = this.isClientInitialized;
        const wasOnline = this.isOnline;
        const wasntRegistered = this.acplRegistrationState === _ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_3__["NotificationStatus"].ACPL_USER_NOT_REGISTERED;
        if (_constants__WEBPACK_IMPORTED_MODULE_27__[/* QUOTA_STATES */ "o"].includes(status)) {
            return;
        }
        let changedStatus = false;
        if (_constants__WEBPACK_IMPORTED_MODULE_27__[/* CONNECTION_STATES */ "f"].includes(status) && this.connectionState !== status) {
            this.connectionState = status;
            changedStatus = true;
        }
        else if (_constants__WEBPACK_IMPORTED_MODULE_27__[/* ACPL_REGISTRATION_STATES */ "a"].includes(status) &&
            this.acplRegistrationState !== status) {
            this.acplRegistrationState = status;
            changedStatus = true;
        }
        else if (_constants__WEBPACK_IMPORTED_MODULE_27__[/* CORESYNC_STATES */ "g"].includes(status) && this.coreSyncState !== status) {
            this.coreSyncState = status;
            changedStatus = true;
        }
        // While ACPL will fire notifications that were missed while offline, if there were no notifications, and
        // some collections were only loaded when offline, those collections will be missing online content.
        // Mark all collections dirty and refresh so the missing online content will be picked up.
        // Don't treat initialization complete as transition from offline to online.
        // Also mark collections ditry and refresh if going from user not registered to registered
        if (wasInitialized &&
            ((!wasOnline && this.isOnline) ||
                (wasntRegistered &&
                    this.acplRegistrationState === _ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_3__["NotificationStatus"].ACPL_USER_REGISTERED))) {
            this.logger.debug('...switching from offline to online');
            this.markAllCollectionsDirty();
            // also mark SWYCollection dirty if it exists.
            if (this.swyCollection) {
                this.swyCollection.setIsDirty();
            }
            this.refreshActiveCollectionsImmediately();
            this.fetchAllFailedRendition();
        }
        // If ACPL goes offline while fetching, it'll throw an "unknown" exception, that can sometimes show "something
        // went wrong" error instead of "you're disconnected". Refreshing will recover from this state.
        if (wasInitialized && wasOnline && !this.isOnline) {
            // Order of fetch error and offline notification is not guaranteed. Add a slight delay to ensure the error
            // has arrived so the fetch will fix it.
            Object(_utils_sleep__WEBPACK_IMPORTED_MODULE_20__[/* default */ "a"])(DELAY_BEFORE_OFFLINE_FETCH).then(() => this.refreshActiveCollectionsImmediately());
        }
        if (changedStatus) {
            // TODO: Adjust this metric once https://jira.corp.adobe.com/browse/ECOINT-4884 is approved
            (_b = (_a = this.cdoMetrics) === null || _a === void 0 ? void 0 : _a.fireEvent) === null || _b === void 0 ? void 0 : _b.call(_a, {
                event: {
                    workflow: _utils_metrics__WEBPACK_IMPORTED_MODULE_17__[/* Workflow */ "h"].CloudDocuments,
                    subcategory: _utils_metrics__WEBPACK_IMPORTED_MODULE_17__[/* NOTIFICATIONS_SUBCATEGORY */ "f"],
                    type: _utils_metrics__WEBPACK_IMPORTED_MODULE_17__[/* EventType */ "c"].Info,
                    error_desc: status.toString(),
                },
            });
        }
    }
    // Don't call this to fix a problem where the collections are not getting updated. Everything should be
    // addressed by DocumentStore.assetOp, and DocumentStore.onAssetChange, and
    // DocumentStore.onNotificationStatusChange. Please check with Chad before adding new calls to this method.
    markAllCollectionsDirty() {
        this.getAllNonSWYCollections().forEach(collection => collection.setIsDirty());
    }
    // Fetch rendition of documents which was failed due to network issue
    fetchAllFailedRendition() {
        this.getAllNonSWYCollections().forEach(collection => {
            collection.elements.forEach(element => {
                // If both hasFetchedRendition and lastRenditionFetchFailed
                // are true, it means fetching of rendition was tried but did't
                // get fetched.
                if (element.hasFetchedRendition && element.lastRenditionFetchFailed) {
                    // setting hasFetchedRendition to false, to allows the fetching again
                    // for this failed document
                    element.setHasFetchedRendition(false);
                    this.fetchRendition(element);
                }
            });
        });
    }
    /**
     * Update folderCollectionsMobx (& currentPath if necessary) to reflect SAM changes to folders.
     * Fired when `path` property is changed on SAM folders.
     */
    onCollectionPathChange({ oldValue, newValue, }) {
        this.logger.debug('onCollectionPathChange', oldValue, newValue);
        if (!oldValue) {
            // don't need to do any cleanup for new folders
            return;
        }
        const normalOldPath = Object(_utils_normalize_path__WEBPACK_IMPORTED_MODULE_18__[/* default */ "a"])(oldValue);
        const normalNewPath = Object(_utils_normalize_path__WEBPACK_IMPORTED_MODULE_18__[/* default */ "a"])(newValue);
        const existingCollection = this.getFolder(normalOldPath);
        // need to update currentPath if current folder is being moved/renamed/deleted
        const updateCurrentPath = this.currentPath === normalOldPath;
        if (existingCollection) {
            if (updateCurrentPath) {
                // if current folder is archived, navigate to root
                // otherwise, to new folder path
                if (normalNewPath.startsWith(_utils_constants__WEBPACK_IMPORTED_MODULE_14__[/* ARCHIVE_FOLDER_PATH */ "a"])) {
                    this.setCurrentPath(_utils_constants__WEBPACK_IMPORTED_MODULE_14__[/* ROOT_FOLDER_PATH */ "q"]);
                }
                else {
                    this.setCurrentPath(normalNewPath);
                }
            }
            this.folderCollections.delete(normalOldPath);
        }
    }
    markParentsAsDirty(element) {
        const parentFolder = this.getFolder(Object(_utils_derive_parent_path__WEBPACK_IMPORTED_MODULE_15__[/* default */ "a"])(element.path));
        if (parentFolder) {
            parentFolder.setIsDirty();
            this.logger.debug('assetOp marked as dirty: %s', parentFolder.path);
        }
    }
    assetOpComplete(batchState) {
        // Don't show toast if we disable all toasts or if
        // any component needs to temporarily disable them
        // while performing some action.
        if (!this.alwaysDisableToasts && !this.temporarilyDisableToasts) {
            this.openToast(batchState.toastData);
        }
        // ACPL-4851: Archive sometimes doesn't fire a notification in offline mode.
        if (batchState.opName === UXOpName.ARCHIVE) {
            this.archivedFolderCollection.setIsDirty();
            this.logger.debug('assetOpComplete marked archive collection dirty');
        }
        batchState.reset();
        // Refresh on ACPL notification is disabled during operations, and non-existent on web.
        // Sometimes the notifications will fire before the operation batch completes, which are ignored
        // while the operation is underway, so refresh needs to happen here, too.
        if (!this.enableSAM) {
            this.refreshActiveCollections();
        }
    }
    /**
     * Only to be used at initialization, and when the user signs out. This is the only case where we need to
     * reset all state in the Collections.
     * @private
     */
    clearDocuments() {
        var _a, _b;
        // Delete all collections and their state
        this.folderCollections.clear();
        // Re-create root and archive folder collections
        this.getOrCreateFolderCollection(_utils_constants__WEBPACK_IMPORTED_MODULE_14__[/* ROOT_FOLDER_PATH */ "q"]);
        if (!this.usingDiscardedSource) {
            this.getOrCreateFolderCollection(_utils_constants__WEBPACK_IMPORTED_MODULE_14__[/* ARCHIVE_FOLDER_PATH */ "a"]);
        }
        (_a = this.archiveCollection) === null || _a === void 0 ? void 0 : _a.clear();
        (_b = this.swyCollection) === null || _b === void 0 ? void 0 : _b.clear();
    }
    /**
     * Called by CDOProvider during initialization to pre-fetch Cloud Documents tab so it has contents even if the
     * host app doesn't start with Cloud Documents tab as the active view.
     */
    async preFetchDocuments() {
        await this.waitForInitialization('preFetchDocuments');
        this.fetchCurrentFolderContents();
    }
    popPending() {
        let x;
        for (x of this.pendingRenditionFetch) {
            break;
        } // eslint-disable-line no-restricted-syntax
        this.pendingRenditionFetch.delete(x);
        return x;
    }
    async fetchRendition(document) {
        try {
            if (!LAZY_FETCH_RENDITIONS || document.hasFetchedRendition) {
                return Promise.resolve();
            }
            if (this.inFlightItems.size >= MAX_IN_FLIGHT_RENDITIONS) {
                this.pendingRenditionFetch.add(document);
                return Promise.resolve();
            }
            this.inFlightItems.add(document);
            await document.getRendition();
        }
        catch (error) {
            this.logger.error('Failed to fetch rendition');
            return Promise.reject(error);
        }
        finally {
            this.inFlightItems.delete(document);
            if (this.inFlightItems.size < MAX_IN_FLIGHT_RENDITIONS &&
                this.pendingRenditionFetch.size) {
                this.fetchRendition(this.popPending());
            }
        }
    }
    cancelFetchRendition(document) {
        this.pendingRenditionFetch.delete(document);
    }
    get collectionContext() {
        return {
            locale: this.locale,
            fetchAuthToken: this.fetchAuthToken,
            onAnalyticsEvent: this.onAnalyticsEvent,
            isOnline: () => this.isOnline,
            clientCantFetchReason: () => {
                if (!this.isUserLoggedIn) {
                    return 'User is not logged in';
                }
                if (this.hasCloudNotificationErrorStatus) {
                    return 'hasCloudNotificationErrorStatus';
                }
                return '';
            },
        };
    }
    // async actions
    initClients(hostProductData, imsData, cloudDocumentsClient) {
        this.cloudDocumentsClient = cloudDocumentsClient;
        // Include folders in results, if enabled
        // Empty list implies no-filters. Do not add folders in this case.
        this.documentFilter = [].concat(hostProductData.documentFilter, this.enableCloudFolders && hostProductData.documentFilter.length ? _utils_constants__WEBPACK_IMPORTED_MODULE_14__[/* FOLDER_MIMETYPES */ "j"] : []);
        // @ts-ignore
        this.swyDocumentFilter = [].concat(
        // All SWY listings are filtered by the mimetypes provided in swyDocumentFilter array.
        // If this filter is not provided, documentFilter will be used for SWY listings.
        // Clients like Ps will probably use documentFilter
        hostProductData.swyDocumentFilter
            ? hostProductData.swyDocumentFilter
            : hostProductData.documentFilter);
        this.fetchAuthToken = imsData.fetchToken;
        if (this.shouldUseSamSwyCollection) {
            this.swyCollection = new _Collection_SAMSourceProviderCollection__WEBPACK_IMPORTED_MODULE_35__[/* default */ "a"]({
                fetchWhenStale: true,
            }, {
                ...this.collectionContext,
                SAMAssetContext: this.SAMAssetContext,
                source: this.SAMAssetContext.sharedSource,
                waitForAuthInitialization: async (caller) => this.waitForInitialization(caller),
            });
            this.swyCollection.setTypes(this.swyDocumentFilter);
        }
        else {
            this.swyCollection = _SWYCollection__WEBPACK_IMPORTED_MODULE_29__[/* default */ "a"].create({
                documentFilter: this.swyDocumentFilter,
                fetchWhenStale: true,
                apiKey: hostProductData.apiKey,
                environment: imsData.environment,
            }, {
                ...this.collectionContext,
                cloudDocumentsClient: this.cloudDocumentsClient,
            });
        }
        if (hostProductData.featureFlags.useDiscardedSource) {
            this.usingDiscardedSource = true;
            this.archiveCollection = new _Collection_SAMSourceProviderCollection__WEBPACK_IMPORTED_MODULE_35__[/* default */ "a"]({
                fetchWhenStale: true,
            }, {
                ...this.collectionContext,
                SAMAssetContext: this.SAMAssetContext,
                source: this.SAMAssetContext.discardedSource,
                waitForAuthInitialization: async (caller) => this.waitForInitialization(caller),
            });
            this.archiveCollection.setTypes(this.documentFilterOverride || this.documentFilter);
        }
        if (!_utils_utils__WEBPACK_IMPORTED_MODULE_22__[/* default */ "a"].usingUXP() && !this.enableSAM) {
            window.addEventListener('online', () => this.onNotificationStatusChange(_ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_3__["NotificationStatus"].HAS_INTERNET_ACCESS));
            window.addEventListener('offline', () => this.onNotificationStatusChange(_ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_3__["NotificationStatus"].NO_INTERNET_ACCESS));
            // On web, consider network connection state to be online if browser is online
            if (window.navigator.onLine) {
                this.connectionState = _ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_3__["NotificationStatus"].HAS_INTERNET_ACCESS;
            }
            else {
                this.connectionState = _ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_3__["NotificationStatus"].NO_INTERNET_ACCESS;
            }
        }
        // Folder collections require the hostProductData.documentFilter before they can be initialized
        this.clearDocuments();
    }
    initSAMAssetContext(assetContext) {
        this.SAMAssetContext = assetContext;
        // If host app provides AssetContext late, allow CDO to recover from error state
        if (this.didSAMInitFail) {
            this.didSAMInitFail = false;
            this.refreshActiveCollections();
        }
        if (assetContext.cloudSyncStatus !== _ccx_public_acpl_model_uxp_types__WEBPACK_IMPORTED_MODULE_1__[/* ACPLModel */ "a"].CloudSyncStatus.Initializing) {
            this.onSAMCloudSyncStatusChange(assetContext.cloudSyncStatus);
        }
        Object(mobx__WEBPACK_IMPORTED_MODULE_5__[/* reaction */ "B"])(() => this.SAMAssetContext.cloudSyncStatus, this.onSAMCloudSyncStatusChange.bind(this));
    }
    initSAMJSHostAssetContext(hostAssetContext) {
        this.samJSHostAssetContext = hostAssetContext;
    }
    setSAMInitFailed(errDesc) {
        var _a, _b;
        this.didSAMInitFail = true;
        const message = `Failed to create/get SAMAssetContext: ${errDesc}`;
        this.logger.error(message);
        (_b = (_a = this.cdoMetrics) === null || _a === void 0 ? void 0 : _a.fireEvent) === null || _b === void 0 ? void 0 : _b.call(_a, {
            event: {
                workflow: _utils_metrics__WEBPACK_IMPORTED_MODULE_17__[/* Workflow */ "h"].CloudDocuments,
                subcategory: _utils_metrics__WEBPACK_IMPORTED_MODULE_17__[/* NOTIFICATIONS_SUBCATEGORY */ "f"],
                type: _utils_metrics__WEBPACK_IMPORTED_MODULE_17__[/* EventType */ "c"].Info,
                error_desc: message,
            },
        });
    }
    onSAMCloudSyncStatusChange(status) {
        const { Offline, NotStarted, Disabled, Synchronized, InProgress, ErrorQuotaExceeded, ErrorSyncDown, ErrorOther, } = _ccx_public_acpl_model_uxp_types__WEBPACK_IMPORTED_MODULE_1__[/* ACPLModel */ "a"].CloudSyncStatus;
        const offlineStates = new Set([Offline]);
        // `ErrorOther` occurs when a particular asset received an `AssetSyncNotification::SyncStatus::SYNC_ERROR`
        // SAM-919 has been created to introduce a specific `CloudSyncStatus` error for this notification.
        const onlineStates = new Set([
            NotStarted,
            Synchronized,
            InProgress,
            Disabled,
            ErrorQuotaExceeded,
            ErrorSyncDown,
            ErrorOther,
        ]);
        const coreSyncDownStates = new Set([ErrorSyncDown]);
        this.logger.debug('SAMAssetContext.cloudSyncStatus', status);
        if (offlineStates.has(status)) {
            if (this.connectionState !== _ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_3__["NotificationStatus"].NO_INTERNET_ACCESS) {
                this.onNotificationStatusChange(_ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_3__["NotificationStatus"].NO_INTERNET_ACCESS);
            }
        }
        if (onlineStates.has(status)) {
            if (this.connectionState !== _ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_3__["NotificationStatus"].HAS_INTERNET_ACCESS) {
                this.onNotificationStatusChange(_ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_3__["NotificationStatus"].HAS_INTERNET_ACCESS);
            }
        }
        if (coreSyncDownStates.has(status)) {
            if (this.coreSyncState !== _ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_3__["NotificationStatus"].CORESYNC_NOT_REACHABLE) {
                this.onNotificationStatusChange(_ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_3__["NotificationStatus"].CORESYNC_NOT_REACHABLE);
            }
        }
        else {
            if (this.coreSyncState !== _ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_3__["NotificationStatus"].CORESYNC_REACHABLE_AND_COMPATIBLE) {
                this.onNotificationStatusChange(_ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_3__["NotificationStatus"].CORESYNC_REACHABLE_AND_COMPATIBLE);
            }
        }
    }
    subscribeToNGLProfileChanged() {
        // @ts-ignore
        const { require } = global;
        try {
            require('uxp').licensing.addEventListener('profilechanged', () => this._updateNGLProfile());
        }
        catch (e) {
            this.logger.error('Could not subscribe to NGL profile change event', e);
        }
    }
    get shouldUseSamSwyCollection() {
        return this.enableSAM;
    }
    *_updateNGLProfile() {
        // @ts-ignore
        const { require } = global;
        const wasInitialized = this.nglAuthenticationState !== undefined;
        const wasLoggedIn = this.isUserLoggedIn;
        try {
            // NOTE: in MST `flow`, use `yield` in place of `await`. This avoids errors
            // about changing MST object outside of an action.
            const licensingJSON = yield require('uxp').licensing.fetchProfile();
            const licensingData = JSON.parse(licensingJSON);
            if (licensingData.UserProfile.userId) {
                this.logger.debug('_updateNGLProfile user %s is logged in', licensingData.UserProfile.userId);
                this.nglAuthenticationState = NGLAuthenticationState.LoggedIn;
            }
            else {
                this.logger.debug('_updateNGLProfile user is logged out');
                this.nglAuthenticationState = NGLAuthenticationState.LoggedOut;
            }
            // Only respond to change after initialization
            if (wasInitialized) {
                if (wasLoggedIn && !this.isUserLoggedIn) {
                    this.onUserLoggedOut();
                }
                else if (!wasLoggedIn && this.isUserLoggedIn) {
                    this.onUserLoggedIn();
                }
            }
        }
        catch (e) {
            this.logger.error('Error determining NGL auth state', e);
        }
    }
    /**
     * Returns a promise that will resolve when we're ready to fetch. Call this from inside `fetch*` methods
     * in DocumentStore. If the `await` happened inside Collection.fetchElements, it would proceed with
     * the uninitialized parameters and possibly fail, or not get all the data.
     */
    async waitForInitialization(callerName = 'unknown') {
        const RETRY_INTERVAL = 300;
        const wasInitialized = this.isClientInitialized;
        if (!wasInitialized) {
            this.logger.log('%s - Waiting for initialization to complete', callerName);
        }
        await Object(mobx__WEBPACK_IMPORTED_MODULE_5__[/* when */ "I"])(() => this.isClientInitialized);
        // Init is done, now wait for auth token, if needed. If the user is not signed in, there is no auth token to
        // be had, so allow things to continue so we can show the logged-out empty view.
        if (this.isOnline && this.isUserLoggedIn) {
            this.logger.debug('%s - waiting for auth token', callerName);
            try {
                await Object(_utils_retry__WEBPACK_IMPORTED_MODULE_19__[/* default */ "a"])(() => this.fetchAuthToken(), {
                    delay: RETRY_INTERVAL,
                    maxTries: 10,
                    exponentialBackoff: true,
                }, this.logger);
            }
            catch (e) {
                this.logger.error('%s - failed to fetch auth token', callerName, e);
            }
            this.logger.debug('%s - auth token received', callerName);
        }
        if (!wasInitialized) {
            this.logger.log('%s - Initialization complete', callerName);
        }
    }
    refreshActiveCollectionsImmediately() {
        if (this.activeCollection) {
            if (this.activeCollection.fetchState === _constants__WEBPACK_IMPORTED_MODULE_27__[/* ProcessingState */ "n"].Fetching) {
                this.logger.log('refreshActiveCollections -- wait for fetch to complete');
                this.refreshActiveCollections();
            }
            else {
                this.logger.log('refreshActiveCollections -- start fetching');
                this.activeCollectionFetchMethod();
            }
        }
    }
    /**
     * Only used for user-initiated refresh of the active collection, when the
     * collection is not loading.
     */
    forceRefreshActiveCollections() {
        if (!this.activeCollection ||
            !this.activeCollectionFetchMethod ||
            !this.activeCollection.isNotLoading) {
            return;
        }
        this.activeCollection.setNeedsRefresh();
        this.activeCollection.setIsDirty();
        this.activeCollectionFetchMethod();
    }
    removeElement(ele) {
        const parentPath = Object(_utils_derive_parent_path__WEBPACK_IMPORTED_MODULE_15__[/* default */ "a"])(ele.path);
        if (this.folderCollections.has(parentPath)) {
            this.folderCollections.get(parentPath).removeChild(ele);
        }
    }
    async beforeOp(elements, beforeOpCallback, getOpenCloudDocuments) {
        const { cancel, cancelOpen, ok } = _types_CDOOperationResponse__WEBPACK_IMPORTED_MODULE_8__[/* CDOOperationResponseEnum */ "a"];
        // All `before*` callbacks are optional
        if (!beforeOpCallback) {
            return elements;
        }
        const pathFromID = (id) => {
            const path = this.enableAssetRef
                ? JSON.parse(id).path
                : new URL(id).searchParams.get('path');
            return Object(_utils_normalize_path__WEBPACK_IMPORTED_MODULE_18__[/* default */ "a"])(path);
        };
        const deleteElement = (key, openDocsInSelectedFolders, elementMap) => {
            if (getOpenCloudDocuments) {
                const folder = openDocsInSelectedFolders.get(key);
                if (folder) {
                    elementMap.delete(folder.docUriForHost);
                }
            }
            elementMap.delete(key);
        };
        try {
            let openDocsInSelectedFolders = new Map();
            if (getOpenCloudDocuments) {
                // if getOpenCloudDocuments was passed in, we need to include open
                // documents that are descendants of selected folders in beforeOpCallback()
                const openDocs = await getOpenCloudDocuments();
                const folders = elements.filter(ele => ele.isFolder);
                openDocsInSelectedFolders = new Map(openDocs.map((docID) => [
                    docID,
                    folders.find(folder => pathFromID(docID).startsWith(`${Object(_utils_normalize_path__WEBPACK_IMPORTED_MODULE_18__[/* default */ "a"])(folder.path)}/`)),
                ]));
            }
            // Store elements in a map by their docUriForHost for efficient look-up
            const elementMap = new Map(elements
                .map(ele => [ele.docUriForHost, ele])
                .concat([...openDocsInSelectedFolders].filter(x => x[1])));
            // Allow host app to filter out items for this operation. Each URI is marked with a CDOOperationResponseEnum
            const results = await beforeOpCallback([...elementMap.keys()]);
            // Delete the entries from elementMap that are marked as 'cancel' or 'cancel-open'
            let cancelOpenCount = 0;
            Object.entries(results).forEach(([key, value]) => {
                switch (value) {
                    case cancel:
                        deleteElement(key, openDocsInSelectedFolders, elementMap);
                        break;
                    case cancelOpen:
                        deleteElement(key, openDocsInSelectedFolders, elementMap);
                        cancelOpenCount++;
                        break;
                    case ok:
                        // Do nothing and let the document pass.
                        break;
                    default:
                        // Unrecognized operation
                        // @TODO should we error here?'
                        // eslint-disable-next-line max-len
                        this.logger.error(`[ccx-cdo][DocumentStore][beforeOp] Unrecognized document operation response ${value}`);
                        break;
                }
            });
            // Show toast when the document is open
            // in the host application.
            if (cancelOpenCount > 0) {
                this.openToast({
                    message: 'error.documentIsOpen',
                    values: { count: cancelOpenCount },
                    // TODO: Tracking ticket https://jira.corp.adobe.com/browse/CCXCD-5908
                    // this toast sometimes gets replaced by the success/fail toast before the user
                    // can read it. See bug: https://jira.corp.adobe.com/browse/CCXCD-5833
                    delay: 0,
                });
            }
            // Return the remaining elements
            return [...elementMap.values()];
        }
        catch (e) {
            // TODO: What to do here? Original code didn't work and intent was unclear.
            // Jira: https://jira.corp.adobe.com/browse/CCXCD-2970
            return elements;
        }
    }
    async assetOp({ elements, opName, operation, metricLogger, correlationId, afterOpCallback = undefined, afterOpFailCallback = undefined, removeOnComplete = false, runInBackground = false, getErrorCategory = defaultGetErrorCategory, undoOp, isUndo = false, }) {
        let maxSimultaneousOperations;
        const batchState = _BatchState__WEBPACK_IMPORTED_MODULE_23__[/* default */ "a"].create({
            opName,
            batchSize: elements.length,
            isUndo,
        });
        batchState.setUndoOp(this.enableActionUndo && undoOp);
        if (runInBackground) {
            // When running in background, use small batch sizes and do not show progress dialog
            maxSimultaneousOperations = 1;
            // Mark assets as having pending operation so that the UI does not allow additional
            // operations queued up for the same asset.
            // TODO: https://jira.corp.adobe.com/browse/CCXCD-5960
            // CloudSyncStatus won't show the items as syncing
            elements.forEach((element) => element.setHasPendingOperation(true));
        }
        else {
            // In foreground, use larger batch sizes and show progress dialog
            maxSimultaneousOperations = MAX_SIMULTANEOUS_OPERATIONS;
            // Note: assetOpState of Processing triggers showing the progress dialog
            this.setAssetOpState(_constants__WEBPACK_IMPORTED_MODULE_27__[/* ProcessingState */ "n"].Processing);
            this.batchState = batchState;
        }
        const promiseList = [];
        if (elements && elements.length) {
            // Split elements into sub-batches of size `maxSimultaneousOperations`. This avoids flooding the platform
            // request queue, which can cause critical UX-related requests to be delayed by several minutes.
            // Also, ACPL has multiple bugs caused by sending large number of operation requests, tracked here:
            // https://wiki.corp.adobe.com/pages/viewpage.action?spaceKey=CFS&title=Gorilla+Testing+Results
            const batches = elements.reduce((accum, ele) => {
                if (accum[accum.length - 1].length >= maxSimultaneousOperations) {
                    accum.push([]);
                }
                accum[accum.length - 1].push(ele);
                return accum;
            }, [[]]);
            do {
                this.logger.debug('assetOp batches pending', batches.length);
                const batch = batches.shift();
                const promises = batch.map((ele) => {
                    const dtsStart = new Date(Date.now()); // Explicit constructor with Date.now() is easier to mock
                    return operation(correlationId, ele)
                        .then(() => {
                        batchState.addSuccess(ele);
                        const parentFolder = this.getFolder(Object(_utils_derive_parent_path__WEBPACK_IMPORTED_MODULE_15__[/* default */ "a"])(ele.path));
                        // SAM should auto-update
                        if (!(parentFolder instanceof _Collection_SAMFolderCollection__WEBPACK_IMPORTED_MODULE_26__[/* default */ "a"])) {
                            this.markParentsAsDirty(ele);
                        }
                        if (removeOnComplete) {
                            this.removeElement(ele);
                        }
                        metricLogger({
                            correlationId,
                            element: ele,
                            eventType: _utils_metrics__WEBPACK_IMPORTED_MODULE_17__[/* EventType */ "c"].Success,
                            dtsStart,
                        });
                        afterOpCallback && this.afterOp(ele, opName, afterOpCallback);
                    })
                        .catch((error) => {
                        const metricLoggerOptions = {
                            correlationId,
                            element: ele,
                            eventType: _utils_metrics__WEBPACK_IMPORTED_MODULE_17__[/* EventType */ "c"].Error,
                            dtsStart,
                            ...(error && _utils_CDOMetrics__WEBPACK_IMPORTED_MODULE_13__[/* default */ "a"].parseErrorResponse(error)),
                        };
                        metricLogger(metricLoggerOptions);
                        this.logger.error(`Failed to perform ${opName} action on item`, error);
                        batchState.addError(ele, getErrorCategory(error, ele));
                        afterOpFailCallback && afterOpFailCallback(ele, error);
                    })
                        .finally(() => {
                        if (runInBackground) {
                            ele.setHasPendingOperation(false);
                        }
                    });
                });
                promiseList.push(...promises);
                await Promise.all(promises);
                if (batches.length) {
                    await Object(_utils_sleep__WEBPACK_IMPORTED_MODULE_20__[/* default */ "a"])(PER_BATCH_DELAY);
                }
            } while (batches.length);
        }
        else {
            // This isn't an error, because a beforeOp may have filtered out all items
            this.logger.debug(`No items to operate on for ${opName}.`);
            // Don't allow background operations to hide progress dialog for the foreground
            // operation batch
            if (!runInBackground) {
                this.setAssetOpState(_constants__WEBPACK_IMPORTED_MODULE_27__[/* ProcessingState */ "n"].Idle);
            }
            return;
        }
        await Promise.all(promiseList);
        this.logger.debug('assetOp %s complete', opName);
        // Hide progress dialog before resetting batchState to avoid rendering progress dialog with null/undefined
        if (!runInBackground) {
            this.setAssetOpState(_constants__WEBPACK_IMPORTED_MODULE_27__[/* ProcessingState */ "n"].Idle);
        }
        this.assetOpComplete(batchState);
    }
    afterOp(element, opName, afterOpCallback) {
        try {
            afterOpCallback(element.docUriForHost);
        }
        catch (e) {
            this.logger.error(`Error calling ${opName} after-operation callback ${e}`);
        }
    }
    *_resolveSyncError(element, nameSuffix, metricLogger, correlationId) {
        // Show progress dialog
        this.setAssetOpState(_constants__WEBPACK_IMPORTED_MODULE_27__[/* ProcessingState */ "n"].Processing);
        this.batchState = _BatchState__WEBPACK_IMPORTED_MODULE_23__[/* default */ "a"].create({
            opName: UXOpName.RESOLVE_SYNC_ERROR,
            batchSize: 1,
        });
        const metricOptions = {
            // Metric duration is for both operations
            dtsStart: new Date(Date.now()),
            element,
            correlationId,
        };
        try {
            try {
                this.logger.debug('resolveSyncError duplicating %s', element.repoName, element);
                yield element.duplicate(correlationId, Object(_utils_derive_parent_path__WEBPACK_IMPORTED_MODULE_15__[/* default */ "a"])(element.path), nameSuffix);
            }
            catch (e) {
                this.logger.error('resolveSyncError duplicate failed', e);
                metricLogger({
                    ...metricOptions,
                    eventType: _utils_metrics__WEBPACK_IMPORTED_MODULE_17__[/* EventType */ "c"].Error,
                    errorCode: e && e.status,
                    errorDesc: e && `(duplicate) ${e.statusText}`,
                });
                throw _types_SyncErrorResolutionFailureType__WEBPACK_IMPORTED_MODULE_12__[/* default */ "a"].Duplicate;
            }
            try {
                this.logger.debug('...resolveSyncError purging %s', element.repoName, element);
                yield element.purge(correlationId);
                // Both duplicate and purge succeeded
                metricLogger({
                    ...metricOptions,
                    eventType: _utils_metrics__WEBPACK_IMPORTED_MODULE_17__[/* EventType */ "c"].Success,
                });
            }
            catch (e) {
                this.logger.error('resolveSyncError purge failed', e);
                metricLogger({
                    ...metricOptions,
                    eventType: _utils_metrics__WEBPACK_IMPORTED_MODULE_17__[/* EventType */ "c"].Error,
                    errorCode: e && e.status,
                    errorDesc: e && `(purge) ${e.statusText}`,
                });
                throw _types_SyncErrorResolutionFailureType__WEBPACK_IMPORTED_MODULE_12__[/* default */ "a"].Purge;
            }
        }
        finally {
            // hide progress dialog
            this.logger.debug('...resolveSyncError complete');
            this.setAssetOpState(_constants__WEBPACK_IMPORTED_MODULE_27__[/* ProcessingState */ "n"].Idle);
            this.batchState.reset();
            // Notifications from duplicate and purge should mark the collection as dirty,
            // but since assetOpState is Processing, it won't refresh.
            this.refreshActiveCollections();
        }
    }
    async fetchSharedWithYou() {
        await this.waitForInitialization('fetchSharedWithYou');
        await this.swyCollection.fetchElements({
            sortBy: this.activeSharedWithYouSort,
            sortDir: this.activeSharedWithYouSortDirection,
        });
    }
    /**
     * Callback when authentication status transitions from logged out to logged in.
     * This should only be called by DocumentStore.
     * @private
     */
    onUserLoggedIn() {
        this.logger.debug('onUserLoggedIn');
        // All collections should be reset and in dirty state, so just need to refresh the active ones
        this.refreshActiveCollectionsImmediately();
    }
    /**
     * Callback when authentication status transitions from logged in to logged out.
     * This should only be called by DocumentStore.
     * @protected
     */
    onUserLoggedOut() {
        this.logger.debug('onUserLoggedOut');
        // Determine which view is active so it can be refreshed after clearing
        const isArchiveFolderActive = this.activeCollection === this.archivedFolderCollection;
        this.clearDocuments();
        // Refresh active view so it shows the logged out empty state
        if (isArchiveFolderActive) {
            this.currentPath = _utils_constants__WEBPACK_IMPORTED_MODULE_14__[/* ROOT_FOLDER_PATH */ "q"]; // Reset path without affecting activeCollection
            this.setActiveCollection(this.archivedFolderCollection, this.fetchArchived);
            this.fetchArchived();
        }
        else {
            // setCurrentPath will update the active collection and refresh
            this.setCurrentPath(_utils_constants__WEBPACK_IMPORTED_MODULE_14__[/* ROOT_FOLDER_PATH */ "q"]);
        }
    }
}
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* observable */ "z"],
    __metadata("design:type", String)
], DocumentStore.prototype, "locale", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* observable */ "z"],
    __metadata("design:type", Object)
], DocumentStore.prototype, "toast", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* observable */ "z"],
    __metadata("design:type", String)
], DocumentStore.prototype, "currentPath", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* observable */ "z"],
    __metadata("design:type", typeof (_a = typeof _constants__WEBPACK_IMPORTED_MODULE_27__["OperationState"] !== "undefined" && _constants__WEBPACK_IMPORTED_MODULE_27__["OperationState"]) === "function" ? _a : Object)
], DocumentStore.prototype, "assetOpState", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* observable */ "z"],
    __metadata("design:type", typeof (_b = typeof _constants__WEBPACK_IMPORTED_MODULE_27__["ConnectionState"] !== "undefined" && _constants__WEBPACK_IMPORTED_MODULE_27__["ConnectionState"]) === "function" ? _b : Object)
], DocumentStore.prototype, "connectionState", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* observable */ "z"],
    __metadata("design:type", typeof (_c = typeof _constants__WEBPACK_IMPORTED_MODULE_27__["CoreSyncState"] !== "undefined" && _constants__WEBPACK_IMPORTED_MODULE_27__["CoreSyncState"]) === "function" ? _c : Object)
], DocumentStore.prototype, "coreSyncState", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* observable */ "z"],
    __metadata("design:type", typeof (_d = typeof _constants__WEBPACK_IMPORTED_MODULE_27__["AcplRegistrationState"] !== "undefined" && _constants__WEBPACK_IMPORTED_MODULE_27__["AcplRegistrationState"]) === "function" ? _d : Object)
], DocumentStore.prototype, "acplRegistrationState", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* observable */ "z"],
    __metadata("design:type", String)
], DocumentStore.prototype, "nglAuthenticationState", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* observable */ "z"],
    __metadata("design:type", String)
], DocumentStore.prototype, "cloudURLProtocol", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* observable */ "z"],
    __metadata("design:type", typeof (_e = typeof _constants__WEBPACK_IMPORTED_MODULE_27__[/* UXSortBy */ "t"] !== "undefined" && _constants__WEBPACK_IMPORTED_MODULE_27__[/* UXSortBy */ "t"]) === "function" ? _e : Object)
], DocumentStore.prototype, "activeSort", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* observable */ "z"],
    __metadata("design:type", typeof (_f = typeof _constants__WEBPACK_IMPORTED_MODULE_27__[/* UXSortDir */ "w"] !== "undefined" && _constants__WEBPACK_IMPORTED_MODULE_27__[/* UXSortDir */ "w"]) === "function" ? _f : Object)
], DocumentStore.prototype, "activeSortDirection", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* observable */ "z"],
    __metadata("design:type", typeof (_g = typeof _constants__WEBPACK_IMPORTED_MODULE_27__[/* UXSortBy */ "t"] !== "undefined" && _constants__WEBPACK_IMPORTED_MODULE_27__[/* UXSortBy */ "t"]) === "function" ? _g : Object)
], DocumentStore.prototype, "activeSharedWithYouSort", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* observable */ "z"],
    __metadata("design:type", typeof (_h = typeof _constants__WEBPACK_IMPORTED_MODULE_27__[/* UXSortDir */ "w"] !== "undefined" && _constants__WEBPACK_IMPORTED_MODULE_27__[/* UXSortDir */ "w"]) === "function" ? _h : Object)
], DocumentStore.prototype, "activeSharedWithYouSortDirection", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* observable */ "z"],
    __metadata("design:type", Boolean)
], DocumentStore.prototype, "enableCloudFolders", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* observable */ "z"],
    __metadata("design:type", Boolean)
], DocumentStore.prototype, "enableAssetRef", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* observable */ "z"],
    __metadata("design:type", Boolean)
], DocumentStore.prototype, "enableSAM", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* observable */ "z"],
    __metadata("design:type", Boolean)
], DocumentStore.prototype, "enableActionUndo", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* observable */ "z"],
    __metadata("design:type", Object)
], DocumentStore.prototype, "swyCollection", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* observable */ "z"],
    __metadata("design:type", typeof (_l = typeof _Collection_SAMSourceProviderCollection__WEBPACK_IMPORTED_MODULE_35__[/* default */ "a"] !== "undefined" && _Collection_SAMSourceProviderCollection__WEBPACK_IMPORTED_MODULE_35__[/* default */ "a"]) === "function" ? _l : Object)
], DocumentStore.prototype, "archiveCollection", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* observable */ "z"],
    __metadata("design:type", Boolean)
], DocumentStore.prototype, "hasSeenCdoOnboardBanner", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* observable */ "z"],
    __metadata("design:type", typeof (_m = typeof _BatchState__WEBPACK_IMPORTED_MODULE_23__[/* default */ "a"] !== "undefined" && _BatchState__WEBPACK_IMPORTED_MODULE_23__[/* default */ "a"]) === "function" ? _m : Object)
], DocumentStore.prototype, "batchState", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* observable */ "z"],
    __metadata("design:type", Boolean)
], DocumentStore.prototype, "alwaysDisableToasts", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* observable */ "z"],
    __metadata("design:type", Boolean)
], DocumentStore.prototype, "temporarilyDisableToasts", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* observable */ "z"],
    __metadata("design:type", Boolean)
], DocumentStore.prototype, "refreshOnViewChange", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* observable */ "z"],
    __metadata("design:type", Boolean)
], DocumentStore.prototype, "isUsingACPL", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* observable */ "z"],
    __metadata("design:type", Boolean)
], DocumentStore.prototype, "enablePerformanceMetrics", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* observable */ "z"],
    __metadata("design:type", Object)
], DocumentStore.prototype, "cardSize", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* observable */ "z"],
    __metadata("design:type", Boolean)
], DocumentStore.prototype, "didSAMInitFail", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* observable */ "z"],
    __metadata("design:type", typeof (_q = typeof Map !== "undefined" && Map) === "function" ? _q : Object)
], DocumentStore.prototype, "folderCollections", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* observable */ "z"],
    __metadata("design:type", Function)
], DocumentStore.prototype, "fetchAuthToken", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* observable */ "z"],
    __metadata("design:type", typeof (_r = typeof _types_IOnAnalyticsEvent__WEBPACK_IMPORTED_MODULE_11___default.a !== "undefined" && _types_IOnAnalyticsEvent__WEBPACK_IMPORTED_MODULE_11___default.a) === "function" ? _r : Object)
], DocumentStore.prototype, "onAnalyticsEvent", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* observable */ "z"],
    __metadata("design:type", typeof (_s = typeof _ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_3__["CloudDocumentsClient"] !== "undefined" && _ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_3__["CloudDocumentsClient"]) === "function" ? _s : Object)
], DocumentStore.prototype, "cloudDocumentsClient", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* observable */ "z"],
    __metadata("design:type", typeof (_t = typeof _ccx_public_acpl_model_mobx_ACPLTypes__WEBPACK_IMPORTED_MODULE_0__["IACPLAssetContext"] !== "undefined" && _ccx_public_acpl_model_mobx_ACPLTypes__WEBPACK_IMPORTED_MODULE_0__["IACPLAssetContext"]) === "function" ? _t : Object)
], DocumentStore.prototype, "SAMAssetContext", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* observable */ "z"],
    __metadata("design:type", Array)
], DocumentStore.prototype, "documentFilter", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* observable */ "z"],
    __metadata("design:type", Array)
], DocumentStore.prototype, "documentFilterOverride", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* observable */ "z"],
    __metadata("design:type", Array)
], DocumentStore.prototype, "swyDocumentFilter", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* observable */ "z"],
    __metadata("design:type", Boolean)
], DocumentStore.prototype, "isRenamingCurrentPath", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* observable */ "z"],
    __metadata("design:type", typeof (_u = typeof _Collection_AssetCollection__WEBPACK_IMPORTED_MODULE_25__[/* default */ "c"] !== "undefined" && _Collection_AssetCollection__WEBPACK_IMPORTED_MODULE_25__[/* default */ "c"]) === "function" ? _u : Object)
], DocumentStore.prototype, "activeCollection", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* observable */ "z"],
    __metadata("design:type", Function)
], DocumentStore.prototype, "activeCollectionFetchMethod", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* observable */ "z"],
    __metadata("design:type", Boolean)
], DocumentStore.prototype, "suspendRefresh", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* observable */ "z"],
    __metadata("design:type", typeof (_v = typeof _utils_Logger__WEBPACK_IMPORTED_MODULE_16__[/* Logger */ "a"] !== "undefined" && _utils_Logger__WEBPACK_IMPORTED_MODULE_16__[/* Logger */ "a"]) === "function" ? _v : Object)
], DocumentStore.prototype, "logger", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* observable */ "z"],
    __metadata("design:type", typeof (_w = typeof Function !== "undefined" && Function) === "function" ? _w : Object)
], DocumentStore.prototype, "openToast", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* observable */ "z"],
    __metadata("design:type", typeof (_x = typeof _QuotaStore__WEBPACK_IMPORTED_MODULE_28__[/* default */ "a"] !== "undefined" && _QuotaStore__WEBPACK_IMPORTED_MODULE_28__[/* default */ "a"]) === "function" ? _x : Object)
], DocumentStore.prototype, "quotaStore", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* observable */ "z"],
    __metadata("design:type", typeof (_y = typeof Set !== "undefined" && Set) === "function" ? _y : Object)
], DocumentStore.prototype, "inFlightItems", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* observable */ "z"],
    __metadata("design:type", typeof (_z = typeof Set !== "undefined" && Set) === "function" ? _z : Object)
], DocumentStore.prototype, "pendingRenditionFetch", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* observable */ "z"],
    __metadata("design:type", typeof (_0 = typeof _ccx_public_shared_asset_model_js__WEBPACK_IMPORTED_MODULE_2__["AssetContext"] !== "undefined" && _ccx_public_shared_asset_model_js__WEBPACK_IMPORTED_MODULE_2__["AssetContext"]) === "function" ? _0 : Object)
], DocumentStore.prototype, "samJSHostAssetContext", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* observable */ "z"],
    __metadata("design:type", Boolean)
], DocumentStore.prototype, "usingDiscardedSource", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [typeof (_1 = typeof Function !== "undefined" && Function) === "function" ? _1 : Object]),
    __metadata("design:returntype", void 0)
], DocumentStore.prototype, "setOpenToastFunc", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [typeof (_2 = typeof _QuotaStore__WEBPACK_IMPORTED_MODULE_28__[/* default */ "a"] !== "undefined" && _QuotaStore__WEBPACK_IMPORTED_MODULE_28__[/* default */ "a"]) === "function" ? _2 : Object]),
    __metadata("design:returntype", void 0)
], DocumentStore.prototype, "setQuotaStore", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* computed */ "l"],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], DocumentStore.prototype, "currentFolderCollection", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* computed */ "l"],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [])
], DocumentStore.prototype, "isCurrentFolderRoot", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* computed */ "l"],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], DocumentStore.prototype, "rootFolderCollection", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* computed */ "l"],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], DocumentStore.prototype, "archivedFolderCollection", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* computed */ "l"],
    __metadata("design:type", Object),
    __metadata("design:paramtypes", [])
], DocumentStore.prototype, "sharedWithYouCollection", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* computed */ "l"],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [])
], DocumentStore.prototype, "hasNotificationErrorStatus", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* computed */ "l"],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [])
], DocumentStore.prototype, "hasNonCoreSyncCloudNotificationErrorStatus", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* computed */ "l"],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [])
], DocumentStore.prototype, "hasCloudNotificationErrorStatus", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* computed */ "l"],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [])
], DocumentStore.prototype, "coreSyncNotReachable", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* computed */ "l"],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [])
], DocumentStore.prototype, "coreSyncIncompatible", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* computed */ "l"],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [])
], DocumentStore.prototype, "coreSyncOK", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* computed */ "l"],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [])
], DocumentStore.prototype, "coreSyncNotUsedOrOK", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* computed */ "l"],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [])
], DocumentStore.prototype, "coreSyncReachableNotCompatible", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* computed */ "l"],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [])
], DocumentStore.prototype, "isOnline", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* computed */ "l"],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [])
], DocumentStore.prototype, "isClientInitialized", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* computed */ "l"],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [])
], DocumentStore.prototype, "isUserLoggedIn", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* computed */ "l"],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [])
], DocumentStore.prototype, "isUserLoggedOut", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* computed */ "l"],
    __metadata("design:type", Boolean),
    __metadata("design:paramtypes", [])
], DocumentStore.prototype, "isFoldersEnabled", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [typeof (_3 = typeof _constants__WEBPACK_IMPORTED_MODULE_27__["UXSortByForACP"] !== "undefined" && _constants__WEBPACK_IMPORTED_MODULE_27__["UXSortByForACP"]) === "function" ? _3 : Object]),
    __metadata("design:returntype", void 0)
], DocumentStore.prototype, "setActiveSort", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [typeof (_4 = typeof _constants__WEBPACK_IMPORTED_MODULE_27__[/* UXSortDir */ "w"] !== "undefined" && _constants__WEBPACK_IMPORTED_MODULE_27__[/* UXSortDir */ "w"]) === "function" ? _4 : Object]),
    __metadata("design:returntype", void 0)
], DocumentStore.prototype, "setActiveSortDirection", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [typeof (_5 = typeof _types_IOnAnalyticsEvent__WEBPACK_IMPORTED_MODULE_11___default.a !== "undefined" && _types_IOnAnalyticsEvent__WEBPACK_IMPORTED_MODULE_11___default.a) === "function" ? _5 : Object]),
    __metadata("design:returntype", void 0)
], DocumentStore.prototype, "setOnAnalyticsEvent", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [typeof (_6 = typeof _constants__WEBPACK_IMPORTED_MODULE_27__["UXSortByForResources"] !== "undefined" && _constants__WEBPACK_IMPORTED_MODULE_27__["UXSortByForResources"]) === "function" ? _6 : Object]),
    __metadata("design:returntype", void 0)
], DocumentStore.prototype, "setSharedWithYouActiveSort", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [typeof (_7 = typeof _constants__WEBPACK_IMPORTED_MODULE_27__[/* UXSortDir */ "w"] !== "undefined" && _constants__WEBPACK_IMPORTED_MODULE_27__[/* UXSortDir */ "w"]) === "function" ? _7 : Object]),
    __metadata("design:returntype", void 0)
], DocumentStore.prototype, "setSharedWithYouActiveSortDirection", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", []),
    __metadata("design:returntype", void 0)
], DocumentStore.prototype, "closeToast", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [typeof (_8 = typeof _constants__WEBPACK_IMPORTED_MODULE_27__["OperationState"] !== "undefined" && _constants__WEBPACK_IMPORTED_MODULE_27__["OperationState"]) === "function" ? _8 : Object]),
    __metadata("design:returntype", void 0)
], DocumentStore.prototype, "setAssetOpState", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [Boolean]),
    __metadata("design:returntype", void 0)
], DocumentStore.prototype, "setHasSeenCdoOnboardBanner", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [Boolean]),
    __metadata("design:returntype", void 0)
], DocumentStore.prototype, "setTemporarilyDisableToasts", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [Array]),
    __metadata("design:returntype", Promise)
], DocumentStore.prototype, "setDocumentFilterOverride", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", []),
    __metadata("design:returntype", void 0)
], DocumentStore.prototype, "clearDocumentFilterOverride", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", []),
    __metadata("design:returntype", void 0)
], DocumentStore.prototype, "updateFolderCollectionFilters", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [String]),
    __metadata("design:returntype", Promise)
], DocumentStore.prototype, "setCurrentPathByAssetId", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [String, String]),
    __metadata("design:returntype", void 0)
], DocumentStore.prototype, "setCurrentPath", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", []),
    __metadata("design:returntype", Promise)
], DocumentStore.prototype, "fetchCurrentFolderContents", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", []),
    __metadata("design:returntype", Promise)
], DocumentStore.prototype, "fetchArchived", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [String, String]),
    __metadata("design:returntype", Promise)
], DocumentStore.prototype, "fetchFolderContents", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [String, String]),
    __metadata("design:returntype", void 0)
], DocumentStore.prototype, "getOrCreateFolderCollection", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [String, String]),
    __metadata("design:returntype", typeof (_9 = typeof Promise !== "undefined" && Promise) === "function" ? _9 : Object)
], DocumentStore.prototype, "isFolderAvailable", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [String, String, String]),
    __metadata("design:returntype", typeof (_10 = typeof Promise !== "undefined" && Promise) === "function" ? _10 : Object)
], DocumentStore.prototype, "isFileAvailable", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [String, Function, typeof (_11 = typeof _utils_metrics__WEBPACK_IMPORTED_MODULE_17__["IOpMetricLogger"] !== "undefined" && _utils_metrics__WEBPACK_IMPORTED_MODULE_17__["IOpMetricLogger"]) === "function" ? _11 : Object, String]),
    __metadata("design:returntype", void 0)
], DocumentStore.prototype, "renameCurrentFolder", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [Boolean]),
    __metadata("design:returntype", void 0)
], DocumentStore.prototype, "setIsRenamingCurrentPath", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [typeof (_12 = typeof _Collection_AssetCollection__WEBPACK_IMPORTED_MODULE_25__[/* default */ "c"] !== "undefined" && _Collection_AssetCollection__WEBPACK_IMPORTED_MODULE_25__[/* default */ "c"]) === "function" ? _12 : Object, Function]),
    __metadata("design:returntype", void 0)
], DocumentStore.prototype, "setActiveCollection", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [Boolean]),
    __metadata("design:returntype", void 0)
], DocumentStore.prototype, "setSuspendRefresh", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [Object]),
    __metadata("design:returntype", void 0)
], DocumentStore.prototype, "defaultOpenToast", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [typeof (_13 = typeof _ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_3__["NotificationStatus"] !== "undefined" && _ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_3__["NotificationStatus"]) === "function" ? _13 : Object]),
    __metadata("design:returntype", void 0)
], DocumentStore.prototype, "onNotificationStatusChange", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* action */ "j"],
    __metadata("design:type", Object)
], DocumentStore.prototype, "onAssetChange", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [Object]),
    __metadata("design:returntype", void 0)
], DocumentStore.prototype, "onCollectionPathChange", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [typeof (_14 = typeof _types_IAssetModel__WEBPACK_IMPORTED_MODULE_9___default.a !== "undefined" && _types_IAssetModel__WEBPACK_IMPORTED_MODULE_9___default.a) === "function" ? _14 : Object]),
    __metadata("design:returntype", void 0)
], DocumentStore.prototype, "markParentsAsDirty", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [typeof (_15 = typeof _BatchState__WEBPACK_IMPORTED_MODULE_23__[/* default */ "a"] !== "undefined" && _BatchState__WEBPACK_IMPORTED_MODULE_23__[/* default */ "a"]) === "function" ? _15 : Object]),
    __metadata("design:returntype", void 0)
], DocumentStore.prototype, "assetOpComplete", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", []),
    __metadata("design:returntype", Promise)
], DocumentStore.prototype, "preFetchDocuments", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [typeof (_16 = typeof _types_IAssetModel__WEBPACK_IMPORTED_MODULE_9___default.a !== "undefined" && _types_IAssetModel__WEBPACK_IMPORTED_MODULE_9___default.a) === "function" ? _16 : Object]),
    __metadata("design:returntype", Promise)
], DocumentStore.prototype, "fetchRendition", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [typeof (_17 = typeof _types_IAssetModel__WEBPACK_IMPORTED_MODULE_9___default.a !== "undefined" && _types_IAssetModel__WEBPACK_IMPORTED_MODULE_9___default.a) === "function" ? _17 : Object]),
    __metadata("design:returntype", void 0)
], DocumentStore.prototype, "cancelFetchRendition", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [typeof (_18 = typeof _types_IHostProductData__WEBPACK_IMPORTED_MODULE_30___default.a !== "undefined" && _types_IHostProductData__WEBPACK_IMPORTED_MODULE_30___default.a) === "function" ? _18 : Object, typeof (_19 = typeof _types_IIMSData__WEBPACK_IMPORTED_MODULE_31__["default"] !== "undefined" && _types_IIMSData__WEBPACK_IMPORTED_MODULE_31__["default"]) === "function" ? _19 : Object, typeof (_20 = typeof _ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_3__["CloudDocumentsClient"] !== "undefined" && _ccx_acp_fetch__WEBPACK_IMPORTED_MODULE_3__["CloudDocumentsClient"]) === "function" ? _20 : Object]),
    __metadata("design:returntype", void 0)
], DocumentStore.prototype, "initClients", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [typeof (_21 = typeof _ccx_public_acpl_model_mobx_ACPLTypes__WEBPACK_IMPORTED_MODULE_0__["IACPLAssetContext"] !== "undefined" && _ccx_public_acpl_model_mobx_ACPLTypes__WEBPACK_IMPORTED_MODULE_0__["IACPLAssetContext"]) === "function" ? _21 : Object]),
    __metadata("design:returntype", void 0)
], DocumentStore.prototype, "initSAMAssetContext", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [typeof (_22 = typeof _ccx_public_shared_asset_model_js__WEBPACK_IMPORTED_MODULE_2__["AssetContext"] !== "undefined" && _ccx_public_shared_asset_model_js__WEBPACK_IMPORTED_MODULE_2__["AssetContext"]) === "function" ? _22 : Object]),
    __metadata("design:returntype", void 0)
], DocumentStore.prototype, "initSAMJSHostAssetContext", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [String]),
    __metadata("design:returntype", void 0)
], DocumentStore.prototype, "setSAMInitFailed", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* action */ "j"],
    __metadata("design:type", Object)
], DocumentStore.prototype, "updateNGLProfile", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", []),
    __metadata("design:returntype", void 0)
], DocumentStore.prototype, "_updateNGLProfile", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [String]),
    __metadata("design:returntype", Promise)
], DocumentStore.prototype, "waitForInitialization", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [typeof (_23 = typeof _types_IAssetModel__WEBPACK_IMPORTED_MODULE_9___default.a !== "undefined" && _types_IAssetModel__WEBPACK_IMPORTED_MODULE_9___default.a) === "function" ? _23 : Object]),
    __metadata("design:returntype", void 0)
], DocumentStore.prototype, "removeElement", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [Array, typeof (_24 = typeof _types_ICallbacks__WEBPACK_IMPORTED_MODULE_10__["IOnBeforeOperation"] !== "undefined" && _types_ICallbacks__WEBPACK_IMPORTED_MODULE_10__["IOnBeforeOperation"]) === "function" ? _24 : Object, Object]),
    __metadata("design:returntype", Promise)
], DocumentStore.prototype, "beforeOp", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [Object]),
    __metadata("design:returntype", Promise)
], DocumentStore.prototype, "assetOp", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", [typeof (_25 = typeof _types_IAssetModel__WEBPACK_IMPORTED_MODULE_9___default.a !== "undefined" && _types_IAssetModel__WEBPACK_IMPORTED_MODULE_9___default.a) === "function" ? _25 : Object, String, typeof (_26 = typeof _types_ICallbacks__WEBPACK_IMPORTED_MODULE_10__["IOnAfterOperation"] !== "undefined" && _types_ICallbacks__WEBPACK_IMPORTED_MODULE_10__["IOnAfterOperation"]) === "function" ? _26 : Object]),
    __metadata("design:returntype", void 0)
], DocumentStore.prototype, "afterOp", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* action */ "j"],
    __metadata("design:type", Object)
], DocumentStore.prototype, "restoreOp", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* action */ "j"],
    __metadata("design:type", Object)
], DocumentStore.prototype, "archiveOp", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* action */ "j"],
    __metadata("design:type", Object)
], DocumentStore.prototype, "renameOp", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* action */ "j"],
    __metadata("design:type", Object)
], DocumentStore.prototype, "moveOp", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* action */ "j"],
    __metadata("design:type", Object)
], DocumentStore.prototype, "duplicateOp", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* action */ "j"],
    __metadata("design:type", Object)
], DocumentStore.prototype, "pinOp", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* action */ "j"],
    __metadata("design:type", Object)
], DocumentStore.prototype, "unPinOp", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* action */ "j"],
    __metadata("design:type", Object)
], DocumentStore.prototype, "deleteOp", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* action */ "j"],
    __metadata("design:type", Object)
], DocumentStore.prototype, "exportOp", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* action */ "j"],
    __metadata("design:type", Object)
], DocumentStore.prototype, "addFolderOp", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* action */ "j"],
    __metadata("design:type", Object)
], DocumentStore.prototype, "resolveSyncError", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_5__[/* action */ "j"],
    __metadata("design:type", Function),
    __metadata("design:paramtypes", []),
    __metadata("design:returntype", typeof (_27 = typeof Promise !== "undefined" && Promise) === "function" ? _27 : Object)
], DocumentStore.prototype, "fetchSharedWithYou", null);


/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("yLpj")))

/***/ }),

/***/ "xk4V":
/***/ (function(module, exports, __webpack_require__) {

var rng = __webpack_require__("4fRq");

var bytesToUuid = __webpack_require__("I2ZF");

function v4(options, buf, offset) {
  var i = buf && offset || 0;

  if (typeof options == 'string') {
    buf = options === 'binary' ? new Array(16) : null;
    options = null;
  }

  options = options || {};
  var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`

  rnds[6] = rnds[6] & 0x0f | 0x40;
  rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided

  if (buf) {
    for (var ii = 0; ii < 16; ++ii) {
      buf[i + ii] = rnds[ii];
    }
  }

  return buf || bytesToUuid(rnds);
}

module.exports = v4;

/***/ }),

/***/ "xnKR":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("path", {
  d: "M46.805 39.212L42 28V8a2 2 0 0 0-2-2H8a2 2 0 0 0-2 2v20L1.195 39.212A2 2 0 0 0 3.033 42h41.934a2 2 0 0 0 1.838-2.788zM29.719 38H18.281a1 1 0 0 1-.97-1.243l.5-2a1 1 0 0 1 .97-.757h10.438a1 1 0 0 1 .97.757l.5 2a1 1 0 0 1-.97 1.243zM38 26H10V10h28z"
}));

/***/ }),

/***/ "xqFA":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _convertUnsafeMethod = _interopRequireDefault(__webpack_require__("8nyd"));

var _createId = _interopRequireDefault(__webpack_require__("b7KY"));

var _filterDOMProps = _interopRequireDefault(__webpack_require__("Cv/Q"));

var _FocusManager = _interopRequireDefault(__webpack_require__("3C4i"));

var _focusRing = _interopRequireDefault(__webpack_require__("PBY+"));

var _propTypes = _interopRequireDefault(__webpack_require__("17x9"));

var _react = _interopRequireWildcard(__webpack_require__("q1tI"));

const _excluded = ["className", "children", "role", "autoFocus", "selectable", "id", "typeToSelect"];

var _class, _class2, _temp;

function _getRequireWildcardCache(nodeInterop) {
  if (typeof WeakMap !== "function") return null;
  var cacheBabelInterop = new WeakMap();
  var cacheNodeInterop = new WeakMap();
  return (_getRequireWildcardCache = function (nodeInterop) {
    return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
  })(nodeInterop);
}

function _interopRequireWildcard(obj, nodeInterop) {
  if (!nodeInterop && obj && obj.__esModule) {
    return obj;
  }

  if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
    return {
      default: obj
    };
  }

  var cache = _getRequireWildcardCache(nodeInterop);

  if (cache && cache.has(obj)) {
    return cache.get(obj);
  }

  var newObj = {};
  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;

  for (var key in obj) {
    if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
      var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;

      if (desc && (desc.get || desc.set)) {
        Object.defineProperty(newObj, key, desc);
      } else {
        newObj[key] = obj[key];
      }
    }
  }

  newObj.default = obj;

  if (cache) {
    cache.set(obj, newObj);
  }

  return newObj;
}

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

if (false) {} else if (false) {} else {
  __webpack_require__("7kYx");
}

if (true) __webpack_require__("t54g");
if (true) __webpack_require__("N+IC");
if (true) __webpack_require__("ax5x");
if (true) __webpack_require__("WTuW");
const LIST_ITEM_SELECTOR = '.spectrum-Menu-item';
const NOT_DISABLED_SELECTOR = ':not(.is-disabled)';
const SELECTED_LIST_ITEM_SELECTOR = LIST_ITEM_SELECTOR + NOT_DISABLED_SELECTOR + '.is-selected';

let List = (0, _convertUnsafeMethod.default)(_class = (0, _focusRing.default)(_class = (_temp = _class2 = class List extends _react.Component {
  constructor(props) {
    super(props);
    this.listId = (0, _createId.default)();
  }

  render() {
    const _this$props = this.props,
          {
      className,
      children,
      role = 'listbox',
      autoFocus,
      selectable = false,
      id = this.listId,
      typeToSelect = true
    } = _this$props,
          otherProps = _objectWithoutProperties(_this$props, _excluded);

    return /*#__PURE__*/_react.default.createElement(_FocusManager.default, {
      itemSelector: LIST_ITEM_SELECTOR + NOT_DISABLED_SELECTOR,
      selectedItemSelector: SELECTED_LIST_ITEM_SELECTOR,
      typeToSelect: typeToSelect,
      autoFocus: autoFocus
    }, /*#__PURE__*/_react.default.createElement("ul", _extends({
      id: id,
      className: (0, _classnames.default)('spectrum-Menu', {
        'is-selectable': selectable
      }, className),
      role: role
    }, (0, _filterDOMProps.default)(otherProps)), children));
  }

}, _class2.propTypes = {
  /**
   * Focus should immediately be given to the list upon render, specifically
   * the currently selected item
   */
  autoFocus: _propTypes.default.bool,

  /**
   * Class added to this component
   */
  className: _propTypes.default.string,

  /**
   * The WAI-ARIA role for the list. Defaults to "listbox", but could be "menu" depending on context.
   */
  role: _propTypes.default.oneOf(['listbox', 'menu']),

  /**
   * Whether or not the list supports selection.
   */
  selectable: _propTypes.default.bool,

  /**
   * Whether to include alphanumeric typing as a way to move focus to items in a list.
   */
  typeToSelect: _propTypes.default.bool
}, _class2.defaultProps = {
  role: 'listbox'
}, _temp)) || _class) || _class;

exports.default = List;

/***/ }),

/***/ "xrVZ":
/***/ (function(module) {

module.exports = JSON.parse("{\"a11y.button.canvases\":\"{name}\",\"a11y.button.libraries\":\"{name}, biblioteca\",\"a11y.button.listGridToggle\":\"ver alternar, vista de {toggledView, select, grid {cuadrícula} list {lista}}\",\"a11y.button.project\":\"{name}, proyecto\",\"a11y.button.published\":\"{name}, {extension}\",\"a11y.button.selectFolder\":\"Seleccionar carpeta\",\"a11y.button.working\":\"{name}, {extension}, modificado {modified}\",\"a11y.strings.folder\":\"carpeta\",\"header.action.newProject\":\"Nuevo proyecto\",\"header.action.newLibrary\":\"Nueva biblioteca\",\"header.action.browseAll\":\"Examinar todo\",\"header.Name\":\"Nombre\",\"header.Size\":\"Tamaño\",\"header.Sharing\":\"Miembros\",\"header.Team\":\"Espacio de trabajo\",\"header.DateModified\":\"Modificado\",\"header.DateCreated\":\"Creado\",\"header.Status\":\"Marcado como favorito\",\"header.SortBy\":\"Ordenar por\",\"header.sort.label\":\"Ordenar\",\"header.ChangeSortDirection\":\"Cambiar la dirección de ordenación a\",\"header.SortBy.asc\":\"Ascendente\",\"header.SortBy.desc\":\"Descendente\",\"header.selectAll\":\"Seleccionar todo\",\"header.reverseOrder\":\"Invertir orden\",\"header.showCompatible\":\"Archivos compatibles\",\"header.showEverything\":\"Todo\",\"product.illustrator.web\":\"Illustrator Web (Beta)\",\"product.photoshop.web\":\"Photoshop Web (versión beta)\",\"status.followed\":\"Sí\",\"status.unfollowed\":\"No\",\"team.usm.defaultName\":\"Espacio de trabajo {name}\",\"space.access.private.description\":\"Solo personas invitadas\",\"space.access.private.tooltip\":\"Solo las personas que hayan sido invitadas tienen acceso a este proyecto\",\"space.access.team.description\":\"Cualquiera del espacio de trabajo y los invitados\",\"space.access.team.tooltip\":\"Todos los miembros de “{team}“ tienen acceso a este proyecto\",\"yourProjects.title\":\"Proyectos\",\"yourProjects.librariesTab.title\":\"Bibliotecas de equipo\",\"yourProjects.empty.spaces\":\"Crea más proyectos e invita a más miembros del espacio de trabajo\",\"browseAll.title\":\"Examinar todo\",\"yourFiles.title\":\"Tus documentos\",\"yourLibraries.title\":\"Bibliotecas\",\"yourLibraries.metadata\":\"BIBLIOTECA\",\"canvas.metadata\":\"LIENZO\",\"projectInfo.action.view\":\"Ver información\",\"projectInfo.action.edit\":\"Editar proyecto\",\"projectInfo.empty.cta\":\"Crear nuevo proyecto\",\"projectInfo.empty.description\":\"Creative Cloud Projects simplifica la búsqueda, la organización, el uso compartido y la toma de decisiones, poniendo en un solo lugar todo lo que necesitas para tus proyectos creativos.\",\"projectInfo.empty.heading\":\"Más creación y menos trabajo de puesta al día.\",\"projectInfo.error.description\":\"Inténtalo de nuevo más tarde\",\"projectInfo.error.heading\":\"No se puede cargar {section}\",\"projectInfo.new.error.title\":\"No se puede crear un proyecto nuevo\",\"projectInfo.new.noPermission.description\":\"Ponte en contacto con el administrador para obtener más información.\",\"projectInfo.title.create\":\"NUEVO PROYECTO\",\"projectInfo.title.edit\":\"EDITAR PROYECTO\",\"projectInfo.title.view\":\"INFORMACIÓN SOBRE EL PROYECTO\",\"projectInfo.access.title\":\"Quién puede editar este proyecto\",\"projectInfo.access.warning\":\"Algunos miembros podrían dejar de tener acceso al proyecto si cambias el permiso a “Solo personas invitadas“.\",\"projectInfo.organization\":\"Organización\",\"projectInfo.organization.placeholder\":\"Selecciona una\",\"projectInfo.description\":\"Descripción\",\"textField.invalid.characters\":\"Los nombres no pueden incluir los siguientes caracteres: \\\\\\\\ / * ? \\\" | : < >\",\"textField.invalid.duplicateName\":\"Ya existe un proyecto con este nombre en esta organización.\",\"textField.invalid.duplicateName.space\":\"Ya existe un proyecto con este nombre en este espacio de trabajo.\",\"textField.invalid.duplicateName.team\":\"Ya existe un espacio de trabajo con este nombre en esta organización.\",\"textField.invalid.empty\":\"El nombre no debe dejarse en blanco\",\"textField.invalid.generic\":\"Nombre no válido\",\"textField.invalid.length\":\"Los nombres no pueden superar los 50 caracteres\",\"textField.invalid.nameEndsWithDot\":\"Los nombres no pueden acabar con un punto\",\"textField.invalid.offline\":\"Vuelve a conectarte para acceder a todos tus espacios de trabajo y proyectos. Para ver los archivos locales de tus proyectos, ve a Inicio.\",\"projectInfo.textField.placeholder\":\"Dar nombre a este proyecto\",\"projectInfo.team\":\"Espacio de trabajo\",\"projectInfo.description.placeholder\":\"Ej.: archivos, comentarios y materiales de referencia para el proyecto de cliente\",\"projectInfo.description.invalidLength\":\"La descripción no puede tener más de 1000 caracteres\",\"projectInfo.toast.success.new\":\"Proyecto creado correctamente: {name}\",\"projectInfo.toast.success.update\":\"Proyecto actualizado correctamente: {name}\",\"projectInfo.toast.error.generic\":\"Error al {create, select, true {crear} other {editar}} proyecto\",\"team.empty.heading\":\"Reúne a todos en la misma página con los proyectos\",\"team.empty.description\":\"¿Te parece agotador bloquear archivos, lidiar con el caos de las versiones y enviar capturas de pantalla por correo electrónico para revisarlas? Haz uso de los espacios para organizar proyectos, recabar recursos y recibir comentarios y compartir los archivos necesarios para que el equipo pueda trabajar con ellos.\",\"team.empty.createSpace\":\"Crear proyecto\",\"team.empty.inviteMembers\":\"Invitar a los integrantes\",\"team.empty.startHere\":\"EMPEZAR AQUÍ\",\"team.create.success\":\"Espacio de trabajo creado correctamente: {name}\",\"team.create.error.generic\":\"Error al crear espacio de trabajo\",\"team.edit.success\":\"Espacio de trabajo actualizado correctamente: {name}\",\"team.edit.error.generic\":\"Error al actualizar espacio de trabajo\",\"team.archive.success\":\"{count, plural, =1 {# espacio de trabajo} other {# espacios de trabajo}} eliminado(s)\",\"team.archive.error.generic\":\"No se puede eliminar {count, plural, =1 {# espacio de trabajo} other {# espacios de trabajo}}\",\"team.error.generic\":\"Lo sentimos, se ha producido un error.\",\"project1Up.action.projectInfo\":\"Ver información\",\"project1up.region.space.ariaLabel\":\"{projectName}, proyecto\",\"project1Up.section.libraries\":\"Bibliotecas\",\"project1Up.section.libraries.empty.cta\":\"Agregar Bibliotecas Creative Cloud\",\"project1Up.section.libraries.empty.description\":\"Agrega a bibliotecas los enlaces que necesitas para realizar tu trabajo.\",\"project1Up.section.libraries.empty.heading\":\"Reunir todo en un único lugar\",\"project1Up.section.filter\":\"Filtro\",\"project1Up.section.filter.label\":\"Filtrar por palabra clave\",\"project1Up.section.filter.enterKeyword\":\"Introducir palabra clave\",\"project1Up.section.filterFiles.empty.heading\":\"No hay ningún resultado que coincida con el filtro seleccionado\",\"project1Up.section.compatibleFiles.empty.heading\":\"No hay archivos compatibles en este proyecto\",\"project1Up.section.workingFiles\":\"Archivos de trabajo\",\"project1Up.section.workingFiles.empty.addFiles\":\"Añadir archivos\",\"project1Up.section.workingFiles.empty.createFolder\":\"Crear nueva carpeta\",\"project1Up.section.workingFiles.empty.description\":\"Repite proyectos y colabora con otros miembros.\",\"project1Up.section.workingFiles.empty.heading\":\"Trabaja en lo que quieras cuando lo necesites\",\"project1Up.section.published\":\"Publicado\",\"project1Up.section.published.empty.cta\":\"Cómo publicar vínculos\",\"project1Up.section.published.empty.description\":\"Envía enlaces de solo lectura para recibir comentarios de las personas indicadas en el momento adecuado.\",\"project1Up.section.published.empty.description.readonly\":\"Cuando alguien necesite comentarios o revisión, añadirán aquí un enlace.\",\"project1Up.section.published.empty.heading\":\"Compartir con propósito\",\"project1Up.section.published.empty.heading.readonly\":\"No hay elementos publicados en este proyecto\",\"project1Up.section.canvases\":\"Lienzos\",\"project1Up.section.canvases.empty.cta\":\"Añadir lienzos de Creative Cloud\",\"project1Up.section.canvases.empty.description\":\"Agrega enlaces a lo que necesites para realizar tu trabajo.\",\"project1Up.section.canvases.empty.heading\":\"Reunir todo en un único lugar\",\"project1Up.section.files\":\"Archivos\",\"project1Up.error.accessDenied.heading\":\"No tienes acceso\",\"project1Up.error.accessDenied.description\":\"Te han retirado de este proyecto. Ponte en contacto con el administrador si crees que se trata de un error.\",\"project1Up.header.seeAll\":\"Ver todos\",\"project1up.subheader.selected\":\"{count, plural, =1 {# elemento seleccionado} other {# elementos seleccionados}}\",\"project1up.subheader.emptyDescription\":\"Añade una descripción a tu proyecto\",\"project1up.subheader.canvases.title\":\"Lienzos\",\"project1up.subheader.canvases.subtitle\":\"TODO: SUBTÍTULO DE LIENZOS\",\"project1up.subheader.libraries.title\":\"Bibliotecas\",\"project1up.subheader.libraries.subtitle\":\"Los miembros pueden incluir aquí enlaces en Bibliotecas Creative Cloud.\",\"project1up.subheader.working.title\":\"Archivos de trabajo\",\"project1up.subheader.working.subtitle\":\"Los miembros de este proyecto pueden editar estos archivos.\",\"project1up.subheader.output.title\":\"Publicado\",\"project1up.subheader.output.subtitle\":\"{contributor, select, true {Comparte versiones de solo lectura del trabajo del proyecto con personas fuera de él} other {Consulta y comenta estos elementos de solo lectura}}\",\"project.subtitle\":\"PROYECTO\",\"project.countContributors\":\"{count, plural, =1 {# miembro} other {# miembros}}\",\"project.versionError.reload.description\":\"Prueba a actualizar el navegador.\",\"project.versionError.reload.title\":\"No se puede acceder al proyecto\",\"project.versionError.update.description\":\"No podrás acceder al proyecto hasta que actualices la aplicación.\",\"project.versionError.update.title\":\"Actualizar {appName} para abrir\",\"project.alreadyDiscarded.title\":\"Se ha eliminado este proyecto\",\"project.alreadyDiscarded.description\":\"Ponte en contacto con el administrador si crees que se trata de un error o busca otro contenido.\",\"project.deleted.title\":\"Se ha eliminado este proyecto permanentemente\",\"project.deleted.description\":\"No se puede acceder a este proyecto porque ya no está disponible.\",\"project.metadataError.backLabel\":\"Volver a proyectos\",\"project.metadataError.description\":\"No es posible encontrar el proyecto que estás buscando o no tienes acceso.\",\"project.metadataError.title\":\"Lo sentimos, se ha producido un error.\",\"folder.subtitle\":\"CARPETA\",\"libraries.toast.add.start\":\"Agregando {count, plural, =1 {# biblioteca} other {# bibliotecas}}\",\"libraries.toast.add.success\":\"{count, plural, =1 {# biblioteca agregada} other {# bibliotecas agregadas}}\",\"libraries.toast.add.error\":\"Error al añadir {count, plural, =1 {# biblioteca} other {# bibliotecas}}.  Vuelve a intentarlo.\",\"libraries.toast.add.duplicate\":\"Esta biblioteca ya existe\",\"libraries.toast.add.onlyDuplicates\":\"No es posible añadir {count, plural, =1 {# biblioteca porque la biblioteca ya existe} other {# bibliotecas porque las bibliotecas ya existen}}.\",\"libraries.toast.delete.success\":\"{count, plural, =1 {Se ha eliminado # biblioteca} other {Se han eliminado # bibliotecas}} correctamente\",\"libraries.toast.delete.error\":\"No ha sido posible eliminar {count, plural, =1 {# biblioteca} other {# bibliotecas}}\",\"libraries.toast.follow.inProgress\":\"Siguiendo {count, plural, =1 {# biblioteca} other {# bibliotecas}}\",\"libraries.toast.follow.success\":\"Se {count, plural, =1 {ha comenzado a seguir # biblioteca} other {han comenzado a seguir # bibliotecas}}\",\"libraries.toast.follow.error\":\"No se {count, plural, =1 {ha podido comenzar a seguir # biblioteca} other {han podido comenzar a seguir # bibliotecas}}\",\"libraries.toast.unfollow.inProgress\":\"Dejando de seguir {count, plural, =1 {# biblioteca} other {# bibliotecas}}\",\"libraries.toast.unfollow.success\":\"Se {count, plural, =1 {ha dejado de seguir # biblioteca} other {han dejado de seguir # bibliotecas}}\",\"libraries.toast.unfollow.error\":\"No se {count, plural, =1 {ha podido dejar de seguir # biblioteca} other {han podido dejar de seguir # bibliotecas}}\",\"libraries.modal.empty.heading\":\"No hay bibliotecas\",\"libraries.modal.empty.description\":\"Tu organización no ha compartido ninguna biblioteca\",\"libraries.modal.error.limitExceeded\":\"No es posible añadir una biblioteca\",\"libraries.modal.error.limitExceeded.detail\":\"Puedes añadir hasta 100 bibliotecas a un proyecto. Elimina algunas para incluir más.\",\"libraries.brokenResources\":\"Algunas bibliotecas no aparecen porque no tienes acceso. Contacta con otros miembros para obtener más información.\",\"copy.start\":\"Copiando {count, plural, =1 {# elemento} other {# elementos}}\",\"copy.failure\":\"No es posible copiar {count, plural, =1 {# elemento} other {# elementos}}\",\"copy.failure.partial\":\"No se pueden copiar algunos elementos\",\"copy.success\":\"{count, plural, =1 {# elemento copiado} other {# elementos copiados}} copied\",\"copy.conflictSuffix\":\"copia\",\"move.start\":\"Moviendo {count, plural, =1 {# elemento} other {# elementos}}\",\"move.failure\":\"No es posible mover {count, plural, =1 {# elemento} other {# elementos}}\",\"move.failure.partial\":\"No se pueden mover algunos elementos\",\"move.success\":\"{count, plural, =1 {# elemento movido} other {# elementos movidos}}\",\"upload.start\":\"Cargando {count, plural, =1 {# elemento} other {# elementos}}\",\"upload.failure\":\"No es posible cargar {count, plural, =1 {# elemento} other {# elementos}}\",\"upload.failure.partial\":\"No se pueden cargar algunos elementos\",\"upload.failure.snapshot\":\"Este elemento no es compatible\",\"upload.success\":\"{count, plural, =1 {# elemento cargado} other {# elementos cargados}}\",\"download.start\":\"Descargando {count, plural, =1 {# elemento} other {# elementos}}\",\"download.failure\":\"No se puede descargar {count, plural, =1 {# elemento} other {# elementos}}\",\"download.failure.partial\":\"No se pueden descargar algunos elementos\",\"download.success\":\"{count, plural, =1 {# elemento descargado} other {# elementos descargados}}\",\"delete.failure\":\"No se puede eliminar {count, plural, =1 {# elemento} other {# elementos}}\",\"delete.failure.partial\":\"No se pueden eliminar algunos elementos\",\"delete.success\":\"{count, plural, =1 {# elemento eliminado} other {# elementos eliminados}}\",\"jobs.failure\":\"{count, plural, =1 {# elemento} other {# elementos}} sin completar\",\"jobs.inProgress\":\"En proceso...\",\"jobs.success\":\"{count, plural, =1 {# elemento completado} other {# elementos completados}}\",\"restore.failure\":\"No se puede restaurar {count, plural, =1 {# elemento} other {# elementos}}\",\"restore.failure.partial\":\"No se pueden restaurar algunos elementos\",\"restore.success\":\"{count, plural, =1 {# elemento restaurado} other {# elementos restaurados}}\",\"rename.start\":\"Cambiando de nombre\",\"rename.success\":\"Se ha cambiado de nombre a {count, plural, =1 {# elemento} other {# elementos}}\",\"rename.failure\":\"No se ha podido cambiar el nombre del elemento por un error del servidor\",\"rename.failure.conflict\":\"Ya tienes un elemento aquí con este nombre\",\"rename.offline.heading\":\"No se puede cambiar nombre\",\"rename.offline\":\"No tienes conexión y no puedes cambiar el nombre del elemento. Vuelve a conectarse para realizar esta acción.\",\"bookmark.follow.error\":\"No puedes incluir en favoritos este proyecto\",\"bookmark.unfollow.error\":\"No se puede quitar de favoritos este proyecto\",\"bookmark.follow.success\":\"Guardado correctamente como favorito {projectName}\",\"bookmark.unfollow.success\":\"Se ha eliminado correctamente de los favoritos {projectName}\",\"bookmark.bulk.follow.success\":\"Inclusión correcta en favoritos de {count, plural, =1 {# elemento} other {# elementos}}\",\"bookmark.bulk.follow.partial\":\"No se puede incluir en favoritos algunos elementos\",\"bookmark.bulk.follow.error\":\"No se puede incluir en favoritos {count, plural, =1 {# elemento} other {# elementos}}\",\"bookmark.bulk.unfollow.success\":\"{count, plural, =1 {# elemento excluido} other {# elementos excluidos}} correctamente de favoritos\",\"bookmark.bulk.unfollow.partial\":\"No se pueden quitar de favoritos algunos elementos\",\"bookmark.bulk.unfollow.error\":\"No se puede quitar de favoritos {count, plural, =1 {# elemento} other {# elementos}}\",\"copyLink.success\":\"Vínculo copiado al portapapeles\",\"copyLink.failure\":\"No se puede copiar el enlace\",\"starterUser.project1upNavigation\":\"Tu plan de inicio no incluye abrir documentos en proyectos\",\"starterUser.project1upNavigationCDPSave\":\"Tu plan de inicio no incluye guardar documentos en proyectos\",\"invite.failure\":\"No se han podido enviar las invitaciones. Vuelve a intentarlo.\",\"accessibility.backButton\":\"Volver atrás\",\"button.role\":\"Botón\",\"button.actions\":\"Acciones\",\"button.add\":\"Añadir\",\"button.addFiles\":\"Añadir archivos\",\"button.addLibrary\":\"Añadir biblioteca\",\"button.createDocument\":\"Nuevo archivo de {appName}\",\"button.library\":\"Biblioteca\",\"button.back\":\"Volver\",\"button.browse\":\"Examinar todo\",\"button.cancel\":\"Cancelar\",\"button.okay\":\"De acuerdo\",\"button.canvas\":\"Lienzo\",\"button.addCanvas\":\"Nuevo lienzo\",\"button.changeDefaultApp\":\"Cambiar aplicación predeterminada...\",\"button.close\":\"Cerrar\",\"button.continue\":\"Continuar\",\"button.copy\":\"Copiar en...\",\"button.copyLink\":\"Copiar vínculo\",\"button.create\":\"Crear\",\"button.createNewFolder\":\"Crear nueva carpeta\",\"button.newFile\":\"Archivo nuevo\",\"button.newFolder\":\"Nueva carpeta\",\"button.delete\":\"Eliminar\",\"button.deleteResource\":\"Quitar\",\"button.done\":\"Hecho\",\"button.download\":\"Descargar\",\"button.favorite\":\"Favorito\",\"button.follow\":\"Seguir\",\"button.invite\":\"Invitar\",\"button.inviteLabel\":\"Invitar a personas\",\"button.leave\":\"Salir\",\"button.leaveProject\":\"Abandonar espacio de trabajo\",\"button.move\":\"Mover a...\",\"button.next\":\"Siguiente\",\"button.ok\":\"OK\",\"button.open\":\"Abrir\",\"button.openWith\":\"Abrir con\",\"button.open.appName\":\"{appName} {isDefault, select, true {(Predeterminado)} other {}}\",\"button.redo\":\"Intentar de nuevo\",\"button.reload\":\"Volver a cargar\",\"button.rename\":\"Cambiar nombre\",\"button.restore\":\"Restaurar\",\"button.retry\":\"Reintentar\",\"button.save\":\"Guardar\",\"button.select\":\"Seleccionar\",\"button.share\":\"Compartir\",\"button.skipTour\":\"Omitir recorrido\",\"button.undo\":\"Deshacer\",\"button.unfavorite\":\"No favorito\",\"button.unfollow\":\"Dejar de seguir\",\"button.update\":\"Actualizar\",\"button.upgrade\":\"Actualizar\",\"button.view\":\"Ver todo\",\"button.viewProject\":\"Ver proyecto\",\"button.viewTarget\":\"Ver\",\"button.createWeblink\":\"Añadir vínculo web\",\"button.leaveTeam\":\"Abandonar espacio de trabajo\",\"button.renameTeam\":\"Cambiar nombre de espacio de trabajo\",\"button.editTeam\":\"Editar información del espacio de trabajo\",\"button.archiveTeam\":\"Eliminar espacio de trabajo\",\"button.upload\":\"Cargar archivos\",\"button.goToDeleted\":\"Ver en eliminados\",\"button.viewEverything\":\"Ver todo\",\"button.viewInWeb\":\"Ver en la web\",\"abbreviations.fileSize.byte\":\"B\",\"abbreviations.fileSize.kilobyte\":\"KB\",\"abbreviations.fileSize.megabyte\":\"MB\",\"abbreviations.fileSize.gigabyte\":\"GB\",\"abbreviations.fileSize.terabyte\":\"TB\",\"statusIcon.conflicted\":\"Conflicto de sincronización\",\"statusIcon.onlineOnly\":\"Solo en línea\",\"statusIcon.availableOffline\":\"Disponible sin conexión\",\"statusIcon.syncing\":\"Sincronizando...\",\"statusIcon.waitingToSync\":\"Esperando a sincronizar\",\"statusMessage.offline.description\":\"Vuelve a conectarte para acceder a todos tus espacios de trabajo y proyectos. Para ver los archivos locales de tus proyectos, ve a Inicio.\",\"statusMessage.offline.heading\":\"Estás desconectado\",\"statusMessage.offline.toast\":\"Estás desconectado, por lo que es posible que algunas funciones y archivos no estén disponibles.\",\"toggle.listView\":\"Vista de lista\",\"toggle.gridView\":\"Vista de miniaturas\",\"color.fuchsia\":\"Fucsia\",\"color.indigo\":\"Añil\",\"color.celery\":\"Apio\",\"color.magenta\":\"Magenta\",\"color.yellow\":\"Amarillo\",\"color.seafoam\":\"Azul marino\",\"color.chartreuse\":\"Verde amarillento\",\"color.purple\":\"Morado\",\"color.blue\":\"Azul\",\"color.red\":\"Rojo\",\"color.orange\":\"Naranja\",\"color.green\":\"Verde\",\"color.label\":\"Color del proyecto\",\"tooltip.offline.general\":\"Vuelve a conectarte para realizar esta acción\",\"tooltip.moreFaces\":\"+ {number} más\",\"action.leave.space.success\":\"Has salido de {count, plural, =1 {# proyecto} other {# proyectos}}\",\"action.leave.prototype.success\":\"Acceder a {count, plural, =1 {# prototipo} other {# prototipos}} eliminado(s)\",\"action.leave.file.success\":\"Acceder a {count, plural, =1 {# archivo} other {# archivos}} eliminados\",\"action.leave.canvas.success\":\"Acceder a {count, plural, =1 {# lienzo} other {# lienzos}} eliminados\",\"action.leave.team.success\":\"Has salido de 1 espacio de trabajo\",\"action.leave.space.error\":\"No puedes abandonar este proyecto\",\"action.leave.prototype.error\":\"No puedes abandonar este prototipo\",\"action.leave.file.error\":\"No se puede salir de este archivo\",\"action.leave.team.error\":\"No puedes abandonar este espacio de trabajo\",\"action.leave.canvas.error\":\"No puedes abandonar este lienzo\",\"action.leave.space.partial.error\":\"No se puede abandonar todos los proyectos\",\"action.leave.prototype.partial.error\":\"No se puede abandonar todos los prototipos\",\"action.leave.file.partial.error\":\"No se puede salir de todos los archivos\",\"action.leave.canvas.partial.error\":\"No se puede salir de todos los lienzos\",\"action.leave.error.onlyContributor\":\"Eres el único miembro. Agrega otro antes de abandonar.\",\"action.leave.error.addressBookGroupMember\":\"Sal del grupo y vuelve a intentarlo.\",\"action.leave.error.admin\":\"No puedes salir porque eres administrador.\",\"action.leave.error.generic\":\"No puedes salir porque se ha producido un error.\",\"action.reportAbuse\":\"Notificar abuso\",\"action.reportAbuse.required\":\"Obligatorio\",\"action.reportAbuse.titleText\":\"Si crees que este contenido de Creative Cloud infringe las Condiciones de uso de Adobe, puedes informar del mismo rellenando este sencillo formulario.\",\"action.reportAbuse.emailInput\":\"Tu correo electrónico\",\"action.reportAbuse.nameInput\":\"Tu nombre\",\"action.reportAbuse.radioButtonText\":\"¿Por qué denuncias este contenido?\",\"action.reportAbuse.defamation\":\"Difamación\",\"action.reportAbuse.hate\":\"Contenido racista o violento\",\"action.reportAbuse.trademark\":\"Infracción de marca comercial\",\"action.reportAbuse.pornography\":\"Contenido sexualmente explícito\",\"action.reportAbuse.vulgar\":\"Contenido ofensivo\",\"action.reportAbuse.other\":\"Otros\",\"action.reportAbuse.inappropriate\":\"Inapropiado\",\"action.reportAbuse.age\":\"Imprecisión de edad\",\"action.reportAbuse.gender\":\"Imprecisión de género\",\"action.reportAbuse.textAreaTitle\":\"Facilita una descripción de lo que te preocupa\",\"action.reportAbuse.describeConcern\":\"Describe la preocupación\",\"action.reportAbuse.success\":\"El abuso se ha notificado correctamente\",\"action.reportAbuse.failure\":\"Error al notificar infracción\",\"action.menu.label\":\"Menú de acciones\",\"action.label\":\"Acción\",\"dialog.genericError.description\":\"Lo sentimos, se ha producido un error.\",\"dialog.genericError.title\":\"Error inesperado\",\"dialog.leave.space.title\":\"Salir de {count, plural, =1 {{name}} other {proyectos}}\",\"dialog.leave.prototype.title\":\"Salir de {count, plural, =1 {este prototipo} other {prototipos}}\",\"dialog.leave.file.title\":\"Salir de {count, plural, =1 {este archivo} other {archivos}}\",\"dialog.leave.canvas.title\":\"Salir de {count, plural, =1 {este lienzo} other {lienzos}}\",\"dialog.leave.team.title\":\"¿Te vas a ir?\",\"dialog.leave.team.detail\":\"No tendrás la opción de anular la acción si te eliminas como miembro. Ponte en contacto con un administrador si quieres que te vuelvan a añadir al espacio de trabajo.\",\"dialog.leave.space.detail\":\"Dejarás de poder acceder a los elementos que no sean tuyos y que estén en este proyecto. Si sales de “{projectName}“, no podrás revertir esta acción.\",\"dialog.leave.prototype.detail\":\"No podrás volver a acceder a este sin que te inviten.\",\"dialog.leave.file.detail\":\"No podrás volver a acceder a este sin que te inviten.\",\"dialog.leave.canvas.detail\":\"No podrás volver a acceder a este sin que te inviten.\",\"dialog.leave.detail\":\"{type, select, space {Dejarás de poder acceder a los elementos que no sean tuyos en {count, plural, =1 {este proyecto} other {estos proyectos}}. Si sales de {count, plural, =1 {\\\"{name}\\\"} other {estos proyectos}}, no podrás revertir esta acción.} other {No podrás volver a acceder a {count, plural, =1 {este} other {estos}} sin que te inviten{count, plural, =1 {.} other {:}}}}\",\"dialog.deleteFailed.title\":\"No se pueden eliminar todos los elementos\",\"dialog.deleteWarning.description\":\"{type, select, spaces {Al hacer esto, se eliminarán los contenidos de todos los miembros de estos proyectos:} other {Al hacer esto, se eliminarán los siguientes elementos de todos los miembros de este proyecto:}}\",\"dialog.deleteWarning.title\":\"{type, select, space {Eliminar {count} {count, plural, =1 {proyecto} other {proyectos}}} other {Eliminar {count} {count, plural, =1 {elemento} other {elementos}}}}\",\"dialog.deleteFailed.description.unauthorized\":\"No se puede eliminar porque te han retirado del proyecto:\",\"dialog.deleteFailed.description.alreadyDeleted\":\"No se puede eliminar porque otra persona ya eliminó este elemento:\",\"dialog.deleteFailed.description.unknown\":\"No se puede eliminar porque ha habido un error:\",\"dialog.cantCopyAllItems\":\"No se pueden copiar todos los elementos\",\"dialog.cantCopyBecauseSomethingWentWrong\":\"No se puede copiar porque ha habido un error:\",\"dialog.cantCopyBecauseYouWereSignedOut\":\"No se puede copiar porque cerraste la sesión:\",\"dialog.cantCopyBecauseYouWereRemoved\":\"No se puede copiar porque te han retirado de este proyecto:\",\"dialog.cantCopyBecauseItemWasDeleted\":\"No se puede copiar porque otra persona eliminó este elemento:\",\"dialog.cantCopyBecauseItemExists\":\"No se puede copiar porque este elemento ya existe en la ubicación donde intentaste copiarlo:\",\"dialog.cantMoveAllItems\":\"No se pueden mover todos los elementos\",\"dialog.cantMoveBecauseSomethingWentWrong\":\"No se puede mover porque ha habido un error:\",\"dialog.cantMoveBecauseYouWereSignedOut\":\"No se puede mover porque cerraste la sesión:\",\"dialog.cantMoveBecauseYouWereRemoved\":\"No se puede mover porque te han retirado de este proyecto:\",\"dialog.cantMoveBecauseItemWasDeleted\":\"No se puede mover porque otra persona eliminó este elemento:\",\"dialog.cantMoveBecauseItemExists\":\"No se puede mover porque este elemento ya existe en la ubicación donde intentaste moverlo:\",\"dialog.createFolder.error\":\"Error del servidor, no se pudo guardar la carpeta\",\"dialog.createFolder.nameConflict\":\"Ya hay una carpeta con este nombre.\",\"dialog.createFolder.placeholder\":\"Nombre de la carpeta\",\"dialog.createFolder.title\":\"Crear carpeta\",\"dialog.createFolder.success\":\"Carpeta creada correctamente\",\"dialog.createWeblink.error\":\"URL no admitido\",\"dialog.createWeblink.tooManyRequests\":\"Error de red inesperado. Inténtalo de nuevo.\",\"dialog.createWeblink.success\":\"Se ha añadido 1 elemento\",\"dialog.createWeblink.nameConflict\":\"Este título ya existe\",\"dialog.createWeblink.name.placeholder\":\"Introducir un nombre para este vínculo\",\"dialog.createWeblink.link.placeholder\":\"https://\",\"dialog.createWeblink.name\":\"Título personalizado\",\"dialog.createWeblink.link\":\"Vínculo\",\"dialog.createWeblink.title\":\"Crear un vínculo web\",\"app.type.webLink\":\"ENLACE A WEB\",\"dialog.createCanvas.error\":\"No se puede crear un lienzo\",\"dialog.move.title\":\"Mover a proyecto {projectName}\",\"dialog.move.detail\":\"Al mover este elemento, los que puedan acceder a él no serán los mismos.\",\"moveToTeam.confirm.title\":\"Mover al espacio de trabajo {name}\",\"moveToTeam.confirm.message\":\"Si mueves tus proyectos aquí, algunos usuarios no podrán acceder a estos. A tus proyectos podrá acceder cualquier persona que tenga acceso a tu espacio de trabajo.\",\"moveToTeam.disabled.differentOrg.tooltip.message\":\"No puedes mover proyectos a un espacio de trabajo de una organización diferente.\",\"moveToSpace.disabled.differentOrg.tooltip.message\":\"No puedes mover elementos a un proyecto de una organización diferente.\",\"moveToTeam.success\":\"Has movido {count, plural, =1 {# proyecto} other {# proyectos}} al espacio de trabajo {name}\",\"confirmationDialog.dontShowAgain\":\"No volver a mostrar\",\"dialog.open.title\":\"Abrir en la Web\",\"dialog.open.detail\":\"No puedes abrir este archivo en {appName}, pero puedes acceder a él en el navegador.\",\"dialog.renameTeam.title\":\"Cambiar nombre de espacio de trabajo\",\"dialog.renameTeam.placeholder\":\"Introducir un nombre para este espacio de trabajo\",\"dialog.renameTeam.error\":\"Lo sentimos, se ha producido un error.\",\"dialog.renameTeam.nameConflict\":\"Este nombre ya existe\",\"dialog.archiveTeam.title\":\"¿Quieres eliminar este espacio de trabajo?\",\"dialog.archiveTeam.detail\":\"No podrás anular la acción si te eliminas como miembro. Ponte en contacto con un administrador si quieres volver a unirte al espacio de trabajo.\",\"dialog.saveToCloud.title\":\"Hay archivos guardados en Creative Cloud\",\"dialog.saveToCloud.detail\":\"Tu documento en la nube ahora incluye un historial de versiones, funciones de invitación y coedición, acceso instantáneo en otros dispositivos y mucho más. Puedes encontrarlo aquí y en las aplicaciones de Creative Cloud que uses.\",\"input.invalidCharInput\":\"El nombre no puede incluir los siguientes caracteres: \\\\\\\\ / * ? \\\" | :\",\"input.invalidEmptyInput\":\"Los {names, select, true {nombres} other {títulos}} no pueden estar en blanco\",\"input.nameTooLong\":\"Los {names, select, true {nombres} other {títulos}} no pueden tener más de {maxLength} caracteres\",\"input.nameEndsWithDot\":\"Los {names, select, true {nombres} other {títulos}} no pueden terminar con un punto\",\"input.weblink.nameRestricted\":\"Los enlaces web no pueden tener los siguientes títulos: “con“, “prn“, “aux“, “nul“, “com#“, “lpt#“\",\"input.nameRestricted\":\"Los activos no pueden tener los siguientes nombres: con/prn/aux/nul/com#/lpt#\",\"input.weblink.invalidCharInput\":\"Los títulos no pueden incluir solamente espacios ni los siguientes caracteres: \\\\\\\\ / * ? \\\" | : < > \",\"input.name.invalidCharInput\":\"Los nombres no pueden incluir solamente espacios ni los siguientes caracteres: \\\\\\\\ / * ? \\\" | : < > \",\"cdpFooter.orphanedArtifactsWarning\":\"Los vínculos publicados conectados a los elementos que estás moviendo permanecerán en el proyecto original\",\"cdpFooter.libraryPrivacyWarning\":\"Si tienes permisos para compartir en una biblioteca que añadas, los abonados del proyecto podrán verla.\",\"toast.beforeOp.error.documentIsOpen\":\"Cierra {count, plural, =1 {el documento} other {los documentos}} para realizar esta acción.\",\"app.type.designSpecs\":\"ESPECIFICACIONES DE DISEÑO\",\"app.type.prototype\":\"PROTOTIPO\",\"app.type.publishedLink\":\"VÍNCULO PUBLICADO\",\"popover.header\":\"Colabora en un proyecto con otros y comparte tu trabajo para intercambiar comentarios.\",\"popover.linkout\":\"Más información\",\"team.libraries.filter.all\":\"Todo\",\"team.libraries.filter.addedToYourLibraries\":\"Añadida a tus bibliotecas\",\"team.libraries.filter.notAdded\":\"No añadida\",\"team.spaces.filter.all\":\"Todo\",\"team.spaces.filter.favorited\":\"Favorito\",\"team.filter.empty.heading\":\"No hay ningún proyecto que coincida con el filtro seleccionado\",\"team.filter.empty.description1\":\"No se ha encontrado ningún resultado de \",\"team.filter.empty.description2\":\" en esta lista. Revisa que lo hayas escrito bien o usa otras palabras clave.\",\"team.filter.no.match.description\":\"No se ha encontrado ningún resultado en esta lista. Revisa que lo hayas escrito bien o usa otro criterio de filtro.\",\"team.filter.filterText\":\"{filter}\",\"team.header.other.teams\":\"Otros espacios de trabajo\",\"space.empty.heading\":\"Todo en un solo lugar, todos al día\",\"space.empty.description\":\"Llena este proyecto con archivos de trabajo y materiales relacionados. Invita a colaboradores a unirse y a agregar también en lo que están trabajando.\",\"space.empty.canvasHeading\":\"CREATIVE CLOUD CANVAS\",\"space.empty.actionsHeading\":\"AÑADE CONTENIDO A TU PROYECTO\",\"space.empty.createCanvas\":\"Nuevo lienzo\",\"space.empty.upload\":\"Añadir archivos\",\"space.empty.createFolder\":\"Nueva carpeta\",\"space.empty.createWeblink\":\"Vínculos web\",\"space.empty.addResource\":\"Biblioteca\",\"folder.empty.heading\":\"Esta carpeta está vacía.\",\"folder.empty.description\":\"Empieza a añadir archivos para llenarla.\",\"folder.discard.heading\":\"Esta carpeta se ha eliminado.\",\"folder.discard.description\":\"Ponte en contacto con el administrador si crees que se trata de un error o busca otro contenido.\",\"folder.error.description\":\"Ha habido un problema al cargar el contenido de esta carpeta.\",\"space.empty.section.createACanvas\":\"Crear un lienzo\",\"tooltip.opensInBrowser\":\"Se abre en el navegador\",\"space.empty.workingFiles\":\"Sigue añadiendo a este proyecto\",\"space.empty.canvasPopoverTitle\":\"Probar Creative Cloud Canvas (versión beta)\",\"space.empty.canvasPopoverContent\":\"Usa lienzos para diseñar, visualizar y revisar trabajos creativos.\",\"space.error.heading\":\"No se puede cargar el proyecto\",\"space.error.description\":\"Ha habido un problema al cargar el contenido de este proyecto.\",\"createTeamWizard.createTeam.sidebarHeading\":\"Crear espacio de trabajo\",\"createTeamWizard.createTeam.sidebarCopy\":\"Crea un espacio de trabajo para que todos estén bien coordinados y organizados.\",\"createTeamWizard.createTeam.sidebarCopy.adminconsole\":\"Configura un espacio donde tu equipo pueda colaborar y compartir archivos.\",\"createTeamWizard.createTeam.sidebarLink\":\"Más información\",\"createTeamWizard.createTeam.contentHeading\":\"Nuevo espacio de trabajo\",\"createTeamWizard.createTeam.loading\":\"Creando el espacio de trabajo “{name}“\",\"createTeamWizard.inviteMembers.sidebarHeading\":\"Invitar a miembros al espacio de trabajo “{name}“\",\"createTeamWizard.inviteMembers.sidebarCopy\":\"Empieza escribiendo un nombre o correo electrónico para invitar ahora a miembros o sáltate este paso e invítalos más tarde.\",\"createTeamWizard.inviteMembers.loading\":\"Invitando a miembros al espacio de trabajo “{name}“\",\"createTeamWizard.inviteMembers.contentHeading\":\"Invitar a los integrantes\",\"createTeamWizard.inviteMembers.successToast\":\"Se han añadido miembros al nuevo espacio de trabajo\",\"createTeamWizard.progress\":\"Paso {current} de {total}\",\"createTeamWizard.skipStep\":\"Omitir\",\"teamDialog.createTeam.label\":\"Crear espacio de trabajo\",\"teamDialog.createTeam.infoBox.description\":\"El espacio de trabajo que crees es solo para invitados y todos los agregados tienen acceso de edición de forma predeterminada.\",\"teamDialog.editTeam.label\":\"Editar espacio de trabajo\",\"teamDialog.nameSection.placeholder\":\"Asigna un nombre al nuevo espacio de trabajo\",\"teamDialog.nameSection.label\":\"Nombre del espacio de trabajo\",\"teamDialog.permissionsSection.label\":\"Quién puede editar este espacio de trabajo\",\"teamDialog.permissionsSection.option.onlyInvited\":\"Solo personas invitadas\",\"teamDialog.descriptionSection.label\":\"Descripción de espacio de trabajo (opcional)\",\"teamDialog.descriptionSection.placeholder\":\"Describe brevemente tu espacio de trabajo\",\"teamsSidebar.noTeams\":\"No hay espacios de trabajo\",\"teamsSidebar.newTeamButton\":\"Crear espacio de trabajo\",\"teamsSidebar.adminTour.title\":\"¡Nuevo! Crea espacios de trabajo\",\"teamsSidebar.adminTour.content\":\"Ahora los administradores pueden crear espacios de trabajo en Creative Cloud en la web para que puedan organizar el trabajo compartido de forma más sencilla.\",\"teamsSidebarTeam.newSpaceButton\":\"Nuevo proyecto\",\"teamsSidebarTeam.header.newBadge\":\"NOVEDAD\",\"teamsSidebarTeam.header.otherTeams\":\"De otros espacios de trabajo\",\"teamsSidebarTeam.header.teams\":\"ESPACIOS DE TRABAJO\",\"teamsSidebarTeam.header.previewLabel\":\"(Vista previa)\",\"teamsSidebarTeam.header.previewCopy\":\"Los espacios de trabajo y proyectos están disponibles en una versión beta privada.\",\"teamsSidebarTeam.header.previewLearnMoreText\":\"Más información\",\"teamsSidebarTeam.message.loading\":\"Cargando...\",\"teamsSidebarTeam.message.noSpaces\":\"No tienes ningún espacio de trabajo ni proyecto.\",\"teamsSidebarTeam.message.offline\":\"No tienes conexión. Vuelve a conectarte para ver los espacios de trabajo y proyectos.\",\"teamsSidebarTeam.message.error\":\"Ha habido un problema al cargar los espacios de trabajo y proyectos.\",\"teams1up.error.description\":\"Se ha producido un problema al cargar tus proyectos.\",\"teams1up.error.heading\":\"No se han podido cargar los proyectos\",\"otherTeams.emptyMessage.header\":\"No se puede ver la página del espacio de trabajo\",\"otherTeams.emptyMessage.description1\":\"Te eliminaron o dejaste el último proyecto usando la \",\"otherTeams.emptyMessage.description2\":\" sección. Ponte en contacto con el administrador si crees que se trata de un error.\",\"spaceTour.step0.title\":\"Tus proyectos están aquí\",\"spaceTour.step0.content\":\"Los proyectos ayudan a los equipos a colaborar y recopilar, organizar y compartir archivos y recursos.\",\"spaceTour.step1.title\":\"Añade todo lo que necesitas para tu proyecto\",\"spaceTour.step1.content\":\"Agrupa archivos de trabajo, imágenes de referencia, recursos y demás en un mismo sitio.\",\"spaceTour.step2.title\":\"Establece (y olvida) permisos\",\"spaceTour.step2.content\":\"Asigna el acceso correcto a los colaboradores cuando los invites para ahorrar tiempo y molestias. Envía paquetes de solo lectura a las personas responsables de departamento para su revisión y comentarios.\",\"error.cantCreateSpace\":\"Almacenamiento del espacio de trabajo lleno\",\"error.exceedQuota.create.detail.description1\":\"No puedes crear nada nuevo en este momento. Selecciona \",\"error.exceedQuota.description2\":\" para liberar espacio de almacenamiento.\",\"error.exceedQuota.add.detail.description1\":\"No puedes añadir nada nuevo en este momento. Selecciona \",\"error.move.generic\":\"No se puede mover porque ha habido un error\",\"error.move.signedOut\":\"No se puede mover porque cerraste la sesión\",\"error.move.permissionRevoked\":\"No se puede mover porque te han retirado de este proyecto\",\"error.move.deleted\":\"No se puede mover porque otra persona eliminó este elemento\",\"error.move.duplicate\":\"No se puede mover porque este elemento ya existe en la ubicación donde intentaste moverlo\",\"error.copy.generic\":\"No se puede copiar porque ha habido un error\",\"error.copy.signedOut\":\"No se puede copiar porque cerraste la sesión\",\"error.copy.permissionRevoked\":\"No se puede copiar porque te han retirado de este proyecto\",\"error.copy.deleted\":\"No se puede copiar porque otra persona eliminó este elemento\",\"error.copy.duplicate\":\"No se puede copiar porque este elemento ya existe en la ubicación donde intentaste copiarlo\",\"checkbox.select\":\"Seleccionar\",\"listItem.fileSize\":\"Tamaño de archivo\",\"facepile.additionalMembers\":\"Abonados adicionales +{count}\",\"facepile.memberName\":\"{name}, abonado\",\"coachmark.information\":\"información\",\"toolbar.tools\":\"herramientas\",\"griditem.error.message\":\"No se puede recuperar\",\"griditem.error.button\":\"Reintentar\",\"ats.move.extendedNotification\":\"Recibirás una notificación cuando la acción de mover se haya completado.\",\"file.deleted.error.heading\":\"No se puede {operation} el archivo\",\"file.deleted.error.description\":\"No puedes {operation} este archivo porque fue eliminado. Recupéralo de eliminados e inténtelo de nuevo o selecciona una ubicación diferente.\",\"file.deleted.rename.error.description\":\"No puedes cambiar el nombre de este archivo porque fue eliminado. Selecciona Ir a eliminados para recuperar el archivo.\"}");

/***/ }),

/***/ "xsR+":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXPORTS
__webpack_require__.d(__webpack_exports__, "f", function() { return /* reexport */ shareSheetLinkActionFactory; });
__webpack_require__.d(__webpack_exports__, "e", function() { return /* reexport */ shareSheetInviteActionFactory; });
__webpack_require__.d(__webpack_exports__, "d", function() { return /* reexport */ shareSheetActionFactory; });
__webpack_require__.d(__webpack_exports__, "b", function() { return /* reexport */ openActionFactory; });
__webpack_require__.d(__webpack_exports__, "a", function() { return /* reexport */ importActionFactory; });
__webpack_require__.d(__webpack_exports__, "c", function() { return /* reexport */ scheduleActionFactory; });

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__("q1tI");
var react_default = /*#__PURE__*/__webpack_require__.n(react);

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/Share/index.js
var Share = __webpack_require__("iUn+");
var Share_default = /*#__PURE__*/__webpack_require__.n(Share);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/action.ts
var action = __webpack_require__("zPGX");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/get-share-sheet-data.ts
function getShareSheetData(element) {
    return {
        cloudID: element.id,
        urn: element.id,
        name: element.title,
        mimeType: element.type,
    };
}
/* harmony default export */ var get_share_sheet_data = (getShareSheetData);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/FileCapabilities.ts
var FileCapabilities = __webpack_require__("Vj/U");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/actions/shareSheetLinkAction.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2020 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/





function shareSheetLinkActionFactory({ cdoStore, onOpenShareSheet, selectionHasSyncingElements, }) {
    return new action["d" /* default */]({
        value: action["a" /* CDOActionValue */].ShareSheetLink,
        label: 'button.sharesheetLink',
        icon: react_default.a.createElement(Share_default.a, null),
        analyticsValue: 'getlink',
        isVisible: selectionStore => {
            // Only one selected
            if (selectionStore.hasOnlyOne) {
                if (cdoStore.fileCapabilities.isCapable(selectionStore.lastSelectedElement.type, FileCapabilities["a" /* Capability */].ShareSheetLink)) {
                    return true;
                }
            }
            return false;
        },
        getDisabledTooltipMsgId: (selectionStore) => {
            if (selectionHasSyncingElements(selectionStore)) {
                return 'tooltip.syncing.disabled';
            }
            if (cdoStore.docStore.isOnline) {
                return '';
            }
            return action["c" /* DEFAULT_DISABLED_TOOLTIP_MSG_ID */];
        },
        execute: async (elements) => onOpenShareSheet(get_share_sheet_data(elements[0]), FileCapabilities["a" /* Capability */].ShareSheetLink),
    });
}


// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/UserAdd/index.js
var UserAdd = __webpack_require__("9OqH");
var UserAdd_default = /*#__PURE__*/__webpack_require__.n(UserAdd);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/actions/shareSheetInviteAction.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2020 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/





function shareSheetInviteActionFactory({ cdoStore, onOpenShareSheet, selectionHasSyncingElements, }) {
    return new action["d" /* default */]({
        value: action["a" /* CDOActionValue */].ShareSheetInvite,
        label: 'button.sharesheetinvite',
        icon: react_default.a.createElement(UserAdd_default.a, null),
        isVisible: selectionStore => {
            // Only one selected
            if (selectionStore.hasOnlyOne) {
                if (cdoStore.fileCapabilities.isCapable(selectionStore.lastSelectedElement.type, FileCapabilities["a" /* Capability */].ShareSheetInvite)) {
                    return true;
                }
            }
            return false;
        },
        getDisabledTooltipMsgId: (selectionStore) => {
            if (selectionHasSyncingElements(selectionStore)) {
                return 'tooltip.syncing.disabled';
            }
            if (cdoStore.docStore.isOnline) {
                return '';
            }
            return action["c" /* DEFAULT_DISABLED_TOOLTIP_MSG_ID */];
        },
        execute: async (elements) => onOpenShareSheet(get_share_sheet_data(elements[0]), FileCapabilities["a" /* Capability */].ShareSheetInvite),
    });
}


// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/actions/shareSheetAction.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2020 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/





function shareSheetActionFactory({ cdoStore, onOpenShareSheet, selectionHasSyncingElements, }) {
    return new action["d" /* default */]({
        value: action["a" /* CDOActionValue */].ShareSheetAction,
        label: 'button.shareSheetAction',
        icon: react_default.a.createElement(Share_default.a, null),
        analyticsValue: 'shareSheetAction',
        isVisible: selectionStore => {
            // Only one selected
            if (selectionStore.hasOnlyOne) {
                const lastSelected = selectionStore.lastSelectedElement.type;
                if (cdoStore.fileCapabilities.isCapable(lastSelected, FileCapabilities["a" /* Capability */].ShareSheetAction)) {
                    return true;
                }
            }
            return false;
        },
        getDisabledTooltipMsgId: (selectionStore) => {
            if (selectionHasSyncingElements(selectionStore)) {
                return 'tooltip.syncing.disabled';
            }
            if (!cdoStore.docStore.isOnline) {
                return action["c" /* DEFAULT_DISABLED_TOOLTIP_MSG_ID */];
            }
            return '';
        },
        execute: async (elements) => onOpenShareSheet(get_share_sheet_data(elements[0]), FileCapabilities["a" /* Capability */].ShareSheetAction),
    });
}


// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/OpenIn/index.js
var OpenIn = __webpack_require__("yhrW");
var OpenIn_default = /*#__PURE__*/__webpack_require__.n(OpenIn);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/launch-item.ts
var launch_item = __webpack_require__("Kko5");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/actions/openAction.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2020 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/




function openActionFactory({ value, canOpenMultiple, canOpenItems, getDisabledTooltipMsgId, onOpenDocuments, startSyncErrorResolutionWorkflow, }) {
    return new action["d" /* default */]({
        value: value || action["a" /* CDOActionValue */].Open,
        label: 'button.open',
        icon: react_default.a.createElement(OpenIn_default.a, null),
        getDisabledTooltipMsgId,
        isVisible: selectionStore => {
            // Hide if there are multiple selections and at least one needs sync error resolution
            // or if there are local-only items like an item duplcated while CoreSync is down or offline
            // or a forked copy after a conflict
            if (!selectionStore.onlyOneOrMultipleAndNoSyncErrors ||
                selectionStore.hasAnyLocalItemsToBeSynced) {
                return false;
            }
            if (canOpenItems) {
                return (selectionStore.hasOnlyNonFolders &&
                    Object(launch_item["a" /* canLaunchItems */])(selectionStore.selectedElements, canOpenItems));
            }
            // Note: may need to put `canOpenMultiple` last so that Mobx sees we are observing `
            // hasOnlyNonFolders` and `hasMultiple`
            return (selectionStore.hasOnlyNonFolders && selectionStore.hasMultiple && canOpenMultiple);
        },
        execute: async (elements) => {
            // Show SyncErrorDialog dialog in execute so that normal open metric is logged
            // rather than in beforeExecute, which would log a cancel open metric.
            if (elements[0].needsSyncErrorResolution) {
                startSyncErrorResolutionWorkflow(elements[0]);
                return;
            }
            Object(launch_item["b" /* default */])(elements, onOpenDocuments);
        },
    });
}


// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/UploadToCloud/index.js
var UploadToCloud = __webpack_require__("aW4N");
var UploadToCloud_default = /*#__PURE__*/__webpack_require__.n(UploadToCloud);

// EXTERNAL MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/metrics.ts
var metrics = __webpack_require__("jaHz");

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/actions/importAction.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/




function importActionFactory({ canImport, promptUserForFileImport, importFiles, docStore, cdoMetrics, getDisabledTooltipMsgId, }) {
    return new action["d" /* default */]({
        value: action["a" /* CDOActionValue */].Import,
        label: 'button.upload',
        icon: react_default.a.createElement(UploadToCloud_default.a, null),
        isFolderAction: true,
        getDisabledTooltipMsgId,
        isVisible: selectionStore => !selectionStore.hasAny && !docStore.hasCloudNotificationErrorStatus && (canImport === null || canImport === void 0 ? void 0 : canImport()),
        beforeExecute: async ([destinationFolder]) => {
            const userInput = await promptUserForFileImport();
            if (userInput.length === 0) {
                // user cancelled import operation
                return [[]];
            }
            return [[destinationFolder], userInput];
        },
        execute: async ([destinationFolder], correlationId, files) => {
            const analyticsValue = metrics["a" /* ActionAnalyticsValue */].Import;
            const metricLogger = cdoMetrics.getOperationalMetricLogger(analyticsValue);
            const startTime = new Date(Date.now());
            const logAnalytics = ({ eventType, errorCode, errorDesc }) => {
                const metricLoggerOptions = {
                    correlationId,
                    eventType: metrics["c" /* EventType */].Success,
                    dtsStart: startTime,
                    errorCode,
                    errorDesc,
                };
                if (eventType === 'error') {
                    metricLoggerOptions.eventType = metrics["c" /* EventType */].Error;
                }
                metricLogger(metricLoggerOptions);
            };
            const collection = docStore.getOrCreateFolderCollection(destinationFolder.path);
            const { cloudUri, path, elements } = collection;
            const fetchSuitableName = (suggestedName, extension) => {
                let extraName = '';
                let fileName = `${suggestedName}${extraName}.${extension}`;
                let count = 1;
                const hasNameConflict = (name) => elements.some(element => element.repoName === name);
                while (hasNameConflict(fileName)) {
                    extraName = ` (${count})`;
                    fileName = `${suggestedName}${extraName}.${extension}`;
                    count += 1;
                }
                return fileName;
            };
            importFiles({
                files,
                cloudUri,
                cloudPath: path,
                fetchSuitableName,
                logAnalytics,
            });
        },
    });
}


// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/Calendar/index.js
var Calendar = __webpack_require__("9Vp7");
var Calendar_default = /*#__PURE__*/__webpack_require__.n(Calendar);

// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/actions/scheduleAction.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2022 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/




function scheduleActionFactory({ canSchedule, getDisabledTooltipMsgId, onScheduleDocument, }) {
    return new action["d" /* default */]({
        value: action["a" /* CDOActionValue */].Schedule,
        label: 'button.schedule',
        icon: react_default.a.createElement(Calendar_default.a, null),
        isVisible: selectionStore => {
            var _a;
            if (!selectionStore.hasOnlyOne ||
                !selectionStore.hasOnlyNonFolders ||
                selectionStore.hasAnyLocalItemsToBeSynced) {
                return false;
            }
            const distinctTypes = [
                ...new Set(selectionStore.selectedElements.map(element => element.type)),
            ];
            return (_a = canSchedule === null || canSchedule === void 0 ? void 0 : canSchedule(distinctTypes)) !== null && _a !== void 0 ? _a : false;
        },
        getDisabledTooltipMsgId,
        execute: async (elements) => {
            onScheduleDocument === null || onScheduleDocument === void 0 ? void 0 : onScheduleDocument(Object(launch_item["c" /* getLaunchDocInfo */])(elements[0]));
        },
    });
}


// CONCATENATED MODULE: ./node_modules/@ccx/ccx-cdo/src/utils/actions/index.tsx
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2020 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/








/***/ }),

/***/ "xw8E":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXTERNAL MODULE: ./src/applications/index.tsx + 7 modules
var applications = __webpack_require__("3UBC");

// EXTERNAL MODULE: ./src/components/Search/NetUtil.tsx
var NetUtil = __webpack_require__("1lnv");

// EXTERNAL MODULE: ./src/js/start/stores/MainStore.tsx + 3 modules
var MainStore = __webpack_require__("cCFZ");

// EXTERNAL MODULE: ./src/LoggerWrapper/Logger.tsx
var Logger = __webpack_require__("43WE");

// CONCATENATED MODULE: ./src/components/Search/log.ts
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/

const log_Logger = Logger["a" /* default */].get('log');
class log {
    static toConsole(...args) {
        log_Logger.log(args);
    }
    static logJSON(obj) {
        this.toConsole(JSON.stringify(obj));
    }
}

// CONCATENATED MODULE: ./src/components/Search/Federer.tsx
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/





const _logger = Logger["a" /* default */].get('Federer');
const constants = {
    FILETYPE_KIND: {
        fla: 'Animate',
        psd: 'Photoshop',
        psb: 'Photoshop',
        ai: 'Illustrator',
        ait: 'Illustrator Template',
        pdf: 'PDF',
        indd: 'InDesign Document',
        indt: 'InDesign Template',
        indl: 'InDesign Asset Library',
        indb: 'InDesign Book',
        prproj: 'Premiere Pro Project',
        muse: 'Muse',
        png: 'PNG',
        jpeg: 'JPEG',
        jpg: 'JPEG',
        tiff: 'TIFF',
        tif: 'TIFF',
        gif: 'GIF',
        bmp: 'BMP',
        eps: 'Encapsulated PostScript',
    },
    SUPPORTED_FILETYPE: {
        PHXS: [
            'psd', 'jpeg', 'jpg', 'png', 'pdf', 'gif', 'tiff', 'tif', 'dng',
            'bmp', 'erf', 'fff', 'gpr', 'iiq', 'kdc', 'mef', 'mfw', 'mos',
            'mrw', 'nef', 'nrw', 'orf', 'pef', 'psd', 'raf', 'raw', 'rw2',
            'rwl', 'sr2', 'srf', 'srw', 'x3f', 'heif', 'heic', 'jfif', 'jpe',
        ],
        ILST: ['ai', 'eps', 'pdf'],
        IDSN: ['indd', 'indt', 'indb', 'indl', 'idml'],
        AEFT: ['aep', 'aepx', 'aet'],
        PPRO: ['prproj'],
        MUSE: ['muse'],
        DRWV: ['html', 'css', 'js', 'php', 'scss', 'sass', 'less', 'json', 'svg', 'xml', 'dwt', 'dwt.php'],
    },
    DEFAULT_THUMBNAIL_PATH: './images/thumbs/',
    DEFAULT_THUMBNAIL_PS_AI_ID: './images/thumbs/CCX_Start_DefaultThumb_Ps_Ai_Id.png',
    DEFAULT_THUMBNAIL_OTHER: './images/thumbs/CCX_Start_DefaultThumb_other.png',
};
/**
 * This module provides functions for calling the Universal Search Service (a.k.a. USS) (a.k.a Federer).
 */
const CCXSTART_X_PRODUCT_LOCATION = 'CCXInAppWelcomeUXP3';
const FEDERER_URL = 'https://adobesearch-uss.adobe.io/universal-search/v2/search';
const FEDERER_URL_STAGE = 'https://adobesearch-uss-stage.adobe.io/universal-search/v2/search';
const HOST_MAPPINGS = {
    default: {
        scope: ['stock', 'learn', 'creative_cloud'],
        learn_creator_type: ['adobe_support'],
        limit: 30,
    },
    PHXS: {
        scope: ['stock', 'learn', 'lightroom', 'creative_cloud'],
        asset_type: ['image', 'document', 'collection', 'dcx_composite', 'dcx_element'],
        learn_applicable_products: ['Photoshop'],
    },
    ILST: {
        stock_image_type: ['vector_ai_or_eps'],
        asset_type: ['image', 'document', 'collection', 'dcx_composite', 'dcx_element'],
        learn_applicable_products: ['Illustrator'],
    },
    AEFT: {
        scope: ['learn', 'creative_cloud'],
        learn_applicable_products: ['After Effects'],
    },
    PPRO: {
        scope: ['learn', 'creative_cloud'],
        learn_applicable_products: ['Adobe Premiere Pro'],
    },
    IDSN: {
        asset_type: ['image', 'document', 'collection', 'dcx_composite', 'dcx_element'],
        learn_applicable_products: ['InDesign'],
    },
    MUSE: {
        asset_type: ['image', 'document', 'collection', 'dcx_composite', 'dcx_element'],
        learn_applicable_products: ['Muse'],
    },
    DRWV: {
        asset_type: ['image', 'document', 'collection', 'dcx_composite', 'dcx_element'],
        learn_applicable_products: ['Dreamweaver'],
    },
    BROWSER: {
        asset_type: ['image', 'document', 'collection', 'dcx_composite', 'dcx_element'],
        scope: ['stock', 'learn', 'lightroom', 'creative_cloud'],
    },
};
const Federer = {
    getBody: q => {
        return Object.assign({}, {
            q: q,
            file_name_extension: constants.SUPPORTED_FILETYPE[applications["a" /* default */].id],
            locale: applications["a" /* default */].language,
        }, HOST_MAPPINGS.default, HOST_MAPPINGS[applications["a" /* default */].id]);
    },
    get url() {
        return MainStore["mainStore"].user.isStaging ? FEDERER_URL_STAGE : FEDERER_URL;
    },
    query: q => {
        const requestOptions = {
            url: Federer.url,
            method: 'POST',
            json: true,
            body: Federer.getBody(q),
            retries: 3,
            headers: {
                'Content-Type': 'application/vnd.adobe.search-request+json',
                'x-api-key': 'CCXInAppWelcomeUXP3',
                'x-product': applications["a" /* default */].id + '/' + applications["a" /* default */].version,
                'x-product-location': CCXSTART_X_PRODUCT_LOCATION,
            },
        };
        return NetUtil["a" /* default */].requestWithAccessToken(requestOptions, true).then(async (resp) => {
            const body = await resp.json();
            body.requestGUID = resp.headers['x-request-id'];
            return Promise.resolve(body);
        });
    },
    /**
     * Get the URL of an image that you can use as a thumbnail for assets that don't have a real thumbnail.
     * @return {String} the URL of a default thumbnail image.
     */
    getDefaultRenditionUrl: () => {
        if (applications["a" /* default */].id === 'PHXS' || applications["a" /* default */].id === 'ILST' || applications["a" /* default */].id === 'IDSN') {
            return constants.DEFAULT_THUMBNAIL_PS_AI_ID;
        }
        return constants.DEFAULT_THUMBNAIL_OTHER;
    },
    /**
     * Given the URL of a rendition, download the rendition to the local machine, and
     * return a local URL for it. If the download fails, then use a default rendition instead.
     * @return {Promise | String} either a promise that will resolve to local URL, or the URL of the default rendition.
     */
    getRenditionImageBlobUrl: renditionUrl => {
        return Federer.getImageBlobURL(renditionUrl).catch(() => {
            _logger.warn('getRenditionImageBlobUrl: Failed to get a thumbnail image for ', renditionUrl);
            // TODO Consolidate this and `getThumbnail()` in WorkCard.jsx
            return Federer.getDefaultRenditionUrl();
        });
    },
    loadCCPhotos: (q = '', start = 0, limit = 50) => {
        const requestOptions = {
            url: Federer.url,
            method: 'POST',
            json: true,
            body: {
                q: q,
                scope: ['lightroom'],
                start_index: start,
                limit: limit,
            },
            headers: {
                'Content-Type': 'application/vnd.adobe.search-request+json',
                'x-api-key': 'CCXInAppWelcomeUXP3',
                'x-product': applications["a" /* default */].id + '/' + applications["a" /* default */].version,
                'x-product-location': CCXSTART_X_PRODUCT_LOCATION,
            },
        };
        return NetUtil["a" /* default */].requestWithAccessToken(requestOptions).then(async (resp) => {
            const body = await resp.json();
            return Promise.resolve(body);
        });
    },
    getImageBlobURL: url => {
        return Federer.getImageBlob(url).then(resp => {
            return Promise.resolve(URL.createObjectURL(resp));
        });
    },
    getImageBlob: url => {
        const requestOptions = {
            method: 'GET',
            url: url,
            responseType: 'arraybuffer',
            withCredentials: false,
            crossDomain: true,
            headers: {
                'x-api-key': 'PhotoshopInAppSearch',
            },
        };
        return NetUtil["a" /* default */].requestWithAccessToken(requestOptions).then((resp) => {
            const blob = new Blob([resp._bodyArrayBuffer], {
                type: resp.headers['content-type'],
            });
            return Promise.resolve(blob);
        });
    },
};
const MockFederer = {
    query: q => {
        return new Promise((resolve) => {
            if (mockTestData.mockFederer.query) {
                resolve(mockTestData.mockFederer.query);
            }
            else {
                resolve({});
            }
        });
    },
    getRenditionImageBlobUrl: renditionUrl => {
        return new Promise((resolve) => {
            if (mockTestData.mockFederer.getRenditionImageBlobUrl) {
                resolve(mockTestData.mockFederer.getRenditionImageBlobUrl);
            }
            else {
                resolve('');
            }
        });
    },
    loadCCPhotos: (q = '', start = 0, limit = 50) => {
        // todo: later, this is just for having lots of LR photos
        return new Promise((resolve) => {
            resolve({});
        });
    },
    getImageBlobURL: url => {
        return new Promise((resolve) => {
            if (mockTestData.mockFederer.getImageBlobURL) {
                resolve(mockTestData.mockFederer.getImageBlobURL);
            }
            else {
                resolve('');
            }
        });
    },
    getImageBlob: url => {
        // todo: later, this is just for having lots of LR photos
    },
};
class Federer_SearchAPI {
    /**
     * Singleton style getter for creating the correct search API object.
     *
     * @return {Object} representing the search API singleton.
     */
    static getInstance() {
        if (!this._instance) {
            if (!window.localStorage.getItem('mockTestDataPath')) {
                this._instance = Federer;
            }
            else {
                log.toConsole('Mocking Federer');
                // The mock doesn't implement all the methods, so we must cast for now.
                this._instance = MockFederer;
            }
        }
        return this._instance;
    }
}
/**
 * Public exports
 */
/* harmony default export */ var Search_Federer = __webpack_exports__["a"] = (Federer_SearchAPI.getInstance());


/***/ }),

/***/ "xzJD":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _autobindDecorator = _interopRequireDefault(__webpack_require__("gKdT"));

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

var _reactDom = _interopRequireDefault(__webpack_require__("i8i4"));

var _TabList = _interopRequireDefault(__webpack_require__("Lq0C"));

var _UxpTabLine = _interopRequireDefault(__webpack_require__("5VEf"));

var _UxpTabListBase = _interopRequireDefault(__webpack_require__("B4ni"));

__webpack_require__("jVok");

const _excluded = ["className", "orientation", "variant", "quiet", "children", "defaultSelectedIndex", "collapsible"];

var _class;

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

if (false) {} else if (false) {} else {
  __webpack_require__("Wf8h");
}

if (true) __webpack_require__("uVav");
if (true) __webpack_require__("4hv2");
if (true) __webpack_require__("R1A0");
if (true) __webpack_require__("/jtW"); // For backward compatibility

const VARIANTS = {
  'panel': '',
  'anchored': '',
  'page': 'compact'
};

function updateTabLine(orientation, selectedTab) {
  // Ideally this would be a DNA variable, but vertical tabs aren't even in DNA, soo...
  let verticalSelectionIndicatorOffset = 12;

  if (!selectedTab) {
    if (orientation === 'horizontal') {
      return {
        left: 0,
        width: 0
      };
    } else {
      return {
        top: 0,
        height: 0
      };
    }
  }

  const style = {};

  if (orientation === 'horizontal') {
    style.left = `${selectedTab.offsetLeft}px`;
    style.width = `${selectedTab.offsetWidth}px`;
  } else {
    style.top = `${selectedTab.offsetTop + verticalSelectionIndicatorOffset / 2}px`;
    style.height = `${selectedTab.offsetHeight - verticalSelectionIndicatorOffset}px`;
  }

  return style;
}

let UxpTabList = (0, _autobindDecorator.default)(_class = class UxpTabList extends _TabList.default {
  constructor(...args) {
    var _temp;

    return _temp = super(...args), this.state = {
      selectedIndex: _UxpTabListBase.default.getDefaultSelectedIndex(this.props),
      tabArray: [],
      tooNarrow: false
    }, _temp;
  }

  componentDidMount() {
    this.updateTabs();

    if (this.tabRef) {
      this.tabRef.tabBaseRef.ownerDocument.addEventListener('resize', this.onResize);
    }

    this.widthCheck();
  }

  onResize() {
    // We require this hack as when the tabs are rendered the first time, layout is not yet run in UXP
    // and hence offsetWidth etc come to be 0, and no tabline selection indicator is shown
    if (this.state.tabArray) {
      let newStyle = updateTabLine(this.props.orientation, this.state.tabArray[this.state.selectedIndex || 0]);
      let prevStyle = this.state.tabLineStyle;

      if (newStyle.height !== prevStyle.height || newStyle.top !== prevStyle.top || newStyle.left !== prevStyle.left || newStyle.width !== prevStyle.width) {
        this.setState({
          tabLineStyle: newStyle
        });
      }
    }
  }

  updateTabs() {
    // Measure the tabs so we can position the line below correctly
    const tabArray = _reactDom.default.findDOMNode(this).querySelectorAll('.spectrum-Tabs-item');

    this.setState({
      tabArray
    });
    this.setState({
      tabLineStyle: updateTabLine(this.props.orientation, tabArray[this.state.selectedIndex || 0])
    });
  }

  onChange(selectedIndex) {
    let lastSelectedIndex = this.state.selectedIndex; // If selectedIndex is defined on props then this is a controlled component and we shouldn't
    // change our own state.

    if (!('selectedIndex' in this.props)) {
      this.setState({
        selectedIndex
      });
      this.setState({
        tabLineStyle: updateTabLine(this.props.orientation, this.state.tabArray[selectedIndex])
      });
    }

    if (lastSelectedIndex !== selectedIndex && this.props.onChange) {
      this.props.onChange(selectedIndex);
    }
  }

  getTabList() {
    let _this$props = this.props,
        {
      className,
      orientation = 'horizontal',
      variant = '',
      quiet,
      children,
      defaultSelectedIndex,
      collapsible
    } = _this$props,
        otherProps = _objectWithoutProperties(_this$props, _excluded);

    let {
      selectedIndex,
      tabArray,
      tabLineStyle,
      tooNarrow
    } = this.state;
    let selectedTab = tabArray[selectedIndex]; // For backwards compatibility
    // let mappedVariant = VARIANTS[variant] !== undefined ? VARIANTS[variant] : variant;

    if (VARIANTS[variant] != null) {
      let message = `The '${variant}' variant of TabList has been deprecated.`;

      if (VARIANTS[variant]) {
        message += ` Please use the '${VARIANTS[variant]}' variant instead.`;
      } else {
        message += ' Please remove the variant prop to use the default variant instead.';
      }

      console.warn(message);
      variant = VARIANTS[variant];
    }

    let tooNarrowProps = {};
    let shouldHide = false;

    if (collapsible && tooNarrow && orientation !== 'vertical') {
      tooNarrowProps['aria-hidden'] = tooNarrow;
      shouldHide = true;
    }

    return /*#__PURE__*/_react.default.createElement(_UxpTabListBase.default, _extends({}, tooNarrowProps, {
      orientation: orientation,
      defaultSelectedIndex: defaultSelectedIndex || null,
      selectedIndex: selectedIndex
    }, otherProps, {
      ref: el => this.tabRef = el,
      className: (0, _classnames.default)('spectrum-Tabs', `spectrum-Tabs--${orientation}`, {
        'spectrum-Tabs--quiet': quiet,
        [`spectrum-Tabs--${variant}`]: variant,
        'react-spectrum-Tabs--container': collapsible,
        'react-spectrum-Tabs--hidden': shouldHide
      }, className),
      onChange: this.onChange
    }), children, selectedTab && /*#__PURE__*/_react.default.createElement(_UxpTabLine.default, {
      orientation: orientation,
      selectedTab: selectedTab,
      lineStyle: tabLineStyle
    }));
  }

  render() {
    let {
      collapsible,
      orientation
    } = this.props;
    let {
      tooNarrow
    } = this.state;

    if (collapsible && orientation !== 'vertical') {
      return /*#__PURE__*/_react.default.createElement("div", {
        className: (0, _classnames.default)('react-spectrum-Tabs--collapsible')
      }, this.getTabList(), tooNarrow && this.getDropdown());
    } else {
      return this.getTabList();
    }
  }

}) || _class;

exports.default = UxpTabList;

/***/ }),

/***/ "xzYp":
/***/ (function(module, exports, __webpack_require__) {

"use strict";

/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/

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 __());
  };
}();

var __assign = this && this.__assign || function () {
  __assign = Object.assign || function (t) {
    for (var s, i = 1, n = arguments.length; i < n; i++) {
      s = arguments[i];

      for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
    }

    return t;
  };

  return __assign.apply(this, arguments);
};

var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {
  function adopt(value) {
    return value instanceof P ? value : new P(function (resolve) {
      resolve(value);
    });
  }

  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) : adopt(result.value).then(fulfilled, rejected);
    }

    step((generator = generator.apply(thisArg, _arguments || [])).next());
  });
};

var __generator = this && this.__generator || function (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
    };
  }
};

var __importDefault = this && this.__importDefault || function (mod) {
  return mod && mod.__esModule ? mod : {
    "default": mod
  };
};

Object.defineProperty(exports, "__esModule", {
  value: true
});

__webpack_require__("cnSC");

var stringify_props_1 = __webpack_require__("45JA");

var constants_1 = __webpack_require__("uBoz");

var RequestProcessor_1 = __importDefault(__webpack_require__("HyxP"));
/**
 * Handles service-specific response processing for cloud service and acp.local interaction
 */


var AssetOpRequestProcessor =
/** @class */
function (_super) {
  __extends(AssetOpRequestProcessor, _super);

  function AssetOpRequestProcessor() {
    return _super !== null && _super.apply(this, arguments) || this;
  }
  /**
   * Transforms the request for direct interaction with services, if needed
   * @param request
   * @param bodyJson
   */


  AssetOpRequestProcessor.prototype.requestTransformWeb = function (request, additionalParams) {
    return __awaiter(this, void 0, void 0, function () {
      var bodyJson, isMoveOp, indexOfId, assetId, newRequest;
      return __generator(this, function (_a) {
        switch (_a.label) {
          case 0:
            return [4
            /*yield*/
            , request.json()];

          case 1:
            bodyJson = _a.sent();
            isMoveOp = bodyJson && bodyJson.op === 'move';

            if (bodyJson && bodyJson.target && bodyJson.target.href) {
              indexOfId = bodyJson.target.href.indexOf("urn:aaid");
              assetId = bodyJson.target.href.substring(indexOfId, bodyJson.target.href.length);
              bodyJson.target = {
                asset_id: assetId
              };
            } // move operation needs a source & target


            if (isMoveOp) {
              bodyJson.source = {
                asset_id: bodyJson.source.href.split('/id/').pop()
              };
              bodyJson.target = {
                path: "" + (additionalParams.targetUri || '')
              };
            }

            newRequest = new Request(request.url, {
              method: request.method,
              body: JSON.stringify(bodyJson),
              headers: request.headers
            });
            return [2
            /*return*/
            , Promise.resolve(newRequest)];
        }
      });
    });
  };
  /**
   * Transforms the request for ACP.local, if needed
   * @param request
   * @param additionalParams
   */


  AssetOpRequestProcessor.prototype.requestTransformAcpLocal = function (request, additionalParams) {
    return __awaiter(this, void 0, void 0, function () {
      var _this = this;

      return __generator(this, function (_a) {
        return [2
        /*return*/
        , new Promise(function (resolve, reject) {
          return __awaiter(_this, void 0, void 0, function () {
            var requestComponents, bodyJson, operationType, assetOpDesc;
            return __generator(this, function (_a) {
              switch (_a.label) {
                case 0:
                  return [4
                  /*yield*/
                  , _super.prototype.requestTransformAcpLocal.call(this, request)];

                case 1:
                  requestComponents = _a.sent();
                  return [4
                  /*yield*/
                  , request.json()];

                case 2:
                  bodyJson = _a.sent();
                  operationType = acplocaljs.AssetOperationDescription[bodyJson.op.toUpperCase()];
                  assetOpDesc = new acplocaljs.AssetOperationDescription(operationType, bodyJson.source ? bodyJson.source.href : null, bodyJson.target.href);
                  requestComponents.element = assetOpDesc;
                  resolve(requestComponents);
                  return [2
                  /*return*/
                  ];
              }
            });
          });
        })];
      });
    });
  };
  /**
   * Extract monitorLink from asset operation.
   * @param response
   * @param additionalParams
   */


  AssetOpRequestProcessor.prototype.responseTransformWeb = function (response, additionalParams) {
    return __awaiter(this, void 0, void 0, function () {
      var json, url, result, transformedResponse;
      return __generator(this, function (_a) {
        switch (_a.label) {
          case 0:
            if (!(response.status === constants_1.HTTP_STATUS_ACCEPTED)) return [3
            /*break*/
            , 2];
            return [4
            /*yield*/
            , response.json()];

          case 1:
            json = _a.sent();
            url = new URL(response.url);
            result = __assign(__assign({}, json), {
              monitorLink: json.href ? url.protocol + "//" + url.host + json.href : undefined
            });
            transformedResponse = RequestProcessor_1.default.createResponse(response.status, response.statusText, result);
            return [2
            /*return*/
            , transformedResponse];

          case 2:
            return [2
            /*return*/
            , response];
        }
      });
    });
  };
  /**
   * Transforms the response from ACP.local, extracting the monitorLink
   * @param acplResponse
   * @param additionalParams
   */


  AssetOpRequestProcessor.prototype.responseTransformAcpLocal = function (acplResponse, additionalParams) {
    return __awaiter(this, void 0, void 0, function () {
      var acplElementResponse, operationResult, monitorLink, found, result, response;
      return __generator(this, function (_a) {
        if (!RequestProcessor_1.default.isAcplStatusSuccessful(acplResponse.statusCode)) {
          return [2
          /*return*/
          , _super.prototype.responseTransformAcpLocal.call(this, acplResponse, additionalParams)];
        }

        acplElementResponse = acplResponse;
        operationResult = JSON.parse(stringify_props_1.Stringify.stringify(acplElementResponse.element));
        monitorLink = '';

        if (operationResult.links && operationResult.links.length) {
          found = operationResult.links.find(function (link) {
            return link.params && link.params.rel === constants_1.MONITOR_RELTYPE;
          });
          monitorLink = found && found.target;
        }

        result = __assign(__assign({}, operationResult), {
          monitorLink: monitorLink
        });
        response = RequestProcessor_1.default.createResponse(RequestProcessor_1.default.getWebStatusCode(acplResponse.statusCode), acplResponse.statusMessage, result);
        return [2
        /*return*/
        , response];
      });
    });
  };

  AssetOpRequestProcessor.urlRegex = new RegExp("/ops");
  AssetOpRequestProcessor.method = ['POST'];
  return AssetOpRequestProcessor;
}(RequestProcessor_1.default);

exports.default = AssetOpRequestProcessor;

/***/ }),

/***/ "y008":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _CloseCircle = _interopRequireDefault(__webpack_require__("DYGA"));

var _react = _interopRequireWildcard(__webpack_require__("q1tI"));

var _UxpVideoControls = _interopRequireDefault(__webpack_require__("lup1"));

__webpack_require__("JNa+");

var _torqVersion = _interopRequireDefault(__webpack_require__("ZhqB"));

const _excluded = ["controls", "children", "className", "enableFullScreen", "hideCloseIcon", "isModalVideo", "handleFullScreenIconClick", "poster", "src", "toggleMaximize", "volume"];

function _getRequireWildcardCache(nodeInterop) {
  if (typeof WeakMap !== "function") return null;
  var cacheBabelInterop = new WeakMap();
  var cacheNodeInterop = new WeakMap();
  return (_getRequireWildcardCache = function (nodeInterop) {
    return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
  })(nodeInterop);
}

function _interopRequireWildcard(obj, nodeInterop) {
  if (!nodeInterop && obj && obj.__esModule) {
    return obj;
  }

  if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
    return {
      default: obj
    };
  }

  var cache = _getRequireWildcardCache(nodeInterop);

  if (cache && cache.has(obj)) {
    return cache.get(obj);
  }

  var newObj = {};
  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;

  for (var key in obj) {
    if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
      var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;

      if (desc && (desc.get || desc.set)) {
        Object.defineProperty(newObj, key, desc);
      } else {
        newObj[key] = obj[key];
      }
    }
  }

  newObj.default = obj;

  if (cache) {
    cache.set(obj, newObj);
  }

  return newObj;
}

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

class UxpVideoHelper extends _react.Component {
  constructor(props) {
    super(props);

    this.init = () => {
      let videoRef = this.videoRef;

      if (videoRef) {
        const {
          height,
          width
        } = this.videoDimensions;
        let newVideoHeight = videoRef.getBoundingClientRect().height;
        let newVideoWidth = videoRef.getBoundingClientRect().width; // if the window is resized, we dont need to reload again, we return inside
        // if the panel which is playing video is closed and reopened again, we need to reload the video
        // because of UXP issue: https://jira.corp.adobe.com/browse/UXP-13815
        // in this case, the width and height do not change and hence we bypass this condition

        if (newVideoWidth !== width && newVideoHeight !== height) {
          // do not load the video again if the previous video size was 1 pixel units (set to support poster attribute in Ps videos)
          // JIRA: https://jira.corp.adobe.com/browse/UXP-14495
          if (height === 1 && width === 1) {
            return;
          } // set width and height state whenever the video is resized


          this.videoDimensions.width = newVideoWidth;
          this.videoDimensions.height = newVideoHeight;

          if (height !== 0 && width !== 0) {
            return;
          }
        }

        this.startTimer();
        const {
          loop
        } = this.props; // When the dialog is closed, UXP destroy the Renderer and its rendered tree with all tree nodes. 
        // Hence closing dialog destroys the internal cpp node tree. But HTML DOM stays intact. 
        // Only resize event is getting triggered when the dialog is reopened. So to reload video on resize ccommenting below.
        // videoRef.removeEventListener('resize', this.init);

        videoRef.onuxpvideoload = this.handleOnVideoLoad.bind(this);
        videoRef.onuxpvideoplay = this.handleOnVideoPlay.bind(this);
        videoRef.onuxpvideostop = this.handleOnVideoStop.bind(this);
        videoRef.onuxpvideopause = this.handleOnVideoPause.bind(this);
        videoRef.onuxpvideocomplete = this.handleOnVideoComplete.bind(this);
        videoRef.onvolumechange = this.handleOnVolumeChange.bind(this);

        if (loop) {
          videoRef.loop = true;
        }

        let torqVersion = (0, _torqVersion.default)();

        if (torqVersion && torqVersion[0] <= 4 && torqVersion[1] <= 3) {
          videoRef.load();
        }

        this.setState({
          showControls: true,
          currentTime: 0,
          playing: false
        });
      }
    };

    const {
      muted
    } = props;
    this.state = {
      audioTrackAvailable: props.showVolumeControls || false,
      showControls: false,
      showPlayer: true,
      showPoster: !!props.poster || false,
      playSound: !muted,
      trackAvailable: false,
      disableClosedCaption: props.showCaptionDefault ? !props.showCaptionDefault : true,
      volumeLevel: 1.0,
      playing: false,
      currentTime: 0,
      totalDuration: 0,
      playEnabled: false,
      captionElement: ''
    };
    this.videoDimensions = {
      height: 0,
      width: 0
    };
  }

  componentDidMount() {
    const videoRef = this.videoRef;
    const ref = this;

    if (videoRef) {
      videoRef.addEventListener('resize', this.init);

      if (videoRef.textTracks && videoRef.textTracks.length !== 0) {
        for (let i = 0; i < videoRef.textTracks.length; i++) {
          let textTrack = videoRef.textTracks[i];

          if (this.props.cclang) {
            /* eslint-disable-next-line */
            if (textTrack.language !== this.props.cclang) {
              textTrack.mode = 'disabled';
            } else {
              textTrack.mode = 'showing';
            }
          } else {
            /* eslint-disable-next-line */
            if (textTrack._owner.default) {
              textTrack.mode = 'showing';
            } else {
              textTrack.mode = 'disabled';
            }
          }

          if (textTrack.mode === 'showing') {
            textTrack.oncuechange = function () {
              var cue = this._activeCues[0];

              if (cue) {
                ref.setState({
                  captionElement: cue.getCueAsHTML()
                });
              } else {
                ref.setState({
                  captionElement: {
                    outerHTML: ''
                  }
                });
              }
            };
          }

          ref.setState({
            trackAvailable: true
          });
        }
      }

      videoRef.audioTracks.onaddtrack = () => {
        this.setState({
          audioTrackAvailable: true
        });
      };
    }
  }

  componentDidUpdate() {
    const {
      loop
    } = this.props;
    let videoRef = this.videoRef;

    if (videoRef) {
      if (loop) {
        videoRef.loop = true;
      } else {
        videoRef.loop = false;
      }
    }
  }

  componentWillUnmount() {
    this.stopTimer();
    this.stopControlsTimer();
    const videoRef = this.videoRef;

    if (videoRef) {
      videoRef.removeEventListener('resize', this.init);

      try {
        videoRef.stop();
      } catch (e) {
        if (this.props.onVideoStop) {
          this.props.onVideoStop();
        }

        console.log(e.message);
      }
    }
  }

  dismissVideoPlayer() {
    this.setState({
      showPlayer: false
    });

    if (this.props.onClose) {
      this.props.onClose();
    }
  }

  toggleMute() {
    const videoRef = this.videoRef;

    if (videoRef) {
      const {
        playSound
      } = this.state;
      videoRef.muted = playSound;
      this.setState(prevState => ({
        playSound: !prevState.playSound
      }));
    }
  }

  toggleCC() {
    const videoRef = this.videoRef;

    if (videoRef) {
      this.setState(prevState => ({
        disableClosedCaption: !prevState.disableClosedCaption
      }));
    }

    if (this.props.handleCCIconClick) {
      this.props.handleCCIconClick(this.state.disableClosedCaption);
    }
  }

  handleOnVolumeChange(e) {
    if (this.props.onVolumeChange) {
      const videoRef = this.videoRef;

      if (videoRef) {
        const volume = parseFloat(videoRef.volume);
        const muted = videoRef.muted;
        this.props.onVolumeChange(volume, muted, e);
      }
    }
  }

  handleOnVideoComplete(e) {
    if (this.props.onVideoComplete) {
      this.props.onVideoComplete(e);
    }

    this.setState({
      playing: false,
      captionElement: {
        outerHTML: ''
      }
    });
    this.videoComplete = true;
  }

  handleOnVideoLoad(e) {
    if (this.videoComplete === true) {
      this.videoComplete = false;
      const videoRef = this.videoRef;

      if (videoRef) {
        const {
          currentTime
        } = this.state;
        videoRef.currentTime = currentTime;
      }

      return;
    }

    if (this.props.onVideoLoad) {
      this.props.onVideoLoad(e);
    }

    const {
      autoplay,
      muted
    } = this.props;
    const videoRef = this.videoRef;

    if (videoRef) {
      let volumeLevel = parseFloat(videoRef.volume);

      if (isNaN(volumeLevel)) {
        volumeLevel = 1.0;
      }

      if (muted) {
        videoRef.muted = true;
      }

      if (autoplay) {
        videoRef.play();
        this.setState({
          playing: true,
          showPoster: false,
          playEnabled: true,
          volumeLevel: volumeLevel
        });
      } else {
        this.setState({
          playEnabled: true,
          volumeLevel: volumeLevel
        });
      }

      if (this.props.seekTo && this.props.isModalVideo) {
        this.handleSeekTo(this.props.seekTo);
      }
    }
  }

  handleOnVideoPause(e) {
    if (this.props.onVideoPause) {
      this.props.onVideoPause(e);
    } // Video can be paused even if the user didn't request it


    this.setState(prevState => ({
      playing: false
    }));
  }

  handleOnVideoPlay(e) {
    const {
      seekTo
    } = this.props;

    if (seekTo && this.state.currentTime === 0) {
      this.handleSeekTo(seekTo);
    }

    if (this.props.onVideoPlay) {
      this.props.onVideoPlay(e);
    }
  }

  handleOnVideoStop(e) {
    if (this.props.onVideoStop) {
      this.props.onVideoStop(e);
    }
  }

  togglePlay() {
    this.videoComplete = false;
    const videoRef = this.videoRef;

    if (videoRef) {
      const {
        playing
      } = this.state;

      if (playing) {
        videoRef.pause();
      } else {
        videoRef.play();
      }

      this.setState(prevState => ({
        showPoster: false,
        playing: !prevState.playing
      }));
    }
  }

  stopControlsTimer() {
    if (this.hideControlsTimer) {
      clearTimeout(this.hideControlsTimer);
      this.hideControlsTimer = null;
    }
  }

  handlePointerEnter(e) {
    const containerRef = this.videoComponentContainerRef;

    if (containerRef !== e.currentTarget) {
      return;
    }

    if (this.props.onPointerEnter) {
      this.props.onPointerEnter(e);
    }

    this.stopControlsTimer();
    this.setState({
      showControls: true
    });
  }

  handlePointerLeave(e) {
    const containerRef = this.videoComponentContainerRef;

    if (containerRef !== e.currentTarget) {
      return;
    }

    let preventDefault = false;

    if (this.props.onPointerLeave) {
      preventDefault = this.props.onPointerLeave(e);
    }

    if (!preventDefault) {
      this.hideControlsTimer = setTimeout(() => {
        if (this.hideControlsTimer) {
          this.setState({
            showControls: false
          });
        }
      }, 1000);
    }
  }

  handleSeekTo(seconds) {
    const videoRef = this.videoRef;

    if (videoRef) {
      videoRef.currentTime = seconds;
      this.setState({
        showPoster: false,
        currentTime: seconds
      });

      if (this.videoComplete === true) {
        videoRef.load();
      }
    }
  } // Handling keyDown for keyCode 32(Space), keyCode 13(Enter) 


  handleKeyDownOnControls(e, controlName, dialogClosed = false) {
    if (e.keyCode === 32 || e.keyCode === 13) {
      if (controlName === 'togglePlay') {
        this.togglePlay();
      } else if (controlName === 'toggleCC') {
        this.toggleCC();
      } else if (controlName === 'closeVideo') {
        this.dismissVideoPlayer();
      } else if (controlName === 'toggleMute') {
        this.toggleMute();
      } else if (controlName === 'toggleFullScreen') {
        if (this.props.toggleMaximize) {
          this.props.toggleMaximize(this.state.currentTime, dialogClosed);
        }
      }
    }
  }

  handlePosterClick(e) {
    this.handleVideoClick(e);
  }

  handleVideoClick(e) {
    let preventDefault = false;

    if (this.props.onClick) {
      preventDefault = this.props.onClick(e);
    }

    if (!preventDefault) {
      this.togglePlay();
    }
  }

  handleKeyDown(event) {
    let preventDefault = false;

    if (this.props.onKeyDown) {
      preventDefault = this.props.onKeyDown(event);
    }

    if (!preventDefault && event.keyCode === 32) {
      this.togglePlay();
    }
  }

  setVolumeLevel(level) {
    const levelNormalized = parseFloat(level).toFixed(9);
    const {
      playSound
    } = this.state;
    let shouldPlaySound = playSound;

    if (levelNormalized <= 0.0) {
      shouldPlaySound = false;
    } else {
      shouldPlaySound = true;
    }

    const videoRef = this.videoRef;

    if (videoRef) {
      const muted = videoRef.muted;

      if (muted && shouldPlaySound === true) {
        videoRef.muted = false;
      }

      videoRef.volume = levelNormalized;
    }

    this.setState({
      volumeLevel: levelNormalized,
      playSound: shouldPlaySound
    });
  }

  startTimer() {
    if (this.timer) {
      return;
    }

    this.timer = setInterval(() => {
      const videoRef = this.videoRef;

      if (videoRef) {
        this.setState({
          currentTime: videoRef.currentTime,
          totalDuration: videoRef.duration
        });
      }
    }, 100);
  }

  stopTimer() {
    if (!this.timer) {
      return;
    }

    clearInterval(this.timer);
    this.timer = null;
  }

  render() {
    // Fix lint: unused vars
    const _this$props = this.props,
          {
      controls,
      children,
      className,
      enableFullScreen,
      hideCloseIcon,
      isModalVideo,
      handleFullScreenIconClick,
      poster,
      src,
      toggleMaximize,
      volume
    } = _this$props,
          otherProps = _objectWithoutProperties(_this$props, _excluded);

    delete otherProps.showCaptionDefault;
    const {
      audioTrackAvailable,
      showControls,
      showPlayer,
      showPoster,
      playSound,
      trackAvailable,
      disableClosedCaption,
      volumeLevel,
      playing,
      currentTime,
      totalDuration,
      playEnabled,
      captionElement
    } = this.state;
    return showPlayer ? /*#__PURE__*/_react.default.createElement("div", {
      className: (0, _classnames.default)(isModalVideo ? 'react-spectrum-VideoRootWrapper-modal' : 'react-spectrum-VideoRootWrapper'),
      ref: c => this.videoComponentContainerRef = c,
      onPointerEnter: event => this.handlePointerEnter(event),
      onPointerLeave: event => this.handlePointerLeave(event)
    }, /*#__PURE__*/_react.default.createElement("div", null, showPoster ? /*#__PURE__*/_react.default.createElement("img", _extends({
      alt: "",
      className: "react-spectrum-Video-Poster",
      onClick: e => this.handlePosterClick(e)
    }, otherProps, {
      src: poster
    })) : null, /*#__PURE__*/_react.default.createElement("video", _extends({
      src: src,
      ref: v => this.videoRef = v,
      onClick: e => this.handleVideoClick(e),
      tabIndex: '0',
      onKeyDown: e => this.handleKeyDown(e),
      className: (0, _classnames.default)('react-spectrum-Video', showPoster ? 'hide' : '', className),
      volume: parseFloat(volume).toFixed(9)
    }, otherProps), children), trackAvailable && !disableClosedCaption && /*#__PURE__*/_react.default.createElement("div", {
      className: 'react-spectrum-CCContainer',
      dangerouslySetInnerHTML: {
        __html: captionElement.outerHTML
      }
    }), controls && /*#__PURE__*/_react.default.createElement(_UxpVideoControls.default, {
      audioTrackAvailable: audioTrackAvailable,
      showControls: showControls,
      playEnabled: playEnabled,
      currentTime: currentTime,
      totalDuration: totalDuration,
      playSound: playSound,
      trackAvailable: trackAvailable,
      disableClosedCaption: disableClosedCaption,
      handleFullScreenIconClick: handleFullScreenIconClick,
      handleKeyDownOnControls: (e, controlName) => this.handleKeyDownOnControls(e, controlName),
      toggleMaximize: (seconds, dialogClosed) => toggleMaximize(seconds, dialogClosed),
      enableFullScreen: enableFullScreen,
      isModalVideo: isModalVideo,
      volumeLevel: volumeLevel,
      playing: playing,
      handleSeekTo: seconds => this.handleSeekTo(seconds),
      togglePlay: () => this.togglePlay(),
      toggleMute: () => this.toggleMute(),
      toggleCC: () => this.toggleCC(),
      setVolumeLevel: level => this.setVolumeLevel(level)
    })), !isModalVideo && !hideCloseIcon && /*#__PURE__*/_react.default.createElement("div", {
      className: (0, _classnames.default)('react-spectrum-ClosePlayer', controls && showControls ? '' : 'hide')
    }, /*#__PURE__*/_react.default.createElement("div", {
      /* eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex */
      tabIndex: 0,
      className: "react-spectrum-ClosePlayerIcon",
      onKeyDown: e => this.handleKeyDownOnControls(e, 'closeVideo'),
      onClick: () => this.dismissVideoPlayer()
    }, /*#__PURE__*/_react.default.createElement(_CloseCircle.default, {
      size: "M"
    })))) : null;
  }

}

exports.default = UxpVideoHelper;

/***/ }),

/***/ "y1pI":
/***/ (function(module, exports, __webpack_require__) {

var eq = __webpack_require__("ljhN");
/**
 * Gets the index at which the `key` is found in `array` of key-value pairs.
 *
 * @private
 * @param {Array} array The array to inspect.
 * @param {*} key The key to search for.
 * @returns {number} Returns the index of the matched value, else `-1`.
 */


function assocIndexOf(array, key) {
  var length = array.length;

  while (length--) {
    if (eq(array[length][0], key)) {
      return length;
    }
  }

  return -1;
}

module.exports = assocIndexOf;

/***/ }),

/***/ "y5dl":
/***/ (function(module, exports, __webpack_require__) {

// extracted by mini-css-extract-plugin

/***/ }),

/***/ "yCfT":
/***/ (function(module, exports) {

/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
module.exports = {
  'ccd.infoPanel.detail.created': '제작일',
  'ccd.infoPanel.detail.modified': '수정일',
  'ccd.infoPanel.detail.size': '크기',
  'ccd.infoPanel.detail.shared': '공유됨',
  'ccd.header.renameFolder': '폴더 이름 바꾸기',
  'ccd.menu.addToFavourites': '단축키에 추가',
  'ccd.menu.removeFromFavourites': '단축키 제거',
  'ccd.menu.viewonweb': '웹에서 보기',
  'ccd.menu.share': '공유',
  'ccd.menu.openWith': '다음에서 열기',
  'ccd.menu.changeDefaultApp': '기본 애플리케이션 변경...',
  'ccd.menu.default': '(기본값)',
  'ccd.menu.export': '로컬 사본으로 내보내기',
  'ccd.menu.download': '다운로드',
  'ccd.menu.createNew': '새로 만들기...',
  'ccd.menu.launch': '실행',
  'actionMenuItem.permdelete': '영구적으로 삭제',
  'tab.Cloud Documents': '내 파일',
  'tab.Home': '홈',
  'header.CloudDocuments': '내 파일',
  'header.SharedWithYou': '나와 공유됨',
  'header.Deleted': '삭제된 항목',
  'header.Deleted.AssetsWebLink': '삭제된 모든 항목을 보려면 에셋 웹으로 이동하세요.',
  'header.SelectedDocuments': '{numSelected, plural, =1 {#개} other {#개}} 선택됨',
  'header.size': '크기',
  'header.title': '이름',
  'header.modifiedDate': '수정일',
  'header.createDate': '제작일',
  'header.shareDate': '공유일',
  'header.SortBy': '정렬 기준',
  'header.infoPopover.body': '호환되는 파일만 표시됩니다. 모든 파일을 보려면 웹에서 Creative Cloud를 방문하십시오.',
  'header.infoPopover.link': 'Creative Cloud로 이동',
  'header.dragImport': '업로드 대상: {displayName}',
  'collaborators.onlyYou': '내 전용',
  'collaborators.Owner': '{displayName} (소유자)',
  'collaborators.More': '{numItems, plural, other {+ 기타 #개}}',
  'empty.offline.root.title': '연결 해제됨',
  'empty.offline.root.subtitle': '다시 연결하면 온라인 상태에서 볼 수 있는 항목이 여기에 표시됩니다.',
  'empty.offline.folder.title': '폴더를 로드할 수 없음',
  'empty.offline.folder.subtitle': '인터넷에 연결되어 있지 않습니다. 모든 항목을 조회하려면 다시 연결해 주십시오.',
  'empty.online.cdp.saveas.root.title': '표시할 클라우드 문서 없음',
  'empty.online.cdp.saveas.root.subtitle': '클라우드 문서란 인터넷에 연결되기만 하면 모든 디바이스에서 장소에 상관없이 내 작업이 항상 업데이트된다는 것을 의미합니다.',
  'empty.online.cdp.saveas.root.subtitle.sprk': 'XD에서 제작한 모든 클라우드 문서가 여기에 표시됩니다. 장소에 상관없이 오프라인에서도 작업을 수행하세요. 클라우드 문서의 변경 내용은 자동으로 저장되고 문서 내역에서 확인할 수 있습니다.',
  'empty.online.cdp.saveas.root.subtitle.phxs': 'Mac, Windows 및 iPad의 Photoshop에서 제작된 모든 클라우드 문서가 여기에 표시됩니다.',
  'empty.online.cdp.saveas.root.subtitle.ilst': 'Mac 및 Windows의 Illustrator에서 제작된 모든 클라우드 문서가 여기에 표시됩니다.',
  'empty.online.cdp.saveas.root.subtitle.idsn': 'Mac 및 Windows의 InDesign에서 제작한 모든 클라우드 문서가 여기에 표시됩니다.',
  'empty.online.cdp.saveas.folder.title': '표시할 클라우드 문서 없음',
  'empty.online.cdp.saveas.folder.subtitle': '이 폴더에 호환되는 클라우드 문서를 넣으면 여기에 표시됩니다.',
  'empty.online.cdp.open.root.title': '표시할 클라우드 문서 없음',
  'empty.online.cdp.open.root.subtitle': '이 폴더에 호환되는 클라우드 문서를 넣으면 여기에 표시됩니다.',
  'empty.online.cdp.open.root.subtitle.sprk': 'XD에서 제작한 모든 클라우드 문서가 여기에 표시됩니다. 장소에 상관없이 오프라인에서도 작업을 수행하세요. 클라우드 문서의 변경 내용은 자동으로 저장되고 문서 내역에서 확인할 수 있습니다.',
  'empty.online.cdp.open.root.subtitle.phxs': 'Mac, Windows 및 iPad의 Photoshop에서 제작된 모든 클라우드 문서가 여기에 표시됩니다.',
  'empty.online.cdp.open.root.subtitle.ilst': 'Mac 및 Windows의 Illustrator에서 제작된 모든 클라우드 문서가 여기에 표시됩니다.',
  'empty.online.cdp.open.root.subtitle.idsn': 'Mac 및 Windows의 InDesign에서 제작한 모든 클라우드 문서가 여기에 표시됩니다.',
  'empty.online.cdp.open.folder.title': '표시할 클라우드 문서 없음',
  'empty.online.cdp.open.folder.subtitle': '이 폴더에 호환되는 클라우드 문서를 넣으면 여기에 표시됩니다.',
  'empty.online.cdo.root.title': '클라우드 문서 없음',
  'empty.online.cdo.root.subtitle': '다른 사람들과 원활하게 공동 작업을 진행하고 오프라인에서도 장소에 상관없이 작업을 계속 수행하세요. 변경 내용은 자동으로 저장되고 파일 내역에서 확인할 수 있습니다.',
  'empty.online.cdo.root.subtitle.sprk': '다른 사람들과 실시간으로 원활하게 공동 작업을 진행하고 오프라인에서도 장소에 상관없이 작업을 계속 수행하세요. 변경 내용은 자동으로 저장되고 파일 내역에서 확인할 수 있습니다.',
  'empty.online.cdo.root.subtitle.phxs': 'Photoshop에 로그인하여 다른 사람들과 원활하게 공동 작업을 진행하고 오프라인에서도 장소에 상관없이 작업을 계속 수행하세요. 변경 내용은 자동으로 저장되고 파일 내역에서 확인할 수 있습니다.',
  'empty.online.cdo.root.subtitle.ilst': 'Illustrator에 로그인하여 다른 사람들과 원활하게 공동 작업을 진행하고 오프라인에서도 장소에 상관없이 작업을 계속 수행하세요. 변경 내용은 자동으로 저장되고 파일 내역에서 확인할 수 있습니다.',
  'empty.online.cdo.root.subtitle.idsn': '장소에 상관없이 InDesign에 로그인만 하면 내 문서에 액세스할 수 있습니다. 변경 내용은 자동으로 저장됩니다.',
  'empty.online.cdo.folder.title': '표시할 클라우드 문서 없음',
  'empty.online.cdo.folder.subtitle': '이 폴더에 호환되는 클라우드 문서를 넣으면 여기에 표시됩니다.',
  'empty.title.deleted': '삭제한 파일이 없습니다.',
  'empty.title.deleted_offline': '연결 해제됨',
  'empty.title.recent': '최근 파일이 없습니다.',
  'empty.subtext.deleted_offline': '다시 연결하면 온라인 상태에서 삭제된 항목이 여기에 표시됩니다.',
  'empty.title.shared_with_you': '공유된 클라우드 문서 없음',
  'empty.subtext.shared_with_you': '누군가 나와 클라우드 문서를 공유하면 여기에 표시됩니다.',
  'empty.title.shared_with_you_offline': '연결 해제됨',
  'empty.subtext.shared_with_you_offline': '다시 연결되면 공유 문서를 조회하고 편집할 수 있습니다.',
  'empty.title.error': '오류가 발생했습니다.',
  'empty.subtext.error': '앱을 재시작하고 다시 시도해 주십시오.',
  'empty.subtext.error.web': '브라우저를 새로 고치고 다시 시도하십시오.',
  'empty.title.coresync.down': '로드할 수 없음',
  'empty.subtext.coresync.down': '클라우드 동기화가 비활성 상태입니다. Creative Cloud 데스크탑을 업데이트했는지 확인하거나 앱을 다시 시작해 보십시오.',
  'empty.title.coresync.incompatible': '클라우드 문서를 로드할 수 없음',
  'empty.subtext.coresync.incompatible': '지금은 항목을 표시할 수 없습니다. Creative Cloud 애플리케이션의 버전을 업데이트하고 다시 시도해 주십시오.',
  'empty.title.cloudStorageDisabled': '클라우드 문서를 사용할 수 없음',
  'empty.subtext.cloudStorageDisabled': '{productName}을(를) 사용하여 내 디바이스의 파일에서만 작업할 수 있습니다. 자세한 내용은 귀사의 IT 관리자에게 문의하십시오.',
  'empty.title.logout': '클라우드 문서에 액세스하려면 로그인하십시오.',
  'empty.learnMore.link': '자세히 알아보기',
  'trueEmpty.online.cdo.folder.title': '이 폴더는 비어 있습니다.',
  'trueEmpty.online.cdo.folder.subtitle': '여기에 항목을 추가하여 채우기를 시작하세요.',
  'trueEmpty.online.cdp.saveas.folder.title': '아직 클라우드 문서 없음',
  'trueEmpty.online.cdp.saveas.folder.subtitle': '클라우드 문서란 인터넷에 연결되기만 하면 모든 디바이스에서 장소에 상관없이 내 작업이 항상 업데이트된다는 것을 의미합니다.',
  'trueEmpty.online.cdp.open.folder.title': '아직 클라우드 문서 없음',
  'trueEmpty.online.cdp.open.folder.subtitle': '클라우드 문서란 인터넷에 연결되기만 하면 모든 디바이스에서 장소에 상관없이 내 작업이 항상 업데이트된다는 것을 의미합니다.',
  'filter.prompt': '키워드 입력',
  'filter.title': '필터',
  'empty.filter.title': '“{filterString}”에 대한 결과 없음',
  'empty.filter.subtitle': '맞춤법을 확인하거나, 보다 일반적인 키워드를 사용하거나, 다른 위치를 필터링해 보세요.',
  'beta.title': '디바이스 전체에서 내 작업 동기화',
  'beta.subtitle': '클라우드 문서를 사용하여 iPad 및 데스크탑의 Photoshop에서 손쉽게 작업할 수 있습니다. 단, 이 기능은 Beta 버전이므로 가끔씩 예상대로 작동하지 않을 수 있습니다. 환경 설정에서 켜거나 끌 수 있습니다.',
  'beta.button': '환경 설정에서 켜기',
  'beta.tag': 'BETA',
  'beta.feedback.link': 'Beta 버전에 대한 피드백 제공',
  'button.add-folder': '새 폴더 만들기',
  'button.upload': '업﻿로﻿드...',
  'button.createnew': '새로 만들기',
  'button.reportAbuse': '오용 신고',
  'button.open': '열기',
  'button.select': '선택',
  'button.rename': '이름 바꾸기',
  'button.pin.header': '오프라인에서 사용할 수 있도록 설정 (항상)',
  'button.pin': '오프라인에서 사용할 수 있도록 설정 (항상)',
  'button.unpin.header': '온라인 전용으로 설정',
  'button.unpin': '온라인 전용으로 설정',
  'button.duplicate': '복제',
  'button.download': '다운로드',
  'button.move': '이동',
  'button.delete': '삭제',
  'button.restore': '복원',
  'button.permdelete': '영구적으로 삭제',
  'button.listview': '목록 보기',
  'button.gridview': '격자 보기',
  'button.sharesheetinvite': '편집하도록 초대',
  'button.sharesheetLink': '링크 받기',
  'button.shareSheetAction': '공유',
  'button.preview': '미리보기',
  'button.schedule': '예약',
  'action.duplicate.suffix': '(복제)',
  'action.resolve_sync_error.suffix': '사본',
  'statusIcon.conflicted': '동기화 충돌',
  'statusIcon.onlineOnly': '온라인 전용',
  'statusIcon.availableOffline': '오프라인에서 사용 가능',
  'statusIcon.syncing': '동기화 중...',
  'statusIcon.waitingToSync': '동기화 대기 중',
  'tooltip.error': '문서를 열어 저장 시 충돌 문제 검토',
  'toast.error.documentIsOpen': '이 작업을 수행하려면 {count, plural, =1 {문서} other {문서}}를 닫으십시오.',
  'toast.error.exceedsQuota.personal': '계정의 스토리지 용량 부족',
  'toast.error.exceedsQuota.enterprise': '스토리지 용량이 부족합니다. 자세한 내용은 관리자에게 문의하십시오.',
  'toast.operation.duplicate.error': '{count, plural, =1 {항목} other {{count}개 항목}}을 복제할 수 없습니다.',
  'toast.operation.duplicate.success': '{count, plural, =1 {항목} other {{count}개 항목}}이 복제되었습니다.',
  'toast.operation.archive.error': '{count, plural, =1 {항목} other {{count}개 항목}}을 삭제하지 못했습니다.',
  'toast.operation.archive.error.otherAppUncommittedChanges': '다른 앱에서 열려 있는 파일은 삭제할 수 없습니다. 해당 앱을 닫고 다시 시도하십시오.',
  'toast.operation.archive.undo.error': '{count, plural, =1 {항목} other {{count}개 항목}}을 삭제하지 못했습니다.',
  'toast.operation.archive.success': '{count, plural, =1 {항목} other {{count}개 항목}}이 삭제되었습니다.',
  'toast.operation.archive.undo.success': '복원이 실행 취소되었습니다.',
  'toast.operation.permdelete.error': '{count, plural, =1 {항목} other {{count}개 항목}}을 영구적으로 삭제하지 못했습니다.',
  'toast.operation.permdelete.success': '{count, plural, =1 {항목} other {{count}개 항목}}이 영구적으로 삭제되었습니다.',
  'toast.operation.rename.error': '항목의 이름을 변경하지 못했습니다.',
  'toast.operation.rename.undo.error': '항목의 이름을 변경하지 못했습니다.',
  'toast.operation.rename.error.duplicateName': '동일한 이름의 항목이 여기에 이미 있습니다.',
  'toast.operation.rename.undo.error.duplicateName': '동일한 이름의 항목이 여기에 이미 있습니다.',
  'toast.operation.rename.success': '항목 이름이 변경되었습니다.',
  'toast.operation.rename.undo.success': '이름 바꾸기가 실행 취소되었습니다.',
  'toast.operation.move.error': '{count, plural, =1 {항목} other {{count}개 항목}}을 옮기지 못했습니다.',
  'toast.operation.move.undo.error': '{count, plural, =1 {항목} other {{count}개 항목}}을 옮기지 못했습니다.',
  'toast.operation.move.error.duplicateFolderName': '동일한 이름의 폴더가 여기에 이미 존재합니다.',
  'toast.operation.move.undo.error.duplicateFolderName': '동일한 이름의 폴더가 여기에 이미 존재합니다.',
  'toast.operation.move.error.duplicateDocName': '{count, plural, =1 {동일한 이름의 문서가 해당 폴더에 이미 존재합니다. 이름을 변경하고 다시 시도하십시오.} other {동일한 이름의 문서가 존재하여 문서를 이동할 수 없습니다.}}',
  'toast.operation.move.undo.error.duplicateDocName': '{count, plural, =1 {동일한 이름의 문서가 해당 폴더에 이미 존재합니다. 이름을 변경하고 다시 시도하십시오.} other {동일한 이름의 문서가 존재하여 문서를 이동할 수 없습니다.}}',
  'toast.operation.move.success': '{count, plural, =1 {항목} other {{count}개 항목}}이 옮겨졌습니다.',
  'toast.operation.move.undo.success': '이동이 실행 취소되었습니다.',
  'toast.operation.unarchive.error': '{count, plural, =1 {항목} other {{count}개 항목}}을 복원하지 못했습니다.',
  'toast.operation.unarchive.undo.error': '{count, plural, =1 {항목} other {{count}개 항목}}을 복원하지 못했습니다.',
  'toast.operation.unarchive.success': '{count, plural, =1 {항목} other {{count}개 항목}}이 복원되었습니다.',
  'toast.operation.unarchive.undo.success': '삭제가 실행 취소되었습니다.',
  'toast.operation.create_new_folder.success': '폴더가 생성되었습니다.',
  'toast.operation.create_new_folder.error': '새 폴더를 만들지 못했습니다.',
  'toast.operation.create_new_folder.error.duplicateName': '동일한 이름의 폴더가 여기에 이미 존재합니다.',
  'toast.operation.user_pin.success': '{count, plural, =1 {항목} other {{count}개 항목}}을 오프라인에서 사용할 수 있습니다.',
  'toast.operation.user_pin.error': '{count, plural, =1 {항목} other {{count}개 항목}}을 오프라인에서 사용할 수 있도록 설정할 수 없습니다.',
  'toast.operation.user_unpin.success': '{count, plural, =1 {항목} other {{count}개 항목}}이 온라인 전용입니다.',
  'toast.operation.user_unpin.error': '{count, plural, =1 {항목} other {{count}개 항목}}을 온라인 전용으로 설정할 수 없습니다.',
  'toast.operation.resolve_sync_error.success': '“{name}”의 사본이 생성되었습니다. 두 문서를 서로 비교하고 차이점을 조정할 수 있습니다.',
  'toast.ccd.scroll_to_item.fetching': '파일 가져오는 중…',
  'toast.ccd.scroll_to_item.error': '파일을 찾을 수 없음',
  'toast.info.disabled_rename_to_open_item': '여기에서 레거시 XD 문서의 이름을 바꾸려면 우선 해당 문서를 열어야 합니다.',
  'toast.action.disabled_rename_to_open_item': '문서 열기',
  'toast.error.rename.invalidName': '죄송합니다. 이름에 잘못된 문자가 포함되어 있습니다.',
  'toast.error.rename.invalidChar': '이름에는 다음과 같은 문자를 사용할 수 없습니다. {characters}',
  'toast.error.rename.invalidEnd': '이름은 “.” 또는 공백으로 끝날 수 없습니다.',
  'toast.error.rename.charRestriction': '이름의 문자 길이는 200자를 초과할 수 없습니다.',
  'toast.error.rename.duplicateName': '동일한 이름의 클라우드 문서가 이미 여기에 있습니다.',
  'toast.success.reportAbuse': '정상적으로 오용 신고됨',
  'toast.error.reportAbuse': '오용 신고 실패',
  'toast.operation.undoLabel': '실행 취소',
  'dialog.permdelete.heading': '영구적으로 삭제',
  'dialog.permdelete.warning': '이 작업은 실행 취소할 수 없습니다. 삭제될 항목은 다음과 같습니다.',
  'dialog.permdelete.cancelButton': '취소',
  'dialog.permdelete.confirmButton': '영구적으로 삭제',
  'dialog.permdelete.countItems': '{count, plural, =1 {#개 항목} other {#개 항목}}',
  'dialog.nonemptyfolder.heading': '{count, plural, =1 {이 폴더} other {이들 폴더}}를 삭제하시겠습니까?',
  'dialog.nonemptyfolder.warning': '{count, plural, =1 {이 폴더는} other {이들 폴더는}} 비어 있지 않으며 {appName}에서 표시되지 않는 파일이 포함되어 있을 수 있습니다. 삭제 과정을 계속 진행하거나 웹에서 {count, plural, =1 {폴더를} other {폴더를}} 조회하여 {count, plural, =1 {해당} other {해당}} 콘텐츠를 확인하십시오.  {viewOnWebLink}',
  'dialog.nonemptyfolder.cancelButton': '취소',
  'dialog.nonemptyfolder.confirmButton': '삭제',
  'dialog.nonemptyfolder.viewOnWebButton': '웹에서 보기',
  'dialog.addfolder.heading': '새 폴더 만들기',
  'dialog.addfolder.cancelButton': '취소',
  'dialog.addfolder.confirmButton': '저장',
  'dialog.addfolder.placeholder': '새 폴더',
  'dialog.addfolder.invalidChar': '이름에는 다음과 같은 문자를 사용할 수 없습니다. {characters}',
  'dialog.addfolder.invalidName': '죄송합니다. 이 폴더에 잘못된 문자가 포함되어 있습니다.',
  'dialog.addfolder.invalidEnd': '이름은 “.” 또는 공백으로 끝날 수 없습니다.',
  'dialog.addfolder.duplicateName': '동일한 이름의 폴더가 여기에 이미 있습니다.',
  'dialog.addfolder.charRestriction': '이름의 문자 길이는 200자를 초과할 수 없습니다.',
  'dialog.moveFolder.heading': '다음으로 이동...',
  'dialog.moveFolder.cancelButton': '취소',
  'dialog.moveFolder.moveButton': '이동',
  'dialog.moveFolder.createNewFolderButton': '폴더 추가',
  'dialog.reportAbuse.cancelButton': '취소',
  'dialog.reportAbuse.reportAbuseButton': '오용 신고',
  'dialog.reportAbuse.heading': '오용 신고',
  'dialog.reportAbuse.emailInput': '이메일',
  'dialog.reportAbuse.nameInput': '이름',
  'dialog.reportAbuse.radioButtonText': '이 콘텐츠를 신고하는 이유는 무엇입니까?',
  'dialog.reportAbuse.defamation': '명예 훼손',
  'dialog.reportAbuse.hate': '인종 차별 또는 인신 공격성 콘텐츠',
  'dialog.reportAbuse.trademark': '상표권 위반',
  'dialog.reportAbuse.pornography': '노골적인 성적 콘텐츠',
  'dialog.reportAbuse.vulgar': '공격적 내용',
  'dialog.reportAbuse.other': '기타',
  'dialog.reportAbuse.inappropriate': '부적합',
  'dialog.reportAbuse.age': '나이 부정확',
  'dialog.reportAbuse.gender': '성별 부정확',
  'dialog.reportAbuse.description': '이 Creative Cloud 콘텐츠가 Adobe 사용 약관을 위반한다고 판단되는 경우, 이 간이 양식을 작성하여 해당 콘텐츠를 신고할 수 있습니다.',
  'dialog.reportAbuse.describeConcern': '문제 설명',
  'dialog.reportAbuse.success': '정상적으로 오용 신고됨',
  'dialog.reportAbuse.failure': '오용 신고 실패',
  'dialog.reportAbuse.textAreaTitle': '문제에 대해 설명해 주십시오.',
  'dialog.reportAbuse.required': '필수',
  'dialog.cachefull.title': '오프라인에서 사용할 수 있도록 설정할 수 없음',
  'dialog.cachefull.message': '디바이스의 공간이 부족합니다. 문서를 온라인 전용으로 설정하여 여유 공간을 확보하십시오.',
  'dialog.cachefull.confirm': '확인',
  'dialog.syncError.heading': '이 문서에 대한 클라우드 동기화가 중단되었습니다.',
  'dialog.syncError.body1': '최신 버전을 사본으로 저장하고 해당 문서를 클라우드에 저장된 마지막 버전으로 복원할 것이 권장됩니다.',
  'dialog.syncError.body2': '이 문서를 열고 편집할 수 있지만 변경 내용이 클라우드에 저장되지는 않습니다.',
  'dialog.syncError.offline': '사본을 저장하고 원본을 복원하려면 온라인 상태여야 합니다.',
  'dialog.syncError.learnMore': '자세한 내용 보기',
  'dialog.syncError.resolveButton': '사본 저장 및 복원',
  'dialog.syncError.openButton': '열기',
  'dialog.syncErrorCopyFail.heading': '사본을 저장할 수 없음',
  'dialog.syncErrorCopyFail.body1': '이 문서를 열고 편집할 수는 있지만 변경 내용이 클라우드에 저장되지 않습니다.',
  'dialog.syncErrorCopyFail.body2': '추가 지원이 필요한 경우 Adobe 고객 지원 센터에 문의하십시오. (오류: LocalContentSyncSuspended)',
  'dialog.syncErrorCopyFail.closeButton': '닫기',
  'dialog.syncErrorCopyFail.contactUs': '문의하기',
  'dialog.syncErrorPurgeFail.heading': '클라우드에 저장된 마지막 버전으로 복원할 수 없음',
  'dialog.syncErrorPurgeFail.body1': '문서 사본이 생성되었지만 클라우드에 마지막으로 저장된 버전으로 해당 문서를 복원할 수 없습니다.',
  'dialog.syncErrorPurgeFail.body2': '추가 지원이 필요한 경우 Adobe 고객 지원 센터에 문의하십시오. (오류: LocalContentSyncSuspended)',
  'dialog.syncErrorPurgeFail.closeButton': '닫기',
  'dialog.syncErrorPurgeFail.contactUs': '문의하기',
  'onboardingCdo.banner.title.sprk': '더욱 효율적인 작업',
  'onboardingCdo.banner.title.phxs': 'iPad에서 Photoshop을 사용하고 계십니까? 클라우드 문서를 사용해 보세요.',
  'onboardingCdo.banner.title.ilst': '이제 Illustrator에서 클라우드 문서 사용 가능',
  'onboardingCdo.banner.title.idsn': '이제 InDesign에서 클라우드 문서 사용 가능',
  'onboardingCdo.banner.message.sprk': '장소에 상관없이 오프라인에서도 클라우드 문서 편집 작업을 수행하세요. 변경 내용은 자동으로 저장되고 문서 내역에서 확인할 수 있습니다. 이들 문서를 다른 사람들과 공유하여 실시간으로 원활한 공동 작업을 수행하세요.',
  'onboardingCdo.banner.message.phxs': '작업을 수행하는 동안 클라우드 문서가 Adobe의 클라우드에 자동으로 저장되므로 데스크탑 또는 iPad에서 내 파일에 액세스할 수 있습니다.',
  'onboardingCdo.banner.message.ilst': 'Illustrator의 클라우드 문서는 작업하는 동안 Adobe의 클라우드에 자동으로 저장됩니다. 버전 내역을 조회하여 작업이 어떤 방식으로 진행되었는지도 확인할 수 있습니다.',
  'onboardingCdo.banner.message.idsn': '작업하는 동안 InDesign의 클라우드 문서가 Adobe의 클라우드에 자동으로 저장됩니다.',
  'onboardingCdo.banner.linkTitle': '자세히 알아보기',
  'onboardingCdo.banner.confirm': '확인',
  'operation.progress.archive': '{batchSize, plural, =1 {1개 항목} other {{batchSize}개 중 {inProgressNum}개 항목}} 삭제 중...',
  'operation.progress.unarchive': '{batchSize, plural, =1 {1개 항목} other {{batchSize}개 중 {inProgressNum}개 항목}} 복원 중...',
  'operation.progress.move': '{batchSize, plural, =1 {1개 항목} other {{batchSize}개 중 {inProgressNum}개 항목}} 이동 중...',
  'operation.progress.permdelete': '{batchSize, plural, =1 {1개 항목} other {{batchSize}개 중 {inProgressNum}개 항목}} 영구 삭제 중...',
  'operation.progress.rename': '{batchSize, plural, =1 {1개 항목} other {{batchSize}개 중 {inProgressNum}개 항목}} 이름 변경 중...',
  'operation.progress.create_new_folder': '새 폴더를 만드는 중...',
  'operation.progress.duplicate': '{batchSize, plural, =1 {1개 항목} other {{batchSize}개 중 {inProgressNum}개 항목}} 복제 중...',
  'operation.progress.user_pin': '{batchSize, plural, =1 {1개 항목} other {{batchSize}개 중 {inProgressNum}개 항목}}을 오프라인에서 사용할 수 있도록 설정 중...',
  'operation.progress.user_unpin': '{batchSize, plural, =1 {1개 항목} other {{batchSize}개 중 {inProgressNum}개 항목}}을 온라인 전용으로 설정 중...',
  'operation.progress.resolve_sync_error': '복사 및 클라우드에 마지막으로 저장된 버전으로 복원 중...',
  'tooltip.offline.general': '인터넷에 연결해야 합니다.',
  'tooltip.offline.create-new-folder': '폴더를 만들려면 인터넷에 연결해야 합니다.',
  'tooltip.offline.move': '항목을 이동하려면 인터넷에 연결해야 합니다.',
  'tooltip.syncing.disabled': '동기화 완료 대기 중',
  'tooltip.rename.disabled': '선택한 문서의 이름을 변경할 수 없습니다. 이름을 바꾸려면 호스트 애플리케이션에서 여십시오.',
  'tooltip.rename.disabled.sprk': '이 파일은 XD에서 열기 전까지 이름을 바꿀 수 없습니다.',
  'tooltip.syncSuspended.needsAction': '동기화가 중단되었습니다. 조치를 취하려면 여십시오.',
  'tooltip.syncSuspended.noAction': '동기화가 중단되었습니다. 이 작업은 현재 허용되지 않습니다.',
  'Recents.title': '최근 항목',
  'Recents.cloudDocTitle': '클라우드 문서',
  'Recents.error.subtext.coreSync': 'Creative Cloud 동기화가 제대로 실행되지 않아 지금은 “최근” 항목을 사용할 수 없습니다.',
  'item.saveForOfflineIconToolTip': '이 문서는 다운로드되었으며 오프라인에서 사용할 수 있습니다.',
  'item.disconnected.cloudonly': '연결이 끊어졌습니다. 문서를 열려면 다시 연결해 주십시오.',
  'item.coresyncdown.cloudonly': '파일을 로드할 수 없습니다. Creative Cloud를 업데이트하거나 다시 시작하면 이 문제가 해결될 수 있습니다.',
  'folder.subtitle': '폴더',
  'review.subtitle': '검토',
  'prototype.subtitle': '프로토타입',
  'designspecs.subtitle': '디자인 사양',
  'project.subtitle': '프로젝트',
  'library.subtitle': '라이브러리',
  'webLink.subtitle': '웹 링크',
  'abbreviations.fileSize.byte': 'B',
  'abbreviations.fileSize.kilobyte': 'KB',
  'abbreviations.fileSize.megabyte': 'MB',
  'abbreviations.fileSize.gigabyte': 'GB',
  'abbreviations.fileSize.terabyte': 'TB',
  'sam.copyNameFormat': '%@ 사본',
  'cloudsync.quota.title': '클라우드 스토리지',
  'cloudsync.quota.percentage': '{percentageUsed}%',
  'cloudsync.quota.usage': '{usedCloudQuotaString}/{maxCloudQuotaString} 사용됨',
  'cloudsync.quota.warning': '클라우드 스토리지가 가득 찼습니다. 작업을 계속 동기화하려면 지금 업그레이드하십시오.',
  'cloudsync.quota.error': '사용 가능한 스토리지 정보 없음...',
  'cloudsync.quota.upgrade': '업그레이드',
  'cloudsync.status.complete.title': '동기화 및 백업됨',
  'cloudsync.status.syncing.title': '클라우드 문서 동기화 중',
  'cloudsync.status.syncing.descr': '{progress}/{total}',
  'cloudsync.status.offline.title': '오프라인으로 작업 중',
  'cloudsync.status.offline.descr': '로컬로 저장 중입니다. 다시 연결되면 문서가 클라우드에 동기화됩니다.',
  'cloudsync.status.disabled.title': '동기화 비활성화됨',
  'cloudsync.status.disabled.descr': '로컬로 저장 중입니다. 스토리지를 사용할 수 있게 되면 문서가 클라우드에 동기화됩니다.',
  'cloudsync.item.progress.determinate': '{progress}/{total}',
  'cloudsync.item.progress.indeterminate': '동기화 중...',
  'cloudsync.item.complete': '완료',
  'cloudsync.items.header': '네트워크 활동',
  'cloudsync.alert.title.coresync.down': '로드할 수 없음',
  'cloudsync.alert.subtext.coresync.down': '클라우드 동기화가 비활성 상태입니다. Creative Cloud 데스크탑을 업데이트했는지 확인하거나 앱을 다시 시작해 보십시오.',
  'cloudsync.alert.subtext.coresync.down.learnmore': '자세히 알아보기',
  'cloudsync.tooltip.offline': '연결 해제됨',
  'cloudsync.tooltip.error': '오류',
  'cloudsync.tooltip.syncing': '저장 중...',
  'cloudsync.tooltip.default': '저장됨',
  'cloudsync.singleDoc.offline.title': '연결 해제됨',
  'cloudsync.singleDoc.offline.descr': '재연결 시도 중...',
  'cloudsync.singleDoc.offline.timestamp': '마지막 동기화: {time}',
  'cloudsync.singleDoc.error.samInitFail.title': '클라우드 동기화 중단됨',
  'cloudsync.singleDoc.error.samInitFail.descr': '작업 동기화를 계속하려면 이 앱을 다시 시작해 주십시오.',
  'cloudsync.singleDoc.error.syncSuspended.title': '클라우드 동기화 중단됨',
  'cloudsync.singleDoc.error.syncSuspended.descr': '작업 동기화를 계속하려면 이 앱을 다시 시작해 주십시오.',
  'cloudsync.singleDoc.error.title': '로드할 수 없음',
  'cloudsync.singleDoc.error.descr': '클라우드 동기화가 비활성 상태입니다. Creative Cloud 데스크탑을 업데이트했는지 확인하거나 앱을 다시 시작해 보십시오.',
  'cloudsync.singleDoc.error.learnMore': '자세히 알아보기',
  'cloudsync.singleDoc.disabled.quotaExceeded.title': '클라우드 스토리지 가득 참',
  'cloudsync.singleDoc.disabled.quotaExceeded.descr': '내 작업을 계속 동기화하려면 Creative Cloud를 업그레이드해 주십시오.',
  'cloudsync.singleDoc.syncing.title': '저장 중...',
  'cloudsync.singleDoc.syncing.descr': '진행 중',
  'cloudsync.singleDoc.disabled.title': '저장할 수 없음',
  'cloudsync.singleDoc.disabled.descr': '계정의 스토리지 용량 부족.',
  'cloudsync.singleDoc.complete.title': '파일 저장됨',
  'cloudsync.singleDoc.complete.timestamp': '마지막 동기화: {time}'
};

/***/ }),

/***/ "yD6e":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


exports.__esModule = true;
exports.default = hasClass;

function hasClass(element, className) {
  if (element.classList) return !!className && element.classList.contains(className);else return (" " + (element.className.baseVal || element.className) + " ").indexOf(" " + className + " ") !== -1;
}

module.exports = exports["default"];

/***/ }),

/***/ "yGn+":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("lcsq");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("5J2P"),
      24: __webpack_require__("IqbI")
    }
  }));
};

WrappedIcon.displayName = 'CloseCircle';
exports.default = WrappedIcon;

/***/ }),

/***/ "yI+v":
/***/ (function(module) {

module.exports = JSON.parse("{\"a11y.button.canvases\":\"{name}\",\"a11y.button.libraries\":\"{name}, bibliotek\",\"a11y.button.listGridToggle\":\"vyväxling, {toggledView, select, grid {stödraster} list {list}}vy\",\"a11y.button.project\":\"{name}, projekt\",\"a11y.button.published\":\"{name}, {extension}\",\"a11y.button.selectFolder\":\"Markera en mapp\",\"a11y.button.working\":\"{name}, {extension}, ändrad {modified}\",\"a11y.strings.folder\":\"mapp\",\"header.action.newProject\":\"Nytt projekt\",\"header.action.newLibrary\":\"Nytt bibliotek\",\"header.action.browseAll\":\"Bläddra bland alla\",\"header.Name\":\"Namn\",\"header.Size\":\"Storlek\",\"header.Sharing\":\"Medlemmar\",\"header.Team\":\"Arbetsyta\",\"header.DateModified\":\"Ändrad\",\"header.DateCreated\":\"Skapades\",\"header.Status\":\"Favoritmärkt\",\"header.SortBy\":\"Sortera efter\",\"header.sort.label\":\"Sortera\",\"header.ChangeSortDirection\":\"Ändra sorteringsriktning till\",\"header.SortBy.asc\":\"Stigande\",\"header.SortBy.desc\":\"Fallande\",\"header.selectAll\":\"Markera allt\",\"header.reverseOrder\":\"Omvänd ordning\",\"header.showCompatible\":\"Kompatibla filer\",\"header.showEverything\":\"Allt\",\"product.illustrator.web\":\"Illustrator Web (beta)\",\"product.photoshop.web\":\"Photoshop Web (beta)\",\"status.followed\":\"Ja\",\"status.unfollowed\":\"Nej\",\"team.usm.defaultName\":\"Arbetsyta {name}\",\"space.access.private.description\":\"Bara inbjudna\",\"space.access.private.tooltip\":\"Bara personer som har blivit inbjudna har tillgång till detta projekt\",\"space.access.team.description\":\"Alla i arbetsytan och inbjudna\",\"space.access.team.tooltip\":\"Alla i {team} har tillgång till detta projekt\",\"yourProjects.title\":\"Projekt\",\"yourProjects.librariesTab.title\":\"Teambibliotek\",\"yourProjects.empty.spaces\":\"Skapa fler projekt och bjud in fler arbetsytmedlemmar\",\"browseAll.title\":\"Bläddra bland alla\",\"yourFiles.title\":\"Dina dokument\",\"yourLibraries.title\":\"Bibliotek\",\"yourLibraries.metadata\":\"BIBLIOTEK\",\"canvas.metadata\":\"ARBETSYTA\",\"projectInfo.action.view\":\"Visa information\",\"projectInfo.action.edit\":\"Redigera projektet\",\"projectInfo.empty.cta\":\"Skapa ett nytt projekt\",\"projectInfo.empty.description\":\"Med Creative Cloud Projects blir det enklare att hitta, ordna, dela och fatta beslut. Allt du behöver för dina kreativa projekt finns på samma ställe.\",\"projectInfo.empty.heading\":\"Mer kreativitet, mindre jobba ikapp.\",\"projectInfo.error.description\":\"Försök igen senare\",\"projectInfo.error.heading\":\"Det går inte att läsa in {section}\",\"projectInfo.new.error.title\":\"Det går inte att skapa ett nytt projekt\",\"projectInfo.new.noPermission.description\":\"Kontakta din administratör för mer information.\",\"projectInfo.title.create\":\"NYTT PROJEKT\",\"projectInfo.title.edit\":\"REDIGERA PROJEKTET\",\"projectInfo.title.view\":\"PROJEKTINFO\",\"projectInfo.access.title\":\"Vilka som kan redigera detta projekt\",\"projectInfo.access.warning\":\"Vissa medlemmar kan förlora åtkomsten till projektet om du ändrar behörigheten till Bara inbjudna.\",\"projectInfo.organization\":\"Organisation\",\"projectInfo.organization.placeholder\":\"Välj en/ett\",\"projectInfo.description\":\"Beskrivning\",\"textField.invalid.characters\":\"Namn får inte innehålla följande tecken: \\\\\\\\ / * ? \\\" | : < >\",\"textField.invalid.duplicateName\":\"Det finns redan ett projekt med det här namnet i den här organisationen.\",\"textField.invalid.duplicateName.space\":\"Det finns redan ett projekt med det här namnet på den här arbetsytan.\",\"textField.invalid.duplicateName.team\":\"Det finns redan en arbetsyta med det här namnet i den här organisationen.\",\"textField.invalid.empty\":\"Namn får inte vara tomt\",\"textField.invalid.generic\":\"Ogiltigt namn\",\"textField.invalid.length\":\"Namn får innehålla högst 50 tecken\",\"textField.invalid.nameEndsWithDot\":\"Namn får inte sluta med en punkt\",\"textField.invalid.offline\":\"Återanslut för att få åtkomst till alla dina arbetsytor och projekt. Gå till Hem om du vill se lokala filer från dina projekt.\",\"projectInfo.textField.placeholder\":\"Döp det här projektet\",\"projectInfo.team\":\"Arbetsyta\",\"projectInfo.description.placeholder\":\"Ex: Filer, feedback och referensmaterial för kundprojektet\",\"projectInfo.description.invalidLength\":\"Beskrivningen får innehålla högst 1 000 tecken\",\"projectInfo.toast.success.new\":\"Projektet {name} har skapats\",\"projectInfo.toast.success.update\":\"Projektet {name} har uppdaterats\",\"projectInfo.toast.error.generic\":\"Det gick inte att {create, select, true {skapa} other {redigera}} projektet\",\"team.empty.heading\":\"Projekt ser till att alla hänger med\",\"team.empty.description\":\"Är du trött på att bli utelåst från filer, ta hand om förvirringen kring olika versioner och behöva skicka skärmdumpar via e -post för granskning? Använd områden till att organisera projekt, sammanställa resurser och feedback, och dela filer som hela teamet behöver arbeta med.\",\"team.empty.createSpace\":\"Skapa ett projekt\",\"team.empty.inviteMembers\":\"Bjud in medlemmar\",\"team.empty.startHere\":\"BÖRJA HÄR\",\"team.create.success\":\"Arbetsytan har skapats: {name}\",\"team.create.error.generic\":\"Det gick inte att skapa arbetsytan\",\"team.edit.success\":\"Arbetsytan har uppdaterats: {name}\",\"team.edit.error.generic\":\"Det gick inte att uppdatera arbetsytan\",\"team.archive.success\":\"{count, plural, =1 {# arbetsyta} other {# arbetsytor}} raderades\",\"team.archive.error.generic\":\"Det går inte att radera {count, plural, =1 {# arbetsyta} other {# arbetsytor}}\",\"team.error.generic\":\"Tyvärr uppstod ett fel.\",\"project1Up.action.projectInfo\":\"Visa information\",\"project1up.region.space.ariaLabel\":\"{projectName}, projekt\",\"project1Up.section.libraries\":\"Bibliotek\",\"project1Up.section.libraries.empty.cta\":\"Lägg till Creative Cloud Libraries\",\"project1Up.section.libraries.empty.description\":\"Lägg till länkar till bibliotek som du behöver i jobbet.\",\"project1Up.section.libraries.empty.heading\":\"Samla allt på ett enda ställe\",\"project1Up.section.filter\":\"Filtrera\",\"project1Up.section.filter.label\":\"Filtrera på sökord\",\"project1Up.section.filter.enterKeyword\":\"Ange nyckelord\",\"project1Up.section.filterFiles.empty.heading\":\"Inga resultat matchar det valda filtret\",\"project1Up.section.compatibleFiles.empty.heading\":\"Inga kompatibla filer i detta projekt\",\"project1Up.section.workingFiles\":\"Arbetsfiler\",\"project1Up.section.workingFiles.empty.addFiles\":\"Lägg till filer\",\"project1Up.section.workingFiles.empty.createFolder\":\"Skapa en ny mapp\",\"project1Up.section.workingFiles.empty.description\":\"Upprepa i projekt och samarbeta med andra medlemmar.\",\"project1Up.section.workingFiles.empty.heading\":\"Arbeta med vad du vill när du behöver göra det\",\"project1Up.section.published\":\"Publicerat\",\"project1Up.section.published.empty.cta\":\"Publicera länkar\",\"project1Up.section.published.empty.description\":\"Skicka skrivskyddade länkar för att få kommentarer från rätt personer vid rätt tidpunkt.\",\"project1Up.section.published.empty.description.readonly\":\"När någon vill få feedback eller en granskning lägger de till en länk här.\",\"project1Up.section.published.empty.heading\":\"Dela med ett syfte\",\"project1Up.section.published.empty.heading.readonly\":\"Inga publicerade objekt i det här projektet\",\"project1Up.section.canvases\":\"Arbetsytor\",\"project1Up.section.canvases.empty.cta\":\"Lägg till Creative Cloud-arbetsytor\",\"project1Up.section.canvases.empty.description\":\"Lägg till länkar till saker du behöver för att göra ditt arbete.\",\"project1Up.section.canvases.empty.heading\":\"Samla allt på samma ställe\",\"project1Up.section.files\":\"Filer\",\"project1Up.error.accessDenied.heading\":\"Du har inte åtkomst\",\"project1Up.error.accessDenied.description\":\"Du togs bort från det här projektet. Kontakta din administratör om du tror att det har skett av misstag.\",\"project1Up.header.seeAll\":\"Visa alla\",\"project1up.subheader.selected\":\"{count, plural, =1 {# objekt markerat} other {# objekt markerade}}\",\"project1up.subheader.emptyDescription\":\"Lägg till en beskrivning av projektet\",\"project1up.subheader.canvases.title\":\"Arbetsytor\",\"project1up.subheader.canvases.subtitle\":\"ATT GÖRA: UNDERRUBRIK FÖR ARBETSYTOR\",\"project1up.subheader.libraries.title\":\"Bibliotek\",\"project1up.subheader.libraries.subtitle\":\"Medlemmar kan lägga till länkar till Creative Cloud Libraries här.\",\"project1up.subheader.working.title\":\"Arbetsfiler\",\"project1up.subheader.working.subtitle\":\"Medlemmar i projektet kan redigera de här filerna.\",\"project1up.subheader.output.title\":\"Publicerat\",\"project1up.subheader.output.subtitle\":\"{contributor, select, true {Dela skrivskyddade versioner av arbete med personer utanför ditt projekt} other {Visa och kommentera dessa skrivskyddade objekt}}\",\"project.subtitle\":\"PROJEKT\",\"project.countContributors\":\"{count, plural, =1 {# medlem} other {# medlemmar}}\",\"project.versionError.reload.description\":\"Prova att uppdatera webbläsaren.\",\"project.versionError.reload.title\":\"Det går inte att komma åt projektet\",\"project.versionError.update.description\":\"Du kan inte komma åt projektet förrän du har uppdaterat programmet.\",\"project.versionError.update.title\":\"Uppdatera {appName} för att öppna\",\"project.alreadyDiscarded.title\":\"Det här projektet raderades\",\"project.alreadyDiscarded.description\":\"Kontakta din administratör om du tror att det skett av misstag eller bläddra i annat innehåll.\",\"project.deleted.title\":\"Det här projektet har raderats permanent\",\"project.deleted.description\":\"Du kan inte komma åt detta projekt eftersom det inte är tillgängligt längre.\",\"project.metadataError.backLabel\":\"Tillbaka till projekten\",\"project.metadataError.description\":\"Vi kan inte hitta projektet du letar efter eller så har du inte åtkomst.\",\"project.metadataError.title\":\"Tyvärr uppstod ett fel.\",\"folder.subtitle\":\"MAPP\",\"libraries.toast.add.start\":\"Lägger till {count, plural, =1 {# bibliotek} other {# bibliotek}}\",\"libraries.toast.add.success\":\"{count, plural, =1 {# bibliotek} other {# bibliotek}} har lagts till\",\"libraries.toast.add.error\":\"Det gick inte att lägga till {count, plural, =1 {# bibliotek} other {# bibliotek}}. Försök igen.\",\"libraries.toast.add.duplicate\":\"Biblioteket finns redan\",\"libraries.toast.add.onlyDuplicates\":\"Det går inte att lägga till {count, plural, =1 {# bibliotek eftersom det redan finns} other {# bibliotek eftersom de redan finns}}.\",\"libraries.toast.delete.success\":\"{count, plural, =1 {# bibliotek} other {# bibliotek}} har tagits bort\",\"libraries.toast.delete.error\":\"Det gick inte att ta bort {count, plural, =1 {# bibliotek} other {# bibliotek}}\",\"libraries.toast.follow.inProgress\":\"Följer {count, plural, =1 {# bibliotek} other {# bibliotek}}\",\"libraries.toast.follow.success\":\"Följer {count, plural, =1 {# bibliotek} other {# bibliotek}}\",\"libraries.toast.follow.error\":\"Det gick inte att följa {count, plural, =1 {# bibliotek} other {# bibliotek}}\",\"libraries.toast.unfollow.inProgress\":\"Slutade följa {count, plural, =1 {# bibliotek} other {# bibliotek}}\",\"libraries.toast.unfollow.success\":\"Slutade följa {count, plural, =1 {# bibliotek} other {# bibliotek}}\",\"libraries.toast.unfollow.error\":\"Det gick inte att sluta följa {count, plural, =1 {# bibliotek} other {# bibliotek}}\",\"libraries.modal.empty.heading\":\"Inga bibliotek\",\"libraries.modal.empty.description\":\"Din organisation har inte delat några bibliotek\",\"libraries.modal.error.limitExceeded\":\"Det går inte att lägga till bibliotek\",\"libraries.modal.error.limitExceeded.detail\":\"Du kan lägga till upp till 100 bibliotek i ett projekt. Ta bort några för att lägga till fler.\",\"libraries.brokenResources\":\"Vissa bibliotek visas inte eftersom du inte har åtkomst. Kontakta andra medlemmar om du vill ha mer information.\",\"copy.start\":\"Kopierar {count, plural, =1 {# objekt} other {# objekt}}\",\"copy.failure\":\"Det går inte att kopiera {count, plural, =1 {# objekt} other {# objekt}}\",\"copy.failure.partial\":\"Det går inte att kopiera vissa objekt\",\"copy.success\":\"{count, plural, =1 {# objekt} other {# objekt}} har kopierats\",\"copy.conflictSuffix\":\"-kopia\",\"move.start\":\"Flyttar {count, plural, =1 {# objekt} other {# objekt}}\",\"move.failure\":\"Det går inte att flytta {count, plural, =1 {# objekt} other {# objekt}}\",\"move.failure.partial\":\"Det går inte att flytta vissa objekt\",\"move.success\":\"{count, plural, =1 {# objekt} other {# objekt}} har tagits bort\",\"upload.start\":\"{count, plural, =1 {# objekt} other {# objekt}} läggs upp\",\"upload.failure\":\"Det går inte att lägga upp {count, plural, =1 {# objekt} other {# objekt}}\",\"upload.failure.partial\":\"Det går lägga upp vissa objekt\",\"upload.failure.snapshot\":\"Objektet stöds inte\",\"upload.success\":\"{count, plural, =1 {# objekt} other {# objekt}} har lagts upp\",\"download.start\":\"Hämtar {count, plural, =1 {# objekt} other {# objekt}}\",\"download.failure\":\"Det går inte att hämta {count, plural, =1 {# objekt} other {# objekt}}\",\"download.failure.partial\":\"Det går inte att hämta vissa objekt\",\"download.success\":\"{count, plural, =1 {# objekt} other {# objekt}} har hämtats\",\"delete.failure\":\"Det går inte att ta bort {count, plural, =1 {# objekt} other {# objekt}}\",\"delete.failure.partial\":\"Det går inte att ta bort vissa objekt\",\"delete.success\":\"{count, plural, =1 {# objekt} other {# objekt}} har tagits bort\",\"jobs.failure\":\"{count, plural, =1 {# objekt} other {# objekt}} misslyckades\",\"jobs.inProgress\":\"Arbetar ...\",\"jobs.success\":\"{count, plural, =1 {# objekt} other {# objekt}} har slutförts\",\"restore.failure\":\"Det går inte att återställa {count, plural, =1 {# objekt} other {# objekt}}\",\"restore.failure.partial\":\"Det går inte att återställa vissa objekt\",\"restore.success\":\"{count, plural, =1 {# objekt} other {# objekt}} har återställts\",\"rename.start\":\"Byter namn\",\"rename.success\":\"{count, plural, =1 {# objekt} other {# objekt}} har bytt namn\",\"rename.failure\":\"Serverfel, det gick inte att byta namn på objektet\",\"rename.failure.conflict\":\"Du har redan ett objekt här med detta namn\",\"rename.offline.heading\":\"Kan inte byta namn\",\"rename.offline\":\"Du är offline och kan inte byta namn på objektet. Gå tillbaka online för att vidta denna åtgärd.\",\"bookmark.follow.error\":\"Det går inte att favoritmärka det här projektet\",\"bookmark.unfollow.error\":\"Det går inte ta bort favoritmärkningen från projektet\",\"bookmark.follow.success\":\"Du har favoritmärkt {projectName}\",\"bookmark.unfollow.success\":\"Du har tagit bort favoritmärkningen från {projectName}\",\"bookmark.bulk.follow.success\":\"{count, plural, =1 {# objekt} other {# objekt}} har favoritmärkts\",\"bookmark.bulk.follow.partial\":\"Det går inte att favoritmärka en del objekt\",\"bookmark.bulk.follow.error\":\"Det går inte att favoritmärka {count, plural, =1 {# objekt} other {# objekt}}\",\"bookmark.bulk.unfollow.success\":\"Favoritmärkningen har tagits bort från {count, plural, =1 {# objekt} other {# objekt}}\",\"bookmark.bulk.unfollow.partial\":\"Det går inte att ta bort favoritmärkningen från en del objekt\",\"bookmark.bulk.unfollow.error\":\"Det går inte att ta bort favoritmärkningen från {count, plural, =1 {# objekt} other {# objekt}}\",\"copyLink.success\":\"Länk kopierad till Urklipp\",\"copyLink.failure\":\"Det går inte att kopiera länken\",\"starterUser.project1upNavigation\":\"Din startplan omfattar inte att öppna dokument i projekt\",\"starterUser.project1upNavigationCDPSave\":\"Din startplan omfattar inte att spara dokument i projekt\",\"invite.failure\":\"Det gick inte att skicka inbjudningar, försök igen\",\"accessibility.backButton\":\"Gå tillbaka\",\"button.role\":\"Knapp\",\"button.actions\":\"Åtgärder\",\"button.add\":\"Lägg till\",\"button.addFiles\":\"Lägg till filer\",\"button.addLibrary\":\"Lägg till bibliotek\",\"button.createDocument\":\"Ny {appName}-fil\",\"button.library\":\"Bibliotek\",\"button.back\":\"Bakåt\",\"button.browse\":\"Bläddra bland alla\",\"button.cancel\":\"Avbryt\",\"button.okay\":\"OK\",\"button.canvas\":\"Arbetsyta\",\"button.addCanvas\":\"Ny arbetsyta\",\"button.changeDefaultApp\":\"Ändra standardprogram ...\",\"button.close\":\"Stäng\",\"button.continue\":\"Fortsätt\",\"button.copy\":\"Kopiera till …\",\"button.copyLink\":\"Kopiera länk\",\"button.create\":\"Skapa\",\"button.createNewFolder\":\"Skapa en ny mapp\",\"button.newFile\":\"Ny fil\",\"button.newFolder\":\"Ny mapp\",\"button.delete\":\"Ta bort\",\"button.deleteResource\":\"Ta bort\",\"button.done\":\"Klart\",\"button.download\":\"Hämta\",\"button.favorite\":\"Favoritmärk\",\"button.follow\":\"Följ\",\"button.invite\":\"Bjud in\",\"button.inviteLabel\":\"Bjud in personer\",\"button.leave\":\"Lämna\",\"button.leaveProject\":\"Lämna arbetsytan\",\"button.move\":\"Flytta till...\",\"button.next\":\"Nästa\",\"button.ok\":\"OK\",\"button.open\":\"Öppna\",\"button.openWith\":\"Öppna med\",\"button.open.appName\":\"{appName} {isDefault, select, true {(standard)} other {}}\",\"button.redo\":\"Försök igen\",\"button.reload\":\"Läs in igen\",\"button.rename\":\"Byt namn\",\"button.restore\":\"Återställ\",\"button.retry\":\"Försök igen\",\"button.save\":\"Spara\",\"button.select\":\"Välj\",\"button.share\":\"Dela\",\"button.skipTour\":\"Hoppa över rundtur\",\"button.undo\":\"Ångra\",\"button.unfavorite\":\"Ta bort favoritmärkning\",\"button.unfollow\":\"Sluta följa\",\"button.update\":\"Uppdatera\",\"button.upgrade\":\"Uppgradera\",\"button.view\":\"Visa alla\",\"button.viewProject\":\"Visa projektet\",\"button.viewTarget\":\"Visa\",\"button.createWeblink\":\"Lägg till webblänk\",\"button.leaveTeam\":\"Lämna arbetsytan\",\"button.renameTeam\":\"Byt namn på arbetsytan\",\"button.editTeam\":\"Redigera arbetsytans info\",\"button.archiveTeam\":\"Radera arbetsytan\",\"button.upload\":\"Överför filer\",\"button.goToDeleted\":\"Visa i raderade\",\"button.viewEverything\":\"Visa allt\",\"button.viewInWeb\":\"Visa på webben\",\"abbreviations.fileSize.byte\":\"B\",\"abbreviations.fileSize.kilobyte\":\"kB\",\"abbreviations.fileSize.megabyte\":\"MB\",\"abbreviations.fileSize.gigabyte\":\"GB\",\"abbreviations.fileSize.terabyte\":\"TB\",\"statusIcon.conflicted\":\"Synkningskonflikt\",\"statusIcon.onlineOnly\":\"Endast online\",\"statusIcon.availableOffline\":\"Tillgängligt offline\",\"statusIcon.syncing\":\"Synkar …\",\"statusIcon.waitingToSync\":\"Väntar på att synka\",\"statusMessage.offline.description\":\"Återanslut för att få åtkomst till alla dina arbetsytor och projekt. Gå till Hem om du vill se lokala filer från dina projekt.\",\"statusMessage.offline.heading\":\"Du är frånkopplad\",\"statusMessage.offline.toast\":\"Du är bortkopplad, så vissa funktioner och filer kanske inte är tillgängliga.\",\"toggle.listView\":\"Listvy\",\"toggle.gridView\":\"Miniatyrbildsvy\",\"color.fuchsia\":\"Fuchsia\",\"color.indigo\":\"Indigo\",\"color.celery\":\"Selleri\",\"color.magenta\":\"Magenta\",\"color.yellow\":\"Gul\",\"color.seafoam\":\"Havsgrönt\",\"color.chartreuse\":\"Chartreuse\",\"color.purple\":\"Lila\",\"color.blue\":\"Blå\",\"color.red\":\"Röd\",\"color.orange\":\"Orange\",\"color.green\":\"Grön\",\"color.label\":\"Projektfärg\",\"tooltip.offline.general\":\"Anslut till nätet för att vidta denna åtgärd\",\"tooltip.moreFaces\":\"+ {number} till\",\"action.leave.space.success\":\"Du har lämnat {count, plural, =1 {# projekt} other {# projekt}}\",\"action.leave.prototype.success\":\"Åtkomsten till {count, plural, =1 {# prototyp} other {# prototyper}} har tagits bort\",\"action.leave.file.success\":\"Åtkomsten till {count, plural, =1 {# fil} other {# filer}} har tagits bort\",\"action.leave.canvas.success\":\"Åtkomsten till {count, plural, =1 {# arbetsyta} other {# arbetsytor}} har tagits bort\",\"action.leave.team.success\":\"Du lämnade en arbetsyta\",\"action.leave.space.error\":\"Det går inte att lämna det här projektet\",\"action.leave.prototype.error\":\"Det går inte att lämna den här prototypen\",\"action.leave.file.error\":\"Det går inte att lämna denna fil\",\"action.leave.team.error\":\"Det går inte att lämna den här arbetsytan\",\"action.leave.canvas.error\":\"Det går inte att lämna arbetsytan\",\"action.leave.space.partial.error\":\"Det går inte att lämna alla projekt\",\"action.leave.prototype.partial.error\":\"Det går inte att lämna alla prototyper\",\"action.leave.file.partial.error\":\"Det går inte att lämna alla filer\",\"action.leave.canvas.partial.error\":\"Det går inte att lämna alla arbetsytor\",\"action.leave.error.onlyContributor\":\"Du är den enda medlemmen. Lägg till ytterligare en innan du går härifrån.\",\"action.leave.error.addressBookGroupMember\":\"Lämna gruppen och försök igen.\",\"action.leave.error.admin\":\"Du kan inte lämna det eftersom du är administratör.\",\"action.leave.error.generic\":\"Du kan inte lämna eftersom ett fel har uppstått.\",\"action.reportAbuse\":\"Rapportera missbruk\",\"action.reportAbuse.required\":\"Obligatoriskt\",\"action.reportAbuse.titleText\":\"Om du tycker att detta Creative Cloud-innehåll bryter mot Adobes användningsvillkor kan du rapportera det genom att fylla i det här korta formuläret.\",\"action.reportAbuse.emailInput\":\"Din e-postadress\",\"action.reportAbuse.nameInput\":\"Ditt namn\",\"action.reportAbuse.radioButtonText\":\"Varför rapporterar du detta innehåll?\",\"action.reportAbuse.defamation\":\"Förtal\",\"action.reportAbuse.hate\":\"Rasistiskt/hatfullt innehåll\",\"action.reportAbuse.trademark\":\"Varumärkesintrång\",\"action.reportAbuse.pornography\":\"Sexuellt explicit innehåll\",\"action.reportAbuse.vulgar\":\"Anstötligt innehåll\",\"action.reportAbuse.other\":\"Annat\",\"action.reportAbuse.inappropriate\":\"Olämpligt\",\"action.reportAbuse.age\":\"Åldersfel\",\"action.reportAbuse.gender\":\"Genusfel\",\"action.reportAbuse.textAreaTitle\":\"Lägg till en beskrivning av ditt ärende.\",\"action.reportAbuse.describeConcern\":\"Beskriv ditt problem\",\"action.reportAbuse.success\":\"Missbruk har rapporterats\",\"action.reportAbuse.failure\":\"Det gick inte att rapportera missbruk\",\"action.menu.label\":\"Menyn Åtgärd\",\"action.label\":\"Funktionsmakro\",\"dialog.genericError.description\":\"Ett fel uppstod.\",\"dialog.genericError.title\":\"Oväntat fel\",\"dialog.leave.space.title\":\"Lämna {count, plural, =1 {{name}} other {projekten}}\",\"dialog.leave.prototype.title\":\"Lämna {count, plural, =1 {denna prototyp} other {prototyperna}}\",\"dialog.leave.file.title\":\"Lämna {count, plural, =1 {denna fil} other {filerna}}\",\"dialog.leave.canvas.title\":\"Lämna {count, plural, =1 {denna arbetsyta} other {arbetsytorna}}\",\"dialog.leave.team.title\":\"Säger du hej då?\",\"dialog.leave.team.detail\":\"Du kan inte ångra detta om du tar bort dig själv. Kontakta en administratör om du vill läggas tillbaka i denna arbetsyta.\",\"dialog.leave.space.detail\":\"Du förlorar åtkomsten till objekt som du inte äger och som finns i det här projektet. Du kan inte ångra att du lämnar {projectName}.\",\"dialog.leave.prototype.detail\":\"Du måste få ytterligare en inbjudan för att få åtkomst igen.\",\"dialog.leave.file.detail\":\"Du måste få ytterligare en inbjudan för att få åtkomst igen.\",\"dialog.leave.canvas.detail\":\"Du måste få ytterligare en inbjudan för att få åtkomst igen.\",\"dialog.leave.detail\":\"{type, select, space {Du förlorar åtkomsten till objekt som du inte äger i {count, plural, =1 {detta projekt} other {dessa projekt}}. Du kan inte ångra att du lämnar {count, plural, =1 {{name}} other {dessa projekt}}.} other {Du kommer inte att kunna komma åt {count, plural, =1 {det} other {dem}} igen utan en ny inbjudan{count, plural, =1 {.} other {:}}}}\",\"dialog.deleteFailed.title\":\"Det går inte att ta bort alla objekt\",\"dialog.deleteWarning.description\":\"{type, select, spaces {Den här åtgärden tar bort innehållet för alla medlemmar i projekten:} other {Den här åtgärden tar bort följande för alla medlemmar i projektet:}}\",\"dialog.deleteWarning.title\":\"{type, select, space {Radera {count} {count, plural, =1 {projekt} other {projekt}}} other {Radera {count} {count, plural, =1 {objekt} other {objekt}}}}\",\"dialog.deleteFailed.description.unauthorized\":\"Det går inte att radera eftersom du har tagits bort från projektet:\",\"dialog.deleteFailed.description.alreadyDeleted\":\"Det går inte att ta bort eftersom någon annan redan har tagit bort objektet:\",\"dialog.deleteFailed.description.unknown\":\"Det går inte att ta bort eftersom ett fel har uppstått:\",\"dialog.cantCopyAllItems\":\"Det går inte att kopiera alla objekt\",\"dialog.cantCopyBecauseSomethingWentWrong\":\"Det går inte att kopiera eftersom ett fel har uppstått:\",\"dialog.cantCopyBecauseYouWereSignedOut\":\"Det går inte att kopiera eftersom du var utloggad:\",\"dialog.cantCopyBecauseYouWereRemoved\":\"Det går inte att kopiera eftersom du har tagits bort från det här projektet\",\"dialog.cantCopyBecauseItemWasDeleted\":\"Det går inte att kopiera eftersom någon annan har tagit bort objektet:\",\"dialog.cantCopyBecauseItemExists\":\"Det går inte att kopiera eftersom det redan finns en kopia på den platsen:\",\"dialog.cantMoveAllItems\":\"Det går inte att flytta alla objekt\",\"dialog.cantMoveBecauseSomethingWentWrong\":\"Det går inte att flytta eftersom ett fel har uppstått:\",\"dialog.cantMoveBecauseYouWereSignedOut\":\"Det går inte att flytta eftersom du var utloggad:\",\"dialog.cantMoveBecauseYouWereRemoved\":\"Det går inte att flytta eftersom du har tagits bort från det här projektet:\",\"dialog.cantMoveBecauseItemWasDeleted\":\"Det går inte att flytta eftersom någon annan har tagit bort objektet:\",\"dialog.cantMoveBecauseItemExists\":\"Det går inte att flytta eftersom det redan finns en kopia på platsen du försökte flytta till:\",\"dialog.createFolder.error\":\"Serverfel, det gick inte att spara mappen\",\"dialog.createFolder.nameConflict\":\"Du har redan en mapp med detta namn.\",\"dialog.createFolder.placeholder\":\"Mappnamn\",\"dialog.createFolder.title\":\"Skapa mapp\",\"dialog.createFolder.success\":\"Mappen har skapats\",\"dialog.createWeblink.error\":\"URL:en stöds inte\",\"dialog.createWeblink.tooManyRequests\":\"Ett oväntat nätverksfel uppstod. Försök igen.\",\"dialog.createWeblink.success\":\"1 objekt tillagt\",\"dialog.createWeblink.nameConflict\":\"Den här titeln finns redan\",\"dialog.createWeblink.name.placeholder\":\"Ange ett namn på den här länken\",\"dialog.createWeblink.link.placeholder\":\"https://\",\"dialog.createWeblink.name\":\"Egen titel\",\"dialog.createWeblink.link\":\"Länk\",\"dialog.createWeblink.title\":\"Skapa en webblänk\",\"app.type.webLink\":\"WEBBLÄNK\",\"dialog.createCanvas.error\":\"Det går inte att skapa en arbetsyta\",\"dialog.move.title\":\"Flytta till projektet {projectName}\",\"dialog.move.detail\":\"Om du flyttar objektet ändras åtkomsten till det.\",\"moveToTeam.confirm.title\":\"Flytta till arbetsytan {name}\",\"moveToTeam.confirm.message\":\"Om du flyttar dina projekt hit ändras åtkomsten till dem. Dina projekt blir tillgängliga för alla som har åtkomst till din arbetsyta.\",\"moveToTeam.disabled.differentOrg.tooltip.message\":\"Du kan inte flytta projekt till en arbetsyta i en annan organisation.\",\"moveToSpace.disabled.differentOrg.tooltip.message\":\"Du kan inte flytta objekt till ett projekt i en annan organisation.\",\"moveToTeam.success\":\"Du flyttade {count, plural, =1 {# projekt} other {# projekt}} till arbetsytan {name}\",\"confirmationDialog.dontShowAgain\":\"Visa inte det här meddelandet igen\",\"dialog.open.title\":\"Öppna på webben\",\"dialog.open.detail\":\"Du kan inte öppna denna fil i {appName}, men du kommer åt den i en webbläsare.\",\"dialog.renameTeam.title\":\"Byt namn på arbetsytan\",\"dialog.renameTeam.placeholder\":\"Ange ett namn på den här arbetsytan\",\"dialog.renameTeam.error\":\"Ett fel uppstod.\",\"dialog.renameTeam.nameConflict\":\"Namnet finns redan\",\"dialog.archiveTeam.title\":\"Vill du radera denna arbetsyta?\",\"dialog.archiveTeam.detail\":\"Du kan inte ångra detta om du tar bort dig själv. Kontakta en administratör om du vill gå med i arbetsytan igen.\",\"dialog.saveToCloud.title\":\"Fil(er) som sparats i Creative Cloud\",\"dialog.saveToCloud.detail\":\"Ditt molndokument erbjuder nu versionshistorik, inbjudningar om samredigering, direkt åtkomst på andra enheter och mycket mer. Du hittar det här och i dina Creative Cloud-program.\",\"input.invalidCharInput\":\"Namnet får inte innehålla tecknen \\\\\\\\ / * ? \\\" | :\",\"input.invalidEmptyInput\":\"{names, select, true {Namn} other {Titlar}} får inte vara tomma\",\"input.nameTooLong\":\"{names, select, true {Namn} other {Titlar}} får inte innehålla fler än {maxLength} tecken\",\"input.nameEndsWithDot\":\"{names, select, true {Namn} other {Titlar}} får inte avslutas med en punkt\",\"input.weblink.nameRestricted\":\"Webblänkar får inte ha följande titlar: ”con”, ”prn”, ”aux”, ”nul”, ”com#”, ”lpt#”\",\"input.nameRestricted\":\"Tillgångar får inte ha något av dessa namn: con/prn/aux/nul/com#/lpt#\",\"input.weblink.invalidCharInput\":\"Titlar får inte bara bestå av mellanslag eller innehålla tecknen \\\\\\\\ / * ? \\\" | : < > \",\"input.name.invalidCharInput\":\"Namn får inte bara bestå av mellanslag eller innehålla tecknen \\\\\\\\ / * ? \\\" | : < > \",\"cdpFooter.orphanedArtifactsWarning\":\"Publicerade länkar som är kopplade till objekt du flyttar blir kvar i det ursprungliga projektet\",\"cdpFooter.libraryPrivacyWarning\":\"Om du har återdelningsbehörighet till ett bibliotek som du lägger till kan medlemmar i projektet se det\",\"toast.beforeOp.error.documentIsOpen\":\"Stäng {count, plural, =1 {dokumentet} other {dokumenten}} för att utföra den här åtgärden.\",\"app.type.designSpecs\":\"DESIGNSPEC\",\"app.type.prototype\":\"PROTOTYP\",\"app.type.publishedLink\":\"PUBLICERAD LÄNK\",\"popover.header\":\"Samarbeta om ett projekt med andra och dela det du gör för att få feedback.\",\"popover.linkout\":\"Läs mer\",\"team.libraries.filter.all\":\"Alla\",\"team.libraries.filter.addedToYourLibraries\":\"Tillagt i Dina bibliotek\",\"team.libraries.filter.notAdded\":\"Inte tillagt\",\"team.spaces.filter.all\":\"Allt\",\"team.spaces.filter.favorited\":\"Favoritmärkt\",\"team.filter.empty.heading\":\"Inga projekt matchar det valda filtret\",\"team.filter.empty.description1\":\"Vi kunde inte hitta några resultat för \",\"team.filter.empty.description2\":\" i listan. Kontrollera stavningen eller prova att använda andra sökord.\",\"team.filter.no.match.description\":\"Vi kunde inte hitta några resultat i listan. Kontrollera stavningen eller prova att använda andra filter.\",\"team.filter.filterText\":\"{filter}\",\"team.header.other.teams\":\"Andra arbetsytor\",\"space.empty.heading\":\"Allt på ett ställe, alla är uppdaterade\",\"space.empty.description\":\"Fyll det här projektet med arbetsfiler och tillhörande material. Bjud in medarbetare att delta och lägg till det de arbetar med också.\",\"space.empty.canvasHeading\":\"CREATIVE CLOUD CANVAS\",\"space.empty.actionsHeading\":\"LÄGG TILL INNEHÅLL I DITT PROJEKT\",\"space.empty.createCanvas\":\"Ny arbetsyta\",\"space.empty.upload\":\"Lägg till filer\",\"space.empty.createFolder\":\"Ny mapp\",\"space.empty.createWeblink\":\"Webblänkar\",\"space.empty.addResource\":\"Bibliotek\",\"folder.empty.heading\":\"Den här mappen är tom.\",\"folder.empty.description\":\"Fyll den genom att lägga till filer.\",\"folder.discard.heading\":\"Mappen har tagits bort.\",\"folder.discard.description\":\"Kontakta din administratör om du tror att det skett av misstag eller bläddra i annat innehåll.\",\"folder.error.description\":\"Det gick inte att läsa in innehåll från den här mallen.\",\"space.empty.section.createACanvas\":\"Skapa en arbetsyta\",\"tooltip.opensInBrowser\":\"Öppnas i webbläsare\",\"space.empty.workingFiles\":\"Lägg till mer i det här projektet\",\"space.empty.canvasPopoverTitle\":\"Testa Creative Cloud Canvas (beta)\",\"space.empty.canvasPopoverContent\":\"Använd arbetsytor för att sköta layouten för, visualisera och granska kreativt arbete.\",\"space.error.heading\":\"Det går inte att läsa in projektet\",\"space.error.description\":\"Det gick inte att läsa in innehåll från det här projektet.\",\"createTeamWizard.createTeam.sidebarHeading\":\"Skapa en arbetsyta\",\"createTeamWizard.createTeam.sidebarCopy\":\"Skapa en arbetsyta så att alla kan hålla sig uppdaterade och organiserade.\",\"createTeamWizard.createTeam.sidebarCopy.adminconsole\":\"Skapa en plats där teamet kan samarbeta och dela filer.\",\"createTeamWizard.createTeam.sidebarLink\":\"Lär dig mer\",\"createTeamWizard.createTeam.contentHeading\":\"Ny arbetsyta\",\"createTeamWizard.createTeam.loading\":\"Skapa arbetsytan {name}\",\"createTeamWizard.inviteMembers.sidebarHeading\":\"Bjud in medlemmar till arbetsytan {name}\",\"createTeamWizard.inviteMembers.sidebarCopy\":\"Börja skriva ett namn eller en e-postadress för att bjuda in medlemmar nu eller hoppa över det här steget och bjud in dem senare.\",\"createTeamWizard.inviteMembers.loading\":\"Bjuda in medlemmar till arbetsytan {name}\",\"createTeamWizard.inviteMembers.contentHeading\":\"Bjud in medlemmar\",\"createTeamWizard.inviteMembers.successToast\":\"Medlemmar har lagts till i den nya arbetsytan\",\"createTeamWizard.progress\":\"Steg {current} av {total}\",\"createTeamWizard.skipStep\":\"Hoppa över\",\"teamDialog.createTeam.label\":\"Skapa en arbetsyta\",\"teamDialog.createTeam.infoBox.description\":\"Det går bara att bli inbjuden till arbetsytan du skapar, och alla som läggs till har redigeringsbehörighet som standard.\",\"teamDialog.editTeam.label\":\"Redigera arbetsyta\",\"teamDialog.nameSection.placeholder\":\"Ge din nya arbetsyta ett namn\",\"teamDialog.nameSection.label\":\"Namn på arbetsyta\",\"teamDialog.permissionsSection.label\":\"Vilka kan redigera den här arbetsytan\",\"teamDialog.permissionsSection.option.onlyInvited\":\"Bara inbjudna\",\"teamDialog.descriptionSection.label\":\"Beskrivning av arbetsyta (valfritt)\",\"teamDialog.descriptionSection.placeholder\":\"Lägg till några ord om din arbetsyta\",\"teamsSidebar.noTeams\":\"Inga arbetsytor\",\"teamsSidebar.newTeamButton\":\"Skapa en arbetsyta\",\"teamsSidebar.adminTour.title\":\"Nyhet! Skapa arbetsytor\",\"teamsSidebar.adminTour.content\":\"Nu kan administratörer skapa arbetsytor i Creative Cloud på webben, vilket gör det lättare att hantera gemensamt arbete.\",\"teamsSidebarTeam.newSpaceButton\":\"Nytt projekt\",\"teamsSidebarTeam.header.newBadge\":\"NYTT\",\"teamsSidebarTeam.header.otherTeams\":\"Från andra arbetsytor\",\"teamsSidebarTeam.header.teams\":\"ARBETSYTOR\",\"teamsSidebarTeam.header.previewLabel\":\"(Förhandsgranska)\",\"teamsSidebarTeam.header.previewCopy\":\"Arbetsytor och projekt är tillgängliga i en privat betaversion.\",\"teamsSidebarTeam.header.previewLearnMoreText\":\"Läs mer\",\"teamsSidebarTeam.message.loading\":\"Läser in…\",\"teamsSidebarTeam.message.noSpaces\":\"Du har inga arbetsytor eller projekt.\",\"teamsSidebarTeam.message.offline\":\"Du är frånkopplad. Anslut igen för att visa dina arbetsytor och projekt.\",\"teamsSidebarTeam.message.error\":\"Det gick inte att läsa in dina arbetsytor och projekt.\",\"teams1up.error.description\":\"Det gick inte att läsa in dina projekt.\",\"teams1up.error.heading\":\"Det gick inte att läsa in projekt\",\"otherTeams.emptyMessage.header\":\"Det går inte att visa arbetsytsidan\",\"otherTeams.emptyMessage.description1\":\"Du togs bort eller lämnade det senaste projektet från avsnittet\",\"otherTeams.emptyMessage.description2\":\". Kontakta din administratör om du menar att detta är ett misstag.\",\"spaceTour.step0.title\":\"Dina projekt finns här\",\"spaceTour.step0.content\":\"Projekt hjälper team att samarbeta och samla in, ordna och dela filer och resurser.\",\"spaceTour.step1.title\":\"Lägg till allt du behöver för ett projekt\",\"spaceTour.step1.content\":\"Samla arbetsfiler, referensbilder, resurser och annat under samma tak.\",\"spaceTour.step2.title\":\"Ange behörighet\",\"spaceTour.step2.content\":\"Ge rätt åtkomst till medarbetare när du bjuder in dem så sparar du tid och allt blir enklare. Skicka paket som bara kan visas till intressenter som ska granska och ge feedback.\",\"error.cantCreateSpace\":\"Lagringen i arbetsytan är full\",\"error.exceedQuota.create.detail.description1\":\"Du kan inte skapa något nytt just nu. Välj \",\"error.exceedQuota.description2\":\" för att frigöra lagringsutrymme.\",\"error.exceedQuota.add.detail.description1\":\"Du kan inte lägga till något nytt just nu. Välj \",\"error.move.generic\":\"Det går inte att flytta eftersom ett fel har uppstått\",\"error.move.signedOut\":\"Det går inte att flytta eftersom du var utloggad\",\"error.move.permissionRevoked\":\"Det går inte att flytta eftersom du har tagits bort från det här projektet\",\"error.move.deleted\":\"Det går inte att flytta eftersom någon annan har tagit bort objektet\",\"error.move.duplicate\":\"Det går inte att flytta eftersom det redan finns en kopia på platsen du försökte flytta till\",\"error.copy.generic\":\"Det går inte att kopiera eftersom ett fel har uppstått\",\"error.copy.signedOut\":\"Det går inte att kopiera eftersom du var utloggad\",\"error.copy.permissionRevoked\":\"Det går inte att kopiera eftersom du har tagits bort från det här projektet\",\"error.copy.deleted\":\"Det går inte att kopiera eftersom någon annan har tagit bort objektet\",\"error.copy.duplicate\":\"Det går inte att kopiera eftersom det redan finns en kopia på den platsen\",\"checkbox.select\":\"Välj\",\"listItem.fileSize\":\"Filstorlek\",\"facepile.additionalMembers\":\"Ytterligare {count} medlemmar\",\"facepile.memberName\":\"{name}, medlem\",\"coachmark.information\":\"information\",\"toolbar.tools\":\"verktyg\",\"griditem.error.message\":\"Det går inte att hämta\",\"griditem.error.button\":\"Försök igen\",\"ats.move.extendedNotification\":\"Du får ett meddelande när flytten är genomförd.\",\"file.deleted.error.heading\":\"Det går inte att {operation} filen\",\"file.deleted.error.description\":\"Du kan inte {operation} denna fil eftersom den har raderats. Återställ den och försök igen eller välj en annan plats.\",\"file.deleted.rename.error.description\":\"Du kan inte byta namn på den här filen eftersom den har raderats. Välj Gå till borttaget om du vill återställa filen.\"}");

/***/ }),

/***/ "yKwB":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = {
  mock: {
    INVITATIONS_SERVICE_ENDPOINT: '/api/v3'
  },
  prod: {
    INVITATIONS_SERVICE_ENDPOINT: 'https://invitations.adobe.io/api/v3'
  },
  stage: {
    INVITATIONS_SERVICE_ENDPOINT: 'https://invitations-stage.adobe.io/api/v3'
  }
};
module.exports = exports['default'];

/***/ }),

/***/ "yLpj":
/***/ (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;

/***/ }),

/***/ "yLvx":
/***/ (function(module, exports) {

/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
module.exports = {
  'ccd.infoPanel.detail.created': 'Skapad',
  'ccd.infoPanel.detail.modified': 'Ändrad',
  'ccd.infoPanel.detail.size': 'Storlek',
  'ccd.infoPanel.detail.shared': 'Delat',
  'ccd.header.renameFolder': 'Ändra namn på mapp',
  'ccd.menu.addToFavourites': 'Lägg till i genvägar',
  'ccd.menu.removeFromFavourites': 'Ta bort genvägen',
  'ccd.menu.viewonweb': 'Visa på webben',
  'ccd.menu.share': 'Dela',
  'ccd.menu.openWith': 'Öppna i',
  'ccd.menu.changeDefaultApp': 'Ändra standardprogram ...',
  'ccd.menu.default': '(Standard)',
  'ccd.menu.export': 'Exportera som lokal kopia',
  'ccd.menu.download': 'Hämta',
  'ccd.menu.createNew': 'Skapa nytt ...',
  'ccd.menu.launch': 'STARTA',
  'actionMenuItem.permdelete': 'Ta bort permanent',
  'tab.Cloud Documents': 'Dina filer',
  'tab.Home': 'Hem',
  'header.CloudDocuments': 'Dina filer',
  'header.SharedWithYou': 'Delas med dig',
  'header.Deleted': 'Borttaget',
  'header.Deleted.AssetsWebLink': 'Gå till Assets på webben om du vill visa alla borttagna objekt',
  'header.SelectedDocuments': '{numSelected, plural, =1 {#} other {#}} har valts',
  'header.size': 'Storlek',
  'header.title': 'Namn',
  'header.modifiedDate': 'Datum för ändring',
  'header.createDate': 'Datum för skapande',
  'header.shareDate': 'Datum för delning',
  'header.SortBy': 'Sortera efter',
  'header.infoPopover.body': 'Bara kompatibla filer visas. Besök Creative Cloud på webben om du vill se alla filer.',
  'header.infoPopover.link': 'Gå till Creative Cloud',
  'header.dragImport': 'Ladda upp till {displayName}',
  'collaborators.onlyYou': 'Bara du',
  'collaborators.Owner': '{displayName} (ägare)',
  'collaborators.More': '{numItems, plural, other {+# till}}',
  'empty.offline.root.title': 'Du är frånkopplad',
  'empty.offline.root.subtitle': 'Objekt som var synliga när du var online visas här när du ansluter igen.',
  'empty.offline.folder.title': 'Kunde inte läsa in mappen',
  'empty.offline.folder.subtitle': 'Ingen internetanslutning. Anslut igen för att se allt.',
  'empty.online.cdp.saveas.root.title': 'Det finns inga molndokument att visa',
  'empty.online.cdp.saveas.root.subtitle': 'Att använda molndokument innebär att dina arbeten alltid är uppdaterade på alla enheter var du än är. Det är bara att ansluta till internet.',
  'empty.online.cdp.saveas.root.subtitle.sprk': 'Alla dina molndokument från XD finns här. Arbeta var som helst, även offline. Ändringar i molndokument sparas automatiskt och kan ses i dokumenthistoriken.',
  'empty.online.cdp.saveas.root.subtitle.phxs': 'Alla dina molndokument från Photoshop på din Mac, PC och iPad finns här.',
  'empty.online.cdp.saveas.root.subtitle.ilst': 'Alla dina molndokument från Illustrator på Mac och Windows finns här.',
  'empty.online.cdp.saveas.root.subtitle.idsn': 'Alla dina molndokument från InDesign på Mac och Windows finns här.',
  'empty.online.cdp.saveas.folder.title': 'Det finns inga molndokument att visa',
  'empty.online.cdp.saveas.folder.subtitle': 'När du lägger ett kompatibelt molndokument i den här mappen visas det här.',
  'empty.online.cdp.open.root.title': 'Det finns inga molndokument att visa',
  'empty.online.cdp.open.root.subtitle': 'När du lägger ett kompatibelt molndokument i den här mappen visas det här.',
  'empty.online.cdp.open.root.subtitle.sprk': 'Alla dina molndokument från XD finns här. Arbeta var som helst, även offline. Ändringar i molndokument sparas automatiskt och kan ses i dokumenthistoriken.',
  'empty.online.cdp.open.root.subtitle.phxs': 'Alla dina molndokument från Photoshop på din Mac, PC och iPad finns här.',
  'empty.online.cdp.open.root.subtitle.ilst': 'Alla dina molndokument från Illustrator på Mac och Windows finns här.',
  'empty.online.cdp.open.root.subtitle.idsn': 'Alla dina molndokument från InDesign på Mac och Windows finns här.',
  'empty.online.cdp.open.folder.title': 'Det finns inga molndokument att visa',
  'empty.online.cdp.open.folder.subtitle': 'När du lägger ett kompatibelt molndokument i den här mappen visas det här.',
  'empty.online.cdo.root.title': 'Du har inga molndokument',
  'empty.online.cdo.root.subtitle': 'Samarbeta smidigt med andra och jobba överallt, även offline. Ändringarna sparas automatiskt och kan ses i filhistoriken.',
  'empty.online.cdo.root.subtitle.sprk': 'Samarbeta smidigt i realtid med andra och jobba överallt, även offline. Ändringarna sparas automatiskt och kan ses i filhistoriken.',
  'empty.online.cdo.root.subtitle.phxs': 'Samarbeta smidigt med andra och jobba överallt där du loggar in i Photoshop, även offline. Ändringarna sparas automatiskt och kan ses i filhistoriken.',
  'empty.online.cdo.root.subtitle.ilst': 'Samarbeta smidigt med andra och jobba överallt där du loggar in i Illustrator, även offline. Ändringarna sparas automatiskt och kan ses i filhistoriken.',
  'empty.online.cdo.root.subtitle.idsn': 'Kom åt dina dokument var du än loggar in i InDesign. Ändringar sparas automatiskt.',
  'empty.online.cdo.folder.title': 'Det finns inga molndokument att visa',
  'empty.online.cdo.folder.subtitle': 'När du lägger ett kompatibelt molndokument i den här mappen visas det här.',
  'empty.title.deleted': 'Du har inga borttagna filer',
  'empty.title.deleted_offline': 'Du är frånkopplad.',
  'empty.title.recent': 'Du har inga senaste filer',
  'empty.subtext.deleted_offline': 'Objekt som tagits bort när du var online visas här när du ansluter igen.',
  'empty.title.shared_with_you': 'Du har inga delade molndokument',
  'empty.subtext.shared_with_you': 'När någon delar molndokument med dig visas de här.',
  'empty.title.shared_with_you_offline': 'Du är frånkopplad.',
  'empty.subtext.shared_with_you_offline': 'Du kan visa och redigera delade dokument när du är ansluten igen.',
  'empty.title.error': 'Ett fel uppstod',
  'empty.subtext.error': 'Starta om programmet och försök igen.',
  'empty.subtext.error.web': 'Uppdatera webbläsaren och försök igen.',
  'empty.title.coresync.down': 'Det gick inte att läsa in',
  'empty.subtext.coresync.down': 'Molnet synkar inte. Kontrollera att Creative Cloud-datorprogrammet är uppdaterat eller prova att starta om programmet.',
  'empty.title.coresync.incompatible': 'Det går inte att läsa in molndokument',
  'empty.subtext.coresync.incompatible': 'Vi kan inte visa objekt för tillfället. Uppdatera din version av Creative Cloud-programmet och försök igen.',
  'empty.title.cloudStorageDisabled': 'Molndokument är inte tillgängliga',
  'empty.subtext.cloudStorageDisabled': 'Du kan bara använda {productName} för att arbeta med filer på din enhet. Kontakta din IT-admin för mer information.',
  'empty.title.logout': 'Logga in för att komma åt molndokument',
  'empty.learnMore.link': 'Mer information',
  'trueEmpty.online.cdo.folder.title': 'Det finns inget i den här mappen',
  'trueEmpty.online.cdo.folder.subtitle': 'Lägg till saker här för att fylla den.',
  'trueEmpty.online.cdp.saveas.folder.title': 'Inga molndokument ännu',
  'trueEmpty.online.cdp.saveas.folder.subtitle': 'Att använda molndokument innebär att dina arbeten alltid hålls uppdaterade på alla enheter och oavsett var du är. Det är bara att ansluta till internet.',
  'trueEmpty.online.cdp.open.folder.title': 'Inga molndokument ännu',
  'trueEmpty.online.cdp.open.folder.subtitle': 'Att använda molndokument innebär att dina arbeten alltid hålls uppdaterade på alla enheter och oavsett var du är. Det är bara att ansluta till internet.',
  'filter.prompt': 'Ange nyckelord',
  'filter.title': 'Filter',
  'empty.filter.title': 'Inga resultat för {filterString}',
  'empty.filter.subtitle': 'Kolla stavningen, testa ett bredare sökord eller filtrera på en annan plats.',
  'beta.title': 'Synkronisera ditt arbete mellan dina enheter',
  'beta.subtitle': 'Arbeta sömlöst i Photoshop på din iPad och skrivbordsdator med molndokument. Observera att funktionen är en betaversion, så den kanske inte alltid fungerar som förväntat. Den aktiveras och inaktiveras i Inställningar.',
  'beta.button': 'Aktivera i Inställningar',
  'beta.tag': 'BETA',
  'beta.feedback.link': 'Ge feedback på betaversionen',
  'button.add-folder': 'Skapa en ny mapp',
  'button.upload': 'Ladda upp...',
  'button.createnew': 'Skapa nytt',
  'button.reportAbuse': 'Rapportera missbruk',
  'button.open': 'Öppna',
  'button.select': 'Välj',
  'button.rename': 'Byt namn',
  'button.pin.header': 'Gör alltid tillgängliga offline',
  'button.pin': 'Gör alltid tillgängliga offline',
  'button.unpin.header': 'Gör endast tillgänglig online',
  'button.unpin': 'Gör endast tillgänglig online',
  'button.duplicate': 'Duplicera',
  'button.download': 'Hämta',
  'button.move': 'Flytta',
  'button.delete': 'Ta bort',
  'button.restore': 'Återställ',
  'button.permdelete': 'Ta bort permanent',
  'button.listview': 'Visa lista',
  'button.gridview': 'Visa stödraster',
  'button.sharesheetinvite': 'Bjud in att redigera',
  'button.sharesheetLink': 'Hämta länk',
  'button.shareSheetAction': 'Dela',
  'button.preview': 'Förhandsvisa',
  'button.schedule': 'Schemalägga',
  'action.duplicate.suffix': '(Duplicera)',
  'action.resolve_sync_error.suffix': 'kopia',
  'statusIcon.conflicted': 'Synkningskonflikt',
  'statusIcon.onlineOnly': 'Endast online',
  'statusIcon.availableOffline': 'Tillgängligt offline',
  'statusIcon.syncing': 'Synkar …',
  'statusIcon.waitingToSync': 'Väntar på att synka',
  'tooltip.error': 'Öppna dokumentet för att visa problemet med att spara',
  'toast.error.documentIsOpen': 'Stäng {count, plural, =1 {dokumentet} other {dokumenten}} för att utföra den här åtgärden.',
  'toast.error.exceedsQuota.personal': 'Det finns inget mer lagringsutrymme för ditt konto',
  'toast.error.exceedsQuota.enterprise': 'Slut på lagring. Kontakta din administratör för mer information.',
  'toast.operation.duplicate.error': '{count, plural, =1 {Objektet} other {{count} objekt}} kunde inte dupliceras.',
  'toast.operation.duplicate.success': '{count, plural, =1 {Objektet} other {{count} objekt}} har duplicerats.',
  'toast.operation.archive.error': '{count, plural, =1 {Objektet} other {{count} objekt}} kunde inte tas bort.',
  'toast.operation.archive.error.otherAppUncommittedChanges': 'Du kan inte radera filer som är öppna i andra program. Stäng dem och försök igen.',
  'toast.operation.archive.undo.error': '{count, plural, =1 {Objektet} other {{count} objekt}} kunde inte tas bort.',
  'toast.operation.archive.success': '{count, plural, =1 {Objektet} other {{count} objekt}} har tagits bort.',
  'toast.operation.archive.undo.success': 'Återställningen har ångrats.',
  'toast.operation.permdelete.error': '{count, plural, =1 {Objektet} other {{count} objekt}} kunde inte tas bort permanent.',
  'toast.operation.permdelete.success': '{count, plural, =1 {Objektet} other {{count} objekt}} har tagits bort permanent',
  'toast.operation.rename.error': 'Det gick inte att byta namn på objekt.',
  'toast.operation.rename.undo.error': 'Det gick inte att byta namn på objekt.',
  'toast.operation.rename.error.duplicateName': 'Du har redan ett objekt här med detta namn.',
  'toast.operation.rename.undo.error.duplicateName': 'Du har redan ett objekt här med detta namn.',
  'toast.operation.rename.success': 'Objekt har bytt namn.',
  'toast.operation.rename.undo.success': 'Namnbytet har ångrats.',
  'toast.operation.move.error': '{count, plural, =1 {Objektet} other {{count} objekt}} kunde inte flyttas.',
  'toast.operation.move.undo.error': '{count, plural, =1 {Objektet} other {{count} objekt}} kunde inte flyttas.',
  'toast.operation.move.error.duplicateFolderName': 'Du har redan en mapp med detta namn.',
  'toast.operation.move.undo.error.duplicateFolderName': 'Du har redan en mapp med detta namn.',
  'toast.operation.move.error.duplicateDocName': '{count, plural, =1 {Det finns redan ett dokument med det namnet i den mappen. Byt namn och försök igen.} other {Dokument kan inte flyttas eftersom det finns dokument med samma namn.}}',
  'toast.operation.move.undo.error.duplicateDocName': '{count, plural, =1 {Det finns redan ett dokument med det namnet i den mappen. Byt namn och försök igen.} other {Dokument kan inte flyttas eftersom det finns dokument med samma namn.}}',
  'toast.operation.move.success': '{count, plural, =1 {Objektet} other {{count} objekt}} har flyttats.',
  'toast.operation.move.undo.success': 'Flytten har ångrats.',
  'toast.operation.unarchive.error': '{count, plural, =1 {Objektet} other {{count} objekt}} kunde inte återställas.',
  'toast.operation.unarchive.undo.error': '{count, plural, =1 {Objektet} other {{count} objekt}} kunde inte återställas.',
  'toast.operation.unarchive.success': '{count, plural, =1 {Objektet} other {{count} objekt}} har återställts.',
  'toast.operation.unarchive.undo.success': 'Borttagningen har ångrats.',
  'toast.operation.create_new_folder.success': 'Mapp har skapats.',
  'toast.operation.create_new_folder.error': 'Det gick inte att skapa en ny mapp.',
  'toast.operation.create_new_folder.error.duplicateName': 'Du har redan en mapp med detta namn.',
  'toast.operation.user_pin.success': '{count, plural, =1 {Objektet är tillgängligt} other {{count} objekt är tillgängliga}} offline.',
  'toast.operation.user_pin.error': 'Det gick inte att göra {count, plural, =1 {objektet tillgängligt} other {{count} objekt tillgängliga}} offline.',
  'toast.operation.user_unpin.success': '{count, plural, =1 {Objektet är endast tillgängligt} other {{count} objekt är endast tillgängliga}} online.',
  'toast.operation.user_unpin.error': 'Det gick inte att göra {count, plural, =1 {elementet endast tillgängligt} other {{count} element endast tillgängliga}} online.',
  'toast.operation.resolve_sync_error.success': 'En kopia av {name} har skapats. Du kan jämföra dokumenten och stämma av eventuella skillnader.',
  'toast.ccd.scroll_to_item.fetching': 'Hämtar fil …',
  'toast.ccd.scroll_to_item.error': 'Det gick inte att hitta filen',
  'toast.info.disabled_rename_to_open_item': 'Äldre XD-dokument måste först öppnas innan det går att byta namn på dem.',
  'toast.action.disabled_rename_to_open_item': 'Öppna dokument',
  'toast.error.rename.invalidName': 'Namnet innehåller ogiltiga tecken.',
  'toast.error.rename.invalidChar': 'Namnet får inte innehålla följande tecken: {characters}',
  'toast.error.rename.invalidEnd': 'Namnet får inte sluta med "." eller blanksteg.',
  'toast.error.rename.charRestriction': 'Namn får innehålla högst 200 tecken.',
  'toast.error.rename.duplicateName': 'Du har redan ett molndokument med detta namn.',
  'toast.success.reportAbuse': 'Missbruk har rapporterats',
  'toast.error.reportAbuse': 'Det gick inte att rapportera missbruk',
  'toast.operation.undoLabel': 'Ångra',
  'dialog.permdelete.heading': 'Ta bort permanent',
  'dialog.permdelete.warning': 'Du kan inte ångra den här åtgärden. Detta förloras för alltid:',
  'dialog.permdelete.cancelButton': 'Avbryt',
  'dialog.permdelete.confirmButton': 'Ta bort permanent',
  'dialog.permdelete.countItems': '{count, plural, =1 {# objekt} other {# objekt}}',
  'dialog.nonemptyfolder.heading': 'Vill du verkligen ta bort {count, plural, =1 {mappen} other {mapparna}}?',
  'dialog.nonemptyfolder.warning': '{count, plural, =1 {Mappen är inte tom} other {Mapparna är inte tomma}} och kan innehålla filer som inte visas i {appName}. Du kan fortsätta borttagningen eller visa {count, plural, =1 {mappen} other {mapparna}} på webben för att se {count, plural, =1 {dess} other {deras}} innehåll. {viewOnWebLink}',
  'dialog.nonemptyfolder.cancelButton': 'Avbryt',
  'dialog.nonemptyfolder.confirmButton': 'Ta bort',
  'dialog.nonemptyfolder.viewOnWebButton': 'Visa på webben',
  'dialog.addfolder.heading': 'Skapa ny mapp',
  'dialog.addfolder.cancelButton': 'Avbryt',
  'dialog.addfolder.confirmButton': 'Spara',
  'dialog.addfolder.placeholder': 'Ny mapp',
  'dialog.addfolder.invalidChar': 'Namn får inte innehålla följande tecken: {characters}',
  'dialog.addfolder.invalidName': 'Mappen innehåller ogiltiga tecken.',
  'dialog.addfolder.invalidEnd': 'Namnet får inte sluta med "." eller blanksteg.',
  'dialog.addfolder.duplicateName': 'Du har redan en mapp med detta namn.',
  'dialog.addfolder.charRestriction': 'Namn får innehålla högst 200 tecken.',
  'dialog.moveFolder.heading': 'Flytta till...',
  'dialog.moveFolder.cancelButton': 'Avbryt',
  'dialog.moveFolder.moveButton': 'Flytta',
  'dialog.moveFolder.createNewFolderButton': 'Lägg till mapp',
  'dialog.reportAbuse.cancelButton': 'Avbryt',
  'dialog.reportAbuse.reportAbuseButton': 'Rapportera missbruk',
  'dialog.reportAbuse.heading': 'Rapportera missbruk',
  'dialog.reportAbuse.emailInput': 'Din e-postadress',
  'dialog.reportAbuse.nameInput': 'Ditt namn',
  'dialog.reportAbuse.radioButtonText': 'Varför rapporterar du detta innehåll?',
  'dialog.reportAbuse.defamation': 'Förtal',
  'dialog.reportAbuse.hate': 'Rasistiskt/hatfullt innehåll',
  'dialog.reportAbuse.trademark': 'Varumärkesintrång',
  'dialog.reportAbuse.pornography': 'Sexuellt explicit innehåll',
  'dialog.reportAbuse.vulgar': 'Anstötligt innehåll',
  'dialog.reportAbuse.other': 'Annat',
  'dialog.reportAbuse.inappropriate': 'Olämpligt',
  'dialog.reportAbuse.age': 'Åldersfel',
  'dialog.reportAbuse.gender': 'Genusfel',
  'dialog.reportAbuse.description': 'Om du tycker att detta Creative Cloud-innehåll bryter mot Adobes användningsvillkor kan du rapportera det genom att fylla i det här korta formuläret.',
  'dialog.reportAbuse.describeConcern': 'Beskriv ditt problem',
  'dialog.reportAbuse.success': 'Missbruk har rapporterats',
  'dialog.reportAbuse.failure': 'Det gick inte att rapportera missbruk',
  'dialog.reportAbuse.textAreaTitle': 'Lägg till en beskrivning av ditt ärende.',
  'dialog.reportAbuse.required': 'Obligatoriskt',
  'dialog.cachefull.title': 'Går inte att göra tillgänglig offline',
  'dialog.cachefull.message': 'Det saknas ledigt utrymme på din enhet. Gör dokument onlinebaserade för att frigöra utrymme.',
  'dialog.cachefull.confirm': 'OK',
  'dialog.syncError.heading': 'Dokumentet har slutat synkroniseras med molnet',
  'dialog.syncError.body1': 'Vi rekommenderar att du sparar din senaste version som en kopia och återställer dokumentet till den senast sparade versionen i molnet.',
  'dialog.syncError.body2': 'Du kan öppna det här dokumentet och göra ändringar, men ändringarna kommer inte att sparas i molnet.',
  'dialog.syncError.offline': 'Du måste vara online för att spara en kopia och återställa originalet.',
  'dialog.syncError.learnMore': 'Läs mer',
  'dialog.syncError.resolveButton': 'Spara en kopia och återställ',
  'dialog.syncError.openButton': 'Öppna',
  'dialog.syncErrorCopyFail.heading': 'Det gick inte att spara en kopia',
  'dialog.syncErrorCopyFail.body1': 'Du kan fortfarande öppna det här dokumentet och göra ändringar, men ändringarna kommer inte att sparas i molnet.',
  'dialog.syncErrorCopyFail.body2': 'Kontakta Adobes kundtjänst för ytterligare hjälp. (Fel: LocalContentSyncSuspended)',
  'dialog.syncErrorCopyFail.closeButton': 'Stäng',
  'dialog.syncErrorCopyFail.contactUs': 'Kontakta oss',
  'dialog.syncErrorPurgeFail.heading': 'Det gick inte att återställa till den senast sparade versionen i molnet',
  'dialog.syncErrorPurgeFail.body1': 'En kopia av ditt dokument har skapats, men vi kunde inte återställa dokumentet till den senast sparade versionen i molnet.',
  'dialog.syncErrorPurgeFail.body2': 'Kontakta Adobes kundtjänst för ytterligare hjälp. (Fel: LocalContentSyncSuspended)',
  'dialog.syncErrorPurgeFail.closeButton': 'Stäng',
  'dialog.syncErrorPurgeFail.contactUs': 'Kontakta oss',
  'onboardingCdo.banner.title.sprk': 'Ett bättre sätt att arbeta',
  'onboardingCdo.banner.title.phxs': 'Använder du Photoshop på en iPad? Prova molndokument',
  'onboardingCdo.banner.title.ilst': 'Nu kan du använda molndokument i Illustrator',
  'onboardingCdo.banner.title.idsn': 'Nu kan du använda molndokument i InDesign',
  'onboardingCdo.banner.message.sprk': 'Redigera dina molndokument var som helst, även offline. Ändringarna sparas automatiskt och kan ses i dokumenthistoriken. Dela dem med andra och samarbeta på ett smidigt sätt i realtid.',
  'onboardingCdo.banner.message.phxs': 'Molndokument sparas automatiskt i Adobes moln medan du arbetar så att du kan komma åt dina filer på din dator eller iPad.',
  'onboardingCdo.banner.message.ilst': 'Molndokument i Illustrator sparas automatiskt i Adobes moln medan du arbetar. Du kan också visa versionshistoriken och se hur det du arbetar med har utvecklats.',
  'onboardingCdo.banner.message.idsn': 'Molndokument i InDesign sparas automatiskt i Adobes moln medan du arbetar.',
  'onboardingCdo.banner.linkTitle': 'Mer information',
  'onboardingCdo.banner.confirm': 'OK',
  'operation.progress.archive': 'Tar bort {batchSize, plural, =1 {1 objekt} other {{inProgressNum} av {batchSize} objekt}}...',
  'operation.progress.unarchive': 'Återställer {batchSize, plural, =1 {1 objekt} other {{inProgressNum} av {batchSize} objekt}}...',
  'operation.progress.move': 'Flyttar {batchSize, plural, =1 {1 objekt} other {{inProgressNum} av {batchSize} objekt}}...',
  'operation.progress.permdelete': 'Tar bort {batchSize, plural, =1 {1 objekt} other {{inProgressNum} av {batchSize} objekt}} permanent...',
  'operation.progress.rename': 'Byter namn på {batchSize, plural, =1 {1 objekt} other {{inProgressNum} av {batchSize} objekt}}...',
  'operation.progress.create_new_folder': 'Skapar ny mapp...',
  'operation.progress.duplicate': 'Duplicerar {batchSize, plural, =1 {1 objekt} other {{inProgressNum} av {batchSize} objekt}}...',
  'operation.progress.user_pin': 'Gör {batchSize, plural, =1 {1 objekt} other {{inProgressNum} av {batchSize} objekt}} tillgängligt offline ...',
  'operation.progress.user_unpin': 'Gör {batchSize, plural, =1 {1 objekt} other {{inProgressNum} av {batchSize} objekt}} endast tillgängligt online ...',
  'operation.progress.resolve_sync_error': 'Kopierar och återställer till den senast sparade versionen i molnet ...',
  'tooltip.offline.general': 'Internetanslutning krävs.',
  'tooltip.offline.create-new-folder': 'Internetanslutning krävs för att skapa mappar.',
  'tooltip.offline.move': 'Internetanslutning krävs för att flytta objekt.',
  'tooltip.syncing.disabled': 'Synkronisering slutförs',
  'tooltip.rename.disabled': 'Ett valt dokument kan inte döpas om. Öppna det i värdprogrammet för att aktivera namnbyte.',
  'tooltip.rename.disabled.sprk': 'Den här filen kan inte byta namn förrän du öppnar den i XD.',
  'tooltip.syncSuspended.needsAction': 'Synkroniseringen har stoppats. Öppna för att vidta åtgärder.',
  'tooltip.syncSuspended.noAction': 'Synkroniseringen har stoppats. Åtgärden är inte tillåten just nu.',
  'Recents.title': 'Senaste',
  'Recents.cloudDocTitle': 'MOLNDOKUMENT',
  'Recents.error.subtext.coreSync': 'Senaste objekt är inte tillgängliga just nu eftersom Creative Cloud-synkronisering inte fungerar korrekt.',
  'item.saveForOfflineIconToolTip': 'Detta dokument har laddats ned och är tillgängligt offline.',
  'item.disconnected.cloudonly': 'Du är frånkopplad. Anslut igen för att öppna dokumentet.',
  'item.coresyncdown.cloudonly': 'Det går inte att läsa in filen. Att uppdatera eller starta om Creative Cloud kan lösa problemet.',
  'folder.subtitle': 'MAPP',
  'review.subtitle': 'GRANSKA',
  'prototype.subtitle': 'PROTOTYP',
  'designspecs.subtitle': 'DESIGNSPEC',
  'project.subtitle': 'PROJEKT',
  'library.subtitle': 'BIBLIOTEK',
  'webLink.subtitle': 'WEBBLÄNK',
  'abbreviations.fileSize.byte': 'B',
  'abbreviations.fileSize.kilobyte': 'kB',
  'abbreviations.fileSize.megabyte': 'MB',
  'abbreviations.fileSize.gigabyte': 'GB',
  'abbreviations.fileSize.terabyte': 'TB',
  'sam.copyNameFormat': '%@ kopia',
  'cloudsync.quota.title': 'MOLNLAGRING',
  'cloudsync.quota.percentage': '{percentageUsed}%',
  'cloudsync.quota.usage': '{usedCloudQuotaString} av {maxCloudQuotaString} används',
  'cloudsync.quota.warning': 'Din molnlagring är full. Uppgradera för att fortsätta synkronisera ditt arbete.',
  'cloudsync.quota.error': 'Ingen lagringsinformation är tillgänglig ...',
  'cloudsync.quota.upgrade': 'Uppgradera',
  'cloudsync.status.complete.title': 'Synkroniserad och säkerhetskopierad',
  'cloudsync.status.syncing.title': 'Synkroniserar molndokument',
  'cloudsync.status.syncing.descr': '{progress}/{total}',
  'cloudsync.status.offline.title': 'Arbetar offline',
  'cloudsync.status.offline.descr': 'Vi sparar lokalt. Dokument synkroniseras till molnet när du är ansluten igen.',
  'cloudsync.status.disabled.title': 'Synkronisering inaktiverad',
  'cloudsync.status.disabled.descr': 'Vi sparar lokalt. Dokument synkroniseras till molnet när lagringen är tillgänglig.',
  'cloudsync.item.progress.determinate': '{progress}/{total}',
  'cloudsync.item.progress.indeterminate': 'Synkar …',
  'cloudsync.item.complete': 'Klart',
  'cloudsync.items.header': 'Nätverksaktivitet',
  'cloudsync.alert.title.coresync.down': 'Det gick inte att läsa in',
  'cloudsync.alert.subtext.coresync.down': 'Molnet synkar inte. Kontrollera att Creative Cloud-datorprogrammet är uppdaterat eller prova att starta om programmet.',
  'cloudsync.alert.subtext.coresync.down.learnmore': 'Läs mer',
  'cloudsync.tooltip.offline': 'Frånkopplad',
  'cloudsync.tooltip.error': 'Fel',
  'cloudsync.tooltip.syncing': 'Sparar ...',
  'cloudsync.tooltip.default': 'Sparat',
  'cloudsync.singleDoc.offline.title': 'Frånkopplad',
  'cloudsync.singleDoc.offline.descr': 'Försöker ansluta igen ...',
  'cloudsync.singleDoc.offline.timestamp': 'Senast synkad {time}',
  'cloudsync.singleDoc.error.samInitFail.title': 'Molnet slutade att synka',
  'cloudsync.singleDoc.error.samInitFail.descr': 'Starta om appen för att fortsätta synka ditt arbete.',
  'cloudsync.singleDoc.error.syncSuspended.title': 'Molnet slutade att synka',
  'cloudsync.singleDoc.error.syncSuspended.descr': 'Starta om appen för att fortsätta synka ditt arbete.',
  'cloudsync.singleDoc.error.title': 'Det går inte att läsa in',
  'cloudsync.singleDoc.error.descr': 'Molnet synkar inte. Kontrollera att Creative Cloud-datorprogrammet är uppdaterat eller prova att starta om programmet.',
  'cloudsync.singleDoc.error.learnMore': 'Läs mer',
  'cloudsync.singleDoc.disabled.quotaExceeded.title': 'Din molnlagring är full',
  'cloudsync.singleDoc.disabled.quotaExceeded.descr': 'Uppgradera Creative Cloud för att fortsätta synka ditt arbete.',
  'cloudsync.singleDoc.syncing.title': 'Sparar ...',
  'cloudsync.singleDoc.syncing.descr': 'Pågår',
  'cloudsync.singleDoc.disabled.title': 'Det går inte att spara',
  'cloudsync.singleDoc.disabled.descr': 'Det finns inget mer lagringsutrymme för ditt konto.',
  'cloudsync.singleDoc.complete.title': 'Filen har sparats',
  'cloudsync.singleDoc.complete.timestamp': 'Senast synkad {time}'
};

/***/ }),

/***/ "yMj6":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var _UxpOptions = _interopRequireDefault(__webpack_require__("zvwv"));

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
} //  so, we are defining this module which forks behavior here so that
//  Table can import the appropriate TR instance either Uxp or normal.


module.exports = _UxpOptions.default.select('TR', () => __webpack_require__("4/95"), () => __webpack_require__("E/Zd"));

/***/ }),

/***/ "yP5f":
/***/ (function(module, exports, __webpack_require__) {

var cloneArrayBuffer = __webpack_require__("+K+b");
/**
 * Creates a clone of `typedArray`.
 *
 * @private
 * @param {Object} typedArray The typed array to clone.
 * @param {boolean} [isDeep] Specify a deep clone.
 * @returns {Object} Returns the cloned typed array.
 */


function cloneTypedArray(typedArray, isDeep) {
  var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;
  return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);
}

module.exports = cloneTypedArray;

/***/ }),

/***/ "yPr8":
/***/ (function(module) {

module.exports = JSON.parse("{\"close\":\"Schließen\",\"error\":\"Fehler\",\"info\":\"Informationen\",\"success\":\"Erfolg\",\"warning\":\"Warnung\"}");

/***/ }),

/***/ "yVbG":
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(global) {
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
// tslint:disable max-line-length

var __createBinding = this && this.__createBinding || (Object.create ? function (o, m, k, k2) {
  if (k2 === undefined) k2 = k;
  Object.defineProperty(o, k2, {
    enumerable: true,
    get: function () {
      return m[k];
    }
  });
} : function (o, m, k, k2) {
  if (k2 === undefined) k2 = k;
  o[k2] = m[k];
});

var __setModuleDefault = this && this.__setModuleDefault || (Object.create ? function (o, v) {
  Object.defineProperty(o, "default", {
    enumerable: true,
    value: v
  });
} : function (o, v) {
  o["default"] = v;
});

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

  __setModuleDefault(result, mod);

  return result;
};

var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {
  function adopt(value) {
    return value instanceof P ? value : new P(function (resolve) {
      resolve(value);
    });
  }

  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) : adopt(result.value).then(fulfilled, rejected);
    }

    step((generator = generator.apply(thisArg, _arguments || [])).next());
  });
};

var __generator = this && this.__generator || function (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
    };
  }
};

var __importDefault = this && this.__importDefault || function (mod) {
  return mod && mod.__esModule ? mod : {
    "default": mod
  };
};

Object.defineProperty(exports, "__esModule", {
  value: true
});

var stringify_props_1 = __webpack_require__("45JA"); // uncomment and use in place of JSON, if you need to log objects returned from ACPL
// This is a hack to deal with the fact that UXP adds some of the fetch classes, but not Response


var crossFetch = __importStar(__webpack_require__("XWHH"));

__webpack_require__("cnSC");

var NotificationStatus_1 = __webpack_require__("ljP9");

var RequestProcessor_1 = __importDefault(__webpack_require__("HyxP"));

var RequestProcessorFactory_1 = __importDefault(__webpack_require__("v25Z"));

var constants_1 = __webpack_require__("uBoz");

var Utils_1 = __importDefault(__webpack_require__("CyGC"));

var uuid_1 = __importDefault(__webpack_require__("EcEN")); // This import style was easier to mock than 'uuid/v1'


var lodash_merge_1 = __importDefault(__webpack_require__("2oH+"));

var AcplStatusCodes_1 = __webpack_require__("Vplr");

if (typeof Response === 'undefined') {
  // tslint:disable-next-line no-string-literal
  global['Response'] = crossFetch.Response;
}

var ACPL_SUBSCRIPTION_URL = 'https://acp.local/observe'; // Flag to determine if singleton warning has been displayed

var instanceDeprecationWarning = false;
/**
 * Singleton class to fetch ACP data. Uses ACP.local if available.
 */

var ACPFetch =
/** @class */
function () {
  /**
   * ACPFetch supports two modes of operation: As a singleton, or multi-instance. As a singleton,
   * you must call `configure` before use, and always work with the `ACPFetch.instance` variable:
   *
   *      ACPFetch.instance.configure(...);       // only do this once
   *      ACPFetch.instance.getDocuments(...);
   *
   * The first use of  `ACPFetch.instance` will instantiate the singleton.
   * NOTE: singleton pattern will be deprecated in the future.
   *
   * For multi-instance, call the constructor with the same arguments passed to `configure`:
   *
   *      this.acpFetch = new ACPFetch(...);
   *      this.acpFetch.acpFetch(...);
   *
   * At this time, it is not supported to use ACPFetch outside this package. Instead, use CloudDocumentsClient.
   *
   * @param hostProductData
   * @param imsData
   * @param onNotificationStatusChange (optional)
   * @param onAssetChange (optional)
   */
  function ACPFetch(config) {
    this._environment = 'stage';
    this._cloudId = constants_1.CC_CLOUD_ID;
    this._useACPLocal = false;
    this._registerUserWithACPL = false;

    if (config) {
      this.configure(config);
    }
  }

  Object.defineProperty(ACPFetch.prototype, "usingACPLocal", {
    /**
     * Exposes `usingACPLocal` property.
     */
    get: function () {
      return this._useACPLocal;
    },
    enumerable: false,
    configurable: true
  });
  Object.defineProperty(ACPFetch.prototype, "userEmail", {
    /**
     * Exposes `userEmail` property.
     */
    get: function () {
      return this._fetchUserEmail ? this._fetchUserEmail() : '';
    },
    enumerable: false,
    configurable: true
  });
  Object.defineProperty(ACPFetch.prototype, "userId", {
    /**
     * Exposes `userId` property.
     */
    get: function () {
      return this._fetchUserId ? this._fetchUserId() : '';
    },
    enumerable: false,
    configurable: true
  });
  Object.defineProperty(ACPFetch.prototype, "cloudId", {
    /**
     * Exposes `cloudId` property.
     */
    get: function () {
      return this._cloudId;
    },
    enumerable: false,
    configurable: true
  });
  Object.defineProperty(ACPFetch, "instance", {
    /**
     * Constructs the instance the first time, just returns it after that
     * @deprecated
     */
    get: function () {
      if (!instanceDeprecationWarning) {
        instanceDeprecationWarning = true;
        console.warn('ACPFetch.instance will be deprecated.');
      }

      return this._instance || (this._instance = new this());
    },
    enumerable: false,
    configurable: true
  });
  /**
   * Track the notification status for each type
   * @param type: notification type
   * @param status: notification status
   * @private
   */

  ACPFetch.prototype._onNotificationStatusChange = function (type, status) {
    if (type === NotificationStatus_1.NotificationType.network) {
      if (this._connectionStatus !== status) {
        this._connectionStatus = status;

        this._onNotificationStatusChangeCallback(this._connectionStatus);
      }
    } else if (type === NotificationStatus_1.NotificationType.authentication) {
      if (this._acplAuthenticationStatus !== status) {
        this._acplAuthenticationStatus = status;

        this._onNotificationStatusChangeCallback(this._acplAuthenticationStatus);
      }
    } else if (type === NotificationStatus_1.NotificationType.coreSync) {
      if (this._coreSyncStatus !== status) {
        this._coreSyncStatus = status;

        this._onNotificationStatusChangeCallback(this._coreSyncStatus);
      }
    } else if (type === NotificationStatus_1.NotificationType.quota) {
      if (this._quotaStatus !== status) {
        this._quotaStatus = status;

        this._onNotificationStatusChangeCallback(this._quotaStatus);
      }
    }
  };
  /**
   * Track the asset state change
   * @param state
   * @private
   */


  ACPFetch.prototype._onAssetChange = function (notification) {
    if (this._onAssetChangeCallback) {
      this._onAssetChangeCallback(notification);
    }
  };
  /**
   * Track Sync events for assets
   * @param syncPayload
   */


  ACPFetch.prototype._onAssetSyncEvent = function (syncPayload) {
    if (this._onAssetSyncEventCallback) {
      this._onAssetSyncEventCallback(syncPayload);
    }
  };
  /**
   * Track Sync Progress events for assets
   */


  ACPFetch.prototype._onSyncProgressEvent = function (syncPayload) {
    if (this._onSyncProgressEventCallback) {
      this._onSyncProgressEventCallback(syncPayload);
    }
  };
  /**
   * Called during initialization of client to determine current quota status. It should not be called
   * after initialization.
   * @private
   */


  ACPFetch.prototype._getInitialQuotaStatus = function () {
    return __awaiter(this, void 0, void 0, function () {
      var getQuotaDelay, maxTries, tryCount, e_1;
      return __generator(this, function (_a) {
        switch (_a.label) {
          case 0:
            getQuotaDelay = 1000;
            maxTries = 10;
            tryCount = 0;
            _a.label = 1;

          case 1:
            if (!(tryCount > 0)) return [3
            /*break*/
            , 3];
            return [4
            /*yield*/
            , Utils_1.default.sleep(getQuotaDelay)];

          case 2:
            _a.sent();

            _a.label = 3;

          case 3:
            tryCount++;
            _a.label = 4;

          case 4:
            _a.trys.push([4, 6,, 7]);

            return [4
            /*yield*/
            , this.acplGetStorageMetadataStatus()];

          case 5:
            _a.sent();

            return [3
            /*break*/
            , 8];
          // success

          case 6:
            e_1 = _a.sent();
            console.info('[acp-fetch] acplGetStorageMetadata attempt %d failed', tryCount);
            return [3
            /*break*/
            , 7];

          case 7:
            if (tryCount < maxTries) return [3
            /*break*/
            , 1];
            _a.label = 8;

          case 8:
            if (tryCount === maxTries) {
              console.info('[acp-fetch] failed to get current quota after %d tries. Assume the user has some available anyway.', maxTries);

              this._onNotificationStatusChange(NotificationStatus_1.NotificationType.quota, NotificationStatus_1.NotificationStatus.QUOTA_AVAILABLE);
            }

            return [2
            /*return*/
            ];
        }
      });
    });
  };
  /**
   * Instantiate client
   * @private
   */


  ACPFetch.prototype._createACPLClient = function () {
    return __awaiter(this, void 0, void 0, function () {
      var e_2, status_1, err, e_3, e_4, response, error_1;
      return __generator(this, function (_a) {
        switch (_a.label) {
          case 0:
            if (!this._useACPLocal) {
              return [2
              /*return*/
              ];
            }

            if (!this._dcxAppId || !this._productVersion) {
              throw new Error('[acp-fetch] cannot create ACPL client without dcxAppId and productVersion');
            }

            if (!this._acplClient) {
              this._acplClient = new acplocaljs.Client(this._dcxAppId, this._productVersion, this._minimumCoreSyncVersionRequired, this._xApiKey, this._appAgentName);
            }

            _a.label = 1;

          case 1:
            _a.trys.push([1, 3,, 4]); // subscribe for network status before pinging coresync


            return [4
            /*yield*/
            , this.acplSubscribeForNetworkStatusNotification()];

          case 2:
            // subscribe for network status before pinging coresync
            _a.sent();

            return [3
            /*break*/
            , 4];

          case 3:
            e_2 = _a.sent();

            this._onNotificationStatusChange(NotificationStatus_1.NotificationType.network, NotificationStatus_1.NotificationStatus.NO_INTERNET_ACCESS);

            return [3
            /*break*/
            , 4];

          case 4:
            _a.trys.push([4, 6,, 8]);

            return [4
            /*yield*/
            , this.acplCoreSyncPing()];

          case 5:
            status_1 = _a.sent();

            if (status_1 !== NotificationStatus_1.NotificationStatus.CORESYNC_REACHABLE_AND_COMPATIBLE) {
              err = new Error("CoreSync status: " + status_1);
              console.error('[acp-fetch] createACPClient failed: ', err);
              throw err;
            }

            return [3
            /*break*/
            , 8];

          case 6:
            e_3 = _a.sent();
            return [4
            /*yield*/
            , this.acplSubscribeForCoreSyncWorkingNotificationIfCoreSyncDown()];

          case 7:
            _a.sent(); // Dispose of ACPL client. If the host tries to fetch again, it will try to re-create it and subscribe
            // to notifications.


            this._acplClient = undefined; // Notify client that all conditions are red
            // Preserve detected CoreSync status, unless it is green.

            if (!this._coreSyncStatus || this._coreSyncStatus === NotificationStatus_1.NotificationStatus.CORESYNC_REACHABLE_AND_COMPATIBLE) {
              this._onNotificationStatusChange(NotificationStatus_1.NotificationType.coreSync, NotificationStatus_1.NotificationStatus.CORESYNC_NOT_REACHABLE);
            }

            this._onNotificationStatusChange(NotificationStatus_1.NotificationType.authentication, NotificationStatus_1.NotificationStatus.ACPL_USER_NOT_REGISTERED);

            return [2
            /*return*/
            ];

          case 8:
            _a.trys.push([8, 13,, 14]); // subscribing to ACPLocal's SYNCWORKING and SYNCDOWN *must* occur before signing in


            return [4
            /*yield*/
            , this.acplSubscribeForCoreSyncWorkingNotification()];

          case 9:
            // subscribing to ACPLocal's SYNCWORKING and SYNCDOWN *must* occur before signing in
            _a.sent();

            return [4
            /*yield*/
            , this.acplSubscribeForCoreSyncDownNotification()];

          case 10:
            _a.sent();

            return [4
            /*yield*/
            , this.acplSubscribeForUserRegisteredNotification()];

          case 11:
            _a.sent();

            return [4
            /*yield*/
            , this.acplSubscribeForUserNotRegisteredNotification()];

          case 12:
            _a.sent();

            return [3
            /*break*/
            , 14];

          case 13:
            e_4 = _a.sent(); // Dispose of ACPL client. If the host tries to fetch again, ACPFetch will try to re-create
            // the ACPL client and subscribe to the notifications.

            this._acplClient = undefined;
            console.error('[acp-fetch] ACPL notification subscription failed', e_4.message);
            return [2
            /*return*/
            ];

          case 14:
            if (!this.userId) {
              console.info('[acp-fetch] no userId from client, assuming user is not signed in'); // Initialize in not-registered state, assuming the host has not completed registering the user with ACPL.
              // This lets CDP initialize in a "logged out" state.

              this._onNotificationStatusChange(NotificationStatus_1.NotificationType.authentication, NotificationStatus_1.NotificationStatus.ACPL_USER_NOT_REGISTERED);

              return [2
              /*return*/
              ];
            }

            if (!this._registerUserWithACPL) {
              // Clients should be responsible for registering with ACPL. But for test apps, the host app may have no need
              // to register with ACPL.
              this._afterUserRegistered();

              return [2
              /*return*/
              ];
            }

            _a.label = 15;

          case 15:
            _a.trys.push([15, 17,, 18]);

            console.info('[acp-fetch] registering user');
            return [4
            /*yield*/
            , this.acplSignIn()];

          case 16:
            response = _a.sent(); // there are three ways ACPL the sign in can return:
            //  - success if there was no user signed in (promise.resolve)
            //  - failed because user signed already in (promise.reject)
            //  - failed unable to sign in user (promise.reject)
            // the first two are acceptable as "passing" the auth test

            if (RequestProcessor_1.default.isAcplStatusSuccessful(response.statusCode)) {
              this._afterUserRegistered();
            } else {
              this._acplClient = undefined;

              this._onNotificationStatusChange(NotificationStatus_1.NotificationType.authentication, NotificationStatus_1.NotificationStatus.ACPL_USER_NOT_REGISTERED);

              console.error("[acp-fetch] ACPL cLient authentication failed. statusCode: " + response.statusCode + ", statusMessage: " + response.statusMessage);
            }

            return [3
            /*break*/
            , 18];

          case 17:
            error_1 = _a.sent(); // but the ACPL.JS bindings will treat user already logged
            // in as a rejection so we need to handle it here as a pass

            if (error_1.statusCode === acplocaljs.Response.ACPL_ALREADY_REGISTERED) {
              this._afterUserRegistered();
            } else {
              this._acplClient = undefined;

              this._onNotificationStatusChange(NotificationStatus_1.NotificationType.authentication, NotificationStatus_1.NotificationStatus.ACPL_USER_NOT_REGISTERED);

              console.error("[acp-fetch] ACPL client authentication error: " + error_1.statusMessage + " (" + error_1.statusCode + ")");
            }

            return [3
            /*break*/
            , 18];

          case 18:
            return [2
            /*return*/
            ];
        }
      });
    });
  };
  /**
   * Handle the internal setup when ACPL registration passes.
   */


  ACPFetch.prototype._afterUserRegistered = function () {
    return __awaiter(this, void 0, void 0, function () {
      return __generator(this, function (_a) {
        switch (_a.label) {
          case 0:
            return [4
            /*yield*/
            , this.acplSubscribeForQuotaStatusNotification()];

          case 1:
            _a.sent();

            return [4
            /*yield*/
            , this.acplSubscribeForAssetChangeNotification()];

          case 2:
            _a.sent();

            return [4
            /*yield*/
            , this.acplSubscribeForAssetSyncNotification()];

          case 3:
            _a.sent();

            return [4
            /*yield*/
            , this.acplSubscribeForSyncProgressNotification()];

          case 4:
            _a.sent(); // If everything else succeeds, assume we're registered.


            this._onNotificationStatusChange(NotificationStatus_1.NotificationType.authentication, NotificationStatus_1.NotificationStatus.ACPL_USER_REGISTERED); // Check for quota last, as it's not critical, and sometimes needs to be retried for 4-5 seconds.


            return [4
            /*yield*/
            , this._getInitialQuotaStatus()];

          case 5:
            // Check for quota last, as it's not critical, and sometimes needs to be retried for 4-5 seconds.
            _a.sent();

            console.info('[acp-fetch] ACPL client initialization complete');
            return [2
            /*return*/
            ];
        }
      });
    });
  };
  /**
   * Callback for ACPL user registered notification.
   * @private
   */


  ACPFetch.prototype._onLoggedIn = function () {
    this._onNotificationStatusChange(NotificationStatus_1.NotificationType.authentication, NotificationStatus_1.NotificationStatus.ACPL_USER_REGISTERED);

    console.info('[acp-fetch] user registered with ACPL, re-subscribing to notifications');
    this.acplSubscribeForAssetChangeNotification();
    this.acplSubscribeForAssetSyncNotification();
    this.acplSubscribeForSyncProgressNotification();
    this.acplSubscribeForQuotaStatusNotification();
  };
  /**
   * Internal ACP.local-specific method to subscribe to SYNCWORKING status
   */


  ACPFetch.prototype.acplSubscribeForCoreSyncWorkingNotificationIfCoreSyncDown = function () {
    return __awaiter(this, void 0, void 0, function () {
      var notificationRequest, notificationCallback;

      var _this = this;

      return __generator(this, function (_a) {
        try {
          notificationRequest = this.acplSubscribeForNotification(acplocaljs.NotificationRequest.SYNCWORKING);

          notificationCallback = function () {
            if (!_this._acplClient) {
              _this._createACPLClient();
            }
          };

          notificationRequest.addEventListener('ACPLJSEvent', notificationCallback);
          console.info('[acp-fetch] CoreSync not working so subscribed to SYNCWORKING');
          return [2
          /*return*/
          , true];
        } catch (errorResponse) {
          console.error('[acp-fetch] Failed to subscribe to SYNCWORKING', errorResponse);
          throw new Error(errorResponse.statusMessage + " (" + errorResponse.statusCode + ")");
        }

        return [2
        /*return*/
        ];
      });
    });
  };
  /**
   * Register user with ACPL
   */


  ACPFetch.prototype.acplSignIn = function () {
    return __awaiter(this, void 0, void 0, function () {
      var token, userInfo, userInfoUri, context;
      return __generator(this, function (_a) {
        switch (_a.label) {
          case 0:
            return [4
            /*yield*/
            , this._fetchToken()];

          case 1:
            token = _a.sent();
            userInfo = new acplocaljs.UserInfo('', this.userId, this.userEmail, this._environment, token);
            userInfoUri = new acplocaljs.Uri(constants_1.USERINFO_URI);
            context = new acplocaljs.Context(userInfoUri);
            return [2
            /*return*/
            , this._acplClient.postElement(userInfoUri, userInfo, context).promise];
        }
      });
    });
  };
  /**
   * Handle ACPL unregister request.
   */


  ACPFetch.prototype.acplSignOut = function () {
    return __awaiter(this, void 0, void 0, function () {
      var userInfoUri, context;
      return __generator(this, function (_a) {
        userInfoUri = new acplocaljs.Uri(constants_1.USERINFO_URI + "/" + this.userId);
        context = new acplocaljs.Context(userInfoUri);
        return [2
        /*return*/
        , this._acplClient.deleteElement(userInfoUri, context).promise];
      });
    });
  };
  /**
   * Configure needs to be called at least once before using the client
   * @param params
   */


  ACPFetch.prototype.configure = function (params) {
    return __awaiter(this, void 0, void 0, function () {
      return __generator(this, function (_a) {
        switch (_a.label) {
          case 0:
            if (!params) return [3
            /*break*/
            , 5];
            this._environment = params.environment;
            this._fetchUserId = params.fetchUserId;
            this._fetchUserEmail = params.fetchUserEmail;
            this._fetchToken = params.fetchToken;
            this._dcxAppId = params.dcxAppId;
            this._productVersion = params.productVersion;
            this._cloudId = params.cloudId || this._cloudId;
            this._onNotificationStatusChangeCallback = params.onNotificationStatusChange;
            this._onAssetChangeCallback = params.onAssetChange;
            this._onAssetSyncEventCallback = params.onAssetSyncEvent;
            this._onSyncProgressEventCallback = params.onSyncProgressEvent;
            this._onAnalyticsEventCallback = params.onAnalyticsEvent;
            this._minimumCoreSyncVersionRequired = params.minimumCoreSyncVersionRequired;
            this._xApiKey = params.xApiKey;
            this._appAgentName = params.appAgentName; // the global `acplocaljs` will only be defined when running under UXP and acplocaljs has been injected

            this._useACPLocal = typeof acplocaljs !== 'undefined'; // and check to see if we are manually disabling ACPL

            if (params.featureFlags) {
              if (params.featureFlags[constants_1.FEATURE_FLAGS.disableACPL]) {
                this._useACPLocal = false;
              }

              if (params.featureFlags[constants_1.FEATURE_FLAGS.registerUserWithACPL]) {
                this._registerUserWithACPL = true;
              }
            }

            if (!this._useACPLocal) return [3
            /*break*/
            , 4];
            if (!!this._acplClient) return [3
            /*break*/
            , 2];
            return [4
            /*yield*/
            , this._createACPLClient()];

          case 1:
            _a.sent();

            return [3
            /*break*/
            , 3];

          case 2:
            this._onNotificationStatusChangeCallback(this._connectionStatus);

            console.warn('ACPFetch.configure called multiple times. Connection status and asset ' + 'change notifications may be lost.');
            _a.label = 3;

          case 3:
            return [3
            /*break*/
            , 5];

          case 4:
            // For web, assume all network statuses are green
            this._acplAuthenticationStatus = NotificationStatus_1.NotificationStatus.ACPL_USER_REGISTERED;
            this._coreSyncStatus = NotificationStatus_1.NotificationStatus.CORESYNC_REACHABLE_AND_COMPATIBLE;
            this._quotaStatus = NotificationStatus_1.NotificationStatus.QUOTA_AVAILABLE;
            this._connectionStatus = NotificationStatus_1.NotificationStatus.HAS_INTERNET_ACCESS;
            _a.label = 5;

          case 5:
            return [2
            /*return*/
            ];
        }
      });
    });
  };
  /**
   * Send an event to analytics via the configured callback
   * @param eventData data object for the event
   */


  ACPFetch.prototype.logAnalyticsEvent = function (eventData) {
    if (this._onAnalyticsEventCallback && eventData) {
      this._onAnalyticsEventCallback(eventData);
    }
  };
  /**
   * Fetches data from ACP
   * @param input
   * @param init
   * @param additionalParams
   * @param tryCount
   */


  ACPFetch.prototype.acpFetch = function (input, init, additionalParams, tryCount) {
    if (tryCount === void 0) {
      tryCount = 0;
    }

    return __awaiter(this, void 0, void 0, function () {
      var maxRetries, request, requestProcessorParams, requestProcessor, authToken, response, error_2;
      return __generator(this, function (_a) {
        switch (_a.label) {
          case 0:
            maxRetries = 1;
            request = new Request(input, init);
            requestProcessorParams = {
              method: request.method,
              useACPLocal: this._useACPLocal
            };

            if (this._useACPLocal) {
              // make sure we have a valid client
              if (!this._acplClient) {
                this._createACPLClient();

                if (!this._acplClient) {
                  return [2
                  /*return*/
                  , Promise.reject(new Error('Unable to create ACPL client'))];
                }
              }

              requestProcessorParams.userId = this.userId;
              requestProcessorParams.cloudId = this.cloudId;
              requestProcessorParams.connectionStatus = this._connectionStatus;
            }

            requestProcessor = RequestProcessorFactory_1.default.getRequestProcessor(request.url, requestProcessorParams);
            return [4
            /*yield*/
            , this._fetchToken()];

          case 1:
            authToken = _a.sent();
            request.headers.set('Authorization', "Bearer " + authToken);
            _a.label = 2;

          case 2:
            _a.trys.push([2, 10,, 11]);

            if (!this._useACPLocal) return [3
            /*break*/
            , 4];
            return [4
            /*yield*/
            , this.fetchAcpLocal(request, requestProcessor, additionalParams)];

          case 3:
            response = _a.sent();
            return [3
            /*break*/
            , 6];

          case 4:
            return [4
            /*yield*/
            , this.fetchWeb(request, requestProcessor, additionalParams)];

          case 5:
            response = _a.sent();
            _a.label = 6;

          case 6:
            if (!(response.status === constants_1.HTTP_STATUS_UNAUTHORIZED && tryCount < maxRetries)) return [3
            /*break*/
            , 8];
            return [4
            /*yield*/
            , this._fetchToken(authToken)];

          case 7:
            _a.sent(); // signal host to refresh the auth token from the current


            return [2
            /*return*/
            , this.acpFetch(request, undefined, additionalParams, tryCount + 1)];

          case 8:
            return [2
            /*return*/
            , response];

          case 9:
            return [3
            /*break*/
            , 11];

          case 10:
            error_2 = _a.sent();
            return [2
            /*return*/
            , Promise.reject(error_2)];

          case 11:
            return [2
            /*return*/
            ];
        }
      });
    });
  };
  /**
   * Fetches data directly from ACP services
   * @param request
   * @param requestProcessor
   */


  ACPFetch.prototype.fetchWeb = function (request, requestProcessor, additionalParams) {
    return __awaiter(this, void 0, void 0, function () {
      var _this = this;

      return __generator(this, function (_a) {
        return [2
        /*return*/
        , new Promise(function (resolve, reject) {
          return __awaiter(_this, void 0, void 0, function () {
            var transformedRequest, initialResponse, response, error_3;
            return __generator(this, function (_a) {
              switch (_a.label) {
                case 0:
                  return [4
                  /*yield*/
                  , requestProcessor.requestTransformWeb(request, additionalParams)];

                case 1:
                  transformedRequest = _a.sent();
                  _a.label = 2;

                case 2:
                  _a.trys.push([2, 4,, 5]);

                  return [4
                  /*yield*/
                  , fetch(transformedRequest, {
                    cache: 'no-cache'
                  })];

                case 3:
                  initialResponse = _a.sent(); // It is not possible for the `fetch` polyfill to implement Response.url
                  // due to limitations of the XHR APIs. On unsupported platforms, this field
                  // is an empty string. Fortunately, this parameter is generally the same
                  // as the request URL, unless there were intermediate HTTP redirects.
                  // Since our implementation only cares about the domain (not the path),
                  // it's likely fine to use the request URL instead for our use case.
                  // See <https://github.com/github/fetch#obtaining-the-response-url>.

                  if (initialResponse.url === '') {
                    initialResponse.url = transformedRequest.url;
                  }

                  if (!initialResponse.ok) {
                    resolve(initialResponse);
                    return [2
                    /*return*/
                    ];
                  }

                  response = requestProcessor.responseTransformWeb(initialResponse);
                  resolve(response);
                  return [3
                  /*break*/
                  , 5];

                case 4:
                  error_3 = _a.sent();
                  reject(error_3);
                  return [3
                  /*break*/
                  , 5];

                case 5:
                  return [2
                  /*return*/
                  ];
              }
            });
          });
        })];
      });
    });
  };
  /**
   * Fetches data from ACP.local
   * @param request
   * @param requestProcessor
   */


  ACPFetch.prototype.fetchAcpLocal = function (request, requestProcessor, additionalParams) {
    return __awaiter(this, void 0, void 0, function () {
      var _this = this;

      return __generator(this, function (_a) {
        return [2
        /*return*/
        , new Promise(function (resolve, reject) {
          return __awaiter(_this, void 0, void 0, function () {
            var requestGuid, trnNumber, acplRequest, acplResponse, dtsStart, hostAnalyticsData, commonMetrics, _a, response, duration, eventData, errorResponse_1, duration, eventData, response;

            return __generator(this, function (_b) {
              switch (_b.label) {
                case 0:
                  requestGuid = uuid_1.default.v1();
                  trnNumber = uuid_1.default.v1();
                  request.headers.set('x-request-id', requestGuid);
                  return [4
                  /*yield*/
                  , requestProcessor.requestTransformAcpLocal(request, additionalParams)];

                case 1:
                  acplRequest = _b.sent();
                  if (!this._acplClient) return [3
                  /*break*/
                  , 18];
                  acplResponse = void 0;
                  dtsStart = new Date(Date.now());
                  hostAnalyticsData = additionalParams && additionalParams.analyticsData ? additionalParams.analyticsData : {};
                  commonMetrics = lodash_merge_1.default({}, hostAnalyticsData, {
                    event: {
                      type: 'response',
                      subcategory: 'AcpFetch',
                      workflow: 'Internal Operations',
                      dts_start: dtsStart,
                      url: request.url,
                      subtype: acplRequest.method,
                      request_guid: requestGuid
                    },
                    trn: {
                      number: trnNumber,
                      product: 'Performance',
                      amount: 0
                    }
                  });

                  if (this._acplSDKVersion && this._acplMinimumCoreSyncVersion) {
                    commonMetrics = lodash_merge_1.default(commonMetrics, {
                      env: {
                        com: {
                          name: 'ACPL:MinimumCoresync',
                          version: this._acplSDKVersion + ":" + this._acplMinimumCoreSyncVersion
                        },
                        svc: {
                          name: 'CoreSync',
                          version: "" + this._acplAvailableCoreSyncVersion
                        }
                      }
                    });
                  }

                  _b.label = 2;

                case 2:
                  _b.trys.push([2, 14,, 18]);

                  _a = acplRequest.method;

                  switch (_a) {
                    case 'GET':
                      return [3
                      /*break*/
                      , 3];

                    case 'POST':
                      return [3
                      /*break*/
                      , 5];

                    case 'PUT':
                      return [3
                      /*break*/
                      , 7];

                    case 'DELETE':
                      return [3
                      /*break*/
                      , 9];
                  }

                  return [3
                  /*break*/
                  , 11];

                case 3:
                  return [4
                  /*yield*/
                  , this._acplClient.getElement(acplRequest.url, acplRequest.context).promise];

                case 4:
                  acplResponse = _b.sent();
                  return [3
                  /*break*/
                  , 12];

                case 5:
                  return [4
                  /*yield*/
                  , this._acplClient.postElement(acplRequest.url, acplRequest.element, acplRequest.context).promise];

                case 6:
                  acplResponse = _b.sent();
                  return [3
                  /*break*/
                  , 12];

                case 7:
                  return [4
                  /*yield*/
                  , this._acplClient.putElement(acplRequest.url, acplRequest.element, acplRequest.context).promise];

                case 8:
                  acplResponse = _b.sent();
                  return [3
                  /*break*/
                  , 12];

                case 9:
                  return [4
                  /*yield*/
                  , this._acplClient.deleteElement(acplRequest.url, acplRequest.context).promise];

                case 10:
                  acplResponse = _b.sent();
                  return [3
                  /*break*/
                  , 12];

                case 11:
                  {
                    reject(Error('Invalid or missing http method'));
                    return [2
                    /*return*/
                    ];
                  }
                  _b.label = 12;

                case 12:
                  return [4
                  /*yield*/
                  , requestProcessor.responseTransformAcpLocal(acplResponse)];

                case 13:
                  response = _b.sent();
                  duration = Date.now() - dtsStart.getTime();
                  eventData = lodash_merge_1.default(commonMetrics, {
                    event: {
                      value: duration
                    },
                    trn: {
                      quantity: duration
                    }
                  });

                  if (!response.ok) {
                    // Monitor responses are like a response wrapped in a response. MonitorOpRequestProcessor processes them and puts the right values in response
                    if (acplResponse.statusCode) {
                      // response.status is an HTTP status code, which doesn't contain enough information for these types of
                      // informational errors. Instead, use acplResponse.statusCode, which has the more detailed error code
                      if (AcplStatusCodes_1.ACPL_INFO_STATUS_CODES.has(acplResponse.statusCode)) {
                        eventData.event.type = 'info';
                      }

                      eventData.event.error_code = acplResponse.statusCode;
                    } else {
                      eventData.event.error_code = response.status;
                    }

                    eventData.event.error_desc = response.statusText;
                  }

                  if (!(additionalParams && additionalParams.noLogOn404 && response.status === constants_1.HTTP_STATUS_NOT_FOUND)) {
                    this.logAnalyticsEvent(eventData);
                  }

                  resolve(response);
                  return [3
                  /*break*/
                  , 18];

                case 14:
                  errorResponse_1 = _b.sent();
                  duration = Date.now() - dtsStart.getTime();
                  eventData = lodash_merge_1.default(commonMetrics, {
                    event: {
                      value: duration
                    },
                    trn: {
                      quantity: duration
                    }
                  });

                  if (errorResponse_1.statusCode) {
                    if (AcplStatusCodes_1.ACPL_INFO_STATUS_CODES.has(errorResponse_1.statusCode) || acplRequest.method === 'DELETE' && errorResponse_1.statusCode === AcplStatusCodes_1.AcplStatusCodes.ACPL_RESOURCE_NOT_FOUND) {
                      eventData.event.type = 'info';
                    }

                    eventData.event.error_code = errorResponse_1.statusCode;
                    eventData.event.error_desc = errorResponse_1.statusMessage;
                  }

                  this.logAnalyticsEvent(eventData);

                  if (!(additionalParams && additionalParams.noLogOn404 && errorResponse_1.statusCode && RequestProcessor_1.default.getWebStatusCode(errorResponse_1.statusCode) === constants_1.HTTP_STATUS_NOT_FOUND)) {
                    this.logAnalyticsEvent(eventData);
                  }

                  if (!errorResponse_1.statusCode) return [3
                  /*break*/
                  , 16];
                  return [4
                  /*yield*/
                  , requestProcessor.responseTransformAcpLocal(errorResponse_1)];

                case 15:
                  response = _b.sent();
                  resolve(response);
                  return [3
                  /*break*/
                  , 17];

                case 16:
                  reject(errorResponse_1);
                  _b.label = 17;

                case 17:
                  return [3
                  /*break*/
                  , 18];

                case 18:
                  return [2
                  /*return*/
                  ];
              }
            });
          });
        })];
      });
    });
  };
  /**
   * ACP.local-specific method to subscribe to changes in cloud assets
   */


  ACPFetch.prototype.acplSubscribeForAssetChangeNotification = function () {
    return __awaiter(this, void 0, void 0, function () {
      var notificationRequest, notificationCallback;

      var _this = this;

      return __generator(this, function (_a) {
        if (this._useACPLocal && this._onAssetChangeCallback) {
          try {
            notificationRequest = this.acplSubscribeForAssetNotification(acplocaljs.AssetChangeNotificationRequest.ALL);

            notificationCallback = function (notification) {
              _this._onAssetChange(notification);
            };

            notificationRequest.addEventListener('ACPLJSEvent', notificationCallback);
            console.info('[acp-fetch] subscribed for asset change notification');
            return [2
            /*return*/
            , Promise.resolve(true)];
          } catch (errorResponse) {
            throw new Error(errorResponse.statusMessage + " (" + errorResponse.statusCode + ")");
          }
        }

        return [2
        /*return*/
        ];
      });
    });
  };
  /**
   * ACP.local-specific method to subscribe to syncing events in cloud assets
   */


  ACPFetch.prototype.acplSubscribeForAssetSyncNotification = function () {
    return __awaiter(this, void 0, void 0, function () {
      var notificationRequest, notificationCallback;

      var _this = this;

      return __generator(this, function (_a) {
        if (this._useACPLocal && this._onAssetSyncEventCallback) {
          try {
            notificationRequest = this.acplSubscribeForAssetSyncEventNotification(acplocaljs.AssetSyncNotificationRequest.ALL);

            notificationCallback = function (syncPayload) {
              _this._onAssetSyncEvent(syncPayload);
            };

            notificationRequest.addEventListener('ACPLJSEvent', notificationCallback);
            console.info('[acp-fetch] subscribed for asset sync notification');
            return [2
            /*return*/
            , true];
          } catch (errorResponse) {
            throw new Error(errorResponse.statusMessage + " (" + errorResponse.statusCode + ")");
          }
        }

        return [2
        /*return*/
        ];
      });
    });
  };
  /**
   * ACP.local-specific method to subscribe to syncing events in cloud assets
   */


  ACPFetch.prototype.acplSubscribeForSyncProgressNotification = function () {
    return __awaiter(this, void 0, void 0, function () {
      var notificationRequest, notificationCallback;

      var _this = this;

      return __generator(this, function (_a) {
        if (this._useACPLocal && this._onSyncProgressEventCallback) {
          try {
            notificationRequest = this.acplSubscribeForSyncProgressEventNotification(acplocaljs.SyncProgressNotificationRequest.ALL);

            notificationCallback = function (syncPayload) {
              _this._onSyncProgressEvent(syncPayload);
            };

            notificationRequest.addEventListener('ACPLJSEvent', notificationCallback);
            console.info('[acp-fetch] subscribed for sync progress notification');
            return [2
            /*return*/
            , true];
          } catch (errorResponse) {
            throw new Error(errorResponse.statusMessage + " (" + errorResponse.statusCode + ")");
          }
        }

        return [2
        /*return*/
        ];
      });
    });
  };
  /**
   * ACP.local-specific method to subscribe to SYNCWORKING status
   */


  ACPFetch.prototype.acplSubscribeForCoreSyncWorkingNotification = function () {
    return __awaiter(this, void 0, void 0, function () {
      var notificationRequest, notificationCallback;

      var _this = this;

      return __generator(this, function (_a) {
        if (this.usingACPLocal && this._onNotificationStatusChangeCallback) {
          try {
            notificationRequest = this.acplSubscribeForNotification(acplocaljs.NotificationRequest.SYNCWORKING);

            notificationCallback = function () {
              _this._onNotificationStatusChange(NotificationStatus_1.NotificationType.coreSync, NotificationStatus_1.NotificationStatus.CORESYNC_REACHABLE_AND_COMPATIBLE);
            };

            notificationRequest.addEventListener('ACPLJSEvent', notificationCallback);
            console.info('[acp-fetch] Subscribed to SYNCWORKING');
            return [2
            /*return*/
            , true];
          } catch (errorResponse) {
            console.error('[acp-fetch] Failed to subscribe to SYNCWORKING', errorResponse);
            throw new Error(errorResponse.statusMessage + " (" + errorResponse.statusCode + ")");
          }
        }

        return [2
        /*return*/
        ];
      });
    });
  };
  /**
   * ACP.local-specific method to subscribe to SYNCDOWN status
   */


  ACPFetch.prototype.acplSubscribeForCoreSyncDownNotification = function () {
    return __awaiter(this, void 0, void 0, function () {
      var notificationRequest, notificationCallback;

      var _this = this;

      return __generator(this, function (_a) {
        if (this.usingACPLocal && this._onNotificationStatusChangeCallback) {
          try {
            notificationRequest = this.acplSubscribeForNotification(acplocaljs.NotificationRequest.SYNCDOWN);

            notificationCallback = function () {
              _this._onNotificationStatusChange(NotificationStatus_1.NotificationType.coreSync, NotificationStatus_1.NotificationStatus.CORESYNC_NOT_REACHABLE);
            };

            notificationRequest.addEventListener('ACPLJSEvent', notificationCallback);
            console.info('[acp-fetch] Subscribed to SYNCDOWN');
            return [2
            /*return*/
            , true];
          } catch (errorResponse) {
            console.error('[acp-fetch] Failed to subscribe to SYNCDOWN', errorResponse);
            throw new Error(errorResponse.statusMessage + " (" + errorResponse.statusCode + ")");
          }
        }

        return [2
        /*return*/
        ];
      });
    });
  };
  /**
   * ACP.local-specific method to subscribe to changes in network status
   */


  ACPFetch.prototype.acplSubscribeForNetworkStatusNotification = function () {
    return __awaiter(this, void 0, void 0, function () {
      var notificationRequest, response, errorResponse_2, notificationCallback, errorResponse_3;

      var _this = this;

      return __generator(this, function (_a) {
        switch (_a.label) {
          case 0:
            if (!(this._useACPLocal && this._onNotificationStatusChangeCallback)) return [3
            /*break*/
            , 7];
            _a.label = 1;

          case 1:
            _a.trys.push([1, 6,, 7]);

            notificationRequest = this.acplSubscribeForNotification(acplocaljs.NotificationRequest.NETWORKSTATUS);
            _a.label = 2;

          case 2:
            _a.trys.push([2, 4,, 5]);

            return [4
            /*yield*/
            , notificationRequest.promise];

          case 3:
            response = _a.sent();
            console.info('[acp-fetch] ACPL client subscribed for network status events. ', response.element.networkStatus);

            if (response.element.networkStatus === acplocaljs.NetworkStatusNotification.NoInternetAccess) {
              this._onNotificationStatusChange(NotificationStatus_1.NotificationType.network, NotificationStatus_1.NotificationStatus.NO_INTERNET_ACCESS);
            } else {
              this._onNotificationStatusChange(NotificationStatus_1.NotificationType.network, NotificationStatus_1.NotificationStatus.HAS_INTERNET_ACCESS);
            }

            return [3
            /*break*/
            , 5];

          case 4:
            errorResponse_2 = _a.sent();
            return [2
            /*return*/
            , Promise.reject(new Error(errorResponse_2.statusMessage + " (" + errorResponse_2.statusCode + ")"))];

          case 5:
            notificationCallback = function (notification) {
              console.info('[acp-fetch] network status change ', notification.networkStatus);

              if (notification.networkStatus === acplocaljs.NetworkStatusNotification.NoInternetAccess) {
                _this._onNotificationStatusChange(NotificationStatus_1.NotificationType.network, NotificationStatus_1.NotificationStatus.NO_INTERNET_ACCESS);
              } else {
                _this._onNotificationStatusChange(NotificationStatus_1.NotificationType.network, NotificationStatus_1.NotificationStatus.HAS_INTERNET_ACCESS);
              }
            };

            notificationRequest.addEventListener('ACPLJSEvent', notificationCallback);
            return [2
            /*return*/
            , Promise.resolve(true)];

          case 6:
            errorResponse_3 = _a.sent();
            console.error('[acp-fetch] Failed to subscribe network status', errorResponse_3);
            throw new Error(errorResponse_3.statusMessage + " (" + errorResponse_3.statusCode + ")");

          case 7:
            return [2
            /*return*/
            ];
        }
      });
    });
  };
  /**
   * ACP.local-specific method to subscribe to changes in quota status
   */


  ACPFetch.prototype.acplSubscribeForQuotaStatusNotification = function () {
    return __awaiter(this, void 0, void 0, function () {
      var notificationRequest, errorResponse_4, notificationCallback, errorResponse_5;

      var _this = this;

      return __generator(this, function (_a) {
        switch (_a.label) {
          case 0:
            if (!(this._useACPLocal && this._onNotificationStatusChangeCallback)) return [3
            /*break*/
            , 7];
            _a.label = 1;

          case 1:
            _a.trys.push([1, 6,, 7]);

            notificationRequest = this.acplSubscribeForNotification(acplocaljs.NotificationRequest.QUOTAEXCEEDED);
            _a.label = 2;

          case 2:
            _a.trys.push([2, 4,, 5]); // Unlike network notification, ACPL doesn't include quota status as part of the response.


            return [4
            /*yield*/
            , notificationRequest.promise];

          case 3:
            // Unlike network notification, ACPL doesn't include quota status as part of the response.
            _a.sent();

            console.info('[acp-fetch] ACPL client subscribed for quota status events.');
            return [3
            /*break*/
            , 5];

          case 4:
            errorResponse_4 = _a.sent();
            return [2
            /*return*/
            , Promise.reject(new Error(errorResponse_4.statusMessage + " (" + errorResponse_4.statusCode + ")"))];

          case 5:
            notificationCallback = function (notification) {
              // TODO: Check notification for QUOTA_EXCEEDED or QUOTA_BACK_TO_AVAILABLE.
              _this._onNotificationStatusChange(NotificationStatus_1.NotificationType.quota, NotificationStatus_1.NotificationStatus.QUOTA_EXCEEDED);
            };

            notificationRequest.addEventListener('ACPLJSEvent', notificationCallback);
            return [2
            /*return*/
            , Promise.resolve(true)];

          case 6:
            errorResponse_5 = _a.sent();
            return [2
            /*return*/
            , Promise.reject(new Error(errorResponse_5.statusMessage + " (" + errorResponse_5.statusCode + ")"))];

          case 7:
            return [2
            /*return*/
            ];
        }
      });
    });
  };
  /**
   * Subscribe to events triggered by users being registered with ACPL.
   */


  ACPFetch.prototype.acplSubscribeForUserRegisteredNotification = function () {
    return __awaiter(this, void 0, void 0, function () {
      var notificationRequest, response, errorResponse_6, notificationCallback, errorResponse_7;

      var _this = this;

      return __generator(this, function (_a) {
        switch (_a.label) {
          case 0:
            if (!(this._useACPLocal && this._onNotificationStatusChangeCallback)) return [3
            /*break*/
            , 7];
            _a.label = 1;

          case 1:
            _a.trys.push([1, 6,, 7]);

            notificationRequest = this.acplSubscribeForNotification(acplocaljs.NotificationRequest.USER_REGISTERED_FOR_SYNC);
            _a.label = 2;

          case 2:
            _a.trys.push([2, 4,, 5]);

            return [4
            /*yield*/
            , notificationRequest.promise];

          case 3:
            response = _a.sent();
            console.info('[acp-fetch] ACPL client subscribed for user-register events.');
            return [3
            /*break*/
            , 5];

          case 4:
            errorResponse_6 = _a.sent();
            return [2
            /*return*/
            , Promise.reject(new Error(errorResponse_6.statusMessage + " (" + errorResponse_6.statusCode + ")"))];

          case 5:
            notificationCallback = function () {
              _this._onLoggedIn();
            };

            notificationRequest.addEventListener('ACPLJSEvent', notificationCallback);
            return [2
            /*return*/
            , true];

          case 6:
            errorResponse_7 = _a.sent();
            console.error('[acp-fetch] Failed to subscribe to ACPL user registration status', errorResponse_7);
            throw new Error(errorResponse_7.statusMessage + " (" + errorResponse_7.statusCode + ")");

          case 7:
            return [2
            /*return*/
            ];
        }
      });
    });
  };
  /**
   * Subscribe to events triggered by users being de-registered from ACPL.
   */


  ACPFetch.prototype.acplSubscribeForUserNotRegisteredNotification = function () {
    return __awaiter(this, void 0, void 0, function () {
      var notificationRequest, response, errorResponse_8, notificationCallback, errorResponse_9;

      var _this = this;

      return __generator(this, function (_a) {
        switch (_a.label) {
          case 0:
            if (!(this._useACPLocal && this._onNotificationStatusChangeCallback)) return [3
            /*break*/
            , 7];
            _a.label = 1;

          case 1:
            _a.trys.push([1, 6,, 7]);

            notificationRequest = this.acplSubscribeForNotification(acplocaljs.NotificationRequest.USER_NOT_REGISTERED_FOR_SYNC);
            _a.label = 2;

          case 2:
            _a.trys.push([2, 4,, 5]);

            return [4
            /*yield*/
            , notificationRequest.promise];

          case 3:
            response = _a.sent();
            console.info('[acp-fetch] ACPL client subscribed for user de-register events.');
            return [3
            /*break*/
            , 5];

          case 4:
            errorResponse_8 = _a.sent();
            return [2
            /*return*/
            , Promise.reject(new Error(errorResponse_8.statusMessage + " (" + errorResponse_8.statusCode + ")"))];

          case 5:
            notificationCallback = function (notification) {
              _this._onNotificationStatusChange(NotificationStatus_1.NotificationType.authentication, NotificationStatus_1.NotificationStatus.ACPL_USER_NOT_REGISTERED);
            };

            notificationRequest.addEventListener('ACPLJSEvent', notificationCallback);
            return [2
            /*return*/
            , true];

          case 6:
            errorResponse_9 = _a.sent();
            console.error('[acp-fetch] Failed to subscribe to user not registered status', errorResponse_9);
            throw new Error(errorResponse_9.statusMessage + " (" + errorResponse_9.statusCode + ")");

          case 7:
            return [2
            /*return*/
            ];
        }
      });
    });
  };
  /**
   * ACP.local-specific method to ping CoreSync system status
   */


  ACPFetch.prototype.acplCoreSyncPing = function () {
    return __awaiter(this, void 0, void 0, function () {
      var coreSyncPingUri, context, request, response, status_2, errorResponse_10;
      return __generator(this, function (_a) {
        switch (_a.label) {
          case 0:
            coreSyncPingUri = new acplocaljs.Uri(constants_1.ACPL_SYSTEM_URI);
            context = new acplocaljs.Context(coreSyncPingUri);
            context.setHeader('x-acpl-cloud-id', this.cloudId);
            if (!this._useACPLocal) return [3
            /*break*/
            , 4];
            request = this._acplClient.getElement(coreSyncPingUri, context);
            _a.label = 1;

          case 1:
            _a.trys.push([1, 3,, 4]);

            return [4
            /*yield*/
            , request.promise];

          case 2:
            response = _a.sent();
            this._acplSDKVersion = response.element.acplSDKVersion;
            this._acplAvailableCoreSyncVersion = response.element.availableCoreSyncVersion;
            this._acplMinimumCoreSyncVersion = response.element.minimumSupportedCoreSyncVersion;
            console.info("[acp-fetch] ACPL SDK Version: " + this._acplSDKVersion);
            console.info("[acp-fetch] Available CoreSync Version: " + this._acplAvailableCoreSyncVersion);
            console.info("[acp-fetch] Minimum Required CoreSync Version: " + this._acplMinimumCoreSyncVersion);

            if (response.element.status === acplocaljs.SystemStatusResult.CORESYNC_REACHABLE_NOT_COMPATIBLE) {
              console.warn('[acp-fetch] CoreSync Status: NOT COMPATIBLE');
              status_2 = NotificationStatus_1.NotificationStatus.CORESYNC_REACHABLE_NOT_COMPATIBLE;
            } else if (response.element.status === acplocaljs.SystemStatusResult.CORESYNC_NOT_REACHABLE) {
              console.warn('[acp-fetch] CoreSync Status: NOT RUNNING');
              status_2 = NotificationStatus_1.NotificationStatus.CORESYNC_NOT_REACHABLE;
            } else {
              status_2 = NotificationStatus_1.NotificationStatus.CORESYNC_REACHABLE_AND_COMPATIBLE;
            }

            this._onNotificationStatusChange(NotificationStatus_1.NotificationType.coreSync, status_2);

            return [2
            /*return*/
            , status_2];

          case 3:
            errorResponse_10 = _a.sent();
            throw new Error("[acp-fetch] Unsuccessful coreSync Ping - Status code: " + errorResponse_10.statusCode + "} Status Message: " + errorResponse_10.statusMessage);

          case 4:
            return [2
            /*return*/
            ];
        }
      });
    });
  };
  /**
   * ACP.local-specific method to get storage metadata
   */


  ACPFetch.prototype.acplGetStorageMetadata = function () {
    return __awaiter(this, void 0, void 0, function () {
      var storageMetadataUri, context, request, response, errorResponse_11, errMsg;
      return __generator(this, function (_a) {
        switch (_a.label) {
          case 0:
            if (!this._useACPLocal) return [3
            /*break*/
            , 4];
            storageMetadataUri = new acplocaljs.Uri(constants_1.ACPL_STORAGE_METADATA_URI);
            context = new acplocaljs.Context(storageMetadataUri);
            context.setHeader('x-acpl-user-id', this.userId);
            context.setHeader('x-acpl-cloud-id', this.cloudId);
            request = this._acplClient.getElement(storageMetadataUri, context);
            _a.label = 1;

          case 1:
            _a.trys.push([1, 3,, 4]);

            return [4
            /*yield*/
            , request.promise];

          case 2:
            response = _a.sent();
            return [2
            /*return*/
            , response.element];

          case 3:
            errorResponse_11 = _a.sent();
            errMsg = "[acp-fetch] acplGetStorageMetadata failed " + stringify_props_1.Stringify.stringify(errorResponse_11);
            throw new Error(errMsg);

          case 4:
            return [2
            /*return*/
            ];
        }
      });
    });
  };
  /**
   * ACP.local-specific method to get storage metadata status
   */


  ACPFetch.prototype.acplGetStorageMetadataStatus = function () {
    return __awaiter(this, void 0, void 0, function () {
      var storage, percentFactor, quotaPercent, quotaStatus;
      return __generator(this, function (_a) {
        switch (_a.label) {
          case 0:
            return [4
            /*yield*/
            , this.acplGetStorageMetadata()];

          case 1:
            storage = _a.sent();
            percentFactor = 100;
            quotaPercent = storage.usedCloudQuota / storage.maxCloudQuota * percentFactor;
            console.info("[acp-fetch] User Cache Size: " + storage.userCacheSize);
            console.info("[acp-fetch] Application Cache Size: " + storage.applicationCacheSize);
            console.info("[acp-fetch] Cloud Quota: " + quotaPercent.toFixed(1) + "% - " + storage.usedCloudQuota + " / " + storage.maxCloudQuota);
            quotaStatus = NotificationStatus_1.NotificationStatus.QUOTA_AVAILABLE;

            if (storage.maxCloudQuota === 0) {
              quotaStatus = NotificationStatus_1.NotificationStatus.CLOUD_STORAGE_DISABLED;
            } else if (storage.usedCloudQuota > storage.maxCloudQuota) {
              quotaStatus = NotificationStatus_1.NotificationStatus.QUOTA_EXCEEDED;
            }

            this._onNotificationStatusChange(NotificationStatus_1.NotificationType.quota, quotaStatus);

            return [2
            /*return*/
            , true];
        }
      });
    });
  };
  /**
   * ACP.local-specific method to register for notifications.
   *
   * @param  notificationType specifies the type of notification
   * @return notification request which resolved for the JSON representing the result of the subscription
   * @example <caption>Subscribe for network notifications</caption>
   * let request = ACPLocal.instance.subscribeForNotification(acplocaljs.NotificationRequest.NETWORKSTATUS).promise.then(response => { ... });
   * let callback = (notification) => { ... };
   * request.addEventListener("ACPLJSEvent", callback);
   */


  ACPFetch.prototype.acplSubscribeForNotification = function (notificationType) {
    if (!this._useACPLocal) {
      throw new Error('acplSubscribeForNotification - ACP.local not available');
    } // make sure we have a valid client


    if (!this._acplClient) {
      this._createACPLClient();

      if (!this._acplClient) {
        throw new Error('acplSubscribeForNotification -- Unable to create ACPL client');
      }
    }

    var notificationUri = new acplocaljs.Uri(ACPL_SUBSCRIPTION_URL);
    var notificationRequest = new acplocaljs.NotificationRequest(notificationType);
    var context = new acplocaljs.Context(notificationUri);
    context.setHeader('x-acpl-user-id', this.userId);
    context.setHeader('x-acpl-cloud-id', this.cloudId);
    return this._acplClient.subscribeForNotification(notificationUri, notificationRequest, context);
  };
  /**
   * ACP.local-specific method to register for asset notifications.
   *
   * @param  notificationType specifies the type of notification
   * @return notification request which resolved for the JSON representing the result of the subscription
   */


  ACPFetch.prototype.acplSubscribeForAssetNotification = function (operation) {
    if (!this._useACPLocal) {
      throw new Error('acplSubscribeForAssetChangeNotification -- ACP.local not available');
    } // make sure we have a valid client


    if (!this._acplClient) {
      this._createACPLClient();

      if (!this._acplClient) {
        throw new Error('acplSubscribeForAssetChangeNotification -- Unable to create ACPL client');
      }
    }

    var notificationUri = new acplocaljs.Uri(ACPL_SUBSCRIPTION_URL);
    var context = new acplocaljs.Context(notificationUri);
    var assetChangeRequest = new acplocaljs.AssetChangeNotificationRequest();
    assetChangeRequest.local = operation;
    assetChangeRequest.cloud = operation;
    context.setHeader('x-acpl-user-id', this.userId);
    context.setHeader('x-acpl-cloud-id', this.cloudId);
    return this._acplClient.subscribeForNotification(notificationUri, assetChangeRequest, context);
  };
  /**
   * ACP.local-specific method to register for asset sync notifications. A notification
   * will be created
   *
   * @param operation
   */


  ACPFetch.prototype.acplSubscribeForAssetSyncEventNotification = function (operation) {
    if (!this._useACPLocal) {
      throw new Error('acplSubscribeForAssetSyncNotification -- ACP.local not available');
    } // make sure we have a valid client


    if (!this._acplClient) {
      this._createACPLClient();

      if (!this._acplClient) {
        throw new Error('acplSubscribeForAssetSyncNotification -- Unable to create ACPL client');
      }
    }

    var notificationUri = new acplocaljs.Uri(ACPL_SUBSCRIPTION_URL);
    var context = new acplocaljs.Context(notificationUri);
    var assetSyncNotification = new acplocaljs.AssetSyncNotificationRequest(NotificationStatus_1.NotificationType.coreSync);
    assetSyncNotification.syncStart = operation;
    assetSyncNotification.syncEnd = operation;
    context.setHeader('x-acpl-user-id', this.userId);
    context.setHeader('x-acpl-cloud-id', this.cloudId);
    return this._acplClient.subscribeForNotification(notificationUri, assetSyncNotification, context);
  };
  /**
   * ACP.local-specific method to regsiter for sync progress notifications
   *
   * @param operation
   */


  ACPFetch.prototype.acplSubscribeForSyncProgressEventNotification = function (operation) {
    if (!this._useACPLocal) {
      throw new Error('acplSubscribeForSyncProgressEventNotification -- ACP.local not available');
    } // make sure we have a valid client


    if (!this._acplClient) {
      this._createACPLClient();

      if (!this._acplClient) {
        throw new Error('acplSubscribeForSyncProgressEventNotification -- Unable to create ACPL client');
      }
    }

    var notificationUri = new acplocaljs.Uri(ACPL_SUBSCRIPTION_URL);
    var context = new acplocaljs.Context(notificationUri);
    var syncProgressNotification = new acplocaljs.SyncProgressNotificationRequest(NotificationStatus_1.NotificationType.coreSync);
    syncProgressNotification.progressEvent = operation;
    context.setHeader('x-acpl-user-id', this.userId);
    context.setHeader('x-acpl-cloud-id', this.cloudId);
    return this._acplClient.subscribeForNotification(notificationUri, syncProgressNotification, context);
  };
  /**
   * Compares ACPL Uri Strings. Useful for checking whether two stable URIs refer to the same doc
   * @param lhs
   * @param rhs
   */


  ACPFetch.prototype.acplCompareUriStrings = function (lhs, rhs) {
    if (!lhs) {
      return false;
    }

    var lhsUri = new acplocaljs.Uri(lhs);
    return lhsUri.compareUriString(rhs);
  };

  return ACPFetch;
}();

exports.default = ACPFetch;
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("yLpj")))

/***/ }),

/***/ "yXOX":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("uB7f"),
      24: __webpack_require__("su7t")
    }
  }));
};

WrappedIcon.displayName = 'CCLibrary';
exports.default = WrappedIcon;

/***/ }),

/***/ "ycFn":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var _interopRequireDefault = __webpack_require__("TqRt");

exports.__esModule = true;
exports.default = addClass;

var _hasClass = _interopRequireDefault(__webpack_require__("yD6e"));

function addClass(element, className) {
  if (element.classList) element.classList.add(className);else if (!(0, _hasClass.default)(element, className)) if (typeof element.className === 'string') element.className = element.className + ' ' + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + ' ' + className);
}

module.exports = exports["default"];

/***/ }),

/***/ "ycmj":
/***/ (function(module, exports) {

module.exports = function cmp(a, b) {
  var pa = a.split('.');
  var pb = b.split('.');

  for (var i = 0; i < 3; i++) {
    var na = Number(pa[i]);
    var nb = Number(pb[i]);
    if (na > nb) return 1;
    if (nb > na) return -1;
    if (!isNaN(na) && isNaN(nb)) return 1;
    if (isNaN(na) && !isNaN(nb)) return -1;
  }

  return 0;
};

/***/ }),

/***/ "ye5n":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _react_react_spectrum_Icon_Delete__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("5/H/");
/* harmony import */ var _react_react_spectrum_Icon_Delete__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_react_react_spectrum_Icon_Delete__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _components_ListDialog__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("OJK8");
/* harmony import */ var _packages_CDOView_utils_action__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("duTG");
/* harmony import */ var _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("mm/P");
/* harmony import */ var _beforeOp__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("Ku5u");
/* harmony import */ var _hosts_Host__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("Dy/p");







const archiveAction = ({ archive, app, showWarning, isVisible, }) => new _packages_CDOView_utils_action__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"]({
    value: 'archive',
    label: 'button.delete',
    icon: react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_react_react_spectrum_Icon_Delete__WEBPACK_IMPORTED_MODULE_1___default.a, null),
    supportsMultiple: true,
    getDisabledTooltipMsgId: () => 'tooltip.offline.general',
    execute: async (elements, onArchiveAfter) => {
        const { intl, currentProject } = app;
        const workflow = elements.every(element => element.isProject) && _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_4__[/* Workflow */ "f"].DeleteProject;
        const ui = app.projectList.uiConfig.cdoUISettings;
        if (workflow) {
            Object(_utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_4__[/* trackForEach */ "j"])(elements, project => ({
                ..._utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_4__[/* default */ "g"].scaffoldEvent(_utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_4__[/* Subcategory */ "c"].ProjectMenu, _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_4__[/* Subtype */ "d"].deleteProject, _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_4__[/* Type */ "e"].click, workflow),
                content: {
                    id: project.id,
                    name: project.name,
                    type: project.type,
                },
                ui,
            }));
        }
        const archiveAct = async () => {
            // Filter out documents that are being opened in-app.
            const filteredElements = await Object(_beforeOp__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"])(elements, app, _hosts_Host__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"].onBeforeDelete, _hosts_Host__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"].getOpenCloudDocuments);
            if (filteredElements.length) {
                return archive(filteredElements, currentProject, onArchiveAfter);
            }
        };
        if (showWarning) {
            return new Promise((resolve, reject) => {
                var _a;
                const type = ((_a = elements[0]) === null || _a === void 0 ? void 0 : _a.isProject) ? 'spaces' : '';
                app.projectsClient.showModal(react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_ListDialog__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"], { cancelLabel: intl.formatMessage({ id: 'button.cancel' }), confirmLabel: intl.formatMessage({ id: 'button.delete' }), groups: [
                        {
                            header: intl.formatMessage({ id: 'dialog.deleteWarning.description' }, { count: elements.length, type }),
                            list: elements.length > 0
                                ? elements.map(element => element.displayName)
                                : [],
                        },
                    ], title: intl.formatMessage({
                        id: 'dialog.deleteWarning.title',
                    }, {
                        count: elements.length,
                        type,
                    }), variant: "destructive", onCancel: () => {
                        if (workflow) {
                            Object(_utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_4__[/* trackForEach */ "j"])(elements, project => ({
                                ..._utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_4__[/* default */ "g"].scaffoldEvent(_utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_4__[/* Subcategory */ "c"].Confirmation, _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_4__[/* Subtype */ "d"].cancel, _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_4__[/* Type */ "e"].click, workflow),
                                content: {
                                    id: project.id,
                                    name: project.name,
                                    type: project.type,
                                },
                                ui,
                            }));
                        }
                        reject();
                    }, onConfirm: () => {
                        if (workflow) {
                            Object(_utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_4__[/* trackForEach */ "j"])(elements, project => ({
                                ..._utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_4__[/* default */ "g"].scaffoldEvent(_utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_4__[/* Subcategory */ "c"].Confirmation, _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_4__[/* Subtype */ "d"].delete, _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_4__[/* Type */ "e"].click, workflow),
                                content: {
                                    id: project.id,
                                    name: project.name,
                                    type: project.type,
                                },
                                ui,
                            }));
                        }
                        resolve(archiveAct());
                    } }));
                if (workflow) {
                    Object(_utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_4__[/* trackForEach */ "j"])(elements, project => ({
                        ..._utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_4__[/* default */ "g"].scaffoldEvent(_utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_4__[/* Subcategory */ "c"].Confirmation, _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_4__[/* Subtype */ "d"].confirmationDialog, _utils_ProjectAnalytics__WEBPACK_IMPORTED_MODULE_4__[/* Type */ "e"].render, workflow),
                        content: {
                            id: project.id,
                            name: project.name,
                            type: project.type,
                        },
                        ui,
                    }));
                }
            });
        }
        else {
            return archiveAct();
        }
    },
    isVisible: isVisible,
    getIsButtonDisabled: () => app.showOfflineWithFeatureFlag,
});
/* harmony default export */ __webpack_exports__["a"] = (archiveAction);


/***/ }),

/***/ "yhrW":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("4e1N"),
      24: __webpack_require__("9O11")
    }
  }));
};

WrappedIcon.displayName = 'OpenIn';
exports.default = WrappedIcon;

/***/ }),

/***/ "yiVd":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("path", {
  d: "M14 30V14H4a2 2 0 0 0-2 2v26a2 2 0 0 0 2 2h26a2 2 0 0 0 2-2V32H16a2 2 0 0 1-2-2z"
}), React.createElement("rect", {
  height: "4",
  rx: "1",
  ry: "1",
  width: "4",
  x: "18",
  y: "24"
}), React.createElement("rect", {
  height: "4",
  rx: "1",
  ry: "1",
  width: "4",
  x: "26",
  y: "24"
}), React.createElement("rect", {
  height: "4",
  rx: "1",
  ry: "1",
  width: "4",
  x: "34",
  y: "24"
}), React.createElement("rect", {
  height: "4",
  rx: "1",
  ry: "1",
  width: "4",
  x: "42",
  y: "24"
}), React.createElement("rect", {
  height: "4",
  rx: "1",
  ry: "1",
  width: "4",
  x: "42",
  y: "16"
}), React.createElement("rect", {
  height: "4",
  rx: "1",
  ry: "1",
  width: "4",
  x: "42",
  y: "8"
}), React.createElement("rect", {
  height: "4",
  rx: "1",
  ry: "1",
  width: "4",
  x: "42"
}), React.createElement("rect", {
  height: "4",
  rx: "1",
  ry: "1",
  width: "4",
  x: "34"
}), React.createElement("rect", {
  height: "4",
  rx: "1",
  ry: "1",
  width: "4",
  x: "26"
}), React.createElement("rect", {
  height: "4",
  rx: "1",
  ry: "1",
  width: "4",
  x: "18"
}), React.createElement("rect", {
  height: "4",
  rx: "1",
  ry: "1",
  width: "4",
  x: "18",
  y: "8"
}), React.createElement("rect", {
  height: "4",
  rx: "1",
  ry: "1",
  width: "4",
  x: "18",
  y: "16"
}));

/***/ }),

/***/ "yl30":
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/** @license React v16.14.0
 * react-dom.production.min.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.
 */

/*
 Modernizr 3.0.0pre (Custom Build) | MIT
*/


var aa = __webpack_require__("q1tI"),
    n = __webpack_require__("MgzW"),
    r = __webpack_require__("QCnb");

function u(a) {
  for (var b = "https://reactjs.org/docs/error-decoder.html?invariant=" + a, c = 1; c < arguments.length; c++) b += "&args[]=" + encodeURIComponent(arguments[c]);

  return "Minified React error #" + a + "; visit " + b + " for the full message or use the non-minified dev environment for full errors and additional helpful warnings.";
}

if (!aa) throw Error(u(227));

function ba(a, b, c, d, e, f, g, h, k) {
  var l = Array.prototype.slice.call(arguments, 3);

  try {
    b.apply(c, l);
  } catch (m) {
    this.onError(m);
  }
}

var da = !1,
    ea = null,
    fa = !1,
    ha = null,
    ia = {
  onError: function (a) {
    da = !0;
    ea = a;
  }
};

function ja(a, b, c, d, e, f, g, h, k) {
  da = !1;
  ea = null;
  ba.apply(ia, arguments);
}

function ka(a, b, c, d, e, f, g, h, k) {
  ja.apply(this, arguments);

  if (da) {
    if (da) {
      var l = ea;
      da = !1;
      ea = null;
    } else throw Error(u(198));

    fa || (fa = !0, ha = l);
  }
}

var la = null,
    ma = null,
    na = null;

function oa(a, b, c) {
  var d = a.type || "unknown-event";
  a.currentTarget = na(c);
  ka(d, b, void 0, a);
  a.currentTarget = null;
}

var pa = null,
    qa = {};

function ra() {
  if (pa) for (var a in qa) {
    var b = qa[a],
        c = pa.indexOf(a);
    if (!(-1 < c)) throw Error(u(96, a));

    if (!sa[c]) {
      if (!b.extractEvents) throw Error(u(97, a));
      sa[c] = b;
      c = b.eventTypes;

      for (var d in c) {
        var e = void 0;
        var f = c[d],
            g = b,
            h = d;
        if (ta.hasOwnProperty(h)) throw Error(u(99, h));
        ta[h] = f;
        var k = f.phasedRegistrationNames;

        if (k) {
          for (e in k) k.hasOwnProperty(e) && ua(k[e], g, h);

          e = !0;
        } else f.registrationName ? (ua(f.registrationName, g, h), e = !0) : e = !1;

        if (!e) throw Error(u(98, d, a));
      }
    }
  }
}

function ua(a, b, c) {
  if (va[a]) throw Error(u(100, a));
  va[a] = b;
  wa[a] = b.eventTypes[c].dependencies;
}

var sa = [],
    ta = {},
    va = {},
    wa = {};

function xa(a) {
  var b = !1,
      c;

  for (c in a) if (a.hasOwnProperty(c)) {
    var d = a[c];

    if (!qa.hasOwnProperty(c) || qa[c] !== d) {
      if (qa[c]) throw Error(u(102, c));
      qa[c] = d;
      b = !0;
    }
  }

  b && ra();
}

var ya = !("undefined" === typeof window || "undefined" === typeof window.document || "undefined" === typeof window.document.createElement),
    za = null,
    Aa = null,
    Ba = null;

function Ca(a) {
  if (a = ma(a)) {
    if ("function" !== typeof za) throw Error(u(280));
    var b = a.stateNode;
    b && (b = la(b), za(a.stateNode, a.type, b));
  }
}

function Da(a) {
  Aa ? Ba ? Ba.push(a) : Ba = [a] : Aa = a;
}

function Ea() {
  if (Aa) {
    var a = Aa,
        b = Ba;
    Ba = Aa = null;
    Ca(a);
    if (b) for (a = 0; a < b.length; a++) Ca(b[a]);
  }
}

function Fa(a, b) {
  return a(b);
}

function Ga(a, b, c, d, e) {
  return a(b, c, d, e);
}

function Ha() {}

var Ia = Fa,
    Ja = !1,
    Ka = !1;

function La() {
  if (null !== Aa || null !== Ba) Ha(), Ea();
}

function Ma(a, b, c) {
  if (Ka) return a(b, c);
  Ka = !0;

  try {
    return Ia(a, b, c);
  } finally {
    Ka = !1, La();
  }
}

var Na = /^[: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][: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\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,
    Oa = Object.prototype.hasOwnProperty,
    Pa = {},
    Qa = {};

function Ra(a) {
  if (Oa.call(Qa, a)) return !0;
  if (Oa.call(Pa, a)) return !1;
  if (Na.test(a)) return Qa[a] = !0;
  Pa[a] = !0;
  return !1;
}

function Sa(a, b, c, d) {
  if (null !== c && 0 === c.type) return !1;

  switch (typeof b) {
    case "function":
    case "symbol":
      return !0;

    case "boolean":
      if (d) return !1;
      if (null !== c) return !c.acceptsBooleans;
      a = a.toLowerCase().slice(0, 5);
      return "data-" !== a && "aria-" !== a;

    default:
      return !1;
  }
}

function Ta(a, b, c, d) {
  if (null === b || "undefined" === typeof b || Sa(a, b, c, d)) return !0;
  if (d) return !1;
  if (null !== c) switch (c.type) {
    case 3:
      return !b;

    case 4:
      return !1 === b;

    case 5:
      return isNaN(b);

    case 6:
      return isNaN(b) || 1 > b;
  }
  return !1;
}

function v(a, b, c, d, e, f) {
  this.acceptsBooleans = 2 === b || 3 === b || 4 === b;
  this.attributeName = d;
  this.attributeNamespace = e;
  this.mustUseProperty = c;
  this.propertyName = a;
  this.type = b;
  this.sanitizeURL = f;
}

var C = {};
"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function (a) {
  C[a] = new v(a, 0, !1, a, null, !1);
});
[["acceptCharset", "accept-charset"], ["className", "class"], ["htmlFor", "for"], ["httpEquiv", "http-equiv"]].forEach(function (a) {
  var b = a[0];
  C[b] = new v(b, 1, !1, a[1], null, !1);
});
["contentEditable", "draggable", "spellCheck", "value"].forEach(function (a) {
  C[a] = new v(a, 2, !1, a.toLowerCase(), null, !1);
});
["autoReverse", "externalResourcesRequired", "focusable", "preserveAlpha"].forEach(function (a) {
  C[a] = new v(a, 2, !1, a, null, !1);
});
"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function (a) {
  C[a] = new v(a, 3, !1, a.toLowerCase(), null, !1);
});
["checked", "multiple", "muted", "selected"].forEach(function (a) {
  C[a] = new v(a, 3, !0, a, null, !1);
});
["capture", "download"].forEach(function (a) {
  C[a] = new v(a, 4, !1, a, null, !1);
});
["cols", "rows", "size", "span"].forEach(function (a) {
  C[a] = new v(a, 6, !1, a, null, !1);
});
["rowSpan", "start"].forEach(function (a) {
  C[a] = new v(a, 5, !1, a.toLowerCase(), null, !1);
});
var Ua = /[\-:]([a-z])/g;

function Va(a) {
  return a[1].toUpperCase();
}

"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function (a) {
  var b = a.replace(Ua, Va);
  C[b] = new v(b, 1, !1, a, null, !1);
});
"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function (a) {
  var b = a.replace(Ua, Va);
  C[b] = new v(b, 1, !1, a, "http://www.w3.org/1999/xlink", !1);
});
["xml:base", "xml:lang", "xml:space"].forEach(function (a) {
  var b = a.replace(Ua, Va);
  C[b] = new v(b, 1, !1, a, "http://www.w3.org/XML/1998/namespace", !1);
});
["tabIndex", "crossOrigin"].forEach(function (a) {
  C[a] = new v(a, 1, !1, a.toLowerCase(), null, !1);
});
C.xlinkHref = new v("xlinkHref", 1, !1, "xlink:href", "http://www.w3.org/1999/xlink", !0);
["src", "href", "action", "formAction"].forEach(function (a) {
  C[a] = new v(a, 1, !1, a.toLowerCase(), null, !0);
});
var Wa = aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
Wa.hasOwnProperty("ReactCurrentDispatcher") || (Wa.ReactCurrentDispatcher = {
  current: null
});
Wa.hasOwnProperty("ReactCurrentBatchConfig") || (Wa.ReactCurrentBatchConfig = {
  suspense: null
});

function Xa(a, b, c, d) {
  var e = C.hasOwnProperty(b) ? C[b] : null;
  var f = null !== e ? 0 === e.type : d ? !1 : !(2 < b.length) || "o" !== b[0] && "O" !== b[0] || "n" !== b[1] && "N" !== b[1] ? !1 : !0;
  f || (Ta(b, c, e, d) && (c = null), d || null === e ? Ra(b) && (null === c ? a.removeAttribute(b) : a.setAttribute(b, "" + c)) : e.mustUseProperty ? a[e.propertyName] = null === c ? 3 === e.type ? !1 : "" : c : (b = e.attributeName, d = e.attributeNamespace, null === c ? a.removeAttribute(b) : (e = e.type, c = 3 === e || 4 === e && !0 === c ? "" : "" + c, d ? a.setAttributeNS(d, b, c) : a.setAttribute(b, c))));
}

var Ya = /^(.*)[\\\/]/,
    E = "function" === typeof Symbol && Symbol.for,
    Za = E ? Symbol.for("react.element") : 60103,
    $a = E ? Symbol.for("react.portal") : 60106,
    ab = E ? Symbol.for("react.fragment") : 60107,
    bb = E ? Symbol.for("react.strict_mode") : 60108,
    cb = E ? Symbol.for("react.profiler") : 60114,
    db = E ? Symbol.for("react.provider") : 60109,
    eb = E ? Symbol.for("react.context") : 60110,
    fb = E ? Symbol.for("react.concurrent_mode") : 60111,
    gb = E ? Symbol.for("react.forward_ref") : 60112,
    hb = E ? Symbol.for("react.suspense") : 60113,
    ib = E ? Symbol.for("react.suspense_list") : 60120,
    jb = E ? Symbol.for("react.memo") : 60115,
    kb = E ? Symbol.for("react.lazy") : 60116,
    lb = E ? Symbol.for("react.block") : 60121,
    mb = "function" === typeof Symbol && Symbol.iterator;

function nb(a) {
  if (null === a || "object" !== typeof a) return null;
  a = mb && a[mb] || a["@@iterator"];
  return "function" === typeof a ? a : null;
}

function ob(a) {
  if (-1 === a._status) {
    a._status = 0;
    var b = a._ctor;
    b = b();
    a._result = b;
    b.then(function (b) {
      0 === a._status && (b = b.default, a._status = 1, a._result = b);
    }, function (b) {
      0 === a._status && (a._status = 2, a._result = b);
    });
  }
}

function pb(a) {
  if (null == a) return null;
  if ("function" === typeof a) return a.displayName || a.name || null;
  if ("string" === typeof a) return a;

  switch (a) {
    case ab:
      return "Fragment";

    case $a:
      return "Portal";

    case cb:
      return "Profiler";

    case bb:
      return "StrictMode";

    case hb:
      return "Suspense";

    case ib:
      return "SuspenseList";
  }

  if ("object" === typeof a) switch (a.$$typeof) {
    case eb:
      return "Context.Consumer";

    case db:
      return "Context.Provider";

    case gb:
      var b = a.render;
      b = b.displayName || b.name || "";
      return a.displayName || ("" !== b ? "ForwardRef(" + b + ")" : "ForwardRef");

    case jb:
      return pb(a.type);

    case lb:
      return pb(a.render);

    case kb:
      if (a = 1 === a._status ? a._result : null) return pb(a);
  }
  return null;
}

function qb(a) {
  var b = "";

  do {
    a: switch (a.tag) {
      case 3:
      case 4:
      case 6:
      case 7:
      case 10:
      case 9:
        var c = "";
        break a;

      default:
        var d = a._debugOwner,
            e = a._debugSource,
            f = pb(a.type);
        c = null;
        d && (c = pb(d.type));
        d = f;
        f = "";
        e ? f = " (at " + e.fileName.replace(Ya, "") + ":" + e.lineNumber + ")" : c && (f = " (created by " + c + ")");
        c = "\n    in " + (d || "Unknown") + f;
    }

    b += c;
    a = a.return;
  } while (a);

  return b;
}

function rb(a) {
  switch (typeof a) {
    case "boolean":
    case "number":
    case "object":
    case "string":
    case "undefined":
      return a;

    default:
      return "";
  }
}

function sb(a) {
  var b = a.type;
  return (a = a.nodeName) && "input" === a.toLowerCase() && ("checkbox" === b || "radio" === b);
}

function tb(a) {
  var b = sb(a) ? "checked" : "value",
      c = Object.getOwnPropertyDescriptor(a.constructor.prototype, b),
      d = "" + a[b];

  if (!a.hasOwnProperty(b) && "undefined" !== typeof c && "function" === typeof c.get && "function" === typeof c.set) {
    var e = c.get,
        f = c.set;
    Object.defineProperty(a, b, {
      configurable: !0,
      get: function () {
        return e.call(this);
      },
      set: function (a) {
        d = "" + a;
        f.call(this, a);
      }
    });
    Object.defineProperty(a, b, {
      enumerable: c.enumerable
    });
    return {
      getValue: function () {
        return d;
      },
      setValue: function (a) {
        d = "" + a;
      },
      stopTracking: function () {
        a._valueTracker = null;
        delete a[b];
      }
    };
  }
}

function xb(a) {
  a._valueTracker || (a._valueTracker = tb(a));
}

function yb(a) {
  if (!a) return !1;
  var b = a._valueTracker;
  if (!b) return !0;
  var c = b.getValue();
  var d = "";
  a && (d = sb(a) ? a.checked ? "true" : "false" : a.value);
  a = d;
  return a !== c ? (b.setValue(a), !0) : !1;
}

function zb(a, b) {
  var c = b.checked;
  return n({}, b, {
    defaultChecked: void 0,
    defaultValue: void 0,
    value: void 0,
    checked: null != c ? c : a._wrapperState.initialChecked
  });
}

function Ab(a, b) {
  var c = null == b.defaultValue ? "" : b.defaultValue,
      d = null != b.checked ? b.checked : b.defaultChecked;
  c = rb(null != b.value ? b.value : c);
  a._wrapperState = {
    initialChecked: d,
    initialValue: c,
    controlled: "checkbox" === b.type || "radio" === b.type ? null != b.checked : null != b.value
  };
}

function Bb(a, b) {
  b = b.checked;
  null != b && Xa(a, "checked", b, !1);
}

function Cb(a, b) {
  Bb(a, b);
  var c = rb(b.value),
      d = b.type;
  if (null != c) {
    if ("number" === d) {
      if (0 === c && "" === a.value || a.value != c) a.value = "" + c;
    } else a.value !== "" + c && (a.value = "" + c);
  } else if ("submit" === d || "reset" === d) {
    a.removeAttribute("value");
    return;
  }
  b.hasOwnProperty("value") ? Db(a, b.type, c) : b.hasOwnProperty("defaultValue") && Db(a, b.type, rb(b.defaultValue));
  null == b.checked && null != b.defaultChecked && (a.defaultChecked = !!b.defaultChecked);
}

function Eb(a, b, c) {
  if (b.hasOwnProperty("value") || b.hasOwnProperty("defaultValue")) {
    var d = b.type;
    if (!("submit" !== d && "reset" !== d || void 0 !== b.value && null !== b.value)) return;
    b = "" + a._wrapperState.initialValue;
    c || b === a.value || (a.value = b);
    a.defaultValue = b;
  }

  c = a.name;
  "" !== c && (a.name = "");
  a.defaultChecked = !!a._wrapperState.initialChecked;
  "" !== c && (a.name = c);
}

function Db(a, b, c) {
  if ("number" !== b || a.ownerDocument.activeElement !== a) null == c ? a.defaultValue = "" + a._wrapperState.initialValue : a.defaultValue !== "" + c && (a.defaultValue = "" + c);
}

function Fb(a) {
  var b = "";
  aa.Children.forEach(a, function (a) {
    null != a && (b += a);
  });
  return b;
}

function Gb(a, b) {
  a = n({
    children: void 0
  }, b);
  if (b = Fb(b.children)) a.children = b;
  return a;
}

function Hb(a, b, c, d) {
  a = a.options;

  if (b) {
    b = {};

    for (var e = 0; e < c.length; e++) b["$" + c[e]] = !0;

    for (c = 0; c < a.length; c++) e = b.hasOwnProperty("$" + a[c].value), a[c].selected !== e && (a[c].selected = e), e && d && (a[c].defaultSelected = !0);
  } else {
    c = "" + rb(c);
    b = null;

    for (e = 0; e < a.length; e++) {
      if (a[e].value === c) {
        a[e].selected = !0;
        d && (a[e].defaultSelected = !0);
        return;
      }

      null !== b || a[e].disabled || (b = a[e]);
    }

    null !== b && (b.selected = !0);
  }
}

function Ib(a, b) {
  if (null != b.dangerouslySetInnerHTML) throw Error(u(91));
  return n({}, b, {
    value: void 0,
    defaultValue: void 0,
    children: "" + a._wrapperState.initialValue
  });
}

function Jb(a, b) {
  var c = b.value;

  if (null == c) {
    c = b.children;
    b = b.defaultValue;

    if (null != c) {
      if (null != b) throw Error(u(92));

      if (Array.isArray(c)) {
        if (!(1 >= c.length)) throw Error(u(93));
        c = c[0];
      }

      b = c;
    }

    null == b && (b = "");
    c = b;
  }

  a._wrapperState = {
    initialValue: rb(c)
  };
}

function Kb(a, b) {
  var c = rb(b.value),
      d = rb(b.defaultValue);
  null != c && (c = "" + c, c !== a.value && (a.value = c), null == b.defaultValue && a.defaultValue !== c && (a.defaultValue = c));
  null != d && (a.defaultValue = "" + d);
}

function Lb(a) {
  var b = a.textContent;
  b === a._wrapperState.initialValue && "" !== b && null !== b && (a.value = b);
}

var Mb = {
  html: "http://www.w3.org/1999/xhtml",
  mathml: "http://www.w3.org/1998/Math/MathML",
  svg: "http://www.w3.org/2000/svg"
};

function Nb(a) {
  switch (a) {
    case "svg":
      return "http://www.w3.org/2000/svg";

    case "math":
      return "http://www.w3.org/1998/Math/MathML";

    default:
      return "http://www.w3.org/1999/xhtml";
  }
}

function Ob(a, b) {
  return null == a || "http://www.w3.org/1999/xhtml" === a ? Nb(b) : "http://www.w3.org/2000/svg" === a && "foreignObject" === b ? "http://www.w3.org/1999/xhtml" : a;
}

var Pb,
    Qb = function (a) {
  return "undefined" !== typeof MSApp && MSApp.execUnsafeLocalFunction ? function (b, c, d, e) {
    MSApp.execUnsafeLocalFunction(function () {
      return a(b, c, d, e);
    });
  } : a;
}(function (a, b) {
  if (a.namespaceURI !== Mb.svg || "innerHTML" in a) a.innerHTML = b;else {
    Pb = Pb || document.createElement("div");
    Pb.innerHTML = "<svg>" + b.valueOf().toString() + "</svg>";

    for (b = Pb.firstChild; a.firstChild;) a.removeChild(a.firstChild);

    for (; b.firstChild;) a.appendChild(b.firstChild);
  }
});

function Rb(a, b) {
  if (b) {
    var c = a.firstChild;

    if (c && c === a.lastChild && 3 === c.nodeType) {
      c.nodeValue = b;
      return;
    }
  }

  a.textContent = b;
}

function Sb(a, b) {
  var c = {};
  c[a.toLowerCase()] = b.toLowerCase();
  c["Webkit" + a] = "webkit" + b;
  c["Moz" + a] = "moz" + b;
  return c;
}

var Tb = {
  animationend: Sb("Animation", "AnimationEnd"),
  animationiteration: Sb("Animation", "AnimationIteration"),
  animationstart: Sb("Animation", "AnimationStart"),
  transitionend: Sb("Transition", "TransitionEnd")
},
    Ub = {},
    Vb = {};
ya && (Vb = document.createElement("div").style, "AnimationEvent" in window || (delete Tb.animationend.animation, delete Tb.animationiteration.animation, delete Tb.animationstart.animation), "TransitionEvent" in window || delete Tb.transitionend.transition);

function Wb(a) {
  if (Ub[a]) return Ub[a];
  if (!Tb[a]) return a;
  var b = Tb[a],
      c;

  for (c in b) if (b.hasOwnProperty(c) && c in Vb) return Ub[a] = b[c];

  return a;
}

var Xb = Wb("animationend"),
    Yb = Wb("animationiteration"),
    Zb = Wb("animationstart"),
    $b = Wb("transitionend"),
    ac = "abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),
    bc = new ("function" === typeof WeakMap ? WeakMap : Map)();

function cc(a) {
  var b = bc.get(a);
  void 0 === b && (b = new Map(), bc.set(a, b));
  return b;
}

function dc(a) {
  var b = a,
      c = a;
  if (a.alternate) for (; b.return;) b = b.return;else {
    a = b;

    do b = a, 0 !== (b.effectTag & 1026) && (c = b.return), a = b.return; while (a);
  }
  return 3 === b.tag ? c : null;
}

function ec(a) {
  if (13 === a.tag) {
    var b = a.memoizedState;
    null === b && (a = a.alternate, null !== a && (b = a.memoizedState));
    if (null !== b) return b.dehydrated;
  }

  return null;
}

function fc(a) {
  if (dc(a) !== a) throw Error(u(188));
}

function gc(a) {
  var b = a.alternate;

  if (!b) {
    b = dc(a);
    if (null === b) throw Error(u(188));
    return b !== a ? null : a;
  }

  for (var c = a, d = b;;) {
    var e = c.return;
    if (null === e) break;
    var f = e.alternate;

    if (null === f) {
      d = e.return;

      if (null !== d) {
        c = d;
        continue;
      }

      break;
    }

    if (e.child === f.child) {
      for (f = e.child; f;) {
        if (f === c) return fc(e), a;
        if (f === d) return fc(e), b;
        f = f.sibling;
      }

      throw Error(u(188));
    }

    if (c.return !== d.return) c = e, d = f;else {
      for (var g = !1, h = e.child; h;) {
        if (h === c) {
          g = !0;
          c = e;
          d = f;
          break;
        }

        if (h === d) {
          g = !0;
          d = e;
          c = f;
          break;
        }

        h = h.sibling;
      }

      if (!g) {
        for (h = f.child; h;) {
          if (h === c) {
            g = !0;
            c = f;
            d = e;
            break;
          }

          if (h === d) {
            g = !0;
            d = f;
            c = e;
            break;
          }

          h = h.sibling;
        }

        if (!g) throw Error(u(189));
      }
    }
    if (c.alternate !== d) throw Error(u(190));
  }

  if (3 !== c.tag) throw Error(u(188));
  return c.stateNode.current === c ? a : b;
}

function hc(a) {
  a = gc(a);
  if (!a) return null;

  for (var b = a;;) {
    if (5 === b.tag || 6 === b.tag) return b;
    if (b.child) b.child.return = b, b = b.child;else {
      if (b === a) break;

      for (; !b.sibling;) {
        if (!b.return || b.return === a) return null;
        b = b.return;
      }

      b.sibling.return = b.return;
      b = b.sibling;
    }
  }

  return null;
}

function ic(a, b) {
  if (null == b) throw Error(u(30));
  if (null == a) return b;

  if (Array.isArray(a)) {
    if (Array.isArray(b)) return a.push.apply(a, b), a;
    a.push(b);
    return a;
  }

  return Array.isArray(b) ? [a].concat(b) : [a, b];
}

function jc(a, b, c) {
  Array.isArray(a) ? a.forEach(b, c) : a && b.call(c, a);
}

var kc = null;

function lc(a) {
  if (a) {
    var b = a._dispatchListeners,
        c = a._dispatchInstances;
    if (Array.isArray(b)) for (var d = 0; d < b.length && !a.isPropagationStopped(); d++) oa(a, b[d], c[d]);else b && oa(a, b, c);
    a._dispatchListeners = null;
    a._dispatchInstances = null;
    a.isPersistent() || a.constructor.release(a);
  }
}

function mc(a) {
  null !== a && (kc = ic(kc, a));
  a = kc;
  kc = null;

  if (a) {
    jc(a, lc);
    if (kc) throw Error(u(95));
    if (fa) throw a = ha, fa = !1, ha = null, a;
  }
}

function nc(a) {
  a = a.target || a.srcElement || window;
  a.correspondingUseElement && (a = a.correspondingUseElement);
  return 3 === a.nodeType ? a.parentNode : a;
}

function oc(a) {
  if (!ya) return !1;
  a = "on" + a;
  var b = (a in document);
  b || (b = document.createElement("div"), b.setAttribute(a, "return;"), b = "function" === typeof b[a]);
  return b;
}

var pc = [];

function qc(a) {
  a.topLevelType = null;
  a.nativeEvent = null;
  a.targetInst = null;
  a.ancestors.length = 0;
  10 > pc.length && pc.push(a);
}

function rc(a, b, c, d) {
  if (pc.length) {
    var e = pc.pop();
    e.topLevelType = a;
    e.eventSystemFlags = d;
    e.nativeEvent = b;
    e.targetInst = c;
    return e;
  }

  return {
    topLevelType: a,
    eventSystemFlags: d,
    nativeEvent: b,
    targetInst: c,
    ancestors: []
  };
}

function sc(a) {
  var b = a.targetInst,
      c = b;

  do {
    if (!c) {
      a.ancestors.push(c);
      break;
    }

    var d = c;
    if (3 === d.tag) d = d.stateNode.containerInfo;else {
      for (; d.return;) d = d.return;

      d = 3 !== d.tag ? null : d.stateNode.containerInfo;
    }
    if (!d) break;
    b = c.tag;
    5 !== b && 6 !== b || a.ancestors.push(c);
    c = tc(d);
  } while (c);

  for (c = 0; c < a.ancestors.length; c++) {
    b = a.ancestors[c];
    var e = nc(a.nativeEvent);
    d = a.topLevelType;
    var f = a.nativeEvent,
        g = a.eventSystemFlags;
    0 === c && (g |= 64);

    for (var h = null, k = 0; k < sa.length; k++) {
      var l = sa[k];
      l && (l = l.extractEvents(d, b, f, e, g)) && (h = ic(h, l));
    }

    mc(h);
  }
}

function uc(a, b, c) {
  if (!c.has(a)) {
    switch (a) {
      case "scroll":
        vc(b, "scroll", !0);
        break;

      case "focus":
      case "blur":
        vc(b, "focus", !0);
        vc(b, "blur", !0);
        c.set("blur", null);
        c.set("focus", null);
        break;

      case "cancel":
      case "close":
        oc(a) && vc(b, a, !0);
        break;

      case "invalid":
      case "submit":
      case "reset":
        break;

      default:
        -1 === ac.indexOf(a) && F(a, b);
    }

    c.set(a, null);
  }
}

var wc,
    xc,
    yc,
    zc = !1,
    Ac = [],
    Bc = null,
    Cc = null,
    Dc = null,
    Ec = new Map(),
    Fc = new Map(),
    Gc = [],
    Hc = "mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput close cancel copy cut paste click change contextmenu reset submit".split(" "),
    Ic = "focus blur dragenter dragleave mouseover mouseout pointerover pointerout gotpointercapture lostpointercapture".split(" ");

function Jc(a, b) {
  var c = cc(b);
  Hc.forEach(function (a) {
    uc(a, b, c);
  });
  Ic.forEach(function (a) {
    uc(a, b, c);
  });
}

function Kc(a, b, c, d, e) {
  return {
    blockedOn: a,
    topLevelType: b,
    eventSystemFlags: c | 32,
    nativeEvent: e,
    container: d
  };
}

function Lc(a, b) {
  switch (a) {
    case "focus":
    case "blur":
      Bc = null;
      break;

    case "dragenter":
    case "dragleave":
      Cc = null;
      break;

    case "mouseover":
    case "mouseout":
      Dc = null;
      break;

    case "pointerover":
    case "pointerout":
      Ec.delete(b.pointerId);
      break;

    case "gotpointercapture":
    case "lostpointercapture":
      Fc.delete(b.pointerId);
  }
}

function Mc(a, b, c, d, e, f) {
  if (null === a || a.nativeEvent !== f) return a = Kc(b, c, d, e, f), null !== b && (b = Nc(b), null !== b && xc(b)), a;
  a.eventSystemFlags |= d;
  return a;
}

function Oc(a, b, c, d, e) {
  switch (b) {
    case "focus":
      return Bc = Mc(Bc, a, b, c, d, e), !0;

    case "dragenter":
      return Cc = Mc(Cc, a, b, c, d, e), !0;

    case "mouseover":
      return Dc = Mc(Dc, a, b, c, d, e), !0;

    case "pointerover":
      var f = e.pointerId;
      Ec.set(f, Mc(Ec.get(f) || null, a, b, c, d, e));
      return !0;

    case "gotpointercapture":
      return f = e.pointerId, Fc.set(f, Mc(Fc.get(f) || null, a, b, c, d, e)), !0;
  }

  return !1;
}

function Pc(a) {
  var b = tc(a.target);

  if (null !== b) {
    var c = dc(b);
    if (null !== c) if (b = c.tag, 13 === b) {
      if (b = ec(c), null !== b) {
        a.blockedOn = b;
        r.unstable_runWithPriority(a.priority, function () {
          yc(c);
        });
        return;
      }
    } else if (3 === b && c.stateNode.hydrate) {
      a.blockedOn = 3 === c.tag ? c.stateNode.containerInfo : null;
      return;
    }
  }

  a.blockedOn = null;
}

function Qc(a) {
  if (null !== a.blockedOn) return !1;
  var b = Rc(a.topLevelType, a.eventSystemFlags, a.container, a.nativeEvent);

  if (null !== b) {
    var c = Nc(b);
    null !== c && xc(c);
    a.blockedOn = b;
    return !1;
  }

  return !0;
}

function Sc(a, b, c) {
  Qc(a) && c.delete(b);
}

function Tc() {
  for (zc = !1; 0 < Ac.length;) {
    var a = Ac[0];

    if (null !== a.blockedOn) {
      a = Nc(a.blockedOn);
      null !== a && wc(a);
      break;
    }

    var b = Rc(a.topLevelType, a.eventSystemFlags, a.container, a.nativeEvent);
    null !== b ? a.blockedOn = b : Ac.shift();
  }

  null !== Bc && Qc(Bc) && (Bc = null);
  null !== Cc && Qc(Cc) && (Cc = null);
  null !== Dc && Qc(Dc) && (Dc = null);
  Ec.forEach(Sc);
  Fc.forEach(Sc);
}

function Uc(a, b) {
  a.blockedOn === b && (a.blockedOn = null, zc || (zc = !0, r.unstable_scheduleCallback(r.unstable_NormalPriority, Tc)));
}

function Vc(a) {
  function b(b) {
    return Uc(b, a);
  }

  if (0 < Ac.length) {
    Uc(Ac[0], a);

    for (var c = 1; c < Ac.length; c++) {
      var d = Ac[c];
      d.blockedOn === a && (d.blockedOn = null);
    }
  }

  null !== Bc && Uc(Bc, a);
  null !== Cc && Uc(Cc, a);
  null !== Dc && Uc(Dc, a);
  Ec.forEach(b);
  Fc.forEach(b);

  for (c = 0; c < Gc.length; c++) d = Gc[c], d.blockedOn === a && (d.blockedOn = null);

  for (; 0 < Gc.length && (c = Gc[0], null === c.blockedOn);) Pc(c), null === c.blockedOn && Gc.shift();
}

var Wc = {},
    Yc = new Map(),
    Zc = new Map(),
    $c = ["abort", "abort", Xb, "animationEnd", Yb, "animationIteration", Zb, "animationStart", "canplay", "canPlay", "canplaythrough", "canPlayThrough", "durationchange", "durationChange", "emptied", "emptied", "encrypted", "encrypted", "ended", "ended", "error", "error", "gotpointercapture", "gotPointerCapture", "load", "load", "loadeddata", "loadedData", "loadedmetadata", "loadedMetadata", "loadstart", "loadStart", "lostpointercapture", "lostPointerCapture", "playing", "playing", "progress", "progress", "seeking", "seeking", "stalled", "stalled", "suspend", "suspend", "timeupdate", "timeUpdate", $b, "transitionEnd", "waiting", "waiting"];

function ad(a, b) {
  for (var c = 0; c < a.length; c += 2) {
    var d = a[c],
        e = a[c + 1],
        f = "on" + (e[0].toUpperCase() + e.slice(1));
    f = {
      phasedRegistrationNames: {
        bubbled: f,
        captured: f + "Capture"
      },
      dependencies: [d],
      eventPriority: b
    };
    Zc.set(d, b);
    Yc.set(d, f);
    Wc[e] = f;
  }
}

ad("blur blur cancel cancel click click close close contextmenu contextMenu copy copy cut cut auxclick auxClick dblclick doubleClick dragend dragEnd dragstart dragStart drop drop focus focus input input invalid invalid keydown keyDown keypress keyPress keyup keyUp mousedown mouseDown mouseup mouseUp paste paste pause pause play play pointercancel pointerCancel pointerdown pointerDown pointerup pointerUp ratechange rateChange reset reset seeked seeked submit submit touchcancel touchCancel touchend touchEnd touchstart touchStart volumechange volumeChange".split(" "), 0);
ad("drag drag dragenter dragEnter dragexit dragExit dragleave dragLeave dragover dragOver mousemove mouseMove mouseout mouseOut mouseover mouseOver pointermove pointerMove pointerout pointerOut pointerover pointerOver scroll scroll toggle toggle touchmove touchMove wheel wheel".split(" "), 1);
ad($c, 2);

for (var bd = "change selectionchange textInput compositionstart compositionend compositionupdate".split(" "), cd = 0; cd < bd.length; cd++) Zc.set(bd[cd], 0);

var dd = r.unstable_UserBlockingPriority,
    ed = r.unstable_runWithPriority,
    fd = !0;

function F(a, b) {
  vc(b, a, !1);
}

function vc(a, b, c) {
  var d = Zc.get(b);

  switch (void 0 === d ? 2 : d) {
    case 0:
      d = gd.bind(null, b, 1, a);
      break;

    case 1:
      d = hd.bind(null, b, 1, a);
      break;

    default:
      d = id.bind(null, b, 1, a);
  }

  c ? a.addEventListener(b, d, !0) : a.addEventListener(b, d, !1);
}

function gd(a, b, c, d) {
  Ja || Ha();
  var e = id,
      f = Ja;
  Ja = !0;

  try {
    Ga(e, a, b, c, d);
  } finally {
    (Ja = f) || La();
  }
}

function hd(a, b, c, d) {
  ed(dd, id.bind(null, a, b, c, d));
}

function id(a, b, c, d) {
  if (fd) if (0 < Ac.length && -1 < Hc.indexOf(a)) a = Kc(null, a, b, c, d), Ac.push(a);else {
    var e = Rc(a, b, c, d);
    if (null === e) Lc(a, d);else if (-1 < Hc.indexOf(a)) a = Kc(e, a, b, c, d), Ac.push(a);else if (!Oc(e, a, b, c, d)) {
      Lc(a, d);
      a = rc(a, d, null, b);

      try {
        Ma(sc, a);
      } finally {
        qc(a);
      }
    }
  }
}

function Rc(a, b, c, d) {
  c = nc(d);
  c = tc(c);

  if (null !== c) {
    var e = dc(c);
    if (null === e) c = null;else {
      var f = e.tag;

      if (13 === f) {
        c = ec(e);
        if (null !== c) return c;
        c = null;
      } else if (3 === f) {
        if (e.stateNode.hydrate) return 3 === e.tag ? e.stateNode.containerInfo : null;
        c = null;
      } else e !== c && (c = null);
    }
  }

  a = rc(a, d, c, b);

  try {
    Ma(sc, a);
  } finally {
    qc(a);
  }

  return null;
}

var jd = {
  animationIterationCount: !0,
  borderImageOutset: !0,
  borderImageSlice: !0,
  borderImageWidth: !0,
  boxFlex: !0,
  boxFlexGroup: !0,
  boxOrdinalGroup: !0,
  columnCount: !0,
  columns: !0,
  flex: !0,
  flexGrow: !0,
  flexPositive: !0,
  flexShrink: !0,
  flexNegative: !0,
  flexOrder: !0,
  gridArea: !0,
  gridRow: !0,
  gridRowEnd: !0,
  gridRowSpan: !0,
  gridRowStart: !0,
  gridColumn: !0,
  gridColumnEnd: !0,
  gridColumnSpan: !0,
  gridColumnStart: !0,
  fontWeight: !0,
  lineClamp: !0,
  lineHeight: !0,
  opacity: !0,
  order: !0,
  orphans: !0,
  tabSize: !0,
  widows: !0,
  zIndex: !0,
  zoom: !0,
  fillOpacity: !0,
  floodOpacity: !0,
  stopOpacity: !0,
  strokeDasharray: !0,
  strokeDashoffset: !0,
  strokeMiterlimit: !0,
  strokeOpacity: !0,
  strokeWidth: !0
},
    kd = ["Webkit", "ms", "Moz", "O"];
Object.keys(jd).forEach(function (a) {
  kd.forEach(function (b) {
    b = b + a.charAt(0).toUpperCase() + a.substring(1);
    jd[b] = jd[a];
  });
});

function ld(a, b, c) {
  return null == b || "boolean" === typeof b || "" === b ? "" : c || "number" !== typeof b || 0 === b || jd.hasOwnProperty(a) && jd[a] ? ("" + b).trim() : b + "px";
}

function md(a, b) {
  a = a.style;

  for (var c in b) if (b.hasOwnProperty(c)) {
    var d = 0 === c.indexOf("--"),
        e = ld(c, b[c], d);
    "float" === c && (c = "cssFloat");
    d ? a.setProperty(c, e) : a[c] = e;
  }
}

var nd = n({
  menuitem: !0
}, {
  area: !0,
  base: !0,
  br: !0,
  col: !0,
  embed: !0,
  hr: !0,
  img: !0,
  input: !0,
  keygen: !0,
  link: !0,
  meta: !0,
  param: !0,
  source: !0,
  track: !0,
  wbr: !0
});

function od(a, b) {
  if (b) {
    if (nd[a] && (null != b.children || null != b.dangerouslySetInnerHTML)) throw Error(u(137, a, ""));

    if (null != b.dangerouslySetInnerHTML) {
      if (null != b.children) throw Error(u(60));
      if (!("object" === typeof b.dangerouslySetInnerHTML && "__html" in b.dangerouslySetInnerHTML)) throw Error(u(61));
    }

    if (null != b.style && "object" !== typeof b.style) throw Error(u(62, ""));
  }
}

function pd(a, b) {
  if (-1 === a.indexOf("-")) return "string" === typeof b.is;

  switch (a) {
    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 !1;

    default:
      return !0;
  }
}

var qd = Mb.html;

function rd(a, b) {
  a = 9 === a.nodeType || 11 === a.nodeType ? a : a.ownerDocument;
  var c = cc(a);
  b = wa[b];

  for (var d = 0; d < b.length; d++) uc(b[d], a, c);
}

function sd() {}

function td(a) {
  a = a || ("undefined" !== typeof document ? document : void 0);
  if ("undefined" === typeof a) return null;

  try {
    return a.activeElement || a.body;
  } catch (b) {
    return a.body;
  }
}

function ud(a) {
  for (; a && a.firstChild;) a = a.firstChild;

  return a;
}

function vd(a, b) {
  var c = ud(a);
  a = 0;

  for (var d; c;) {
    if (3 === c.nodeType) {
      d = a + c.textContent.length;
      if (a <= b && d >= b) return {
        node: c,
        offset: b - a
      };
      a = d;
    }

    a: {
      for (; c;) {
        if (c.nextSibling) {
          c = c.nextSibling;
          break a;
        }

        c = c.parentNode;
      }

      c = void 0;
    }

    c = ud(c);
  }
}

function wd(a, b) {
  return a && b ? a === b ? !0 : a && 3 === a.nodeType ? !1 : b && 3 === b.nodeType ? wd(a, b.parentNode) : "contains" in a ? a.contains(b) : a.compareDocumentPosition ? !!(a.compareDocumentPosition(b) & 16) : !1 : !1;
}

function xd() {
  for (var a = window, b = td(); b instanceof a.HTMLIFrameElement;) {
    try {
      var c = "string" === typeof b.contentWindow.location.href;
    } catch (d) {
      c = !1;
    }

    if (c) a = b.contentWindow;else break;
    b = td(a.document);
  }

  return b;
}

function yd(a) {
  var b = a && a.nodeName && a.nodeName.toLowerCase();
  return b && ("input" === b && ("text" === a.type || "search" === a.type || "tel" === a.type || "url" === a.type || "password" === a.type) || "textarea" === b || "true" === a.contentEditable);
}

var zd = "$",
    Ad = "/$",
    Bd = "$?",
    Cd = "$!",
    Dd = null,
    Ed = null;

function Fd(a, b) {
  switch (a) {
    case "button":
    case "input":
    case "select":
    case "textarea":
      return !!b.autoFocus;
  }

  return !1;
}

function Gd(a, b) {
  return "textarea" === a || "option" === a || "noscript" === a || "string" === typeof b.children || "number" === typeof b.children || "object" === typeof b.dangerouslySetInnerHTML && null !== b.dangerouslySetInnerHTML && null != b.dangerouslySetInnerHTML.__html;
}

var Hd = "function" === typeof setTimeout ? setTimeout : void 0,
    Id = "function" === typeof clearTimeout ? clearTimeout : void 0;

function Jd(a) {
  for (; null != a; a = a.nextSibling) {
    var b = a.nodeType;
    if (1 === b || 3 === b) break;
  }

  return a;
}

function Kd(a) {
  a = a.previousSibling;

  for (var b = 0; a;) {
    if (8 === a.nodeType) {
      var c = a.data;

      if (c === zd || c === Cd || c === Bd) {
        if (0 === b) return a;
        b--;
      } else c === Ad && b++;
    }

    a = a.previousSibling;
  }

  return null;
}

var Ld = Math.random().toString(36).slice(2),
    Md = "__reactInternalInstance$" + Ld,
    Nd = "__reactEventHandlers$" + Ld,
    Od = "__reactContainere$" + Ld;

function tc(a) {
  var b = a[Md];
  if (b) return b;

  for (var c = a.parentNode; c;) {
    if (b = c[Od] || c[Md]) {
      c = b.alternate;
      if (null !== b.child || null !== c && null !== c.child) for (a = Kd(a); null !== a;) {
        if (c = a[Md]) return c;
        a = Kd(a);
      }
      return b;
    }

    a = c;
    c = a.parentNode;
  }

  return null;
}

function Nc(a) {
  a = a[Md] || a[Od];
  return !a || 5 !== a.tag && 6 !== a.tag && 13 !== a.tag && 3 !== a.tag ? null : a;
}

function Pd(a) {
  if (5 === a.tag || 6 === a.tag) return a.stateNode;
  throw Error(u(33));
}

function Qd(a) {
  return a[Nd] || null;
}

function Rd(a) {
  do a = a.return; while (a && 5 !== a.tag);

  return a ? a : null;
}

function Sd(a, b) {
  var c = a.stateNode;
  if (!c) return null;
  var d = la(c);
  if (!d) return null;
  c = d[b];

  a: switch (b) {
    case "onClick":
    case "onClickCapture":
    case "onDoubleClick":
    case "onDoubleClickCapture":
    case "onMouseDown":
    case "onMouseDownCapture":
    case "onMouseMove":
    case "onMouseMoveCapture":
    case "onMouseUp":
    case "onMouseUpCapture":
    case "onMouseEnter":
      (d = !d.disabled) || (a = a.type, d = !("button" === a || "input" === a || "select" === a || "textarea" === a));
      a = !d;
      break a;

    default:
      a = !1;
  }

  if (a) return null;
  if (c && "function" !== typeof c) throw Error(u(231, b, typeof c));
  return c;
}

function Td(a, b, c) {
  if (b = Sd(a, c.dispatchConfig.phasedRegistrationNames[b])) c._dispatchListeners = ic(c._dispatchListeners, b), c._dispatchInstances = ic(c._dispatchInstances, a);
}

function Ud(a) {
  if (a && a.dispatchConfig.phasedRegistrationNames) {
    for (var b = a._targetInst, c = []; b;) c.push(b), b = Rd(b);

    for (b = c.length; 0 < b--;) Td(c[b], "captured", a);

    for (b = 0; b < c.length; b++) Td(c[b], "bubbled", a);
  }
}

function Vd(a, b, c) {
  a && c && c.dispatchConfig.registrationName && (b = Sd(a, c.dispatchConfig.registrationName)) && (c._dispatchListeners = ic(c._dispatchListeners, b), c._dispatchInstances = ic(c._dispatchInstances, a));
}

function Wd(a) {
  a && a.dispatchConfig.registrationName && Vd(a._targetInst, null, a);
}

function Xd(a) {
  jc(a, Ud);
}

var Yd = null,
    Zd = null,
    $d = null;

function ae() {
  if ($d) return $d;
  var a,
      b = Zd,
      c = b.length,
      d,
      e = "value" in Yd ? Yd.value : Yd.textContent,
      f = e.length;

  for (a = 0; a < c && b[a] === e[a]; a++);

  var g = c - a;

  for (d = 1; d <= g && b[c - d] === e[f - d]; d++);

  return $d = e.slice(a, 1 < d ? 1 - d : void 0);
}

function be() {
  return !0;
}

function ce() {
  return !1;
}

function G(a, b, c, d) {
  this.dispatchConfig = a;
  this._targetInst = b;
  this.nativeEvent = c;
  a = this.constructor.Interface;

  for (var e in a) a.hasOwnProperty(e) && ((b = a[e]) ? this[e] = b(c) : "target" === e ? this.target = d : this[e] = c[e]);

  this.isDefaultPrevented = (null != c.defaultPrevented ? c.defaultPrevented : !1 === c.returnValue) ? be : ce;
  this.isPropagationStopped = ce;
  return this;
}

n(G.prototype, {
  preventDefault: function () {
    this.defaultPrevented = !0;
    var a = this.nativeEvent;
    a && (a.preventDefault ? a.preventDefault() : "unknown" !== typeof a.returnValue && (a.returnValue = !1), this.isDefaultPrevented = be);
  },
  stopPropagation: function () {
    var a = this.nativeEvent;
    a && (a.stopPropagation ? a.stopPropagation() : "unknown" !== typeof a.cancelBubble && (a.cancelBubble = !0), this.isPropagationStopped = be);
  },
  persist: function () {
    this.isPersistent = be;
  },
  isPersistent: ce,
  destructor: function () {
    var a = this.constructor.Interface,
        b;

    for (b in a) this[b] = null;

    this.nativeEvent = this._targetInst = this.dispatchConfig = null;
    this.isPropagationStopped = this.isDefaultPrevented = ce;
    this._dispatchInstances = this._dispatchListeners = null;
  }
});
G.Interface = {
  type: null,
  target: null,
  currentTarget: function () {
    return null;
  },
  eventPhase: null,
  bubbles: null,
  cancelable: null,
  timeStamp: function (a) {
    return a.timeStamp || Date.now();
  },
  defaultPrevented: null,
  isTrusted: null
};

G.extend = function (a) {
  function b() {}

  function c() {
    return d.apply(this, arguments);
  }

  var d = this;
  b.prototype = d.prototype;
  var e = new b();
  n(e, c.prototype);
  c.prototype = e;
  c.prototype.constructor = c;
  c.Interface = n({}, d.Interface, a);
  c.extend = d.extend;
  de(c);
  return c;
};

de(G);

function ee(a, b, c, d) {
  if (this.eventPool.length) {
    var e = this.eventPool.pop();
    this.call(e, a, b, c, d);
    return e;
  }

  return new this(a, b, c, d);
}

function fe(a) {
  if (!(a instanceof this)) throw Error(u(279));
  a.destructor();
  10 > this.eventPool.length && this.eventPool.push(a);
}

function de(a) {
  a.eventPool = [];
  a.getPooled = ee;
  a.release = fe;
}

var ge = G.extend({
  data: null
}),
    he = G.extend({
  data: null
}),
    ie = [9, 13, 27, 32],
    je = ya && "CompositionEvent" in window,
    ke = null;
ya && "documentMode" in document && (ke = document.documentMode);
var le = ya && "TextEvent" in window && !ke,
    me = ya && (!je || ke && 8 < ke && 11 >= ke),
    ne = String.fromCharCode(32),
    oe = {
  beforeInput: {
    phasedRegistrationNames: {
      bubbled: "onBeforeInput",
      captured: "onBeforeInputCapture"
    },
    dependencies: ["compositionend", "keypress", "textInput", "paste"]
  },
  compositionEnd: {
    phasedRegistrationNames: {
      bubbled: "onCompositionEnd",
      captured: "onCompositionEndCapture"
    },
    dependencies: "blur compositionend keydown keypress keyup mousedown".split(" ")
  },
  compositionStart: {
    phasedRegistrationNames: {
      bubbled: "onCompositionStart",
      captured: "onCompositionStartCapture"
    },
    dependencies: "blur compositionstart keydown keypress keyup mousedown".split(" ")
  },
  compositionUpdate: {
    phasedRegistrationNames: {
      bubbled: "onCompositionUpdate",
      captured: "onCompositionUpdateCapture"
    },
    dependencies: "blur compositionupdate keydown keypress keyup mousedown".split(" ")
  }
},
    pe = !1;

function qe(a, b) {
  switch (a) {
    case "keyup":
      return -1 !== ie.indexOf(b.keyCode);

    case "keydown":
      return 229 !== b.keyCode;

    case "keypress":
    case "mousedown":
    case "blur":
      return !0;

    default:
      return !1;
  }
}

function re(a) {
  a = a.detail;
  return "object" === typeof a && "data" in a ? a.data : null;
}

var se = !1;

function te(a, b) {
  switch (a) {
    case "compositionend":
      return re(b);

    case "keypress":
      if (32 !== b.which) return null;
      pe = !0;
      return ne;

    case "textInput":
      return a = b.data, a === ne && pe ? null : a;

    default:
      return null;
  }
}

function ue(a, b) {
  if (se) return "compositionend" === a || !je && qe(a, b) ? (a = ae(), $d = Zd = Yd = null, se = !1, a) : null;

  switch (a) {
    case "paste":
      return null;

    case "keypress":
      if (!(b.ctrlKey || b.altKey || b.metaKey) || b.ctrlKey && b.altKey) {
        if (b.char && 1 < b.char.length) return b.char;
        if (b.which) return String.fromCharCode(b.which);
      }

      return null;

    case "compositionend":
      return me && "ko" !== b.locale ? null : b.data;

    default:
      return null;
  }
}

var ve = {
  eventTypes: oe,
  extractEvents: function (a, b, c, d) {
    var e;
    if (je) b: {
      switch (a) {
        case "compositionstart":
          var f = oe.compositionStart;
          break b;

        case "compositionend":
          f = oe.compositionEnd;
          break b;

        case "compositionupdate":
          f = oe.compositionUpdate;
          break b;
      }

      f = void 0;
    } else se ? qe(a, c) && (f = oe.compositionEnd) : "keydown" === a && 229 === c.keyCode && (f = oe.compositionStart);
    f ? (me && "ko" !== c.locale && (se || f !== oe.compositionStart ? f === oe.compositionEnd && se && (e = ae()) : (Yd = d, Zd = "value" in Yd ? Yd.value : Yd.textContent, se = !0)), f = ge.getPooled(f, b, c, d), e ? f.data = e : (e = re(c), null !== e && (f.data = e)), Xd(f), e = f) : e = null;
    (a = le ? te(a, c) : ue(a, c)) ? (b = he.getPooled(oe.beforeInput, b, c, d), b.data = a, Xd(b)) : b = null;
    return null === e ? b : null === b ? e : [e, b];
  }
},
    we = {
  color: !0,
  date: !0,
  datetime: !0,
  "datetime-local": !0,
  email: !0,
  month: !0,
  number: !0,
  password: !0,
  range: !0,
  search: !0,
  tel: !0,
  text: !0,
  time: !0,
  url: !0,
  week: !0
};

function xe(a) {
  var b = a && a.nodeName && a.nodeName.toLowerCase();
  return "input" === b ? !!we[a.type] : "textarea" === b ? !0 : !1;
}

var ye = {
  change: {
    phasedRegistrationNames: {
      bubbled: "onChange",
      captured: "onChangeCapture"
    },
    dependencies: "blur change click focus input keydown keyup selectionchange".split(" ")
  }
};

function ze(a, b, c) {
  a = G.getPooled(ye.change, a, b, c);
  a.type = "change";
  Da(c);
  Xd(a);
  return a;
}

var Ae = null,
    Be = null;

function Ce(a) {
  mc(a);
}

function De(a) {
  var b = Pd(a);
  if (yb(b)) return a;
}

function Ee(a, b) {
  if ("change" === a) return b;
}

var Fe = !1;
ya && (Fe = oc("input") && (!document.documentMode || 9 < document.documentMode));

function Ge() {
  Ae && (Ae.detachEvent("onpropertychange", He), Be = Ae = null);
}

function He(a) {
  if ("value" === a.propertyName && De(Be)) if (a = ze(Be, a, nc(a)), Ja) mc(a);else {
    Ja = !0;

    try {
      Fa(Ce, a);
    } finally {
      Ja = !1, La();
    }
  }
}

function Ie(a, b, c) {
  "focus" === a ? (Ge(), Ae = b, Be = c, Ae.attachEvent("onpropertychange", He)) : "blur" === a && Ge();
}

function Je(a) {
  if ("selectionchange" === a || "keyup" === a || "keydown" === a) return De(Be);
}

function Ke(a, b) {
  if ("click" === a) return De(b);
}

function Le(a, b) {
  if ("input" === a || "change" === a) return De(b);
}

var Me = {
  eventTypes: ye,
  _isInputEventSupported: Fe,
  extractEvents: function (a, b, c, d) {
    var e = b ? Pd(b) : window,
        f = e.nodeName && e.nodeName.toLowerCase();
    if ("select" === f || "input" === f && "file" === e.type) var g = Ee;else if (xe(e)) {
      if (Fe) g = Le;else {
        g = Je;
        var h = Ie;
      }
    } else (f = e.nodeName) && "input" === f.toLowerCase() && ("checkbox" === e.type || "radio" === e.type) && (g = Ke);
    if (g && (g = g(a, b))) return ze(g, c, d);
    h && h(a, e, b);
    "blur" === a && (a = e._wrapperState) && a.controlled && "number" === e.type && Db(e, "number", e.value);
  }
},
    Ne = G.extend({
  view: null,
  detail: null
}),
    Oe = {
  Alt: "altKey",
  Control: "ctrlKey",
  Meta: "metaKey",
  Shift: "shiftKey"
};

function Pe(a) {
  var b = this.nativeEvent;
  return b.getModifierState ? b.getModifierState(a) : (a = Oe[a]) ? !!b[a] : !1;
}

function Qe() {
  return Pe;
}

var Re = 0,
    Se = 0,
    Te = !1,
    Ue = !1,
    Ve = Ne.extend({
  screenX: null,
  screenY: null,
  clientX: null,
  clientY: null,
  pageX: null,
  pageY: null,
  ctrlKey: null,
  shiftKey: null,
  altKey: null,
  metaKey: null,
  getModifierState: Qe,
  button: null,
  buttons: null,
  relatedTarget: function (a) {
    return a.relatedTarget || (a.fromElement === a.srcElement ? a.toElement : a.fromElement);
  },
  movementX: function (a) {
    if ("movementX" in a) return a.movementX;
    var b = Re;
    Re = a.screenX;
    return Te ? "mousemove" === a.type ? a.screenX - b : 0 : (Te = !0, 0);
  },
  movementY: function (a) {
    if ("movementY" in a) return a.movementY;
    var b = Se;
    Se = a.screenY;
    return Ue ? "mousemove" === a.type ? a.screenY - b : 0 : (Ue = !0, 0);
  }
}),
    We = Ve.extend({
  pointerId: null,
  width: null,
  height: null,
  pressure: null,
  tangentialPressure: null,
  tiltX: null,
  tiltY: null,
  twist: null,
  pointerType: null,
  isPrimary: null
}),
    Xe = {
  mouseEnter: {
    registrationName: "onMouseEnter",
    dependencies: ["mouseout", "mouseover"]
  },
  mouseLeave: {
    registrationName: "onMouseLeave",
    dependencies: ["mouseout", "mouseover"]
  },
  pointerEnter: {
    registrationName: "onPointerEnter",
    dependencies: ["pointerout", "pointerover"]
  },
  pointerLeave: {
    registrationName: "onPointerLeave",
    dependencies: ["pointerout", "pointerover"]
  }
},
    Ye = {
  eventTypes: Xe,
  extractEvents: function (a, b, c, d, e) {
    var f = "mouseover" === a || "pointerover" === a,
        g = "mouseout" === a || "pointerout" === a;
    if (f && 0 === (e & 32) && (c.relatedTarget || c.fromElement) || !g && !f) return null;
    f = d.window === d ? d : (f = d.ownerDocument) ? f.defaultView || f.parentWindow : window;

    if (g) {
      if (g = b, b = (b = c.relatedTarget || c.toElement) ? tc(b) : null, null !== b) {
        var h = dc(b);
        if (b !== h || 5 !== b.tag && 6 !== b.tag) b = null;
      }
    } else g = null;

    if (g === b) return null;

    if ("mouseout" === a || "mouseover" === a) {
      var k = Ve;
      var l = Xe.mouseLeave;
      var m = Xe.mouseEnter;
      var p = "mouse";
    } else if ("pointerout" === a || "pointerover" === a) k = We, l = Xe.pointerLeave, m = Xe.pointerEnter, p = "pointer";

    a = null == g ? f : Pd(g);
    f = null == b ? f : Pd(b);
    l = k.getPooled(l, g, c, d);
    l.type = p + "leave";
    l.target = a;
    l.relatedTarget = f;
    c = k.getPooled(m, b, c, d);
    c.type = p + "enter";
    c.target = f;
    c.relatedTarget = a;
    d = g;
    p = b;
    if (d && p) a: {
      k = d;
      m = p;
      g = 0;

      for (a = k; a; a = Rd(a)) g++;

      a = 0;

      for (b = m; b; b = Rd(b)) a++;

      for (; 0 < g - a;) k = Rd(k), g--;

      for (; 0 < a - g;) m = Rd(m), a--;

      for (; g--;) {
        if (k === m || k === m.alternate) break a;
        k = Rd(k);
        m = Rd(m);
      }

      k = null;
    } else k = null;
    m = k;

    for (k = []; d && d !== m;) {
      g = d.alternate;
      if (null !== g && g === m) break;
      k.push(d);
      d = Rd(d);
    }

    for (d = []; p && p !== m;) {
      g = p.alternate;
      if (null !== g && g === m) break;
      d.push(p);
      p = Rd(p);
    }

    for (p = 0; p < k.length; p++) Vd(k[p], "bubbled", l);

    for (p = d.length; 0 < p--;) Vd(d[p], "captured", c);

    return 0 === (e & 64) ? [l] : [l, c];
  }
};

function Ze(a, b) {
  return a === b && (0 !== a || 1 / a === 1 / b) || a !== a && b !== b;
}

var $e = "function" === typeof Object.is ? Object.is : Ze,
    af = Object.prototype.hasOwnProperty;

function bf(a, b) {
  if ($e(a, b)) return !0;
  if ("object" !== typeof a || null === a || "object" !== typeof b || null === b) return !1;
  var c = Object.keys(a),
      d = Object.keys(b);
  if (c.length !== d.length) return !1;

  for (d = 0; d < c.length; d++) if (!af.call(b, c[d]) || !$e(a[c[d]], b[c[d]])) return !1;

  return !0;
}

var cf = ya && "documentMode" in document && 11 >= document.documentMode,
    df = {
  select: {
    phasedRegistrationNames: {
      bubbled: "onSelect",
      captured: "onSelectCapture"
    },
    dependencies: "blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange".split(" ")
  }
},
    ef = null,
    ff = null,
    gf = null,
    hf = !1;

function jf(a, b) {
  var c = b.window === b ? b.document : 9 === b.nodeType ? b : b.ownerDocument;
  if (hf || null == ef || ef !== td(c)) return null;
  c = ef;
  "selectionStart" in c && yd(c) ? c = {
    start: c.selectionStart,
    end: c.selectionEnd
  } : (c = (c.ownerDocument && c.ownerDocument.defaultView || window).getSelection(), c = {
    anchorNode: c.anchorNode,
    anchorOffset: c.anchorOffset,
    focusNode: c.focusNode,
    focusOffset: c.focusOffset
  });
  return gf && bf(gf, c) ? null : (gf = c, a = G.getPooled(df.select, ff, a, b), a.type = "select", a.target = ef, Xd(a), a);
}

var kf = {
  eventTypes: df,
  extractEvents: function (a, b, c, d, e, f) {
    e = f || (d.window === d ? d.document : 9 === d.nodeType ? d : d.ownerDocument);

    if (!(f = !e)) {
      a: {
        e = cc(e);
        f = wa.onSelect;

        for (var g = 0; g < f.length; g++) if (!e.has(f[g])) {
          e = !1;
          break a;
        }

        e = !0;
      }

      f = !e;
    }

    if (f) return null;
    e = b ? Pd(b) : window;

    switch (a) {
      case "focus":
        if (xe(e) || "true" === e.contentEditable) ef = e, ff = b, gf = null;
        break;

      case "blur":
        gf = ff = ef = null;
        break;

      case "mousedown":
        hf = !0;
        break;

      case "contextmenu":
      case "mouseup":
      case "dragend":
        return hf = !1, jf(c, d);

      case "selectionchange":
        if (cf) break;

      case "keydown":
      case "keyup":
        return jf(c, d);
    }

    return null;
  }
},
    lf = G.extend({
  animationName: null,
  elapsedTime: null,
  pseudoElement: null
}),
    mf = G.extend({
  clipboardData: function (a) {
    return "clipboardData" in a ? a.clipboardData : window.clipboardData;
  }
}),
    nf = Ne.extend({
  relatedTarget: null
});

function of(a) {
  var b = a.keyCode;
  "charCode" in a ? (a = a.charCode, 0 === a && 13 === b && (a = 13)) : a = b;
  10 === a && (a = 13);
  return 32 <= a || 13 === a ? a : 0;
}

var pf = {
  Esc: "Escape",
  Spacebar: " ",
  Left: "ArrowLeft",
  Up: "ArrowUp",
  Right: "ArrowRight",
  Down: "ArrowDown",
  Del: "Delete",
  Win: "OS",
  Menu: "ContextMenu",
  Apps: "ContextMenu",
  Scroll: "ScrollLock",
  MozPrintableKey: "Unidentified"
},
    qf = {
  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"
},
    rf = Ne.extend({
  key: function (a) {
    if (a.key) {
      var b = pf[a.key] || a.key;
      if ("Unidentified" !== b) return b;
    }

    return "keypress" === a.type ? (a = of(a), 13 === a ? "Enter" : String.fromCharCode(a)) : "keydown" === a.type || "keyup" === a.type ? qf[a.keyCode] || "Unidentified" : "";
  },
  location: null,
  ctrlKey: null,
  shiftKey: null,
  altKey: null,
  metaKey: null,
  repeat: null,
  locale: null,
  getModifierState: Qe,
  charCode: function (a) {
    return "keypress" === a.type ? of(a) : 0;
  },
  keyCode: function (a) {
    return "keydown" === a.type || "keyup" === a.type ? a.keyCode : 0;
  },
  which: function (a) {
    return "keypress" === a.type ? of(a) : "keydown" === a.type || "keyup" === a.type ? a.keyCode : 0;
  }
}),
    sf = Ve.extend({
  dataTransfer: null
}),
    tf = Ne.extend({
  touches: null,
  targetTouches: null,
  changedTouches: null,
  altKey: null,
  metaKey: null,
  ctrlKey: null,
  shiftKey: null,
  getModifierState: Qe
}),
    uf = G.extend({
  propertyName: null,
  elapsedTime: null,
  pseudoElement: null
}),
    vf = Ve.extend({
  deltaX: function (a) {
    return "deltaX" in a ? a.deltaX : "wheelDeltaX" in a ? -a.wheelDeltaX : 0;
  },
  deltaY: function (a) {
    return "deltaY" in a ? a.deltaY : "wheelDeltaY" in a ? -a.wheelDeltaY : "wheelDelta" in a ? -a.wheelDelta : 0;
  },
  deltaZ: null,
  deltaMode: null
}),
    wf = {
  eventTypes: Wc,
  extractEvents: function (a, b, c, d) {
    var e = Yc.get(a);
    if (!e) return null;

    switch (a) {
      case "keypress":
        if (0 === of(c)) return null;

      case "keydown":
      case "keyup":
        a = rf;
        break;

      case "blur":
      case "focus":
        a = nf;
        break;

      case "click":
        if (2 === c.button) return null;

      case "auxclick":
      case "dblclick":
      case "mousedown":
      case "mousemove":
      case "mouseup":
      case "mouseout":
      case "mouseover":
      case "contextmenu":
        a = Ve;
        break;

      case "drag":
      case "dragend":
      case "dragenter":
      case "dragexit":
      case "dragleave":
      case "dragover":
      case "dragstart":
      case "drop":
        a = sf;
        break;

      case "touchcancel":
      case "touchend":
      case "touchmove":
      case "touchstart":
        a = tf;
        break;

      case Xb:
      case Yb:
      case Zb:
        a = lf;
        break;

      case $b:
        a = uf;
        break;

      case "scroll":
        a = Ne;
        break;

      case "wheel":
        a = vf;
        break;

      case "copy":
      case "cut":
      case "paste":
        a = mf;
        break;

      case "gotpointercapture":
      case "lostpointercapture":
      case "pointercancel":
      case "pointerdown":
      case "pointermove":
      case "pointerout":
      case "pointerover":
      case "pointerup":
        a = We;
        break;

      default:
        a = G;
    }

    b = a.getPooled(e, b, c, d);
    Xd(b);
    return b;
  }
};
if (pa) throw Error(u(101));
pa = Array.prototype.slice.call("ResponderEventPlugin SimpleEventPlugin EnterLeaveEventPlugin ChangeEventPlugin SelectEventPlugin BeforeInputEventPlugin".split(" "));
ra();
var xf = Nc;
la = Qd;
ma = xf;
na = Pd;
xa({
  SimpleEventPlugin: wf,
  EnterLeaveEventPlugin: Ye,
  ChangeEventPlugin: Me,
  SelectEventPlugin: kf,
  BeforeInputEventPlugin: ve
});
var yf = [],
    zf = -1;

function H(a) {
  0 > zf || (a.current = yf[zf], yf[zf] = null, zf--);
}

function I(a, b) {
  zf++;
  yf[zf] = a.current;
  a.current = b;
}

var Af = {},
    J = {
  current: Af
},
    K = {
  current: !1
},
    Bf = Af;

function Cf(a, b) {
  var c = a.type.contextTypes;
  if (!c) return Af;
  var d = a.stateNode;
  if (d && d.__reactInternalMemoizedUnmaskedChildContext === b) return d.__reactInternalMemoizedMaskedChildContext;
  var e = {},
      f;

  for (f in c) e[f] = b[f];

  d && (a = a.stateNode, a.__reactInternalMemoizedUnmaskedChildContext = b, a.__reactInternalMemoizedMaskedChildContext = e);
  return e;
}

function L(a) {
  a = a.childContextTypes;
  return null !== a && void 0 !== a;
}

function Df() {
  H(K);
  H(J);
}

function Ef(a, b, c) {
  if (J.current !== Af) throw Error(u(168));
  I(J, b);
  I(K, c);
}

function Ff(a, b, c) {
  var d = a.stateNode;
  a = b.childContextTypes;
  if ("function" !== typeof d.getChildContext) return c;
  d = d.getChildContext();

  for (var e in d) if (!(e in a)) throw Error(u(108, pb(b) || "Unknown", e));

  return n({}, c, {}, d);
}

function Gf(a) {
  a = (a = a.stateNode) && a.__reactInternalMemoizedMergedChildContext || Af;
  Bf = J.current;
  I(J, a);
  I(K, K.current);
  return !0;
}

function Hf(a, b, c) {
  var d = a.stateNode;
  if (!d) throw Error(u(169));
  c ? (a = Ff(a, b, Bf), d.__reactInternalMemoizedMergedChildContext = a, H(K), H(J), I(J, a)) : H(K);
  I(K, c);
}

var If = r.unstable_runWithPriority,
    Jf = r.unstable_scheduleCallback,
    Kf = r.unstable_cancelCallback,
    Lf = r.unstable_requestPaint,
    Mf = r.unstable_now,
    Nf = r.unstable_getCurrentPriorityLevel,
    Of = r.unstable_ImmediatePriority,
    Pf = r.unstable_UserBlockingPriority,
    Qf = r.unstable_NormalPriority,
    Rf = r.unstable_LowPriority,
    Sf = r.unstable_IdlePriority,
    Tf = {},
    Uf = r.unstable_shouldYield,
    Vf = void 0 !== Lf ? Lf : function () {},
    Wf = null,
    Xf = null,
    Yf = !1,
    Zf = Mf(),
    $f = 1E4 > Zf ? Mf : function () {
  return Mf() - Zf;
};

function ag() {
  switch (Nf()) {
    case Of:
      return 99;

    case Pf:
      return 98;

    case Qf:
      return 97;

    case Rf:
      return 96;

    case Sf:
      return 95;

    default:
      throw Error(u(332));
  }
}

function bg(a) {
  switch (a) {
    case 99:
      return Of;

    case 98:
      return Pf;

    case 97:
      return Qf;

    case 96:
      return Rf;

    case 95:
      return Sf;

    default:
      throw Error(u(332));
  }
}

function cg(a, b) {
  a = bg(a);
  return If(a, b);
}

function dg(a, b, c) {
  a = bg(a);
  return Jf(a, b, c);
}

function eg(a) {
  null === Wf ? (Wf = [a], Xf = Jf(Of, fg)) : Wf.push(a);
  return Tf;
}

function gg() {
  if (null !== Xf) {
    var a = Xf;
    Xf = null;
    Kf(a);
  }

  fg();
}

function fg() {
  if (!Yf && null !== Wf) {
    Yf = !0;
    var a = 0;

    try {
      var b = Wf;
      cg(99, function () {
        for (; a < b.length; a++) {
          var c = b[a];

          do c = c(!0); while (null !== c);
        }
      });
      Wf = null;
    } catch (c) {
      throw null !== Wf && (Wf = Wf.slice(a + 1)), Jf(Of, gg), c;
    } finally {
      Yf = !1;
    }
  }
}

function hg(a, b, c) {
  c /= 10;
  return 1073741821 - (((1073741821 - a + b / 10) / c | 0) + 1) * c;
}

function ig(a, b) {
  if (a && a.defaultProps) {
    b = n({}, b);
    a = a.defaultProps;

    for (var c in a) void 0 === b[c] && (b[c] = a[c]);
  }

  return b;
}

var jg = {
  current: null
},
    kg = null,
    lg = null,
    mg = null;

function ng() {
  mg = lg = kg = null;
}

function og(a) {
  var b = jg.current;
  H(jg);
  a.type._context._currentValue = b;
}

function pg(a, b) {
  for (; null !== a;) {
    var c = a.alternate;
    if (a.childExpirationTime < b) a.childExpirationTime = b, null !== c && c.childExpirationTime < b && (c.childExpirationTime = b);else if (null !== c && c.childExpirationTime < b) c.childExpirationTime = b;else break;
    a = a.return;
  }
}

function qg(a, b) {
  kg = a;
  mg = lg = null;
  a = a.dependencies;
  null !== a && null !== a.firstContext && (a.expirationTime >= b && (rg = !0), a.firstContext = null);
}

function sg(a, b) {
  if (mg !== a && !1 !== b && 0 !== b) {
    if ("number" !== typeof b || 1073741823 === b) mg = a, b = 1073741823;
    b = {
      context: a,
      observedBits: b,
      next: null
    };

    if (null === lg) {
      if (null === kg) throw Error(u(308));
      lg = b;
      kg.dependencies = {
        expirationTime: 0,
        firstContext: b,
        responders: null
      };
    } else lg = lg.next = b;
  }

  return a._currentValue;
}

var tg = !1;

function ug(a) {
  a.updateQueue = {
    baseState: a.memoizedState,
    baseQueue: null,
    shared: {
      pending: null
    },
    effects: null
  };
}

function vg(a, b) {
  a = a.updateQueue;
  b.updateQueue === a && (b.updateQueue = {
    baseState: a.baseState,
    baseQueue: a.baseQueue,
    shared: a.shared,
    effects: a.effects
  });
}

function wg(a, b) {
  a = {
    expirationTime: a,
    suspenseConfig: b,
    tag: 0,
    payload: null,
    callback: null,
    next: null
  };
  return a.next = a;
}

function xg(a, b) {
  a = a.updateQueue;

  if (null !== a) {
    a = a.shared;
    var c = a.pending;
    null === c ? b.next = b : (b.next = c.next, c.next = b);
    a.pending = b;
  }
}

function yg(a, b) {
  var c = a.alternate;
  null !== c && vg(c, a);
  a = a.updateQueue;
  c = a.baseQueue;
  null === c ? (a.baseQueue = b.next = b, b.next = b) : (b.next = c.next, c.next = b);
}

function zg(a, b, c, d) {
  var e = a.updateQueue;
  tg = !1;
  var f = e.baseQueue,
      g = e.shared.pending;

  if (null !== g) {
    if (null !== f) {
      var h = f.next;
      f.next = g.next;
      g.next = h;
    }

    f = g;
    e.shared.pending = null;
    h = a.alternate;
    null !== h && (h = h.updateQueue, null !== h && (h.baseQueue = g));
  }

  if (null !== f) {
    h = f.next;
    var k = e.baseState,
        l = 0,
        m = null,
        p = null,
        x = null;

    if (null !== h) {
      var z = h;

      do {
        g = z.expirationTime;

        if (g < d) {
          var ca = {
            expirationTime: z.expirationTime,
            suspenseConfig: z.suspenseConfig,
            tag: z.tag,
            payload: z.payload,
            callback: z.callback,
            next: null
          };
          null === x ? (p = x = ca, m = k) : x = x.next = ca;
          g > l && (l = g);
        } else {
          null !== x && (x = x.next = {
            expirationTime: 1073741823,
            suspenseConfig: z.suspenseConfig,
            tag: z.tag,
            payload: z.payload,
            callback: z.callback,
            next: null
          });
          Ag(g, z.suspenseConfig);

          a: {
            var D = a,
                t = z;
            g = b;
            ca = c;

            switch (t.tag) {
              case 1:
                D = t.payload;

                if ("function" === typeof D) {
                  k = D.call(ca, k, g);
                  break a;
                }

                k = D;
                break a;

              case 3:
                D.effectTag = D.effectTag & -4097 | 64;

              case 0:
                D = t.payload;
                g = "function" === typeof D ? D.call(ca, k, g) : D;
                if (null === g || void 0 === g) break a;
                k = n({}, k, g);
                break a;

              case 2:
                tg = !0;
            }
          }

          null !== z.callback && (a.effectTag |= 32, g = e.effects, null === g ? e.effects = [z] : g.push(z));
        }

        z = z.next;
        if (null === z || z === h) if (g = e.shared.pending, null === g) break;else z = f.next = g.next, g.next = h, e.baseQueue = f = g, e.shared.pending = null;
      } while (1);
    }

    null === x ? m = k : x.next = p;
    e.baseState = m;
    e.baseQueue = x;
    Bg(l);
    a.expirationTime = l;
    a.memoizedState = k;
  }
}

function Cg(a, b, c) {
  a = b.effects;
  b.effects = null;
  if (null !== a) for (b = 0; b < a.length; b++) {
    var d = a[b],
        e = d.callback;

    if (null !== e) {
      d.callback = null;
      d = e;
      e = c;
      if ("function" !== typeof d) throw Error(u(191, d));
      d.call(e);
    }
  }
}

var Dg = Wa.ReactCurrentBatchConfig,
    Eg = new aa.Component().refs;

function Fg(a, b, c, d) {
  b = a.memoizedState;
  c = c(d, b);
  c = null === c || void 0 === c ? b : n({}, b, c);
  a.memoizedState = c;
  0 === a.expirationTime && (a.updateQueue.baseState = c);
}

var Jg = {
  isMounted: function (a) {
    return (a = a._reactInternalFiber) ? dc(a) === a : !1;
  },
  enqueueSetState: function (a, b, c) {
    a = a._reactInternalFiber;
    var d = Gg(),
        e = Dg.suspense;
    d = Hg(d, a, e);
    e = wg(d, e);
    e.payload = b;
    void 0 !== c && null !== c && (e.callback = c);
    xg(a, e);
    Ig(a, d);
  },
  enqueueReplaceState: function (a, b, c) {
    a = a._reactInternalFiber;
    var d = Gg(),
        e = Dg.suspense;
    d = Hg(d, a, e);
    e = wg(d, e);
    e.tag = 1;
    e.payload = b;
    void 0 !== c && null !== c && (e.callback = c);
    xg(a, e);
    Ig(a, d);
  },
  enqueueForceUpdate: function (a, b) {
    a = a._reactInternalFiber;
    var c = Gg(),
        d = Dg.suspense;
    c = Hg(c, a, d);
    d = wg(c, d);
    d.tag = 2;
    void 0 !== b && null !== b && (d.callback = b);
    xg(a, d);
    Ig(a, c);
  }
};

function Kg(a, b, c, d, e, f, g) {
  a = a.stateNode;
  return "function" === typeof a.shouldComponentUpdate ? a.shouldComponentUpdate(d, f, g) : b.prototype && b.prototype.isPureReactComponent ? !bf(c, d) || !bf(e, f) : !0;
}

function Lg(a, b, c) {
  var d = !1,
      e = Af;
  var f = b.contextType;
  "object" === typeof f && null !== f ? f = sg(f) : (e = L(b) ? Bf : J.current, d = b.contextTypes, f = (d = null !== d && void 0 !== d) ? Cf(a, e) : Af);
  b = new b(c, f);
  a.memoizedState = null !== b.state && void 0 !== b.state ? b.state : null;
  b.updater = Jg;
  a.stateNode = b;
  b._reactInternalFiber = a;
  d && (a = a.stateNode, a.__reactInternalMemoizedUnmaskedChildContext = e, a.__reactInternalMemoizedMaskedChildContext = f);
  return b;
}

function Mg(a, b, c, d) {
  a = b.state;
  "function" === typeof b.componentWillReceiveProps && b.componentWillReceiveProps(c, d);
  "function" === typeof b.UNSAFE_componentWillReceiveProps && b.UNSAFE_componentWillReceiveProps(c, d);
  b.state !== a && Jg.enqueueReplaceState(b, b.state, null);
}

function Ng(a, b, c, d) {
  var e = a.stateNode;
  e.props = c;
  e.state = a.memoizedState;
  e.refs = Eg;
  ug(a);
  var f = b.contextType;
  "object" === typeof f && null !== f ? e.context = sg(f) : (f = L(b) ? Bf : J.current, e.context = Cf(a, f));
  zg(a, c, e, d);
  e.state = a.memoizedState;
  f = b.getDerivedStateFromProps;
  "function" === typeof f && (Fg(a, b, f, c), e.state = a.memoizedState);
  "function" === typeof b.getDerivedStateFromProps || "function" === typeof e.getSnapshotBeforeUpdate || "function" !== typeof e.UNSAFE_componentWillMount && "function" !== typeof e.componentWillMount || (b = e.state, "function" === typeof e.componentWillMount && e.componentWillMount(), "function" === typeof e.UNSAFE_componentWillMount && e.UNSAFE_componentWillMount(), b !== e.state && Jg.enqueueReplaceState(e, e.state, null), zg(a, c, e, d), e.state = a.memoizedState);
  "function" === typeof e.componentDidMount && (a.effectTag |= 4);
}

var Og = Array.isArray;

function Pg(a, b, c) {
  a = c.ref;

  if (null !== a && "function" !== typeof a && "object" !== typeof a) {
    if (c._owner) {
      c = c._owner;

      if (c) {
        if (1 !== c.tag) throw Error(u(309));
        var d = c.stateNode;
      }

      if (!d) throw Error(u(147, a));
      var e = "" + a;
      if (null !== b && null !== b.ref && "function" === typeof b.ref && b.ref._stringRef === e) return b.ref;

      b = function (a) {
        var b = d.refs;
        b === Eg && (b = d.refs = {});
        null === a ? delete b[e] : b[e] = a;
      };

      b._stringRef = e;
      return b;
    }

    if ("string" !== typeof a) throw Error(u(284));
    if (!c._owner) throw Error(u(290, a));
  }

  return a;
}

function Qg(a, b) {
  if ("textarea" !== a.type) throw Error(u(31, "[object Object]" === Object.prototype.toString.call(b) ? "object with keys {" + Object.keys(b).join(", ") + "}" : b, ""));
}

function Rg(a) {
  function b(b, c) {
    if (a) {
      var d = b.lastEffect;
      null !== d ? (d.nextEffect = c, b.lastEffect = c) : b.firstEffect = b.lastEffect = c;
      c.nextEffect = null;
      c.effectTag = 8;
    }
  }

  function c(c, d) {
    if (!a) return null;

    for (; null !== d;) b(c, d), d = d.sibling;

    return null;
  }

  function d(a, b) {
    for (a = new Map(); null !== b;) null !== b.key ? a.set(b.key, b) : a.set(b.index, b), b = b.sibling;

    return a;
  }

  function e(a, b) {
    a = Sg(a, b);
    a.index = 0;
    a.sibling = null;
    return a;
  }

  function f(b, c, d) {
    b.index = d;
    if (!a) return c;
    d = b.alternate;
    if (null !== d) return d = d.index, d < c ? (b.effectTag = 2, c) : d;
    b.effectTag = 2;
    return c;
  }

  function g(b) {
    a && null === b.alternate && (b.effectTag = 2);
    return b;
  }

  function h(a, b, c, d) {
    if (null === b || 6 !== b.tag) return b = Tg(c, a.mode, d), b.return = a, b;
    b = e(b, c);
    b.return = a;
    return b;
  }

  function k(a, b, c, d) {
    if (null !== b && b.elementType === c.type) return d = e(b, c.props), d.ref = Pg(a, b, c), d.return = a, d;
    d = Ug(c.type, c.key, c.props, null, a.mode, d);
    d.ref = Pg(a, b, c);
    d.return = a;
    return d;
  }

  function l(a, b, c, d) {
    if (null === b || 4 !== b.tag || b.stateNode.containerInfo !== c.containerInfo || b.stateNode.implementation !== c.implementation) return b = Vg(c, a.mode, d), b.return = a, b;
    b = e(b, c.children || []);
    b.return = a;
    return b;
  }

  function m(a, b, c, d, f) {
    if (null === b || 7 !== b.tag) return b = Wg(c, a.mode, d, f), b.return = a, b;
    b = e(b, c);
    b.return = a;
    return b;
  }

  function p(a, b, c) {
    if ("string" === typeof b || "number" === typeof b) return b = Tg("" + b, a.mode, c), b.return = a, b;

    if ("object" === typeof b && null !== b) {
      switch (b.$$typeof) {
        case Za:
          return c = Ug(b.type, b.key, b.props, null, a.mode, c), c.ref = Pg(a, null, b), c.return = a, c;

        case $a:
          return b = Vg(b, a.mode, c), b.return = a, b;
      }

      if (Og(b) || nb(b)) return b = Wg(b, a.mode, c, null), b.return = a, b;
      Qg(a, b);
    }

    return null;
  }

  function x(a, b, c, d) {
    var e = null !== b ? b.key : null;
    if ("string" === typeof c || "number" === typeof c) return null !== e ? null : h(a, b, "" + c, d);

    if ("object" === typeof c && null !== c) {
      switch (c.$$typeof) {
        case Za:
          return c.key === e ? c.type === ab ? m(a, b, c.props.children, d, e) : k(a, b, c, d) : null;

        case $a:
          return c.key === e ? l(a, b, c, d) : null;
      }

      if (Og(c) || nb(c)) return null !== e ? null : m(a, b, c, d, null);
      Qg(a, c);
    }

    return null;
  }

  function z(a, b, c, d, e) {
    if ("string" === typeof d || "number" === typeof d) return a = a.get(c) || null, h(b, a, "" + d, e);

    if ("object" === typeof d && null !== d) {
      switch (d.$$typeof) {
        case Za:
          return a = a.get(null === d.key ? c : d.key) || null, d.type === ab ? m(b, a, d.props.children, e, d.key) : k(b, a, d, e);

        case $a:
          return a = a.get(null === d.key ? c : d.key) || null, l(b, a, d, e);
      }

      if (Og(d) || nb(d)) return a = a.get(c) || null, m(b, a, d, e, null);
      Qg(b, d);
    }

    return null;
  }

  function ca(e, g, h, k) {
    for (var l = null, t = null, m = g, y = g = 0, A = null; null !== m && y < h.length; y++) {
      m.index > y ? (A = m, m = null) : A = m.sibling;
      var q = x(e, m, h[y], k);

      if (null === q) {
        null === m && (m = A);
        break;
      }

      a && m && null === q.alternate && b(e, m);
      g = f(q, g, y);
      null === t ? l = q : t.sibling = q;
      t = q;
      m = A;
    }

    if (y === h.length) return c(e, m), l;

    if (null === m) {
      for (; y < h.length; y++) m = p(e, h[y], k), null !== m && (g = f(m, g, y), null === t ? l = m : t.sibling = m, t = m);

      return l;
    }

    for (m = d(e, m); y < h.length; y++) A = z(m, e, y, h[y], k), null !== A && (a && null !== A.alternate && m.delete(null === A.key ? y : A.key), g = f(A, g, y), null === t ? l = A : t.sibling = A, t = A);

    a && m.forEach(function (a) {
      return b(e, a);
    });
    return l;
  }

  function D(e, g, h, l) {
    var k = nb(h);
    if ("function" !== typeof k) throw Error(u(150));
    h = k.call(h);
    if (null == h) throw Error(u(151));

    for (var m = k = null, t = g, y = g = 0, A = null, q = h.next(); null !== t && !q.done; y++, q = h.next()) {
      t.index > y ? (A = t, t = null) : A = t.sibling;
      var D = x(e, t, q.value, l);

      if (null === D) {
        null === t && (t = A);
        break;
      }

      a && t && null === D.alternate && b(e, t);
      g = f(D, g, y);
      null === m ? k = D : m.sibling = D;
      m = D;
      t = A;
    }

    if (q.done) return c(e, t), k;

    if (null === t) {
      for (; !q.done; y++, q = h.next()) q = p(e, q.value, l), null !== q && (g = f(q, g, y), null === m ? k = q : m.sibling = q, m = q);

      return k;
    }

    for (t = d(e, t); !q.done; y++, q = h.next()) q = z(t, e, y, q.value, l), null !== q && (a && null !== q.alternate && t.delete(null === q.key ? y : q.key), g = f(q, g, y), null === m ? k = q : m.sibling = q, m = q);

    a && t.forEach(function (a) {
      return b(e, a);
    });
    return k;
  }

  return function (a, d, f, h) {
    var k = "object" === typeof f && null !== f && f.type === ab && null === f.key;
    k && (f = f.props.children);
    var l = "object" === typeof f && null !== f;
    if (l) switch (f.$$typeof) {
      case Za:
        a: {
          l = f.key;

          for (k = d; null !== k;) {
            if (k.key === l) {
              switch (k.tag) {
                case 7:
                  if (f.type === ab) {
                    c(a, k.sibling);
                    d = e(k, f.props.children);
                    d.return = a;
                    a = d;
                    break a;
                  }

                  break;

                default:
                  if (k.elementType === f.type) {
                    c(a, k.sibling);
                    d = e(k, f.props);
                    d.ref = Pg(a, k, f);
                    d.return = a;
                    a = d;
                    break a;
                  }

              }

              c(a, k);
              break;
            } else b(a, k);

            k = k.sibling;
          }

          f.type === ab ? (d = Wg(f.props.children, a.mode, h, f.key), d.return = a, a = d) : (h = Ug(f.type, f.key, f.props, null, a.mode, h), h.ref = Pg(a, d, f), h.return = a, a = h);
        }

        return g(a);

      case $a:
        a: {
          for (k = f.key; null !== d;) {
            if (d.key === k) {
              if (4 === d.tag && d.stateNode.containerInfo === f.containerInfo && d.stateNode.implementation === f.implementation) {
                c(a, d.sibling);
                d = e(d, f.children || []);
                d.return = a;
                a = d;
                break a;
              } else {
                c(a, d);
                break;
              }
            } else b(a, d);
            d = d.sibling;
          }

          d = Vg(f, a.mode, h);
          d.return = a;
          a = d;
        }

        return g(a);
    }
    if ("string" === typeof f || "number" === typeof f) return f = "" + f, null !== d && 6 === d.tag ? (c(a, d.sibling), d = e(d, f), d.return = a, a = d) : (c(a, d), d = Tg(f, a.mode, h), d.return = a, a = d), g(a);
    if (Og(f)) return ca(a, d, f, h);
    if (nb(f)) return D(a, d, f, h);
    l && Qg(a, f);
    if ("undefined" === typeof f && !k) switch (a.tag) {
      case 1:
      case 0:
        throw a = a.type, Error(u(152, a.displayName || a.name || "Component"));
    }
    return c(a, d);
  };
}

var Xg = Rg(!0),
    Yg = Rg(!1),
    Zg = {},
    $g = {
  current: Zg
},
    ah = {
  current: Zg
},
    bh = {
  current: Zg
};

function ch(a) {
  if (a === Zg) throw Error(u(174));
  return a;
}

function dh(a, b) {
  I(bh, b);
  I(ah, a);
  I($g, Zg);
  a = b.nodeType;

  switch (a) {
    case 9:
    case 11:
      b = (b = b.documentElement) ? b.namespaceURI : Ob(null, "");
      break;

    default:
      a = 8 === a ? b.parentNode : b, b = a.namespaceURI || null, a = a.tagName, b = Ob(b, a);
  }

  H($g);
  I($g, b);
}

function eh() {
  H($g);
  H(ah);
  H(bh);
}

function fh(a) {
  ch(bh.current);
  var b = ch($g.current);
  var c = Ob(b, a.type);
  b !== c && (I(ah, a), I($g, c));
}

function gh(a) {
  ah.current === a && (H($g), H(ah));
}

var M = {
  current: 0
};

function hh(a) {
  for (var b = a; null !== b;) {
    if (13 === b.tag) {
      var c = b.memoizedState;
      if (null !== c && (c = c.dehydrated, null === c || c.data === Bd || c.data === Cd)) return b;
    } else if (19 === b.tag && void 0 !== b.memoizedProps.revealOrder) {
      if (0 !== (b.effectTag & 64)) return b;
    } else if (null !== b.child) {
      b.child.return = b;
      b = b.child;
      continue;
    }

    if (b === a) break;

    for (; null === b.sibling;) {
      if (null === b.return || b.return === a) return null;
      b = b.return;
    }

    b.sibling.return = b.return;
    b = b.sibling;
  }

  return null;
}

function ih(a, b) {
  return {
    responder: a,
    props: b
  };
}

var jh = Wa.ReactCurrentDispatcher,
    kh = Wa.ReactCurrentBatchConfig,
    lh = 0,
    N = null,
    O = null,
    P = null,
    mh = !1;

function Q() {
  throw Error(u(321));
}

function nh(a, b) {
  if (null === b) return !1;

  for (var c = 0; c < b.length && c < a.length; c++) if (!$e(a[c], b[c])) return !1;

  return !0;
}

function oh(a, b, c, d, e, f) {
  lh = f;
  N = b;
  b.memoizedState = null;
  b.updateQueue = null;
  b.expirationTime = 0;
  jh.current = null === a || null === a.memoizedState ? ph : qh;
  a = c(d, e);

  if (b.expirationTime === lh) {
    f = 0;

    do {
      b.expirationTime = 0;
      if (!(25 > f)) throw Error(u(301));
      f += 1;
      P = O = null;
      b.updateQueue = null;
      jh.current = rh;
      a = c(d, e);
    } while (b.expirationTime === lh);
  }

  jh.current = sh;
  b = null !== O && null !== O.next;
  lh = 0;
  P = O = N = null;
  mh = !1;
  if (b) throw Error(u(300));
  return a;
}

function th() {
  var a = {
    memoizedState: null,
    baseState: null,
    baseQueue: null,
    queue: null,
    next: null
  };
  null === P ? N.memoizedState = P = a : P = P.next = a;
  return P;
}

function uh() {
  if (null === O) {
    var a = N.alternate;
    a = null !== a ? a.memoizedState : null;
  } else a = O.next;

  var b = null === P ? N.memoizedState : P.next;
  if (null !== b) P = b, O = a;else {
    if (null === a) throw Error(u(310));
    O = a;
    a = {
      memoizedState: O.memoizedState,
      baseState: O.baseState,
      baseQueue: O.baseQueue,
      queue: O.queue,
      next: null
    };
    null === P ? N.memoizedState = P = a : P = P.next = a;
  }
  return P;
}

function vh(a, b) {
  return "function" === typeof b ? b(a) : b;
}

function wh(a) {
  var b = uh(),
      c = b.queue;
  if (null === c) throw Error(u(311));
  c.lastRenderedReducer = a;
  var d = O,
      e = d.baseQueue,
      f = c.pending;

  if (null !== f) {
    if (null !== e) {
      var g = e.next;
      e.next = f.next;
      f.next = g;
    }

    d.baseQueue = e = f;
    c.pending = null;
  }

  if (null !== e) {
    e = e.next;
    d = d.baseState;
    var h = g = f = null,
        k = e;

    do {
      var l = k.expirationTime;

      if (l < lh) {
        var m = {
          expirationTime: k.expirationTime,
          suspenseConfig: k.suspenseConfig,
          action: k.action,
          eagerReducer: k.eagerReducer,
          eagerState: k.eagerState,
          next: null
        };
        null === h ? (g = h = m, f = d) : h = h.next = m;
        l > N.expirationTime && (N.expirationTime = l, Bg(l));
      } else null !== h && (h = h.next = {
        expirationTime: 1073741823,
        suspenseConfig: k.suspenseConfig,
        action: k.action,
        eagerReducer: k.eagerReducer,
        eagerState: k.eagerState,
        next: null
      }), Ag(l, k.suspenseConfig), d = k.eagerReducer === a ? k.eagerState : a(d, k.action);

      k = k.next;
    } while (null !== k && k !== e);

    null === h ? f = d : h.next = g;
    $e(d, b.memoizedState) || (rg = !0);
    b.memoizedState = d;
    b.baseState = f;
    b.baseQueue = h;
    c.lastRenderedState = d;
  }

  return [b.memoizedState, c.dispatch];
}

function xh(a) {
  var b = uh(),
      c = b.queue;
  if (null === c) throw Error(u(311));
  c.lastRenderedReducer = a;
  var d = c.dispatch,
      e = c.pending,
      f = b.memoizedState;

  if (null !== e) {
    c.pending = null;
    var g = e = e.next;

    do f = a(f, g.action), g = g.next; while (g !== e);

    $e(f, b.memoizedState) || (rg = !0);
    b.memoizedState = f;
    null === b.baseQueue && (b.baseState = f);
    c.lastRenderedState = f;
  }

  return [f, d];
}

function yh(a) {
  var b = th();
  "function" === typeof a && (a = a());
  b.memoizedState = b.baseState = a;
  a = b.queue = {
    pending: null,
    dispatch: null,
    lastRenderedReducer: vh,
    lastRenderedState: a
  };
  a = a.dispatch = zh.bind(null, N, a);
  return [b.memoizedState, a];
}

function Ah(a, b, c, d) {
  a = {
    tag: a,
    create: b,
    destroy: c,
    deps: d,
    next: null
  };
  b = N.updateQueue;
  null === b ? (b = {
    lastEffect: null
  }, N.updateQueue = b, b.lastEffect = a.next = a) : (c = b.lastEffect, null === c ? b.lastEffect = a.next = a : (d = c.next, c.next = a, a.next = d, b.lastEffect = a));
  return a;
}

function Bh() {
  return uh().memoizedState;
}

function Ch(a, b, c, d) {
  var e = th();
  N.effectTag |= a;
  e.memoizedState = Ah(1 | b, c, void 0, void 0 === d ? null : d);
}

function Dh(a, b, c, d) {
  var e = uh();
  d = void 0 === d ? null : d;
  var f = void 0;

  if (null !== O) {
    var g = O.memoizedState;
    f = g.destroy;

    if (null !== d && nh(d, g.deps)) {
      Ah(b, c, f, d);
      return;
    }
  }

  N.effectTag |= a;
  e.memoizedState = Ah(1 | b, c, f, d);
}

function Eh(a, b) {
  return Ch(516, 4, a, b);
}

function Fh(a, b) {
  return Dh(516, 4, a, b);
}

function Gh(a, b) {
  return Dh(4, 2, a, b);
}

function Hh(a, b) {
  if ("function" === typeof b) return a = a(), b(a), function () {
    b(null);
  };
  if (null !== b && void 0 !== b) return a = a(), b.current = a, function () {
    b.current = null;
  };
}

function Ih(a, b, c) {
  c = null !== c && void 0 !== c ? c.concat([a]) : null;
  return Dh(4, 2, Hh.bind(null, b, a), c);
}

function Jh() {}

function Kh(a, b) {
  th().memoizedState = [a, void 0 === b ? null : b];
  return a;
}

function Lh(a, b) {
  var c = uh();
  b = void 0 === b ? null : b;
  var d = c.memoizedState;
  if (null !== d && null !== b && nh(b, d[1])) return d[0];
  c.memoizedState = [a, b];
  return a;
}

function Mh(a, b) {
  var c = uh();
  b = void 0 === b ? null : b;
  var d = c.memoizedState;
  if (null !== d && null !== b && nh(b, d[1])) return d[0];
  a = a();
  c.memoizedState = [a, b];
  return a;
}

function Nh(a, b, c) {
  var d = ag();
  cg(98 > d ? 98 : d, function () {
    a(!0);
  });
  cg(97 < d ? 97 : d, function () {
    var d = kh.suspense;
    kh.suspense = void 0 === b ? null : b;

    try {
      a(!1), c();
    } finally {
      kh.suspense = d;
    }
  });
}

function zh(a, b, c) {
  var d = Gg(),
      e = Dg.suspense;
  d = Hg(d, a, e);
  e = {
    expirationTime: d,
    suspenseConfig: e,
    action: c,
    eagerReducer: null,
    eagerState: null,
    next: null
  };
  var f = b.pending;
  null === f ? e.next = e : (e.next = f.next, f.next = e);
  b.pending = e;
  f = a.alternate;
  if (a === N || null !== f && f === N) mh = !0, e.expirationTime = lh, N.expirationTime = lh;else {
    if (0 === a.expirationTime && (null === f || 0 === f.expirationTime) && (f = b.lastRenderedReducer, null !== f)) try {
      var g = b.lastRenderedState,
          h = f(g, c);
      e.eagerReducer = f;
      e.eagerState = h;
      if ($e(h, g)) return;
    } catch (k) {} finally {}
    Ig(a, d);
  }
}

var sh = {
  readContext: sg,
  useCallback: Q,
  useContext: Q,
  useEffect: Q,
  useImperativeHandle: Q,
  useLayoutEffect: Q,
  useMemo: Q,
  useReducer: Q,
  useRef: Q,
  useState: Q,
  useDebugValue: Q,
  useResponder: Q,
  useDeferredValue: Q,
  useTransition: Q
},
    ph = {
  readContext: sg,
  useCallback: Kh,
  useContext: sg,
  useEffect: Eh,
  useImperativeHandle: function (a, b, c) {
    c = null !== c && void 0 !== c ? c.concat([a]) : null;
    return Ch(4, 2, Hh.bind(null, b, a), c);
  },
  useLayoutEffect: function (a, b) {
    return Ch(4, 2, a, b);
  },
  useMemo: function (a, b) {
    var c = th();
    b = void 0 === b ? null : b;
    a = a();
    c.memoizedState = [a, b];
    return a;
  },
  useReducer: function (a, b, c) {
    var d = th();
    b = void 0 !== c ? c(b) : b;
    d.memoizedState = d.baseState = b;
    a = d.queue = {
      pending: null,
      dispatch: null,
      lastRenderedReducer: a,
      lastRenderedState: b
    };
    a = a.dispatch = zh.bind(null, N, a);
    return [d.memoizedState, a];
  },
  useRef: function (a) {
    var b = th();
    a = {
      current: a
    };
    return b.memoizedState = a;
  },
  useState: yh,
  useDebugValue: Jh,
  useResponder: ih,
  useDeferredValue: function (a, b) {
    var c = yh(a),
        d = c[0],
        e = c[1];
    Eh(function () {
      var c = kh.suspense;
      kh.suspense = void 0 === b ? null : b;

      try {
        e(a);
      } finally {
        kh.suspense = c;
      }
    }, [a, b]);
    return d;
  },
  useTransition: function (a) {
    var b = yh(!1),
        c = b[0];
    b = b[1];
    return [Kh(Nh.bind(null, b, a), [b, a]), c];
  }
},
    qh = {
  readContext: sg,
  useCallback: Lh,
  useContext: sg,
  useEffect: Fh,
  useImperativeHandle: Ih,
  useLayoutEffect: Gh,
  useMemo: Mh,
  useReducer: wh,
  useRef: Bh,
  useState: function () {
    return wh(vh);
  },
  useDebugValue: Jh,
  useResponder: ih,
  useDeferredValue: function (a, b) {
    var c = wh(vh),
        d = c[0],
        e = c[1];
    Fh(function () {
      var c = kh.suspense;
      kh.suspense = void 0 === b ? null : b;

      try {
        e(a);
      } finally {
        kh.suspense = c;
      }
    }, [a, b]);
    return d;
  },
  useTransition: function (a) {
    var b = wh(vh),
        c = b[0];
    b = b[1];
    return [Lh(Nh.bind(null, b, a), [b, a]), c];
  }
},
    rh = {
  readContext: sg,
  useCallback: Lh,
  useContext: sg,
  useEffect: Fh,
  useImperativeHandle: Ih,
  useLayoutEffect: Gh,
  useMemo: Mh,
  useReducer: xh,
  useRef: Bh,
  useState: function () {
    return xh(vh);
  },
  useDebugValue: Jh,
  useResponder: ih,
  useDeferredValue: function (a, b) {
    var c = xh(vh),
        d = c[0],
        e = c[1];
    Fh(function () {
      var c = kh.suspense;
      kh.suspense = void 0 === b ? null : b;

      try {
        e(a);
      } finally {
        kh.suspense = c;
      }
    }, [a, b]);
    return d;
  },
  useTransition: function (a) {
    var b = xh(vh),
        c = b[0];
    b = b[1];
    return [Lh(Nh.bind(null, b, a), [b, a]), c];
  }
},
    Oh = null,
    Ph = null,
    Qh = !1;

function Rh(a, b) {
  var c = Sh(5, null, null, 0);
  c.elementType = "DELETED";
  c.type = "DELETED";
  c.stateNode = b;
  c.return = a;
  c.effectTag = 8;
  null !== a.lastEffect ? (a.lastEffect.nextEffect = c, a.lastEffect = c) : a.firstEffect = a.lastEffect = c;
}

function Th(a, b) {
  switch (a.tag) {
    case 5:
      var c = a.type;
      b = 1 !== b.nodeType || c.toLowerCase() !== b.nodeName.toLowerCase() ? null : b;
      return null !== b ? (a.stateNode = b, !0) : !1;

    case 6:
      return b = "" === a.pendingProps || 3 !== b.nodeType ? null : b, null !== b ? (a.stateNode = b, !0) : !1;

    case 13:
      return !1;

    default:
      return !1;
  }
}

function Uh(a) {
  if (Qh) {
    var b = Ph;

    if (b) {
      var c = b;

      if (!Th(a, b)) {
        b = Jd(c.nextSibling);

        if (!b || !Th(a, b)) {
          a.effectTag = a.effectTag & -1025 | 2;
          Qh = !1;
          Oh = a;
          return;
        }

        Rh(Oh, c);
      }

      Oh = a;
      Ph = Jd(b.firstChild);
    } else a.effectTag = a.effectTag & -1025 | 2, Qh = !1, Oh = a;
  }
}

function Vh(a) {
  for (a = a.return; null !== a && 5 !== a.tag && 3 !== a.tag && 13 !== a.tag;) a = a.return;

  Oh = a;
}

function Wh(a) {
  if (a !== Oh) return !1;
  if (!Qh) return Vh(a), Qh = !0, !1;
  var b = a.type;
  if (5 !== a.tag || "head" !== b && "body" !== b && !Gd(b, a.memoizedProps)) for (b = Ph; b;) Rh(a, b), b = Jd(b.nextSibling);
  Vh(a);

  if (13 === a.tag) {
    a = a.memoizedState;
    a = null !== a ? a.dehydrated : null;
    if (!a) throw Error(u(317));

    a: {
      a = a.nextSibling;

      for (b = 0; a;) {
        if (8 === a.nodeType) {
          var c = a.data;

          if (c === Ad) {
            if (0 === b) {
              Ph = Jd(a.nextSibling);
              break a;
            }

            b--;
          } else c !== zd && c !== Cd && c !== Bd || b++;
        }

        a = a.nextSibling;
      }

      Ph = null;
    }
  } else Ph = Oh ? Jd(a.stateNode.nextSibling) : null;

  return !0;
}

function Xh() {
  Ph = Oh = null;
  Qh = !1;
}

var Yh = Wa.ReactCurrentOwner,
    rg = !1;

function R(a, b, c, d) {
  b.child = null === a ? Yg(b, null, c, d) : Xg(b, a.child, c, d);
}

function Zh(a, b, c, d, e) {
  c = c.render;
  var f = b.ref;
  qg(b, e);
  d = oh(a, b, c, d, f, e);
  if (null !== a && !rg) return b.updateQueue = a.updateQueue, b.effectTag &= -517, a.expirationTime <= e && (a.expirationTime = 0), $h(a, b, e);
  b.effectTag |= 1;
  R(a, b, d, e);
  return b.child;
}

function ai(a, b, c, d, e, f) {
  if (null === a) {
    var g = c.type;
    if ("function" === typeof g && !bi(g) && void 0 === g.defaultProps && null === c.compare && void 0 === c.defaultProps) return b.tag = 15, b.type = g, ci(a, b, g, d, e, f);
    a = Ug(c.type, null, d, null, b.mode, f);
    a.ref = b.ref;
    a.return = b;
    return b.child = a;
  }

  g = a.child;
  if (e < f && (e = g.memoizedProps, c = c.compare, c = null !== c ? c : bf, c(e, d) && a.ref === b.ref)) return $h(a, b, f);
  b.effectTag |= 1;
  a = Sg(g, d);
  a.ref = b.ref;
  a.return = b;
  return b.child = a;
}

function ci(a, b, c, d, e, f) {
  return null !== a && bf(a.memoizedProps, d) && a.ref === b.ref && (rg = !1, e < f) ? (b.expirationTime = a.expirationTime, $h(a, b, f)) : di(a, b, c, d, f);
}

function ei(a, b) {
  var c = b.ref;
  if (null === a && null !== c || null !== a && a.ref !== c) b.effectTag |= 128;
}

function di(a, b, c, d, e) {
  var f = L(c) ? Bf : J.current;
  f = Cf(b, f);
  qg(b, e);
  c = oh(a, b, c, d, f, e);
  if (null !== a && !rg) return b.updateQueue = a.updateQueue, b.effectTag &= -517, a.expirationTime <= e && (a.expirationTime = 0), $h(a, b, e);
  b.effectTag |= 1;
  R(a, b, c, e);
  return b.child;
}

function fi(a, b, c, d, e) {
  if (L(c)) {
    var f = !0;
    Gf(b);
  } else f = !1;

  qg(b, e);
  if (null === b.stateNode) null !== a && (a.alternate = null, b.alternate = null, b.effectTag |= 2), Lg(b, c, d), Ng(b, c, d, e), d = !0;else if (null === a) {
    var g = b.stateNode,
        h = b.memoizedProps;
    g.props = h;
    var k = g.context,
        l = c.contextType;
    "object" === typeof l && null !== l ? l = sg(l) : (l = L(c) ? Bf : J.current, l = Cf(b, l));
    var m = c.getDerivedStateFromProps,
        p = "function" === typeof m || "function" === typeof g.getSnapshotBeforeUpdate;
    p || "function" !== typeof g.UNSAFE_componentWillReceiveProps && "function" !== typeof g.componentWillReceiveProps || (h !== d || k !== l) && Mg(b, g, d, l);
    tg = !1;
    var x = b.memoizedState;
    g.state = x;
    zg(b, d, g, e);
    k = b.memoizedState;
    h !== d || x !== k || K.current || tg ? ("function" === typeof m && (Fg(b, c, m, d), k = b.memoizedState), (h = tg || Kg(b, c, h, d, x, k, l)) ? (p || "function" !== typeof g.UNSAFE_componentWillMount && "function" !== typeof g.componentWillMount || ("function" === typeof g.componentWillMount && g.componentWillMount(), "function" === typeof g.UNSAFE_componentWillMount && g.UNSAFE_componentWillMount()), "function" === typeof g.componentDidMount && (b.effectTag |= 4)) : ("function" === typeof g.componentDidMount && (b.effectTag |= 4), b.memoizedProps = d, b.memoizedState = k), g.props = d, g.state = k, g.context = l, d = h) : ("function" === typeof g.componentDidMount && (b.effectTag |= 4), d = !1);
  } else g = b.stateNode, vg(a, b), h = b.memoizedProps, g.props = b.type === b.elementType ? h : ig(b.type, h), k = g.context, l = c.contextType, "object" === typeof l && null !== l ? l = sg(l) : (l = L(c) ? Bf : J.current, l = Cf(b, l)), m = c.getDerivedStateFromProps, (p = "function" === typeof m || "function" === typeof g.getSnapshotBeforeUpdate) || "function" !== typeof g.UNSAFE_componentWillReceiveProps && "function" !== typeof g.componentWillReceiveProps || (h !== d || k !== l) && Mg(b, g, d, l), tg = !1, k = b.memoizedState, g.state = k, zg(b, d, g, e), x = b.memoizedState, h !== d || k !== x || K.current || tg ? ("function" === typeof m && (Fg(b, c, m, d), x = b.memoizedState), (m = tg || Kg(b, c, h, d, k, x, l)) ? (p || "function" !== typeof g.UNSAFE_componentWillUpdate && "function" !== typeof g.componentWillUpdate || ("function" === typeof g.componentWillUpdate && g.componentWillUpdate(d, x, l), "function" === typeof g.UNSAFE_componentWillUpdate && g.UNSAFE_componentWillUpdate(d, x, l)), "function" === typeof g.componentDidUpdate && (b.effectTag |= 4), "function" === typeof g.getSnapshotBeforeUpdate && (b.effectTag |= 256)) : ("function" !== typeof g.componentDidUpdate || h === a.memoizedProps && k === a.memoizedState || (b.effectTag |= 4), "function" !== typeof g.getSnapshotBeforeUpdate || h === a.memoizedProps && k === a.memoizedState || (b.effectTag |= 256), b.memoizedProps = d, b.memoizedState = x), g.props = d, g.state = x, g.context = l, d = m) : ("function" !== typeof g.componentDidUpdate || h === a.memoizedProps && k === a.memoizedState || (b.effectTag |= 4), "function" !== typeof g.getSnapshotBeforeUpdate || h === a.memoizedProps && k === a.memoizedState || (b.effectTag |= 256), d = !1);
  return gi(a, b, c, d, f, e);
}

function gi(a, b, c, d, e, f) {
  ei(a, b);
  var g = 0 !== (b.effectTag & 64);
  if (!d && !g) return e && Hf(b, c, !1), $h(a, b, f);
  d = b.stateNode;
  Yh.current = b;
  var h = g && "function" !== typeof c.getDerivedStateFromError ? null : d.render();
  b.effectTag |= 1;
  null !== a && g ? (b.child = Xg(b, a.child, null, f), b.child = Xg(b, null, h, f)) : R(a, b, h, f);
  b.memoizedState = d.state;
  e && Hf(b, c, !0);
  return b.child;
}

function hi(a) {
  var b = a.stateNode;
  b.pendingContext ? Ef(a, b.pendingContext, b.pendingContext !== b.context) : b.context && Ef(a, b.context, !1);
  dh(a, b.containerInfo);
}

var ii = {
  dehydrated: null,
  retryTime: 0
};

function ji(a, b, c) {
  var d = b.mode,
      e = b.pendingProps,
      f = M.current,
      g = !1,
      h;
  (h = 0 !== (b.effectTag & 64)) || (h = 0 !== (f & 2) && (null === a || null !== a.memoizedState));
  h ? (g = !0, b.effectTag &= -65) : null !== a && null === a.memoizedState || void 0 === e.fallback || !0 === e.unstable_avoidThisFallback || (f |= 1);
  I(M, f & 1);

  if (null === a) {
    void 0 !== e.fallback && Uh(b);

    if (g) {
      g = e.fallback;
      e = Wg(null, d, 0, null);
      e.return = b;
      if (0 === (b.mode & 2)) for (a = null !== b.memoizedState ? b.child.child : b.child, e.child = a; null !== a;) a.return = e, a = a.sibling;
      c = Wg(g, d, c, null);
      c.return = b;
      e.sibling = c;
      b.memoizedState = ii;
      b.child = e;
      return c;
    }

    d = e.children;
    b.memoizedState = null;
    return b.child = Yg(b, null, d, c);
  }

  if (null !== a.memoizedState) {
    a = a.child;
    d = a.sibling;

    if (g) {
      e = e.fallback;
      c = Sg(a, a.pendingProps);
      c.return = b;
      if (0 === (b.mode & 2) && (g = null !== b.memoizedState ? b.child.child : b.child, g !== a.child)) for (c.child = g; null !== g;) g.return = c, g = g.sibling;
      d = Sg(d, e);
      d.return = b;
      c.sibling = d;
      c.childExpirationTime = 0;
      b.memoizedState = ii;
      b.child = c;
      return d;
    }

    c = Xg(b, a.child, e.children, c);
    b.memoizedState = null;
    return b.child = c;
  }

  a = a.child;

  if (g) {
    g = e.fallback;
    e = Wg(null, d, 0, null);
    e.return = b;
    e.child = a;
    null !== a && (a.return = e);
    if (0 === (b.mode & 2)) for (a = null !== b.memoizedState ? b.child.child : b.child, e.child = a; null !== a;) a.return = e, a = a.sibling;
    c = Wg(g, d, c, null);
    c.return = b;
    e.sibling = c;
    c.effectTag |= 2;
    e.childExpirationTime = 0;
    b.memoizedState = ii;
    b.child = e;
    return c;
  }

  b.memoizedState = null;
  return b.child = Xg(b, a, e.children, c);
}

function ki(a, b) {
  a.expirationTime < b && (a.expirationTime = b);
  var c = a.alternate;
  null !== c && c.expirationTime < b && (c.expirationTime = b);
  pg(a.return, b);
}

function li(a, b, c, d, e, f) {
  var g = a.memoizedState;
  null === g ? a.memoizedState = {
    isBackwards: b,
    rendering: null,
    renderingStartTime: 0,
    last: d,
    tail: c,
    tailExpiration: 0,
    tailMode: e,
    lastEffect: f
  } : (g.isBackwards = b, g.rendering = null, g.renderingStartTime = 0, g.last = d, g.tail = c, g.tailExpiration = 0, g.tailMode = e, g.lastEffect = f);
}

function mi(a, b, c) {
  var d = b.pendingProps,
      e = d.revealOrder,
      f = d.tail;
  R(a, b, d.children, c);
  d = M.current;
  if (0 !== (d & 2)) d = d & 1 | 2, b.effectTag |= 64;else {
    if (null !== a && 0 !== (a.effectTag & 64)) a: for (a = b.child; null !== a;) {
      if (13 === a.tag) null !== a.memoizedState && ki(a, c);else if (19 === a.tag) ki(a, c);else if (null !== a.child) {
        a.child.return = a;
        a = a.child;
        continue;
      }
      if (a === b) break a;

      for (; null === a.sibling;) {
        if (null === a.return || a.return === b) break a;
        a = a.return;
      }

      a.sibling.return = a.return;
      a = a.sibling;
    }
    d &= 1;
  }
  I(M, d);
  if (0 === (b.mode & 2)) b.memoizedState = null;else switch (e) {
    case "forwards":
      c = b.child;

      for (e = null; null !== c;) a = c.alternate, null !== a && null === hh(a) && (e = c), c = c.sibling;

      c = e;
      null === c ? (e = b.child, b.child = null) : (e = c.sibling, c.sibling = null);
      li(b, !1, e, c, f, b.lastEffect);
      break;

    case "backwards":
      c = null;
      e = b.child;

      for (b.child = null; null !== e;) {
        a = e.alternate;

        if (null !== a && null === hh(a)) {
          b.child = e;
          break;
        }

        a = e.sibling;
        e.sibling = c;
        c = e;
        e = a;
      }

      li(b, !0, c, null, f, b.lastEffect);
      break;

    case "together":
      li(b, !1, null, null, void 0, b.lastEffect);
      break;

    default:
      b.memoizedState = null;
  }
  return b.child;
}

function $h(a, b, c) {
  null !== a && (b.dependencies = a.dependencies);
  var d = b.expirationTime;
  0 !== d && Bg(d);
  if (b.childExpirationTime < c) return null;
  if (null !== a && b.child !== a.child) throw Error(u(153));

  if (null !== b.child) {
    a = b.child;
    c = Sg(a, a.pendingProps);
    b.child = c;

    for (c.return = b; null !== a.sibling;) a = a.sibling, c = c.sibling = Sg(a, a.pendingProps), c.return = b;

    c.sibling = null;
  }

  return b.child;
}

var ni, oi, pi, qi;

ni = function (a, b) {
  for (var c = b.child; null !== c;) {
    if (5 === c.tag || 6 === c.tag) a.appendChild(c.stateNode);else if (4 !== c.tag && null !== c.child) {
      c.child.return = c;
      c = c.child;
      continue;
    }
    if (c === b) break;

    for (; null === c.sibling;) {
      if (null === c.return || c.return === b) return;
      c = c.return;
    }

    c.sibling.return = c.return;
    c = c.sibling;
  }
};

oi = function () {};

pi = function (a, b, c, d, e) {
  var f = a.memoizedProps;

  if (f !== d) {
    var g = b.stateNode;
    ch($g.current);
    a = null;

    switch (c) {
      case "input":
        f = zb(g, f);
        d = zb(g, d);
        a = [];
        break;

      case "option":
        f = Gb(g, f);
        d = Gb(g, d);
        a = [];
        break;

      case "select":
        f = n({}, f, {
          value: void 0
        });
        d = n({}, d, {
          value: void 0
        });
        a = [];
        break;

      case "textarea":
        f = Ib(g, f);
        d = Ib(g, d);
        a = [];
        break;

      default:
        "function" !== typeof f.onClick && "function" === typeof d.onClick && (g.onclick = sd);
    }

    od(c, d);
    var h, k;
    c = null;

    for (h in f) if (!d.hasOwnProperty(h) && f.hasOwnProperty(h) && null != f[h]) if ("style" === h) for (k in g = f[h], g) g.hasOwnProperty(k) && (c || (c = {}), c[k] = "");else "dangerouslySetInnerHTML" !== h && "children" !== h && "suppressContentEditableWarning" !== h && "suppressHydrationWarning" !== h && "autoFocus" !== h && (va.hasOwnProperty(h) ? a || (a = []) : (a = a || []).push(h, null));

    for (h in d) {
      var l = d[h];
      g = null != f ? f[h] : void 0;
      if (d.hasOwnProperty(h) && l !== g && (null != l || null != g)) if ("style" === h) {
        if (g) {
          for (k in g) !g.hasOwnProperty(k) || l && l.hasOwnProperty(k) || (c || (c = {}), c[k] = "");

          for (k in l) l.hasOwnProperty(k) && g[k] !== l[k] && (c || (c = {}), c[k] = l[k]);
        } else c || (a || (a = []), a.push(h, c)), c = l;
      } else "dangerouslySetInnerHTML" === h ? (l = l ? l.__html : void 0, g = g ? g.__html : void 0, null != l && g !== l && (a = a || []).push(h, l)) : "children" === h ? g === l || "string" !== typeof l && "number" !== typeof l || (a = a || []).push(h, "" + l) : "suppressContentEditableWarning" !== h && "suppressHydrationWarning" !== h && (va.hasOwnProperty(h) ? (null != l && rd(e, h), a || g === l || (a = [])) : (a = a || []).push(h, l));
    }

    c && (a = a || []).push("style", c);
    e = a;
    if (b.updateQueue = e) b.effectTag |= 4;
  }
};

qi = function (a, b, c, d) {
  c !== d && (b.effectTag |= 4);
};

function ri(a, b) {
  switch (a.tailMode) {
    case "hidden":
      b = a.tail;

      for (var c = null; null !== b;) null !== b.alternate && (c = b), b = b.sibling;

      null === c ? a.tail = null : c.sibling = null;
      break;

    case "collapsed":
      c = a.tail;

      for (var d = null; null !== c;) null !== c.alternate && (d = c), c = c.sibling;

      null === d ? b || null === a.tail ? a.tail = null : a.tail.sibling = null : d.sibling = null;
  }
}

function si(a, b, c) {
  var d = b.pendingProps;

  switch (b.tag) {
    case 2:
    case 16:
    case 15:
    case 0:
    case 11:
    case 7:
    case 8:
    case 12:
    case 9:
    case 14:
      return null;

    case 1:
      return L(b.type) && Df(), null;

    case 3:
      return eh(), H(K), H(J), c = b.stateNode, c.pendingContext && (c.context = c.pendingContext, c.pendingContext = null), null !== a && null !== a.child || !Wh(b) || (b.effectTag |= 4), oi(b), null;

    case 5:
      gh(b);
      c = ch(bh.current);
      var e = b.type;
      if (null !== a && null != b.stateNode) pi(a, b, e, d, c), a.ref !== b.ref && (b.effectTag |= 128);else {
        if (!d) {
          if (null === b.stateNode) throw Error(u(166));
          return null;
        }

        a = ch($g.current);

        if (Wh(b)) {
          d = b.stateNode;
          e = b.type;
          var f = b.memoizedProps;
          d[Md] = b;
          d[Nd] = f;

          switch (e) {
            case "iframe":
            case "object":
            case "embed":
              F("load", d);
              break;

            case "video":
            case "audio":
              for (a = 0; a < ac.length; a++) F(ac[a], d);

              break;

            case "source":
              F("error", d);
              break;

            case "img":
            case "image":
            case "link":
              F("error", d);
              F("load", d);
              break;

            case "form":
              F("reset", d);
              F("submit", d);
              break;

            case "details":
              F("toggle", d);
              break;

            case "input":
              Ab(d, f);
              F("invalid", d);
              rd(c, "onChange");
              break;

            case "select":
              d._wrapperState = {
                wasMultiple: !!f.multiple
              };
              F("invalid", d);
              rd(c, "onChange");
              break;

            case "textarea":
              Jb(d, f), F("invalid", d), rd(c, "onChange");
          }

          od(e, f);
          a = null;

          for (var g in f) if (f.hasOwnProperty(g)) {
            var h = f[g];
            "children" === g ? "string" === typeof h ? d.textContent !== h && (a = ["children", h]) : "number" === typeof h && d.textContent !== "" + h && (a = ["children", "" + h]) : va.hasOwnProperty(g) && null != h && rd(c, g);
          }

          switch (e) {
            case "input":
              xb(d);
              Eb(d, f, !0);
              break;

            case "textarea":
              xb(d);
              Lb(d);
              break;

            case "select":
            case "option":
              break;

            default:
              "function" === typeof f.onClick && (d.onclick = sd);
          }

          c = a;
          b.updateQueue = c;
          null !== c && (b.effectTag |= 4);
        } else {
          g = 9 === c.nodeType ? c : c.ownerDocument;
          a === qd && (a = Nb(e));
          a === qd ? "script" === e ? (a = g.createElement("div"), a.innerHTML = "<script>\x3c/script>", a = a.removeChild(a.firstChild)) : "string" === typeof d.is ? a = g.createElement(e, {
            is: d.is
          }) : (a = g.createElement(e), "select" === e && (g = a, d.multiple ? g.multiple = !0 : d.size && (g.size = d.size))) : a = g.createElementNS(a, e);
          a[Md] = b;
          a[Nd] = d;
          ni(a, b, !1, !1);
          b.stateNode = a;
          g = pd(e, d);

          switch (e) {
            case "iframe":
            case "object":
            case "embed":
              F("load", a);
              h = d;
              break;

            case "video":
            case "audio":
              for (h = 0; h < ac.length; h++) F(ac[h], a);

              h = d;
              break;

            case "source":
              F("error", a);
              h = d;
              break;

            case "img":
            case "image":
            case "link":
              F("error", a);
              F("load", a);
              h = d;
              break;

            case "form":
              F("reset", a);
              F("submit", a);
              h = d;
              break;

            case "details":
              F("toggle", a);
              h = d;
              break;

            case "input":
              Ab(a, d);
              h = zb(a, d);
              F("invalid", a);
              rd(c, "onChange");
              break;

            case "option":
              h = Gb(a, d);
              break;

            case "select":
              a._wrapperState = {
                wasMultiple: !!d.multiple
              };
              h = n({}, d, {
                value: void 0
              });
              F("invalid", a);
              rd(c, "onChange");
              break;

            case "textarea":
              Jb(a, d);
              h = Ib(a, d);
              F("invalid", a);
              rd(c, "onChange");
              break;

            default:
              h = d;
          }

          od(e, h);
          var k = h;

          for (f in k) if (k.hasOwnProperty(f)) {
            var l = k[f];
            "style" === f ? md(a, l) : "dangerouslySetInnerHTML" === f ? (l = l ? l.__html : void 0, null != l && Qb(a, l)) : "children" === f ? "string" === typeof l ? ("textarea" !== e || "" !== l) && Rb(a, l) : "number" === typeof l && Rb(a, "" + l) : "suppressContentEditableWarning" !== f && "suppressHydrationWarning" !== f && "autoFocus" !== f && (va.hasOwnProperty(f) ? null != l && rd(c, f) : null != l && Xa(a, f, l, g));
          }

          switch (e) {
            case "input":
              xb(a);
              Eb(a, d, !1);
              break;

            case "textarea":
              xb(a);
              Lb(a);
              break;

            case "option":
              null != d.value && a.setAttribute("value", "" + rb(d.value));
              break;

            case "select":
              a.multiple = !!d.multiple;
              c = d.value;
              null != c ? Hb(a, !!d.multiple, c, !1) : null != d.defaultValue && Hb(a, !!d.multiple, d.defaultValue, !0);
              break;

            default:
              "function" === typeof h.onClick && (a.onclick = sd);
          }

          Fd(e, d) && (b.effectTag |= 4);
        }

        null !== b.ref && (b.effectTag |= 128);
      }
      return null;

    case 6:
      if (a && null != b.stateNode) qi(a, b, a.memoizedProps, d);else {
        if ("string" !== typeof d && null === b.stateNode) throw Error(u(166));
        c = ch(bh.current);
        ch($g.current);
        Wh(b) ? (c = b.stateNode, d = b.memoizedProps, c[Md] = b, c.nodeValue !== d && (b.effectTag |= 4)) : (c = (9 === c.nodeType ? c : c.ownerDocument).createTextNode(d), c[Md] = b, b.stateNode = c);
      }
      return null;

    case 13:
      H(M);
      d = b.memoizedState;
      if (0 !== (b.effectTag & 64)) return b.expirationTime = c, b;
      c = null !== d;
      d = !1;
      null === a ? void 0 !== b.memoizedProps.fallback && Wh(b) : (e = a.memoizedState, d = null !== e, c || null === e || (e = a.child.sibling, null !== e && (f = b.firstEffect, null !== f ? (b.firstEffect = e, e.nextEffect = f) : (b.firstEffect = b.lastEffect = e, e.nextEffect = null), e.effectTag = 8)));
      if (c && !d && 0 !== (b.mode & 2)) if (null === a && !0 !== b.memoizedProps.unstable_avoidThisFallback || 0 !== (M.current & 1)) S === ti && (S = ui);else {
        if (S === ti || S === ui) S = vi;
        0 !== wi && null !== T && (xi(T, U), yi(T, wi));
      }
      if (c || d) b.effectTag |= 4;
      return null;

    case 4:
      return eh(), oi(b), null;

    case 10:
      return og(b), null;

    case 17:
      return L(b.type) && Df(), null;

    case 19:
      H(M);
      d = b.memoizedState;
      if (null === d) return null;
      e = 0 !== (b.effectTag & 64);
      f = d.rendering;
      if (null === f) {
        if (e) ri(d, !1);else {
          if (S !== ti || null !== a && 0 !== (a.effectTag & 64)) for (f = b.child; null !== f;) {
            a = hh(f);

            if (null !== a) {
              b.effectTag |= 64;
              ri(d, !1);
              e = a.updateQueue;
              null !== e && (b.updateQueue = e, b.effectTag |= 4);
              null === d.lastEffect && (b.firstEffect = null);
              b.lastEffect = d.lastEffect;

              for (d = b.child; null !== d;) e = d, f = c, e.effectTag &= 2, e.nextEffect = null, e.firstEffect = null, e.lastEffect = null, a = e.alternate, null === a ? (e.childExpirationTime = 0, e.expirationTime = f, e.child = null, e.memoizedProps = null, e.memoizedState = null, e.updateQueue = null, e.dependencies = null) : (e.childExpirationTime = a.childExpirationTime, e.expirationTime = a.expirationTime, e.child = a.child, e.memoizedProps = a.memoizedProps, e.memoizedState = a.memoizedState, e.updateQueue = a.updateQueue, f = a.dependencies, e.dependencies = null === f ? null : {
                expirationTime: f.expirationTime,
                firstContext: f.firstContext,
                responders: f.responders
              }), d = d.sibling;

              I(M, M.current & 1 | 2);
              return b.child;
            }

            f = f.sibling;
          }
        }
      } else {
        if (!e) if (a = hh(f), null !== a) {
          if (b.effectTag |= 64, e = !0, c = a.updateQueue, null !== c && (b.updateQueue = c, b.effectTag |= 4), ri(d, !0), null === d.tail && "hidden" === d.tailMode && !f.alternate) return b = b.lastEffect = d.lastEffect, null !== b && (b.nextEffect = null), null;
        } else 2 * $f() - d.renderingStartTime > d.tailExpiration && 1 < c && (b.effectTag |= 64, e = !0, ri(d, !1), b.expirationTime = b.childExpirationTime = c - 1);
        d.isBackwards ? (f.sibling = b.child, b.child = f) : (c = d.last, null !== c ? c.sibling = f : b.child = f, d.last = f);
      }
      return null !== d.tail ? (0 === d.tailExpiration && (d.tailExpiration = $f() + 500), c = d.tail, d.rendering = c, d.tail = c.sibling, d.lastEffect = b.lastEffect, d.renderingStartTime = $f(), c.sibling = null, b = M.current, I(M, e ? b & 1 | 2 : b & 1), c) : null;
  }

  throw Error(u(156, b.tag));
}

function zi(a) {
  switch (a.tag) {
    case 1:
      L(a.type) && Df();
      var b = a.effectTag;
      return b & 4096 ? (a.effectTag = b & -4097 | 64, a) : null;

    case 3:
      eh();
      H(K);
      H(J);
      b = a.effectTag;
      if (0 !== (b & 64)) throw Error(u(285));
      a.effectTag = b & -4097 | 64;
      return a;

    case 5:
      return gh(a), null;

    case 13:
      return H(M), b = a.effectTag, b & 4096 ? (a.effectTag = b & -4097 | 64, a) : null;

    case 19:
      return H(M), null;

    case 4:
      return eh(), null;

    case 10:
      return og(a), null;

    default:
      return null;
  }
}

function Ai(a, b) {
  return {
    value: a,
    source: b,
    stack: qb(b)
  };
}

var Bi = "function" === typeof WeakSet ? WeakSet : Set;

function Ci(a, b) {
  var c = b.source,
      d = b.stack;
  null === d && null !== c && (d = qb(c));
  null !== c && pb(c.type);
  b = b.value;
  null !== a && 1 === a.tag && pb(a.type);

  try {
    console.error(b);
  } catch (e) {
    setTimeout(function () {
      throw e;
    });
  }
}

function Di(a, b) {
  try {
    b.props = a.memoizedProps, b.state = a.memoizedState, b.componentWillUnmount();
  } catch (c) {
    Ei(a, c);
  }
}

function Fi(a) {
  var b = a.ref;
  if (null !== b) if ("function" === typeof b) try {
    b(null);
  } catch (c) {
    Ei(a, c);
  } else b.current = null;
}

function Gi(a, b) {
  switch (b.tag) {
    case 0:
    case 11:
    case 15:
    case 22:
      return;

    case 1:
      if (b.effectTag & 256 && null !== a) {
        var c = a.memoizedProps,
            d = a.memoizedState;
        a = b.stateNode;
        b = a.getSnapshotBeforeUpdate(b.elementType === b.type ? c : ig(b.type, c), d);
        a.__reactInternalSnapshotBeforeUpdate = b;
      }

      return;

    case 3:
    case 5:
    case 6:
    case 4:
    case 17:
      return;
  }

  throw Error(u(163));
}

function Hi(a, b) {
  b = b.updateQueue;
  b = null !== b ? b.lastEffect : null;

  if (null !== b) {
    var c = b = b.next;

    do {
      if ((c.tag & a) === a) {
        var d = c.destroy;
        c.destroy = void 0;
        void 0 !== d && d();
      }

      c = c.next;
    } while (c !== b);
  }
}

function Ii(a, b) {
  b = b.updateQueue;
  b = null !== b ? b.lastEffect : null;

  if (null !== b) {
    var c = b = b.next;

    do {
      if ((c.tag & a) === a) {
        var d = c.create;
        c.destroy = d();
      }

      c = c.next;
    } while (c !== b);
  }
}

function Ji(a, b, c) {
  switch (c.tag) {
    case 0:
    case 11:
    case 15:
    case 22:
      Ii(3, c);
      return;

    case 1:
      a = c.stateNode;
      if (c.effectTag & 4) if (null === b) a.componentDidMount();else {
        var d = c.elementType === c.type ? b.memoizedProps : ig(c.type, b.memoizedProps);
        a.componentDidUpdate(d, b.memoizedState, a.__reactInternalSnapshotBeforeUpdate);
      }
      b = c.updateQueue;
      null !== b && Cg(c, b, a);
      return;

    case 3:
      b = c.updateQueue;

      if (null !== b) {
        a = null;
        if (null !== c.child) switch (c.child.tag) {
          case 5:
            a = c.child.stateNode;
            break;

          case 1:
            a = c.child.stateNode;
        }
        Cg(c, b, a);
      }

      return;

    case 5:
      a = c.stateNode;
      null === b && c.effectTag & 4 && Fd(c.type, c.memoizedProps) && a.focus();
      return;

    case 6:
      return;

    case 4:
      return;

    case 12:
      return;

    case 13:
      null === c.memoizedState && (c = c.alternate, null !== c && (c = c.memoizedState, null !== c && (c = c.dehydrated, null !== c && Vc(c))));
      return;

    case 19:
    case 17:
    case 20:
    case 21:
      return;
  }

  throw Error(u(163));
}

function Ki(a, b, c) {
  "function" === typeof Li && Li(b);

  switch (b.tag) {
    case 0:
    case 11:
    case 14:
    case 15:
    case 22:
      a = b.updateQueue;

      if (null !== a && (a = a.lastEffect, null !== a)) {
        var d = a.next;
        cg(97 < c ? 97 : c, function () {
          var a = d;

          do {
            var c = a.destroy;

            if (void 0 !== c) {
              var g = b;

              try {
                c();
              } catch (h) {
                Ei(g, h);
              }
            }

            a = a.next;
          } while (a !== d);
        });
      }

      break;

    case 1:
      Fi(b);
      c = b.stateNode;
      "function" === typeof c.componentWillUnmount && Di(b, c);
      break;

    case 5:
      Fi(b);
      break;

    case 4:
      Mi(a, b, c);
  }
}

function Ni(a) {
  var b = a.alternate;
  a.return = null;
  a.child = null;
  a.memoizedState = null;
  a.updateQueue = null;
  a.dependencies = null;
  a.alternate = null;
  a.firstEffect = null;
  a.lastEffect = null;
  a.pendingProps = null;
  a.memoizedProps = null;
  a.stateNode = null;
  null !== b && Ni(b);
}

function Oi(a) {
  return 5 === a.tag || 3 === a.tag || 4 === a.tag;
}

function Pi(a) {
  a: {
    for (var b = a.return; null !== b;) {
      if (Oi(b)) {
        var c = b;
        break a;
      }

      b = b.return;
    }

    throw Error(u(160));
  }

  b = c.stateNode;

  switch (c.tag) {
    case 5:
      var d = !1;
      break;

    case 3:
      b = b.containerInfo;
      d = !0;
      break;

    case 4:
      b = b.containerInfo;
      d = !0;
      break;

    default:
      throw Error(u(161));
  }

  c.effectTag & 16 && (Rb(b, ""), c.effectTag &= -17);

  a: b: for (c = a;;) {
    for (; null === c.sibling;) {
      if (null === c.return || Oi(c.return)) {
        c = null;
        break a;
      }

      c = c.return;
    }

    c.sibling.return = c.return;

    for (c = c.sibling; 5 !== c.tag && 6 !== c.tag && 18 !== c.tag;) {
      if (c.effectTag & 2) continue b;
      if (null === c.child || 4 === c.tag) continue b;else c.child.return = c, c = c.child;
    }

    if (!(c.effectTag & 2)) {
      c = c.stateNode;
      break a;
    }
  }

  d ? Qi(a, c, b) : Ri(a, c, b);
}

function Qi(a, b, c) {
  var d = a.tag,
      e = 5 === d || 6 === d;
  if (e) a = e ? a.stateNode : a.stateNode.instance, b ? 8 === c.nodeType ? c.parentNode.insertBefore(a, b) : c.insertBefore(a, b) : (8 === c.nodeType ? (b = c.parentNode, b.insertBefore(a, c)) : (b = c, b.appendChild(a)), c = c._reactRootContainer, null !== c && void 0 !== c || null !== b.onclick || (b.onclick = sd));else if (4 !== d && (a = a.child, null !== a)) for (Qi(a, b, c), a = a.sibling; null !== a;) Qi(a, b, c), a = a.sibling;
}

function Ri(a, b, c) {
  var d = a.tag,
      e = 5 === d || 6 === d;
  if (e) a = e ? a.stateNode : a.stateNode.instance, b ? c.insertBefore(a, b) : c.appendChild(a);else if (4 !== d && (a = a.child, null !== a)) for (Ri(a, b, c), a = a.sibling; null !== a;) Ri(a, b, c), a = a.sibling;
}

function Mi(a, b, c) {
  for (var d = b, e = !1, f, g;;) {
    if (!e) {
      e = d.return;

      a: for (;;) {
        if (null === e) throw Error(u(160));
        f = e.stateNode;

        switch (e.tag) {
          case 5:
            g = !1;
            break a;

          case 3:
            f = f.containerInfo;
            g = !0;
            break a;

          case 4:
            f = f.containerInfo;
            g = !0;
            break a;
        }

        e = e.return;
      }

      e = !0;
    }

    if (5 === d.tag || 6 === d.tag) {
      a: for (var h = a, k = d, l = c, m = k;;) if (Ki(h, m, l), null !== m.child && 4 !== m.tag) m.child.return = m, m = m.child;else {
        if (m === k) break a;

        for (; null === m.sibling;) {
          if (null === m.return || m.return === k) break a;
          m = m.return;
        }

        m.sibling.return = m.return;
        m = m.sibling;
      }

      g ? (h = f, k = d.stateNode, 8 === h.nodeType ? h.parentNode.removeChild(k) : h.removeChild(k)) : f.removeChild(d.stateNode);
    } else if (4 === d.tag) {
      if (null !== d.child) {
        f = d.stateNode.containerInfo;
        g = !0;
        d.child.return = d;
        d = d.child;
        continue;
      }
    } else if (Ki(a, d, c), null !== d.child) {
      d.child.return = d;
      d = d.child;
      continue;
    }

    if (d === b) break;

    for (; null === d.sibling;) {
      if (null === d.return || d.return === b) return;
      d = d.return;
      4 === d.tag && (e = !1);
    }

    d.sibling.return = d.return;
    d = d.sibling;
  }
}

function Si(a, b) {
  switch (b.tag) {
    case 0:
    case 11:
    case 14:
    case 15:
    case 22:
      Hi(3, b);
      return;

    case 1:
      return;

    case 5:
      var c = b.stateNode;

      if (null != c) {
        var d = b.memoizedProps,
            e = null !== a ? a.memoizedProps : d;
        a = b.type;
        var f = b.updateQueue;
        b.updateQueue = null;

        if (null !== f) {
          c[Nd] = d;
          "input" === a && "radio" === d.type && null != d.name && Bb(c, d);
          pd(a, e);
          b = pd(a, d);

          for (e = 0; e < f.length; e += 2) {
            var g = f[e],
                h = f[e + 1];
            "style" === g ? md(c, h) : "dangerouslySetInnerHTML" === g ? Qb(c, h) : "children" === g ? Rb(c, h) : Xa(c, g, h, b);
          }

          switch (a) {
            case "input":
              Cb(c, d);
              break;

            case "textarea":
              Kb(c, d);
              break;

            case "select":
              b = c._wrapperState.wasMultiple, c._wrapperState.wasMultiple = !!d.multiple, a = d.value, null != a ? Hb(c, !!d.multiple, a, !1) : b !== !!d.multiple && (null != d.defaultValue ? Hb(c, !!d.multiple, d.defaultValue, !0) : Hb(c, !!d.multiple, d.multiple ? [] : "", !1));
          }
        }
      }

      return;

    case 6:
      if (null === b.stateNode) throw Error(u(162));
      b.stateNode.nodeValue = b.memoizedProps;
      return;

    case 3:
      b = b.stateNode;
      b.hydrate && (b.hydrate = !1, Vc(b.containerInfo));
      return;

    case 12:
      return;

    case 13:
      c = b;
      null === b.memoizedState ? d = !1 : (d = !0, c = b.child, Ti = $f());
      if (null !== c) a: for (a = c;;) {
        if (5 === a.tag) f = a.stateNode, d ? (f = f.style, "function" === typeof f.setProperty ? f.setProperty("display", "none", "important") : f.display = "none") : (f = a.stateNode, e = a.memoizedProps.style, e = void 0 !== e && null !== e && e.hasOwnProperty("display") ? e.display : null, f.style.display = ld("display", e));else if (6 === a.tag) a.stateNode.nodeValue = d ? "" : a.memoizedProps;else if (13 === a.tag && null !== a.memoizedState && null === a.memoizedState.dehydrated) {
          f = a.child.sibling;
          f.return = a;
          a = f;
          continue;
        } else if (null !== a.child) {
          a.child.return = a;
          a = a.child;
          continue;
        }
        if (a === c) break;

        for (; null === a.sibling;) {
          if (null === a.return || a.return === c) break a;
          a = a.return;
        }

        a.sibling.return = a.return;
        a = a.sibling;
      }
      Ui(b);
      return;

    case 19:
      Ui(b);
      return;

    case 17:
      return;
  }

  throw Error(u(163));
}

function Ui(a) {
  var b = a.updateQueue;

  if (null !== b) {
    a.updateQueue = null;
    var c = a.stateNode;
    null === c && (c = a.stateNode = new Bi());
    b.forEach(function (b) {
      var d = Vi.bind(null, a, b);
      c.has(b) || (c.add(b), b.then(d, d));
    });
  }
}

var Wi = "function" === typeof WeakMap ? WeakMap : Map;

function Xi(a, b, c) {
  c = wg(c, null);
  c.tag = 3;
  c.payload = {
    element: null
  };
  var d = b.value;

  c.callback = function () {
    Yi || (Yi = !0, Zi = d);
    Ci(a, b);
  };

  return c;
}

function $i(a, b, c) {
  c = wg(c, null);
  c.tag = 3;
  var d = a.type.getDerivedStateFromError;

  if ("function" === typeof d) {
    var e = b.value;

    c.payload = function () {
      Ci(a, b);
      return d(e);
    };
  }

  var f = a.stateNode;
  null !== f && "function" === typeof f.componentDidCatch && (c.callback = function () {
    "function" !== typeof d && (null === aj ? aj = new Set([this]) : aj.add(this), Ci(a, b));
    var c = b.stack;
    this.componentDidCatch(b.value, {
      componentStack: null !== c ? c : ""
    });
  });
  return c;
}

var bj = Math.ceil,
    cj = Wa.ReactCurrentDispatcher,
    dj = Wa.ReactCurrentOwner,
    V = 0,
    ej = 8,
    fj = 16,
    gj = 32,
    ti = 0,
    hj = 1,
    ij = 2,
    ui = 3,
    vi = 4,
    jj = 5,
    W = V,
    T = null,
    X = null,
    U = 0,
    S = ti,
    kj = null,
    lj = 1073741823,
    mj = 1073741823,
    nj = null,
    wi = 0,
    oj = !1,
    Ti = 0,
    pj = 500,
    Y = null,
    Yi = !1,
    Zi = null,
    aj = null,
    qj = !1,
    rj = null,
    sj = 90,
    tj = null,
    uj = 0,
    vj = null,
    wj = 0;

function Gg() {
  return (W & (fj | gj)) !== V ? 1073741821 - ($f() / 10 | 0) : 0 !== wj ? wj : wj = 1073741821 - ($f() / 10 | 0);
}

function Hg(a, b, c) {
  b = b.mode;
  if (0 === (b & 2)) return 1073741823;
  var d = ag();
  if (0 === (b & 4)) return 99 === d ? 1073741823 : 1073741822;
  if ((W & fj) !== V) return U;
  if (null !== c) a = hg(a, c.timeoutMs | 0 || 5E3, 250);else switch (d) {
    case 99:
      a = 1073741823;
      break;

    case 98:
      a = hg(a, 150, 100);
      break;

    case 97:
    case 96:
      a = hg(a, 5E3, 250);
      break;

    case 95:
      a = 2;
      break;

    default:
      throw Error(u(326));
  }
  null !== T && a === U && --a;
  return a;
}

function Ig(a, b) {
  if (50 < uj) throw uj = 0, vj = null, Error(u(185));
  a = xj(a, b);

  if (null !== a) {
    var c = ag();
    1073741823 === b ? (W & ej) !== V && (W & (fj | gj)) === V ? yj(a) : (Z(a), W === V && gg()) : Z(a);
    (W & 4) === V || 98 !== c && 99 !== c || (null === tj ? tj = new Map([[a, b]]) : (c = tj.get(a), (void 0 === c || c > b) && tj.set(a, b)));
  }
}

function xj(a, b) {
  a.expirationTime < b && (a.expirationTime = b);
  var c = a.alternate;
  null !== c && c.expirationTime < b && (c.expirationTime = b);
  var d = a.return,
      e = null;
  if (null === d && 3 === a.tag) e = a.stateNode;else for (; null !== d;) {
    c = d.alternate;
    d.childExpirationTime < b && (d.childExpirationTime = b);
    null !== c && c.childExpirationTime < b && (c.childExpirationTime = b);

    if (null === d.return && 3 === d.tag) {
      e = d.stateNode;
      break;
    }

    d = d.return;
  }
  null !== e && (T === e && (Bg(b), S === vi && xi(e, U)), yi(e, b));
  return e;
}

function zj(a) {
  var b = a.lastExpiredTime;
  if (0 !== b) return b;
  b = a.firstPendingTime;
  if (!Aj(a, b)) return b;
  var c = a.lastPingedTime;
  a = a.nextKnownPendingLevel;
  a = c > a ? c : a;
  return 2 >= a && b !== a ? 0 : a;
}

function Z(a) {
  if (0 !== a.lastExpiredTime) a.callbackExpirationTime = 1073741823, a.callbackPriority = 99, a.callbackNode = eg(yj.bind(null, a));else {
    var b = zj(a),
        c = a.callbackNode;
    if (0 === b) null !== c && (a.callbackNode = null, a.callbackExpirationTime = 0, a.callbackPriority = 90);else {
      var d = Gg();
      1073741823 === b ? d = 99 : 1 === b || 2 === b ? d = 95 : (d = 10 * (1073741821 - b) - 10 * (1073741821 - d), d = 0 >= d ? 99 : 250 >= d ? 98 : 5250 >= d ? 97 : 95);

      if (null !== c) {
        var e = a.callbackPriority;
        if (a.callbackExpirationTime === b && e >= d) return;
        c !== Tf && Kf(c);
      }

      a.callbackExpirationTime = b;
      a.callbackPriority = d;
      b = 1073741823 === b ? eg(yj.bind(null, a)) : dg(d, Bj.bind(null, a), {
        timeout: 10 * (1073741821 - b) - $f()
      });
      a.callbackNode = b;
    }
  }
}

function Bj(a, b) {
  wj = 0;
  if (b) return b = Gg(), Cj(a, b), Z(a), null;
  var c = zj(a);

  if (0 !== c) {
    b = a.callbackNode;
    if ((W & (fj | gj)) !== V) throw Error(u(327));
    Dj();
    a === T && c === U || Ej(a, c);

    if (null !== X) {
      var d = W;
      W |= fj;
      var e = Fj();

      do try {
        Gj();
        break;
      } catch (h) {
        Hj(a, h);
      } while (1);

      ng();
      W = d;
      cj.current = e;
      if (S === hj) throw b = kj, Ej(a, c), xi(a, c), Z(a), b;
      if (null === X) switch (e = a.finishedWork = a.current.alternate, a.finishedExpirationTime = c, d = S, T = null, d) {
        case ti:
        case hj:
          throw Error(u(345));

        case ij:
          Cj(a, 2 < c ? 2 : c);
          break;

        case ui:
          xi(a, c);
          d = a.lastSuspendedTime;
          c === d && (a.nextKnownPendingLevel = Ij(e));

          if (1073741823 === lj && (e = Ti + pj - $f(), 10 < e)) {
            if (oj) {
              var f = a.lastPingedTime;

              if (0 === f || f >= c) {
                a.lastPingedTime = c;
                Ej(a, c);
                break;
              }
            }

            f = zj(a);
            if (0 !== f && f !== c) break;

            if (0 !== d && d !== c) {
              a.lastPingedTime = d;
              break;
            }

            a.timeoutHandle = Hd(Jj.bind(null, a), e);
            break;
          }

          Jj(a);
          break;

        case vi:
          xi(a, c);
          d = a.lastSuspendedTime;
          c === d && (a.nextKnownPendingLevel = Ij(e));

          if (oj && (e = a.lastPingedTime, 0 === e || e >= c)) {
            a.lastPingedTime = c;
            Ej(a, c);
            break;
          }

          e = zj(a);
          if (0 !== e && e !== c) break;

          if (0 !== d && d !== c) {
            a.lastPingedTime = d;
            break;
          }

          1073741823 !== mj ? d = 10 * (1073741821 - mj) - $f() : 1073741823 === lj ? d = 0 : (d = 10 * (1073741821 - lj) - 5E3, e = $f(), c = 10 * (1073741821 - c) - e, d = e - d, 0 > d && (d = 0), d = (120 > d ? 120 : 480 > d ? 480 : 1080 > d ? 1080 : 1920 > d ? 1920 : 3E3 > d ? 3E3 : 4320 > d ? 4320 : 1960 * bj(d / 1960)) - d, c < d && (d = c));

          if (10 < d) {
            a.timeoutHandle = Hd(Jj.bind(null, a), d);
            break;
          }

          Jj(a);
          break;

        case jj:
          if (1073741823 !== lj && null !== nj) {
            f = lj;
            var g = nj;
            d = g.busyMinDurationMs | 0;
            0 >= d ? d = 0 : (e = g.busyDelayMs | 0, f = $f() - (10 * (1073741821 - f) - (g.timeoutMs | 0 || 5E3)), d = f <= e ? 0 : e + d - f);

            if (10 < d) {
              xi(a, c);
              a.timeoutHandle = Hd(Jj.bind(null, a), d);
              break;
            }
          }

          Jj(a);
          break;

        default:
          throw Error(u(329));
      }
      Z(a);
      if (a.callbackNode === b) return Bj.bind(null, a);
    }
  }

  return null;
}

function yj(a) {
  var b = a.lastExpiredTime;
  b = 0 !== b ? b : 1073741823;
  if ((W & (fj | gj)) !== V) throw Error(u(327));
  Dj();
  a === T && b === U || Ej(a, b);

  if (null !== X) {
    var c = W;
    W |= fj;
    var d = Fj();

    do try {
      Kj();
      break;
    } catch (e) {
      Hj(a, e);
    } while (1);

    ng();
    W = c;
    cj.current = d;
    if (S === hj) throw c = kj, Ej(a, b), xi(a, b), Z(a), c;
    if (null !== X) throw Error(u(261));
    a.finishedWork = a.current.alternate;
    a.finishedExpirationTime = b;
    T = null;
    Jj(a);
    Z(a);
  }

  return null;
}

function Lj() {
  if (null !== tj) {
    var a = tj;
    tj = null;
    a.forEach(function (a, c) {
      Cj(c, a);
      Z(c);
    });
    gg();
  }
}

function Mj(a, b) {
  var c = W;
  W |= 1;

  try {
    return a(b);
  } finally {
    W = c, W === V && gg();
  }
}

function Nj(a, b) {
  var c = W;
  W &= -2;
  W |= ej;

  try {
    return a(b);
  } finally {
    W = c, W === V && gg();
  }
}

function Ej(a, b) {
  a.finishedWork = null;
  a.finishedExpirationTime = 0;
  var c = a.timeoutHandle;
  -1 !== c && (a.timeoutHandle = -1, Id(c));
  if (null !== X) for (c = X.return; null !== c;) {
    var d = c;

    switch (d.tag) {
      case 1:
        d = d.type.childContextTypes;
        null !== d && void 0 !== d && Df();
        break;

      case 3:
        eh();
        H(K);
        H(J);
        break;

      case 5:
        gh(d);
        break;

      case 4:
        eh();
        break;

      case 13:
        H(M);
        break;

      case 19:
        H(M);
        break;

      case 10:
        og(d);
    }

    c = c.return;
  }
  T = a;
  X = Sg(a.current, null);
  U = b;
  S = ti;
  kj = null;
  mj = lj = 1073741823;
  nj = null;
  wi = 0;
  oj = !1;
}

function Hj(a, b) {
  do {
    try {
      ng();
      jh.current = sh;
      if (mh) for (var c = N.memoizedState; null !== c;) {
        var d = c.queue;
        null !== d && (d.pending = null);
        c = c.next;
      }
      lh = 0;
      P = O = N = null;
      mh = !1;
      if (null === X || null === X.return) return S = hj, kj = b, X = null;

      a: {
        var e = a,
            f = X.return,
            g = X,
            h = b;
        b = U;
        g.effectTag |= 2048;
        g.firstEffect = g.lastEffect = null;

        if (null !== h && "object" === typeof h && "function" === typeof h.then) {
          var k = h;

          if (0 === (g.mode & 2)) {
            var l = g.alternate;
            l ? (g.updateQueue = l.updateQueue, g.memoizedState = l.memoizedState, g.expirationTime = l.expirationTime) : (g.updateQueue = null, g.memoizedState = null);
          }

          var m = 0 !== (M.current & 1),
              p = f;

          do {
            var x;

            if (x = 13 === p.tag) {
              var z = p.memoizedState;
              if (null !== z) x = null !== z.dehydrated ? !0 : !1;else {
                var ca = p.memoizedProps;
                x = void 0 === ca.fallback ? !1 : !0 !== ca.unstable_avoidThisFallback ? !0 : m ? !1 : !0;
              }
            }

            if (x) {
              var D = p.updateQueue;

              if (null === D) {
                var t = new Set();
                t.add(k);
                p.updateQueue = t;
              } else D.add(k);

              if (0 === (p.mode & 2)) {
                p.effectTag |= 64;
                g.effectTag &= -2981;
                if (1 === g.tag) if (null === g.alternate) g.tag = 17;else {
                  var y = wg(1073741823, null);
                  y.tag = 2;
                  xg(g, y);
                }
                g.expirationTime = 1073741823;
                break a;
              }

              h = void 0;
              g = b;
              var A = e.pingCache;
              null === A ? (A = e.pingCache = new Wi(), h = new Set(), A.set(k, h)) : (h = A.get(k), void 0 === h && (h = new Set(), A.set(k, h)));

              if (!h.has(g)) {
                h.add(g);
                var q = Oj.bind(null, e, k, g);
                k.then(q, q);
              }

              p.effectTag |= 4096;
              p.expirationTime = b;
              break a;
            }

            p = p.return;
          } while (null !== p);

          h = Error((pb(g.type) || "A React component") + " suspended while rendering, but no fallback UI was specified.\n\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display." + qb(g));
        }

        S !== jj && (S = ij);
        h = Ai(h, g);
        p = f;

        do {
          switch (p.tag) {
            case 3:
              k = h;
              p.effectTag |= 4096;
              p.expirationTime = b;
              var B = Xi(p, k, b);
              yg(p, B);
              break a;

            case 1:
              k = h;
              var w = p.type,
                  ub = p.stateNode;

              if (0 === (p.effectTag & 64) && ("function" === typeof w.getDerivedStateFromError || null !== ub && "function" === typeof ub.componentDidCatch && (null === aj || !aj.has(ub)))) {
                p.effectTag |= 4096;
                p.expirationTime = b;
                var vb = $i(p, k, b);
                yg(p, vb);
                break a;
              }

          }

          p = p.return;
        } while (null !== p);
      }

      X = Pj(X);
    } catch (Xc) {
      b = Xc;
      continue;
    }

    break;
  } while (1);
}

function Fj() {
  var a = cj.current;
  cj.current = sh;
  return null === a ? sh : a;
}

function Ag(a, b) {
  a < lj && 2 < a && (lj = a);
  null !== b && a < mj && 2 < a && (mj = a, nj = b);
}

function Bg(a) {
  a > wi && (wi = a);
}

function Kj() {
  for (; null !== X;) X = Qj(X);
}

function Gj() {
  for (; null !== X && !Uf();) X = Qj(X);
}

function Qj(a) {
  var b = Rj(a.alternate, a, U);
  a.memoizedProps = a.pendingProps;
  null === b && (b = Pj(a));
  dj.current = null;
  return b;
}

function Pj(a) {
  X = a;

  do {
    var b = X.alternate;
    a = X.return;

    if (0 === (X.effectTag & 2048)) {
      b = si(b, X, U);

      if (1 === U || 1 !== X.childExpirationTime) {
        for (var c = 0, d = X.child; null !== d;) {
          var e = d.expirationTime,
              f = d.childExpirationTime;
          e > c && (c = e);
          f > c && (c = f);
          d = d.sibling;
        }

        X.childExpirationTime = c;
      }

      if (null !== b) return b;
      null !== a && 0 === (a.effectTag & 2048) && (null === a.firstEffect && (a.firstEffect = X.firstEffect), null !== X.lastEffect && (null !== a.lastEffect && (a.lastEffect.nextEffect = X.firstEffect), a.lastEffect = X.lastEffect), 1 < X.effectTag && (null !== a.lastEffect ? a.lastEffect.nextEffect = X : a.firstEffect = X, a.lastEffect = X));
    } else {
      b = zi(X);
      if (null !== b) return b.effectTag &= 2047, b;
      null !== a && (a.firstEffect = a.lastEffect = null, a.effectTag |= 2048);
    }

    b = X.sibling;
    if (null !== b) return b;
    X = a;
  } while (null !== X);

  S === ti && (S = jj);
  return null;
}

function Ij(a) {
  var b = a.expirationTime;
  a = a.childExpirationTime;
  return b > a ? b : a;
}

function Jj(a) {
  var b = ag();
  cg(99, Sj.bind(null, a, b));
  return null;
}

function Sj(a, b) {
  do Dj(); while (null !== rj);

  if ((W & (fj | gj)) !== V) throw Error(u(327));
  var c = a.finishedWork,
      d = a.finishedExpirationTime;
  if (null === c) return null;
  a.finishedWork = null;
  a.finishedExpirationTime = 0;
  if (c === a.current) throw Error(u(177));
  a.callbackNode = null;
  a.callbackExpirationTime = 0;
  a.callbackPriority = 90;
  a.nextKnownPendingLevel = 0;
  var e = Ij(c);
  a.firstPendingTime = e;
  d <= a.lastSuspendedTime ? a.firstSuspendedTime = a.lastSuspendedTime = a.nextKnownPendingLevel = 0 : d <= a.firstSuspendedTime && (a.firstSuspendedTime = d - 1);
  d <= a.lastPingedTime && (a.lastPingedTime = 0);
  d <= a.lastExpiredTime && (a.lastExpiredTime = 0);
  a === T && (X = T = null, U = 0);
  1 < c.effectTag ? null !== c.lastEffect ? (c.lastEffect.nextEffect = c, e = c.firstEffect) : e = c : e = c.firstEffect;

  if (null !== e) {
    var f = W;
    W |= gj;
    dj.current = null;
    Dd = fd;
    var g = xd();

    if (yd(g)) {
      if ("selectionStart" in g) var h = {
        start: g.selectionStart,
        end: g.selectionEnd
      };else a: {
        h = (h = g.ownerDocument) && h.defaultView || window;
        var k = h.getSelection && h.getSelection();

        if (k && 0 !== k.rangeCount) {
          h = k.anchorNode;
          var l = k.anchorOffset,
              m = k.focusNode;
          k = k.focusOffset;

          try {
            h.nodeType, m.nodeType;
          } catch (wb) {
            h = null;
            break a;
          }

          var p = 0,
              x = -1,
              z = -1,
              ca = 0,
              D = 0,
              t = g,
              y = null;

          b: for (;;) {
            for (var A;;) {
              t !== h || 0 !== l && 3 !== t.nodeType || (x = p + l);
              t !== m || 0 !== k && 3 !== t.nodeType || (z = p + k);
              3 === t.nodeType && (p += t.nodeValue.length);
              if (null === (A = t.firstChild)) break;
              y = t;
              t = A;
            }

            for (;;) {
              if (t === g) break b;
              y === h && ++ca === l && (x = p);
              y === m && ++D === k && (z = p);
              if (null !== (A = t.nextSibling)) break;
              t = y;
              y = t.parentNode;
            }

            t = A;
          }

          h = -1 === x || -1 === z ? null : {
            start: x,
            end: z
          };
        } else h = null;
      }
      h = h || {
        start: 0,
        end: 0
      };
    } else h = null;

    Ed = {
      activeElementDetached: null,
      focusedElem: g,
      selectionRange: h
    };
    fd = !1;
    Y = e;

    do try {
      Tj();
    } catch (wb) {
      if (null === Y) throw Error(u(330));
      Ei(Y, wb);
      Y = Y.nextEffect;
    } while (null !== Y);

    Y = e;

    do try {
      for (g = a, h = b; null !== Y;) {
        var q = Y.effectTag;
        q & 16 && Rb(Y.stateNode, "");

        if (q & 128) {
          var B = Y.alternate;

          if (null !== B) {
            var w = B.ref;
            null !== w && ("function" === typeof w ? w(null) : w.current = null);
          }
        }

        switch (q & 1038) {
          case 2:
            Pi(Y);
            Y.effectTag &= -3;
            break;

          case 6:
            Pi(Y);
            Y.effectTag &= -3;
            Si(Y.alternate, Y);
            break;

          case 1024:
            Y.effectTag &= -1025;
            break;

          case 1028:
            Y.effectTag &= -1025;
            Si(Y.alternate, Y);
            break;

          case 4:
            Si(Y.alternate, Y);
            break;

          case 8:
            l = Y, Mi(g, l, h), Ni(l);
        }

        Y = Y.nextEffect;
      }
    } catch (wb) {
      if (null === Y) throw Error(u(330));
      Ei(Y, wb);
      Y = Y.nextEffect;
    } while (null !== Y);

    w = Ed;
    B = xd();
    q = w.focusedElem;
    h = w.selectionRange;

    if (B !== q && q && q.ownerDocument && wd(q.ownerDocument.documentElement, q)) {
      null !== h && yd(q) && (B = h.start, w = h.end, void 0 === w && (w = B), "selectionStart" in q ? (q.selectionStart = B, q.selectionEnd = Math.min(w, q.value.length)) : (w = (B = q.ownerDocument || document) && B.defaultView || window, w.getSelection && (w = w.getSelection(), l = q.textContent.length, g = Math.min(h.start, l), h = void 0 === h.end ? g : Math.min(h.end, l), !w.extend && g > h && (l = h, h = g, g = l), l = vd(q, g), m = vd(q, h), l && m && (1 !== w.rangeCount || w.anchorNode !== l.node || w.anchorOffset !== l.offset || w.focusNode !== m.node || w.focusOffset !== m.offset) && (B = B.createRange(), B.setStart(l.node, l.offset), w.removeAllRanges(), g > h ? (w.addRange(B), w.extend(m.node, m.offset)) : (B.setEnd(m.node, m.offset), w.addRange(B))))));
      B = [];

      for (w = q; w = w.parentNode;) 1 === w.nodeType && B.push({
        element: w,
        left: w.scrollLeft,
        top: w.scrollTop
      });

      "function" === typeof q.focus && q.focus();

      for (q = 0; q < B.length; q++) w = B[q], w.element.scrollLeft = w.left, w.element.scrollTop = w.top;
    }

    fd = !!Dd;
    Ed = Dd = null;
    a.current = c;
    Y = e;

    do try {
      for (q = a; null !== Y;) {
        var ub = Y.effectTag;
        ub & 36 && Ji(q, Y.alternate, Y);

        if (ub & 128) {
          B = void 0;
          var vb = Y.ref;

          if (null !== vb) {
            var Xc = Y.stateNode;

            switch (Y.tag) {
              case 5:
                B = Xc;
                break;

              default:
                B = Xc;
            }

            "function" === typeof vb ? vb(B) : vb.current = B;
          }
        }

        Y = Y.nextEffect;
      }
    } catch (wb) {
      if (null === Y) throw Error(u(330));
      Ei(Y, wb);
      Y = Y.nextEffect;
    } while (null !== Y);

    Y = null;
    Vf();
    W = f;
  } else a.current = c;

  if (qj) qj = !1, rj = a, sj = b;else for (Y = e; null !== Y;) b = Y.nextEffect, Y.nextEffect = null, Y = b;
  b = a.firstPendingTime;
  0 === b && (aj = null);
  1073741823 === b ? a === vj ? uj++ : (uj = 0, vj = a) : uj = 0;
  "function" === typeof Uj && Uj(c.stateNode, d);
  Z(a);
  if (Yi) throw Yi = !1, a = Zi, Zi = null, a;
  if ((W & ej) !== V) return null;
  gg();
  return null;
}

function Tj() {
  for (; null !== Y;) {
    var a = Y.effectTag;
    0 !== (a & 256) && Gi(Y.alternate, Y);
    0 === (a & 512) || qj || (qj = !0, dg(97, function () {
      Dj();
      return null;
    }));
    Y = Y.nextEffect;
  }
}

function Dj() {
  if (90 !== sj) {
    var a = 97 < sj ? 97 : sj;
    sj = 90;
    return cg(a, Vj);
  }
}

function Vj() {
  if (null === rj) return !1;
  var a = rj;
  rj = null;
  if ((W & (fj | gj)) !== V) throw Error(u(331));
  var b = W;
  W |= gj;

  for (a = a.current.firstEffect; null !== a;) {
    try {
      var c = a;
      if (0 !== (c.effectTag & 512)) switch (c.tag) {
        case 0:
        case 11:
        case 15:
        case 22:
          Hi(5, c), Ii(5, c);
      }
    } catch (d) {
      if (null === a) throw Error(u(330));
      Ei(a, d);
    }

    c = a.nextEffect;
    a.nextEffect = null;
    a = c;
  }

  W = b;
  gg();
  return !0;
}

function Wj(a, b, c) {
  b = Ai(c, b);
  b = Xi(a, b, 1073741823);
  xg(a, b);
  a = xj(a, 1073741823);
  null !== a && Z(a);
}

function Ei(a, b) {
  if (3 === a.tag) Wj(a, a, b);else for (var c = a.return; null !== c;) {
    if (3 === c.tag) {
      Wj(c, a, b);
      break;
    } else if (1 === c.tag) {
      var d = c.stateNode;

      if ("function" === typeof c.type.getDerivedStateFromError || "function" === typeof d.componentDidCatch && (null === aj || !aj.has(d))) {
        a = Ai(b, a);
        a = $i(c, a, 1073741823);
        xg(c, a);
        c = xj(c, 1073741823);
        null !== c && Z(c);
        break;
      }
    }

    c = c.return;
  }
}

function Oj(a, b, c) {
  var d = a.pingCache;
  null !== d && d.delete(b);
  T === a && U === c ? S === vi || S === ui && 1073741823 === lj && $f() - Ti < pj ? Ej(a, U) : oj = !0 : Aj(a, c) && (b = a.lastPingedTime, 0 !== b && b < c || (a.lastPingedTime = c, Z(a)));
}

function Vi(a, b) {
  var c = a.stateNode;
  null !== c && c.delete(b);
  b = 0;
  0 === b && (b = Gg(), b = Hg(b, a, null));
  a = xj(a, b);
  null !== a && Z(a);
}

var Rj;

Rj = function (a, b, c) {
  var d = b.expirationTime;

  if (null !== a) {
    var e = b.pendingProps;
    if (a.memoizedProps !== e || K.current) rg = !0;else {
      if (d < c) {
        rg = !1;

        switch (b.tag) {
          case 3:
            hi(b);
            Xh();
            break;

          case 5:
            fh(b);
            if (b.mode & 4 && 1 !== c && e.hidden) return b.expirationTime = b.childExpirationTime = 1, null;
            break;

          case 1:
            L(b.type) && Gf(b);
            break;

          case 4:
            dh(b, b.stateNode.containerInfo);
            break;

          case 10:
            d = b.memoizedProps.value;
            e = b.type._context;
            I(jg, e._currentValue);
            e._currentValue = d;
            break;

          case 13:
            if (null !== b.memoizedState) {
              d = b.child.childExpirationTime;
              if (0 !== d && d >= c) return ji(a, b, c);
              I(M, M.current & 1);
              b = $h(a, b, c);
              return null !== b ? b.sibling : null;
            }

            I(M, M.current & 1);
            break;

          case 19:
            d = b.childExpirationTime >= c;

            if (0 !== (a.effectTag & 64)) {
              if (d) return mi(a, b, c);
              b.effectTag |= 64;
            }

            e = b.memoizedState;
            null !== e && (e.rendering = null, e.tail = null);
            I(M, M.current);
            if (!d) return null;
        }

        return $h(a, b, c);
      }

      rg = !1;
    }
  } else rg = !1;

  b.expirationTime = 0;

  switch (b.tag) {
    case 2:
      d = b.type;
      null !== a && (a.alternate = null, b.alternate = null, b.effectTag |= 2);
      a = b.pendingProps;
      e = Cf(b, J.current);
      qg(b, c);
      e = oh(null, b, d, a, e, c);
      b.effectTag |= 1;

      if ("object" === typeof e && null !== e && "function" === typeof e.render && void 0 === e.$$typeof) {
        b.tag = 1;
        b.memoizedState = null;
        b.updateQueue = null;

        if (L(d)) {
          var f = !0;
          Gf(b);
        } else f = !1;

        b.memoizedState = null !== e.state && void 0 !== e.state ? e.state : null;
        ug(b);
        var g = d.getDerivedStateFromProps;
        "function" === typeof g && Fg(b, d, g, a);
        e.updater = Jg;
        b.stateNode = e;
        e._reactInternalFiber = b;
        Ng(b, d, a, c);
        b = gi(null, b, d, !0, f, c);
      } else b.tag = 0, R(null, b, e, c), b = b.child;

      return b;

    case 16:
      a: {
        e = b.elementType;
        null !== a && (a.alternate = null, b.alternate = null, b.effectTag |= 2);
        a = b.pendingProps;
        ob(e);
        if (1 !== e._status) throw e._result;
        e = e._result;
        b.type = e;
        f = b.tag = Xj(e);
        a = ig(e, a);

        switch (f) {
          case 0:
            b = di(null, b, e, a, c);
            break a;

          case 1:
            b = fi(null, b, e, a, c);
            break a;

          case 11:
            b = Zh(null, b, e, a, c);
            break a;

          case 14:
            b = ai(null, b, e, ig(e.type, a), d, c);
            break a;
        }

        throw Error(u(306, e, ""));
      }

      return b;

    case 0:
      return d = b.type, e = b.pendingProps, e = b.elementType === d ? e : ig(d, e), di(a, b, d, e, c);

    case 1:
      return d = b.type, e = b.pendingProps, e = b.elementType === d ? e : ig(d, e), fi(a, b, d, e, c);

    case 3:
      hi(b);
      d = b.updateQueue;
      if (null === a || null === d) throw Error(u(282));
      d = b.pendingProps;
      e = b.memoizedState;
      e = null !== e ? e.element : null;
      vg(a, b);
      zg(b, d, null, c);
      d = b.memoizedState.element;
      if (d === e) Xh(), b = $h(a, b, c);else {
        if (e = b.stateNode.hydrate) Ph = Jd(b.stateNode.containerInfo.firstChild), Oh = b, e = Qh = !0;
        if (e) for (c = Yg(b, null, d, c), b.child = c; c;) c.effectTag = c.effectTag & -3 | 1024, c = c.sibling;else R(a, b, d, c), Xh();
        b = b.child;
      }
      return b;

    case 5:
      return fh(b), null === a && Uh(b), d = b.type, e = b.pendingProps, f = null !== a ? a.memoizedProps : null, g = e.children, Gd(d, e) ? g = null : null !== f && Gd(d, f) && (b.effectTag |= 16), ei(a, b), b.mode & 4 && 1 !== c && e.hidden ? (b.expirationTime = b.childExpirationTime = 1, b = null) : (R(a, b, g, c), b = b.child), b;

    case 6:
      return null === a && Uh(b), null;

    case 13:
      return ji(a, b, c);

    case 4:
      return dh(b, b.stateNode.containerInfo), d = b.pendingProps, null === a ? b.child = Xg(b, null, d, c) : R(a, b, d, c), b.child;

    case 11:
      return d = b.type, e = b.pendingProps, e = b.elementType === d ? e : ig(d, e), Zh(a, b, d, e, c);

    case 7:
      return R(a, b, b.pendingProps, c), b.child;

    case 8:
      return R(a, b, b.pendingProps.children, c), b.child;

    case 12:
      return R(a, b, b.pendingProps.children, c), b.child;

    case 10:
      a: {
        d = b.type._context;
        e = b.pendingProps;
        g = b.memoizedProps;
        f = e.value;
        var h = b.type._context;
        I(jg, h._currentValue);
        h._currentValue = f;
        if (null !== g) if (h = g.value, f = $e(h, f) ? 0 : ("function" === typeof d._calculateChangedBits ? d._calculateChangedBits(h, f) : 1073741823) | 0, 0 === f) {
          if (g.children === e.children && !K.current) {
            b = $h(a, b, c);
            break a;
          }
        } else for (h = b.child, null !== h && (h.return = b); null !== h;) {
          var k = h.dependencies;

          if (null !== k) {
            g = h.child;

            for (var l = k.firstContext; null !== l;) {
              if (l.context === d && 0 !== (l.observedBits & f)) {
                1 === h.tag && (l = wg(c, null), l.tag = 2, xg(h, l));
                h.expirationTime < c && (h.expirationTime = c);
                l = h.alternate;
                null !== l && l.expirationTime < c && (l.expirationTime = c);
                pg(h.return, c);
                k.expirationTime < c && (k.expirationTime = c);
                break;
              }

              l = l.next;
            }
          } else g = 10 === h.tag ? h.type === b.type ? null : h.child : h.child;

          if (null !== g) g.return = h;else for (g = h; null !== g;) {
            if (g === b) {
              g = null;
              break;
            }

            h = g.sibling;

            if (null !== h) {
              h.return = g.return;
              g = h;
              break;
            }

            g = g.return;
          }
          h = g;
        }
        R(a, b, e.children, c);
        b = b.child;
      }

      return b;

    case 9:
      return e = b.type, f = b.pendingProps, d = f.children, qg(b, c), e = sg(e, f.unstable_observedBits), d = d(e), b.effectTag |= 1, R(a, b, d, c), b.child;

    case 14:
      return e = b.type, f = ig(e, b.pendingProps), f = ig(e.type, f), ai(a, b, e, f, d, c);

    case 15:
      return ci(a, b, b.type, b.pendingProps, d, c);

    case 17:
      return d = b.type, e = b.pendingProps, e = b.elementType === d ? e : ig(d, e), null !== a && (a.alternate = null, b.alternate = null, b.effectTag |= 2), b.tag = 1, L(d) ? (a = !0, Gf(b)) : a = !1, qg(b, c), Lg(b, d, e), Ng(b, d, e, c), gi(null, b, d, !0, a, c);

    case 19:
      return mi(a, b, c);
  }

  throw Error(u(156, b.tag));
};

var Uj = null,
    Li = null;

function Yj(a) {
  if ("undefined" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) return !1;
  var b = __REACT_DEVTOOLS_GLOBAL_HOOK__;
  if (b.isDisabled || !b.supportsFiber) return !0;

  try {
    var c = b.inject(a);

    Uj = function (a) {
      try {
        b.onCommitFiberRoot(c, a, void 0, 64 === (a.current.effectTag & 64));
      } catch (e) {}
    };

    Li = function (a) {
      try {
        b.onCommitFiberUnmount(c, a);
      } catch (e) {}
    };
  } catch (d) {}

  return !0;
}

function Zj(a, b, c, d) {
  this.tag = a;
  this.key = c;
  this.sibling = this.child = this.return = this.stateNode = this.type = this.elementType = null;
  this.index = 0;
  this.ref = null;
  this.pendingProps = b;
  this.dependencies = this.memoizedState = this.updateQueue = this.memoizedProps = null;
  this.mode = d;
  this.effectTag = 0;
  this.lastEffect = this.firstEffect = this.nextEffect = null;
  this.childExpirationTime = this.expirationTime = 0;
  this.alternate = null;
}

function Sh(a, b, c, d) {
  return new Zj(a, b, c, d);
}

function bi(a) {
  a = a.prototype;
  return !(!a || !a.isReactComponent);
}

function Xj(a) {
  if ("function" === typeof a) return bi(a) ? 1 : 0;

  if (void 0 !== a && null !== a) {
    a = a.$$typeof;
    if (a === gb) return 11;
    if (a === jb) return 14;
  }

  return 2;
}

function Sg(a, b) {
  var c = a.alternate;
  null === c ? (c = Sh(a.tag, b, a.key, a.mode), c.elementType = a.elementType, c.type = a.type, c.stateNode = a.stateNode, c.alternate = a, a.alternate = c) : (c.pendingProps = b, c.effectTag = 0, c.nextEffect = null, c.firstEffect = null, c.lastEffect = null);
  c.childExpirationTime = a.childExpirationTime;
  c.expirationTime = a.expirationTime;
  c.child = a.child;
  c.memoizedProps = a.memoizedProps;
  c.memoizedState = a.memoizedState;
  c.updateQueue = a.updateQueue;
  b = a.dependencies;
  c.dependencies = null === b ? null : {
    expirationTime: b.expirationTime,
    firstContext: b.firstContext,
    responders: b.responders
  };
  c.sibling = a.sibling;
  c.index = a.index;
  c.ref = a.ref;
  return c;
}

function Ug(a, b, c, d, e, f) {
  var g = 2;
  d = a;
  if ("function" === typeof a) bi(a) && (g = 1);else if ("string" === typeof a) g = 5;else a: switch (a) {
    case ab:
      return Wg(c.children, e, f, b);

    case fb:
      g = 8;
      e |= 7;
      break;

    case bb:
      g = 8;
      e |= 1;
      break;

    case cb:
      return a = Sh(12, c, b, e | 8), a.elementType = cb, a.type = cb, a.expirationTime = f, a;

    case hb:
      return a = Sh(13, c, b, e), a.type = hb, a.elementType = hb, a.expirationTime = f, a;

    case ib:
      return a = Sh(19, c, b, e), a.elementType = ib, a.expirationTime = f, a;

    default:
      if ("object" === typeof a && null !== a) switch (a.$$typeof) {
        case db:
          g = 10;
          break a;

        case eb:
          g = 9;
          break a;

        case gb:
          g = 11;
          break a;

        case jb:
          g = 14;
          break a;

        case kb:
          g = 16;
          d = null;
          break a;

        case lb:
          g = 22;
          break a;
      }
      throw Error(u(130, null == a ? a : typeof a, ""));
  }
  b = Sh(g, c, b, e);
  b.elementType = a;
  b.type = d;
  b.expirationTime = f;
  return b;
}

function Wg(a, b, c, d) {
  a = Sh(7, a, d, b);
  a.expirationTime = c;
  return a;
}

function Tg(a, b, c) {
  a = Sh(6, a, null, b);
  a.expirationTime = c;
  return a;
}

function Vg(a, b, c) {
  b = Sh(4, null !== a.children ? a.children : [], a.key, b);
  b.expirationTime = c;
  b.stateNode = {
    containerInfo: a.containerInfo,
    pendingChildren: null,
    implementation: a.implementation
  };
  return b;
}

function ak(a, b, c) {
  this.tag = b;
  this.current = null;
  this.containerInfo = a;
  this.pingCache = this.pendingChildren = null;
  this.finishedExpirationTime = 0;
  this.finishedWork = null;
  this.timeoutHandle = -1;
  this.pendingContext = this.context = null;
  this.hydrate = c;
  this.callbackNode = null;
  this.callbackPriority = 90;
  this.lastExpiredTime = this.lastPingedTime = this.nextKnownPendingLevel = this.lastSuspendedTime = this.firstSuspendedTime = this.firstPendingTime = 0;
}

function Aj(a, b) {
  var c = a.firstSuspendedTime;
  a = a.lastSuspendedTime;
  return 0 !== c && c >= b && a <= b;
}

function xi(a, b) {
  var c = a.firstSuspendedTime,
      d = a.lastSuspendedTime;
  c < b && (a.firstSuspendedTime = b);
  if (d > b || 0 === c) a.lastSuspendedTime = b;
  b <= a.lastPingedTime && (a.lastPingedTime = 0);
  b <= a.lastExpiredTime && (a.lastExpiredTime = 0);
}

function yi(a, b) {
  b > a.firstPendingTime && (a.firstPendingTime = b);
  var c = a.firstSuspendedTime;
  0 !== c && (b >= c ? a.firstSuspendedTime = a.lastSuspendedTime = a.nextKnownPendingLevel = 0 : b >= a.lastSuspendedTime && (a.lastSuspendedTime = b + 1), b > a.nextKnownPendingLevel && (a.nextKnownPendingLevel = b));
}

function Cj(a, b) {
  var c = a.lastExpiredTime;
  if (0 === c || c > b) a.lastExpiredTime = b;
}

function bk(a, b, c, d) {
  var e = b.current,
      f = Gg(),
      g = Dg.suspense;
  f = Hg(f, e, g);

  a: if (c) {
    c = c._reactInternalFiber;

    b: {
      if (dc(c) !== c || 1 !== c.tag) throw Error(u(170));
      var h = c;

      do {
        switch (h.tag) {
          case 3:
            h = h.stateNode.context;
            break b;

          case 1:
            if (L(h.type)) {
              h = h.stateNode.__reactInternalMemoizedMergedChildContext;
              break b;
            }

        }

        h = h.return;
      } while (null !== h);

      throw Error(u(171));
    }

    if (1 === c.tag) {
      var k = c.type;

      if (L(k)) {
        c = Ff(c, k, h);
        break a;
      }
    }

    c = h;
  } else c = Af;

  null === b.context ? b.context = c : b.pendingContext = c;
  b = wg(f, g);
  b.payload = {
    element: a
  };
  d = void 0 === d ? null : d;
  null !== d && (b.callback = d);
  xg(e, b);
  Ig(e, f);
  return f;
}

function ck(a) {
  a = a.current;
  if (!a.child) return null;

  switch (a.child.tag) {
    case 5:
      return a.child.stateNode;

    default:
      return a.child.stateNode;
  }
}

function dk(a, b) {
  a = a.memoizedState;
  null !== a && null !== a.dehydrated && a.retryTime < b && (a.retryTime = b);
}

function ek(a, b) {
  dk(a, b);
  (a = a.alternate) && dk(a, b);
}

function fk(a, b, c) {
  c = null != c && !0 === c.hydrate;
  var d = new ak(a, b, c),
      e = Sh(3, null, null, 2 === b ? 7 : 1 === b ? 3 : 0);
  d.current = e;
  e.stateNode = d;
  ug(e);
  a[Od] = d.current;
  c && 0 !== b && Jc(a, 9 === a.nodeType ? a : a.ownerDocument);
  this._internalRoot = d;
}

fk.prototype.render = function (a) {
  bk(a, this._internalRoot, null, null);
};

fk.prototype.unmount = function () {
  var a = this._internalRoot,
      b = a.containerInfo;
  bk(null, a, null, function () {
    b[Od] = null;
  });
};

function gk(a) {
  return !(!a || 1 !== a.nodeType && 9 !== a.nodeType && 11 !== a.nodeType && (8 !== a.nodeType || " react-mount-point-unstable " !== a.nodeValue));
}

function hk(a, b) {
  b || (b = a ? 9 === a.nodeType ? a.documentElement : a.firstChild : null, b = !(!b || 1 !== b.nodeType || !b.hasAttribute("data-reactroot")));
  if (!b) for (var c; c = a.lastChild;) a.removeChild(c);
  return new fk(a, 0, b ? {
    hydrate: !0
  } : void 0);
}

function ik(a, b, c, d, e) {
  var f = c._reactRootContainer;

  if (f) {
    var g = f._internalRoot;

    if ("function" === typeof e) {
      var h = e;

      e = function () {
        var a = ck(g);
        h.call(a);
      };
    }

    bk(b, g, a, e);
  } else {
    f = c._reactRootContainer = hk(c, d);
    g = f._internalRoot;

    if ("function" === typeof e) {
      var k = e;

      e = function () {
        var a = ck(g);
        k.call(a);
      };
    }

    Nj(function () {
      bk(b, g, a, e);
    });
  }

  return ck(g);
}

function jk(a, b, c) {
  var d = 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : null;
  return {
    $$typeof: $a,
    key: null == d ? null : "" + d,
    children: a,
    containerInfo: b,
    implementation: c
  };
}

wc = function (a) {
  if (13 === a.tag) {
    var b = hg(Gg(), 150, 100);
    Ig(a, b);
    ek(a, b);
  }
};

xc = function (a) {
  13 === a.tag && (Ig(a, 3), ek(a, 3));
};

yc = function (a) {
  if (13 === a.tag) {
    var b = Gg();
    b = Hg(b, a, null);
    Ig(a, b);
    ek(a, b);
  }
};

za = function (a, b, c) {
  switch (b) {
    case "input":
      Cb(a, c);
      b = c.name;

      if ("radio" === c.type && null != b) {
        for (c = a; c.parentNode;) c = c.parentNode;

        c = c.querySelectorAll("input[name=" + JSON.stringify("" + b) + '][type="radio"]');

        for (b = 0; b < c.length; b++) {
          var d = c[b];

          if (d !== a && d.form === a.form) {
            var e = Qd(d);
            if (!e) throw Error(u(90));
            yb(d);
            Cb(d, e);
          }
        }
      }

      break;

    case "textarea":
      Kb(a, c);
      break;

    case "select":
      b = c.value, null != b && Hb(a, !!c.multiple, b, !1);
  }
};

Fa = Mj;

Ga = function (a, b, c, d, e) {
  var f = W;
  W |= 4;

  try {
    return cg(98, a.bind(null, b, c, d, e));
  } finally {
    W = f, W === V && gg();
  }
};

Ha = function () {
  (W & (1 | fj | gj)) === V && (Lj(), Dj());
};

Ia = function (a, b) {
  var c = W;
  W |= 2;

  try {
    return a(b);
  } finally {
    W = c, W === V && gg();
  }
};

function kk(a, b) {
  var c = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null;
  if (!gk(b)) throw Error(u(200));
  return jk(a, b, null, c);
}

var lk = {
  Events: [Nc, Pd, Qd, xa, ta, Xd, function (a) {
    jc(a, Wd);
  }, Da, Ea, id, mc, Dj, {
    current: !1
  }]
};

(function (a) {
  var b = a.findFiberByHostInstance;
  return Yj(n({}, a, {
    overrideHookState: null,
    overrideProps: null,
    setSuspenseHandler: null,
    scheduleUpdate: null,
    currentDispatcherRef: Wa.ReactCurrentDispatcher,
    findHostInstanceByFiber: function (a) {
      a = hc(a);
      return null === a ? null : a.stateNode;
    },
    findFiberByHostInstance: function (a) {
      return b ? b(a) : null;
    },
    findHostInstancesForRefresh: null,
    scheduleRefresh: null,
    scheduleRoot: null,
    setRefreshHandler: null,
    getCurrentFiber: null
  }));
})({
  findFiberByHostInstance: tc,
  bundleType: 0,
  version: "16.14.0",
  rendererPackageName: "react-dom"
});

exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = lk;
exports.createPortal = kk;

exports.findDOMNode = function (a) {
  if (null == a) return null;
  if (1 === a.nodeType) return a;
  var b = a._reactInternalFiber;

  if (void 0 === b) {
    if ("function" === typeof a.render) throw Error(u(188));
    throw Error(u(268, Object.keys(a)));
  }

  a = hc(b);
  a = null === a ? null : a.stateNode;
  return a;
};

exports.flushSync = function (a, b) {
  if ((W & (fj | gj)) !== V) throw Error(u(187));
  var c = W;
  W |= 1;

  try {
    return cg(99, a.bind(null, b));
  } finally {
    W = c, gg();
  }
};

exports.hydrate = function (a, b, c) {
  if (!gk(b)) throw Error(u(200));
  return ik(null, a, b, !0, c);
};

exports.render = function (a, b, c) {
  if (!gk(b)) throw Error(u(200));
  return ik(null, a, b, !1, c);
};

exports.unmountComponentAtNode = function (a) {
  if (!gk(a)) throw Error(u(40));
  return a._reactRootContainer ? (Nj(function () {
    ik(null, null, a, !1, function () {
      a._reactRootContainer = null;
      a[Od] = null;
    });
  }), !0) : !1;
};

exports.unstable_batchedUpdates = Mj;

exports.unstable_createPortal = function (a, b) {
  return kk(a, b, 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null);
};

exports.unstable_renderSubtreeIntoContainer = function (a, b, c, d) {
  if (!gk(c)) throw Error(u(200));
  if (null == a || void 0 === a._reactInternalFiber) throw Error(u(38));
  return ik(a, b, c, !1, d);
};

exports.version = "16.14.0";

/***/ }),

/***/ "ynEm":
/***/ (function(module) {

module.exports = JSON.parse("{\"close\":\"Kapat\",\"error\":\"Hata\",\"info\":\"Bilgiler\",\"success\":\"Başarılı\",\"warning\":\"Uyarı\"}");

/***/ }),

/***/ "ynUZ":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return Route; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return SpaceRoute; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return TeamRoute; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return OtherTeamsRoute; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return AnyTeamRoute; });
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("YVc3");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "b", function() { return _constants__WEBPACK_IMPORTED_MODULE_0__["q"]; });

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

/* harmony import */ var query_string__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("cr+I");
/* harmony import */ var query_string__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(query_string__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _SpacesError__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("R5sx");
/* harmony import */ var _stores_Settings__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("5u1M");
/* istanbul ignore file */





const PROJECTS_ROOT_PATH = '/projects/';
const PROJECTS_FOLDER_PATH = '/projects/folder/';
const TEAMS_OTHER_ROOT_PATH = '/teams/other';
const TEAMS_ROOT_PATH = '/teams/';
class Route {
    static createFromString(url) {
        return createRouteFromString(url);
    }
}
class SpaceRoute extends Route {
    constructor(spaceId, details) {
        var _a;
        super();
        this.spaceId = spaceId;
        this.view = details === null || details === void 0 ? void 0 : details.view;
        const legacyFolderUrn = (_a = details) === null || _a === void 0 ? void 0 : _a.folderUrn;
        this.folderId = (details === null || details === void 0 ? void 0 : details.folderId) || legacyFolderUrn;
        this.teamId = details === null || details === void 0 ? void 0 : details.teamId;
        this.hideBackButton = details === null || details === void 0 ? void 0 : details.hideBackButton;
        if (!this.spaceId && !this.folderId) {
            throw new _SpacesError__WEBPACK_IMPORTED_MODULE_2__[/* SpacesError */ "b"]('INVALID_PARAMETER', 'A space route must have either folder id or space id available');
        }
    }
    get urn() {
        // backwards compatibility
        return this.spaceId;
    }
    get folderUrn() {
        // backwards compatibility
        return this.folderId;
    }
    get type() {
        return 'spaces';
    }
    get hasFolder() {
        return this.folderId;
    }
    isSameRoute(route) {
        if (route === this) {
            return true;
        }
        if (!route || route.type !== this.type) {
            return false;
        }
        const other = route;
        if ((!this.folderId && this.hasFolder) || (!other.folderId && other.hasFolder)) {
            // If routes have folder links without a folder id, we assume the routes are different.
            return false;
        }
        // Note - we don't need to compare teamID.
        return (this.spaceId === other.spaceId &&
            this.view === other.view &&
            this.folderId === other.folderId);
    }
    serialize(options) {
        if (this.hasFolder && !this.folderId && !(options === null || options === void 0 ? void 0 : options.skipFolder)) {
            // We cannot create a path path in this case.
            // This must be an unresolved route.
            return undefined;
        }
        if ((options === null || options === void 0 ? void 0 : options.skipFolder) && !this.spaceId) {
            return undefined;
        }
        let path = !(options === null || options === void 0 ? void 0 : options.skipFolder) && this.folderId
            ? `${PROJECTS_FOLDER_PATH}${this.folderId}`
            : `${PROJECTS_ROOT_PATH}${this.spaceId}`;
        const query = {};
        if (!(options === null || options === void 0 ? void 0 : options.skipView) && this.view && this.view !== _constants__WEBPACK_IMPORTED_MODULE_0__[/* OneUpTabs */ "q"].Working) {
            query.view = this.view;
        }
        const stringifedQueries = query_string__WEBPACK_IMPORTED_MODULE_1___default.a.stringify(query);
        if (stringifedQueries) {
            return `${path}?${stringifedQueries}`;
        }
        return path;
    }
}
class TeamRoute extends Route {
    constructor(teamId, details) {
        if (details && typeof details === 'string') {
            details = { view: details };
        }
        super();
        this.teamId = teamId;
        this._view = details === null || details === void 0 ? void 0 : details.view;
    }
    get view() {
        return this._view;
    }
    get type() {
        return 'teams';
    }
    get urn() {
        // backwards compatibility
        return this.teamId;
    }
    isSameRoute(route) {
        if (route === this) {
            return true;
        }
        if (!route || route.type !== this.type) {
            return false;
        }
        const other = route;
        return this.teamId === other.teamId && this.view === other.view;
    }
    serialize(options) {
        if (this.teamId === undefined) {
            return undefined;
        }
        const path = this.teamId ? `${TEAMS_ROOT_PATH}${this.teamId}` : `${TEAMS_OTHER_ROOT_PATH}`;
        const query = {};
        if (!(options === null || options === void 0 ? void 0 : options.skipView) && this.view && this.view !== _constants__WEBPACK_IMPORTED_MODULE_0__[/* TeamsOneUpTabs */ "I"].Spaces) {
            query.view = this.view;
        }
        const stringifedQueries = query_string__WEBPACK_IMPORTED_MODULE_1___default.a.stringify(query);
        if (stringifedQueries) {
            return `${path}?${stringifedQueries}`;
        }
        return path;
    }
}
class OtherTeamsRoute extends TeamRoute {
    constructor(details) {
        super('');
        this._view = details === null || details === void 0 ? void 0 : details.view;
        this.teamId = null;
    }
}
class AnyTeamRoute extends TeamRoute {
    constructor() {
        super('');
        this.teamId = undefined;
    }
}
const PROJECTS_REGEXP = /^\/(projects)\/([^/?]+)(\?.*)?$/;
const FOLDER_REGEXP = /^\/projects\/(folder)\/([^/?]+)(\?.*)?$/;
const TEAMS_REGEXP = /^\/(teams)\/([^/?]+)(\?.*)?$/;
function createRouteFromString(url) {
    let chunks = url.match(PROJECTS_REGEXP) || url.match(FOLDER_REGEXP) || url.match(TEAMS_REGEXP);
    if (!chunks) {
        throw new _SpacesError__WEBPACK_IMPORTED_MODULE_2__[/* SpacesError */ "b"]('INVALID_PARAMETER', 'Could not parse the url to create a route ' + url);
    }
    const [_, type, id, right] = chunks;
    const query = query_string__WEBPACK_IMPORTED_MODULE_1___default.a.parse(right);
    switch (type) {
        case 'projects':
            return new SpaceRoute(id, { view: query === null || query === void 0 ? void 0 : query.view });
        case 'folder':
            return new SpaceRoute(undefined, { folderId: id, view: query === null || query === void 0 ? void 0 : query.view });
        case 'teams':
            if (id === 'other') {
                return new OtherTeamsRoute({ view: query === null || query === void 0 ? void 0 : query.view });
            }
            return new TeamRoute(id, { view: query === null || query === void 0 ? void 0 : query.view });
        default:
            _stores_Settings__WEBPACK_IMPORTED_MODULE_3__[/* settings */ "b"].logger.warn(url, JSON.stringify(chunks));
            throw new _SpacesError__WEBPACK_IMPORTED_MODULE_2__[/* SpacesError */ "b"]('INVALID_PARAMETER', 'Unexpected regex match for route url' + url);
    }
}


/***/ }),

/***/ "yp3d":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXPORTS
__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ MosaicRendition; });

// EXTERNAL MODULE: ./node_modules/classnames/index.js
var classnames = __webpack_require__("TSYQ");
var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);

// EXTERNAL MODULE: ./node_modules/react/index.js
var react = __webpack_require__("q1tI");
var react_default = /*#__PURE__*/__webpack_require__.n(react);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/components/Rendition/Mosaic.css
var Mosaic = __webpack_require__("dbAn");
var Mosaic_default = /*#__PURE__*/__webpack_require__.n(Mosaic);

// EXTERNAL MODULE: ./node_modules/@torq-native/react-spectrum/src/Asset/index.js
var Asset = __webpack_require__("YnKX");

// EXTERNAL MODULE: ./node_modules/@react/react-spectrum-icons/dist/CCLibrary/index.js
var CCLibrary = __webpack_require__("yXOX");
var CCLibrary_default = /*#__PURE__*/__webpack_require__.n(CCLibrary);

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/stores/Settings.ts
var Settings = __webpack_require__("5u1M");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/libraryUtils.ts
var libraryUtils = __webpack_require__("5L/2");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/components/Rendition/ColorRendition.tsx




function ColorRendition({ mode, colordata, border }) {
    let built;
    // If not in RGB mode then the data is in hex format
    if (!(typeof colordata === 'string')) {
        const rounded = Object(libraryUtils["g" /* roundDownColor */])(colordata);
        built = `rgb(${rounded.r},${rounded.g},${rounded.b})`;
    }
    else {
        built = colordata;
    }
    return (react_default.a.createElement("div", { "data-test-id": 'ColorRendition', className: classnames_default()(Mosaic_default.a.colorContainer, { [Mosaic_default.a.colorBorder]: !!border }), style: {
            backgroundColor: built,
        } }));
}

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/components/Rendition/ColorThemeRendition.tsx




function ColorThemeRendition({ direction, colordata }) {
    // filter out any extra color data and return only the 5 {r,g,b} values needed to make a color swatch
    function getRGBs(color) {
        let rgbObject;
        // have to make a shallow copy with slice because color array is Observable and would return false
        // but if its not an array then slice will not work so check if it has colordata first
        if (!color.colordata && Array.isArray(color.slice())) {
            rgbObject =
                color &&
                    color.length &&
                    color.find(colorType => {
                        return colorType.mode === 'RGB';
                    });
        }
        else {
            rgbObject = color.colordata;
        }
        return rgbObject && rgbObject.value ? Object(libraryUtils["g" /* roundDownColor */])(rgbObject.value) : '';
    }
    let rgbOnly;
    // USS flattens the color data incorrectly, returning an array of 10 elements
    // rather than an array of five objects with nested CMYK and RGB togetherrs
    if (colordata.length > 5) {
        // the filter step removes top-level CMYK values
        // the map step removes all extra color data such as type and mode, and returns only the rgb data
        rgbOnly = Object(libraryUtils["d" /* getColorThemeSwatches */])(colordata).map(getRGBs);
    }
    else {
        rgbOnly = colordata.map(getRGBs);
    }
    return (react_default.a.createElement("div", { "data-test-id": "ColorThemeRendition", className: classnames_default()(Mosaic_default.a.insetColorTheme, {
            [Mosaic_default.a.colorThemeBorder]: direction === 'vertical',
        }) }, rgbOnly.map((color, i) => (react_default.a.createElement("div", { className: classnames_default()({
            [Mosaic_default.a.verticalColorThemePanel]: direction === 'vertical',
            [Mosaic_default.a.horizontalColorThemePanel]: direction === 'horizontal',
        }), key: i, style: { backgroundColor: `rgb(${color.r}, ${color.g}, ${color.b})` } })))));
}

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/components/Rendition/GradientRendition.tsx



function GradientRendition({ gradient }) {
    return react_default.a.createElement("div", { className: Mosaic_default.a.gradientContainer, style: Object(libraryUtils["e" /* getGradientCSS */])(gradient) });
}

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/components/Rendition/TileRendition.tsx










function EmptyTile({ large, isMain }) {
    if (isMain) {
        return react_default.a.createElement("div", { className: Mosaic_default.a.emptyMainTile }, large && react_default.a.createElement(CCLibrary_default.a, { size: "L" }));
    }
    else {
        return react_default.a.createElement("div", { className: Mosaic_default.a.emptyChildTile });
    }
}
function TileRendition({ data, token, large, isMain }) {
    var _a;
    if (!data || !data.type || !token) {
        return react_default.a.createElement(EmptyTile, { large: large, isMain: isMain });
    }
    if (data.type === libraryUtils["c" /* MIMETYPE */].LIBRARY_ELEMENT_COLOR) {
        if (!((_a = data.rendition) === null || _a === void 0 ? void 0 : _a.length)) {
            return react_default.a.createElement(EmptyTile, { large: large, isMain: isMain });
        }
        const rgbData = !data.rendition.swatches && data.rendition.value
            ? data.rendition.value
            : Object(libraryUtils["f" /* getRGBData */])(data.rendition);
        return react_default.a.createElement(ColorRendition, { colordata: rgbData, mode: "RGB", border: false });
    }
    if (data.type === libraryUtils["c" /* MIMETYPE */].LIBRARY_ELEMENT_COLORTHEME) {
        return react_default.a.createElement(ColorThemeRendition, { colordata: data.rendition.swatches, direction: "horizontal" });
    }
    if (data.type === libraryUtils["c" /* MIMETYPE */].LIBRARY_ELEMENT_GRADIENT) {
        const gradientData = data.rendition;
        if (!gradientData) {
            return react_default.a.createElement(EmptyTile, { large: large, isMain: isMain });
        }
        if (['linear', 'radial'].includes(gradientData.type)) {
            // We can only render linear or radial gradients. Anything else should have a thumbnail.
            return react_default.a.createElement(GradientRendition, { gradient: gradientData });
        }
    }
    return (react_default.a.createElement(Asset["AssetImage"], { decorative: true, className: classnames_default()(Mosaic_default.a.mosaicAssetImage, 'spectrum-Asset'), smartness: 0, src: data.rendition, headers: {
            'X-Api-Key': Settings["b" /* settings */].config.CLIENT_ID,
            Authorization: `Bearer ${token}`,
        } }));
}

// EXTERNAL MODULE: ./node_modules/mobx/lib/mobx.module.js
var mobx_module = __webpack_require__("2vnA");

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/stores/SharedStore.ts + 6 modules
var SharedStore = __webpack_require__("jmEq");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/hooks/useAuthToken.ts


/**
 * Fetch the auth token. Returns undefined until the token has been fetched.
 */
function useAuthToken() {
    const { imsData } = SharedStore["d" /* sharedStore */];
    const currentToken = imsData.token || '';
    const [token, setToken] = Object(react["useState"])(currentToken);
    Object(react["useEffect"])(() => {
        if (!currentToken) {
            SharedStore["d" /* sharedStore */].imsData
                .fetchToken()
                .then(setToken)
                .catch(() => { });
        }
    }, []);
    return token;
}

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/components/Rendition/MosaicRendition.tsx






function MosaicRendition({ large, insideMini, renditionGrid }) {
    const main = Object(mobx_module["F" /* toJS */])(renditionGrid === null || renditionGrid === void 0 ? void 0 : renditionGrid.main);
    const tiles = Object(mobx_module["F" /* toJS */])(renditionGrid === null || renditionGrid === void 0 ? void 0 : renditionGrid.tiles);
    const token = useAuthToken();
    const topHeightPercentage = large ? 66 : 51;
    const bottomHeightPercentage = 100 - topHeightPercentage;
    const numberOfChildTiles = large ? 3 : 2;
    const childTiles = [];
    for (let i = 0; i < numberOfChildTiles; i++) {
        childTiles.push(react_default.a.createElement("div", { key: i, className: Mosaic_default.a.renditionWrapper },
            react_default.a.createElement(TileRendition, { token: token, data: tiles === null || tiles === void 0 ? void 0 : tiles[i], large: large })));
    }
    return (react_default.a.createElement("div", { className: classnames_default()(Mosaic_default.a.mosaic, 'mosaic-Card-preview', {
            [Mosaic_default.a.large]: large,
            [Mosaic_default.a.insideMini]: insideMini,
        }) },
        react_default.a.createElement("div", { className: Mosaic_default.a.mosaicBorder },
            react_default.a.createElement("div", { style: { height: `${topHeightPercentage}%`, width: '100%' } },
                react_default.a.createElement(TileRendition, { token: token, data: main, large: large, isMain: true })),
            react_default.a.createElement("div", { className: Mosaic_default.a.mosaicTiles, style: { height: `${bottomHeightPercentage}%`, width: '100%' } }, childTiles))));
}


/***/ }),

/***/ "ysBu":
/***/ (function(module, exports) {

/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2018 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
module.exports = {
  'ccd.infoPanel.detail.created': 'Utworzono',
  'ccd.infoPanel.detail.modified': 'Zmodyfikowano',
  'ccd.infoPanel.detail.size': 'Rozmiar',
  'ccd.infoPanel.detail.shared': 'Udostępniono',
  'ccd.header.renameFolder': 'Zmień nazwę folderu',
  'ccd.menu.addToFavourites': 'Dodaj do skrótów',
  'ccd.menu.removeFromFavourites': 'Usuń skrót',
  'ccd.menu.viewonweb': 'Obejrzyj w sieci',
  'ccd.menu.share': 'Udostępnij',
  'ccd.menu.openWith': 'Otwórz w:',
  'ccd.menu.changeDefaultApp': 'Zmień aplikację domyślną...',
  'ccd.menu.default': '(domyślna)',
  'ccd.menu.export': 'Eksportuj jako kopię lokalną',
  'ccd.menu.download': 'Pobierz',
  'ccd.menu.createNew': 'Utwórz nowy...',
  'ccd.menu.launch': 'URUCHOM',
  'actionMenuItem.permdelete': 'Usuń trwale',
  'tab.Cloud Documents': 'Twoje pliki',
  'tab.Home': 'Strona główna',
  'header.CloudDocuments': 'Twoje pliki',
  'header.SharedWithYou': 'Udostępniane Ci',
  'header.Deleted': 'Usunięte',
  'header.Deleted.AssetsWebLink': 'Aby wyświetlić wszystkie usunięte elementy, przejdź do Assets Web.',
  'header.SelectedDocuments': 'Zaznaczono {numSelected, plural, =1 {#} other {#}}',
  'header.size': 'Rozmiar',
  'header.title': 'Nazwa',
  'header.modifiedDate': 'Data modyfikacji',
  'header.createDate': 'Data utworzenia',
  'header.shareDate': 'Data udostępnienia',
  'header.SortBy': 'Sortuj wg',
  'header.infoPopover.body': 'Wyświetlane są tylko zgodne pliki. Aby wyświetlić wszystkie pliki, otwórz serwis Creative Cloud w Internecie.',
  'header.infoPopover.link': 'Przejdź do Creative Cloud',
  'header.dragImport': 'Prześlij do: {displayName}',
  'collaborators.onlyYou': 'Tylko Ty',
  'collaborators.Owner': '{displayName} (właściciel)',
  'collaborators.More': '{numItems, plural, other {+ jeszcze #}}',
  'empty.offline.root.title': 'Nie masz połączenia.',
  'empty.offline.root.subtitle': 'Elementy widoczne podczas połączenia z siecią pojawią się tutaj, gdy połączysz się ponownie.',
  'empty.offline.folder.title': 'Nie udało się wczytać folderu',
  'empty.offline.folder.subtitle': 'Brak połączenia z Internetem. Połącz się ponownie, aby wyświetlić wszystko.',
  'empty.online.cdp.saveas.root.title': 'Brak dokumentów w chmurze',
  'empty.online.cdp.saveas.root.subtitle': 'Ponieważ dokumenty znajdują się w chmurze, zawsze zawierają najnowsze zmiany i są dostępne na każdym urządzeniu. Wystarczy połączyć się z Internetem.',
  'empty.online.cdp.saveas.root.subtitle.sprk': 'Tutaj będą wszystkie dokumenty w chmurze z programu XD. Pozwalają one pracować z dowolnego miejsca, nawet bez połączenia z siecią. Zmiany dokumentów w chmurze są automatycznie zapisywane i widoczne w historii dokumentu.',
  'empty.online.cdp.saveas.root.subtitle.phxs': 'Tu będą dostępne wszystkie dokumenty w chmurze z programu Photoshop zapisane na komputerze (Mac lub Windows) i iPadzie.',
  'empty.online.cdp.saveas.root.subtitle.ilst': 'Tu będą dostępne wszystkie dokumenty w chmurze z programu Illustrator zapisane na komputerze z systemem Mac i Windows.',
  'empty.online.cdp.saveas.root.subtitle.idsn': 'Tu będą dostępne wszystkie dokumenty w chmurze z programu InDesign zapisane na komputerze z systemem Mac i Windows.',
  'empty.online.cdp.saveas.folder.title': 'Brak dokumentów w chmurze',
  'empty.online.cdp.saveas.folder.subtitle': 'Gdy umieścisz w tym folderze zgodny dokument w chmurze, pojawi się on tutaj.',
  'empty.online.cdp.open.root.title': 'Brak dokumentów w chmurze',
  'empty.online.cdp.open.root.subtitle': 'Gdy umieścisz w tym folderze zgodny dokument w chmurze, pojawi się on tutaj.',
  'empty.online.cdp.open.root.subtitle.sprk': 'Tutaj będą wszystkie dokumenty w chmurze z programu XD. Pozwalają one pracować z dowolnego miejsca, nawet bez połączenia z siecią. Zmiany dokumentów w chmurze są automatycznie zapisywane i widoczne w historii dokumentu.',
  'empty.online.cdp.open.root.subtitle.phxs': 'Tu będą dostępne wszystkie dokumenty w chmurze z programu Photoshop zapisane na komputerze (Mac lub Windows) i iPadzie.',
  'empty.online.cdp.open.root.subtitle.ilst': 'Tu będą dostępne wszystkie dokumenty w chmurze z programu Illustrator zapisane na komputerze z systemem Mac i Windows.',
  'empty.online.cdp.open.root.subtitle.idsn': 'Tu będą dostępne wszystkie dokumenty w chmurze z programu InDesign zapisane na komputerze z systemem Mac i Windows.',
  'empty.online.cdp.open.folder.title': 'Brak dokumentów w chmurze',
  'empty.online.cdp.open.folder.subtitle': 'Gdy umieścisz w tym folderze zgodny dokument w chmurze, pojawi się on tutaj.',
  'empty.online.cdo.root.title': 'Brak dokumentów w chmurze',
  'empty.online.cdo.root.subtitle': 'Płynna współpraca z innymi osobami i tworzenie w dowolnym miejscu — nawet bez połączenia z siecią. Zmiany są zapisywane automatycznie i widoczne w historii pliku.',
  'empty.online.cdo.root.subtitle.sprk': 'Płynna współpraca z innymi osobami w czasie rzeczywistym i możliwość tworzenia w dowolnym miejscu — nawet bez połączenia z siecią. Zmiany są zapisywane automatycznie i widoczne w historii pliku.',
  'empty.online.cdo.root.subtitle.phxs': 'Płynna współpraca z innymi osobami i tworzenie w dowolnym miejscu, w którym można się zalogować w programie Photoshop — nawet bez połączenia z siecią. Zmiany są zapisywane automatycznie i widoczne w historii pliku.',
  'empty.online.cdo.root.subtitle.ilst': 'Płynna współpraca z innymi osobami i tworzenie w dowolnym miejscu, w którym można się zalogować w programie Illustrator — nawet bez połączenia z siecią. Zmiany są zapisywane automatycznie i widoczne w historii pliku.',
  'empty.online.cdo.root.subtitle.idsn': 'Uzyskuj dostęp do dokumentów z dowolnego miejsca, w którym zalogujesz się do programu InDesign. Zmiany są automatycznie zapisywane.',
  'empty.online.cdo.folder.title': 'Brak dokumentów w chmurze',
  'empty.online.cdo.folder.subtitle': 'Gdy umieścisz w tym folderze zgodny dokument w chmurze, pojawi się on tutaj.',
  'empty.title.deleted': 'Nie masz żadnych usuniętych plików',
  'empty.title.deleted_offline': 'Nie masz połączenia.',
  'empty.title.recent': 'Brak ostatnio używanych plików',
  'empty.subtext.deleted_offline': 'Elementy usunięte podczas połączenia z siecią pojawią się tutaj, gdy połączysz się ponownie.',
  'empty.title.shared_with_you': 'Brak udostępnionych dokumentów w chmurze',
  'empty.subtext.shared_with_you': 'Kiedy ktoś udostępni Ci dokumenty w chmurze, pojawią się one tutaj.',
  'empty.title.shared_with_you_offline': 'Nie masz połączenia.',
  'empty.subtext.shared_with_you_offline': 'Gdy połączenie zostanie przywrócone, będzie można wyświetlić i edytować udostępnione dokumenty.',
  'empty.title.error': 'Wystąpił nieznany błąd',
  'empty.subtext.error': 'Zrestartuj aplikację i spróbuj ponownie.',
  'empty.subtext.error.web': 'Odśwież przeglądarkę i spróbuj ponownie.',
  'empty.title.coresync.down': 'Nie można wczytać',
  'empty.subtext.coresync.down': 'Synchronizacja z chmurą nie działa. Sprawdź, czy program Creative Cloud Desktop jest aktualny lub spróbuj ponownie uruchomić aplikację.',
  'empty.title.coresync.incompatible': 'Nie można wczytać dokumentów w chmurze',
  'empty.subtext.coresync.incompatible': 'Obecnie nie można wyświetlić elementów. Uaktualnij aplikację Creative Cloud i spróbuj ponownie.',
  'empty.title.cloudStorageDisabled': 'Dokumenty w chmurze nie są dostępne',
  'empty.subtext.cloudStorageDisabled': 'Możesz używać produktu {productName} tylko do pracy z plikami na swoim urządzeniu. Skontaktuj się z administratorem, aby uzyskać więcej informacji.',
  'empty.title.logout': 'Zaloguj się, aby uzyskać dostęp do dokumentów w chmurze.',
  'empty.learnMore.link': 'Więcej informacji',
  'trueEmpty.online.cdo.folder.title': 'W tym folderze nic nie ma',
  'trueEmpty.online.cdo.folder.subtitle': 'Dodaj tu elementy, aby zacząć go wypełniać.',
  'trueEmpty.online.cdp.saveas.folder.title': 'Nie ma jeszcze dokumentów w chmurze',
  'trueEmpty.online.cdp.saveas.folder.subtitle': 'Ponieważ dokumenty znajdują się w chmurze, zawsze zawierają najnowsze zmiany i są dostępne na każdym urządzeniu. Wystarczy połączyć się z Internetem.',
  'trueEmpty.online.cdp.open.folder.title': 'Nie ma jeszcze dokumentów w chmurze',
  'trueEmpty.online.cdp.open.folder.subtitle': 'Ponieważ dokumenty znajdują się w chmurze, zawsze zawierają najnowsze zmiany i są dostępne na każdym urządzeniu. Wystarczy połączyć się z Internetem.',
  'filter.prompt': 'Wpisz słowo kluczowe',
  'filter.title': 'Filtr',
  'empty.filter.title': 'Brak wyników dla „{filterString}”',
  'empty.filter.subtitle': 'Sprawdź pisownię, spróbuj wyszukać za pomocą ogólniejszego słowa kluczowego lub filtruj w innej lokalizacji.',
  'beta.title': 'Zsynchronizuj pracę na swoich urządzeniach',
  'beta.subtitle': 'Pracuj bezproblemowo w programie Photoshop na iPadzie i komputerze z dokumentami w chmurze. Funkcja jest w wersji beta, więc może czasem nie działać zgodnie z oczekiwaniami. Możesz ją włączyć i wyłączyć w preferencjach.',
  'beta.button': 'Włącz w preferencjach',
  'beta.tag': 'BETA',
  'beta.feedback.link': 'Przekaż opinię na temat wersji beta',
  'button.add-folder': 'Utwórz nowy folder',
  'button.upload': 'Prześlij...',
  'button.createnew': 'Utwórz nowy',
  'button.reportAbuse': 'Zgłoś naruszenie',
  'button.open': 'Otwórz',
  'button.select': 'Wybierz',
  'button.rename': 'Zmień nazwę',
  'button.pin.header': 'Zawsze udostępniaj offline',
  'button.pin': 'Zawsze udostępniaj offline',
  'button.unpin.header': 'Udostępniaj wyłącznie online',
  'button.unpin': 'Udostępniaj wyłącznie online',
  'button.duplicate': 'Powiel',
  'button.download': 'Pobierz',
  'button.move': 'Przenieś',
  'button.delete': 'Usuń',
  'button.restore': 'Przywróć',
  'button.permdelete': 'Usuń trwale',
  'button.listview': 'Wyświetl listę',
  'button.gridview': 'Wyświetl siatkę',
  'button.sharesheetinvite': 'Zaproś do edycji',
  'button.sharesheetLink': 'Uzyskaj łącze',
  'button.shareSheetAction': 'Udostępnij',
  'button.preview': 'Podgląd',
  'button.schedule': 'Zaplanuj',
  'action.duplicate.suffix': '(Powiel)',
  'action.resolve_sync_error.suffix': 'kopia',
  'statusIcon.conflicted': 'Konflikt synchronizacji',
  'statusIcon.onlineOnly': 'Wyłącznie online',
  'statusIcon.availableOffline': 'Dostępne offline',
  'statusIcon.syncing': 'Synchronizacja...',
  'statusIcon.waitingToSync': 'Oczekiwanie na synchronizację',
  'tooltip.error': 'Otwórz dokument, aby przeanalizować konflikt zapisu',
  'toast.error.documentIsOpen': 'Zamknij {count, plural, =1 {dokument} other {dokumenty}}, aby wykonać tę akcję.',
  'toast.error.exceedsQuota.personal': 'Na Twoim koncie zabrakło przestrzeni dyskowej',
  'toast.error.exceedsQuota.enterprise': 'Brak miejsca. Aby uzyskać więcej informacji, skontaktuj się z administratorem.',
  'toast.operation.duplicate.error': 'Nie udało się powielić {count, plural, =1 {elementu} other {{count} elementów}}.',
  'toast.operation.duplicate.success': 'Powielono {count, plural, =1 {element} few {{count} elementy} many {{count} elementów} other {{count} elementy}}.',
  'toast.operation.archive.error': 'Nie udało się usunąć {count, plural, =1 {elementu} other {{count} elementów}}.',
  'toast.operation.archive.error.otherAppUncommittedChanges': 'Nie można usunąć plików otwartych w innych aplikacjach. Zamknij je i spróbuj ponownie.',
  'toast.operation.archive.undo.error': 'Nie udało się usunąć {count, plural, =1 {elementu} other {{count} elementów}}.',
  'toast.operation.archive.success': 'Usunięto {count, plural, =1 {element} few {{count} elementy} many {{count} elementów} other {{count} elementy}}.',
  'toast.operation.archive.undo.success': 'Cofnięto przywracanie.',
  'toast.operation.permdelete.error': 'Nie udało się trwale usunąć {count, plural, =1 {elementu} other {{count} elementów}}.',
  'toast.operation.permdelete.success': 'Trwale usunięto {count, plural, =1 {element} few {{count} elementy} many {{count} elementów} other {{count} elementy}}.',
  'toast.operation.rename.error': 'Nie udało się zmienić nazwy elementu.',
  'toast.operation.rename.undo.error': 'Nie udało się zmienić nazwy elementu.',
  'toast.operation.rename.error.duplicateName': 'Masz już tutaj element o tej nazwie.',
  'toast.operation.rename.undo.error.duplicateName': 'Masz już tutaj element o tej nazwie.',
  'toast.operation.rename.success': 'Zmieniono nazwę elementu.',
  'toast.operation.rename.undo.success': 'Cofnięto zmianę nazwy.',
  'toast.operation.move.error': 'Nie udało się przenieść {count, plural, =1 {elementu} other {{count} elementów}}.',
  'toast.operation.move.undo.error': 'Nie udało się przenieść {count, plural, =1 {elementu} other {{count} elementów}}.',
  'toast.operation.move.error.duplicateFolderName': 'Masz już tutaj folder o tej nazwie.',
  'toast.operation.move.undo.error.duplicateFolderName': 'Masz już tutaj folder o tej nazwie.',
  'toast.operation.move.error.duplicateDocName': '{count, plural, =1 {W tym folderze istnieje już dokument o tej nazwie. Zmień nazwę i spróbuj ponownie.} other {Nie można przenieść dokumentów, ponieważ istnieją już dokumenty o takich samych nazwach.}}',
  'toast.operation.move.undo.error.duplicateDocName': '{count, plural, =1 {W tym folderze istnieje już dokument o tej nazwie. Zmień nazwę i spróbuj ponownie.} other {Nie można przenieść dokumentów, ponieważ istnieją już dokumenty o takich samych nazwach.}}',
  'toast.operation.move.success': 'Przeniesiono {count, plural, =1 {element} few {{count} elementy} many {{count} elementów} other {{count} elementy}}.',
  'toast.operation.move.undo.success': 'Cofnięto przenoszenie.',
  'toast.operation.unarchive.error': 'Nie udało się przywrócić {count, plural, =1 {elementu} other {{count} elementów}}.',
  'toast.operation.unarchive.undo.error': 'Nie udało się przywrócić {count, plural, =1 {elementu} other {{count} elementów}}.',
  'toast.operation.unarchive.success': 'Przywrócono {count, plural, =1 {element} few {{count} elementy} many {{count} elementów} other {{count} elementy}}.',
  'toast.operation.unarchive.undo.success': 'Cofnięto usuwanie.',
  'toast.operation.create_new_folder.success': 'Utworzono folder',
  'toast.operation.create_new_folder.error': 'Nie udało się utworzyć nowego folderu.',
  'toast.operation.create_new_folder.error.duplicateName': 'Masz już tutaj folder o tej nazwie.',
  'toast.operation.user_pin.success': '{count, plural, =1 {Element został udostępniony} few {{count} elementy zostały udostępnione} many {{count} elementów zostało udostępnionych} other {{count} elementy zostały udostępnione}} offline.',
  'toast.operation.user_pin.error': 'Nie udało się udostępnić offline {count, plural, =1 {elementu} other {{count} elementów}}.',
  'toast.operation.user_unpin.success': 'Ustawiono {count, plural, =1 {element jako dostępny} few {{count} elementy jako dostępne} many {{count} elementów jako dostępnych} other {{count} elementy jako dostępne}} wyłącznie online.',
  'toast.operation.user_unpin.error': 'Nie udało się ustawić {count, plural, =1 {elementu jako dostępnego} other {{count} elementów jako dostępnych}} tylko online.',
  'toast.operation.resolve_sync_error.success': 'Utworzono kopię „{name}”. Możesz porównać oba dokumenty i uzgodnić różnice.',
  'toast.ccd.scroll_to_item.fetching': 'Pobieranie pliku…',
  'toast.ccd.scroll_to_item.error': 'Nie znaleziono pliku',
  'toast.info.disabled_rename_to_open_item': 'Starsze dokumenty XD należy najpierw otworzyć, zanim można będzie zmienić tu ich nazwę.',
  'toast.action.disabled_rename_to_open_item': 'Otwórz dokument',
  'toast.error.rename.invalidName': 'Niestety ta nazwa zawiera niedozwolone znaki.',
  'toast.error.rename.invalidChar': 'Nazwa nie może zawierać następujących znaków: {characters}',
  'toast.error.rename.invalidEnd': 'Nazwa nie może kończyć się znakiem „.” lub spacją.',
  'toast.error.rename.charRestriction': 'Nazwy mogą mieć maksymalnie 200 znaków.',
  'toast.error.rename.duplicateName': 'Masz już dokument w chmurze o tej nazwie.',
  'toast.success.reportAbuse': 'Pomyślnie zgłoszono naruszenie',
  'toast.error.reportAbuse': 'Nie udało się zgłosić naruszenia',
  'toast.operation.undoLabel': 'Cofnij',
  'dialog.permdelete.heading': 'Usuń trwale',
  'dialog.permdelete.warning': 'Nie możesz cofnąć tej operacji. Oto, co na dobre zniknie:',
  'dialog.permdelete.cancelButton': 'Anuluj',
  'dialog.permdelete.confirmButton': 'Usuń trwale',
  'dialog.permdelete.countItems': '{count, plural, =1 {# element} few {# elementy} many {# elementów} other {# elementy}}',
  'dialog.nonemptyfolder.heading': 'Czy na pewno chcesz usunąć {count, plural, =1 {ten folder} other {te foldery}}?',
  'dialog.nonemptyfolder.warning': '{count, plural, =1 {Ten folder nie jest pusty i może zawierać} other {Te foldery nie są puste i mogą zawierać}} pliki, które nie są widoczne w aplikacji {appName}. Możesz kontynuować usuwanie lub przejrzeć zawartość {count, plural, =1 {tego} other {tych}} {count, plural, =1 {folderu} other {folderów}} w internecie. {viewOnWebLink}',
  'dialog.nonemptyfolder.cancelButton': 'Anuluj',
  'dialog.nonemptyfolder.confirmButton': 'Usuń',
  'dialog.nonemptyfolder.viewOnWebButton': 'Obejrzyj w sieci',
  'dialog.addfolder.heading': 'Utwórz nowy folder',
  'dialog.addfolder.cancelButton': 'Anuluj',
  'dialog.addfolder.confirmButton': 'Zapisz',
  'dialog.addfolder.placeholder': 'Nowy folder',
  'dialog.addfolder.invalidChar': 'Nazwy nie mogą zawierać następujących znaków: {characters}',
  'dialog.addfolder.invalidName': 'Niestety ten folder zawiera niedozwolone znaki.',
  'dialog.addfolder.invalidEnd': 'Nazwa nie może kończyć się znakiem „.” lub spacją.',
  'dialog.addfolder.duplicateName': 'Masz już tutaj folder o tej nazwie.',
  'dialog.addfolder.charRestriction': 'Nazwy mogą mieć maksymalnie 200 znaków.',
  'dialog.moveFolder.heading': 'Przenieś do...',
  'dialog.moveFolder.cancelButton': 'Anuluj',
  'dialog.moveFolder.moveButton': 'Przenieś',
  'dialog.moveFolder.createNewFolderButton': 'Dodaj folder',
  'dialog.reportAbuse.cancelButton': 'Anuluj',
  'dialog.reportAbuse.reportAbuseButton': 'Zgłoś naruszenie',
  'dialog.reportAbuse.heading': 'Zgłoś naruszenie',
  'dialog.reportAbuse.emailInput': 'Twój adres e-mail',
  'dialog.reportAbuse.nameInput': 'Twoje imię i nazwisko',
  'dialog.reportAbuse.radioButtonText': 'Dlaczego zgłaszasz te treści?',
  'dialog.reportAbuse.defamation': 'Zniesławienie',
  'dialog.reportAbuse.hate': 'Treści szerzące nienawiść lub rasistowskie',
  'dialog.reportAbuse.trademark': 'Naruszenie znaku towarowego',
  'dialog.reportAbuse.pornography': 'Treści erotyczne',
  'dialog.reportAbuse.vulgar': 'Treści obraźliwe',
  'dialog.reportAbuse.other': 'Inne',
  'dialog.reportAbuse.inappropriate': 'Nieodpowiednie treści',
  'dialog.reportAbuse.age': 'Nieprawidłowy wiek',
  'dialog.reportAbuse.gender': 'Nieprawidłowa płeć',
  'dialog.reportAbuse.description': 'Jeśli uważasz, że ta treść w serwisie Creative Cloud narusza Warunki użytkowania Adobe, możesz to szybko zgłosić za pomocą tego formularza.',
  'dialog.reportAbuse.describeConcern': 'Opisz problem',
  'dialog.reportAbuse.success': 'Pomyślnie zgłoszono naruszenie',
  'dialog.reportAbuse.failure': 'Nie udało się zgłosić naruszenia',
  'dialog.reportAbuse.textAreaTitle': 'Opisz, co Cię zaniepokoiło',
  'dialog.reportAbuse.required': 'Wymagane',
  'dialog.cachefull.title': 'Nie można udostępnić offline',
  'dialog.cachefull.message': 'Brak miejsca na urządzeniu. Ustaw dokumenty jako „wyłącznie online”, aby zwolnić miejsce.',
  'dialog.cachefull.confirm': 'OK',
  'dialog.syncError.heading': 'Ten dokument nie jest już synchronizowany z chmurą',
  'dialog.syncError.body1': 'Zaleca się zapisanie najnowszej wersji jako kopii i przywrócenie ostatniej wersji dokumentu zapisanej w chmurze.',
  'dialog.syncError.body2': 'Ten dokument można otwierać i modyfikować, ale wprowadzone zmiany nie zostaną one zapisane w chmurze.',
  'dialog.syncError.offline': 'Aby zapisać kopię i przywrócić oryginał, musisz mieć połączenie z Internetem.',
  'dialog.syncError.learnMore': 'Więcej informacji',
  'dialog.syncError.resolveButton': 'Zapisz kopię i przywróć',
  'dialog.syncError.openButton': 'Otwórz',
  'dialog.syncErrorCopyFail.heading': 'Nie udało się zapisać kopii',
  'dialog.syncErrorCopyFail.body1': 'Nadal można otwierać i modyfikować ten dokument, ale wprowadzone zmiany nie zostaną zapisane w chmurze.',
  'dialog.syncErrorCopyFail.body2': 'Aby uzyskać dalszą pomoc, skontaktuj się z działem obsługi klienta Adobe. (Błąd: LocalContentSyncSuspended)',
  'dialog.syncErrorCopyFail.closeButton': 'Zamknij',
  'dialog.syncErrorCopyFail.contactUs': 'Skontaktuj się z nami',
  'dialog.syncErrorPurgeFail.heading': 'Nie udało się przywrócić ostatniej wersji zapisanej w chmurze',
  'dialog.syncErrorPurgeFail.body1': 'Utworzono kopię dokumentu, ale nie udało się przywrócić jego ostatniej wersji zapisanej w chmurze.',
  'dialog.syncErrorPurgeFail.body2': 'Aby uzyskać dalszą pomoc, skontaktuj się z działem obsługi klienta Adobe. (Błąd: LocalContentSyncSuspended)',
  'dialog.syncErrorPurgeFail.closeButton': 'Zamknij',
  'dialog.syncErrorPurgeFail.contactUs': 'Skontaktuj się z nami',
  'onboardingCdo.banner.title.sprk': 'Lepsza metoda pracy',
  'onboardingCdo.banner.title.phxs': 'Korzystasz z programu Photoshop na iPadzie? Wypróbuj dokumenty w chmurze.',
  'onboardingCdo.banner.title.ilst': 'Illustrator obsługuje teraz dokumenty w chmurze',
  'onboardingCdo.banner.title.idsn': 'InDesign obsługuje teraz dokumenty w chmurze',
  'onboardingCdo.banner.message.sprk': 'Dokumenty w chmurze można edytować z dowolnego miejsca, nawet bez połączenia z siecią. Zmiany są automatycznie zapisywane i widoczne w historii dokumentu. Można je udostępniać innym osobom, aby płynnie współpracować z nimi w czasie rzeczywistym. ',
  'onboardingCdo.banner.message.phxs': 'Dokumenty w chmurze są automatycznie zapisywane w systemach Adobe podczas Twojej pracy, więc będą dostępne zarówno na komputerze, jak i na iPadzie.',
  'onboardingCdo.banner.message.ilst': 'Dokumenty w chmurze są automatycznie zapisywane na serwerach Adobe podczas Twojej pracy w programie Illustrator. Można także wyświetlić historię wersji dokumentu, aby zobaczyć, jak rozwijała się praca nad nim.',
  'onboardingCdo.banner.message.idsn': 'Dokumenty w chmurze w programie InDesign są automatycznie zapisywane w chmurze firmy Adobe podczas pracy.',
  'onboardingCdo.banner.linkTitle': 'Więcej informacji',
  'onboardingCdo.banner.confirm': 'OK',
  'operation.progress.archive': 'Usuwanie {batchSize, plural, =1 {1 elementu} other {{inProgressNum} z {batchSize} elementów}}...',
  'operation.progress.unarchive': 'Przywracanie {batchSize, plural, =1 {1 elementu} other {{inProgressNum} z {batchSize} elementów}}...',
  'operation.progress.move': 'Przenoszenie {batchSize, plural, =1 {1 elementu} other {{inProgressNum} z {batchSize} elementów}}...',
  'operation.progress.permdelete': 'Trwałe usuwanie {batchSize, plural, =1 {1 elementu} other {{inProgressNum} z {batchSize} elementów}}...',
  'operation.progress.rename': 'Zmiana nazwy {batchSize, plural, =1 {1 elementu} other {{inProgressNum} z {batchSize} elementów}}...',
  'operation.progress.create_new_folder': 'Tworzenie nowego folderu...',
  'operation.progress.duplicate': 'Powielanie {batchSize, plural, =1 {1 elementu} other {{inProgressNum} z {batchSize} elementów}}...',
  'operation.progress.user_pin': 'Udostępnianie offline {batchSize, plural, =1 {1 elementu} other {{inProgressNum} z {batchSize} elementów}}...',
  'operation.progress.user_unpin': 'Udostępnianie {batchSize, plural, =1 {1 elementu} other {{inProgressNum} z {batchSize} elementów}} wyłącznie online...',
  'operation.progress.resolve_sync_error': 'Kopiowanie i przywracanie ostatniej wersji zapisanej w chmurze...',
  'tooltip.offline.general': 'Wymagane jest połączenie z Internetem. ',
  'tooltip.offline.create-new-folder': 'Musisz mieć połączenie z Internetem, aby tworzyć foldery.',
  'tooltip.offline.move': 'Musisz mieć połączenie z Internetem, aby przenosić elementy.',
  'tooltip.syncing.disabled': 'Oczekuje na zakończenie synchronizacji',
  'tooltip.rename.disabled': 'Nie można zmienić nazwy wybranego dokumentu. Otwórz w aplikacji macierzystej, aby umożliwić zmianę nazwy.',
  'tooltip.rename.disabled.sprk': 'Nazwy tego pliku nie można zmienić, dopóki nie otworzysz go w programie XD.',
  'tooltip.syncSuspended.needsAction': 'Synchronizacja została zatrzymana. Otwórz, aby podjąć działanie.',
  'tooltip.syncSuspended.noAction': 'Synchronizacja została zatrzymana. Ta czynność jest obecnie niedozwolona.',
  'Recents.title': 'Niedawne',
  'Recents.cloudDocTitle': 'DOKUMENT W CHMURZE',
  'Recents.error.subtext.coreSync': 'Niedawne są obecnie niedostępne, ponieważ synchronizacja z Creative Cloud nie działa poprawnie.',
  'item.saveForOfflineIconToolTip': 'Ten dokument został pobrany i jest w pełni dostępny w trybie offline.',
  'item.disconnected.cloudonly': 'Nie masz połączenia z siecią. Połącz się ponownie, aby otworzyć ten dokument.',
  'item.coresyncdown.cloudonly': 'Nie można wczytać pliku. Ten problem może rozwiązać aktualizacja lub ponowne uruchomienie Creative Cloud.',
  'folder.subtitle': 'FOLDER',
  'review.subtitle': 'RECENZJA',
  'prototype.subtitle': 'PROTOTYP',
  'designspecs.subtitle': 'SPECYFIKACJE PROJEKTOWE',
  'project.subtitle': 'PROJEKT',
  'library.subtitle': 'BIBLIOTEKA',
  'webLink.subtitle': 'ŁĄCZE WWW',
  'abbreviations.fileSize.byte': 'B',
  'abbreviations.fileSize.kilobyte': 'KB',
  'abbreviations.fileSize.megabyte': 'MB',
  'abbreviations.fileSize.gigabyte': 'GB',
  'abbreviations.fileSize.terabyte': 'TB',
  'sam.copyNameFormat': '%@ kopia',
  'cloudsync.quota.title': 'PRZESTRZEŃ DYSKOWA W CHMURZE',
  'cloudsync.quota.percentage': '{percentageUsed}%',
  'cloudsync.quota.usage': 'Wykorzystano {usedCloudQuotaString} z {maxCloudQuotaString}',
  'cloudsync.quota.warning': 'Zapełniono całą przestrzeń dyskową w chmurze. Rozszerz ją, aby nadal synchronizować prace.',
  'cloudsync.quota.error': 'Brak danych przestrzeni dyskowej...',
  'cloudsync.quota.upgrade': 'Rozszerz',
  'cloudsync.status.complete.title': 'Zsynchronizowano i utworzono kopię zapasową',
  'cloudsync.status.syncing.title': 'Synchronizacja dokumentów w chmurze',
  'cloudsync.status.syncing.descr': '{progress}/{total}',
  'cloudsync.status.offline.title': 'Praca w trybie offline',
  'cloudsync.status.offline.descr': 'Pliki są zapisywane lokalnie. Po ponownym połączeniu dokumenty zostaną zsynchronizowane z chmurą.',
  'cloudsync.status.disabled.title': 'Wyłączono synchronizację',
  'cloudsync.status.disabled.descr': 'Pliki są zapisywane lokalnie. Po zwolnieniu przestrzeni dyskowej dokumenty zostaną zsynchronizowane z chmurą.',
  'cloudsync.item.progress.determinate': '{progress}/{total}',
  'cloudsync.item.progress.indeterminate': 'Synchronizacja...',
  'cloudsync.item.complete': 'Zakończono',
  'cloudsync.items.header': 'Aktywność sieciowa',
  'cloudsync.alert.title.coresync.down': 'Nie można wczytać',
  'cloudsync.alert.subtext.coresync.down': 'Synchronizacja z chmurą nie działa. Sprawdź, czy program Creative Cloud Desktop jest aktualny lub spróbuj ponownie uruchomić aplikację.',
  'cloudsync.alert.subtext.coresync.down.learnmore': 'Więcej informacji',
  'cloudsync.tooltip.offline': 'Rozłączono',
  'cloudsync.tooltip.error': 'Błąd',
  'cloudsync.tooltip.syncing': 'Zapisywanie...',
  'cloudsync.tooltip.default': 'Zapisano',
  'cloudsync.singleDoc.offline.title': 'Rozłączono',
  'cloudsync.singleDoc.offline.descr': 'Próba ponownego połączenia...',
  'cloudsync.singleDoc.offline.timestamp': 'Ostatnia synchronizacja: {time}',
  'cloudsync.singleDoc.error.samInitFail.title': 'Synchronizacja z chmurą przestała działać',
  'cloudsync.singleDoc.error.samInitFail.descr': 'Uruchom ponownie tę aplikację, aby dalej synchronizować prace.',
  'cloudsync.singleDoc.error.syncSuspended.title': 'Synchronizacja z chmurą przestała działać',
  'cloudsync.singleDoc.error.syncSuspended.descr': 'Uruchom ponownie tę aplikację, aby dalej synchronizować prace.',
  'cloudsync.singleDoc.error.title': 'Nie można wczytać',
  'cloudsync.singleDoc.error.descr': 'Synchronizacja z chmurą nie działa. Upewnij się, że program Creative Cloud Desktop jest aktualny, i spróbuj ponownie uruchomić aplikację.',
  'cloudsync.singleDoc.error.learnMore': 'Więcej informacji',
  'cloudsync.singleDoc.disabled.quotaExceeded.title': 'Zapełniono całą przestrzeń dyskową w chmurze',
  'cloudsync.singleDoc.disabled.quotaExceeded.descr': 'Rozszerz Creative Cloud, aby dalej synchronizować prace.',
  'cloudsync.singleDoc.syncing.title': 'Zapisywanie...',
  'cloudsync.singleDoc.syncing.descr': 'W toku',
  'cloudsync.singleDoc.disabled.title': 'Nie można zapisać',
  'cloudsync.singleDoc.disabled.descr': 'Na Twoim koncie zabrakło przestrzeni dyskowej.',
  'cloudsync.singleDoc.complete.title': 'Zapisano plik',
  'cloudsync.singleDoc.complete.timestamp': 'Ostatnia synchronizacja: {time}'
};

/***/ }),

/***/ "z0Ak":
/***/ (function(module, exports, __webpack_require__) {

"use strict";
/**
 * @author Toru Nagashima <https://github.com/mysticatea>
 * See LICENSE file in root directory for full license.
 */


Object.defineProperty(exports, '__esModule', {
  value: true
});

var eventTargetShim = __webpack_require__("qcrX");
/**
 * The signal class.
 * @see https://dom.spec.whatwg.org/#abortsignal
 */


class AbortSignal extends eventTargetShim.EventTarget {
  /**
   * AbortSignal cannot be constructed directly.
   */
  constructor() {
    super();
    throw new TypeError("AbortSignal cannot be constructed directly");
  }
  /**
   * Returns `true` if this `AbortSignal`'s `AbortController` has signaled to abort, and `false` otherwise.
   */


  get aborted() {
    const aborted = abortedFlags.get(this);

    if (typeof aborted !== "boolean") {
      throw new TypeError(`Expected 'this' to be an 'AbortSignal' object, but got ${this === null ? "null" : typeof this}`);
    }

    return aborted;
  }

}

eventTargetShim.defineEventAttribute(AbortSignal.prototype, "abort");
/**
 * Create an AbortSignal object.
 */

function createAbortSignal() {
  const signal = Object.create(AbortSignal.prototype);
  eventTargetShim.EventTarget.call(signal);
  abortedFlags.set(signal, false);
  return signal;
}
/**
 * Abort a given signal.
 */


function abortSignal(signal) {
  if (abortedFlags.get(signal) !== false) {
    return;
  }

  abortedFlags.set(signal, true);
  signal.dispatchEvent({
    type: "abort"
  });
}
/**
 * Aborted flag for each instances.
 */


const abortedFlags = new WeakMap(); // Properties should be enumerable.

Object.defineProperties(AbortSignal.prototype, {
  aborted: {
    enumerable: true
  }
}); // `toString()` should return `"[object AbortSignal]"`

if (typeof Symbol === "function" && typeof Symbol.toStringTag === "symbol") {
  Object.defineProperty(AbortSignal.prototype, Symbol.toStringTag, {
    configurable: true,
    value: "AbortSignal"
  });
}
/**
 * The AbortController.
 * @see https://dom.spec.whatwg.org/#abortcontroller
 */


class AbortController {
  /**
   * Initialize this controller.
   */
  constructor() {
    signals.set(this, createAbortSignal());
  }
  /**
   * Returns the `AbortSignal` object associated with this object.
   */


  get signal() {
    return getSignal(this);
  }
  /**
   * Abort and signal to any observers that the associated activity is to be aborted.
   */


  abort() {
    abortSignal(getSignal(this));
  }

}
/**
 * Associated signals.
 */


const signals = new WeakMap();
/**
 * Get the associated signal of a given controller.
 */

function getSignal(controller) {
  const signal = signals.get(controller);

  if (signal == null) {
    throw new TypeError(`Expected 'this' to be an 'AbortController' object, but got ${controller === null ? "null" : typeof controller}`);
  }

  return signal;
} // Properties should be enumerable.


Object.defineProperties(AbortController.prototype, {
  signal: {
    enumerable: true
  },
  abort: {
    enumerable: true
  }
});

if (typeof Symbol === "function" && typeof Symbol.toStringTag === "symbol") {
  Object.defineProperty(AbortController.prototype, Symbol.toStringTag, {
    configurable: true,
    value: "AbortController"
  });
}

exports.AbortController = AbortController;
exports.AbortSignal = AbortSignal;
exports.default = AbortController;
module.exports = AbortController;
module.exports.AbortController = module.exports["default"] = AbortController;
module.exports.AbortSignal = AbortSignal;

/***/ }),

/***/ "z71Z":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


const inherits = __webpack_require__("P7XM");

const bignum = __webpack_require__("OZ/i");

const DecoderBuffer = __webpack_require__("YoN+").DecoderBuffer;

const Node = __webpack_require__("g2Dh"); // Import DER constants


const der = __webpack_require__("i3FT");

function DERDecoder(entity) {
  this.enc = 'der';
  this.name = entity.name;
  this.entity = entity; // Construct base tree

  this.tree = new DERNode();

  this.tree._init(entity.body);
}

module.exports = DERDecoder;

DERDecoder.prototype.decode = function decode(data, options) {
  if (!DecoderBuffer.isDecoderBuffer(data)) {
    data = new DecoderBuffer(data, options);
  }

  return this.tree._decode(data, options);
}; // Tree methods


function DERNode(parent) {
  Node.call(this, 'der', parent);
}

inherits(DERNode, Node);

DERNode.prototype._peekTag = function peekTag(buffer, tag, any) {
  if (buffer.isEmpty()) return false;
  const state = buffer.save();
  const decodedTag = derDecodeTag(buffer, 'Failed to peek tag: "' + tag + '"');
  if (buffer.isError(decodedTag)) return decodedTag;
  buffer.restore(state);
  return decodedTag.tag === tag || decodedTag.tagStr === tag || decodedTag.tagStr + 'of' === tag || any;
};

DERNode.prototype._decodeTag = function decodeTag(buffer, tag, any) {
  const decodedTag = derDecodeTag(buffer, 'Failed to decode tag of "' + tag + '"');
  if (buffer.isError(decodedTag)) return decodedTag;
  let len = derDecodeLen(buffer, decodedTag.primitive, 'Failed to get length of "' + tag + '"'); // Failure

  if (buffer.isError(len)) return len;

  if (!any && decodedTag.tag !== tag && decodedTag.tagStr !== tag && decodedTag.tagStr + 'of' !== tag) {
    return buffer.error('Failed to match tag: "' + tag + '"');
  }

  if (decodedTag.primitive || len !== null) return buffer.skip(len, 'Failed to match body of: "' + tag + '"'); // Indefinite length... find END tag

  const state = buffer.save();

  const res = this._skipUntilEnd(buffer, 'Failed to skip indefinite length body: "' + this.tag + '"');

  if (buffer.isError(res)) return res;
  len = buffer.offset - state.offset;
  buffer.restore(state);
  return buffer.skip(len, 'Failed to match body of: "' + tag + '"');
};

DERNode.prototype._skipUntilEnd = function skipUntilEnd(buffer, fail) {
  for (;;) {
    const tag = derDecodeTag(buffer, fail);
    if (buffer.isError(tag)) return tag;
    const len = derDecodeLen(buffer, tag.primitive, fail);
    if (buffer.isError(len)) return len;
    let res;
    if (tag.primitive || len !== null) res = buffer.skip(len);else res = this._skipUntilEnd(buffer, fail); // Failure

    if (buffer.isError(res)) return res;
    if (tag.tagStr === 'end') break;
  }
};

DERNode.prototype._decodeList = function decodeList(buffer, tag, decoder, options) {
  const result = [];

  while (!buffer.isEmpty()) {
    const possibleEnd = this._peekTag(buffer, 'end');

    if (buffer.isError(possibleEnd)) return possibleEnd;
    const res = decoder.decode(buffer, 'der', options);
    if (buffer.isError(res) && possibleEnd) break;
    result.push(res);
  }

  return result;
};

DERNode.prototype._decodeStr = function decodeStr(buffer, tag) {
  if (tag === 'bitstr') {
    const unused = buffer.readUInt8();
    if (buffer.isError(unused)) return unused;
    return {
      unused: unused,
      data: buffer.raw()
    };
  } else if (tag === 'bmpstr') {
    const raw = buffer.raw();
    if (raw.length % 2 === 1) return buffer.error('Decoding of string type: bmpstr length mismatch');
    let str = '';

    for (let i = 0; i < raw.length / 2; i++) {
      str += String.fromCharCode(raw.readUInt16BE(i * 2));
    }

    return str;
  } else if (tag === 'numstr') {
    const numstr = buffer.raw().toString('ascii');

    if (!this._isNumstr(numstr)) {
      return buffer.error('Decoding of string type: ' + 'numstr unsupported characters');
    }

    return numstr;
  } else if (tag === 'octstr') {
    return buffer.raw();
  } else if (tag === 'objDesc') {
    return buffer.raw();
  } else if (tag === 'printstr') {
    const printstr = buffer.raw().toString('ascii');

    if (!this._isPrintstr(printstr)) {
      return buffer.error('Decoding of string type: ' + 'printstr unsupported characters');
    }

    return printstr;
  } else if (/str$/.test(tag)) {
    return buffer.raw().toString();
  } else {
    return buffer.error('Decoding of string type: ' + tag + ' unsupported');
  }
};

DERNode.prototype._decodeObjid = function decodeObjid(buffer, values, relative) {
  let result;
  const identifiers = [];
  let ident = 0;
  let subident = 0;

  while (!buffer.isEmpty()) {
    subident = buffer.readUInt8();
    ident <<= 7;
    ident |= subident & 0x7f;

    if ((subident & 0x80) === 0) {
      identifiers.push(ident);
      ident = 0;
    }
  }

  if (subident & 0x80) identifiers.push(ident);
  const first = identifiers[0] / 40 | 0;
  const second = identifiers[0] % 40;
  if (relative) result = identifiers;else result = [first, second].concat(identifiers.slice(1));

  if (values) {
    let tmp = values[result.join(' ')];
    if (tmp === undefined) tmp = values[result.join('.')];
    if (tmp !== undefined) result = tmp;
  }

  return result;
};

DERNode.prototype._decodeTime = function decodeTime(buffer, tag) {
  const str = buffer.raw().toString();
  let year;
  let mon;
  let day;
  let hour;
  let min;
  let sec;

  if (tag === 'gentime') {
    year = str.slice(0, 4) | 0;
    mon = str.slice(4, 6) | 0;
    day = str.slice(6, 8) | 0;
    hour = str.slice(8, 10) | 0;
    min = str.slice(10, 12) | 0;
    sec = str.slice(12, 14) | 0;
  } else if (tag === 'utctime') {
    year = str.slice(0, 2) | 0;
    mon = str.slice(2, 4) | 0;
    day = str.slice(4, 6) | 0;
    hour = str.slice(6, 8) | 0;
    min = str.slice(8, 10) | 0;
    sec = str.slice(10, 12) | 0;
    if (year < 70) year = 2000 + year;else year = 1900 + year;
  } else {
    return buffer.error('Decoding ' + tag + ' time is not supported yet');
  }

  return Date.UTC(year, mon - 1, day, hour, min, sec, 0);
};

DERNode.prototype._decodeNull = function decodeNull() {
  return null;
};

DERNode.prototype._decodeBool = function decodeBool(buffer) {
  const res = buffer.readUInt8();
  if (buffer.isError(res)) return res;else return res !== 0;
};

DERNode.prototype._decodeInt = function decodeInt(buffer, values) {
  // Bigint, return as it is (assume big endian)
  const raw = buffer.raw();
  let res = new bignum(raw);
  if (values) res = values[res.toString(10)] || res;
  return res;
};

DERNode.prototype._use = function use(entity, obj) {
  if (typeof entity === 'function') entity = entity(obj);
  return entity._getDecoder('der').tree;
}; // Utility methods


function derDecodeTag(buf, fail) {
  let tag = buf.readUInt8(fail);
  if (buf.isError(tag)) return tag;
  const cls = der.tagClass[tag >> 6];
  const primitive = (tag & 0x20) === 0; // Multi-octet tag - load

  if ((tag & 0x1f) === 0x1f) {
    let oct = tag;
    tag = 0;

    while ((oct & 0x80) === 0x80) {
      oct = buf.readUInt8(fail);
      if (buf.isError(oct)) return oct;
      tag <<= 7;
      tag |= oct & 0x7f;
    }
  } else {
    tag &= 0x1f;
  }

  const tagStr = der.tag[tag];
  return {
    cls: cls,
    primitive: primitive,
    tag: tag,
    tagStr: tagStr
  };
}

function derDecodeLen(buf, primitive, fail) {
  let len = buf.readUInt8(fail);
  if (buf.isError(len)) return len; // Indefinite form

  if (!primitive && len === 0x80) return null; // Definite form

  if ((len & 0x80) === 0) {
    // Short form
    return len;
  } // Long form


  const num = len & 0x7f;
  if (num > 4) return buf.error('length octect is too long');
  len = 0;

  for (let i = 0; i < num; i++) {
    len <<= 8;
    const j = buf.readUInt8(fail);
    if (buf.isError(j)) return j;
    len |= j;
  }

  return len;
}

/***/ }),

/***/ "z7QN":
/***/ (function(module) {

module.exports = JSON.parse("{\"Breadcrumbs\":\"Навігаційна стежка\"}");

/***/ }),

/***/ "z8hX":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var _UxpOptions = _interopRequireDefault(__webpack_require__("zvwv"));

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}
/*************************************************************************
* ADOBE CONFIDENTIAL
* ___________________
*
* Copyright 2019 Adobe
* All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains
* the property of Adobe and its suppliers, if any. The intellectual
* and technical concepts contained herein are proprietary to Adobe
* and its suppliers and are protected by all applicable intellectual
* property laws, including trade secret and copyright laws.
* Dissemination of this information or reproduction of this material
* is strictly forbidden unless prior written permission is obtained
* from Adobe.
**************************************************************************/


module.exports = _UxpOptions.default.select('SelectList', () => __webpack_require__("rtwt"), () => __webpack_require__("eHop"));

/***/ }),

/***/ "z9HI":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


exports.__esModule = true;

exports.default = function (componentOrElement) {
  return (0, _ownerDocument2.default)(_reactDom2.default.findDOMNode(componentOrElement));
};

var _reactDom = __webpack_require__("i8i4");

var _reactDom2 = _interopRequireDefault(_reactDom);

var _ownerDocument = __webpack_require__("o43f");

var _ownerDocument2 = _interopRequireDefault(_ownerDocument);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

module.exports = exports['default'];

/***/ }),

/***/ "zCRT":
/***/ (function(module, exports, __webpack_require__) {

module.exports = __webpack_require__.p + "assets/cdo/onboardingIcon.ilst.png";

/***/ }),

/***/ "zImf":
/***/ (function(module, exports, __webpack_require__) {

// extracted by mini-css-extract-plugin

/***/ }),

/***/ "zLkG":
/***/ (function(module, exports, __webpack_require__) {

exports.f = __webpack_require__("UWiX");

/***/ }),

/***/ "zLtB":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _autobindDecorator = _interopRequireDefault(__webpack_require__("gKdT"));

var _closest = _interopRequireDefault(__webpack_require__("U6dR"));

var _MaybeUxpCoachMarkIndicator = _interopRequireDefault(__webpack_require__("oxh4"));

var _MaybeUxpCoachMarkPopover = _interopRequireDefault(__webpack_require__("F+wu"));

var _OverlayTrigger = _interopRequireDefault(__webpack_require__("mThF"));

var _Portal = _interopRequireDefault(__webpack_require__("I/DW"));

var _propTypes = _interopRequireDefault(__webpack_require__("17x9"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

__webpack_require__("MGeu");

const _excluded = ["quiet", "selector", "children", "dismissible", "flip", "placement", "coachmarkPlacement"];

var _class, _class2, _temp;

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function ownKeys(object, enumerableOnly) {
  var keys = Object.keys(object);

  if (Object.getOwnPropertySymbols) {
    var symbols = Object.getOwnPropertySymbols(object);

    if (enumerableOnly) {
      symbols = symbols.filter(function (sym) {
        return Object.getOwnPropertyDescriptor(object, sym).enumerable;
      });
    }

    keys.push.apply(keys, symbols);
  }

  return keys;
}

function _objectSpread(target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i] != null ? arguments[i] : {};

    if (i % 2) {
      ownKeys(Object(source), true).forEach(function (key) {
        _defineProperty(target, key, source[key]);
      });
    } else if (Object.getOwnPropertyDescriptors) {
      Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
    } else {
      ownKeys(Object(source)).forEach(function (key) {
        Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
      });
    }
  }

  return target;
}

function _defineProperty(obj, key, value) {
  if (key in obj) {
    Object.defineProperty(obj, key, {
      value: value,
      enumerable: true,
      configurable: true,
      writable: true
    });
  } else {
    obj[key] = value;
  }

  return obj;
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

if (false) {} else if (false) {} else {
  __webpack_require__("iacb");
}

if (true) __webpack_require__("UWL5");
if (true) __webpack_require__("yRhx");
if (true) __webpack_require__("yVpF");
if (true) __webpack_require__("PjAO");

let CoachMark = (0, _autobindDecorator.default)(_class = (_temp = _class2 = class CoachMark extends _react.default.Component {
  constructor(props) {
    super(props);
    this.state = {
      overlayContainer: null,
      indicatorPositioned: false
    };
    this.shouldUpdatePosition = true;
  }

  getOverlayContainer() {
    if (this.node) {
      return (0, _closest.default)(this.node, '.react-spectrum-provider') || document.body;
    }

    return null;
  }

  componentDidMount() {
    const overlayContainer = this.getOverlayContainer();

    if (overlayContainer) {
      this.setState({
        overlayContainer
      });
    }
  }

  onHide() {
    if (this.props.onHide) {
      this.props.onHide();
    }
  }
  /**
   * Because the indicator has to position itself based on its measured size
   * we'll already be a few renders in and the Overlay will be rendered
   * to the wrong position because the indicator isn't in place yet.
   * Once the indicator is in position, it'll emit this event. It'll also
   * emit it every following time, we want to for the Overlay trigger to
   * update the position only the once though, after that, the internals
   * of Overlay will take care of repositioning accurately.
   * This logic tells the state that the indicator has been positioned and we should
   * update to position of the Overlay.
   * There's also logic in componentDidUpdate to make sure it's only called once.
   **/


  onIndicatorPositioned() {
    if (!this.state.indicatorPositioned && this.shouldUpdatePosition) {
      this.setState({
        indicatorPositioned: true
      });
    }
  }
  /**
   * Once the indicator is positioned and we've run through a render
   * where we updated the Overlay, then we should no longer
   * need to force the Overlay to update its position.
   **/


  componentDidUpdate() {
    if (this.state.indicatorPositioned) {
      this.shouldUpdatePosition = false;
    }
  }

  render() {
    let _this$props = this.props,
        {
      quiet,
      selector,
      children,
      dismissible,
      flip,
      placement,
      coachmarkPlacement
    } = _this$props,
        otherProps = _objectWithoutProperties(_this$props, _excluded);

    let {
      overlayContainer
    } = this.state;
    return /*#__PURE__*/_react.default.createElement("div", {
      ref: node => this.node = node,
      style: {
        display: 'none'
      }
    }, " ", overlayContainer && /*#__PURE__*/_react.default.createElement(_Portal.default, {
      container: overlayContainer
    }, /*#__PURE__*/_react.default.createElement(_OverlayTrigger.default, {
      trigger: dismissible ? 'click' : undefined,
      show: dismissible ? undefined : true // {undefined} will force OverlayTrigger to default to {defaultShow}
      ,
      defaultShow: true,
      flip: flip,
      placement: placement,
      offset: CoachMark.INDICATOR_OFFSET,
      onHide: this.onHide,
      shouldUpdatePosition: this.state.indicatorPositioned && this.shouldUpdatePosition
    }, /*#__PURE__*/_react.default.createElement(_MaybeUxpCoachMarkIndicator.default, {
      selector: selector,
      quiet: quiet,
      onPositioned: this.onIndicatorPositioned,
      coachmarkPlacement: coachmarkPlacement
    }), /*#__PURE__*/_react.default.createElement(_MaybeUxpCoachMarkPopover.default, otherProps, children))));
  }

}, _class2.propTypes = _objectSpread(_objectSpread({
  /**
   * Used by overlay trigger
   */
  parentNode: _propTypes.default.any,

  /**
   * If there isn't enough space for the coachmark,
   * should it flip across the axis to try and get more space
   **/
  flip: _propTypes.default.bool,

  /**
   * Relative to the target element, where should the coachmark render
   */
  placement: _propTypes.default.oneOf(['bottom', 'bottom left', 'bottom right', 'top', 'top left', 'top right', 'right', 'right bottom', 'right top', 'left', 'left bottom', 'left top']),

  /**
   * If someone clicks off the coachmark, then it will hide/dismiss
   */
  dismissible: _propTypes.default.bool
}, _MaybeUxpCoachMarkPopover.default.propTypes), _MaybeUxpCoachMarkIndicator.default.propTypes), _class2.defaultProps = _objectSpread(_objectSpread({
  flip: true,
  placement: 'right'
}, _MaybeUxpCoachMarkPopover.default.defaultProps), _MaybeUxpCoachMarkIndicator.default.defaultProps), _class2.INDICATOR_OFFSET = 6, _temp)) || _class;

exports.default = CoachMark;

/***/ }),

/***/ "zLtM":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _autobindDecorator = _interopRequireDefault(__webpack_require__("gKdT"));

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

var _reactDom = _interopRequireDefault(__webpack_require__("i8i4"));

var _Select = _interopRequireDefault(__webpack_require__("GfA4"));

var _TabLine = _interopRequireDefault(__webpack_require__("IJdV"));

__webpack_require__("JbkM");

var _class;

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

let TabListDropdown = (0, _autobindDecorator.default)(_class = class TabListDropdown extends _react.default.Component {
  constructor(...args) {
    var _temp;

    return _temp = super(...args), this.state = {
      selectNode: undefined,
      selectedIndex: undefined
    }, _temp;
  }

  setSelectRef(s) {
    this.selectRef = s;
  } // It's useful to have the TabListDropdown be a separate component because the tabline needs a dom node
  // to do its calculations, we can guarantee that in componentDidMount whereas if we move this up
  // a component, it's conditionally rendered and we would need to use componentDidUpdate instead
  // with conditional logic.
  // By storing through setState, we can cause a render.


  componentDidMount() {
    this.setState({
      selectNode: _reactDom.default.findDOMNode(this.selectRef)
    });
  }

  componentDidUpdate(prevProps) {
    // this is purely so that the Tabline re-renders whenever the selection changes
    // quiet Selects change width depending on what has been selected
    // we don't want an infinite loop, so if the index matches, don't set it
    if (prevProps.selectedIndex !== this.props.selectedIndex) {
      // eslint-disable-next-line react/no-did-update-set-state
      this.setState({
        selectedIndex: this.props.selectedIndex
      });
    }
  }

  onChange(selectedIndex) {
    this.props.onChange(Number(selectedIndex));
  }

  childrenToOptions() {
    const options = _react.default.Children.toArray(this.props.children).map((child, i) => {
      let option = {};
      option.label = child.props.label || child.props.children; // value maps to the tab index, but has to be a string to be a valid select value

      option.value = i.toString();

      if (child.props.disabled) {
        option.disabled = true;
      }

      if (child.props.icon !== undefined) {
        option.icon = child.props.icon;
      }

      return option;
    });

    return options;
  }

  render() {
    let {
      className,
      selectedIndex,
      'aria-labelledby': ariaLabelledby,
      'aria-label': ariaLabel
    } = this.props;
    return /*#__PURE__*/_react.default.createElement("div", {
      className: (0, _classnames.default)('spectrum-Tabs', 'spectrum-Tabs--horizontal', 'react-spectrum-Tabs--dropdown', className)
    }, /*#__PURE__*/_react.default.createElement(_Select.default, {
      quiet: true,
      flexible: true,
      ref: this.setSelectRef,
      options: this.childrenToOptions(),
      value: selectedIndex.toString(),
      onChange: this.onChange,
      "aria-labelledby": ariaLabelledby,
      "aria-label": ariaLabel
    }), this.state.selectNode && /*#__PURE__*/_react.default.createElement(_TabLine.default, {
      orientation: "horizontal",
      selectedTab: this.state.selectNode,
      selectedIndex: this.state.selectedIndex
    }));
  }

}) || _class;

exports.default = TabListDropdown;

/***/ }),

/***/ "zM7O":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);

// Use this component to shift focus to or keep focus in the main content
/* harmony default export */ __webpack_exports__["a"] = (({ inUAP, folderId, spaceId, view }) => {
    const focusTarget = react__WEBPACK_IMPORTED_MODULE_0___default.a.useRef(null);
    // Set focus to main content upon opening a space or folder
    Object(react__WEBPACK_IMPORTED_MODULE_0__["useEffect"])(() => {
        if (focusTarget.current && !inUAP) {
            focusTarget.current.focus();
        }
    }, [inUAP, folderId, spaceId, view]);
    return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", { ref: focusTarget, tabIndex: -1 });
});


/***/ }),

/***/ "zOc0":
/***/ (function(module, exports) {



/***/ }),

/***/ "zPGX":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return DEFAULT_DISABLED_TOOLTIP_MSG_ID; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return DEFAULT_CORESYNCDOWN_DISABLED_TOOLTIP_MSG_ID; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return CDOActionValue; });
/* harmony import */ var _stores_SelectionStore__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("7XYX");
/* harmony import */ var _metrics__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("jaHz");
/* harmony import */ var _FileCapabilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("Vj/U");



const DEFAULT_DISABLED_TOOLTIP_MSG_ID = 'tooltip.offline.general';
const DEFAULT_CORESYNCDOWN_DISABLED_TOOLTIP_MSG_ID = 'item.coresyncdown.cloudonly';
var ActionValue;
(function (ActionValue) {
    ActionValue["CreateNewFolder"] = "create-new-folder";
    ActionValue["PermanentDelete"] = "permanent-delete";
    ActionValue["Select"] = "select";
    ActionValue["ReportAbuse"] = "report-abuse";
})(ActionValue || (ActionValue = {}));
var CDOActionValue;
(function (CDOActionValue) {
    CDOActionValue[CDOActionValue["AddFolder"] = _metrics__WEBPACK_IMPORTED_MODULE_1__[/* ActionAnalyticsValue */ "a"].AddFolder] = "AddFolder";
    CDOActionValue[CDOActionValue["Import"] = _metrics__WEBPACK_IMPORTED_MODULE_1__[/* ActionAnalyticsValue */ "a"].Import] = "Import";
    CDOActionValue[CDOActionValue["Open"] = _metrics__WEBPACK_IMPORTED_MODULE_1__[/* ActionAnalyticsValue */ "a"].Open] = "Open";
    CDOActionValue[CDOActionValue["Rename"] = _metrics__WEBPACK_IMPORTED_MODULE_1__[/* ActionAnalyticsValue */ "a"].Rename] = "Rename";
    CDOActionValue[CDOActionValue["Pin"] = _metrics__WEBPACK_IMPORTED_MODULE_1__[/* ActionAnalyticsValue */ "a"].Pin] = "Pin";
    CDOActionValue[CDOActionValue["UnPin"] = _metrics__WEBPACK_IMPORTED_MODULE_1__[/* ActionAnalyticsValue */ "a"].UnPin] = "UnPin";
    CDOActionValue[CDOActionValue["Export"] = _metrics__WEBPACK_IMPORTED_MODULE_1__[/* ActionAnalyticsValue */ "a"].Export] = "Export";
    CDOActionValue[CDOActionValue["Archive"] = _metrics__WEBPACK_IMPORTED_MODULE_1__[/* ActionAnalyticsValue */ "a"].Archive] = "Archive";
    CDOActionValue[CDOActionValue["Move"] = _metrics__WEBPACK_IMPORTED_MODULE_1__[/* ActionAnalyticsValue */ "a"].Move] = "Move";
    CDOActionValue[CDOActionValue["ShareSheetInvite"] = _FileCapabilities__WEBPACK_IMPORTED_MODULE_2__[/* Capability */ "a"].ShareSheetInvite] = "ShareSheetInvite";
    CDOActionValue[CDOActionValue["ShareSheetLink"] = _FileCapabilities__WEBPACK_IMPORTED_MODULE_2__[/* Capability */ "a"].ShareSheetLink] = "ShareSheetLink";
    CDOActionValue[CDOActionValue["ShareSheetAction"] = _FileCapabilities__WEBPACK_IMPORTED_MODULE_2__[/* Capability */ "a"].ShareSheetAction] = "ShareSheetAction";
    CDOActionValue[CDOActionValue["Duplicate"] = _metrics__WEBPACK_IMPORTED_MODULE_1__[/* ActionAnalyticsValue */ "a"].Duplicate] = "Duplicate";
    CDOActionValue[CDOActionValue["Restore"] = _metrics__WEBPACK_IMPORTED_MODULE_1__[/* ActionAnalyticsValue */ "a"].Restore] = "Restore";
    CDOActionValue["PermanentDelete"] = "permanent-delete";
    CDOActionValue["ReportAbuse"] = "report-abuse";
    CDOActionValue["CreateNewFolder"] = "create-new-folder";
    CDOActionValue["Select"] = "select";
    CDOActionValue[CDOActionValue["Preview"] = _metrics__WEBPACK_IMPORTED_MODULE_1__[/* ActionAnalyticsValue */ "a"].Preview] = "Preview";
    CDOActionValue[CDOActionValue["Schedule"] = _metrics__WEBPACK_IMPORTED_MODULE_1__[/* ActionAnalyticsValue */ "a"].Schedule] = "Schedule";
})(CDOActionValue || (CDOActionValue = {}));
class Action {
    constructor({ value, label, actionMenuLabel = undefined, analyticsValue = value, children, resetSelection = true, beforeExecute, execute, icon = undefined, buttonVariant = 'action', buttonQuiet = true, isFolderAction = false, isVisible = selectionStore => Object(_stores_SelectionStore__WEBPACK_IMPORTED_MODULE_0__[/* hasAny */ "c"])(selectionStore), getDisabledTooltipMsgId = () => '', getAnalyticsOverrides = () => ({}), }) {
        this.value = value;
        this.label = label;
        this.actionMenuLabel = actionMenuLabel;
        this.analyticsValue = analyticsValue;
        this.children = children;
        this.resetSelection = resetSelection;
        this.execute = execute;
        this.beforeExecute = beforeExecute;
        this.icon = icon;
        this.buttonVariant = buttonVariant;
        this.buttonQuiet = buttonQuiet;
        this.isFolderAction = isFolderAction;
        this.isVisible = isVisible;
        this.getDisabledTooltipMsgId = getDisabledTooltipMsgId;
        this.getAnalyticsOverrides = getAnalyticsOverrides;
    }
    isEnabled(selectionStore) {
        var _a;
        return ((_a = this.getDisabledTooltipMsgId) === null || _a === void 0 ? void 0 : _a.call(this, selectionStore)) === '';
    }
}
/* harmony default export */ __webpack_exports__["d"] = (Action);



/***/ }),

/***/ "zSDY":
/***/ (function(module, exports, __webpack_require__) {

(function webpackUniversalModuleDefinition(root, factory) {
  if (true) module.exports = factory();else {}
})(typeof self !== 'undefined' ? self : this, 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, {
            /******/
            configurable: false,

            /******/
            enumerable: true,

            /******/
            get: getter
            /******/

          });
          /******/
        }
        /******/

      };
      /******/

      /******/
      // getDefaultExport function for compatibility with non-harmony modules

      /******/


      __webpack_require__.n = function (module) {
        /******/
        var getter = module && module.__esModule ?
        /******/
        function getDefault() {
          return module['default'];
        } :
        /******/
        function getModuleExports() {
          return module;
        };
        /******/

        __webpack_require__.d(getter, 'a', getter);
        /******/


        return getter;
        /******/
      };
      /******/

      /******/
      // Object.prototype.hasOwnProperty.call

      /******/


      __webpack_require__.o = function (object, property) {
        return Object.prototype.hasOwnProperty.call(object, property);
      };
      /******/

      /******/
      // __webpack_public_path__

      /******/


      __webpack_require__.p = "";
      /******/

      /******/
      // Load entry module and return exports

      /******/

      return __webpack_require__(__webpack_require__.s = 6);
      /******/
    }
    /************************************************************************/

    /******/
    ([
    /* 0 */

    /***/
    function (module, exports, __webpack_require__) {
      "use strict";

      Object.defineProperty(exports, "__esModule", {
        value: true
      });
      exports.getRegionDefaultLocale = exports.getCountryLanguages = exports.createLocaleFromIMS = exports.getAppNameFromURL = exports.isUmbrellaRegionApp = exports.getUmbrellaRegions = exports.getAllLocales = exports.langScript = exports.normalize = exports.priuse = exports.regions = exports.region = exports.script = exports.extlang = exports.lang = exports.findValueByKeyIgnoreCase = exports.findKey = undefined;

      var _locales = __webpack_require__(2);

      var locales = _interopRequireWildcard(_locales);

      var _region2 = __webpack_require__(46);

      var _region3 = _interopRequireDefault(_region2);

      var _apps = __webpack_require__(3);

      var _apps2 = _interopRequireDefault(_apps);

      var _getAppLocale = __webpack_require__(1);

      var _getAppLocale2 = _interopRequireDefault(_getAppLocale);

      function _interopRequireDefault(obj) {
        return obj && obj.__esModule ? obj : {
          default: obj
        };
      }

      function _interopRequireWildcard(obj) {
        if (obj && obj.__esModule) {
          return obj;
        } else {
          var newObj = {};

          if (obj != null) {
            for (var key in obj) {
              if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];
            }
          }

          newObj.default = obj;
          return newObj;
        }
      }
      /*************************************************************************
      * ADOBE CONFIDENTIAL
      * ___________________
      *
      *  Copyright 2018 Adobe Systems Incorporated
      *  All Rights Reserved.
      *
      * NOTICE:  All information contained herein is, and remains
      * the property of Adobe Systems Incorporated and its suppliers,
      * if any.  The intellectual and technical concepts contained
      * herein are proprietary to Adobe Systems Incorporated and its
      * suppliers and are protected by all applicable intellectual property
      * laws, including trade secret and copyright laws.
      * Dissemination of this information or reproduction of this material
      * is strictly forbidden unless prior written permission is obtained
      * from Adobe Systems Incorporated.
      **************************************************************************/


      var pattern = /^([a-zA-Z]{2})(?:[_-]+([a-zA-Z]{3})(?=$|[_-]+))?(?:[_-]+([a-zA-Z]{4})(?=$|[_-]+))?(?:[_-]+([a-zA-Z]{2}|[0-9]{3})(?=$|[_-]+))?(?:-x-([a-zA-Z0-9]{1,8})(?=$))?$/;

      var _match = function _match(locale) {
        return locale.match(pattern) || [];
      };
      /**
       * given an object, return its value based on passed condition
       * @param {object} obj
       * @param {object} fun
       */


      var findKey = function findKey(obj, fun) {
        return Object.keys(obj).filter(function (x) {
          return fun(obj[x]);
        })[0];
      };
      /**
      * given an object, return its value based on passed case-insensitive key
      * @param {object} obj
      * @param {string} key
      */


      var findValueByKeyIgnoreCase = function findValueByKeyIgnoreCase(obj, key) {
        return key !== undefined ? obj[Object.keys(obj).filter(function (k) {
          return k.toLowerCase() === key.toLowerCase();
        })[0]] : undefined;
      };
      /* 
        https://www.w3.org/International/articles/language-tags/#rfc
      
        pattern: language-extlang-script-region-variant-extension-privateuse
      
        type      pattern
        language  2-letter or 3-letter
        extlang   3-letter
        script    4-letter
        region    2-letter or 3-number
        private   -x-****
      */

      /**
       * "language" sub-tab of a locale
       * @param {string} locale - locale name
       */


      var lang = function lang(locale) {
        return _match(locale)[1] || '';
      };
      /**
       * "extlang" sub-tab of a locale
       * @param {string} locale - locale name
       */


      var extlang = function extlang(locale) {
        return _match(locale)[2] || '';
      };
      /**
       * "script" sub-tab of a locale
       * @param {string} locale - locale name
       */


      var script = function script(locale) {
        return _match(locale)[3] || '';
      };
      /**
       * "region" sub-tab of a locale
       * @param {string} locale - locale name
       */


      var region = function region(locale) {
        return _match(locale)[4] || '';
      };
      /**
       * "private use" sub-tab of a locale
       * @param {string} locale - locale name
       */


      var priuse = function priuse(locale) {
        return _match(locale)[5] || '';
      };
      /**
       * "language" + "script" sub-tab of a locale
       * @param {string} locale - locale name
       * @param {string} camelizeScriptName - if camelize Script Name
       */


      var langScript = function langScript(locale) {
        var camelizeScriptName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
        var ls = '';

        var matches = _match(locale);

        if (matches.length > 0) {
          if (matches[3] !== undefined) {
            // has script
            if (camelizeScriptName === true) {
              ls = matches[1] + '-' + matches[3].charAt(0).toUpperCase() + matches[3].slice(1);
            } else {
              ls = matches[1] + '-' + matches[3];
            }
          } else if (matches[1].toLowerCase() === 'zh' && matches[4] !== undefined) {
            var _region = matches[4].toLowerCase();

            if (['tw', 'hk', 'mo'].includes(_region)) {
              ls = 'zh-Hant';
            } else {
              ls = 'zh-Hans';
            }
          } else {
            ls = matches[1];
          }
        }

        return ls;
      };
      /*
        Generate all app locale mapping.
      */


      var allLocales = {};
      Object.keys(locales).forEach(function (app) {
        var appLocales = locales[app];
        Object.keys(appLocales).forEach(function (appLocale) {
          var mappedLocale = appLocales[appLocale]; // const lowerMappedLocale = mappedLocale.toLowerCase();

          allLocales[appLocale] = mappedLocale;

          if (allLocales[mappedLocale] === undefined) {
            allLocales[mappedLocale] = mappedLocale;
          } // if (allLocales[lowerMappedLocale] === undefined) {
          //   allLocales[lowerMappedLocale] = mappedLocale;
          // }

        });
      });
      /**
       * get all app locale mapping
       */

      var getAllLocales = function getAllLocales() {
        return allLocales;
      };
      /**
       * get all app locale mapping
       */


      var getUmbrellaRegions = function getUmbrellaRegions(region) {
        return findKey(_apps.umbrellaRegions, function (v) {
          return v.includes(region.toLowerCase());
        });
      };
      /**
       * check if one of apps that have Umbrella Regions such as "mena", "sea"
       */


      var isUmbrellaRegionApp = function isUmbrellaRegionApp(app) {
        return _apps.umbrellaRegionApp.includes(app);
      };
      /**
       * returns BCP-47 form of a locale
       * @param {string} locale - locale name
       * @param {string} app - optional, which can handle app-specific case, like "uk" returns "en-GB" for app "adobedotcom", while it returns "uk-UA" in other cases.
       */


      var normalize = function normalize(locale, app) {
        var normalizedLocale = void 0;

        if (app) {
          var appLocale = (0, _getAppLocale2.default)(app, locale);
          normalizedLocale = locales[app][appLocale];
        }

        return normalizedLocale || findValueByKeyIgnoreCase(getAllLocales(), locale);
      };
      /**
       * helps to construct a locale using the language of an app and the user's IMS country. 
       * If the language is not supported by adobe.com for that country, it will change to the 
       * default language of that country that adobe.com supports. For example, if en-US is the 
       * app language and JP is the IMS code, this will result in "ja-JP"
       */


      var createLocaleFromIMS = function createLocaleFromIMS(locale, imsCountryCode) {
        var match = false;
        var newLocale = 'en-US';

        if (typeof locale === 'string' && typeof imsCountryCode === 'string' && imsCountryCode.length === 2) {
          var language = langScript(locale, true);
          var imsCountryCodeU = imsCountryCode.toUpperCase();
          var countryLangs = _region3.default[imsCountryCodeU];

          if (countryLangs !== undefined) {
            if (countryLangs.includes(language)) {
              match = true;
            } else {
              language = countryLangs[0] || 'en';
            }

            newLocale = language + '-' + imsCountryCodeU;
          }
        }

        return {
          match: match,
          locale: newLocale
        };
      };
      /**
       * helper to strip url protocol and www
       * @param {string} url - url name
       * @returns {string} url w/o protocol and www
       */


      var stripUrl = function stripUrl(url) {
        return url.replace(/^(https?:\/\/)/, '').replace(/^(www\.)/, '');
      };
      /**
       * get app code name from a url
       * @param {string} url - url name
       * @returns {string} app name
       */


      var getAppNameFromURL = function getAppNameFromURL(url) {
        var appName = void 0;

        if (typeof url === 'string' && url.length) {
          var strippedUrl = stripUrl(url.trim().toLowerCase());
          appName = findKey(_apps2.default, function (a) {
            return strippedUrl.indexOf(stripUrl(a.production)) === 0 || strippedUrl.indexOf(stripUrl(a.stage)) === 0;
          });
        }

        return appName;
      };
      /**
       * 
       * @param {string} region - 2 char country code
       * @returns default locale
       */


      var getRegionDefaultLocale = function getRegionDefaultLocale(region) {
        var defaultLocale = void 0;

        if (typeof region === 'string' && region.length === 2) {
          var regionCode = region.toUpperCase();

          if (_region3.default[regionCode] && _region3.default[regionCode][0]) {
            var _lang = _region3.default[regionCode][0];
            defaultLocale = _lang + '-' + regionCode;
          }
        }

        return defaultLocale;
      };
      /**
       * get country supported languages list
       * @param {string} imsCountryCode - country code 2-char
       * @returns {array} languages list. default to ['en']
       */


      var getCountryLanguages = function getCountryLanguages(imsCountryCode) {
        var defaultLangs = ['en'];
        var langs = typeof imsCountryCode === 'string' ? _region3.default[imsCountryCode.toUpperCase()] || [] : defaultLangs;
        return langs.length ? langs : defaultLangs;
      };

      exports.findKey = findKey;
      exports.findValueByKeyIgnoreCase = findValueByKeyIgnoreCase;
      exports.lang = lang;
      exports.extlang = extlang;
      exports.script = script;
      exports.region = region;
      exports.regions = _region3.default;
      exports.priuse = priuse;
      exports.normalize = normalize;
      exports.langScript = langScript;
      exports.getAllLocales = getAllLocales;
      exports.getUmbrellaRegions = getUmbrellaRegions;
      exports.isUmbrellaRegionApp = isUmbrellaRegionApp;
      exports.getAppNameFromURL = getAppNameFromURL;
      exports.createLocaleFromIMS = createLocaleFromIMS;
      exports.getCountryLanguages = getCountryLanguages;
      exports.getRegionDefaultLocale = getRegionDefaultLocale;
      /***/
    },
    /* 1 */

    /***/
    function (module, exports, __webpack_require__) {
      "use strict";

      Object.defineProperty(exports, "__esModule", {
        value: true
      });

      var _locales = __webpack_require__(2);

      var locales = _interopRequireWildcard(_locales);

      var _utils = __webpack_require__(0);

      function _interopRequireWildcard(obj) {
        if (obj && obj.__esModule) {
          return obj;
        } else {
          var newObj = {};

          if (obj != null) {
            for (var key in obj) {
              if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];
            }
          }

          newObj.default = obj;
          return newObj;
        }
      }
      /*
       * @param {string} app - app code. For a complete apps code, see https://git.corp.adobe.com/intl/adobe-locales#supported-apps
       * @param {string} locale - locale name, it does not have to be the one destination app uses.
       * @param {string} fallback - fallback locale name, it does not have to be the one destination app uses.
       * @returns {string} destination app locale name. Returns "" if passed locale is not supported in the app. 
       */

      /*************************************************************************
      * ADOBE CONFIDENTIAL
      * ___________________
      *
      *  Copyright 2018 Adobe Systems Incorporated
      *  All Rights Reserved.
      *
      * NOTICE:  All information contained herein is, and remains
      * the property of Adobe Systems Incorporated and its suppliers,
      * if any.  The intellectual and technical concepts contained
      * herein are proprietary to Adobe Systems Incorporated and its
      * suppliers and are protected by all applicable intellectual property
      * laws, including trade secret and copyright laws.
      * Dissemination of this information or reproduction of this material
      * is strictly forbidden unless prior written permission is obtained
      * from Adobe Systems Incorporated.
      **************************************************************************/


      var getAppLocale = function getAppLocale(app, locale, fallback) {
        // must be a valid app
        if (locales[app] === undefined) {
          return '';
        }

        var appLocale = void 0; // exact locale

        if (locale && locales[app][locale] !== undefined) {
          appLocale = locale;
        } else {
          // otherwise find a match in all locales
          var adobeLocales = (0, _utils.getAllLocales)();

          if (locale && !((0, _utils.lang)(locale) === '' && adobeLocales[locale] === undefined)) {
            var normalizedLocale = (0, _utils.findValueByKeyIgnoreCase)(adobeLocales, locale);

            if (normalizedLocale === undefined) {
              if (locale.length === 2) {
                // region code or lang code only
                normalizedLocale = (0, _utils.getRegionDefaultLocale)(locale) || locale;
              } else {
                normalizedLocale = locale.includes('_') ? locale.replace(/_/g, '-') : locale;
              }
            }

            appLocale = (0, _utils.findKey)(locales[app], function (v) {
              return v === normalizedLocale;
            }); // try umbrella regions

            if (appLocale === undefined && (0, _utils.isUmbrellaRegionApp)(app)) {
              var umbrellaRegion = (0, _utils.getUmbrellaRegions)((0, _utils.region)(locale));

              if (umbrellaRegion) {
                // try lang and region combination first
                var regionLocaleX = (0, _utils.lang)(locale) + '-x-' + umbrellaRegion.toUpperCase();
                var regionLocale = locale.slice(0, -2) + umbrellaRegion.toUpperCase();
                appLocale = (0, _utils.findKey)(locales[app], function (v) {
                  return v === regionLocaleX || v === regionLocale;
                }); // try region only

                if (appLocale === undefined && locales[app][umbrellaRegion] !== undefined) {
                  appLocale = umbrellaRegion;
                }
              }
            } // try lang and script combination


            if (appLocale === undefined && (0, _utils.script)(normalizedLocale) !== '') {
              var withScript = normalizedLocale.substr(0, 7).toLowerCase();
              appLocale = (0, _utils.findKey)(locales[app], function (v) {
                return v.substr(0, 7).toLowerCase() === withScript;
              });
            } // finally try lang only


            if (appLocale === undefined) {
              var withLang = normalizedLocale.substr(0, 2).toLowerCase();
              appLocale = (0, _utils.findKey)(locales[app], function (v) {
                return v.substr(0, 2).toLowerCase() === withLang;
              });
            }
          }

          if (appLocale === undefined && fallback !== undefined) {
            appLocale = (0, _utils.findKey)(locales[app], function (v) {
              return v === fallback || v === adobeLocales[fallback];
            });
          }
        } // stock has nothing for en-US locale


        if (app === 'stock' && appLocale === 'us') {
          appLocale = '';
        }

        return appLocale || '';
      };

      exports.default = getAppLocale;
      /***/
    },
    /* 2 */

    /***/
    function (module, exports, __webpack_require__) {
      "use strict";

      Object.defineProperty(exports, "__esModule", {
        value: true
      });

      var _ucv = __webpack_require__(7);

      Object.defineProperty(exports, 'academic_verification', {
        enumerable: true,
        get: function get() {
          return _interopRequireDefault(_ucv).default;
        }
      });

      var _adminconsole = __webpack_require__(8);

      Object.defineProperty(exports, 'adminconsole', {
        enumerable: true,
        get: function get() {
          return _interopRequireDefault(_adminconsole).default;
        }
      });

      var _adobeaccount = __webpack_require__(9);

      Object.defineProperty(exports, 'adobeaccount', {
        enumerable: true,
        get: function get() {
          return _interopRequireDefault(_adobeaccount).default;
        }
      });

      var _assets = __webpack_require__(10);

      Object.defineProperty(exports, 'assets', {
        enumerable: true,
        get: function get() {
          return _interopRequireDefault(_assets).default;
        }
      });

      var _behance = __webpack_require__(11);

      Object.defineProperty(exports, 'behance', {
        enumerable: true,
        get: function get() {
          return _interopRequireDefault(_behance).default;
        }
      });

      var _cchome = __webpack_require__(12);

      Object.defineProperty(exports, 'cchome', {
        enumerable: true,
        get: function get() {
          return _interopRequireDefault(_cchome).default;
        }
      });

      var _ccsearch = __webpack_require__(13);

      Object.defineProperty(exports, 'ccsearch', {
        enumerable: true,
        get: function get() {
          return _interopRequireDefault(_ccsearch).default;
        }
      });
      Object.defineProperty(exports, 'comments', {
        enumerable: true,
        get: function get() {
          return _interopRequireDefault(_assets).default;
        }
      });

      var _color = __webpack_require__(14);

      Object.defineProperty(exports, 'color', {
        enumerable: true,
        get: function get() {
          return _interopRequireDefault(_color).default;
        }
      });

      var _community = __webpack_require__(15);

      Object.defineProperty(exports, 'community', {
        enumerable: true,
        get: function get() {
          return _interopRequireDefault(_community).default;
        }
      });

      var _creativecloudapp = __webpack_require__(16);

      Object.defineProperty(exports, 'creativecloudapp', {
        enumerable: true,
        get: function get() {
          return _interopRequireDefault(_creativecloudapp).default;
        }
      });

      var _dcweb = __webpack_require__(17);

      Object.defineProperty(exports, 'dcweb', {
        enumerable: true,
        get: function get() {
          return _interopRequireDefault(_dcweb).default;
        }
      });

      var _editbilling = __webpack_require__(18);

      Object.defineProperty(exports, 'editbilling', {
        enumerable: true,
        get: function get() {
          return _interopRequireDefault(_editbilling).default;
        }
      });

      var _experiencecloud = __webpack_require__(19);

      Object.defineProperty(exports, 'experiencecloud', {
        enumerable: true,
        get: function get() {
          return _interopRequireDefault(_experiencecloud).default;
        }
      });

      var _helpx = __webpack_require__(20);

      Object.defineProperty(exports, 'helpx', {
        enumerable: true,
        get: function get() {
          return _interopRequireDefault(_helpx).default;
        }
      });

      var _ims = __webpack_require__(21);

      Object.defineProperty(exports, 'ims', {
        enumerable: true,
        get: function get() {
          return _interopRequireDefault(_ims).default;
        }
      });

      var _lightroom = __webpack_require__(22);

      Object.defineProperty(exports, 'lightroom', {
        enumerable: true,
        get: function get() {
          return _interopRequireDefault(_lightroom).default;
        }
      });

      var _jarvis = __webpack_require__(23);

      Object.defineProperty(exports, 'jarvis', {
        enumerable: true,
        get: function get() {
          return _interopRequireDefault(_jarvis).default;
        }
      });

      var _mcs = __webpack_require__(24);

      Object.defineProperty(exports, 'mcs', {
        enumerable: true,
        get: function get() {
          return _interopRequireDefault(_mcs).default;
        }
      });

      var _mt = __webpack_require__(25);

      Object.defineProperty(exports, 'mt', {
        enumerable: true,
        get: function get() {
          return _interopRequireDefault(_mt).default;
        }
      });

      var _ngl = __webpack_require__(26);

      Object.defineProperty(exports, 'ngl', {
        enumerable: true,
        get: function get() {
          return _interopRequireDefault(_ngl).default;
        }
      });

      var _acrobat_plan = __webpack_require__(27);

      Object.defineProperty(exports, 'acrobat_plan', {
        enumerable: true,
        get: function get() {
          return _interopRequireDefault(_acrobat_plan).default;
        }
      });

      var _panellicensing = __webpack_require__(28);

      Object.defineProperty(exports, 'panel_licensing', {
        enumerable: true,
        get: function get() {
          return _interopRequireDefault(_panellicensing).default;
        }
      });

      var _portfolio = __webpack_require__(29);

      Object.defineProperty(exports, 'portfolio', {
        enumerable: true,
        get: function get() {
          return _interopRequireDefault(_portfolio).default;
        }
      });

      var _publiclinks = __webpack_require__(30);

      Object.defineProperty(exports, 'publiclinks', {
        enumerable: true,
        get: function get() {
          return _interopRequireDefault(_publiclinks).default;
        }
      });

      var _react_spectrum = __webpack_require__(31);

      Object.defineProperty(exports, 'react_spectrum', {
        enumerable: true,
        get: function get() {
          return _interopRequireDefault(_react_spectrum).default;
        }
      });

      var _redemptionui = __webpack_require__(32);

      Object.defineProperty(exports, 'redemption_ui', {
        enumerable: true,
        get: function get() {
          return _interopRequireDefault(_redemptionui).default;
        }
      });
      Object.defineProperty(exports, 'sharesheet', {
        enumerable: true,
        get: function get() {
          return _interopRequireDefault(_assets).default;
        }
      });

      var _spark = __webpack_require__(33);

      Object.defineProperty(exports, 'spark', {
        enumerable: true,
        get: function get() {
          return _interopRequireDefault(_spark).default;
        }
      });

      var _stock = __webpack_require__(34);

      Object.defineProperty(exports, 'stock', {
        enumerable: true,
        get: function get() {
          return _interopRequireDefault(_stock).default;
        }
      });

      var _fonts = __webpack_require__(35);

      Object.defineProperty(exports, 'fonts', {
        enumerable: true,
        get: function get() {
          return _interopRequireDefault(_fonts).default;
        }
      });
      Object.defineProperty(exports, 'commerce_ui', {
        enumerable: true,
        get: function get() {
          return _interopRequireDefault(_ucv).default;
        }
      });
      Object.defineProperty(exports, 'unifiedcheckout', {
        enumerable: true,
        get: function get() {
          return _interopRequireDefault(_ucv).default;
        }
      });

      var _ucv2 = __webpack_require__(36);

      Object.defineProperty(exports, 'unifiedcheckout_v1', {
        enumerable: true,
        get: function get() {
          return _interopRequireDefault(_ucv2).default;
        }
      });

      var _unifiedpanel = __webpack_require__(37);

      Object.defineProperty(exports, 'unifiedpanel', {
        enumerable: true,
        get: function get() {
          return _interopRequireDefault(_unifiedpanel).default;
        }
      });

      var _uss = __webpack_require__(38);

      Object.defineProperty(exports, 'uss', {
        enumerable: true,
        get: function get() {
          return _interopRequireDefault(_uss).default;
        }
      });

      var _utilitynav = __webpack_require__(39);

      Object.defineProperty(exports, 'utilitynav', {
        enumerable: true,
        get: function get() {
          return _interopRequireDefault(_utilitynav).default;
        }
      });

      var _ututs = __webpack_require__(40);

      Object.defineProperty(exports, 'ututs', {
        enumerable: true,
        get: function get() {
          return _interopRequireDefault(_ututs).default;
        }
      });

      var _xd = __webpack_require__(41);

      Object.defineProperty(exports, 'xd', {
        enumerable: true,
        get: function get() {
          return _interopRequireDefault(_xd).default;
        }
      });

      var _mini_plans_photoshop_lightroom_start_trial = __webpack_require__(42);

      Object.defineProperty(exports, 'mini_plans_photoshop_lightroom_start_trial', {
        enumerable: true,
        get: function get() {
          return _interopRequireDefault(_mini_plans_photoshop_lightroom_start_trial).default;
        }
      });

      var _mini_plans = __webpack_require__(43);

      Object.defineProperty(exports, 'mini_plans', {
        enumerable: true,
        get: function get() {
          return _interopRequireDefault(_mini_plans).default;
        }
      });

      var _adobedotcom = __webpack_require__(44);

      Object.defineProperty(exports, 'adobedotcom', {
        enumerable: true,
        get: function get() {
          return _interopRequireDefault(_adobedotcom).default;
        }
      });
      Object.defineProperty(exports, 'globalnav', {
        enumerable: true,
        get: function get() {
          return _interopRequireDefault(_adobedotcom).default;
        }
      });
      Object.defineProperty(exports, 'switchplan_app', {
        enumerable: true,
        get: function get() {
          return _interopRequireDefault(_adobeaccount).default;
        }
      });

      var _supplement = __webpack_require__(45);

      Object.defineProperty(exports, '_supplement', {
        enumerable: true,
        get: function get() {
          return _interopRequireDefault(_supplement).default;
        }
      });

      function _interopRequireDefault(obj) {
        return obj && obj.__esModule ? obj : {
          default: obj
        };
      }
      /***/

    },
    /* 3 */

    /***/
    function (module, exports, __webpack_require__) {
      "use strict";

      Object.defineProperty(exports, "__esModule", {
        value: true
      });
      var apps = {
        'academic_verification': {
          'stage': 'https://commerce-stg.adobe.com/academic-verification',
          'production': 'https://commerce.adobe.com/academic-verification'
        },
        'acrobat_plan': {
          'stage': 'https://www-stage01.acrobat.adobe.com',
          'production': 'https://acrobat.adobe.com'
        },
        'adobeaccount': {
          'stage': 'https://stage.account.adobe.com',
          'production': 'https://account.adobe.com'
        },
        'adminconsole': {
          'stage': 'https://stage.adminconsole.adobe.com',
          'production': 'https://adminconsole.adobe.com'
        },
        'assets': {
          'stage': 'https://assets-stage.adobecc.com',
          'production': 'https://assets.adobe.com'
        },
        'behance': {
          'stage': 'https://net.s2stagehance.com',
          'production': 'https://www.behance.net'
        },
        'cchome': {
          'stage': 'https://stage.creativecloud.adobe.com',
          'production': 'https://creativecloud.adobe.com'
        },
        'color': {
          'stage': 'https://colorweb-stage.adobeku.com',
          'production': 'https://color.adobe.com'
        },
        'community': {
          'stage': 'https://community-stg.adobe.com',
          'production': 'https://community.adobe.com'
        },
        'creativecloudapp': {
          'stage': 'https://stage.ccmui.adobe.com',
          'production': 'https://creative.adobe.com'
        },
        'dcweb': {
          'stage': 'https://dc-stage.documentcloudtest.com',
          'production': 'https://documentcloud.adobe.com'
        },
        'experiencecloud': {
          'stage': 'https://experiencecloud-stage.adobe.com',
          'production': 'https://experiencecloud.adobe.com'
        },
        'fonts': {
          'stage': 'https://fonts-relstage.adobe.com',
          'production': 'https://fonts.adobe.com'
        },
        'helpx': {
          'stage': 'https://helpx.stage.adobe.com',
          'production': 'https://helpx.adobe.com'
        },
        'ims': {
          'stage': 'https://ims-na1-stg1.adobelogin.com',
          'production': 'https://adobeid-na1.services.adobe.com'
        },
        'lightroom': {
          'stage': 'https://stage.adobelr.com',
          'production': 'https://lightroom.adobe.com'
        },
        'mini_plans': {
          'stage': 'https://www.stage.adobe.com/mini-plans',
          'production': 'https://www.adobe.com/mini-plans'
        },
        'ngl': {
          'stage': 'https://workflow-stage.licenses.adobe.com',
          'production': 'https://workflow.licenses.adobe.com'
        },
        'portfolio': {
          'stage': 'https://portfolio.ccpsx.com',
          'production': 'https://portfolio.adobe.com'
        },
        'redemption_ui': {
          'stage': 'https://redeem-stg.adobe.com',
          'production': 'https://redeem.adobe.com'
        },
        'stock': {
          'stage': 'https://primary.stock.stage.adobe.com',
          'production': 'https://stock.adobe.com'
        },
        'spark': {
          'stage': 'https://stage.adobeprojectm.com',
          'production': 'https://spark.adobe.com'
        },
        'commerce_ui': {
          'stage': 'https://commerce-stg.adobe.com',
          'production': 'https://commerce.adobe.com'
        },
        'unifiedcheckout': {
          'stage': 'https://commerce-stg.adobe.com',
          'production': 'https://commerce.adobe.com'
        },
        'xd': {
          'stage': 'https://stage.xd.adobe.com',
          'production': 'https://xd.adobe.com'
        },
        'adobedotcom': {
          'stage': 'https://www.stage.adobe.com',
          'production': 'https://www.adobe.com'
        }
      }; // includes all apps that has locale as part of URL path, like "https://www/adobe.com/us/", compapred to query param like "https://cchome.adobe.com/?locale=en"

      var urlApp = exports.urlApp = ['adobedotcom', 'helpx', 'stock', 'accountmanagement', 'creativecloudapp', 'acrobat_plan', 'ngl', 'color', 'mini_plans']; // includes all apps that use "lang" as query param instead of "locale"

      var langParamApp = exports.langParamApp = ['adobeaccount', 'redemption_ui', 'unifiedcheckout', 'academic_verification', 'community']; // includes all apps that use umbrella regions

      var umbrellaRegionApp = exports.umbrellaRegionApp = ['adobedotcom', 'helpx', 'globalnav', 'ims', 'acrobat_plan', 'ngl', 'jarvis', 'mini_plans'];
      var umbrellaRegions = exports.umbrellaRegions = {
        africa: ['africa', 'ao', 'bf', 'bi', 'bj', 'bw', 'cd', 'cf', 'cg', 'ci', 'cm', 'cv', 'dj', 'er', 'et', 'ga', 'gh', 'gm', 'gn', 'gq', 'gw', 'ke', 'km', 'lr', 'ls', 'mg', 'ml', 'mu', 'mw', 'mz', 'na', 'ne', 'ng', 'rw', 'sc', 'sd', 'sl', 'sn', 'so', 'st', 'sz', 'td', 'tg', 'tz', 'ug', 'za', 'zm', 'zw'],
        cis: ['cis', 'am', 'az', 'by', 'ge', 'kg', 'kz', 'md', 'tj', 'tm', 'uz'],
        la: ['la', 'ar', 'bl', 'bo', 'br', 'bz', 'cl', 'co', 'cr', 'cu', 'do', 'ec', 'fk', 'gf', 'gt', 'gy', 'hn', 'ht', 'mf', 'mq', 'ni', 'pa', 'pe', 'pr', 'py', 'sr', 'sv', 'uy', 've', 'tt'],
        mena: ['mena', 'ae', 'bh', 'dz', 'eg', 'jo', 'kw', 'lb', 'ma', 'om', 'qa', 'sa', 'tn', 'ye', 'iq', 'ly', 'mr'],
        sea: ['sea', 'id', 'my', 'ph', 'sg', 'th', 'vn', 'lk'],
        hk: ['mo'],
        ie: ['hr']
      };
      exports.default = apps;
      /***/
    },
    /* 4 */

    /***/
    function (module, exports, __webpack_require__) {
      "use strict";

      Object.defineProperty(exports, "__esModule", {
        value: true
      });

      var _getAppLocale = __webpack_require__(1);

      var _getAppLocale2 = _interopRequireDefault(_getAppLocale);

      var _utils = __webpack_require__(0);

      function _interopRequireDefault(obj) {
        return obj && obj.__esModule ? obj : {
          default: obj
        };
      }
      /*
       * @param {string} app - app code
       * @param {string} locale - locale name
       * @param {string} imsCountryCode - two-character IMS country code
       * @returns {{locale: string, match: boolean}}
       */

      /*************************************************************************
      * ADOBE CONFIDENTIAL
      * ___________________
      *
      *  Copyright 2018 Adobe Systems Incorporated
      *  All Rights Reserved.
      *
      * NOTICE:  All information contained herein is, and remains
      * the property of Adobe Systems Incorporated and its suppliers,
      * if any.  The intellectual and technical concepts contained
      * herein are proprietary to Adobe Systems Incorporated and its
      * suppliers and are protected by all applicable intellectual property
      * laws, including trade secret and copyright laws.
      * Dissemination of this information or reproduction of this material
      * is strictly forbidden unless prior written permission is obtained
      * from Adobe Systems Incorporated.
      **************************************************************************/


      var getAppLocaleFromIMS = function getAppLocaleFromIMS(app, locale, imsCountryCode) {
        if (typeof app === 'string') {
          app = app.replace(/-/g, '_');
        }

        var _createLocaleFromIMS = (0, _utils.createLocaleFromIMS)(locale, imsCountryCode),
            newLocale = _createLocaleFromIMS.locale,
            match = _createLocaleFromIMS.match;

        var appLocale = (0, _getAppLocale2.default)(app, newLocale); // we have to support mini_plans a different list (a few less) than adobe.com
        // https://jira.corp.adobe.com/browse/LS-7436

        if (app === 'mini_plans' || app === 'mini_plans_photoshop_lightroom_start_trial') {
          match = match && newLocale === (0, _utils.normalize)(appLocale, app);
        }

        return {
          match: match,
          locale: appLocale
        };
      };

      exports.default = getAppLocaleFromIMS;
      /***/
    },
    /* 5 */

    /***/
    function (module, exports, __webpack_require__) {
      "use strict";
      /* WEBPACK VAR INJECTION */

      (function (process) {
        Object.defineProperty(exports, "__esModule", {
          value: true
        });

        var _apps = __webpack_require__(3);

        var _utils = __webpack_require__(0);

        var _getAppLocale = __webpack_require__(1);

        var _getAppLocale2 = _interopRequireDefault(_getAppLocale);

        function _interopRequireDefault(obj) {
          return obj && obj.__esModule ? obj : {
            default: obj
          };
        }
        /*
         * @param {string} url - the destination app url
         * @param {string} locale - locale you want to pass, it doesn not have to be the one destination app uses.
         * @returns {string} destination app localized url
         */


        var getLocalizedURL = function getLocalizedURL(url, locale) {
          try {
            if (typeof url !== 'string' || typeof locale !== 'string') {
              throw Error('expect "url" and "locale" to be string.');
            }

            if (url.toLowerCase().includes('adobe.com/go/')) {
              return url;
            }

            var localizedUrl = url;
            var app = (0, _utils.getAppNameFromURL)(url);

            if (app === undefined) {
              throw Error('this app is not supported yet: "' + url + '"');
            }

            var appLocale = (0, _getAppLocale2.default)(app, locale);

            if (appLocale) {
              var allLocales = (0, _utils.getAllLocales)();

              if (_apps.urlApp.includes(app)) {
                // remove english path as it doesn't work for adobe.com and helpx URL w/paths
                if (appLocale === 'en' || appLocale === 'us') {
                  appLocale = '';
                }

                var pattern = /adobe(?:stock){0,1}\.com\/(.*?)(?=\/|$)/;

                if (app === 'acrobat_plan') {
                  pattern = /adobe\.com\/(.{5,10}?)(?=\/|$)/;
                }

                var thisLocale = (url.match(pattern) || [])[1];

                if (thisLocale !== undefined && allLocales[thisLocale] !== undefined) {
                  localizedUrl = url.replace('.com/' + thisLocale, appLocale === '' ? '.com' : '.com/' + appLocale);
                } else {
                  if (appLocale !== '') {
                    localizedUrl = url.replace('.com', '.com/' + appLocale);
                  } // [ISENG-2617]: support HelpX User Guide URLs


                  if (app === 'helpx' && url.includes('.ug.html')) {
                    localizedUrl = localizedUrl.replace('.html/', '.html/' + appLocale + '/');
                  }
                }
              } else {
                var paramName = _apps.langParamApp.includes(app) ? app === 'community' ? 'profile.language' : 'lang' : 'locale';
                var reg = new RegExp('(' + paramName + '=)(.*?)(?=&|$)');
                var loc = (url.match(reg) || [])[2];

                if (loc !== undefined) {
                  localizedUrl = url.replace(reg, '$1' + appLocale);
                } else {
                  localizedUrl = url + (url.includes('?') ? '&' : '?') + paramName + '=' + appLocale;
                }
              }
            }

            return localizedUrl;
          } catch (e) {
            if (process.env.NODE_ENV === 'development') {
              console.error('[getLocalizedURL] Error: ' + e.message);
            }
          }

          return url;
        };
        /*************************************************************************
        * ADOBE CONFIDENTIAL
        * ___________________
        *
        *  Copyright 2018 Adobe Systems Incorporated
        *  All Rights Reserved.
        *
        * NOTICE:  All information contained herein is, and remains
        * the property of Adobe Systems Incorporated and its suppliers,
        * if any.  The intellectual and technical concepts contained
        * herein are proprietary to Adobe Systems Incorporated and its
        * suppliers and are protected by all applicable intellectual property
        * laws, including trade secret and copyright laws.
        * Dissemination of this information or reproduction of this material
        * is strictly forbidden unless prior written permission is obtained
        * from Adobe Systems Incorporated.
        **************************************************************************/


        exports.default = getLocalizedURL;
        /* WEBPACK VAR INJECTION */
      }).call(exports, __webpack_require__(48));
      /***/
    },
    /* 6 */

    /***/
    function (module, exports, __webpack_require__) {
      "use strict";

      Object.defineProperty(exports, "__esModule", {
        value: true
      });

      var _getAppLocale = __webpack_require__(1);

      Object.defineProperty(exports, 'getAppLocale', {
        enumerable: true,
        get: function get() {
          return _interopRequireDefault(_getAppLocale).default;
        }
      });

      var _getAppLocales = __webpack_require__(47);

      Object.defineProperty(exports, 'getAppLocales', {
        enumerable: true,
        get: function get() {
          return _interopRequireDefault(_getAppLocales).default;
        }
      });

      var _getAppLocaleFromIMS = __webpack_require__(4);

      Object.defineProperty(exports, 'getAppLocaleFromIMS', {
        enumerable: true,
        get: function get() {
          return _interopRequireDefault(_getAppLocaleFromIMS).default;
        }
      });

      var _getLocalizedURL = __webpack_require__(5);

      Object.defineProperty(exports, 'getLocalizedURL', {
        enumerable: true,
        get: function get() {
          return _interopRequireDefault(_getLocalizedURL).default;
        }
      });

      var _getLocalizedURLFromIMS = __webpack_require__(49);

      Object.defineProperty(exports, 'getLocalizedURLFromIMS', {
        enumerable: true,
        get: function get() {
          return _interopRequireDefault(_getLocalizedURLFromIMS).default;
        }
      });

      var _parseLocaleParam = __webpack_require__(50);

      Object.defineProperty(exports, 'parseLocaleParam', {
        enumerable: true,
        get: function get() {
          return _interopRequireDefault(_parseLocaleParam).default;
        }
      });

      var _utils = __webpack_require__(0);

      Object.keys(_utils).forEach(function (key) {
        if (key === "default" || key === "__esModule") return;
        Object.defineProperty(exports, key, {
          enumerable: true,
          get: function get() {
            return _utils[key];
          }
        });
      });

      function _interopRequireDefault(obj) {
        return obj && obj.__esModule ? obj : {
          default: obj
        };
      }
      /***/

    },
    /* 7 */

    /***/
    function (module, exports, __webpack_require__) {
      "use strict";

      Object.defineProperty(exports, "__esModule", {
        value: true
      });
      exports.default = {
        'cs': 'cs-CZ',
        'da': 'da-DK',
        'de': 'de-DE',
        'en': 'en-US',
        'es': 'es-ES',
        'fi': 'fi-FI',
        'fr': 'fr-FR',
        'it': 'it-IT',
        'ja': 'ja-JP',
        'ko': 'ko-KR',
        'nb': 'nb-NO',
        'nl': 'nl-NL',
        'pl': 'pl-PL',
        'pt': 'pt-BR',
        'ru': 'ru-RU',
        'sv': 'sv-SE',
        'tr': 'tr-TR',
        'zh-hant': 'zh-Hant-TW'
      };
      /***/
    },
    /* 8 */

    /***/
    function (module, exports, __webpack_require__) {
      "use strict";

      Object.defineProperty(exports, "__esModule", {
        value: true
      });
      exports.default = {
        'cs': 'cs-CZ',
        'da': 'da-DK',
        'de': 'de-DE',
        'en': 'en-US',
        'es': 'es-ES',
        'fi': 'fi-FI',
        'fr': 'fr-FR',
        'it': 'it-IT',
        'ja': 'ja-JP',
        'ko': 'ko-KR',
        'nb': 'nb-NO',
        'nl': 'nl-NL',
        'pl': 'pl-PL',
        'pt': 'pt-BR',
        'ru': 'ru-RU',
        'sv': 'sv-SE',
        'tr': 'tr-TR',
        'zh-cn': 'zh-Hans-CN',
        'zh-tw': 'zh-Hant-TW'
      };
      /***/
    },
    /* 9 */

    /***/
    function (module, exports, __webpack_require__) {
      "use strict";

      Object.defineProperty(exports, "__esModule", {
        value: true
      });
      exports.default = {
        'ar': 'ar-AE',
        'bg': 'bg-BG',
        'cs': 'cs-CZ',
        'da': 'da-DK',
        'de': 'de-DE',
        'en': 'en-US',
        'es': 'es-ES',
        'et': 'et-EE',
        'fi': 'fi-FI',
        'fr': 'fr-FR',
        'he': 'he-IL',
        'hu': 'hu-HU',
        'it': 'it-IT',
        'ja': 'ja-JP',
        'ko': 'ko-KR',
        'lt': 'lt-LT',
        'lv': 'lv-LV',
        'nb': 'nb-NO',
        'nl': 'nl-NL',
        'pl': 'pl-PL',
        'pt': 'pt-BR',
        'ro': 'ro-RO',
        'ru': 'ru-RU',
        'sk': 'sk-SK',
        'sl': 'sl-SI',
        'sv': 'sv-SE',
        'tr': 'tr-TR',
        'uk': 'uk-UA',
        'zh-Hans': 'zh-Hans-CN',
        'zh-Hant': 'zh-Hant-TW'
      };
      /***/
    },
    /* 10 */

    /***/
    function (module, exports, __webpack_require__) {
      "use strict";

      Object.defineProperty(exports, "__esModule", {
        value: true
      });
      exports.default = {
        'cs': 'cs-CZ',
        'da': 'da-DK',
        'de': 'de-DE',
        'en': 'en-US',
        'es': 'es-ES',
        'fi': 'fi-FI',
        'fr': 'fr-FR',
        'it': 'it-IT',
        'ja': 'ja-JP',
        'ko': 'ko-KR',
        'nb': 'nb-NO',
        'nl': 'nl-NL',
        'pl': 'pl-PL',
        'pt': 'pt-BR',
        'ru': 'ru-RU',
        'sv': 'sv-SE',
        'tr': 'tr-TR',
        'zh-Hans': 'zh-Hans-CN',
        'zh-Hant': 'zh-Hant-TW'
      };
      /***/
    },
    /* 11 */

    /***/
    function (module, exports, __webpack_require__) {
      "use strict";

      Object.defineProperty(exports, "__esModule", {
        value: true
      });
      exports.default = {
        'cs-CZ': 'cs-CZ',
        'da-DK': 'da-DK',
        'de-DE': 'de-DE',
        'en-US': 'en-US',
        'es-ES': 'es-ES',
        'fi-FI': 'fi-FI',
        'fr-FR': 'fr-FR',
        'it-IT': 'it-IT',
        'ja-JP': 'ja-JP',
        'ko-KR': 'ko-KR',
        'nb-NO': 'nb-NO',
        'nl-NL': 'nl-NL',
        'pl-PL': 'pl-PL',
        'pt-BR': 'pt-BR',
        'ru-RU': 'ru-RU',
        'sv-SE': 'sv-SE',
        'tr-TR': 'tr-TR',
        'zh-CN': 'zh-Hans-CN',
        'zh-TW': 'zh-Hant-TW'
      };
      /***/
    },
    /* 12 */

    /***/
    function (module, exports, __webpack_require__) {
      "use strict";

      Object.defineProperty(exports, "__esModule", {
        value: true
      });
      exports.default = {
        'cs': 'cs-CZ',
        'da': 'da-DK',
        'de': 'de-DE',
        'en': 'en-US',
        'es': 'es-ES',
        'fi': 'fi-FI',
        'fr': 'fr-FR',
        'it': 'it-IT',
        'ja': 'ja-JP',
        'ko': 'ko-KR',
        'nb': 'nb-NO',
        'nl': 'nl-NL',
        'pl': 'pl-PL',
        'pt': 'pt-BR',
        'ru': 'ru-RU',
        'sv': 'sv-SE',
        'tr': 'tr-TR',
        'zh-Hans': 'zh-Hans-CN',
        'zh-Hant': 'zh-Hant-TW'
      };
      /***/
    },
    /* 13 */

    /***/
    function (module, exports, __webpack_require__) {
      "use strict";

      Object.defineProperty(exports, "__esModule", {
        value: true
      });
      exports.default = {
        'cs': 'cs-CZ',
        'da': 'da-DK',
        'de': 'de-DE',
        'en': 'en-US',
        'es': 'es-ES',
        'fi': 'fi-FI',
        'fr': 'fr-FR',
        'hu': 'hu-HU',
        'it': 'it-IT',
        'ja': 'ja-JP',
        'ko': 'ko-KR',
        'nb': 'nb-NO',
        'nl': 'nl-NL',
        'pl': 'pl-PL',
        'pt': 'pt-BR',
        'ru': 'ru-RU',
        'sv': 'sv-SE',
        'tr': 'tr-TR',
        'uk': 'uk-UA',
        'zh-Hans': 'zh-Hans-CN',
        'zh-Hant': 'zh-Hant-TW'
      };
      /***/
    },
    /* 14 */

    /***/
    function (module, exports, __webpack_require__) {
      "use strict";

      Object.defineProperty(exports, "__esModule", {
        value: true
      });
      exports.default = {
        'cs': 'cs-CZ',
        'da': 'da-DK',
        'de': 'de-DE',
        'en': 'en-US',
        'es': 'es-ES',
        'fi': 'fi-FI',
        'fr': 'fr-FR',
        'it': 'it-IT',
        'ja': 'ja-JP',
        'ko': 'ko-KR',
        'nb': 'nb-NO',
        'nl': 'nl-NL',
        'pl': 'pl-PL',
        'pt': 'pt-BR',
        'ru': 'ru-RU',
        'sv': 'sv-SE',
        'tr': 'tr-TR',
        'zh': 'zh-Hant-TW'
      };
      /***/
    },
    /* 15 */

    /***/
    function (module, exports, __webpack_require__) {
      "use strict";

      Object.defineProperty(exports, "__esModule", {
        value: true
      });
      exports.default = {
        'de': 'de-DE',
        'en': 'en-US',
        'es': 'es-ES',
        'fr': 'fr-FR',
        'ja': 'ja-JP',
        'pt': 'pt-BR'
      };
      /***/
    },
    /* 16 */

    /***/
    function (module, exports, __webpack_require__) {
      "use strict";

      Object.defineProperty(exports, "__esModule", {
        value: true
      });
      exports.default = {
        'cs': 'cs-CZ',
        'da': 'da-DK',
        'de': 'de-DE',
        'en': 'en-US',
        'es': 'es-ES',
        'fi': 'fi-FI',
        'fr': 'fr-FR',
        'it': 'it-IT',
        'ja': 'ja-JP',
        'ko': 'ko-KR',
        'nb': 'nb-NO',
        'nl': 'nl-NL',
        'pl': 'pl-PL',
        'pt': 'pt-BR',
        'ru': 'ru-RU',
        'sv': 'sv-SE',
        'tr': 'tr-TR',
        'zh-cn': 'zh-Hans-CN',
        'zh-tw': 'zh-Hant-TW'
      };
      /***/
    },
    /* 17 */

    /***/
    function (module, exports, __webpack_require__) {
      "use strict";

      Object.defineProperty(exports, "__esModule", {
        value: true
      });
      exports.default = {
        'cs-CZ': 'cs-CZ',
        'da-DK': 'da-DK',
        'de-DE': 'de-DE',
        'en-US': 'en-US',
        'en-GB': 'en-GB',
        'es-ES': 'es-ES',
        'fi-FI': 'fi-FI',
        'fr-FR': 'fr-FR',
        'it-IT': 'it-IT',
        'ja-JP': 'ja-JP',
        'ko-KR': 'ko-KR',
        'nb-NO': 'nb-NO',
        'nl-NL': 'nl-NL',
        'pl-PL': 'pl-PL',
        'pt-BR': 'pt-BR',
        'ru-RU': 'ru-RU',
        'sv-SE': 'sv-SE',
        'tr-TR': 'tr-TR',
        'zh-CN': 'zh-Hans-CN',
        'zh-TW': 'zh-Hant-TW'
      };
      /***/
    },
    /* 18 */

    /***/
    function (module, exports, __webpack_require__) {
      "use strict";

      Object.defineProperty(exports, "__esModule", {
        value: true
      });
      exports.default = {
        'ar': 'ar-AE',
        'bg': 'bg-BG',
        'cs': 'cs-CZ',
        'da': 'da-DK',
        'de': 'de-DE',
        'en': 'en-US',
        'es': 'es-ES',
        'et': 'et-EE',
        'fi': 'fi-FI',
        'fr': 'fr-FR',
        'he': 'he-IL',
        'hu': 'hu-HU',
        'it': 'it-IT',
        'ja': 'ja-JP',
        'ko': 'ko-KR',
        'lt': 'lt-LT',
        'lv': 'lv-LV',
        'nb': 'nb-NO',
        'nl': 'nl-NL',
        'pl': 'pl-PL',
        'pt': 'pt-BR',
        'ro': 'ro-RO',
        'ru': 'ru-RU',
        'sk': 'sk-SK',
        'sl': 'sl-SI',
        'sv': 'sv-SE',
        'tr': 'tr-TR',
        'uk': 'uk-UA',
        'zh-hans': 'zh-Hans-CN',
        'zh-hant': 'zh-Hant-TW'
      };
      /***/
    },
    /* 19 */

    /***/
    function (module, exports, __webpack_require__) {
      "use strict";

      Object.defineProperty(exports, "__esModule", {
        value: true
      });
      exports.default = {
        'de': 'de-DE',
        'en': 'en-US',
        'es': 'es-ES',
        'fr': 'fr-FR',
        'it': 'it-IT',
        'ja': 'ja-JP',
        'ko-kr': 'ko-KR',
        'pt-br': 'pt-BR',
        'zh-cn': 'zh-Hans-CN',
        'zh-tw': 'zh-Hant-TW'
      };
      /***/
    },
    /* 20 */

    /***/
    function (module, exports, __webpack_require__) {
      "use strict";

      Object.defineProperty(exports, "__esModule", {
        value: true
      });
      exports.default = {
        'mena_ar': 'ar-x-MENA',
        // Arabic (Middle East and North Africa)
        'bg': 'bg-BG',
        // Bulgarian (Bulgaria)
        'cz': 'cs-CZ',
        // Czech (Czech Republic)
        'dk': 'da-DK',
        // Danish (Denmark)
        'de': 'de-DE',
        // German (Germany)
        'at': 'de-AT',
        // German (Austria)
        'ch_de': 'de-CH',
        // German (Switzerland)
        'lu_de': 'de-LU',
        // German (Luxembourg)
        'en': 'en-US',
        // English (United States) - Default Locale
        'au': 'en-AU',
        // English (Australia)
        'be_en': 'en-BE',
        // English (Belgium)
        'ca': 'en-CA',
        // English (Canada)
        'cy_en': 'en-CY',
        // English (Cyprus)
        'uk': 'en-GB',
        // English (United Kingdom)
        'gr_en': 'en-GR',
        // English (Greece)
        'hk_en': 'en-HK',
        // English (Hong Kong)
        'ie': 'en-IE',
        // English (Ireland)
        'il_en': 'en-IL',
        // English (Israel)
        'in': 'en-IN',
        // English (India)
        'lu_en': 'en-LU',
        // English (Luxembourg)
        'mt': 'en-MT',
        // English (Malta)
        'nz': 'en-NZ',
        // English (New Zealand)
        'africa': 'en-x-AFRICA',
        // English (Africa)
        'eeurope': 'en-x-EEUROPE',
        // English (Eastern Europe)
        'mena_en': 'en-x-MENA',
        // English (Middle East and North Africa)
        'sea': 'en-x-SEA',
        // English (Southeast Asia)
        'es': 'es-ES',
        // Spanish (Spain)
        'mx': 'es-MX',
        // Spanish (Mexico)
        'la': 'es-x-LA',
        // Spanish (Latin America)
        'ee': 'et-EE',
        // Estonian (Estonia)
        'fi': 'fi-FI',
        // Finnish (Finland)
        'fr': 'fr-FR',
        // French (France)
        'be_fr': 'fr-BE',
        // French (Belgium)
        'ca_fr': 'fr-CA',
        // French (Canada)
        'ch_fr': 'fr-CH',
        // French (Switzerland)
        'lu_fr': 'fr-LU',
        // French (Luxembourg)
        'il_he': 'he-IL',
        // Hebrew (Israel)
        'hu': 'hu-HU',
        // Hungarian (Hungary)
        'it': 'it-IT',
        // Italian (Italy)
        'ch_it': 'it-CH',
        // Italian (Switzerland)
        'jp': 'ja-JP',
        // Japanese (Japan)
        'kr': 'ko-KR',
        // Korean (Korea)
        'lt': 'lt-LT',
        // Lithuanian (Lithuania)
        'lv': 'lv-LV',
        // Latvian (Latvia)
        'no': 'nb-NO',
        // Norwegian (Norway)
        'nl': 'nl-NL',
        // Dutch (Netherlands)
        'be_nl': 'nl-BE',
        // Dutch (Belgium)
        'pl': 'pl-PL',
        // Polish (Poland)
        'pt': 'pt-PT',
        // Portuguese (Portugal)
        'br': 'pt-BR',
        // Portuguese (Brazil)
        'ro': 'ro-RO',
        // Romanian (Romania)
        'ru': 'ru-RU',
        // Russian (Russia)
        'cis': 'ru-x-CIS',
        // Russian (Commonwealth of Independent States)
        'sk': 'sk-SK',
        // Slovakian (Slovakia)
        'si': 'sl-SI',
        // Slovenian (Slovenia)
        'se': 'sv-SE',
        // Swedish (Sweden)
        'tr': 'tr-TR',
        // Turkish (Turkey)
        'ua': 'uk-UA',
        // Ukrainian (Ukraine)
        'cn': 'zh-Hans-CN',
        // Chinese Simplified (China)
        'tw': 'zh-Hant-TW',
        // Chinese Traditional (Taiwan)    
        'hk_zh': 'zh-Hant-HK' // Chinese Traditional (Hong Kong)

      };
      /***/
    },
    /* 21 */

    /***/
    function (module, exports, __webpack_require__) {
      "use strict";

      Object.defineProperty(exports, "__esModule", {
        value: true
      });
      exports.default = {
        'bg_BG': 'bg-BG',
        'cs_CZ': 'cs-CZ',
        'da_DK': 'da-DK',
        'de_DE': 'de-DE',
        'en_US': 'en-US',
        'en_AE': 'en-AE',
        'en_GB': 'en-GB',
        'en_IL': 'en-IL',
        'en_XM': 'en-x-MENA',
        'es_ES': 'es-ES',
        'es_LA': 'es-x-LA',
        'es_MX': 'es-MX',
        'es_NA': 'es-x-NA',
        'et_EE': 'et-EE',
        'fi_FI': 'fi-FI',
        'fr_FR': 'fr-FR',
        'fr_CA': 'fr-CA',
        'fr_MA': 'fr-MA',
        'fr_XM': 'fr-x-MENA',
        'hr_HR': 'hr-HR',
        'hu_HU': 'hu-HU',
        'it_IT': 'it-IT',
        'ja_JP': 'ja-JP',
        'ko_KR': 'ko-KR',
        'lt_LT': 'lt-LT',
        'lv_LV': 'lv-LV',
        'nb_NO': 'nb-NO',
        'nl_NL': 'nl-NL',
        'pl_PL': 'pl-PL',
        'pt_BR': 'pt-BR',
        'ro_RO': 'ro-RO',
        'ru_RU': 'ru-RU',
        'sk_SK': 'sk-SK',
        'sl_SI': 'sl-SI',
        'sr_RS': 'sr-RS',
        'sr_SP': 'sr-RS',
        'sv_SE': 'sv-SE',
        'tr_TR': 'tr-TR',
        'uk_UA': 'uk-UA',
        'zh_HANS': 'zh-Hans-CN',
        'zh_CN': 'zh-Hans-CN',
        'zh_HANT': 'zh-Hant-TW',
        'zh_TW': 'zh-Hant-TW'
      };
      /***/
    },
    /* 22 */

    /***/
    function (module, exports, __webpack_require__) {
      "use strict";

      Object.defineProperty(exports, "__esModule", {
        value: true
      });
      exports.default = {
        'de-DE': 'de-DE',
        'en-US': 'en-US',
        'en-GB': 'en-GB',
        'es-ES': 'es-ES',
        'es-MX': 'es-MX',
        'fr-FR': 'fr-FR',
        'fr-CA': 'fr-CA',
        'hu-HU': 'hu-HU',
        'it-IT': 'it-IT',
        'ja-JP': 'ja-JP',
        'ko-KR': 'ko-KR',
        'nl-NL': 'nl-NL',
        'pt-BR': 'pt-BR',
        'ru-RU': 'ru-RU',
        'sv-SE': 'sv-SE',
        'th-TH': 'th-TH',
        'uk-UA': 'uk-UA',
        'zh-CN': 'zh-Hans-CN',
        'zh-TW': 'zh-Hant-TW'
      };
      /***/
    },
    /* 23 */

    /***/
    function (module, exports, __webpack_require__) {
      "use strict";

      Object.defineProperty(exports, "__esModule", {
        value: true
      });
      exports.default = {
        'ar_MENA': 'ar-x-MENA',
        'bg_BG': 'bg-BG',
        'cs_CZ': 'cs-CZ',
        'da_DK': 'da-DK',
        'de_DE': 'de-DE',
        'de_AT': 'de-AT',
        'de_CH': 'de-CH',
        'de_LU': 'de-LU',
        'en_US': 'en-US',
        'en_AU': 'en-AU',
        'en_BE': 'en-BE',
        'en_CA': 'en-CA',
        'en_CY': 'en-CY',
        'en_GB': 'en-GB',
        'en_GR': 'en-GR',
        'en_HK': 'en-HK',
        'en_IE': 'en-IE',
        'en_IL': 'en-IL',
        'en_IN': 'en-IN',
        'en_LU': 'en-LU',
        'en_MENA': 'en-x-MENA',
        'en_MT': 'en-MT',
        'en_NZ': 'en-NZ',
        'en_SEA': 'en-x-SEA',
        'en_ZA': 'en-x-AFRICA',
        'es_ES': 'es-ES',
        'es_LA': 'es-x-LA',
        'es_MX': 'es-MX',
        'et_EE': 'et-EE',
        'fi_FI': 'fi-FI',
        'fr_FR': 'fr-FR',
        'fr_BE': 'fr-BE',
        'fr_CA': 'fr-CA',
        'fr_CH': 'fr-CH',
        'fr_LU': 'fr-LU',
        'he_IL': 'he-IL',
        'hu_HU': 'hu-HU',
        'it_CH': 'it-CH',
        'it_IT': 'it-IT',
        'ja_JP': 'ja-JP',
        'ko_KR': 'ko-KR',
        'lt_LT': 'lt-LT',
        'lv_LV': 'lv-LV',
        'nb_NO': 'nb-NO',
        'nl_BE': 'nl-BE',
        'nl_NL': 'nl-NL',
        'pl_PL': 'pl-PL',
        'pt_BR': 'pt-BR',
        'pt_PT': 'pt-PT',
        'ro_RO': 'ro-RO',
        'ru_RU': 'ru-RU',
        'sk_SK': 'sk-SK',
        'sl_SI': 'sl-SI',
        'sv_SE': 'sv-SE',
        'tr_TR': 'tr-TR',
        'uk_UA': 'uk-UA',
        'zh_CN': 'zh-Hans-CN',
        'zh_TW': 'zh-Hant-TW',
        'zh_HK': 'zh-Hant-HK'
      };
      /***/
    },
    /* 24 */

    /***/
    function (module, exports, __webpack_require__) {
      "use strict";

      Object.defineProperty(exports, "__esModule", {
        value: true
      });
      exports.default = {
        'ar_AE': 'ar-AE',
        'bg_BG': 'bg-BG',
        'cs_CZ': 'cs-CZ',
        'da_DK': 'da-DK',
        'de_DE': 'de-DE',
        'en_US': 'en-US',
        'en_GB': 'en-GB',
        'en_HK': 'en-HK',
        'en_IL': 'en-IL',
        'es_ES': 'es-ES',
        'es_MX': 'es-MX',
        'et_EE': 'et-EE',
        'fi_FI': 'fi-FI',
        'fr_FR': 'fr-FR',
        'fr_CA': 'fr-CA',
        'he_IL': 'he-IL',
        'hr_HR': 'hr-HR',
        'hu_HU': 'hu-HU',
        'it_IT': 'it-IT',
        'ja_JP': 'ja-JP',
        'ko_KR': 'ko-KR',
        'lt_LT': 'lt-LT',
        'lv_LV': 'lv-LV',
        'nb_NO': 'nb-NO',
        'nl_NL': 'nl-NL',
        'pl_PL': 'pl-PL',
        'pt_BR': 'pt-BR',
        'ro_RO': 'ro-RO',
        'ru_RU': 'ru-RU',
        'sk_SK': 'sk-SK',
        'sl_SI': 'sl-SI',
        'sr_RS': 'sr-Latn-RS',
        'sv_SE': 'sv-SE',
        'tr_TR': 'tr-TR',
        'uk_UA': 'uk-UA',
        'zh_CN': 'zh-Hans-CN',
        'zh_HK': 'zh-Hant-HK',
        'zh_TW': 'zh-Hant-TW'
      };
      /***/
    },
    /* 25 */

    /***/
    function (module, exports, __webpack_require__) {
      "use strict";

      Object.defineProperty(exports, "__esModule", {
        value: true
      });
      exports.default = {
        'ar_AE': 'ar-AE',
        'bg_BG': 'bg-BG',
        'ca_ES': 'ca-ES',
        'cs_CZ': 'cs-CZ',
        'da_DK': 'da-DK',
        'de_DE': 'de-DE',
        'el_GR': 'el-GR',
        'en_US': 'en-US',
        'es_ES': 'es-ES',
        'et_EE': 'et-EE',
        'fa_IR': 'fa-IR',
        'fi_FI': 'fi-FI',
        'fr_FR': 'fr-FR',
        'he_IL': 'he-IL',
        'hi_IN': 'hi-IN',
        'ht_HT': 'ht-HT',
        'hu_HU': 'hu-HU',
        'id_ID': 'id-ID',
        'it_IT': 'it-IT',
        'ja_JP': 'ja-JP',
        'ko_KR': 'ko-KR',
        'lt_LT': 'lt-LT',
        'lv_LV': 'lv-LV',
        'ms_MY': 'ms-MY',
        'nl_NL': 'nl-NL',
        'no_NO': 'nb-NO',
        'pl_PL': 'pl-PL',
        'pt_BR': 'pt-BR',
        'ro_RO': 'ro-RO',
        'ru_RU': 'ru-RU',
        'sk_SK': 'sk-SK',
        'sl_SI': 'sl-SI',
        'sv_SE': 'sv-SE',
        'th_TH': 'th-TH',
        'tr_TR': 'tr-TR',
        'uk_UA': 'uk-UA',
        'ur_PK': 'ur-PK',
        'vi_VN': 'vi-VN',
        'zh_CN': 'zh-Hans-CN',
        'zh_TW': 'zh-Hant-TW'
      };
      /***/
    },
    /* 26 */

    /***/
    function (module, exports, __webpack_require__) {
      "use strict";

      Object.defineProperty(exports, "__esModule", {
        value: true
      });
      exports.default = {
        'cs_CZ': 'cs-CZ',
        'da_DK': 'da-DK',
        'de_DE': 'de-DE',
        'en_US': 'en-US',
        'en_GB': 'en-GB',
        'en_IL': 'en-IL',
        'en_AE': 'en-AE',
        'en_XM': 'en-x-MENA',
        'es_ES': 'es-ES',
        'es_MX': 'es-MX',
        'es_LA': 'es-x-LA',
        'es_NA': 'es-x-NA',
        'fi_FI': 'fi-FI',
        'fr_FR': 'fr-FR',
        'fr_CA': 'fr-CA',
        'fr_MA': 'fr-MA',
        'fr_XM': 'fr-x-MENA',
        'it_IT': 'it-IT',
        'ja_JP': 'ja-JP',
        'ko_KR': 'ko-KR',
        'nb_NO': 'nb-NO',
        'nl_NL': 'nl-NL',
        'pl_PL': 'pl-PL',
        'pt_BR': 'pt-BR',
        'ru_RU': 'ru-RU',
        'sv_SE': 'sv-SE',
        'tr_TR': 'tr-TR',
        'hu_HU': 'hu-HU',
        'sk_SK': 'sk-SK',
        'sl_SI': 'sl-SI',
        'uk_UA': 'uk-UA',
        'zh_CN': 'zh-Hans-CN',
        'zh_TW': 'zh-Hant-TW'
      };
      /***/
    },
    /* 27 */

    /***/
    function (module, exports, __webpack_require__) {
      "use strict";

      Object.defineProperty(exports, "__esModule", {
        value: true
      });
      exports.default = {
        'at/de': 'de-AT',
        'au/en': 'en-AU',
        'be/en': 'en-BE',
        'be/fr': 'fr-BE',
        'be/nl': 'nl-BE',
        'bg/en': 'en-BG',
        'br/pt': 'pt-BR',
        'ca/en': 'en-CA',
        'ca/fr': 'fr-CA',
        'ch/de': 'de-CH',
        'ch/fr': 'fr-CH',
        'ch/it': 'it-CH',
        'cn/zh-Hans': 'zh-Hans-CN',
        'cy/en': 'en-CY',
        'cz/cs': 'cs-CZ',
        'de/de': 'de-DE',
        'dk/da': 'da-DK',
        'ee/en': 'en-EE',
        'es/es': 'es-ES',
        'fi/fi': 'fi-FI',
        'fr/fr': 'fr-FR',
        'gr/en': 'en-GR',
        'hk/en': 'en-HK',
        'hk/zh-Hant': 'zh-Hant-HK',
        'hu/hu': 'hu-HU',
        'ie/en': 'en-IE',
        'il/en': 'en-IL',
        'in/en': 'en-IN',
        'it/it': 'it-IT',
        'jp/ja': 'ja-JP',
        'kr/ko': 'ko-KR',
        'la/es': 'es-x-LA',
        'lt/en': 'en-LT',
        'lu/de': 'de-LU',
        'lu/en': 'en-LU',
        'lu/fr': 'fr-LU',
        'lv/en': 'en-LV',
        'mena/en': 'en-x-MENA',
        'mt/en': 'en-MT',
        'mx/es': 'es-MX',
        'nl/nl': 'nl-NL',
        'no/no': 'nb-NO',
        'nz/en': 'en-NZ',
        'pl/pl': 'pl-PL',
        'pt/pt': 'pt-PT',
        'ro/en': 'en-RO',
        'ru/ru': 'ru-RU',
        'se/sv': 'sv-SE',
        'sea/en': 'en-x-SEA',
        'si/en': 'en-SI',
        'sk/en': 'en-SK',
        'tr/tr': 'tr-TR',
        'tw/zh-Hant': 'zh-Hant-TW',
        'ua/en': 'en-UA',
        'uk/en': 'en-GB',
        'us/en': 'en-US',
        'za/en': 'en-x-AFRICA'
      };
      /***/
    },
    /* 28 */

    /***/
    function (module, exports, __webpack_require__) {
      "use strict";

      Object.defineProperty(exports, "__esModule", {
        value: true
      });
      exports.default = {
        'cs-CZ': 'cs-CZ',
        'da-DK': 'da-DK',
        'de-DE': 'de-DE',
        'en-US': 'en-US',
        'es-ES': 'es-ES',
        'fi-FI': 'fi-FI',
        'fr-FR': 'fr-FR',
        'hu-HU': 'hu-HU',
        'it-IT': 'it-IT',
        'ja-JP': 'ja-JP',
        'ko-KR': 'ko-KR',
        'nb-NO': 'nb-NO',
        'nl-NL': 'nl-NL',
        'pl-PL': 'pl-PL',
        'pt-BR': 'pt-BR',
        'pt-PT': 'pt-PT',
        'ru-RU': 'ru-RU',
        'sv-SE': 'sv-SE',
        'th-TH': 'th-TH',
        'tr-TR': 'tr-TR',
        'uk-UA': 'uk-UA',
        'zh-CN': 'zh-Hans-CN',
        'zh-HK': 'zh-Hant-HK',
        'zh-TW': 'zh-Hant-TW'
      };
      /***/
    },
    /* 29 */

    /***/
    function (module, exports, __webpack_require__) {
      "use strict";

      Object.defineProperty(exports, "__esModule", {
        value: true
      });
      exports.default = {
        en_us: 'en-US',
        // English (United States)
        en_au: 'en-AU',
        // English (Australia)
        en_be: 'en-BE',
        // English (Belgium)
        en_br: 'en-BR',
        // English (Brazil)
        en_ca: 'en-CA',
        // English (Canada)
        en_cis: 'en-x-CIS',
        // English (Commonwealth of Independent States)
        en_cy: 'en-CY',
        // English (Cyprus)
        en_gb: 'en-GB',
        // English (United Kingdom)
        en_gr: 'en-GR',
        // English (Greece)
        en_il: 'en-IL',
        // English (Israel)
        en_ie: 'en-IE',
        // English (Ireland)
        en_in: 'en-IN',
        // English (India)
        en_hk: 'en-HK',
        // English (Hong Kong)
        en_lu: 'en-LU',
        // English (Luxembourg)
        en_mena: 'en-x-MENA',
        // English (Middle East and North Africa)
        en_mt: 'en-MT',
        // English (Malta)
        en_nz: 'en-NZ',
        // English (New Zealand)
        en_sea: 'en-x-SEA',
        // English (Southeast Asia)
        en_za: 'en-ZA',
        // English (South Africa)
        cs_cz: 'cs-CZ',
        // Czech (Czech Republic)
        da_dk: 'da-DK',
        // Danish (Denmark)
        de_de: 'de-DE',
        // German (Germany)
        de_ch: 'de-CH',
        // German (Switzerland)
        de_lu: 'de-LU',
        // German (Luxembourg)
        es_es: 'es-ES',
        // Spanish (Spain)
        es_419: 'es-x-LA',
        // Spanish (Latin America)
        es_mx: 'es-MX',
        // Spanish (Mexico)
        fr_fr: 'fr-FR',
        // French (France)
        fi_fi: 'fi-FI',
        // Finnish (Finland)
        fr_ca: 'fr-CA',
        // French (Canada)
        fr_ch: 'fr-CH',
        // French (Switzerland)
        fr_be: 'fr-BE',
        // French (Belgium)
        fr_mena: 'fr-x-MENA',
        // French (Middle East and North Africa)
        fr_lu: 'fr-LU',
        // French (Luxembourg)
        it_it: 'it-IT',
        // Italian (Italy)
        it_ch: 'it-CH',
        // Italian (Switzerland)
        ja_jp: 'ja-JP',
        // Japanese (Japan)
        ko_kr: 'ko-KR',
        // Korean (Korea)
        nb_no: 'nb-NO',
        // Norwegian (Norway)
        nl_nl: 'nl-NL',
        // Dutch (Netherlands)
        pl_pl: 'pl-PL',
        // Polish (Poland)
        pt_pt: 'pt-PT',
        // Portuguese (Portugal)
        pt_br: 'pt-BR',
        // Portuguese (Brazil)
        ru_ru: 'ru-RU',
        // Russian (Russia)
        sv_se: 'sv-SE',
        // Swedish (Sweden)
        tr_tr: 'tr-TR',
        // Turkish (Turkey)
        zh_cn: 'zh-Hans-CN',
        // Chinese Simplified (China)
        zh_tw: 'zh-Hant-TW' // Chinese Traditional (Taiwan)

      };
      /***/
    },
    /* 30 */

    /***/
    function (module, exports, __webpack_require__) {
      "use strict";

      Object.defineProperty(exports, "__esModule", {
        value: true
      });
      exports.default = {
        'cs': 'cs-CZ',
        'da': 'da-DK',
        'de': 'de-DE',
        'en': 'en-US',
        'es': 'es-ES',
        'fi': 'fi-FI',
        'fr': 'fr-FR',
        'it': 'it-IT',
        'ja': 'ja-JP',
        'ko': 'ko-KR',
        'nb': 'nb-NO',
        'nl': 'nl-NL',
        'pl': 'pl-PL',
        'pt': 'pt-BR',
        'ru': 'ru-RU',
        'sv': 'sv-SE',
        'tr': 'tr-TR',
        'zh-tw': 'zh-Hant-TW'
      };
      /***/
    },
    /* 31 */

    /***/
    function (module, exports, __webpack_require__) {
      "use strict";

      Object.defineProperty(exports, "__esModule", {
        value: true
      });
      exports.default = {
        'ar-AE': 'ar-AE',
        'bg-BG': 'bg-BG',
        'cs-CZ': 'cs-CZ',
        'da-DK': 'da-DK',
        'de-DE': 'de-DE',
        'en-US': 'en-US',
        'es-ES': 'es-ES',
        'et-EE': 'et-EE',
        'fi-FI': 'fi-FI',
        'fr-FR': 'fr-FR',
        'he-IL': 'he-IL',
        'hr-HR': 'hr-HR',
        'hu-HU': 'hu-HU',
        'it-IT': 'it-IT',
        'ja-JP': 'ja-JP',
        'ko-KR': 'ko-KR',
        'lt-LT': 'lt-LT',
        'lv-LV': 'lv-LV',
        'nb-NO': 'nb-NO',
        'nl-NL': 'nl-NL',
        'pl-PL': 'pl-PL',
        'pt-BR': 'pt-BR',
        'ro-RO': 'ro-RO',
        'ru-RU': 'ru-RU',
        'sk-SK': 'sk-SK',
        'sl-SI': 'sl-SI',
        'sr-SP': 'sr-Latn-RS',
        'sv-SE': 'sv-SE',
        'tr-TR': 'tr-TR',
        'uk-UA': 'uk-UA',
        'zh-CN': 'zh-Hans-CN',
        'zh-TW': 'zh-Hant-TW'
      };
      /***/
    },
    /* 32 */

    /***/
    function (module, exports, __webpack_require__) {
      "use strict";

      Object.defineProperty(exports, "__esModule", {
        value: true
      });
      exports.default = {
        'cs': 'cs-CZ',
        'da': 'da-DK',
        'de': 'de-DE',
        'en': 'en-US',
        'es': 'es-ES',
        'fi': 'fi-FI',
        'fr': 'fr-FR',
        'it': 'it-IT',
        'ja': 'ja-JP',
        'ko': 'ko-KR',
        'nb': 'nb-NO',
        'nl': 'nl-NL',
        'pl': 'pl-PL',
        'pt': 'pt-BR',
        'ru': 'ru-RU',
        'sv': 'sv-SE',
        'tr': 'tr-TR',
        'zh-hans': 'zh-Hans-CN',
        'zh-hant': 'zh-Hant-TW'
      };
      /***/
    },
    /* 33 */

    /***/
    function (module, exports, __webpack_require__) {
      "use strict";

      Object.defineProperty(exports, "__esModule", {
        value: true
      });
      exports.default = {
        'cy-GB': 'cy-GB',
        'en-US': 'en-US',
        'de-DE': 'de-DE',
        'fr-FR': 'fr-FR',
        'es-ES': 'es-ES',
        'it-IT': 'it-IT',
        'pt-BR': 'pt-BR',
        'ja-JP': 'ja-JP',
        'ko-KR': 'ko-KR',
        'nb-NO': 'nb-NO',
        'da-DK': 'da-DK',
        'nl-NL': 'nl-NL',
        'sv-SE': 'sv-SE',
        'fi-FI': 'fi-FI',
        'zh-Hans-CN': 'zh-Hans-CN',
        'zh-Hant-TW': 'zh-Hant-TW'
      };
      /***/
    },
    /* 34 */

    /***/
    function (module, exports, __webpack_require__) {
      "use strict";

      Object.defineProperty(exports, "__esModule", {
        value: true
      });
      exports.default = {
        'bg': 'bg-BG',
        'cz': 'cs-CZ',
        'dk': 'da-DK',
        'de': 'de-DE',
        'at': 'de-AT',
        'ch_de': 'de-CH',
        'lu_de': 'de-LU',
        'gr_en': 'el-GR',
        'cy_en': 'el-CY',
        'us': 'en-US',
        'be_en': 'en-BE',
        'ca': 'en-CA',
        'au': 'en-AU',
        'uk': 'en-GB',
        'ie': 'en-IE',
        'lu_en': 'en-LU',
        'nz': 'en-NZ',
        'ph': 'en-PH',
        'sg': 'en-SG',
        'es': 'es-ES',
        'ar': 'es-AR',
        'cl': 'es-CL',
        'co': 'es-CO',
        'cr': 'es-CR',
        'ec': 'es-EC',
        'gt': 'es-GT',
        'mx': 'es-MX',
        'pe': 'es-PE',
        've': 'es-VE',
        'ee': 'et-EE',
        'fi': 'fi-FI',
        'fr': 'fr-FR',
        'be_fr': 'fr-BE',
        'ca_fr': 'fr-CA',
        'ch_fr': 'fr-CH',
        'lu_fr': 'fr-LU',
        'il': 'he-IL',
        'in': 'hi-IN',
        'hu': 'hu-HU',
        'it': 'it-IT',
        'ch_it': 'it-CH',
        'jp': 'ja-JP',
        'kr': 'ko-KR',
        'lt': 'lt-LT',
        'lv': 'lv-LV',
        'mt': 'mt-MT',
        'no': 'nb-NO',
        'nl': 'nl-NL',
        'be_nl': 'nl-BE',
        'pl': 'pl-PL',
        'pt': 'pt-PT',
        'br': 'pt-BR',
        'ro': 'ro-RO',
        'ru': 'ru-RU',
        'sk': 'sk-SK',
        'si': 'sl-SI',
        'se': 'sv-SE',
        'th': 'th-TH',
        'ua': 'uk-UA',
        'tw': 'zh-Hant-TW',
        'hk': 'zh-Hant-HK'
      };
      /***/
    },
    /* 35 */

    /***/
    function (module, exports, __webpack_require__) {
      "use strict";

      Object.defineProperty(exports, "__esModule", {
        value: true
      });
      exports.default = {
        'de-DE': 'de-DE',
        'en-US': 'en-US',
        'es-ES': 'es-ES',
        'fr-FR': 'fr-FR',
        'it-IT': 'it-IT',
        'ja-JP': 'ja-JP',
        'ko-KR': 'ko-KR',
        'pt-BR': 'pt-BR',
        'ru-RU': 'ru-RU',
        'zh-CN': 'zh-Hans-CN',
        'zh-TW': 'zh-Hant-TW'
      };
      /***/
    },
    /* 36 */

    /***/
    function (module, exports, __webpack_require__) {
      "use strict";

      Object.defineProperty(exports, "__esModule", {
        value: true
      });
      exports.default = {
        'cs': 'cs-CZ',
        'da': 'da-DK',
        'de': 'de-DE',
        'en': 'en-US',
        'es': 'es-ES',
        'fi': 'fi-FI',
        'fr': 'fr-FR',
        'it': 'it-IT',
        'ja': 'ja-JP',
        'ko': 'ko-KR',
        'nb': 'nb-NO',
        'nl': 'nl-NL',
        'no': 'nb-NO',
        'pl': 'pl-PL',
        'pt': 'pt-BR',
        'ru': 'ru-RU',
        'sv': 'sv-SE',
        'tr': 'tr-TR',
        'zh-tw': 'zh-Hant-TW'
      };
      /***/
    },
    /* 37 */

    /***/
    function (module, exports, __webpack_require__) {
      "use strict";

      Object.defineProperty(exports, "__esModule", {
        value: true
      });
      exports.default = {
        'cs': 'cs-CZ',
        'da': 'da-DK',
        'de': 'de-DE',
        'en': 'en-US',
        'es': 'es-ES',
        'fi': 'fi-FI',
        'fr': 'fr-FR',
        'hu': 'hu-HU',
        'it': 'it-IT',
        'ja': 'ja-JP',
        'ko': 'ko-KR',
        'nb': 'nb-NO',
        'nl': 'nl-NL',
        'pl': 'pl-PL',
        'pt': 'pt-BR',
        'ru': 'ru-RU',
        'sv': 'sv-SE',
        'tr': 'tr-TR',
        'uk': 'uk-UA',
        'zh-Hans': 'zh-Hans-CN',
        'zh-Hant': 'zh-Hant-TW'
      };
      /***/
    },
    /* 38 */

    /***/
    function (module, exports, __webpack_require__) {
      "use strict";

      Object.defineProperty(exports, "__esModule", {
        value: true
      });
      exports.default = {
        'cs_CZ': 'cs-CZ',
        'da_DK': 'da-DK',
        'de_DE': 'de-DE',
        'de_LU': 'de-LU',
        'el_GR': 'el-GR',
        'en_US': 'en-US',
        'en_GB': 'en-GB',
        'es_ES': 'es-ES',
        'et_EE': 'et-EE',
        'fi_FI': 'fi-FI',
        'fr_FR': 'fr-FR',
        'fr_CA': 'fr-CA',
        'hu_HU': 'hu-HU',
        'it_IT': 'it-IT',
        'ja_JP': 'ja-JP',
        'ko_KR': 'ko-KR',
        'nb_NO': 'nb-NO',
        'nl_NL': 'nl-NL',
        'pl_PL': 'pl-PL',
        'pt_BR': 'pt-BR',
        'pt_PT': 'pt-PT',
        'ro_RO': 'ro-RO',
        'ru_RU': 'ru-RU',
        'sv_SE': 'sv-SE',
        'tr_TR': 'tr-TR',
        'uk_UA': 'uk-UA',
        'zh_CN': 'zh-Hans-CN',
        'zh_TW': 'zh-Hant-TW'
      };
      /***/
    },
    /* 39 */

    /***/
    function (module, exports, __webpack_require__) {
      "use strict";

      Object.defineProperty(exports, "__esModule", {
        value: true
      });
      exports.default = {
        'cs_CZ': 'cs-CZ',
        'da_DK': 'da-DK',
        'de_DE': 'de-DE',
        'en_US': 'en-US',
        'es_ES': 'es-ES',
        'fi_FI': 'fi-FI',
        'fr_FR': 'fr-FR',
        'it_IT': 'it-IT',
        'ja_JP': 'ja-JP',
        'ko_KR': 'ko-KR',
        'nb_NO': 'nb-NO',
        'nl_NL': 'nl-NL',
        'pl_PL': 'pl-PL',
        'pt_PT': 'pt-PT',
        'pt_BR': 'pt-BR',
        'ru_RU': 'ru-RU',
        'sv_SE': 'sv-SE',
        'tr_TR': 'tr-TR',
        'uk_UA': 'uk-UA',
        'zh_CN': 'zh-Hans-CN',
        'zh_TW': 'zh-Hant-TW'
      };
      /***/
    },
    /* 40 */

    /***/
    function (module, exports, __webpack_require__) {
      "use strict";

      Object.defineProperty(exports, "__esModule", {
        value: true
      });
      exports.default = {
        'cs_CZ': 'cs-CZ',
        'da_DK': 'da-DK',
        'de_DE': 'de-DE',
        'en_US': 'en-US',
        'en_AE': 'en-AE',
        'en_GB': 'en-GB',
        'en_IL': 'en-IL',
        'es_ES': 'es-ES',
        'es_MX': 'es-MX',
        'fi_FI': 'fi-FI',
        'fr_FR': 'fr-FR',
        'fr_CA': 'fr-CA',
        'fr_MA': 'fr-MA',
        'hu_HU': 'hu-HU',
        'it_IT': 'it-IT',
        'ja_JP': 'ja-JP',
        'ko_KR': 'ko-KR',
        'nb_NO': 'nb-NO',
        'nl_NL': 'nl-NL',
        'pl_PL': 'pl-PL',
        'pt_BR': 'pt-BR',
        'ru_RU': 'ru-RU',
        'sv_SE': 'sv-SE',
        'tr_TR': 'tr-TR',
        'uk_UA': 'uk-UA',
        'zh_CN': 'zh-Hans-CN',
        'zh_TW': 'zh-Hant-TW'
      };
      /***/
    },
    /* 41 */

    /***/
    function (module, exports, __webpack_require__) {
      "use strict";

      Object.defineProperty(exports, "__esModule", {
        value: true
      });
      exports.default = {
        'de-DE': 'de-DE',
        'en-US': 'en-US',
        'es-ES': 'es-ES',
        'fr-FR': 'fr-FR',
        'it-IT': 'it-IT',
        'ja-JP': 'ja-JP',
        'ko-KR': 'ko-KR',
        'pt-BR': 'pt-BR',
        'ru-RU': 'ru-RU'
      };
      /***/
    },
    /* 42 */

    /***/
    function (module, exports, __webpack_require__) {
      "use strict";

      Object.defineProperty(exports, "__esModule", {
        value: true
      });
      exports.default = {
        'au': 'en-AU',
        // English (Australia)
        'nz': 'en-NZ' // English (New Zealand)

      };
      /***/
    },
    /* 43 */

    /***/
    function (module, exports, __webpack_require__) {
      "use strict";

      Object.defineProperty(exports, "__esModule", {
        value: true
      });
      exports.default = {
        'bg': 'bg-BG',
        // Bulgarian (Bulgaria)
        'cz': 'cs-CZ',
        // Czech (Czech Republic)
        'dk': 'da-DK',
        // Danish (Denmark)
        'de': 'de-DE',
        // German (Germany)
        'at': 'de-AT',
        // German (Austria)
        'ch_de': 'de-CH',
        // German (Switzerland)
        'lu_de': 'de-LU',
        // German (Luxembourg)
        'us': 'en-US',
        // English (United States) - Default Locale
        'au': 'en-AU',
        // English (Australia)
        'be_en': 'en-BE',
        // English (Belgium)
        'ca': 'en-CA',
        // English (Canada)
        'cy_en': 'en-CY',
        // English (Cyprus)
        'uk': 'en-GB',
        // English (United Kingdom)
        'gr_en': 'en-GR',
        // English (Greece)
        'hk_en': 'en-HK',
        // English (Hong Kong)
        'ie': 'en-IE',
        // English (Ireland) 
        'lu_en': 'en-LU',
        // English (Luxembourg)
        'mt': 'en-MT',
        // English (Malta)
        'nz': 'en-NZ',
        // English (New Zealand)
        'africa': 'en-x-AFRICA',
        // English (Africa)
        'es': 'es-ES',
        // Spanish (Spain)
        'mx': 'es-MX',
        // Spanish (Mexico)
        'ee': 'et-EE',
        // Estonian (Estonia)
        'fi': 'fi-FI',
        // Finnish (Finland)
        'fr': 'fr-FR',
        // French (France)
        'be_fr': 'fr-BE',
        // French (Belgium)
        'ca_fr': 'fr-CA',
        // French (Canada)
        'ch_fr': 'fr-CH',
        // French (Switzerland)
        'lu_fr': 'fr-LU',
        // French (Luxembourg)
        'hu': 'hu-HU',
        // Hungarian (Hungary)
        'it': 'it-IT',
        // Italian (Italy)
        'ch_it': 'it-CH',
        // Italian (Switzerland)
        'jp': 'ja-JP',
        // Japanese (Japan)
        'kr': 'ko-KR',
        // Korean (Korea)
        'lt': 'lt-LT',
        // Lithuanian (Lithuania)
        'lv': 'lv-LV',
        // Latvian (Latvia)
        'no': 'nb-NO',
        // Norwegian (Norway)
        'nl': 'nl-NL',
        // Dutch (Netherlands)
        'be_nl': 'nl-BE',
        // Dutch (Belgium)
        'pl': 'pl-PL',
        // Polish (Poland)
        'pt': 'pt-PT',
        // Portuguese (Portugal)
        'br': 'pt-BR',
        // Portuguese (Brazil)
        'ro': 'ro-RO',
        // Romanian (Romania)
        'ru': 'ru-RU',
        // Russian (Russia)
        'sk': 'sk-SK',
        // Slovakian (Slovakia)
        'si': 'sl-SI',
        // Slovenian (Slovenia)
        'se': 'sv-SE',
        // Swedish (Sweden) 
        'hk_zh': 'zh-Hant-HK' // Chinese Traditional (Hong Kong)   

      };
      /***/
    },
    /* 44 */

    /***/
    function (module, exports, __webpack_require__) {
      "use strict";

      Object.defineProperty(exports, "__esModule", {
        value: true
      });
      exports.default = {
        'mena_ar': 'ar-x-MENA',
        // Arabic (Middle East and North Africa)
        'ae_ar': 'ar-AE',
        // Arabic (United Arab Emirates)
        'sa_ar': 'ar-SA',
        // Arabic (Saudi Arabia)
        'bg': 'bg-BG',
        // Bulgarian (Bulgaria)
        'cz': 'cs-CZ',
        // Czech (Czech Republic)
        'dk': 'da-DK',
        // Danish (Denmark)
        'de': 'de-DE',
        // German (Germany)
        'at': 'de-AT',
        // German (Austria)
        'ch_de': 'de-CH',
        // German (Switzerland)
        'lu_de': 'de-LU',
        // German (Luxembourg)
        'us': 'en-US',
        // English (United States) - Default Locale
        'ae_en': 'en-AE',
        // English (United Arab Emirates)
        'au': 'en-AU',
        // English (Australia)
        'be_en': 'en-BE',
        // English (Belgium)
        'ca': 'en-CA',
        // English (Canada)
        'cy_en': 'en-CY',
        // English (Cyprus)
        'uk': 'en-GB',
        // English (United Kingdom)
        'gr_en': 'en-GR',
        // English (Greece)
        'hk_en': 'en-HK',
        // English (Hong Kong)
        'ie': 'en-IE',
        // English (Ireland)
        'il_en': 'en-IL',
        // English (Israel)
        'in': 'en-IN',
        // English (India)
        'lu_en': 'en-LU',
        // English (Luxembourg)
        'mt': 'en-MT',
        // English (Malta)
        'nz': 'en-NZ',
        // English (New Zealand)
        'sa_en': 'en-SA',
        // English (Saudi Arabia)
        'sg': 'en-SG',
        // English (Singapore)
        'th_en': 'en-TH',
        // English (Thailand)
        'africa': 'en-x-AFRICA',
        // English (Africa)
        'cis_en': 'en-x-CIS',
        // English (Commonwealth of Independent States)
        'mena_en': 'en-x-MENA',
        // English (Middle East and North Africa)
        'sea': 'en-x-SEA',
        // English (Southeast Asia)
        'es': 'es-ES',
        // Spanish (Spain)
        'mx': 'es-MX',
        // Spanish (Mexico)
        'cl': 'es-CL',
        // Spanish (Chile)
        'la': 'es-x-LA',
        // Spanish (Latin America)
        'ee': 'et-EE',
        // Estonian (Estonia)
        'fi': 'fi-FI',
        // Finnish (Finland)
        'fr': 'fr-FR',
        // French (France)
        'be_fr': 'fr-BE',
        // French (Belgium)
        'ca_fr': 'fr-CA',
        // French (Canada)
        'ch_fr': 'fr-CH',
        // French (Switzerland)
        'lu_fr': 'fr-LU',
        // French (Luxembourg)
        'il_he': 'he-IL',
        // Hebrew (Israel)
        'hu': 'hu-HU',
        // Hungarian (Hungary)
        'it': 'it-IT',
        // Italian (Italy)
        'ch_it': 'it-CH',
        // Italian (Switzerland)
        'jp': 'ja-JP',
        // Japanese (Japan)
        'kr': 'ko-KR',
        // Korean (Korea)
        'lt': 'lt-LT',
        // Lithuanian (Lithuania)
        'lv': 'lv-LV',
        // Latvian (Latvia)
        'no': 'nb-NO',
        // Norwegian (Norway)
        'nl': 'nl-NL',
        // Dutch (Netherlands)
        'be_nl': 'nl-BE',
        // Dutch (Belgium)
        'pl': 'pl-PL',
        // Polish (Poland)
        'pt': 'pt-PT',
        // Portuguese (Portugal)
        'br': 'pt-BR',
        // Portuguese (Brazil)
        'ro': 'ro-RO',
        // Romanian (Romania)
        'ru': 'ru-RU',
        // Russian (Russia)
        'cis_ru': 'ru-x-CIS',
        // Russian (Commonwealth of Independent States)
        'sk': 'sk-SK',
        // Slovakian (Slovakia)
        'si': 'sl-SI',
        // Slovenian (Slovenia)
        'se': 'sv-SE',
        // Swedish (Sweden)
        'th_th': 'th-TH',
        // Thai (Thailand)
        'tr': 'tr-TR',
        // Turkish (Turkey)
        'ua': 'uk-UA',
        // Ukrainian (Ukraine)
        'cn': 'zh-Hans-CN',
        // Chinese Simplified (China)
        'tw': 'zh-Hant-TW',
        // Chinese Traditional (Taiwan) 
        'hk_zh': 'zh-Hant-HK' // Chinese Traditional (Hong Kong)   

      };
      /***/
    },
    /* 45 */

    /***/
    function (module, exports, __webpack_require__) {
      "use strict";

      Object.defineProperty(exports, "__esModule", {
        value: true
      });
      exports.default = {
        'uk': 'uk-UA',
        'pt': 'pt-BR',
        'ar-mena': 'ar-x-MENA',
        'en-africa': 'en-x-AFRICA',
        'en-cis': 'en-x-CIS',
        'en-mena': 'en-x-MENA',
        'en-sea': 'en-x-SEA',
        'es-la': 'es-x-LA',
        'ru-cis': 'ru-x-CIS',
        'zh': 'zh-Hans-CN',
        'es-419': 'es-419'
      };
      /***/
    },
    /* 46 */

    /***/
    function (module, exports, __webpack_require__) {
      "use strict";

      Object.defineProperty(exports, "__esModule", {
        value: true
      });
      exports.default = {
        'AF': [],
        // Afghanistan
        'AX': [],
        // Aland Islands
        'AL': [],
        // Albania
        'DZ': ['en', 'fr', 'ar'],
        // Algeria
        'AS': [],
        // American Samoa
        'AD': ['es', 'fr', 'pt'],
        // Andorra
        'AO': ['pt'],
        // Angola
        'AI': [],
        // Anguilla
        'AQ': ['en'],
        // Antarctica
        'AG': ['en'],
        // Antigua And Barbuda
        'AR': ['es'],
        // Argentina
        'AM': ['en', 'ru'],
        // Armenia
        'AW': [],
        // Aruba
        'AU': ['en'],
        // Australia
        'AT': ['de'],
        // Austria
        'AZ': ['en', 'ru'],
        // Azerbaijan
        'BS': ['en'],
        // Bahamas
        'BH': ['ar', 'en'],
        // Bahrain
        'BD': [],
        // Bangladesh
        'BB': ['en'],
        // Barbados
        'BY': ['ru'],
        // Belarus
        'BE': ['nl', 'en', 'fr'],
        // Belgium
        'BZ': [],
        // Belize
        'BJ': [],
        // Benin
        'BM': ['en'],
        // Bermuda
        'BT': [],
        // Bhutan
        'BO': ['es'],
        // Bolivia
        'BA': ['en'],
        // Bosnia And Herzegovina
        'BW': ['en'],
        // Botswana
        'BV': [],
        // Bouvet Island
        'BR': ['pt'],
        // Brazil
        'IO': [],
        // British Indian Ocean Territory
        'BN': ['en'],
        // Brunei Darussalam
        'BG': ['bg'],
        // Bulgaria
        'BF': [],
        // Burkina Faso
        'BI': ['en', 'fr'],
        // Burundi
        'KH': [],
        // Cambodia
        'CM': ['en', 'fr'],
        // Cameroon
        'CA': ['en', 'fr'],
        // Canada
        'CV': [],
        // Cape Verde
        'KY': ['en'],
        // Cayman Islands
        'CF': [],
        // Central African Republic
        'TD': [],
        // Chad
        'CL': ['es'],
        // Chile
        'CN': ['zh-Hans'],
        // China
        'CX': [],
        // Christmas Island
        'CC': ['en'],
        // Cocos (Keeling) Islands
        'CO': ['es'],
        // Colombia
        'KM': [],
        // Comoros
        'CG': ['en', 'fr'],
        // Congo
        'CD': ['en', 'fr'],
        // Congo, Democratic Republic
        'CK': [],
        // Cook Islands
        'CR': ['es'],
        // Costa Rica
        'CI': ['en', 'fr'],
        // Cote D'Ivoire
        'HR': ['en'],
        // Croatia
        'CU': [],
        // Cuba
        'CY': ['en'],
        // Cyprus
        'CZ': ['cs'],
        // Czech Republic
        'DK': ['da'],
        // Denmark
        'DJ': [],
        // Djibouti
        'DM': ['en'],
        // Dominica
        'DO': ['es'],
        // Dominican Republic
        'EC': ['es'],
        // Ecuador
        'EG': ['ar', 'en'],
        // Egypt
        'SV': ['es'],
        // El Salvador
        'GQ': [],
        // Equatorial Guinea
        'ER': [],
        // Eritrea
        'EE': ['et'],
        // Estonia
        'ET': [],
        // Ethiopia
        'FK': [],
        // Falkland Islands (Malvinas)
        'FO': ['da'],
        // Faroe Islands
        'FJ': [],
        // Fiji
        'FI': ['fi'],
        // Finland
        'FR': ['fr'],
        // France
        'GF': ['fr'],
        // French Guiana
        'PF': [],
        // French Polynesia
        'TF': [],
        // French Southern Territories
        'GA': [],
        // Gabon
        'GM': [],
        // Gambia
        'GE': ['en', 'ru'],
        // Georgia
        'DE': ['de'],
        // Germany
        'GH': ['en'],
        // Ghana
        'GI': [],
        // Gibraltar
        'GR': ['en'],
        // Greece
        'GL': [],
        // Greenland
        'GD': [],
        // Grenada
        'GP': ['en', 'fr'],
        // Guadeloupe
        'GU': [],
        // Guam
        'GT': ['es'],
        // Guatemala
        'GG': [],
        // Guernsey
        'GN': [],
        // Guinea
        'GW': [],
        // Guinea-Bissau
        'GY': ['en'],
        // Guyana
        'HT': ['en', 'fr'],
        // Haiti
        'HM': [],
        // Heard Island & Mcdonald Islands
        'VA': [],
        // Holy See (Vatican City State)
        'HN': ['es'],
        // Honduras
        'HK': ['en', 'zh-Hant'],
        // Hong Kong
        'HU': ['hu'],
        // Hungary
        'IS': [],
        // Iceland
        'IN': ['en'],
        // India
        'ID': ['en'],
        // Indonesia
        'IR': [],
        // Iran, Islamic Republic Of
        'IQ': ['ar'],
        // Iraq
        'IE': ['en'],
        // Ireland
        'IM': [],
        // Isle Of Man
        'IL': ['he', 'en'],
        // Israel
        'IT': ['it'],
        // Italy
        'JM': ['en'],
        // Jamaica
        'JP': ['ja'],
        // Japan
        'JE': [],
        // Jersey
        'JO': ['ar', 'en'],
        // Jordan
        'KZ': ['ru'],
        // Kazakhstan
        'KE': ['en'],
        // Kenya
        'KI': [],
        // Kiribati
        'KR': ['ko'],
        // Korea
        'KV': [],
        // Kosovo
        'KW': ['ar', 'en'],
        // Kuwait
        'KG': ['ru', 'en'],
        // Kyrgyzstan
        'LA': [],
        // Lao People\'s Democratic Republic
        'LV': ['lv'],
        // Latvia
        'LB': ['en', 'ar'],
        // Lebanon
        'LS': ['en'],
        // Lesotho
        'LR': ['en'],
        // Liberia
        'LY': ['ar'],
        // Libyan Arab Jamahiriya
        'LI': [],
        // Liechtenstein
        'LT': ['lt'],
        // Lithuania
        'LU': ['en', 'de', 'fr'],
        // Luxembourg
        'MO': ['en', 'zh-Hant'],
        // Macao
        'MK': [],
        // Macedonia
        'MG': ['en', 'fr'],
        // Madagascar
        'MW': [],
        // Malawi
        'MY': ['en'],
        // Malaysia
        'MV': [],
        // Maldives
        'ML': ['en', 'fr'],
        // Mali
        'MT': ['en'],
        // Malta
        'MH': [],
        // Marshall Islands
        'MQ': ['en', 'fr'],
        // Martinique
        'MR': ['en', 'fr'],
        // Mauritania
        'MU': ['en', 'fr'],
        // Mauritius
        'YT': ['en', 'fr'],
        // Mayotte
        'MX': ['es'],
        // Mexico
        'FM': ['en'],
        // Micronesia, Federated States Of
        'MD': ['en', 'ru'],
        // Moldova
        'MC': [],
        // Monaco
        'MN': [],
        // Mongolia
        'ME': [],
        // Montenegro
        'MS': [],
        // Montserrat
        'MA': ['en', 'fr', 'ar'],
        // Morocco
        'MZ': ['pt'],
        // Mozambique
        'MM': [],
        // Myanmar
        'NA': ['en'],
        // Namibia
        'NR': [],
        // Nauru
        'NP': [],
        // Nepal
        'NL': ['nl'],
        // Netherlands
        'AN': ['nl', 'en'],
        // Netherlands Antilles
        'NC': [],
        // New Caledonia
        'NZ': ['en'],
        // New Zealand
        'NI': ['es'],
        // Nicaragua
        'NE': ['en', 'fr'],
        // Niger
        'NG': ['en'],
        // Nigeria
        'NU': [],
        // Niue
        'NF': [],
        // Norfolk Island
        'MP': ['en'],
        // Northern Mariana Islands
        'NO': ['nb'],
        // Norway
        'OM': ['ar', 'en'],
        // Oman
        'PK': ['en'],
        // Pakistan
        'PW': [],
        // Palau
        'PS': [],
        // Palestinian Territory, Occupied
        'PA': ['es'],
        // Panama
        'PG': [],
        // Papua New Guinea
        'PY': ['es'],
        // Paraguay
        'PE': ['es'],
        // Peru
        'PH': ['en'],
        // Philippines
        'PN': [],
        // Pitcairn
        'PL': ['pl'],
        // Poland
        'PT': ['pt'],
        // Portugal
        'PR': ['es'],
        // Puerto Rico
        'QA': ['ar', 'en'],
        // Qatar
        'RE': [],
        // Reunion
        'RO': ['ro'],
        // Romania
        'RU': ['ru'],
        // Russian Federation
        'RW': [],
        // Rwanda
        'BL': [],
        // Saint Barthelemy
        'SH': [],
        // Saint Helena
        'KN': ['en'],
        // Saint Kitts And Nevis
        'LC': ['en'],
        // Saint Lucia
        'MF': [],
        // Saint Martin
        'PM': [],
        // Saint Pierre And Miquelon
        'VC': ['pt'],
        // Saint Vincent And Grenadines
        'WS': [],
        // Samoa
        'SM': [],
        // San Marino
        'ST': [],
        // Sao Tome And Principe
        'SA': ['ar', 'en'],
        // Saudi Arabia
        'SN': ['en', 'fr'],
        // Senegal
        'RS': ['rs'],
        // Serbia
        'SC': [],
        // Seychelles
        'SL': [],
        // Sierra Leone
        'SG': ['en'],
        // Singapore
        'SK': ['sk'],
        // Slovakia
        'SI': ['sl'],
        // Slovenia
        'SB': [],
        // Solomon Islands
        'SO': [],
        // Somalia
        'ZA': ['en'],
        // South Africa
        'GS': [],
        // South Georgia And Sandwich Isl.
        'ES': ['es'],
        // Spain
        'LK': ['en'],
        // Sri Lanka
        'SD': [],
        // Sudan
        'SR': ['nl'],
        // Suriname
        'SJ': [],
        // Svalbard And Jan Mayen
        'SZ': [],
        // Swaziland
        'SE': ['sv'],
        // Sweden
        'CH': ['de', 'fr', 'it'],
        // Switzerland
        'SY': [],
        // Syrian Arab Republic
        'TW': ['zh-Hant'],
        // Taiwan
        'TJ': ['ru', 'en'],
        // Tajikistan
        'TZ': ['en'],
        // Tanzania
        'TH': ['en'],
        // Thailand
        'TL': [],
        // Timor-Leste
        'TG': [],
        // Togo
        'TK': [],
        // Tokelau
        'TO': [],
        // Tonga
        'TT': ['en'],
        // Trinidad And Tobago
        'TN': ['en', 'fr', 'ar'],
        // Tunisia
        'TR': ['tr'],
        // Turkey
        'TM': ['en', 'ru'],
        // Turkmenistan
        'TC': ['en'],
        // Turks And Caicos Islands
        'TV': [],
        // Tuvalu
        'UG': ['en'],
        // Uganda
        'UA': ['uk'],
        // Ukraine
        'AE': ['en', 'ar'],
        // United Arab Emirates
        'GB': ['en'],
        // United Kingdom
        'US': ['en'],
        // United States
        'UM': [],
        // United States Outlying Islands
        'UY': ['es'],
        // Uruguay
        'UZ': ['ru', 'en'],
        // Uzbekistan
        'VU': [],
        // Vanuatu
        'VE': ['es'],
        // Venezuela
        'VN': ['en'],
        // Viet Nam
        'VG': ['en'],
        // Virgin Islands, British
        'VI': [],
        // Virgin Islands, U.S.
        'WF': [],
        // Wallis And Futuna
        'EH': [],
        // Western Sahara
        'YE': ['en', 'ar'],
        // Yemen
        'ZM': ['en'],
        // Zambia
        'ZW': ['en'] // Zimbabwe

      };
      /***/
    },
    /* 47 */

    /***/
    function (module, exports, __webpack_require__) {
      "use strict";

      Object.defineProperty(exports, "__esModule", {
        value: true
      });

      var _locales = __webpack_require__(2);

      var locales = _interopRequireWildcard(_locales);

      function _interopRequireWildcard(obj) {
        if (obj && obj.__esModule) {
          return obj;
        } else {
          var newObj = {};

          if (obj != null) {
            for (var key in obj) {
              if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];
            }
          }

          newObj.default = obj;
          return newObj;
        }
      }
      /*
       * @param {string} app - app code. For a complete apps code, see https://git.corp.adobe.com/intl/adobe-locales#supported-apps
       * @returns {array} app supported locale codes. Returns undefined if passed locale is not supported in the app. 
       */


      var getAppLocales = function getAppLocales(app) {
        return locales[app] && Object.keys(locales[app]);
      };
      /*************************************************************************
      * ADOBE CONFIDENTIAL
      * ___________________
      *
      *  Copyright 2018 Adobe Systems Incorporated
      *  All Rights Reserved.
      *
      * NOTICE:  All information contained herein is, and remains
      * the property of Adobe Systems Incorporated and its suppliers,
      * if any.  The intellectual and technical concepts contained
      * herein are proprietary to Adobe Systems Incorporated and its
      * suppliers and are protected by all applicable intellectual property
      * laws, including trade secret and copyright laws.
      * Dissemination of this information or reproduction of this material
      * is strictly forbidden unless prior written permission is obtained
      * from Adobe Systems Incorporated.
      **************************************************************************/


      exports.default = getAppLocales;
      /***/
    },
    /* 48 */

    /***/
    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;
      };
      /***/

    },
    /* 49 */

    /***/
    function (module, exports, __webpack_require__) {
      "use strict";

      Object.defineProperty(exports, "__esModule", {
        value: true
      });

      var _getLocalizedURL = __webpack_require__(5);

      var _getLocalizedURL2 = _interopRequireDefault(_getLocalizedURL);

      var _getAppLocaleFromIMS2 = __webpack_require__(4);

      var _getAppLocaleFromIMS3 = _interopRequireDefault(_getAppLocaleFromIMS2);

      var _utils = __webpack_require__(0);

      function _interopRequireDefault(obj) {
        return obj && obj.__esModule ? obj : {
          default: obj
        };
      }
      /*
       * @param {string} url - the destination app url
       * @param {string} locale - locale you want to pass, it doesn not have to be the one destination app uses.
       * @param {string} imsCountryCode - two-character IMS country code
       * @returns {{url: string, match: boolean}}
       */


      var getLocalizedURLFromIMS = function getLocalizedURLFromIMS(url, locale, imsCountryCode) {
        var app = (0, _utils.getAppNameFromURL)(url);

        var _getAppLocaleFromIMS = (0, _getAppLocaleFromIMS3.default)(app, locale, imsCountryCode),
            newLocale = _getAppLocaleFromIMS.locale,
            match = _getAppLocaleFromIMS.match;

        return {
          match: match,
          url: (0, _getLocalizedURL2.default)(url, newLocale)
        };
      };
      /*************************************************************************
      * ADOBE CONFIDENTIAL
      * ___________________
      *
      *  Copyright 2018 Adobe Systems Incorporated
      *  All Rights Reserved.
      *
      * NOTICE:  All information contained herein is, and remains
      * the property of Adobe Systems Incorporated and its suppliers,
      * if any.  The intellectual and technical concepts contained
      * herein are proprietary to Adobe Systems Incorporated and its
      * suppliers and are protected by all applicable intellectual property
      * laws, including trade secret and copyright laws.
      * Dissemination of this information or reproduction of this material
      * is strictly forbidden unless prior written permission is obtained
      * from Adobe Systems Incorporated.
      **************************************************************************/


      exports.default = getLocalizedURLFromIMS;
      /***/
    },
    /* 50 */

    /***/
    function (module, exports, __webpack_require__) {
      "use strict";

      Object.defineProperty(exports, "__esModule", {
        value: true
      });

      var _getAppLocale = __webpack_require__(1);

      var _getAppLocale2 = _interopRequireDefault(_getAppLocale);

      var _utils = __webpack_require__(0);

      var _apps = __webpack_require__(3);

      function _interopRequireDefault(obj) {
        return obj && obj.__esModule ? obj : {
          default: obj
        };
      }
      /*
       * @param {string} url - app url
       * @returns {string} locale name the app uses. Returns '' if no valid locale found
       */


      var parseLocaleParam = function parseLocaleParam(url) {
        var locale = void 0;

        if (typeof url === 'string') {
          var app = (0, _utils.getAppNameFromURL)(url);

          if (app) {
            // Adobe Account uses 'lang=xx' parameter
            var paramName = _apps.langParamApp.includes(app) ? 'lang' : 'locale';
            var regex = new RegExp('(' + paramName + '=)(.*?)(?=&|$)');
            locale = (url.match(regex) || [])[2] || '';
            locale = (0, _getAppLocale2.default)(app, locale, 'en-US');
          }
        }

        return locale;
      };
      /*************************************************************************
      * ADOBE CONFIDENTIAL
      * ___________________
      *
      *  Copyright 2018 Adobe Systems Incorporated
      *  All Rights Reserved.
      *
      * NOTICE:  All information contained herein is, and remains
      * the property of Adobe Systems Incorporated and its suppliers,
      * if any.  The intellectual and technical concepts contained
      * herein are proprietary to Adobe Systems Incorporated and its
      * suppliers and are protected by all applicable intellectual property
      * laws, including trade secret and copyright laws.
      * Dissemination of this information or reproduction of this material
      * is strictly forbidden unless prior written permission is obtained
      * from Adobe Systems Incorporated.
      **************************************************************************/


      exports.default = parseLocaleParam;
      /***/
    }
    /******/
    ])
  );
});

/***/ }),

/***/ "zTWf":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// EXPORTS
__webpack_require__.d(__webpack_exports__, "a", function() { return /* reexport */ Job_Job; });
__webpack_require__.d(__webpack_exports__, "b", function() { return /* reexport */ JobMonitor_JobMonitor; });
__webpack_require__.d(__webpack_exports__, "c", function() { return /* reexport */ JobQueue_JobQueue; });

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/utils/EventEmitter.ts
var EventEmitter = __webpack_require__("/XAQ");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/utils/JobMonitor/Job.ts
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/

class Job_Job extends EventEmitter["a" /* default */] {
    constructor(promise, items = []) {
        super();
        this.state = 'pending';
        this.items = items;
        this.promise = promise;
        this.bindPromise();
    }
    bindPromise() {
        this.promise.then(value => {
            this.result = value;
            this.state = 'completed';
            this.emit(this.state, this);
            return value;
        }, error => {
            this.result = error;
            this.state = 'error';
            this.emit(this.state, this);
            return error;
        });
    }
}

// EXTERNAL MODULE: ./node_modules/@ccx/projects/src/stores/Settings.ts
var Settings = __webpack_require__("5u1M");

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/utils/JobMonitor/JobQueue.ts
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/


class JobQueue_JobQueue extends EventEmitter["a" /* default */] {
    constructor(uiDataGetter) {
        super();
        this.jobs = new Set();
        this.state = 'pending';
        this.uiDataGetter = uiDataGetter;
    }
    updateQueueState() {
        if (Array.from(this.jobs).some(job => job.state === 'error')) {
            this.state = 'error';
        }
        else {
            this.state = Array.from(this.jobs).every(job => job.state === 'completed')
                ? 'completed'
                : 'pending';
        }
    }
    handleJobCompleted() {
        this.updateQueueState();
        if (this.state === 'completed') {
            this.emit('completed', this);
        }
    }
    handleJobErrored() {
        this.updateQueueState();
        this.emit('error', this);
    }
    get uiData() {
        const args = [];
        const items = Array.from(this.jobs).reduce((acc, job) => acc.concat(job.items), []);
        args.push(items);
        if (['completed', 'error'].includes(this.state)) {
            args.push(Array.from(this.jobs).reduce((acc, job) => acc.concat(job.result), []));
        }
        try {
            // If single data getter handler fn
            if (typeof this.uiDataGetter === 'function') {
                return this.uiDataGetter(this.state, ...args);
            }
            // If hash map of data getters
            if (this.state in this.uiDataGetter) {
                return this.uiDataGetter[this.state](...args);
            }
        }
        catch (err) {
            Settings["b" /* settings */].logger.error(err);
        }
        return {
            message: '',
        };
    }
    add(job) {
        this.jobs.add(job);
        job.on('completed', this.handleJobCompleted.bind(this));
        job.on('error', this.handleJobErrored.bind(this));
        this.updateQueueState();
    }
    clear() {
        for (let job of this.jobs) {
            this.delete(job);
        }
    }
    delete(job) {
        this.jobs.delete(job);
        job.off('completed');
        job.off('error');
        this.updateQueueState();
    }
}

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/utils/JobMonitor/JobMonitor.ts
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/

class JobMonitor_JobMonitor extends EventEmitter["a" /* default */] {
    constructor() {
        super();
        this.queues = new Map();
        this.state = 'pending';
        this.updateMonitorState();
    }
    cleanup() {
        for (let key of this.queues.keys()) {
            this.delete(key);
        }
    }
    updateMonitorState() {
        const allDone = Array.from(this.queues.values()).every(queue => queue.state === 'completed' || queue.state === 'error');
        this.state = allDone ? 'completed' : 'pending';
    }
    handleQueueComplete(queue) {
        this.updateMonitorState();
        this.emit('completed', queue);
        if (this.state === 'completed') {
            this.cleanup();
        }
    }
    handleQueueError(queue) {
        this.updateMonitorState();
        this.emit('error', queue);
        if (this.state === 'completed') {
            this.cleanup();
        }
    }
    add(type, queue) {
        let nextQueue;
        const prevQueue = this.queues.get(type);
        if (prevQueue === null || prevQueue === void 0 ? void 0 : prevQueue.jobs.size) {
            // Merge with previous queue
            nextQueue = prevQueue;
            queue.jobs.forEach(job => nextQueue.add(job));
        }
        else {
            nextQueue = queue;
            nextQueue.on('completed', completedQueue => this.handleQueueComplete(completedQueue));
            nextQueue.on('error', error => this.handleQueueError(error));
        }
        this.queues.set(type, nextQueue);
        this.updateMonitorState();
        this.emit('added', nextQueue);
    }
    delete(type) {
        const queue = this.queues.get(type);
        if (queue) {
            queue.off('completed');
            queue.off('error');
            this.queues.delete(type);
            this.updateMonitorState();
        }
    }
}

// CONCATENATED MODULE: ./node_modules/@ccx/projects/src/utils/JobMonitor/index.ts
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2021 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/






/***/ }),

/***/ "zTix":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _extends = Object.assign || function (target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = arguments[i];

    for (var key in source) {
      if (Object.prototype.hasOwnProperty.call(source, key)) {
        target[key] = source[key];
      }
    }
  }

  return target;
};

var _Icon = __webpack_require__("trqI");

var _Icon2 = _interopRequireDefault(_Icon);

var _react = __webpack_require__("q1tI");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

var WrappedIcon = function WrappedIcon(props) {
  return _react2.default.createElement(_Icon2.default, _extends({}, props, {
    icon: {
      18: __webpack_require__("Eo+2"),
      24: __webpack_require__("mQAy")
    }
  }));
};

WrappedIcon.displayName = 'DocumentOutline';
exports.default = WrappedIcon;

/***/ }),

/***/ "zWgm":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("2vnA");
/* harmony import */ var _iaw_localstorage__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("p789");
/* harmony import */ var src_applications__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("3UBC");
/* harmony import */ var _stores_MainStore__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("cCFZ");
/* harmony import */ var src_components_start_performance__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("r1jx");
/* harmony import */ var _LoggerWrapper_Logger__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("43WE");
/* harmony import */ var _js_iaw_VulcanAPI__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("9PyL");
/* harmony import */ var _components_helpers_DisposerManager__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("JdbT");
/*************************************************************************
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2019 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 **************************************************************************/
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;
};
var __metadata = (undefined && undefined.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};








const SETTINGS_KEY = 'Settings';
/**
 * Manages synchronization of settings with the CCXProcess
 * and local storage
 */
class SharedSettings {
    constructor() {
        this._logger = _LoggerWrapper_Logger__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"].get('SharedSettings');
        this._vulcan = Object(_js_iaw_VulcanAPI__WEBPACK_IMPORTED_MODULE_6__[/* vulcanAPI */ "a"])();
        this._disposerManager = new _components_helpers_DisposerManager__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"]();
        this._settings = {};
        this.ready = false;
    }
    async init() {
        this.ready = false;
        // Wait for user to be ready.
        await Object(mobx__WEBPACK_IMPORTED_MODULE_0__[/* when */ "I"])(() => _stores_MainStore__WEBPACK_IMPORTED_MODULE_3__["mainStore"].user.isUserAvailable || _stores_MainStore__WEBPACK_IMPORTED_MODULE_3__["mainStore"].user.isFRL);
        // Add settings change listeners
        this.addSettingsResponseListener();
        this.addSettingsPatchListener();
        if (_stores_MainStore__WEBPACK_IMPORTED_MODULE_3__["mainStore"].user.isFRL) {
            return;
        }
        // Restore from local storage
        this._settings = _iaw_localstorage__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].getUserItem(SETTINGS_KEY) || {};
        // Make request
        this.makeSettingsRequest();
        this._disposerManager.register(Object(mobx__WEBPACK_IMPORTED_MODULE_0__[/* observe */ "A"])(_stores_MainStore__WEBPACK_IMPORTED_MODULE_3__["mainStore"].user.UserProfile, 'userId', () => {
            this.init();
        }), 'userIdObserve');
    }
    /**
     * Sets shared settings and forwards to the process.
     *
     * @param type The type of the setting
     * @param key The key to set
     * @param value The value for the key
     */
    set(type, key, value) {
        const data = this._settings[type] || {};
        if (data[key] === value) {
            return;
        }
        data[key] = value;
        // Update in RAM.
        this._settings[type] = data;
        // Serialize to local storage
        _iaw_localstorage__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].setUserItem(SETTINGS_KEY, this._settings);
        // Inform the process
        this._vulcan.dispatch({
            type: 'ccxprocess.StartSettingsRequest',
            data: {
                settings: {
                    [`${type}`]: {
                        [`${key}`]: value,
                    },
                },
                productCode: src_applications__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].id,
                productVersion: src_applications__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].version,
                userId: _stores_MainStore__WEBPACK_IMPORTED_MODULE_3__["mainStore"].user.UserProfile.userId,
            },
        });
    }
    /**
     * Gets shared setting
     * @observable
     * @param type Type container for the setting
     * @param key Key for the setting
     */
    get(type, key) {
        return this._settings[type] && this._settings[type][key];
    }
    patch(map) {
        if (map) {
            if (map.lastModified && map.lastModified.length > 0) {
                this._settings.lastModified = map.lastModified;
            }
            delete map.lastModified;
            for (const type in map) {
                if (!this._settings[type]) {
                    this._settings[type] = {};
                }
                for (const key in map[type]) {
                    this._settings[type][key] = map[type][key];
                }
            }
            _iaw_localstorage__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"].setUserItem(SETTINGS_KEY, this._settings);
        }
        this.ready = true;
    }
    /**
     * Listen to settings changes by other open apps.
     */
    addSettingsPatchListener() {
        this._vulcan.on('ccxprocess.StartSettingsPatchUpdate', data => {
            this._logger.log('Patch received', data);
            if (_stores_MainStore__WEBPACK_IMPORTED_MODULE_3__["mainStore"].user.UserProfile.userId === data.userId) {
                this.patch(data.settings);
            }
        });
    }
    makeSettingsRequest() {
        this._logger.log('Making Settings Request');
        this._vulcan.dispatch({
            type: 'ccxprocess.StartSettingsGetRequest',
            data: {
                settings: {},
                productCode: src_applications__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].id,
                productVersion: src_applications__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].version,
                countryCode: _stores_MainStore__WEBPACK_IMPORTED_MODULE_3__["mainStore"].user.UserProfile.countryCode,
                userId: _stores_MainStore__WEBPACK_IMPORTED_MODULE_3__["mainStore"].user.UserProfile.userId,
                ccxVersion: window.appVersionNumber,
            },
        });
    }
    addSettingsResponseListener() {
        this._vulcan.on('ccxprocess.StartSettingsGetResponse', data => {
            this._logger.log('Received Settings Get Response');
            if (_stores_MainStore__WEBPACK_IMPORTED_MODULE_3__["mainStore"].user.UserProfile.userId === data.userId) {
                this.patch(data.settings);
            }
        });
        this._vulcan.on('ccxprocess.StartSettingsPatchUpdate', data => {
            this._logger.log('Received Settings Patch Response');
            if (_stores_MainStore__WEBPACK_IMPORTED_MODULE_3__["mainStore"].user.UserProfile.userId === data.userId) {
                this.patch(data.settings);
            }
        });
    }
}
__decorate([
    Object(src_components_start_performance__WEBPACK_IMPORTED_MODULE_4__[/* Time */ "b"])('Shared Settings Init'),
    __metadata("design:type", Function),
    __metadata("design:paramtypes", []),
    __metadata("design:returntype", Promise)
], SharedSettings.prototype, "init", null);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", Object)
], SharedSettings.prototype, "_settings", void 0);
__decorate([
    mobx__WEBPACK_IMPORTED_MODULE_0__[/* observable */ "z"],
    __metadata("design:type", Boolean)
], SharedSettings.prototype, "ready", void 0);
/* harmony default export */ __webpack_exports__["a"] = (new SharedSettings());


/***/ }),

/***/ "zXhZ":
/***/ (function(module, exports, __webpack_require__) {

var anObject = __webpack_require__("5K7Z");

var isObject = __webpack_require__("93I4");

var newPromiseCapability = __webpack_require__("ZW5q");

module.exports = function (C, x) {
  anObject(C);
  if (isObject(x) && x.constructor === C) return x;
  var promiseCapability = newPromiseCapability.f(C);
  var resolve = promiseCapability.resolve;
  resolve(x);
  return promiseCapability.promise;
};

/***/ }),

/***/ "zZ0H":
/***/ (function(module, exports) {

/**
 * This method returns the first argument it receives.
 *
 * @static
 * @since 0.1.0
 * @memberOf _
 * @category Util
 * @param {*} value Any value.
 * @returns {*} Returns `value`.
 * @example
 *
 * var object = { 'a': 1 };
 *
 * console.log(_.identity(object) === object);
 * // => true
 */
function identity(value) {
  return value;
}

module.exports = identity;

/***/ }),

/***/ "zZGF":
/***/ (function(module) {

module.exports = JSON.parse("{\"1.3.132.0.10\":\"secp256k1\",\"1.3.132.0.33\":\"p224\",\"1.2.840.10045.3.1.1\":\"p192\",\"1.2.840.10045.3.1.7\":\"p256\",\"1.3.132.0.34\":\"p384\",\"1.3.132.0.35\":\"p521\"}");

/***/ }),

/***/ "zapQ":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 48 48"
}, React.createElement("path", {
  d: "M35.314 8.444L24 19.757 12.686 8.444a1 1 0 0 0-1.414 0l-2.828 2.828a1 1 0 0 0 0 1.414L19.757 24 8.444 35.314a1 1 0 0 0 0 1.414l2.828 2.828a1 1 0 0 0 1.414 0L24 28.243l11.314 11.313a1 1 0 0 0 1.414 0l2.828-2.828a1 1 0 0 0 0-1.414L28.243 24l11.313-11.314a1 1 0 0 0 0-1.414l-2.828-2.828a1 1 0 0 0-1.414 0z"
}));

/***/ }),

/***/ "zjuh":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});

var _createClass = function () {
  function defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i];
      descriptor.enumerable = descriptor.enumerable || false;
      descriptor.configurable = true;
      if ("value" in descriptor) descriptor.writable = true;
      Object.defineProperty(target, descriptor.key, descriptor);
    }
  }

  return function (Constructor, protoProps, staticProps) {
    if (protoProps) defineProperties(Constructor.prototype, protoProps);
    if (staticProps) defineProperties(Constructor, staticProps);
    return Constructor;
  };
}();

var _DAO2 = __webpack_require__("io2S");

var _DAO3 = _interopRequireDefault(_DAO2);

var _utils = __webpack_require__("VKd2");

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

function _classCallCheck(instance, Constructor) {
  if (!(instance instanceof Constructor)) {
    throw new TypeError("Cannot call a class as a function");
  }
}

function _possibleConstructorReturn(self, call) {
  if (!self) {
    throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
  }

  return call && (typeof call === "object" || typeof call === "function") ? call : self;
}

function _inherits(subClass, superClass) {
  if (typeof superClass !== "function" && superClass !== null) {
    throw new TypeError("Super expression must either be null or a function, not " + typeof superClass);
  }

  subClass.prototype = Object.create(superClass && superClass.prototype, {
    constructor: {
      value: subClass,
      enumerable: false,
      writable: true,
      configurable: true
    }
  });
  if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;
}
/**
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 * Copyright 2018 Adobe
 * All Rights Reserved.
 *
 * NOTICE: All information contained herein is, and remains
 * the property of Adobe and its suppliers, if any. The intellectual
 * and technical concepts contained herein are proprietary to Adobe
 * and its suppliers and are protected by all applicable intellectual
 * property laws, including trade secret and copyright laws.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe.
 */


var InstanceConfig = {};

var InvitationService = function (_DAO) {
  _inherits(InvitationService, _DAO);

  function InvitationService() {
    _classCallCheck(this, InvitationService);

    return _possibleConstructorReturn(this, (InvitationService.__proto__ || Object.getPrototypeOf(InvitationService)).apply(this, arguments));
  }

  _createClass(InvitationService, [{
    key: 'deleteInvitations',

    /**
     * Delete an invitation
     * @param {String} inviteId - id of the invitation
     * @returns {Promise} A Promise that deletes an invitation
     */
    value: function deleteInvitations(inviteId) {
      var encodedRequestURI = '/invitations/' + encodeURIComponent(inviteId);
      var url = '' + this._endpoint + uri + '/' + resourceId;
      return this.deleteRequest({
        url: url
      });
    }
    /**
     * Create an invitation
     * @param {Object} request - {
     *   @property {String} resourceUrl - CC Storage path (path based or ID-based)
     *   @property {Array} recipients - Array of type recipient. The type recipient is composed of the following properties
     *      recipient - is a string which can be of two types:
     *          Email Address:  The valid format for email address is mailto:{emailAddress}
     *          Address Book Entry: Address Book entries can be of two types
     *            1) Address Book Contact: The valid format for an Address Book Contact is an urn string with format- urn:ab:contact:{AddressBookID}-{ContactID}
     *            2) Address Book Group: The valid format for an Address Book Group is an urn string with format- urn:ab:group:{AddressBookID}-{ContactID}
     *   @property {String} role - Role to be assigned to the recipients.
     *   @property {String} useMounts - Specifies if a mount (aka mount point) to the resource needs to be created for the invitee. This value cannot be TRUE when acceptanceRequired is FALSE
     *   @property {String} acceptanceRequired - Specifies if the invitee needs to accept the invitation to collaborate on the resource. When acceptanceRequired is FALSE, the invitee is added as a collaborator on the resource.
     *   @property {Object} ansNotification - (Optional - {} to send ANS notification, null to not send ANS notification
     *   @property {Object} emailNotification - (Optional - Required if acceptanceRequired is FALSE)
     *      This parameter is a map of Key = notifType (string) and Value = emailTemplate (object)
     *      There are three possible values for the key in the map:
     *      a) acceptance: Email notification when acceptanceRequired is set to TRUE
     *      b) sharing: Email notification when acceptanceRequired is set to FALSE
     *      c) response: (PHASE 2) Email template that will be used to construct the forwarded invitation request for access response email message.
     *                             The template should have conditional parameters so that it can handle both accepted and rejected scenarios.
     *      emailTemplate contains the following template information used to construct the email:
     *        templateName (Required): ID of template registered with APO (Adobe Post Office)
     *        locale (Required): Specifies the locale to be used to select the appropriate template. It is provided in the form of a language code and country code (e.g., “EN_US”)
     *        parameters (Optional): User provided map of key-value pairs needed to construct the template. The list of predefined parameters will be set in the template.
     *   @property {String} message - (Optional) A custom message for the inviter to add to the invite notification. The corresponding email param is Param_Custom_Message.
     *   @property {String} resourceViewUrl - (Optional) A custom message for the inviter to add to the invite notification. The corresponding email param is Param_Custom_Message.
     *   @property {String} captcha - (Optional) This parameter includes the following properties:
     *                   userResponse: (Optional) recaptcha User Response
     *                   siteKey:(Optional) recaptcha Site Key
     * }
     *
     * @return {Promise} A Promise that invites the list of recipients
     *
     * @example
     *  request: {
     *    resourceUrl: "https://cc-api-storage-stage.adobe.io/id/urn:aaid:sc:US:86633ca9-1c6b-4e03-bfa1-3f7c79a6d8f3",
     *    recipients: [
     *      "recipient": "mailto:user@adobe.com",
     *      "recipient": "urn:ab:contact:Address_Book_ABCD:123456",
     *      "recipient": "urn:ab:group:Address_Book_ABCD:123",
     *    ],
     *    role: "editor",
     *    useMounts: true,
     *    acceptanceRequired: true,
     *    ansNotification: {},
     *    emailNotification: {
     *      "acceptance": {
     *        "templateName": "template_name_123",
     *        "parameters": {
     *          "key1": "value1",
     *          "key2": "value2",
     *          "key3": "value3"
     *        },
     *        "locale": "EN_US"
     *      },
     *      "sharing": {
     *        "templateName": "template_name_123",
     *        "parameters": {
     *          "key1": "value1",
     *          "key2": "value2",
     *          "key3": "value3"
     *        },
     *        "locale": "EN_US"
     *      }
     *    },
     *    message : "this is a comment",
     *    captcha: {
     *      "userResponse": "CAPTCHA_USER_RESPONSE_TOKEN",
     *      "siteKey": "CAPTCHA_SITE_KEY"
     *    }
     *  }
     */

  }, {
    key: 'create',
    value: function create() {
      var request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
      var url = this._endpoint + '/invitations';
      var resourceUrl = request.resourceUrl,
          recipients = request.recipients,
          role = request.role,
          useMounts = request.useMounts,
          acceptanceRequired = request.acceptanceRequired,
          ansNotification = request.ansNotification,
          emailNotification = request.emailNotification,
          message = request.message,
          recaptcha = request.recaptcha,
          resourceViewUrl = request.resourceViewUrl;
      var notification = {
        ans: ansNotification,
        email: emailNotification,
        parameters: {
          message: message,
          resourceViewUrl: resourceViewUrl
        }
      };
      var params = {
        acceptanceRequired: acceptanceRequired,
        captcha: recaptcha,
        notification: notification,
        recipients: recipients,
        resourceUrl: resourceUrl,
        role: role,
        useMounts: useMounts
      };
      return this.postRequest({
        url: url,
        params: params
      });
    }
    /**
     * Update an invitation
     * @param {String} inviteId - id of the invitation
     * @param {String} role - New role to be assigned to the invitee
     * @returns {Promise} A Promise that updates an invitation
     */

  }, {
    key: 'update',
    value: function update(inviteId, role) {
      if (inviteId && role && inviteId.trim() !== '' && role.trim() !== '') {
        var body = {
          role: role
        };
        return Client.instance.fetch('invitations.update', '/invitations/' + inviteId, 'PUT', body);
      }
    }
    /**
     * Delete an invitation
     * @param {String} inviteId - id of the invitation
     * @returns {Promise} A Promise that deletes an invitation
     */

  }, {
    key: 'delete',
    value: function _delete(inviteId) {
      if (inviteId && inviteId.trim() !== '') {
        var encodedRequestURI = '/invitations/' + encodeURIComponent(inviteId);
        return Client.instance.fetch('invitations.delete', encodedRequestURI, 'DELETE');
      }
    }
    /**
     * Get invitation capabilities for a user
     * @param {String} value - the capability we're looking for
     * @returns {Promise} A Promise that returns a response which headers contain user invitation capabilities
     */

  }, {
    key: 'getCapabilities',
    value: function getCapabilities() {
      var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'customization';
      var url = this._endpoint + '/invitations';
      var params = {
        capability: value
      };
      return this.headRequest({
        url: url,
        params: params
      }); // eturn Client.instance.fetch('invitations.getCapabilities', '/invitations?capability='+value, 'HEAD');
    }
    /**
     * SDK method that parses and determines if invite is disabled, or if UGC (adding messages) to invite creation is disabled.
     * @returns {String} One of the following values: UGC_ENABLED, UGC_DISABLED, INVITE_DISABLED
     */

  }, {
    key: 'getInviteCapability',
    value: function getInviteCapability() {
      return this.getCapabilities('customization').then(function (response) {
        if (response.status == 403) {
          return 'INVITE_DISABLED';
        } else if (response.headers && response.headers.get('x-customization') === false) {
          return 'UGC_DISABLED';
        }

        return 'UGC_ENABLED';
      }).catch(function (error) {
        // Return enabled if call failed.
        return 'UGC_ENABLED';
      });
    }
  }, {
    key: 'sendVerificationEmail',
    value: function sendVerificationEmail(url) {
      return this.getRequest({
        url: url
      });
    }
  }]);

  return InvitationService;
}(_DAO3.default);

exports.default = (0, _utils.InstanceCreator)(InvitationService, InstanceConfig);
module.exports = exports['default'];

/***/ }),

/***/ "zn7N":
/***/ (function(module, exports, __webpack_require__) {

// most Object methods by ES6 should accept primitives
var $export = __webpack_require__("Y7ZC");

var core = __webpack_require__("WEpk");

var fails = __webpack_require__("KUxP");

module.exports = function (KEY, exec) {
  var fn = (core.Object || {})[KEY] || Object[KEY];
  var exp = {};
  exp[KEY] = exec(fn);
  $export($export.S + $export.F * fails(function () {
    fn(1);
  }), 'Object', exp);
};

/***/ }),

/***/ "zoNf":
/***/ (function(module) {

module.exports = JSON.parse("{\"File\":\"Plik\",\"Folder\":\"Folder\"}");

/***/ }),

/***/ "zpOJ":
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
var ProjectAction;
(function (ProjectAction) {
    ProjectAction["editSpace"] = "edit-space";
    ProjectAction["showProjectInfo"] = "show-project-info";
    ProjectAction["leave"] = "leave";
    ProjectAction["archive"] = "archive";
    ProjectAction["follow"] = "follow";
    ProjectAction["unfollow"] = "unfollow";
    ProjectAction["move"] = "move";
})(ProjectAction || (ProjectAction = {}));
/* harmony default export */ __webpack_exports__["a"] = (ProjectAction);


/***/ }),

/***/ "zvRM":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = UxpFieldLabel;

var _Asterisk = _interopRequireDefault(__webpack_require__("2zgN"));

var _classnames = _interopRequireDefault(__webpack_require__("TSYQ"));

var _intl = __webpack_require__("Lpon");

var _propTypes = _interopRequireDefault(__webpack_require__("17x9"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

var _UxpLabelBase = _interopRequireDefault(__webpack_require__("7oBp"));

__webpack_require__("zImf");

const _excluded = ["label", "position", "children", "className", "labelFor", "necessity", "necessityIndicator"];

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _objectWithoutProperties(source, excluded) {
  if (source == null) return {};

  var target = _objectWithoutPropertiesLoose(source, excluded);

  var key, i;

  if (Object.getOwnPropertySymbols) {
    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);

    for (i = 0; i < sourceSymbolKeys.length; i++) {
      key = sourceSymbolKeys[i];
      if (excluded.indexOf(key) >= 0) continue;
      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
      target[key] = source[key];
    }
  }

  return target;
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

const intlMessages = {
  "cs-CZ": _interopRequireDefault(__webpack_require__("QId7")).default,
  "da-DK": _interopRequireDefault(__webpack_require__("Q4OO")).default,
  "de-DE": _interopRequireDefault(__webpack_require__("GXib")).default,
  "en-US": _interopRequireDefault(__webpack_require__("KXRi")).default,
  "es-ES": _interopRequireDefault(__webpack_require__("s96J")).default,
  "fi-FI": _interopRequireDefault(__webpack_require__("dFVR")).default,
  "fr-FR": _interopRequireDefault(__webpack_require__("RT55")).default,
  "hu-HU": _interopRequireDefault(__webpack_require__("7vz5")).default,
  "it-IT": _interopRequireDefault(__webpack_require__("Ynvm")).default,
  "ja-JP": _interopRequireDefault(__webpack_require__("06Vj")).default,
  "ko-KR": _interopRequireDefault(__webpack_require__("Vmve")).default,
  "nb-NO": _interopRequireDefault(__webpack_require__("Smhd")).default,
  "nl-NL": _interopRequireDefault(__webpack_require__("mNJ6")).default,
  "pl-PL": _interopRequireDefault(__webpack_require__("jQ0c")).default,
  "pt-BR": _interopRequireDefault(__webpack_require__("OWNY")).default,
  "ru-RU": _interopRequireDefault(__webpack_require__("f6DC")).default,
  "sv-SE": _interopRequireDefault(__webpack_require__("4U/7")).default,
  "tr-TR": _interopRequireDefault(__webpack_require__("sQW/")).default,
  "uk-UA": _interopRequireDefault(__webpack_require__("07nh")).default,
  "zh-CN": _interopRequireDefault(__webpack_require__("untp")).default,
  "zh-TW": _interopRequireDefault(__webpack_require__("FE3C")).default
};

if (false) {} else if (false) {} else {
  __webpack_require__("7Eik");
}

if (true) __webpack_require__("q3FZ");
if (true) __webpack_require__("xsEJ");
if (true) __webpack_require__("SxSS");
if (true) __webpack_require__("krvP");
let formatMessage = (0, _intl.messageFormatter)(intlMessages);

function UxpFieldLabel(_ref) {
  let {
    label,
    position,
    children,
    className,
    labelFor,
    necessity,
    necessityIndicator
  } = _ref,
      otherProps = _objectWithoutProperties(_ref, _excluded);

  let necessityMap = {
    required: `${label} ${formatMessage('(required)')}`,
    optional: `${label} ${formatMessage('(optional)')}`
  };
  let icon = null;

  if (necessityIndicator === 'icon' && necessity === 'required') {
    icon = /*#__PURE__*/_react.default.createElement(_Asterisk.default, {
      className: "spectrum-UIIcon-Asterisk spectrum-fieldLabel-requiredIcon",
      size: "S",
      alt: formatMessage('(required)')
    });
  }

  return /*#__PURE__*/_react.default.createElement(_UxpLabelBase.default, _extends({
    label: necessity && necessityIndicator === 'label' ? necessityMap[necessity] : label,
    className: className,
    componentName: "FieldLabel",
    labelClassName: (0, _classnames.default)('spectrum-FieldLabel', 'spectrum-FieldLabel-Override', {
      'spectrum-FieldLabel--left': position === 'left',
      'spectrum-FieldLabel--right': position === 'right'
    }),
    labelFor: labelFor,
    icon: icon,
    position: position
  }, otherProps), children);
}

UxpFieldLabel.displayName = 'FieldLabel';
UxpFieldLabel.propTypes = {
  /**
   * String to display
   */
  label: _propTypes.default.string.isRequired,

  /**
   * Justification of the label text within its container. Setting this property
   * will situate the label container to the left of the form field, regardless
   * of the property value.
   */
  position: _propTypes.default.oneOf(['left', 'right']),

  /**
   * Custom classname to apply to the label
   */
  className: _propTypes.default.string,

  /**
   * Like in a form, with what input should the label be associated
   */
  labelFor: _propTypes.default.string,

  /**
   * Style for communicating whether the associated input is required or optional.
   */
  necessity: _propTypes.default.oneOf(['required', 'optional']),

  /**
   * 'icon' adds an asterix to the field label if necessity is required.
   * 'label' adds a '(required)' or '(optional)' string to the label depending on the necessity.
   */
  necessityIndicator: _propTypes.default.oneOf(['icon', 'label'])
};
UxpFieldLabel.defaultProps = {
  necessityIndicator: 'icon'
};

/***/ }),

/***/ "zvwv":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _needsNative = _interopRequireDefault(__webpack_require__("Pab0"));

var _react = _interopRequireDefault(__webpack_require__("q1tI"));

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {
    default: obj
  };
}

const isUxp = window.location.protocol === 'plugin:';
const defaultOptions = Object.freeze({
  enabled: isUxp,
  enableSpectrumUXP: false,
  default: isUxp,
  productNeedsOverlayFix: isUxp && (0, _needsNative.default)() || false,
  AccordionItem: undefined,
  Autocomplete: undefined,
  Breadcrumbs: undefined,
  Button: undefined,
  Checkbox: undefined,
  CoachMark: undefined,
  CoachMarkIndicator: undefined,
  CoachMarkPopover: undefined,
  Dialog: undefined,
  Dropdown: undefined,
  FieldLabel: undefined,
  FocusRingPolyfill: undefined,
  Form: undefined,
  Label: undefined,
  Link: undefined,
  ListItem: undefined,
  Menu: undefined,
  SubMenu: undefined,
  ModalTrigger: undefined,
  OverlayTrigger: undefined,
  Popover: undefined,
  Progress: undefined,
  Provider: undefined,
  Radio: undefined,
  RadioGroup: undefined,
  Rule: undefined,
  Search: undefined,
  Select: undefined,
  SelectList: undefined,
  Slider: undefined,
  SwitchBase: undefined,
  Tab: undefined,
  TR: undefined,
  TabList: undefined,
  Tag: undefined,
  Textfield: undefined,
  Toast: undefined,
  Tooltip: undefined,
  Video: undefined,
  Wait: undefined,
  PortalContainer: undefined,
  ScrollManager: undefined
}); //  this is necessary because we are using require("Component") and the Component is exporting default usually

function getDefaultExport(moduleExports) {
  return moduleExports.default || moduleExports;
}

class UxpOptions {
  constructor() {
    this.reset();
  }

  reset() {
    Object.assign(this, defaultOptions);
  }

  select(name, UxpComponentFn, WebComponentFn, SpComponentFn) {
    if (Array.isArray(this['enableSpectrumUXP']) && this['enableSpectrumUXP'].includes(name) && SpComponentFn) {
      return getDefaultExport(SpComponentFn());
    }

    if (this[name]) {
      return getDefaultExport(UxpComponentFn());
    }

    return getDefaultExport(WebComponentFn());
  }

} //  we use a proxy in order to provide logic for each option on get


var _default = new Proxy(new UxpOptions(), {
  get(options, p) {
    let value = options[p];

    if (defaultOptions.hasOwnProperty(p)) {
      if (options.enabled) {
        return value != null ? value : options.default;
      }

      return false;
    }

    return value;
  }

});

exports.default = _default;

/***/ }),

/***/ "zznw":
/***/ (function(module, exports, __webpack_require__) {

"use strict";


var React = __webpack_require__("q1tI");

module.exports = React.createElement("svg", {
  viewBox: "0 0 36 36"
}, React.createElement("path", {
  d: "M32 24.5V30h-5.5a.5.5 0 0 0-.5.5v1a.5.5 0 0 0 .5.5H34v-7.5a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5zM4 30v-5.5a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5V32h7.5a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5zM26 4.5v1a.5.5 0 0 0 .5.5H32v5.5a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5V4h-7.5a.5.5 0 0 0-.5.5zM4 6h5.5a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5H2v7.5a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5z"
}), React.createElement("rect", {
  height: "16",
  rx: ".5",
  ry: ".5",
  width: "20",
  x: "8",
  y: "10"
}));

/***/ })

/******/ });